Call BIOS API instead of use MemHack

This commit is contained in:
Anatoliy Belyanskiy 2023-12-09 04:46:58 +10:00
parent 0b262da641
commit e52bedc0f4
2 changed files with 85 additions and 77 deletions

View File

@ -288,7 +288,7 @@ START:
RST ToBIOS
LD A,2
LD C,BIOS.FN_SINC
LD C,BIOS.FN_SYNC
RST ToBIOS
@ -348,7 +348,7 @@ BEGIN:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(RAMD_KEYS.H)
LD A,(SYS_PAGE.RAMD_KEYS.H)
LD (SND_P),A
EX AF,AF'
OUT (SLOT3),A
@ -642,8 +642,8 @@ FON_LOAD:
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(RAMD_KEYS.G)
LD H, high RAMD_FAT
LD A,(SYS_PAGE.RAMD_KEYS.G)
LD H, high SYS_PAGE.RAMD_FAT
LD L,A
EX AF,AF'
LD A,(HL)
@ -888,7 +888,7 @@ NO_EXX:
*/
LD A,SYS_PAGE
OUT (SLOT3),A
LD H, high RAMD_FAT
LD H, high SYS_PAGE.RAMD_FAT
LD A,(NEXT_SPRITE)
LD L,A
LD L,(HL)
@ -901,7 +901,7 @@ NO_EXX:
LD (NEXT_SPRITE),A
INC A
RET NZ
LD A,(RAMD_KEYS.F)
LD A,(SYS_PAGE.RAMD_KEYS.F)
LD (IX+SPRITE_TBL.Slot),A
LD (IX+SPRITE_TBL.Slot+SPRITE_TBL),A
LD (IX+SPRITE_TBL.Slot+SPRITE_TBL*2),A
@ -1049,7 +1049,7 @@ L_DDX:
AND A
JR NZ,NO_SNDP
LD H, high RAMD_FAT
LD H, high SYS_PAGE.RAMD_FAT
LD A,(SND_P)
LD L,A
LD A,SYS_PAGE
@ -1061,7 +1061,7 @@ L_DDX:
LD (SND_A),HL
JR NZ,NO_SNDP
LD A,(RAMD_KEYS.H)
LD A,(SYS_PAGE.RAMD_KEYS.H)
LD (SND_P),A
NO_SNDP:
@ -1074,7 +1074,6 @@ NO_SNDP:
POP HL
LD A,(save_border)
OUT (BorderColor),A
POP AF
EI
RETI
@ -1128,7 +1127,7 @@ SND_A+*: ld hl,#4000
CP #80
JR C,NO_SNDP
LD H, high RAMD_FAT - #80
LD H, high SYS_PAGE.RAMD_FAT - #80
LD A,(SND_P)
LD L,A
LD A,SYS_PAGE
@ -1139,7 +1138,7 @@ SND_A+*: ld hl,#4000
LD HL,#4000
checkLastPage+*: cp 0
jp nz,1F
LD A,(RAMD_KEYS.H)
LD A,(SYS_PAGE.RAMD_KEYS.H)
LD (SND_P),A
ld hl,_lastPageMuzOffset
1: LD (SND_A),HL
@ -1226,7 +1225,7 @@ IM2_Proc:
; NC --> A = 䨧.­®¬¥à ¯®á«¥¤­¥© áâà ­¨æë ¡«®ª 
; CF --> å¥à ¥£® §­ ¥â, ®è¨¡ª  ª ª ï-â®
GetLastPageNumber:
ld h, high RAMD_FAT
ld h, high SYS_PAGE.RAMD_FAT
inc a
ld l,a
@ -1284,7 +1283,13 @@ EXIT_TO_DSS:
IF MODE_CBL && MUSIC_22khz
CALL MemHack.restore
1: CALL MemHack.restore
JR NC,1F
LD A,R
AND 7
OUT (BorderColor),A
JR 1B
1: ;
ENDIF
@ -1488,80 +1493,83 @@ RMD_UNMAP:
;---[ MemHack ]
IF MODE_CBL && MUSIC_22khz
MemHack:
.free:
.free: LD A,ZX_RAM_ID
LD C,BIOS.FreeMem
JP ToBIOS
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
; LD HL,SYS_PAGE.RAMD_FAT
; LD DE,.Buff
; xor a
; ACC_SetBlockSize
; cp #10
; ACC_CopyBlock
; cp (hl)
; ld (de),a
; ACC_FillOneByte
; ld (hl),a
; ACC_Off
LD HL,RAMD_FAT
LD DE,.Buff
xor a
ACC_SetBlockSize
cp #10
ACC_CopyBlock
cp (hl)
ld (de),a
ACC_FillOneByte
ld (hl),a
ACC_Off
; LD DE,.Buff + #10
; LD L,DCP_PAGE ; #C240
; LD A,(HL)
; LD (DE),A
; INC DE
; LD (HL),#50 ; Video Page
; INC L ; #C241
LD DE,.Buff + #10
LD L,DCP_PAGE ; #C240
LD A,(HL)
LD (DE),A
INC DE
LD (HL),#50 ; Video Page
INC L ; #C241
; xor a
; ACC_SetBlockSize
; cp #07
; ACC_CopyBlock
; cp (hl)
; ld (de),a
; ACC_FillOneByte
; ld (hl),a
; ACC_Off
xor a
ACC_SetBlockSize
cp #07
ACC_CopyBlock
cp (hl)
ld (de),a
ACC_FillOneByte
ld (hl),a
ACC_Off
EX AF,AF'
OUT (SLOT3),A
RET
; EX AF,AF'
; OUT (SLOT3),A
; RET
.restore:
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD BC,4*256 + BIOS.REINIT
JP ToBIOS
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
LD DE,RAMD_FAT
LD HL,.Buff
; LD DE,SYS_PAGE.RAMD_FAT
; LD HL,.Buff
ACC_SetBlockSize
cp #10
ACC_CopyBlock
cp (hl)
ld (de),a
ACC_Off
; ACC_SetBlockSize
; cp #10
; ACC_CopyBlock
; cp (hl)
; ld (de),a
; ACC_Off
LD HL,.Buff + #10
LD E,DCP_PAGE ; #C240
LD A,(HL)
LD (DE),A
INC HL
INC E
; LD HL,.Buff + #10
; LD E,DCP_PAGE ; #C240
; LD A,(HL)
; LD (DE),A
; INC HL
; INC E
ACC_SetBlockSize
cp #7
ACC_CopyBlock
cp (hl)
ld (de),a
ACC_Off
; ACC_SetBlockSize
; cp #7
; ACC_CopyBlock
; cp (hl)
; ld (de),a
; ACC_Off
EX AF,AF'
OUT (SLOT3),A
RET
; EX AF,AF'
; OUT (SLOT3),A
;RET
.Buff: BLOCK #10+1+7, #FF
ENDIF

@ -1 +1 @@
Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa
Subproject commit 21c7eb690adb62e35c41fdcda76dc3bf97f369b4