#99

Fantasy Cracking Service [FCS] 03

Fantasy Cracking Service [FCS]

1.802 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLBitmapBMAP

History

Released
22 September 1987
Code
Mr. Cursor
Music
Paul Clansey — "Alien" (ripped)
Group
Fantasy Cracking Service — Germany, founded 1986

Mr. Cursor — the prolific charset artist whose lettering appears in dozens of top-ranked intros — here takes on the coder role. Paul Clansey's "Alien" provides the ripped music, preserved in the HVSC. Fantasy Cracking Service was a German group founded in 1986. Released on 22 September 1987, this came during the autumn when German cracking was at its most competitive. Mr. Cursor's dual capabilities — coding and charset art — made him one of the most versatile contributors in the German scene. His charset work appears across Zenith, Shining 8, Genesis Project, and other groups, but here he demonstrates he could handle the full technical challenge of an intro as well. Doc Snyder's page documents FCS's output. The group name references the fantasy genre — common for mid-1980s cracking groups adopting dramatic identities.

Sources: CSDb · docsnyderspage

fcs-03.asm 1.802 lines
// ============================================
// output - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:21
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $2fff  (10240 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1000 (4096)
// IRQ handler:  $10c3 (irq_10c3)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 1449 bytes, Data: 8791 bytes
// Labels: 205, Subroutines: 7
//
// Cross-references: all OK
// ============================================


// --- Region $0b1a-$0b1a ---
.pc = $0b1a "Program $0b1a"
        brk

// --- Region $0b8d-$0b8d ---
.pc = $0b8d "Program $0b8d"
        brk

// --- Region $1000-$1078 ---
.pc = $1000 "main_1000"

main_1000:
        lda #$93
        jsr $ffd2
        sei
        ldx #$01
        stx $d01a
        ldy #$32
        sty $d012
        lda #$7f
        sta $dc0d
        lda #$c3
        sta $0314
        lda #$10
        sta $0315
        jsr sub_1150
        cli

loc_1023:
        lda $dc01
        cmp #$ef
        bne loc_1023
        sei
        lda #$31
        sta $0314
        lda #$ea
        sta $0315
        lda #$f0
        sta $d01a
        cli
        jsr $ff84
        jsr $fda3
        jsr $ff5b
        lda #$00
        sta $d020
        lda #$00
        sta $d021
        lda #$1b
        sta $d011
        lda #$15
        sta $d018
        lda #$c8
        sta $d016
        lda #$62
        sta $2d
        lda #$c6
        sta $2e
        nop
        nop
        nop
        ldy #$00

loc_106a:
        lda dat_1078,y
        sta $0340,y
        iny
        cpy #$c0
        bne loc_106a
        jmp $0340

dat_1078:
        .byte $78                                   // x

// --- Region $10c3-$112d ---
.pc = $10c3 "irq_10c3"

irq_10c3:
        ldy #$19
        sty $d018
        iny
        iny
        sty $d011
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        ldy #$00

loc_10d8:
        ldx #$f8
        lda $0100,y

loc_10dd:
        sta $d260
        sta $d1a1
        iny
        inx
        beq loc_10d8
        lda $0f00,y
        sta $d162
        lda dat_0d00,y
        sta $d058
        lda dat_0e00,y
        sta $d296
        lda dat_0c00,y
        sta $d3a3
        lda $0100,y
        cpy #$a7
        bcs $110b
        bit $02
        clc
        bcc loc_10dd
        lda #$01
        sta $d019
        jsr sub_1500
.label smc_1114 = * + 1
.label smc_1115 = * + 2
        jsr sub_132e                                // !SMC: modified by $121e, $1223, $13cb, $13d0, $13ef, $13f4
        jsr sub_1396
        ldy #$13

loc_111b:
        lda $0e8e,y
        ora #$10