mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-08-14 10:29:46 +00:00
e7f1907f38
using PRORWTS seek now also fixed subtle bug in qboot when loading partial tracks also a bunch of movement in the demo stuff by accident, oops but it's 2am and I'm too lazy to back that out
58 lines
1.1 KiB
ArmAsm
58 lines
1.1 KiB
ArmAsm
; Apple II graphics/music in 1k
|
|
|
|
; by deater (Vince Weaver) <vince@deater.net>
|
|
|
|
; Zero Page
|
|
.include "zp.inc"
|
|
.include "hardware.inc"
|
|
|
|
; for a 256 entry we need to fit in 252 bytes
|
|
|
|
; 310 bytes -- initial
|
|
; 268 bytes -- strip out interrupts
|
|
; 262 bytes -- simplify init
|
|
; 261 bytes -- optimize init more
|
|
; 253 bytes -- optimize var init
|
|
; 252 bytes -- bne vs jmp
|
|
; 250 bytes -- song only has 16 notes so can never be negative
|
|
; 249 bytes -- make terminating value $80 instead of $FF
|
|
; 247 bytes -- combine note loop. makes song a bit faster
|
|
; 245 bytes -- try to optimize writing out volume
|
|
; 255 bytes -- add in some visualization
|
|
; 252 bytes -- re-arrange decode code
|
|
d2:
|
|
|
|
;===================
|
|
; music Player Setup
|
|
|
|
tracker_song = peasant_song
|
|
|
|
; assume mockingboard in slot#4
|
|
|
|
; inline mockingboard_init
|
|
|
|
.include "mockingboard_init.s"
|
|
|
|
.include "tracker_init.s"
|
|
|
|
jsr SETGR ; enable lo-res graphics
|
|
|
|
game_loop:
|
|
; typically A=0, X=FF, Y=0 here
|
|
|
|
; play a frame of music
|
|
|
|
.include "play_frame.s"
|
|
.include "ay3_write_regs.s"
|
|
|
|
; delay 20Hz, or 1/20s = 50ms
|
|
|
|
lda #140
|
|
jsr WAIT
|
|
|
|
beq game_loop
|
|
|
|
; music
|
|
.include "mA2E_2.s"
|
|
|