correct sound bug fix

This commit is contained in:
Anatoliy Belyanskiy 2024-06-11 02:56:16 +10:00
parent 2a4f1e55e2
commit ed4bd75653
2 changed files with 40 additions and 59 deletions

@ -1 +1 @@
Subproject commit 7f4046e7fabff85738efcf2a7aa1dbbeca7af906 Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022

View File

@ -1,7 +1,6 @@
DEFINE WAVPLunknown 1 DEFINE WAVPLunknown 1
DEFINE SND_Abug 0 DEFINE SoundBugFix 1
DEFINE OutOfPageBugFix 0
SH_HDD_X EQU 223 ; ¯®«®¦¥­¨¥ ¨­¤¨ª â®à  HDD £®à. SH_HDD_X EQU 223 ; ¯®«®¦¥­¨¥ ¨­¤¨ª â®à  HDD £®à.
SH_HDD_Y EQU 90 ; ¯®«®¦¥­¨¥ ¨­¤¨ª â®à  HDD ¢¥àâ. SH_HDD_Y EQU 90 ; ¯®«®¦¥­¨¥ ¨­¤¨ª â®à  HDD ¢¥àâ.
@ -41,6 +40,7 @@ SH_HDD_Y EQU 90 ;
ENDM ENDM
INCLUDE 'shared_includes/constants/sp2000.inc' INCLUDE 'shared_includes/constants/sp2000.inc'
INCLUDE 'Shared_Includes/constants/dss_equ.inc' INCLUDE 'Shared_Includes/constants/dss_equ.inc'
INCLUDE 'Shared_Includes/constants/bios_equ.inc'
INCLUDE 'shared_includes/macroses/accelerator.z80' INCLUDE 'shared_includes/macroses/accelerator.z80'
ORG #8100-EXE_HEADER.Size ORG #8100-EXE_HEADER.Size
@ -62,19 +62,19 @@ START: PUSH IX
LD (FILE_HANDLE),A LD (FILE_HANDLE),A
LD HL,START_MSG LD HL,START_MSG
LD C,#5C LD C,#5C
RST #10 ; Start Message RST ToDSS ; Start Message
LD C,#50 LD C,#50
LD B,0 LD B,0
LD A,#81 LD A,#81
RST #10 ; OPEN_GRAF_SCR RST ToDSS ; OPEN_GRAF_SCR
DI DI
LD C,#A6 ; set GRAF_PAL LD C,#A6 ; set GRAF_PAL
LD B,1 LD B,1
LD A,0 ;GRAPHIC_SCREEN LD A,0 ;GRAPHIC_SCREEN
RST 8 RST ToBIOS
EI EI
IN A,(SLOT3) IN A,(SLOT3)
@ -119,15 +119,14 @@ START: PUSH IX
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
LD HL,0 LD HL,0
LD IX,PIC_MAIN.Size LD IX,PIC_MAIN.Size
LD BC,Dss.Move_FP.FrEnd * 256 + Dss.Move_FP LD BC,Dss.Move_FP.FrEnd
;!TEST ;!TEST
LD HL,#B400 LD HL,#B400
LD DE,#36 LD DE,#36
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 ; READ Head RST ToDSS ; READ Head
; LD HL,0B436h ; Set All PAL=0 ; LD HL,0B436h ; Set All PAL=0
; LD DE,0B437h ; LD DE,0B437h
@ -146,7 +145,7 @@ START: PUSH IX
LD HL,#B436 LD HL,#B436
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 ; READ PAL RST ToDSS ; READ PAL
; LD HL,0B832h ; 梥â FF - ¡¥«ë© ; LD HL,0B832h ; 梥â FF - ¡¥«ë©
; LD (HL),0FFh ; LD (HL),0FFh
@ -172,7 +171,7 @@ LOOP_FACE:
LD DE,#1400 ; ¯® 5k LD DE,#1400 ; ¯® 5k
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 ; READ File RST ToDSS ; READ File
POP BC POP BC
PUSH BC ; ¢á¯®¬­¨âì C - Line PUSH BC ; ¢á¯®¬­¨âì C - Line
@ -275,7 +274,7 @@ NO_FACE:
LD C,#A6 ; set GRAF_PAL LD C,#A6 ; set GRAF_PAL
LD B,1 LD B,1
LD A,0 LD A,0
RST 8 RST ToBIOS
EI EI
FACE_OK: FACE_OK:
@ -288,6 +287,12 @@ FACE_OK:
PLAY_ALL: PLAY_ALL:
CALL TEST_SWITCH CALL TEST_SWITCH
IF SoundBugFix
LD A,CBL.BUFFER_PAGE
OUT (SLOT3),A
ENDIF
; HL - name ; HL - name
CALL READ_FILE ; ç⥭¨¥ ä ©«  (á­ ç « !) CALL READ_FILE ; ç⥭¨¥ ä ©«  (á­ ç « !)
JP C,ERROR JP C,ERROR
@ -440,7 +445,7 @@ PLAY_WAVE:
ERROR2: CALL RESTORE_SCR ERROR2: CALL RESTORE_SCR
LD HL,ERROR_MSG2 LD HL,ERROR_MSG2
LD C,#5C LD C,#5C
RST #10 RST ToDSS
CALL CLOSE_FILE CALL CLOSE_FILE
LD B,DSS_Error.sys.UNKNOWN_FORMAT LD B,DSS_Error.sys.UNKNOWN_FORMAT
JP EXIT_ALL.exit JP EXIT_ALL.exit
@ -448,14 +453,14 @@ ERROR2: CALL RESTORE_SCR
ERROR: CALL RESTORE_SCR ERROR: CALL RESTORE_SCR
LD HL,ERROR_MSG LD HL,ERROR_MSG
LD C,#5C LD C,#5C
RST #10 RST ToDSS
LD B,DSS_Error.sys.FILE_NOT_FOUND LD B,DSS_Error.sys.FILE_NOT_FOUND
JP EXIT_ALL.exit JP EXIT_ALL.exit
ERROR3: CALL RESTORE_SCR ERROR3: CALL RESTORE_SCR
LD HL,ERROR_MSG3 LD HL,ERROR_MSG3
LD C,#5C LD C,#5C
RST #10 RST ToDSS
CALL CLOSE_FILE CALL CLOSE_FILE
LD B,DSS_Error.sys.UNKNOWN_FORMAT LD B,DSS_Error.sys.UNKNOWN_FORMAT
JP EXIT_ALL.exit JP EXIT_ALL.exit
@ -464,7 +469,7 @@ RESTORE_SCR:
LD C,#50 LD C,#50
LD B,0 LD B,0
LD A,#03 LD A,#03
JP #10 ; OPEN_TXT_SCR JP ToDSS ; OPEN_TXT_SCR
NEXT_1: NEXT_1:
LD A,(#C016) LD A,(#C016)
@ -556,8 +561,12 @@ DATA_1:
LD BC,3 LD BC,3
LDIR ; COPY LEN of DATA LDIR ; COPY LEN of DATA
IF SND_Abug IF SoundBugFix
LD (SND_A),HL ; Adress of data XOR A
LD B,L
.loop: DEC HL
LD (HL),A
DJNZ .loop
ENDIF ENDIF
IN A,(SLOT3) IN A,(SLOT3)
@ -575,12 +584,6 @@ DATA_1:
LD (NUM_SEC+1),A LD (NUM_SEC+1),A
LD HL,#C000 LD HL,#C000
;
; ================[ <20>Ž„ƒŽ<C692>Š€ ]================; !TODO
IF WAVPLunknown
LD DE,0
ENDIF
;================[----------]================;
; ;
CALL READ_FILE_X1 CALL READ_FILE_X1
@ -650,12 +653,6 @@ NO_KEY1:
LD (HDD_CNT),A LD (HDD_CNT),A
LD HL,0E000h LD HL,0E000h
;
; ================[ <20>Ž„ƒŽ<C692>Š€ ]================; !TODO
IF WAVPLunknown
LD DE,1
ENDIF
;================[----------]================;
; ;
CALL READ_FILE_X CALL READ_FILE_X
JP NZ,EXIT_ALL JP NZ,EXIT_ALL
@ -692,12 +689,6 @@ NO_KEY2:
LD (HDD_CNT),A LD (HDD_CNT),A
LD HL,#C000 LD HL,#C000
;
; ================[ <20>Ž„ƒŽ<C692>Š€ ]================; !TODO
IF WAVPLunknown
LD DE,1
ENDIF
;================[----------]================;
; ;
CALL READ_FILE_X CALL READ_FILE_X
JP NZ,EXIT_ALL JP NZ,EXIT_ALL
@ -895,17 +886,17 @@ HDD_CNT: db 0
PAUSE_KEY: PAUSE_KEY:
DI DI
LD BC,#4E LD BC,CBL.SYS_PORT
LD A,0 XOR A ; CBL.Covox
OUT (C),A ; stop Audio OUT (C),A ; stop Audio
LD A,#80 LD A,#80
LD C,#4F LD C,CBL.OUT
OUT (C),A ; COVOX=80h OUT (C),A ; COVOX=80h
CALL PAUSE_KEY1 CALL PAUSE_KEY1
LD A,(CBL_MODE) ; PLAY MORE LD A,(CBL_MODE) ; PLAY MORE
LD BC,#4E LD BC,CBL.SYS_PORT
OUT (C),A OUT (C),A
EI EI
XOR A XOR A
@ -1036,16 +1027,6 @@ L_DDX:
LD A,H LD A,H
OR #C0 OR #C0
LD H,A LD H,A
;========================[ BUG FIX ]========================;
IF OutOfPageBugFix
ex de,hl
ld hl,#100
adc hl,de
ex de,hl
jr nc,1F
ld hl,#C02C
1:
ENDIF
;===========================================================; ;===========================================================;
LD (SND_A),HL LD (SND_A),HL
@ -1231,7 +1212,7 @@ SET_PAL_1:
PALS_N+2: LD DE,0 PALS_N+2: LD DE,0
LD C,#A4 LD C,#A4
LD A,0 LD A,0
RST 8h ; set Pal RST ToBIOS ; set Pal
EI EI
RET RET
@ -1285,7 +1266,7 @@ LINE_COMP:
READ_FILE: ; HL - name, ç¨â âì ¢  ¤à¥á #C000 READ_FILE: ; HL - name, ç¨â âì ¢  ¤à¥á #C000
LD A,1 LD A,1
LD C,#11 LD C,#11
RST #10 RST ToDSS
RET C ; ®è¨¡ª , ¥á«¨ ­¥â ä ©«  RET C ; ®è¨¡ª , ¥á«¨ ­¥â ä ©« 
LD (FILE_HANDLE),A LD (FILE_HANDLE),A
@ -1295,7 +1276,7 @@ READ_FILE: ; HL - name,
LD DE,#100 ; ç¨â âì § £®«®¢®ª LD DE,#100 ; ç¨â âì § £®«®¢®ª
; LD DE,200h ; ç¨â âì § £®«®¢®ª ; LD DE,200h ; ç¨â âì § £®«®¢®ª
LD C,#13 LD C,#13
RST #10 RST ToDSS
RET C ; ®è¨¡ª  ¯à¨ ç⥭¨¨ RET C ; ®è¨¡ª  ¯à¨ ç⥭¨¨
; ¤«¨­  áç¨â ­­ëå ¤ ­­ëå ¢ DE ; ¤«¨­  áç¨â ­­ëå ¤ ­­ëå ¢ DE
RET ; ®è¨¡ª  ¯à¨ § ªàë⨨ ¨«¨ Ok RET ; ®è¨¡ª  ¯à¨ § ªàë⨨ ¨«¨ Ok
@ -1305,13 +1286,13 @@ READ_MORE: ;
LD DE,#1000 ; LD DE,#1000 ;
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 RST ToDSS
; JR CLOSE_FILE ; JR CLOSE_FILE
CLOSE_FILE: CLOSE_FILE:
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
LD C,#12 LD C,#12
RST #10 RST ToDSS
RET RET
;******************************************* ;*******************************************
@ -1321,7 +1302,7 @@ READ_FILE_XD1:
LD DE,#1F00 ; ç¨â âì ¤ «ìè¥ LD DE,#1F00 ; ç¨â âì ¤ «ìè¥
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 RST ToDSS
RET RET
READ_FILE_XD: READ_FILE_XD:
@ -1330,7 +1311,7 @@ READ_FILE_XD:
LD DE,#2000 ; ç¨â âì ¤ «ìè¥ LD DE,#2000 ; ç¨â âì ¤ «ìè¥
LD C,#13 LD C,#13
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
RST #10 RST ToDSS
POP HL POP HL
ADD HL,DE ADD HL,DE
@ -1444,7 +1425,7 @@ CONT_1:
NUM_SEC: NUM_SEC:
LD B,16 ; áç¨â âì 16 ᥪâ®à®¢ LD B,16 ; áç¨â âì 16 ᥪâ®à®¢
LD C,#48 LD C,#48
RST #8 ; CALL BIOS !!! READ_NEXT RST ToBIOS ; CALL BIOS !!! READ_NEXT
ENDIF ENDIF
;================[----------]================; ;================[----------]================;
; ;