continue freeing zx pages...
This commit is contained in:
parent
30edc55a57
commit
22f4acafbe
@ -1 +1 @@
|
||||
Subproject commit a98a635f03359ec21cd8dd77917a384a8a37caef
|
||||
Subproject commit 265b46fce2afbc3e8acef59e83d78b84b88d4ced
|
||||
@ -5,7 +5,11 @@
|
||||
;[~] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®)
|
||||
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
||||
;-------------------------------------------------------------------------------------------------------------------;
|
||||
|
||||
; Spectrum RAM map
|
||||
; SLOT0 = 0
|
||||
; SLOT1 = 5
|
||||
; SLOT2 = 2
|
||||
; SLOT3 = 0 '48kb',1,2,3,4,5,6,7 '128kb',8,9,10,11,12,13,14,15 '256kb'
|
||||
;
|
||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||
|
||||
@ -19,62 +23,172 @@
|
||||
|
||||
;!FIXIT
|
||||
;----------------[‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥ áâà ¨æ ᯥªâà㬠]-------------;
|
||||
;¢å®¤: ॣ B: 0 - ¨¨â ¯ ¬ï⨠Spectrum 48k ¨ 2-å áâà ¨æ vROM
|
||||
; 1 - ¨¨â ¯ ¬ï⨠Pentagon 128k ¨ 3-å áâà ¨æ vROM
|
||||
; 2 - ¨¨â ¯ ¬ï⨠Pentagon 512k ¨ 3-å áâà ¨æ vROM
|
||||
; 3 - ¨¨â ¯ ¬ï⨠Scorpion 256k ¨ 3-å áâà ¨æ vROM
|
||||
; 4..15 - § १¥à¢¨à®¢ ë
|
||||
;¢å®¤: ॣ B: 0 - § १¥à¢¨à®¢ ®
|
||||
; 1 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 48k. 3 áâà ¨æë
|
||||
; 2 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 128k. 2+6 áâà ¨æë
|
||||
; 3 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 512k. 2+30 áâà ¨æë
|
||||
; 4 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ¨æë
|
||||
; 5..15 - § १¥à¢¨à®¢ ë
|
||||
;
|
||||
; 16 - ¯®«ãç¨âì à ¬¡«®ª¨ ¨¨æ¨ «¨§¨à®¢ ëå vROM ¨ VRAM
|
||||
; 17..63 - § १¥à¢¨à®¢ ë
|
||||
; 17..31 - § १¥à¢¨à®¢ ë
|
||||
;
|
||||
; 32 - § १¥à¢¨à®¢ ®
|
||||
; 33 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Spectrum 48k ¨ ¨¨â 2-å áâà ¨æ vROM
|
||||
; 34 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 128k ¨ ¨¨â 3-å áâà ¨æ vROM
|
||||
; 35 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 512k ¨ ¨¨â 3-å áâà ¨æ vROM
|
||||
; 36 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Scorpion 256k ¨ ¨¨â 3-å áâà ¨æ vROM
|
||||
; 33..63 - § १¥à¢¨à®¢ ë
|
||||
;
|
||||
; 64 - ®á¢®¡®¤¨âì à ¬¡«®ª¨ vROM ¨ vRAM
|
||||
; 65..127 - § १¥à¢¨à®¢ ë
|
||||
;
|
||||
; 128 - ¨¨æ¨ «¨§¨à®¢ âì ᢮© ¡®à áâà ¨æ vROM
|
||||
;
|
||||
; ॣ HL: ¯à¨ ॣ B[7]=1 ¤à¥á áâà ¨æ (11 èâ):
|
||||
; byte1 - RAM block ID, byte2..11 - áâà ¨æë ¤«ï vROM
|
||||
; ॣ A: ®¬¥à ZX TASK ¯®ª çâ® ¢á¥£¤ ®«ì!!!
|
||||
;¢ë室: CF = 0: HL - ®¬¥à à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM
|
||||
; CF = 1: A - ®¬¥à ®è¨¡ª¨
|
||||
FN_ENTRANCE:
|
||||
;
|
||||
;¥á«¨ áâíª å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«îç¥ë¬¨ ¯à¥àë¢ ¨ï¬¨
|
||||
FN_ENTRANCE: ;!TODO A - TASK NUMBER
|
||||
EXX
|
||||
GET_ZX_TASK_DATA_OFFSET
|
||||
ADD A,_#ZX_TASK_DATA
|
||||
LD C,A
|
||||
LD B,0
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
ADD IX,BC ; ¤ ë¥ ®¢®© § ¤ ç¨
|
||||
;
|
||||
LD C,SLOT3
|
||||
IN B,(C)
|
||||
LD A,SYS_PAGE
|
||||
OUT (C),A
|
||||
EXX
|
||||
;
|
||||
LD (SYS_PAGE.SP_SAVE),SP
|
||||
LD SP,SYS_PAGE.SYS_SP
|
||||
LD DE,.EXIT
|
||||
PUSH DE
|
||||
;-----------------------------------;
|
||||
; Sub FN #8x
|
||||
BIT 7,B
|
||||
JR NZ,INIT_vROM ; B = 128
|
||||
; Sub FN #4x
|
||||
BIT 6,B
|
||||
JR NZ,FREE_vMEMORY ; B = 64
|
||||
; Sub FN #1x
|
||||
JR NZ,GET_RAMBLOCK_IDs ; B = 16
|
||||
; Sub FN #0x
|
||||
DEC B
|
||||
JR Z, ; B = 1
|
||||
DEC B
|
||||
JR Z, ; B = 2
|
||||
DEC B
|
||||
JR Z, ; B = 3
|
||||
DEC B
|
||||
JR Z, ; B = 4
|
||||
;-----------------------------------;
|
||||
LD A,BIOS.Error.InvalidSubFunction
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.EXIT: LD SP,(SYS_PAGE.SP_SAVE)
|
||||
EXX
|
||||
OUT (C),B
|
||||
EXX
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!FIXIT
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: ---
|
||||
;‚室: A - TASK NUMBER
|
||||
FREE_vMEMORY: LD D,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
LD A,(IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
CALL EMM.FreeMem
|
||||
LD A,D
|
||||
CALL EMM.FreeMem
|
||||
JP RES_FLAG_ZXvROM
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: A - TASK NUMBER
|
||||
;‚ë室: H - vRAM block ID
|
||||
; L - vROM block ID
|
||||
GET_RAMBLOCK_IDs:
|
||||
LD H,(IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
LD L,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!FIXIT
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: HL - ¡«®ª áâà ¨æ ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤ 10 èâ.)
|
||||
FREE_vROM:
|
||||
;‚室: HL - ¡«®ª áâà ¨æ ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤ 11 èâ.)
|
||||
; A - TASK NUMBER
|
||||
INIT_vROM: LD A,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
CP (HL)
|
||||
EX DE,HL
|
||||
CALL NZ,EMM.FreeMem
|
||||
EX DE,HL
|
||||
;
|
||||
LD A,(HL)
|
||||
LD (IX + _#ZX_TASK_DATA.vROM_ID),A
|
||||
INC HL
|
||||
; ãáâ ®¢ª ¯®à⮢ ROM
|
||||
LD DE,.PORTS
|
||||
LD B,.PORTS.Size
|
||||
.loop: PUSH BC
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
AND A
|
||||
JR Z,.not_Spec_Page
|
||||
LD A,Spec_Page ;!FIXIT ¨«¨ ®áâ ¢¨âì?
|
||||
.not_Spec_Page: LD B,A
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
CALL SET_PORTS
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
DJNZ .loop
|
||||
;
|
||||
RET
|
||||
;
|
||||
.PORTS: DB ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
|
||||
DB ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
|
||||
DB ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
|
||||
DB ACEX.vROM.BIOS ; ROM-ID - EXPANSION
|
||||
DB ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
|
||||
DB ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
|
||||
DB ACEX.vROM.BASIC_128_2 ; BASIC 128 - 2
|
||||
DB ACEX.vROM.BASIC_48_2 ; BASIC 48 - 2
|
||||
DB ACEX.vROM.TR_DOS_2 ; TR-DOS - 2
|
||||
DB ACEX.vROM.BIOS_2 ; BIOS (ZX_EXP) - 2
|
||||
.PORTS.Size EQU $-.PORTS
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!FIXIT
|
||||
;????? ¤®?
|
||||
/*
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: HL - ¡«®ª áâà ¨æ ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤ 10 èâ.)
|
||||
FREE_vRAM:
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;!FIXIT
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: B - ª®«¨ç¥á⢮ áâà ¨æ
|
||||
GET_vROM:
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;!FIXIT
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: HL - ¡«®ª áâà ¨æ ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤ 10 èâ.)
|
||||
INIT_vROM:
|
||||
;‚室: A - TASK NUMBER
|
||||
FREE_vROM: LD A,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
CALL EMM.FreeMem
|
||||
PUSH AF
|
||||
CALL RES_FLAG_ZXvROM
|
||||
POP AF
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚•Ž„: HL - ᯨ᮪ áâà ¨æ
|
||||
; E - 0 = 128kb, 1 = 512kb
|
||||
@ -107,7 +221,7 @@ INIT_PENT_vRAM: DI
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!FIXIT ª®áïª á® á⥪®¬ ¢ SLOT3
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚•Ž„: HL - ᯨ᮪ áâà ¨æ
|
||||
; D - ç «ì®¥ § 票¥ ¤«ï 7FFD
|
||||
@ -123,7 +237,7 @@ SET_7FFD: LD A,(HL)
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;!FIXIT
|
||||
;!FIXIT ª®áïª á® á⥪®¬ ¢ SLOT3
|
||||
;‚•Ž„: HL - ᯨ᮪ áâà ¨æ.
|
||||
INIT_SCORP_vRAM:; first 128 kb
|
||||
LD E,0
|
||||
@ -136,28 +250,59 @@ INIT_SCORP_vRAM:; first 128 kb
|
||||
OUT (C),A
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
*/
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚믮«ï¥âáï ¤«ï ¨¨â âàñå áâà ¨æ Ž‡“ 48k
|
||||
GET_48k_MEM: LD B,3
|
||||
JP EMM.GetMem
|
||||
;‚믮«ï¥âáï ¤«ï ¢ë¤¥«¥¨ï âàñå áâà ¨æ Ž‡“ 48k
|
||||
GET_48k_MEM: LD D,3
|
||||
JR GET_XXX_MEM
|
||||
;‚믮«ï¥âáï ¤«ï ¨¨â 3 áâà ¨æ Ž‡“ 48k ¨ 29 áâà ¨æ Ž‡“ Pent512k
|
||||
GET_512k_MEM: LD D,3+29
|
||||
JR GET_XXX_MEM
|
||||
;‚믮«ï¥âáï ¤«ï ¢ë¤¥«¥¨ï 3 áâà ¨æ Ž‡“ 48k ¨ 5 áâà ¨æ Ž‡“ 128k â 祪
|
||||
GET_128k_MEM: LD D,3+5
|
||||
;JR GET_XXX_MEM
|
||||
GET_XXX_MEM: CALL FREE_vRAM
|
||||
.init: LD B,D
|
||||
CALL EMM.GetMem
|
||||
RET C
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),A
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚믮«ï¥âáï ¤«ï ¨¨â 3 áâà ¨æ Ž‡“ 48k ¨ 5 áâà ¨æ Ž‡“ 128k â 祪
|
||||
GET_128k_MEM: LD B,3+5
|
||||
JP EMM.GetMem
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
FREE_vRAM: XOR A
|
||||
LD C,A
|
||||
OR (IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
RET Z
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),C
|
||||
JP EMM.FreeMem
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!FIXIT SET_TASK_POINTER
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚믮«ï¥âáï ¤«ï ¢ë¤¥«¥¨ï 3 áâà ¨æ Ž‡“ 48k ¨ 14 áâà ¨æ Ž‡“ Scorp256k
|
||||
;‚室: ---
|
||||
;‚ë室: A - RAM block ID
|
||||
GET_SCORP_RAM: IN A,(SLOT3)
|
||||
LD E,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
GET_SCORP_RAM: CALL FREE_vRAM
|
||||
CALL .SCORP
|
||||
RET C
|
||||
LD D,L
|
||||
; Get Pent128 mem
|
||||
LD B,3+5
|
||||
CALL EMM.GetMem
|
||||
; A - Pent128 mem block id
|
||||
LD B,D ; Scorp128 mem block id
|
||||
CALL EMM.MergeMemBlocks
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),A
|
||||
RET
|
||||
;
|
||||
.SCORP: ; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
XOR A
|
||||
LD DE,#F0D0 ; ¤«ï 䨫ìâà . #F0 - ¬ ᪠, #D0 - áâà ¨æë ISA #D0..#DF
|
||||
LD BC,8*256 + #FF ; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª ª®æ à ¬¡«®ª
|
||||
LD HL,SYS_PAGE.RAM_TABLE
|
||||
.allocate_loop: DEC L
|
||||
@ -174,10 +319,8 @@ GET_SCORP_RAM: IN A,(SLOT3)
|
||||
DJNZ .allocate_loop
|
||||
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
AND A
|
||||
.exit: LD A,E
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
RET
|
||||
;
|
||||
; 䨫ìâà ¤«ï áâà ¨æ ᪮à¯
|
||||
;¢ë室: ZF=1 - áâà ¨æ ¥ ¯®¤å®¤¨â
|
||||
.check_barred_pages:
|
||||
@ -187,19 +330,19 @@ GET_SCORP_RAM: IN A,(SLOT3)
|
||||
RET C
|
||||
RET Z
|
||||
; check isa page
|
||||
AND #F0
|
||||
XOR #D0 ; áâà ¨æë ISA #D0..#DF
|
||||
AND D
|
||||
XOR E ; áâà ¨æë ISA #D0..#DF
|
||||
RET NZ
|
||||
LD L,#D0
|
||||
LD L,E
|
||||
RET
|
||||
;
|
||||
.error_no_mem: PUSH DE
|
||||
.error_no_mem: ;PUSH DE
|
||||
LD A,C
|
||||
CALL EMM.FreeMem
|
||||
POP DE
|
||||
LD L,BIOS.Error.EMM.NoMemory
|
||||
;POP DE
|
||||
LD A,BIOS.Error.EMM.NoMemory
|
||||
SCF
|
||||
JR .exit
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
ENDMODULE
|
||||
ENDIF
|
||||
@ -255,7 +398,7 @@ GOTO_SPEC: IN A,(SLOT3)
|
||||
;start_basic:
|
||||
.BASIC_128: LD SP,#C000
|
||||
LD HL,RES128_PROG
|
||||
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
||||
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
||||
LD BC,RES128_PROG.Size
|
||||
LDIR
|
||||
DI
|
||||
|
||||
@ -41,6 +41,16 @@ RET_FROM_BIOS_TO_BASIC48:
|
||||
; ******* SERVICE *******
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
; ª®íä䍿¨¥â á¬¥é¥¨ï ¯® ®¬¥àã â ᪨
|
||||
MACRO GET_ZX_TASK_DATA_OFFSET
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
AND #30 ; ®¢ ï § ¤ ç 0..3
|
||||
ENDM
|
||||
|
||||
|
||||
;------[ „…˜ˆ”<CB86>€–ˆŸ ŠŽŒ€<C592>„<EFBFBD>މ ‘’<E28098>ŽŠˆ,<2C>…<EFBFBD>…„€<E2809E><E282AC>މ „‹Ÿ "EXPANSION" ]-------;
|
||||
COMAND_LINE:
|
||||
LD HL,(#5C5D) ;!HARDCODE CH_ADR
|
||||
@ -119,12 +129,8 @@ TASK_SWITCH:
|
||||
PUSH AF
|
||||
|
||||
LD A,(HL)
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
AND #30 ; ®¢ ï § ¤ ç 0..3
|
||||
LD C,A
|
||||
GET_ZX_TASK_DATA_OFFSET
|
||||
LD C,A
|
||||
|
||||
IN A,(SLOT3)
|
||||
LD B,A ; 3-ï áâà ¨æ ⥪ã饩 § ¤ ç¨
|
||||
@ -132,44 +138,32 @@ TASK_SWITCH:
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT ; ¤ ë¥ § ¤ ç
|
||||
; !TEST
|
||||
;LD E,(IX)
|
||||
;LD D,0
|
||||
;ADD IX,DE
|
||||
;LD E,SYS_PAGE.CURRENT_TASK.Size
|
||||
;ADD IX,DE
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,(IX) ; ᬥ饨¥ ¤ ëå ⥪ã饩 § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ â¥ªã饩 § ¤ ç¨
|
||||
;
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,(IX) ; ᬥ饨¥ ¤ ëå ⥪ã饩 § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ â¥ªã饩 § ¤ ç¨
|
||||
|
||||
LD (IX + _#ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ¨âì áâà ¨æã 3
|
||||
LD HL,0
|
||||
ADD HL,SP
|
||||
LD (IX + _#ZX_TASK_DATA.SP),L ; á®åà ¨âì á⥪ § ¤ ç¨
|
||||
LD (IX + _#ZX_TASK_DATA.SP),L ; á®åà ¨âì á⥪ § ¤ ç¨
|
||||
LD (IX + _#ZX_TASK_DATA.SP + 1),H
|
||||
SET 0,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
SET 0,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
; !TEST
|
||||
;LD E,C
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,C ; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,C ; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ ®¢®© § ¤ ç¨
|
||||
|
||||
; BIT 1,(IX + _#ZX_TASK_DATA.STATE)
|
||||
; JR NZ,TASK_IN_WORK ; § ¤ ç ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥
|
||||
; ; á¡à áë¢ âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
|
||||
|
||||
BIT 0,(IX + _#ZX_TASK_DATA.STATE) ; ¡ë« á®åà ¥ /¥â
|
||||
BIT 0,(IX + _#ZX_TASK_DATA.STATE) ; ¡ë« á®åà ¥ /¥â
|
||||
JR NZ,TASK_SET ; § ¤ ç áãé¥áâ¢ã¥â
|
||||
|
||||
; § ¤ ç¨ ¥ ¡ë«®!
|
||||
@ -199,7 +193,7 @@ TASK_RESTORE:
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
ADD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user