#919

X-Rated 43

X-Rated

2.911 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Group
X-Rated — Germany, founded March 1989

Another entry from X-Rated, the German demo and cracking group that CSDb records as active from March 1989 to July 1993. The high intro number — 43 — attests to the group's prolific output during their four-year run, with their numbered intros reaching at least seventy. No individual credits for code, music, or graphics have been identified for this specific production. X-Rated employed a rotating team of contributors across their catalogue, including coders Roy, Ollie, Mark, Doom, and Darklord, and musicians Drax, JCH, dEViLOCk, Brian, and Stefan Hartwig. The group maintained over 120 members and had Elect as a sub-group. Their crackers — notably Infinity, Ozymandias, and L'Trimm — drove a steady stream of releases that kept X-Rated visible in the competitive German scene. The group maintained a website at xr-design.de, extending their presence into the internet era. This sits among multiple X-Rated entries in the collection, including #454 XR 03 and #467 XR 40.

Sources: CSDb · Doc Snyder's Page · intros.c64.org

xr-43.asm 2.911 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:37:04
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $302a  (10283 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $2800 (10240)
// IRQ handler:  $2866 (irq_2866)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 3152 bytes, Data: 7131 bytes
// Labels: 230, Subroutines: 20
//
// Cross-references: all OK
// ============================================


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

sub_1000:
        jmp loc_1037
// Referenced by: jsr from $2ad3

sub_1003:
        jmp loc_1085

spr_1006:
        // === Sprite data (1 bytes, $1006-$1006) ===
        .byte $4c

// --- Region $1037-$162e ---
.pc = $1037 "loc_1037"

loc_1037:
        asl
        asl
        asl
        tay
        ldx #$00

loc_103d:
        lda $18c1,y
        sta $1707,x
        lda $18c2,y
        sta $170a,x
        iny
        iny
        inx
        cpx #$03
        bne loc_103d
        lda $18c1,y
        sta $1716
        lda $18c2,y
        sta $1717
        sta $d418
        ldx #$00
        txa

loc_1062:
        sta $1718,x
        inx
        cpx #$86
        bne loc_1062
        ldx #$00
        lda #$01

loc_106e:
        sta $100c,x
        sta $173b,x
        inx
        cpx #$03
        bne loc_106e
        ldx #$00
        txa

loc_107c:
        sta $d400,x
        inx
        cpx #$18
        bne loc_107c
        rts

loc_1085:
        dec $1718
        bpl loc_1090
        lda $1716
        sta $1718

loc_1090:
        ldx #$00
        stx $1720
        jsr sub_10b0
        inx
        jsr sub_10b0
        inx
        jsr sub_10b0
        lda $171c
        sta $d416
        lda $1034
        ora $1723
        sta $d417
        rts
// Referenced by: jsr from $1095, $1099, $109d

sub_10b0:
        lda $100c,x
        beq loc_10c5
        lda $1716
        cmp $1718
        bne loc_10c5
        dec $173b,x
        lda $173b,x
        beq loc_10c8

loc_10c5:
        jmp loc_11f9

loc_10c8:
        lda $1707,x
        sta $f8
        lda $170a,x
        sta $f9

loc_10d2:
        ldy $1726,x
        lda ($f8),y
        bpl loc_1101
        cmp #$ff
        bne loc_10e5
        lda #$00
        sta $1726,x
        jmp loc_10d2

loc_10e5:
        cmp #$fe
        bne loc_10ef
        lda #$00
        sta $100c,x
        rts

loc_10ef:
        sec
        sbc #$a0
        bcs loc_10f8