From 349ba286106d21a77cf3f8a25b6f7c952eccb046 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 21 Nov 2023 23:55:14 +1000 Subject: [PATCH] ... --- constants/BIOS_equ.inc | 82 +++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/constants/BIOS_equ.inc b/constants/BIOS_equ.inc index 6e29805..236fde7 100644 --- a/constants/BIOS_equ.inc +++ b/constants/BIOS_equ.inc @@ -3,14 +3,14 @@ DZ 'Starting...' ENDM ; -;[Вызов функций]----------------------- +;[Вызов функций]--------------------------------; ToBIOS EQU #08 ; для вызова из ОЗУ в SLOT0 (например из DSS) ToBIOS_18 EQU #18 ; для вызова из 8-й страницы ПЗУ в SLOT0 ToBIOS_3D13 EQU #3D13 ; для вызова из 8-й страницы ПЗУ в SLOT0 ToBIOS_FromEXT EQU #3FD0 ; для вызова из 0-й страницы ПЗУ в SLOT0 -;--------------------------------------- +;-----------------------------------------------; BIOS: -;[Функции работы с памятью]------------- +;[Функции работы с памятью]---------------------; .GetMemSize EQU #C0 ;#90 ; Определение объемов ОЗУ .InitMem EQU #C1 ;#91 ; Инициализация распределения памяти. .GetMem EQU #C2 ; Выделение блока ОЗУ @@ -26,7 +26,7 @@ BIOS: .SWAP_RAM_DRIVES.Info EQU #FE9C ; Узнать какой режим РАМ дисков установлен .DivMemBlocks EQU #9D ; Разделение блока .MergeMemBlocks EQU #9E ; Слияние блоков -;--------------------------------------- +;-----------------------------------------------; ;[Работа с блоками ОЗУ, как с RAM-Disks] .BLK_RD_WR EQU #C8 ; Чтение/запись из/в блок памяти секторами по 256 байт @@ -37,16 +37,16 @@ BIOS: .BLK_TO_RAMD EQU #C9 ; Назначить блок памяти RAM-Disk-у .RAMD_CLEAR EQU #CA ; Освободить RAM-Disk .GET_RAMD_ST EQU #CE ; Получение идентификатора блока, назначенного на RAM-Disk -;--------------------------------------- +;-----------------------------------------------; -;[Управление назначением на дисководы]-- +;[Управление назначением на дисководы]----------; .RAMD_TO_DRV EQU #CB ; Назначение RAM-Disk на дисковод TR-DOS .FDD_TO_DRV EQU #CC ; Назначение физического дисковода на логический .HDD_TO_DRV EQU #CD ; Назначение винчестера на дисковод .GET_DRV_ST EQU #CF ; Получить тип назначения на логический дисковод -;--------------------------------------- +;-----------------------------------------------; -;[Управление окнами и режимами экрана]-- +;[Управление окнами и режимами экрана]----------; .WIN_OPEN EQU #B0 ; Функция открытия окна. .WIN_CLOSE EQU #B1 ; закрытие окна .WIN_COPY EQU #B2 ; Копирование данных текстового окна в память (запоминание окна) @@ -56,9 +56,9 @@ BIOS: .WIN_SET_ZG EQU #B6 ; установка знакогенератора .WIN_MOVE EQU #B7 ; Перемещение окна .WIN_GET_ZG EQU #B8 ; Получение знакогенератора -;--------------------------------------- +;-----------------------------------------------; -;[Функции печати и упр. режимом экрана]- +;[Функции печати и упр. режимом экрана]---------; .LP_OPEN_S EQU #80 ; Открытие стандартных окон. .LP_OPEN_S.ZX_32x24_Default EQU #0080 ; спектрумовское окно 32x24 .LP_OPEN_S.TXT_64x24_Default EQU #0180 ; текстовое окно 64x24 @@ -86,16 +86,16 @@ BIOS: .LP_CLS_WIN2 EQU #8D ; Очистка экрана с указанием символа заполнения .LP_GET_PLACE EQU #8E ; Получить текущее положение вывода на экран .LP_PR_LINE_DIR EQU #E0 ;!TODO недоделана. Печать "в консоль" до разделителя -;--------------------------------------- +;-----------------------------------------------; -;[Графические функции]------------------ +;[Графические функции]--------------------------; .PIC_POINT EQU #A1 ; Установить точку .PIC_SET_PAL EQU #A4 ; Установка палитры .PIC_GET_PAL EQU #A4 ; Чтение палитры (номер такой же как у .PIC_SET_PAL) .SET_PAL_INIT EQU #A6 ; Установка внутренней палитры -;--------------------------------------- +;-----------------------------------------------; -;[Работа с HDD. #4X (fast)]------------- +;[Работа с HDD. #4X (fast)]---------------------; .HDD_INIT EQU #40 ; Инициализация винчестера .HDD_RECAL EQU #41 ; Рекалибровка винчестера .HDD_TEST_IDE EQU #42 ; Тест наличия интерфейса IDE @@ -105,9 +105,9 @@ BIOS: .HDD_WRITE EQU #46 ; Писать сектора на винчестер .HDD_PART EQU #47 ; Настройка партиций и master/slave .HDD_READ_NEXT EQU #48 ; Читать следующий сектор (ONLY FOR LBA!) -;--------------------------------------- +;-----------------------------------------------; -;[Работа с HDD и дисководами. #5X]------ +;[Работа с HDD и дисководами. #5X]--------------; .DRV_RESET EQU #51 ; Сброс контроллера и настройка на диск .DRV_READ_LONG EQU #52 ; Чтение с устройств в указанную страницу .DRV_WRITE_LONG EQU #53 ; Запись на устройства в указанную страницу @@ -119,14 +119,14 @@ BIOS: .DRV_SET_PAR EQU #59 ; Установить параметры носителя .DRV_VERSION EQU #5A ; Номер версии дисковой спецификации. .DRV_LIST EQU #5F ; Список дисковых устройств -;--------------------------------------- +;-----------------------------------------------; -;[Управление железом, опр. версии]------ +;[Управление железом, опр. версии]--------------; .FN_TURBO EQU #8F ; Функция управления турбо режимом и FDD 720/1440 -.FN_TURBO.OFF EQU #02 -.FN_TURBO.ON EQU #03 -.FN_TURBO.VG.OFF EQU #12 -.FN_TURBO.VG.ON EQU #13 +.FN_TURBO.OFF EQU #02 ; +.FN_TURBO.ON EQU #03 ; +.FN_TURBO.VG.OFF EQU #12 ; +.FN_TURBO.VG.ON EQU #13 ; .CheckInit EQU #97 ; Если обнаружен первый старт, то инициализация всей памяти, системных переменных .FullInit EQU #9F ; Инициализация всей памяти, системных переменных .FN_CRIPT EQU #ED ; Выдача полного Board Number @@ -143,14 +143,40 @@ BIOS: .SET_PORTS EQU #F8 ; Установка внутренних портов. Функция в разработке .READ_PORTS EQU #F9 ; Чтение внутренних портов. Функция в разработке .WRITE_PORTS EQU #FA ; Запись внутренних портов. Функция в разработке -.GOTO_SPECTRUM EQU #FB +.GOTO_SPECTRUM EQU #FB ;[ ] доковырять .REINIT EQU #FD ;[x] restart, soft/hard reset, reinit RAM ID for spectrum pages -.REINIT.RESTART EQU #01 -.REINIT.SOFT_RESET EQU #02 -.REINIT.HARD_RESET EQU #03 -.REINIT.SET_ZXPAGES EQU #04 -;--------------------------------------- +.REINIT.RESTART EQU #01 ; +.REINIT.SOFT_RESET EQU #02 ; +.REINIT.HARD_RESET EQU #03 ; +.REINIT.SET_ZXPAGES EQU #04 ; +;-----------------------------------------------; + +; +;----------------[ EROOR CODES ]----------------; +BIOS.Error.BadDrvNumber EQU 2 ; +BIOS.Error.WaitPort EQU 4 ; +BIOS.Error.WriteProtect EQU 8 ; + +; .NO_ERROR EQU #00 ; 00 - NO ERRORS +; .INVALID_COMMAND EQU #01 ; 01 - BAD COMMAND +; .INVALID_DRIVE EQU #02 ; 02 - BAD DRIVE NUMBER +; .UNKNOWN_FORMAT EQU #03 ; 03 - UNKNOW FORMAT +; .NOT_READY EQU #04 ; 04 - NOT READY +; .SEEK_ERROR EQU #05 ; 05 - SEEK ERROR +; .SECTOR_NOT_FOUND EQU #06 ; 06 - SECTOR NOT FOUND +; .CRC_ERROR EQU #07 ; 07 - CRC ERROR +; .WRITE_PROTECT EQU #08 ; 08 - WRITE PROTECT +; .READ_ERROR EQU #09 ; 09 - READ ERROR +; .WRITE_ERROR EQU #0A ; 10 - WRITE ERROR +; .GENERAL_FAILURE EQU #0B ; 11 - FAILURE +; .DEVICE_BUSY EQU #0C ; 12 - BUSY (DEVICE OPENED) +; ;.RESERVED EQU #0D ; 13 - RESERVED +;-----------------------------------------------; +; + + +; ;-----------------------[НЕПРОВЕРЕНО!!!]---------------------- ;=============================================================