diff --git a/Source/HBIOS/audio.inc b/Source/HBIOS/audio.inc index e1a9fbe4..2b69513b 100644 --- a/Source/HBIOS/audio.inc +++ b/Source/HBIOS/audio.inc @@ -11,6 +11,8 @@ #DEFINE AUDDEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED +#DEFINE AUDTRACE_CR AUDDEBUG("\r\n$") + #ELSE #DEFINE AUDTRACE(S) #DEFINE AUDTRACE_A @@ -23,4 +25,6 @@ #DEFINE AUDTRACE_IY #DEFINE AUDDEBUG(STR) + +#DEFINE AUDTRACE_CR #ENDIF diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 8fe13b25..4b6c863f 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -58,7 +58,7 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE ; ; DEVICE CAPABILITIES AND CONFIGURATION ; -SBCV2004 .EQU 1 ; USE SBC-V2-004 HALF CLOCK DIVIDER +SBCV2004 .EQU 1 ; USE SBC-V2-004 HALF CLOCK DIVIDER ; AY_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS @@ -106,11 +106,11 @@ AY38910_INIT: LD D,AY_R3CHBP LD E,$00 CALL AY_WRTPSG ; R03 = $00 = XXXX0000 -; - CALL LDELAY ; HALF SECOND +; + CALL LDELAY ; HALF SECOND ; LD E,$00 ; SET VOLUME OFF - CALL AY_SETV ; ON ALL CHANNELS + CALL AY_SETV ; ON ALL CHANNELS ; ; RET ; @@ -129,7 +129,7 @@ AY_INIT: ;====================================================================== ; AY_SETV: - LD B,AY_TONECNT ; NUMBER OF CHANNELS + LD B,AY_TONECNT ; NUMBER OF CHANNELS LD D,AY_R8AVOL ; BASE REGISTER FOR VOLUME AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS INC D @@ -144,20 +144,20 @@ AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS ;====================================================================== ; AY_RESET: - AUDTRACE(TRACE_INIT) + AUDTRACE(AYT_INIT) ; CALL AY_INIT ; SET DEFAULT CHIP CONFIGURATION ; - AUDTRACE(TRACE_VOLUME_OFF) + AUDTRACE(AYT_VOLOFF) LD E,0 ; SET VOLUME OFF CALL AY_SETV ; ON ALL CHANNELS ; XOR A ; SIGNAL SUCCESS - LD (PENDING_VOLUME),A ; SET VOLUME TO ZERO + LD (AY_PENDING_VOLUME),A ; SET VOLUME TO ZERO LD H,A LD L,A - LD (PENDING_PERIOD),HL ; SET TONE PERIOD TO ZERO -; + LD (AY_PENDING_PERIOD),HL ; SET TONE PERIOD TO ZERO +; RET ; ;====================================================================== @@ -165,11 +165,11 @@ AY_RESET: ;====================================================================== ; AY_VOLUME: - AUDDEBUG("AY3VOL ") + AUDTRACE(AYT_VOL) AUDTRACE_L - AUDDEBUG("\r\n") + AUDTRACE_CR LD A,L ; SAVE VOLUME - LD (PENDING_VOLUME), A + LD (AY_PENDING_VOLUME), A ; XOR A ; SIGNAL SUCCESS RET @@ -179,22 +179,22 @@ AY_VOLUME: ;====================================================================== ; AY_PERIOD: - AUDDEBUG("AY3PRD ") + AUDTRACE(AYT_PERIOD) AUDTRACE_HL - AUDDEBUG("\r\n") + AUDTRACE_CR LD A, H ; MAXIMUM TONE PERIOD IS 12-BITS CP $10 ; ALLOWED RANGE IS 0001-0FFF (4095) JP NC, AY_QUERY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE - LD (PENDING_PERIOD), HL ; SAVE AND + LD (AY_PENDING_PERIOD), HL ; SAVE AND XOR A ; SIGNAL SUCCESS RET AY_QUERY_PERIOD1: LD L, $FF - LD H, L ; REQUESTED PERIOD IS LARGER - LD (PENDING_PERIOD), HL ; THAN THE DEVICE CAN SUPPORT + LD H, L ; REQUESTED PERIOD IS LARGER + LD (AY_PENDING_PERIOD), HL ; THAN THE DEVICE CAN SUPPORT OR L ; SO SIGNAL FAILURE RET ; @@ -203,9 +203,9 @@ AY_QUERY_PERIOD1: ;====================================================================== ; AY_NOTE: - AUDDEBUG("AY3NOT ") + AUDTRACE(AYT_NOTE) AUDTRACE_L - AUDDEBUG("\r\n") + AUDTRACE_CR ADD HL, HL ; SHIFT RIGHT (MULT 2) -INDEX INTO AY3NOTETBL TABLE OF WORDS ; TEST IF HL IS LARGER THAN AY3NOTETBL SIZE @@ -236,11 +236,11 @@ AY_NOTE1: ;====================================================================== ; AY_PLAY: - AUDDEBUG("AY3PLY ") + AUDTRACE(AYT_PLAY) AUDTRACE_D - AUDDEBUG("\r\n") + AUDTRACE_CR ; - LD A, (PENDING_PERIOD + 1) ; CHECK THE HIGH BYTE OF THE PERIOD + LD A, (AY_PENDING_PERIOD + 1) ; CHECK THE HIGH BYTE OF THE PERIOD CP $FF JR Z, AY_PLAY1 ; PERIOD IS TOO LARGE, UNABLE TO PLAY CALL AY_APPLY_VOL @@ -250,13 +250,13 @@ AY_PLAY: RET ; AY_PLAY1: ; TURN CHANNEL VOL TO OFF AND STOP PLAYING - LD A, (PENDING_VOLUME) + LD A, (AY_PENDING_VOLUME) PUSH AF XOR A - LD (PENDING_VOLUME), A + LD (AY_PENDING_VOLUME), A CALL AY_APPLY_VOL POP AF - LD (PENDING_VOLUME), A + LD (AY_PENDING_VOLUME), A ; OR $FF ; SIGNAL FAILURE RET @@ -284,17 +284,17 @@ AY_QUERY: ; AY_QUERY_CHCNT: LD B, AY_TONECNT ; RETURN NUMBER OF - LD C, AY_NOISECNT ; TONE AND NOISE + LD C, AY_NOISECNT ; TONE AND NOISE XOR A ; CHANNELS IN BC RET ; AY_QUERY_PERIOD: - LD HL, (PENDING_PERIOD) ; RETURN 16-BIT PERIOD + LD HL, (AY_PENDING_PERIOD) ; RETURN 16-BIT PERIOD XOR A ; IN HL REGISTER RET ; AY_QUERY_VOLUME: - LD A, (PENDING_VOLUME) ; RETURN 8-BIT VOLUME + LD A, (AY_PENDING_VOLUME) ; RETURN 8-BIT VOLUME LD L, A ; IN L REGISTER XOR A LD H, A @@ -320,11 +320,11 @@ AY_APPLY_VOL: ADD A,AY_R8AVOL ; CHANNEL VOLUME LD D,A ; REGISTER ; - AUDTRACE(TRACE_REG_WR) + AUDTRACE(AYT_REGWR) AUDTRACE_A - AUDTRACE(TRACE_NEWLINE) + AUDTRACE_CR ; - LD A, (PENDING_VOLUME) ; MAP THE VOLUME + LD A, (AY_PENDING_VOLUME) ; MAP THE VOLUME RRCA ; FROM 00-FF RRCA ; TO 00-0F RRCA @@ -353,11 +353,12 @@ AY_APPLY_PRD: ADD A,A ; CHANNEL REGISTER LD D,A ; FOR THE TONE PERIOD ; - AUDTRACE(TRACE_REG_WR) + AUDTRACE(AYT_REGWR) AUDTRACE_A - AUDTRACE(TRACE_NEWLINE) + AUDTRACE_CR + ; - LD HL,(PENDING_PERIOD) ; WRITE THE LOWER + LD HL,(AY_PENDING_PERIOD) ; WRITE THE LOWER LD E,L ; 8-BITS OF THE TONE PERIOD CALL AY_WRTPSG INC D @@ -370,10 +371,10 @@ AY_APPLY_PRD: RET ; ;====================================================================== -; +; ; WRITE DATA IN E REGISTER TO DEVICE REGISTER D ; INTERRUPTS DISABLE DURING WRITE. WRITE IN SLOW MODE IF Z180 CPU. -; +; ;====================================================================== ; AY_WRTPSG: @@ -388,7 +389,7 @@ AY_WRTPSG: OR %00110000 ; FORCE SLOW OPERATION (I/O W/S=3) OUT0 (Z180_DCNTL),A ; AND UPDATE DCNTL #ENDIF - LD A,D ; SELECT THE REGISTER WE + LD A,D ; SELECT THE REGISTER WE OUT (AY_RSEL),A ; WANT TO WRITE TO LD A,E ; WRITE THE VALUE TO OUT (AY_RDAT),A ; THE SELECTED REGISTER @@ -405,19 +406,17 @@ AY_WRTPSG: ; ;====================================================================== ; -PENDING_PERIOD .DW 0 ; PENDING PERIOD (12 BITS) -PENDING_VOLUME .DB 0 ; PENDING VOL (8 BITS) +AY_PENDING_PERIOD .DW 0 ; PENDING PERIOD (12 BITS) +AY_PENDING_VOLUME .DB 0 ; PENDING VOL (8 BITS) #IF AUDIOTRACE -TRACE_INIT .DB "\r\nAY_INIT CALLED\r\n$" -TRACE_VOLUME_OFF .DB "\r\nAY_VOLUME_OFF\r\n$" -TRACE_VOLUME_SET .DB "\r\nAY_VOLUME_SET CH: $" -TRACE_PLAY .DB "\r\nPLAY\r\n$" -TRACE_VOLUME .DB ", VOL: $" -TRACE_REG_WR .DB "\r\nOUT AY-3-8910 $" -TRACE_PERIOD_SET .DB "\r\nAY_PERIOD_SET CH: $" -TRACE_PERIOD .DB ", PERIOD: $" -TRACE_NEWLINE .DB "\r\n$" +AYT_INIT .DB "\r\nAY_INIT\r\n$" +AYT_VOLOFF .DB "\r\nAY_VOLUME OFF\r\n$" +AYT_VOL .DB "\r\nAY_VOLUME: $" +AYT_NOTE .DB "\r\nAY_NOTE: $" +AYT_PERIOD .DB "\r\nAY_PERIOD $" +AYT_PLAY .DB "\r\nAY_PLAY CH: $" +AYT_REGWR .DB "\r\nOUT AY-3-8910 $" #ENDIF ; ; THE FREQUENCY BY QUARTER TONE STARTING AT A1# diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 3e058bd1..9a4c5073 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2286,7 +2286,7 @@ SND_ADDENT: ; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS) ; SND_FNCNT .EQU 6 ; NUMBER OF SND FUNCS (FOR RANGE CHECK) -SND_MAX .EQU 2 ; UP TO 2 UNITS +SND_MAX .EQU 3 ; UP TO 2 UNITS SND_SIZ .EQU SND_MAX * 4 ; EACH ENTRY IS 4 BYTES ; .DB SND_FNCNT ; SND FUNCTION COUNT (FOR RANGE CHECK) @@ -2555,7 +2555,7 @@ SYS_GETRTCCNT: LD A,(RTC_DISPACT) ; IS RTC ACTIVE? OR A ; SET FLAGS JR Z,SYS_GETRTCCNT1 ; IF NONE, DONE - INC E ; SET ONE DEVICE + INC E ; SET ONE DEVICE SYS_GETRTCCNT1: XOR A ; SIGNALS SUCCESS RET diff --git a/Source/HBIOS/sn76489.asm b/Source/HBIOS/sn76489.asm index 5d849893..0d7a2936 100644 --- a/Source/HBIOS/sn76489.asm +++ b/Source/HBIOS/sn76489.asm @@ -69,13 +69,13 @@ SN7_INIT1: ; SN7_RESET: - AUDTRACE(TRACE_INIT) + AUDTRACE(SNT_INIT) CALL SN7_VOLUME_OFF XOR A ; SIGNAL SUCCESS RET SN7_VOLUME_OFF: - AUDTRACE(TRACE_VOLUME_OFF) + AUDTRACE(SNT_VOLOFF) LD A, CHANNEL_0_SILENT OUT (SN76489_PORT_LEFT), A @@ -103,11 +103,11 @@ SN7_VOLUME_OFF: ; 1 CC 1 VVVV SN7_VOLUME: - AUDDEBUG("SN7VOL ") + AUDTRACE(SNT_VOL) AUDTRACE_L - AUDDEBUG("\r\n") + AUDTRACE_CR LD A, L - LD (PENDING_VOLUME), A + LD (SN7_PENDING_VOLUME), A XOR A ; SIGNAL SUCCESS RET @@ -115,9 +115,9 @@ SN7_VOLUME: SN7_NOTE: - AUDDEBUG("SN7NOT ") + AUDTRACE(SNT_NOTE) AUDTRACE_L - AUDDEBUG("\r\n") + AUDTRACE_CR ADD HL, HL ; SHIFT RIGHT (MULT 2) -INDEX INTO SN7NOTETBL TABLE OF WORDS ; TEST IF HL IS LARGER THAN SN7NOTETBL SIZE @@ -144,32 +144,32 @@ SN7_NOTE1: RET SN7_PERIOD: - AUDDEBUG("SN7PRD ") + AUDTRACE(SNT_PERIOD) AUDTRACE_HL - AUDDEBUG("\r\n") + AUDTRACE_CR LD A, H CP $04 JP NC, SN7_QUERY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE - LD (PENDING_PERIOD), HL + LD (SN7_PENDING_PERIOD), HL XOR A ; SIGNAL SUCCESS RET SN7_QUERY_PERIOD1: ; REQUESTED PERIOD IS LARGER THAN THE SN76489 CAN SUPPORT LD L, $FF LD H, $FF - LD (PENDING_PERIOD), HL + LD (SN7_PENDING_PERIOD), HL OR $FF ; SIGNAL FAILURE RET SN7_PLAY: - AUDDEBUG("SN7PLY ") + AUDTRACE(SNT_PLAY) AUDTRACE_D - AUDDEBUG("\r\n") + AUDTRACE_CR - LD A, (PENDING_PERIOD + 1) + LD A, (SN7_PENDING_PERIOD + 1) CP $FF JR Z, SN7_PLAY1 ; PERIOD IS TOO LARGE, UNABLE TO PLAY CALL SN7_APPLY_VOL @@ -179,13 +179,13 @@ SN7_PLAY: RET SN7_PLAY1: ; TURN CHANNEL VOL TO OFF AND STOP PLAYING - LD A, (PENDING_VOLUME) + LD A, (SN7_PENDING_VOLUME) PUSH AF LD A, 0 - LD (PENDING_VOLUME), A + LD (SN7_PENDING_VOLUME), A CALL SN7_APPLY_VOL POP AF - LD (PENDING_VOLUME), A + LD (SN7_PENDING_VOLUME), A OR $FF ; SIGNAL FAILURE RET @@ -214,12 +214,12 @@ SN7_QUERY_CHCNT: RET SN7_QUERY_PERIOD: - LD HL, (PENDING_PERIOD) + LD HL, (SN7_PENDING_PERIOD) XOR A RET SN7_QUERY_VOLUME: - LD A, (PENDING_VOLUME) + LD A, (SN7_PENDING_VOLUME) LD L, A LD H, 0 @@ -251,7 +251,7 @@ SN7_APPLY_VOL: ; APPLY VOLUME TO BOTH LEFT AND RIGHT CHANNELS OR $90 LD B, A - LD A, (PENDING_VOLUME) + LD A, (SN7_PENDING_VOLUME) RRCA RRCA RRCA @@ -264,9 +264,9 @@ SN7_APPLY_VOL: ; APPLY VOLUME TO BOTH LEFT AND RIGHT CHANNELS AND $0F OR B ; A CONTAINS COMMAND TO SET VOLUME FOR CHANNEL - AUDTRACE(TRACE_PORT_WR) + AUDTRACE(SNT_REGWR) AUDTRACE_A - AUDTRACE(TRACE_NEWLINE) + AUDTRACE_CR OUT (SN76489_PORT_LEFT), A OUT (SN76489_PORT_RIGHT), A @@ -279,7 +279,7 @@ SN7_APPLY_PRD: PUSH DE PUSH BC PUSH AF - LD HL, (PENDING_PERIOD) + LD HL, (SN7_PENDING_PERIOD) LD A, D AND $3 @@ -295,9 +295,9 @@ SN7_APPLY_PRD: AND $F OR B ; A NOW CONATINS FIRST PERIOD COMMAND - AUDTRACE(TRACE_PORT_WR) + AUDTRACE(SNT_REGWR) AUDTRACE_A - AUDTRACE(TRACE_NEWLINE) + AUDTRACE_CR OUT (SN76489_PORT_LEFT), A OUT (SN76489_PORT_RIGHT), A @@ -318,9 +318,9 @@ SN7_APPLY_PRD: RLCA ; AND PLACE IN BITS 5 AND 6 OR B ; OR THE TWO SETS OF BITS TO MAKE 2ND PERIOD COMMAND - AUDTRACE(TRACE_PORT_WR) + AUDTRACE(SNT_REGWR) AUDTRACE_A - AUDTRACE(TRACE_NEWLINE) + AUDTRACE_CR OUT (SN76489_PORT_LEFT), A OUT (SN76489_PORT_RIGHT), A @@ -344,24 +344,22 @@ SN7_FNTBL: !!!!! #ENDIF -PENDING_PERIOD +SN7_PENDING_PERIOD .DW 0 ; PENDING PERIOD (10 BITS) -PENDING_VOLUME +SN7_PENDING_VOLUME .DB 0 ; PENDING VOL (8 BITS -> DOWNCONVERTED TO 4 BITS AND INVERTED) STR_MESSAGELT .DB "\r\nSN76489: LEFT IO=0x$" STR_MESSAGERT .DB ", RIGHT IO=0x$" #IF AUDIOTRACE -TRACE_INIT .DB "\r\nSN7_INIT CALLED\r\n$" -TRACE_VOLUME_OFF .DB "\r\nSN7_VOLUME_OFF\r\n$" -TRACE_VOLUME_SET .DB "\r\nSN7_VOLUME_SET CH: $" -TRACE_PLAY .DB "\r\nPLAY\r\n$" -TRACE_VOLUME .DB ", VOL: $" -TRACE_PORT_WR .DB "\r\nOUT SN76489, $" -TRACE_PERIOD_SET .DB "\r\nSN7_PERIOD_SET CH: $" -TRACE_PERIOD .DB ", PERIOD: $" -TRACE_NEWLINE .DB "\r\n$" +SNT_INIT .DB "\r\nSN7_INIT\r\n$" +SNT_VOLOFF .DB "\r\nSN7_VOLUME OFF\r\n$" +SNT_VOL .DB "\r\nSN7_VOLUME: $" +SNT_NOTE .DB "\r\nSN7_NOTE: $" +SNT_PERIOD .DB "\r\nSN7_PERIOD: $" +SNT_PLAY .DB "\r\nSN7_PLAY CH: $" +SNT_REGWR .DB "\r\nOUT SN76489, $" #ENDIF ; THE FREQUENCY BY QUARTER TONE STARTING AT A1#