VM02/src/apple2/tone.s
2018-04-25 09:13:44 -07:00

48 lines
497 B
ArmAsm
Executable File

;
; TONE W/ PITCH AND DURATION
;
PLA
STA $A0
PLA
STA $A1
PLA
STA $A2 ; DURATION
PLA
PLA
PLA
PLA
STA $A3 ; TIMBRE
PLA
PLA
PLA
PLA
STA $A4 ; TONE
EOR #$FF
STA $A5
PLA
PLA
PLA
LDA $A4
SEC
SBC $A3
STA $A4
SEI ; DISABLE INTERRUPTS
TONELOOPOUTR: LDX $A5
TONELOOP: LDY $A3
BIT $C030
TONEDELAY1: DEY
BNE TONEDELAY1
BIT $C030
LDY $A4
TONEDELAY2: DEY
BNE TONEDELAY2
DEX
BNE TONELOOP
DEC $A2
BNE TONELOOPOUTR
LDA $A1
PHA
LDA $A0
PHA
JMP ($300) ; RETURN THROUGH YIELD