#836

Crash (DE) 01

Crash (DE)

2.191 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
c. 1989–1991
Group
Crash — Germany

This intro comes from a German group called Crash — distinguished on intros.c64.org with the "(DE)" suffix to separate it from Austrian, Polish, and other groups sharing the same name. CSDb lists multiple German groups named Crash, with group 6542 being a cracking outfit based in Ibbenbueren whose members included Alf (coder/cracker) and Mic. The group released only a handful of titles, making them a minor presence in the German scene. Intros.c64.org comments clarify the provenance — one contributor explicitly notes "this is from another (German) Crash" to distinguish it from the Austrian Crash founded in 1991. A reference to Turrican II in the comments suggests the intro may date to around 1991, when that game was published. No individual credits for code or music have been identified. The name "Crash" was among the most commonly recycled group names in the C64 scene, with CSDb listing at least four separate German groups alone under that title — a naming collision that complicates historical attribution.

Sources: CSDb Group · intros.c64.org

crash_de-01.asm 2.191 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:14
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $32ff  (11008 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0a7a (2682)
// IRQ handler:  $0926 (irq_0926)
//
// Code: 2268 bytes, Data: 8740 bytes
// Labels: 236, Subroutines: 21
//
// Cross-references: all OK
// ============================================


// --- Region $0900-$09b3 ---
.pc = $0900 "sub_0900"
// Referenced by: jsr from $0a95

sub_0900:
        sei
        lda #$01
        sta $d01a
        lda #$32
        sta $d012
        lda #$1b
        sta $d011
        lda #$7f
        sta $dc0d
        lda #$26
        sta $0314
        lda #$09
        sta $0315
        lda #$00
        jsr sub_1003
        cli
        rts

irq_0926:
        lda #$01
        sta $d019
        lda #$1b
        sta $d018
.label smc_0931 = * + 1
        lda #$12                                    // !SMC: modified by $1f07
        sta $d016
        ldx #$00

loc_0937:
        ldy dat_0f00,x

loc_093a:
        dey
        bne loc_093a
        lda tbl_0f50,x
        sta $d020
        sta $d021
        inx
        cpx #$4e
        bne loc_0937
        lda #$19
        sta $d018
        lda #$c0
        sta $d016
        ldx #$00

loc_0957:
        ldy $0e00,x

loc_095a:
        dey
        bne loc_095a
        lda $0e50,x
        sta $d020
        sta $d021
        inx
        cpx #$4e
        bne loc_0957
.label smc_096c = * + 1
        lda #$c5                                    // !SMC: modified by $0a31
        sta $d016
        ldx #$00

loc_0972:
        ldy dat_0dd0,x

loc_0975:
        dey
        bne loc_0975
        lda $0de0,x
        sta $d020
        sta $d021
        inx
        cpx #$10
        bne loc_0972
        lda #$c0
        sta $d016
        lda #$1b
        sta $d018
        jsr sub_0a00
        jsr sub_0a24
        jsr sub_09a6
        jsr sub_1000
        jsr sub_1f00
        jsr sub_1f8a
        jmp $ea31

chr_09a5:
        // === Charset data (1 bytes, $09a5-$09a5) ===
        .byte $00                                   // char 0 (partial)
// Referenced by: jsr from $0996

sub_09a6:
        jsr $ea87
        jsr $ffe4
        cmp #$00
        beq loc_09b3
        jmp loc_0b42

loc_09b3:
        rts

// --- Region $0a00-$0a68 ---
.pc = $0a00 "sub_0a00"
// Referenced by: jsr from $0990

sub_0a00:
.label smc_0a01 = * + 1
        ldx #$3a                                    // !SMC: modified by $0a0c
        lda dat_0c00,x
        inx
        cpx #$90
        bne loc_0a0c

chr_0a0a:
        // === Charset data (2 bytes, $0a0a-$0a0b) ===
        .byte $a2,$00                               // char 0 (partial)

loc_0a0c:
        stx smc_0a01                                // SMC: modifies $0a01
        sta smc_0a13                                // SMC: modifies $0a13
.label smc_0a13 = * + 1
        ldx #$07                                    // !SMC: modified by $0a0f

loc_0a14: