// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:24
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $1ffe  (6143 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0813 (2067)
// IRQ handler:  $086a (irq_086a)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 1644 bytes, Data: 4499 bytes
// Labels: 149, Subroutines: 2
//
// Cross-references: all OK
// ============================================


// --- Region $0813-$08f3 ---
.pc = $0813 "main_0813"
main_0813: {
        sei
        lda #$7f
        sta $dc0d
        ldx #$00
        stx $dc0e
        inx
        stx $d01a
        lda #$d8
        sta $d016
        lda #$1b
        sta $d011
        ldx #$00
loop:
        lda dat_1900,x
        sta $0400,x
        lda $1a00,x
        sta $0500,x
        lda $1b00,x
        sta $0600,x
        lda $1bf0,x
        sta $06f0,x
        lda #$08
        sta $d800,x
        sta $d900,x
        sta $da00,x
        sta $db00,x
        dex
        bne loop
        lda #$6a
        sta $0314
        lda #$08
        sta $0315
        lda #$13
        sta $d018
        cli
        jmp $0867
}

irq_086a:
        lda #$32
        sta $d012
        ldx #$06

loc_0871:
        dex
        bne loc_0871
        ldx #$00

loc_0876:
        ldy #$08
        lda $0900,x

loc_087b:
        sta $d021
        sta $d020
        inx
        dey
        beq loc_0876
        cpx #$90
        bcs $0898
        jsr sub_0a88
        lda $0a00,x
        sta $d023
        lda $0900,x
        clc
        bcc loc_087b
        lda #$01
        sta $d019
        ldy $0989
        ldx #$83

loc_08a2:
        lda $0907,x
        sta $0908,x
        dex
        bne loc_08a2
        sty $0908
        ldy $0a08
        ldx #$00

loc_08b3:
        lda $0a09,x
        sta $0a08,x
        inx
        cpx #$7d
        bne loc_08b3
        sty $0a83
        ldy $0997
        ldx #$00

loc_08c6:
        lda $0998,x
        sta $0997,x
        inx
        cpx #$18
        bne loc_08c6
        sty $09ad
        inc $08ff
        ldx $08ff
        lda $0a98,x
        sta $d022
        lda $08ff
        cmp #$57
        bne loc_08ec
        lda #$00
        sta $08ff

loc_08ec:
        jsr sub_177b
        jmp loc_0d30

dat_08f2:
        // === Sine/lookup table (190 bytes, range $00-$30) ===
        .byte $00,$00                               // ..

// --- Region $0a88-$0a90 ---
.pc = $0a88 "sub_0a88"
// Referenced by: jsr from $0889

sub_0a88:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        rts

// --- Region $0b48-$0b50 ---
.pc = $0b48 "loc_0b48"

loc_0b48:
        ora $14
        bvc loc_0b9c
        eor $50,x
        bvc loc_0b50

loc_0b50:
        rti

// --- Region $0b9c-$0bb0 ---
.pc = $0b9c "loc_0b9c"

loc_0b9c:
        bvc loc_0bee
        bvc loc_0ba0

loc_0ba0:
        bvc loc_0ba2

loc_0ba2:
        brk

dat_0ba3:
        .byte $00,$00,$00,$00,$00                   // .....

loc_0ba8:
        ora $50,x
        bvc loc_0bfd
        bvc loc_0bfe
        ora $00,x
        rti

// --- Region $0be2-$0bf2 ---
.pc = $0be2 "loc_0be2"

loc_0be2:
        bvc loc_0c34
        bvc loc_0c36
        rti

dat_0be7:
        .byte $00,$14,$14,$15,$15,$15,$14           // .......

loc_0bee:
        .byte $14,$00                               // nop $00,x // ILLEGAL
        .byte $14,$50                               // nop $50,x // ILLEGAL
        rti

// --- Region $0bfd-$0c00 ---
.pc = $0bfd "loc_0bfd"

loc_0bfd:
.label loc_0bfe = * + 1
        .byte $14,$15                               // nop $15,x // ILLEGAL
        brk
        brk

// --- Region $0c34-$0c44 ---
.pc = $0c34 "loc_0c34"

loc_0c34:
        .byte $14,$14                               // nop $14,x // ILLEGAL

loc_0c36:
        bvc loc_0c38

loc_0c38:
        eor $50,x
        bvc loc_0c91
        bvc loc_0c8e
        bvc loc_0c40

loc_0c40:
        bvc loc_0c56
        .byte $14,$50                               // nop $50,x // ILLEGAL
        brk

// --- Region $0c56-$0c6c ---
.pc = $0c56 "loc_0c56"

loc_0c56:
        bvc loc_0c6c
        eor $50,x
        bvc loc_0cb1
        eor $50,x
        bvc loc_0c60

loc_0c60:
        bvc loc_0c76
        .byte $14,$50                               // nop $50,x // ILLEGAL
        rti

dat_0c65:
        .byte $50,$14,$00,$15,$50,$50,$15           // P...PP.

loc_0c6c:
        brk

// --- Region $0c76-$0c82 ---
.pc = $0c76 "loc_0c76"

loc_0c76:
        bvc loc_0c78

loc_0c78:
        eor $01,x
        ora ($01,x)
        ora ($01,x)
        ora ($00,x)
        .byte $54,$40                               // nop $40,x // ILLEGAL
        rti

// --- Region $0c8e-$0c94 ---
.pc = $0c8e "loc_0c8e"

loc_0c8e:
        ora $00,x
.label loc_0c91 = * + 1
        .byte $14,$14                               // nop $14,x // ILLEGAL
        .byte $14,$14                               // nop $14,x // ILLEGAL

dat_0c94:
        .byte $14                                   // .

// --- Region $0cb1-$0cb7 ---
.pc = $0cb1 "loc_0cb1"

loc_0cb1:
        ora $45
        eor $55,x
        ora $05,x
        brk

// --- Region $0d30-$0d44 ---
.pc = $0d30 "loc_0d30"

loc_0d30:
        lda $dc01
        cmp #$ef
        beq loc_0d3a
        jmp $febc

loc_0d3a:
        sei
        lda #$00
        sta $d418
        jmp loc_1f0d

dat_0d43:
        // === Data block (2 bytes, $0d43-$0d44) ===
        .byte $00,$00                               // ..

// --- Region $103a-$14d3 ---
.pc = $103a "loc_103a"

loc_103a:
        ldx #$02
        dec $182b
        bpl loc_1047
        lda dat_17e5
        sta $182b

loc_1047:
        stx $fe
        lda $17e6,x
        sta $1819
        tay
        lda $182b
        cmp dat_17e5
        bne loc_106a
        lda $168e,x
        sta $fa
        lda $1691,x
        sta $fb
        dec $17ef,x
        bmi loc_106d
        jmp loc_1185

loc_106a:
        jmp loc_11a4

loc_106d:
        ldy dat_17e9,x
        lda ($fa),y
        cmp #$fe
        beq loc_1088
        cmp #$ff
        bne loc_1090
        lda #$00
        sta $17ef,x
        sta dat_17e9,x
        sta $17ec,x
        jmp loc_106d

loc_1088:
        lda #$01
        sta $182c
        jmp loc_17d9

loc_1090:
        sta $1824
        and #$80
        beq loc_10a5
        lda $1824
        and #$1f
        sta $1810,x
        inc dat_17e9,x
        jmp loc_106d

loc_10a5:
        lda $1824
        asl
        tay
        lda $1694,y
        sta $fc
        lda $1695,y
        sta $fd
        lda #$00
        sta $1804,x
        ldy $17ec,x
        lda #$ff
        sta $1823
        sta $1807,x
        lda ($fc),y
        sta $17f2,x
        sta $1822
        and #$3f
        sta $17ef,x
        bit $1822
        bvs loc_1118
        inc $17ec,x
        lda $1822
        bpl loc_10ef
        iny
        lda ($fc),y
        bpl loc_10e9
        sta $1804,x
        jmp loc_10ec

loc_10e9:
        sta $17fb,x

loc_10ec:
        inc $17ec,x

loc_10ef:
        iny
        lda ($fc),y
        clc
        adc $1810,x
        sta $17f8,x
        tay
        lda dat_14d4,y
        sta $1821
        lda $1534,y
        ldy $1819
        sta $d401,y
        sta $17fe,x
        lda $1821
        sta $d400,y
        sta $1801,x
        jmp loc_111b

loc_1118:
        dec $1823

loc_111b:
        ldy $1819
        lda $17fb,x
        tax
        stx $1813
        lda $1636,x
        sta $181f
        lda $1636,x
        and $1823
        sta $d404,y
        lda #$00
        sta $d402,y
        ldx $fe
        sta $180a,x
        ldx $1813
        lda $162a,x
        sta $d403,y
        ldx $fe
        sta $180d,x
        ldx $1813
        lda $161e,x
        ldx $fe
        sta $1827,x
        ldx $1813
        lda $1642,x
        sta $d405,y
        lda $164e,x
        sta $d406,y
        ldx $fe
        lda $181f
        sta $17f5,x
        inc $17ec,x
        ldy $17ec,x
        lda ($fc),y
        cmp #$ff
        bne loc_1182
        lda #$00
        sta $17ec,x
        inc dat_17e9,x

loc_1182:
        jmp loc_14cb

loc_1185:
        ldy $1819
        lda $17f2,x
        and #$40
        bne loc_11a4
        lda $17ef,x
        bne loc_11a4
        lda $17f5,x
        and #$fe
        sta $d404,y
        lda #$00
        sta $d405,y
        sta $d406,y

loc_11a4:
        lda $17fb,x
        tay
        lda $165a,y
        sta $1816
        lda $1666,y
        sta $1817
        lda $1672,y
        sta smc_1818                                // SMC: modifies $1818
        and #$04
        bne loc_1238
        lda smc_1818
        and #$10
        bne loc_1238
        lda $1816
        beq loc_1238
        lda $1807,x
        and #$07
        cmp #$03
        bcc loc_11d5
        eor #$07

loc_11d5:
        sta $181a
        lda $17f8,x
        tay
        lda $14d5,y
        sec
        sbc dat_14d4,y
        sta $181e
        lda $1535,y
        sbc $1534,y

loc_11ec:
        lsr
        ror $181e
        dec $1816
        bpl loc_11ec
        sta $181d
        lda dat_14d4,y
        sta $181c
        lda $1534,y
        sta $181b
        lda $17f2,x
        and #$3f
        cmp #$09
        bcc loc_1229
        ldy $181a

loc_1210:
        dey
        bmi loc_1229
        clc
        lda $181c
        adc $181e
        sta $181c
        lda $181b
        adc $181d
        sta $181b
        jmp loc_1210

loc_1229:
        ldy $1819
        lda $181c
        sta $d400,y
        lda $181b
        sta $d401,y

loc_1238:
        ldy $1819
        lda $1804,x
        beq loc_1269
        and #$7c
        sta $1820
        lda $1804,x
        and #$03
        beq loc_12a2
        cmp #$01
        beq loc_1284
        and #$01
        beq loc_126c
        lda $1820
        sec
        lda $180a,x
        sbc $1820
        sta $180a,x
        lda $180d,x
        sbc #$00
        sta $180d,x

loc_1269:
        jmp loc_12bd

loc_126c:
        lda $1820
        clc
        lda $180a,x
        adc $1820
        sta $180a,x
        lda $180d,x
        adc #$00
        sta $180d,x
        jmp loc_12bd

loc_1284:
        lda $1820
        sec
        lda $1801,x
        sbc $1820
        sta $1801,x
        sta $d400,y
        lda $17fe,x
        sbc #$00
        sta $17fe,x
        sta $d401,y
        jmp loc_12bd

loc_12a2:
        lda $1820
        clc
        lda $1801,x
        adc $1820
        sta $1801,x
        sta $d400,y
        lda $17fe,x
        adc #$00
        sta $17fe,x
        sta $d401,y

loc_12bd:
        lda $1817
        beq loc_12d6
        lda $180a,x
        clc
        adc $1817
        sta $180a,x
        lda $180d,x
        adc #$00
        and #$0f
        sta $180d,x

loc_12d6:
        lda $180a,x
        sta $d402,y
        lda $180d,x
        sta $d403,y
        lda smc_1818
        and #$40
        beq loc_12fa
        ldx $fe
        lda $1807,x
        and #$03
        tax
        lda $15a8,x
        ldy $1819
        sta $d404,y

loc_12fa:
        lda smc_1818
        and #$08
        beq loc_1312
        ldx $fe
        lda $1807,x
        and #$07
        tax
        lda $15a0,x
        ldy $1819
        sta $d403,y

loc_1312:
        lda smc_1818
        and #$20
        beq loc_1331
        ldx $fe
        lda $17ef,x
        cmp #$02
        bcs loc_1331
        ldy $1819
        lda $17fe,x
        clc
        adc #$01
        sta $17fe,x
        sta $d401,y

loc_1331:
        sty $181f
        lda smc_1818
        and #$01
        beq loc_1378
        ldx $fe
        stx $182d
        lda $1827,x
        and #$0f
        asl
        tax
        lda $1602,x
        sta smc_1354                                // SMC: modifies $1354
        lda $1603,x
        sta smc_1358                                // SMC: modifies $1358
.label smc_1354 = * + 1
        lda #$12                                    // !SMC: modified by $134a
        sta $f8
.label smc_1358 = * + 1
        lda #$16                                    // !SMC: modified by $1350
        sta $f9
        ldx $fe
        lda $1807,x
        ldy #$0b
        cmp ($f8),y
        bcs loc_1399
        ldy #$0a

loc_1368:
        cmp ($f8),y
        bcs loc_13a4
        dey
        cpy #$06
        bne loc_1368
        cmp ($f8),y
        bcc loc_137b
        jmp loc_13c2

loc_1378:
        jmp loc_13b3

loc_137b:
        lda $fe
        asl
        bne loc_1383
        clc
        adc #$01

loc_1383:
        sta $181f
        ldx $182a
        txa
        and $181f
        bne loc_13bc
        txa
        clc
        adc $181f
        sta $d417
        ldy #$06

loc_1399:
        dey
        dey
        dey
        dey
        dey
        dey
        lda ($f8),y
        jmp loc_13bc

loc_13a4:
        dey
        dey
        dey
        dey
        dey
        dey
        lda $1826
        clc
        adc ($f8),y
        jmp loc_13bc

loc_13b3:
        lda $fe
        cmp $182d
        bne loc_13c2
        lda #$ff

loc_13bc:
        sta $1826
        sta $d416

loc_13c2:
        ldy $181f
        lda smc_1818
        and #$02
        beq loc_13fc
        ldx $fe
        lda $17ef,x
        beq loc_13fc
        lda $17f2,x
        and #$3f
        sec
        sbc #$04
        cmp $17ef,x
        bcs loc_13fc
        ldy $1819
        lda $1807,x
        tax
        lda $15ac,x
        sta $d404,y
        lda $15b3,x
        ldx $fe
        clc
        adc $17f8,x
        clc
        adc $41
        jmp loc_14b5

loc_13fc:
        lda smc_1818
        and #$10
        beq loc_145f
        lda $1816
        and #$0f
        tax
        lda $15ba,x
        sta smc_142d                                // SMC: modifies $142d
        lda $15bc,x
        sta smc_142e                                // SMC: modifies $142e
        lda $15be,x
        sta smc_1436                                // SMC: modifies $1436
        lda $15c0,x
        sta smc_1437                                // SMC: modifies $1437
        ldx $fe
        lda $1807,x
        tay
        cmp #$10
        bcs loc_145c
        tax
.label smc_142d = * + 1
.label smc_142e = * + 2
        lda $15d2,x                                 // !SMC: modified by $140c, $1412
        ldy $1819
        sta $d404,y
.label smc_1436 = * + 1
.label smc_1437 = * + 2
        lda $15c2,x                                 // !SMC: modified by $1418, $141e
        sta $181f
        lda $1816
        and #$10
        beq loc_144e
        ldx $fe
        lda $17f8,x
        clc
        adc $181f
        jmp loc_14b5

loc_144e:
        lda $181f
        clc
        adc #$0d
        sta $d401,y
        lda #$00
        sta $d400

loc_145c:
        jmp loc_14cb

loc_145f:
        lda smc_1818
        and #$80
        beq loc_148a
        ldx $fe
        lda $1807,x
        cmp #$01
        bcc loc_1480
        lda $17f5,x
        and #$fe
        sta $d404,y
        lda $17fe,x
        sta $d401,y
        jmp loc_148a

loc_1480:
        lda #$48
        sta $d401,y
        lda #$80
        sta $d404,y

loc_148a:
        lda smc_1818
        and #$04
        beq loc_14cb
        ldx $1816
        lda $1594,x
        sta smc_14a9                                // SMC: modifies $14a9
        lda $1596,x
        sta smc_14aa                                // SMC: modifies $14aa
        ldx $fe
        lda $1807,x
        and #$03
        tax
.label smc_14a9 = * + 1
.label smc_14aa = * + 2
        lda $1598,x                                 // !SMC: modified by $1497, $149d
        sta $41
        ldx $fe
        lda $17f8,x
        clc
        adc $41

loc_14b5:
        tay
        lda dat_14d4,y
        sta $1821
        lda $1534,y
        ldy $1819
        sta $d401,y
        lda $1821
        sta $d400,y

loc_14cb:
        ldx $fe
        dex
        bmi loc_14d3
        jmp loc_1047

loc_14d3:
        rts

// --- Region $177b-$1791 ---
.pc = $177b "sub_177b"
// Referenced by: jsr from $08ec

sub_177b:
        lda $182c
        bne loc_179c
        inc $1807
        inc $1808
        inc $1809
        lda #$1f
        sta $d418
        jmp loc_103a

dat_1791:
        .byte $a9                                   // .

// --- Region $179c-$17c0 ---
.pc = $179c "loc_179c"

loc_179c:
        lda #$00
        sta $1807
        sta $1808
        sta $1809
        ldx #$02

loc_17a9:
        sta dat_17e9,x
        sta $17ec,x
        sta $17ef,x
        sta $17f8,x
        dex
        bpl loc_17a9
        sta $182c
        lda #$90
        sta $182a
        rts

// --- Region $17d9-$17e4 ---
.pc = $17d9 "loc_17d9"

loc_17d9:
        ldx #$00
        txa

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

// --- Region $1f0d-$1f3b ---
.pc = $1f0d "loc_1f0d"

loc_1f0d:
        sei
        lda #$31
        sta $0314
        lda #$ea
        sta $0315
        cli
        jsr $e518
        jsr $fda3
        lda #$00
        sta $d020
        sta $d021
        sta $0286
        jsr $e544
        ldx #$00

loc_1f2f:
        lda $1f40,x
        sta $0400,x
        inx
        bne loc_1f2f
        jmp $0400

dat_1f3b:
        .byte $a2                                   // .

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

// --- Region $08f4-$09b0 ---
.pc = $08f4 "Program $08f4"
        .fill 11, $00
        .byte $30,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$07,$01,$07,$07,$0a // 0...............
        .byte $07,$0a,$0a,$0a,$02,$0a,$02,$02,$0b,$0b,$0c,$0b,$0c,$0c,$0f,$0c // ................
        .byte $0f,$0f,$01,$0f,$01,$01,$0f,$01,$0f,$0f,$0c,$0f,$0c,$0c,$0b,$0c // ................
        .byte $0b,$0b,$09,$09,$08,$09,$08,$08,$07,$08,$07,$07,$01,$07,$01,$01 // ................
        .byte $07,$01,$07,$07,$08,$07,$08,$08,$09,$08,$09,$09,$0b,$0b,$05,$0b // ................
        .byte $05,$05,$0d,$05,$0d,$0d,$01,$0d,$01,$01,$0d,$0d,$05,$0d,$05,$05 // ................
        .byte $0b,$05,$0b,$0b,$06,$06,$0e,$06,$0e,$0e,$03,$0e,$03,$03,$01,$03 // ................
        .byte $01,$01,$03,$01,$03,$03,$0e,$03,$0e,$0e,$06,$0e,$06,$06,$02,$02 // ................
        .byte $0a,$02,$0a,$0a,$07,$07,$0a,$07,$07,$01,$07,$01,$01,$01,$01,$00 // ................
        .byte $00,$00,$00,$00,$00,$00,$01,$01,$03,$0d,$01,$0d,$03,$05,$00,$06 // ................
        .byte $0e,$03,$01,$03,$0e,$06,$02,$08,$0a,$01,$0a,$08,$02,$00,$05,$01 // ................
        .byte $01                                   // .

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

// --- Region $0a06-$0a87 ---
.pc = $0a06 "dat_0a06"

dat_0a06:
        .byte $01,$01,$03,$01,$01,$03,$03,$0e,$0e,$06,$06,$00,$06,$0e,$03,$01 // ................
        .byte $03,$0e,$00,$02,$08,$0a,$01,$08,$02,$00,$02,$02,$08,$08,$0a,$0a // ................
        .byte $01,$01,$0a,$0a,$08,$08,$02,$02,$00,$02,$08,$0a,$01,$0a,$08,$02 // ................
        .byte $00,$05,$03,$0d,$01,$0d,$03,$05,$00,$05,$05,$03,$03,$0d,$0d,$01 // ................
        .byte $01,$0d,$0d,$0d,$03,$03,$05,$05,$00,$05,$03,$0d,$01,$0d,$03,$05 // ................
        .byte $00,$0b,$0c,$0f,$01,$0f,$0c,$0b,$00,$0b,$0b,$0c,$0c,$0f,$0f,$01 // ................
        .byte $01,$0f,$0f,$0c,$0c,$0b,$0b,$00,$0b,$0c,$0f,$01,$0f,$0c,$0c,$0b // ................
        .byte $00,$06,$0e,$03,$01,$03,$0e,$06,$00,$06,$06,$0e,$0e,$03,$01,$01 // ................
        .byte $00,$00                               // ..

// --- Region $0a91-$0ac8 ---
.pc = $0a91 "dat_0a91"

dat_0a91:
        .byte $00,$00,$00,$00,$00,$00,$00,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0f // ................
        .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$01,$01,$01,$01,$01,$01,$01,$01,$0f // ................
        .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0b // ................
        .byte $0b,$0b,$0b,$0b,$0b,$0b,$0b           // .......

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

// --- Region $0b18-$0b47 ---
.pc = $0b18 "dat_0b18"

dat_0b18:
        .byte $80,$80,$a0,$a0,$a8,$a8,$aa,$aa,$02,$02,$0a,$0a // ............

txt_0b24:
        .text "**"
        .byte $aa                                   // '*' | $80 (end-of-string marker)
        .byte $aa,$aa,$aa,$a8,$a8,$a0,$a0,$80,$80,$aa,$aa,$2a,$2a,$0a,$0a,$02 // ...........**...
        .byte $02,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$00,$00,$00,$00,$00,$00,$00 // ................
        .byte $00                                   // .

// --- Region $0b51-$0b9b ---
.pc = $0b51 "dat_0b51"

dat_0b51:
        .byte $50,$14,$14,$54,$14,$14,$00           // P..T...

txt_0b58:
        .text "UPPUPPU"
        .byte $00                                   // string terminator
        .byte $50,$14,$14
        .byte $50,$14,$14
        .byte $50,$00,$15
        .text "PPPPP"
        .byte $15,$00
        .byte $50,$14,$00,$00,$00,$14,$50,$00,$15,$14,$14,$14,$14,$14,$15,$00 // P.....P.........
        .byte $40,$50,$14,$14,$14,$50,$40,$00       // @P...P@.

txt_0b88:
        .text "UPPUPPU"
        .byte $00                                   // string terminator
        .byte $54,$00,$00
        .byte $40,$00,$00
        .byte $54,$00
        .text "UPPU"

// --- Region $0bb1-$0be1 ---
.pc = $0bb1 "dat_0bb1"

dat_0bb1:
        .byte $50,$00
        .text "PPP"
        .byte $40                                   // @ character
        .byte $00,$14,$14,$14,$15,$14,$14,$14,$00,$14
        .byte $14,$14,$54,$14,$14,$14,$00,$05,$01,$01,$01,$01,$01,$05,$00 // ..T............

txt_0bd0:
        .text "P"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "P"
        .byte $00                                   // string terminator
        .byte $01,$00,$00,$00,$00,$14,$05,$00,$54,$50 // ........TP

// --- Region $0bf3-$0bfc ---
.pc = $0bf3 "dat_0bf3"

dat_0bf3:
        .byte $00,$40,$50,$14,$00,$14,$14,$14,$14,$14 // .@P.......

// --- Region $0c01-$0c33 ---
.pc = $0c01 "dat_0c01"

dat_0c01:
        .byte $00,$00,$00,$00,$00,$54,$00           // .....T.

txt_0c08:
        .text "PTUUQPP"
        .byte $00                                   // string terminator
        .byte $14,$54,$54,$54,$14,$14,$14,$00       // .TTT....

txt_0c18:
        .text "PTUUQPP"
        .byte $00                                   // string terminator
        .byte $14,$14,$14
        .byte $54,$54,$54,$14,$00,$15
        .text "PPPPP"
        .byte $15,$00
        .byte $50,$14,$14,$14                       // P...

// --- Region $0c45-$0c55 ---
.pc = $0c45 "dat_0c45"

dat_0c45:
        .byte $00,$00,$00,$05,$14,$14,$14,$14,$14,$05,$00,$50,$14,$14,$14,$14 // ...........P....
        .byte $54                                   // T

// --- Region $0c6d-$0c75 ---
.pc = $0c6d "dat_0c6d"

dat_0c6d:
        .byte $50,$15,$00,$50,$14,$00,$50,$14,$14   // P..P..P..

// --- Region $0c83-$0c8d ---
.pc = $0c83 "dat_0c83"

dat_0c83:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $00

txt_0c88:
        .text "PPPPPP"

// --- Region $0c95-$0cb0 ---
.pc = $0c95 "Program $0c95"
        .byte $14,$50,$00,$14,$14,$14,$14,$14,$05,$01,$00,$14,$14,$14,$14,$14 // .P..............
        .byte $50,$40,$00,$14,$14,$14,$15,$15,$15,$14,$00,$05 // P@..........

// --- Region $0cb8-$0d2f ---
.pc = $0cb8 "dat_0cb8"

dat_0cb8:
        .byte $14,$14,$05,$01,$05,$14,$14,$00,$14,$14,$50,$40,$50,$14,$14,$00 // ..........P@P...
        .byte $14,$14,$14,$05,$01,$01,$01,$00,$14,$14,$14
        .text "P"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $00
        .byte $15,$00,$00,$01,$05,$14,$15,$00,$54,$14,$50,$40,$00,$00,$54,$00 // ........T.P@..T.
        .byte $00,$00,$14,$00,$00,$14,$00,$00,$14,$14,$14,$14,$00,$00,$14,$00 // ................
        .byte $00,$00,$00,$00,$14,$14,$04,$14,$00,$00,$00,$01,$05,$14,$50,$00 // ..............P.
        .byte $05,$14,$50,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$55,$00,$00 // ..P@.........U..
        .byte $00,$55,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$14,$14,$00 // .U..............
        .fill 8, $00

// --- Region $0d45-$0d77 ---
.pc = $0d45 "Program $0d45"
        .byte $00,$00,$00,$55,$55,$00,$00,$00,$00,$00,$00,$54,$54,$14,$14,$14 // ...UU......TT...
        .byte $14,$14,$00
        .byte $55,$55,$00
        .text "U"
        .byte $40                                   // @ character
        .text "UU"
        .byte $00
        .byte $54,$54,$04
        .byte $54,$00
        .byte $54,$54,$00                           // TT.

txt_0d68:
        .text "UU"
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .text "UU"
        .byte $00                                   // string terminator
        .byte $54,$54,$04,$04,$04,$54,$54           // TT...TT

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

// --- Region $14d4-$177a ---
.pc = $14d4 "dat_14d4"

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

txt_1570:
        .text "!#%'*,/258;?CGKOTY"
        .byte $5e,$64,$6a,$70,$77,$7e,$86,$8e,$96,$9f,$a8,$b3,$bd,$c8,$d4,$e1 // ^djpw~..........
        .byte $ee,$fd,$98,$9c,$15,$15,$0c,$07,$0c,$00,$00,$00,$0c,$00,$09,$08 // ................
        .byte $07,$07,$08,$09,$06,$09,$10,$10,$10,$10,$10 // ...........

txt_15ad:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $0c,$00,$00,$00,$00,$00,$00,$d2,$f2,$15,$15,$c2,$e2,$15,$15,$00 // ................
        .byte $fc,$c0,$0d,$c0,$0d,$10,$0d,$00,$00,$00,$00,$00,$00,$00,$00,$41 // ...............A
        .byte $41,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$24 // A..............$
        .byte $10,$0d,$0b,$09,$07,$06,$05,$04,$04,$03,$03,$02,$02,$01,$00,$81 // ................

txt_15f3:
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $40                                   // @ character
        .byte $06,$16,$12,$16,$a3,$f0,$f0,$f0,$f0,$f0,$01,$02,$04,$06,$08,$0a // ................
        .byte $f0,$f1,$f6,$f0,$f0,$40,$01,$02,$04,$06,$08,$0a,$00,$00,$00,$01 // .....@..........
        .fill 9, $00
        .byte $08,$08,$38,$00,$18,$18,$00,$00,$00,$00,$00,$00,$41,$11,$11,$11 // ..8.........A...
        .byte $41,$41,$00,$00,$00,$00,$00,$00,$0a,$00,$0d,$00,$03,$09,$00,$00 // AA..............
        .byte $00,$00,$00,$00,$ff,$f8,$d8,$f9,$39,$99,$00,$00,$00,$00,$00,$00 // ........9.......
        .byte $01,$11,$00,$00,$00,$03,$00,$00,$00,$00,$00,$00,$30,$00,$50,$00 // ............0.P.
        .byte $30,$30,$00,$00,$00,$00,$00,$00,$01,$10,$10,$80,$04,$00,$00,$00 // 00..............
        .byte $00,$00,$00,$82,$88,$16,$16,$b4,$c7,$ca,$16,$16,$16,$db,$dd,$df // ................
        .byte $16,$16,$16,$b4,$c7,$ca,$16,$16,$16,$77,$17,$e1,$16,$f7,$16,$09 // .........w......
        .byte $17,$29,$17,$77,$17,$77,$17,$77,$17,$77,$17,$77,$17,$77,$17,$77 // .).w.w.w.w.w.w.w
        .byte $17,$77,$17,$77,$17,$77,$17,$77,$17,$87,$02,$8a,$02,$85,$02,$88 // .w.w.w.w........
        .byte $02,$83,$02,$85,$02,$8a,$02,$83,$02,$80,$04,$ff,$80,$03,$ff,$89 // ................
        .byte $01,$8c,$01,$87,$01,$8a,$01,$85,$01,$87,$01,$8a,$01,$85,$01,$ff // ................
        .byte $00,$ff,$00,$ff,$00,$ff,$85,$01,$13,$05,$13,$05,$1f,$05,$13,$05 // ................
        .byte $13,$05,$13,$02,$1f,$02,$13,$02,$1d,$02,$1f,$ff,$85,$05,$2d,$05 // ..............-.
        .byte $2d,$05,$39,$05,$2d,$05,$39,$05,$39,$05,$2d,$05,$39,$ff,$85,$02 // -.9.-.9.9.-.9...
        .byte $18,$82,$04,$4a,$02,$3e,$85,$03,$2f,$85,$02,$18,$82,$04,$3e,$02 // ...J.>../.....>.
        .byte $3e,$02,$4a,$02,$3e,$85,$03,$2f,$82,$04,$3e,$02,$4a,$ff,$85,$06 // >.J.>../..>.J...
        .byte $34,$05,$34,$05,$32,$05,$34,$05,$37,$05,$34,$05,$32,$05,$37,$05 // 4.4.2.4.7.4.2.7.
        .byte $3a,$05,$39,$05,$37,$05,$3a,$05,$39,$05,$37,$05,$3a,$05,$37,$05 // :.9.7.:.9.7.:.7.
        .byte $35,$05,$32,$05,$30,$05,$35,$05,$32,$05,$30,$05,$35,$05,$32,$05 // 5.2.0.5.2.0.5.2.
        .byte $38,$05,$37,$05,$35,$05,$38,$05,$3c,$05,$38,$05,$37,$05,$38,$11 // 8.7.5.8.<.8.7.8.
        .byte $37,$11,$35,$0c                       // 7.5.

txt_176f:
        .text "3/2/7/0"
        .byte $ff,$9f,$00,$00,$ff                   // .....

// --- Region $1792-$179b ---
.pc = $1792 "Segment $1792"
        .byte $00,$aa,$9d,$e9,$17,$e8,$e0,$00,$d0,$f8 // ..........

// --- Region $17c1-$17d8 ---
.pc = $17c1 "dat_17c1"

dat_17c1:
        .byte $aa,$bd,$7e,$16,$85,$fa,$bd,$80,$16,$85,$fb,$a0,$05,$b1,$fa,$99 // ..~.............
        .byte $8e,$16,$88,$10,$f8,$20,$9c,$17       // ..... ..

// --- Region $17e5-$1818 ---
.pc = $17e5 "dat_17e5"

dat_17e5:
        // === Data block (52 bytes, $17e5-$1818) ===
        .byte $01,$00,$07,$0e                       // ....

dat_17e9:
        // === Fill data (48 bytes, $17e9-$1818) ===
        .fill 23, $00

scr_1800:
        .fill 24, $00

smc_1818:
        .byte $00                                   // .

// --- Region $1900-$1ce8 ---
.pc = $1900 "dat_1900"

dat_1900:
        // === Fill data (202 bytes, $1900-$19c9) ===
        .fill 202, $68
        .byte $67,$67,$68,$68,$67,$67,$68,$68,$68,$64,$67,$65,$68,$68,$68,$68 // gghhgghhhdgehhhh
        .byte $68,$68,$68,$68,$64,$67,$67,$68,$62,$67,$67,$67,$67,$67,$63,$68 // hhhhdgghbgggggch
        .byte $68,$68,$62,$67,$67,$68,$68,$68,$67,$67,$68,$68,$67,$67,$62,$62 // hhbgghhhgghhggbb
        .byte $64,$67,$65,$61,$61,$68,$68,$68,$68,$68,$68,$64,$67,$67,$67,$68 // dgeaahhhhhhdgggh
        .byte $62,$67,$67,$62,$62,$66,$67,$63,$61,$61,$62,$67,$67,$68,$68,$68 // bggbbfgcaabgghhh
        .byte $67,$67,$68,$68,$67,$67,$62,$64,$67,$65,$61,$61,$68,$68,$68,$68 // gghhggbdgeaahhhh
        .byte $68,$68,$64,$67,$65,$67,$67,$68,$62,$67,$67,$62,$62,$62,$67,$67 // hhdgegghbggbbbgg
        .byte $61,$61,$62,$67,$67,$68,$68,$68,$67,$67,$68,$68,$67,$67,$64,$67 // aabgghhhgghhggdg
        .byte $65,$61,$61,$68,$68,$68,$68,$68,$68,$64,$67,$65,$62,$67,$67,$68 // eaahhhhhhdgebggh
        .byte $62,$67,$67,$62,$62,$64,$67,$65,$61,$61,$62,$67,$67,$68,$68,$68 // bggbbdgeaabgghhh
        .byte $67,$67,$68,$68,$67,$67,$66,$67,$63,$61,$61,$68,$68,$68,$68,$68 // gghhggfgcaahhhhh
        .byte $64,$67,$65,$68,$62,$67,$67,$68,$62,$67,$67,$67,$67,$67,$65,$68 // dgehbgghbgggggeh
        .byte $61,$61,$62,$67,$67,$68,$68,$68,$67,$67,$68,$68,$67,$67,$62,$66 // aabgghhhgghhggbf
        .byte $67,$63,$61,$61,$68,$68,$68,$64,$67,$67,$67,$67,$67,$67,$67,$68 // gcaahhhdgggggggh
        .byte $62,$67,$67,$62,$66,$67,$63,$68,$61,$61,$62,$67,$67,$68,$68,$68 // bggbfgchaabgghhh
        .byte $67,$67,$68,$68,$67,$67,$62,$62,$66,$67,$63,$61,$61,$68,$64,$67 // gghhggbbfgcaahdg
        .byte $65,$68,$68,$68,$62,$67,$67,$68,$62,$67,$67,$62,$62,$66,$67,$63 // ehhhbgghbggbbfgc
        .byte $61,$61,$62,$67,$67,$68,$68,$68,$67,$67,$68,$68,$67,$67,$68,$68 // aabgghhhgghhgghh
        .byte $68,$66,$67,$63,$68,$64,$67,$65,$68,$68,$68,$68,$68,$67,$67,$68 // hfgchdgehhhhhggh
        .byte $68,$67,$67,$68,$68,$62,$66,$67,$63,$61,$62,$67,$67 // hgghhbfgcabgg

dat_1b07:
        // === Fill data (83 bytes, $1b07-$1b59) ===
        .fill 57, $68

spr_1b40:
        .fill 26, $68
        .fill 9, $a5
        .byte $8b,$8c,$85,$86,$7f,$80,$7f,$80,$71,$72,$8b,$8c,$6b,$6c,$85,$86 // ........qr..kl..
        .byte $69,$6a,$8b,$8c,$6f,$70,$a5,$a5,$a5,$a5,$a5,$a5,$a5 // ij..op.......

dat_1b80:
        // === Fill data (120 bytes, $1b80-$1bf7) ===
        .fill 120, $68
        .byte $a5,$6d,$6e,$8b,$8c,$69,$6a,$6d,$6e,$7d,$7e,$a5,$a5,$9d,$a5,$a5 // .mn..ijmn}~.....
        .byte $87,$88,$69,$6a,$7f,$80               // ..ij..

dat_1c0e:
        // === Fill data (58 bytes, $1c0e-$1c47) ===
        .fill 58, $a5
        .byte $68,$81,$82,$91,$92,$8d,$8e,$79,$7a,$6d,$6e,$68,$68,$9d,$68,$68 // h......yzmnhh.hh
        .byte $81,$82,$69,$6a,$6f,$70,$a0,$a1,$8d,$8e,$6d,$6e,$85,$86,$85,$86 // ..ijop....mn....
        .byte $87,$88,$68,$68,$68,$68,$68,$68       // ..hhhhhh

dat_1c70:
        // === Fill data (40 bytes, $1c70-$1c97) ===
        .fill 40, $a2
        .byte $68,$8d,$8e,$87,$88,$69,$6a,$6d,$6e,$71,$72,$68,$68,$73,$74,$85 // h....ijmnqrhhst.
        .byte $86,$8b,$8c,$68,$68,$83,$84,$71,$72,$97,$98,$8f,$90,$68,$68,$87 // ...hh..qr....hh.
        .byte $88,$69,$6a,$8b,$8c,$8f,$90,$68       // .ij....h

dat_1cc0:
        // === Fill data (40 bytes, $1cc0-$1ce7) ===
        .fill 40, $a3

dat_1ce8:
        // === Fill data (1 bytes, $1ce8-$1ce8) ===
        .byte $00                                   // .

// --- Region $1f3c-$1f65 ---
.pc = $1f3c "Segment $1f3c"
        .byte $00,$bd,$c0,$1f,$78,$a9,$34,$85,$01,$a2,$00,$bd,$00,$20,$9d,$01 // ....x.4...... ..
        .byte $08,$e8,$d0,$f7,$ee,$09,$04,$ee,$0c,$04,$ad,$09,$04,$c9,$00,$d0 // ................
        .byte $ea,$a9,$37,$85,$01,$58,$4c,$e2,$fc   // ..7..XL..

dat_1f65:
        // === Fill data (1 bytes, $1f65-$1f65) ===
        .byte $00                                   // .
