************************************************
      *                                              *
      *  PROMENADE C1 PROFESSIONAL EPROM PROGRAMMER  *
      *                                              *
      *        For the COMMODORE 64 and 128          *
      *                                              *
      *  With PROMOS 2.0 Operating System Software   *
      *                                              *
      ************************************************


        Notes: This document is a copy of the manual
        that came with a product once made by the
        Jason-Ranheim company of Auburn, California,
        USA. Ward Shrake spoke to the head of said
        company on January 23, 1999 via telephone.
        Ward asked for permission to put the manual
        into electronically-readable form, and to be
        allowed to make it freely available on the
        Internet. Ward was given permission to do
        these things. The Jason-Ranheim company no
        longer sells or supports Commodore products.
        As such, they saw no harm in allowing their
        copyrighted materials be used in this way by
        people who still have access to the PROMENADE.
        (Their main concern was that I release the 
        most recent software version; "PROMOS 2.0".)

        For the most part, this is a verbatim copy of
        the "PROMENADE C1 with PROMOS 2.0" user manual.
        The only significant changes (beyond simple
        reformatting of the text as appropriate) are
        noted here or in the body of the document. (For
        instance, the address of the Jason-Ranheim
        Company shown within is the one current as of
        23 January 1999, and Ward added "Appendix C"
        to duplicate pinouts found in the original.)
        I kept my commentary to an absolute minimum,
        and when I did comment, marked it [like this].

        Other than these minor alterations, Ward made
        every reasonable effort to closely reproduce
        the original manual in every way. Although he
        worked diligently to insure an accuracy copy
        was made, Ward disclaims any responsibility for
        anything that might happen as a result of the
        use of the information found in this document.
        (I transcribed this text for free simply as an
        act of kindness and to preserve some history,
        so PLEASE don't give me any hassle over it!?)

        Note that the Jason-Ranheim Company no longer
        supports this product in any way, other than
        to allow non-profit distribution of this text.
        Please do not pester them about this product
        or any other Commodore 8-bit product! (However,
        I bet they'd love to hear from folks who are
        interested in their current product line?)

                        -- Ward Shrake
                           February 4, 1999


  [End of commentary, start of original document's text.]


This manual and the PROMOS 2.0 software program are COPYRIGHT (C)
1988 by J. W. Ranheim. All rights are reserved. Neither this
manual nor the PROMOS 2.0 program may be copied, reproduced,
transferred, transmitted, disclosed or reduced to machine-
readable form including magnetic or other storage media, without
the prior written consent of the copyright owner, except that a
reasonable number of archival copies of the PROMOS 2.0 software
program may be made by the purchaser for his own exclusive
personal use.

PROMENADE, PROMENADE C1, PROMOS, and PROMOS 2.0 are trademarks of
Jason-Ranheim Company.


                      LIMITED WARRANTY

JASON-RANHEIM COMPANY warrants to the ORIGINAL PURCHASER of these
products that they are free from defects in materials and
workmanship for a period of ninety (90) days from the date of
purchase. These Jason-Ranheim Company products are sold 'AS IS'
without express or implied warranty of any kind, and Jason-
Ranheim Company is not liable for any losses or damages of any
kind resulting from the use of these products. Jason-Ranheim
Company agrees for a period of ninety (90) days to repair or
replace, at its option, free of charge, any Jason-Ranheim Company
product, postage paid, with proof of the date of purchase at its
Factory Service Center. This warranty is not applicable to normal
wear and tear. This warranty shall not be applicable and shall be
void if the defect in the Jason-Ranheim Company product has
arisen through abuse, unreasonable use, mistreatment or neglect.
This warranty is in lieu of all other express warranties and no
other representation or claims of any nature shall be binding on
or obligate Jason-Ranheim Company. Any implied warranties
applicable to these products including Warranties of
merchantability and fitness for a particular purpose are limited
to the ninety (90) day period described above. In no event will
Jason-Ranheim Company, its officers, employees, agents,
successors or assigns be liable for any special, incidental, or
consequential damage resulting from the possession, use or
malfunction of these Jason-Ranheim Company products.

                          JASON-RANHEIM COMPANY
                          3105 Gayle Lane
                          Auburn, Calif. 95602
                          (530) 878-0785
                          [Current info as of Jan 1999]



                TABLE OF CONTENTS

        INTRODUCTION
        GETTING STARTED
        HANDLING EPROM's
        HEXADECIMAL NOTATION
        EPROM'S
        ENTERING PROMOS 2.0 COMMANDS
        MULTIPLE COMMANDS
        ERRORS
        PROMOS 2.0 COMMANDS
                G COMMAND
                R COMMAND
        CHECKSUMS AND HASHTOTALS
        WHERE TO PUT THE DATA
                B COMMAND
        HON BIG A RANGE?
                M COMMAND
        CHANGING RAM DATA
                I COMMAND
                F COMMAND
                T COMMAND
                C COMMAND
                H COMMAND
                D COMMAND
                A COMMAND
                E COMMAND
                P COMMAND
        PROGRAMMING ERRORS
                V COMMAND
        COPYING EPROMS
                S COMMAND
                L COMMAND
                Q COMMAND
                Z COMMAND
        SPECIAL EPROM'S
        USING PROMOS COMMANDS IN A BASIC PROGRAM
        SIMPLE SAMPLE PROGRAM
        USING BASIC VARIABLES
        SETTING UP A RAM BUFFER
        ONE FURTHER POINT
        WHERE'S PROMOS?
        TROUBLESHOOTING

        APPENDIX A -- The Control Word
        APPENDIX B -- The Program Method Word
        APPENDIX C -- Pinout Diagrams for various EPROM chips
        APPENDIX D -- Table of Control and Program Method Words

INTRODUCTION

        The acronym EPROM stands for Eraseable, Programmable,
Read Only Memory. It refers to another of those electronic
marvels that came out of INTEL Corp. in the mid seventies. A
memory chip that the user can program to contain any sort of
digital information whatsoever. And even better, a chip that can
be erased by simple exposure to ultra-violet light and reused
many times. With these abilities, it is no wonder that EPROM's
are produced in such tremendous quantities. The dollar volume is
exceeded only by that of dynamic RAM's.
        With the tremendous proliferation of types and sizes,
programming an EPROM became a very complicated undertaking. Many
EPROM programming devices were designed to handle just a single
EPROM type; and those that could do more required setting a
multitude of switches or plugging in a 'personality module'. Some
even required a voltmeter to set up. Programming an EPROM could
easlIy take an entire afternoon. That unhappy situation suddenly
changed with the introduction of the PROMENADE C1.
        By combining some sophisticated hardware with the power
of an inexpensive personal computer, the PROMENADE makes the job
almost trivial. And with new programming techniques the PROMENADE
cuts the time required to duplicate an EPROM from many minutes to
just seconds. With all of its features and capabilities, the
PROMENADE has set the standard for EPROM programmers all around
the world. It has been widely imitated, even copied exactly; but
its most important attribute has never been duplicated -- VALUE.
        But even the best products can be improved, and with the
introduction of PROMOS 2.0 the PROMENADE is made even better.
Simple, yet powerful commands for the manipulation of data in the
computer and for moving that data to and from EPROM's, disk
drives and the like give performance and ease of use that have
never before been achieved. Even better, these commands can be
incorporated into BASIC programs that let the user customize his
system to any EPROM programming application.
        The user is strongly urged to read this manual carefully
and to thoroughly familiarize himself with the material. An hour
or two spent this way will be repaid many times over.

                                    JASON-RANHEIM COMPANY
                                    Auburn, California
                                    November, 1988



GETTING STARTED

        With the power OFF, plug your PROMENADE into the user
port at the left rear of your COMMODORE 64 or 128. Install the
PROMOS 2.0 diskette in your 1541, 1571 or 1581 disk drive. Turn
ON your computer. If you are in 128 mode, the software will load
automatically. If in 64 mode, type:

        LOAD "P*",8,1    (CR)

        The (CR) above means 'type a carriage return'.

        You will shortly see a brief sign-on message and
copyright notice. At this point, your system is ready.

HANDLING EPROMS

        EPROM's need to be handled with reasonable care if one is
to avoid irretrievable damage to them. They are very susceptible
to static electricity. This can be a problem in a cold, dry
climate in the wintertime. Always discharge yourself by touching
a grounded object before handling them. The aluminum case of the
PROMENADE itself is convenient for this purpose.
        To install an EPROM in the PROMENADE socket, RAISE the
operating lever, drop the EPROM into place and then close the
socket by moving the lever down to the case as far as it will go.
NOTE -- EPROM's having 24 pins (e.g. 2716, 2732) use the RIGHTMOST
24 socket positions. Twenty eight pin EPROM's occupy the entire
socket. MAKE SURE the orientation notch points to the LEFT as the
figure on the top of the cover indicates.
        NOW TO INSURE PROPER ELECTRICAL CONNECTION to all pins of
the EPROM, move the EPROM from side to side slightly by forcing
it with the thumbs. This may take quite a bit of force. Doing
this becomes habitual after a while. The objective here is to
have the contacts in the socket cut through any tarnish films
which might otherwise prevent proper operation.

HEXADECIMAL NOTATION

        If you are already familiar with HEX notation, skip this
section. If not, you will need to spend a little effort at this
point to aquaint yourself with a very useful idea.
        In the world of EPROM's and computers, information is
conveyed in little units known as 'BITS'. A bit can have one of
two values. The meaning we associate with these values can be
anything capable of expression as a 'binary' or two-valued entity.
For example, a statement can be either TRUE or FALSE. A light is
either ON or OFF. In your computer, a bit is represented by the
voltage on a wire: it is either HIGH (near 5 volts) or LOW (near
0 volts). The high value we associate with the symbol '1'. The
low value we associate with the symbol '0'. In order to represent
members of larger collections of objects -- letters of the alpha-
bet, for example, or large numbers, binary digits must be grouped
together.
        Four binary digits taken together can represent 16
different objects. (Two to the 4th power.) Eight binary digits
taken together form a unit called a 'BYTE' in computerese. A byte
can stand for any one of two to the 8th power (or 256) different
objects. Your computer deals In 'BYTE' sized information units.
Data flows from one part of your machine to another along eight
wires called the data bus -- in bytes.
        In order to specify exactly what information is being
accessed at a given instant, your computer sends out an 'ADDRESS'.
This address is a 16 bit binary quantity that flows along 16
wires called the address bus. Since there are 16 address lines,
two to the 16th power, or 65536 unique addresses can be specified
by your machine.
        Now, instead of using binary numbers directly like your
computer does, it is customary to consider binary digits in
groups of four. Each possible value of this group is denoted by a
symbol: the numbers from 0 to 9 plus the letters A through F.
These are called 'HEXADECIMAL' numbers.

Accordingly, we have the following:

        BINARY      HEXADECIMAL     DECIMAL
        -----------------------------------
         0000             0          0
         0001             1          1
         0010             2          2
         0011             3          3
         0100             4          4
         0101             5          5
         0110             6          6
         0111             7          7
         1000             8          8
         1001             9          9
         1010             A         10
         1011             B         11
         1100             C         12
         1101             D         13
         1110             E         14
         1111             F         15
        10000            10         16

And we can represent numbers of any size:

                 11110000        F0       240
                 11111111        FF       255
                100000000       100       256
            1111111111111      1FFF      8191
        11101000101011010     1DI5A    119130

        And so on. It is common to see a '$' sign affixed to a
hexadecimal number so that the reader will not take it to be an
ordinary decimal quantity. Or sometimes a following 'h' does the
same thing. So $1234 or 2345h are to be considered hexadecimal
numbers. In this manual, all numbers are in 'HEX' unless
specifically stated otherwise.

EPROM's

        Now, consider for a moment the diagrams in Appendix C.
They show the "pinout" of several commonly used EPROM's. In use,
the pins marked D0 through D7 are connected to the data bus. The
EPROM, when enabled to do so, outputs data on these pins. Since
there are eight output pins, the EPROM can output an entire byte
at a time. An EPROM is a 'byte-wide' device.
        The pins marked A0 through A15 are address pins. The
computer imposes a binary address on these pins to specify which
location in the EPROM the data is to come from. The lowest
address is, of course, $0000 -- all address lines low. The highest
EPROM address depends on how many address pins there are. The
capacity of an EPROM is usually specified as a certain number of
'KILOBYTES'. A kilobyte is two to the 10th power or $400 bytes.
(1024 decimal). A "1k" EPROM like the 2758 must therefore have 10
address pins. The following table gives the maximum EPROM address
for several common types.

       TYPE    CAPACITY    HIGHEST ADDRESS
       -----------------------------------
         2758        1k         3FF
         2716        2k         7FF
         2732        4k         FFF
         2764        8k        1FFF
        27128       16k        3FFF
        27256       32k        7FFF
        27512       64k        FFFF

        When the PROMENADE programs an EPROM, the desired EPROM
address is applied to the address pins, the data to be programmed
into the EPROM at that address is applied to the data pins, and
various signals and voltages are applied to other pins as
required.

        The user has to be concerned with only one of these other
voltages. This is a relatively high value called the PROGRAMMING
VOLTAGE. There are three standard programming voltages in general
use: 12.5v., 21v, and 25 volts. As we shall see a little later,
the user must specify this voltage for the particular EPROM he is
dealing with.

ENTERING PROMOS 2.0 COMMANDS

        All of the various tasks you will want to accomplish
using the PROMENADE will be done by means of one or more PROMOS
2.0 commands. These commands consist of a key letter followed by
up to nine hexadecimal numbers called parameters. To execute a
PROMOS 2.0 command, simply type it on the screen. Edit it as
required and then type a carriage return.
        Multiple parameters in your command may be separated by
one or more spaces or by (at most) one comma. You do not need to
supply a '$' sign nor are you required to supply leading zero's.
The following examples of the PROMOS 'M' command will serve to
illustrate. This command is used to display the contents of
computer memory on the screens and it will be described in detail
later.

          M0000 03FF
          M0000,03FF
          M0 3FF
          M0,3FF
          M     0        3FF
          M 00    , 03FF

        All of these forms are equivalent. PROMOS does not
perversely require that you type in an exact form as long as your
meaning is unambiguous.

MULTIPLE COMMANDS

        You may enter two or more PROMOS commands separated by
colons on the same command line. The commands will be executed
sequentially in the order you typed them. For example:

          M 2000, 2040 : I 2000, 2040

results in a hex display of computer ram data from 2000 through
2040, followed by an ASCII display of the same data.

MIXING BASIC AND PROMOS COMMANDS

        You may mix PROMOS and BASIC commands together on the
same command line. They will executed in the order in which you
typed them. For example:

        Print'ZERO PAGE RAM' : M 0, FF : Print"END OF ZERO PAGE'

        REMEMBER: ALL PROMOS 2.0 COMMAND PARAMETERS ARE ENTERED
AS HEXADECIMAL NUMBERS.

ERRORS

        If you make a mistake typing in a PROMOS command, chances
are you'll be advised by the SYNTAX error message. If you fail to
supply all the parameters required by a command, an UNDEFINED
FUNCTION error will result. If you input incorrect hexadecimal
numbers, an ILLEGAL QUANTITY error will be reported. Some PROMOS
commands report other errors as may be necessary.

PROMOS 2.0 COMMANDS

THE G COMMAND -- Print command Glossary.

        This isn't really a command at all. Type a G and a
carriage return and a list of the PROMOS commands and an example
of each is printed on the screen. If you commit only one command
to memory, make it this one.

THE R COMMAND -- Read EPROM data into computer memory.

        By reading an EPROM, we mean transferring some or all of
the information it contains into the computer's memory. The key
letter can either be R or the English monetary symbol.
Example:

        R 2000, 3FFF, 0, 6

        The meaning of this command is: Fill computer ram from
2000 to 3FFF with data from this EPROM, beginning at EPROM
address 0000. The '6' is a parameter called the CONTROL WORD. It
is a number that tells the PROMENADE everything it needs to know
about the particular EPROM you are dealing with. In the example,
6 is appropriate for the 2764A. A list of control words appears
inside the back cover of this manual. A detailed discussion of
control words and what they mean is presented in APPENDIX A.
        Another example:

        R 5000 BFFF 1000 E6

        In this example, we are telling the PROMENADE to read a 
27256 into computer ram from 5000 through BFFF, beginning at 
EPROM address 1000. E6 is the control word for a 27256 
programming at 12.5 volts. [Editor's note: in the original
manual, the english monetary symbol was used instead of "R".
The READ and PROGRAM commands have alternate commands that are
entirely optional. To reduce potential confusion, I am only
showing the main form of these two commands in this document.]

CHECKSUMS and HASHTOTALS

        When you execute the READ command as in the examples
above, you will notice that a 'CHECKSUM' and a 'HASHTOTAL' is
printed on the screen as soon as the operation is completed. The
CHECKSUM is the low-order byte of the arithmetic sum of all the
data bytes read from the EPROM. The HASHTOTAL is the result of
exclusive-or'ing all bytes read with each other. These numbers
can serve as a quick means of identification of an EPROM# or as a
means of checking the validity of the data itself.

WHERE TO PUT THE DATA

        Notice that the READ command gives you complete freedom:
you can read as many bytes from the EPROM as you want, starting
anywhere on the chip, and in principle you can put them anywhere
in computer memory. As a practical matter, certain areas of
computer ram are off-limits because your computer must use them
for its own purposes. If your read command overwrites these areas,
the computer will crash.
        Consider first the COMMODORE 64 or the 128 in 64 MODE: If
you are not running a BASIC program, then you are free to use
computer ram from 0800 through DFFF. A BASIC program ordinarily
resides in ram starting at 0801. In a later section we discuss
the matter of using PROMOS commands in a BASIC application
program.
        In the case of the COMMODORE 128 in 128 MODE, we need to
consider a special PROMOS command which pertains only to the 128,
the bank select command.

The B COMMAND -- Select PROMOS ram bank. (128 mode command.)

        This command selects the computer ram bank, O olL 1,
which will be used for subsequent PROMOS operations. Example:

        B1

        Execution of this command causes PROMOS to use bank 1 ram,
PROVIDED the ram involved lies in the range 2000 through DFFF.
Outside this range, bank 0 ram will be used.
        Using this command does not in any way affect the BASIC
7.0 'BANK' command. PROMOS bank 1 will remain in use until you
switch back to PROMOS bank 0. To do this, execute either

        B0 or just B

Example:

        B1 : R 2000, 5FFF, 0 , 6 : B0

Here, we combine the bank select commands and the read command.
First we switch to bank 1 ram; then we read a 27128A into the
range 2000 through 5FFF in bank 1; then we switch back to bank 0
ram.
        In 128 mode, BASIC starts at 1C01 in bank 0. If no BASIC
program is being used, useable ram in bank 0 starts at 1300.

HOW BIG A RANGE?

        The question arises: How large must the memory range in
the read command be to insure that each and every byte on the
EPROM is included? Earlier, we presented a table showing the
largest EPROM address for EPROM's of various capacities. If we
start at address 0 on the EPROM and read each address to and
including the highest address, then we know we have read them all.
A little reflection will show that all one has to do is add this
highest EPROM address to the chosen computer ram start address to
obtain the necessary computer ram end address. Some examples:

        We want to read all of a 2732 (4k) EPROM into ram
starting at C000. Since the EPROM address runs from 0 to FFF, the
required read command is:

        R C000, CFFF, 0, E0

        A 27256 (32k) is to be read into ram starting at 4000:

        R 4000, BFFF, 0, E6     

        does the job. (4000 + 7FFF = BFFF)
        
        A 27128 (16k) is to be read into ram starting at 3840:

        R 3840, 783F, 0, 5          is what is needed.

THE M COMMAND -- Display computer memory.

        This is the command to use to view and alter computer ram
data. To illustrate its use we execute the following:

        M A000

And there appears:

        >A000 3E 41 00 A9 20 FE 84 D0

        Execution of this M command causes the computer to
display the specified address followed by eight hexadecimal byte
values -- the data from locations A000 through A007. To display a
memory range, from 2000 through DFFF, say, type:

        M 2000, DFFF

        The screen fills and then scrolls rapidly as the data is
printed. To stop the display at any point, press the RUN/STOP key.
To begin the display again at the point where you stopped, type M
alone and a carriage return.
        Notice the 'M' command displays RAM data, not ROM or IO
devices which may overlay a particular address.

CHANGING RAM DATA

        Suppose you want to change the data in memory somewhere.
Just use the M command to display that area, move the cursor into
the display to the desired location, type in the new hex value(s)
and press RETURN on each altered line. RAM data is changed
accordingly. You can also change the address field. In this way
you can quickly copy data from one area of ram to another.

THE I COMMAND -- Display ASCII data.

        This command works the same way as the M command except
that the display shows printable ASCII characters rather than hex
data. Thirty two characters appear on each line.

        For example:

        I 6000, 7FFF

Displays ASCII characters in the range 6000 through 7FFF. You
canNOT alter an ASCII string by over-typing and pressing RETURN.

THE F COMMAND -- Fill computer ram.

        This command fills a specified range of memory with a
specified data byte. For example:

        F 2000, DFFF, FF

        This command fills memory from 2000 through DFFF with FF
characters.

THE T COMMAND -- Transfer ram data.

        This command copies data in a specified range from one
area of computer ram to another. By way of example:

        T 2000, 2FFF, C000

        This command transfers data from ram in the range 2000
through 2FFF to C000 through CFFF. Another example:

        T 4000, 40FF, 4001

        This command moves data from 4000 through 40FF up one
address location.

THE C COMMAND -- Compare computer ram data.

        This command causes the computer to compare the data in
one range of memory locations with that of another. The address
of all locations where the data differs is printed out. For
example:

        C 100, 1FF, 4000

        This command compares ram data in the range 0100 through
01FF to data in the range 4000 through 40FF. The addresses of all
discrepant locations appear on the screen.

THE H COMMAND -- Hunt for byte data.

        This command causes the computer to hunt for occurrences
of a group of specified data bytes. The address of each
occurrence is printed on the screen. The sought for group may be
up to seven bytes long. For example:

        H 2000, BFFF, 20, D2, FF

        This command examines ram from 2000 through BFFF for the
byte sequence 20,D2,FF: 6502 code for JSR FFD2. Another example:

        H 1000, 7FFF, 52, 41, 4E, 47, 45, 49, 4D

        This command hunts for a group of seven ASCII characters.
        [In case you wondered, the seven bytes spell "RANGEIM".]

THE D COMMAND -- Scan EPROM data.

        The D command reads data from an EPROM and prints it on
the screen as hex data Just as the M command does. Computer ram 
is not affected. Example:

        D 0, 1FFF, 5

        This command produces a screen display of all the data on
a 2764. The first two parameters are the starting and ending
EPROM ADDRESSES of the range to be displayed. The third parameter
is the CONTROL WORD for the particular EPROM. Another example:

        D 6000, 7FFF, E6

        This command scans the top 8k of a 27256.

THE A COMMAND -- ASCII scan of EPROM data.

        The A command works just like the D command except that
the display is of printable ASCII characters. For example:

        A 0, 7FF, 28

        In this example, we do an ASCII scan on all bytes of a
2716.

THE E COMMAND -- Check EPROM for erased condition.

        The data at all erased locations on an EPROM is FF; that
is, all data bits are one's. To check for this condition, use the
E command. An example:

        E 0, 3FFF, 6

        This command checks for FF at all locations on a 27128A.
The EPROM addresses of all un-erased locations are printed on the
screen. Their total number is also printed. The first and last
addresses on the 27128A are 0 and 3FFF. The control word is 6.
Another example:

        E 800, FFF, E0

        This command checks for the erased condition of the top
half of a 2732.

THE P COMMAND -- Program EPROM from computer memory.

        The key letter for this command can be either P or (the 
math symbol for Pi). The command works the same either way.
        There are five parameters needed for this command: the
STARTING and ENDING computer MEMORY ADDRESSES defining where the
information is to come from, the STARTING ADDRESS on the EPROM
specifying where we want the data to go, the CONTROL WORD; and
the last parameter is the PROGRAM METHOD WORD (PMW for short).
The PMW is discussed at length in Appendix B. It tells PROMOS how
you want the programming to be done. Some examples:

        P 2000, 3FFF, 0, 6, 7

        This command fills a 2764A completely with data from
computer ram in the range 2000 through 3FFF. The EPROM is
programmed from beginning to end. The CONTROL WORD is 6; and we
have used Intelligent programming method #1 as defined by the PMW
of 7.
        Notice that the P command gives you complete freedom. You
can take information from anywhere in computer ram and put it
anywhere on the EPROM. Suppose you wanted to program just one
byte on an EPROM:

        P 213A, 213A, 3456, 5, A

        In this case, the starting and ending ram addresses are
the same, 213A. The EPROM address is 3456. The control word, 5 is
for the 27128 and we have chosen A for the PMW. This command
takes a single byte of data at 213A and programs it into EPROM
location 3456 in the 27128.
        The considerations of RANGE size are exactly the same as
with the R command. To be sure you are programming ALL of an
EPROM, add the maximum EPROM address to the computer ram starting
address to obtain the computer ram ending address. Some more
examples:

        Suppose you wanted to take the data from two 2764's and
put it on a single 27128A. Here's one way to do it. First let's
choose to use computer ram from 2000 through 5FFF to contain the
data. Read the first 2764:

        R 2000, 3FFF, 0, 5

Now read the second:

        R 4000, 5FFF, 0, 5

Now program the 27128A:

        P 2000, 5FFF, 0, 6, 6

That's all there is to it.

        Suppose you wanted to read a COMMODORE kernal ROM, make
some changes, then put the altered data on a 2764A. Here's how to
do it: The kernal ROM in the C64 is compatible with the 68764
(8k) EPROM. The control word is 30. Read it in:

        R 8000, 9FFF, 0, 30

        Use the M command to change the data in ram as you wish
it to be. [Editor's note: here are some interesting locations in
the Commodore 64's Kernal ROM, for you to experiment with... if
you used the commands shown here, the byte that controls the
border color will be found at $8CD9. The byte that controls the
background color will be found at $8CDA. The byte at $8535 sets
the default color of the onscreen characters. To see the start-up
message's text, see the range of addresses from $8440 to $84BF.
Note that the default device number is also a one-byte change;
if you change $81DA from a $01 to a $08 it will default to disk
instead of to tape, which will be more convenient for most of
the C64's users. The VIC-20 can also be modified in all these 
ways. You will have to adjust the memory addresses accordingly.]

[Other modifications could include a change to the auto-start 
code sequence. Changing this code will allow a custom C64 or
VIC-20 Kernal ROM to bank in an inserted cartridge without 
starting it. The VIC-20's auto-start sequence code is "A0CBM" 
while the auto-start code for the C64 is "CBM80". Use the HUNT 
command to find either code sequence. Even a one-byte change 
to these codes will stop ROM cartridges from auto-starting.]

Now program the revised data into the 2764A:

        P 8000, 9FFF, 0, 6, 7

[Also not mentioned in the original text, is the unfortunate fact
that the 2764A you just programmed, will not physically fit into
the Commodore 64 you just removed the Kernal ROM from! You can
program the information, sure, but problems quickly develop. This 
is because the original ROM has only 24 pins, while a 2764 EPROM
has 28 pins per chip. If you have advanced electronics knowledge
and skills, you may want to build an adapter, to plug the 28 pin
chip into the 24 pin socket. A much easier method would be to
simply use Motorola's MCM 68764 chip, which is fully compatible
with the ROMs used in the VIC-20, C64, C128 and probably others.
See Appendix C for pinout diagrams on these and other chips.]

PROGRAMMING ERRORS

        While programming an EPROM, PROMOS checks to see that the
job is being done correctly. If an error is detected, programming
Is stopped and you are advised what happened by messages on the
screen. For suggestions on determining the source of the trouble,
see the section on troubleshooting.

THE V COMMAND -- Verify EPROM data.

        The V command compares the data on an EPROM with data In
computer memory. It has two forms: the long form, with parameters
exactly the same as in the R command; and the short form which is
just V alone with no parameters at all. The short form uses the
parameters from the most recent R or P command. The EPROM
addresses of all discrepant locations, the checksum and the
hashtotal are printed on the screen. Some examples:

        V 2000, 3FFF, 0, 6

        Here, we compare data from 2000 through 3FFF with the
data on a 2764A.

        P 4000, BFFF, 0, E6, 6 : V

        Here, we have programmed a 27256 with data from 4000
through BFFF and have followed with the short form of the V
command.

COPYING EPROMS

        The PROMENADE is a very efficient piece of production
equipment. One can quite easily program 250 2764's in an hour.
The usual procedure is to read an EPROM MASTER into ram using the
R command, then program the duplicates using the P command. It
isn't necessary to type a new P command for each copy. Just move
the cursor up to the P command line and press RETURN.
        Here's a simple example of a command that programs
2764A's, verifies the data, keeps track of the number of copies
that have been made and prints it on the screen:

        R 2000, 3FFF, 0, 6 : N = 0

This reads the master and initializes the count. Now:

        P 2000, 3FFF, 0, 6 , 6 : V : 
        N = N + 1 : PRINT : PRINT "TOTAL COPIES:" N

THE S COMMAND -- Save computer' ram.

        This situation continually arises: You've read a ROM or
an EPROM. Now you want to save the data on disk so that you can
make a copy later. The S command is what you need. It causes a
defined section of ram to be saved to disk as a PGM file. All
example:

        S "EPROM DATA", 8, 4000, BFFF

        This command takes data from 4000 through BFFF and stores
it on disk as the program file called EPROM DATA. Experienced
users will recognize this as the same S command their monitor
programs have provided them for years. But NOTE one important
difference. Monitor S commands require that you specify a range
one byte longer than what you really want to save. This is the
case with the C128's built-in monitor. With the PROMOS S command,
you specify the range exactly.
        There is one important restriction on the use of the S
command in 64 mode: You cannot save from the address range D000
through DFFF. This restriction does not apply in 128 mode.
        One further note for 128 user's: If you want to save from
bank 1, just use a prior B command to set bank 1 ram first.

Another example:

        R 2000, 2FFF, 0, 18 : S "2532 DATA", 9, 2000, 2FFF

Here, we read a 2532 and save the data to disk on drive 9 as a
PGM file called "2532 DATA".

THE L COMMAND -- Load program from disk.

        Now, you have the data on disk. How do you get that data
back into the computer so an EPROM can be burned from it? The
answer is the L command. An example:

        L "2532 DATA", 9

        This command loads the program file "2532 DATA" back into
the same locations in memory from where it was saved, namely 2000
through 2FFF, from device 9. On completicn of the load, PROMOS 
reports the load start address and the load end address so you 
know where in ram the data Is. Oftentimes, it's a good idea to 
jot these addresses down. As with the S command, you cannot load 
into the range D000 through DFFF from 64 mode. In 128 mode, if 
you want to load the file into bank one ram, first set bank 1 
with the B command.
        There is one other important feature of the L command:
you can specify your own load-start address. This is mandatory if
you want to load a PGM file whose load-start address is unknown
or if you want to load it someplace else. To specify your own
load-start address, just add it to your L command:

        L "2532 DATA", 9, 6000

        The load-start address of this file we know to be 2000.
But we have forced the data to be loaded at 6000 by means of this
command.
        This feature makes it very easy to merge separate PGM
files into one.

THE Q COMMAND -- Quit PROMOS.

        Should you wish to disengage PROMOS, use the Q command.
Just execute:

        Q

and PROMOS is gone. You can re-enable PROMOS by executing the
following SYS:

        SYS 320

        COMMODORE 128 user's can switch to 64 mode using the GO64
command, then re-enable PROMOS using SY5320 from 64 mode. After a
RESET, you can use SYS320 to re-enable PROMOS in 128 mode without
having to to reload the program.

THE Z COMMAND -- Zero the PROMENADE programming socket.

        This command sets the voltage at all pins of the C1
socket to (nearly) 0 volts so EPROM's can be safely installed and
removed. This is done automatically for the most part. C128 users
will notice that after a 128 mode LOAD or SAVE, the red light is
left on, indicating an energized condition. Here is where the Z
command comes in. Execute this coBmand to reset the C1 socket.

SPECIAL EPROM'S

        There are EPROM's the PROMENADE can read and program but
which require special methods. Among these are the 27512, the
27513 and the 27011. We now consider each of these in turn.
        The 27512 is the standard 64k byte EPROM. It has 16
address pins as can be seen in Appendix C. The 16th address bit 
is applied to pin 1. The PROMENADE cannot use pin 1 as an 
ordinary address pin. Rather, it is normally pulled high by a 
pull-up resistor. Some other means must be used to bring this 
pin low for reading and programming the lower 32k of the 27512.
        A crude, but simple and effective way to do this is to
take a short length of 22 gauge stranded hook-up wire and ground
one end by securing it under one of the PROMENADE cover mounting
screws. To access the low 32k addresses on the 27512, insert the
free end of your grounding wire into the programming socket along
with pin 1 of the 27512. (Pin 1 is the one closest to the
operating lever.) To read or program the upper 32k, simply remove
the grounding wire.
        Jason-Ranheim Company can install a switch to handle this
more conveniently for a nominal charge. Contact our sales
department. [Note that this service is no longer available.]
        The 27513 and the 27011 are 'page-addressed' EPROM's.
They have an internal bank switching register which selects one
16k 'page' of the EPROM at a time. The 27513 looks to the outside
world like four 27128A EPROM's; the 27011 looks like eight.
        To read or program the 27513, use the control word 4XE2
where you substitute for X the number from 0 to 3 of the page you
wish to read or program. For example:

        R 2000, 5FFF, 0, 40E2

will read the lowest 16k page of the 27513 into ram.

Another example:

        P 4000, 7FFF, 0, 43E2, 6

will program page 3 of the 27513.
        The 27011 works the same way. Use the control word 4X06,
where X is the number from 0 to 7 of the page you wish to read or
program. For example:

        P 8000, BFFF, 0, 4506, 6

        This command programs page 5 of a 27011 with data from
computer ram from 8000 through BFFF. Again:

        R A000, DFFF, 0, 4706

reads page 7 into the specified range.

USING PROMOS COMMANDS IN A BASIC PROGRAN

        PROMOS commands can be used in a BASIC program just like
any regular BASIC command. Of course, PROMOS must be loaded first
and active or your BASIC program will not run.
        Some of the commands work a little differently from a
running program as compared with direct mode:
        First, control messages such as 'SEARCHING FOR',
'PROGRAMMING', etc. are not printed unless you enable them by
setting bit 7 at address 9D high. See the PROGRAMMERS REFERENCE
GUIDE for details.
        Those commands which from direct mode report results on
the screen, such as R, P, L, S, V, C, H and E, do not do so when
executed from a running program. Rather, certain results are made
available in low ram locations as detailed below. Your BASIC
program can 'PEEK' these locations to make use of this
information.
        In general, address A5 (165 decimal) reports errors. If
an error is detected, A5 will contain FF, otherwise it will be 0.
A6 and A7 will report an address in low-high order, with the
significance described below. A8 and A9 report the appropriate
checksum and hashtotal respectively of the data in the address
range involved in the command.


        L command
                A5 -- 00 = Load ok. FF = load failed.
                A6,A7 -- Address of highest byte loaded.
                A8 -- Checksum for data loaded.
                A9 -- Nashtotal for data loaded.

        S command
                AS -- 00 = Save ok. FF = Save failed.
                A6,A7 -- Address of highest byte saved.
                A8 -- Checksum for data saved.
                A9 -- Hashtotal for data saved.

        R (or english monetary symbol)
                A6,A7 -- Address of highest EPROM byte read.
                A8 -- Checksum for data read.
                A9 -- Hashtotal for data read.

        P (or Pi mathematical symbol)
                A5 -- 00 = PGMing ok. FF = PGMing failed.
                A6,A7 -- EPROM address at failure.
                A8 -- Checksum for data programmed.
                A9 -- Hashtotal for data programmed.

        V command
                A5 -- 00 = verify ok. FF = verify failed.
                A6,A7 -- EPROM address at failure.

        C command
                A5 -- 00 = COMP ok. FF = COMP failed.
                A6,A7 -- Ram address at lowest failure.
                A8 -- Checksum of compared data.
                A9 -- Hashtotal of compared data.

        H command
                A5 -- 00 = No occurrence. FF = Bytes found.
                A6,A7 -- Ram address of first occurrence.

        E command
                A5 -- 00 = EPROM erased. FF = Not erased.
                A6,A7 -- EPROM address of lowest unerased byte.

        Note that the C command generates a checksum and a
hashtotal. You can use a 'dummy' C command to generate these
quantities for any range of ram data. For example:

        C 2000, DFFF, 2000

compares ram from 2000 through DFFF with itself. In the process,
the checksum and hashtotal over that range are generated and
reported.

SIMPLE SAMPLE PROGRAM

        10 PRINT "INSTALL 27256 IN PROMENADE SOCKET."
        20 PRINT : PRINT "TYPE A CARRIAGE RETURN WHEN READY."
        30 GET A$ : IF A$ <> CHR$(13) THEN 30
        40 R 4000, BFFF, 0, E6
        50 S "27256 DATA", 8, 4000, BFFF
        60 REM ETC.

USING BASIC VARIABLES

        PROMOS commands would be of little utility in a BASIC
program if they could not make use of variable data. The PROMOS L
and S commands accept a string variable for the file name. Any
numeric parameters that you want to express as a variable --
addresses, control words, device numbers, etc. MUST USE the
INTEGER variable form. These are numeric variables with a "%" sign
suffix. Regular floating point variables will not work. REMEMBER,
numeric BASIC variables are always DECIMAL quantties. Here's a
simple example of the use of variable quantities in a program:

        10 NM$ = "MY FILE" : REM FILE NAME
        14 DN% = 8 : REM DEVICE NUMBER
        16 LS% = 8192 : REM LOAD START ADDRESS
        20 L NM$, DN%, LS% : REM LOAD 'MY FILE' STARTING 
           AT $2000 FROM DEVICE 8.
        30 ES% = 0 : CW% = 5 : PM% = 7 : REM DEFINE 
           PARAMETERS FOR PROGRAMMING.
        35 LE% = PEEK(166) + 256 * PEEK(167) : REM CALCULATE 
           LOAD END ADDRESS.
        40 P LS%, LE%, ES%, CW%, PM% : REM PROGRAM 2764 EPROM.
        50 IF PEEK(165) = 255 THEN 4000 : REM GO TO SECTION
           WHICH HANDLES REPORTING PROGRAMMING ERRORS.
        60 PRINT "PROGRAMMING OK."
        70 V : REM VERIFY ONCE AGAIN.
        80 IF PEEK(165) = 255 THEN 4020 : REM GO TO SECTION
           WHICH HANDLES REPORTING VERIFY ERRORS.
        90 PRINT "VERIFY OK."
        95 REM ETC, ETC ....


SETTING UP A RAM BUFFER

        Let's say you're using a 64 mode BASIC application
program and you want to set aside a large ram buffer for moving
data to and from EPROM's and disk that you're sure BASIC will not
intrude upon. Here's a suggestion. Early in your program, execute
the following BASIC statement:

        10 POKE 55, 0 : POKE 56, 64 : CLR

This confines your BASIC program to the 14k from 0801 through
3FFF. Now, you have 32k from 4000 through BFFF for your ram
buffer; and 8k from C000 through DFFF to use as a utility area
for ML programs, etc.

ONE FURTHER IMPORTANT POINT

        A decimal address of 32768 must become a negative number
when expressed as a numeric variable. This number will decrease
to -1 at 65535. This is of concern only for addresses above 7FFF.
Examination of the following table will give you an idea of how
to handle this.

        DESIRED    DECIMAL VALUE     NUMERIC
        HEX        VALUE             VARIABLE
        ADDRESS    EQUIVALENT        EQUILAVENT
        ---------------------------------------
        1000         4096              4096
        2000         8192              8192
        4000        16384             16384
        7FFF        32767             32767
        8000        32768            -32768
        8FFF        36863            -32673
        9000        36864            -32672
        9FFF        40959            -24577
        A000        40960            -24576
        AFFF        45055            -20481
        B000        45056            -20480
        BFFF        49151            -16385
        C000        49152            -16384
        CFFF        53247            -12289
        D000        57248            -12288
        DFFF        57343             -8193

        Here's a BASIC statement that converts a DECIMAL address
(DA) fron 0 to 65535 into the nesessary NUMERIC VARIABLE
equivalent (NV%):

        100 NV% = DA + 65536 * (DA > 32767)

WHERE'S PROMOS?

        As you use the M command to browse through memory, you
come across nothing resembling a sizeable machine language
program. So where's PROMOS? It's tucked away in ram under the
kernal at E000. Operating from there, it leaves everything else
available to you. There are a few bytes of code well down on the
stack which take care of switching things in and out. In 64 mode,
PROMOS hooks in through IGONE. In 128 mode, ICRNCH is taken over
as well.

TROUBLESHOOTING

        The frustrations that can arise programming balky EPROM's
can often be avoided by making sure of a few things:

        Make sure your EPROM is erased. Use the D, A or E
commands for a quick check.

      Make sure your EPROM is seated properly in the socket and
is making contact at all pins.

   Make sure your programming command is correct. Especially
check the CONTROL WORD. If you use an incorrect one you can
destroy your EPROM.

        Make sure your PROMENADE is making good contact with the
user port connector. The board-edge surfaces may need cleaning.
An easy way to do this is to go over them lightly with a pencil
eraser.

        Make sure your power supply is in good shape. Commodore
64 power supplies have a tendency to get tired after a while.

        You may wish to try a modified programming method that
turns off Vpp during read-back as discussed in Appendix B.



APPENDIX A -- THE CONTROL WORD

      The control word determines the way the PROMENADE works in
dealing with a particular EPROM. The PROMOS 2.0 CW is actually a
16 bit quantity. The low byte is particularly important. The low
eight bits control things as follows:

        BITS 1, 0
                00 -- Set Vpp to 25 volts.
                01 -- Set Vpp to 21 volts.
                10 -- Set Vpp to 12.5 volts.
                11 -- Set Vpp to 5 volts.

        BITS 3, 2
                00 -- Apply Vpp to pin 22.
                01 -- Apply Vpp to pin 1.
                10 -- Apply Vpp to pin 23.
                11 -- Set pin 1 low when Vpp is on.

        BITS 5, 4
                00 -- PGM pulse at pin 27.
                01 -- PGM pulse at pin 22.
                10 -- PGM pulse at pin 20.
                11 -- No PGM pulse required.

        BIT 6
                0 -- No action at pin 20 on read.
                1 -- Invert pin 20 level on read.

                [Editor's note: the original manual does not
                mention this, but pin 20 is frequently the
                "chip enable". Most memory chips want to see
                a low state, to enable the chip; they are
                "active low". However, the memory used for
                video game cartridges for the Atari 2600 VCS
                system uses an "active high" system. Having
                this feature saves you from having to build
                a custom circuit to read these memory chips,
                or at least the smaller, earlier ones. While
                they all want to see this line inverted from
                "normal" electrically speaking, you will end
                up having other problems when the memory size
                goes over the 2k or 4k of the earliest games.
                Just one example of what this is useful for.]

        BIT 7
                0 -- Set standby level on pin 20 low.
                1 -- Set standby level on pin 20 high.

The upper byte works as follows:

        BITS 5, 4, 3, 2, 1, 0
                Select particular page of page mode 
                EPROM. Up to sixty four 16k pages.

        BIT 6
                0 -- Page mode indicator off.
                1 -- Page mode indicator on.

        BIT 7   
                Not used.



APPENDIX B -- THE PROGRAM METHOD WORD

        The program method word tells PROMOS how you want the
programming done. You have some latitude. If you check the TABLE
of RECOMMENDED CONTROL and PROGRAM METHOD WORDS inside the back
cover, you'll see a 'standard method' and three "intelligent'
methods. We examine these in greater detail here.

STANDARD PROGRAMMING

        In standard programming, the programming pulse applied to
the EPROM is of constant duration, usually about 50 mi]liseconds.
This is always a time-consuming method. A 2764 takes about 7
minutes to program this way. For PMW's from 0 to 3, PROMOS uses
Pulse durations as follows:

                  PMW        PULSE DURATION
                  -------------------------
                  0           6 ms.
                  1          12 ms.
                  2          24 ms.
                  3          48 ms.

INTELLIGENT METHODS FOR PROGRAMMING

        Intelligent methods for programming EPROM's have been
developed which can greatly reduce the time required. These
methods in effect 'test' the EPROM as the process goes on. It
works like this: the address and data are set up and a short
duration pulse is applied. The EPROM is then read back and the
data is compared. If the data doesn't 'verify', then another
pulse is applied and so on. Programming time is accumulated. At
some point the data 'sticks' and a positive verification is
obtained.
        At this point, another longer 'margin' pulse is applied
which is proportional in duration to the sum of the preceeding
pulses. The data is verified once again, and the programmer then
moves on to the next location.

        Intelligent #1 -- Developed by Jason-Ranheim, this method
has been widely copied. It is the fastest way to program an EPROM.
Programming starts with a short .1 ms pulse which doubles in
duration with each failure to verify. The margin pulse is equal
in length to the sum of all preceding pulses.

        Intelligent #2 -- In this method, short pulses of equal
duration are applied. The margin pulse is 3 times the total
accumulated pulse time. If after 25 ms of short pulses, a
location still does not verify, programming stops and the failure
is reported.

        Intelligent #3 -- In this method, the margin pulse is 4
times the preceding total accumulation. If after 15 ms of pulses
verification has not been achieved, a 60 ms pulse is tried. If
the location now verifies, programming moves on. If not the EPROM
has failed.

        For any of the intelligent programming methods, the EPROM
supply (Vcc) is set to 6 volts. 
        
        PMW's from 4 to F have the meanings given in the 
following table:

        PMW     INT     TEST            TOTAL
                METHOD  PULSE           ACCUMULATION *
        -----------------------------------------------
        4       1       variable         12 ms.
        5       1       variable         25 ms.
        6       1       variable         50 ms.
        7       1       variable        100 ms.
        8       2        0.25 ms.        75 ms.
        9       2        0.50 ms.        75 ms.
        A       2        1.00 ms.        75 ms.
        B       2        2.00 ms.        75 ms.
        C       3        0.25 ms.       100 ms.
        D       3        0.50 ms.       100 ms.
        E       3        1.00 ms.       100 ms.
        F       3        2.00 ms.       100 ms.

        * = the maximum time that can be accumulated at a
            location before an error is reported.

        If you add $40 to the PMW, that is set bit 6 high, the
programming is altered in this respect: The PROHENADE turns off
Vpp before attempting to read back the EPROM. This slows down
programming; but it is advisable in few cases. For example:

        P C000, C7FF, 0, 28, 47

        This command programs a 27C16 with data from C000 through
C7FF. Another example:

        P 4000, BFFF, 0, E6, 46

        This programs an OKI 27256 with the specified data.



APPENDIX C -- Pinout diagrams for various EPROM chips

        Notes from the person who typed this manual in.... this
section of the manual did not exist, per se, in the original
manual. What did exist was a diagram on page 5, which showed a
single 28-pin chip; a 27513 to be precise. This diagram was
combined with two charts; one on either side of the diagram. 
The charts listed pinout information for five other chips. 
(They were the 2732A, 2764A, 27128A, 27256, and 27512. I added
a few; the 2716 and a non-standard 8K chip Commodore used.)
        The information in this Appendix is basically that same
information, just reformatted. Trying to reproduce that diagram  
the way the original was drawn, would be less than optimal
with plain ASCII (text) "art". Instead, I have reproduced single
chip diagrams here, hoping they'd be somewhat less confusing?
        Please also be advised that there are places on the World
Wide Web where one can look up the pinout diagrams of all sort
of electronic devices. Besides places that act strictly as
archives of pinout information, you may find that a company that
once sold a particular chip may have pinouts online. Companies
that sell blank EPROMs also frequently have diagrams. Using a
"Search Engine," you may want to initially try key words such as
"chip" and "pinout" and "electronics" to begin such a search of
the resources on the Internet.
        Here are the diagrams of various EPROM memory chips...


    Pinout diagram:  2716
    (2 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
         A7  | 1           24 |  Vcc
         A6  | 2           23 |   A8
         A5  | 3           22 |   A9
         A4  | 4           21 |  Vpp
         A3  | 5           20 |  /OE
         A2  | 6    2716   19 |  A10
         A1  | 7           18 |  /CE
         A0  | 8           17 |   D7
         D0  | 9           16 |   D6
         D1  | 10          15 |   D5
         D2  | 11          14 |   D4
        GND  | 12          13 |   D3
             |________________|


    Pinout diagram:  2732
    (4 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
         A7  | 1           24 |  Vcc
         A6  | 2           23 |   A8
         A5  | 3           22 |   A9
         A4  | 4           21 |  A11
         A3  | 5           20 |  /OE  Vpp
         A2  | 6    2732   19 |  A10
         A1  | 7           18 |  /CE
         A0  | 8           17 |   D7
         D0  | 9           16 |   D6
         D1  | 10          15 |   D5
         D2  | 11          14 |   D4
        GND  | 12          13 |   D3
             |________________|


    Pinout diagram:  2764A
    (8 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
        Vpp  | 1           28 |  Vcc     +5 Volts
        A12  | 2           27 |  /PGM    (Active low)
         A7  | 3           26 |  N.C.    No connection
         A6  | 4           25 |   A8
         A5  | 5           24 |   A9
         A4  | 6           23 |  A11
         A3  | 7   2764A   22 |  /OE     Output Enable
         A2  | 8           21 |  A10
         A1  | 9           20 |  /CE     Chip Enable
         A0  | 10          19 |   D7
         D0  | 11          18 |   D6
         D1  | 12          17 |   D5
         D2  | 13          16 |   D4
        GND  | 14          15 |   D3
             |________________|


    Pinout diagram:  MPS 2364
    (8 kilobyte x 8 bit ROM chip.)

    Note that while most 8k x 8 bit EPROM chips have 28 pins,
    this ROM chip of the same memory size uses only 24 pins.
    This ROM chip is often used in Commodore 8-bit products,
    such as the C64 and VIC-20 computers, as well as in game
    cartridges for various home systems including the Bally
    Astrovision / Astrocade. Note that Motorola once made a
    pin-for-pin compatible EPROM replacement; the MCM 68764.

             .------.  .------.
             |      |__|      |
         A7  | 1           24 |  Vcc
         A6  | 2           23 |   A8
         A5  | 3           22 |   A9
         A4  | 4           21 |  A12
         A3  | 5           20 |  /CS
         A2  | 6    2364   19 |  A10
         A1  | 7           18 |  A11
         A0  | 8           17 |   D7
         D0  | 9           16 |   D6
         D1  | 10          15 |   D5
         D2  | 11          14 |   D4
        GND  | 12          13 |   D3
             |________________|


    Pinout diagram:  27128
    (16 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
        Vpp  | 1           28 |  Vcc
        A12  | 2           27 |  /PGM
         A7  | 3           26 |  A13
         A6  | 4           25 |   A8
         A5  | 5           24 |   A9
         A4  | 6           23 |  A11
         A3  | 7   27128   22 |  /OE
         A2  | 8           21 |  A10
         A1  | 9           20 |  /CE
         A0  | 10          19 |   D7
         D0  | 11          18 |   D6
         D1  | 12          17 |   D5
         D2  | 13          16 |   D4
        GND  | 14          15 |   D3
             |________________|


    Pinout diagram:  27256
    (32 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
        Vpp  | 1           28 |  Vcc
        A12  | 2           27 |  A14
         A7  | 3           26 |  A13
         A6  | 4           25 |   A8
         A5  | 5           24 |   A9
         A4  | 6           23 |  A11
         A3  | 7   27256   22 |  /OE
         A2  | 8           21 |  A10
         A1  | 9           20 |  /CE  /PGM
         A0  | 10          19 |   D7
         D0  | 11          18 |   D6
         D1  | 12          17 |   D5
         D2  | 13          16 |   D4
        GND  | 14          15 |   D3
             |________________|


    Pinout diagram:  27512
    (64 kilobyte x 8 bit EPROM memory chip)

             .------.  .------.
             |      |__|      |
        A15  | 1           28 |  Vcc
        A12  | 2           27 |  A14
         A7  | 3           26 |  A13
         A6  | 4           25 |   A8
         A5  | 5           24 |   A9
         A4  | 6           23 |  A11
         A3  | 7   27512   22 |  /OE  Vpp
         A2  | 8           21 |  A10
         A1  | 9           20 |  /CE
         A0  | 10          19 |   D7
         D0  | 11          18 |   D6
         D1  | 12          17 |   D5
         D2  | 13          16 |   D4
        GND  | 14          15 |   D3
             |________________|


    Pinout diagram:  27513
    (4 pages x 16 kilobytes each x 8 bits wide)

             .------.  .------.
             |      |__|      |
         DU  | 1           28 |  Vcc
        A12  | 2           27 |  /WE
         A7  | 3           26 |  A13
         A6  | 4           25 |   A8
         A5  | 5           24 |   A9
         A4  | 6           23 |  A11
         A3  | 7   27513   22 |  /OE  Vpp
         A2  | 8           21 |  A10
         A1  | 9           20 |  /CE
         A0  | 10          19 |   D7
    P0   D0  | 11          18 |   D6
    P1   D1  | 12          17 |   D5
         D2  | 13          16 |   D4
        GND  | 14          15 |   D3
             |________________|



APPENDIX D -- TABLE of CONTROL and PROGRAM METHOD WORDS

        (Altered from the original only by sorting
        the list alphabetically by "EPROM type".)

    PROMENADE C1 with PROMOS 2.0 Operating System Software

                                 Programming Method Words (PMW)
 EPROM     Program    Control    Standard   Intelligent Methods
 Type      Voltage     Words       Method     #1     #2      #3
 ===============================================================
 2516          25      28              3       7      A       E
 2532          25      18              3       7      A       E
 2564          25      14              3       7      A       E
 27011         12.5    4X06    **      NR      6      NR      NR
 27128         21      5               3       7      A       E
 27128A        12.5    6               NR      6      A       E
 2716          25      28              3       7      A       E
 2716B         12.5    2A              NR      46     4A      4E
 27256     12.5, 21    E6, E5  *       NR      6      A       NR
 2732          25      E0              3       7      A       E
 2732A         21      E1              3       7      A       E
 2732B         12.5    E2              NR      46     4A      4E
 27512         12.5    E2      **      NR      6      NR      NR
 27513         12.5    4XE2    **      NR      6      NR      NR
 2758          25      28              3       7      A       E
 2764          21      5               3       7      A       E
 2764A         12.5    6               NR      6      A       E
 27C16         25      28              43      47     4A      4E
 27C256    12.5, 21    E6, E5  *       NR      6      A       NR
 27C512        12.5    E2      **      NR      6      NR      NR
 27C64         21      5               3       7      A       E
 2815          21      39              3       6      B       F
 2816          21      39              1       7      NR      NR
 48016         25      28              2       5      9       D
 5133          21      5               3       NR     NR      NR
 5143          21      5               3       NR     NR      NR
 5213          21      39              2       4      9       D
 52B13         5       7               NR      4      NR      NR
 52B23         5       7               NR      7      NR      NR
 68764         25      30              NR      46     4B      4F
 68766         25      30              NR      46     4B      4F
 68769         25      30              NR      46     4B      4F
 X2804A        21      39              1       NR     NR      NR
 X2816A        21      39              1       NR     NR      NR
 X2864A        21      7               1       NR     NR      NR

        NR  =  NOT RECOMMENDED.
        *   =  Be SURE to use the CORRECT Control Word
               corresponding to the programming voltage required
               by your particular EPROM.
        **  =  Requires special programming. See manual for
               details.

(End of document)