diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 7f712f09..01dc90a5 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -217,7 +217,11 @@ AY_PERIOD: AUDTRACE(AYT_PERIOD) AUDTRACE_HL AUDTRACE_CR -; + + LD A, H ; IF ZERO - ERROR + OR L + JR Z, AY_PERIOD1 + LD A, H ; MAXIMUM TONE PERIOD IS 12-BITS AND 11110000B ; ALLOWED RANGE IS 0001-0FFF (4095) JR NZ, AY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE diff --git a/Source/HBIOS/sn76489.asm b/Source/HBIOS/sn76489.asm index 5237aac4..56aaaecc 100644 --- a/Source/HBIOS/sn76489.asm +++ b/Source/HBIOS/sn76489.asm @@ -113,11 +113,9 @@ SN7_PERIOD: AUDTRACE_HL AUDTRACE_CR - ; TODO: MAKE ZERO BE AN INVALID VALUE (USE 400) TO INDICATE LOWEST NOTE - ; NEED TO UPDATE TUNE.ASM TO SUPPORT THIS? - ; LD A, H ; IF ZERO - ERROR - ; OR L - ; JR Z, SN7_QUERY_PERIOD1 + LD A, H ; IF ZERO - ERROR + OR L + JR Z, SN7_QUERY_PERIOD1 LD (SN7_PENDING_PERIOD), HL ;ASSUME SUCCESS @@ -130,11 +128,10 @@ SN7_PERIOD: RET SN7_QUERY_PERIOD1: ; REQUESTED PERIOD IS LARGER THAN THE SN76489 CAN SUPPORT - LD L, $FF - LD H, $FF + LD A, $FF + LD L, A + LD H, A LD (SN7_PENDING_PERIOD), HL - - OR $FF ; SIGNAL FAILURE RET SN7_PLAY: