From e52bedc0f4de5e7c7c7ad3a4d45221ced71ee690 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sat, 9 Dec 2023 04:46:58 +1000 Subject: [PATCH] Call BIOS API instead of use MemHack --- MK_DEMO.ASM | 160 +++++++++++++++++++++++++----------------------- Shared_Includes | 2 +- 2 files changed, 85 insertions(+), 77 deletions(-) diff --git a/MK_DEMO.ASM b/MK_DEMO.ASM index 5601032..f7cf48a 100644 --- a/MK_DEMO.ASM +++ b/MK_DEMO.ASM @@ -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 diff --git a/Shared_Includes b/Shared_Includes index 6e27011..21c7eb6 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa +Subproject commit 21c7eb690adb62e35c41fdcda76dc3bf97f369b4