• Please review our updated Terms and Rules here

Address decoder revisited

Hugo Holden

Veteran Member
Joined
Dec 23, 2015
Messages
4,748
Location
Australia
I have a 64k RAM card in my SOL-20 (deactivated by its own address decoder above 48k) I needed to deactivate it over address range 6000h to 7FFFh to be able to run a Bytesaver board over that range.

Initially I made an address decoder on an s-100 prototype board, using logic gates, it worked but used up a slot in the SOL-20.

I thought there must be a better way to do it, but I did not want to modify my 64k memory board or damage it in any, like cutting tracks or soldering into plated through holes etc. Also, it seemed to take at least two or three packages of standard logic gates to alter the address decoder to have the board still disabled over 48k and the window disabled over 6000h to 7FFFh.

But then I was looking at the N* disk controller that used OTP PROMS for address decode. This was the answer to a "one IC address decode" where a number off addresses need to be activated & deactivated. Recently I had bought a BP1400 programmer so I could program the 74S287. So I made an address decoder from a 74S287, it just required 16 bytes of it to be programmed and just using the LSB as the output and 4 of the address input lines.

Also, I made it so it can be jumpered out to get rid of the 6000h-7FFFh window by moving two jumpers. I mounted the board with the 74S287 by machining a tiny brass spacer into which I cut a full length 1mm threaded hole. So it attaches with two 1mm dia metric screws to an existing hole in the pcb. No tracks were cut and the wires pass through existing plated through holes to attach to IC pins on the rear of the board. So there is no pcb track damage at all to make the modification. It could be removed with no trace it was ever there. I avoided using adhesives and double sided tape as the glues can attack the pcb surface. The PTFE coated wires won't cause any harm or corrosion to the plated through holes they pass through.

I have attached some photos.
 

Attachments

  • decodeADR.jpg
    decodeADR.jpg
    163.5 KB · Views: 2
  • DecodeADR2.jpg
    DecodeADR2.jpg
    129.4 KB · Views: 2
Last edited:
Looks like a good candidate for a GAL16V8 substitution.

I never got into PAL's and GAL's, though I read about them in Horowitz & Hill's book.

I guess partly because I didn't have any way to program them.

Most of the things I made that required a lot of combinational or glue logic, I cobbled it together from 74 series gates.

I'll look up the GAL16V8.
 
I recently did a video about using GALASM, a simple open source logic compiler with pretty elementary syntax, to do combinatorial and registered logic with 16v8s. It’s bare bones but I find it a lot less of a hassle than dealing with WinCUPL, which is what’s usually recommended.

Those cheap and ubiquitous TL866II programmers can program most GALs, including the still manufactured ATF16v8b and 22v10.
 
Looks like a good candidate for a GAL16V8 substitution.

The GAL looks very good.

One thing though about the 74S287, at least it is period correct for the board as these parts were being used in the same era on other S-100 boards, so it kind of fits the bill that way.

Another IC I had ready for the task was the 74S188. So I had bought some SNC54S188's to program, I had read these were perfect for making into things like custom seven segment LED drivers. But the BP1400 will not program them, it will program the DM74S188, I would have thought the parts would be exactly identical, but it appears with OTP proms they have to be the exact manufacturer part. There are also other parts like the Tesla MH74S287, that won't program with the programmer set to DM74s287, there appears to be a range of different programming protocols, depending on manufacturer.

And here is something that really messes with my mind:

The 74S287 is listed as an equivalent to the N82S129 and from the point of view of reading them and pin-outs, yes. The BP1400 can program both... but the N82S129 programming will fail sometimes if the BP1400 is set on DM74S287 ( have tested this a few times), so the programming protocol is slightly different between those parts, or at least that experience suggests that.The N82S129 will always program correctly if the programmer is set for that.

Yet, there are DM74S287's on ebay that have both DM74S287 and N82S129 printed on the IC, so which IC number should the programmer be set on to reliably program them?
 
Yet, there are DM74S287's on ebay that have both DM74S287 and N82S129 printed on the IC, so which IC number should the programmer be set on to reliably program them?

74S was what TI and NS called them, and 82S was Signetics. If your programmer has an entry for the vendor, I would use that one.
This all assumes the parts haven't been blacktopped and relabeled, of course.
 
...and I've documented (not so recently--has it already been 10 years?) about using the even older PALASM and Logic Friday to do the same to clone older fuse-programmed PALs that have security fuses blown.

(PALASM is written in (gasp!) FORTRAN)

Heh. GALASM so far as I can tell is an intentional clone of PALASM; from some brief digging on the latter the syntax looked almost identical to me; the main thing I could identify as different is GALASM uses a .R after the pin name in an equation to identify a "registered" output instead of ":=".

Likewise I would endorse Logic Friday if you need some help coming up minimizing your combinatorial functions.
 
Somewhere on the web (back a few years), someone published a circuit for a DIY bipolar PROM programmer, using pretty much nothing more than an array of switches and a power supply. Still might be out there.

On one of my early 1980s designs, I used a bipolar PROM for a design because doing it otherwise in random logic would have doubled the size of the PCB. My only gripe was that if I made a mistake in the truth table, the course of action was to toss the dud into the trash and try again. Got to be expensive, it did. When I first heard about erasable programmable logic that had respectable speeds, I was ecstatic. Still have a pile of PEEL and PALCE devices sitting around...
 
Somewhere on the web (back a few years), someone published a circuit for a DIY bipolar PROM programmer, using pretty much nothing more than an array of switches and a power supply. Still might be out there.

On one of my early 1980s designs, I used a bipolar PROM for a design because doing it otherwise in random logic would have doubled the size of the PCB. My only gripe was that if I made a mistake in the truth table, the course of action was to toss the dud into the trash and try again. Got to be expensive, it did. When I first heard about erasable programmable logic that had respectable speeds, I was ecstatic. Still have a pile of PEEL and PALCE devices sitting around...

There is a simple 8223 (like a 74S188 32 word prom) Prom programmer published on page 223 of the book "The giant handbook of computer projects" from the editors of 73 magazine , TAB Books, 1979.

It has a 12V power supply, thumbwheel address switches an LM309k regulator and a few resistors and capacitors and an LED. They recommend a 12.5V regulated supply or an Auto battery ! The program time depends on how long you push the button, it says do not press longer than one second. But since it is blowing fuses, I'm not entirely sure why holding the button down longer could harm anything, once it was blown. I would have thought it would be more important, the speed that the fuse blew due to vaporized metal effects and that would depend on the voltage source value and its internal resistance and the resistance of the conductors and fusible links in the IC, but from the diagram, the connections to the outputs at least, in program mode are current limited to the 12V supply with a 390R resistor, but the program button connects directly from the 12V supply into Vcc of the IC.

I have attached a scan of the schematic and the suggested top panel layout of the instrument. If I did not have the BP1400, I probably would have built this, though maybe I would have put a timer on the program button function to say 750mS to make sure the programming time was uniform for all "fuses".

PS: There is a very funny typo/s in the article on this programmer, it says on page 224: "The programmer is built in a 4 foot x 6 foot x 2 foot aluminum chassis " Of course it is supposed to say inches, I don't know how that could have slipped by the editors.
 

Attachments

  • progr.jpg
    progr.jpg
    67.4 KB · Views: 2
  • progr2.jpg
    progr2.jpg
    84.2 KB · Views: 2
Last edited:
PS: There is a very funny typo/s in the article on this programmer, it says on page 224: "The programmer is built in a 4 foot x 6 foot x 2 foot aluminum chassis " Of course it is supposed to say inches, I don't know how that could have slipped by the editors.

That was a cut-and-paste for an earlier version that was designed to blow PROM "fuses" made out of barbed wire for programming the ENIAC?
 
Back
Top