Jump-less Dual-Kernal Switcher
The Jump-less Dual-Kernal Switcher (often called the switch-less or jumper-less KERNAL board) is an open-hardware add-on that lets a Commodore 64 toggle between two —or up to sixteen—KERNAL ROM images without any external toggle-switch, jumper wire, or case mod. Selection is performed entirely from the keyboard or by a special reset-pulse sequence, leaving the computer’s case stock-looking and the user free from “which switch is which?” confusion.
Why replace / switch KERNALs?
[edit | edit source]- Run a fast-loading DOS such as JiffyDOS while still retaining the stock Commodore KERNAL for compatibility.
- Alternate between region ROMs (PAL vs NTSC) or diagnostic ROMs (Dead-Test, Diag64).
- Test self-built or patched KERNALs without repeatedly desoldering chips.
Design overview
[edit | edit source]| Major functional blocks (SKS64 reference design) | ||
|---|---|---|
| EPROM / Flash 27C256 (4 × 8 KB) 27C512 (8 × 8 KB) 27C010 (16 × 8 KB) |
ATtiny13A μC Decodes reset / RESTORE pulses, latches two address bits to pick the bank |
74xx logic HCT08 & HCT02 gate ROM CS and isolate the bus during bank switch |
| The board plugs into the KERNAL socket (U4 on long-boards, U4/U32 on 250469) and requires no cuts or flying leads. | ||
The micro-controller runs at 9.6 MHz (internal RC) and samples ~60 Hz VSYNC from the VIC-II to time-out key-presses reliably over PAL & NTSC. Two GPIO lines drive A15/A16 of the EPROM through 10 k pull-ups, giving up to 4/8/16 selectable images depending on device size.
Switch-less selection methods
[edit | edit source]- Short double-reset – press the C64 reset button twice within < 0.9 s.
- Long RESTORE hold – hold the RESTORE key ≥ 1 s while tapping RUN/STOP.
The μC counts either event and advances an internal bank counter; the chosen bank number is flashed back on the C64 power LED (1-long, 2-long, …). A cold-reset is then issued.
Board variants
[edit | edit source]| PCB / Project | EPROM | Max banks | Notes |
|---|---|---|---|
| SKS64 v1.1 | 27C256/512/010 | 4-16 | Most popular; plated-through-hole; Gerbers on GitHub. |
| Bwack 27C256 adapter | 27C256 | 4 | Original proof-of-concept; SMD ATtiny13A; published 2018. |
| Switchless-27C020 | 27C020 | 32 | Experimental; needs extra 74HC139 for A17 gating. |
| SaRuMan-64 KS | 29F040 flash | 64 | Adds USB-ASP header for in-system reflashing. |
All share the same firmware with a single compile-time constant (``#define BANKS``).
Compatibility
[edit | edit source]- Long-boards: 326298, 250407, 250425, 250466 – direct plug-in.
- Short-board 250469-(xx): requires /HIRAM jumper wired to A14 because the 16 KB ROM is mapped as a single chip; most switcher PCBs include a solder-bridge.
- SX-64 & VIC-20 CR: electrically identical 2364 pinout, confirmed working with minor socket shims.
No effect on cartridges—the KERNAL is banked only after reset, so memory configuration is stable during normal operation.
Building & flashing
[edit | edit source]- Program the EPROM with your chosen images in contiguous 8 KB blocks. (Popular layout: C= KERNAL bank 0, JiffyDOS bank 1, Diagnostic bank 2, SpeedDOS bank 3 …).
- Flash the ATtiny13A with ``sks13.hex`` via ISP (AVR-ISP mkII, USBasp, etc.).
- Solder in sockets and logic ICs; fit 330 Ω LED-sense resistor if you wish to flash the front-panel LED.
- Plug the assembly into U4, minding orientation; no other wiring needed on long-boards.
Using the switcher
[edit | edit source]| Action | Key / button sequence | Result |
|---|---|---|
| Next bank | Double-tap reset | Cycles 0 → 1 → 2… |
| Previous bank | Hold RESTORE ≥1 s, then tap RUN/STOP | Cycles backwards (firmware ≥1.1) |
| Identify bank | Hold RESTORE ≥3 s | LED blinks current bank count |
| Force cold-boot | Hold RESTORE while power-on | Bypasses autoboot carts |
Advantages
[edit | edit source]- No holes or toggles – perfect for collector-grade cases.
- One-hand operation – useful when the rear panel is obstructed.
- Multiple ROM sizes supported – simply fit a larger EPROM for more images.
- Works in parallel with cartridge port DOS accelerators (e.g., Kung Fu Flash).
Limitations
[edit | edit source]- Cannot change bank while code is executing; must reset.
- Requires stable +5 V (excessive ripple may brown-out the ATtiny).
- Firmware presently uses a fixed LED blink protocol—may clash with aftermarket LED dimmers.
See also
[edit | edit source]- JiffyDOS Kernal Upgrade – the most common alternative ROM paired with this adapter
- C64 Saver – advisable PSU-protector when fitting any internal mod