// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:15
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $ffff  (63487 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $082c (2092)
//
// Code: 673 bytes, Data: 62814 bytes
// Labels: 77, Subroutines: 2
//
// Verification: 5 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $082c-$086c ---
.pc = $082c "main_082c"

// Referenced by: jsr from $fda6
main_082c: {
        lda #$10
        sta $fc
        lda #$70
        sta $fe
        lda #$00
        sta $fb
        sta $fd
loop1:
        ldy #$00
loop2:
        lda ($fb),y
        sta ($fd),y
        iny
        bne loop2
        inc $fc
        inc $fe
        lda $fe
        cmp #$c0
        bne loop1
        jmp loc_08a0
}
// Referenced by: jsr from $09c2, $09c9, $09d0

sub_0850:
        stx $fb
        lda #$00

loc_0854:
        sta $d000,y
        pha
        lda #$00

loc_085a:
        ldx #$05

loc_085c:
        dex
        bne loc_085c
        clc
        adc #$01
        bne loc_085a
        pla
        clc
        adc #$01
        cmp $fb
        bne loc_0854
        rts

// --- Region $08a0-$08b2 ---
.pc = $08a0 "loc_08a0"

loc_08a0:
        lda #$93
        jsr $ffd2
        lda #$00
        sta $d020
        lda #$00
        sta $d021
        jmp loc_0980

dat_08b2:
        // === Fill data (1 bytes, $08b2-$08b2) ===
        .byte $00                                   // .

// --- Region $0980-$0a7d ---
.pc = $0980 "loc_0980"

loc_0980:
        lda #$00
        sta $d015
        lda #$24
        sta $07f8
        sta $07f9
        lda #$25
        sta $07fa
        lda #$00
        ldy #$10

loc_0996:
        sta $d000,y
        dey
        bne loc_0996
        lda #$02
        sta $d027
        lda #$06
        sta $d028
        lda #$09
        sta $d029
        lda $d015
        ora #$07
        sta $d015
        lda #$50
        sta $d001
        sta $d003
        sta $d005
        ldy #$00
        ldx #$80
        jsr sub_0850
        ldy #$02
        ldx #$a0
        jsr sub_0850
        ldy #$04
        ldx #$c0
        jsr sub_0850
        ldx #$ff

loc_09d5:
        ldy #$ff

loc_09d7:
        dey
        bne loc_09d7
        dex
        bne loc_09d5

loc_09dd:
        dec $d002
        inc $d003
        dec $d004
        inc $d005
        lda #$00

loc_09eb:
        ldx #$05

loc_09ed:
        dex
        bne loc_09ed
        clc
        adc #$01
        bne loc_09eb
        lda #$80
        cmp $d002
        bne loc_09dd

loc_09fc:
        dec $d004
        inc $d005
        lda #$00

loc_0a04:
        ldx #$05

loc_0a06:
        dex
        bne loc_0a06
        clc
        adc #$01
        bne loc_0a04
        lda #$80
        cmp $d004
        bne loc_09fc
        ldy #$03

loc_0a17:
        lda $086c,y
        sta $0460,y
        lda #$01
        sta $d860,y
        dey
        bne loc_0a17
        ldy #$06

loc_0a27:
        lda $086f,y
        sta $04d7,y
        lda #$01
        sta $d8d7,y
        dey
        bne loc_0a27
        ldy #$07

loc_0a37:
        lda $0875,y
        sta $0577,y
        lda #$01
        sta $d977,y
        dey
        bne loc_0a37
        ldy #$06

loc_0a47:
        lda $087c,y
        sta $0617,y
        lda #$01
        sta $da17,y
        dey
        bne loc_0a47
        ldy #$08

loc_0a57:
        lda $0882,y
        sta $06b6,y
        lda #$07
        sta $dab6,y
        dey
        bne loc_0a57
        ldx #$10

loc_0a67:
        ldy #$80

loc_0a69:
        lda #$00

loc_0a6b:
        clc
        adc #$01
        bne loc_0a6b
        dey
        bne loc_0a69
        dex
        bne loc_0a67
        lda #$00
        sta $d015
        jmp loc_fce2

// --- Region $a9d0-$a9d0 ---
.pc = $a9d0 "Segment $a9d0"
        brk

// --- Region $fce2-$fce2 ---
.pc = $fce2 "loc_fce2"

loc_fce2:
        brk

// --- Region $fd08-$fd22 ---
.pc = $fd08 "loc_fd08"

loc_fd08:
        lda ($2f),y
        rol
        rol
        rol
        rol
        and #$07
        tax
        lda $011a,x
        sta $0118
        lda ($2f),y
        and #$1f
        tax
        jsr $0122
        jmp $01ff

dat_fd22:
        .byte $a4                                   // .

// --- Region $fd2f-$fde2 ---
.pc = $fd2f "loc_fd2f"

loc_fd2f:
        bmi loc_fd91
        lda ($2f),y
        jsr $0122

loc_fd36:
        sta ($2d),y
        inc $2d
        bne loc_fd3e
        inc $2e

loc_fd3e:
        dex
        bne loc_fd36
        beq loc_fd08
        lda #$00
        beq loc_fd36
        lda #$ff
        bne loc_fd36

loc_fd4b:
        lda ($2f),y
        sta ($2d),y
        inc $2f
        bne loc_fd55
        inc $30

loc_fd55:
        inc $2d
        bne loc_fd5b
        inc $2e

loc_fd5b:
        dex
        bne loc_fd4b
        beq loc_fd08
        jsr $0171
        lda ($2f),y
        jsr $0122

loc_fd68:
        sta ($2d),y
        inc $2d
        bne loc_fd70
        inc $2e

loc_fd70:
        dex
        bne loc_fd68
        dec $39
        bpl loc_fd68
        bmi loc_fd08
        stx $39
        lda ($2f),y
        tax
        jmp $0122

loc_fd81:
        jsr $0171

loc_fd84:
        lda ($2f),y
        sta ($2d),y
        inc $2f
        bne loc_fd8e
        inc $30

loc_fd8e:
        inc $2d
.label loc_fd91 = * + 1
        bne loc_fd94
        inc $2e

loc_fd94:
        dex
        bne loc_fd84
        dec $39
        bpl loc_fd84
        jmp $0100

loc_fd9e:
        bit $01da
        lda #$37
        sta $01
        cli
        jsr main_082c
        jmp loc_a7ae

loc_fdac:
        cpx #$00
        beq loc_fd9e
        lda #$04
        bit $08a9
        sta $ff

loc_fdb7:
        lda ($2f),y
        sta ($2d),y
        iny
        cpy $ff
        bne loc_fdb7
        clc
        lda $2d
        adc $ff
        sta $2d
        lda $2e
        adc #$00
        sta $2e
        ldy #$00
        dex
        bne loc_fdb7
        clc
        lda $2f
        adc $ff
        sta $2f
        lda $30
        adc #$00
        sta $30
        jmp $0100

dat_fde2:
        .byte $b9                                   // .

// --- Region $fe1d-$fe5d ---
.pc = $fe1d "loc_fe1d"

loc_fe1d:
        lda #$10
        sta $fc
        lda #$70
        sta $fe
        lda #$00
        sta $fb
        sta $fd

loc_fe2b:
        ldy #$00

loc_fe2d:
        lda ($fb),y
        sta ($fd),y
        iny
        bne loc_fe2d
        inc $fc
        inc $fe
        lda $fe
        cmp #$c0
        bne loc_fe2b
        jmp loc_08a0

loc_fe41:
        stx $fb
        lda #$00

loc_fe45:
        sta $d000,y
        pha
        lda #$00

loc_fe4b:
        ldx #$05

loc_fe4d:
        dex
        bne loc_fe4d
        clc
        adc #$01
        bne loc_fe4b
        pla
        clc
        adc #$01
        cmp $fb
        bne loc_fe45
        rts

// --- Region $fe79-$fe90 ---
.pc = $fe79 "loc_fe79"

loc_fe79:
        asl $1314
        lda $32,x
        lda #$93
        jsr $ffd2
        lda #$00
        sta $d020
        lda #$00
        sta $d021
        jmp loc_0980

dat_fe90:
        .byte $80                                   // .

// --- Region $ffd2-$fffc ---
.pc = $ffd2 "Segment $ffd2"
        ldy #$08

loc_ffd4:
        lda $0882,y
        sta $06b6,y
        lda #$07
        sta $dab6,y
        dey
        bne loc_ffd4
        ldx #$10

loc_ffe4:
        ldy #$80

loc_ffe6:
        lda #$00

loc_ffe8:
        clc
        adc #$01
        bne loc_ffe8
        dey
        bne loc_ffe6
        dex
        bne loc_ffe4
        lda #$00
        sta $d015
        jmp loc_fce2

dat_fffb:
        .byte $80,$82                               // ..

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

// --- Region $0801-$082b ---
.pc = $0801 "dat_0801"

dat_0801:
        // === BASIC loader stub ===
        .byte $22,$08                                                     // [corrected] was: .byte $0b,$08                               // next line pointer ($080b)
        .byte $0a,$00                                                     // [corrected] was: .byte $00,$00                               // line number 0
        .byte $9e                                   // SYS token
        .byte $20,$28,$32,$30
        .byte $39                                                         // [corrected] was: .byte $00                                   // end of line
        .byte $32,$29                                                     // [corrected] was: .byte $00,$00                               // end of BASIC program
        .text "       PACMAN  ("
        .text "CCS)"
        .byte $00,$00,$00
        .byte $53,$46,$00,$00,$00,$00,$00,$00

// --- Region $086d-$089f ---
.pc = $086d "dat_086d"

dat_086d:
        .byte $14,$08,$05,$15,$0d,$02,$12,$09,$01,$12,$01,$03,$0b,$09,$0e,$07 // ................
        .byte $05,$12,$16,$09,$03,$05,$10,$12,$05,$13,$05,$0e,$14,$13,$00,$00 // ................
        .fill 19, $00

// --- Region $0900-$097f ---
.pc = $0900 "spr_0900"

spr_0900:
        .byte $00,$00,$00,$00,$00,$00,$00,$ff,$00,$01,$ff,$80,$03,$f9,$c0,$07 // ................
        .byte $f9,$e0,$07,$ff,$c0,$0f,$ff,$00,$0f,$fc,$00,$0f,$f8,$00,$0f,$f8 // ................
        .byte $00,$0f,$fc,$00,$0f,$ff,$00,$0f,$ff,$80,$07,$ff,$e0,$07,$ff,$e0 // ................
        .byte $03,$ff,$c0,$01,$ff,$80,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00 // ................

spr_0940:
        // === Sprite data (64 bytes, $0940-$097f) ===
        .byte $00,$00,$00                           // ........................
        .byte $00,$00,$00                           // ........................
        .byte $00,$ff,$00                           // ........########........
        .byte $01,$ff,$80                           // .......##########.......
        .byte $03,$83,$80                           // ......###.....###.......
        .byte $03,$81,$80                           // ......###......##.......
        .byte $03,$80,$00                           // ......###...............
        .byte $01,$c0,$00                           // .......###..............
        .byte $00,$e0,$00                           // ........###.............
        .byte $00,$70,$00                           // .........###............
        .byte $00,$38,$00                           // ..........###...........
        .byte $00,$1c,$00                           // ...........###..........
        .byte $00,$0e,$00                           // ............###.........
        .byte $00,$07,$00                           // .............###........
        .byte $02,$03,$80                           // ......#.......###.......
        .byte $03,$01,$80                           // ......##.......##.......
        .byte $03,$03,$80                           // ......##......###.......
        .byte $03,$ff,$00                           // ......##########........
        .byte $01,$fe,$00                           // .......########.........
        .byte $00,$00,$00                           // ........................
        .byte $00,$00,$00                           // ........................
        .byte $ff                                   // sprite 0 padding

// --- Region $0a7e-$0a7e ---
.pc = $0a7e "dat_0a7e"

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

// --- Region $0b00-$0b3d ---
.pc = $0b00 "dat_0b00"

dat_0b00:
        .byte $d0,$f2,$a0,$06,$b9,$7c,$08,$99,$17,$06,$a9,$01,$99,$17,$da,$88 // .....|..........
        .byte $d0,$f2,$a0,$08,$b9,$82,$08,$99,$b6,$06,$a9,$07,$99,$b6,$da,$88 // ................
        .byte $d0,$f2,$a2,$10,$a0,$80,$a9,$00,$18,$69,$01,$d0,$fb,$88,$d0,$f6 // .........i......
        .byte $ca,$d0,$f1,$a9,$00,$8d,$15,$d0,$4c,$e2,$fc,$80,$82 // ........L....

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

// --- Region $a7ae-$a7ae ---
.pc = $a7ae "loc_a7ae"

loc_a7ae:
        .byte $00                                   // .

// --- Region $a9d1-$a9d1 ---
.pc = $a9d1 "dat_a9d1"

dat_a9d1:
        // === Fill data (1 bytes, $a9d1-$a9d1) ===
        .byte $00                                   // .

// --- Region $fd01-$fd07 ---
.pc = $fd01 "dat_fd01"

dat_fd01:
        .byte $01,$01,$08,$f9,$fd,$40,$0b           // .....@.

// --- Region $fd23-$fd2e ---
.pc = $fd23 "Segment $fd23"
        .byte $43,$ab,$79
        .text "X;?)"
        .byte $e6
        .byte $2f,$d0,$02,$e6

// --- Region $fde3-$fe1c ---
.pc = $fde3 "Segment $fde3"
        .byte $00,$ef,$99,$00,$ff,$c8,$d0,$f7,$ce,$dc,$01,$ce,$df,$01,$ad,$df // ................
        .byte $01,$c9,$df,$d0,$ea,$60,$2c,$22,$08,$0a,$00,$9e // .....`,"....

txt_fdff:
        .text " (2092)"
        .byte $e7                                   // .

txt_fe07:
        .text " -PACMAN  (CCS)"
        .byte $a3                                   // '#' | $80 (end-of-string marker)

txt_fe17:
        .byte $22                                   // double quote character
        .text "SF"
        .byte $a6                                   // '&' | $80 (end-of-string marker)
        .byte $60,$5f                               // `_

// --- Region $fe5e-$fe78 ---
.pc = $fe5e "dat_fe5e"

dat_fe5e:
        .byte $14,$08,$05,$15,$0d,$02,$12,$09,$01,$12,$01,$03,$0b,$09,$0e,$07 // ................
        .byte $05,$12,$16,$09,$03,$05,$10,$12,$05,$13,$05 // ...........

// --- Region $fe91-$ffd1 ---
.pc = $fe91 "Segment $fe91"
        .byte $55,$00,$60,$31,$ff,$00,$01,$ff,$80,$03,$f9,$c0,$07,$f9,$e0,$07 // U.`1............
        .byte $ff,$c0,$0f,$ff,$00,$0f,$fc,$00,$0f,$f8,$00,$0f,$f8,$00,$0f,$fc // ................
        .byte $00,$0f,$ff,$00,$0f,$ff,$80,$07,$ff,$e0,$07,$ff,$e0,$03,$ff,$c0 // ................
        .byte $01,$ff,$80,$00,$ff,$af,$30,$ff,$00,$01,$ff,$80,$03,$83,$80,$03 // ......0.........
        .byte $81,$80,$03,$80,$00,$01,$c0,$a2,$21,$e0,$a2,$21,$70,$a2 // ........!..!p.

txt_fedf:
        .text "!8"
        .byte $a2                                   // '"' | $80 (end-of-string marker)
        .byte $21,$1c,$a2,$21,$0e,$a2,$30,$07,$00,$02,$03,$80,$03,$01,$80,$03 // !..!..0.........
        .byte $03,$80,$03,$ff,$00,$01,$fe,$a7,$60,$ff,$ff,$a9,$00,$8d,$15,$d0 // ........`.......
        .byte $a9,$24,$8d,$f8,$07,$8d,$f9,$07,$a9,$25,$8d,$fa,$07,$a9,$00,$a0 // .$.......%......
        .byte $10,$99,$00,$d0,$88,$d0,$fa,$a9,$02,$8d,$27,$d0,$a9,$06,$8d,$28 // ..........'....(
        .byte $d0,$a9,$09,$8d,$29,$d0,$ad,$15,$d0,$09,$07,$8d,$15,$d0,$a9,$50 // ....)..........P
        .byte $8d,$01,$d0,$8d,$03,$d0,$8d,$05,$d0,$a0,$00,$a2,$80,$20,$50,$08 // ............. P.
        .byte $a0,$02,$a2,$a0,$20,$50,$08,$a0,$04,$a2,$c0,$20,$50,$08,$a2,$ff // .... P..... P...
        .byte $a0,$ff,$88,$d0,$fd,$ca,$d0,$f8,$ce,$02,$d0,$ee,$03,$d0,$ce,$04 // ................
        .byte $d0,$ee,$05,$d0,$a9,$00,$a2,$05,$ca,$d0,$fd,$18,$69,$01,$d0,$f6 // ............i...
        .byte $a9,$80,$cd,$02,$d0,$d0,$e1,$ce,$04,$d0,$ee,$05,$d0,$a9,$00,$a2 // ................
        .byte $05,$ca,$d0,$fd,$18,$69,$01,$d0,$f6,$a9,$80,$cd,$04,$d0,$d0,$e7 // .....i..........
        .byte $a0,$03,$b9,$6c,$08,$99,$60,$04,$a9,$01,$99,$60,$d8,$88,$d0,$f2 // ...l..`....`....
        .byte $a0,$06,$b9,$6f,$08,$99,$d7,$04,$a9,$01,$99,$d7,$d8,$88,$d0,$f2 // ...o............
        .byte $a0,$07,$b9,$75,$08,$99,$77,$05,$a9,$01,$99,$77,$d9,$88,$d0,$f2 // ...u..w....w....
        .byte $a0,$06,$b9,$7c,$08,$99,$17,$06,$a9,$01,$99,$17,$da,$88,$d0,$f2 // ...|............
