// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:14
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $2fff  (10240 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1c00 (7168)
// IRQ handler:  $1d00 (irq_1d00)
// IRQ handler:  $2218 (irq_2218)
//
// Code: 2574 bytes, Data: 7666 bytes
// Labels: 250, Subroutines: 9
//
// Cross-references: all OK
// ============================================


// --- Region $1000-$1004 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $214e

sub_1000:
        jmp loc_1908

scr_1003:
        // === Screen RAM (2 bytes, $1003-$1004) ===
        .byte $4c,$e0                               // scrcode: ..

// --- Region $102a-$1300 ---
.pc = $102a "loc_102a"

loc_102a:
        inc $1942
        inc $1943
        inc $1944
        lda #$1f
        sta $d418
        ldx #$02
        dec $1973
        bpl loc_1045
        lda $191d
        sta $1973

loc_1045:
        bit $d020
        stx $ff
        lda $191e,x
        sta $1956
        tay
        lda $1973
        cmp $191d
        bne loc_106b
        lda dat_1749,x
        sta $fb
        lda $174c,x
        sta $fc
        dec $1927,x
        bmi loc_106e
        jmp loc_11fa

loc_106b:
        jmp loc_120a

loc_106e:
        ldy $1921,x
        lda ($fb),y
        cmp #$fe
        beq loc_108c
        cmp #$ff
        bne loc_1094
        lda #$00
        sta $1927,x
        sta $1921,x
        sta $1924,x
        sta $1972
        jmp loc_106e

loc_108c:
        lda #$02
        sta $1974
        jmp loc_190b

loc_1094:
        sta $1967
        and #$80
        beq loc_10a9
        lda $1967
        and #$1f
        sta $194f,x
        inc $1921,x
        jmp loc_106e

loc_10a9:
        lda $1967
        and #$40
        beq loc_10be
        lda $1967
        and #$3f
        sta $1976,x
        inc $1921,x
        jmp loc_106e

loc_10be:
        lda $1967
        asl
        tay
        lda $174f,y
        sta $fd
        lda $1750,y
        sta $fe
        lda #$00
        sta $193f,x
        ldy $1924,x
        sta $1942,x
        lda #$03
        sta $1961,x

loc_10dd:
        lda ($fd),y
        sta $f8
        and #$f0
        cmp #$f0
        bne loc_10f7
        lda #$01
        sta dat_1980,x
        inc $1924,x
        iny
        lda ($fd),y
        sta $f8
        jmp loc_1157

loc_10f7:
        lda #$00
        sta dat_1980,x
        lda $f8
        and #$f0
        cmp #$e0
        bne loc_1130
        lda $f8
        and #$01
        clc
        adc #$01
        sta $193f,x
        lda $f8
        and #$0e
        lsr
        sta $1965
        inc $1924,x
        iny
        lda ($fd),y
        pha
        and #$f0
        sta $1964
        pla
        and #$0f
        sta smc_12f8                                // SMC: modifies $12f8
        inc $1924,x
        iny
        lda ($fd),y
        sta $f8

loc_1130:
        lda $f8
        and #$e0
        cmp #$c0
        bne loc_1142
        lda $f8
        and #$1f
        sta $1933,x
        jsr sub_11ed

loc_1142:
        lda $f8
        and #$c0
        cmp #$80
        bne loc_1157
        lda $f8
        and #$3f
        sta $192a,x
        jsr sub_11ed
        jmp loc_10dd

loc_1157:
        lda $192a,x
        sta $1927,x
        lda $f8
        clc
        adc $194f,x
        sta $1930,x
        tay
        lda spr_1564,y
        pha
        lda $15c4,y
        ldy $1956
        sta $d401,y
        sta $1936,x
        sta $1939,x
        pla
        sta $d400,y
        sta $193c,x
        lda dat_1980,x
        bne loc_11cc
        lda $1933,x
        asl
        asl
        asl
        tax
        stx $1952
        lda $16a3,x
        sta $d405,y
        lda $16a4,x
        sta $d406,y
        lda $16a5,x
        pha
        lda $16a1,x
        pha
        lda $16a2,x
        ldx $ff
        sta $192d,x
        sta $1979,x
        lda #$00
        sta $d402,y
        sta $1945,x
        pla
        sta $194b,x
        and #$0f
        sta $d403,y
        sta $1948,x
        lda #$01
        sta $196f,x
        pla
        sta $196c,x

loc_11cc:
        inc $1924,x
        ldy $1924,x
        lda ($fd),y
        cmp #$ff
        bne loc_11ea

loc_11d8:
        lda #$00
        sta $1924,x
        lda $1976,x
        beq loc_11e7
        dec $1976,x
        bpl loc_11ea

loc_11e7:
        inc $1921,x

loc_11ea:
        jmp loc_1552
// Referenced by: jsr from $113f, $1151

sub_11ed:
        inc $1924,x
        iny
        lda ($fd),y
        cmp #$ff
        beq loc_11d8
        sta $f8
        rts

loc_11fa:
        ldy $1956
        lda $1942,x
        beq loc_120a
        lda $192d,x
        and #$fe
        sta $1979,x

loc_120a:
        lda $1933,x
        asl
        asl
        asl
        tay
        lda $16a6,y
        sta $1953
        lda $16a7,y
        sta $1954
        lda $16a8,y
        sta $1955
        and #$04
        bne loc_1233
        lda $1955
        and #$10
        bne loc_1233
        lda $1953
        bne loc_1236

loc_1233:
        jmp loc_12eb

loc_1236:
        pha
        and #$78
        lsr
        lsr
        lsr
        sta $1958,x
        pla
        and #$07
        sta $1957
        lda $195b,x
        beq loc_1254
        dec $195e,x
        bne loc_1268
        inc $195b,x
        bpl loc_1268

loc_1254:
        inc $195e,x
        lda $1958,x
        cmp $195e,x
        bcs loc_1268
        sta $195e,x
        dec $195b,x
        dec $195e,x

loc_1268:
        lda $1930,x
        tay
        lda $1565,y
        sec
        sbc spr_1564,y
        sta $197f
        lda $15c5,y
        sbc $15c4,y
        adc $1942,x
        lsr

loc_1280:
        dec $1957
        bmi loc_128c
        lsr
        ror $197f
        jmp loc_1280

loc_128c:
        sta $197e
        lda spr_1564,y
        sta $197c
        lda $15c4,y
        sta $197d
        lda $1958,x
        lsr
        tay

loc_12a0:
        dey
        bmi loc_12b9
        sec
        lda $197c
        sbc $197f
        sta $197c
        lda $197d
        sbc $197e
        sta $197d
        jmp loc_12a0

loc_12b9:
        lda $1942,x
        cmp #$04
        bcc loc_12eb
        ldy $195e,x

loc_12c3:
        dey
        bmi loc_12dc
        clc
        lda $197c
        adc $197f
        sta $197c
        lda $197d
        adc $197e
        sta $197d
        jmp loc_12c3

loc_12dc:
        ldy $1956
        lda $197c
        sta $d400,y
        lda $197d
        sta $d401,y

loc_12eb:
        ldx $ff
        ldy $1956
        lda $192a,x
        sec
        sbc $1927,x
.label smc_12f8 = * + 1
        cmp #$00                                    // !SMC: modified by $1125
        bcc loc_1341
        lda $193f,x
        beq loc_1341

spr_1300:
        // === Sprite data (1 bytes, $1300-$1300) ===
        .byte $29

// --- Region $1340-$1563 ---
.pc = $1340 "Segment $1340"
.label loc_1341 = * + 1
        .byte $d4,$ad                               // nop $ad,x // ILLEGAL
        .byte $54,$19                               // nop $19,x // ILLEGAL
        beq loc_13b2
        and #$07
        tay
        dey
        tya
        asl
        asl
        tay
        lda $1695,y
        cmp $1942,x
        bcc loc_1359
        jmp loc_1363

loc_1359:
        iny
        iny
        lda $1695,y
        cmp $1942,x
        bcc loc_136d

loc_1363:
        iny
        lda $1695,y
        sta $194e
        jmp loc_1375

loc_136d:
        lda $1954
        and #$fc
        sta $194e

loc_1375:
        lda $196f,x
        bne loc_1397
        lda $1945,x
        sec
        sbc $194e
        sta $1945,x
        lda $1948,x
        sbc #$00
        sta $1948,x
        cmp #$01
        bcs loc_13b2
        lda #$01
        sta $196f,x
        bne loc_13b2

loc_1397:
        lda $1945,x
        clc
        adc $194e
        sta $1945,x
        lda $1948,x
        adc #$00
        sta $1948,x
        cmp #$0f
        bcc loc_13b2
        lda #$00
        sta $196f,x

loc_13b2:
        lda #$00
        sta smc_13d4                                // SMC: modifies $13d4
        lda $194b,x
        and #$80
        beq loc_13ca
        lda $1942,x
        and #$01
        beq loc_13ca
        lda #$b0
        sta smc_13d4                                // SMC: modifies $13d4

loc_13ca:
        ldx $ff
        ldy $1956
        lda $1945,x
        clc
.label smc_13d4 = * + 1
        adc #$00                                    // !SMC: modified by $13b4, $13c7
        sta $d402,y
        lda $1948,x
        adc #$00
        sta $d403,y
        lda $1955
        and #$40
        beq loc_13fb
        ldx $ff
        lda $1942,x
        cmp #$03
        bcc loc_13fb
        and #$03
        tax
        lda $1632,x
        ldx $ff
        sta $1979,x

loc_13fb:
        sty $1967
        lda $1955
        and #$01
        beq loc_142f
        ldx $ff
        stx $1975
        lda #$89
        sta $f9
        lda #$1e
        sta $fa
        ldx $ff
        lda $1942,x
        ldy #$0b
        cmp ($f9),y
        bcs loc_1450
        ldy #$0a

loc_141f:
        cmp ($f9),y
        bcs loc_145b
        dey
        cpy #$06
        bne loc_141f
        cmp ($f9),y
        bcs loc_1432
        jmp loc_147b

loc_142f:
        jmp loc_146a

loc_1432:
        lda $ff
        asl
        bne loc_143a
        clc
        adc #$01

loc_143a:
        sta $1968
        ldx $1972
        txa
        and $1968
        bne loc_144e
        txa
        clc
        adc $1968
        sta $d417

loc_144e:
        ldy #$06

loc_1450:
        dey
        dey
        dey
        dey
        dey
        dey
        lda ($f9),y
        jmp loc_1473

loc_145b:
        dey
        dey
        dey
        dey
        dey
        dey
        lda $1969,x
        clc
        adc ($f9),y
        jmp loc_1473

loc_146a:
        lda $ff
        cmp $1975
        bne loc_147b
        lda #$ff

loc_1473:
        ldx $ff
        sta $1969,x
        sta $d416

loc_147b:
        ldy $1967
        lda $1955
        and #$10
        beq loc_14e3
        lda $1953
        and #$0f
        tax
        lda $163e,x
        sta smc_14af                                // SMC: modifies $14af
        lda $1640,x
        sta smc_14b0                                // SMC: modifies $14b0
        lda $1642,x
        sta smc_14b7                                // SMC: modifies $14b7
        lda $1644,x
        sta smc_14b8                                // SMC: modifies $14b8
        ldx $ff
        lda $1942,x
        cmp #$0f
        bcs loc_14e0
        tax
        dex
.label smc_14af = * + 1
.label smc_14b0 = * + 2
        lda $1656,x                                 // !SMC: modified by $148e, $1494
        ldy $ff
        sta $1979,y
.label smc_14b7 = * + 1
.label smc_14b8 = * + 2
        lda $1646,x                                 // !SMC: modified by $149a, $14a0
        sta $1968
        lda $1953
        and #$10
        beq loc_14cf
        ldx $ff
        lda $1930,x
        clc
        adc $1968
        jmp loc_1542

loc_14cf:
        ldy $1956
        lda $1968
        clc
        adc #$0d
        sta $d401,y
        lda #$00
        sta $d400,y

loc_14e0:
        jmp loc_1552

loc_14e3:
        lda $1955
        and #$80
        beq loc_151e
        ldx $ff
        ldy $1956
        lda $1942,x
        cmp #$02
        bcs loc_150a
        lda #$48
        sta $d401,y
        lda #$00
        sta $d400,y
        ldx $ff
        lda #$81
        sta $1979,x
        jmp loc_1552

loc_150a:
        lda $193c,x
        sta $d400,y
        lda $1936,x
        sta $d401,y
        lda $192d,x
        and #$fe
        sta $1979,x

loc_151e:
        lda $1955
        and #$04
        beq loc_1552
        dec $1961,x
        bpl loc_152f
        lda #$02
        sta $1961,x

loc_152f:
        ldx $ff
        lda $1961,x
        tax
        lda $1686,x
        sta $41
        ldx $ff
        lda $1930,x
        clc
        adc $41

loc_1542:
        tax
        ldy $1956
        lda spr_1564,x
        sta $d400,y
        lda $15c4,x
        sta $d401,y

loc_1552:
        ldx $ff
        ldy $1956
        lda $1979,x
        sta $d404,y
        dex
        bmi loc_1563
        jmp loc_1045

loc_1563:
        rts

// --- Region $18d9-$1916 ---
.pc = $18d9 "sub_18d9"
// Referenced by: jsr from $1908

sub_18d9:
        lda #$00
        ldx #$62

loc_18dd:
        sta $1921,x
        dex
        bpl loc_18dd
        lda #$b0
        sta $1972
        lda #$00
        sta $1942
        sta $1943
        sta $1944
        ldx #$02

loc_18f5:
        sta $1921,x
        sta $1924,x
        sta $1927,x
        sta $1930,x
        dex
        bpl loc_18f5
        sta $1974
        rts

loc_1908:
        jsr sub_18d9

loc_190b:
        ldx #$00
        txa

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

// --- Region $1be0-$1cbd ---
.pc = $1be0 "sub_1be0"
// Referenced by: jsr from $1ce3

sub_1be0:
        ldx #$00

loc_1be2:
.label smc_1be3 = * + 1
        lda $2371,x                                 // !SMC: modified by $1bf7
        sta $d9c8,x
        inx
        cpx #$09
        bne loc_1be2
        ldx smc_1be3
        dex
        cpx #$57
        bne loc_1bf7
        ldx #$74

loc_1bf7:
        stx smc_1be3                                // SMC: modifies $1be3
        jmp loc_102a

chr_1bfd:
        // === Charset data (3 bytes, $1bfd-$1bff) ===
        .byte $60,$00,$00                           // char 0 (partial)

main_1c00:
        sei
        lda #$0e
        sta $0286
        jsr $e544
        ldx #$00

loc_1c0b:
        lda dat_2000,x
        sta $0400,x
        inx
        bne loc_1c0b
        lda #$12
        sta $d018
        sta $d016
        lda #$00
        sta $d020
        sta $d021
        lda #$0e
        sta $d023
        lda #$0f
        sta $d022
        lda #$01
        sta $d01a
        lda #$7f
        sta $dc0d
        lda #$1b
        sta $d011
        lda #$32
        sta $d012
        lda #$1d
        sta $0315
        lda #$00
        sta $0314
        ldx #$00

loc_1c4e:
        lda $1cf0,x
        sta $d000,x
        inx
        cpx #$10
        bne loc_1c4e
        lda #$00
        sta $d017
        sta $d01d
        lda #$ff
        sta $d015
        sta $d01c
        ldx #$00
        lda #$0f

loc_1c6d:
        sta $d027,x
        inx
        cpx #$08
        bne loc_1c6d
        lda #$0c
        sta $d025
        lda #$01
        sta $d026
        nop
        ldx #$00

loc_1c82:
        lda $1cc0,x
        sta $06ac,x
        inx
        cpx #$20
        bne loc_1c82
        lda #$00
        sta $ab
        sta $3b
        lda #$08
        sta $ac
        lda #$0f
        sta $3c
        lda #$80
        sta smc_2297                                // SMC: modifies $2297
        ldx #$00

loc_1ca2:
        lda txt_1d60,x
        sta $07f8,x
        inx
        cpx #$08
        bne loc_1ca2
        ldx #$00

loc_1caf:
        lda $2700,x
        sta $0540,x
        inx
        cpx #$f0
        bne loc_1caf
        jmp loc_2140

chr_1cbd:
        // === Charset data (1 bytes, $1cbd-$1cbd) ===
        .byte $40                                   // char 0 (partial)

// --- Region $1ce0-$1ce7 ---
.pc = $1ce0 "sub_1ce0"
// Referenced by: jsr from $1d1b

sub_1ce0:
        sta $d016
        jsr sub_1be0
        rts

chr_1ce7:
        // === Charset data (1 bytes, $1ce7-$1ce7) ===
        .byte $00                                   // char 0 (partial)

// --- Region $1d00-$1d4a ---
.pc = $1d00 "irq_1d00"

irq_1d00:
        ldx #$03

loc_1d02:
        dex
        bne loc_1d02

loc_1d05:
        lda dat_1d80,x
        sta $d020
        sta $d021
        ldy $1d90,x

loc_1d11:
        dey
        bne loc_1d11
        inx
        cpx #$04
        bne loc_1d05
        lda #$18
        jsr sub_1ce0

loc_1d1e:
        lda $d012
        cmp #$6e
        bne loc_1d1e
        ldx #$0a

loc_1d27:
        dex
        bne loc_1d27

loc_1d2a:
        lda $1d88,x
        sta $d020
        sta $d021
        ldy $1d98,x

loc_1d36:
        dey
        bne loc_1d36
        inx
        cpx #$04
        bne loc_1d2a
        inc $d019
        lda #$08
        sta $d016
        jmp loc_1e00

chr_1d49:
        // === Charset data (2 bytes, $1d49-$1d4a) ===
        .byte $a9,$01                               // char 0 (partial)

// --- Region $1e00-$1ecf ---
.pc = $1e00 "loc_1e00"

loc_1e00:
        inc $1ef0
        inc $1ef1
        inc $1ef2
        inc $1ef3
        inc $1ef3
        inc $1ef4
        inc $1ef4
        inc $1ef5
        inc $1ef5
        inc $1ef5
        inc $1ef6
        inc $1ef6
        inc $1ef6
        inc $1ef7
        inc $1ef7
        inc $1ef7
        inc $1ef7
        ldy #$00

loc_1e35:
        ldx $1ef0,y
        lda $1f00,x
.label smc_1e3c = * + 1
        sta $d000                                   // !SMC: modified by $1e59
        cpx #$00
        bpl loc_1e4c
        lda dat_1ee8,y
        clc
        adc $1eff
        sta $1eff

loc_1e4c:
        inc smc_1e3c
        inc smc_1e3c
        iny
        cpy #$08
        bne loc_1e35
        lda #$00
        sta smc_1e3c                                // SMC: modifies $1e3c
        lda $1eff
        sta $d010
        lda #$00
        sta $1eff
        tax
        ldy #$27

loc_1e6a:
.label smc_1e6b = * + 1
        lda $1da9,x                                 // !SMC: modified by $1e86
        sta $daac,x
        sta $da58,x
        sta $da80,y
        dey
        inx
        cpx #$28
        bne loc_1e6a
        ldx smc_1e6b
        inx
        cpx #$c0
        bne loc_1e86
        ldx #$a0

loc_1e86:
        stx smc_1e6b                                // SMC: modifies $1e6b
        lda #$a8
        sta $d012
        lda #$18
        sta $0314
        lda #$22
        sta $0315
        ldx chr_22e0
        cpx #$19
        bne loc_1eab
        ldx smc_2105
        ldy smc_2185
        sty smc_2105                                // SMC: modifies $2105
        stx smc_2185                                // SMC: modifies $2185

loc_1eab:
        lda $d012
        cmp #$a5
        bne loc_1eab
        ldx #$0a

loc_1eb4:
        dex
        bne loc_1eb4
        lda #$0f
        sta $d020
        sta $d021
        ldx #$0b

loc_1ec1:
        dex
        bne loc_1ec1
.label smc_1ec5 = * + 1
        lda #$00                                    // !SMC: modified by $21c7, $23d3
        sta $d020
        sta $d021
        jmp $febc

chr_1ecf:
        // === Charset data (1 bytes, $1ecf-$1ecf) ===
        .byte $00                                   // char 0 (partial)

// --- Region $2100-$2137 ---
.pc = $2100 "sub_2100"
// Referenced by: jsr from $23a0

sub_2100:
        lda $2380
        sec
.label smc_2105 = * + 1
        sbc #$03                                    // !SMC: modified by $1ea5
        and #$07
        sta $2380
        bcc loc_210e
        rts

loc_210e:
        ldx #$00

loc_2110:
        lda $0659,x
        sta $0658,x
        inx
        cpx #$27
        bne loc_2110
        ldy #$00

loc_211d:
        lda ($ab),y
        bpl loc_212b
        lda #$20
        sta $ab
        lda #$25
        sta $ac
        bne loc_211d

loc_212b:
        clc
        adc #$80
        sta $067f
        inc $ab
        bne loc_2137

chr_2135:
        // === Charset data (2 bytes, $2135-$2136) ===
        .byte $e6,$ac                               // char 0 (partial)

loc_2137:
        rts

// --- Region $2140-$2166 ---
.pc = $2140 "loc_2140"

loc_2140:
        ldx #$00
        lda #$0f

loc_2144:
        sta $d940,x
        inx
        cpx #$f0
        bne loc_2144
        lda #$00
        jsr sub_1000
        lda $3fff
        sta $217f
        lda #$00
        sta $3fff
        cli

loc_215d:
        lda $dc01
        cmp #$ef
        bne loc_215d
        jmp loc_2800

// --- Region $2180-$21b7 ---
.pc = $2180 "sub_2180"
// Referenced by: jsr from $21fa

sub_2180:
        lda $2381
        sec
.label smc_2185 = * + 1
        sbc #$02                                    // !SMC: modified by $1ea8
        and #$07
        sta $2381
        bcc loc_218e
        rts

loc_218e:
        ldx #$00

loc_2190:
        lda $0681,x
        sta $0680,x
        inx
        cpx #$27
        bne loc_2190
        ldy #$00

loc_219d:
        lda ($3b),y
        bpl loc_21ab
        lda #$00
        sta $3b
        lda #$0f
        sta $3c
        bne loc_219d

loc_21ab:
        clc
        adc #$80
        sta $06a7
        inc $3b
        bne loc_21b7

chr_21b5:
        // === Charset data (2 bytes, $21b5-$21b6) ===
        .byte $e6,$3c                               // char 0 (partial)

loc_21b7:
        rts

// --- Region $21c0-$21cd ---
.pc = $21c0 "loc_21c0"

loc_21c0:
        lda #$f1
        sta smc_23d7                                // SMC: modifies $23d7

loc_21c5:
        lda #$00
        sta smc_1ec5                                // SMC: modifies $1ec5
        jmp loc_2300

chr_21cd:
        // === Charset data (1 bytes, $21cd-$21cd) ===
        .byte $00                                   // char 0 (partial)

// --- Region $21e0-$21fd ---
.pc = $21e0 "sub_21e0"
// Referenced by: jsr from $23c7

sub_21e0:
        ldx #$00

loc_21e2:
.label smc_21e3 = * + 1
        lda $2359,x                                 // !SMC: modified by $21f7
        sta $d978,x
        inx
        cpx #$09
        bne loc_21e2
        ldx smc_21e3
        inx
        cpx #$74
        bne loc_21f7
        ldx #$58

loc_21f7:
        stx smc_21e3                                // SMC: modifies $21e3
        jsr sub_2180
        rts

// --- Region $2218-$22e0 ---
.pc = $2218 "irq_2218"
// Referenced by: jmp from $229f

irq_2218:
        ldy $10
        ldx chr_22e0,y
        inc $10
        cpy #$02
        bne loc_2226
        jmp loc_2247

loc_2226:
        lda $d012
        tay
        and #$07
        ora #$18

loc_222e:
        cpy $d012
        beq loc_222e
        sta $d011
        dex
        bne loc_2226
        lda $d012
        clc
        adc #$06

loc_223f:
        cmp $d012
        bne loc_223f
        jmp loc_2287

loc_2247:
        ldx #$00
        lda chr_22e0
        clc

loc_224d:
        adc $22e1,x
        inx
        cpx #$01
        bne loc_224d
        sta $22e2
        lda #$39
        sbc $22e2
        tax

loc_225e:
        lda $d012
        tay
        and #$07
        ora #$18

loc_2266:
        cpy $d012
        beq loc_2266
        sta $d011
        dex
        bne loc_225e
        lda #$1b
        sta $d011
        lda #$32
        sta $d012
        lda #$00
        sta $10
        lda #$01
        sta $d019
        jmp loc_22a2

loc_2287:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
.label smc_2297 = * + 1
        lda $2380                                   // !SMC: modified by $1c9d
        sta $d016
        inc smc_2297
        jmp irq_2218

loc_22a2:
.label smc_22a3 = * + 1
        lda $2412                                   // !SMC: modified by $22b8
        sta chr_22e0
.label smc_22a9 = * + 1
        lda $245a                                   // !SMC: modified by $22c5
        sta $22e1
        ldx smc_22a3
        inx
        cpx #$48
        bne loc_22b8
        ldx #$00

loc_22b8:
        stx smc_22a3                                // SMC: modifies $22a3
        ldx smc_22a9
        inx
        cpx #$90
        bne loc_22c5
        ldx #$48

loc_22c5:
        stx smc_22a9                                // SMC: modifies $22a9
        lda #$00
        sta $0314
        lda #$1d
        sta $0315
        dec smc_2297
        dec smc_2297
        lda #$08
        sta $d016
        jmp loc_23a0

chr_22e0:
        // === Charset data (1 bytes, $22e0-$22e0) ===
        .byte $01                                   // char 0 (partial)

// --- Region $2300-$2355 ---
.pc = $2300 "loc_2300"

loc_2300:
        jsr $ffea
        lda $cc
        bne loc_2330
        dec $cd
        bne loc_2330
        lda #$14
        sta $cd
        ldy $d3
        lsr $cf
        ldx $0287
        lda ($d1),y
        bcs loc_232b
        inc $cf
        sta $ce
        jsr $ea24
        lda ($f3),y
        sta $0287
        ldx $0286
        lda $ce

loc_232b:
        eor #$80
        jsr $ea1c

loc_2330:
        lda $01
        and #$10
        beq loc_2340
        ldy #$00
        sty $c0
        lda $01
        ora #$20
        bne loc_2348

loc_2340:
        lda $c0
        bne $234a
        lda $01
        and #$1f

loc_2348:
        sta $01
        jsr $eafb
        lda $dc0d
        pla
        tay
        pla
        tax
        pla
        rti

// --- Region $23a0-$23fc ---
.pc = $23a0 "loc_23a0"

loc_23a0:
        jsr sub_2100

loc_23a3:
        lda $d012
        cmp #$04
        bne loc_23a3
        ldx #$0a

loc_23ac:
        dex
        bne loc_23ac
        lda #$0f
        sta $d020
        sta $d021
        ldx #$0b

loc_23b9:
        dex
        bne loc_23b9
        lda #$00
        sta $d020
        sta $d021
        jsr sub_2490
        jsr sub_21e0
        lda $1924
        cmp #$06
        bne loc_23d9

loc_23d1:
        lda #$0f
        sta smc_1ec5                                // SMC: modifies $1ec5
.label smc_23d7 = * + 1
        jmp loc_23f9                                // !SMC: modified by $21c2

loc_23d9:
        cmp #$0e
        bne loc_23e0
        jmp loc_23d1

loc_23e0:
        cmp #$07
        bne loc_23e7
        jmp loc_23d1

loc_23e7:
        cmp #$0f
        bne loc_23ee
        jmp loc_23d1

loc_23ee:
        jmp loc_21c0

chr_23f1:
        // === Charset data (8 bytes, $23f1-$23f8) ===
        .byte $a9,$f9,$8d,$d7,$23,$4c,$00,$23       // char 0 @+0

loc_23f9:
        jmp loc_21c5

chr_23fc:
        // === Charset data (1 bytes, $23fc-$23fc) ===
        .byte $00                                   // char 0 (partial)

// --- Region $2490-$2509 ---
.pc = $2490 "sub_2490"
// Referenced by: jsr from $23c4

sub_2490:
        nop
        ldx #$00

loc_2493:
        ldy chr_250a,x

loc_2496:
        clc
        rol $0ef8,x
        rol $0ef0,x
        rol $0ee8,x
        rol $0ee0,x
        rol $0ed8,x
        rol $0ed0,x
        rol $0ec8,x
        rol $0ec0,x
        rol $0eb8,x
        rol $0eb0,x
        rol $0ea8,x
        rol $0ea0,x
        rol $0e98,x
        rol $0e90,x
        rol $0e88,x
        rol $0e80,x
        rol $0e78,x
        rol $0e70,x
        rol $0e68,x
        rol $0e60,x
        rol $0e58,x
        rol $0e50,x
        rol $0e48,x
        rol $0e40,x
        rol $0e38,x
        rol $0e30,x
        rol $0e28,x
        rol $0e20,x
        rol $0e18,x
        rol $0e10,x
        rol $0e08,x
        rol $0e00,x
        bcc loc_2501
        lda $0ef8,x
        ora #$01
        sta $0ef8,x

loc_2501:
        dey
        bne loc_2496
        inx
        cpx #$08
        bne loc_2493
        rts

// --- Region $2800-$2830 ---
.pc = $2800 "loc_2800"

loc_2800:
        sei
        lda #$36
        sta $01
        nop
        jsr $ff5b
        jsr $fda3
        jsr $fd15
        lsr $d011
        ldx #$31

loc_2814:
        lda chr_2830,x
        sta $033c,x
        dex
        bpl loc_2814
        lda #$00
        ldx #$20

loc_2821:
        sta $d400,x
        dex
        bpl loc_2821
        lda $217f
        sta $3fff
        jmp $033c

chr_2830:
        // === Bitmap data (1 bytes, $2830-$2830) ===
        .byte $a9                                   // .

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

// --- Region $0800-$0b43 ---
.pc = $0800 "spr_0800"

spr_0800:
        // === Charset data (836 bytes, $0800-$0b43) ===
        .byte $b0,$f0,$f0,$30,$d5,$00,$ff,$aa       // char 0 @+0
        .byte $00,$12,$08,$10,$40,$40,$40,$4c       // char 1 @+1
        .byte $55,$00,$01,$00,$10,$00,$00,$03       // char 2 @+2
        .byte $55,$03,$00,$00,$00,$00,$01,$ff       // char 3 @+3
        .byte $55,$95,$04,$08,$0c,$0c,$00,$ff       // char 4 @+4
        .byte $55,$b3,$03,$03,$03,$03,$03,$ff       // char 5 @+5

txt_0830:
        .byte $55,$40,$40,$40,$40,$40,$79,$40       // char 6 @+6
        .byte $55,$00,$c0,$c0,$80,$40,$5b,$7f       // char 7 @+7
        .byte $55,$00,$80,$00,$00,$00,$00,$ff       // char 8 @+8
        .byte $55,$00,$00,$00,$40,$02,$00,$c0       // char 9 @+9
        .byte $00,$50,$04,$0c,$13,$03,$03,$03       // char 10 @+10
        .byte $00,$05,$10,$13,$43,$42,$41,$65       // char 11 @+11
        .byte $55,$00,$00,$00,$00,$00,$00,$6f       // char 12 @+12
        .byte $55,$00,$00,$00,$10,$00,$c0,$ff       // char 13 @+13
        .byte $55,$00,$00,$00,$00,$00,$00,$ff       // char 14 @+14
        .byte $55,$03,$13,$03,$03,$03,$83,$ff       // char 15 @+15
        .byte $00,$05,$10,$10,$40,$40,$40,$4c       // char 16 @+16
        .byte $55,$02,$00,$00,$00,$00,$00,$03       // char 17 @+17
        .byte $55,$00,$00,$00,$01,$00,$0e,$ff       // char 18 @+18
        .byte $55,$00,$30,$30,$20,$10,$56,$ff       // char 19 @+19
        .byte $55,$03,$03,$03,$03,$03,$c3,$ff       // char 20 @+20

txt_08a8:
        .byte $55,$40,$40,$42,$40,$40,$40,$7f       // char 21 @+21
        .byte $55,$00,$00,$00,$00,$08,$00,$fd       // char 22 @+22
        .byte $55,$00,$00,$03,$00,$00,$03,$02       // char 23 @+23
        .byte $55,$00,$00,$00,$00,$00,$00,$ff       // char 24 @+24
        .byte $55,$03,$03,$03,$0b,$03,$03,$ff       // char 25 @+25
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 26 @+26
        .byte $55,$08,$04,$95,$04,$08,$cc,$0c       // char 27 @+27
        .byte $40,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 28 @+28
        .byte $7b,$4c,$40,$40,$7f,$40,$7f,$6a       // char 29 @+29
        .byte $3c,$0c,$30,$30,$f0,$30,$f0,$b0       // char 30 @+30
        .byte $40,$40,$50,$40,$7f,$40,$7f,$6a       // char 31 @+31
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 32 ' '
        .byte $00,$00,$00,$00,$55,$00,$ff,$aa       // char 33 '!'
        .byte $10,$10,$10,$10,$7f,$00,$ff,$aa       // char 34 '"'
        .byte $03,$13,$03,$03,$ff,$03,$ff,$ab       // char 35 '#'
        .byte $41,$42,$43,$43,$7f,$40,$7f,$6a       // char 36 '$'
        .byte $0c,$0c                               // char 37 (partial)

txt_092a:
        .byte $30,$30,$d5,$00,$ff,$aa               // char 37 (partial)
        .byte $00,$00,$00,$00,$55,$00,$ff,$aa       // char 38 '&'
        .byte $00,$00,$00,$00,$40,$c0,$c0,$c0       // char 39 '''
        .byte $40,$40,$40,$40,$7f,$40,$7f,$6a       // char 40 '('
        .byte $0c,$0c,$0c,$0c,$fd,$00,$ff,$aa       // char 41 ')'
        .byte $00,$00,$00,$00,$55,$00,$ff,$aa       // char 42 '*'
        .byte $00,$00,$00,$00,$55,$00,$ff,$aa       // char 43 '+'
        .byte $00,$00,$00,$00,$00,$50,$f4,$ac       // char 44 ','
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 45 '-'
        .byte $39,$02,$03,$c0,$ff,$00,$ff,$aa       // char 46 '.'
        .byte $c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 47 '/'
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 48 '0'
        .byte $00,$00,$00,$00,$ff,$00,$ff,$aa       // char 49 '1'
        .byte $c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 50 '2'
        .byte $40,$7f,$6a,$55,$6a,$7f,$40,$40       // char 51 '3'
        .byte $30,$f0,$b0,$70,$b0,$f0,$0c,$04       // char 52 '4'
        .byte $40,$7f,$6a,$55,$6a,$7f,$40,$40       // char 53 '5'
        .byte $00,$ff,$aa,$7f,$b0,$f0,$30,$30       // char 54 '6'
        .byte $00,$ff,$aa,$55,$6a,$7f,$10,$10       // char 55 '7'
        .byte $00,$ff,$aa,$7f,$ac,$fc,$03,$03       // char 56 '8'
        .byte $0c,$fc,$f0,$00,$00,$00,$00,$00       // char 57 '9'
        .byte $40,$7f,$6a,$55,$6a,$7f,$40,$40       // char 58 ':'
        .byte $00,$ff,$aa,$7f,$b0,$f0,$0c,$0c       // char 59 ';'
        .byte $00,$ff,$aa,$ff,$00,$00,$00,$00       // char 60 '<'
        .byte $c0,$c0,$c0,$c0,$00,$00,$00,$00       // char 61 '='
        .byte $10,$3f,$0f,$00,$00,$00,$00,$00       // char 62 '>'
        .byte $00,$ff,$aa,$ff,$00,$00,$00,$00       // char 63 '?'
        .byte $00,$ff,$aa,$ff,$00,$00,$00,$00       // char 64 '@'
        .byte $00,$ff,$aa,$d5,$1a,$1f,$10,$10       // char 65 'A'
        .byte $03,$ff,$ab,$57,$ab,$ff,$03,$03       // char 66 'B'
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 67 'C'
        .byte $00,$ff,$aa,$55,$aa,$ff,$00,$00       // char 68 'D'
        .byte $c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 69 'E'
        .byte $01,$01,$01,$01,$00,$00,$00,$00       // char 70 'F'
        .byte $00,$ff,$aa,$ff,$00,$00,$00,$00       // char 71 'G'
        .byte $c0,$c0,$c0,$c0,$00,$00,$00,$00       // char 72 'H'
        .byte $73,$7f,$7b,$6a,$19,$35,$0f,$00       // char 73 'I'
        .byte $31,$ff,$bb,$aa,$99,$55,$99,$ff       // char 74 'J'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 75 'K'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 76 'L'
        .byte $55,$ff,$bb,$ab,$9b,$57,$9b,$ff       // char 77 'M'
        .byte $73,$7f,$7b,$6a,$59,$55,$59,$7f       // char 78 'N'
        .byte $30,$f0,$b0,$b0,$b0,$70,$b0,$f0       // char 79 'O'

spr_0a80:
        .byte $07,$07,$01,$01,$00,$00,$00,$00       // char 80 'P'
        .byte $33,$ff,$bb,$aa,$59,$55,$19,$1f       // char 81 'Q'
        .byte $c0,$c0,$b0,$b0,$9c,$5c,$9b,$ff       // char 82 'R'
        .byte $73,$7f,$7b,$6a,$19,$35,$0f,$00       // char 83 'S'
        .byte $31,$ff,$bb,$aa,$99,$55,$99,$ff       // char 84 'T'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 85 'U'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 86 'V'
        .byte $55,$ff,$bb,$ab,$9b,$57,$9b,$ff       // char 87 'W'
        .byte $55,$7f,$7b,$6a,$59,$55,$59,$7f       // char 88 'X'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 89 'Y'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 90 'Z'
        .byte $73,$ff,$bb,$aa,$99,$55,$99,$ff       // char 91 '['
        .byte $33,$ff,$bb,$ab,$9c,$5c,$f0,$00       // char 92 '\'
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 93 ']'
        .byte $33,$ff,$bb,$aa,$99,$55,$99,$ff       // char 94 '^'
        .byte $c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 95 '_'
        .byte $01,$01,$01,$01,$01,$01,$01,$01       // char 96 '`'
        .byte $55,$ff,$bb,$aa,$99,$55,$99,$ff       // char 97 'a'
        .byte $40,$c0,$c0,$c0,$c0,$c0,$c0,$c0       // char 98 'b'

dat_0b18:
        // === Fill data (40 bytes, $0b18-$0b3f) ===
        .fill 40, $ff
        .byte $fe,$95,$10                           // char 104 (partial)

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

// --- Region $0bbc-$0bbf ---
.pc = $0bbc "dat_0bbc"

dat_0bbc:
        .byte $fe,$95,$10                           // char 119 (partial)

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

// --- Region $0c00-$0e72 ---
.pc = $0c00 "scr_0c00"

scr_0c00:
        .fill 10, $00
        .byte $ff,$03,$7f,$73,$73,$00,$00,$00,$fe,$03,$7e,$73,$7e,$00,$00,$00 // ...ss.....~s~...
        .byte $3f,$70,$70,$70,$3f,$00,$00,$00,$fe,$03,$73,$73,$7e,$00,$00,$00 // ?ppp?.....ss~...
        .byte $ff,$00,$7f,$70,$7f,$00,$00,$00,$7f,$00,$7f,$70,$70,$00,$00,$00 // ...p.......pp...
        .byte $3f,$70,$73,$73,$3f,$00,$00,$00,$73,$73,$7f,$73,$73,$70,$00,$00 // ?pss?...ss.ssp..
        .byte $1c,$1c,$1c,$1c,$1c,$00,$00,$00,$ff,$06,$06,$06,$7e,$00,$00,$00 // ............~...
        .byte $73,$76,$7c,$76,$73,$00,$00,$70,$70,$70,$70,$70,$7f,$00,$00,$00 // sv|vs..ppppp....
        .byte $63,$77,$7f,$6b,$63,$60,$40,$60,$73,$7b,$7f,$77,$73,$01,$00,$00 // cw.kc`@`s{.ws...
        .byte $fe,$03,$73,$73,$3e,$00,$00,$00,$fe,$03,$7e,$70,$70,$00,$00,$00 // ..ss>.....~pp...
        .byte $3e,$63,$63,$6f,$3e,$03,$00,$00,$fe,$03,$7e,$76,$73,$00,$00,$00 // >cco>.....~vs...
        .byte $0f,$1c,$1c,$1c,$f8,$00,$00,$00,$ff,$1c,$1c,$1c,$1c,$00,$00,$00 // ................
        .byte $73,$73,$73,$73,$3e,$00,$00,$00,$73,$73,$73,$3e,$1c,$00,$03,$03 // ssss>...sss>....
        .byte $63,$6b,$7f,$77,$63,$00,$00,$00,$73,$73,$3e,$73,$73,$00,$00,$00 // ck.wc...ss>ss...
        .byte $73,$73,$7f,$1c,$1c,$1c,$00,$00,$ff,$0e,$1c,$38,$7f,$00,$00,$00 // ss.........8....

txt_0cda:
        .byte $3c,$38,$38,$38,$3c,$00               // char 155 (partial)
        .byte $00,$00,$1f,$38,$fe,$70,$7f,$00       // char 156
        .byte $00,$00,$3c,$1c,$1c,$1c,$3c,$00       // char 157
        .byte $00,$00,$18,$3c,$18,$18,$18,$01       // char 158
        .byte $a0,$01,$b0,$3f,$7f,$3f,$10,$00       // char 159
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 160
        .byte $00,$00,$18,$18,$18,$00,$18,$00       // char 161
        .byte $00,$00,$6c,$00,$00,$00,$00,$00       // char 162
        .byte $00,$00,$36,$7f,$36,$7f,$36,$00       // char 163
        .byte $00,$00,$3c,$68,$3c,$16,$7c,$00       // char 164
        .byte $00,$00,$66,$6c,$18,$36,$66,$00       // char 165
        .byte $00,$1c,$36,$1c,$3f,$66,$7b,$00       // char 166
        .byte $00,$00,$0c,$18,$00,$00,$00,$00       // char 167
        .byte $00,$00,$0e,$1c,$1c,$1c,$0e,$00       // char 168
        .byte $00,$00,$38,$1c,$1c,$1c,$38,$00       // char 169
        .byte $00,$00,$42,$18,$7e,$18,$42,$00       // char 170
        .byte $00,$00,$1c,$1c,$7f,$1c,$1c,$00       // char 171
        .byte $00,$00,$00,$00,$00,$30,$60,$00       // char 172
        .byte $00,$00,$00,$00,$7f,$00,$00,$00       // char 173
        .byte $00,$00,$00,$00,$00,$30,$30,$00       // char 174
        .byte $00,$00,$03,$06,$0c,$18,$30,$00       // char 175
        .byte $00,$00,$7f,$73,$73,$73,$7f,$00       // char 176
        .byte $00,$00,$3c,$1c,$1c,$1c,$3e,$00       // char 177
        .byte $00,$00,$7f,$03,$7f,$70,$7f,$00       // char 178
        .byte $00,$00,$7f,$03,$1f,$03,$7f,$00       // char 179
        .byte $70,$70,$76,$76,$7f,$06,$06,$00       // char 180
        .byte $00,$00,$7f,$70,$7e,$07,$7e,$00       // char 181
        .byte $70,$70,$70,$70,$7f,$73,$7f,$00       // char 182
        .byte $00,$00,$7f,$03,$03,$03,$03,$03       // char 183
        .byte $00,$00,$7f,$73,$7f,$73,$7f,$00       // char 184
        .byte $00,$00,$7f,$73,$7f,$03,$03,$03       // char 185
        .byte $00,$00,$18,$18,$00,$18,$18,$00       // char 186
        .byte $00,$00,$18,$18,$00,$18,$30,$00       // char 187
        .byte $00,$00,$1c,$38,$70,$38,$1c,$00       // char 188
        .byte $00,$00,$00,$3c,$00,$3c,$00,$00       // char 189
        .byte $00,$00,$38,$1c,$0e,$1c,$38,$00       // char 190
        .byte $00,$00,$7f,$63,$0f,$00,$0c,$00       // char 191
        .byte $02,$00,$00,$00,$00,$00,$00,$00       // char 192
        .byte $08,$00,$00,$00,$00,$00,$00,$00       // char 193
        .byte $04,$22,$20,$01,$00,$00,$02,$00       // char 194
        .byte $30,$08,$d0,$00,$00,$00,$18,$00       // char 195
        .byte $00,$00,$80,$00,$00,$00,$00,$00       // char 196
        .byte $10,$02,$00,$00,$00,$00,$00,$00       // char 197
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 198
        .byte $00,$00,$08,$00,$00,$00,$00,$00       // char 199
        .byte $00,$20,$00,$00,$40,$00,$08,$02       // char 200
        .byte $00,$00,$00,$00,$00,$00,$00,$10       // char 201
        .byte $00,$00,$00,$00,$10,$00,$00,$00       // char 202
        .byte $00,$00,$00,$00,$00,$00,$00,$10       // char 203
        .byte $80,$00,$00,$00,$00,$00,$00,$00       // char 204
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 205
        .byte $00,$00,$80                           // char 206 (partial)

// --- Region $0e91-$0fff ---
.pc = $0e91 "dat_0e91"

dat_0e91:
        .byte $80,$00,$00,$00,$00,$00,$00           // char 210 (partial)
        .byte $04,$00,$00,$00,$00,$00,$00,$00       // char 211
        .byte $04,$00,$00,$00,$00,$00,$00,$02       // char 212
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 213
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 214
        .byte $04,$00,$00,$00,$00,$08,$00,$00       // char 215
        .byte $00,$00,$00,$00,$08,$00,$08,$00       // char 216
        .byte $00,$00,$00,$04,$00,$00,$00,$00       // char 217
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 218
        .byte $00,$00,$00,$00,$00,$04,$00,$00       // char 219
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 220
        .byte $00,$00,$02,$00,$00,$00,$00,$00       // char 221
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 222
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 223
        .byte $20,$20,$08,$09,$20,$07,$15,$19       // char 224
        .byte $1a                                   // char 225 (partial)

txt_0f09:
        .byte $20,$21,$21,$21,$20,$20,$20           // char 225 (partial)
        .byte $20,$07,$12,$05,$05,$14,$09,$0e       // char 226
        .byte $18,$20,$07,$0f,$20,$14,$0f,$20       // char 227
        .byte $01,$0c,$0c,$20,$0f,$15,$12,$20       // char 228
        .byte $03,$0f,$0e,$14,$01,$03,$14,$13       // char 229
        .byte $20,$01,$0e,$04,$20,$06,$12,$09       // char 230
        .byte $05,$0e,$04,$20,$21,$20,$09,$06       // char 231
        .byte $20,$19,$0f,$15,$20,$17,$01,$0e       // char 232
        .byte $14,$20,$14,$0f,$20,$03,$0f,$0e       // char 233
        .byte $14,$01,$03,$14,$20,$15,$13,$20       // char 234
        .byte $17,$12,$09,$14,$05,$20,$14,$0f       // char 235
        .byte $20,$20,$20,$03,$12,$05,$13,$14       // char 236

txt_0f68:
        .byte $20,$20,$20,$20,$20,$20,$10,$0c       // char 237
        .byte $0b                                   // char 238 (partial)

txt_0f71:
        .byte $20,$20,$38,$33,$39,$20,$02           // char 238 (partial)

txt_0f78:
        .byte $20,$20,$20,$20,$20,$37,$30,$30       // char 239
        .byte $30,$20,$13,$14,$15,$14,$14,$07       // char 240
        .byte $01,$12,$14                           // char 241 (partial)

txt_0f8b:
        .byte $20,$38,$30,$20,$20                   // char 241 (partial)
        .byte $20,$20,$20,$20,$01,$0c,$0c,$05       // char 242
        .byte $0d,$01,$07,$0e,$05                   // char 243 (partial)

txt_0f9d:
        .byte $20,$20,$20                           // char 243 (partial)
        .byte $20,$20,$20,$14,$08,$05,$20,$01       // char 244
        .byte $03,$14,$15,$01,$0c,$0c,$20,$0d       // char 245
        .byte $05,$0d,$02,$05,$12,$2d,$0c,$09       // char 246
        .byte $13,$14,$20,$0f,$06,$20,$03,$12       // char 247
        .byte $05,$13,$14                           // char 248 (partial)

txt_0fc3:
        .byte $20,$3a,$20,$20,$07                   // char 248 (partial)
        .byte $0f,$0c,$04,$12,$15,$13,$08,$20       // char 249
        .byte $2c,$20,$06,$01,$0e,$01,$14,$09       // char 250
        .byte $03,$20,$01,$0e,$04,$20,$03,$12       // char 251
        .byte $0f,$13,$13,$02,$0f,$17               // char 252 (partial)

txt_0fe6:
        .byte $20,$20                               // char 252 (partial)
        .byte $20,$20,$20,$20,$20,$10,$12,$05       // char 253
        .byte $13,$13,$20,$13,$10,$01,$03,$05       // char 254

txt_0ff8:
        .byte $20,$20,$20,$20,$20,$20,$20,$ff       // char 255

// --- Region $1005-$1006 ---
.pc = $1005 "Segment $1005"
        .byte $1b                                   // scrcode: .

dat_1006:
        // === Fill data (1 bytes, $1006-$1006) ===
        .byte $00                                   // .

// --- Region $1301-$133f ---
.pc = $1301 "Segment $1301"
        .byte $03,$c9
        .byte $01,$f0,$1f                           // .......#####.......#####
        .byte $ad,$64,$19                           // #.#.##.#.##..#.....##..#
        .byte $38,$bd,$3c                           // ..###...#.####.#..####..
        .byte $19,$ed,$64                           // ...##..####.##.#.##..#..
        .byte $19,$9d,$3c                           // ...##..##..###.#..####..
        .byte $19,$99,$00                           // ...##..##..##..#........
        .byte $d4,$bd,$36                           // ##.#.#..#.####.#..##.##.
        .byte $19,$ed,$65                           // ...##..####.##.#.##..#.#
        .byte $19,$9d,$36                           // ...##..##..###.#..##.##.
        .byte $19,$99,$01                           // ...##..##..##..#.......#
        .byte $d4,$4c,$41                           // ##.#.#...#..##...#.....#
        .byte $13

loc_1325:
        .byte $ad,$64
        .byte $19,$18,$bd                           // ...##..#...##...#.####.#
        .byte $3c,$19,$6d                           // ..####.....##..#.##.##.#
        .byte $64,$19,$9d                           // .##..#.....##..##..###.#
        .byte $3c,$19,$99                           // ..####.....##..##..##..#
        .byte $00,$d4,$bd                           // ........##.#.#..#.####.#
        .byte $36,$19,$6d                           // ..##.##....##..#.##.##.#
        .byte $65,$19,$9d                           // .##..#.#...##..##..###.#
        .byte $36,$19,$99                           // ..##.##....##..##..##..#
        .byte $01                                   // sprite 0 padding

// --- Region $1564-$16e9 ---
.pc = $1564 "spr_1564"

spr_1564:
        // === Screen RAM (390 bytes, $1564-$16e9) ===
        .encoding "screencode_mixed"
        .text "l"
        .byte $1c                                   // scrcode: .
        .text "->"
        .byte $51,$66,$7b,$91,$a9,$c3,$dd,$fa       // scrcode: ........
        .text "x8"
        .byte $5a,$7d,$a3,$cc,$f6                   // scrcode: .....
        .text "#"
        .byte $53,$86,$bb,$e0                       // scrcode: ....
        .text "0"
        .byte $70,$b4,$fb,$47,$98,$ed,$47,$a7       // scrcode: ........
        .text "l"
        .byte $77,$e9,$61,$e1,$68,$f7               // scrcode: ......
        .byte $8f                                   // scrcode: .
        .text "0"
        .byte $da,$8f,$4e                           // scrcode: ...
        .text "x"
        .byte $ef,$d2,$c3,$c3,$d1,$ef,$1f,$60,$b5,$1e,$9c // scrcode: ...........
        .text "1"
        .byte $df,$a5,$87,$86,$a2,$df               // scrcode: ......
        .text ">"
        .byte $c1,$6b                               // scrcode: ..
        .text "<9"
        .byte $63,$be,$4b                           // scrcode: ...
        .text "ol"
        .byte $45,$bf,$7d,$83,$d6,$79               // scrcode: ......
        .byte $73,$c7,$7c,$97,$1e                   // scrcode: .....
        .text "x"
        .byte $8b,$7e,$fa                           // scrcode: ...
        .text "f"
        .byte $ac,$f3,$e6,$8f,$f8                   // scrcode: .....
        .text ".aaaaaaaaaaaabbbbbbbccccc"
        .text "ddddeeeffggghhiijkklmnnopqrsuvwyz"
        .byte $1c,$1d,$1f                           // scrcode: ...
        .encoding "petscii_upper"

txt_1600:
        .text "!#%'*,/258;?CGKOTY"
        .byte $5e,$64,$6a,$70,$77,$7e,$86,$8e,$96,$9f,$a8,$b3,$bd,$c8,$d4,$e1 // scrcode: ................
        .byte $ee,$fd                               // scrcode: ..

txt_1624:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@@@@@@"
        .byte $40,$40,$40,$40                       // scrcode: ....
        .text "ffgghhii"
        .byte $56,$76                               // scrcode: ..
        .text "vv"
        .byte $46,$66                               // scrcode: ..
        .text "vvsa"
        .byte $ff                                   // scrcode: .
        .text "#hsc#@@@@@@"
        .text "@@"
        .byte $81,$41,$40,$80,$80,$80,$80,$80       // scrcode: ........
        .text "pppppppp$"
        .byte $fd,$fb,$f9,$f8,$f7,$f6,$f6,$f5,$f5,$f4,$f4,$f5,$f6,$f5,$f4,$81 // scrcode: ................
        .encoding "petscii_upper"

txt_1677:
        .text "A"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "lx"
        .byte $c0,$f0,$f8,$f4,$f2,$40               // scrcode: ......
        .text "abflp0d"
        .byte $a0                                   // scrcode: .
        .text "h"
        .byte $60                                   // scrcode: .
        .text "d"
        .byte $80                                   // scrcode: .
        .text "lpc"
        .byte $80                                   // scrcode: .
        .text "p"
        .byte $40                                   // scrcode: .
        .text "@@@@@@@@l"
        .byte $41                                   // scrcode: .
        .text "jl@@"
        .text "p"
        .byte $40                                   // scrcode: .
        .text "lqjg@"
        .byte $40                                   // scrcode: .
        .text "@pl"
        .byte $41                                   // scrcode: .
        .text "kk@@ "
        .byte $80                                   // scrcode: .
        .text "h"
        .byte $41                                   // scrcode: .
        .text "ii@@"
        .byte $f0,$44                               // scrcode: ..
        .text "l"
        .byte $41                                   // scrcode: .
        .text "mi@@"
        .byte $f0,$40                               // scrcode: ..
        .text "l"
        .byte $45                                   // scrcode: .
        .text "ll@'"
        .byte $c0,$40                               // scrcode: ..
        .text "h"
        .byte $41                                   // scrcode: .
        .text "ii@@"
        .byte $f0,$44                               // scrcode: ..
        .text "l"
        .byte $41                                   // scrcode: .
        .text "ki@@ "
        .byte $80                                   // scrcode: .
        .encoding "petscii_upper"

dat_16e9:
        // === Fill data (1 bytes, $16e9-$16e9) ===
        .byte $00                                   // .

// --- Region $1749-$176f ---
.pc = $1749 "dat_1749"

dat_1749:
        .encoding "screencode_mixed"
        .byte $e0,$50,$92                           // scrcode: ...
        .text "z"
        .byte $1b,$1b,$d5                           // scrcode: ...
        .text "x@zdzlztz"
        .byte $1c                                   // scrcode: .
        .text "z+z=z"
        .byte $48                                   // scrcode: .
        .text "z"
        .byte $53                                   // scrcode: .
        .text "z"
        .byte $5c                                   // scrcode: .
        .text "z"
        .byte $65                                   // scrcode: .
        .text "z"
        .byte $6e                                   // scrcode: .
        .text "z"
        .byte $89                                   // scrcode: .
        .text "z"
        .byte $a4                                   // scrcode: .
        .text "z"
        .byte $ba                                   // scrcode: .
        .text "z"
        .encoding "petscii_upper"

dat_176f:
        // === Fill data (1 bytes, $176f-$176f) ===
        .byte $00                                   // .

// --- Region $1800-$1800 ---
.pc = $1800 "spr_1800"

spr_1800:
        .byte $00                                   // .

// --- Region $18a8-$18bc ---
.pc = $18a8 "dat_18a8"

dat_18a8:
        .byte $0b,$00,$0c,$00,$05,$00,$0f,$00       // char 21 @+21
        .byte $0d,$00,$01,$00,$0d,$00,$0f,$00       // char 22 @+22
        .byte $05,$00,$0c,$00,$0b                   // char 23 (partial)

// --- Region $18d5-$18d8 ---
.pc = $18d5 "dat_18d5"

dat_18d5:
        .byte $c0,$9f,$00                           // char 26 (partial)
        .byte $ff                                   // char 27 (partial)

// --- Region $1917-$1980 ---
.pc = $1917 "chr_1917"

chr_1917:
        // === Charset data (106 bytes, $1917-$1980) ===
        .byte $a9,$02,$8d,$74,$19,$60,$02,$00       // char 0 @+0
        .byte $07,$0e,$0d,$05,$03,$0e,$03,$06       // char 1 @+1
        .byte $00,$00,$04,$03,$1b,$13,$11,$45       // char 2 @+2
        .byte $45,$3e,$39,$38,$02,$06,$06,$25       // char 3 @+3
        .byte $1c,$1a,$25,$1c,$1a,$a2,$31,$9c       // char 4 @+4
        .byte $00,$00,$00,$0b,$53,$2f,$00,$c0       // char 5 @+5
        .byte $40,$0c,$0c,$0b,$0c,$0c,$0c,$c0       // char 6 @+6
        .byte $0e,$01,$01,$10,$40,$00,$10,$00       // char 7 @+7
        .byte $ff,$00,$04,$04,$00,$00,$00,$00       // char 8 @+8
        .byte $03,$03,$03,$03,$03,$00,$00,$00       // char 9 @+9
        .byte $00,$00,$ff,$00,$00,$00,$00,$00       // char 10 @+10
        .byte $01,$00,$00,$00,$00,$00,$00,$00       // char 11 @+11
        .byte $00,$00,$10,$40,$40,$86,$1c,$00       // char 12 @+12
        .byte $55                                   // char 13 (partial)

dat_1980:
        // === Fill data (1 bytes, $1980-$1980) ===
        .byte $00                                   // .

// --- Region $19c0-$19c0 ---
.pc = $19c0 "spr_19c0"

spr_19c0:
        .byte $00                                   // .

// --- Region $1a00-$1bb6 ---
.pc = $1a00 "dat_1a00"

dat_1a00:
        .byte $c1,$9f,$0c,$ff,$c6,$9b,$38           // char 29 (partial)
        .byte $8f,$35,$93,$37,$ff,$c6,$8b,$37       // char 30 @+30
        .byte $93,$38,$9f,$35,$ff,$c6,$8b,$3a       // char 31 @+31
        .byte $93,$38,$9f,$35,$ff,$c0,$8b,$00       // char 32 ' '
        .byte $c6,$93,$37,$97,$38,$8f,$35,$8b       // char 33 '!'
        .byte $38,$ab,$37,$ff,$c3,$87,$0c,$c2       // char 34 '"'
        .byte $83,$30,$c3,$87,$0c,$83,$0c,$c2       // char 35 '#'
        .byte $83,$30,$c3,$83,$0c,$ff,$c5,$83       // char 36 '$'

txt_1a3f:
        .byte $46,$44,$3d,$43,$44,$3d,$3f,$44       // char 37 '%'
        .byte $ff,$c5,$83                           // char 38 (partial)

txt_1a4a:
        .byte $46,$44,$41,$43,$44                   // char 38 (partial)
        .byte $41,$48,$44,$ff,$c4,$8b,$3d,$87       // char 39 '''
        .byte $3d,$3d,$83,$3d,$ff,$c7,$8b,$41       // char 40 '('
        .byte $87,$41,$41,$83,$41,$ff,$c0,$93       // char 41 ')'
        .byte $00,$c2,$83,$30,$30,$30,$ff,$c6       // char 42 '*'
        .byte $8b,$38,$8f,$37,$83,$35,$8b,$38       // char 43 '+'
        .byte $37,$87,$35,$37,$83,$38,$8b,$38       // char 44 ','
        .byte $87,$37,$93,$35,$c2,$83,$30,$30       // char 45 '-'
        .byte $30,$ff,$c6,$8b,$38,$8f,$37,$83       // char 46 '.'
        .byte $35,$8b,$38,$37,$87,$38,$3a,$83       // char 47 '/'
        .byte $38,$8b,$38,$87,$37,$93,$35,$c2       // char 48 '0'
        .byte $83,$30,$30,$30,$ff,$c6,$93,$44       // char 49 '1'
        .byte $83,$43,$41,$3f,$9f,$3d,$93,$3c       // char 50 '2'
        .byte $83,$3a,$38,$37,$93,$35,$83,$38       // char 51 '3'
        .byte $3c,$41,$ff,$c8,$83,$0c,$0c,$c2       // char 52 '4'
        .byte $83,$30,$c8,$87,$0c,$83,$0c,$c2       // char 53 '5'
        .byte $83,$30,$c8,$83,$13,$ff,$00,$00       // char 54 '6'
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 55 '7'
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 56 '8'
        .byte $00,$8e,$01,$01,$86,$01,$01,$8e       // char 57 '9'
        .byte $01,$01,$86,$01,$01,$8e,$06,$06       // char 58 ':'
        .byte $86,$06,$06,$8e,$06,$06,$86,$06       // char 59 ';'
        .byte $06,$8e,$06,$06,$86,$06,$06,$8e       // char 60 '<'
        .byte $06,$06,$86,$06,$06,$8e,$06,$06       // char 61 '='
        .byte $86,$06,$06,$8e,$06,$06,$86,$06       // char 62 '>'
        .byte $06,$8e,$06,$06,$86,$06,$06,$81       // char 63 '?'
        .byte $07,$07,$08,$08,$07,$07,$08,$08       // char 64 '@'
        .byte $8e,$06,$06,$86,$06,$06,$8e,$06       // char 65 'A'
        .byte $06,$86,$06,$06,$8e,$0f,$0f,$86       // char 66 'B'
        .byte $0f,$0f,$8e,$0f,$0f,$86,$0f,$0f       // char 67 'C'
        .byte $8e,$0f,$0f,$86,$0f,$0f,$8e,$0f       // char 68 'D'
        .byte $0f,$86,$0f,$0f,$8e,$0f,$0f,$86       // char 69 'E'
        .byte $0f,$0f,$8e,$0f,$0f,$86,$0f,$0f       // char 70 'F'
        .byte $ff,$81,$02,$03,$02,$04,$02,$03       // char 71 'G'
        .byte $02,$04,$09,$09,$0a,$0a,$09,$09       // char 72 'H'
        .byte $0a,$0a,$09,$09,$0a,$0a,$09,$09       // char 73 'I'
        .byte $0a,$0a,$09,$09,$0a,$0a,$09,$09       // char 74 'J'
        .byte $0a,$0a,$09,$09,$0a,$0a,$00,$00       // char 75 'K'
        .byte $00,$00,$09,$09,$0a,$0a,$09,$09       // char 76 'L'
        .byte $0a,$0a,$00,$00,$00,$00,$02,$03       // char 77 'M'
        .byte $02,$04,$07,$07,$08,$08,$07,$07       // char 78 'N'
        .byte $08,$08,$ff,$81,$05,$05,$05,$05       // char 79 'O'
        .byte $07,$07,$08,$08,$07,$07,$08,$08       // char 80 'P'
        .byte $00,$00,$00,$0b,$0c,$0d,$0c,$0d       // char 81 'Q'
        .byte $00,$00,$00,$0b,$0e,$0e,$00,$00       // char 82 'R'
        .byte $00,$0b,$05,$05,$0c,$0d,$ff           // char 83 (partial)

dat_1bb6:
        // === Fill data (1 bytes, $1bb6-$1bb6) ===
        .byte $00                                   // .

// --- Region $1cbe-$1cdf ---
.pc = $1cbe "Segment $1cbe"
        .byte $00,$00,$86,$8f,$92,$a0,$94           // char 0 (partial)
        .byte $88,$85,$a0,$82,$85,$93,$94,$a0       // char 1 @+1
        .byte $ac,$94,$92,$81,$84,$85,$a0,$97       // char 2 @+2
        .byte $89,$94,$88,$a0,$83,$92,$85,$93       // char 3 @+3
        .byte $94,$a0,$a1                           // char 4 (partial)

// --- Region $1ce8-$1cff ---
.pc = $1ce8 "Segment $1ce8"
        .byte $00,$00,$00,$00,$00,$00,$00           // char 0 (partial)
        .byte $00,$00,$40,$00,$4c,$00,$4c,$00       // char 1 @+1
        .byte $48,$00,$44,$00,$44,$00,$40,$00       // char 2 @+2
        .byte $4b                                   // char 3 (partial)

// --- Region $1d4b-$1d67 ---
.pc = $1d4b "Segment $1d4b"
        .byte $8d,$19,$d0,$a9,$1b,$8d               // char 0 (partial)
        .byte $11,$d0,$a9,$00,$8d,$14,$03,$4c       // char 1 @+1
        .byte $81,$ea,$19,$d0,$4c,$81,$ea           // char 2 (partial)

txt_1d60:
        .byte $2d                                   // char 2 (partial)
        .byte $2e,$2d,$2d,$2e,$2d,$2e,$2e           // char 3 (partial)

// --- Region $1d80-$1dff ---
.pc = $1d80 "dat_1d80"

dat_1d80:
        .byte $06                                   // char 6 (partial)
        .byte $0e,$0f,$00,$00,$00,$00,$00,$0f       // char 7 @+7
        .byte $0e,$06,$00,$00,$00,$00,$00,$01       // char 8 @+8
        .byte $08,$08,$08,$08,$08,$08,$08,$08       // char 9 @+9
        .byte $08,$08,$08,$08,$08,$08,$08,$00       // char 10 @+10
        .byte $00,$09,$09,$0b,$0b,$08,$08,$0f       // char 11 @+11
        .byte $0f,$07,$07,$01,$01,$07,$07,$0f       // char 12 @+12
        .byte $0f,$08,$08,$0b,$0b,$09,$09,$00       // char 13 @+13
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 14 @+14
        .byte $00,$09,$09,$0b,$0b,$08,$08,$0f       // char 15 @+15
        .byte $0f,$07,$07,$01,$01,$07,$07,$0f       // char 16 @+16
        .byte $0f,$08,$08,$0b,$0b,$09,$09,$00       // char 17 @+17
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 18 @+18
        .byte $00,$09,$09,$0b,$0b,$08,$08,$0f       // char 19 @+19
        .byte $0f,$07,$07,$01,$01,$07,$07,$0f       // char 20 @+20
        .byte $0f,$08,$08,$0b,$0b,$09,$09,$00       // char 21 @+21
        .byte $00,$00,$00,$00,$00,$00,$00           // char 22 (partial)

// --- Region $1ee8-$20ff ---
.pc = $1ee8 "dat_1ee8"

dat_1ee8:
        .byte $01,$02,$04,$08,$10,$20,$40           // char 3 (partial)
        .byte $80,$6e,$be,$0e,$82,$44,$a6,$26       // char 4 @+4
        .byte $28,$01,$02,$04,$08,$10,$20,$40       // char 5 @+5
        .byte $00,$fe,$fc,$fa,$f8,$f6,$f4,$f2       // char 6 @+6
        .byte $f0,$ee,$ec,$ea,$e8,$e6,$e4,$e2       // char 7 @+7
        .byte $e0,$de,$dc,$da,$d8,$d6,$d4,$d2       // char 8 @+8
        .byte $d0,$ce,$cc,$ca,$c8,$c6,$c4,$c2       // char 9 @+9
        .byte $c0,$be,$bc,$ba,$b8,$b6,$b4,$b2       // char 10 @+10
        .byte $b0,$ae,$ac,$aa,$a8,$a6,$a4,$a2       // char 11 @+11
        .byte $a0,$9e,$9c,$9a,$98,$96,$94,$92       // char 12 @+12
        .byte $90,$8e,$8c,$8a,$88,$86,$84,$82       // char 13 @+13
        .byte $80,$7e,$7c,$7a,$78,$76,$74,$72       // char 14 @+14
        .byte $70,$6e,$6c,$6a,$68,$66,$64,$62       // char 15 @+15
        .byte $60,$5e                               // char 16 (partial)

txt_1f51:
        .byte $5c,$5a,$58,$56,$54,$52               // char 16 (partial)
        .byte $50,$4e,$4c,$4a,$48,$46,$44,$42       // char 17 @+17
        .byte $40,$3e,$3c,$3a,$38,$36,$34,$32       // char 18 @+18
        .byte $30,$2e,$2c,$2a,$28,$26,$24,$22       // char 19 @+19
        .byte $20,$1e,$1c,$1a,$18,$16,$14,$12       // char 20 @+20
        .byte $10,$0e,$0c,$0a,$08,$06,$04,$02       // char 21 @+21
        .byte $00,$fe,$fc,$fa,$f8,$f6,$f4,$f2       // char 22 @+22
        .byte $f0,$ee,$ec,$ea,$e8,$e6,$e4,$e2       // char 23 @+23
        .byte $e0,$de,$dc,$da,$d8,$d6,$d4,$d2       // char 24 @+24
        .byte $d0,$ce,$cc,$ca,$c8,$c6,$c4,$c2       // char 25 @+25
        .byte $c0,$be,$bc,$ba,$b8,$b6,$b4,$b2       // char 26 @+26
        .byte $b0,$ae,$ac,$aa,$a8,$a6,$a4,$a2       // char 27 @+27
        .byte $a0,$9e,$9c,$9a,$98,$96,$94,$92       // char 28 @+28
        .byte $90,$8e,$8c,$8a,$88,$86,$84,$82       // char 29 @+29
        .byte $80,$7e,$7c,$7a,$78,$76,$74,$72       // char 30 @+30
        .byte $70,$6e,$6c,$6a,$68,$66,$64,$62       // char 31 @+31
        .byte $60,$5e                               // char 32 (partial)

txt_1fd1:
        .byte $5c,$5a,$58,$56,$54,$52               // char 32 (partial)
        .byte $50,$4e,$4c,$4a,$48,$46,$44,$42       // char 33 '!'
        .byte $40,$3e,$3c,$3a,$38,$36,$34,$32       // char 34 '"'
        .byte $30,$2e,$2c,$2a,$28,$26,$24,$22       // char 35 '#'
        .byte $20,$1e,$1c,$1a,$18,$16,$14,$12       // char 36 '$'
        .byte $10,$0e,$0c,$0a,$08,$06,$04,$02       // char 37 '%'
        .byte $00                                   // char 38 (partial)

dat_2000:
        .text "                                                                                      "
        .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 // ................
        .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$1a,$1b,$1c // ......... ...

txt_2073:
        .text "           "
        .byte $1d,$1e,$20,$20,$20,$1f,$00           // ..   ..

txt_2085:
        .text "!"
        .byte $22                                   // double quote character
        .text "#$%&' ()*+, -./  012           34   56789:;<= >?"
        .byte $40                                   // @ character
        .text "AB CDE  FGH           IJKLMNOPQRSTUVWXYZ"
        .byte $5b,$5c,$20,$5d,$5e,$5f,$20,$20,$60,$61,$62 // [\ ]^_  `ab

txt_20eb:
        .text "                     "

// --- Region $2138-$213f ---
.pc = $2138 "chr_2138"

chr_2138:
        // === Charset data (8 bytes, $2138-$213f) ===
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 0 @+0

// --- Region $2167-$2167 ---
.pc = $2167 "chr_2167"

chr_2167:
        // === Charset data (1 bytes, $2167-$2167) ===
        .byte $00                                   // char 0 (partial)

// --- Region $21b8-$21bf ---
.pc = $21b8 "chr_21b8"

chr_21b8:
        // === Charset data (8 bytes, $21b8-$21bf) ===
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 0 @+0

// --- Region $21ce-$21df ---
.pc = $21ce "Segment $21ce"
        .byte $00,$00,$00,$00,$00,$00,$00           // char 0 (partial)
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 1 @+1
        .byte $00,$00,$00                           // char 2 (partial)

// --- Region $21fe-$2217 ---
.pc = $21fe "chr_21fe"

chr_21fe:
        // === Charset data (26 bytes, $21fe-$2217) ===
        .byte $00,$00,$78,$a9,$01,$8d,$1a,$d0       // char 0 @+0
        .byte $a9,$7f,$8d,$0d,$dc,$a9,$18,$8d       // char 1 @+1
        .byte $14,$03,$a9,$10,$8d,$15,$03,$4c       // char 2 @+2
        .byte $00,$30                               // char 3 (partial)

// --- Region $22e1-$22ff ---
.pc = $22e1 "Segment $22e1"
        .byte $1a,$1b,$05,$06,$07,$07,$08           // char 0 (partial)
        .byte $08,$08,$08,$08,$08,$07,$07,$06       // char 1 @+1
        .byte $05,$04,$03,$03,$02,$02,$01,$01       // char 2 @+2
        .byte $01,$01,$01,$01,$01,$01,$02,$02       // char 3 @+3

// --- Region $2356-$2381 ---
.pc = $2356 "chr_2356"

chr_2356:
        // === Charset data (44 bytes, $2356-$2381) ===
        .byte $00,$00,$02,$02,$0a,$0a,$0f,$0f       // char 0 @+0
        .byte $07,$07,$01,$01,$01,$01,$07,$07       // char 1 @+1
        .byte $0f,$0f,$0a,$0a,$02,$02,$00,$00       // char 2 @+2
        .byte $00,$00,$00,$00,$00,$00,$02,$02       // char 3 @+3
        .byte $0a,$0a,$0f,$0f,$07,$07,$01,$01       // char 4 @+4
        .byte $01,$01,$03,$06                       // char 5 (partial)

// --- Region $23fd-$248f ---
.pc = $23fd "Segment $23fd"
        .byte $00,$00,$00,$19,$16,$13,$10           // char 0 (partial)
        .byte $0d,$0b,$09,$07,$06,$05,$04,$03       // char 1 @+1
        .byte $03,$02,$02,$02,$01,$01,$01,$01       // char 2 @+2
        .byte $01,$02,$02,$02,$03,$03,$04,$05       // char 3 @+3
        .byte $06,$07,$09,$0b,$0d,$10,$13,$16       // char 4 @+4
        .byte $19                                   // char 5 (partial)

dat_2425:
        // === Fill data (35 bytes, $2425-$2447) ===
        .fill 35, $1a
        .byte $02,$05,$08,$0b                       // char 9 (partial)
        .byte $0e,$10,$12,$14,$15,$16,$17,$18       // char 10 @+10
        .byte $18,$19,$19,$19,$1a,$1a,$1a,$1a       // char 11 @+11
        .byte $1a,$19,$19,$19,$18,$18,$17,$16       // char 12 @+12
        .byte $15,$14,$12,$10,$0e,$0b,$08,$05       // char 13 @+13
        .byte $02,$05,$08,$0b,$0e,$10,$12,$14       // char 14 @+14
        .byte $15,$16,$17,$18,$18,$19,$19,$19       // char 15 @+15
        .byte $1a,$1a,$1a,$1a,$1a,$19,$19,$19       // char 16 @+16
        .byte $18,$18,$17,$16,$15,$14,$12,$10       // char 17 @+17
        .byte $0e,$0b,$08,$05                       // char 18 (partial)

// --- Region $250a-$27ff ---
.pc = $250a "chr_250a"

chr_250a:
        // === Charset data (758 bytes, $250a-$27ff) ===
        .byte $01,$02,$03,$03,$02,$04,$01,$05       // char 0 @+0
        .byte $00,$00,$00,$00,$00,$00,$ff,$ff       // char 1 @+1
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$20,$20       // char 2 @+2
        .byte $08,$05,$0c,$0c,$0f                   // char 3 (partial)

txt_2527:
        .byte $20,$21,$20                           // char 3 (partial)
        .byte $20,$20,$08,$05,$12,$05,$20,$09       // char 4 @+4
        .byte $13,$20,$03,$12,$0f,$13,$13,$02       // char 5 @+5
        .byte $0f,$17,$20,$0f,$06,$20,$03,$12       // char 6 @+6
        .byte $05,$13,$14                           // char 7 (partial)

txt_2545:
        .byte $20,$21,$20,$20,$20                   // char 7 (partial)
        .byte $20,$01,$0c,$0c,$20,$03,$0f,$04       // char 8 @+8
        .byte $09,$0e,$07,$20,$02,$19,$20,$0d       // char 9 @+9
        .byte $05                                   // char 10 (partial)

txt_255b:
        .byte $20,$21,$20,$20,$20,$20,$14           // char 10 (partial)
        .byte $0f,$04,$01,$19,$20,$2c,$20,$17       // char 11 @+11
        .byte $05,$20,$01,$12,$05,$20,$10,$12       // char 12 @+12
        .byte $0f,$15,$04,$20,$14,$0f,$20,$10       // char 13 @+13
        .byte $12,$05,$13,$05,$0e,$14,$13,$20       // char 14 @+14
        .byte $3a,$20,$0d,$09,$0e,$09,$07,$0f       // char 15 @+15
        .byte $0c,$06                               // char 16 (partial)

txt_258c:
        .byte $21,$20,$20,$20,$06,$12               // char 16 (partial)
        .byte $0f,$0d,$20,$0d,$01,$07,$09,$03       // char 17 @+17
        .byte $20,$02,$19,$14,$05,$13,$20,$20       // char 18 @+18
        .byte $20,$03,$12,$01,$03,$0b,$05,$04       // char 19 @+19
        .byte $20,$0f,$0e                           // char 20 (partial)

txt_25ad:
        .byte $20,$31,$39,$2e,$31                   // char 20 (partial)
        .byte $2e,$31,$39,$38,$39,$20,$01,$14       // char 21 @+21

txt_25ba:
        .byte $20,$31,$36,$2e,$30,$32,$20,$10       // char 22 @+22
        .byte $0d,$20,$2e,$20,$0f,$12,$09,$07       // char 23 @+23
        .byte $09,$0e,$01,$0c,$20,$02,$19,$20       // char 24 @+24
        .byte $07,$0f,$0c,$04,$12,$15,$13,$08       // char 25 @+25

txt_25da:
        .byte $20,$2e,$20,$20,$20,$20,$13,$0f       // char 26 @+26
        .byte $20,$0e,$0f,$20,$0c,$0f,$0e,$07       // char 27 @+27
        .byte $20,$13,$14,$0f,$12,$09,$05,$13       // char 28 @+28
        .byte $20,$14,$08,$09,$13,$20,$14,$09       // char 29 @+29
        .byte $0d,$05,$20,$28,$20,$06,$0f,$12       // char 30 @+30
        .byte $20,$07,$12,$05,$01,$14,$20,$13       // char 31 @+31
        .byte $03,$12,$0f,$0c,$0c,$2d,$14,$05       // char 32 ' '
        .byte $18,$14,$13,$20,$0c,$0f,$0f,$0b       // char 33 '!'
        .byte $20,$09,$0e,$20,$0f,$15,$12,$20       // char 34 '"'
        .byte $07,$12,$05,$01,$14,$20,$04,$05       // char 35 '#'
        .byte $0d,$0f,$13                           // char 36 (partial)

txt_262d:
        .byte $20,$29,$20,$20,$2e                   // char 36 (partial)
        .byte $20,$02,$19,$05,$20,$14,$08,$05       // char 37 '%'
        .byte $20,$17,$01,$19,$20,$2c,$20,$09       // char 38 '&'
        .byte $06,$20,$19,$0f,$15,$20,$07,$05       // char 39 '''
        .byte $14,$20,$08,$0f,$14,$20,$0f,$12       // char 40 '('
        .byte $09,$0e,$01,$0c,$13,$20,$17,$08       // char 41 ')'
        .byte $09,$03,$08,$20,$01,$12,$05,$20       // char 42 '*'
        .byte $13,$0f,$20,$08,$0f,$14,$20,$2c       // char 43 '+'
        .byte $20,$14,$08,$01,$14,$20,$14,$08       // char 44 ','
        .byte $05,$19,$20,$02,$15,$12,$0e,$13       // char 45 '-'
        .byte $20,$19,$0f,$15,$12,$20,$04,$12       // char 46 '.'
        .byte $09,$16,$05,$20,$2c,$20,$13,$05       // char 47 '/'
        .byte $0e,$04,$20,$14,$08,$05,$19,$20       // char 48 '0'
        .byte $14,$0f,$20,$03,$12,$05,$13,$14       // char 49 '1'
        .byte $20,$3a,$20,$01,$04,$12,$05,$13       // char 50 '2'
        .byte $13,$20,$09,$0e,$20,$14,$08,$05       // char 51 '3'
        .byte $20,$0f,$14,$08,$05,$12,$20,$13       // char 52 '4'
        .byte $03,$12,$0f,$0c,$0c                   // char 53 (partial)

txt_26b7:
        .byte $20,$2e,$2e                           // char 53 (partial)
        .byte $2e,$2e,$2e,$2e,$2e,$20,$20,$20       // char 54 '6'
        .byte $20,$20,$20,$20,$20,$13,$0f,$20       // char 55 '7'
        .byte $01,$0c,$0c,$20,$09,$20,$08,$01       // char 56 '8'
        .byte $16,$05,$20,$14,$0f,$20,$13,$01       // char 57 '9'
        .byte $19,$20,$09,$13                       // char 58 (partial)

txt_26de:
        .byte $3a,$20,$20,$20                       // char 58 (partial)
        .byte $20,$20,$20,$14,$08,$15,$0d,$02       // char 59 ';'
        .byte $20,$15,$10                           // char 60 (partial)

txt_26ed:
        .byte $21,$20,$20,$20,$20                   // char 60 (partial)
        .byte $20,$20,$20,$20,$20,$20,$20,$20       // char 61 '='
        .byte $20,$20,$20,$20,$ea,$ea,$cd,$ce       // char 62 '>'
        .byte $cf,$d0,$d1,$d2,$d3,$d4,$d5,$d6       // char 63 '?'
        .byte $d7,$d8,$d9,$da,$db,$dc,$dd,$de       // char 64 '@'
        .byte $df,$c0,$c1,$c2,$c3,$c4,$c5,$c6       // char 65 'A'
        .byte $c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce       // char 66 'B'
        .byte $cf,$d0,$d1,$d2,$d3,$d4,$cb,$cc       // char 67 'C'
        .byte $cd,$ce,$cf,$d0,$d1,$d2,$d3,$d4       // char 68 'D'
        .byte $d5,$d6,$d7,$d8,$d9,$da,$90,$92       // char 69 'E'
        .byte $85,$93,$85,$8e,$94,$93               // char 70 (partial)

spr_2740:
        .byte $ba,$c4                               // char 70 (partial)
        .byte $c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc       // char 71 'G'
        .byte $cd,$ce,$cf,$d0,$d1,$d2,$d8,$d9       // char 72 'H'
        .byte $da,$db,$dc,$dd,$de,$df,$c0,$c1       // char 73 'I'
        .byte $c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9       // char 74 'J'
        .byte $ca,$cb,$cc,$cd,$ce,$cf,$d0,$d1       // char 75 'K'
        .byte $d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9       // char 76 'L'
        .byte $da,$db,$dc,$dd,$de,$df,$dd,$de       // char 77 'M'
        .byte $df,$c0,$c1,$c2,$c3,$c4,$c5,$c6       // char 78 'N'
        .byte $c7,$c8,$c9,$ca,$cb,$cc,$8d,$89       // char 79 'O'
        .byte $8e,$89,$87,$8f,$8c,$86,$a1,$d6       // char 80 'P'
        .byte $d7,$d8,$d9,$da,$db,$dc,$dd,$de       // char 81 'Q'
        .byte $df,$c0,$c1,$c2,$c3,$c4,$d5,$d6       // char 82 'R'
        .byte $d7,$d8,$d9,$da,$db,$dc,$dd,$de       // char 83 'S'
        .byte $df,$c0,$c1,$c2,$c3,$c4,$c5,$c6       // char 84 'T'
        .byte $c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce       // char 85 'U'
        .byte $cf,$d0,$d1,$d2,$d3,$d4,$d5,$d6       // char 86 'V'
        .byte $d7,$d8,$d9,$da,$db,$dc,$da,$db       // char 87 'W'
        .byte $dc,$dd,$de,$df,$c0,$c1,$c2,$c3       // char 88 'X'
        .byte $c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb       // char 89 'Y'
        .byte $cc,$cd,$ce,$cf,$d0,$d1,$d2,$d3       // char 90 'Z'
        .byte $d4,$d5,$d6,$d7,$d8,$d9,$da,$db       // char 91 '['
        .byte $dc,$dd,$de,$df,$c0,$c1,$ff,$ff       // char 92 '\'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 93 ']'
        .byte $ff,$ff,$ff,$ff,$ff,$ff               // char 94 (partial)

// --- Region $2831-$2862 ---
.pc = $2831 "Segment $2831"
        .byte $00,$85,$fb,$a9,$30,$85,$fc,$a9,$00,$85,$fd,$a9,$08,$85,$fe,$a0 // ....0...........
        .byte $00,$a2,$68,$b1,$fb,$91,$fd,$c8,$d0,$f9,$e6,$fc,$e6,$fe,$ca,$d0 // ..h.............
        .byte $f2,$a9,$37,$85,$01,$a9,$b2,$85,$2d,$a9,$37,$85,$2e,$58,$4c,$e2 // ..7.....-.7..XL.
        .byte $fc                                   // .

dat_2862:
        // === Fill data (1 bytes, $2862-$2862) ===
        .byte $00                                   // .

// --- Region $2b40-$2b40 ---
.pc = $2b40 "spr_2b40"

spr_2b40:
        .byte $00                                   // .
