This commit is contained in:
Tolik 2024-08-17 05:15:57 +10:00
parent 3ac606f872
commit e73e9f8d4f

View File

@ -7,6 +7,15 @@
IFNDEF _includedSP2000 : DEFINE _includedSP2000 : ENDIF
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
STRUCT ZX_TASK_DATA
.STATE BYTE 0 ; +0 ; b0 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, b1 - <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
.SLOT3_PAGE BYTE 0 ; +1 ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.SP WORD 0 ; +2 ; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.RESERVED BLOCK 16-4,0 ; +4 ;!TODO reserved
ENDS
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
; <EFBFBD>à¥à뢠­¨ï ;
@ -554,10 +563,10 @@ SYS_PAGE EQU #FE
; STACK for FN_LIB end EQU #C028
.SYS_SP EQU #C0FE ; „Ž<E2809E>Ž<C5BD>ˆœ<E280B9>‰ ‘’…Š ¤«ï FN_LIB ¨ ¥éñ 祣®-â®
.DISK_TYPE EQU #C100 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áª®¢ (¯à®æ¥¤ãà ¬¨ ¤¨áª ¢ë¡¨à ¥âáï ¡¥§ ãçñâ  áâ à襣® ¡ ©â   ¤à¥á  ¨ ¯¥à¥¯®«­¥­¨ï)
.DISK_TYPE.A EQU #C100 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a A
.DISK_TYPE.B EQU #C101 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a B
.DISK_TYPE.C EQU #C102 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a C
.DISK_TYPE.D EQU #C103 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a D
.DISK_TYPE.A EQU #C100 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a A
.DISK_TYPE.B EQU #C101 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a B
.DISK_TYPE.C EQU #C102 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a C
.DISK_TYPE.D EQU #C103 ; <20><><EFBFBD><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>a D
.COPY_SLOT0 EQU #C104 ; ª®¯¨¨ §­ ç¥­¨© ¯®à⮢ áâà ­¨æ
.COPY_SLOT1 EQU #C105
.COPY_SLOT2 EQU #C106
@ -648,22 +657,22 @@ SYS_PAGE EQU #FE
.TMP_BUFFER.Size EQU #10
.RAMD_KEYS EQU #C180 ; RAM-Disks ID's -  ¤à¥á ¢ SYS_PAGE ¤«ï ª ¦¤®© ¡ãª¢ë à ¬¤¨áª 
.RAMD_KEYS.E EQU #C180 ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.RAMD_KEYS.F EQU #C181
.RAMD_KEYS.G EQU #C182
.RAMD_KEYS.H EQU #C183
.RAMD_KEYS.I EQU #C184
.RAMD_KEYS.J EQU #C185
.RAMD_KEYS.K EQU #C186
.RAMD_KEYS.L EQU #C187
.RAMD_KEYS.M EQU #C188
.RAMD_KEYS.N EQU #C189
.RAMD_KEYS.O EQU #C18A
.RAMD_KEYS.P EQU #C18B
.RAMD_KEYS.Q EQU #C18C
.RAMD_KEYS.R EQU #C18D
.RAMD_KEYS.S EQU #C18E
.RAMD_KEYS.T EQU #C18F
.RAMD_KEYS.E EQU #C180 ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.RAMD_KEYS.F EQU #C181
.RAMD_KEYS.G EQU #C182
.RAMD_KEYS.H EQU #C183
.RAMD_KEYS.I EQU #C184
.RAMD_KEYS.J EQU #C185
.RAMD_KEYS.K EQU #C186
.RAMD_KEYS.L EQU #C187
.RAMD_KEYS.M EQU #C188
.RAMD_KEYS.N EQU #C189
.RAMD_KEYS.O EQU #C18A
.RAMD_KEYS.P EQU #C18B
.RAMD_KEYS.Q EQU #C18C
.RAMD_KEYS.R EQU #C18D
.RAMD_KEYS.S EQU #C18E
.RAMD_KEYS.T EQU #C18F
.RAMD_KEYS.NUM EQU 16
.ZX_RAM_PAGES EQU #C190 ; ¨«¨ ⮫쪮 ®¤¨­ ¡ ©â - BlockID? ; vROM(10) + vRAM(32-1) + End_Byte(0); ®¤­  áâà ­¨æ  <20>€Œ ­¥ áç¨â ¥âáï - íâ® áâà ­¨æ  0.
@ -689,22 +698,22 @@ SYS_PAGE EQU #FE
;
; ª®¯¨¨ à ¬¤¨áª®¢ ¤«ï ¯¥à¥ª«î祭¨ï ¬¥¦¤ã ०¨¬ ¬¨ Spectrum / Sprinter
.Sp_RAMD_KEYS EQU #C1F0
.Sp_RAMD_KEYS.E EQU #C1F0
.Sp_RAMD_KEYS.F EQU #C1F1
.Sp_RAMD_KEYS.G EQU #C1F2
.Sp_RAMD_KEYS.H EQU #C1F3
.Sp_RAMD_KEYS.I EQU #C1F4
.Sp_RAMD_KEYS.J EQU #C1F5
.Sp_RAMD_KEYS.K EQU #C1F6
.Sp_RAMD_KEYS.L EQU #C1F7
.Sp_RAMD_KEYS.M EQU #C1F8
.Sp_RAMD_KEYS.N EQU #C1F9
.Sp_RAMD_KEYS.O EQU #C1FA
.Sp_RAMD_KEYS.P EQU #C1FB
.Sp_RAMD_KEYS.Q EQU #C1FC
.Sp_RAMD_KEYS.R EQU #C1FD
.Sp_RAMD_KEYS.S EQU #C1FE
.Sp_RAMD_KEYS.T EQU #C1FF
.Sp_RAMD_KEYS.E EQU #C1F0
.Sp_RAMD_KEYS.F EQU #C1F1
.Sp_RAMD_KEYS.G EQU #C1F2
.Sp_RAMD_KEYS.H EQU #C1F3
.Sp_RAMD_KEYS.I EQU #C1F4
.Sp_RAMD_KEYS.J EQU #C1F5
.Sp_RAMD_KEYS.K EQU #C1F6
.Sp_RAMD_KEYS.L EQU #C1F7
.Sp_RAMD_KEYS.M EQU #C1F8
.Sp_RAMD_KEYS.N EQU #C1F9
.Sp_RAMD_KEYS.O EQU #C1FA
.Sp_RAMD_KEYS.P EQU #C1FB
.Sp_RAMD_KEYS.Q EQU #C1FC
.Sp_RAMD_KEYS.R EQU #C1FD
.Sp_RAMD_KEYS.S EQU #C1FE
.Sp_RAMD_KEYS.T EQU #C1FF
.Sp_RAMD_KEYS.NUM EQU .RAMD_KEYS.NUM
;
.RAMD_FAT EQU #C200 ; RAM Table
@ -717,13 +726,30 @@ SYS_PAGE EQU #FE
.HD_IDF_ADR.LBA_CHS EQU .HD_IDF_ADR+99 ; LBA/CHS
.HD_IDF_ADR.ModelNum EQU .HD_IDF_ADR+54
;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.MS_DIR EQU #C800 ; ¡ãä¥à DIR sector
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.MS_FAT EQU #CC00 ; ¡ãä¥à FAT sector
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.MS_BUF EQU #D000 ; ¡ãä¥à DAT sector
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.WIN_MAP_IX EQU #E000 ; ¤ ­­ë¥ ª àâ ®ª®­ (96 ®¯¨á â¥«¥© ¯® 32 ¡ ©â )
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.TASK_DATA EQU #EC00 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.CURRENT_TASK EQU #EC00 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.CURRENT_TASK.Size EQU #10
.CURRENT_TASK.MAX EQU 4 ; 4 = 0..3
;.CURRENT_TASK.RESERVED EQU #EC01 - #EC0F ; !TODO reserved
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.TASK_0_DATA ZX_TASK_DATA = #EC10
.TASK_1_DATA ZX_TASK_DATA = #EC20
.TASK_2_DATA ZX_TASK_DATA = #EC30
.TASK_3_DATA ZX_TASK_DATA = #EC40
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;!TODO EQU #EC50 - #EFFF
.RESTART_ID EQU #F000 ; db "RESTART",0 ;First start identificator