S100 Computers

Home S-100 Boards History New Boards Software Boards For Sale
Forum Other Web Sites News Index    

Programming 28C64 and 28C256 EEPROMS

Often we desire a PROM of 1X8, 2KX8 or (more usually 4KX8) for a  CPU monitor for S-100 systems. In the past this role was filled by UV erasable EPROMS like 2732's (4KX8).  Today an electrical erasable "EEPROM" is much more convenient since one does not need the source of a strong UV light.  The only problem is EEPROMS do not come in 4K sizes. The closest available size is a 28C64  (8KX8).  There is no 28C32 EEPROM.

This is not really a problem if we are designing a new S-100 board. We simply use the "bottom" or "top" half or the EEPROMS total address space.  We simply use a jumper to keep the EEPROM A12 address line low for the bottom half or the EEPROM or jumpers it high for the upper half of the EEPROM.  Our Z80 CPU board for example utilized the latter arrangement

The only thing you have to be careful about is when you are programming the EEPROM. You need to be sure your 4K of code is at the right location. Different PROM programmers have different options to insure the .HEX or .BIN file end up in the PROM where you want it.

I use the Wellon VP-280 programmer for all my PROMS. Its very reliable and can program almost any PROM chip you care to mention.  Here is a picture of the programmer:-


Using a MK28C28A EEPROM or uP28C64 where my Z80 monitor code is at F000H-FFFFH. The VP-280 would be setup as follows:-

Load Buffer Address = 1000
From File address = F000H
This will put the code (4K) in the top “half” of the 8K EEPROM.

You can check it out using the "Edit" command. There should be no code from 0 - FFFH in the EEPROM. The monitor code should reside in the EEPROM starting at 1000H.   If  you change the Load buffer address to 0H the code will be in the lower half of the EEPROM. The A12 jumper would then be set to ground.

Likewise when you are programming a 28C256 (32KX8) EEPROM for an 8086 monitor where we typically need code from F8000H to FFFFFH for our monitor (the top half).    In this case we will just not use the lower parts of the EEPROM with the hardware on the CPU board  (i.e.. The EEPROM CS* is low only for F8000-FFFFFH).  However in this case remember we need the code low bytes in one EEPROM and high bytes in the other, both at 4000H-7FFFH within each EEPROM (the 8686 reads words not bytes).  Most PROM programmers provide this option of splitting a .HEX or .BIN file into High and Low bytes for programming.  The VP-280 does.

One common problem with PROM based monitors/CPU boards is people have their code in the wrong location within the actual PROM.  This is difficult to track down because you need a working board to debug the system. One trick is to fill your EPROM completely with a CPU HALT instruction (76H-Z80, F4-8086) and see after a reset if the CPU halts.  Then place code loops in various parts of your EPROM leaving HALTS elsewhere.