Friday, 30 April 2021

Further work on a Microbee 1248-6 mainboard

This is the definition of a long-term project. I have a bare Microbee 1248-6 mainboard. It's one of the later revisions of this board. Being blank, it's a good candidate for replication.

Some years ago I created a schematic for it in Protel, and made a PCB. The PCB wasn't particularly accurate, as I mainly just threw the autorouter at it. So (probably) functional, but not particularly exciting.

Success at getting KiCad to do beautiful curved traces reignited the spark of that particular project, so I pulled out the files and had another look.

I imaged the board at 600dpi using a scanner. Then cropped a section of that and fed it into the gimp. I played around with levels to increase the contrast between tracks and boards.

Then I put the result of that into the KiCad bmp to component converter. This tool is designed for making fancy logos, and converts a bitmap image into a bunch of vectors that can be used for gerber plotting. The file goes on the silkscreens. I have seen a board made by one of the guys at the microbee software preervation project that used this technique to create gerbers directly, but there were issues with getting board houses to accept this.

So now the next step. Trace over the image in KiCad using proper components, tracks (15 mil) and vias. It takes a while, but it's enjoyable bead therapy work. There's no need to accurately follow the original. Indeed around corners it's better to leave the round the corners plug in to do it neatly.

For the bottom layer, just process the scan the same way, then convert it to a silkscreen component, and flip it when you place it.

This makes a real board, that can be DRC checked against a netlist (when I get around to putting the schematic into KiCad), to ensure that it's correct. Finally, run the board through the round the tracks plugin to smooth things out and create absolutely stunning artwork, even better than that used to make these computers in the first place.

Edit: After a few days work, it's looking pretty cool:

And with the soldermask obscuring all the pretty curvy traces:

Finally, I did the schematic entry in KiCAD. This meant that the PCB now had net information, which then allowed me to do a meaningful DRC. There were _a lot_ of problems. Firstly, the original board has some unused gates, with floating (=oscillating if CMOS logic is used) inputs. There was also duplicated designators on the board (C33), some bits just not connected per the schematic - notably some of the clamp diodes around the serial port don't actually clamp, plus the emitter of TR4 is not connected to anything on the PCB.

Anyway, I fixed the obvious things, and mainly made the schematic agree with the PCB where it didn't matter (swapped designators, swapped pins).

So here's the final glorious thing, in a form that I can get one made. 15 thou tracks and 9 thou spaces (I know, very assymetrical). Totally ready to build.

Of course now it's digitised, it's trivial to change. Like for example replacing all the keyswitches with easy to buy Cherry ones, plus replacing the unobtanium IC16 82S123 PROM with an easily available GAL16V8...

Saturday, 24 April 2021

Microbee SuperPAK - An EPROM Expansion Board

Quite a while ago I developed hardware for a compact flash coreboard for my Microbee. This added IDE based compact flash storage, allowing massive disk storage under CP/M. Others helped out with the BIOS software. It never got to the point where I was completely happy with it. Compact Flash cards are finicky things, and the combination of a 5V system and very slow timing conspired to make things less than 100% reliable. Being a read/write thing, every time something crashed it would corrupt the directory structure and necessitate reformatting the card. This was (and is) frustrating.

I realised that the reason I wanted all the storage was just so I could have a straightforward way of loading software on the Bee that doesn't necessitate waiting for tapes to load. I've got a couple of dozen games and suchforth that I like to play every now and again, and frustrations in getting it going mean I don't play with the gear as much as I'd like.

So back in the day I had a "ROMPAK" for my bee, which was a little expansion board that could take eight 2764 EPROMS, for a whopping 64K of storage. By writing to port 0A, you could select one of the eight ROMs, and it'd appear at C000 in the memory map. We used it to allow us to have Wordbee, EDASM and the Mytek wordprocessor in the same bee without having to swap ROMs, and it was neat. I envisaged loading Emu Joust into a couple of EPROMs and writing a short routine to copy it into RAM at the corect location and then jump to it.

So this board allows you to do that, plus maybe store some other games and bits of software. I've allowed all 256 possible PAK ROM positions, using an 8-bit latch and four 27C040 EPROMs. These are current production parts that go for the princely sum of $8 or so ea, as long as you don't mind them in a OTP flavour. You can get Flash versions too.

The idea is that the first PAK location holds software with a menu, that allows you to choose what you want to run, then copy that into RAM (or leave it bee in EPROM if it's a PAK thing), and execute it. Sort of like the PC85 but on steroids. The software to do that should be a doddle, or at least much easier than writing stuff to run CP/M. Even better, there's no FPGAs and no CPLDs to worry about. all the decode is done with bog-basic 74 series parts.

Edit: I just found the "round the corners" and "teardrop" plugins for KiCad, which make boards look like they were layed out using bishop graphics and tape. I reckon it looks so nice that it's worth leaving the solder mask off and going for an ENIG finish, ala expensive Hewlett Packard boards of the 1980s.