-bug with music

This commit is contained in:
Anatoliy Belyanskiy 2023-12-10 06:57:58 +10:00
parent e52bedc0f4
commit 86e658d970

View File

@ -133,7 +133,21 @@ START:
ld c,Dss.PChars ld c,Dss.PChars
RST ToDSS RST ToDSS
LD BC,BIOS.SWAP_RAM_DRIVES.Info
RST ToBIOS
CP high BIOS.SWAP_RAM_DRIVES.ZX
JR Z,1F
;
LD (EXIT_ram_drv),A
LD BC,BIOS.SWAP_RAM_DRIVES.ZX
RST ToBIOS
1: ;
call Load_Resources call Load_Resources
JR NC,NEXT_STEP
ld hl,NO_FREE_MEM
LD (set_msg),HL
JP EXIT_TO_DSS.no_mem
; jp start_load ; jp start_load
; JP BEGIN ; JP BEGIN
@ -195,6 +209,7 @@ START:
;-------TEST--------------------------[v] ;-------TEST--------------------------[v]
NEXT_STEP:
ld hl,#9000 ld hl,#9000
ld a,#FF ld a,#FF
ACC_SetBlockSize ACC_SetBlockSize
@ -1063,9 +1078,9 @@ L_DDX:
JR NZ,NO_SNDP JR NZ,NO_SNDP
LD A,(SYS_PAGE.RAMD_KEYS.H) LD A,(SYS_PAGE.RAMD_KEYS.H)
LD (SND_P),A LD (SND_P),A
; ld hl,_lastPageMuzOffset
; LD (SND_A),HL
NO_SNDP: NO_SNDP:
LD A,E LD A,E
OUT (SLOT3),A OUT (SLOT3),A
@ -1097,7 +1112,8 @@ PlayMusic:
IN A,(SLOT1) IN A,(SLOT1)
LD E,A LD E,A
SND_P+*: LD A,0 SND_P+1:
LD A,0
OUT (SLOT1),A OUT (SLOT1),A
ld a,CBL.BUFFER_PAGE ld a,CBL.BUFFER_PAGE
@ -1106,8 +1122,9 @@ SND_P+*: LD A,0
out (c),a out (c),a
SND_A+*: ld hl,#4000 SND_A+1:
ld d,#C0 ld hl,#4000
ld d,#C0
ACC_SetBlockSize ACC_SetBlockSize
ld a,#80 ld a,#80
ACC_CopyBlock ACC_CopyBlock
@ -1136,9 +1153,11 @@ SND_A+*: ld hl,#4000
LD (SND_P),A LD (SND_P),A
LD HL,#4000 LD HL,#4000
checkLastPage+*: cp 0 checkLastPage+1:
;INC A
cp 0
jp nz,1F jp nz,1F
LD A,(SYS_PAGE.RAMD_KEYS.H) LD A,(SYS_PAGE.RAMD_KEYS.H-#8000)
LD (SND_P),A LD (SND_P),A
ld hl,_lastPageMuzOffset ld hl,_lastPageMuzOffset
1: LD (SND_A),HL 1: LD (SND_A),HL
@ -1281,14 +1300,14 @@ EXIT_TO_DSS:
CP FilesTBL.END+1 CP FilesTBL.END+1
JR C,.loop_mem JR C,.loop_mem
.no_mem:
IF MODE_CBL && MUSIC_22khz IF MODE_CBL && MUSIC_22khz
1: CALL MemHack.restore 1: CALL MemHack.restore
JR NC,1F ; JR NC,1F
LD A,R ; LD A,R
AND 7 ; AND 7
OUT (BorderColor),A ; OUT (BorderColor),A
JR 1B ; JR 1B
1: ; 1: ;
ENDIF ENDIF
@ -1320,10 +1339,15 @@ clean_kbd_buf:
.exit: .exit:
;--------------------------------- ;---------------------------------
set_msg+1:
ld hl,EXIT_MSG ld hl,EXIT_MSG
ld c,Dss.PChars ld c,Dss.PChars
RST ToDSS RST ToDSS
EXIT_ram_drv+2: ;¢®§¢à â ०¨¬  à ¬¤¨áª®¢
LD BC,BIOS.SWAP_RAM_DRIVES.ZX
RST ToBIOS
IM 1 IM 1
.loop_exit: .loop_exit:
LD B,0 LD B,0
@ -1343,6 +1367,20 @@ Load_Resources:
in a,(SLOT3) in a,(SLOT3)
ld (.SavePage),a ld (.SavePage),a
IF MODE_CBL && MUSIC_22khz
; LD B,SYS_PAGE.RAMD_KEYS.NUM+1
; .RMD_Loop:
; PUSH BC
; LD A,B
; DEC A
; LD C,BIOS.FreeMemRMD
; RST ToBIOS
; POP BC
; DJNZ .RMD_Loop
ENDIF
LD B,FilesTBL.END LD B,FilesTBL.END
LD DE,FilesTBL LD DE,FilesTBL
LD HL,RAMBlkIDs LD HL,RAMBlkIDs
@ -1360,6 +1398,7 @@ Load_Resources:
; B - à §¬¥à ¡«®ª  ¢ áâà ­¨æ å ; B - à §¬¥à ¡«®ª  ¢ áâà ­¨æ å
ld c,Dss.GetMem ld c,Dss.GetMem
rst ToDSS rst ToDSS
JR C,.error
di di
; A - ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ï⨠; A - ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
@ -1456,20 +1495,26 @@ Load_Resources:
;-----------[] ;-----------[]
;-------------[‚®§¢à â] ;-------------[‚®§¢à â]
.SavePage+*: ld a,0 .SavePage+1: ld a,0
out (SLOT3),a out (SLOT3),a
IF MODE_CBL IF MODE_CBL
IF MUSIC_22khz IF MUSIC_22khz
ld a,(RAMBlkIDs + _ramDiskNumForMuz) ld a,(RAMBlkIDs + _ramDiskNumForMuz)
ld bc, +( _memPagesForMuz - 1) * 256 + BIOS.GetMemPage ld bc, +( _memPagesForMuz -1) * 256 + BIOS.GetMemPage
rst ToBIOS rst ToBIOS
;!FIXIT ᤥ« âì ¯à®¢¥àªã ­  ®è¨¡ªã ;!FIXIT ᤥ« âì ¯à®¢¥àªã ­  ®è¨¡ªã
ld (checkLastPage),a ld (checkLastPage),a
ENDIF ENDIF
ENDIF ENDIF
AND A
RET
.error:
POP HL
POP HL
LD A,(.SavePage)
out (SLOT3),a
RET RET
;-------------[] ;-------------[]
@ -1614,6 +1659,7 @@ FilesTBL:
ENDIF ENDIF
.END EQU ($-FilesTBL)/14 ; ª®«¨ç¥á⢮ ä ©«®¢ .END EQU ($-FilesTBL)/14 ; ª®«¨ç¥á⢮ ä ©«®¢
IF BACKPLANE_BMP IF BACKPLANE_BMP
BackPlane.FileName: DZ 'BACKGRN1.PAL' BackPlane.FileName: DZ 'BACKGRN1.PAL'
ELSE ELSE
@ -1626,11 +1672,12 @@ RAMBlkIDs: BLOCK FilesTBL.END,0
Temp_Buffer: BLOCK _memPagesForMuz + 1,#FF ; „«¨­  ¢ ¡«®ª å á ¬®£® ¡®«ì讣® ¨§ ä ©«®¢ ¢ëè¥ + 1 Temp_Buffer: BLOCK _memPagesForMuz + 1,#FF ; „«¨­  ¢ ¡«®ª å á ¬®£® ¡®«ì讣® ¨§ ä ©«®¢ ¢ëè¥ + 1
START_MSG: DB 13,10,13,10 START_MSG: DB 13,10,13,10
DB 'Mortal Kombat demo by Ivan Mak. 2002 year.',13,10 DB 'Mortal Kombat demo by Ivan Mak. 2002 year.',13,10
DZ 'EXE v.',MK_VERSION,' by Anatoliy Belyanskiy. ',BUILD_DATE,' (',#91,') Sprinter Team.',13,10,13,10 DZ 'EXE v.',MK_VERSION,' by Anatoliy Belyanskiy. ',BUILD_DATE,' (',#91,') Sprinter Team.',13,10,13,10
LOADING_MSG: DZ 'Loading resources, please wait...',13,10 LOADING_MSG: DZ 'Loading resources, please wait...',13,10
EXIT_MSG: DZ 'All done)))',13,10 NO_FREE_MEM: DZ 'ERROR: No free memory to load resources!',13,10
EXIT_MSG: DZ 'All done)))',13,10
;---[] ;---[]
; ;
ASSERT IM2_Handler>$, "The code leaks into the IM2 byte address!" ASSERT IM2_Handler>$, "The code leaks into the IM2 byte address!"