#708

Knacki Software Crew [KNS] 01

Knacki Software Crew [KNS]

2.176 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
c. 1983-2008
Group
Knacki Software (KNS) — Germany, founded 1983

This crack intro was produced by Knacki Software, a German cracking group founded in 1983 by ALX — making it one of the earliest formations on the Commodore 64 scene. Also known as Knacki Software Crew, Mr. Knacki, and Knacki Soft Inc., the group operated under the abbreviation KNS. CSDb documents five members — ALX (swapper), Klaus (coder, cracker, musician), Mega, Mr.A (cracker, swapper), and SC-Soft (cracker). The group's output was substantial, with 84 releases catalogued on CSDb spanning from 1983 through 2008 — a remarkable 25-year timeline for a cracking outfit. The specific credits for code and music in this intro remain unidentified, and no additional documentation has surfaced on Doc Snyder's page, Demozoo, or other scene archives. Klaus's combined role as coder, cracker, and musician suggests he may have been responsible for both the technical and audio aspects of the group's intros.

Sources: CSDb · intros.c64.org

kns-01.asm 2.176 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:52
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $ffff  (63488 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $0b00 (2816)
// IRQ handler:  $0c00 (irq_0c00)
//
// Code: 1853 bytes, Data: 61635 bytes
// Labels: 247, Subroutines: 31
//
// Cross-references: all OK
// ============================================


// --- Region $0a88-$0ab0 ---
.pc = $0a88 "sub_0a88"
// Referenced by: jsr from $f905

sub_0a88:
        lda $0ac0
        pha
        ldx #$00

loc_0a8e:
        lda $0ac1,x
        sta $0ac0,x
        inx
        cpx #$1f
        bne loc_0a8e
        pla
        sta $0adf
        lda $0aff
        pha
        ldx #$1e

loc_0aa3:
        lda $0ae0,x
        sta $0ae1,x
        dex
        bpl loc_0aa3
        pla
        sta $0ae0
        rts

// --- Region $0b00-$0bac ---
.pc = $0b00 "main_0b00"

main_0b00:
        sei
        lda #$7f
        sta $dc0d
        lda #$f1
        sta $d01a
        lda #$00
        sta $d020
        sta $d021
        sta $d012
        ldx #$00

loc_0b18:
        lda txt_0e00,x
        sta $0400,x
.label sub_0b20 = * + 2
        lda $0f00,x
        sta $0500,x
        lda $1000,x
        sta $0600,x
        lda #$20
        sta $0700,x
        lda #$00
        sta txt_0e00,x
        sta $0f00,x
        lda #$09
        sta $d800,x
        sta $d840,x
        lda #$01
        sta $d940,x
        sta $da40,x
        inx
        bne loc_0b18
        ldx #$00

loc_0b4c:
        lda $0a48,x
        sta $d000,x
        inx
        cpx #$10
        bne loc_0b4c
        lda #$e0
        sta $d010
        lda #$7f
        sta $d015
        sta $d017
        sta $d01c
        sta $d01d
        ldx #$38
        stx $07f8
        inx
        stx $07f9
        inx
        stx $07fa
        inx
        stx $07fb
        inx
        stx $07fc
        inx
        stx $07fd
        inx
        stx $07fe
        lda #$00
        sta $0314
        lda #$0c
        sta $0315
        jsr sub_1547
        ldx #$00
        lda #$3a

loc_0b98:
        sta $0340,x
        clc
        adc #$02
        inx
        cpx #$20
        bne loc_0b98
        lda #$12
        sta $d018
        cli

loc_0ba9:
        jmp loc_0ba9

spr_0bac:
        // === Sprite data (1 bytes, $0bac-$0bac) ===
        .byte $a2

// --- Region $0c00-$0c40 ---
.pc = $0c00 "irq_0c00"

irq_0c00:
.label sub_0c01 = * + 1
        lda #$d8
        sta $d016
        ldx #$00