It's not utterly ruined or anything and still blinks lots of lights roughly in some sort of pattern, but it's not decoding instructions properly, a couple of LED wires for the front panel having broken loose of their solder joints. I've also remembered just how horrible it is to program that thing.
The biggest design flaw in the computer, and believe me there are many, is that in its current form I can't realistically take it apart to fix these ultimately minor issues. It's the equivalent of having to pull the whole engine out of your car just to change the oil, replace the wiper fluid or fix the brakes. Anything that's as cobbled together as this machine is will need a tune-up every one in a while so it'd be a shame to have to basically completely disassemble everything (short of pulling the chips off of the breadboards) every time it needed a tweak here and there.
I've fixed a couple of minor things before (or just ignored them), but this is the first time that the execution of the program is no longer working (i.e. instructions and data are not being properly handled), so something a little more deep-seated has gone wrong. I've looked the thing over as best as I can without tearing into it and the one thing I spotted did not resolve my issues. So it's time to talk pulling everything apart for the first time since it first went together!
In the coming months I'm going to detach each of the boards from one another, clean everything out, test all the chips and then reassemble everything presumably fixing any issues that have occurred. Great. Good plan John. We're done, right?
Unfortunately I have a move coming up (ugh) and don't want to have everything in pieces during that process, which has left me with some time to... reflect. In my reflection it has occurred to me that this may be a good time to make some improvements in addition to fixing the current problems.
At issue is what to improve and what to leave as-is. If I'm going to keep this thing running into the future, some of these really fall under the "critical" improvements category. Other stuff is cosmetic. Finally, I'm flirting with the idea of upgrading the hardware and maybe even adding an instruction or two to make the kino 74 a little more powerful.
On the "critical" list:
(1) Boards should be interconnected via ribbon cables to facilitate future repairs. Display also needs to be entirely removable.
(2) Much of the display wiring needs to be rerun and shielded to prevent future breakage of LED leads
(3) Diagnose and fix current execution issues
(1) I'm thinking about building a card-cage to hold the individual boards so that they can be pushed in and removed similar to how one does with RAM in a motherboard or a card in a PCI slot. This would cover number (1) on the "critical" list as well. You can see an example of a card cage at http://homebrewcpu.com/Pictures/cage_1.jpg.
(2) Build an actual enclosure. This is largely for appearance, but also to keep out dust and curious cats with whom I share a living space (who are also perhaps the source of the current issues the Kino 74 is experiencing, but who knows...). The front panel would then also actually become a front panel meaning I would move it to the front of whatever enclosure I built.
Possible (however somewhat unlikely) upgrades and improvements:
(1) Move everything off breadboards to more permanent perf board.
(2) Communication/programming via a modern computer over serial/usb.
(3) Default program dumped into RAM at startup via EEPROM or something.
(4) Adding JMP (jump) and STR (store) instructions.
(5) Easier programming (currently have to get the thing into Timing state 2, flip three separate switches two of which are on the back of the computer, then toggle in all addresses and instructions in binary)
The stuff that is definitely going to get done is everything on the "critical" list and likely the development of some sort of enclosure and card cage (even if not a true card cage but more like a fancy shelf for the breadboards). This stuff is the only way I can see the Kino 74 being able to continue functioning into the future, which is very important to me.
Everything else is an "if" and a "maybe".
A lot of these "ifs" and "maybes" are weirdly integrated with one another and arguments can be made in all directions. I DO want to avoid falling into a huge amount of "might as wells" (e.g. "while I've got the engine out, might as well replace the exhaust system and drive train...") but at the same time I definitely want to make the thing a little more usable and pretty.
Ultimately it boils down to two questions in my mind: (1) how much am I willing to change about my original design and (2) how feasible are the bigger changes (mainly monetarily-speaking)?
For instance moving everything off breadboards onto a set of standard-sized perf boards would make building or finding a card cage significantly easier as well as reduce the size and weight of the project. It would likely allow for the addition of the EEPROM and additional control circuitry needed to implement jump and store instructions and finally would also be easier to add ribbon cable connectors to the boards at that point and well as develop a system of communication between the Kino 74 and a modern-day laptop via some sort of serial communication.
However, the Kino 74 would be a different computer and while I'm not terribly attached to the current implementation, I think there's something to be said for keeping my first major electronics project kind of as-is. Also the cost, both monetary and time, would be significant when I instead could be putting that into a new much more capable digital electronics project. I can't really add enough circuitry to actually make the Kino 74 capable of doing much more than it currently does so would adding the jump and store instructions really be worth it? Finally, there is also the challenge of it being very difficult to find affordable wire-wrap boards meaning that soldering would likely be the cheapest/best options which... woo boy. That'd be a lot of soldering.
Paring down and only doing a few of the options doesn't really make a ton of sense to me either. If I'm going to pull all the chips off the boards and rewire the whole thing on perf boards, then it does make sense to consider expanding the Kino a bit to make programming a little more interesting and educational as well as make the usability improvements.
I sort of feel like it's a little bit all or nothing on the "improvements" list with the exception of adding the new instructions; that I could easily leave off. We'll see what I decide though.
There's a lot to think about and I don't have any great answers right now. I think I'll gain a lot more insight into how I'm feeling once I pull the boards apart and see how things are looking. I'll probably play around with laying things out on some different-sized perf boards and price out how much new parts would cost (mainly just sockets for all of the chips and possible upgrading the pairs of 4-bit register chips to single 8-bit register chips).
In the coming weeks I'm going to more carefully evaluate and price out the stuff on the "critical" list (mainly just adding all of the ribbon cables and connectors) and see where we are. I may go ahead and start pulling things apart because it's somewhat hard to get a sense of just how the boards are interconnected (my schematics don't really exactly tell the details of how I wired everything).
I do seem to remember those breadboards being preeetty full without a whole room for new circuitry so it could be that to do anything will require a fair bit of redesign. Then we're really down the rabbit hole.
Well, I already kind of am anyways with this damn project.