Advertisement
MegaLoler

Unfinished Chiptune

Dec 15th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.77 KB | None | 0 0
  1. .NOLIST
  2. .include "m1284def.inc"
  3. .LIST
  4.  
  5. ; channel oscilators
  6. .def PULL = r2
  7. .def PULH = r3
  8. .def TRIL = r4
  9. .def TRIH = r5
  10. .def PUL2L = r6
  11. .def PUL2H = r7
  12. .def NOIL = r8
  13. .def NOIH = r9
  14.  
  15. ; channel frequencies
  16. .def PULFL = r10
  17. .def PULFH = r11
  18. .def TRIFL = r12
  19. .def TRIFH = r13
  20. .def PUL2FL = r14
  21. .def PUL2FH = r15
  22.  
  23. ; pulse duty cycles
  24. .def PULD = r21
  25. .def PUL2D = r22
  26.  
  27. ; channel volumes
  28. .def PULA = r23
  29. .def PUL2A = r24
  30.  
  31. ; [0 - 3] channel enabled, [4 - 7] speed
  32. .def PLAY = r25
  33.  
  34. ; frame timer
  35. .def FT = r0
  36.  
  37. ; channel effects
  38. .def EFF1 = r26
  39. .def EFF2 = r27
  40. .def EFF3 = r28
  41. .def EFF4 = r29
  42.  
  43. ; song format:
  44. ; array of frames
  45.  
  46. ; frame format:
  47. ; pulse 1 command
  48. ; pulse 2 command
  49. ; triangle command
  50. ; noise command
  51.  
  52. ; command format:
  53. ; first byte: note
  54. ; second byte: volume (0x00 does nothing)
  55. ; third byte: effect
  56. ; fourth byte: null
  57.  
  58. ; note format:
  59. ; first nybble: note
  60. ; second nybble: octave (1 - 8)
  61.  
  62. ; notes:
  63. ; 0 - null
  64. ; 1 - null
  65. ; 2 - stop
  66. ; 3 - restart
  67. ; 4 - C
  68. ; 5 - C#
  69. ; 6 - D
  70. ; 7 - D#
  71. ; 8 - E
  72. ; 9 - F
  73. ; A - F#
  74. ; B - G
  75. ; C - G#
  76. ; D - A
  77. ; E - A#
  78. ; F - B
  79.  
  80. ; effects:
  81. ; 0 - null
  82. ; 1 - reset
  83. ; 2 - increment volume
  84. ; 3 - decrement volume
  85. ; 4 - increment frequncy
  86. ; 5 - decrement frequncy
  87. ; 6 - increment duty cycle
  88. ; 7 - set duty cycle
  89. ; [...]
  90. ; D - set speed
  91. ; E - go to frame of current section
  92. ; F - go to section (1 section = 16 frames)
  93.  
  94. ; note frequencies (octave 4)
  95. .define NOTE_C 262
  96. .define NOTE_Cs 277
  97. .define NOTE_D 294
  98. .define NOTE_Ds 311
  99. .define NOTE_E 330
  100. .define NOTE_F 349
  101. .define NOTE_Fs 370
  102. .define NOTE_G 392
  103. .define NOTE_Gs 415
  104. .define NOTE_A 440
  105. .define NOTE_As 466
  106. .define NOTE_B 494
  107.  
  108. .cseg
  109. .org 0x0
  110. rjmp start
  111.  
  112. .org 0x16
  113. rjmp timer2
  114.  
  115. .org 0x1E
  116. rjmp timer1
  117.  
  118. .org 0x44
  119. start:
  120. ldi r16, LOW(RAMEND)
  121. out spl, r16
  122. ldi r16, HIGH(RAMEND)
  123. out sph, r16
  124.  
  125. ldi r16, 0x00
  126. mov PULFL, r16
  127. ldi r16, 0x00
  128. mov PULFH, r16
  129. ldi r16, 0x00
  130. mov TRIFL, r16
  131. ldi r16, 0x00
  132. mov TRIFH, r16
  133. ldi r16, 0x00
  134. mov PUL2FL, r16
  135. ldi r16, 0x00
  136. mov PUL2FH, r16
  137.  
  138. ldi r16, 0x80
  139. mov PULD, r16
  140. mov PUL2D, r16
  141.  
  142. ldi r16, 0xFF
  143. mov PULA, r16
  144. mov PUL2A, r16
  145.  
  146. ldi r16, 0b1
  147. mov NOIL, r16
  148. ldi r16, 0b0
  149. mov NOIH, r16
  150.  
  151. ldi r16, 0x00
  152. mov EFF1, r16
  153. ldi r16, 0x00
  154. mov EFF2, r16
  155. ldi r16, 0x00
  156. mov EFF3, r16
  157. ldi r16, 0x00
  158. mov EFF4, r16
  159.  
  160. ldi PLAY, 0x4F
  161.  
  162. ldi ZL, LOW(song_data << 1)
  163. ldi ZH, HIGH(song_data << 1)
  164.  
  165. ldi r16, 0xFF
  166. out ddra, r16
  167.  
  168. ldi r16, 1
  169. sts TIMSK2, r16
  170.  
  171. ldi r16, 0b001
  172. sts TCCR2B, r16
  173.  
  174. ldi r16, 1
  175. sts TIMSK1, r16
  176.  
  177. ldi r16, 0b010
  178. sts TCCR1B, r16
  179.  
  180. sei
  181.  
  182. loop:
  183. rjmp loop
  184.  
  185. timer2: ; sound generation
  186. ldi r16, 0
  187. ldi r17, 0
  188.  
  189. cp PULH, PULD
  190. brlo skip
  191. mov r17, PULA
  192. lsr r17
  193. lsr r17
  194. sbrc PLAY, 0
  195. add r16, r17
  196. skip:
  197.  
  198. cp PUL2H, PUL2D
  199. brlo skip2
  200. mov r17, PUL2A
  201. lsr r17
  202. lsr r17
  203. sbrc PLAY, 1
  204. add r16, r17
  205. skip2:
  206.  
  207. mov r17, TRIH
  208. sbrc r17, 7
  209. com r17
  210. lsr r17
  211. sbrc PLAY, 2
  212. add r16, r17
  213.  
  214. ldi r17, 0
  215. ldi r18, 0
  216.  
  217. ;sbrc NOIH, 6
  218. ;ldi r17, 0xFF
  219. ;sbrc NOIL, 6
  220. ;ldi r18, 0xFF
  221. ;eor r17, r18
  222. ;mov r18, NOIL
  223. ;mov r19, NOIH
  224. ;ldi r20, 0x0
  225. ;lsl r19
  226. ;lsl r18
  227. ;adc r18, r20
  228. ;sbrc r17, 0
  229. ;sbr r18, 0b1
  230. ;mov NOIL, r18
  231. ;mov NOIH, r19
  232. ;lsr r18
  233. ;lsr r18
  234. ;add r16, r18
  235.  
  236. out porta, r16
  237.  
  238. add PULL, PULFL
  239. adc PULH, PULFH
  240. add TRIL, TRIFL
  241. adc TRIH, TRIFH
  242. add PUL2L, PUL2FL
  243. adc PUL2H, PUL2FH
  244.  
  245. reti
  246.  
  247. do_effect:
  248. mov r17, r16
  249. lsr r16
  250. lsr r16
  251. lsr r16
  252. lsr r16
  253. lsl r17
  254. lsl r17
  255. lsl r17
  256. lsl r17
  257. lsr r17
  258. lsr r17
  259. lsr r17
  260. lsr r17
  261.  
  262. cpi r16, 0x0
  263. breq return4
  264. cpi r16, 0x1
  265. breq return4
  266. cpi r16, 0x2
  267. breq inc_vol
  268. cpi r16, 0x3
  269. breq dec_vol
  270. cpi r16, 0x4
  271. breq inc_frq
  272. cpi r16, 0x5
  273. breq dec_frq_
  274. cpi r16, 0x6
  275. breq inc_dut_
  276. cpi r16, 0x7
  277. breq set_dut_
  278. cpi r16, 0x8
  279. breq return4
  280. cpi r16, 0x9
  281. breq return4
  282. cpi r16, 0xA
  283. breq return4
  284. cpi r16, 0xB
  285. breq return4
  286. cpi r16, 0xC
  287. breq return4
  288. cpi r16, 0xD
  289. breq return4
  290. cpi r16, 0xE
  291. breq return4
  292. cpi r16, 0xF
  293. return4:
  294. ret
  295. inc_vol:
  296. lsl r17
  297. lsl r17
  298. cpi r20, 0b00000001
  299. breq inc_vol1
  300. cpi r20, 0b00000010
  301. breq inc_vol2
  302. ret
  303. inc_vol1:
  304. add PULA, r17
  305. brcs inc_vol01
  306. ret
  307. inc_vol01:
  308. ser PULA
  309. ret
  310. inc_vol2:
  311. add PUL2A, r17
  312. brcs inc_vol02
  313. ret
  314. inc_vol02:
  315. ser PUL2A
  316. ret
  317. dec_vol:
  318. lsl r17
  319. lsl r17
  320. cpi r20, 0b00000001
  321. breq dec_vol1
  322. cpi r20, 0b00000010
  323. breq dec_vol2
  324. ret
  325. dec_vol1:
  326. cp PULA, r17
  327. brlo dec_vol01
  328. sub PULA, r17
  329. ret
  330. dec_vol01:
  331. clr PULA
  332. ret
  333. dec_vol2:
  334. cp PUL2A, r17
  335. brlo dec_vol02
  336. sub PUL2A, r17
  337. ret
  338. dec_vol02:
  339. clr PUL2A
  340. ret
  341. dec_frq_:
  342. rjmp dec_frq
  343. inc_dut_:
  344. rjmp inc_dut
  345. set_dut_:
  346. rjmp set_dut
  347. inc_frq:
  348. lsl r17
  349. lsl r17
  350. clr r18
  351. cpi r20, 0b00000001
  352. breq inc_frq1
  353. cpi r20, 0b00000010
  354. breq inc_frq2
  355. ret
  356. inc_frq1:
  357. add PULFL, r17
  358. adc PULFH, r18
  359. brcs inc_frq01
  360. ret
  361. inc_frq01:
  362. ser r18
  363. mov PULFL, r18
  364. mov PULFH, r18
  365. ret
  366. inc_frq2:
  367. add PUL2FL, r17
  368. adc PUL2FH, r18
  369. brcs inc_frq02
  370. ret
  371. inc_frq02:
  372. ser r18
  373. mov PUL2FL, r18
  374. mov PUL2FH, r18
  375. ret
  376. dec_frq:
  377. lsl r17
  378. lsl r17
  379. cpi r20, 0b00000001
  380. breq dec_frq1
  381. cpi r20, 0b00000010
  382. breq dec_frq2
  383. ret
  384. dec_frq1:
  385. cp PULFL, r17
  386. brlo dec_frq01
  387. sub PULFL, r17
  388. ret
  389. dec_frq01:
  390. sub PULFL, r17
  391. dec PULFH
  392. brmi dec_frq11
  393. ret
  394. dec_frq11:
  395. clr r18
  396. mov PULFL, r18
  397. mov PULFH, r18
  398. ret
  399. dec_frq2:
  400. cp PUL2FL, r17
  401. brlo dec_frq02
  402. sub PUL2FL, r17
  403. ret
  404. dec_frq02:
  405. sub PUL2FL, r17
  406. dec PUL2FH
  407. brmi dec_frq12
  408. ret
  409. dec_frq12:
  410. clr r18
  411. mov PUL2FL, r18
  412. mov PUL2FH, r18
  413. ret
  414. inc_dut:
  415. cpi r20, 0b00000001
  416. breq inc_dut1
  417. cpi r20, 0b00000010
  418. breq inc_dut2
  419. ret
  420. inc_dut1:
  421. add PULD, r17
  422. ret
  423. inc_dut2:
  424. add PUL2D, r17
  425. ret
  426. set_dut:
  427. lsl r17
  428. lsl r17
  429. lsl r17
  430. lsl r17
  431. cpi r20, 0b00000001
  432. breq set_dut1
  433. cpi r20, 0b00000010
  434. breq set_dut2
  435. ret
  436. set_dut1:
  437. mov PULD, r17
  438. ret
  439. set_dut2:
  440. mov PUL2D, r17
  441. ret
  442.  
  443. timer1: ; music generation
  444. mov r16, PLAY
  445. lsr r16
  446. lsr r16
  447. lsr r16
  448. lsr r16
  449. cp FT, r16
  450. brlo skip3
  451. rcall load_frame
  452. skip3:
  453. mov r16, EFF1
  454. ldi r20, 0b0001
  455. rcall do_effect
  456.  
  457. mov r16, EFF2
  458. ldi r20, 0b0010
  459. rcall do_effect
  460.  
  461. mov r16, EFF3
  462. ldi r20, 0b0100
  463. rcall do_effect
  464.  
  465. mov r16, EFF4
  466. ldi r20, 0b1000
  467. rcall do_effect
  468.  
  469. inc FT
  470. cpi ZH, HIGH(song_end << 1)
  471. brlo skip5
  472. brne skip6
  473. cpi ZL, LOW(song_end << 1)
  474. brlo skip5
  475. skip6:
  476. ldi ZL, LOW(song_data << 1)
  477. ldi ZH, HIGH(song_data << 1)
  478. skip5:
  479. reti
  480.  
  481. handle_note:
  482. mov r16, r19
  483. lsr r16
  484. lsr r16
  485. lsr r16
  486. lsr r16
  487. cpi r16, 0x00
  488. breq return
  489. cpi r16, 0x01
  490. breq return
  491. cpi r16, 0x02
  492. breq stop
  493. cpi r16, 0x03
  494. breq restart
  495. rcall restart
  496. cpi r16, 0x04
  497. breq setc
  498. cpi r16, 0x05
  499. breq setcs
  500. cpi r16, 0x06
  501. breq setd
  502. cpi r16, 0x07
  503. breq setds
  504. cpi r16, 0x08
  505. breq sete
  506. cpi r16, 0x09
  507. breq setf
  508. cpi r16, 0x0A
  509. breq setfs
  510. cpi r16, 0x0B
  511. breq setg
  512. cpi r16, 0x0C
  513. breq setgs
  514. cpi r16, 0x0D
  515. breq seta
  516. cpi r16, 0x0E
  517. breq setas
  518. cpi r16, 0x0F
  519. breq setb
  520. return:
  521. ret
  522. stop:
  523. mov r18, PLAY
  524. mov r16, r20
  525. com r16
  526. and r18, r16
  527. mov PLAY, r18
  528. ret
  529. restart:
  530. mov r18, PLAY
  531. or r18, r20
  532. mov PLAY, r18
  533. ret
  534. setc:
  535. ldi r16, LOW(NOTE_C)
  536. ldi r17, HIGH(NOTE_C)
  537. rjmp skip4
  538. setcs:
  539. ldi r16, LOW(NOTE_Cs)
  540. ldi r17, HIGH(NOTE_Cs)
  541. rjmp skip4
  542. setd:
  543. ldi r16, LOW(NOTE_D)
  544. ldi r17, HIGH(NOTE_D)
  545. rjmp skip4
  546. setds:
  547. ldi r16, LOW(NOTE_Ds)
  548. ldi r17, HIGH(NOTE_Ds)
  549. rjmp skip4
  550. sete:
  551. ldi r16, LOW(NOTE_E)
  552. ldi r17, HIGH(NOTE_E)
  553. rjmp skip4
  554. setf:
  555. ldi r16, LOW(NOTE_F)
  556. ldi r17, HIGH(NOTE_F)
  557. rjmp skip4
  558. setfs:
  559. ldi r16, LOW(NOTE_Fs)
  560. ldi r17, HIGH(NOTE_Fs)
  561. rjmp skip4
  562. setg:
  563. ldi r16, LOW(NOTE_G)
  564. ldi r17, HIGH(NOTE_G)
  565. rjmp skip4
  566. setgs:
  567. ldi r16, LOW(NOTE_Gs)
  568. ldi r17, HIGH(NOTE_Gs)
  569. rjmp skip4
  570. seta:
  571. ldi r16, LOW(NOTE_A)
  572. ldi r17, HIGH(NOTE_A)
  573. rjmp skip4
  574. setas:
  575. ldi r16, LOW(NOTE_As)
  576. ldi r17, HIGH(NOTE_As)
  577. rjmp skip4
  578. setb:
  579. ldi r16, LOW(NOTE_B)
  580. ldi r17, HIGH(NOTE_B)
  581. rjmp skip4
  582. skip4:
  583. lsl r19
  584. lsl r19
  585. lsl r19
  586. lsl r19
  587. lsr r19
  588. lsr r19
  589. lsr r19
  590. lsr r19
  591. cpi r19, 0x01
  592. breq seto1
  593. cpi r19, 0x02
  594. breq seto2
  595. cpi r19, 0x03
  596. breq seto3
  597. cpi r19, 0x04
  598. breq seto4
  599. cpi r19, 0x05
  600. breq seto5
  601. cpi r19, 0x06
  602. breq seto6
  603. cpi r19, 0x07
  604. breq seto7
  605. cpi r19, 0x08
  606. breq seto8
  607. ret
  608. seto1:
  609. lsr r17
  610. ror r16
  611. lsr r17
  612. ror r16
  613. lsr r17
  614. ror r16
  615. rjmp skip7
  616. seto2:
  617. lsr r17
  618. ror r16
  619. lsr r17
  620. ror r16
  621. rjmp skip7
  622. seto3:
  623. lsr r17
  624. ror r16
  625. rjmp skip7
  626. seto4:
  627. rjmp skip7
  628. seto5:
  629. lsl r16
  630. rol r17
  631. rjmp skip7
  632. seto6:
  633. lsl r16
  634. rol r17
  635. lsl r16
  636. rol r17
  637. rjmp skip7
  638. seto7:
  639. lsl r16
  640. rol r17
  641. lsl r16
  642. rol r17
  643. lsl r16
  644. rol r17
  645. rjmp skip7
  646. seto8:
  647. lsl r16
  648. rol r17
  649. lsl r16
  650. rol r17
  651. lsl r16
  652. rol r17
  653. lsl r16
  654. rol r17
  655. rjmp skip7
  656. skip7:
  657. cpi r20, 0b00000001
  658. breq set1
  659. cpi r20, 0b00000010
  660. breq set2
  661. cpi r20, 0b00000100
  662. breq set3
  663. ret
  664. set1:
  665. mov PULFL, r16
  666. mov PULFH, r17
  667. ret
  668. set2:
  669. mov PUL2FL, r16
  670. mov PUL2FH, r17
  671. ret
  672. set3:
  673. mov TRIFL, r16
  674. mov TRIFH, r17
  675. ret
  676.  
  677. handle_volume:
  678. cpi r19, 0x00
  679. breq return2
  680. cpi r20, 0b00000001
  681. breq setv1
  682. cpi r20, 0b00000010
  683. breq setv2
  684. ret
  685. setv1:
  686. mov PULA, r19
  687. ret
  688. setv2:
  689. mov PUL2A, r19
  690. ret
  691. return2:
  692. ret
  693.  
  694. handle_effect:
  695. cpi r19, 0x00
  696. breq return3
  697. cpi r20, 0b00000001
  698. breq sete1
  699. cpi r20, 0b00000010
  700. breq sete2
  701. cpi r20, 0b00000100
  702. breq sete3
  703. cpi r20, 0b00001000
  704. breq sete4
  705. ret
  706. sete1:
  707. mov EFF1, r19
  708. ret
  709. sete2:
  710. mov EFF2, r19
  711. ret
  712. sete3:
  713. mov EFF3, r19
  714. ret
  715. sete4:
  716. mov EFF4, r19
  717. ret
  718. return3:
  719. ret
  720.  
  721. load_command:
  722. lpm r19, Z+
  723. rcall handle_note
  724.  
  725. lpm r19, Z+
  726. rcall handle_volume
  727.  
  728. lpm r19, Z+
  729. rcall handle_effect
  730.  
  731. lpm r19, Z+
  732.  
  733. ret
  734.  
  735. load_frame:
  736. clr FT
  737.  
  738. ldi r20, 0b00000001
  739. rcall load_command
  740.  
  741. ldi r20, 0b00000010
  742. rcall load_command
  743.  
  744. ldi r20, 0b00000100
  745. rcall load_command
  746.  
  747. ldi r20, 0b00001000
  748. rcall load_command
  749.  
  750. ret
  751.  
  752. song_data:
  753. .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
  754. .db 0x42, 0xFF, 0x68, 0x00 ; pulse 2
  755. .db 0xB4, 0x88, 0x00, 0x00 ; triangle
  756. .db 0x00, 0x00, 0x00, 0x00 ; noise
  757.  
  758. .db 0x00, 0x00, 0x72, 0x00 ; pulse 1
  759. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  760. .db 0x00, 0x00, 0x00, 0x00 ; triangle
  761. .db 0x00, 0x00, 0x00, 0x00 ; noise
  762.  
  763. .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
  764. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  765. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  766. .db 0x00, 0x00, 0x00, 0x00 ; noise
  767.  
  768. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  769. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  770. .db 0x00, 0x00, 0x00, 0x00 ; triangle
  771. .db 0x00, 0x00, 0x00, 0x00 ; noise
  772.  
  773. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  774. .db 0x73, 0xFF, 0x00, 0x00 ; pulse 2
  775. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  776. .db 0x00, 0x00, 0x00, 0x00 ; noise
  777.  
  778. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  779. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  780. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  781. .db 0x00, 0x00, 0x00, 0x00 ; noise
  782.  
  783. .db 0xE3, 0xFF, 0x00, 0x00 ; pulse 1
  784. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  785. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  786. .db 0x00, 0x00, 0x00, 0x00 ; noise
  787.  
  788. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  789. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  790. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  791. .db 0x00, 0x00, 0x00, 0x00 ; noise
  792.  
  793.  
  794. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  795. .db 0x42, 0xFF, 0x00, 0x00 ; pulse 2
  796. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  797. .db 0x00, 0x00, 0x00, 0x00 ; noise
  798.  
  799. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  800. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  801. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  802. .db 0x00, 0x00, 0x00, 0x00 ; noise
  803.  
  804. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  805. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  806. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  807. .db 0x00, 0x00, 0x00, 0x00 ; noise
  808.  
  809. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  810. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  811. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  812. .db 0x00, 0x00, 0x00, 0x00 ; noise
  813.  
  814. .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
  815. .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
  816. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  817. .db 0x00, 0x00, 0x00, 0x00 ; noise
  818.  
  819. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  820. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  821. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  822. .db 0x00, 0x00, 0x00, 0x00 ; noise
  823.  
  824. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  825. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  826. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  827. .db 0x00, 0x00, 0x00, 0x00 ; noise
  828.  
  829. .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
  830. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  831. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  832. .db 0x00, 0x00, 0x00, 0x00 ; noise
  833.  
  834.  
  835. .db 0xC3, 0xFF, 0x00, 0x00 ; pulse 1
  836. .db 0xE1, 0xFF, 0x00, 0x00 ; pulse 2
  837. .db 0x94, 0x00, 0x00, 0x00 ; triangle
  838. .db 0x00, 0x00, 0x00, 0x00 ; noise
  839.  
  840. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  841. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  842. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  843. .db 0x00, 0x00, 0x00, 0x00 ; noise
  844.  
  845. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  846. .db 0xE2, 0xFF, 0x00, 0x00 ; pulse 2
  847. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  848. .db 0x00, 0x00, 0x00, 0x00 ; noise
  849.  
  850. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  851. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  852. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  853. .db 0x00, 0x00, 0x00, 0x00 ; noise
  854.  
  855. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  856. .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
  857. .db 0x94, 0x00, 0x00, 0x00 ; triangle
  858. .db 0x00, 0x00, 0x00, 0x00 ; noise
  859.  
  860. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  861. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  862. .db 0xE4, 0x00, 0x00, 0x00 ; triangle
  863. .db 0x00, 0x00, 0x00, 0x00 ; noise
  864.  
  865. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  866. .db 0xE2, 0xFF, 0x00, 0x00 ; pulse 2
  867. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  868. .db 0x00, 0x00, 0x00, 0x00 ; noise
  869.  
  870. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  871. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  872. .db 0xE4, 0x00, 0x00, 0x00 ; triangle
  873. .db 0x00, 0x00, 0x00, 0x00 ; noise
  874.  
  875.  
  876. .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 1
  877. .db 0xF1, 0xFF, 0x00, 0x00 ; pulse 2
  878. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  879. .db 0x00, 0x00, 0x00, 0x00 ; noise
  880.  
  881. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  882. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  883. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  884. .db 0x00, 0x00, 0x00, 0x00 ; noise
  885.  
  886. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  887. .db 0xF2, 0xFF, 0x00, 0x00 ; pulse 2
  888. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  889. .db 0x00, 0x00, 0x00, 0x00 ; noise
  890.  
  891. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  892. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  893. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  894. .db 0x00, 0x00, 0x00, 0x00 ; noise
  895.  
  896. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  897. .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
  898. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  899. .db 0x00, 0x00, 0x00, 0x00 ; noise
  900.  
  901. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  902. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  903. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  904. .db 0x00, 0x00, 0x00, 0x00 ; noise
  905.  
  906. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  907. .db 0xF2, 0xFF, 0x00, 0x00 ; pulse 2
  908. .db 0x95, 0x00, 0x00, 0x00 ; triangle
  909. .db 0x00, 0x00, 0x00, 0x00 ; noise
  910.  
  911. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  912. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  913. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  914. .db 0x00, 0x00, 0x00, 0x00 ; noise
  915.  
  916.  
  917.  
  918. .db 0x00, 0x00, 0x72, 0x00 ; pulse 1
  919. .db 0x42, 0xFF, 0x68, 0x00 ; pulse 2
  920. .db 0xB4, 0x88, 0x00, 0x00 ; triangle
  921. .db 0x00, 0x00, 0x00, 0x00 ; noise
  922.  
  923. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  924. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  925. .db 0x00, 0x00, 0x00, 0x00 ; triangle
  926. .db 0x00, 0x00, 0x00, 0x00 ; noise
  927.  
  928. .db 0x44, 0xFF, 0x38, 0x00 ; pulse 1
  929. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  930. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  931. .db 0x00, 0x00, 0x00, 0x00 ; noise
  932.  
  933. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  934. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  935. .db 0x00, 0x00, 0x00, 0x00 ; triangle
  936. .db 0x00, 0x00, 0x00, 0x00 ; noise
  937.  
  938. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  939. .db 0x73, 0xFF, 0x00, 0x00 ; pulse 2
  940. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  941. .db 0x00, 0x00, 0x00, 0x00 ; noise
  942.  
  943. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  944. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  945. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  946. .db 0x00, 0x00, 0x00, 0x00 ; noise
  947.  
  948. .db 0xE3, 0xFF, 0x00, 0x00 ; pulse 1
  949. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  950. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  951. .db 0x00, 0x00, 0x00, 0x00 ; noise
  952.  
  953. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  954. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  955. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  956. .db 0x00, 0x00, 0x00, 0x00 ; noise
  957.  
  958.  
  959. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  960. .db 0x42, 0xFF, 0x00, 0x00 ; pulse 2
  961. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  962. .db 0x00, 0x00, 0x00, 0x00 ; noise
  963.  
  964. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  965. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  966. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  967. .db 0x00, 0x00, 0x00, 0x00 ; noise
  968.  
  969. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  970. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  971. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  972. .db 0x00, 0x00, 0x00, 0x00 ; noise
  973.  
  974. .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
  975. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  976. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  977. .db 0x00, 0x00, 0x00, 0x00 ; noise
  978.  
  979. .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
  980. .db 0x63, 0xFF, 0x00, 0x00 ; pulse 2
  981. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  982. .db 0x00, 0x00, 0x00, 0x00 ; noise
  983.  
  984. .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
  985. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  986. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  987. .db 0x00, 0x00, 0x00, 0x00 ; noise
  988.  
  989. .db 0x44, 0xFF, 0x00, 0x00 ; pulse 1
  990. .db 0x43, 0xFF, 0x00, 0x00 ; pulse 2
  991. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  992. .db 0x00, 0x00, 0x00, 0x00 ; noise
  993.  
  994. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  995. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  996. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  997. .db 0x00, 0x00, 0x00, 0x00 ; noise
  998.  
  999.  
  1000. .db 0x94, 0xFF, 0x00, 0x00 ; pulse 1
  1001. .db 0x92, 0xFF, 0x00, 0x00 ; pulse 2
  1002. .db 0xC4, 0x00, 0x00, 0x00 ; triangle
  1003. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1004.  
  1005. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  1006. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1007. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  1008. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1009.  
  1010. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  1011. .db 0x93, 0xFF, 0x00, 0x00 ; pulse 2
  1012. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  1013. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1014.  
  1015. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  1016. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1017. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  1018. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1019.  
  1020. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  1021. .db 0xC3, 0xFF, 0x00, 0x00 ; pulse 2
  1022. .db 0xC4, 0x00, 0x00, 0x00 ; triangle
  1023. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1024.  
  1025. .db 0x00, 0x00, 0x00, 0x00 ; pulse 1
  1026. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1027. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  1028. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1029.  
  1030. .db 0xB4, 0xFF, 0x00, 0x00 ; pulse 1
  1031. .db 0x93, 0xFF, 0x00, 0x00 ; pulse 2
  1032. .db 0x75, 0x00, 0x00, 0x00 ; triangle
  1033. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1034.  
  1035. .db 0xC4, 0xFF, 0x00, 0x00 ; pulse 1
  1036. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1037. .db 0x45, 0x00, 0x00, 0x00 ; triangle
  1038. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1039.  
  1040.  
  1041. .db 0xB4, 0xFF, 0x00, 0x00 ; pulse 1
  1042. .db 0xB2, 0xFF, 0x00, 0x00 ; pulse 2
  1043. .db 0xB4, 0x00, 0x00, 0x00 ; triangle
  1044. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1045.  
  1046. .db 0xB5, 0xFF, 0x00, 0x00 ; pulse 1
  1047. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1048. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  1049. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1050.  
  1051. .db 0x94, 0xFF, 0x00, 0x00 ; pulse 1
  1052. .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 2
  1053. .db 0xB5, 0x00, 0x00, 0x00 ; triangle
  1054. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1055.  
  1056. .db 0x95, 0xFF, 0x00, 0x00 ; pulse 1
  1057. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1058. .db 0x20, 0x00, 0x00, 0x00 ; triangle
  1059. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1060.  
  1061. .db 0x74, 0xFF, 0x00, 0x00 ; pulse 1
  1062. .db 0xF3, 0xFF, 0x00, 0x00 ; pulse 2
  1063. .db 0xF4, 0x00, 0x00, 0x00 ; triangle
  1064. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1065.  
  1066. .db 0x75, 0xFF, 0x00, 0x00 ; pulse 1
  1067. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1068. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  1069. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1070.  
  1071. .db 0x64, 0xFF, 0x00, 0x00 ; pulse 1
  1072. .db 0xB3, 0xFF, 0x00, 0x00 ; pulse 2
  1073. .db 0x95, 0x00, 0x00, 0x00 ; triangle
  1074. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1075.  
  1076. .db 0x65, 0xFF, 0x00, 0x00 ; pulse 1
  1077. .db 0x00, 0xAA, 0x00, 0x00 ; pulse 2
  1078. .db 0x65, 0x00, 0x00, 0x00 ; triangle
  1079. .db 0x00, 0x00, 0x00, 0x00 ; noise
  1080. song_end:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement