The Acorn Computers range use various programmable memory devices to hold firmware and I thought it would be useful to include a page on these devices and include some info on programming.
There are three classes of memory device used:
Mask Programmed ROMs (Read Only Memory)
Bipolar Fusible Link PROMs (Programmable Read Only Memory)
UV-EPROMs (Erasable Programmable Read Only Memory)
All three types are read only when fitted in a computer and can only be written to (programmed) using special equipment - a Programmer.
Mask Programmed ROMs are an exception as the contents are fixed at manufacture, these are typically used for operating software e.g. the Atom OS & BASIC ROM.
Bipolar Fusible Link PROMs, as the name suggests, are programmed by blowing 'fuses' and consequently can only be written to once. EPROMs can be erased using Ultra Violet (UV) light and programmed again.
There are now many other types of programmable memory available e.g. FLASH, EEPROM etc. but these were not used in computers of this vintage and so are not included here.
PROMs
Generally smaller devices used on older equipment for firmware and other special uses e.g. character generators.
Device | Capacity | Usage |
National Semiconductor DM74S287 | 256 x 4 bits | Softy 1 and 2 character generator |
Tesla MH74S287 | 256 x 4 bits | modern alternative to the DM74S287 |
National Semiconductor DM74S571 | 512 x 4-bits | Acorn System 1 and Sinclair MK14 OS |
Tesla MH74S571 | 512 x 4-bits | modern alternative to the DM74S571 |
Pinouts
These PROMs are all in 16-pin DIL packages and have essentially the same pinout, the smaller 74S287 having a second chip select line in place of A8. The more modern Tesla parts are electrically compatible when fitted in target computers (programing is a different matter, see below).
Datasheets
and for those interested here are a couple of Tesla Databooks:
Programming
As far as I'm aware there are no commercially available programmers for these PROMs, at least that are within the reach of most hobbyists. One option is to look out for secondhand programmers e.g. old Datamans which may be able to program the National Semiconductor parts. Fortunately the Acorn PROM Programmer will program 74S571 and I have modified the code so that it can also program 74S287s.
The Tesla devices unfortunately require quite a different programming method to the National Semiconductor PROMs. The National Semiconductor devices are programmed by driving +12V into the data pins, the Tesla devices by sinking current from the data pins with Vcc raised to +10.5V. I did consider adapting my replica Acorn PROM Programmer to program Tesla devices but the modifications required would have been quite extensive, it would no longer have been a replica. Instead I have developed a variant of the programmer specifically for Tesla devices.
The ELNEC Pro range of programmers are one of the few commercial offerings that can program Tesla PROMs, the 48Pro lists support for the MH74S287 and 571 (and also MH74188, MH74S370).
UV-EPROMS
EPROMs have grown in size over the years from a modest 256bytes to 4Mbytes, Acorn computers generally use 2K to 8Kbyte devices. They are mostly 8-bit/byte wide devices though there were some 4-bit wide parts and more recently 16-bit parts but they are not covered here. Generally the capacity can be determined by dividing the last two digits of the part number by 8 i.e. a 2716 has a capacity of 2Kbytes.
The following table lists EPROM development in chronological order (as far as I have been able to work out):
Date | Device | Capacity | Power Requirements1 | Notes |
1971 | Intel 1702A | 256 x 8-bits | +5V and -9V | The worlds first EPROM. |
1975 | Intel 2704 | 512 x 8-bits | +12V, +5V and -5V | |
1975 | Texas Instruments 27082 | 1024 x 8-bits | +12V, +5V and -5V | The
Acorn System 1
Technical Manual suggests these could be used for IC7 by cutting tracks
and applying the additional power supplies required. Also used on the Softy 1 and Softy 2 programers for their firmware. |
1977 | Texas Instruments TMS2716 | 2048 x 8-bits | +12V, +5V and -5V | The first 2K EPROM. |
1977 | Intel 27163 | 2048 x 8-bits | +5V only | The first single supply EPROM. The Acorn 6502 CPU Board and the 8K RAM + 8K ROM Board both accepts 2716 EPROMs as standard. |
1977 | Intel 2758 | 1024 x 8-bits | +5V only | The first single supply 1K EPROM. |
1978 | Texas Instruments TMS2516 | 2048 x 8-bits | +5V only | TI's single supply (Intel) 2716 compatible EPROM. |
1978 | Intel3 2732 | 4096 x 8-bits | +5V only | Pinout backwards compatible with (Intel) 2716. |
Texas Instruments TMS25324 | 4096 x 8-bits | +5V only | Pinout backwards compatible with TMS2716. The Acorn 6502 CPU Board accepts 2532 EPROMs with only a single track cut and link required (pin 18). The Acorn 8K RAM + 8K ROM Board also accepts these as standard. |
|
Intel 27643 | 8192 x 8-bits | +5V only | The Acorn 6502A CPU Board is compatible with this pinout 8K EPROM. | |
Texas Instruments TMS2564 | 8192 x 8-bits | +5V only | Pinout backwards compatible with TMS2716/2532. |
1. for read mode only, programming will require additional supplies
2. I'm fairly sure TI were first to bring out the 2708, many others make compatible parts
3. Intel were the first manufacturer of these parts but others make compatible parts.
4. TI were the first manufacturer of these parts but others make compatible parts
Pinouts
Generally as parts have grown in capacity backwards compatibility has been maintained but because the two main players, Intel and Texas Instruments (TI), deviated slightly there are two slightly different and incompatible pinouts.
TI developed the 1K TMS2708 and followed it up with the 2K TMS2716, both requiring three power rails. At around the same time Intel produced a 2K 2716 but this only required 5V power and so they used a slightly different pinout to the TI TMS2716. Over time the Intel pin-out won over TI, so TI brought out an Intel pinout compatible 2K EPROM which they called the TMS2516 to differentiate it from their existing TMS2716.
When it came to the next generation EPROMs TI decided to go their own way again and produced the TMS2532 and TMS2564 with slightly different pinouts to Intel's 2732 and 2764, most other manufacturers followed the Intel pinout but some produced TI compatible parts e.g. Hitachi.
Up to 4K EPROMs were packaged in 24-pins, with the extra address lines required for 8K EPROMs they had to move to 28-pin packages, the 'lower' 24-pins largely remaining the same for backwards compatibility.
JEDEC is an organisation that produces standards for semiconductors including EPROMs, it comprises members from the worlds semiconductor and computer manufacturers. For EPROMs in DIL packages they define two pinout standards designated A and B, these broadly match the TI and Intel pinouts respectively (the standard only applies to EPROMs 4Kbyte and larger).
Datasheets
(Not an exhaustive list, other manufacturers are available)
Read Mode
Generally parts with the same part number from different manufacturers are compatible in read mode. The following table shows how the EPROM control pins are used during read i.e. when in a target computer.
24-pin | Pin 18 | Pin 19 | Pin 20 | Pin 21 | Pin 22 | Pin 24 | ||||
Intel 2704 | (Program) low level | (Vdd) +12V | (CS/WE) low level | (Vbb) -5V | (Vss) 0V | (Vcc) +5V | ||||
2708 | (Program) low level | (Vdd) +12V | (CS/WE) low level | (Vbb) -5V | (A9) Address 9 | (Vcc) +5V | ||||
TMS2716 | (CS/Program) low level | (Vdd) +12V | (A10) address 10 | (Vbb) -5V | (A9) Address 9 | (Vcc(PE)) +5V | ||||
Intel 2758 | (CE/PGM) low level | (AR) low level | (OE) low level | (Vpp) +5V | (A9) Address 9 | (Vcc) +5V | ||||
2716/TMS2516 | (CE/PGM)) low level | (A10) address 10 | (OE) low level | (Vpp) +5V | (A9) Address 9 | (Vcc) +5V | ||||
TMS2532 | (A11) address 11 | (A10) address 10 | (PD/PGM) low level | (Vpp) +5V | (A9) Address 9 | (Vcc) +5V | ||||
2732 | (CE) low level | (A10) address 10 | (OE/VPP) low level | (A11) Address 11 | (A9) Address 9 | (Vcc) +5V | ||||
28-pin | Pin 1 | Pin 2 | Pin 20 | Pin 21 | Pin 22 | Pin 23 | Pin 22 | Pin 26 | Pin 27 | Pin 28 |
TMS2564 | (Vpp) +5V | (CS1) low level | (A11) address 11 | (A10) address 10 | (PD/PGM) low level | (A12) address 12 | (A9) Address 9 | (Vcc) +5V | (CS2) low level | (Vcc) +5V |
2764 | (Vpp) +5V | (A12) address 12 | (CE) low level | (A10) address 10 | (OE) low level | (A11) address 10 | (A9) Address 9 | (Vcc) +5V | (PGM) +5V | (Vcc) +5V |
high and low levels refer to +5V logic levels
some pins have other functions e.g. to put the device into a low power (standby) mode
Programming
Parts with the same number from different manufacturers may be compatible in read mode but not necessarily when it comes to programming, manufacturers having their own programming methods and algorithms.
The following table shows how the control pins are used during programming. It is not intended to detail how to program these devices for that see manufacturers datasheets.
24-pin | Pin 18 | Pin 19 | Pin 20 | Pin 21 | Pin 22 | Pin 24 | ||||
Intel 2704 | (Program) +26V pulse | (Vdd) +12V | (CS/WE) +12V | (Vbb) -5V | (Vss) 0V | (Vcc) +5V | ||||
2708 |
(Program) +26V2 pulse |
(Vdd) +12V | (CS/WE) +12V | (Vbb) -5V | (A9) Address 9 | (Vcc) +5V | ||||
TMS2716 |
(CS/Program) +26V pulse |
(Vdd) +12V | (A10) address 10 | (Vbb) -5V | (A9) Address 9 | (Vcc(PE)) +12V | ||||
Intel 2758 | (CE/PGM) high level pulse | (AR) low level | (OE) low level | (Vpp) +25V | (A9) Address 9 | (Vcc) +5V | ||||
2716/TMS2516 |
(CE/PGM) high level pulse |
(A10) address 10 | (OE) high level | (Vpp) +25V2 | (A9) Address 9 | (Vcc) +5V | ||||
TMS2532 | (A11) address 11 | (A10) address 10 | (PD/PGM) low level pulse | (Vpp) +25V | (A9) Address 9 | (Vcc) +5V | ||||
2732 | (CE) low level pulse | (A10) address 10 | (OE/Vpp) +21/25V2 | (A11) address 11 | (A9) Address 9 | (Vcc) +5V | ||||
28-pin | Pin 1 | Pin 2 | Pin 20 | Pin 21 | Pin 22 | Pin 23 | Pin 22 | Pin 26 | Pin 27 | Pin 28 |
TMS2564 | (Vpp) +25V | (CS1) low level | (A11) address 11 | (A10) address 10 | (PD/PGM) low level pulse | (A12) address 12 | (A9) Address 9 | (Vcc) +5V | (CS2) low level | (Vcc) +5V |
2764 | (Vpp) +21/25V2 | (A12) address 12 | (CE) low level | (A10) address 10 | (OE) low level | (A11) address 10 | (A9) Address 9 | NC | (PGM) low level pulse | (Vcc) +5V |
high and low levels refer to +5V logic levels
Vpp voltage varies by manufacturer - typically between +12.5 and +27V (the Intel 1702A required -48V !)
Three rail EPROMs are programmed by writing to each address in turn and applying a 0.1 to 1mS pulse of Vpp (25 to 27V), this is then repeated between 100 and 1000 times depending on the length of the program pulse.
Single rail EPROMs allow each address to be programmed individually or sequentially by applying a single 50mS pulse
Some EPROMs are able to be programmed using a so called fast or intelligent programming algorithm where a short 1mS pulse is applied and repeated until programming is successful and then a number of extra pulses are applied to be sure. An even faster algorithm known as SNAP! can be used with more modern devices but requires accurate control of supply voltages so is generally only available with high end programmers.