chiptune: add arrows and re-center time display

This commit is contained in:
Vince Weaver 2018-02-26 10:40:03 -05:00
parent 3cfb0ecf06
commit 3afa7d2ee5
4 changed files with 38 additions and 13 deletions

View File

@ -5,7 +5,8 @@ PNG2GR = ../gr-utils/png2gr
all: chiptune_player.dsk
chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0
chiptune_player.dsk: CHIPTUNE_PLAYER ./krw/INTRO2.KRW
cp chiptune_empty.dsk chiptune_player.dsk
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x0C00 CHIPTUNE_PLAYER
$(DOS33) -y chiptune_player.dsk SAVE B ./krw/INTRO2.KRW
$(DOS33) -y chiptune_player.dsk SAVE B ./krw/CRMOROS.KRW

Binary file not shown.

View File

@ -321,6 +321,28 @@ read_size EQU $4000
lda #23 ; VTAB 23: HTAB from file
jsr print_header_info
; Print Left Arrow (INVERSE)
lda #'<'
sta $750
sta $B50
lda #'-'
sta $751
sta $B51
; Print Rright Arrow (INVERSE)
lda #'-'
sta $776
sta $B76
lda #'>'
sta $777
sta $B77
; Point LZ4 src at proper place
ldy #0

View File

@ -10,6 +10,8 @@
; It then calculates if it is a BRK or not (which trashes A)
; Then it sets up the stack like an interrupt and calls 0x3fe
TIME_OFFSET EQU 13
interrupt_handler:
pha ; save A ; 3
; Should we save X and Y too?
@ -36,26 +38,26 @@ update_time:
sta FRAME_COUNT ; 3
update_second_ones:
inc $7d0+17 ; 6
inc $bd0+17 ; 6
lda $bd0+17 ; 4
inc $7d0+TIME_OFFSET+3 ; 6
inc $bd0+TIME_OFFSET+3 ; 6
lda $bd0+TIME_OFFSET+3 ; 4
cmp #$ba ; one past '9' ; 2
bne mb_write_frame ; 3/2nt
lda #'0'+$80 ; 2
sta $7d0+17 ; 4
sta $bd0+17 ; 4
sta $7d0+TIME_OFFSET+3 ; 4
sta $bd0+TIME_OFFSET+3 ; 4
update_second_tens:
inc $7d0+16 ; 6
inc $bd0+16 ; 6
lda $bd0+16 ; 4
inc $7d0+TIME_OFFSET+2 ; 6
inc $bd0+TIME_OFFSET+2 ; 6
lda $bd0+TIME_OFFSET+2 ; 4
cmp #$b6 ; 6 (for 60 seconds) ; 2
bne mb_write_frame ; 3/2nt
lda #'0'+$80 ; 2
sta $7d0+16 ; 4
sta $bd0+16 ; 4
sta $7d0+TIME_OFFSET+2 ; 4
sta $bd0+TIME_OFFSET+2 ; 4
update_minutes:
inc $7d0+14 ; 6
inc $bd0+14 ; 6
inc $7d0+TIME_OFFSET ; 6
inc $bd0+TIME_OFFSET ; 6
; we don't handle > 9:59 songs yet
;=============