#534

Triad+Fairlight 01

Triad+Fairlight

1.578 lines of code

RasterbarsRSTRScrollerSCRL

History

Released
14 October 1991
Code
Alfatech
Group
Triad+Fairlight — Sweden, founded 14 April 1987

A joint production between two of Sweden's most legendary groups — Triad and Fairlight. Alfatech coded the intro, released on 14 October 1991. No music credit is recorded on CSDb, and no SIDs are listed. CSDb catalogues this under Fairlight's group page, suggesting they were the lead partner in the collaboration. Fairlight was founded on 14 April 1987 and became one of the most iconic names in both the C64 and PC cracking scenes. Triad operated as another major Swedish cracking and demo group. Both groups are heavily represented elsewhere in the rankings — Fairlight appears in entries including #2 FLT-01, while Triad has its own extensive catalogue. Swedish cooperation intros were common in the early 1990s, as groups shared resources and manpower during an era of declining C64 activity. The Alfatech handle appears in Fairlight's broader roster of contributors documented across their many productions.

Sources: CSDb

triad_flt-01.asm 1.578 lines
// ============================================
// triad_flt-01 - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:45
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $ffff  (63487 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $1000 (4096)
// IRQ handler:  $1224 (irq_1224)
// IRQ handler:  $12a3 (nmi_12a3)
//
// Code: 1064 bytes, Data: 62423 bytes
// Labels: 206, Subroutines: 7
//
// Verification: 5 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $1000-$1003 ---
.pc = $1000 "main_1000"

main_1000:
        jmp loc_1047

dat_1003:
        .byte $0f                                   // .

// --- Region $100c-$1200 ---
.pc = $100c "loc_100c"

loc_100c:
        stx.abs $0026
        bpl loc_1089
        lda #$34
        sta $01
        ldx #$00

loc_1017:
        lda $100a,x
        sta $02,x
        inx
        cpx #$06
        bne loc_1017
        ldy #$00

loc_1023:
        lda ($02),y
        sta ($06),y
        inc $02
        bne loc_102d
        inc $03

loc_102d:
        inc $06
        bne loc_1033
        inc $07

loc_1033:
        lda $02
        cmp $04
        bne loc_1023
        lda $03
        cmp $05
        bne loc_1023
        lda #$37
        sta $01
        cli
        jmp loc_1100

loc_1047:
        jsr sub_1083
        lda #$00
        sta $a0
        lda #$0c
        sta $a1
        sei
        lda #$35
        sta $01
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda #$01
        sta $d01a                                   // raster IRQ on
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$3a
        sta $d012
        lda #$24
        sta $fffe                                   // set IRQ vector low byte
        lda #$12
        sta $ffff                                   // set IRQ vector high byte
        lda #$a3
        sta $fffa                                   // set NMI vector low byte
        lda #$12
        sta $fffb                                   // set NMI vector high byte
        cli

loc_1080:
        jmp loc_1080
// Referenced by: jsr from $1047

sub_1083:
        sei
        lda #$32
        sta $01
.label loc_1089 = * + 1
        ldx #$00
        lda #$ff

loc_108c:
        sta $0800,x
        sta $0900,x
        sta $0a00,x
        sta $0b00,x
        inx
        bne loc_108c
        lda #$40
        sta $90
        lda $1006
        cmp #$00
        beq loc_10f0

loc_10a6:
        ldx #$00

loc_10a8:
        lda $d000,x
        eor #$ff
        sta $0800,y
        eor #$00
        sta dat_0801,y
        eor #$00
        lda $d004,x
        eor #$ff
        sta $0a00,y
        eor #$00
        sta $0a01,y
        eor #$00
        inx
        iny
        iny
        cpx #$04
        bne loc_10a8
        ldx #$01
        ldy #$06