I've toyed with this decision a few times in the early days of the project: through-hole components, or surface mount? On the one hand, through-hole components come easier to me, I find routing through-hole boards more natural (pure habit), and well, they look more traditional.
cpus
Front Panel Controller Board
I've finally managed to route the front panel controller board. It took a while longer because (shock!) I did pulled yet another 180° turn on the bus layout. I located a cheap(-ish) source for the wire-wrap female headers, which means I can go back to stacking the processor boards together without needing two separate DIN-41662 buses. Instead, the required signals (and only the required signals) travel from board to board via the female headers. This comes at a small cost to board estate, but simplifies a lot of other things, including the processor routing.
First Revision of the Front Panel Guide
More front panel work has been done. There's yet another revision of the front panel artwork and yet another revision of the front panel schematics. I've split the front panel schematics into the two obvious components: one is the front panel controller card that connects to the system bus, and the other is a huge board with all the LEDs, their drivers and their connectors, as well as a the switches, their debounce circuitry, and a tiny amount of logic that only pertains to the front panel itself.
Front Panel Schematic
After far too long, I managed to prepare a first version of the front panel schematic, and it turned out to be a monstrosity, sprawling over seven sheets of A3. Most of the estate is taken by LEDs, current limiting resistors and buffers. There are over 50 ICs on the board, and there's no chance I can route this on the Hobbyist version of Eagle. Thankfully, the design can really be split up into a number of components.
Some examples of CFT Assembly
I finally found some time to make a GeSHI language file for CFT Assembly, and I can share some CFT code here. You might want to have a look at the CFT Programming Guide (on the main CFT page) for an explanation of CFT machine code and Assembly. If you've worked with PDP-8 code, this will look vaguely familiar.
Front Panel Draft
Major Register Board Routed
After restructuring half the project to add an overflow flag and all the necessary support for it, I got back to routing. I took a much more liberal, placement-centric approach to laying out and routing, and this changed some of the wiring on the buffers to make sure traces don't cross. It makes perfect sense in retrospect, of course, but if you pinswap enough, the number of vias on the board can be reduced a lot. As a result, you get more PCB estate to play with. The result is an elegant looking, clean Major Register board.
Whoops! Major Revision
In implementing 32-bit division, it dawned on me that the design is pretty klunky in a number of unforeseen and annoying ways. Some can be fixed by simply adjusting the microcode, but it looks like a major revision is necessary for two reasons. One, I need an Overflow flag. Yes, at this late stage I realised it would be a lot of help to have that available in hardware. CFT has precious few facilities for two's complement arithmetic as it is. Two, I need some new OP1/OP2 instructions to help with some aspects of arithmetic.
Emulator Back in Working Order
After a bit of a hiatus while the underlying CFT hardware underwent some respecification, the CFT emulator, cftemu, is back in working order. New features: added support for different machine configurations (currently only different sizes/locations of the ROM, but this will change). The ALU is still not ROM-based, but I hope to change this soon.
Control Unit rev D Routed
I think this took me around a man-week of routing, but it's finally done. Sort of. The Control Unit is routed. In order to make the traces fit, I've had to remove most of the pull-up resistors (they'll go on the clock board), the read unit decoder (it'll also go to the clock board) and the ALU unary/binary op decoder (which will go where it belongs, on the ALU board). The OPIF signals are now local to the control unit.
