Skip to main content

Featured

TI99/4a Joystick Adapter (with 3D printed housing) and a FlashROM 99 Installation

  Apologies for the delay with this entry; varied reasons include school holidays, two birthdays and some minor repairs of some retro console birthday gifts! Please feel free to use my PCB and 3D printed housing designs found on my Github and Thingiverse should you wish to make your own joystick adapter. Here is the TI994a working with the FlashRom99 and my Joystick Adapter circuit. Here are all the components required for this mod. The gerber files for my PCB design can be found on my Github. https://github.com/Alleged-Geek/TI99-4a-Joystick-Adapter/   And you are looking for the zip file named below if you are going to send the gerber file off to be manufactured. ti99-4a-adapter_2022-07-27.zip   My github also contains stl files for printing the housing.   And here is my version of the schematic diagram. You will need 10 X IN4148 signal diodes which can be found on eBay. 1 X DB9 D-SUB 9 Pin Female connector, again found on eBay. 2 X DB9 D-SUB 9 Pin Male connector al...

Make your own Diagnostics Rom with a serial and cassette port harness (Loop-Back connectors) & Fitting Heatsinks to the TED IC and PLA IC



 

Hi there, welcome to the second entry in my series about the restoration, repair and modification of my Commodore C16.

 

In this entry I am demonstrating how to make your own Diagnostics ROM chip using a M27128 EPROM.

 

I will also be looking at protecting the TED and PLA IC’s by adding heatsinks to them in a bid to prolong their life as they do tend to run rather warm.

As Usual, the entry will be a step by step guide with absolutely nothing left out.

This mod would not be possible without all the hard work from Rob Clarke and his fantastic piece of coding for the Diag264 .

 

Many thanks for making this available to the public.

The bin file and instructions for this can be found on

 

www.inchocks.co.uk/commodore/Diag264/

 

Thank you again Rob

 

Tools required for this mod are:

 

Cutters

Pliers

Wire Strippers

Helping Hands

Soldering Iron

Heatgun

Screwdriver

Spudger

An EPROM Eraser and Programmer (I used a TL866II Plus)

I also used a label maker but that is not essential.




 

Parts required for this mod are:

7 pin mini-din plug

6 pin Din plug

2 X 330Ω Resistors

Heatshrink sleeving

Some equipment wire

M27128AFI Eprom

28 pin 0.5” Pitch Heatsink

40 pin 0.5” Pitch heatsink (In this case I used some SSD M2 Heatsinks)

Heatsink Compound



The First thing I did was to erase the EPROM in my Eprom Eraser.

This takes typically 6 minutes.

Whilst it is doing that, fire up your computer and browse to the following URL where you will find the Commodore C16 Kernal Rom bin file.

 

www.inchocks.co.uk/commodore/Diag264/

Scroll down to the DOWNLOAD HERE! And save the zip file to your computer.

I saved the Zip file to my desktop.

Unzip using your choice of file extractor; I use WinRar but the file will extract using the standard Windows extractor.

The compressed fine contains both PAL and NTSC image files as well as a pdf which has the same information found on the website.

The software compatible with my eprom programmer (the TL866II Plus) is Xgpro, double click that and launch the programme.

Once loaded, click on the Select IC icon.


 

Then search for a M27128; once found, select ST as the manufacturer and M27128A @DIP28 as the device


After it has been selected, Click the READ icon along the top row.

Then click Read on the pop up window.

If the IC has been erased correctly, all the data in the data field will read ‘FF’

Now click LOAD (found at the top left of the window)

Then select the diag264_097_pal_kernal.bin file (if you are in the PAL region; USA select the diag264_097_ntsc_kernal.bin file)


 

I didn’t have to change any of the settings on the Xgpro software before I burned the Eprom so I have included a picture of the correct ‘default’ settings from Xgpro.


Click OK and you should see the data change from ‘FF’’s in the data field to  something looking like this.


 

Then click PROG found at the top of the Xgpro software window.


Then click Programme

You should notice that the TL866II Plus’s red LED to the left will start blinking.


 

Once completed, you should see a screen like this.


Click BACK then we are going to check that the bin file loaded correctly by clicking on the READ icon.

Once the read has finished click on the BACK button and the data should look like this.

And that is the M27128 Eprom programmed! Well done!

If you don’t have access to an Eprom programmer then Rob Clarke offers to sell you one for the very reasonable cost of part plus postage; You may be able to find some on eBay but be wary as some have had modified bin files and may not work as well as they should.

 

My personal opinion here is that if Rob is agreeable to write and send you a programmed Eprom for the costs of parts plus postage then that is a very good deal! Don’t let others profit from something Rob has spent many days and countless hours developing! Thank you again Rob for making your diagnostics rom available to the public!

 

The Diagnostics Rom you have just written will work on its own and carry out the usual checks but I was really interested in the Serial and Cassette Port checks so I decided to make what Rob calls ‘Harnesses’

 

I started with the Serial harness; for this you will require a 6 pin DIN plug. I had a 5 pin version of this type of plug in stock but as the middle pin (6) wasn’t required for this test I was able to get away with it.

Below is the wiring diagram for the harness.

As there is plenty of room within the DIN plug, this is a relatively easy build. However, I do recommend using heatshrink sleeving to insulate the wiring between pins 3 and 4 of the DIN plug.

 

Split apart the DIN plug and place the plastic part in some helping hands.

Take a piece of equipment wire and strip twist and tin about 5mm of insulation from the end of it.

Then cut about 12mm of 3mm heatshrink sleeving.

Now add solder to solder cups of pins 3 and 4 of the DIN plug.

Then heat and melt the solder of either pin 3 or 4 and slide the tinned wire into the solder cup.

Slide the 12mm heatshrink over the wire and pin making sure that no exposed metal is showing.

Now cut the wire to length leaving enough room to fit another piece of 12mm heatshrink sleeving so that you can insulate the second pin on the DIN plug.

Strip, twist and tin about 5mm of the wire then slide the 12mm length of heatshrink over the wire.

The it is just a case of repeating the above; heat and melt the solder in the remaining solder cup and slide the wire into the molten solder.

After that, slide the heatshrink sleeving over the pin making sure that no exposed metal is showing.

Then use a heatgun to shrink down the heatshrink.

Now refit the DIN plug and that is the serial port harness complete.

 

With the DIN plug out of the way it is time to make the Cassette port harness.

Below is a picture of the wiring diagram taken from the solder side of the mini DIN plug.


 

This is a lot more fiddly than the Serial Port as the pins in the 7 pin Mini DIN plug are very close together.

I bought some 8 pin Mini Din Plugs to make some joystick adapter cables so I decided to use one of them and simply cut the extra pin off of the plug. This proved to be quite difficult and I broke some pins on the first plug I tried it on.

 

It may be advisable to order some  7 pin Mini DIN pre made cables for this then solder the resistors on to the ends then join the two wires which will give you the link between Pin 4 and 5.

 

Disassemble the Mini DIN plug.

I then broke the extra pin off by carefully bending it until it snapped off with my long nosed pliers.

Place the mini DIN plug in some helping hands as this will make it much easier to solder on too.

I soldered a white piece of equipment wire on to pin 7 first; Strip, twist and tin about 5mm insulation from the white wire.

Add solder to pin 7 of the mini DIN plug.

Then do a butt solder joint (simply melt the solder on pin 7 and add the striped wire to the pin so that it lies flat against the length of the pin) to solder the white wire on to pin 7.


Cut 12mm of heatshrink sleeving then fit it over the wire and pin of the DIN plug then use your heatgun to shrink down the sleeving.


 

Now repeat the process for pin 6; in this case I used yellow equipment wire.

And for pin 5 I used green equipment wire.

For Pin 3 I used Blue wire.

Pin 3 of the DIN plug is connected directly on to pin 4 so I cut the wire to length, stripped and tinned the end, placed heatshrink over the wire then soldered the blue wire on to pin 4.


 

Now, If I had been thinking clearly, I would have fitted the DIN plug together again before soldering on the resistors to the three free wires. But I didn’t! so refitting the DIN plug was awkward to say the least LOL.

 

To make the resistor network, join both resistors in series by twisting the legs together and place it on the helping hands.

 

Add solder to the twisted pair of legs and trim one of the legs from the twisted pair.

Then trim down the three remaining pins (so that about 5-7mm is left showing) and add solder to the ends.

Cut the white wire to length.

Strip, twist and tin the end of the wire then fit 12mm of heatshrink sleeving over the wire and do a butt solder joint on to the left sided resistor leg.

Then slide the heatshrink sleeving completely over the resistor and solder joint and use your heatgun to shrink it down.

Repeat the process for the yellow wire and solder it on to the middle leg of the resistor network.

Now measure and cut the Blue wire and repeat the process above but solder it to the remaining right sided leg of the resistor network.

I then spent a frustrating 5 minutes trying to poke the resisters through the cable gland of the DIN plug! Don’t be like me… solder the resistors on to the wires after you reassemble the DIN plug… it will make things so much easier for you!

Now it is time to replace the original kernel rom in the C16 with the programmed diagnostics rom.

I printed a label to cover the window on the Eprom to prevent light getting in (it also clearly identifies the chip should I need to use it again)

Then I stuck it over the window of the Eprom.

Before working on the inside of the C16 make sure that you are properly earthed. I wear an earth strap on my ankle so that it does not interfere with my hands.

 

Now open up the C16; I didn’t remove the lid completely when replacing the chip but upon reflection, it may have been easier to swap the chip if I had.


 

Here I identifying the Kernal chip we are going to replace; I am also pointing at the notch which identifies which way round you should insert the diagnostics Eprom.


 

Now there are chip extraction tools on the market to help you remove these chips, some are better than others but I prefer to lever it out gently with a plastic spudger.

 

Use the spudger to lever the chip up gently from either side; again this would have been easier if I had removed the lid of the C16.


 

Now fit the Eprom in the IC socket making sure that the notch goes towards the left of the C16 as you look into it from the front.


Then once fitted, refit the lid and plug in the Serial and Cassette harnesses. Then set up the C16 and test it with the diagnostics ROM fitted.

Here I am just about to switch the C16 on… nervous times!

 

Once switched on, the screen filled with this.

Looking good so far

The screen will then quickly test the Low Ram and Bank logic; both passed… looking very good!

The screen will then flash with different colours then you will hopefully have a successful High Ram test.

The Basic and Kernal rom test is next.

My C16 does not have a FUNC-LO or HI rom fitted so the tests simply read SKIP.

Then it was the keyboard test; as I knew that the keyboard already worked, I didn’t bother making the connector for this test. It does take a wee bit of time doing this test without the test connector fitted and will eventually come up with the following error.

This is nothing to worry about.

It was the same with the joystick port test; I could have made my own testing harness but decided that I am going to make some joystick adapters for a later entry so I may go back and test this function again.

 

Almost instantly the diagnostics ROM checks the Serial and Cassette ports; these are of special interest to me as I plan to upgrade the C16 using the Serial port in the future.

 

I was pleased to see that both had passed the tests!

Whilst doing the Interrupt test, the border will flicker green and white and you should have a screen looking like this if it has passed the test.

 

The next test is the colour palette test, you will see a rather funky looking series of screen as it cycles the C16’s extensive colour palette. Please note that it will also play a scale of sounds whilst doing this test.


After that test the ROM will check the C16’s graphics modes; you should see a screen looking like this.

Then the rom will perform a smooth scrolling test where the image on screen will move around smoothly whilst playing a white noise generator tone.

After that, the tests have been completed and you should have a screen looking like this.

All looking good, you will hear a Woo-Hoo! with a screenshot like this.

The screen will then display Rob’s more than reasonable request about not redistributing any modified ROM. I fully agree with Rob on this one, I know the time, effort and skill Rob has put into this wonderful piece of coding.


 

Then the diagnostics ROM will repeat the test.

 

All working, I decided to try and prolong the life of the TED and PLA chips by fitting heatsinks to them.

 

The TED chip was a no brainer as I know how sensitive and prone to failure they are (as well as being hard to find and a wee bit expensive to replace)

But when I was poking about inside the C16 I found that the PLA chip was running a wee bit warm as well.

 

Getting a 28 pin 0.5” Pitch Heatsink was relatively easy and at a reasonable price; I think I paid under £5 for two

 

The 40 pin 0.5” pitch heatsink was a whole different matter; I couldn’t find one under the £7 mark so I decided to think out the box. A whuile ago I modified one of my ZX81’s and got a reasonably priced heatsink for the Z80 CPU. It was about the same size but a wee bit thinner than the 28 pin heatsink.

 

After doing a wee bit of research I found that SSD M2 heatsinks were approximately the same size as a 40 pin heatsink and they also had the lower profile thickness.

 

So I looked to Ali Express and have just bought a pile of heatsinks for around £1.50 each. They also included an adhesive thermal pad which is fantastic value.

 

Below is a picture of both heatsinks I planned to use.


 

Before we can fit the heatsinks it is a good idea to clean the IC’s before fitting. As you can see, the Ted chip has some heatsink compound on it for some reason?

 

I have highlighted both the TED chip (40 pin IC) and the PLA chip (28 pin IC)

I replaced the diagnostics ROM with the original Kernal ROM ensuring that it was placed in the correct orientation. Removal of the Diagnostics ROM is the same as the removal of the Kernal ROM as seen earlier.

Below is the orientation of the Kernal chip.


 

 

Now it is time to clean the chips; for this I used some IPA and cotton buds.

As you can see below, the TED chip took a bit of cleaning due to the heatsink compound already on the chip.


 

Next up I cleaned the PLA chip.


I also cleaned the CPU as I am considering putting a heatsink on that at a later date (ordered the heatsink and waiting for it to arrive)

Before we can fit the 40 pin heatsink we need to stick on the thermal adhesive pad. It is a good idea to clean the flat area of the heatsink with the supplied IPA wipe then dry it off with the suppled dry wipe.

 

Then stick on the adhesive thermal pad.


 

Then fit the heatsink to the TED chip.

 


 

Then fit the 28 pin heatsink to the PLA chip. This heatsink came with the adhesive thermal pad already fitted.

Now refit the C16 and do the final test for this entry.

Remember to remove the Serial and Cassette DIN plugs, plug everything in.

And…

Success!

A YouTube clip of the process from start to finish can be found below.


 

Thank you for taking the time to read this long entry, I hope that you have found this useful.

If you have any questions or queries about this mod then please feel free to leave a comment or email me directly at

 

Alleged-geek@aol.com

 

The next mod I am planning to do to this wonderful machine is the 64k memory upgrade… stay tuned!

 

Finally I would again like to thank Rob Clarke and his amazing Diag264 ROM for making it possible to do this series of tests!

 

Alleged-Geek.

 

 

Comments