PRELIMINARY PROM (and PNEW) MANUAL (February 13, 1980 7:19 PM)

There are two programs available to fuse proms’, one called
PROM which drives the Alto Prom Blower (Blue Box), and the other called PNEW which derives PROLOG-92. PROM (as well as PNEW--- only PROM is mentioned thereafter, unless otherwise noted) combines the features of APROM, PROMDIAG, and LOGICPROM. . PROM runs in three modes, "MB File" mode which corresponds fairly closely to APROM, "MB File" mode which corresponds fairly closely to PROMDIAG, and "MB File" mode which corresponds fairly closely to LOGICPROM. Another promgram BINLIST is available for listing MB-files.




PROM COMMAND LINE

GLOBAL SWITCHES
noneSelect "MB File" mode.
/ESelect "Prom Editor" mode
/DSelect "Prom Blower Diagnostic" mode
/SCall Swat (debug use only)
LOCAL SWITCHES (valid in "MB File" mode only)
string/PPermute memory address (Default ...,2,1,0)(use comma between pin numbers)
string/QPermute memory data (Default ...,2,1,0)(use comma between pin numbers)
string/RReverse prom’s address and/or output data (string: A and/or D)
name/FRead micro binary from file "name"
name/DWrite differences on file "name"
name/MUse memory "name"
number/T*prom ID number (see Table 2 for ID’s, "0" for WHATEVER)
[addressA,]value/W**value written into addressed locations, and checksum updated
0/IInvert the output data
number/N"number" exclusive or with the address
number/CChip starting address equals "number"
number/BSet chip starting bit equal to "number"
number/ASet memory starting address to "number"
number/SSet memory starting bit to "number" blow the prom.


* needed only in PNEW to identify prom type, if the prom is not in the list use "0". However, be awared that Command line using non-zero ID may be different from that of using zero ID due to differences in prom’s pin-assignments between the manufactures and ours (see Tables 3 and 4). For instance, the two slightly different command lines to fuse Intel 2708 are:

PNEW file/F memory/M 4/T proma/C promb/B mema/A memb/S

PNEW file/F memory/M 0/T D/R proma/C promb/B mema/A memb/S


** available only in PNEW, very special application. Address is a 16-bits address, value is a 32-bits numbers (address must followed by A and separated by a common from the value, octals are indicated by "R8" following the number or numbers, only one "R8" is needed). PNEW first slices value into four bytes (add leading zeroes if necessary) and write into four consective locations, from (address-5) to (address-2), of the memory, then modifies the checksum at the location address of the memory by adding four 8-bits numbers of the value onto it. Default address is #3777 if addressA is not supplied.

PROM EDITOR COMMANDS
COMMANDACTION
QQuit
ZZero prom
IInvert prom
SSet prom to all ones
CChange prom (alters bits pointed to by mouse; red sets bit,
yellow resets bit, blue returns control to keyboard input)
RReverse bit (data bits are numbered with bit
zero starting from the left)
EEquation ("or" the equation into the bit selected.
Address bits are numbered with bit zero on the right.
"+" means "or". An "N" before a number negates the it.)
GGet a file
PPut a file
BBlow prom
MMemorize prom
VVerify prom
LList prom
NNew prom (test prom for virginity)
FFormat selection (only format 4 which selects 4x256 format and
format 8 which selects 8x32 format are currently implemented)
DDiagnostic (call Prom Blower Diagnostic)
AAddress permutation (Default permutation is
9,8,7,6,5,4,3,2,1,0. All input is right justified. An "N"
before a number negates the bit.)
H or ?Help (list all commands)

PROM DIAGNOSTIC COMMANDS
COMMANDACTION
QQuit
SSweep registers
CCopy (write memorized data into a prom)
WWrite test
RRead loop test
TType prom (display prom type)
MMemorize (read a prom into a core buffer for use later)
VVerify (check that the memorized data agree with the prom)
LList (generate a listing of the memorized data)
IIs prom virgin (test prom for virginity)
EEdit (call Prom Editor)
?Help (list all commands)


A command line of PROM is looking like this:

PROM file/F memory/M diffile/D promaddr/C prombit/B memaddr/A membit/S

where
file is a file in micro-binary format (see appendix A of D0ASSEM, D0 Microprogram Assembler, by E. Fiala, for details on this format), memory is the name of a memory in that file, promaddr is the lowest address of this prom to be programmed (normally 0), prombit is the high-order bit of this prom to be programmed (normally 0), memaddr if the lowest address in memory to be programmed in this prom (frequently 0), and memibt is the highest-order bit of memory to be programmed in this prom (frequently 0). The idea is that bit membit of word memword of memory will be programmed into bit prombit of word promword of the prom, and so on, increasing in word number until running out of memory length or prom length. Words unspecified by the file are left unchanged.

If
fifile is specified, then instead of being programmed, the prom will be checked against the appropriate part of memory. All differences will be written on diffile. PNEW requires prom-type to be supplied so that the prom’s characteristics will be varified with that of the Personal-card, the switch is "IDnumber/T". If the prom to be programming is not in the list (see Table 2), use "0/T", in which case the varification is bypassed. For other switches, please see Local Switches List above.

PROM reads its command line from left to right. All other switches but S simply set internal variables in PROM; whenever PROM encounters the S switch it attemp←ts to program a prom according to the most recent settings of its internal variables. For historical reasons PROM expects numbers to be decimal; octal numbers must be followed by "R8". The compare swich is (set by /D) retained once set, (so are I, N, R switches) hence no prom-programming after a prom-checking in the same command line. To compare a sequence of proms against a sequence of segments of a
memory and concatenate all results onto one differences file, the name of the difference file should be specified with the first /D and omitted from each succeeding /D.

For example, if we had a file
X13.MB with a memory called MicroCode declared to be 16 bits wide, and we wanted to put the low-order 4 bits of the second 256 words into a 256x4 prom, we might say

PROM X13.MB/F MicroCode/M 0/C 0/B 400R8/A 12/S

To program a set of 8 proms to hold the first 512 words of
MicroCode, we might execute the following command:

PROM X13.MB/F MicroCode/M 0/C 0/B 0/A 0/S 4/S 8/S 12/S
256/A 0/S 4/S 8/S 12/S

The first prom generated by the above command would contain the high-order four bits (0-3) of locations 0-255 of
MicroCode, the next would contain bits 4-7 of locations 0-255, and so on.

Talbes 3 and 4 show the pins assignments for the address and data-output lines. Please check them throughly. In case they do not match yours there are two ways to confirm your need, switch /R for reversing pin assignments, and switches /P (or /Q) for permuting address (data) pin assignments.

BINLIST is for listing MB-files:

BINLIST file/F memory/M identification/H Listfile/L

where
Listfile is the name of listing output file. Other switches are Q, P, I, N (works same as in PROM), and Anumber/R (only for reversing address, number is the number of address lines to be reversed).
Table 1 Current Prom-types available on Blue Box

Type#wds#bits/wdFeatures

Intel 36012564TTL (Open collector)

Intel 270810248NMOS (eraseable)

MMI6300 or MIL 63002564TTL (Open collector)

Motorola 101492564ECL

Signetics 10139328ECL

Signetics 8223328TTL (Open collector)


Table 2 List of Prom-types in PNEW

Type#wds#bits/wdIDFeatures

F9342725649TTL (Tri-states)

F934531024413TTL (Tri-states)

HM760325647TTL (Tri-states)

HM7610256416TTL (Open collector)

HM7620512417TTL (Open collector)

Intel 1702A256814NMOS (eraseable)

Intel 2708102484NMOS (eraseable)

Intel 27162048815NMOS (eraseable)

Intel 27581024818NMOS (eraseable)

Intel 360125643TTL (Open collector)

Intel 87481024820NMOS (eraseable)

MMI6300 or MIL 6300256410TTL (Open collector)

MIL 6305512411TTL (Open collector)

Motorola 1014925645ECL

Signetics 101393286ECL

Signetics 82S233282TTL (Open collector)

Signetics 82S2725648TTL (Open collector)

Signetics 82S126256821TTL (Open collector)

Signetics 82S1361024812TTL (Open collector)

Signetics 82S147512822TTL (Tri-states)

TMS25324096819NMOS (eraseable)
Table 3 Proms’ pin assignments for Address lines
(A0 refers to the high-order address bit)

A0A1A2A3A4A5A6A7A8A9A10A11

F93427
567432115----

F93453
5674321171615--

HM7603
*1413121110-------

HM7610
567432115----

HM7620
56743211514---

I1702A
1718192021123----

I2708
222312345678--

I2716
19222312345678-

I2758
222312345678--

I3601
567432115----

I8748
2322211918171615141312-

MMI6300
567432115----

MIL 6305
56743211514---

M10149
423910657----

S10139
1413121110-------

S82S23
1413121110-------

S82S27
567432115----

S82S126
567432115----

S82S136
5674321171615--

S82S147
1234516171819---

TMS2532
1819222312345678



* Please be aware that these assignments are different (reversed) from those indicated in TTLDataSheets.dm, hence add switch "A/R" in program/check command line.


Table 4 Proms’ pin assignments for Data Output lines
(D0 refers to the high-order Data bit)

D0D1D2D3D4D5D6D7

F93427
1211109----

F93453
14131211----

HM7603
12345679

HM7610
1211109----

HM7620
1211109----

I1702A
1110987654

I2708
910111314151617

I2716
910111314151617

I2758
910111314151617

I3601
1211109----

I8748
1918171615141312

MMI6300
1211109----

MIL 6305
1211109----

M10149
15141312----

S10139
12345679

S82S23
12345679

S82S27
1211109----

S82S126
1211109----

S82S136
14131211----

S82S147
678911121314

TMS2532
910111314151617