This is a question about mask ROM (not EPROM) chips of the 8-bit era.

The size of DRAM chips increased by factors of 4, so there were 4kbit chips, then 16kbit, 64kbit, 256kbit etc. The natural width of DRAM chips was 1 bit, so it was customary to measure their sizes in bits rather than bytes. (There were exceptions, but you didn't necessarily want to be depending on those, which ran the Acorn Electron into some difficulties, as the designers were aiming for a total memory size that did not match the most cost-effective chips of the time.)

ROM chips were equally happy to be 8 bits wide, so it seems convenient to measure their sizes in bytes, but I'm getting the impression that there was a similar story with the size steps, finding evidence of the existence of ROM chips in sizes of 2Kbyte (used in e.g. the Commodore PET), 8K (used in the C64), 32K. These actually correspond to the DRAM sizes, when you convert between bits and bytes.

But it's more difficult to be sure, because mask ROMs had to be manufactured with the desired data, so they were not for sale as products in their own right, so I can't just look at the ads in the back of Byte magazine for a clear picture of the availability.

So my question: Is the above an accurate picture? So for example there were no 16K ROMs, and if you wanted 16K, you would use a pair of 8Ks, or a 32K and leave half unused?

  • 1
    There's a reason that a 2 kilobyte ROM, PROM or EPROM was in the datasheets referred to as a 16K × 8, and (for ROM) given JEDEC designation 2316. (The 4 kilobyte 32K × 8 was a 2332; the 8 kilobyte 64K × 8 was a 2364, and so on.)
    – cjs
    Commented May 25 at 12:23

6 Answers 6


No, there were definitely 16KB ROMs. A very notable user of them was Nintendo for the initial wave of Famicom/NES games, which typically contained an 8KB CHR ROM and a seperate 16KB PRG ROM in the cartridge.

Going by a cartridge database it seems that at a minimum Sharp, Ricoh OKI and Yamaha were making 28 pin 16KB mask ROMs for Nintendo during this period. For Yamaha the part number appears to be YM2211 although I can't find the datasheet. However some googling suggests this ROM chip was used in some of Yamaha's electronic instruments as well.

For OKI I had a little more luck, I found their 1983 mask ROM catalogue. It's over 200 pages and includes information on their mask ROM services so you might want to read the whole thing: http://www.bitsavers.org/components/oki/_dataBooks/1983_OKI_Memory_Data_Book.pdf

Here is the relevant 16KB ROM from page 193, there's also a faster 250NS variant on page 197.

enter image description here

  • 2
    I notice that the package has two NC pins, both of which are adjacent to address input pins. Now, I'm not saying that I have any knowledge whatsoever of how that chip actually was made, but if I were the manufacturer, and if I had a 32k part in my catalog, and if the marketing department said I must also offer a 16k part, I'm pretty sure I would not design a whole new chip to satisfy that requirement. Commented May 17 at 18:52
  • 4
    @Solomon Slow I believe the pinout is a JEDEC standard, so the NC pins would be used for larger capacity devices
    – Frog
    Commented May 18 at 1:15
  • 1
    @Frog, Right. I would not have recalled "JEDEC." I was only ever a software geek. But, I expected that larger ROMs would have the same pinout, except with one or both of those "NC" pins connected to address lines. My point though, was that if I had the capacity to manufacture 64K chips, and you ordered a 16K chip, You might never know that the parts I delivered actually contained 64K dice, but with two of the address inputs internally connected to ground (or Vcc, doesn't matter) instead of being connected to the "NC" pins. Commented May 19 at 20:54
  • 1
    @Solomon Slow - indeed, you might expect that a good proportion of faulty 64k dice might work as 16k devices with the spare address lines strapped one way or another.
    – Frog
    Commented May 20 at 23:25
  • 2
    @user71659: If one had 16K of code and was making a 32K device, one could write two copies of the code and arrange so that either could be selected based on bonding-wire placement.
    – supercat
    Commented May 24 at 15:29

No, they did not follow the same pattern.

DRAMs generally increased in factors of 4 because the address bus is multiplexed, so by adding one pin, you gain two address bits.

ROM chips had a simple parallel address bus and had rather standardized pinouts.

Thus for example you have the following ROM chips available:

2708 (1k x 8)

2716 (2k x 8)

2732 (4k x 8)

2764 (8k x 8)

27128 (16k x 8)

27256 (32k x 8)

27512 (64k x 8)

271001 (128k x 8)

272001 (256k x 16)

274001 (512k x 16)

  • 1
    I bet the fact that ROM chips generally had all the bits of something instead of being expected to be chained in parallel into a bank of unknown width probably also encouraged measuring them in bytes instead of bits.
    – davolfman
    Commented May 16 at 23:11
  • Ram boards were generally complex and expensive (because you can never have too much RAM) so manufacturers would achieve upward compatibility be reducing power pins from 3 to 1 which gives 4 extra address bits after row and column address strobing. There was always pressure to keep ROM small because of the 64K directly addressible limit.
    – jrrk
    Commented May 17 at 7:47
  • 1
    @jrrk What 64k addressable limit you might be talking about?
    – Justme
    Commented May 17 at 7:59
  • @Justme probably the 64k limit many 16-bit computers had (only 16 address pins). Of course, this can be expanded with bank switching (or segmentation ala 8086), but OOTB, many 16-bit CPUs only had 16 address pins. With only 64k, the smaller you can keep the ROM, the more RAM you can address.
    – Cole Tobin
    Commented May 17 at 12:19
  • 3
    @ColeTobin: I find it odd how many people, back in the day and now, view bank switching as something mysterious to be avoided and minimized whenever possible. The C64's ability to bank in all but two bytes of RAM in one contiguous range is cute, but being able to map one or more 256-byte window to any page of RAM would have been more useful, even if some portions of RAM were only accessible via those windows.
    – supercat
    Commented May 17 at 16:14

The maximum size of static RAM, EPROM, or mask ROM that would be "readily available" available at any particular time in the 1980s or 1990s would often increase by a factor of four at a time, because the space available for a chip in a typical 0.6" wide DIP lead frames was roughly square. If feature size shrunk enough to double the number of rows that could fit in a certain area, it would also double the number of columns that could fit likewise. The fact that a chip could have twice as many columns, however, didn't mean that manufacturers had to double the number of columns. Cutting the feature size of a chip in half could also allow a manufacturer to double the number of rows (while keeping the same height) and substantially reduce the width of the chip. Because bonding pads need to take up a certain amount of space, the width of the chip wouldn't be cut by half, but it would still be reduced significantly, thus allowing the parts to be manufactured cheaper.

For SRAM and EPROM, part sizes tended to increase by a factor of four except in cases where a two-fold increase could be accommodated without adding more package pins but a four-fold increase could not (e.g. a 4Kx8 ROM can fit in 24 pins, but 8Kx8 requires 28; 64Kx8 can fit in 28 pins, but 128Kx8 requires 32) or manufacturers sold "half-bad" parts. The cost savings of using a smaller rectangular die were insufficient to cover the costs of having to stock an extra kind of part. Since mask ROMs need to separately stock parts for every individual bit pattern, however, it made sense to only use parts that were as wide as they needed to be.

  • 1
    "128Kx8 requires 32" technically it's possible to put 128k in a 28 pin package, and at least one computer manufacturer did. It only leaves you with room for a single enable line though. Commented May 17 at 15:29
  • 1
    @PeterGreen: Was that a 128Kx8 programmable memory or mask ROM? Mask ROMs can sometimes offer multiplexing and control options not available in programmable devices. I can also imagine how a 128Kx8 OTPROM or flash chip could fit in a 28-pin package if programming required using an elevated voltage and alternative addressing scheme; such a scheme might also allow expedited programming by e.g. allowing a row worth of data to be latched sequentially, programmed in parallel, and read back sequentially). but I'm unaware of any commodity DIP-packaged programmable memory chips chips that do that.
    – supercat
    Commented May 17 at 16:00
  • 1
    Mask rom, the computer in question being the BBC master 128, strangely, although the rom had a chip select line marked on the schematic, said line was permanently tied to ground and the rom was connected to a dedicated input on the memory controller chip. Commented May 17 at 16:07
  • 1
    Hobbyists have had to resort to adapter boards when they want to replace the rom in question with one with different content. Commented May 17 at 16:07

The ZX Spectrum ROM is 16K-sized. Also many Konami games for the MSX system are a 16K ROM in a cartridge.


I believe that the 2732 intel EPROM was the skipped generation.

The 2732 and 2764 development cycles overlapped, and as things turned out, the 2732 wasn't far enough ahead to bother with when push came to shove.

So the 2732s that shipped were (early) 2764s for which one side had failed, and (later) 2764s gratuitously disabled on one side.

Or so was the word on the street at the time.


It would make sense for EPROMs to grow in x4 steps because the memory array would tend to be square. Since it needs all to be visible through the erase window, a 2:1 rectangle would need more or less the same feature size as a square chip with double the capacity. Then since development would be done on EPROM it might make sense to use the same capacity mask ROM part. As an aside, some OTP ROMs were just EPROMs in a (cheaper) plastic package.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .