Digital PDFs
Documents
Guest
Register
Log In
AA-H306B-TE
March 1982
170 pages
Original
5.0MB
view
download
Document:
VAX-11/780 Microprogramming Tools User''s Guide
Order Number:
AA-H306B-TE
Revision:
000
Pages:
170
Original Filename:
OCR Text
VAX-11/780 Microprogramming Tools User's Guide Order No. AA-H306B-TE March 1982 Digital Equipment Corporation. Maynard, Massachusetts First Printing, June 1979 Second Printing, March 1982 The information in this dc:>cument is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Di9 ital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may by used 01~ copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies. Copyright © 1982 by Digital Equipment Corporation. All Rights Reserved. Printed in U.S.A. The postpaid READER'S COMMENTS form on the last document requests the user's critical evaluation preparing future documentation. page of this to assist in The following are trademarks of Digital Equipment Corporation: DEC DEC US DIGITAL PDP UNIBUS VAX DECnet DECsystem-10 DECSYSTEM-20 DECwriter DIBOL EduSystem IAS MASSBUS PDT RSTS RSX VMS VT DIGITAL Logo ZKDSR TABLE OF CONTENTS CHAPTER 1 INTRODUCTION CHAPTER 2 ASSEMBLING YOUR MICROPROGRAM 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.s 2.1.6 2.1.1 2.· 2 2.2.1 2.2.2 2.2.3 2.2.3.1 2.2.3.2 2.2.3.3 2.2.4 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.S 2.3.6 2.4 2.4.l 2.5 2.5.1 2.6 2.6.l 2.7 2.8 2.9 2.9.1 2.9.2 2.9.2.1 2.9.2.2 2.9.2.3 2.9.2.4 2.9.2.5 2.10 2.10.1 2.10.2 PROGRAM STRUCTURE • • • • • • • • • • The Bit Numbering • • • • • ••••• The Program Radix • • • • Memories. • • • • • • • • • • •• The Program Title • • •• The Table of Contents • • • • Listing Pagination • • • • • • • • • • • Comments. • • • • • • • • • • • • • • FIELD DEFINITIONS • • • • • • • • • • Names • • • • • • • • • • • • • • • • • • Field Position • • • • • • • • • • • • • Qualifiers • • • • • • • • • • • • • • • • The .DEFAULT Qualifier • • • • • • The .ADDRESS and .NEXTADDRESS Qualifiers • ~ • • • • • • • • • The .VALIDITY Qualifier Value Definitions • • • • • • • • • • • • EXPRESSIONS • • • • • • • • Numbers • • • • • • • • • • • • • • • Expression-Names • • • • • • • • • • • • Function Calls • • • • • • • • • • • • • Value-names • • • • • • • • ••••• Field Contents Indicators • • • • Predefined Symbol Names • • • • • • • MACROS • • • • • • • • • • • • • • • • • • • The Macro-Name • • • • • • • • • • • • • THE MACRO-BODY. • • • • ••••••••• Parameters • • • • • • • • • • • • • • MICROINSTRUCTIONS • • • • • • • • • • • • • • Continuing a Microinstruction •• THE MICROWORD • • • • • • • • • • • • • • • • THE ADDRESS SPACE • • • • • • • • • • • • • • SPECIFYING THE METHOD OF ALLOCATION • • • • • Sequential Allocation • • • • • • Random Allocation • • • • • • • • • • • • Constraints • • • • • • • • • • • • • Indicating a bit that can be 0 or l • The size of the address set • • • • • Constraints within constraints • • • • Terminating a constraint • • • COMMUNICATION • • • • • • • • • • • • • • Memory Communication • • • • • • • • • • • Program Communication • • • • • • • • • • ... 2-1 2-2 2-2 2-2 2-3 2-3 2-3 2-4 2-4 2-4 2-5 2-5 2-5 2-5 2-6 2-6 2-7 2-7 2-7 2-8 2-9 2-9 2-9 2-9 2-9 2-10 2-10 2-10 2-11 2-11 2-11 2-11 2-12 2-12 2-12 2-13 2-13 2-13 2-13 2-13 2-13 2-14 2.11 2.11.1 2.11.2 2.12 2.13 2.13.1 2.14 2.15 CHAPTER 3 3.1 3.1.1 3.1.2 3.1.3 3.1. 4 3.1.5 3.2 3.2.l 3.2.2 3.3 3.4 3.4.1 3.4.2 3.5 CHAPTER 4 4.1 4.1.1 4.1.2 4.1.3 CONDITIONAL ASSEMBLY. • • • • • • • • The Conditional Assembly Keywords Conditional ·Assembly Blocks • • • SETTING AND CHANGING EXPRESSION-NAMES LIST CONTROLS • • • • • • • • • • • • The List Control Counters • • • • THE VAX 11/780 DEFINITION LANGUAGE. • USER INTERFACE. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 2-14 2-14 2-15 2-15 2-15 2-16 2-16 2-16 FUNCTIONS • • • • • • • • • • • • verifying the Installation of the Extended WCS Board • • • • • • • • • • Initializing the Extended WCS • • • • Setting the Starting Address • • • • • Loading the Microprogram • • • • • • • • • Logging the WCS Load • • • • • • • • • VERIFYING THAT THE LOADING WAS SUCCESSFUL Using the Sample Program. • • • ••• Sequencing with the Debugger. • • • • • • USER INTERFACE. • • • • • • • • • • • • • PROGRAM BEHAVIOR. • • • • • • • • • • • • • • VAX 11/780 WCS Architecture Description • VMS Operating System Support. • ••• ERROR MESSAGES • • • • • ~ • • • • • • • • • • 3-1 LOADING A MICROPROGRAM EXECUTING A MICROPROGRAM . . . . . . . . . . 4-1 4-2 EXTENDED FUNCTION CALL. • Exceptions • • • • • • • • • • • • • • • • Setting the System Control Block Vector • Patching the Entry vector • • • • • • • • APPENDIX A VAX 11/780 FIELD AND MACRO DEFINITIONS APPENDIX B SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 B.l B.2 B.3 APPENDIX C c.1 c.2 C.3 APPENDIX D 3-1 3-2 3-2 3-3 3-3 3-4 3-4 3-4 3-5 3-7 3-7 3-9 3-10 THE INPUT FILE (.MIC) • • • ••••••• THE LISTING FILE (.MCR) • • • • • • • • • • • THE OBJECT FILE (.ULD). • • • • • • • • • 4-2 4-2 B-2 B-5 B-34 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 THE INPUT FILE (.MIC) • • •••••• THE LISTING FILE (.MCR) • • • • • • • • • • • THE OBJECT FI LE (. ULD) • • • • • • • • • • • • THE TEST PROGRAM C-2 C-5 C-34 PREFACE Manual Objectives This manual describes the use of the tools available for the VAX 11/780 WCS user. The appendices contain the VAX 11/780 Definition Language, and a sample program expressed in this language. Intended Audience This manual is intended for assembly language programmers and hardware engineers. The reader is assumed to be familiar with microprogramming and the characteristics of the VAX CPU architecture. Structure of this Document This manual describes the executing a microprogram. process of assembling, loading, and Associated Documents Information document: on the MICR02 assembler is given in the following in the following in the following MICR02 User's Guide/Reference Manual (AA-H531A-TE) Information on the VAX 11/780 Data Path document: is given VAX 11/780 Data Path Description (AA-H307A-TE) Information on the VAX 11/780 document: software is given VAX 11/780 Software Handbook The VAX/VMS command language and following document: environment are described VAX/VMS Command Language User's Guide (AA-D023A-TE) The text editing capability is described in: VAX-11 Text Editing Reference Manual (AA-D029A-TE) in the Information on the VAX 11/780 documents: Hardware is given in the following VAX 11/780 Hardware Handbook VAX 11/780 Architecture Handbook Conventions Used in this Document The conventions used in this document are the same as those· used in the VAX/VMS Command Language User's Guide (AA-D023A-TE). CHAPTER 1 INTRODUCTION The VAX-11/780 Extended Writable Control Store consists of 2048 words occupying addresses 1800 through lFFF, 1024 words occupying addresses 1C00 through lFFF when G&H is present. Each word contains 96 bits plus three parity bits. user microprograms that enhance a machine for specific applications execute in the Extended WCS. The process of writing, loading, and executing microprograms is diagrammed below. SOURCE \ +------------ CORRECTIONS I \ I +---------+ \ \I/ \I/ ----> +------------+ I EDITOR I +------------+ I SOURCE FILE (.MIC) ----+ I \I/ +------------+ I I I I MICR02 1----> LISTING FILE (.MCR) I +------------+ I OBJECT FILE (.ULD) I \II +------------+ ---> +-------------------+ I I MICLD I I I I I I --->I I --1 I I I I I<I +------------+ +------------+ INVOKING PROGRAM XFC EXTENDED wcs I I I I +-------------------+ I I I I I I I I +------------+ +-------------------+ Figure 1-1 INTRODUCTION Page 1-2 The first step in microprogramming the WCS is the creation of the microprogram. To do this, you write the microprogram in MICR02 source language and create a source file (.MIC). Then, you assemble the microprogram to create a listing file (.MCR) and an object file (.ULD). MICR02 detects as many errors as possible in the source microprogram. You correct the errors and reassemble until you are satisfied with the resulting microprogram. When you are ready to test the microprogram, you load it into the WCS using the microprogram loader, MICLD. You can then transfer to the microprogram by executing an XFC instruction in a main memory program. This manual describes assembling, loading, and executing a microprogram for the VAX 11/780 WCS. Some information on debugging a microprogram can be found in Appendixes C and D of the VAX 11/780 Data Path Description (AA-H307A-TE). A macro language for microprogramming the VAX 11/780 is given in Appendix A. This language, called the VAX 11/780 Predefinition language, defines the fields of the microword and a set of macros for performing the logical functions associated with microprogramming the VAX 11/780. A VAX 11/780 microprogram written in this definition language is given in Appendix B. CHAPTER 2 ASSEMBLING YOUR MICROPROGRAM MICR02 is a general purpose tool, written in BLISS, that executes under user control in the VAX/VMS environment. The MICR02 language lets you express the actions of a microprogram symbolically. The MICR02 assembler translates a microprogram written in its source language to the bit representation that is loaded into the Extended wcs. In doing this, it performs syntactic checks on the program and issues messages if the source microprogram is not valid. Further, MICR02 allocates any microwords that you do not specifically allocate. You can allocate a microword absolutely, specify a constraint on its allocation (such as the two lowest order bits of the address must be zero), or leave the allocation to MICR02. The following sections provide a quick reference to the MICR02 language and its use. A complete description of the MICR02 assembler is given in a separate document: MICR02 User's Guide/Reference Manual (AA-H531A-TE) The MICR02 User's Guide/Reference Manual is a tutorial, which contains many examples of the use of the MICR02 language. 2.1 PROGRAM STRUCTURE The MICR02 assembler is a line-oriented processor, which accepts a sequence of input lines written in MICR02 source language and produces a listing file and an object module. The input to MICR02 is a source program. A MICR02 source program can contain one or more memories. The bit-numbering direction and the program radix apply to the entire program. Page 2-2 ASSEMBLING YOUR MICROPROGRAM 2.1.1 The Bit Numbering The .LTOR and .RTOL keywords define the way in which the bits of a microword are numbered, so that MICR02 knows whether to count from the left end or the right end of the word to locate a bit position. The form of the bit-numbering keyword-line is the keyword itself, namely: • LTOR .RTOL The .LTOR keyword directs MICR02 to consider the bits of the microword numbered from left to right. The .RTOL keyword directs MICR02 to consider the bits numbered from right to left. If no bit-numbering keyword is given, then .LTOR is assumed. MICR02 uses the first .LTOR or .RTOL keyword it finds to establish the direction in which the bits are numbered and ignores any subsequent bit-numbering keywords in the program. 2.1.2 The Program Radix The program radix is set by either the .OCTAL or .HEXADECIMAL keywords. The form of the .OCTAL and .HEXADECIMAL keyword-line is simply the keyword itself, as follows: .OCTAL .HEXADECIMAL MICR02 uses the first program radix keyword it find subsequent program radix keywords in the program. 2.1.3 and ignores any Memories A program can include data for as many as 26 memories. Except for the bi~-numbering convention and program radix, which can be specified only once in a program, all other constru~ts are considered to belong to a memory. Each memory has its own address-space, word-width, field- and macro-definitions, and microinstructions. The beginning of a section of the memory is keyword. The memory-indicator memory-indicator follows: specified by keywords are a as ASSEMBLING YOUR MICROPROGRAM Page 2-3 .xCODE where x is any one of the letters in the alphabet ex. • UCODE .ACODE The identification, definitions, and instructions following that memory-indicator and up to the end of the program or another memory-indicator are associated with the specified memory. 2.1.4 The Program Title The .TITLE keyword-line supplies a title for MICR02 to use as part of the heading of the output listing. MICR02 reproduces the quoted string following the .TITLE keyword as part of the first line of the output listing. The .TITLE keyword-line has the following form: .TITLE "title-string" 2.1.5 The Table of Contents The .TOC keyword-line supplies a subtitle and adds an entry to the table of contents. MICR02 reproduces the text given in quotes following the .TOC keyword as part of the second line of the page heading of the output listing. The .TOC keyword-line has the following form: .TOC "text-string" 2.1.6 Listing Pagination The .PAGE keyword-line indicates a new listing page provides a table of contents entry and a subtitle. and, To simply indicate a new page for the output listing, .PAGE keyword without any text string, as follows: optionally, include the .PAGE To start a new page, add a subtitle, and make an entry in the table of contents, add a text string to the .PAGE keyword-line, as follows: .PAGE "text-string" ASSEMBLING YOUR MICROPROGRAM 2.1.7 Comments Comments can be included anywh•~re in the program. A with a ";" character and ends at the end of the line. 2.2 Page 2-4 comment begins FIELD DEFINITIONS A field-definition consists of a name followed by the separator '/=' followed by the position of the bits within the word to be associated with the field name followed by a list of one or more qualifiers. The form is: field-name /= < left-bit:right-bit > { , qualifier A single bit field can be expressed by including only within the angle brackets. Qualifiers can be omitted. 2.2.l } the left-bit Names A field-name can be any valid MICR02 name. MICR02 allows a name to be made up of characters from the following set: A B c a b c 0 1 2 # & ( ) < > * + ? ••• z z ... 9 Upper case letters Lower case letters Numbers Exclamation mark Hash mark Ampersc:lnd Left pcl renthesi s Right parenthesis Left angl~ bracket Right angle bracket Asterisk plus slgn minus sign period question mark Underscore Space c:ind tab ASSEMBLING YOUR MICROPROGRAM 2.2.2 Page 2-5 Field Position The left-bit and right-bit are decimal numbers that identify the beginning and end bits of the field in the microword. If you specified right-to-left bit numbering, then the left-bit must be greater than or equal to the right-bit. If you specified left-to-right bit numbering, then the left-bit must be less than or equal to the right-bit. 2.2.3 Qualifiers Qualifiers are used to the field as one that used for a parity bit, the condition of other establish a default for a field, to identify can contain a label, to designate a field to be and to associate the setting of a field with fields within the microword. 2.2.3.1 The .DEFAULT Qualifier - The .DEFAULT qualifier specifies a value that MICR02 can use for a field when the field is not explicity set. The form is: .DEFAULT = expression In forming a microword, MICR02 begins with a word consisting of all zeroes, sets the fields explicitly set in the microinstruction, and then applies defaults. MICR02 uses a default for a field if and only if no bit of the field is set explicitly. In applying defaults, MICR02 uses the order specified in the microprogram • in which the fields are requires 2.2.3.2 The • ADDRESS and .NEXTADDRESS Qualifiers - MICR02 that the Jump field be identified by either an .ADDRESS or A field defined with the .ADDRESS or .NEXTADDRESS qualifier. .NEXTADDRESS qualifier can be set to the value of any label in the program. The form is simply the keyword, namely: .NEXTADDRESS .ADDRESS In addition to designating the associated field as a jump field, the .NEXTADDRESS qualifier specifies that the default for the field is the value of the address associated with the next microinstruction given in the program. Page 2-6 ASSEMBLING YOUR MICROPROGRAM 2.2.3.3 The .VALIDITY Qualifier - The make assertions about the conditions legally set. The form is: .VALIDITY qualifier lets you under which a field can be .VALIDITY = expression The .VALIDITY qualifier associates a validity expression with a field. If the validity expression is not satisfied when the field is set in a microword, MICR02 produces a warning message. 2.2.4 Value Definitions A value-definition associates a name with particular field. a particular value of a Value-definitions follow a field definition. A value-definition conists of a value-name followed by the separator '=' followed by the value to be equated with that name. The value-definition can also have its own .VALIDITY expression·. Thus, the form is: value-name=value,.VALIDITY=exp A value-name is any val id MICR02 name, as defined The .VALIDITY expression is optional. in Section 2. 2 .1. ASSEMBLING YOUR MICROPROGRAM 2.3 Page 2-7 EXPRESSIONS An expression in MICR02 is enclosed in angle brackets. can be any of the following: An expression A number An expression name A function call A field value name A field contents indicator A predefined symbol The following sections consider each of these cases in detail. 2.3.1 Numbers MICR02 recognizes integers or decimal numbers. An integer is interpreted according to the program radix. A number with a decimal point is always interpreted as a decimal number. The program radix is set by either the .OCTAL or the .HEXADECIMAL keyword. If a program radix is not given, then an octal radix is assumed. 2.3.2 Expression-Names An expression-name is defined by the .SET keyword as follows: .SET/expression-name = <expression> 2.3.3 Function Calls MICR02 provides functions for comparison, arithmetic, and Boolean operations. Also, MICR02 provides functions to detect parity, shift, and select a case from a set of choices. Page 2-8 ASSEMBLING YOUR MICROPROGRAM The functions are given in the following table: Value Function Comparison • EQL[opl,op2, ••• ] • NEQ[opl,op2, ••• ] • GTR[opl,op2, ••• ] • GEQ[opl,op2, ••• ] .LSS[opl,op2, ••• ] • LEQ[opl,op2, ••• ] 1 1 1 1 1 1 Arithmetic .MAX[opl,op2, ••• ] .MIN[opl,op2, ••• ] .SUM[opl,op2, ••• ] • PROD[opl,op2, ••• ] .DIFF[opl,op2] .QUOT[opl,op2] .MOD[opl,op2] Value of largest operand Value of smallest operand opl+op2+ ••• opl*op2* ••• opl-op2 opl/op2 (truncated) remainder of opl/op2 Boolean • NOT [op] .AND[opl, ••• ] .OR [opl, ••• ] .XOR[opl, ••• ] .NAND[opl, ••• ] .NOR[opl, ••• ] .EQV[op, ••• ] Boolean complement of op Boolean 'and' of operands Boolean 'or' of operands Boolean 'xor' or operands Boolean complement of the 'and' Boolean complement of the 'or' Boolean complement of the 'xor' if opl=op2= ••• if opl<>op2 and op2<>op3 and ••• if opl>op2> ••• if opl>=op2>= ••• if opl<op2< ••• if opl<=op2<= ••• Miscellaneous .PARITY[opl,op2, ••• ] If operands contain an even number of l's, then 1 else 0 .SHIFT[opl,op2] If op2 is positive, then shift opl le~t op2 places else shift opl right op2 plcces .CASE[opl]OF[op2, ••• ] The (opl-th + 1) operand of the list. That is, if opl is O, the first op2 is used. Up to 32 choices can be given • • SELECT[{opl,op2,} ••• ] The first op2 for which opl is true The operands of a function can be expressions. 2.3.4 Value-Names Since a value-name is only defined for a specific field, it must qualified by the field-name when used in an expression as follows: field-name/value-name be ASSEMBLING YOUR MICROPROGRAM 2.3.5 Page 2-9 Field Contents Indicators The contents of a field can be designated in an expression by giving the field-name followed by a slash. For example, to find out if the current contents of field B contains the value 4, you write the following expression: .EQL [<B/>,<4>] 2.3.6 Predefined Symbol Names The following symbols are predefined in MICR02, as follows: 2.4 Symbol Meaning • (period) The address of the current microinstruction MACROS The macro capability of MICR02 permits the definition of a representation for a microprogram at a higher level than the basic field-value pairs. Once the fields of your microword are defined, a set of macros that set groups of fields appropriately for certain operations can be specified. Macros cannot generate more than one microinstruction. 2.4.1 The Macro-Name Macro-names are formed using the set of characters given in Section 2.2.1. In addition to these characters, MICR02 recognizes square bracket pairs and commas in macro-names as indicators of the number and position of the macro parameters. The number and position of parameters in a macro-name are an integral part· of the name. (That is, the macro ABC[][] is not the same as ABC [,] • ) 2.5 THE MACRO-BODY The macro-body consists of any combination of field-settings and macro-calls separated by commas. When a macro is used in a microinstruction, MICR02 replaces the macro-name by the macro-body associated with that name. ASSEMBLING YOUR MICROPROGRAM 2.5.1 Page 2-10 Parameters Square brackets and commas indicate parameters in the macro-name. The character "@" followed by a decimal integer in the macro-body indicates the position of the parameter in the macro-body. This character pair is called a parameter-designator. The decimal integer in the parameter-designator refers to the position, numbering from left to right, of the parameter in the name. 2.6 MICROINSTRUCTIONS The microinstructions describe the processing to be performed by the microprogram. These microinstructions are expressed in terms of the field- and macro-names defined. For each microinstruction, MICR02 translates names into the appropriate sequence of bits and creates the associated microword. The microinstruction contains the information MICR02 needs to set the bits of the microword. A microinstruction begins with an absolute address assignment, one or more labels, or both. Following this optional information, a sequence of field-settings and/or macro-calls is given separated by commas. That is, the form of the microinstruction is: address: { label: } { field-setting } { macro-call } . ' .. . Both the address and label can be omitted. 2.6.1 Continuing A Microinstruction If a microinstruction occupies more than one line, the separator character ',' must be as the last non-blank character of all lines except the last line. For purposes of this discussion, the end of the line is assumed to be either the ';' character, which begins a comment, or the actual end of line. Thus the last non-blank charact~r of a line means the last non-blank before the ';' or end of line. ASSEMBLING YOUR MICROPROGRAM 2.7 Page 2-11 THE MICROWORD MICR02 creates a microword in the following way: 2.8 1. MICR02 begins with a word of the specified length each bit has a value of zero and a status of unset. in which 2. MICR02 then fills in all the fields that are in the microinstruction. 3. Then, MICR02 sets any fields that have an associated and that contain only unset bits. 4. Then, MICR02 evaluates any VALIDITY expressions. 5. Finally, MICR02 performs any parity adjustment indicated. explicitly set default THE ADDRESS SPACE The .REGION keyword determines the address-space. The .REGION keyword is followed by one or more pairs of address limits, as follows: .REGION/low-bound,high-bound ••• Low-bound and according to any number of low-bound and high-bound are expressions whose values are interpreted the program radix. An address-space thus can consist of address-ranges. An address-range is specified by the high-bound. Any number of .REGION keyword-lines can be given. MICR02 allocates the microinstructions following a .REGION up to the next .REGION keyword (or the end of memory) in the specified address space. If a .REGION keyword-line is not given at the beginning of a memory, MICR02 assumes that the address space begins at O and ends at MAXPC, the highest available address for the given architecture. 2.9 SPECIFYING THE METHOD OF ALLOCATION Within the specified address space, either sequential allocation (or some combination of both) can be used. 2.9.1 or random Sequential Allocation In sequential mode, MICR02 allocates a microinstruction by taking address of the previous microinstruction and adding 1. the ASSEMBLING YOUR MICROPROGRAM Page 2-12 MICR02 begins allocating with the first address in the address space defined by the .REGION keyword and continues incrementing until it reaches either an absolute address assignment or the end of an address-range. When it reaches an absolute address, MICR02 uses that address for the associated microinstruction and as the new base for incrementation. When MICR02 uses th~ last instruction in an address-range, it chooses the first address in the next address-range for the next microinstruction. After MICR02 uses the last address in the last range, it uses the address 0000 and issues an error message for each word allocated following the last legal allocation. 2.9.2 Random Allocation In random mode, constraints can be given to select a set of addresses based on the low order bit configuration. Constraints are described in detail in the next section. MICR02 first allocates all absolute assignments and constraints and then allocates the remaining microinstructions starting at the first unallocated address in the first address-range and continuing sequentially through the unallocated addresses of the address space. 2.9.2.1 Constraints - Many microprogrammable microprocessors perform conditional branching by ORing some logic function into the low order bit position of the next microinstruction address. MICR02 provides a constraint capability for generating a set of addresses for conditional branching. A constraint consists of an "=" character followed by string composed of a sequence of 0 and 1 characters. a constraint A constraint specifies a set of addresses. In response to a constraint string, MICR02 chooses a base address that satisfies the low order bit configuration specified by the constraint. The bits of an address are always ordered from right to left. So the low order bit is the right-most bit. MICR02 then assigns the next n microinstructions to the addresses formed by systematically increasing the base address counting only in those bits designated as O's in the constraint string. ASSEMBLING YOUR MICROPROGRAM Page 2-13 2.9.2.2 Indicating a bit that can be 0 or 1 - In addition to O's and l's, the character '*' can be used in a constraint string. This character informs MICR02 that it can select an address that has either a O or a 1 in that position for the base address. 2.9.2.3 The size of the address set - The number of microinstructions in the set, n, is determined by the number of zeroes in the constraint string, as follows: n=2**X Where X is the number of O's in the constraint string. 2.9.2.4 Constraints Within Constraints - If MICR02 encounters a constraint string within the set of instructions it is allocating to the block of addresses associated with an outer constraint string, it skips to the next. address satisfying the inner constraint and then proceeds according to the algorithm specified by the outer constraint. The purpose of the nested constraint is to skip over some addresses that would otherwise be allocated by the outermost constraint. 2.9.2.5 Terminating a Constraint - A null constraint within the scope of the constraint terminates the constraint. A null constraint is the "=" character. A constraint can also be terminated by an absolute address assignment; however, in this case, MICR02 issues a warning message. 2.10 COMMUNICATION In MICR02, communication among memories in the same program communication among separate programs can be accomplished. 2.10.1 and Memory Communication Each memory has its own definitions, identification, and address-space. However, if the same field-name is defined in more than one memory, then the value-names defined for that field in any memory are known in all other memories that define the field. This feature permits communication between memories. Page 2-14 ASSEMBLING YOUR MICROPROGRAM 2.10.2 Program Communication Separate programs can be assembled and loaded in a contr~l store by handling address space assignment and communication. If, for example, you wish to have n separate programs, you divide the control store into n+l logical spaces, namely: o o o Communication Space Space for Program 1 Space for Program 2 o Space for program n If the address of entry points are fixed, these separate programs transfer to one another. 2.11 can CONDITIONAL ASSEMBLY The conditional assembly cctpability assembly of parts of a program. 2.11.1 permits suppression of the The Conditional Assembly Keywords Three keywords are provided for conditional assembly as follows: .IF/expression-name .IFNOT/expression-name .ENDIF These keywords divide a program into blocks. The .IF and .IFNOT keywords begin a block. 'I'hey include an expression-name that is associated with either a true (1) or false (0) value. These keywords have the following meaning. Keyword Meaning .IF/expression-name If expression-name is associated with a true value (1), assemble the following block; otherwise suppress its assembly. .IFNOT/expression-name If expression-name is associated with a false value (0), assemble the following block; otherwise, suppress its assembly. For example, In practice, a false value is any value that is not 1. if the expression-name has the value 2, MICR02 considers it to represent a false value. ASSEMBLING YOUR MICROPROGRAM 2.11.2 Page 2-15 Conditional Assembly Blocks A conditional assembly block begins with either an .IF or .IFNOT and ends with either an .ENDIF for the same expression or another .IF or .IFNOT for the same expression. 2.12 SETTING AND CHANGING EXPRESSION-NAMES Expression-names are defined and set with the .SET keyword as follows: .SET/expression-name=expression Once an expression-name is defined, .CHANGE keyword must change its value • be used to The list coQtrols specify which portions of the output listing are be produced. to • CHANGE/expression-name = expression 2.13 LIST CONTROLS MICR02 determines whether or not to make a contribution to a file by looking at a counter. If the counter contains a positive number, MICR02 contributes to the associated file. If the counter is a negative number, MICR02 does not contribute. The list controls are as follows: Keyword Meaning .LIST .NOLIST Increment the listing counter Decrement the listing counter .CREF .NOCREF Increment the cross reference counter Decrement the cross reference counter .BIN .NOBIN Increment the object counter Decrement the object counter .EXPAND List all fields explicitly inserted in an instruction after the last line of the instruction • Do not list fields. • NOEXPAND At the beg}nning of an assembly, each counter has the value O. ASSEMBLING YOUR MICROPROGRAM 2.13.1 Page 2-16 The List Control Counters If a list control counter is positive, then MICR02 creates the specified part of listing. If a list control is negative, MICR02 suppresses the specified part of the listing. The counter associated with the .• LIST and .NOLIST control determines whether or not an output listing is produced. The counter associated with the .BIN and .NOBIN controls determines whether or not the object part (left field) of the listing is produced. The counter associated with the .CREF and .NOCREF controls whether or not names will be added to the cross reference map. The use of the MICR02 assembler in the VAX environment is described :ln the following sections. 2.14 THE VAX 11/780 DEFINITION LANGUAGE The VAX 11/780 Definition Language describes the VAX 11/780 architecture and provides a macro language for writing microprograms. A listing of this definition is given in Appendix A; the source for the definition language is available on a floppy in the VAX 11/780 WCS kit. This file (VAXDEF.MIC) is copied to SYS$LIBRARY when the user WCS tools are installed on a system. You can express the actions of a microprogram in the macro~ given in the definition language. Then, when you assemble your program, you include the file VAXDEF.MIC aSi the first input. file, as indicated in Appendix A. 2.15 USER INTERFACE The MICR02 assembler is called at command level as shown below: Format +-------------------------------------------------+ I I I I I I I I I I MICR02 input-file-spec File Qualifiers --------------- /LIST[=file-spec] /NOLI ST /ULD = [file-spec] /NOULD I I I I I I I I +-------------------------------------------------+ ASSEMBLING YOUR MICROPROGRAM Page 2-17 Prompts File: input-file-spec File-Parameters Input-file-spec Specifies the names of one or more files to be assembled. If you specify more than one input file, you can use the character '+' to separate file-specs. Input files must not have line numbers; such files are rejected by MICR02. Description MICR02 assembles the programs contained in the and produces a listing file and an object file. input-file-spec File Qualifiers /LIST [=file-spec] Directs MICR02 to produce a listing file. If you include a file-spec, MICR02 uses that file-spec for the listing file. If you do not include a file-spec, MICR02 uses the name of the input-file, or the name of the first input file in the case of multiple input files, with the default extension .MCR for the listing file. /NOLI ST Directs MICR02 to suppress the listing file. /ULD [=file-spec] Directs MICR02 to produce an object-file. If you include a file-spec, MICR02 uses the file-spec for the output file. If you do not include a file-spec, MICR02 uses the name of the input, or the name of the first input file in the multiple input file case, with the default extension .ULD for the object file. /NOULD Directs MICR02 to suppress the object file. Page 2-18 ASSEMBLING YOUR MICROPROGRAM Examples 1. MICR02 ALPHA MICR02 assembles the program in the file ALPHA.MIC and produces a listing file ALPHA.MCR and the object file ALPHA.ULD. 2. MICR02/LIST=BETA ALPHA MICR02 assembles the program in the file ALPHA.MIC and produces the listing file BETA.MCR and the object file ALPHA.ULD. 3. MICR02/NOULD ALPHA+GAMMA MICR02 assembles the program formed by the concatenation of ALPHA.MIC and GAMMA.MIC and produces the listing file ALPHA.MCR. 4. MICR02/LIST=BETA/NOULD ALPHA MICR02 assembles the program in the file ALPHA.MIC and produces the listing file BETA.MCR. MICR02 does not produce an object file because the qualifier /NOULD is given. 5. MICR02 [SYSLIB] VAXDEE'+MYPROG MICR02 assembles the SYS$LIBRARY:VAXDEF.MIC MYPROG.MIC and produces output file VAXDEF.ULD. definition language in the file and the microprogram in the file the listing file VAXDEF.MCR and the File Specifications MICR02 accepts any legal VAX filename. For the purpose of error reporting, MICR02 abbreviates the filename to the first six characters and the extension to the first three characters. CHAPTER 3 LOADING A MICROPROGRAM MICLD is a BLISS program that runs under user control in the VAX/VMS environment. MICLD loads the object files (.ULD) produced by MICR02 into the Extended Writable Control Store. MICLD requires kernel (CMKRNL) and error logging (BUGCHK) privileges. It uses VAX privileged registers and instructions to load the microprogram into the WCS and to report the WCS load in the system error log. To use MICLD, therefore, you must have privileges to execute in kernel mode. 3.1 FUNCTIONS In loading a microprogram, MICLD does the following: o Verifies that the Extended WCS board is installed. o Initializes each word pattern. o Loads the set of ULD formatted object modules the microprogram into the Extended wcs. o Optionally sets the entry vector (VAX address lOEO hex) to jump to the place in the microprogram where execution begins. o Records the fact that the WCS error log. of the Extended was loaded WCS to a that into the special make up system The following sections consider each of these functions in detail. 3.1.1 Verifying the Installation of the Extended WCS Board MICLD first checks that the Extended WCS Boa·rd is physically and operationally present in the system. If MICLD finds that the Extended WCS Board is not installed, it issues an error message and exits back to the operating system. LOADING A MICROPROGRAM 3.1.2 Page 3-2 Initializing the Extending WCS If MICLD finds that the Extended WCS is properly installed, it then initializes each word of thE~ Extended WCS, starting at 1800 and continuing through lFFF (1C00 through lFFF if G&H is present) to an initialization pattern. You can specify the initialization pattern for MICLD to use by including the file qualifier /INITIAL, as described in Section 3.3. If you do not specify an initialization pattern, MICLD uses the default pattern given in Figure 3-1. +--------------------------------------------------------------------+ I I I I I I 0 I 0 I 0 0 0 0 1 I 0 I 0 I 0 I WCS ADDRESS I I I +--------------------------------------------------------------------+ 96 48 47 46 45 44 43 42 41 13 12 0 Figure 3-1. Default Initialization Pattern Bits 0 through 12 of the def.ault initialization pattern contain the address of the microword in the WCS being initialized. Bits <47:42> contain a two (2) to guarantef~ that no reads or writes will occur to the main memory should the microword inadvertently be executed. All other bits in the 96-bit wide microword are set to 0. After execution of MICLD, any microaddress not explicitly loaded contains the initialization pattern. If a microprogram mistakenly jumps to a word that contains the default initialization pattern, then the execution of that word causes a branch to itself with no-op function. The machine then loops at that instruction, continuing to branch to itself. Thus, if your program branches to an unexpected address, you get both protection and information. To recover control from this microcode loop, you enter the console "INIT" command while the console is in console command ~ode. If the console is not in console command mode, entering Control-P at the console will get it there. If a microprogram gets into an instruction loop as described you must manually reboot the system and then reload the WCS. 3.1.3 above, Setting the Starting Address The entry vector (VAX address 10E0 hex) must be set to the address at which the microprogram in the~ Extended. WCS begins. MICLD sets the entry vector to an address if an /ENTRY qualifier is given in the command line. If an address i:s given with the /ENTRY qualifier, MICLD interprets that address as a hexadecimal number and uses that number to set the entry vector. If an address is not given, then MICLD uses the address of the first microinstruction in the ULD file to set the entry vector. LOADING A MICROPROGRAM Page 3-3 If an /ENTRY file qualifier is not given, the entry vector must be set by using the console program or the privileged instructions before the execution of the microprogram is attempted. The entry vector is discussed further in section 4.1.2. 3.1.4 Loading the Microprogram MICLD loads the microwords· specified in the ULD file. MICLD begins by creating an image of the loaded wcs. It initializes this image to the initialization pattern and then reads the ULD files, starting with the first word in the first file and continuing sequentially until the last word of the last file. Each entry in the ULD file for a microword contains both the address of the microword and its contents. MICLD uses the address to determine the position within the image in which the contents of the word is to be stored. When MICLD finishes reading the last word of the last file, the created image sequentially into the control store. it loads MICLD permits over-writing. That is, it lets you load an address more than once. When MICLD loads a word into any address, it checks to see if the address has been loaded previously. If so, MICLD issues a warning message and then loads the new word into the given address, destroying the previous contents. If you take advantage of the over-writing capability of MICLD, you must be careful about the order in which you specify files when you call MICLD. If you do not over-write the WCS, then you can specify your files in any order. MICLD issues a message at the end of the loading whether or not the loading was successful. 3.1.5 process, indicating Logging the WCS Load Each time MICLD runs successfully, it makes a note in the system error log that the WCS contents has been changed. These notes can help the system manager determine which user microcode is in the WCS, or relate system problems to particular pieces of user microcode. LOADING A MICROPROGRAM 3.2 Page 3-4 VERIFYING THAT THE LOADING WAS SUCCESSFUL It sometimes happens that, dUE! to a hardware malfunction, the WCS is not properly loaded and MICLD is not able to detect that fact. The WCS is a write-only memory and MICLD, thus, cannot verify its contents by reading it back after loading and comparing its actual contents with its expected contents. Erratic or unexpected performance-of the executing microprogram can indicate that the WCS is not properly loaded. However, such behavior can also mean that the microprogram is not completely debugged. Under these circumstances, you can try to validate the loading process by one of the following methods. 3.2.1 Using The Sample Program One way to try to validate the loading process is to load and execute a program whose behavior is known. The sample microprogram given in Appendix B can be used for this purpose. A command file that uses a test program to verify the installation of the tools and the loading process is included in the VAX 11/780 WCS kit. To invoke this command file in the VMS environment, type: @[SYSEXE]WCSTOLTST This command file assembles the sample microprogram (BSERCH) given in Appendix B utilizing the VAX Definition Language given in Appendix A. It then loads the resulting object file into the extended WCS and executes the sample assembly language test program (BSTEST) given in Section B.4. BSTEST executes an XFC causing the loaded sample program to be executed. After execution of the microprogram, control returns to BSTEST. If the microprogram executed properly, BSTEST prints the following message on the terminal: "Successful Test Completion" 3.2.2 S~quencing With The Debugger Another way to validate the loading process is to invoke the WCS debugger from the VAX console and single step the microprogram. You can then observe if the correct sequence of address is executed. The debugger is described in 1\ppendix D of the VAX 11/780 Data Path Description. LOADING A MICROPROGRAM Page 3-5 Since the WCS is a write-only memory, the debugger is not able to read its contents. You must create a floppy disk image of the contents of the wcs,. The debugger then gives the illusion of reading the WCS by reading this floppy disk image that contains the microwords loaded into the WCS. Under normal circumstances, this method of operation is effective. However, the debugger cannot be used to validate the loading process except, as described above, by sequencing through the microprogram. 3.3 USER INTERFACE To load the command: Extended Writable Control Store, use the following ( Format +---------------------------------------------------------+ MICLD input-file-spec, ••• File Qualifier /INITIAL=pattern /ENTRY[=hex-address] +---------------------------------------------------------+ Prompts File: input-file-spec, ••• File Parameters Input-file-spec, ••• Specifies the names of one or more files to be loaded into the Extended WCS. If you specify more than one input file, you can use either the character '+' or the character ' , ' to separate file-specs. Description MICLD loads the files you give in the order specified. If you want more than one file to coexist in the WCS, then you separate the filenames with the '+' character. In the VAX command language syntax, the ' , ' separator calls for the individual application of the program to each file. Thus, if you use the ',• separator, MICLD initializes the· WCS and loads the first file, then initializes the WCS and loads the second file, and so on. The use of the ',• separator has little, if any, legitimate use in the loader command line. Page 3-6 LOADING A MICROPROGRAM File Qualifiers /INITIAL=pattern Specifies the pattern for MICLD to use to initialize the WCS. Pattern is a string of right-justified hexadecimal digits. Any missing digits are padded with zeroes. If you do not give this qualifier, the default pattern given in Section 3.1.2 is used. /ENTRY[=hex-address] Specifies the address at which the microprogram in the extended WCS begins. If you do not specify a hex-address, the loader assumes that the microprogram begins at the address of the first word in the first ULD~ If you do not give this qualifier, you must set the starting address as described in Section 4.1.2. Examples 1. MICLD ALPHA+BETA MICLD initializes thE! WCS to the default ALPHA.ULD and then loads BETA.ULD. 2. pattern and loads MICLD ALPHA,BETA MICLD initializes thE! WCS to the default pattern and loads ALPHA.ULD. It then initializes the WCS again and loads BETA.ULD. 3. MICLD/INITIAL=l23 ALPHA MICLD initializes thE~ WC$ to the pattern specified, namely: 96 +----------------------------------------+ I o 1 0010 0011 I +----------------------------------------+ Then, it loads ALPHAuULD. 4. MICLD/INITIAL=l23/EN~rRY=l400 ALPHA MICLD initializes thE~ WCS to the pattern specified by 123 (as shown above), sets the entry vector to begin execution at address 1400 (hex), and loads the file ALPHA.ULD. LOADING A MICROPROGRAM 3.4 Page 3-7 PROGRAM BEHAVIOR After you give MICLD the list of files, it loads the into the WCS. files specified If MICLD detects errors or special circumstances (such as over-loading), it issues a message. At the completion of the loading process, MICLD issues a final message indicating whether or not the loading process was successful. 3.4.1 VAX-11/780 WCS Architecture Description The Extended WCS is 96 bi ts wide by 2K occupying VAX addresses 1800 (HEX) through lFFF. The WCS is divided into three 32 bit X 2K pieces, termed banks. These banks are referenced as BANK 0, BANK 1, and BANK 2 (see Figure 3-2). MICLD loads a microprogram into the Extended wcs one bank at a time. That is, it breaks each microword into three 32-bit pieces and then loads the pieces consecutively into BANK 0, 1, and 2. Two VAX 11/780 Processor Specific registers support the WCS, namely: the WCS Address Register (WCSA) and the WCS Data Register (WCSD). The WCSA register consists of 32 bits. The first 16 bits are not used; the last 16 bits are divided into three fields. The WCS ADDRESS field, occupying bits O through 12, points to the current WCS address being loaded. The BANK SELECT field (CTR), occupying bits 14 and 13, contains a value of 1, or 2 representing the current bank being loaded. The PIN field, occupying bit 15, is set to 1 if any writes are done with inverted parity. MICLD sets the PIN field to O. The WCSA register is identified in VAX as processor register number 44. +-------------------------------------------------------------+ I I I I I I I PIN I c T R I I +-------------------------------------------------------------+ 31 16 15 14 13 12 WCS ADDRESS 0 BANK SELECT Figure 3-2 WCSA Register Page 3-8 LOADING A MICROPROGRAM +--+31 I I I I I I I I IO BUS I I <---------96 bits----------> I I /\ 1400+--------------------------+ I I I \ +--+ 1<--32-->l<--32-->l<--32-->I +--+ I I I I PIN I I 15 bi ts I I I I I BANK { 1-114 r I I I I Select{ I 113 lK I I I I IA I I I I l<-------->ID I<--------> I I I I ID I I I I I IR I 195 64163 33132 OI IE I 17FF+--------+--------+--------+ IS I WCSA BANK 2 BANK 1 BANK 0 IS I Reg. 44 13FF +--+0 WCSD Reg. 45 +------------------------------+ I DATA 132 bits +------------------------------+ 31 /I\ o I I I \II --------------------------------------------------------+ -----------------------------------------------------------+ Figure 3-3 The WCSD register consists of 32 bits and contains the microcode or data to be loaded into the WCS. The WCSD register is identified in VAX as processor register number 45. Information is written into and read from these two VAX processor registers using the Move to Processor Register (MTPR) and Move from Processor Register (MFPR) privileged instructions provided by the VAX-11 system. To load the user WCS, MICLD must first initialize the WCSA register with the WCS address where the loader is to begin loading microcode. The Bank Select bits are set to 00. Several actions take place to load a complete microword into the WCS. LOADING A MICROPROGRAM Page 3-9 Step 1: MICLD loads the first 32 bits of the (destined for BANKO) into the WCSD register. microword Step 2: VAX autonomously loads the data in the WCSD register into the User WCS at the location specified by the WCSA register and then auto increments the BANK SELECT field for BANK 1. Step 3: MICLD loads the second 32 bits of the microword (destined for BANK 1) into the WCSD register. Step 4: VAX repeats Step 2, placing data in BANK 1 at the same WCS location and auto increments the BANK SELECT field for BANK 2. Step 5: MICLD loads the third 32 bits of the (destined for BANK 2) into the WCSD completing the WCS load of the microword. Step 6: VAX repeats Step 2, placing the data into BANK 2, resets the BANK SELECT field for BANK O, and increments the WCS ADDRESS field to point to the next WCS address. microword register, MICLD is then ready to begin loading the next microword into the WCS. 3.4.2 VMS Operating System Support Programs running under VMS execute in an assigned processor mode. Listed in ascending order of processor privilege and descending access capability, there are four processor modes for programs: 1) user, 2) supervisor, 3) executive, and 4) kernel. All programs begin at user mode and may change processor modes depending on the privileges initially assigned to it. MICLD begins at user level. MICLD uses the Change Mode to Kernel command (CHMK) to elevate itself to kernel mode. The CHMK command is documented in the VAX 11/780 Architecture Handbook, Volume 1, Section 13-2. Successful execution of the CHMK command and other processor mode commands depends on the program being run in an account equipped with the necessary privileges. LOADING A MICROPROGRAM 3.5 Page 3-10 ERROR MESSAGES MICLD issues error messages in the VAX standard error message format. Namely: %<program-name>-<severity-code>-<abbreviation>,<messa9e> Where: is MICLD is I (information) E (error) F (fatal) <abbreviation> is a short identifier for the message <message> is the error message text program-name severity-code The abbreviations and messages produced by MICLD are as follows: Abbreviation Message ABKEYW ambiguous; keyword AM VERB ambiguous verb BADENTRY /ENTRY value not a hex number BADENTRY /ENTRY value not in the user WCS address range BADIN IT initial value conversion error BADULD data record conversion error BADULD invalid data record syntax BADULD missing equal sign BADULD missing right bracket CHA LOG unable t<> log WCS content change FNF file not found <filename> INVCMD invalid command format NO PARM missing parameter NO PR IV no kernel mode privileges NOPRIV unable to write to error log NOWCS WCS memory not installed TERMEOF end of file on terminal LOADING A MICROPROGRAM Page 3-11 WCSBND address out of bounds at <address>(hex) WCSLOAD WCSA error <address> should be <address>(hex) WCSCHANGE <filename> WCS content changed by <userid> using file WCSMLO memory location overwritten at <address>(hex) •. CHAPTER 4 EXECUTING A MICROPROGRAM To execute a microprogram in the extended WCS, the are necessary: following actions 1. An XFC instruction in a main memory program must be executed. 2. The field consisting of Bits 1 and O of System Control Block must be set to 2. 3. The entry vectory (lOEO hex) must be set to jump to the first instruction to be executed in the microprogram in the Extended WCS. Vector 14 of the The following sections describe these actions in detail. 4.1 EXTENDED FUNCTION CALL A microprogram is invoked by the XFC instruction. The Extended Function Call (XFC) instruction provides a controlled mechanism for software to request services of non-standard microcode in the extended Writeable Control Store (WCS). The request is controlled by the system control block. All opcodes reserved to the extended WCS start with FC (hex), which is the XFC instruction, using the format: FC The XFC instruction has no parameters. You can pass parameters either as normal operands or in fixed registers. For example, if you have more than one extended function resident in the WCS, you can use the bytes following the opcode to specify which of several extended functions are requested. Execution of exception. the XFC instruction generates what is called an EXECUTING A MICROPROGRAM 4.1.1 Page 4-2 Exceptions The notification of an event relevant primarily to executing process, which invokes software in the current process, is termed an exception. the currently context of the Exceptions are handled by, or trapped to, operating system software. Further, all exceptions either wait for the instruction that caused them to complete before happening or they restore the processor to the state it was in prior to E~xecuting the instruction that caused the execution. An exception caused by the exE~cution of an XFC instruction (classified as a fault) occurs during an instruction, leaving the registers and memory in a consistent state such that elimination of the fault condition and restarting the instruction will give correct results. The XFC instruction causes faults called the opcode reserved for customer and customer reserved exceptions. The value of the PC that is saved on the stack points to the instruction faulting. Exceptions are usually reflected to the originating mode as a signal. In general, the signal is interpreted via a vector in the system control block. Separate vectors are defined for each class of exception and interrupting device controller. 4.1.2 Setting The System Control Block Vector When an XFC is executed, VMS handles the fault by trapping to vector 14 (hex) of the system control block (SCB) • VMS examines the low order two bits of the vector and if it finds the value 2, then it traps to the entry vector (lOEO hex). The two low order bits of Vector 14 of the SCB must be set to 2 to execute a microprogram in th«~ Extended WCS. The console data deposit command can be used to set vector 14 relative to the base SCBB. 4.1.3 Patching The Entry Vector After vector 14 is accessed, the system traps to address lOEO (hex), which is resident in the VJ\X microcode area and is called the entry vector. The entry vector must be loaded with a JUMP microinstruction to the desired entry point in the extended WCS. This extended WCS entry point is usually a control routine or exception handler; however, it can simple be the first instruction in the microcode function to be performed. EXECUTING A MICROPROGRAM Page 4-3 The entry vector is set during the loading process by MICLD if an /ENTRY file qualifier is given in the MICLD command line. The entry vector can also be set at the VAX console using the console program. Note, that when the fault occurs, the ·system traps (in the end) to the user wcs. The user defines an exception handler in microcode to service the "extended customer opcode" fault. The wcs contains only one application, there is no need for a handler to resolve what function should be performed in the wcs. However, if the WCS contain several microroutines, an exception handler must resolve event by accessing additional data. The microprogrammer must have a good understanding of the VAX micro machine data path to develop this exception handler. More information on the System Control Block and the handling exceptions can be found in the VAX 11/780 Hardware Handbook. of APPENDIX A VAX 11/780 FIELD AND MACRO DEFINITIONS The VAX 11/780 Definition Language identifies the fields of the microword and provides a macro language to aid you in writing microprograms. The sample microprogram in Append ix B is written in this definition language. When assembling a program written in this definition language, you include the definition language source by concatenating your program file with the definition file VAXDEF.MIC in the MICR02 command line as follows: $ MICR02 [SYSLIB]VAXDEF+MYPROG In the above example, MYPROG.MIC is the name of the file that contains the source MICR02 microprogram. The definition language file is available on a floppy in the VAX 11/780 WCS kit. It is copied to SYS$LIBRARY:VAXDEF.MIC when the kit is installed on a system. Page A-2 VAX 11/780 FIELD AND MACRO DEFINITIONS .TDC "Machine definition : Control word chart• HION'T LEAVE LISTING SPACE FOR BINARY ;airs NUMBERED FROM 0 ON THE RIGHT OF A FIELD ;RADIX 16 ;suPPRESS CREF ON UNINTERESTING FIELDS ;validit~ check for CCK micro orders .NOBIN .RTOL .HEXADECIMAL .NOCREF • SET /NATIVE=1 +-------+-------+-----+-----+---+---+-+---------+---+-------+---+-----------+-----+-------+-----+ I I [I DK !BC SHF '' :R: :A: I I BMX :AMX: T :M: :ACF: .,' BEN :x: ALU I I :sue: KMX SI llK SGN I ' ' I I ' +-------+-------+-----+-----+---+---+-+---------+---+-------+---+-----------+-----+-------+-----+ :9 9 9 9:9 9 0 0:0 0 0:0 0 0:0 0:7 7:7:7 7 7 7 7:7 7:6 6 6 6l6 6l6 6 6 6 5 5l5 5 s:5 5 s 515 4 4: o 9 0:7 6 5:4 3 2:1 0:9 0:716 s 4 3 2:1 0:9 a 7 615 4:3 2 1 o 9 a:7 6 514 3 2 110 9 a: :5 4 3 211 +-------+-------+-----+-----+---+---+-+---------+---+-------+---+-----------+-----+-------+-----+ I I I I :R: :a: ID.ADDR :M: :x: ACM +-----------+-----+ +-+ +-+ +-+-------------+-----+---+-------+-+-+-+-----+---+---+-----+-------------------------+ IA: :n: :s: ' ' :Fl lSI l : l l I I I I I : I I I SPO PCK lIEK: I MSC I I I I I I :VIFISI IAlEIC: CCK IKlKIKl E B ISHXI H E A L : X U I I I J +-+-------+-+-------------+-----+---+-------+-+-+-+-----+---+---+-----+-------------------------+ 14 4 4 4 4 414 4 3 3 3 3 313 3 3:3 3:2 2 2 2121212:2 2 211 111 111 1 111 1 1 0 0 0 0 0 0 0 0 0 o: 17 6 5 4 3 2:1 0 9 8 7 6 514 3 2:1 0:9 8 7 61514l3l2 1 Ol9 817 6lS 4 3:2 1 0 9 B 7 6 5 4 3 2 1 Ol +-----------+-------+-----+-----+---+-------+-+-+-+-----+---+---+-----+-------------------------+ HCT s : SPO.: t f I I I I I I p 0 +---+-------+ : ACN : +-----+ : SPO.: CID A c :ACN11: +-------+-----+-+-----+ S P 0 SPO. : RC +-------+ SPO. : RAB +--·---+-------+ VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition ACFl=<71:70>r.DEFAULT=O NOf'=O SYNC=! TRAf'=2 CONTROL=J JACCELERATOR CONTROL ACH/=(57:55> PIJR.UP=O ABORT=l POLY.DONE=6 JACCELERATOR MISCELLANEOUS CONTROL ADS/=<47:47> VA=O IBA=1 JADDRESS SELECT ALUl=<69:66>r.DEFAULT=OF A-B=OO A-B.RLOl3=01 A-B-1=02 INST• DEF'= OJ A+B+1=04 A+B=05 A+:a.RLOG=06 ORNOT=07 XOR=OB ANDNOT=09 NOTA=OA A+B+f'SL.C=OB OR=OC AND=OD B=OE A=OF ;ALU CONTROL FUNCTIONS AHXl=<Bl:BO> LA=O RAMX=l RAHX.SXT=2 RAHX.OXT=3 JACCELLERATOR-DEf'ENDENT CONTROL FUNCTION JRETURN ACCEL TO MONITORING IRD ;INSTRUCTION DEPENDENT ; A • OR. •NOT• B ;A .XOR. B ;A .AND •• NOT• B ; .NOT• A ;A .OR• B IA .AND. B 9AMX TO ALU 9RAHX SIGN EXTENDED ACCORDING TO DT ;RAMX ZERO EXTENDED. OXT<L>=O Page A-3 Page A-4 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition BEN/=(76:72>,,DEFAULT=O NOP=O Z=l ROR=2 C31=3 IRC,ROH=4 IB.O=S ACCEL=6 DATA+TYPE=S END.DP1=8 IR2-1=9 F'C, HOitES=9 REI=OA SRC.F'C=OA IB.TEST=OB HUL=OC SIGNS=Oit INTERRUF'T=OE DECIHAL=OF UTRAP=lO LAST.REF=ll EALU=12 SC=14 ALUl-0=15 STATE7-4=16 STATE3-0=17 D.BYTES=18 D3-0=19 F'SL,CC=lA ALU=lB F'SL.HODE=lC TB.TEST=lit BHX/=<84:82> MASK=O PC.OR.LB=! F'ACKEit.FL=2 LB=3 LC=4 : BEN• BHX" ;BRANCH ENABLE ;No BRANCH ; ALU Z ;LA<l>• PSL<C>• LA<O> ; ALU C3t. 0 ;ouTPUT OF EXTENDED IRC-ROH ;1B 0 READY 1 ;conE FROH ACCELERATOR ;cvAX HODE> *• ASRC+VSRC• ASRC+O+It 0--NORHALr 1--0UAD OR DOUBLE ; 2--FIELit• 3--AitDRESS ;c-11 MODE> *• 0 CLASS, J CLASS+DH27 ;cvAX HOitE> *• IR<2:1> ;c-11 MODE> SH47+SH57+DH47+DH57, DST R=PC ;cvAX HOitE> HODE.LSS.ASTLVL. ;c-11 HOitE> SRC R=PC ; 0--TB HISS, 1--ERROR ; 2--STALL, 3--DATA OK ;sc.NE.o, It<1:0> ;Q<31), D.NE.O• D<31> ;Ac Low, INTERNAL INTERRUPT. INT REQ ;o, It BYTE 0 VALID DIGIT• It2-0 NEG SIGN ;MICROTRAP DISPATCH VECTOR 1-FPit, NESTED ERROR, LOW TWO BITS: ; 0--READ INTERLOCK, 1--READ• READ CHK ; 2--WRITEr 3--READ, WRITE CHK ;EALU N, EALU z, SC.NEQ.O, SS ;sc<9:a>.NE.o, sc.GT.o, sc<9:s>.NE.o ;RLOG EMPTY• ALU<l:O>=O• ALU<l>• ALU<O> ; <ALU BITS FROH PREVIOUS STATE> ;STATE ·0:4> ;STATE <3:0> ;BYTES 3, 2, 1, 0 OF D.NE.O ;[1<3:0> ;N,z,v,c OF PSL fALU N, ALU z, IR<O>• ALU C31 ;-VA<31:30>• -CONSOLE, IS+CH• KERNEL ;PTE VALID, ALIGNED, QUAD• + ; 0--TRANSLATION OK, 1--WR CHK ANit H=O ; 2--ACCESS VIOLATION, 3--TB HISS *' ;BHX TO ALU ;A 0 IN THE BIT SELECTED BY SC<4:0> fLB UNLESS R=PCr THEN PC ;PACKED FLOATING PC=~) KHX==6 RitHX:::7 *' * HI OR Q Page A-5 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition CCK/=<22:20> •• DEFAULT=O ;coNDITION CODES ;Note : * = RESERVED OPERATION• "ALU SIGN" AND "AHX SIGN" ARE SIZE DEPENDENT ;-------------------------------------+------------------------------------------+ ; NATIVE MODE PSL I COHPATIDILITY MODE PSL ;----------+------------------+---+---+----------+------------------+---+--------+ ; N Z IVICI N Z :v: C : ;----------+------------------+---+---+----------+------------------+---+--------+ N Z I V C N Z V C NOP=•O N LOAD.UEICC=1 SET.V=2 ,.VALIDITY=<V1>; N_AHx.z_rsr.vc_vc=3 AHX NSIGN ROR=4 ,.VALIDITY=<VO>; * NZ-ALU.VC-0=5 ; ALU SIGN NZ_ALU.vc_VC=6 •• VALIDITY=<V1); ALU SIGN C_AHX0=6 ,.VALIDITY=<VO>; INST.DEP=7 Z V C C C * z.and.<ALU.eo.O> * V C 1 V AHX *SIGN V Z z.and.<ALU.eo.O> 0 0 ALU SIGN ALU SIGN ALU.eo.O ALU.eo.O 0 O C AHX<O> 0 v c N z v AHX<O> * ALU,eo.O ALU.eo.o * * N Instruction dependent Z * ;----------+------------------+---+---+----------+------------------+---i--------+ GID/=(45:42> NOP=1 ACK=5 CONT=7 READ,SC=9 READ.KHX=OEI WR I TE• SC=Oit WRITE• KHX=OF DK/=<91:88>,.DEFAULT=O NOP=O LEFT2=1 RIGHT2=2 DIV=4 LEFT=5 RIGHT=6 SHF=S SHF.FL=9 ACCEL=OA EIYTE,SWAP=OEI Q=OC ItAL.SC=OD DAL,SV=OE CLR=OF DT/=(79:78),,DEFAULT=O LONG=O WORD=1 EIYTE=2 INST, LlEP=3 JCONSOLE & ID BUS CONTROL IF FS/1 ;DEFAULT, ALLOW AUTO IEI READ ;SET CONSOLE ACKNOWLEGE FLAG ;CLEAR.CONSOLE MODE ;READ ID BUS REG SELECTED BY SC ;READ ID BUS REG SELECTED BY UKHX ;WRITE REG SELECTED BY SC ;WRITE REG SELECTED BY UKHX HIEFAUL T, HOLD fDOUEILE SHIFT LEFT fDOUBLE SHIFT RIGHT ;IF NOT ALU CRY• SHIFT LEFT ; ELSE LOAD FROM SHF ;SHIFT LEFT JSHIFT RIGHT ;LOAD SHF HUX• INTEGER FORMAT JLOAD SHF Hux, UNPACKED FLOATING FORMAT ;LOAD ACCELERATOR DATA FROM DF BUS ;REFLECT BYTES AROUND BIT 16 ;LOAD Q THRU DAL JLOAit ItALl:SCJ ;LOAD DALl:SHF VALJ ;L.OAD ZEROS ;DATA TYPE JCONTROLS AHX SIGN/ZERO EXTENDER• SHF AMOUNT, JCONDITION CODE SETTINGr AND MEMORY REFERENCES fDEFAULT JINSTRUCTION DEPENDENT JANY OF AEIOVEr OR QUAD/DOUBLE VAX 11/780 FIELD AND MACRO DEFINITIONS .roe 'Hachine definition EALU/=·:::15: 13> A=O OR=l ANDNOT=2 B=3 A+B=4 A-B=5 A+1=6 NABS. A·-B,.:7 EBHX/=<19:18> FE=O KHX=l AHX.EXF'::2 SHF.VAL=3 : EALU, EBHXr FEKr FSr IEKr IBC' ;EXPONENT ALU ;-ABSCA-B> ;EBHX TO EALU ;DEFAULT ;SHIFT VALUE FEK/=<24:24>,.DEFAULT=O NOF'=O LOAI•=l ;FE REGISTER CONTROL ;DEFAULTr HOLD FS/=<42:42> MCT=O CID=l ;FUNCTION SELECT FOR 43-46 ;ENABLE HEHORY CONTROL ;ENABLE ID BUS AND CONSOLE CONTROL IEK/=<31:30> NOP=O ISTR=l IACK=2 EACK=J ;INTERRUPT AND EXCEPTION ACKNOWLEDGE IBC/=<95:92),.DEFAULT=O NOP=O STOP=l FLUSH==2 START=J CLR.0.1=4 CLR.2.3=5 BDEST=7 CLR.O=OC CLR.l=OD CLR.0-3=0E CLR.1-5.COND=OF ;STROBE INTERRUPT REQUESTS ;INTERRUPT ACKNOWLEDGE ;EXCEPTION ACKNOWLEDGE ;IBUF CONTROL FUNCTIONS ;DEFAULT ;FLUSH IB AND LOAD IBA ;CLEAR BYTES Orl <-11 OPCODE> ;CLEAR BYTES 2r3 <-11 ISTREAH DATA> ;TRANSFER BRANCH DISPLACEMENT ;CLEAR BYTE 0 <VAX OPCODE> ;cLEAR BYTE 1 <VAX SPECIFIER> ;CLEAR BYTES 0-3 <-11 OP & DATA> ;CLEAR BYTES 1-5 CONDITIONALLY IF THERE IS NO SPECIFIER EVALUATIONr CLEAR NOTHING. IF A SELF-CONTAINED SPECIFIERr CLEAR IT. IF IHHEDIATE• ABSOLUTE• OR DISPLACEHENTr CLEAR THE ; ISTREAH LITERAL. Page A-6 VAX 11/780 FIELD AND MACRO DEFINITIONS .me "Machine definition 1D.ADDRl=<63:5B> IBUF=O DAY.TIME=! SYS.ID=3 RXCS=4 RXDB=5 TXCS=6 TXDB=7 DQ=B NXT.PER=9 CLK.CS=OA INTERVAL=OB CES=OC VECTOR=OD SIR=OE PSL=OF TBUF=10 TBER0=12 TBER1=13 ACC.0::::14 ACC.1=15 ACC.2=16 ACC.CS=17 SIL0=18 SBI.ERR=19 TIME.ADDR=1A FAULT=1B COMP=1C MAINT=1D PARITY=1E USTACK=20 UBREAK=21 WCS.ADDR=22 WCS.DATA=23 : ID.ADDR, J" HD BUS ADDf<ESS ;RD ;SPECIFIER/LITERAL DATA FROH IB ;Rit+WR ;cuRRENT TIME OF DAY ••• ; MUST READ U~TIL STOPS CHANGING ;RD ;SYSTEM IDENTIFICATION ;RiltWR ;coNSOLE RECIEVE CONTROL/STATUS ;RD ;coNSOLE RECIEVE DATA BUFFER ; <TO-ID REGISTER> ;coNSOLE TRANSMIT CONTROL/STATUS ;CONSOLE TRANSMIT DATA BUFFER ; <FROM-ID REGISTER> ;DATA PATH D/Q REGISTERS CMAINT ONLY> ;wR ;INTERVAL CLOCK NEXT PERIOD REGISTER ;RD+WR ;INTERVAL CLOCK CONTROL/STATUS ;RD ;CURRENT INTERVAL COUNT ;RD+WR ;cpu ERROR/STATUS ;RiltWR ;EXCEPTION & INTERRUPT CONTROL ;RD+WR ;SOFTWARE INTERRUPT REGISTER rRD+WR ;PROCESSOR STATUS LONGWORD ;TRANSLATION BUFFER DATA ;TB ERROR/STATUS 0 ;TB ERROR/STATUS 1 ;ACCELERATOR REGISTER tO ;ACCELERATOR REGISTER t1 ;ACCELERATOR REGISTER t2 ;ACCELERATOR CONTROL/STATUS ;NEXT ITEM FROM SBI HISTORY ;sBI ERROR REGISTER ;sBI TIMEOUT ADDRESS ;FAULT/STATUS ;sBI SILO COMPARATOR ;SBI MAINTENANCE ;CACHE PARITY ;MICROSTACK ;MICRO BREAK ;WRITING WCS COUNTS ADDRESS Page A-7 VAX 11/780 FIELD AND MACRO DEF'INITIONS ;ID BUS ADDRESSES CONTINUED. POBR=24 P1BR=25 SBR=26 KSP=2B ESP=29 SSP=2A USP=2B ISP=2C FPDA=2D D.SV=2E a.SV=2F -ro<rn ADDRESSES 24-3F ARE RAH LOCATIONS ;PROCESS SPACE 0 BASE REGISTER ;PROCESS SPACE 1 BASE REGISTER ;SYSTEM SPACE BASE REGISTER ;KERNEL STACK POINTER ;EXEC STACK POINTER ;suPERVISOR STACK POINTER ;usER STACK POINTER ;INTERRUPT STACK POINTER ;GENERAL TEMPS T1=31 T2=32 T3=33 T4=34 T5=35 T6=36 T7=3"7 TB=38 T9=39 PCEIB~.;:JA SCBB=3B POLR=3C P1LR=3D SLR=3E ;PROCESS CONTROL BLOCK BASE ;svsTEH CONTROL BLOCK BASE ;PROCESS 0 LENGTH REGISTER f PROCESS 1 LENGTH REGISTER ;svSTEH LENGTH REGISTER .CREF Jl=<12:0>r.NEXTADDRESS .NOC:REF ;NEXT MICRO WORD ADDRESS Page A-8 VAX 11/780 FIELD AND MACRO DEFINITIONS .TOC "Machine definition KMX/=<63:58> .8=0 .1=1 +2=2 .3=3 .4=4 SP1.CON=5 SP2.CON=6 ZER0=6 SC=7 ;B : KMX" • fCONSTANTS OR FROM Ft< ;e.0 FROM Ft< ;t1 FROM Ft< ;t2 FROM Ft< ;t3 FROM Ft< ;t4 FROM Ft< fSPECIFIER 1 CONSTANT ;sECIFIER 2 CONSTANT (-11 MODE> ; OR ZEROS <VAX MODE> ;scr9:0J FROM Ft< - 3F: CONSTANTS (1 CYCLE SETUP IF ALU IN ARI TH MODE> HIECIMAL VAL.LIE OF CONSTANT .14=8 .A0=9 .34=0A .28=0B .40=0C .50=0D .7FFO=OE .EF=OF .80=10 .8000=11 .FF=12 .FF00=13 .1E=14 .3F=15 .7F=16 .7=17 .F=18 .10=19 .FFE8=1A .FFF0=1B .FFF8=1C .20=1D .30=1E .18=1F .3FF=20 .C=21 .D=22 .1F=23 .1F00=24 .B0=25 .E003=26 .7C=27 .FFE0==28 .60=29 Sf'ARE=2A .DFCF=2B .4000=2C .FFF1=2D .19=2E .FFF9=2F no H60 ;s2 ;40 ;64 ;00 ;******* '239 H28 ;-32768 .3000=0E If s!:lstem rev is less than 6 ******* ;255 ;-256 ;Jo ;63 H27 ;7 H5 ;16 ;-24 ;-:1.6 ;-a ;32 ;49 '24 91023 H2 H3 ;31 ;7936 H76 ; H24 f-32 j96 'i' .FFEF=2C If s!:lstem rev is less than 6 ******* ******* -15 25 -7 Page A-9 VAX 11/780 FIELD AND MACRO DEE~INITIONS P KHX DEFINITION CONTINUEI• .FFFF=30 .88•31 .3030•32 .f'o•33 .C0•34 .6=35 .9•36 .FFF6•37 .FFF5=38 .1A=39 .24=3A .1B•3B .FFFC=3C .A=3D .7E•3E SPARE•3F f-1 H n f240 '192 16 f9 f-10 f-11 f26 f36 f27 f-4 HO '126 Page A-10 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition MCT/=<47:42>r.DEFAULT=3E TEST.RCHK=OO MEM.NOP=02 TEST.IJCHK=04 IJRITE.V.NOCHK=OA IJRITE.V.IJCHK=OC LOCKIJRITE.V.XCHK=OE READ.V.RCHK=lO READ.V.NOCHK=12 READ.V.WCHK=14 READ.V.IBCHK=16 READ.V.NEIJPC=18 LOCKREAD.V.NOCHK=lA LOCKREAD.V.IJCHK=lC SBI.HOLD=20 SBI.HOLD+UNJAM=22 INVALIDATE=24 VALIDATE=26 EXTIJRITE.P=28 IJRITE.f'=2A LOCKIJRITE.f'=2E READ.P=32 READ.INT.SUM=36 LOCKREAD.P=3A ALLOW.IB.READ=3E MSC/=(29:26>r.DEFAULT=O NOP=O CHK. CHM==O 1 CUK.FLT.OPR=02 CHK • OitD. AitDR=03 IRD=04 LOAD.STATE=05 LOAD.ACC.CC=06 READ.RLOG=07 CLR.FPD=OB SET.FPD=09 CLR.NEST.ERR=OA SET.NEST.ERR=OB SECOND.REF=OC RETRY.NO.TRAP=OD RETRY.TRAP=OE INH. CM• AI1ItR==OF MCTr MSC" ;MEMORY CONTROL fTEST TBUF WITH READ CHECK ;NEITHER CPU NOR IB GETS HEM CYCLE fTEST TBUF WITH WRITE CHECK ;wRITEr INHIBIT TRAPS ;WRITE• NORMAL VARIETY ;INTERLOCK WRITEr VIRTUAL ADDRESS fREADr NORMAL VARIETY fREADr INHIBIT TRAPS fREAD FOR MODIFY ;READr CHECK CONTROLLED BY !BUFFER ;BEGIN NEW INSTRUCTION STREAM ; DATA GOES TO INSTRUCTION BUFFER ;INTERLOCK READ, INHIBIT CHECK ;INTERLOCK READr NORMAL VARIETY ;sTOP ALL SBI ACTIVITY fRESET SBI fCLEAR CACHE ENTRIES ;MICRODIAGNOSTIC FORCE VALID fEXTENDED WRITE TO CLEAR MOS ERRORS fWRITEr PHYSICAL fINTERLOCK WRITEr PHYSICAL fREADr PHYSICAL fINTERRUPT SUMMARY READ ;INTERLOCK READr PHYSICAL ;arvE IB A CYCLE IF IT WANTS ONE ;DEFAULT fCREATE NEW PSL FOR CHM ;uTRAP IF ALU<15>=1r ALU<14:7>=0 fTHIS STATE IS INSTRUCTION DECODE ;TAKE CONDITION CODES FROM ACCE~ERATOR ;<AND POP RLOG STACK> fCLEAR PSL<FPD> BIT ;SET SAME ;CLR NESTED ERROR FLAG IN CPU STATUS ;SET SAHE ;oF UNALIGNED DATA REFERENCE fAPPLY SAVED CONTEXTr INHIBIT TRAPS ;APPLY SAVED CONTEXT TO THIS REF ;ALLOW USE OF FULL 32-BIT ADDRESS Page A-11 VAX 11/780 FIELD AND MACRO DEJ~INITIONS .roe "Machine definition PCK/•(J4:J2>r.DEFAULT•O NOP•O PC-VA=1 PC-IBA•2 VA+4•3 PC+1•4 PC+2•5 PC+4=6 PC+N=7 DK/•<54:51>•·DEFAULT•O NOP=O LEFT2•1 RIGHT2=2 LEFT=5 RIGHT•6 SHF•S SHF.FL•9 DEC.CON.. OA ACCEL•OB D•OC ID•OE CLR•OF : PCK• QK, RAMX, RBMX" fADDRESS COUNT CONTROL I DEFAULT fVA-VA+4 f PC-PC+l f PC-PC+2 f PC_PC+4 f PC-PC+N, N IS DETERMINED BY INSTR BUFFER fDEFAULTr HOLD fDOUBLE SHIFT LEFT 2 IDOUBLE SHIFT RIGHT 2 fLOAD SHF• INTEGER FORMAT fLOAD SHFr UNPACKED FLOATING FORMAT fDECIMAL CONSTANT • 6'9 IN EACH NIBBLE fFOR WHICH ALU CRY OUT IS FALSE fLOAD ACCELERATOR DATA FROM DF BUS fLOAD ID BUS fLOAD ZERO RAMXl=<77S77>,.DEFAULT=O DaO Q=l fDATA PATH MIXER TO AMX fDEFAULT RBHX/•<77:77> Q=O D•l fDATA PATH MIXER TO BHX. SAHE BIT AS RAHX Page A-12 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe •Machine definition : SCKr SGNr SHFr Sir SHX• SCKl=<23:23>r.DEFAULT=O NOP=O LOAD=1 ISC REGISTER CONTROL HIEFAULTr HOLD PLOAD SHX<09:00> SGN/=(50:4S>r.DEFAULT=O NOP=O LOAI•.SS=1 SS.FROH.SD=2 NOT.SD=J SD.FROH.SS=4 SS.XOR.ALU=5 ADD.SUB=6 CLR. SI•+.SS=7 fSIGN CONTROLS ;DEFAULT 9SS-ALU<15> ISS-SD fSD-NOT SD ;sri_ss fSit-ALU<15)r ss_ss.xoR.ALU<15) 9SD-ALU<15>r ss_ss.xoR.ALU<15>.XOR.IR<1> fCLEAR BOTH SHFl=<B7:85)r.DEFAULT=O ALU=O LEFT=l RIGHT=2 ALU.I•T=J RIGHT2=4 LEFT3=5 fALU SHIFTER CONTROLS ;DEFAULT• SHF-ALU 9SHF-ALU<L1)r INSERT SI CNTL fSHF-ALU<Rl>r INSERT SI CNTL PSHF-ALU<DT: LOrL1rL2rL3>• INSERT 0 PSHF-ALU<R2>r INSERT SI CNTL ;sHF-ALU<LJ) Sll=<57:55)r.DEFAULT=3 JSHIFT INPUT CONTROLS SHF D DIVD=O ASHR=l ASHL=2 ZER0=3 SF'ARf.=4 DIV=5 HUL+=6 HUL-=7 !:iHX/=<17: 16> EALU=O FE=1 ALU=2 ALU.EXP=J PSL<N> ALU 31 0 0 031 0 1 ;MIXER TO SC PEALU <9:0> 9FE<9:0> ;ALU<09:00> PALU<14:07> 0 ll31 00 0 ALU C31 031 D31 0 0 ll31 ALU C31 ALU Orl 0 ALU Or1 1 Page A-13 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition spa, SPO.AC, Sf'O.ACN. Sf'O.ACN11, Sf'O.R" SP0/=(41:35>,.DEFAULT=O NOF'=O LOAD.LC.SC=6 WRITE.RC.SC=7 fSCRATCH PAD OPCODE• 7 BITS fDEFAUl.T fLOAD l.Cr ADR=SC[03:00J fWRITE RC• ADR=SC[OJ:OOJ BPO.ACl=-<41:30> LOAD.LAB=! LOAD.LA=2 WRITE. RAB=3 ;4 FUNCTION BITS OF SPO FIELD fLOAD LA, LB FROM R<ACN> fLOAD LA-RN• HOLD LB fWRITE RA• RB <ACN> SPO.ACN/=(37:35> Sf'1.SP1=0 SP2.SP2=1 SP2.SP1=2 PRN=3 PRN+1=4 SC=5 SP1+1=6 SPO.ACN11/=(37:35> SRC.SRC=O DST.DST=! DST.SRC=2 SRC.SRC=3 SRC.OR.1=4 SC=5 SPO.R/=<41:39> LOAD.LC=2 WRITE.RC•3 LOAD.LAB•4 WRITE.RAB=5 LOAD.LAB1.WRITE.RC•6 LOAD.LC.WRITE.RAB1=7 fAC NUMBER IN SPO FIELD fVAX MODE RA RB fO Sf'1 R SP1 R ;1 Sf'2 R SP2 R P2 SP2 R SP1 R ;3 PRN PRN ;4 PRN+1 PRN+1 ;5 SC<03:00> SC<03:00> 16 SP1 R+l SP1 R+1 fAC NUMBER IN SPO FIELD -- 11 HODE RA RB f-11 MODE f 0 SRC R SRC R 1 DST R DST R 2 SRC R DST R SRC R 3 SRC R SRC R .OR. 1 4 SRC R .OR. 1 SC<03:00> 5 SC<03:oo> fSCRATCH PAD FUNCS WITH LOW 4 BITS OF SP AS ADR fLOAD LC• ADR=SPO.RN fWRITE RC fLOAD LA• LB fWRITE RA• RB fLOAD LA• LB[R1J, AND WRITE RCCRNJ fLOAD LCCRNJ, AND WRITE RA, RBCR1J Page A-14 VAX 11/780 FIELD AND MACRO DEFINITIONS .roe "Machine definition SPO.RAB/=(38:35> RO=O Rl=l R2=2 R3=3 R4=4 RS=S R6=6 R7=7 AP=OC Ff'=OD SP=OE RlS=OF : SPO.RAB. SPO.RCr sue. VAK" fRA/RB LOCATIONS fR12 = ARGUMENT LIST POINTER ;R13 STACK FRAME POINTER fR14 STACK POINTER fR15 PCr TO SOFTWARE, SCRATCH TO UCODE Sf'O.RC/=(38:35> TO=O Tl=l T2=2 T3=3 T4=4 T5=5 T6=6 T7=7 LC.SV=8 VA.SV=9 f'TE.VA=OA f'TE.PA=OB f'C.SV=OC SC.SV=Oir VA.REF=OE MBIT .VA=OF f'TE.MASK=OF ;RC LOCATIONS SUB/=(65:64),.DEFAULT=O NOP=O CALL=l ;SUBROUTINE CONTROL rnEFAUL.T JPUSH UPC OF THIS MICROINSTRUCTION ; ONTO USTACK f 1 0R 1 TOP OF USTACK TO UPC 9 ANir POP USTACK fREPLACE LOW B BITS OF NEXT ; UPC WITH SPECIFIER DECODE FROM ; INSTRUCTION BUFFER RET=2 SPEC=3 VAKl=<25:2S>r.DEFAULT=O NOP=O LOAD=l ;HEM MGMT SAVES LC HERE · fDEFAULT ;LOAD VA Page A-15 VAX 11/780 FIELD AND MACRO DEF.'INITIONS .roe •Machine definition Validitw checks• .SET/VO=<.NOTC<NATIVE>J> .SET/Vl=<NATIVE> .CREF fRE-ENABLE CROSS REFERENCE Page A-16 VAX 11/780 FIELD AND MACRO .roe 'Macro definition ALU--1 ALU_OCA> ALU_O+D ALU_OtDt1 ALU_OtK[J ALU_OtK[Jt1 ALU_OtLBt1 ALU_OtLC ALU_OtLCt1 ALU_OtHASKt1 ALU_o+o ALU_Ot0t1 ALU_O-D ALU_O-D-1 ALU-0-K[J ALU_O-K[J-1 ALU_O-LB ALU_O-LC ALU_O-LC-1 ALU_0-0 ALU_O-D-1 ALU-OCJD ALU_O[JLC ALU-D ALU-DCB> ALU-DtK[J ALU_D+KCJt1 ALU-DtKCJ.RLOG ALU-DtLB ALU-DtLC ALU-DtLCt1 ALU_D+LC+PSL.C ALU_D+O ALU_Dt0t1 ALU_D+OtPSL+C ALU_DtRLOG ALU_D-K[J ALU_D-KCJ-1 ALU-D-LB ALU_D-LB.RLOG ALU_D-LC ALU_D-LC-1 ALU_D-0 ALU_D-D-1 ALU-D.OXT[J ALU_D.OXTCJtKCJ ALU_D.OXTCJtLC ALU_D.OXTCJtQ ALU_D.OXTCJ-KCJ ALU_D.OXTCJ-Q ALU_D.OXTCJ.AND.KCJ ALU_D.OXTCJ.ANDNOT.KCJ ALU_D.OXTCJ.OR.O ALU_D.AND.KCJ ALU_D.AND.HASK ALU_D.ANDNOT.KCJ ALU-D.ANDNOT.HASK ALU-D.ANDNOT.Q ALU_D.OR.KCJ ALU_D.OR.LC ALU_D.OR.Q DEF~NITIONS Page A-17 : Resister transfer macros• "AHX/RAHX.OXTrDT/LONGrALU/NOTA" "AHX/RAHX.OXTrDT/LONG,ALU/A" 'AHX/RAHX.OXT,DT/LONGrRBMX/DrBMX/RBMXrALU/AtB" "AHX/RAHX.OXTrDT/LONGrRBHX/DrBMX/RBMXrALU/A+D+1" "KHX/@1rBMX/KHXrAMX/RAMX.OXTrDT/LONGrALU/AtB' "KMX/@1,BMX/KMXrAMX/RAMX.OXTrDT/LONGrALU/AtBt1' "AMX/RAMX.OXTrDT/LONGrBMX/LB,ALU/A+B+1' "AMX/RAMX.OXT,DT/LONGrDMX/LC,ALU/A+B" "AMX/RAMX.OXT,DT/LONG,BMX/LC,ALUIA+B+1" AMX/RAMX.OXT,DT/LONGrBMX/MASK,ALU/AtB+1• "AMX/RAMX.OXT,DT/LONG,RBMX/Q,BMX/RBMXrALU/AtB" AMX/RAMX.OXTrDT/LONGrRBMX/OrBMX/RBMXrALU/A+B+1• "AMX/RAMX.OXTrDT/LONGrRBMX/DrBMX/RBMXrALU/A-B" "AMX/RAMX.OXTrDT/LONGrRBMX/DrBMX/RBMXrALU/A-B-1" 'AMX/RAMX.OXTrDT/LONGrKMX/@lrBMX/KMXrALU/A-B" 'KMX/@1rBMX/KMXrAMX/RAMX.OXT,DT/LONGrALU/A-B-1' 'AMX/RAMX.OXTrDT/LONGrBMX/LBrALU/A-B' AMX/RAMX.OXTrDT/LONGrBHX/LCrALU/A-D 'AMX/RAMX.OXTrDT/LONGrBMX/LCrALU/A-B-1" "AHX/RAMX.OXTrDT/LONGrRDMX/OrBMX/RBMXrALU/A-B" 'AMX/RAMX.OXTrDT/LONGrRBMX/OrBMX/RBMXrALU/A-B-1" "ALU/@lrAMX/RAMX.OXTrLONGrBMX/RBMXrRBMX/D" "ALU/@lrAMX/RAMX.OXTrLONG,DMX/LC" "RAMX/D,AMX/RAMXrALU/A" "RBMX/DrBMX/RBMXrALU/B" RAMX/DrAMX/RAMXrKMX/@lrBMX/KMXrALU/AtB "RAMX/DrAMX/RAMXrKMX/@1rDMX/KMXrALU/A+D+1" "AMX/RAMXrRAMX/DrKMX/@lrBMX/KMXrALU/A+D.RLOG" RAMX/D,AMX/RAMXrBMX/LB,ALU/A+B "RAMX/D,AMX/RAMXrDMX/LCrALU/AtB" "RAMX/D,AMX/RAMXrBMX/LCrALU/AtBtl" 1 RAMX/D,AMX/RAMXrBMX/LCrALU/A+BtPSL.C 1 "RAMX/DrAMX/RAMXrRBMX/Q,BMX/RDMXrALU/AtB" "RAMX/DrAMX/RAMXrRBMX/OrBMX/RBMXrALU/A+B+l" "ALU/AtBtPSL.CrAMX/RAMXrBMX/RDMXrRBMX/OrRAMX/D" "ALU/AtBrAMX/RAMXrRAHX/D,BHX/OrMSC/READ.RLOG" 1 RAHX/DrAMX/RAMXrKMX/@lrBMX/KMXrALU/A-B 1 "RAMX/DrAMX/RAMXrKMX/@lrBMX/KMXrALU/A-B-1 1 1 RAHX/D,AHX/RAMXrBMX/LBrALU/A-B 1 "RAHX/DrAMX/RAMXrBMX/LB,ALU/A-B.RLOG" "RAHX/DrAMX/RAMXrBMX/LCrALU/A-B" "RAMX/D,AMX/RAMXrBMX/LCrALU/A-B-1" RAHX/DrAMX/RAMXrRBHX/O,BHX/RBMXrALU/A-B" 1 RAHX/DrAMX/RAMXrRBMX/OrBMX/RBHXrALU/A-B-l 1 "RAHX/DrAMX/RAMX.OXTrDT/@lrALU/A" 1 RAHX/DrAMX/RAHX.OXTrDT/@1,KHX/@2rBMX/KMXrALU/A+B 1 "ALU/AtB,AHX/RAMX.OXTrDT/@1rRAHX/D,BHX/LC" 1 ALU/AtBrAHX/RAHX.OXTrDT/@lrRAHX/DrBMX/RBHXrRBHX/0 1 "RAHX/D,AMX/RAHX.OXT,DT/@1,KMX/@2rBMX/KMX,ALU/A-B" "RAMX/D,AMX/RAMX.OXT,DT/@lrRBMX/OrBMX/RBMXrALU/A-B" 1 RAMX/DrAMX/RAMX.OXT,DT/@1,KMX/@2rBMX/KMX,ALU/AND 1 "ALU/ANDNOTrAMX/RAMX.OXTrDT/@lrRAMX/DrBMX/KMXrKMX/@2" 1 RAMX/DrAMX/RAMX.OXTrDT/@lrBMX/RBMXrALU/OR 1 1 RAMX/DrAMX/RAMXrKMX/@lrBMX/KMXrALU/AND 1 1 RAMX/DrAHX/RAMXrBMX/MASKrALU/AND 1 ·"RAMX/DrAMX/RAMX,KMX/@1rDMX/KMXrALU/ANDNOT" "RAMX/D,AMX/RAMXrBMX/MASK,ALU/ANDNOT" "RAMX/DrAMX/RAMXrRBMX/OrBMX/RBMXrALU/ANDNOT" "RAMX/DrAMX/RAMXrKMX/@lrBMX/KMXrALU/OR" RAMX/DrAMX/RAMXrBMX/LC,ALU/OR "RAMX/DrAMX/RAMXrRBMX/OrBMX/RBMXrALU/OR" 1 1 1 1 1 1 1 1 1 1 1 VAX 11/780 FIELD AND MACRO DEFINITIONS ALU-D.OR.RC[J ALU_D.ORNOT.HASK ALU-D.SXT[J ALU-D. SXH JtK[ J ALU_[I. SXH Jtll ALU_D.SXT[J.ANDNOT.K[J ALU_D.SXT[J.AND.K[J ALU_D.XOR.K[J ALU_D.XOR.LC ALU_D.XOR.ll ALU .. D. XOR• RCC J ALU_Jl.XOR.RCJ ALU .. DI: JK [ J ALU .. DCJLB ALU_[l[JLC ALU_D[Jll ALILK[J ALU .. LA ALU-LA+K[J ALU_LA+K[Jtl ALU_LA+K[J.RLOG ALU_LA+LB ALU_LA+LC ALU-LA+LC+l ALU_LA+LC+PSL.C ALU_LA+ll ALU_LA-[1 ALU_LA-D-1 ALU_LA-1\[J ALU_LA-K[J-1 ALU .. LA-K [ J. RLOG ALU_LA-L.C ALU .. LA-ll ALU_LA-ll-1 ALU_. LA. AND. KC J ALU-LA.AND.LC ALU_LA.ANDNOT.K[J ALU-LA+ANDNOT+HASK ALLJ_LA.OR.KCJ ALU-LA.XOR.LC ALILLACJD ALU-LACJLB ALU_LA[JO ALU-LB ALILLC ALU_NOT.D ALU_NQT.K[J ALU .. NOT. RCC: J ALU .. PACK. FP ALU_ PC ALU_Q ALU .. ll< B) ALU_IHK[J ALU_O+KC Hl ALU_ll+LB ALU_ll+LB+l ALU_O+LC ALU-D+LC+l ALU_O+LC+PSL.C ALU_O+HASK ALU_tl--D AL.U_.Q-D-1 ALU_ll--KCJ "RAHX/DrAHX/RAHXrSPO.R/LOAD.LCrSPO.RC/@1,flMX/L.C,ALU/OR" "RAMX/DrAMX/RAMXrBMX/MASK,ALU/ORNOT" "RAMX/DrAMX/RAMX.SXTrDT/@lrALU/A" "RAMX/DrAMX/RAMX.SXTrDT/@lrKMX/@2,BMX/KMXrALU/A+B" "RAHX/DrAMX/RAMX.SXTrDT/@lrBMX/RBMXrALU/A+B" "RAMX/DrAMX/RAMX.SXTrDT/@lrALU/ANDNOTrBMX/KMXrKMX/@2" "RAMX/DrAMX/RAMX.SXTrDT/@lrKMX/@2rBMX/KMXrALU/AND" "RAMX/DrAMX/RAHXrKMX/@lrBHX/KMXrALU/XOR" "RAHX/DrAHX/RAMXrBHX/LCrALU/XOR" "RAHX/DrAHX/RAMXrRBHX/GrBMX/RBMXrALU/XOR" "RAHX/DrAMX/RAMXrSPO.R/LOAD.LCrSPO.RC/@lrBMX/LCrALU/XOR" "RAHX/DrAMX/RAMXrSPO.R/LOAD.LABrSPO.RAB/@lrBMX/L.BrALU/XOR" "RAMX/DrAHX/RAMXrKHX/@2rBHX/KHXrALU/@1" "ALU/@lrAMX/RAMXrRAMX/DrBMX/LB" "RAMX/DrAMX/RAMXrBMX/LCrALU/@1" "RAMX/DrAMX/RAMXrRBMX/Q,DMX/RBMXrALU/@1" "KMX/@lrBHX/KHXrALU/B" "AMX/LA, ALU/ 11 • "AMX/LArKMX/01rDMX/KHXrALU/AtD" "ALU/A+B+lrAHX/LArBMX/KMXrKMX/@1" "AMX/LA, KMX/EH, BMX/KHX, ALU/A+B. f<LOG" "AHX/LArBMX/LBrALU/A+B" "ALU/A+BrAMX/LArBMX/LC" "ALU/A+B+lrAHX/LArDHX/LC" "ALU/A+B+PSL.CrAMX/LArBMX/LC" "ALU/A+BrAHX/LArBMX/RBMXrRBMX/ll" "AMX/LArRBMX/DrBMX/RBMXrALU/A-B" "AMX/LArRBMX/DrBMX/RBMXrALU/A-B-1" "AMX/LArKHX/@lrBMX/KMXrALU/A-B" "AMX/LArKMX/@lrBMX/KMXrALU/A-B-1" "AMX/LArKHX/01rBMX/KMXrALU/A-B.RLOG" "ALU/A-BrAMX/LA,BMX/LC" "ALU/A-BrAHX/LArBHX/RBMXrRBMX/G" "ALU/A-B-1rAHX/LArBMX/RBMXrRBHX/ll" "AMX/LArKMX/@1rBHX/KMXrALU/AND" "ALU/ANDrAMX/LArBMX/LC" "AMX/LArKHX/@1rBMX/KMXrALU/ANDNOT" "AMX/LArBMX/MASKrALU/ANDNOT" "ALU/ORrAMX/LArBMX/KMXrKMX/@1" "AMX/LArBMX/LCrALU/XOR" "AMX/LArRBHX/DrBMX/RBMXrALU/@1" "AMX/LArBMX/LBrALU/@1" "AMX/LArRBMX/llrBHX/RBMXrALU/@1" "BMX/LBrALU/11" "BHX/LCrALU/li" "ALU/NOTArAMX/RAHXrRAMX/D" "BMX/KHXrKMX/@1rALU/ORNQT,AMX/RAMX.OXTrDT/LONG" "SPO.R/LOAD.L.CrSPO.RC/@1rBHX/LCrAMX/RAMX.OXT,DT/LONGrALU/ORNOT" "BMX/PACKED.flrALU/B" "BMX/PC, ALU/ll" "RAHX/llrAHX/RAMXrALU/A" "RBMX/llrBHX/RBHXrALU/B" "RAMX/llrAHX/RAMXrKMX/@1rBHX/KMXrALU/A+B" "ALUIA+B+1rAHX/RAMXrRAMX/Q,BMX/KMXrKMX/@1" "RAMX/llrAHX/RAHXrBMX/LBrALU/A+B" "RAMX/llrAHX/RAMXrBMX/LBrALU/A+B+1" "RAHX/llrAHX/RAHXrBHX/LCrALU/A+B" "ALU/A+B+1rAHX/RAMXrRAHX/llrDHX/LC" "ALU/A+B+PSL.CrAHX/RAMXrRAHX/llrBHX/LC" "ALU/A+BrAHX/RAMXrRAHX/llrBHX/HASK" "RAHX/llrAMX/RAHXrRBMX/DrBMX/RBHXrALU/A-B" "ALU/A-B-lrAMX/RAMXrRAMX/llrBMX/RBMXrRBMX/D" "RAHX/llrAMX/RAHXrKMX/@1rBMX/KMXrALU/A-B" Page A-18 VAX 11/780 FIELD AND MACRO DEFINITIONS Page A-19 ALU_Q-LB ALU_Q-LC ALU_Q-HASl<-1 ALU_Q.OXHJ ALU_ll. OXTC HD ALU_Q.OXTCHD+l ALU_ll.OXTCHl<CJ ALU .. ll. OXH J-[1 ALU_ll.OXTCJ-t<CJ ALILll. OXH J • ANDNOT. t<C l ALU_ll.OXT[J.OR.t<CJ ALU .. Q. OXTC J. OR• [I ALU_Q.AND.D ALU-ll.AND.t<CJ ALU_ll.ANDNOT.t<CJ ALU_ll.ANDNOT.HASI< ALU_ll.ANDNOT.RCJ ALLJ_Q.OR.t<CJ ALU_Q.OR.LC ALU_ll.ORNOT.t<CJ ALU_ll.SXHJ ALU_Q.SXTCJ+t<Cl ALU .. ll. SXTC HLB ALU_ll.SXTCJ+LB+l ALU_Q. SXTC J+PC ALU_ll.SXTCJ.ANDNOT.t<CJ ALU_ll.XOR.D ALU_ll.XOR.l<CJ ALU_D.XOR.LC ALU_ll.XOR.RCCJ ALU_QCJD ALU-R<DST> ALU-R<SC>.ANDNOT.KCJ ALU-R<SPl>+KCJ.RLOG ALU_RC<SC> ALU-RCCJ ALU-RLOG ALU .. RCJ ALU_R[J-KCJ ALU-RCJ.AND.KCJ ALU-RCJ.AND.LC ALU-RCJ.ANDNOT.t<CJ ALU-RCJ.ANONOT.HASK ALU-RCJ.OR.KCJ ALU_R[J.ORNOT.KCJ ALU-RCJ.XllR.KCl ALU_R[J.XllR.Q •RAHX/OrAHX/RAHXrBHX/LBrALU/A-B" •RAHX/QrAHX/RAHXrBHX/LCrALU/A-B" "ALU/A-B-lrAHX/RAHXrRAHX/OrBHX/HASt<• •RAHX/QrAHX/RAHX.OXTrDT/@lrALU/A" •ALU/A+BrAMX/RAHX.OXTrDT/@lrBMX/RBMXrRBMX/DrRAHX/Q• •ALU/A+B+lrAHX/RAHX.OXTrDT/@lrBMX/RBHXrRAHX/QrRBHX/D• •ALU/A+BrAHX/RAHX.OXTrDT/@lrRAHX/OrBHX/KHXrl<HX/@2• •ALU/A-BrRAHX/llrAHX/RAHX.OXTrDT/@1rBHX/RBHX" •ALU/A-BrAHX/RAHX.OXTrDT/@lrRAHX/OrBHX/KMXrKHX/@2" •ALU/ANDNOTrAMX/RAHX.OXTrDT/@lrRAMX/OrBHX/l<MX•KHX/@2" "ALU/ORrAHX/RAMX.OXTrDT/@lrRAHX/llrBMX/l<MXrKHX/@2" "ALU/ORrAHX/RAMX.OXTrDT/@1rRAMX/QrBMX/RBHXrRBHX/D" "AMX/RAMXrRAHX/llrBMX/RBMXrRBMX/DrALU/AND" "RAHX/llrAMX/RAHXrl<MX/@lrBMX/l<MXrALU/AND" "RAMX/llrAHX/RAMXrl<HX/@1rBMX/KMXrALU/ANDNOT" •RAMX/QrAMX/RAMXrBMX/MASl<rALU/ANDNOT" "ALU/ANDNOTrAMX/RAMXrRAMX/QrBHX/LBrSPO.R/LOAD.LABrSPO.RAB/@1" "RAMX/llrAHX/RAHXrKHX/@lrBMX/KHXrALU/OR" 1 RAHX/OrAMX/RAHXrBHX/LCrALU/OR 1 •ALU/ORNOTrAMX/RAMXrRAHX/llrBMX/l<HXrKHX/@1• "ALU/ArAMX/RAMX.SXTrDT/@lrRAMX/Q" •RAMX/QrAHX/RAHX.SXTrDT/@1rl<MX/@2rBMX/l<HXrALU/A+B" "RAMX/OrAHX/RAHX.SXTrDT/@1rBMX/LBrALU/A+B" •RAMX/QrAMX/RAHX.SXTrDT/@1rBMX/LBrALU/A+B+1" "RAMX/llrAMX/RAMX.SXTrDT/@lrBMX/PCrALU/A+B" "ALU/ANDNOTrAMX/RAHX.SXTrRAMX/QrBMX/KMXrKMX/@2rDT/@1" 1 RAHX/llrAMX/RAHXrBHX/RBMXrRBHX/D,ALU/XOR 1 "RAHX/llrAHX/RAMXrKHX/@lrBMX/KMXrALU/XOR" "RAMX/llrAMX/RAHXrBHX/LCrALU/XOR" "RAMX/llrAMX/RAMXrSPO.R/LOAD.LCrSPO.RC/@1rBMX/LCrALU/XOR" "RAHX/QrAMX/RAMXrRBHX/DrBMX/RBMXrALU/@1• "SPO.AC/LOAD.LABrSPO.ACN11/DST.DSTrAMX/LArALU/A" •spo.AC/LOAD.LABrSPO.ACN/SCrAHX/LArKMX/@1rBHX/KMXrALU/ANDNOT• •sPO.AC/LOAD.LABrSPO.ACN/SP1.SP1rAHX/LArKHX/@1rBMX/KMXrALU/A+B.RLOG• "SPO/LOAD.LC.SCrBMX/LCrALU/B" 1 SPO.R/LOAD.LCrSPO.RC/@lrBMX/LCrALU/B 1 "BHX/OrALU/BrMSC/READ.RLOG" •sPO.R/LOAD.LABrSPO.RAB/@lrAMX/LArALU/A" •spQ.R/LOAD.LABrSPO.RAB/@1rAMX/LArKHX/@2rBHX/l<HXrALU/A-B" •spQ.R/LOAD.LABrSPO.RAB/@1rAMX/LArKMX/@2rBMX/KMXrALU/AND" "SPO.R/LOAD.LABrSPO.RAB/@lrAMX/LArBHX/LCrALU/AND• . "SPO.R/LOAD.LABrSPO.RAB/@1rAMX/LArKMX/@2rBHX/KMXrALU/ANDNOT" •spo.R/LOAD.LABrSPO.RAB/@lrAMX/LArBHX/HASKrALU/ANDNOT" "SPO.R/LOAD.LABrSPO.RAB/@1rAHX/LArKHX/@2rBMX/KMXrALU/OR" "ALU/ORNOTrAHX/LArBHX/KMXrSPO.R/LOAD.LABrSPO.RAB/@lrKMX/@2" "SPO.R/LOAD.LABrSPO.RAB/@1rAMX/LArKMX/@2rBHX/KHXrALU/XOR" 1 1 SPO.R/LOAD.LABrSPO.RAB/@lrAHX/LArRBHX/Q,BHX/RBHX•ALU/XOR CACHE.P-DCJ CACHECLD CACHLD<llUAD> CACHE-D.INST.DEP CACHLDCJ CACHL[t[ J. LK CACHE .. DC J. NOCHK "VAK/NOPrMCT/WRITE.PrDT/@1rDK/NOP" D&CLD+ll D&RCC LPC D&VA-ALU U&VA_[lfLC D&VA_D+O D&VA-D·-KC J D&VA .. L.A "RAMX/D,AHX/RAHXrRBHX/QrBMX/RBMXrALU/A+BrSHF/ALUrDK/SHFrQK/SHF" "BHX/PCrALU/BrSHF/ALUrDK/SHFrSPO.R/WRITE.RCrSPO.RC/@1" 1 VAK/LOADrSHF/ALUrDK/SHF 1 "RAMX/DrAHX/RAHXrBMX/LCrALU/A+BrVAK/LOADrSHF/ALUrDK/SHF" ·n-D+llrVAK/LOAD" "RAMX/DrAMX/RAMXrKMX/@1,BMX/KHXrALU/A-BrVAK/LOADrSHF/ALUrDK/SHF" •AHX/LArALU/ArVAK/LOADrSHF/AlllrDK/SHF" •vAK/NOPrMCT/WRITE.V.WCHKrMSC/@1~DK/NOP" •HCT/EXTWRITE.PrLONGrVAK/NOPrDK/NOP" "VAK/NOPrHCT/WRITE.V.WCHl<•DT/INST.DEPrDK/NOP" "VAK/NOPrMCT/WRITE.V.WCHKrDT/91rDK/NOP" "VAK/NOPrHCT/LOCKWRI~E.V.XCHKrDT/@1rDK/NOP" "VAK/NOPrMCT/WRITE.V.NOCHKrDT/@1rDl</NOP" VAX 11/780 FIELD AND MACRO DEFINITIONS Page A-20 D&VA_LB D&VA-ll D&VA_QtLB.PC •RAHX/OrAHX/RAHXvBHX/PC.OR.LB~ALU/AtBrVAK/LOADrSHF/ALUrDK/SHF" D[l-CACHE D[J_CACHE.IBCHK D[J_CACHE.LK D[LCACHE.NOCHK DC LCACHE • P DC LCACHE.• WCHK •vAK/NOPrHCT/READ.U.RtHKrDT/@1rDK/NOP" •vAK/NOP,HCT/READ.V.IBCHK•DT/@1rDK/NOP• •VAK/NOPrHCT/LOCKREAD.V.WCHK,DT/@1rDK/NOP" •vAK/NOPrHCT/READ.V.NOCHKrDT/@1,DK/NOP" •VAK/NOPrHCT/READ.PrDT/@1rDK/NOP• ·vAK/NOPrHCT/READ.v.wcHKrDT/@1rDK/NOP" ILO IJ_OtK[Jt1 n_OtLCt1 D-0-D D-0-K[J D-0-ll IJ_0-0-1 ILACCEL &SYNC D-ALU D-ALU<FRAC> D-ALU.LEFT D_ALU.LEFT2 D-ALU.LEFT3 D-ALU.RIGHT D_ALU.RIGHT2 [I_ BLANK D_CACHE.INST.DEP D_CACHE.lK[J D_CACHE.WCHKCJ ILCACHECJ D-D<FRAC> D-D+KCJ D-D+KCJtl D-D+LB n_DtLC D_D+LC+PSL.C n_n+a ILDtlltl D-D-K[J D-D-LC D-D-Q Il-D-ll-1 D_D,OXT[J ILD. OXH JtK[ J D-D • OXH JtQ l)_D.OXHJtlHl D-D.OXTCJ.ANDNOT.KCJ IJ_D.OXT[J.QR,Q D_D.OXT[J.XQR,Q D-D.OXTCJ.XOR.RC[J D-I•. AND. KC J n_D.AND.KCJ.LEFT2 D-D.AND.KCJ.RIGHT D_D.AND.LC ILD. AND. MASK l)_D.AND.O IJ_D.AND.RCCJ D_D.ANDNOT.K[J D_D.ANDNOT.LC D_D.ANDNOT.PSWZ n_D.ANDNOT.o D_D.ANDNOT.RCCJ •DK/CLR• •AMX/RAMX.OXTrDT/LONGrKHX/@1rBHX/KHXrALU/AtBtlrSHF/ALUrDK/SHF• •BHX/LBrALU/BrVAK/LOADrSHF/ALUrDK/SHF" •RAHX/OrAHX/RAHXvALU/ArVAK/LOADrDK/Q• ~AHX/RAHX.OXTrDT/LONGrBHX/LCrALU/A+Bt1rSHF/ALUrDK/SHF• •AHX/RAMX.OXTrDT/LONGrRBHX/DrBHX/RBHXrALU/A-BrSHF/ALUrDK/SHF" "AHX/RAHX.OXTrDT/LONGrKHX/@lrBMX/KMXrALU/A-BrSHF/ALUrDK/SHF" "AHX/RAMX.OXTrDT/LONGrRBHX/llrBHX/RBHXrALU/A-BrSHF/ALUrDK/SHF" "ALU_O-ll-1rD-ALU~ "DK/ACCELrACF/SYNC" "SHF/ALUrDK/SHF" "SHF/ALUrDK/SHF.FL" "SHF/LEFTrDK/SHF' "SHF/ALU.DTrDT/LONGrDK/SHF" "SHF/LEFT3rDK/SHF" "SHF/RIGHTrDK/SHF" "SHF/RIGHT2rDK/SHF" "D_K[ .20J9 "VAK/NOPrHCT/REAID.V.IBCHKrDT/INST.DEPrDK/NOP• "VAK/NOPrHCT/LOCKREAD.V.WCHKrHSC/@lrDK/NOP" "VAK/NOPrHCT/REAID.U.WCHKrHSC/@1rDK/NOP" •vAK/NOPrMCT/REAO.U.RCHKrHSC/@1rDK/NOP" "RAHX/DrAMX/RAHXrALU/ArSHF/ALUrDK/SHF.FL' RAHX/DrAHX/RAHXrKHX/@1rBHX/KHXrALU/A+BrSHF/ALUrDK/SHF •RAHX/DrAHX/RAMXrKHX/@1rBHX/KHXrALU/AtBt1rSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrBHX/LBrALU/AtBrSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrBHX/LCrALU/AtBrSHF/ALUrDK/SHF' RAMX/DrAHX/RAHXrBMX/LCrALU/AtBtPSL.CrSHF/ALUrDK/SHF •RAHX/DrAHX/RAHXrRBHX/llrBHX/RBHXrALU/AtBrSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrRBHX/llrBHX/RBHXrALU/AtBtlrSHF/ALUrDK/SHf• •RAHX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/A-BrSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrBHX/LCrALU/A-BrSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrRBHX/ll•BHX/RBHXrALU/A-BrSHF/ALUrDK/SHf• •RAHX/DrAHX/RAHXrRBHX/OrBHX/RBHXrALU/A-B-lrSHF/ALUrDK/SHF" •RAHX/DrAHX/RAHX.OXTrDT/@1rALU/ArSHF/ALUrDK/SHF" •RAHX/DrAHX/RAHX.OXTrDT/@lrKHX/@2rBHX/KHXrALU/AtBrSHF/ALUrDK/SHF" •ALU/AtBrAHX/RAMX.OXTrDT/@lrBMX/RBHXrRBHX/GrD-ALU" •RAHX/DrAHX/RAHX.OXTrDT/@1rBHX/RBMXrALU/AtBt1rD-Al.U" "RAHX/DrAHX/RAHX.OXTrDT/@1rKHX/@2rBHX/KHXrALU/ANDNOTrSHF/AL.UrDK/SHF" •RAHX/DrAHX/RAHX.OXTrDT/@1rRBHX/llrBHX/RBHXrALU/ORrSHF/AL.UrDK/SHF' •DK/SHFrALU/XORrSHF/ALUrAHX/RAHX.OXTrRAMX/DrDT/@lrRBHX/Q,BHX/RBMX" •RAHX/DrAHX/RAHX.OXTrDT/@lrSPO.R/LOAD.LtrSPO.RC/@2rBHX/LCrAL.U/XORrSHF/ALUrDK/SHF' •RAMX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/ANDrSHF/ALUrDK/SHF' 1 RAHX/DrAHX/RAMXrKMX/@lrBHX/KHXrALU/ANDrSHF/ALU.DTrDT/LONGrDK/SHF 1 "RAHX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/ANDrSHF/RIGHTrDK/SHF• •RAHX/DrAHX/RAHXrBHX/LCrALU/ANDrSHF/ALUrDK/SHF' •RAHX/DrAHX/RAHXrBHX/HASKrALU/ANDrSHF/ALUrDK/SHF" •RAHX/DrAHX/RAHXrRBHX/llrBHX/RBHXrALU/ANDrSHF/ALUrDK/SHF• "RAHX/DrAHX/RAHXrSPO.R/LOAD.LCrSPO.RC/@lrBHX/LCrAL.U/ANDrSHF/ALUrDK/SHF• •RAMX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/ANDNOTrSHF/ALUrDK/SHF" "RAHX/DrAHX/RAMXrBHX/LCrALU/ANDNOTrSHF/ALUrDK/SHF• "DK/SHFrALU/ANDNOTrAHX/RAHXrRAHX/DrBHX/KHXrKHX/.4rSHF/ALU" "RAHX/DrAHX/RAHXrRBHX/Q,BHX/RBHXrALU/ANDNOTrSHF/ALUrDK/SHF" "RAHX/DrAHX/RAHXrSPO.R/LOAD.LCrSPO.RC/@1rBHX/LCrALU/ANDNOTrSHF/Al.UrDK/SHF" 1 1 1 1 Page A-21 VAX 11/780 FIELD AND MACRO DEFINITIONS ILD.LEFT D-D.LEFT2 ILD.OR.ASCII ILD.OR.KCJ ILit • OR• PSWC ILD.OR.PSWV ILD.OR.O ILD.OR.RC[l J)_D.OR.RCJ ILD. ORNOT. MASK ILD.RIGHT l)_D.RIGHT<B> ILD.RIGHT2 !)_It.SWAP D_D.SXTCJ I•-D.SXHJ .RIGHT D_D.XOR.KCJ l)_D.XOR.LC ILD.XOR.O ILDAL.NORH ILDAL.SC l)_D[Jl<[J D_D[JHASK D_It[JQ !)_INT.SUH ILK[J D-KCJ.RIGHT D-Kt:J.RIGHT2 n_LA D-LA<FRAC> D-LA+D+PSL.C ILLA-D D-LA-Kt:J D-LA.AND.K[J D-LA.RIGHT [l_LB ILLB.PC ILLC [l_LC<FRAC> ILNOT .D D.-NOT •Kt: J ILNOT .MASK D-NOT.O l)_NCJT.Rt:J D-PACK.FF' D-PACK.FP.LEFT ILPC ILPC.LEFT [l_Q [l_Q<FRAC> ILO+D n_o+KrJ I:U:HLD ILO+PC fl..O··D D... O··. D·-1 ILO·-K[J n._Q-K [ J •· 1 ILQ-PCSV 1La. oxrr. J [1_0.AND.K[J ILQ.AND.LC IUl. AND• HASK "DK/LEFT" "DK/LEFT2" "D-D.OR.Kt:.JOJ" "RAHX/DrAHX/RAHX,KHX/@1rBHX/KHXrALU/OR,SHF/ALUrDK/SHF" "DK/SHF•ALU/ORrAHX/RAHX•RAHX/D,BHX/KHXrKHX/.1rSHF/ALU" "DK/SHFrALU/OR•AHX/RAHX•RAHX/DrBHX/KHXrKHX/.2rSHF/ALU" 1 RAHX/D,AHX/RAHX,RBHX/QrBHX/RBHXrALU/ORrSHF/ALU,DK/SHF 1 "RAHX/D,AHX/RAHX,SPO.R/LOAD.LCrSPO.RC/91rBHX/LCrALU/ORrSHF/ALUrDK/SHF" "ALU/ORrAHX/RAHXrRAHX/DrBHX/LBrSPO.R/LOAD.LABrSPO.RAB/91rDK/SHF" "RAHX/D,AHX/RAHXrBHX/HASK,ALU/ORNOTrSHF/ALUrDK/SHF" "DK/RIGHT" "RBHX/DrBHX/RBHX•ALU/BrSHF/RIGHT•DK/SHF" "DK/RIGHT2" "DK/BYTE.SWAP" "RAHX/D,AHX/RAHX.SXTrDT/@1rALU/ArSHF/ALUrDK/SHF" "RAHX/DrAHX/RAHX.SXTrDT/@1rALU/ArSHF/RIGHTrDK/SHF" "RAHX/DrAHX/RAHXrKHX/91rBHX/KHXrALU/XOR,SHF/Al.UrDK/SHF" "RAHX/DrAHX/RAHXrBHX/LCrALU/XQR,SHF/ALUrDK/SHF' "RAHX/DrAHX/RAHXrRBHX/QrBHX/RBHXrALU/XORrSHF/ALUrDK/SHF" 'DK/DAL.SV" "DK/DAL.SC" "RAHX/DrAHX/RAHXrKHX/92rBHX/KHXrALU/@1rSHF/ALUrDK/SHF" "RAHX/DrAHX/RAHXrBHX/HASKrALU/@1rSHF/ALU•DK/SHF" 'RAHX/DrAHX/RAHXrRBHX/QrBHX/RBHXrALU/@1rSHF/ALUrDK/SHF" HCT/READ.INT.SUHrDK/NOP "KHX/@1rBHX/KHXrALU/BrSHF/ALUrDK/SHF" "KHX/@1rBHX/KHXrALU/BrSHF/RIGHTrDK/SHF" 'KHX/91rBHX/KHXrALU/BrSHF/RIGHT2rDK/SHF" AHX/LArALU/ArSHF/ALUrDK/SHF AHX/LArALU/ArSHF/ALUrDK/SHF.FL "AHX/LArRBHX/DrBHX/RBHXrALU/AtB+PSL.CrSHF/ALUrDK/SHF" 1 DK/SHFrALU/A-B•AHX/LA,BHX/RBHX,RBHX/DrSHF/ALU 1 "AHX/LArKHX/@1rBHX/KMXrALU/A-BrSHF/ALUrDK/SHF" 'AHX/LArKHX/91rBHX/KHXrALU/ANDrSHF/ALU,DK/SHF" AHX/LArALU/ArSHF/RIGHT•DK/SHF "BHX/LBrALU/BrSHF/ALUrDK/SHF' BHX/PC.OR.LBrALU/BrSHF/ALUrDK/SHF 1 BHX/LCrALU/BrSHF/ALUrDK/SHF 1 'BHX/LCrALU/BrSHF/ALUrDK/SHF.FL' 'RAHX/DrAHX/RAHXrALU/NOTArSHF/ALUrDK/SHF' 'KHX/@1rBHX/KHXrAHX/RAHX.OXTrDT/LONGrALU/ORNOTrSHF/ALUrDK/SHF' BHX/HASKrAHX/RAHX.OXTrDT/LONGrALU/ORNDTrSHF/ALUrDK/SHF "RAHX/QrAHX/RAHXrALU/NOTArSHF/ALUrDK/SHF' 'LA-RAC91lrAHX/LArALU/NOTArD-ALU" BHX/PACKED.FLrALU/BrSHF/ALUrDK/SHF BHX/PACKED.FLrALU/B,SHF/LEFTrDK/SHF "BHX/PCrALU/BrSHF/ALUrDK/SHF" • BHX/PC, ALU/B, SHF /LEFT, DK/StlF 'ItK/Q' RAHX/OrAHX/RAMXrALU/ArSHF/ALUrDK/SHF.FL "RAHX/OrAHX/RAHXrRBHX/DrBHX/RBHXrALU/AtBrSHF/ALUrDK/SHF" RAHX/QrAHX/RAHXrKHX/91rBHX/KHXrALU/A+BrSHF/ALUrDK/SHF" "RAHX/QrAHX/RAHXrBHX/LBrALU/AtBrSHF/ALUrDK/SHF" RAHX/OrAHX/RAHXrBHX/PCrALU/AtBrSHF/ALUrDK/SHF "RAHX/QrAHX/RAHXrRBHX/DrBHX/RBHXrALU/A-BrSHF/ALU,DK/SHF" "RAHX/OrAHX/RAHXrRBHX/DrBHX/RBHXrALU/A-B-1,SHF/ALU,DK/SHF" "RAHX/DrAHX/RAHXrKHX/91rBHX/KHXrALU/A-BrSHF/ALUrDK/SHF" "RAMX/OrAHX/RAHXrKMX/@1rBMX/KMXrALU/A-B-1,SHF/ALU,DK/SHF" "RAMX/OrAHX/RAHXrBMX/OrHSC/READ.RLOGrALU/A-BrSHF/ALUrDK/SHF" "RAMX/OrAHX/RAHX.OXTrDT/91rALU/ArSHF/ALUrDK/SHF" "RAHX/OrAHX/RAHXrKMX/91rBMX/KHXrALU/ANDrSHF/ALUrDK/SHF" "RAMX/OrAHX/RAMXrBHX/LCrALU/ANDrSHF/ALUrDK/SHF" "RAHX/DrAHX/RAHXrBMX/MASKrALU/ANDrSHF/ALUrDK/SHF" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I 1 1 1 1 1 VAX 11/780 FIELD AND MACRO DEFINITIONS ru~. AND. RC [ J D_ll.ANDNOT.D l)_ll.ANDNOT.K[J l)_ll.ANDNOT.MASK IUl. ANDNOT • PSWC ILll. ANDNOT • PSWN D_ll.ANDNOT.PSWZ D_Q.LEFT D_ll.OR.K[J 1)_0.0R.PSWC ILQ • OR. RC [ J [1_1]. ORNOT. MASK, IUl.RIGHT D_O.RIGHT2 ILO.SXT[J [I_(]. XOR• RC[ J [l_Q[JD IUl[JK[J ILQ[JMASK ILR<PRNt1 > D-R<SC> l)_R <SP1t1 > IJ_RC<SC> D_RC[J Il-RLOG ILRLOG. RIGHT ILR[J D_R[J(FRAC> l)_R[J.AND.K[J D_R[ J. OR. KC J ILRC J. ORNOT. KC J Page A-22 'RAHX/llrAHX/RAMXrSPO.R/LOAD.LCrSPO.RC/@1rBMX/LCrALU/ANDrSHF/ALUrDK/SHF" 'RAHX/OrAMX/~:AHXrRBMX/DrBHX/RBMXrALU/ANDNOTrSHF/ALUrDK/SHF" RAMX/OrAMX/RAMXrKMX/@1rBMX/KHX,ALU/ANDNOTrSHF/ALU,DK/SHF 1 'RAMX/OrAMX/RAMXrBMX/MASKrALU/ANDNOTrSHF/ALU,DK/SHF" 1 DK/SHF,ALU/ANDNOT•AHX/RAHX,RAMX/DrBHX/KMXrKMX/.1,SHF/ALU" 1 1 DK/SHFrALU/~1NDNOT,AHX/RAHXrRAHX/Q,BMX/KHX,KHX/.8,SHF/ALU" DK/SHF•ALU/ANDNOT,AMX/RAHX,RAHX/Q,BHX/KHX,KMX/.4,SHF/ALU' 'RAHX/Q,AHX/RAHX,ALU/A,SHF/LEFT,DK/SHF" 'RAMX/Q,AMX/RAHX,KMX/@1,BHX/KHX,ALU/OR,SHF/ALU,DK/SHF" 'DK/SHF,ALU/QR,AHX/RAMXrRAMX/Q,BHX/KMX,KMX/.1,SHF/ALU" 1 RAMX/OrAHX/RAHX.SPO.R/LOAD.LC.SPO.RC/@1,BHX/LC,ALU/OR•SHF/ALU,DK/SHF" RAHX/OrAHX/RAMX•BMX/MASK,ALU/ORNQT,sHF/ALU,DK/SHF" "RAHX/Q,AMX/RAHX,ALU/A,SHF/RIGHT,DK/SHF" "RAMX/llrAHX/RAMX,ALU/A,SHF/RIGHT2,DK/SHF" 'RAMX/OrAMX/RAMX.SXT,DT/@1,ALU/A,SHF/ALUrDK/SHF" 'RAMX/Q,AHX/RAHX,SPO.R/LOAD.LCrSPO.RC/@1,BHX/LCrALU/XORrSHF/ALUrDK/SHF" RAMX/Q,AHX/RAHX,RBMX/D,BMX/RBHX,ALU/@1,SHF/ALU,DK/SHF" "ALU/@1rSHF/ALU,DK/SHFrBMX/KMXrKMX/@2rAMX/RAMXrRAHX/0" 'RAMX/llrAMX/RAMX,BMX/MASK,ALU/@1,SHF/ALU,DK/SHF" SPO.AC/LOAD.LAB,SPO.ACN/PRNt1,AMX/LA,ALU/ArSHF/ALUrDK/SHF" "SPO.AC/LOAD.LAB,SPO.ACN/SC,AHX/LArALU/A,SHF/ALUrDK/SHF" 'SPO.AC/LOAD.LAB,SPO.ACN/SP1t1rAMX/LArALU/A,SHF/Al.UrDK/SHF" "SPO/LOAD.LC.sc.BHX/LC.ALU/BrSHF/ALU.DK/SHF" 'SPO.R/LOAD.LC,SPO.RC/91,BHX/LCrALU/BrSHF/ALUrDK/SHF" 'BHX/O,MSC/READ.RLOGrALU/B,SHF/ALU•DK/SHF" 1 BMX/O,HSC/READ.RLQG,ALU/BrSHF/RIGHT,DK/SHF" 'SPO.R/LOAD.LAB, SPO .RAB/CU ,AMX/LA rALU/A, SHF /ALU, DK/SHF" 'SPO.R/LOAD.LAB,SPO.RAB/@1rAMX/LArALU/ArSHF/ALUrDK/SHF.FL" 1 SPO.R/LOAD.LAB,SPO.RAB/@1rAMX/LArKMX/@2rBHX/KHXrALU/AND,SHF/ALUrDK/SHF" 'SPO.R/LOAD.LAB,SPO.RAB/@1,AHX/LArKHX/@2rBMX/KHXrALU/ORrSHF/ALUrDK/SHF" 1 1 1 1 1 LAB_Rr@1J,A~X/LA,BHX/KHXrKMX/@2,ALU/ORNOT,[l_ALU" EALU-D<EXP> EALU-FE EALU_K[J EALU_R[J<EXP> EAL.U_.sc EALU_sc+FE EALU._sc+Kr J EALU-SC-·FE EALILSC-K[ J EALU_sc.ANDNOT.K[J EALU_STATE "RAHX/D,AHX/RAMXrEBHX/AHX.EXPrEALU/B" EBHX/FE,EALU/B "KMX/@1rEBMX/KHXrEALU/B" "Sf'O.R/LOAD.LABrSPO.RAB/@1,AMX/LArEBMX/AHX.EXPrEALU/B" "EALU/A" "EBMX/FErEALU/AtB" "KHX/@1rEBHX/KMX,EALU/AtB" 'EBMX/FE,EALU/A-B" "KHX/@1rEBHX/KMX,EALU/A-B' "KMX/@1rEBHX/KMX,EALU/ANDNOT' "EALU/A,MSC/LOAD.STATE' FE&SC_K[J FE_O<A> FE_D<EXf'> FE_EALU FLK[J FLLA<EXP> FLNABS <SC-·FE > FE-NABS<SC-LA<EXP>> FE_CHEXP> FE..RCJ<EXP> FLSC FE-SCH FE_SCtFE FE ... SC+KCJ FLSC+LA<EXP> F'LSC··FE FE_SC-·KCJ FLSC-LA<EXP> FE_SC-SHF.VAL "KHX/@1rEBMX/KHX,EALU/BrFEK/LOAD,SHX/EALU,SCK/LbAD' "AMX/RAHX.OXT,DT/LONG,EBMX/AMX.EXPrEALU/DrFEK/LOAD" "RAHX/D,AMX/RAHX,EBHX/AMX.EXP,EAL.U/BrFEK/LOAD" "FEK/LOAD" 'KHX/@1,EBHX/KMXrEALU/B,FEK/LOAD' 1 AMX/LA,EBHX/AHX.EXf',EALU/D,FEK/LOAD 1 "EALU/NABS.A-BrEBHX/FE,FEK/LOAD" 'AHX/LArEBHX/AHX.EXf',EALU/NABS.A-B•FEK/LOAD" "RAHX/OrAMX/RAMX,EBHX/AHX.EXP,EALU/BrFEK/LOAD" "SPO.R/LOAD.LABrSf'O.RAB/@1rAHX/LArEBMX/AHX.EXf'rEALU/DrFEK/L.OAD" "EALU/ArFEK/LOAD' "EALU/A+1,FEK/LOAD" "EBHX/FErEALU/A+B,FEK/LOAD" "KMX/91rEBHX/KHXrEALU/A+B,FEK/LOAD" "AMX/LA,EBHX/AMX.EXP,EALU/A+B,FEK/LOAD" 1 EBHX/FErEALU/A-B,FEK/LOAD 1 "KHX/@1,EBHX/KHX,EALU/A-B,FEK/LOAD" AMX/LA,EBMX/AHX.EXP,EALU/A-B,FEK/LOAD" "EDMX/SHF.VAL•EALU/A-BrFEK/LOAD' 1 1 1 VAX 11/780 FIELD AND MACRO DEFINITIONS FE_SC.ANDNOT.FE FE-.SC.ANDNOT.KCJ FE .. SC •OR. KC J FE_SHF.VAL FE_!HATE "EBMX/FErEALU/ANDNOTrFEK/LOAD" "KHX/llrEBHX/KHXrEALU/ANDNOTrFEK/LOAD" "EALU/ORrEBHX/KHXrKHX/llrFEK/LOAD" "EBHX/SHF.VALrEALU/BrFEK/LOAD" "HSC/LOAD.STATErEALU/ArFEK/LOAD" :cD<SC)_[I :cD[ L[I :r:D_D&NO, SYNC ID-D,SYNC "CID/WRITE• SC" "CID/WRITE.KHXrID.ADDR/11° "CID/WRITE.KHXrADS/IBArKHX/SP1.CON" "CID/WRITE.KHXrADS/IBArKHX/SPloCONrACF/SYNC" Page A-23 KCJ "KHX/11° LAil._R<IIST> LAB..R<PRN> 1...AB.. R <PRNt 1 > L.AE:_R<SC> LAB.-R<Sf'1 > l.. Ail._R <Sf'1 +1 > LAB-.R1 IRCC: LO l...AB-R1&RCC:J_O+LC+1 l...AEl._R1 &RCC LO-It l.AB ... RURCC:LALU l.AB-R1&RCC:J_ALU.RIGHT2 l.AB-R1&RC[J_D+LC LAB_R1&RCC:J_D.OXTC:JtKCJ l.AB-R1&RCC:l_ll-KC:J 1...AEU~C::J "Sf'Q,AC/LOAD.LABrSPO.ACN11/DST.DST 0 'SPO,AC/LOAD.LABrSPO,ACN/PRN" "SPO.AC/LOAD.LABrSPO.ACN/PRN+l" "SPO,AC/LOAD.LABrSPO.ACN/SC" "SPO.AC/LOAD.LABrSPO.ACN/SP1.SP1° "SPO.AC/LOAD.LABrSPO.ACN/SP1+1" "ALU-OCA>rLAB-R1&RCCl1l-ALU" "ALU/AtB+lrAHX/RAHX.OXTrDT/LONGrBHX/LCrSPO.R/LOAD.LABl.WRITE.RCrSPO.RC/llrSHF/ALU" "SPOoR/LOAD.LAB1.WRITE.RCrSPOoRC/91rALU/A-BrAHX/RAHX.OXTrDT/LONGrBHX/RBHXrRBHX/DrSHF/ALU" "SPO.R/LOAD.LAB1.WRITE.RCrSPO.RC/11rSHF/ALU" "SPO.R/LOAD.LAB1.WRITE.RCrSPO.RC/11rSHF/RIGHT2" "ALU-D+LCrLAB-Rl&RCC:lll-ALU" "ALU-D.OXTC92J+KC@3JrLAB-R1&RCC91J-ALU" "ALU_Q-KC92JrLAB-Rl&RCC@ll-ALU" "SPO.R/LOAD.LABrSPO.RAB/11" 1...A_R<DST>&LB_R<SRC> l...A-R<BP2>&LB-R<Sf'1) l..A... RAC J l.• C•• RC<SC) LC_RCC:J l...C_RCCJ&R1-CLA+LB>.LEFT r...c_RCCJ&R1-<LA+LB+PSL.c>.LEFT l...C-RCC::JIR1-<LA+LB.RLOG).LEFT l...C_RCC:J&R1-<LA-LB>.LEFT LC_RCC:J&R1-<LA-LD.RLOG>.LEFT l.. C-.RCC: J&RLALll l.• C.. RCC J&RL[t LC-RCC:J&R1-LAtKC:J LC-RCC:J&R1-LA-KC:J 1...C_.l~CC: l &R1_L..Ic l...C ... RCC: J &R1_C~ "SPO.AC/LOAD.LABrSPO.ACN11/DST.SRC" "SPO.AC/LOAD.LABrSPO.ACN/SP2.SP1" "SPO.AC/LOAD.LArSPO.RAB/11" "SPO/LOAD.LC.sc• "SPO.R/LOAD.LCrSPO.RC/11" "AHX/LArBHX/LBrALU/AtBrSHF/LEFTrSPO.R/LOAD.LC.WRITE.RABlrSPO.RC/11" "AHX/LArBHX/LBrALU/A+B+PSLoCrSHF/LEFTrSPO,R/LOAD.LC.WRITE.RABlrSPO.RC/11" "AHX/LArBHX/LBrALU/AtB.RLOGrSHF/LEFTrSPO.R/LOAD.LC.WRITE.RABlrSPO.RC/11" "AHX/LArBHX/LBrALU/A-BrSHF/LEFTrSPO.R/LOAD.LC.WRITE.RABlrSPO.RC/11" "AHX/LArBMX/LBrALU/A-B.RLOGrSHF/LEFTrSPO.R/LOAD.LC.WRITE.RABlrSPO.RC/11" 0 SPO.R/LOAD.LC.WRITE.RAB1rSPO.RC/11rSHF/ALU" "ALU-DrLC-RCC@1J&R1-ALU" "SPO.R/LOAD.LC.WRITE.RABlrSPO.RC/llrSHF/ALUrALU/AtBrAHX/LArBHX/KHXrKHX/12" "ALU-LA-KCl2JrLC-RCCl1J&R1-ALU" "ALU-LBrLC-RCC@lJ&Rl_ALU" "SPO.R/LOAD.LC.WRITE.RAB1rSPO.RC/11rSHF/ALUrALU/ArAHX/RAHXrRAHX/Q 0 N&LAL.IJ "CCK/NZ_ALU.vc_vc• "CCK/NZ-ALU.vc_o• •cc1<1N_AHx.z_rsr.vc_vc• N&Z .. AL.U. V&c_o N.-AMX, z_ TST PC&VA ... AL.U PC&VA .. It f"C&VA .. D+KCJ PC&VA .. D-·K[ 1 PC&VA ... D··f'C PC&VA ... r:t.OXHJ PC&VA_D.OXTCJtPC PC&VA_l),SXTC:JtPC PC&VA .. KC:J PC&'JA .. PC PC&VA_Q PC&VA-Dtf•C PC&VA_ll-D "VAK/LOADrPCK/PC-VA" "RAHX/DrAHX/RAHXrALU/ArVAK/LOADrPCK/PC_VA" "RAHX/DrAHX/RAHXrKHX/llrBHX/KHXrALU/AtBrVAK/LOADrPCK/PC-VA" "RAHX/DrAHX/RAHXrKHX/11rBHX/KHXrALU/A-BrVAK/LOADrPCK/PC-VA" "RAMX/DrAHX/RAHXrBHX/PCrALU/A-BrVAK/LOADrPCK/PC-VA" "RAHX/DrAHX/RAHX.OXTrDT/11rALU/ArVAK/LOADrPCK/PC-VA" "RAHX/DrAHX/RAHX.OXTrDT/@lrBHX/PCrALU/AtBrVAK/LOADrPCK/PC-VA" "RAHX/DrAHX/RAHX.SXTrDT/llrBHX/PCrALU/A+BrVAK/LOADrPCK/PC-VA" "KHX/@lrBMX/KHXrALU/BrVAK/LOADrPCK/PC_VA" "BHX/PCrALU/BrVAK/LOADr~CK/PC-VA" "RAHX/QrAMX/RAHXrALU/ArVAK/LOADrPCK/PC-VA" "RAHX/QrAHX/RAHXrBHX/PCrALU/A+BrVAK/LOADrPCK/PC-VA" "RAHX/QrAHX/RAHXrRBHX/DrBHX/RBHXrALU/A-BrVAK/LOADrPCK/PC-VA" VAX 11/780 FIELD AND MACRO DEFINITIONS Page A-24 PC&VA_Q-K[J PC &VA ... O, SXH HPC PC&VA-RCCJ PC&VA_R[J,ANDNOT.K[J "RAMX/OrAMX/RAMXrKMX/91rBHX/KMXrALU/A-BrVAK/LOADrPCK/PC-VA• •RAMX/OrAMX/RAMX.SXTrDT/91rBHX/PCrALU/A+BrVAK/LOADrPCK/PC_VA• "SPO.R/LOAD.LCrSPO.RC/@1,BHX/LC,ALU/BrVAK/LOADrPCK/PC_VA• PC_PCt1 PC_PC+2 PC_.PC+4 PC_.PC+N PC-!Hf'C PC_VA PC_VlBA PSL<C>-AHXO •PCK/PC+1" 8 PCK/PC+2• "PCK/PC+4• "PCK/PC+N" "ALU/A+BrVAK/LOADrPCK/PC-VArBHX/PCrAHX/RAHXrRAHX/0" "PCK/PC-VA" "PCK/PC-IBA" "CCK/C_AHXO" O&VA-ALU U&VA_D Q&VA-D+LC ll&VA-LA !UVA_O+LB. PC "VAK/LOADrSHF/ALUrDK/SHF• •RAHX/DrAHX/RAMXrALU/ArVAK/LOADrSHF/ALUrQK/SHF• •RAMX/DrAHX/RAMXrBHX/LCrALU/AtBrVAK/LOADrSHF/ALUrOK/SHF" 'AHX/LArALU/ArVAK/LOADrSHF/ALUrOK/SHF• "RAHX/OrAHX/RAMXrBHX/PC.OR.LBrALU/A+BrVAK/LOAD•SHF/ALUrOK/SHF• llD-<O+LB>D.RIGHT2 UD_COtLC>D.RIGHT2 UD-<O-LB>D.RIGHT2 UD_(Q-LC>D.RIGHT2 !lIUlD. Rl GHT2 "ALU_O+LBrO-ALLI.RIGHT2rD_D.RlGHT2" •ALU_O+LCrD-ALLI.RIGHT2rD-D.RIGHT2• "ALU_Q-LBrO-ALU.RIGHT2rD_D,RIGHT2" •ALU_Q-LCrO-ALLI.RIGHT2rD-D.RIGHT2• "ALU_Q,Q_ALU.RlGH12rD_D.RIGHT2• IL ( LA+Q >•RIGHT IL<IHLB> .RIGHT CLO ILOtLCH [L0tHASKt1 l:LO+PC. RLOG !LO-D (]_0--K[J ILO-LC CL0-0 !LACCEL&SYNC C:LALU CLALU CFRAC > !LALU.LEFT CLALU. LEFT2 ILALU • LEFT3 [LAL U•RIGHT ILALU.RIGHT2 CLD (]_DCFRAC><8> ILD+K[J ILDfK[Jf1 ILDfK[J.LEFT ILD+LC ILD-K[J !LD-LC !LD-0 !LD.OXHJ (]_D.OXT[JfK[J,LEFT (]_D.OXTCJ.OR.PACK.FP !LD.AND.KCJ (]_D.AND.KCJ.RIGHT (]_D.AND.KCJ.RIGHT2 !LD.AND.RCCJ !LD.ANDNOT .RCCJ U_D.LEFT3 lLD.OR.KCJ "AHX/LArR8HX/OrBHX/RBHX•ALU/A+B,SHF/RIGHT,QK/SHF• "RAHX/OrAHX/RAMXrBHX/LBrALU/AtBrSHF/RIGHTrOK/SHF" "OK/CLR• 'ALU/AtB+1rAHX/RAHX.OXTrDT/LONGrSHF/ALU,QK/SHFrBHX/LC" ·AHX/RAHx.oxr.r1T/LONGrBHX/HASK.ALU/A+B+1.sHF/ALU.OK/SHF 1 •AHX/RAHX.OXT,DT/LONG,BHX/PC,ALU/AtB.RLOGrSHF/ALUrOK/SHF" "AHX/RAHX.OXTrI1T/LONGrRBHX/DrBHX/RBHXrALU/A-BrSHF/ALUrOK/SHF" •AHX/RAHX.OXTrDT/LONGrKMX/91rBHX/KHXrALU/A-BrSHF/ALU,QK/SHF• "AHX/RAHX.OXTrI1T/LONGrBHX/LCrALU/A-BrSHF/ALUrOK/SHF• "AHX/RAHX.OXTrI1T/LONGrRBHX/Q,BHX/RBHXrALU/A-BrSHF/ALUrOK/SHF 1 "OK/ACCELrACF/SYNC" "SHF/ALU,QK/SHf"• •sHF/ALUrOK/SHf".FL· "SHF/LEFTrOK/SHF• "SHF/ALU.DTrDT/LONGrOK/SHF" •aK/SHFrSHF/LEFTJ• •sHF/RIGHTrOK/SHF" "SHF/RIGHT2rOK/SHF" "OK/D• "RBHX/DrBHX/RBHXrALU/BrSHF/ALUrOK/SHF.FL" •RAHX/DrAHX/RAHXrKHX/91rBHX/KHXrALU/AtBrSHF/ALUrOK/SHF• •RAHX/DrAHX/RAMXrKHX/91rBHX/KHXrALU/A+B+lrSHF/ALUrOK/SHF• •RAHX/DrAHX/RAMXrKMX/91rBHX/KHXrALU/A+BrSHF/LEFTrOK/SHF" •RAHX/DrAHX/RAHXrBHX/LCrALU/AtBrSHF/ALU,QK/SHF• 1 RAHX/DrAHX/RAMXrKHX/91rBHX/KHXrALU/A-BrSHF/ALUrOK/SHF 1 •RAMX/DrAHX/RAMXrBHX/LCrALU/A-BrSHF/ALUrOK/SHF' •RAMX/DrAHX/RAMXrRBHX/OrBHX/RBHXrALU/A-BrSHF/ALUrOK/SHf• "RAHX/DrAHX/RAMX.OXTrDT/91rALU/ArSHF/ALUrOK/SHF' •RAHX/DrAHX/RAMX.OXTrDT/@1rKHX/92rBHX/KHXrALU/A+BrSHF/LEFTrOK/SHF' 1 RAHX/DrAHX/RAt1X.OXTrDT/91rBHX/PACKED.FlrALU/ORrOK/SHF• •RAHX/DrAHX/RAMXrKHX/91rBHX/KHXrALU/ANDrSHF/ALUrOK/SHF• "RAHX/DrAHX/RAt1XrKHX/91rBHX/KHXrALU/ANDrSHF/RIGHTrOK/SHF• "RAHX/DrAMX/RAHXrKMX/91rBHX/KHXrALU/ANDrSHF/RIGHT2rOK/SHF• •RAHX/DrAHX/RAt1XrSPO.R/LOAD.LCrSPO.RC/91rBHX/LCrALU/ANDrSHF/ALUrOK/SHF" •RAMX/DrAHX/RAMX,SPO.R/LOAD.LCrSPO.RC/91rBHX/LCrALU/ANDNOTrSHF/ALU,QK/SHF• •RAHX/DrAHX/RAtlXrALU/ArSHF/LEFT3rOK/SHF• •RAHX/DrAHX/RAt1XrKHX/91rBHX/KMXrALU/ORrSHF/ALU,QK/SHF" "SPO.R/LOAD.LA~rSPO.RAB/91rAHX/LArKHX/92rBHX/KHXrALU/ANDNOTrVAK/LOADrPCK/PC_VA" v~x 11/780 FIELD AND MACRO DEFINITIONS Ct_n.oR.RC[J lLD.RIGHT lLD.RIGHT2 ILD.SXHJ CLD.XOR.O ILDEC.CON lLIB.BDEST !LIB.DATA (]_ID<SC> IL!Il[J ILK[J lLK[Hl l:L.K[ J. CTX CLK[ J. RIGHT (LKCJ. RIGHT2 ILLA (LLAtK[J (LLAtO CLLA-KCJ ILLA.AND.KCJ l:t_LA • ANDNOT •RC[ J !LLB ILLC ILNOT .O fLNOT .Rl:l fLPACK.FP (]_.PC fLll<FRAC> (LQ<FRAC> (8) CU.HD (]_l]ft((] [J_Qft([Jtl fLlltLC CLlHPC CLO··D fLQ-D·-1 CLO·-K( J C:Lll·-Kt:J··1 fLl~-LC CUl··U:-1 (Lll-HASK-1 fLQ.OXTCJ-K(l (LQ. OXTr J •LEFT !:LU• OXTr J •Of~• I• (Lil.AND.KC] Q_Q.AND.K[J.RIGHT2 (]_ll.AND.K[J.RIGHT (LQ •AND. RC J !:LO.AND.RC[] Q_Q.ANDNOT.D fLQ. ANDNOT. I<[ J ILO.ANDNOT .RC[J (LO.LEFT ILO.LEFT2 fL(l.Ql;:.K[J fLO. ORNOT • HASK (Lil.RIGHT fLO.RIGHT2 <Lil. SXTC l l'LO •XOR .K[ J Q_R<PRN>.ANDNOT.Q C:LR< PRNt1 > ILR<PRNt1 >.AND.a Page A-25 •RAMX/DrAMX/RAHXrSPO.R/LOAD.LCrSPO.RC/@1rBHX/LCrALU/ORrSHF/ALUrOK/SHF" •RAMX/DrAHX/RAMXrALU/ArSHF/RIGHTrOK/SHF• "RAMX/DrAMX/RAMXrALU/ArSHF/RIGHT2rOK/SHF" •RAMX/DrAMX/RAHX.SXTrDT/@1rALU/ArSHF/ALUrOK/SHF" "OK/SHFrALU/XORrAMX/RAMXrRAMX/DrBHX/RBHXrRBMX/Q,SHF/ALU' •Qt</DEC.CON• 'IBC/BDESTrQK/IDrMCT/ALLOW.IB.READ" 'OK/IDrMCT/ALLOW.IB.READ" "CID/READ.SCrOK/ID" 'CID/READ.KHXrID.ADDR/@1rQK/ID• "KMX/91,BHX/KHXrALU/B,SHF/ALUrQK/SHF" "AHX/RAHX.OXTrDT/LONGrKHX/91rBHX/KHXrALU/AtBt1rSHF/ALUrQK/SHF" "KMX/91rBMX/KMXrALU/BrSHF/ALU.DTrDT/INST.DEPrQK/SHF" •t<MX/91rBMX/KMXrALU/BrSHF/RIGHTrOK/SHF" "KMX/@1rBHX/KHXrALU/BrSHF/RIGHT2rOK/SHF' 1 AMX/LArALU/ArSHF/ALUrQK/SHF 1 'AHX/LArKMX/91rBHX/KMXrALU/A+BrSHF/ALUrOK/SHF' 'AHX/LArRBMX/OrBHX/RBHXrALU/AtBrSHF/ALUrOK/SHF" "AHX/LArKMX/91rBHX/KMXrALU/A-BrSHF/ALUrOK/SHF• •AMX/LArKHX/91rBHX/KHXrALU/ANDrSHF/ALUrOK/SHF" "AHX/LArSPO.R/LOAD.LCrSPO.RC/@1rBHX/LCrALU/ANDNOTrSHF/ALUrOK/SHF' 'BMX/LBrALU/BrSHF/ALUrOK/SHF' "BMX/LCrALU/BrSHF/ALUrOK/SHF' "RAHX/OrAMX/RAHXrALU/NOTArSHF/ALUrQK/SHF" "LA-RAC91lrAMX/LArALU/NOTArO-ALU" "BMX/PACKED.FLrALU/BrSHF/ALUrOK/SHF• 1 BMX/PCrALU/BrSHF/ALUrOK/SHF 1 •RAHX/OrAHX/RAMXrALU/ArSHF/ALUrOK/SHF.FL" •RBMX/OrBMX/RBHXrALU/BrSHF/ALUrOK/SHF.FL" "RAHX/OrAMX/RAHXrRBMX/DrBHX/RBHXrALU/A+BrSHF/ALUrOK/SHF' •RAHX/OrAHX/RAHXrKHX/91rBHX/KMXrALU/A+BrSHF/ALUrOK/SHF' 'RAMX/OrAMX/RAMXrKMX/@1rBMX/KMXrALU/A+Bt1rSHF/ALUrOK/SHF" "RAMX/OrAMX/RAMXrBMX/LCrALU/A+BrSHF/ALUrQK/SHF" RAMX/OrAHX/RAMXrBMX/PCrALU/A+BrSHF/ALUrOK/SHF 'RAMX/OrAMX/RAMXrRBMX/DrBMX/RBMXrALU/A-BrSHF/ALUrOK/SHF' "RAMX/OrAMX/RAMXrRBMX/DrBHX/RBMXrALU/A-B-1rSHF/ALUrOK/SHF" 'RAMX/OrAMX/RAMXrKHX/91rBHX/KMXrALU/A-BrSHF/ALUrOK/SHF" "RAMX/OrAMX/RAMXrKMX/91rBMX/KMX,ALU/A-B-1rSHF/ALUrOK/SHF" 'RAMX/QrAMX/RAMX•BMX/LCrALU/A-BrSHF/ALUrOK/SHF" "RAMX/OrAHX/RAHXrBMX/LCrALU/A-B-1rSHF/ALUrQK/SHF' 'RAHX/OrAMX/RAMXrBMX/MASKrALU/A-B-1rSHF/ALUrOK/SHF" 'RAMX/OrAMX/RAMX.OXTrDT/@1rKMX/@2rBHX/KMXrALU/A-BrSHF/ALUrOK/SHF' "RAHX/OrAMX/RAMX.OXTrDT/91rALU/ArSHF/LEFTrOK/SHF" 'RAMX/QrAMX/RAMX.OXTrDT/91rRBMX/DrBHX/RBHXrALU/0RrSHF/ALUrQK/SHF" "RAHX/OrAMX/RAMXrKHX/91rBHX/KMXrALU/ANDrSHF/ALUrOK/SHF' •RAMX/OrAHX/RAMXrKHX/91,BMX/KHXrALU/ANDrSHF/RIGHT2,QK/SHF" •RAHX/OrAMX/RAMXrKHX/91rBMX/KMX,ALU/ANDrSHF/RIGHTrOK/SHF" "RAMX/OrAMX/RAMX•SPO.R/LOAD.LABrSPO.RA9/@1rBHX/LB•ALU/ANDrSHF/ALUrOK/SHF" •RAHX/OrAMX/RAMXrSPO.R/LOAD.LCrSPO.RC/@1rBMX/LCrALU/ANDrSHF/ALUrQK/SHF" RAMX/OrAMX/RAHXrRBMX/DrBHX/RBMX,ALU/ANDNOTrSHF/ALUrOK/SHF •RAMX/OrAMX/RAMXrKMX/@1,BMX/KHXrALU/ANDNOTrSHF/ALUrQK/SHF" •RAMX/OrAMX/RAMXrSPO.R/LOAD.LCrSPO.RC/@1rBMX/LCrALU/ANDNOTrSHF/ALUrOK/SHF" •QK/LEFT' QK/LEFT2• "RAMX/OrAMX/RAMXrKHX/@1,BHX/KMXrALU/ORrSHF/ALUrOK/SHF' 1 1 1 1 1 •RAMX/QrAMX/RAHXrBMX/M~SKrALU/ORNOT,SHF/ALUrQK/SHF" •ot</RIGHT• "QK/RIGHT2' •RAMX/OrAMX/RAHX.SXTrDT/@1rALU/A,SHF/ALUrOK/SHF" "RAMX/OrAHX/RAHXrKMX/@1rBMX/KHXrALU/XORrSHF/ALUrQK/SHF" "SPO.AC/LOAD.LABrSPO.ACN/PRNrAMX/LArRBMX/Q,BMX/RBHX,ALU/ANDNOTrSHF/ALU,QK/SHF" "SPO.AC/LOAD.LABrSPO.ACN/PRN+1rAMX/LArALU/A,SHF/ALUrOK/SHF" "SPO.AC/LOAD.LABrSPO.ACN/PRN+1,AHX/LArRBHX/Q,BHX/RBMXrALU/AND,SHF/ALU,QK/SHF" VAX 11/780 FIELD AND MACRO DEFINITIONS 0-R<SC> Q_R<SRC!l>.AND.K[l Q_RCCSC> Q_RC[l Q_RC[lCFRAC> Q_R[l Q_R[l<FRAC> Q_R[l.AND.K(l Q_R(l.AND.Ktl.RIGHT Q_R[l.ANDNOT.K[J Q_R[l.OR.KCl Page A-26 "ALU/A,SHF/ALU,AHX/LA,SPO.AC/LOAD.LABrSPO.ACN/SCrOK/SHF" "SPO.AC/LOAD.LA~,SPO.ACNll/SRC.OR.lrAHX/LArKHX/@lrBHX/KHX,ALU/ANDrSHF/ALUrOK/SHF" "ALU/BrSHF/ALUr~HX/LCrSPO/LOAD.LC.SC,QK/SHF" Q_SHF "SPO.R/LOAD.LCrSPO.RC/@1rBHX/LCrALU/BrSHF/ALUrOK/SHF" "SPO.R/LOAD.LCrSPO.RC/@1rBMX/LCrALU/8rSHF/ALUrOK/SHF.FL" "SPO.R/LOAD.LABrSPO.RAB/@1rAMX/LA,ALU/A,SHF/ALUrOK/SHF" "SPO.R/LOAD.LAB,SPO.RAB/@1rAHX/LA,ALU/A,SHF/ALUrOK/SHF.FL" "SPO.R/LOAD.LAB,SPO.RAB/@1rAHX/LA,KHX/@2rBHX/KHX,ALU/ANDrSHF/ALUrOK/SHF" "SPO.R/LOAD.LAB,SPO.RAB/@1,AHX/LA,ALU/AND,BHX/KHXrKHX/@2rSHF/RIGHTrOK/SHF" "SPO.R/LOAD.LABrSPO.RAB/@1rAHX/LArKHX/@2rBHX/KHXrALU/ANDNOTrSHF/ALUrOK/SHF" "ALU/OR,AMX/LA,SPO.R/LOAD.LA8rSPO.RA8/@1rBHX/KMXrKHX/@2,QK/SHF" "ALU/BrBHX/KHXrKHX/SCrSHF/ALUrQK/SHF" "DK/SHF" R<DST>-ALU R<DST>-D RCDST>-D.SXT[J.RIGHT "SHF/ALUrSPO.AC/WRITE.RABrSPO.ACN11/DST.DST" "RAHX/DrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN11/DST.DST" "RAHX/DrAHX/RAMX.SXTrDT/@lrALU/ArSHF/RIGHTrSPO.AC/WRITE.RABrSPO.ACN11/DST.DST" RCPRN>_O+D.RLOG RCPRN>-ALU RCPRN>-D R<PRN>-D+K[l.RLOG RCPRN>-D-Ktl.RLOG RCPRN>-D.OR.Q RCPRN>-Drla RCPRN)_K[J RCPRN>-LA+KrJ.RLOG R<PRN>-LA+a R<PRN>-LA-Krl.RLOG RCPRN>-LA[JHASK R<PRN>-LC R<PRN>-PACK.FP R<PRNJ_Q R<PRN>-D+Krl.RLOG R<PRNJ_Q-K[J.RLOG R<PRN+1>-ALU R<PRN+1>-D R<PRN+1>-D.OR.Q R<PRN+1>-KCJ R<PRN+1>-LA RCPRN+1>-LC RCPRNt1)_Q "ALU/A+B.RLOGrBMX/RBHXrRBHX/DrAHX/RAHX.OXTrDT/LONGrRCPRNJ_ALU" 1 SHF/ALUrSPO.AC/WRITE.RAB,SPO.ACN/PRN 1 "RAHX/DrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN" "RAHX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/A+B.RLOGrDT/LONGrRCPRNJ_ALU" "RAHX/DrAHX/RAHXrKHX/@1rBHX/KHXrALU/A-B.RLOGrDT/LONOrRCPRN>-ALU" "RAMX/DrAHX/RAHXrRBMX/OrBHX/RBHXrALU/ORrRCPRN>-ALU" "RAMX/DrAMX/RAHXrRBHX/DrBMX/RBHXrALU/@1rRCPRN>-ALU" "KHX/@1rBHX/KHXrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN" "AMX/LArKMX/@lrBMX/KHXrALU/A+B.RLOGrDT/LONGrRCPRN>-ALU" 1 AMX/LArRBHX/DrBHX/RBHXrALU/A+BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN 1 "AHX/LArKHX/@1,BHX/KHXrALU/A-B.RLOGrDT/LONGrRCPRN>-ALU" "AHX/LArBHX/HASKrALU/@1rSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN" "BHX/LCrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN" "BMX/PACKED.FlrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN" "RAHX/OrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSf'O.ACN/PRN" "RAHX/OrAHX/RAMXrKHX/@1rBHX/KHXrALU/A+B.RLOGrDT/LONGrRCf'RN>-ALU" "RAHX/OrAHX/RAMXrKHX/@1rBMX/KHXrALU/A-B.RLOGrDT/LONGrRCPRN>-ALU" 1 SHF/ALUrSPO.AC/WRITE.RAB,SPO.ACN/PRN+l 1 "RAHX/D,AHX/RAHXrALU/ArSHF/ALUrSf'O.AC/WRITE.RABrSPO.ACN/PRNtl" "RAHX/D,AHX/RAHXrRBHX/OrBHX/RBMXrALU/ORrSHF/ALU,SPO.AC/WRITE.RABrSPO.ACN/PRN+1" "KHX/@1rBHX/KHX,ALU/BrSHF/ALU,SPO.AC/WRITE.RABrSPO.ACN/PRN+1" "AHX/LArALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN+1" "BHX/LCrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN+1" "RAHX/Q,AHX/RAMX,ALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/PRN+1" RCSC>-ALU R<SC>-D RCSC>-K[J RCSC>-LA R<SC>-LA+D RCSC>-LA-D RCSC>-LC RCSC)_Q "SHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "RAHX/DrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "KHX/@1rBHX/KMXrALU/B,SHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "AHX/LArALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "AHX/LArRBHX/D,BHX/RBMXrALU/A+BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "AHX/LArRBHX/D,BHX/RBHXrALU/A-BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" "ALU-LCrRCSC>-ALU" "RAHX/OrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SC" RCSPl>-ALU RCSP1>-D R<SPl>-K[J RCSP1>-PACK.FP RCSP1>-D RCSP1+1>-LC RCSP1+1)_Q "SHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SP1.SP1" "RAHX/DrAHX/RAHXrALU/ArSHF/ALUrSPO.ACIWRITE.RABrSPO.ACN/SP1.SP1" "KHX/@1rBHX/KHXrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SP1.SP1" "BHX/PACKED.FlrALU/BrSHF/ALU,SPO.AC/WRITE.RABrSPO.ACN/SP1.SP1" "RAHX/OrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SP1.SP1" "BHX/LCrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SP1+1" "RAHX/DrAHX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN/SP1+1" RCSRC!1>-ALU RCSRC!1>-D<B> RCSRC>-ALU "SHF/ALUrSPO.AC/WRITE.RABrSPO.ACN11/SRC.OR.1" "RBHX/D,BHX/RBHXrALU/8,SHF/ALU,SPO.AC/WRITE.RABrSPO.ACN11/SRC.OR.1" "SHF/ALU,SPO.AC/WRITE.RABrSPO.ACN11/SRC.SRC" a_sc VAX 11/780 FIELO AND MACRO DEFINITIONS Page A-27 •RAMX/DrAMX/RAMXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO~ACN11/SRC.SRC" l~CSRC)_[I FHSRC >-D< B> RCSRC>-D+KCJ.RLOG R<SRC>-D-KCJ.RLOG f~< SRC) _LC FHSRC)_Q •RBMX/DrBMX/RBMXrALU/BrSHF/ALUrSPO.AC/WRITE.RABrSPO.ACNll/SRC.SRC" •RAMX/DrAMX/RAMXrKMX/@1rBMX/KHXrALU/A+B.RLOGrDT/WORDrRCSRC>-ALU" "RAMX/DrAMX/RAMXrKMX/@1rBMX/KMXrALU/A-B.RLOGrDT/WORDrRCSRC>-ALU" "BMX/LCrALU/BrR<SRC>-ALU" "RAHX/QrAMX/RAHXrALU/ArSHF/ALUrSPO.AC/WRITE.RABrSPO.ACN11/SRC.SRC" fM_D+KC J • RLOG FM-LA+KCJ.RLOG R6-LA-KCJ.RLOG "SPO.R/WRITE.RABrSPO.RAB/R6rRAMX/DrAHX/RAMXrKMX/@1rBHX/KHXrALU/A+B.RLOG•SHF/ALU" "AHX/LArBMX/KMXrKMX/@1rALU/A+B.RLOGrDT/WORD,SHF/ALUrSPO.R/WRITE.RABrSPO.RAB/R6" •AMX/LArBHX/KMXrKMX/@1,ALU/A-B.RLOGrDT/WORDrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/R6" CSC> .. O;-LC <SC> _ALU F~C <SC >-ALU• RIGHT •ALU_O-LCrRCCSC>-ALU" •sHF/ALUPSPO/WRITE.Rc.sc• "SPO/WRITE.RC.SCrSHF/RIGHT" "ALU_DrRCCSC>-ALU" "ALU_Q,RC<SC>-ALU" F~C F~C 1:~c <SC) _[I F~CCSC>_Q HCCJ&VA_D+Q "RAMX/D,AMX/RAMXrRBMX/QrBMX/RBMX,ALU/A+BrVAK/LOADrSHF/Al.UrSPO.R/WRITE.RCrSPO.RC/~1" 1:~CCLO "AMX/RAMX.OXTrDT/LONGrALU/A,SHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1• •AMX/RAMX.OXTrDT/LONGrKHX/@2rBHX/KHXrALU/A+B+1rSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1• •AMX/RAMX.OXTrDT/LONGrBHX/LCrALU/A+B+1rSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" "AMX/RAMX.OXTrDT/LONGrBMX/MASKrALU/A+B+lrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" "AMX/RAMX.OXTrDT/LONGrBMX/MASKrALU/A+B+1rSHF/RIGHT2rSPO.R/WRITE.RC,SPO.RC/@1" "AMX/RAMX+OXTrDT/LONGrRBMX/DrBMX/RBMXrALU/A-BrSHF/ALUrSPO.R/WRITE.RC,SPO.RC/@1" "SHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" "SHF/LEFTrSPO.R/WRITE.RC,SPO.RC/@1" "SPO.R/WRITE.RCrSPO+RC/@1rSHF/ALU.DTrDT/LONG" "SPO.R/WRITE.RCrSPO.RC/@1rSHF/LEFT3" "SHF/RIGHTrSPO.R/WRITE.RCrSPO.RC/@1" •sHF/RIGHT2rSPO.R/WRITE.RCrSPO.RC/@1• •RAMX/DrAMX/RAMXrALU/ArSHF/ALU,SPO.R/WRITE.RCrSPO.RC/@1' 'RBHX/D,BMX/RBMXrALU/BrSHF/ALUrSPO.R/WRITE.RC,SPO+RC/@1' •RAMX/D,AHX/RAMXrBMX/KMXrKMX/@2rALU/A+BrSHF/ALUrSPO.R/WRITE.RC,SPO.RC/@1" "RAHX/DrAMX/RAHX,BMX/KMXrKMX/@2rALU/A-B•SHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1' •RAHX/D,AMX/RAMX.OXTrDT/@2rALU/A,SHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" •RAMX/DrAMX/RAHXrBMX/KMXrKHX/@2rALll/ANDrSHF/ALU,SPO.R/WRITE.RCrSPO.RC/@1' "RAMX/D,AMX/RAMXrBMX/MASKrALll/ANDrSHF/ALU,SPO.R/WRITE.RCrSPO.RC/@1• •RAMX/DrAMX/RAMXrRBMX/OrBMX/RBHXrALU/ANDNOTrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1• "RAHX/DrAMX/RAMXrALU/A,SHF/ALU.DTrDT/INST.DEP,SPO.R/WRITE.RCrSPO+RC/@1" "RAHX/DrAMX/RAMXrALU/ArSHF/LEFTrSPO.R/WRITE.RCrSPO.RC/@1• "RAMX/DrAHX/RAMXrALU/ArSHF/LEFT3rSPO.R/WRITE.RCrSPO.RC/@1" "RAMX/D,AMX/RAMX,KMX/@2rBMX/KMXrALU/ORrSHF/ALU,SPO.R/WRITE.RCrSPO.RC/91" 'RAMX/DrAMX/RAMXrRBMX/QrBMX/RBMXrALU/ORrSHF/ALU,SPO.R/WRITE.RCrSPO.RC/@1• •sPO.RC/11rSPO.R/WRITE+RCrALU/ORNOTrAMX/RAMXrRAMX/DrBMX/KMXrKHX/@2rSHF/ALU' •RAMX/DrAMX/RAHX.SXTrDT/@2rALU/ArSHF/ALUrSPO.R/WRITE.RCrSPO.RC/91" •KHX/@2rBMX/KMX,ALU/BrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1• •AHX/RAMX.OXTrDT/LONGrKMX/@2rBHX/KMXrALU/A+B+1rSHF/ALU,SPO.R/WRITE.RCrSPO.RC/@1" "KMX/92rBMX/KHXrALU/BrSHF/ALU.DTrDT/LONGrSPO.R/WRITE.RCrSPO.RC/@1" 'KMX/92rBHX/KHXrALU/BrSHF/LEFTJ,SPO.R/WRITE.RCrSPO.RC/@1" 'KMX/@2rBMX/KMXrALU/BrSHF/RIGHT2rSPO.R/WRITE.RC,SPO.RC/@1" "AHX/LArALU/ArSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1' "AMX/LArBMX/LB,ALU/A+BrSHF/ALU.DTrDT/INST.DEPrSPO.R/WRITE.RCrSPO.RC/@1" 'AMX/LA,KMX/@2,BMX/KMXrALU/A-BrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" •ALU-LA.AND.KC@2lrRCC@lJ_ALU' •AMX/LArALU/ArSHF/ALU,DTrDT/INST.DEPrSPO.R/WRITE.RCrSPO+RC/@1' "BHX/LB•ALU/BrSHF/ALUrSPO.R/WRITE.RCrSPO+RC/@1• "BHX/LBrALU/BrSHF/LEFT,SPO.R/WRITE.RCrSPO.RC/@1• "BMX/LCrALU/BrSHF/ALUrSPO.R/WRITE.RC,SPO.RC/@1" "RAMX/OrAMX/RAMXrALU/NOTArRCC@1l-ALU" "BMX/PACKED+FLrALU/BrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" "BMX/PCrALU/BrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1" "RAHX/Q,AMX/RAMXrALU/ArSHF/ALUrSPO.R/WRITE.RCrSPO.RC/@1• "ALU_O+Q+1rRCC@1l-ALU' F~CC J •. O+KC J+1 RCCLO+LC+1 HCC LO+MASK+1 RCCJ_O+MASK+1.RIGHT2 F~CCLO-D 1=~CCLALU 1:~CCLALU.LEFT F~CCl-ALU.LEFT2 HCC LALU. LEFT3 F~CCJ .. ALU.RIGHT HCCLALIJ.RIGHT2 t=~CCLI• HCCLD<F.t> 1=~cc J .. D+KC J 1:~cc LD··K[ J i:~cc ]_[I. OXH] HCCJ_D.AND.KCJ HCCLD.AND.MASK HCCLD.ANDNOT.Q RG[:J_D.CTX F~CC LD •LEFT HCCJ_D~LEFT3 OR. KC] .. D.OR.O ORNOT. KC J 1:~cc LD. SXTC J 1:~cc LD. f~CCJ F~C[ LD. t=~CCLKCJ F~C[ l+ J_KC 1 m:c J..KCJ. LEFT2 F~CCLKC:J t=~CCLKCJ .l.EFT3 .RIGHT2 t=~CCLLA LA+LB .cTx RCCJ..l.A-KCJ RC[ Ll.A. AND. KC l HCCLLA.CTX 1=~cc J .• t=~CCLLB HCC Ll.9. LEFT HCCJ .. U: F~CCLNOT .a F~CC LPACK • FP RCCLf'C F~CCLll 1=~CCLIH1 VAX 11/780 FIELD AND MACRO DEFINITIONS RCCLCHKCJ F~CCLQfLC RCCJ_ll+PC RCCLll+PC+1 RCCJ_Q-KCJ RCCLO-LC RCCJ_Q-HASK-1 RCC J_Q, OXTC J RCCJ_ll,AND,t<CJ RCCJ_Q,ANDNOT.KCJ RCCJ_Q,LEFT RCCLD.LEFTJ RCCJ_Q,RIGHT F~CCJ_Q • RIGHT2 RCCLQ,SXTCJ F~CC LRLOB.RIGHT RC l&VA-LA+KCJ RC l&VA-LA-KC J RCJIVA-LA-K(J,RLOG RCJIVA-ll-KCJ RCJ_O RCJ_O+LB+1 RCJ .. 0-1 RCLO-D RCJ_O-KCJ HCLO-LB RCJ_O··ll RCLALU F~C LALU, LEFT RC LALU, LEFTJ RCJ_ALU.RIGHT RCJ_ALU,RIGHT2 RCJ_D RCJ_D+KCJ RCLD+ll HCLD+ll+l RCJ_D-KCJ RCJ_D-LC-1 RCLD-ll R[]_D.AND.KCJ RCJ_D,QR,LC RCJ_D,QR,PACK.FP RCJ_D,QR,Q F~CJ_KCJ RCLLA RCJ_LA+D RCJ_LA+D+1 F~CLLA+KCJ RCJ_LA+KCJ+l RCl-LA+KC l .RLOG RCLLA+LC RCl-LA+HASK+l F~C J_LA+ll RCJ_LA-D RCl-LA-KCJ RCl-LA-KCJ,RLOG F~C LLA-HASK-1 RCl-LA-Q RCl-LA.AND,KCl RCJ-LA.OR.D RCJ-LA.ORNOT.HASK ncJ_LB Page A-28· 'RAHX/Q,AHX/RAHX.DH>:/t<HX.KHX/92.ALU/A+B.SHF/ALU.SPO.R/WRITE.Rc,sro.RC/91' 'ALU/A+B,RAHX/Q,AHX/RAHX,DHX/LC,SPO.R/WRITE.RC,SPO.RC/91' "RAHX/Q,AHX/RAHX.BH):/PC.ALU/A+D.SHF/ALU.SPO.R/WRITE.RC.SPO.RC/91" "RAHX/Q,AHX/RAHX,BH):/pC,ALU/A+B+l,SHF/ALU,SPO.R/WRITE,RC,SPO.RC/91" "RAHX/Q,AHX/RAHX,DH>:/KHX,KHX/92•ALU/A-B,SHF/ALU,SPO.R/WRITE.RC,SPO.RC/91" "ALU/A-B•RAHX/O,AHX/RAHX,DHX/LC,SPO.R/WRITE.RC,SPO.RC/91° "RAHX/Q,AHX/RAHX,BH)'./HASK,ALU/A-B-1,SHF/ALU,SPO.R/WRITE.RC,SPO,RC/91" 1 RAHX/Q,AHX/RAHX.ox1·,nr192,ALU/ArSHF/ALU.SPO.R/WRirE.RC.SPO.RC/91' "RAHX/OrAHX/RAHXrBHX/KHX,t<HX/92rALU/ANDrSHF/ALUrSPO.R/WRITE.RCrSPO.RC/91' "RAHX/llrAHX/RAHX,BH>:/KHXrl<HX/92rALU/ANDNOTrSHF/ALUrSPO,R/WRITE,RCrSPO,RC/91" "RAHX/Q,AHX/RAHX,ALU/A,SHF/LEFTrSPO,R/WRITE.RCrSPO,RC/@1' "RAHX/llrAHX/RAHXrALL1/ArSHF/LEFT3rSPQ,R/WRITE.RCrSPQ,RC/91" "RAHX/llrAHX/RAHXrALU/ArSHF/RIGHTrSPO,R/WRITE.RC,SPO.RC/91" "ALU_Q,SHF/RIGHT2rSPO,R/WRITE.RC,SPO,RC/91" 'RAHX/llrAHX/RAHX,SXTrDT/92rALU/A,SHF/ALU,SPO.R/WRITE.RC,SPO.RC/91' "BHX/OrHSC/READ,RLOG,ALU/BrSHF/RIGHT,SPO.R/WRITE.RC,SPO.RC/91° 'AHX/LA,KHX/92rBHX/~:HXrALU/A+B,VAK/LOADrSHF/ALUrSPO.R/WRITE.RAB,SPO.RAB/91° 'AHX/LArKHX/92rBHX/~:HXrALU/A-BrVAK/LOADrSHF/ALU,SPO.R/WRITE.RABrSPO.RAB/@1° AHX/LA • KHX/92, BHX/KHX • ALU/A-8. RLOG, DT /LONG, VAIVLOAD, SHF /ALU, SPO, R/WRI TE, RAB, SPO, RAB/@1 • "RAHX/Q,AHX/RAHXrKH>:/92rBHX/KHXrALU/A-BrVAK/LOADrSPO.R/WRITE.RABrSPO.RAB/@1' 1 SPO,R/WRITE.RABrSPC1,RAB/91rAHX/RAHX.OXT,DT/LONGrALU/ArSHF/ALU" "AHX/RAHX.OXT,DT/LONGrBHX/LBrALU/A+B+1rSHF/ALUrSPO,R/WRITE.RABrSPO.RAB/@1" 0 "AHX/RAHX.OXTrDT/LO~IGrBHX/KHXrKHX/,lrALU/A-BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1" "AHX/RAHX.OXTrDT/LO~IGrRBHX/DrBHX/RBHXrALU/A-BrSHF/ALUrSPO,R/WRITE,RABrSPO.RAB/91" 'AHX/RAHX;OXTrDT/LONGrKHX/92rBHX/KHXrALU/A-BrSHF/ALUrSPO.R/WRITE.RABrSPO,RAB/@1" "AHX/RAHX,OXTrDT/LO~!GrBHX/LBrALU/A-BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/91° "AHX/RAHX.OXTrDT/LO~IGrRBHX/llrBHX/RBHXrALU/A-BrSHF/ALUrSPO.R/WRITE,RABrSPO,RAB/91' "SHF/ALUrSPO.R/WRITE.RABrSPO.RAB/91° "SPO.R/WRITE.RABrSPO.RAB/91rSHF/LEFT 0 "SPO.R/WRITE,RABrSPO,RAB/@1rSHF/LEFT3° "SHF/RIGHTrSPO.R/WRITE.RABrSPO.RAB/@1° 'SPO,R/WRITE.RABrSPO.RAB/@1rSHF/RIGHT2" 1 SPO,R/WRITE.RABrSPC1,RAB/9lrRAHX/DrAHX/RAHXrALU/ArSHF/ALU" "SPO.R/WRITE.RABrSPO,RAB/@lrRAHX/DrAHX/RAHXrKHX/@2rBHX/KHXrALU/A+BrSHF/ALU" 1 SPO,R/WRITE.RABrSPC1,RAB/@1rRAHX/DrAHX/RAHXrRBHX/llrBHX/RBHXrALU/A+BrSHF/ALU" "SPO.R/WRITE.RABrSPO,RAB/@1rRAHX/DrAHX/RAHXrRBHX/Q,BHX/RBHXrALU/AtB+1rSHF/ALU' "SPO.R/WRITE.RABrSPC1,RAB/@lrRAHX/DrAHX/RA~XrKHX/@2rBHX/KHXrALU/A-BrSHF/ALU" "ALU-D-LC-1rRC@lJ_ALU' "SPO.R/WRITE.RABrSPC,,RAB/@1,RAHX/DrAHX/RAHXrRBHX/llrBHX/RDHXrALU/A-BrSHF/ALU' "SPO,R/WRITE,RABrSPO.RAB/@1rALU/ANDrAHX/RAHXrRAHX/DrBHX/KHXrKHX/@2rSHF/ALU' "SPO.R/WRITE,RABrSPO.RAB/@1rALU/ORrAHX/RAHXrRAHX/DrBHX/LCrSHF/ALU" "SPO,R/WRITE.RABrSPO.RAB/llrALU/ORrAHX/RAHXrRAHX/DrBHX/PACKED.FLrSHF/ALU' "SPO.R/WRITE.RABrSPC,RAB/@1rRAHX/DrAHX/RAHXrRBHX/OrBHX/RBHXrALU/ORrSHF/ALU" "BHX/KHXrKHX/12rALU/BrSHF/ALUrSPO,R/WRITE.RABrSPO.RAB/91" "SPO.R/WRITE.RABrSPO.RAB/11rAHX/LArALU/ArSHF/ALU" "AHX/LArRBHX/DrBHX/RBHXrALU/AfBrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1° "AHX/LArRBHX/DrBHX/RBHXrALU/A+B+1rSHF/ALUrSPO.R/WRITE.RABrSPO,RAB/11" "AHX/LArBHX/KHXrKHX/12rALU/A+BrSHF/ALUrSPO.R/WRITE,RABrSPO.RAB/@1' "AHX/LArBHX/KHXrKHX/@2rALU/A+B+1rRCl1J_ALU" "AHX/LArBHX/KHXrKHX/l2rALU/A+B,RLOGrDT/LONGrSHF/ALUrSPO.R/WRITE.RA8rSPO.RAB/91" "AHX/LA,BHX/LCrALU/A+BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1° 0 ' AHX/LArBHX/HASKrALU/A+B+1rRCl1l-ALU 0 "AHX/LArRBHX/llrBHX/RBHXrALU/A+BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1' "AHX/LArRBHX/DrBHX/RBHXrALU/A-BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/91° "AHX/LArBHX/KHXrKHX/12rALU/A-BrSHF/ALUrSPO.R/WRITE,RABrSPO.RAB/11° "AHX/LAr8HX/KHXrKHX/@2rALU/A-B.RLOGrDT/LONGrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1° "ALU/A-B-1rAHX/LArBHX/HASK,SPO.R/WRITE.RABrSPO.RAB/11rSHF/ALU' "AHX/LArRBHX/OrBHX/RBHXrALU/A-BrSHF/ALUrSPO.R/WRITE,RABrSPO.RAB/@1" "AHX/LA•BHX/KHXrKHX/92rALU/ANDrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1" "AHX/LArRBHX/DrBHX/RBHXrALU/ORrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/11" "AHX/LArBHX/HASKrALU/ORNOTrSHF/ALUrSPO,R/WRITE.RABrSPO.RAB/@1" "BHX/LBrALU/BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/@1° VAX 11/780 FIELD AND MACRO DEFINITIONS Page A-29 RCLQ.ORNOT.KCJ f~[ LO• RIGHT .1 RCLRLOG.RIGHT.1 •JHX/LCrALU/BrSHF/ALUrSPO.R/WRITE.RABrSPO+RAB/11• •BHX/LCrALU/BrSHF/RIGHTrSPO.R/WRITE.RABrSPO.RAB/11° 0 AHX/RAHX.OXTrDT/LONGrALU/NOTArRCl1l-ALU• 0 RAHX/DrAHX/RAHXrALU/NOTArRCl1l-ALU 0 "BHX/HASKrAHX/RAHX.OXTrDT/LONGrALU/ORNOTrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/11° •RAHX/OrAHX/RAHXrALU/NOTArRClll-ALU• •eHX/PACKED+FLrALU/BrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/11° •sPO.R/WRITE+RABrSPO.RAB/llrRAHX/OrAHX/RAHXrALU/ArSHF/ALU• 0 ALU_O+O+lrRCl1l-ALU 0 •sPO.R/WRITE.RABrSPO.RAB/11rALU/AtB+1rBHX/KHXrKHX/+4rAHX/RAHXrRAHX/OrSHF/ALU 0 0 SPO.R/WRITE.RABrSPO.RAB/11rRAHX/OrAHX/RAHXrBHX/KHXrKHX/12rALUIA+BrSHF/ALU 0 0 SPO.R/WRITE+RAB•SPO.RAB/11rALU/AtBrAHX/RAHXr8HX/L8rRAHX/OrSHF/ALU 0 "SPO.R/WRITE.RAB,SPO.RAB/llrRAHX/OrAHX/RAHXrBHX/LCrALU/A+BrSHF/ALU" 0 SPO.R/WRITE.RABrSPO+RAB/11rRAHX/OrAHX/RAHXrRBHX/Dr8HX/RBHXrALU/A-BrSHF/ALU" 0 SPO.R/WRITE+RABrSPO.RAB/11rALU/A-8-1rAHX/RAHXrRAHX/Q,BHX/RBHXrRBHX/DrSHF/ALU• •sPO.R/WRITE.RABrSPO.RAB/llrRAHX/OrAHX/RAHXrBHX/KHXrKHX/12rALU/A-BrSHF/ALU 0 0 RAHX/QrAHX/RAHXrBHX/KHXrKHX/12rALU/A-B.RLOGrDT/LONGrSHF/ALUrSPO.R/WRITE.RABrSPO.RAB/11° •sPO.R/WRITE.RABrSPO.RA8/11rRAHX/Q,AHX/RAHXr8HX/LCrALU/A-8rSHF/ALU 0 •ALU/ANDrSPO.R/WRITE.RABrSPO.RAB/llrAHX/RAHXrRAHX/OrBHX/KHXrKHX/12" •sPO.R/WRITE.RABrSPO.RA8/11rALU/ANDNOTrAHX/RAHXrRAHX/QrBHX/KHXrKHX/12rSHF/ALU 0 •spQ.R/WRITE.RABrSPO.RA8/11rALU/ORrAHX/RAHXrRAHX/Qr8HX/RBHXrRBHX/DrSHF/ALU 0 0 SPO.R/WRITE.RABrSPO.RA8/llrRAHX/OrAHX/RAHXr8HX/KHXrKHX/12rALU/ORNOTrSHF/ALU" 0 ALU_Q,SHF/RIGHTrSPO.R/WRITE+RA8rSPO.RA8/11° 0 BHX/OrHSC/READ.RLOGrALU/BrSHF/RIGHTrSPO.R/WRITE.RABrSPO.RAB/11" BC&STATE-STATE-RCJ<EXP> sc_o<A> sc_o-KcJ BC-Al.U !:lC_ALU<EXP> !:lC_D 1:;c_D <EXP> BC-D<EXP><A> BC-D<EXP><B> uc_D-KCJ sc_D.OXTCJ-1([] sc_D.OXTCJ.XOR.KCJ BC_D.AND.KCJ !3C-D.OR.KCJ !:JC_D • SXTC J Eif:_EALU sc_FE !!iC_KCJ BC-KCJ.ALU sc_LA !:IC-LA• AND• KC J BC-LC<EXP> !:IC_NABS <SC-FE> !:JC_PSl.ADDR sc_a BC-D<EXP> sc_Q(EXP><B> BC-OtKCJ !!lC_Q-KCJ BC_Q.AND.KCJ 1:;c_a.uR.KCJ !:lC_O.SXTCJ BC-RC CJ !!iC_RCC: J< EXF' > !3C-RC J l~C-RC J <EXP) BC-RCJ.AND+KCJ !:lC._SCtl "LAB-RC:lllrAHX/LArEBHX/AHX.EXPrHSC/LOAD.STATErEALU/A-BrSHX/EALUrSCK/LOAD• •AHX/RAHX.OXTrDT/LONGrEBHX/AHX+EXPrEALU/BrSHX/EALUrSCK/LOAD• 0 BHX/KHXrKHX/11rAHX/RAHX.OXTrDT/LONGrALU/A-BrSHX/ALUrSCK/LOAD• 0 SHX/ALUrSCK/LOAD" 0 SHX/ALU.EXPrSCK/LOAD 0 0 RAHX/DrAHX/RAHXrALU/ArSHX/ALUrSCK/LOAD 0 •RAHX/DrAHX/RAHXrALU/ArSHX/ALU.EXPrSCK/LOAD 0 0 RAHX/DrAHX/RAHXrEBHX/AHX+EXPrEALU/8rSHX/EALUrSCK/LOAD• •RBHX/DrBHX/RBHXrALU/BrSHX/ALU+EXPrSCK/LOAD• •RAHX/DrAHX/RAHXrKHX/11rBHX/KHXrALU/A-8rSHX/ALUrSCK/LOAD 0 •RAHX/DrAHX/RAHX.OXTrDT/11rKHX/f2rBHX/KHXrALU/A-8rSHX/ALUrSCK/LOAD 0 0 RAHX/D•AHX/RAHX.OXTrDT/11rBHX/KHXrKHX/12rALU/XOR•SC-ALU 0 •RAHX/DrAHX/RAHX,KHX/ll•BHX/KHXrALU/ANDrSHX/ALU•SCK/LOAD 0 "RAHX/DrAHX/RAHXrKHX/11rBHX/KHXrALU/ORrSHX/ALU•SCK/LOAD• 0 RAHX/DrAHX/RAHX+SXTrDT/11rALU/ArSHX/ALUrSCK/LOAD 0 "SHX/EALUrSCK/LOAD" •sHX/FErSCK/LOAD· °KHX/11rE8HX/KHXrEALU/BrSHX/EALUrSCK/LOAD 0 •KHX/11rBHX/KHXrALU/BrSHX/ALUrSCK/LOAD" "AHX/LArALU/ArSHX/ALUrSCK/LOAD 0 0 AHX/LArKHX/11rBHX/KHXrALU/ANDrSHX/ALUrSCK/LOAD" •BHX/LCrALU/BrSHX/ALU.EXPrSCK/LOAD" •EBHX/FErEALU/NA8S.A-8rSHX/EALUrSCK/LOAD 0 0 SHX/EALUrEBHX/KHXrSCK/LOADrKHX/.FrEALU/B" "RAHX/QrAHX/RAHXrALU/ArSHX/ALUrSCK/LOAD" •RAHX/QrAHX/RAHXrEBHX/AHX.EXPrEALU/8rSHX/EALUrSCK/LOAD 0 •RBHX/OrBHX/RBHXrALU/BrSHX/ALU.EXPrSCK/LOAD" 0 RAHX/QrAHX/RAHXr8HX/KHXrKHX/11rALU/At8rSHX/ALUrSCK/LOAD 0 •RAHX/QrAHX/RAHXrBHX/KHXrKHX/11rALU/A-8rSHX/ALUrSCK/LOAD 0 0 RAHX/OrAHX/RAHXr8HX/KHXrKHX/11rALU/ANDrSHX/ALUrSCK/LOAD0 0 0 RAHX/OrAHX/RAHXr8HX/KHXrKHX/11rALU/ORrSHX/ALUrSCK/LOAD •RAHX/QrAHX/RAHX.SXTrDT/11rALU/A,SHX/ALU•SCK/LOAD 1 •spo.R/LOAD.LCrSPO.RC/11rBHX/LCrALU/BrSHX/ALU,SCK/LOAD• 0 SPO.R/LOAD.LCrSPO+RC/11rBHX/LCrALU/BrSHX/ALU.EXPrSCK/LOAD 0 0 SPO.R/LOAD.LABrSPO.RAB/11rAHX/LArALU/ArSHX/ALUrSCK/LOAD 0 0 SPO.R/LOAD.LA8,SPO.RA8/llrAHX/LArALU/ArSHX/ALU.EXPrSCK/LOAD 0 0 ALU/ANDrAHX/LArSPO.R/LOAD.LA8rSPO+RAB/11rBHX/KHXrKHX/12rSHX/ALUrSCK/LOAD 0 •EALU/A+lrSHX/EALUrSCK/LOAD" RCLLC RCJ_LC.RIGHT RCJ .. NUT .o RCLNOT .D F~C LNOT. HASK RCJ_NOT .a F~C LPACK • FP R[J_Q F~CLQ+l F~[J_IJ+5 RCJ .. Q+KCJ RCJ_Q+LB RCJ_C~+LC RCJ .. 0-D F~CJ .. Q-D-1 RCJ_Q-KCJ RCLQ-KCJ.RLOG RC LO-LC RCJ_Q.AND.KCJ RCJ_Q.ANDNOT.KCJ F~CJ_Q.OR.D VAX 11/780 FIELD AND MACRO DEF'INITIONS "EALU/A+BrEBH:<IAHX.EXPrSHX/EALUrSCK/LOADrAHX/RAHXrRAHX/Q" "EBHX/FErEALU/A+BrSHX/EALUrSCK/LOAD" sc_sc+EXP<D><A> sc_sc+FE sc_sc+Krl sc_sc+SHF.VAL sc_sc-FE sc_sc-t<cl BC_SC-SHF+VAL sc_sc.ANDNOT.FE sc_sC.ANDNOT.KCl sc_sc.oR.KrJ sc_SHF.VAL sc_STATE sc_STATE.ANDNOT.KCJ sc_STATE.OR.K[J BD_NOT.SD sn_ss ss_o&sn_o ss_ALU15 BS-SD ss_ss.xoR.ALU15&SD-ALU15 BTATLO<A> !:1TATLAHX •EXP STATLD<EXP> STATE-FE STATE-FIRST BTATLINNEROBJ BTATLINNERSRC !HATE .. KCJ STATE-OUTER STATLPREDEC BTATLCl<EXP> BTATE_sc.VIA.KHX STATLSKPLONG STATLSTATE+l STATLSTATE+FE BTATE..STATE+KCJ BTATLSTATE-FE BTATLSTATE-K[J BTATE-STATE.AN.SKPLONG STATE_STATE.AN.5TOO BTATE-STATE.AN+6T04 BTATE-STATE.AN.DESTDBL STATE-STATE.AN.NOTPREDEC BTATE-STATE.AN+PREDECZERO BTATE_STATE.ANDNOT.FE BTATE-STATE.ANDNOT.KCJ STATE-STATE.ANDNOT.SHF.VAL STATE-STATE.OR.FE BTATE-STATE.OR.KCJ BTATE-STATE.OR.ADJINP STATE-STATE.OR.DEST STATE-STATE.OR,DESTDBL STATE-STATE.OR.FILL STATE-STATE.OR.FLOAT STATE-STATE.OR.HOVE STATE-STATE.OR.PATTl BTATE-STATE.OR.PATT2 BWAPD "EALU/A+BrEBHX/SHF.VALrSHX/EALUrSCK/LOAD" "EBHX/FErEALU/A-BrSHX/EALUrSCK/LOAD" "KHX/@lrEBHX/KHXrEALU/A-BrSHX/EALUrSCK/LOAD" "EBHX/SHF.VAL,EALU/A-BrSHX/EALUrSCK/LOAD" "EBHX/FErEALU/ANDNOTrSHX/EALUrSCK/LOAD" "KHX/@lrEBHX/KHXrEALU/ANDNOTrSHX/EALUrSCK/LOAD" "KHX/@lrEBHX/KHXrEALU/ORrSHX/EALUrSCK/LOAD" "EBHX/SHF.VAL•EALU/BrSHX/EALUrSCK/LOAD" "EALU/ArHSC/LOAD.STATErSHX/EALUrSCK/LOAD" "EALU/ANDNOTrEBHX/KHXrHSC/LOAD.STATErSHX/EALUrSCK/LOADrKHX/@1" "EALU/ORrEBHX/KHXrHSC/LOAD.STATErSHX/EALUrSCK/LOADrKHX/@1" "SON/NOT.SD" "SGN/SD.FROH.BS" "SGN/CLR.SD+SB" "SGN/LOAD.ss• "SGN/SS.FROH.BD" "SON/SS.XOR.ALU" "AHX/RAHX.OXTrDT/LONGrEBHX/AHX.EXPrEALU/BrHSC/LOAD.STATE" "EBHX/AHX.EXPrEALU/BrHSC/LOAD.STATE" "RAHX/DrAHX/RAHXrEBHX/AHX.EXPrEALU/BrHSC/LOAD+STATE" "EBHX/FErEALU/BrHSC/LOAD.STATE" "STATE-KCZEROl" JEDITPC STATES "STATE_K[.ll" 'HATCHC STATES "STATE_K[.JJ" "KHX/@lrEBHX/KHXrEALU/BrHSC/LOAD,STATE" "STATLKCZEROl" "STATE_Kc.eoJ• "RAHX/QrAHX/RAHXrEBHX/AHX.EXPrEALU/BrHSC/LOAD.STATE" "HSC/LOAD.STATErEALU/BrEBHX/KHXrKHX/SC" "STATE_KC.4J" ;SKPC STATES "EALU/A+lrHSC/LOAD.STATE" "EBHX/FErEALU.IA+BrHSC/LOAD.STATE" "KHX/@lrEBHX/KMXrEALU/A+BrHSC/LOAD.STATE" "EBHX/FErEALU/A-BrHSC/LOAD.STATE" "KHX/@lrEBHX/KMXrEALU/A-BrHSC/LOAD.STATE" "STATE_STATE.ANDNOT.KC.4J" "STATE-STATE.ANDNOT.KC.3FJ' "STATE_STATE.ANDNOT.KC.7FJ' 'STATE_STATE.ANDNOT.KC.6J' "STATE-STATE.ANDNOT.KC.7Fl' 'STATE_STATE.ANDNOT.KC.COJ' 'EBHX/FErEALU/ANDNOTrHSC/LOAD,STATE" 'KHX/@lrEBHX/KHXrEALU/ANDNOTrHSC/LOAD.STATE" 'HSC/LOAD.STATErEBHX/SHF.VALrEALU/ANDNOT" 'EALU/ORrEBHX/FErHSC/LOAD,STATE' 'KHX/@lrEBHX/KHXrEALU/ORrHSC/LOAD.STATE' 'STATE_STATE.OR.KC.3J' 'STATE_STATE.OR.K[.4J' 'STATE_STATE.OR.K[,6]' "STATE_STATE.OR.K[.7J' 'STATE_STATE.OR.KC.60l' 'STATE_STATE.OR.KC.50l' 'STATE-STATE.OR.KC.ll' 'STATE_STATE.OR.K[.2J' "DK/BYTE.SWAP' VA-ALU VA_D VA-D+K[J VA-D+LC 'VAK/LOAD' 'RAHX/DrAHX/RAHXrALU/ArVAK/LOAD' 'RAHX/DrAHX/RAHXrKHX/@lrBHX/KHXrALU/A+BrVAK/LOAD" 'RAHX/DrAHX/RAHXrBHX/LCrALU/A+BrVAK/LOAD" "KHX/@lrEBHX/KHXrEALU/A+BrSHX/EALUrSCK/LO~D" Page 1\-30 Page A-31 VAX ll/78A FIELD AND MACRO DEFINITIONS VA-D+Q VA_n .oxn HO VA_D.ANDNOT.K[J VA_IHJ VA-LA VA .. L.A+It VA-LA+KCJ VA-LA+K[J+1 VA_LA+PC VA_.LA+Q VA-LA··D VA-LA-K[J VA_LA-K[J-1 VA .. LA··O VA-LA.AND.LC VA_L.A • ANDNOT. IH J VA-LB+D.OXT VA-PC VA .. ll VA_O+D VA_D+KCJ VA_O+LB VA .. ll+l.B. PC VA-D+LC VA_O+PC VA_Q-K[J VA .. ll··LB VA._Q. ANDNOT •KC J VA .. RCC:J VA_R[J VA_VA+4 •RAMX/D,AHX/RAMXrRBHX/llrBHX/RBHXrALU/A+BrVAK/LOAD" •RAHX/DrAMX/RAHX.OXTrDT/@1rBHX/RBMXrALU/AtBrVAK/LOAD" 1 RAMX/DrAHX/RAMX,BHX/KMXrKHX/@1rALU/ANDNOTrVAK/LOAD 1 1 KHX/@1,BMX/KMXrALU/BrVAK/LOAD 1 1 AMX/LArALU/ArVAK/LOAD 1 1 AMX/LArRBMX/DrBMX/RBHXrALU/A+B,VAK/LOAD 1 1 AHX/LArBHX/KHXrKMX/@lrALU/A+BrVAK/LOAD 1 1 AMX/LArBMX/KMXrKMX/@1rALU/AtB+1rVAK/LOAD 1 1 AHX/LA,BMX/PCrALU/AtBrVAK/LOAD 1 1 AMX/LArRBMX/ll~BHX/RBHXrALU/AtBrVAK/LOAD 1 AMX/LArRBMX/DrBHX/RBMXrALU/A-BrVAK/LOAD 1 "AMX/LArBMX/KMX,KMX/@1,ALU/A-BrVAK/LOAD" "AHX/LArBMX/KHXrKMX/@lrALU/A-B-1,VAK/LOAD" VAK/LOAD,ALU/A-BrAMX/LA•BHX/RBHXrRBMX/llrSHF/ALU 1 AHX/LArBMX/LCrALU/ANDrVAK/LOAD 1 "AHX/LArBHX/KHXrKHX/@1rALU/ANDNOTrVAK/LOAD" 1 1 BHX/LBrALU/AtBrAHX/RAHX.OXTrDT/BYTErVAK/LOAD 1 BMX/PCrALU/BrVAK/LOAD 1 1 RAMX/OrAMX/RAMXrALU/ArVAK/LOAD 1 1 VAK/LOADrALU/AtBrAMX/RAMXrBMX/RBMX,RAMX/llrRBMX/DrSHF/ALU 1 1 RAMX/llrAMX/RAMXrKHX/@lrBHX/KMXrALU/A+BrVAK/LOAD 1 1 RAMX/llrAMX/RAMXrBHX/LBrALU/AtBrVAK/LOAD 1 "RAMX/llrAMX/RAHXrBHX/PC.OR.LBrALU/AtBrVAK/LOAD" 1 RAMX/OrAMX/RAHXrBHX/LCrALU/AtBrVAK/LOAD 1 1 RAHX/llrAHX/RAHXrBMX/PCrALU/A+BrVAK/LOAD 1 1 RAMX/llrAHX/RAMXrKHX/@1rBHX/KHXrALU/A-BrVAK/LOAD 1 1 RAMX/llrAHX/RAHXrBHX/LBrALU/A-BrVAK/LOAD 1 1 RAHX/Q,AHX/RAMXrKHX/@1rBHX/KHXrALU/ANDNOTrVAK/LOAD 1 1 SPO.R/LOAD.LC,SPO.RC/@1rBMX/LCrALU/BrVAK/LOAD 1 1 SPO.R/LOAD.LABrSPO.RAB/@lrAHX/LArALU/ArVAK/LOAD 1 1 PCK/VA+4 1 1 1 1 VAX 11/780 FIELD AND MACRO DElnNITIONS .roe "Hacro definition Page A-32 : Non-transfer aacrus• .B.FORK BYTE "LAB-R<SP1)rQK/IDrC:LR.I8.CONDrPC-PC+NrSUB/SPECrJ/B.FORK" "DT/EIYTE" c:.FORK CACHE, INVALIDATE CALL CALLCJ CHK.FLT.OPR C:HK.ODD.ADDR CLK,UBCC "SUB/SPECrJ/C,FORK" CLR.FP[1 C:LR.IB.COND C:LR. IB.OPC CLR.IB.SPEC CLR.IB0-1 CLR.IB0-3 CLR.IB2-3 CLR.IB2-5 C:LR.NEST.ERR CLR.SD&SS "HSC/CLR.FPD" "IEIC/CLR.1-5.COND" "IBC/CLR.OrIEK/ISTR" "IBC/CLR.1" "IBC/CLR.0.1rIEK/ISTR" "IBC/CLR.0-3" "IBC/CLR.2.3" "IBC/CLR.1-5.COND" "HSC/CLR.NEST.ERR" "SGN/CLR.SD+ss• E.FORK tXCEPT.ACK "SUB/SPECrJ/E,FORK" "IEK/EACK" FLUSH,IB "IBC/FLUSHrVAK/LOADrIEK/ISTR" D.FORK "SUB/SPECrJ/G.FORK" lNHIBIT.IB INTRPT.ACK INTRPT.STROBE IRD :CRI1, 11 IRDO IRD1 "HCT/HEH.NOP" "IEK/IACK" "IEK/ISTR" "IRDOrCLK.UBCCrIRD1rSUB/SPECrJ/A,FORK" "LA-R<DST>&LB-R<SRC>rD-LB.PCrVAK/LOADrO-IB.DATArSC-KC.lOJrPCK/PC+NrHSC/IRDrSUB/SPECrJ/DPO" "LA-R<SP2>&LB-R<SP:L>rD&VA-LBrSC-ALU<EXP>rFE-LA<EXP>rSS-ALU15" "HSC/IRDrQK/IDrHCT/ALLOW.IB.READrIBC/CLR.1-5.CONDrPCK/PC+N" L.OAD.ACC.CC LOAD. Ill LOAD.IB.11 LONG "HSC/LOAD.ACC.cc• "VAK/NOPrHCT/READ.IJ.NEWPC" "VAK/NOPrHCT/READ.IJ.NEWPC" "DT/LONG" HEHORY.NOP MUL.OXT MUL.1XT MULH.DONE MULP.DONE "HCT/HEH.NOP" "SI/HUL+.sc_sc-KC.1JrBEN/HUL" "SI/HUL-rSC-SC-KC.1lrBEN/HUL" "D-D.RIGHT2rSI/HUL-rINTRPT.STROBE" "D-D.RIGHT2rSI/HUL+rINTRPT.STROBE" POLY.I•ONE "ACF/CONTROLrACH/POLY.DONE" RETURNO RETURN! RETURN10 RETURN100 RETURN10C "SUB/RETrJ/0" "SUB/RETrJ/1" "SUB/RETrJ/10" "SUB/RETrJ/100" "SUB/RETrJ/10C" • SUll/RET, JI 1OE• "SUB/RETrJ/12" "SUB/RETrJ/18" "SUB/RETrJ/1F" "SUB/RETrJ/2" • SUEl/RET, J/20 • F~ETURN10E RETURN12 RETURN1B RETURN1F RETURN2 RETURN20 "HCT/INVALIDATErVA~/NOP" "SUB/CALL" "CALLrJ/11" "HSC/CHK.FLT.OPR" "HSC/CHK.ODD.ADDR" "CCK/LOAD.UBCC" •DISCARD -11 INSTR & OPERAND •11 HODE DISCARD ISTREAH OPERAND •2ND PART OF Q/D IHHEDIATE VAX 11/780 FIELD AND MACRO DEFINITIONS RETURN24 RETURN3 RETURN4 Page A-33 RETURNCJ •suB/RET.J/24 8 ·suB/RETrJ/J• •sUB/RET,J/4• •sUB/RET,J/40• •suB/RETrJ/60. •suB/RET.J/61• •sue/RETrJ/e• •sue1RET,J19• •sue/RETrJ/OF· •suB/RETrJ/11• SET.CC<BYTE> BET.CC<INS'r> BET.CC<LONG> BET.CC<ROR> BET.CC<WORD> !:iET.FP[I BET.NEST.ERR SET.PSL.C<AHX> !~ET .V BPEC SP ECG START.IB STOP. IB •cCK/INST.DEP,DT/BYTE• •ccK/INST.DEPrDT/INST.DEP· •ccK/INST.DEPrDT/LONG· •ccK/ROR· •ccK/INST.DEPrDT/WORD· •HSC/SET.FPD• •MSC/SET.NEST.ERR• •ccK/C_AHXo• ·ccK/SET.v• •LAB-R<SP1>rO-IB.DATArCLR.IB.CONDrPC-PC+NrHCT/ALLOW.IB.READrSUB/SPECrJ/C.FORK" •LAB-R<SP1)rQ-IB.DATArCLR.IB.CONDrPC_PC+NrMCT/ALLOW.IB.READrSUB/SPECrJ/G.FORK" •uc/START· •rec/STOP· TEST.TB.RCHK 'T'EST.TB.WCHK TRAP.ACCCJ •HCT/TEST.RCHKrVAK/NOP• •HCT/TEST.WCHK•VAK/NOP• •ACF/TRAPrACH/&1• WORD WRITE.DEST WRITE.G.DEST •DT/WORD• •LAB-R<SP1),QK/IDrCLR.IB.COND,PC-PC+N•SUB/SPECrJ/WRD" •LAB-R<SP1>r QK/IDrCLR.IB.CONDrPC-PC+NrSUB/SPECrJ/WRG• F~ETURN40 F~ETURN60 RETURN61 r<ETURN8 HETURN9 F~ETURNF VAX 11/780 FIELD AND MACRO DEF'INITIONS .TOC •Macro definition . Branch enable macros• AC.LOW? ACC.SYNCT ACCEL? ALIGNED? ALU.N? ALUl-01 ALU'!' "BEN/INTERRUPT• •BEN/ACCEL• •BEN/ACCEL• •BEN/TB.TEST• •BEN/ALU" •BEN/ALUt-o• "BEN/ALU• frJJ/J• frJJ/J• I•CI1SGN1' "BEN/DECIMAL• frJ2/2• C31'!' CONSOLE.MODE'!' "BEN/CJt• "BEN/PSL.MODE" frJS/tB• 1)(1 )'!' D.801 [1.811' 1).82'!' D.8YTES? D.NE.01' DO? D2-0'!' [12'!' DJ-0'!' DJl'!' DJ'!' DATA.TYPE'!' DBL? •BEN/MUL• •BEN/D.BYTES• •BEN/D.BYTES• •BEN/D.8YTES• •BEN/D.BYTES• •BEN/SIGNS• "BEN/DJ-0" •BEN/DJ-o• ·BEN/DJ-o• •BEN/DJ-o• •BEN/SIGNS" "BEN/DJ-o• •BEN/DATA.TYPE• •BEN/DATA.TYPE" EALU.N'!' EALU.Z? EALU'!' END.DPl? •eEN/EALU• •eEN/EALU• •f1EN/EALU" •BEN/END.DPt• f rJ4/07• frJ4/0B• FPD'!' •BEN/LAST.REF• f rJ4/07• :cB.TEST'!' INT? INTERRUPT.REG'!' lRO.CJ11 IRO'!' IR!? IR2-1'!' "BEN/IB. TEST9 •BEN/INTERRUPT• •BEN/INTERRUPT• frJ3/S• •BEN/ALU" PrJ4/0D• "BEN/ALU• PrJJ/6• •BEN/IR2-1" •eEN/IR2-1• LAST.REF'!' •BEN/LAST.REF• HODE.LSS.ASTLVL'!' HUL? •BEN/REI• •BEN/MUL' lrJ3/J• NEST.ERR'!' "BEN/LAST.REF• frJ4/0B• PC.HODES'!' PSL.C? PSL.CC? PSL.HODE? F'SL.N? PSL.V? f'SL .Z'!' PTE.VALID? •BEN/PC.HODES• •eEN/PSL.cc• 'BEN/PSL.cc• •BEN/PSL.MODE• ·BEN/PSL.cc• ·BEN/PSL.cc• ·BEN/PSL.cc• •BEN/TB.TEST• QJ11 DUAD'!' frJ3/J• •BEN/SIGNS• •BEN/DATA.TYPE- I rJS/17• frJ4/07" PrJ4/0E• f rJ4/0D• PrJ4/08• f rJJ/s• f PREFERED FORM PrJ4/0E• f rJ4/0S• frJ4/08• PrJJ/6• f rJ4/07• f rJ4/0E• f rJ4/7• frJ4/0D• frJ4/0B• fr JS/OF• Page A-34 VAX 11/780 FIELD AND MACRO DEFINITIONS ;,J4/7• RLOG.EHPTYT FmR'l' •:aEN/ALU1-0• •BEN/ROR• sc.GT.O'l' SC.NE.O'l' !:lC'l' SIGNS? SRC.PC'l' SS'l' STATE<7>1 STATEO'l' f:lTATE1-0'l' f:lTATEl'i' STATE2'i' f:lTATE3-0'l' STATE3'i' STATE4'i' STATES? !:iTATE6'i' f:lTATE7-4'l' •:aENtsc• •BEN/HUL• •BEN/SC• •BEN/SIGNS• ·BEN/SRc.pc• •BEN/EALU• •srATE7-4'i' •BEN/STATEJ-o• "BEN/STATE3-0" "BEN/STATE3-0" "BEN/STATE3-0" "BEN/STATE3-0" "BEN/STATE3-0" 'BEN/STATE7-4" "BEN/STATE7-4" "BEN/STATE7-4" "BEN/STATE7-4" TB.TEST? •BEN/TB.TEST" VA31-30'l' VA31'i' "BEN/PSL.HODE" "BEN/PSL.HODE" ; rJ5/07" ;,J5/0F" Z'i' "BEN/Z• "BEN/DECIMAL" ; rJ2/1" ZONED? .BIN ;,J313• ;coHP HODEr BEN ON SRC R = PC PrJ4/0E" 8 ;,J4/0E" ;,J4/0C" ; , J4/0I1" ;,J4/0B" ;,J4/07" ;HAKE LISTING ROOH FOR BINARY FROM HERE ON Page A-35 APPENDIX B SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 This appendix contains a sample VAX 11/780 microprogram, which performs an unsigned binary search on a vector of longwords in main memory. The parameters of the routine, the value to be searched for and the beginning and end of the vector, are passed in registers. A command file that assembles, loads, and executes this sample microprogram is provided in the VAX 11/780 WCS kit. To invoke this file in the VMS environment, type: @[SYSEXE]WCSTOLTST This command file assembles the input listing (Section B.l) and produces the listing file (Section B.2) and the object file (Section B.3) which are written to [VAXWCSTOL]SAMPLE.MCR and [VAXWCSTOL]SAMPLE.ULD. It then loads the object file into the extended WCS and runs the test program BSTEST (Appendix D). BSTEST executes an XFC instruction, which causes the sample microprogram loaded in the WCS to be executed. If the microprogram executes p~operly, BS'l'EST prints the following message on the terminal: "Successful Test Completion" SAMPLE MICROPROGRAM FOR SYSTEM REVISION B.l >7 THE INPUT FILE (.MIC) .TOC •ainarY search routine• .REGION /tCOOrlFFF .BOUNDS/BSERCH:tcoo.tFFF fUser wcs space. fThis defines the •report boundries ffor the U-code microword summarw Pa•e fand na•es the report boundarw BSERCH. SaaPle microcode to Perform an unsi•ned binarw search throudh a vector of alisned lonswords in •ain •e•orw. INPUTS RO Search comParand. Routine succeeds bw findin• a memorw cell containin• same data as RO. Rl Lower address bound. Ali•ned lon~word address of lowest address of vector to be searched. R2 - UPPer address bound. Alisned lon~word address of hishest address of vector to b~ se•rched. It i$ imPlied that Rt lssu R2r and that the ~e•orv bfftween the addresses in Rt and R2 contains a sorted vectorr in ascendins unsidned order. OutPuts if search finds a match. CC<Z> Clear RO Search comParand. Rl Hatch address. Address of lonsword cont•inin• •••• d•ta as RO. R2 Used bw search for temPorarw address values. OutPuts if search does not find a •etch. CC<Z> Set RO Search comParand. Rt Used bw search for temPorarw address v•lues. R2 Used bw search for te•Porarw address values. Page B-2 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 SRCH: ;-----------------------;;GET UPPER BOUND ADDR TO Q Q_RCR2J, STATE-KCZEROJ ;INITIALIZE STATE REGISTER ;-----------------------;9GET COHPARAND TO HOLD IN RC D_R[ROJ ;-----------------------;f PREPARE TO WRITE COHPARAND TO RC ALU_D, LAB-R1&RCCT1l-ALU fWRITE COHPARANDr GET LOWER BOUND SRCH.1: ;-----------------------; Q_CLA+O>.RIGHTr ;COMPUTE MIDPOINT ADDRESS INTRPT.STR09Er 9TEST FOR INTERRUPT REQUESTS STATE01 PIS IT TIME TO STOP? ~o SRCH.2: PO----------------------;STATEO=O. KEEP LOOKING FOR HATCH. Q_Q.ANDNOT.KC.3Jr JFORCE LONGWORD ALIGNMENT VA-ALUr ;GET READY TO READY MIDPOINT OF VECTOR LC-RCCTlJ, PLATCH COHPARAND INTO LC INT?,J/SRCH.3 9IS THERE AN INTERRUPT REQUEST? ;1----------------------;STATEO=l. SEARCH FAILED. NO HATCH. ALU-KCZEROJr ; CCK/NZ-ALU.VC_OrLONGr ;RETURN Z=l TO FLAG FAILURE. CLR.IB.OPCrPC-PC+lr fHOVE ON TO THE NEXT INSTRUCTION J/IRD =110 SRCH.3: 1110--------------------INO INTERRUPT REQUESTS D[LONGJ_CACHEr ;READY MIDPOINT ENTRY OF VECTOR ALU-R[R2J.XOR.Or ;COMPARE MIDPOINT EQL UPPER BOUND CLK.UBCCrJ/SRCH.4 ; ;111--------------------fINTERRUPT REQUEST IS UP J/INT.9 ;TAKE IT. RESUME FROM REG'S AS rs. Page B-3 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 WE HAVE ALSO SET THE HICROBRACH Z BIT ACCORC•ING TO A COMPARE OF THE HEHORY ADDRESS WITH THE CURRENT UPPER BOUND, IF THEY ARE EQUAL• THIS IS THE LAST POSSIBLE COMPARISON, A HATCH FAILURE HERE IMPLIES THAT THERE IS NO HATCH TO BE FOUND, SRCH.4: ;-----------------------; ALU_D-LCt ;coHPARE HEHORY TO COHPARAND LONGrCLK.UBCCr ;RECORD COMPARE RESULT LA-RA[R1Jr ;LATCH LOWER BOUND INTO LA <LB HAS 111 Z? ;IS MIDPOINT EQL UPPER BOUND? =O ;0----------------------;ALU Z=O. NOT END OF SEARCH ALUTrJ/SRCH.5 ;JEST RESULT OF COMPARE ;1----------------------JALU Z=1. END OF SEARCH STATE_K[.1Jr ;sET STATEO TO HARK END OF SEARCH. ALU? ;cHECK FOR LAST CHANCE HATCH ~=1010 SRCH.5: 11010-------------------;AL.U Z=Or C=1. RO GTRU HEH Q_Q+K[,4Jr JLOWER LIMIT MUST BE GREATER THAN THIS RCR1J_ALUr ;REMEMBER IN Rt. J/SRCH.6 ;io11-------------------·;ALU Z•Or C=O. RO LSSU HEH Q_Q-K[.4Jr fUPPER LIMIT HUST BE LESS THAN THIS RCR2J_ALUr ;REHEHBER IN R2 J/SRCH.1 ;GO TRY AGAIN ~1111 ;1111-------------------;ALU Z=lr C=l. RO EQL HEM R[R1J_Q, IFOUND IT! CCK/NZ_ALu.vc_o,LONGr ;sET Z=O TO INDICATE HATCH CLR.IB.OPCrPC_PC+lr ;Go TO NEXT INSTRUCTION J/IfW SRCH.6: ;-----------------------; IL<O+l.9) .RIGHTr ;coMPUTE NEW HIDPOINTr LOOP ; INTRPT,STROBEr ;CHECK FOR ENDr LOOP STATEOTrJ/SRCH.2 ; DEFINE LABLES TO INTERFACE WITH PCS 0062: IRD: 04F8: INT.II: Page B-4 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 B.2 THE LISTING FILE (.MCR) NEWSAM.MGR 2 56 9"7 150 205 255 330 405 452 487 529 568 617 624 1538 1634 1729 Machine definition Machir1e definition Machine definition Machine definition Machine definition Machine definition Machir1e definition Machine defird. ti on Machine definition Machine definitit:1n Machine definition Machine definition Machir1e definition Macro definition Macro definition Macro definition Binar!:I search routine MICR02 1LC02> 18-JAN-82 Table of Contents 16:15:06 Control word ch.:1rt ACFr ACMr ADSr ALIJr AMX BENr BMX CCK, CI[I, [II(, [IT EALU, EBMXr FEK, FSr IEKr IBC I[1.A[tf1R, J KMX Mer, MSC PCl<r Qt<, RAMXr RBMX SCKr SGNr SUFr s1, SlMX SF'Or SPO.AC, SPO.ACNr SPO.ACN11r SPO.RABr SPO.RC:r SUBr VAi< Validi t!:I checks Resister tran~lff'ir ITtiilCT'Ofa Nnn-transfer macrc1s Branch enable macros f.>PO.I~ Page B-5 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 NEWSAM.MCR MICR02 1L<02> 10-JAN-02 ;1 .NOLIST • LIST Page B-6 16:1s:o6 f';3£1e VAXDEF.MIC ; i '728 flnhibit listin~ for VAXDEF.MIC 2 SAMPLE MICROPROGHAM FOR SYSTEM REVISION NEWSAM.MCR BSERCH.MIC > 7 Page B-7 18-JAN-8~~ MICR02 1L< 02 > Binary search routine .roe "Binarw search routine• ;t729 91730 H731 ;t732 ;1733 91734 ;ins ;t736 ;i737 '9 .REGION 11coo,1FFF • BOUNDS/BSERCH:1coo,1FFF User wcs sF•ace • This defines the report houndries for the U-code microword summary Pa•F and names the report boundarw BSERCH. SamPle microcode to Perform an unsisned binary search throush a vector of alisned lonswords in main memorw. ;ins INPUTS ;i739 H740 ;1741 H742 H743 H744 H745 H746 H747 H748 H'749 ;1750 ;1751 ;1'752 ;i753 ; 1754 ;1'755 ;t756 ;i757 ; 1758 ;i759 H760 Search comparand. Routine succeeds bw finding a memorw cell containins same data as RO. Rt Lower address bound. Alisned lonSlword address of lowest address of vector to be searched, R2 Ur:-F•e r add res-s bound. Al ism:~d 1 on~1wc1NJ add rfJS!; of hiSlhest address of vector to be searched. It is implied that R1 lssu R2' and that the memorw between the addresses in R1 and R2 contains a sorted vector, in ascendins •Jnsisned order. RO - Outputs if search finds a match. CC<Z> Clear RO Search comParand. R1 Match address. Address of lonsword containins same data as Rt. R2 Used bw search for temPorarw address values, Outputs if search does not find a match. CC<Z> Set. RO Search comParand. R1 Ueed bw search for temPorarw address values. R2 - Used bw search for temPorarw address values. SAMPLE MICROPROGRAM FOR SYSTEM REVISION NEWSAH.HCR BSERCH.HIC HICR02 Binar~ 1L<02> u 1co4, oooo,003c,19co,FA10,1404,7cos U 1C05r OB00,003Cr0180,FAOOr0000,1COB u 1coa, 0001.003c,01ao.FBOB.oooo,1co9 ;ins U 1C09r 005Cr1714r01CO,FB00,4000•1COO U lCOOr 0019,2E24,0DCOrF908,0200r1C06 u 1co1, co1a,00Ja,19ao.Feo4,4050,0062 u 1co6. 001c.0020,01eo,4210.0010.1coc u 1co1. oooo,003c,01so.Feoo,oooo.04Fe '1776 ;1777 ;1779 f 1779 ;1100 H781 ;1102 ;1783 ;1794 ; 1785 ;1786 ; 1787 ;1788 ;1789 f 1790 '1791 '1792 ;179J ;1794 ;1795 ;1796 H797 ;1798 ;1799 Page B-8 Pase 18-JAU-82 search routine ;1761 '1762 '1763 f 1764 H765 H766 H767 H768 ;1769 ;1770 H771 ;i772 ;i773 ; 1774 >7 SRCHl ,_______________________ , Q_R[R2], STATE_K[ZEROl fGET UPPER BOUND ADDR TO Q ;INITIALIZE STATE REGISTER ;-----------------------· ,_______________________ ,;GET COHPARAND TO HOLD IN RC D_R[ROl ALU_D, LAB-R1&RC[T1l-ALU SRCH.1: ;PREPARE TO WRITE COHPARAND TO RC IWRITE COHPARANDr GET LOWER BOUND ;-----------------------1 Q_(LA+Q>.RIGHT• INTRPT.STR09Er STATEO? ICOMPUTE MIDPOINT ADDRESS ITEST FOR INTERRUPT REQUESTS fIS IT TIHE TO STOP? •O SRCH.2: ;o---·-------------------;STATEO=O. KEEP LOOKING FOR HATCH. Q_Q.ANDNOT.K[.3], IFORCE LONGWORD ALIGNMENT VA-ALU• fGET READY TO READY MIDPOINT OF VECTOR LC-RC[Tl], ILATCH COHPARAND INTO LC INT?,J/SRCH.3 IIS THERE AN INTERRUPT REQUEST? ;1----------------------ISTATEO=l. SEARCH FAILED. NO HATCH. ALU_K[ZEROJ, ; CCK/NZ_ALU.VC_O,LONG• ;RETURN Z=l TO FLAG FAILURE. CLR.IB.OPCrPC_PC+1r IHOVE ON TO THE NEXT INSTRUCTION J/IRD ; =110 SRCH,J: ;110--------------------INO INTERRUPT REQUESTS D[LONGJ_CACHEr IREADY MIDPOINT ENTRY OF VECTOR ALU_R[R2J.XOR.Qr ICOHPARE MIDPOINT EQL UPPER BOUND CLK.UBCCrJ/SRCH,4 ; ;i11--------------------IINTERRUPT REQUEST IS UP J/INT.B fTAKE IT. RESUME FROH REG'S AS IS. 40 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 NEWSAH.HCR BSERCH.HIC HICR02 1L<02> 18-JAN-82 Page B-9 l6:1s:06 Binarw search routine U 1COCr 0011r0100r0180rF888r0010r1C02 U 1C02r OOOOr1B3Cr0180rF800rOOOOr1COA U 1C03r OOOOr1B3CrOS80rF800r1404r7COA U 1C0Ar 0019r2014r11COrFA88rOOOOr1COD U 1COBr 0019r2000r11COrFA90rOOOOr1C09 U 1COFr C001r203Cr0180rFA8Cr40SOr0062 U lCODr 004Dr3714r01COrFBOOr4000r1COO f 1800 11801 '1802 f 1803 f1804 '1805 11806 '1807 f1808 f1809 ;1010 '1811 ;1012 '1813 11814 11815 11816 '1817 ;1s1s '1819 '1820 ;1021 ;1022 '1823 '1824 11825 J1826 '1827 f182B ;1029 ;1030 ;1031 11832 J1833 ;1934 11835 11836 '1837 ;1939 91839 '1840 11841 ;1842 WE HAVE ALSO SET THE MICROBRACH Z BIT ACCORDING TO A COMPARE OF THE MEMORY ADDRESS WITH THE CURRENT UPPER BOUND. IF THEY ARE EQUALr THIS IS THE LAST POSSIBLE C~MPARISON. A MATCH FAILURF HERE IMPLIES THAT THERE IS NO HATCH TO BE FOUND. SRCH.4: 1-----------------------J ALU_D-LCr ICOMPARE MEMORY TO COMPARAND LONGrCLK.UBCCr fRECORD COMPARE RESULT LA-RACR1Jr ;LATCH LOWER BOUND INTO LA <LB HAS ??? ZT JIS MIDPOINT EQL UPPER DOUND? •0 10----------------------fALU Z=O. NOT END OF SEARCH ALUTrJ/SRCH.5 ;JEST RESULT OF COMPARE ;1----------------------;ALU Z•1. END OF SEARCH STATE_Kl.1Jr JSET STATEO TO MARK END OF SEARCH. ALUT ICHECK FOR LAST CHANCE MATCH =1010 SRCH.5: ;1010-------------------;ALU Z•Or C•l. RO GTRU HEM Q_QtKCo4Jr ;LOWER LIMIT MUST DE GREATER THAN THIS RCRlJ_ALUr ;REMEMBER IN Rlo J/SRCH,6 ;1011-------------------JALU Z=Or C•O. RO LSSU MEM Q_Q-K[o4Jr ;UPPER LIMIT MUST DE LESS THAN THIS RCR2J_ALUr ;REMEMBER IN R2 J/SRCHo1 ;Go TRY AGAIN =1111 ;1111-------------------;ALU Z=lr C•1. RO EQL MEM RCR1J_Q, ;FOUND IT! CCK/NZ-ALU.vc_o,LONGr ;SET Z=O TO INDICAl~ MATCH CLRoIB.OPCrPC-PC+lr ;Go TO NEXT INSTRUCTION J/IR[I SRCH.6: ;-----------------------; Q_(QtLB>.RIGHTr •COMPUTE NEW MIDPOINrr LOOP INTRPT.STROBEr ' STATEOTrJ/SRCH.2 'CHECK FOR END• LOOP ' DEFINE LABLES TO INTERFACE WITH PCS 0062: IRI•: 04F8: INT.9: 41 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAH.HCR ; .J INT.It IRD SRCH SRCH.1 SRCH.2 SRCH.3 SRCH.4 SRCH.5 SRCH.6 >7 HICR02 1L<02> 19-JAN-92 16:15!06 Cross Reference Lhstins - Field Names and Defined Values 326 • 1799 1790 1762 1774 t 1790 1794 1796 1912 1922 • • 1942 • 1933 1927 1938 1793 1805 t 1919 1835 t • • 1941 • Page B-10 Pase 42 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWBAM-. MCR AC.LOW'!' ACC. SYNC'!' AGCEL!' ALIGNEfl'i' ALU.N? ALUl·--0~!' ALIJ'? ALU .... ····1 AL.U ... OCA> ALIJ .... O·.. fl ALILOH,_..1 ALILO+KCJ ALU ... O+KC H1 ALILO+l.. .B+ 1 AL.U ... O+L.C ALU_o+u:u ALU_.O+MAS~~+l ALU_,O+D ALU_OHHl AL.ll..0-.. fl ALU_O···J:l·-1 ALU_O··-KC: J ALll •.. O·-·KC: J·-·1 ALILO·-·l..B ALU •. 0-·l..C AL.U_O·-l..G-·1 ALLJ_O·-Q ALU ... 0·-0··- l ALILOC: :rn ALU .. OC: JL.C ALU_,[1 Al..ILD<EO ALIJ...D+KC: J ALU._U+KC: J+:I f.1LIJ •. D+K [ J. Rl..013 ALl.l ... U· .. l...B ALlJ_D+LC 1~LIJ. .• fl+LC:+1 ALU_D+LC+F'SL.C: ALIL.fl+Q ALLl .. fl· .. Q+1 ALU_n+a+F'SL.C ALILr.... r~L.CIG AULD-KC: J ALIL.D···K [ J-· 1 ALl.J .. [1·-LEI ALILD·-LB. RLOG ALU ... D-L..C AL.ILD-·LC-·· 1 ALU_[l·-·Q Al..ILil·-Q-··1 Al-U ... II. OXT [ J ALU ... U. OXT [ J +KC: J ALU .... D.OXTC::J+L.C ALlJ_U.OXHJH~ > 7 18-~IAN-82 16:15:06 1L<02) M1crm2 Mac rel Names; Cro!:>s Reference List in!.'.! - 1636 t 16:P t 16:58 t 16:39 t 1640 t 1641 t 1642 t 626 t 6:;!7 t 6;!.a t 629 t 6~i0 t 631 t 6:~2 1812 t 633 t 6:34 :f: 635 t 6~i6 63"7 6:rn 6:W 640 641 642 64:3 644 645 646 647 648 649 650 651 652 t t t t t t t t t t t t t t t 1770 t t 65~".l t 654 t 655 t 656 657 658 659 660 661 662 t t t t t t t 66~i =I: 664 665 666 667 668 669 6·10 671 672 673 t t t t t t t t t t 1fJ06 HH6 Page B-11 P<il~.H:.• 43 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAH.HCR ALU_D.OXHJ-K[J ALU_D.OXHJ-Q ALU_D.OXTCJ.AND.KCJ ALU_D.OXTCJ.ANDNOT.KCJ ALU_D.OXTCJ.OR.Q ALU_D.AND.KCJ ALU_D.AND.HASK ALU_D.ANDNOT.KCJ ALU-D.ANDNOT.HASK ALU_.D. ANDNOT. Q ALU_D.OR.KCJ ALU_D.OR.LC ALU_D.OR.O ALU-I•. OR• RC[ J ALU_D.ORNOT.HASK ALU_D.SXHJ ALU_D.SXTCJ+KCJ ALU_D • SXT [ J Hl ALU_D.SXTCJ.AND.KCJ ALU_D.SXTCJ.ANDNOT.KCJ ALU_D.XOR.KL:J ALU_D.XOR.LC ALU .. D. XOR• Q ALU_D.XOR.RCCJ ALU_D.XOR.RCJ ALU_DCJK[J ALU_[l[JLB ALU_.D[JLC ALU_D[JQ ALU_K[J ALU-LA ALU-LA+KCJ ALU_LA+KC H1 ALU-LA+KCJ.RLOG ALU_LA+LB ALILLA+LC ALU_LA+LC+1 ALU_LA+LC+f'Sl..C ALU_LA+Q ALU_LA-I1 ALU_. LA-D-1 ALU_LA··KC J ALU_LA-KCJ-1 ALU_LA·-KC J. RLOG ALU-LA-LC ALU-LA-Q ALU_Ui-0-1 ALILLA. AND. KC J ALU-LA.AND.LC ALU_LA.ANDNOT.KCJ ALU-LA.ANDNOT.HASK ALILL.A. OR. KC J ALU-LA.XOR.LC ALU .. LACJD ALLLLA[ JLB >7 HICR02 1LC02> 18-JAN-82 16:15:06 Cross Reference Listins - Macro Names •• ••• 674 675 676 677 678 679 t 680 t 681 t 682 683 t 684 685 t 686 687 t 688 689 t 690 t 691 t 693 t 692 t 694 t 695 t 696 t 697 t 698 t 699 t 700 t 701 t 702 t 703 t 704 t 705 t 706 t 707 t 708 t 709 t 710 711 712 713 t 714 t 715 t 716 717 t 718 t 719 t 720 t 721 t 722 t 723 t 724 t • • • • •• • • 72~:; t 726 t '727 t 728 t 1787 Page B-12 F'a!'Je 44 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAH.HCR ALU-LA[JQ ALU-LB ALU-LC ALU-NOT.D ALU_NOT.KCJ ALU_NOT.RCCJ ALU-PACK• Ff' ALU-PC ALU_Q ALU .. Q<IO ALU-O+KCJ ALU-O+KCl+l ALU-O+LB ALU_Q+LB+l ALU ... tHLC ALU_Q+LC+l ALU_Q+LC+PSL.C ALU_O+HASK ALU_O-D ALU_Q-D-1 ALU_Q-KCJ ALU_Q-LB ALU_Q-LC ALU_Q-HASK-1 ALU_Q.OXTCl ALU_Q.OXTC HD ALU_Q • OXTC J+D+ 1 ALU. Q• OXTC l+K [ l ALU_Q.OXTCl-D ALU_Q,OXTCJ-KCl ALU_Q.OXTCJ.ANDNOT.K[J ALU_Q,OXTCJ.OR.D ALU_Q.OXTCl.OR.K[J ALU_Q.AND.D ALU_Q.AND.KCl ALU_Q.ANDNOT.KCJ ALU_Q,ANDNOT.HASK ALU_Q,ANDNOT.R[l ALU_Q.OR.KCJ ALU_Q,OR.LC ALU_Q,ORNOT.KCl ALU_Q • SXTC l ALU_Q • SXTC J+K[ l ALU_Q >SXTC J+LB ALU_Q. SXTC l+LB+l ALU_Q,SXTCl+PC ALU_Q,SXTCJ.ANDNOT.KCJ ALU_Q.XOR.D ALU_Q,XOR.KCJ ALU_Q.XOR.LC ALU-0.XOR.RCCl ALU-OClD ALU-R<DST> ALU~R<SC>.ANDNOT.KCJ ALU-R(SPl>+KCJ.RLOG 16:1:S:Ol1 HICR02 1L<02) 18-JAN-8~~ Cross Reference Listin~ - Hacro Names 729 t 730 731 732 733 t 734 t 735 t 736 737 738 739 740 741 742 743 744 745 746 747 t 748 749 750 t 751 752 753 754 755 756 757 t 758 759 t 761 760 762 763 764 765 •• • •• ••• •• ••• • •• ••• ••• • •• •• ••• 767 768 769 • 770 • 771 • 772 773 • 774 • • 775 • 776 • 777 • 778 • 779 780 • 781 • 792 • 783 • • 766 t t Page B-13 pa ~.:Jf~ 4~'j SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAH.HCR ALU-RC<SC) ALU.RCCJ ALlLRLOG ALU-RCJ ALU-RCJ-KCJ ALILR[ J •AND. KC J ALU.RCJ.AND.LC ALU-RCJ.ANDNOT.KCJ ALU_RCJ.ANDNOT.HASK ALU-RCJ.OR.KCJ ALU_RCJ.ORNOT.l\[J ALU-RCJ.XOR.KCJ ALU_R[J.XOR.G El.FORK BCDSGN"? DYTE C.FORK C311 CACHE.INVALIDATE CACHE.P-DCJ CACHE[J_D CACHE.-II <QUAD> CACHE_D.INST.IIEP CACHLIICJ CACHE._[![ J. LK CACHLUCJ.NOCHK CALL CALLC:l CHK.FLT.OPR CHK.ODD.ADDR CLK.UicCC CLR.Ff'[I CLR.IIc.COND CLR.IB.OPC CLR.IB.SF'EC GLR. IB<>-1 CLR.IB0-3 CLR.IB2-3 CLR. IIc2-5 GL.R.NEST.ERR CLR.S[l&SB CONSOLE.MODE? D&G ... Ct+Q D&RCC J ... F'C D&VA ... ALU I:t&VA .. D+L.C D&VA .. [tfQ D&VA .. Ct-·KC J D&VfLLA D&VA ... LB I:t&VA .... O O&VA .. O+LB. PC LH1>'!' D.801 [I.JU? 18-JAN-82 16 :15: 06 HICR02 1L< 02) Cross Refereric:e Listir.S - Macro Names 784 t 785 t 786 t 787 t 799 t 799 t 790 t 791 792 793 t 794 t 795 t 796 1540 t 1644 t 1541 t 1543 t 1646 t 1544 t 799 t 799 t 800 t 901 t 802 t 803 t 804 t 1545 t 1546 t 1547 t 1548 t 1549 t 1551 t 1552 t 1553 t 1554 t 1555 t 1556 t 1557 t 1558 t 1559 t 1560 t 1647 t 806 t 807 t 808 t 809 t 810 t 811 t 812 t 813 t 814 t 815 t 1649 t 1650 t 1651 t •• • 1795 1796 1807 178'J 1832 Page B-14 Pase 46 SAMPLE MICROPROGRAM FOR SYSTEM REVISION , NEWSAH.HCR n. 1121 D.BYTES? D.NE.O'? DO'!' [12-0'? [121 [13-0'!' [131 '!' U3'!' DATA.TYPE'!' DBL? l)[LCACHE m: :J_CACHE • IBCHK D[ LCACHE • LK U[J_CACHE.NOCHK D[LCACHE.P [l[J_CACHE.WCHK ILO D... OtK[ Jt1 IL.Otl.Ct1 ILO-[I ILO-K[J n._o-a IL.O··Q·-1 ILACCEL &SYNC ILALU n._ALU <FRAC > [!_ALU.LEFT ILALU.LEFT2 IJ_ALU. LEFT3 D-ALU.RIGHT ILALU.RIGHT2 IL BLANK n_CACHE.INST.DEP ILCACHE • LK[ l [l_CACHE.WCHK[J D-CACHH J IL.D <FRAC > ILD+KrJ D-D+KCH1 IL[HL.B ILD+LC IL[ltLC+PSL • C ILD+a ILDHH1 [l_[l··KL:J [1_[1-LC ILD-a [l_[l-Q·-1 ILD.OXHJ [1_[1.0XHJ+KL:J [l_[l.OXT[J+D D.-D. OXH J+D+l n_D.OXTCJ.ANDNOT.KCJ ILD.OXT[J.OR.O >7 HICR02 1L< 02) 1B-JAN-El2 16:1:'.'i:06 Cross Reference Listir1!!1 -· Macro Names •• •• •• •• • • 1652 1653 1654 1655 1656 t 1657 1658 1659 t 1660 t 1661 1662 817 t 818 t 819 820 t 821 822 t 824 t 825 t 026 t 827 t 828 t 829 t 830 831 t 032 t 833 834 835 t 836 t 837 t 838 839 t 840 t 841 t 842 t 843 844 t 845 t 846 t 847 t 848 849 t 850 851 852 t 853 t 854 8~15 t 856 857 t 858 t 859 t 860 t 861 t • •• • • • •• • • 1794 Page B-15 Pase 47 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAH.HCR ILD .OXTC J •XOR. a D_D.OXTCJ.XOR.RCCJ D-D.AND.KCl D-D.AND.KCJ.LEFT2 n_D.AND.KCJ.RIGHT [1_D.AND.LC D-.D •AND• HASK ILD.AND.O D_D.AND.RCCJ D_D.ANDNOT.KCJ ILD.ANDNOT .LC Ll_D.ANDNOT.PSWZ D-D.ANDNOT.D D-D.ANDNOT.RCCJ D_D.LEH D_D.LEFT2 [l_D.OR.ASCII ILD.OR.K[J [l_D.OR.PSWC J)_D.OR.f'SWV n_r1. OR .a D_D.OR.RCCJ D_D.OR.RCJ D_D.ORNOT.HASK D_D.RIGHT ILD.RIGHT<B> D-D.RIGHT2 ILD.SWAP D_D.SXTCJ D-D • SXH J. RIGHT ILI•. XOR. KC J ILD.XOR.LC 1)_£1, XOR.Q ILDAL.NORH ILDAL..SC IJ_D[JK[) ILDCJHASK D-DlJD I.l_ I NT. SUH D_KCJ IU<CJ.RIGHT ILK[] .RIGHT2 ILL.A D_LACFRAC> ILLA+D+f'SL. C ILLA-D D-LA-KCJ ILLA. AND. KC J J:l_LA.RIGHT [l_LB n_LB.f'C IJ_LC D-LCCFRAC> [l_NOT ,[1 [1_NOT .KCJ 18-JAN-82 16:15:06 HICRO:.?. 1L<02) Cross Reference Listins - Hacro Na•es 862 t 863 t 864 t 865 t 866 t 867 t 868 t 869 t 870 t 871 t an t 873 t 874 t 875 t 876 t 877 t 878 t 879 t 880 t 8B1 t 882 t 883 t B84 t 895 t 886 t 887 t BBB t 089 t 890 t 891 t 892 t 893 t 894 t B95 t 896 897 t 898 t 899 t 900 t 901 t 902 t 903 t 904 905 906 t 907 908 t 909 t 910 911 t 912 t 913 t 914 t 915 t 916 • •• • • • Page B-16 f•ase 48 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 f NEWSAM.MCR 18-JAN-82 16:15:06 MICR02 1L<02) Cross Reference Listiris - Macro Names D-NOT.MASK D_NOT.O l)_NOT.R[l D•. PACK • FP [l_PACK.Ff'.LEFT ILPC l)_f•C.LEFT IUl LUl <FRAC > IUHD D-O+K[l D-C.HLB l)_Q+PC I:Ul-D 1).• 0-[1-l D.. 0-l<l:l [l_Q-. f([J-1 LLO-PCSV D-0. OXTC l [l_Q.AND.K[] J:t_Q,AND.LC D-D.AND.HASK 1:1_0. ANI1 •RC:[ l l)_Q,ANDNOT.D l)_Q,ANDNOT.K[J D.• O• ANDNOT •MASK l)_Q.ANDNOT.PSWC D.• D. ANDNOT • PSWN [l_Q.ANDNOT.PSWZ l)_Q,LEFT D-D.OR.K[l n..a. OR. PSWC D.. Q. OR. RC[ l D-0.0RNOT.HASK l)_Q.RIGHT l)_Q,RIGHT2 D.. O.SXTrl n_a.xoR.RCrJ 917 t 918 t 919 t 920 t 921 t 922 t 923 924 925 926 t 927 928 929 t 930 931 932 933 934 935 t [l_(l[][I 95~; I:Ul(ll((l l)_Q[JMASK D-R<PRN+l> I:r-R<SC> D-R<SP1+1 > D-RC<SC> n_RC[J LLRLOG D-RLOG •RIGHT l)_R[J l)_R[ l <FRAC > l)_R[J.AND.K[J l)_R[J.OR.K[J D-R[J.ORNOT.K[J E:.FORK EALU.N? •• • •• •• •• • 937 938 • 939 • 940 • 941 942 943 944 • 945 • 946 • 947 • 948 • 949 • 950 951 • 952 • 953 • 954 • 956 957 • • 9~~6 t t t t t t t 958 t 959 t 960 t 961 t 962 963 964 965 966 t 967 960 969 1562 1664 t •• •• 1767 ••• • Page B-17 F'ase 49 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAM.MCR EAL.U.Z'l' EALIJ'l' EALU-D<EXP> EALU._FE EALIJ ..I([ :J FAL.U ...IU J <EXF' > EALU ... SC EALU ... SC+FE EAl..U ... SC+IH J EAL..U . . sr.;.. FE EALIJ .. SC·.. I(( J EALU-SC.ANDNOT+Kf J EALU-STATE END. DF'1 'i' EXCEPT.ACK FE&SC_K[J FE_OCA> fT ... D <EXP> FE._EALU FT_Kr J FL.LA< f.XF' > FE...NABS<SC-FE> FE_NABS<SC-LACEXP)) FE_QCEXF'> FE...R[JCEXP> FE .. SC r:L.SC+1 FLSCffE FE_SC+KCJ FE .. SC+LA <EXP) FE_SC·-·FF f:E_SC-t<r J FLSC·-l..A <EXP) FE._SC-SHF.VAL FL.SC. ANDNOT. FE FE_SC.ANflNOT.K[J FLSC.OR.KCJ Ff._SHF. VAL FL.STATE FLUSH. IB FPD? fl.FORK JB.TESH IDCSC> .... fl J:D[J_D :rn_.ll &NO. SYNC :CD_D.BYNC J:NH IB IT • IF.I INT? INTERRUPT. REQ'i' INTRPT.ACK INTRPT.BTROBE :rno. c31? IRO? IR1? >7 MICR02 1L(02) 18-JAN-82 l6:1s:o6 Cross Reference Listins - Macro Names 1665 I 1666 I 971 I 972 I 973 I 974 t 975 t 9"76 I 977 I 978 I 979 I 980 I ?91 t 1667 t 1563 I 903 t 904 t 98~) t 986 I 987 t 908 I 989 :t 990 t 991 t 992 I 993 t 994 I 995 I 99(, t 997 I 998 t 999 I 1000 t 1001 t 1002 I 1003 I 1004 t 1005 t 1006 t 1565 I 1b69 I 1567 t 1671 t 1008 t 1009 t 1010 I 1011 I 1569 t 1.!>72 t 1673 I l.570 t 1571 t 1674 I 1675 t 1676 I 1784 l.776 1837 Page B-18 F'.ase. 50 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 P NEWSAM.MCR MICRD2 1LC02> Cross Reference IR2-1 r~ IRD IRI•.11 J:R[IO :cRD1 KCJ l.• AB-R (DST> l.• AB_R <F'RN > LA£CR ( F'RN+1 > l.• AB-R<SC> l.• Ail_R <SF' 1 > L..AB-R<SPH1 > l...AILR1 &RC[ J .... O LAB.R1&RC[J_O+LC+1 l.• AicR1 &RC[ J ... 0 .... D LAB-R1&RC[J...ALU LAB-R1&RC[J_ALU.RIGHT2 LAB-R1&RCCJ_D+LC LAB-R1&RC[J_D.OXTCl+KCJ LAB_R1&RC[J_U-KCJ LAB_R[J LAST.REF'!' LA-R<DST>&LB-RCSRC> LA-R<SP2>&LB-R<SP1> LA.-RAC J LC._RC <SC> LC .. RCr:J LC_RCCJ&R1-<LA+LB>.LEFT LC_RCCJ&R1-<LA+LB+PSL.CJ.LEFT LC_RCCJ&R1-<LA+LB.RLOG>.LEFT L.C_RCCJ&R1-<LA-LB>.LEFT LC_RCCJ&R1-<LA-LB.RLOG>.LEFT 1...c_,Rci: J &RL . Al..IJ L..C ... RCI: J &RLD LC_RCCJ&R1-LA+KCJ L..C_RCl:J&R1-LA-K[J l...C._RCt: J &R1 ... LB l... C-.RCC :J &RLQ l..OAD.ACC:.CC: LOAD. HI LOAD. IB .11 1...0NG MEMORY.NOP MODE.L.SS.ASTLVL.'!' MUL.OXT MIJL.1XT MUL '!' HULM.DONE MIJLP.DONE N&LALU N&LALU.V&C_O NEST.ERR'!' N-AMX • Z.. TST PC&VA-AL.U PC&VA_II 1677 t 1572 t 1573 t 1::'i74 t 1575 t 1013 t 1015 t 1016 t 1017 t 1.018 t 1019 1020 t 1021 t 1022 t 1023 t 1.024 t 1025 t 1026 t :l.027 1.028 102C.i> t 1b79 t 1031 t 1032 t 10;33 t 1034 1035 t 1036 :f: 1037 t 1.B-JAN-82 Listin~ 16:15:06 - Macro Names • 1'771 •• 1800 • 1783 10~58 t 10;39 t 1040 t 1041. t 1042 t 1.04;3 t 1044 t 1045 :I: 104b 1~"i77 t 1578 :J 1579 t 1:':'i80 t 1!'.'i02 t 1681 t 1583 t 1~.)04 t 1b82 t 1585 t 1586 t 1040 t 1049 t 1684 t 1050 t 1052 t 1053 .. • 1788 1007 1831. Page B-19 r·a'.'J•" SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAH.HCR PC&VA_D+t<r l PC&VA.-D-K[ l PC&VA_D-··PC PC&VA._II • OXH J PC&VA_D.OXTrJ+PC PC&VA_[1 • SXH HPC PC&VA._t;:[ l PC&VA.-PC PC&VA._Q PC&VA._(HPC PC&VA_Q-·[I PC&VA._Q-K[ J PC&VA_Q.SXT[JtPC PC&VA_RC[J PC&VA_R[J.ANDNOT.K[J PC.HODES'!' PC_PC+t PC .. PC+2 PC_PC+4 PC_F·CtN PC_.CHPC PC_VA PC_VIflA POLY.DONE PSL..C'l' PSL .cc~~ PSL.HODE'!' PSL..N'1' PSL.V'l' PSL.Z'l' PSL<C>-AHXO PTE. VAL ID'l' ll&VA_.ALU Cl&VA_.D U&VA_DH .. C D&VA_LA Cl&VA_LH-L.B. PC 031'!' UD-<D+LB>D.RIGHT2 UD-<G+LC>D.RIGHT2 UD-<G-LB>D.RIGHT2 QD_CQ-LC>D.RIGHT2 un .... QD. F~IGHT2 OUAD!' LAHD , RIGHT C:L <CHL.B>, RIGHT (1_ < (]_0 CLOH.Ct1 CLO+MASl\+1 n .. o+r:·c. RLOG CL.O·-D CLO-Kt:J U.-0-l..C >7 HICR02 1L<02> 18-JAN-·82 16:tS:06 Cross Reference Listin!I -· Macro Names • •• 1054 1055 I 1056 I 1057 1058 1059 t 1060 I 1061 t 1062 t 1063 I 1064 t 1065 t 1066 1067 t 1068 I 1686 t 1070 t 1071 t 1072 t 1073 t 1074 t 1075 t 1076 I 1588 1687 1688 1689 t 1690 1691 1692 1077 1693 1079 1080 t 1081 t 1082 t 1083 1695 t 1085 t 1086 t 1087 t 1088 t 1089 t 1696 t 1091 t 1092 t 1093 t 1094 t 1095 t 1096 t 1097 t 1098 t 1099 t • 1789 •• • •• • •• • • ·• (]_0-C~ 1100 (]_ACCEL&SYNC 1101 t 1775 1836 1832 Page B-20 Pase. 52 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 Page B-21 18-JAN-82 16:15:06 MICR02 1L< 02) Cross Reference Listin~ - Macro Names 53 ; NEWSAM.MCR CL.1'\LU CLAUJ <FRAC: > (LALLI. LEFT CL.AL.ti. LEFT2 !LALLI. L..f.FT3 Cl-ALU. RIGHT C:LALU.FUGHT2 fL.D ILD<FIMC> <B> IL.D+Kr:J U •• D+l\LH1 CLI:i+K E J •LEFT CL.D+LC CLD·-K[ J CLD··LC !LD··-C~ CL.D.OXHJ Q_D.OXT[JtK[J.LEFT Q_D.OXT[J.OR.PACK.FP CLO. AND • Kr J Q_D.AND.K[J.RIGHT Q_D.AND.KCJ.RIGHT2 CLD. AND. r.:cr J C:LO.ANBNOT.RC[J !Lll.LEFT3 ILD.m;:.KCJ c:Ln. m~. r.:cr: ::i CLD.RIGHT CL.[l.R:rGHT2 CLD.SXTCJ CLD.XOR.Q ILDEC.CON !LIB• B[IEST CLJB,DATA ILILHBC> ILHI[ J !LK[J ILK[Hl Q .•. K[ J .CTX CLK[ J .RIGHT ILK( J .r.:IGHT2 CL.LA ILLAH([J CLLA+a CLLA-l<CJ CLLA.AND.KC:J Q_LA.ANDNOT.RCC:J !LLB ILLC ILNIJT.Q ILNOT .R[J CLPACK.Ff' ILPC CL!l<FRAC> CL.CH F'RAC ><II> 1102 t 1.103 :J 1104 t 110~i 1106 1107 1108 1.109 1110 1111. u.1:,~ :I: •t t :I: t :IJ: t 1113 :t 1114 :JI: 11.15 t 1116 t 1117 i 1118 :g. 1119 t 1120 t 1121 :J 1122 t 112:5 1124 :I 1125 t 1126 t 1127 :I :1.128 :I 1129 :J 1130 t u.:u :I 11.32 :I 1133 t 1134 t 11. ~~~.) :J 1136 t 1137 t 1138 t 1139 1140 t 1141 :I 1142 :I 1143 l.144 t 1145 t 1146 :I U.47 t 1148 t 1149 11!'.'iO :I 1151 :I 1152 :I • • • • 115:~ • • 1154 t j, 15~'i :I 1156 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAH.HCR Q_O+D Q_Q+KCJ Q_O+KCJ+1 (LQ+LC Q_Q+PC Q_Q-D Q_Q-D-1 (LQ-KCJ CLO-KCJ-1 lLO-LC lLll-LC-1 Q_Q-HASK-1 CLQ. OXTC J-KC J (LQ. OXTC J • LEFT l'LQ. OXTCJ •OR• D t:Lll. AND• Kr J Q_Q.AND.KCJ.RIGHT Q_ll.AND.K[J.RIGHT2 [LQ.AND.RCCJ (]_Q.AND.RCJ (LQ • ANDNOT. D C~-Q. ANDNOT. K [ J (LQ.ANDNOT .RCCJ !Lil.LEFT lLO.LEFT2 (,LQ,QR.KCJ l:~-Q • ORNOT • HASK LLD.RIGHT lLO.RIGHT2 (LO.SXTCJ [LO.XOR.KCJ Q_R<PRN>.ANDNOT.O (LR<PRN+1 > ll-R<PRN+1>.AND.O ILR<SC> Q_R<SRC!l>.AND.KCJ lLRC<SC> (~_RCCJ (LRCC J ( FRAC > (l_R[J (LRCJ<FRAC> (LRCJ.AND.KCJ Q_RCJ.AND.KCJ.RIGHT ILRCJ .ANDNOT .KCJ ILRCJ.OR.KCJ (LSC (]_SHF FHDST>-ALU FHDST>_D R<DST>-D.SXTCJ.RIGHT RCPRN>-O+D.RLOG FHPRN>-ALU FHPRN>-D R<PRN>-D+KCJ.RLOG R<PRN>-D-KCJ.RLOG lL< 02) HICR02 18-JAN-82 16:15:06 Cross Reference Listins - Hacro Names 1157 I 1158 1159 1160 1161 I 1162 I 1163 I 1164 I 1165 I 1166 1167 1168 I 1169 I 1170 1171 I 1172 1174 I 1173 1176 1175 I 1177 1178 1179 1180 I 1181 I 1182 I 1183 1184 I 1185 1186 I 1187 I 1188 1189 I 1190 1191 I 1192 I 1193 1194 I 1195 I 1196 1197 I 1198 I 1199 1200 I 1201 1202 I 1203 I 1205 I 1206 1207 I 1209 I 1210 1211 1212 1213 I •• • •• • • •• •• • • • • • • • • • • ••• 1820 1825 1781 1763 Page B-22 Pase 54 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAM.MCR R<f'RN>-D.OR.O R< f'RN) _.[I[ JO R<PRN>-K[:I R<PRN>-LAtK[J.RLOG 1:~ <f'RN >.... L.A+O RCPRN>-L.A-K[J.RLOO R<PRN>-LAC:JMABK 1:~CPRN> .... L.G R ( F'r~N) •• f'AC:K •Ff' R<f'RN>.-0 R<PRN>-OtK[J.RL.OG R<PRN>-O-KC:J.RLOG 1:HF RN+1 >-ALI.I RCPRN+1 )_D R <PRN+1) _[1. OR. D R <PRN+1 >._I\[ J R<PRNH>-L.A 1:~ <PRN+ 1 >.... LC 0 RCPl~Ntl>_Q H <SC> ._AL.U R<SC)._[1 1=~csc> •• Kc:J R<SC>.-LA R<SC>._LA+D R (SC) ,_L..A-·[I RCSC>_LC R me >... a 1:~<SP1 ) ... ALU 1:~<SP1 )_[I 1=HSF'1>.-K[J R<SP1>-PACK.FF' 1:~ <SP1 ) ... a R<SP1+1 >-LC i!~CSP1t1 )._a RCSRC ! 1 >.-ALU FHSRC ! 1 )_[l(B) 1:~ <SRC >_AL.ti 1:~ ( SRC) _[I R <SRC >.• D <B > RCSRC>-DtKC:J.RLOG R<SRC>-D-KC:J.RLOG 1:~ <SRC >-L.C 1:~ <BRC: >-0 R6 ... D+K [ J. RLOG R6_LA+KC:J.RLOG RcLL.A-K [ J • RLOG F~C (SC> ..• 0-LC RC< SC: ) ... ALU RCCSC>-AL.U.RIGHT RC (SC) ... [1 RCCSC> •• O RCC:J&VA_[ltQ RCCLO 1:~CC:LO+Kr Jt1 RC[ LO+L.C+1 >7 19-JAN-82 16:15:06 MICR02 1L<02) Cross Reference Listins - Macro Names 1214 t 1:..~15 t :J.216 t 121.7 t 1::.~18 t 1219 t 1220 t 1:n1 t 1222 t 1223 t 1224 t 1225 t 1226 t 1227 t 1228 t 1229 t 1230 t 1231 t 1232 t 1234 t 1235 t 1236 t 1237 t 1238 t 1239 t 1240 t 1241 t 1243 t 1244 t 124:"j t 1246 t 1247 t :L248 t 1249 t 1251 t 1252 t 125:~ 1254 1255 1256 1257 1258 12:;;9 1261 1262 t t t t t t t t t t 1265 t 1266 t 1267 t 1268 t 126 1i' t 1:a1 t 1272 t 1273 t 1274 t 1~!6:3 Page B-23 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAM.MCR RCC: LO+MASKt1 RCC:J_O+MASK+l.RIGHT2 1:~cc:L.o-r1 r:~C[LALU RC[LALU.LEFT RCC: LAL..U, LEFT2 RCC: J...Al..U • LEFT3 RCC: J .... ALU, RrnHT RC[ J .....~l..U. RIGHT2 f~CC:J .... D RCC: J....D <f.I) RCC: L.IH·KC: J m:c: J ... D··KC:J 1:~cr:L.D.OXHJ RCC: J...D ,ANI1 .KC: J f~C C: :J ._D. AND, MASK RCC::LD.ANDNOT,Q RCC::LD.CTX RCC:J .• D.LEFT f~CC: LD. LEFT3 1:~c1: J .... [1, OR. KC: J f~CC: J .. D. OR. a RCC:J_D.ORNOT.KC:J i:<cc: L.r1. sxrc: J RCC:LKC:J 1:<CC:LKC:Hl F<CC: LKC: J. LEFT2 RC[ LKC: :J, LEFT3 l~CC:J ... KC:J.RIGHT2 RCC:LLA m:c: LLA+L.Et, C:TX HCC:LLA··KC::J 1:~cc: LLA. AND. KC: J RCC:LLA.CTX RCC:J....l.B RCC:LLB.LEFT RCC:Ll..C RCC:LNOT .a RC C: LPACK •FF' RCC:LF'C RCC:LD f~CC:J...IHl RCC:L.CHK(] RCC:J_Q+LC RCC: J .. a+F'C: RCC: J .. a+PC:+l RCC: LD···KC:J f~CC: J .. Q···-L.C HCC: L.0-.. MASl\···1 1:~cc: J ..• n. oxrc: J RC LLD, AND, KC: :J RCC:J_Q.ANDNOT.KC:J RCC:LD.LEFT RCC:J...O.LEFT3 r~C[ :Ln. RIGHT >7 10-JAN-02 16:1s:o6 MICR02 1L<02) Cross Referer1ce Listins - Macro Names 1275 t 1276 t 1277 t 1278 t 1279 t 1280 t 1281 t 1282 t 1283 t 1284 t 1285 t 1286 t 1287 t 1288 t 1289 t 1290 t 1291 t 1292 t 1293 t 1294 t 1295 t 1296 t 1297 t 1298 t 1299 t 1300 t 1301 t 1302 t 1303 t 1304 t 1305 t 1306 t 1307 t 1:308 t 1309 t 1310 t 1311 t 1312 t 1313 1314 t 1315 t 1316 t 1317 t 1318 t 1319 t U20 t 1321 t 1322 t 1 ~~2:i t l:i24 t 1325 t 1326 t • 1~~27 t 1328 t 13:~9 t Page B-24 Pase 56 SAMPLE MICROPROGRAM FOR SYSTEM REVISION 9 NEWSAM.MGR MICR02 1L<02) 18-JAN-82 > 7 16:15:06 Cross Reference Listin~ - Macro Nillmes RCCLO.RHiHT2 RCCLll.SXHJ RC[ LJ;:LOG •RIGHT 1=~ETURNO RETURNl RETURN10 F~ETURN100 RETURN10C RETURNlOE RETURN12 F~ETURN18 F~ETURNlF F~ETURN2 m::TURN20 1=~ETURN24 F~ETURN3 1=~ETURN4 RETURN40 RETURN60 1:~ETURN6l 1:~ETURN8 RETIJRN9 RETURNF HETURN[J RL.OG.EMPTY'!' 1=~0R'r RCJ&VA-LA+KCJ R[ J &VA •• L.A-·KC: J RCJ&VA-LA-KCJ.RLOG RC :J &VA ... 1.1·-K[ J 1:~c LO R[J_O+L.B+l RCL0-1 r:~rLO·-D R[LO-KCJ RC LO-LB 1:~rJ •. O-l1 1=~[LALU R[:J_ALU.Lf.FT RC LALU. LEFT3 f~[LALU.RIGHT 1:~c LALLI. RIGHT2 RCL[t R[J_D+KCJ RC LD+l.1 R[J_D+cH1 1:~[LD-K[J RC:J_D--LC-1 R[L[t-1.1 f~[LD.AND.KCJ R[LD.OR.LC R[J_D.OR.PACK.FP 1=~[J_D.OR.D R[LK[J RCLLA 1~~30 t 1331 t 13;52 t 1590 t 1591 :1.592 1:::;93 1594 1595 1596 1597 1598 1599 :1.600 1601 1602 1603 1604 1605 l.606 1607 1608 1609 1610 1698 1699 t 1334 133:::; t 1~'i36 •• ••• •• •• ••• •• •• ••• •• • •• ••• • •• • • • ••• •• •• t 13;57 1338 1339 t 1340 1:~4:L 1~H2 1343 1344 t 1345 1~'i46 1;54? 1348 1349 1350 13::'i1 13!52 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 t t t t t t 1821 1826 Page B-25 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAM.MCR !ULLAH• RCLL.A+rlf1 l~[LLA+K[J RCLL.A+K[J+1 RC LLA+KC J. RL.OG RCLL.A+LC 1=~[ LLA+MASK+1 HCLLA+O RlLLA·-[1 R[LLA-K[J 1=~[ LLA-·K[ J. RLOG RC LL.A-.. MASK-1 IULL.A-0 nc LL.A .AND .I\[ J RCJ ... L.A.OR.[I R[J_L.A.ORNOT.MASK m:LLB RLLLC H[LLC.RIGHT 1=~[ J ._NCIT. 0 HCLNOT.D F~[ LNOT. MASK f~( LNOT. a IU J ... PACK. FP RCLO RCLIH1 RCLCH5 RCLCHKCJ mLO+LB RCLOH.. C R[LC~·-[I RCLll·-·D-1 R[Lll-KCJ RC LO·-K[ :J. RLOG F~CLO·-U: F~C LO• AND. K[ J RCJ_O.ANDNOT.K(J RCLO.OR.[I f~CLO.ORNlH .KCJ R[LQ,RIGHT.1 RCJ_RL.OG.RIGHT.1 SC&STATE_STATE-RCJ<EXP> nc.GT.O'l' SC.NE.O'l' sc·~ BC-.O<A> sc_o--Kc J !:;C .... ALU rn: .. AL.ll <EXf' > rn:_n sc ... D (EXP) SC .... D <EXf') (A> GC ... D<EXf'> <IO nc ... D-·KC :1 SC...D.OXH:J-KlJ 18-JAN-82 16:15:0b MICR02 1L<02) Cross Reference L.istinsl - Macro Names 1363 t l.364 t 1365 t 1366 t 1367 t 1368 t 1369 t 1370 t 1371 t 1372 t 1373 t 1374 t 1375 t 1376 t 1377 t 1378 t 1379 t 1380 t 1381 t 1382 t 1383 t 1384 t 1~~85 t 1386 t 1387 t 1388 t 1389 t 1390 t 1 ~591 t 1392 t 1.393 t 1394 t 1395 t 1.396 t l.397 t 1398 t 1399 t 1400 t 1401 t 1402 t 1403 t 1405 t 1701 t 1702 t 1'703 t 1406 t 1407 t 1408 t 1409 t 1410 t 1411 t 1412 t 1413 t 1414 t 1415 t 1830 Page B-26 Pase 58 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAM.MGR sc_D.OXTCJ.XOR.K[J !:iC-.I• •AND• K [] !:iC_D •OR• KC: J !:iC_D. SXH J BC_.EALU BCJE !;iC_KCJ !:iLKC: J. ALU !:iCLA BC-LA.AND.KLl !:iC_LC <EXF' > BC •• NABS< SC-FE> !:iC.-F'SL.ADDR i:;c_o !:iC_fHEXP> !:iC_fl <EXP>< 9 > i:;c_o+KrJ BC-.Q·-K[ J !:ic_o. AND. K[] i:;c_o.oR.KrJ !;;C_O.SXHJ !:iC_.RC[ J !:iC_RC[ J <EXP> BC_.RC: J !:iC_.RC: J <EXP> GC •• RC: J. AND. KC: J f:iC_SC+l i:;c_sc+EXF' <a>< A> !:iC_.SCffE i;;c_.sc+K r. J GC_SC+SHF.VAL !:iC .•. SC-FE !:iC_.SC···K[ :J sc_.sc-SHF. VAL sc_BC.ANDNOT.FE GC_SC.ANDNOT.K[J 1:;c_.sc. OR. Kr J !:iC .•. SHF. VAL !:iC_STATE sc_STATE.ANDNOT.K[J sc_.STATE. OR. KC: :r !:iil_.NQT •SD !:iET. CC< BYTE> BET.CC:< INST> !:iET. CG (LONG> SET.CC<RCJR> GET.CC<WORD> !:iET.FPD !:iET •NEST. ERR !:iET.F'SL.C<AMX> !:iET .V BIGNS? !:iF'EC !:iPECO MICRO::~ 1L<02) 18-JAN-82 >7 16%15:06 Cre1ss Reference Listins - Macro Names 1416 1417 1418 l.419 l.420 1421 1422 1423 1424 t t t t t t t t t 14:~5 t 1426 t 1427 t 1428 t 1429 t 1430 t 14~5:1. t 1432 t 1433 t 1434 t 1435 t 1436 t 1437 t 1438 t 1439 t 1440 t 1441 t 1442 t 1443 t 1444 t 1445 t 1446 t 1447 t 1448 t 1449 t 1450 t 14~51 t 1452 t 1453 t 1454 t 1455 t :L4~:i6 t 1457 t 1458 t 1612 t 1613 t 1614 t 161!'.'i t 1616 t 1617 t 1618 t 1619 t 1620 t 1704 t 1621 t 1622 t Page B-27 Pase 59 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 ; NEWSAM.MGR BRC.F'C'i' SS? ss_.O&SD .. 0 ss_ALU15 ss_sr• ss_ss.xoR.ALU15&SD-ALU15 !HART.IB STATEC7>'i' STATEO'i' STATEl-O'i' fffATEl 'i' STATE2'i' BTATE3-·0'i' STATE3'i' STATE4'i' !HATES'!' !HATE6'i' STATE7--4'i' STATLO<A> STATLAMX.EXF' !HATLDCEXP> !HATE ... FE fffATLFIRST STATE...INNEROBJ !HATLINNERSRC STATLKCJ STATLOUTER !HATLF'REDEC STATE_CH EXF' > STATE_sc.VIA.KMX !H ATL SK PL ONG !HATLSTATE+l !HATLSTATE+FE fffATLSTATE+KCJ STATLSTATE-FE STATLSTATE··-K[ J STAJE_STATE.AN.5TOO STATE_STATE.AN.6T04 STATE_SJATE.AN.DESTDBL STATE_STATE.AN.NOTPREDEC STATE_STATE.AN.PREDECZERO STATE_STATE.AN.SKF~ONG STATE_STATE.ANDNOT.FE STATE-STATE.ANDNOT.K[J STATE_STATE.ANDNOT.SHF.VAL STATE_STATE.OR.ADJINP STATE_STATE.OR.DEST STATE-STATE.OR.DESTDBL STATE_STATE.OR.F~ STATE_STATE.OR.FILL STATE-STATE.OR.FLOAT STATE_STATE.OR.KCJ STATE-STATE.OR.MOVE STATE-STATE.OR.PATTI STATE_STATE.OR.PATT2 MICR02 1L<02) 18-JAN-82 16:15:06 Cross Reference Listin~ - Macro Names 1705 t 1706 t 1459 t 1460 t 1461 t 1462 t 1623 t 1707 t 1708 t 1709 t 1710 t 1711 t 1712 t 1713 t 1714 t 1715 t 1716 t 1717 t 1463 t 1464 t 1465 t 1466 t 1467 t 1468 t 1469 t 1470 t 1471 t 1472 t 1473 t 1474 t 1475 t 1476 t 1477 t 1478 t 1479 t 1480 1482 t 1483 t 1484 t 1485 t 1486 t 1481 t 1487 1488 t 1489 t 1492 t 1493 t 1494 t 1490 t 1495 t 1496 t 1491 t 1497 t 1498 t 1499 t • • 1777 1838 1764 1815 Page B-28 Pase 60 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; NEWSAM.MCR !HOP.IB SWAPD TB. TEST'l' TEST.TB.RCHK TEST.TB.WCHK TRAP.ACC[J VA31·-30? VAJ:l? VA_ ALU VA_D VA .. D+KrJ VA-D+LC VA ... D+O VA_D.OXHHll VA_D.ANDNOT.KC:J VA ... K[J VILLA VA-LA+D VA-LA+KC:J VA ... LA+K[H1 W1_.LA+PC VA_LA+O VA_LA·-D VA-LA-KC:J VA_LA·-KC:J-1 VA_LA-ll VA-LA.AND.LC VA-LA.ANDNOT.KC:J VA_.LB+D • OXT VA_PC VA_Q VA ... CHD VA ... lHKC:J VA_IHLB VA-.O+LB •PC VA_Q+LC VA ... O+PC VA_D-KC:J VA._U-LB VA ... Q. ANDNOT •KC: J VA_RC[J VA_R[:J VA .... VA+4 WORD WRITE.DEST WRITE. G. DEST Z? ZONED? >7 1L<02) 18-JAN-82 16: 15:06 Macro Names Cross Reference Listins MICRm~ 16:.~4 - + 1500 t 1719 + 1626 t 1627 t 1628 t 1721 + 1722 + 1502 + 1503 t 1504 + 1505 t 1506 t 1507 + 1508 t 1509 t 1510 t 1511 t 1512 t :1.51:5 t 1514 t 1515 t 1516 t 1517 + 1518 f. 1519 + 1520 t 1521 t 10::-".)r) ..... t 1523 t 1524 t 1 ""''l"" \,J,(.,,J t 1526 t 1527 t 152B t 1529 t 1530 t 15:51 t 1782 ~1.· 1~i32 t 1533 t 1534 t 1535 t 1536 t 16:~0 t 1631 t 1632 t 1724 t 1725 t 1809 Page B-29 F'a!le 61 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 NEWSAM.MCR 11ICR02 1L<02> 18-JAN-82 16:15:06. Cross Reference Listins - ExPression Names Page B-30 Pase 62 SAMPLE MICROPROGRAM FOR SYSTEM REVISION 0/8 LI 0000 - lBFF Unused 1784= 1771 u :LCOB I.I 1COO Page B-31 18-·JAN-82 16:15:06 MICR02 1LC02> Location I Line Number Inde:-c 9 NEWSAM.MCR 'L1>cation > 7 Pase 1/9 2/A 3/B 4/C 5/[I 6/E 7/F 1790= 1777 1812= 1822= 1816= 1827= 1764 1809 1767 1838 1796= 1799= 1833= 6~~ SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 NEWSAH.HCR VAX DEF BS ER CH Used Hemainins HICR02 1L<02> U-code Microword BSERCH 1C00-1FFF Words not in bo•Jnds 0 0 0 15 15 1009 0 Total ~icrowords used in memor~ u: 15 Total microwords remaininsl in memor~ u: 1009 Hislhest address used in memor~ u: lCOF <hex> 10-JAN-02 Summar~ 16:15:06 Page B-32 F'a51e 64 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 I NEWSAM.MCR F'ass 1 warninss: Pass 1 errors: MICR02 1LC02> Error S•Jn1mar1:1 0 0 Pass 2 warninss: Pass 2 errors: 10-JAN-02 0 0 16:1s:o6 Page B-33 Pase 65 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 B.3 THE OBJECT FILE (.ULD) ;RTOL ;RADIX 16 [1C041m0000003C19COFA1014047C05 C1C05J=0800003C0180FA0000001C08 [1C08J=0001003C0180FB0800001C09 [1C09Jr005C171401COFU0040001COO [1COOJ=00192E2400COF90802001C06 [1C01J=G01800381980F80440500062 C1C06J=001C00200180421000101COC C1C07J=OOOOOOJC0180F800000004F8 C1COCJ=0011010001BOF88800101C02 [1C02J=00001B3C01BOFB0000001COA [JCOJJ•00001B3C0580F80014047COA C1COA1=0019201411COFA8800001COD C1COBJ•0019200011COFA9000001C09 C1COFJ•G001203C0180FA8C40500062 [1CODJ~oo4D371401COF80040001COO FIELD ACF=<71!70) CONTROL=3 NOP:O SYNC=1 fRAP~2 FlLLD ACM=<57!55> ADORT=1 P1LY.DONE=6 PWR.UP=O FIELD ADS•<47!47> IBA=1 VA~O FIELD ALU=<69!66> A=OF AtB=5 A+B+1=4 A+B+PSL.c~oa A+B.RL00=6 A-B=O A-8-1=2 ~-·B.RLD0=1 AND= OD ANDNOT•9 B=OE INSf.DEP=3 NOTA~OA OR=OC m~NOT=J XOk~8 FIELD AMX=<Sl:BO> LA=O RAMX=1 QAMX.OXT~J RAMX.SXT=2 •FIELD BEN~<76!72> ACCEL=6 ALU=1B ALU1-0=15 Page B-34 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 c:~1 ,<~ t:i. E<Y TES::: 1. 8 1:13···0::::19 D1:HA. TYF'E""'EI DEC.CMAL..::::OF EALLJ:,,1:;! END.Df't::::U IB.()::::5 IH. TE!:iT::::OB IN J'ERRUF'T=OE IR2 .... 1""'9 IRC. ROM==::4 l..~'IBT. l~EF:::: 11 Ml.Jf...::=·OC NDF'::::O Pt:.MODEf:l::::9 F'Sl... CC:::::lA F'SL. MDDE:::l C l~ET:,,()A F:OR·<! <:.:c=::14 !::.r.GN!3:"'0[1 ::;F:C. Pl'.>=OA fll1"TE:3·· .. 0::::17 ~:;TATE7···4:: 16 Tf.I. TEST·::: HI 1.>:1 FIFLD BMX=<84:82> l\M)(::::6 f...B:::;3 l... C::::4 MASK::::() PACI\ ED. Ff...::::::.! PC::::~) PC. OR. f..fl::::t RHMX::::7 FJFLD CCK~<22:20> C.... AMX0,,:6 INBT • DEF'::::'7 l...OAD. l.IBCC=::: 1. NOP:::.•:> NZ.. .. AI U. IJC ... 0:::5 Nl. ... Al...1.1, VC.-VC>=6 N ... 1~MX. z... TST. VC .... VC:::3 l~Df~::::4 !:>FT.V::<.! rrELD CID=<45:42> ACI\·::::;;; CON'f::::J NOf':::·l F~EA[I .1\MX::::()fl hEAD. BC::::c;> WR I TE, KM:<::::OF 14fU TE. !:lC::::OD FIELD DK=<91:8B> ACCEL.=::OA f.tYTE • BWAP::::Of! Cl...f~::::OF DAI.... SC::::()J) DAI.... BV::::OE DIV::::4 L..EFT::::~5 LEFT2:::: 1 Page B-35 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 NOF'=O C~==OC RIGHT=6 RCGHT2=2 Sl-IF=S SHF.FL=9 FIELD DT=<79:7S> BYTE==2 INBT. DEP::.•3 LONG=O iJORD=l FIELD EALU=<1S:13> A=O A+1=6 Affl:,,,4 A-f.C:::S ANDNOT=2 fl:::O:S NAI.1S. A·-B=7 OR""l FIELD EBMX=<19:1S> AHX .E:XF'=2 FE=O l<MX=1 SHF.VAL=3 FIELD FEK=<24:24> LOAD=1 NOf'=O FIELD FS=<42:42> CID==1 MCT'-"O FIELD IBC=<95:92> BDEST=7 Ct..R.O::::OC CL.R.0-3=0E cu~.o.1=4 CLR. t:::iOD C:LR. 1 ·-·5. CCIND=OF CL.R.2.3==5 FLUSH=2 NCIF'=O START=3 STOF°"'l FIEl..fl ID.ADDR=<63:5B> ACC:.0=14 AC:C.1=15 ACC. 2::::16 ACC.CS:::17 CEf:i::OC fLI'~ .cs=OA COMf'=lC D.SV=2E DAY. 'TIME=l ESF'=29 FAULT==lB FPDA:= 2D IBllf'=:::O INTERVAL=OB ISF'=2C KSP=28 11AINT=1D NXT.F'ER=9 f'OFIR=24 0 Page B-36 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 POU~::::;:~c F' LHf~::::25 P:LLR::.3[1 PARITY=lE F'CBB::::~~A PBL..:::OF o.ev::::2F 1:;:xcn'"'4 f;:XIJF.f:·,5 SP.I .ERR::::19 BEtf~::::26 SCBf.1::<3B ::; I 1... 0'" l El ~~l'R::::OE SI. t~·<~E S'.:;p:.. ;:;:A SY'f:i •.fD=3 T().:::30 T1::::;31 r:.;~~<~2 T:~::::;3:3 T4,,<34 T·~> <~6 T"/-::.;37 ·rn.:·~m 'f")::.;~9 I BER0::.,12 f.BER1"·'1~~ TBUF::•10 TlME.Al:IDR::"tA 'fXGS::::6 fXD£1.::J UHf;:EAK:::::.;~1 um:·"'· ~.rn l.JSTACl\:=20 VFCTCJR::::()[I WCD. A(l[IR::::2~~ WCS, DATA•:::23 FIELD IEK•<31:JO> EAC:K:<3 IACK:::::,~ CS'JR::::1 NOf":·:O AnDREBS Ja<12:0> Il'JT. B:::4FEI I. fUl=6=.~ SRCH::::1C04 SRCH.1::::1C09 fmCH. ::.~:.:: 1 COO :~f\·GH • 3=:1C06 :·,r;:cH. 4,,. 1coc SRCH. 5=:1C:OA s1:~cH. (..:::: l. C:OD FIELD KMX=<63:5B> • 1 :=:I. • :J.O::::].''I .14::::8 .1B::::1F .1<1=<~E .:f.(\::::39 .1R<'5fl .1E>14 Page B-37 SAMPLE MICROPROGRAM FOR SYSTEM REVISION > 7 .1F=23 .1F00=24 .2=2 .20=1D .24=3A .2B=OB .3==3 • ~50""1E • :30~10==32 .34:::0A .3F=15 ,J.FF:.•20 .4::::4 .40=0C .4000:::2C .50=:0D .6=35 .60"=29 .7=17 .7C=27 .7E:'-"3E • 7F=16 .7FFO=OE ,B::::O .80=10 .0000=11 .88:::31 .9="311 .A:::~n .t10":9 ,1.10=25 .C=21 .C0=34 .[1::::22 .C•FC:F=2B .E:003=26 .EF::::OF .F=lB .F0::::33 .FF=12 .FF00=13 .FFE0=28 • FFEB:=lA .FFFO=lB • t='FF1==2D .FFF5=38 .FFF6=37 .FFFB=lC .FFF9,,,.2F .FFFC:::3C .FFFF=30 SP:L.C:ON=5 SP2.CON=6 ZER0=6 FIELD HCT=<47:42> ALLOW.IB.READ=3E EXTWRITE. p::::2EI IN VA LI UATE=24 LOCKREAD.P==3A LOCKREAD.V.NOCHK=lA LOCKREAD.U.WCHK=lC LOCKWRITE.f'=2E Page B-38 SAMPLE MICROPROGRAM FOR SYSTEM REVISION LOCKWRITE.V.XCHK=OE ME:M.NOP•=2 READ. INT• SlJM•::36 READ.F'=32 REAfl.V.IBCHK=16 F~EAD. V • NEIJF'C=18 READ .1). NOCHK""' 12 READ.V.RCHK::::10 fi'EA[I. V. WCHK= 14 SHI. HCH.. [1::::20 SBI.HOLD+lJNJAM=22 TEST. RC:HK=::O TEBT .1JCHK::::4 V1~LIDATE::::26 WR I TE. p::::2A WRITE.V.NOCHK=OA Wfn n:. v. WCHK::::OC FIELD Msc~<29!26> Oii<. CHM:::: 1. CHK.FLT.OF'R=2 CHI<. ODD. ADDR:<J Cl..J~. FF'fl:-:8 Cl .!'i'. NEST. El~R=OA lNH, CM. AflDR·::OF IfW::·:4 LOA[I. ACC • CC:::::6 LClr.1D. STATE•"'5 NOP:·::O RE()[!, m.OG::r.7 m~: rnY. ND. TRAP=Ofl RETRY.TRAP::::OE BECCIND. REF••OC SET, FPfl::::9 BET, NEf:iT, ERR::•OB FIELD PCK•<34:32> NOP::::O F·'.:;+1::::4 F'C:+2::::~'i F'f..·14::::6 f-°C+N::::7 r:.·c ... I BA•::2 r··C .... VA-=1 Vf1+ . i•::3 FIEL[I OK=<54:51> ACCEf...::::0£1 cr..r.;::"'OF [l::.:OC DEC. CDN""'OA [[1::::QE l...EFT::::~'i L..F.::FT:~::::j. NOF'::r.0 HIGHT'~'6 F~ J CiHT2:::::;~ ~;Hr::::::fl SHF,FL.=9 FlCl...D RAMX=<77:77> r1:::0 Q::-:1 FIELD [l:=:t. RBMX::::<77!77> D::•O FIELD SCK•<23:23> > 7 Page B-39 SAMPLE MICROPROGRAM FOR SYSTEM REVISION LOAD=1 NOP=O FIELD SGN=<50:4B> ADD.SUB=6 CLR.SD+SS=7 LOAD.SS=l NCJF':::O .NOT.SD=3 SD.FROM.SS::::4 SS. FT\OM. SD,,.,2 SS. XCll~. ALU=5 FIELD SHF=<B71B5> Al...LJ::::O AL.U.DT=3 L..EF'f:::l LFFT3=5 RIGHT::::2 FUGHT:'.?:::4 FIELD SI=<57:5S> ASHL.==2 ASHR::::l DJIJ::.::5 Dl'..'(l"·:O Ml1Lf::::6 Ml.JL.--:::7 ZER0:::3 fIELD SMX=<17:16> AL.lJ::::2 ALU.EXP=3 EAl...lJ::::O FF::::l FJELD SP0~<41:35> LOAD+ LC. SC==6 NOf'::::O WRI n:.:. l~C, SC::::7 FIELD SPO.AC~<41:38> LOAD.L.A,,.,2 l...0Afl,l..AB:::1 IJF:ITE .RAB=-3 FIELD SPO.ACN=<37:35> Pl\N·:::~~ PF\N+l.::::4 SC::::5 BP1+1,=6 SPl. Sf'1::::0 SP2, SP 1 ,,,:,i SP2, nP2·:: 1 FIELD SPO.ACN11=<37:35> IIST, DST==1 DST. SRf>:2 flC::=5 SRC.Ol~.1::::4 SRC. SRC::::O FIELD SPO.R=<41:39> LOAD+LAB=4 l..OAD.L.AB1.WRITE.RC=6 L.OAD.LC::.::2 LOAD.LC.WRITE.RAB1=7 IJRITE.RAB==5 WRITE. RC:::3 FIELD SPO.RAB=<3B:35> AF'::OC Ff'=OD >7 Page B-40 SAMPLE MICROPROGRAM FOR SYSTEM REVISION RO::•O Rl:ml R15:::0F R2=2 R:.~::::;:s H4'"'4 i:~5,,,5 F~6::::6 ff/'::::7 SF'::::OE FIELD SPO.RC=<3S:35> LC.SV=S M.BIT. VA=OF PC. f:)V::::OC PTE.MASK::OF PTE.F'A=OB PTE.VA•.::OA SC.SV=OD TO::::O Tl"''l r::!,2 T3•:3 T4::::4 r::;,,,,5 Tt.,::::6 T 7::::7 REF=OE VA.SV::::9 FIELD SUB=<65:64> CALL::•1 t,H~. NOP::::() 1:;:ET,,•2 SPEC::.3 FIELD VAK=<25:25> l.. OAD::•l Nf.Jf-'::::Q ENf! >7 Page B-41 APPENDIX C SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 This appendix contains a sample VAX 11/780 microprogram, which performs an unsigned binary search on a vector of longwords in main memory. The parameters of the routine, the value to be searched for and the beginning and end of the vector, are passed in registers. A command file that assembles, loads, and executes this sample microprogram is provided in the VAX 11/780 WCS kit. To invoke this file in the VMS environment, type: @[SYSEXE]WCSTOLTST This command file assembles the input listing (Section C.l) and produces the listing file (Section C.2) and the object file (Section C.3) which are written to [VAXWCSTOL]SAMPLE.MCR and [VAXWCSTOL]SAMPLE.ULD. It then loads the object file into the extended WCS and runs the test program BSTEST (Appendix D). BSTEST executes an XFC instruction, which causes the sample microprogram loaded in the WCS to be executed. If the microprogram executes properly, BSTEST pr in ts the following message on the terminal: "Successful Test Com pl et ion" SAMPLE MICROPROGRAM FOR SYSTEM REVISION C.l <7 THE INPUT FILE (.MIC) .TOC "Binarw search routine• .REGION /1400,17FF • BOUNDS/BSERCH:1400r17FF ;user wcs space • ;This defines the report boundries ;for the U-code microword summar~ Pase ;and names the report boundar~ BSERCH. SamPle microcode to Perform an unsisned binar~ search throush a vector of alisned lonswords in main memorw. INPUTS RO Search comParand. Routine succeeds b~ findins a memorw cell containins same data as RO. R1 Lower address bound. Alisned lonsword address of lowest address of vector to bu searched. R2 UPPer address bound. Alisned lonsword address of hishest address of vector to be searched. It is imPlied that Rl lssu R2r and that the memor~ between the addresses in Rl and R2 contains a sorted vectorr in ascendins unsisned order. Outputs if search finds a match. CC<Z> Clear RO Search comparand. Rl Match address. Address of lonsword containins same data as RO. R2 Used b~ search for temPorarw address values. Outputs if search does not find a match. CC<Z> Set RO Search comParand. Rl Used b~ search for temPorar~ address values. R2 Used b~ search for temPorar~ address values. Page C-2 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 SRCH:;-----------------------; Q_R[R2J,;GET UPPER BOUND ADDR TO Q STATE_KCZEROJ;INITIALIZE STATE REGISTER ;-----------------------; D_R[ROJ;GET COMPARAND TO HOLD IN RC ;-----------------------; ALU_D,;PREPARE TO WRITE COMPARAND TO RC LAB-R1&RCCT1J_ALU;WRITE COMPARAND• GET LOWER BOUND SRCH.1:;-----------------------; a_CLA+G>.RIGHTr;coMPUTE MIDPOINT ADDRESS INTRPT.STROBE,;TEST FOR INTERRUPT REQUESTS STATEOT;Is IT TIME TO STOPT =O SRCH.2:;0----------------------;STATEO=O. KEEP LOOKING FOR MATCH. U_Q.ANDNOT.KC.3Jr;FORCE LONGWORD ALIGNMENT VA-ALU,;GET READY TO READY MIDPOINT OF VECTOR LC-RCCT1Jr;LATCH COMPARAND INTO LC INTTrJ/SRCH.3;Is THERE AN INTERRUPT REUUEST? ;1----------------------;STATEO=l. SEARCH FAILED. NO MATCH. ALU-KCZEROJ,; CCK/NZ-ALu.vc_o,LONGr;RETURN Z=1 TO FLAG FAILURE. CLR.IB.OPC,PC_PC+1,fMOVE ON TO THE NEXT INSTRUCTION J/IRD; =110 SRCH.3:;110--------------------;No INTERRUPT REQUESTS DCLONGJ_CACHEr;READY MIDPOINT ENTRY OF VECTOR ALU_R[R2J.XOR.Q,;COMPARE MIDPOINT EQL UPPER BOUND CLK.UBCC,J/SRCH.4; ;111--------------------;INTERRUPT REQUEST IS UP J/INT.B;TAKE IT. RESUME FROM REG'S AS rs. Page C-3 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 WE HAVE ALSO SET THE MICROBRACH Z DIT ACCORDING TO A COMPARE OF THE MEMORY ADDRESS WITH THE CURRENT UPPER BOUND. IF THEY ARE EQUALr THIS IS THE LAST POSSIBLE COMPARISON. A MATCH FAILURE HERE IMPLIES THAT THERE IS NO MATCH TO BE FOUND. SRCH.4:;-----------------------; ALU_D-Lc,;coMPARE MEMORY TO COMPARAND LONGrCLK.UBcc,;RECORD COMPARE RESULT LA-RA[RlJ,;LATCH LOWER BOUND INTO LA <LB HAS 111 z1;Is MIDPOINT EQL UPPER BOUND? =O;o----------------------;ALU Z=O. NOT END OF SEARCH ALU1rJ/SRCH.5;TEST RESULT OF COMPARE 11----------------------;ALU Z=l. END OF SEARCH STATE_K[.lJ,;SET STATEO TO MARK END OF SEARCH. ALu1;cHECK FOR LAST CHANCE MATCH =1010 SRCH.5:f1010-------------------;ALU Z=Or C=l, RO GTRU HEM Q_Q+K[.4JrfLOWER LIMIT MUST BE GREATER THAN THIS R[RlJ_ALU,;REMEMBER IN Rl. J/SRCH.6; ;1011-------------------;ALU Z=Or C=O. RO LSSU MEM Q_Q-K[.4J,;UPPER LIMIT MUST BE LESS THAN THIS R[R2J_ALU,;REMEMBER IN R2 J/SRCH.1;Go TRY AGAIN =1111;1111-------------------;ALU Z=lr C=l. RO EOL HEM R[RlJ_Q,;FOUND IT! CCK/NZ_ALU.vc_o,LONG,;SET Z=O TO INDICATE MATCH CLR.IB.OPCrPC_Pc+1.;Go TO NEXT INSTRUCTION J/IRD SRCH.6:;-----------------------; a_ca+LB>.RIGHJ,;COMPUTE NEW MIDPOINTr LOOP INTRPT.STROBE,; STATE01rJ/SRCH.2;CHECK FOR ENDr LOOP ; DEFINE LADLES TO INTERFACE WITH PCS 0062:IRD: 04F8:INT.B: •• Page C-4 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 C.2 THE LISTING FILE (.MCR) OLIISAM.MCR 2 56 97 150 205 255 330 405 452 487 529 568 617 624 1538 1634 1729 Page C-5 Machine definition Machine definition Machine definition Machine definition Machine definition Machine definition Machine definition Machine defird ti on Machine definition Machine definition Machine definition Machine definition· Machine definition Macro definition Macro definition Macro definition Binar\:I search routine MICR02 1L<02) 18-JAN-82 Table of Contents 16:19l40 Control word chart ACF, ACM, A[IS, ALU, AMX BEN, BMX CCK, crr1, IIK, [IT EALU, EBMX, FEK, FS, IEK, IE«C III. AitIIR, J KMX MCT, MSC PCK, QI(, RAMX, RBMX SCI(, SGN, SHF, sr, SMX spa, SPO.AC, SPO.ACN, SPO.ACN11, SPO.R SPO.RAB, Sf'O.RC, SUB, VAK Validi t!:I checl'-.s Resister transfer macros Non-transfer macros Branch enable macros Pase SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 OLDSAH.HCR VAXDEF.HIC MICR02 1L<02> 18-JAN-82 H .fl!OLIST .LIST H728 16:19:40 Page C-6 f'ase Pinhibit listins for VAXDEF.HIC 2 Page C-7 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 OLI1SAl1. HCR BSERCH.HIC HICR02 1L<02> 18-JAN-82 Binarw search routine 11729 '1730 H731 J1732 '1733 ;1734 ;1735 11736 11737 11738 11739 '1740 '1741 91742 H743 H744 '1745 '1746 '1747 '1748 11749 11750 '1751 11752 11753 ;1754 11755 11756 11757 11758 '1759 ;1760 f'a!!le 16t19:40 .roe 'Binarw search routine' .REGION /1400r17FF • BOUNDS/BSERCHt1400,17FF 39 User wcs space • This defines the rePort boundries for the U-code microword summarw Pase and names the report boundarw BSERCH. SamPle microcode to Perform an unsisned binarw search throush a vector of alisned lonswords in main memorw. INPUTS RO Search comParand. Routine succeeds bw findins a memorw cell containins same data as RO. Rl - Lower address bound. Alisned lonsword address of lowest address of vector to be searched. R2 - UPPer address bound. Alisned lonsword address of hishest address of vector to be searched. It is implied that R1 lssu R2, and that the memorw between the addresses in R1 and R2 contains a sorted vector' in ascendins unsililned order. OutPuts if search finds a match. CC<Z> - Clear RO - Search comParand. Rl - Hatch address. Address of lonsword containins same data as RO. R2 - Used bw search for temporarw address values. OutPuts if search does not find a match. CC<Z> - Set RO - Search comparand. R1 - Used bw search for temPorarw address values. R2 - Used bw search for temporarw address values. SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAH.HCR BSERCH.HIC IJ HICR02 Binar~ 1404r OOOOrOOJC,19COrFA10•1404r7405 u 1405. 0900r003C.01BO•FAOO.oooo.1408 IJ lJ IJ 1L<02> 19-JAN-92 search routine 1409, 0001•003Cr0180rF808r0000•1409 1409, 005C,1714r01COrF800•4000r1400 1400• 0019,2E24•0DCO•F908r0200•1406 u 1401, co1e.003e,19eo.Feo4,40so.0062 u 1406, 001c.0020.01eo,4210.0010.14oc U 1407r 0000r003Cr0180•FB00•0000r04F8 '1761 •1762 ;1763 ;1764 ,1765 ;1766 ;1767 ;1768 ;1769 ;1770 ;1771 ;1772 ;1773 '1774 ;1775 ;1776 ;1777 ;1779 ;1779 ;1790 ;1701 ;1782 f1783 ;1784 11795 ;1786 ;1787 ;1799 f1789 11790 ;1791 ;1792 ;1793 ;1794 ;1795 ;1796 ;1797 11798 ;i799 SRCH: Page C-8 16:19:40 Pase ·-----------------------·;GET UPPER BOUND ADDR TO Q Q_RCR2J• STATE_K[ZEROJ ,_______________________ ,fINITIALIZE STATE REGISTER ,_______________________ ,fGET COHPARAND TO HOLD IN RC D_RCROJ ALU_D, LAB-R1&RCCT1J_ALU f PREPARE TO WRITE COMPARAND TO RC IWRITE COHPARANDr GET LOWER BOUND SRCH.1: ;-----------------------1 Q_(LA+Q>.RIGHTr ICOHPUTE HIDPOINT ADDRESS INTRPT.STROBEr ITEST FOR INTERRUPT REQUESTS STATE01 ;IS IT TIHE TO STOP1 =O SRCH,2: ;0----------------------fSTATEO=O. KEEP LOOKING FOR MATCH. Q_Q.ANDNOT.KC.3Jr fFORCE LONGWORD ALIGNMENT VA_ALUr JGET READY TO READY HIDPOINT OF VECTOR LC_RCCT1Jr PLATCH COHPARAND INTO LC INT1rJ/SRCH,3 fIS THERE AN INTERRUPT REQUEST1 11----------------------fSTATEO=l, SEARCH FAILED. NO MATCH. ALU-KCZEROJr ; CCK/NZ-ALU.vc_O.LONGr fRETURN Z=1 TO FLAG FAILURE. CLR.IB.OPCrPC_PC+1r fHOVE ON TO THE NEXT INSTRUCTION J/IRD ; •110 SRCH,3: f110--------------------fNO INTERRUPT REQUESTS DCLONGJ_CACHEr fREADY MIDPOINT ENTRY OF VECTOR ALU_RCR2J,XOR,Qr ICOHPARE HIDPOI~T EQL UPPER BOUND CLK.UBCCrJ/SRCH.4 ; 1111--------------------fINTERRUPT REQUEST IS UP J/INT,8 fTAKE IT, RESUHE FROH REG'S AS IS, 40 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 OLDSAH+MCR BSERCH.HIC HICR02 1L<02> 18-JAN-82 Binarw search routine U 140Cr 0011r0100r0180rF888r0010r1402 U 1402r OOOOr1B3Cr0180rF800rOOOOr140A U 1403r 0000r183CrOS80rF800r1404r740A tJ 140Ar 0019r2014r11COrFA88rOOOOr140D U 140Br 0019r2000r11C6rFA90rOOOOr1409 U 140Fr C001r203Cr0180rFA8Cr40SOr0062 U 140D• 004Dr3714r01COrF800r4000r1400 '1800 ;1001 ;1002 J1803 f1804 ;1eos ; 1806 '1807 J1808 11809 11810 '1811 ;1012 11813 ;1014 11815 ;1016 '1817 ;1010 '1819 '1820 ;1021 '1822 f 1823 '1824 ;1025 ;1826 11827 '1828 '1829 ;1930 ;1031 J1832 '1833 ;1834 ;1835 ;1836 '1837 ;1838 ;1839 ;1040 ;1841 ;1842 Page C-9 16:19:40 Pa!lle WE HAVE ALSO SET THE MICROBRACH Z BIT ACCORDING TO A COMPARE OF THE MEMORY ADDRESS WITH THE CURRENT UPF'ER BOUNI1. IF THEY ARE EQUALr THIS IS THE LAST POSSIBLE COMPARISON. A HATCH FAILURE HERE IMPLIES THAT THERE IS NO MATCH TO BE FOUND. SRCH.4: ;-----------------------; ALU-D-LCr ;coHPARE HEHORY TO COHPARAND LONGrCLK+UBCCr IRECORD COMPARE RESULT LA-RA[R1Jr ;LATCH LOWER BOUND INTO LA <LB HAS ?TT ZT ;Is MIDPOINT EQL UPPER BOUND? =O ;0----------------------fALU Z=O, NOT END OF SEARCH ALUTrJ/SRCH.S ;TEST RESULT OF COMPARE ;i----------------------fALU Z=1, END OF SEARCH STATE-K[.1Jr ;SET STATEO TO HARK END OF SEARCH. ALU? ;CHECK FOR LAST CHANCE HATCH =1010 SRCH.5: 11010-------------------fALU Z=Or C=1, RO GTRU HEM Q_Q+Kr;4J, ;LOWER LIMIT HUST BE GREATER THAN THIS R[R1J_ALUr ;REMEMBER IN R1. J/SRCH.6 ;1011-------------------IALU Z=Or C=O. RO LSSU HEM Q_Q-K[.4Jr PUPPER LIMIT MUST BE LESS THAN THIS R[R2J-ALUr ;REMEMBER IN R2 J/SRCH.1 ;Go TRY AGAIN =1111 11111-------------------JALU Z=lr C=l. RO EQL HEM RCR1J_Q, PFOUND IT! CCK/NZ_ALU.vc_o.LONGr fSET Z=O TO INDICATE MATCH CLR.IB,OPCrPC_PC+1r ;Go TO NEXT INSTRUCTION J/IR[I SRCH,6: ;-----------------------; Q_(Q+LB>.RIGHTr ;coHPUTE NEW MIDPOINT. LOOP INTRF'T.STROBEr STATEO?rJ/SRCH,2 fCHECK FOR ENDr LOOP , DEFINE LABLES TO INTERFACE WITH PCS 0062: IRI1: 04F8: INT, B: 41 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 •p OLDSAM.MCR J INT.B IRD SRCH SRCH.1 SRCH.2 SRCH.3 SRCH.4 SRCH.5 SRCH.6 MICR02 1L<02) :L8-JAN-82 16:19:40 Cross Reference Listins - Field Names and Defined Values 326 • 1799 1790 1762 1774 1780 1784 1796 1912 1822 ••• 1842 1833 1827 1838 1793 1905 1919 1835 • ••• • 1841 • Page C-10 Pase 42 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAM.MCR 1 El--JAN-82 16:19:40 1L<02) MICR02 Macro Names Cross Referer1ce Listin!':f -- AC.LOW'!' ACC.SYNC'!' ACCEL'l' ALIGNED'!' ALU.N'l' ALU1-0'!' ALU'!' ALIL-1 ALU_O<A> ALU_O·rn ALILO+Ilf1 ALU_O+K[J ALU_O+KCH1 ALILO+LIH1 ALU .. OKC ALU_O+LC+1 AL.U_O+MABK+1 ALU_o+o ALU .• 0+0+1 ALU._O·-D ALU_O·-Il-1 ALU_O·-Kf.J ALU_o-KrJ-1 ALU_O·-l.B ALU_O-LC ALU_O·-LC-1 ALU_O-Q ALU_O··Q·-1 ALU_O(J[r ALU_O(JLC ALU_[r ALU .• D<B> ALU_[IH([J ALU-.Il+KrH1 ALU_Ii+KCJ.RLOG ALU_D+l..B 1636 t 1637 t 1638 t 1639 t 1640 t 1641 t 1642 t 626 t 627 t 6W t 629 t 630 t 631 t 632 t 633 t 634 t 635 t 636 t 637 t 6:38 t 639 t 640 t 641 t 642 t 64:3 t 644 t 645 t 646 t 647 t 648 t 649 t 650 t 651 t 652 t ALILD·~LC 6!'.'i5 t 6!'.'i6 t ALU_r1+LC+ 1 ALU_Ir+LC+f'SL.. C ALU_D+O ALU_DHH1 ALU_D·rn+PSL. • C ALU_rr+RLIJG Al-U-IHH J ALU_D-·K [ J-.. 1 ALU_D-LB ALU_D-LB.Rl.OG ALU_[l·-l..C ALU_D-L..C-·1 Al-ILD--0 ALU_[l·-Q-1 ALU_rr. OXH J ALU .. D.<>XH J+K[J ALU .. D. OXH HLC ALU._[1, OXH J+D 65~~ t 6~"i4 t 6~.)7 1812 17'70 t b!'.'i8 t 6~59 t 660 t 661 t 662 t 66:3 t 664 t 66~5 t 666 t 66'7 t 668 t 669 t 670 t 671 t 672 t 673 t 1806 1816 Page C-11 f'ase 43 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAM.MCR ALU-.D • OXH J-KC J ALU_D,OXHJ-0 ALU_D.OXTCJ.AND.KCJ ALU_D,OXTCJ.ANDNOT.KCJ ALU_D.OXTCJ.OR.O ALU_D.AND.KCJ ALU_D.AND.MASK ALU_D.ANDNOT.KCJ ALU_D.ANDNOT.MASK ALU_D.ANDNOT.O ALU_D.OR.KCJ ALU_D.OR.LC ALU_D.OR.O ALU_D.OR.RCCJ ALU_D.ORNOT.MASK ALU_D.SXHJ ALU_D. SXTC HK [ J ALU_[I, SXH HO ALU_D,SXTCJ.AND.KCJ ALU_D.SXT[J,ANDNOT.KCJ ALU._D, XOR. KC J ALU_D.XOR.L.C ALU_[1, XOR. a ALU_D.XOR.RCCJ ALU_D.XOR.RCJ ALU-DCJK(J ALU .. DCJLB ALU ... DCJLC ALU_DCJO ALU_KCJ ALU._ LA ALU_LA+KCJ ALU-LAtK[J+1 ALU_L.A+KC J. RLCIG ALU_LAtl.B ALU-LA+LC ALU_ LAH.Ct 1 ALU-LAtLCtPSL.C ALU .. LA+O ALU_LA-[I ALU_L A·-[l·-1 ALU-LA-KCJ ALU-LA-K[J-1 ALU .. LA··KC J • RLOG ALU_LA-LC ALU-LA-ll ALU-LA·-ll-1 ALU .. LA. AND. K[ J ALU-LA.AND.LC ALU-LA.ANDNOT.KCJ ALU_LA.ANDNOT.MASK ALU_LA.OR.KCJ ALU-LA.XOR.LC ALU-LAC )[1 ALU_LACJLB 18-JAN-82 16:19:40 MICR02 1L<02) Cross Reference L:istins - Mac1•c1 Names 674 t 675 t 676 t 677 t 678 t 679 t 680 t 681 t 68~? t 683 t 684 t 685 t 686 t 687 t 688 t 689 t 690 t 691 t 693 t 692 t 694 t 695 t 696 t 697 t 698 t 699 t 700 t 701 t 702 t 703 t 704 t 705 t 706 t 707 t 708 t 709 t 710 t 711 t 712 t 713 t 714 t 715 t 716 t 717 t 718 t 719 t 720 t 721 t 722 t 723 t 724 t 725 t 726 t 7~!7 t 728 t 1787 Page C-12 Pase 44 < 7 Page C-13 16:19:40 45 SAMPLE MICROPROGRAM FOR SYSTEM REVISION f OLDSAM.MCR ALU_LACJO ALU-LB ALU_ LC ALU_NOT.D ALU_NOT+K[J ALU_NOT.RCCJ ALU_PACK.FP ALU_PC ALU_Q ALU_Q<B> ALU_QtKCl ALU_QtK[Jt1 ALU_QtLB ALU_Q+LB+l ALU_QtLC ALU_O+LC+1 ALU_QtLC+PSL.C ALU_O+MASK ALU_Q-D ALU_Q-D-1 ALU_Q-K[J ALU_Q-LB ALU_O-LC ALU_Q-MABK-1 ALU_Q.OXTCJ ALU_Q.OXTCl+D ALU_Q.OXTCJ+D+l ALU_Q.OXT[JtKCJ ALU_O.OXTCJ-D ALU_Q.OXT[J-KCJ ALU_Q.OXT[J.ANDNOT.KCJ ALU_Q,OXT[J.OR.D ALU_Q.OXTCJ.OR.K[l ALU_Q.AND.D ALU_Q,AND.KCl ALU_Q.ANDNOT.KCJ ALU_Q,ANDNOT.MASK ALLJ_Q.ANDNOT.RCJ ALU_Q.OR.K[J ALU_Q.OR.LC ALU_Q.ORNOT.KCJ ALU_Q.SXTCJ ALU_Q.SXTCJ+KCJ ALU_Q.SXTCJ+LB ALU_O.SXTCJ+LB+l ALU_O.SXT[J+PC ALU_Q.SXTCJ.ANDNOT.K[J ALU_Q.XOR.D ALU_Q.XOR.KCJ ALU_Q,XOR.LC ALU_Q.XOR.RClJ ALU_Q[JD ALU_RCDST> ALU_R(SC),ANDNOT.KCJ ALU_R(SPl>+KCJ.RLOG MICR02 1L<02> 18-JAN-82 Cross Ref~rence Listin~ - Macro Names 729 t 730 t 731 t 732 t 733 t 734 t 735 t 736 t 737 t 738 t 739 t 740 t 741 t 742 t 743 t 744 t 745 t 746 t 747 t 748 t 749 t 750 t 751 t 752 t 753 t 754 t 755 t 756 t 757 t 758 t 759 t 761 t 760 t 762 t 763 # 764 t 765 t 766 t 767 t 768 t 769 t 770 t 771 t 772 t 773 t 774 t 775 t 776 t 777 i 778 t 779 # 780 t 781 J 782 t 783 t SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAM.MCR ALU_RC<SC) ALU_RC[J ALU_RLOG ALU_R[J ALU .. R[ J-·KC] ALU_R[J.AND.K[J ALU_R(J.AND.LC ALU_R[J.ANDNOT.KCJ ALU_R[J.ANDNOT.MASK ALU._R[ J. OR• K[ J ALU_R[J.ORNOT.K[J ALU_R[J.XOR.KCJ ALU_R(J.XDR.O B.FORK BCDSGN'!' BYTE C.FORK G31? CACHE.INVALIDATE CACHE .P .. DC J CACHE[ J_,[1 CACHE .• II <CWAD > GACHE_D.INST.DEP CACHLDCJ CACHL[t[ J. LK CACHLD[J.NOCHK CALL CALL[] CHK.FLT+OPR CHK.ODD.ADDR CLK.UBCC CLR. Ff'It CLR.IB.COND CLR.IB.OPC CLR.IB.SPEC CLR.IB0-1 C::LR.IB0-3 CLR.I.92-3 CLR.IB2-5 CLR.NEST.ERR CLR.SD&SS CONSOLE. MODE"~ n&a_n+a D&RC[LPC U&VA_ALU D&VA_D+L.C D&VA-D+O D&VA_D-1\[J D&VA_LA fl&VA-LB D&VA_O I:t&VA_l.HLB •PC IH 1>1 D.BO? D.Bl'!' MICR02 1L< 02) 18-JAN-82 16:19!40 Cross Reference Listins - Macro N.:1mes 784 t 785 t 786 t 787 788 789 790 t 791 t 792 t 793 t 794 t 795 t 796 I 1540 t 1644 t 1541 t 154:3 t 1646 t 1544 t 798 t 799 t •• • 1'795 BOO t 801 t 802 t 803 t 804 t 1545 1546 1547 1548 t 1549 1551 1552 1553 t 1554 t 1s:;s t 1556 t 1557 t 1558 t 1559 1560 t 1647 t 806 t 807 t 808 t 809 t 810 t 811 t 812 t •• • •• 1?96 • • 81:~ • • • 814 t 815 t 1649 1650 t 1651 1789 1807 1832 Page C-14 Pa9e 46 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ~ OLDSAM.MCR D.B2? D.BYTES? D.NE.O? D~ D2-0? D2? D3-0? D31? D3? DATA.TYPE? DBL? DCJ_CACHE DCJ_CACHE.IBCHK D[J_CACHE.LK D[J_CACHE.NOCHK D(J_CACHE.P DCJ_CACHE.WCHK n_o n_o+KrJ+1 n_o+Lc+1 n_o-n n_o-KCJ n_o-a n_o-a-1 n_ACCEL&BYNC n_ALU n_ALUCFRAC> D_ALU.LEFT n_ALU.LEFT2 n_ALU.LEFT3 D-ALU.RIGHT D_ALU.RIGHT2 ll-BLANK n_CACHE.INST.DEP D_CACHE.LK(J n_CACHE+WCHK[J D_CACHECJ n_DCFRAC> n_D+KCJ n_D+KCJ+l D-D+LB D-D+LC n_D+LC+PSL.C n_n+a D-D+O+l D_D-KCJ D-D-LC D_D-0 D_D-Q-1 D_D.OXTCJ D_D.OXTCJ+KCJ D_D.OXTCJ+Q D_D.OXTCJ+O+l n_D.OXTCJ.ANDNOT.KCJ n_D.OXTCJ.OR.Q MICR02 1LC02> 18-JAN-82 16:19:40 Cross Reference Listins - Macro Names •• •• •• ••• •• •• •• •• ••* ••• 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 817 818 819 820 821 822 824 t 825 826 827 828 829 830 831 t 832 t 833 834 835 836 837 838 839 840 841 842 t 843 t 844 t 845 t 846 t 847 t 848 t 849 850 t 851 t 852 t 853 # 854 •• •• ••• •• • 855 •• 856 t 857 t 858 t 859 t 860 t 861 t 1794 Page C-15 Pase 47 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; OLDSAM+MCR ILD.OXH J. XOR .a D_D.OXT(J.XOR.RC(J ILD.AND.K(J D_D.AND.K[J.LEFT2 D_D.AND.K[J.RIGHT ILD • ANI1. LC ILD •AND. MASK ILD.AND.Q [l_D.AND.RCCJ D_D.ANDNOT.K(J LLD. ANDNOT •LC l)_fJ.ANDNOT.F'SWZ ILD. ANDNOT • ll ILD. ANDNOT •RC ( J l)_D.LEFT [l_D.LEFT2 LLD.OR.ASCII ILD.OR.K[J ILD. Ot::. PSWC ILD. OR• PSWV n._n.oR.a I)_D.OR.RC[J ILD.OR.R(J ILD. ORNOT. MASK 1)_[1.RIGHT n_n, RIGHT< B) ILD.RIGHT2 n._[I, SWAP ILD.SXT[J n_D. sxrr J. RIGHT D_D.XOR.K[J ILD,XOR,LC ILD.XOR.ll ILDAL.NORM D-DAL.SC ILDCJKCJ [l_[l(JMASK [l_[l(J(l ILINT .SUM ILKCJ ILK( J •RIGHT IU([J .RIGHT2 D-LA l)_LA<FRAC> ILLA+r•+PSL. C n_LA-D D-LA-K(J ILLA. AND. K( J D_LA.RIGHT ILLB [!_LB.PC l)_LC ILLC<FRAC > ILNOT .[I D-NOT.K(J <7 MICR02 l.L<02) 18-JAN··82 16:19:40 Cross Reference Listins - Mc:1cro Names 862 t 863 t 864 t 865 t 866 t 867 t 868 t 869 t 870 t 871 t 872 t 873 t 874 t 875 t 876 t 877 t 8"78 t 879 t 880 t 881 t 882 t 883 t 884 t 885 t 886 t 887 t 888 t 889 t 890 t 891 t 892 t 893 t 894 t 895 t 896 t 897 t 898 t 899 t 900 t 901 t 902 t 903 t 904 t 905 t 906 t 907 t 908 t 909 t 910 t 911 912 t 913 t 914 915 t 916 t • • Page C-16 f'a9E' 48 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAM.MCR J)_NOT.MASK D.-NOT .a D-NOT .RU [l_PACK.FP U.-PACI\. FF'. LEFT U.-PC D...F'C. LEFT n._a [l_Q <FIMC > I:U.H·D D.-1.HKt:J D-G+LB I:t.-GtPC [l_Q--[1 [l_Q-[1-1 IJ_Q-K[J D-ll-K[J-1 IJ._0-f'CSV I:U1.0XTCJ n... o. AND. KC J D.-ll •AND. L.C n._Q. AND. MASK D.-0. AN[I. RC:C:] D.-D. ANDNOT •[I D ... Q • ANDNOT. KC J ILD. ANDNDT. MASK I:Ul. ANDNDT. PSWC: IJ ... ll. ANDNDT • PSWN IJ_.O • ANDNOT. PSWZ IJ .•. O.LEFT D ... 0 •CIR .1·0:: J n... n. OR. PSWC: U... Q. OR. RC [ J U... Q. Ol:::NOT •MASK ru1.RIGHT [l._Q. RIGHT:! I:U1.SXT[:J D... Q. XOR. RC[ J IJ .•. 0[ JD I:Ult: JK[ J n... m: ]MASK D .•. R CPl:::Ntt > r:u:::csc> [l._R <SP 1t 1.) D ... RCCSC> D... RC[ :J U...RL.OG D.-RLOG. RIGHT D... Rt:J [l._R[ JC FRAC > IJ_.R[:J .AND.Kt:] rr._RI: J. OR. Kt: J I:U~t: J, ORNDT. K[ J E.FORI( EALU.N? MICR02 1LC02> 18-JAN-82 Cross Reference Listins - 917 t 918 t 919 t 920 t 921 t 922 t 923 t 924 t 9'''"' "'~· ..J t 926 t 927 t 928 t 929 t 930 t 931 t 932 t 9~'i3 t 934 t 935 t 936 t 937 t na t 939 t 940 t 941 t 942 943 t 944 t 945 t 946 t 947 948 t 949 t 950 t 9~i:I. t 95:;! t 953 t 954 t 955 t 9~i6 t 957 t 958 t 959 t 960 t 961. t 962 t 963 t 964 t f/65 t 966 t 967 t 968 t 969 t • • 1~i62 t 1664 t 1767 16:19:40 Macro Names Page C-17 Pa9e 49 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; OLDSAM.MCR EALU.Z'!' EAL.U'!' EALU_D<EXP> EALU .. FE EAL.U_K[J EALU._R[ J <EXP) EALU_sc EALIJ .. SC+FE EALU ... SC+K[ J EAL.LI-SC-FE EALILSC-··K[ J EALU-SC.ANDNOT.K[J EALILSTATE END. [lf'1 '!' EXCEPT.ACK FE&SC._K[ J FE_O(A) FLD<EXP> FE-EAL.U FE_K[:J FE_LA<EXP> FE_NABS<SC-FE> FE_NABS<SC-LA<EXP>> FE._O <EXP> FE_R[J(EXP> FE .. SC FE_ SCH FLSC+F"E FE_SC+K[J FE_sc+L.A<EXF'> FE_SC:·-FE FE_SC-KC:J FL.SC·-LA <EXF' > FLSC:-SHF. VAL. FE_SC:.ANDNOT.FE FE_SC.ANDNOT.K[:J FE_.sc. OR. I([] FE_SHF. VAL. FE-STATE FLUSH.IB FPD'!' G.FORK IB. TEST'!' ID<SC)_[I ID[ LD ID_D&NO.SYNC ID .. [1. SYNC INHIBIT. IB INT? INTERRUPT.RED'!' INTRPT.ACK INTRPT.STROBE IRO.C31'!' .tRO'!' IR1 ·r <7 MICR02 1L<O:?.> 18--JAN·-82 16:19:40 Cross Reference Listin!'J ·- Macro Names 1665 t 1666 t 971 t 972 973 t 974 t 975 t 976 t 977 t 978 t 979 t 980 981 1667 • 156:~ •• •t 983 t 984 t 985 t 986 987 t 988 t 989 t 990 t 991 t 992 993 t 994 t 995 t 996 t 997 t 998 999 1000 1001 1002 l.003 t 1004 t 1005 t 1006 • • •• •• • 1~i65 •t • 1669 t 1567 1671 t 1008 t 1009 t 1010 1011 t 1569 t 1672 1673 t 1570 t 1571 t 1674 t 1675 t 1676 t • • 1784 1776 18~'i7 Page C-18 Pa1.=Je! ~:;o SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OL.DSAM.MCR IR2·-P IRD :r:RD.11 IRDO IRD:l I'\[ J LAB... R(DST> 1...AB_R<PRN> LAB ... R( F'RN+t) l...AB ... RCSC) 1...AB._R CSF' 1 > 1..AB_RCSP1+1 > l...AB ... R1 &Rcr: ] .... o LAB_R1&RC[J_O+LC+1 LAB-Rt &RC[ LO .... [I l... AB_R 1 &RC [ J ... AUJ 1..AB_Rl&RCCJ_ALU.RIGHT2 LAIUH &F:C[ .L.Iltl..C LAB_Rl&RCCJ_D.OXTCJ+KCJ 1...AB-R1&RCCJ_Q-K[J 1...AILR[J LABT .REF'~ 1...A_R<DST>&L.B_RCSRC> 1...A_RCSP2>&LB_RCSP1> LA .. RACJ l...G_RC<SC> LC .. RCC J 1...C_RCCJ&R1-<LA+LB>.LEFT 1..C_RCCJ&Rl-<LA+LB+PSL.C>.LEFT LC_RCCJ&R:l._CLA+LB.RLOG>.LEFT LC_RCCJ&R:l._CLA-LB>.LEFT LC_RCCJ&R:l._CLA-LB.RLOG>.LEFT 1...LRCC J &Rl..... AL..U l... C-RCC URL.I• l...C_RCl:J&R1_LAtK[J 1...C_RCCJ&Rl-LA-KCJ LC.RC[ J &R1 .... LB LC ... RCC J &RL..U LOAD. ACC •CC l...OAD.IB LOAD+IB.11 LONG MEMIJRY.NOF' MIJDE.LSS.ASTLVL? MIJL.OXT MIJL.1XT MIJL'r MIJLM.DONE MULF'+DONE N&LAl..lJ N&LAl..U. V&C .... O NEST.ERR? N.-AMX .z .... TBT PC&VA ... ALU PC&VA.-D MICR02 1LC02> Cross Reference 18-JAN-82 Listin~ 1677 t 1::'i72 t 157:3 t 1574 t 1575 t lOB t 101:"j t 10111 t 1017 t 1018 t 1019 t 1020 t 102:1. t 1022 t 102:3 t 1.024 t :1.02:'.'i t 1026 t 10::!7 t :1.0::.•n t 1 ()~.>l_il t :1.679 t rn:n t 1. 0:·52 t 1o:B :I: :1.o:·M t 10:·5~; t 10:36 t 10:37 t :l.0~513 1771 1fJOB 1. 70:~ :II: 10:59 # :1.040 t 1041 t 1042 :II: 1.043 :ff: 1044 t 104:'.'i t :1.046 t :t.~'i'17 t 1::'i7fJ t .t~i79 t 1~i80 t: 1.::'i82 t 1681 t 158:~ t 15B4 t :1.68::.~ t 1.::'i8~'.'.i t 1.586 t 1048 t 1049 t 1684 :ft: 10~50 t 1052 i l05~5 t 1708 1807 16:19:40 - Macro Names Page C-19 51 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; OLIISAM.MCR PC&VA_Il+K(J PC&VA_D--K[ J PC&VA-D-PC PC&VA._D. OXH J PC&VA_Il.OXTCJ+PC PC&VA_D.SXTrJ+PC PC&VA_t\(J PC&VA_PC PC&VA_Q PC&VA._Q+PC PC&VA_Q-[1 PC&VA_Q-1'([ J PC&VA_Q.SXT(J+PC PC&VA.-RC[ J PC&VA_R[J.ANDNOT.KCJ PC.MODES? PC_PC+1 PC_PC+2 PC._PC+4 PC_PC+N PC_Q+F·C PC_VA PC_VIBA POLY.DONE PSL.C'l' PSL.CC'i' PSL .MOIIEr~ PSL.N'i' PSL.V'l' PSL.Z'l' PSL<C> ... AMXO PTE.VALID'l' CUVA-ALU CUVA_D CUVA_D+LC !UVA-LA [~ &VA_QtLB •PC (131 'i' QD_CQ+LB>D.RIGHT2 QD_CQtLC>D.RIGHT2 QD_CQ-LD>D.RIGHT2 QD_CQ-LC>D.RIGHT2 cm ..1m. RIGHT2 !:WAD'~ !LCLAHU .RIGHT !LCIHLB> .RIGHT ILO Q_O+LC+l ILO+MASK+1 !LO+PC. RL.OG !L0-[1 Q_O-K(J ILO-LC CLO-Q ILACCEL &SYNC <7 MICR02 1L< 02) 1El-JAN-El2 16:19:40 Cross Reference Listin!:I Macro Name!; - 1054 t 1055 t 1056 t 1057 t 1058 t 1059 t 1060 t 1061 t 1062 t 106~'5 t 1064 t 1065 t 1066 t 1067 t 1068 t 11>86 t 1070 t 1071 t 1072 t 1073 t 1074 t 1075 t 1076 t 1508 t 1687 t 1688 t 1689 t 1690 t 1691 I 1692 t 1077 t 1693 t 1079 t 1080 I 1081 t 1082 I 1083 I 1695 I 1085 t 1086 t 1087 t 1088 I 1089 I 1696 t 1091 I 1092 t 1093 t 1094 I 1095 t 1096 t 1097 I 1098 t 1099 t 1100 t 1101 I 1789 1775 1836 1832 Page C-20 Paste ~;2 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 Page C-21 18-JAN-82 16:19:40 - Macro Names 53 ; OLDSAM.MCR Q_ALU Q_ALUCFRAC> Q_ALU.LEFT Q_ALU.LEFT2 Q_ALU.LEFT3 Q_ALU.RIGHT Q_ALU.RIGHT2 Q_D Q_D(FRAC><B> Q_D+KCJ Q_D+KCJ+l Q_D+KCJ.LEFT Q_D+LC Q_D-KCJ Q_D-LC a_n-a Q_D.OXTCJ Q_D.OXTrJ+KrJ.LEFT Q_D.OXTCJ.OR.PACK.FP Q_D.AND.K[J Q_D.AND.KCJ.RIGHT Q_D.AND.K[J.RIGHT2 Q_D.AND.RCCJ Q_D.ANDNOT.RCCJ Q_D.LEFTJ Q_D.OR.K[J Q_D.OR.RCCJ Q_D.RIGHT Q_D.RIGHT2 Q_D.SXTCJ Q_D.XOR.U Q_DEC.CON Q_IB.BDEST Q_tB.DATA Q_ID<SC> Q_JD[J Q_K[J Q_KCJ+l Q_K[J.CTX Q_K[J.RIGHT Q_K[J.RIGHT2 Q_LA Q_LAtK[J Q_LA+O Q_LA-KCJ Q_LA.AND.KCJ Q_LA.ANDNOT.RCCJ Q_LB Q_LC Q_NOT.O Q_NOT.RfJ Q_PACK.FP Q_PC Q_U<FRAC> Q_U<FRAC><B> MICR02 1L<02> Cross Reference 1102 t 1103 t 1104 t 1105 t 1106 t 1107 t 1108 t 1109 t 1110 t 1111 t 1112 t 1113 t 1114 t 1115 t 1116 t 1117 t 1118 t 1119 t 1120 t 1121 t 1122 t 1123 t 1124 1125 t 1126 t 1127 t 1128 t 1129 t 1130 t 1131 t 1132 t 1133 t 1134 t 1135 t 1136 t 1137 t 1138 t 1139 t 1140 t 1141 t 1142 t 1143 t 1144 t 1145 t 1146 t 1147 t 1148 1149 t 1150 1151 t 1152 t 1153 t 1154 t 1155 t 1156 t • • • Listin~ SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAM.MCR ILO+rr l:LlltK[J CLCHK[J+l ILOtLC ILOtPC ILG-[1 (]_(l-[1-1 ILll-K(J ILG-K[ J-1 (LG-LC ILll-LC-1 ILO-·MASK-1 ILll.OXHJ-K[J ILQ. OXH J. LEFT [Lil. OXT[ J. OR. D [Lil. AND• I\[ J Q_O.AND+KCJ.RIGHT Q_O.AND.K[J.RIGHT2 ILll.AND.RC[J !Lil. AND. R[ J ILQ. ANDNOT. [I !LG. ANDNOT. I\[ J ILQ. ANDNOT. RC[ J CLl~.LEFT ILG.LEFT2 l.Lll.OR.KCJ fLQ. ORNOT. MASK !LG.RIGHT 1Lll.RIGHT2 ILll.SXTLl !LO.XOR.KU Q_RCPRN).ANDNOT.O ILR Cf'RN+ 1 > Q_RCPRNtl>.AN[l.Q ILRCSC) Q_RCSRC!l>.AND.K[J ILRCCSC> ILRCCJ ILRC [ J CFRAC) l:LR[J l:LR[ J ( FRAC) U,_R[ J. ANI•. KE J Q_R[J.AN[l.K[J.RIGHT Q_R[J.ANDNOT.K[J ILR[J .OR.K[J ILSC ILSHF RCDST>-ALU F~<DST>_D R<DST>-D.SXTCJ.RIGHT R<PRN>-O+D.RLOG R <PRN >._Alli RIPRN>-D RCPRN>-DtK[J.RLOG R<PRN>-D-K[J.RLOG 1L<02) 18-JAN-82 16:19:40 MICRO~~ Cross Reference Listim.1 - M~lc: ro Names 1157 t 1158 t 11~i9 1820 t 1160 t 1161 t 1162 t 1163 t 1164 t 1165 t 1166 t 1167 t 1168 t 1169 t 1170 t 1171 t 1172 t 1174 t 1173 t 1176 t 1175 t 1177 t 1178 t 1179 t 1180 t 1181 t 1182 t 1183 t 1184 t 1185 t 1186 t 1187 t 1188 t 1189 t 1190 t 1191 t 1192 t 1193 t 1194 t 1195 t 1196 t 1197 t 1198 t 1199 t 1200 t 1.201 t 1202 t 1203 t 1205 t 1206 t 1207 t 1209 1210 1211 t 1212 t 1213 •• • 1825 1781 1763 Page C-22 F'a!!le 54 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAH.HCR 1:~ CPRN >.... D. OR• a R <PRN >,_[I[ JO R<PRN> .... KU R<PRN>-LA+KCJ.RLOG R <PRN > ,_L..A+c~ R<PRN>-LA-KCJ.RLOG R <PRN > .... LAI:: JHASK 1:~ ( Prm) ... LG RC PRN) .... PACK• FF' R<PRN>..a RCPRN>-O+KCJ.RLOG RCF'RN)_Q-K[J.RLOG R<PRN+l >... ALU R ( PRN+l) .... [1 RCPRN+1 ) __ [I.OR.a RCPRN+1 )_K[] l:\CPRN+1 > .... l..A R<PRNH > ... LC R <PFm+1 ) .. .11 i:~ <si; >.. ALU 1:~<SC> .... D RC SC >.. KC: J R<SC> .... L..A 1:~ <BC> ... LA+fl R <SC> •• LA··D R<SC)_L..C 1:~CSC> .•. O R<SF'l ) ... ALU R<SPl >-.D RCSF'l >-KLI 1:~ CSP 1 >.... PACK. FF' 1:~<SP1 >.-0 R<SP1+1 >.-LC 1:~ <SP 1+ 1 > _Q R<SRC ! 1 >.•. ALU R<SRC! l)_[l([l) R<SRC> ... AL..U R < SRC >... [1 RC!mC>._[1(£1) RCSRC)_[lfK[J.RL..OG R<SRC)_[l-K[J.RLOG RCSRC>-LC R<!mc> .... a R6_.n+K[ J. RL.OG R6 ... LMK[ J. RL.OG 1:~6-LA-KC::l. l~L.OG 1:~c <BC> .... O..·l.C RCCSC> .... ALU RC< SC) _.ALU. RIGHT RC<SC > .... II 1:~c <SC> .... 0 RCC:J&VA_D+O 1:~CC:LO 1:~C[ LO+K[ H·l 1:~C[ :J ... (>fl..C+ :I. HICR02 1LC02> 18-JAN-82 16:19:40 Cross Reference Listins - Macro Names 1214 1215 12:1.6 1217 1218 1219 l.220 1221 1222 t t 12~~3 t t t l.224 1 ,;.,A•,.,J '"1~1'"' 12:;1 6 1227 122f.I 1229 1:;!30 1231 12:·~:;! t t t t t t t t t t t t t t t t t t t t t t t t 1~~45 t 1246 t 1234 12;35 1236 12;37 12;30 1 ~~;39 124() l.241 l.243 1:?.44 1:~47 t l.248 t 1~?.49 t 1251 t 1~!52 t l.253 t 1254 t' :l.~.~55 # l2:':'i6 t 1.25'7 t l. 2~.'iB t 12~'i9 t 1.261. t 1262 t 1:;!6~:~ t 12b5 t 12b6 t 1::.!67 t 126B t 126';> t 12?1 t 1272 t :1.27:3 t 1274 t Page C-23 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OL.DSAH.HCR RC[ LO+MASK+1 RC[J_O+MASK+1.RIGHT2 RCCLO-D RCCLALll RCCLALU.LEFT RC[ LALU. LEFT:;! RCCLALU.LEFT3 HCC LALU.RIGHT RC[ LAL.LI. RIGHT2 RCCLD RCCLD<IO RC[ LI•+KC J RCCLD-KCJ RCILD.OXHJ RCILD.AND.KCJ RCCLD.AND.MASK RCCLD.ANDNOT .O RCC LD. CTX RC[ LD •LEFT RC[ LI•• LEFT3 RCCLD.OR.KrJ RCILD.OR.O RC[J_D.ORNOT.KCJ RCILD.SXH J RCILKI: J F~CC LKI J+ 1 RCI J_.K[ J. LEFT2 RCI: LKI J. L..EFT3 RCILK[J .RIGHT2 f~CILLA F~CI LL.AH.El. CTX RC[ LLA-K[ J RCI: J .. LA •AND• KI J RCILL.A.CTX F~C[ LLB F~C[ LLB .t.. EFT RCILL.C RC[ LNOT. 0 RCI LF'ACK. FF' RCILF'C: RCCLQ RCILIH1 RCILIHKCJ RCl:LQ+L.C RCILQ+F•C RCI LQfF'C+1 RCC: Lil-KI J RCC:LQ-LC RC[LQ-MASK-1 RCC: LQ. OXH J RCl:LD.AND.KIJ RC(J_Q.ANDNOT.K[J RCl:LQ.LEFT RCI LG• LEFT3 RCILQ.RIGHT 1L<02) MICR02 1B··JAN-82 16:19:40 Cross Reference ListiMI - Macro Names 1275 1276 1277 1278 12/9 1280 1281 1282 1283 1284 1285 12B6 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 130:'.'i t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t 1307 t 1.~~06 1.308 t 1309 t 1~HO t 1311 t 1312 t 1313 t 1~H4 t 1315 t 1:316 t l~H 7 I 1318 t 1319 1320 t 1321 1322 t 1323 1324 1325 t 1326 t 1327 1328 t 13:?9 t • • •• • Page C-24 F'a~~e 56 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 Page C-25 18-JAN-82 16:19:40 1L<02> MICR02 Cross Reference Listins - Macro Names 57 ; OL.DSAM.MCR HCCLD.RIGHT2 1:~CCLD.SXH:J HCC:LRLOG •RIGHT HETURNO F~ETURN1 1:~ETIJRN1C> m·:TURN100 rn:.ruRN10C HE'flJRN10E HETURN12 HETIJRN18 HETURN1F HETURN2 f~ETURN20 1:~ETIJRN24 HETURN3 HETIJRN4 RETURN40 HET'URN60 1:~ETURN61 HETURNB RETIJl~N9 HETIJRNF f~ETURNC J HLDG.EMPTn mnn HC J &VA ..• LA+K CJ H[ J &VA .... l... A· ..·K[ J HCJ&VA-LA-K[:J.RLOG f~[ J &VA •• Q-K CJ HCLO H[LO+L.Et+1 H[J ... 0-1 HCLO-D HCLO-KC:J H[ LO-.. l..£1 m:J ... 0 .. -11 HCLALLJ 1:~r LALIJ. LEFT HCLALU.LEFH HCLALU.RIGHT nr LALLI. RIGHT::.~ HC:J •. [1 m:J .. IHKr J HLLD+Q HCLD+D+l 1:~1: LD ..·KC J HCLD--LC-1 nr J._D-a HCLD.AND.KC::J 1:~[ ] •. II.CIR. LC: R[J_D.OR.PACK.FP H(J,_[I. OR. D f~[ LKC J m:LLA 1330 1331 1332 15 170 1591 1592 1 ~'i9;3 1:7194 15 175 1596 1597 1598 :l.:':i99 1600 1601 1602 :lb03 1604 t t t t t t t t t t t t t t t t t t t 1606 t 160~i 1607 160B 1609 161.0 1698 1699 1334 1:335 1:336 1337 L338 1339 1 :~40 1341 1;342 1 ;34;5 1:344 1;345 1:346 B47 1348 1349 1. ;550 1351. 1:352 L353 1;354 t • 13~rn t t t t t t t t t t t t t t t t t t t t t t t t t t 1:3~.)~i t 13:::i6 t 1357 t 1:s~';9 t L560 t 1:U11. t :I. :~6;.~ t 10:u 1826 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; OLDSAH.HCR ; RCl-LA+D RCJ_LA+D+1 RCJ_LA+KCJ RCJ-LA+KCJ+t RCJ_LA+KrJ.RLOG RCJ_LA+LC RCJ_LA+HASK+l RCJ_LA+O RCJ_LA-D RCJ_LA-KCJ RCJ_LA-KCJ.RLOG RCJ_LA-HASK-1 RCJ_LA-0 RCl-LA.AND.KCJ RCJ_LA.OR.D RCJ_LA.ORNOT.HASK RCJ_LB RCJ_LC RCJ_LC.RIGHT RCJ_NOT.O RCJ_NOT.D R[J_NOT.MASK RCJ_NQT.O RCJ_PACK.FP RCJ_Q RCJ_a+l RcJ_a+s RCJ_O+KCJ RCJ_O+LB RCJ_O+LC R(J_Q-D RCJ_O-D-1 R[J_O-KCJ R[J_Q-KCJ.RLOG RCJ_O-LC RCJ_O.AND.KCJ RCJ_O.ANDNOT.KCJ RCJ_O.OR.D RCJ_O.ORNOT.KCJ R(J_Q.RIGHT.l RCJ_RLOG.RIGHT.1 SC&STATE_STATE-Rfl<EXP> SC.GT.O? SC.NE.O? SC? sc_o<A> sc_O-KCJ sc_ALU sc_ALU<EXP> sc_n sc_D<EXP> SC-D<EXP><A> sc_DCEXP>CB> sc_D-KCJ sc_D.OXTCJ-KCJ MICR02 1LC02> 18-JAN-82 <7 16:19t40 Cross Reference Listins - Macro Names 1363 t 1364 t 1365 t 1366 t 1367 t 1369 t 1369 t 1370 t 1371 t 137? t 1373 t 1374 t 1375 t 1376 t 1377 t 1378 t 1379 t 1380 t 1381 t 1382 t 1383 t 1384 t 1385 t 1386 t 1387 t 1388 t 1389 t 1390 t 1391 t 1392 t 1393 t 1394 t 1395 t 1396 t 1397 t 1398 t 1399 t 1400 t 1401 t 1402 t 1403 t 1405 t 1701 t 1702 t 1703 t 1406 t 1407 t 1408 t 1409 t 1410 t 1411 t 1412 t 1413 t 1414 t 1415 t 1830 Page C-26 Pa me 59 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 Page C-27 18-JAN-82 16:19:40 MICR02 1LC02> Cross Reference Listins - Macro Names 59 ; OLDSAM.MCR sc_D.OXT[J.XOR.KCJ sc_D.AND.K[J sc_D.OR.K[J sc_D.SXTCJ sc_EALU sc_FE sc_KrJ sc_K[J.ALU sc_LA sc_LA.AND.K[J E~-LC<EXP> sc_NABS<SC-FE> sc_PSLADDR E~-0 sc_a<EXP> sc_a<EXP><B> sc_a+KrJ sc_a-KrJ SC_Q.AND.KCJ sc_o.oR.KrJ E~_Q.SXTCl sc_RCCJ E~-RCCJ<EXP> sc_RrJ sc_R[J(EXP> sc_R[J.AND.KCJ sc_sc+1 sc_sc+EXP<O><A> sc_sc+FE sc_sc+KrJ sc_sc+SHF.VAL sc_sc-FE sc_sc-KrJ sc_sc-SHF.VAL sc_sc.ANDNOT.FE sc_sc.ANDNOJ.K[J sc_sc.oR.KCJ E~-SHF.VAL sc_STATE sc_STATE.ANDNOT.K[J sc_SJATE.OR.K[J SD-NOT.SD sn_ss SET.CC<BYTE> SET.CC< INST> SET.CCCLONG> SET.CC<ROR> SET.CC<WORD) E~T.FPD SET.NEST.ERR SET.PSL.C<AMX> SET.V SIGNS? SPEC SPECG 1416 t 1417 t 1418 t 1419 t 1420 t 1421 t 1422 1423 1424 1425 1426 1427 t 1428 t 1429 t 1430 1431 1432 1433 t 1434 t 1435 1436 1437 1438 t 1439 1440 1441 1442 t 1443 1444 1445 1446 1447 1448 1449 t 1450 1451 t 1452 t 1453 t 1454 t 1455 t 1456 t 1457 1458 1612 t 1613 t 1614 t 1615 t 1616 t 1617 t 1618 # 1619 t 1620 t 1704 t 1621 1622 t ••• •• •• • ••• ••• ••• •• • • •• • SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; OLDSAM.MCR SRC.PC? SS? ss_o&sn_o ss_ALU15 ss_sn ss_ss.xoR.ALU1S&SD_ALU15 START.IB STATE<7>? STATEO? STATEl-0? STATE1? STATE2? STATE3-0? STATEJ? STATE4? STATES? STATE6? ITTATE7-4T STATE_O(A) STATE_AMX.EXP STATF_D<EXP> STATE_FE ITTATE_FIRST STATE_INNERODJ STATE_JNNERDRC STATE_K[J STATE_OUTER STATE_PREDEC STATE-G<EXP> STATE_sc.VIA.KMX STATE_SKPLONG STATE_ STATE ti STATE_STATE+FE STATE_STATE+K[J STATE_ STATE-FE STATE_STATE-K[J STATE_STATE.AN.5TOO STATE_STATE.AN.6T04 STATE_STATE.AN.DESTDBL STATE_STATE.AN.NOTPREDEC STATE_STATE,AN.PREDECZERO STATE_STATE.AN.SKPLONG STATE_STATE.ANDNOT.FE STATE_STATE.ANDNOT.K[J STATE_STATE.ANDNOT.SHF.VAL STATE_STATE.OR.ADJINP STATE-STATE.OR.DEST STATE_STATE.OR,DESTDBL STATE_STATE.OR.FE STATE_STATE,OR.FILL ITTATE_STATE.OR.FLOAT STATE_STATE.OR,K[J STATE_STATE,OR.MOVE STATE_STATE,OR.PATTl STATE_STATE,OR.PATT2 MICR02 1LC02> Cross Reference 1705 t 1706 t 1459 t 1460 t 1461 t 1462 t 1623 t 1707 t 1708 t 1709 t 1710 t 1711 t 1712 t 1713 t 1714 t 1715 t 1716 t 1717 t 1463 t 1464 t 1465 t 1466 t 1467 t 1468 t 1469 t 1470 t 1471 t 1472 t 1473 t 1474 t 1475 t 1476 t 1477 t 1478 t 1479 t 1480 t 1482 t 1403 t 1484 t 1485 t 1486 t 1401 t 1487 t 1488 t 1489 t 1492 t 1493 t 1494 t 1490 t 1495 t 1496 t 1491 t 1497 t 1498 t 1499 t 18-JAN-82 Listin~ 1777 1838 1764 1015 <7 16!19!40 - Macro Names Page C-28 Pase 60 < 7 Page C-29 16:19:40 - Macro Names 61 SAMPLE MICROPROGRAM FOR SYSTEM REVISION ; fJL.[ISAM. MCR !HOP. III BWAP[I TB.TEST'!' TEST.TB.RCHK TEST+TB.WCHK TRAP.ACC[J VA31-~·rn1 VA31 'l' VA_AL.l.J VA._fl VA •.. Il+K[J VA_[HLC VA .. DHl VA ... n. OXH HQ VA ... II. AN[INOT. K[ J VA._K[ J VA .• LA VA-.LA+r1 VA_LA+K[J ~JA •• LA+K[ H1 VA ... LA+PC VA._LA+ll VA-.LA·· .. [I VA-1.. A--K[ J VA .. LA--K[ J··l VA ... LA ..-Q VA._LA. AND. LC VA-LA.ANflNOT.K[J VA •. LB+r1. OXT IJA ... F'C VA .... a VA •• O+[I ~JA •.IHK[ J W\._O+LB VA._OH.B. PC VA ... !HL.C VA .. IHF'C VA .•. 0-K[J VA ... 0-1..B VA •.ll. ANDNOT. Kr J VA_RC[J VA .•. R[J VA .•. VAH WORD WRITE .DEST WRITE.G.[IEST Z'l' ZONEfl'l' MICR02 1LC02J Cross Reference 1624 t 1500 t 1719 t 1b26 t 1b27 t 1628 t 1721 t 1722 t 1502 t 1503 t 1!':i04 t 1!':i0:"j t 1!':i06 t 1507 t 1~i08 t 1509 t 1510 t :1.51:1. t 1512 t 151:3 1514 t 1515 t 15:1.6 t 1!':i17 t :1.518 t :1.:'.H9 t 1!':i20 t 1!'."i21 t 1522 :II: 1523 t 1~i24 t 1782 • 1525 =I= • 1526 :1.527 t :1.528 t 1529 :ft: 1.5:30 t :l.~i31 :l.~):32 1~;:·53 t t f. 15:34 t :1.53:;; t 15:M f. 1b30 t 1631 t 1632 t :1.n4 t 1 '7:,~5 t :1.809 18-JAN-82 Listin~ SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 OLDSAM.MCR MICR02 1LC02> Cross Reference lB-JAN-82 16:19:40 - ExPression Names Listin~ Page C-30 Pase 62 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 ; OLDSAH.HCR ;Location Page C-31 HICR02 1L< 02) 1 B--~IAN--82 16:19:40 Location I Line Number IndeH 0/8 0000 - 13FF Unused 1784= 1771 tJ 1408 Pa9e 1/9 2/A 3/B 4/C 5/[I 6/E 7/F 1790= 1777 1812== 1822:::: 1816= 1827== 1764 1809 1767 1838 1796= 1799= :1.833= I.I LI 1400 63 SAMPLE MICROPROGRAM FOR SYSTEM REVISION OLDSAH.HCR HICR02 1L<02> 18-JAN-82 U-code Microword Summar~ BSERCH VAX DEF EtSERCH Used Reniaininst 1400-17FF 0 15 15 1009 Words not in bo•Jnds 0 0 0 Total microwords used in memor~ u: 15 Total microwords remainins in memor~ u: 1009 Histhest address used in memor~ u: 140F <hex) < 7 16:19:40 Page C-32 Pase 64 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 OL[ISAH.HCR HICR02 1.L<02> 18-JAN-82 Error S1.11r1m1:1r\:I Pa~;~:; warninii.ls: Pass error!5: 0 0 Pass 2 warninss: Pass 2 errors: 0 0 16:19:40 Page C-33 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 THE OBJECT FILE (.ULD) C.3 ;RTOL ~RADIX 16 [1404J=0000003C19COFA1014047405 [1405J~OB00003C01BOFA0000001408 r14oeJ~ooo100Jco100FBoeoooo1409 C1409J=005C171401COF80040001400 C1400J~00192E240DCOF90802001406 [1401J~C01800381980F80440500062 [1406J=001C0020018042100010140C C1407J=0000003C0180F800000004FO C140CJ=001101000180F88800101402 [1402J=00001B3C0180F8000000140A [1403J=00001B3C0580F8001404740A [140AJ=0019201411COFA880000140D C140BJ=0019200011COFA9000001409 C140FJ=C001203C0100FADC40500062 [140DJ=004D371401COF80040001400 FIELD ACF=<71:70> CONTROL=3 NOP=O SYNC•l TRAP=2 FIELD ACM=<57!55> ABORT= I POLY.DONE=6 PWR.UP=O FIELD AD6=<47:47> IBA=1 UA=O FIELD ALU=<69:~l> A=OF A+B~5 A+B+1=4 A+B+Pf~.C=OB AtD.RlOG=6 A-B=O A-B-1n2 A-B.RLOG=l AND=On ANDNOT=9 F=OE INST.DEP~J NOTA=0A OR~oc ORNOT~7 XOR=B FIELD AMX=<Bt:BO> LA=O RAMX~1 RAMX.OXT=3 RAMX.SXT=2 FIELD BEN=<76:72> ACCEL~6 ALU=1B ALU1-0~1S Page C-34 SAMPLE MICROPROGRAM FOR SYSTEM REVISION CJ1•3 D.BYTES=18 D3-0=19 DATA+TYPE~B DECJMAL•OF EALU=12 END.DP1=B IB.0=5 IB.TEST•OB INTERRUPT=OE IR2-1=9 IRC.ROM•4 LAST.REF=ll MUL=OC NOP=O PC.MODES=9 PSL.CC=lA PSL.MODE=lC REI=OA ROR~2 6C•14 SIGNS=OD SRC.PC=OA STATCJ-0=17 STATE7-4=16 TB.TEST=1r Z=-1 FIELD DMX=<B4:B2> KMX=6 LB=3 LC=4 MASK=O PACKED.FL•2 PC=5 PC.OR.LB=l RBMX=7 FIELD CCK=<22:20> C_AMX0=6 INST.DEP•7 LOAD.UBCC•l NOP=O NZ-ALU.VC_0•5 NZ_ALU.VC_VC•6 N_AMX.Z-TST.VC_VC•3 ROR•4 SET.V=2 FIELD CID=<45:42> ACK=5 CONT•7 NOP•l READ,KMX=OB READ.SC29 WRITE.KMX=OF WRITE.SC=OD FIELD DK~<91:88> ACCEL=OA BYTE.SWAP=OB CLR=OF DAL,SC=OD DAL.SV=OE DIV=4 LEFT•5 LEFT2~1 < 7 Page C-35 SAMPLE MICROPROGRAM FOR SYSTEM REVISION NOP:::O Q:::=OC rnGHT"'6 FHGMT::?.=::2 m1F"'n ~;HF, FL.:::· 1i FIELD DT~<79:7U> BYTE="'.? INST. DEF':<~ LONG.::=O wor~n"" 1 FIELD EAL.U~<t5:13> r~=:::O A+l,,=6 A+B.:'4 A.... fl:::·~i ANDNOT 2 fl:<~ NAHD ••~ .. f1·:::7 OF(·"".1. FIELD EBMX=~t9:1B~ AMX. EXf"<~~ FE..::O KMX=l SHF, VAL.. ::::3 FIELD FEK=<24:24> L..0A[1::::1 NOP::"() FIELD FS=<42l42> CID==l MCT===O FIEl.D IBC=<95:92> BDFST===i' CLl'<•<>"=OC Cl. I~. 0 -·3 "OE CLR.0.1=::4 CLR. J:::()fl CU(, t ·-·~i, CON[l::::()F cu~. 2. 3,,,~5 FL..UGH===-~ NOP==() STAf"<T<S STOP=:::l FIELD ID.ADDR=:63:58> ACC.0::::.1.4 ACC. 1 :::J~'i i!'iCC.?=,,:L6 ACC. CS::::l? CES::::OC CL..K .Cb::::()f.i CCJMP::::J(: u.sv::::. !E UAY, TTMF""1 ESf'.'::::29 FAUL'f::::tH FPDA::::~~D lfrl.JF::::() TNTERVAL.::'-OB ISP:::::.!C KGP=<~n MAINT=::lfl NXT • PER::::ci PO.BR=24 < 7 Page C-36 SAMPLE MICROPROGRAM FOR SYSTEM REVISION POLR•3C P1BR•25 P1LR=3D PARITY=lE PCBBnJA PSL=OF a.SV=2F RXCS=4 RXDB=5 SBI.ERR=19 SBR•26 SCDD•3D SILD=lB SIR= OE SLR=3E SSP=2A SYS.ID•3 TO•JO T1•31 T2•32 T3~3J T4=34 T5=35 T6=36 T7=37 T8•38 T9•~9 TBER0=12 TBER1•13 TBUF•lO TIME.ADDR=lA TXCS=6 TXDB=7 UBREAK=21 USP=2B USTACK=20 VEGTORnOD WCS.ADDR=22 WCS.DATA•23 FIELD IEK=<31!JO> EACK=3 IACK•2 ISTR~l NOP=O ADDRESS J=<12:0> INT.B•4F8 IRD=62 SRCH•1404 SRCH.1•1409 SRCH.2=1400 SRCH.3=1406 SRCH.4=140C SRCH.5=140A SRCH.6=140D FIELD KMX=<6J:58> .1=1 .10~19 .l4=8 .18•1F .19~2E .1A=39 .1B~JB .1E~14 < 7 Page C-37 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 .1F=23 .tF00=24 .20=1D o24=3A .2B=OB .3•3 ,30~1E .3030•32 .34=0A .3F=15 .3FF=20 .4=4 o40=0C .4000=2C .50=0D .6=35 .60=29 .7=17 .7C=27 .7E~3E ,/F=16 .7FFO=OE .0~0 .80=10 .0000~11 .88=31 .9=36 .A=JD .AO=? .ao~25 .C=21 .C0=34 ,D=22 .DFCF=2F .E003=26 .EF=OF .F=1B ,F0=33 .FF=12 .FF00~13 .FFE0=2B .FFE8=1A .FFF0=1B .FFF1=2D .FFF5=38 .FFF6=37 .FFFB~1c .FFF9~2F .FFFC=3C .FFFF=30 SC•7 SP1.CON=5 SP2.CON=6 ZER0•6 FIELD MCT=<47!42> ALLOW.IB.READ=3~ EXTWRITE.P=2A INVALIDATE=24 LOCKREAD.P=3A LOCKREAD.V.NOCHK=lA LOCKREAD.V.WCHK=1C LOCKWRITE.P~2E Page C-38 SAMPLE MICROPROGRAM FOR SYSTEM REVISION < 7 LOCKWRITE.V.XCHK=OE MEH.NOP=2 READ.INT.SUM=36 READ.P=32 READ.V.IBCHK=16 READ.V.NEWPC~te READ.V.NW:HK=12 READ.V.RCHK=10 READ.V.WCHK~14 SBI.HOLD=20 SBI.HOLD+UNJAM=22 TEBT.RCHK=O TEB1.WCW<=4 VALIDATE=26 WRITE+P=2A WRITE.V.NOCHK=OA WRITE.v.wcm<=OC FIELD HSC=<29:26> CHK.CHM=1 cm<.FLT.OPR=2 CHK.ODD.ADDR~J C~R.FPD=8 CLR.NEST.ERR=OA INH.CH.ADDR=OF IRD~4 LOAD.ACC.CC=6 LOAD.STATE=5 NOP~o READ.RLOG=7 RETRY+NO.TRAP=OD RETRY.TRAP=OE SECOND.REF=OC SET.FPD=9 SET.NEST.ERR=OB FIELD PCK=<34:32> NOP=O PC+1=4 PC+2=5 PC+4=6 PC+N=7 PC-IBA=2 PC_VA=1 VA+4=3 FIELD OK=<54:51> ACCEL=OB CLR=OF D=OC DEC.CON=OA ID=OE LEFT=5 LEFf2=1 NOP=O RIGHT=6 RIGHT2=2 SHF=8 SHF.FL=9 FIELD RAHX•<77:77> D=O 0=1 FIELD RBHX=<77:77> D=1 Q=O FIELD SCK=<23:23> Page C-39 SAMPLE MICROPROGRAM FOR SYSTEM REVISION LOA[lo:1 NOf'::::O FIELD SGN=<50t48> ADD. SUB:=6 CLR. sn+ss,,.,7 LOAD.SS=! NOF'""O No·r. sri:<~ SD. FFUJM. SS:::-4 SS. FROM. SD·<~ SS. XOR. Al. IJ.:•"'; FIELD SHF=<87:B5> ALU""O 11\l..U. Iff:::J LEFT=1. LEFT3=~5 RHlHT•:::2 RIDHT:!,-::4 FIELD SI=<57:55> ASHL,,2 ASHR"'1 DIV=5 DIVD==O MUL.. ·1-:::•b MUI.. ... ::::7 ZERO<~ FIELD SMX=<17:16> AL.lYO::.~ Al..U.EXP=3 EAUJ::::O FE>1 FIELD SP0~<41:35> LOAD. LC• Sf>:6 NClF°'""O WRI n~. r..:c. SC:::7 FIELD SPO.AC=<~t:3B> LOAD.LA•=2 LOAD. LAB::.1 WRITE.RAB<~ FIELD SPO.ACN•<37:35~ Pl;:N::<~ PFm+1::::4 SC=::'i SP1+1•":6 SPl., f.lf'1::::0 SP2.SP1::::2 Sf'2. SP2"'' l FIELD SPO.ACN11~<37:35> DST .nsT::::t DST.Sf\G:::2 SC=5 SRC.OR.1=4 SRC.SRC::::() FIELD SPO.R=<41:39> LOAD. LAf1:::4 LOAD.LAB1.WRITE.RC=6 LOAI1. LC=;~ LOAD.LC.WRITF.RAB1=7 WRITE. RAB==~) WRITE.RC=:~ SPO.RAB~<38:35) FIELD Af':::OC Ff':::O[I <7 Page C-40 SAMPLE MICROPROGRAM FOR SYSTEM REVISION RO::::O R1::::1. R:.;!<;: R3::::3 R4=4 R5::::5 R6::::6 1:~7::: '7 SF<:::OE FIEl..I"I Bl·'O.RC=<3B:~:S::'i> LC.SV""8 MBIT .VA::::OF F'C: • SV:::OC: F'TE. MASK::::OF PTE .F'A=:OB F'TE. VA:,,OA SC• SV::-,()fl TO,,.,O T1::::1 T2,=2 T~:S=:<:S J'4:::·4 16::::6 T7:=·7 VA.!.')V::·:<;> FIELD SUB=<65:64> CAl...L.:::1 NOF'::::O RET:::::! SPEC<! FIELD VAK::::<25!25> l...0A[l::::1 NOf'::::O END < 7 Page C-41 APPENDIX D THE TEST PROGRAM .TITLE +PSECT BSTEST - PROGRAM TO EXERCISE BSERCH TEST MICROCODE BSTEST IOPen the terminal for output BEGIN: PUSHL tl PUSHL tO PUSHL tO PUSHL t-1 CALLS t4,FILOPN 9Allow writes 9No name 9Name len•th = 0 PTTY chanel 90Pen terminal for output. 4 Parameters PSave current XFC SCB vector. Set XFC vector to 2 for access to user microcode $CMKRNL_S ST_VEC 9Chan•e mode to kernal & set vector. BLBS RO,INITA 9Branch if no error settin• vector. $EXJT_S RO 9Exit with error status. 9lnitialize each lon•word in ARRAY with with its address. INITA: CLRL RO MOVAL ARRAY,Rl 2$: MOUL R1,CR1>+ AOBLSB t1000,R0,2$ ;start with RO eaual to the address of ARRAY minus one. Do binar~ search on 9ARRAY and check that search Produced the correct result. Increment RO b~ one Pand re-search ARRAY, checkin• the results, until RO is one more than the Phi~hest value in ARRAY MOVAL ARRAY-1,RO 9INIT COMPARAND MOVAL ARRAY,R1 9LOWER BOUND LOOP: MOVAL ARRAY+3996,R2 9UPPER BOUND +BYTE ~xFc 9INVOKE THE SPECIAL MICROCODE BEQL NOMCH 9BRANCH IF NO MATCH FOUND 0 Match. See if it should have matched. t3,RO ;should have matched if RO is MATCH: BITL ;1onsword allisned. BEOL R1CHK PUSHAB BDFND 9Push address of error messa•e PUSHL BDFNDL 9Push lenmth of error messa•e END IT ;and report error DRW •o 0 Match. See if Rl has the correct value. RO,(Rl> ;SEE IF Rt HAS THE CORRECT VALUE RlCHK: CMPL ;ALL OK BEQL BUMP ;Push address of error messase PUSHAB BDADD ;Push lensth of error messase BDADDL PUBHL ;and So report error BRW END IT P No match. See if it should not have matched. ;should not match if RO is not t3,RO NOMCH: BITL ;1on•word allisned. BNEO BUMP ;Push address of error messase PUSHAB NOMAT ;Push lensth of error messase NOMATL PUSHL 9and So report error END IT BRW 9Increment RO and branch to toP if not done. BUMP: AOBLEO tARRAY+3997,RO,LOOP THE TEST PROGRAM Page D-2 .PAGE ; All done with no errors. Report successful completion. ;Push address of completion messase PUSHAB DONE ;Push lensth of completion messase PUSHL DONEL ;output endins messa~e, restore orisinal XFC vector• and exit. ENDIT! PUS~L t-1 CALLS tJ,FILOUT PUSHL t· . ·1 CALLS tlrFILCLS $CMKRNL_S RSTOR ;chan~e mode to kernal & restore vector fEXIT_S RO ;Exit with status ;Routine to save and set a new XFC SCB vector. ST_UEC! .WORD 0 ; R4 sJets SCBB MOUL EXE$GL-SCB•R4 MOVL -x14CR4>,0LDV ;save the vector at SCBB+14Chex>. MOUL +2,-x14CR4> ;Make the new vector at SCBB+14Chex>=2 MOUL tl,RO ;Indicate success and ;return RET ;Routine to restore orisinal XFC SCB ve>:t,or. RSTOR! .WORD 0 MOUL EXE$GL_SCB•R4 ;R4 st~ts SCBB MOUL OLDU,~X14CR4J 9Restore orisinal vector MOUL tl,RO ;Indicate success and ; ret•.1rn RET .PAGE BDFND! .ASCII BDFNDL: .LONG "Search rePorts a match when it should not,• .-BDFND BDADD! .ASCII BDADDL! .LONG "Search rePorts wrons address an match." .-BDADD NOMAT! .ASCII NOMA TU .LONG "Search does not find match when it should." .--NOMAT DONE! DONEL! .ASCII .LONG "BSTEST successful completion,• .-DONE .PSECT CILDU: ARRAY,LONG • LONG 0 .LONG 0 .BLKL 1 .BLKL 1000 .LONG 0 ARRAY! .END BEGIN ;BLOCK OF 1000 LONGWORDS Page Index-1 INDEX * in constraints, 2-13 • (Period), 2-9 .ADDRESS, 2-5 .BIN, 2-15 .CASE, 2-7 .CCODE, 2-3 .CHANGE, 2-15 .CREF, 2-15 • DCODE, 2-3 • DEFAULT, 2-5 • ECODE, 2-3 .ENDIF, 2-14 .hexadecimal, 2-2 .ICODE, 2-3 • IF, 2-14 .IFNOT, 2-14 • LIST, 2-15 .LTOR, 2-2 .MCODE, 2-3 • NBIN, 2-15 .NCREF, 2-15 .NEXTADDRESS, 2-5 .NLIST, 2-15 • OCODE, 2-3 • OCTAL, 2-2 • PAGE, 2-3 • PARITY, 2-7 • RANDOM, 2-12 • REGION, 2-11 • RTOL, 2-2 .SELECT, 2-7 .SEQUENTIAL, 2-11 .SET, 2-7, 2-15 .SHIFT, 2-7 .TITLE, 2-3 • TOC, 2-3 • UCODE, 2-3 .VALIDITY, 2-6 /INITIAL, 3-6 /LIST, 2-17 /NOLIST, 2-17 /NOULD, 2-17 /ULD, 2-17 Address sets, 2-12 Address space, 2-11 Address-spaces disjoint ranges, 2-11 Allocation method of, 2-11 random, 2-12 sequential, 2-11 Arithmetic functions, 2-7 Assembler description of, 2-1 functions, 2-1 Assembler user interface, 2-16 Assembly microprogram, 2-1 Asterisk characters in constraints, 2-13 Base of numbers, 2-2 Bit direction, 2-2 Bit numbering, 2-2 Blocks in conditional assembly, 2-15 Boolean functions, 2-7 Case function, 2-7 Changing expression names, 2-15 Characters in names, 2-4 Command line MICLD, 3-5 MICR02, 2-16 Comments, 2-4 Communication for programs, 2-14 Comparison functions, 2-7 Conditional assembly, 2-14 blocks, 2-15 Constraints, 2-12 characters in, 2-13 inner, 2-13 terminating, 2-13 Contents adding entry to, 2-3 field indicator, 2-9 Continuation character, 2-10 Controlling listing format, 2-15 Page Counters, 2-9 in value-definition, 2-6 Defaults, 2-5 for jump field, 2-5 Defining address space, 2-11 field-names, 2-4 value-names, 2-6 Definitions field, A-1 macro, A-12 Di,rect ion of bit numbering, 2-2 Disjoint ranges in address space, 2-11 Entry vector, 4-2 Error messages MICLD, 3-10 Examples using MICLD, 3-6 using MICR02, 2-18 Exceptions, 4-2 Execution microprogram, 4-1 Expression-names, 2-7 changing, 2-15 setting, 2-15 Expressions, 2-7 expression-names, 2-7 field contents indicator, 2-9 function calls, 2-7 numbers, 2-7 predefined names, 2-9 value names, 2-8 Extended function call, 4-1 Faults, 4-2 Field contents indicator, 2-9 Field definitions, A-1 Field name, 2-4 Field-definitions form of, 2-4 File multiple input MICLD, 3-5 MICR02, 2-17 parameters MICLD, 3-5 MICR02, 2-17 qualifiers MICLD, 3-6 MICR02, 2-17 Functions, 2-7 MICLD, 3-1 MICR02, 2-1 Initialization pattern, 3-2 default, 3-2 Initializing wcs, 3-2 Initialization pattern file qualifier, 3-6 Instruction XFC, 4-1 Interface MICLD, 3-5 MICR02, 2-16 Jump field, 2-5 Keywords • ( Pe r i o d ) , 2 -1 5 .BIN, 2-15 .CCODE, 2-3 .CHANGE, 2-15 .CREF, 2-15 • DCODE, 2-3 .ECODE, 2-3 .ENDIF, 2-14 .HEXADECIMAL, 2-2 • !CODE, 2-3 .IF, 2-14 .IFNOT, 2-14 • LTOR, 2-2 .MCODE, 2-3 .NBIN, 2-15 • NCREF, 2-15 .NLIST, 2-15 • OCODE, 2-3 .OCTAL, 2-2 .PAGE, 2-3 .RANDOM, 2-12 • REGION, 2-11 • RTOL, 2-2 .SEQUENTIAL, 2-11 .SET, 2-15 • TITLE, 2-3 .Toe, 2-3 Index-2 Page .UCODE, 2-3 Left-bit, 2-4 Listing controls, 2-15 Li sting file qualifier, 2-17 Loader functions, 3-1 user interface, 3-5 Loading microprogram, 3-3 Macro body, 2-9 Macro definitions, A-12 parameters, 2-10 Macro names, 2-9 Memories communication among, 2-13 Memory-indicator, 2-3 Messages error MICLD, 3-10 MICLD error messages, 3-10 functions, 3-10 user interface, 3-5 MICR02 description of, 2-1 functions, 2-1 MICR02 user interface, 2-16 Microinstructions continuation character, 2-10 form of, 2-10 Microprogram assembling the, 2-1 executing the, 4-1 loading the, 3-3 Microwords, 2-11 creation of, 2-11 field-definitions, 2-4 Names, 2-4 characters in, 2-4 macro, 2-9 predefined, 2-9 value, 2-6 Number a field, 2-4 Number base, 2-2 Number, 2-7 Index-3 Operands function, 2-7 Over-loading, 3-3 Paging, 2-3 Parameters file MI CLO, 3-5 MICR02, 2-17 Parity, 2-6 Parity function, 2-7 Patching entry vector, 4-2 Pattern initialization, 3-2 Pointer field, 2-5 Predefined names, 2-~ Predefined language, 1-2 Predefinitions fields VAX 11/780, A-1 macros VAX 11/780, A-1 Program radix, 2-2 Program title, 2-3 Qualifiers, 2-5 .ADDRESS, 2-5 .DEFAULT, 2-5 .NEXTADDRESS, 2-5 .VALIDITY 2-5 Rad ix, 2-2 Random allocation, 2-12 Right-bit, 2-4 Select function, 2-7 Separators MICLD command line, 3-5 MICR02 command line, 2-17 Sequential, 2-11 Setting expression-names, 2-15 Shift function, 2-7 Sub-programs, 2-2 Subtitle or program, 2-3 Table of contents adding to , 2- 3 Page Title of program, 2-3 ULD file qualifier, 2-17 User interface MICLD, 3-5 MICR02, 2-16 Validity, 2-6 Value names, 2-6 use in expressions, 2-8 Value-definitions, 2-6 vectors entry patching, 4-2 interpretation of, 4-2 verifying installation of board, 3-1 loading procedure, 3-4 wcs' 1-1 initialization of, 3-2 WCS verification of board, 3-1 Word initialization, 3-2 Word width, 2-4 Writable control store, 1-1 Index-4 VAX-11/780 MICROPROGRAMMING TOOLS USER'S GUIDE AA-H306B-TE READER'S COMMENTS NOTE: This form is for document comments only. DIGITAL will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) service, submit your comments on an SPR form. Did you find this manual understandable, usable, and well-organized? Please make suggestions for improvement. ----··-------- ···---------------- -----------------·----·---------- . Q) .~ 0) c 0 0 Did you find errors in this manual? page number. If so, specify the error and the Please indicate the type of reader that you most nearly represent. [] Assembly language programmer [] Higher-level language programmer [] Occasional programmer (experienced) [] User with little programming experience [] Student programmer [] Other (please specify) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ Name Date _ _ _ _ _ _ _ _ _ _ __ City_ _ _ _ _ _ _ _ _ _ _ _ _ _ s t a t e - - - - - - - Zip Code _______ or Country ·--------------------------------------------------------··-· Fold llere -----------------------------------------------------------· ·---------------------------------------------- Do Not 1iear • Fold Here and Staple ----------------------------------------------- FIRST CLASS PERMIT NO. 33 MAYNARD. MAS BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILED IN THE UNITED STATES Postage will be paid by: ~nmnomn VAX CURRENT ENGINEERING 1925 ANDOVER STREET TEWKSBURY~ MASSACHUSETTS 01876
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies