From b52890bfeb3d159d8b32df20062e0e36d4b446a4 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 3 May 2017 00:40:33 -0400 Subject: [PATCH] tfv: more commenting of duet --- tfv/duet.s | 56 ++++++++++++++++++++++++++++------------------------ tfv/tfv.dsk | Bin 143360 -> 143360 bytes 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/tfv/duet.s b/tfv/duet.s index 1d728a0f..d4dac092 100644 --- a/tfv/duet.s +++ b/tfv/duet.s @@ -25,14 +25,15 @@ ; These are all "Free" zero page locations LOC6 EQU $06 LOC7 EQU $07 -LOC8 EQU $08 +DURATION EQU $08 LOC9 EQU $09 LOC1D EQU $1D -LOC1E EQU $1E -LOC1F EQU $1F +MADDRL EQU $1E +MADDRH EQU $1F LOC4E EQU $4E LOC4F EQU $4F +play_ed: LDA #$01 ; 900: A9 01 ; 2 *!* STA LOC9 ; 902: 85 09 ; 3 STA LOC1D ; 904: 85 1D ; 3 @@ -42,39 +43,41 @@ LOC4F EQU $4F BNE label1 ; 909: D0 15 ; 4 *!* label2: INY ; 90B: C8 ; 2 - LDA (LOC1E),Y ; 90C: B1 1E ; 5 *!* + LDA (MADDRL),Y ; 90C: B1 1E ; 5 *!* STA LOC9 ; 90E: 85 09 ; 3 INY ; 910: C8 ; 2 - LDA (LOC1E),Y ; 911: B1 1E ; 5 *!* + LDA (MADDRL),Y ; 911: B1 1E ; 5 *!* STA LOC1D ; 913: 85 1D ; 3 loop: - LDA LOC1E ; 915: A5 1E ; 3 *!* + LDA MADDRL ; 915: A5 1E ; 3 *!* CLC ; 917: 18 ; 2 ADC #$03 ; 918: 69 03 ; 2 *!* - STA LOC1E ; 91A: 85 1E ; 3 + STA MADDRL ; 91A: 85 1E ; 3 BCC label1 ; 91C: 90 02 ; 4 *!* - INC LOC1F ; 91E: E6 1F ; 5 + INC MADDRH ; 91E: E6 1F ; 5 label1: - LDY #$00 ; 920: A0 00 ; 2 *!* - LDA (LOC1E),Y ; 922: B1 1E ; 5 *!* - CMP #$01 ; 924: C9 01 ; 2 - BEQ label2 ; 926: F0 E3 ; 4 *!* - BCS label3 ; 928: B0 0D ; 4 *!* - PLA ; 92A: 68 ; 4 - PLA ; 92B: 68 ; 4 - PLA ; 92C: 68 ; 4 + LDY #$00 ; 920: A0 00 ; 2 *!* Set Y to zero + LDA (MADDRL),Y ; 922: B1 1E ; 5 *!* Load first byte + CMP #$01 ; 924: C9 01 ; 2 Compare to 1 + BEQ label2 ; 926: F0 E3 ; 4 *!* If one ? + BCS play_note ; 928: B0 0D ; 4 *!* If >1, then duration + PLA ; 92A: 68 ; 4 POP + PLA ; 92B: 68 ; 4 POP + PLA ; 92C: 68 ; 4 POP + sub1: - LDX #$49 ; 92D: A2 49 ; 2 *!* - INY ; 92F: C8 ; 2 - LDA (LOC1E),Y ; 930: B1 1E ; 5 *!* - BNE label4 ; 932: D0 02 ; 4 *!* - LDX #$C9 ; 934: A2 C9 ; 2 *!* + LDX #$49 ; 92D: A2 49 ; 2 *!* X=0x49 (EOR opcode) + INY ; 92F: C8 ; 2 increment to next byte + LDA (MADDRL),Y ; 930: B1 1E ; 5 *!* load next byte + BNE label4 ; 932: D0 02 ; 4 *!* if not zero + LDX #$C9 ; 934: A2 C9 ; 2 *!* X=0xC9 (CMP opcode) label4: - RTS ; 936: 60 ; 6 -label3: - STA LOC8 ; 937: 85 08 ; 3 + RTS ; 936: 60 ; 6 return + +play_note: + STA DURATION ; 937: 85 08 ; 3 JSR sub1 ; 939: 20 2D09 ; 6 - STX $0983 ; 93C: 8E 8309 ; 4 ; self-modify + STX $0983 ; 93C: 8E 8309 ; 4 self-modify EOR/CMP STA LOC6 ; 93F: 85 06 ; 3 LDX LOC9 ; 941: A6 09 ; 3 *!* label5: @@ -139,7 +142,7 @@ label16: label17: DEC LOC4F ; 999: C6 4F ; 5 BNE label18 ; 99B: D0 11 ; 4 *!* - DEC LOC8 ; 99D: C6 08 ; 5 + DEC DURATION ; 99D: C6 08 ; 5 BNE label18 ; 99F: D0 0D ; 4 *!* BVC label19 ; 9A1: 50 03 ; 4 *!* BIT $C030 ; 9A3: 2C 30C0 ; 4 SPEAKER @@ -166,3 +169,4 @@ label23: BVS label99 ; 9BD: 70 A3 ; 4 *!* NOP ; 9BF: EA ; 2 BVC label8 ; 9C0: 50 A3 ; 4 *!* + diff --git a/tfv/tfv.dsk b/tfv/tfv.dsk index 18d460b432e49875b211c73d6ab26708f29cff5e..7dbb5d54bad0d12a465e902ddc45f2449c34fedd 100644 GIT binary patch delta 556 zcmZXPL2DC17=~vyYceCPjO{MnV6z>{no}3{2Nbj*Wg`-E&&5+%Pxc2C5-AI%pe*!I zk0r68<{&L}$id52ZOL{F488Ok6g=bIiNUxV*DM z;Di2vz#n&RS$Xs1^Y+W)ylnsrnZx(lP@J4+$6t1b$LF60JG})s-=CuJg$GCd^+zy) zhE>>xw|_SANAM2DI4*@@DD1(Z8)LPV_FU(AE_M^+`@$|bbTc^lb}$`9QM)4B!f0pD zVnluXdIQJ#E`EF_e!W`9s_+5Fg>Fd~j&QUe^&*j53epS&xiL{Lt}cNzNH>Ks$)~Ge zVhZzZzVgtk)(UHY;Bg?Oo(_Zb^r^Ueio|qH<-)D-P58vdXDT?-xo)A-TI-B!9r=}2 z!@}~oY+eFDCjjP5ns|TYFds2j`YWUB4o#FCHmAC*{C{`GNj#(o(#)d7Lfl4tj&PfB zK=>l%MTg%*yd<-TQNmop0AW6D{son3;yTRJgY_gfqpvrJ4NYt;5?&;YB9YLB)IV-r hbL&1~Wl}H80jMseKXc)u3uUCh_3BLBH@j8%^*6^UwtoNs delta 59 zcmZp8z|jCiTNpb8nCuTsc2u_7T(4}yxJ`(07w