Last active
January 25, 2026 20:34
-
-
Save s-macke/595982d46d6699b69e1f0e051e7bd451 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ; This is an example of what coding agents can do as of Jan 2026. | |
| ; Given a disassembled SID music file, a coding agent can reproduce the music pretty well. | |
| ; Original music: https://youtu.be/84hIKDUIpsM?si=QCnMztPuYnW-no1Y&t=16 | |
| ; Notes: | |
| ; The assembly code copies memory around and self-modifies while running. | |
| ; Also, there is no 1:1 mapping from a synthesizer to a MIDI file. | |
| ; The SID synthesizer chip is far more capable than standard MIDI. | |
| ; Coding Agent used: Codex-CLI with GPT-5.2-Codex model. | |
| ; | |
| ; Initial prompt: | |
| ; "The file Nippon.asm is a disassembly of a so-called SID file, | |
| ; a music format which requires a C64 architecture to run and emulates a 6581 | |
| ; SID synthesizer chip. This file plays exactly one tune with three voices. | |
| ; Analyze the disassembly, extract the music data, and write a Python script to | |
| ; produce an equivalent MIDI file for that music. The file Nippon_origin_0xB8F8.bin | |
| ; contains the binary equivalent of the disassembly. Use that to extract the music." | |
| ; | |
| ; Time to first result: 20 minutes. | |
| ; | |
| ; Second prompt: "Reevaluate your assignment and check everything." | |
| ; Another 7 minutes. | |
| ; 76% context left. | |
| ; | |
| ; Third prompt: | |
| ; "Change the Python file so that it produces a .wav file. | |
| ; You can now try to fully reproduce the capabilities of the synthesizer chip." | |
| ; | |
| ; Another 10 minutes. | |
| ; 69% context left. | |
| ; | |
| ; ============================================================ | |
| ; AUTO-GENERATED FILE - DO NOT EDIT | |
| ; ============================================================ | |
| ; Generated: 2026-01-25T19:50:31Z | |
| ; Source: testdata/Nippon.sid | |
| ; ============================================================ | |
| .ORG $B8F8 | |
| ; === DATA SECTION === | |
| $B8F8 .BYTE $02,$00,$00,$00,$00,$00,$00,$00 ; "........" | |
| $B900 .BYTE $00,$00,$00,$00,$00,$0F,$00,$0F,$00,$00,$00,$00,$00,$0F,$00,$0F ; "................" | |
| $B910 .BYTE $00,$00,$00,$00,$00,$0F,$00,$0F,$00,$1E,$50,$31,$31,$81,$81,$81 ; "..........P11..." | |
| $B920 .BYTE $81,$81,$81,$81,$81,$13,$13,$02,$0A,$FF,$04,$08,$02,$0F,$0B,$89 ; "................" | |
| $B930 .BYTE $00,$0F,$0C,$2B,$00,$07,$00,$00,$00,$0F,$00,$00,$00,$00,$00,$00 ; "...+............" | |
| $B940 .BYTE $00,$00,$00,$00,$00,$06,$08,$06,$0A,$0A,$08,$06,$44,$CA,$4A,$9A ; "............D.J." | |
| $B950 .BYTE $5B,$0F,$2C,$0B,$7A,$AE,$0C,$07,$00,$88,$B9,$BC,$00,$07,$00,$00 ; "[.,.z..........." | |
| $B960 .BYTE $00,$8F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$09,$06,$05 ; "................" | |
| $B970 .BYTE $05,$06,$06,$05,$07,$40,$10,$40,$40,$40,$40,$14,$40,$20,$20,$40 ; ".....@.@@@@.@ @" | |
| $B980 .BYTE $00,$20,$40,$40,$00,$40,$00,$00,$00,$40,$00,$00,$00,$00,$00,$00 ; ". @@.@...@......" | |
| $B990 .BYTE $00,$00,$00,$00,$00,$80,$00,$00,$40,$40,$80,$80,$80,$60,$0A,$80 ; "........@@...`.." | |
| $B9A0 .BYTE $40,$00,$80,$0F,$FE,$64,$00,$10,$00,$14,$40,$0A,$00,$01,$00,$00 ; "@....d....@....." | |
| $B9B0 .BYTE $00,$60,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; ".`.............." | |
| $B9C0 .BYTE $80,$80,$00,$00,$80,$10,$00,$40,$40,$40,$60,$47,$C0,$10,$00,$10 ; ".......@@@`G...." | |
| $B9D0 .BYTE $00,$00,$50,$40,$00,$10,$00,$00,$00,$10,$00,$00,$00,$00,$00,$00 ; "..P@............" | |
| $B9E0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$A0,$80,$00,$00,$10,$78,$00,$00 ; ".............x.." | |
| $B9F0 .BYTE $00,$00,$00,$00,$00,$C8,$00,$00,$00,$96,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BA00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BA10 .BYTE $00,$00,$00,$00,$00,$01,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00 ; "................" | |
| $BA20 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BA30 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$00,$C0 ; "................" | |
| $BA40 .BYTE $00,$00,$00,$00,$00,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; ".....@.........." | |
| $BA50 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BA60 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$0A,$01,$00,$01,$01,$00,$00 ; "................" | |
| $BA70 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BA80 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$80 ; "................" | |
| $BA90 .BYTE $80,$41,$40,$FF,$60,$9B,$00,$00,$00,$64,$A0,$80,$00,$00,$00,$00 ; ".A@.`....d......" | |
| $BAA0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$00 ; ".............@.." | |
| $BAB0 .BYTE $40,$FF,$00,$80,$80,$05,$02,$04,$02,$01,$01,$02,$01,$01,$00,$00 ; "@..............." | |
| $BAC0 .BYTE $00,$0A,$05,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BAD0 .BYTE $00,$00,$00,$00,$00,$01,$00,$00,$10,$10,$00,$10,$18,$00,$00,$00 ; "................" | |
| $BAE0 .BYTE $00,$00,$00,$00,$00,$00,$00,$05,$00,$00,$02,$00,$00,$02,$00,$00 ; "................" | |
| $BAF0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BB00 .BYTE $00,$00,$00,$00,$00,$40,$14,$20,$00,$C0,$20,$00,$00,$30,$00,$60 ; ".....@. .. ..0.`" | |
| $BB10 .BYTE $00,$18,$FF,$00,$00,$FC,$00,$00,$00,$40,$00,$00,$00,$00,$00,$00 ; ".........@......" | |
| $BB20 .BYTE $00,$00,$00,$00,$00,$32,$00,$00,$40,$00,$FF,$00,$80,$00,$00,$00 ; ".....2..@......." | |
| $BB30 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BB40 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BB50 .BYTE $02,$00,$03,$00,$01,$04,$04,$04,$00,$20,$01,$00,$00,$00,$00,$01 ; "......... ......" | |
| $BB60 .BYTE $00,$00,$00,$00,$00,$01,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BB70 .BYTE $00,$00,$00,$00,$00,$01,$00,$00,$08,$00,$40,$00,$10,$F0,$F0,$80 ; "..........@....." | |
| $BB80 .BYTE $F0,$00,$F0,$F0,$F0,$F0,$00,$F0,$00,$F0,$F0,$00,$00,$00,$00,$00 ; "................" | |
| $BB90 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$F0,$00,$00 ; "................" | |
| $BBA0 .BYTE $FF,$F0,$F0,$F0,$F0,$00,$83,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BBB0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BBC0 .BYTE $00,$00,$00,$00,$00,$C7,$00,$00,$85,$43,$87,$71,$00,$6D,$95,$73 ; ".........C.q.m.s" | |
| $BBD0 .BYTE $95,$88,$95,$A2,$95,$C1,$95,$D4,$95,$FC,$95,$00,$00,$00,$00,$B1 ; "................" | |
| $BBE0 .BYTE $96,$60,$96,$73,$96,$23,$96,$4B,$96,$C6,$96,$D8,$96,$00,$00,$00 ; ".`.s.#.K........" | |
| $BBF0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$03 ; "................" | |
| $BC10 .BYTE $03,$03,$03,$03,$03,$03,$03,$03,$03,$0E,$FF,$00,$09,$FF,$0C,$FF ; "................" | |
| $BC20 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC30 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC40 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC50 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC60 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC70 .BYTE $00,$01,$04,$05,$06,$06,$06,$01,$04,$05,$06,$06,$06,$0F,$FF,$00 ; "................" | |
| $BC80 .BYTE $0A,$FF,$0C,$0C,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BC90 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BCA0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BCB0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BCC0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BCD0 .BYTE $00,$00,$00,$00,$00,$02,$02,$02,$02,$00,$01,$02,$02,$02,$02,$01 ; "................" | |
| $BCE0 .BYTE $06,$0F,$FF,$00,$0B,$FF,$0D,$0D,$FF,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BCF0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BD00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BD10 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BD20 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BD30 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$03,$00,$00 ; "................" | |
| $BD40 .BYTE $00,$03,$03,$03,$00,$00,$00,$00,$14,$00,$05,$05,$05,$08,$08,$08 ; "................" | |
| $BD50 .BYTE $08,$24,$24,$24,$24,$24,$24,$00,$00,$00,$02,$00,$02,$02,$02,$02 ; ".$$$$$$........." | |
| $BD60 .BYTE $02,$02,$02,$02,$02,$02,$00,$00,$00,$00,$00,$08,$08,$08,$08,$02 ; "................" | |
| $BD70 .BYTE $02,$02,$02,$02,$02,$05,$02,$02,$02,$02,$02,$02,$02,$02,$02,$00 ; "................" | |
| $BD80 .BYTE $00,$00,$00,$00,$01,$01,$01,$01,$03,$23,$09,$09,$09,$23,$23,$09 ; ".........#...##." | |
| $BD90 .BYTE $00,$02,$08,$02,$23,$09,$02,$08,$09,$02,$02,$02,$09,$05,$04,$05 ; "....#..........." | |
| $BDA0 .BYTE $06,$06,$06,$07,$04,$05,$06,$06,$06,$05,$06,$00,$14,$05,$06,$06 ; "................" | |
| $BDB0 .BYTE $06,$10,$10,$10,$10,$10,$08,$0E,$24,$0E,$00,$07,$00,$07,$02,$07 ; "........$......." | |
| $BDC0 .BYTE $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$00,$00,$00,$00,$00,$08 ; "................" | |
| $BDD0 .BYTE $08,$08,$08,$02,$02,$02,$02,$05,$02,$02,$02,$02,$02,$02,$02,$02 ; "................" | |
| $BDE0 .BYTE $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$09,$09,$09 ; "................" | |
| $BDF0 .BYTE $09,$09,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23 ; "..##############" | |
| $BE00 .BYTE $23,$05,$05,$03,$03,$01,$05,$07,$05,$03,$03,$01,$01,$06,$01,$01 ; "#..............." | |
| $BE10 .BYTE $14,$05,$00,$00,$00,$08,$0E,$0E,$0E,$26,$26,$26,$26,$08,$00,$00 ; ".........&&&&..." | |
| $BE20 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BE30 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00,$00,$00,$00,$00 ; "................" | |
| $BE40 .BYTE $00,$0A,$00,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$25,$25,$25,$25 ; "............%%%%" | |
| $BE50 .BYTE $25,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "%..............." | |
| $BE60 .BYTE $00,$00,$00,$00,$00,$69,$00,$00,$00,$00,$FF,$CF,$6B,$41,$3F,$70 ; ".....i......kA?p" | |
| $BE70 .BYTE $3D,$6C,$38,$69,$3A,$70,$41,$3F,$6B,$3F,$6C,$3C,$3A,$6F,$38,$FF ; "=l8i:pA?k?l<:o8." | |
| $BE80 .BYTE $CF,$6B,$35,$33,$70,$31,$6C,$2C,$6C,$2E,$31,$6F,$2E,$70,$35,$33 ; ".k53p1l,l.1o.p53" | |
| $BE90 .BYTE $6B,$33,$6C,$30,$2E,$2C,$29,$6A,$2C,$FF,$C0,$F3,$6F,$25,$6C,$00 ; "k3l0.,)j,...o%l." | |
| $BEA0 .BYTE $1D,$70,$22,$6C,$1D,$70,$22,$6C,$1D,$C2,$6F,$1B,$6C,$C0,$00,$1B ; ".p"l.p"l..o.l..." | |
| $BEB0 .BYTE $70,$20,$6C,$1B,$70,$20,$6C,$1B,$FF,$F1,$F3,$6B,$22,$C6,$6F,$25 ; "p l.p l....k".o%" | |
| $BEC0 .BYTE $69,$2E,$69,$27,$6F,$2C,$83,$C8,$6C,$31,$33,$FF,$C0,$69,$00,$6D ; "i.i'o,..l13..i.m" | |
| $BED0 .BYTE $5F,$3A,$FE,$CC,$6C,$38,$CE,$3C,$C0,$6B,$3A,$6D,$35,$00,$38,$3A ; "_:..l8.<.k:m5.8:" | |
| $BEE0 .BYTE $38,$35,$6A,$33,$6C,$00,$6B,$00,$A3,$6D,$2C,$2C,$2C,$2C,$6C,$25 ; "85j3l.k..m,,,,l%" | |
| $BEF0 .BYTE $25,$20,$20,$FF,$C0,$86,$6A,$3D,$6C,$A5,$3D,$86,$3F,$6B,$3D,$6A ; "% ...j=l.=.?k=j" | |
| $BF00 .BYTE $46,$6C,$A5,$3D,$86,$41,$6B,$46,$6A,$41,$6C,$A5,$3D,$86,$3F,$6B ; "Fl.=.AkFjAl.=.?k" | |
| $BF10 .BYTE $3F,$6A,$44,$6C,$A5,$3D,$86,$44,$6B,$3F,$FF,$CF,$70,$3D,$6D,$3A ; "?jDl.=.Dk?..p=m:" | |
| $BF20 .BYTE $38,$70,$3A,$6D,$38,$35,$6B,$33,$C9,$35,$CF,$31,$2E,$6F,$2C,$6C ; "8p:m85k3.5.1.o,l" | |
| $BF30 .BYTE $00,$6D,$29,$2C,$6C,$2E,$30,$33,$35,$38,$3A,$3C,$41,$6F,$3F,$6C ; ".m),l.0358:<Ao?l" | |
| $BF40 .BYTE $3D,$3F,$FF,$C0,$6F,$19,$6C,$00,$22,$69,$1B,$70,$20,$6C,$1B,$70 ; "=?..o.l."i.p l.p" | |
| $BF50 .BYTE $20,$6C,$1B,$C4,$69,$22,$27,$FF,$6B,$00,$69,$C0,$1D,$00,$1B,$00 ; " l..i"'.k.i....." | |
| $BF60 .BYTE $19,$00,$16,$6A,$85,$00,$6B,$31,$C9,$33,$FF,$6B,$00,$C0,$69,$29 ; "...j..k1.3.k..i)" | |
| $BF70 .BYTE $CF,$6D,$35,$38,$3A,$3D,$3F,$6C,$41,$6D,$3F,$69,$41,$6C,$35,$38 ; ".m58:=?lAm?iAl58" | |
| $BF80 .BYTE $3A,$3D,$41,$70,$3F,$6B,$3F,$3F,$6A,$00,$85,$6D,$41,$71,$3D,$6D ; ":=Ap?k??j..mAq=m" | |
| $BF90 .BYTE $3F,$71,$3A,$6D,$3D,$71,$38,$6D,$3A,$71,$35,$6D,$38,$71,$33,$6B ; "?q:m=q8m:q5m8q3k" | |
| $BFA0 .BYTE $35,$6A,$3A,$3A,$3A,$6B,$3D,$3F,$FF,$6B,$00,$69,$C0,$1D,$00,$1B ; "5j:::k=?.k.i...." | |
| $BFB0 .BYTE $80,$00,$19,$00,$16,$70,$16,$6C,$11,$70,$16,$6C,$11,$FF,$69,$1D ; ".....p.l.p.l..i." | |
| $BFC0 .BYTE $22,$6F,$1B,$C7,$6B,$1D,$C0,$70,$22,$6C,$1D,$70,$22,$6C,$1D,$FF ; ""o..k..p"l.p"l.." | |
| $BFD0 .BYTE $71,$35,$6D,$38,$33,$35,$31,$33,$2E,$31,$2C,$2E,$29,$2C,$71,$27 ; "q5m83513.1,.),q'" | |
| $BFE0 .BYTE $6D,$29,$F2,$6B,$2E,$69,$C9,$F3,$22,$C0,$6A,$00,$70,$00,$A4,$6D ; "m).k.i..".j.p..m" | |
| $BFF0 .BYTE $31,$31,$31,$31,$6C,$2C,$2C,$25,$25,$FF,$00,$00,$00,$00,$00,$00 ; "1111l,,%%......." | |
| ; === SUBROUTINE: ENTRY_C000 === | |
| $C000 ENTRY_C000: JSR SUB_C033 | |
| LDA #$F8 | |
| STA $FB | |
| LDA #$B8 | |
| STA $FC | |
| LDY #$00 | |
| STY $FD | |
| LDA #$90 | |
| STA $FE | |
| LDX #$07 | |
| JSR SUB_C040 | |
| JSR L_C02B | |
| JMP L_C0B7 | |
| ; === DATA SECTION === | |
| $C01E .BYTE $8D,$18 ; ".." | |
| $C020 .BYTE $03,$A9,$FE,$8D,$19,$03,$58,$20,$D9,$C1,$60 ; "......X ..`" | |
| ; === SUBROUTINE: SUB_C02B === | |
| $C02B L_C02B: NOP | |
| LDA $01 | |
| ORA #$07 | |
| STA $01 | |
| RTS | |
| ; === SUBROUTINE: SUB_C033 === | |
| $C033 SUB_C033: NOP | |
| LDA $01 | |
| ORA #$05 | |
| AND #$FD | |
| STA $01 | |
| RTS | |
| ; === DATA SECTION === | |
| $C03D .BYTE $20,$81,$C0 ; " .." | |
| ; === SUBROUTINE: SUB_C040 === | |
| $C040 SUB_C040: LDA ($FB),Y | |
| STA ($FD),Y | |
| INY | |
| BNE SUB_C040 | |
| INC $FC | |
| INC $FE | |
| DEX | |
| BNE SUB_C040 | |
| $C04E L_C04E: LDA ($FB),Y | |
| STA ($FD),Y | |
| INY | |
| CPY #$02 | |
| BNE L_C04E | |
| RTS | |
| ; === DATA SECTION === | |
| $C058 .BYTE $AB,$C0,$20,$2B,$C0,$58,$60,$20 ; ".. +.X` " | |
| $C060 .BYTE $81,$C0,$20,$33,$C0,$20,$8B,$C0,$20,$E3,$C0,$20,$2B,$C0,$58,$60 ; ".. 3. .. .. +.X`" | |
| $C070 .BYTE $20,$81,$C0,$20,$33,$C0,$20,$8B,$C0,$20,$CC,$C0,$20,$2B,$C0,$58 ; " .. 3. .. .. +.X" | |
| $C080 .BYTE $60,$8D,$95,$C0,$8E,$96,$C0,$8C,$97,$C0,$60,$AD,$95,$C0,$AE,$96 ; "`.........`....." | |
| $C090 .BYTE $C0,$AC,$97,$C0,$60,$00,$00,$00,$AD,$19,$D0,$8D,$19,$D0,$78 ; "....`.........x" | |
| ; === SUBROUTINE: ENTRY_C09F === | |
| $C09F ENTRY_C09F: JSR SUB_C033 | |
| JSR SUB_C16F | |
| JMP L_C02B | |
| ; === DATA SECTION === | |
| $C0A8 .BYTE $4C,$31,$EA ; "L1." | |
| ; === SUBROUTINE: SUB_C0AB === | |
| $C0AB SUB_C0AB: RTS | |
| ; === DATA SECTION === | |
| $C0AC .BYTE $78,$A9,$9E,$8D ; "x..." | |
| $C0B0 .BYTE $14,$03,$A9,$C0,$8D,$15,$03 ; "......." | |
| ; === CODE SECTION === | |
| $C0B7 L_C0B7: LDA #$00 | |
| LDX #$18 | |
| $C0BB L_C0BB: STA $D400,X | |
| DEX | |
| BPL L_C0BB | |
| LDA #$00 | |
| JSR SUB_C0E3 | |
| LDA #$00 | |
| STA $CC09 | |
| RTS | |
| ; === DATA SECTION === | |
| $C0CC .BYTE $29,$07,$8D,$09 ; ")..." | |
| $C0D0 .BYTE $CC,$8A,$29,$07,$8D,$07,$CC,$98,$29,$07,$8D,$08,$CC,$AD,$09,$CC ; "..).....)......." | |
| $C0E0 .BYTE $4C,$E3,$C0 ; "L.." | |
| ; === SUBROUTINE: SUB_C0E3 === | |
| $C0E3 SUB_C0E3: AND #$07 | |
| STA $CBFB | |
| TAX | |
| LDA #$0F | |
| STA $CC3B | |
| LDA #$00 | |
| STA $9001 | |
| STA $9002 | |
| STA $9003 | |
| LDA #$01 | |
| STA $CBDF | |
| STA $CBE0 | |
| STA $CBE1 | |
| LDA #$F0 | |
| STA $CCC7 | |
| LDA #$E9 | |
| STA $C1B0 | |
| STA $C1BE | |
| STA $C1CC | |
| LDA #$CB | |
| STA $C1B1 | |
| STA $C1BF | |
| STA $C1CD | |
| LDA $900D,X | |
| STA $9007 | |
| LDA $9015,X | |
| STA $9008 | |
| LDA $901D,X | |
| STA $9009 | |
| LDA $9025,X | |
| STA $CBFA | |
| AND #$03 | |
| STA $9000 | |
| INC $9000 | |
| LDA #$00 | |
| STA $CC10 | |
| STA $CC11 | |
| STA $CC12 | |
| STA $CC28 | |
| STA $CC2B | |
| STA $CC22 | |
| STA $CC25 | |
| STA $CC29 | |
| STA $CC2C | |
| STA $CC23 | |
| STA $CC26 | |
| STA $CC2A | |
| STA $CC2D | |
| STA $CC24 | |
| STA $CC27 | |
| RTS | |
| ; === SUBROUTINE: SUB_C16F === | |
| $C16F SUB_C16F: NOP | |
| STA $CBEA | |
| STX $CBEB | |
| STY $CBEC | |
| DEC $CBDE | |
| BNE L_C18A | |
| LDA $9000 | |
| STA $CBDE | |
| JSR SUB_C6F0 | |
| JMP L_C1A5 | |
| $C18A L_C18A: LDY #$00 | |
| JSR SUB_C780 | |
| JSR SUB_C713 | |
| LDY #$01 | |
| JSR SUB_C780 | |
| JSR SUB_C713 | |
| LDY #$02 | |
| JSR SUB_C780 | |
| JSR SUB_C713 | |
| JSR SUB_C762 | |
| $C1A5 L_C1A5: LDA $CBEA | |
| LDX $CBEB | |
| LDY $CBEC | |
| RTS | |
| $C1AF L_C1AF: LDA $CBE9 | |
| PHP | |
| INC $C1B0 | |
| BNE L_C1BB | |
| INC $C1B1 | |
| $C1BB L_C1BB: PLP | |
| RTS | |
| $C1BD L_C1BD: LDA $CBE9 | |
| PHP | |
| INC $C1BE | |
| BNE L_C1C9 | |
| INC $C1BF | |
| $C1C9 L_C1C9: PLP | |
| RTS | |
| $C1CB L_C1CB: LDA $CBE9 | |
| PHP | |
| INC $C1CC | |
| BNE L_C1D7 | |
| INC $C1CD | |
| $C1D7 L_C1D7: PLP | |
| RTS | |
| ; === DATA SECTION === | |
| $C1D9 .BYTE $AD,$19,$CC,$8D,$04,$D4,$AD ; "......." | |
| $C1E0 .BYTE $1A,$CC,$8D,$0B,$D4,$AD,$1B,$CC,$8D,$12,$D4,$60 ; "...........`" | |
| ; === SUBROUTINE: SUB_C1EC === | |
| $C1EC SUB_C1EC: CPY #$00 | |
| BEQ L_C1AF | |
| CPY #$01 | |
| BEQ L_C1BD | |
| JMP L_C1CB | |
| ; === SUBROUTINE: SUB_C1F7 === | |
| $C1F7 SUB_C1F7: LDA $9001,Y | |
| BNE L_C20B | |
| $C1FC L_C1FC: JSR SUB_C1EC | |
| BEQ L_C238 | |
| CMP #$FF | |
| BNE L_C208 | |
| JMP L_C3BA | |
| $C208 L_C208: JMP L_C56B | |
| $C20B L_C20B: LDA $CBE2,Y | |
| STA $CBDF,Y | |
| LDA $CC76,Y | |
| BMI L_C21F | |
| LDA $CC0D,Y | |
| ORA $CC19,Y | |
| STA $CCBE,Y | |
| $C21F L_C21F: LDA #$00 | |
| STA $9001,Y | |
| LDA $CC79,Y | |
| STA $CC76,Y | |
| RTS | |
| $C22B L_C22B: TXA | |
| AND #$0F | |
| TAX | |
| LDA $CB8C,X | |
| STA $CBD8,Y | |
| JMP L_C1FC | |
| $C238 L_C238: LDA #$01 | |
| STA $9001,Y | |
| JMP L_C34D | |
| $C240 L_C240: STA $CBD5,Y | |
| JSR SUB_C2AF | |
| LDA #$01 | |
| STA $9001,Y | |
| LDA $CC76,Y | |
| BMI L_C259 | |
| LDA $CC0A,Y | |
| ORA $CC19,Y | |
| STA $CCBE,Y | |
| $C259 L_C259: LDA $CBED,Y | |
| JSR SUB_C543 | |
| JMP L_C34D | |
| $C262 L_C262: LDA $CC10,Y | |
| AND #$20 | |
| BEQ L_C280 | |
| LDA $CBDF,Y | |
| STA $C277 | |
| LDA $CBE2,Y | |
| DEC $C277 | |
| CLC | |
| ADC #$00 | |
| STA $CBE2,Y | |
| LDA #$01 | |
| STA $CBDF,Y | |
| $C280 L_C280: LDA $CC10,Y | |
| AND #$10 | |
| BEQ L_C295 | |
| LDA $CBDF,Y | |
| PHA | |
| LDA $CBE2,Y | |
| STA $CBDF,Y | |
| PLA | |
| STA $CBE2,Y | |
| $C295 L_C295: RTS | |
| $C296 L_C296: LDA $CC10,Y | |
| AND #$01 | |
| BNE L_C2A6 | |
| TXA | |
| AND #$0F | |
| STA $CBF0,Y | |
| JMP L_C1FC | |
| $C2A6 L_C2A6: TXA | |
| AND #$0F | |
| STA $CC13,Y | |
| JMP L_C1FC | |
| ; === SUBROUTINE: SUB_C2AF === | |
| $C2AF SUB_C2AF: LDA $CBD8,Y | |
| BEQ L_C2BB | |
| LDA $CC10,Y | |
| AND #$01 | |
| BNE L_C2D5 | |
| $C2BB L_C2BB: LDA $CC16,Y | |
| STA $C2C6 | |
| LDA $CBD5,Y | |
| CLC | |
| ADC #$0C | |
| TAX | |
| LDA $CA94,X | |
| STA $CC22,Y | |
| LDA $CAF4,X | |
| STA $CC25,Y | |
| RTS | |
| $C2D5 L_C2D5: LDA $CC10,Y | |
| AND #$02 | |
| BEQ L_C2F7 | |
| LDA $CBD5,Y | |
| CLC | |
| ADC $CC13,Y | |
| $C2E3 L_C2E3: CLC | |
| ADC $C2C6 | |
| TAX | |
| LDA $CA94,X | |
| STA $CC28,Y | |
| LDA $CAF4,X | |
| STA $CC2B,Y | |
| JMP L_C2BB | |
| $C2F7 L_C2F7: LDA $CBD5,Y | |
| SEC | |
| SBC $CC13,Y | |
| JMP L_C2E3 | |
| $C301 L_C301: TXA | |
| AND #$0F | |
| STA $CBDB,Y | |
| LDA $CC10,Y | |
| AND #$04 | |
| BEQ L_C321 | |
| LDA $CCC1,Y | |
| AND #$0F | |
| STA $CCC1,Y | |
| TXA | |
| ASL A | |
| ASL A | |
| ASL A | |
| ASL A | |
| ORA $CCC1,Y | |
| STA $CCC1,Y | |
| $C321 L_C321: LDA $CC10,Y | |
| AND #$08 | |
| BEQ L_C34A | |
| LDA $CCC1,Y | |
| AND #$F0 | |
| STA $CCC1,Y | |
| LDA $CCC4,Y | |
| AND #$F0 | |
| STA $CCC4,Y | |
| TXA | |
| AND #$0F | |
| ORA $CCC4,Y | |
| STA $CCC4,Y | |
| TXA | |
| AND #$0F | |
| ORA $CCC1,Y | |
| STA $CCC1,Y | |
| $C34A L_C34A: JMP L_C1FC | |
| $C34D L_C34D: LDA $CBFA | |
| BPL L_C368 | |
| LDA $CBE6,Y | |
| AND #$0F | |
| $C357 L_C357: ASL A | |
| TAX | |
| LDA $CB54,X | |
| STA $CBDF,Y | |
| LDA $CB55,X | |
| STA $CBE2,Y | |
| JMP L_C262 | |
| $C368 L_C368: LDA $CBE6,Y | |
| AND #$0F | |
| CLC | |
| ADC #$0D | |
| JMP L_C357 | |
| $C373 L_C373: INC $9007 | |
| LDX $9007 | |
| LDA $9314,X | |
| BMI L_C395 | |
| JSR SUB_C432 | |
| ASL A | |
| AND #$3F | |
| TAX | |
| LDA $92D5,X | |
| STA $C1B0 | |
| INX | |
| LDA $92D5,X | |
| STA $C1B1 | |
| JMP L_C1FC | |
| $C395 L_C395: LDA $CC09 | |
| CMP $CC08 | |
| BEQ L_C3AE | |
| INC $CC09 | |
| LDA $CC09 | |
| AND #$07 | |
| STA $CC09 | |
| JSR SUB_C0E3 | |
| JMP L_C373 | |
| $C3AE L_C3AE: LDA $CC07 | |
| STA $CC09 | |
| JSR SUB_C0E3 | |
| JMP L_C373 | |
| $C3BA L_C3BA: CPY #$00 | |
| BEQ L_C373 | |
| CPY #$01 | |
| BEQ L_C3DA | |
| JMP L_C406 | |
| $C3C5 L_C3C5: LSR A | |
| LSR A | |
| LSR A | |
| LSR A | |
| LSR A | |
| STA $C3D3 | |
| LDA #$00 | |
| LSR A | |
| LSR A | |
| LSR A | |
| ORA #$00 | |
| STA $CC16,Y | |
| LDA #$00 | |
| RTS | |
| $C3DA L_C3DA: INC $9008 | |
| LDX $9008 | |
| LDA $9378,X | |
| BMI L_C3FA | |
| JSR SUB_C446 | |
| ASL A | |
| TAX | |
| LDA $92D5,X | |
| STA $C1BE | |
| INX | |
| LDA $92D5,X | |
| STA $C1BF | |
| JMP L_C1FC | |
| $C3FA L_C3FA: LDX $CBFB | |
| LDA $9015,X | |
| STA $9008 | |
| JMP L_C3DA | |
| $C406 L_C406: INC $9009 | |
| LDX $9009 | |
| LDA $93DC,X | |
| BMI L_C426 | |
| JSR SUB_C45A | |
| ASL A | |
| TAX | |
| LDA $92D5,X | |
| STA $C1CC | |
| INX | |
| LDA $92D5,X | |
| STA $C1CD | |
| JMP L_C1FC | |
| $C426 L_C426: LDX $CBFB | |
| LDA $901D,X | |
| STA $9009 | |
| JMP L_C406 | |
| ; === SUBROUTINE: SUB_C432 === | |
| $C432 SUB_C432: STA $C3D8 | |
| LDA $9440,X | |
| STA $C3CE | |
| AND #$1F | |
| JSR SUB_C46E | |
| LDA $C3D8 | |
| JMP L_C3C5 | |
| ; === SUBROUTINE: SUB_C446 === | |
| $C446 SUB_C446: STA $C3D8 | |
| LDA $94A4,X | |
| STA $C3CE | |
| AND #$1F | |
| JSR SUB_C46E | |
| LDA $C3D8 | |
| JMP L_C3C5 | |
| ; === SUBROUTINE: SUB_C45A === | |
| $C45A SUB_C45A: STA $C3D8 | |
| LDA $9508,X | |
| STA $C3CE | |
| AND #$1F | |
| JSR SUB_C46E | |
| LDA $C3D8 | |
| JMP L_C3C5 | |
| ; === SUBROUTINE: SUB_C46E === | |
| $C46E SUB_C46E: CMP $9004,Y | |
| ; === SUBROUTINE: SUB_C471 === | |
| $C471 SUB_C471: STA $9004,Y | |
| TAX | |
| LDA $902D,X | |
| STA $CC1C,Y | |
| LDA $9055,X | |
| STA $CC1F,Y | |
| LDA $90A5,X | |
| STA $CC31,Y | |
| LDA $907D,X | |
| STA $CC19,Y | |
| LDA $90CD,X | |
| STA $CC34,Y | |
| LDA $91E5,X | |
| AND #$0F | |
| STA $CC9B,Y | |
| LDA $920D,X | |
| STA $CC98,Y | |
| LDA $9235,X | |
| STA $CCA1,Y | |
| LDA $925D,X | |
| STA $CCA7,Y | |
| LDA $92AD,X | |
| STA $CC37,Y | |
| LDA $916D,X | |
| AND #$0F | |
| STA $CC7C,Y | |
| LDA $9195,X | |
| STA $CC7F,Y | |
| LDA $91BD,X | |
| STA $CC88,Y | |
| LDA $9285,X | |
| STA $CBED,Y | |
| LDA $CC9B,X | |
| AND #$F0 | |
| LSR A | |
| LSR A | |
| LSR A | |
| STA $CCAD,Y | |
| LDA $CC7C,X | |
| AND #$F0 | |
| LSR A | |
| LSR A | |
| LSR A | |
| STA $CC95,Y | |
| LDA $CC76,Y | |
| BMI L_C4F4 | |
| LDA $CC1C,Y | |
| STA $CCC1,Y | |
| LDA $CC1F,Y | |
| STA $CCC4,Y | |
| $C4F4 L_C4F4: LDA $911D,X | |
| BEQ L_C529 | |
| AND #$F0 | |
| STA $CC8B | |
| LDA $CC2F | |
| AND #$0F | |
| ORA $CC8B | |
| ORA $CBB0,Y | |
| STA $CC2F | |
| STA $CCC7 | |
| LDA $911D,X | |
| ASL A | |
| ASL A | |
| ASL A | |
| ASL A | |
| STA $CC3C | |
| LDA $90F5 | |
| STA $CC2E | |
| LDA $9145 | |
| STA $CC30 | |
| STY $CC3A | |
| RTS | |
| $C529 L_C529: LDA $CBB0,Y | |
| EOR #$FF | |
| AND $CC2F | |
| STA $CC2F | |
| STA $CCC7 | |
| RTS | |
| ; === DATA SECTION === | |
| $C538 .BYTE $B9,$04,$90,$20,$71,$C4,$A9,$FF ; "... q..." | |
| $C540 .BYTE $4C,$43,$C5 ; "LC." | |
| ; === SUBROUTINE: SUB_C543 === | |
| $C543 SUB_C543: STA $CBFC | |
| AND #$80 | |
| BEQ L_C555 | |
| LDA #$00 | |
| STA $CC85,Y | |
| LDA $CC95,Y | |
| STA $CC82,Y | |
| $C555 L_C555: LDA $CBFC | |
| AND #$40 | |
| BEQ L_C56A | |
| LDA #$00 | |
| STA $CC9E,Y | |
| STA $CCAA,Y | |
| LDA $CCAD,Y | |
| STA $CCA4,Y | |
| $C56A L_C56A: RTS | |
| $C56B L_C56B: TAX | |
| CMP #$7F | |
| BMI L_C59D | |
| AND #$40 | |
| BEQ L_C58D | |
| TXA | |
| AND #$30 | |
| BEQ L_C587 | |
| CMP #$10 | |
| BEQ L_C58A | |
| CMP #$30 | |
| BEQ L_C5BA | |
| TXA | |
| AND #$0F | |
| JMP L_C301 | |
| $C587 L_C587: JMP L_C22B | |
| $C58A L_C58A: JMP L_C296 | |
| $C58D L_C58D: TXA | |
| AND #$3F | |
| CMP #$28 | |
| BCC L_C597 | |
| JMP L_C6DD | |
| $C597 L_C597: JSR SUB_C471 | |
| JMP L_C1FC | |
| $C59D L_C59D: CMP #$49 | |
| BCS L_C5A4 | |
| JMP L_C240 | |
| $C5A4 L_C5A4: CMP #$59 | |
| BCS L_C5AB | |
| JMP L_C652 | |
| $C5AB L_C5AB: CMP #$69 | |
| BCS L_C5B2 | |
| JMP L_C65B | |
| $C5B2 L_C5B2: SBC #$69 | |
| STA $CBE6,Y | |
| JMP L_C1FC | |
| $C5BA L_C5BA: TXA | |
| AND #$0F | |
| ASL A | |
| TAX | |
| LDA $CBB7,X | |
| STA $C5CC | |
| LDA $CBB8,X | |
| STA $C5CD | |
| JMP L_C6E0 | |
| ; === DATA SECTION === | |
| $C5CE .BYTE $A9,$C0 ; ".." | |
| $C5D0 .BYTE $20,$43,$C5,$4C,$FC,$C1,$20,$38,$C5,$4C,$FC,$C1,$B9,$10,$CC,$29 ; " C.L.. 8.L.....)" | |
| $C5E0 .BYTE $FC,$99,$10,$CC,$4C,$FC,$C1,$B9,$10,$CC,$29,$FC,$09,$01,$99,$10 ; "....L.....)....." | |
| $C5F0 .BYTE $CC,$4C,$FC,$C1,$B9,$10,$CC,$29,$FC,$09,$03,$99,$10,$CC,$4C,$FC ; ".L.....)......L." | |
| $C600 .BYTE $C1,$B9,$10,$CC,$09,$04,$99,$10,$CC,$4C,$FC,$C1,$B9,$10,$CC,$09 ; ".........L......" | |
| $C610 .BYTE $08,$99,$10,$CC,$4C,$FC,$C1,$B9,$10,$CC,$29,$F3,$99,$10,$CC,$4C ; "....L.....)....L" | |
| $C620 .BYTE $FC,$C1,$B9,$10,$CC,$29,$CF,$99,$10,$CC,$4C,$FC,$C1,$B9,$10,$CC ; ".....)....L....." | |
| $C630 .BYTE $09,$20,$29,$EF,$99,$10,$CC,$4C,$FC,$C1,$B9,$10,$CC,$09,$30,$99 ; ". )....L......0." | |
| $C640 .BYTE $10,$CC,$4C,$FC,$C1,$B9,$10,$CC,$09,$10,$29,$DF,$99,$10,$CC,$4C ; "..L.......)....L" | |
| $C650 .BYTE $FC,$C1 ; ".." | |
| ; === CODE SECTION === | |
| $C652 L_C652: SEC | |
| SBC #$49 | |
| JSR SUB_C0AB | |
| JMP L_C238 | |
| $C65B L_C65B: SEC | |
| SBC #$58 | |
| STA $CBFE,Y | |
| CPY #$01 | |
| BEQ L_C678 | |
| CPY #$02 | |
| BEQ L_C687 | |
| LDA $C1B0 | |
| STA $CC01 | |
| LDA $C1B1 | |
| STA $CC02 | |
| JMP L_C1FC | |
| $C678 L_C678: LDA $C1BE | |
| STA $CC03 | |
| LDA $C1BF | |
| STA $CC04 | |
| JMP L_C1FC | |
| $C687 L_C687: LDA $C1CC | |
| STA $CC05 | |
| LDA $C1CD | |
| STA $CC06 | |
| JMP L_C1FC | |
| ; === DATA SECTION === | |
| $C696 .BYTE $B9,$FE,$CB,$D0,$03,$4C,$FC,$C1,$C0,$01 ; ".....L...." | |
| $C6A0 .BYTE $F0,$16,$C0,$02,$F0,$24,$CE,$FE,$CB,$AD,$01,$CC,$8D,$B0,$C1,$AD ; ".....$.........." | |
| $C6B0 .BYTE $02,$CC,$8D,$B1,$C1,$4C,$FC,$C1,$CE,$FF,$CB,$AD,$03,$CC,$8D,$BE ; ".....L.........." | |
| $C6C0 .BYTE $C1,$AD,$04,$CC,$8D,$BF,$C1,$4C,$FC,$C1,$CE,$00,$CC,$AD,$05,$CC ; ".......L........" | |
| $C6D0 .BYTE $8D,$CC,$C1,$AD,$06,$CC,$8D,$CD,$C1,$4C,$FC,$C1 ; ".........L.." | |
| ; === CODE SECTION === | |
| $C6DC L_C6DC: RTS | |
| $C6DD L_C6DD: JMP L_C1FC | |
| $C6E0 L_C6E0: LDA #$01 | |
| STA $CC0D,Y | |
| JMP L_C1FC | |
| ; === DATA SECTION === | |
| $C6E8 .BYTE $A9,$00,$99,$0D,$CC,$4C,$FC,$C1 ; ".....L.." | |
| ; === SUBROUTINE: SUB_C6F0 === | |
| $C6F0 SUB_C6F0: LDY #$00 | |
| JSR SUB_C70B | |
| JSR SUB_C780 | |
| LDY #$01 | |
| JSR SUB_C71C | |
| JSR SUB_C780 | |
| LDY #$02 | |
| JSR SUB_C727 | |
| JSR SUB_C780 | |
| JMP SUB_C762 | |
| ; === SUBROUTINE: SUB_C70B === | |
| $C70B SUB_C70B: DEC $CBDF | |
| BNE SUB_C713 | |
| JSR SUB_C1F7 | |
| ; === SUBROUTINE: SUB_C713 === | |
| $C713 SUB_C713: LDA $CC76,Y | |
| BPL L_C71B | |
| JMP L_C6DC | |
| $C71B L_C71B: RTS | |
| ; === SUBROUTINE: SUB_C71C === | |
| $C71C SUB_C71C: DEC $CBE0 | |
| BNE SUB_C713 | |
| JSR SUB_C1F7 | |
| JMP SUB_C713 | |
| ; === SUBROUTINE: SUB_C727 === | |
| $C727 SUB_C727: DEC $CBE1 | |
| BNE SUB_C713 | |
| JSR SUB_C1F7 | |
| JMP SUB_C713 | |
| $C732 L_C732: LDA $CB9B,X | |
| TAY | |
| LDA $CCB2,Y | |
| STA $D400,X | |
| INX | |
| CPX #$07 | |
| BEQ L_C76D | |
| CPX #$0E | |
| BEQ L_C776 | |
| CPX #$15 | |
| BNE L_C732 | |
| $C749 L_C749: LDA $CCC9 | |
| STA $D416 | |
| LDA $CCC7 | |
| STA $D417 | |
| LDA $CC3B | |
| ORA $CC3C | |
| STA $CCC8 | |
| STA $D418 | |
| RTS | |
| ; === SUBROUTINE: SUB_C762 === | |
| $C762 SUB_C762: LDX #$00 | |
| LDA $CBE5 | |
| AND #$01 | |
| BNE L_C732 | |
| LDX #$07 | |
| $C76D L_C76D: LDA $CBE5 | |
| AND #$02 | |
| BNE L_C732 | |
| LDX #$0E | |
| $C776 L_C776: LDA $CBE5 | |
| AND #$04 | |
| BNE L_C732 | |
| JMP L_C749 | |
| ; === SUBROUTINE: SUB_C780 === | |
| $C780 SUB_C780: LDA $CC76,Y | |
| BPL L_C786 | |
| RTS | |
| $C786 L_C786: LDA $CBD8,Y | |
| BEQ L_C7B5 | |
| LDA $CC28,Y | |
| TAX | |
| CMP $CC22,Y | |
| BEQ L_C7B5 | |
| BCS L_C7A2 | |
| LDA $CC2B,Y | |
| ADC $CBD8,Y | |
| BCC L_C7AB | |
| INX | |
| JMP L_C7AB | |
| $C7A2 L_C7A2: LDA $CC2B,Y | |
| SBC $CBD8,Y | |
| BCS L_C7AB | |
| DEX | |
| $C7AB L_C7AB: STA $CC2B,Y | |
| TXA | |
| STA $CC28,Y | |
| JMP L_C7F0 | |
| $C7B5 L_C7B5: LDA $CC22,Y | |
| TAX | |
| LDA $CC25,Y | |
| JMP L_C7AB | |
| $C7BF L_C7BF: LDA $CC82,Y | |
| SBC #$01 | |
| STA $CC82,Y | |
| BMI L_C7CC | |
| JMP L_C885 | |
| $C7CC L_C7CC: LDA $CC7C,Y | |
| STA $CC82,Y | |
| LDA $CC85,Y | |
| CMP $CC7F,Y | |
| BEQ L_C7ED | |
| ADC $CC88,Y | |
| BCS L_C7E7 | |
| STA $CC85,Y | |
| CMP $CC7F,Y | |
| BCC L_C7ED | |
| $C7E7 L_C7E7: LDA $CC7F,Y | |
| STA $CC85,Y | |
| $C7ED L_C7ED: JMP L_C885 | |
| $C7F0 L_C7F0: LDA $CCA4,Y | |
| SBC #$01 | |
| STA $CCA4,Y | |
| BMI L_C7FD | |
| JMP L_C7BF | |
| $C7FD L_C7FD: LDA $CC9B,Y | |
| STA $CCA4,Y | |
| LDA $CCA1,Y | |
| BEQ L_C82B | |
| CMP #$01 | |
| BEQ L_C85B | |
| CMP #$02 | |
| BEQ L_C878 | |
| LDA $CCAA,Y | |
| BEQ L_C820 | |
| LDA #$00 | |
| STA $CCAA,Y | |
| $C81A L_C81A: STA $CC9E,Y | |
| JMP L_C7BF | |
| $C820 L_C820: LDA #$01 | |
| STA $CCAA,Y | |
| LDA $CC98,Y | |
| JMP L_C81A | |
| $C82B L_C82B: LDA $CCAA,Y | |
| BEQ L_C843 | |
| LDA $CC9E,Y | |
| SBC $CCA7,Y | |
| BCS L_C83D | |
| LDA #$00 | |
| STA $CCAA,Y | |
| $C83D L_C83D: STA $CC9E,Y | |
| JMP L_C7BF | |
| $C843 L_C843: LDA $CC9E,Y | |
| ADC $CCA7,Y | |
| BCS L_C850 | |
| CMP $CC98,Y | |
| BCC L_C83D | |
| $C850 L_C850: LDA #$01 | |
| STA $CCAA,Y | |
| LDA $CC98,Y | |
| JMP L_C83D | |
| $C85B L_C85B: LDA $CC9E,Y | |
| CMP $CC98,Y | |
| BEQ L_C873 | |
| ADC $CCA7,Y | |
| BCS L_C86D | |
| CMP $CC98,Y | |
| BCC L_C83D | |
| $C86D L_C86D: LDA $CC98,Y | |
| JMP L_C83D | |
| $C873 L_C873: LDA #$00 | |
| JMP L_C83D | |
| $C878 L_C878: LDA $CC9E,Y | |
| BEQ L_C86D | |
| SBC $CCA7,Y | |
| BCC L_C873 | |
| JMP L_C83D | |
| $C885 L_C885: CPY $CC3A | |
| BNE L_C896 | |
| LDX $CC30 | |
| LDA $CC2E | |
| JSR SUB_C94C | |
| STA $CCC9 | |
| $C896 L_C896: JMP L_C899 | |
| $C899 L_C899: LDA $CC76,Y | |
| BMI L_C8BC | |
| LDA $CC34,Y | |
| TAX | |
| LDA $CC31,Y | |
| JSR SUB_C94C | |
| ASL A | |
| ASL A | |
| ASL A | |
| ASL A | |
| STA $CCB8,Y | |
| LDA $CC8B | |
| LSR A | |
| LSR A | |
| LSR A | |
| LSR A | |
| STA $CCBB,Y | |
| JMP L_C8BD | |
| $C8BC L_C8BC: RTS | |
| $C8BD L_C8BD: LDA $CC2B,Y | |
| STA $CC8E | |
| LDA $CC28,Y | |
| STA $CC8F | |
| LDA $CC37,Y | |
| AND #$07 | |
| BEQ L_C8E4 | |
| STA $CC90 | |
| DEC $CC90 | |
| LDA $CC37,Y | |
| STA $CC8C | |
| BPL L_C8E1 | |
| JMP L_C9D8 | |
| $C8E1 L_C8E1: JMP L_CA02 | |
| $C8E4 L_C8E4: LDA $CBB0,Y | |
| CLC | |
| ADC $CC8E | |
| BCC L_C8F0 | |
| INC $CC8F | |
| $C8F0 L_C8F0: STA $CCB2,Y | |
| LDA $CC8F | |
| STA $CCB5,Y | |
| LDA $CBF0,Y | |
| BNE L_C8FF | |
| RTS | |
| $C8FF L_C8FF: LDA $CBF6,Y | |
| SEC | |
| SBC #$01 | |
| BCC L_C90B | |
| STA $CBF6,Y | |
| RTS | |
| $C90B L_C90B: LDA $CBF0,Y | |
| STA $CBF6,Y | |
| LDA $CBF3,Y | |
| BEQ L_C91C | |
| LDA #$00 | |
| STA $CBF3,Y | |
| RTS | |
| $C91C L_C91C: LDA #$01 | |
| STA $CBF3,Y | |
| LDA $CCB5,Y | |
| TAX | |
| LDA $CCB2,Y | |
| JSR SUB_CA37 | |
| STA $CCB2,Y | |
| TXA | |
| STA $CCB5,Y | |
| RTS | |
| ; === DATA SECTION === | |
| $C933 .BYTE $8D,$8E,$CC,$29,$1F,$AA,$E8,$A9,$00,$0E,$8E,$CC,$2A ; "...)........*" | |
| $C940 .BYTE $0E,$8E,$CC,$2A,$0E,$8E,$CC,$2A,$18,$69,$01,$60 ; "...*...*.i.`" | |
| ; === SUBROUTINE: SUB_C94C === | |
| $C94C SUB_C94C: STA $CC8B | |
| STX $CC8C | |
| TXA | |
| AND #$40 | |
| BEQ L_C95A | |
| JSR SUB_C974 | |
| $C95A L_C95A: LDA $CC8C | |
| AND #$10 | |
| BEQ L_C964 | |
| JSR SUB_C986 | |
| $C964 L_C964: JSR SUB_C9B7 | |
| LDA $CC8B | |
| RTS | |
| ; === DATA SECTION === | |
| $C96B .BYTE $20,$B7,$C9,$8D,$8D ; " ...." | |
| $C970 .BYTE $CC,$4C,$A8,$C9 ; ".L.." | |
| ; === SUBROUTINE: SUB_C974 === | |
| $C974 SUB_C974: LDA $CC85,Y | |
| BEQ L_C95A | |
| STA $CC8D | |
| LDA $CC8C | |
| AND #$80 | |
| BEQ L_C999 | |
| JMP L_C9A8 | |
| ; === SUBROUTINE: SUB_C986 === | |
| $C986 SUB_C986: LDA $CC9E,Y | |
| BEQ L_C964 | |
| LSR A | |
| STA $CC8D | |
| LDA $CC8C | |
| AND #$20 | |
| BEQ L_C999 | |
| JMP L_C9A8 | |
| $C999 L_C999: LDA $CC8B | |
| CLC | |
| ADC $CC8D | |
| BCC L_C9A4 | |
| LDA #$FF | |
| $C9A4 L_C9A4: STA $CC8B | |
| RTS | |
| $C9A8 L_C9A8: LDA $CC8B | |
| CLC | |
| SBC $CC8D | |
| BCS L_C9B3 | |
| LDA #$00 | |
| $C9B3 L_C9B3: STA $CC8B | |
| $C9B6 L_C9B6: RTS | |
| ; === SUBROUTINE: SUB_C9B7 === | |
| $C9B7 SUB_C9B7: LDA $CC8C | |
| AND #$07 | |
| BEQ L_C9B6 | |
| TAX | |
| LDA $CBDB,Y | |
| $C9C2 L_C9C2: DEX | |
| BEQ L_C9CB | |
| ADC $CBDB,Y | |
| JMP L_C9C2 | |
| $C9CB L_C9CB: STA $CC8D | |
| LDA $CC8C | |
| AND #$08 | |
| BEQ L_C999 | |
| JMP L_C9A8 | |
| $C9D8 L_C9D8: LDA $CC98,Y | |
| LSR A | |
| STA $CC93 | |
| LDA $CC9E,Y | |
| $C9E2 L_C9E2: JSR SUB_CA0E | |
| LDA $CC8C | |
| AND #$40 | |
| BEQ L_C9FC | |
| JSR SUB_CA43 | |
| $C9EF L_C9EF: LDA $CC8C | |
| AND #$20 | |
| BEQ L_C9F9 | |
| JSR SUB_CA7E | |
| $C9F9 L_C9F9: JMP L_C8E4 | |
| $C9FC L_C9FC: JSR SUB_CA61 | |
| JMP L_C9EF | |
| $CA02 L_CA02: LDA $CC7F,Y | |
| STA $CC93 | |
| LDA $CC85,Y | |
| JMP L_C9E2 | |
| ; === SUBROUTINE: SUB_CA0E === | |
| $CA0E SUB_CA0E: STA $CC91 | |
| LDA #$00 | |
| STA $CC92 | |
| STA $CC94 | |
| LDX $CC90 | |
| $CA1C L_CA1C: DEX | |
| BMI L_CA36 | |
| LDA $CC91 | |
| ASL A | |
| ROL $CC92 | |
| STA $CC91 | |
| LDA $CC93 | |
| ; === SUBROUTINE: SUB_CA2C === | |
| $CA2C SUB_CA2C: ASL A | |
| ROL $CC94 | |
| STA $CC93 | |
| JMP L_CA1C | |
| $CA36 L_CA36: RTS | |
| ; === SUBROUTINE: SUB_CA37 === | |
| $CA37 SUB_CA37: STX $CC94 | |
| LDX #$00 | |
| JSR SUB_CA2C | |
| LDX $CC94 | |
| RTS | |
| ; === SUBROUTINE: SUB_CA43 === | |
| $CA43 SUB_CA43: LDA $CC8E | |
| CLC | |
| SBC $CC91 | |
| BCS L_CA4F | |
| DEC $CC8F | |
| $CA4F L_CA4F: STA $CC8E | |
| LDA $CC8F | |
| CLC | |
| SBC $CC92 | |
| BCS L_CA5D | |
| LDA #$00 | |
| $CA5D L_CA5D: STA $CC8F | |
| RTS | |
| ; === SUBROUTINE: SUB_CA61 === | |
| $CA61 SUB_CA61: LDA $CC8E | |
| CLC | |
| ADC $CC91 | |
| BCC L_CA6D | |
| INC $CC8F | |
| $CA6D L_CA6D: STA $CC8E | |
| LDA $CC8F | |
| CLC | |
| ADC $CC92 | |
| BCC L_CA5D | |
| LDA #$FF | |
| JMP L_CA5D | |
| ; === SUBROUTINE: SUB_CA7E === | |
| $CA7E SUB_CA7E: LDA $CC94 | |
| STA $CC92 | |
| LDA $CC93 | |
| STA $CC91 | |
| LDA $CC8C | |
| AND #$40 | |
| BEQ SUB_CA43 | |
| JMP SUB_CA61 | |
| ; === DATA SECTION === | |
| $CA94 .BYTE $00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01 ; "............" | |
| $CAA0 .BYTE $02,$02,$02,$02,$02,$02,$02,$03,$03,$03,$03,$03,$04,$04,$04,$04 ; "................" | |
| $CAB0 .BYTE $05,$05,$05,$06,$06,$06,$07,$07,$08,$08,$09,$09,$0A,$0A,$0B,$0C ; "................" | |
| $CAC0 .BYTE $0D,$0D,$0E,$0F,$10,$11,$12,$13,$14,$15,$17,$18,$1A,$1B,$1D,$1F ; "................" | |
| $CAD0 .BYTE $20,$22,$24,$27,$29,$2B,$2E,$31,$34,$37,$3A,$3E,$41,$45,$49,$4E ; " "$')+.147:>AEIN" | |
| $CAE0 .BYTE $52,$57,$5C,$60,$68,$6E,$75,$7C,$83,$8B,$93,$9C,$A5,$AF,$B9,$C4 ; "RW\`hnu|........" | |
| $CAF0 .BYTE $D0,$DD,$EA,$F8,$00,$16,$27,$39,$4B,$5F,$74,$8A,$A1,$BA,$D4,$F0 ; "......'9K_t....." | |
| $CB00 .BYTE $0E,$2D,$4E,$71,$96,$BE,$E7,$14,$42,$74,$A9,$E0,$1B,$5A,$9C,$E2 ; ".-Nq....Bt...Z.." | |
| $CB10 .BYTE $2D,$7B,$CF,$17,$85,$E8,$51,$C1,$37,$B4,$38,$C4,$59,$F7,$9E,$4E ; "-{....Q.7.8.Y..N" | |
| $CB20 .BYTE $0A,$D0,$A2,$81,$6D,$67,$70,$89,$B2,$ED,$3B,$9D,$14,$A0,$45,$03 ; "....mgp...;...E." | |
| $CB30 .BYTE $DB,$CF,$E1,$12,$65,$DB,$76,$3A,$27,$41,$8A,$05,$B5,$9D,$C1,$24 ; "....e.v:'A.....$" | |
| $CB40 .BYTE $C9,$B6,$ED,$73,$4E,$82,$14,$0A,$6A,$3B,$82,$48,$93,$6B,$DA,$E7 ; "...sN...j;.H.k.." | |
| $CB50 .BYTE $9C,$04,$28,$14,$28,$18,$14,$0C,$0A,$06,$05,$03,$02,$02,$01,$01 ; "..(.(..........." | |
| $CB60 .BYTE $20,$10,$10,$08,$08,$04,$04,$02,$02,$01,$21,$17,$10,$0C,$08,$06 ; " .........!....." | |
| $CB70 .BYTE $40,$20,$20,$10,$10,$08,$08,$04,$04,$02,$02,$01,$30,$18,$18,$0C ; "@ .........0..." | |
| $CB80 .BYTE $0C,$06,$06,$03,$02,$01,$38,$1C,$1C,$0E,$0E,$07,$00,$05,$0A,$19 ; "......8........." | |
| $CB90 .BYTE $23,$37,$4B,$5F,$73,$8C,$A5,$BE,$E1,$F0,$FF,$00,$03,$06,$09,$0C ; "#7K_s..........." | |
| $CBA0 .BYTE $0F,$12,$01,$04,$07,$0A,$0D,$10,$13,$02,$05,$08,$0B,$0E,$11,$14 ; "................" | |
| $CBB0 .BYTE $01,$02,$04,$08,$10,$20,$40,$D6,$C5,$CE,$C5,$E0,$C6,$E8,$C6,$E7 ; "..... @........." | |
| $CBC0 .BYTE $C5,$DC,$C5,$F4,$C5,$01,$C6,$0C,$C6,$17,$C6,$2D,$C6,$22,$C6,$3A ; "...........-.".:" | |
| $CBD0 .BYTE $C6,$45,$C6,$96,$C6,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00 ; ".E.............." | |
| $CBE0 .BYTE $00,$00,$00,$00,$00,$07,$00,$00,$00,$FF,$00,$00,$00,$80,$80,$80 ; "................" | |
| $CBF0 .BYTE $00,$00,$00,$00,$00,$00,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $CC00 .BYTE $00,$E9,$CB,$E9,$CB,$E9,$CB,$01,$01,$00,$01,$01,$01,$00,$00,$00 ; "................" | |
| $CC10 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$20,$40,$0D,$0D,$0D,$0C ; ".........@ @...." | |
| $CC20 .BYTE $0C,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FA,$00 ; "................" | |
| $CC30 .BYTE $00,$40,$40,$40,$C0,$80,$60,$00,$00,$00,$00,$0F,$00,$00,$00,$00 ; ".@@@..`........." | |
| $CC40 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $CC50 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $CC60 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $CC70 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$D2 ; "................" | |
| $CC80 .BYTE $D2,$D2,$00,$00,$00,$00,$00,$00,$05,$05,$05,$00,$00,$00,$00,$00 ; "................" | |
| $CC90 .BYTE $00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00 ; "................" | |
| $CCA0 .BYTE $00,$00,$00,$00,$01,$01,$01,$08,$08,$08,$01,$01,$01,$01,$01,$01 ; "................" | |
| $CCB0 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; "................" | |
| $CCC0 .BYTE $00,$0C,$0C,$0C,$09,$09,$09,$00,$0F,$00 ; ".........." | |
| ; End of disassembly |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment