• Please review our updated Terms and Rules here

PET vertical deflection problem

bano

Member
Joined
May 6, 2011
Messages
37
Location
Bologna, Italy
Hi everyone. I found this great place looking for repair informations... as many others, as it seems :)

Long story short, I've just received my first PET - lovely machine, from what I can see :) It's a CBM 3016, and... well, it's not working.
The entire display is collapsed into a thin horizontal line, no vertical deflection. I can see a blinking cursor, that moves when I press a key, so at least it seems alive.
My electronic skills are pretty basic, so after a visual inspection of the monitor pcb, and some basic checks with a multimeter, I started comparing the waveforms in the vertical deflection area with the ones available in the circuit diagram. But... it didn't pass the first check. Apparently, there's no pulse coming from the vsync signal of the motherboard.
Better... the pulse is there, as you can see below (setting was 1v - 5ms), but is almost imperceptible.
IMG_20120817_200204.jpg

So, my questions:
- The lack of vertical sync pulse can cause the absence of vertical deflection on the monitor? Or I should expect two different faults?
- What's the best way to proceed with the tests? I'm... well, a bit stuck :)

Thanks in advance!

Cheers,
bano
 
Last edited:
So, my questions:
- The lack of vertical sync pulse can cause the absence of vertical deflection on the monitor? Or I should expect two different faults?
- What's the best way to proceed with the tests? I'm... well, a bit stuck :)

bano,
Yes, the lack of vertical drive amplitude looks to be the problem. To check to see if the problem is the source signal on the motherboard or the load on the video board, with power off, temporarily remove the J7 connector to take away all control signals to the video board. Take note of the connector keying (pin 6 missing), so that you put it back correctly later. With power applied, see if the vertical drive signal is a proper TTL signal of about 3.5 volts with negative going pulses to zero volts at J7 pin 3 or at the G10 pin 11 NAND gate. If the signal is OK, then the problem is a bad load on the video board or a bad connection. If there is not a good signal, then perhaps chip G10 or H8 is bad. We can troubleshoot that fairly easily. Take your time, make sure the connector goes back on correctly and you should have good video shortly.

Note that with J7 connector off, there will be no video only perhaps a bright center dot for a second.
-Dave
 
Dave, thanks for your help.
I just checked, with J7 disconnected, and the output of UG10 pin 11 is exactly the same shown before: there's a TTL level (even if it's about 4v), but is always high, no useful pulses.
I also checked the output on pin 2 of UH8 (/Q), and there's a pulse - even if it's a bit strange... here's the output with the scope at 1v/1ms:
IMG_20120821_120211.jpg
Hope it's good.

However, looks like G10 isn't working. Gonna repleace it, I'll report back the results :)

Cheers,
bano
 
Last edited:
bano,
Before replacing the G10 NAND gate, is it possible to get a photo of both inputs to the G10 gate at the same time? The signals at G10-12 and G10-13. If they both go into the high state together for a period of time, then the G10 output is definitely bad. But if they never go high together, then the problem is is the H8 flip flops or the clock into it.
-Dave
 
Things just got a bit worse :(
When I read your post I had already removed the NAND gate, so I checked the inputs without the chip soldered.
And there was a correct pulse, from what I can say, on both pin 12 and 13... But when I turned it on again to take a photo, they were dead. Both dead. Now there's 0v on pin 13 and 0,5v on pin 12.
I've no clue on what happened... Maybe I shorted the two pins with the probes, but I'm quite confident I've been careful.
Tomorrow I'll solder in another 74ls00, and I'll try to check the flip-flops feeding the signals.
 
Last edited:
Today I replaced G10 and H8, and... it works!
Well, almost:
IMG_20120822_163520.jpg

The computer works, I can type in a simple program and execute it. But the content of the screen is repeated, with different characters... even the blinking cursor is repeated. Sometimes, when turned on, there are more 'dirty' characters.
The repeated rows aren't stable... I made a little video:
http://www.youtube.com/watch?v=n9HxzLwXMTA
(please forgive the audio, we were watching LOTR ^^')

It's a curious glitch... can be caused by faulty video ram?

Thanks,
bano
 
It's a curious glitch... can be caused by faulty video ram?

bano

That's the first thing I thought when I saw it.

Take a look at this video too:

http://www.youtube.com/watch?v=nK22XSnsjk4

I would check voltages at the video RAM ICs and if they're OK I would try replacing them, without becoming mad probing every signal. It's just a couple of 2114 if I'm not wrong, still quite easy and cheap to find. The more common NEC D444c is also fine.
 
Yes, Gabriele's advise is good. It may also be two shorted address lines to the video RAM. The address lines come from a multiplexer that switches between the 6502 processor and the video screen refresh logic. The easiest thing to do will be replacing the 2114 chips if they are on sockets.
 
The easiest thing to do will be replacing the 2114 chips if they are on sockets.

Unfortunately, they weren't socketed.
But with a bit of work, and a generous donation from a suffering 64, here's the result:
IMG_20120824_163343.jpg

Success! Many thanks Dave and Gabriele for your help :)

While I was there, I also added sockets (and chips) for the second row of ram, so I've full 32k now :)

Last thing... the three spare rom sockets on this pet are filled with eproms with the following labels
- D 64 A
- BASICODE-2 821027
- SUPERBIT 821027 (or SUPERQIT, is hand-written)
Do someone have any idea of what they are and how can I use their content?
 
Last edited:
Last thing... the three spare rom sockets on this pet are filled with eproms with the following labels
- D 64 A
- BASICODE-2 821027
- SUPERBIT 821027 (or SUPERQIT, is hand-written)
Do someone have any idea of what they are and how can I use their content?

For the chip in socket D3, try SYS 9*4096
For the chip in socket D4, try SYS 40960
For the chip in socket D5, try SYS 11*4096

It is quite possible you can not run more than one of these programs at a time.
 
BASICODE-2? Interesting!

Basicode was a standard devised by Dutch public radio program "Hobbyskoop", which was a weekly news show about technology. At the end of each show, they would broadcast a program that was recorded on tape by a computer, and users with that particular computer could record it and (hopefully) load the program into their computers. But of course with the increasing number of different computers, it was annoying that only a few people (i.e. those that owned the same computer) could enjoy the program.

So they designed what they called an "esperanto" for saving programs to tape: Basicode. This made it possible for computers to save a program to tape in a way that other computers could understand, as long as both computers had a Basicode saver or loader program.

This alone didn't guarantee that a program would actually work, of course: there were so many different dialects of Basic that it was almost impossible to write a meaningful program that would work on a lot of computers. So then they made Basicode-2 which used the same format to save programs on tape, but specified that programs should start at line 1000 and should use specific subroutines under 1000 to do things like clear the screen or move the cursor to a position on the screen. The subroutines were different for each computer and were not saved to tape of course.

Later on there was also a Basicode 3 which allowed color and (limited) graphics.

Of course there were Basicode and Basicode-2 loaders and savers for the PET (not sure about Basicode-3); they were distributed on a cassette tape that came with a manual. I never heard of a Basicode-2 ROM but I imagine this could have saved a lot of time (not to mention hassle) if you wanted to load and save programs in Basicode. I would be interested if you can make a dump of that.

I don't think I can help you with the other ROMs...

===Jac
 
- D 64 A
- BASICODE-2 821027
- SUPERBIT 821027 (or SUPERQIT, is hand-written)
Do someone have any idea of what they are and how can I use their content?

As it has been pointed out already, you just need to SYS at the correct addresses. It could be interesting if you could dump the contents and make them available if they can't be found elsewhere. However, I imagine those are 2532s, therefore, no, that common cheap Willem programmer won't do them ;)
 
As it has been pointed out already, you just need to SYS at the correct addresses. It could be interesting if you could dump the contents and make them available if they can't be found elsewhere. However, I imagine those are 2532s, therefore, no, that common cheap Willem programmer won't do them ;)

Of course :) As soon as I am back to work, I'll manage tu dump their content.

Actually I found that on D5 there's this toolkit.
SYS40960 hangs the PET, and SYS9*4096 prints "49385" and goes straight to the monitor. So I guess I'll have to wait for the dumps to know more about these two.
 
As it has been pointed out already, you just need to SYS at the correct addresses. It could be interesting if you could dump the contents and make them available if they can't be found elsewhere. However, I imagine those are 2532s, therefore, no, that common cheap Willem programmer won't do them ;)

Of course, since the ROMS are in a machine that can access them at a known address, it shouldn't really be necessary to take them out; you could just write a BASIC program to dump them. Of course you'll need to write the dump to some sort of medium that another computer (with Internet) can read... ;-)

===Jac
 
SYS40960 hangs the PET, and SYS9*4096 prints "49385" and goes straight to the monitor.

That is a good point. You can use the monitor code to look at the ROMs. Start the monitor by jumping to a break instruction (00). Do that with SYS 1024. Once in the monitor, use the memory command to look at the code or at least see where the code starts. For instance to check the socket D4 PROM at $A000:

.M A000 A080

With a little trial and error with addresses, you might find the start of the code. I have a utility called BATPRO that works with BASIC 4 machines that has a disassembler command that is even better. There is most likely a utility for the 3008 that has the same features.
 
Of course you'll need to write the dump to some sort of medium that another computer (with Internet) can read... ;-)
===Jac

Well... he would need to find a 3040, dump it to a diskette, move the diskette to a 1541, make a d64 image of it and post it. Or he could get a PetDisk :p ;)
 
Well... he would need to find a 3040, dump it to a diskette, move the diskette to a 1541, make a d64 image of it and post it. Or he could get a PetDisk :p ;)

Yep... I've no mean of transferring data from/to the pet, atm. Even if the PetDisk seems quite a cool solution :)
I'll stick with the monitor, until I can't dump the eprom.
 
Back
Top