mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-20 09:27:41 +00:00
chiptune_player: auto-increment mostly working
was chasing after glitches which I think are applewin bugs
This commit is contained in:
@@ -132,21 +132,6 @@ mockingboard_found:
|
|||||||
|
|
||||||
jsr new_song
|
jsr new_song
|
||||||
|
|
||||||
; jsr increment_file ; debug
|
|
||||||
; jsr new_song
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;============================
|
|
||||||
; Enable 6502 interrupts
|
|
||||||
;============================
|
|
||||||
|
|
||||||
cli ; clear interrupt mask
|
|
||||||
|
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Init Background
|
; Init Background
|
||||||
;============================
|
;============================
|
||||||
@@ -156,6 +141,13 @@ mockingboard_found:
|
|||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
sta SCREEN_Y
|
sta SCREEN_Y
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; Enable 6502 interrupts
|
||||||
|
;============================
|
||||||
|
|
||||||
|
cli ; clear interrupt mask
|
||||||
|
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Loop forever
|
; Loop forever
|
||||||
;============================
|
;============================
|
||||||
@@ -213,27 +205,21 @@ done_play:
|
|||||||
; ; FIXME: unhook interrupt handler
|
; ; FIXME: unhook interrupt handler
|
||||||
;
|
;
|
||||||
sei ; disable interrupts
|
sei ; disable interrupts
|
||||||
;
|
|
||||||
|
lda #0
|
||||||
|
sta DONE_PLAYING
|
||||||
|
|
||||||
jsr clear_ay_both
|
jsr clear_ay_both
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta CH
|
sta CH
|
||||||
|
|
||||||
jsr clear_bottoms
|
jsr clear_bottoms
|
||||||
;
|
|
||||||
; lda #21
|
|
||||||
; sta CV
|
|
||||||
; lda #<done_message
|
|
||||||
; sta OUTL
|
|
||||||
; lda #>done_message
|
|
||||||
; sta OUTH
|
|
||||||
|
|
||||||
; jsr print_both_pages
|
|
||||||
|
|
||||||
jsr increment_file
|
jsr increment_file
|
||||||
jsr new_song
|
jsr new_song
|
||||||
|
|
||||||
cli
|
cli ; re-enable interrupts
|
||||||
|
|
||||||
jmp main_loop
|
jmp main_loop
|
||||||
|
|
||||||
@@ -258,6 +244,9 @@ new_song:
|
|||||||
sta B_VOLUME
|
sta B_VOLUME
|
||||||
sta C_VOLUME
|
sta C_VOLUME
|
||||||
sta COPY_OFFSET
|
sta COPY_OFFSET
|
||||||
|
sta DECOMPRESS_TIME
|
||||||
|
sta COPY_TIME
|
||||||
|
sta MB_CHUNK_OFFSET
|
||||||
lda #$20
|
lda #$20
|
||||||
sta DECODER_STATE
|
sta DECODER_STATE
|
||||||
lda #3
|
lda #3
|
||||||
@@ -298,11 +287,6 @@ new_song:
|
|||||||
sta OUTH
|
sta OUTH
|
||||||
jsr print_both_pages
|
jsr print_both_pages
|
||||||
|
|
||||||
; lda #<krw_file ; point to filename
|
|
||||||
; sta INL
|
|
||||||
; lda #>krw_file
|
|
||||||
; sta INH
|
|
||||||
|
|
||||||
disk_buff EQU LZ4_BUFFER
|
disk_buff EQU LZ4_BUFFER
|
||||||
read_size EQU $4000
|
read_size EQU $4000
|
||||||
|
|
||||||
@@ -578,7 +562,7 @@ krw_file:
|
|||||||
mocking_message: .asciiz "LOOKING FOR MOCKINGBOARD IN SLOT #4"
|
mocking_message: .asciiz "LOOKING FOR MOCKINGBOARD IN SLOT #4"
|
||||||
not_message: .byte "NOT "
|
not_message: .byte "NOT "
|
||||||
found_message: .asciiz "FOUND"
|
found_message: .asciiz "FOUND"
|
||||||
done_message: .asciiz "DONE PLAYING"
|
;done_message: .asciiz "DONE PLAYING"
|
||||||
loading_message: .asciiz "LOADING"
|
loading_message: .asciiz "LOADING"
|
||||||
|
|
||||||
;============
|
;============
|
||||||
|
@@ -19,13 +19,15 @@ interrupt_handler:
|
|||||||
bit $C404 ; clear 6522 interrupt by reading T1C-L ; 4
|
bit $C404 ; clear 6522 interrupt by reading T1C-L ; 4
|
||||||
|
|
||||||
|
|
||||||
;============
|
lda DONE_PLAYING ; 3
|
||||||
|
beq update_time
|
||||||
|
jmp exit_interrupt ;============
|
||||||
|
|
||||||
; 7
|
; 7
|
||||||
;=====================
|
;=====================
|
||||||
; Update time counter
|
; Update time counter
|
||||||
;=====================
|
;=====================
|
||||||
|
update_time:
|
||||||
inc FRAME_COUNT ; 5
|
inc FRAME_COUNT ; 5
|
||||||
lda FRAME_COUNT ; 3
|
lda FRAME_COUNT ; 3
|
||||||
cmp #50 ; 3
|
cmp #50 ; 3
|
||||||
@@ -90,6 +92,9 @@ mb_write_loop:
|
|||||||
|
|
||||||
lda #1 ; set done playing ; 2
|
lda #1 ; set done playing ; 2
|
||||||
sta DONE_PLAYING ; 3
|
sta DONE_PLAYING ; 3
|
||||||
|
|
||||||
|
jsr clear_ay_both
|
||||||
|
|
||||||
jmp done_interrupt ; 3
|
jmp done_interrupt ; 3
|
||||||
|
|
||||||
mb_not_done:
|
mb_not_done:
|
||||||
@@ -267,7 +272,7 @@ done_interrupt:
|
|||||||
jsr volume_bars
|
jsr volume_bars
|
||||||
jsr page_flip
|
jsr page_flip
|
||||||
|
|
||||||
|
exit_interrupt:
|
||||||
|
|
||||||
|
|
||||||
pla ; restore a ; 4
|
pla ; restore a ; 4
|
||||||
|
Reference in New Issue
Block a user