Any Apple-1 builder not using complete, 100% pre-tested and burned-in IC kits more often than not runs into a roadblock and gets stuck in the following dire situation: the newly built Apple-1 just refuses to work. The standard firmware known as WOZMON or "hexmon" crashes all to often or does not work at all, so there is no chance to enter any diagnostic programs, such as Mike Willegal's memtest. A chicken-and-egg problem. Without being able to enter and run diagnostic programs or to peek and poke around in the memory, the chances are slim to debug the machine and make it work. Here is a typical example of the agony, pain and suffering of one builder who ran into this malaise, and there are many other victims of this Apple-1 curse:
The root cause of the problem is that the WOZMON, as brilliant as its programming may be, depends on a fully functional DRAM in the machine, as it uses several zero page locations for its own housekeeping, it uses the stack page for JSR/RTS, and it uses an input buffer beginning at 0x200 to take the user commands which then are parsed later.
Imagine what happens if the RAM does not work well enough yet: the housekeeping bytes in the zero page lie, the stack does not remember the proper return address, and the input buffer turns all the user inputs into gibberish the WOZMON could not possibly understand, even if it would not just crash due to the wrong return adresses coming off the yet dysfunctional stack !
So far there has been no remedy for this disease, other than trial and error, changing ICs, and poking around with an oscilloscope probe, which is time consuming and frustrating, and often leads to nowhere, and so all too many Apple-1 builds ended (and still end) up as non-functional wall hangers, or worse: I was so frustrated with my first build I really was tempted to take it to Dragonman's and blast it to smithereens with 12ga 00-Buckshot out of my Mossberg 500. Still, logic and reason prevailed. I decided to seek the root causes of that curse and exorcise all the demons from the Apple-1. The results and remedies I found you can read elsewhere, right here on this forum !
Here is another one of my proven remedies: a novel diagnostic PROM set that plugs into the A1/A2 sockets and it includes four spartanic, but powerful tools, neither of which depends on any RAM:
Tool #1: Terminal Section Test: all characters shown in all possible screen positions, allows to weed out bad PMOS shift registers (2519, 2504, 1404) and various bad TTLs.
Tool #2: RAM Test with exact syndrome messages, used to weed out bad DRAM ICs and to adjust the /CAS timing resistor without need of an oscilloscope. A multimeter able to measure resistance is good enough, but even that humble instrument is not needed.
Tool #3: A TV Typewriter. You can type anything you want and observe it on the screen. Sounds really silly, but is very useful to test the keyboard and associated circuitry. And as a bonus, it gives you the look & feel of why a "TV TYPEWRITER" was so exciting back in the early 1970s, in the era before microprocessors became affordable for the masses. (Yes, people built TV TYPEWRITERs having no microprocessor, just for typing and seeing, and it was like magic !)
Tool #4: A hex monitor. You can peek and poke around in the RAM, enter and start user diagnostic programs, and it won't crash even if the memory does not work yet. It even works with all DRAM sockets empty. Of course, with no RAM, you obviously can't enter programs, just examine what random garbage is there in that memory "hole". This hex monitor is crashproof, as it uses no RAM for its own housekeeping. So it is a valuable tool for those cases where the RAM almost works, but not good enough yet to use the WOZMON. I had many cases of marginally working RAM where this monitor allowed me to load and run small diagnostics to further probe what's going wrong, such as my (in)famous "MAdHammer" program, among others.
This is how these Diagnostic PROMs look installed in an Apple-1:
The red wire goes to the PCB backside and is connected to CPU pin #17, which is A8, because this toolkit is 512 bytes in size.
And this, alas, is the problem. These PROMs are heinously expensive, $15.38 each plus shipping plus credit card fees from the IC broker. Then I need to program them, put them into a jewel box complete with ESD foam (you would not believe how expensive that foam has become, if is genuine, beware of the Chinese fraudsters who sell cheap black "ESD" foam on Ebay that is not conductive at all, and causes it own ESD damage, so weasel-wording lawyers could construe this fraud not even being a fraud, because "ESD" was advertised and "ESD" is what you got ! --- I only got burned once by this fraud. Buyer beware !) After closing the box with the PROMs I need to put the box into a bubble mailer and pay the postage. And then comes Ebay with their usurious fees. Do the math: there is absolutely no way I could sell these kits for less than $39.95, if it ships to the USA. To Europe, it's $14.50 more. Terrible. We are now in an era where shipping costs may exceed the value of the items shipped. Not the case with these PROMs, but try to ship a transformer ! Or a parcel with six jars of homemade jam !
Is it worth my time and effort to even write a manual ? Will Apple-1 builders be willing to pay so much money for a toolkit that is used only once and is useless for them after it helped to get their Apple-1 build into a working condition ?
Of course, they could put the toolkit up on Ebay again, re-sell it, to recover some of their costs, and to keep them in circulation, to the benefit of other builders. Actually, for me, this would be the preferred solution, so I have less work with them.
Keep in mind that I try to avoid profits from my hobbies. Not that I would hate to make more money than I ever need, but the caveat with the Apple-1 hobby is that the "market" is exceedingly small, and unless usurious prices would be asked, any "profit" would be totally annihilated by the extra fees of the licensed tax accountant who does my tax returns. So avoiding any profits from that hobby is a must. But don't worry, I'm still in the hole by a few grand, so I can continue to offer my 100% burned-in and tested IC kits on Ebay, at least for a while, until the red numbers turn into a black 0, and then I will stop selling them. Hope I still get the statistics for my experiment.
So, this background story told, you may understand that my motivation to make and sell any of these Diagnostic PROM sets is not that great. I primarily developed these PROMs for my own use, many incremental changes and improvements over more than 9 months (!) to many little disconnected tools, some of them useless, and in the last two months I was able to aggregate the most important and successful of these tools into a mere 512 Bytes of code, which was a nice pastime. I estimate my time expenditure to do this aggregation was about 100 hours. For 512 bytes of code ? If I would show this kind of performance in a software company, I would get fired instantly. But keep in mind that providing all this functionality using no RAM, no JSR/RTS, and only the CPU registers of the 6502 involves some really tricky coding. There are not many 6502 programmers in the world who could pull that off. On the 8080 / Z80, having many more CPU registers, it would have been much easier and taken less time.
If you happen to be interested in one (or more) of these Diagnostic PROM Sets, reply to this post and tell me what you think, or send me a message on the Applefritter message system. If there is enough interest, I will invest more of my time and maybe post some screenshots and more information. And if finally, I would arrive at the conclusion it may be worth my time to make this Diagnostic PROM Set available to the worldwide Apple-1 builder community, I might even write a manual, buy a tube or two of those PROMs, and make some PROM sets. Otherwise, I just keep them for myself. They are really cool, proven, do their job, and I use them in every Apple-1 build I make, to bring it to life, and to tune the DRAM timing, and to test the DRAM, before I put the WOZMON in, which, after all these preparations of the hardware, of course works instantly and trouble-free.
(Just for the history of these tools, prior to this new PROM version, these tools were in a 2732 EPROM with 15 tool pages + the WOZMON page, selectable by a hexadecimal rotary switch, and that "gadget" saw so much use that it now is in its last legs, and I did not want to build another one due to the tedious hand-wiring and the flimsy header pins that always break off, but there is no choice, as larger diameter header pins would ruin the IC sockets. So "real" PROMs with normal IC pins of just the right size, are the preferred solution. So far I have made three of these PROM sets for my own use, and they do their job to my fullest satisfaction.)
Still curious ?
Comments invited !