Hi Apple-1 owners -
this is a little experimental RAM diagnostics program I wrote and I'd like to kindly ask you to run it on your Apple-1, original or clone does not matter, although originals would tell us more, having the elusive original chip sets.
The program expects 4K of RAM at $E000-$EFFF however, which it challenges.
If everything is OK, it just produces dots at a rate of one per 1.6 seconds, but if the issue it looks for is found, it produces a message in the form XX@HHLL in which XX is the syndrome, and HHLL is the address, and then the program continues.
0280: A9 00 85 00 A8 49 FF A2
: E0 86 01 91 00 C8 D0 FB
: E8 E0 F0 90 F4 49 FF 8D
: 3F E0 8D C0 EF 8D 6A E5
: 8D 95 EA CA D0 F1 88 D0
: EE 49 FF 8D 3F E0 8D C0
: EF 8D 6A E5 8D 95 EA A2
: E0 86 01 D1 00 D0 11 C8
: D0 F9 E8 E0 F0 90 F2 AA
: A9 AE 20 EF FF 8A B0 B5
: 51 00 20 DC FF A9 C0 20
: EF FF 8A 20 DC FF 98 20
: DC FF A9 A0 20 EF FF 4C
: 80 02
If you change the last line (80 02) to 1A FF it returns to the monitor in case of an error found, which may be preferred if you let run it over more than 25 minutes unattended - you might miss an error message otherwise.
On most Apple-1 expect only dots. And I hope that actually, NO Apple-1 out there ever produces any error message.But if we find at least one, my hypothesis I seek to test with this experiment is verified, and we need to talk.
You are invited to contribute to the greatest experiment ever done on the Apple-1, and if you participate, please comment on this thread, type of machine (original or clone, which type of PCB), type, manufacturer and date code of ICs in locations B5 and B6, and type, manufacturer and date code of the DRAMs in Bank W, and which error messages encountered, and how many, after which runtime, if any. Please also send a short comment if you only see dots - which is fine, you should have a robust machine then.
Bernie
I don't have an Apple-1, but I'm curious about your program here. Is it expected to test the ONLY RAM in a 4K system? If so, then your JSR's are sure to fail...
... what eludes me is why you think the JSRs will fail ? Please explain ?
The program will run on any Apple-1 with memory in the low 4K bank ($0000-$0FFF) and memory in the high 4K bank ($E000-$EFFF), which it challenges, because it is the bank that has the worst signals on the multiplexed address bus to the DRAMs. This mostly is due to a known layout issue. All Apple-1 should have these poor signals, originals or clones. No other 6502 based computer should be affected. The open question is whether the bad signals ever cause the DRAM to write to a wrong location, or not.
On my own build I can't get any error message from this program unless I pull one of the DRAMs in the high bank out. Plenty of power supply bypass capacitors were put in, which may mitigate the problem, and I don't want to remove them again.
Sorry, I read your post too quickly. I thought you were trying to test the low bank at $0000-0FFF.
Hi Apple-1 (original or clone) owners on this list:
So far nobody has given any feedback about the results running the above diagnostics program.
Shame on you !
I continued working on the subject of these multiplexed address line ringing and I have some evidence now the problem is real and does cause DRAM errors.
If you don't trust my program then try Mike Willegal's DRAM test program on your $EOOO-$EFFF bank.
I bet you may see the occasional error message at location $E237: binary 1110 0010 0011 0111 so:
Multiplexed row address: 110111
Multiplexed column address: 001000
See a certain bit pattern here ? With lots of multiplexed address bits toggling ? Do you still think it's a hoax ?
So please participate in my experiment !
Of course your results will depend on your CPU type, DRAM type, pulse width of the CAS timing oneshot, but the problem definitely is out there in the field. And this means: it's lurking in your Apple-1 build.
If you post this code relocated at $F000, I can include it on my PROM replacement adapter board...
Just to incite your curiosity, here is a snapshot showing the problem:
W7_A5_ringing.JPG
The lower trace is the /CAS signal on the same DRAM, location W7. The middle trace is the multiplexed address line A5, which has the worst ringing, but the other five multiplexed address lines are not much better. The top trace is multiplexed address line A6. Stimulus provided by the above program which I internally call "MAdHammer": Multiplexed Address Hammer. (it does what the name implies, without the program these worst case conditions happen to rarely to be visible and even if I would break out my Tektronix Storage Scope, triggering on these rare events won't be easy)
The bottom trace is the /CAS signal with a reduced resolution of 5V/div, used as a timing reference to to trigger the oscilloscope. The A5 signal is 1V/div. Follow the middle cursor from the left side to identify the first peak of the ringing 30-40ns after the falling edge of /CAS. The cursor readout indicates that this peak is at +2.14V, definitely not the “low” signal it should have been. The next peak of the ringing occurs 60-70ns after the falling edge. This peak is already half has high, 1V or so, which is less bad than the first one. The following peaks are even lower.
The distance between the two first peaks is roughly 30ns. This is the time the signal “shock wave front" needs to travel along the transmission line (for laymen: the PCB trace).
In the upper part of the picture the A5 signal being “high” rings, too. The bottom of the first negative peak (a “valley”) also touches the cursor, although a bit earlier than the first positive going peak from the “low” signal, about 10ns after the falling edge of /CAS.
Now, the question is what these less-than-perfect signals may do to the DRAM. As a thought experiment, assuming everything else is quiet and perfect (especially the +5V / GND power supply from which the DRAM input buffers derive their logic thresholds), then only the first peak has the potential to toggle the internal A5 signal going to the dynamic column decoder within the DRAM, clearly violating the column address setup and hold time specifications of the DRAM (column addresses are supposed to be stable beginning with 10ns after the /CAS falling edge, and not bounce around as in the picture). Is the duration of this internal glitch long enough to discharge the wrong column select line within the DRAM ? Can't say. I don't have the SPICE decks for that ancient process and no GDS to run parasitic extraction on the layout. But based on my experience I dare a guess it won't do that, at least not for the slower, older 1Kx1 DRAMs made in the mid 1970s. But keep in mind that we did assume everything else being perfect. Which is not the case in an Apple-1: the DRAM power supply lines and the ground also bounces around, although with a different pattern. I think it's quite possible that the bouncing +5V and GND could set up the whole thing such that maybe even the 2nd peak could toggle the input buffer again, and then the total integrated discharge of the column select line might just be large enough so as to activate a second (unwanted) internal column select line, and then the DRAM would read (or write) two bits at once, only one of which is the wanted one.
Note that this argumentation is somewhat hand-waving and speculative. I can't probe internal signals of the DRAM. But would I sign off such a product with these signals for production ?
No way ! They look far too dangerous to me. And I do have solid evidence that in the Apple-1, sometimes, there is a DRAM fault, a wrong bit gets written or read. It does not happen too often, understand that. According to my experiments and observations, it may happen maybe once an hour or so, if Mike Willegals RAM test is running on bank $E000-$EFFF, which is the worst one, signal integrity wise. This is for the unmodified Apple-1. If lots of bypass capacitors are added to "silence" the +5V supply, then the error rate may drop to maybe once every few days. Then, as a further step, if six termination resistors are added on the appropriate places, the DRAM errors go away entirely. I ran the same A-1 build which initially had the "approx once per hour" DRAM fault for months 24/7 with Mike's DRAM test program, with not one bit error.
I'm still investigating and documenting this problem and the remedies I found, but at the moment this is somewhat on the back-burner as I need all my three builds to run burn-in procedures for the 100% complete and tested Apple-1 IC sets I offer on Ebay. This, of course, is not for profit, but I want to recover some of the vast sums of money I have sunk into buying these ICs in large quantities from greedy chip brokers with their large minimum order sizes.
I had to go that route because despite needing only a few for my own builds, I refuse to buy from the price gougers. Professional chip brokers typically don't gouge prices, but you have to buy lots and lots of one IC type, otherwise, no deal. A conundrum also known as "wholesale prices" vs. "retail prices". I have no problem if the latter contain a reasonable profit for honest merchants who buy wholesale and then sell retail. But supporting the price gougers on Ebay who ask moon prices for Apple-1 ICs, no way, never ! They are a bane for the whole hobbyist scene and should be weeded out. I'm in the process of doing this by offering various kinds of Apple-1 IC sets at the best possible prices, essentially at cost. And I have enough in stock to support every Apple-1 builder in the world !
I now do have more evidence that the reflection issue described above in this thread is not only real (the oscillogram above in my previous post proves it already), but now I can prove it also does cause DRAM errors under certain circumstances.
Over the weekend, I have built my first Apple-1 clone based on the cheap "Replica-1" PCBs. Partly out of curiosity, how cheap we can get, and also to get hands-on experience to properly criticize these cheap PCBs vs. the more expensive, but higher quality "Newton" PCBs. To make it short, the Replica-1 PCB has some issues, but unless you buy it from one of these price gougers on Ebay for $75 plus $25 shipping, but at a more realistic price (no more than $39 with free shipping perhaps ?) it seems to be a fair deal any builder on a tight budget can embrace, but always keep philosopher John Ruskin in mind, see my posts on the Replica-1 thread here:
https://www.applefritter.com/content/apple-1-replica-gerber-files
I will post a more detailed, hard but fair, criticism of the Replica-1 PCBs later, and on the above thread, one if I have time to do so. In the following, I will focus on the ringing issue:
To make a long story short, I configured the new build with all reliability mods known to me, except for the one that mitigates the ringing, and this omission was done on purpose. I also populated it with a burned-in and tested chip set that has run on a Newton PCB based build for many weeks, without fail, so I could be sure that if something would not work as expected, the culprit can't be an IC. When I turned the new build on, instant success, everything worked, and I could load Mike Willegal's DRAM test program and run it. This is when all the troubles began: almost instantly, a DRAM error message popped up. And using the same chip set and the same timing components for the /CAS oneshot, I knew I can't be a timing issue inadvertently introduced by some component being different.
Then I ran my MAdHammer program (see first post in this thread). It reported DRAM errors almost instantly:
MAdHam1.JPG
Then I put in my current reflection mitigation mod:
Term390.JPG
(Note: the capacitors are 100nF. They are part of a "team" of added power supply bypass capacitors. These were already present in the previous experiment with no termination resistors. Normally I hide them in the sockets, as originally proposed by "wsander" here on Applefritter:
https://www.applefritter.com/content/apple-1-mimeo-filtering
But for this build I want to be able to remove them one by one. But this is another story to be told.)
After adding these termination resistors (6 x 390 Ohm from the multiplexed address lines to +5V, which critically depends on a bypass capacitor of 100nF from +5V to GND nearby), I ran MAdHammer and Mike's DRAM test again, with no faults so far. The following picture shows how MAdHammer looks if it detects no DRAM errors, just an ever increasing string of dots (showing it's still alive and has not crashed yet):
MAdHam2.JPG
I don't declare victory yet as my criteria for a "rock-solid" Apple-1 build is two weeks running memory test programs 24/7 without a single fault. Kind of snobbish, but that's me. I don't like stuff that does not really work, regardless how cheap it was. John Ruskin conspiring against me again. Please allow me to deviate briefly from the Apple-1, so you can understand me better: I must admit I'm a terrible cheapskate, too. Except for certain joys of life, where I insist on top quality. Food, wine/booze, clothing, women. With all the sensous joys, I accept only top quality. Which always comes at a high price - sticker shock ! Especially true for the latter ones. Always rare and always very expensive. And I don't mean hookers. I'm divorced so I know how much that kind of joy costs. But it was worth every penny. Got my divorce cheap, too. $5800 total including lawyer ($1200), court fees, flight to Guam, hotel and rental car. And she paid half of that but forced me to fly coach, not business class as usual, otherwise she would not pay her 50% share of the airline ticket. Her "revenge". But I was nice to the lady at check-in and got three seats for me alone all the way to Tokio. Compare that awesome result with the typical American divorce where greedy, price-gouging lawyers get rich and even millionaires are broke afterwards. But enough of this. Just wanted to show you that I'm a terrible cheapskate, too.
Nice sub-story with a happy end. I kept my dough so I can work on Apple-1 and not waste my skills and my time for the profit of greedy capitalists who make millions of profit with my IC designs and never gave me my fair share. Now everybody smile ! Feel happy ? You, as an Apple-1 builder, get all this wealth of information from me for free !
Now back to the Apple-1 ailments and remedies:
In any case it should be evident by now that the Replica-1 PCB suffers more from reflections / ringing on the DRAM's multiplexed address bus lines than the Newton PCBs. But even the Newton PCBs have this disease. All Apple-1 PCBs known so far, originals and all clones, have it. It's rooted in the terrible layout and that's it.
We have to live with it !
As for the possible differences between PCBs, there may be subtle differences in PCB board trace width, spacing and thickness. All these play a role in how bad this disease may get, but unless exotic materials are used, the differences between boards in terms of RF / transmission line characteristics should be small. The catch is that all Apple-1 without mods are marginal and almost work most the time. The subtle little differences just may make the suffering a little bit harsher in some cases. If you are unlucky and get a particularly unfortunate combination of PCB, ICs and capacitors, then it may make you mad. Call it the Lisa Loop syndrome.
As for the Replica-1 PCB I have used for this study, vs. the Newton NTI, the base material of the Replica-1 is a bit thinner, 1.5 mm (0.060") vs. the 1.75 mm (0.066") thickness of my Newton NTI board. I would like both to be thicker. Maybe 2.0 mm or so. All Apple-1 PCBs I ever had in hand gave me the impression of inherent flimsyness. Inserting and removing an ACI daughter card from its slot can make you fear disaster when you see how the PCB flexes. I never had a Mimeo PCB, though. Some people told me it's more rigid.
All the differences in the PCBs mentioned change the RF characteristics and transmission line characteristics of the PCB, guaranteed, this is inevitable as it is rooted in Laws of Physics. In case of the Replica-1 PCB, we now have evidence at hand that these changes are not to the better, compared to a Newton NTI . Still, we do know a remedy, and this is, adding a few termination resistors to mitigate the reflections.
Despite this so-called "parallel termination" cannot use the theoretically optimum resistor value for technical reasons deeply rooted in Schottky TTL circuitry, so some reflections inevitably will remain, even the 390 Ohms per resistor I recommend is efficient enough to bring significant relief from the problem. I'm of course always trying to find better mods. As a final note, and as a sort of riddle, what happens if the 390 Ohm termination resistors are tied to GND, as in a textbook termination example ? (There is a reason why Schottky TTL was slammed as being the worst and most temperamental logic family ever).
Comments invited !
This note describes another solution to the ringing that works well.
The ringing problem on the DRAM pins is caused by the high capacitance on these pins (4 to 8pF depending on the pin) coupled with inductance of the long PC board line from the driver to the array. With 16 DRAMs the capacitance being driven can be as high as 128 pF. The DRAM array actually looks more like a low impedance transmission line than a single capacitor due to the periodic loading but the solution is to damp or terminate the network. The Mostek Designers Guide reccomends source termination, adding a small resistor in series with the line at the source.
The photos show /RAS and A3 with and without a 47Ω resistor in series with the line at the signal source running the Willegal memory test on EXXX. The other photos show the type of socket stack used to insert the resistors and a socket with a resistor added with one of the socket pins replaced by a resistor lead to show how to hide the resistors in sockets on the board.
RAS-4.jpg
RAS47-5.jpg
A3-12.jpg
A3 47-12.jpg
Socket Resistor.jpeg
Socket Stack.jpeg
Thanks, wsander, for posting #10 in this thread. You just proved I'm not barking up the wrong tree ;-)
From a plain technical / engineering standpoint, the "series termination" is the way to go. We can find series termination on the DRAM address and control lines in almost every 1970s and 1980s vintage computer. (They knew what they are doing, but I don't want to slam Woz... there are clues he knew it, too). The problem was so common and pressing that some semiconductor companies made driver / multiplexer ICs which had the series termination resistors built-in. Since typical IC process technologies back in the day typically permitted only +/- 40% tolerances on integrated resistors, and these ICs still solved the problem, and were successful, this proves that the value of the resistors is not that critical. Alas, AFAIK, there is no equivalent IC to the 74S257 having built-in series termination resistors.
The problem with series termination for the Apple-1, of course, boils down - again ! - to authentic looks: adding them would involve cutting PC board traces, or, these stacked sockets proposed by wsander. I'd think the latter are a great idea if you suspect the ringing problem is affecting your Apple-I build or original. You can try them without any mod to the PCB itself. Although for the originals with these terrible TI sockets, I would recommend to use DIL16 headers with small diameter pins that don't over-stretch the lousy contact springs of these terrible sockets ... there is a reason why these TI sockets are so rare and expensive nowadays. They were unreliable, cheap junk from the beginning, much like the guts of the keyboards of the early TI calculators, and once word was out nobody in the industry wanted to use them anymore. TI always has been a very aggressive company when it comes to lowest cost prices and cheapest possible manufacturing. The competition hated them for that as they could never match the TI prices. Just look at the 1970s vintage TI 74XXX TTL ICs. Most of them have terribly tarnished leads nowadays. John Ruskin at work, again. But make no mistake, TI always had great semiconductor processes in their wafer fab. And, being the cheapskates they were, they were able to give us the cheap - but crappy - TI30 LED "school" calculator of the 1970s. Every family could afford those. I came from an engineer family and my dad insisted on his missile propulsion design team using only HP, so me, too, ended up with the only HP-21 in the whole class, or maybe the whole school, of 2000+ pupils. You could get about 20 TI-30 for the price of one HP-21. So the TI-30 was a fair deal ! Still, never forget John Ruskin ! But I always envied the TI-30 owners for the nice "spinning" effect when that thing was doing trig functions and logarithms.
To conclude, let's criticize Woz for not having any termination resistors. But let's be fair. Was Woz a lousy engineer not knowing what he was doing ?
I don't think so. First, look at the picture of the hand-wired Apple-1 prototype on this thread:
https://www.applefritter.com/content/historic-apple-1-photos-scanned-slides
It was very compact, so it had short wire runs. Even with Schottky TTL, if the PCB trace or wire length is below a critical threshold, no termination resistors are required, and no competent engineer would add any if they are not needed.
If we apply the ancient rules of thumb how long the critical length threshold for Schottky TTL is, you will arrive at 11 inches. Sorry, I have this number in my head, but can't find the formula at the moment. Now take your ruler to your Apple-1: how long is the distance from the farthest 74S257 at location B5 to the 44 pin edge connector ?
The answer, of course, is: 11 inches. This is evidence that Woz knew exactly what he was doing, and possibly he had instructed the guy who did the PCB layout to adhere to this number. Alas, the layouter ran the multiplexed address bus lines all the 11 inches to near the connector, then forked the traces near the connector, splitting them into two forks, which then run back, in each DRAM bank, to the X7 / W7 DRAMs at locations A11 and B11, for a maximum length of 16.8 inches, which exceeds the critical threshold by far. And this is the root of the problem. This is also the reason why any attempt to plug extension PCBs into the Apple-1 edge connector is inviting trouble. Woz probably had in mind to put some bus transceivers and buffers right near the edge connector on any "mother board" he might have designed for the Apple-1, but never did. He went on and designed the Apple-2. The rest is history.
(Anyone familiar with the product development process would ask how this layout made it past layout review. I dare a guess they spotted the problems. But as Steve Jobs already had committed to sell many units to Byte Shop, I think they decided to push ahead, risks be damned. The Apple-1 prototypes worked just well enough to be sold. Any problems with customers demanding less MTBF like Lisa Loop would be sorted out later. And, as far as we have been told, Woz did his best to take phone calls and offer help to Apple-1 customers, which kept him from devoting 100% of his time to the design and development of the Apple-2. This problem was solved by offering Apple-1 customers a discount on the upcoming Apple-2 if the Apple-1 was turned in. And this, Ladies and Gentlemen, is the very reason why there are so few Apple-1 originals left. Most were turned in, and unless they were "rescued" by daring early Apple employees from the "junk pile" in Steve Jobs' office, they were destroyed. Which is good. This forum would not exist if the Apple-1 had been without its quirks, and I would not have the welcome opportunity to spend my - otherwise boring - post-retirement time on sorting out its issues).
I was able to embed the DRAM source terminator resistors in the sockets. The first figure shows a socket with 4 source terminators where socket pins have been replaced by Resistor leads. The next figure shows two sockets installed on the Mimeo board with replaced Pins circled. The last two photos show DRAM waveforms on an unmodified Mimeo board and on a Mimeo board with added filter capacitors and terminating resistors embedded in the sockets. All Mimeo modifications are virtually invisible to the user.
IMG_0743.jpeg
IMG_0750.jpeg
Frame-18-11-2020-11-52-08.jpg
Frame-17-11-2020-02-38-22 2.jpg
Hello, my Name is Mikel (Greetings from germany!)
I have just set up my Apple1 repro since 1 week , and still have a lot to learn. ( I hope my English is understandable, otherwise sorry)I have now equipped the first 4k RAM and entered the test program by hand.
The result looks like this, I hope good?!(PS: many thanks to Uncle Bernie for all the information).
Bildschirmfoto 2021-05-02 um 00.26.42.png
Hallo Micha,
you need to add the 2nd 2k at $E000 before starting the test program.
Best
Stefan
ok .. thanks for the hint, .. I probably misunderstood that ...Today I "fiddled" a bit and now my first success.
Then I can install the second 4K and do the test right again ... :)
apple1_bild_1.JPG
so .. now I've also installed the second 4K ROM and activated it at $E000.
Then typed the RAM Bernie test "by hand" again. PS: a .WAV file would be great here,
I can't save anything myself at the moment, but only load it.
But here is the result: :D :)
IMG_6129.JPG
IMG_20210507_123204.jpg
IMG_20210507_131655.jpg
IMG_20210507_131647.jpg
In post #17, Macintosh_nik wrote:
" Better late than never, tried this test today - it definitely works! At first everything was fine, then I put a known bad chip in W7 - the test detected it at once. Does it only rad A test, or row B too? "
Uncle Bernie answers:
There seems to be some confusion about this "DRAM challenge" program out there. It is NOT a complete DRAM test. Instead, it is a specialized diagnostics program that aims to provoke DRAM errors caused by the reflections / ringing on the multiplexed address lines of the DRAMs.
It does not test the lower 4K bank because the ringing is less severe there (because of the PCB layout, confirmed by oscilloscope measurements).
Its purpose is to test if your Apple-1 has a problem with this quirk and if it has the problem, then you may put in the six 390 Ohm resistors to mitigate the problem.
Not all Apple-1 have this problem. The lousy layout of these multiplexed address lines is in each and every Apple-1, of course. But whether the DRAMs are sensitive to this ringing depends on many factors.
Normal DRAM test programs (like Mike Willegal's) and the mine in my burn-in PROMs have a different mission, namely to detect faulty DRAM ICs.
So they scan through all the addresses but they trigger write operations to the most critical addresses causing the worst ringing only once per pass.
They will catch the problem, though, if you let them run long enough. Which may take hours, days or weeks, depending on how severely the problem manifests itself in your particular Apple-1.
My "DRAM challenge program" which later got the name "MAdHammer" hammers a few select addresses which are known to cause the worst ringing and crosstalk on the multiplexed address bus lines with thousands of write operations and then looks if any of these writes disturbed the wrong addresses, other than the addresses which were "hammered".
So it will catch the problem quicker than any other DRAM test program. Typically, within a few seconds if the illness is severe, but within a few minutes if it is a borderline case which manifests itself rarely. Normal DRAM test programs may need to run 1000 times longer to catch the same problem.
Hope this clarifies the mission and purpose of this test. If you are just looking to weed out bad DRAM ICs, then use a normal DRAM test.
Hi all, I wanted to tell you about Uncle Bernie's proven chip kits. I bought them not for myself, a friend of mine from Nizhniy Novgorod asked me to help me get them, as no one here uses PayPal or eBay, there are similar resources in Russia where there are no such high percentages. Delivery to Russia took about 4 weeks. The device was packed very well in a thick cardboard box, all chips were placed in rows in antistatic foam and wrapped in aluminum foil. The kit came with the DS0026 instead of the DS0025, as I understand that I had to do a board modification on the reverse side of the board. Since this kit was not meant for me I put my DS0025. I just plugged the chips into the panels and it worked right away. The box also had a support email. If you are not very experienced with this, I highly recommend this kit. It saves a lot of time and money. Thanks Uncle Bernie from the bottom of my heart! God give you health and many more years to come!
IMG_20210507_120711.jpg
IMG_20210430_135714.jpg
IMG_20210509_124237.jpg
In post #19, macintosh_nik wrote:
" The kit came with the DS0026 instead of the DS0025, as I understand that I had to do a board modification on the reverse side of the board. Since this kit was not meant for me I put my DS0025. "
Uncle Bernie's comment / advice on this:
No Apple-1 builder needs to worry about the DS0025 / DS0026 conundrum. Both are perfectly fine to put in any Apple-1, but as with all such decisions you need to know the (possible) consequences.
Here is the issue: the Apple-1 has inadequate capacitive power supply bypassing on its regulated power rails, and the -5V rail is especially poorly bypassed. IIRC, there is only on 100nF capacitor at the DS0025/0026 and one (!) 100nF capacitor near the DRAMs, probably in hopes that this would be sufficient. IMHO this is the root cause of all the trouble with the Apple-1. Even with the DS0025, the capacitive bypass on the -5V rail is pathetic and inadequate. The lousy PCB layout (despite it looks beautiful and disciplined) only exacerbates the problem. The problem mechanism is that both the 2504/1404 shift registers and the DRAMs themselves couple fierce current spikes into the -5V rail which makes the voltage seen there bounce around.
The primitive 2504/1404 appear to be very robust against this bouncing but the DRAMs are not happy at all. So, depending on which DRAMs, and which bypass capacitors were used, any Apple-1, originals or clones, is very close to the proverbial "cliff" --- one little push over the cliff and it will have the occasional DRAM contents corruption.
The DS0026 is a pin-compatible driver like the DS0025 but it was designed to drive much higher capacitive loads than the DS0025, so its outputs can pump more current, leading to faster rise and fall times on the two clock phases it makes, and the 2504/1404 couple these sharper edges into the -5V rail.
Now, if you put a DS0026 into an Apple-1 that is already close to the "cliff" you will push it over the cliff and you will get DRAM corruption, period.
But make no mistake and let go of any wishful thinking - even with an DS0025, any Apple-1 only is marginally stable and it's DRAM can't be trusted not to lose the occasional bit.
This is why I recommend my reliability mods seen in post #4 of this thread:
ttps://www.applefritter.com/content/part-path-towards-rock-solid-apple-1-builds
... in any case, regardless if you use a DS0025 or DS0026. These mods are the key to rock-solid performance of your Apple-1.
Of course you can be lucky and by happenstance get a build that appears to run OK with a DS0025 and without any of these mods. But believe me, it can't be trusted:
There is a reason why the two Steves, after founding their next company (the one that turned into today's Apple Corporation, not to be confused with their fledgling garage "company" that made the Apple-1) decided to "buy back" their Apple-1 to destroy them.
So far my advice. Just put my reliability mods in and be happy. With these mods, which are invisible from the component side of the PCB, you can use the DS0026 with no problem at all, and even the DS0025 based Apple-1 builds (or originals) can only get better with these mods.
You may already know, the problem with the DS0025 is that it's very scarce and the chip brokers who have them ring up usurious prices. The DS0026 is much easier to find, you can get them on Ebay cheaply, but beware most sellers are from mainland China and you may get fake chips like restamped 555, like the fake MM1404 that burned many Apple-1 builders (literally, in the Apple-1 they just get very hot and die, hot enough to burn your fingers.)
The Chinese love to play these "games". It's hit-and-miss to buy anything from them. But if you can get 5 "DS0026" for $5 including shipping, why not take the risk. Just be careful if you power up your Apple-1 with them ... my method is to keep a finger on a suspect chip, and then turn the power on, ready to pull back the finger and turn the power off quickly if the IC gets hot. If you just turn it on and let it fry then it may melt the IC socket. Be warned and be careful and be quick !
If you try to buy DS0026 from reputable sources (official distributors), be ready for a sticker shock:
https://www.digikey.com/en/products/filter/clock-timing-clock-buffers-drivers/764?s=N4IgTCBcDaICIGUAMSwDYQF0C%20Q
No joke ! Than is $50-$60 each, for a humble DS0026. But guaranteed not to be fake !
I was happy enough, after searching for genuine DS0025 for more than a year, to get some, although they were not exactly cheap. So since a few weeks, all my 100% tested and burned-in IC kits for the Apple-1 come with DS0025. I still recommend to add my reliability mods to avoid the notorious unreliability of unmodifed Apple-1, originals or clones does not matter, all of them are quirky, some more, some less, but none can be trusted.
I happen to have one (!) Apple-1 build which works almost OK with no such mods and of course it uses a DS0025. But when I load longer programs then I see spurious writes to my floppy disk controller card (it can detect that). Bad ! None of my builds with the reliability mods has that problem, ever.
- Uncle Bernie
Hello Uncle Bernie.
Today i run your "MadHammer" program. Seems everything works ok for me.
Test made with Mostek MK4027N-2 SG, with date 1984, 41 week. (8441).
Thanks for the tester!
B57FA3C7-4014-4639-AB02-D57C8DEF5284.jpeg
87CB575A-0953-4F0B-BB5A-F9BD681FE397.jpeg
I forgot to ask. After 13-14 lines of dots (I don't remember exactly), the program must stop producing dots? In my case stops.
Thank you.
Forget post #22 please. Everything works ok
... as it was later given as a name, is no complete DRAM test. It only challenges the "ringing multiplexed address bus" issue of the Apple-1 with a much higher intensity than a normal DRAM test program can do. So if you have an otherwise healthy looking DRAM and the 480ns timing is tuned and everything appears to be fine, your Apple-1 build still may have this issue and this program will discover it quickly.
If you get error messages from MAdHammer, add the six damping resistors from the "reliability mods" first. Then run MAdHammer again. In most cases the problem should be gone.
MAdHammer was meant for buyers of my famous Apple-1 IC kits to see if their PCB would need the six damping resistors or not. Because the DRAMs on my kits were burned-in with a complete and aggressive DRAM test 24/7 over one full month, they are known to be good. When I had to switch to 512x4 PROMs due to the usurious prices for 256x4 PROMs --- (may these usurers sit on them for the next 1000 years with none sold at these moon prices ! ) --- I decided to put my long proven burn-in software in the hidden page of the A1, A2 PROMs in my kits and called it the "diagnostics page". So builders using my kits have all the tools at their disposal to make their own 100% known good IC sets. But the important observation is that despite the DRAM test in the diagnostics is very thorough, it may need to run for a long time (15 minutes ... hours) before it spots and reports a DRAM error caused by ringing multiplexed address bus lines. These errors typically happen in the lower quarter of the $E000 to $EFFF address range and more than one "fail" bit is set in the syndrome - in most cases, with this type of DRAM error, all "fail" bits are set and so the syndrome is $FF. This is a giveaway that it is not a "bad" DRAM chip but the environment (the lousy PCB layout) it has to work in.
"MAdHammer" does not attempt to find bad DRAM chips but focuses on "hammering" the multiplexed address bus lines with address patterns that have been selected to be the most devastating for ringing and crosstalk. It will detect the problem (if it exists) within seconds. But be aware that the sensitivity of DRAMs to the ringing multiplexed address bus lines varies with DRAM manufacturer, date code / lot, and temperature. So when the DRAMs are cool, no problems may be detectable yet, but they will pop up after the Apple-1 has warmed up, which may take a few minutes. Or vice versa ... I've seen the problem to appear when the DRAMs were cooled with cold spray, but this was a singular event.
In any case, other than "MAdHammer", you also need to run a full DRAM test which also tests for bad DRAM chips. The DRAM test in the diagnostics page of my A1, A2 PROMs probably is the most powerful one currently available for the Apple-1 because it uses insider knowledge from the semiconductor industry, whereas most RAM tests written by hobbyists are based on wishful thinking about the effectiveness of their algorithm(s). Which, BTW, depend on the architecture of the RAMs themselves. For DRAMs with a multiplexed address bus some algorithms are more efficient and more thorough than others. But this does not mean that the RAM tests written by hobbyists are bad. They just may take much longer to run and much longer to spot an error. For the Apple-1 there is the DRAM test you can find on Mike Willegal's webpage. It is, let's say, quite OK. But it takes a long run time to just test one 4K block (it can't test the whole 8K and you need to put the start and end addresses into it using Wozmon). Compare this the the DRAM test in my A1, A2 PROMs: after each line of characters drawn (to exercise the terminal section) there is a brief pause of half a second or so, and that's the complete test of all the 8K DRAM in the machine, to the last byte (my code does not need any RAM for itself). The semiconductor industry has put a lot of money into finding optimum tests for their DRAMs, and this insider knowledge I have applied in my code.
So my general advice is: always use the appropriate tool for the task at hand. This implies that you know what the tool is meant for.
Hence, use both MAdHammer AND a "normal" DRAM test to assess the health of your Apple-1 build.
- Uncle Bernie
No errors on my build from either the prom based memory test (after several hours run), or Madhammer (after about 30 mins). This was after installation of the 390 ohm resistors.
Thanks!
I let the program run for about 1 hour and no error found. I am using the ram from Uncle Bernie's kit. My replica does not has any mod. RAM on my replica are all Intersil MK4027N-3.
IMG_4741.jpg
This is running fine on my new build. The trick was to type in that program without mistakes, which I couldn't do in just one shot. Think that Woz was retyping in his entire BASIC interpreter before each demo, before he had a working ACI!
I understand the caveats of this only testing the $E000 bank, and only in specific ways, but I am glad this just works. I let this run for a few hours without any errors reported. Of course my build includes Uncle Bernie's reliability mods.
IMG_9842.jpg
IMG_9847.jpg