From 6c48811167c71d72e55a47a2a65bf49bc4b496a4 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sun, 8 Sep 2019 00:06:19 +0800 Subject: [PATCH] Update nascom.asm --- Source/HBIOS/nascom.asm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Source/HBIOS/nascom.asm b/Source/HBIOS/nascom.asm index 6f105081..f4cb995d 100644 --- a/Source/HBIOS/nascom.asm +++ b/Source/HBIOS/nascom.asm @@ -4416,7 +4416,7 @@ OUTNCR: CALL OUTC ; Output character in A ; --------------------------------------------------------------------------------------- -; PLAY N,D ; PLAY NOTE N, DURATION D +; PLAY N,D ; PLAY NOTE N, DURATION DIVIDER PLAY: CALL GETNUM ; GET NOTE TO PLAY CALL DEINT ; ITS IN DE @@ -4442,12 +4442,14 @@ PLAY: CALL GETNUM ; GET NOTE TO PLAY EX (SP),HL ; RECALL NOTE ENTRY ; A = DURATION - CALL SPK_BEEP + CALL SPK_BEEP POP HL ; RECALL SYNTAX POINTER RET SPK_BEEP: + PUSH AF ; SAVE DURATION + LD A,(HL) ; LOAD 1ST ARG INC HL ; IN DE LD E,A @@ -4463,6 +4465,24 @@ SPK_BEEP: LD B,A PUSH BC ; SETUP ARG IN HL POP HL + +DIV_HL_C: ; DIVIDE THE NOTE + POP BC ; BY DURATION +; JR DIV_SKIP + + LD C,B + XOR A + LD B,16 +DIV_HL_LP: + ADD HL,HL + RLA + JR C,$+5 + CP C + JR C,$+4 + SUB C + INC L + DJNZ DIV_HL_LP +DIV_SKIP: ; CALL SPK_BEEPER ; PLAY ;