Skip to content

Releases: bitbarista/dramscope

DRAMscope 1.9

Choose a tag to compare

@bitbarista bitbarista released this 19 Oct 16:43

RESTORE no longer interrupts a test

Pressing RESTORE while DRAMscope was testing could crash it — or, worse, quietly corrupt a byte that then showed up as a memory fault. Earlier bench sheets could only say "do not press RESTORE". From 1.9 it does nothing at all while the test runs: DRAMscope holds the line RESTORE works through from the moment it starts, so a press — by reflex, from a sticky key, or from electrical noise — cannot get through.

Nothing else on the screen has changed except the version number. The fix is checked automatically: the tests pull that line in the emulator mid-test, and a build without the fix is caught.

Download

File What it is
dramscope.crt The tool.
READ-ME-FIRST.txt Every colour, every mark on the map, what to do with a fault.
CHIP-CHART.pdf Print this. Which chip carries which bit, all five assemblies.
CHIP-CHART.txt The same chart as plain text.
g1probe.crt Will it run on your cartridge? Sweeps $DE02 and reports.

⚠ Set it up before you need it

Both devices boot straight into the cartridge with no menu — and both must be told to, on a machine that still works. Ultimate II+: Copy to Flash. Kung Fu Flash: it boots the last cartridge you selected. Either way the menu is a C64 program and needs working RAM.

No warranty; see LICENSE.


Support on Ko-fi

DRAMscope 1.8

Choose a tag to compare

@bitbarista bitbarista released this 14 Oct 19:07

The spinner turns clockwise again

1.7 introduced a new quarter-block spinner, and its release notes said it turned clockwise. It actually turned anticlockwise — the reverse of every version before it. 1.8 puts it back.

It is also centred now. It used to sit in the left half of the two-character status beside each test; the block now turns round the middle of the pair, directly over the .. and OK beneath it. Nothing else on the screen has changed.

Both are now checked automatically: the tests watch the spinner turn in the emulator, and a deliberately reversed build is caught.

Download

File What it is
dramscope.crt The tool.
READ-ME-FIRST.txt Every colour, every mark on the map, what to do with a fault.
CHIP-CHART.pdf Print this. Which chip carries which bit, all five assemblies.
CHIP-CHART.txt The same chart as plain text.
g1probe.crt Will it run on your cartridge? Sweeps $DE02 and reports.

⚠ Set it up before you need it

Both devices boot straight into the cartridge with no menu — and both must be told to, on a machine that still works. Ultimate II+: Copy to Flash. Kung Fu Flash: it boots the last cartridge you selected. Either way the menu is a C64 program and needs working RAM.

No warranty; see LICENSE.


Support on Ko-fi

DRAMscope 1.7

Choose a tag to compare

@bitbarista bitbarista released this 13 Oct 19:31

The title reads DRAMscope

"DRAM" in white, "scope" in cyan. The screen now uses the C64's lower/upper case character set; everything else reads exactly as before.

The phase spinner is now a quarter block turning clockwise. The old line spinner's diagonals do not exist in this character set.

A sprite left on by the previous program is switched off

Started straight after a demo, DRAMscope could show that program's sprite drawn over its own display. All eight sprites are now switched off at start-up.

Download

File What it is
dramscope.crt The tool.
READ-ME-FIRST.txt Every colour, every mark on the map, what to do with a fault.
CHIP-CHART.pdf Print this. Which chip carries which bit, all five assemblies.
CHIP-CHART.txt The same chart as plain text.
g1probe.crt Will it run on your cartridge? Sweeps $DE02 and reports.

⚠ Set it up before you need it

Both devices boot straight into the cartridge with no menu — and both must be told to, on a machine that still works. Ultimate II+: Copy to Flash. Kung Fu Flash: it boots the last cartridge you selected. Either way the menu is a C64 program and needs working RAM.

No warranty; see LICENSE.


Support on Ko-fi

DRAMscope 1.6

Choose a tag to compare

@bitbarista bitbarista released this 27 Sep 09:56

⚠ Two fixes that matter if you are testing a RAM replacement board.

A single bad byte is no longer diagnosed as a PLA fault

ALL 8 BITS BAD - NOT ONE CHIP. SEE PLA was reached whenever the failing-bit mask hit $FF — and one byte coming back completely wrong does that. The screen delivered a systemic diagnosis with BAD BYTES 1 on the line above it.

All eight bits set is not the same claim as every bit failing everywhere. There are now three distinct verdicts:

What failed What it says
1 byte, one bit LIKELY U21 — names the chip
1 byte, all eight bits 1 BYTE, ALL 8 BITS - NOT A CHIP.
many bytes, all eight bits ALL 8 BITS BAD - NOT ONE CHIP. SEE PLA

One byte is a glitch, not a chip and not the PLA — those fail across the array, not at a single address. Let the burn-in decide: a fault that never returns was a one-off; one that comes back to the same address is real.

NMI was never masked

SEI does not mask NMI, CIA2 drives the NMI line, and DRAMscope starts CIA2's timers free-running for the border flash — while $DD0D had never been written. ⚠ During the march the machine is in all-RAM mode, so the NMI vector at $FFFA is memory under test. An NMI there vectors through a march pattern into garbage and executes it, and a single corrupted byte is exactly the damage that survives.

Both CIA interrupt-control registers are now cleared at entry.

⚠ RESTORE still bypasses this and always will — it is wired straight to the CPU's NMI line, not through CIA2. Do not press RESTORE while a test is running.

Download

File What it is
dramscope.crt The tool.
READ-ME-FIRST.txt Every colour, every mark on the map, what to do with a fault.
CHIP-CHART.pdf Print this. Which chip carries which bit, all five assemblies.
CHIP-CHART.txt The same chart as plain text.
g1probe.crt Will it run on your cartridge? Sweeps $DE02 and reports.

⚠ Set it up before you need it

Both devices boot straight into the cartridge with no menu — and both must be told to, on a machine that still works. Ultimate II+: Copy to Flash. Kung Fu Flash: it boots the last cartridge you selected. Either way the menu is a C64 program and needs working RAM.

No warranty; see LICENSE.


Support on Ko-fi

DRAMscope 1.5

Choose a tag to compare

@bitbarista bitbarista released this 27 Sep 09:16

⚠ Fixes a display bug that affects every earlier version on real hardware.

What changed

$D016 was never initialised. Bit 3 of that register (CSEL) selects 40-column or 38-column display, and in 38-column mode the VIC blanks column 0 and column 39. On an ordinary boot the KERNAL sets it; DRAMscope boots in Ultimax with no KERNAL, so it held whatever it powered up with — and a real C64 was showing 38 columns while VICE showed 40. The symptom was the version number in the corner reading 1. with the last digit missing.

If you ran 1.4 or earlier on real hardware, the outermost column of the screen was not being displayed. Nothing was lost from the report itself — the map, the test list and the verdict all sit well inside — but this is worth updating for.

Also in this release, since 1.4 was stamped:

  • Counters are decimal. RUNS 1 BAD BYTES 0, not $0001. A $ on this screen now always means an address.
  • The chip row says LIKELY, not the part number as a fact — the bit is measured, the chip is a lookup.
  • A verdict that changes kind no longer leaves the previous one's tail behind.
  • Chip chart for all five board assemblies, each confirmed by two independent sources agreeing on all eight bits.

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. Two A4 pages: which chip carries which bit, and what to check before desoldering.
CHIP-CHART.txt The same chart as plain text.
g1probe.crt Will DRAMscope run on your cartridge? Sweeps $DE02 and reports.
dramscope_roml.bin / dramscope_romh.bin Raw 8 KB halves, for EasyFlash-compatible hardware.

Needs an Ultimate II+, Kung Fu Flash or other EasyFlash-capable cartridge.

⚠ Set it up before you need it

Both devices can boot straight into the cartridge with no menu — and both have to be told to, on a machine that still works.

  • Ultimate II+ — use Copy to Flash. The .crt is copied into the device own flash and loads on restart.
  • Kung Fu Flash — it boots the last cartridge you selected.

⚠ Either way the menu is a C64 program: it runs on the 6510 and draws using C64 RAM, so on a machine with no working RAM you cannot reach it. Arm the device while the machine is healthy — that is what makes DRAMscope available later, when it is not.

No warranty of any kind; see LICENSE.


DRAMscope is free and open source. If it finds a fault for you, or saves you from replacing a chip that was never the problem:

Support on Ko-fi

DRAMscope 1.4

Choose a tag to compare

@bitbarista bitbarista released this 26 Sep 23:22

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

  1. Put dramscope.crt on the cartridge and start it. It runs continuously until you reset, counting completed runs.
  2. ⚠ 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: $0000 and $0001 are the CPU's data-direction register and banking latch. $D000–$DFFF is 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.


DRAMscope is free and open source. If it finds a fault for you, or saves you from replacing a chip that was never the problem:

Support on Ko-fi