; MACRO _mNoDrive_5xTable numberOFdrives, byteOFword IF byteOFword DUP numberOFdrives DB high FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика DB high FN_ABSENT_5x ;#51 DB high FN_ABSENT_5x ;#52 DB high FN_ABSENT_5x ;#53 DB high FN_ABSENT_5x ;#54 DB high FN_ABSENT_5x ;#55 DB high FN_ABSENT_5x ;#56 DB high FN_ABSENT_5x ;#57 DB high FN_ABSENT_5x ;#58 DB high FN_ABSENT_5x ;#59 DB high DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика DB high FN_ABSENT_5x ;#5E DB high DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика EDUP ELSE DUP numberOFdrives DB low FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика DB low FN_ABSENT_5x ;#51 DB low FN_ABSENT_5x ;#52 DB low FN_ABSENT_5x ;#53 DB low FN_ABSENT_5x ;#54 DB low FN_ABSENT_5x ;#55 DB low FN_ABSENT_5x ;#56 DB low FN_ABSENT_5x ;#57 DB low FN_ABSENT_5x ;#58 DB low FN_ABSENT_5x ;#59 DB low DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика DB low DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика EDUP ENDIF ENDM ; _mInfoALIGN 256,0 ;=========================================================[ MAIN TABLE ] ; !FIXIT поправить в доке названия функций, часть не совпадает TAB_FNS: ; 00 - #3F DUP #40 DB low FN_RESERVED EDUP ; ; #4x ;-------------- DB low FN_HDD_INIT ; #40 Инициализация винчестера DB low FN_HDD_RECAL ; #41 Рекалибровка винчестера DB low FN_HDD_TEST_IDE ; #42 Тест наличия интерфейса IDE DB low FN_HDD_PREPARE ; #43 Подготовка винчестера к операции чтения/записи DB low FN_HDD_READ_BPB ; #44 Читать BPB первого раздела DB low FN_HDD_READ ; #45 Читать сектора с винчестера DB low FN_HDD_WRITE ; #46 Писать сектора на винчестер DB low FN_HDD_PART ; #47 set IDE number (Настройка партиций и master/slave)??? DB low FN_HDD_READ_NEXT ; #48 Читать следующий сектор (ONLY FOR LBA!) DB low FN_RESERVED ; #49 DB low FN_RESERVED ; #4A DB low FN_RESERVED ; #4B DB low FN_RESERVED ; #4C DB low FN_RESERVED ; #4D DB low FN_RESERVED ; #4E DB low FN_RESERVED ; #4F ;-------------- ; ; 5x ;-------------- DB low FN_RESERVED_5x ;#50 DB low FN_5x_Parser_1 ;#51 - Reset drive DB low FN_5x_Parser_2 ;#52 - Long read DB low FN_5x_Parser_3 ;#53 - Long write DB low FN_5x_Parser_4 ;#54 - Verify sectors DB low FN_5x_Parser_5 ;#55 - Read sectors DB low FN_5x_Parser_6 ;#56 - Write sectors DB low FN_5x_Parser_7 ;#57 - Detect DB low FN_5x_Parser_8 ;#58 - Get Media parameters DB low FN_5x_Parser_9 ;#59 - Set Media parameters DB low DRV_VERSION ;#5A - Version number DB low FN_RESERVED_5x ;#5B DB low FN_RESERVED_5x ;#5C DB low FN_RESERVED_5x ;#5D DB low FN_5x_Parser_E ;#5E DB low DRV_LIST ;#5F ;-------------- ; 60 - #7F DUP #20 DB low FN_RESERVED EDUP ; 8x DB low LP_OPEN_S ; #80 открытие окна DB low LP_PRINT_ALL ; #81 печать символа в окно DB low LP_PRINT_SYM ; #82 печать символа без атр DB low LP_PRINT_ATR ; #83 печать только атрибута DB low LP_SET_PLACE ; #84 установка позиции печати DB low LP_PRINT_LINE ; #85 печать строки длиной B DB low LP_PRINT_LINE2 ; #86 печать строки -//- без атрибутов DB low LP_PRINT_LINE3 ; #87 печать строки длиной B до D DB low LP_PRINT_LINE4 ; #88 печать строки -//- без атрибутов DB low LP_CLS_WIN ; #89 DB low LP_SCROLL_UD ; #8A DB low LP_PRINT_LINE5 ; #8B DB low LP_PRINT_LINE6 ; #8C DB low LP_CLS_WIN2 ; #8D DB low LP_GET_PLACE ; #8E DB low FN_TURBO ; #8F ; 9x DB low EMM.GetMemSize ; #90 неразрушающее определение объема ОЗУ. DB low EMM.InitMem ; #91 инициализация распределения памяти DB low EMM.GetMemRMD ; #92 получить блок памяти для рамдиска DB low EMM.FreeMemRMD ; #93 освободить блок памяти рамдиска DB low EMM.GetMemPageRMD ; #94 получить номерa страниц RAM-Disk DB low EMM.GetMemPageNext ; #95 получить следующую страницу DB low EMM.GetBanksPorts ; #96 получить адреса портов DB low EMM.CheckColdInit ; #97 проверка на холодный старт и инициализации если он ;????? нужна ли как API? DB low RAMD_CALC_PAGE ; #98 Вычисление страницы и адреса в RAM-Disk по абсолютному номеру сектора DB low SET_DISK_REDIR ; #99 Установить на текущий драйв переназначение (старая функция для TR-DOS!) ;????? DB low GET_DISK_REDIR ; #9A Получить тип назначения на текущий драйв (старая функция для TR-DOS!) DB low GET_RAMD_NUM ; #9B получить номер ram disk по его block id DB low SWAP_RAM_DRIVES ; #9C сменить набор рамдисков ZX <-> Sp2000 DB low EMM.DivMemBlocks ; #9D разделения блока на два. DB low EMM.MergeMemBlocks ; #9E слияние двух блоков DB low EMM.FullInit ; #9F инициализация всей памяти, системных переменных ; Ax DB low PIC_FN0 ; #A0 ОТКРЫТИЕ ОКНА - Fn 0A0h DB low PIC_FN1 ; #A1 ВЫВЕСТИ ТОЧКУ DB low PIC_FN2 ; #A2 ВЫВОД ЛИНИИ COPY DB low PIC_FN3 ; #A3 ВЫВОД ЛИНИИ FILL DB low PIC_SET_PAL ; #A4 ВЫВОД ПАЛИТРЫ DB low PIC_FN5 ; #A5 УСТАНОВКА RGMOD DB low SET_PAL_INIT ; #A6 A - page_pal, E - номер палитры, B - тип палитры DB low PIC_FN7 ; #A7 Рисование линии одного цвета DB low PIC_FN8 ; #A8 Рисование разноцветной линии DB low PIC_FN9 ; #A9 нет DB low PIC_FN10 ; #AA нет DB low PIC_FN11 ; #AB нет DB low PIC_FN12 ; #AC нет DB low PIC_FN14 ; #AD нет DB low PIC_FN14 ; #AE нет DB low PIC_FN15 ; #AF нет ; Bx DB low WIN_OPEN ; #B0 открытие окна по описателю DB low WIN_CLOSE ; #B1 закрытие окна DB low WIN_COPY ; #B2 сохранение текстового окна в памяти DB low WIN_RESTORE ; #B3 восстановление текстового окна из памяти DB low WIN_GET_SYM ; #B4 взять символ DB low WIN_PUT_SYM ; #B5 положить символ DB low WIN_SET_ZG ; #B6 загрузка знакогенератора DB low WIN_MOVE ; #B7 переместить окно DB low WIN_GET_ZG ; #B8 получить знакогенератор DB low FN_RESERVED ; #B9 DB low FN_RESERVED ; #BA DB low FN_RESERVED ; #BB DB low FN_RESERVED ; #BC DB low FN_RESERVED ; #BD DB low FN_RESERVED ; #BE DB low FN_RESERVED ; #BF ; Cx DB low EMM.GetMemSize ; #C0 получить данные об объеме памяти и кол-во своб. стр. DB low EMM.InitMem ; #C1 инициализация распределения памяти DB low EMM.GetMem ; #C2 получить блок памяти DB low EMM.FreeMem ; #C3 освободить блок памяти DB low EMM.GetMemPage ; #C4 получить номер страницы в блоке памяти DB low EMM.GetMemBlkPages ; #C5 получить список страниц блока памяти DB low EMM.GetBanksPorts ; #C6 получить адреса портов окон DB low EMM.GetMemPageNext ; #C7 получить следующую страницу блока DB low BLK_RD_WR ; #C8 функция чтения/записи в блок памяти DB low BLK_TO_RAMD ; #C9 назначить блок RAM-Disk-у DB low RAMD_CLEAR ; #CA освободить RAM-Disk DB low RAMD_TO_DRV ; #CB назначить RAM-Disk на дисковод DB low FDD_TO_DRV ; #CC назначить REAL_DRIVE на дисковод DB low HDD_TO_DRV ; #CD назначить HDD на дисковод DB low GET_RAMD_ST ; #CE получить тип назначения на RAM-Disk DB low GET_DRV_ST ; #CF получить тип назначения на дисковод ; Dx DB low FN_LIB ; #D0 DB low FN_LIB ; #D1 DB low FN_LIB ; #D2 DB low FN_LIB ; #D3 DB low FN_LIB ; #D4 DB low FN_LIB ; #D5 DB low FN_LIB ; #D6 DB low FN_LIB ; #D7 DB low FN_LIB ; #D8 DB low FN_LIB ; #D9 DB low FN_LIB ; #DA DB low FN_LIB ; #DB DB low FN_LIB ; #DC DB low FN_LIB ; #DD DB low FN_LIB ; #DE DB low FN_LIB ; #DF ; Ex DB low LP_PR_LINE_DIR ; #E0 DB low FN_RESERVED ; #E1 DB low FN_RESERVED ; #E2 DB low FN_RESERVED ; #E3 DB low FN_RESERVED ; #E4 DB low FN_RESERVED ; #E5 DB low FN_RESERVED ; #E6 DB low FN_RESERVED ; #E7 DB low FN_SEND_BYTE ; #E8 послать байт через PC_link DB low FN_RESEIVE_B ; #E9 принять байт через PC_link DB low FN_KBD_OUT ; #EA послать байт в клавиатуру DB low FN_RESERVED ; #EB DB low FN_RESERVED ; #EC DB low FN_CRIPT ; #ED DB low RST_CONF.AY8910 ; #EE для совместимости с софтом Sp97 DB low FN_VERSION ; #EF ; Fx DB low RST_CONF.SP97_1 ; #F0 для совместимости с софтом Sp97 DB low RST_CONF.SP97_2 ; #F1 для совместимости с софтом Sp97 DB low FN_SYNC ; #F2 установка синхронизации DB low RST_CONF.CUSTOM ; #F3 для совместимости с софтом Sp97 DB low DCP_CONFIG ; #F4 функция распределения портов ; [x] DB low CMOS_TEST ; #F5 DB low CMOS_RD ; #F6 DB low CMOS_WR ; #F7 DB low SET_PORTS ; #F8 DB low READ_PORTS ; #F9 [x] 26/01/2024 DB low FN_RESERVED ; #FA [x] 26/01/2024 не работала и не нужна, дублирует SET_PORTS DB low GOTO_SPEC ; #FB Goto Spectrum! DB low ZX_MEMORY_MANAGER ; #FC API для динамического выделения страниц Спектрума DB low REINIT ; #FD DB low FN_RESERVED ; #FE SAVE_AUTOSTART. Есть в ZX_EXP.ASM DB low FN_VERSION ; #FF ;****************----------------------------************************----------------- ; 00 - #3F DUP #40 DB high FN_RESERVED EDUP ; ;-------------- DB high FN_HDD_INIT DB high FN_HDD_RECAL DB high FN_HDD_TEST_IDE DB high FN_HDD_PREPARE DB high FN_HDD_READ_BPB DB high FN_HDD_READ DB high FN_HDD_WRITE DB high FN_HDD_PART DB high FN_HDD_READ_NEXT DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED ;-------------- ;-------------- DB high FN_RESERVED_5x DB high FN_5x_Parser_1 DB high FN_5x_Parser_2 DB high FN_5x_Parser_3 DB high FN_5x_Parser_4 DB high FN_5x_Parser_5 DB high FN_5x_Parser_6 DB high FN_5x_Parser_7 DB high FN_5x_Parser_8 DB high FN_5x_Parser_9 DB high DRV_VERSION DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_5x_Parser_E DB high DRV_LIST ;-------------- ; 60 - #7F DUP #20 DB high FN_RESERVED EDUP ; 8x DB high LP_OPEN_S DB high LP_PRINT_ALL DB high LP_PRINT_SYM DB high LP_PRINT_ATR DB high LP_SET_PLACE DB high LP_PRINT_LINE DB high LP_PRINT_LINE2 DB high LP_PRINT_LINE3 DB high LP_PRINT_LINE4 DB high LP_CLS_WIN DB high LP_SCROLL_UD DB high LP_PRINT_LINE5 DB high LP_PRINT_LINE6 DB high LP_CLS_WIN2 DB high LP_GET_PLACE DB high FN_TURBO ; 9x DB high EMM.GetMemSize DB high EMM.InitMem DB high EMM.GetMemRMD DB high EMM.FreeMemRMD DB high EMM.GetMemPageRMD DB high EMM.GetMemPageNext DB high EMM.GetBanksPorts DB high EMM.CheckColdInit DB high RAMD_CALC_PAGE DB high SET_DISK_REDIR DB high GET_DISK_REDIR DB high GET_RAMD_NUM DB high SWAP_RAM_DRIVES DB high EMM.DivMemBlocks DB high EMM.MergeMemBlocks DB high EMM.FullInit ; Ax DB high PIC_FN0 DB high PIC_FN1 DB high PIC_FN2 DB high PIC_FN3 DB high PIC_SET_PAL DB high PIC_FN5 DB high SET_PAL_INIT DB high PIC_FN7 DB high PIC_FN8 DB high PIC_FN9 DB high PIC_FN10 DB high PIC_FN11 DB high PIC_FN12 DB high PIC_FN14 DB high PIC_FN14 DB high PIC_FN15 ; Bx DB high WIN_OPEN DB high WIN_CLOSE DB high WIN_COPY DB high WIN_RESTORE DB high WIN_GET_SYM DB high WIN_PUT_SYM DB high WIN_SET_ZG DB high WIN_MOVE DB high WIN_GET_ZG DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED ; Cx DB high EMM.GetMemSize DB high EMM.InitMem DB high EMM.GetMem DB high EMM.FreeMem DB high EMM.GetMemPage DB high EMM.GetMemBlkPages DB high EMM.GetBanksPorts DB high EMM.GetMemPageNext DB high BLK_RD_WR DB high BLK_TO_RAMD DB high RAMD_CLEAR DB high RAMD_TO_DRV DB high FDD_TO_DRV DB high HDD_TO_DRV DB high GET_RAMD_ST DB high GET_DRV_ST ; Dx DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB DB high FN_LIB ; Ex DB high LP_PR_LINE_DIR DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED DB high FN_SEND_BYTE DB high FN_RESEIVE_B DB high FN_KBD_OUT DB high FN_RESERVED DB high FN_RESERVED DB high FN_CRIPT DB high RST_CONF.AY8910 DB high FN_VERSION ; Fx DB high RST_CONF.SP97_1 DB high RST_CONF.SP97_2 DB high FN_SYNC DB high RST_CONF.CUSTOM DB high DCP_CONFIG DB high CMOS_TEST DB high CMOS_RD DB high CMOS_WR DB high SET_PORTS DB high READ_PORTS DB high FN_RESERVED DB high GOTO_SPEC DB high ZX_MEMORY_MANAGER DB high REINIT DB high FN_RESERVED DB high FN_VERSION //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// ; ; ,----, ,----,. ; ,/ .`| ,' ,' | ; ,` .' : ,--, ,' .' | ; ; ; / ,---, ,--.'| ,----.' .' ; .'___,/ ,' ,---.'| | | : | | .' ; | : | | | : : : ' : : |--, ,--, ,--, ; ; |.'; ; ,--.--. : : : | ' | ,---. : | ;.' \|'. \/ .`| ; `----' | | / \ : |,-.' | | / \ | | |' \/ / ; ; ' : ;.--. .-. || : ' || | : / / | `----'.'\ ; \ \.' / ; | | ' \__\/: . .| | / :' : |__ . ' / | __ \ . | \ ; ; ; ' : | ," .--.; |' : |: || | '.'|' ; /| / /\/ / : / \ \ \ ; ; |.' / / ,. || | '/ :; : ;' | / | / ,,/ ',- ./__; ; \ ; '---' ; : .' \ : || , / | : | \ ''\ ;| :/\ \ ; ; | , .-./ \ / ---`-' \ \ / \ \ .' `---' `--` ; `--`---' `-'----' `----' `--`-,-' //////////////////////////////////////////////////////////////////////////////////////// _mInfoALIGN 256,0 ;===========================================================[ 5x TABLE ] ; Drives Numbers: ; 0 FDD ; 1..5 reserved ; 6 RAM-DRV ; 7 reserved ; 8 HDD ; 9..B reserved ; C CDROM ; D..F reserved TAB_5xFNS: ; --< LOW PART >-- ;-------------------------------------------------------------[ FDD #0 ] ; DB low FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика DB low FDD_5x_RESET ;#51 DB low FDD_5x_LONG_READ ;#52 DB low FDD_5x_LONG_WRITE ;#53 DB low FN_ABSENT_5x ;#54 DB low FDD_5x_READ ;#55 DB low FDD_5x_WRITE ;#56 DB low FDD_5x_DETECT ;#57 DB low FDD_5x_GETMED ;#58 DB low FDD_5x_SETMED ;#59 DB low DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика DB low FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика DB low FN_ABSENT_5x ;#5E - Дубль. На эту функцию прыгает из основного обработчика DB low DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика ; ;---------------------------------------------------------------------[] ;-----------------------------[ #1..#5 ] _mNoDrive_5xTable 5, 0 ;-------------------------------------[] ;-------------------------------------------------------[ RAM DRIVE #6 ] ; DB low FN_RESERVED_5x DB low FN_ABSENT_5x DB low RMD_5x_LONG_READ DB low RMD_5x_LONG_WRITE DB low FN_ABSENT_5x DB low RMD_5x_READ DB low RMD_5x_WRITE DB low FN_ABSENT_5x DB low RMD_5x_GETMED DB low RMD_5x_SETMED DB low DRV_VERSION DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low FN_ABSENT_5x DB low DRV_LIST ;---------------------------------------------------------------------[] ;---------------------------------[ #7 ] _mNoDrive_5xTable 1, 0 ;-------------------------------------[] ;-------------------------------------------------------------[ HDD #8 ] ; DB low FN_RESERVED_5x DB low HDD_5x_RESET DB low HDD_5x_LONG_READ DB low HDD_5x_LONG_WRITE DB low HDD_5x_VERIFY DB low HDD_5x_READ DB low HDD_5x_WRITE DB low HDD_5x_DETECT DB low HDD_5x_GETMED DB low HDD_5x_SETMED DB low DRV_VERSION DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low FN_ABSENT_5x DB low DRV_LIST ;---------------------------------------------------------------------[] ;-----------------------------[ #9..#B ] _mNoDrive_5xTable 3, 0 ;-------------------------------------[] ;----------------------------------------------------------[ CDROM #C0 ] ; DB low FN_RESERVED_5x DB low CD_5x_RESET DB low CD_5x_LONG_READ DB low CD_5x_LONG_WRITE ; LONG_WRITE ; [ ] new DB low FN_ABSENT_5x ; VERIFY DB low CD_5x_READ DB low CD_5x_WRITE ; WRITE ; [ ] new DB low CD_5x_DETECT DB low FN_ABSENT_5x ; GETMED DB low FN_ABSENT_5x ; SETMED DB low DRV_VERSION DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low FN_RESERVED_5x DB low CD_5x_Extended DB low DRV_LIST ;---------------------------------------------------------------------[] ;-----------------------------[ #D..#F ] _mNoDrive_5xTable 3, 0 ;-------------------------------------[] ; ; --< HIGH PART >-- ;-------------------------------------------------------------[ FDD #0 ] ; DB high FN_RESERVED_5x ;#50 - Дубль. На эту функцию прыгает из основного обработчика DB high FDD_5x_RESET ;#51 DB high FDD_5x_LONG_READ ;#52 DB high FDD_5x_LONG_WRITE ;#53 DB high FN_ABSENT_5x ;#54 DB high FDD_5x_READ ;#55 DB high FDD_5x_WRITE ;#56 DB high FDD_5x_DETECT ;#57 DB high FDD_5x_GETMED ;#58 DB high FDD_5x_SETMED ;#59 DB high DRV_VERSION ;#5A - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5B - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5C - Дубль. На эту функцию прыгает из основного обработчика DB high FN_RESERVED_5x ;#5D - Дубль. На эту функцию прыгает из основного обработчика DB high FN_ABSENT_5x ;#5E - Extended functions DB high DRV_LIST ;#5F - Дубль. На эту функцию прыгает из основного обработчика ; ;---------------------------------------------------------------------[] ;-----------------------------[ #1..#5 ] _mNoDrive_5xTable 5, 1 ;-------------------------------------[] ;-------------------------------------------------------[ RAM DRIVE #6 ] ; DB high FN_RESERVED_5x DB high FN_ABSENT_5x DB high RMD_5x_LONG_READ DB high RMD_5x_LONG_WRITE DB high FN_ABSENT_5x DB high RMD_5x_READ DB high RMD_5x_WRITE DB high FN_ABSENT_5x DB high RMD_5x_GETMED DB high RMD_5x_SETMED DB high DRV_VERSION DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_ABSENT_5x DB high DRV_LIST ;---------------------------------------------------------------------[] ;---------------------------------[ #7 ] _mNoDrive_5xTable 1, 1 ;-------------------------------------[] ;-------------------------------------------------------------[ HDD #8 ] ; DB high FN_RESERVED_5x DB high HDD_5x_RESET DB high HDD_5x_LONG_READ DB high HDD_5x_LONG_WRITE DB high HDD_5x_VERIFY DB high HDD_5x_READ DB high HDD_5x_WRITE DB high HDD_5x_DETECT DB high HDD_5x_GETMED DB high HDD_5x_SETMED DB high DRV_VERSION DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_ABSENT_5x DB high DRV_LIST ;---------------------------------------------------------------------[] ;-----------------------------[ #9..#B ] _mNoDrive_5xTable 3, 1 ;-------------------------------------[] ;----------------------------------------------------------[ CDROM #C0 ] ; DB high FN_RESERVED_5x DB high CD_5x_RESET DB high CD_5x_LONG_READ DB high CD_5x_LONG_WRITE ; LONG_WRITE ; [ ] new DB high FN_ABSENT_5x DB high CD_5x_READ DB high CD_5x_WRITE ; WRITE ; [ ] new DB high CD_5x_DETECT DB high FN_ABSENT_5x DB high FN_ABSENT_5x DB high DRV_VERSION DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high FN_RESERVED_5x DB high CD_5x_Extended DB high DRV_LIST ;---------------------------------------------------------------------[] ;-----------------------------[ #D..#F ] _mNoDrive_5xTable 3, 1 ;-------------------------------------[] ;======================================================================; ;************************************ ; Вход в функцию по RST18 и RST8 EXP_FNS_RST18: PUSH HL LD L,C LD H,high TAB_FNS LD C,(HL) INC H LD H,(HL) LD L,C EX (SP),HL RET ; HDD_5x_RESET ; HDD_5x_LONG_READ ; HDD_5x_LONG_WRITE ; HDD_5x_VERIFY ; HDD_5x_READ ; HDD_5x_WRITE ; HDD_5x_DETECT ; HDD_5x_GETMED ; HDD_5x_SETMED ; DRV_VERSION ; FN_RESERVED_5x ; FN_RESERVED_5x ; FN_RESERVED_5x ; FN_RESERVED_5x ; DRV_LIST FN_5x_Parser_1: ; HDD_5x_RESET LD C,#01 JP FN_5x_Parser FN_5x_Parser_2: ; HDD_5x_LONG_READ LD C,#02 JP FN_5x_Parser FN_5x_Parser_3: ; HDD_5x_LONG_WRITE LD C,#03 JP FN_5x_Parser FN_5x_Parser_4: ; HDD_5x_VERIFY LD C,#04 JP FN_5x_Parser FN_5x_Parser_6: ; HDD_5x_WRITE LD C,#06 JP FN_5x_Parser FN_5x_Parser_7: ; HDD_5x_DETECT LD C,#07 JP FN_5x_Parser FN_5x_Parser_8: ; HDD_5x_GETMED LD C,#08 JP FN_5x_Parser FN_5x_Parser_9: ; HDD_5x_SETMED LD C,#09 JP FN_5x_Parser FN_5x_Parser_E: ; DRV_EXTENDED LD C,#0E JP FN_5x_Parser FN_5x_Parser_5: ; HDD_5x_READ LD C,5 FN_5x_Parser: PUSH HL LD H,A AND #F0 OR C ; тут в A номер УСТРОЙСТВА + НОМЕР ФУНКЦИИ LD L,A LD A,H LD H,high TAB_5xFNS LD C,(HL) INC H LD H,(HL) LD L,C EX (SP),HL RET ; Вход в функции БИОС из TR-DOS EXP_FNS:; отключаем запись в экран спектрума ;EX (SP),HL ;IN A,(RGADR) ;LD L,A ;LD A,#C0 ;OUT (PORT_Y),A ;LD A,H ;EX (SP),HL ; (SP) = port_y POP AF ; CALL EXP_FNS_RST18 CALL DOS_ON ; возвращаем запись в экран спектрума ;EX (SP),HL ;PUSH AF ;LD A,L ;OUT (RGADR),A ;POP AF ;POP HL ; возврат JP EXP_FNS_RET ;! ! ! ! ! ! ! ! FN_RESERVED_5x: LD A,BIOS.Error.InvalidSubFunction FN_RESERVED: SCF RET FN_ABSENT_5x: LD A,BIOS.Error.NotSupported SCF RET ;! ! ! ! ! ! ! ! ;