• Please review our updated Terms and Rules here

3032 - 2001N Repair

OK, got new 7425 chips........

But let me recap a bit to hopefully keep a clean story if someone needs to follow in the future:
.
A 2001N dynamic board that would show the initial random characters display (as expected) but will not boot. Followed the following testing method:
.
1. All the standard initial checks like voltages, clock, reset, IRQ and general prodding around to see if there's activity on the busses and control signals.
.
2. With that looking OK, installed a RAM/ROM board (with all the ROMs and IO chips removed) and found the machine will boot into BASIC4 with the RAM and ROM swapped out.
(*Side note: BASIC2 needs the 6522 to boot to the BASIC screen - be aware of this if you are using BASIC2 when fault finding).
.
At this point, it looked a sure thing that there's some fault in the main RAM which is not unexpected. 4116s are notoriously unreliable.
.
3. For the next test, I installed a NOP Generator and traced through the various busses, address decoding, etc. and this looked good from initial tests.
.
4. Now it was time to run PETTESTER. With V4 running (from either the Edit ROM socket or in the RAM/ROM replacement board), the test would get stuck on the VDU Test. I.e. the test output is visible on the screen but the test never concludes, it just sits here:
3032-04.jpg
.
NOTE: Even with the main RAM swapped out, PETTESTER would still loop. Not unexpected, as it *should* not be affected by main RAM failures.
.
As @daver2 pointed out early in this thread, this looping implies that the display memory is returning a different value to what is being read. Or possibly that the CPU hangs. By looking at pin-7, it was clear the CPU was running, so it's likely something on the read path.
The display looked very stable (i.e. not changing characters, etc.) but it easily could be a stuck bit somewhere in the 2114s that does not give a visual artifact. And 2114s are notorious for being bad after 40 years. Tracing through the data (and address bus) paths show no obvious problem, but trying to fault-find buffers is not easy with a scope as the signals goes both ways.
- At this point, my best hypothesis was to suspect the display 2114s as they have a near 100% guilty conviction rate is all my previous PET repairs. So socketed them and tested. For once they were fine......rats :(
.
I then switched to another diagnostic tool to get a second opinion, so to speak.
.
5. I installed a PET Diagnostics device which is a small uP controller that sits in the 6502 socket and effectively test all the hardware, especially the RAM and ROM.
.
The screen output showed a clean display (i.e. all characters displayed were correct) and the display memory (8000) passed read/write testing. All the ROMs were also detected correctly with the correct checksums. However, a lot of the main memory showed errors. Looping the tests, showed consistent errors.
.
NOTE: In theory, bad main RAM should not affect PETTESTER but the fact that you need to swap out the RAM to boot into BASIC + the uP showed RAM errors, made me decide to get that sorted sooner rather than later. The uP test showed numerous errors, various bits in different banks failing, so I made an "aesthetics" decision to socket all of the RAM so the board looks like it came out the factory that way, i.e. did not wants a splattering of sockets in the RAM section. Tested the extracted 4116s in my external tester and most were faulty. Ended up replacing all 16 with known working ones to rather remove any doubt in that section.
.
6. With the main RAM sorted, I reran some of the tests and found that 1) BASIC still won't boot if the main RAM is not swapped out and 2) PETTESTER is still looping the VDU test and 3) the uP still randomly returns DRAM errors.
.
At this point I had confirmed a number of things that seemed contradictory in certain cases:
- Onboard ROMs are being decoded and read correctly (Kernal, PETTESTER runs fine) - So the data and address busses should be fine.
- (Replaced) VDU RAM passes uP tests, but PETTESTER is still not happy - seemingly contradictory.
- (Replaced ) DRAM still won't allow machine to boot BASIC, and gives random errors in uP test.
- NOP test (though crude) seemed to show working address decoding.
.
It looks like all the main elements are working, but they fail to run properly in different ways in different tests. All this seems to indicate that there is some control signal problem of some sort.
.
7. So (with PETTESTER running, still looping the VDU test), I started looking at various select signals, especially around the data and address buffers as we seem to have issues around reading/writing to memory. Most of the buffers showed what looked like acceptable timing and logic levels on pin-19 and pin-1, except E9 and E10, the two main data bus buffers:
7425-03a.jpg
where this signal was present:
7425-04.jpg
It did not look like any other buffer select signal and, for me, at least, did not 'look right' for what one would expect. The question now was who's at fault here. The 7410 itself or any of the 3 chips being driven by it? As the data buffers seems to work when the ROMs are being read, and the uP seems to be able to R/W memory, I suspected the 7410 itself - especially as all its inputs had valid looking signals - so socketed and replaced it. Unfortunately it made no difference and the extracted 7410 tested OK in an external tester. Bummer.... :(
But then it's probably one of the inputs being driven by it. I then employed an old trick we used on fault-finding boards with soldered chips by carefully sniping the 3 input pins in such a way that they can be resoldered. This would essentially remove them from the 7410's output and I could see which one is causing the suspected issue.
Unfortunately is was none of them and even when I lifted the output from the NAND gate (by bending the relevant pin out the socket), I still got the same 'funny' signal.
Then, to add insult to injury, when I tried to tack the pins back, they were so badly corroded that it was basically impossible. Had to put 3 new chips in to feel comfortable about future reliability.
.
At this point in time, I retreated to go sulk over a few glasses of wine that 4 (all suspect to some level) working chips were replaced. And to rethink what I've missed in the testing procedure so far.
.
Second part of this post below.
 
Part Deux:
.
I first took a step back and repeated a number of the above tests but did not see anything obvious that I missed the first time around. So, I was soon back to that 'weird' select signal on the data bus buffers, E9 & E10. But we already know that the chips directly connected are all good (E9, E10, A4 & A5).
.
BTW, I also spent a fair amount of time tracing the various Read/Write signals as this also felt like a possible problem, especially the TV RAM R/W. But, again, could not see any obvious issues, i.e. all signals "looks" sensible.
.
So I started tracing backwards from A5. Its inputs looked all sensible, at least level wise, and with clear highs and lows. A4 is known good but the one input of the one NAND gate, being driven by pin-6 of B2, showed the following level (blue arrow):
.
7425-03.jpg
.
7425-01.jpg
.
The inputs of this gate showed good levels and were clearly high or low or changing cleanly between high/low. Having learned my lesson to suspect a chip output level too quickly, I checked this output using the various above tests but it always stayed at this 2V level.
.
The other half of B2 showed exactly the same behavior; valid looking inputs but a 2V level on it's output.
7425-10.jpg
.
Both the gates are involved in address selection / decoding so it does seem to fit in with the symptoms of partial functionality, such as ROMs being read but not VDU memory.
.
Decided to replace the 7425 and promptly got this:
7425-20.jpg7425-22.jpg7425-24.jpg7425-26.jpg7425-28.jpg
.
Machine is currently running PETTESTER and I'm going to let it run for a few hours so it can reflect a bit on the pain, inconvenience and embarrassment it caused. :)
.
After that (tonight hopefully), I'll go back to see if everything else now works OK. I know the monitor needs work and must still service the keyboard.
.
Moral of the story (at least so far); while tracing, go up and down multiple levels of a hierarchy; sometimes a problem is caused way down than where the symptoms are observed.
 
Nice summation.

Out of interest, what does the "red arrow" signal look like now?

It was interesting to see that my PETTESTER caught something that the other tester(s) missed though...

Dave
 
Nice summation.

Out of interest, what does the "red arrow" signal look like now?

It was interesting to see that my PETTESTER caught something that the other tester(s) missed though...

Dave
7425-12.jpg

Much more like what a well behaving signal should look like.
 
However, we are not at the end of this story yet....... :( This PET is going to cost more me in red wine than in silicon......
.
I let the system ran all day doing PETTESTER memory tests and when I got back to the machine, it had complete around 80 (@daver2 , is this counter decimal or hex?) tests.
.
However, there was an artifact where the text jumped between upper and lower case at quite a rate, looked like a few hertz, basically flickering between upper and lower case. Numerals were nice and stable but, as this pic shows, alpha characters jumped between upper and lower case:
20230622_162433.jpg
.
Q1: This is my first question, please: What drives the upper / lower case selection on the 2001N? Looking at the circuit, I thought it might be the GRAPHICS input to the Char ROM (but not sure), so I connected my scope to it and watched it while the 'upper/lower case flickering' went on. But the signal was perfectly stable.
Graphic signal.jpg
.
I also went down the path of checking if the Char ROM is properly connected in the - notorious - white socket, so I cleaned all the pins, zot it with contact cleaner, etc. The 'Upper/Lower flickering' still comes and goes.
.
Any ideas?
 
Yes, a much better signal now...

And the PASS counter is in hex. Easier to program and keeps the ROM footprint as small as it can be.

I would have gone for the GRAPHIC signal myself... or one of the character generator ROM address lines...

Let me think a bit more about that... Going out tonight.

Did you check the character generator pins with your oscilloscope, or did you just clean the pins?

Dave
 
If the signal Graphic is stable, then the VIA source is OK. It may be the character generator ROM itself. Can you replace it with a programmed 2816 EEPROM? You want to use the 2K bin file characters-2.901447-10.bin from this page http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/index.html

Also of course the 24 pin socket may be intermittent.
This was my initial thinking as well. I first cleaned and checked the ROM pins and the socket but then more symptoms appeared that seems to point to another, common problem. See below:
.
Firstly, after the machine ran PETTESTER for 80h passes (and with the intermittent upper/lower case symptom still present), I looked at was was needed to get it to boot BASIC2 from the board itself. After some testing / faultfinding, the Edit and BASIC ROMs were replaced and a full set of new IO chips (two 6821 and a 6522) were installed. At this point the machine booted fine into BASIC2, gave a flashing prompt, and I could enter (some very intermittent - normal for a very dirty keyboard) text.
.
At this point it seemed the machine was running as expected.
.
Then the 'flashing cursor' stopped :(
.
This typically means one of the IO chips are not working properly, but I had just installed new ones. I did do a quick swop of the 6522 for another one, and also swapped the two 6821s around, but to no avail, the flashing cursor was not showing anymore.
.
This is my second question; How exactly is the flashing cursor generated on non-CRTC systems? I know on the CRTC machines, V-drive drives the interrupt to service the relevant routine, but how does it exactly work on the non-CRTC systems?
.
After I lost the flashing cursor, I noticed the following symptoms:
.
1. It seems the upper/lower case 'flickering' stopped - this could well be anecdotal but does seem to be related.
2. X8XX shows activity for a few seconds, after boot, but then goes to a static level. At this point the BASIC boot screen is displayed. (But no flashing cursor). This seems to indicate the IO chips are not being serviced any more.
3. The other pins on the IO chips 'seems' to have signals that makes sense.
4. Some of the address lines also go static, a few seconds after booting.
5. Data lines stay active, but D0-D3 seems really noisy, more so than D4-D7.
6. I don't see any activity on PA0 to PA3, the IO pins that should drive the keyboard scanner.
7. One of the IO pins, on one of the IO chips gives a 60Hz signal (for the love of me, I now can't remember which pin on which chip it was. But when I saw it, I assumed it's the source of the 60Hz service signal.)
8. Sync on the CPU (pin-7), keeps on pulsing as if the CPU is still executing instructions. This never stops, even if the IO chip activity stops.
.
From the above, it seems the CPU starts the boot process but then something goes wrong and - my suspicion is - it does not properly service the 60Hz IO routine and thus the cursor is not being drawn, keyboard is not being scanned, etc.
.
Normally, replacing the IO chips would resolve this (I tried this to some extent), but it did not help in this case. Note, I did not install another set of new IO chips.
.
To help me better trace this, can you please help confirm:
.
1. How is the IO routine set up and how is it serviced?
2. Which ports of which chips are involved and how exactly?
.
I would like to narrow my tracing to exactly the involved routines/ chips..
.
BTW, if I run PETTESTER again, it passes everything perfectly. But then it never goes close to the IO chips, so it won't know about failures there.
 
Last edited:
Is an /IRQ being received by the CPU?

The VDRIVE signal goes to both one of the PIAs and the VIA. One of these devices is programmed to generate an interrupt when the signal occurs. If you are running BASIC 2, it waits for the signal on the port (anti snow feature). Either input, pin, or output could be faulty.

PETTESTER V5 will do more testing of the I/O port circuitry. Also, V5 will be configurable to run in a 4K ROM from $F000, and will support interrupt testing in this mode of operation.

I am on my phone at the moment, but I will check the exact devices and pins for you after lunch (UK time). Busy this morning...

Dave
 
Is an /IRQ being received by the CPU?

The VDRIVE signal goes to both one of the PIAs and the VIA. One of these devices is programmed to generate an interrupt when the signal occurs. If you are running BASIC 2, it waits for the signal on the port (anti snow feature). Either input, pin, or output could be faulty.

PETTESTER V5 will do more testing of the I/O port circuitry. Also, V5 will be configurable to run in a 4K ROM from $F000, and will support interrupt testing in this mode of operation.

I am on my phone at the moment, but I will check the exact devices and pins for you after lunch (UK time). Busy this morning...

Dave
Thanks Dave, appreciate it.
.
No, /IRQ stays high.
.
I do suspect the IO setup process is not being completed, (or one of the chips is not setting up properly), for example it does not look like the keyboard is being scanned. But it could really just be the relevant PIA or VIA is just broken. I've swapped the 6821s around and did swap the 6522 with another one but it could well be that I'm swapping faulty chips around.
.
It would be cool to - for once - understand the startup procedure and which chips is involved in doing what. I once saw a description of the process online but can't remember where. If anyone's got a link or a relevant document, it'll be really helpful. Not good to randomly swap things and I hate not understanding what's supposed to be happening. :(
.
I know on the CRTC boards, the V-drive signal is used to directly drive IO pins on the Keyboard PIA and the VIA but think, on the non-CRTC, it's done differently?
.
The white sockets might well be part of the problem but what I did with them was to plug a new double-leaf 40-pin socket into each of them allowing me to plug chips in and out without disturbing the white socket itself too much. I then measured all 40 pins of all 4 the 40-pin chips (CPU, VIA, PIAs) and they all seem to show some logic level, i.e. it does not 'look' like I've got a floating pin on one of them.
.
The one thing that worries me slightly is the the P2P voltages of the switching spikes (as measured on the 3 IO chips) on the lower 4 data lines (D0-D3) are quite higher than on higher 4 (D4-D7) data lines. Might be normal, and just a function of one of the 244s, but seeing 8V p2p signals is not nice. 5V supply rails are good everywhere (~5.02V), so it's not that there's a supply problem. Maybe failing decoupling caps?
 
Last edited:
The flashing cursor, keyboard scanning etc. is all done within the interrupt handler. No interrupt, no keyboard scanning...

I assume you could test the keyboard using my PETTESTER - this drives the keyboard PIA without interrupt.

The "VIDEO ON" signal drives CB1 on PIA C7 - this is the device that creates the interrupt (or should). The same signal is connected to PB5 on VIA C5 - this is the port that is 'polled' by BASIC2.

Note the error in the direction of the arrow on CB1. It is an input.

You will want to check that the /IRQA and /IRQB pins are actually connected to the CPU /IRQ pin. The drive is open collector - with the pull-up resistor being R17 on schematic sheet 1. If a pin of the PIA or VIA is not making good contact - you will get a healthy 'HIGH' on the CPU pin (due to the pull-up resistor) but will not be able to read the HIGH on the /IRQA or /IRQB pins.

Are you able to try BASIC 4 at all? As noted elsewhere - BASIC 4 does NOT poll for the parallel bit on the VIA - as the hardware circuitry was designed better in later PETs so as to not generate 'snow'. The video and CPU accesses the video RAM on alternate clock 'halves' on everything after an original 2001 design - so two 'simultaneous' accesses cannot occur anymore. The polling bit (on BASIC 2 - that was fitted to the original 2001) was included so that the software could wait for the end of the line before accessing the video RAM.

All (well most of) of the initialisation is done within the EDIT ROM. The disassembled code for BASIC4 is here: http://www.zimmers.net/anonftp/pub/cbm/src/pet/pet_rom4_disassembly.txt. The device initialisation starts at address E60F. It is not very 'human friendly' of course - but the I/O devices are marked 'CHIP'.

Dave
 
Last edited:
Out of interest, what did your IC tester make of the new 7425 chips ?

Did it report them faulty or good ? If it reported them good (meaning it can assess a 7425 correctly), can you quote the source/brand of your IC tester ?
 
I assume you could test the keyboard using my PETTESTER - this drives the keyboard PIA without interrupt.
This is actually a cool idea, will definitely try it. I don't need a keyboard plugged in, right. You still scan PA0-P3 directly, so I'll see signals there?

The "VIDEO ON" signal drives CB1 on PIA C7 - this is the device that creates the interrupt (or should). The same signal is connected to PB5 on VIA C5 - this is the port that is 'polled' by BASIC2.
Note the error in the direction of the arrow on CB1. It is an input.
Ah, this --> label definitely threw me. I remembered seeing a 60Hz signal on one of the chips (and did not take note which chip/pin) and assumed the PIA/VIA was generating it. This was clearly it.
PS. I see it's also mislabeled as an output on the 8032 schematic.

You will want to check that the /IRQA and /IRQB pins are actually connected to the CPU /IRQ pin. The drive is open collector - with the pull-up resistor being R17 on schematic sheet 1. If a pin of the PIA or VIA is not making good contact - you will get a healthy 'HIGH' on the CPU pin (due to the pull-up resistor) but will not be able to read the HIGH on the /IRQA or /IRQB pins.
I'll check if they're electrically connected. I did see the same levels on all the /IRQ pins of the various chips (was high, but not quite 5V), so assumed they're connected. I definitely did not see any activity on any of them though, measuring directly on the chips.

Are you able to try BASIC 4 at all? As noted elsewhere - BASIC 4 does NOT poll for the parallel bit on the VIA - as the hardware circuitry was designed better in later PETs so as to not generate 'snow'. The video and CPU accesses the video RAM on alternate clock 'halves' on everything after an original 2001 design - so two 'simultaneous' accesses cannot occur anymore. The polling bit (on BASIC 2 - that was fitted to the original 2001) was included so that the software could wait for the end of the line before accessing the video RAM.
Yup, getting the same symptom (no flashing cursor) with BASIC4. I tested this with a ROM replacement board where I can easily switch between PETTESTER, BASIC2 and BASIC4.
 
>>> You still scan PA0-P3 directly, so I'll see signals there?

Yes - from the keyboard PIA.

Of course, you said there was no interrupt - so the polling bit is a red herring.

The incorrect arrow is a deliberate error I think 😀!

Dave
 
Out of interest, what did your IC tester make of the new 7425 chips ?

Did it report them faulty or good ? If it reported them good (meaning it can assess a 7425 correctly), can you quote the source/brand of your IC tester ?
It indeed failed a new 7425. I'm using the Retro Chip Tester Professional by Stephan Slabihound and he is normally very good when stating a chip is supported. I did mail him to check if it's a known problem. I might also be behind on the firmware for the tester.
 
Talking about testing chips....
.
Anyone aware of testers anyone made to test these old IO chips? (CIA, PIA, VIA, etc.) out of circuit?
 
It indeed failed a new 7425. I'm using the Retro Chip Tester Professional by Stephan Slabihound and he is normally very good when stating a chip is supported. I did mail him to check if it's a known problem. I might also be behind on the firmware for the tester.
Spoke with Stephan and he confirmed the 7425 passes in his own RCT tester. I'll do some debugging on my side, probably fluffed something........
 
Spoke with Stephan and he confirmed the 7425 passes in his own RCT tester. I'll do some debugging on my side, probably fluffed something........
That is odd, since another tester also failed the good 7425, though I'm not sure what brand it was. It may have been a problem with all of them, and some of them only have had a recent firmware upgrade and others not. Probably Stephen would have the latest updates in his own tester, which could explain it, it is hard to imagine that it was something that you did.
 
Man, this machine was sent down to test me........
.
After I got it to boot properly with BASIC 2 with all onboard chips, I thought it's all good and it's the end of repair..... Then it started going all wobbly on me again. First lost the flashing cursor that then had me poking around the IO chips as per above posts. Various different permutations of trying to isolate the problem gave very different results. For example, at one point I got BASIC2 to boot to a flashing cursor but (without changing anything) BASIC4 would give a blank screen (while the CPU kept on running).
.
I was desperately trying to protect the white sockets while it also felt that the various problems seem to emanate from the IO chips not being initialised correctly, not working as expected, etc. It felt like, every time I changed a chip, the symptoms changed. So, eventually, I bit the bullet and replaced the four 40-pin sockets. I also did the @Hugo Holden pin-insertion test and most of the pins on the white sockets gave little to no resistance when pushing a pin in them. So I bit the bullet and replaced all four.
.
20230623_181149.jpg
.
20230623_183547.jpg
.
With the new sockets, I really thought that stability would come to the system but Murphey had a real good giggle........
 
Back
Top