#93

Electronic Generation, The [ECG] 01

Electronic Generation, The [ECG]

4.900 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRTBitmapBMAP

History

Released
October 1989
Code
Heine
Music
Drax (Thomas Mogensen) — "Over Heated"
Charset
Kevin Bulmer
Group
The Electronic Generation — Germany, founded 15 February 1987

Drax (Thomas Mogensen) supplied "Over Heated" — one of his many compositions distributed across the European cracking scene during 1989. Heine coded the intro while Kevin Bulmer contributed the charset — the same Bulmer whose lettering work appears in multiple Dominators intros. The Electronic Generation was a German group founded on 15 February 1987, making them well-established by the time this October 1989 release appeared. The HVSC preserves Mogensen's composition. The connection between a German group and a Danish musician working through a Danish charset artist (Bulmer was based in Denmark) illustrates the tight Scandinavian-German axis that characterized Northern European cracking. ECG's early 1987 founding places them among the first wave of serious German operations.

Sources: CSDb

ecg-01.asm 4.900 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:18
// 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:  $2000 (8192)
// IRQ handler:  $22a0 (irq_22a0)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 4217 bytes, Data: 59271 bytes
// Labels: 439, Subroutines: 19
//
// Cross-references: all OK
// ============================================


// --- Region $0c20-$0c85 ---
.pc = $0c20 "sub_0c20"
// Referenced by: jsr from $0cb2, $23a8, $ed96

sub_0c20:
        dec $48
        lda $48
        cmp #$bf
        beq loc_0c29
        rts

loc_0c29:
        lda #$c7
        sta $48
        ldx #$00

loc_0c2f:
        lda $0749,x
        sta $0748,x
        lda $0771,x
        sta $0770,x
        inx
        cpx #$27
        bne loc_0c2f
        lda $49
        cmp #$00
        bne loc_0c54
        inc $49
        lda $4a
        sta $076f
        clc
        adc #$80
        sta $0797
        rts

loc_0c54:
        lda #$00
        sta $49
        lda $4a
        clc
        adc #$40
        sta $076f
        clc
        adc #$80
        sta $0797
        inc $4b
        ldx $4b
        cpx #$00
        bne loc_0c71
        inc smc_0c73

loc_0c71:
.label smc_0c73 = * + 2
        lda $3800,x                                 // !SMC: modified by $0c81
        cmp #$00
        beq loc_0c7b
        sta $4a
        rts

loc_0c7b:
        lda #$00
        sta $4b
        lda #$38
        sta smc_0c73                                // SMC: modifies $0c73
        rts

chr_0c85:
        // === Charset data (1 bytes, $0c85-$0c85) ===
        .byte $00                                   // char 0 (partial)

// --- Region $0ca0-$0cbf ---
.pc = $0ca0 "sub_0ca0"
// Referenced by: jsr from $2346, $ed51

sub_0ca0:
        jsr sub_0d40
        jsr sub_1006
        jsr sub_2380

smc_0ca9:
.label smc_0caa = * + 1
.label smc_0cab = * + 2
        jsr sub_1878                                // !SMC: modified by $1884, $1889, $188c
        jsr sub_2260
        jsr sub_0d00
        jsr sub_0c20
        bit $eaea
        bit $eae2
        jmp loc_0cd0

chr_0cbe:
        // === Charset data (2 bytes, $0cbe-$0cbf) ===
        .byte $00,$00                               // char 0 (partial)

// --- Region $0cd0-$0d2c ---
.pc = $0cd0 "loc_0cd0"

loc_0cd0:
.label smc_0cd1 = * + 1
        ldx #$11                                    // !SMC: modified by $0cd9
        inx
        cpx #$20
        bne loc_0cd9

chr_0cd7:
        // === Charset data (2 bytes, $0cd7-$0cd8) ===
        .byte $a2,$00                               // char 0 (partial)

loc_0cd9:
        stx smc_0cd1                                // SMC: modifies $0cd1
        lda $23c0,x
        sta $db6f
        sta $db97
        ldx #$00

loc_0ce7:
        lda $db49,x
        sta $db48,x
        lda $db71,x
        sta $db70,x
        inx
        cpx #$27
        bne loc_0ce7
        rts

chr_0cf9:
        // === Charset data (7 bytes, $0cf9-$0cff) ===
        .byte $00,$00,$00,$00,$00,$00,$00           // char 0 (partial)
// Referenced by: jsr from $0caf