#674

Matrix 01

Matrix

1.699 lines of code

MusicSIDScrollerSCRLBitmapBMAP

History

Released
September 1989
Code
Deejay
Music
Paul Norman — "Beyond the Forbidden Forest"
Group
Matrix — Germany, founded 1988

Deejay coded this Matrix intro, released in September 1989, with a ripped soundtrack from Paul Norman's "Beyond the Forbidden Forest" — a classic C64 game whose atmospheric music is preserved in the HVSC. Paul Norman was both a game designer and composer, and his work appeared in several commercial C64 titles of the mid-1980s. Matrix was a German group founded in 1988 under the abbreviation MAX, and this September 1989 release came during their second year of activity. The group is not documented on Doc Snyder's page, and no other archival sources beyond CSDb and intros.c64.org returned results. The choice of "Beyond the Forbidden Forest" — a 1985 game known for its eerie sound design — shows a preference for moody, atmospheric music over the more common up-tempo crack intro fare. CSDb lists only this single intro for Matrix, suggesting the group had a limited documented output or that other productions remain uncatalogued.

Sources: CSDb

matrix-01.asm 1.699 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:55
// 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:  $0f00 (3840)
// IRQ handler:  $1920 (irq_1920)
//
// Code: 790 bytes, Data: 62698 bytes
// Labels: 189, Subroutines: 8
//
// Cross-references: all OK
// ============================================


// --- Region $0f00-$0f9c ---
.pc = $0f00 "main_0f00"

main_0f00:
        ldx #$00
        lda #$00

loc_0f04:
        sta $033c,x
        inx
        cpx #$30
        bne loc_0f04
        lda #$00
        sta $d020
        sta $d021
        lda #$08
        jsr $ffd2
        jsr $e544
        ldx #$00
        lda #$17

loc_0f20:
        sta $0400,x
        inx
        cpx #$c8
        bne loc_0f20
        ldx #$00
        lda #$0e

loc_0f2c:
        sta $d800,x
        sta $d900,x
        inx
        bne loc_0f2c
        ldx #$00

loc_0f37:
        lda $0a00,x
        sta $04c8,x
        lda $0a40,x
        sta $0508,x
        inx
        bne loc_0f37
        ldx #$00
        lda #$00

loc_0f4a:
        sta $d9e0,x
        inx
        cpx #$50
        bne loc_0f4a
        jsr sub_1500
        ldx #$00

loc_0f57:
        lda txt_0b90,x
        sta $0608,x
        inx
        cpx #$28
        bne loc_0f57
        ldx #$00
        lda #$00

loc_0f66:
        sta $da80,x
        inx
        cpx #$28
        bne loc_0f66
        lda #$01
        sta $0341
        jsr sub_1900

loc_0f76:
        jmp loc_0f76

scr_0f79:
        // === Screen RAM (7 bytes, $0f79-$0f7f) ===
        .encoding "screencode_mixed"
        .text "@@@@@@@"
        .encoding "petscii_upper"

loc_0f80:
        sei
        jsr $ff5b
        jsr $fd15
        jsr $e3bf
        jsr $fda3
        cli
        ldx #$50

loc_0f90:
        lda scr_0f9c,x
        sta $033c,x
        dex
        bpl loc_0f90
        jmp $033c

scr_0f9c:
        // === Screen RAM (1 bytes, $0f9c-$0f9c) ===
        .byte $78                                   // scrcode: .

// --- Region $148d-$148d ---
.pc = $148d "Segment $148d"
        brk

// --- Region $1500-$1517 ---
.pc = $1500 "sub_1500"
// Referenced by: jsr from $0f52

sub_1500:
        ldx #$24

loc_1502:
        lda #$00
        sta $d400,x
        lda dat_15d3,x
        sta $d400,x
        dex
        bpl loc_1502
        lda #$08
        sta $78
        jmp loc_15a4

dat_1517:
        .byte $00                                   // .

// --- Region $1520-$15d2 ---
.pc = $1520 "sub_1520"
// Referenced by: jsr from $195f