#441

Triad 14

Triad

2.846 lines of code

RasterbarsRSTRMusicSID

History

Released
24 December 1996
Code
Quorthon, Tao
Music
Twoflower (Mikael Backlund) — "Rudolph"
Group
Triad — Sweden, founded 28 July 1986

A Christmas-themed intro from Triad, released on 24 December 1996 — a decade after the Swedish group's founding. Two coders collaborated on this production: Quorthon and Tao, the latter of whom appears across multiple Triad intros documented on Doc Snyder's page including the "Disco Intro" and "Front Intro." Twoflower composed an original SID tune titled "Rudolph," preserved in the HVSC under his real name Mikael Backlund. Seasonal intros were a tradition in the C64 scene — groups used holiday releases to demonstrate continued activity and goodwill toward allies. By late 1996, the C64 cracking scene had contracted sharply from its late-1980s peak, making this Christmas intro a nostalgic gesture from a group that refused to fade. Triad — abbreviated "3AD" — had been active for over ten years at this point, a longevity matched by few peers. Their debut intro appears as #12 Triad-01.

Sources: CSDb · docsnyderspage

triad-14.asm 2.846 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:53
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $491f  (16672 bytes)
// Crunched with Exomizer v2/v3 — depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $4800 (18432)
//
// Code: 1900 bytes, Data: 14772 bytes
// Labels: 357, Subroutines: 5
//
// Cross-references: all OK
// ============================================


// --- Region $0f00-$0f2f ---
.pc = $0f00 "sub_0f00"
// Referenced by: jsr from $48d5

sub_0f00:
        adc #$08
        sta $40
        ldx #$00

loc_0f06:
        lda $0771,x
        sta $0770,x
        adc #$40
        sta $0798,x
        inx
        cpx #$28
        bne loc_0f06

loc_0f16:
        lda ($2b),y
        bne loc_0f24
        lda #$00
        sta $2b
        lda #$0c
        sta $2c
        bne loc_0f16

loc_0f24:
        sta $0797
        adc #$40
        sta $07bf
        jmp $e41b

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

// --- Region $1000-$1006 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $484a

sub_1000:
        jmp loc_1040
// Referenced by: jsr from $484d

sub_1003:
        jmp loc_10c1

dat_1006:
        .byte $01                                   // .

// --- Region $1040-$1277 ---
.pc = $1040 "loc_1040"

loc_1040:
        asl
        asl
        asl
        tay
        ldx #$00

loc_1046:
        lda $17cb,y
        sta $172e,x
        sta $1734,x
        lda $17cc,y
        sta $1731,x
        sta $1737,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1046
        lda $17cb,y
        sta $1747
        lda $1020
        beq loc_1095
        ldx #$02

loc_106c:
        lda $17cc,y
        sta $100b
        and $173a,x
        sta dat_1006,x
        dex
        bpl loc_106c
        bit $100b
        bpl loc_1095
        ldx #$00

loc_1082:
        lda $17cd,y
        sta $1734,x
        lda $17ce,y
        sta $1737,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1082

loc_1095:
        ldy #$00
        tya

loc_1098:
        sta $d400,y
        iny
        cpy #$17
        bne loc_1098
        tay

loc_10a1:
        sta $1014,y
        iny
        cpy #$0c
        bne loc_10a1
        ldy #$14

loc_10ab:
        sta $1748,y
        dey
        bpl loc_10ab
        lda #$01
        sta $1794
        lda #$03
        sta $1746
        lda #$0f
        sta $1009
        rts