#109

Shaolin Monastery, The [TSM] 02

Shaolin Monastery, The [TSM]

4.396 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
26 September 1990
Code
Shark
Music
Falco Paul — "Peanut Pleasure"
Group
The Shaolin Monastery — Sweden, founded 28 June 1989

Shark coded while Falco Paul contributed "Peanut Pleasure" — an original composition preserved in the HVSC. The Shaolin Monastery was a Swedish group founded on 28 June 1989, their martial arts-themed name reflecting the era's fascination with kung fu films. Released on 26 September 1990, this came during TSM's active period before they merged operations with Talent. The Swedish C64 scene was dominated by larger groups like Triad and Fairlight, but TSM carved out their own niche. Falco Paul's composition style is distinctive within the HVSC catalogue. TSM would later collaborate with Talent on joint releases like #106 Talent+TSM, demonstrating the late-era trend toward group partnerships.

Sources: CSDb

tsm-02.asm 4.396 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:37
// 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:  $2b00 (11008)
// IRQ handler:  $2bc1 (irq_2bc1)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 4801 bytes, Data: 58687 bytes
// Labels: 475, Subroutines: 14
//
// Cross-references: all OK
// ============================================


// --- Region $1000-$1563 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $2b2a

sub_1000:
        jmp loc_1800

dat_1003:
        .byte $4c,$0f,$19                           // L..
// Referenced by: jsr from $2be5, $fc18

sub_1006:
        lda $1974

loc_1009:
        cmp #$02
        beq loc_1014
        cmp #$01
        bne loc_102a
        jmp loc_18e8

loc_1014:
        rts

dat_1015:
        .byte $f9,$26,$ee,$16                       // .&..

loc_1019:
        bpl loc_1009
        asl $10,x
        lda $1016
        cmp #$32
        bne loc_1029
        lda #$01
        sta dat_1015

loc_1029:
        rts

loc_102a:
        inc $1942
        inc $1943
        inc $1944
        lda #$1f
        sta $d418
        ldx #$02
        dec $1973
        bpl loc_1045
        lda $191d
        sta $1973

loc_1045:
        bit $d020
        stx $ff
        lda $191e,x
        sta $1956
        tay
        lda $1973
        cmp $191d
        bne loc_106b
        lda $16a1,x
        sta $fb
        lda $16a4,x
        sta $fc
        dec $1927,x
        bmi loc_106e
        jmp loc_11fa

loc_106b:
        jmp loc_120a

loc_106e:
        ldy $1921,x
        lda ($fb),y
        cmp #$fe
        beq loc_108c
        cmp #$ff
        bne loc_1094
        lda #$00
        sta $1927,x
        sta $1921,x
        sta $1924,x
        sta $1972
        jmp loc_106e

loc_108c:
        lda #$02
        sta $1974
        jmp loc_190b

loc_1094:
        sta $1967
        and #$80
        beq loc_10a9
        lda $1967
        and #$1f
        sta $194f,x
        inc $1921,x
        jmp loc_106e

loc_10a9:
        lda $1967
        and #$40
        beq loc_10be
        lda $1967
        and #$3f
        sta $1976,x
        inc $1921,x
        jmp loc_106e

loc_10be:
        lda $1967
        asl
        tay
        lda $16a7,y
        sta $fd
        lda $16a8,y
        sta $fe
        lda #$00
        sta $193f,x
        ldy $1924,x
        sta $1942,x
        lda #$03
        sta $1961,x

loc_10dd:
        lda ($fd),y
        sta $f8
        and #$f0