#444

Binary Code Smashers [BCS] 02

Binary Code Smashers [BCS]

2.460 lines of code

RasterbarsRSTRSpritesSPRTBitmapBMAP

History

Released
April 1987
Graphics
STE'86
Group
Binary Code Smashers — United Kingdom, founded 1986

The second catalogued intro from Binary Code Smashers — a British cracking group founded in 1986. CSDb lists this as the "BCS 1987 Intro," released in April 1987. The only credited contributor is STE'86, who handled graphics. No code or music credits have been identified, which was not unusual for early British intros where a single member often handled all tasks without formal credit separation. BCS was part of the UK's cracking scene during its most active period — 1986 to 1988 — when British groups competed with larger Scandinavian and German operations for release priority. The group's abbreviated tag "BCS" was derived from Binary Code Smashers, a name that followed the era's convention of aggressive, destructive terminology. No Doc Snyder's page entry exists for BCS, and the group left no traces in scene magazine archives or Demozoo. The intro's preservation on both intros.c64.org and CSDb ensures its continued accessibility.

Sources: CSDb

b_c_s-02.asm 2.460 lines
// ============================================
// b_c_s-02 - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:08
// 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:  $0900 (2304)
// IRQ handler:  $0b21 (irq_0b21)
//
// Code: 1189 bytes, Data: 62299 bytes
// Labels: 288, Subroutines: 2
//
// Cross-references: all OK
// ============================================


// --- Region $0900-$091d ---
.pc = $0900 "main_0900"

main_0900:
        jsr $ff81

loc_0903:
        ldx #$00

loc_0905:
        lda dat_4000,x
        sta $033b,x
        inx
        bne loc_0905
        inc $0907
        inc $090a
        lda $0907
        cmp #$45
        bne loc_0903
        jmp loc_0a00

// --- Region $0a00-$0a45 ---
.pc = $0a00 "loc_0a00"

loc_0a00:
        lda #$ff
        sta $d015
        sta $d01d
        sta $d017
        lda #$00
        sta $d01c
        sta $d020
        sta $d021
        tax

loc_0a17:
        lda $0a50,x
        sta $d000,x
        inx
        cpx #$11
        bne loc_0a17
        ldx #$00

loc_0a24:
        lda tbl_0a60,x
        sta $d027,x
        inx
        cpx #$09
        bne loc_0a24
        lda #$c1
        sta $d010
        lda #$19
        sta $d018                                   // screen=$0400, charset=$2000
        lda #$d8
        sta $d016                                   // multicolor, 40 cols, X-scroll=0
        lda #$3b
        sta $d011                                   // bitmap mode, screen on, 25 rows, Y-scroll=3
        jmp loc_0a70

// --- Region $0a70-$0a90 ---
.pc = $0a70 "loc_0a70"

loc_0a70:
        ldx #$00

loc_0a72:
        lda dat_1c00,x
        sta $d800,x
        lda $1d00,x
        sta $d900,x
        lda $1e00,x
        sta $da00,x
        lda $1f00,x
        sta $db00,x
        dex
        bne loc_0a72
        jmp loc_0b00

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

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

loc_0b00:
        sei
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda #$01
        sta $d019                                   // raster // acknowledge raster IRQ
        sta $d01a                                   // raster IRQ on
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$0b
        sta $0315                                   // set IRQ handler high byte
        lda #$21
        sta $0314                                   // set IRQ handler low byte
        cli

loc_0b1e:
        jmp loc_0b1e

// ============================================
// IRQ handler
// ============================================

irq_0b21:
        lda #$01
        sta $d019                                   // raster // acknowledge raster IRQ
        inc $02
        lda $02
        cmp #$01
        beq loc_0bad
        cmp #$02
        beq loc_0b40
        cmp #$03
        beq loc_0b50
        lda #$00
        sta $02
        jmp loc_0b65

dat_0b3d:
        .byte $00,$00,$00                           // ...

loc_0b40:
        lda #$f5
        sta $d012
        lda #$f0
        sta $d021