58 lines
868 B
ArmAsm
Raw Normal View History

2021-11-02 00:01:43 -04:00
; Tiny Mockingboard Player
2021-11-04 13:41:51 -04:00
; 514B -- Initial implementation
; 423B -- inline everything
2021-11-04 14:06:52 -04:00
; 400B -- put register init at end of song
2021-11-04 17:19:21 -04:00
; 381B -- generate the frequency table
2021-11-04 13:41:51 -04:00
SONG_L = $70
SONG_H = $71
SONG_OFFSET = $72
SONG_COUNTDOWN = $73
2021-11-02 00:01:43 -04:00
; proposed format
; CCOONNNN -- c=channel, o=octave, n=note
; 11LLLLLL -- L=length
; 11LLLLLL -- wait time
2021-11-02 00:01:43 -04:00
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
.include "zp.inc"
.include "hardware.inc"
;==========================================
tiny_music:
;===================
;
;===================
; Player Setup
2021-11-04 17:19:21 -04:00
lda #<peasant_song
sta SONG_L
2021-11-04 17:19:21 -04:00
lda #>peasant_song
sta SONG_H
2021-11-02 00:01:43 -04:00
; assume mockingboard in slot#4
jsr mockingboard_init
start_interrupts:
cli
forever:
jmp forever
2021-11-02 00:01:43 -04:00
2021-11-04 17:19:21 -04:00
.include "peasant_music.s"
2021-11-02 00:01:43 -04:00
.include "interrupt_handler.s"
; must be last
.include "mockingboard_setup.s"