• Please review our updated Terms and Rules here

Intel 80186 Memory Chip Select and Memory Map help!

It’s a shame bipolar RAMs aren’t still a thing.

Because they’re cheap and easy to find I have sketched out a design for using those sub-20ns 32kx8 cache RAM chips for a mapping register, but being only 8 bits wide means two of them for a “big” memory, which seems excessive. But hey, with 15 input address lines you can either have teeny pages or connect some extras to a ‘573 and have a ton of alternate register sets for task switches…
 
I still have a couple of systems with the Fairchild bipolar RAMs in them. My recollection is that they were expensive and power hungry. But heck, you could probably put the whole thing in a CPLD today. We had a 1K page size, which turned out to work quite well. ECL RAMs were likewise expensive--I think I've still got some MB7072E Fujitsus (256x4) stashed away.

Apparently the bipolar RAMs were popular in early arcade games. Mike's got 'em in stock
 
I still have a couple of systems with the Fairchild bipolar RAMs in them. My recollection is that they were expensive and power hungry.

Anchor Electronics actually has those 64x9s on their price list, and I was thinking at one point of getting a couple to play with, but they wanted something like $10 each for them. I figured at that price it’s probably best to save them for the original applications. ;)

Register space is kind of at a premium in the old small CPLDs you’d usually mix with a 5v CPU, but a thought that occurs is maybe you could use one as the support logic for one of those wicked fast cache RAMs as the data store? If you’re making something to play with an 8mhz-ish CPU you might have plenty of time to make two reads of the 8-bit wide 15ns RAM to pull a 16 bit value for every memory address. Maybe even implement read/write protect flags…
 
I haven't tried, but I suspect I could fit something useful in the XC95108 5V 84 pin CPLDs that I have kicking around. :) Much beyond that (I know that there's an XC95288XL) and you're in FPGA territory--and low voltage logic--and goodbye to through-hold (even PLCC) mounting.

The 64x9 bipolars are $3.95 at ArcadeShop
 
Back on topic, here’s an idea for a really minimal decoder that’s even simpler than my first idea but gives you the basis for an easy to use expansion bus system:

Forget about using LCS and the MCS lines, the only one we care about is UCS, which is the chip select for the ROM subsystem. Like before we set up a 1MB RAM array, and the select for said array (active low) is connected to a multi-input NAND gate, which has pull-up resistors on all inputs except one, which is connected to UCS. (Along with the ROM array, obviously.)

The result of this setup is RAM will be selected whenever ROM isn’t. The exact mapping will automatically adjust based on the block size set for UCS; at power-on you’ll have 1023K of RAM and 1K of ROM, but if you set the block size for UCS to, say, 64K, you’ll automatically remap to 960k of RAM/64K ROM No fuss, no muss.

Beauty of this system: Remember the other input(s) on the NAND gate we used instead of an inverter? If you add memory-mapped peripherals (video or whatever) all you need to do is decode them wherever you want under the bottom of ROM and have their memory selects pull an input on that gate whenever memory on the peripheral is active. This lets you create “memory holes” at any location you want, up to and including substituting paged memory for the wired memory after the fact. (Some might recognize this idea as inspired by the *Phantom line on the S-100 bus.)

This peripheral override could be implemented either as a separate override input for each ‘slot’ (using a 7430 8-input NAND would give you seven overrides on top of the one connected to UCS), or you could have a common line with a more powerful pull-up and use open collectors on the peripheral decoders to pull it down.
 
If you're going to be extending the chip selects from an original 80186, perhaps the 80c186EC might be of interest, with its own chip-select unit. You get UCS, LCS and 8 programmable selects. Reference manual. You also get an 8259-compatible interrupt controller, 4 channels of DMA and 2 USARTs.
 
Back
Top