#494

Light Circle, The [TLC] 02

Light Circle, The [TLC]

1.111 lines of code

RasterbarsRSTRScrollerSCRLSpritesSPRT

History

Released
22 March 1987
Code
Flash
Group
The Light Circle — Germany, founded 1986

An early German crack intro from 22 March 1987, coded by Flash — the same member responsible for #278 TLC-04 and #491 Syntax-01. No music or graphics credits are recorded on CSDb, and no SID tunes are listed — suggesting this may be a silent or minimal-audio production, which was common for early 1987 intros when embedded SID music was not yet a universal standard. The Light Circle was a German group founded in 1986, abbreviated TLC. Flash's consistent presence as coder across multiple TLC productions — including one catalogued under the Syntax 2001 name — establishes him as the group's primary programmer. The March 1987 release date places this in a period when crack intros were evolving rapidly from simple text screens into the more elaborate audiovisual presentations that would define the golden age of 1988-1990.

Sources: CSDb · intros.c64.org

tlc-02.asm 1.111 lines
// ============================================
// tlc-02 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:26
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $1bff  (5120 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1000 (4096)
// IRQ handler:  $1162 (irq_1162)
// IRQ handler:  $117f (irq_117f)
// IRQ handler:  $11bd (irq_11bd)
//
// Code: 888 bytes, Data: 4232 bytes
// Labels: 112, Subroutines: 12
//
// Cross-references: all OK
// ============================================


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

main_1000:
        sei
        lda #$62
        sta $0314                                   // set IRQ handler low byte
        lda #$11
        sta $0315                                   // set IRQ handler high byte
        lda #$01
        sta $d01a                                   // raster IRQ on
        sta $cd
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$13
        sta $d018                                   // screen=$0400, charset=$0800
        ldx #$00

loc_1023:
        lda $1800,x
        sta $0400,x
        lda $1900,x
        sta $0500,x
        lda $1a00,x
        sta $0600,x
        lda $1ae8,x
        sta $06e8,x
        lda #$00
        sta $d800,x
        sta $d900,x
        lda #$08
        sta $da00,x
        lda #$0b
        sta $dae0,x
        sta $db00,x
        inx
        bne loc_1023
        ldx #$2c
        stx $07f9
        stx $07fd
        inx
        stx $07fa
        stx $07fe
        inx
        stx $07f8
        stx $07fc
        stx $07fb
        stx $07ff
        lda #$ff
        sta $d015
        sta $d01c
        lda #$00
        sta $d017
        sta $d01d
        ldx #$00

loc_1081:
        lda #$46
        sta $d001,x
        lda #$5e
        sta $d009,x
        inx
        inx
        cpx #$08
        bne loc_1081
        ldx #$00
        lda #$7d

loc_1095:
        sta $d000,x
        sta $d008,x
        clc
        adc #$21
        inx
        inx
        cpx #$08
        bne loc_1095
        lda #$0e
        sta $d025
        lda #$0f
        sta $d026
        lda #$00
        sta $d020
        sta $d021
        jsr sub_12a1
        jsr sub_13b7
        lda #$48
        sta $b0
        ldx #$00

loc_10c2:
        lda #$06
        sta $d027,x
        inx
        cpx #$08
        bne loc_10c2
        cli

loc_10cd:
        lda $dc01
        cmp #$ef
        bne loc_10cd
        sei
        jsr $fda3
        jsr $fd15
        jsr $ff5b
        lda #$00
        tax
        tay
        sty $d020
        stx $d021

loc_10e8:
        sta $d800,x
        sta $d900,x
        sta $da00,x
        sta $db00,x
        inx
        bne loc_10e8
        dex
        txs

loc_10f9:
        lda dat_1550,y
        sta $0100,y
        iny