System/1 Build Log

Home | Build Log

An ongoing chronology of System/1's construction, and any other related musings.

19th October, 2014 - Constructing and testing the flags register

This entry was backdated.

We left the flags register and condition evaluation logic sitting on the breadboard last week, and since it passes all the tests I can think of throwing at it I've spent the last few evenings moving it to a finished board to join the others.

I also took the opportunity to sneak an extra XOR in, since I had one spare; this one will be used to provide an override for the INT_CTX signal, so that code running in an interrupt context can possibly (if I can figure out how to represent it in the instruction set) have access to the 'user' context flags. That might allow some form of context switching at some point, although I'm not certain — better to build that override in now, though, than to have to rework the board later to add it.

Once built, I hooked the board up to the usual test rig and ran the same series of tests against it that I'd been running against the breadboarded version. Unfortunately it doesn't seem to work particularly well; sometimes it's fine, and other times it appears to be more of a single-bit random number generator. Harumph!

After much head-scratching and poking and chasing of signals around the board, the culprit becomes apparent — a broken connection to the A/B selection input on the 74HC157 multiplexer that switches between the user and interrupt flags for the conditional evaluation stage. That's a broken connection as in the wire has physically snapped off the pin, not just a dodgy solder joint; my guess is I scrubbed it a bit too vigorously when cleaning flux residues off the finished board. A little blue bodge wire between that pin and an appropriate twin elsewhere on the board gets it running reliably, although I do follow that up with an extended session of peering at connections through a loupe whilst tugging them gently with tweezers, just in case...

(It would be nice to skip the flux cleaning step entirely on future boards, but they do end up extremely sticky — some of the more complex boards are probably going to be a nightmare, in fact. Cosmetically it's a bit of a toss-up; a board covered in flux residue isn't exactly pretty, but after cleaning it can leave a thin white film that doesn't quite come off the solder joints. Harumph, redux!)