LFK Cracking Service 01

LFK Cracking Service

322 lines of code

CharsetCHAR

History

Released
August 1986
Code
L.F.K. (later Junior, then Gollum)
Music
None
Graphics
L.F.K.
Group
L.F.K. Cracking Service — Sweden, solo operation, 1986

One of the earliest solo-act crack intros from Sweden, crafted by a scener who operated under his own initials as a one-man cracking service. The intro is built around a custom-designed character set that gives the scrolltext its distinctive hand-crafted look — a technique common in 1986 when individual crackers coded their own intros from scratch before scene groups dominated the landscape. L.F.K. was active for barely six months under this handle before transitioning to Junior and later to Gollum, yet managed to crack and intro dozens of commercial titles during that window.

Sources: CSDb · CSDb scener

lfk-01.asm 322 lines
// ============================================
// 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