So I thought I'd post an update. I just received replacements for my remaining bad 2504v. In addition, I got some extra 2504v's and a couple of extra RAM chips, as per speedyG's recommendations.
So I plugged in one of the new 2504v's in the empty slot. Another bad 2504v! This one is giving me alternate columns of "$" on the startup
screen, and garbles some of the characters similarly to what I documented earlier. I removed it and replaced it with another 2504v - and it works! I tested yet another 2504v and it works, too! So now I've got 2 extras which are tested working.
So during my time waiting for parts, I wired my jumper wires to put in the second bank of RAM chips (wired W to E, so the second RAM bank begins at E000 address). As you may remember I tested my lower 4KB RAM (0280-0FFF) successfully by uploading the 6502 RAM test from Mike W's site and it worked fine.
So now I ran my RAM test for addresses E000-F000, and got an immediate error:
00 E000 00 04
The "00" means the zeros test (writing all zeros to memory location), "E000" is the location of the error, the next "00" is what was written to memory, and the "04" is what was read from memory.
So I go directly to the memory address, and start writing my own data to that location. My results are as follows:
stored -> retrieved
0 (0000) -> 4 (0100)
1 (0001) -> 5 (0101)
2 (0010) -> 6 (0110)
3 (0011) -> 7 (0111)
4 (0100) ok
5 (0101) ok
6 (0110) ok
7 (0111) ok
8 (1000) -> C (1100)
9 (1001) -> D (1101)
A (1010) -> E (1110)
B (1011) -> F (1111)
C (1100) ok
D (1101) ok
E (1110) ok
F (1111) ok
So, looking at the above data, it looks like bit #3 (from the right) is being held at 1, no matter what's being put into it. The numbers 4-7 and C-F are okay, because those numbers have a 1 already in bit 3.
So some other notes: this is only happening for memory locations E000-EFFF (the upper 4 KB that I just installed), and it's happening at ALL memory locations between E000 and EFFF (I spot checked at random locations and all behaved in the exact same way). Memory locations 0280-0FFF (lower 4 KB) all test fine with the memory test program. I also tested the most-significant bits of memory locations E000-EFFF to see if they were okay, and they were fine. For instance, I can store "84" in there, and it is retrived just fine, but if I put "88" in there it comes back as "8C" (bit 3 is being held at a 1, which flips the second "8" to a "C").
This must mean that bit 3 is a bad memory chip (holding output to high constantly). Looking at the schematic from the Apple 1 Operations Manual, this corresponds to the D2 data bit in the upper 4 KB (memory bank W), and this is the memory chip in the A16 position (with label W2).
So I switched this memory chip with the one in A15 (labelled W3), and retested E000-EFFF, and the problem followed the bad chip. All values 0-7 were being bumped to 8-F (bit 4 being held at 1 now)!
So I replaced the bad chip now with one of my new RAM chips, and memory bank E000-EFFF tested perfectly!
So now I've got my display chips working, RAM through 8KB is tested. Is that basically all the tested I need to do on my motherboard, except for trying out my cassette adapter and loading a few programs and making sure they all work?
Is there anything else on the motherboard I should test?
Congratulation on getting to this stage.
Getting the cassette interface to work is pretty easy at this point.
The only challenge is finding the best audio level for the adapter from your cassette player or iPod.
I would run a long term memory test (say for 2 hrs) on both DRAM banks.
I have had issues with memory that were related to incomplete capacitor bypassing in the original design on the DRAMS and were solved by adding extra bypass caps.
Memory errors show up after I was playing games for a period of time or running long memory tests.
first at this point congatulations that you solved the remaining problems up to this point......
within next steps there are in normal case only minor problems ahead that might occur.....
Just one point:
depending to the unit you use for transfer of data to the Apple-1 and saving data from it to tape....
depending to the model of casstte recorder you might be using...
specially if it´s a very "old fashioned" unit.....
in some cases that cassette recorders are not very satisfying.....
In good old days of dinosaurs like me also played a lot of time with the ZX81 and it has a poor cassette interface....
in that days i have built a external box that was inserted between the cassette recorder and the ZX81 and
it "polished" the signals from and to the recorder by filtering and converting to rather clean digital signals
and this made life a lot more easy .... the recorder acted more tolerant to volume level adjustment and
it happened far less that i lost data from tape or to tape....
That box also performed perfect in cooperation with the recorder and the Apple 1 cassete interface too....
if you face problems with a cassette recorder, it might be usefull to view the project page of that box.
allthough it is in German language i believe to remember, that it was also published in the english version
of the elektor magazin and i could search for that english issue and add it up to the site too,
if there is a demand for that task...
here the link to the current german contribution....
it´s complete with PCB layout, circuitplan and other stuff even a reader only able to read english could understand....
Thank you! So I guess that's the majority of the testing done. I'll run the memory tests for an extended period to see how it holds up. Seems like this is a good general "burn-in" test for any completed machine.
Are the extra bypass caps the ones to do with the noisy power line (the -5v line documented on Mike W's website) ?
Thanks! I was guessing I'd probably use an old iPod Photo 30GB for my dedicated Mimeo Apple 1 storage device. I did get my BBC Micro to read from my iPod, which was really cool. It's what I grew up using, and I remember fiddling with the volume levels and when it said "Loading ...", I used to get a real thrill. Then I learned about disk drives, and I remember thinking "so how do you put the disk drive at the right place on the disk to load the file???" and then having a "whoa!" moment.
I played a bit with Cassette Interface today, and got it to read some stuff, but I don't think I had it quite right, because the prompt never returned to me after the cassette sound file ended. I did look at the memory section I loaded into, and it did look like real data. I think I had the volume somewhere around 80% on that trial run. I guess I have to experiment more.
I don't plan on using an actual cassette anytime soon, but I do have an old Radio Shack computer cassette player lying right here so I might give it a try sometime for kicks.
So I've got a beautiful spare Apple II keyboard for my Mimeo build, and just received the cool replacement encoder card from Wendell. I've got to test that setup next!
And then I've got to build an enclosure. I've spent quite a bit of time designing the enclosure, and believe I've got it nailed down. I'm excited to see how it turns out. It will be a hybrid of wood and acrylic, and I'll be hiding the parts I don't like to see so much (like the power stuff and transformer, and will be showcasing the motherboard. I like the warmth of wood and the coolness of acrylic, so we'll see how it turns out.
I'd like to show the keyboard in some sort of acrylic, but don't really like the look of the keyboard PCB itself, and I guess I like the feel of wood, so having wood around the keyboard makes the most sense in that respect, since you regularly touch the keyboard. I saw someone's keyboard section with a piece of smoke colored acrylic, which looked really cool since you can see some of the inner workings of it. Hmmm, decisions.
I just bought all the wood today, so I'll be embarking on that soon.
My experience with iPods is the volume has to be near maximum. Don't be afraid to turn it up.
There are two potential issues regarding noisy power rails:
1) Noisy power rails on the 2504v.
Symptoms are DRAM memory is not corrupted, but displayed data is corrupted. I believe you have experienced this.
See http://www.willegal.net/blog/?p=3668 for details.
2) Noisy power rails on the DRAM.
Symptoms are DRAM memory is corrupted after 1 or 2 hours of uptime.
Best way to find this is with a scope. The capacitors (0.1 mfd or 10 mfd tanatlum for really bad noise not solved by 0.1 mfd) should placed at the noisiest chips.
DRAM Noise is like gophers, when you cover up one hole, it can pop up on other DRAMs.
Most effective way is to examine the powerrails with a oscilloscope.
In general the best way to solve this problem by adding a fitting capacitor
at the beginning of the RAM-chip block-row and one fitting capacitor at the end of that block-row.
This would result to either 4 or 8 capacitors:
1 cap at beginning of X-block and one cap at end of X-block
and 1 cap at beginning of W-block and one cap at end of W-block.
So you must check all 3 voltage rails at the RAM : + 5 Volt ( at pin 9 ) , - 5 Volt ( at pin 1 ) , and + 12 Volt ( at pin 8 ) !
I tried upping the volume to around 90%, and it worked! I was able to load BASIC, and I experimented with writing a brief program, exiting to the monitor, and doing a warm re-entry. Too cool.
Thanks to all for the power-line smoothing suggestions! I'll see how my long-term memory test works out before doing anything.
One more thing - mostly about semantics. When you say "mfd", you mean micro-farad, right (0.000001)? Technically the metric abbreviation of "m" is milli (or 0.001), but I've seen several use "m" for micro, which is confusing for me. I generally use "u" for micro since it mostly resembles a mu, but I've also seen "mc" for micro (which is often used for medications).
mfd (microfarads) is the same as uF
1 mfd (10E-6) = 1 uF (10E-6) = 1000 nF (10E-9)= 100,000 pF (10E-12)
OK, thank you!
Hey, does anyone have the Apple 30th anniversary demo program on AIFF?
Got it - thank you Wendell!
Though you'll see it frequently with vintage electronics, usage of the MFD terminolgy has gone the way of the dodo bird having been replaced everywhere by uF.
It happens, but you don't see nF used very frequently. For example, you'll almost always see .001 uF used instead of 1 nF. Drop below .001 uF and the unit is switched to pF.