Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[27]

Пример программного выполнения команды CATALOC в программе на языке БЕЙСИК:

ПО PRINT .PRINT CHR Д (4): "CATALOC"

в программе на языке ассемблера: ! LDX*0

! ЦИКЛ: LDA КОМАНДА. X ! JSR COUT ! ПЧХ

! СРХ # > КОНЕЦ - КОМАНДА + 1 ! BNE ЦИКЛ ! RTS

! КОМАНДА : Д. 8D84 !"CATALOC" ! КОНЕЦ: Д 8D

Кроме команд диалога для программных обращений предоставляется еще набор команд работы с текстовыми файлами. Эти команды имеют аналогичный текстовый формат, но не разрешены в прямом диалоге. Ниже описаны также программные обращения к ДОС, позволяющие проводить обмен с ГМД по физическим адресам.

Работа с текстовыми файлами (типа Т). Предусмотрено два вида текстовых файлов: файлы с последовательным доступом, в которых хранится сплошная последовательность символов, и файлы с прямым доступом, содержащие записи фиксированной длины (Ь - номер байта в файле с последовательным доступом или в записи файла с прямым доступом, г - номер записи в файле с прямым доступом, j - размер записи файла с прямым доступом).

OPEN имя файла {,Ss} {,Dd} {,Vv} - открытие файла для последовательного доступа.

OPEN имя файла, ,Lj {,Ss} {.Dd} {.Vv} - открытие файла для прямого доступа.

Открытие отсутствующего файла приводит к созданию пустого файла, открытие файла с именем, имеющимся на ГМД, позиционирует файл на начало.

CLOSE имя файла {,Ss} {,Dd} {,Vv} - закрытие файла для последовательного доступа.

CLOSE имя файла {,Ss} {,Dd} {,Vv} - закрытие файла для прямого доступа.

WRITE имя файла {.ВЬ} - запись в файл для последовательного доступа.

WRITE имя файла {.Rr} {,ВЬ} - запись в файл для прямого доступа.

После выполнения команд OPEN и WRITE любой выход из программы, осуществляемый с помощью подпрограммы COUT или команды PRINT, направляется в открытый текстовый файл. Отображение на экране выводимой информации задается параметром "О" команды MON.

При записи в ранее созданный файл старая запись заменяется новой. Если требуется дополнить файл, следует вместо OPEN пользоваться командой APPEND.

READ имя файла {.ВЬ} - чтение файла для последовательного доступа.

READ имя файла {.Rr} {.ВЬ} - чтение файла для прямого доступа.

После выполнения команд OPEN и READ весь ввод с помощью подпрограммы CROUT, команд INPUT или GET, осуществляемый в программах пользователя, производится из открытого текстового файла. Отображение данных на экране задается состоянием "I" команды MON.


EXEC мм файла {.Rr} {,Ss} {,Dd} {,Vv} - исполнение команд из текстового файла.

После выполнения команды весь ввод с помощью программы "Системный монитори осуществляется из текстового файла до тех пор, пока в нем не встретится команда CLOSE без предшествующей ей команды OPEN, либо до исчерпания файла. Вводимые команды диалога различных подсистем выполняются по мере поступления, ввод запускаемых при этом программ также производится из исполняемого файла (кроме случая, когда запущенная программа читает данные из другого файла).

Команда EXEC может использоваться в прямом диалоге ДОС.

POSITION мм файла {.Rr}- позиционирование файла, пропускает г записей в файле (записей заданной длины для прямого доступа). Выключает режим чтения и записи.

APPEND мм файла {.Ss} {.Dd} {.Vv} - наращивание файла с последовательным доступом, открывает файл и позиционирует его на последний символ. Последующий WRITE будет наращивать файл. Зашита по записи на открытый командой APPEND файл не распространяется.

ОБРАЩЕНИЕ ЗА ИНФОРМАЦИЕЙ ПО ФИЗИЧЕСКИМ АДРЕСАМ

Для программных обращений предоставляется доступ к ГМД по физическим адресам. ГМД размечается на 35 дорожек - треков, на каждом из которых размещается 16 секторов. Нумерация треков ведется с 0 от внешней окружности к центральному отверстию.

В стандартном варианте треки 0, 1, 2 заняты программами ДОС, на треке 17 хранится каталог ГМД. Остальные треки предоставляются пользователю.

Для обращения к подпрограмме чтения - записи трека и сектора (ЧЗТС) необходимо иметь в памяти два, массива, форматы которых представлены в табл. 5.1 и 5.2. Адрес табл. 5.1 помещается в регистры А (старший байт) и Y (младший байт), после чего управление передается по адресу о 3D9. Табл. 5.1 размещается по адресу Д В7Е8, табл. 5.2 - по адресу tt B7F8.

Таблица 5.1

Обращение к ГМД по физическим адресам

Номер байта

Назначение байта

Значение байта (шестнадцатеричное)

1

Тип таблицы

01

2

Номер разъема, умножен-

00 - FF

ный на Д 10 (16)

3

Номер привода

00 - 01

4

Номер тома ГМД

01- FF

(При 00 - номер тома игнори-

руется)

5

Номер дорожки (трека)

00 - 22

в

Номер сектора

00 - 0F

7-8

Адрес табл. 5.2

0000 - FFFF


Номер байта

Назначение байта

Значение байта (имстнадцатеричное)

9-10

Адрес буфера данных

0000 - FFFF

11-12

Не используется

-

13

Код режима работы

0 - включение НГМД, подвод головки; 1 - тение 256 байт в буфер данных;

2 -запись 256 байт из буфера данных; 3 - разметка ГМД.

14

Код завершения работы

0 - нормальное завершение; 10 - ГМД защищен по записи; 20 - не тот номер тома; 40 - ГМД неисправен; 80 - сбой при чтении.

15

Номер тома ГМД в предыдущем обращении

00 - FF

16

Номер разъема в предыдущем обращении, умноженный на Ц 10

00 - FF

17

Номер привода в предыдущем обращении

00 - FF

Таблица 5.2

Обращение к НГМД по физическим адресам

Номер байта

Назначение байта

Значение байта (имстнадцатеричное)

1

Тип устройства

00 - FF

(для ЕС-5088 - 00)

2

Число обращений на трек

00 - FF

(0 - нет обращений

1 - одно обращение и т.д.)

3-4

Код формата записи

0000 -FFFF

(для MFM/FM - EFD8)

Пример обращения к ЧЗТС приведен на рис. 5.1.

Эта программа осуществляет чтение сектора 7 дорожки (трека) 9 (без учета номера тома) в буфер по адресу БУФЕР; чтение производится с первого накопителя, подключенного к контроллеру НГМД, установленному в разъем Х4 (S-3).



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98]