D64 Visualizer, 6502 Disassembler & Disk/ROM File Utilities
100% client-side Rust/WebAssembly workbench combining an interactive Commodore 1541 .D64 disk image parser, 35/40-track radial & matrix sector visualizer, Track 18 Sector 0 BAM decoder, PETSCII directory reader, .PRG file extractor, MOS 6502/6510 disassembler with automatic hardware IC register detection, and .BIN/.ROM binary patcher with IEEE 802.3 CRC32 verification.
SMIGGY DIAG 26 · 584 Blocks Free · CRC32: 0x8F4A2C19$D020, $D418, $DC00) directly to IC pinout diagrams on the right.
Core Capabilities & Coverage
- Supports 35-track (174,848 B), 35-track with GCR error bytes (175,531 B), and 40-track (196,608 B) Commodore 1541 .D64 images entirely in browser WebAssembly memory.
- Dual-mode 1541 Disc Surface Visualizer: switch between a physical 5.25" Radial Ring View (showing variable bit-density speed zones across Tracks 1–35) and a 35×21 Matrix Grid View, plus an 850px high-resolution modal and PNG exporter.
- MOS 6502/6510 Disassembler with synchronized hex/ASCII dump and automatic hardware register detection ($D000 VIC-II, $D400 SID, $DC00/$DD00 CIA, $D800 Colour RAM) linking straight to IC pinout diagrams.
- .BIN / .ROM Binary Patcher computing live IEEE 802.3 CRC32, 16-bit modular checksums, and XOR checksums for verifying KERNAL, BASIC, Character, and Dead-Test diagnostic ROM dumps.
Step-by-Step Workbench Workflow
-
1
Drag-and-Drop a .D64 Image (or Load a Bench Demo Disk)
Drop any .D64 file onto the upload zone—or click "Load Clean Demo .D64 Disk" / "Simulate 1541 Read Errors (Status 3)" to immediately explore a populated 35-track Commodore 1541 disk structure.
-
2
Analyze Track Layout, BAM Allocations & Sector Chains
Hover or click any sector on the 35-Track Canvas (or open the 850px Modal). The zero-occlusion Docked HUD displays the Track/Sector coordinate, BAM status (Free, Allocated, Track 18 Directory/BAM, or GCR Read Error), owning filename, and raw 256-byte sector hex dump.
-
3
Inspect PETSCII Directory & Extract or Disassemble .PRG Files
Browse the decoded Track 18 directory table showing file types (PRG, SEQ, USR, REL), block sizes, load addresses, and T/S chains. Click "Extract .PRG" to download a file, or click "Disassemble ->" to pipe the binary directly into the 6502 Disassembler tab.
-
4
Disassemble 6502 Code & Patch/Verify .BIN ROM Checksums
In Tab 2 (6502 Disassembler), inspect decoded instructions alongside clickable hardware register badges (e.g., STA $D020 links to the VIC-II pinout). In Tab 3 (.BIN Patcher), verify ROM CRC32 hashes before burning a 27C64/27C128 EPROM or apply hex byte patches (such as NOP $EA slides).
Click any filename row in the .D64 Directory Table to highlight its exact interleaved sector chain in bright cyan across the 35-track radial disc map—ideal for spotting fragmented files, copy-protection tracks, or corrupt sector links.
Track 18 Sector 0 BAM Corruption & ROM Size Mismatches: Track 18 is reserved for the 1541 Directory and Block Availability Map; overwriting T18/S0 renders the directory unreadable. When burning replacement ROMs, always check the file byte size (4096 B vs 8192 B) and CRC32 in Tab 3 before programming your EPROM.