SuperKernal
For Commdore 64

[WiFi / 24 pin]

Project scope and plan

A SuperKernal? For the Commodore 64? What´s wrong with the good old Kernal?

There is nothing wrong with the original Commodore 64 Kernal for normal operation. But if you plan to use a real 1541 floppy drive, or add non-custom features to you C64, you should consider changing the original Kernal to a 3rd party ROM. And if you are planning on using speed loaders such as JiffyDOS, DolhinDOS and ProfessionalDOS you have to change the Kernal both in the C64 and the 1541 floppy drive.

The goal of this project is to assemble and configure a 24-pin SuperKernal that will hold several speed loader ROMs. The machine that will have the SuperKernal installed is a C64C with serial 443002c.

Milestones

- Assemble 24-pin SuperKernal (with WiFI) module
- Replace Kernal IC in C64 with SuperKernal
- Configure SuperKernal with floppy speeder ROMs
- Verify operation by testing

Assembly

The SuperKernal is mostly assembled already, but the assembly needs to be completed before it can be used. The main reason for this is that the SuperKernal can be used to replace both 24 and 28 pin Kernal ROMs. The former is typically used in the old C64 breadbins (aka the "longboards") and the latter is used in newer C64C/G models (aka the "shortboards").

Since this SuperKernal will be used in a C64C [Assy 250466 the "24-pin configuration" will be used. The assembly of the module will follow the steps described in the SuperKernal assembly- and user instructions.

There are five parts in total for the whole SuperKernal assembly:

  • 1 x SuperKernal PCBA

  • 1 x ESP01S WiFi PCBA

  • 1 x WLAN connector

  • 2 x 14 pin header


Pictures below of the parts (front- and back view).

The parts are assembled very similar to the 28-pin SuperKernal module assembled previously. The only difference are:

  • The pin headers are cut to only support 12-pins each side

  • The two jumpers on the front side of the PCB are soldered differently and the jumper on the back is soldered


Below are two pictures showing the front and back of the 24-pin PCB.

Replacing the Kernal ROM

As previously mentioned this project will install the SuperKernal in a C64C with Assy 250466 (serial number 443002c. This assy use a 24-pin ROM Kernal (MOS 901227-03) located at U4.

The IC is desoldered without any damage to traces or pads. See picture below.

The SuperKernal module (with the WiFi module) is inserted in a 24 dual wipe socket.

Configuring the SuperKernal -
for floppy speeders

Note: The following text and pictures are from the first SuperKernal installation. But the installation is exactly the same on this 24-pin version.

The main purpose for installing the SuperKernal is to have multiple ROMs for multiple floppy speed loaders (e.g. DolphinDOS, Professional DOS, Prologic DOS etc.) in the C64 to be used in adjunction to a 1541-II equipped with MeGALoDOS transferring data on the user port in contrast to serial speeders (more about this in another article).

A detailed description of how to configure the SuperKernal can be found in the SuperKernal assembly- and user instructions.

Basic configuration

At first power-on the screen shown below is displayed.

As can be seen from the picture above there are 36 available slots for different Kernals which there are currently only two "really" used: the C64 original Kernal and JiffyDOS (serial interface floppy speed loader).

Since the plan is to use MeGALoDOS with both USER- and SERIAL port floppy speed loaders a range of ROMs are installed to the SuperKernal. This operation is very straightforward. A D64 disk image is prepared with a range of different ROMS (both for USER- and SERIAL port floppy speeders), the disk is mounted to the C64C using an Ultimate II+ cartridge (drive 8) and 15 ROMs are uploaded to the SuperKernal one-by-one.

Slot 0-F are used for this purpose (note that slot 0 is reserved for the original C64 Kernal).

A quick test with both a USER PORT and SERIAL PORT ROM seems to work ok (Professional DOS and JiffyDOS respectively).

Advanced configuration

There are two other areas which are configured:

  • WiFi settings

  • PLA Timing


To configure the WiFi settings the module needs to be enabled first. This is done by setting the GPIO block A to "WiFi". With this enabled the WiFi module is configured by registering the SSID and password for the local WLAN. See pictures below. Please note that I do not have access to a FTP server at the moment, but the WiFI connection seems to be working fine.

It is also possible to adjust a parameter named PLA TIMING. From the user manual the following is said about this parameter:

"PLA TIMING: The SuperKernal automatically tries to achieve the best compatibility for all boards. Unfortunately, due to component tolerances of these over 30 years old computers, there is no 100% guarantee that the SuperKernal will run perfectly on every board. Therefore, you can try to adjust the timing manually for some boards. Old C64 computers of the first series run almost all on SLOW, SLOW and FAST and new computers like the C64G(C64II) almost exclusively on FAST. If you play around with this menu item you might theoretically end up with a crash when starting Kernals or programs. In an emergency you can always return to the SuperKernal menu with several resets + holding the "S" key."

Since this is a C64C, but with the long-board, the PLA timing is set to "SLOW".

Testing

To test if the SuperKernal works as expected in the C64C the following steps are performed:

  • Basic testing with Diagnostic cartridge (wtih harness)


Basic testing

Below are pictures from the testing with the Diagnostics cartridge. No faults are detected in these. Note that the "Original C64 Kernal" is used in the SuperKernal during testing. Otherwise the Diagnostic Cartridge will show "Kernal ROM: BAD".

Banner picture credits: Frank