Commodore 64

KRV Switcher

Support our site! Visit our favorite PCB manufacturer, $2 JLCPCB!

Abstract:

The Commodore 64 KRV Switcher is a keyboard wedge that senses keystrokes on the C64 and allows a combination of the RESTORE key + a Number key to switch between up to eight different Kernal ROM images, or to switch the video mode between NTSC and PAL when used in combination with the VIC-II² Card. It uses an Arduino Nano to monitor and control the switching of the settings.

Background

After working with Perifractic on development of the VIC-II² Card, it became apparent that some users would NOT want to have a DPDT switch either mounted to the case or dangling out a spare port of the C64, so a software switching option was explored. After reviewing Sven Petersen's keyboard switcher and seeing the C64 RESET and EXROM RESET routines from Adrian Black, I decided to make my own solution that would allow not only switching of the VIC-II² Card, but also incorporate Kernal ROM switching. The board would be a two-part board, connected with break-away tabs.

Status

Developed a new release (1.2) of the KRV switcher code for Arduino Nano that removes the "guardrails" for bad KERNAL images... make sure they work before you use them, otherwise you might have to manually reset the EPROM setting.

I'm thinking I MIGHT have an alternate way of dealing with it, maybe by passively counting down ten "dead scan" states, separated by power-cycles, and then defaulting back to the known good stock KERNAL in slot 1?

Installation

Below is a rough installation outline. Detailed instructions to follow later:

  1. Build the KRV Switcher boards
    • Build the keyboard component
    • Build the Kernal ROM switcher component
  2. Program the Arduino Nano
  3. Install the two RESET headers on the C64
    • Install the C64 RESET header
      • The C64 RESET header should be a standard DuPont (square), right-angle header, installed in the via just below the 3rd pad from the right on the user port (yellow wire in the upper picture to the left)
    • Install the EXROM RESET header
      • For the ASSY 250407 motherboards, the C64 RESET header should be a standard DuPont (square), right-angle header, installed just to the left of the RF modulator, to the right of the PLA chip in the via shown (white wire in the lower picture to the left)
  4. Connect everything
    • Install the keyboard components
      • Unplug the keyboard from the C64 motherboard, then plug the keyboard component into the C64 keyboard header, and plug the keyboard into the keyboard component
    • Install the Kernal ROM component
      • Remove the existing Kernal ROM and plug the Kernal ROM component into the Kernal ROM socket
    • Attach the RESET lines
      • Attach the C64 reset line to the upper left header on the keyboard component, and attach the EXROM reset line to the pin just to the right of that one.
    • Attach the Kernal select lines
      • Run a 3-wire female-to-female DuPont jumper from the 3-pin header at the upper right of the keyboard component; the upper-most pin on the keyboard component header should connect to the right-most pin on the Kernal ROM component
    • Attach the VIC-II² select lines
      • Run a 2-wire female-to female DuPont jumper from the 2-pin header at the upper right of the keyboard component; the bottom-most pin on the keyboard component header should connect to the P-En pin on the VIC-II² Card (4th from bottom); this will also connect the upper-most pin on the keyboard component header to the N-En pin on the VIC-II² Card (5th from bottom).