// ============================================
// lfk-01 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:18
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $0bff  (1023 bytes)
// Entry point:  $080d (via BASIC SYS 2061)
// IRQ handler:  $0880 (irq_0880)
//
// Code: 316 bytes, Data: 707 bytes
// Labels: 49, Subroutines: 2
//
// Cross-references: all OK
// ============================================


// --- Region $080d-$0954 ---
.pc = $080d "main_080d"

main_080d:
        lda #$00
        sta $d020
        sta $d021
        ldx #$00

loc_0817:
        lda dat_0954,x
        beq loc_0822
        jsr $ffd2
        inx
        bne loc_0817

loc_0822:
        jsr sub_0840

loc_0825:
        jsr $ffe4
        beq loc_0825
        jsr $fd15
        jsr $e453
        jsr $fda3
        jsr $ff5b
        jmp $fce2

dat_0839:
        .byte $00,$00,$00,$00,$00,$00,$00           // .......
// Referenced by: jsr from $0822

sub_0840:
        sei
        lda #$80
        sta $0314                                   // set IRQ handler low byte
        lda #$08
        sta $0315                                   // set IRQ handler high byte
        cli
        lda #$01
        sta $d01a                                   // raster IRQ on
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda #$fb
        sta $d012
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        ldx #$a0

loc_0862:
        lda #$51
        sta $067f,x
        sta $071f,x
        lda #$0b
        sta $da7f,x
        sta $db1f,x
        dex
        bne loc_0862
        lda #$00
        sta $fa
        sta $fc
        lda #$0a
        sta $fb
        rts

// ============================================
// IRQ handler
// ============================================

irq_0880:
        lda $d019
        sta $d019
        lda #$fb
        sta $d012
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        jsr sub_0940
        ldx $fc
        bne loc_08d7
        lda $01
        and #$fb
        sta $01
        ldy #$00

loc_089f:
        lda ($fa),y
        bne loc_08ae
        lda #$00
        sta $fa
        lda #$0a
        sta $fb
        jmp loc_089f

loc_08ae:
        ldx #$3a
        stx $fe
        asl
        rol $fe
        asl
        rol $fe
        asl
        rol $fe
        sta $fd

loc_08bd:
        lda ($fd),y
        sta $03f0,y
        iny
        cpy #$08
        bne loc_08bd
        ldx #$08
        stx $fc
        lda $01
        ora #$04
        sta $01
        inc $fa
        bne loc_08d7
        inc $fb

loc_08d7:
        asl $03f0
        lda #$0b
        bcc loc_08e0
        lda #$01

loc_08e0:
        sta $daa7
        asl $03f1
        lda #$0b
        bcc loc_08ec
        lda #$01

loc_08ec:
        sta $dacf
        asl $03f2
        lda #$0b
        bcc loc_08f8
        lda #$01

loc_08f8:
        sta $daf7
        asl $03f3
        lda #$0b
        bcc loc_0904
        lda #$01

loc_0904:
        sta $db1f
        asl $03f4
        lda #$0b
        bcc loc_0910
        lda #$01

loc_0910:
        sta $db47
        asl $03f5
        lda #$0b
        bcc loc_091c
        lda #$01

loc_091c:
        sta $db6f
        asl $03f6
        lda #$0b
        bcc loc_0928
        lda #$01

loc_0928:
        sta $db97
        asl $03f7
        lda #$0b
        bcc loc_0934
        lda #$01

loc_0934:
        sta $dbbf
        dec $fc
        jmp $ea31

dat_093c:
        .byte $00,$00,$00,$00                       // ....
// Referenced by: jsr from $0890

sub_0940:
        ldx #$00

loc_0942:
        lda $da81,x
        sta $da80,x
        lda $db21,x
        sta $db20,x
        inx
        cpx #$a0
        bne loc_0942
        rts

dat_0954:
        .byte $93                                   // .

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

// --- Region $0801-$080c ---
.pc = $0801 "dat_0801"

dat_0801:
        // === BASIC loader stub ===
        .byte $0b,$08                               // next line pointer ($080b)
        .byte $0a,$00                               // line number 10
        .byte $9e                                   // SYS token
        .text "2061"                                // SYS 2061 → main_080d
        .byte $00                                   // end of line
        .byte $00,$00                               // end of BASIC program

// --- Region $0955-$0bbb ---
.pc = $0955 "Program $0955"
        .byte $9f,$11,$11,$11,$11,$11,$11           // .......

txt_095c:
        .text "   L.F.K. CRACKING SERVICE PRESENTS :"
        .byte $11,$0d                               // ..

txt_0983:
        .text "              DEACTIVATORS"
        .byte $11,$0d                               // ..

txt_099f:
        .text "         P R E S S   S P A C E"
        .byte $00                                   // string terminator
        .byte $00,$00,$a2,$30,$bd,$cf,$09,$9d,$cf,$03,$e8,$d0,$f7,$4c,$d0,$03 // ...0.........L..
        .byte $00,$00,$a2,$00,$bd,$3f,$b0,$9d,$00,$08,$bd,$3f,$b1,$9d,$00,$09 // .....?.....?....
        .byte $bd,$3f,$b2,$9d,$00,$0a,$bd,$2f,$b3,$9d,$00,$0b,$ca,$d0,$e5 // .?...../.......

txt_09ed:
        .text " Y"
        .byte $a6                                   // '&' | $80 (end-of-string marker)
        .byte $4c,$ae,$a7,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 // L...............

txt_0a00:
        .encoding "screencode_mixed"
        .text " l.f.k. cracking service proudly presents : deactivators . cracked"
        .encoding "petscii_upper"

txt_0a42:
        .text " 17 "
        .byte $0f,$03,$14                           // ...

txt_0a49:
        .text " 1986 . "

txt_0a51:
        .encoding "screencode_mixed"
        .text "tape and disk version , like always . if you are using tape , load next part with d000-turbo by p.h.s"
        .encoding "petscii_upper"

txt_0ab6:
        .text ". . "

txt_0aba:
        .encoding "screencode_mixed"
        .text "greetings to lars , dep , hagge , g.c.c"
        .encoding "petscii_upper"

txt_0ae1:
        .text ". , "
        .byte $03,$2e,$03,$2e,$13                   // .....

txt_0aea:
        .text ". , "
        .byte $1a,$01,$03,$0b,$05,$20,$2c,$20,$17,$2e,$01,$2e,$13,$2e,$10 // ..... , .......

txt_0afd:
        .text ". , "

txt_0b01:
        .encoding "screencode_mixed"
        .text "p.h.s. and raoul . if you want to swap programs contact me"
        .encoding "petscii_upper"

txt_0b3b:
        .text " (0457/13043 "
        .byte $13,$17,$05,$04,$05,$0e               // ......

txt_0b4e:
        .text ") . "

txt_0b52:
        .encoding "screencode_mixed"
        .text "bye , bye from l.f.k. cracking service . see you soon"
        .encoding "petscii_upper"

txt_0b87:
        .text " !!!        "

txt_0b93:
        .encoding "screencode_mixed"
        .text "why don't you press 'space"
        .encoding "petscii_upper"

txt_0bad:
        .text "' ???         "
        .byte $00                                   // string terminator
