• Please review our updated Terms and Rules here

Cannot use EPROM to replace character ROM in 4032.

I have also seen colleagues purchase EPROMS from the grey market only to find that they actually fell apart (literally) when they took them out of the delivery package...

Dave

I have learnt one very interesting thing about fake IC's. I have never found one yet where the IC or transistor is made of ceramic and has a significant amount of Gold plating.

One reason is that the ceramics are much more difficult to re-label and make it look convincing than plastic cased ICs'. It is really obvious if they get tampered with. Also the fakers putting dies in new IC's are generally working with epoxy, not ceramic.

But the other thing, the fakers cannot bring themselves to part with Gold, its like Gollums ring to them and they are addicted to it like Goldfinger was to his Gold.

So I'm very confident when I buy combination ceramic and Gold plated parts, that they are not copies, or fakes, that have passed through this dodgy IC faking industry. This is one reason I liked the look of those Czech military gold and purple ceramic 2716's, and was 100% confident they were the genuine vintage article, without a paper trail. Purplish grey ceramics are an even harder fake call, because they are less common too. Have a look at the unique package color again on post #43.

One other thing, even with epoxy cased IC's, there are some other things that give the game away. One is that some manufacturers had unique shaped epoxy cases. For example, if you look at early 74 series Motorola part, is has very characteristic rounded corners, not seen on other 74 IC packages. Early Signetics IC's used a unique light grey epoxy. Japanese IC's can also be spotted by their different package contours and indentations. So a lot of the time it is pretty obvious when things "don't stack up", checking very small details on epoxy cased parts, that the IC is a fake, clone or copy.

I have attached an example photo. Why is this Motorola IC a genuine original part, and not a fake ? Three things confirm it, the date code, it is consistent with the unique early Motorola epoxy package design, and the pins are gold plated.

Also, the vintage Signetics parts, obviously genuine parts: The fakers are not using this unique light grey epoxy, only Signetics did. They appear genuine and even have age appropriate corrosion on the leads.
 

Attachments

  • motorola.jpg
    motorola.jpg
    177.9 KB · Views: 3
  • signetics.jpg
    signetics.jpg
    52.2 KB · Views: 4
Last edited:
The /INIT pullup line is also a little more tricky than it looks, regardless of the 2716's effect on it. When I first found the problem, naturally the first thing I tried was to pull the /INIT line up with a much lower value pullup resistor to make it go to logic high at least around 3V or more. Interestingly this can cause problems and the computer not boot properly

The fact that the 2716 pulls it that low at all makes it pretty clear that it should be removed from the equation. The chip enable on the original chip undoubtedly draws “almost nothing” from it because it’s just a logic input, while this VPP pin on the 2716 seems to actually be drawing *power*. Only a few micro amps should be necessary to hold a logic input high. Trying to find some magic pull-up value that will reliably hold the circuit above 2.4v while something is sucking actual watts from it while also still allowing it to be reliably pulled down by whatever open-collector thing that must be attached to it seems like a losing game.

I assume the INIT pin is pulled at startup in order to synchronize some aspect of the system timing, but what actually pulls it? I guess I’m blind today because I can only see it leading to inputs. (And the pull-up resistor.) Again, though, I’m baffled why they put a character ROM chip select on it. Who/what would ever care if the character ROM‘s data outs were asserting garbage data on the private bus between it and the shift register while video timing was retarded?
 
I assume the INIT pin is pulled at startup in order to synchronize some aspect of the system timing, but what actually pulls it? I guess I’m blind today because I can only see it leading to inputs. (And the pull-up resistor.) Again, though, I’m baffled why they put a character ROM chip select on it. Who/what would ever care if the character ROM‘s data outs were asserting garbage data on the private bus between it and the shift register while video timing was retarded?

Only a resistor pulls the /INIT line up in this case, nothing drives it.

I think there are some interesting reasons why some IC's have their lines connected to pull ups here & there.

One is physical, rather than electrical. All unused logic active low lines, that were not being used, could , or maybe should, have a separate 1k pullup resistor. But designers sought to minimize the number of resistors.

In some cases, it was a pcb track design thing, so they looked around for the nearest pullup line, to the IC that needed one.

To add to the intrigue of the /INIT line, there is yet another way of making a TTL logic pull up, or pull down for that matter. You can use an output from an actual TTL IC itself, say for example an unused inverter gate, then its output makes a perfect TTL high, or low, logic level.

If you look at the circuit for the 2001 dynamic pet, the /INIT line feeds an inverter gate I1 a 74S04, which feeds IC counter H9. That is a very unusual arrangement in my view and clearly has something to do with the boot up timing when the power supply rises from zero to +5v.

In summary, the /INIT line in the PET remains to me, one of the most subtle an interesting aspects of the entire design.

But, I also agree, that there was no real need to connect the character ROM to the /INIT line, unless it was just convenience with circuit track layouts.
 
I have learnt one very interesting thing about fake IC's. I have never found one yet where the IC or transistor is made of ceramic and has a significant amount of Gold plating.

One reason is that the ceramics are much more difficult to re-label and make it look convincing than plastic cased ICs'. It is really obvious if they get tampered with. Also the fakers putting dies in new IC's are generally working with epoxy, not ceramic.

But the other thing, the fakers cannot bring themselves to part with Gold, its like Gollums ring to them and they are addicted to it like Goldfinger was to his Gold.

So I'm very confident when I buy combination ceramic and Gold plated parts, that they are not copies, or fakes, that have passed through this dodgy IC faking industry. This is one reason I liked the look of those Czech military gold and purple ceramic 2716's, and was 100% confident they were the genuine vintage article, without a paper trail. Purplish grey ceramics are an even harder fake call, because they are less common too. Have a look at the unique package color again on post #43.

One other thing, even with epoxy cased IC's, there are some other things that give the game away. One is that some manufacturers had unique shaped epoxy cases. For example, if you look at early 74 series Motorola part, is has very characteristic rounded corners, not seen on other 74 IC packages. Early Signetics IC's used a unique light grey epoxy. Japanese IC's can also be spotted by their different package contours and indentations. So a lot of the time it is pretty obvious when things "don't stack up", checking very small details on epoxy cased parts, that the IC is a fake, clone or copy.

I have attached an example photo. Why is this Motorola IC a genuine original part, and not a fake ? Three things confirm it, the date code, it is consistent with the unique early Motorola epoxy package design, and the pins are gold plated.

Also, the vintage Signetics parts, obviously genuine parts: The fakers are not using this unique light grey epoxy, only Signetics did. They appear genuine and even have age appropriate corrosion on the leads.
I had a good laugh about your Gollum comment, and yes, at the same time it makes perfect sense.

Another way to avoid remarked ICs is, if at all possible, is to choose the ones that don't look too 'new'. The way things are these days, I'd be more likely to trust an IC that has marks, scratches, and traces of heatsink compound on them than a pristine looking one.

A few years ago I purchased a whole stack of EPROMs of various sizes, mainly for making custom Amiga Kickstart ROMs. I wasn't aware of the counterfeit/remarking thing at the time. Most of them seemed to work OK. It wasn't until I went to remove the stickers I placed on them to reuse them when I realised there was something odd about them. They had been painted, and the paint came off with the sticker. Cleaning the rest of the paint off revealed slight scuff marks in the ceramic, and even traces of the old labelling on some chips, clearly visible on the chip on the right below.
fakes.png
Amiga users are well aware of the problems with fake 68060 CPUs. Especially if you want one with the latest mask revision. We could all go down a very deep rabbit hole chasing those faked ICs!

I've been trying to get my Electronics Australia programmer working, to see if it does a better job of burning those EPROMs that my normal programmer is having difficulty with. Found a dead transistor and a bad IC. Hopefully I'll get to try it later today after I put it back together. Thanks for providing a link to the article - I had lost my original documentation for it years ago.

I did look at my /INIT line (as mentioned previously) and it seemed OK. I'll have a closer look with a range of different ROMs to see if the levels vary.
 
I had a good laugh about your Gollum comment, and yes, at the same time it makes perfect sense.

Another way to avoid remarked ICs is, if at all possible, is to choose the ones that don't look too 'new'. The way things are these days, I'd be more likely to trust an IC that has marks, scratches, and traces of heatsink compound on them than a pristine looking one.

A few years ago I purchased a whole stack of EPROMs of various sizes, mainly for making custom Amiga Kickstart ROMs. I wasn't aware of the counterfeit/remarking thing at the time. Most of them seemed to work OK. It wasn't until I went to remove the stickers I placed on them to reuse them when I realised there was something odd about them. They had been painted, and the paint came off with the sticker. Cleaning the rest of the paint off revealed slight scuff marks in the ceramic, and even traces of the old labelling on some chips, clearly visible on the chip on the right below.
View attachment 1251022
Amiga users are well aware of the problems with fake 68060 CPUs. Especially if you want one with the latest mask revision. We could all go down a very deep rabbit hole chasing those faked ICs!

I've been trying to get my Electronics Australia programmer working, to see if it does a better job of burning those EPROMs that my normal programmer is having difficulty with. Found a dead transistor and a bad IC. Hopefully I'll get to try it later today after I put it back together. Thanks for providing a link to the article - I had lost my original documentation for it years ago.

I did look at my /INIT line (as mentioned previously) and it seemed OK. I'll have a closer look with a range of different ROMs to see if the levels vary.

The fakers have become experts in applying a very thin flat black paint to the tops of both ceramic and epoxy IC's. One way to spot it is, that if you look at the lower surfaces of the ic, there are often fine marks and scratches, yet that is a better protected area than the top. So if you have a pristine looking top without a mark and fine scratches on the bottom, it suggests paint on the top, that you can test for with cue stick & some solvent like acetone. I recently received a fake IC like this for one of my Commodore disk drives. Examination of the IC with a binocular microscope helps too.
 
In summary, the /INIT line in the PET remains to me, one of the most subtle an interesting aspects of the entire design.

It’s quite bizarre, frankly, having a named signal line that’s completely un-driven except by a pull-up resistor… and it’s likewise nutty that the signal that quite prominently feeds a *bunch* of counter and latch clear signals also just happens to be the pull-up for a frankly unnecessary chip select on the character ROM. All those connections to the timing components had me pretty sure there must be some kind of link to the power-on reset circuit or something; since there isn’t actually anything in there to actively pull it down the only theory I have is the resistor is used to induce a tiny delay so the counters/latches connected to it will “wake up” with their CLEAR signals low, if however briefly. That theory would hold more water if there were a capacitor in the circuit, however; there isn’t one on there I’m missing on the schematic, is there?

Maybe this exists as a named signal because there’s some troubleshooting value to grounding it with a probe? It looks like doing so would reset both the video timing and the RAS/CAS signals.

Anyway, the broader point of all this is, again, going by the datasheets it really isn’t true that the 2316 ROM and 2716 are completely compatible; pin 21 of the former is a *logic input*, and on the latter it’s a supply pin. The datasheet for the 2716 is very clear that in read mode VPP should be equal to VCC @5MA draw, and that is not going to be true with most pull-up resistors.
 
Is the problem not that - as has already been suggested twice - pin 21 is not actually a CS pin on the 2716, but a pin which has to be held at Vcc when the chip is in read mode? There is no reason to expect that 2716 pin to behave like an active-high chip enable input in terms of speed of response or line loading. You can get away with using a 2716 in (e.g.) UD8 PROM position in most PETs because the CS3 pin (21) in that particular case is always held steady high and in fact tied directly to +5V. It isn't ever being wiggled high and low in that situation.

Bending out 2716 pin 21 and taking it to +5V may not work either as the _INIT line is presumably taken to the character ROM's active-high CS pin for a reason. I've noticed that some of the adaptor PCBs to allow larger EPROMs to substitute for old PROMs like this have an extra logic IC hidden under the memory device, the job of the logic IC being to decode all three incoming CS signals to generate an active-low enable signal for the substitute memory device.
 
Bending out 2716 pin 21 and taking it to +5V may not work either as the _INIT line is presumably taken to the character ROM's active-high CS pin for a reason. I've noticed that some of the adaptor PCBs to allow larger EPROMs to substitute for old PROMs like this have an extra logic IC hidden under the memory device, the job of the logic IC being to decode all three incoming CS signals to generate an active-low enable signal for the substitute memory device.

Second part first: On the 2316 pin 21 is a “programmable” chip select. (All three chip selects are programmable, actually.) This was a common feature of old read-only memories designed to allow you to save on external decoding for the ROM bank. For instance, with the 2316 you could, say, connect two of the chip selects to address lines and the third CS to a decoder that went low for a full 8k space; program the other chip selects accordingly on four ROMs and they’ll decode their own 2k window all by themselves. You could even yank them all out and shove them back into their sockets in random order, wouldn’t matter because all the sockets would be completely in parallel. This is why general purpose adapter boards need active circuitry; I don’t think Commodore actually used this feature on the PET, all the programmable CSes are identical, but some companies did.

As to why the PET’s character ROM has a CS on _INIT, that’s a great question, because if you look at the circuit the only thing the outputs of the ROM drive is the inputs of the output shift register. There is no reason anything in the circuit is going to care if that isn’t disabled when all the other stuff that would be halted at the same time if _INIT went low *were* disabled. My two theories are they simply connected it because it’s a shared pull up that was nearby, or that there might be some troubleshooting procedure that calls for grounding _INIT. Under normal conditions that signal should be high as long as the computer is turned on, period.

I have a universal board 4016 in the garage, but I don’t have any 2716s or a reliable way to program them. (It sounds like those cheap Chinese programmers like I do have count.) I’m not inclined to spend money on both just to test, but I cannot think of any technical reason why not having the character ROM chip select connected to _INIT would be a problem.
 
The seminal document on pull-up and pull-down resistor theory and practice was written by Texas Instruments. Have a look on their website.

For an LS TTL device there is a limit to the lowest value this resistor should be. It has something to do with the multiple emitter transistor on the input pins.

Other TTL families have no such limitation.

Dave
 
I have tested it in my PET, there is no problem with the 2716, as long as /INIT is disconnected from pin 21 and 21 tied to V+.

Eudi: I did look around for a capacitor myself on the /INIT line as I think the resistor does delay the rise in voltage on that line after power up, just by a little, but in theory without the resistor it may go up more slowly, but it might speed it up a tad, but not too much.. The sum total of all the devices on the /INIT line appears to be enough. As I mentioned, if the /INIT line is pulled up with a lower value resistor, say 100R it failed to boot.

The reason why I got interested in that /INIT line was because it initializes the 4 state machine.

After I worked out how that was working with the narrow clock pulses, it struck me that there is nothing to set the state of the machine at boot up, aside from that /INIT line clearing both counters very briefly at turn on, and I think it was the second or maybe third pulse in the group of 4 that corresponded to the flip flops in the reset/cleared condition (I'd have to look back at the diagram for that) in any case though, it was very specific in that it had to be the correct pulse of the 4 in each group arriving after the power boot, when the 4 state machine was in that specific one of 4 states that corresponded to the flip flops being reset. Or it would get out of step. The events at power up are pretty important and the specific delay on that /INIT line especially I think has to be about right, for the initial starting conditions. I think this is why the /INIT line has its name. It is not just a common garden pull up. And that is also borne out by the fact the /INIT line is used as an input to an inverter gate too.
 
Last edited:
I can remember during an epic PET repair trying to figure out what it was that drove the _INIT line and coming to the conclusion: Nothing, as I could not find a single IC output on that line - only the pullup resistor. What was apparent was that the majority of the inputs the line went to were reset or hold-off or Clear inputs on a whole string of different ICs, so it seemed that the purpose of the rail was to hold all those devices in their initial or reset state until the +5V rail on the other end of the pullup was established.

That did get me thinking, though, that there are TWO +5V rails in the machine and wondering which of the two +5V rails the _INIT pullup resistor actually went to. Could it be that the intention is to hold all of those devices in the inactive state if the 'other' 5V rail fails to come up? I never followed that up.
 
That did get me thinking, though, that there are TWO +5V rails in the machine and wondering which of the two +5V rails the _INIT pullup resistor actually went to. Could it be that the intention is to hold all of those devices in the inactive state if the 'other' 5V rail fails to come up? I never followed that up.
I don't think it was to mitigate a fault condition, where the computer would not be working anyway when a rail fails. I think it was to establish initial conditions for the clock & timing circuits, including the 4 state machine.

But, it is one of those very interesting scenarios, where it is extraordinarily difficult to study it, because its effects are in the "transient time" when the computer powers up, not in its running time.
 
Does tying pin 21 to V+ resolve the issue shown in image one on the first post where the characters are shifted ?

I would like to understand the cause of the shift … this post motivated me to get the motherboard out that had the same issue (8032080 - univ board). I have a working setup using the Retroinnovations 23xx adapter board and a winbond 27c512 eeprom with 4 character roms selectable from a rotary switch.

I move that rom setup to this board and got the shifted screen as in photo 1 but it works in my 8032089 - univ board just fine.Not sure what version of motherboard the Op has.
 

Attachments

  • 9B87B81F-E284-4117-8BDB-7534D902845F.jpeg
    9B87B81F-E284-4117-8BDB-7534D902845F.jpeg
    1.4 MB · Views: 11
Last edited:
Second part first: On the 2316 pin 21 is a “programmable” chip select. (All three chip selects are programmable, actually.)

Indeed, the EPROM adaptor boards with the extra decoder IC often include solder links to set the 'polarity' of at least one of the _CS inputs to cater for the possibility that they were so defined when the original PROM was mask-programmed.
 
I'm not sure if this is helpful as it's been a while since I've programmed a character ROM for a PET but I've used TI TMS2532JL EPROMs in Super PETs (same Dynamic PET board as the 4032) and it works great. I have fixed a few PETs and I've never purchased a TMS2516 so if I recall correctly, the smaller 2K ROM gets doubled up and then written to the TMS2532. There is a slight difference in the pinouts between the TMS2516 and TMS2532s but I'm not sure if that was the reason for using the TMS2532s.

Might be worth pursuing a bit further?

SuperPET_char_rom.jpg
 
Thanks, I am convinced there is a subtle difference between the Universal boards which causes this timing issue.

Ummm 🤔, I wonder if I need to adjust the CRTC settings to compensate for the shift .. though that would need a revised EDIT rom
 
Last edited:
Does tying pin 21 to V+ resolve the issue shown in image one on the first post where the characters are shifted ?

I would like to understand the cause of the shift … this post motivated me to get the motherboard out that had the same issue (8032080 - univ board). I have a working setup using the Retroinnovations 23xx adapter board and a winbond 27c512 eeprom with 4 character roms selectable from a rotary switch.

I move that rom setup to this board and got the shifted screen as in photo 1 but it works in my 8032089 - univ board just fine.Not sure what version of motherboard the Op has.
My pin 21 already has a nice clean 5V on it, even when using a 'bad' EPROM. In any case I did try temporarily tying it to 5V, which made no difference.

My board is the same as yours: 8032080, though it was originally a 4016. I increased the RAM to 32K.
 
Ok that explains why you see the shifted characters also… did you find EPROMs that worked for this board (non shifted characters) …
 
I'm not sure if this is helpful as it's been a while since I've programmed a character ROM for a PET but I've used TI TMS2532JL EPROMs in Super PETs (same Dynamic PET board as the 4032) and it works great. I have fixed a few PETs and I've never purchased a TMS2516 so if I recall correctly, the smaller 2K ROM gets doubled up and then written to the TMS2532. There is a slight difference in the pinouts between the TMS2516 and TMS2532s but I'm not sure if that was the reason for using the TMS2532s.

Might be worth pursuing a bit further?

View attachment 1251074
Thanks .. will look through my Box of EPROMs and see if have any TMS2532JL’s …. Actually with the CRTC motherboard you can toggle bit 5 of R12 on the CRTC to select the upper 2k or lower bank
 
I move that rom setup to this board and got the shifted screen as in photo 1 but it works in my 8032089 - univ board just fine.Not sure what version of motherboard the Op has.

Zimmers has schematics for two different “universal” boards, and if you compare them there is a critical difference between the two that might explain these CRTC monkeyshines.

On the older board a 74177 counter is used to derive the 1 mhz /CLK1 signal that feeds the CRTC, and the active-low /CLR signal of this chip is one of the things that hangs off the /INIT pull-up. On the newer board this clock is generated by a 74LS393, which has its active-HIGH CLR signal connected to ground. (IE, it’s physically impossible for this board to ever CLR this and several other counters that were on /INIT on the old board.)

A wild guess as to what’s happening here is some analog weirdness with the initial rise of the /INIT signal is causing /CLK1 to somehow generate an extraneous clock pulse that’s advancing the character count by one tick? Or, alternatively, it’s putting /CLK1 out of proper phase so there’s some kind of write corruption happening when the EDIT ROM initializes the CRTC on startup? This doesn’t happen on the later boards because they don’t depend on the CLR signal to tick properly?

Anyway, this is a really goofy design. It’s like Commodore designed a circuit that needed an asynchronous clear/preset to tick properly and then implemented that in the laziest and least reliable way imaginable?
 
Back
Top