[an error occurred while processing this directive]
.шп136
III.5.1 Вызов подпрограммы ЧЗТС.
.шп0
Для вызова подпрограммы ЧЗТС (чтения/записи трека/сектора; RWTS read/write trek/sektor) следует вызвать две подпрограммы:
- JSR ¤03E3 - в регистры Y и A загружается адрес УТ (Управляющей таблицы RWTS IOB (в ДОС 3.3 располагается по адресу ¤557), в Y - мл., в A - ст. байт адреса. Результат ее работы можно сохранить в двух ячейках нулевой страницы, чтобы иметь возможность модифицировать УТ и получать выходные величины после вызова RWTS.
- JSR ¤03D9 - это главный вход в RWTS. Перед этим должен быть загружен адрес УТ в регистры Y и A.
.шп+8
Управляющая таблица общей RWTS ДОС 3.3.
(в ДОС располагается по адресу ¤557)
.шп-8
.гр
╔══════════╦════════════════════════════════════════════════╗ | БАЙТ | СОДЕРЖИМОЕ | ╠══════════╬════════════════════════════════════════════════╣ | | | | 00 | тип таблицы = ¤01 | | | | |* 01 | S*¤10 (номер разъема НГМД, умноженный на ¤10) | | | | | 02 | D, номер привода НГМД | | | | | 03 | V, ожидаемый номер тома НГМД, ¤00-игнорировать| | | | |* 04 | номер трека: ¤00-¤22 для НГМД ЕС5088 | | | ¤00-¤9F для НГМД FD55.F | | | ¤00-¤7F для НГМД FD55.E и TM65-21| | | ¤00-¤3F для НГМД ROBOTRON | | |* ¤00-¤1F для виртуального диска | | | | |* 05 | номер сектора: ¤00-¤14 для НГМД FD55, ROBOTRON| | | ¤00-¤0F для НГМД ЕС5088 | | |* ¤00-¤0F для виртуального диска | | | | |* 06 | действие: 0-немедленное, не 0-отложенное | | | | | 07 | не используется | | | | |* 08-09 | адрес буфера для чтения/записи | | | | | 0A-0B | не используются | | | | |* 0C | код работы: | | | 0═включить НГМД, подвести головку | | |* 1═чтение 256 байт в буфер | | |* 2═запись 256 байт из буфера | | |* 4═разметка ГМД | | | | |* 0D | код завершения обмена: | | | C=0 | | |* ¤00═нормальное завершение | | | C=1 | | | ¤10═ГМД защищен от записи | | | ¤20═не тот номер тома | | |* ¤40═сбой в чтении/записи | | |* ¤80═нет устройства | | | | | 0E | V (номер тома ГМД, предыдущее обращение) | | | | |* 0F | S*¤10 (номер разъема предыдущее обращение) | | | | | 10 | D (номер привода НГМД, предыдущее обращение) | | | | ╚══════════╩════════════════════════════════════════════════╝
.тт
* Примечание: знаками "*" отмечены параметры IOB, используемые, возвращаемые или имеющие значение для VRWTS виртуального диска, управляемого драйвером VIRT128 .BIN фирмы Friends' software (подробно см. описание соответствующего фирменного продукта). Параметры IOB, не помеченные "*" VRWTS не используются (но используются RWTS других устройств). При форматировании виртуального диска через RWTS, каталог не создается (фактически происходит очистка (обнуление) всей памяти ДОП ОЗУ).
ПРИМЕЧАНИЕ:
- RWTS использует ячейку ¤48, которая используется МОНИТОРом для сохранения регистра P. Ячейку ¤48 следует обнулять после каждого вызова RWTS. При каждом последующем вызове первое, что делает МОНИТОР,-восстанавливает свои переменные из рабочей области.
- Параметры ¤0E-¤10 IOB должны быть инициализированы при каждом последующем вызове RWTS.
.ст Раздел III:5.2
[an error occurred while processing this directive]