The joystick mod was incomplete – there are some cut wires and an unused DPDT switch nearby that is unused. It’s possible that the mod was completed or stopped working and was disabled.
Commonly, a joystick was added by using the switches to tug down on D[4:0] using the joystick switches. Apparently, sometimes this wasn’t even gated with an address, but it looks like this mod had some address decoding.
Reverse engineering it shows three signals ANDed together. One of these would have been IN_L and the other two would have been address lines (both 0). This doesn’t fully decode the I/O space but does restrict it to a quarter of the space. This at least gets it away from the cassette interface and the high-res graphics at 255 and 254.
I found an instruction sheet for the “Alpha” joystick. It has the same data line assignments as the mod:
D0 UP
D1 DOWN
D2 LEFT
D3 RIGHT
D4 FIRE
The instructions indicate the address is 0 which is again consistent.
It notes that some games expect FIRE to be indicated by D0 and D1 being low simultaneously (STICK-80 vs TRISSTICK). I expect that the toggle switch was used to configure the interface accordingly.
I wired it all up. Being something of a tangled mess of flying leads makes it very easy to break wires, so I’ve added an inline connector.
I used the alpha test program:
Alas – no joy. The scope showed that there was no IN strobe and this was because of a dwarf pulse at Z23-8 (74LS32). I replaced the IC and it came good.
I have not tested this yet. An additional character RAM has been added at Z46. The machine seems really designed to have this IC because the modification seems quite simple. This is covered by Technical bulletin I:35.
The lower case version of scripsit “SCRIPSIT/LC” demonstrates it.
The reset switch just parallels the existing reset switch. I added a series connector so that the lid could be separated.
Top cover connections
The mods add an LED (turbo), reset button, and joystick mod. This makes it impossible to remove the cover from the main board. I’ve added in-line connectors so it can be detached.
The machine came with a high-resolution add-on / modification by Microware Computing Services. It seems to be an unusual thing and is probably of limited use but is interesting nevertheless.
The Model I in its base form allocates 6 bits for each character on its 64 x 16 character display. Each character consists of 6 x 12 pixels. In text mode each character is translated from its 6 bit representation to a 6×12 pixel “picture” by a PROM. The PROM (according to legend) supports 128 characters including lower case letters. A common mod adds one more video ram chip to allow access to the other 64 characters.
The video RAM is 8 bits wide (with no bit 6) with bit 7 indicating that the character is graphic character. Each of the 6 bits can be used to turn on or off one of 6 graphic cells each of which is 2×3 pixels ie half the width and one third the height of a character. This gives “low resolution graphics”.
The high resolution mod drops into the socket for original PROM. It includes an EPROM that fulfils the role of the PROM when the high resolution mode is off. When the high resolution mode is on the mod takes over.
Physically, the mod consists of a box which hangs off the expansion port, a small daughterboard that sits in the main unit. The daughterboard plugs into the original ROM socket.
The mod includes 2k of RAM which is used to store 16 bytes for each of 128 graphics characters. Only 6 bits are used (characters are 6 pixels wide) and only 12 bytes are used (characters are 12 pixels high). Note – this is not video RAM – its is more like the original PROM but writeable.
The RAM is accessed via the expansion bus. It is mapped over the system ROM so it is write-only memory which makes it a little hard to test.
The RAM is dual ported and a register in I/O space (accessed via the expansion interface) is used to control whether data is read by the graphics generator or written to as memory.
The bottom 3 bits of the I/O address are don’t cares.
OUT 130, 1 -> Character data read by graphics generator
OUT 140, 1 -> Character data writeable starting at #0000
A second register in I/O space is used to select between the standard text/graphics or the high resolution graphics.
OUT 150, 1 -> Use the default text/graphics (holds the high res graphics shift register in reset)
OUT 155,1 -> Use high resolution graphics (holds the text and standard graphics registers in reset)
There are demonstration disks show how the graphics work.
Boot up on the demo disk
Load basic. Hit return at “number of files” and 60000 at “memory”.
The system did not come with a floppy disk drive. I did my set-to work using a Dick Smith drive from my System 80 and my generic drive unit.
Ben G from the Australian Vintage Computer Collectors had a genuine one, though, which he passed on at very reasonable cost (not the first time he’s helped me out).
I made up a new cable, as I’d been using the System 80 cable. The Tandy cables used connector pin removal to set the drive numbers – all the selects are connected inside the drives. I really need to pull some pins from the connector but for the short term I taped over DS1 (p12), DS2 (P14), and DS3 (p32) leaving just DS0 (p10) on the drive connector for the Tandy floppy drive.
As is often the case with 40-year-old drives, it did not immediately work. I did the usual clean up, lubrication, and alignment (using Imagedisk) but it had a peculiar issue of losing half the head steps. This turned out to be a timing problem with two monostables that control the stepper motor. One had an adjustment pot, but I had to change the resistor on the other one.
Apparently i couldn’t find a schematic.
Once the timing issue was resolved, the drive could be aligned. Adjustment is by loosening the motor screws and rotating the motor body, but it didn’t have enough play, so i had to move the shaft coupling a little as well.
I found the cable unreliable and after several frustrating hours of checking and rechecking I found that the floppy drive connector on the expansion box had been ever so slightly modified. One side had been filed down – presumably to accommodate a tight floppy cable connector.
The connectors I used on my new cable were just a little wider, so it was possible to be out by half to one pin, resulting in shorts/opens. I need to build up the connector again, but it works fine as long as you know and position correctly!
The Commodore PET (branded CBM in some markets) computer is an icon of early microcomputer history. There are very few in Australia and the only ones I have seen in South Australia was the one in the Adelaide Uni Physics labs back in 1983 and one imported from the UK. I am aware of one other that was for sale on gumtree about 5 years ago.
It was some surprise then that I spotted this image on facebook marketplace. I was further surprised when I contacted the seller and he said he had a second machine covered in pigeon poo.
Presentation is everything, so i was interested of course. We came to an arrangement for the first machine and i drove (with my wife for company) up to Snowtown (a town with a story) where it was located.
The site was an ex Telstra maintenance site, long since abandoned to the pigeons and probably a myriad of other undesirables. Just walking into the building was a health risk and the smell was unbelievable.
I paid a smaller sum for the filthiest computer ever, and another small donation got me a very disreputable 2031 disk drive. The other drive is not related to these machines.
I pondered my sanity as I put them on a drop sheet in the back of the car.
I do have some standards about what comes into my “clean” shed and both machines were well below the threshold, so they went into the “dirty” shed first.
Opening the covers proved confronting. The first was not too bad but very dirty and corroded. The second machine and the drive almost made me gag. They were full of some combination of pigeon fluff and pigeon manure, which I suspect just blew in over a long period. I donned rubber gloves and a face mask and began the ugly task of removing the debris, first in handfuls and then with the vacuum cleaner.
It was clear that I needed to disassemble the second machine and the drive unit if I was to get all of the offending material out – and that was a necessary first step to just being able to stomach and store the machines.
Having got most of the innards clear of crap, I started washing down the cases. This was an unpleasant task, but was not difficult. Pigeon mature seems to wash off fairly easily, and the largely plastic construction seems to have been unaffected by its coating. Some stains remained, and the metal parts had some corrosion, but I was happy with the improvement.
The second keyboard was set aside for the moment.
At this point the machines were allowed into the clean shed, although they were far from clean. Remarkably, though, they both seemed to be complete – not even a missing keycap. The condition of the mainboards was poor, though.
These machines are both model 4016-N which means that originally they would have had 16k of RAM and 40 column text.
They both seem to have been upgraded to 32k of RAM and 80 column text.
I thought initially that they must have been used by Telstra, and perhaps they were, but they clearly once belonged to TAFE.
These machines were produced late in the PET’s product life. They were obviously under cost pressure, eg there are a lot of places where rivets were used instead of screws.
80 columns is handy for things like word processing, but a lot of the games were produced for the 40 column models. It is possible to put the machines into a 40 column mode, but the characters are still narrow and the proportions changed.
These machines use universal boards so they can be reconfigured to 40 columns – this would require several links to be changed and a new edit ROM.
There was a lot to be done before any reconfiguration would be on the agenda.
Both boards have the same set of ROMs. Some of the ROMs on the first board are soldered in but all of the ROMs on the second board are socketed. The Proteus programmer was able to read the EPROMs, but the ROMs are a little more difficult. The program pin on the EPROM is a chip enable on the ROMs so it was necessary to make up an adapter socket for the ROMs to pull this pin high.
Board
Type
Label
Socketed
Location
Address
Condition
Description
2
EPROM
Y
UD12
0x9000
36864
-28672
Word Processor
2
EPROM
Y
UD11
0xA000
40960
-24576
Toolkit / Extramon
2
ROM
901465-23
Y
UD10
0xB000
45056
-20480
Verified
Character ROM
2
ROM
901465-20
Y
UD9
0xC000
44152
-16384
Verified
Basic 4
2
ROM
901465-21
Y
UD8
0xD000
53248
-12288
Verified
Basic 4
2
EPROM
Unlabelled.
Y
UD7
0xE000
55344
-8192
Looks plausible but doesn’t exactly match any candidates
Probably an edit ROM of which there are many.
2
ROM
901465-22
Y
UD6
0xF000
61440
-4096
Verified
Kernal
2
ROM
901447-10
Y
Verified – file size is incorrect but data is good
Both cards have significant corrosion and were very dirty.
The process was as follows:
Wash in soapy water. Scrub with toothbrush. Blow off and allow to dry.
Inspect and gently remove socketed ICs (one had corroded on to a socket).
Apply soapy vinegar, rinse.
Apply soapy vinegar, rinse. Blow off and allow to dry.
Apply de-oxit to corroded legs and leave for 24 hours.
Clean legs with wire brush on Dremel.
Clean with soapy water. Blow off and allow to dry.
Most ICs have oxidised legs. The legs on socketed ICs can be easily checked for integrity – in some cases, a small nudge was sufficient to make them fall off. It’s harder to check those that are directly soldered. It appears that in many cases the plating has been penetrated and is prone to flaking. I attempted to re-tin some ic legs, but the solder would not take even with lots of flux – I suspect the material required electroplating and that’s not happening. De-oxit is probably the only practical way to protect them. Of course, they could all be replaced, but that will be time-consuming and will risk damage to the PCB.
The MC3446 line drivers (for the IEEE-488 bus) are located near one of the case openings. One had legs corroded through. The others were in poor shape. They have been replaced with new ICs and sockets.
The PCBs are in generally good condition. The edge connectors had lost some plating, but the oxide has been removed with deoxit and the copper re-tinned.
On the second board, a damaged socket was replaced. I favour machined sockets, but this board never used them and the sockets that have been added in the past are either zero insertion force or dual wipe (the originals are probably single wipe).
The wire to the piezo was missing, so it has been replaced.
The configuration links in the middle of the board were untidy and used the wrong gauge wire. They have been replaced.
Other links have been made with wire wrap. The wires were unnecessarily long, making them vulnerable to breaking. The posts were too high, so they were prone to bending. The posts were cut down and the wire wrap redone.
Remove the keyboard from the bottom of the computer cover.
Remove the cable.
Remove the metal clip grounding the foil cover to the keyboard.
Wipe over the foil cover and set it aside.
Blow out the keyboard.
Remove the key caps with puller. The spacebar requires two sturdy pairs of long nose pliers
Store springs.
Wash keycaps in warm soapy water using a soft toothbrush to scrub and allow to dry.
Once dry, wipe over once more with a damp cloth.
Blow off the residual loose dirt from the keyboard assembly
Desolder the caps lock switch.
Remove the pcb screws.
Clean the pcb with paper towel and IPA.
Remove and store the caps lock switch (2 little levers).
Store the barrels and keypads.
Scrub the key frame in warm soapy water. Blow off and allow to dry.
Wash the barrels in warm soapy water and allow to dry.
Scrub the cable in warm soapy water, blow out, and allow to dry.
Put the rubbers in a container and shake off as much dust as possible.
Clean both sides of rubbers with cotton buds and IPA.
Put the barrels back in the key frame and insert the rubbers.
Clean them again.
Re-coat rubbers with conductive coating.
Inspect carefully for lint and remove.
Reassemble.
Test with harness and meter.
The conductive coating has to be mixed and then used within a couple of days so it makes sense to do both keyboards at the same time.
I did start with the second keyboard because it was in an awful state.
This is the first keyboard (from the cleaner machine).
The contacts were coated using a CircuitWorks Rubber Keypad Repair Kit. This kit is quite expensive and a bit laborious to apply, but it does the job. It looks like it’s using a silver paint. The key resistances were very low. There was enough in a kit to easily do the 140 or so keys.
The shift lock keys was not working. While looking for a replacement online I found a video where the author had worked out how to open the switch by twisting the terminals, so I thought it was worth having a look inside. It was filthy – I’m not sure how this much ick could get inside a switch with no significant orifice.
It was built like a puzzle. Cute little mechanism with lots of pieces. After a clean, things looked better.
There is a spring as well – fortunately it was still in the parts container!
It took a while to reassemble it. The pins screw through the contacts to create a hole and contacts at the same time. I added some aluminium foil to make sure the contact was still good. I was relieved to find that the switch was working.
Testing just requires a keyboard cable from the computer and a jig which joins all the columns to all the rows. Then each key can be tried. This can be done before putting all the key caps on by turning the keyboard upside down and pressing upwards. Otherwise, without the caps and springs, all the keys are activated at the same time.