// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:45
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $45d7  (15832 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $3500 (13568)
// IRQ handler:  $2d69 (irq_2d69)
// IRQ handler:  $2e4e (irq_2e4e)
// IRQ handler:  $2eaf (irq_2eaf)
// IRQ handler:  $2eed (irq_2eed)
//
// Code: 3581 bytes, Data: 12251 bytes
// Labels: 307, Subroutines: 17
//
// Cross-references: all OK
// ============================================


// --- Region $12cd-$12cd ---
.pc = $12cd "Segment $12cd"
        brk

// --- Region $12f0-$12f0 ---
.pc = $12f0 "Segment $12f0"
        brk

// --- Region $2d00-$2dc9 ---
.pc = $2d00 "loc_2d00"

loc_2d00:
        sei
        jsr sub_39aa
        jsr sub_31fe
        lda #$1b
        sta $d011
        lda #$69
        sta $0314
        lda #$2d
        sta $0315
        lda #$08
        sta $0286
        jsr $e544
        ldy #$01
        sty $d01a
        sty $dc0d
        dey
        sty $12
        sty $2f

loc_2d2b:
        lda dat_1800,y
        sta $040e,y
        lda $18e0,y
        sta $04ee,y
        lda #$ff
        sta $05ee,y
        sta $06ee,y
        lda #$08
        sta $da00,y
        sta $db00,y
        sty $d012
        iny
        bne loc_2d2b
        lda #$0f
        sta $d021
        lda #$0e
        sta $d022
        lda #$06
        sta $d023
        jsr sub_32f9
        lda $dc0d
        cli

loc_2d63:
        jsr sub_3033
        jmp loc_2d63

irq_2d69:
        jsr sub_2da8
        inc $d019
        lda #$4e
        sta $0314
        lda #$2e
        sta $0315
        lda #$99
        sta $d012
        ldx #$15
        lda #$3f

loc_2d82:
        cmp $d012
        bne loc_2d82
        stx $d011
        lda #$1a
        sec
        sbc $03f0
        sta $03f0
        lda $d021
        sta bmp_32df
        lda $d022
        sta $32e0
        lda $d023
        sta $32e1
        jmp $ea7e
// Referenced by: jsr from $2d69

sub_2da8:
        lda $03
        sta $d016
        ldx #$ff
        ldy #$00
        sty $dc01
        stx $dc03
        sty $dc03
        lda $d013
        lsr
        lsr
        lsr
        sta smc_2dc7                                // SMC: modifies $2dc7
        bcc loc_2dc5

loc_2dc5:
        clc
.label smc_2dc7 = * + 1
        bcc loc_2de1                                // !SMC: modified by $2dc0

bmp_2dc8:
        // === Bitmap data (2 bytes, $2dc8-$2dc9) ===
        .byte $ea,$ea                               // ..

// --- Region $2de1-$2e16 ---
.pc = $2de1 "loc_2de1"

loc_2de1:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop

loc_2dfa:
        lda $d012
        clc
        adc #$07
        and #$07
        ora #$78
        sta $d011
        inc $03ff
        lda $03f0
        lsr
        sta smc_2e15                                // SMC: modifies $2e15
        bcc loc_2e13

loc_2e13:
        clc
.label smc_2e15 = * + 1
        bcc loc_2e21                                // !SMC: modified by $2e0e

bmp_2e16:
        // === Bitmap data (1 bytes, $2e16-$2e16) ===
        .byte $ea                                   // .

// --- Region $2e21-$311e ---
.pc = $2e21 "loc_2e21"

loc_2e21:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        ldx #$06

loc_2e41:
        dex
        bne loc_2e41
        nop
        inc $03ff
        lda #$75
        sta $d011
        rts

irq_2e4e:
        lda #$00
        sta $d022
        sta $d023
        sta $d021
        jsr sub_32e2
        inc $d019
        lda #$cc
        sta $d012
        lda #$af
        sta $0314
        lda #$2e
        sta $0315
        lda #$d8
        sta $d016
        lda #$15
        sta $d011
        lda #$18
        sta $d018
        lda #$0f
        sta $d021
        lda #$0a
        sta $d023
        lda #$02
        sta $d022
        ldy #$15
        jsr sub_2ea3
        lda #$0d
        sta $d021
        lda #$05
        sta $d023
        lda #$0b
        sta $d022
        jmp $ea7e

// Referenced by: jsr from $2e8e, $2ece; branch from $2eac
sub_2ea3: {
        lda $d012
loop:
        cmp $d012
        beq loop
        dey
        bpl sub_2ea3
        rts
}

irq_2eaf:
        lda #$15
        sta $d011
        inc $d019
        lda #$0e
        sta $d023
        lda #$06
        sta $d022
        lda $3250
        sta $d016
        lda #$0f
        sta $d021
        ldy #$16
        jsr sub_2ea3
        lda #$0c
        sta $d023
        lda #$0b
        sta $d022
        lda #$ed
        sta $0314
        lda #$2e
        sta $0315
        lda #$ff
        sta $d012
        jmp $ea7e

irq_2eed:
        inc $d019
        jsr sub_39b3
        lda #$31
        sta $d012
        lda #$69
        sta $0314
        lda #$2d
        sta $0315
        jsr sub_2f25
        jsr sub_3168
        lda #$12
        sta $d018
        lda bmp_32df
        sta $d021
        lda $32e0
        sta $d022
        lda $32e1
        sta $d023
        jsr sub_3251
        jmp $ea7e
// Referenced by: jsr from $2f02

sub_2f25:
.label smc_2f26 = * + 1
        ldy #$5b                                    // !SMC: modified by $2f40
        lda $1a00,y
        sta $02
        and #$07
        eor #$17
        sta $03
        lda $02
        lsr
        lsr
        lsr
        sta $03f0
        lda smc_2f26
        clc
        adc #$03
        sta smc_2f26                                // SMC: modifies $2f26
        lda $03f0
        tay
        cmp #$08
        bcs loc_2f4e
        jmp loc_2fe6

loc_2f4e:
        lda $181a,y
        sta $0428,y
        lda $1842,y
        sta $0450,y
        lda $186a,y
        sta $0478,y
        lda $1892,y
        sta $04a0,y
        lda $18ba,y
        sta $04c8,y
        lda $18e2,y
        sta $04f0,y
        lda $190a,y
        sta $0518,y
        lda $1932,y
        sta $0540,y
        lda $195a,y
        sta $0568,y
        lda $1982,y
        sta $0590,y
        lda $19aa,y
        sta $05b8,y
        lda $19d2,y
        sta $05e0,y

loc_2f96:
        cpy #$14
        bcc loc_2f9d
        jmp loc_300f

loc_2f9d:
        lda $1819,y
        sta $0427,y
        lda $1841,y
        sta $044f,y
        lda $1869,y
        sta $0477,y
        lda $1891,y
        sta $049f,y
        lda $18b9,y
        sta $04c7,y
        lda $18e1,y
        sta $04ef,y
        lda $1909,y
        sta $0517,y
        lda $1931,y
        sta $053f,y
        lda $1959,y
        sta $0567,y
        lda $1981,y
        sta $058f,y
        lda $19a9,y
        sta $05b7,y
        lda $19d1,y
        sta $05df,y
        rts

loc_2fe6:
        lda #$bb
        sta $0428,y
        sta $0450,y
        sta $0478,y
        sta $04a0,y
        sta $04c8,y
        sta $04f0,y
        sta $0518,y
        sta $0540,y
        sta $0568,y
        sta $0590,y
        sta $05b8,y
        sta $05e0,y
        jmp loc_2f96

loc_300f:
        lda #$bb
        sta $0427,y
        sta $044f,y
        sta $0477,y
        sta $049f,y
        sta $04c7,y
        sta $04ef,y
        sta $0517,y
        sta $053f,y
        sta $0567,y
        sta $058f,y
        sta $05b7,y
        rts
// Referenced by: jsr from $2d63

sub_3033:
        jsr sub_30cb
        lda smc_2f26
        cmp #$40
        beq loc_303e
        rts

loc_303e:
.label smc_303f = * + 1
        lda #$08                                    // !SMC: modified by $3049
        clc
        adc #$08
        cmp #$18
        bne loc_3049
        lda #$00

loc_3049:
        sta smc_303f                                // SMC: modifies $303f
        sta $04
.label smc_304f = * + 1
        lda #$10                                    // !SMC: modified by $3059
        clc
        adc #$08
        cmp #$18
        bne loc_3059
        lda #$00

loc_3059:
        sta smc_304f                                // SMC: modifies $304f
        sta $05
        lda #$1f
        clc
        adc $04
        sta smc_3102                                // SMC: modifies $3102
        lda #$31
        adc #$00
        sta smc_3103                                // SMC: modifies $3103
        lda #$37
        clc
        adc $04
        sta smc_3108                                // SMC: modifies $3108
        lda #$31
        adc #$00
        sta smc_3109                                // SMC: modifies $3109
        lda #$4f
        clc
        adc $04
        sta smc_310e                                // SMC: modifies $310e
        lda #$31
        adc #$00
        sta smc_310f                                // SMC: modifies $310f
        lda #$1f
        clc
        adc $05
        sta smc_30e5                                // SMC: modifies $30e5
        lda #$31
        adc #$00
        sta smc_30e6                                // SMC: modifies $30e6
        lda #$37
        clc
        adc $05
        sta smc_30eb                                // SMC: modifies $30eb
        lda #$31
        adc #$00
        sta smc_30ec                                // SMC: modifies $30ec
        lda #$4f
        clc
        adc $05
        sta smc_30f1                                // SMC: modifies $30f1
        lda #$31
        adc #$00
        sta smc_30f2                                // SMC: modifies $30f2
        jsr sub_30fc
        jmp loc_30df

loc_30be:
        pla
        pla
        sei
        lda #$00
        sta $c6
        jmp loc_33bb
// Referenced by: jsr from $30e1, $30fe, $3118

sub_30c8:
        jsr sub_30cb
// Referenced by: jsr from $3033, $30c8; branch from $30d7

sub_30cb:
        lda $dc01
        cmp #$ef
        beq loc_30be
        lda #$20
        cmp $d012
        bne sub_30cb
        ldx #$0a

loc_30db:
        dex
        bpl loc_30db
        rts

loc_30df:
        ldy #$00

loc_30e1:
        jsr sub_30c8
.label smc_30e5 = * + 1
.label smc_30e6 = * + 2
        lda $312f,y                                 // !SMC: modified by $3090, $3097
        sta $d021
.label smc_30eb = * + 1
.label smc_30ec = * + 2
        lda $3147,y                                 // !SMC: modified by $309f, $30a6
        sta $d022
.label smc_30f1 = * + 1
.label smc_30f2 = * + 2
        lda $315f,y                                 // !SMC: modified by $30ae, $30b5
        sta $d023
        iny
        cpy #$08
        bne loc_30e1
        rts
// Referenced by: jsr from $30b8

sub_30fc:
        ldy #$07

loc_30fe:
        jsr sub_30c8
.label smc_3102 = * + 1
.label smc_3103 = * + 2
        lda $3127,y                                 // !SMC: modified by $3063, $306a
        sta $d021
.label smc_3108 = * + 1
.label smc_3109 = * + 2
        lda $313f,y                                 // !SMC: modified by $3072, $3079
        sta $d022
.label smc_310e = * + 1
.label smc_310f = * + 2
        lda $3157,y                                 // !SMC: modified by $3081, $3088
        sta $d023
        dey
        bpl loc_30fe
        ldy #$06

loc_3118:
        jsr sub_30c8
        dey
        bpl loc_3118
        rts

// --- Region $3168-$31e5 ---
.pc = $3168 "sub_3168"
// Referenced by: jsr from $2f05

sub_3168:
.label smc_3169 = * + 1
        ldy #$05                                    // !SMC: modified by $3187
        dec $3167
        bpl loc_319f
        lda #$01
        sta $3167
        lda bmp_3240,y
        ldx #$07

loc_3179:
        sta $07f8,x
        dex
        bpl loc_3179
        lda smc_3169
        clc
        adc #$01
        and #$0f
        sta smc_3169                                // SMC: modifies $3169
        bne loc_319f
        ldy #$07

loc_318e:
        lda #$00
        sta bmp_31e6,y
        ldx $dc04
        lda $39c0,x
        sta $31ee,y
        dey
        bpl loc_318e

loc_319f:
        ldy #$00
        ldx #$00

loc_31a3:
        lda $31ee,y
        clc
        adc $31f6,y
        sta $31ee,y
        sta $d000,x
        lda bmp_31e6,y
        rol
        cmp #$02
        bcs loc_31bb
        sta bmp_31e6,y

loc_31bb:
        inx
        inx
        iny
        cpy #$08
        bne loc_31a3
        lda $31ed
        rol
        clc
        adc $31ec
        rol
        adc $31eb
        rol
        adc $31ea
        rol
        adc $31e9
        rol
        adc $31e8
        rol
        adc $31e7
        rol
        adc bmp_31e6
        sta $d010
        rts

// --- Region $31fe-$323f ---
.pc = $31fe "sub_31fe"
// Referenced by: jsr from $2d04

sub_31fe:
        ldy #$ff
        sty $d015
        sty $d01c
        iny
        sty $d01b
        lda #$0f
        sta $d025
        lda #$0e
        sta $d026
        lda #$06
        ldy #$07

loc_3218:
        sta $d027,y
        dey
        bpl loc_3218
        lda #$3d
        sta $d001
        sta $d003
        clc
        adc #$15
        sta $d005
        sta $d007
        adc #$15
        sta $d009
        sta $d00b
        adc #$15
        sta $d00d
        sta $d00f
        rts

// --- Region $3251-$33af ---
.pc = $3251 "sub_3251"
// Referenced by: jsr from $2f1f

sub_3251:
        lda $3250
        sec
        sbc #$03
        sta $3250
        cmp #$d0
        bcc loc_326b
        rts

loc_325f:
        lda #$00
        sta smc_3271                                // SMC: modifies $3271
        lda #$1b
        sta smc_3272                                // SMC: modifies $3272
        bne loc_3270

loc_326b:
        adc #$08
        sta $3250

loc_3270:
.label smc_3271 = * + 1
.label smc_3272 = * + 2
        lda txt_1b00                                // !SMC: modified by $3261, $3266
        and #$3f
        beq loc_325f
        tay
        lda txt_2800,y
        sta $2e
        lda $2840,y
        sta $2d
        lda $2880,y
        sta smc_328f                                // SMC: modifies $328f
        ldy $2f
        inc $2f
        lda $2f
.label smc_328f = * + 1
        cmp #$04                                    // !SMC: modified by $3285
        bne loc_329e
        lda #$00
        sta $2f
        inc smc_3271
        bne loc_329e
        inc smc_3272

loc_329e:
        lda ($2d),y
        sta $071f
        tya
        clc
        adc #$28
        tay
        lda ($2d),y
        sta $0747
        tya
        adc #$28
        tay
        lda ($2d),y
        sta $076f
        tya
        adc #$28
        tay
        lda ($2d),y
        sta $0797
        ldy #$00

loc_32c1:
        lda $06f9,y
        sta $06f8,y
        lda $0721,y
        sta $0720,y
        lda $0749,y
        sta $0748,y
        lda $0771,y
        sta $0770,y
        iny
        cpy #$27
        bne loc_32c1
        rts

bmp_32df:
        // === Bitmap data (3 bytes, $32df-$32e1) ===
        .byte $f5,$fb,$f0                           // ...
// Referenced by: jsr from $2e59

sub_32e2:
        ldy #$08

loc_32e4:
        inc $03ff
        lda $d012
        and #$07
        ora #$18
        dey
        sta $d011
        bpl loc_32e4
        bit $02
        jmp loc_2dfa
// Referenced by: jsr from $2d5c

sub_32f9:
        lda #$00
        sta $03

loc_32fd:
        ldy #$00
        lda bmp_33b0,y
        and #$3f
        tay
        lda txt_2800,y
        sta $2e
        lda $2840,y
        sta $2d
        ldx $2880,y
        stx $02
        lda #$30
        clc
        adc $03
        sta $2b
        lda #$06
        adc #$00
        sta $2c
        jsr sub_3396
        lda $2d
        clc
        adc #$28
        sta $2d
        lda $2e
        adc #$00
        sta $2e
        ldx $02
        lda #$58
        clc
        adc $03
        sta $2b
        lda #$06
        adc #$00
        sta $2c
        jsr sub_3396
        lda $2d
        clc
        adc #$28
        sta $2d
        lda $2e
        adc #$00
        sta $2e
        ldx $02
        lda #$80
        clc
        adc $03
        sta $2b
        lda #$06
        adc #$00
        sta $2c
        jsr sub_3396
        lda #$a8
        clc
        adc $03
        sta $2b
        lda #$06
        adc #$00
        sta $2c
        ldx $02
        lda $2d
        clc
        adc #$28
        sta $2d
        lda $2e
        adc #$00
        sta $2e
        jsr sub_3396
        lda $02
        clc
        adc $03
        sta $03
        inc $32fe
        lda $32fe
        cmp #$0a
        bne loc_3393
        rts

loc_3393:
        jmp loc_32fd
// Referenced by: jsr from $3321, $3340, $335f, $337e; branch from $33a5

sub_3396:
.label smc_3397 = * + 1
        ldy #$00                                    // !SMC: modified by $33a9
        lda ($2d),y
.label smc_339b = * + 1
        ldy #$00                                    // !SMC: modified by $33ac
        sta ($2b),y
        inc smc_3397
        inc smc_339b
        dex
        bne sub_3396
        lda #$00
        sta smc_3397                                // SMC: modifies $3397
        sta smc_339b                                // SMC: modifies $339b
        rts

// --- Region $33bb-$33d4 ---
.pc = $33bb "loc_33bb"

loc_33bb:
        sei
        jsr $fda3
        jsr $fd15
        jsr $e518
        sei
        ldy #$00

loc_33c8:
        lda bmp_33d4,y
        sta $033c,y
        iny
        bne loc_33c8
        jmp $033c

bmp_33d4:
        // === Bitmap data (1 bytes, $33d4-$33d4) ===
        .byte $78                                   // x

// --- Region $3500-$3508 ---
.pc = $3500 "main_3500"

main_3500:
        lda #$00
        sta $d020
        tax
        jmp loc_2d00

// --- Region $39aa-$39b6 ---
.pc = $39aa "sub_39aa"
// Referenced by: jsr from $2d01

sub_39aa:
        jmp loc_3a3f

bmp_39ad:
        // === Bitmap data (6 bytes, $39ad-$39b2) ===
        .byte $4c,$91
        .text "BL9:"
// Referenced by: jsr from $2ef0

sub_39b3:
        jmp loc_3a7e

bmp_39b6:
        // === Bitmap data (1 bytes, $39b6-$39b6) ===
        .byte $00                                   // .

// --- Region $3a3f-$41d0 ---
.pc = $3a3f "loc_3a3f"

loc_3a3f:
        lda $45ce,x
        sta smc_3a5c                                // SMC: modifies $3a5c
        lda $45cf,x
        sta smc_3a5d                                // SMC: modifies $3a5d
        lda $45d6,x
        and #$0f
        sta smc_3a8d                                // SMC: modifies $3a8d
        lda $45d7,x
        sta $45c6
        ldx #$05

loc_3a5b:
.label smc_3a5c = * + 1
.label smc_3a5d = * + 2
        lda $45c8,x                                 // !SMC: modified by $3a42, $3a48
        sta $3a26,x
        lda $45d0,x
        sta $3a33,x
        dex
        bpl loc_3a5b
        jsr sub_4291
        lda #$1f
        sta $3a32
        lda #$00
        sta $d417
        sta $39d5
        rts

loc_3a7b:
        jmp loc_3c67

loc_3a7e:
        inc $39e2
        inc $39e3
        inc $39e4
.label smc_3a88 = * + 1
        lda #$01                                    // !SMC: modified by $3aca, $4196, $42a2
        bne loc_3a8c

bmp_3a8b:
        // === Bitmap data (1 bytes, $3a8b-$3a8b) ===
        .byte $60                                   // `

loc_3a8c:
.label smc_3a8d = * + 1
        ldx #$02                                    // !SMC: modified by $3a50
        dec $39d5
        bpl loc_3a99
        lda $45c6
        sta $39d5

loc_3a99:
        lda $39d5
        bne loc_3a7b
        dec $39b9,x
        bmi loc_3aa6
        jmp loc_3c67

loc_3aa6:
        lda $3a26,x
        sta smc_3ab6                                // SMC: modifies $3ab6
        lda $3a29,x
        sta smc_3ab7                                // SMC: modifies $3ab7

loc_3ab2:
        ldy $39bf,x
.label smc_3ab6 = * + 1
.label smc_3ab7 = * + 2
        lda $43e5,y                                 // !SMC: modified by $3aa9, $3aaf
        cmp #$fe
        beq loc_3ac8
        cmp #$ff
        bne loc_3ad7
        lda #$00
        sta $39bf,x
        jmp loc_3ab2

loc_3ac8:
        lda #$00
        sta smc_3a88                                // SMC: modifies $3a88
        sta $d404
        sta $d40b
        sta $d412
        rts

loc_3ad7:
        cmp #$c0
        bcc loc_3ae6
        and #$1f
        sta $39c8,x
        inc $39bf,x
        jmp loc_3ab2

loc_3ae6:
        cmp #$80
        bcc loc_3af5
        and #$3f
        sta $39c2,x
        inc $39bf,x
        jmp loc_3ab2

loc_3af5:
        tay
        lda $4594,y
        sta $40
        lda txt_45ad,y
        sta $41
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$f3
        bne loc_3b1f
        iny
        lda ($40),y
        bpl loc_3b16
        and #$0f
        sta $39c5,x
        jmp loc_3b19

loc_3b16:
        sta $3a1e,x

loc_3b19:
        inc bmp_39b6,x
        inc bmp_39b6,x

loc_3b1f:
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$f2
        bne loc_3b34
        iny
        lda ($40),y
        sta $3a33,x
        inc bmp_39b6,x
        inc bmp_39b6,x

loc_3b34:
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$f1
        bne loc_3b4c
        iny
        lda ($40),y
        sta $d417
        sta $39e8,x
        inc bmp_39b6,x
        inc bmp_39b6,x

loc_3b4c:
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$f0
        bne loc_3b6e
        iny
        lda ($40),y
        clc
        adc $39c2,x
        sta $3a19,x
        iny
        lda ($40),y
        sta $3a16,x
        inc bmp_39b6,x
        inc bmp_39b6,x
        inc bmp_39b6,x

loc_3b6e:
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$80
        bcs loc_3b86
        cmp #$60
        bcc loc_3b86
        and #$1f
        asl
        asl
        asl
        sta $39cb,x
        inc bmp_39b6,x

loc_3b86:
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$80
        bcc loc_3b97
        and #$7f
        sta $39bc,x
        inc bmp_39b6,x

loc_3b97:
        ldy bmp_39b6,x
        lda ($40),y
        bpl loc_3ba1
        jmp loc_3c39

loc_3ba1:
        clc
        adc $39c2,x
        sta $3a06,x
        sta $3a09,x
        ldy $3a2c,x
        stx $39d4
        tax
        lda dat_41d1,x
        sta $d400,y
        lda $4231,x
        sta $d401,y
        ldx $39d4
        inc bmp_39b6,x
        ldy $39cb,x
        lda $436c,y
        sta $39d1,x
        tya
        ldy $3a2c,x
        stx $39d4
        tax
        stx smc_3bfb                                // SMC: modifies $3bfb
        lda $4372,x
        and #$10
        beq loc_3bff
        lda $436e,x
        asl
        asl
        ldx $39d4
        sta $4368,x
        stx $39d4
        tax
        lda $4352,x
        sta $d405,y
        lda $4353,x
        sta $d406,y
.label smc_3bfb = * + 1
        ldx #$20                                    // !SMC: modified by $3bd5
        jmp loc_3c0b

loc_3bff:
        lda $436d,x
        sta $d405,y
        lda $436e,x
        sta $d406,y

loc_3c0b:
        lda #$00
        sta $d402,y
        lda $436b,x
        and #$0f
        sta $d403,y
        ldx $39d4
        sta $3a10,x
        lda #$00
        sta $39e2,x
        lda #$00
        sta $39dc,x
        sta $39df,x
        sta $39d9,x
        sta $39eb,x
        sta $39f8,x
        lda #$ff
        sta $39ce,x

loc_3c39:
        lda $39bc,x
        sta $39b9,x
        ldy bmp_39b6,x
        lda ($40),y
        cmp #$ff
        bne loc_3c64
        lda #$00
        sta bmp_39b6,x
        lda $39c8,x
        beq loc_3c5c
        dec $39c8,x
        lda $39c8,x
        cmp #$01
        bcs loc_3c64

loc_3c5c:
        lda #$01
        sta $39c8,x
        inc $39bf,x

loc_3c64:
        jmp loc_4137

loc_3c67:
        ldy $39cb,x
        lda $4370,y
        sta $3a24
        lda $4371,y
        sta $3a23
        lda $4372,y
        sta txt_3a22
        lda $39e2,x
        cmp #$01
        bne loc_3c93
        lda #$00
        sta $39fb,x
        sta $3a0d,x
        sta $3a13,x
        lda #$ff
        sta $39ce,x

loc_3c93:
        lda txt_3a22
        and #$20
        beq loc_3cac
        lda $3a1e,x
        and #$7f
        cmp $39e2,x
        bne loc_3ca9
        lda #$fe
        sta $39ce,x

loc_3ca9:
        jmp loc_3cd0

loc_3cac:
        lda $39e2,x
        cmp #$03
        bcc loc_3cd0
        ldy $39cb,x
        lda $436b,y
        and #$f0
        lsr
        lsr
        sta smc_3cc8                                // SMC: modifies $3cc8
        lda $39bc,x
        sec
        sbc $39b9,x
.label smc_3cc8 = * + 1
        cmp #$00                                    // !SMC: modified by $3cbd
        bcc loc_3cd0
        lda #$fe
        sta $39ce,x

loc_3cd0:
        lda $39c5,x
        and #$02
        bne loc_3ce3
        lda $39b9,x
        cmp #$00
        bne loc_3ce3
        lda #$fe
        sta $39ce,x

loc_3ce3:
        lda $436f,y
        sta $3a25
        cmp #$40
        bcs loc_3cf1
        and #$3f
        bne loc_3cf4

loc_3cf1:
        jmp loc_3da6

loc_3cf4:
        tay
        dey
        sty smc_3d20                                // SMC: modifies $3d20
        lda dat_42bc,y
        sta $40
        lda txt_42c2,y
        sta $41
        ldy $39dc,x
        lda ($40),y
        cmp #$7f
        beq loc_3d1f
        cmp #$7e
        bne loc_3d17
        iny
        lda ($40),y
        sta $39dc,x
        tay

loc_3d17:
        lda ($40),y
        sta $39d1,x
        inc $39dc,x

loc_3d1f:
.label smc_3d20 = * + 1
        ldy #$03                                    // !SMC: modified by $3cf6
        lda $42c8,y
        sta $40
        lda txt_42ce,y
        sta $41
        ldy $39df,x
        iny
        lda ($40),y
        cmp #$7f
        beq loc_3da6
        cmp #$7e
        bne loc_3d3f
        iny
        lda ($40),y
        sta $39df,x

loc_3d3f:
        ldy $39df,x
        iny
        lda ($40),y
        sta $3a21
        ldy #$00
        lda ($40),y
        and #$01
        beq loc_3d86
        lda ($40),y
        and #$02
        beq loc_3d75
        ldy $3a09,x
        lda dat_41d1,y
        ldy $3a2c,x
        sta $d401,x
        ldy $3a09,x
        lda $4231,y
        clc
        adc $3a21
        ldy $3a2c,x
        sta $d401,y
        jmp loc_3da3

loc_3d75:
        lda $3a21
        ldy $3a2c,x
        sta $d401,y
        lda #$00
        sta $d400,y
        jmp loc_3da3

loc_3d86:
        lda $3a06,x
        sta $3a09,x
        lda $3a21
        bpl loc_3d99
        and #$7f
        sta $3a09,x
        jmp loc_3da0

loc_3d99:
        clc
        adc $3a09,x
        sta $3a09,x

loc_3da0:
        jsr sub_41ab

loc_3da3:
        inc $39df,x

loc_3da6:
        lda $39e8,x
        beq loc_3db2
        lda txt_3a22
        and #$0f
        beq loc_3e0a

loc_3db2:
        lda txt_3a22
        and #$0f
        beq loc_3e12
        lda txt_3a22
        and #$07
        tay
        dey
        lda $4314,y
        sta $40
        lda $4316,y
        sta $41
        lda $39e2,x
        cmp #$01
        bne loc_3de8
        lda #$00
        sta $39d6,x
        ldy #$01
        lda ($40),y
        and #$f0
        ora #$0f
        sta $3a32
        ldy #$00
        lda ($40),y
        jmp loc_3e0c

loc_3de8:
        ldy $39d6,x
        iny
        iny
        lda ($40),y
        cmp #$81
        beq loc_3e12
        lda ($40),y
        cmp $39e2,x
        bcs loc_3e00
        inc $39d6,x
        inc $39d6,x

loc_3e00:
        iny
        clc
        lda $39e5,x
        adc ($40),y
        jmp loc_3e0c

loc_3e0a:
        lda #$ff

loc_3e0c:
        sta $d416
        sta $39e5,x

loc_3e12:
        lda $3a23
        bne loc_3e1a
        jmp loc_3ede

loc_3e1a:
        lda txt_3a22
        and #$80
        beq loc_3e24
        jmp loc_3e6e

loc_3e24:
        lda $3a23
        and #$0f
        tay
        lda txt_4324,y
        sta $40
        lda $4328,y
        sta $41
        lda $3a23
        and #$f0
        sta $3a0c
        ldy #$00
        lda ($40),y
        and #$0f
        sta smc_3eb0                                // SMC: modifies $3eb0
        lda ($40),y
        lsr
        lsr
        lsr
        lsr
        sta smc_3ed6                                // SMC: modifies $3ed6
        ldy $39d9,x
        iny
        lda ($40),y
        cmp #$81
        beq loc_3e6b
        lda ($40),y
        sta $3a0c
        iny
        lda ($40),y
        cmp $39e2,x
        bne loc_3e6b
        inc $39d9,x
        inc $39d9,x

loc_3e6b:
        jmp loc_3e8d

loc_3e6e:
        lda $3a23
        tay
        dey
        lda $4344,y
        sta $3a0c
        lda $434a,y
        and #$0f
        sta smc_3eb0                                // SMC: modifies $3eb0
        lda $434a,y
        and #$f0
        lsr
        lsr
        lsr
        lsr
        sta smc_3ed6                                // SMC: modifies $3ed6

loc_3e8d:
        ldy $3a2c,x
        lda $3a13,x
        bne loc_3ebb
        lda $3a0d,x
        clc
        adc $3a0c
        sta $d402,y
        sta $3a0d,x
        lda $3a10,x
        adc #$00
        and #$0f
        sta $d403,y
        sta $3a10,x
.label smc_3eb0 = * + 1
        cmp #$0f                                    // !SMC: modified by $3e42, $3e7e
        bcc loc_3ede
        lda #$01
        sta $3a13,x
        jmp loc_3ede

loc_3ebb:
        lda $3a0d,x
        sec
        sbc $3a0c
        sta $d402,y
        sta $3a0d,x
        lda $3a10,x
        sbc #$00
        sta $d403,y
        and #$0f
        sta $3a10,x
.label smc_3ed6 = * + 1
        cmp #$09                                    // !SMC: modified by $3e4b, $3e8a
        bcs loc_3ede
        lda #$00
        sta $3a13,x

loc_3ede:
        lda $3a25
        and #$7f
        cmp #$40
        bcc loc_3f36
        ldy $39cb,x
        lda $436c,y
        sta $39d1,x
        lda $3a06,x
        sta $3a09,x
        lda $3a25
        and #$3f
        asl
        asl
        tay
        lda $43b5,y
        cmp $39e2,x
        bcc loc_3f29
        lda $43b3,y
        sta $39d1,x
        lda $43b4,y
        bpl loc_3f1c
        and #$7f
        sta $3a09,x
        jsr sub_41ab
        jmp loc_3f36

loc_3f1c:
        clc
        adc $3a09,x
        sta $3a09,x
        jsr sub_41ab
        jmp loc_3f36

loc_3f29:
        lda $43b6,y
        and #$7f
        cmp $39e2,x
        bne loc_3f36
        jsr sub_41ab

loc_3f36:
        lda $3a25
        and #$bf
        bpl loc_3f73
        and #$3f
        tay
        lda $43bb,y
        sta $40
        lda $43bd,y
        sta $41
        lda $3a06,x
        sta $3a09,x
        ldy $39dc,x
        lda ($40),y
        cmp #$7f
        beq loc_3f73
        cmp #$7e
        bne loc_3f64
        iny
        lda ($40),y
        sta $39dc,x
        tay

loc_3f64:
        lda ($40),y
        clc
        adc $3a09,x
        sta $3a09,x
        jsr sub_41ab
        inc $39dc,x

loc_3f73:
        lda $3a16,x
        bne loc_3f7b
        jmp loc_406a

loc_3f7b:
        lda $3a16,x
        and #$f0
        lsr
        lsr
        lsr
        sta smc_3f8f                                // SMC: modifies $3f8f
        tay
        lda $39bc,x
        sec
        sbc $39b9,x
.label smc_3f8f = * + 1
        cmp #$00                                    // !SMC: modified by $3f83
        bcs loc_3f95
        jmp loc_406a

loc_3f95:
        ldy $3a19,x
        lda dat_41d1,y
        sec
        ldy $3a06,x
        sbc dat_41d1,y
        sta $39f4
        sta $3a1d
        ldy $3a19,x
        lda $4231,y
        ldy $3a06,x
        sbc $4231,y
        sta $3a1c
        sta $39f5
        lda $3a06,x
        cmp $3a19,x
        bmi loc_3fd2
        lda $39f4
        eor #$ff
        sta $39f4
        lda $39f5
        eor #$ff
        sta $39f5

loc_3fd2:
        lda $3a16,x
        and #$0f
        tay

loc_3fd8:
        lsr $39f5
        ror $39f4
        dey
        bne loc_3fd8
        lda $3a19,x
        cmp $3a06,x
        bpl loc_4022
        lda $39fe,x
        sec
        sbc $39f4
        sta $39fe,x
        lda $3a01,x
        sbc $39f5
        sta $3a01,x
        lda $39fe,x
        .byte $ff,$ed,$1d                           // isc $1ded,x // ILLEGAL
        .byte $3a                                   // nop // ILLEGAL
        lda $3a01,x
        sbc $3a1c
        bcs loc_4058
        lda #$00
        sta $3a16,x
        sta $39fe,x
        sta $3a01,x
        lda $3a19,x
        sta $3a06,x
        sta $3a09,x
        jmp loc_4137

loc_4022:
        lda $39fe,x
        clc
        adc $39f4
        sta $39fe,x
        lda $3a01,x
        adc $39f5
        sta $3a01,x
        lda $39fe,x
        sec
        sbc $3a1d
        lda $3a01,x
        sbc $3a1c
        bcc loc_4058
        lda #$00
        sta $3a16,x
        sta $39fe,x
        sta $3a01,x
        lda $3a19,x
        sta $3a06,x
        sta $3a09,x

loc_4058:
        lda $39fe,x
        sta $39f8,x
        lda $3a01,x
        sta $39fb,x
        jsr sub_41ab
        jmp loc_4137

loc_406a:
        lda $3a24
        bne loc_4072
        jmp loc_4137

loc_4072:
        and #$07
        sta $3a05
        lda $3a24
        and #$f0
        lsr
        lsr
        lsr
        lsr
        sta $3a04
        lda $3a24
        and #$08
        sta smc_40c7                                // SMC: modifies $40c7
        lda $39eb,x
        cmp #$00
        bne loc_40b3
        lda txt_3a22
        and #$40
        beq loc_40a1
        lda #$00
        sta $39ee,x
        jmp loc_40ab

loc_40a1:
        lda $3a04
        lsr
        clc
        adc #$01
        sta $39ee,x

loc_40ab:
        lda #$00
        sta $39f1,x
        inc $39eb,x

loc_40b3:
        ldy $3a09,x
        lda $41d2,y
        sec
        sbc dat_41d1,y
        sta $39f4
        lda $4232,y
        sbc $4231,y
.label smc_40c7 = * + 1
        ldy #$08                                    // !SMC: modified by $4088
        beq loc_40ce
        adc $39eb,x
        lsr

loc_40ce:
        dec $3a05
        bmi loc_40da
        lsr
        ror $39f4
        jmp loc_40ce

loc_40da:
        sta $39f5
        lda $39e2,x
        cmp $3a33,x
        bcs loc_40e8
        jmp loc_4137

loc_40e8:
        lda $39eb,x
        cmp $3a36,x
        bcs loc_40f3
        inc $39eb,x

loc_40f3:
        dec $39ee,x
        bpl loc_4106
        lda $3a04
        sta $39ee,x
        lda $39f1,x
        eor #$01
        sta $39f1,x

loc_4106:
        lda $39f1,x
        bne loc_4121
        lda $39f8,x
        clc
        adc $39f4
        sta $39f8,x
        lda $39fb,x
        adc $39f5
        sta $39fb,x
        jmp loc_4134

loc_4121:
        lda $39f8,x
        sec
        sbc $39f4
        sta $39f8,x
        lda $39fb,x
        sbc $39f5
        sta $39fb,x

loc_4134:
        jsr sub_41ab

loc_4137:
        ldy $3a2c,x
        lda $39d1,x
        and $39ce,x
        sta $d404,y
        lda txt_3a22
        and #$10
        beq loc_4170
        ldy $4368,x
        lda $4350,y
        sta smc_4169                                // SMC: modifies $4169
        lda $4351,y
        sta smc_4162                                // SMC: modifies $4162
        lda $39b9,x
        bne loc_4170
        lda $39d5
.label smc_4162 = * + 1
        cmp #$02                                    // !SMC: modified by $4156
        bcc loc_4170
        ldy $3a2c,x
.label smc_4169 = * + 1
        lda #$00                                    // !SMC: modified by $4150
        sta $d406,y
        sta $d405,y

loc_4170:
        dex
        bmi loc_4176
        jmp loc_3a99

loc_4176:
        lda $3a2f
        beq loc_41a0
        inc $3a30
        lda $3a30
        cmp #$0b
        bne loc_41a0
        lda #$00
        sta $3a30
        dec $3a31
        lda $3a31
        cmp #$f0
        bne loc_41a0
        lda #$00
        sta smc_3a88                                // SMC: modifies $3a88
        sta $3a2f
        sta $3a31
        rts

loc_41a0:
        lda $3a32
        clc
        adc $3a31
        sta $d418
        rts
// Referenced by: jsr from $3da0, $3f16, $3f23, $3f33, $3f6d, $4064, $4134

sub_41ab:
        ldy $3a09,x
        lda dat_41d1,y
        clc
        adc $39f8,x
        sta $39f6
        lda $4231,y
        adc $39fb,x
        sta $39f7
        ldy $3a2c,x
        lda $39f6
        sta $d400,y
        lda $39f7
        sta $d401,y
        rts

// --- Region $4291-$42bb ---
.pc = $4291 "sub_4291"
// Referenced by: jsr from $3a6a

sub_4291:
        ldx #$48

loc_4293:
        lda #$00
        sta bmp_39b6,x
        lda #$00
        sta $d400,x
        dex
        bpl loc_4293
        lda #$01
        sta smc_3a88                                // SMC: modifies $3a88
        lda #$00
        sta $3a2f
        sta $3a31
        sta $3a30
        lda #$08
        sta $d404
        sta $d40b
        sta $d412
        rts

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

// --- Region $0800-$0dff ---
.pc = $0800 "scr_0800"

scr_0800:
        // === Charset data (1536 bytes, $0800-$0dff) ===
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$00       // char 0 @+0
        .byte $00,$00,$ff,$fc,$fc,$f0,$f0,$00       // char 1 @+1
        .byte $28,$08,$ff,$3f,$2f,$6f,$5b,$6b       // char 2 @+2
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0       // char 3 @+3
        .byte $ff,$ff,$ff,$ff,$ff,$fc,$fc,$00       // char 4 @+4
        .byte $39,$08,$ff,$0f,$0b,$1b,$16,$1a       // char 5 @+5
        .byte $fc,$fc,$fc,$fc,$fc,$fc,$fc,$fc       // char 6 @+6
        .byte $00,$00,$00,$00,$01,$04,$01,$00       // char 7 @+7
        .byte $00,$00,$04,$51,$04,$41,$16,$59       // char 8 @+8
        .byte $00,$40,$04,$11,$44,$61,$59,$aa       // char 9 @+9
        .byte $00,$01,$44,$15,$46,$15,$9a,$ab       // char 10 @+10
        .byte $00,$00,$11,$45,$11,$85,$66,$aa       // char 11 @+11
        .byte $01,$44,$15,$55,$99,$66,$aa,$ee       // char 12 @+12
        .byte $6a,$6a,$9a,$66,$99,$66,$9a,$aa       // char 13 @+13
        .byte $ff,$ff,$bf,$bf,$af,$6f,$ab,$ab       // char 14 @+14
        .byte $00,$00,$00,$00,$00,$01,$00,$00       // char 15 @+15
        .byte $00,$00,$01,$14,$41,$10,$45,$16       // char 16 @+16
        .byte $00,$10,$01,$44,$11,$58,$96,$6a       // char 17 @+17
        .byte $00,$00,$11,$45,$11,$45,$66,$aa       // char 18 @+18
        .byte $00,$40,$04,$51,$84,$61,$99,$ea       // char 19 @+19
        .byte $00,$11,$45,$55,$66,$59,$aa,$bb       // char 20 @+20
        .byte $5a,$26,$5a,$66,$59,$96,$59,$96       // char 21 @+21
        .byte $bf,$bf,$af,$af,$ab,$6b,$9a,$6a       // char 22 @+22
        .byte $11,$05,$11,$05,$11,$05,$11,$05       // char 23 @+23
        .byte $66,$99,$66,$9a,$67,$9a,$67,$9a       // char 24 @+24
        .byte $ae,$bf,$bf,$ef,$bf,$ef,$bf,$ef       // char 25 @+25
        .byte $ee,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 26 @+26
        .byte $bb,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 27 @+27
        .byte $ba,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 28 @+28
        .byte $04,$01,$04,$01,$04,$01,$04,$01       // char 29 @+29
        .byte $59,$66,$59,$66,$59,$66,$59,$66       // char 30 @+30
        .byte $ab,$6f,$af,$bb,$ef,$bb,$ef,$bb       // char 31 @+31
        .byte $ae,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 32 ' '
        .byte $ee,$fc,$f0,$f0,$f0,$f0,$f0,$f0       // char 33 '!'
        .byte $d9,$16,$45,$16,$45,$16,$45,$16       // char 34 '"'
        .byte $9e,$66,$9a,$6b,$9e,$6b,$9e,$6b       // char 35 '#'
        .byte $bf,$ff,$ff,$bf,$ff,$bf,$ff,$bf       // char 36 '$'
        .byte $11,$04,$11,$05,$11,$05,$11,$04       // char 37 '%'
        .byte $66,$5a,$56,$5a,$66,$5a,$66,$5a       // char 38 '&'
        .byte $bf,$ef,$bf,$ef,$bf,$ef,$bf,$ef       // char 39 '''
        .byte $59,$16,$55,$56,$59,$56,$59,$16       // char 40 '('
        .byte $af,$bb,$af,$bb,$af,$bb,$af,$bb       // char 41 ')'
        .byte $f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0       // char 42 '*'
        .byte $45,$11,$45,$15,$45,$15,$45,$11       // char 43 '+'
        .byte $9a,$6b,$5a,$6b,$9a,$6b,$9a,$6b       // char 44 ','
        .byte $ff,$bf,$ff,$bf,$ff,$bf,$ff,$bf       // char 45 '-'
        .byte $11,$04,$11,$04,$11,$05,$11,$05       // char 46 '.'
        .byte $57,$5a,$16,$5a,$66,$5a,$66,$9a       // char 47 '/'
        .byte $bf,$ef,$bf,$ef,$b0,$e0,$b0,$b4       // char 48 '0'
        .byte $ff,$ff,$ff,$ff,$00,$00,$04,$11       // char 49 '1'
        .byte $ff,$ff,$ff,$ff,$00,$00,$10,$46       // char 50 '2'
        .byte $ff,$ff,$ff,$ff,$03,$00,$4a,$2a       // char 51 '3'
        .byte $ff,$ff,$ff,$ff,$ff,$bf,$ef,$bf       // char 52 '4'
        .byte $55,$16,$45,$16,$59,$56,$59,$66       // char 53 '5'
        .byte $ef,$bb,$af,$bb,$ac,$b8,$ac,$ad       // char 54 '6'
        .byte $ff,$ff,$ff,$ff,$00,$00,$01,$14       // char 55 '7'
        .byte $ff,$ff,$ff,$ff,$00,$00,$11,$55       // char 56 '8'
        .byte $f0,$f0,$f0,$f0,$00,$00,$44,$15       // char 57 '9'
        .byte $45,$11,$44,$11,$45,$16,$59,$56       // char 58 ':'
        .byte $5e,$6b,$5a,$6b,$9a,$6b,$9a,$6e       // char 59 ';'
        .byte $ff,$bf,$ff,$bf,$ff,$bf,$ff,$ff       // char 60 '<'
        .byte $66,$5a,$56,$5b,$66,$5a,$66,$5a       // char 61 '='
        .byte $e1,$b4,$e1,$b9,$ea,$bb,$ef,$bf       // char 62 '>'

txt_09f8:
        .byte $55,$59,$56,$aa,$ae,$b8,$ff,$ff       // char 63 '?'
        .byte $59,$96,$49,$91,$04,$81,$04,$01       // char 64 '@'
        .byte $9a,$66,$99,$66,$5a,$55,$56,$15       // char 65 'A'
        .byte $af,$bb,$af,$ab,$6e,$ab,$6a,$9b       // char 66 'B'
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$bf       // char 67 'C'
        .byte $b8,$ad,$b8,$ee,$ba,$ae,$bb,$af       // char 68 'D'
        .byte $55,$16,$55,$6a,$ab,$ee,$ff,$ff       // char 69 'E'
        .byte $55,$66,$99,$aa,$ba,$ef,$ff,$ff       // char 70 'F'
        .byte $55,$65,$9a,$6a,$ae,$bb,$ff,$ff       // char 71 'G'
        .byte $65,$99,$66,$9a,$ab,$ba,$ff,$ff       // char 72 'H'
        .byte $9b,$6e,$bb,$ee,$bb,$ef,$ff,$ff       // char 73 'I'
        .byte $bf,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 74 'J'
        .byte $11,$05,$11,$05,$11,$04,$11,$04       // char 75 'K'
        .byte $56,$5a,$66,$5b,$66,$5a,$66,$5a       // char 76 'L'
        .byte $ef,$bf,$ef,$bf,$ef,$bf,$af,$bf       // char 77 'M'
        .byte $00,$c1,$c0,$c0,$f0,$f0,$f0,$fc       // char 78 'N'
        .byte $46,$15,$45,$11,$45,$11,$05,$11       // char 79 'O'
        .byte $6a,$9a,$66,$5a,$66,$59,$66,$59       // char 80 'P'
        .byte $ff,$bf,$ef,$bf,$af,$bb,$af,$6b       // char 81 'Q'
        .byte $55,$56,$59,$56,$59,$16,$59,$16       // char 82 'R'
        .byte $bb,$af,$bb,$ef,$bb,$af,$ab,$af       // char 83 'S'
        .byte $11,$05,$11,$05,$11,$05,$11,$04       // char 84 'T'
        .byte $56,$5a,$56,$5a,$66,$5a,$66,$5a       // char 85 'U'
        .byte $ef,$bf,$ef,$af,$bf,$ef,$bf,$ef       // char 86 'V'
        .byte $fc,$fc,$ff,$ff,$ff,$ff,$ff,$ff       // char 87 'W'
        .byte $04,$01,$04,$01,$00,$c1,$c0,$c0       // char 88 'X'
        .byte $56,$15,$46,$15,$45,$15,$45,$11       // char 89 'Y'
        .byte $6e,$ab,$5a,$9b,$6a,$9a,$66,$99       // char 90 'Z'
        .byte $04,$81,$a5,$aa,$e9,$ba,$ee,$ba       // char 91 '['
        .byte $55,$56,$95,$66,$99,$66,$99,$a6       // char 92 '\'
        .byte $bb,$af,$bb,$ab,$af,$bb,$af,$bb       // char 93 ']'
        .byte $ff,$ff,$ff,$ff,$fc,$f0,$f0,$c1       // char 94 '^'
        .byte $ff,$ff,$ff,$ff,$ff,$bf,$bf,$af       // char 95 '_'
        .byte $66,$5a,$66,$5a,$56,$5a,$66,$5a       // char 96 '`'
        .byte $bf,$ef,$bf,$af,$bf,$af,$ff,$ef       // char 97 'a'
        .byte $f0,$f0,$fc,$fc,$fc,$ff,$ff,$ff       // char 98 'b'
        .byte $45,$11,$05,$11,$04,$01,$04,$01       // char 99 'c'
        .byte $66,$99,$66,$59,$66,$59,$56,$15       // char 100 'd'
        .byte $ae,$ab,$6e,$ab,$6a,$9b,$6a,$9a       // char 101 'e'
        .byte $99,$a6,$e9,$a6,$ea,$ba,$ee,$bb       // char 102 'f'
        .byte $af,$bb,$af,$6b,$af,$ab,$af,$ab       // char 103 'g'
        .byte $ff,$ff,$ff,$fc,$fc,$f0,$f0,$c0       // char 104 'h'
        .byte $c0,$01,$01,$00,$01,$04,$01,$44       // char 105 'i'
        .byte $6f,$ab,$6b,$9a,$2a,$59,$15,$44       // char 106 'j'
        .byte $fc,$fc,$fc,$ff,$00,$00,$10,$44       // char 107 'k'
        .byte $11,$05,$11,$ff,$00,$00,$01,$44       // char 108 'l'
        .byte $66,$5a,$66,$ff,$00,$00,$00,$44       // char 109 'm'
        .byte $bf,$ef,$bf,$ff,$00,$00,$00,$44       // char 110 'n'
        .byte $ff,$ff,$ff,$ff,$00,$00,$00,$44       // char 111 'o'
        .byte $c0,$c1,$c0,$f0,$00,$00,$00,$44       // char 112 'p'
        .byte $45,$11,$45,$11,$04,$11,$04,$41       // char 113 'q'
        .byte $66,$5a,$66,$59,$66,$59,$55,$15       // char 114 'r'
        .byte $ee,$bb,$ae,$bb,$ae,$ab,$6e,$6b       // char 115 's'
        .byte $af,$ab,$ef,$ab                       // char 116 (partial)

loc_0ba4:
        .byte $eb,$bb,$ef,$fb                       // char 116 (partial)
        .byte $c1,$04,$01,$04,$11,$04,$11,$00       // char 117 'u'
        .byte $11,$44,$11,$45,$16,$45,$11,$45       // char 118 'v'
        .byte $11,$55,$65,$99,$66,$99,$66,$99       // char 119 'w'
        .byte $11,$44,$11,$55,$65,$99,$66,$99       // char 120 'x'
        .byte $11,$44,$15,$55,$56,$99,$66,$99       // char 121 'y'
        .byte $11,$44,$11,$55,$55,$99,$66,$99       // char 122 'z'
        .byte $11,$44,$51,$55,$65,$99,$66,$99       // char 123 '{'
        .byte $11,$44,$15,$55,$66,$59,$66,$99       // char 124 '|'
        .byte $11,$44,$51,$55,$65,$99,$65,$99       // char 125 '}'
        .byte $11,$44,$55,$55,$66,$99,$66,$99       // char 126 '~'
        .byte $11,$44,$11,$55,$56,$95,$65,$9a       // char 127
        .byte $10,$44,$11,$55,$59,$66,$99,$66       // char 128
        .byte $45,$56,$19,$66,$99,$66,$99,$66       // char 129
        .byte $aa,$6b,$9a,$67,$9a,$66,$9a,$aa       // char 130
        .byte $eb,$bb,$fb,$af,$bb,$ef,$bb,$ef       // char 131
        .byte $c0,$c0,$fa,$ff,$ff,$ff,$ff,$ff       // char 132
        .byte $00,$00,$aa,$ff,$ff,$ff,$ff,$ff       // char 133
        .byte $16,$9a,$eb,$ff,$ff,$ff,$ff,$ff       // char 134
        .byte $6a,$ae,$bb,$ff,$ff,$ff,$ff,$ff       // char 135
        .byte $a6,$ea,$bb,$ff,$ff,$ff,$ff,$ff       // char 136
        .byte $aa,$ee,$bb,$ff,$ff,$ff,$ff,$ff       // char 137
        .byte $66,$aa,$bb,$ff,$ff,$ff,$ff,$ff       // char 138
        .byte $69,$aa,$bb,$ff,$ff,$ff,$ff,$ff       // char 139
        .byte $9a,$ea,$bb,$ff,$ff,$ff,$ff,$ff       // char 140
        .byte $ab,$ee,$bb,$ff,$ff,$ff,$ff,$ff       // char 141
        .byte $bb,$ff,$bf,$ff,$ff,$ff,$ff,$ff       // char 142
        .byte $5a,$1a,$66,$59,$66,$99,$a6,$aa       // char 143
        .byte $bf,$bf,$af,$af,$6b,$9b,$aa,$aa       // char 144
        .byte $fb,$ff,$ff,$ff,$ff,$ff,$ff,$ff       // char 145
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$f3       // char 146
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$fc       // char 147
        .byte $ff,$ff,$ff,$ff,$00,$00,$04,$51       // char 148
        .byte $c3,$c2,$06,$05,$06,$16,$46,$59       // char 149
        .byte $ff,$ff,$ff,$bf,$bf,$af,$af,$ab       // char 150
        .byte $f0,$f0,$c1,$c1,$01,$05,$11,$56       // char 151
        .byte $ff,$bf,$bf,$6f,$af,$ab,$ab,$6a       // char 152

txt_0cc8:
        .byte $55,$59,$56,$aa,$ae,$bb,$ff,$ff       // char 153
        .byte $56,$99,$66,$a9,$ea,$be,$ff,$ff       // char 154
        .byte $6b,$9a,$66,$aa,$aa,$eb,$ff,$ff       // char 155
        .byte $ff,$ff,$ff,$bf,$bf,$af,$ff,$ff       // char 156
        .byte $9a,$66,$99,$6a,$aa,$ba,$ff,$ff       // char 157
        .byte $ff,$bf,$bf,$af,$af,$eb,$ff,$ff       // char 158

txt_0cf8:
        .byte $55,$56,$55,$56,$59,$56,$59,$16       // char 159
        .byte $59,$16,$59,$56,$55,$56,$59,$16       // char 160
        .byte $af,$bb,$af,$ab,$af,$ab,$bf,$bb       // char 161
        .byte $ff,$ff,$ff,$ff,$f3,$f2,$c6,$c6       // char 162
        .byte $04,$01,$04,$ff,$00,$00,$00,$44       // char 163
        .byte $59,$56,$59,$ff,$00,$00,$00,$44       // char 164
        .byte $af,$bb,$af,$ff,$00,$00,$00,$44       // char 165
        .byte $ff,$ff,$fc,$fc,$00,$00,$00,$44       // char 166
        .byte $12,$06,$11,$05,$56,$19,$66,$99       // char 167
        .byte $bf,$af,$af,$ab,$ab,$aa,$6a,$9a       // char 168
        .byte $11,$44,$11,$55,$56,$99,$66,$99       // char 169
        .byte $11,$44,$11,$55,$56,$95,$66,$99       // char 170
        .byte $11,$44,$15,$55,$56,$99,$56,$99       // char 171
        .byte $66,$55,$56,$55,$65,$99,$65,$99       // char 172
        .byte $66,$9a,$66,$99,$66,$59,$66,$99       // char 173
        .byte $bf,$af,$af,$ab,$6b,$9a,$6a,$9a       // char 174
        .byte $a6,$aa,$bb,$ff,$ff,$ff,$ff,$ff       // char 175
        .byte $6a,$aa,$ba,$ff,$ff,$ff,$ff,$ff       // char 176
        .byte $bf,$bf                               // char 177 (partial)

dat_0d8a:
        // === Fill data (118 bytes, $0d8a-$0dff) ===
        .fill 118, $ff

// --- Region $0e1f-$0e20 ---
.pc = $0e1f "dat_0e1f"

dat_0e1f:
        .byte $20                                   // char 195 (partial)

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

// --- Region $0e5c-$0e63 ---
.pc = $0e5c "dat_0e5c"

dat_0e5c:
        .byte $20,$00,$00,$b8                       // char 203 (partial)
        .byte $00,$00,$20                           // char 204 (partial)

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

// --- Region $0e99-$0ea6 ---
.pc = $0e99 "dat_0e99"

dat_0e99:
        .byte $20,$00,$00,$30,$00,$02,$fe           // char 211 (partial)
        .byte $00,$00,$30,$00,$00,$20               // char 212 (partial)

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

// --- Region $0ed3-$0eec ---
.pc = $0ed3 "dat_0ed3"

dat_0ed3:
        .byte $20,$00,$00,$20,$00                   // char 218 (partial)
        .byte $00,$30,$00,$00,$30,$00,$0a,$de       // char 219
        .byte $80,$00,$30,$00,$00,$30,$00,$00       // char 220
        .byte $20,$00,$00,$20                       // char 221 (partial)

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

// --- Region $0f10-$0f2e ---
.pc = $0f10 "dat_0f10"

dat_0f10:
        .byte $20,$00,$00,$20,$00,$00,$20,$00       // char 226
        .byte $00,$30,$00,$00,$fc,$00,$2b,$df       // char 227
        .byte $a0,$00,$fc,$00,$00,$30,$00,$00       // char 228
        .byte $20,$00,$00,$20,$00,$00,$20           // char 229 (partial)

// --- Region $0f4a-$0ffe ---
.pc = $0f4a "dat_0f4a"

dat_0f4a:
        .byte $20,$00,$00,$20,$00,$00               // char 233 (partial)
        .byte $20,$00,$00,$20,$00,$00,$30,$00       // char 234
        .byte $00,$30,$00,$00,$dc,$00,$2f,$57       // char 235
        .byte $e8,$00,$dc,$00,$00,$30,$00,$00       // char 236
        .byte $30,$00,$00,$20,$00,$00,$20,$00       // char 237
        .byte $00,$20,$00,$00,$20,$00,$00,$00       // char 238
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 239
        .byte $00,$00,$00,$00,$00,$00,$00,$20       // char 240
        .byte $00,$00,$20,$00,$00,$20,$00,$00       // char 241
        .byte $30,$00,$00,$30,$00,$00,$30,$00       // char 242
        .byte $00,$20,$00,$00,$dc,$00,$2e,$56       // char 243
        .byte $e8,$00,$dc,$00,$00,$20,$00,$00       // char 244
        .byte $30,$00,$00,$30,$00,$00,$30,$00       // char 245
        .byte $00,$20,$00,$00,$20,$00,$00,$20       // char 246
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 247
        .byte $00,$20,$00,$00,$20,$00,$00,$20       // char 248
        .byte $00,$00,$20,$00,$00,$30,$00,$08       // char 249
        .byte $30,$80,$00,$30,$00,$00,$dc,$00       // char 250
        .byte $00,$dc,$00,$0f,$57,$c0,$a5,$55       // char 251
        .byte $7a,$0f,$57,$c0,$00,$dc,$00,$00       // char 252
        .byte $dc,$00,$08,$30,$80,$00,$30,$00       // char 253
        .byte $00,$30,$00,$00,$20,$00,$00,$20       // char 254
        .byte $00,$00,$20,$00,$00,$20               // char 255 (partial)

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

// --- Region $1100-$1100 ---
.pc = $1100 "spr_1100"

spr_1100:
        .byte $00                                   // .

// --- Region $12ce-$12ce ---
.pc = $12ce "dat_12ce"

dat_12ce:
        // === Fill data (1 bytes, $12ce-$12ce) ===
        .byte $00                                   // .

// --- Region $12f1-$12f1 ---
.pc = $12f1 "dat_12f1"

dat_12f1:
        // === Fill data (1 bytes, $12f1-$12f1) ===
        .byte $00                                   // .

// --- Region $1540-$1540 ---
.pc = $1540 "spr_1540"

spr_1540:
        .byte $00                                   // .

// --- Region $1580-$1580 ---
.pc = $1580 "spr_1580"

spr_1580:
        .byte $00                                   // .

// --- Region $1800-$1f54 ---
.pc = $1800 "dat_1800"

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

txt_1867:
        .text " !"
        .byte $22                                   // double quote character
        .text "#$"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .fill 21, $bb
        .byte $06                                   // .

txt_1883:
        .text "%&'"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .byte $bb,$bb,$bb,$bb,$1d                   // .....

txt_188c:
        .text "()"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .byte $bb                                   // .

txt_1890:
        .text "*+,-"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .fill 21, $bb
        .byte $06                                   // .

txt_18ab:
        .text "./01234"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .byte $1d                                   // .

txt_18b4:
        .text "56789:;<"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .fill 21, $bb
        .byte $06                                   // .

txt_18d3:
        .text "%=>?"
        .byte $40                                   // @ character
        .text "ABC"
        .byte $1d                                   // .

txt_18dc:
        .text "(DEFGHIJ"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .fill 21, $bb
        .byte $06                                   // .

txt_18fb:
        .text "KLM"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .text "NOPQ"
        .byte $1d

txt_1904:
        .text "RS"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .fill 27, $bb
        .byte $06                                   // .

txt_1923:
        .text "TUV"
        .byte $bb                                   // ';' | $80 (end-of-string marker)
        .text "WXYZ"
        .byte $5b
        .byte $5c,$5d,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb
        .fill 9, $bb

spr_1940:
        // === Sprite data (64 bytes, $1940-$197f) ===
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$5e                           // #.###.###.###.##.#.####.
        .byte $5f,$06,$25                           // .#.#####.....##...#..#.#
        .byte $60,$61,$bb                           // .##......##....##.###.##
        .byte $bb,$62,$63                           // #.###.##.##...#..##...##
        .byte $64,$65,$66                           // .##..#...##..#.#.##..##.
        .byte $67,$bb,$bb                           // .##..####.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$bb                           // #.###.###.###.###.###.##
        .byte $bb,$bb,$68                           // #.###.###.###.##.##.#...
        .byte $69,$6a,$6b                           // .##.#..#.##.#.#..##.#.##
        .byte $6c,$6d,$6e                           // .##.##...##.##.#.##.###.
        .byte $6f,$6f,$6f                           // .##.####.##.####.##.####
        .byte $70,$71,$72                           // .###.....###...#.###..#.
        .byte $73,$74,$bb                           // .###..##.###.#..#.###.##
        .byte $bb                                   // sprite 0 padding
        .fill 22, $bb
        .byte $68,$75,$76,$77,$78,$79,$7a,$7b,$7c,$7d,$7e,$7f,$80,$81,$82,$83 // huvwxyz{|}~.....
        .fill 24, $bb
        .byte $84,$85,$86,$87,$88,$89,$87,$89,$8a,$88,$87,$8b,$8c,$8c,$8d,$8e // ................
        .fill 29, $bb
        .byte $00,$00,$00,$00,$00,$01,$02,$bb,$03,$00,$00,$00,$00,$04,$05,$bb // ................
        .byte $bb,$bb,$bb,$bb,$bb,$64,$66,$68,$6b,$6d,$70,$72,$75,$77,$79,$7c // .....dfhkmpruwy|
        .byte $7e,$81,$83,$85,$87,$8a,$8c,$8e,$90,$93,$95,$97,$99,$9b,$9d,$9f // ~...............
        .byte $a1,$a3,$a5,$a7,$a8,$aa,$ac,$ae,$af,$b1,$b2,$b4,$b5,$b7,$b8,$b9 // ................
        .byte $bb,$bc,$bd,$be,$bf,$c0,$c1,$c2,$c2,$c3,$c4,$c5,$c5,$c6,$c6,$c6 // ................
        .fill 11, $c7
        .byte $c6,$c6,$c6,$c5,$c5,$c4,$c3,$c2,$c2,$c1,$c0,$bf,$be,$bd,$bc,$bb // ................
        .byte $b9,$b8,$b7,$b5,$b4,$b2,$b1,$af,$ae,$ac,$aa,$a8,$a7,$a5,$a3,$a1 // ................
        .byte $9f,$9d,$9b,$99,$97,$95,$93,$90,$8e,$8c,$8a,$87,$85,$83,$81,$7e // ...............~
        .byte $7c,$79,$77,$75,$72,$70,$6d,$6b,$68,$66,$64,$61,$5f // |ywurpmkhfda_

txt_1a83:
        .byte $5c                                   // backslash character
        .text "ZWURPNKIFDB"
        .byte $40                                   // @ character
        .text "=;97420.,*(&$"
        .byte $22                                   // double quote character
        .text " "
        .byte $1f,$1d,$1b,$19,$18,$16,$15,$13,$12,$10,$0f,$0e,$0c,$0b,$0a,$09 // ................
        .byte $08,$07,$06,$05,$05,$04,$03,$02,$02,$01,$01,$01,$00,$00,$00,$00 // ................
        .byte $00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$02,$02,$03,$04,$05,$05 // ................
        .byte $06,$07,$08,$09,$0a,$0b,$0c,$0e,$0f,$10,$12,$13,$15,$16,$18,$19 // ................
        .byte $1b,$1d,$1f                           // ...

txt_1ae2:
        .text " "
        .byte $22                                   // double quote character
        .text "$&(*,.02479;="
        .byte $40                                   // @ character
        .text "BDFIKNPRUWZ"
        .byte $5c                                   // backslash character
        .byte $5f,$61                               // _a

txt_1b00:
        .encoding "screencode_mixed"
        .text "   omni play basketball cracked in the beginning of september by genesis project!  this was olle's last crack for genesis project ,coz he got some trouble with the cops! finally olle ,hires and boozer left gp. now we'll make high quality games for amok"
        .encoding "petscii_upper"

txt_1bfc:
        .text "... "

txt_1c00:
        .encoding "screencode_mixed"
        .text "also look out for olle's last demo for gp called 'the bat cave ii' which will be published at venlo"
        .encoding "petscii_upper"

txt_1c63:
        .text "!        "

txt_1c6c:
        .encoding "screencode_mixed"
        .text "we want to thank all our friends and contacts!  special greets to : snacky (keep on releasing those cool cracks"
        .encoding "petscii_upper"

txt_1cdb:
        .text "!) ,"

txt_1cdf:
        .encoding "screencode_mixed"
        .text "antichrist (thanks for being a good friend) ,omg amok (sex'n'crime is best on disk and it will ever be"
        .encoding "petscii_upper"

txt_1d45:
        .text ".) ,"

txt_1d49:
        .encoding "screencode_mixed"
        .text "spitfire action(thanks for all those originals and phonecalls) ,veda gp (cool guy,nice to meet you in venlo.have you finished your intro"
        .encoding "petscii_upper"

txt_1dd1:
        .text "? ) ,"

txt_1dd6:
        .encoding "screencode_mixed"
        .text "floyd cosmos (thanks for the nice postcard from greece) ,shadow transkom (thanks for always sending 'cccp"
        .encoding "petscii_upper"

txt_1e3f:
        .text "') ,"

txt_1e43:
        .encoding "screencode_mixed"
        .text "blackmail (why don't you write games? you're so fuckin' cool"
        .encoding "petscii_upper"

txt_1e7f:
        .text ")              "

txt_1e8e:
        .encoding "screencode_mixed"
        .text "we are leaving the scene which was our home for about five years"
        .encoding "petscii_upper"

txt_1ece:
        .text "!     "

txt_1ed4:
        .encoding "screencode_mixed"
        .text "so always remember that we have been germany's number one"
        .encoding "petscii_upper"

txt_1f0d:
        .text "...   "

txt_1f13:
        .encoding "screencode_mixed"
        .text "we vote for us"
        .encoding "petscii_upper"

txt_1f21:
        .text "... "

txt_1f25:
        .encoding "screencode_mixed"
        .text "ha ha ha  lame lame lame"
        .encoding "petscii_upper"

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

// --- Region $2000-$28c0 ---
.pc = $2000 "spr_2000"

spr_2000:
        // === Bitmap data (2241 bytes, $2000-$28c0) ===
        .byte $fd,$f5,$d6,$d6
        .byte $59,$6a,$62
        .text "HUUY"
        .byte $66,$9a,$68,$a2,$89
        .byte $57,$55,$99,$66,$a9,$8a,$22,$88,$ff,$7f,$5f,$5f,$97,$a7,$27,$87 // WU.f.."...__..'.
        .byte $08,$15,$95,$26,$99,$aa,$62,$88,$a6,$55,$59,$66,$9a,$68,$a2,$85 // ...&..b..UYf.h..
        .byte $55,$55,$59,$66,$9a,$68,$a1,$85,$57,$55,$99,$66,$a9,$8a,$22,$48 // UUYf.h..WU.f.."H
        .byte $55,$55,$59,$66,$9a,$68,$a2,$85,$56,$55,$99,$66,$a9,$8a,$22,$48 // UUYf.h..VU.f.."H
        .byte $6b,$5b,$57,$5b,$97,$a7,$27,$87,$a7,$57,$57,$67,$97,$67,$a7,$87 // k[W[..'..WWg.g..
        .byte $08,$15,$99,$26,$a9,$8a,$62,$88,$a7,$57,$57,$67,$97,$a7,$27,$87 // ...&..b..WWg..'.
        .byte $08,$15,$a6,$19,$aa,$a2,$48,$a2,$a7,$57,$67,$97,$a7,$27,$87,$27 // ......H..Wg..'.'
        .byte $62
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "J"
        .byte $65,$5f,$07,$07,$07,$07,$05,$80,$60,$da
        .byte $60
        .byte $40                                   // @ character
        .text "B"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "("
        .byte $96,$7d
        .byte $27,$07
        .byte $27,$87,$07,$07,$87,$67
        .byte $60,$40,$42,$40,$00,$28,$96,$7d,$27,$07,$27,$87,$07,$1f,$9f,$7f // `@B@.(.}'.'.....
        .byte $07,$07,$07,$07,$07,$87,$67,$d7,$60,$55,$ff,$ff,$ff,$ff,$ff,$ff // ......g.`U......
        .byte $27,$57,$ff,$ff,$ff,$ff,$ff,$ff,$60
        .byte $40                                   // @ character
        .text "B"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $68
        .byte $56,$7d
        .byte $60,$55,$ff,$ff,$5f,$1f,$9f,$5f,$60,$40,$55,$ff,$55,$68,$56,$7d // `U.._.._`@U.UhV}
        .byte $27,$07,$55,$ff,$57,$07,$87,$67,$48,$62,$40,$62,$48,$40,$42,$69 // '.U.W..gHb@bH@Bi
        .byte $87,$07,$07,$07,$07,$a7,$57,$f7,$7f,$77,$5d,$77,$55,$59,$66,$5a // ......W..w]wUYfZ
        .byte $f5,$ff,$f5,$77,$57,$97,$67,$97,$ff,$ff,$5d,$77,$5d,$55,$66,$59 // ...wW.g...]w]UfY
        .byte $d7,$f7,$f7,$77,$57,$97,$67,$a7,$ff,$ff,$dd,$77,$5d,$55,$66,$59 // ...wW.g....w]UfY
        .byte $df,$df,$f7,$77,$57,$97,$67,$a7,$f7,$f7,$f7,$77,$57,$97,$67,$97 // ...wW.g....wW.g.
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$55,$59,$ff,$ff,$ff,$ff,$ff,$ff,$57,$a7 // ......UY......W.
        .byte $7f,$7f,$5d,$77,$5d,$55,$66,$59,$df,$df,$5f,$ff,$ff,$ff,$55,$59 // ..]w]UfY.._...UY
        .byte $df,$df,$5f,$ff,$ff,$ff,$ff,$ff,$57,$7f,$77,$5d,$77,$55,$59,$66 // .._.....W.w]wUYf
        .byte $f7,$f7,$77,$d7,$77,$57,$97,$67,$68,$62,$48,$62,$48,$60 // ..w.wW.ghbHbH`

txt_216e:
        .byte $48,$55,$a7,$27,$87,$07,$07,$27,$07,$57,$66,$6a,$48,$60,$48,$42 // HU.'...'.WfjH`HB
        .byte $40,$55,$87,$27,$87,$27,$87,$07,$07,$57,$a5,$22,$88,$02,$00,$22 // @U.'.'...W."..."
        .byte $08,$55,$a6,$2a,$88,$20,$08,$02,$09,$57,$87,$27,$87,$17,$9f,$5f // .U.*. ...W.'..._
        .byte $7f,$ff,$68,$62                       // ..hb

txt_21a2:
        .byte $48,$52,$d8,$d4,$f5,$ff,$a9,$22,$88,$02,$00,$22,$48,$55,$66,$2a // HR....."..."HUf*
        .byte $88,$20,$08,$02,$09,$57,$66,$2a,$88,$20,$08,$02,$00,$55,$66,$6a // . ...Wf*. ...Ufj
        .byte $48,$60
        .text "HB"
        .byte $40                                   // @ character
        .text "X"
        .byte $87
        .byte $27,$87
        .byte $27,$87,$07,$07
        .byte $27,$6a
        .byte $48
        .byte $62,$48,$40,$48,$60,$55,$97,$a7,$27,$87,$27,$07,$07,$57,$55,$55 // bH@H`U..'.'..WUU
        .byte $99,$66,$a9,$8a
        .byte $22                                   // double quote
        .text "HUUU"
        .byte $66,$99,$aa
        .byte $22,$85
        .byte $57,$55
        .byte $59,$66,$9a,$68,$a2,$88,$ff,$7f,$5f,$5f,$97,$87,$27,$87,$55,$55 // Yf.h....__..'.UU
        .byte $59,$66,$9a,$68,$a2,$8a,$62,$40,$60,$40,$40,$4a,$65,$5f,$07,$07 // Yf.h..b@`@@Je_..
        .byte $27,$07,$07,$87,$67,$d7,$27,$07,$27,$87,$07,$07,$a7,$57,$42,$48 // '...g.'.'....WBH
        .byte $60,$48,$42,$40,$60,$5a,$27,$87,$07,$87,$07,$27,$97,$77,$27,$07 // `HB@`Z'....'.w'.
        .byte $27,$87,$07,$07,$97,$5f,$0b,$07,$07,$07,$07,$87,$67,$d7,$60,$40 // '...._......g.`@
        .byte $42,$80,$00,$a8,$96,$7d,$ff,$ff,$ff,$ff,$ff,$ff,$55,$5a,$ff,$ff // B....}......UZ..
        .byte $ff,$ff,$ff,$ff,$57,$97,$f7,$f7,$d7,$77,$57,$97,$67,$97,$75,$7f // ....W....wW.g.u.
        .byte $7d,$77,$5d,$55,$66,$59,$f7,$f7,$d7,$77,$d7,$57,$67,$97,$ff,$f5 // }w]UfY...w.Wg...
        .byte $57,$ff,$ff,$ff,$ff,$ff,$5f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$a9,$22 // W....._........"
        .byte $88,$02,$00,$22,$08,$55,$a6,$2a,$88,$20,$08,$02,$00,$55,$a7,$27 // ...".U.*. ...U.'
        .byte $87,$27,$87,$27,$07,$57,$6a,$62,$48,$42,$40,$62 // .'.'.WjbHB@b

txt_229e:
        .byte $48,$55,$a7,$27,$87,$27,$07,$07,$07,$57,$a7,$27,$87,$07,$0b,$2b // HU.'.'...W.'...+
        .byte $03,$57,$a6,$2a,$88,$20,$08,$02,$05,$57,$08,$15,$95,$26,$99,$aa // .W.*. ...W...&..
        .byte $62,$95,$a6,$55,$59,$66,$9a,$68,$a2,$48,$56,$55,$99,$66,$a9,$8a // b..UYf.h.HVU.f..
        .byte $22,$85,$6b,$5b,$57,$5b,$97,$a7,$27,$57,$08,$15,$99,$26,$9a,$a8 // ".k[W[..'W...&..
        .byte $62,$88,$a7,$57,$97,$67,$a7,$87,$27,$87,$a7,$57,$57,$67,$97,$a7 // b..W.g..'..WWg..
        .byte $27,$8b,$62
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "J"
        .byte $65,$df,$60
        .byte $55,$ff,$ff
        .byte $57,$25
        .byte $96,$7d,$27,$57,$ff,$ff,$ff,$7f,$5f,$5f // .}'W....__

txt_2308:
        .text "BH"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $60
        .byte $5a,$27,$87
        .byte $27,$07,$07
        .byte $27,$97,$77
        .byte $62,$40,$60                           // b@`

txt_231b:
        .byte $40,$40,$da,$d5,$f7,$07,$07,$27,$07,$01,$80,$60,$da,$62,$40,$60 // @@.....'...`.b@`
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "JU"
        .byte $df,$60
        .byte $40,$42,$40,$80
        .byte $28,$96,$7d
        .byte $2b,$03
        .byte $23
        .byte $8b,$0b,$07,$87,$67,$40,$55,$ff,$ff,$ff,$ff,$ff,$ff,$07,$55,$f5 // ....g@U.......U.
        .byte $f4,$d6,$d0,$50,$5a,$60,$80,$02,$80,$00,$29,$95,$75,$27,$17,$1f // ...PZ`....).u'..
        .byte $5f,$7f,$7f,$ff,$ff,$d7,$f5,$ff,$ff,$ff,$ff,$55,$5a,$f5,$7f,$55 // _..........UZ..U
        .byte $ff,$ff,$ff,$57,$97,$7f,$77,$5d,$77   // ...W..w]w

txt_2374:
        .byte $55,$59,$56,$da,$f7,$f7,$f7,$77,$57,$9b,$67,$97,$d7,$f7,$f7,$77 // UYV....wW.g....w
        .byte $57,$97,$5f,$9f,$df,$d7,$5d,$77,$55,$59,$66,$5a,$f5,$ff,$fd,$77 // W._...]wUYfZ...w
        .byte $57,$97,$67,$97,$fd,$fd,$f5,$f7,$d5,$d9,$66,$5a,$75,$ff,$fd,$77 // W.g.......fZu..w
        .byte $5d,$95,$65,$97,$f7,$d7,$df,$5f,$7f,$7f,$55,$6a,$d8,$da,$f4,$f6 // ].e...._..Uj....
        .byte $f5,$fd,$ff,$ff,$a9,$22,$88,$02,$00,$62,$58,$d5,$a6,$2a,$88,$20 // ....."...bX..*. 
        .byte $09,$05,$17,$5f,$9f,$5f,$7f,$7f,$7f,$ff,$ff,$ff,$a5,$22,$88,$22 // ..._._......."."
        .byte $88,$20,$08,$55,$aa,$22,$88,$02,$00,$22,$05,$57,$a7,$27,$87,$17 // . .U."...".W.'..
        .byte $1f,$5f,$7f,$ff,$6a,$2a,$88,$20,$08,$02,$00,$55,$75,$7f,$7d,$77 // ._..j*. ...Uu.}w
        .byte $5d,$55,$55,$ff,$f7,$f7,$d7,$77,$d7,$57,$57,$ff,$08,$22,$88,$02 // ]UU....w.WW.."..
        .byte $80,$a2,$48,$95,$08,$15,$99,$26,$9a,$a8,$62,$94,$ff,$fd,$f5,$f6 // ..H....&..b.....
        .byte $d6,$d8,$d2,$d8,$d5,$55,$99,$66,$a9,$8a,$22,$88,$57,$57,$57,$67 // .....U.f..".WWWg
        .byte $97,$a7
        .text "+WUUU"
        .byte $66
        .byte $59,$6a,$62
        .byte $54,$5f
        .byte $55,$59,$66
        .byte $9a,$68,$a2,$88,$ff,$ff,$7f,$7f,$5f,$9f,$1f,$9f,$57,$57,$97,$67 // .h......_...WW.g
        .byte $a7,$87,$27,$87,$f6,$f5,$ff,$ff,$ff,$ff,$ff,$ff,$d2,$d8,$d0,$d8 // ..'.............
        .byte $d2,$d0,$d0,$da,$21,$81,$01,$81,$01,$29,$95,$7d,$fd,$fd,$fd,$fd // ....!....).}....
        .byte $fd,$fd,$fd,$fd,$02,$08,$20,$08,$02,$80,$60,$da,$1f,$9f,$1f,$9f // ...... ...`.....
        .byte $1f,$1f,$9f,$5f,$ff,$ff,$ff,$ff,$08,$0a,$a5,$1f,$ff,$ff,$ff,$ff // ..._............
        .byte $a6,$80,$60,$da,$ff,$ff,$ff,$ff,$55,$28,$96,$7d,$ff,$ff,$ff,$ff // ..`.....U(.}....
        .byte $57,$07,$87,$67,$60,$40,$60,$40,$40,$4a,$65,$5f,$07,$07,$27,$07 // W..g`@`@@Je_..'.
        .byte $05,$84,$60,$da,$d5,$df,$dd,$d7,$dd,$d5,$d6,$d9,$fd,$fd,$dd,$75 // ..`............u
        .byte $dd,$55,$65,$99,$f5,$ff,$fd,$77,$5d,$95,$66,$99,$df,$df,$df,$5f // .Ue....w].f...._
        .byte $df,$5f,$5f,$9f,$bf,$b7,$55,$ff,$ff,$ff,$ff,$ff,$f5,$ff,$55,$ff // .__...U.......U.
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$55,$ff,$ff,$ff,$ff,$ff,$d7,$f7,$57,$ff // ......U.......W.
        .byte $ff,$ff,$ff,$ff,$ff,$7f,$5d,$77,$5d,$55,$66,$59,$75,$7f,$7d,$77 // ......]w]UfYu.}w
        .byte $5d,$59,$66,$5a,$f7,$f7,$d7,$77,$d7,$97,$67,$97,$da,$d2,$d8,$d6 // ]YfZ...w..g.....
        .byte $f4,$f5,$fd,$ff,$a6,$2a,$88,$20,$08,$02,$50,$d5,$57,$27,$87,$27 // .....*. ..P.W'.'
        .byte $87,$07,$07,$57,$54,$62,$48,$62,$48,$60 // ...WTbHbH`

txt_251e:
        .byte $48,$55,$aa,$22,$88,$02,$00,$21,$15,$5f,$9f,$1f,$9f,$5f,$7f,$7f // HU."...!._..._..
        .byte $ff,$ff,$ff,$08,$22,$88,$02,$80,$a2,$55,$ff,$a7,$27,$87,$27,$07 // ...."....U..'.'.
        .byte $07,$57                               // .W

spr_2540:
        .byte $55,$55,$59,$66,$9a,$68,$a1,$87,$ff,$ff,$ff,$ff,$ff,$ff,$08,$08 // UUYf.h..........
        .byte $ff,$ff,$ff,$ff,$ff,$ff,$a7,$87,$62,$55,$ff,$ff,$ff,$f5,$d5,$df // ........bU......
        .byte $07,$57,$ff,$ff,$55,$40,$60,$da,$62,$55,$ff,$ff,$ff,$ff,$ff,$ff // .W..U@`.bU......
        .byte $07
        .byte $57,$ff,$ff,$d5,$d0,$d0,$da
        .byte $40,$60
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "JJ"
        .byte $65,$df
        .byte $07,$27,$07,$07,$85,$80,$60,$da,$62,$40,$60,$40,$40,$4a,$65,$df // .'....`.b@`@@Je.
        .byte $82,$08,$a0,$88,$42,$95,$ff,$ff,$27,$87,$07,$87,$07,$57,$ff,$ff // ....B...'....W..
        .byte $07,$55,$f4,$f4,$d6,$d0,$d0,$da,$60,$00,$02,$80,$00,$28,$95,$7d // .U......`....(.}
        .byte $27,$17,$1f,$5f,$7f,$7f,$7f,$ff,$5f,$77,$5d,$77,$55,$59,$66,$5a // '.._...._w]wUYfZ
        .byte $ff,$f5,$57,$ff,$ff,$ff,$55,$59,$5f,$7f,$ff,$ff,$ff,$ff,$57,$a7 // ..W...UY_.....W.
        .byte $d5,$df,$d5,$ff,$ff,$ff,$57,$97,$d7,$f5,$ff,$ff,$ff,$ff,$ff,$ff // ......W.........
        .byte $f5,$7f,$55,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$55,$77,$5d,$55,$66,$59 // ..U.......Uw]UfY
        .byte $ff,$ff,$57,$77,$d7,$57,$67,$97,$55,$7f,$7d,$77,$5d,$55,$55,$ff // ..Ww.Wg.U.}w]UU.
        .byte $fd,$f5,$d7,$77,$d7,$57,$57,$ff,$a5,$22,$88,$02,$00,$22,$48,$55 // ...w.WW.."..."HU
        .byte $6a,$55,$ff,$ff,$ff,$ff,$ff,$ff,$a7,$57,$ff,$ff,$ff,$ff,$ff,$ff // jU.......W......
        .byte $55,$62
        .byte $48,$42,$40,$62
        .text "HUW'"
        .byte $87
        .byte $27,$07,$07,$07
        .byte $57
        .fill 8, $19

dat_2638:
        // === Fill data (247 bytes, $2638-$272e) ===
        .fill 72, $ff

spr_2680:
        .fill 175, $ff
        .byte $bd                                   // .

dat_2730:
        // === Fill data (208 bytes, $2730-$27ff) ===
        .fill 208, $ff

txt_2800:
        .fill 19, $29
        .fill 8, $2a
        .byte $00,$29,$00,$00,$00                   // .)...

txt_2820:
        .text "***("
        .byte $00,$00,$00

txt_2827:
        .text "+++*++++"
        .byte $00

txt_2830:
        .text "++,,,,,,,,,"
        .byte $00,$00,$00,$00
        .byte $2c
        .byte $00,$04,$08,$0c,$10,$14,$18,$1c       // ........

txt_2848:
        .byte $20,$24,$a0,$a4,$a8,$ac,$b4,$b8,$bc,$c0,$c4 //  $.........

txt_2853:
        .byte $40                                   // @ character
        .text "DHLPX"
        .byte $5c                                   // backslash
        .byte $60,$00,$e0,$00,$00,$00,$e8,$f5,$f7
        .byte $00,$00,$00,$00,$85,$88,$8c,$64,$90,$95,$98,$9d,$00,$a0,$a4 // .......d.......

txt_2872:
        .text " $(,048<A"
        .byte $00,$00,$00,$00
        .byte $44,$04,$04
        .byte $04,$04,$04,$04,$04,$04,$04,$02,$04,$04,$04,$06,$04,$04,$04,$04 // ................
        .byte $04,$04,$04,$04,$04,$06,$04,$04,$04,$04,$07,$04,$04,$04,$02,$02 // ................
        .byte $05,$04,$04,$04,$04,$02,$04,$04,$04,$04,$03,$04,$03,$04,$04,$03 // ................
        .fill 8, $04
        .byte $02,$00,$00,$00,$00,$04               // ......

dat_28c0:
        // === Fill data (1 bytes, $28c0-$28c0) ===
        .byte $00                                   // .

// --- Region $2900-$2cff ---
.pc = $2900 "dat_2900"

dat_2900:
        .byte $ff,$ff,$ff,$ff,$00,$01,$02,$03,$04,$05,$02,$03,$00,$06,$07,$03 // ................
        .byte $04,$05,$02,$03,$00,$08,$09,$0a,$00,$08,$09,$0a,$00,$08,$09,$0a // ................
        .byte $04,$0b,$0c,$0d,$0e,$0f,$ff,$ff,$ff,$ff,$ff,$ff,$10,$11,$12,$13 // ................
        .byte $10,$11,$14,$15,$10,$16,$17,$18,$10,$16,$19,$13,$10,$11,$1a,$18 // ................
        .byte $10,$11,$1a,$18,$10,$16,$1b,$1c,$10,$11,$12,$13,$1d,$1e,$ff,$ff // ................
        .byte $ff,$ff,$ff,$ff,$1f,$20,$21,$22,$1f,$20,$23,$24,$1f,$25,$26,$27 // ..... !". #$.%&'
        .byte $1f,$25,$28,$22,$1f,$20,$29,$27,$1f,$20,$2a,$ff,$1f,$25,$28,$22 // .%(". )'. *..%("
        .byte $1f                                   // .

txt_2971:
        .text " !"
        .byte $22                                   // double quote
        .text "+,"
        .byte $ff,$ff,$ff,$ff,$ff,$ff

txt_297c:
        .text "-./0-1234563-123"
        .text "4570-."
        .byte $ff,$ff

txt_2994:
        .text "4570-.89:;"
        .byte $ff,$ff,$ff,$ff,$0c,$0d
        .byte $04,$0b,$0c,$0d,$04,$0b,$ff,$ff,$04,$05
        .text "<=>?"
        .byte $ff,$ff
        .byte $04,$05,$02,$03,$00,$01,$02,$03,$04,$05,$02,$03,$00,$40,$02,$03 // .............@..
        .byte $04,$05,$02,$03,$ff,$ff,$19,$13,$10,$11,$14,$15,$41,$42,$ff,$ff // ............AB..
        .byte $10,$16,$19,$43,$44,$45,$ff,$ff,$10,$16,$19,$13,$10,$16,$19,$13 // ...CDE..........
        .byte $10,$11,$14
        .byte $46,$10
        .byte $47,$48,$13,$10,$11,$14,$15
        .text "IJ("
        .byte $22                                   // double quote
        .byte $1f
        .byte $20,$23,$24,$1f
        .byte $25,$26,$27,$1f
        .text "%(KLM"
        .byte $ff,$ff
        .byte $1f,$25,$28,$22,$1f,$25,$28,$22,$1f,$20,$4e,$4f,$1f,$25,$28,$22 // .%(".%(". NO.%("
        .byte $1f                                   // .

txt_2a15:
        .text " #$-123-./0-PQ0-"
        .text "./RST"
        .byte $ff,$ff

txt_2a2c:
        .text "-U/045V3-."
        .byte $ff,$ff

txt_2a38:
        .text "4570-./0"
        .byte $00,$08,$09,$0a
        .text "WXYZ"
        .byte $04,$0b,$0c,$0d,$04,$0b,$0c,$0d,$04,$0b,$0c,$0d,$5b,$5c,$ff,$ff // ............[\..
        .byte $04,$0b,$0c,$0d,$04,$0b,$0c,$5d,$04,$05,$09,$0a,$ff,$ff,$ff,$ff // .......]........
        .byte $5e,$11,$5f,$60,$ff,$61,$62,$ff,$41,$42,$19,$13,$41,$42,$19,$13 // ^._`.ab.AB..AB..
        .byte $41,$42,$19,$43,$44,$45,$ff,$ff,$63,$64,$14,$15,$65,$64,$66,$67 // AB.CDE..cd..edfg
        .byte $68,$69,$6a,$6b,$ff,$ff,$ff,$ff,$6c,$6d,$23,$22,$ff,$4c,$4d,$ff // hijk....lm#".LM.
        .byte $1f
        .byte $25,$28,$22,$6e,$6f
        .byte $28,$70,$1f
        .text "%(KLM"
        .byte $ff,$ff
        .byte $71,$72,$23,$24,$6c,$6d,$21,$22,$73,$74,$75,$27,$ff,$ff,$ff,$ff // qr#$lm!"stu'....
        .text "-163"
        .byte $ff
        .byte $53,$54,$ff
        .text "45V3"
        .byte $76,$77,$78,$79
        .byte $34,$35,$37,$7a,$7b,$7c,$ff,$ff       // 457z{|..

txt_2ad0:
        .text "-./0-1V3-1"
        .byte $7d
        .byte $30,$ff,$ff,$ff,$ff
        .fill 21, $ff
        .byte $5b,$5c                               // [\

dat_2af7:
        // === Fill data (38 bytes, $2af7-$2b1c) ===
        .fill 38, $ff
        .byte $44,$45                               // DE

dat_2b1f:
        // === Fill data (38 bytes, $2b1f-$2b44) ===
        .fill 38, $ff
        .byte $7e,$7f                               // ~.

dat_2b47:
        // === Fill data (38 bytes, $2b47-$2b6c) ===
        .fill 38, $ff
        .byte $80,$54,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff // .T..............
        .fill 8, $ff
        .byte $81,$5c,$ff,$ff,$82,$83,$84,$85,$86,$87,$ff,$ff,$ff,$ff,$ff,$ff // .\..............
        .fill 11, $ff
        .byte $00,$01,$02,$03,$57,$58,$88,$ff,$ff,$ff,$ff,$ff,$ff,$89,$18,$ff // ....WX..........
        .byte $ff,$8a,$8b,$ff,$8c,$8d,$8e,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $8f,$90,$91,$92,$ff,$ff,$ff,$ff,$93,$94,$14,$13,$ff,$44,$45,$ff // .............DE.
        .fill 9, $ff
        .byte $95,$96,$ff,$8c,$97,$98,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$99 // ................
        .byte $9a,$9b,$9c,$ff,$ff,$ff,$ff,$1f,$72,$9d,$22,$ff,$9e,$9f,$ff,$ff // ........r.".....
        .fill 8, $ff
        .byte $a0,$a1,$a2,$a3,$a4,$a5,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff // ................
        .byte $ff,$ff,$ff,$ff,$a6,$a7,$ff
        .text "45V3"
        .byte $ff
        .byte $2d,$2e,$ff,$04
        .byte $05,$02,$03,$04,$05,$02,$03,$04,$0b,$0c,$0d,$04,$05,$09,$0a,$00 // ................
        .byte $a8,$07,$03,$04,$05,$09,$0a,$00,$a8,$07,$03,$00,$a8,$07,$03,$ff // ................
        .byte $a9,$aa,$ff,$00,$a8,$07,$03,$ab,$ac,$14,$46,$ad,$ae,$14,$15,$65 // ..........F....e
        .byte $64,$12,$13,$af,$b0,$5f,$60,$10,$11,$5f,$60,$ad,$69,$6a,$6b,$63 // d...._`.._`.ijkc
        .byte $64,$14,$15,$b1,$64,$12,$13,$ff,$b2,$b3,$ff,$ad,$b4,$b5,$b6,$b7 // d...d...........
        .byte $20,$b8,$b9,$49,$ba                   //  ..I.

txt_2c76:
        .byte $23,$24,$bb,$bc,$21,$22,$6c,$6d,$23,$22,$1f,$20,$23,$22,$ff,$9e // #$..!"lm#". #"..
        .byte $9f,$ff,$71,$72,$23,$24,$6c,$6d,$23,$22,$ff,$bd,$be,$ff,$ff,$bf // ..qr#$lm#"......
        .byte $c0,$ff                               // ..

txt_2c98:
        .text "-170-1V3"
        .byte $ff,$ff

txt_2ca2:
        .text "/0-1V345V3"
        .byte $ff
        .byte $2d,$2e,$ff

txt_2cb0:
        .text "45V34"
        .byte $c1
        .byte $56,$33,$ff,$c2,$c3,$ff,$ff,$c4,$c5

dat_2cbf:
        // === Fill data (65 bytes, $2cbf-$2cff) ===
        .fill 65, $ff

// --- Region $2dca-$2de0 ---
.pc = $2dca "Segment $2dca"
        .fill 23, $ea

// --- Region $2e17-$2e20 ---
.pc = $2e17 "Segment $2e17"
        .fill 10, $ea

// --- Region $311f-$3167 ---
.pc = $311f "bmp_311f"

bmp_311f:
        // === Bitmap data (73 bytes, $311f-$3167) ===
        .byte $00,$06,$06,$0e,$0e,$0f,$0f,$0f,$00,$0b,$0b,$05,$05,$0d,$0d,$0d // ................
        .byte $00,$02,$02,$0a,$0a,$0f,$0f,$0f,$00,$00,$06,$06,$06,$0e,$0e,$0e // ................
        .byte $00,$00,$0b,$0b,$0b,$05,$05,$05,$00,$00,$02,$02,$0a,$0a,$0a,$0a // ................
        .byte $00,$00,$00,$00,$00,$06,$06,$06,$00,$00,$00,$00,$00,$0b,$0b,$0b // ................
        .byte $00,$00,$00,$00,$00,$02,$02,$02,$01   // .........

// --- Region $31e6-$31fd ---
.pc = $31e6 "bmp_31e6"

bmp_31e6:
        // === Bitmap data (24 bytes, $31e6-$31fd) ===
        .byte $00,$00,$01,$01,$00,$00,$00,$00,$3c,$f3,$1d,$35,$21,$17,$44,$47 // ........<..5!.DG
        .byte $04,$06,$03,$05,$03,$02,$01,$05       // ........

// --- Region $3240-$3250 ---
.pc = $3240 "bmp_3240"

bmp_3240:
        // === Bitmap data (17 bytes, $3240-$3250) ===
        .text "89:;<=>??>=<;:98"
        .byte $d4                                   // .

// --- Region $33b0-$33ba ---
.pc = $33b0 "bmp_33b0"

bmp_33b0:
        // === Bitmap data (11 bytes, $33b0-$33ba) ===
        .text "O.P.BASKET "

// --- Region $33d5-$341f ---
.pc = $33d5 "Segment $33d5"
        .byte $a9,$00,$85,$01,$a9,$d8,$85,$ac,$a9,$45,$85,$ad,$a9,$01,$85,$ae // .........E......
        .byte $a9,$08,$85,$af,$a0,$00,$b1,$ac,$91,$ae,$c8,$d0,$f9,$e6,$ad,$e6 // ................
        .byte $af,$a5,$af,$c9,$ff,$d0,$ef,$a9,$37,$85,$01 // ........7..

scr_3400:
        // === Screen RAM (32 bytes, $3400-$341f) ===
        .encoding "screencode_mixed"
        .byte $58,$ea,$ea,$ea,$a9                   // scrcode: .....
        .text "@"
        .byte $8d                                   // scrcode: .
        .text "@h"
        .byte $a9                                   // scrcode: .
        .text "a"
        .byte $85                                   // scrcode: .
        .text "+"
        .byte $a9                                   // scrcode: .
        .text "h"
        .byte $85                                   // scrcode: .
        .text ","
        .byte $a9,$d2,$85                           // scrcode: ...
        .text "-"
        .byte $a9,$6c,$85                           // scrcode: ...
        .text ". "
        .byte $e2,$fc,$4c,$ae,$a7                   // scrcode: .....
        .encoding "petscii_upper"

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

// --- Region $3509-$3509 ---
.pc = $3509 "bmp_3509"

bmp_3509:
        // === Screen RAM (1 bytes, $3509-$3509) ===
        .encoding "screencode_mixed"
        .text "@"
        .encoding "petscii_upper"

// --- Region $39b7-$3a3e ---
.pc = $39b7 "Segment $39b7"
        .byte $00,$00,$00,$00,$00,$08,$02,$02,$0c,$0c,$0c,$00,$00,$0c,$00,$00 // ................
        .byte $00,$01,$01,$01,$38,$20,$08,$fe,$fe,$fe,$41,$41,$11,$01,$00,$00 // ....8 ....AA....
        .byte $02,$00,$04,$04,$00,$00,$00,$04,$00,$00,$00,$18,$06,$06,$00,$28 // ...............(
        .byte $00,$00,$f2,$00,$14,$01,$00,$03,$02,$00,$01,$00,$00,$78,$01,$cf // .............x..
        .byte $2f,$38,$00,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$03,$ff,$41 // /8.............A
        .byte $17,$3a,$41,$17,$3a,$40,$f0,$00,$00,$0e,$05,$08,$00,$00,$00,$00 // .:A.:@..........
        .byte $00,$00,$3c,$24,$00,$02,$30,$10,$00,$00,$03 // ..<$..0....

txt_3a22:
        .text "0C;A"
        .byte $cd,$e5,$fd
        .byte $43,$43,$43,$00,$07,$0e,$00,$00,$00
        .byte $1f,$06,$40,$40,$80,$30,$ff,$a9,$00,$8d,$88,$3a,$60 // ..@@.0.....:`

// --- Region $41d1-$4290 ---
.pc = $41d1 "dat_41d1"

dat_41d1:
        .byte $17,$27,$39,$4c,$5f,$74,$8a,$a2,$bb,$d5,$f1,$0f,$2e,$4f,$72,$98 // .'9L_t.......Or.
        .byte $bf,$e9,$15,$44,$76,$ab,$e3,$1e,$5c,$9f,$e5,$30,$7f,$d2,$2b,$89 // ...Dv...\..0..+.
        .byte $ed,$56,$c6,$3c,$b9,$3e,$cb,$60,$fe,$a5,$57,$13,$da,$ac,$8c,$79 // .V.<.>.`..W....y
        .byte $73,$7d,$96,$c1,$fd,$4b,$ae,$26,$b4,$59,$18,$f2,$e7,$fa,$2d,$82 // s}...K.&.Y....-.
        .byte $fa,$97,$5c,$4c,$68,$b3,$31,$e4,$cf,$f5,$5b,$04,$f4,$2f,$b9,$98 // ..\Lh.1...[../..
        .byte $d0,$67,$62,$c8,$9e,$eb,$b7,$09,$e8,$5e,$73,$31,$a1,$cf,$c5,$ff // .gb......^s1....
        .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,$06,$07,$07,$08,$08,$09,$09,$0a,$0a,$0b,$0c // ................
        .byte $0d,$0d,$0e,$0f,$10,$11,$12,$13,$14,$15,$17,$18,$1a,$1b,$1d,$1f // ................

txt_426c:
        .text " "
        .byte $22                                   // double quote character
        .text "$')+.147:>AEINSW"
        .byte $5d,$62,$68,$6e,$75,$7c,$83,$8b,$93,$9c,$a6,$af,$ba,$c5,$d1,$dd // ]bhnu|..........
        .byte $ea,$f8,$ff                           // ...

// --- Region $42bc-$45d7 ---
.pc = $42bc "dat_42bc"

dat_42bc:
        .byte $d4,$e1,$f2,$02,$09,$0e               // ......

txt_42c2:
        .text "BBBCCC"
        .byte $d8                                   // 'X' | $80 (end-of-string marker)
        .byte $e9,$f7,$07,$09,$0f                   // .....

txt_42ce:
        .text "BBBCCC"
        .byte $81,$11,$10,$7f,$01,$41,$0d,$0b,$09,$07,$05,$03,$7f,$81,$41,$41 // .....A........AA
        .byte $80,$40,$80,$7e,$04,$01,$41,$0e,$0b,$41,$0d,$41,$7e,$04,$81,$11 // .@.~..A..A.A~...
        .byte $40,$80,$7f,$03
        .byte $34,$03,$fe
        .text "4$4$"
        .byte $08,$13,$7f
        .byte $41,$51
        .byte $21,$11,$7f,$00,$7f,$07,$02,$00,$7e,$00,$7f,$00,$03,$08,$7e,$00 // !.......~.....~.
        .byte $18,$1f,$43,$43,$80,$1f,$02,$e0,$06,$f8,$81,$80,$1f,$0c,$f8,$81 // ..CC............

txt_4324:
        .text ",28>CCCC"
        .byte $6f,$08,$04,$10,$10,$81,$3e,$70,$02,$50,$04,$81,$6f,$f0,$03,$a0 // o.....>p.P..o...
        .byte $06,$81,$9f,$80,$03,$50,$06,$81,$20,$80,$60,$80,$40,$60,$6a,$79 // .....P.. .`.@`jy
        .byte $2c,$1f,$df,$1f,$00,$02,$00,$98,$01,$01,$00,$ca,$00,$01,$00,$a9 // ,...............
        .byte $00,$02,$02,$68,$00,$02,$02,$68,$00,$02,$00,$f8,$10,$04,$00,$00 // ...h...h........
        .byte $00,$00,$00,$00,$00,$00,$00,$08,$11,$00,$00,$04,$00,$00,$10,$08 // ................
        .byte $11,$00,$f8,$01,$00,$00,$00,$08,$11,$00,$f8,$02,$00,$00,$00,$03 // ................
        .byte $41,$00,$01,$00,$31,$41,$11,$04,$41,$00,$03,$80,$00,$22,$30,$04 // A...1A..A...."0.
        .byte $41,$00,$03,$81,$00
        .byte $22,$30,$18
        .byte $41,$00,$04
        .text "A;C0"
        .byte $08
        .byte $11,$00,$55,$03,$00,$00,$00,$81,$c7,$01,$02,$21,$0c,$01,$02,$bf // ..U........!....
        .byte $c6,$43,$43,$08,$05,$03,$00,$00,$7e,$00,$09,$09,$06,$02,$00,$7e // .CC.....~......~
        .byte $00,$80,$07,$07,$07,$08,$09,$0a,$09,$0b,$09,$0a,$09,$0b,$0e,$83 // ................
        .byte $09,$0a,$09,$0b,$09,$0a,$09,$0b,$ff,$80,$05,$06,$05,$06,$05,$06 // ................
        .byte $05,$06,$05,$06,$05,$06,$0d,$83,$05,$06,$05,$06,$05,$06,$05,$06 // ................
        .byte $ff,$8c,$01,$01,$01,$02,$03,$04,$03,$04,$03,$04,$03,$04,$0c,$8f // ................
        .byte $03,$04,$03,$04,$03,$04,$03,$04,$ff,$60,$bf,$ff,$61,$82 // .........`..a.

txt_441a:
        .text "00357530.+'+)-./"
        .byte $ff,$61,$82                           // .a.

txt_442d:
        .text "0035753.03.+'$"
        .byte $22                                   // double quote character
        .byte $1f,$ff,$62,$82,$30,$61,$30,$33,$35,$63,$37,$61,$35,$33,$63,$30 // ..b.0a035c7a53c0
        .byte $62,$2e,$61,$2b,$27,$62,$27,$63,$29,$61,$27,$62,$2b,$61,$2e,$ff // b.a+'b'c)a'b+a..
        .byte $62,$82,$30,$61,$30,$33,$35,$63,$37,$61,$35,$33,$63,$30,$62,$2e // b.0a035c7a53c0b.
        .byte $61,$2b,$27,$62,$27,$63,$29,$62,$2d,$63,$2e,$2f,$ff,$f2,$40,$f1 // a+'b'c)b-c./..@.
        .byte $f2,$64,$82,$18,$60,$00,$64,$1b,$60,$85,$00,$64,$82,$1b,$60,$00 // .d..`.d.`..d..`.
        .byte $f2,$02,$64,$85,$1b,$f2,$40,$82,$18,$1b,$18,$60,$00,$64,$13,$16 // ..d...@....`.d..
        .byte $17,$ff,$f1,$f2,$64,$82,$18,$60,$00,$64,$1b,$60,$85,$00,$64,$82 // ....d..`.d.`..d.
        .byte $1b,$60,$00,$f2,$02,$64,$85,$1b,$f2,$40,$82,$18,$1b,$18,$f0,$24 // .`...d...@.....$
        .byte $02,$82,$1f,$82,$1e,$1d,$1b,$ff,$62,$8b,$00,$00,$00,$00,$ff,$62 // ........b......b
        .byte $8b,$00,$00,$63,$82,$00,$85,$00,$82,$00,$85,$00,$82,$00,$00,$ff // ...c............
        .byte $f3,$0c,$f2,$40,$65,$88,$37,$f3,$03,$85,$37,$67,$82,$37,$3a,$3c // ...@e.7...7g.7:<
        .byte $85,$3f,$3e,$82,$3f,$f3,$10,$f2,$06,$88,$41,$ff,$f3,$0c,$f2,$40 // .?>.?.....A....@
        .byte $66,$88,$33,$f3,$03,$85,$33,$67,$82,$33,$37,$3a,$f3,$03,$85,$3f // f.3...3g.37:...?
        .byte $3e,$82,$3a,$f3,$0c,$f2,$06,$88,$3c,$ff,$f3,$0c,$f2,$40,$66,$88 // >.:.....<....@f.
        .byte $33,$f3,$03,$85,$33,$67,$82,$35,$37,$35,$f0,$41,$02,$3f,$3f,$85 // 3...3g.575.A.??.
        .byte $3e,$f3,$30,$f2,$06,$f0,$3c,$02,$3a,$f3,$05,$f2,$03,$82,$37,$35 // >.0...<.:.....75
        .byte $ff,$62,$82,$00,$85,$00,$82,$00,$85,$00,$82,$00,$8e,$00,$63,$82 // .b............c.
        .byte $00,$00,$85,$00,$ff,$82,$18,$85,$18,$82,$18,$85,$18,$82,$18,$8e // ................
        .byte $18,$82,$18,$18,$85,$18,$ff,$f3,$06,$65,$82,$37,$85,$37,$82,$37 // .........e.7.7.7
        .byte $85,$37,$82,$37,$8e,$37,$82,$37,$37,$85,$37,$ff,$62,$82,$00,$85 // .7.7.7.77.7.b...
        .byte $00,$82,$00,$82,$00,$68,$82,$35,$35,$35,$ff,$62,$8b,$00,$ff,$8c // .....h.555.b....
        .byte $03,$04,$ff,$00,$ff,$80,$00,$ff,$15,$18,$2b,$3e,$5c,$79,$9e,$c4 // ..........+>\y..
        .byte $cb,$dc,$f8,$16,$3d,$51,$63,$78,$87,$8b,$8b,$8b,$8b,$8b,$8b,$8b // ....=Qcx........
        .byte $8b                                   // .

txt_45ad:
        .text "DDDDDDDDDDDEEEEEEEEEEEEEE"
        .byte $02,$00,$cd,$e5,$fd                   // .....

txt_45cb:
        .text "CCC"
        .byte $c8                                   // 'H' | $80 (end-of-string marker)
        .text "E"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $80
        .byte $30,$ff,$02,$02
