#608

Illusion+Touch of Class, A 01

Illusion+Touch of Class, A

4.827 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
31 May 1990
Music
EVS (Edwin van Santen) — "Dutch Breeze Advertisement", JCH (Jens-Christian Huus) — "Stopform+"
Graphics
Ironfist
Charset
Apollyon
Group
Illusion + A Touch of Class — United States, founded September 1987

CSDb catalogues this as the Illusion + ATC Intro, released 31 May 1990 — a joint production between Illusion and A Touch of Class, two American cracking groups. The intro features two SID tunes: EVS (Edwin van Santen) contributed "Dutch Breeze Advertisement" and JCH (Jens-Christian Huus) provided "Stopform+," both preserved in the HVSC. Ironfist handled graphics and Apollyon designed the charset. A Touch of Class was founded in September 1987 in the United States, and joint releases with Illusion indicate the close collaborative ties within the American C64 cracking network. The intro generated discussion on intros.c64.org, with comments from Rough and Changeling of Abyss. The dual-tune approach was relatively uncommon in crack intros of this period, suggesting a more ambitious presentation than the typical single-scroller format.

Sources: CSDb · intros.c64.org

ils_atc-01.asm 4.827 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:51
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $ffff  (63488 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $0c00 (3072)
// IRQ handler:  $0c6e (irq_0c6e)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 4886 bytes, Data: 58602 bytes
// Labels: 478, Subroutines: 21
//
// Cross-references: all OK
// ============================================


// --- Region $0c00-$0d19 ---
.pc = $0c00 "main_0c00"

main_0c00:
        sei
.label sub_0c02 = * + 1
        jsr sub_0eff
        jsr $e544
        lda smc_0d42
        sta $2f
        lda #$00
        sta $d020
        sta $40
        sta $30
        sta $34
        lda #$27
        sta $41
        lda #$01
        sta $31
        sta $32
        sta $33
        sta $2e
        ldx #$00

loc_0c27:
        lda #$08
        sta $d800,x
        sta $d818,x
        sta $dad0,x
        sta $dae8,x
        lda #$00
        sta $0400,x
        sta $0440,x
        sta $06a8,x
        sta $06e8,x
        inx
        bne loc_0c27
        ldx #$27

loc_0c48:
        lda #$00
        sta $d918,x
        sta $daa8,x
        lda #$01
        sta $d9e0,x
        sta $da08,x
        dex
        bpl loc_0c48
        lda #$00
        jsr sub_106c
        lda #$6e
        sta $0314
        lda #$0c
        sta $0315
        cli

loc_0c6b:
        jmp loc_0c6b

irq_0c6e:
        inc $d019
        lda #$31

loc_0c73:
        cmp $d012
        bne loc_0c73
.label smc_0c79 = * + 1
        lda #$0f                                    // !SMC: modified by $0db2
        sta $d021
.label smc_0c7e = * + 1
        lda #$0c                                    // !SMC: modified by $0db6
        sta $d022
.label smc_0c83 = * + 1
        lda #$0b                                    // !SMC: modified by $0dba
        sta $d023
        lda #$19
        sta $d018
        lda #$d8
        sta $d016
        lda #$6c

loc_0c93:
        cmp $d012
        bne loc_0c93
        lda #$00
        sta $d021
        lda #$13
        sta $d018
.label smc_0ca3 = * + 1
        lda #$28                                    // !SMC: modified by $0cf2
        sta $d016
        lda #$8b

loc_0ca9:
        cmp $d012
        bne loc_0ca9
.label smc_0caf = * + 1
        lda #$28                                    // !SMC: modified by $0ecf
        sta $d016
.label smc_0cb4 = * + 1
        lda #$03                                    // !SMC: modified by $0dc2
        sta $d022
.label smc_0cb9 = * + 1
        lda #$0e                                    // !SMC: modified by $0dc6
        sta $d023
        lda #$a3

loc_0cbf:
        cmp $d012
        bne loc_0cbf
.label smc_0cc5 = * + 1
        lda #$28                                    // !SMC: modified by $0d05
        sta $d016
        lda #$c1

loc_0ccb:
        cmp $d012
        bne loc_0ccb
        lda #$19
        sta $d018
        lda #$d8
        sta $d016
.label smc_0cdb = * + 1
        lda #$06                                    // !SMC: modified by $0dbe
        sta $d021
        jsr sub_0d32
        jsr sub_0ebd
        lda $51
        and #$7f