LDFBAT.C$ - пакетный загрузчик файлов,  сопряжение Орион-128 и IBM PC

Обмен данными между Орионом и IBM PC c помощью дискет, настройка программ на Орионе 128

Продаю платы и наборы микросхем, куплю микросхемы, комплектующие к ПК Орион-128

Адреса портов и стандарты ПО

Пакет программ обмена файлами между IBM PC и Орионом по ORDOS. Программа работает с контроллером  НГМД авторским, ну я так думаю и с другими контроллерами тоже.

Пакет состоит из следующих программ: MSCH$, MSINST$, MSBOT$, MSFOR$, MSFORMAT, LDFBAT, DIR, CUT0A$, INS0A$.

*1. Пакетный загрузчик файлов LDFBAT.C$*

2. Формирователь файла каталога дискеты DIR.C$M

3. Утилиты преобразования текстовых форматов

При работе над большими проектами в среде ORDOS, после каждого включения ПК приходится во все квазидиски загружать до полутора - двух десятков файлов с дискеты.

Утилита LDFBAT.C$M позволяет упростить этот процесс. Она осуществляет загрузку файлов в квазидиски ПК с дискеты в соответствии с заранее подготовленным текстовым пакетным файлом, в котором указано какие файлы, откуда и куда загрузить. Все предназначенные к загрузке файлы должны быть в формате BRU (иметь расширение .BRU). Пакетный файл готовится один раз, после
чего на протяжении всего времени работы над данным проектом процедура загрузки файлов после включения ПК значительно упрощается. Достаточно после загрузки MSCH$ запустить пакетный загрузчик.

Программа LDFBAT.C$M может запускаться с любого диска MS-DOS (кроме виртуального) из корневого каталога или любого поддиректория командой [ВК] или [L]. В первом случае программа ищет в том же директории, где находится она сама, пакетный файл LDFBATCH.BRU, и выполняет загрузку, в соответствии с этим файлом.

Во втором случае, после ввода команды [L], в нижней строке экрана появляется курсор, предлагая ввести командную строку, указывающыю путь до пакетного файла. Эта строка должна иметь следующий вид:

[X:][DIRECTORY1\][DIRECTORY2\][...\]FILENAME[.BRU]

Здесь:
[X:] - имя дисковода, в котором находится дискета с пакетным файлом; оно может быть опущено, если путь к пакетному файлу начинается в том же каталоге, из которого запускалась программа

LDFBAT.C$M; ВНИМАНИЕ! В отличие от правил задания пути в системе MS-DOS, знак "\" после имени диска вводить не надо! DIRECTORY1, DIRECTORY2 - путь к пакетному файлу; имена поддиректориев отделяются друг от друга символом "\";

FILENAME - имя пакетного текстового файла; имя файла может быть произвольным, а расширение BRU можно опускать.

Примеры:
1. Пусть программа LDFBAT.C$M находится в корневом каталоге. В этом же каталоге находится пакетный файл LDGRAPH.BRU. Тогда командная строка будет иметь простейший вид: LDGRAPH

2. Программа LDFBAT.C$M находится в одном из поддиректориев. В этом же поддиректории есть поддиректорий GAPHICS, в котором и находится пакетный файл. В этом случае командная строка может иметь вид: GRAPHICS\LDGRAPH

3. В поддиректории GRAPHICS, входящем в поддиректорий PROJECTS, находящемся, в свою очередь, в корневом каталоге дискеты "A", содержится пакетный файл. Программа LDFBAT.C$M находится в поддиректории, не входящем в поддиректорий GRAPHICS. Командная строка будет иметь вид: A:PROJECTS\GRAPHICS\LDGRAPH

4. Пакетный файл находится в другом дисководе. Вид командной строки: B:PROJECTS\GRAPHICS\LDGRAPH

Программа будет правильно работать, если в вышеприведённых примерах всегда указывать полный путь до пакетного файла, но для случаев 1 и 2 это потребует излишних затрат времени и труда
пользователя на ввод необязательной информации. Пакетный файл готовится с помощью любого текстового редактора в среде ORDOS и сохраняется на дискете командой Save [S] программы MSCH. Объём этого файла не должен превышать 2Кб. Структура текстового пакетного файла LDFBATCH.BRU приведена ниже. Далее в квадратных скобках заключаются необязательные данные. Примечания, находящиеся справа от разделительной линии, также как и сама линия, в файл не входят.

MMS-DOS - CHANGER пакет программ IBM PC обмен с IBM PC и ОРДОС ориона

Заголовок файла и комментарии, также как и пустые строки служат только для удобства пользователя, не являются обязательными и не влияют на ход загрузки. Для того, чтобы строка считалась комментарием, она должна начинаться хотя бы с одного пробела. Количество строк комментариев и пустых строк может быть любым, и вставляться они могут в любом месте файла. С помощью комментариев можно также временно отменять загрузку какого-либо файла, введя с помощью текстового редактора пробел перед его именем. В последствии, когда снова понадобится его загружать, достаточно этот пробел убрать. Естественно, после каждой корректировки, пакетный файл нужно пересохранить на дискете.

Имя квазидиска ("B" или старше) должно обязательно сопровождаться двоеточием. Через пробел после двоеточия, при необходимости, указывается ключ форматирования квазидиска /F. Если этот ключ задан - перед началом загрузки файлов квазидиск форматируется (т.е. полностью очищается), иначе - файлы дозагружаются к уже имеющимся в квазидиске. Порядок следования квазидисков - любой. Более того, к их загрузке можно обращаться неоднократно. Так, например, можно сперва загрузить несколько файлов в квазидиск "C", затем в "D" или "B", а потом дозагрузить диск "C" и так далее.

Имя дисковода также должно обязательно сопровождаться двоеточием, вслед за которым без пробела должен быть указан путь или имя загружаемого файла, если он находится в корневом каталоге. Если из одного поддиректория загружается подряд несколько файлов, то полный путь достаточно указать только для первого файла. В качестве имени диска для обозначения текущего диска можно использовать символ "@". Если строка начинается с этого символа, то последующий путь к файлу считается начинающимся из корневого каталога того диска, к которому было обращение перед этим. Это может понадобиться, если все файлы пакета загружаются с одной дискеты, которая в процессе работы может оказаться вставленной в любой из дисководов.

Имена файлов FILENAME в пакетном файле должны приводиться те, которые записаны в каталоге дискеты, а не те, которые файлы имеют в системе ORDOS, при этом расширение BRU можно не указывать. В процессе загрузки выводится окно с именами загружаемых файлов. Если в процессе загрузки происходит ошибка чтения файла с дискеты - выводится окно с сообщением "Read error!", процесс загрузки прерывается и осуществляется возврат в MSCH$. Если обнаруживается ошибка в пакетном файле (указан несуществующий квазидиск или дисковод, неправильный символ ключа и т.п.) - выводится сообщение "Syntax error!" и также прерывается процесс загрузки.

Если в данном каталоге дискеты отсутствует файл или поддиректорий, указанный в пакетном файле - выводится сообщение

┌─────────────────┐
│ No file FILENAME.EXT!     │
│ Continue? (Y/N)                    │
└─────────────────┘

Пользователю предоставляется возможность продолжить загрузку остальных файлов, или прервать этот процесс. Для продолжения надо нажать клавишу [ВК] или [Y]. Любая другая клавиша будет воспринята, как [N]. Могут также возникнуть ситуации, когда не хватит места в квазидиске (выводится сообщение "No space!" с прерыванием загрузки) либо файл с таким именем в квазидиске уже есть. В этом случае выводится сообщение

┌───────────────┐
│ File FILENAME exist!     │
│ Overwrite? (Y/N)             │
└───────────────┘

Если выбрать [Y], то имеющийся файл будет заменён файлом с дискеты, иначе в квазидиске останется существующий файл. При загрузке файлов в квазидиск "B" возможно отключение цвета, если верхняя граница файлов попадёт в область цветовых аттрибутов экрана.

После окончания загрузки всех указанных файлов во все заданные квазидиски, если в конце файла нет строки с ключами /R или /G, управление передаётся в систему ORDOS.

Если задан ключ /R - осуществляется возврат в программу MSCH$. Это может понадобиться, например, для дозагрузки каких-либо файлов из других каталогов вручную.

Если задан ключ /G, то управление передаётся программе ORDOS, указанной далее в этой строке. Перед именем программы должен быть указан квазидиск, в котором она находится (по умолчанию - квазидиск "A"), а также может быть задана командная строка, которую должна выполнить эта программа.

При работе над несколькими проектами можно записать на дискету несколько пакетных файлов, а выбор осуществлять вводом соответствующей командной строки. Если же на дискете один проект, то более целесообразно назвать пакетный файл LDFBATCH.BRU, записать его в одном каталоге с программой LDFBAT.C$M, и производить запуск её без командной строки. По ходу работы над проектом, при необходимости, пакетный файл можно корректировать, изменяя состав файлов и порядок их загрузки.
Для ипользования пакетного загрузчика надо сохранить на дискете MS-DOS имеющийся в дистрибутиве файл LDFBATCH командой Copy (а не Save!), присвоив ему расширение C$M.

Данная версия программы работает только с программой MSCH версии 2.1. При попытке запуска её из более ранней версии MSCH выводится сообщение "Incorrect version" и происходит возврат в MSCH.

Ниже приведен пример построения пакетного файла.

ЗАГРУЗКА ПРОЕКТА MSXXX

B: /F
ЗАГРУЗКА СТАНДАРТНЫХ МЕТОК
B:LABELS\STNLB_AS.BRU
STBOX_AS.BRU
AFLOP_AS.BRU
MS1LB_AS.BRU

C: /F
A:UTILS\SURED_US
DBFORM$

D: /F
A:PROJECTS\MSXXX\AFONT_AS
START_AS
IFACE_AS
ЗАГРУЗКА ТЕСТОВОГО ФАЙЛА ВРЕМЕННО ЗАБЛОКИРОВАНА
A:TEST\TESTV_TX

C:
A:PROJECTS\MSXXX\MVIEW_AS

/G SURED$ D:START.AS

2. Формирователь файла каталога дискеты DIR.C$M

Данная утилита предназначена для формирования полного оглавления дискеты, включая все вложенные поддиректории, в виде текстового файла DIR.TXT в корневом каталоге дискеты. Это полезно для создания архивов файлов на дискетах MS-DOS. Просмотрев файл DIR.TXT командой [T] программы MCSH$, можно сразу узнать какие файлы и где на данной дискете есть, не раскрывая всех подкаталогов. Файл DIR.TXT также может быть загружен в текстовый редактор и распечатан, а распечатка может храниться вместе с дискетой. Ниже приведена структура файла DIR.TXT.

- *** -
Volume label: МеткаТома (если есть)

Поддиректорий1\ (выводится прописными буквами)
Поддиректорий1\Поддиректорий1.1\
ИмяФайла1.1.1 Размер(байт) Дата(ДД-ММ-ГГ) Время (ЧЧ:ММ)
.
. файлы Поддиректория1.1 (выводятся строчными буквами)
.
ИмяФайла1.1.N Размер Дата Время
Поддиректорий1\Поддиректорий1.2\
ИмяФайла1.2.1 Размер Дата Время
.
. файлы Поддиректория1.2
.
ИмяФайла1.2.N Размер Дата Время
ИмяФайла1.1 Размер Дата Время
.
. файлы Поддиректория1
.
ИмяФайла1.N Размер Дата Время
Поддиректорий2\
ИмяФайла2.1 Размер Дата Время
.
. файлы Поддиректория2
.
ИмяФайла2.N Размер Дата Время
ИмяФайла1 Размер Дата Время
.
. файлы корневого каталога
.
ИмяФайлаN Размер Дата Время

Free XXXXXX byte (свободный объём дискеты)
- *** -

Запуск утилиты DIR.C$M может осуществляться с любого диска MS-DOS, в т.ч. из виртуального. Если на момент запуска утилиты в системе присутствуют более одного диска MS-DOS, то выводится меню выбора диска, каталог которого будет создаваться. Выбор осуществляется либо клавишами [<-], [->], [TAB] и нажатием [ВК], либо символьной клавишей с именем диска. Клавишей [F4] можно отказаться от формирования файла каталога и вернуться в MSCH$.

После выбора диска, если он не виртуальный, выводится предложение вставить в выбранный дисковод дискету, каталог которой будет создаваться. Нажатие клавиши [ВК] после установки дискеты начинает процесс формирования текстового представления каталога дискеты, который отображается на экране дисплея компьютера.
После завершения формирования файла DIR.TXT для данной дискеты выводится запрос о повторении для следующей дискеты. Согласием считается нажатие клавиш [ВК] или [Y] (в любом
регистре). Любая другая клавиша считается отказом и приводит к возврату в MSCH$.

Если в процессе формирования файла DIR.TXT происходит дисковая ошибка - процесс прерывается и осуществляется возврат в программу MSCH$.
Если в корневом каталоге дискеты уже имеется файл DIR.TXT, (например - предыдущая версия этого файла) то он удаляется без предупреждения, даже если он имеет аттрибуты Read-Only (Sys).

Если обрабатываемая дискета имеет механическую защиту от записи, программа предлагает выполнить только просмотр каталогов на экране дисплея ПК без записи файла DIR.TXT.
В программе предусмотрена возможность настройки ряда параметров вывода информации в файл и на экран ПК. Она выполняется путём изменения значений констант в исходном файле программы, что может быть сделано с помощью любого редактора памяти в среде ORDOS, после чего изменённый файл программы необходимо сохранить на дискете командой Copy программы MSCH$, присвоив ему имя DIR.C$M.

Настраиваться могут следующие константы (указаны смещения относительно начала файла программы DIR.C$M):

+3 - байт, управляющий видом выводимых в файл и на экран имён файлов, при этом:
- бит D7=1 - между именем и расширением имени файла выводится символ ░, если файл имеет аттрибуты R/O или (и) SYS;
- бит D7=0 - символ ░ не выводится;
- бит D6=1 - выводится размер файла;
- бит D6=0 - размер не выводится;
- бит D5=1 - процесс формирования файла DIR.TXT дублируется на экране ПК;
- бит D5=0 - вывод на экран не производится;
- биты D4...D2 не используются, должны быть равны 0;
- биты D1,D0 равны 00 - дата и время не выводятся;
- биты D1,D0 равны 01 - выводится только дата;
- биты D1,D0 равны 10 - выводится дата и время;
+4 - величина смещения строк вправо при переходе в поддиректорий, может принимать значения от 1 до 8;
+5 - байт равен 0AH - в конце строк в файле DIR.TXT после кода 0DH (возврат каретки) добавляется код 0AH (перевод строки);
- байт равен 0 - 0AH в конец строки не добавляется;
+6 - код концевика текстового файла DIR.TXT, может принимать значения 1AH или 0FFH.

В дистрибутиве программы значения двух последних констант установлены 0AH и 1AH соответственно, что позволяет просматривать, редактировать и распечатывать файл DIR.TXT в среде MS-DOS на IBM-PC совместимых ПК с помощью стандартных средств MS-DOS. В среде ORDOS такой файл может без каких-либо изменений настройки программы DIR.C$M обрабатываться редактором SURED$. Если же предполагается, что этот файл будет обрабатываться другими редакторами ORDOS, в которых конец строки обозначается одним байтом 0DH, а конец текста - байтом 0FFH - то необходимо соответственно изменить исходный файл утилиты DIR.C$M.

Кроме того, по адресу +7 записано слово, определяющее постоянную времени реакции на нажатие клавиш управления пунктами меню выбора диска. Значение слова также может быть подобрано пользователем по своему желанию. Для получения программы DIR.C$M необходимо файл DIR из дистрибутива сохранить на дискете MS-DOS командой Copy (не Save!), присвоив ему расширение C$M.

3. Утилиты преобразования текстовых форматов

В связи с тем, что большинство текстовых редакторов, работающих под MS-DOS, обозначают конец строки парой символов 0DH, 0AH, а конец текстового файла вообще никак не обозначают, то обработка таких файлов текстовыми редакторами в среде ORDOS оказывается затруднительной. Небольшая утилита CUT0A$ предназначена для приведения формата текстовых файлов MS-DOS к формату, воспринимаемому подавляющим большинством редакторов ORDOS. Она убирает из строк код перевода строки 0AH и вставляет символ конца файла.

Программа запускается из среды ORDOS (или из программы MSCH$ с квазидиска ORDOS) с командной строкой вида:

CUT0A$ [X:] FILENAME [Y:]

Здесь X: - имя квазидиска с исходным файлом, по умолчанию - B;

FILENAME - имя обрабатываемого текстового файла, предварительно скопированного в квазидиск X с дискеты MS-DOS;

Y: - имя квазидиска, в котором будет сформирован преобразованный текстовый файл.

Если имя квазидиска Y не указано, то файл формируется в том же квазидиске, где находится исходный файл. В случае, если формирование нового файла успешно завершается, и если в квазидиске-приёмнике существует файл с именем FILENAME (а в случае, если квазидиск-источник и приёмник совпадают - это обязательно имеет место) - существующий файл FILENAME удаляется без предупреждения. Файлу - результату преобразования присваивается имя FILENAME.

После завершения работы программа возвращается в ORDOS или в MSCH$, если запускалась из MSCH$ и пользователем был дан ответ "Yes" на запрос "Return to MSCH?". Если не задана командная строка (или задана с ошибками), или отсутствует файл, указанный в командной строке - выводится сообщение об ошибке и преобразование не производится.
Преобразование файла также не производится, если в квазидиске-приёмнике не оказывается достаточно места под формируемый файл. Чтобы этого не случилось, пользователь сам должен позаботится о том, чтобы в квазидиске-приёмнике перед началом преобразования было свободное дисковое пространство. При записи файлов в квазидиск "B" возможно отключение цвета. В процессе формирования файла в квазидиске-приёмнике создаётся временный файл "###.TX", и если перед началом работы такой файл в квазидиске уже есть - он удаляется без предупреждения.

Код символа конца файла 0FFH находится по адресу +3 от начала программы и может быть изменён пользователем с помощью любого редактора памяти непосредственно в файле программы CUT0A$.

Утилита INS0A$ выполняет обратную функцию - вставляет код перевода строки 0AH после кода возврата каретки 0DH в строки исходного текстового файла ORDOS (если их нет) и заменяет код конца файла 0FFH на заданный в байте, находящемся по адресу +3 от начала программы. В дистрибутиве он установлен равным 1AH.

Запускается и работает утилита аналогично утилите CUT0A$. Исходный текстовый файл ORDOS должен иметь код конца файла, равный 0FFH или 1AH.

 

MSCOMM$ V1.34 - программа обмена данными (файлами) с помощью дискеты "3,5 дюйма" (720 к), дискеты 5,25 дюйма (360к)  между IBM PC и Орионом

Работа в CP/M-80 программы и железо

Работа в ОР ДОС

Подробнее будет на www.orion128.ru

Работа в ДС ДОС

Куплю платы, наборы микросхем 2716, 2732, 2764, 27128, 27256, 27512, 27c010, 27c801 на Орион-128, КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г Au в позолоте, куплю микросхемы фирмы NEC, Intel, Oki

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу