Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Duplicating Signetics Generic I based PROMs

241 views
Skip to first unread message

gro...@gmail.com

unread,
Mar 31, 2017, 11:24:40 PM3/31/17
to
I have a late 1970s designed peripheral for an Apple II, and am in the process of reverse-engineering the peripheral and lay out a new PCB design. On the card, it uses an Intersil IM5623 PROM. It is a 256 x 4 bipolar PROM, and is programmed using the Signetics Generic I fusing procedure:

http://gamearchive.askey.org/General/Data_Sheets/generic1_prom/

http://www.retrotechnology.com/restore/fuse_bipolar_prom.html

I want to duplicate this PROM. I've spent hours reading on the subject. What I've come to the conclusion is that although these PROMs can all be read one way or another, the challenge is programming them, as there is no set standard. I can try programming a Philips 82S129 or a Harris 7611, but each of the use different programming techniques, as well as possibly different voltages and such.

In my situation, however, I'd like to duplicate the IM5623 to another IM5623. Any pointers on how I can go about doing this would be great!

Also, if you're willing to offer your services, I have 20 unprogrammed PROMs I'd like to get programmed.

Thanks!

John Robertson

unread,
Apr 1, 2017, 1:45:18 AM4/1/17
to
The Data I/O 29B with Unipak can handle those easily enough. I have that
machine in Vancouver, Canada - but there are many still in the USA. I
use my unit regularly for burning old PROMs and EPROMs.

There are probably others on this list who can help if they have a 29B.
There is also the Data I/O mail list/group (Data_IO_EPROM) on Yahoo, you
can post there and find someone handy to you I'm sure.

I have burners that go back to the 1702(A)...

John :-#)#

--
(Please post followups or tech inquiries to the USENET newsgroup)
John's Jukes Ltd. 2343 Main St., Vancouver, BC, Canada V5T 3C9
(604)872-5757 or Fax 872-2010 (Pinballs, Jukes, Video Games)
www.flippers.com
"Old pinballers never die, they just flip out."

TTman

unread,
Apr 1, 2017, 10:07:59 AM4/1/17
to
I would have replaced the prom with a PIC or AVR.... :)

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

gro...@gmail.com

unread,
Apr 1, 2017, 2:05:04 PM4/1/17
to
On Saturday, April 1, 2017 at 4:07:59 AM UTC-10, TTman wrote:
> I would have replaced the prom with a PIC or AVR.... :)

That's possible, given that I'm redesigning the PCB. I'm not familiar with those two parts - I'm more into microcontrollers. Between PIC and AVR, what specific parts would be a good replacement?

gro...@gmail.com

unread,
Apr 1, 2017, 10:47:07 PM4/1/17
to
More information that might help....

After studying the schematic diagram I created of the peripheral, I've realized that this PROM operates more as a TTL-based chip than just storing code. It merely acts as field programmed IC, much like for example a GAL or PAL. From what I can gather after studying the chip's operation, it basically performs high-speed data transfers between what could possibly be a mixture of RAM, EPROM and masked ROMs. At each cycle, the PROM does this, so it has to be very fast. Even I was able to read the PROM (I found out how to adapt this chip to a 2716 socket for reading,) all it is going to give me is microcode. And, from the very limited information I can find about bipolar PROMs, there's nothing available I could use to decipher the microcode so that I can reverse-engineer and re-write the logic, using for example a microcontroller like a PIC or AVR as someone earlier mentioned.

So the big hurdle at this point is to decipher the microcode. :(

Don Y

unread,
Apr 1, 2017, 11:23:53 PM4/1/17
to
You treat it as a set of four logic functions, each having eight inputs.
I suspect if you look at one bit at a time, you will quickly discover
the logic to be relatively obvious (without even resorting to
mechanical reduction techniques)


gro...@gmail.com

unread,
Apr 1, 2017, 11:46:49 PM4/1/17
to
On Saturday, April 1, 2017 at 5:23:53 PM UTC-10, Don Y wrote:
> You treat it as a set of four logic functions, each having eight inputs.
> I suspect if you look at one bit at a time, you will quickly discover
> the logic to be relatively obvious (without even resorting to
> mechanical reduction techniques)

Okay! We're getting somewhere... Studying the circuit more, I have enough so I can actually produce a truth table. As you mentioned, there are eight address pins, and four output pins. Pins 1 and 5 of this chip is pulling HIGH at all times. So I'll need to test the remaining six address pins. I have a logic probe to read the results.

What is the safest way to perform this test? I've never built a circuit to perform tests like this. In the circuit, pins 1 and 5 are pulled up using a 4.7K resistor and +5VDC. Do I just do the same thing with the remaining address pins?

Don Y

unread,
Apr 2, 2017, 12:51:44 AM4/2/17
to
You said:
"Even I was able to read the PROM (I found out how to adapt this chip to a
2716 socket for reading,) all it is going to give me is microcode."
How are you "reading" the "2716"?

I.e., if you are reading it with a "prom programmer/reader" that can talk
to a PC -- either directly *or* indirectly -- then just "read" the entire
PROM into the PC and examine the data there.

Worst case, you will have a pure binary file that you can then examine
with a "hex editor".


gro...@gmail.com

unread,
Apr 2, 2017, 1:10:52 AM4/2/17
to
On Saturday, April 1, 2017 at 6:51:44 PM UTC-10, Don Y wrote:
> You said:
> "Even I was able to read the PROM (I found out how to adapt this chip to a
> 2716 socket for reading,) all it is going to give me is microcode."
> How are you "reading" the "2716"?
>
> I.e., if you are reading it with a "prom programmer/reader" that can talk
> to a PC -- either directly *or* indirectly -- then just "read" the entire
> PROM into the PC and examine the data there.
>
> Worst case, you will have a pure binary file that you can then examine
> with a "hex editor".

Sorry, typo on my part... I meant to say "Even {if} I was able to..."

From what I've seen on-line, people are building circuit boards that basically re-map the pinouts of the PROM to conform to a 2716 pinout. Some guys are even making a huge profit selling these boards on eBay - $22 for just one board. Crazy!!!

Anyhoo, with a chip programmer, the PROM can be read. As you mentioned, the dump would be just pure binary. The code is probably micro instructions proprietary to the PROM itself. The dump would actually be unusable unless it is written back to a blank PROM of the same kind.

So what I have in mind is to build a quick circuit to produce a truth table of the PROM. Then once I have that, I should be able to program a microcontroller to produce the exact same signals.

Don Y

unread,
Apr 2, 2017, 3:56:14 AM4/2/17
to
On 4/1/2017 10:10 PM, gro...@gmail.com wrote:
> On Saturday, April 1, 2017 at 6:51:44 PM UTC-10, Don Y wrote:
>> You said: "Even I was able to read the PROM (I found out how to adapt this
>> chip to a 2716 socket for reading,) all it is going to give me is
>> microcode." How are you "reading" the "2716"?
>>
>> I.e., if you are reading it with a "prom programmer/reader" that can talk
>> to a PC -- either directly *or* indirectly -- then just "read" the entire
>> PROM into the PC and examine the data there.
>>
>> Worst case, you will have a pure binary file that you can then examine
>> with a "hex editor".
>
> Sorry, typo on my part... I meant to say "Even {if} I was able to..."
>
> From what I've seen on-line, people are building circuit boards that
> basically re-map the pinouts of the PROM to conform to a 2716 pinout. Some
> guys are even making a huge profit selling these boards on eBay - $22 for
> just one board. Crazy!!!

What is your time worth? And, what risk do you run of transcribing
"data" from a logic probe to a typewritten form?

> Anyhoo, with a chip programmer, the PROM can be read. As you mentioned, the
> dump would be just pure binary. The code is probably micro instructions
> proprietary to the PROM itself. The dump would actually be unusable unless
> it is written back to a blank PROM of the same kind.

It's not "micro instructions". Its just a set of 4 logic functions each
of eight variables (two of which you have claimed are always '1').
The contents of the PROM mean nothing in and of themselves. Rather,
they are probably *latched* on a clock edge and applied to some other
circuitry:
ROM
+-----+
inputs --->[ ]---->|A D|--->[ ]----> outputs
^ +-----+ ^
| |
clock -----+------------------+

where the [] are edge-triggered registers that ensure the inputs to the
ROM can only change at certain times (to ensure the addresses aren't in
a state of flux for each "cycle") and the outputs of the ROM are only
sampled at a time when they are known to have "settled".

> So what I have in mind is to build a quick circuit to produce a truth table
> of the PROM. Then once I have that, I should be able to program a
> microcontroller to produce the exact same signals.

Look at the truth table. With just 6 variables, it's manageable as
a simple (set of 4) Karnaugh maps. You should be able to "reduce" the
raw maps to logic equations just by inspection. You can then evaluate
the logic equations to decide whether its easier to just throw some
discrete logic together to emulate the ROM.

See what you *need* before deciding on how you will implement it.

E.g., if the contents of every even address in the ROM are 1010
and odd addresses are 1001, then the logic equations will tell you
that the leftmost output is "always 1", the next is "always 0", the
one after it is the LSb of the ROM address, inverted and the last
is the LSb of the ROM address, not inverted. While this *might* be
unlikely, it also might be similar!

[A colleague used an 8KB EPROM as a "logic block" in a design many
years ago. Turned out that it could have been replaced by an AND
gate and an inverter -- i.e., a quad NAND would have been overkill
as well as faster, smaller and considerably cheaper!]


gro...@gmail.com

unread,
Apr 2, 2017, 4:32:10 AM4/2/17
to
On Saturday, April 1, 2017 at 9:56:14 PM UTC-10, Don Y wrote:
> It's not "micro instructions". Its just a set of 4 logic functions each
> of eight variables (two of which you have claimed are always '1').
> The contents of the PROM mean nothing in and of themselves. Rather,
> they are probably *latched* on a clock edge and applied to some other
> circuitry:
> ROM
> +-----+
> inputs --->[ ]---->|A D|--->[ ]----> outputs
> ^ +-----+ ^
> | |
> clock -----+------------------+

Okay, that seems to be what's happening in this circuit. One of the input pins is a 1Mhz Phase 1 clock provided by the host. I was under the impression that the PROM actually ran microcode. But after your explanation, it seems that the PROM is nothing more than just storage?

Someone on another site recommended the Atmel 27C512 as a viable replacement. Although this chip is much bigger in both physical and memory size, the reasons this is a good replacement is that it matches the 50ns speed of the 82S129, and it is currently available. I would have liked to use the 82C16, but it runs at 150ns. So if I found an adapter that re-maps the pins of the 27C512 to fit where the 82S129 once sat, then it should work?

Don Y

unread,
Apr 2, 2017, 5:52:58 PM4/2/17
to
On 4/2/2017 1:32 AM, gro...@gmail.com wrote:
> On Saturday, April 1, 2017 at 9:56:14 PM UTC-10, Don Y wrote:
>> It's not "micro instructions". Its just a set of 4 logic functions each
>> of eight variables (two of which you have claimed are always '1'). The
>> contents of the PROM mean nothing in and of themselves. Rather, they are
>> probably *latched* on a clock edge and applied to some other circuitry:
>> ROM +-----+ inputs --->[ ]---->|A D|--->[ ]----> outputs ^ +-----+
>> ^ | | clock -----+------------------+
>
> Okay, that seems to be what's happening in this circuit. One of the input
> pins is a 1Mhz Phase 1 clock provided by the host. I was under the
> impression that the PROM actually ran microcode. But after your explanation,
> it seems that the PROM is nothing more than just storage?

I'm basing my guesstimate on your description of the components and circuit.
I can't *see* it to be able to say otherwise.

Its a "truth table".

Imagine you have N (in this case 8 -- or, 6 if two of yours are unused)
inputs and want to generate a set of outputs that are related to those
inputs in some particular way. You *could* tabulate the different
input combinations and associated desired output values:

A B C D E F OUT1 OUT2 OUT3 OUT4
0 0 0 0 0 0 x x x x
0 0 0 0 0 1 x x x x
0 0 0 0 1 0
0 0 0 0 1 1
0 0 0 1 0 0
...
1 1 1 1 1 1

Then, figure out the boolean operators required to synthesize each
output from the set of inputs, correctly.

*Or*, you could think of the input combinations as addresses to a
memory (table) that has PRESTORED values for each of these output
signals. The memory "looks up" the correct value for each output
based on the state of the inputs (addresses). The output appears
some time after the inputs are settled/stable (i.e., the access
time of the memory; comparable to the propagation delay through
some random logic gates).

The purpose of the register/latches in my illustration is to
force the input and output changes to happen at fixed points
in time. Unlike with discrete logic, its hard to predict
any hazzards/races that can occur in a ROM-based implementation
to a logic function (with the inputs free to change at will)
without characterizing the actual device.

> Someone on another site recommended the Atmel 27C512 as a viable
> replacement. Although this chip is much bigger in both physical and memory
> size, the reasons this is a good replacement is that it matches the 50ns
> speed of the 82S129, and it is currently available. I would have liked to
> use the 82C16, but it runs at 150ns. So if I found an adapter that re-maps
> the pins of the 27C512 to fit where the 82S129 once sat, then it should
> work?

No idea without knowing what the rest of the circuit expects.

You claim to have replacement parts for the original. Why not just
use those? Why compound the problem?

gro...@gmail.com

unread,
Apr 4, 2017, 1:06:26 AM4/4/17
to
Don,

Would you mind if I emailed you directly? I'm keeping things vague here publicly for a reason. I can reveal much more information that might help. My email address are in the replies in this thread. Thank you!

Don Y

unread,
Apr 4, 2017, 3:18:03 AM4/4/17
to
I'm really not interested in being drawn into a "design"/reverse-engineering
discussion -- let alone *effort*. My comments, thus far, were intended to
be educational -- to let you see how the device is *likely* being used (in
a circuit that I can't *see*).

If you're looking to try to understand the "functions" that it is performing
in the circuit -- possibly with an eye towards tweaking them for some other
purpose -- then that's a whole 'nother can of worms!

Your initial post indicated:
"I want to duplicate this PROM."
J Robertson indicated that he has a 29B that will handle them.
While he didn't explicitly *offer*, I suspect you could approach
him to take on the task you set out:
"Also, if you're willing to offer your services, I have 20
unprogrammed PROMs I'd like to get programmed."
for some sort of compensation (that *he* would have to define
as *he* would be doing the favor for you -- I don't want to put
words in his mouth).

Good luck!

Piotr Wyderski

unread,
Apr 4, 2017, 8:46:42 AM4/4/17
to
gro...@gmail.com wrote:

Can't help, but does the board still work?

Best regards, Piotr

Piotr Wyderski

unread,
Apr 4, 2017, 9:18:44 AM4/4/17
to
Don Y wrote:

> The contents of the PROM mean nothing in and of themselves. Rather,
> they are probably *latched* on a clock edge and applied to some other
> circuitry:

Or to the PROM itself, which makes a very useful state machine.
Or any combination of the above.

Best regards, Piotr

whit3rd

unread,
Apr 4, 2017, 5:16:50 PM4/4/17
to
On Sunday, April 2, 2017 at 1:32:10 AM UTC-7, gro...@gmail.com wrote:
> On Saturday, April 1, 2017 at 9:56:14 PM UTC-10, Don Y wrote:

> Someone on another site recommended the Atmel 27C512 as a viable replacement. Although this chip is much bigger in both physical and memory size, the reasons this is a good replacement is that it matches the 50ns speed of the 82S129, and it is currently available. I would have liked to use the 82C16, but it runs at 150ns.

But, didn't you say the clock was 1 MHz? How do you know that the speed difference
is important? Those little PROM chips were built with a TTL process, and they were fast,
but there weren't any slower, less expensive parts at the time. They probably
weren't designed-in because of their speed.

Don Y

unread,
Apr 4, 2017, 6:45:53 PM4/4/17
to
No, he said that there was a 1MHz signal involved -- but was vague about
whether the logic was clocked at 1MHz *or* if the 1MHz signal was just
an *input* (with the logic, perhaps, clocked at a phase locked higher
frequency)

0 new messages