Close

Going All-In (-One)

A project log for LittleSixteen - Commodore 16 Mainboard

Let's do justice to this mistreated machine, at last!

sukkoperaSukkoPera 12/22/2021 at 09:460 Comments

The C16 has 2 ROM chips, both 16 kB in size: one contains the KERNAL (characters included) while the other one contains the BASIC interpreter. The original ROMs draw quite some power, I'm told, so finding a way to replace them sounds like a good idea. Luckily the original pinout is directly compatible with the Winbond W27C512 EEPROMs I use in a lot of my projects and these consume way less power, being modern CMOS parts (which could create a lot of problems when interfaced with the TTL logic we use, but it seems to work well in practice), so things look pretty straightfoward.

Although, the W27C512 is a 64 kB EEPROM and we don't want to waste 75% of its space, do we? I started thinking about what to do with the extra space and having multiple selectable KERNALs didn't look particularly interesting to me (plus you can easily do it with just a little help anyway). I rather started to think how hard it would be to keep the KERNAL and BASIC on a single EEPROM and realized a single AND gate would do the trick. But then I would need to add a 7408 chip for that and I would be left with 3 unused AND gates which is just another shame (yes, I could do that with a couple of diodes but bear with me) so I started looking into ways to put those to some use.

The Plus/4 is nothing more than a C16 with 64 kB of RAM (which we already support), a User/RS-232 Port (not compatible with the User Port of the C64 though) and some built-in desktop "productivity" software (named 3-Plus-1) contained in two additional 16 kB ROMs, dubbed Function ROMs. The Enable signals for these ROMs are also available in a C16, they are just unconnected but we had already marked them in the V1 schematics.

So it appears we have all the signals, the right amount of free space in our EEPROM and the exact number of spare AND gates to get our LittleSixteen even closer to a Plus/4:

If I got it right, this circuit should "bank in" the correct section of our all-in-one EEPROM whenever the C16 wants to access the KERNAL, BASIC, Function High or Function Low ROM.

The AND gate I used is a very common 74LS08 which I placed just above the CPU, labeled U90. Of course I wanted to leave the possibility of using the original ROMs, which forced me to add a few configuration jumpers. I chose to go for solder jumpers, as you're not going to change them every other day. If you want to use the original ROMs, you can avoid mounting U90 altogether:

Yeah, please read U90 where you see U20...

While the 3-Plus-1 suite is not particularly well-regarded and might make this mod look not exactly great, I think other software can be used as function ROMs. For instance, I will surely try to put Commodore's implementation of the Logo programming language in there, which would make things much more interesting.

Like it or not, but LittleSixteen is now only one step away from the mighty Plus/4...

Discussions