Repository navigation
DRAMscope 1.4
A memory diagnostic cartridge for any Commodore 64.
Download
| File | What it is |
|---|---|
| dramscope.crt | The tool. Put it on your cartridge and start it. |
| READ-ME-FIRST.txt | Every colour, every mark on the map, what to do with a fault. |
| CHIP-CHART.pdf | Print this. One A4 page: which chip carries which bit, all five board assemblies, and what to check before desoldering. |
| CHIP-CHART.txt | The same chart as plain text. |
| g1probe.crt | Will DRAMscope run on your cartridge? This answers it — see below. |
dramscope_roml.bin / dramscope_romh.bin |
Raw 8 KB halves, for anyone building EasyFlash-compatible hardware. |
What it runs on
⚠ It is an EasyFlash cartridge, not a plain ROM image, and that is the architecture rather than a packaging choice. It boots in Ultimax — the only mode where the cartridge supplies the reset vector instead of the KERNAL, which is what lets it start with no working KERNAL and no working RAM. Ultimax maps only $0000–$0FFF of RAM, so writing $02 to the EasyFlash register at $DE02 releases GAME, leaving Ultimax for 8 K mode with the cartridge still at $8000 and the other 60 KB reachable.
| Hardware | Works? |
|---|---|
| Ultimate II+ | ✅ confirmed on hardware |
| Kung Fu Flash | ✅ confirmed on hardware |
| A real EasyFlash 1 or 3 | ✅ expected — flashing one gives you a dedicated test cartridge. Untested by us; reports welcome. |
| Other EasyFlash-capable carts | ✅ expected if the $DE02 emulation is faithful |
| ⚠ A plain EPROM cartridge | ❌ not fully — no $DE02, so it cannot leave Ultimax and sees only 4 KB. It says so with an orange border rather than pretending. |
Got a cartridge not listed? Run g1probe.crt. It sweeps all eight values of $DE02 and reports on screen which, if any, leaves Ultimax with the cartridge still mapped. Green means DRAMscope will work on it.
Getting started
- Put
dramscope.crton the cartridge and start it. It runs continuously until you reset, counting completed runs. - ⚠ If the RAM is missing, the cartridge must be mapped without a menu. A Kung Fu Flash boots the last cartridge straight away; the Ultimate II+ menu is itself a C64 program and needs working RAM.
What it does
- Boots in Ultimax from its own reset vector — no working KERNAL and no working RAM needed to start. Verified on a machine with every DRAM pulled from its sockets.
- Tests all 65,534 bytes of RAM. A C64 has 65,536 addresses, but two of them are not memory:
$0000and$0001are the CPU's data-direction register and banking latch.$D000–$DFFFis included, marched with the I/O chips banked out. - Nine phases: data lines, address lines (all 16), March B 17n, March LR 14n, row/column topographical patterns, low memory, the engine's own memory, retention, and colour RAM.
- Runs as a burn-in: faults are cumulative, so the chip that fails once an hour is the one it is built to catch.
Reading a fault
MEMORY FAULT, FIRST BAD BYTE AT $4037
BITS D0
LIKELY U21
8X4164 ASSUMED. 41464? D0-D3=1 CHIP.
⚠ The bit number is measured. The chip name is a suggestion — that is why the row says LIKELY. A failing bit means the fault is somewhere on that data line, and the RAM is the likeliest part on it, but a dry joint, a corroded socket contact, a broken track, the PLA or the CPU end of the line are indistinguishable to any software test. Reseat, reflow, check continuity — then swap the part, and keep the old one until the repair is confirmed.
Colour RAM is a separate 1K × 4 chip and gets its own verdict — a fault there never names a 4164.
Safety
The border pulse and the no-RAM flash are both well under the 3 flashes/second limit in WCAG 2.3.1 — measured, not assumed.
No warranty of any kind; see LICENSE.