#52

Abyss 02

Abyss

3.172 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
9 April 1988
Code
The Last Dragon
Music
Red (Jeroen Kimmel) — "Red Hubbard"
Group
Abyss — United States, founded 1987

The tune's title says it all — "Red Hubbard" is Jeroen Kimmel's tribute to the legendary Rob Hubbard, the most famous SID composer on the C64. Red (Kimmel) was a Dutch musician who contributed original compositions to multiple groups internationally. The Last Dragon coded the intro — the same coder who would later work for #66 Empire. Abyss was an American group founded in 1987, one of several US operations that maintained European musical connections despite the geographic distance. Released on 9 April 1988, this arrived during the final months when American groups could still compete with their European rivals. The HVSC preserves Kimmel's composition. The cross-Atlantic collaboration between an American group and a Dutch musician demonstrates that even in the pre-internet era, the C64 scene operated as a truly global network.

Sources: CSDb · docsnyderspage

abyss-02.asm 3.172 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:15
// 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:  $30f0 (12528)
// IRQ handler:  $2a1c (irq_2a1c)
// IRQ handler:  $ea31 (loc_ea31)
// IRQ handler:  $4a01 (irq_4a01)
//
// Code: 3872 bytes, Data: 59616 bytes
// Labels: 331, Subroutines: 7
//
// Cross-references: all OK
// ============================================


// --- Region $0810-$0c1f ---
.pc = $0810 "sub_0810"
// Referenced by: jsr from $3186, $f37e, $ff84

sub_0810:
        jmp loc_10a9

loc_0813:
        jmp loc_10c2

dat_0816:
        .byte $4c,$c6,$0b,$4c,$c8,$10               // L..L..
// Referenced by: jsr from $2bbd, $fbfb

sub_081c:
        inc $0d19
        bit $0d0d
        bmi loc_0842
        bvc loc_0857
        lda #$00
        sta $0d19
        ldx #$02

loc_082d:
        sta $0ce3,x
        sta $0ce6,x
        sta $0ce9,x
        sta $0cf2,x
        dex
        bpl loc_082d
        sta $0d0d
        jmp loc_0857

loc_0842:
        bvc loc_0854
        lda #$00
        sta $d404
        sta $d40b
        sta $d412
        lda #$80
        sta $0d0d

loc_0854:
        jmp loc_0ba1

loc_0857:
        ldx #$02
        dec $0d0a
        bpl loc_0864
        lda $0d0b
        sta $0d0a

loc_0864:
        lda $0cdf,x
        sta $0ce2
        tay
        lda $0d0a
        cmp $0d0b
        bne loc_0888
        lda $0f3c,x
        sta $6b
        lda $0f3f,x
        sta $6c
        dec $0ce9,x
        bmi loc_088b
        jmp loc_0976

dat_0885:
        .byte $4c,$90,$0b                           // L..

loc_0888:
        jmp loc_099d

loc_088b:
        ldy $0ce3,x
        lda ($6b),y
        cmp #$fe
        bne loc_0897
        jmp loc_0813

loc_0897:
        cmp #$ff
        bne loc_08ac
        lda #$00
        sta $0ce9,x
        sta $0ce3,x
        sta $0ce6,x
        jmp loc_088b

dat_08a9:
        .byte $4c,$90,$0b                           // L..

loc_08ac:
        tay
        lda $0f42,y
        sta $6d
        lda $0f52,y
        sta $6e
        lda #$00
        sta $0d14,x
        ldy $0ce6,x
        lda #$ff
        sta $0cf8
        lda ($6d),y
        sta $0cec,x
        sta $0cf9
        and #$1f
        sta $0ce9,x
        bit $0cf9
        bvs loc_091a
        inc $0ce6,x
        lda $0cf9
        bpl loc_08ef
        iny
        lda ($6d),y
        bpl loc_08e9
        sta $0d14,x
        jmp loc_08ec

loc_08e9:
        sta $0cf5,x

loc_08ec:
        inc $0ce6,x

loc_08ef:
        iny
        lda ($6d),y