// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:14
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $0c10  (1041 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0c00 (3072)
// IRQ handler:  $0a1e (irq_0a1e)
//
// Code: 281 bytes, Data: 760 bytes
// Labels: 21, Subroutines: 1
//
// Cross-references: all OK
// ============================================


// --- Region $09c0-$0a49 ---
.pc = $09c0 "loc_09c0"

loc_09c0:
        jsr sub_0be7
        ldx #$24
        stx $07f8
        inx
        stx $07f9
        inx
        stx $07fa
        lda #$ff
        sta $d015
        sta $d017
        sta $d01d
        sta $d01c
        lda #$71
        sta $d001
        sta $d003
        sta $d005
        lda #$7c
        sta $d000
        lda #$a4
        sta $d002
        lda #$cc
        sta $d004
        lda #$01
        sta $d025
        sei
        lda #$1e
        sta $0314
        lda #$0a
        sta $0315
        lda #$81
        sta $d01a
        lda #$7f
        sta $dc0e
        lda $d011
        and #$7f
        sta $d011
        cli
        jmp loc_0a77

irq_0a1e:
        lda $d019
        sta $d019
        lda $d012
        cmp #$b2
        beq loc_0a38
        lda #$c8
        sta $d016
        lda #$b2
        sta $d012
        jmp $ea31

loc_0a38:
        dec $0a3c
        lda #$07
        sta $d016
        beq chr_0a4a
        lda #$ba
        sta $d012
        jmp $ea31

// --- Region $0a77-$0adc ---
.pc = $0a77 "loc_0a77"

loc_0a77:
        lda #$00
        sta $d020
        sta $d021
        lda #$12
        sta $d018

loc_0a84:
        lda $dc01
        cmp #$ff
        beq loc_0a8e
        jmp loc_0ac5

loc_0a8e:
.label smc_0a8f = * + 1
        ldx #$07                                    // !SMC: modified by $0ab0
        lda $08f8,x
        sta $d027
        sta $d028
        sta $d029
        ldx #$00

loc_0a9e:
        sta $da80,x
        inx
        bne loc_0a9e
        inc smc_0a8f
        lda smc_0a8f
        cmp #$08
        bne loc_0ab3
        lda #$00
        sta smc_0a8f                                // SMC: modifies $0a8f

loc_0ab3:
        ldx #$04

loc_0ab5:
        lda $d011
        bmi loc_0ab5

loc_0aba:
        lda $d011
        bpl loc_0aba
        dex
        bne loc_0ab5
        jmp loc_0a84

loc_0ac5:
        jsr $ff8a
        jsr $ff81
        jsr $ff84
        ldx #$40

loc_0ad0:
        lda $0adb,x
        sta $0333,x
        dex
        bne loc_0ad0
        jmp $0334

chr_0adc:
        // === Charset data (1 bytes, $0adc-$0adc) ===
        .byte $a9                                   // char 0 (partial)

// --- Region $0be7-$0c10 ---
.pc = $0be7 "sub_0be7"

// Referenced by: jsr from $09c0
sub_0be7: {
        lda #$08
        jsr $ffd2
        ldx #$00
        lda #$1e
loop:
        sta $0400,x
        sta $0500,x
        sta $0600,x
        sta $0700,x
        inx
        bne loop
        rts
}

main_0c00:
        jsr $ff81
        jsr $ff84
        jsr $ff8a
        lda #$ff
        sta $dc01
        jmp loc_09c0

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

// --- Region $0800-$09bf ---
.pc = $0800 "chr_0800"

chr_0800:
        // === Charset data (448 bytes, $0800-$09bf) ===
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 0 @+0
        .byte $7f,$7f,$03,$7f,$7f,$63,$63,$63       // char 1 @+1
        .byte $7e,$7f,$03,$7f,$7f,$63,$7f,$7e       // char 2 @+2
        .byte $7f,$7f,$00,$60,$60,$60,$7f,$7f       // char 3 @+3
        .byte $7e,$7f,$03,$63,$63,$63,$7f,$7e       // char 4 @+4
        .byte $7f,$7f,$00,$7c,$7c,$60,$7f,$7f       // char 5 @+5
        .byte $7f,$7f,$00,$7c,$7c,$60,$60,$60       // char 6 @+6
        .byte $7f,$7f,$00,$67,$67,$63,$7f,$7f       // char 7 @+7
        .byte $63,$63,$03,$7f,$7f,$63,$63,$63       // char 8 @+8
        .byte $1c,$1c,$0c,$1c,$1c,$1c,$1c,$1c       // char 9 @+9
        .byte $03,$03,$03,$03,$03,$63,$7f,$7f       // char 10 @+10
        .byte $63,$67,$0e,$7c,$7c,$6e,$67,$63       // char 11 @+11
        .byte $70,$70,$00,$70,$70,$70,$7f,$7f       // char 12 @+12
        .byte $63,$77,$07,$7f,$6b,$63,$63,$63       // char 13 @+13
        .byte $63,$73,$03,$7f,$7f,$6f,$67,$63       // char 14 @+14
        .byte $3e,$7f,$03,$63,$63,$63,$7f,$3e       // char 15 @+15
        .byte $7f,$7f,$03,$7f,$7f,$60,$60,$60       // char 16 @+16
        .byte $3e,$7f,$03,$63,$63,$63,$7e,$3d       // char 17 @+17
        .byte $7f,$7f,$03,$7f,$7f,$66,$63,$63       // char 18 @+18
        .byte $7f,$7f,$00,$7f,$7f,$03,$7f,$7f       // char 19 @+19
        .byte $7f,$7f,$00,$1c,$1c,$1c,$1c,$1c       // char 20 @+20
        .byte $63,$63,$03,$63,$63,$63,$7f,$7f       // char 21 @+21
        .byte $63,$63,$03,$63,$77,$3e,$1c,$08       // char 22 @+22
        .byte $63,$63,$03,$6b,$7f,$7f,$77,$63       // char 23 @+23
        .byte $63,$77,$06,$1c,$1c,$3e,$77,$63       // char 24 @+24
        .byte $63,$63,$03,$7f,$7f,$03,$7f,$7f       // char 25 @+25
        .byte $7f,$7f,$06,$0c,$18,$30,$7f,$7f       // char 26 @+26
        .byte $3c,$30,$00,$30,$30,$30,$30,$3c       // char 27 @+27
        .byte $18,$18,$18,$18,$18,$00,$18,$18       // char 28 @+28
        .byte $3c,$0c,$00,$0c,$0c,$0c,$0c,$3c       // char 29 @+29
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 30 @+30
        .byte $01,$0f,$0c,$0b,$00,$0b,$0c,$0f       // char 31 @+31
        .byte $00,$00,$00,$00,$00,$00,$0a,$02       // char 32 ' '
        .byte $80,$16,$05,$80,$16,$85,$80,$15       // char 33 '!'
        .byte $85,$80,$15,$05,$80,$00,$05,$80       // char 34 '"'
        .byte $0a,$a5,$80,$15,$55,$80,$15,$55       // char 35 '#'
        .byte $80,$15,$55,$80,$15,$55,$80,$16       // char 36 '$'
        .byte $55,$80,$16,$55,$80,$16,$15,$80       // char 37 '%'
        .byte $16,$15,$80,$16,$05,$80,$14,$05       // char 38 '&'
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 39 '''
        .byte $00,$00,$00,$00,$00,$00,$0a,$aa       // char 40 '('
        .byte $80,$15,$55,$80,$15,$55,$80,$15       // char 41 ')'
        .byte $55,$80,$15,$55,$00,$00,$00,$00       // char 42 '*'
        .byte $0a,$aa,$80,$15,$55,$80,$15,$55       // char 43 '+'
        .byte $80,$15,$55,$80,$15,$55,$80,$00       // char 44 ','
        .byte $05,$80,$0a,$a5,$80,$15,$55,$80       // char 45 '-'
        .byte $15,$55,$80,$15,$55,$80,$15,$55       // char 46 '.'
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 47 '/'
        .byte $00,$00,$00,$00,$00,$00,$0a,$aa       // char 48 '0'
        .byte $80,$15,$55,$80,$15,$55,$80,$15       // char 49 '1'
        .byte $55,$80,$15,$55,$00,$00,$00,$00       // char 50 '2'
        .byte $0a,$00,$00,$16,$00,$00,$16,$00       // char 51 '3'
        .byte $00,$16,$00,$00,$16,$00,$00,$16       // char 52 '4'
        .byte $00,$00,$16,$aa,$80,$15,$55,$80       // char 53 '5'
        .byte $15,$55,$80,$15,$55,$80,$15,$55       // char 54 '6'
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 55 '7'

// --- Region $0a4a-$0a76 ---
.pc = $0a4a "chr_0a4a"

chr_0a4a:
        // === Charset data (45 bytes, $0a4a-$0a76) ===
        .byte $a9,$08,$8d,$3c,$0a,$a2,$00,$bd       // char 0 @+0
        .byte $81,$06,$9d,$80,$06,$e8,$e0,$28       // char 1 @+1
        .byte $d0,$f5,$a2,$00,$bd,$00,$0b,$f0       // char 2 @+2
        .byte $0e,$8d,$a7,$06,$ee,$5d,$0a,$a9       // char 3 @+3
        .byte $08,$8d,$16,$d0,$4c,$31,$ea,$8d       // char 4 @+4
        .byte $5d,$0a,$4c,$69,$0a                   // char 5 (partial)

// --- Region $0add-$0be6 ---
.pc = $0add "Program $0add"
        .byte $36,$85,$01,$a2,$00,$bd,$00           // char 0 (partial)
        .byte $0c,$9d,$01,$08,$e8,$d0,$f7,$ee       // char 1 @+1
        .byte $3c,$03,$ee,$3f,$03,$ad,$3c,$03       // char 2 @+2
        .byte $c9,$90,$d0,$e8,$a9,$37,$85,$01       // char 3 @+3
        .byte $4c,$e2,$fc,$00,$1e,$1e,$1e,$1e       // char 4 @+4
        .byte $1e,$02,$0f,$02,$02,$19,$1e,$02       // char 5 @+5
        .byte $05,$01,$12,$09,$0e,$07,$1e,$02       // char 6 @+6
        .byte $12,$0f,$0b,$05,$0e,$1e,$02,$19       // char 7 @+7
        .byte $1e,$14,$08,$05,$1e,$0e,$0f,$0e       // char 8 @+8
        .byte $1e,$13,$14,$0f,$10,$1e,$03,$12       // char 9 @+9
        .byte $01,$03,$0b,$05,$12,$1e,$1b,$01       // char 10 @+10
        .byte $03,$03,$1d,$1e,$1e,$1e,$07,$12       // char 11 @+11
        .byte $05,$05,$14,$09,$0e,$07,$13,$1e       // char 12 @+12
        .byte $14,$0f,$1e,$1e,$04,$19,$0e,$01       // char 13 @+13
        .byte $0d,$09,$03,$1e,$04,$15,$0f,$1e       // char 14 @+14
        .byte $1e,$1e,$03,$06,$02,$1e,$1e,$1e       // char 15 @+15
        .byte $14,$12,$09,$01,$04,$1e,$1e,$1e       // char 16 @+16
        .byte $14,$14,$04,$1e,$1e,$1e,$13,$14       // char 17 @+17
        .byte $01,$12,$13,$1e,$1e,$1e,$0d,$1a       // char 18 @+18
        .byte $10,$1e,$1e,$1e,$17,$03,$03,$1e       // char 19 @+19
        .byte $1e,$1e,$06,$15,$14,$15,$12,$05       // char 20 @+20
        .byte $1e,$10,$12,$0f,$0a,$05,$03,$14       // char 21 @+21
        .byte $13,$1e,$1e,$1e,$09,$12,$01,$14       // char 22 @+22
        .byte $01,$1e,$1e,$1e,$05,$0c,$03,$1e       // char 23 @+23
        .byte $1e,$1e,$03,$13,$01,$1e,$1e,$1e       // char 24 @+24
        .byte $03,$03,$03,$1e,$1e,$1e,$10,$02       // char 25 @+25
        .byte $01,$1e,$1e,$1e,$12,$17,$05,$1e       // char 26 @+26
        .byte $1e,$1e,$0a,$01,$02,$02,$01,$1e       // char 27 @+27
        .byte $1e,$1e,$14,$0c,$03,$1e,$1e,$1e       // char 28 @+28
        .byte $10,$13,$03,$1e,$1e,$1e,$13,$01       // char 29 @+29
        .byte $02,$0f,$14,$05,$15,$12,$1e,$1e       // char 30 @+30
        .byte $1e,$01,$0e,$04,$1e,$1e,$1e,$03       // char 31 @+31
        .byte $12,$02,$1e,$1e,$1e,$1e,$1e,$1e       // char 32 ' '
        .byte $1e,$00,$00                           // char 33 (partial)
