// ============================================
// output - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:52
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $0c3f  (1088 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0980 (2432)
//
// Code: 316 bytes, Data: 772 bytes
// Labels: 70, Subroutines: 5
//
// Cross-references: all OK
// ============================================


// --- Region $0980-$0a49 ---
.pc = $0980 "main_0980"

main_0980:
        lda #$0f
        inx
        jsr $e536
        jsr sub_0abb
        stx $fd
        dex
        stx $ff
        stx $d020
        stx $d021

loc_0994:
        lda $0868,x
        sta $0450,x
        sta $06a8,x
        lda $0880,x
        sta $0490,x
        inx
        bne loc_0994
        ldx #$40

loc_09a8:
        lda $093f,x
        sta $07a7,x
        dex
        bne loc_09a8
        ldx #$27

loc_09b3:
        lda #$06
        sta $0680,x
        sta $0590,x
        sta $0400,x
        sta $0428,x
        dex
        bpl loc_09b3
        ldx #$00

loc_09c6:
        lda chr_0ad6,x
        jsr sub_0a90
        sta $05e6,x
        inx
        cpx #$1c
        bne loc_09c6
        lda #$30
        sta $d012

loc_09d9:
        sei
        jsr sub_0a9e
        jsr sub_0a2b
        lda #$8a

loc_09e2:
        cmp $d012
        bne loc_09e2
        lda #$17
        sta $d018
        lda #$a2

loc_09ee:
        cmp $d012
        bne loc_09ee
        lda $32
        sta $d016
        lda #$b2

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

loc_0a01:
        dex
        bne loc_0a01
        lda #$13
        sta $d018
        lda #$c8
        sta $d016
        jsr sub_0a5d
        lda $dc01
        cmp #$ef
        bne loc_09d9
        lda #$15
        sta $d018
        sei
        jsr $e51b
        jsr $fda3
        jsr $fd15
        cli
        jmp $fce2
// Referenced by: jsr from $09dd

sub_0a2b:
        dec $fd
        beq loc_0a30
        rts

loc_0a30:
        lda #$03
        sta $fd
        lda $ff
        and #$0f
        sta $ff
        tax
        ldy #$28
        lda chr_0a49,x

loc_0a40:
        sta $d9e0,y
        dey
        bne loc_0a40
        inc $ff
        rts

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

// --- Region $0a5d-$0ad5 ---
.pc = $0a5d "sub_0a5d"
// Referenced by: jsr from $0a0e

sub_0a5d:
.label smc_0a5e = * + 1
        lda #$00                                    // !SMC: modified by $0a67
        beq loc_0a65

chr_0a61:
        // === Charset data (4 bytes, $0a61-$0a64) ===
        .byte $ce,$5e,$0a,$60                       // char 0 (partial)

loc_0a65:
        lda #$03
        sta smc_0a5e                                // SMC: modifies $0a5e
.label smc_0a6b = * + 1
        ldx #$00                                    // !SMC: modified by $0a8c
        ldy #$00

loc_0a6e:
        lda $0838,x
        sta chr_0800,y
        inx
        cpx #$30
        bne loc_0a7b

chr_0a79:
        // === Charset data (2 bytes, $0a79-$0a7a) ===
        .byte $a2,$00                               // char 0 (partial)

loc_0a7b:
        iny
        cpy #$30
        bne loc_0a6e
        lda smc_0a6b
        clc
        adc #$08
        cmp #$30
        bne loc_0a8c
        lda #$00

loc_0a8c:
        sta smc_0a6b                                // SMC: modifies $0a6b
        rts
// Referenced by: jsr from $09c9, $0ac7

sub_0a90:
        cmp #$80
        bpl loc_0a9b
        cmp #$40
        bmi loc_0a9a
        and #$3f

loc_0a9a:
        rts

loc_0a9b:
        and #$7f
        rts
// Referenced by: jsr from $09da

sub_0a9e:
        dec $32
        dec $32
        bmi loc_0aa5
        rts

loc_0aa5:
        lda #$07
        sta $32
        ldx #$00

loc_0aab:
        lda $0631,x
        sta $0630,x
        inx
        cpx #$28
        bne loc_0aab
.label smc_0ab7 = * + 1
.label smc_0ab8 = * + 2
        lda $0af2                                   // !SMC: modified by $0abd, $0ac2
        bne loc_0ac7
// Referenced by: jsr from $0986

sub_0abb:
        lda #$0a
        sta smc_0ab8                                // SMC: modifies $0ab8
        lda #$f2
        sta smc_0ab7                                // SMC: modifies $0ab7
        lda #$20

loc_0ac7:
        jsr sub_0a90
        sta $0657
        inc smc_0ab7
        bne loc_0ad5
        inc smc_0ab8

loc_0ad5:
        rts

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

// --- Region $0800-$097f ---
.pc = $0800 "chr_0800"

chr_0800:
        // === Charset data (384 bytes, $0800-$097f) ===
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 0 @+0
        .byte $00,$00,$18,$3c,$3c,$18,$00,$00       // char 1 @+1
        .byte $00,$00,$00,$18,$18,$00,$00,$00       // char 2 @+2
        .byte $00,$00,$18,$3c,$3c,$18,$00,$00       // char 3 @+3
        .byte $00,$3c,$7e,$7e,$7e,$7e,$3c,$00       // char 4 @+4
        .byte $3c,$7e,$ff,$ff,$ff,$ff,$7e,$3c       // char 5 @+5
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 6 @+6
        .byte $00,$00,$00,$18,$18,$00,$00,$00       // char 7 @+7
        .byte $00,$00,$18,$3c,$3c,$18,$00,$00       // char 8 @+8
        .byte $00,$3c,$7e,$7e,$7e,$7e,$3c,$00       // char 9 @+9
        .byte $3c,$7e,$ff,$ff,$ff,$ff,$7e,$3c       // char 10 @+10
        .byte $00,$3c,$7e,$7e,$7e,$7e,$3c,$00       // char 11 @+11
        .byte $00,$00,$18,$3c,$3c,$18,$00,$00       // char 12 @+12
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 13 @+13
        .byte $06,$06,$06,$00,$00,$01,$01,$06       // char 14 @+14
        .byte $06,$03,$03,$04,$04,$06,$06,$06       // char 15 @+15
        .byte $00,$01,$01,$06,$06,$06,$06,$06       // char 16 @+16
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 17 @+17
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 18 @+18
        .byte $06,$06,$06,$00,$01,$06,$02,$02       // char 19 @+19
        .byte $06,$03,$04,$06,$05,$05,$06,$00       // char 20 @+20
        .byte $01,$06,$02,$02,$06,$06,$06,$06       // char 21 @+21
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 22 @+22
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 23 @+23
        .byte $06,$06,$06,$06,$06,$06,$02,$03       // char 24 @+24
        .byte $06,$04,$04,$05,$05,$06,$06,$01       // char 25 @+25
        .byte $01,$06,$06,$06,$06,$06,$06,$06       // char 26 @+26
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 27 @+27
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 28 @+28
        .byte $06,$06,$06,$06,$06,$06,$03,$03       // char 29 @+29
        .byte $06,$04,$05,$06,$00,$00,$06,$01       // char 30 @+30
        .byte $02,$06,$06,$06,$06,$06,$06,$06       // char 31 @+31
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 32 ' '
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 33 '!'
        .byte $06,$06,$06,$06,$06,$06,$03,$04       // char 34 '"'
        .byte $06,$05,$05,$06,$00,$01,$06,$02       // char 35 '#'
        .byte $02,$06,$03,$04,$06,$06,$06,$06       // char 36 '$'
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 37 '%'
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 38 '&'
        .byte $06,$06,$06,$06,$06,$06,$04,$04       // char 39 '''
        .byte $06,$05,$00,$06,$01,$01,$06,$02       // char 40 '('
        .byte $03,$03,$04,$04,$06,$06,$06,$06       // char 41 ')'
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 42 '*'
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 43 '+'
        .byte $06,$06,$06,$06,$06,$06,$04,$05       // char 44 ','
        .byte $06,$00,$00,$06,$01,$02,$06,$06       // char 45 '-'
        .byte $03,$04,$04,$06,$06,$06,$06,$06       // char 46 '.'
        .byte $06,$06,$06,$06,$06,$06,$06,$06       // char 47 '/'

// --- Region $0a4a-$0a5c ---
.pc = $0a4a "Program $0a4a"
        .byte $00,$00,$09,$0b,$08,$0c,$0f           // char 0 (partial)
        .byte $07,$01,$07,$0f,$0c,$08,$0b,$09       // char 1 @+1
        .byte $11,$11,$11,$11                       // char 2 (partial)

// --- Region $0ad6-$0c15 ---
.pc = $0ad6 "chr_0ad6"

chr_0ad6:
        // === Charset data (320 bytes, $0ad6-$0c15) ===
        .byte $c6,$cf,$cf,$d4,$c2,$c1,$cc,$cc       // char 0 @+0
        .byte $a0,$c3,$c8,$c1,$cd,$d0               // char 1 (partial)

txt_0ae4:
        .byte $20,$28                               // char 1 (partial)
        .byte $c3                                   // char 2 (partial)

txt_0ae7:
        .byte $29,$20,$d3,$c9,$cd,$d5,$cc           // char 2 (partial)
        .byte $c1,$ce,$c4,$cf,$20,$d7               // char 3 (partial)

txt_0af4:
        .byte $41,$53                               // char 3 (partial)
        .byte $20,$c3                               // char 4 (partial)

txt_0af8:
        .byte $52,$41,$43,$4b,$45,$44               // char 4 (partial)
        .byte $20,$26,$20,$cc                       // char 5 (partial)

txt_0b02:
        .byte $45,$56,$45,$4c                       // char 5 (partial)
        .byte $50,$41,$43,$4b,$45,$44,$20,$c2       // char 6 @+6

txt_0b0e:
        .byte $59,$20,$c3,$c2,$c1                   // char 7 (partial)

txt_0b13:
        .byte $20,$21,$2e                           // char 7 (partial)
        .byte $2e,$20,$20,$20,$cf                   // char 8 (partial)

txt_0b1b:
        .byte $52,$49,$47                           // char 8 (partial)
        .byte $49,$4e,$41,$4c,$20,$d3               // char 9 (partial)

txt_0b24:
        .byte $55,$50                               // char 9 (partial)
        .byte $50,$4c,$49,$45,$44,$20,$c2           // char 10 (partial)

txt_0b2d:
        .byte $59                                   // char 10 (partial)
        .byte $20,$c1,$ca                           // char 11 (partial)

txt_0b31:
        .byte $20,$21,$2e,$2e,$20                   // char 11 (partial)
        .byte $20,$c7                               // char 12 (partial)

txt_0b38:
        .byte $52,$45,$45,$54,$49,$4e               // char 12 (partial)
        .byte $47,$53,$20,$54,$4f,$20,$3a,$20       // char 13 @+13
        .byte $c6                                   // char 14 (partial)

txt_0b47:
        .byte $34,$43,$47,$2c,$c5                   // char 14 (partial)

txt_0b4c:
        .byte $4d,$50                               // char 14 (partial)
        .byte $49,$52,$45,$2c,$c4                   // char 15 (partial)

txt_0b53:
        .byte $45,$4d,$4f                           // char 15 (partial)
        .byte $4e,$49,$58,$2c,$cc                   // char 16 (partial)

txt_0b5b:
        .byte $45,$47,$45                           // char 16 (partial)
        .byte $4e,$44,$2c,$d3                       // char 17 (partial)

txt_0b62:
        .byte $55,$43,$43,$45                       // char 17 (partial)
        .byte $53,$2c,$c5                           // char 18 (partial)

txt_0b69:
        .byte $4e,$49,$47,$4d,$41                   // char 18 (partial)
        .byte $2c,$c6                               // char 19 (partial)

txt_0b70:
        .byte $4c,$41,$53,$48,$2c,$d4               // char 19 (partial)

txt_0b76:
        .byte $52,$49,$41,$44,$2c,$c6               // char 20 (partial)

txt_0b7c:
        .byte $41,$49                               // char 20 (partial)
        .byte $52,$4c,$49,$47,$48,$54,$2c,$d4       // char 21 @+21

txt_0b86:
        .byte $41,$4c,$45,$4e,$54,$2c,$c2           // char 22 (partial)

txt_0b8d:
        .byte $4f                                   // char 22 (partial)
        .byte $4e,$5a,$41,$49,$2c,$c4               // char 23 (partial)

txt_0b94:
        .byte $55,$4e                               // char 23 (partial)
        .byte $45,$58,$2b,$d2                       // char 24 (partial)

txt_0b9a:
        .byte $45,$53,$54,$20                       // char 24 (partial)
        .byte $20,$20,$c3                           // char 25 (partial)

txt_0ba1:
        .byte $41,$4c,$4c,$20,$cf                   // char 25 (partial)

txt_0ba6:
        .byte $55,$52,$20,$c2                       // char 26 (partial)

txt_0baa:
        .byte $4f,$41,$52,$44                       // char 26 (partial)
        .byte $53,$20,$3a,$20,$d0,$cf,$d7,$c5       // char 27 @+27
        .byte $d2,$a0,$d3,$d5,$d2,$c7,$c5           // char 28 (partial)

txt_0bbd:
        .byte $20                                   // char 28 (partial)
        .byte $28,$32,$31,$35,$29,$2d,$37,$39       // char 29 @+29
        .byte $37,$2d,$33,$32,$39,$33,$20,$20       // char 30 @+30
        .byte $d4,$c8,$c5,$a0,$c4,$d5,$d4,$c3       // char 31 @+31
        .byte $c8,$c5,$d3                           // char 32 (partial)

txt_0bd9:
        .byte $20,$28,$32,$31,$35                   // char 32 (partial)
        .byte $29,$2d,$37,$37,$30,$2d,$30,$38       // char 33 '!'
        .byte $31,$38,$20,$20,$c9,$ce,$ce,$c5       // char 34 '"'
        .byte $d2,$2d,$c3,$c9,$d2,$c3,$cc,$c5       // char 35 '#'

txt_0bf6:
        .byte $20,$28,$39,$31,$39,$29,$2d,$37       // char 36 '$'
        .byte $39,$31,$2d,$34,$39,$31,$39,$20       // char 37 '%'
        .byte $20,$20,$cc                           // char 38 (partial)

txt_0c09:
        .byte $38,$45,$52,$2e,$2e                   // char 38 (partial)
        .byte $20,$20,$20,$20,$20,$20,$20           // char 39 (partial)

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