Catatonic Rockwell AIM-65
Rick Bensene
rickb at bensene.com
Tue Jun 4 22:10:20 CDT 2019
Hi, all,
I recently was given a Rockwell AIM-65 single-board computer in nice physical condition, with the original keyboard and keyboard connector cable.
I've downloaded all of the documentation that I can find, and have been trying to get it running.
After doing a thorough visual inspection looking for any sign of detritus, especially anything metallic, as well as making sure all of the ICs were seated in the pretty-lame single-wipe sockets, and checking for any obviously cooked or overheated components.
Everything looked really nice, and quite clean.
All of the required chips were in place, and looked good, including the 6532 RIOT, 6520 PIA for the display, and two 6522 VIAs. All of the LSI's, including the 6502, were Rockwell-made parts, with date codes all within a reasonable time of each other.
I checked across the +5V and GND power supply connection points, and found that it wasn't shorted, another decent sign.
The machine came with all five of the ROM sockets filled with original Rockwell ROMs, including the two-ROM BASIC interpreter, the Assembler ROM, as well as the two Monitor ROMs, all installed in the sockets they should be installed in. The machine had six 2114's (1024x4 static RAM) installed in the lower three banks of user RAM, with two of the sockets unoccupied. I got two known good 2114's from my stock of parts and installed them in the two empty sockets, so that the machine would be in the 4K of User RAM configuration.
I understand that the machine can be powered up with only the +5V supply, but the thermal printer will show as "down", as it requires the +24V supply. The +12/-12 supplies are also not required.
I made sure that the RESET switch worked properly, and tested the KB/TTY and RUN/STEP switches operated properly. I set the KB/TTY switch to KB, and the RUN/STEP switch to RUN.
I found a power supply that provides +5V at 5A, and tested it out on a dummy load to make sure it was healthy and had clean output, and it was fine. I connected it up to the +5 and +5 Return (GND) terminals on the power supply input barrier strip, and held my breath, and switched on the power strip that the power supply was plugged into.
The result. Absolutely nothing.
No sign of any activity on the display.
I didn't expect anything from the printer, because it didn't have its +24V power.
I left it powered for a little bit, checking for any chips that seemed unusually hot or anything else that seemed amiss, and nothing was obviously upset. The CPU chip warmed up slightly to the touch, but wasn't at all alarming in terms of its temperature. I pressed the RESET switch a number of times, and it made no difference. Oh well.
I powered it off, and pulled the ROM chips out, and decided I'd pop 'em in my ROM programmer and compare them to the ROM images I'd downloaded off the net.
The two monitor ROMs verified exactly. The Assembler ROM also verified correctly. One of the BASIC ROMs also verified properly, but the other failed the verification. Hmm...upon READing it into the programmer's RAM, I dumped it out, and low and behold, it read back as all 0xFF's. Oops.. I double checked that the ROM was properly seated in the programmer's ZIF socket, and it was. I tried READing it a number of times, and the result was always the same. This ROM must have expired somewhere along the way. I can blast a 2732 with the proper bits and build an adapter to make BASIC work once I get the thing running, and hope that maybe sometime I might find a good blank OTP 2532 ROM I can blast with the code, or find one already programmed somewhere.
That said, the BASIC ROMs aren't required to get the AIM-65 to "boot up" in the Monitor, nor is the assembler ROM. I decided to set the BASIC and Assembler ROMs aside, and just re-installed the known-good monitor ROMs in the proper sockets.
I double-checked that all of the RAM chips were properly inserted in their sockets by pulling and re-inserting them, as well as the 6502, 6532, and 6522's. The 6520 on the display board is soldered in, so no socket issues there.
I powered it up again, and verified that +5V was present on all of the chips on the board, and that was fine, with every chip showing +5 give or take +/- .02 Volts. All of the GND pins were at 0V, with only tiny (sub-millivolt) noise on GND.
I put a big dip-clip on the 6502, and got out my trusty Tektronix 2465 scope, and figured I check some of the basic stuff, like making sure that the clock generator was running, and that the 6502 properly would generate the Phase 1 and Phase 2 clocks that the rest of the system uses, as well as looking at the address bus and data bus to see if it was doing anything. The clock generator uses a 7474 dual flip flop, which I know have a tendency to go bad, so checking the clock was the logical first step.
I powered it up again after hooking everything up, and probing around showed that the clock generator was indeed running, and had the proper voltage levels, timing, and duty cycle. The thought that maybe it'd be a simple fix, with a bad 7474, went out the window. The 6502 was pumping out the proper Phase 1 and Phase 2 clock signals, and both were very clean and within specifications.
I looked at the address 0 line, and pressed the RESET button, and it'd wiggle for a short period of time, then go high. Hmm... I looked at the other address lines, and while not all of them wiggled, they all ended up at logic 1 after a short period of time, as if the CPU was stuck at address 0xFFFF. I did the same thing watching the data lines, and the symptoms were similar.
They'd wiggle around a bit, then settle at logic 1 and stay there.
I then watched the chip select signals for the ROMs to see if they were being addressed, and indeed, the low ROM was getting selected for a short period of time, then it'd get de-selected and stay that way. The other monitor ROM also got a short burst of select. So...it appears that the ROMs are being addressed, at least for a short time, and the processor is likely executing the code for a short time, but something causes it to lock up.
I checked to see if any of the RAMs were being selected, and at no time during the short period of activity after a RESET did any of the chip selects on the 2114 RAMs go active.
I then checked the PIA (6520) on the display board to see if it was being selected at all. Nope.
Then I looked at the RIOT chip to see if it was being selected, and indeed, it is being selected during the short period of activity, but then, it goes deselected and quiet once the CPU settles in at 0xFFFF on the address lines.
It appears that the address decoding circuitry is at least mostly functional, as the ROMs, PIA, and RIOT are being addressed. It's not exactly 100% sure that the address decoding stuff is working as it should, though.
I thought that perhaps there might be something up with the 6502.
I have a Commodore VIC-20 that works fine, and it has an original MOS 6502 in a socket, so I opened up the VIC-20, pulled the 6502 from its socket, and popped it in place of the Rockwell 6502 in the AIM-65.
The behavior was identical. So, I'm pretty sure that the Rockwell 6502 is good. I should have popped the Rockwell 6502 in the VIC-20 and tested it that way, but didn't want to fuss with hooking the VIC 20 up to an old TV.
I pulled all of the 2114 RAMs out, and popped them into an old calculator that I have that uses 2114 RAMs, and tested them out this way. The calculator ran just fine with the chips from the AIM-65 in place. I'd figure a bad RAM would likely cause the calculator to malfunction in some way. Not a thorough test, but enough of a test to validate that none of the RAMS were dragging the address or data busses down, and that they did properly do reads and writes.
So, with all that said (sorry, I am verbose), I'm kind of at a loss as to what to do next to try to figure out what is wrong with the machine. Does anyone out there have any suggestions? I have a couple of spare 6522 VIA chips, but these shouldn't really be accessed unless the printer is trying to be accessed (which it might be during initialization at least), and the other VIA is for external interface use...and is probably initialized by the ROM, but neither of them should really be actively accessed other than a short burst of initialization. I could swap in my spare 6522's to see if it makes any difference, but I doubt it would make any.
The unknown is the 6532 RIOT chip. I pulled up some data on the chip, and it appears to be a combination of a PIA (like 6520), 128 bytes of RAM (hmm...), and a programmable interval timer. I don't have any spares for this chip, so I can't just substitute in another chip and see if it makes a difference. The RIOT chip is used to scan the keyboard, and, after looking at the assembly source listing of the ROM Monitor, it appears the 128 bytes of RAM in the RIOT chip are used as the storage for the monitor. It appears that RIOT chips can be purchased, I found a place online in the US that has them for $9.95 each. Maybe I'll order one up.
Maybe the RAM in the RIOT chip is not working properly? If that were the case, since it appears that the stack is stored in that RAM, the first time a subroutine was called and a return executed, it'd cause possibly 0xFFFF to be read as the return address, and that's where things go awry.
I guess maybe I need to dig out my logic analyzer, and monitor the address and data busses, and trace out what is actually happening. But, I figured I query the list here to see if anyone might have some other things that I could do that might be easier to identify what's wrong with the thing.
One thing that I have no idea about is the display subsection. Since the display PIA is never selected, I suspect that any code that initializes it and tries to put something up on the display never gets a chance to execute. The "smart" starburst LED display modules are all properly in their sockets, and +5 is delivered to the proper pin on each module, and there's no sign of unusual heating or anything else that might indicate a problem with the display modules. The PIA also has a clean +5 and GND, and doesn't show any sign of overheating.
I have a small Motorola 6809 microprocessor development system with a couple of 6820 PIA's that I could probably write a quick routine to try to initialize the 6820 on the AIM-65 display board, and try to write a message out to the display to test it, but that seems like a lot of work. I'd rather just fix what's up with the AIM-65, and get it running.
Any thoughts from those out there as to what to do next would certainly be appreciated. I always value the collective knowledge of the members of this list.
Thanks,
-Rick
--
Rick Bensene
The Old Calculator Museum
http://oldcalculatormuseum.com
More information about the cctech
mailing list