MODULE ToTRDOS ;------------------------[ Enter points ]------------------------; x3D2F EQU #3D2F ;-------------------------[ TR-DOS API ]-------------------------; x3D13 EQU #3D13 .Reset EQU #00 .SetDrive EQU #01 .MoveToTrack EQU #02 .SetSector EQU #03 .SetBuffer EQU #04 .ReadSectors EQU #05 .WriteSectors EQU #06 .OutputDir EQU #07 .Get_FD EQU #08 ; FD - File Descriptor in RAM .Save_FD EQU #09 .FindFileInfo EQU #0A .CreateFile EQU #0B .CreateBasFile EQU #0C ;. EQU #0D .ReadVerifyFile EQU #0E ;. EQU #0F ;. EQU #10 ;. EQU #11 .DeleteFile EQU #12 .Set_FD EQU #13 .Copy_FD EQU #14 .TestTrack EQU #15 ;. EQU #16 .SetBottomSide EQU #17 .DiskInit EQU #18 ;-----------------------------------------------------------------; ; Рассмотрим команды интерпритатора: ; ; #00 - эта команда позволяет установить блок ; магнитных головок дисковода на нулевую дорожку и ; сбросить "сердце" микроконтроллера КР 1818ВГ93. ; Эту команду лучше всего применять в самом начале ; работы с точкой 15635. ; ; #01 - это команда настройки на дисковод. ; Служит для записи параметров дисковода ; (количество дорожек и скорость перемещения ; магнитных головок) в системмные переменные ; TR-DOS. Эту команду можно не выполнять, если ; вручную занести все характеристики по адресу ; 23752 (количество дорожек) и 23802 (скорость ; перемещения). Номер дисковода в аккумуляторе. ; ; Пример: ; ; LD A,#00 ; LD C,#01 ;Настройка на дисковод А ; CALL 15635 ; ; #02 - это позиционирование. Служит для ; перемещения блока магнитных головок на заданную ; дорожку. Номер сектора в аккумуляторе. ; ; Пример: ; ; LD A,#05 ; LD C,#02 ;Перемещение магнитных ; CALL 15635 головок на пятую дорожку. ; ; #03 - это команда установки номера сектора в ; аккумуляторе. ; ; Пример: ; ; LD A,#03 ; LD C,#03 ;Выбор 3-го сектора ; CALL 15635 ; ; #04 - установка адреса пользовательского ; буфера. Смотри #05 и #06. ; ; Пример: ; ; LD HL,Адрес буфера ; LD C,#04 ; CALL 15635 ; ; #05 - чтение группы секторов. Команда ; считывает в память с диска сектора, начиная с ; сектора заданного в регистре Е, расположенного на ; дорожке заданной в регистре D, в память начиная с ; адреса заданного в регистре HL. ; ; Пример: ; ; LD BC,#0805 ; LD DE,#0000 ; Считывание каталога ; LD HL,50000 ; диска в память, начиная ; CALL 15635 ; с адреса 50000 ; ; #06 - запись группы секторов. Команда ; записывает информацию из области памяти, заданной ; в регистре HL, на дорожку, заданную в регистре D, ; в сектор, заданный в регистре E. Количество целых ; секторов задается в регистре B. ; ; Пример: ; ; LD BC,#0106 ; LD DE,#08 ; Запись в служебный сектор ; ; информации из памяти ; LD HL,50000 ; начиная с адреса 50000 ; CALL 15635 ; ; #07 - вывод каталога диска. В аккумулятор ; помещается номер потока куда будет выведен ; каталог (#2-экран; #3-принтер). Номер дисковода ; задается по адресам 23798, 23800, 23801. ; ; Пример: ; ; LD A,#0 ; LD (23798),A ; LD (23800),A ; Выбор дисковода А. ; LD (23801),A ; LD A,#2 ; Выбираем вывод на экран. ; LD C,#7 ; CALL 15635 ; Печать католога на экране. ; ; #08 - считывание элемента каталога. Номер ; элемента задается в аккумуляторе. Эта команда ; позволяет считывать элемент каталога в дескриптор ; файла, расположенный по адресу с 23773 по 23788. ; ; Разберем по отдельности дескриптор файла: ; ; В адресах с 23773 по 23780 находиться имя ; файла. В адресе 23781 тип файла ; (C-CODE; B-BASIK; D-DATA и т.д). 23782-23783 при ; типе -стартовый адрес; при типе -длина ; бейсик программы. 23784-23785 длина файла. ; 23786-объем файла в секторах. 23787-номер первого ; сектора файла. 23788-номер первой дорожки файла. ; ; Пример: ; ; LD A,#02 ; LD C,#08 ;Считывание информации о третьем ; CALL 15635 ;файле в дескриптор. ; ; #09 - запись дескриптора файла. С помощью ; этой команды, дескриптор файла записывается в ; элемент каталога заданный в аккумуляторе. ; ; Пример: ; ; LD A,#02 ; LD C,#09 ;Запись дескриптора файла на место ; CALL 15635 ;3-го элемента каталога. ; ; #0A - поиск информации о файле. Эта команда ; используется для поиска в каталоге информации о ; фаиле. Исходная информация задается в ; дескрипторе. Количество байтов (шаблон) по ; которым ведется поиск задаются по адресу 23814. ; Там обычно записано число 9. ; ; #0B - функция создания файла. Имя и тип файла ; в дескрипторе, адрес в HL, длина в DE. ; ; #0C - создание бейсик файла. Эта команда ; аналогична предыдущей, только тип записываемой ; программы должен быть обязательно . Входной ; параметр в дескрипторе. ; ; #0E - команда чтения/проверки. Входные ; параметры должны быть помещены в дескриптор. По ; адресу 23801-вид операции #00-чтение; ; #FF-проверка. Для "не-BASIC" файлов адрес в HL ; длина в DE, в аккумуляторе число не равное 0 или ; 3. ; ; #0F; #10; #11; #16 - отсутствие действия. ; ; #12 - удаление файла. Эта команда ищет ; элемент каталога, совпадающий с дескриптором и ; удаляет его. ; ; #13 - эта команда копирует из памяти, адрес в ; HL, 16 байтов в дескриптор файла. ; ; #14 - эта команда работает наоборот, чем ; предыдущая. Копируется дескриптор в память, ; адресуемый регистром HL. ; ; #15 - тестирование дорожки. Номер дорожки в ; регистре D, номер стороны см. #17 или #02. ; В адресе 23766 счетчик сбойных секторов. ; ; #17 - выбор нижней стороны диска. ; ; Пример: ; ; LD C,#17 ; CALL 15635 ; ; #18 - настройка на диск. Эта команда ; считывает с диска служебный сектор и производит ; настройку некоторых переменных TR-DOS. Необходима ; при смене диска. ; Для тех у кого нет кнопки "MAGIC". Данная ; программа для этой кнопки находится по адресу ; 102. Попасть в нее можно через точку по адресу ; 15664, где находится команда RET. ; ; Пример: ; ; LD HL,адрес возврата ; PUSH HL ; LD HL,#102 ; PUSH HL ; JP 15664 ; ; И напоследок хочу привести назначение ; некоторых регистров. ; HL - этот регистр в основном используется как ; адресный регистр. ; DE - этот регистр используется в командах, ; где помимо основного адреса, нужен ещё один ; адрес. ; ; Пример: ; ; LD HL,основной адрес ; LD DE,вспомогательный адрес ; LD BC,количество пересылаемых байт ; LDIR ; ; BC - счётный регистр. В основном применяется ; как счётчик циклов, да и просто как счётчик. ; ; A - универсальный накопительный регистр. В ; самых первых моделях компьютеров был только один ; этот регистр. Основное применение находит при ; операциях сравнения и как 8-ми разрядный счетчик. ; Ну вот, наверное, и всё. Если найдете упущения, ; просьба сильно не ругать. Старался как мог.