diff --git a/constants/TRDOS.z80 b/constants/TRDOS.z80 new file mode 100644 index 0000000..812130c --- /dev/null +++ b/constants/TRDOS.z80 @@ -0,0 +1,244 @@ + 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-ми разрядный счетчик. +; Ну вот, наверное, и всё. Если найдете упущения, +; просьба сильно не ругать. Старался как мог. \ No newline at end of file