Showing posts with label PET diagnostics. Show all posts
Showing posts with label PET diagnostics. Show all posts

Sunday, 16 June 2024

Repair Parts for Commodore PETs

Over many years of repairing computer like the Commodore PET, I have designed various little boards to replace unobtainum parts, or assist with diagnostics. I get occasional requests for these, so I thought I should list them properly.

Some of those will be well known, such as the PET ROM/RAM and the SD2PET. I will put links to all of those at the end of the post.

PET 6550 Video RAM Replacement

One of these I use a lot is the 6550 Video RAM replacement. Early Commodore PETs used their own MOS ROM and RAM chips, rather than standard tried and tested parts like the 2114 SRAM and standard mask ROMs.

The design of these was an interesting idea that worked differently to the standard parts.

This section grew into a post of it's own. Read all about the MOS 6550 RAM chip here - http://blog.tynemouthsoftware.co.uk/2024/06/mos-6550-ram-chips.html

TLDR: They fail, overheat and start to damage other parts on the boards. If you have a board with 6540s and 6550s, I would strongly recommend removing them and using a PET ROM/RAM board instead.

I designed a board which can be used to replace the video RAM with a modern RAM chip, which means you can preserve any working chips you have and have a cool running stable and reliable machine.

I later revised that to use larger footprint packages that were easier to produce.

And that is the version I have been using.

And the version I have now listed on Tindie.

Assembled and tested and ready to go.

The pins fitted should be suitable for most sockets, and have worked on all the boards I have used these on. I have not needed to replace any of the sockets, and you are unlikely to find 22 pin 400 mil spacing replacement sockets, so if you need to, you would have to use socket strips or solder the board directly to the PCB.

2114 Video RAM replacement

Later PETs used 2114 video RAM. This is much more reliable, but does still occasionally fail, so I have a board that can be used to replace that. The PET video circuitry, particularly the later CRTC based machines, is very picky about RAM timings, and it can sometimes be difficult to find a set of vintage new old stock 2114 chips that work in this situation.

The board is designed to replace 2x2114 static RAM chips used as video RAM on most PET models.

This one is a straight swap. No timings or gating or select issues to address.

That works well on the 2001N machines as above, and is also be usable on 4000 and 8000 series machines. A 8032 has four 2114 chips, so you would need two of these boards.

The 4032 uses the same board with only two of the RAM chips populated.

The spacing is correct for the video RAM on these machines

It could also be useful anywhere there are pairs of 2114 chips with this spacing, although I haven't found any yet. The ZX80 and VIC 20 CR are too close together and the ZX81 is too far apart. The 2 pin VIC has the right spacing, but the pairs are vertically aligned, not side by side. So just the PETs for the moment.

These are available built and tested:

PET 6540-010 Character ROM replacement.

The character ROM on early PET 2001s is a 6540 ROM (6540-010). Later PET 2001s moved to a mask ROM (901439-08).

The PET Character ROM replacement does two jobs. Firstly, it can be used to replace a faulty 6540-010 ROM chip.

Secondly, it allows you to select between two character sets. If you use a PET ROM/RAM to upgrade to BASIC 2 or BASIC 4, this will be the correct character set. BASIC 1 is of limited use due to various bugs, but if for some reason you want to do that, you can select the original character set using jumpers under the ROM chip.

The 6540-010 was the character set for BASIC 1, the one which seems to be a more sensible arrangement. The uppercase characters remain the same in graphics or text mode and you get lowercase characters or more graphical characters in the other mode.

For reasons lost in the mists of time, they reversed that for BASIC 2, and kept that less logical arrangement for BASIC 4. When you move to the other character set, lower case is the norm, and the upper case is moved to where the graphics were. (this is why the 8032 etc. with business keyboards have "ready" prompts and 4032 and other graphics keyboard machines have "READY" prompts)

The board and ROM are available assembled and ready to go.

PET Video Out

I seem to have produced lots of these over the years in various shapes and sizes.

The earliest plugged into the userport and datasette port (for power). I used that for a long time on my PET 2001 test board, but it's not ideal as it blocks the userport for other things, although there is a passthrough for the datasette.

In the end I wasn't happy to sell that as it was quite a job to remove, and it might be possible to damage the edge connector if you go at an angle instead of straight backwards.

I did a version as two boards. Not sure what happened to that. I think a few of these things just came along at the wrong time.

I also had another version at the same time, and I think that is the best one to go with.

This one fits internally onto the monitor connector and gives you composite video. Well it gives you monochrome composite video in NTSC, slightly shifted to the right.

Even in PAL regions with 50Hz power, the PET video output is 60Hz. Many modern monitors support NTSC composite input.

Later CBM 40xx and 80xx models with CRTC based video circuits generate video at different frequencies, not compatible with most monitors, so this can only be used with 2001/2001N/30xx and 9" 40xx machines.

The board has a an onboard 5V regulator to avoid noise, so it need to be clipped to a 9V source, the polarity protection diode is usually an easy choice.

You then have all you need to get composite video out of a PET for bench testing.

The same diode can be used on 2001N boards, but it is a little more crowded there.

As always, available built and tested from my Tindie store

Extra credit section

It is possible to use it on a CRTC based PET, but you need a custom edit ROM, and you need to change the jumpers to cope with the different sync polarity. I left space for jumpers to change this, but they are the sort I used at one point where I pre-wired the jumper with a PCB trace, so you need to cut that if you want to fit a jumper. It seems to work in this case as most users will just ignore the pre-wired jumper section and use it as is. There are also pads for a buffered video output with selectable polarity, but again, that is advanced users only. I may do another version with all that missing and just the standard composite output.

I could supply a version with the patched editor ROM.

But there are also two positions of the monitor connector, so it would need two versions. One in the middle of the board, for the earlier 8032 boards.

And one for the Universal Dynamic 40xx/80xx board where it is right at the bottom edge.

I think I started looking at these options in the past and just bailed out of the whole project as it got too complicated and there were too many options and someone always wants yet another different option. And then someone asks if it will work on a SuperPET and I just give up and delete the listing again. One of the reasons I haven't listed these sort of boards in the past is there are so many caveats about which machines are and are not supported, and a lot of people don't bother reading those and might end up with something unsuitable for their requirements.



Advertisements

This is the full list of links for those parts, plus more that you can see in the picture above.

6550 Video RAM Replacement

2114 Video RAM Replacement

6540-101 Character ROM Replacement

PET Video Out

PET Diagnostics

PET IEEE-488 Diagnostics

PET 2001 Video Glitch Fix

PET ROM/RAM

SD2PET Power Tap

Dual 9 way D Userport Joystick

Further links can be found here:

Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here, and some of these posts contain bits from several Patreon posts (they also got an extra post covering the history of my 6550 video RAM board). This also includes access to my Patreon only Discord server for even more regular updates.

Sunday, 25 February 2024

Commodore PET 2001 Repair Part 2 - IEEE-488 Bus

In the previous post, I got the PET 2001 to the stage it was running, and could load from cassette. However, the IEEE-488 port was not working, the usual "?Device not present error".

As part of some of the other testing, I had already swapped out the easy to replace socketed chips, the 6502, 6520s and 6522 for known working chips, but the problem was still present.

I was concerned about some rather dubious work that had been done in the past on some of the chips related to the keyboard 6520 and the 6522.

I was starting to think I was going to have to undo a lot of that work, clean up, repair traces and through hole plating and refit. However, before I tackle any of that, I'd like to check with the IEEE-488 diagnostics board in case it is something else.

This has sixteen LEDs which light to indicate which of the sixteen signals on the bus are currently active (active = asserted = driven low; inactive = not asserted = floats high)

The first test is to reset the PET, and see the IFC LED lights briefly and then goes out, which it did.

REN is always lit as the PET has this hard wired to ground, so it acts as a sort of power LED. SRQ is not driven, so floats low, and registers as active.

The IEEE-488 bus is implemented on the PET using two pins for most of the signals, one to write, and one to read. These two signals go to the MC3446 buffer chips, and out to a single pin on the IEEE-488 bus connector.

The result of this is you can sort of get it to test itself, by writing to the output pins and reading back on the inputs to see if they change. A single bus signal is shown as an example. PB0 writes to the bus via one of the MC3446 drivers, and this is read back though another MC3446 buffer to PA0.

For more information, see this previous post - http://blog.tynemouthsoftware.co.uk/2023/10/pet-ieee-488-diagnostics-updated-version.html

I got lucky first time.

I wrote all zeroes to the data port, which should have asserted all 8 data signals and lit all 8 green LEDs.

Four of the LEDs have changed correctly, but the other 4 have not changed.

Completing the cycle confirms the problem, When it should be 0 ($00), it is 32 ($20), and when it should be 255 ($FF), it is 47 ($2F). It is easier to think of these in hex, as that more easily translates to binary. So again, this is showing the lower 4 bits are working correctly, and the upper 4 are stuck with 1111 on the bus and reading back as 0010.

The 2001 has a lovely hand drawn schematic where they clearly ran out of room and had to squash up the last of the signals on the bus.

Looking at the schematic, the four bits that are not working are controlled by the MC3446 at A8, the middle of these three chips. At least two of which appear to have been changed already as none of them match. Based on the soldering, I guess this was long before the other "repair" work that had been done on this board. The four working data lines and control lines use other chips, so it points to that one chip being bad.

I double checked with the 'scope. The signals on all 8 bits were changing on the output of the 6520, and the other MC3446s, just nothing on the middle MC3446.

I went through the other signals, and all the other signals were responding correctly.

IFC couldn't be lit with the rest as that is driven from the reset line (and has been previously verified).

(note EOI out is used on the 2001 to also control video blanking, so when it is active like this, it disables the video until you deactivate EOI or reset the PET)

Time for a new MC3446. I don't have many of these left. Hope I don't have too many more faulty PETs to deal with.

And it is possible to replace it without damaging traces or wrecking the board.

Everything seems to be still intact.

Time to repeat the tests.

And there we go, all data bits responding correctly.

Time to try an SD2PET.

Always fun to see all the LEDs flashing away when things load.

And this time I loaded Invaders.

That all seems to be working.

This was with a variety of replacement parts, time to put all the originals (or nearest we have) back.

Original 6520 reinstalled. Still working.

Non-original Synertek 6522 reinstalled. Still working.

Non-original MC6821 (or whatever it was before it was remarked) reinstalled. Still working.

Fake 6502 (or also whatever it was before it was remarked) reinstalled and still working.

I am leaving the PET ROM/RAM in place as the original ROMs had failed and there is no more than about 4K of working 6550 RAM chips.

Speaking of which, the last thing to be replaced were two working 6550 RAM chips for the video RAM, scavenged from the main RAM.

And that is everything back in place. Time for some more testing, a quick bit of Tut-Tut.

Everything seems to be working now, so I will give that a bit more testing and then it is ready to go back...........

Hmmmm, I don't remember spikes on the walls in 3D Monster Maze.

I wired up a new logic analyser I have been testing, to try to verify this is what I think it is (a similar problem to that seen on the Minstrel 2 which is inherent in the ZX80 design).

But it appears it does not want to play ball today.

OK, I think there may be a part 3.

How ironic, back to where we started. "HW_no_device_found", the modern equivalent of "?device not present error".


Advertisements

SD2PET

Special offer: There is currently £25 off the SD2PET. This is on backorder, which means TFW8b has all the bits to make more, but they have not yet completed the process of being built, programmed, tested, cased and tested again. But you can order safe in the knowledge that they will be ready to ship shortly. The discount will be removed once they are in stock, so act quick if you want a bargain.

https://www.tfw8b.com/product/sd2pet-commodore-pet/

PET ROM/RAM

As mentioned above, many PET faults are down to bad ROM chips or bad RAM chips, and a PET ROM/RAM chip can often help bypass those. You can order one from The Future Was 8 bit.

https://www.tfw8b.com/product/commodore-pet-rom-ram/

More info in a previous post:

http://blog.tynemouthsoftware.co.uk/2022/08/testing-pet-rom-ram-boards.html

Mini PET B

Or if you want an easier solution, the Mini PET B is a drop in replacement for a PET / CBM 40 column 32K motherboard.

More info in a previous post:

http://blog.tynemouthsoftware.co.uk/2023/10/building-a-mini-pet-b-kit.html

Mini PET B at SellMyRetro:

PET IEEE-488 Diagnostics

The PET IEEE-488 Diagnostics module is available from my SellMyRetro store, in assembled or kit form.

More info in a previous post:

http://blog.tynemouthsoftware.co.uk/2023/10/pet-ieee-488-diagnostics-updated-version.html

PET IEEE-488 Diagnostics module at SellMyRetro:

PET Diagnostics

The PET Diagnostics modules are available from my SellMyRetro store:

PET Dual Userport Joystick

I have recently revived the PET dual userport joystick, as a through hole version, available from my SellMyRetro store:

Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here, and some of these posts contain bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.

https://www.patreon.com/tynemouthsoftware