From b10bf7078174e929b4deb7bcb8a6b1efde06fbb3 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 5 Feb 2018 00:50:03 -0500 Subject: [PATCH] mockingboard: starting work on "compressed" version --- mockingboard/Makefile | 11 +- mockingboard/ksp_theme_compressed.inc | 943 +++++++++++++++++++++++++ mockingboard/ksp_theme_compressed.s | 163 +++++ mockingboard/ksptheme_uncompressed.inc | 1 + mockingboard/zp.inc | 1 + 5 files changed, 1118 insertions(+), 1 deletion(-) create mode 100644 mockingboard/ksp_theme_compressed.inc create mode 100644 mockingboard/ksp_theme_compressed.s diff --git a/mockingboard/Makefile b/mockingboard/Makefile index 662a4096..e1fb0d4d 100644 --- a/mockingboard/Makefile +++ b/mockingboard/Makefile @@ -5,8 +5,17 @@ PNG2GR = ../gr-utils/png2gr all: dump_ed mock.dsk -mock.dsk: KSP_THEME_UNCOMPRESSED +mock.dsk: KSP_THEME_UNCOMPRESSED KSP_THEME_COMPRESSED $(DOS33) -y mock_test.dsk BSAVE -a 0x1000 KSP_THEME_UNCOMPRESSED + $(DOS33) -y mock_test.dsk BSAVE -a 0x1000 KSP_THEME_COMPRESSED + +KSP_THEME_COMPRESSED: ksp_theme_compressed.o + ld65 -o KSP_THEME_COMPRESSED ksp_theme_compressed.o -C ./apple2_1000.inc + +ksp_theme_compressed.o: ksp_theme_compressed.s \ + ../asm_routines/mockingboard.s \ + ksp_theme_compressed.inc + ca65 -o ksp_theme_compressed.o ksp_theme_compressed.s -l ksp_theme_compressed.lst KSP_THEME_UNCOMPRESSED: ksp_theme_uncompressed.o ld65 -o KSP_THEME_UNCOMPRESSED ksp_theme_uncompressed.o -C ./apple2_1000.inc diff --git a/mockingboard/ksp_theme_compressed.inc b/mockingboard/ksp_theme_compressed.inc new file mode 100644 index 00000000..27fa1126 --- /dev/null +++ b/mockingboard/ksp_theme_compressed.inc @@ -0,0 +1,943 @@ +ksptheme: +; Using ym5_to_mockingboard to convert song ../songs/kerbal.ym5 +; YM5 Song attributes (1) : Interleaved=yes +; Frames: 4128, Chip clock: 1000000 Hz, Frame rate: 50 Hz, Length=1:22 +; Loop frame: 0, Extra data size: 0 +; Song name: Kerbal Space Program Theme +; Author name: Felipe Falanghe +; Comment: Tracked by Vince Weaver + +.byte $00,$80,$38,$00 ; 00000 +.byte $60,$35,$BD,$EE,$DD,$01,$07,$0D,$0D,$0D ; 00096 +.byte $01,$00,$07,$0E,$0E,$0E ; 00097 +.byte $01,$00,$07,$0F,$0F,$0F ; 00098 +.byte $01,$00,$07,$0E,$0E,$0E ; 00099 +.byte $14,$00,$04,$0C ; 00119 +.byte $01,$30,$BB,$03,$00 ; 00120 +.byte $01,$00,$04,$0D ; 00121 +.byte $01,$00,$04,$0E ; 00122 +.byte $01,$00,$04,$0D ; 00123 +.byte $14,$00,$07,$0C,$0C,$0B ; 00143 +.byte $01,$3D,$EE,$3E,$01,$DD,$01,$04,$0C ; 00144 +.byte $01,$00,$07,$0D,$0D,$0D ; 00145 +.byte $01,$00,$07,$0E,$0E,$0E ; 00146 +.byte $01,$00,$07,$0D,$0D,$0D ; 00147 +.byte $14,$00,$04,$0B ; 00167 +.byte $01,$30,$BB,$03,$04,$0C ; 00168 +.byte $01,$00,$04,$0D ; 00169 +.byte $01,$00,$04,$0E ; 00170 +.byte $01,$00,$04,$0D ; 00171 +.byte $14,$00,$07,$0B,$0B,$0B ; 00191 +.byte $01,$3D,$9F,$BD,$00,$DD,$01,$07,$0D,$0D,$0D ; 00192 +.byte $01,$00,$07,$0E,$0E,$0E ; 00193 +.byte $01,$00,$07,$0F,$0F,$0F ; 00194 +.byte $01,$00,$07,$0E,$0E,$0E ; 00195 +.byte $14,$00,$04,$0C ; 00215 +.byte $01,$30,$BB,$03,$00 ; 00216 +.byte $01,$00,$04,$0D ; 00217 +.byte $01,$00,$04,$0E ; 00218 +.byte $01,$00,$04,$0D ; 00219 +.byte $14,$00,$07,$0C,$0C,$0B ; 00239 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 00240 +.byte $01,$00,$05,$0D,$0D ; 00241 +.byte $01,$00,$05,$0E,$0E ; 00242 +.byte $01,$00,$05,$0D,$0D ; 00243 +.byte $0C,$01,$BD,$01,$0C ; 00255 +.byte $01,$00,$01,$0D ; 00256 +.byte $01,$00,$01,$0E ; 00257 +.byte $01,$00,$01,$0D ; 00258 +.byte $05,$00,$04,$0B ; 00263 +.byte $01,$30,$BB,$03,$04,$0C ; 00264 +.byte $01,$00,$04,$0D ; 00265 +.byte $01,$00,$04,$0E ; 00266 +.byte $01,$00,$04,$0D ; 00267 +.byte $03,$01,$9F,$01,$0C ; 00270 +.byte $01,$00,$01,$0D ; 00271 +.byte $01,$00,$01,$0E ; 00272 +.byte $01,$00,$01,$0D ; 00273 +.byte $0E,$00,$04,$0B ; 00287 +.byte $01,$35,$86,$9F,$65,$01,$06,$0D,$0D ; 00288 +.byte $01,$00,$07,$0E,$0E,$0E ; 00289 +.byte $01,$00,$07,$0F,$0F,$0F ; 00290 +.byte $01,$00,$07,$0E,$0E,$0E ; 00291 +.byte $14,$00,$04,$0C ; 00311 +.byte $01,$30,$18,$02,$00 ; 00312 +.byte $01,$00,$04,$0D ; 00313 +.byte $01,$00,$04,$0E ; 00314 +.byte $01,$00,$04,$0D ; 00315 +.byte $14,$00,$07,$0C,$0C,$0B ; 00335 +.byte $01,$35,$8E,$B2,$DD,$01,$07,$0D,$0D,$0D ; 00336 +.byte $01,$00,$07,$0E,$0E,$0E ; 00337 +.byte $01,$00,$07,$0F,$0F,$0F ; 00338 +.byte $01,$00,$07,$0E,$0E,$0E ; 00339 +.byte $14,$00,$04,$0C ; 00359 +.byte $01,$30,$CB,$02,$04,$0D ; 00360 +.byte $01,$00,$04,$0E ; 00361 +.byte $01,$00,$04,$0F ; 00362 +.byte $01,$00,$04,$0E ; 00363 +.byte $14,$00,$07,$0C,$0C,$0C ; 00383 +.byte $01,$35,$9F,$BD,$DD,$01,$07,$0D,$0D,$0D ; 00384 +.byte $01,$00,$07,$0E,$0E,$0E ; 00385 +.byte $01,$00,$07,$0F,$0F,$0F ; 00386 +.byte $01,$00,$07,$0E,$0E,$0E ; 00387 +.byte $14,$00,$04,$0C ; 00407 +.byte $01,$30,$BB,$03,$00 ; 00408 +.byte $01,$00,$04,$0D ; 00409 +.byte $01,$00,$04,$0E ; 00410 +.byte $01,$00,$04,$0D ; 00411 +.byte $14,$00,$07,$0C,$0C,$0B ; 00431 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 00432 +.byte $01,$00,$05,$0D,$0D ; 00433 +.byte $01,$00,$05,$0E,$0E ; 00434 +.byte $01,$00,$05,$0D,$0D ; 00435 +.byte $0C,$01,$BD,$01,$0C ; 00447 +.byte $01,$00,$01,$0D ; 00448 +.byte $01,$00,$01,$0E ; 00449 +.byte $01,$00,$01,$0D ; 00450 +.byte $05,$00,$04,$0B ; 00455 +.byte $01,$30,$BB,$03,$04,$0C ; 00456 +.byte $01,$00,$04,$0D ; 00457 +.byte $01,$00,$04,$0E ; 00458 +.byte $01,$00,$04,$0D ; 00459 +.byte $03,$01,$9F,$01,$0C ; 00462 +.byte $01,$00,$01,$0D ; 00463 +.byte $01,$00,$01,$0E ; 00464 +.byte $01,$00,$01,$0D ; 00465 +.byte $0E,$00,$04,$0B ; 00479 +.byte $01,$35,$86,$9F,$65,$01,$06,$0D,$0D ; 00480 +.byte $01,$00,$07,$0E,$0E,$0E ; 00481 +.byte $01,$00,$07,$0F,$0F,$0F ; 00482 +.byte $01,$00,$07,$0E,$0E,$0E ; 00483 +.byte $14,$00,$04,$0C ; 00503 +.byte $01,$30,$18,$02,$00 ; 00504 +.byte $01,$00,$04,$0D ; 00505 +.byte $01,$00,$04,$0E ; 00506 +.byte $01,$00,$04,$0D ; 00507 +.byte $14,$00,$07,$0C,$0C,$0B ; 00527 +.byte $01,$35,$8E,$B2,$DD,$01,$07,$0D,$0D,$0D ; 00528 +.byte $01,$00,$07,$0E,$0E,$0E ; 00529 +.byte $01,$00,$07,$0F,$0F,$0F ; 00530 +.byte $01,$00,$07,$0E,$0E,$0E ; 00531 +.byte $14,$00,$04,$0C ; 00551 +.byte $01,$30,$CB,$02,$00 ; 00552 +.byte $01,$00,$04,$0D ; 00553 +.byte $01,$00,$04,$0E ; 00554 +.byte $01,$00,$04,$0D ; 00555 +.byte $14,$00,$07,$0C,$0C,$0B ; 00575 +.byte $01,$35,$9F,$BD,$BB,$03,$07,$0D,$0D,$0D ; 00576 +.byte $01,$00,$07,$0E,$0E,$0E ; 00577 +.byte $01,$00,$07,$0F,$0F,$0F ; 00578 +.byte $01,$00,$07,$0E,$0E,$0E ; 00579 +.byte $14,$00,$04,$0C ; 00599 +.byte $02,$00,$04,$0D ; 00601 +.byte $01,$00,$04,$0E ; 00602 +.byte $01,$00,$04,$0D ; 00603 +.byte $14,$00,$07,$0C,$0C,$0B ; 00623 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 00624 +.byte $01,$00,$05,$0D,$0D ; 00625 +.byte $01,$00,$05,$0E,$0E ; 00626 +.byte $01,$00,$05,$0D,$0D ; 00627 +.byte $14,$00,$04,$0B ; 00647 +.byte $01,$30,$BB,$03,$04,$0C ; 00648 +.byte $01,$00,$04,$0D ; 00649 +.byte $01,$00,$04,$0E ; 00650 +.byte $01,$00,$04,$0D ; 00651 +.byte $14,$00,$05,$0B,$0B ; 00671 +.byte $01,$3D,$D4,$0C,$01,$65,$01,$07,$0C,$0C,$0C ; 00672 +.byte $01,$00,$07,$0D,$0D,$0D ; 00673 +.byte $01,$00,$07,$0E,$0E,$0E ; 00674 +.byte $01,$00,$07,$0D,$0D,$0D ; 00675 +.byte $14,$00,$04,$0B ; 00695 +.byte $01,$30,$18,$02,$04,$0C ; 00696 +.byte $01,$00,$04,$0D ; 00697 +.byte $01,$00,$04,$0E ; 00698 +.byte $01,$00,$04,$0D ; 00699 +.byte $14,$00,$07,$0B,$0B,$0B ; 00719 +.byte $01,$3D,$B2,$D4,$00,$65,$01,$07,$0C,$0C,$0C ; 00720 +.byte $01,$00,$07,$0D,$0D,$0D ; 00721 +.byte $01,$00,$07,$0E,$0E,$0E ; 00722 +.byte $01,$00,$07,$0D,$0D,$0D ; 00723 +.byte $14,$00,$04,$0B ; 00743 +.byte $01,$30,$18,$02,$04,$0C ; 00744 +.byte $01,$00,$04,$0D ; 00745 +.byte $01,$00,$04,$0E ; 00746 +.byte $01,$00,$04,$0D ; 00747 +.byte $14,$00,$04,$0B ; 00767 +.byte $01,$30,$65,$01,$04,$0C ; 00768 +.byte $01,$00,$04,$0D ; 00769 +.byte $01,$00,$04,$0E ; 00770 +.byte $01,$00,$04,$0D ; 00771 +.byte $14,$00,$04,$0B ; 00791 +.byte $01,$30,$18,$02,$04,$0C ; 00792 +.byte $01,$00,$04,$0D ; 00793 +.byte $01,$00,$04,$0E ; 00794 +.byte $01,$00,$04,$0D ; 00795 +.byte $14,$00,$07,$0B,$0B,$0B ; 00815 +.byte $01,$35,$D4,$00,$65,$01,$07,$0C,$00,$0C ; 00816 +.byte $01,$00,$05,$0D,$0D ; 00817 +.byte $01,$00,$05,$0E,$0E ; 00818 +.byte $01,$00,$05,$0D,$0D ; 00819 +.byte $0C,$01,$B2,$01,$0C ; 00831 +.byte $01,$00,$01,$0D ; 00832 +.byte $01,$00,$01,$0E ; 00833 +.byte $01,$00,$01,$0D ; 00834 +.byte $05,$00,$04,$0B ; 00839 +.byte $01,$30,$18,$02,$04,$0C ; 00840 +.byte $01,$00,$04,$0D ; 00841 +.byte $01,$00,$04,$0E ; 00842 +.byte $01,$00,$04,$0D ; 00843 +.byte $03,$01,$9F,$01,$0C ; 00846 +.byte $01,$00,$01,$0D ; 00847 +.byte $01,$00,$01,$0E ; 00848 +.byte $01,$00,$01,$0D ; 00849 +.byte $0E,$00,$04,$0B ; 00863 +.byte $01,$35,$BD,$EE,$3E,$01,$06,$0D,$0D ; 00864 +.byte $01,$00,$07,$0E,$0E,$0E ; 00865 +.byte $01,$00,$07,$0F,$0F,$0F ; 00866 +.byte $01,$00,$07,$0E,$0E,$0E ; 00867 +.byte $14,$00,$04,$0C ; 00887 +.byte $01,$10,$DD,$00 ; 00888 +.byte $01,$00,$04,$0D ; 00889 +.byte $01,$00,$04,$0E ; 00890 +.byte $01,$00,$04,$0D ; 00891 +.byte $14,$00,$07,$0C,$0C,$0B ; 00911 +.byte $01,$0D,$EE,$3E,$01,$04,$0C ; 00912 +.byte $01,$00,$07,$0D,$0D,$0D ; 00913 +.byte $01,$00,$07,$0E,$0E,$0E ; 00914 +.byte $01,$00,$07,$0D,$0D,$0D ; 00915 +.byte $14,$00,$04,$0B ; 00935 +.byte $01,$30,$38,$02,$04,$0C ; 00936 +.byte $01,$00,$04,$0D ; 00937 +.byte $01,$00,$04,$0E ; 00938 +.byte $01,$00,$04,$0D ; 00939 +.byte $14,$00,$07,$0B,$0B,$0B ; 00959 +.byte $01,$3D,$9F,$BD,$00,$DD,$01,$07,$0D,$0D,$0D ; 00960 +.byte $01,$00,$07,$0E,$0E,$0E ; 00961 +.byte $01,$00,$07,$0F,$0F,$0F ; 00962 +.byte $01,$00,$07,$0E,$0E,$0E ; 00963 +.byte $14,$00,$04,$0C ; 00983 +.byte $01,$30,$BB,$03,$00 ; 00984 +.byte $01,$00,$04,$0D ; 00985 +.byte $01,$00,$04,$0E ; 00986 +.byte $01,$00,$04,$0D ; 00987 +.byte $14,$00,$07,$0C,$0C,$0B ; 01007 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 01008 +.byte $01,$00,$05,$0D,$0D ; 01009 +.byte $01,$00,$05,$0E,$0E ; 01010 +.byte $01,$00,$05,$0D,$0D ; 01011 +.byte $0C,$01,$BD,$01,$0C ; 01023 +.byte $01,$00,$01,$0D ; 01024 +.byte $01,$00,$01,$0E ; 01025 +.byte $01,$00,$01,$0D ; 01026 +.byte $05,$00,$04,$0B ; 01031 +.byte $01,$30,$BB,$03,$04,$0C ; 01032 +.byte $01,$00,$04,$0D ; 01033 +.byte $01,$00,$04,$0E ; 01034 +.byte $01,$00,$04,$0D ; 01035 +.byte $03,$01,$77,$01,$0C ; 01038 +.byte $01,$00,$01,$0D ; 01039 +.byte $01,$00,$01,$0E ; 01040 +.byte $01,$00,$01,$0D ; 01041 +.byte $0E,$00,$04,$0B ; 01055 +.byte $01,$35,$86,$9F,$65,$01,$06,$0D,$0D ; 01056 +.byte $01,$00,$07,$0E,$0E,$0E ; 01057 +.byte $01,$00,$07,$0F,$0F,$0F ; 01058 +.byte $01,$00,$07,$0E,$0E,$0E ; 01059 +.byte $14,$00,$04,$0C ; 01079 +.byte $01,$30,$18,$02,$00 ; 01080 +.byte $01,$00,$04,$0D ; 01081 +.byte $01,$00,$04,$0E ; 01082 +.byte $01,$00,$04,$0D ; 01083 +.byte $14,$00,$07,$0C,$0C,$0B ; 01103 +.byte $01,$35,$8E,$B2,$DD,$01,$07,$0D,$0D,$0D ; 01104 +.byte $01,$00,$07,$0E,$0E,$0E ; 01105 +.byte $01,$00,$07,$0F,$0F,$0F ; 01106 +.byte $01,$00,$07,$0E,$0E,$0E ; 01107 +.byte $14,$00,$04,$0C ; 01127 +.byte $01,$30,$CB,$02,$00 ; 01128 +.byte $01,$00,$04,$0D ; 01129 +.byte $01,$00,$04,$0E ; 01130 +.byte $01,$00,$04,$0D ; 01131 +.byte $14,$00,$07,$0C,$0C,$0B ; 01151 +.byte $01,$35,$9F,$BD,$DD,$01,$07,$0D,$0D,$0D ; 01152 +.byte $01,$00,$07,$0E,$0E,$0E ; 01153 +.byte $01,$00,$07,$0F,$0F,$0F ; 01154 +.byte $01,$00,$07,$0E,$0E,$0E ; 01155 +.byte $14,$00,$04,$0C ; 01175 +.byte $01,$30,$BB,$03,$00 ; 01176 +.byte $01,$00,$04,$0D ; 01177 +.byte $01,$00,$04,$0E ; 01178 +.byte $01,$00,$04,$0D ; 01179 +.byte $14,$00,$07,$0C,$0C,$0B ; 01199 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 01200 +.byte $01,$00,$05,$0D,$0D ; 01201 +.byte $01,$00,$05,$0E,$0E ; 01202 +.byte $01,$00,$05,$0D,$0D ; 01203 +.byte $0C,$01,$BD,$01,$0C ; 01215 +.byte $01,$00,$01,$0D ; 01216 +.byte $01,$00,$01,$0E ; 01217 +.byte $01,$00,$01,$0D ; 01218 +.byte $05,$00,$04,$0B ; 01223 +.byte $01,$30,$BB,$03,$04,$0D ; 01224 +.byte $01,$00,$04,$0E ; 01225 +.byte $01,$00,$04,$0F ; 01226 +.byte $01,$00,$04,$0E ; 01227 +.byte $03,$01,$77,$01,$0C ; 01230 +.byte $01,$00,$01,$0D ; 01231 +.byte $01,$00,$01,$0E ; 01232 +.byte $01,$00,$01,$0D ; 01233 +.byte $0E,$00,$04,$0C ; 01247 +.byte $01,$35,$86,$9F,$65,$01,$06,$0D,$0D ; 01248 +.byte $01,$00,$07,$0E,$0E,$0E ; 01249 +.byte $01,$00,$07,$0F,$0F,$0F ; 01250 +.byte $01,$00,$07,$0E,$0E,$0E ; 01251 +.byte $14,$00,$04,$0C ; 01271 +.byte $01,$30,$18,$02,$00 ; 01272 +.byte $01,$00,$04,$0D ; 01273 +.byte $01,$00,$04,$0E ; 01274 +.byte $01,$00,$04,$0D ; 01275 +.byte $14,$00,$07,$0C,$0C,$0B ; 01295 +.byte $01,$35,$8E,$B2,$DD,$01,$07,$0D,$0D,$0D ; 01296 +.byte $01,$00,$07,$0E,$0E,$0E ; 01297 +.byte $01,$00,$07,$0F,$0F,$0F ; 01298 +.byte $01,$00,$07,$0E,$0E,$0E ; 01299 +.byte $14,$00,$04,$0C ; 01319 +.byte $01,$30,$CB,$02,$00 ; 01320 +.byte $01,$00,$04,$0D ; 01321 +.byte $01,$00,$04,$0E ; 01322 +.byte $01,$00,$04,$0D ; 01323 +.byte $14,$00,$07,$0C,$0C,$0B ; 01343 +.byte $01,$35,$9F,$BD,$DD,$01,$07,$0D,$0D,$0D ; 01344 +.byte $01,$00,$07,$0E,$0E,$0E ; 01345 +.byte $01,$00,$07,$0F,$0F,$0F ; 01346 +.byte $01,$00,$07,$0E,$0E,$0E ; 01347 +.byte $14,$00,$04,$0C ; 01367 +.byte $01,$30,$BB,$03,$00 ; 01368 +.byte $01,$00,$04,$0D ; 01369 +.byte $01,$00,$04,$0E ; 01370 +.byte $01,$00,$04,$0D ; 01371 +.byte $14,$00,$07,$0C,$0C,$0B ; 01391 +.byte $01,$35,$EE,$00,$DD,$01,$06,$00,$0C ; 01392 +.byte $01,$00,$05,$0D,$0D ; 01393 +.byte $01,$00,$05,$0E,$0E ; 01394 +.byte $01,$00,$05,$0D,$0D ; 01395 +.byte $14,$00,$04,$0B ; 01415 +.byte $01,$30,$BB,$03,$04,$0C ; 01416 +.byte $01,$00,$04,$0D ; 01417 +.byte $01,$00,$04,$0E ; 01418 +.byte $01,$00,$04,$0D ; 01419 +.byte $14,$00,$05,$0B,$0B ; 01439 +.byte $01,$3D,$D4,$0C,$01,$65,$01,$07,$0C,$0C,$0C ; 01440 +.byte $01,$00,$07,$0D,$0D,$0D ; 01441 +.byte $01,$00,$07,$0E,$0E,$0E ; 01442 +.byte $01,$00,$07,$0D,$0D,$0D ; 01443 +.byte $14,$00,$04,$0B ; 01463 +.byte $01,$30,$18,$02,$04,$0C ; 01464 +.byte $01,$00,$04,$0D ; 01465 +.byte $01,$00,$04,$0E ; 01466 +.byte $01,$00,$04,$0D ; 01467 +.byte $14,$00,$04,$0B ; 01487 +.byte $01,$30,$65,$01,$04,$0C ; 01488 +.byte $01,$00,$04,$0D ; 01489 +.byte $01,$00,$04,$0E ; 01490 +.byte $01,$00,$04,$0D ; 01491 +.byte $14,$00,$04,$0B ; 01511 +.byte $01,$30,$18,$02,$04,$0C ; 01512 +.byte $01,$00,$04,$0D ; 01513 +.byte $01,$00,$04,$0E ; 01514 +.byte $01,$00,$04,$0D ; 01515 +.byte $14,$00,$04,$0B ; 01535 +.byte $01,$30,$65,$01,$00 ; 01536 +.byte $01,$00,$04,$0C ; 01537 +.byte $01,$00,$04,$0D ; 01538 +.byte $01,$00,$04,$0C ; 01539 +.byte $2C,$00,$03,$0B,$0B ; 01583 +.byte $01,$0C,$00,$00,$02,$00 ; 01584 +.byte $01,$00,$01,$0C ; 01585 +.byte $01,$00,$01,$0D ; 01586 +.byte $01,$00,$01,$0C ; 01587 +.byte $0C,$01,$EE,$01,$0B ; 01599 +.byte $01,$00,$01,$0C ; 01600 +.byte $01,$00,$01,$0D ; 01601 +.byte $01,$00,$01,$0C ; 01602 +.byte $0C,$03,$0C,$01,$01,$0B ; 01614 +.byte $01,$00,$01,$0C ; 01615 +.byte $01,$00,$01,$0D ; 01616 +.byte $01,$00,$01,$0C ; 01617 +.byte $0E,$00,$04,$0A ; 01631 +.byte $01,$13,$EE,$00,$DD,$05,$0B,$0B ; 01632 +.byte $01,$00,$05,$0C,$0C ; 01633 +.byte $01,$00,$05,$0D,$0D ; 01634 +.byte $01,$00,$05,$0C,$0C ; 01635 +.byte $14,$00,$04,$0A ; 01655 +.byte $01,$00,$04,$0B ; 01656 +.byte $01,$00,$04,$0C ; 01657 +.byte $01,$00,$04,$0D ; 01658 +.byte $01,$00,$04,$0C ; 01659 +.byte $14,$00,$05,$0A,$0A ; 01679 +.byte $01,$0C,$3E,$01,$07,$0B,$0B,$0B ; 01680 +.byte $01,$00,$07,$0C,$0C,$0C ; 01681 +.byte $01,$00,$07,$0D,$0D,$0D ; 01682 +.byte $01,$00,$07,$0C,$0C,$0C ; 01683 +.byte $14,$00,$04,$0A ; 01703 +.byte $01,$00,$04,$0B ; 01704 +.byte $01,$00,$04,$0C ; 01705 +.byte $01,$00,$04,$0D ; 01706 +.byte $01,$00,$04,$0C ; 01707 +.byte $14,$00,$07,$0A,$0A,$0A ; 01727 +.byte $01,$07,$3E,$01,$7B,$07,$0B,$0B,$0B ; 01728 +.byte $01,$00,$07,$0C,$0C,$0C ; 01729 +.byte $01,$00,$07,$0D,$0D,$0D ; 01730 +.byte $01,$00,$07,$0C,$0C,$0C ; 01731 +.byte $14,$00,$04,$0A ; 01751 +.byte $01,$00,$04,$0B ; 01752 +.byte $01,$00,$04,$0C ; 01753 +.byte $01,$00,$04,$0D ; 01754 +.byte $01,$00,$04,$0C ; 01755 +.byte $14,$00,$07,$0A,$0A,$0A ; 01775 +.byte $01,$07,$EE,$00,$3E,$07,$0B,$0B,$0B ; 01776 +.byte $01,$00,$07,$0C,$0C,$0C ; 01777 +.byte $01,$00,$07,$0D,$0D,$0D ; 01778 +.byte $01,$00,$07,$0C,$0C,$0C ; 01779 +.byte $14,$00,$04,$0A ; 01799 +.byte $01,$30,$BB,$03,$04,$0B ; 01800 +.byte $01,$00,$04,$0C ; 01801 +.byte $01,$00,$04,$0D ; 01802 +.byte $01,$00,$04,$0C ; 01803 +.byte $14,$00,$07,$0A,$0A,$0A ; 01823 +.byte $01,$35,$D4,$0C,$65,$01,$07,$0B,$0B,$0B ; 01824 +.byte $01,$00,$07,$0C,$0C,$0C ; 01825 +.byte $01,$00,$07,$0D,$0D,$0D ; 01826 +.byte $01,$00,$07,$0C,$0C,$0C ; 01827 +.byte $14,$00,$04,$0A ; 01847 +.byte $01,$30,$18,$02,$04,$0B ; 01848 +.byte $01,$00,$04,$0C ; 01849 +.byte $01,$00,$04,$0D ; 01850 +.byte $01,$00,$04,$0C ; 01851 +.byte $14,$00,$07,$0A,$0A,$0A ; 01871 +.byte $01,$30,$A9,$01,$07,$0B,$0B,$0B ; 01872 +.byte $01,$00,$07,$0C,$0C,$0C ; 01873 +.byte $01,$00,$07,$0D,$0D,$0D ; 01874 +.byte $01,$00,$07,$0C,$0C,$0C ; 01875 +.byte $14,$00,$04,$0A ; 01895 +.byte $01,$10,$7B,$04,$0B ; 01896 +.byte $01,$00,$04,$0C ; 01897 +.byte $01,$00,$04,$0D ; 01898 +.byte $01,$00,$04,$0C ; 01899 +.byte $14,$00,$07,$0A,$0A,$0A ; 01919 +.byte $01,$10,$65,$07,$0B,$0B,$0B ; 01920 +.byte $01,$00,$07,$0C,$0C,$0C ; 01921 +.byte $01,$00,$07,$0D,$0D,$0D ; 01922 +.byte $01,$00,$07,$0C,$0C,$0C ; 01923 +.byte $14,$00,$04,$0A ; 01943 +.byte $01,$10,$A9,$04,$0B ; 01944 +.byte $01,$00,$04,$0C ; 01945 +.byte $01,$00,$04,$0D ; 01946 +.byte $01,$00,$04,$0C ; 01947 +.byte $14,$00,$07,$0A,$0A,$0A ; 01967 +.byte $01,$10,$65,$07,$0B,$0B,$0B ; 01968 +.byte $01,$00,$07,$0C,$0C,$0C ; 01969 +.byte $01,$00,$07,$0D,$0D,$0D ; 01970 +.byte $01,$00,$07,$0C,$0C,$0C ; 01971 +.byte $14,$00,$04,$0A ; 01991 +.byte $01,$10,$3E,$04,$0B ; 01992 +.byte $01,$00,$04,$0C ; 01993 +.byte $01,$00,$04,$0D ; 01994 +.byte $01,$00,$04,$0C ; 01995 +.byte $14,$00,$07,$0A,$0A,$0A ; 02015 +.byte $01,$0D,$5E,$77,$00,$07,$0B,$0B,$0B ; 02016 +.byte $01,$00,$07,$0C,$0C,$0C ; 02017 +.byte $01,$00,$07,$0D,$0D,$0D ; 02018 +.byte $01,$00,$07,$0C,$0C,$0C ; 02019 +.byte $14,$00,$04,$0A ; 02039 +.byte $01,$10,$DD,$04,$0B ; 02040 +.byte $01,$00,$04,$0C ; 02041 +.byte $01,$00,$04,$0D ; 02042 +.byte $01,$00,$04,$0C ; 02043 +.byte $14,$00,$07,$0A,$0A,$0A ; 02063 +.byte $01,$15,$77,$9F,$3E,$07,$0B,$0B,$0B ; 02064 +.byte $01,$00,$07,$0C,$0C,$0C ; 02065 +.byte $01,$00,$07,$0D,$0D,$0D ; 02066 +.byte $01,$00,$07,$0C,$0C,$0C ; 02067 +.byte $14,$00,$04,$0A ; 02087 +.byte $01,$10,$DD,$04,$0B ; 02088 +.byte $01,$00,$04,$0C ; 02089 +.byte $01,$00,$04,$0D ; 02090 +.byte $01,$00,$04,$0C ; 02091 +.byte $14,$00,$07,$0A,$0A,$0A ; 02111 +.byte $01,$15,$59,$77,$3E,$07,$0B,$0B,$0B ; 02112 +.byte $01,$00,$07,$0C,$0C,$0C ; 02113 +.byte $01,$00,$07,$0D,$0D,$0D ; 02114 +.byte $01,$00,$07,$0C,$0C,$0C ; 02115 +.byte $14,$00,$04,$0A ; 02135 +.byte $01,$10,$DD,$04,$0B ; 02136 +.byte $01,$00,$04,$0C ; 02137 +.byte $01,$00,$04,$0D ; 02138 +.byte $01,$00,$04,$0C ; 02139 +.byte $14,$00,$07,$0A,$0A,$0A ; 02159 +.byte $01,$11,$5E,$3E,$07,$0B,$0B,$0B ; 02160 +.byte $01,$00,$07,$0C,$0C,$0C ; 02161 +.byte $01,$00,$07,$0D,$0D,$0D ; 02162 +.byte $01,$00,$07,$0C,$0C,$0C ; 02163 +.byte $14,$00,$04,$0A ; 02183 +.byte $01,$10,$DD,$04,$0B ; 02184 +.byte $01,$00,$04,$0C ; 02185 +.byte $01,$00,$04,$0D ; 02186 +.byte $01,$00,$04,$0C ; 02187 +.byte $14,$00,$07,$0A,$0A,$0A ; 02207 +.byte $01,$15,$6A,$86,$65,$07,$0B,$0B,$0B ; 02208 +.byte $01,$00,$07,$0C,$0C,$0C ; 02209 +.byte $01,$00,$07,$0D,$0D,$0D ; 02210 +.byte $01,$00,$07,$0C,$0C,$0C ; 02211 +.byte $14,$00,$04,$0A ; 02231 +.byte $01,$30,$18,$02,$04,$0B ; 02232 +.byte $01,$00,$04,$0C ; 02233 +.byte $01,$00,$04,$0D ; 02234 +.byte $01,$00,$04,$0C ; 02235 +.byte $14,$00,$04,$0A ; 02255 +.byte $01,$30,$65,$01,$04,$0B ; 02256 +.byte $01,$00,$04,$0C ; 02257 +.byte $01,$00,$04,$0D ; 02258 +.byte $01,$00,$04,$0C ; 02259 +.byte $14,$00,$04,$0A ; 02279 +.byte $01,$30,$18,$02,$04,$0B ; 02280 +.byte $01,$00,$04,$0C ; 02281 +.byte $01,$00,$04,$0D ; 02282 +.byte $01,$00,$04,$0C ; 02283 +.byte $14,$00,$07,$0A,$0A,$0A ; 02303 +.byte $01,$05,$77,$00,$07,$0B,$00,$0B ; 02304 +.byte $01,$00,$05,$0C,$0C ; 02305 +.byte $01,$00,$05,$0D,$0D ; 02306 +.byte $01,$00,$05,$0C,$0C ; 02307 +.byte $0C,$30,$A9,$01,$04,$0B ; 02319 +.byte $01,$00,$04,$0C ; 02320 +.byte $01,$00,$04,$0D ; 02321 +.byte $01,$00,$04,$0C ; 02322 +.byte $0C,$11,$59,$65,$05,$0A,$0A ; 02334 +.byte $01,$00,$05,$0B,$0B ; 02335 +.byte $01,$00,$05,$0C,$0C ; 02336 +.byte $01,$00,$05,$0B,$0B ; 02337 +.byte $0F,$30,$18,$02,$04,$09 ; 02352 +.byte $01,$00,$04,$0A ; 02353 +.byte $01,$00,$04,$0B ; 02354 +.byte $01,$00,$04,$0A ; 02355 +.byte $09,$01,$43,$01,$09 ; 02364 +.byte $01,$00,$01,$0A ; 02365 +.byte $01,$00,$01,$0B ; 02366 +.byte $01,$00,$01,$0A ; 02367 +.byte $20,$00,$05,$08,$08 ; 02399 +.byte $01,$35,$5E,$77,$3E,$01,$07,$0C,$0C,$0C ; 02400 +.byte $01,$00,$07,$0D,$0D,$0D ; 02401 +.byte $01,$00,$07,$0E,$0E,$0E ; 02402 +.byte $01,$00,$07,$0D,$0D,$0D ; 02403 +.byte $14,$00,$04,$0B ; 02423 +.byte $01,$10,$DD,$04,$0C ; 02424 +.byte $01,$00,$04,$0D ; 02425 +.byte $01,$00,$04,$0E ; 02426 +.byte $01,$00,$04,$0D ; 02427 +.byte $14,$00,$07,$0B,$0B,$0B ; 02447 +.byte $01,$05,$77,$9F,$07,$0C,$0C,$0C ; 02448 +.byte $01,$00,$07,$0D,$0D,$0D ; 02449 +.byte $01,$00,$07,$0E,$0E,$0E ; 02450 +.byte $01,$00,$07,$0D,$0D,$0D ; 02451 +.byte $14,$00,$04,$0B ; 02471 +.byte $01,$30,$BB,$03,$04,$0C ; 02472 +.byte $01,$00,$04,$0D ; 02473 +.byte $01,$00,$04,$0E ; 02474 +.byte $01,$00,$04,$0D ; 02475 +.byte $14,$00,$07,$0B,$0B,$0B ; 02495 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0C,$0C,$0C ; 02496 +.byte $01,$00,$07,$0D,$0D,$0D ; 02497 +.byte $01,$00,$07,$0E,$0E,$0E ; 02498 +.byte $01,$00,$07,$0D,$0D,$0D ; 02499 +.byte $14,$00,$04,$0B ; 02519 +.byte $01,$30,$BB,$03,$04,$0C ; 02520 +.byte $01,$00,$04,$0D ; 02521 +.byte $01,$00,$04,$0E ; 02522 +.byte $01,$00,$04,$0D ; 02523 +.byte $14,$00,$07,$0B,$0B,$0B ; 02543 +.byte $01,$35,$77,$00,$DD,$01,$07,$0C,$00,$0C ; 02544 +.byte $01,$00,$05,$0D,$0D ; 02545 +.byte $01,$00,$05,$0E,$0E ; 02546 +.byte $01,$00,$05,$0D,$0D ; 02547 +.byte $0C,$01,$5E,$01,$0C ; 02559 +.byte $01,$00,$01,$0D ; 02560 +.byte $01,$00,$01,$0E ; 02561 +.byte $01,$00,$01,$0D ; 02562 +.byte $05,$00,$04,$0B ; 02567 +.byte $01,$30,$BB,$03,$04,$0C ; 02568 +.byte $01,$00,$04,$0D ; 02569 +.byte $01,$00,$04,$0E ; 02570 +.byte $01,$00,$04,$0D ; 02571 +.byte $03,$01,$4F,$01,$0C ; 02574 +.byte $01,$00,$01,$0D ; 02575 +.byte $01,$00,$01,$0E ; 02576 +.byte $01,$00,$01,$0D ; 02577 +.byte $0E,$00,$04,$0B ; 02591 +.byte $01,$35,$43,$4F,$65,$01,$07,$0C,$0C,$0C ; 02592 +.byte $01,$00,$07,$0D,$0D,$0D ; 02593 +.byte $01,$00,$07,$0E,$0E,$0E ; 02594 +.byte $01,$00,$07,$0D,$0D,$0D ; 02595 +.byte $14,$00,$04,$0B ; 02615 +.byte $01,$30,$18,$02,$04,$0C ; 02616 +.byte $01,$00,$04,$0D ; 02617 +.byte $01,$00,$04,$0E ; 02618 +.byte $01,$00,$04,$0D ; 02619 +.byte $14,$00,$07,$0B,$0B,$0B ; 02639 +.byte $01,$35,$47,$59,$DD,$01,$07,$0C,$0C,$0C ; 02640 +.byte $01,$00,$07,$0D,$0D,$0D ; 02641 +.byte $01,$00,$07,$0E,$0E,$0E ; 02642 +.byte $01,$00,$07,$0D,$0D,$0D ; 02643 +.byte $14,$00,$04,$0B ; 02663 +.byte $01,$30,$CB,$02,$04,$0C ; 02664 +.byte $01,$00,$04,$0D ; 02665 +.byte $01,$00,$04,$0E ; 02666 +.byte $01,$00,$04,$0D ; 02667 +.byte $14,$00,$07,$0B,$0B,$0B ; 02687 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0C,$0C,$0C ; 02688 +.byte $01,$00,$07,$0D,$0D,$0D ; 02689 +.byte $01,$00,$07,$0E,$0E,$0E ; 02690 +.byte $01,$00,$07,$0D,$0D,$0D ; 02691 +.byte $14,$00,$04,$0B ; 02711 +.byte $01,$30,$BB,$03,$04,$0C ; 02712 +.byte $01,$00,$04,$0D ; 02713 +.byte $01,$00,$04,$0E ; 02714 +.byte $01,$00,$04,$0D ; 02715 +.byte $14,$00,$07,$0B,$0B,$0B ; 02735 +.byte $01,$35,$77,$00,$7D,$02,$07,$0C,$00,$0C ; 02736 +.byte $01,$00,$05,$0D,$0D ; 02737 +.byte $01,$00,$05,$0E,$0E ; 02738 +.byte $01,$00,$05,$0D,$0D ; 02739 +.byte $0C,$01,$5E,$01,$0C ; 02751 +.byte $01,$00,$01,$0D ; 02752 +.byte $01,$00,$01,$0E ; 02753 +.byte $01,$00,$01,$0D ; 02754 +.byte $05,$00,$04,$0B ; 02759 +.byte $01,$30,$BB,$03,$04,$0C ; 02760 +.byte $01,$00,$04,$0D ; 02761 +.byte $01,$00,$04,$0E ; 02762 +.byte $01,$00,$04,$0D ; 02763 +.byte $03,$01,$4F,$01,$0C ; 02766 +.byte $01,$00,$01,$0D ; 02767 +.byte $01,$00,$01,$0E ; 02768 +.byte $01,$00,$01,$0D ; 02769 +.byte $0E,$00,$04,$0B ; 02783 +.byte $01,$35,$43,$4F,$65,$01,$07,$0C,$0C,$0C ; 02784 +.byte $01,$00,$07,$0D,$0D,$0D ; 02785 +.byte $01,$00,$07,$0E,$0E,$0E ; 02786 +.byte $01,$00,$07,$0D,$0D,$0D ; 02787 +.byte $14,$00,$04,$0B ; 02807 +.byte $01,$30,$18,$02,$04,$0C ; 02808 +.byte $01,$00,$04,$0D ; 02809 +.byte $01,$00,$04,$0E ; 02810 +.byte $01,$00,$04,$0D ; 02811 +.byte $14,$00,$07,$0B,$0B,$0B ; 02831 +.byte $01,$35,$47,$59,$DD,$01,$07,$0C,$0C,$0C ; 02832 +.byte $01,$00,$07,$0D,$0D,$0D ; 02833 +.byte $01,$00,$07,$0E,$0E,$0E ; 02834 +.byte $01,$00,$07,$0D,$0D,$0D ; 02835 +.byte $14,$00,$04,$0B ; 02855 +.byte $01,$30,$CB,$02,$04,$0C ; 02856 +.byte $01,$00,$04,$0D ; 02857 +.byte $01,$00,$04,$0E ; 02858 +.byte $01,$00,$04,$0D ; 02859 +.byte $14,$00,$07,$0B,$0B,$0B ; 02879 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0C,$0C,$0C ; 02880 +.byte $01,$00,$07,$0D,$0D,$0D ; 02881 +.byte $01,$00,$07,$0E,$0E,$0E ; 02882 +.byte $01,$00,$07,$0D,$0D,$0D ; 02883 +.byte $14,$00,$04,$0B ; 02903 +.byte $01,$30,$BB,$03,$04,$0C ; 02904 +.byte $01,$00,$04,$0D ; 02905 +.byte $01,$00,$04,$0E ; 02906 +.byte $01,$00,$04,$0D ; 02907 +.byte $14,$00,$07,$0B,$0B,$0B ; 02927 +.byte $01,$35,$77,$00,$DD,$01,$07,$0C,$00,$0C ; 02928 +.byte $01,$00,$05,$0D,$0D ; 02929 +.byte $01,$00,$05,$0E,$0E ; 02930 +.byte $01,$00,$05,$0D,$0D ; 02931 +.byte $14,$00,$04,$0B ; 02951 +.byte $01,$30,$BB,$03,$04,$0C ; 02952 +.byte $01,$00,$04,$0D ; 02953 +.byte $01,$00,$04,$0E ; 02954 +.byte $01,$00,$04,$0D ; 02955 +.byte $14,$00,$05,$0B,$0B ; 02975 +.byte $01,$35,$6A,$86,$65,$01,$07,$0C,$0C,$0C ; 02976 +.byte $01,$00,$07,$0D,$0D,$0D ; 02977 +.byte $01,$00,$07,$0E,$0E,$0E ; 02978 +.byte $01,$00,$07,$0D,$0D,$0D ; 02979 +.byte $14,$00,$04,$0B ; 02999 +.byte $01,$30,$18,$02,$04,$0C ; 03000 +.byte $01,$00,$04,$0D ; 03001 +.byte $01,$00,$04,$0E ; 03002 +.byte $01,$00,$04,$0D ; 03003 +.byte $14,$00,$07,$0B,$0B,$0B ; 03023 +.byte $01,$35,$59,$6A,$65,$01,$07,$0C,$0C,$0C ; 03024 +.byte $01,$00,$07,$0D,$0D,$0D ; 03025 +.byte $01,$00,$07,$0E,$0E,$0E ; 03026 +.byte $01,$00,$07,$0D,$0D,$0D ; 03027 +.byte $14,$00,$04,$0B ; 03047 +.byte $01,$30,$18,$02,$04,$0C ; 03048 +.byte $01,$00,$04,$0D ; 03049 +.byte $01,$00,$04,$0E ; 03050 +.byte $01,$00,$04,$0D ; 03051 +.byte $14,$00,$07,$0B,$0B,$0B ; 03071 +.byte $01,$35,$43,$59,$65,$01,$07,$0D,$0D,$0D ; 03072 +.byte $01,$00,$07,$0E,$0E,$0E ; 03073 +.byte $01,$00,$07,$0F,$0F,$0F ; 03074 +.byte $01,$00,$07,$0E,$0E,$0E ; 03075 +.byte $14,$00,$04,$0C ; 03095 +.byte $01,$30,$18,$02,$04,$0D ; 03096 +.byte $01,$00,$04,$0E ; 03097 +.byte $01,$00,$04,$0F ; 03098 +.byte $01,$00,$04,$0E ; 03099 +.byte $14,$00,$07,$0C,$0C,$0C ; 03119 +.byte $01,$35,$35,$43,$65,$01,$07,$0D,$0D,$0D ; 03120 +.byte $01,$00,$07,$0E,$0E,$0E ; 03121 +.byte $01,$00,$07,$0F,$0F,$0F ; 03122 +.byte $01,$00,$07,$0E,$0E,$0E ; 03123 +.byte $14,$00,$04,$0C ; 03143 +.byte $01,$00,$04,$0D ; 03144 +.byte $01,$00,$04,$0E ; 03145 +.byte $01,$00,$04,$0F ; 03146 +.byte $01,$00,$04,$0E ; 03147 +.byte $14,$00,$07,$0C,$0C,$0C ; 03167 +.byte $01,$15,$5E,$77,$3E,$07,$0D,$0D,$0D ; 03168 +.byte $01,$00,$07,$0E,$0E,$0E ; 03169 +.byte $01,$00,$07,$0F,$0F,$0F ; 03170 +.byte $01,$00,$07,$0E,$0E,$0E ; 03171 +.byte $14,$00,$04,$0C ; 03191 +.byte $01,$10,$DD,$04,$0D ; 03192 +.byte $01,$00,$04,$0E ; 03193 +.byte $01,$00,$04,$0F ; 03194 +.byte $01,$00,$04,$0E ; 03195 +.byte $14,$00,$07,$0C,$0C,$0C ; 03215 +.byte $01,$05,$77,$9F,$07,$0D,$0D,$0D ; 03216 +.byte $01,$00,$07,$0E,$0E,$0E ; 03217 +.byte $01,$00,$07,$0F,$0F,$0F ; 03218 +.byte $01,$00,$07,$0E,$0E,$0E ; 03219 +.byte $14,$00,$04,$0C ; 03239 +.byte $01,$30,$BB,$03,$04,$0D ; 03240 +.byte $01,$00,$04,$0E ; 03241 +.byte $01,$00,$04,$0F ; 03242 +.byte $01,$00,$04,$0E ; 03243 +.byte $14,$00,$07,$0C,$0C,$0C ; 03263 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0D,$0D,$0D ; 03264 +.byte $01,$00,$07,$0E,$0E,$0E ; 03265 +.byte $01,$00,$07,$0F,$0F,$0F ; 03266 +.byte $01,$00,$07,$0E,$0E,$0E ; 03267 +.byte $14,$00,$04,$0C ; 03287 +.byte $01,$30,$BB,$03,$04,$0D ; 03288 +.byte $01,$00,$04,$0E ; 03289 +.byte $01,$00,$04,$0F ; 03290 +.byte $01,$00,$04,$0E ; 03291 +.byte $14,$00,$07,$0C,$0C,$0C ; 03311 +.byte $01,$35,$77,$00,$DD,$01,$07,$0D,$00,$0D ; 03312 +.byte $01,$00,$05,$0E,$0E ; 03313 +.byte $01,$00,$05,$0F,$0F ; 03314 +.byte $01,$00,$05,$0E,$0E ; 03315 +.byte $0C,$01,$5E,$01,$0D ; 03327 +.byte $01,$00,$01,$0E ; 03328 +.byte $01,$00,$01,$0F ; 03329 +.byte $01,$00,$01,$0E ; 03330 +.byte $05,$00,$04,$0C ; 03335 +.byte $01,$30,$BB,$03,$04,$0D ; 03336 +.byte $01,$00,$04,$0E ; 03337 +.byte $01,$00,$04,$0F ; 03338 +.byte $01,$00,$04,$0E ; 03339 +.byte $03,$01,$3B,$01,$0D ; 03342 +.byte $01,$00,$01,$0E ; 03343 +.byte $01,$00,$01,$0F ; 03344 +.byte $01,$00,$01,$0E ; 03345 +.byte $0E,$00,$04,$0C ; 03359 +.byte $01,$35,$43,$4F,$65,$01,$07,$0D,$0D,$0D ; 03360 +.byte $01,$00,$07,$0E,$0E,$0E ; 03361 +.byte $01,$00,$07,$0F,$0F,$0F ; 03362 +.byte $01,$00,$07,$0E,$0E,$0E ; 03363 +.byte $14,$00,$04,$0C ; 03383 +.byte $01,$30,$18,$02,$04,$0D ; 03384 +.byte $01,$00,$04,$0E ; 03385 +.byte $01,$00,$04,$0F ; 03386 +.byte $01,$00,$04,$0E ; 03387 +.byte $14,$00,$07,$0C,$0C,$0C ; 03407 +.byte $01,$35,$47,$59,$DD,$01,$07,$0D,$0D,$0D ; 03408 +.byte $01,$00,$07,$0E,$0E,$0E ; 03409 +.byte $01,$00,$07,$0F,$0F,$0F ; 03410 +.byte $01,$00,$07,$0E,$0E,$0E ; 03411 +.byte $14,$00,$04,$0C ; 03431 +.byte $01,$30,$CB,$02,$04,$0D ; 03432 +.byte $01,$00,$04,$0E ; 03433 +.byte $01,$00,$04,$0F ; 03434 +.byte $01,$00,$04,$0E ; 03435 +.byte $14,$00,$07,$0C,$0C,$0C ; 03455 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0D,$0D,$0D ; 03456 +.byte $01,$00,$07,$0E,$0E,$0E ; 03457 +.byte $01,$00,$07,$0F,$0F,$0F ; 03458 +.byte $01,$00,$07,$0E,$0E,$0E ; 03459 +.byte $14,$00,$04,$0C ; 03479 +.byte $01,$30,$BB,$03,$04,$0D ; 03480 +.byte $01,$00,$04,$0E ; 03481 +.byte $01,$00,$04,$0F ; 03482 +.byte $01,$00,$04,$0E ; 03483 +.byte $14,$00,$07,$0C,$0C,$0C ; 03503 +.byte $01,$35,$77,$00,$DD,$01,$07,$0D,$00,$0D ; 03504 +.byte $01,$00,$05,$0E,$0E ; 03505 +.byte $01,$00,$05,$0F,$0F ; 03506 +.byte $01,$00,$05,$0E,$0E ; 03507 +.byte $0C,$01,$5E,$01,$0D ; 03519 +.byte $01,$00,$01,$0E ; 03520 +.byte $01,$00,$01,$0F ; 03521 +.byte $01,$00,$01,$0E ; 03522 +.byte $05,$00,$04,$0C ; 03527 +.byte $01,$30,$BB,$03,$04,$0D ; 03528 +.byte $01,$00,$04,$0E ; 03529 +.byte $01,$00,$04,$0F ; 03530 +.byte $01,$00,$04,$0E ; 03531 +.byte $03,$01,$3B,$01,$0D ; 03534 +.byte $01,$00,$01,$0E ; 03535 +.byte $01,$00,$01,$0F ; 03536 +.byte $01,$00,$01,$0E ; 03537 +.byte $0E,$00,$04,$0C ; 03551 +.byte $01,$35,$43,$4F,$65,$01,$07,$0D,$0D,$0D ; 03552 +.byte $01,$00,$07,$0E,$0E,$0E ; 03553 +.byte $01,$00,$07,$0F,$0F,$0F ; 03554 +.byte $01,$00,$07,$0E,$0E,$0E ; 03555 +.byte $14,$00,$04,$0C ; 03575 +.byte $01,$30,$18,$02,$04,$0D ; 03576 +.byte $01,$00,$04,$0E ; 03577 +.byte $01,$00,$04,$0F ; 03578 +.byte $01,$00,$04,$0E ; 03579 +.byte $14,$00,$07,$0C,$0C,$0C ; 03599 +.byte $01,$35,$47,$59,$DD,$01,$07,$0D,$0D,$0D ; 03600 +.byte $01,$00,$07,$0E,$0E,$0E ; 03601 +.byte $01,$00,$07,$0F,$0F,$0F ; 03602 +.byte $01,$00,$07,$0E,$0E,$0E ; 03603 +.byte $14,$00,$04,$0C ; 03623 +.byte $01,$30,$CB,$02,$04,$0D ; 03624 +.byte $01,$00,$04,$0E ; 03625 +.byte $01,$00,$04,$0F ; 03626 +.byte $01,$00,$04,$0E ; 03627 +.byte $14,$00,$07,$0C,$0C,$0C ; 03647 +.byte $01,$35,$4F,$5E,$DD,$01,$07,$0D,$0D,$0D ; 03648 +.byte $01,$00,$07,$0E,$0E,$0E ; 03649 +.byte $01,$00,$07,$0F,$0F,$0F ; 03650 +.byte $01,$00,$07,$0E,$0E,$0E ; 03651 +.byte $14,$00,$04,$0C ; 03671 +.byte $01,$30,$BB,$03,$04,$0D ; 03672 +.byte $01,$00,$04,$0E ; 03673 +.byte $01,$00,$04,$0F ; 03674 +.byte $01,$00,$04,$0E ; 03675 +.byte $14,$00,$07,$0C,$0C,$0C ; 03695 +.byte $01,$35,$77,$00,$DD,$01,$07,$0D,$00,$0D ; 03696 +.byte $01,$00,$05,$0E,$0E ; 03697 +.byte $01,$00,$05,$0F,$0F ; 03698 +.byte $01,$00,$05,$0E,$0E ; 03699 +.byte $14,$00,$04,$0C ; 03719 +.byte $01,$30,$BB,$03,$04,$0D ; 03720 +.byte $01,$00,$04,$0E ; 03721 +.byte $01,$00,$04,$0F ; 03722 +.byte $01,$00,$04,$0E ; 03723 +.byte $14,$00,$05,$0C,$0C ; 03743 +.byte $01,$35,$4F,$6A,$3E,$01,$02,$0C ; 03744 +.byte $01,$00,$07,$0D,$0D,$0D ; 03745 +.byte $01,$00,$07,$0E,$0E,$0E ; 03746 +.byte $01,$00,$07,$0D,$0D,$0D ; 03747 +.byte $14,$00,$04,$0B ; 03767 +.byte $01,$30,$18,$02,$04,$0C ; 03768 +.byte $01,$00,$04,$0D ; 03769 +.byte $01,$00,$04,$0E ; 03770 +.byte $01,$00,$04,$0D ; 03771 +.byte $14,$00,$04,$0B ; 03791 +.byte $01,$30,$A9,$01,$04,$0C ; 03792 +.byte $01,$00,$04,$0D ; 03793 +.byte $01,$00,$04,$0E ; 03794 +.byte $01,$00,$04,$0D ; 03795 +.byte $14,$00,$04,$0B ; 03815 +.byte $01,$30,$18,$02,$04,$0C ; 03816 +.byte $01,$00,$04,$0D ; 03817 +.byte $01,$00,$04,$0E ; 03818 +.byte $01,$00,$04,$0D ; 03819 +.byte $14,$00,$04,$0B ; 03839 +.byte $01,$30,$3E,$01,$04,$0C ; 03840 +.byte $01,$00,$04,$0D ; 03841 +.byte $01,$00,$04,$0E ; 03842 +.byte $01,$00,$04,$0D ; 03843 +.byte $2C,$00,$04,$0B ; 03887 +.byte $01,$10,$65,$04,$0C ; 03888 +.byte $01,$00,$04,$0D ; 03889 +.byte $01,$00,$04,$0E ; 03890 +.byte $01,$00,$04,$0D ; 03891 +.byte $2C,$00,$07,$0B,$0B,$0B ; 03935 +.byte $01,$15,$9F,$BD,$3E,$07,$0C,$0C,$0C ; 03936 +.byte $01,$00,$07,$0D,$0D,$0D ; 03937 +.byte $01,$00,$07,$0E,$0E,$0E ; 03938 +.byte $01,$00,$07,$0D,$0D,$0D ; 03939 +.byte $14,$00,$04,$0B ; 03959 +.byte $01,$10,$DD,$04,$0C ; 03960 +.byte $01,$00,$04,$0D ; 03961 +.byte $01,$00,$04,$0E ; 03962 +.byte $01,$00,$04,$0D ; 03963 +.byte $02,$00,$04,$0B ; 03965 +.byte $01,$10,$7B,$04,$0C ; 03966 +.byte $01,$00,$04,$0D ; 03967 +.byte $01,$00,$04,$0E ; 03968 +.byte $01,$00,$04,$0D ; 03969 +.byte $02,$00,$04,$0B ; 03971 +.byte $01,$10,$3E,$04,$0C ; 03972 +.byte $01,$00,$04,$0D ; 03973 +.byte $01,$00,$04,$0E ; 03974 +.byte $01,$00,$04,$0D ; 03975 +.byte $02,$00,$04,$0B ; 03977 +.byte $01,$30,$EE,$00,$00 ; 03978 +.byte $01,$00,$04,$0C ; 03979 +.byte $01,$00,$04,$0D ; 03980 +.byte $01,$00,$04,$0C ; 03981 +.byte $02,$00,$07,$0B,$0B,$0A ; 03983 +.byte $01,$15,$BD,$00,$00,$06,$00,$00 ; 03984 +.byte $01,$00,$01,$0C ; 03985 +.byte $01,$00,$01,$0D ; 03986 +.byte $01,$00,$01,$0C ; 03987 +.byte $02,$00,$01,$0A ; 03989 +.byte $01,$01,$9F,$01,$0B ; 03990 +.byte $01,$00,$01,$0C ; 03991 +.byte $01,$00,$01,$0D ; 03992 +.byte $01,$00,$01,$0C ; 03993 +.byte $02,$00,$01,$0A ; 03995 +.byte $01,$01,$77,$00 ; 03996 +.byte $01,$00,$01,$0B ; 03997 +.byte $01,$00,$01,$0C ; 03998 +.byte $01,$00,$01,$0B ; 03999 +.byte $02,$00,$01,$09 ; 04001 +.byte $01,$01,$5E,$01,$0A ; 04002 +.byte $01,$00,$01,$0B ; 04003 +.byte $01,$00,$01,$0C ; 04004 +.byte $01,$00,$01,$0B ; 04005 +.byte $02,$00,$01,$09 ; 04007 +.byte $01,$01,$4F,$01,$0A ; 04008 +.byte $01,$00,$01,$0B ; 04009 +.byte $01,$00,$01,$0C ; 04010 +.byte $01,$00,$01,$0B ; 04011 +.byte $02,$00,$01,$09 ; 04013 +.byte $01,$01,$77,$00 ; 04014 +.byte $01,$00,$01,$0A ; 04015 +.byte $01,$00,$01,$0B ; 04016 +.byte $01,$00,$01,$0A ; 04017 +.byte $02,$00,$01,$08 ; 04019 +.byte $01,$01,$5E,$01,$09 ; 04020 +.byte $01,$00,$01,$0A ; 04021 +.byte $01,$00,$01,$0B ; 04022 +.byte $01,$00,$01,$0A ; 04023 +.byte $02,$00,$01,$08 ; 04025 +.byte $01,$01,$4F,$01,$09 ; 04026 +.byte $01,$00,$01,$0A ; 04027 +.byte $01,$00,$01,$0B ; 04028 +.byte $01,$00,$01,$0A ; 04029 +.byte $02,$00,$01,$08 ; 04031 +.byte $01,$01,$1D,$00 ; 04032 +.byte $01,$00,$01,$09 ; 04033 +.byte $01,$00,$01,$0A ; 04034 +.byte $01,$00,$01,$09 ; 04035 +.byte $08,$00,$01,$08 ; 04043 +.byte $01,$01,$00,$01,$00 ; 04044 +; Raw size = 57792 bytes +; Updated size = 4800 bytes diff --git a/mockingboard/ksp_theme_compressed.s b/mockingboard/ksp_theme_compressed.s new file mode 100644 index 00000000..853ba0e2 --- /dev/null +++ b/mockingboard/ksp_theme_compressed.s @@ -0,0 +1,163 @@ +; Play the KSP theme, but compressed a bit (only write registers that change) +; Still 3-channel +; The KSP theme is fairly small, will need to compress more + +.include "zp.inc" + + ;============================= + ; Print message + ;============================= + jsr HOME + jsr TEXT + + lda #0 + sta DRAW_PAGE + sta CH + sta CV + lda #mocking_message + sta OUTH + jsr move_and_print + + ;============================ + ; Init the Mockingboard + ;============================ + + jsr mockingboard_init + jsr reset_ay_left + jsr reset_ay_right + jsr clear_ay_left + jsr clear_ay_right + + + ;=========================== + ; load pointer to the music + ;=========================== + + lda #ksptheme + sta INH + + ldy #0 +new_frame: + lda (INL),Y ; read in frame delay + cmp #$ff ; see if end + beq done_play ; if so, done + + tax +old_frame: + dex ; decrement the frame diff + bpl delay_a_bit ; if not there yet, delay + +top_regs: + iny + lda (INL),Y ; load low reg bitmask + ldx #$ff +top_regs_loop: + inx + cmp #$8 + beq bottom_regs + ror + bcc top_regs_loop + + stx XX + sty YY + + iny + lda (INL),Y ; read in value + tax + + ldy XX + + ; reg in Y, value in X + jsr write_ay_left ; assume 3 channel (not six) + jsr write_ay_right ; so write same to both left/write + + ldx XX + ldy YY + + jmp top_regs_loop + +bottom_regs: + iny + lda (INL),Y ; load low reg bitmask + ldx #$ff +bottom_regs_loop: + inx + cmp #$8 + beq delay_a_bit + ror + bcc bottom_regs_loop + + + stx XX + sty YY + + iny + lda (INL),Y ; read in value + tax + + ldy XX + + ; reg in Y, value in X + jsr write_ay_left ; assume 3 channel (not six) + jsr write_ay_right ; so write same to both left/write + + ldx XX + ldy YY + + jmp bottom_regs_loop + + ; reg in Y, value in X + jsr write_ay_left ; assume 3 channel (not six) + jsr write_ay_right ; so write same to both left/write + +delay_a_bit: + + lda #86 + jsr WAIT ; delay 1/2(26+27A+5A^2) us + ; 50Hz = 20ms = 20000us + ; 40000 = 26+27A+5A^2 + ; 5a^2+27a-39974 = 0 + ; A = 86.75 + + jmp old_frame +done_play: + + jsr clear_ay_left + jsr clear_ay_right + + + lda #0 + sta CH + lda #2 + sta CV + lda #done_message + sta OUTH + jsr move_and_print + + +forever_loop: + jmp forever_loop + +;========= +;routines +;========= +.include "../asm_routines/gr_offsets.s" +.include "../asm_routines/text_print.s" +.include "../asm_routines/mockingboard.s" + +;======= +; music +;======= +.include "ksp_theme_compressed.inc" + +;========= +; strings +;========= +mocking_message: .asciiz "ASSUMING MOCKINGBOARD IN SLOT #4" +done_message: .asciiz "DONE PLAYING" diff --git a/mockingboard/ksptheme_uncompressed.inc b/mockingboard/ksptheme_uncompressed.inc index f1f97677..0f3406ab 100644 --- a/mockingboard/ksptheme_uncompressed.inc +++ b/mockingboard/ksptheme_uncompressed.inc @@ -1,3 +1,4 @@ +;Created with ym5_to_mockingboard ;Dumping song ../songs/kerbal.ym5 ; YM5 Song attributes (1) : Interleaved=yes ; Frames: 1824, Chip clock: 1000000 Hz, Frame rate: 50 Hz, Length=0:36 diff --git a/mockingboard/zp.inc b/mockingboard/zp.inc index 60d37269..56cf2e1d 100644 --- a/mockingboard/zp.inc +++ b/mockingboard/zp.inc @@ -100,6 +100,7 @@ KEY_OFFSET EQU $8D DRAW_BLUE_SKY EQU $8E RANDOM_POINTER EQU $8F FRAME_COUNT EQU $90 +AY_FRAME EQU $91 SHIPY EQU $E4