From 222e08ed57608fb34406533239313eb2804573e4 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 13 Aug 2023 02:42:06 +1000 Subject: [PATCH] ... --- BIN/WAV_HELP.PAK | Bin 0 -> 1280 bytes WAVPLAY.ASM | 119 +++++++++++++++++++++-------------------------- 2 files changed, 53 insertions(+), 66 deletions(-) create mode 100644 BIN/WAV_HELP.PAK diff --git a/BIN/WAV_HELP.PAK b/BIN/WAV_HELP.PAK new file mode 100644 index 0000000000000000000000000000000000000000..b91e3931e314648828506af910c06872e88334cd GIT binary patch literal 1280 zcmb`G&ubGw6vtn7$LuV`&CW_=3Tt-KOx24JC`eS$sYDDxq!j;vC#5)`oSjLssRtG89Nv4M`M&+}X1@!tdwEY? z@Ls$dZQ{i#z?bePT%5Hq?u^(>aWKa?o92+67}N7YKmKymkBhT_!A^Li1lUj5TR#Mz z?~nAoF1+?<{o6eUEVm&ag6Genh&X_7N3mV~6p>>F!gqN5Y+R`75t$bH7sXB$y^5G` zJY1$y&-~OUE?)1U`qidnsKyBpmr2ZeK^8-Hp&~i!EB)_rdv{9;|B>C>J2%yU#kGd$ z#Gy8=2ArzT#TFW}aI|YtP$rWOC)BG1H9w2|NWrst{U^k;JUMPDn;xDBP-zQ`I?AR_Ta7-K7DqbI`ut$_=`b-_Bd zW865|Q}@Fd5MeFWr9*ZRDYlq1U^CVaYe&@ICHyFOa$$)*7}Im5)~3@NUJu9y4Ti^v WSAac(G?bMLUI1r0G|>m!qx1_)xq)Z^ literal 0 HcmV?d00001 diff --git a/WAVPLAY.ASM b/WAVPLAY.ASM index 49b20df..5ae5827 100644 --- a/WAVPLAY.ASM +++ b/WAVPLAY.ASM @@ -3,6 +3,9 @@ DEFINE SND_Abug 0 DEFINE OutOfPageBugFix 0 +SH_HDD_X EQU 223 ; положение индикатора HDD гор. +SH_HDD_Y EQU 90 ; положение индикатора HDD верт. + MACRO NEXT_SEC LD BC,P_S_NUM-256 @@ -337,7 +340,6 @@ END_WPL: LD HL,#9000 LOOP_WPL_ALL: - LD A,(NUM_FILES) AND A JR Z,STOP_ALL @@ -434,32 +436,29 @@ PLAY_WAVE: LD A,#80 LD (ADD_PAR),A JR Z,NEXT_1 - JR ERROR2 ; format error - -ERROR: - CALL RESTORE_SCR - LD HL,ERROR_MSG - LD C,5Ch - RST 10h - LD B,DSS_Error.sys.FILE_NOT_FOUND - RET - -ERROR2: - CALL RESTORE_SCR + ;JR ERROR2 ; format error +ERROR2: CALL RESTORE_SCR LD HL,ERROR_MSG2 LD C,#5C RST #10 CALL CLOSE_FILE - LD B,DSS_Error.sys.UNKNOWN_FORMAT - RET -ERROR3: - CALL RESTORE_SCR + LD B,DSS_Error.sys.UNKNOWN_FORMAT + JP EXIT_ALL.exit + +ERROR: CALL RESTORE_SCR + LD HL,ERROR_MSG + LD C,#5C + RST #10 + 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 CALL CLOSE_FILE - LD B,DSS_Error.sys.GENERAL_FAILURE - RET + LD B,DSS_Error.sys.UNKNOWN_FORMAT + JP EXIT_ALL.exit RESTORE_SCR: LD C,#50 @@ -468,7 +467,6 @@ RESTORE_SCR: JP #10 ; OPEN_TXT_SCR NEXT_1: - LD A,(#C016) CP 1 JR Z,NEXT_2 @@ -480,7 +478,7 @@ NEXT_2: LD A,B LD (CBL_MODE),A - LD BC,(0C018h) ; частота + LD BC,(#C018) ; частота LD HL,7000 LD DE,9000 CALL Test_DIAP @@ -525,7 +523,6 @@ NEXT_2: ; LD A,14 ; 54khz ; EX AF,AF' ; JR Z,NEXT_3 - JP ERROR3 NEXT_3: @@ -534,13 +531,9 @@ NEXT_3: LD A,(CBL_MODE) ADD A,C LD (CBL_MODE),A - PLAY_FILE: - CALL FRQ_ON - LD HL,#C024 - FIND_DATA: PUSH HL LD DE,LINES_DATA @@ -552,7 +545,6 @@ FIND_DATA: INC L JR NZ,FIND_DATA JP ERROR2 - DATA_1: INC HL INC HL @@ -571,12 +563,12 @@ DATA_1: IN A,(SLOT3) LD (SAV_PAGE3),A - LD A,#FD ; спец-страница! - LD (PLAY_PAGE),A + ;LD A,CBL.BUFFER_PAGE ; спец-страница! + ;LD (PLAY_PAGE),A ;********************************************* - LD A,(PLAY_PAGE) + LD A,CBL.BUFFER_PAGE OUT (SLOT3),A LD A,16 ; число секторов - признак конца данных @@ -738,11 +730,9 @@ HDD_IND: LD A,#20 ; забить весь индикатор ACC_Off -SH_HDD EQU 5Ah ; положение индикатора HDD верт. + LD HL,#C000 + SH_HDD_X ; положение индикатора HDD гор. - LD HL,#C0DF ; положение индикатора HDD гор. - - LD A,SH_HDD + LD A,SH_HDD_Y OUT (PORT_Y),A ; LD A,0Eh ; цвет панели (синий) @@ -755,7 +745,7 @@ SH_HDD EQU 5Ah ; LD (HL),A ACC_Off - LD A,SH_HDD + LD A,SH_HDD_Y OUT (PORT_Y),A INC HL @@ -772,8 +762,8 @@ SH_HDD EQU 5Ah ; CP #3E LD B,#1D JR C,NO_ - LD B,#1D -COLOR_B EQU $-1 +COLOR_B+1: LD B,#1D + LD A,(COLOR_B) XOR #1E LD (COLOR_B),A @@ -785,7 +775,7 @@ NO_: ACC_Off NEG - ADD A,SH_HDD+#40 + ADD A,SH_HDD_Y+#40 LD C,A OUT (PORT_Y),A @@ -806,7 +796,7 @@ NO_: LD HL,#C0E7 - LD A,SH_HDD + LD A,SH_HDD_Y OUT (PORT_Y),A ACC_SetBlockSize @@ -818,7 +808,8 @@ NO_: ACC_FillScreenOneByte LD (HL),A ACC_Off - LD A,1 ; зеленый + + LD A,1 ; зеленый ACC_FillScreenOneByte LD (HL),A ACC_Off @@ -831,7 +822,7 @@ NO_: LD (HL),A ACC_Off - LD A,SH_HDD + LD A,SH_HDD_Y OUT (PORT_Y),A INC HL @@ -845,6 +836,7 @@ NO_: ACC_FillScreenOneByte LD (HL),A ACC_Off + LD A,1 ; зеленый ACC_FillScreenOneByte LD (HL),A @@ -871,7 +863,7 @@ NO_: ACC_Off NEG - ADD A,SH_HDD+#40 + ADD A,SH_HDD_Y+#40 LD C,A OUT (PORT_Y),A @@ -930,8 +922,7 @@ PAUSE_KEY1: RET Z JR PAUSE_KEY1 -INKEY: - IN A,(Z84.SIO.Ch_A.Ctrl) +INKEY: IN A,(Z84.SIO.Ch_A.Ctrl) BIT 0,A RET Z IN A,(Z84.SIO.Ch_A.Data) @@ -962,7 +953,6 @@ NO_KEY: db #FF EXIT_ALL: - IM 1 LD A,0 @@ -971,9 +961,9 @@ EXIT_ALL: LD BC,#4F LD A,#80 -FILL_L1: - OUT (C),A ; забить во все 80h - DJNZ FILL_L1 + +.loop: OUT (C),A ; забить во все 80h + DJNZ .loop LD A,(SAV_PAGE3) OUT (SLOT3),A @@ -984,16 +974,16 @@ FILL_L1: ; LD B,1 ; LD A,3h ; RST 10h - - RET + LD B,0 +.exit: LD C,Dss.Exit + RST ToDSS + JR .exit SAV_PAGE3: db 0 - ;************************************* -PLAY: - DI +PLAY: DI PUSH AF - IN A,(0FEh) + IN A,(CBL.INT_PORT) RLCA JP NC,NO_SND @@ -1015,8 +1005,8 @@ PLAY: PUSH DE - LD A,#FD -PLAY_PAGE EQU $-1 ; !FIXIT зачем, если можно напрямую было прописать? + LD A,CBL.BUFFER_PAGE +;PLAY_PAGE EQU $-1 ; !FIXIT зачем, если можно напрямую было прописать? OUT (SLOT3),A OUT (SLOT0),A @@ -1053,11 +1043,11 @@ L_DDX: adc hl,de ex de,hl jr nc,1F - ld hl,#C02C +1: ENDIF ;===========================================================; -1: LD (SND_A),HL + LD (SND_A),HL ;**************** @@ -1153,7 +1143,7 @@ COLOR_+1: LD A,#FF ; DEC L ; LD (HL),A ; нарисовать новое - LD A,(PLAY_PAGE) + LD A,CBL.BUFFER_PAGE OUT (SLOT3),A POP AF @@ -1449,7 +1439,7 @@ READ_END: ELSE CONT_1: - LD A,(PLAY_PAGE) + LD A,CBL.BUFFER_PAGE NUM_SEC: LD B,16 ; считать 16 секторов @@ -1588,20 +1578,17 @@ PLAY_LIST_ID: db "PLAYLIST" NUM_FILES: db 1 NUM_MAX: db 2 -PLAY_LIST: - - - ds 8A00h-$ +PLAY_LIST: BLOCK #8A00-$,0 PIC_HELP: - incbin 'ORIGINAL/WAV_HELP.PAK' + incbin 'BIN/WAV_HELP.PAK' Loader_length EQU $ - START ; ; DISP 0 PIC_MAIN: - incbin './WAV_PL.BMP' + incbin './BIN/WAV_PL.BMP' .Size EQU $-PIC_MAIN ENT ;