CA1108769A - Auxiliary rom memory system - Google Patents

Auxiliary rom memory system

Info

Publication number
CA1108769A
CA1108769A CA359,372A CA359372A CA1108769A CA 1108769 A CA1108769 A CA 1108769A CA 359372 A CA359372 A CA 359372A CA 1108769 A CA1108769 A CA 1108769A
Authority
CA
Canada
Prior art keywords
prom
memory
line
rom
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA359,372A
Other languages
French (fr)
Inventor
Donald S. Post
Philip Richardson
Steven L. Reid
Frank M. Nelson
Vernon E. Rochat
George E. Mager
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US05/780,875 external-priority patent/US4141068A/en
Application filed by Xerox Corp filed Critical Xerox Corp
Priority to CA359,372A priority Critical patent/CA1108769A/en
Application granted granted Critical
Publication of CA1108769A publication Critical patent/CA1108769A/en
Expired legal-status Critical Current

Links

Abstract

AUXILIARY ROM MEMORY SYSTEM
ABSTRACT OF THE DISCLOSURE
An auxiliary ROM memory system which is hierarchied for providing for the contingency of additional read-only memory control program storage requirements in excess or in lieu of the predetermined ROM memory provided on-board a micro-processor based central processing unit module, and a read-only memory altering capability utilizing programmable read-only memory to expedite the implementation/installation of changes to the ROM bit patterns. The alterable PROM storage comprises bulk PROM memory including a first PROM set that is mutually exclusive as to existing on-board ROM memory for addressably branching to code extensions and/or in-line code insertions, and/or a second PROM set that is mutually inclu-sive as to existent on-board and contigent ROM memory for decodably addressing large-scale code overlays thereto. In addition, the alterable PROM storage comprises patch PROM
for addressing, through multi-leveled decoding, small-scale code overlays to the on-board and contingent ROM memory for single in-line bit pattern alterations. Conflicting memory requests involving addresses recognized by more than one of the supra memory categories, when enabled, are presented to a predetermined hierarchy of memory precedences for resolu-tion thereof. Each of the enumerated memory categories of the auxiliary ROM memory system may be operative to have its population incremented or decremented without invalidating the above hierarchy of addressing.

Description

~ lf ~ ~
BACKGROUND OF T~ VENTION
A. Field of the Invention .
The invention relates generally to read-only memories for microprocessor based CPU modules and more par~
ticularly to hierarchied auxiliary ROM memory systems for additions and alterations to on-board ROM~
B. Description o~ the Pr.ior Art:
Previously, read-only memories for a microprocessor based CPU module could only be on-board mask programmable ROMS and/or relatively expensive field programmable PROMS~
If an addition or alteration was neeaed to be made to the application program stored in the on-board memory, the whole board would have to be pulled and discarded .in the case of mask programmable ROMS~ or alternatively additions and alterations to code could be had only in a limited manner according to the amount of unused existing on-board memory in the case of PROMSo The former was expensive due to the microprocessor peripheral content and the latter equally un-acceptable due to the large amount of highly skil~ed labor required to carefully pull, reprogram, and replace the CPU
i 20 module board containing the ROM memory.
Even in those cases where there exists a rudimentary external memory board that has ROMS and/or PROMS that may be coupled through a system bus to the CPU module board, there still remains the problem of how to address, in a coherent hierarchal manner, the various categorie~ of memory used for ; extension, insertion, large-scale overlay, and small-scale overlay while still retaining the ~lexibility required to increment and/or decrement the memory population as the need arises.

_MMARY OF' ~IE INVENTION
Accordinglyl it is an object of an aspect of the invention -to provide an au~iliary ROM memory system having a plurality of memory categories for the storage of various types of additions and/or alterations of code to ROM that is on-board the microprocessor based CPU module.
An objec-t of an aspect of the present invention is to provide efficient hierarchal resolu~ion of conflict-ing CPU memory requests in a predetermined manner involving addresses recognized by more than one of the plurality of categories of memory in the auxiliary ROM memory system.
It is an object oE an aspect of the present invention to provide additional contingency ROM storage as a category of the auxiliary ROM memory system for program storage in excess of or in lieu of the on-board ROM memory 15 in the CPU module. `!
An object of an aspect of the present invention is to provide alterable PROM storage as a category of the auxiliary memory system for implementation and installation of code changes to the program stored in contingent ROM and on-board the ROM memory in the CPU module.
An object of an aspect of the present invention is to provide bulk PROM as a subset of the alterable PROM
storage for extensions or in-line insertions of code ~or the revision of program storage residing in on-board ROMS.
An object of an aspect of the present invention is to provide patch PROM as a subset of the alterable PROM
storage for single in-line bit pattern alterations of code for the revision of on-board ROM program storage.

_4_ ' ' ' .

An object of an aspect of the present invention is to provide small-scale code overlay on the on-board ROM
through multi-leveled address decoding of the patch PROM.
An object of an aspect of the present invention is to provide bulk PROM extensions and insertions to on-board ROM that are mutually exclusive relative thereto through logical branching.
An object of an aspect of the present invention is to provide bulk PROM large-scale code overlays to on-board ROM that are mutually inclusive relative theretothrough address decoding.
In accordance with one aspect of this invention there is provided a contingency ROM storage module operatively coupled through a system bus to a CPUM having on-board ROM for permanent data storage of instruction code in excess of or in lieu of code in the on-board ROM
comprising: a) Address Buffer means operative to receive addresses on the system bus from the CPUM for signal driving and correcting biasing therefor for correlative matching of signal levels; b) Permanent ROM storage means having addressing ranges that are transferably equivalent to ROM on board the CPUM and operative to receive driven address signals from said Address Buffer means for accessing instruction data sets mask stored therein in a plurality of partitions for transmittal on the system bus; and c) Instruction multiplexer means operative to receive instruction data from more than one partition of said permanent ROM
storage means for selection of an instruction data set .. ~ .

~, ~.~.L~ '7~

from one of the presented part:itions according to a predetermined code of addresses received on the system bus from the CPUM for transmittal through the system bus to the CPUM.
By way of additional, brief explanation, address signals are transmitted on a system bus from the CPU
module to a driver means in the auxiliary ROM memory system having tri-state control. Address signals are then controllably distributed to a buffer module for addressing a contingent ROM memory, a multiplexer for block selection of accessed instructions, alterable `
PROM for addressing sections of memory to be accessed therefrom, a decoder control module for multilevel hierarchal accessing of all categories of memory in the auxiliary ROM memory system, and a ready control module for interfacing through the system bus with the CPU module for temporally controlled reading of the auxiliary ROM memory system. Accessed instruction signals are received from the supra contingent ROM
multiplexer and the alterable PROM memory for tri-state dri~ing through the system bus to the supra ready control module and the CPU module.

-5a-, . ~ i .

~?L ~ r~1t ,L ;,~ ~

BRIEF DESCRIPTION OF TE~ DRAWIN~S

Various other objects, advantages and meritorious features of the invention will become more ~ully apparent from the following specification, appended claims and accom-panying drawing sheets.
The features of the specific embodiment of the invention are illustrated in the drawings in which:
Figure 1 is a block diagram of the auxiliary ROM
memory system;
Figure 2 i9 a block diagram of the decoder control module of the auxiliary ROM emmory system of Figure l;
Figure 3 is a schematic diagram of the decoder control module of Figure 2;
Figure 4 is a schematic diagram of the alterable ~- PROM memory of the auxiliary ROM memory system of Figure l;
Figure 5 is a schematic diagram of the tri-state address driver module of the auxiliary ROM memory system of Figure l;
~igure 6 is a schematic diagram of the address buffer moduIe o the auxiliary ROM memory system of Figure 1, Figure 7 (A-B) is a schematic diagram of the con-tingent ROM memory of the auxiliary ROM memory system of Figure l;
Figure 8 is a schematic diagram of the contingency ROM Instruction multiplexer of the auxiliary ROM memory sys-tem of Figure l;
.` Figure 9 is a schematic diagram of the instruction tri-state driver of the auxiliary ROM memory system of Figure li :

`; .

.

Figure 10 is a block diagram of the ready control module of th~ auxiliary ROM memory system of Figure l;
Figure 11 (A-B) is a schematic diagram ~P the ready control module of the au~:iliary ROM memory system of 5 Figure l;
Figure 12 is a schematic diagram of the voltage : regulator module of the auxiliary ROM memory system of Figure 1;
; - ~ Figure 13 is a diagram describing the mode that the . 10 decode control module of Figure 3 uses to order the accessing of the patch PROM of the alterable PROM memory o~ Figure 4;
Figure 14 is a diagram describing the mode that the decode control module of Figure 3 uses to order the accessing of the bulk PROM of the alterable PROM memory of Figure 4;
Figure 15 is an interconnected view of all the in- -put/output patch files used by the ARMS software support program as stored in the auxiliary ROM memory system of Fig-ure l;
Figure 16 is a First Level Decode Listing of the Printer File of Figure 15;
Figure 17 is a Second Level Decode Listing of the Printer File of Figure 15;
Figure 18 is a Patch Prom Memory Image Listing of the Printer File of Figure 15;
Figure 19 is an ARMS Summary Report Listing o~
the Printer File o Figure 15;
Figure 20 is a Sixteen Byte Patch Placement table for the Second Level Decode Listing of Figure 17;
Figure 21 is an Exemplary Table of the Patch Prom Map for the Printer File of Figure 15; and Figure 22 is an appendix of the format of a M~P
File Record of Figure 15.

~ ' , 7~

_ TAILED DE~CRIPTION OF THE PREFERRED EMBODIMENT
Referring to Figures 1 through 14 by the characters or reference, there is illustra-ted a system utilizing MOS and TTL technology for carrying out the objects of the invention.
As indicated supra, the inventive auxiliary ROM memory system (ARMS) 10 is an adjunct of the Central Processor Unit module ~CPUM) (not shown) described in the aforementioned U. S.
patent, and which is connected thereto via a system bus 20.
As indicated supra and as shown in Figure 1, ARMS
10 is connected via the system bus 20 to the CPUM thereby : 10 allowing receipt by ARMS 10 of accessed addresses on main bus 30 and associated control signals on lines 40 Erom the CPUM, and similarly transmittal oE accessed instructions on main bus 50 and associated control signals on lines 60 by ARMS 10 to the CPUM.
The accessing addresses outputed by the CPUM on the main address bus 30 of the CPUM are operative to proceed to the on-board ROM (not shown) of the CPUM, and also to all of the memory categories of the off-board ARMS (10). The accessing signals on the main address bus-30 after being con-ditioned by the Address Tri-state Driver 70 of the ARMS 10 proceed on subaddress bus 80 to the two major categories of memory in the ARMS 10 including contingent ROM storage 90 for memory requirements in excess of or in lieu of on-board ROM, and Alterable PROM storage 100 for implementation and/
or installation of changes to on-board ROM. The singular minor category of memory in the contingent ROM storage 90 being the conti.ngency ROM 105A-B which is operative to access subaddress bus 80 through the Address Buffer 110 via an inter 1 .L;`~~ & ~

address bus 120, and output instruction code on an inter in-struction bus 130 to an instruction multiplexer 110~ The instruction multiplexer 1~0, after also receiving signals on subaddress bus 80 indicating block memory selection, will output instruction code on subinstruction bus 150 to an In-struction Tri-state Driver 160 for conditioning.
The dual minor categories of memory in the Alter-able PROM storage 100 are the bulk PROM 170 for code exten~
sions or in-line code insertions and the Patch PROM 180 ~or sinyle in-line bit pattern alterations each receiving access signals on the main address bus 80 from the Address ~ri-state ~river 70. It will be appreciated that Bulk PROM, which may be used with Patch PROM 180, as will be se~n infr~, may be controlled to act as mutually exclusive PROM through logic branching ~or extensions and insertion, or alterna-tively to act as mutually inclusive PROM through single-level address decoding for large-scale code overlay. It will be further appreciated that Patch PROM 180, which may be used either with or without Bulk PROM 170, as will be seen infra, is controlled through multi-level address decoding for small-scale code overlay. An address decoder 190 is provided to receive the same accessed address on subaddress bus 80 from the Address Tri-state Driver 70 as does collectively the on-board ROM of the CPUM and the memory categories of the ARMS
10, for resolving conflicting memory requests through hier-archal subordination where the accessed address overlaps more than one address range of the enumerated categories of memories. The degree of subordination in the hierarchy o~

categories from a high to a low level is ordered as follows:
Patch PROM 180, Bulk PROM 170, contingency ROM 105A-B, and _g_ 3 ~

on-boarcl ROM The control line groups outputed by the adclress decoder 190 to establish this hierarchal ordering are 200, 210, and 220 for Patch PROM 180, Bulk PROM 170, and contingency ROM 105A-B respectively. Since on-board ROM is entirely subordinated, it will only be priorized in the hierarchy by default.
AEter conditioning by the Instruction Tri-state Driver 160, instruction code signals are outputed onto the main instruction bus 50 of the system bus 20 for bifurca-tion first to the CPUM and also to a Ready Control Module 265A-B operative to synchronize the read-accesses of the ARMS 10 by the CPUM. Said synchronization of read-accessing ( - is obtained through an input/output interface to the address decoder 190 on line groups 230 and 240 respectively, an output interface on line 250 to the Instruction Tri-state Driver 160, and an input/output interface to the CPUM on the line groups 40 and 60, respectively, of the system bus 20.
To preclude noise transients and other environ-` mental anomalies from being induced onto sensitive address and instruction bus lines, a Bias Reyulator 260 has been interposed between the power supply system (not shown) and the ARMS 10 that its services thus providing reliable regulated energizing on line group 270 to the various client modules in the ARMS`10.
In regards to the Address Tri-state Driver 70 of Figures 1 and 5, address signals designated Aoo-Ts through A15-TS o~ the main address bus 30 of the system bus 20 are received by a group of tri-state drivers parallelly by a group of tri-state drivers 290 of the Address Tri-state Driver module 70 at their inputs. Insomuch as the grounded control line 310 of the tri-state driver group 290 is effec---10~

,;

r ~ ;~: ~
tively continuously on, the tri-state driver yroup 290, accordingly, will continuously output on parallel line group 80 the address signals A00 through A15. The group of tri-state drivers 290 serve to condition the inputed address signals by acting as buffers or drivers having three state outputs which are used to drive the bus lines 80 directly. A particular embodiment of a hex bus tri-state driver as used for the address tri-state driver group 290 would be a Model 74 367.
Driven address signals A00 through A15 flow out of the address tri-state driver 70 on the subaddress bus 80 to the address buffer 110 of Figures 1 and 6 where each of ~ ( the address lines are inputed to a positive logic A~D gate - of a group 320 having two inputs commonly terminated. Each 15 of the AND gates of the group 320 being a Model 7408 being used here to buffer differing bias levels on the supra add~
ress lines. Buf~ered address signals from the AND gate group 320 are outputed on line group 330. Each of the out-put lines of the group 330 are terminated by its own biasing 20 resistor of 680 ohms of the resistor group 340 where each of said resistors is tied at its opposing end to a ~5 volts bias on a line 270 from the bias regulator 260. From there, the biased address signals R~00-RA15 are outputed on inter address bus 120 to the contingency ROM module 105A-B.
The contingency ROM 105A-B of Figures 1 and 7A-B
are operative to receive the address signals RA00 through R~15 on inter address bus 120 in a parallel mode into four distinct blocks of memory. The four distinct bl~cks of mem-ory being 350, 360, 370r 380 of subsystem blocks 105A and 105B respectively. The total memory capability of the con-tingency ROM 10SA-B is 64KB where each of the subsystem blocks 105~ and 105B ~3ach have 32KB, and each of the blocks of memory 350 through 380 therein each in turn have 16KB oE
memory. Each of the blocks 350 through 380 have eight ROM
chips of 2KB each wherein the preferred embodiment (each ROM chip) is a 2048 x 8 model 8316A having 10 parallel add-ress line inputs, three parallel chip select inputs, and eight data parallel outputs. Individual ROM chips for block 350 are designated 390A - H, for block 360 they are desig-nated as 400A - H, for block 370 they are designated as 410A -H, and for block 380 they are designated as 420A - H.
Address lines RA00 - RA10 of interaddress bus 120 are used to parallelly address inputs A00 through A10 of each of the ROM chips of the contingency ROM 105A-B. Address lines RAll - R~13 of interaddress bus 120 are used to address chips se-lect 1 through chip select 3 (~I-cs3) in a parallel manner for each chip respectively. D0 - D7 outputs of each of the chips indicates data or instruction 0 through instruction or data 7 lines in a parallel manner~
In regards to block 350 of submodule 105A having ROM chips 390A-H, the data or instruction output lines are designated here as RDA0 - RDA7 of the first block address group 430 of interinstruction bus 130. In regards to block 360 of su~module 105A having ROM chips 400A-H, output ter-minals D0 - D7, for each of the ROM chips~ output parallel signals RDB0 - RDB7 on second block address group 440 of interinstruction bus 130. In xegards to block 370 of sub-module 105B for ROM chips 410A - H, output terminals D0 -D7 output parallelly as signals RDC0 - RDC7 on their block address group 450 of interinstruction bus 130. In regards .~

4i~
-to block 380 o:E subrnoclule 105:B, ROM chips 420A - El, output terminals D0 - D7 outp~t parallelly as signals ~DDO - RDD7 of ~ourth block addre.ss group 460 o~ inter instruction bus 130. It will be noted that for each of the ROM chip groups 350-380, either the top row onl.y or the bottom row only, where top row is the A, C. E, and H row and the botkom row is B, D, F, H, may be accessed alterna~ively, as in a logical exclusive OR mode, at any one time as chip selected.
The instruction multiplexer 140 o~ Figures 1 and 8 is operative to receive instruc-tion data signals on the inter-instruction bus 130 from contigency ROM 105A-B. Particularly, each instruction data line on interinstruction bus 130 is biased by a 10K ohm resistor on each of the lines from a resistive group 470 including a plurality of resistors having each of their opposing ends connected to a plus 5-volt bias which is derived on line 270 from the bias regulator 260.
The mux receiving groups 480 and 490 each have two multiplexer components including 500A and B for the first multiplexer group 480, and 510A and B for the second multiplexer group :~ 490.

Each of the multiplexer components 500A - B and 510A.- B include schottXy-clamped high performance multi-plexers, Model 74S257, the multiplexer 500A-B and 510A-B
feature three state outputs which can interface directly with and drive data lines o~ bus organized systems. In ad-dition, with all but one of the common outputs disabled (at a high impedance state) the low input of the single enabled output will drive the bus line to a high or low logic levelO
The three state output featùre means that N bit (parallel data selectors with up to 20 sources can be permitted for data buses. It also uses standard TTL registers for a data r: ~r ' ~
retention throughout the system. To minirnize the possibility that -two outputs would attempt to take a common bus to oppo-site logic levels, the output enable circuitry is designed such that the output and disenable time are short~r than the output enable times. Each of the multiplexers 500A-B and 5 510A-B features quadruple two-:Line-to-one-line data sel~ctor multiplexers through three state outputs. Accordingly, there are four inputs for the A inputs, and four inputs for the B inputs which may be alternatively used. The OE output, meaning output ena~le, allows the multiplexer to be in an "on" state whereby it may be switched from either the A or B input. The SR selector input terminal acts to switch ths inputs of an enabled multiplexer to either an A or B state.
The output terminals lYt 2Y, 3Y, and 4Y are the result of either switching to either an A or a B input for an enabled output or an enabled multiplexer 500A-B and 510A-B. The function table for each of the multiplexer components is as shown below.
- FU~CTION TABLE
:~: . Inputs Output.Y

Output Control Select A B

H X X X Z

L L L X L

L L H X H

L H X L L
L H X H H

Instruction/data signals are designated as DA0-.; RDA7 on first block address group 430 from ROM block 350, ; and instruction signals designated as RDB0 - RDB7 on second block address group 440 from ROM block 360, where both groups : ~ , ,t~t~S~

form part of interinstruction bus 130, are presented to the firsk multiplexer group 480 after biasing by yroup 470.
Each resistive element oE 470 is lOK and is biased at its opposite end by ~5 volts on line 270 from reyulator 260. Particularly, instruction signals RDA0 - RDA3 and RDB0 -RDB3 are presented as a line group 520 for A and ~ inputs,respectively, of multiplexer co:mponent 500A which is a model 74S257. Instruction data signals RDB4 - ~DB7 and in-struction data signals RDA4 - ~DA7 are inputed as a group 530 to the A and B inputs, respectively, of multiplexer 10 component 500B which is also a Model 74S257. Instruction data lines RDD0 - RDD3 and RDDC0 - RDC3 axe inputed after being biased by resistance 470 as a group 540 to the A and B input, respectively, of multiplexer component 510A which also is a Model 74S257. Instruction data signals RDC4 -RDC7 and instruction data signals RDD4 - RDD7 are inputed ~' after being biased.by resistance 470-as a group 550 to A and B alternate inputs,respectively, of multiplexer component 510B which is also a Model 74S257. After either a rirst or second multiplexer group 480 or 490, respectively, is enabled ( 20 and after either the A or B input alternatively is selected : for the multiplexer components within the enabled group, then either output line group 560 and 570 or 480 and 590, respectively, is terminated to output as group 600 for D0 -D3 and 610 for D4 - D7 on subinstruction bus 150 to instruc-tion tri-state driver 160.
The gating logic for the select and output enable`
inputs designated as 620 is operative to receive address signals on subaddress bus 80, mainly A13 and A14, for in-puting to AND gate 630 and 640 having inputs commonly tied 30 respectively. A14 is also operative to be sent on line 650 to a NAND gate 660. The output of NANr) gate 640 proceeds on lines 670 to NAND gate 680. A control siynal designated as KRU on line 220 is operative to bifurcatably input to already mentioned NAND gates 680 and 660. When the signal as outputed by NAND gate 630 is high on line 690 as in-puted to the select S inputs ~f multiplexers 500A - B and 510A - B, the A inputs will be selected for outputing.
Correspondingly, when the output from NAND gate 630 on line 690 designated as NA13 is low, the B input as selected will be outputed on the multiplexers mentioned. Whenever a KRU

signal on line 220 is present at NAND gates 680 and 660, they will operate in a mutually exclusive manner depending on whether the A14 signal on the subaddress bus 80 is present or not present thereby causing NA~D gate 680 to output or ~A~D gate 660 to output respectively. When NA~D gate 680 outputs on line 700 as a signal ~RSCL0, the multiplexer group 500A - B will be output enabled for selection. Like-wise, when NA~D gate 660 outputs on line 710 as signal NRSCLl, multiplexer group 490 will be output enabled for selection.
Instruction data signals D0 - D7 are received by the instruction tri-state driver 160 of Figures 1 and 9 on subinstruction bus 150. The signals on the instruction data lines of subinstruction bus 150 are fed to a biasing resis-- tance network 720 having each of the lines commonly terminated with a 492-fLresistor and a 2.5K -fiLresistor where said resis-tors are grounded and biased respectively. The biased resis-tor of 492 ohms is terminated at its biasing end by a plus 5 volts on line ?70 from the bias regulator 260. After being biased, instruction data signals on line group 730 proceed to a tri-state driver for each of said lines whexe the group is designated as 740. The preferred embodiment of the tri-' .. . .

t^'`f~

state driver is ~ Model No. 74367 hex bus driver (3 state)~
The control line ~or each oE the tri-state drivers 250 designatea as a NDsEN signal from the ready control module 265A-s is operative to be on whenever a read function is being performed on any of the memory categories of the ARMS
10. Accordingly, output signal.s from the tri-state driver group 740 proceed on main instruction bus 50 of the system bus 20 bifurcatably to the CPUM and also to the ready con-trol module 265A-B.
Address linas A07 - A15 on subaddress bus 80 are received by the first level PROM address recognition module of the address decoder 190 o Figures 1, 2 and 3. Particu-larly, the address lines A7 - A15 are inputed to the input terminals A0 - A8 each of a pair of first level address recognition PROMs 760 and 770 respectively. Output signals from terminals 01 through 04 for the first level address .
recognition PROM 760 and 770 are provided on line groups : 780 and 790 respectively. Chip enable (CE) for first level : address recognition PROM 760 is received on line 800 and contains the signal from an inverter 810 which is inputed - 20 to by a bias line 820 from bias network 830 being the same as one of the elements of bias network 720 described supra~
Chip enable (CE) for first level PROM address recognition PROM 770 is received on line 840 as ground. It will be noted that both chip enables 40 for the first level address recognition PROMS 760 and 770 are enabled on continuously.
Each of the parallel lines of the line gr3ups : 780 and 790 a:re individually biased by biasing network having elements identical to those in biasing network 720 or the present biasing network is designated as 850. A

subset of the collective lines of the line group 780 and 3~ ~

790 herein designated as line group 860 is derived from outputs 01 through 04 of PROM 770 and outputs 01 and 02 of PROM 760 wherein the signals of the line group 860 are designated as ASEL0 - ASEL5 respectively~ Signals ASEL0 -ASEL5 of line group 860 bifurcat:e to receive by input ter-minals A3 - A8 of both second level PROM address recogni-tion PROMS 870 and 880. Chip enable (CE) is provided on line 890 from inverter 900 which, in turn, receives a bias signal on line 910 from one element of the resistive networ~
850 described supra. It will be noted that the second level 10 address recognition PROMS 870 and 880 are part of the second level PROM address recognition module 920. The bias being continuous will be operative to conkinuously operate the PROMS 870 and 880 in a continuous chip enable state. The ; enabled second level address recognition PROM 870 and 880 will output on terminals 01 - 0 4 on line groups 930 and 940 respectively. Line group 930 is then biased by a resis-tive group 950 having elements identical to those in resis-tive group 850. Line group 940 is similarly biased by a resistive group 960 identical to resistor group 950 described supra. After being biased, a subset of line group 930 des-ignated as siynals AD0-P - AD2-P, and a subset of line group 940 designated as signals AD3-P - AD4-P are consolidated as line group 970. This signal outputed from the 01 terminal of the PROM 870 as part of the line group 930 which is ~es-ignated as the ~PATCH signal on line 980 is operative tobifurcate onto lines 990 and 1000. Line 990 going into a patch select logic module 1010. Line 1000 is operative to, in ~urn, bifurcate to lines 1020 and 1030 to be part of line groups 230 and 200 respectively.

Output terminal 03 of PROM 880 is operative to '{'~ r~
output as part of line group 940 on line 1040 as a signal designated as PA'~CHSEL to the patch selec-t logic module 1010 also. Line 1040 is operative to, in turn, bifurcate as lines 1050 and 1060 to a NAND gate 1070 and an inverter 1080 respectively. Inverter 1080 is operative to output on line 1090 as a signal designated as NPATCHSEL to be re-ceived by NA~D gate 1100. Line 990 mentioned supra is operative to bifurcate as inputs to supra mentioned NAND
gates 1070 and 1100. It will be noted that NAND gates 1070 and 1100 additionally have inverted lo~ical inputs. Upon concurrent receipt of inputs to either NA~D gate 1070 or NAND gate 1100 they will alternatively output on either line 1110 or 1120 to be part of line group 210 mentloned supra.
It will be appreciated that the NPATCH sign~l~on line 990 acts as the control input to NAND gates 1070 and 1100 where~y ,~
they will either receive a PATCHSEL or a NPATCHSEL signal on either line 1050 or 1090 altarnatively but not concurrently in regards to the logic thereof. PROM 760 is operative from output terminals ~ and 0 as part of line group 780 to output, on lines 1130 and 1140,signals NBPROM and NROM designated thereas respectively to a gating control module 1150. The NBPROM signal on line 1130 is operative to proceed to in-verter 1160 which, in turn, outputs as signal BPH on line 1165 to NAND gate 1170. NAND gate 170 is also operative to receive an input on line 1175 from biasing network signal BPEN-BP from biasing network 1180 which is identical to a - single element in resistive network NA50 described supra~
NAND gate 1170 will output bifurcatably as signal NBP~ERE
on line 1170 and line 1195; line 1190, in turn, bifurcating to line 1200 as part of line group 230 and line 1205 as part of line group 200 both mentioned supra. Line 1195 is op~
erative to input to a NAND gate 1210~

~J~'~r~ ~

NROM signal on line 1140 mentioned supra is opera-tive to be received by inverter 1220 which will in turn out-put on line 1230 as signal ROMH to supra NAND gate 1210.
NAND gate 1210 is also operative to receive an NPATOEI signal on line 980 ~rom PROM 870 mentioned supra. NAND gake 1210 is ~urther operative to receive an input on line 1240 as a signal AROMEN-BP from resistive network 1250 which is iden-tical to resistive network 1180 described supra. Line 1210, in t~lrn, is operative to bifurcatably output first to line 1260 and then to line 1270. Line 1260 bifurcatably to the dual inputs o~ ~AND gate 1280 where said inputs are common-ly tied. NAND gate 1280 being operative acts as a driver J that logically inverts signals inputed thereto. NAND gate 1280 will output on line 1290 the signal ROMEIERE to an AND
gate 1300; AND gate 1300 also being operative to receive signal DBI~ on line 240 from the ready control module 265A-B. Upon concurrent signals by A~D gate 1300, it will output on line 220 as signal KRU to the PATCH PROM 180 of alterable PROM storage 100 for control thereof. It will be noted that each of the PROMS 760, 770, 880, and 870 are Model Mo.

3602's PROM having the capacity of 512X4 bits.
The Alterable PROM memory 100 of Figures 1 and 4 is operative to receive control line group 200 from the Address Decoder 190 including an NPATCH signal on line 1030, and BPHERE signal on line 1200 and AD0-P - AD4-P signals on line group 970. The Alterable PROM memory 100 i9 also operative to receive subaddress bus 80 including signals A00 - A10. In addition, control line signals 210 from the Address Decider 190 are also received as signal NPATCH SEL~
on line 1120 and NPATCH SELB on line 1110. A demultiplexer 1310 in the bulk PROM 170 of Alterable PROM memory 100 is operativ~ to receive the NPATCH signal on 1030 at its lC
input, and an op~n circuit at 2C input. Address lines Ag and A10 as a subset of subaddress bus 80 are received by the demultiplexer 1310 at its A and B input terminals, respectively, in the Bulk PROM 170. In addition, NBPEIERE
signal on line 1200 is received at the lG input terminal of the demultiplexer 1310, and the 2G input terminal the~eof being open circuited, The output terminals for demulti-plexer 1310 include lyO, lyl, ly2, and ly3 ~or signals NPSEL0, and BPSELl, and BPSEL2 and NBPSEL3, respectively, are part of line group 1320.
The Bulk PROM module 100 consists of PROM chips 1330A - H, the preferred model being a Model 3602 having 512 x 4-bit capacity, Each of the ROMS 1330A - H have add-ress input terminals A0 - A8, a chip enable (CE) input terminal, and four parallel output terminals including ~1 -04, Subset address bus 80 has address signals A00 - A08 that are parallelly inputed to each of the address inputs of the PROMS including input terminals A0 - A8 respectively~
Output line group 1320 from demultiplexer 1310 is used to selectively chip-enable the PROM chips 1330A - H. Particu--larly, signal NBPSEL0 of line group 1320 is used to chip-enable on line 1340A the PROMS 1330A and 1330E. Signal NBPSELl on line group 1320 is used to chip-enable on line 1340B the PROMS 1330B and F. Signal NPPSEL2 on line group 1320 is used to chip-enable on line 1340C the PROMS 1330C
; and G. Signal ~BPSEL3 on line group 1320 is used to chip-enable on line 1340D the PROMS 1330D and H. It will be noted that only one of the PROMS 1330A, B, C, and D may be chip-enabled any one given time, and likewise only one of the PROMS 1330E, F, G, and H will be operative to be enabled any one given ~ime for instruction data signals D0 - Dc and D3, and D4 - D7 on line groups 1350A and 1350B, respectively, o~ sub-instruction bus 150.
Signals AD0-P - AD4-F' of line group 970 of control group 200 are operative to be received by the patch PROM
module 180 of the Alterable PROM memory 100 for addressiny thereof. In addition, ~PATCH SELA and NPATCH SELB signals on lines 1120 and 100, respectively, of control line group 210 are also operative to be received as control signals by the patch PROM module 180. Specifically, signals AD0-P -AD4-P of line group 970 are operative to be received by the input terminals A4 - A8 of each of the PROM chips 1360A - D.
Address lines A00 - A03 of subaddress bus 80 are operative to be received parallelly by input terminals A0 - A3 o~ each of tha PROM chips 1360A - D. The NPATOEI SELA signal of line ; 15 1120 is operative to be received by the chip-enable (CE) in-put of PROM chips 1360A and C. The NPATCH SELB signal on line 1110 is operative to be received at the input chip-anable terminals of PROM chips 1360B and D. It will be noted that during any "on" time, either PROM chip set 1360A

`~ 20 and C or PROM chip set 1360B and D may be chip-enabled at any one given time but not both concurrently. PROM chips 1360A - D also are a Model 3602 having 512 x 4-bit capacity.
Output terminals for PROM chips 1360A - D include output terminals 0~- 04 in parallel~ In particular, instruction data signals D0 - D3 on line groups 1350A are outputed from PROM chips 1360A and B, and instruction data signals D4 -D7 on line group 1350B are outputed from PROM chips 1360C
and D where subset line groups 1350A and B comprise sub-instruction bus 150. It will be noted that bulk PROM 170 and patch PROM 180 both being in Alterable PROM memory 100 .~ .

' :' -have co~monly -termina~ed p~rallel output lines ~o~ instruc-tion data signals D0 - D7 as outputed on the subinstruction bus 150 that will proceed to instruction tri-state driver 160.
The bias regulator 26() as shown in Figure 1 and 9 and Figure 1 receives a 17-volt d.c. unregulated voltage from a power source not shown on line 1370. The unregulated 17-volt d.c. on line 1370 is inputed bifurcativel~ to the V~
and VC input terminals of a Model 723C voltage regula~or as inputs thereto. The V Ref input terminal of the voltage regulator 13aO is open circuited. A dropping resistance of 562 ohms is provided by resistor 1390 off of line 1370 which is in series with a second dropping resistor 1400 of 53 ohms and a third dropping resistor of 807 ohms designated as 1410 which inputs a signal designated as ZD03 bifurcatively to the QINV input terminal and a CL input terminal of the vol~age regulator 1380. Interposed between resistors 1390 and 1400 is a limiting diode 1430 which is grounded at its opposite end and is designated as 1430. Interposed between resistor 1400 and 1410 is a limiting ~iode 1440 grounded at its oppositQ end and designated as 1440.
A RC circuit for eliminating transients con-sisting of grounded resistor 1450 of 2.9k ohms and a parallel grounded capacitor 1460 of .0015mf both being interposed between resistor 1410 and the QINV/CL terminal input oE vol-tage regulator 1380. At the grounded end of capacitor 1460,there is interposed a line 1470 to the input terminal V- of voltage regulator 1380. Through the CS output of voltage regulator 1380 is a signal ZD04 on line 1480 through diode 1490 and outputed on line 1500 to the collector of a transistor 1510. ~ine 1500 is also grounded through 7 ~ ~3 capacitor 15~0 for limiting transients Line 1500 addition-ally is connected to the collector of a second transistor 1530. The OUT ou-tput terminal of the voltage regulator 1380 ou-tputs on line 1540 a signal designated as ZD05 to a resistor 1550 of 100 ohms dropping resistor of 100 ohms which, in turn, outputs bifurcatively to the base of transistor 1510 and to a dropping resistor 1560 of lk ohms. Transistor 1510 through its emitter outputs on line 1570 bifurcatively to the base of transistor 1530 and to a dropping resistor o 75 ohms designated as 1580. A CLAMP
terminal and a I~V terminal of voltage regulator 1380 are commonly connected through a capacitor 1590 having .047mE.
The INV terminal of voltage regulator 1380 is additionally connected as is the capacitor 1590 at one end to a dropping resistor 1600 having 680 ohms. The dropping resistor at its opposite end is connected to the dropping resistor 1560, the dropping resistor 1580, and the emitter of transistor 1530 and to the output line 270 designated as ZP5V for regu-lated voltage 5 volts d.c. The output line 270 is adaition-ally connected through a capacitor module 1610 having capa-citor 1620-1 through 47 where capacitor 1620-1 and 2 and 47 have a value of 3.3mf and remainder of the capacitors in the -capacitor group 1610 having a value of .01m~. Capacitor - group 1610 acts to take out all variations through power -~ storage thereby smoothing out power demands on line 270 for a more perfectly regulated d.c. voltage of ~5 volts to the client modules in ARMS 10.
In regards to the ready control module 265A as shown in Figures 1, 10 and llB, line group 230, including the signals NROM~RE, NBPEERE, and NPATCEI on lines 1270, 1200, and 1020, respectively, are inputed to an OR gate :; .

'~ ~'53~Jt~

having inverted inputs, -the OR gate being designated as 1630. OR gate 1630 is operable to output on line 16~0 to NAND gate 1650. A NVBIN-TS signal on line 1660 from the CPUM (not shown) is inputed to an inverter 1670 for a logical inversion as outputed on signal DBIN line 240 to the address decoder 190.
The NDBIN-TS signal on 1660 is a means oE indi-cating by the CPUM to the ARMS 10 that the data or instruc-tion bus 50 oE sys-tem bus 20 is an input mode thereby enabliny beginning of data or instructions on the data bus ' from the memory categories of ARMS 10. It will be noted that inverter 1670 also bifurcates to line 1680 as input to NAND gate 1650. It will also be noted that the NDBIN~TS
signal is further described in the supra-referenced patent.
A PN signal indicating power normal on line 1690 is also -~ inputed to ~AND gate 1650 as received from the IOPM. It will also be notea here that the PN.signal is also further described in the supra-referenced patent. A PROGENARPM
signal on line 1700 is received from the 265~ portion of . 20 the ready control module for inputing to NAND gate 250. A
~EMREAD-TS signal on line 1710 to inverter 1720 is re-ceived from the CPUM and is also further described in the supra-referenced patent. The signal is then outputed MEMR
bifurcatively on lines 1730 and 1740 to NANAD gate 1650 and inverter 1750, respectively. Inverter 1750 is then operative to output as signal NMEMR on line 1760 to an OR
gate 2132.
The MEMW signal on line 2060 is received by in-verter 2127 for outputing a logical negation thereof des-: 30 ignated as signal NMEMW on line 2128 to jumper terminal set X9 2129. The jumper terminal set X9 2129 being used for "
. .

3 ~ hr ~

resp~ndincJ to a wr.ite opera-tion iE so desired,as explained in de-tail infra. The se-t X9 2129, once jumped, is allowed to flow onto line 2131 as signal NME~-l to OR ga-te 2132.
Line 2131 is biased by a resist,ive network 2133 identical to supra networX 1890, OR gate 2132 has inverted inpu-ts and will output as signal MEMR-~W on line 2134 upon alternative receipt of signals on lines 1760 or 2].31. Line 2134 from OR gate 2132 is operative to be oukputed to supra NAND gate 1770. It will be noted that the MMEMREAD-TS signal indicate.s that the data bus 50 of system bus 20 will be used or memory read data as indicated in the status bits. A NREADYEN-TS
signal on line 1780 is received by inverter 1790 from CPUM.
The NREADYEN-TS signal is used to indicate that the CPUM
knows that it has a valid memory or input data available on its data bus 50 at system bus 20. This a~orementioned signal is used to synchronize the CPU with slower memory or I/O de-vices .
If after sending an address out from the CPUM it ~: does not receive a ready input, the CPUM will enter a "wait"
state for as long as the ready line is low. Signal from inverter 1790 proceeds as signal READYEN on line 1800 to ~AND gate 1770. A PAGENABLE signal on line 1810 as inputed to inverter 1820 is received from CPUM. The PAGENABLE
signal is further described in the supra-referenced patent. A MEWEN-CP signal on line 1830 is received by an in-verter 1840 from the CPUM. The MEMEN-CP signal is also urther defined in the supra-referenced patent. In-verter 1840 outputs on line 1850 where it is commonly tied from output line 1860 of inverter 1820 to proceed commonly . 30 as line 1870 to NAND gate 1880. It will be noted that a resistive network 1890 biases line 1850 where said resistive ` ' ;3 $ 9 ~ ~3 netw~r~ is iden-tical to supra-described resistiv~ network 1250. It will be apprecia-ted that MEMW signal on line 1640 also inpu-ts to NAND gate 1770 and 18~0~ It will further be apprec.iated that signal PN on Line 1690 also inp~ts to l~AND
gate 1770. The PROGEN~RPM signal on line 1700 also inputs to NAND gate 1770 and NAND gate 1880. In addition, PAGENABLE
signal on line 1810 also is operative to input to NAND gates ~- 1770 and NAND gate 1650. NAND gate 1650 upon concurrent re-: ceipt of inputs will output on line 250 as signal NDBEN to the instruction tri-state driver 160. NAND gate 1770, upon concurrent receipt, will output as signal NRDYEN on line 1900 to tri-state driver 1910 having inverted inputs and outputs where said input 1920 is grounded and output signal therefr~.n designated as NREADY-TS on line 1930 will be sent back to CPUM as descr.ibed in supra-referenced patent.

NA~D gate 1880 upon concurrent receipt of signals will out-.~ put as signal ~ME~KILL on line 1940 where it will trifurcate to lines 1950, 1960 and 1970 to drivers 1980, 1990 and 2000 for outputing. Driver 1980 will output a signal ROME~-BP
on line 2010. Driver 1990 will output a signal RAMEN-BP

i 20 on line 2020 to the CPUM as also described further in ref-erenced supra patent. The driver 2000 will output a signal MENEN-BP on line 2030 to the CPUM as also described further in supra-referenced patent.
In regards to module 265B of ready control, as shown in Figures 1, 10, and lla, a ~MEM or MEMWRITE-TS sig-nal on line 2040 as received from CPUM, and as further des-. cribed in referenced supra patent, is inputed to in-~ verter 2050. Inverter 2050 bifurcatively outputs o~ lines 2060 and 2070 to the CPUM and to a ~A~D gate 2080. Line 2060 whose signal i$ designated as MEMW is further des-cribed in the supra- reE~renced application. NAND gate 2080 upon concurrent receipt of inp;lts will output as signal NADDMWR on line 2090 to inverter 2100. Line 2090 also bifur-cates off onto line 2110 to NAND gate 2120~ Inverter 2100 outpu-ts on line 2130 as signal ADDMWR to NA~D ga-te 2125.
The main instruction bus 50 fro~ khe Instruction Tri-state Driver 160 including i.nstruction or data signals designated as D0-TS - D6-TS is xeceived by jumper terminal set 2121 at points X2 - X8: the jumper terminal set 2121 being used for data byte s~lection during a diagnostic isol.ation test as explained in detail inEra. The set 2121, once jumpered, is commonly ter~inated at its output and on ( line 2122 as signal DX-TS which is received by grounded tri-state driver 2123. The groundad tri-state driver, in turn, outputs on line 2124 as signal DIO to a ~AND gate 2125.
NA~D gate 2125 is operative to output a signal NPROGDIS/S
on line 21~6 upon concurrent receipt of inputs of lines 2124 and 2130. NA~D gate 2120 also is operative to output a sig-nal ~PROGDIS/Sl on line 2150 to OR gate 2140 having inverted inputs. A NRESET signal on line 2160 is received from the ; 20 CPUM, as described in supra-referenced patent, for out- ~:
puting to an inverter 2170. Line 2160 has a grounded capa-citor 2180 for eliminating transients. Inverter 2170 bi-furcatedly outputs on lines 2180 and 2190 to NAND gate 2200 and NAND gate having inverted inputs 2210. The signals on .~
25 lines 2180 and 2190, as described supra, are designated as NRESET-l.
A resistive network 2220 idenkical to resistive network 1890 described supra provides a bi-input to NAND gate 2210 describea supra where said input is received on line 30 2230. NAND gate 2210 upon rec~iving concurrent inputs, will ... ;

output on line 2240 as signal NPROGDIS/S3 to OR gate 2140.
A PROGENARPM signal on line 1700 is received from a portion oE the ready controls 265B that will be described infra and herein is inputed to NAND gate 2200~ Upon concurrent receipts of inputs, NAND gate 2.200 will output a NLATCH
signal on line 2250 to inverter 2260. Inverter 2260 will output a LATCH signal on line 2:270 to N~D gate 2120. Upon alternative receipt of inputs, OR gate 2140 will output on line 2280 as signal PROGDISARPM/S to a D type flip-flop 2290 at its C input. A resistive network 2300 which is identical to resistive network 2220 outputs a biasing control signal on line 2310 designated PUl to each of the clear (CI,R) inputs of D type flip-flops 2290, 2320, 2330, and 2340. Biasing line 2310 also bifurcates to line 235Q to input to NA~D
gate 2360. NAND gate 2360 also receiv~es a signal on line 2370 designated ~PHl which is thenegation of the phase 1 synchronization clock signal received fxom the CPUM, as des-cribed in the supra-referenced application. NAND gate 2360 is operative to output a signal on line 2380 designated as PHl to the clock inputs (CK) of D type flip-flops 2290, 2220, 2330 and 2340.

Line 2380 is also biased by a resistive network 2390 having a pair of commonly terminated resistors, the - first being a grounded resistance of 1.07k ohms, and the second being a resistor of 213 ohms which is attached at its opposing end to a -~5 volts regulated d.c. voltage on line 270 from the bias regulator 260. D type flip-flop 2320 receives its clata input on line 2400 at terminal D which is grounded in this case. A data output signal designated as /DR:SPARE/on line 2410 is provided by flip-flop 2320 on terminal QD proceeds to the CPUM, as further described in the reEerenced supr~ application. A signal designated as NSYNC-TS on llne 2420, from the supra-referenced CPUM of the supra-referenced patent, proceeds to inverter 2430 where it is outputed on line 2440 as signal SYNC. The SYNC signal on line 2440 proceeds to the data input terminal designated as the A terminal of D type flip-flop 2340. It also bifurcates to the SR or shift-right terminal of the D
type flip-flop 2340. The data output signal of the D type flip-flop 2340 which is produced at terminal QA is outputed on line 2450, where the signal is designated as /DLISYNCD~, and then proceeds to NAND gate 2460. NAND gate 2460 upon concurrent recelpt of inputs will output on line 2470 where ~ ~ the signal is designated as NADDHERE and will proceed to the ~ data input terminal designated as the B terminal o~ D type flip-flop 2330. The data output terminal of D type flip-flop designated as QB will output on line 2480 where the signal is designated as ~ADDHEREDLT where it will proceed through inve.rter 2490. The logically inverted signal from 2490 will be produced on line 2500 where the signal is designated as ~ADD Æ REDLT to be introduced to the input of supra-mentioned N~ND gate 2080. Address signals AOO - A15 on subaddress bus 80 are received by ready control 265B for control thereof.
In particular, address signals AOO - A07 indicated as line group 2510 are inputed to NAND gate 2520. Address line A08 -A15 are inputed on line group 2530 to NAND gate 2540. It will be noted that NA~D gate 2540 has one inverted input cor-responding to address line All of group 2530. Upon con-current receipt of inputs, NAND gates 2520 and 2540 will out-; put on lines 2550 and 2560 as signals NLOWADDRH and ~UPAADR~I, respectively, to NAND gate 2570. It will be appreciated that ~AND gate 2570 has both of its inputs logically inver-. .

te~. upon ~he concurrent receipt o~ inputs, N~ND yate 2570 will output on line 2580 and NIDISADDRH to an inverter 2590. InvPrter 2590 will ou-tpu-t a logical indication there-of on line 2600 w~ere the signal is designated as DISADDRH
to supra NAND gate 2460.
It will be appreciated that implementation of the memory hierarchy described supra depends upon the decoding of addresses inputed to the first and second lev~l address recognition PROMS 750 and 920, respectively, of the Address Decoder 190 into operative control signals through logic gating. Particularly, if addresses A7 - A15 are decoded by PROM 760 outputs on both line 1130 as signal NBPROM and ; ~ line 1140 as signal NROM, then this implies address overlap or conflicting recognition by both Bulk PROM 170 and Contin-gency ROM 105A-B. Accordingly, to institute a predetermined hierarchal ordering as between Bulk PROM 170 and Contingency ROM 105A-B, ~AND gate 1170, upon being enabled by a Bulk PROM 170 signal, will output a disenabling signal on line 1195 to NA~D gate 1210. NAND gate 1210 will thus be disenabled from throughputing the Contingency ROM 105A-B inputed there-to. Thus where Bulk PROM 170 and Contingency ROM 105A~B
signals conflict, Bulk PROM 170 will prevail by disenabling Contingency ROM 105A-B.
I~ addresses A4-A15 are decoded Eirst by First ~; Level address Recognition PROMS 750 and then by PROM 870 of Second Level Address Recognition PROMS 920 such that a NPATCH si~nal on line 980 is outputed therefrom, -then a patch PROM 180 address has been recognized. Next, if a Contingency ROM 105A-B address has been recognized also, then NPATCH on line 980 will disable NAND gate 1210 in a manner identical to supra-described subrogation by bulk PROM 170. Accordingly, with Contingency ROM 105A-B dis~

abled, Patch PROM 180 eEfec-tively subrogates Contingency ROM 105A-B.
If Bulk PROM 170 and Patch PROM 180 control sig-nals are both present, then Patch PROM 180 will subrogate Bulk PROM 170 in the hierarcha]. ordering as follows. The normal strobe enabling control signal for Bulk PROM 170 is received on line 1200 by terminal 16 of Demultiplexer 1310 in the Bulk PROM 180. A N.PATCEI or Patch PROM signal may be received on line 1030 at the data input lC terminal of the same Demultiplexer 1310 which will act to disable the same if received. Once so disabled, the Patch PROM 180 will have effectively subrogated the Bulk PROM 170.
. ~ Contingency ROM 105A-B is able only to subrogate on-board ROM in the CPUM in the absence of both Bulk PROM
170 and Patch PROM 180. Subrogation by Contingency ROM
105A-B of on-board ROM in the CPUM is performed by receipt of a NROM signal on line 1140 by the CPUM. In the absence : of Patch PROM 180, Bulk PROM 170 on Contingency ROM 105A-B
control signals, then on-board ROM in the CPUM receives hierarchal priority by default.
.~ ~ 20 A. Hardware Operation: `
~ In regards to the memory hierarchy mentioned supra, the various memory categories including contingency ROM 105A-B, Bulk PROM 170, Patch PROM 180, and outboard ROM
that may be present in a memory system including memory lodged in ARM 10 and CPUM, respond to memory request accor-ding to the following hierarchal order as given in the infra table:

Module Type Precedence ARMS (10) PROM PATC~I (180) First - ARMS (10) sulk PROM (170) ARMS (10) Contingency ROM (105A-B) /
CPUM (~) On-Board ROM (not shown) L st For a given memory request, wh:ichever of the memory cate-gories of ARMS 10 or CPUM which is highest or first in the priorized order and which recognizes the given address on main address bus 30, will take precedence in responding over any other overlapping memory category that also recog-nizes the given address on main address bus 30~ However, this hierarchy is conditional on the ARMS 10 being in an enabled state to respond, that is, it is not disenabled by the page enable logic (PAGE~ABLE) on line 1810. When a dis-able function occurs~ entire ARMS 10 is effectively disabledfrom responding to memory requests on the system bus 20 and therefore may hierarchically default to enabled on-board ROM in the CPUM.
In regards to contingency ROM 105A-B, up to 64KB

of mask programmable MOS read-only memory is provided in the disclosed embodifflent. The contingency ROM 105B is able to permit proper increments of 2KB conforming to the 2Kx 8-bit organization of the device where there is normally ~ 2KB per given ROM chip. The contingency ROM 105A-B is de-: signed such that the addressing A00-A10 and chip select All -A13 bit patterns of the ROM chips 390A-H, 400A-H, 410A-H, and 420A-H are equivalent to the addressing and chip select bit patterns of the CPUM or on-board ROMS for respective address ranges; in other words, ROMS of the same address range may be fully transferable between the on-board ROMS of the CPUM.

; -33-Each physical ROM location may be associated with one unique 21CB range of address on a 2K boundary.
The address .recognitlon ranges of the contingency ROM 105A-s are settable to any 2Ks ranyes falling on any 2K boundary. It need not be contiguously assigned. System addressing far beyond 64KB may be accommodated by means of a paging technique. Page selection hardware (not shown), either hardware or software co.ntrolled, may be assumed to be external to the ARMS 10. The ARMS 10 may be able to re-ceive a signal from paging hardware (not shown) called PAGFNABLE on line 1810, which will enable/disenable all memory categories on the ARMS 10 from responding to any memory request. PAGENABLE on line 1810 may be an open col-lector signal with a provision for optionally connecting to a pull-up resistor (not shown). The PAGE~ABLE function may disenable all ARMS 10 memory categories including contin-gency ROM 105A-B, patch PROM 180, and bulk PROM 170 from responding to a memory re~uest on a system bus 20.
In regards to the patch PROM 180 of Figures 1 and 4, specific PROMS 760-770 and 870-880 are programmed to ; ( 20 provide address recognition logic, which specifies 16-byte : segments of memory to be patched, and other PROMS 1360A-B
are provided as data storage devices which contain the re-vised bit patterns for the patch memory segments. One of the address recognition PROM sets 760-770 is also used in the logic to specify effective address ranges for contin-gency ROM 105A-B and bulk PROM 170.
~wo levels of PROM address recognition 750 and 920 are employed as shown operatively in Figure 13. The ` first level address recognition PROMS 750 receives the 30 uppermost line bits (~7 - A15 of the 16-bit address on sub-~J~Bt~J~

address hus 80). This selects one unique location o~ the to-tal 512 PROM locations. The overall 64K memory space, therefore, is partitioned into 512 areas, each consisting o-f 128 bytes ~512 x 128 - 65,536). The two output signals KRU on line 220 and ~PHERE on line 205 from the first level PROM set 750 specify which 128-byte area of memory space is to be effective on the ARMS 10 for conkiguous ROM 105~-B
and Bulk PROM 170 utilization, respectively. It should be noted that the memory hierarchy discussed supra prevails in the event both contingency ROM 105A-B and Bulk PROM 170 are specified for the same 128-byte area. Restrictions as to the assignment of Bulk PROM 170 bits in the first level ( address recognition PROMS 750 apply and are discussed infra.
The remaining six output bits (ASEL0 - ASEL5) on line group 860 from the first-level address recognition PROM
pair set 750 are utilized by the second level address recog-nition PROM pair set 920. For each of the 512 locations o~
the first PROM pair set 750, these six bits (which form 64 unique combinations) are coded to point to one out of 64 groups of 8-bytes in a second level PROM pair set 920 (8 x 64 ~ 512). For each 128-byte memory area in which no patch segment is to occur in patch PROM 180, the six output bits on line group 860 of the corresponding first level PROM set 750 location will be coded to point to a group of eight bytes in the second level PROM set 920; this common group will be used in logic to indicate no patch ~PATCH PROM 180.
For each 128-byte memory area in which at least one patch segment in patch PROM 180 is to occur, the six output bits on line group 860 of the corresponding first level PROM set 750 location will be coded to point to a .. ~ - . :

s-o~ ~

unique ~roup of eight byt~s in the second le~el PROM pair set 920. Since -there are only 63 remaining groups, a maxi-mum of 63 of the original 512 128-byte memory areas may be specified to con-tain patches in patch PROM 180. That is, once a total of any random 63 128-byte areas of memory have been specified for patching in patch PROM 180, none of the remaining 449 128-byte areas of memory may be specified.
This insures that up to 63 patch segments may be specified randomly in the memory space, a patch segment and patch PROM
180 being on a 16-byte boundary.
Through additional address bits (A06 - A04) on subaddress bus 80 are inputed into the second level PROM
pair set 920 points to one of the eight bytes within the se-lected group. This byte corresponds to 16-byte segment of a specified 128-byte memory area (8 x 16 = 128). For each group, the 8 bytes (8 segment pointers) within the group ., .
are coded as follows: Bit position 0 indicates whether (=0) or not (-1) the corresponding 16-byte segment of memory is to be patches in patch memory 180; if it is to be patched, then 6 bits (6-1) select a unique 16 bytes of the data out of the data or patch PROMS 180. Otherwise, the six bits have no effect. Bit 7 is not used. The absolute maximum number of patches in patch PROM 180, therefore, is 64 but these are constrained to reside in the 63 areas of memory of patch PROM 180 specified by the level-l address recogni-25 tion PROM pair set 750, The patch PROM 180 is designed to permit the depopulation of PROM devices 1360A-D to the minimum number required depending on the numher of patches implemented thereto. -; A selected patch segment in patch PROM 180 will always consist of 16 bytes, and all 16 bytes will be coded .

.

, even if only one byte or one hi-t is to be altered by the patches thereto. Unaltered bits in the patch segment of patch PROM 180 must be coded identically to the correspon-ding bits in the original memory segments thereo.
In regards to Bulk PROM 170 o Figures 1 and 4, it is designed to permit physical population increments of 512 bytes o~ 2KB of electrical:Ly programmable read-only memory. As a total 512 128-byte areas of the 64KB memory space speciied by the level-l address recognition PROM
set 750, a maximum o 16 areas may be designated efective for Bulk PROM 170 (16 x 128 = 2KB). However, these desig-nated 16 areas may not be randomly chosen as in supra patch memory 180 and are subject to additional consideration as discussed infra. As operative shown in Figure 14, address bits A10 - A07 on subaddress bus 80 are inputs to not only the level-l address recognition PROM set 750, but also direct-ly into the Bulk PROM data storage 170. Therefore, only the five high-order address bits (A15 - All) on subaddress bus 80 are unique to the level-l PROM set 750 relative to BulX
PROM 170 address recognition in the address decoder 190.
The 32 combinations formed by these five high-order address bits on subaddress bus 80 effectively partition the memory space in Bulk PROM 170 into 32 unique groups of 2KB each.
Bulk PROM 180 may be assigned either by one of the two following methods. First, such that all 16 128-byte ranges of the Bulk PROM 170 effective addresses are entirely contained within one of the unique 32 groups of 2KB. Sec-ondly, and alternatively, such that the BulX PROM 170 128-byte ranges of respective addresses are scattered amongst more than one unique group of 2KB. Both of the supra cases are discussed infra, but only the former is used in the pre~

:: -37-,,,J~"a,~g1~s~
ferred er~odilllent.
If all 16 128-byte ranges oE Bulk PROM 170 are to be disignatecl within a s:ingle 2KB group out o-f -the 32 such groups, then: first, the NBPROM bits on line 1130 contained in the 16 locations of the level-l address recog-nition PROM set 750 corresponding to the 128-byte areas within the designated 2KB groups of addresses must be set to 0 (enable), or 1 (disenable). A]ll remaining NBPROM bits on line 1130 in the level-l of PROM set 750 must be set to 1 (disenable); secondly, within the 16 level-l locations, NBPROM bits on line 1130 will be assiyned by software in sets of four, each set associated with 512 bytes of Bulk PROM data storage 170 lying on a 512-byte boundary within the effective 2KB range. Thus, advantage may be taken of the physical population increments of the Bulk PROMS 170 ; 15 as follows:

Bulk PROM (170) Capacity PROM Device (1330A-H) Count 0.5KB ----------------~---------- 2 1.0KB ----------_________________ 4 1.5KB --------------------------- 6
2.0KB --------------------------- 8 Thirdly, Bulk PROM 170 assigned, as described supra, may be assigned mutually exclusive addresses with other memory or may overlay other memory according to the memory hierarchy by being mutually inclusive as dascribed above, but not both due to software constraint. The former or mutually exclusive case is recommended when Bulk PROM

- 170 is to provide extension memory in support o~ patch PROM 180. The latter or mutually inclusive case is recom-mended when Bulk PROM 170 is itself to act as a large patch.

~ d `~, g~

In an al-ternative embodiment, the 16 128-byte group o~
Bulk PROM 170 may be a~signed up to 16 di-Eferent 2KB groups out of a total 32 total such groups. The following res-trictions apply thereto:
First, the NBPROM bit on line 1130 in each of the up to 16 locations of the level-l address recognition PROM sets 750 corresponding to the 128-byte areas of memory to be des-ignated for Bulk PROM 170 must be set to 0 (enable). All remaining NsPROM bits on line 1130 in the level-l PROMS 750 must be set to 1 ~disenable); secondly, address bits ~10 -A07 on subaddress bus 80 must be a unique combination in each of the different 2KB groups designated for Bulk PROM
170. That is, once an A10 - A07 is assoiated with one 2KB
groups of addresses, it may never be used in another 2KB
group of addresses. This is due to the overlap of address 15 lines A10 - A07 on subaddress bus 80 with both the level-l recognition PROMS 170 and the Bulk PROM storage array 170;
thirdly, bulk PROM data storage PROMS 170 will be populated depending on the Bulk PROM 170 address assignments; and fourthly, Bul~ PROM 170 assigned as described above may be assigned mutually exclusive addresses with other memory categories or may overlay other memory categories o~ the ARMS 10 as described in the prime embodiment supra for mu-tually exclusive addressing. It will be noted that the ; contents of Bulk PROM 170 may be replaced by patch PROM 180 25 in 16-byte segments just as contingency ROM 105A-B may be.
In regards to diagnostic isolation, the general objective of the diagnostic isolation consideration on the ~RM$ 10 is to facilitate isolation to a failing board The fault detection mechanism is a software check sum technique requiring a small amount of program memory in on-board ROM
3`7~i~

o-f the CPuM Eor the check sum routine and associated values ~herefor. The giagnostic isola-tion s-trategy in-clusive of the ARMS 10 is as follows: first, ARMS 10 and on-board ROM of CPUM are both tested according to a complete memory page test via the infra steps. A given memory loca-tion enters the routine and is tested according to the total memory checls sum. If it passes the test, there are no faults; otherwise if it fails, the ARMS 10 is khen enabled.
Secondly, next only the on-board ROM in CPUM is tested by testing the unpatched, non-extended portion of the given page via the infra steps. The supra given memory location is tested according to the CPUM check sum. If it passes, the fault is in the ARMS 10; otherwise i it fails, the CPU~
is in a fault mode. The above strategy assumes the check sum routine resides in the CPUM ROM with the following two characteristics: first, it contains in the memory location the range of the addresses tested; and secondly, it also contains in memory a check value for comparison with a cal-culated value. These memory locations should contain values only for the check sum associated with on-board ROM in the CPUM. If patches 180 or Bulk PROM 170 exists, these same locations will be patched with new values reflecting the new range and check sum. By disenabling the ARMS 10, the check sum value in range which were patched were also dis-enabled and the check sum reduces to a CPUM test.
A diagnostic isolation strategy requires that programmatic conkrol over the ARMS 10 disenable function be provided. To accomplish this, the ARMS 10 will respond to a memory-write operation control signal on line 20~0 and in-struction signal whose address is X' F7FF' on subaddress bus 80, which is a location of a l-bit flag RAM memory on the CPUM. If it is desired that this bit and flag RAM not `::

i"3 ~e altered, then bit D7 of the data byte on the main in-struction bus 50 associated with the write instruction must be coded identically to its prior state.
A latch or D type flip-flop 2290 in the ARMS 10 will be set to a O (disenable) or 1 (enable) on line 1700 in correspondence to a value coded for an efEectlve bit position of the data byte on main instruction bus 50 asso-ciated with the write. The effective bit position may be selected on khe ARMS 10 jumper set 2121. The ef~ective bit selection capability allows the soEtware to individual~
ly enable/disenable each ARMS 10 in a multiple ARM system environment. The latch or D type flip-flop 2290 in each ,( ARMS 10 will individually be set to O (disenable) or 1 (enable) upon reset (po~er-on) on line 2160 depending on a on-board jumper in set 2121. The absence of the ~umper in set 2121 will cause the latch 2290 to come up in the dis-enabling (O) state; the presence oE the jumper 2121 will cause it (2290) to come up in the enabling (1) state. This plan provides Elexibility to assure that a master memory page is present in a system after power-on. It will be noted that the ARMS 10 will not drive NRA~Y-TS on line 1930 in res-ponse to the write command to address X' F7FF' on subaddress bus 80.
B. Software Operation:
; - The function of the soEtware support program 3005 for ARMS 10 is to provide a means oE generating the memory image Eiles explained inEra Eor the PROMS which pop-ulate the ARMS 10. Specifically, these files are used to generate the code requirements for: 1) the level-l decode PROM 750, 2) the level-2 decode PROMS 920, 3) the patch data PROMS 180, and 4) the Bulk PROMS 170 which have an add-ress range mutually exclusive from the original program.

.

~'.,~' ' , : ' ' ' ;

Bul~s PROMS 170 which corre~late the oriclinal program and all continyellcy ROMS 105~-B and on-boarcl ROMS generated by a linker program (not shown). The ARMS sof-tware support program 3005 is designed to generate a minimum number of decode and patch data PROMS 750, 920 and 180, as reEerred to in Figures 13 and 14, for decode level values~ The number of Bulk PROMS 170 is a function of the memory loca-tion file 3030 explained infra.
In regards to file descriptions, therefore, re-ferral to the patch files 3002 of Figure 15 gives a view of all the files used by the ARMS software support program 3005, Particùlarly, the ARMS soEtware support program 3005 has five input files. First, the memory image file 3000 is the program being patched. It is generated by the linker.

; Any Bulk PROMS 170 which overlay the original program must be in its file 3000. Secondly, the map file 3010 is the same file which is the same ile used in the linker RO~
which generates a memory image file 3000. The map file 3010 may be modified to expand memory ranges or to modify check sum parameters. If check sums are changed, the appropriate application program changes must also be made. Refer to Appendix A in Figure 22 for a description of the map ile 3010. Thirdly, a symbol table file 3030 is generated by the linker. This ile contains the addresses for all the Defines associated with the memory image file 3000. The patch file 3040 infra may reference the enables through the use of a Refer command in the source program. Fourthly, the memory location ile 3030 format is the same as the map ile 3010 format. This file 3030 is used to define the on-board in contingency ROM 105A-B and Bulk PROM 170 memory ranges. Columns 1-2, and 4-6 may contain the values des-:~

crib~cl. Particularly -for Columns 1--2, RM may be en-texed for continyency ROM 105A-B or sP for Bulk PROM 170. Like-wise, for Columns 4-6 Ass for con-tingency ROM 105A-B, INC
for inclusive (overlay) Bulk PROM 170 or EXC for exclusive (extended) Bulk PROM 170. The remaining columns contain the values as described for the map file 3010. Columns 8-11 are used to specify the starting address. The starting address must be on a 2K boundary. Colu~ms 13-16 are used to specify the ending address. For contingency ROM 105A-B, the ending address must be a multiple of 2K minus 1, for example, the number lFFF. For Bulk PROM 170, the ending address must be a multiple of 512 minus 1~ for e~ample lFF.
The address range for Bulk PROM 170 must not exceed 2K bytes.
Contingency ROM 105A-B and inclusive Bulk PROM 170 require that Columns 17-34 be blank. These columns narmally specify round, fill, and check sum parameters. However, since contingency ROM 105A-B and inclusive Bulk PROM 170 are processed by the linker, these values are covered by entries in the map file 3010. The round, fill, and check sum para-meters are entered for an exclusive Bulk PROM 170. There may be multiple contingency ROM 105A-B descriptors in the memory image file 3000. Each contingency ROM 105A-B des-criptor must contain a unique memory range. There may be no more than one Bulk PROM 170 descriptor in the memory ~ image file 3000. Column 23 (fill) for exclusive Bulk PROM
; 25 170 must specify fill character or IJ tno fill). M (no load) is not allowed. If there is no contingency ROM 105A-B and no Bulk PROM 170, the fill must be set to O or must be set to ~ULL.
The patch file 3040 is generated by an Intel 8080 cross assembler 3050. The input to the cross assembler * trade mark :

.

3050 is the collection of patches 3060 in source code con-figured as a single -Eile. Backward origins and the redef-initions of memory locations are allowed. The ARMS software support program 3005 will separa-te exclusive Bulk PROM 170 code and patch data PROM 180 code as defined by the sulk PROM 170 address base defined in a memory location file 3030.
The ARMS software support program 3005 has five output files described as follaws: first, the decode image file 3070 is a standard memory image file 3000 format.
Level-l decode 750 will appear as memory from 0-5111. Level-2 decode 920 will appear as memory from 512-1023. Said Eile is input to MICS 3080 for the generation of PROM tapes~
makefrom drawings, and PROM i.d. assignments; secondly, the Bulk PROM 170 memory image file 3090 is in standard memory image file 3000 format9 The addresses in the file are the ~, 15 true addresses as specified in the memory location file 3030.
This file is input to MICS 3100 for the generation of PROM
tapes, makefrom drawings, and PROM i.d. assignments; thirdly, the PROM or detached memory 180 image file 3110 is in stand-ard memory image file 3000 format. The patch data PROM 180 would be given addresses shown in Figure 18. This file is input to MICS 3120 0 for generation of PROM tapes, makefrom drawings, and PROM i.d. assignments; fou-thly, a memory image listing 3130 is in the same format as in the memory image listing tnot shown) produced by the linker~ The listing shows the contents of memory with all patches incorporated.
- Also, check sum data is summarized. Fifthly, a printer file 3140 contains the five listings in the order given infra: first level decode 3150, second level decode listing 3200, patch level decode listing 3240, patch PROM map, and ARMS summary xeport. The ~irst level decode listing 3150
-4~-is shown in FicJure 16. This lis-ting shows the address lines 3160, the NROM bit value 3170, the NBPROM bit value 3180, and the second level group number value 3190. The first level decode listing 3150 is in address line 3160 order.
The address line 3160 increases first within a column and second from column to column and third from page to page.
Values for address lines 3160 which point to all l's (NROM = 1, NBPROM = 1, second level group number equals 3F16) are not shown. The order o-f assignment of second level pointers 3190 in hexadecimal is 30-3E, 00-2F, ROM 3170 is the value of the NROM bit, referring to Figure 13, Bulk PROM 1080 is a value of NBPROM bit, and LVL2 GRP -~3190 is the value of bits 5-0 of the first level decode 3150 byte.
A second level decode listing 3200 is shown in Figure i7. A listing 3200 shows the address lines 210, 15 the second level group number 3220, and the patch PROM 16-byte address pointer 3230. This listing 3200 is ordered accordingly to the second level group number value 3220, first by column, and second by row. The patch PROM address 3230 represents bit 6-1 of a second level decode 3200 byte.
20 Bit 7 of a second level dacode 3200 byte is always I.
Second level of decode 3200 values are not shown when MPATCH
on line 980 tbit 0) e~uals 1. The order of assignment of patch PROM address 3230 values (bits 6-1) in hexadecimal is 38-3F, 20-37, 00-lF. In the second level group number 25 3220, X (x = 0-7), X represents which of the eight 16-byte patches occurred. Placement of 16-byte patches is shown ~ in reference to Figure 20.
- The patch image listing 3240 will treat the patch data as starting at 0 and continuing at 512-byte increments up to lK. Refer to Figure 18 for the listing format.

, , .

7 ~

Referring to FicJure 21, patch PROM map 3250 is a seven-column listing which reports the following data including storage patch 3260, objec-t patch 3270, object patch address 3280, PROM address 3290, 16-byte repeat 3200, byte repeat 3310, and check sum. It will be noted first that source patch 3260 is a count of the patches in the source patch file 3060. The counter is incremented for every occurrence of an assembler 3050 of the Origin state-ment which changes the value of the location counter. This number will appear in assembly listing if patch: is set to 1 at the start of the patch code. Secondly, object patch ~; number 3270 is a count of the distinct 16-byte patches en~
countered~ A repeat of a prior 16-byte address will show the prior count. Thirdly, patch address 3280 is the hexa-decimal starting address (XXX0) of the 16-byte segment b~ing patched. Fourthly, PROM address 290 is the hexadeci-mal address (0-2K) in the patch data PROM 180 where the 16-byte patch is placed. Fifthly, chec~ sum (CHK SUM) will print an asterisk if the PROM address 3290 has a new check sum value. Sixthly, 16-byte repeat 3300, if the 16-byte segment reoccurs in the patch file 3240, the highest value of patch 3260 is shown. As an example, suppose that there are 35 patches contained in patch data PROMS 180. A sub-sequent run of the patch program will increase this to 40 patches. If among the first 32 patches (32 MAX for 2 PROMS) none~ had a 16-byte repeat 3300 value greater than 32, then the first two data patch PROMS 180 did not change, and need not be reblown. However, if there is now a 16-byte repeat 3300 value of say 38 then data in the first two patch PROMS
180 has changed. If there has not been any reoccurrence of the 16-byte segment, this entry will be blank.
; 30 Seventh, byte repeat 3310 indicates that at least one byte in the 16-byte segment has been patched more than :

once~ This is indicated by an entry astexisk (*). Other-wise, entry will con-tain blanks. rrhis Eield 3310 differs from the 16-byte repeat 3300 in that, for example, a patch for location 9, and then later to location 12 would have a patch number for 16-byte repeat 3300, and the blank for byte-repeat 3310. Naturally, an asterisk (*) in byte-repeat 3310 would always have a patch number in 16-byte repeat 3300 (though not necessarily a corresponding patch ~). The byke-repeat 3310 is a reminder to the user that the same location has been patched more than once. The ARMS summary report 3320 is shown in Figure 19. A report 3320 shows the re~uired number of decode PROMS 750 and 920, Bulk PROM 170, and patch data PROMS 180, and the contingency ROM 105A-B for ARMS 10.
The report 3320 also shows the space available for subsequent patches.
In addition, there is an input/output work file 3330 which is used to contain 3KB segments of the input memory image file 3000.
In regards to Bulk PROM 170 conskraints, Bulk PROM 170 must start on a 2KB boundary and occurs in 512-byte segmen-ts up to a maximum of 2KB contiguous bytes.
Level-l bulk PROM decode 750 values are determined strictly by the memory location file 3030. Code placement in bulk PROM 170 is determined by the code according to location counter values. Bulk PROM 170 address base must either be entirely within the current address memory base as de-fined by the map file 3010, or must be entirely outside the ; current address base. Exclusive Bulk PROM 170 code (outside the address base) must be entered through the patch file 3040, Inclusive, Bulk PROM 170 code (inside the address base) must be incorporated in a memory image file 3000.

In reyards to the patch PROM 180 constraints, a maximum of 63 oE 512 12~-byte areas may contain patches.
A ma~imum oE 6~ 16-byte seyments may cont~in patches. Any 16-byte patch segmen-t that is partially filled with patch code will be filled in by existing code. If there is no existing code (unfilled specified in the linker), "ones"
will be filled in. Patch file memory 3040 addresses, rounded to the top of a 16-byte segment, must be covered by a map file 3010 entry. ~'he order of patch co~e in the patch file 3040 determines the placement of data in the patch data PROM 180, as seen in Figure 19. After 32 dis-tinct segments of 16-byte patches have been processed, subse~uent extensions to the patch file 30~0 will not change the pattern generated for the first 32 patches. This assumes that the extensions do not address any of the original 32 15 16-byte segmants. It is advised that, in general, new patch code be placed at the end of the patch file 3040. Unused areas of a partially filled patch data PROM 180 are filled with l's.
The PROM population may be defined in terms of level-l and level-2 decode PROMS 750 and 920, and patch and bulk PROMS 180 and 170, respectively, as described infra.
In regards to level-l decode 750 for PROMS 170 and/or 180 population, if there is no Bulk PROM 170, no contingency ROM 105A-B, in less than 16 128-byte areas, have patches, level-l decode 750 will require one PROM. Otherwise, level-decode 7 50 will require two PROMS. In regards to level-2 decode 920 for PROM 180, patch PROM 180 population, level-2 decode, line 20, requires one PROM when there are 1-8 patches, and t:wo PROMS when there are more than eight patches.

In regards to patch data PROMS 180 for PROM population, two patch data PROMS 180 are required for every 32 distinct 16-byte segments patched. In regards to Bulk PROM 170 for PROM
population, two b .~ ~
Bul~ PROM~ 17V are required Eor every 512 bytes of bulk data patcll~s. ~lowever, the number oE Bulk PROMS 170 gen- ~ ;
erated is the func-tion of the address space defined in khe memory location file 3030.
Examples of single byte insertion, single byte overlay, multiple patches, exclusive BUlk PROM 170 and in-clusive Bulk PROM 170 are as follows where all addresses are in hexadecimal form. For single byte insertion, assume the current program goes from 0-3FFF. Currently at loca-tion 2CO the following code exists.

2CO--------------I~X-~ -------B
2Cl---------------MVI----~ ---A,127 2C3 -~ ---CALL--------------LBLl 2C6---~ DCX---------------D

If one supposes that a MOV H,A instruction is to be inserted between the INX and MVI instruction, the patch code would be as follows.

ORIGIN------------2Cl 2Cl--------------JM2---------------4000 4000---~ ------MOV----~----------H,A

4001-------------MNI---------------A,127 The above sequence would generate two patches, 2CO-CF and 4000-4000F. Additional patches may be generated for modi-fied check sums. The map file 3010 must be expanded from 3FFF to at least 4008 to include the patch base. The memory location file 3030 is not required. If I.BLl had been Defined in the original source program, it could have been referenced in the patch program if the patch program con-tained a statement Refer LBLl.
_49_ ~ ~ J~7~ ~

For single byte overlay, and exempllry location 3A5, a DB 5 shou:lcl be a BB 6. Accordingly, the patch code would be as fol:Lows.

ORIGIN~ 3A5 3A5-------~------DB-----------6 This sequence generate~ one patch 3A0-3AF. Patches for modified check sums may also be generated. In a given example, the map file 3010 would not need to be modified and in memor~
location file 3030 would not be used.
For multiple.patches, multiple patches would con-sist of a concatenation of the separate pa~ches~ ~xemplar-arily, if both cases A and B are desired then the patch file 3040 would be as follows.
ORIGIN~ --2Cl 2Cl------ - JMP 4000 4000--------------------MOV ----------------H, A
`:i 4001-------------MVI----------A,127 ~ 20 4006-------------JMP----------2C6 ( ORIGIN-------3A5 For exclusive Bulk PROM 170 given the following code:

20E--------------MoV----------A,M

211--------------JZ-----------LBLl ? ~

If we suppose a 516 byte inser-tion as required between the MOV and INR instructions, the apparent patch code would be as follows:

ORIGIN~ -------20F

6052-- J~ XXXX

Two PROM patches would be generated, 200-200F, and 210-21F.
57 bytes of Bulk Prom would be used. The map file 3010 would not change. The memory location file 3030 would indi-cate exclusive bulk PROM 170 from 600 to 61FF. Modified check sums might generate additional patches. It will be assumed that one check sum change and no otiher patches would be the case, where this sequence would require seven PROMS (2 level 1 ~ 1 level 2 ~ 2 PROM ~2 bulk). An improved patch sequence would be:
: t 20D---~ -JMP---------------6000 ORIGIN-----~ 6000 6001--------MOV---------------A, M
; 6002 ; 6052--------INR---------------B
6053----~ JMP---------------210 . ~

~ ' .: . .

3 7 ~ ~

Th:is sequence woul.d generate one less PROM patch Eor patch PROM 180 The generated PROM patch would be from 200-20E'v The area ~rom 210-21E would not be patched. It would also use less bulk data PROM 170 (55 bytes). Assuming one check sum change, this sequence ~ould also require seven PROMS. A third approach would be to treat location 1600-6055 a PROM data patches. Then there would be six additional PROM patches, 6000-605F. If this is the only patch then there would be no bulk PROM 170. I~ only one check sum is modi~ied there would be only one level 1 decode P~OM 750 and one level-2 decode PROM 920. There would be two patch ` PROMS. In total there would be four PROMS. Subsequent patch : ( runs could move the 6000-605F area to Bulk PROM 170.
; For inclusive Bulk PROM 170, it will be supposed that the current program range is 0-3FFF and that locations 15 1000-1081 are to be modified. The modifications would be made to the original source file 3060. If this were to be : the only change, the patch program would have a null patch file 3040. The memory location ~ile 3030 would specify in-clusive Bulk PROM 170 from 1000-llFF. ~evel-l decode PROM
20 750 would be generated. There would be no patch PROMS 180 (check sum changes would have occurred in the lin~er run) or Bulk PROM 170 generated. The Bulk PROM 170 memory image ~ile 3000 would have been generated by the linker.
If the check sum locations and attributes in the : 25 map file 3010 in the memory location file 3030 matches the check sum locations and attributes in the map file 3010 used in the linker run, then the ARMS software support program 3005 will automatically generate patches for modi~ied check sum values. If the check sum locations or their attributes have changed, the~ARMS software support program 3005 will genera-te the new check sum values, but will not modify the old check sum values.
From the Eoreyoing description of a specific system illustrating the fundamental features of the invention, it will now be apparent to those skilled in the art that the invention may be constructed in a variety of forms without departing from the true spirit and scope thereof. Accordingly, it is to be understood that the illustrated s~stem disclosed herein is a preferred embodiment of the invention and that the invention is not to be limited thareby, but only by the appended claims.

' : ¢
.

.~ .

Claims (14)

WHAT IS CLAIMED IS:
1. A contingency ROM storage module operatively coupled through a system bus to a CPUM having on-board ROM for permanent data storage of instruction code in excess of or in lieu of code in the on-board ROM comprising: a) Address Buffer means operative to receive addresses on the system bus from the CPUM for signal driving and correcting biasing therefor for correlative matching of signal levels; b) Permanent ROM storage means having addressing ranges that are transferably equivalent to ROM on board the CPUM and operative to receive driven address signals from said Address Buffer means for accessing instruction data sets mask stored therein in a plurality of partitions for trans-mittal on the system bus; and c) Instruction multiplexer means operative to receive instruction data from more than one partition of said permanent ROM storage means for selection of an instruction data set from one of the presented partitions according to a predetermined code of addresses received on the system bus from the CPUM for transmittal through the system bus to the CPUM.
2. The contingency ROM storage module of claim 1 wherein said address buffer means comprises a plurality of gating means operative to receive each of the addresses separately on the system bus for the driving thereof, and a plurality of resistive means operative to receive each of the driven addresses separately for biasing thereof.
3. The contingency ROM storage module of claim 2 wherein each of said plurality of gating means is a positive logic and gating having commonly tied inputs.
4. The contingency ROM storage module of claim 2 wherein each of said plurality of resistive means is a resistive element having a controlled potential dropped across thereof.
5. The contingency ROM storage module of claim 1 wherein said permanent ROM storage means comprises a quad of memory block means operative to receive the driven address signals for service as the memory partitions for use maxi-mization of the limited input/output parts into the system bus for outputting a unique set of instruction data from each of said quad of memory block means.
6. The contingency ROM storage module of claim 5 wherein each of said quad of memory block means of said permanent ROM storage means include a plurality of mask programmable read-only-memory means each operative to receive a first portion of the driven addresses on the system bus at its addressing inputs and a second portion of the driven addresses or the system bus at its chip select inputs for unitary enabling thereof at any given time as accesses of instruction data onto the system bus.
7. The contingency ROM storage module of claim 5 wherein said instruction multiplexer means further includes a plurality of resistive means operative to receive each of the accessed instruction data separately on the system bus from said quad of memory block means for biasing thereof.
8. The contingency ROM storage module of claim 7 wherein each of said plurality of resistive means is a resistive element having a controlled potential dropped across thereof.
9. The contingency ROM storage module of claim 5 wherein said instruction multiplexer means further includes a pair of multiplexer block means each operative to receive a unique duality of accessed instruction data sets from said quad of memory block means for selective routing of one of the duality of accessed instruction data sets therethrough.
10. The contingency ROM storage module of claim 9 wherein each of said pair of multiplexer block means further includes a pair of multiplexer means each operative to receive one part of each of the unique duality of accessed instruction data sets for alternative selection and strobed through-putting according to a subset of the driver address signals.
11. The contingency ROM storage module of claim 1 further including address tri-state driver means operative to receive address signals in the system bus from the CPUM for output in a tri-state mode as driven signals for receipt by said address buffer means.
12. The contingency ROM storage module of claim 11 wherein said address tri-state driver means is operative to have its control line grounded for continuous operation thereof.
13. The contingency ROM storage module of claim 1 further including instruction tri-state driver means operative to receive an instruction data set from said instruction multi-plexer means for output in a tri-state mode as biased driven signals on the system bus to the CPUM.
14. The contingency ROM storage module of claim 13 wherein said instruction tri-state driver means is operative to have its control line enabled by receipt of a memory read signal on the system from the CPUM for enabled operation thereof.
CA359,372A 1977-03-24 1980-08-29 Auxiliary rom memory system Expired CA1108769A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA359,372A CA1108769A (en) 1977-03-24 1980-08-29 Auxiliary rom memory system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US780,875 1977-03-24
US05/780,875 US4141068A (en) 1977-03-24 1977-03-24 Auxiliary ROM memory system
CA297,329A CA1100646A (en) 1977-03-24 1978-02-20 Auxiliary rom memory system
CA359,372A CA1108769A (en) 1977-03-24 1980-08-29 Auxiliary rom memory system

Publications (1)

Publication Number Publication Date
CA1108769A true CA1108769A (en) 1981-09-08

Family

ID=27165509

Family Applications (1)

Application Number Title Priority Date Filing Date
CA359,372A Expired CA1108769A (en) 1977-03-24 1980-08-29 Auxiliary rom memory system

Country Status (1)

Country Link
CA (1) CA1108769A (en)

Similar Documents

Publication Publication Date Title
US4141068A (en) Auxiliary ROM memory system
JP2633458B2 (en) DMA channel device and DMA channel conversion device
US4694394A (en) Microprocessor system having a multiplexed address/data bus which communicates with a plurality of memory and input/output devices including TTL output gates
EP0818731B1 (en) Memory board, memory access method and memory access device
US4340932A (en) Dual mapping memory expansion unit
JP2000105725A (en) Chip enable signal generating circuit, and memory device
JP2762138B2 (en) Memory control unit
US5280599A (en) Computer system with memory expansion function and expansion memory setting method
US4318175A (en) Addressing means for random access memory system
KR920006615B1 (en) Method and apparatus having both the direct mapping and bank mapping schemes
CA1108769A (en) Auxiliary rom memory system
EP0057815B1 (en) Page addressing mechanism and method for using the same
US5751998A (en) Memory accessing system with portions of memory being selectively write protectable and relocatable based on predefined register bits and memory selection RAM outputs
EP0105755A2 (en) Selective accessing in data processing systems
CA1108770A (en) Auxiliary rom memory system
CA1108768A (en) Auxiliary rom memory system
CA1108771A (en) Auxiliary rom memory system
JP3060812B2 (en) Information processing device
US5530818A (en) Semiconductor integrated circuit device for optionally selecting the correspondence between a chip-select signal and address space
EP0619546A1 (en) Programmable memory controller and method for configuring same
JPS60205644A (en) Memory address extension system
JPS6232516B2 (en)
KR930005770B1 (en) Printer emulator having korean editing function
KR950001929B1 (en) Interrepeat control device and its method of multi-stage tx/rx data
JPH04115337A (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
MKEX Expiry