PDF preview unavailable. Download the PDF instead.

EPROM Programmer from Oct 1981 BYTE
Ciarcia'. Circuit Cellar

' .

Build an Intelligent EPROM Programmer

Steve Ciarcia POB 582
Glastonbury CT 06033

Longtime followers of the activities in Ciarcia's Circuit Cellar may remember an incident I wrote about a few years ago . My friend Jerry needed to program an EPROM (erasable programmable read-only memory) device in a hurry for a demonstration
Copyright © 198 1 by Steven A Ciarcia. A ll rights reserved.

at his computer club. The EPROMprogramming arrangement we devised gave me the idea for the article "Program Your Next EROM in BASIC" (March 1978 BYTE, page 84), in which I presented a design for an inexpensive programming circuit and told how to drive it with software written in a high-level language.
EPROM technology has advanced considerably since then . In 1978, the

Photo 1: Complete intelligent EPROM-programming system, consisting of the Z8-BASIC Microcomputer, the EPROM-programming interface of figure 4b, and a video-display terminal.

type-2708 EPROM chip, which requires a three-voltage power supply, was just becoming established, replacing the hard-to-program type-1702 EPROM device. Not only was the 2708 easier to program, it also held more data: 1 K (1024) 8-bit words, compared to 256 8-bit words stored by the 1702 EPROM.
The 2708 EPROM has been replaced in most new designs by the single-voltage type-2758 EPROM, and a number of higher-capacity devices that require only a single-· voltage power supply have been developed and made available by several manufacturers. These are the type-2716 (2 K 8-bit words, or 16 K bits), type;-2732 (4 K 8-bit words), and type-2764 (8 K 8-bit words) EPROMs. The 2716 has become especially popular, partly because its 2 K bytes are sufficient memory space for storing most bootstrap loaders, command monitors, and simple utility programs; and partly because the 2716 is usually priced under $10.
The 2758, 2716, and 2732 EPROMs are members of the same family of components, sharing a common pinout specification. With only minor modifications to the wiring, a designer can allow different-capacity memory devices to be plugged into the same socket on a circuit board. This versatility also means the same basic circuit can serve in several applications.
My previous article on EPROMs suggested using an interpreted BASIC

36 October 1981 © BYTE Publications Inc

program to drive the EPROMprogramming circuit. This idea did work, but it took a long time to program a 2708 EPROM. If you wanted to program more than a few 2708s, you would have been wise to pack a box lunch for the occasion. The BASIC program demonstrated the algorithm for programming an EPROM, but a machine-language driver program was needed for practical large-scale EPROM programming .
The slow speed for programming, or 'burning," 2708s this way results from the need to iterate the write pulse 100 times for each byte location. Each byte in the 2708 must be written for at least 100 ms (milliseconds) to assure stability of the stored data . However, this 100 ms duration must consist of 100 separate, pulsed write sequences, each lasting only 1 ms. All 1024 byte locations must be addressed in se-
quence while a +25 V programming
pulse is applied for 1 ms for each address. The cycle is then repeated 100 times.
The 2716, on the other hand, requires only one loop through all the addresses, instead of 100 loops. While each location is being addressed, a 50 ms programming pulse is applied, usually timed by a one-shot (monostable multivibrator) . The 50 ms, single-loop programming conditions fall well within the speed capabilities of BASIC, and no machine-language driver routine need be written for serious use.
Using a program essentially the same as the one presented in the original article (running under an 8 K BASIC interpreter on a Z80 microprocessor with a 2.5 MHz clock rate), a 2716 can be completely burned in 154 seconds, requmng 75 ms per location. The minimum time required with a machinelanguage driver is 103 seconds, or 50 ms per location. The difference is hardly noticeable.
Because EPROMs are so widely used, I thought it was about time to write another article on them, featuring the 2716 . First, I'll discuss why EPROMs are used and how they work, and then I'll describe the design

of my new EPROM-programming circuit.
What is different about this new circuit? I decided to "unbundle" the system and design the EPROM programmer as a stand-alone, intelligent unit. By incorporating the Z8-BASIC Microcomputer (my July-August Circuit Cellar project), we can easily put together a stand-alone 2716 programmer with capabilities that rival those of units costing ten times as much. (See "Build a Z8-Based Control Computer with BASIC, Part 1," July 1981 BYTE, page 38, and "Part 2," August 1981 BYTE, page 50.)
Whys and Wherefores of EPROM
A personal computer, even in its minimum configuration, always contains some user-programmable memory or RAM (random-access read / write memory ), usually in the form of semiconductor memory integrated circuits. This memory can contain both programs and data. Any machine-word-level storage element within the memory can be individual-

ly read or modified (written) as needed .
Any of several kinds of electronic components can function as bitstorage elements in this kind of memory. TTL (transistor-transistor logic) type-7474 flip-flops, bistable relays, or tiny ferrite toroids (memory cores) are suitable, but all cost too much, are hard to use, and have other disadvantages.
In personal-computer and other microprocessor-based applications, the most cost-effective memory is made from MOS (metal-oxide semiconductor) integrated circuits. Unfortunately, data stored in these semiconductor RAMs is volatile. When the power is turned off, the data is lost. Many ways of dealing with this problem have been devised, with essential programs and data usually stored in some nonvolatile medium.
In most computer systems, some data or programs are stored in nonvolatile ROM (read-only memory). A semiconductor ROM can be random-

Photo 2: Closeup of the EPROM programmer. On the right is the Z8-BASIC Microcomputer circuit board with the prCilgram-controller software resident in the onboard EPROM. On the left is the prototype type-2716 EPROM programming interface. It includes a control panel, an operator display (LEDs), a zeroinsertion-force EPROM socket, and a 4 K-byte buffer memory.

October 1981 © BYTE Publications Inc 37

ly accessed for reading in the same manner as the volatile memory, but the data in the ROM is permanent . In a mask-programmed ROM, the data that can be read is determined during th e manufacturing process . Whenever power is supplied to the ROM, this permanent data (or program ) is available . In small computer systems, ROM is chiefly used to contain operating systems and/ or BASIC interpreters-programs that don't need to be changed.
Another type of ROM is the PROM (programmable read-only memory) . A PROM component is delivered from the factory containing no data. The user decides what data he wants it to contain, and permanently programs it with a special programming device . Once initially programmed, PROMs exhibit the characteristics of mask-programmed ROMs. You might label such PROMs as "write-once" memories .
The ultraviolet-light-erasable EPROM is a compromise between the "write-once" kind of PROM and the volatile memory. You can think of the EPROM as a "read-mostly" memory, used in read-only mode most of the time but occasionally
SELECT GATE
(V G)

~ Mode
Read
Standby
Program Program
Ver if y Program
Inh ibit

CE/PGM (18)
V/L
V/H Pulsed V/L
to V/H
V/L
V/L

OE (20)
V/L
Don 't care
V/H V/L V/H

Vpp

V ee

(21)

(24)

+5

+5

+5

+5

+ 25

+5

+25

+5

+ 25

+5

Outputs (9-11 ,13-17)
D·· , High impedance
D;n
D··, High impedance

Table 1: V oltages present at specified pins of the 2716 during the fiv e modes of operation . V/L must be in th e range -0.1 V to +0.8 V; V/H must be in the range
+2 .0 V to Vee + 1.

erased and reprogrammed as necessary. The EPROM is erased by exposing the silicon chip to ultraviolet light at a wavelength of 2537 angstroms. Conveniently, most EPROM chips are packaged in an enclosure with a transparent quartz window. (I once wrote about a different kind of "read-mostly" memory, the EAROM: electrically alterable read-only memory. An EAROM is erased by purely electrical means , without resorting to ultraviolet light. See "Add Non-
FLOATING GATE

volatile Memory to Your Computer," December 1979 BYTE, page 36.)
How the EPROM Works
EPROMs made by Intel Corporation and several other manufacturers store data bits in cells formed from stored-charge FAMOS (floating-gate avalanche-injection metal-oxidesemiconductor) transistors. Such transistors are similar to positivechannel silicon-gate field-effect transistors, but with two gates, as shown in figure 1a. The lower, or "floating," gate is completely surrounded by an insulator layer of silicon dioxide, and the upper "control" or "select" gate is connected to external circuitry.
The amount of electric charge

SILICON DIOXIDE

SILICON
SI LICON
P-TYPE IMPLANT
P - TYPE SI LICON SUBSTRATE
Figure 1a: Physical structure of one bit-storage cell in a 2716 EPROM. Th e cell consists of a FAMOS (floating-gate avalanche-injection m etal-ox ide semiconductor) field- effect transistor m anufactured in a stacked-gate configuration. During programming, a voltage placed on the select gate creates an electric field within the structure. Th e field raises the energy levels of electrons passing through the channel f ro m drain to source enough that some of the electrons are able to tunnel through th e silicon-dioxide insula tor and accum ulate on the fl oating gate.

24 VCC AS
22 A9 21 Vpp 20 OE
19 AID
CE/PGM 17 07 16 06
05 14 04
03
Figure 1b: Pinout specification of th e type-2 716 EPROM (e rasable programmable read-only m em ory) integratedcircuit package.

38 October 1981 © BYrE Publications Inc

stored on the floating gate determines whether the bit cell contains a 1 or a
o. Charged cells are read as Os; un-
charged cells are read as Is. When the EPROM chip comes from the factory, all bit locations are cleared ofcharge and are read as logic Is; each byte contains hexadecimal FF .
When a given bit cell is to be burned from a 1 to a 0, a current is passed through the transistor's channel from the source to the gate . (The electrons, of course, move the opposite way.) At the same time, a relatively high-voltage potential is placed on the transistor's upper select gate, creating a strong electric field within the layers of semiconductor material. (This is the function of the
+25 V charging potential applied to
the 2716 .) In the presence of this strong electric field, some of the electrons passing through the sourcedrain channel gain enough energy to tunnel through the insulating layer that normally isolates the floating gate. As the tunneling electrons accumulate on the floating gate, the gate takes on a negative charge,
which makes the cell contain a o.
When data is to be erased from the chip, it is exposed to ultraviolet light, which contains photons of relatively high energy. The incident photons excite the electrons on the floating gate to sufficiently high energy states that they can tunnel back through the in-

sulating layer, removing the charge from the gate and returning the cell to the 1 state.
Programming the 2716 The 2716 EPROM contains 16,384
(16 K) bit-storage cells configured as 2048 individually addressable bytes. This organization is often called "2 K by 8. " The completely static operation of the device requires no clock signals.
The pinout specification of the 2716 is shown in figure 1b, and a block diagram of its internal structure is shown in figure 1c.
The 2716 has five different operating modes, for which the inputvoltage requirements are shown in table 1. The read, standby, and program modes are the ones I'll discuss in detail, since the program-inhibit and program-verify modes are important primarily in high-volume applications .
In the read mode, two control inputs are used to select the chip after the processor has selected the memory address. The OE (output enable) line is provided mainly as a means of jointly selecting a bank of several 2716s, perhaps by a connection to the memory-read line on the system bus. The CE/ PGM (chip enable / program) input is decoded and used as the primary deviceselecting line.

DATA OUTPUTS 00-07
r~--- - - - - - ,

OE CE/PGM

CH I P-SELECT, POWER-DOWN, AND I--_ _~
PROG . LOG I C

OUTPUT BUFFERS

AO-A10 ADDRESS
INPUTS

V DECODER X DECODER

V-GATI NG
16,384 - BIT CELL MATRIX

After the logic level present on the CE / PGM pin has been brought low, the OE input should also be brought low. Then 120 ns (nanoseconds) elapse before the addressed data is available on the data-output pins. This is sufficiently fast to be compatible with other types of memory devices in most systems, allowing direct connection of the 2716 to the system bus for reading data, as shown in figure 2a on page 40 .
The 2716 can be placed in the static standby mode to reduce the power consumption without increasing the access time once it is addressed. With a TTL high level applied to CE/ PGM, the output lines assume a high-impedance condition. It doesn't matter what voltage is present on OE.
In the program mode, particular bit cells are induced to contain 0 values. Both Is and Os are present in the data word presented on the data lines of the 2716, but only the presence of a 0 causes action to take place.
When the Vpp power-supply input
is placed at a potential of +25 V and
the OE input is at a high level (V/H), the TTL-level data to be programmed for a specific address is set up on the 2716's data lines, and the address is set up on the address lines AO through A10. After a setup time of at least 2 J.l-s (microseconds), a high TTLlevel programming pulse 50 ms long is applied to the CE / PGM input. Addresses to be programmed may be specified in any order.
The 50 ms programming pulse must be applied once for each location to be programmed. Under no circumstances should a constant high level be applied to the CE / PGM input in the program mode. Repeated 50 ms pulses to the same location are acceptable, but any pulse width greater than 55 ms might destroy the chip. (The minimum pulse width is 45 ms.) Using a nonretriggerable one-shot (monostable multivibrator) to generate the pulse is one simple protective measure.

Figure Ie: Block diagram of the internal structure of the type-2716 EPROM.

A Simple EPROM Programmer As we have previously seen, in the
read mode the 2716 may be connected
October 1981 © BYrE Publica tions Inc 39

directly to the system's address and data buses. It's not so easy, however, in the program mode.
Because of the setup-time interval that must elapse after the address data are presented, the programming pulse must come at an instant that doesn't fit too well within the synchronous operating constraints of the typical computer system bus. This limitation is most easily overcome by using three parallel output ports to communicate with the EPROM. The address and the data can be held constant while the programming pulse is applied. Figure 2b shows a block diagram of this scheme, and figure 3 shows the schematic diagram of an

actual circuit that uses this principle, which can be used with almost any personal computer.
The simple EPROM-programming circuit uses two integrated circuits besides the EPROM: the Intel 8255 PPI (Programmable Peripheral Interface) and a type-74121 one-shot. The 40-pin 8255 contains three separate 110 (input! output) ports. Twentyfour 110 lines can be programmed for various input, output, and control functions. (For more information on the 8255 PPI, see "Interfacing the S-100 Bus With the Intel 8255," by David L Condra, October 1979 BYTE, page 124, or the Intel Component Data Catalog.)

WRITE /PROGRAM

8 - BIT PARALLEL OUTPUT LATCH

ADDRESS

~
C Q

00- 07

+25V

21

Vpp

2716

+5V

AQ-AI0

DE 20

CE/PGM 18

PUL SE

Figure 2a: For read-mode operation, the 2716 EPROM is fast enough that it can be directly connected to the address and data buses of most microcomputer systems. The OE (output enable) line is usually used as a means of jointly selecting a bank of 2716s , while the CE/ PGM (chip enable/ program) line is used to select the particular integrated circuit that is to be addressed.

In this application, I set up the 8255 to operate in two different configurations. When programming, ports B and C contain the address, and port A contains the data. All three ports are set up for output. When verifying the contents (in read mode) after programming, ports Band C again contain the address, but port A is set for input to read output data from the 2716.
The 8255 is relatively simple to use . Its four internal registers for ports and control are accessed just like any other 110 device. Using a combination of chip-select and addressdecoding logic, particular combinations of logic levels on the AO and Al lines designate the specific register being addressed, as shown in table 2. The data word written into the modecontrol register configures the particular functions of the 24 110 bits.
Setting all three ports for output is accomplished by writing hexadecimal 80 into the mode-control register. The other combination, Band C set for output with A set for input, is arranged by loading hexadecimal 90 into the mode-control register. These two control codes are the only ones required.
The EPROM interface in figure 3 requires the operator to select the read or program mode by the position of a toggle switch. In the read mode, the V~wer input will be at
+5 V, and CE / PGM and OE will
be at logic O. In the program mode, with the switch closed, Vpp will be at
+25 V, OE will be at logic 1, and
the one-shot will be strobed for each successive location. The driver program which coordinates this effort

READ

DATA BUS

ADDRESS BUS

00-07

+5V 21

Vpp

2716

AO-AI0

DE 20

CE/PGM 18

Reg ister
PortA Port B Port C Mode·Control Register

Address Bits

AO

A1

0

0

0

1

0

Figure 2b: In the write-program mode, the need fo r an asynchronous programming pulse necessitates the use of external data latch es, driven by the output ports of th e controlling computer system.

Table 2: Addressing of po rt and mode-control registers in the Intel 8255 Programmable Peripheral Interface.

40 October 1981 © BYTE Publications Inc

will be essentially the same as that for the more sophisticated EPROM programmer yet to be described.
An Intelligent Programmer The 2-chip EPROM programmer
previously described is an interface designed to be attached to a programdevelopment-type computer system. It can do just as much as the one I am about to discuss. However, what I have in mind is better than a mere EPROM-programming interface: an intelligent EPROM programmer, a stand-alone device that functions only as a programmer.
In my opinion, such a programmer should be able to perform the following tasks : accept raw input data by various means and store this data in a buffer memory, read a previously programmed EPROM and store the contents in the buffer, write the con-

tents of the buffer into another EPROM, and compare the contents of the same or a different EPROM chip to the buffer. In essence, these are standard load, program, and verify functions consistent with any reasonably useful 2716 programmer.
Photo 1 on page 36 shows the prototype of such a device . The intelligence for this programmer is supplied by a Z8-BASlC Microcomputer, a single-board computer specifically configured for use as a controller in dedicated applications. Using this Z8-based controller board, I was able to program and test the driver software directly and easily.
The final configuration consists of the Z8 board, 4 K bytes of expansion memory, the EPROM-programming circuit of figure 3, three pushbutton switches, and some LEOs (lightemitting diodes) added to com-

municate with the operator. The pushbuttons L, V, and W activate the load, verify, and write functions, respectively . The three LEOs next to them are labeled Read, Write, and Ready . Two more LEOs, labeled T and L (for terminal and local) are placed adjacent to the Control slide switch. I'll explain them later.
The intelligent EPROM programmer has two operating modes. With the Control switch in the L (local) position, the programmer receives all its commands through the pushbutton switches. With the Control switch in the T (terminal) position, the programmer expects to receive commands from a video terminal or teletypewriter connected to the Z8-BASIC Microcomputer's RS-232C connector. In this terminal mode, you can examine the buffer contents, directly change or introduce new

IC1

8255

~ cs PPI

7 37

6 38

5 39

e>----2 Ro

1/0
ADDRESS

~ WR

DE CODER

e>-----1 AO

4 40 PORT
A 31
2 2
1 3
o 4

'f't ~ Al

16

15

14

~ 07

e>-----1! 06

~ 05

DATA BUS

~ 04 ~ 03

[>---E 02

~ 01

~ DO

7 25
6 24
5 23 4 22 PORT B 3 21
2 20
1 19
o 18
~ RESET

+5V ~
4.7 K TYPI CAL FOR 8

Number
IC1 IC2 IC3 IC4

Type
8255 741 21 7406 2716

+ 5V
26 14 14 24

GND
7 7 7 12

+5 V

15 K

19 10 11 13 14 15 16 17 DO 01 02 03 04 05 06 07

19 A10

CE/PGM 18

22 A9

23 A8 1 A7

IC4 2716

6 Q
+5V
~
4.7 K

4.7p.F

~b

11

C

RI C

IC2 74121 B 5 50mo

Al A2

3 4

+5V 1K

2 A6

OE 20

2 30 1

3 A5

4 A4

+5V

3

3b IC3

5 A3

7406

"111' lN914

4

6 A2

7 A1

lOOn.

8 AO

21 Vpp

2N2222A

"" C(,i

10K

JL WRITE PUL SE
R

Figure 3: Schematic diagram of a sim ple EPROM-programming circuit that is intended to be driven from an external large (program-devel opment-type) computer system.
O ctober 1981 © BYTE Publications Inc 41

data, and execute the standard read, write, and verify functions by keyboard commands. In addition, this mode facilitates serial entry of data directly into the buffer.
The local mode emulates the pushbutton operation of typical commercial EPROM programmers. Pressing L (load) will cause the device to read an EPROM inserted into the ZIF (zero insertion force) integratedcircuit socket and store the data in 2 K bytes of the 4 K-byte read/ write-memory buffer. (The buffer has enough capacity to store all the data in a type-2732 EPROM, making possible yet more versatility.) Pressing W (write) will make the device program the 2 K bytes of data from the memory buffer into an erased EPROM inserted into the ZIF socket. Pressing V (verify) will cause the Z8 program device to compare the contents of the buffer to the EPROM. The LEOs indicate the current status and inform the operator when a function has been completed. All these operations and control assignments are under program control. Their meanings and functions can easily be changed in software to meet your specific requirements.
Programmer Hardware The EPROM-programming hard-
ware consists of two basic sections: memory expansion for the Z8-BASIC Microcomputer (shown in figure 4a), and the EPROM-interface section (shown in figure 4b).
After the EPROM-programming software has been written and debugged (which is done using the BASIC interpreter), it can itself be placed into an EPROM, which can then be plugged into the Z8 board's

Number

Type

+5V GND

Z6132 memory socket. With the onboard read/ write memory removed to accommodate the EPROM, a separate buffer memory must be added to the Z8 board to hold the data read from or written into the 2716 being processed. This can be provided by the original or another Z6132 quasi-static 32 K-bit memory device and two other chips. Iel in figure 4a is the Z6132, and IC2 and IC3 func-

tion as address decoders. As configured, the 4 K-byte expansion memory resides at hexadecimal addresses 8000 through 8FFF .
The EPROM-interface hardware shown in figure 4b is essentially the same as that in figure 3, with a few more "bells and whistles." As previously described, the 8255 PPI is attached to provide three parallel ports. Instead of using four incremen-

TO FIGURE 4b IC4
A13 A14

A15 S A14 T

1 30 2

1

IC2

2

74LS30

A13 U

3 3b

A12 V

5 3c

IC3 74 LS04

FROM Z8-BASIC MICROCOMPUTER

os 21
R/W 20
AS 2
All W A10 X A9 Y
A8 Z

A7/07 8 A6/06 7 A5/05 6 A4/04 5 A3/03 4 A2I02 11 A1101 10 AOIOO 9

4

3D-

' .)

ADDRESS DECODED FOR 8000-8FFF HEXAOECI MAL

20
CS
22 os

r TO.l,..F
VBe BUSY

27 WE

26 AC 23 All

21 A10 24 A9 25
A8
3 A7 4
A6 5 A5 6 A4 7 A3

IC1 Z6132 4K X 8 8000-8FFF

8 A2
9 Al 10
AO
DO 01 02 03 04 05 06 07 13 15 16 17 18 19
LJ11r2

IC1

Z6132

28

14

IC2

74LS30

14

7

IC3

74LS04

14

7

IC4

74LS30

14

7

IC5

74121

14

7

IC6

7406

14

7

IC7

74LS04

14

IC8

8255

26

7

7

Figure 4a: Schematic diagram of the buffer-memory section of the intelligent EPROM

ICg

2716

see schematic programmer. This circuit expands the read/ write memory capacity of the Z8-BASIC

diagram

Microcomputer, and it may be used independently of the EPROM-programming inter-

face .

42 October 1981 © BYrE Publications Inc

FROM FIGURE 40 IC3
A13 A14
0

A15 S

1

A12 V

All w

a:
.w...

::::> "-

A10 X

~

0

0

0

a:

OS 21

0

~

0

en
c(

R/W 20

m ,

'N "

~

0 a:

A9 Y

"-

A8 Z

A7I07 8 A6/06 7 A5/05 6 A4/04 5

2 '----

3

IC4

74LS30

4r-'\8
~ 13. ~

1~

11
IC3 74LS04 9 3d 8

6 CS

PA7 37 PA6 38 PA5 39 PA4 40 PA3 1 PA2 2
PAl 3
PAO 4

IC8 8255 PPI

5Rii
36 WR
8 Al 9 AO
27 07 28
06 29 05 30 04

PC2 16 15
PCl 14
PCO PB7 25 PB6 24
23 PB5
22 P84 PB3 21
20 PB2
19 PBl
18 PBO

A3/D3 4

31 03

~

A2I02 11

e;.o.r.

A1/01 10 AO/DO 9

@

32 02
33 01 34
DO

h RESET

~'"

82 55 PPI ADDRESSES

.c "

HEXAOECIMAL ADDRESS

FUNCTiON

0-
W

9000

PORT A I/O

g~ .

9100

PORT B I/O

~

9200 9300

PORT C I/O MODE CONTROL

~

r------------------------jIK> B7

+5V
t
4. 7K TYPI CAL
FOR 8

+5V 220n

+5V 220n

+5V

~ ~TERMINAL"~ ~'LOCAL'

LOCAL

---1- LOAD

TERMINAL

NOTE: UNLESS OTHERWISE INDICATED, ALL LEOs ARE TYPE TIL220 (RED LED)

r.7
+5V

---1---1-

WRITE VERIFY
+5V

4.7K TYPI· FOR:
H B6
E 85
C B4

J9 10 11 13 14 15 16 17 DO 01 02 03 04 05 06 07

15K 4 . 7p.F
~b11

19 AI0 22
A9 23 A8

18 CE/PGM

6 Q

C

R/C

IC5 74121
50ms B 5
Al A2

1 A7 2 A6 3 A5

IC9 2716 2K BY 8

+5V 10K

3 4 +5V
lK

4 A4 5 A3

DE 20

4 6b 3

+5V

2
.~.

220n
G~ WRITE/EF TIL224 YELLOW I 12
~13 .....

IC7 74 LS04

70 1

.....

OR
o
P27 WRITE PULSE
P21 READ/WRITE

6 A2 7 Al 8 AO

~r IN914
6 lOOn

Vee 24

21 Vpp GNO

);2

+26V
t

+5V
~""""-"

2 N2222A
~" I
220n
C~'WRITE"

+5V
t
220n
G~"READ"

-- -

1N914

1 '-------..:.,-0<601

~11 . 8<EfI C 6 ,,..~ 7406

+5V
220l
" ~~ RI Dyn
6
7e 5 EPRO POWE ENABLE
· <"121 P20

~

Figure 4b: The EPROM-interface section of the intelligent EPROM programmer. This connects to the circuit of figure 4a and the

Z8-BASIC Microcomputer, forming a versatile means of burning programs into a type-2716 EPROM chip .

tally adjacent addresses to designate the mode-control-register and port locations, I conserved hardware and addressed the four ports as follows: hexadecimal 9000, port A; hexadecimal 9100, port B; hexadecimal 9200, port C; and hexadecimal 9300, mode control.
Other differences in the circuit include computer control of the read / write function and the supply of power to the EPROM. Rather than making you manually turn off the power to insert or extract a 2716, the EPROM programmer controls the power through a relay. The READY LED indicates when the power is off (the LED will be lit). The three control signals come from output port 2
°provided on the controller board. Bit is the power control (0 = off,
1 = on), bit 1 is the read / write con-
trol (0 = read, 1 = write), and bit 7 provides the program pulse to the

one-shot (a transition from low to high and back to low). The Control switch and the three pushbutton switches are read as bits 4 through 7 of an I/O port memory-mapped into hexadecimal address FDE8 (decimal 65000). This input port is also provided on the Z8 board.
The intelligence for the EPROM programmer is supplied by a Za-BASIC
Microcomputer.
Software Control The driver program for the pro-
grammer is written in tiny BASIC and resides in EPROM on the controlling Z8 board. The routine is very straightforward and can easily be rewritten to run on another BASIC interpreter, should you care to con-

nect the EPROM interface to a different computer. The entire program is too complex to cover in this article; it includes a lot of code necessary merely for screen formatting and operator interaction in the terminal mode. Let's confine our attention to the less involved routines which allow automatic programming control in the local mode.
The code for the local-mode control routines is given in listing 1 on page 47. Flowcharts of the constituent parts of the listing are shown in figures 5 through 8. Essentially, the program consists of a supervisory input scanner and four subroutines. The supervisor reads the pushbutton and slide switch inputs and transfers control to the appropriate subroutine to execute the corresponding function. The functions include reading the EPROM and storing the data values in the buffer, writing the buf-

GO TO TERM I NAL SUBROUTI NE

Photo 3: Closeup of the prototype control panel. The L, V, and W pushbutton switches control the load, verify, and write functions , respectively. The T and L indications next to the slide switch stand for terminal and local. In localmode operation, no video-display terminal or teletypewriter is necessary, and all EPROM programming and verification can be accomplished with only these controls.
44 October 1981 © BYrE Publications Inc

GO TO BUFFER-LOAD
SUBROUTINE

YES YES

GO TO MEMORY-BUFFERAND - EPROM- COM PARE SUBROUTINE
GO TO BUFFER-TO-EPROMPROGRAMMER SUBROUTINE

Figure 5: Flowchart of th e command-input, user-interface section of the EPROMprogramming software, as shown in listing 1.

fer contents to the EPROM, comparing the buffer and EPROM values, and transferring control to an interactive routine that communicates with the operator through a keyboard and display (terminal mode) . The flowcharts indicate the sequence.
Conclusion As the technology of EPROM
manufacturing continues to be developed, I will keep a close eye on the possible need for circuits to use new components. Perhaps in another few years I'll be writing about interfacing and programming I-megabyte EPROM chips.
I shall also be investigating other projects using the Z8-BASIC Microcomputer as a component that can give additional flexibility and
Text continued on page 48

Photo 4: Closeup of ZIF (zero insertion force) socket. When the lever on
Ie lower left is in the vertical position, the two metal contacts touching each (in-
tegrated circuit) pin are spread far apart. The IC therefore requires no (zero) extra effort to separate the contacts during insertion or removal. When the lever is
Ie down, as shown, the two contacts are clamped against each Ie pin, and the is .
held fast with good electrical contact.

READ EPROM CONTENTS AND STORE IN MEMORY BUFFER

Figure 6: Flowchart of the subroutine to load the EPROM programmer's buffer memory from a previously programmed EPROM chip .

Photo 5: Closeup of the prototype EPROM-programmer interface. Other: thJln. the control panel and Z IF socket, the interface essentially consists of a 4 KJfiyte buffer memory and 3 programmable 110 ports. Users wishing merely to expand the original Z8-BASIC Microcomputer need add only these sections.
October 1981 © BYfE Publications Inc 45

ALL

NO

LOCATIONS

VERIFIED

?

Figure 8: Flowchart of the routine that verifies correct programming of the EPROM .
Figure 7: Flowchart of the routine to write data from the buffer into a new or erased 2716 EPROM chip.

6809 SYSTEMS

6809 SYSTEMS 0Zt 6809 SYSTEMS 0Zt 6809 SYSTEMS

Featuring the GIMIX mainframe with 30 amp C.V . ferro-resonant power supply; fifteen 50 pin and eight 30 pin slot Mother Board;

2 Mhz CPU with time of day clock & battery back-up . 1K RAM . 6840 programmable timer, provisions for 9511A or 9512 Arithmetic processors. and 4 PROM /ROM/ RAM sockets that can hold up to 32KB of monitor or user software. VARIETY: you can have 32KB, 56KB. 128KB and up of static RAM. You can use 5" and/or 8" disk drives, single or double

For lurther inlormalion . pricing and brochures. contact :
~ '-lmIXlnc.

density. single or double Sided, and single or double tracking with GIMIX disk controllers. You have a wide choice of serial or '

...

parallel liD cards .

'-'

The Compeny thaI doll.e,.

EXPANDABILlTY: You can add memory. I/ Os. Video or Graphics cards. Arithmetic processors . additional drive capacity. and other

Oualily Eleclronic producls since 1975.

hardware now or in the future to this SS50 bus structured system from GlMfX or other SS50 bus compatible manufacturers. 1337 WEST 37th PLACE, CHtCAGO, IL 60609

SOFlWARE VERSATfLlTY: GIMIX syslems can use TSC's FLEX or UNIFLEX and MICROWARE 'S OS-9 operaling systems . A wide (312) 927-5510 · TWX 910-221 -4055

variety ot software and languages is available for Ihese systems . QUALITY: All boards are assembled, burned-in . and tested and feature GOLD PLATED BUS CONNECTORS . Only top quality com- GIMIX ' and GHOSl' are regIStered trademarks

ponents are used and all boards are tully buffered tor maximum system expansion . All boards come complete with bus connectors

01 Gt Mtx l nc

and all necessary instruction and documentation.

Ftex and Umfiex are tradema rks ot Techmcal Systems

GlMIX designs. manufactures and tests . in-house. their complete line of products . Complete systems are available to fit your Consullants Inc. 059 IS a lrademark 01 Mlcroware tnc See

needs. Please contact the factory if you have any special requirements .

their ads lor other GIMIX compa ti ble soltwa re .

For GIMIX compatible software see Technical Systems Consultants ad page 21.

46 October 1981 © BYTE Publications Inc

Circle 158 on inquiry card.

Listing 1: Program routines to con tro l v arious func tions of th e in te lligen t EPROM programm er, w ritten for the BASIC/ Debug interp reter of th e Zilog Z86 71 single-chip microm puter found in the Z8-BA SIC Micro mputer.
100 REM INTELLIGENT EPROM PROGRAMMER 102 REM USING CIRCUIT CELLAR BASIC COMPUTER/CONTROLLER BOARD 103 REM CLEAR VARIABLES AND CHECK KEYPAD ENTRIES 105 @246=0 :@2=0 110 A=O :B=O :X=O :y=o 130 A=@65000 135 REM B7-TERM/LOCAL,B6-LOAD,B5-WRITE,B4-VERIFY 140 IF AND(A,%80)=0 THEN 5000 150 IF AND(A,%40)=0 THEN 1000 160 IF AND(A,%20)=0 THEN 2000 170 IF AND(A,%10)=0 THEN 3000 200 GOTO 130 1000 REM READ/LOAD BUFFER SUBROUTINE 1005 REM CLEAR VARIABLES AND SET 8255 FOR I/O READ 1010 X=O :Y=O :A=O :B=O 1020 @%9300=%90 1025 REM MEMORY BUFFER STARTS AT 8000 HEX 1030 @2=1 1040 GOSUB 1100 1050 @B=@ %9000 1060 GOSUB 1300 1070 GOTO 1040 1100 B=(32768+X+(Y*256)) 1110 @%9100=X :X=X+l :GOSUB 1200 1120 @%9200=Y 1130 RETURN 1200 IF X=256 THEN Y=Y+l :X=O 1210 RETURN 1300 IF B=34815 THEN @2=0 :GOTO 130 1310 RETURN 2000 REM WRITE CONTENTS OF MEMORY BUFFER INTO EPROM 2 010 X=O :Y=O :A=O :B=O 2015 REM SET PROGRAMMER TO WRITE MODE AN~ TURN ON EPROM POWER 2020 @2=3 2030 @%9300=%80 2040 GOSUB 1100 2045 REM SET DATA AND ADDRESS ON 8255 AND PULSE WRITE STROBE 2050 @%9000=@B 2060 @2=131 :@2=3 2070 GOSUB 1300 2080 GOTO 2040 3000 REM VERIFY CONTENTS OF EPROM TO MEMORY BUFFER 3020 X=O :Y=O :A=O :B=O 3025 REM SET PROGRAMMER TO READ MODE AND TURN ON EPROM POWER 3030 @%9300=%90 3040 @2=1 3050 GOSUB 1100 3055 REM COMPARE EPROM AND MEMORY -- IF WRONG, TURN ON ERROR LIGHT 3060 IF @%9000 <> @B THEN @2=128 :GOTO 130 3070 GOSUB 1300 3080 GOTO 3050 5000 REM ENTER TERMINAL EXERCISOR PROGRAM HERE 5010 GOTO 130
October 1981 © BYTE Publications Inc 47

RCA's remarkable new VP-3303
Interactive Data Terminal turns any home TV into a videotex display unit.

Now you can connect your family to membrane keyboard switches give you a

the whole informative and entertaining natural feel. With reverse video, you can

world of CompuServe, The Source, Dow emphasize certain letters, words or sen-

Jones News/Retrieval and other time- tences. A bui~-in tone generator .. . plus

sharing and data-base networks.

a white noise generator . . . let you create

All you need is our VP-3303, a everything from the sound of explosions

modem and a modem cable, a telephone to the sound of music.

and your home TV. You can get instant access to re-
gional newspapers and newsletters .. . weather reports and sports results .. . computer games and more. You can use the VP-3303 to make airline reservations . . . find restaurant recommendations in cities around the world. Plus stock market and corporate data. Or access your school or business computer. You can even send electronic mail and buy products.
What you have working for you is a versatile, feature-packed interactive data terminal which can be worth far more to you than its low price.

The RCA VP-3303 is complete with both RS232C and 20mA current loop interfaces. It has six baud rates, eight data , formats and ASCII encoding .. . versatility that allows you to c'onnect directly to a computer, as well as time-share.
The RCA VP-3303 is truly a fine videotex terminal. And don't forget, it's made by RCA . .. the first name in television . . . now the foremost name in videotex terminals.
See a demonstration of the new RCA VP-3303 at your local computer or electronics dealer, or order direct from RCA, toll free or by mail.

Its unique color-locking circuitry gives

Order now ... only $389.00 (Sug-

you sharp color graphics and rainbow gested user price.) For more infor-

free characters. You get 20- and 4<:1- mation call toll free. 800-233-0094. In

character formats in one of eight col- Pennsylvania, call 717-393-0446.

PRI ors and separate color backgrounds.
The spill-proof, easy-to-clean keyboard is highly suitable for

Visa or MasterCard holders may order by phone . Or send a check
including $3 deli\tery

hostile environments.

charge per unit plus your

And the light touch

local sales tax.

Text continued from page 45:
capability to an otherwise simple project.
Next Month: If you've wanted to use a
switching-type power supply in your projects but didn't know how to go about it, you will have an opportunity to find out as I explore this topic in November.·
References 1. Ciarcia, Steve. " Add Nonvolatile Memory
to Your Computer, " December 1979 BYTE, page 36. Reprinted in Ciarcia 's Cir· cuit Cellar, Volume II. Peterborough NH: BYTE Books, 1981 , page 129. 2. Ciarcia, Steve . "Build a Z8-Based Control Computer with BASIC, Part 1, " July 1981 BYTE, page 38 . 3. Ciarcia, Steve. "Build a Z8-Based Control Computer with BASIC, Part 2," August 1981 BYTE, page 50. 4. Ciarcia, Steve. " Program Your Next EROM in BASIC, " March 1978 BYTE, page 84. Reprinted in Ciarcia's Circuit Cellar , Volume I. Peterborough NH: BYTE Books, 1979, page 39. 5. Component Data Catalog . Santa Clara CA: Intel Corporation, 1980. 6. Condra, David L. " Interfacing the S-100 Bus With the Intel 8255, " October 1979 BYTE, page 124. 7. Gable, G H. "Zapper: A Computer-Driven EROM Programmer ," Decembe r 1978 BYTE, page 100. 8. Greene, Robert , George Perlegos , Ph illip Salsbury, and William Morgan . " The Biggest Erasable PROM Yet Puts 16,384 Bits on a Chip," Electronics , March 3, 1977, page 108. 9. Greene, Robert, and Frank Louie. " EPROM Doubles Bit Densi ty Withou t Adding a Pin ," Electronics , August ',6, 1979, page 126. 10. Lewin , Douglas. Theory and Design of Digital Computer Systems, second edition. New York: Halsted Press, a Division of John Wiley, 1980. 11 Smith, Roger L. " More Informatio n on PROMS, " May 1976 BYTE , page 28 .
Editor's Note: Steve often refers to previous Circuit Cellar articles as reference material fo r the articles he presents each month . These articles are available in reprint books from BYTE Books, 70 Main St, Peterborough NH 03458. Ciarcia's Circuit Cellar covers articles appearing in BYTE from September 1977 through November 1978. Ciarcia's Circuit Cellar, Volume II presents articles from December 1978 through June 1980.
To receive a complete list of Clarcla CirCUit Cellar kits available from the MicroMlnt, circle 100 o~ the InqUiry card .
...... Circle 322 on inqu iry card.


Adobe Acrobat 9.45 Paper Capture Plug-in Adobe Acrobat 9.4.5