Yesterday I finally got the NTE6889 transceiver ICs, that were going to replace the faulty 8T28 IC's in my Apple II+. However, when trying to boot from disks, my Apple still crashes. And NO, it is not a disk problem. I have tried moving the disk drive + floppy to another Apple, which can boot fine.
My Apple will crash only after reading the floppy disk for some time. Different floppy disks will make it crash differently, but it is always the same type of crash for a certain disk. E.g. if I boot my DOS 3.3 system disk I get this:
0021 - A=23 X=FF Y=40 S=10 P=94
*
Sometimes the first value (the adress of the BRK instruction?) is different, but usually it is one out of three or four values. Another type of crash is for my Lode runner disk. The screen is cleared, and a very brief error message (?) is shown:
P
and then the speaker makes a low-frequent tone for a second or so, then the Apple seems to do a soft reset (if anyone can confirm this, I'd be grateful). It will start booting from disk again, then crash, reset, and so on, ad infinitum. I tried a couple more disks but I don't remember exactly how the crashes looked, only that they were not identical.
My theory is one or more faulty RAM chips. It would explain why the Apple crashes only when booting from disk, and the slight inconsistency from crash to crash (with the same disk). I got the idea of writing a short machine-code program for testing the whole RAM memory, but I haven't tried it yet. Isn't there a self-test function in the monitor or something?
Any ideas are appreciated!
I just tried a program that ran through the range $0400 to $BFFF, testing each location. To my big surprise, it found no errors!
Have you checked for poor connections? Are all the pins clean and seated firmly in their sockets?, No nicks in the ribbon cables? Check power supply output?
I think I've gone through all the IC's at least once, lifting it and then pushing it back. Some have a fair amount of oxidation, which could be a problem.
Now that you mention it, I think I saw that the +5V supply was more like +4.65 V... perhaps I should check it again.
I checked the supply, and all voltages are fine when Apple is running.
just out of curiosity, could it be the disk drive or controller?
I suspect not. As I said, I have tried disk drive + controller in my Apple IIe, and it works like a charm. But that could be a coincidence. In fact, I should try the disk drives from my IIe in this Apple!
Doesn't the II+ use 4116's? These are 16384 x 1 bit chips, so one bank of eight fills 0000-3FFF, then next 4000-7FFF, and the third covers 8000-BFFF. When a 16K x 1 chip fails, you get a bad bit across a whole 16K chunk of memory. Chances are good that it wasn't the 0000 bank, or you'd be apt to see junk chars on the screen, and since the 6502's stack lives in that bank, the processer would be hosed so you probably wouldn't even get the ml monitor like you do.
Sounds like a combination of a bad ram chip and an aging power supply. If your +5 is resting at 4.65, that's weak to start with. Running the drive could cause more droop, and then an old, tired 4116 could fail. Actually, didn't the 4116 also use +12 and -5? It could be that the inrush current to start the drive motor spinning causes a sag on the +12 and maybe that's the culprit.
Anyway, if you're already testing locations, you could try this: put a watch on address 4000 in a tight loop. Write a value and read it back to verify it. Alternate between 00 and FF, or 55 and AA, or any pair that exercises both 0 and 1 at all locations. If there's a bad ram and it fails, you should be able to tell which chip it is from which bit sticks. Also do the same to location 8000. You might want to make the loop cycle turning the drive motor on for two seconds and off for two, to reproduce the 12V inrush current.
Or even easier, try transplanting a different power supply into the unit and see if the problem goes away.
Yes, those are 4116's.
I have testet a program that writes all values between 0 and 255 to $1000, $4000 and $8000 forever, and reads back to check if data is OK. It has now run a few minutes without finding any error.
But I'm not sure how to control the disk drive...?
I was wrong about the power supply; all voltages seem fine. I could try another supply but I need some special wiring because the connectors are different on IIe.
The failure is still a mystery to me. My theory is now that the PROMs are somehow damaged or aged.
Not that I would know, but do you have a conflict with the disk drive controller with another card?, Is the card in the correct slot?. Is the slot clean? Straws.
If slot 6:
BIT $C0E9 ; turn drive on
BIT $C0E8 ; turn drive off
In Applesoft...
POKE 49385,0 : REM TURN DRIVE ON
POKE 49384,0 : REM TURN DRIVE OFF
See: http://www.doc.ic.ac.uk/~ih/doc/stepper/others/example3/diskii_specs.html
I have removed all I/O cards except the disk controller card, so it cannot be such a conflict. I also tested my other disk drive from my IIe (on which it works fine), and it generates the same type of error. So I still think that it is something inside the II+ that is faulty.
EDIT: I use slot 6, I think that's the only slot that works with the disk controller. It looks fairly clean to me. This Apple II+ has been stowed away in the attic ever since my father crashed it (he removed or inserted a card while it was powered on).