перед сменой схемы free zx pages
This commit is contained in:
parent
a23b2eb756
commit
23eefc8625
@ -1 +1 @@
|
||||
Subproject commit 51a136edca8c04554de0b189d7680ebbe358c64a
|
||||
Subproject commit 18eb6779037e4e6291119d52cd7b8aba3b51de6c
|
||||
@ -917,7 +917,7 @@ FN_SYNC:
|
||||
IN B,(C)
|
||||
LD A,SYS_PAGE
|
||||
OUT (C),A
|
||||
LD DE,(SYS_PAGE.CONFIG_ALL)
|
||||
LD DE,(SYS_PAGE.SCREEN_TABLE)
|
||||
OUT (C),B
|
||||
|
||||
CALL Test_CONFIG_ALL
|
||||
@ -929,7 +929,7 @@ FN_SYNC:
|
||||
IN B,(C)
|
||||
LD A,SYS_PAGE
|
||||
OUT (C),A
|
||||
LD DE,(SYS_PAGE.CONFIG_ALL)
|
||||
LD DE,(SYS_PAGE.SCREEN_TABLE)
|
||||
OUT (C),B
|
||||
|
||||
LD D,CMOS_CELL.ScreenSET
|
||||
@ -969,7 +969,7 @@ FN_SYNC:
|
||||
IN A,(PORT_Y)
|
||||
LD (SYS_PAGE.COPY_RGADR),A
|
||||
|
||||
LD (SYS_PAGE.CONFIG_ALL),IX
|
||||
LD (SYS_PAGE.SCREEN_TABLE),IX
|
||||
XOR A
|
||||
|
||||
;----[START]-----------------------[? 1]
|
||||
@ -1047,7 +1047,7 @@ FN_SYNC:
|
||||
;-----------------------------[^ 2]-----
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD IX,(SYS_PAGE.CONFIG_ALL)
|
||||
LD IX,(SYS_PAGE.SCREEN_TABLE)
|
||||
|
||||
EX AF,AF'
|
||||
ADD A,#80
|
||||
|
||||
@ -293,7 +293,7 @@ INIT_CONFIG_ALL:
|
||||
.setDefaultINT:
|
||||
LD HL,SCREEN_TABLES.PENTAGON ; set pentagon int
|
||||
.setINT:
|
||||
LD (SYS_PAGE.CONFIG_ALL - #4000),HL
|
||||
LD (SYS_PAGE.SCREEN_TABLE - #4000),HL
|
||||
;------------[new code end]-------------
|
||||
;
|
||||
LD DE,CNF_PORT.CNF_0 + ROM.BIOS
|
||||
@ -301,7 +301,7 @@ INIT_CONFIG_ALL:
|
||||
|
||||
LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000 ; 㡨âì ¢á¥ § ¤ ç¨
|
||||
LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000
|
||||
LD BC,_#ZX_TASK - 1
|
||||
LD BC,_ZX_TASK - 1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
|
||||
|
||||
@ -102,7 +102,7 @@ FN_ENTRANCE: ;!TODO A - TASK NUMBER
|
||||
;‚室: A - TASK NUMBER
|
||||
GET_ZX_TASK_DATA:
|
||||
GET_ZX_TASK_DATA_OFFSET
|
||||
ADD A,_#ZX_TASK_DATA
|
||||
ADD A,_ZX_TASK_DATA
|
||||
LD C,A
|
||||
LD B,0
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
@ -113,8 +113,8 @@ GET_ZX_TASK_DATA:
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: A - TASK NUMBER
|
||||
FREE_vMEMORY: LD D,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
LD A,(IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
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
|
||||
@ -128,8 +128,8 @@ FREE_vMEMORY: LD D,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
;‚ë室: 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)
|
||||
LD H,(IX + _ZX_TASK_DATA.vRAM_ID)
|
||||
LD L,(IX + _ZX_TASK_DATA.vROM_ID)
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
@ -137,14 +137,14 @@ GET_RAMBLOCK_IDs:
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: HL - ¡«®ª áâà ¨æ ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤ 11 èâ.)
|
||||
; A - TASK NUMBER
|
||||
INIT_vROM: LD A,(IX + _#ZX_TASK_DATA.vROM_ID)
|
||||
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
|
||||
LD (IX + _ZX_TASK_DATA.vROM_ID),A
|
||||
INC HL
|
||||
; ãáâ ®¢ª ¯®à⮢ ROM
|
||||
LD DE,.PORTS
|
||||
@ -246,7 +246,7 @@ GET_XXX_MEM: CALL FREE_vRAM
|
||||
.init: LD B,D
|
||||
CALL EMM.GetMem
|
||||
RET C
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),A
|
||||
LD (IX + _ZX_TASK_DATA.vRAM_ID),A
|
||||
RET
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
@ -254,9 +254,9 @@ GET_XXX_MEM: CALL FREE_vRAM
|
||||
;-----------------------------------------------------------------------;
|
||||
FREE_vRAM: XOR A
|
||||
LD C,A
|
||||
OR (IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
OR (IX + _ZX_TASK_DATA.vRAM_ID)
|
||||
RET Z
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),C
|
||||
LD (IX + _ZX_TASK_DATA.vRAM_ID),C
|
||||
JP EMM.FreeMem
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
@ -292,7 +292,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
|
||||
; A - Pent128 mem block id
|
||||
LD B,D ; Scorp128 mem block id
|
||||
CALL EMM.MergeMemBlocks
|
||||
LD (IX + _#ZX_TASK_DATA.vRAM_ID),A
|
||||
LD (IX + _ZX_TASK_DATA.vRAM_ID),A
|
||||
RET
|
||||
;
|
||||
; 䨫ìâà ¤«ï áâà ¨æ ᪮à¯
|
||||
@ -334,7 +334,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
|
||||
; CF: 1 - ¥ ¯¥à¥ãáâ ¢«¨¢ âì ¯ «¨âàã
|
||||
|
||||
/*
|
||||
; ‚室: D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ;!FIXIT ¯¥à¥¤¥« âì, íâ® CONFIG_DE
|
||||
; ‚室: D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128,
|
||||
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
|
||||
; 4 - TR-DOS, 5 - BASIC 48
|
||||
; D[7..4]: ;!TODO Port All Mode: b4 - Acc off/on
|
||||
@ -361,35 +361,35 @@ GOTO_SPEC: DI
|
||||
LD SP,#C000
|
||||
LD A,D
|
||||
CALL GET_ZX_TASK_DATA
|
||||
LD A,(IX + _#ZX_TASK_DATA.STATE)
|
||||
LD A,(IX + _ZX_TASK_DATA.STATE)
|
||||
RR E
|
||||
JR NC,.save_state
|
||||
OR %0000'0100
|
||||
.save_state: LD (IX + _#ZX_TASK_DATA.STATE),A
|
||||
.save_state: LD (IX + _ZX_TASK_DATA.STATE),A
|
||||
;
|
||||
; [ ] free zx pages! ;!TODO ¥á«¨ § ¤ ç ¯ãáâ ï, â® ¯¥à¢ë© ¨¨â
|
||||
;
|
||||
;!TODO ᤥ« âì ªâ¨¢ æ¨î ¢¨â ¤«ï ¯ à ¬¥âà ¨§ Setup
|
||||
;!TODO ãáâ ®¢¨âì £¤¥-¨¡ã¤ì ¨¦¥ áâíª ¨§ TASK
|
||||
LD A,(SYS_PAGE.CONFIG_DE.ZX_START)
|
||||
LD (IX + _#ZX_TASK_DATA.CONFIG_DE + 1),A
|
||||
LD (IX + _ZX_TASK_DATA.CONFIG_DE + 1),A
|
||||
;
|
||||
LD A,(IX + _#ZX_TASK_DATA.PORT_ALL_MODE)
|
||||
LD A,(IX + _ZX_TASK_DATA.PORT_ALL_MODE)
|
||||
LD BC,Port_All_Mode
|
||||
OUT (C),A
|
||||
; ãáâ ®¢ª ¨â
|
||||
LD A,(IX + _#ZX_TASK_DATA.FN_SYNC)
|
||||
LD A,(IX + _ZX_TASK_DATA.FN_SYNC)
|
||||
AND %0000'0111
|
||||
CALL FN_SYNC
|
||||
; ãáâ ®¢ª à §¢ñà⪨
|
||||
LD A,(IX + _#ZX_TASK_DATA.FN_SYNC)
|
||||
LD A,(IX + _ZX_TASK_DATA.FN_SYNC)
|
||||
AND %1100'0000
|
||||
OR %0010'0000
|
||||
RLCA
|
||||
RLCA
|
||||
CALL FN_SYNC
|
||||
;
|
||||
LD A,(IX + _#ZX_TASK_DATA.STATE)
|
||||
LD A,(IX + _ZX_TASK_DATA.STATE)
|
||||
AND %0000'0100 ;!TODO § ¯®¬¨âì/¢®ááâ ®¢¨âì ª á⮬ãî ¯ «¨âàã?
|
||||
CALL Z,SET_TXT_PALETTE.ZX
|
||||
;
|
||||
@ -400,7 +400,7 @@ GOTO_SPEC: DI
|
||||
LD HL,#5104
|
||||
CALL LP_SET_32.X
|
||||
; .SHARED_BUFFER_256b
|
||||
LD A,(IX + _#ZX_TASK_DATA.vRAM_ID)
|
||||
LD A,(IX + _ZX_TASK_DATA.vRAM_ID)
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b
|
||||
CALL EMM.GetMemBlkPages
|
||||
;!FIXIT
|
||||
@ -758,8 +758,8 @@ RES128_PROG:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD DE,(SYS_PAGE.CONFIG_DE)
|
||||
XOR A
|
||||
LD (SYS_PAGE.CONFIG_DE.ZX_START),A
|
||||
;XOR A
|
||||
;LD (SYS_PAGE.CONFIG_DE.ZX_START),A
|
||||
OUT (C),B
|
||||
|
||||
LD BC,#1FFD
|
||||
|
||||
@ -138,32 +138,32 @@ TASK_SWITCH:
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT ; ¤ ë¥ § ¤ ç
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
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 (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 + 1),H
|
||||
SET 0,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
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) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD A,_ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,C ; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ ®¢®© § ¤ ç¨
|
||||
|
||||
; BIT 1,(IX + _#ZX_TASK_DATA.STATE)
|
||||
; 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 ; § ¤ ç áãé¥áâ¢ã¥â
|
||||
|
||||
; § ¤ ç¨ ¥ ¡ë«®!
|
||||
@ -197,16 +197,16 @@ 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
|
||||
;
|
||||
ADD IX,DE
|
||||
|
||||
LD L,(IX + _#ZX_TASK_DATA.SP) ; ¢á¯®¬¨âì á⥪
|
||||
LD H,(IX + _#ZX_TASK_DATA.SP + 1)
|
||||
LD L,(IX + _ZX_TASK_DATA.SP) ; ¢á¯®¬¨âì á⥪
|
||||
LD H,(IX + _ZX_TASK_DATA.SP + 1)
|
||||
LD SP,HL
|
||||
LD A,(IX + _#ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
LD A,(IX + _ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
OUT (SLOT3),A
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user