// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:37:00
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $845c  (31836 bytes)
// Crunched with PuCrunch — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $7e1f (32287)
// IRQ handler:  $7ea2 (irq_7ea2)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 260 bytes, Data: 31576 bytes
// Labels: 68, Subroutines: 2
//
// Verification: 4 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $0850-$0853 ---
.pc = $0850 "loc_0850"

loc_0850:
        .byte $03,$02                               // slo ($02,x) // ILLEGAL
        pla
        rts

// --- Region $7e1f-$7e54 ---
.pc = $7e1f "main_7e1f"

main_7e1f:
        jsr $e518
        lda #$00
        sta $d020
        sta $d021
        sta $d011
        sta $9d
        sta $62
        jsr sub_8002
        jsr sub_7e7c

loc_7e37:
        jsr $ffe4
        beq loc_7e37
        sei
        lda #$ea
        sta $0315
        lda #$31
        sta $0314
        lda #$f0
        sta $d01a
        jsr $ff84
        cli
        jmp $fce2

dat_7e53:
        .byte $60,$08                               // `.

// --- Region $7e60-$7f01 ---
.pc = $7e60 "loc_7e60"

loc_7e60:
        lda #$04
        ldx #$78
        ldy #$08
        jsr $ffbd
        lda #$08
        tax
        tay
        jsr $ffba
        lda #$00
        jsr $ffd5
        jmp loc_0850

dat_7e78:
        .text "NOVA"
// Referenced by: jsr from $7e34

sub_7e7c:
        sei
        lda #$1b
        sta $d011
        lda #$7f
        sta $dc0d
        lda #$00
        sta $fe
        sta $fd
        lda #$c7
        sta $ff
        lda #$01
        sta $d01a
        lda #$a2
        sta $0314
        lda #$7e
        sta $0315
        cli
        rts

irq_7ea2:
        lda $d019
        sta $d019
        lda $fe
        eor #$80
        sta $fe
        bne loc_7ebd
        lda #$00
        sta $d012
        lda $ff
        sta $d016
        jmp $ea7e

loc_7ebd:
        lda #$f1
        sta $d012
        lda #$c8
        sta $d016
        dec $ff
        dec $ff
        lda $ff
        cmp #$c0
        bpl loc_7ef3
        lda #$c6
        sta $ff
        lda #$07
        sta $fc
        lda #$c0
        sta $fb
        ldy #$00

loc_7edf:
        iny
        lda ($fb),y
        dey
        sta ($fb),y
        iny
        cpy #$27
        bne loc_7edf
        ldx $fd
        lda txt_7f02,x
        sta ($fb),y
        inc $fd

loc_7ef3:
        ldx #$00

loc_7ef5:
        lda #$01
        sta $dbc0,x
        inx
        cpx #$28
        bne loc_7ef5
        jmp $ea31

// --- Region $8002-$802f ---
.pc = $8002 "sub_8002"
// Referenced by: jsr from $7e31

sub_8002:
        ldx #$00

loc_8004:
        lda $8050,x
        sta $0400,x
        lda $8150,x
        sta $0500,x
        lda $8250,x
        sta $0600,x
        lda $8350,x
        sta $0700,x
        lda #$01
        sta $d800,x
        sta $d900,x
        sta $da00,x
        sta $db00,x
        inx
        cpx #$00
        bne loc_8004
        rts

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

// --- Region $0801-$084f ---
.pc = $0801 "dat_0801"

dat_0801:
        // === BASIC loader stub ===
        .byte $0b,$08                                                     // [corrected] was: .byte $0c,$08                               // next line pointer ($080c)
        .byte $ef,$00                                                     // [corrected] was: .byte $00,$00                               // line number 0
        .byte $9e                                   // SYS token
        .byte $32,$30,$36,$31,$00
        .byte $00                                   // end of line
        .byte $00,$78                                                     // [corrected] was: .byte $00,$00                               // end of BASIC program
        .byte $2c,$30,$d0,$a9,$38,$85,$01,$a2,$34,$bd,$42,$08,$9d,$ff,$01,$ca // ,0..8...4.B.....
        .byte $d0,$f7,$a2,$cf,$bd,$75,$08,$9d,$f6,$00,$ca,$d0,$f7,$a0,$04,$ca // .....u..........
        .byte $bd,$3a,$07,$9d,$5d,$7f,$8a,$d0,$f6,$ce,$33,$08,$ce,$30,$08,$88 // .:..].....3..0..
        .byte $d0,$ed,$4c,$16,$01,$48,$ad,$53,$81,$2a,$85,$f7,$ee,$02,$02,$d0 // ..L..H.S.*......
        .byte $03,$ee                               // ..

// --- Region $0854-$0c39 ---
.pc = $0854 "dat_0854"

dat_0854:
        .byte $e8,$8a,$06,$f7,$d0,$03,$20,$00,$02,$90,$12,$e8,$e0,$08,$d0,$f2 // ...... .........
        .byte $f0,$0b,$a2,$07,$e8,$06,$f7,$d0,$03,$20,$00,$02,$2a,$ca,$d0,$f5 // ......... ..*...
        .byte $18,$60,$80,$01,$8d,$1f,$7e,$e6,$fa,$d0,$02,$e6,$fb,$ca,$60,$a4 // .`....~.......`.
        .byte $f8,$a2,$01,$20,$2f,$02,$85,$f8,$98,$a2,$07,$20,$2f,$02,$20,$f9 // ... /...... /. .
        .byte $00,$a0,$00,$98,$a2,$01,$20,$2f,$02,$c5,$f8,$d0,$ec,$20,$11,$02 // ...... /..... ..
        .byte $85,$2d,$4a,$d0,$3f,$20,$25,$02,$4a,$90,$47,$20,$25,$02,$4a,$90 // .-J.? %.J.G %.J.
        .byte $ce,$c8,$20,$11,$02,$85,$2d,$c9,$80,$90,$0b,$a2,$01,$20,$26,$02 // .. ...-...... &.
        .byte $85,$2d,$20,$11,$02,$a8,$20,$11,$02,$aa,$bd,$a5,$01,$e0,$20,$90 // .- ... ....... .
        .byte $06,$8a,$a2,$03,$20,$26,$02,$a6,$2d,$e8,$20,$f9,$00,$d0,$fb,$88 // .... &..-. .....
        .byte $d0,$f8,$f0,$ad,$20,$11,$02,$c9,$ff,$f0,$23,$e9,$00,$a2,$00,$20 // .... .....#.... 
        .byte $2f,$02,$85,$2e,$20,$23,$02,$65,$fa,$a6,$2d,$85,$2d,$a5,$fb,$e5 // /... #.e..-.-...
        .byte $2e,$85,$2e,$e8,$b1,$2d,$c8,$20,$f9,$00,$d0,$f8,$f0,$d4,$a9,$37 // .....-. .......7
        .byte $85,$01,$2c,$30,$d0,$a5,$fa,$85,$2d,$a5,$fb,$85,$2e,$58,$4c,$1f // ..,0....-....XL.
        .byte $7e,$20,$45,$05,$0c,$2e,$00,$03,$09,$13,$31,$3f,$20,$18,$a6,$5a // ~ E.......1? ..Z
        .byte $92,$00,$8d,$22,$0d,$08,$d2,$21,$1f,$a4,$23,$a1,$0b,$3b,$0a,$5c // ..."...!..#..;.\
        .byte $44,$00,$55,$00,$40,$f8,$fc,$41,$4c,$9f,$fe,$1f,$64,$f1,$53,$d5 // D.U.@..AL...d.S.
        .byte $1a,$42,$a4,$07,$52,$46,$31,$a4,$28,$3e,$fc,$23,$48,$6b,$40,$88 // .B..RF1.(>.#Hk@.
        .byte $21,$3f,$c9,$60,$93,$38,$bf,$0b,$80,$22,$a7,$4d,$00,$e9,$a3,$80 // !?.`.8...".M....
        .byte $86
        .text "4=K2"
        .byte $7c
        .text "UH%Q<U"
        .byte $00
        .byte $41,$05,$1e
        .byte $ff,$d4,$90
        .text "EUAPU"
        .byte $d4,$f9,$00
        .byte $20,$ad
        .byte $5a,$ff
        .byte $4c
        .byte $50,$08
        .text "NOVA"
        .byte $98,$03,$78,$ab,$a2,$92,$7f,$8d
        .byte $20,$dd
        .byte $c1,$d3,$0b,$fd,$0b,$fb,$53,$8f,$0a,$37,$c8,$05,$16,$d5,$34,$4a // ......S..7....4J
        .byte $ac
        .byte $2f,$ec
        .text "Q,0Q"
        .byte $69,$0c,$88
        .byte $51,$fb
        .byte $4b,$fc
        .byte $49,$30
        .byte $03,$77,$40,$83,$50,$e4,$42,$43,$cf,$fe,$34,$a5,$ab,$41,$31,$fa // .w@.P.BC..4..A1.
        .byte $9a,$aa,$7c,$51,$e7,$53,$90,$8f,$3c,$6f,$f1,$fc,$3a,$b2,$70,$08 // ..|Q.S..<o..:.p.
        .byte $40,$88,$aa,$71,$91,$78,$40,$f0,$bf,$95,$38,$10,$bf,$74,$04,$01 // @..q.x@...8..t..
        .byte $91,$63,$f7,$11,$23,$f7,$91,$80,$44,$e1,$ce,$9b,$f6,$f4,$80,$89 // .c..#...D.......
        .byte $fc,$7a,$73,$7e,$d1,$10,$00,$9c,$9d,$c0,$db,$0b,$c4,$51,$a1,$ec // .zs~.........Q..
        .byte $59,$86,$35,$d4,$06,$1e,$08,$0a,$1c,$02,$1a,$0a,$5a,$1a,$02,$28 // Y.5.........Z..(
        .byte $41,$6e,$04,$02,$e0,$22,$70,$70,$48,$3c,$2e,$75,$cf,$91,$92,$00 // An..."ppH<.u....
        .byte $70,$10,$c0,$10,$80,$10,$42,$00,$60,$f1,$29,$cc,$5c,$02,$5c,$26 // p.....B.`.).\.\&
        .byte $5c,$20,$5d,$36,$a7,$29,$c1,$ad,$ce,$46,$56,$cd,$98,$d0,$10,$9d // \ ]6.)...FV.....
        .byte $c2,$7d,$b5,$8b,$02,$45,$80,$43,$82,$03,$c1,$4b,$02,$e6,$d0,$39 // .}...E.C...K...9
        .byte $00,$08,$90,$a0,$ac,$c7,$9d,$f2,$fe,$71,$87,$01,$82,$86,$07,$8a // .........q......
        .byte $6b
        .byte $34,$1c
        .byte $4a,$d4
        .byte $53,$1c
        .text "3,P<"
        .byte $80,$c4,$dc,$c0,$c4
        .byte $b0,$60,$16,$47,$0c,$16,$09,$db,$78,$fc,$13,$2c,$0d,$2e,$05,$2e // .`.G....x..,....
        .byte $d6,$5e,$b8,$40,$6d,$82,$09,$94,$11,$38,$08,$25,$18,$1c,$6b,$12 // .^.@m....8.%..k.
        .byte $13,$d4,$14,$f0,$c4,$78,$a8,$74,$95,$c7,$80,$2e,$ab,$84,$25,$75 // .....x.t......%u
        .byte $b8,$e3,$36,$27,$cd,$d1,$9d,$64,$89,$8a,$48,$5d,$4a,$4e,$1c,$1c // ..6'...d..H]JN..
        .byte $05,$07,$c7,$b0,$e9,$d1,$6e,$73,$7b,$50,$98,$18,$07,$c0,$7d,$b3 // ......ns{P....}.
        .byte $78,$51,$11,$00,$5e,$92,$84,$04,$e9,$40,$02,$4f,$aa,$81,$9f,$40 // xQ..^....@.O...@
        .byte $b3,$ea,$a0,$a7,$d0,$34,$fa,$a8,$39,$f4,$0f,$93,$64,$02,$96,$07 // .....4..9...d...
        .byte $ee,$c8,$fd,$da,$1f,$a9,$34,$08,$03,$43,$54,$b8,$24,$b4,$37,$c4 // ......4..CT.$.7.
        .byte $fc,$70,$e9,$7a,$5d,$7f,$82,$78,$4a,$8d,$1d,$45,$11,$41,$3b,$fb // .p.z]..xJ..E.A;.
        .byte $ef,$78,$5b,$7f,$4d,$2f,$c1,$c2,$43,$a3,$8d,$f4,$09,$86,$ec,$72 // .x[.M/..C......r
        .byte $13,$03,$8b,$33,$8a,$f6,$bd,$4b,$e8,$be,$72,$f6,$31,$c8,$e8,$18 // ...3...K..r.1...
        .byte $1e,$2f,$90,$e3,$c9,$61,$3b,$27,$6c,$98,$2f,$13,$08,$0f,$12,$14 // ./...a;'l./.....
        .byte $c5,$40,$0e,$2a,$8c,$a7,$60,$30,$08,$98,$a7,$a3,$60,$46,$76,$08 // .@.*..`0....`Fv.
        .byte $8a,$80,$82,$09,$4e,$09,$b4,$06,$11,$90,$9e,$e0,$ce,$76,$02,$4b // ....N........v.K
        .byte $10,$ee,$60,$a0,$78,$83,$05,$d0,$14,$ec,$02,$81,$c2,$81,$80,$b9 // ..`.x...........
        .byte $3f,$83,$72,$58,$5d,$1a,$17,$6b,$cf,$1d,$33,$64,$42,$d4,$12,$f0 // ?.rX]..k..3dB...
        .byte $0d,$c6,$20,$08,$6c,$33,$07,$9a,$f0,$d7,$a6,$c1,$ac,$f9,$15,$10 // .. .l3..........
        .byte $d5,$90,$30,$ad,$b1,$7a,$09,$4e,$cc,$ba,$51,$d8,$58,$24,$14,$5e // ..0..z.N..Q.X$.^
        .byte $fe,$d3,$9a,$83,$1e,$a2,$10,$90,$78,$67,$d5,$08,$ef,$ac,$f8,$2e // ........xg......
        .byte $dc,$fd,$8e,$b1,$78,$10
        .byte $4b,$28,$55,$e4
        .text "P.R"
        .byte $40                                   // @ character
        .byte $02,$05
        .byte $b3,$17,$5c,$d7,$a0,$26,$09,$01,$41,$81,$43,$84,$e6,$d8,$98,$44 // ..\..&..A.C....D
        .byte $48,$0c,$04,$c4,$78,$36,$48,$40,$19,$d8,$28,$33,$e2,$ed,$82,$d3 // H...x6H@..(3....
        .byte $b3,$31,$ba,$0f,$3a,$f8,$9a,$82,$bc,$48,$f0,$52,$ed,$94,$21,$d3 // .1..:....H.R..!.
        .byte $ae,$57,$c0,$91,$08,$a1,$74,$03,$98,$76,$0c,$99,$73,$d2,$21,$f1 // .W....t..v..s.!.
        .byte $88,$0b,$a0,$89,$d8,$11,$0d,$81,$2f,$98,$a0,$40,$a7,$13,$82,$dc // ......../..@....
        .byte $e3,$a7,$b7,$60,$79,$4e,$42,$0c,$ce,$1e,$bb,$2f,$ea,$0a,$08,$0a // ...`yNB..../....
        .byte $4f,$79,$c1,$29,$3e,$11,$81,$85,$09,$f7,$3d,$5b,$81,$db,$ff,$2e // Oy.)>.....=[....
        .byte $5d,$d5,$3f,$af,$ff,$e0               // ].?...

// --- Region $7e55-$7e5f ---
.pc = $7e55 "Segment $7e55"
        .byte $9d,$34,$03,$e8,$e0,$18,$d0,$f5,$4c,$34,$03 // .4......L4.

// --- Region $7f02-$8001 ---
.pc = $7f02 "txt_7f02"

txt_7f02:
        .encoding "screencode_mixed"
        .text "codename-mat ii was broken by galahad for w.a.s.p. in"
        .encoding "petscii_upper"

txt_7f37:
        .text " 851112..  "

txt_7f42:
        .encoding "screencode_mixed"
        .text "wasp is galahad,ivanhoe,king artur and lancelot"
        .encoding "petscii_upper"

txt_7f71:
        .text "..  "
        .byte $07,$12,$05,$05,$14,$09,$0e,$07,$13,$20,$14,$0f // ......... ..

txt_7f81:
        .text " 1701,"

txt_7f87:
        .encoding "screencode_mixed"
        .text "xerox,scc,scs,m.e. and to all other hackers in this universe"
        .encoding "petscii_upper"

txt_7fc3:
        .text "..  "

txt_7fc7:
        .encoding "screencode_mixed"
        .text "press any key to start.. seen journey?? a great game"
        .encoding "petscii_upper"

txt_7ffb:
        .text "..     "

// --- Region $8030-$845c ---
.pc = $8030 "txt_8030"

txt_8030:
        .encoding "screencode_mixed"
        .text " play the game"
        .encoding "petscii_upper"

txt_803e:
        .text "..."

dat_8041:
        // === Fill data (67 bytes, $8041-$8083) ===
        .fill 67, $20
        .byte $17,$2e,$01,$2e,$13,$2e,$10,$2e,$20,$10,$12,$05,$13,$05,$0e,$14 // ........ .......
        .byte $13                                   // .

dat_8095:
        .text "                                                                "
        .byte $03,$0f,$04,$05,$0e,$01,$0d,$05,$2d,$0d,$01,$14,$20,$09,$09 // ........-... ..

dat_80e4:
        .text "                                                     "
        .byte $05,$0e,$07,$09,$0e,$05,$13           // .......

txt_8120:
        .text "             "
        .byte $13,$0d,$01,$0c,$0c,$20,$13,$03,$12,$05,$05,$0e // ..... ......

txt_8139:
        .text "        EEEEEEE             EEEEEEEEEEEE        1. "
        .byte $13,$0c,$0f,$17,$05,$12               // ......

txt_8172:
        .text "           "

txt_817d:
        .encoding "screencode_mixed"
        .text "s. long/short scan"
        .encoding "petscii_upper"

txt_818f:
        .text "  2. "
        .byte $06,$01,$13,$14,$05,$12               // ......

txt_819a:
        .text "           "

txt_81a5:
        .encoding "screencode_mixed"
        .text "q. quadrant chart"
        .encoding "petscii_upper"

txt_81b6:
        .text "   3. "

txt_81bc:
        .encoding "screencode_mixed"
        .text "down to stop"
        .encoding "petscii_upper"
        .byte $60                                   // `

txt_81c9:
        .text "    "

txt_81cd:
        .encoding "screencode_mixed"
        .text "b. battle comp"
        .encoding "petscii_upper"

txt_81db:
        .text ".     4. "
        .byte $03,$0f,$0d,$02,$01,$14,$20,$13,$10,$05,$05,$04 // ...... .....

txt_81f0:
        .text "     "
        .byte $0d                                   // string terminator

txt_81f6:
        .encoding "screencode_mixed"
        .text ". dammage rep"
        .encoding "petscii_upper"

txt_8203:
        .text ".     5. "

txt_820c:
        .encoding "screencode_mixed"
        .text "up to full"
        .encoding "petscii_upper"

txt_8216:
        .text "       "

txt_821d:
        .encoding "screencode_mixed"
        .text "r. rear view"
        .encoding "petscii_upper"

dat_8229:
        .text "                                                           "
        .byte $0f,$14,$08,$05,$12,$20,$03,$0f,$0e,$14,$12,$0f,$0c,$13 // ..... ........

txt_8272:
        .text "                          EEEEEEEEEEEEEE               "

txt_82a9:
        .encoding "screencode_mixed"
        .text "w. warp drive"
        .encoding "petscii_upper"

txt_82b6:
        .text "      ("

txt_82bd:
        .encoding "screencode_mixed"
        .text "w) abort warp"
        .encoding "petscii_upper"

txt_82ca:
        .text "       "

txt_82d1:
        .encoding "screencode_mixed"
        .text "d. defense shields  f. safety shields   t. target computer  e. change weapon"
        .encoding "petscii_upper"

txt_831d:
        .text "    "

txt_8321:
        .encoding "screencode_mixed"
        .text "a. alien tracker"
        .encoding "petscii_upper"

txt_8331:
        .text "    "
        .byte $08,$2e,$20,$08,$0f,$0c,$04           // .. ....

txt_833c:
        .text "            ("

txt_8349:
        .encoding "screencode_mixed"
        .text "p) save game"
        .encoding "petscii_upper"

txt_8355:
        .text "       ("

txt_835d:
        .encoding "screencode_mixed"
        .text "o) load game"
        .encoding "petscii_upper"

dat_8369:
        .text "                                                     ( )="

txt_83a2:
        .encoding "screencode_mixed"
        .text "press 'shift' and key"
        .encoding "petscii_upper"

dat_83b7:
        .text "                                                                                                                                                        "
        .byte $00                                   // string terminator
        .byte $00,$00,$00,$ff,$db,$ff,$2e,$5d,$d5,$3f,$af,$ff,$e0 // .......].?...
