I'm trying to figure out the cause of my Apple 1 build problems.
I have the video/terminal sectoion working fine, but I am having problems with the computer section of my build.
To start, I have a Micro Switch keyboard that does not put out true ASCII. I built a translater board using an EPROM to convert the non standerd output to ASCII. At the same time I realized I could use some of the output codes to trigger the clear screen and reset pulses.
The keyboard and translater seem to work fine, but I can't rule them out as a problem.
Here's what I am dealing with: The clear screen function works as expected, and the reset function works, but I need to press a key after resetting because the keyboard latches the output of the last keypress. I can set the strobe as 5v asserted or 0v asserted. I can press any key after resetting and that key basically the only key that will display usually. Sometimes I can get other keys to show, but that is usually associated with a restart (\ symbol).
If I press 0 as the first keystroke after a reset, I get a 0. If I press many followed by return, I sometimes get repeating 0000000000, repeating 0101010101, or something like 0000: 13 or 0808: 08.
Assuming that at least the 0-X, F-Y, D-Z wirings in the 74154 area are in place, it seem to me that this is indeed a typical case of incomplete boot of the 6502/Woz monitor.
If boot is not complete, computer acts erratically.
After reset, the "\" appears correctly, however Carriage Return is missing (there must be a CR after "\".)
This usually happens because at that point in the code the JSR ECHO causes the JSR return point to be saved in the stack, which resides in RAM.
If the CR does not appear, it means that the program execution did not return to ROM address where it was supposed to, so the RAM was somehow corrupted.
This makes me think that the problem could be (check also for cold joints or unwanted shorts):
- 1/more faulty RAM chip (bank 0 - Row B)
- Refresh circuit issues (74123 and surrounding)
- mixed drivers 74S257/8T97
Be positive: the terminal and keyboard looks OK, you are almost there!
Claudio - P-LAB
PROMs usually get hot, it's quite normal, they're also quite sturdy and most of the times they survive even to bus conflicts.
At least up to the \ printout the code seems consistent (i.e. before that there is the PIA init sequence, without it you would not able to see or type in anything) so I'd focus on RAM and its selection.
You could check RAM /CS signal and RAM refresh timing with an oscilloscope and see if everything looks good and into specs.
Most important thing: check all Vxx voltages on all chips. A cold joint on a power rail can cause serious issues.
They're most probably OK 'cause otherwise terminal wouldn't work properly, the point is to check if they power every chip they are supposed to.
I don't see the R-C jumper in the area above 74154. It should definitely be there...
R-C is necessary to address the Cassette Interface (or my boards).
Its presence (or absence) does not influence the boot process.
(Uncle Bernie rubbing hands and smelling blood !)
As far as I'm concerned, I absolutely love those 'maverick' builders who buy their untested ICs helter skelter , don't have my "Tips & Tricks" pdf, don't have my A1,A2 PROMs with the famous diagnostic page, etc., so lots of trouble to expect. However, I truly appreciate such mavericks because they show us all that my painstakingly crafted IC kits have some merit aka "added value". But in the end, we all are Apple-1 enthusiasts and want to help each other, right ?
I have a theory about the source of certain ICs in this build because some look very close to those I use. Hmm. Anchor Electronics in Santa Clara ? I bet the 2504V/1404 came from Unicorn Electronics in Pennsylvania. As far as I can tell you had the immense luck to get 7 good ones.
I don't know how your converted keyboard could muck things up, as I don't have its schematic, but when the cursor refuses to drop to the next line (except when a line is full, from the last position to the first position in the next line), then is has been my experience that something drives the CLR SCREEN line which cannot be driven all the time. Look at the circuit in the lower right corner of the "terminal section" schematic and you will notice that the cursor state machine also tries to drive the CLR SCREEN line.
Somebody who wanted to be cheap omitted a diode worth 2 cents in this kludgy "OR" gate. We know who did that !
You can drive CLR SCREEN high to clear the screen but after that you need to release this line so the cursor state machine can do its job.
It's the 2nd time this week I had somebody who fell into this trap. The cheapest remedy is to use a BJT configured as a emitter follower to drive the CLR SCREEN. No extra components needed other than the BJT. See my "keyboard emulator cable plans" here:
Oh, and tell us how it goes. DRAM problems usually go away with my "reliability mods" but only when the 74123 produces the correct 480ns pulse width.
Good luck with your build, "maverick" !
- Uncle Bernie
Try removing the lower bank of memory and see if anything changes also try switching memory chips one at a time. If you have a scope you can check the timing on pin #13 of 74123 and see if its close to 480ns and adjust the resistor more accurately.
/CAS is at 220ns. This is above the minimum of 100ns for MK4027N-2 Ram chips. /RAS is around 1ms which is also above the minumum 100ns for these chips. Power looks good on all pins.
@UncleBernie The clear screen is only asserted until the next keypress on my setup. I added a quad NOR gate (7400) to my translater to decode the clear screen and reset keys. Neither stay asserted beyond the next key press.
The ICs are mostly from Unicorn. I got at least 3 bad 2504 in my batch. along with some other bad chips. I'm still waiting for replacements from Unicorn.
I tried to win one of your auctions, but I wasn't able to bid high enough! I wish I had bid more now! At least I would have verified and tested ICs!
Which level timing are you refering to? +5v or 0v? I can see the waveform is not symetrical and the +5v is longer in duration than the 0v
the culprit in your circuit is the NAND gate with output #6 driving CLR SCREEN. All is fine as long as the screen clear is active (high, "H") but when the NAND drives a "L" afterwards it blocks the cursor state machine. Furthermore, a 74LS00 or 7400 is too weak to drive a good "H" level onto the 330 Ohm resistor. If you add a emitter follower like this:
C = +5V
B = pin #6 of NAND
E = to CLR SCREEN line
using any small signal NPN BJT then the blockage is gone (note caveat) and the drive strength is enough. No base resistor is needed here. And the emitter resistor is in the Apple-1 (it's the 330 Ohm one).
Here is the caveat: for the CLR SCREEN to work properly, it must persist longer than one screen frame (16.6 ms) and for good measure the "high" period should be maybe 20ms, minimum. With a manual key switch this is implied but with anything else you may need to add a oneshot to prolong the pulse. A 555 timer will do.
As for outrageous prices being paid on Ebay due to bidding wars, I hate that, too, because it distorts proper price finding and I actually make a profit on these kits from bidding wars, which I then need to squander somehow for other electronic hobby projects. It's meant to be a non-profit thing by design. And it can't get too big. This is why I don't offer more than one kit per week on Ebay. I'm lazy, too. And my RQLT is limited, I can't support too many builders at a time. During the pandemic this was great to kill my spare time and avoid getting cabin fever but now I want to pick up all the activities again which had to be stopped while the pandemic was raging. So at some point early Y2023 maybe, I will stop making these kits.
Until then, anyone wanting to buy a kit from me without paying all the Ebay fees and the fallout from bidding wars can send me a PM here on Applefritter. My production capacitiy is larger than 4 kits per month, as I own more than a dozen Apple-1 clones right now, and most are pressed into service as burn-in rigs.
About the 480ns DRAM timing pulse made by the 74123, just look at pin #13 of the 74123, set scope trigger to positive edge, timebase to 100ns/div, and tweak the resistor in the "27K" place until the "high" period of this signal is 480ns wide.
- Uncle Bernie
I see from your schematic that you have left yourself options as far as the polarity of the Strobe signal going into the Apple. I am also working on an adapter to feed keyboard data into the Apple-1 and I've been wondering about this.
Question to all: Does anybody know what the polarity of the strobe pulse should be? In other words, should it be at 0V or 5V in between keypresses. Also, what is needed on the data lines? I don't know if they need to be stable on leading edge, trailing edge, or the entire duration of the strobe pulse. It is not documented in a1man.pdf.
From the manual "The strobe can be either positive or negative, of long or short duration"
Well, on a1man.pdf, page -1-, Section I "Getting the system running", the subsection "Keyboard":
<<The Strobe can be either positive or negative, of long or short duration>>
As for "when" the data is read, looking at the schematic I see the STROBE signal connected to the CA1 line.
And looking at the WOZMON code, it looks like the PIA is set to detect a positive edge on that line.
I have made some USB keyboard adapters in the past and always used a positive strobe signal.
The duration of the strobe can vary greatly; I have seen keyboards that strobe for a few microseconds and keyboards that strobe for over a millisecond, without any problem.
Enjoy your build!
Claudio - P-LAB
Thanks UncleBernie! I kind of ignored your advise about the emitter follower and installed a diode instead (1N914). The screen still clears, and now I do get carrage returns when I reset the computer! I still need to check the RAM timings, as the other symptom is still present. I have not seen the repeating "0" or "10" anymore, but I can only type whatever character I press immediately after reset with the exception of when I press 0. If I press 0 I can press return and get a result. but ONLY if I press 0 immediately after reset.
I found it! My keyboard design keeps data on the outputs. It seems the Apple 1 doesn't include any type of buffering for that and the latched keypress data from this type of keyboard was causing the problem. I now need to redesign the keyboard to work as designed with the gates. Probably a couple of diodes.
Well done, congrats!
I'm sorry if with my advice may have misled you!
Your advise, as well as the other advise here was very helpful. It seems my keyboard setup is an outlier and made the symptoms match RAM issues! I was positive it was RAM as well, but decided on a whim, to connect the EPROM enable line to the strobe
@UncleBernie, woule you have a kit for the cassette interface adapter? I already sourced the board and 1/8" jack plugs. I would need the rest.
In post #20, JohnDelano asked:
"UncleBernie, would you have a kit for the cassette interface adapter? I already sourced the board and 1/8" jack plugs. I would need the rest."
Uncle Bernie answers:
Alas, I don't sell ACI kits seperately from my famous Apple-1 IC kits. These are all counted and accounted for. If I sell one separate ACI kit, then the last IC kit would be without the ACI parts. Which would disappoint the buyer. The issue here is that these vintage carbon composition resistors and the authentic looking Dale 1% resistors can only be bought in quantities of 50 or 100, and this would mean that 50 ... 100 more ACI part bags would need to be made and sold so as to avoid waste and loss of money on left over components. Which is not what I want. Too much work. I also don't know if ACI kits alone would sell even if it was worth my time to do that.
I absolutely hate when good electronic components I paid my money for go to waste. My whole basement is full of such once valuable parts. Alas, none fit for Apple-1 or ACI are left anymore. Those have been sold or already have been packed as my famous Apple-1 kits. The only exception I ever made was for the beta testers of the Gen2 improved ACI. They could buy separate improved ACI Gen 2 beta test kits. But this was done before I made my very last order of carbon composition resistors. As of today, all the little plastic bags with components for the last IC kits already have been packed. Only the IC sets themselves still trickle slowly from the burn-in rigs. Hope until this fall I can at least clear the pedestal before the fireplace, which has been occupied for 2 years by some of my burn-in rigs.
HOW TO MAKE AN ACI KIT YOURSELF
Your best route of action is that you go shopping for the passive ACI components yourself. There are many vendors on Ebay who sell 250mW carbon composition resistors in smaller quantities than the usual 50 pcs packs. There are some who sell 10 pcs cardboard units which back in the day were meant for lab stock and TV repairmen. Some vendors sell those resistors 5 pcs wise. All the ceramic disc capacitors and the ICs except for the PROMs can be bought at Anchor Electronics in Santa Clara. For the PROMs, send me a PM. I have an overstock of PROM blanks and I'm willing to provide even "maverick" builders with programmed PROMs at cost, as long as supplies last.
Be aware that the ACI you can build on a standard open source Gerber based PCB (or a Newton PCB, which looks closer to the originals) will have all the nasty quirks and performance issues of the original ACI. If you have a media player which can produce enough volume (output amplitude) you will be able to load AIFF or WAF files. With a cassette recorder or weaker media players all bets are off. My "improved ACIs" went through two iterations of PCBs (Gen 1 and Gen 2) which I never released because Gen 1 did not try to improve the inadequate TAPE IN circuit (it only improved the volume LED circuit, and did away with the negative supply voltage - meant for use of Gen 1 in Vince Briel's Replica-1 computer - and it enabled the 2nd page in my ACI PROMs with the 'extended format' routines). Only Gen 2 brought an improved TAPE IN circuit. So far four of the five beta testers have sent in reviews. But my evaluation work on Gen 2 is not yet complete. Because my spectrum analyzer is in disrepair like so many other once fine and super expensive instruments I own. What a waste of money ! Also, the Gerber file wizard who was supposed to massage my Gen 2 improved ACI layout towards better - closer to the original - looks disappeared from my radar.
So somehow the whole Gen 2 ACI project makes no progress right now. It got stuck in the quagmire.
On the long run there will be a Gen 2 PCB available to the public and maybe some enterprising person will even go further and make complete ACI kits to go with it. But it won't be me. I have too many plates spinning anyways and I don't need to earn money anymore, so my motivation to produce kits shrinks the closer I get to my goal to sell off all these left over components for my all too bold "100 wave soldered Apple-1" project which had to be abandoned, the pandemic having been a major factor in the decision of mine to "pull it". But I have no regrets to have ventured into the Apple-1 world:
A German entrepreneur has picked up my "wave soldered Apple-1" idea, so at least my preparation work was not wasted. But so far he has shown no interest in producing wave-soldered ACIs (or ACI kits). The worldwide market for these Apple-1 things is very small and I don't think that anyone who has ventured into this market ever made enough profit to pay himself minimum wage. But as a side hustle for younger people with less money, it may be viable and worth it.
- Uncle Bernie
Inappropriate and off-topic rant deleted. - Tom