#761

Triad 25

Triad

3.741 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Code
Kravin
Charset
Mikael
Music
Scortia (Thomas Bendt) — "Nebulas (v1)" / Iron Cat (Alain Hertenstein) — "Heal the World" / Kravin (Germund Ericsson) — "Triad Intro"
Group
Triad — Sweden, founded 28 July 1986

A Triad intro coded by Kravin with a charset from Mikael, featuring three selectable SID tunes — all preserved in the HVSC. Scortia (Thomas Bendt) contributed "Nebulas (v1)," Iron Cat (Alain Hertenstein) provided "Heal the World," and Kravin himself composed the "Triad Intro" tune, making him both coder and musician. CSDb titles this the "Kravin intro," and no release date is recorded. Triad was Sweden's longest-running cracking group, founded on 28 July 1986 under the abbreviation 3AD. Doc Snyder's page documents their extensive catalogue with productions spanning multiple decades — from early entries by Mr. Z to later work by Tao, Nith, and others. Other ranked Triad entries include #11 Triad-01, #131 Triad-08, and #140 Triad-14. The three-tune setup reflects the intro's dual function as a release vehicle and a musical showcase.

Sources: CSDb · docsnyderspage

triad-25.asm 3.741 lines
// ============================================
// output - Part 1 of 2
// ============================================
// 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: $3aff  (13056 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $2e00 (11776)
// IRQ handler:  $2eed (irq_2eed)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 2560 bytes, Data: 10496 bytes
// Labels: 269, Subroutines: 19
//
// Cross-references: all OK
// ============================================


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

sub_1000:
        jmp loc_1048
// Referenced by: jsr from $2f81

sub_1003:
        jmp loc_1021

txt_1006:
        .text "-"

// --- Region $1021-$1080 ---
.pc = $1021 "loc_1021"

loc_1021:
        ldx #$00
        dec $1090
        bmi loc_1034
        jsr sub_1226
        jsr sub_1225
        jmp sub_1225

dat_1031:
        .byte $ff,$ff,$ff                           // ...

loc_1034:
        lda #$03
        sta $1090
        jsr sub_1040
        jsr sub_103f
// Referenced by: jsr from $103c

sub_103f:
        inx
// Referenced by: jsr from $1039

sub_1040:
        dec $108a,x
        bmi loc_1091
        jmp sub_1226

loc_1048:
        lda #$1f
        sta $d418
        lda #$f0
        sta $d417
        and #$0f
        sta smc_1262                                // SMC: modifies $1262
        ldx #$0f

loc_1059:
        sta dat_1081,x
        dex
        bpl loc_1059
        ldx #$02

loc_1061:
        lda $14b9,x
        sta $fa
        lda $14bc,x
        sta $fb
        ldy #$00
        lda ($fa),y
        sta $108d,x
        iny
        lda ($fa),y
        sta $10e6,x
        and #$0f
        sta $10e9,x
        dex
        bpl loc_1061
        rts

// --- Region $1091-$10c6 ---
.pc = $1091 "loc_1091"

loc_1091:
        ldy $108d,x
        cpy #$fe
        bne loc_10a1
// Referenced by: jsr from $10c0

sub_1098:
        lda $1084,x
        and #$fe
        sta $1084,x
        rts

loc_10a1:
        lda $1e86,y
        sta $fa
        lda dat_1e51,y
        sta $fb
        ldy dat_1081,x
        lda ($fa),y
        bmi loc_10d2
        cmp #$60
        bcc loc_10f9

loc_10b6:
        and #$1f
        sta $108a,x
        lda #$fe
        sta dat_1031,x
        jsr sub_1098

loc_10c3:
        jmp loc_1187

dat_10c6:
        .byte $00                                   // .

// --- Region $10d2-$10dd ---
.pc = $10d2 "loc_10d2"

loc_10d2:
        cmp #$a0
        bcc loc_10ec
        and #$1f
        sta $108a,x
        bcs loc_10c3
        brk

// --- Region $10ec-$1141 ---
.pc = $10ec "loc_10ec"