Digital PDFs
Documents
Guest
Register
Log In
DEC-08-ASA
December 1969
52 pages
Original
2.0MB
view
download
Document:
dec-08-asab-d
Order Number:
DEC-08-ASA
Revision:
Pages:
52
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/dec-08-asa/dec-08-asab-d.pdf
OCR Text
PAL-D DISK ASSEMBLER PROGRAMMER’S REFERENCE MANUAL For additional copies of this document, order No. DEC-D8-ASAB-D From Program Library, Digital Equipment Corporation, Maynard, Mass. DIGITAL EQUIPMENT CORPORATION 01754 0 Price: $1.50 MAYNARD, MASSACHUSETTS lst Printing April I968 2nd Printing June I968 3rd Printing March I969 4th Printing (Rev) September I969 Your attention is invited to the last two pages of this The Reader's Comments page, when filled in manual. and returned, is beneficial to both you and DEC. All comments received are considered when documenting subsequent manuals, and when assistance is required, a knowledgeable DEC representative will contact you . The Software Information page offers you a means of keeping up-to-date with DEC '3 software . Copyright © I968, I969 by Digital Equipment Corporation Documents Referenced (available from DEC's Program Library): Introduction to Programming, C-l8 Disk Monitor System, Programmer's Reference Manual, DEC-D8—SDAB—D Time—Sharing System User's Guide, DEC—T8—MRFB-D TSS/8 System Manager's Guide, DEC-T8—MBZA-D The following are registered trademarks of Digital Equipment Corporation, Maynard, Massachusetts: DEC PDP FLIP CHIP FOCAL DIGITAL COMPUTER LAB ' PREFACE PAL-D, one oF the PDP-8 Family assembly programs, is designed For use on any P’DP-8 Family computer with disk or DECtape secondary storage. It is loaded/optionally stored on disk as a permanently resident utility program and reproduced in core image as required, under control oF the PDP-8/I Disk Monitor, or the TSS/8 Time-Sharing Monitor. PAL-D produces a binary coded obiect program after two passes of the symbolic coded source program . An optional third pass produces a listing oF the source program and the assembler-generated binary code expressed as Four-digit octal values. Along with the standard assembly functions PAL-D offers double precision integers, floating point constants, arithmetic and Boolean operators, literals, text Facilities and automatic oFF-page linkage genera- tion as standard Features. It is assumed that the reader is Familiar with assembly language programming. For an elementary approach to this type oF programming, we recommend DEC's publication, No. C-l8, "Introduction to Programming" available From the Program Library, Digital Equipment Corporation, Maynard ,. Massachusetts . CONTENTS Page CHAPTER 1 INTRODUCTION PAL-D Language Syntax Legal Characters LLbbwabL {nip-l:- Illegal Characters Format Effectors Statements Labels szw—t CON—I 014:- Operators Operands Comments Symbols Symbol Distinction Symbolic Addresses Symbolic Operators Symbolic Operands Symbol Tables Numbers 1.5.1 Arithmetic and Logical Operators 1.5.2 Evaluating Expressions 1.6 Address Assignments 1.6.1 Current Address Indicator 1.6.2 Indirect Addressing 1.6.3 Autoindexing 1.6.4 Literals 1.7 Instructions 1.7.1 Memory Reference Instructions 1.7.2 Augmented Instructions C HAPTER 2 PSEUDO-OPERATORS 2.1 Current Location Counter 2-1 2.2 Extended Memory 2-1 2.3 Radix Control 2-2 CONTENTS (Cont) Page 2.4 Listing Control 2-2 2.5 Text Facility 2-2 2.6 End of Program 2-3 2.7 End of File 2-3 2.8 Altering the Symbol Table 2-3 2.8.I Internal Representation 2-4 CHAPTER 3 PROGRAM PREPARATION AND ASSEMBLER OUTPUT 3.] Program Tape 3-I 3.2 Assembly 3-2 3.2.1 Pass I 3-2 3.2.2 Pass 2 3-2 3.2.3 Pass 3 LOADING AND ASSEMBLING PROCEDURES C HAPTER 4 4.] Disk Monitor System 4—1 4.1.] Loading 4-1 4.1.2 Saving 4-2 4.1.3 Assembling 4-2 4.2 TSS/8 Monitor System 4-5 CHAPTER 5 ERROR DIAGNOSTICS APPENDIX A USA SCII CHARACTER SET APPENDIX B SYMBOL LIST CHAPTER I INTRODUCTION PAL-D, the acronym forfirogram Assembly _|_._anguage for the _D_isk, is the symbolic assembly program designed primarily for the 4K PDP-8 family of computers with disk or DECtape secondary storage operated in either stand-alone or time-shared mode. The PAL-D Assembler makes machine language programming easier, faster, and more efficient. Basically, the Assembler processes the programmer's source program statements by translating mnemonic operation codes to the binary codes needed in machine instructions, relating symbols to numeric values, assigning absolute core addresses for program instructions and data, and preparing an output listing of the program, which includes notification of any errors detected during the assembly process. The PAL-D Assembly language is the same under both the Disk Monitor System and the TSS/8 Monitor (time-sharing) System. The assembly system includes the disk version of the Symbolic Tape Editor for altering or editing the source language tape, the Disk Debugging technique for debugging the obiect program by communicating with it in the source language, and various other utility programs. PAL-D requires the minimum configuration for disk or DECtape systems (see Disk Monitor System, DEC-D8-SDAB-D) or time sharing systems (see Time-Sharing System User's Guide, DEC-T8-MRFB-D), and additionally can utilize the high-speed reader/punch and up to three additional D532 disk units. I .I PAL-D LANGUAGE The PAL-D Assembler is compatible with the PAL III Assembler. fol lowing additional features However, PAL-D has the . Operators Symbols and integers may be combined by using the operators +Addition —Subtraction Literals 8. Boolean AND l Boolean Inclusive OR Symbolic or integer literals (constants) automatically assigned are Text Facility . Text facilities exist for single characters and blocks of text. Indirect Linkage Generation I .2 Indirect links are automatically generated for off-page referencing. SYNTAX Programs processed under PAL-D are written using USA SCII characters. a complete list of these characters with their octal code equivalents. I-I Appendix A contains 1 .2.1 Legal Characters The following characters are acceptable to PAL-D. a. The alphabetic characters ABCD. b. . .XYZ The numeric characters 0123456789 c . The special characters 1_ + Space Separates symbols and numbers (see Section 1.5.1) Plus Combines symbols or numbers Minus Combines symbols or numbers Exclamation Mark Combines symbols or numbers Carriage Return Terminates a line Tabulation Formats Symbols or numbers or source Comma Assigns Symbolic address Direct assignment of symbol values Terminates coding line (will not terminate comments) (add) — (subtract) (inclusive OR) tape output Equal Sign Semicolon Dollar Sign Indicates end of pass Asterisk Sets current location counter,- redefines origin Point Has value equal to current location counter (Period) '/ Slash & Ampersand Indicates start of comment Combines symbols or numbers Quote d . (AND) ( ) Parentheses Generates USA SCll constant Defines literal on current page I I Brackets Defines page 0 literal Ignored characters Form-Feed Indicates the end of a source logical page of program Blank Tape Used for Code 200 Used for Rubout Follows tabulation characters for Line—Feed Follows carriage return and causes tele- leader/trailer leader/trailer timing purposes printer paper to roll upward one line Since certain characters are invisible (i.e., nonprinting), the following symbols are used throughout this manual to represent their presence. L—J —4 J Space Tabulation Carriage Return 1-2 Illegal Characters 1.2.2 All characters other than those listed above are illegal when not in a comment or TEXT field and, being illegal, their occurrence causes the error message IC (Illegal Character) to be printed by PAL—D l .2 .3 . Format Effectors Tabulations are usually Used in the body of a source program to provide a neat page; they can separate fields from one another, as between a statement and a comment. For example, a line written GO, TAD TOTAL/MAIN LOOP is much easier to read if tabs are inserted to form GO, -*l TAD TOTAL—ii /MAIN LOOP Either the ”;" statement terminator. (semicolon) or "J ” (carriage return—line feed) character may be used as a The semicolon is considered identical to carriage return-line feed except that it will not terminate a comment. Example: TAD A The entire expression between the /THIS IS A COMMENT; TAD B J "/” (slash) and J (carriage return) is considered a comment. The semicolon also allows the programmer to place several lines of coding on a single line. If, for example, he wishes to write a sequence of instructions to rotate the contents of the accumulator and link six places to the right, it might look like RTR a! RTR J RTR) The programmer may place all three RTRs on a single line by separating them with the special character ";" and terminating the line with a carriage return. The above sequence of instructions can then be written RTR; RTR; RTRJ This format is particularly useful when setting aside a section of data storage for a list. l2-word list coUld be reserved by LIST, For example, a specifying the following format. 0; 0; O; O; O; O J O; O; 0; 0; 0; O J A neat printout (or program listing) makes subsequent editing, much easier than when the coding is laid OUl' in a haphazard fashion. _ debugging, and interpretation STATEMENTS i .3 PAL—D source programs are usually prepared on a Teletype, with the aid of the Editor, sequence of statements. Each statement is written on a single line and is terminated by return-line feed sequence. are not a as a carriage PAL-D statements are virtually format free; that is, elements of a statement placed in numbered columns with rigidly controlled spacing between elements, as in punched-card oriented assemblers. There are four types of elements in a PAL-D statement which are identified by the order of appearance in the statement, and by the separating, or delimiting, character which follows or precedes the element. Statements are written in the general form label, operator operand/comment The Assembler interprets and processes these statements, generating one or more binary instructions or data words, or performing an assembly process. A statement must contain at least one of these elements and may contain all four types. 1.3.1 Labels A label is the symbolic name created by the source programmer to identify the position of the statement in the program. l .3 .2. If present, the label is written first in a statement and terminated by a comma. Operators An operator may be one of the mnemonic machine instruction codes (see Appendix B), a pseudo-operation (pseudo-op) code which directs assembly processing. codes are described in Chapter 2. a or The assembly pseudo-op Operators are terminated with a space if an operand follows or with semicolon, slash, or carriage return. i .3 .3 Operands Operands are usually the symbolic address of the data to be accessed when an instruction is executed, or the input data or arguments of a pseudo-op. a statement depends on the statement operator. comment 1 .3.4‘ In each case, interpretation of operands in Operands are terminated by a semicolon, a slash if a follows, or a carriage return-line feed. Comments The programmer may add notes to a statement following a slash mark. affect assembly processing or program execution, but are useful in the program or debugging . l -4 Such comments do not listing for later analysis 1.4 Symbols The programmer may create symbols to use as statement labels, as operators, and as operands. A symbol is a string of one or more alphanumeric characters delimited by a punctuation character. A symbol contains from one to six characters from the set of 26 alphabetic characters and ten digits 0 through 9; however, the first character must be alphabetic. 1.4.1 Symbol Distinction The PAL-D Assembler makes a distinction between the types of symbols it is processing. These types are 0. Permanent symbols JMS a symbol whose value of 4000 (octal) is taken from PAL—D's permanent operation code symbol table. b. User—defined symbols HERE a user-defined symbol; when used as a symbolic address tag, its value is the address of the statement it tags (this value is assigned l .4.l .1 Permanent Symbols - by PAL-D). PAL-D has in its permanent symbol table definitions of its operation codes, operate commands, and many input—output transfer (IOT) microinstructions (see Appendix B). PAL-D's permanent symbols may be used without prior definition by the user. 1.4.1.2 User-Defined Symbols - User-defined symbols are composed according to the following rules. a. The characters must be b. The first character first be c Only the first six characters of any symbol are meaningful to PAL—D; the remainder, . alphabetic (A-Z) or numeric (0-9). alphabetic. ifany, are ignored. Note that because of the third rule above, since the seventh character is a symbol such as INTEGER would be interpreted as INTEGE ignored. Remember, if symbols of more than six characters are used, the programmer must avoid defining two apparently different symbols whose first characters are identical. For example, the two symbols GEORGE] and GEORGE2 differ only in the seventh character, thus the Assembler treats them as being the same symbol, GEORGE. When the symbol field delimiter. following the space is a user-defined symbol, the space acts as an address Example: "2117-l A, CLAJ JMP,__,A J l -5 where A is user—defined symbol with the value 2117. Address JMP 101 000 000 000 (binary representation of permanent symbol A 000 Oil 001 iii The operation codes (op codes) are written more concisely in octal JMP) (binary representation of address A) inclusively ORed to form 101 JMPA or The expression JMP A is evaluated as follows. as 001 Oil ill 5317. Symbolic Addresses l .4.2 A symbol used as a label to specify a symbolic address must appear first in the statement and must be immediately followed by a comma. defined symbol can When used in this way, a symbol is said to be defined. reference an instruction or data word at any point in the program. A symbol can A be defined as a label only once. If a programmer attempts to define the same symbol as a label again, the second or successive attempt is ignored and an error is indicated. definition. The Assembler recognizes only the first These are legal symbolic addresses: ADDR, TOTAL, SUM, The following symbolic addresses are illegal: 7ABC, LAB-—, T .4.3 (first character must be alphabetic) (comma must immediately follow label) Symbolic Operators Symbols used as operators must be predefined by the Assembler or by the programmer. statement space, has no ,label, the operator may appear first in the statement, and must be terminated by a tab, semicolon, or carriage return. TAD PAGE ZIP 1.4.4 If a The following are examples of legal operators: (a mnemonic machine instruction operator) (an Assembler pseudo-op) (legal only ifdefined by the user) Symbolic Operands Symbols used as operands must have a value defined by the user. These may be symbolic references to previously defined labels where the arguments to be used by this instruction are to be found, or the values of symbolic operands may be constants or character strings. TOTAL, The first operand, ACT ACT by the user. , TAD AC1 + TAG specifies an accumulator register, determined by the value given to the symbol The second operand references a memory location whose name or symbolic address is TAG. 1—6 1.4.5 Symbol Tables .The Assembler processes symbols in Source program statements by referencing its symbol tables which contain all defined symbols along with the binary value assigned Initially, to each symbol. the Assembler's permanent symbol tablescontains the mnemonic op codes of the machine instructions and the Assembler pseudo—op codes, as listed in Appendix B. As the source program is processed symbols defined in the source program are added to the user's symbol table. \ 1.4.5.1 Direct Assignment Statements — The programmer inserts new symbols with their assigned values directly into the symbol table by using a direct assignment statement of the form symbol: value where the value may be a number or expression. For example, ALPHA: BE TA=1 7 A direct assignment statement may also be used to give a new symbol the same value as a previously defined symbol. BETA=17 GAMMA=BETA The new symbol, GAMMA, is entered into the user's Symbol table with the value 17. The value assigned to a symbol may be changed. ALPHA=7 changes the value assigned to the first example from 5 to 7. The user may also define symbols by use of the comma. When the first symbol of a statement is terminated by a comma, it is assigned a value equal to the current location counter *100 TAG, (CLC). For example, /set CLC (origin) to 100:) CLAJ JMP A.) B, On) A, DCA B) The symbol TAG is assigned a value of 0100, the symbol B a value of 0102, and the symbol A a value of 0103. Direct assignment statements do not generate instructions or data in the obiect program. statements are 1.5 These used to assign values so that symbols can be conveniently used in other statements. NUMBERS Any sequence of numbers delimited by a punctuation character is interpreted numerically by PAL—D. , i 12 4372 The radix control pseudo—operators (pseudo-tops) indicate to the Assembler the radix to be The pseudo—op DECIMAL indicates that all numbers used in number interpretation (see Chapter 2). are to be interpreted as decimal until the next occurrence of the pseudo-op OCTAL. The pseudo-op OCTAL indicates that all numbers are to be interpreted as octal until the next occurrence of the pseudo—op DECIMAL. The radix is initially set to octal and remains octal unless otherwise specified. 1 .5.l Arithmetic and Logical Operators The arithmetic and logical operators are: + Plus 25 complement addition (modulo 4096) - 2s complement subtraction Minus (modulo 4096) ! Exclamation Mark Boolean inclusive OR (union) & 2. Boolean AND (intersection) Ampersand Interpreted as inclusive OR when used Space to separate two symbolic operators. TAG, l .5.2 Example: CLA HCLL J Evaluating Expressions Symbols and numbers (exclusive of pseudo-op symbols) may be combined by using the arithmetic and logical operators to form expressions. 1.6 Expressions are evaluated from left to right. Example: A! B A B A+B Value 0002 0003 0005 7777 0003 0002 Value Value 0007 0005 0014 0002 0007 0005 0700 0007 0707 0671 0707 0000 A—B A&B ADDRESS ASSIGNMENTS The PAL-D Assembler sets the origin, or starting address, of the source program to absolute location (address) 0200 unless the origin is specified by the programmer. As source statements are processed, PAL—D assigns consecutive memory addresses to the instructions and data words of the object program. is done by incrementing the location counter each time a memory location is assigned. l-8 This A statement which generates a single object program storage word increments the location counter by one. Another statement may generate six storage words, thus incrementing the location counter by six. Direct assignment statements and some Assembler pseudo-ops do not generate storage words and therefore do not affect the location counter. 1 .6.1 Current Address Indicator The special character current location counter. . (point or period) always has a value equal to the value of the It may be used as any integer or symbol (except to the left of an equal sign). Example: *200J JMP is equivalent to JMP 0202. . + 2.) Also, *3001 +2400! . will produce in location 0300 the quantity 2700. Consider *2200l CALL=JMS | .J 00271 The second line, CALL = JMS I ., does not increment the current location counter, therefore, 0027 is placed in location 2200 and CALL is placed in the user's symbol table with an associated value of 4600 (the octal equivalent of JMS 1.). 1 .6.2 Indirect Addressing When the character 1 appears in a statement between a memory reference instruction and an oper- and, the operand becomes the address containing the address of the statement to be executed. Consider TAD 40 which is a direct address statement, where 40 is interpreted as'the address containing the quantity to be added to the accumulator. Thus, if address 40 contains 0432, then 0432 is added to the accumulator. Now consider TAD I 40 which is an indirect address statement, where 40 is interpreted as the address of the address containing the quantity to be added to the accumulator. Thus, if address 40 contains 432, and address 432 contains 456, then 456 is added to the accumulator. When a reference is made to an address not on the same page as the reference, PAL-D sets the indirect bit (bit 3)Iof the machine instruction, generating an indirect address linkage to the off—page reference (see Paging and Off—Page Referencing, Sections 1 .7.1 .1 and 1.7.1 .2). 1-9 In the case of several off-page references to the same address, the indirect address linkage will be generated only once. Example: A, *2ll7u) CLA J *2600 I TAD _.A DC.A__.A The space preceding the user-defined symbol A acts as an address field delimiter. PAL-D will recognize that the address tag A is not on the current page (in this case 2600-2777) and will generate a link to it ln location 2600, PAL-D will place the word in the following manner. (octal equivalent of TAD l 2777) 1777 and in location 2777 (the last location on the current page) the word 2ll7 (the actual address of A) will be placed. a When it sees the second reference to A it will use the previous link word rather than creating new one. PAL—D will recognize and generate an indirect address linkage only when the address referenced is to a location on another page, not the current page. The programmer must use the character I to indicate an explicit indirect address when indirectly addressing to a location on the current page. PAL-D cannot generate a link for an instruction that is already specified as being an indirect address. In this case, PAL—D will type the error message |l (Illegal Indirect),- the error message is ignored and assembly is continued. l .6.3 Autoindexing lnterpage references are often necessary for obtaining operands when processing large amounts of data. The PDP—8 computers have facilities to ease the addressing of this data. When absolute locations 10 to 17 (octal) are indirectly addressed, the content of the location is incremented before it is used as an address and the incremented number is left in the location. This allows the programmer to address consecutive memory locations using a minimum of statements. It must be remembered that initially these locations (10 to 17) must be set to one less than the first desired address. Because of their characteristics, these locations are called autoindex registers. No incrementation takes place when locations 10 to l7 are addressed directly. Example: Statement is in location 500 Data is on the page starting at 5000 Autoindexing register 10 is used for addressing 0476 1377 DCA 10 l4lO TAD l 10 0500 / set up auto / index with 4777 / C(l 0) is incremented to 5000 before TAD (5000-l) 0477 30l0 use as 0577 4777 / address literal generated by PAL—D When the statement in location 500 is executed, the content of location 10 will be incremented to 5000 and the content of location 5000 will be added to the content of the accumulator. If the instruction TAD l 10 is re-executed, the content of location 5001 is added to the content of the accumulator, and so on. 1.6.4 Literals Symbolic and integer literals (constants) may be defined as shown below. CLA J TAD (2) J DCA INDEX J Operator and operand must always be separated with a space. The left parenthesis is a signal to the Assembler that the in the table at are stored. the top of the' current page. integer following is to be assigned a location This is the same table in which the indirect address linkages In the above example, the quantity 2 is stored in the first free location in a list beginning at the top of the current page (relative address 177), and the statement in which it appears is encoded with an address referring to that location. A literal is assigned to storage the first time it is to encountered; subsequent references will be the same location. If the programmer wishes to assign literals to page 0 rather than the current page, he must use square brackets, or [ l, in place of parentheses. Whether using parentheses or square brackets, the right closing member is optional and may always be replaced with a carriage return. TAD (777 1 1.6.4.l Nesting - Literals may be nested as shown below. *200 J TAD (TAD (30 J will generate 0200 l276 0376 1377 (literals assigned to locations 0377 0030 0377 and 0376; top of current page) This type of nesting may be carried to many levels. Literals are stored on each page starting at relative address 177 (only may be placed on page 0) . l27IO or I778 literals If literals are being generated for some nonzero page and then the origin is set to another page, the current page literal buffer is punched out during pass 2. to the previously used page, the same If the origin is reset literal will be generated if used again. If a single character is preceded by a quote (") , the 8-bit value of the USA SCII code for that character is inserted instead of taking the letter as a symbol. CLAJ Example: TAD ("A I will place the constant 0301 in the accumulator. INSTRUCTIONS l.7 There are two basic groups of instructions: memory reference and augmented. Memory reference instructions require an operand; augmented instructions do not require an operand. Memory Reference instructions l .7.l In PDP—8 computers, some instructions require a reference to memory. They are appropriately designated memory reference instructions, and take the following format. OPERATION CODES 0‘5 MEMORY PAGE ,——_._.ag_.___‘ r—H O i 2 3 b-~.r--—’ INDIRECT ADDRESSING 5 4 6 7 3 9 10 ii 4“ ‘ v ADDRESS Memory Reference Instruction Bit Assignments Bits 0 through 2 contain the operation code of the instruction to be performed (AND, or JMP) . Bit 3 tells the computer if the instruction is indirect, that TAD, DCA, JMS, or is, if the address of the instruction specifies the location of the operand, or if it specifies the location of the address of the operand. tells the computer if the instruction is referencing the current page or page zero. through ll ( 7 bits) to specify an address. This leaves bits 5 In these 7 bits, 200 octal or l28 decimal locations may be specified; the page bit increases accessible locations to 400 octal or 256 decimal. The address field of a memory reference instruction may be any valid expression. Example: Bit 4 =270 J *200 J TAD A-20 J l-l2 produces, in location 200, the word - 1250 001 which in binary is 010 101 000 which is also TAD 250. l .7.l .l P_ag_i_n_g_ — To ease the programmer's addressing problems, divides memory into sectors called pages. 0 to l77 (octal) on that page. a convention has been defined that Each page contain 200 octal locations (1 28 decimal) numbered There are 40 octal or 32 decimal pages numbered 0 to 37 (octal) examples of page numbers and the absolute and relative locations (addresses):are shown below. be borne in mind, . Some It must however, that there is no physical separation of pages in memory. Absolute Page Address 0 0 i 200 2 400 36 7400 37 7600 - - - - - Relative Address 177 0 377 O 577 O 7577 0 7777 0 - — - — - 177 177 177 177 177 The following table offers a comparison of specific absolute and relative addresses on the same page . Absolute Page Address Relative Address 0 10 10 3 l2 617 2577 l 77 31 6255 55 37 7777 l 77 Since only seven bits are necessary to address 200 octal for this function l .7.l .2 l 7 locations, bits 5 to ii are reserved . Off-Page Referencing from bit 4 of the instruction. - The page on which an absolute address is contained can be determined If bit 4 is a 0, the address refers to a location on page 0,- if bit 4 is a i, the address refers to a location on the current (same) page, that is, the some memory page as the instruction. l .7.2 Augmented Instructions Augmented instructions are divided into two groups: operate and input—output transfer microinstructions 1 .7.2.1 . Operate Microinstructions - Within the operate group there are l'WO groups of microinstructions. Group 1 microinstructions are principally for clear, complement, rotate, and increment operations and are designated by the presence of a O in bit 3 of the machine instruction word. OPERATION CODE? CLA PW.“ ,_A_fi O 2 1 3 4 (See Appendix B.) CMA ROTATE AC ANDL RIGHT ROTATE t POSITION IF A O, 2POS|TIONS IFA I A ’__»...3 ,__.&__‘ 5 6 7 8 9 10 11 \_y__..1 b-v—‘J \_V—.J EH \_.,_.I CONTAINS A 0 TO SPECIFY GROUPI CLL CML ROTATE AC AND L LEFT IAC Group 1 Operate Microinstruction Bit Assignments Group 2 microinstructions are used principally in checking the content of the accumulator and link and, based on the check, continuing to or skipping the next statement. Group 2 microinstructions are identified by the presence of a l in bit 3 and a 0 in bit ll of the machine instruction word (See Appendix B). REVERSE SKIP SENSING OF OPERAYION CODE 7 CLA SZA BITS 5,6,7 r———-&-———-\ r—*—\ r—H PM O 1 2 3 CONTAINS AI TO SPECIFY GROUP 2 4 5 SMA 6 7 SNL HLT F‘fi 11 IO 9 8 OSR CONTAINSAO TO SPEC‘CY GROUPZ Group 2 Operate Microinstruction Bit Assignments Group 1 and group 2 microinstructions can not be combined because bit 3 determines only one or the other. Within Group 2, there are two groups of skip instructions. OR group and the AND group. They may be referred to as the OR Group AND Group ' SMA SPA SZA SNA SNL SZL The OR group is designated by a 0 in bit 8, the AND group by a i in bit 8. OR and AND group instructions cannot be combined because bit 8 determines only one or the other. If the programmer does combine under which a a. legal skip instructions, it is important to note the conditions skip may occur. CR Group - If these skips are combined in a statement, the inclusive OR of the conditions determines the skip. SZA SNL The next statement is skipped if the accumulator contains 0000, or the link is a l, or both conditions exist. b. determines the AND Group — If the skips are combined in a statement, the logical AND of the conditions skip. SNA SZL The next statement is skipped only if the accumulator differs from 0000 and the link is 0. 1 .7.2.2 Input-Output Transfer Microinstructions - These microinstructions initiate operation of peripheral equipment and effect information transfer between the central processor and the input-output device (5). This is the principal function of the input-output transfer (IOT) microinstructions. B lists all valid IOT microinstructions, and each is discussed in detail in the User's Handbook. Appendix CHAPTER 2 PSEUDO-OPERATORS The programmer may use pseudo-operators (pseudo—ops) to direct the Assembler to perform certain tasks or to interpret subsequent coding in a certain manner. Some pseudo-ops generate storage words in the obiect program, other pseudo-ops direct the Assembler on how to proceed with the assembly. Pseudo-ops are maintained in the Assembler's permanent symbol table. The function of each PAL-D pseudo-op is described below. 2.] CURRENT LOCATION COUNTER The programmer may use the PAGE pseudo-op to reset the current location counter (CLC) to the first location on a specified page. PAGE without an argument, the CLC is reset to the first location on the next succeeding page. Thus, if a program is being assembled into page i and the programmer wishes to begin the next segment of his program on page 2, he need only insert PAGE, JMP .-7J as follows. (Last location used on page 1) PAGE I CLAJ PAGE n resets the CLC to the first a (First location on page 2) location of page n, where n is an integer, previously defined symbol, or a symbolic expression. Example: PAGE 2 (sets the CLC to location 400) (sets the CLC to location 1400) PAGE 6 2.2 EXTENDED MEMORY When using more than one memory bank, the pseudo-op FIELD instructs the Assembler to output a field setting. FIELD n where n is an integer, defined symbol, or a a previously symbolic expression within the range 0 S n 57. This pseudo—op causes a field setting (binary word) of the form 11 XXX 000 to be output on the binary tape where 000 §XXX S I II during pass 2. This word is interpreted by the Loader, which then begins loading information from the Loader into the new field. 2-1 RADIX CONTROL 2.3 Integers used in a source program are usually taken as octal numbers. If, however, the programmer wishes to have certain numbers treated as decimal, he may use the pseudo-op DECIMAL. DECIMAL all integers in subsequent coding are taken as decimal until the occurrence of the pseudo-op OCTAL. OCTAL 2.4 resets the radix to its original octal base. LISTING CONTROL During pass 3, a listing of the source program is printed (punched). The programmer may, however, control the output of his pass 3 listing by use of the pseudo-op XLIST. XLIST Those portions of the source program enclosed by XLIST will not appear in the pass 3 listing. TEXT FACILITY 2. 5 The pseudo-op TEXT enables the user to represent a character or string of characters in USA SCII code trimmed to six bits and packed two characters to a word. are The numerical values generated by TEXT. left—justified in the storage words they occupy, with the unused bits of the last word filled with 05. A string of text may be entered by giving the pseudo—op TEXT Followed by a space, a delimiting character, a string of text, and the same delimiting character. Example: TEXT ATEXT STRINGA The first printing character following TEXT is taken as the delimiting character, and the text string is the characters which follow until the delimiting character is again encountered. If the example above were at location 0200, the pass 3 200 2405 TE 20l 3024 XT 202 4023 as 203 2422 TR 204 l I I6 IN 205 0700 G listing would be as follows. (.__. denotes a space) NOTE With TEXT, any printing character may be used as a delimiting character; the delimiting character cannot be used in the text string. 2-2 2 .6 END OF PROGRAM The special symbol $ (dollar sign) indicates the end oF a program. counters the 2.7 When the Assembler en- $, it terminates the pass. END OF FILE The pseudo-op PAUSE signals the Assembler to stop processing the current input File. current pass is not terminated, and processing The continues when the user types CTRL/P. When processing a segmented program, the programmer must use the PAUSE pseudo-op as the last statement oF each segment (tape or File) to halt processing, giving him time to call (or insert, iF paper tape is being used) the succeeding segment oF his program. The PAUSE pseudo-op should be used only at the physical end oF a tape or File. 2.8 ALTERING THE SYMBOL TABLE PAL-D has a permanent symbol table which contains all instructions (symbols and their octal values) required by the Disk Monitor System . They are referred to as PAL-D's basic instructions or symbols, and are listed in Appendix B. When the symbolic program to be assembled requires instructions not already in the table (e.g., card reader IOT's), the table must be altered to include those instructions. PAL-D has two pseudo-ops that are used to alter the permanent symbol table: EXPUNGE deletes the entire permanent symbol table, except pseudo-ops. FIXTAB appends symbols to the table For duration oF the assembly. All symbols deFined before the occurrence oF FIXTAB are temporarily made part oF the permanent symbol table. These pseudo-ops can be used to eliminate unneeded symbols From the table, thus providing more storage For user symbols . To append the Following card reader IOT's to the symbol table, the programmer generates an ASCII tape oF: RCSF=663I RCSP=667I RCRD=6674 FIXTAB PAUSE The ASCII tape is then read into core ahead oF the symbolic program tape during pass I . The PAUSE pseudo-op stops assembly, and the Loader waits For the programmer to put the symbolic program tape into the tape reader and press CONTinue . AFter each assembly, PAL-D's permanent symbol table is restored to contain only the basic symbols . 2-3 Internal Representation 2 .8 1 . Each permanent and user-defined symbol occupies four words (locations) in the symbol table storage area, as shown below. O 2 l Word I C1 Word 2 C3 458 + C Word 3 C + C x x 5 x first 2 characters + 458 C2 458 second 2 characters 4 l'l'lll'd 2 characters 6 octal code or address Word 4 where C] C2, , . . . , C 6 represent the first character, second character, ly. (Symbols may consist of from one to six characters.) system flags. . , sixth character respective- Bits 0 and l of word 1 and bit 0 of word 2 are With a permanent symbol, word 4 contains the octal code of the symbol; with a user- defined symbol, word 4 contains the address of the symbol. represented as fol lows For example: the permanent symbol TAD is . Wordl = Word2 = 248x458+0l 04 8 x45 Word 3 = 0000 Word 4 = 1000 8 +00 = = l3458 224 8 TA or +4000 = 4224 D . flag blt (octal code for TAD) Note that the first digit of the USASCII octal code for each character is always trimmed by the assem- bler so that the character is represented using six bits of a word 324, it was trimmed to 24; A is 30l , it was trimmed to 0]; etc. . For example, USASCII code for T is CHAPTER 3 PROGRAM PREPARATION AND ASSEMBLER OUTPUT The source language tape (symbolic tape) is prepared using the Editor or an off-line ASR-33 Teletype 3.I . PROGRAM TAPE Since the Assembler readable ignores certain characters, these may be used freely to produce a more symbolic source tape. These useful characters are tab and form—feed. The Assembler will also ignore extraneous spaces, carriage return-line feed combinations, rubouts, and blank tape. The program body consists of statements and pseudo-ops. dollar sign ($). The program is terminated by the If the program is large, it may be segmented by use of the pseudo-op PAUSE. This often facilitates editing the source program since each section is physically smaller. The Assembler initially sets the origin (current location counter) of the source program to 0200. The programmer may reset the current location counter by use of the asterisk. The following two programs are identical except that format effectors were used in the second printout. *200 /EXAMPLE OF FORMAT /GENERATOR BEGIN, O/START OF PROGRAM KCC KSF/WAIT FOR FLAG .—I/FLAG NOT SET YET KRB/READ IN CHARACTER JMP DCA CHAR TAD CHAR TAD MSPACE/IS IT A SPACE? SNA CLA HLT/YES JMP BEGIN + 2/NO: INPUT AGAIN CHAR, O/TEMPORARY STORAGE MSPACE, -240/-ASCII EQUIVALENT /END OF EXAMPLE $ *200 /EXAMPLE OF FORMAT /GENERATOR BEGIN, /START OF PROGRAM 0 KCC KSF JMP .-1 /WAIT FOR FLAG /FLAG NOT SET YET 3-I /READ IN CHARACTER KRB DCA CHAR TAD CHAR /IS IT A SPACE? TAD MSPACE SNA CLA 0 /YES /NO: INPUT AGAIN /TEMPORARY STORAGE -24O /-ASCII EQUIVALENT HLT JMP BEGIN+ 2 CHAR, MSPACE, /END OF EXAMPLE $ Both of these programs will 3 .2 produce the same binary code. The second, however, is easier to read. ASSEMBLY PAL-D is a two-pass assembler with an optional third pass which produces a side-by-side assembly listing of the symbolic source statements, their octal equivalents, and assigned absolute addresses. When used with the TSS/8 time-sharing monitor the passes are invisible to the user. However, the user determines whether or not the third pass will be made by his response to PAL-D's OPTION: every (see Section 4.3.2). 3.2.] Pass 1 During pass i, PAL-D processes the source tape (or file) and places in its user's symbol table the definitions of all symbols used. The user's symbol table is printed (or punched) at the end of pass 2. If any symbols remain undefined at the end of pass I, the US (Undefined Symbol) diagnostic is printed during pass 2 when the undefined symbol is encountered (see Error Diagnostics). The symbol table is printed (or punched) in alphabetical order on either the teleprinter or high—speed punch. The punched symbol table may be used to expand DDT-8s symbol table for use in program debugging. If the program listed above were assembled, PAL—D would output the following symbol table. BEGIN 3.2.2 0200 C HAR 021 3 MSPACE 0214 Pass 2 During pass 2, PAL—D processes the source tape (or file) and generates binary output using the symbol table equivalences defined during pass I . The binary output may be loaded in core by the Disk Monitor System Binary Loader. The binary coded tape (or file) consists of leader code, an origin setting, and data words. Every occmrence in the source program of an asterisk causes a new origin setting in the binary output. At the end of the binary coded tape, a binary checksum is produced and trailer code is generated. 3—2 When using the low speed paper tape punch, and will be preceded and followed by rubouts. rubouts diagnostic messages are both typed and punched The Binary Loader will ignore everything enclosed within . 3.2.3 Pass 3 During pass 3, PAL-D processes the source tape (or tile) and prints out a side-by-side listing of the generated octal code and the original source language. the pass 3 If the program shown above were assembled, listing would be *200 /EXAMPLE OF FORMAT /GENERATOR 0200 0000 0201 6032 BEGIN, /START OF PROGRAM 0 KCC /WAIT FOR FLAG /FLAG NOT SET YET /READ IN CHARACTER 0202 6031 KSF 0203 5202 JMP 0204 6036 KRB 0205 3213 DCA CHAR 0206 1213 TAD CHAR 0207 1214 7650 TAD MSPACE SNA CLA /IS IT A SPACE? 0210 /YES .-1 0211 7402 HLT 0212 5202 JMP BEGIN+2 /NO: 0213 0000 0214 7540 CHAR, MSPACE, INPUT AGAIN /TEMPORARY STORAGE /-ASCII EQUIVALENT O -240 /END OF EXAMPLE 3-3 CHAPTER 4 LOADING AND ASSEMBLING PROCEDURES The PAL-D Assembler is furnished on punched paper tape and is loaded and stored on the disk during system build time. Loading PAL-D in a TSS/8 system, is performed by the system manager and is described in detail in the TSS/8 System Manager's Guide, DEC-T8-MBZA-D. However, the user can at any time build a new system in a Disk Monitor system; therefore, complete loading procedures are detail- ed below. 4.l DISK MONITOR SYSTEM If the Disk Monitor is not present on your disk or DECtape, build it according to instructions in the Disk Monitor System manual, DEC-D8-SDAB-D. 4. l .l Loading The assembler is incorporated in the system by loading the paper tape into core using the disk Loader. Then the assembler may be saved on the disk or DECtape . PAL-D is loaded into core in two passes as explained below. Disk system responses are under- lined; non-underlined characters represent user-supplied data. _._LOAD 1 call Loader from disk ( J indicates carriage return) *IN-R: J input to be from high speed reader; T: would indicate input from Teletype reader 3 Loader found device R: valid *OPT-2 J two-pass load is specified i: J control is to be returned to the Monitor after loading tape into care; 7600 J would also transfer control to the Monitor after loading the tape Loader is waiting for user to put paper tape in reader and type lP. I After reading tape into core, Loader waits for user to remove tape and type lP. If checksum error occurs, Monitor types ? in place of 1. Loader is waiting for user to put paper tape in reader for second pass and type lP. |—--—---— l< W >_1 < 1P >_l_< lP >_i<lP > After reading tape on second pass, Loader is waiting for user to remove tape and type TP. Again, checksum error will cause ? to be typed in place of 1. NOTE lP indicates CTRL-P, and < > indicates that the enclosed portion is not echoed (printed when the user types). 4-1 4.1.2 Saving PAL-D may be saved on the system device as a system program. This is done by typing the following: LSAVE PALD!0-7577;6200 Multipll Entry Program Page Save Name ! System Program : User Program Point The programmer may now The PAL-D Assembler is now saved as a system program on the system device. type PALD J which brings the Assembler into core for use with symbolic source programs. The user's core resident symbol table can hold Monitor System; 16010 user-defined symbols under the Disk 24510 under the TSS/8 Monitor System. This may be expanded by saving device a user file named .SYM which can be used by PAL-D to store extra symbols. symbol occupies four words. The symbol table can be expanded by 12810 or on the system Each user-defined 2008 locations (one core page) by saving a file with the Following statement. _._SAVE .SYM:0-l77;0 .J (T92 user symbols) If a larger symbol table area is needed, simply specify additional pages, where each page saved provides storage for 32 additional symbols. For example: LSAVE .SYM:0-377;0 J (224 user symbols) LSAVE .SYM:O-i777;0 .2 (416 user symbols) will save two core pages, and will save eight core pages for symbol storage . The preceding procedures are illustrated in Figure l 4.] .3 . Assembling PAL-D is transferred from the system device into core using the Monitor. One of the following methods is used depending upon the monitor type. 3.3.1 Disk Monitor System - The user begins by typing .LPALD J PAL-D requests on output file by typing fQLlL‘ The user selects the output device by typing T: J for the Teletype (low speed reader/punch), or R: J For the high speed reader/punch, or Szname J for output to the system device as file name RESPOND TO DISK MONITOR AS SHOWN BELOW ' . LOAD ) iIN-R: —— R== HIGH-SPEED READER "- Ti= LOW- SPEED READER ) HIGH-SPEED READER LOW SPEED READER WHICH READER P PLACE PAL-D TAPE IN READER" SET TAPE READER TO FREE TYPE CTRL /P PLACE PAL-D TAPE IN READER" I LOADER TYPES f TAPE READS IN AND STOPS AT TRAILER CODE LOADER TYPES TYPE CTRL /P I f I TYPE CTRL/P SET TAPE READER TO START I WAS THIS THE SECOND PASS TAPE READS IN,STOPS AT TRAILER CODE,AND COMPUTER HALTS NO ? I SET TAPE READER TO FREE PRESS CONTINUE LOADER TYPES NO I WAS THIS THE SECOND PASS TYPE * CTRL / P PLACE LEADER CODE OVER READER HEAD. MONITOR TYPES _'- TYPE LSAVE PALD !O-7577;6200) TYPE LSAVE.SYM=O-1777;O ) THIS SAVES PAL-D AS A SYSTEM PROGRAM THIS CREATES THE SYMBOL TABLE FILE ON THE DISK PAL-D IS LOADED AND READY FOR USE Figure I Loading and Saving PAL-D Using the Disk Moni’ror Sys’rem 4-3 PAL-D now types *_IL~I__and waits for the user to select the input files. Up to five input files may be specified (e.g., R:, R:, S:name, R:, R: .2 ), but in this example the user selected R: 1 input from the high speed reader/punch NOTE PAL-D checks the validity of each selected file (i .e., valid only if the file was declared when building Moni— * tor), and types for each valid file and ? for an in- valid file. When PAL-D finds an invalid file it returns control to the Monitor, in which case, the user must start again by calling PALDJ . When PAL-D is satisfied that the input file(s) is valid, it will request third pass listing Option by typing *OPT- The user may type T a) meaning listing and symbols are to be produced on R J J the Teletype, or meaning listing and symbols are desired on high speed punch, or meaning symbols only (any other character means no third pass) When the high speed punch is selected as a listing device, the alphabetic symbol table produced at the end of pass 2 is also produced on the high speed punch. PAL-D will now proceed with the assembly, pausing only when user intervention is required (i .e., placing a new paper tape in the reader, turning on the punch, etc.). On these occasions, PAL-D will type an up-arrow (i) on the Teletype to indicate user intervention is required user . When the has performed the necessary function and is ready to continue with the assembly, he types CTRL-P (which does not echo). At the end of pass 2, PAL-D outputs the user's symbol table in alphabetical order (in addition to the assembled binary output). This symbol table listing may be terminated at any time by typing CTRL-P, and PAL-D will proceed to initiate pass 3, if requested. Assembly may be terminated and control returned to the Monitor at any time by typing CTRL-C . When the assembly is complete, control will automatically be returned to the Monitor. *With the low-speed reader: set reader to FREE, place tape in reader, type CTRL/P, and then set reader to START. With the high-speed reader: place tape in reader and then type CTRL/P. 4-4 4.2 TSS/8 MONITOR SYSTEM Assembling with PAL-D in TSS/8 requires no operator intervention between passes. The sym- bol table is typed out at the end of pass two and the listing at the end of pass three. be terminated at any point by typing CTRL/C . The assembly may Control will revert from PAL-D to the Monitor program which will type out a dot and wait for the next instruction from the teletype. In the illustrations which follow, underlined characters are those typed out by the system; non-underlined characters represent user-supplied data. Time sharing assemblies are requested as follows. In response to the monitor's dot the user types the RUN (or simply R) command, a space and the name of the system program _. . R PALD J PAL-D is brought into core and signals its readiness by requesting an input file name . MM: BIN2 J The user reply in this case was BIN2, a user symbol for a source program to be assembled. PAL-D next requests the name of an output file. O_Lljf_l.fl': TYPE2 l The user response was TYPE2, the name under which the assembled program will be stored. Optionally, the user may type the RETURN key to specify no output file. OUTPUT: J This is useful in debugging. A program may be corrected and reassembled any number of times with production of an output file postponed until a satisfactory version is achieved . PAL-D's final query is whether the user wants a program listing. OPTION: There are two effective responses only: N signifying No and I (RETURN key) signifying Yes. When it receives the final response, PAL-D reads in the user source program from disk (source programs are stored prior to assembly) and proceeds with the assembly . After assembly, PAL-D returns control to the Monitor which types and waits for the user to supply the next command. NOTE When running under the Disk Monitor system PAL-D requires a dollar sign ($) as the last entry in a source program. Under the TSS/8 Monitor PAL-D does not require one but if it does not find one it types a message to warn the user that his program may not be assembled properly by an assembly program other than time-sharing PAL-D. 4-5 The following listing was reproduced from a time sharing run. It illustrates the initial dialogue, the symbol table produced at the end of pass 2 (any error messages would also appear at this point) and the listing, in octal notation, produced at the end of pass 3. 2R "QHTAL DIALOGUE PALD INPUT:BIN2 OUTPUT:TYR2 _OPT ION: kOUNT O415 CRLF O417 SYMBOL LOOP O4O6 TABLE OUT O425 REG O416 @TART O4OO /RROGRAM To TYPE OUT "123456789" *w4wfl PROGRAM USTHQG LITERALS O4OO 72OO O4O1 4217 JMS O4O2 1377 TAD (-12 O4O3 3215 DOA COUNT O4O4 1376 TAD <26O O4O5 3216 DCA REG TAD REG START: LOOP: CLA CRLF O4O6 1216 O4O7 4225 JMS OUT O41O 2216 ISZ REG O411 2215 152 COUNT O412 52O6 JMP LOOP O413 4217 JMS CRLE O414 74O2 O415 OOOO COUNT, O416 OOOO REG, O O417 OOOO GRLE, O 1375 TAD (215 4225 JMS OUT O422 1374 TAD (212 O423 4225 JMS OUT JMP I 5617 OOOO OUT, CRLF O O426 6O46 TLS O427 6O41 TSF O43O 5227 JMP O431 72OO CLA _O432 'O574 5625 JMP . .-1 1 OUT O212 O575 O215 @576 026i?) O577 7766 ZERO HLT O421 O425 FOR O O42O O424 /ASGII 385 4-6 /ASCII FOR CARRIAGE /A5011 FOR LINE FEED RETURN CHAPTER 5 ERROR DIAGNOSTICS PAL—D makes many error checks as it processes source detected, the Assembler prints an error message. language statements. When an error is The format of the error messages is ERROR CODE ADDRESS where ERROR CODE is a two-letter code which specifies the type of error, and ADDRESS is either the absolute octal address where the error occurred or the address of the error relative to the last symbolic tag (it there was one) on the current page. The programmer should examine each error indication to determine whether correction is required. PAL-D's error messages are listed and explained below. Error Code Explanation Two PAL—D'internal tables have overlapped BE can — This situation usually be corrected by decreasing the level of literal nesting or number of current page literals used prior to this point on the page. DE 7 Systems device. error - An error was detected when trying to read or write the system device; after three failures, control is re— V turned to the Monitor. . DF Systems device full - The capacity of the systems device has been exceeded; assembly is terminated and control is returned to the Monitor. IC Illegal character .a An illegal character was encountered in other than comment or TEXT field; the character is ignored and the assembly continued ID — . Illegal redefinition of a symbol — An attempt was made to give a previously defined symbol a new value by other means than the equal sign; the symbol was not redefined. IE Illegal equals — An equal sign was used in the wrong context. Examples: TAD A +=B (the expression to the left of the equal sign is not single symbol or, the expression to the right of the equal sign was not previously defined) a A +B=C II Illegal indirect not be — An off—page reference was made; a link could generated because the indirect bit was already set. 5—l Error Explanation Code Example: *200 TAD I A 1! PAGE :1 7240 :1 A, ND The program terminator, $, is missing (with TSS/8 only). PE Current nonzero page exceeded - An attempt was made to a. override a literal with an instruction, or b. override an instruction with a literal; this can be corrected by (l) decreasing the number of literals on the page or (2) decreasing the number of instructions on the page. PH Phase error - PAL-D has received input Files in an incorrect order; Assembly is terminated and control is returned to the Monitor. SE Symbol table exceeded - Assembly is terminated and control is returned to the Monitor; the symbol table may be expanded to contain up to ”84 user symbols by saving a File named .SYM on US the system device. Undefined symbol - A symbol has been processed during pass 2 that was not defined before the end of pass I ZE Page 0 exceeded - . Same as PE except with reference to page 0. APPENDIX A USA SCII CHARACTER SET Character Code Character Code Character Code A 301 0 B 302 1 260 1 241 261 " c 303 2 262 # 242 243 D 304 3 263 $ 244 E 305 4 264 % 245 F 306 5 265 & 246 G 307 6 266 ' 247 ( ) H 310 7 I 31 1 8 267 270 J 312 9 271 K 31 3 ' 250 251 * 252 + 253 254 L 314 M 315 N 316 O 31 7 P 320 Q 321 R 322 = 275 S 323 ? 277 T 324 325 [ ] 333 U V 326 BELL 207 W 327 TAB 21 1 X Y 330 331 LINE FEED 212 332 CARRIAGE-RETURN SPACE RUBOUT 215 Z , - 255 ' . . 256 / 257 : 272 ; 273 335 240 377 APPENDIX B SYMBOL LIST Mnemonic Code Operation Event Time MEMORY REFERENCE IN STRUCTION S AND 0000 TAD 1 000 ISZ 2000 DCA 3000 JMS 4000 JMP 5000 logical AND complement add increment & skip it zero deposit & clear AC jump to subroutine iUmP 25 GROUP 1 OPERATE MICROINSTRUCTIONS NOP 7000 no IAC 7001 increment AC RAL 7004 rotate RTL 7006 rotate AC & link left two RAR 7010 rotate AC & link right one RTR 7012 rotate AC & link right two CML 7020 complement link CMA 7040 complement AC CLL 7100 clear link CLA 7200 clear AC operation AC & link left one GROUP 2 OPERATE MICROINSTRUCTIONS halts the computer HLT 7402 OSR 7404 inclusive OR switch register with AC SKP 7410 skip unconditionally skip on nonzero link skip on zero link skip on zero AC skip on nonzero AC skip on minus AC skip on plus AC (zero is positive) SNL 7420 SZL 7430 SZA 7440 SNA 7450 SMA 7500 SPA 7510 COMBINED OPERATE MICROINSTRUCTIONS CIA 7041 complement & increment AC STL 71 20 set GLK 7204 STA 7240 get link (put link in AC, bit 11) set AC -1 LAS 7604 load AC with switch register link to 1 = PSEUDO-OPERATORS DECIMAL EXPUNGE FIELD FIXTAB I OCTAL PAGE —L-—L—t—-l_l PSEUDO-OPERATORS PAUSE TEXT XLIST Z Mnemonic Code Event Time Operation IOT MICROINSTRUCTIONS FOR DISK MONITOR Program Interrupt ION 6001 turn [OF 6002 turn KSF 6031 skip if keyboard/reader flag KCC 6032 clear AC & keyboard/reader flag KRS 6034 read keyboard/reader buffer KRB 6036 clear AC & read keyboard buffer, & clear interrupt on interrupt off Keyboard/ Reader . = 1 keyboard f lag Teleprinter/Punch TSF 6041 TCF 6042 6044 TPC skip if teleprinter/punch flag clear teleprinter/punch flag = 1 load teleprinter/punch buffer, select & print TLS 6046 load teleprinter/punch buffer, select & print, and clear teleprinter/punch flag High-Speed Reader (Type PC02) RSF 6011 skip if reader flag RRB 6012 read reader buffer & clear flag RFC 6014 clear flag & buffer & fetch character -"= 1 High-Speed Punch (Type PC03) PSF 6021 PCF 6022 PPC 6024 PLS 6026 1 skip if punch flag clear flag & buffer load buffer & punch character clear flag & buffer, load & punch == Disk File and Control (type DF32) DCMA 6601 DMAR 6603 clear disk memory request & interrupt flags load disk from AC, clear AC, read into care, DMAW 6605 clear interrupt flag load disk from AC, write onto disk from core, DC EA 6611 clear disk extended address & memory address extension register DSAC DEAL 6612 skip if address confirmed flag 6615 clear disk extended address & memory address DEAC 6616 extension register & load same from AC clear AC, load AC from disk extended address 1 register, skip if address confirmed flag clear interrupt flag = 1 = DFSE 6621 skip if parity error, data request late, or write lock switch flag 0 (no error) = B-2 Mnemonic Code DF SC 6622 DMAC 6626 Event Time Operation skip if completion flag I (date transfer completed) clear AC, load AC from disk memory = address register DECtape Transport (Type TU55) and Control (Type TCOI) DTRA DTCA DTXA DTSF DTRB DTLB 676i 6762 6764 6771 6772 6774 read status register A clear status register A load status register A (ON—ICON" skip on flags read status register B load status register B Memory Extension Control (Type 183) 62nI 62n2 change to data field n change to instruction field n read data field into AC 6-8 RMF 6214 6224 6244 RIB 6234 read interrupt buffer CDF CIF RDF RIF read instruction field into AC 6-8 restore memory field IOT MICROINSTRUCTIONS FOR TSS/8 MONITOR Program Interrupt IOT 6000 (See Time-Sharing System User's Guide , DEC-TB-MRFB-D .) Keyboard/Reader 603i 6032 6034 6036 skip if keyboard/reader flag 6400 640] 6030 set skip if teleprinter/punch flag clear teleprinter/punch flag TPC 6041 6042 6044 TLS 6046 SAS 6040 KSF KCC KRS KRB K58 SBC KSR = I clear AC & keyboard/reader flag read keyboard/reader buffer clear AC & read keyboard buffer, & clear keyboard flag keyboard break set buffer control flags read keyboard string Teleprinter/Punch TSF TCF = I load teleprinter/punch buffer, select & print load teleprinter/punch buffer, select & print, and clear teleprinter/punch flag send a string High-Speed Reader (Type PC02) RSF RRB RFC RRS 601 I 6012 6014 6010 skip if reader flag = I read reader buffer & clear flag clear flag & buffer & fetch character read reader string Mnemonic Event Time Operation Code High-Speed Punch (Type PC03) PSF 6021 PCF 6022 PPC PLS 6024 PST 6020 skip if punch flag 1 clear flag & buffer load buffer & punch character clear flag & buffer, load & punch punch string = 6026 DECtape Transport (Type TU55) and Control (Type TCOl) DTSF 6764 6771 DTRB 6772 DTXA load status register A . skip on Flags read status register B Program Control URT 6411 user run TOD 6412 time of day RCR 6413 return clock rate DATE 6414 Date SYN 6415 quantum synchronization STM 6416 set timer T55 6420 6421 6430 skip on TSS/8 set switch register CKS 6200 check status ASD 6440 assign device REL 6442 release device DUP 6402 duplex CON 6422 console REN OPEN 6600 6601 Open File CLOS 6602 Close File RFILE 6603 Read File P‘ROT 6604 Protect File WFILE 6605 Write File CRF 6610 Create File EXT 6611 Extend File RED 6612 Reduce File FINF 6613 File Information SIZE 6614 SEGS 6406 Segment Size Segment Count ACT 6617 6616 Account Number Who USE SSW time user File Control WHO Rename File N—IOJ PAL-D Absolute location IO to I7, I-IO INDEX Arithmetic and Logical Operators, I-8 Absolute and relative addresses, I-I3 Ampersand, I-8 Accumulator, I—I5 Boolean AND, I-8 Accumulator Register, I-6 Boolean inclusive OR, I-8 Additional features, I-I Exclamation Mark, I-8 Addition/Subtraction, 2's complement, see 25 complement, addition/subtraction Minus, I-8 Address Assignments, I-8 Autoindexing, I-IO Indirect Addressing, 1-9 Literals, 1-“ 25 complement addition/subtraction, I-8 ASCII, 2-3 Assembler, I-I, 1-4, 3—2 Location counter, 1-8 I-8 Assembly, 3-3, 4—2 Listing, 4-2 Starting address, I-8 Pass Address Field, I-IZ I, 4-2 Pass 2, 4—2 Address Indicator, Current, see Current Address Indicator Alphabetic Characters , 1-2 Altering Symbol Table, 2-3 Pass 3, 4-3 Third pass, 4-2 Asterisk, 4-I , 4-2 Augmented Instructions, I-I4 ASCII, 2-3 Basic instructions, 2-3 CONT, 2-3 Input-Output Transfer Microinstructions, I—I4, I-I5 Operate Microinstructions, I-I4 Disk Monitor System, 2-3 EXPUNGE, 2-3 Autoindexing, I-IO Absolute location IO to I7, I-IO FIXTAB, 2-3 Autoindex registers, I-IO IOT's symbol table, 2-3 Pass Plus, I-8 Space, 1-8 Current Address Indicator, I-9 Origin, Modulo 4096, 1-8 I, 2-3 Incrementation, I—II Interpage references Permanent symbol table, 2-3 AND group, 1-14, Basic instructions, 2—3 1—15 I Autoindex registers, I-IO Symbolic program, 2-3 Ampersand, I—8 , BE, 5-I - IO PAL-D INDEX (Cont) Binary coded tape, 4-2 Binary Loader, 4-3 Point or period, l-9 Current Location counter, 2-l, 4-l Binary representation, l-6 CLC, 2-l Binary word, 2-l Integer, 2-l Boolean AND, 1-8 n, 2-l Boolean inclusive OR, l—8 PAGE n, 2-l Build Monitor, 3-l PAGE, 2-l Current page, l-l2 Carriage Return (J ), l-3 Current page literal, 5-l Carriage return-line feed (as terminator), l-3 Current page literal buffer, l-l2 Central processor, l-l5 Characters, Alphabetic, see Alphabetic Chraacters ignored, see ignored characters , Legal, see Legal Characters , Numeric, see Numeric characters , Special, see Special Characters Symbols for nonprinting, see Symbols , , For nonprinting characters Checksum, 4-2 DDT-8, 4-2 DE, 5-l Debugging, 4-2 DECIMAL, 2—2 DECtape, 3-l, 4-] Defined symbol, 1-6 Checksum error, 3—1 CLC, 2-l Delimitor, 2-2 Device error, 5-l Clear, l-l4 Device full, 5-l Combined Operate Microinstructions, B-l Combining symbols and numbers, l-8 Comma, l-6 DF, 5-l DF32 Disk, 1—] D532 Disk, l-l COMMENT, l-3 Direct Assignment, l-7 Comments, l-4 Symbols, l-7 Notes, 1-4 Symbol Table, l-7 Complement, l—l4 Condition, skip, Data words, 4-2 l-l5 CONT, 2-3 Disk Debugging Tape, l-l Disk Monitor System, 2-3, 3-l Dollar Sign (33), 2-3, 4-], 5-2 CTRL/C (iC), 3-3 CTRL/P (1P), 3—3 Current Address indicator, l-9 Incrementation , 1—9 Editor, 1-4, 4-l Elements of statement, l-4 PAL-D INDEX (Cont) End of File, 2-3 Program terminator, 5-2 PAUSE, 2-3 SE, 5-2 PAUSE pseudo-op, 2-3 Source language, 5-I Segmented program, 2-3 .SYM, 5-2 End of Program, 2-3 Dollar Sign ($), 2-3 Symbol table exceeded, 5-2 Undefined symbol, 5-2 Error checks, 5-I US, 5-2 Error code, 5-l ZE, 5-2 Error Diagnostics, 4-2, 5-I Error message, 5-l, 5-2 BE, 5-l Error messages format, see Format of error messages Current page literals, 5-l Evaluating Expressions, l-8 DE, 5-I Arithmetic operator, l-8 Device error, 5-l Combining symbols and numbers, I-8 Device full, 5-l Expression evaluating, l-8 DF, 5-l Logical operator, l-8 Dollar Sign ($), 5-2 Evaluation, l-6 Error checks, 5-l Exclamation mark, l-8 Error code, 5-I EXPUNGE, 2-3 Error message, 5-I Extended Memory, 2-] Error message format, 5-l Binary word, 2-l IC, 5-I FIELD, 2-] ID, 5-I FIELD n, 2-] IE, 5-l Field setting, 2-] II, 5-l Loader, 2-] Illegal character, 5-l Pass 2, 2-] Illegal equals, 5-I Illegal indirect, 5-l FIELD, 2-l Illegal redefinition, 5-I FIELD n, 2-] Literal nesting, 5-l Fields, I-3 Nonzero page, 5-2 File, End of, see End of File Page 0 exceeded, 5-2 FIXTAB, 2-3 PE, 5—2 Format Effectors, 1-3, 4-] PH, 5-2 Carriage Return ( J ), l-3 Phase error, 5-2 Carriage return-line feed (as terminator), I-3 PAL-D INDEX (Cont) COMMENT, I-3 Indirect Addressing, 1-9 Fields, I-3 I, I-9, I—IO List, I-3 II, I-IO Semicolon (as terminator), I—3 Illegal indirect, I-IO Slash (/), 1-3 Indirect address linkage, l-9, l-IO Statement terminator, I-3 Indirect bit, I-9 Tabulations, I-3 Off-page reference, I-9, l-IO Format of error messages, 5-l Indirect address linkage, I-9, l-IO Format memory reference instruction, I-IZ Indirect bit, I-9 Input file, 3-3 General Form of statement, l-4 Input-output device, l-l5 Group I microinstructions, l—l4 Input-Output Transfer microinstructions, I-I5 Group 2 microinstructions, l-I4 Central processor, I-I5 Group I operate microinstructions, 3-] Input-output device, I-I5 Group 2 operate microinstructions, 8-] IOT, l—I5 Operation of peripheral equipment, 1-15 I, 1-9, 1-10 Instructions, I—I2 IC, 5-I Augmented instructions, l-I4 ID, 5-I Memory reference instructions, I—I2 IE, 5-l Integer, 2-I Ignored characters, I-2, 4-] Interpage references, I-IO II, I-IO, 5-I IOT, 1-5, 1-15 Illegal characters, l-3, 5-I IOT microinstructions, B-2 Comment field, I-3 IOT's symbol table, 2-3 Error message, I-3 IC, I-3 Labels, I-4, also see Symbols I-5 TEXT field, 1-3 Language, 1-] Illegal equals, 5-I Leader code, 4-2 Illegal indirect, 5-I Left parenthesis, 1-” Illegal redefinition, 5-I Legal characters, I-2 Inclusive OR, l-I5 Alphabetic characters, I-2 Increment, I-I4 Ignored characters, I-2 Incrementation, 1—9, I—II Nonprinting characters, I-2 PAL—D INDEX (Cont) Numeric characters, l-2 Off-page referencing, 1—13 Special characters, l-2 Page zero, l-lZ Link, l-l5 Paging, l-l3 List, l-3 Minus, l-8 Listing, 2-2, 4-2, 4-3 Monitor, 3-l, 3-2 Listing control, 2-2 n, page, 2-l Pass 3, 2-2 Names file, 4-l XLIST, 2-2 ND, 4-6, 5-2 Literal buffer, current page, see Current Page literal buffer Literal nesting, 5-l 1-12 Nonzero page, l-l2 Left parenthesis, l-ll Pass 2, l-l2 Nesting literals, l-ll Quote, Square brackets, l-ll 1—12 Relative address 177, 1—12 Loader , 2—l, 3~l Nonprinting characters, 1-2 Loading PAL-D, 3-l Nonzero page, 1-12, 5-2 Checksum error, 3-] Notes, l—4 CTRL/P (1P), 3-] Numbers, l-7 Loader, 3-] Arithmetic and logical operators, 1—8 Question Mark (?), 3-1 Evaluating expressions, l-8 Two-pass load, 3-] Logical Current page literal buffer, l-lZ Literals, Literals, l-ll, l-l2 Location counter, Nesting literals, 1-“ Pseudo-operators, l-8 l-8, 1-9 Radix, l-8 AND, l—l5 Radix control, l-8 Logical Operator, 1-8 Numeric characters, l-2 Low speed paper tape punch, 4-3 OCTAL, 2-2 Machine instruction, l-l4 Memory, Extended, see Octal code, 4-3 Extended Memory Memory page, 1—13 Memory Reference instructions, Off-page referencing, l-9, l-lO, l-l3 Current page, 1—13 1-12, 3-] Address Field, l-12 Current page, l-l2 Format memory reference instruction, 1-12 Memory page, Operands, 1-4 l-l3 PAL-D IND EX (Cont) Operate microinstructions, l-l4 Accumulator, l-l5 AND group, l-l4, l-l5 Clear, l-l4 Complement, l-I4 Condition skip, l-l5 Group I microinstructions, l-l4 Group 2 microinstructions Inclusive OR, l-l5 Increment, l-l4 Logical AND, l-l5 Machine instruction, l-l4 l-l4, l-l5 Rotate, i-l4 Skipping, l-l4 Operation of peripheral equipment, l-l5 Operators, l-4 Operators, Arithmetic and Logical, see Arithmetic and Logical Operators OR group, PAL III Assembler, l-l Paper tape, 3-] Paper tape punch, low speed, see Low speed paper tape punch Pass I, 2-3, 4-2 Debugging, 4-2 DDT-8, 4-2 Error Diagnostics, 4-2 Source tape, 4-2 US (Undefined Symbol), 4-2 Link, l-l5 OR group, PAL-D, definition, 1-] l-l4, l-l5 User's symbol table, 4-2 Pass 2, 1-12, 2-l, 4-2 Asterisk, 4—2 Binary coded tape, 4-2 Binary loader, 4-3 Checksum, 4-2 Data words, 4-2 Diagnostic messages, 4-3 Leader code, 4-2 Low speed paper tape punch, 4-3 ORed operation codes, l-7 Origin setting, 4-2 Origin, 1-8, 4-] Rubouts, 4-3 Origin setting, 4-2 Trailer code, 4-2 Output device, 3-2 Output file, 3-2 Pass 3, 2-1, 2-2, 4-3 Listing, 4-3 Octal code, 4-3 PAGE, 2-] Source language, 4-3 PAGE n, 2-] Source tape, 4-3 Page zero, 1-12 PAUSE, 2-3, 4-l Page 0 exceeded, 5-2 PAUSE pseudo-op, 2-3 Paging, l-l3 PE, 5-2 Absolute and relative addresses, l-l3 PAL-D Assembler, 3-2 Period or point, l-9 Permanent symbol table, l-5, l-7, 2-l, 2-3 PAL-D INDEX (Cont) Saving PAL-D, 3-2 PH, 5-2 Phase error, 5—2 PAL-D Assembler, 3-2 Plus, l-8 Expanding user's symbol table, 3-2 Point or period, 1-9 Program, End of , see SE, 5-2 End of Program Program tape, 4-l Segmented program, 2-3 Semicolon (as terminator), 1-3 Asterisk, 4-] Skipping, l-l4 Current location counter, 4-] Slash( /), 1-3 Dollar sign ($), 4-] Source language, 4-3, 5-] Format effectors, 4-1 Source language tape, 4-] Ignored characters, 4-] Source programs, 1-4 Origin, 4-] Source tape, 4-2, 4-3 PAUSE, 4-] Space, 1-8 Program terminator, 5-2 Special characters, 1-2 Pseudo-op codes, l-7 Square brackets, l-ll Pseudo-operators, 1-8, 2-l, 3-1 Statements, 1-4 Pseudo-ops , 2-l , 2-2 Assembler, l-4 Comments, 1-4 Question Mark ('2), 3-] Editor, 1-4 Quote, 1-12 Elements, l-4 General Form, 1-4 Labels, l-4 Radix, 1-8, 2-2 RADIX Control, 1-3, 2-2 Operands, l-4 DECIMAL, 2-2 Operators, 1-4 OCTAL, 2-2 Source programs, l-4 Pseudo-op, 2-2 Teletype, 1-4 Radix, 2-2 Statement terminator, 1-3 Relative address l77, 1-12 Starting address, 1-8 Relative addresses, Absolute and, see Absolute String, l-5 and relative addresses Requirements, Rotate, l-l4 Rubouts, 4-3 1-] String of text, 2-2 .SYM, 3-2, 5-2 Symbol Distinction, l-5 Permanent symbols , l-5 PAL-D INDEX (Cont) User-defined symbols, l-5 String, l-5 Symbol Distinction, l-5 Symbol list, 3-] Combined operate microinstructions, 3-] Symbolic Addresses, 1-6 Group 1 operate microinstructions, B-l Sy'mbolic Operands, 1-6 Group 2 operate microinstructions, B-l Symbolic operators, 1-6 IOT microinstructions, B-2 Symbol tables, 1-7 Memory reference instructions, 3-] Symbols for nonprinting characters, 1—2 Pseudo-operators, 3-] Symbols, User-defined, see User-defined symbols Symbol table, Altering, see Altering symbol table Syntax, l-l Symbol table exceeded, 5—2 Illegal characters, 1-3 Symbol Tables, 1-7 Format effectors, l-3 Direct assignment statements, l-7 Legal characters , l-2 Mnemonic op codes, l-7 Permanent symbol table, l-7 Tables, Symbol, see Symbol tables Pseudo-op codes, l-7 Tabulations, l-3 User's symbol table, l-7 TCOl Value assigned, 1-7 Teletype, 1-4 Symbol table, User's, see User's symbol table Terminator, l-6 DECtape, l-l Symbol used as a label, 1-6 TEXT, 2-2 Symbolic addresses, l-6 Text Facility, 2-2 Comma, 1-6 Delimitor, 2-2 Defined symbol, 1-6 String of text, 2-2 Symbol used as a label, 1-6 TEXT, 2-2 Symbolic Operands, l-6 USASCII, 2-2 Accumulator register, 1-6 Third pass, 4-2 Values of symbolic operands, 1-6 Trailer code, 4-2 Symbolic operands, Values of, see Values of symbolic operands Transferring PAL-D, 3-2 25 complement addition/subtraction, l-8 Symbolic operators, 1-6 Terminator, 1-6 Symbolic program, 2-3 Symbolic tape, 4-] Symbolic Tape Editor, 1-] Symbols, l-5, l—7 Undefined symbol, 5-2 US (Undefined symbol), 4-2, 5-2 USASCII, 2-2,4-l USASCII Character Set, A-l PAL-D INDEX (Cont) User-defined symbols, l-5 User infervenfion, 3-3 User's symbol fable, 1-7, 3-2, 4-2 Using PAL-D, 3-2 Assembly, 3-3 CTRL/C (TC), 3-3 CTRL/P (1P), 3-3 Input File, 3-3 Monitor, 3-2 OUl'pUl' device, 3-2 Output file, 3-2 Transferring PAL-D, 3-2 User inferven’rion, 3-3 Value assigned, l-7 Values of symbolic operands, l-6 XLIST, 2-2 ZE, 5-2 PAL-D ASSEMBLER DEC-D8—ASAB—D READER’S COMMENTS Digital Equipment Corporation maintains a continuous effort to improve the quality and usefulness of its publications. To do this effectively we need user feedback your critical evaluation of this manual. — Please comment on this manual’s completeness, accuracy, organization, usability, and readability. Did you find errors in this manual? How can this manual be improved? DEC also strives to keep its customers informed of current DEC software and publications. Thus, the following period- ically distributed publications are available upon request. publication(s) desired. Please check the appropriate boxes for a current issue of the D Software Manual Update, a quarterly collection of revisions to current software manuals. D User‘s Bookshelf, a bibliography of current software manuals. 0 Program Library Price List, a list of currently available software programs and manuals. Please describe your position. Name Organization Street Department City State Zip or Country ————————————————— —————————————— — FoldI-lere —-—-—-——-———-—-———- DoNotTear-FoldHereandStaple— —— — — -- -— —-——- —-é —————-—{ FIRST CLASS PERMIT NO. 33 MAYNARD, MASS. BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILED IN THE UNITED STATES Postage will be paid by: EIflEflIEII Digital Equipment Corporation Software Information Services 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 i
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies