#537

Ancient Temple, The [TAT] 01

Ancient Temple, The [TAT]

2.484 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
12 July 1989
Code
Colonel Andrew T.
Music
EVS (Edwin van Santen) — "Big Fun Mix"
Charset
Bobo
Group
The Ancient Temple — Austria, founded 1988

An Austrian crack intro coded by Colonel Andrew T., with music from the prolific Dutch composer EVS (Edwin van Santen). His "Big Fun Mix" is preserved in the HVSC. Bobo contributed the charset design. Released on 12 July 1989, this arrived roughly a year after The Ancient Temple's founding in 1988. Austria produced a small but dedicated contingent of C64 groups, and TAT was among the most notable. The group maintained a website at manni.org/tat, indicating community engagement beyond the C64's active commercial era. EVS was one of the most widely credited Dutch SID composers of the late 1980s, and his appearance here reflects the standard practice of sourcing music internationally. Colonel Andrew T.'s handle follows the military-themed naming convention common across the scene. The Ancient Temple's full name evokes fantasy rather than the military or technology references favoured by most cracking groups.

Sources: CSDb

tat-01.asm 2.484 lines
// ============================================
// tat-01 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:25
// 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:  $0900 (2304)
// IRQ handler:  $0a4a (irq_0a4a)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 2021 bytes, Data: 61467 bytes
// Labels: 238, Subroutines: 17
//
// Cross-references: all OK
// ============================================


// --- Region $08d0-$08d6 ---
.pc = $08d0 "Program $08d0"
        .byte $83,$00                               // sax ($00,x) // ILLEGAL
        .byte $3f,$00,$ff                           // rla $ff00,x // ILLEGAL

dat_08d5:
        .byte $ff,$ff                               // ..

// --- Region $0900-$0a14 ---
.pc = $0900 "main_0900"

main_0900:
        jmp loc_0918

dat_0903:
        .byte $01                                   // .
        ora ($04,x)
        .byte $04,$2d                               // nop $2d // ILLEGAL
        jsr sub_4f43
        .byte $44,$45                               // nop $45 // ILLEGAL
        .byte $44,$20                               // nop $20 // ILLEGAL

txt_090f:
        .text "BY CASE -"

loc_0918:
        sei
        ldx #$ff
        txs
        lda #$0f
        sta $d021
        sta $0286
        jsr $e544
        lda #$00
        sta $d020
        sta $d021
        sta $028a
        lda #$80
        sta $0291
        lda $3fff
        sta $0a48
        lda #$00
        sta $3fff
        lda dat_0903
        bne loc_0955
        lda #$00
        sta smc_0bd5                                // SMC: modifies $0bd5
        lda $0906
        sta smc_0bb4                                // SMC: modifies $0bb4
        jmp loc_095b

loc_0955:
        lda $0905
        sta smc_0bd5                                // SMC: modifies $0bd5

loc_095b:
        ldy #$27

loc_095d:
        lda $0c00,y
        sta $d9e0,y
        dey
        bpl loc_095d
        ldx #$00

loc_0968:
        lda $0e00,x
        sta $0400,x
        lda #$08
        sta $d800,x
        inx
        cpx #$f0
        bne loc_0968
        jsr sub_0c3e
        lda #$01
        sta $0b9d
        sta $0b9e
        jsr sub_0b4b
        lda #$00
        jsr sub_1000
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda $dc0d                                   // acknowledge CIA1 pending IRQs
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$01
        sta $d012
        lda #$01
        sta $d019                                   // raster // acknowledge raster IRQ
        sta $d01a                                   // raster IRQ on
        lda #$4a
        sta $0314                                   // set IRQ handler low byte
        lda #$0a
        sta $0315                                   // set IRQ handler high byte
        cli

loc_09b0:
        jsr $ffe4
        cmp #$20
        bne loc_09b0
        lda $0a48
        sta $3fff
        sei
        jsr $fda3
        jsr $e5a0
        lda #$0f
        sta $d021
        sta $0286
        jsr $e544
        lda #$00
        sta $d020
        sta $d021
        lda #$31
        sta $0314                                   // set IRQ handler low byte
        lda #$ea
        sta $0315                                   // set IRQ handler high byte
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$f0
        sta $d01a                                   // all IRQs off
        lda #$00
        sta $d418
        lda #$17
        sta $d018                                   // screen=$0400, charset=$1800
        ldy #$27

loc_09f7:
        lda txt_0f80,y
        sta $0798,y