diff --git a/graphics/hgr/sine/rotate.s b/graphics/hgr/sine/rotate.s index e603b6ee..47014cca 100644 --- a/graphics/hgr/sine/rotate.s +++ b/graphics/hgr/sine/rotate.s @@ -3,6 +3,7 @@ ; 117 bytes -- original ; 114 bytes -- optimize FRAME init ; 108 bytes -- optimize page flip +; 139 bytes -- add beeps ; zero page sinetable=$70 @@ -55,8 +56,10 @@ force_zero: sta sinetable+$10,Y sta sinetable+$00,X eor #$FF + sec adc #$0 + sta sinetable+$30,Y sta sinetable+$20,X @@ -107,91 +110,22 @@ flip_loop: ; flip pages page_smc: - bit PAGE1 + lda PAGE1,X +; ldy #10 +;sound_loop: + bit $C030 +; dey +; bne sound_loop -; lda #255 -; jsr WAIT - -; based on code from here -; http://eightbitsoundandfury.ld8.org/programming.html - -; A,X,Y trashed -; duration also trashed - -NOTE_C3 = 255 -NOTE_CSHARP3 = 241 -NOTE_D3 = 227 -NOTE_DSHARP3 = 214 -NOTE_E3 = 202 -NOTE_F3 = 191 -NOTE_FSHARP3 = 180 -NOTE_G3 = 170 -NOTE_GSHARP3 = 161 -NOTE_A3 = 152 -NOTE_ASHARP3 = 143 -NOTE_B3 = 135 - -NOTE_C4 = 128 -NOTE_CSHARP4 = 121 -NOTE_D4 = 114 -NOTE_DSHARP4 = 108 -NOTE_E4 = 102 -NOTE_F4 = 96 -NOTE_FSHARP4 = 91 -NOTE_G4 = 85 -NOTE_GSHARP4 = 81 -NOTE_A4 = 76 -NOTE_ASHARP4 = 72 -NOTE_B4 = 68 - -NOTE_C5 = 64 -NOTE_CSHARP5 = 60 -NOTE_D5 = 57 -NOTE_DSHARP5 = 54 -NOTE_E5 = 51 -NOTE_F5 = 48 -NOTE_FSHARP5 = 45 -NOTE_G5 = 43 -NOTE_GSHARP5 = 40 -NOTE_A5 = 38 -NOTE_ASHARP5 = 36 -NOTE_B5 = 34 - - lda #NOTE_C3 - sta speaker_frequency - lda #200 - sta speaker_duration - -speaker_beep: - ldy #20 -speaker_tone: - lda $C030 ; click speaker -speaker_loop: - dey ; y never set? - bne slabel1 ; duration roughly 256*? - dec speaker_duration ; (Duration) - beq done_tone -slabel1: - dex - bne speaker_loop - ldx speaker_frequency ; (Frequency) - jmp speaker_tone -done_tone: - - - - - - - - - - lda page_smc+1 + txa eor #$1 - sta page_smc+1 + tax - jmp flip_loop + lda #255 + jsr WAIT + + beq flip_loop ; bra ;============================