Jump to content

Jump-less Dual-Kernal Switcher

From RetroTechCollection
Jump-less Dual-Kernal Switcher
Caption A switch-less SKS64 board installed inside an early Assy 250407 C64 (EPROM not fitted)
Type Internal, switch-less multi-KERNAL ROM adapter
Designer Community-developed (original concept & firmware by bwack; later boards by PCBWay Open Source Project, Byte-Munchers, Retrowhiz et al.)
Manufacturer Unknown
First released 2018 (v0.9 proof-of-concept)
Latest revision SKS64 v1.1 / Switchless-27C010 PCB (2022)
Operating voltage +5 V DC (from C64 mainboard)
Layers / PCB
Compatibility Commodore 64 / 64C / SX-64 ‹long- & short-boards›
Features
Model No.

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]
  1. 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 …).
  2. Flash the ATtiny13A with ``sks13.hex`` via ISP (AVR-ISP mkII, USBasp, etc.).
  3. Solder in sockets and logic ICs; fit 330 Ω LED-sense resistor if you wish to flash the front-panel LED.
  4. 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]