#928

Shaolin Monastery, The [TSM] 12

Shaolin Monastery, The [TSM]

2.045 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
24 December 1988
Music
"Ninja Remix" (ripped)
Group
The Shaolin Monastery — United States, founded December 1988

Rad Man coded this early Shaolin Monastery intro, released on Christmas Eve 1988 — the same month the group was founded. The ripped "Ninja Remix" SID provides the soundtrack, while Andrew Sleigh and Bob Hawker contributed the charset design. As one of the earliest intros in the TSM catalogue, this represents the group's formative period when Rad Man served as their primary coder and cracker. The Shaolin Monastery would go on to produce at least thirteen crack intros between December 1988 and July 1994, making them one of the more prolific American C64 cracking operations. Other TSM intros in this collection include TSM-06, which features multi-tune music by Falco Paul and Deek. The group dissolved in September 1994 after nearly six years of activity. TSM's martial arts-themed name reflected the era's pop culture fascination with kung fu films, a naming convention shared by several other scene groups of the period.

Sources: CSDb · CSDb — Group

tsm-12.asm 2.045 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:56
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0700  End: $29ff  (8960 bytes)
// Crunched with Exomizer v2/v3 — depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $2200 (8704)
//
// Code: 2028 bytes, Data: 6932 bytes
// Labels: 200, Subroutines: 8
//
// Cross-references: all OK
// ============================================


// --- Region $1000-$1006 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $2784

sub_1000:
        jmp loc_1040
// Referenced by: jsr from $22d7

sub_1003:
        jmp loc_10dc

dat_1006:
        .byte $01                                   // .

// --- Region $1020-$1029 ---
.pc = $1020 "sub_1020"
// Referenced by: jsr from $22dd

sub_1020:
        lda #$00
        cmp #$02
        beq dat_102a
        inc $1021
        rts

// --- Region $1040-$134e ---
.pc = $1040 "loc_1040"

loc_1040:
        asl
        asl
        asl
        tay
        ldx #$00

loc_1046:
        lda $177b,y
        sta $16e9,x
        sta $16ef,x
        lda $177c,y
        sta $16ec,x
        sta $16f2,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1046
        ldx #$00
        stx $100b
        lda $177b,y
        sta $16e8

loc_106a:
        sta $1765,x
        inc $100b
        lda $16e8
        clc
        adc $177b,y
        sta $16e8
        clc
        adc $100b
        inx
        cpx #$10
        bne loc_106a
        lda sub_1020
        beq loc_10b3
        ldx #$02

loc_108a:
        lda $177c,y
        sta $100b
        and $16f5,x
        sta dat_1006,x
        dex
        bpl loc_108a
        bit $100b
        bpl loc_10b3
        ldx #$00

loc_10a0:
        lda $177d,y
        sta $16ef,x
        lda $177e,y
        sta $16f2,x
        iny
        iny
        inx
        cpx #$03
        bne loc_10a0

loc_10b3:
        ldy #$00
        tya

loc_10b6:
        sta $d400,y
        iny
        cpy #$1b
        bne loc_10b6
        tay

loc_10bf:
        sta $1014,y
        sta $170d,y
        iny
        cpy #$0c
        bne loc_10bf
        lda #$02
        sta $1716
        sta $1717
        sta $1718
        lda $1009
        sta $d418
        rts

loc_10dc:
        ldx #$02
        lda $fb
        pha
        lda $fc
        pha

loc_10e4:
        lda dat_1006,x
        bne loc_10ec
        jmp loc_161b

loc_10ec:
        lda $1716,x
        beq loc_110a
        cmp $1707,x