From e7e58e7b816a25137a0a253321164e863bbe782e Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 24 Jan 2024 00:54:42 +1000 Subject: [PATCH] ... --- constants/BIOS_equ.inc | 55 +++++++++++++++++++++--------------------- constants/SP2000.inc | 15 +++++++++--- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/constants/BIOS_equ.inc b/constants/BIOS_equ.inc index 45e5c09..0b0dd8a 100644 --- a/constants/BIOS_equ.inc +++ b/constants/BIOS_equ.inc @@ -125,34 +125,33 @@ BIOS: ;-----------------------------------------------; ;[Управление железом, опр. версии]--------------; -.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 ; -.CheckInit EQU #97 ; Если обнаружен первый старт, то инициализация всей памяти, системных переменных -.FullInit EQU #9F ; Инициализация всей памяти, системных переменных -.FN_CRIPT EQU #ED ; Выдача полного Board Number -.RST_CONF.AY8910 EQU #EE ; для совместимости с софтом Sp97, переключение в конфу AY8910 -.FN_VERSION EQU #EF ; Выдача информации о версии BIOSа и железа. -.RST_CONF.SP97_1 EQU #F0 ; для совместимости с софтом Sp97, переключение в конфу Sprinter-1 -.RST_CONF.SP97_2 EQU #F1 ; для совместимости с софтом Sp97, переключение в конфу Sprinter-2 -.FN_SYNC EQU #F2 ; Установка синхронизации, очистка страницы режима экрана -;.SPRINTER_ALL EQU #F3 ; переключение конфигурации пользователя -.RST_CONF.CUSTOM EQU #F3 ; переключение конфигурации пользователя -.DCP_CONFIG EQU #F4 ; Функция управления дешифратором портов. BIOS 3.05 -.CMOS_TEST EQU #F5 ; Проверить наличие CMOS -.CMOS_RD EQU #F6 ; Читать из регистра CMOS -.CMOS_WR EQU #F7 ; Писать в регистр CMOS -.SET_PORTS EQU #F8 ; Установка внутренних портов. Функция в разработке -.READ_PORTS EQU #F9 ; Чтение внутренних портов. Функция в разработке -.WRITE_PORTS EQU #FA ; Запись внутренних портов. Функция в разработке -.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 ; +.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 ; +.CheckInit EQU #97 ; Если обнаружен первый старт, то инициализация всей памяти, системных переменных +.FullInit EQU #9F ; Инициализация всей памяти, системных переменных +.FN_CRIPT EQU #ED ; Выдача полного Board Number +.RST_CONF.AY8910 EQU #EE ; для совместимости с софтом Sp97, переключение в конфу AY8910 +.FN_VERSION EQU #EF ; Выдача информации о версии BIOSа и железа. +.RST_CONF.SP97_1 EQU #F0 ; для совместимости с софтом Sp97, переключение в конфу Sprinter-1 +.RST_CONF.SP97_2 EQU #F1 ; для совместимости с софтом Sp97, переключение в конфу Sprinter-2 +.FN_SYNC EQU #F2 ; Установка синхронизации, очистка страницы режима экрана +.RST_CONF.CUSTOM EQU #F3 ; переключение конфигурации пользователя. SPRINTER_ALL +.DCP_CONFIG EQU #F4 ; Функция управления дешифратором портов. ;[x] BIOS 3.05 +.CMOS_TEST EQU #F5 ; Проверить наличие CMOS +.CMOS_RD EQU #F6 ; Читать из регистра CMOS +.CMOS_WR EQU #F7 ; Писать в регистр CMOS +.SET_PORTS EQU #F8 ; Установка внутренних портов. Функция в разработке +.READ_PORTS EQU #F9 ; Чтение внутренних портов. Функция в разработке +.WRITE_PORTS EQU #FA ; Запись внутренних портов. Функция в разработке +.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 ; ;-----------------------------------------------; diff --git a/constants/SP2000.inc b/constants/SP2000.inc index 74f67c5..b135262 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -113,6 +113,7 @@ CBL: CNF_PORT: .ON EQU #74 .OFF EQU #24 +; .TURBO.ON EQU 3 ; данные для включения TURBO .TURBO.OFF EQU 2 ; данные для выключения TURBO .CNF_0 EQU #04 ; карта портов 0 @@ -128,6 +129,7 @@ CNF_PORT: SYS_PORT: .ON EQU #7C .OFF EQU #3C +; .RAM EQU .OFF .ROM EQU .ON .PAGE0 EQU 1 @@ -152,7 +154,7 @@ SYS_PORT только CNF_PORT меняет всё остальное, при бит1=0 меняются страницы эмулятора ПЗУ через бит0 CNF_PORT -bit0 - TURBO: on/off или vROM: +bit0 - TURBO: off/on или vROM: ; #24 - страница из вн.порта (#E0..#E3)/(#E4..#E7) ; #74 - страница из вн.порта #EB/#EF bit1 - 1 - TURBO ena, 0 - переключение vROM page @@ -535,9 +537,14 @@ SYS_PAGE EQU #FE ;Есть такой код, например: ; LD DE,CNF_0+D_TBOFF ; LD (SYS_PAGE.CONFIG_DE),DE -; первый байт для SYS_PORT_ON/OFF. -; второй байт для выбора режима -; спектрума при запуске функциями ПЗУ. +; первый байт для SYS_PORT_ON/OFF (режим турбо и CNF). +; второй байт для выбора режима спектрума при запуске функциями ПЗУ: +; 0 - ВХОД В BASIC 128 +; 1 - ВХОД В BASIC 48 +; 2 - ВХОД В TR-DOS 128 +; 3 - ВХОД В EXPANSION +; 4 - ВХОД В TR-DOS 48 +; 5 - ВХОД В BASIC 48 с закрытыми 128-ми портами .CONFIG_DE EQU #C13A ; описатель конфигурации - 2 байта ; 2 байта конфигурации - наследие Sp97.