Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Memory consts
- vdp_data equ $C00000
- vdp_ctrl equ $C00004
- z80_ram equ $A00000
- wait_for_vblank equ $FFFF8000
- ym equ $4000
- wait_ym macro
- @0\@ move.b ym(a1),d2
- btst #7,d2
- bne.s @0\@
- endm
- ; ----------------------------------------------------------
- lea music_file,a0
- lea z80_ram,a1
- ; ----------------------------------------------------------
- mainloop
- moveq #0,d0
- move.b (a0)+,d0
- bmi.s error
- andi.b #%11,d0
- add.w d0,d0
- jmp cmd_lst(pc,d0.w)
- ; ----------------------------------------------------------
- error bra.s *
- ; ----------------------------------------------------------
- cmd_lst bra.s cmd0 ; +$00
- bra.s cmd1 ; +$02
- bra.s cmd2 ; +$04
- bra.w cmd3 ; +$06
- ; ----------------------------------------------------------
- ; cmd - skip a frame
- cmd0 move #$2300,sr
- st.b wait_for_vblank
- @0 tst.b wait_for_vblank
- bne.s @0
- bra.s mainloop
- ; ----------------------------------------------------------
- ; cmd - set ym reg 0
- cmd1 wait_ym
- move.b (a0)+,ym(a1)
- wait_ym
- move.b (a0)+,ym+1(a1)
- bra.w mainloop
- ; ----------------------------------------------------------
- ; cmd - set ym reg 1
- cmd2 wait_ym
- move.b (a0)+,ym+2(a1)
- wait_ym
- move.b (a0)+,ym+3(a1)
- bra.w mainloop
- cmd3 move.b (a0)+,$C00011
- bra.w mainloop
- ; ----------------------------------------------------------
- ; vblank interrupt
- vblank sf.b wait_for_vblank
- move #$2700,sr
- ; ----------------------------------------------------------
- ; hblank interrupt
- hblank rte
- ; ----------------------------------------------------------
- music_file
- incbin test.gym
- dc.b -1 ; eof flag
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement