From b1bb684a048e757ca8cbd4d3af851a3c811641c5 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Tue, 28 Apr 2020 18:35:20 +1000 Subject: [PATCH] SN76489: Prevent and return error code if a pitch greater than 03FF is attempted to be set --- Source/HBIOS/sn76489.asm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Source/HBIOS/sn76489.asm b/Source/HBIOS/sn76489.asm index f3430b3a..8870e801 100644 --- a/Source/HBIOS/sn76489.asm +++ b/Source/HBIOS/sn76489.asm @@ -147,11 +147,19 @@ SN7_PITCH: AUDDEBUG("SN7PIT ") AUDTRACE_HL AUDDEBUG("\r\n") - LD (PENDING_PITCH), HL + LD A, H + CP $04 + JP NC, SN7_QUERY_PITCH1 ; RETURN NZ IF NUMBER TOO LARGE + + LD (PENDING_PITCH), HL XOR A ; SIGNAL SUCCESS RET +SN7_QUERY_PITCH1: + OR $FF + RET + SN7_PLAY: AUDDEBUG("SN7PLY ") AUDTRACE_D @@ -188,7 +196,6 @@ SN7_QUERY_CHCNT: SN7_QUERY_PITCH: LD HL, (PENDING_PITCH) - XOR A RET