The idea was simple: replace all the NMOS based ROM ICs with a single CMOS based one, while not losing the ability to run DolphinDOS (or another custom KERNAL). Combine this idea with some of my traits, and the following set of objectives comes up:
  • drop-in type, single PCB adapter replacing all three ROM chips
  • as little glue logic as possible (glue chips need some mA(s) too)
  • no air-wires aka fly-wires - it has to “just work”, without wire-web around it
And since the combination of two KERNAL images, one BASIC image and one CHAROM image leaves enough room in the '256 ROM space to fit exactly one more character set, why not to allow the 64 to enjoy the same what C128 enjoys for so long - another character set and an “ASCII/DIN” switch? The last one was of course a trade-off vs. the second objective above, but I eventually decided that wasted ROM bits make me feel worse than an additional LS chip on board ;-)

With all the above in mind I went to the (IPS based) drawing board and designed the first version. Originally it was meant only for the “wide” boards with 0.8” ROM ICs placement raster (ASSY# 250407, 250425, 250441 (has anyone ever really seen this one??), 250466). I tested it in my 64 and it worked well. But it couldn’t be used in other boards’ variants. So I created a special layout version for 0.9” raster (like the SX-64 CPU board) but then there were still main boards with 1” raster (ASSY# 326298 and KU14194HB) and there were still “narrow” boards (ASSY # 250469 REV. A, REV.3, REV. 4 and REV. B), which required very much different approach due to their already combined BASIC and KERNAL ROMs in one chip. I thought “no.. that’s too many different layouts!”.

There was also one more thing. As I mentioned before, the latest main boards not only have two ROM chips instead of three but as a result of this, they also have the chips' selection signals combined. This effectively prevented any direct use of the original design without adding extra fly-wires! I discussed with Gerrit about how to approach the newer “narrow” boards and we brainstormed various options for some time but no solution seemed to be perfect. To be completely frank, none looked even “good enough”. It seemed like the “narrow” boards (two ROM ICs and two chip select lines combined with an OR gate) would require even more components on the daughter PCB than the “wide”/SX versions, where three chips were to be replaced - sic! I even designed the circuit for the newer main boards but I admit that I didn’t really like it and probably because of that I never went to the PCB design stage with it. As it turned later out - holding my horses paid off.

Some time passed and Gerrit returned to the subject shortly before 2013 Christmas break. He’s got an ingenious, “out-of-the-box” type of idea for approaching the four latest C-64 boards. By looking at various truth tables of commonly available logic ICs he realised how to transform a “Dual 4-Input Multiplexer with common select inputs” into a non-normally existent Dual, Independent 2-Input Multiplexer in a single (74153) chip. This one thing made it possible to design the circuit in a clean and elegant way. Only two logic ICs, the same number as with my previous approach (one slightly larger) and no additional, discrete semiconductors. Moreover all switches operate on static signals’ lines, meaning you can have practically arbitrary length of the cables connecting them to the PCB and you don’t need to take any particular care about where to route the wires. It was brilliant! I admired the idea so much that I quickly drew the schematic:

The schematic (2-ROM narrow boards):

epromel_256_narrow_schematics_rev1b_thumb

and laid the PCB out:

The PCB (2-ROM narrow boards):

epromel_256_narrow_pcb_rev1a_thumb


And while being at it I immediately thought of adapting the same, inspired idea to the three-ROM-chip versions of the main PCB, adding the ability use both 27C256 and 27C512 (with two independent ROM sets), and a jumper provision to select what EPROM lines are driven (either both CS (CE) and OE or OE alone - if that ever happens to be necessary for some very old’n slow EPROM chips) on my way:

The schematic (3-ROM wide/SX-64 boards):

epromel_256_wide_schematics_rev2a_thumb

And in order not to create three or more layouts for all the main boards variants with three ROMs, I laid out one PCB, which fits all of the 3-ROM versions of the C-64 boards as well as the CPU board of the SX-64.

The PCB (3-ROM wide/SX-64 boards):

epromel_256_512_wide_pcb_rev2a_thumb



Notes:

  1. Default CHAROM/KERNAL images are active when no jumpers are attached to the CHAROM/KERNAL pinheads or attached switches are in their “open” position.
  2. Assembled PCB is to be press-fit placed in the KERNAL ROM socket with two single-pins installed in 1 2 3 location, tapping on pins 20 of BASIC and CHAROM IC’s sockets respectively. Please use correct pair of pins with the same number.
  3. If your original ROMs were not socketed, you may decide to solder the above PCB in. I have to say, however, that I find little to no excuse for not soldering good sockets in place of the original chips, once those are removed.
  4. ROM content is to be laid out as shown here (supplied GERBER files have this map in the silk-screen too).
  5. If you plan to use the version for 3-ROM boards you can use either ‘256 or ‘512 type of EPROM. If you program the ‘512 type you can program two independent sets of ROMs with for example additional KERNALs or additional CHARSETs, etc. The ROMSET pinhead will allow switching between both sets.
  6. As always - if you want a ready made one, there is a chance I may still have some. Check the appropriate section of my For Sale pages or contact me and ask.
Download:
For Sale:
Bitcoin
comments powered by Disqus