// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:20
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $07ee  End: $3801  (12308 bytes)
// Crunched with Beta Dynamic v3 — depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $2e38 (11832)
// IRQ handler:  $2ec9 (irq_2ec9)
// IRQ handler:  $2ef8 (irq_2ef8)
// IRQ handler:  $2f5b (irq_2f5b)
// IRQ handler:  $2f80 (irq_2f80)
//
// Code: 2952 bytes, Data: 9356 bytes
// Labels: 255, Subroutines: 18
//
// Cross-references: all OK
// ============================================


// --- Region $0e10-$0ed3 ---
.pc = $0e10 "sub_0e10"
// Referenced by: jsr from $2eef

sub_0e10:
        ldx $0fd5
        cpx #$02
        beq loc_0e81
        cpx #$01
        beq loc_0e6d
        ldx $0fd8
        dex
        stx $0fd8
        bne loc_0e5f
        ldx #$04
        stx $0fd8
        ldx $0fd6
        dex
        stx $0fd6
        bne loc_0e60
        lda #$02
        sta $0fd5
        lda #$04
        sta $0fd6
        lda #$11
        ldx #$27

loc_0e40:
        sta $0608,x
        sta $0630,x
        sta $0658,x
        sta $0680,x
        sta $06a8,x
        sta $06d0,x
        dex
        bpl loc_0e40
        lda #$0f
        sta $1ffe
        lda #$0b
        sta $1fff

loc_0e5f:
        rts

loc_0e60:
        lda $0fcd,x
        sta $1fff
        lda $0fd1,x
        sta $1ffe
        rts

loc_0e6d:
        ldx $0fd7
        dex
        stx $0fd7
        bne loc_0e80
        lda #$00
        sta $0fd5
        lda #$4f
        sta $0fd7

loc_0e80:
        rts

loc_0e81:
        lda $0fcc
        beq loc_0eb5
        jsr sub_0f77
        ldx $0fcc
        dex
        lda scr_0fbe,x
        sta $062f
        lda $0fc0,x
        sta $0657
        lda $0fc2,x
        sta $067f
        lda $0fc4,x
        sta $0680
        lda $0fc6,x
        sta $06a8
        lda $0fc8,x
        sta $06d0
        dec $0fcc
        rts

loc_0eb5:
        inc smc_0ebe
        bne loc_0ebd
        inc smc_0ebf

loc_0ebd:
.label smc_0ebe = * + 1
.label smc_0ebf = * + 2
        lda $30ff                                   // !SMC: modified by $0ec6, $0ecb
        cmp #$ff
        bne loc_0ed0
        lda #$00
        sta smc_0ebe                                // SMC: modifies $0ebe
        lda #$31
        sta smc_0ebf                                // SMC: modifies $0ebf
        bne loc_0ebd

loc_0ed0:
        cmp #$fe
        bne loc_0edc

// --- Region $0edc-$0fbd ---
.pc = $0edc "loc_0edc"

loc_0edc:
        sta smc_0ee9                                // SMC: modifies $0ee9
        jsr sub_0f77
        lda smc_0ee9
        clc
        asl
        clc
.label smc_0ee9 = * + 1
        adc #$1a                                    // !SMC: modified by $0edc
        sec
        sbc #$03
        tax
        lda $0c58,x
        sta $062f
        lda $0cd0,x
        sta $0657
        lda txt_0d48,x
        sta $067f
        inx
        ldy #$01

loc_0f03:
        lda $0c58,x
        sta scr_0fbe,y
        lda $0cd0,x
        sta $0fc0,y
        lda txt_0d48,x
        sta $0fc2,y
        inx
        dey
        bpl loc_0f03
        lda #$02
        sta $0fcc
        inc smc_0f27
        bne loc_0f26
        inc smc_0f28

loc_0f26:
.label smc_0f27 = * + 1
.label smc_0f28 = * + 2
        lda $31ff                                   // !SMC: modified by $0f2f, $0f34
        cmp #$ff
        bne loc_0f39
        lda #$00
        sta smc_0f27                                // SMC: modifies $0f27
        lda #$32
        sta smc_0f28                                // SMC: modifies $0f28
        bne loc_0f26

loc_0f39:
        cmp #$fe
        bne loc_0f41

scr_0f3d:
        // === Screen RAM (4 bytes, $0f3d-$0f40) ===
        .encoding "screencode_mixed"
        .text " "
        .byte $9b                                   // scrcode: .
        .text "o"
        .byte $60                                   // scrcode: .
        .encoding "petscii_upper"

loc_0f41:
        sta smc_0f48                                // SMC: modifies $0f48
        clc
        asl
        clc
.label smc_0f48 = * + 1
        adc #$0b                                    // !SMC: modified by $0f41
        tax
        dex
        lda $0c58,x
        sta $0680
        lda $0cd0,x
        sta $06a8
        lda txt_0d48,x
        sta $06d0
        dex
        ldy #$01

loc_0f60:
        lda $0c58,x
        sta $0fc4,y
        lda $0cd0,x
        sta $0fc6,y
        lda txt_0d48,x
        sta $0fc8,y
        dex
        dey
        bpl loc_0f60
        rts
// Referenced by: jsr from $0e86, $0edf

sub_0f77:
        ldx #$00

loc_0f79:
        lda $0609,x
        sta $0608,x
        lda $0631,x
        sta $0630,x
        lda $0659,x
        sta $0658,x
        inx
        cpx #$27
        bne loc_0f79
        ldx #$11
        stx $0608
        stx $0630
        stx $0658
        ldx #$26

loc_0f9d:
        lda $0680,x
        sta $0681,x
        lda $06a8,x
        sta $06a9,x
        lda $06d0,x
        sta $06d1,x
        dex
        bpl loc_0f9d
        lda #$11
        sta $0680
        sta $06a8
        sta $06d0
        rts

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

sub_1000:
.label smc_1001 = * + 1
        ldy #$ff                                    // !SMC: modified by $15fd, $2ea6
        bmi loc_1061

loc_1004:
        beq loc_105d
        ldx #$17

loc_1008:
        lda #$09
        sta $d400,x
        lda #$00
        sta $d400,x
        dex
        bpl loc_1008
        stx smc_1001
        sta $1d52
        sta smc_10f4
        sta smc_11fc
        dey
        lda $182f,y
        sta $106f
        tya
        asl
        sta $fe
        asl
        clc
        adc $fe
        tay
        ldx #$00

loc_1033:
        lda $1830,y
        sta $1d77,x
        lda $1831,y
        sta $1d7a,x
        lda #$80
        sta $1d6e,x
        lda #$01
        sta $1d4f,x
        lda #$00
        sta $1d74,x
        sta $1d7d,x
        sta $1d59,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1033
        ldy #$18

loc_105d:
        sty $d418
        rts

loc_1061:
        ldx #$02

loc_1063:
        jsr sub_1074
        dex
        bpl loc_1063
        dec $1d52
        bpl loc_1073
        lda #$02
        sta $1d52

loc_1073:
        rts
// Referenced by: jsr from $1063

sub_1074:
        lda $1d52
        bne loc_1092
        dec $1d4f,x
        bne loc_1092
        ldy $1d9b,x
        beq loc_108f
        jsr sub_13a4
        jsr sub_12c6
        ldy $1829,x
        jsr sub_12b9

loc_108f:
        jmp loc_1596

loc_1092:
        lda $1d56,x
        beq loc_109a
        jmp loc_112a

loc_109a:
        sta $1da4,x
        sta $1da7,x
        sta $1dd7,x
        sta $1d68,x
        sta $1d98,x
        sta $1d95,x
        sta $1de0,x
        sta $1de3,x
        sta $1d83,x
        sta $1d86,x
        sta $1dc2,x
        ldy $1d5f,x
        lda $1953,y
        pha
        lda $1952,y
        ldy $1829,x
        sta $d405,y
        pla
        sta $d406,y
        lda $1d92,x
        and #$40
        beq loc_10db
        lda #$00
        sta $d404,y

loc_10db:
        lda $1d8f,x
        lsr
        bcc loc_112a
        ldy $1d5f,x
        lda $1957,y
        and #$0f
        bne loc_10f3
        sta $d417
        sta smc_11fc                                // SMC: modifies $11fc
        beq loc_112a

loc_10f3:
.label smc_10f4 = * + 1
        ldy #$00                                    // !SMC: modified by $167d, $1685
        bne loc_112a
        sta smc_14da                                // SMC: modifies $14da
        stx smc_11f8                                // SMC: modifies $11f8
        sty smc_14ae                                // SMC: modifies $14ae
        sty smc_14c6                                // SMC: modifies $14c6
        asl
        asl
        tay
        lda $1a0c,y
        sta $d418
        lda $1a0d,y
        clc
        adc $182c,x
        sta $d417
        lda $1a0e,y
        sta $1de6
        sta $d416
        lda $1a0f,y
        sta smc_14dc                                // SMC: modifies $14dc
        and #$7f
        sta smc_11fc                                // SMC: modifies $11fc

loc_112a:
        lda $1d8f,x
        bpl loc_115a
        ldy $1d62,x
        lda tbl_lo_1877,y
        sta $fe
        lda tbl_hi_187c,y
        sta $ff
        ldy $1d89,x
        lda ($fe),y
        cmp #$ff
        beq loc_114b
        inc $1d89,x
        sta $1d80,x

loc_114b:
        ldy $1d8c,x
        lda ($fe),y
        cmp #$80
        beq loc_115a
        inc $1d8c,x
        sta $1d68,x

loc_115a:
        ldy $1d9b,x
        beq loc_1162
        jsr sub_13a4

loc_1162:
        jsr sub_12c6
        lda $1db3,x
        beq loc_119e
        lda $1d56,x
        bne loc_1175
        jsr sub_150a
        jmp loc_1202

loc_1175:
        cmp $1db0,x
        bcs loc_117c
        bcc loc_11a3

loc_117c:
        cmp $1db3,x
        bcs loc_1187
        jsr sub_1554
        jmp loc_11c6

loc_1187:
        lda $1db6,x
        sta $1d65,x
        lda #$00
        sta $1db3,x
        sta $1da4,x
        sta $1da7,x
        jsr sub_12c6
        jmp loc_11c6

loc_119e:
        lda $1d56,x
        beq loc_1202

loc_11a3:
        ldy $1d5f,x
        lda $1957,y
        and #$f0
        beq loc_11c6
        lsr
        lsr
        tay
        lda $1dc2,x
        bne loc_11bb
        jsr sub_12ee
        jmp loc_11c6

loc_11bb:
        lda $1d56,x
        cmp $19c4,y
        bcc loc_11c6
        jsr sub_132c

loc_11c6:
        lda $1dbc,x
        beq loc_11ce
        jsr sub_1538

loc_11ce:
        lda $1dbf,x
        beq loc_11e7
        lda $1d56,x
        and #$01
        beq loc_11e7
        lda $1da1,x
        sec
        sbc $1dbf,x
        sta $1da1,x
        inc $1dbf,x

loc_11e7:
        ldy $1d5f,x
        lda $1955,y
        bne loc_11f4
        ldy $1ddd,x
        beq loc_11f7

loc_11f4:
        jsr sub_13be

loc_11f7:
.label smc_11f8 = * + 1
        cpx #$02                                    // !SMC: modified by $10fa
        bne loc_1202
.label smc_11fc = * + 1
        ldy #$01                                    // !SMC: modified by $10ee, $1127
        beq loc_1202
        jsr sub_14a3

loc_1202:
        lda $1d92,x
        bpl loc_121b
        lda #$01
        cmp $1d4f,x
        bne loc_121b
        cmp $1d52
        bne loc_121b
        ldy $1829,x
        lda #$00
        sta $d406,y

loc_121b:
        lda $1d8f,x
        and #$02
        beq loc_122e
        jsr sub_1463
        lda $1d92,x
        and #$20
        bne loc_1270
        beq loc_129a

loc_122e:
        lda #$01
        cmp $1d56,x
        bne loc_1245
        lda $1d8f,x
        and #$40
        beq loc_1245
        lda #$f9
        sta $1da1,x
        lda #$81
        bne loc_129d

loc_1245:
        lda $1d92,x
        and #$10
        beq loc_1257
        lda #$01
        cmp $1d56,x
        bcc loc_1257
        lda #$41
        bne loc_129d

loc_1257:
        lda $1d92,x
        and #$20
        bne loc_1270
        ldy $1d5c,x
        lda $1d56,x
        cmp $19fd,y
        bne loc_129a
        lda $1d8f,x
        bpl loc_1291
        bmi loc_129a

loc_1270:
        lda $1d92,x
        and #$0f
        cmp $1d4f,x
        bcc loc_129a
        lda $1d52
        cmp $106f
        bne loc_129a
        lda #$02
        cmp $1d56,x
        bcs loc_129a
        lda $1d8f,x
        and #$fd
        sta $1d8f,x

loc_1291:
        ldy $1d5f,x
        lda $1951,y
        sta $1d80,x

loc_129a:
        lda $1d80,x

loc_129d:
        ldy $1829,x
        sta $d404,y
        lda $1dd7,x
        sta $d402,y
        lda $1dda,x
        sta $d403,y
        lda $1d56,x
        cmp #$ff
        beq sub_12b9
        inc $1d56,x
// Referenced by: jsr from $108c; branch from $12b4

sub_12b9:
        lda $1d9e,x
        sta $d400,y
        lda $1da1,x
        sta $d401,y
        rts
// Referenced by: jsr from $1086, $1162, $1198

sub_12c6:
        lda $1d65,x
        tay
        lda $1d8f,x
        and #$08
        bne loc_12da
        tya
        clc
        adc $1d6b,x
        adc $1d98,x
        tay

loc_12da:
        sty smc_130b                                // SMC: modifies $130b
        lda dat_1769,y
        sta $1d9e,x
        lda $17c9,y
        clc
        adc $1d68,x
        sta $1da1,x
        rts
// Referenced by: jsr from $11b5

sub_12ee:
        lda #$00
        sta $1dce,x
        sta $1dd1,x
        inc $1dc2,x
        lda $19c5,y
        and #$0f
        sta $1dc5,x
        lda $19c5,y
        lsr
        lsr
        lsr
        lsr
        sta $ff
.label smc_130b = * + 1
        ldy #$43                                    // !SMC: modified by $12da
        lda $176a,y
        sec
        sbc $1d9e,x
        sta $fe
        lda $17ca,y
        sbc $1da1,x
        ldy $ff

loc_131d:
        lsr
        ror $fe
        dey
        bpl loc_131d
        sta $1dcb,x
        lda $fe
        sta $1dc8,x
        rts
// Referenced by: jsr from $11c3

sub_132c:
        lda $1dc2,x
        bmi loc_1344
        lda $1dce,x
        clc
        adc $1dc8,x
        sta $1dce,x
        lda $1dd1,x
        adc $1dcb,x
        jmp loc_1354

loc_1344:
        lda $1dce,x
        sec
        sbc $1dc8,x
        sta $1dce,x
        lda $1dd1,x
        sbc $1dcb,x

loc_1354:
        sta $1dd1,x
        lda $1d9e,x
        clc
        adc $1dce,x
        sta $1d9e,x
        lda $1da1,x
        adc $1dd1,x
        sta $1da1,x
        dec $1dc5,x
        bne loc_1380
        lda $19c5,y
        and #$0f
        asl
        sta $1dc5,x
        lda $1dc2,x
        eor #$ff
        sta $1dc2,x

loc_1380:
        lda $19c6,y
        beq loc_13a3
        bpl loc_138f
        lda $1d56,x
        cmp $19c7,y
        bcs loc_13a3

loc_138f:
        lda $19c6,y
        and #$7f
        clc
        adc $1dc8,x
        sta $1dc8,x
        lda $1dcb,x
        adc #$00
        sta $1dcb,x

loc_13a3:
        rts
// Referenced by: jsr from $1083, $115f

sub_13a4:
        dec $1d95,x
        bpl loc_13af
        lda $186d,y
        sta $1d95,x

loc_13af:
        lda $1835,y
        clc
        adc $1d95,x
        tay
        lda $183e,y
        sta $1d98,x
        rts
// Referenced by: jsr from $11f4

sub_13be:
        tay
        lda $1d8f,x
        and #$04
        beq loc_13fc
        lda $1a0b,y
        sta $fe
        lda $1a0c,y
        sta $ff

loc_13d0:
        ldy $1de0,x
        lda ($fe),y
        iny
        cmp #$ff
        bne loc_13e1
        lda ($fe),y
        sta $1de0,x
        bpl loc_13d0

loc_13e1:
        cmp #$fe
        bne loc_13e6
        rts

loc_13e6:
        inc $1de3,x
        cmp $1de3,x
        bne loc_13f9
        inc $1de0,x
        inc $1de0,x
        lda #$00
        sta $1de3,x

loc_13f9:
        lda ($fe),y
        tay

loc_13fc:
        sty smc_140f                                // SMC: modifies $140f
        sty smc_1426                                // SMC: modifies $1426
        ldy $1d5c,x
        lda $1dd4,x
        bne loc_1421
        lda $1dd7,x
        clc
.label smc_140f = * + 1
        adc #$a0                                    // !SMC: modified by $13fc
        pha
        lda $1dda,x
        adc $1ddd,x
        cmp $19df,y
        bcc loc_145b
        inc $1dd4,x
        bne loc_143a

loc_1421:
        lda $1dd7,x
        sec
.label smc_1426 = * + 1
        sbc #$a0                                    // !SMC: modified by $13ff
        pha
        lda $1dda,x
        sbc $1ddd,x
        cmp $19ee,y
        bmi loc_1435
        bcs loc_145b

loc_1435:
        lda #$00
        sta $1dd4,x

loc_143a:
        lda $1d8f,x
        and #$10
        beq loc_1459
        lda $1d8f,x
        and #$20
        sta $1dd4,x
        ldy $1d5f,x
        lda $1954,y
        and #$0f
        sta $1dda,x
        lda #$00
        sta $1dd7,x

loc_1459:
        pla
        rts

loc_145b:
        sta $1dda,x
        pla
        sta $1dd7,x
        rts
// Referenced by: jsr from $1222

sub_1463:
        ldy $1d5f,x
        lda $1950,y
        tay
        lda $1a0d,y
        sta $fe
        lda $1a0e,y
        sta $ff

loc_1474:
        ldy $1d83,x
        lda ($fe),y
        iny
        cmp #$ff
        bne loc_1485
        lda ($fe),y
        sta $1d83,x
        bpl loc_1474

loc_1485:
        cmp #$fe
        bne loc_148a
        rts

loc_148a:
        inc $1d86,x
        cmp $1d86,x
        bne loc_149d
        inc $1d83,x
        inc $1d83,x
        lda #$00
        sta $1d86,x

loc_149d:
        lda ($fe),y
        sta $1d80,x
        rts
// Referenced by: jsr from $11ff

sub_14a3:
        lda $1a15,y
        sta $fe
        lda $1a16,y
        sta $ff

loc_14ad:
.label smc_14ae = * + 1
        ldy #$00                                    // !SMC: modified by $10fd, $14b8
        lda ($fe),y
        iny
        cmp #$ff
        bne loc_14bd
        lda ($fe),y
        sta smc_14ae                                // SMC: modifies $14ae
        bpl loc_14ad

loc_14bd:
        cmp #$fe
        bne loc_14c2
        rts

loc_14c2:
        inc smc_14c6
.label smc_14c6 = * + 1
        cmp #$01                                    // !SMC: modified by $1100, $14d1
        bne loc_14d4
        inc smc_14ae
        inc smc_14ae
        lda #$00
        sta smc_14c6                                // SMC: modifies $14c6

loc_14d4:
        lda ($fe),y
        sta $1de7
.label smc_14da = * + 1
        ldy #$01                                    // !SMC: modified by $10f7
.label smc_14dc = * + 1
        lda #$81                                    // !SMC: modified by $1122, $14ff
        bmi loc_14f1

loc_14df:
        lda $1de6
        clc
        adc $1de7
        cmp $1a13,y
        bcc loc_1503
        lda #$ff
        sta smc_14dc
        rts

loc_14f1:
        lda $1de6
        sec
        sbc $1de7
        cmp $1a14,y
        bcs loc_1503
        lda #$00
        sta smc_14dc                                // SMC: modifies $14dc
        rts

loc_1503:
        sta $1de6
        sta $d416
        rts
// Referenced by: jsr from $116f

sub_150a:
        lda $1db3,x
        sta smc_1529                                // SMC: modifies $1529
        sta smc_152d                                // SMC: modifies $152d
        clc
        adc $1db0,x
        sta $1db3,x
// Referenced by: jsr from $1703

sub_151a:
        ldy #$07
        lda $1db9,x

loc_151f:
        asl $1daa,x
        rol $1dad,x
        rol
        bcs loc_152c
.label smc_1529 = * + 1
        cmp #$0c                                    // !SMC: modified by $150d, $16a2
        bcc loc_1531

loc_152c:
.label smc_152d = * + 1
        sbc #$0c                                    // !SMC: modified by $1510, $16a5
        inc $1daa,x

loc_1531:
        dey
        bpl loc_151f
        sta $1db9,x
        rts
// Referenced by: jsr from $11cb

sub_1538:
        php
        and #$7f
        sta $1daa,x
        lda #$00
        sta $1dad,x
        asl $1daa,x
        rol $1dad,x
        asl $1daa,x
        rol $1dad,x
        plp
        bpl loc_156f
        bmi loc_155c
// Referenced by: jsr from $1181

sub_1554:
        lda $1d65,x
        cmp $1db6,x
        bcc loc_156f

loc_155c:
        lda $1da4,x
        sec
        sbc $1daa,x
        sta $1da4,x
        lda $1da7,x
        sbc $1dad,x
        jmp loc_157f

loc_156f:
        lda $1da4,x
        clc
        adc $1daa,x
        sta $1da4,x
        lda $1da7,x
        adc $1dad,x

loc_157f:
        sta $1da7,x
        lda $1d9e,x
        clc
        adc $1da4,x
        sta $1d9e,x
        lda $1da1,x
        adc $1da7,x
        sta $1da1,x
        rts

loc_1596:
        ldy $1d6e,x
        bmi loc_15ae
        lda $1abc,y
        sta $fe
        lda $1acc,y
        sta $ff

loc_15a5:
        ldy $1d71,x
        lda ($fe),y
        cmp #$ff
        bne loc_1610

loc_15ae:
        lda #$00
        sta $1d71,x
        sta $1d9b,x
        lda $1d7d,x
        beq loc_15c0
        dec $1d7d,x
        bpl loc_15a5

loc_15c0:
        ldy $1d74,x
        lda $1d77,x
        sta $fe
        lda $1d7a,x
        sta $ff

loc_15cd:
        lda ($fe),y
        cmp #$40
        bcc loc_1606
        cmp #$80
        bcc loc_15eb
        cmp #$c0
        bcc loc_15f3
        cmp #$ff
        beq loc_1602
        cmp #$fe
        beq loc_15fb
        and #$3f
        sta $1d59,x
        iny
        bne loc_15cd

loc_15eb:
        and #$3f
        sta $1d7d,x
        iny
        bne loc_15cd

loc_15f3:
        and #$3f
        sta $1d6b,x
        iny
        bne loc_15cd

loc_15fb:
        ldy #$00
        sty smc_1001                                // SMC: modifies $1001
        beq loc_15cd

loc_1602:
        ldy #$00
        beq loc_15cd

loc_1606:
        sta $1d6e,x
        iny
        tya
        sta $1d74,x
        bne loc_1596

loc_1610:
        lda #$00
        sta $1de8
        sta $1d56,x
        sta $1db3,x
        sta $1dbc,x
        sta $1dbf,x

loc_1621:
        lda ($fe),y
        bmi loc_1630
        sta $1d65,x
        iny
        tya
        sta $1d71,x
        jmp loc_1706

loc_1630:
        cmp #$c0
        bcc loc_1659
        cmp #$e0
        bcc loc_1665
        cmp #$f0
        bcc loc_166d
        beq loc_1696
        cmp #$f1
        beq loc_1650
        cmp #$f2
        beq loc_1675
        cmp #$f3
        beq loc_167b
        cmp #$f4
        beq loc_1683
        bne loc_168b

loc_1650:
        iny
        lda ($fe),y
        sta $1dbc,x
        iny
        bne loc_1621

loc_1659:
        and #$3f
        clc
        adc $1de8
        sta $1de8
        iny
        bne loc_1621

loc_1665:
        and #$1f
        sta $1d5c,x
        iny
        bne loc_1621

loc_166d:
        and #$0f
        sta $1d9b,x
        iny
        bne loc_1621

loc_1675:
        inc $1dbf,x
        iny
        bne loc_1621

loc_167b:
        lda #$ff
        sta smc_10f4                                // SMC: modifies $10f4
        iny
        bne loc_1621

loc_1683:
        lda #$00
        sta smc_10f4                                // SMC: modifies $10f4
        iny
        bne loc_1621

loc_168b:
        lda #$00
        sta $d417
        sta $1de7
        iny
        bne loc_1621

loc_1696:
        iny
        lda ($fe),y
        sta $1db0,x
        iny
        lda ($fe),y
        sta $1db3,x
        sta smc_1529                                // SMC: modifies $1529
        sta smc_152d                                // SMC: modifies $152d
        iny
        lda ($fe),y
        sta $1d65,x
        iny
        tya
        sta $1d71,x
        inc $1d71,x
        lda ($fe),y
        sta $1db6,x
        clc
        adc $1d6b,x
        tay
        lda $17c9,y
        pha
        lda dat_1769,y
        pha
        lda $1d65,x
        adc $1d6b,x
        tay
        pla
        sec
        sbc dat_1769,y
        sta $1daa,x
        pla
        sbc $17c9,y
        sta $1dad,x
        lda #$00
        sta $1db9,x
        lda $1d65,x
        cmp $1db6,x
        bcc loc_1703
        lda $1daa,x
        eor #$ff
        sta $1daa,x
        lda $1dad,x
        eor #$ff
        sta $1dad,x
        inc $1daa,x
        bne loc_1703
        inc $1dad,x

loc_1703:
        jsr sub_151a

loc_1706:
        lda $1de8
        beq loc_170e
        sta $1d53,x

loc_170e:
        lda $1d53,x
        sta $1d4f,x
        lda $1d59,x
        beq loc_171c
        sta $1d5c,x

loc_171c:
        ldy $1d5c,x
        lda $19d0,y
        sta $1d92,x
        tya
        asl
        asl
        asl
        sta $1d5f,x
        tay
        lda $1950,y
        sta $1d80,x
        lda $1954,y
        and #$0f
        sta $1dda,x
        lda $1954,y
        lsr
        lsr
        lsr
        lsr
        sta $1ddd,x
        lda $1956,y
        sta $1d8f,x
        and #$20
        sta $1dd4,x
        lda $1d8f,x
        bmi loc_1756
        rts

loc_1756:
        lda $1d80,x
        sta $1d62,x
        tay
        lda #$00
        sta $1d89,x
        lda $1881,y
        sta $1d8c,x
        rts

dat_1769:
        .byte $0c                                   // .

// --- Region $189a-$189e ---
.pc = $189a "$189a"
        sta ($41,x)
        eor ($80,x)
        rti

// --- Region $18b0-$18b4 ---
.pc = $18b0 "$18b0"
        sta ($41,x)
        eor ($80,x)
        rti

// --- Region $1e00-$1ebb ---
.pc = $1e00 "sub_1e00"
// Referenced by: jsr from $2ef2

sub_1e00:
        ldx #$03

loc_1e02:
        lda $1ec3
        cmp #$10
        beq loc_1e16

loc_1e09:
        dec $1ec3
        dex
        bne loc_1e02
        lda $1ec3
        sta dat_1ffd
        rts

loc_1e16:
        stx $1ec2
        lda #$18
        sta $1ec3
        jsr sub_1ea2
        lda $1ec4
        beq loc_1e45
        ldx $1ec4
        dex
        lda dat_1ebc,x
        sta $071f
        lda $1ebe,x
        sta $0747
        lda $1ec0,x
        sta $076f
        dec $1ec4
        ldx $1ec2
        jmp loc_1e09

loc_1e45:
        inc smc_1e4e
        bne loc_1e4d
        inc smc_1e4f

loc_1e4d:
.label smc_1e4e = * + 1
.label smc_1e4f = * + 2
        lda $3502                                   // !SMC: modified by $1e56, $1e5b
        cmp #$ff
        bne loc_1e60
        lda #$00
        sta smc_1e4e                                // SMC: modifies $1e4e
        lda #$35
        sta smc_1e4f                                // SMC: modifies $1e4f
        bne loc_1e4d

loc_1e60:
        sta smc_1e67                                // SMC: modifies $1e67
        clc
        asl
        clc
.label smc_1e67 = * + 1
        adc #$28                                    // !SMC: modified by $1e60
        sec
        sbc #$03
        tax
        lda $0c58,x
        sta $071f
        lda $0cd0,x
        sta $0747
        lda txt_0d48,x
        sta $076f
        inx
        ldy #$01

loc_1e81:
        lda $0c58,x
        sta dat_1ebc,y
        lda $0cd0,x
        sta $1ebe,y
        lda txt_0d48,x
        sta $1ec0,y
        inx
        dey
        bpl loc_1e81
        lda #$02
        sta $1ec4
        ldx $1ec2
        jmp loc_1e09
// Referenced by: jsr from $1e1e

sub_1ea2:
        ldx #$00

loc_1ea4:
        lda $06f9,x
        sta $06f8,x
        lda $0721,x
        sta $0720,x
        lda $0749,x
        sta $0748,x
        inx
        cpx #$27
        bne loc_1ea4
        rts

// --- Region $2e38-$2fcc ---
.pc = $2e38 "main_2e38"

main_2e38:
        lda #$08
        jsr $ffd2
        lda #$81
        jsr $ffd2
        jsr $e544
        ldx #$00

loc_2e47:
        lda dat_2c80,x
        sta $0400,x
        lda $2d10,x
        sta $0490,x
        lda #$0e
        sta $d800,x
        sta $d8e0,x
        lda #$11
        sta $0608,x
        sta $0698,x
        inx
        bne loc_2e47
        stx $d020
        stx $d021

loc_2e6c:
        lda #$0a
        sta $d8f0,x
        sta $d918,x
        sta $d940,x
        sta $db98,x
        sta $dbc0,x
        lda $2e10,x
        sta $d8c8,x
        lda #$0e
        lda $0dc0,x
        sta $0590,x
        sta $0798,x
        lda $0de8,x
        sta $05b8,x
        sta $07c0,x
        lda #$11
        sta $05e0,x
        sta $0698,x
        inx
        cpx #$28
        bne loc_2e6c
        lda #$01
        sta smc_1001                                // SMC: modifies $1001
        sei
        lda #$2e
        sta $0315
        lda #$c9
        sta $0314
        ldx #$00
        stx $dc0e
        stx $d012
        inx
        stx $d01a
        ldx #$1b
        stx $d011
        cli
        jmp loc_3000

irq_2ec9:
        inc $d019
        lda #$18
        sta $d016
        lda #$3b
        sta $d011
        lda #$18
        sta $d018
        lda #$f8
        sta $0314
        lda #$2e
        sta $0315
        lda #$82
        sta $d012
        lda #$0f
        sta $d023
        jsr sub_0e10
        jsr sub_1e00
        jmp $ea31
irq_2ef8: {
        inc $d019
        lda #$18
        sta $d016
        lda #$0e
        sta $d022
        lda #$1b
        sta $d011
        lda #$12
        sta $d018
        lda #$87
loop1:
        cmp $d012
        bne loop1
        ldx #$09
loop2:
        dex
        bne loop2
        nop
        nop
        ldx #$00
loop3:
        lda $2fd0,x
        sta $d020
        sta $d020
        ldy $2fdc,x
loop4:
        dey
        bne loop4
        inx
        cpx #$0c
        bne loop3
        lda #$9a
loop5:
        cmp $d012
        bne loop5
        lda $1fff
        sta $d022
        lda $1ffe
        sta $d023
        lda #$5b
        sta $0314
        lda #$2f
        sta $0315
        lda #$c9
        sta $d012
        jsr sub_1000
        jmp $ea81
}

irq_2f5b:
        inc $d019
        lda dat_1ffd
        sta $d016
        lda #$0f
        sta $d023
        lda #$0b
        sta $d022
        lda #$80
        sta $0314
        lda #$2f
        sta $0315
        lda #$ec
        sta $d012
        jmp $ea81

irq_2f80:
        inc $d019
        nop
        lda #$0a
        sta $d022
        lda #$18
        sta $d016
        lda #$1b
        sta $d011
        lda #$12
        sta $d018
        lda #$ef

loc_2f9a:
        cmp $d012
        bne loc_2f9a
        ldx #$0a

loc_2fa1:
        dex
        bne loc_2fa1
        nop
        ldx #$00

loc_2fa7:
        lda $2fe8,x
        sta $d020
        sta $d020
        ldy $2fdc,x

loc_2fb3:
        dey
        bne loc_2fb3
        inx
        cpx #$0c
        bne loc_2fa7
        lda #$c9
        sta $0314
        lda #$2e
        sta $0315
        lda #$00
        sta $d012
        jmp $ea81

// --- Region $3000-$3023 ---
.pc = $3000 "loc_3000"

loc_3000:
        lda $dc01
        cmp #$ef
        bne loc_3000
        sei
        jsr $fda3
        jsr $fd15
        jsr $e518
        lda #$00
        sta $d020
        sta $d021
        sta $0286
        jsr $e544
        jmp $fce2

bmp_3022:
        // === Bitmap data (2 bytes, $3022-$3023) ===
        .byte $7e,$de                               // ~.

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

// --- Region $0800-$0e0f ---
.pc = $0800 "dat_0800"

dat_0800:
        .byte $1a,$6a,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$9a,$8a,$ba,$ba,$ba,$aa // .j..............
        .byte $93,$a7,$ab,$ab,$ab,$ab,$ab,$ab,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa // ................
        .byte $aa,$aa,$9a,$8a,$ba,$ba,$8a,$9a,$93,$a7,$ab,$ab,$ab,$ab,$ab,$a7 // ................
        .byte $aa,$aa,$9a,$8a,$ba,$bf,$bf,$bf,$93,$a7,$ab,$ab,$ab,$ff,$ff,$ff // ................
        .byte $aa,$aa,$aa,$9a,$8a,$ba,$ba,$ba,$aa,$aa,$aa,$8f,$bf,$bf,$bf,$aa // ................
        .byte $ab,$ab,$ab,$ff,$ff,$ff,$ff,$ab,$aa,$aa,$9a,$8a,$ba,$bf,$bf,$ba // ................
        .byte $93,$a7,$ab,$ab,$ab,$ff,$ff,$ab,$ba,$ba,$ba,$ba,$ba,$ba,$ba,$aa // ................
        .fill 8, $ab
        .byte $aa,$aa,$aa,$fe,$fe,$fe,$fe,$fe,$ab,$ab,$ab,$ff,$ff,$ff,$ff,$ff // ................
        .fill 8, $ff
        .fill 8, $fa
        .byte $ba,$ba,$ba,$ba,$ba,$ba,$8a,$9a,$ab,$ab,$ab,$ab,$ab,$ab,$ab,$a7 // ................
        .fill 8, $bf
        .byte $19,$6a,$aa,$aa,$aa,$aa,$aa,$aa,$31,$8a,$9a,$aa,$9a,$8a,$ba,$ba // .j......1.......
        .byte $aa,$aa,$ba,$ba,$ba,$ba,$ba,$ba,$aa,$9a,$8a,$ba,$ba,$8a,$9a,$aa // ................
        .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$6a,$bf,$bf,$bf,$bf,$ba,$8a,$9a,$aa // .......j........
        .byte $ff,$ff,$ff,$ff,$ab,$ab,$ab,$a7,$ba,$ba,$ba,$ba,$8a,$9a,$aa,$aa // ................
        .byte $aa,$aa,$bf,$bf,$bf,$8f,$aa,$aa,$ab,$ab,$ff,$ff,$ff,$ff,$ab,$ab // ................
        .byte $aa,$aa,$bf,$bf,$bf,$bf,$bf,$bf,$ab,$ab,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $ba,$ba,$b2,$b2,$b2,$86,$9a,$aa,$fe,$fe,$fe,$fe,$fe,$fe,$aa,$aa // ................
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ab,$ab,$ff,$ff,$ff,$ff,$aa,$aa,$aa,$6a // ...............j
        .byte $fa,$fa,$fa,$fa,$ba,$8a,$9a,$aa,$aa,$9a,$8a,$ba,$ba,$ba,$ba,$ba // ................
        .byte $bf,$bf,$bf,$bf,$bf,$8f,$aa,$aa,$ba,$ba,$ba,$ba,$ba,$ba,$ba,$ba // ................
        .byte $aa,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ba,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $ab,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$93,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $1a,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$bf,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $aa,$aa,$9a,$8a,$ba,$ba,$ba,$ba,$aa,$aa,$aa,$9a,$8a,$bf,$bf,$aa // ................
        .byte $93,$a7,$ab,$ab,$ab,$ff,$ff,$93,$aa,$aa,$aa,$aa,$aa,$aa,$6a,$2a // ..............j*
        .byte $ab,$ab,$ab,$ab,$ab,$ab,$a7,$a3,$aa,$aa,$aa,$ff,$ff,$ff,$fc,$fd // ................
        .byte $aa,$aa,$aa,$da,$2a,$6a,$aa,$aa,$ab,$ab,$ab,$ab,$a3,$9f,$8f,$7f // ....*j..........
        .byte $ba,$ba,$ba,$ba,$ba,$8a,$9a,$aa,$a7,$93,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $aa,$aa,$aa,$aa,$aa,$aa,$6a,$1a,$ba,$ba,$ba,$ba,$8a,$9a,$aa,$a6 // ......j.........
        .byte $ab,$ab,$ab,$ab,$ab,$ab,$ab,$a4,$6a,$1a,$ff,$ff,$aa,$aa,$aa,$6a // ........j......j
        .byte $aa,$aa,$fa,$fa,$8a,$9a,$aa,$aa,$a7,$ab,$ab,$ab,$ab,$ab,$ab,$a7 // ................
        .fill 8, $fe
        .byte $aa,$aa,$aa,$6a,$6a,$2a,$da,$c6,$ab,$ab,$ab,$a7,$a7,$a3,$9f,$4f // ...jj*.........O
        .byte $ba,$ba,$8a,$9a,$aa,$aa,$9a,$8a,$ea,$ca,$fa,$f6,$f2,$fe,$fe,$fe // ................
        .byte $af,$8f,$bf,$7f,$3f,$ff,$ff,$ff,$f2,$f6,$ca,$da,$2a,$aa,$aa,$aa // ....?.......*...
        .byte $aa,$a9,$a8,$a7,$a3,$9f,$aa,$aa,$3f,$ff,$ff,$ff,$ff,$ff,$ab,$ab // ........?.......
        .byte $f1,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$a9,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $64,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$19,$ff,$ff,$ff,$ff,$ff,$ff,$ff // d...............
        .byte $31,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f1,$c6,$da,$ea,$e6,$d2,$ce,$fe // 1...............
        .byte $1a,$6a,$aa,$aa,$aa,$ff,$ff,$1a,$6a,$aa,$aa,$aa,$aa,$aa,$aa,$aa // .j......j.......
        .byte $aa,$bf,$bf,$bf,$bf,$ff,$ff,$ff,$aa,$fa,$fa,$fa,$fa,$ff,$ff,$ff // ................
        .byte $ab,$ab,$ab,$ab,$ab,$ff,$ff,$ff,$f2,$f6,$fa,$ca,$da,$ff,$ff,$ff // ................
        .byte $a9,$a8,$ab,$a7,$a3,$ff,$ff,$ff,$aa,$aa,$aa,$9a,$8a,$fa,$fa,$aa // ................
        .byte $aa,$aa,$aa,$ff,$ff,$ff,$ff,$aa,$aa,$aa,$aa,$ca,$fa,$fa,$fa,$aa // ................
        .byte $ab,$ab,$ab,$ab,$ab,$ff,$ff,$93,$aa,$aa,$aa,$aa,$ff,$ff,$ff,$ff // ................
        .byte $aa,$aa,$aa,$aa,$ca,$da,$ea,$ea,$ab,$ab,$ab,$ab,$a7,$a3,$af,$af // ................
        .byte $1a,$6a,$aa,$aa,$aa,$aa,$aa,$6a,$aa,$aa,$aa,$9a,$8a,$ba,$8a,$9a // .j.....j........
        .byte $3f,$7f,$bf,$bf,$bf,$bf,$bf,$bf,$aa,$aa,$bf,$bf,$8a,$9a,$aa,$aa // ?...............
        .byte $a7,$93,$ff,$ff,$ab,$ab,$ab,$ab,$aa,$aa,$ff,$ff,$ff,$ff,$aa,$aa // ................
        .byte $aa,$aa,$fa,$fa,$fa,$ca,$aa,$aa,$6a,$1a,$ff,$ff,$ff,$ff,$ff,$ff // ........j.......
        .byte $aa,$aa,$fa,$fa,$fa,$fa,$fa,$fa       // ........

spr_0b40:
        // === Sprite data (64 bytes, $0b40-$0b7f) ===
        .byte $aa,$9a,$8a                           // #.#.#.#.#..##.#.#...#.#.
        .byte $ba,$8a,$9a                           // #.###.#.#...#.#.#..##.#.
        .byte $aa,$aa,$ff                           // #.#.#.#.#.#.#.#.########
        .byte $ff,$ff,$ff                           // ########################
        .byte $fc,$fd,$fe                           // ######..######.########.
        .byte $fe,$2a,$6a                           // #######...#.#.#..##.#.#.
        .byte $aa,$aa,$aa                           // #.#.#.#.#.#.#.#.#.#.#.#.
        .byte $aa,$aa,$aa                           // #.#.#.#.#.#.#.#.#.#.#.#.
        .byte $9f,$8f,$bf                           // #..######...#####.######
        .byte $bf,$7f,$3f                           // #.######.#######..######
        .byte $ff,$ff,$aa                           // #################.#.#.#.
        .byte $aa,$6a,$19                           // #.#.#.#..##.#.#....##..#
        .byte $ff,$ff,$19                           // ################...##..#
        .byte $6a,$bf,$bf                           // .##.#.#.#.#######.######
        .byte $7f,$3f,$ff                           // .#######..##############
        .byte $ff,$3f,$7f                           // ########..######.#######
        .byte $ff,$ff,$ff                           // ########################
        .byte $ff,$ff,$ff                           // ########################
        .byte $19,$6a,$ff                           // ...##..#.##.#.#.########
        .byte $ff,$ff,$ff                           // ########################
        .byte $ff,$ff,$3f                           // ################..######
        .byte $7f                                   // sprite 0 padding
        .byte $fa,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f2,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$1a,$6a,$aa,$aa,$aa,$ff,$ff,$fc // ?........j......
        .byte $aa,$aa,$aa,$9a,$8a,$fa,$ca,$6a,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$1a // .......j........
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$aa,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$93 // ................
        .byte $fd,$fe,$fe,$fd,$fc,$ff,$fc,$fd,$aa,$aa,$aa,$a9,$64,$ff,$64,$a9 // ............d.d.
        .byte $a3,$8f,$7f,$ff,$ff,$ff,$ff,$ff,$aa,$aa,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $00,$00,$00,$00,$00,$55,$aa,$55,$55,$55,$ff,$ff,$00,$00,$00,$ff // .....U.UUU......
        .byte $00,$00,$00,$00,$00,$c0,$80,$40,$57,$69,$d7,$fc,$00,$30,$00,$c0 // .......@Wi...0..

scr_0c00:
        // === Screen RAM (528 bytes, $0c00-$0e0f) ===
        .encoding "screencode_mixed"
        .text "@@@@@"
        .byte $d5,$aa,$55,$55,$55,$ff,$ff           // scrcode: .......
        .text "@@c"
        .byte $ff                                   // scrcode: .
        .text "@@@@@"
        .byte $50,$95,$67,$55,$ff,$f0,$c3           // scrcode: .......
        .text "m?"
        .byte $fc,$c0                               // scrcode: ..
        .text "@@@@@@"
        .byte $c1,$f6                               // scrcode: ..
        .byte $f9                                   // scrcode: .
        .text "u"
        .byte $e5,$5f,$7c,$f0                       // scrcode: ....
        .text "o@@@@@@u"
        .byte $6a,$95,$55,$55,$ff,$ff               // scrcode: ......
        .text "<@"
        .byte $c0                                   // scrcode: .
        .text "?@@@@@"
        .byte $57,$aa,$55                           // scrcode: ...
        .text "@@@@@cba"
        .text "e"
        .byte $69,$d7                               // scrcode: ..
        .text "?@l@c@abcde@fgchb@ij@ij@klcmnocpqrncs"
        .text "tcuqvwbc0b@0bcdb@0bcde@12ocpc)nc)nc)nzst"
        .text "3s4567"
        .byte $50                                   // scrcode: .
        .text "cq"
        .byte $51,$58                               // scrcode: ..
        .text "b"
        .byte $59,$5a                               // scrcode: ..
        .text "bcmnc1"
        .byte $5b                                   // scrcode: .
        .text "@12"
        .byte $5c,$5d,$5e,$5f                       // scrcode: ....
        .text "de@"
        .byte $60                                   // scrcode: .
        .text "bv"
        .byte $61                                   // scrcode: .
        .text "q"
        .byte $73,$74                               // scrcode: ..
        .text "e"
        .byte $75                                   // scrcode: .
        .byte $76,$77                               // scrcode: ..
        .text "qqqqqqcxncyez"
        .byte $1b,$1c                               // scrcode: ..
        .text "c"
        .byte $1d                                   // scrcode: .
        .text "tz"
        .byte $1e,$1f                               // scrcode: ..
        .text "c !z"
        .byte $22                                   // scrcode: "
        .text "tcxn#c$%&tc'"
        .text "bz($c)nc)nz8tc"
        .encoding "petscii_upper"

txt_0cfe:
        .text " 9:;<"
        .encoding "screencode_mixed"
        .text "c'b=>?"
        .byte $40                                   // scrcode: .
        .text "cqz8t"
        .byte $41                                   // scrcode: .
        .text "8"
        .byte $42                                   // scrcode: .
        .text "z"
        .byte $43                                   // scrcode: .
        .text "t@'b"
        .byte $44                                   // scrcode: .
        .text "c"
        .byte $45,$46,$47,$48                       // scrcode: ....
        .text "#c$"
        .byte $52,$62,$63,$64,$65                   // scrcode: .....
        .text "t"
        .byte $66,$67                               // scrcode: ..
        .text "n="
        .text ">?z"
        .byte $68                                   // scrcode: .
        .text "?"
        .byte $69,$6a,$6b,$5f                       // scrcode: ....
        .text "ye=>t"
        .byte $6c,$6d                               // scrcode: ..
        .text "q"
        .byte $78,$79,$7a,$66,$7b                   // scrcode: .....
        .text "9"
        .byte $6e,$6f                               // scrcode: ..
        .text "qqqq"
        .encoding "petscii_upper"

txt_0d48:
        .text "*+,**-.*-**-.*,*/"
        .encoding "screencode_mixed"
        .text "q"
        .encoding "petscii_upper"

txt_0d5a:
        .text ".*-*+,**,.*-*+,.*,*+,*+,.*-*/"
        .encoding "screencode_mixed"
        .text "qq"
        .encoding "petscii_upper"

txt_0d79:
        .text "IJ*+,.*-K*"
        .encoding "screencode_mixed"
        .text "q.*-"
        .byte $4c,$4d                               // scrcode: ..
        .text "q"
        .encoding "petscii_upper"

txt_0d8a:
        .text "NO-*+,K*"
        .encoding "screencode_mixed"
        .text "q"
        .encoding "petscii_upper"

txt_0d93:
        .text "**,**,**,**-"
        .encoding "screencode_mixed"
        .text "q"
        .byte $70                                   // scrcode: .
        .encoding "petscii_upper"

txt_0da1:
        .text ",.*-.*-"
        .encoding "screencode_mixed"
        .byte $71,$4a                               // scrcode: ..
        .text "q"
        .encoding "petscii_upper"

txt_0dab:
        .text ".*-.*-N"
        .encoding "screencode_mixed"
        .byte $72                                   // scrcode: .
        .text "q"
        .byte $4c,$4d                               // scrcode: ..
        .text "qqqq"
        .byte $4e,$72                               // scrcode: ..
        .text "qqqq"
        .byte $7c,$7c,$7e,$80,$7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c // scrcode: ................
        .byte $7c,$7c,$7c,$82,$84,$86,$7c,$7c,$7c,$7c // scrcode: ..........
        .fill 10, $7c
        .byte $88,$89,$7c,$7c,$7d,$7d,$7f,$81,$7d,$7d,$7d,$7d,$7d,$7d,$7d,$7d // scrcode: ................
        .byte $7d,$7d,$7d,$7d,$7d,$7d,$7d,$83,$85,$87,$7d,$7d,$7d,$7d,$7d,$7d // scrcode: ................
        .byte $7d,$7d,$7d,$7d,$7d,$7d,$7d,$7d       // scrcode: ........
        .byte $7d,$8a,$7d,$7d                       // scrcode: ....
        .encoding "petscii_upper"

// --- Region $0ed4-$0edb ---
.pc = $0ed4 "scr_0ed4"

scr_0ed4:
        // === Screen RAM (8 bytes, $0ed4-$0edb) ===
        .encoding "screencode_mixed"
        .byte $a9                                   // scrcode: .
        .text "a"
        .byte $8d,$d5                               // scrcode: ..
        .text "o"
        .byte $4c,$1e                               // scrcode: ..
        .text "o"
        .encoding "petscii_upper"

// --- Region $0fbe-$0fd9 ---
.pc = $0fbe "scr_0fbe"

scr_0fbe:
        .text "76HG,*"
        .encoding "screencode_mixed"
        .text "csc'*+@p@@@fn@kload<d"
        .encoding "petscii_upper"

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

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

txt_1805:
        .text "!#%'*,/258;?CGKOTY"
        .byte $5e,$64,$6a,$70,$77,$7e,$86,$8e,$96,$9f,$a8,$b3,$bd,$c8,$d4,$e1 // ^djpw~..........
        .byte $ee,$fd,$00,$07,$0e,$01,$02,$04,$02,$22,$1a,$37,$1a,$7a,$1a,$00 // .........".7.z..
        .byte $05,$0a,$0f,$14,$19,$1c,$24,$03,$00,$07,$03,$00,$03,$00,$08,$03 // ......$.........
        .byte $00,$04,$00,$07,$04,$00,$04,$00,$09,$04,$00,$04,$04,$08,$05,$00 // ................
        .byte $18,$0c,$00,$0c,$0c,$0c,$0c,$00,$00,$00,$00,$fb,$f4,$ef,$e8,$ff // ................
        .byte $dc,$e3,$e8,$ef,$f4,$fb,$00,$04,$04,$04,$04,$04,$02,$07,$0b,$07 // ................

tbl_lo_1877:
        .byte $0b,$87,$99,$af,$f5                   // RTS dispatch table low bytes (addr-1)

tbl_hi_187c:
        .byte $3f,$18,$18,$18,$18                   // RTS dispatch table high bytes (addr-1)
        .byte $19,$05,$0b,$23,$25,$06,$19,$81,$41,$40,$ff,$00,$40,$0a,$08,$06 // ...#%...A@..@...
        .byte $04,$05,$06,$05,$04,$06,$05,$80,$19   // .........

// --- Region $189f-$18af ---
.pc = $189f "dat_189f"

dat_189f:
        .byte $80,$80,$80,$10,$ff,$10,$30,$01,$ff,$30,$00,$30,$28,$30,$00,$80 // ......0..0.0(0..
        .byte $19                                   // .

// --- Region $18b5-$1dff ---
.pc = $18b5 "dat_18b5"

dat_18b5:
        .byte $80,$80,$80,$10,$00,$00,$18,$80,$40,$40,$80,$40,$80,$80,$80,$10 // ........@@.@....
        .byte $00,$00,$18,$80,$40,$40,$80,$40,$80,$80,$80,$10,$ff,$10,$30,$01 // ....@@.@......0.
        .byte $ff,$30,$00,$30,$28,$30,$00,$00,$00,$10,$30,$01,$ff,$30,$00,$30 // .0.0(0....0..0.0
        .byte $28,$3c,$00,$00,$00,$10,$30,$01,$ff,$30,$00,$30,$28,$30,$00,$80 // (<....0..0.0(0..
        .byte $19,$81                               // ..

txt_18f7:
        .text "A"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $18,$80                               // ..

txt_1903:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $18,$80                               // ..

txt_190f:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $ff,$00,$40,$0a,$08,$06,$04,$05,$06,$05,$04,$06,$05,$00,$40,$0a // ..@...........@.
        .byte $08,$06,$04,$05,$06,$05,$04,$06,$05,$00,$40,$0a,$08,$06,$04,$05 // ..........@.....
        .byte $06,$05,$04,$06,$05,$80,$19,$81,$41,$40,$80,$ff,$0a,$2c,$0c,$0a // ........A@...,..

txt_1949:
        .text ",'',',"
        .byte $80,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$08,$e8,$08,$00,$88 // ................
        .byte $00,$02,$00,$08,$f8,$08,$00,$88,$00,$17,$16,$00,$f9,$00,$00,$00 // ................
        .byte $00,$03,$00,$08,$ea,$08,$00,$88,$00,$04,$00,$08,$f9,$08,$08,$88 // ................
        .byte $00,$21,$20,$00,$d7,$04,$00,$40,$00,$21,$20,$00,$ad,$00,$00,$40 // .! ....@.! ....@
        .byte $00,$41,$40,$00,$d8,$04,$38,$01,$01,$41,$40,$00,$98,$04,$f4,$00 // .A@...8..A@.....
        .byte $10,$41,$40,$04,$f9,$08,$60,$41,$01,$41,$40,$00,$a9,$08,$e6 // .A@...`A.A@....

txt_19ae:
        .byte $40                                   // @ character
        .text " A"
        .byte $40                                   // @ character
        .byte $00                                   // string terminator
        .byte $8b,$04,$a0,$00,$00,$05,$00,$00,$f8,$08,$00,$88,$00,$41,$40,$00 // .............A@.
        .byte $a9,$04,$00,$40,$00,$09,$42,$83,$2c,$0a,$32,$04,$00,$00 // ...@..B.,.2...

txt_19d1:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $c0                                   // '@' | $80 (end-of-string marker)
        .byte $40,$40,$f1,$00,$a1,$a1,$a1,$a2,$c0,$40,$80,$00,$00,$00,$00,$00 // @@.......@......
        .byte $0a,$00,$00,$09,$0a,$0d,$0c,$0e,$00,$00,$00,$00,$00,$00,$00,$06 // ................
        .byte $00,$00,$04,$04,$04,$08,$03,$00,$00,$02,$02,$02,$02,$02,$02,$00 // ................
        .byte $02,$00,$00,$00,$00,$02,$02,$02,$0e,$1a,$10,$1a,$1f,$f0,$94,$81 // ................
        .byte $68,$32,$18,$1a,$07,$10,$05,$01,$02,$04,$04,$02,$ff,$02,$90,$41 // h2.............A
        .byte $03,$41,$07,$41,$0b,$41,$03,$41,$0b,$05,$06,$07,$92,$07,$41,$0b // .A.A.A.A......A.
        .byte $05,$06,$ff,$84,$41,$01,$02,$90,$05,$06,$05,$06,$08,$06,$08,$06 // ....A...........
        .byte $05,$06,$05,$06,$08,$06,$08,$06,$05,$06,$08,$06,$05,$06,$08,$06 // ................
        .byte $41,$02,$05,$06,$08,$06,$05,$06,$08,$06,$0e,$05,$06,$05,$06,$08 // A...............
        .byte $06,$08,$06,$92,$05,$06,$05,$06,$08,$06,$08,$06,$05,$06,$08,$06 // ................
        .byte $05,$06,$08,$06,$0e,$ff,$90,$04,$0f,$09,$0a,$09,$0a,$8e,$09,$90 // ................
        .byte $09,$8e,$09,$90,$09,$09,$0a,$09,$0a,$8e,$09,$90,$09,$8e,$09,$90 // ................
        .byte $09,$41,$0c,$41,$04,$41,$0c,$09,$0a,$90,$09,$0a,$09,$0a,$8e,$09 // .A.A.A..........
        .byte $90,$09,$8e,$09,$90,$09,$92,$09,$0a,$09,$0a,$90,$09,$92,$09,$90 // ................
        .byte $09,$92,$09,$41,$0c,$09,$0a,$ff,$dc,$e0,$02,$38,$92,$af,$c9,$e4 // ...A.......8....
        .byte $56,$70,$83,$97,$d6,$79,$1f,$45,$1a,$1a,$1b,$1b,$1b,$1b,$1b,$1b // Vp...y.E........
        .byte $1c,$1c,$1c,$1c,$1c,$1c,$1d,$1d,$c0,$90,$00,$ff,$c1,$84,$10,$c3 // ................
        .byte $30,$c1,$10,$c3,$36,$c1,$10,$c3,$3c,$c1,$10,$c3,$42,$c1,$10,$c3 // 0...6...<...B...
        .byte $48,$c1,$10,$c3,$42,$c1,$10,$c3,$3c,$c1,$10,$c3,$36,$ff,$c5,$88 // H...B...<...6...
        .byte $0c,$c4,$8c,$2c,$c5,$84,$0c,$c4,$88,$2c,$c5,$88,$0c,$c4,$8c,$2c // ...,.....,.....,
        .byte $c5,$84,$0c,$c4,$86,$2c,$82,$2c,$c5,$88,$0c,$c4,$8c,$2c,$c5,$84 // .....,.,.....,..
        .byte $0c,$c4,$88,$2c,$c5,$88,$0c,$c4,$8c,$2c,$c5,$84,$0c,$c4,$84,$2c // ...,.....,.....,
        .byte $82,$2c,$2c,$ff,$cc,$82,$e1,$30,$30,$84,$30,$30,$82,$30,$84,$30 // .,,....00.00.0.0
        .byte $82,$30,$88,$30,$82,$e3,$2e,$e1,$30,$82,$e2,$30,$30,$84,$30,$30 // .0.0....0..00.00
        .byte $82,$30,$84,$30,$82,$30,$88,$30,$82,$e3,$33,$e2,$30,$82,$e1,$30 // .0.0.0.0..3.0..0
        .byte $30,$84,$30,$30,$82,$e3,$2e,$e1,$84,$30,$82,$e3,$2e,$e1,$88,$30 // 0.00.....0.....0
        .byte $82,$e2,$30,$e1,$30,$82,$e3,$2e,$2e,$84,$2e,$2e,$82,$e3,$2c,$e3 // ..0.0.........,.
        .byte $84,$2e,$82,$e3,$2c,$e3,$88,$2e,$82,$e3,$2e,$e1,$30,$ff,$c8,$a0 // ....,.......0...
        .byte $f0,$00,$0c,$07,$0c,$f0,$00,$0c,$03,$08,$f0,$00,$0c,$07,$0c,$90 // ................
        .byte $f0,$00,$10,$02,$07,$f0,$00,$0c,$05,$0a,$ff,$c1,$84,$10,$c6,$e1 // ................
        .byte $30,$c2,$2c,$c6,$82,$30,$c1,$10,$10,$c6,$30,$c1,$10,$c6,$30,$c2 // 0.,..0....0...0.
        .byte $84,$2c,$c6,$30,$ff,$c1,$84,$10,$c6,$e1,$30,$c2,$2c,$c6,$82,$30 // .,.0......0.,..0
        .byte $c1,$10,$10,$c6,$30,$c1,$10,$c6,$30,$c2,$84,$2c,$82,$2c,$2c,$ff // ....0...0..,.,,.
        .byte $c9,$84
        .text "00.+"
        .byte $88
        .byte $30,$32,$82
        .byte $33,$33,$84

txt_1bf1:
        .text "20.0"
        .byte $ce                                   // 'N' | $80 (end-of-string marker)
        .byte $e6
        .byte $27,$26,$24,$e0,$c9,$82
        .byte $30,$30,$84
        .text ".023"
        .byte $82
        .byte $35
        .byte $86,$37,$84,$37,$82,$3a,$3a,$84,$37,$3c,$82,$3a,$84,$37,$ce,$82 // .7.7.::.7<.:.7..
        .byte $e6                                   // .

txt_1c17:
        .text ".+)+)+."
        .byte $e0,$c9,$82
        .text "7532"
        .byte $84
        .byte $33,$32,$33,$82
        .byte $32,$84
        .byte $33,$82
        .byte $32,$33,$35,$82                       // 235.

txt_1c32:
        .text "77878758"
        .byte $90
        .byte $37,$82
        .text "7532"
        .byte $84
        .byte $33,$82
        .byte $32,$84
        .byte $33,$82
        .byte $32,$33
        .byte $35,$84
        .text "320.0"
        .byte $82
        .byte $32,$92
        .byte $30,$ff,$c1,$84,$10,$c6
        .byte $e3,$2e,$c2,$2c,$c6,$82,$2e,$c1,$10,$10,$c6,$2e,$c1,$10,$c6,$2e // ...,............
        .byte $c2,$84,$2c,$c6,$2e,$ff,$ca,$86,$0c,$82,$0c,$18,$07,$84,$0a,$ca // ..,.............
        .byte $86,$0c,$82,$0c,$18,$07,$84,$0a,$ff,$ca,$86,$0c,$82,$0c,$18,$07 // ................
        .byte $84,$0a,$82,$07,$07,$84,$07,$82,$0a,$0a,$84,$0a,$ff,$cb,$86,$f0 // ................
        .byte $00,$08
        .byte $35,$37,$30,$f0,$00,$08
        .byte $37,$38,$37,$84
        .text "5353"
        .byte $82,$35,$33,$35,$92,$37,$84,$35,$82,$33,$84,$35,$82,$33,$84,$35 // .535.7.5.3.5.3.5
        .byte $84,$37,$84,$37,$3a,$f0,$00,$08,$3a,$3c,$90,$f0,$00,$08,$3a,$3c // .7.7:...:<....:<
        .byte $82,$ce,$e6                           // ...

txt_1ccd:
        .text "+)+)'&$"
        .byte $22                                   // double quote character
        .byte $ff,$ca,$84,$0c,$82,$0c,$0c,$18,$84,$0c,$0c,$82,$0c,$0c,$0c,$18 // ................
        .byte $0c,$0c,$18,$84,$0c,$82,$0c,$0c,$18,$84,$0c,$82,$18,$84,$07,$82 // ................
        .byte $07,$07,$84,$0a,$82,$0a,$0c,$84,$0a,$82,$0a,$0a,$16,$84,$0a,$0a // ................
        .byte $82,$07,$07,$07,$13,$07,$0a,$16,$84,$0c,$82,$0c,$0c,$18,$84,$0c // ................
        .byte $0c,$82,$0c,$0c,$0c,$18,$0c,$0c,$18,$ff,$c7,$88,$f0,$00,$28,$40 // ..............(@
        .byte $2c,$f0,$00,$28,$3e,$2a,$f0,$00,$28,$3c,$28,$f0,$00,$28,$3a,$26 // ,..(>*..(<(..(:&
        .byte $84,$cd,$03,$03,$03,$03,$82,$03,$84,$03,$82,$03,$84,$03,$03,$ff // ................
        .byte $c8,$a0,$e7,$0c,$08,$0c,$90,$07,$0a,$ff,$02,$04,$20,$00,$02,$04 // ............ ...
        .byte $20,$02,$02,$02,$00,$00,$00,$0c,$01,$08,$60,$08,$40,$02,$01,$00 //  .........`.@...
        .byte $30,$10,$07,$00,$40,$00,$10,$04,$10,$03,$01,$04,$04,$03,$07,$03 // 0...@...........
        .byte $03,$02,$22,$37,$7a,$1a,$1a,$1a,$01,$01,$00,$41,$81,$41,$00,$00 // .."7z......A.A..
        .byte $00,$00,$00,$00,$05,$02,$00,$10,$07,$00,$00,$88,$01,$c0,$40,$a1 // ..............@.
        .byte $03,$00,$00,$03,$00,$00,$01,$00,$00,$3c,$a3,$10,$32,$42,$04,$00 // .........<..2B..
        .byte $00,$1c,$00,$00,$00,$4b,$72,$1c,$01,$01,$00,$00,$00,$00,$00,$00 // .....Kr.........
        .byte $0c,$3c,$26,$0c,$01,$11,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00 // .<&.............
        .byte $01,$00,$00,$31,$00,$00,$00,$00,$00,$2e,$00,$00,$00,$00,$00,$00 // ...1............
        .byte $00,$00,$a0,$00,$38,$04,$08,$04,$00,$00,$00,$00,$00,$00,$00,$00 // ....8...........
        .byte $00,$84,$10,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // ................
        .fill 11, $00

// --- Region $1ebc-$1ec6 ---
.pc = $1ebc "dat_1ebc"

dat_1ebc:
        // === Data block (11 bytes, $1ebc-$1ec6) ===
        .byte $11,$11,$11,$11,$11,$11,$02,$10,$02,$10 // ..........

dat_1ec6:
        // === Fill data (1 bytes, $1ec6-$1ec6) ===
        .byte $00                                   // .

// --- Region $1ffd-$2000 ---
.pc = $1ffd "dat_1ffd"

dat_1ffd:
        .byte $10,$0f,$0e                           // ...

dat_2000:
        // === Fill data (1 bytes, $2000-$2000) ===
        .byte $00                                   // .

// --- Region $2090-$20b0 ---
.pc = $2090 "dat_2090"

dat_2090:
        .byte $05,$07,$07,$07,$05,$07,$05,$05,$aa,$ff,$ea,$a0,$80,$80,$00,$00 // ................
        .byte $aa,$ff,$0a,$02,$02,$02,$02,$02,$40,$80,$c0,$c0,$c0,$c0,$c0,$c0 // ........@.......

dat_20b0:
        // === Fill data (1 bytes, $20b0-$20b0) ===
        .byte $00                                   // .

// --- Region $2145-$28a7 ---
.pc = $2145 "dat_2145"

dat_2145:
        .byte $01,$05,$05,$00,$00,$00,$00,$00,$55,$77,$00,$00,$00,$00,$00,$00 // ........Uw......
        .byte $55,$ff,$00,$00,$00,$00,$00,$00,$45,$5f,$70,$00,$00,$00,$00,$00 // U.......E_p.....
        .byte $a0,$fa,$0f,$00,$00,$00,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00 // ................
        .byte $01,$05,$05,$00,$00,$00,$00,$00,$55,$77,$00,$00,$00,$00,$00,$00 // ........Uw......
        .byte $55,$ff,$03,$00,$00,$00,$00,$00,$01,$45,$c5,$00,$00,$00,$00,$00 // U........E......
        .byte $55,$77,$00,$00,$00,$00,$00,$00,$55,$ff,$03,$00,$00,$00,$00,$00 // Uw......U.......
        .byte $00,$40,$c0,$00,$00,$00,$00,$00,$00,$01,$07,$00,$00,$00,$00,$00 // .@..............
        .byte $15,$7f,$c0,$00,$00,$00,$00,$00,$aa,$ff,$20,$00,$00,$00,$00,$00 // .......... .....
        .byte $a0,$fa,$0f,$00,$00,$00,$00,$00,$00,$00,$80,$05,$05,$05,$05,$05 // ................
        .byte $05,$05,$05,$00,$00,$00,$00,$00,$00,$02,$08,$02,$02,$02,$02,$22 // ..............."
        .byte $8a,$22,$8a,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$00,$00,$00,$00,$00 // ."..............
        .byte $00,$01,$07,$00,$00,$00,$00,$00,$15,$7f,$c0,$00,$00,$00,$00,$00 // ................
        .byte $aa,$ff,$20,$00,$00,$00,$00,$00,$a0,$fa,$0f,$00,$00,$00,$00,$00 // .. .............
        .byte $00,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // ................
        .byte $05,$07,$07,$00,$00,$00,$00,$00,$55,$ff,$00,$00,$00,$00,$00,$00 // ........U.......
        .byte $aa,$ff,$22,$00,$00,$00,$00,$00,$a0,$fa,$0f,$00,$00,$00,$00,$00 // ..".............
        .byte $00,$00,$80,$00,$00,$00,$00,$00,$01,$05,$05,$00,$00,$00,$00,$00 // ................
        .byte $55,$77,$00,$00,$00,$00,$00,$00,$55,$ff,$00,$00,$00,$00,$00,$00 // Uw......U.......
        .byte $8a,$af,$b0,$00,$00,$00,$00,$00,$a0,$fa,$0f,$00,$00,$00,$00,$00 // ................
        .byte $00,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$07,$05,$07,$07,$07 // ................
        .byte $07,$07,$07,$02,$08,$22,$8a,$22,$8a,$ab,$2b,$54,$75,$5d,$77,$ff // ....."."..+Tu]w.
        .byte $fb,$ee,$ba,$44,$14,$d5,$75,$fd,$bf,$ef,$bb,$10,$44,$11,$54,$d5 // ...D..u.....D.T.
        .byte $75,$dd,$77,$d0,$34,$1c,$45,$17,$57,$7d,$fd,$07,$05,$07,$07,$07 // u.w.4.E.W}......
        .byte $07,$47,$c7,$01,$04,$11,$45,$11,$45,$57,$17,$55,$75,$5d,$75,$fd // .G....E.EW.Uu]u.
        .byte $f9,$ed,$b9,$c7,$c5,$c7,$c7,$c7,$c7,$c7,$c7,$01,$04,$11,$45,$11 // ..............E.
        .byte $45,$57,$17,$55,$75,$5d,$75,$fd,$f9,$ed,$b9,$c0,$c0,$c0,$c1,$c1 // EW.Uu]u.........
        .byte $c1,$c7,$c7,$1c,$70,$71,$c4,$d1,$c5,$15,$47,$10,$45,$15,$57,$5d // ....pq....G.E.W]
        .byte $77,$ff,$7b,$44,$14,$55,$75,$fd,$ff,$ef,$bb,$10,$44,$11,$54,$d5 // w.{D.Uu.....D.T.
        .byte $75,$dd,$77,$d0,$34,$1c,$45,$17,$57,$7d,$fd,$07,$05,$07,$07,$07 // u.w.4.E.W}......
        .byte $07,$47,$c7,$02,$08,$22,$8a,$22,$8a,$ab,$2b,$55,$75,$5d,$75,$fd // .G..."."..+Uu]u.
        .byte $f9,$ed,$b9,$c0,$c0,$c0,$c1,$c1,$c1,$c7,$c7,$1c,$70,$71,$c4,$d1 // ............pq..
        .byte $c5,$15,$47,$10,$45,$15,$57,$5d,$77,$ff,$7b,$44,$14,$55,$75,$fd // ..G.E.W]w.{D.Uu.
        .byte $ff,$ef,$bb,$10,$44,$11,$54,$d5,$75,$dd,$77,$d0,$34,$1c,$45,$17 // ....D.T.u.w.4.E.
        .byte $57,$7d,$fd,$00,$00,$00,$00,$00,$00,$40,$c0,$07,$07,$07,$07,$07 // W}.......@......
        .byte $0e,$07,$0e,$04,$11,$04,$11,$45,$17,$7f,$1f,$44,$10,$45,$55,$dd // .......E...D.EU.
        .byte $7f,$ef,$fb,$10,$44,$11,$54,$d5,$75,$dd,$f7,$d0,$34,$1c,$45,$17 // ....D.T.u...4.E.
        .byte $57,$7d,$fd,$07,$05,$07,$07,$07,$07,$47,$c7,$01,$04,$11,$45,$11 // W}.......G....E.
        .byte $45,$57,$17,$44,$55,$5d,$77,$ff,$fb,$ee,$ba,$44,$14,$d5,$75,$fd // EW.DU]w....D..u.
        .byte $bf,$ef,$bb,$10,$44,$11,$54,$d5,$75,$dd,$77,$d0,$34,$1c,$45,$17 // ....D.T.u.w.4.E.
        .byte $57,$7d,$fd,$00,$00,$00,$00,$00,$00,$40,$c0,$07,$07,$07,$07,$0f // W}.......@......
        .byte $07,$0f,$0e,$5f,$57,$5f,$7e,$5f,$7e,$5e,$7e,$ea,$ab,$a9,$a9,$a9 // ..._W_~_~^~.....
        .byte $a9,$a9,$a9,$ff,$03,$f5,$cf,$c7,$ce,$cf,$ce,$ff,$fe,$7f,$7e,$7b // ..............~{
        .byte $7e,$7b,$7e,$b9,$e9,$a9,$a9,$a9,$a9,$a9,$a9,$c7,$c7,$c7,$c7,$cf // ~{~.............
        .byte $c7,$cf,$ce,$5f,$57,$5f,$7e,$5f,$7e,$de,$7e,$e9,$a9,$a9,$a9,$a9 // ..._W_~_~.~.....
        .byte $a9,$a9,$a9,$c7,$c7,$c7,$c7,$cf,$c7,$cf,$ce,$5f,$57,$5f,$7e,$5f // ..........._W_~_
        .byte $7e,$de,$7e,$e9,$a9,$a9,$a9,$a9,$a9,$a9,$a9,$c7,$c7,$c7,$c7,$cf // ~.~.............
        .byte $c7,$cf,$ce,$5f,$57,$5f,$57,$5f,$7e,$de,$7e,$ee,$ba,$e9,$a9,$a9 // ..._W_W_~.~.....
        .byte $a9,$a9,$a9,$bf,$41,$75,$cf,$c7,$ce,$cf,$ce,$ff,$fe,$ff,$fe,$7b // ....Au.........{
        .byte $fe,$7b,$7e,$b9,$e9,$a9,$a9,$a9,$a9,$ad,$bd,$c7,$c7,$c7,$c7,$cf // .{~.............
        .byte $c7,$cf,$ce,$5f,$57,$5f,$7e,$5f,$7e,$de,$7e,$e9,$a9,$a9,$a9,$a9 // ..._W_~_~.~.....
        .byte $a9,$a9,$a9,$c7,$c7,$c7,$c7,$cf,$c7,$cf,$ce,$5f,$57,$5f,$57,$5f // ..........._W_W_
        .byte $7e,$df,$7e,$ee,$ba,$e9,$a9,$a9,$a9,$a9,$a9,$be,$41,$75,$cf,$c7 // ~.~.........Au..
        .byte $4e,$4f,$4e,$ff,$fe,$ff,$fe,$fb,$ee,$fa,$ee,$b9,$e9,$a9,$a9,$a9 // NON.............
        .byte $a9,$a9,$a9,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$0e,$0b,$0f,$00,$00 // ................
        .byte $00,$00,$00,$55,$00,$ff,$00,$00,$00,$00,$00,$56,$01,$f5,$0f,$07 // ...U.......V....
        .byte $0e,$0f,$0e,$ff,$ee,$bb,$ee,$bb,$ee,$fa,$ee,$b9,$ed,$a9,$a9,$a9 // ................
        .byte $a9,$a9,$a9,$c7,$c7,$c7,$c7,$cf,$c7,$cf,$ce,$5f,$57,$5f,$7e,$5f // ..........._W_~_
        .byte $7e,$5e,$7e,$ea,$ab,$a9,$a9,$a9,$a9,$a9,$a9,$ff,$01,$f5,$cf,$c7 // ~^~.............
        .byte $ce,$cf,$ce,$ff,$fe,$ff,$fe,$7b,$fe,$7b,$7e,$b9,$e9,$a9,$a9,$a9 // .......{.{~.....
        .byte $a9,$ad,$bd,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$0f,$0e,$0e,$0d,$0e // ................
        .byte $0d,$0d,$0d,$7a,$fe,$7a,$fe,$fa,$ee,$fb,$fe,$a9,$a9,$ab,$a9,$af // ...z.z..........
        .byte $af,$ad,$a4,$ce,$cd,$8e,$cd,$8d,$8d,$8e,$ce,$7a,$fe,$7a,$fe,$fa // ...........z.z..
        .byte $ee,$fb,$7e,$ab,$a9,$ab,$ab,$ab,$af,$ad,$f4,$cf,$ce,$8e,$cd,$8e // ..~.............
        .byte $8d,$8d,$8d,$7a,$fe,$7a,$fe,$fa,$ee,$fb,$7e,$ab,$a9,$ab,$ab,$af // ...z.z....~.....
        .byte $af,$ad,$a4,$cf,$ce,$8e,$cd,$8e,$8d,$8d,$8d,$7a,$fe,$7a,$fe,$fa // ...........z.z..
        .byte $ee,$fb,$7e,$ab,$a9,$ab,$ab,$ab,$ad,$ac,$a4,$cf,$ce,$8e,$cd,$8e // ..~.............
        .byte $8d,$8d,$8d,$7a,$fe,$7a,$fe,$fa,$ee,$fb,$7e,$ab,$a9,$ab,$ab,$af // ...z.z....~.....
        .byte $af,$ad,$a4,$cf,$cd,$87,$c0,$80,$80,$80,$80,$55,$00,$ff,$00,$00 // ...........U....
        .byte $00,$00,$00,$54,$01,$fd,$00,$00,$00,$00,$00,$cf,$ce,$0e,$0d,$0e // ...T............
        .byte $0d,$0d,$0d,$7a,$fe,$7a,$fe,$fa,$ee,$fb,$7e,$ab,$a9,$ab,$ab,$af // ...z.z....~.....
        .byte $af,$ad,$a4,$8a,$8a,$8a,$89,$8a,$89,$89,$89,$bb,$fe,$ba,$fe,$fa // ................
        .byte $ee,$fb,$7e,$ab,$aa,$ab,$ab,$aa,$aa,$ab,$ad,$8e,$ca,$aa,$ff,$aa // ..~.............
        .byte $aa,$fb,$5f,$ba,$ea,$aa,$aa,$aa,$aa,$ba,$be,$ab,$a9,$ab,$ab,$af // .._.............
        .byte $ad,$ac,$a4,$c0,$c0,$80,$c0,$80,$80,$80,$c1,$00,$00,$00,$03,$0e // ................
        .byte $2f,$a7,$97,$00,$00,$7a,$af,$bb,$ee,$ea,$ab,$0f,$07,$ab,$fe,$ba // /....z..........
        .byte $aa,$aa,$ff,$ba,$ea,$ba,$ea,$aa,$aa,$ea,$ea,$aa,$ab,$a9,$ab,$af // ................
        .byte $af,$bd,$b4,$cf,$ce,$ce,$8d,$ce,$8d,$8d,$cd,$7a,$fe,$7a,$fe,$fa // ...........z.z..
        .byte $ee,$fb,$fe,$a9,$a9,$ab,$a9,$af,$af,$ad,$a4,$cf,$cd,$87,$c0,$85 // ................
        .byte $87,$87,$c6,$55,$00,$ff,$00,$55,$67,$b7,$76,$54,$01,$fd,$00,$50 // ...U...Ug.vT...P
        .byte $d4,$74,$f4,$c0,$c0,$00,$00,$00,$00,$00,$00,$09,$0a,$00,$02,$0a // .t..............
        .byte $0b,$0e,$0f,$7f,$1f,$00,$00,$00,$50,$41,$05,$f0,$50,$00,$00,$00 // ........PA..P...
        .byte $40,$10,$44,$4a,$09,$00,$41,$06,$4a,$4e,$4e,$5f,$15,$00,$00,$00 // @.DJ..A.JNN_....
        .byte $00,$01,$15,$f4,$40,$00,$00,$10,$44,$10,$54,$8a,$40,$00,$05,$4a // ....@...D.T.@..J
        .byte $0e,$4e,$4e,$3f,$15,$00,$00,$00,$01,$44,$15,$f0,$40,$00,$00,$00 // .NN?.....D..@...
        .byte $00,$44,$11,$8a,$44,$00,$02,$4a,$0b,$4e,$4f,$3f,$15,$00,$00,$40 // .D..D..J.NO?...@
        .byte $50,$01,$15,$f0,$40,$00,$00,$10,$44,$10,$54,$4a,$00,$00,$05,$4a // P...@...D.TJ...J
        .byte $0e,$4e,$4e,$3f,$15,$00,$00,$00,$01,$44,$15,$f0,$40,$01,$05,$00 // .NN?.....D..@...
        .byte $00,$44,$11,$80,$40,$00,$00,$40,$00,$40,$4a // .D..@..@.@J

spr_26c0:
        .byte $00,$00,$00,$00,$00,$00,$00,$99,$00,$00,$00,$00,$00,$00,$00,$55 // ...............U
        .byte $0a,$00,$00,$05,$0a,$0e,$0e,$4e,$1f,$01,$00,$14,$00,$01,$44,$15 // .......N......D.
        .byte $f0,$40,$00,$00,$00,$00,$44,$10,$8a,$40,$00,$05,$4a,$0e,$4e,$4e // .@....D..@..J.NN
        .byte $3f,$15,$00,$10,$54,$01,$44,$15,$d4,$40,$00,$00,$00,$01,$44,$10 // ?...T.D..@....D.
        .byte $05,$00,$00,$00,$01,$10,$00,$55,$7f,$15,$00,$00,$00,$11,$00,$55 // .......U.......U
        .byte $f0,$40,$00,$00,$40,$10,$01,$55,$41,$02,$00,$45,$0a // .@..@..UA..E.

txt_271d:
        .text "NOO"
        .byte $c5                                   // 'E' | $80 (end-of-string marker)
        .byte $80,$00,$50,$40,$01,$44,$11,$ff,$55,$00,$00,$00,$00 // ..P@.D..U....

txt_272e:
        .text "DQ"
        .byte $d5                                   // 'U' | $80 (end-of-string marker)
        .byte $44,$00,$00,$00,$00,$11,$55,$7f,$15,$00,$00,$00,$40,$11,$45,$f4 // D.....U.....@.E.
        .byte $50,$10,$00,$00,$40,$10,$44,$09,$0a,$00,$42,$0a,$4b,$4e,$4f,$7f // P...@.D...B.KNO.
        .byte $1f,$00,$00,$00,$50,$41,$05,$f0,$50,$00,$00,$00,$40,$10,$44,$45 // ....PA..P...@.DE
        .byte $00,$00,$80,$00,$80,$80,$80,$55,$00,$00,$00,$00,$00,$00,$00,$54 // .......U.......T
        .fill 15, $00
        .byte $0f,$0f,$0f,$0f,$0f,$0d,$0f,$0d,$12,$59,$66,$99,$6a,$ab,$ee,$bb // .........Yf.j...
        .byte $54,$98,$65,$98,$a5,$a9,$ba,$a9
        .text "NONOO"
        .byte $8f
        .byte $4f,$8f
        .byte $45,$19,$56,$99,$66,$aa,$ba,$ab,$65,$94,$65,$99,$a5,$aa,$ed,$ba // E.V.f...e.e.....
        .byte $4f,$4e,$4f,$8f,$4f,$8f,$8f,$8f,$55,$66,$99,$66,$aa,$ae,$bb,$ee // ONO.O...Uf.f....
        .byte $54,$65,$99,$a9,$a9,$ee,$b9,$ef,$4f,$4f,$4f,$8f,$4f,$8f,$9b,$7e // Te......OOO.O..~
        .byte $45,$19,$56,$99,$66,$aa,$ba,$ab,$64,$94,$65,$98,$a5,$a9,$ee,$b9 // E.V.f...d.e.....
        .byte $4f,$4e,$4f,$8f,$4f,$8f,$8f,$8f,$55,$66,$99,$66,$aa,$ae,$bb,$ee // ONO.O...Uf.f....
        .byte $54,$65,$99,$a9,$a9,$ee,$b9,$ef,$4b,$4f,$4b,$8f,$4f,$8f,$8f,$5e // Te......KOK.O..^
        .byte $ff,$00,$99,$aa,$aa,$ee,$bb,$ee,$fe,$00,$99,$64,$a9,$e9,$ba,$ed // ...........d....
        .byte $4f,$4e,$4f,$8f,$4f,$8f,$8f,$8f,$55,$66,$99,$66,$6a,$ab,$ee,$bb // ONO.O...Uf.fj...
        .byte $54,$65,$98,$a9,$a5,$a9,$ba,$a9
        .text "ONOOO"
        .byte $8f
        .byte $4f,$8f
        .byte $55,$66,$99,$66,$aa,$ae,$bb,$ee,$54,$64,$98,$a9,$a8,$ed,$b9,$ed // Uf.f....Td......

txt_2840:
        .text "P"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $aa                                   // '*' | $80 (end-of-string marker)
        .byte $00,$00,$00,$00,$00,$00,$00,$65,$00,$00,$00,$00,$00,$00,$00,$55 // .......e.......U
        .fill 8, $0f
        .byte $55,$66,$99,$aa,$aa,$ae,$bb,$ee,$54,$64,$99,$65,$a9,$ee,$b9,$ef // Uf......Td.e....
        .byte $6a,$4a,$4e,$8f,$4f,$8f,$9b,$7e,$12,$59,$66,$99,$66,$aa,$ba,$ab // jJN.O..~.Yf.f...
        .byte $54,$98,$65,$98,$a5,$a9,$ee,$b9,$4f,$4f,$4f,$8f,$4f,$8f,$8f,$8f // T.e.....OOO.O...
        .byte $12,$59,$66,$99,$6a,$ab,$ee,$bb,$54,$98,$65,$98,$a5,$a9,$ba,$a9 // .Yf.j...T.e.....
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $80
        .byte $40,$80

// --- Region $28c0-$29e7 ---
.pc = $28c0 "dat_28c0"

dat_28c0:
        .byte $0d,$0d,$0d,$0d,$0f,$0d,$0f,$0e,$ee,$fb,$bf,$fe,$f7,$ff,$df,$f7 // ................
        .byte $ee,$ba,$ee,$fe,$fe,$f6,$7e,$f6,$8d,$8f,$8d,$cd,$8f,$cd,$cf,$cf // ......~.........
        .byte $ee,$bb,$ef,$fe,$ff,$7f,$f7,$7f,$ee,$be,$fa,$fe,$7e,$fe,$de,$7e // ............~..~
        .byte $8d,$cf,$8d,$cd,$cf,$cd,$cf,$cf,$af,$fb,$ee,$ff,$fb,$ff,$77,$5f // ..............w_
        .byte $ba,$ff,$ee,$ff,$fb,$fe,$7f,$f7,$55,$bb,$ee,$bf,$fb,$ff,$fd,$df // ........U.......
        .byte $ee,$bb,$ef,$fe,$ff,$df,$f7,$df,$ee,$be,$fa,$fe,$7e,$fe,$de,$7e // ............~..~
        .byte $8d,$cf,$8d,$cd,$cf,$cd,$cf,$cf,$af,$fb,$ee,$ff,$fb,$ff,$77,$5f // ..............w_
        .byte $ba,$ff,$ee,$ff,$fb,$fe,$7f,$f7,$57,$be,$eb,$bf,$ff,$fe,$ff,$df // ........W.......
        .byte $bb,$ff,$ee,$ff,$fe,$ff,$f7,$7f,$ea,$be,$ee,$fe,$fe,$fe,$7e,$de // ..............~.
        .byte $8d,$cf,$8d,$cd,$cf,$cd,$cf,$ce,$ee,$fb,$bf,$fe,$f7,$ff,$df,$f7 // ................
        .byte $ee,$ba,$ee,$fe,$fe,$f6,$7e,$f6,$8d,$8f,$8d,$cd,$8f,$cd,$cf,$cf // ......~.........
        .byte $af,$fb,$ee,$ff,$fb,$ff,$77,$5f,$bb,$fe,$ef,$ff,$fb,$ff,$7d,$f7 // ......w_......}.

spr_2980:
        .byte $ff,$ff,$ee,$ff,$bf,$fd,$f7,$7d,$ff,$bf,$fb,$ff,$ef,$ff,$df,$fd // .......}........
        .byte $fa,$ea,$ba,$fb,$ea,$fb,$7b,$fb,$0d,$0f,$0d,$0d,$0f,$0d,$0f,$0f // ......{.........
        .byte $af,$fb,$ee,$ff,$fb,$ff,$77,$5f,$ba,$ff,$ee,$ff,$fb,$fe,$7f,$f7 // ......w_........
        .byte $55,$bb,$ee,$bf,$fb,$ff,$fd,$df,$ee,$bb,$ef,$fe,$ff,$df,$f7,$df // U...............
        .byte $ee,$be,$fa,$fe,$7e,$fe,$de,$7e,$8d,$cf,$8d,$cd,$cf,$cd,$cf,$ce // ....~..~........
        .byte $ee,$fb,$bf,$fe,$f7,$ff,$df,$f7,$ee,$ba,$ee,$fe,$fe,$f6,$7e,$f6 // ..............~.
        .byte $80,$80,$80,$c0,$80,$c0,$c0,$c0       // ........

// --- Region $2a00-$2b27 ---
.pc = $2a00 "dat_2a00"

dat_2a00:
        .byte $0f,$0e,$0e,$0e,$09,$0e,$09,$09,$dd,$d7,$dd,$d5,$f5,$bf,$ae,$aa // ................
        .byte $d6,$76,$de,$5e,$7a,$fa,$ea,$aa,$ce,$cf,$ce,$ce,$c9,$8e,$c9,$89 // .v.^z...........
        .byte $5d,$77,$dd,$d5,$b5,$bf,$ae,$aa,$de,$5e,$de,$5e,$7e,$fa,$ea,$aa // ]w.......^.^~...
        .byte $ce,$ce,$c6,$c7,$c2,$81,$c0,$80,$f7,$d5,$b7,$bd,$ef,$ab,$8a,$22 // ..............."
        .byte $7f,$dd,$77,$5d,$55,$f7,$fe,$aa,$77,$dd,$77,$75,$fd,$ef,$aa,$8a // ..w]U...w.wu....
        .byte $7d,$d7,$5d,$55,$55,$ff,$ae,$aa,$de,$5e,$de,$5e,$7e,$fa,$ea,$aa // }.]UU....^.^~...
        .byte $ce,$ce,$c6,$c7,$c2,$81,$c0,$80,$f7,$d5,$b7,$bd,$ef,$ab,$8a,$22 // ..............."
        .byte $7f,$dd,$77,$5d,$55,$f7,$be,$aa,$77,$dd,$77,$55,$dd,$77,$ee,$aa // ..w]U...w.wU.w..
        .byte $f7,$dd,$77,$55,$57,$ff,$ee,$aa,$7e,$5b,$7b,$ea,$ea,$a8,$b8,$20 // ..wUW...~[{.... 
        .byte $cf,$4e,$0e,$0e,$09,$0e,$09,$09,$dd,$d7,$dd,$d5,$f5,$bf,$ae,$aa // .N..............
        .byte $d6,$76,$de,$5e,$7a,$fa,$ea,$aa,$ce,$ce,$c6,$c7,$c2,$81,$c0,$80 // .v.^z...........
        .byte $f7,$d5,$b7,$bd,$ef,$ab,$8a,$22,$7f,$dd,$77,$5d,$55,$f7,$fe,$aa // ......."..w]U...
        .byte $f5,$dd,$77,$d5,$55,$7f,$ef,$aa,$77,$dd,$77,$55,$d5,$ff,$bb,$aa // ..w.U...w.wU....
        .byte $7b,$7b,$7b,$7b,$fb,$ea,$ab,$aa,$0e,$0a,$06,$07,$02,$01,$00,$00 // {{{{............
        .byte $f7,$d5,$b7,$bd,$ef,$ab,$8a,$22,$7f,$dd,$77,$5d,$55,$f7,$fe,$aa // ......."..w]U...
        .byte $77,$dd,$77,$75,$fd,$ef,$aa,$8a,$7d,$d7,$5d,$55,$55,$ff,$ae,$aa // w.wu....}.]UU...
        .byte $de,$5e,$de,$5e,$7e,$fa,$ea,$aa,$cf,$ce,$ce,$ce,$c9,$8e,$c9,$89 // .^.^~...........
        .byte $dd,$d7,$dd,$d5,$f5,$bf,$ae,$aa,$d6,$76,$de,$5e,$7a,$fa,$ea,$aa // .........v.^z...
        .byte $c0,$c0,$c0,$c0,$c0,$80,$c0,$80       // ........

// --- Region $2b40-$2c62 ---
.pc = $2b40 "dat_2b40"

dat_2b40:
        .byte $08,$09,$06,$00,$00,$00,$00,$00,$55,$00,$aa,$00,$00,$00,$00,$00 // ........U.......
        .byte $54,$01,$a9,$00,$00,$00,$00,$00,$88,$49,$46,$00,$00,$00,$00,$00 // T........IF.....
        .byte $55,$00,$aa,$00,$00,$00,$00,$00,$54,$01,$a9,$00,$00,$00,$00,$00 // U.......T.......
        .byte $80,$40,$40,$00,$00,$00,$00,$00,$08,$02,$00,$00,$00,$00,$00,$00 // .@@.............
        .byte $55,$40,$6a,$00,$00,$00,$00,$00,$41,$20,$9a,$00,$00,$00,$00,$00 // U@j.....A ......
        .byte $55,$00,$aa,$00,$00,$00,$00,$00,$54,$01,$a9,$00,$00,$00,$00,$00 // U.......T.......
        .byte $80,$40,$00,$00,$00,$00,$00,$00,$08,$02,$00,$00,$00,$00,$00,$00 // .@..............
        .byte $55,$40,$6a,$00,$00,$00,$00,$00,$55,$00,$aa,$00,$00,$00,$00,$00 // U@j.....U.......
        .byte $50,$06,$a4,$00,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00,$00 // P...............
        .byte $08,$09,$06,$00,$00,$00,$00,$00,$55,$00,$aa,$00,$00,$00,$00,$00 // ........U.......
        .byte $54,$01,$a9,$00,$00,$00,$00,$00,$80,$40,$40,$00,$00,$00,$00,$00 // T........@@.....
        .byte $08,$02,$00,$00,$00,$00,$00,$00,$55,$90,$1a,$00,$00,$00,$00,$00 // ........U.......
        .byte $55,$00,$aa,$00,$00,$00,$00,$00,$55,$00,$aa,$00,$00,$00,$00,$00 // U.......U.......
        .byte $52,$05,$a5,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // R...............
        .byte $08,$02,$00,$00,$00,$00,$00,$00,$55,$40,$6a,$00,$00,$00,$00,$00 // ........U@j.....
        .byte $41,$20,$9a,$00,$00,$00,$00,$00,$55,$00,$aa,$00,$00,$00,$00,$00 // A ......U.......
        .byte $54,$01,$a9,$00,$00,$00,$00,$00,$88,$49,$06,$00,$00,$00,$00,$00 // T........I......
        .byte $55,$00,$aa,$00,$00,$00,$00,$00,$54,$01,$a9,$00,$00,$00,$00,$00 // U.......T.......
        .byte $80,$40,$40                           // .@@

// --- Region $2c80-$2e37 ---
.pc = $2c80 "dat_2c80"

dat_2c80:
        .byte $98,$b8,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$b8,$b8 // ................
        .byte $b8,$98,$68,$b6,$b6,$6f,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98 // ..h..o..........
        .fill 8, $98
        .byte $6b,$6b,$6b,$6b,$b6,$96,$68,$68,$68,$68,$68,$6f,$6c,$68,$6b,$b6 // kkkk..hhhhholhk.
        .byte $b6,$96,$68,$b6,$b6,$b8,$68,$68,$b6,$b6,$b6,$98,$68,$68,$b6,$b6 // ..h...hh....hh..
        .byte $96,$6b,$6b,$6b,$b6,$b6,$96,$98,$6b,$b6,$6f,$6f,$68,$6b,$68,$6f // .kkk....k.oohkho
        .byte $6f,$68,$6f,$6f,$68,$6b,$6f,$6f,$6b,$6b,$68,$b6,$6f,$68,$68,$6f // ohoohkookkh.ohho
        .byte $6f,$6f,$6b,$68,$6f,$6f,$6f,$68,$6b,$68,$68,$6f,$6f,$6f,$6b,$68 // ookhooohkhhoookh
        .byte $6f,$63,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f,$6f // ocoooooooooooooo
        .fill 9, $6f
        .byte $bf,$6f,$bf,$bf,$6f,$6f,$9f,$6f,$67,$6f,$6f,$6f,$6f,$6f,$b8,$7f // .o..oo.ogooooo..
        .byte $6f,$6f,$7f,$6f,$6f,$7f,$6f,$6f,$7f,$6f,$6f,$7f,$6f,$6f,$6f,$6f // oo.oo.oo.oo.oooo
        .byte $68,$7f,$6f,$6f,$7e,$9f,$9f,$9f,$9f,$6f,$9f,$6f,$6f,$6f,$9f,$6f // h.oo~....o.ooo.o
        .byte $7f,$6f,$6f,$6f,$6f,$6f,$bf,$78,$9f,$9f,$98,$98,$98,$98,$98,$98 // .ooooo.x........
        .byte $98,$9f,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98,$98 // ................
        .fill 11, $98
        .byte $68,$68,$68,$b8,$f8                   // hhh..

dat_2d71:
        // === Fill data (37 bytes, $2d71-$2d95) ===
        .fill 37, $98
        .byte $b8,$b8,$f8,$38,$38                   // ...88

dat_2d9b:
        // === Fill data (33 bytes, $2d9b-$2dbb) ===
        .fill 33, $f8
        .byte $98,$98,$98,$98,$98,$38,$38,$98,$f8,$f8,$98,$f8,$f8,$f8,$f8,$f8 // .....88.........
        .byte $98,$f8,$f8,$f8,$f8,$f8,$98,$f8,$f8,$98,$f8,$f8,$f8,$f8,$f8,$98 // ................
        .byte $f8,$f8,$f8,$f8,$f8,$98,$f8,$f8       // ........

dat_2de4:
        // === Fill data (44 bytes, $2de4-$2e0f) ===
        .fill 44, $98
        .byte $0a,$0e,$0e,$0a,$0e,$0e,$0a,$0e,$0e,$0a,$0e,$0e,$0a,$0e,$0e,$0c // ................
        .byte $0c,$0c,$0a,$0e,$0e,$0a,$0e,$0e,$0c,$0e,$0e,$0a,$0e,$0e,$0e,$0e // ................
        .byte $0e,$0a,$0e,$0e,$0c,$0c,$0c,$0c       // ........

// --- Region $2fcd-$2fff ---
.pc = $2fcd "bmp_2fcd"

bmp_2fcd:
        // === Bitmap data (51 bytes, $2fcd-$2fff) ===
        .byte $0c,$08,$00,$0e,$0f,$0e,$0e,$0e,$06,$06,$00,$00,$00,$06,$00,$08 // ................
        .byte $08,$08,$01,$08,$08,$08,$08,$08,$08,$09,$01,$0a,$0f,$0a,$0a,$0a // ................
        .byte $02,$02,$00,$00,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // ................
        .byte $00,$00,$00                           // ...

// --- Region $3024-$3361 ---
.pc = $3024 "Segment $3024"
        .byte $8d,$cf,$8d,$cd,$cf,$cd,$cf,$ce,$ee,$fb,$bf,$fe,$f7,$ff,$df,$f7 // ................
        .byte $ee,$ba,$ee,$fe,$fe,$f6,$7e,$f6,$8d,$8f,$8d,$cd,$8f,$cd,$cf,$cf // ......~.........
        .byte $af,$fb,$ee,$ff,$fb,$ff,$77,$5f,$bb,$fe,$ef,$ff,$fb,$ff,$7d,$f7 // ......w_......}.
        .byte $ff,$ff,$ee,$ff,$bf,$fd,$f7,$7d,$ff,$bf,$fb,$ff,$ef,$ff,$df,$fd // .......}........
        .byte $fa,$ea,$ba,$fb,$ea,$fb,$7b,$fb,$0d,$0f,$0d,$0d,$0f,$0d,$0f,$0f // ......{.........
        .byte $af,$fb,$ee,$ff,$fb,$ff,$77,$5f,$ba,$ff,$ee,$ff // ......w_....

spr_3080:
        .byte $fb,$fe,$7f,$f7,$55,$bb,$ee,$bf,$fb,$ff,$fd,$df,$ee,$bb,$ef,$fe // ....U...........
        .byte $ff,$df,$f7,$df,$ee,$be,$fa,$fe,$7e,$fe,$de,$7e,$8d,$cf,$8d,$cd // ........~..~....
        .byte $cf,$cd,$cf,$ce,$ee,$fb,$bf,$fe,$f7,$ff,$df,$f7,$ee,$ba,$ee,$fe // ................
        .byte $fe,$f6,$7e,$f6,$80,$80,$80,$c0,$80,$c0,$c0,$c0,$cb,$18,$00,$0f // ..~.............
        .byte $0e,$0e,$0e,$09,$0e,$09,$09,$dd,$d7,$dd,$d5,$f5,$bf,$ae,$aa,$d6 // ................
        .byte $76,$de,$5e,$7a,$fa,$ea,$aa,$ce,$cf,$ce,$ce,$c9,$8e,$c9,$89,$5d // v.^z...........]
        .byte $77,$dd,$d5,$b5,$bf,$ae,$aa,$de,$5e,$de,$5e,$7e,$fa,$ea,$aa,$ce // w.......^.^~....
        .byte $ce,$c6,$c7,$c2,$81,$c0,$80,$f7,$d5,$b7,$bd,$ef,$ab,$8a,$22,$7f // ..............".
        .byte $28,$28,$0e,$15,$03,$0c,$05,$01,$12,$28,$10,$12,$05,$13,$05,$0e // ((.......(......
        .byte $14,$13,$28,$19,$01                   // ..(..

txt_3115:
        .text "(((((("
        .byte $04,$0f,$15,$02,$0c,$05
        .byte $28,$04,$12,$01
        .byte $07,$0f,$0e,$fe
        .text "((((("
        .byte $03,$0f,$0e,$14,$01,$03,$14
        .byte $28,$15,$13,$28,$28,$fe,$28,$28,$12,$01,$19,$0d,$0f,$0e,$04,$28 // (..((.((.......(
        .byte $08,$27,$28,$fe,$1c,$20,$1c,$22,$28,$16,$16,$28,$04,$05,$0c,$06 // .'(.. ."(..(....
        .byte $14,$fe
        .text "(((("
        .byte $0f,$12
        .byte $28,$0b,$01,$0c,$0c
        .byte $28,$28,$28
        .byte $fe,$ff                               // ..

dat_3167:
        .text "                                                                                                                                         ."
        .byte $14                                   // .

txt_31f2:
        .text "0400 04"
        .byte $06,$06

txt_31fb:
        .text " 3100((((((((((("
        .fill 17, $28
        .byte $05,$07,$0e,$05,$16,$05,$12,$28,$05,$08,$14,$28,$fe // .......(...(.

txt_3229:
        .text "((((((("
        .byte $0f,$14
        .byte $28,$05,$14,$09,$12,$17
        .byte $28
        .byte $28,$fe,$20,$1f,$1b,$0e,$0c,$01,$0d,$0d,$05,$27,$0e,$0f,$0b,$fe // (. ........'....
        .byte $28,$28,$28,$04,$0e,$01,$0c,$0c,$0f,$08,$28,$28,$28,$fe,$28,$24 // (((.......(((.($
        .byte $1b,$23,$22,$0f                       // .#".

txt_325d:
        .text "&! !&"
        .byte $1f,$1b,$1c,$fe,$ff

dat_3267:
        .text "                                                                                                                                                                                                                                                          "
        .byte $00                                   // string terminator

// --- Region $3500-$37ff ---
.pc = $3500 "dat_3500"

dat_3500:
        .byte $28,$28,$28,$0e,$15,$03,$0c,$05,$01,$12,$28,$10,$12,$05,$13,$05 // (((.......(.....
        .byte $0e,$14,$13,$28,$19,$01,$28,$04,$0f,$15,$02,$0c,$05,$28,$04,$12 // ...(..(......(..
        .byte $01,$07,$0f,$0e
        .byte $28,$1c
        .text "'((("
        .byte $03,$12,$01,$03,$0b,$05
        .byte $04,$28,$02,$19,$28,$0e,$05,$03,$28,$01,$0e,$04,$28,$09,$0d,$10 // .(..(...(...(...
        .byte $0f,$12,$14,$05,$04,$28,$02,$19,$28,$0e,$15,$03,$0c,$05,$01,$12 // .....(..(.......
        .text "'((("
        .byte $14,$12,$01,$09,$0e,$05,$04
        .byte $28,$02,$19
        .byte $28,$0e
        .byte $05,$03,$28,$01,$0e,$04,$28,$0e,$15,$03,$0c,$05,$01,$12 // ..(...(.......

txt_356e:
        .text "'''(((("
        .byte $14,$08,$05
        .byte $28,$17,$05
        .byte $28,$13,$17
        .byte $01,$10                               // ..

spr_3580:
        .byte $28,$17,$09,$14,$08,$28,$0c,$09,$13,$14,$28,$09,$0e,$28,$0e,$0f // (....(....(..(..
        .byte $16,$05,$0d,$02,$05,$12,$28,$0c,$0f,$0f,$0b,$13,$28,$0c,$09,$0b // ......(.....(...
        .byte $05,$28,$14,$08,$09,$13               // .(....

txt_35a6:
        .text "'''(((("
        .byte $03,$0f,$0e,$14,$05,$18
        .byte $28,$26,$28
        .byte $09,$0c,$0c,$15,$13,$09,$0f,$0e,$28,$26,$28,$09,$0b,$01,$12,$09 // ........(&(.....
        .byte $26,$14,$01,$0c,$05,$0e,$14,$28,$26,$28,$03,$12,$01,$1a,$19,$28 // &......(&(.....(
        .byte $26,$28,$04,$03,$13
        .byte $28,$26,$28,$04,$0f,$0d
        .text "(&(!"
        .byte $1b
        .byte $1b,$28,$26,$28,$01,$03,$14,$09,$0f,$0e,$28,$26,$28,$0e,$01,$14 // .(&(......(&(...
        .byte $0f,$28,$26,$28,$07,$05,$0e,$05,$13,$09,$13,$28,$10,$12,$0f,$0a // .(&(.......(....
        .byte $05,$03,$14,$13,$28,$26,$28,$07,$01,$0c,$01,$18,$19,$28,$26,$28 // ....(&(......(&(
        .byte $18,$28,$12,$01,$19,$28,$26,$28,$13,$03,$09,$05,$0e,$03,$05,$28 // .(...(&(.......(
        .byte $1e,$1f,$1b,$28,$26,$28,$01,$0c,$10,$08,$01,$26,$06,$0c,$09,$07 // ...(&(.....&....
        .byte $08,$14,$28,$26,$28,$0c,$05,$07,$05,$0e,$04,$28,$26,$28,$06,$1e // ..(&(......(&(..
        .byte $03,$07,$28,$26,$28,$12,$04,$09,$28,$26,$28,$13,$03,$0f,$0f,$10 // ..(&(...(&(.....
        .byte $28,$26,$28,$04,$05,$0e,$13,$09,$14,$19,$28,$26,$28,$12,$14,$09 // (&(.......(&(...
        .byte $28,$26,$28,$06,$0c,$14,$28,$26,$29,$02,$05,$19,$0f,$0e,$04,$28 // (&(...(&)......(
        .byte $06,$0f,$12,$03,$05,$28,$26,$28,$13,$15 // .....(&(..

spr_3680:
        .byte $03,$03,$05,$13,$13,$28,$26,$28,$08,$0f,$15,$13,$05,$28,$26,$28 // .....(&(.....(&(
        .byte $27,$27,$14,$08,$01,$14,$13,$28,$09,$14,$27,$06,$0f,$0c,$18 // ''.....(..'....

txt_369f:
        .text "('''''"
        .byte $ff

txt_36a6:
        .fill 10, $20
        .byte $28,$02,$19,$28,$0e,$05,$03,$28,$01,$0e,$04,$28,$0e,$15,$03,$0c // (..(...(...(....
        .byte $05,$01,$12                           // ...

txt_36c3:
        .byte $27,$27,$27,$cb,$04,$28,$14,$08,$05,$28,$17,$05,$28,$13,$17,$01 // '''..(...(..(...
        .byte $10,$28,$17,$09,$14,$08,$28,$0c,$09,$13,$14,$28,$09,$0e,$28,$0e // .(....(....(..(.
        .byte $0f,$16,$05,$0d,$02,$05,$12,$28,$0c,$0f,$0f,$0b,$13,$28,$0c,$09 // .......(.....(..
        .byte $0b,$05,$28,$14,$08,$09,$13           // ..(....

txt_36fa:
        .byte $27,$27,$27,$cb,$04,$28,$03,$0f,$0e,$14,$05,$18,$28,$26,$28,$09 // '''..(......(&(.
        .byte $0c,$0c,$15,$13,$09,$0f,$0e,$28,$26,$28,$09,$0b,$01,$12,$09,$26 // .......(&(.....&
        .byte $14,$01,$0c,$05,$0e,$14,$28,$26,$28,$03,$12,$01,$1a,$19,$28,$26 // ......(&(.....(&
        .byte $28,$04,$03,$13
        .byte $28,$26,$28,$04,$0f,$0d
        .text "(&(!"
        .byte $1b,$1b
        .byte $28,$26,$28,$01,$03,$14,$09,$0f,$0e,$28,$26,$28,$0e,$01,$14,$0f // (&(......(&(....
        .byte $28,$26,$28,$07,$05,$0e,$05,$13,$09,$13,$28,$10,$12,$0f,$0a,$05 // (&(.......(.....
        .byte $03,$14,$13,$28,$26,$28,$07,$01,$0c,$01,$18,$19,$28,$26,$28,$18 // ...(&(......(&(.
        .byte $28,$12,$01,$19,$28,$26,$28,$13,$03,$09,$05,$0e,$03,$05,$28,$1e // (...(&(.......(.
        .byte $1f,$1b,$28,$26,$28,$01,$0c,$10,$08,$01,$26,$06,$0c,$09,$07,$08 // ..(&(.....&.....
        .byte $14,$28,$26,$28,$0c,$05,$07,$05,$0e,$04,$28,$26,$28,$06,$1e,$03 // .(&(......(&(...
        .byte $07,$28,$26,$28,$12,$04,$09,$28,$26,$28,$13,$03,$0f,$0f,$10,$28 // .(&(...(&(.....(
        .byte $26,$28,$04,$05,$0e,$13,$09,$14,$19,$28,$26,$28,$12,$14,$09,$28 // &(.......(&(...(
        .byte $26,$28,$06,$0c,$14,$28,$26,$29,$02,$05,$19,$0f,$0e,$04,$28,$06 // &(...(&)......(.
        .byte $0f,$12,$03,$05,$28,$26,$28,$13,$15,$03,$03,$05,$13,$13,$28,$26 // ....(&(.......(&
        .byte $28,$08,$0f,$15,$13,$05
        .text "(&(''"
        .byte $14,$08,$01,$14,$13
        .byte $28,$09,$14,$27,$06,$0f,$0c,$18,$28,$cb,$05,$27,$ff,$cb,$0a,$20 // (..'....(..'... 
        .byte $cb,$00,$00,$38,$30,$4d               // ...80M
