#268

Federation Against Copyright [FAC] 01

Federation Against Copyright [FAC]

551 lines of code

RasterbarsRSTRMusicSIDSpritesSPRT

History

Released
c. 1985-1988
Group
Federation Against Copyright — Netherlands, founded April 1985

The first numbered intro from the Federation Against Copyright, a Dutch cracking and import group founded on April 20, 1985 by Ace and AVH. CSDb documents FAC with 486 releases and notes the group dissolved in 1988. On intros.c64.org, a user identifying as "acefromfac" confirmed involvement, noting that "intros weren't our strongest, but the warez were" — a candid self-assessment reflecting FAC's priorities. Ace described the effort involved in creating the circles and letters that formed the intro's visual design. The group's full name — Federation Against Copyright — was unusually explicit in its anti-copyright stance, and their numeric identifier "4012" derives from hexadecimal notation ($FAC = 4012). FAC briefly joined Flash Cracking Group in August 1985 before reorganising independently. Other FAC intros in this collection include #203 FAC-03 and #455 FAC-12.

Sources: intros.c64.org · CSDb

fac-01.asm 551 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:20
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $0fff  (2047 bytes)
// Entry point:  $0ed0 (via BASIC SYS 3792)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $0e00 (irq_0e00)
//
// Code: 684 bytes, Data: 1363 bytes
// Labels: 58, Subroutines: 8
//
// Cross-references: all OK
// ============================================


// --- Region $088d-$08a0 ---
.pc = $088d "Program $088d"
        inc.abs $007b,x
        sed
        inc $fc06,x
        dec $c6
        dec $00
        ror $c0fe,x
        .byte $7c,$06,$fe                           // nop $fe06,x // ILLEGAL
        .byte $fc,$00,$f8                           // nop $f800,x // ILLEGAL

// --- Region $0980-$099d ---
.pc = $0980 "sub_0980"
// Referenced by: jsr from $0ef7

sub_0980:
        ldx #$00

loc_0982:
        lda txt_099e,x
        sta $04c8,x
        lda $09bd,x
        sta $07c0,x
        lda #$02
        sta $d8c8,x
        lda #$0e
        sta $dbc0,x
        inx
        cpx #$28
        bne loc_0982
        rts

// --- Region $0c40-$0c9d ---
.pc = $0c40 "sub_0c40"

// Referenced by: jsr from $0c90
sub_0c40: {
        nop
        nop
        nop
        lda #$00
        sta $d020
        sta $d021
        lda #$08
        jsr $ffd2
        ldx #$00
loop:
        lda txt_0ca0,x
        sta $07f8,x
        lda $0ca8,x
        sta $d000,x
        lda $0cb0,x
        sta $d027,x
        nop
        nop
        inx
        cpx #$08
        bne loop
        ldx #$ff
        stx $d015
        ldx #$0e
        stx $d01d
        rts
}

// Referenced by: jsr from $0c93
sub_0c76: {
        ldx #$00
loop:
        lda dat_0eb2,x
        sta $0800,x
        inx
        cpx #$10
        bne loop
        rts
}
// Referenced by: jsr from $0c96

sub_0c84:
        lda $d018
        and #$f0
        clc
        ora #$02
        sta $d018
        rts

loc_0c90:
        jsr sub_0c40
        jsr sub_0c76
        jsr sub_0c84
        jmp loc_0cc0

dat_0c9c:
        .byte $07,$60                               // .`

// --- Region $0cc0-$0eb1 ---
.pc = $0cc0 "loc_0cc0"

loc_0cc0:
        lda #$10
        sta $d010
        lda #$20
        sta $d008
        lda #$80
        sta $d009
        lda #$ff
        sta $d015
        lda #$01
        sta $d02c

loc_0cd9:
        ldy #$00

smc_0cdb:
        inc $07f8                                   // !SMC: modified by $0cf2, $0d05, $0ee9

smc_0cde:
        inc $07fc                                   // !SMC: modified by $0cf5, $0d08, $0eec
        jsr sub_0e58
        iny
        cpy #$05
        bne smc_0cdb
        lda smc_0cde
        cmp #$ee
        beq loc_0d03
        lda #$ee
        sta smc_0cdb                                // SMC: modifies $0cdb
        sta smc_0cde                                // SMC: modifies $0cde
        lda #$01
        sta $d027
        sta $d02b