i spent 6 hours trying to figure out why it wasn't playing, just to find out that it was reading from zero page values and not an immediate value (Which i didn't know existed and or how they are used)
and eventually running into a brk opt code and restart it self.
Anyway, aside from that
here it is!
Code: Select all
; 10 SYS (49152)
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $39, $31, $35, $32, $29, $00, $00, $00
;----------------------------------------------------------------------------------------------
*=$C000
defm lsa
lda #$/1
sta $/2
endm
INIT
; Val MemAddress
lsa 44, D400 ;frequency voice1 low byte
lsa 1D, D401 ;frequency voice1 high byte
lsa 0F, D418 ;volume
;ADSR
lsa 11, D405 ;attack
lsa F0, D406 ;sustain
;play note
lsa 11, D404 ;control register
HALT
jmp HALT