// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:38
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $24ff  (7424 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0da0 (3488)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $201b (irq_201b)
//
// Code: 2536 bytes, Data: 4888 bytes
// Labels: 257, Subroutines: 16
//
// Cross-references: all OK
// ============================================


// --- Region $09ba-$09be ---
.pc = $09ba "loc_09ba"

loc_09ba:
        bvc loc_0a0c
        bvc loc_0a1e
        rts

// --- Region $0a0c-$0a1e ---
.pc = $0a0c "loc_0a0c"

loc_0a0c:
        eor $55,x
        eor $95,x
        eor $55,x
        eor $55,x
        lsr $54,x
        cli
        rts

dat_0a18:
        .byte $40,$80,$00,$00,$00,$00               // @.....

loc_0a1e:
        brk

// --- Region $0c80-$0cb3 ---
.pc = $0c80 "loc_0c80"

loc_0c80:
        lda $d012
        eor $a0
        eor $a1
        eor $a2
        clc
        adc $d800
        sbc $de00
        and #$03
        tax
        lda $0cb4,x
        sta $40
        lda $0cb8,x
        sta $41
        lda $0cbc,x
        sta $21b2
        lda $0cc0,x
        sta $21b3
        lda $0cbc,x
        sta smc_0cd4                                // SMC: modifies $0cd4
        jmp loc_0cd0

dat_0cb2:
        .byte $00,$00                               // ..

// --- Region $0cd0-$0da7 ---
.pc = $0cd0 "loc_0cd0"

loc_0cd0:
        jsr sub_2290
.label smc_0cd4 = * + 1
        lda #$00                                    // !SMC: modified by $0cac
        sta $0286
        jsr $e544
        lda #$08
        ldx #$f0

loc_0cdf:
        sta $d827,x
        dex
        bne loc_0cdf
        lda #$00
        sta smc_2220                                // SMC: modifies $2220
        lda #$23
        sta smc_2221                                // SMC: modifies $2221
        lda #$00
        jsr sub_1000
        lda $3fff
        sta $42
        lda #$00
        sta $3fff
        ldx #$00

loc_0d00:
        lda $0f00,x
        sta $0540,x
        inx
        cpx #$f0
        bne loc_0d00
        jsr sub_2000

loc_0d0e:
        lda $dc01
        and #$10
        bne loc_0d0e
        lda $a2

loc_0d17:
        cmp $a2
        beq loc_0d17
        ldx #$00

loc_0d1d:
        lda dat_0e00,x
        sta $0540,x
        inx
        cpx #$f0
        bne loc_0d1d
        lda #$00
        sta smc_0d3a                                // SMC: modifies $0d3a
        lda #$02
        sta smc_0d38                                // SMC: modifies $0d38
        nop
        nop

loc_0d34:
        jsr sub_0d80
.label smc_0d38 = * + 1
        sta $02                                     // !SMC: modified by $0d2f
.label smc_0d3a = * + 1
        ldx #$00                                    // !SMC: modified by $0d2a, $0d44
        jsr sub_0d8e
        lda smc_0d3a
        clc
        adc #$28
        sta smc_0d3a                                // SMC: modifies $0d3a
        inc smc_0d38
        lda smc_0d38
        cmp #$05
        bne loc_0d34
        sei
        jsr $fd15
        jsr $ff5b
        lda #$31
        sta $0314
        lda #$ea
        sta $0315
        lda #$00
        sta $d011
        sta $d020
        sta $d021
        sta $d418
        cli
        lda #$36
        sta $01
        lda $42
        sta $3fff
        jmp $fce2

dat_0d7d:
        .byte $00,$00,$00                           // ...
// Referenced by: jsr from $0d34

sub_0d80:
        bit $ffe4
        lda #$00
        beq loc_0d8d

dat_0d87:
        .byte $a9,$00,$d0,$f5,$a9,$00               // ......

loc_0d8d:
        rts
// Referenced by: jsr from $0d3b

sub_0d8e:
        lda #$20
        ldy #$00

loc_0d92:
        sta $0540,x
        iny
        inx
        cpy #$28
        bne loc_0d92
        rts

dat_0d9c:
        .byte $00,$00,$00,$00                       // ....

main_0da0:
        lda #$00
        sta $0800
        jmp loc_0c80

// --- Region $1000-$1006 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $0cf1

sub_1000:
        jmp loc_101d
// Referenced by: jsr from $206b

sub_1003:
        jmp loc_1085

dat_1006:
        .byte $4c                                   // L

// --- Region $101d-$101f ---
.pc = $101d "loc_101d"

loc_101d:
        jmp loc_1807

// --- Region $1050-$162e ---
.pc = $1050 "loc_1050"

loc_1050:
        lda $1c1a,y
        sta $1716
        lda $1c1b,y
        sta $1717
        sta $d418
        ldx #$00
        txa

loc_1062:
        sta $1718,x
        inx
        cpx #$86
        bne loc_1062
        ldx #$00
        lda #$01

loc_106e:
        sta $100c,x
        sta $173b,x
        inx
        cpx #$03
        bne loc_106e
        ldx #$00
        txa

loc_107c:
        sta $d400,x
        inx
        cpx #$18
        bne loc_107c
        rts

loc_1085:
        dec $1718
        bpl loc_1090
        lda $1716
        sta $1718

loc_1090:
        ldx #$00
        stx $1720
        jsr sub_10b0
        inx
        jsr sub_10b0
        inx
        jsr sub_10b0
        lda $171c
        sta $d416
        lda $1018
        ora $1723
        sta $d417
        rts
// Referenced by: jsr from $1095, $1099, $109d

sub_10b0:
        lda $100c,x
        beq loc_10c5
        lda $1716
        cmp $1718
        bne loc_10c5
        dec $173b,x
        lda $173b,x
        beq loc_10c8

loc_10c5:
        jmp loc_11f9

loc_10c8:
        lda $1707,x
        sta $f8
        lda $170a,x
        sta $f9

loc_10d2:
        ldy $1726,x
        lda ($f8),y
        bpl loc_1101
        cmp #$ff
        bne loc_10e5
        lda #$00
        sta $1726,x
        jmp loc_10d2

loc_10e5:
        cmp #$fe
        bne loc_10ef
        lda #$00
        sta $100c,x
        rts

loc_10ef:
        sec
        sbc #$a0
        bcs loc_10f8
        eor #$1f
        adc #$01

loc_10f8:
        sta $172c,x
        inc $1726,x
        iny
        lda ($f8),y

loc_1101:
        tay
        lda $1db3,y
        sta $f8
        lda $1dbd,y
        sta $f9

loc_110c:
        jmp loc_17c0

dat_110f:
        .byte $b1,$f8,$30,$12                       // ..0.

loc_1113:
        cmp #$60
        bcc loc_1122
        and #$1f
        sta $1015,x
        inc $1729,x
        jmp loc_110c

loc_1122:
        jmp loc_11a2

loc_1125:
        cmp #$7e
        beq loc_1174
        cmp #$7d
        beq loc_1183
        cmp #$c0
        bcc loc_1197
        and #$1f
        pha
        and #$0f
        sta $1741,x
        pla
        and #$10
        bne loc_115e
        iny
        lda ($f8),y
        clc
        adc $172c,x
        sta $1744,x
        iny
        lda ($f8),y
        clc
        adc $172c,x
        sta $1747,x
        inc $1729,x
        inc $1729,x
        lda $1744,x
        jmp loc_11a6

loc_115e:
        iny
        lda ($f8),y
        clc
        adc $172c,x
        sta $1747,x
        lda $1012,x
        sta $1744,x
        inc $1729,x
        jmp loc_1174

loc_1174:
        lda $173e,x
        sta $173b,x
        inc $1729,x

loc_117d:
        jsr sub_11e6
        jmp loc_1322

loc_1183:
        lda $173e,x
        sta $173b,x
        lda $100f,x
        eor #$01
        sta $100f,x
        inc $1729,x
        jmp loc_117d

loc_1197:
        jmp loc_17da

loc_119a:
        rol $d418,x
        and #$17
        jmp loc_110c

loc_11a2:
        clc
        adc $172c,x

loc_11a6:
        sta $1012,x
        tay
        lda dat_1647,y
        sta $172f,x
        lda $16a7,y
        sta $1732,x
        lda $173e,x
        sta $173b,x
        inc $1729,x
        lda $17b0,x
        bne loc_117d
        lda #$00
        sta $1735,x
        sta $1738,x
        clc
        sta $1768,x
        sta $176b,x
        jsr sub_1823
        ldy $170d,x
        lda #$08
        jsr sub_17fb
        lda #$ff
        sta $100f,x
        sta $174a,x
// Referenced by: jsr from $117d

sub_11e6:
        ldy $1729,x
        lda ($f8),y
        cmp #$7f
        beq loc_11f0
        rts

loc_11f0:
        lda #$00
        sta $1729,x
        jsr sub_182d
        rts

loc_11f9:
        lda $174a,x
        bne loc_1201
        jmp loc_1322

loc_1201:
        clc
        lda #$00
        sta $174a,x
        sta $1750,x
        sta $1789,x
        sta $1792,x
        sta $1795,x
        lda $1015,x
        asl
        asl
        asl
        adc $1015,x
        adc $1015,x
        adc $1015,x
        sta $174d,x
        tay
        lda $18f0,y
        pha
        lda $18f1,y
        ldy $170d,x
        jsr sub_184b
        pla
        sta $d405,y
        ldy $174d,x
        lda $18fa,y
        and #$04
        bne loc_1269
        lda $18f2,y
        pha
        and #$0f
        sta $1753,x
        pla
        lsr
        lsr
        lsr
        lsr
        sta $1756,x
        eor #$0f
        sta $1759,x
        lda $18f6,y
        lsr
        lsr
        lsr
        lsr
        sta $175f,x
        lda #$00
        sta $1762,x
        sta $1765,x

loc_1269:
        lda $18fa,y
        and #$20
        beq loc_12c0
        lda $1018
        ora $1710,x
        sta $1018
        lda $18fa,y
        and #$02
        bne loc_12c9
        lda #$00
        sta $1719
        sta $171a
        lda $18f6,y
        and #$0f
        asl
        asl
        asl
        asl
        sta $171b
        tay
        lda $1b39,y
        pha
        and #$f0
        sta $1723
        pla
        and #$0f
        asl
        asl
        asl
        asl
        ora $1717
        sta $d418
        lda $1b3a,y
        sta $171c
        lda $1b3b,y
        sta $171d
        lda $1b3c,y
        sta $171e
        jmp loc_12c9

loc_12c0:
        lda $1018
        and $1713,x
        sta $1018

loc_12c9:
        ldy $174d,x
        lda $18f7,y
        pha
        and #$f0
        lsr
        sta $1771,x
        pla
        and #$0f
        sta $1774,x
        lda $18f8,y
        sta $1777,x
        lda $18f9,y
        sta $177a,x
        lda $18fa,y
        sta $177d,x
        ldy $1012,x
        lda $1888,y
        clc
        sta $1792,x
        lda #$02
        sta $1786,x
        jsr sub_1885
        lda $177d,x
        and #$80
        beq loc_1318
        ldy $170d,x
        lda #$ff
        sta $d400,y
        sta $d401,y
        lda #$81
        sta $d404,y
        rts

loc_1318:
        jmp loc_1591

dat_131b:
        .byte $ad,$0e,$dc,$8d,$05,$d4,$4a           // ......J

loc_1322:
        lda $1786,x
        beq loc_132d
        dec $1786,x
        jmp loc_134e

loc_132d:
        lda $177d,x
        and #$10
        beq loc_1342
        lda $173b,x
        cmp #$01
        bne loc_134e
        lda #$fe
        jsr sub_17ec
        bne loc_134e

loc_1342:
        lda $177d,x
        and #$08
        bne loc_134e
        lda #$fe
        sta $100f,x

loc_134e:
        lda $1762,x
        lsr
        clc
        adc $174d,x
        tay
        lda $18f3,y
        sta $171f
        lda $1762,x
        and #$01
        beq loc_1370
        lda $171f
        and #$0f
        asl
        asl
        asl
        asl
        jmp loc_1375

loc_1370:
        lda $171f
        and #$f0

loc_1375:
        clc
        adc $175f,x
        sta $175c,x
        lda $1765,x
        bne loc_139f
        lda $1750,x
        clc
        adc $175c,x
        sta $1750,x
        lda $1753,x
        adc #$00
        sta $1753,x
        cmp $1759,x
        bne loc_13c5
        lda #$01
        sta $1765,x
        bne loc_13bb

loc_139f:
        lda $1750,x
        sec
        sbc $175c,x
        sta $1750,x
        lda $1753,x
        sbc #$00
        sta $1753,x
        cmp $1756,x
        bne loc_13c5
        lda #$00
        sta $1765,x

loc_13bb:
        lda $1762,x
        cmp #$05
        beq loc_13c5
        inc $1762,x

loc_13c5:
        lda $177d,x
        and #$20
        beq loc_141c
        lda $1720
        bne loc_141c
        inx
        stx $1720
        dex
        lda $171c
        cmp $171e
        beq loc_141c
        lda $171b
        clc
        adc $1719
        tay
        lda $1b3d,y
        sta $1721
        lda $1b43,y
        sta $1722
        lda $171c
        clc
        adc $1721
        sta $171c
        inc $171a
        lda $171a
        cmp $1722
        bne loc_141c
        lda #$00
        sta $171a
        inc $1719
        lda $1719
        cmp #$06
        bne loc_141c
        lda $171d
        sta $1719

loc_141c:
        lda $1741,x
        beq loc_149f
        asl
        asl
        asl
        asl
        sta $171f
        lda $1744,x
        cmp $1747,x
        bcs loc_145a
        ldy $1747,x
        lda $1735,x
        clc
        adc $171f
        sta $1735,x
        lda $1738,x
        adc #$00
        sta $1738,x
        lda $1735,x
        clc
        adc $172f,x
        lda $1738,x
        adc $1732,x
        cmp $16a7,y
        bne loc_149c
        jmp loc_1481

loc_145a:
        ldy $1747,x
        lda $1735,x
        sec
        sbc $171f
        sta $1735,x
        lda $1738,x
        sbc #$00
        sta $1738,x
        lda $1735,x
        clc
        adc $172f,x
        lda $1738,x
        adc $1732,x
        cmp $16a7,y
        bne loc_149c

loc_1481:
        tya
        sta $1012,x
        lda dat_1647,y
        sta $172f,x
        lda $16a7,y
        sta $1732,x
        lda #$00
        sta $1741,x
        sta $1735,x
        sta $1738,x

loc_149c:
        jmp loc_1591

loc_149f:
        lda $1771,x
        beq loc_14aa
        dec $1771,x
        jmp loc_1591

loc_14aa:
        lda $177d,x
        and #$40
        beq loc_1520
        inc $1019
        lda $1019
        and #$01
        sta $1019
        bne loc_14c1
        jmp loc_1591

loc_14c1:
        ldy $170d,x
        lda $172f,x
        clc
        adc $1735,x
        sta $1724
        lda $1732,x
        adc #$00
        sta $1725
        lda $1724
        sec
        sbc $1798,x
        sta $d400,y
        lda $1725
        sbc $179b,x
        sta $d401,y
        lda $1777,x
        bmi loc_1503
        lda $1798,x
        clc
        adc $1777,x
        sta $1798,x
        lda $179b,x
        adc #$00
        sta $179b,x
        jmp loc_1619

loc_1503:
        lda $1777,x
        and #$7f
        sta $101a
        lda $1798,x
        sec
        sbc $101a
        sta $1798,x
        lda $179b,x
        sbc #$00
        sta $179b,x
        jmp loc_1619

loc_1520:
        lda $1768,x
        bne loc_1546
        lda $1735,x
        clc
        adc $1792,x
        sta $1735,x
        lda $1738,x
        adc $1795,x
        sta $1738,x
        inc $176b,x
        lda $176b,x
        cmp $1774,x
        beq loc_1567
        jmp loc_1591

loc_1546:
        lda $1735,x
        sec
        sbc $1792,x
        sta $1735,x
        lda $1738,x
        sbc $1795,x
        sta $1738,x
        inc $176b,x
        lda $176b,x
        cmp $1774,x
        beq loc_1567
        jmp loc_1591

loc_1567:
        lda #$00
        sta $176b,x
        lda $1768,x
        eor #$01
        sta $1768,x
        lda $176e,x
        cmp $1777,x
        beq loc_1591
        inc $176e,x
        lda $1774,x
        clc
        adc $1774,x
        sta $1774,x
        lda $1795,x
        adc #$00
        bit $1795

loc_1591:
        lda $177d,x
        and #$01
        bne loc_15d5

loc_1598:
        ldy $177a,x
        lda $19ed,y
        cmp #$90
        bcc loc_15b5
        sec
        sbc #$90
        sta $171f
        lda $177a,x
        sec
        sbc $171f
        sta $177a,x
        jmp loc_1598

loc_15b5:
        sta $1780,x
        lda $1a93,y
        clc
        adc $1012,x
        sta $1783,x
        tay
        lda dat_1647,y
        sta $172f,x
        lda $16a7,y
        sta $1732,x
        inc $177a,x
        jmp loc_1603

loc_15d5:
        ldy $177a,x
        lda $19ed,y
        cmp #$90
        bcc loc_15f2
        sec
        sbc #$90
        sta $171f
        lda $177a,x
        sec
        sbc $171f
        sta $177a,x
        jmp loc_15d5

loc_15f2:
        sta $1780,x
        lda #$00
        sta $172f,x
        lda $1a93,y
        sta $1732,x
        inc $177a,x

loc_1603:
        ldy $170d,x
        lda $172f,x
        clc
        adc $1735,x
        sta $d400,y
        lda $1732,x
        adc $1738,x
        sta $d401,y

loc_1619:
        lda $1750,x
        sta $d402,y
        lda $1753,x
        sta $d403,y
        lda $1780,x
        and $100f,x
        sta $d404,y
        rts

// --- Region $163c-$1647 ---
.pc = $163c "loc_163c"

loc_163c:
        sbc $60,x
        pha
        tya
        sta $1015,x
        pla
        jmp loc_11a6

dat_1647:
        .byte $0c                                   // .

// --- Region $17c0-$188d ---
.pc = $17c0 "loc_17c0"

loc_17c0:
        jmp loc_1837

dat_17c3:
        .byte $b1,$f8                               // ..

loc_17c5:
        cmp #$7c
        beq loc_17cc
        jmp loc_1125

loc_17cc:
        lda $17b0,x
        eor #$01
        sta $17b0,x
        inc $1729,x
        jmp loc_17c0

loc_17da:
        cmp #$80
        bcc loc_17e9
        and #$3f
        sta $173e,x
        inc $1729,x
        jmp loc_110c

loc_17e9:
        jmp loc_1113
// Referenced by: jsr from $133d

sub_17ec:
        sta $100f,x
        ldy $170d,x
        lda #$00
        sta $d405,y
        sta $d406,y
        rts
// Referenced by: jsr from $11db

sub_17fb:
        sta $d404,y
        lda #$0f
        sta $d405,y
        sta $d406,y
        rts

loc_1807:
        asl
        asl
        asl
        tay
        ldx #$00

loc_180d:
        lda $1c1a,y
        sta $1707,x
        lda $1c1b,y
        sta $170a,x
        iny
        iny
        inx
        cpx #$03
        bne loc_180d
        jmp loc_1870
// Referenced by: jsr from $11d3

sub_1823:
        sta $176e,x
        sta $b398,x
        sta $179b,x
        rts
// Referenced by: jsr from $11f5

sub_182d:
        inc $1726,x
        sta $17b0,x
        bit $17b3
        rts

loc_1837:
        ldy $1729,x
        lda ($f8),y
        cmp #$f0
        bcc loc_17c5
        and #$0f
        sta $17b3,x
        inc $1729,x
        jmp loc_1837
// Referenced by: jsr from $1230

sub_184b:
        sta $1040
        lda $17b3,x
        bne loc_185a
        lda $1040
        sta $d406,y
        rts

loc_185a:
        lda $1040
        and #$0f
        sta $1040
        lda $17b3,x
        asl
        asl
        asl
        asl
        ora $1040
        sta $d406,y
        rts

loc_1870:
        ldx #$00
        txa

loc_1873:
        sta $17b0,x
        inx
        cpx #$08
        bne loc_1873
        jmp loc_1050

dat_187e:
        .byte $00,$00,$18,$9d,$75,$19,$60           // ....u.`
// Referenced by: jsr from $12fd

sub_1885:
        lda $1774,x
        bne loc_188d
        sta $1792,x

loc_188d:
        rts

// --- Region $2000-$2196 ---
.pc = $2000 "sub_2000"
// Referenced by: jsr from $0d0b

sub_2000:
        sei
        ldx #$00
        stx $dc0e
        inx
        stx $d01a
        lda #$1b
        sta $0314
        lda #$20
        sta $0315
        lda #$18
        sta $d011
        cli
        rts

irq_201b:
        lda #$32
        sta $d012
        lda #$18
.label smc_2023 = * + 1
        ldx #$d0                                    // !SMC: modified by $224d
        ldy #$12
        sta $d011
        stx $d016
        sty $d018
        ldx #$00

loc_2031:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        bit $ea
        lda $21c0,x
        sta $d011
        inx
.label smc_204f = * + 1
        cpx #$0e                                    // !SMC: modified by $20c8
        bne loc_2031
        nop

loc_2053:
        dex
        bne loc_2053
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_2060:
        dey
        bne loc_2060
        lda $41
        sta $d020
        sta $d021
        jsr sub_1003
        lda smc_204f
        clc
        adc #$65

loc_2074:
        cmp $d012
        bne loc_2074
        ldy #$0b

loc_207b:
        dey
        bne loc_207b
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_2088:
        dey
        bne loc_2088
        lda #$00
        sta $d020
        sta $d021
        lda #$d8
        ldx #$17
        sta $d016
        stx $d018
        lda #$22
        sec
        sbc smc_204f
        tax

loc_20a4:
        lda $d012

loc_20a7:
        cmp $d012
        beq loc_20a7
        and #$07
        ora #$50
        sta $d011
        dex
        bne loc_20a4
        lda $d011
        and #$07
        ora #$10
        sta $d011
        lda #$c8
        sta $d016
.label smc_20c6 = * + 1
        lda $0b4b                                   // !SMC: modified by $217f
        sta smc_204f                                // SMC: modifies $204f
        dec smc_20c6
        lda #$8a

loc_20d0:
        cmp $d012
        bne loc_20d0
        ldy #$01

loc_20d7:
        dey
        bne loc_20d7
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_20e4:
        dey
        bne loc_20e4
        lda $41
        sta $d020
        sta $d021
        jsr sub_2241
        lda #$bd

loc_20f4:
        cmp $d012
        bne loc_20f4
        ldy #$0b

loc_20fb:
        dey
        bne loc_20fb
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_2108:
        dey
        bne loc_2108
        lda #$00
        sta $d020
        sta $d021
.label smc_2114 = * + 1
        lda #$c3                                    // !SMC: modified by $2209, $220f
        ldx #$17
        sta $d016
        stx $d018
.label smc_211e = * + 1
        ldy $0b0b                                   // !SMC: modified by $2176

loc_2120:
        lda $d012

loc_2123:
        cmp $d012
        beq loc_2123
        and #$07
        ora #$10
        sta $d011
        dey
        bne loc_2120
        ldy #$15

loc_2134:
        dey
        bne loc_2134
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_2141:
        dey
        bne loc_2141
        lda $41
        sta $d020
        sta $d021
.label smc_214d = * + 1
        lda $0b0b                                   // !SMC: modified by $2179
        clc
        adc #$d1

loc_2152:
        cmp $d012
        bne loc_2152
        ldy #$0b

loc_2159:
        dey
        bne loc_2159
        lda $40
        sta $d020
        sta $d021
        ldy #$0a

loc_2166:
        dey
        bne loc_2166
        lda #$00
        sta $d020
        sta $d021
        lda smc_20c6
        and #$3f
        sta smc_211e                                // SMC: modifies $211e
        sta smc_214d                                // SMC: modifies $214d
        clc
        adc #$40
        sta smc_20c6                                // SMC: modifies $20c6
        jsr sub_2200
        lda #$00

loc_2187:
        cmp $d012
        bne loc_2187
        lda #$18
        sta $d011
        ror $d019
        jmp $ea31

// --- Region $2200-$229b ---
.pc = $2200 "sub_2200"
// Referenced by: jsr from $2182

sub_2200:
        ldx smc_2114
        dex
        dex
        cpx #$bf
        beq loc_220d
        stx smc_2114                                // SMC: modifies $2114
        rts

loc_220d:
        ldx #$c7
        stx smc_2114                                // SMC: modifies $2114
        ldy #$00

loc_2214:
        lda $0631,y
        sta $0630,y
        iny
        cpy #$27
        bne loc_2214

loc_221f:
.label smc_2220 = * + 1
.label smc_2221 = * + 2
        lda $231f                                   // !SMC: modified by $0ce7, $0cec, $2226, $222b
        bne loc_2231
        lda #$00
        sta smc_2220                                // SMC: modifies $2220
        lda #$23
        sta smc_2221                                // SMC: modifies $2221
        jmp loc_221f

loc_2231:
        sta $0657
        inc smc_2220
        bne loc_223c
        inc smc_2221

loc_223c:
        rts

bmp_223d:
        // === Bitmap data (4 bytes, $223d-$2240) ===
        .byte $00,$00,$00,$7b                       // ...{
// Referenced by: jsr from $20ef

sub_2241:
        ldx $2240
        lda $0b80,x
        eor #$ff
        and #$07
        ora #$d0
        sta smc_2023                                // SMC: modifies $2023
        lda $0b80,x
        lsr
        lsr
        lsr
        tax
        ldy #$00

loc_2259:
        lda $1e00,x
        sta $0428,y
        lda $1e50,x
        sta $0450,y
        lda $1ea0,x
        sta $0478,y
        lda $1ef0,x
        sta $04a0,y
        lda $1f40,x
        sta $04c8,y
        lda $1f90,x
        sta $04f0,y
        inx
        iny
        cpy #$28
        bne loc_2259
        lda $2240
        clc
        adc #$01
        sta $2240
        rts

bmp_228d:
        // === Bitmap data (3 bytes, $228d-$228f) ===
        .byte $00,$00,$00                           // ...
// Referenced by: jsr from $0cd0

sub_2290:
        ldx #$30

loc_2292:
        lda $2190,x
        sta $d000,x
        dex
        bpl loc_2292
        rts

// ============================================
// Data blocks
// ============================================

// --- Region $080a-$09b9 ---
.pc = $080a "txt_080a"

txt_080a:
        .text "UUUUUU"
        .byte $00                                   // string terminator
        .byte $00                                   // .

txt_0812:
        .text "TTTTTT"
        .byte $00                                   // string terminator
        .byte $00,$00,$02,$01,$09,$05,$05,$02,$25,$95 // ........%.

txt_0823:
        .text "UUUUUUVTTTTTTU"
        .byte $09,$01,$01,$01,$01,$01,$01           // .......

txt_0838:
        .text "XUUUUUUU"
        .byte $00                                   // string terminator
        .byte $80,$60                               // .`

txt_0843:
        .text "XTVUU"
        .byte $00                                   // string terminator
        .byte $00,$02,$09,$05,$25,$15,$15,$09,$95   // ....%....

txt_0852:
        .text "UUUUUUUXPPPPPPU%"
        .byte $05,$05,$05,$05,$05,$05,$60           // ......`

txt_0869:
        .text "VUUUUUU"
        .byte $00                                   // string terminator
        .byte $00,$80,$60
        .text "PXTT"
        .byte $00,$02,$09
        .byte $25,$15,$95

txt_087e:
        .text "UU%UUUUUUUU"
        .byte $60                                   // `

txt_088a:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "U"
        .byte $95,$15,$15,$15,$15,$15,$15,$80       // ........

txt_0899:
        .text "XVUUUUU"
        .byte $00                                   // string terminator
        .byte $00,$00,$80,$40,$60,$50,$50,$00,$00,$00,$00,$00,$02,$01,$01,$00 // ...@`PP.........
        .byte $09
        .byte $25,$95
        .text "UUUU"
        .byte $95

txt_08b9:
        .text "UUUUUUUU"
        .byte $82,$00,$00,$00,$00,$00,$00           // .......

txt_08c8:
        .text "VUUUUUUU"
        .byte $00                                   // string terminator
        .byte $60                                   // `

txt_08d2:
        .text "XVUUUU"
        .byte $00                                   // string terminator
        .byte $00,$00,$00,$00,$80                   // .....

txt_08de:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "UUUUUUUUUTTTTTTTT"
        .byte $00                                   // string terminator
        .byte $00,$00,$00,$00,$00,$00,$25,$15,$15,$95,$95,$55,$55,$55,$00,$00 // ......%....UUU..
        .byte $00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$80,$40 // ...............@
        .byte $40,$62,$62                           // @bb

txt_0915:
        .text "QQQPPPPPPPP"
        .fill 8, $05
        .byte $02,$01,$01,$89,$89                   // .....

txt_092d:
        .text "EEE"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .fill 8, $15

txt_0940:
        .text "XTTVVUUU"
        .byte $09,$05,$05,$25,$25,$15,$15,$15,$60   // ...%%...`

txt_0951:
        .text "PPXXTTT"
        .byte $01,$01,$00,$00,$00,$00,$00,$00,$55,$55,$00,$00,$00,$00,$00,$00 // ........UU......
        .byte $51,$51,$01,$01,$01,$02,$02,$00       // QQ......

txt_0970:
        .text "XUXPPPPP%U"
        .byte $00                                   // string terminator
        .byte $00,$05,$05,$05,$05,$55,$55,$00,$00   // .....UU..

txt_0984:
        .text "UUUUEE"
        .byte $05,$05,$45,$89,$89,$01,$15,$15,$15,$15,$15,$25,$25,$05,$00,$00 // ..E........%%...

txt_099a:
        .text "UUUUUU"
        .byte $00                                   // string terminator
        .byte $00                                   // .

txt_09a2:
        .text "TTTXXPUUUUU"
        .byte $95,$95,$15,$00,$00,$01,$01,$01,$01,$01,$01,$00,$00 // .............

// --- Region $09bf-$0a0b ---
.pc = $09bf "dat_09bf"

dat_09bf:
        .byte $40,$55,$95,$15,$15,$25,$05,$09,$02   // @U...%...

txt_09c8:
        .text "UVTTXP"
        .byte $60,$80,$01,$02,$00,$00,$00,$00,$00,$00
        .text "UUUU"
        .byte $95,$15
        .byte $25,$09,$05,$09,$01,$01,$02,$00,$00,$00 // %.........

txt_09e8:
        .text "UUUUUU"
        .byte $95                                   // .

txt_09ef:
        .text "%UUUUUUVXP"
        .byte $60,$40,$40,$80,$00,$00,$00,$15,$25,$05,$05,$09,$01,$02,$00,$55 // `@@.....%......U
        .byte $55,$55,$55                           // UUU

// --- Region $0a1f-$0ac0 ---
.pc = $0a1f "dat_0a1f"

dat_0a1f:
        .byte $00,$54,$54,$00,$00,$00,$00,$00,$00,$95,$09,$00,$00,$00,$00,$00 // .TT.............
        .byte $00,$58,$55,$00,$00,$00,$00,$00,$00,$25,$55,$00,$00,$00,$00,$00 // .XU......%U.....
        .byte $00,$56,$60,$00,$00,$00,$00,$00,$00,$02,$00,$00,$00,$00,$00,$00 // .V`.............
        .byte $00,$55,$25,$00,$00,$00,$00,$00,$00,$60,$55,$00,$00,$00,$00,$00 // .U%......`U.....
        .byte $00,$95,$55,$00,$00,$00,$00,$00,$00,$09,$00,$00,$00,$00,$00,$00 // ..U.............
        .byte $00,$55,$95,$00,$00,$00,$00,$00,$00,$82,$55,$00,$00,$00,$00,$00 // .U........U.....
        .byte $00,$55,$56,$00,$00,$00,$00,$00,$00,$60,$00,$00,$00,$00,$00,$00 // .UV......`......
        .byte $00,$25,$02,$00,$00,$00,$00,$00,$00,$56,$55,$00,$00,$00,$00,$00 // .%.......VU.....
        .byte $00,$09,$55,$00,$00,$00,$00,$00,$00,$55,$58,$00,$00,$00,$00,$00 // ..U......UX.....
        .byte $00,$80,$00,$00,$00,$00,$00,$00,$00   // .........

txt_0ab8:
        .text "TTTTTTTT"
        .byte $00                                   // string terminator

// --- Region $0b00-$0c7f ---
.pc = $0b00 "dat_0b00"

dat_0b00:
        // === Sine/lookup table (256 bytes, range $01-$7e) ===
        .byte $03,$04,$06,$07,$09,$0a,$0c,$0d,$0f,$10,$12,$13,$14,$16,$17,$18 // ................
        .byte $19,$1a,$1b,$1c,$1d,$1e,$1e,$1f       // ........

txt_0b18:
        .text "  !!!!!!!!!!!  "
        .byte $1f,$1e,$1e,$1d,$1c,$1b,$1a,$19,$18,$17,$16,$14,$13,$12,$10,$0f // ................
        .byte $0d,$0c,$0a,$09,$07,$06,$04,$03,$01,$1f,$1e,$1c,$1b,$19,$18,$16 // ................
        .byte $15,$13,$12,$10,$0f,$0e,$0c,$0b,$0a,$09,$08,$07,$06,$05,$04,$04 // ................
        .byte $03,$02,$02,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$02,$02 // ................
        .byte $03,$04,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0e,$0f,$10,$12,$13 // ................
        .byte $15,$16,$18,$19,$1b,$1c,$1e,$1f,$21,$7b,$78,$75,$72,$6f,$6c,$69 // ........!{xuroli
        .byte $66,$63,$60,$5d                       // fc`]

txt_0b8b:
        .text "ZWTQNLIFCA>;9641/-*(&$"
        .byte $22                                   // double quote character
        .text " "
        .byte $1e,$1c,$1a,$18,$16,$15,$13,$12,$10,$0f,$0d,$0c,$0b,$0a,$09,$08 // ................
        .byte $07,$06,$05,$05,$04,$03,$03,$02,$02,$02,$02,$02,$02,$02,$02,$02 // ................
        .byte $02,$02,$03,$03,$04,$05,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0f // ................
        .byte $10,$12,$13,$15,$16,$18,$1a,$1c,$1e   // .........

txt_0bdc:
        .text " "
        .byte $22                                   // double quote character
        .text "$&(*-/1469;>ACFILNQTWZ"
        .byte $5d,$60,$63,$66,$69,$6c,$6f,$72,$75,$78,$7b,$7e,$81,$84,$87,$8a // ]`cfilorux{~....
        .byte $8d,$90,$93,$96,$99,$9c,$9f,$a2,$a5,$a8,$ab,$ae,$b0,$b3,$b6,$b9 // ................
        .byte $bb,$be,$c1,$c3,$c6,$c8,$cb,$cd,$cf,$d2,$d4,$d6,$d8,$da,$dc,$de // ................
        .byte $e0,$e2,$e4,$e6,$e7,$e9,$ea,$ec,$ed,$ef,$f0,$f1,$f2,$f3,$f4,$f5 // ................
        .byte $f6,$f7,$f7,$f8,$f9,$f9,$fa,$fa,$fa,$fa,$fa,$fa,$fa,$fa,$fa,$fa // ................
        .byte $fa,$f9,$f9,$f8,$f7,$f7,$f6,$f5,$f4,$f3,$f2,$f1,$f0,$ef,$ed,$ec // ................
        .byte $ea,$e9,$e7,$e6,$e4,$e2,$e0,$de,$dc,$da,$d8,$d6,$d4,$d2,$cf,$cd // ................
        .byte $cb,$c8,$c6,$c3,$c1,$be,$bb,$b9,$b6,$b3,$b0,$ae,$ab,$a8,$a5,$a2 // ................
        .byte $9f,$9c,$99,$96,$93,$90,$8d,$8a,$87,$84,$81,$7e // ...........~

// --- Region $0cb4-$0ccf ---
.pc = $0cb4 "Program $0cb4"
        .byte $06,$09,$0b,$04,$0c,$08,$0d,$03,$09,$00,$0a,$06,$08,$0b,$0f,$0e // ................
        .fill 12, $00

// --- Region $0da8-$0da8 ---
.pc = $0da8 "dat_0da8"

dat_0da8:
        // === Fill data (1 bytes, $0da8-$0da8) ===
        .byte $00                                   // .

// --- Region $0e00-$0fff ---
.pc = $0e00 "dat_0e00"

dat_0e00:
        .text "                                                                                                                                                                                                                                                                          "
        // === Sine/lookup table (246 bytes, range $01-$63) ===
        .byte $10,$12,$05,$13,$05,$0e,$14,$13,$20,$0f,$0e // ........ ..

txt_0f15:
        .text " 18.04.94                    "
        .fill 20, $63

txt_0f46:
        .text "                        CROSSFIRE +3                            "
        .fill 12, $63

txt_0f92:
        .text "                        "
        .byte $14,$12,$01,$09,$0e,$05,$04,$20,$02,$19 // ....... ..

txt_0fb4:
        .text " MC V"
        .byte $01,$0c,$01,$03,$08                   // .....

txt_0fbe:
        .text "                    "
        .fill 20, $63

txt_0fe6:
        .text "                          "

// --- Region $1007-$101c ---
.pc = $1007 "Segment $1007"
        .byte $2f,$16,$4c,$3e,$16,$01,$01,$01,$fe,$fe,$fe,$13,$43,$29,$03,$00 // /.L>........C)..
        .byte $10,$01,$00,$00,$00,$00               // ......

// --- Region $1020-$104f ---
.pc = $1020 "txt_1020"

txt_1020:
        .text "MUSIC BY YOKO IN THE YEAR OF '93"
        .byte $aa                                   // '*' | $80 (end-of-string marker)
        .byte $ad,$0d,$dd,$8d,$11,$d0,$ad,$19,$d0,$8d,$18,$d0,$4e,$18,$d4 // ............N..

// --- Region $162f-$163b ---
.pc = $162f "dat_162f"

dat_162f:
        .byte $a2,$00,$8a,$9d,$0c,$10,$9d,$0f,$10,$e8,$e0,$03,$d0 // .............

// --- Region $1648-$17bf ---
.pc = $1648 "Segment $1648"
        .byte $1c,$2d,$3e,$47,$66,$7b,$91,$a9,$c3,$dd,$fa,$18,$38,$5a,$7d,$a3 // .->Gf{......8Z}.
        .byte $cc,$f6,$23,$53,$86,$bb,$f4,$30,$70,$b4,$fb,$47,$98,$ed,$47,$a7 // ..#S...0p..G..G.
        .byte $0c,$77,$e9,$61,$e1,$68,$f7,$8f,$30,$da,$8f,$4e,$18,$ef,$d2,$c3 // .w.a.h..0..N....
        .byte $c3,$d1,$ef,$1f,$60,$b5,$1e,$9c,$31,$df,$a5,$87,$86,$a2,$df,$3e // ....`...1......>
        .byte $c1,$6b,$3c,$39,$63,$be,$4b,$0f,$0c,$45,$bf,$7d,$83,$d6,$79,$73 // .k<9c.K..E.}..ys
        .byte $c7,$7c,$97,$1e,$18,$8b,$7e,$fa,$06,$ac,$f3,$e6,$8f,$f8,$fc,$01 // .|....~.........
        .fill 11, $01
        .byte $02,$02,$02,$02,$02,$02,$02,$03,$03,$03,$03,$03,$04,$04,$04,$04 // ................
        .byte $05,$05,$05,$06,$06,$07,$07,$07,$08,$08,$09,$09,$0a,$0b,$0b,$0c // ................
        .byte $0d,$0e,$0e,$0f,$10,$11,$12,$13,$15,$16,$17,$19,$1a,$1c,$1d,$1f // ................

txt_16e3:
        .text "!#%'*,/258;?CGKOTY"
        .byte $5e,$64,$6a,$70,$77,$7e,$86,$8e,$96,$9f,$a8,$b3,$bd,$c8,$d4,$e1 // ^djpw~..........
        .byte $ee,$fd,$c9,$e3,$00,$1b,$1b,$1c,$00,$07,$0e,$01,$02,$04,$fe,$fd // ................
        .byte $fb,$01,$0f,$00,$01,$1c,$10,$5b,$00,$00,$00,$01,$02,$2f,$f0,$00 // .......[...../..
        .byte $00,$01,$01,$01,$0d,$03,$03,$00,$00,$00,$23,$bf,$c3,$03,$4f,$11 // ..........#...O.
        .byte $08,$00,$00,$00,$00,$00,$05,$23,$23,$06,$30,$30,$00,$00,$00,$00 // .......##.00....
        .fill 8, $00
        .byte $21,$00,$00,$c0,$00,$00,$09,$00,$00,$04,$00,$00,$0b,$00,$00,$20 // !.............. 
        .byte $00,$00,$00,$00,$00,$00,$05,$05,$00,$00,$00,$00,$00,$00,$02,$7c // ...............|
        .byte $7c,$00,$00,$00,$00,$00,$00,$03,$00,$00,$00,$00,$00,$10,$04,$04 // |...............
        .byte $a0,$00,$00,$41,$11,$11,$13,$4b,$31,$00,$00,$00,$00,$00,$00,$00 // ...A...K1.......
        .byte $00,$00,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // ................
        .byte $00,$ff,$00,$00,$00,$00,$00,$00,$ff,$c7,$1d,$17,$a6,$09,$0a,$01 // ................
        .byte $c7,$1d,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // ................
        .byte $00,$00,$00                           // ...

// --- Region $188e-$1dc7 ---
.pc = $188e "dat_188e"

dat_188e:
        .byte $02,$02,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$08,$08 // ................
        .byte $08,$08,$08,$08,$08,$0c,$0c,$0c,$0c,$0c,$10,$10,$10,$10,$14,$14 // ................
        .byte $14,$18,$18,$1c,$1c,$1c               // ......

txt_18b4:
        .text "  $$(,,0488<"
        .byte $40                                   // @ character
        .text "DHLTX"
        .byte $5c                                   // backslash character
        .byte $64,$68,$70,$74,$7c,$84,$8c,$94,$9c,$a8,$b0,$bc,$c8,$d4,$e0,$ec // dhpt|...........
        .byte $fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .fill 9, $ff
        .byte $0f,$00,$08,$00,$00,$00,$00,$00,$00,$00,$01,$08,$08,$08,$00,$00 // ................
        .byte $00,$00,$00,$00,$06,$01,$04,$5c,$08,$10,$00,$00,$20,$22,$00,$0c // .......\.... "..
        .byte $80,$00,$aa,$45,$22,$21,$11,$01,$03,$00,$0f,$a0,$05,$40,$84,$12 // ...E"!.......@..
        .byte $22,$22,$00,$03,$00,$11,$88,$05
        .byte $40                                   // @ character
        .text ":!"
        .byte $22                                   // double quote
        .byte $22                                   // double quote
        .byte $01,$03,$00
        .byte $18,$88,$07,$6a,$00,$00,$00,$00,$04,$00,$00,$97,$61,$07,$0a,$4b // ...j........a..K
        .byte $42,$12,$34,$90,$00,$00,$9c,$80,$03,$f0,$02,$10,$00,$00,$22,$23 // B.4..........."#
        .byte $00,$0c,$38,$04,$09,$84,$21,$22,$22,$00,$00,$00,$a0,$01,$02,$49 // ..8...!""......I
        .byte $84,$21,$22,$22,$06,$03,$00,$3b,$a1,$f0,$4c,$84,$21,$22,$22,$00 // .!""...;..L.!"".
        .byte $03,$00,$3d,$88,$05,$40,$84,$21,$22,$22,$00,$03,$00,$44,$88,$05 // ..=..@.!""...D..
        .byte $40,$84,$21,$22,$22,$00,$03,$00,$4b,$88,$06,$58,$38,$ff,$ff,$ff // @.!""...K..X8...
        .byte $00,$00,$00,$53,$80,$09,$80,$38,$ff,$ff,$ff,$00,$13,$00,$53,$88 // ...S...8......S.
        .byte $07,$60,$07,$61,$33,$44,$30,$00,$00,$a2,$80,$05,$40,$08,$00,$00 // .`.a3D0.....@...
        .byte $00,$00,$03,$00,$62,$88,$08,$70,$08,$12,$22,$22,$f4,$00,$00,$82 // ....b..p..""....
        .byte $e8,$05,$40,$84,$21,$22,$22,$00,$03,$00,$87,$88,$05,$40,$84,$21 // ..@.!""......@.!
        .byte $22,$22,$00,$03,$00,$8e,$88,$04,$40,$08,$00,$00,$00,$00,$06,$00 // ""......@.......
        .byte $95,$88,$09,$80,$05,$32,$22,$22,$08,$13,$00,$a3,$a8,$81,$11,$11 // .....2""........
        .byte $11,$11,$95,$81,$41,$41,$81,$81,$91,$41,$41,$91,$41,$91 // ....AA...AA.A.

txt_19fe:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a05:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a0c:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a13:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a1a:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a21:
        .text "!!!!!!"
        .byte $96,$81,$91                           // ...

txt_1a2a:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a31:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a38:
        .text "AAAAAA"
        .byte $96,$41,$51,$11,$91                   // .AQ..

txt_1a43:
        .text "AAAAAA"
        .byte $96,$41,$91,$11,$91,$81,$11,$11,$91,$41,$91 // .A.......A.

txt_1a54:
        .text "AAAAAAAA"
        .byte $98
        .byte $55,$91,$81
        .text "AAAA"
        .byte $95,$81,$91
        .byte $41,$91
        .byte $41,$91,$81
        .byte $91,$81,$91
        .text "AAAA"
        .byte $94

txt_1a74:
        .text "!!!!!!"
        .byte $96                                   // .

txt_1a7b:
        .text "!!!!!!"
        .byte $96,$47,$91,$11,$11,$11,$81,$94,$41,$91,$41,$91,$81,$91,$41,$41 // .G......A.A...AA
        .byte $41,$91,$78,$0c,$09,$08,$08,$00,$78,$0f,$0d,$78,$66,$00,$00,$00 // A.x.....x..xf...
        .byte $00,$00,$00,$0c,$0c,$07,$07,$04,$04,$00,$07,$07,$0c,$0c,$03,$03 // ................
        .byte $00,$07,$07,$0c,$0c,$03,$03,$00,$0f,$0f,$0c,$0c,$07,$07,$00,$10 // ................
        .byte $10,$0c,$0c,$07,$07,$00,$0c,$0c,$07,$07,$04,$04,$00,$78,$00,$0f // .............x..
        .byte $0f,$0c,$0c,$07,$07,$00,$10,$10,$0c,$0c,$07,$07,$00,$0c,$0c,$07 // ................
        .byte $07,$05,$05,$00,$00,$00,$00,$00,$0b,$0b,$07,$07,$04,$04,$00,$00 // ................
        .byte $00,$00,$00,$78,$00,$00,$00,$00,$00,$0c,$0c,$0c,$0c,$00,$00,$00 // ...x............
        .byte $00,$00,$00,$00,$78,$09,$08,$07,$05,$00,$78,$00,$00,$00,$00,$00 // ....x.....x.....
        .byte $78,$0d,$78,$00,$0c,$0c,$00,$00,$00,$0a,$0a,$05,$05,$00,$00,$00 // x.x.............
        .byte $07,$07,$05,$05,$00,$00,$00,$00,$00,$09,$08,$05,$78,$00,$00,$00 // ............x...
        .byte $00,$00,$78,$00,$09,$08,$06,$00,$f7,$23,$12,$34,$04,$00,$00,$00 // ..x......#.4....
        .byte $00,$00,$20,$00,$00,$00,$00,$00,$f3,$f5,$00,$00,$eb,$02,$fc,$01 // .. .............
        .byte $00,$00,$0a,$2f,$18,$40,$00,$00,$f6,$ff,$00,$00,$00,$00,$00,$00 // .../.@..........
        .fill 8, $00
        .byte $f3,$19,$00,$00,$fb,$00,$00,$00,$00,$00,$10,$00,$00,$00,$00,$00 // ................
        .byte $f3,$40,$00,$00,$0a,$fc,$00,$00,$00,$00,$09,$10,$00,$00,$00,$00 // .@..............
        .byte $f3,$f0,$00,$00,$f4,$00,$00,$00,$00,$00,$10,$00,$00,$00,$00,$00 // ................
        .byte $f3,$f0,$00,$00,$f6,$03,$00,$00,$00,$00,$10,$10,$00,$00,$00,$00 // ................
        .byte $f3,$90,$00,$00,$fb,$00,$00,$00,$00,$00,$10,$00,$00,$00,$00,$00 // ................
        .byte $f1,$60,$00,$00,$f8,$01,$00,$00,$00,$00,$04,$10,$00,$00,$00,$00 // .`..............
        .byte $a0,$06,$06,$06,$06,$01,$01,$01,$01,$01,$01,$01,$06,$a1,$01,$01 // ................
        .byte $01,$01,$06,$06,$01,$01,$06,$00,$02,$ff,$a0,$00,$08,$08,$08,$08 // ................
        .byte $09,$09,$02,$02,$02,$02,$02,$02,$02,$02,$a1,$02,$02,$02,$02,$02 // ................
        .byte $02,$02,$02,$02,$02,$05,$ff,$a0,$00,$00,$04,$04,$00,$05,$03,$03 // ................
        .byte $07,$07,$04,$04,$a1,$03,$03,$07,$07,$00,$05,$04,$04,$04,$04,$04 // ................
        .byte $ff,$c9,$1b,$e3,$1b,$00,$1c,$01,$0f,$b0,$7e,$7e,$7e,$7e,$7f,$86 // ..........~~~~..
        .byte $63,$15,$21,$61,$24,$63,$15,$21,$24,$61,$15,$63,$24,$13,$1f,$61 // c.!a$c.!$a.c$..a
        .byte $23,$63,$13,$1f,$23,$61,$13,$63,$23,$1a,$26,$61,$29,$63,$1a,$26 // #c..#a.c#.&a)c.&
        .byte $29,$61,$1a,$63,$29,$15,$21,$61,$24,$63,$15,$21,$24,$61,$15,$63 // )a.c).!a$c.!$a.c
        .byte $24,$7f,$86,$60,$2d,$65,$39,$39,$39,$60,$2d,$65,$39,$39,$39,$60 // $..`-e999`-e999`
        .byte $2d,$64,$37,$37,$37,$60,$2d,$64,$37,$37,$37,$60,$2d,$65,$32,$32 // -d777`-d777`-e22
        .byte $32,$60,$2d,$65,$32,$32,$32,$60,$2d,$65,$39,$39,$39,$60,$2d,$65 // 2`-e222`-e999`-e
        .byte $39,$39,$39,$7f,$86,$62,$40,$7e,$7e,$7e,$c5,$3e,$3c,$7e,$3c,$3e // 999..b@~~~.><~<>
        .byte $7e,$3b,$7e,$37,$7e,$7e,$7e,$3e,$41,$7e,$41,$40,$7e // ~;~7~~~>A~A@~

txt_1ca6:
        .text ">"
        .byte $40                                   // @ character
        .byte $c8                                   // 'H' | $80 (end-of-string marker)
        .byte $40,$3c,$7e,$39,$7e,$7e,$7e,$7e,$7e,$7e,$7f,$86,$62,$40,$7e,$7e // @<~9~~~~~~..b@~~
        .byte $7e,$c7,$3e,$3c,$7e,$3c,$3e,$7e,$7e,$7e,$7e,$7e,$7e,$7e,$7e,$41 // ~.><~<>~~~~~~~~A
        .byte $7e,$41,$40,$7e,$3e,$7e,$40,$7e,$3c,$7e,$39,$7e,$7e,$7e,$7e,$7f // ~A@~>~@~<~9~~~~.
        .byte $83,$70
        .text "''''"
        .byte $7e

txt_1ce0:
        .text "'# %"
        .byte $7e
        .byte $29,$7e
        .byte $2d,$7e,$7e,$7e
        .text "''''"
        .byte $7e

txt_1cf0:
        .text "'# %"
        .byte $7e
        .byte $29,$7e
        .byte $2d,$7e
        .byte $27,$7e
        .text "''''"
        .byte $7e

txt_1d00:
        .text "'# %"
        .byte $7e
        .byte $29,$7e
        .byte $2d,$7e,$7e,$7e,$61
        .text "----"
        .byte $7e
        .byte $2d,$7e
        .byte $2d
        .byte $2d,$7e                               // -~

txt_1d16:
        .text "---*'-"
        .byte $7f,$86,$63,$15,$21,$7e,$15,$21,$7e,$15,$13,$7e,$7e,$7e,$13,$10 // ..c.!~.!~..~~~..
        .byte $13,$15,$7e,$0e,$1a,$7e,$0e,$1a,$7e,$0e,$15,$7e,$7e,$7e,$15,$13 // ..~..~..~..~~~..
        .byte $10,$13,$15,$7f,$86,$62,$45,$7e,$39,$7e,$45,$7e,$39,$7e,$43,$3e // .....bE~9~E~9~C>
        .byte $3b,$3e,$43,$7e,$7e,$7e,$41,$7e,$3c,$7e,$41,$7e,$3c,$7e,$43,$ca // ;>C~~~A~<~A~<~C.
        .byte $3e,$40,$40,$7e,$7e,$7e,$7e,$7e,$7f,$86,$60,$43,$69,$45,$60,$43 // >@@~~~~~..`CiE`C
        .byte $69,$45,$60,$43,$69,$45,$60,$43,$83,$69,$45,$45,$86,$60,$43,$69 // iE`CiE`C.iEE.`Ci
        .byte $45,$60,$43,$69,$45,$60,$43,$69,$45,$60,$43,$83,$69,$45,$45,$7f // E`CiE`CiE`C.iEE.
        .byte $86,$60,$43,$69,$45,$61,$43,$69,$45,$60,$43,$69,$45,$61,$43,$83 // .`CiEaCiE`CiEaC.
        .byte $69,$45,$45,$86,$60,$43,$69,$45,$61,$43,$69,$45,$60,$43,$69,$45 // iEE.`CiEaCiE`CiE
        .byte $61,$43,$83,$69,$45,$45,$7f,$22,$28,$5b,$8d,$b4,$d9,$1d,$40,$65 // aC.iEE."([....@e
        .byte $8c,$1c,$1c,$1c,$1c,$1c,$1c,$1d,$1d,$1d,$1d // ...........

dat_1dc7:
        // === Fill data (1 bytes, $1dc7-$1dc7) ===
        .byte $00                                   // .

// --- Region $1e2d-$1e30 ---
.pc = $1e2d "dat_1e2d"

dat_1e2d:
        .byte $01,$01,$02                           // ...

dat_1e30:
        // === Fill data (1 bytes, $1e30-$1e30) ===
        .byte $00                                   // .

// --- Region $1e62-$1e81 ---
.pc = $1e62 "dat_1e62"

dat_1e62:
        .byte $03,$04,$05,$06,$07,$08,$00,$09,$0a,$0b,$0c,$0d,$0e,$00,$0f,$10 // ................
        .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1c,$1d,$1e // ...............

dat_1e81:
        // === Fill data (1 bytes, $1e81-$1e81) ===
        .byte $00                                   // .

// --- Region $1eb2-$1ed0 ---
.pc = $1eb2 "dat_1eb2"

dat_1eb2:
        .byte $1f,$1c,$57,$21,$1c,$1c,$22,$17,$1c,$23,$24,$1c,$19,$25,$1c,$1c // ..W!.."..#$..%..
        .byte $26,$27,$1c,$28,$29,$1c,$1c,$00,$1c,$1c,$2a,$1c,$1c,$57 // &'.().....*..W

dat_1ed0:
        // === Fill data (1 bytes, $1ed0-$1ed0) ===
        .byte $00                                   // .

// --- Region $1f02-$1f24 ---
.pc = $1f02 "dat_1f02"

dat_1f02:
        .byte $1c,$1c
        .text "W+,,-"
        .byte $1c,$1c
        .text "./001"
        .byte $1c,$1c
        .byte $26,$27,$1c,$1c
        .byte $32,$1c,$1c,$00
        .text "3345"
        .byte $1c

txt_1f1f:
        .text "W6337"
        .byte $00                                   // string terminator

// --- Region $1f52-$1f74 ---
.pc = $1f52 "dat_1f52"

dat_1f52:
        .byte $1c,$1c,$57,$00,$00,$00,$00,$38,$1c,$23,$24,$1c,$39,$3a,$3b,$1c // ..W....8.#$.9:;.
        .byte $26,$27,$1c,$1c,$3c,$3d,$1c,$00,$1c   // &'..<=...

txt_1f6b:
        .text ">?"
        .byte $40                                   // @ character
        .text "AW!"
        .byte $1c,$42,$43                           // .BC

dat_1f74:
        // === Fill data (1 bytes, $1f74-$1f74) ===
        .byte $00                                   // .

// --- Region $1fa2-$1fc3 ---
.pc = $1fa2 "dat_1fa2"

dat_1fa2:
        .byte $2c,$2c,$44,$00,$00,$00,$00,$00       // ,,D.....

txt_1faa:
        .text "EFGH"
        .byte $00                                   // string terminator
        .byte $00                                   // .

txt_1fb0:
        .text "IJKL,,"
        .byte $00                                   // string terminator

txt_1fb7:
        .text "MNOPQ"
        .byte $00                                   // string terminator
        .byte $00                                   // .

txt_1fbe:
        .text "RSTUV"
        .byte $00                                   // string terminator

// --- Region $2197-$21ff ---
.pc = $2197 "bmp_2197"

bmp_2197:
        // === Bitmap data (105 bytes, $2197-$21ff) ===
        .fill 10, $00
        .byte $0b,$37,$00,$00,$00,$08,$00,$14,$0f,$00,$00,$00,$00,$00,$00,$00 // .7..............
        .byte $00,$00,$0b,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18 // ................
        .byte $19,$1a,$1b,$1c,$1d,$1e,$1f,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$18 // ................
        .byte $19,$1a,$1b,$1c,$1d,$1e,$1f,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$18 // ................
        .byte $14,$1a,$1b,$1c,$1d,$1e,$1f,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$18 // ................
        .byte $19,$1a,$1b,$1c,$1d,$1e,$1f,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f // ...............

// --- Region $229c-$229c ---
.pc = $229c "dat_229c"

dat_229c:
        // === Fill data (1 bytes, $229c-$229c) ===
        .byte $00                                   // .

// --- Region $2300-$24e0 ---
.pc = $2300 "dat_2300"

dat_2300:
        .byte $20,$48,$09,$60,$07,$01,$0d,$05,$12   //  H.`.....

txt_2309:
        .text " !!!     H"
        .byte $05,$12,$05
        .byte $20,$09,$13

txt_2319:
        .text " MC V"
        .byte $01,$0c,$01,$03,$08
        .byte $20,$17,$09,$14,$08
        .byte $20
        .byte $01,$0e,$0f,$14,$08,$05,$12,$20,$03,$12,$01,$03,$0b,$20,$06,$12 // ....... ..... ..
        .byte $0f,$0d                               // ..

txt_233b:
        .text " REACT "
        .byte $06,$0f,$12
        .byte $20,$19,$0f,$15
        .byte $2e,$20
        .byte $4e,$0f,$17,$20,$09,$14,$27,$13,$20,$01,$20,$03,$0f,$0f,$0c,$20 // N.. ..'. . .... 
        .byte $07,$01,$0d,$05                       // ....

txt_235f:
        .text " CROSSFIRE +3.  "
        .text "CREDITZ:  C"
        .byte $0f,$04,$05
        .byte $20,$26
        .byte $20,$0c,$0f,$07,$0f,$20,$02,$19,$20,$42,$09,$0d,$02,$01,$13 //  .... .. B.....

txt_238e:
        .text "    "
        .byte $1a,$01,$18
        .byte $20,$02,$19
        .byte $20,$59,$0f,$0b,$0f

txt_239d:
        .fill 8, $20
        .byte $2e,$2e,$2e,$01,$0e,$04,$20,$0e,$0f,$17,$20,$14,$08,$09,$13,$3a // ...... ... ....:
        .byte $20,$07,$12,$05,$05,$14,$1a,$20,$07,$0f,$20,$14,$0f,$3a,$20,$43 //  ...... .. ..: C
        .byte $09,$14,$01,$04,$05,$0c,$2c,$20,$4e,$01,$15,$13,$05,$01,$2c,$20 // ......, N....., 
        .byte $43,$15,$0c,$14,$2c,$20,$41,$03,$03,$15,$12,$01,$03,$19,$2c,$20 // C..., A......., 
        .byte $54,$08,$05,$20,$52,$15,$0c,$09,$0e,$07,$20,$43,$0f,$0d,$10,$01 // T.. R..... C....
        .byte $0e,$19                               // ..

txt_23f7:
        .text " + S"
        .byte $15,$03,$03,$05,$13
        .byte $2c,$20,$54,$08,$05
        .byte $20,$53
        .byte $05,$03,$0f,$0e,$04,$20,$52,$09,$0e,$07,$2c,$20,$43,$0f,$15,$10 // ..... R..., C...
        .byte $0c,$05,$2c,$20,$42,$12,$0f,$0e,$18,$2c,$20,$4d,$01,$0e,$09,$01 // .., B...., M....
        .byte $18,$2c,$20,$4e,$0f,$20,$0e,$01,$0d,$05,$2c,$20,$43,$08,$01,$12 // ., N. ...., C...
        .byte $07,$05,$04,$2c,$20,$54,$12,$09,$01,$04,$2c,$20,$52,$05,$06,$0c // ..., T...., R...
        .byte $05,$18,$2c,$20,$45,$11,$15,$09,$0e,$0f,$18,$05,$2c,$20,$41,$09 // .., E......., A.
        .byte $12,$17,$0f,$0c,$06,$20,$54,$05,$01,$0d,$20,$0f,$0e // ..... T... ..

txt_2464:
        .text " 1988, F"
        .byte $01,$09,$12,$0c,$09,$07,$08,$14
        .byte $2c,$20,$41,$16,$01,$0e,$14,$07,$01,$12,$04,$05,$20,$01,$0e,$04 // , A......... ...
        .byte $20,$0e,$0f,$0e,$02,$0f,$04,$19,$20,$05,$0c,$13,$05 //  ....... ....

txt_2491:
        .text "...             "
        .byte $52,$05,$01,$03,$14,$20,$09,$13,$20,$0f,$06,$06 // R.... .. ...

txt_24ad:
        .text " ..."

dat_24b1:
        // === Fill data (47 bytes, $24b1-$24df) ===
        .fill 47, $20

dat_24e0:
        // === Fill data (1 bytes, $24e0-$24e0) ===
        .byte $00                                   // .
