#449

Contex [CTX] 01

Contex [CTX]

484 lines of code

ScrollerSCRLCharsetCHAR

History

Released
November 1989
Code
Flex
Charset
Unitrax
Group
Contex — Finland, founded 26 November 1988

CSDb titles this release as the "Contex 'Flex' Intro," crediting the coder directly in the production's name. Flex coded the intro while Unitrax designed the charset. Despite external database credits suggesting multiple SID tunes, disassembly confirms the binary contains no SID register writes — the intro runs as a silent visual presentation. Contex was a Finnish group founded on 26 November 1988, making this November 1989 intro a product of their first year of activity. Finland produced a disproportionate number of respected cracking groups relative to its small population, and Contex was part of that tradition. The intro's visual design — built around Unitrax's charset work and the scrolling text — carries the production without audio accompaniment. Naming the coder in the release title was an uncommon practice that highlighted Flex's role as the group's primary intro designer during this early period.

Sources: CSDb

ctx-01.asm 484 lines
// ============================================
// ctx-01 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:11
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $0c8f  (1167 bytes)
// Entry point:  $0812 (via BASIC SYS 2066)
// IRQ handler:  $091c (irq_091c)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 592 bytes, Data: 575 bytes
// Labels: 54, Subroutines: 1
//
// Cross-references: all OK
// ============================================


// --- Region $0812-$09d5 ---
.pc = $0812 "main_0812"
main_0812: {
        ldx #$00
        lda #$20
loop1:
        sta $e000,x
        sta $e100,x
        sta $e200,x
        sta $e300,x
        inx
        bne loop1
        sei
        lda #$33
        sta $01
        lda #$d4
        sta $fc
        lda #$e8
        sta $fe
        ldy #$00
        sty $fb
        sty $fd
        ldx #$07
loop2:
        lda ($fb),y
        sta ($fd),y
        dey
        bne loop2
        inc $fe
        inc $fc
        dex
        bpl loop2
        lda #$34
        sta $01
        lsr $a8
        lda #$5c
        sta $02
        lda #$00
        sta $fb
        sta $fd
        lda #$e8
        sta $fc
        lda #$ea
        sta $fe
loop3:
        ldy #$07
        ldx #$0f
loop4:
        lda ($fb),y
        sta $02a8,x
        dex
        sta $02a8,x
        dex
        dey
        bpl loop4
        ldy #$07
loop5:
        lda $02a8,y
        sta ($fb),y
        lda $02b0,y
        sta ($fd),y
        dey
        bpl loop5
        lda $fb
        clc
        adc #$08
        sta $fb
        sta $fd
        bcc skip1
        inc $fc
        inc $fe
skip1:
        dec $02
        lda $02
        cmp #$1c
        bne loop3
        lda #$37
        sta $01
        ldx #$ff
        stx $e800
        inx
loop6:
        lda #$e9
        sta $e801,x
        inx
        cpx #$06
        bne loop6
        lda #$55
        sta $e807
        lda #$08
        sta $0286
        jsr $e544
        ldx #$00
        ldy #$00
loop7:
        lda $0ad5,x
        cmp #$ff
        beq skip3
        sta $fb
        lda #$08
        sta $fc
loop8:
        asl $fb
        bcc skip2
        lda #$00
        sta $dc0e
        sta $e168,y
        sta $d020
        lda #$0b
        sta $d022
        sta $d968,y
skip2:
        iny
        dec $fc
        bne loop8
        inx
        bne loop7
skip3:
        lda #$1c
        sta $0314                                   // set IRQ handler low byte
        lda #$09
        sta $0315                                   // set IRQ handler high byte
        cli
        ldx #$00
loop9:
        lda $0a17,x
        sta $04aa,x
        inx
        cpx #$14
        bne loop9
        ldx #$00