#81

Why? 01

Why?

4.811 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRTBitmapBMAP

History

Released
3 July 1988
Code
The Butcher
Music
Charles Deenen — "Crap"
Graphics
Gaxx
Group
Why? — United States, founded 1988

Charles Deenen titled his contribution "Crap" — either self-deprecating humour or a commentary on the disposable nature of crack intro music. The Butcher coded the intro while Gaxx provided graphics. Why? was an American group founded in 1988, part of the final generation of US C64 cracking operations. Deenen's involvement connects this American group to the Dutch musician network — the same Charles Deenen whose "Smooth Criminal" appears in #10 Hotline and who would later work at Interplay. Released on 3 July 1988, this represents American cracking in its declining months. The HVSC preserves Deenen's composition under its unflattering original title. The group name "Why?" captures something of the existential quality of late-era American cracking — by mid-1988, the question of why US groups should continue competing with European dominance was becoming difficult to answer.

Sources: CSDb

why-01.asm 4.811 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:40
// 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:  $1f00 (7936)
// IRQ handler:  $2379 (irq_2379)
// IRQ handler:  $2551 (irq_2551)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $2531 (irq_2531)
//
// Code: 5567 bytes, Data: 57921 bytes
// Labels: 544, Subroutines: 15
//
// Verification: 6 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $0892-$0896 ---
.pc = $0892 "loc_0892"

loc_0892:
        bcc loc_08f4
        bcc loc_08f6
        rts

// --- Region $08f4-$0900 ---
.pc = $08f4 "loc_08f4"

loc_08f4:
        tax
.label loc_08f6 = * + 1
        .byte $80,$80                               // nop #$80 // ILLEGAL
        eor $fd,x
        .byte $1f,$05,$0c                           // slo $0c05,x // ILLEGAL
        .byte $0c,$0c,$36                           // nop $360c // ILLEGAL
        clc
        brk

// --- Region $1079-$1633 ---
.pc = $1079 "sub_1079"
// Referenced by: jsr from $23ca, $2694, $f683, $f94d

sub_1079:
        lda $1b19
        cmp #$02
        beq loc_1087
        cmp #$01
        bne loc_1088
        jmp loc_1a71

loc_1087:
        rts

loc_1088:
        inc $1ae7
        inc $1ae8
        inc $1ae9
        lda #$1f
        sta $d418
        ldx #$02
        dec $1b18
        bpl loc_10a3
        lda $1ac2
        sta $1b18

loc_10a3:
        nop
        nop
        nop
        stx $ff
        lda $1ac3,x
        sta $1afb
        tay
        lda $1b18
        cmp $1ac2
        bne loc_10c9
        lda $1822,x
        sta $fb
        lda $1825,x
        sta $fc
        dec $1acc,x
        bmi loc_10cc
        jmp loc_11fa

loc_10c9:
        jmp loc_120a

loc_10cc:
        ldy dat_1ac6,x
        lda ($fb),y
        cmp #$fe
        beq loc_10ea
        cmp #$ff
        bne loc_10f2
        lda #$00
        sta $1acc,x
        sta dat_1ac6,x
        sta $1ac9,x
        sta dat_1b17
        jmp loc_10cc

loc_10ea:
        lda #$02
        sta $1b19
        jmp loc_1ab0

loc_10f2:
        sta $1b0c
        and #$80
        beq loc_1107
        lda $1b0c
        and #$1f
        sta $1af4,x
        inc dat_1ac6,x
        jmp loc_10cc

loc_1107:
        lda $1b0c
        and #$40
        beq loc_111c
        lda $1b0c
        and #$3f
        sta $1b1b,x
        inc dat_1ac6,x
        jmp loc_10cc

loc_111c:
        lda $1b0c
        asl
        tay
        lda $1828,y
        sta $fd
        lda $1829,y
        sta $fe
        lda #$00
        sta $1ae4,x
        ldy $1ac9,x
        sta $1ae7,x
        lda #$03
        sta $1b06,x
        lda ($fd),y
        sta $1acf,x