// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:49
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $305f  (10336 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $2ca0 (11424)
// IRQ handler:  $1d19 (irq_1d19)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 2513 bytes, Data: 7823 bytes
// Labels: 251, Subroutines: 13
//
// Cross-references: all OK
// ============================================


// --- Region $0b00-$0b91 ---
.pc = $0b00 "sub_0b00"

// Referenced by: jsr from $1d77
sub_0b00: {
        lda #$ff
        sta $d015
        sta $d01c
        sta $d01d
        sta $d01b
        ldx #$00
loop1:
        lda #$ad
        sta $d001,x
        inx
        inx
        cpx #$10
        bne loop1
        ldx #$00
loop2:
        lda #$b4
        sta $07f8,x
        inx
        cpx #$08
        bne loop2
        lda #$e0
        sta $d010
        ldx #$00
loop3:
        lda #$07
        sta $d027,x
        inx
        cpx #$08
        bne loop3
        lda #$03
        sta $d025
        lda #$0e
        sta $d026
        rts
}
// Referenced by: jsr from $1d91

sub_0b43:
        lda #$ff
        sta $d015
        sta $d01c
        sta $d01d
        sta $d01b
        ldx #$00

loc_0b53:
        lda #$c5
        sta $d001,x
        inx
        inx
        cpx #$10
        bne loc_0b53
        ldx #$00

loc_0b60:
        lda #$3c
        sta $07f8,x
        inx
        cpx #$08
        bne loc_0b60
        lda #$e0
        sta $d010
        ldx #$00

loc_0b71:
        lda #$07
        sta $d027,x
        inx
        cpx #$08
        bne loc_0b71
        lda #$0a
        sta $d025
        lda #$02
        sta $d026
        rts

chr_0b86:
        // === Charset data (4 bytes, $0b86-$0b89) ===
        .byte $20,$00,$2c,$60                       // char 0 (partial)
// Referenced by: jsr from $1dc8

sub_0b8a:
        jsr sub_2c00
        jsr sub_2c00
        rts

chr_0b91:
        // === Charset data (1 bytes, $0b91-$0b91) ===
        .byte $20                                   // char 0 (partial)

// --- Region $0bb0-$0bf0 ---
.pc = $0bb0 "sub_0bb0"
// Referenced by: jsr from $1dcb

sub_0bb0:
        lda $06f7
        cmp #$b1
        beq loc_0bc4
        cmp #$b2
        beq loc_0bcf
        cmp #$b3
        beq loc_0bda
        cmp #$b4
        beq loc_0be5
        rts

loc_0bc4:
        lda #$20
        sta $06f7
        lda #$86
        sta smc_1dc9                                // SMC: modifies $1dc9
        rts

loc_0bcf:
        lda #$20
        sta $06f7
        lda #$8a
        sta smc_1dc9                                // SMC: modifies $1dc9
        rts

loc_0bda:
        lda #$20
        sta $06f7
        lda #$91
        sta smc_1dc9                                // SMC: modifies $1dc9
        rts

loc_0be5:
        lda #$20
        sta $06f7
        lda #$9b
        sta smc_1dc9                                // SMC: modifies $1dc9
        rts

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

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

sub_1000:
        jmp loc_1040
// Referenced by: jsr from $1dc5

sub_1003:
        jmp loc_10da

dat_1006:
        .byte $01                                   // .

// --- Region $1040-$1291 ---
.pc = $1040 "loc_1040"

loc_1040:
        asl
        asl
        asl
        tay
        ldx #$00

loc_1046:
        lda $17ef,y
        sta $174e,x
        sta $1754,x
        lda $17f0,y
        sta $1751,x
        sta $1757,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1046
        ldx #$00
        stx $174d
        lda $17ef,y
        sta $100b
        sta $177b
        sta $177c
        sta $177d

loc_1073:
        sta $17d9,x
        inc $174d
        lda $100b
        clc
        adc $17ef,y
        sta $100b
        clc
        adc $174d
        inx
        cpx #$10
        bne loc_1073
        lda $1020
        beq loc_10bc
        ldx #$02

loc_1093:
        lda $17f0,y
        sta $174d
        and $175a,x
        sta dat_1006,x
        dex
        bpl loc_1093
        bit $174d
        bpl loc_10bc
        ldx #$00

loc_10a9:
        lda $17f1,y
        sta $1754,x
        lda $17f2,y
        sta $1757,x
        iny
        iny
        inx
        cpx #$03
        bne loc_10a9

loc_10bc:
        ldy #$00
        tya

loc_10bf:
        sta $d400,y
        iny
        cpy #$1b
        bne loc_10bf
        tay

loc_10c8:
        sta $177e,y
        sta $1766,y
        iny
        cpy #$0c
        bne loc_10c8
        lda $1009
        sta $d418
        rts

loc_10da:
        ldx #$02

loc_10dc:
        lda $1769,x
        cmp #$02
        bne loc_110f
        ldy $1772,x
        lda $18d5,y
        ldy $1760,x
        sta $d405,y
        ldy $1772,x
        lda $18d6,y
        ldy $1760,x
        sta $d406,y
        lda $18b0
        beq loc_1109
        lda $18af
        sta $d404,y
        jmp loc_110f

loc_1109:
        lda $1778,x
        sta $d404,y

loc_110f:
        dex
        bpl loc_10dc
        lda $fb
        pha
        lda $fc
        pha
        ldx #$02

loc_111a:
        lda dat_1006,x
        bne loc_1122
        jmp loc_1680

loc_1122:
        lda $176f,x
        beq loc_112f
        dec $176f,x
        bne loc_113f
        jmp loc_12bd

loc_112f:
        ldy $1772,x
        lda $18d8,y
        and #$0f
        cmp $177b,x
        beq loc_1142
        dec $177b,x

loc_113f:
        jmp loc_139a

loc_1142:
        sta $176f,x
        lda $1775,x
        sta $177b,x
        lda $174e,x
        sta $fb
        lda $1751,x
        sta $fc
        ldy #$00
        tya
        sta $176c,x
        lda ($fb),y
        bpl loc_116e
        asl
        sta $1781,x
        inc $174e,x
        bne loc_116b
        inc $1751,x

loc_116b:
        iny
        lda ($fb),y

loc_116e:
        tay
        lda $19aa,y
        sta $fb
        lda $19b6,y
        sta $fc

loc_1179:
        ldy $1766,x
        lda ($fb),y
        bmi loc_11a8
        beq loc_119e
        cmp #$7e
        beq loc_1194
        sta $177e,x
        lda $17ca,x
        beq loc_1197
        dec $17ca,x
        jmp loc_1197

loc_1194:
        inc $176c,x

loc_1197:
        lda #$ff
        sta $1763,x
        bne loc_120a

loc_119e:
        lda #$fe
        sta $1763,x
        inc $176c,x
        bne loc_120a

loc_11a8:
        pha
        and #$e0
        cmp #$80
        bne loc_11c8
        pla
        pha
        and #$10
        sta $176c,x
        pla
        and #$0f
        tay
        lda $17d9,y
        sta $177b,x
        sta $1775,x
        inc $1766,x
        bne loc_1179

loc_11c8:
        cmp #$a0
        bne loc_11d8
        pla
        asl
        asl
        asl
        sta $1772,x

loc_11d3:
        inc $1766,x
        bne loc_1179

loc_11d8:
        pla
        and #$3f
        asl
        tay
        lda $196d,y
        sta $17c1,x
        lda txt_196c,y
        pha
        and #$1f
        sta $17c4,x
        pla
        pha
        and #$80
        sta $17c7,x
        lda #$01
        sta $17ca,x
        lda #$00
        sta $17d0,x
        sta $17d3,x
        pla
        and #$20
        bne loc_11d3
        inc $17ca,x
        bne loc_11d3

loc_120a:
        inc $1766,x
        ldy $1766,x
        lda ($fb),y
        cmp #$7f
        bne loc_1243
        lda #$00
        sta $1766,x
        tay
        lda $174e,x
        clc
        adc #$01
        sta $174e,x
        sta $fb
        lda $1751,x
        adc #$00
        sta $1751,x
        sta $fc
        lda ($fb),y
        cmp #$ff
        bne loc_1243
        lda $1754,x
        sta $174e,x
        lda $1757,x
        sta $1751,x

loc_1243:
        cmp #$fe
        bne loc_1255
        lda #$00
        sta dat_1006,x
        ldy $1760,x
        sta $d404,y
        jmp loc_1680

loc_1255:
        lda $176c,x
        beq loc_127d
        lda $176f,x
        bne loc_127a
        lda $1763,x
        sta $101a,x
        lda $177e,x
        sta $1014,x
        lda $1781,x
        sta $1017,x
        lda $17ca,x
        sta $17cd,x
        sta $1769,x

loc_127a:
        jmp loc_139a

loc_127d:
        ldy $1760,x
        lda $18ae
        sta $d405,y
        sta $d406,y
        lda $176f,x
        beq loc_12bd
        jmp loc_1680

dat_1291:
        .byte $bc                                   // .

// --- Region $12b1-$136a ---
.pc = $12b1 "loc_12b1"

loc_12b1:
        sta $d406,y
        lda $1778,x
        sta $d404,y
        jmp loc_1304

loc_12bd:
        lda $1763,x
        sta $101a,x
        lda $177e,x
        sta $1014,x
        lda $1781,x
        sta $1017,x
        lda $17ca,x
        sta $17cd,x
        sta $1769,x
        lda $176c,x
        beq loc_12e0
        jmp loc_139a

loc_12e0:
        ldy $1760,x
        lda $18ad
        sta $d405,y
        sta $d406,y
        lda $18b0
        beq loc_12fc
        lda $18af
        and #$fe
        sta $d404,y
        jmp loc_1304

loc_12fc:
        lda $1778,x
        and #$fe
        sta $d404,y

loc_1304:
        ldy $1772,x
        tya
        sta $101d,x
        lda $18dc,y
        sta $17be,x
        lda $18db,y
        sta $17ab,x
        tay
        lda #$00
        sta $17ae,x
        lda $18c3,y
        and #$80
        cmp #$80
        beq loc_1335
        lda $18c4,y
        pha
        and #$f0
        sta $17b1,x
        pla
        and #$0f
        sta $17b4,x

loc_1335:
        ldy $1772,x
        lda $18d9,y
        ldy #$00
        and #$0f
        beq loc_1359
        cmp #$08
        beq loc_1358
        asl
        asl
        asl
        asl
        ora $1009
        sta $d418
        iny
        lda $100a
        ora $175a,x
        bne loc_135f

loc_1358:
        iny

loc_1359:
        lda $100a
        and $175d,x

loc_135f:
        sta $d417
        sta $100a
        cpy #$01
        bne loc_1387

dat_1369:
        .byte $bc,$72                               // .r

// --- Region $1387-$168d ---
.pc = $1387 "loc_1387"

loc_1387:
        lda #$03
        sta $1769,x
        lda $18b0
        bne loc_1394
        jmp loc_14c7

loc_1394:
        dec $1769,x
        jmp loc_1680

loc_139a:
        lda $17ae,x
        beq loc_13a5
        dec $17ae,x
        jmp loc_13f0

loc_13a5:
        ldy $17ab,x
        lda $18c1,y
        pha
        lsr
        lsr
        lsr
        lsr
        sta $179f,x
        pla
        and #$0f
        sta $17a2,x
        lda $18c2,y
        sta $17a5,x
        lda $18c3,y
        sta $174d
        and #$3f
        asl
        sta $17ae,x
        bit $174d
        bpl loc_13e4
        lda $18c4,y
        pha
        and #$f0
        sta $17b1,x
        pla
        and #$0f
        sta $17b4,x
        lda #$00
        sta $17a8,x

loc_13e4:
        bit $174d
        bvs loc_13f0
        tya
        clc
        adc #$04
        sta $17ab,x

loc_13f0:
        lda $17a8,x
        bne loc_140e
        lda $17b1,x
        clc
        adc $17a5,x
        sta $17b1,x
        lda $17b4,x
        adc #$00
        sta $17b4,x
        cmp $17a2,x
        bne loc_142d
        beq loc_1425

loc_140e:
        lda $17b1,x
        sec
        sbc $17a5,x
        sta $17b1,x
        lda $17b4,x
        sbc #$00
        sta $17b4,x
        cmp $179f,x
        bne loc_142d

loc_1425:
        lda $17a8,x
        eor #$01
        sta $17a8,x

loc_142d:
        cpx #$00
        beq loc_1434
        jmp loc_14c7

loc_1434:
        lda $17bc
        beq loc_143f
        dec $17bc
        jmp loc_149a

loc_143f:
        ldy $17bb
        lda $18ad,y
        pha
        and #$f0
        sta $17b7
        pla
        asl
        asl
        asl
        asl
        sta $17b8
        lda $18ae,y
        sta $17b9
        lda $18af,y
        sta $174d
        and #$3f
        asl
        sta $17bc
        bit $174d
        bpl loc_148e
        lda $100a
        and #$0f
        sta $174d
        lda $18b0,y
        pha
        and #$f0
        sta $17bd
        pla
        asl
        asl
        asl
        asl
        ora $174d
        sta $100a
        sta $d417
        lda #$00
        sta $17ba

loc_148e:
        bit $174d
        bvs loc_149a
        tya
        clc
        adc #$04
        sta $17bb

loc_149a:
        lda $17ba
        bne loc_14b0
        lda $17bd
        clc
        adc $17b9
        sta $17bd
        cmp $17b8
        bcc loc_14c7
        bcs loc_14bf

loc_14b0:
        lda $17bd
        sec
        sbc $17b9
        sta $17bd
        cmp $17b7
        bcs loc_14c7

loc_14bf:
        lda $17ba
        eor #$01
        sta $17ba

loc_14c7:
        ldy $1772,x
        lda $18d9,y
        and #$f0
        cmp #$10
        bne loc_14f2
        ldy $17be,x
        lda $17ff,y
        cmp #$7f
        bne loc_14e7
        lda $1856,y
        sta $17be,x
        tay
        lda $17ff,y

loc_14e7:
        sta $100f,x
        lda #$00
        sta $100c,x
        jmp loc_1531

loc_14f2:
        ldy $17be,x
        lda $17ff,y
        bmi loc_150a
        cmp #$7f
        bne loc_1510
        lda $1856,y
        sta $17be,x
        tay
        lda $17ff,y
        bpl loc_1510

loc_150a:
        asl
        ldy #$01
        jmp loc_151b

loc_1510:
        clc
        adc $1014,x
        asl
        clc
        adc $1017,x
        ldy #$00

loc_151b:
        sty $174d
        tay
        lda scr_168d,y
        clc
        adc $17d6,x
        sta $100c,x
        lda $168e,y
        adc #$00
        sta $100f,x

loc_1531:
        ldy $17be,x
        lda $1856,y
        sta $1778,x
        inc $17be,x
        lda $17cd,x
        beq loc_1595
        lda $17c7,x
        bne loc_155d
        lda $17d0,x
        clc
        adc $17c1,x
        sta $17d0,x
        lda $17d3,x
        adc $17c4,x
        sta $17d3,x
        jmp loc_1570

loc_155d:
        lda $17d0,x
        sec
        sbc $17c1,x
        sta $17d0,x
        lda $17d3,x
        sbc $17c4,x
        sta $17d3,x

loc_1570:
        lda $174d
        bne loc_1588
        lda $100c,x
        clc
        adc $17d0,x
        sta $100c,x
        lda $100f,x
        adc $17d3,x
        sta $100f,x

loc_1588:
        lda $1769,x
        cmp #$01
        beq loc_1592
        dec $1769,x

loc_1592:
        jmp loc_1656

loc_1595:
        lda $1769,x
        beq loc_15d8
        cmp #$01
        beq loc_15a4
        dec $1769,x
        jmp loc_1656

loc_15a4:
        ldy $1772,x
        lda $18d8,y
        lsr
        lsr
        lsr
        lsr
        sta $1787,x
        sec
        sbc #$01
        sta $1784,x
        lda #$00
        sta $1790,x
        sta $1796,x
        sta $1799,x
        lda $18d7,y
        pha
        and #$f0
        sta $179c,x
        pla
        and #$0f
        asl
        sta $1793,x
        dec $1769,x
        jmp loc_1656

loc_15d8:
        lda $1787,x
        beq loc_1656
        dec $1793,x
        bmi loc_15e5
        jmp loc_1656

loc_15e5:
        inc $1793,x
        lda $100f,x
        lsr
        lsr
        lsr
        sta $100b
        lda $179c,x
        clc
        adc $100b
        sta $178a,x
        lda #$00
        adc #$00
        sta $178d,x
        dec $1784,x
        bpl loc_1615
        lda $1790,x
        eor #$01
        sta $1790,x
        lda $1787,x
        sta $1784,x

loc_1615:
        lda $1790,x
        bne loc_1630
        lda $1796,x
        clc
        adc $178a,x
        sta $1796,x
        lda $1799,x
        adc $178d,x
        sta $1799,x
        jmp loc_1643

loc_1630:
        lda $1796,x
        sec
        sbc $178a,x
        sta $1796,x
        lda $1799,x
        sbc $178d,x
        sta $1799,x

loc_1643:
        lda $100c,x
        clc
        adc $1796,x
        sta $100c,x
        lda $100f,x
        adc $1799,x
        sta $100f,x

loc_1656:
        ldy $1760,x
        lda $17b1,x
        sta $d402,y
        lda $17b4,x
        sta $d403,y
        lda $17bd
        sta $d416
        lda $100c,x
        sta $d400,y
        lda $100f,x
        sta $d401,y
        lda $1778,x
        and $101a,x
        sta $d404,y

loc_1680:
        dex
        bmi loc_1686
        jmp loc_111a

loc_1686:
        pla
        sta $fc
        pla
        sta $fb
        rts

scr_168d:
        // === Screen RAM (1 bytes, $168d-$168d) ===
        .encoding "screencode_mixed"
        .text "v"
        .encoding "petscii_upper"

// --- Region $1ba0-$1baa ---
.pc = $1ba0 "loc_1ba0"

loc_1ba0:
        lda #$00
        sta $d020
        sta $d021
        jmp $fce2

// --- Region $1d00-$1e52 ---
.pc = $1d00 "sub_1d00"
// Referenced by: jsr from $2cdc

sub_1d00:
        sei
        lda #$19
        sta $0314
        lda #$1d
        sta $0315
        lda #$01
        sta $d01a
        lda #$7f
        sta $dc0d
        cli
        rts

chr_1d17:
        // === Charset data (2 bytes, $1d17-$1d18) ===
        .byte $00,$00                               // char 0 (partial)

irq_1d19:
        lda #$38

loc_1d1b:
        cmp $d012
        bne loc_1d1b
        lda #$1a
        sta $d018
        lda #$d8
        sta $d016
        ldx #$0e
        ldy #$03
        stx $d023
        sty $d022
        bit $d019
        lda #$57

loc_1d39:
        cmp $d012
        bne loc_1d39
        lda #$19
        sta $d018
        lda $46
        sta $d016
        ldy #$0b
        ldx #$0c
        sty $d022
        stx $d023
        lda #$93

loc_1d54:
        cmp $d012
        bne loc_1d54
        lda #$12
        sta $d018
        lda $47
        sta $d016
        jsr sub_1f40
        lda #$a9

loc_1d68:
        cmp $d012
        bne loc_1d68
        lda $48
        sta $d016
        lda #$12
        sta $d018
        jsr sub_0b00
        lda #$c2

loc_1d7c:
        cmp $d012
        bne loc_1d7c
        nop
        nop
        nop
        nop
        nop
        nop
        lda #$12
        sta $d018
        lda $32
        sta $d016
        jsr sub_0b43
        lda #$d9

loc_1d96:
        cmp $d012
        bne loc_1d96
        ldy #$08

loc_1d9d:
        dey
        bne loc_1d9d
        lda #$00
        sta $d015
        lda #$1a
        sta $d018
        ldy #$03
        ldx #$0e
        sty $d022
        stx $d023
        lda #$d8
        sta $d016
        jsr sub_1e00
        jsr sub_1ed2
        jsr sub_1f09
        inc $d019
        jsr sub_1003
.label smc_1dc9 = * + 1
        jsr sub_0b8a                                // !SMC: modified by $0bcb, $0bd6, $0be1, $0bec
        jsr sub_0bb0
        lda $dc01
        cmp #$ef
        beq loc_1dd8
        jmp $ea81

loc_1dd8:
        jsr $fda3
        jsr $ff5b
        sei
        lda #$ea
        sta $0315
        lda #$31
        sta $0314
        lda #$f0
        sta $d01a
        lda #$00
        sta $dc0d
        sta $d418
        cli
        jmp loc_1ba0

chr_1dfa:
        // === Charset data (6 bytes, $1dfa-$1dff) ===
        .byte $00,$00,$00,$00,$00,$00               // char 0 (partial)
// Referenced by: jsr from $1db9

sub_1e00:
.label smc_1e01 = * + 1
        lda $1e9e                                   // !SMC: modified by $1e4e
        tay
        and #$07
        eor #$f7
        sta $46
        tya
        lsr
        lsr
        lsr
        tay
        ldx #$00

loc_1e11:
        lda $2500,y
        sta $04c8,x
        lda $2560,y
        sta $04f0,x
        lda $25c0,y
        sta $0518,x
        lda $2620,y
        sta $0540,x
        lda $2680,y
        sta $0568,x
        lda $26e0,y
        sta $0590,x
        lda $2740,y
        sta $05b8,x
        inx
        iny
        cpx #$28
        bne loc_1e11
        inc smc_1e01
        lda smc_1e01
        cmp #$d2
        beq loc_1e4c
        rts

loc_1e4c:
        lda #$52
        sta smc_1e01                                // SMC: modifies $1e01
        rts

chr_1e52:
        // === Charset data (1 bytes, $1e52-$1e52) ===
        .byte $80                                   // char 0 (partial)

// --- Region $1ed2-$1faa ---
.pc = $1ed2 "sub_1ed2"
// Referenced by: jsr from $1dbc

sub_1ed2:
.label smc_1ed3 = * + 1
        lda $1e60                                   // !SMC: modified by $1f05
        tay
        and #$07
        eor #$c7
        sta $47
        tya
        lsr
        lsr
        lsr
        tay
        ldx #$00

loc_1ee3:
        lda $0fa0,y
        sta $0608,x
        lda $0fa0,y
        clc
        adc #$80
        sta $0630,x
        inx
        iny
        cpx #$28
        bne loc_1ee3
        inc smc_1ed3
        lda smc_1ed3
        cmp #$d2
        beq loc_1f03
        rts

loc_1f03:
        lda #$52
        sta smc_1ed3                                // SMC: modifies $1ed3
        rts
// Referenced by: jsr from $1dbf

sub_1f09:
.label smc_1f0a = * + 1
        lda $1ed0                                   // !SMC: modified by $1f3c
        tay
        and #$07
        eor #$c7
        sta $48
        tya
        lsr
        lsr
        lsr
        tay
        ldx #$00

loc_1f1a:
        lda txt_0f40,y
        sta $0658,x
        lda txt_0f40,y
        clc
        adc #$80
        sta $0680,x
        inx
        iny
        cpx #$28
        bne loc_1f1a
        inc smc_1f0a
        lda smc_1f0a
        cmp #$d2
        beq loc_1f3a
        rts

loc_1f3a:
        lda #$52
        sta smc_1f0a                                // SMC: modifies $1f0a
        rts
// Referenced by: jsr from $1d63

sub_1f40:
        lda #$ff
        sta $d015
        sta $d01c
        sta $d01d
        sta $d01b
        ldx #$00

loc_1f50:
        lda #$98
        sta $d001,x
        inx
        inx
        cpx #$10
        bne loc_1f50
        lda #$18
        sta $d000
        lda #$48
        sta $d002
        lda #$78
        sta $d004
        lda #$a8
        sta $d006
        lda #$d8
        sta $d008
        lda #$08
        sta $d00a
        lda #$38
        sta $d00c
        lda #$ff
        sta $d00e
        ldx #$00

loc_1f85:
        lda #$3c
        sta $07f8,x
        inx
        cpx #$08
        bne loc_1f85
        lda #$e0
        sta $d010
        ldx #$00

loc_1f96:
        lda #$0d
        sta $d027,x
        inx
        cpx #$08
        bne loc_1f96
        lda #$05
        sta $d025
        lda #$09
        sta $d026
        rts

// --- Region $2c00-$2c45 ---
.pc = $2c00 "sub_2c00"
// Referenced by: jsr from $0b8a, $0b8d

sub_2c00:
        dec $32
        lda $32
        and #$07
        cmp #$07
        bne loc_2c3f
        ldx #$00

loc_2c0c:
        lda $06d1,x
        sta $06d0,x
        clc
        adc #$80
        sta $06f8,x
        inx
        cpx #$28
        bne loc_2c0c
.label smc_2c1e = * + 1
.label smc_2c1f = * + 2
        lda txt_2f03                                // !SMC: modified by $2c29, $2c2e, $2cb7, $2cbc
        sta $06f7
        cmp #$00
        bne loc_2c37
        lda #$00
        sta smc_2c1e                                // SMC: modifies $2c1e
        lda #$2f
        sta smc_2c1f                                // SMC: modifies $2c1f
        lda $2f00
        sta $06f7

loc_2c37:
        inc smc_2c1e
        bne loc_2c3f
        inc smc_2c1f

loc_2c3f:
        lda $32
        and #$07
        sta $32
        rts

// --- Region $2c60-$2ce1 ---
.pc = $2c60 "sub_2c60"
// Referenced by: jsr from $2cd9

sub_2c60:
        ldx #$00
        lda #$00

loc_2c64:
        sta $d8a0,x
        inx
        cpx #$28
        bne loc_2c64
        ldx #$00
        lda #$0b

loc_2c70:
        sta $d8c8,x
        inx
        bne loc_2c70
        ldx #$00
        lda #$0b

loc_2c7a:
        sta $d9c8,x
        inx
        cpx #$18
        bne loc_2c7a
        ldx #$00
        lda #$00

loc_2c86:
        sta $d9e0,x
        inx
        bne loc_2c86
        ldx #$00
        lda #$00

loc_2c90:
        sta $dae0,x
        inx
        cpx #$68
        bne loc_2c90
        rts

dat_2c99:
        .byte $00,$00,$00,$00,$00,$00,$00           // .......

main_2ca0:
        lda #$00
        sta $d020
        sta $d021
        lda #$0e
        sta $0286
        lda #$00
        jsr sub_1000
        jsr $e544
        lda #$00
        sta smc_2c1e                                // SMC: modifies $2c1e
        lda #$2f
        sta smc_2c1f                                // SMC: modifies $2c1f
        ldx #$00

loc_2cc1:
        lda $2dc0,x
        sta $0400,x
        inx
        cpx #$a0
        bne loc_2cc1
        ldx #$00

loc_2cce:
        lda $2e60,x
        sta $0748,x
        inx
        cpx #$a0
        bne loc_2cce
        jsr sub_2c60
        jsr sub_1d00

loc_2cdf:
        jmp loc_2cdf

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

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

spr_0800:
        // === Charset data (768 bytes, $0800-$0aff) ===
        .byte $00,$00,$00,$ff,$ff,$ff,$ff,$ff       // char 0 @+0
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 1 @+1
        .byte $ff,$ff,$ff,$1f,$1f,$1f,$1f,$03       // char 2 @+2
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 3 @+3
        .byte $ff,$ff,$ff,$f1,$f1,$f1,$f1,$81       // char 4 @+4
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 5 @+5
        .byte $ff,$ff,$ff,$81,$11,$11,$1f,$07       // char 6 @+6
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 7 @+7
        .byte $ff,$ff,$ff,$1f,$1f,$1f,$1f,$03       // char 8 @+8
        .byte $ff,$ff,$ff,$ef,$c7,$ef,$ff,$c7       // char 9 @+9
        .byte $ff,$ff,$ff,$fb,$f1,$fb,$ff,$f1       // char 10 @+10
        .byte $ff,$ff,$ff,$1f,$1f,$1f,$1f,$11       // char 11 @+11
        .byte $ff,$ff,$ff,$c7,$c7,$c7,$c7,$c7       // char 12 @+12
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$39       // char 13 @+13
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 14 @+14
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 15 @+15
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 16 @+16
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 17 @+17
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 18 @+18
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$83       // char 19 @+19
        .byte $ff,$ff,$ff,$1f,$1f,$1f,$1f,$07       // char 20 @+20
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$11       // char 21 @+21
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$11       // char 22 @+22
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$11       // char 23 @+23
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$11       // char 24 @+24
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$11       // char 25 @+25
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$81       // char 26 @+26
        .byte $ff,$80,$bf,$b0,$a4,$a4,$a7,$b1       // char 27 @+27
        .byte $ff,$00,$ff,$93,$92,$92,$92,$82       // char 28 @+28
        .byte $ff,$00,$ff,$18,$49,$49,$49,$09       // char 29 @+29
        .byte $ff,$00,$ff,$71,$24,$24,$24,$24       // char 30 @+30
        .byte $ff,$00,$fe,$92,$92,$92,$92,$92       // char 31 @+31
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 32 ' '
        .byte $ff,$ff,$ff,$ef,$c7,$c7,$c7,$c7       // char 33 '!'
        .byte $ff,$ff,$ff,$11,$11,$33,$77,$ff       // char 34 '"'
        .byte $ff,$ff,$ff,$93,$93,$93,$01,$93       // char 35 '#'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 36 '$'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 37 '%'
        .byte $03,$ed,$ed,$03,$ff,$03,$fd,$fd       // char 38 '&'
        .byte $ff,$ff,$ff,$f1,$f1,$f3,$f7,$ff       // char 39 '''
        .byte $ff,$ff,$ff,$e3,$c3,$cf,$cf,$cf       // char 40 '('
        .byte $ff,$ff,$ff,$c7,$c3,$f3,$f3,$f3       // char 41 ')'
        .byte $c1,$88,$88,$88,$88,$88,$c1,$ff       // char 42 '*'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$e7,$e7       // char 43 '+'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 44 ','
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 45 '-'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 46 '.'
        .byte $ff,$ff,$fb,$f1,$e1,$e3,$e7,$c7       // char 47 '/'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$11       // char 48 '0'
        .byte $ff,$ff,$ff,$c7,$87,$87,$c7,$c7       // char 49 '1'
        .byte $ff,$ff,$ff,$83,$11,$11,$f1,$83       // char 50 '2'
        .byte $ff,$ff,$ff,$83,$11,$11,$f1,$c3       // char 51 '3'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$81       // char 52 '4'
        .byte $ff,$ff,$ff,$01,$11,$11,$1f,$03       // char 53 '5'
        .byte $ff,$ff,$ff,$83,$11,$11,$1f,$03       // char 54 '6'
        .byte $ff,$ff,$ff,$03,$11,$11,$f1,$c1       // char 55 '7'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$83       // char 56 '8'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$81       // char 57 '9'
        .byte $ff,$ff,$ff,$ff,$ff,$df,$8f,$df       // char 58 ':'

dat_09d8:
        // === Fill data (35 bytes, $09d8-$09fa) ===
        .fill 35, $ff
        .byte $83,$11,$b1,$f1,$c3                   // char 63 (partial)
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 64 '@'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$01       // char 65 'A'
        .byte $ff,$ff,$ff,$03,$11,$11,$11,$03       // char 66 'B'
        .byte $ff,$ff,$ff,$81,$11,$11,$1f,$1f       // char 67 'C'
        .byte $ff,$ff,$ff,$03,$11,$11,$11,$11       // char 68 'D'
        .byte $ff,$ff,$ff,$81,$11,$11,$1f,$07       // char 69 'E'
        .byte $ff,$ff,$ff,$81,$11,$11,$1f,$07       // char 70 'F'
        .byte $ff,$ff,$ff,$83,$11,$11,$1f,$11       // char 71 'G'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$01       // char 72 'H'
        .byte $ff,$ff,$ff,$c7,$c7,$c7,$c7,$c7       // char 73 'I'
        .byte $ff,$ff,$ff,$c1,$f1,$f1,$f1,$f1       // char 74 'J'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$03       // char 75 'K'
        .byte $ff,$ff,$ff,$1f,$1f,$1f,$1f,$1f       // char 76 'L'
        .byte $ff,$ff,$ff,$39,$11,$01,$29,$11       // char 77 'M'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$11       // char 78 'N'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$11       // char 79 'O'
        .byte $ff,$ff,$ff,$03,$11,$11,$11,$03       // char 80 'P'
        .byte $ff,$ff,$ff,$83,$11,$11,$11,$11       // char 81 'Q'
        .byte $ff,$ff,$ff,$03,$11,$11,$11,$03       // char 82 'R'
        .byte $ff,$ff,$ff,$83,$11,$11,$1f,$83       // char 83 'S'
        .byte $ff,$ff,$ff,$03,$11,$11,$f1,$f1       // char 84 'T'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$11       // char 85 'U'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$11       // char 86 'V'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$11       // char 87 'W'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$83       // char 88 'X'
        .byte $ff,$ff,$ff,$11,$11,$11,$11,$81       // char 89 'Y'
        .byte $ff,$ff,$ff,$01,$11,$11,$f1,$83       // char 90 'Z'
        .byte $ff,$80,$bf,$b0,$a4,$a4,$a7,$b1       // char 91 '['
        .byte $ff,$00,$ff,$93,$92,$92,$92,$82       // char 92 '\'
        .byte $ff,$00,$ff,$18,$49,$49,$49,$09       // char 93 ']'
        .byte $ff,$00,$ff,$71,$24,$24,$24,$24       // char 94 '^'
        .byte $ff,$00,$fe,$92,$92,$92,$92,$92       // char 95 '_'

// --- Region $0b92-$0baf ---
.pc = $0b92 "Program $0b92"
        .byte $00,$2c,$20,$00,$2c,$20,$00           // char 0 (partial)
        .byte $2c,$60,$20,$00,$2c,$20,$00,$2c       // char 1 @+1
        .byte $20,$00,$2c,$20,$00,$2c,$60,$00       // char 2 @+2
        .byte $00,$00,$00,$00,$00,$00,$00           // char 3 (partial)

// --- Region $0bf1-$0fff ---
.pc = $0bf1 "Program $0bf1"
        .byte $00,$00,$00,$00,$00,$00,$00           // char 0 (partial)
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 1 @+1

scr_0c00:
        // === Screen RAM (1024 bytes, $0c00-$0fff) ===
        .encoding "screencode_mixed"
        .fill 8, $ff
        .text "qqqqa"
        .byte $81,$ff,$ff                           // scrcode: ...
        .text "qqqqac"
        .byte $ff,$ff                               // scrcode: ..
        .text "q"
        .byte $1f,$1f                               // scrcode: ..
        .text "qa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .text "qqqqa"
        .byte $81,$ff,$ff                           // scrcode: ...
        .text "qa"
        .byte $1f                                   // scrcode: .
        .text "qa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .fill 8, $1f
        .text "qqqq"
        .byte $81,$f1                               // scrcode: ..
        .text "acqqqqqq"
        .byte $ff,$ff,$c7,$c7,$c7,$c7,$c7,$c7,$ff,$ff,$f1,$f1,$f1,$f1 // scrcode: ..............
        .text "qqa"
        .byte $83                                   // scrcode: .
        .text "qcqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .byte $c7,$c7,$c7,$c7,$c7,$c7,$ff,$ff       // scrcode: ........
        .text "qa)qqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .encoding "petscii_upper"

spr_0c80:
        .encoding "screencode_mixed"
        .text "qqqqac"
        .byte $1f,$1f                               // scrcode: ..
        .text "qqaqa"
        .byte $80,$fd,$ff                           // scrcode: ...
        .text "qq"
        .byte $1f,$1f,$1f,$1f,$ff,$ff,$1f,$83,$f1   // scrcode: .........
        .text "qa"
        .byte $83,$ff,$ff,$1f,$1f                   // scrcode: .....
        .text "qqa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .text "qqqqa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .text "qqqa"
        .byte $83,$c7,$ff,$ff                       // scrcode: ....
        .text "qq)aq9"
        .byte $ff,$ff                               // scrcode: ..
        .text "q"
        .byte $83                                   // scrcode: .
        .text "qqqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqq"
        .byte $81,$f1                               // scrcode: ..
        .text "ac"
        .byte $f1,$83,$1f                           // scrcode: ...
        .text "qaa"
        .byte $ff,$ff,$bc,$a4,$a4,$a4,$a0,$bf,$80,$ff,$92,$92,$92,$92,$92,$ff // scrcode: ................
        .text "@"
        .byte $ff,$49,$49,$49,$49,$48,$ff           // scrcode: .......
        .text "@"
        .byte $ff                                   // scrcode: .
        .text "$$$$"
        .byte $71,$ff                               // scrcode: ..
        .text "@"
        .byte $ff                                   // scrcode: .
        .byte $92,$aa,$82,$92,$ba,$fe               // scrcode: ......
        .text "@"
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c7,$ef,$ff,$ef,$c7,$ef,$ff // scrcode: ................
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$93 // scrcode: ..........
        .text "a"
        .byte $93,$93,$93,$93,$ff,$ff               // scrcode: ......
        .fill 16, $ff
        .text "c"
        .byte $ff                                   // scrcode: .
        .text "a"
        .byte $7d,$7d,$83,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$cf,$cf,$cf // scrcode: ................
        .byte $cf,$c3,$e3,$ff,$ff,$f3,$f3,$f3,$f3,$c3,$c7,$ff,$ff,$c0,$88,$8f // scrcode: ................
        .byte $87,$8f,$8f,$8f,$ff                   // scrcode: .....
        .byte $81,$e7,$e7,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f1,$f1,$f3,$f7 // scrcode: ................
        .byte $81,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fb,$f1,$fb,$ff,$ff // scrcode: ................
        .byte $c7,$cf,$8f                           // scrcode: ...
        .text "o"
        .byte $1f,$bf,$ff,$ff                       // scrcode: ....
        .text "qqqqa"
        .byte $83,$ff,$ff,$c7,$c7,$c7,$c7,$83,$83,$ff,$ff,$1f // scrcode: ............
        .text "qqqaa"
        .byte $ff,$ff,$f1                           // scrcode: ...
        .text "qqqa"
        .byte $83,$ff,$ff,$f1,$f1,$f1,$f1,$f1,$f1,$ff,$ff // scrcode: ...........
        .byte $f1                                   // scrcode: .
        .text "qqqa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .text "qqqqa"
        .byte $83,$ff,$ff,$f1,$f1,$f1,$f1,$f1,$f1,$ff,$ff // scrcode: ...........
        .text "qqqqa"
        .byte $83,$ff,$ff,$f1,$f1,$f1,$f1,$f1,$f1,$ff,$ff // scrcode: ...........
        .byte $ff,$df,$8f,$df                       // scrcode: ....
        .encoding "petscii_upper"

dat_0dd4:
        // === Fill data (36 bytes, $0dd4-$0df7) ===
        .fill 36, $ff
        .encoding "screencode_mixed"
        .byte $8f,$df,$ff,$df,$8f,$df,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff // scrcode: ................
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqac"
        .byte $ff,$ff,$1f                           // scrcode: ...
        .text "qqqa"
        .byte $81,$ff,$ff                           // scrcode: ...
        .text "qqqqac"
        .byte $ff,$ff,$1f                           // scrcode: ...
        .text "qqqa"
        .byte $81,$ff,$ff,$1f,$1f,$1f,$1f,$1f,$1f,$ff,$ff // scrcode: ...........
        .text "qqqqa"
        .byte $81,$ff,$ff                           // scrcode: ...
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .byte $c7,$c7,$c7,$c7,$c7,$c7,$ff,$ff,$f1   // scrcode: .........
        .text "qqqac"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqqq"
        .byte $ff,$ff,$1f                           // scrcode: ...
        .text "qqqa"
        .byte $81,$ff,$ff                           // scrcode: ...
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqa"
        .byte $83,$ff,$ff,$1f,$1f,$1f,$1f,$1f,$1f,$ff,$ff // scrcode: ...........
        .text "qqaqa"
        .byte $80,$fd,$ff                           // scrcode: ...
        .text "qqqqqq"
        .byte $ff,$ff                               // scrcode: ..
        .byte $f1                                   // scrcode: .
        .text "qqqa"
        .byte $83,$ff,$ff,$f1,$f1,$f1,$f1,$f1,$f1,$ff,$ff // scrcode: ...........
        .text "qqqqa"
        .byte $83,$ff,$ff                           // scrcode: ...
        .text "qqqa"
        .byte $83,$c7,$ff,$ff                       // scrcode: ....
        .text "qq)aq9"
        .byte $ff,$ff                               // scrcode: ..
        .text "qqqqqq"
        .byte $ff,$ff,$f1                           // scrcode: ...
        .text "qqqac"
        .byte $ff,$ff,$1f                           // scrcode: ...
        .text "qqqaa"
        .byte $ff,$ff,$bc,$a4,$a4,$a4,$a0,$bf,$80,$ff,$92,$92,$92,$92,$92,$ff // scrcode: ................
        .text "@"
        .byte $ff                                   // scrcode: .
        .byte $49,$49,$49,$49,$48,$ff               // scrcode: ......
        .text "@"
        .byte $ff                                   // scrcode: .
        .text "$$$$"
        .byte $71,$ff                               // scrcode: ..
        .text "@"
        .byte $ff,$92,$aa,$82,$92,$ba,$fe           // scrcode: .......
        .text "@"
        .byte $ff,$5f,$55,$f5,$7d,$69,$7d,$f5,$aa,$5f,$d6,$96,$97 // scrcode: .............
        .encoding "petscii_upper"

txt_0f0c:
        .text "ZU"
        .byte $a5                                   // '%' | $80 (end-of-string marker)
        .byte $69,$7d,$69,$a5,$ff,$5a,$97,$d7,$d6,$5f,$55,$f5,$7d,$69,$7d,$f5 // scrcode: ................
        .byte $aa,$5f,$d6,$96,$97                   // scrcode: .....

txt_0f24:
        .text "ZU"
        .byte $a5                                   // '%' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $69,$7d,$69,$a5,$ff,$5a,$97,$d7,$d6   // scrcode: .........
        .text "@@@@@@@@@@@@@@@@"
        .encoding "petscii_upper"

txt_0f40:
        .text "                BACK TO THE FUTURE III+ (C) MIRRORSOFT!"

dat_0f77:
        // === Fill data (68 bytes, $0f77-$0fba) ===
        .fill 68, $20
        .encoding "screencode_mixed"
        .byte $50,$52,$4f,$55,$44,$4c,$59           // scrcode: .......
        .text " "
        .byte $50,$52,$45,$53,$45,$4e,$54,$53       // scrcode: ........
        .encoding "petscii_upper"

dat_0fcb:
        // === Fill data (53 bytes, $0fcb-$0fff) ===
        .fill 53, $20

// --- Region $1007-$103f ---
.pc = $1007 "Segment $1007"
        .byte $02,$04,$0f,$f1,$00,$1b,$d7,$e0,$04,$2b,$2b,$fc,$3e,$12,$2f,$3a // .........++.>./:
        .byte $0a,$0a,$0a,$fe,$ff,$ff,$00           // .......

txt_101e:
        .text " X-PLAYER BY JCH....MUSIC BY DRAX-"

// --- Region $1292-$12b0 ---
.pc = $1292 "Segment $1292"
        .byte $60,$17,$bd,$78,$17,$29,$fe,$99,$04,$d4,$bc,$72,$17,$b9,$d5,$18 // `..x.).....r....
        .byte $bc,$60,$17,$99,$05,$d4,$bc,$72,$17,$b9,$d6,$18,$bc,$60,$17 // .`.....r.....`.

// --- Region $136b-$1386 ---
.pc = $136b "Segment $136b"
        .byte $17,$b9,$da,$18,$8d,$bb,$17,$a8,$b9,$af,$18,$29,$80,$c9,$80,$d0 // ...........)....
        .byte $06,$b9,$b0,$18,$8d,$bd,$17,$a9,$00,$8d,$bc,$17 // ............

// --- Region $168e-$1b85 ---
.pc = $168e "Segment $168e"
        .encoding "screencode_mixed"
        .text "a'a8a"
        .byte $4b                                   // scrcode: .
        .text "a"
        .byte $5f                                   // scrcode: .
        .text "a"
        .byte $73                                   // scrcode: .
        .text "a"
        .byte $8a                                   // scrcode: .
        .text "a"
        .byte $a1                                   // scrcode: .
        .text "a"
        .byte $ba                                   // scrcode: .
        .text "a"
        .byte $d4                                   // scrcode: .
        .text "a"
        .byte $f0                                   // scrcode: .
        .text "anb-b"
        .byte $4e                                   // scrcode: .
        .text "b"
        .byte $71                                   // scrcode: .
        .text "b"
        .byte $96                                   // scrcode: .
        .text "b"
        .byte $bd                                   // scrcode: .
        .text "b"
        .byte $e7                                   // scrcode: .
        .text "bsc"
        .byte $42                                   // scrcode: .
        .text "c"
        .byte $74                                   // scrcode: .
        .text "c"
        .byte $a9                                   // scrcode: .
        .text "c"
        .byte $e0                                   // scrcode: .
        .text "c"
        .byte $1b                                   // scrcode: .
        .text "d"
        .byte $5a                                   // scrcode: .
        .text "d"
        .byte $9b                                   // scrcode: .
        .text "d"
        .byte $e2                                   // scrcode: .
        .text "d,e"
        .byte $7b                                   // scrcode: .
        .text "e"
        .byte $ce                                   // scrcode: .
        .text "e'f"
        .byte $85                                   // scrcode: .
        .text "f"
        .byte $e8                                   // scrcode: .
        .text "f"
        .byte $51                                   // scrcode: .
        .text "g"
        .byte $c1                                   // scrcode: .
        .text "g7h"
        .byte $b4                                   // scrcode: .
        .text "h7i"
        .byte $c4                                   // scrcode: .
        .text "i"
        .byte $57                                   // scrcode: .
        .text "j"
        .byte $f5                                   // scrcode: .
        .text "j"
        .byte $9c                                   // scrcode: .
        .text "k"
        .byte $4e                                   // scrcode: .
        .text "lim"
        .byte $d0                                   // scrcode: .
        .text "m"
        .byte $a3                                   // scrcode: .
        .text "n"
        .byte $82                                   // scrcode: .
        .text "o"
        .byte $6e                                   // scrcode: .
        .text "p"
        .byte $68                                   // scrcode: .
        .text "q"
        .byte $6e                                   // scrcode: .
        .text "r"
        .byte $88                                   // scrcode: .
        .text "s"
        .byte $af                                   // scrcode: .
        .text "t"
        .byte $eb                                   // scrcode: .
        .text "u9w"
        .byte $9c                                   // scrcode: .
        .text "xsz"
        .byte $a1,$1b,$46,$1d                       // scrcode: ....
        .text "d"
        .byte $1f,$dc                               // scrcode: ..
        .text " "
        .byte $d0                                   // scrcode: .
        .byte $22,$dc                               // scrcode: ".
        .text "$p'"
        .byte $5e                                   // scrcode: .
        .text ")"
        .byte $d6                                   // scrcode: .
        .text "+"
        .byte $72                                   // scrcode: .
        .encoding "petscii_upper"

txt_1710:
        .text ".81&4B7"
        .encoding "screencode_mixed"
        .byte $8c                                   // scrcode: .
        .text ":h>"
        .byte $b8,$41,$a0,$45,$b8                   // scrcode: .....
        .encoding "petscii_upper"

txt_1720:
        .text "I N"
        .byte $bc                                   // '<' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $52,$ac,$57,$e4,$5c,$70,$62,$4c,$68,$84,$6e // scrcode: ...........
        .text "x"
        .byte $75                                   // scrcode: .
        .text "p"
        .byte $7c,$70,$83,$40,$8b,$70,$93,$40,$9c,$78,$a5,$58,$af,$c8,$b9,$e0 // scrcode: ................
        .byte $c4,$98,$d0                           // scrcode: ...
        .text "h"
        .byte $dd                                   // scrcode: .
        .text "0"
        .byte $ea                                   // scrcode: .
        .text " "
        .byte $f8                                   // scrcode: .
        .text "."
        .byte $fd                                   // scrcode: .
        .text "@"
        .byte $7d,$8d,$9d                           // scrcode: ...
        .text "yyy"
        .byte $7a,$8a,$9a                           // scrcode: ...
        .text "yyyabd"
        .byte $fe,$fd,$fb                           // scrcode: ...
        .text "@gn"
        .byte $fe,$ff,$ff                           // scrcode: ...
        .text "ecc@@aa@@@@@@ "
        .byte $58,$1d                               // scrcode: ..
        .text "/k"
        .byte $41                                   // scrcode: .
        .text "!"
        .byte $41                                   // scrcode: .
        .text "y%ar/:jjjc"
        .byte $ff                                   // scrcode: .
        .text "bd@cp"
        .byte $62,$93                               // scrcode: ..
        .text "@@@@@@h@s@@@@@@"
        .text "p@"
        .byte $90                                   // scrcode: .
        .text "dddooo"
        .byte $40,$40,$40                           // scrcode: ...
        .text "@@@@@l"
        .byte $75,$75                               // scrcode: ..
        .text "g"
        .byte $70,$70,$80                           // scrcode: ...
        .text "ggjp"
        .byte $50                                   // scrcode: .
        .text "jaha b"
        .byte $22                                   // scrcode: "
        .text "=@"
        .byte $70,$40                               // scrcode: ..
        .text "@@@@"
        .byte $80                                   // scrcode: .
        .text "@@@a@@a@"
        .byte $90,$80                               // scrcode: ..
        .text "@"
        .byte $f1                                   // scrcode: .
        .text "b@abekqw"
        .byte $1d                                   // scrcode: .
        .encoding "petscii_upper"

txt_17de:
        .text "#)/5;AGMSY"
        .encoding "screencode_mixed"
        .byte $5f                                   // scrcode: .
        .text "@@@"
        .byte $fc                                   // scrcode: .
        .text "<a"
        .byte $7a                                   // scrcode: .
        .text "y"
        .byte $8a                                   // scrcode: .
        .text "y"
        .byte $9a                                   // scrcode: .
        .text "yeg"
        .byte $7a                                   // scrcode: .
        .text "y"
        .byte $8a                                   // scrcode: .
        .text "y"
        .byte $9a                                   // scrcode: .
        .text "y"
        .byte $ff,$ff,$da                           // scrcode: ...
        .encoding "petscii_upper"

chr_1800:
        // === Charset data (902 bytes, $1800-$1b85) ===
        .byte $00,$7f,$50,$0f,$50,$0e,$0d,$50       // char 0 @+0
        .byte $0d,$50,$50,$50,$7f,$00,$00,$04       // char 1 @+1
        .byte $04,$07,$07,$0b,$0b,$7f,$0c,$0c       // char 2 @+2
        .byte $03,$03,$05,$05,$08,$08,$7f,$0c       // char 3 @+3
        .byte $0c,$02,$02,$05,$05,$07,$07,$7f       // char 4 @+4
        .byte $02,$00,$7f,$da,$a7,$a5,$a3,$a1       // char 5 @+5
        .byte $a0,$97,$00,$7f,$50,$0f,$0e,$0d       // char 6 @+6
        .byte $50,$7f,$00,$00,$7f,$0c,$0c,$04       // char 7 @+7
        .byte $04,$07,$07,$09,$09,$7f,$0c,$0c       // char 8 @+8
        .byte $04,$04,$05,$05,$09,$09,$7f,$00       // char 9 @+9
        .byte $00,$00,$00,$7f,$00,$7f,$81,$41       // char 10 @+10
        .byte $01,$81,$41,$81,$40,$40,$80,$40       // char 11 @+11
        .byte $80,$80,$80,$0b                       // char 12 (partial)

txt_1864:
        .byte $21,$21,$21,$21                       // char 12 (partial)
        .byte $21,$21,$21,$21,$0e                   // char 13 (partial)

txt_186d:
        .byte $21,$21,$21                           // char 13 (partial)
        .byte $21,$21,$21,$21,$21,$17               // char 14 (partial)

txt_1876:
        .byte $21,$21                               // char 14 (partial)
        .byte $21,$21,$21,$21,$21,$21,$20,$21       // char 15 @+15
        .byte $41,$1e,$81,$41,$41,$40,$40,$40       // char 16 @+16
        .byte $10,$00,$27,$81,$41,$41,$40,$80       // char 17 @+17

txt_1890:
        .byte $2d,$41,$41,$3c,$21,$21,$21,$21       // char 18 @+18
        .byte $21,$21,$21,$21,$3e,$21,$21,$21       // char 19 @+19
        .byte $21,$21,$21,$21,$21,$47,$41,$41       // char 20 @+20
        .byte $41,$21,$53,$17,$55,$0f,$00,$09       // char 21 @+21
        .byte $01,$15,$0a,$85,$7f,$1a,$00,$4f       // char 22 @+22
        .byte $7f,$00,$02,$ff,$8f,$00,$00,$00       // char 23 @+23
        .byte $00,$4f,$40,$ff,$f4,$00,$00,$ff       // char 24 @+24
        .byte $08,$4f,$40,$88,$08,$4f,$50,$4f       // char 25 @+25
        .byte $08,$00,$00,$00,$00,$00,$cb,$18       // char 26 @+26
        .byte $42,$01,$04,$00,$00,$00,$d9,$00       // char 27 @+27
        .byte $00,$11,$0c,$04,$03,$00,$79,$00       // char 28 @+28
        .byte $00,$00,$00,$00,$0e,$00,$79,$00       // char 29 @+29
        .byte $00,$00,$00,$00,$17,$00,$79,$00       // char 30 @+30
        .byte $00,$00,$00,$00,$20,$03,$34,$67       // char 31 @+31
        .byte $32,$00,$00,$04,$3b,$00,$a7,$00       // char 32 ' '
        .byte $00,$00,$00,$04,$2c,$00,$d7,$00       // char 33 '!'
        .byte $00,$00,$00,$00,$00,$00,$d8,$00       // char 34 '"'
        .byte $00,$10,$00,$04,$35,$00,$71,$00       // char 35 '#'
        .byte $00,$00,$00,$04,$35,$00,$d8,$00       // char 36 '$'
        .byte $00,$00,$00,$00,$00,$00,$62,$9e       // char 37 '%'
        .byte $30,$00,$00,$08,$3b,$00,$79,$00       // char 38 '&'
        .byte $00,$00,$00,$00,$3e,$00,$79,$00       // char 39 '''
        .byte $00,$00,$00,$00,$47,$00,$52,$00       // char 40 '('
        .byte $00,$00,$00,$08,$3b,$00,$54,$36       // char 41 ')'
        .byte $40,$00,$00,$04,$50,$00,$56,$00       // char 42 '*'
        .byte $00,$00,$00,$00,$55,$00,$6f,$18       // char 43 '+'
        .byte $40,$00,$00,$08,$00,$00,$00,$00       // char 44 ','
        .byte $00,$00,$00,$00                       // char 45 (partial)

txt_196c:
        .byte $20,$20,$20,$40                       // char 45 (partial)
        .byte $00,$40,$a0,$60,$00,$30,$20,$10       // char 46 '.'
        .byte $00,$00,$85,$01,$85,$04,$01,$04       // char 47 '/'
        .byte $87,$01,$04,$01,$04,$01,$04,$01       // char 48 '0'
        .byte $04,$ff,$85,$02,$85,$03,$02,$03       // char 49 '1'
        .byte $87,$02,$03,$02,$03,$02,$03,$02       // char 50 '2'
        .byte $03,$ff,$85,$05,$85,$06,$05,$06       // char 51 '3'
        .byte $87,$07,$08,$07,$08,$0a,$0b,$0a       // char 52 '4'
        .byte $0b,$ff,$c2,$c5,$0b,$13,$20,$66       // char 53 '5'
        .byte $83,$bb,$d0,$f0,$00,$43,$19,$19       // char 54 '6'
        .byte $1a,$1a,$1a,$1a,$1a,$1a,$1a,$1a       // char 55 '7'
        .byte $1b,$1b,$80,$00,$7f,$a0,$80,$15       // char 56 '8'
        .byte $84,$00,$80,$15,$00,$a1,$09,$82       // char 57 '9'
        .byte $00,$a0,$80,$15,$00,$15,$82,$00       // char 58 ':'
        .byte $80,$15,$82,$00,$80,$21,$00,$a1       // char 59 ';'
        .byte $09,$82,$00,$a0,$80,$15,$82,$00       // char 60 '<'
        .byte $80,$0d,$84,$00,$80,$0d,$00,$a1       // char 61 '='
        .byte $15,$82,$00,$a0,$80,$19,$00,$0d       // char 62 '>'
        .byte $82,$00,$80,$0d,$82,$00,$80,$19       // char 63 '?'
        .byte $00,$a1,$13,$82,$00,$a0,$80,$0d       // char 64 '@'
        .byte $82,$00,$7f,$a2,$8f,$2d,$7e,$a3       // char 65 'A'
        .byte $2c,$7e,$7f,$a4,$87,$2f,$ac,$8f       // char 66 'B'
        .byte $2d,$87,$7e,$ad,$8f,$2d,$7e,$7f       // char 67 'C'
        .byte $a0,$80,$12,$84,$00,$80,$12,$00       // char 68 'D'
        .byte $a1,$09,$82,$00,$a0,$80,$12,$00       // char 69 'E'
        .byte $12,$82,$00,$80,$12,$82,$00,$80       // char 70 'F'
        .byte $12,$00,$a1,$09,$82,$00,$a0,$80       // char 71 'G'
        .byte $12,$82,$00,$80,$0e,$84,$00,$80       // char 72 'H'
        .byte $0e,$00,$a1,$15,$82,$00,$a0,$80       // char 73 'I'
        .byte $0e,$00,$0e,$82,$00,$80,$0e,$82       // char 74 'J'
        .byte $00,$80,$0e,$00,$a1,$13,$82,$00       // char 75 'K'
        .byte $a0,$80,$0e,$82,$00,$7f,$ab,$81       // char 76 'L'
        .byte $2d,$2f,$31,$8f,$34,$81,$7e,$2d       // char 77 'M'
        .byte $31,$32,$34,$83,$38,$81,$39,$c4       // char 78 'N'
        .byte $33,$90,$34,$8e,$7e,$81,$3e,$3d       // char 79 'O'
        .byte $3b,$39,$7f,$c2,$81,$3a,$90,$3b       // char 80 'P'
        .byte $82,$7e,$81,$3d,$c4,$38,$90,$39       // char 81 'Q'
        .byte $8c,$7e,$81,$39,$3b,$83,$34,$8f       // char 82 'R'
        .byte $36,$ae,$80,$39,$90,$36,$90,$32       // char 83 'S'
        .byte $90,$31,$90,$36,$90,$32,$90,$31       // char 84 'T'
        .byte $90,$2d,$90,$32,$90,$31,$90,$2d       // char 85 'U'
        .byte $90,$2a,$90,$31,$90,$2d,$90,$2a       // char 86 'V'
        .byte $90,$26,$7f,$ab,$8f,$34,$87,$7e       // char 87 'W'
        .byte $81,$31,$34,$38,$39,$87,$3b,$81       // char 88 'X'
        .byte $39,$38,$8b,$34,$83,$3e,$3d,$7f       // char 89 'Y'
        .byte $ab,$85,$3b,$81,$3d,$83,$39,$81       // char 90 'Z'
        .byte $38,$89,$36,$81                       // char 91 (partial)

txt_1adc:
        .byte $31,$32,$39,$38                       // char 91 (partial)
        .byte $c4,$31,$90,$32,$8a,$7e,$81,$34       // char 92 '\'
        .byte $87,$36,$81,$38,$39,$38,$36,$7f       // char 93 ']'
        .byte $b0,$80,$39,$c1,$8f,$7e,$8e,$7e       // char 94 '^'
        .byte $80,$4c,$c3,$8f,$7e,$8e,$7e,$7f       // char 95 '_'
        .byte $af,$80,$21,$00,$25,$00,$28,$00       // char 96 '`'
        .byte $2c,$00,$2d,$00,$31,$00,$34,$00       // char 97 'a'
        .byte $38,$00,$39,$00,$3d,$00,$40,$00       // char 98 'b'
        .byte $3d,$00,$39,$00,$38,$00,$34,$00       // char 99 'c'
        .byte $31,$00,$25,$00,$28,$00,$2c,$00       // char 100 'd'
        .byte $2f,$00,$31,$00,$34,$00,$38,$00       // char 101 'e'
        .byte $3b,$00,$3d,$00,$40,$00,$44,$00       // char 102 'f'
        .byte $40,$00,$3d,$00,$3b,$00,$38,$00       // char 103 'g'
        .byte $34,$00,$7f,$af,$80,$2f,$00,$31       // char 104 'h'
        .byte $00,$34,$00,$36,$00,$2d,$00,$31       // char 105 'i'
        .byte $00,$34,$00,$36,$00,$39,$00,$3d       // char 106 'j'
        .byte $00,$40,$00,$42,$00,$40,$00,$3d       // char 107 'k'
        .byte $00,$39,$00,$36,$00,$32,$00,$36       // char 108 'l'
        .byte $00,$39,$00,$3d,$00,$3e,$00,$42       // char 109 'm'
        .byte $00,$3e,$00,$3d,$00,$39,$00,$36       // char 110 'n'
        .byte $00,$32,$00,$31,$00,$2d,$00,$2a       // char 111 'o'
        .byte $00,$26,$00,$25,$00,$7f               // char 112 (partial)

// --- Region $1bab-$1bab ---
.pc = $1bab "chr_1bab"

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

// --- Region $1e53-$1ed1 ---
.pc = $1e53 "Segment $1e53"
        .byte $86,$8c,$92,$98,$9f,$a5,$ab           // char 0 (partial)
        .byte $b0,$b6,$bc,$c1,$c7,$cc,$d1,$d5       // char 1 @+1
        .byte $da,$de,$e2,$e6,$ea,$ed,$f0,$f3       // char 2 @+2
        .byte $f6,$f8,$fa,$fc,$fd,$fe,$ff,$ff       // char 3 @+3
        .byte $ff,$ff,$ff,$fe,$fd,$fc,$fa,$f8       // char 4 @+4
        .byte $f6,$f3,$f0,$ed,$ea,$e6,$e2,$de       // char 5 @+5
        .byte $da,$d5,$d1,$cc,$c7,$c1,$bc,$b6       // char 6 @+6
        .byte $b0,$ab,$a5,$9f,$98,$92,$8c,$86       // char 7 @+7
        .byte $7f,$79,$73,$6d,$67,$60               // char 8 (partial)

txt_1e98:
        .byte $5a,$54                               // char 8 (partial)
        .byte $4f,$49,$43,$3e,$38,$33,$2e,$2a       // char 9 @+9
        .byte $25,$21,$1d,$19,$15,$12,$0f,$0c       // char 10 @+10
        .byte $09,$07,$05,$03,$02,$01,$00,$00       // char 11 @+11
        .byte $00,$00,$00,$01,$02,$03,$05,$07       // char 12 @+12
        .byte $09,$0c,$0f,$12,$15,$19,$1d           // char 13 (partial)

txt_1ec1:
        .byte $21                                   // char 13 (partial)
        .byte $25,$2a,$2e,$33,$38,$3e,$43,$49       // char 14 @+14
        .byte $4f,$54,$5a,$60,$67,$6d,$73,$79       // char 15 @+15

// --- Region $1fab-$1fcb ---
.pc = $1fab "chr_1fab"

chr_1fab:
        // === Charset data (33 bytes, $1fab-$1fcb) ===
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 0 @+0
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 1 @+1
        .byte $00,$00,$00,$00,$00,$a9,$9b,$85       // char 2 @+2
        .byte $ae,$a9,$d4,$85,$af,$4c,$40,$2d       // char 3 @+3

dat_1fcb:
        // === Fill data (1 bytes, $1fcb-$1fcb) ===
        .byte $00                                   // .

// --- Region $1fff-$24a0 ---
.pc = $1fff "dat_1fff"

dat_1fff:
        .byte $a2                                   // char 10 (partial)

spr_2000:
        // === Sprite data (64 bytes, $2000-$203f) ===
        .byte $00,$00,$00                           // ........................
        .byte $00,$00,$00                           // ........................
        .byte $00,$00,$55                           // .................#.#.#.#
        .byte $56,$84,$41                           // .#.#.##.#....#...#.....#
        .byte $84,$d1,$95                           // #....#..##.#...##..#.#.#
        .byte $d5,$54,$94                           // ##.#.#.#.#.#.#..#..#.#..
        .byte $24,$14,$24                           // ..#..#.....#.#....#..#..
        .byte $64,$94,$64                           // .##..#..#..#.#...##..#..
        .byte $55,$56,$84                           // .#.#.#.#.#.#.##.#....#..
        .byte $51,$84,$c1                           // .#.#...##....#..##.....#
        .byte $95,$d5,$55                           // #..#.#.###.#.#.#.#.#.#.#
        .byte $65,$05,$01                           // .##..#.#.....#.#.......#
        .byte $45,$59,$65                           // .#...#.#.#.##..#.##..#.#
        .byte $59,$01,$01                           // .#.##..#.......#.......#
        .byte $02,$01,$02                           // ......#........#......#.
        .byte $03,$02,$03                           // ......##......#.......##
        .byte $55,$59,$10                           // .#.#.#.#.#.##..#...#....
        .byte $44,$11,$05                           // .#...#.....#...#.....#.#
        .byte $55,$55,$54                           // .#.#.#.#.#.#.#.#.#.#.#..
        .byte $94,$14,$04                           // #..#.#.....#.#.......#..
        .byte $14,$64,$94                           // ...#.#...##..#..#..#.#..
        .byte $64                                   // sprite 0 padding
        .byte $00,$00,$01,$05,$08
        .byte $24,$21,$21,$05
        .text "YXADU"
        .byte $61
        .byte $56
        .byte $55,$55,$04,$11                       // UU..

txt_2054:
        .text "D"
        .byte $40                                   // @ character
        .byte $a9                                   // ')' | $80 (end-of-string marker)
        .byte $42,$55,$66,$00,$11,$44,$14,$15,$15,$54,$64,$54,$24,$64,$64,$64 // BUf..D...TdT$ddd
        .byte $a4,$55,$65,$04,$01,$44,$58,$65,$59,$55,$55,$04,$11,$44,$01,$a0 // .Ue..DXeYUU..D..
        .byte $08,$40,$54,$55,$15                   // .@TU.

txt_207c:
        .text "EUUU"
        .byte $00                                   // string terminator
        .byte $00,$00,$40,$40,$50,$90,$d0,$55,$55,$04,$11 // ..@@P..UU..

txt_208c:
        .text "D"
        .byte $40                                   // @ character
        .text "("
        .byte $c8                                   // 'H' | $80 (end-of-string marker)
        .byte $55,$66,$00,$11                       // Uf..

txt_2094:
        .text "DTUUUU"
        .byte $04,$11,$44,$01,$a8,$02,$40,$54,$55,$15,$45,$55,$55,$15,$a6,$d9 // ..D...@TU.EUU...
        .byte $e6,$ea,$e6,$ea,$eb,$ea,$a4,$74,$a4,$74,$b4,$74,$b4,$74,$69,$9d // .......t.t.t.ti.
        .byte $69,$9d,$ad,$9d,$ad,$9d,$02,$03,$03,$03,$03,$03,$03,$03,$99,$66 // i..............f
        .byte $99,$aa,$9a,$aa,$ae,$aa,$32,$d5,$e6,$ea,$e6,$ea,$eb,$ea,$01,$02 // ......2.........
        .byte $03,$02,$03,$03,$03,$03
        .text "&Y&Y&"
        .byte $69,$66,$69,$74,$a4
        .byte $74,$b4,$b4,$b4,$74,$b4,$90,$d4,$74,$b4,$b4,$b4,$74,$b4,$08,$0d // t...t...t...t...
        .byte $0a,$0d,$0a,$0e,$0e,$0e,$66,$99,$66,$99,$66,$a9,$a6,$a9,$26,$99 // ......f.f.f...&.
        .byte $66,$99,$66,$a9,$a6,$a9,$eb,$ee,$eb,$ee,$eb,$ef,$ef,$ef,$b8,$b4 // f.f.............
        .byte $b8,$b4,$f8,$b4,$f8,$b8,$ae,$ad,$ae,$ed,$be,$ed,$fe,$ee,$03,$03 // ................
        .byte $03,$03,$03,$03,$0b,$ae,$ae,$ba,$ae,$bb,$ae,$bf,$bf,$fe,$b8,$b4 // ................
        .byte $b8,$b4,$f8,$b4,$f8,$e0,$03,$03,$03,$03,$03,$03,$03,$a9,$6a,$69 // ..............ji
        .byte $7a,$6e,$7a,$6e,$7b,$7e,$74,$b8,$74,$b8,$b4,$f8,$b4,$f8,$6a,$69 // znzn{~t.t.....ji
        .byte $7a,$6e,$7a,$6e,$bb,$fe,$74,$b8,$74,$b8,$b4,$d8,$e0,$e0,$0e,$0e // znzn..t.t.......
        .byte $0e,$0e,$0e,$0e,$0e,$0e,$aa,$a9,$ba,$ee,$ba,$ee,$bb,$fe,$03,$03 // ................
        .byte $03,$03,$03,$03,$03,$03,$aa,$a9,$ba,$ae,$ba,$ae,$bb,$be,$ef,$ef // ................
        .byte $ef,$ef,$ef,$ef,$ef,$ef,$f8,$f8,$f8,$f8,$f8,$f8,$f8,$f8,$ff,$ff // ................
        .byte $ff,$ff,$ff,$fe,$fe,$fe,$ff,$fe,$ff,$ff,$ff,$af,$fb,$0e,$ff,$ff // ................
        .byte $ff,$fd,$fa,$fe,$ff,$ff,$e0,$a0,$80,$80,$00,$80,$80,$e0,$ff,$ff // ................
        .byte $ff,$ff,$ff,$fa,$fe,$fe,$ff,$fe,$ff,$ff,$ff,$aa,$aa,$03,$7f,$fe // ................
        .byte $ff,$fe,$ff,$bf,$bf,$bf,$f8,$f8,$f8,$f8,$f8,$f8,$f8,$f4,$fe,$fe // ................
        .byte $fe,$fe,$fe,$fe,$fe,$fe,$ff,$fe,$ff,$fe,$ff,$ff,$ff,$ff,$bf,$be // ................
        .byte $bf,$be,$bf,$bf,$bf,$bf,$ef,$ed,$95,$95,$d9,$a6,$da,$eb,$f8,$f8 // ................
        .byte $64,$64,$74,$a4,$b4,$b4,$fe,$7e,$59,$59,$9d,$69,$ad,$ad,$0e,$02 // ddt....~YY.i....
        .byte $02,$03,$02,$03,$03,$03,$d5,$56,$59,$66,$99,$aa,$9a,$ab,$90,$90 // .......VYf......
        .byte $a4,$74,$a4,$74,$b4,$b4,$03,$02,$02,$03,$02,$03,$03,$03,$95,$56 // .t.t...........V
        .byte $59,$66,$59,$aa,$9a,$ab,$64,$64,$a4,$74,$a4,$74,$b4,$b4,$0e,$09 // YfY...dd.t.t....
        .byte $09,$0a,$0d,$0a,$0e,$0e,$95,$56,$59,$66,$99,$aa,$9a,$ab,$ea,$eb // .......VYf......
        .byte $ee,$eb,$ee,$eb,$ee,$ef,$b4,$f8,$b4,$f8,$f8,$f8,$f4,$f8,$ad,$be // ................
        .byte $ed,$be,$fe,$fe,$fd,$fe,$aa,$ab,$ae,$bb,$be,$bf,$af,$bf,$b8,$b4 // ................
        .byte $f8,$b4,$f8,$f8,$f8,$b4,$ea,$ab,$ee,$fb,$fe,$bf,$ef,$bf,$b8,$b4 // ................
        .byte $f8,$b4,$f8,$f8,$d8,$e0               // ......

spr_2280:
        // === Sprite data (64 bytes, $2280-$22bf) ===
        .byte $ef,$ef,$ef                           // ###.#######.#######.####
        .byte $ef,$ef,$ef                           // ###.#######.#######.####
        .byte $ea,$ff,$f8                           // ###.#.#.#############...
        .byte $f8,$f8,$f8                           // #####...#####...#####...
        .byte $f8,$f8,$b8                           // #####...#####...#.###...
        .byte $fc,$fe,$fe                           // ######..#######.#######.
        .byte $fe,$fe,$fe                           // #######.#######.#######.
        .byte $fe,$ae,$ff                           // #######.#.#.###.########
        .byte $bf,$bf,$bf                           // #.#######.#######.######
        .byte $bf,$bf,$bf                           // #.#######.#######.######
        .byte $aa,$ff,$0e                           // #.#.#.#.########....###.
        .byte $0e,$0e,$0e                           // ....###.....###.....###.
        .byte $0e,$0e,$0e                           // ....###.....###.....###.
        .byte $0f,$ff,$ff                           // ....####################
        .byte $ff,$ff,$ff                           // ########################
        .byte $ff,$aa,$ff                           // #########.#.#.#.########
        .byte $fe,$fe,$ff                           // #######.#######.########
        .byte $ff,$ff,$ff                           // ########################
        .byte $aa,$ff,$8a                           // #.#.#.#.#########...#.#.
        .byte $ab,$ff,$ff                           // #.#.#.##################
        .byte $ff,$ff,$aa                           // #################.#.#.#.
        .byte $ff                                   // sprite 0 padding
        .byte $bf,$ff,$ff,$ff,$ff,$af,$fc,$c0,$e0,$e0,$a0,$80,$c0,$00,$00,$00 // ................
        .byte $00,$00,$01,$05,$08
        .text "$!%UU"
        .byte $04,$11

txt_22dc:
        .text "D"
        .byte $40                                   // @ character
        .text ")"
        .byte $c2                                   // 'B' | $80 (end-of-string marker)
        .byte $00,$55,$56,$84,$41,$84,$d1,$95,$00,$55,$65,$09,$05,$49,$59,$65 // .UV.A....Ue..IYe
        .byte $55,$55,$04,$11                       // UU..

txt_22f4:
        .text "D"
        .byte $40                                   // @ character
        .byte $a9                                   // ')' | $80 (end-of-string marker)
        .byte $40,$55,$66,$00,$11,$44,$14,$55,$00,$54,$64,$54,$24,$64,$64,$64 // @Uf..D.U.TdT$ddd
        .byte $00,$00,$00,$00,$01,$05,$08
        .byte $24,$21,$00,$05
        .text "UXADU"
        .byte $61,$00,$55,$55,$04,$11,$44,$40,$28,$00,$55,$66,$00,$11,$44,$54 // a.UU..D@(.Uf..DT
        .byte $55,$00,$54,$64,$54,$24,$64,$64,$64,$36,$e5,$d6,$ea,$e6,$ea,$eb // U.TdT$ddd6......
        .byte $ea,$01,$02,$03,$02,$03,$03,$00,$00
        .text "&Y&Y"
        .byte $11,$fe,$00
        .byte $00,$74,$a4,$74,$b4,$74,$fc,$00,$00,$d5,$a6,$d9,$e6,$ea,$e6,$ea // .t.t.t..........
        .byte $eb,$59,$69,$9d,$69,$9d,$ad,$9d,$ad   // .Yi.i....

txt_2360:
        .text "!2"
        .byte $d5                                   // 'U' | $80 (end-of-string marker)
        .byte $e6,$ea,$e6,$ea,$eb,$56,$69,$9d,$69,$9d,$ad,$9d,$ad,$c8,$08,$0d // .....Vi.i.......
        .byte $0a,$0d,$0a,$0e,$0e,$55,$66,$99,$66,$99,$66,$a9,$a6,$a4,$74,$a4 // .....Uf.f.f...t.
        .byte $74,$b4,$b4,$b4,$74,$ea,$eb,$ee,$eb,$ee,$eb,$ef,$ef,$9d,$ae,$ad // t...t...........
        .byte $ae,$ed,$be,$ed,$fe,$00,$00,$00,$00,$00,$00,$00,$a9,$00,$00,$00 // ................
        .byte $00,$00,$00,$00,$6a,$00,$00,$00,$00,$00,$00,$00,$a8,$a9,$aa,$a9 // ....j...........
        .byte $ba,$ee,$ba,$ee,$bb,$b4,$74,$b8,$74,$b8,$b4,$f8,$b4,$ee,$fe,$fe // ......t.t.......
        .byte $fe,$fe,$fe,$fe,$fe,$ff,$fe,$ff,$ff,$ff,$aa,$aa,$00,$7f,$fe,$ff // ................
        .byte $fe,$ff,$bf,$aa,$00,$f8,$f8,$f8,$f8,$f8,$f8,$a8,$00,$fe,$ff,$fe // ................
        .byte $ff,$fe,$ff,$ff,$ff,$ef,$ef,$ed,$95,$95,$d9,$a6,$da,$fe,$fe,$7e // ...............~
        .byte $59,$59,$9d,$69,$ad,$ef,$ed,$95,$95,$95,$d9,$a6,$da // YY.i.........

scr_2400:
        // === Screen RAM (161 bytes, $2400-$24a0) ===
        .encoding "screencode_mixed"
        .byte $fe,$7e,$59,$59,$59,$9d,$69,$ad       // scrcode: ........
        .text "nniijmjn"
        .byte $ff,$d5,$56,$59,$66,$99,$aa,$9a,$f4,$64,$64,$a4,$74,$a4,$74,$b4 // scrcode: ................
        .byte $eb,$ea,$eb,$ee,$eb,$ee,$eb,$fa       // scrcode: ........
        .byte $ad,$ad,$be,$ed,$be,$fe,$fe,$fd       // scrcode: ........
        .text "@@@bcbcb@@@"
        .byte $aa,$ff,$ff,$ff,$ff                   // scrcode: .....
        .text "@@@"
        .byte $ac,$ec,$ec,$ec,$ec,$eb,$ea,$eb,$ee,$eb,$ee,$eb,$ee // scrcode: .............
        .byte $ab,$ea,$ab,$ee,$fb,$fe,$bf,$ef,$b4,$b8,$b4,$f8,$b4,$f8,$f8,$f8 // scrcode: ................
        .text ";;>noc@@"
        .byte $fe,$ff,$ff,$ff,$bf,$eb,$fe           // scrcode: .......
        .text "oa"
        .byte $a9,$ff,$ff,$ff,$ff,$aa,$ff           // scrcode: .......
        .byte $ec,$ec,$ec,$ec,$ec,$ec,$ac,$fc       // scrcode: ........
        .text "@"
        .byte $aa,$ff,$ff,$ff,$ff,$aa,$ff           // scrcode: .......
        .text "@"
        .byte $ac,$ec,$ec,$ec,$ec,$ac,$fc,$bf,$ff,$ff,$ff,$ff,$ff,$aa,$ff,$b4 // scrcode: ................
        .byte $f8,$f8,$f8,$f8,$f8,$b8,$fc           // scrcode: .......
        .encoding "petscii_upper"

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

// --- Region $2501-$2544 ---
.pc = $2501 "dat_2501"

dat_2501:
        .encoding "screencode_mixed"
        .text "abcdefghijklcmnopab@@hijklhiqrlcdstp@@"
        .byte $5a                                   // scrcode: .
        .text "i"
        .byte $5b                                   // scrcode: .
        .text "klhijkl"
        .byte $5c,$5d                               // scrcode: ..
        .text "@@@hi"
        .byte $5e,$5f,$60,$61,$62,$63,$64,$65,$5a   // scrcode: .........
        .text "i"
        .byte $5b                                   // scrcode: .
        .text "kl"
        .encoding "petscii_upper"

// --- Region $2561-$25a4 ---
.pc = $2561 "dat_2561"

dat_2561:
        .encoding "screencode_mixed"
        .text "uvuwxyvzw"
        .byte $1b,$1c,$1d                           // scrcode: ...
        .text "uw"
        .byte $1b,$1c,$1e                           // scrcode: ...
        .text "uv@@zw"
        .byte $1b,$1c,$1d                           // scrcode: ...
        .text "zw"
        .byte $1f                                   // scrcode: .
        .text " "
        .byte $1d                                   // scrcode: .
        .text "uw"
        .byte $1b                                   // scrcode: .
        .text "!"
        .byte $1e                                   // scrcode: .
        .text "@@"
        .byte $66                                   // scrcode: .
        .text "w"
        .byte $67,$68,$69                           // scrcode: ...
        .text "zw"
        .byte $1b,$1c,$1d,$6a,$6b                   // scrcode: .....
        .text "@@@zw@@@"
        .byte $6c,$6d,$6e,$6f,$70,$66               // scrcode: ......
        .text "w"
        .byte $67,$68,$69                           // scrcode: ...
        .encoding "petscii_upper"

// --- Region $25c1-$2601 ---
.pc = $25c1 "txt_25c1"

txt_25c1:
        .byte $22                                   // double quote character
        .text "#"
        .byte $22                                   // double quote character
        .text "$%&'"
        .byte $22                                   // double quote character
        .text "$()*"
        .byte $22                                   // double quote character
        .text "$%+,"
        .byte $22                                   // double quote character
        .text "#"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

txt_25d6:
        .byte $22                                   // double quote character
        .text "$()*"
        .byte $22                                   // double quote character
        .text "$-.*"
        .byte $22                                   // double quote character
        .text "$/0*"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .byte $22                                   // scrcode: "
        .text "$@@@"
        .byte $22                                   // scrcode: "
        .text "$()*"
        .byte $71,$72                               // scrcode: ..
        .text "@@@"
        .byte $22                                   // scrcode: "
        .text "$"
        .byte $73,$74,$75,$71,$72                   // scrcode: .....
        .text "-"
        .byte $76,$77,$22                           // scrcode: .."
        .text "$"
        .encoding "petscii_upper"

// --- Region $2621-$2661 ---
.pc = $2621 "txt_2621"

txt_2621:
        .text "12134561789:1345612"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

txt_2636:
        .text "1789:1;-<:1;/=:"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@1;@@@"
        .encoding "petscii_upper"

txt_264c:
        .text "1789:1"
        .encoding "screencode_mixed"
        .byte $78                                   // scrcode: .
        .text "@@@17"
        .byte $79,$7a,$7b                           // scrcode: ...
        .text "1"
        .byte $78                                   // scrcode: .
        .text "-"
        .byte $7c                                   // scrcode: .
        .text "21;"
        .encoding "petscii_upper"

// --- Region $2681-$26c1 ---
.pc = $2681 "txt_2681"

txt_2681:
        .text ">?>"
        .byte $40                                   // @ character
        .text "ABC>"
        .byte $40                                   // @ character
        .text "DEF>"
        .byte $40                                   // @ character
        .text "ABC>?"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

txt_2696:
        .text ">"
        .byte $40                                   // @ character
        .text "DEF>"
        .byte $40                                   // @ character
        .text "GBF>"
        .byte $40                                   // @ character
        .text "DHF"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@>"
        .byte $40                                   // scrcode: .
        .text "@@@>"
        .byte $40,$44,$45,$46,$7d,$7e               // scrcode: ......
        .text "@@@"
        .byte $7f,$80                               // scrcode: ..
        .text "@@@"
        .byte $7d,$7e,$81,$82,$83                   // scrcode: .....
        .text ">"
        .byte $40                                   // scrcode: .
        .encoding "petscii_upper"

// --- Region $26e1-$2721 ---
.pc = $26e1 "txt_26e1"

txt_26e1:
        .text "IJIK/LMIK/LMIK/LMIJ"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

txt_26f6:
        .text "IK/LMIK-NMIK/LO"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .byte $49,$4b                               // scrcode: ..
        .text "@@@"
        .byte $49,$4b                               // scrcode: ..
        .text "/"
        .byte $4c,$4d,$84,$85,$86,$87,$88,$84,$85   // scrcode: .........
        .text "@@@"
        .byte $89,$85                               // scrcode: ..
        .text "-"
        .byte $8a,$8b,$49,$4b                       // scrcode: ....
        .encoding "petscii_upper"

// --- Region $2741-$2782 ---
.pc = $2741 "txt_2741"

txt_2741:
        .text "PQPR/SQPR/SQPR/SQPQ"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

txt_2756:
        .text "PR/SQPRTUQPVWXY"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@"
        .byte $50,$52                               // scrcode: ..
        .text "@@@"
        .byte $50,$52                               // scrcode: ..
        .text "/"
        .byte $53,$51,$8c,$8d,$8e,$55,$8f,$8c,$8d,$90,$90,$91,$50,$52,$54,$92 // scrcode: ................
        .byte $93,$50,$52                           // scrcode: ...
        .encoding "petscii_upper"

dat_2782:
        // === Fill data (1 bytes, $2782-$2782) ===
        .byte $00                                   // .

// --- Region $2800-$29da ---
.pc = $2800 "scr_2800"

scr_2800:
        // === Screen RAM (475 bytes, $2800-$29da) ===
        .encoding "screencode_mixed"
        .byte $ac                                   // scrcode: .
        .text "+"
        .byte $99,$be,$b3,$c3                       // scrcode: ....
        .text "@ol@"
        .byte $b3,$6e,$99,$d6,$db,$9c,$c0,$b0,$ae,$e9,$f5 // scrcode: ...........
        .text "z"
        .byte $de,$9f,$e6,$9b,$6c,$b0,$b3,$70,$5c,$97 // scrcode: ..........
        .text "c"
        .byte $8f                                   // scrcode: .
        .text "mm"
        .byte $8d,$a5,$66,$9b                       // scrcode: ....
        .byte $6c,$63,$60,$6e,$5d,$9a,$e6           // scrcode: .......
        .encoding "petscii_upper"

txt_282f:
        .text "&++"
        .byte $d5                                   // 'U' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $7e,$b3,$c0                           // scrcode: ...
        .text "@o"
        .byte $98,$ff,$aa,$59,$96,$e6,$db,$98,$fc,$ab,$55,$fe // scrcode: ............
        .text "cc@"
        .byte $cf                                   // scrcode: .
        .text "l"
        .byte $c0,$ab,$5a,$96,$e6,$eb,$9c,$b0,$b0,$9f,$de,$ea,$f5 // scrcode: .............
        .text "&"
        .byte $e8,$e6,$ee,$93                       // scrcode: ....
        .byte $53,$70,$a0,$ec                       // scrcode: ....
        .text "("
        .byte $f0,$70,$6e,$d9,$f6                   // scrcode: .....
        .text "y"
        .byte $ee,$6f,$e6,$9b,$6c,$b0,$b3,$b0,$6c,$9b // scrcode: ..........
        .text "c"
        .byte $8e                                   // scrcode: .
        .text "nn"
        .byte $8d,$a5,$66,$9b,$ab,$6e,$6c,$6e,$5d,$9b,$e6,$f5 // scrcode: ............
        .text "*"
        .byte $e5,$9f                               // scrcode: ..
        .byte $b0,$40,$8c,$c3,$b0,$60,$61,$a7,$98,$dc // scrcode: ..........
        .text "765"
        .byte $60,$bc                               // scrcode: ..
        .text "@c"
        .byte $fe,$a9,$57,$fc,$e5                   // scrcode: .....
        .text "6&"
        .byte $db,$6c,$c0                           // scrcode: ...
        .text "cc"
        .byte $5b,$1b,$1b                           // scrcode: ...
        .text ","
        .byte $1c,$9c,$6e,$6c                       // scrcode: ....
        .text "99m"
        .byte $c2                                   // scrcode: .
        .text "n95"
        .byte $db                                   // scrcode: .
        .text "u"
        .byte $da,$6f,$70,$40,$b0,$b3,$7c,$6c,$6e,$65,$6a,$9b // scrcode: ............
        .encoding "petscii_upper"

txt_28bd:
        .text "776"
        .byte $a5                                   // '%' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $5a,$af,$f0                           // scrcode: ...
        .text "@lc"
        .byte $c0,$90,$62,$90,$98,$98               // scrcode: ......
        .text "677"
        .byte $9c,$9c,$9b,$9b,$f6                   // scrcode: .....
        .text "=n27"
        .byte $f7                                   // scrcode: .
        .text "m7"
        .byte $df,$dc,$7c,$70,$60,$bc               // scrcode: ......
        .text "c"
        .byte $cd,$b9,$a6,$9b,$db,$e6               // scrcode: ......
        .text "6"
        .byte $96,$6b,$ac,$c0                       // scrcode: ....
        .text "c0"
        .byte $9b,$1b                               // scrcode: ..
        .text "x,"
        .byte $1c,$6c,$ae,$90                       // scrcode: ....
        .text "9:n"
        .byte $c2                                   // scrcode: .
        .text "2nj;"
        .byte $60,$60,$dc                           // scrcode: ...
        .text "$8ka@7777kgk"
        .byte $88                                   // scrcode: .
        .text "@"
        .text "lc@c@@@b"
        .byte $cd                                   // scrcode: .
        .text "m6"
        .byte $df                                   // scrcode: .
        .text "0@@"
        .byte $6f,$b2,$83,$c0                       // scrcode: ....
        .text "@@@@"
        .byte $b3                                   // scrcode: .
        .encoding "petscii_upper"

txt_2929:
        .text "BN"
        .byte $b9                                   // '9' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $a9                                   // scrcode: .
        .text "$$"
        .byte $1c,$60,$60,$dc                       // scrcode: ....
        .text "(4kb@"
        .encoding "petscii_upper"

txt_2938:
        .text "5766"
        .byte $c6                                   // 'F' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .text "fj"
        .byte $88,$80,$70,$ec                       // scrcode: ....
        .text "x4ka@6667kgk"
        .byte $88,$c0,$c0,$c0                       // scrcode: ....
        .text "@l0@@"
        .byte $de,$e9                               // scrcode: ..
        .text "677"
        .byte $db,$dc,$dc,$63,$82,$c3               // scrcode: ......
        .text "@@"
        .text "@@0"
        .byte $83,$72,$6d,$9d,$f9                   // scrcode: .....
        .text "&&y"
        .byte $90,$70,$b0,$80,$c0,$c0,$c0,$c0       // scrcode: ........
        .encoding "petscii_upper"

txt_2978:
        .text "6666668"
        .byte $d8                                   // 'X' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .fill 8, $00                                // scrcode: @@@@@@@@
        .byte $1c                                   // scrcode: .
        .text ",0@@@@@,,,<8lnc@@@@@@"
        .byte $c0                                   // scrcode: .
        .text "@"
        .byte $1c                                   // scrcode: .
        .text ","
        .byte $f0                                   // scrcode: .
        .text "@@@@@l,0@@@@@"
        .text "@@@c@@@@"
        .byte $d0,$b0,$c0                           // scrcode: ...
        .text "@@@@@l@@@@@@@"
        .byte $1e                                   // scrcode: .
        .text ",,<8lnc"
        .byte $70,$dc                               // scrcode: ..
        .text "7@@@"
        .byte $c0                                   // scrcode: .
        .text "@"
        .byte $e0,$c0                               // scrcode: ..
        .encoding "petscii_upper"

dat_29da:
        // === Fill data (1 bytes, $29da-$29da) ===
        .byte $00                                   // .

// --- Region $2a0d-$2bdf ---
.pc = $2a0d "dat_2a0d"

dat_2a0d:
        .encoding "screencode_mixed"
        .text "0,"
        .byte $1c                                   // scrcode: .
        .text "cnl8<,,,@"
        .byte $c0                                   // scrcode: .
        .text "@@@@@@@@@@@"
        .byte $f0                                   // scrcode: .
        .text ","
        .byte $1c                                   // scrcode: .
        .text "@@@@@0,l@@@@c"
        .fill 8, $00                                // scrcode: @@@@@@@@
        .byte $c0,$b0,$d0                           // scrcode: ...
        .text "@@@@@@@lcnl8<,,"
        .byte $1e                                   // scrcode: .
        .text "@"
        .byte $c0                                   // scrcode: .
        .text "@@@7"
        .byte $dc,$70                               // scrcode: ..
        .text "@@@@@@"
        .byte $c0,$e0                               // scrcode: ..
        .text "@ak"
        .encoding "petscii_upper"

txt_2a63:
        .text "8$"
        .byte $dc                                   // '\' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $60,$60,$88                           // scrcode: ...
        .text "kgk"
        .encoding "petscii_upper"

txt_2a6c:
        .text "7777"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@@c@cl@@@0"
        .byte $df                                   // scrcode: .
        .text "6m"
        .byte $cd                                   // scrcode: .
        .text "b@@@@"
        .byte $c0,$83,$b2,$6f,$1c                   // scrcode: .....
        .encoding "petscii_upper"

txt_2a89:
        .text "$$"
        .byte $a9                                   // ')' | $80 (end-of-string marker)
        .byte $b9                                   // scrcode: .

txt_2a8d:
        .text "NB"
        .byte $b3                                   // '3' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .text "@bk"
        .encoding "petscii_upper"

txt_2a93:
        .text "4("
        .byte $dc                                   // '\' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $60,$60,$88                           // scrcode: ...
        .text "jf"
        .byte $c6                                   // scrcode: .
        .text "6675@ak4x"
        .byte $ec,$70,$80,$88                       // scrcode: ....
        .text "kgk"
        .encoding "petscii_upper"

txt_2aac:
        .text "7666"
        .byte $00                                   // string terminator
        .encoding "screencode_mixed"
        .text "@0l@"
        .byte $c0,$c0,$c0,$dc,$dc,$db               // scrcode: ......
        .text "776"
        .byte $e9,$de                               // scrcode: ..
        .text "0@@@@"
        .byte $c3,$82,$63                           // scrcode: ...
        .text "y&&"
        .byte $f9,$9d,$6d,$72,$83,$c0,$c0,$c0,$c0,$80,$b0,$70,$90,$d8 // scrcode: ..............
        .encoding "petscii_upper"

txt_2ad9:
        .text "8666666"
        .byte $b0                                   // '0' | $80 (end-of-string marker)
        .byte $c3,$8c,$40,$b0,$9f,$e5               // scrcode: ......

txt_2ae7:
        .text "*567"
        .byte $dc                                   // '\' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .byte $98,$a7,$61,$60,$fc,$57,$a9,$fe       // scrcode: ........
        .text "c@"
        .byte $bc,$60                               // scrcode: ..
        .text "cc"
        .byte $c0,$6c,$db                           // scrcode: ...
        .text "&6"
        .byte $e5,$6c,$6e,$9c,$1c                   // scrcode: .....
        .text ","
        .byte $1b,$1b,$5b,$db                       // scrcode: ....
        .text "59n"
        .byte $c2                                   // scrcode: .
        .text "m99"
        .byte $7c,$b3,$b0,$40                       // scrcode: ....
        .byte $70,$6f,$da                           // scrcode: ...
        .text "u677"
        .byte $9b,$6a,$65,$6e,$6c,$c0               // scrcode: ......
        .text "cl@"
        .byte $f0,$af,$5a,$a5                       // scrcode: ....
        .text "776"
        .byte $98,$98,$90,$62,$90                   // scrcode: .....
        .text "2n="
        .byte $f6,$9b,$9b,$9c,$9c,$70,$7c,$dc,$df   // scrcode: .........
        .text "7m"
        .byte $f7                                   // scrcode: .
        .text "7"
        .byte $db,$9b,$a6,$b9,$cd                   // scrcode: .....
        .text "c"
        .byte $bc,$60                               // scrcode: ..
        .text "0c"
        .byte $c0,$ac,$6b,$96                       // scrcode: ....
        .text "6"
        .byte $e6,$90,$ae,$6c,$1c                   // scrcode: .....
        .text ",x"
        .byte $1b,$9b                               // scrcode: ..
        .text ";jn2"
        .byte $c2                                   // scrcode: .
        .text "n:9o@"
        .byte $c3,$b3                               // scrcode: ..
        .byte $be,$99                               // scrcode: ..
        .text "+"
        .byte $ac,$9c,$db,$d6,$99,$6e,$b3           // scrcode: .......
        .text "@l"
        .byte $9f,$de                               // scrcode: ..
        .text "z"
        .byte $f5,$e9,$ae,$b0,$c0,$97,$5c,$70,$b3,$b0,$6c,$9b,$e6,$9b,$66,$a5 // scrcode: ................
        .byte $8d                                   // scrcode: .
        .text "mm"
        .byte $8f                                   // scrcode: .
        .text "c&"
        .byte $e6,$9a,$5d                           // scrcode: ...
        .byte $6e,$60,$63,$6c                       // scrcode: ....
        .text "o@"
        .byte $c0,$b3,$7e,$d5                       // scrcode: ....
        .text "++"
        .byte $98,$db,$e6,$96,$59,$aa,$ff,$98,$cf   // scrcode: .........
        .text "@cc"
        .byte $fe,$55,$ab,$fc,$9c,$eb,$e6,$96,$5a,$ab,$c0 // scrcode: ...........
        .text "l"
        .byte $e8                                   // scrcode: .
        .text "&"
        .byte $f5,$ea                               // scrcode: ..
        .byte $de,$9f,$b0,$b0                       // scrcode: ....
        .text "("
        .byte $ec,$a0,$70,$53,$93,$ee,$e6,$6f,$ee   // scrcode: .........
        .text "y"
        .byte $f6,$d9,$6e,$70,$f0,$9b,$6c,$b0,$b3,$b0,$6c,$9b,$e6,$9b,$66,$a5 // scrcode: ................
        .byte $8d                                   // scrcode: .
        .text "nn"
        .byte $8e                                   // scrcode: .
        .text "c"
        .byte $f5,$e6,$9b,$5d                       // scrcode: ....
        .byte $6e,$6c,$6e,$ab                       // scrcode: ....
        .encoding "petscii_upper"

// --- Region $2bfe-$2bff ---
.pc = $2bfe "dat_2bfe"

dat_2bfe:
        .encoding "screencode_mixed"
        .byte $c6                                   // scrcode: .
        .text "2"
        .encoding "petscii_upper"

// --- Region $2d00-$2d27 ---
.pc = $2d00 "dat_2d00"

dat_2d00:
        .byte $5f,$55,$f5,$7d,$69,$7d,$f5,$aa,$5f,$d6,$96,$97 // _U.}i}.._...

txt_2d0c:
        .text "ZU"
        .byte $a5                                   // '%' | $80 (end-of-string marker)
        .byte $69,$7d,$69,$a5,$ff,$5a,$97,$d7,$d6,$5f,$55,$f5,$7d,$69,$7d,$f5 // i}i..Z..._U.}i}.
        .byte $aa,$5f,$d6,$96,$97                   // ._...

txt_2d24:
        .text "ZU"
        .byte $a5                                   // '%' | $80 (end-of-string marker)
        .byte $69                                   // i

// --- Region $2d40-$2d85 ---
.pc = $2d40 "dat_2d40"

dat_2d40:
        .fill 13, $ea
        .byte $a2,$00,$bd,$5d,$2d,$9d,$34,$03,$e8,$e0,$60,$d0,$f5,$4c,$34,$03 // ...]-.4...`..L4.
        .byte $78,$a9,$34,$85,$01,$a2,$00,$bd,$00,$33,$9d,$01,$08,$e8,$d0,$f7 // x.4......3......
        .byte $ee,$3d,$03,$ee,$40,$03,$ad,$3d,$03,$c9,$00,$f0,$03,$4c,$39,$03 // .=..@..=.....L9.
        .byte $a9,$37,$85,$01,$58,$4c,$0e,$08       // .7..XL..

dat_2d85:
        // === Fill data (1 bytes, $2d85-$2d85) ===
        .byte $00                                   // .

// --- Region $2dc1-$305e ---
.pc = $2dc1 "dat_2dc1"

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

txt_2e10:
        .text " !"
        .byte $22                                   // double quote character
        .text "#$%&'()*+,-./ !"
        .byte $22                                   // double quote character
        .text "#$%&'()*+,-./ !"
        .byte $22                                   // double quote character
        .text "#$%&'>1>>>234>56789:;>1>>>234>56789:;>1>>>234"
        .byte $40                                   // @ character
        .text "A"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "BCD"
        .byte $40                                   // @ character
        .text "EFGHIJK"
        .byte $40                                   // @ character
        .text "A"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "BCD"
        .byte $40                                   // @ character
        .text "EFGHIJK"
        .byte $40                                   // @ character
        .text "A"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "BCDLMNOPQRSTUVWXYZ"
        .byte $5b                                   // [

txt_2e98:
        .text "LMNOPQRSTUVWXYZ"
        .byte $5b                                   // [

txt_2ea8:
        .text "LMNOPQRS"
        .byte $5c                                   // backslash character
        .byte $5d,$5e,$5f,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$5c // ]^_`abcdefghijk\
        .byte $5d,$5e,$5f,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$5c // ]^_`abcdefghijk\
        .byte $5d,$5e,$5f,$60,$61,$62,$63,$6c,$6d,$6e,$6f,$70,$71,$72,$73,$74 // ]^_`abclmnopqrst
        .byte $75,$76,$77,$78,$79,$7a,$7b,$6c,$6d,$6e,$6f,$70,$71,$72,$73,$74 // uvwxyz{lmnopqrst
        .byte $75,$76,$77,$78,$79,$7a,$7b,$6c,$6d,$6e,$6f,$70,$71,$72,$73,$b2 // uvwxyz{lmnopqrs.
        .byte $20,$54                               //  T

txt_2f03:
        .encoding "screencode_mixed"
        .text "his time we presents you a hot kicker game"
        .encoding "petscii_upper"

txt_2f2d:
        .text "!  M"

txt_2f31:
        .encoding "screencode_mixed"
        .text "ake sure to grab also: "
        .encoding "petscii_upper"
        .byte $43,$19,$07,$0e,$15,$13,$2b,$34,$20,$01,$0e,$04 // C.....+4 ...

txt_2f54:
        .text " L.A.P.D.+4 "

txt_2f60:
        .encoding "screencode_mixed"
        .text "and all the other releases"
        .encoding "petscii_upper"

txt_2f7a:
        .text "!!!  "
        .byte $b3                                   // '3' | $80 (end-of-string marker)
        .byte $47,$12,$05,$05,$14,$09,$0e,$07,$13,$20,$14,$0f // G........ ..

txt_2f8c:
        .text ": T S M... E"
        .byte $0d                                   // string terminator
        .byte $10,$09,$12,$05                       // ....

txt_2f9d:
        .text "... NEI... L"
        .byte $05,$07,$05,$0e,$04                   // .....

txt_2fae:
        .text "... I"
        .byte $0c,$0c,$15,$13,$09,$0f,$0e           // .......

txt_2fba:
        .text "... D"
        .byte $0f,$0d,$09,$0e,$01,$14,$0f,$12,$13   // .........

txt_2fc8:
        .text "... C"
        .byte $05,$0e,$13,$0f,$12                   // .....

txt_2fd2:
        .text "... FLT... V"
        .byte $05,$12,$04,$09,$03,$14               // ......

txt_2fe4:
        .text "... V"
        .byte $09,$03,$14,$09,$0d,$13               // ......

txt_2fef:
        .text "... X-R"
        .byte $01,$19                               // ..

txt_2ff8:
        .text "... F4CG"

chr_3000:
        // === Screen RAM (95 bytes, $3000-$305e) ===
        .encoding "screencode_mixed"
        .text "... and the rest"
        .encoding "petscii_upper"

txt_3010:
        .text "!     "
        .byte $b2                                   // '2' | $80 (end-of-string marker)

txt_3017:
        .text "    "
        .byte $b1                                   // '1' | $80 (end-of-string marker)

txt_301c:
        .text "    +++N"
        .encoding "screencode_mixed"
        .text "o "
        .byte $43                                   // scrcode: .
        .text "arrier "
        .byte $b2                                   // scrcode: .
        .text " "
        .byte $b3                                   // scrcode: .
        .text " "
        .byte $b4                                   // scrcode: .
        .encoding "petscii_upper"

txt_3033:
        .text "   "
        .byte $b3                                   // '3' | $80 (end-of-string marker)
        .encoding "screencode_mixed"
        .text "  "
        .byte $53                                   // scrcode: .
        .text "ting"
        .encoding "petscii_upper"

txt_303e:
        .text "/I+T!      "
        .byte $b4                                   // '4' | $80 (end-of-string marker)

txt_304a:
        .text "                     "
