#282

Public Enemy No. 1 01

Public Enemy No. 1

4.033 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRTBitmapBMAP

History

Group
Public Enemy No. 1 — United Kingdom, founded 1988

A crack intro from Public Enemy No. 1 — a British group founded in 1988, not to be confused with the American group Public Enemy (PE). The CSDb search returned no matching release for this specific intro, though the group is documented on CSDb. Another Public Enemy No. 1 intro appears at #282 PE1-02, which was coded by Ironfist with music by Laxity — a pairing that also contributed to intros for other UK groups. No individual credits for code, music, or graphics have been identified for this particular release. The group's name — an elaboration on the American hip-hop reference used by Public Enemy (PE) — was a common type of provocative naming in the late-1980s British cracking scene. Public Enemy No. 1 operated during the intensely competitive period of 1988, when British groups were releasing at a rapid pace. Comments on intros.c64.org from iAN CooG and Stormbringer confirm community recognition of this intro.

Sources: intros.c64.org

pe1-01.asm 4.033 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:29
// 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:  $1900 (6400)
// IRQ handler:  $1021 (irq_1021)
// IRQ handler:  $1040 (irq_1040)
// IRQ handler:  $105f (irq_105f)
// IRQ handler:  $107e (irq_107e)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 5031 bytes, Data: 58457 bytes
// Labels: 396, Subroutines: 24
//
// Cross-references: all OK
// ============================================


// --- Region $0dca-$0eec ---
.pc = $0dca "loc_0dca"

loc_0dca:
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
.label sub_0e01 = * + 1
        jsr sub_2020
        jsr $0320
        rol $34,x
        jsr sub_0e01
        .byte $04,$20                               // nop $20 // ILLEGAL
        ora ($0d,x)
        ora #$07
        ora ($20,x)
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_2020
        jsr sub_4453
        lsr $41
        .byte $53,$46                               // sre ($46),y // ILLEGAL
        eor ($53,x)
        .byte $44,$46                               // nop $46 // ILLEGAL
        .byte $53,$44                               // sre ($44),y // ILLEGAL
        lsr $41
        .byte $53,$44                               // sre ($44),y // ILLEGAL
        lsr $41
        .byte $53,$46                               // sre ($46),y // ILLEGAL
        eor ($53,x)
        .byte $44,$46                               // nop $46 // ILLEGAL
        jsr sub_2020
        jsr sub_2020
        jsr $0120
        ora ($ff,x)
        brk

chr_0eec:
        // === Charset data (1 bytes, $0eec-$0eec) ===
        .byte $00                                   // char 0 (partial)

// --- Region $1000-$10a5 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $2f0f

sub_1000:
        sei
        lda #$7f
        sta $dc0d
        lda #$01
        sta $d01a
        lda #$10
        sta $0315
        lda #$21