Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .NOLIST
- .include "m1284def.inc"
- .LIST
- ; channel oscilators
- .def PULL = r2
- .def PULH = r3
- .def TRIL = r4
- .def TRIH = r5
- .def PUL2L = r6
- .def PUL2H = r7
- .def NOIL = r8
- .def NOIH = r9
- ; channel frequencies
- .def PULFL = r10
- .def PULFH = r11
- .def TRIFL = r12
- .def TRIFH = r13
- .def PUL2FL = r14
- .def PUL2FH = r15
- ; pulse duty cycles
- .def PULD = r21
- .def PUL2D = r22
- ; channel volumes
- .def PULA = r23
- .def PUL2A = r24
- ; [0 - 3] channel enabled, [4 - 7] speed
- .def PLAY = r25
- ; frame timer
- .def FT = r0
- ; channel effects
- .def EFF1 = r26
- .def EFF2 = r27
- .def EFF3 = r28
- .def EFF4 = r29
- ; song format:
- ; array of frames
- ; frame format:
- ; pulse 1 command
- ; pulse 2 command
- ; triangle command
- ; noise command
- ; command format:
- ; first byte: note
- ; second byte: volume (0x00 does nothing)
- ; third byte: effect
- ; fourth byte: null
- ; note format:
- ; first nybble: note
- ; second nybble: octave (1 - 8)
- ; notes:
- ; 0 - null
- ; 1 - null
- ; 2 - stop
- ; 3 - restart
- ; 4 - C
- ; 5 - C#
- ; 6 - D
- ; 7 - D#
- ; 8 - E
- ; 9 - F
- ; A - F#
- ; B - G
- ; C - G#
- ; D - A
- ; E - A#
- ; F - B
- ; effects:
- ; 0 - null
- ; 1 - reset
- ; 2 - increment volume
- ; 3 - decrement volume
- ; 4 - increment frequncy
- ; 5 - decrement frequncy
- ; 6 - increment duty cycle
- ; 7 - set duty cycle
- ; [...]
- ; D - set speed
- ; E - go to frame of current section
- ; F - go to section (1 section = 16 frames)
- ; note frequencies (octave 4)
- .define NOTE_C 262
- .define NOTE_Cs 277
- .define NOTE_D 294
- .define NOTE_Ds 311
- .define NOTE_E 330
- .define NOTE_F 349
- .define NOTE_Fs 370
- .define NOTE_G 392
- .define NOTE_Gs 415
- .define NOTE_A 440
- .define NOTE_As 466
- .define NOTE_B 494
- .cseg
- .org 0x0
- rjmp start
- .org 0x16
- rjmp timer2
- .org 0x1E
- rjmp timer1
- .org 0x44
- start:
- ldi r16, LOW(RAMEND)
- out spl, r16
- ldi r16, HIGH(RAMEND)
- out sph, r16
- ldi r16, 0x00
- mov PULFL, r16
- ldi r16, 0x00
- mov PULFH, r16
- ldi r16, 0x00
- mov TRIFL, r16
- ldi r16, 0x00
- mov TRIFH, r16
- ldi r16, 0x00
- mov PUL2FL, r16
- ldi r16, 0x00
- mov PUL2FH, r16
- ldi r16, 0x80
- mov PULD, r16
- mov PUL2D, r16
- ldi r16, 0xFF
- mov PULA, r16
- mov PUL2A, r16
- ldi r16, 0b1
- mov NOIL, r16
- ldi r16, 0b0
- mov NOIH, r16
- ldi r16, 0x00
- mov EFF1, r16
- ldi r16, 0x00
- mov EFF2, r16
- ldi r16, 0x00
- mov EFF3, r16
- ldi r16, 0x00
- mov EFF4, r16
- ldi PLAY, 0x4F
- ldi ZL, LOW(song_data << 1)
- ldi ZH, HIGH(song_data << 1)
- ldi r16, 0xFF
- out ddra, r16
- ldi r16, 1
- sts TIMSK2, r16
- ldi r16, 0b001
- sts TCCR2B, r16
- ldi r16, 1
- sts TIMSK1, r16
- ldi r16, 0b010
- sts TCCR1B, r16
- sei
- loop:
- rjmp loop
- timer2: ; sound generation
- ldi r16, 0
- ldi r17, 0
- cp PULH, PULD
- brlo skip
- mov r17, PULA
- lsr r17
- lsr r17
- sbrc PLAY, 0
- add r16, r17
- skip:
- cp PUL2H, PUL2D
- brlo skip2
- mov r17, PUL2A
- lsr r17
- lsr r17
- sbrc PLAY, 1
- add r16, r17
- skip2:
- mov r17, TRIH
- sbrc r17, 7
- com r17
- lsr r17
- sbrc PLAY, 2
- add r16, r17
- ldi r17, 0
- ldi r18, 0
- ;sbrc NOIH, 6
- ;ldi r17, 0xFF
- ;sbrc NOIL, 6
- ;ldi r18, 0xFF
- ;eor r17, r18
- ;mov r18, NOIL
- ;mov r19, NOIH
- ;ldi r20, 0x0
- ;lsl r19
- ;lsl r18
- ;adc r18, r20
- ;sbrc r17, 0
- ;sbr r18, 0b1
- ;mov NOIL, r18
- ;mov NOIH, r19
- ;lsr r18
- ;lsr r18
- ;add r16, r18
- out porta, r16
- add PULL, PULFL
- adc PULH, PULFH
- add TRIL, TRIFL
- adc TRIH, TRIFH
- add PUL2L, PUL2FL
- adc PUL2H, PUL2FH
- reti
- do_effect:
- mov r17, r16
- lsr r16
- lsr r16
- lsr r16
- lsr r16
- lsl r17
- lsl r17
- lsl r17
- lsl r17
- lsr r17
- lsr r17
- lsr r17
- lsr r17
- cpi r16, 0x0
- breq return4
- cpi r16, 0x1
- breq return4
- cpi r16, 0x2
- breq inc_vol
- cpi r16, 0x3
- breq dec_vol
- cpi r16, 0x4
- breq inc_frq
- cpi r16, 0x5
- breq dec_frq_
- cpi r16, 0x6
- breq inc_dut_
- cpi r16, 0x7
- breq set_dut_
- cpi r16, 0x8
- breq return4
- cpi r16, 0x9
- breq return4
- cpi r16, 0xA
- breq return4
- cpi r16, 0xB
- breq return4
- cpi r16, 0xC
- breq return4
- cpi r16, 0xD
- breq return4
- cpi r16, 0xE
- breq return4
- cpi r16, 0xF
- return4:
- ret
- inc_vol:
- lsl r17
- lsl r17
- cpi r20, 0b00000001
- breq inc_vol1
- cpi r20, 0b00000010
- breq inc_vol2
- ret
- inc_vol1:
- add PULA, r17
- brcs inc_vol01
- ret
- inc_vol01:
- ser PULA
- ret
- inc_vol2:
- add PUL2A, r17
- brcs inc_vol02
- ret
- inc_vol02:
- ser PUL2A
- ret
- dec_vol:
- lsl r17
- lsl r17
- cpi r20, 0b00000001
- breq dec_vol1
- cpi r20, 0b00000010
- breq dec_vol2
- ret
- dec_vol1:
- cp PULA, r17
- brlo dec_vol01
- sub PULA, r17
- ret
- dec_vol01:
- clr PULA
- ret
- dec_vol2:
- cp PUL2A, r17
- brlo dec_vol02
- sub PUL2A, r17
- ret
- dec_vol02:
- clr PUL2A
- ret
- dec_frq_:
- rjmp dec_frq
- inc_dut_:
- rjmp inc_dut
- set_dut_:
- rjmp set_dut
- inc_frq:
- lsl r17
- lsl r17
- clr r18
- cpi r20, 0b00000001
- breq inc_frq1
- cpi r20, 0b00000010
- breq inc_frq2
- ret
- inc_frq1:
- add PULFL, r17
- adc PULFH, r18
- brcs inc_frq01
- ret
- inc_frq01:
- ser r18
- mov PULFL, r18
- mov PULFH, r18
- ret
- inc_frq2:
- add PUL2FL, r17
- adc PUL2FH, r18
- brcs inc_frq02
- ret
- inc_frq02:
- ser r18
- mov PUL2FL, r18
- mov PUL2FH, r18
- ret
- dec_frq:
- lsl r17
- lsl r17
- cpi r20, 0b00000001
- breq dec_frq1
- cpi r20, 0b00000010
- breq dec_frq2
- ret
- dec_frq1:
- cp PULFL, r17
- brlo dec_frq01
- sub PULFL, r17
- ret
- dec_frq01:
- sub PULFL, r17
- dec PULFH
- brmi dec_frq11
- ret
- dec_frq11:
- clr r18
- mov PULFL, r18
- mov PULFH, r18
- ret
- dec_frq2:
- cp PUL2FL, r17
- brlo dec_frq02
- sub PUL2FL, r17
- ret
- dec_frq02:
- sub PUL2FL, r17
- dec PUL2FH
- brmi dec_frq12
- ret
- dec_frq12:
- clr r18
- mov PUL2FL, r18
- mov PUL2FH, r18
- ret
- inc_dut:
- cpi r20, 0b00000001
- breq inc_dut1
- cpi r20, 0b00000010
- breq inc_dut2
- ret
- inc_dut1:
- add PULD, r17
- ret
- inc_dut2:
- add PUL2D, r17
- ret
- set_dut:
- lsl r17
- lsl r17
- lsl r17
- lsl r17
- cpi r20, 0b00000001
- breq set_dut1
- cpi r20, 0b00000010
- breq set_dut2
- ret
- set_dut1:
- mov PULD, r17
- ret
- set_dut2:
- mov PUL2D, r17
- ret
- timer1: ; music generation
- mov r16, PLAY
- lsr r16
- lsr r16
- lsr r16
- lsr r16
- cp FT, r16
- brlo skip3
- rcall load_frame
- skip3:
- mov r16, EFF1
- ldi r20, 0b0001
- rcall do_effect
- mov r16, EFF2
- ldi r20, 0b0010
- rcall do_effect
- mov r16, EFF3
- ldi r20, 0b0100
- rcall do_effect
- mov r16, EFF4
- ldi r20, 0b1000
- rcall do_effect
- inc FT
- cpi ZH, HIGH(song_end << 1)
- brlo skip5
- brne skip6
- cpi ZL, LOW(song_end << 1)
- brlo skip5
- skip6:
- ldi ZL, LOW(song_data << 1)
- ldi ZH, HIGH(song_data << 1)
- skip5:
- reti
- handle_note:
- mov r16, r19
- lsr r16
- lsr r16
- lsr r16
- lsr r16
- cpi r16, 0x00
- breq return
- cpi r16, 0x01
- breq return
- cpi r16, 0x02
- breq stop
- cpi r16, 0x03
- breq restart
- rcall restart
- cpi r16, 0x04
- breq setc
- cpi r16, 0x05
- breq setcs
- cpi r16, 0x06
- breq setd
- cpi r16, 0x07
- breq setds
- cpi r16, 0x08
- breq sete
- cpi r16, 0x09
- breq setf
- cpi r16, 0x0A
- breq setfs
- cpi r16, 0x0B
- breq setg
- cpi r16, 0x0C
- breq setgs
- cpi r16, 0x0D
- breq seta
- cpi r16, 0x0E
- breq setas
- cpi r16, 0x0F
- breq setb
- return:
- ret
- stop:
- mov r18, PLAY
- mov r16, r20
- com r16
- and r18, r16
- mov PLAY, r18
- ret
- restart:
- mov r18, PLAY
- or r18, r20
- mov PLAY, r18
- ret
- setc:
- ldi r16, LOW(NOTE_C)
- ldi r17, HIGH(NOTE_C)
- rjmp skip4
- setcs:
- ldi r16, LOW(NOTE_Cs)
- ldi r17, HIGH(NOTE_Cs)
- rjmp skip4
- setd:
- ldi r16, LOW(NOTE_D)
- ldi r17, HIGH(NOTE_D)
- rjmp skip4
- setds:
- ldi r16, LOW(NOTE_Ds)
- ldi r17, HIGH(NOTE_Ds)
- rjmp skip4
- sete:
- ldi r16, LOW(NOTE_E)
- ldi r17, HIGH(NOTE_E)
- rjmp skip4
- setf:
- ldi r16, LOW(NOTE_F)
- ldi r17, HIGH(NOTE_F)
- rjmp skip4
- setfs:
- ldi r16, LOW(NOTE_Fs)
- ldi r17, HIGH(NOTE_Fs)
- rjmp skip4
- setg:
- ldi r16, LOW(NOTE_G)
- ldi r17, HIGH(NOTE_G)
- rjmp skip4
- setgs:
- ldi r16, LOW(NOTE_Gs)
- ldi r17, HIGH(NOTE_Gs)
- rjmp skip4
- seta:
- ldi r16, LOW(NOTE_A)
- ldi r17, HIGH(NOTE_A)
- rjmp skip4
- setas:
- ldi r16, LOW(NOTE_As)
- ldi r17, HIGH(NOTE_As)
- rjmp skip4
- setb:
- ldi r16, LOW(NOTE_B)
- ldi r17, HIGH(NOTE_B)
- rjmp skip4
- skip4:
- lsl r19
- lsl r19
- lsl r19
- lsl r19
- lsr r19
- lsr r19
- lsr r19
- lsr r19
- cpi r19, 0x01
- breq seto1
- cpi r19, 0x02
- breq seto2
- cpi r19, 0x03
- breq seto3
- cpi r19, 0x04
- breq seto4
- cpi r19, 0x05
- breq seto5
- cpi r19, 0x06
- breq seto6
- cpi r19, 0x07
- breq seto7
- cpi r19, 0x08
- breq seto8
- ret
- seto1:
- lsr r17
- ror r16
- lsr r17
- ror r16
- lsr r17
- ror r16
- rjmp skip7
- seto2:
- lsr r17
- ror r16
- lsr r17
- ror r16
- rjmp skip7
- seto3:
- lsr r17
- ror r16
- rjmp skip7
- seto4:
- rjmp skip7
- seto5:
- lsl r16
- rol r17
- rjmp skip7
- seto6:
- lsl r16
- rol r17
- lsl r16
- rol r17
- rjmp skip7
- seto7:
- lsl r16
- rol r17
- lsl r16
- rol r17
- lsl r16
- rol r17
- rjmp skip7
- seto8:
- lsl r16
- rol r17
- lsl r16
- rol r17
- lsl r16
- rol r17
- lsl r16
- rol r17
- rjmp skip7
- skip7:
- cpi r20, 0b00000001
- breq set1
- cpi r20, 0b00000010
- breq set2
- cpi r20, 0b00000100
- breq set3
- ret
- set1:
- mov PULFL, r16
- mov PULFH, r17
- ret
- set2:
- mov PUL2FL, r16
- mov PUL2FH, r17
- ret
- set3:
- mov TRIFL, r16
- mov TRIFH, r17
- ret
- handle_volume:
- cpi r19, 0x00
- breq return2
- cpi r20, 0b00000001
- breq setv1
- cpi r20, 0b00000010
- breq setv2
- ret
- setv1:
- mov PULA, r19
- ret
- setv2:
- mov PUL2A, r19
- ret
- return2:
- ret
- handle_effect:
- cpi r19, 0x00
- breq return3
- cpi r20, 0b00000001
- breq sete1
- cpi r20, 0b00000010
- breq sete2
- cpi r20, 0b00000100
- breq sete3
- cpi r20, 0b00001000
- breq sete4
- ret
- sete1:
- mov EFF1, r19
- ret
- sete2:
- mov EFF2, r19
- ret
- sete3:
- mov EFF3, r19
- ret
- sete4:
- mov EFF4, r19
- ret
- return3:
- ret
- load_command:
- lpm r19, Z+
- rcall handle_note
- lpm r19, Z+
- rcall handle_volume
- lpm r19, Z+
- rcall handle_effect
- lpm r19, Z+
- ret
- load_frame:
- clr FT
- ldi r20, 0b00000001
- rcall load_command
- ldi r20, 0b00000010
- rcall load_command
- ldi r20, 0b00000100
- rcall load_command
- ldi r20, 0b00001000
- rcall load_command
- ret
- song_data:
- .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
- .db 0x42, 0xFF, 0x68, 0x00 ; pulse 2
- .db 0xB4, 0x88, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x72, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x00, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x00, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x73, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xE3, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x42, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xC3, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xE1, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x94, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0xE2, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x94, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0xE4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0xE2, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0xE4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xF1, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0xF2, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0xF2, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x95, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x72, 0x00 ; pulse 1
- .db 0x42, 0xFF, 0x68, 0x00 ; pulse 2
- .db 0xB4, 0x88, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x00, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x00, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x73, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xE3, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x42, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x94, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x92, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xC4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x93, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0xC3, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xC4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xB4, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x93, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x75, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xC4, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x45, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xB4, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xB2, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0xB5, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x94, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xB5, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x95, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x20, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xF3, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0xF4, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x75, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 2
- .db 0x95, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- .db 0x65, 0xFF, 0x00, 0x00 ; pulse 1
- .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
- .db 0x65, 0x00, 0x00, 0x00 ; triangle
- .db 0x00, 0x00, 0x00, 0x00 ; noise
- song_end:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement