#806

Freestyle 04

Freestyle

1.599 lines of code

RasterbarsRSTRScrollerSCRLSpritesSPRT

History

Released
1988
Group
Freestyle — Germany

This is the fourth catalogued intro from Freestyle, a German cracking group operating under the abbreviation FSI. Released in 1988, the intro carries no individual credits on CSDb — neither coder, musician, nor graphician is identified. Freestyle's founding date is unrecorded, though their German origins place them within one of the C64 scene's most densely populated national communities. An interview with a Freestyle member is preserved in the Atlantis Recollection archive, providing one of the few documented sources on the group's history. The absence of credited personnel may reflect incomplete CSDb data rather than a genuinely anonymous production, as most intros of this era were the work of identifiable sceners. Freestyle's four preserved intros on intros.c64.org suggest a group with at least moderate output during the late 1980s European cracking wave.

Sources: CSDb · Atlantis

freestyle-04.asm 1.599 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:43
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $2800  (8193 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1800 (6144)
// IRQ handler:  $1300 (irq_1300)
//
// Code: 1250 bytes, Data: 6943 bytes
// Labels: 216, Subroutines: 11
//
// Cross-references: all OK
// ============================================


// --- Region $0900-$091e ---
.pc = $0900 "loc_0900"

loc_0900:
.label smc_0901 = * + 1
        lda #$01                                    // !SMC: modified by $1842
        lda smc_0901
        cmp #$01
        beq loc_092c
.label smc_090a = * + 1
        ldx #$00                                    // !SMC: modified by $18a5
        lda txt_0d00,x
        sta $d001
        sta $d003
        sta $d005
        inc smc_090a
        inx
        cpx #$28
        bne loc_0929

// --- Region $0929-$0941 ---
.pc = $0929 "loc_0929"

loc_0929:
        jmp loc_0c00

loc_092c:
.label smc_092d = * + 1
        ldx #$12                                    // !SMC: modified by $18a8
        lda $0d28,x
        sta $d007
        sta $d009
        sta $d00b
        inc smc_092d
        inx
        cpx #$28
        bne loc_094c

// --- Region $094c-$094f ---
.pc = $094c "loc_094c"

loc_094c:
        jmp loc_0b00

dat_094f:
        // === Fill data (1 bytes, $094f-$094f) ===
        .byte $00                                   // .

// --- Region $0b00-$0b4b ---
.pc = $0b00 "loc_0b00"

loc_0b00:
.label smc_0b01 = * + 1
        lda #$00                                    // !SMC: modified by $0bb2, $0bd0, $1845
        lda smc_0b01
        cmp #$01
        beq loc_0b5b
        lda $d006
        clc
        adc $41
        sta $d006
        bcc loc_0b1e
        bcs loc_0b16

loc_0b16:
        lda $d010
        eor #$08
        sta $d010

loc_0b1e:
        lda $d008
        clc
        adc $41
        sta $d008
        bcc loc_0b33
        bcs loc_0b2b

loc_0b2b:
        lda $d010
        eor #$10
        sta $d010

loc_0b33:
        lda $d00a
        clc
        adc $41
        sta $d00a
        bcc loc_0b48
        bcs loc_0b40

loc_0b40:
        lda $d010
        eor #$20
        sta $d010

loc_0b48:
        jmp loc_0bb8

dat_0b4b:
        .byte $18                                   // .

// --- Region $0b5b-$0bd3 ---
.pc = $0b5b "loc_0b5b"

loc_0b5b:
        lda $d006
        sec
        sbc $41
        sta $d006
        bcs loc_0b70
        bcc loc_0b68

loc_0b68:
        lda $d010
        eor #$08
        sta $d010

loc_0b70:
        lda $d008
        sec
        sbc $41
        sta $d008
        bcs loc_0b85
        bcc loc_0b7d

loc_0b7d:
        lda $d010
        eor #$10
        sta $d010