This commit is contained in:
Tolik 2024-09-19 23:51:33 +10:00
parent c3a5d38def
commit 51a136edca

View File

@ -9,7 +9,7 @@
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ; ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
STRUCT _#ZX_TASK_DATA STRUCT _#ZX_TASK_DATA
.STATE BYTE 0 ; +00 b0 - ᢮¡®¤­ /á®åà ­¥­ , b1 - ¦¤ñâ/à ¡®â ¥â .STATE BYTE 0 ; +00 b0 - ᢮¡®¤­ /á®åà ­¥­ , b1 - ¦¤ñâ/à ¡®â ¥â, b2 - áâ ­¤ àâ­ ï/ª á⮬­ ï ¯ «¨âà 
.SLOT3_PAGE BYTE 0 ; +01 âà¥âìï áâà ­¨æ  § ¤ ç¨ .SLOT3_PAGE BYTE 0 ; +01 âà¥âìï áâà ­¨æ  § ¤ ç¨
.SP WORD 0 ; +02 㪠§ â¥«ì ­  áâíª .SP WORD 0 ; +02 㪠§ â¥«ì ­  áâíª
.TYPE BYTE 0 ; +04 ⨯ â çª¨: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256 .TYPE BYTE 0 ; +04 ⨯ â çª¨: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256
@ -481,7 +481,12 @@ PORT_SCALE EQU #FC ;
;VIDEO_PAGE EQU #50 ;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: ¢ëª«  ªá¥«¥à â®à  ¨ ¯à¥à뢠­¨© ®â ª« ¢¨ âãàë, ¢ª«î祭¨¥ ᯥª®¢áª®©  ¤à¥á æ¨¨ íªà ­ . ; bit0 - 0: ¢ëª«  ªá¥«¥à â®à  ¨ ¯à¥à뢠­¨© ®â ª« ¢¨ âãàë, ¢ª«î祭¨¥ ᯥª®¢áª®©  ¤à¥á æ¨¨ íªà ­ .
; bit1 - ; bit1 -
; bit2 - ¢ª«/¢ëª« original zx spectrum waits ; bit2 - ¢ª«/¢ëª« original zx spectrum waits
@ -913,34 +918,30 @@ CMOS.Cell.CheckSum EQU CMOS.USED_MAX_ADDRESS
MODULE CMOS_CELL MODULE CMOS_CELL
BootUpParams EQU #0E BootUpParams EQU #0E
.Mask.MemTest EQU %1000'0000 * 256 + BootUpParams ;!TODO ; MEMORY TEST .Mask.MemTest EQU %1000'0000 * 256 + BootUpParams ;!TODO ; MEMORY TEST
.Mask.SaveRAMdisks EQU %0100'0000 * 256 + BootUpParams ; SAVE RAM DISKS .Mask.SaveRAMdisks EQU %0100'0000 * 256 + BootUpParams ; SAVE RAM DISKS
.Mask.UpdBios EQU %0010'0000 * 256 + BootUpParams ;!TODO ; UPDATE BIOS .Mask.UpdBios EQU %0010'0000 * 256 + BootUpParams ;!TODO ; UPDATE BIOS
.Mask.StartDelay EQU %0001'1000 * 256 + BootUpParams ; START DELAY .Mask.StartDelay EQU %0001'1000 * 256 + BootUpParams ; START DELAY
.Mask.Language EQU %0000'0100 * 256 + BootUpParams ; LANGUAGE .Mask.Language EQU %0000'0100 * 256 + BootUpParams ; LANGUAGE
;.Mask.Reserved EQU %0000'0010 * 256 + BootUpParams ; NOT USED ;.Mask.Reserved EQU %0000'0010 * 256 + BootUpParams ; NOT USED
.Mask.QuickStartROM EQU %0000'0001 * 256 + BootUpParams ; QUICK START .Mask.QuickStartROM EQU %0000'0001 * 256 + BootUpParams ; QUICK START
Typematic EQU #0F Typematic EQU #0F
.Mask.Enabled EQU %1000'0000 * 256 + Typematic ; ON/OFF .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.Delay EQU %0110'0000 * 256 + Typematic ; DELAY 00-250, 01-500, 10-750, 11-1000
;.Mask.Reserved EQU %0001'1000 * 256 + Typematic ;.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.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 ;FDD-1, FDD-2, IDE-1, IDE-2, IDE-3, IDE-4, Ram Dsk, Recovery
BootDrives EQU #10 BootDrives EQU #10
.Mask.SysDisk EQU %0000'0111 * 256 + BootDrives .Mask.SysDisk EQU %0000'0111 * 256 + BootDrives
.Mask.AltSysDisk EQU %0111'0000 * 256 + BootDrives .Mask.AltSysDisk EQU %0111'0000 * 256 + BootDrives
DrivesSetup_1 EQU #11 DrivesSetup_1 EQU #11
.Mask.FirstFDD EQU %0000'0011 * 256 + DrivesSetup_1 ; FDD First 720/1.44/NONE .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.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.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 .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
IDE_Setup.PriMaster: IDE_Setup.PriMaster:
.CylindersLow EQU #12 .CylindersLow EQU #12
@ -954,6 +955,66 @@ IDE_Setup.PriSlave:
.Heads EQU #18 .Heads EQU #18
.Sectros EQU #19 .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
; <EFBFBD> ˆ<EFBFBD>Žœ‡“…Ÿ, â㤠 áàãâ áâ àë¥ ¯à®£¨ ¨ vROM
;REGISTER #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE), §­ ç¥­¨¥ ¤«ï CNF_PORT
HardwareConfiguration EQU #35
; <EFBFBD> ˆ<EFBFBD>Žœ‡“…Ÿ ¯®ª 
;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: IDE_Setup.SecMaster:
.CylindersLow EQU #37 .CylindersLow EQU #37
.CylindersHigh EQU #38 .CylindersHigh EQU #38
@ -966,59 +1027,17 @@ IDE_Setup.SecSlave:
.Heads EQU #3D .Heads EQU #3D
.Sectros EQU #3E .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 <EFBFBD> ˆ<EFBFBD>Žœ‡“…Ÿ
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 <EFBFBD> ˆ<EFBFBD>Žœ‡“…Ÿ
;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 <EFBFBD> ˆ<EFBFBD>Žœ‡“…Ÿ
;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 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 ENDMODULE
;----------------------------------------------------------------------- ;-----------------------------------------------------------------------
@ -1618,13 +1637,6 @@ Config_PG:
; %11000000 - IDE Secondary SLAVE -----//------ ; %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 ; áâ àë¥ §­ ç¥­¨ï ­¥¨§¢¥áâ­ë ;REGISTER#36 - BASIC SETTING 2 ; áâ àë¥ §­ ç¥­¨ï ­¥¨§¢¥áâ­ë
; %0000 0111 ; %0000 0111