перед сменой схемы free zx pages

This commit is contained in:
Tolik 2024-09-22 01:10:42 +10:00
parent a23b2eb756
commit 23eefc8625
5 changed files with 42 additions and 42 deletions

@ -1 +1 @@
Subproject commit 51a136edca8c04554de0b189d7680ebbe358c64a
Subproject commit 18eb6779037e4e6291119d52cd7b8aba3b51de6c

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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