#304

Doughnut Cracking Service [DCS] 19

Doughnut Cracking Service [DCS]

1.536 lines of code

RasterbarsRSTRScrollerSCRL

History

Released
January 1990
Code
Jog
Charset
Orc
Group
Doughnut Cracking Service — United Kingdom, founded January 1984

A late-period intro from Doughnut Cracking Service — one of the oldest British cracking groups, founded in January 1984. Jog coded the intro while Orc contributed the charset. No music credit is recorded, and no SID files are associated with this release on CSDb, suggesting a silent or minimal-audio production. By January 1990, DCS had been active for six years — an extraordinary run on the C64. This contrasts with the group's earlier, more elaborate intros such as #46 DCS-06 and #48 DCS-08, which featured seven-SID jukeboxes coded by Crime with music from Jeroen Tel and Laxity. The stripped-back nature of DCS-19 — only two credited contributors and no listed musician — suggests a changing of the guard within the group as original members moved on. Doc Snyder's page documents DCS's extensive multi-year output.

Sources: CSDb · docsnyderspage

dcs-19.asm 1.536 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:19
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $37ff  (12288 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1cb0 (7344)
// IRQ handler:  $10ff (nmi_10ff)
// IRQ handler:  $0a00 (irq_0a00)
// IRQ handler:  $ff48 (irq_ff48)
// IRQ handler:  $fe43 (nmi_fe43)
//
// Code: 995 bytes, Data: 11293 bytes
// Labels: 171, Subroutines: 7
//
// Cross-references: all OK
// ============================================


// --- Region $0a00-$0a93 ---
.pc = $0a00 "irq_0a00"

irq_0a00:
        inc $d019
        lda #$c9
        sta $d012
        lda #$19
        sta $d018
        lda $42
        sta $d016
        ldx #$05

loc_0a14:
        dex
        bne loc_0a14
        ldx #$ff
        nop
        nop

loc_0a1b:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        ldy $1800,x
        nop
        sty $d021
        ldy $1a01,x
        sty $d022
        ldy $1901,x
        sty $d023
        ldy $1801,x
        sty $d021
        bit $1989
        inx
        inx
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        cpx #$2d
        bne loc_0a1b
        ldy #$04

loc_0a55:
        dey
        bne loc_0a55
        lda #$00
        sta $d021
        ldy #$30

loc_0a5f:
        dey
        bne loc_0a5f
        lda #$1c
        sta $d018
        lda #$c8
        sta $d016
        dec $0a18
        dec $0a50
        lda #$80

loc_0a74:
        cmp $d012
        bne loc_0a74
        lda $4f
        sta $d016
        lda #$98

loc_0a80:
        cmp $d012
        bne loc_0a80
        lda #$c8
        sta $d016
        jsr sub_0e00
        lda #$0b
        sta $ffff
        rti

dat_0a93:
        // === Fill data (1 bytes, $0a93-$0a93) ===
        .byte $00                                   // .

// --- Region $0e00-$0e3d ---
.pc = $0e00 "sub_0e00"
// Referenced by: jsr from $0a8a

sub_0e00:
        lda $4f
        sec
        sbc $4e
        sta $4f
        bmi loc_0e0a
        rts

loc_0e0a:
        lda $4f
        clc
        adc #$08
        sta $4f
        lda $50
        cmp #$02
        bne loc_0e1a
        jsr sub_0e60

loc_0e1a:
        ldx #$00

loc_0e1c:
        lda $0591,x
        sta $0590,x
        lda $05b9,x