ПОДПРОГРАММЫ TRDOS
ячейку 23798 заносится номер выбранного дисковода. Во избежание оши-
бочных ситуаций рекомендуется его дублировать в ячейках 23800 и 23801.
#02 ПОЗИЦИОНИРОВАНИЕ. Головка устанавливается на трек, указанный
регистром А. В случае двухстороннего дисковода номерам 0 и 1 соответст-
вует первый физический трек (0 и 1 сторона соответственно). Номерам 2
и 3 - второй и т.д.
#03 Помещает содержимое регистра А по адресу 23807 (номер сектора)
#04 Помещает содержимое регистровой пары HL по адресу 23808 (адрес бу-
фера)
#05 ЧТЕНИЕ ГРУППЫ СЕКТОРОВ. Перед вызовом подпрограммы в регистр
В помещается количество читаемых подряд секторов (при значении 0 с
диска считывается только область заголовка, считывание в память не
происходит). В регистр D помещается номер трека, а в регистр Е - номер
сектора. Регистр HL должен содержать адрес буфера в памяти, в которой
будет производиться чтение.
#06 ЗАПИСЬ ГРУППЫ СЕКТОРОВ. Параметры аналогичны #05.
#07 ВЫВОД КАТАЛОГА ДИСКА. В регистре А должен быть указан номер
канала (для вывода на экран А должен содержать значение 2, на принтер
- 3 и т.п.) Выполнение подпрограммы аналогично выполнению команды
TRDOS "CAT". Перед выводом каталога выполняется команда #18.
#08 ЧТЕНИЕ ИНФОРМАЦИИ О ФАЙЛЕ. В аккумуляторе должен быть но-
мер интересующего файла (0-127). Из каталога диска 16 байт информа-
ции будут помещены с адреса 23773 (проверки на наличие данного файла
не происходит). В номера файлов входят и удаленные.
#09 ЗАПИСЬ В КАТАЛОГ ИНФОРМАЦИИ О ФАЙЛЕ. С адреса 23773 16
байт переписываются в каталог диска на место информации о файле,
номер которого задается в регистре А.
#0А ПОИСК ФАЙЛА. Поиск файла в директории ведется по имени и типу (с
адреса 23773). Количество байт, по которым ведется поиск, задано по
адресу 23814, начальное значение #09. Если файл найден, то по возвра-
щении из программы, регистр С будет указывать его порядковый номер
(то же по адресам 23828, 23823). В противном случае, старший бит реги-
стра устанавливается в 1. (23828 не изменяется, 23823 будет содержать
#FF).
#0В ЗАПИСЬ ФАЙЛА. С адреса 23773 - имя и тип файла; в регистровой паре
HL - адрес начала в памяти; в паре DE - длина файла.
#0С ЗАПИСЬ BASIC-ПРОГРАММЫ. С адреса 23773 - имя и тип файла (при
типе, отличном от "В", файл записывается под именем "BOOT").
#0D НЕТ КОМАНДЫ
#0Е ЧТЕ1ШЕ/ПРОВЕРКА ФАЙЛА. Имя и тип файла должны быть помеще-
ны с адреса 23773. Адрес загрузки файла берется из директории (при
аккумуляторе равном #00) или из регистровой пары DE (при аккумуля-
торе равном #03). Значение по адресу 23801: #00 - LOAD, #FF - VERIFY.
#0F НЕТ КОМАНДЫ
#10 НЕТ КОМАНДЫ
#11 НЕТ КОМАНДЫ
#12 УДАЛЕНИЕ ФАЙЛОВ. Имя и тип файла - с адреса 23773. Удаляются все
файлы с такими данными.
#13 Переписываются 16 байт информации из памяти, адресуемой регистро-
вой парой HL по адресу 23773
#14Переписываются 16 байт информации из 23773 в память по адресу
23773
#15 ПРОВЕРКА ДОРОЖКИ. Регистр D должен содержать номер проверяе-
мого физического трека.
#16 ЗАГРУЗКА СИСТЕМНОГО РЕГИСТРА. Код - в аккумуляторе. Предва-
рительно к нему прибавляется #ЗС.
#17 ВЫБРАТЬ НИЖНЮЮ СТОРОНУ.
# 18 НАСТРОЙКА НА ДИСК. Проверяет тип диска (8-й сектор директории)
Из машинного кода программы работы с примитивами и файлами вызываются по
адресу 15635 (#3D13). Код функции помещается в регистр С (описание команд
приведено выше). Параметры передаются через область системных переменных
TRDOS.
ФОРМАТ КАТАЛОГА ДИСКА
Каталог занимает на диске нулевую дорожку. Сектора с О по 7 используются для
хранения информации о файлах (по 16 байт на файл):
Байты |
Назначение |
U..7 |
Имя файла в ASCII |
8 |
Тип файла |
9,10 |
Параметр "START' |
11,12 |
Длина файла |
13 |
Об'ем файла в секторах |
14 |
Номер первого сектора файла |
15 |
Номер первого трека файла |
Если первый байт заголовка содержит значение #01, то файл считается удален-
ным. По значению #00 определяется конец каталога.
8-й сектор 0-й дорожки содержит информацио о диске в целом.
V
СОДЕРЖАНИЕ 8-го СЕКТОРА