diff --git a/still_alive/README.still_alive b/still_alive/README.still_alive index 6a9800f1..921cc76f 100644 --- a/still_alive/README.still_alive +++ b/still_alive/README.still_alive @@ -1,3 +1,8 @@ +Fun fact: + The letter 'Z' does not appear at all in the lyrics to the song. + (Noticed when I had to edge comparison for uppercase off by one) + + Challenges: + 6-channel audio + Fitting it all in 48k (want to avoid disk routines if can) diff --git a/still_alive/TODO b/still_alive/TODO index ebc0b926..67cddfd7 100644 --- a/still_alive/TODO +++ b/still_alive/TODO @@ -1,6 +1,5 @@ + Opening graphics (BASIC) + 80-column support -+ No lowercase for 40-column option? + 40 column support + Electric Duet support? @@ -10,3 +9,6 @@ Abandoned fitting in 16k + six-channel support -- went for 4-channel support instead ++ lowecase for 40-column/speaker option? + -- seems like too much complexity, people without 80-col + cards will just have to with uppercase diff --git a/still_alive/interrupt_handler.s b/still_alive/interrupt_handler.s index d937b996..2bf26d76 100644 --- a/still_alive/interrupt_handler.s +++ b/still_alive/interrupt_handler.s @@ -169,11 +169,25 @@ mb_done_load: lda A_COARSE_TONE ; 3 bpl mb_not_done ; 3/2nt - lda #1 ; set done playing ; 2 - jmp quiet_exit ; 3 - ;=========== - ; typ 6 +quiet_exit: + lda #1 ; set done playing ; 2 + sta DONE_PLAYING + jsr clear_ay_both + + ;===================================== + ; clear register area + ;===================================== + ldx #13 ; 2 + lda #0 ; 2 +mb_clear_reg: + sta REGISTER_DUMP,X ; clear register value ; 4 + sta REGISTER_OLD,X ; clear old values ; 4 + dex ; 2 + bpl mb_clear_reg ; 2nt/3 + + jmp exit_interrupt + mb_not_done: ;============================================== @@ -269,23 +283,6 @@ done_interrupt: jsr display_lyrics - jmp exit_interrupt - -quiet_exit: - sta DONE_PLAYING - jsr clear_ay_both - - ;===================================== - ; clear register area - ;===================================== - ldx #13 ; 2 - lda #0 ; 2 -mb_clear_reg: - sta REGISTER_DUMP,X ; clear register value ; 4 - sta REGISTER_OLD,X ; clear old values ; 4 - dex ; 2 - bpl mb_clear_reg ; 2nt/3 - exit_interrupt: pla ; restore a ; 4 diff --git a/still_alive/lyrics.inc b/still_alive/lyrics.inc index 0e286a90..0cab2821 100644 --- a/still_alive/lyrics.inc +++ b/still_alive/lyrics.inc @@ -858,3 +858,9 @@ .byte $98,$C9,$D6,$C9,$D4,$00 ; 8868 "\iY!!\n" .byte $A4,$D9,$A1,$A1,$8D,$00 +; HACK to make sure we don't run off the end waiting for the song to finish +.byte $A4,$8D,$00 +.byte $A4,$8D,$00 +.byte $A4,$8D,$00 + + diff --git a/still_alive/still_alive.s b/still_alive/still_alive.s index 2de2efdf..33fe738e 100644 --- a/still_alive/still_alive.s +++ b/still_alive/still_alive.s @@ -133,13 +133,6 @@ mockingboard_found: jsr load_song - ;============================ - ; Init Background - ;============================ - - - - ;============================ ; Enable 6502 interrupts ;============================