The Dos and Don'ts of using an EPROM as PLA in a C64.
Posted: Tue Jun 11, 2019 10:29 pm
Recently, on the VIC-20 Denial forum, I had a very interesting exchange with a friendly chap from down under aka Australia about using a low cost PROM IC as a substitute for the Programmable Logic Array (PLA for short) in a C64 as the genuine item often fails because, honestly, it's rather low tech, heats a lot, consumes a lot of power. Some of them were even made with flawed chemicals.
Of course, I offer PLAnkton, which is the total peace of mind solution but some prefer to have something they can say they saved money on by doing themselves. However, few have the necessary instruments to be really sure they put in place solution that will fix problems instead of causing more.
As such, I have studied with my newer oscilloscope, a TDS3014B I bought only a month before going to the World of Commodore in December 2017, what comes out of a variety of 64k x 8 bit (E)PROMs and the results are quite interesting.
I will be posting them here.
The glitch tester circuit
Before I start with the oscilloscope results, I would to return on something I mentioned back in 2015. I suggested a little circuit with very simple and inexpensive components to check in a PLA generates unwanted spurious signals. This circuit is designed to be connected to the cartridge port but all the involved energy source and signals can also be found at the PLA (U17) or the socket of that chip. Therefore it is possible to create 2 different implementations of that circuit.
If you prefer to have this checker circuit attached at the PLA instead of the cartridge port. !ROMH and !ROML can be found at pins 10 and 11 of U17. Ground is at pin 14 and +5Vdc is at pin 28.
A more sensitive version of this circuit can be made by using a 74HC279 instead of the suggested 74LS279 but the HC version may be more difficult to get as these are out of production. They may be found on eBay and Alibaba but you should avoid getting it from any Chinese seller as you may end up getting a fake circuit.
Theory of operation
A normal C64 will check for the presence of a cartridge at power-up but once it has determined there isn't any, it will no longer try to access the areas which may be mapped to !ROMH and !ROML if you leave the C64 idling with only the cursor flashing and no software running. After the initial check, !ROMH and !ROML should remain completely inactive if the PLA is glitch free.
Using the tester
To use this circuit you must make sure you use the original C64 kernal (no JiffyDOS or things like that) and that no cartridge is attached to your cartridge port.
When the C64 is first turned on, it will check for the presence of a cartridge and this will trigger the red LED to turn on. Press the button to turn it off and see what happens. If your PLA is not generating glitches, the LED will stay off indefinitely. If there are glitches, they will trigger the LED back on.
Normally, !ROMH and !ROML will always stay above 3V after the initial check and the set/reset latch will stay inactive. The 74LS279 will detect any glitch which brings the voltage below the threshold voltage for TTL logic circuits, about 1.5V. If you used the 74HC279 then the threshold voltage is about 2.5V and the circuit will detect any glitch which brings the voltage below the threshold voltage for 5V CMOS logic circuits.
Of course, I offer PLAnkton, which is the total peace of mind solution but some prefer to have something they can say they saved money on by doing themselves. However, few have the necessary instruments to be really sure they put in place solution that will fix problems instead of causing more.
As such, I have studied with my newer oscilloscope, a TDS3014B I bought only a month before going to the World of Commodore in December 2017, what comes out of a variety of 64k x 8 bit (E)PROMs and the results are quite interesting.
I will be posting them here.
The glitch tester circuit
Before I start with the oscilloscope results, I would to return on something I mentioned back in 2015. I suggested a little circuit with very simple and inexpensive components to check in a PLA generates unwanted spurious signals. This circuit is designed to be connected to the cartridge port but all the involved energy source and signals can also be found at the PLA (U17) or the socket of that chip. Therefore it is possible to create 2 different implementations of that circuit.
If you prefer to have this checker circuit attached at the PLA instead of the cartridge port. !ROMH and !ROML can be found at pins 10 and 11 of U17. Ground is at pin 14 and +5Vdc is at pin 28.
A more sensitive version of this circuit can be made by using a 74HC279 instead of the suggested 74LS279 but the HC version may be more difficult to get as these are out of production. They may be found on eBay and Alibaba but you should avoid getting it from any Chinese seller as you may end up getting a fake circuit.
Theory of operation
A normal C64 will check for the presence of a cartridge at power-up but once it has determined there isn't any, it will no longer try to access the areas which may be mapped to !ROMH and !ROML if you leave the C64 idling with only the cursor flashing and no software running. After the initial check, !ROMH and !ROML should remain completely inactive if the PLA is glitch free.
Using the tester
To use this circuit you must make sure you use the original C64 kernal (no JiffyDOS or things like that) and that no cartridge is attached to your cartridge port.
When the C64 is first turned on, it will check for the presence of a cartridge and this will trigger the red LED to turn on. Press the button to turn it off and see what happens. If your PLA is not generating glitches, the LED will stay off indefinitely. If there are glitches, they will trigger the LED back on.
Normally, !ROMH and !ROML will always stay above 3V after the initial check and the set/reset latch will stay inactive. The 74LS279 will detect any glitch which brings the voltage below the threshold voltage for TTL logic circuits, about 1.5V. If you used the 74HC279 then the threshold voltage is about 2.5V and the circuit will detect any glitch which brings the voltage below the threshold voltage for 5V CMOS logic circuits.