diff --git a/constants/SP2000.inc b/constants/SP2000.inc index f31dd2f..d9d86aa 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -9,7 +9,7 @@ ;███████████████████████████████████████████████████████████████████████████████████████████████████████; STRUCT _#ZX_TASK_DATA -.STATE BYTE 0 ; +00 b0 - свободна/сохранена, b1 - ждёт/работает +.STATE BYTE 0 ; +00 b0 - свободна/сохранена, b1 - ждёт/работает, b2 - стандартная/кастомная палитра .SLOT3_PAGE BYTE 0 ; +01 третья страница задачи .SP WORD 0 ; +02 указатель на стэк .TYPE BYTE 0 ; +04 тип тачки: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256 @@ -481,7 +481,12 @@ PORT_SCALE EQU #FC ; ;VIDEO_PAGE EQU #50 -Port_All_Mode EQU #204E +Port_All_Mode EQU #204E +.SPECTRUM_MODE_OFF EQU 1 ; ACC on, KBD Int on, ZX Screen off +.MEM_WAITS_OFF EQU 4 +.STOP_KBD_INT_OFF EQU 8 +.RESERVED EQU #F2 +.DEFAULT EQU .RESERVED + .STOP_KBD_INT_OFF + .MEM_WAITS_OFF + .SPECTRUM_MODE_OFF ; bit0 - 0: выкл акселератора и прерываний от клавиатуры, включение спековской адресации экрана. ; bit1 - ; bit2 - вкл/выкл original zx spectrum waits @@ -913,34 +918,30 @@ CMOS.Cell.CheckSum EQU CMOS.USED_MAX_ADDRESS MODULE CMOS_CELL BootUpParams EQU #0E -.Mask.MemTest EQU %1000'0000 * 256 + BootUpParams ;!TODO ; MEMORY TEST -.Mask.SaveRAMdisks EQU %0100'0000 * 256 + BootUpParams ; SAVE RAM DISKS -.Mask.UpdBios EQU %0010'0000 * 256 + BootUpParams ;!TODO ; UPDATE BIOS -.Mask.StartDelay EQU %0001'1000 * 256 + BootUpParams ; START DELAY -.Mask.Language EQU %0000'0100 * 256 + BootUpParams ; LANGUAGE -;.Mask.Reserved EQU %0000'0010 * 256 + BootUpParams ; NOT USED -.Mask.QuickStartROM EQU %0000'0001 * 256 + BootUpParams ; QUICK START +.Mask.MemTest EQU %1000'0000 * 256 + BootUpParams ;!TODO ; MEMORY TEST +.Mask.SaveRAMdisks EQU %0100'0000 * 256 + BootUpParams ; SAVE RAM DISKS +.Mask.UpdBios EQU %0010'0000 * 256 + BootUpParams ;!TODO ; UPDATE BIOS +.Mask.StartDelay EQU %0001'1000 * 256 + BootUpParams ; START DELAY +.Mask.Language EQU %0000'0100 * 256 + BootUpParams ; LANGUAGE +;.Mask.Reserved EQU %0000'0010 * 256 + BootUpParams ; NOT USED +.Mask.QuickStartROM EQU %0000'0001 * 256 + BootUpParams ; QUICK START Typematic EQU #0F -.Mask.Enabled EQU %1000'0000 * 256 + Typematic ; ON/OFF -.Mask.Delay EQU %0110'0000 * 256 + Typematic ; DELAY 00-250, 01-500, 10-750, 11-1000 -;.Mask.Reserved EQU %0001'1000 * 256 + Typematic -.Mask.Rate EQU %0000'0111 * 256 + Typematic ; RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30 +.Mask.Enabled EQU %1000'0000 * 256 + Typematic ; ON/OFF +.Mask.Delay EQU %0110'0000 * 256 + Typematic ; DELAY 00-250, 01-500, 10-750, 11-1000 +;.Mask.Reserved EQU %0001'1000 * 256 + Typematic +.Mask.Rate EQU %0000'0111 * 256 + Typematic ; RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30 ;FDD-1, FDD-2, IDE-1, IDE-2, IDE-3, IDE-4, Ram Dsk, Recovery BootDrives EQU #10 -.Mask.SysDisk EQU %0000'0111 * 256 + BootDrives -.Mask.AltSysDisk EQU %0111'0000 * 256 + BootDrives +.Mask.SysDisk EQU %0000'0111 * 256 + BootDrives +.Mask.AltSysDisk EQU %0111'0000 * 256 + BootDrives DrivesSetup_1 EQU #11 -.Mask.FirstFDD EQU %0000'0011 * 256 + DrivesSetup_1 ; FDD First 720/1.44/NONE -.Mask.SecondFDD EQU %0000'1100 * 256 + DrivesSetup_1 ; FDD Second 720/1.44/NONE -.Mask.PriIDEmaster EQU %0011'0000 * 256 + DrivesSetup_1 ; IDE Pri Master Auto/Setup/Disabled -.Mask.PriIDEslave EQU %1100'0000 * 256 + DrivesSetup_1 ; IDE Pri Slave Auto/Setup/Disabled - -DrivesSetup_2 EQU #20 -.Mask.SecIDEmaster EQU %0011'0000 * 256 + DrivesSetup_2 ; IDE Sec Master Auto/Setup/Disabled -.Mask.SecIDEslave EQU %1100'0000 * 256 + DrivesSetup_2 ; IDE Sec Slave Auto/Setup/Disabled +.Mask.FirstFDD EQU %0000'0011 * 256 + DrivesSetup_1 ; FDD First 720/1.44/NONE +.Mask.SecondFDD EQU %0000'1100 * 256 + DrivesSetup_1 ; FDD Second 720/1.44/NONE +.Mask.PriIDEmaster EQU %0011'0000 * 256 + DrivesSetup_1 ; IDE Pri Master Auto/Setup/Disabled +.Mask.PriIDEslave EQU %1100'0000 * 256 + DrivesSetup_1 ; IDE Pri Slave Auto/Setup/Disabled IDE_Setup.PriMaster: .CylindersLow EQU #12 @@ -954,6 +955,66 @@ IDE_Setup.PriSlave: .Heads EQU #18 .Sectros EQU #19 +ScreenSET EQU #1A +.Mask.ColorStyle EQU %0000'1111 * 256 + ScreenSET ; COLOR STYLE For Setup +.Mask.Int EQU %0011'0000 * 256 + ScreenSET ; Frame Int (Default/Pentagon/Scorpion/Original) +.Mask.Sinc EQU %1100'0000 * 256 + ScreenSET ; Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz) + +;;;;;;;;;;;;;;;;;;;;;;; CONFIG_DE ;;;;;;;;;;;;;;;;;;;;;;; +;Старое значение. +;HardwareConfiguration EQU #1B +;.Mask.TurboMode EQU %0000'0001 ; TURBO MODE (D0..D3 - 6 OR 7) +;.Mask.TurboExchange EQU %0000'0010 ; TURBO EXCHANGE ON/OFF - 1 +;.Mask.PortExchange EQU %0000'0100 ; PORT EXCHANGE ON/OFF - 1 +;.Mask.Computer EQU %0001'1000 ; COMPUTER: 0-SPRINTER, 1-Scorpion 256, 2-PENTAGON 128, 3-Other +; +;Старое значение. +;ZX_RST_TO EQU #1C +;.BASIC_128 EQU 0 +;.BASIC_48_RAM128 EQU 1 +;.TRDOS EQU 2 +;.EXPANSION EQU 3 +;.TRDOS_48 EQU 4 +;.BASIC_48 EQU 5 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +Options EQU #1D +.Mask.HDDwriteProtect EQU %0000'0001 * 256 + Options ; [x] убрано. работало только с функциями 5х и постоянно дёргало CMOS при записи +.Mask.RebootMSG EQU %0000'0010 * 256 + Options +.Mask.LoadZXroms EQU %0000'1100 * 256 + Options + +TRDOSmount EQU #1E +.Mask.A EQU %0000'0011 * 256 + TRDOSmount ;Default - 0/ FDD - 1/ HDD - 2/ RMD - 3 +.Mask.B EQU %0000'1100 * 256 + TRDOSmount +.Mask.C EQU %0011'0000 * 256 + TRDOSmount +.Mask.D EQU %1100'0000 * 256 + TRDOSmount + +ScreenPosition EQU #1F +.Mask.X EQU %1111'0000 * 256 + ScreenPosition +.Mask.Y EQU %0000'1111 * 256 + ScreenPosition + +DrivesSetup_2 EQU #20 +.Mask.SecIDEmaster EQU %0011'0000 * 256 + DrivesSetup_2 ; IDE Sec Master Auto/Setup/Disabled +.Mask.SecIDEslave EQU %1100'0000 * 256 + DrivesSetup_2 ; IDE Sec Slave Auto/Setup/Disabled + + + +; НЕ ИСПОЛЬЗУЕТСЯ, туда срут старые проги и vROM +;REGISTER #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE), значение для CNF_PORT +HardwareConfiguration EQU #35 + +; НЕ ИСПОЛЬЗУЕТСЯ пока +;REGISTER #36 - BASIC SETTING 2 +; %0000 0111 +ZX_CONFIG EQU #36 +.ZX_Sprinter EQU 0 +.Pentagon_48 EQU 1 +.Pentagon_128 EQU 2 +.Pentagon_512 EQU 3 +.Scorpion_256 EQU 4 +.ZX_Spectrum_48 EQU 5 +.ZX_Spectrum_128 EQU 6 + IDE_Setup.SecMaster: .CylindersLow EQU #37 .CylindersHigh EQU #38 @@ -966,59 +1027,17 @@ IDE_Setup.SecSlave: .Heads EQU #3D .Sectros EQU #3E -ScreenSET EQU #1A -.Mask.ColorStyle EQU %0000'1111 * 256 + ScreenSET ; COLOR STYLE For Setup -.Mask.Int EQU %0011'0000 * 256 + ScreenSET ; Frame Int (Default/Pentagon/Scorpion/Original) -.Mask.Sinc EQU %1100'0000 * 256 + ScreenSET ; Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz) - -;!FIXIT НЕ ИСПОЛЬЗУЕТСЯ -HardwareConfiguration EQU #1B ; !!!!! or #36 -.Mask.TurboMode EQU %0000'0001 ; TURBO MODE (D0..D3 - 6 OR 7) -.Mask.TurboExchange EQU %0000'0010 ; TURBO EXCHANGE ON/OFF - 1 -.Mask.PortExchange EQU %0000'0100 ; PORT EXCHANGE ON/OFF - 1 -.Mask.Computer EQU %0001'1000 ; COMPUTER: 0-SPRINTER, 1-Scorpion 256, 2-PENTAGON 128, 3-Pentagon 512 ;!FIXIT ZX_CONFIG - -;!FIXIT НЕ ИСПОЛЬЗУЕТСЯ -;REGISTER #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE) -;ZX_RST_TO EQU #001C - old variant -ZX_RST_TO EQU #35 -.BASIC_128 EQU 0 -.BASIC_48_RAM128 EQU 1 -.TRDOS EQU 2 -.EXPANSION EQU 3 -.TRDOS_48 EQU 4 -.BASIC_48 EQU 5 - -;!FIXIT НЕ ИСПОЛЬЗУЕТСЯ -;REGISTER #36 - BASIC SETTING 2 ; старые значения неизвестны -; %0000 0111 -ZX_CONFIG EQU #36 - ; новые значения: ;!FIXIT HardwareConfiguration -.ZX_Sprinter EQU 0 -.Pentagon_48 EQU 1 -.Pentagon_128 EQU 2 -.Pentagon_512 EQU 3 -.Scorpion_256 EQU 4 -.ZX_Spectrum_48 EQU 5 -.ZX_Spectrum_128 EQU 6 - -Options EQU #1D -.Mask.HDDwriteProtect EQU %0000'0001 * 256 + Options ; [x] убрано. работало только с функциями 5х и постоянно дёргало CMOS при записи -.Mask.RebootMSG EQU %0000'0010 * 256 + Options -.Mask.LoadZXroms EQU %0000'1100 * 256 + Options - -TRDOSmount EQU #1E -.Mask.A EQU %0000'0011 * 256 + TRDOSmount ;Default - 0/ FDD - 1/ HDD - 2/ RMD - 3 -.Mask.B EQU %0000'1100 * 256 + TRDOSmount -.Mask.C EQU %0011'0000 * 256 + TRDOSmount -.Mask.D EQU %1100'0000 * 256 + TRDOSmount - -ScreenPosition EQU #1F -.Mask.X EQU %1111'0000 * 256 + ScreenPosition -.Mask.Y EQU %0000'1111 * 256 + ScreenPosition - CheckSum EQU CMOS.Cell.CheckSum +; Disabled use word CONFIG_DE +; +; LD A,#1C +; CALL READCMS +; PUSH AF +; LD A,#1B +; CALL READCMS +; POP DE +; LD E,A ENDMODULE ;----------------------------------------------------------------------- @@ -1618,13 +1637,6 @@ Config_PG: ; %11000000 - IDE Secondary SLAVE -----//------ ; . ; . -;REGISTER#35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE) -; 0 - RESET TO BASIC 128 -; 1 - RESET TO BASIC 48 (RAM128) -; 2 - RESET TO TRDOS -; 3 - RESET TO EXPANSION (DON'T USE) -; 4 - RESET TO 48 TRDOS -; 5 - RESET TO 48 BASIC (RAM48) ;REGISTER#36 - BASIC SETTING 2 ; старые значения неизвестны ; %0000 0111