░░░ ░░░░ ░░░░ ░░░░ ░░░░░ ░░░░▒▒▒▒░ ░░░░▒▒▒▒░ ░▒▒▒░
▒▓█▒ ░▓█▓░ ░▓█▓▓ ▒█▓▓ ▓▓█▓░ ▓▓█▓█▓█▓░ ▒▓█▓█▓█▓ ▒▓█▓█▓░
░▓█▓▓ ▒█▓▓░ ▒▓▓█▓ ░█▓▓▓▒▓▓▓░ ░██▓▓▓█▓█ ▓▓▓█▓▓▓▓ ▓█▓▓▓█▓░
▓█▓█▓░ ▓▓█▓░░█▓█▓▓ ▒▓█▓▓▓█▓▓ ▒█▓█▓█▓█▓ ▓▓█▓█▓█▒ ▒▓▓▒█▓█░
░▓█▓▓▒ █▓▓░▓▓▓▓█▓ ▒▓▓▓█▓▓░ ▒█▓▓ ▓▓█░ ░░░▓█▓░
▒█▓█▓▓ ▓█▓▓▓█▓█▓▓ ▒█▓█▓█▒ ▒▓█▓░▒▒░ ▓█▓▒▒▒▒ ░▓█▓▓
▓▓█▓▓▓░ █▓▓▓█▓▓▓█▓ ▒▓▓▓█▓▒ ▒█▓▓▓█▓▓░ ▓▓█▓▓▓▓ ▒▓▓▓░
░▓█▓▒▓█▒ ▓█▓█▓█▓█▓▓ ▒█▓█▓█▓░ ▒▓█▓▓▓█▓▓ ▓█▓▓▒▒▒ ░▓█▓▓░
▒▓▓▒░▓▓▓ █▓▓▓█▒▒▓█▓ ▒▓▓▓█▓▓▒ ▒█▓▓ ▓▓▓▓░ ▓▓█░ ░░ ░██▓▓
░▓▓█░ ▓█▓░ ▓█▓█▓░▒█▓█▒ ▒█▓▓▒█▓█░ ▒▓█▓ ▒█▓█░ ▓█▓█▓█▓░░▓▓▓▓█▓█▓
▒▓▓▓ ▒▓█▓ █▓▓▓░ ▒▓█▓░ ▒▓▓▓░▓▓▓▓ ▒█▓▓▓█▓▓▓ ▓▓█▓▓▓█ ▓▓█▓▓▓█▓▒
▒█▓▒ ░█▓▓░ ▓█▓▓ ▒█▓▓ ▒█▓▓ ▒▓█▓░ ▒▓█▓█▓█▓░ ▓█▓█▓█▓ ░▓▓█▓█▓▓░
░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░░░░ ░░░░░░░ ░░░░░
(c) П.Федин
ПОЛНОЕ ОПИСАНИЕ + ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ TR-DOS 5.04 (5.03)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
продолжение
Адрес 8138. Определение количества дорожек дисковода. Вход: ус-
тановите время перемещения головки дисковода. Выход: в 23767 и
регистре A будет количество дорожек дисковода.
8138 CALL 15880 ;берем время перемещения головки
OR 17 ;позиционирование на дорожку 50
LD B,A
LD A,50
CALL 15940
LD A,2 ;затем на дорожку 2
CALL 15940
CALL 15869 ;задержка в 725779 тактов
IN A,(31) ;головка в исходном положении ?
AND 4
LD A,80 ;если нет, то у дисковода 80 дорожек
JR Z,8167
LD A,40 ;иначе 40
8167 LD (23767),A;установка количества дорожек
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 8171. Выбор верхней стороны диска. Установите 23830. Ис-
пользуется также с адреса 8176 (загрузка системного регистра,
код - в аккумуляторе). Вы можете также использовать с адреса
8179 для прямого вывода в порт 255.
8171 LD A,(23830);берем копию системного регистра
OR 60 ;формат MFM, верхняя сторона, выключение сбро-
са и готовности
8176 LD (23830),A;запоминаем копию системного регистра
8179 OUT (255),A ;установка системного регистра
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 8182. Выбор нижней стороны диска. Установите 23830.
8182 LD A,(23830);берем копию системного регистра
AND 111 ;формат MFM, нижняя сторона, выключение сбро-
са и готовности
JR 8176 ;установка системного регистра
────────────────────────────────────────────────────────────────
Адрес 8189. Форматирование дорожки. В регистр Е поместите ее но-
мер и спозиционируйте головку дисковода. Из переменных установи-
те 23768, 23782, 23784 и обнулите 23766. Используется также с
адреса 8137 (проверка дорожки; установите 23768, 23784 и обнули-
те 23766 и спозиционируйте головку).
8189 DI ;запрет прерываний
LD A,244 ;запись дорожки
OUT (31),A
LD HL,(23782);берем адрес таблицы секторов для форматиро-
вания
LD C,127 ;адрес регистра данных
8199 LD B,10 ;10 раз 78 (первый пробел)
LD D,78
CALL 8369 ;запись байта заданное число раз
LD B,12 ;синхропромежуток
LD D,0
CALL 8369
LD B,3 ;синхроимпульс
LD D,245
CALL 8369
LD D,254 ;1 раз 254 (адресная метка идентификатора)
CALL 8367 ;запись байта 1 раз
LD D,E ;номер дорожки
CALL 8367
LD D,0 ;номер стороны (в TR-DOS всегда 0)
CALL 8367
LD D,(HL) ;номер сектора из таблицы
CALL 8367
LD D,1 ;длина сектора - 256 байтов
CALL 8367
LD D,247 ;запись контрольной суммы
CALL 8367
LD B,22 ;второй пробел
LD D,78
CALL 8369
LD B,12 ;синхропромежуток
LD D,0
CALL 8369
LD B,3 ;синхроимпульс
LD D,245
CALL 8369
LD D,251 ;адресная метка данных
CALL 8367
LD B,0 ;данные (256 нулей)
LD D,0
CALL 8369
LD D,247 ;запись контрольной суммы
CALL 8367
LD B,60 ;третий пробел
LD D,78
CALL 8369
LD A,(HL) ;берем адрес номера следующего сектора
INC HL
CP 16 ;конец таблицы ?
JR NZ,8199 ;если нет, то форматирование следующего сек-
тора
LD B,0 ;пробел до конца дорожки
CALL 8369
JP M,8310
CALL 8369
8310 IN A,(31) ;берем состояние контроллера
AND 64 ;запись запрещена ?
JP NZ,16185 ;если да, то сообщение READ ONLY
8317 LD A,(23768) ;дорожку проверять ?
OR A
RET NZ ;если нет, то возврат
Внимание!!! Перед возвратом или выходом по ошибке надо разрешать
прерывания.
продолжение следует ...
Other articles: