diff --git a/Shared_Includes b/Shared_Includes index 7f4046e..378f3fd 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 7f4046e7fabff85738efcf2a7aa1dbbeca7af906 +Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022 diff --git a/WAVPLAY.ASM b/WAVPLAY.ASM index 80260f0..f41172d 100644 --- a/WAVPLAY.ASM +++ b/WAVPLAY.ASM @@ -1,7 +1,6 @@ - DEFINE WAVPLunknown 1 - DEFINE SND_Abug 0 - DEFINE OutOfPageBugFix 0 + DEFINE WAVPLunknown 1 + DEFINE SoundBugFix 1 SH_HDD_X EQU 223 ; положение индикатора HDD гор. SH_HDD_Y EQU 90 ; положение индикатора HDD верт. @@ -41,6 +40,7 @@ SH_HDD_Y EQU 90 ; ENDM INCLUDE 'shared_includes/constants/sp2000.inc' INCLUDE 'Shared_Includes/constants/dss_equ.inc' + INCLUDE 'Shared_Includes/constants/bios_equ.inc' INCLUDE 'shared_includes/macroses/accelerator.z80' ORG #8100-EXE_HEADER.Size @@ -62,19 +62,19 @@ START: PUSH IX LD (FILE_HANDLE),A LD HL,START_MSG LD C,#5C - RST #10 ; Start Message + RST ToDSS ; Start Message LD C,#50 LD B,0 LD A,#81 - RST #10 ; OPEN_GRAF_SCR + RST ToDSS ; OPEN_GRAF_SCR DI LD C,#A6 ; set GRAF_PAL LD B,1 LD A,0 ;GRAPHIC_SCREEN - RST 8 + RST ToBIOS EI IN A,(SLOT3) @@ -119,15 +119,14 @@ START: PUSH IX LD A,(FILE_HANDLE) LD HL,0 LD IX,PIC_MAIN.Size - LD BC,Dss.Move_FP.FrEnd * 256 + Dss.Move_FP - + LD BC,Dss.Move_FP.FrEnd ;!TEST LD HL,#B400 LD DE,#36 LD C,#13 LD A,(FILE_HANDLE) - RST #10 ; READ Head + RST ToDSS ; READ Head ; LD HL,0B436h ; Set All PAL=0 ; LD DE,0B437h @@ -146,7 +145,7 @@ START: PUSH IX LD HL,#B436 LD C,#13 LD A,(FILE_HANDLE) - RST #10 ; READ PAL + RST ToDSS ; READ PAL ; LD HL,0B832h ; цвет FF - белый ; LD (HL),0FFh @@ -172,7 +171,7 @@ LOOP_FACE: LD DE,#1400 ; по 5k LD C,#13 LD A,(FILE_HANDLE) - RST #10 ; READ File + RST ToDSS ; READ File POP BC PUSH BC ; вспомнить C - Line @@ -275,7 +274,7 @@ NO_FACE: LD C,#A6 ; set GRAF_PAL LD B,1 LD A,0 - RST 8 + RST ToBIOS EI FACE_OK: @@ -288,6 +287,12 @@ FACE_OK: PLAY_ALL: CALL TEST_SWITCH + + IF SoundBugFix + LD A,CBL.BUFFER_PAGE + OUT (SLOT3),A + ENDIF + ; HL - name CALL READ_FILE ; чтение файла (сначала!) JP C,ERROR @@ -440,7 +445,7 @@ PLAY_WAVE: ERROR2: CALL RESTORE_SCR LD HL,ERROR_MSG2 LD C,#5C - RST #10 + RST ToDSS CALL CLOSE_FILE LD B,DSS_Error.sys.UNKNOWN_FORMAT JP EXIT_ALL.exit @@ -448,14 +453,14 @@ ERROR2: CALL RESTORE_SCR ERROR: CALL RESTORE_SCR LD HL,ERROR_MSG LD C,#5C - RST #10 + RST ToDSS LD B,DSS_Error.sys.FILE_NOT_FOUND JP EXIT_ALL.exit ERROR3: CALL RESTORE_SCR LD HL,ERROR_MSG3 LD C,#5C - RST #10 + RST ToDSS CALL CLOSE_FILE LD B,DSS_Error.sys.UNKNOWN_FORMAT JP EXIT_ALL.exit @@ -464,7 +469,7 @@ RESTORE_SCR: LD C,#50 LD B,0 LD A,#03 - JP #10 ; OPEN_TXT_SCR + JP ToDSS ; OPEN_TXT_SCR NEXT_1: LD A,(#C016) @@ -556,8 +561,12 @@ DATA_1: LD BC,3 LDIR ; COPY LEN of DATA - IF SND_Abug - LD (SND_A),HL ; Adress of data + IF SoundBugFix + XOR A + LD B,L +.loop: DEC HL + LD (HL),A + DJNZ .loop ENDIF IN A,(SLOT3) @@ -575,12 +584,6 @@ DATA_1: LD (NUM_SEC+1),A LD HL,#C000 -; -; ================[ ПОДГОНКА ]================; !TODO - IF WAVPLunknown - LD DE,0 - ENDIF -;================[----------]================; ; CALL READ_FILE_X1 @@ -650,12 +653,6 @@ NO_KEY1: LD (HDD_CNT),A LD HL,0E000h -; -; ================[ ПОДГОНКА ]================; !TODO - IF WAVPLunknown - LD DE,1 - ENDIF -;================[----------]================; ; CALL READ_FILE_X JP NZ,EXIT_ALL @@ -692,12 +689,6 @@ NO_KEY2: LD (HDD_CNT),A LD HL,#C000 -; -; ================[ ПОДГОНКА ]================; !TODO - IF WAVPLunknown - LD DE,1 - ENDIF -;================[----------]================; ; CALL READ_FILE_X JP NZ,EXIT_ALL @@ -895,17 +886,17 @@ HDD_CNT: db 0 PAUSE_KEY: DI - LD BC,#4E - LD A,0 + LD BC,CBL.SYS_PORT + XOR A ; CBL.Covox OUT (C),A ; stop Audio LD A,#80 - LD C,#4F + LD C,CBL.OUT OUT (C),A ; COVOX=80h CALL PAUSE_KEY1 LD A,(CBL_MODE) ; PLAY MORE - LD BC,#4E + LD BC,CBL.SYS_PORT OUT (C),A EI XOR A @@ -1036,16 +1027,6 @@ L_DDX: LD A,H OR #C0 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 @@ -1231,7 +1212,7 @@ SET_PAL_1: PALS_N+2: LD DE,0 LD C,#A4 LD A,0 - RST 8h ; set Pal + RST ToBIOS ; set Pal EI RET @@ -1285,7 +1266,7 @@ LINE_COMP: READ_FILE: ; HL - name, читать в адрес #C000 LD A,1 LD C,#11 - RST #10 + RST ToDSS RET C ; ошибка, если нет файла LD (FILE_HANDLE),A @@ -1295,7 +1276,7 @@ READ_FILE: ; HL - name, LD DE,#100 ; читать заголовок ; LD DE,200h ; читать заголовок LD C,#13 - RST #10 + RST ToDSS RET C ; ошибка при чтении ; длина считанных данных в DE RET ; ошибка при закрытии или Ok @@ -1305,13 +1286,13 @@ READ_MORE: ; LD DE,#1000 ; LD C,#13 LD A,(FILE_HANDLE) - RST #10 + RST ToDSS ; JR CLOSE_FILE CLOSE_FILE: LD A,(FILE_HANDLE) LD C,#12 - RST #10 + RST ToDSS RET ;******************************************* @@ -1321,7 +1302,7 @@ READ_FILE_XD1: LD DE,#1F00 ; читать дальше LD C,#13 LD A,(FILE_HANDLE) - RST #10 + RST ToDSS RET READ_FILE_XD: @@ -1330,7 +1311,7 @@ READ_FILE_XD: LD DE,#2000 ; читать дальше LD C,#13 LD A,(FILE_HANDLE) - RST #10 + RST ToDSS POP HL ADD HL,DE @@ -1444,7 +1425,7 @@ CONT_1: NUM_SEC: LD B,16 ; считать 16 секторов LD C,#48 - RST #8 ; CALL BIOS !!! READ_NEXT + RST ToBIOS ; CALL BIOS !!! READ_NEXT ENDIF ;================[----------]================; ;