60108400_3100_Prelim_Ref Man_Jul64 60108400 3100 Prelim Ref Man Jul64
60108400_3100_Prelim_RefMan_Jul64 60108400_3100_Prelim_RefMan_Jul64
User Manual: Pdf 60108400_3100_Prelim_RefMan_Jul64
Open the PDF directly: View PDF .
Page Count: 113
Download | |
Open PDF In Browser | View PDF |
r r Control Data®3100 Computer System Preliminary Reference Manual 3100 Computer Instruction Index Mnemonic & Octal Code Name Page Mnemonic & Octal Code Name Page Unconditional Stop 5-4 SBAO 33 Subtract from AO 5-19 SJl-6 Selective Jump 1-6 5-4 RAD 34 Replace Add 5-18 RTJ Return Jump 5-5 SSA 35 Selectively Set A 5-13 Unconditional Ju'mp 5-5 SCA 5-5 LPA Selectively Complement A Logical Product A 5-13 Index J.ump, Incremental 36 37 Index Jump, Decremental 5-5 40 Store A 5-15 Compare A with Zero 5-6 STA STO 41 Store 0 5-15 Compare A with 0 5-7 SACH 42 Store A, Character 5-16 = y Skip if (0) = y b Skip if (B ) = y 5-9 SOCH 43 Store 0, Character 5-16 5-9 SWA 44 Store Word Address 5-16 5-9 STAO 45 Store AO 5-16 Skip if (A) ~ y 5-9 SCHA 46 Store Character Address 5-16 Skip if (0) ~ y Skip if (Bb)~ y 5-9 STI 47 Store Index 5-16 5-9 MUA 50 Multiply A 5-18 HLT UJP IJI 00 01 02 IJD AZJ 03 AOJ ASE 04 OSE ISE ASG 05 OSG Skip if (M 5-13 ISG MEG 06 Masked Equality Search 5-11 OVA 51 Divide A 5-18 MTH 07 Masked Threshold Search 5-12 CPR 52 Compare 5-13 SSH lSI 10 Storage Shift 5-12 --- Index Skip, Incremental 5-8 5-8 LDI MUAO 53 54 56 Inter-Register Transfers, 24 Bit Load Index Multiply AO 5-17 5-15 5-19 5-19 ISO ECHA SHA Index Skip, Decremental 11 12 Enter A, Character Address Shift A Shift 0 5-8 DVAO 57 Divide AO 5-10 FAD Floating Point Add 5-20 5-10 60 61 Floating Point Subtract 5-20 13 Shift AO 5-11 FSB *FMU 62 Floating Point Multiply 5-20 5-11 *FDV 63 5-9 *LDE 64 Floating Point Divide Load E 5-20 14 Scale AO Enter A ENO Enter 0 5-9 *STE Enter Index 5-9 *ADE Store E Add to (E) 5-22 ENI 65 66 Increase A 5-9 *SBE 67 Subtract from (E) 5-23 Increase 0 *SFE *EZJ 70 Increase Index 5-9 5-9 Shift E E Zero Jump 5-21 5-22 SHO SHAO SCAO ENA INA 1~ INO INI 5-22 5-22 Exclusive OR of A and y 5-9 *EOJ E Overflow Jump 5-22 XOO Exclusive OR of 0 and y 5-9 *SET Set 0 Register XOI Exclusive OR of Index and y 5-9 SRCE AND of A and y 5-9 SRCN AND of 0 and y AND of Index and y 5-9 5-22 3-6 3-6 3-7 3-8 3-8 3-8 3-8 3-8 XOA ANA 16 17 ANO ANI 71 Search Character Equality MOVE 72 Move Data 5-9 INPC 73 Input. Character Block to Storage Search Character Inequality LOA 20 Load A 5-14 INAC LOO 21 Load 0 5-14 74 LACH 22 Load A, Character 5-14 INPW INAW LOCH 23 Load 0, Character 5-14 OUTC 75 LCA 24 Load Complement A 5-15 OTAC LDAO 25 Load AO 5-15 LCAO 26 Load Complement AO 5-15 OUTW OTAW LDL ADA 27 Load A Logica I Add to A 5-15 --- Subtract from A Add to AQ 5-18 SBA ADAQ 30 31 32 *Trapped instructions. See also Chapters 3 and 5. 5-18 5-19 Input. Character to A Input. Word Block to Storage Input, Word to A Output. Character Block from Storage Output. Character from A 3-8 76 Output. Word Block from Storage Output. Word from A 3-8 3-8- 77 Sense, Select Interrupt and Control functions 5-24 Control Data® 3100 Computer System Preliminary Reference Manual Record of Revisions REVISION NOTES Address comments concerning this Manual to: Control Data Corporation Pub. No. 60108400 July, 1964 ©1964, Control Data Corporation Printed in the United States of America Technical Publications Department 4201 North Lexington St. Paul, Minnesota 55112 or use Comment Sheet located in the rear of this book. CONTENTS CHAPTER 1. SYSTEMS HARDWARE DESCRIPTION System Concepts................................... Summary of 3100 Characteristics............... CHAPTER 2. 1-1 1-1 3100 Computer System ............................ 1-2 Peripheral Equipment ............................... 1-7 SYSTEMS SOFTWARE DESCRIPTION 3100 SCOPE ....................................... 2-1 3100 FORTRAN .................................... 2-3 3100 COMPASS .................................... 2-1 3100 Data Processing Package ................... 2-2 3100 COBOL ........................................ 2-3 3100 Generalized Sort/Merge Program......... 2-4 PROGRAMMING FEATURES CHAPTER 3. Program Interrupts................................. Special Power Failure Interrupts................. Trapped Instructions............................... CHAPTER 4. 3-1 3-3 3-3 Integrated Register File............................ Real-Time Clock.................................... Block Operations......... .... .... . .. .. . . .. . . ..... .. 3-4 3-5 3-5 OPERATING FEATURES Displays and Indicators............................ 4-1 CHAPTER 5. Basic System....................................... 2-4 Switches " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4-3 REPERTOIRE OF INSTRUCTIONS General Information ................................ 5-1 Instructions.. . ... .. .. .. . .. .. .... . . .. . ... . .. ...... . .. 5-3 APPENDIXES A. B. C. D. 3100 Compass E. Octal-Decimal Integer Conversion Table BASIC Assembler Coding Procedure Number Systems Table of Powers of Two F. G. Octal-Decimal Fraction Conversion Table H. I. 3100 System Character Set Definition of 1/0 Interface Signals Peripheral Equipment Code FIGURES 1- 1 1-2 1-3 1-4 1-5 3-1 3-2 3-3 3-4 3-5 CONTROL DATA 3101 Desk Console Parity Bit Assignment .................. Word Addressed Instruction Format .. Character Addressed Instruction Format Storage addressing and Data Paths of Typical installation ................. Search Operation ....................... Move Operation ......................... Initial Steps of 1/0 Sequence ......... Input, Character or Word to A ...... " Output. Character or Word from A ... 1-3 1-3 1-4 1-4 1-6 3-6 3-7 3-8 3-9 3-9 3-6 Input Character Block to Storage .... 3-11 3-7 3-8 3-9 4-1 4-2 Input, Word Block to Storage ......... 3-11 Output. Character Block from Storage 3-12 Output. Word Block from Storage .... 3-12 Integrated Console ...................... 3-1 4-3 5-1 Temperature Warning Designations for Fully Expanded 3104, Front View ... 4-3 3104 Console Keyboard ................ 4-5 General Machine Code 5-2 Instruction Formats ................... 5-1 Indirect Addressing Routine ........... 5-2 TABLES 1- 1 Optional Memory Configuration ....... 1-2 Properties of Arithmetic and Control Registers .. . .. . ... . ........ . ... 1-2 1- 6 1- 10 Line Printer Characteristics ... .... . .... 1- 1 1 Printer Controller Characteristics . .. . 1-8 3-1 Interrupt Mask Bit Assignments . .. . . . . 3-2 1- 8 _ 1-3 Tape Transpo rt Characteristics ..... . .. 1-7 3 -2 Interrupt Priority................. . ..... .. 3-2 1-4 Tape Transport Controllers .. . ........ .. 1-7 3-3 Representative Interrupt Codes ...... .. 3 -3 1-5 1- 6 Card Reader Characteristics ... .. ... .. . 1-7 3-4 List of Trapped Instructions .... . .. . .. . . 3-3 3-5 Integrated Register File Assignments . 3 -4 3 -6 4-1 4 -2 4 -3 4 -4 Block Operations .... .. .. . . . . .. . . . . .. .... 3-5 Card Reader Controller Characterist ics . . . . . .. . . .. . . . .. . ..... 1- 8 1- 7 Card Punch Characteristics.. ... . .. .. ... 1-8 1- 8 Card Punch Controller Characteristics 1-8 1- 9 Paper Tape Reader Punch Characteristics ..... ... ........ . ~ -- - - --- 1- 8 Register Displays .... . ..... ... .... . ...... 4 -2 Main Console Operator Switches. . . .. 4-4 Keyboard Switches .......... .. . . ... ... . 4 -6 Maintenance Switches . . ..... . .... . . . .. 4-7 --- --------- 7 1 Systems Hardware Description System Concepts The CONTROL DATA* 3100 is a mediumsize, solid-state, general-purpose digital computing system. Advanced design techniques used in the system provide for fast solutions to data processing, scientific and real-time problems. Modular construction is utilized by 3100 computers to permit adaptation to the design requirements of exacting installations. The 3100 is program compatible to the CONTRoL DATA 3200 computer system and is consistent with the Input/Output Specification for the 3000 computer series. An integrated register file and block control system are used in all 3100 computers and trapped instructions include those pertinent to BCD, floating point, and 48-bit precision multiply and divide. A complete line of peripheral equipment may be incorporated into a 3100 system, including the following: -CONTROL DATA 601, 604 and 607 Tape Transports which are Ih-inch magnetic tape units that can handle binary or BCD data, recording at densities up to 800 bits per inch with tape speeds from 37.5 inches/second to 150 inches/second reading forward or backward. -CONTROL DATA 405 Card Reader which reads cards at a 1200 card per minute rate. -CONTROL DATA 501 Line Printer which prints 136 character lines at up to 1000 lines per minute. Also available are a paper tape reader/punch, a medium speed line printer, and an I/O typewriter. Summary of 3100 Characteristics GENERAL -Stored-program, general-purpose computer - Parallel mode -Solid-state logic - Real time clock - Program interrupt -1.0 J.lsec storage access time - Indirect addressing INPUT/.UTPWT -Standarel one 12-bit bidirectional I/O channel -Optional 3 additional 12-bit channels, or 2 additional 12-bit channels and 1 additional 24-bit channel -Data transfer rate up to 3.3 megabits/second -Mediums magnetic tape, punched cards, paper tape, printed forms COMPUTER -Complete repertoire of instructions, word and character oriented - Three index registers - Arithmetic fixed point 24-bit precision fixed point 48-bit precision add and subtract fixed point 48-bit precision multiply and divide. (trapped) floating point with 36-bit coefficient biased exponent and 1-bit coefficient sign (trapped) BCD (trapped) - Typical instruction execution time fixed point 24-bit addition, 3.5 J.ls with storage access CONSOLES -Standard integrated console with binary displays and detachable keyboard -Optional separate desk console including detachable keyboard and on line typewriter STORAGE - Magnetic core memory -Word size 24-bit words with four characters per word 4 parity bits, one per character -4,096 words/16,384 characters, basic memory size; expandable to 8,192, 16,384, or 32,768 words -1.75 J.lsec complete cycle time SOFTWARE -Operating system: 3100 SCOPE -Assembly program: 3100 COMPASS - Basic System (3104 4K memory oriented) -3100 Data Processing Package used with the assembly program under the operating system; business and I/O Macros - Business language compiler: 3100 COBOL -Scientific language compiler: 3100 FORTRAN *Registered Trademark of Control Data Corp. 1-1 3100 Computer System A 3100 computer system consists of combination logic modules selected by the customer to best fit his needs. 3104 COMPUTER The 3lO4 computer contains arithmetic and control logic to perform 24-bit precision fixed point arithmetic, 48-bit precision fixed point addition and subtraction, Boolean, character and word handling, and decision making operations. The computer win also execute BCD, floating point and 48-bit precision multiply and divide as trapped instructions. The 3lO4 computer uses a panel type console integrated with the main frame of the computer. The panel is mounted at one end of the cabinet and is equipped with binary displays, control switches, monitor loudspeaker and removable keyboard to facilitate remote operation. A 4,096 word memory and a 12-bit bidirectional data channel are also incorporated in the 3104. COMMUNICATION CHANNELS (I/O) The following I/O channels are available for 3100 computing system. 31, 06 Com munications Channel The 31.06 is a bidirectional, 12-bit, parallel data channel. Up to eight peripheral equipment controllers may be .connected in parallel to one channel. One module may be installed in the main computer cabinet. Additional modules must be contained in adjacent cabinets. A maximum of four 3106 channels may be used with any 3100 system. 3107 Communications Channel In lieu of two 3106 channels, one 3107 may be used. The 3107 is a bidirectional, buffered 12- or 24-bit data exchange communication channel. It features 12 to 24 bit assembly, disassembly and permits attachment of one to eight peripheral controllers to a 3100 system. Only one 3107 can be used per 3100 computer system. CONSOLES Two consoles are available for use in the 3100 computer system. They are electrically compatible; however, only one type may be used in a system. 1-2 I ntegrated Console The integrated console, standard on a 3104 computer, is a panel type mounted on the end of the main computer frame. This console features binary displays monitor loudspeaker and a removable keyboard for remote operation. The 3192 on-line monitor typewriter which connects directly to the computer, is ordered separately when the integrated console is used in a system. 3101 Desk Console The 3101 desk console is electrically identical to the integrated console but features a condensed display and control unit mounted above an on-line monitor typewriter included with this console. The 3101 is optional in 3100 systems. Figure 1-1 illustrates a 310 1 desk console. OPTIONAL STORAGE A customer may select a combination of magnetic core storage (MCS) modules to increase the total storage capacity of his 3104 computer system to 8,192, 16,384 or 32,768 words. The following storage modules are available: 3108 -Optional 4,096 word (16,384 characters) MCS memory module. 3109-0ptional 8,192 word (32,768 characters) MCS memory module. 3103-0ptionaI16,384 word (65,536 characters) MCS memory module. Memory configurations are shown in table 1. Table 1-1. Optional Memory Configurations Total Expanded Memory Capacity Memory Modules Required in Addition to 4K Memory in 3104 8K 16K 32K 3108 3108 and 3109 3108,3109 and 3103 STORAGE CHARACTERISTICS Storage modules in a 3104 computer system are composed of fields, consisting of 4,096 words, 28 bits per word. A particular system may have 1, 2, 4, or 8 such fields. These fields operate together as one large storage system during the execution of stored programs. Figure 1-1. Control Data 3101 Desk Console Storage Word Storage words contain 28 bits. Twenty-four of these are for information; four are for parity. Parity For parity checking purposes, each storage word is broken into four 6-bit groups, each of which has one parity bit associated with it. Figure 1-2 shows parity bit assignments . During each write cycle, a parity bit is stored along with each group. When part or all of a 27 26 25 24 23 18 17 Character 0 word is next read from storage , the appropri ate parity bit(s) accompany the word to the control section of the chassis where it is checked for a loss or gain of bits. The 3100 uses odd parity. That is, the total number of "1 's" in a character, plus the parity bit, is always an odd number. Any failure to produce the correct parity during read operations causes a memory fault indication that is followed by an immediate program halt. This halting may be avoided by use of the Disable Parity switch. An indicator light on the storage module control panel indicates a parity error. 06 05 12 11 Character 1 00 Character 2 " ' - - - - - - - - - - - - - - - - - - - - Parity "'---------------------Parity " ' - - - - - - - - - - - - - - - - - - - - - - Parity " ' - - - - - - - - - - - - - - - - - - - - - - - Parity bit bit bit bit for for for for character character character character Character 3 3 2 1 0 Figure 1-2. Parity Bit Assignments 1-3 Storage Addressing Storage Sharing Two 3104 computers may share the use of a common storage module. A switch on each storage module control panel allows the operator to give exclusive control to the right- or to the left-hand computer. A middle position on this switch actuates a two-position priority scanner. The requests are honored by storage control on a nonpriority basis. Neither computer has priority over the other. The computer being serviced by the current storage cycle relinquishes control to the awaiting computer at the end of the cycle. Either computer can there- Most instructions used with the 3100 computer refer to a unique storage word or to a character within a particular word. Word Addressing Figure 1-3 shows the format of a word addressed instruction. Character Addressing Figure 1-4 shows the format of a character addressed instruction. 23 18 17 16 15 14 00 Designators '14 13 12 11 Module Field 0-3 0-1 Co-ordinate Address within field 0000-77778 (4095) Figure 1-3. Word Addressed Instruction Format 23 18 17 16 00 m Designators Function/ / Operation (or it may specify a particular index) I 1 116 I 15 14 13 02 01 00, W---.y..----kYJ Module Field 0-3 0-1 Co-ordinate Address within field 0000-77778 (4095) Character 0-3 Figure 1-4. Character Addressed Instruction Format fore be delayed a maximum of one storage cycle. A two-position scanner within each computer determines whether main control or block control has access to the storage module; thus a similar program delay may occur within either computer. Registers Associated with Storage Two registers are associated with each storage 1-4 module: Sand Z. • The 13-bit S Register contains the address of the word being currently processed. Bit 12 specifies field 0 or field 1. Bits 00-11 specify the co-ordinates of the word. • The 28-bit Z Register is the storage restoration and modification register. Read/Write Control During a normal memory cycle, all bits of a word referenced by the (S) are read out of core storage in parallel, loaded into Z, used for some purpose, then written back into storage, intact. Five modes exist in the 3100 computer for storage modification. In all cases, assume that Z is initially in the cleared state. Single-Character Mode. Anyone character may be inhibited during the read cycle. New data is then loaded into the corresponding character position of Z and the whole (Z) is stored. Double-Character Mode. The upper, middle, or lower half of a word is inhibited during the read cycle. New data is loaded into the unfilled half of Z and the whole (Z) is stored. Triple-Character Mode. Either of the two possible triple-character groups may be inhibited during the read cycle. New data is then loaded into the corresponding character positions of Z and the whole (Z) is stored. Full- Word Mode. The whole word is inhibited during the read cycle. A new word is entered into Z and the (Z) is stored. Address Mode. The lower 15 or 17 bits of a word may be inhibited during the read cycle. A new word or character address is then loaded into Z, and the whole (Z) is stored. After all write cycles, Z is cleared unless the computer has stopped as the result of a memory parity error. 2 Shifting - A may be shifted to the right or left separately or in conjunction with O. Right shifting is open-ended; the lowest bits are discarded and the sign is extended. Left shifting is circular; the highest order bit appears in the lowest order stage after each shift; all other bits move one place to the left. 3 Control for conditional instructions - A holds the word which conditions jump and search instructions. The Q register is an allxiliary register and is generally used in conjunction with the A register. The principal functions of Q are: 1 Providing temporary storage for the contents of A while A is used for another arithmetic operation. 2 Forming a double-length register, AO. 3 Shifting to the right or left. separately or in conjunction with A. 4 Serving as a mask register for 06, 07, and 27 instructions. Both A and Q may load, or be loaded from any of the three index registers without the use of storage references. CONTROL SECTION The control section contains five operational registers. As in the arithmetic section, these registers are displayed on the console and loaded from the entry keyboard. They are the: F - program control register p- program address counter B 1 through B3 - index registers ARITHMETIC SECTION The arithmetic section of the 3100 computer consists of two operational registers. They are displayed on the console and each may be loaded from the entry keyboard. These registers are the: A - arithmetic register a- auxiliary arithmetic register The A register (accumulator) is the principal arithmetic register. Some of the more important functions of A are: 1 All arithmetic and logical operations use the A register in formulating a result. The A register is the only register with provisions for adding its contents to the contents of a storage location or another register. The program control register, F, holds an instruction during the time it is being executed. After executing an instruction, an exit, jump exit, or skip exit is performed. An exit advances the count in P by one and executes the next instruction specified by the contents of P. A jump exit executes the instruction at the storage location specified by the execution address of the jump instruction. The execution address is, in this case, entered into P and used to specify the starting location of a new sequence of instructions. A skip exit advances the count in P by two, bypassing the next sequential instruction and executing the following one. The P register is the program address counter. It provides program continuity by generating in sequence the storage addresses which contain the individual instructions. Usually at the completion 1-5 Table 1-2. Properties of Arithmetic and Control Registers Register No. of Stages Modulus Complement Notation A 24 224_1 one's additive signed* Q 24 224_1 one's additive signed Result Arithmetic F 24 224_1 ** ** ** p 15 2 15 _1 one's additive unsigned BLB3 15 2 15 _1 one's additive unsigned of each instruction, the count in P is advanced by one to specify the address of the next instruction. The three index registers, BI through B3, provide storage for quantities which are used in a variety of ways, depending on the instruction. The B registers have no provisions for arithmetic operations. In a majority of instructions they hold quantities to be added to the execution address. All address modifications are performed in the Adder. Table 1-2 is a summary of the properties of the A, Q, F, P, and B registers. A sixth operational register, closely related to the control section, is the communications register. Quantities to be entered into any of the above registers or into storage from the entry keyboard - I are temporarily held in the communications register until the transfer button is pushed. If a mistake is made while entering data into the communications register, the Keyboard Clear button may be used to clear this register. COMPUTER ORGANIZATION All modules of the 3100 computer except the console are connected in parallel to a common bidirectional data bus. The address registers of all storage modules are connected in parallel to main control by the address bus. Figure 1-5 is a block diagram of storage addressing and data paths within a typical computer installation. Storage Address S Bus T 3108 Storage Module (4K) - I r 3106 1- I ,-----, I 3104 Computer (Includes Standard 4K Memory) .-------.l I I 3101 I I Desk Console I (Optional) : L _ _ _ _ _ _ ...J Data Bus I 3106 3106 3109 Storage Module (8K) - r I 3106 4 bidirectional data channels Figure 1-5. Storage Addressing and Data Paths of Typical Installation *NOTE: The result of an arithmetic operation in A satisfies A S; 2 23 _1, since A always is treated as a signed quantity. When the result in A is zero, it is always represented by 00000000. 1-6 **NOTE: Only the lower 15 or 17 bits of F are modified, depending on whether word or character addressing is being used. The results are unsigned. Peripheral Equipment Peripheral equipment is available for handling magnetic tape, punched cards, punched paper tape, and printed forms. Other pieces of equipment for the 3100 computer system are a program controlled I/O typewriter, an incremental plotter, and a Satellite coupler. For details on any particular piece of peripheral equipment, refer to the reference manual concerning that equipment. MAGNETIC TAPE Magnetic tape is processed on either the CONTROL DATA 601, 604 or 607 Tape Transports. A variety of tape transport controllers IS available, each with a different capability. Tape Transports Table 1-3 lists the operating characteristics of the 601, 604 and the 607 Tape Transports. Tapes may be read forward or backward with both models. Tape Transport Controllers Tape transport controllers are differentiated by the number of read/write controls they contain and by the number of tape transports that they can control. Eight types are available (see table 1-4). The tape transport controllers marked by a dagger (t) will most commonly be selected for a 3100 computer system. A multi-channel controller 'may be used for buffered communication between two or more computers in a multi-computer installation. Table 1-3. Tape Transport Characteristics Characteristic 601 604 607 Tape length 2400 feet 2400 feet 2400 feet Tape width ~ ~ Tape speed Word size including one parity bit Bit density Maximum bit transfer rate -inch 37.5 inches/sec 7 bits 200. or 556 bpi 7.5 or 20.85 kc Table 1-4. Tape Transport Controllers Model Number No. of Read Write Controls Maximum No. of Tape Transports t3127 t3228 t3229 3621 3622 3623 3624 3625 3626 1 1 1 2 2 4 4 3 3 4 4 8 8 16 8 16 8 16 -inch 75 inches/sec 7 bits 200. 556. or 800 bpi 15. 41.65. or 60 kc ~ -inch 150 inches/sec 7 bits 200, 556. or 800 bpi 30. 83.3. or 120 kc PUNCHED CARDS Cards are read with a Control Data 405 Card Reader and punched with an IBM 523 or 544 Card Punch. Card Reader. Table 1-5 lists the operating characteristics of the 405 card reader. Card Reader Controllers. Two card reader controllers are available. Table 1-6 lists the characteristics of each. Both types of controllers are mounted on chassis within the 405 cabinet. Table 1-5. Card Reader Characteristics Speed - 80 column cards 1200 cpm Speed - 51 column cards 1600 cpm Reading method photo-electric. column-by-column Verification method double read - comparison Card separation and picking method pneumatic Card capacity- main tray 4000 cards 240 cards Card capacity - reject tray 1-7 Table 1-6. Card Reader Controller Characteristics Characteristics BCD Conversion Checking Full card buffer No. of read controls 3248 3649 Yes Yes No 1 Yes Yes Yes 2 Card Punches. Table 1-7 lists the operating characteristics of the 523 and 415 card punches. Card Punch Controllers. Two types of card punch controllers may be used. Each type is mounted in its own peripheral equipment cabinet. Table 1-8 lists the controller characteristics. PUNCHED PAPER TAPE A unit frequently used for reading programs into storage and for recording data from storage is the 3691 Paper Tape Reader Punch. Table 1-9 lists the characteristics of this device. Table 1-7. Card Punch Characteristics Characteristics 523 415 Speed-80 column cards Card hopper capacity 100 cpm 800 cards 250 cpm 1200 cards Punch method Mechanical. row-by-row Table 1-8. Card Punch Controller Characteristics Characteristics Checking Full card buffer No. of Write controls 3245 3644 No No 1 Yes Yes 2 all 3100 computer systems. The printer and con:troller characteristics are listed in Tables 1-10 and 1-11. Table 1-10. Line Printer Characteristics Table. 1-9. Paper Tape Reader Punch Characteristics 501 Characteristics Printing speed Reading speed Punching speed No. of read/write controls 350 characters/sec 110 characters/sec 64 No. of columns 120 1 PROGRAM CONTROLLED I/O TYPEWRITER The 3692 Program Controlled I/O Typewriter has one read/write control. It differs from the online 3192 typewriter in that it must be connected to the computer via a 3106 Communication Channel. INCREMENTAL PLOTTER The 3293 Incremental Plotter can make 300 .01 inch steps per second. Form width is 11 inches. PRINTED FORMS The 501 High Speed Line Printer is available for 1-8 1000lpm No. of characters Table 1-11. Printer Controller Characteristics Characteristics No. of write controls Full line buffer 3256 3659 1 2 Yes Yes SATELLITE COUPLER The 3682 Satellite Coupler permits direct connection between any two standard 12-bit bidirectional channels, or channel converters. With the addition of a 3681 Data Channel Converter, a 160-A Computer may be used as a satellite to the 3100 computer system. 2 Systems Software Description There are various programming language techniques which facilitate writing programs for the CONTROL DATA 3100 Computer System. The following pages contain a synopsis of the methods listed below. e 3100SCOPE Monitor System e 3100 COMPASS Assembler e 3100 DATA PROCESSING PACKAGE e 3100 COBOL Macro Instructions, Generalized 1/0 Business Language Compiler e 3100 FORTRAN Scientific Language Compiler e 3100 GENERALIZED SORT/MERGE PROGRAM Operates Under 3100 SCOPE e BASIC SYSTEM Basic Assembler, Basic FORTRAN II 3100 SCOPE SCOPE is the operating system for the CONTROL DATA 3100 Computer. Modular in structure, the system provides efficient job processing while minimizing its own memory and time requirements. Programming with the operating system is simplified by the use of control cards which are included with program decks. Among the functions performed by SCOPE are the following: EQUIPMENT ASSIGNMENTS • logical unit references • physical unit assignment at run time • drivers for all standard peripheral equipment • system units which facilitate job processing and minimize monitor programming DEBUGGING AIDS • extensive diagnostics JOB PROCESSING • processes stacked or single jobs • controls I/O and interrupt requests • monitors compilations and assemblies • loads and links object subprograms • stores accounting information • initiates recovery dumps • prepares overlay tapes • octal corrections • snapshot dumps • recovery dumps LIBRARY PREPARATION AND EDITING • prepare a new library • edit an existing library • list the contents of a library 3100 COMPASS COMPASS is the comprehensive assembly system for the CONTROL DATA 3100 Computer. Operating under 3100 SCOPE, it assembles relocatable machine language programs. The program may consist of subprograms, each of which may be independently assembled. Refer to Appendix A for 3lO0 COMPASS coding procedures. COMPASS source language includes the following features: Operation codes Machine operations are written as one or more mnemonic or octal subfields. Addressing Expressions, used as addresses, may represent either word or character locations. Expressions consist of symbols, constants, and special characters connected by and -. + Data storage A data area. shared by subprograms, may be specified and loaded with data in the source program. Common storage A common area may be designated to facilitate communication among subprograms. Data definitions Constants may be defined as octal. decimal. double-precision, integer or floating-point numbers; BCD words, BCD characters; or contiguous strings of bits. Library access Library routines may be called by reference to their entry points or by inclusion of macros in the source program (data processing macros). Listing control The format of the assembly listing may be controlled by pseudo instructions. Diagnostics Diagnostics for source program errors are included with the output listing. Macro instructions Macros may be defined in the source program or entered into the library; the sequence of instructions will be inserted whenever the macro name appears in the operation field. THE ASSEMBLER The 3100 COMPASS assembly program converts programs written in 3100 COMPASS source language into a form suitable for execution under the 3100 SCOPE operating system. Source program input may be on punched cards or in the form of card images on magnetic or paper tape. The output from the assembler includes an assembly listing and a relocatable binary object program on punched cards or magnetic tape. 2-1 EQUIPMENT CONFIGURATION The assembly system, which is stored on the SCOPE library tape, is designed to operate on a 3100 computer with a minimum of 8,192 words of storage. In addition to the SCOPE library unit, the following input! output equipment is required: Input unit: card reader, magnetic tape, or paper tape Scratch unit: magnetic tape (may also be used for output) Listable output unit: magnetic tape or printer Object program output unit: magnetic tape or card punch PROGRAM STRUCTURE Source programs may be divided into subprograms which are assembled independently. All location symbols except COMMON and DATA symbols are local to the subprogram in which they appear, unless they are declared as external symbols. Locations which will be referenced by other subprograms are declared as entry points. For example, if subprogram IGOR references locations KIEV and MINSK in subprogram DEMETRI, KIEV and MINSK must be declared external symbols in subprogram IGOR and entry points in subprogram DEMETRI. The links among subprograms are associated by the SCO PE loader. As each subprogram is loaded, all external symbols and entry points are entered into a symbol table. When an external symbol is found which matches an entry point already entered in the table, or an entry point is found which matches an external symbol, linkage between the two points is established. If any external symbols are not matched with entry points after the last subprogram is loaded, the library tape is searched for routines with the names of unmatched symbols. If these routines are found, they are loaded and linked to the other subprograms. If external symbols remain for which there has been no corresponding entry, the job is terminated and an error message written by the system. 3100 Data Processing Package The Data Processing Package is composed of a set of data processing routines and a generalized input/ output system. DATA PROCESSING ROUTINES The data processing routines, called macros, are used in COMPASS assembly language programs to do particular data handling jobs; included are the following: TRANSM IT Transmits any string of up to 4.095 characters from one place in memory to another. COMPARE Compares any string of up to 4.095 characters with any other string and sets a register to indicate whether the first string is lower, equal. or higher than the second. EDIT Moves a numeric field to a receiving field with report editing. MULTIPLY Multiplies two BCD numbers and stores the result in a third. DIVIDE Divides one BCD number by another and stores the result in a third. GENERALIZED INPUT/OUTPUT SYSTEM The 3100 Generalized Input/Output System is a series of library routines which provide complete 2-2 input/ output control for data processing. These routines are used in COMPASS assembly programs; they simplify programming while offering versatile data handling and optimum usage of internal storage_space and processing time. Complete, partial or no buffering may be designated, depending upon the amount of storage the programmer has available; multi-file reels or multi-reel files may be read or written; fixed or variable length logical or physical records may be processed; and magnetic tape, paper tape, cards or printer may be used for input! output units. Both labeled and unlabeled tapes may be handled. The input/output macros perform the following functions: OPEN I Opens an input file OPENO Opens an output file READ Reads one logical record into the record area WRITE Writes one logical record from the record area READI Reads one logical record into a specified area in memory WRITEF Writes one logical record from a specified area in memory CLOSE Closes a reel or file In addition to the input/output operations, the programmer also describes the files to be processed through use of macros. FIELDESC Defines logical records, buffers, logical units, recording density and rerun requirements. LABELING Describes file label and tape retention time (prevents accidental destruction of tapes). VARIABLE Indicates whether the size of a variable length record is determined by a record mark or a key field. SHAREBUF Allows user to let files share the same areas in storage. MULTIFIL Defines multi-file reels. The I/O System interprets each set of instructions, refers to the file description, and then initiates the requested operation; it controls buffering, transmission errors, and logical-physical record divisions. 3100 COBOL CO BO L is a programming system designed to facilitate the solution of business data processing problems. To use COBOL, the programmer describes the problem in a language resembling English; the 3100 COBOL processor translates this source language input into relocatable machine language for program execution. The 3100 COBOL language contains the elements set forth in the official Department of Defense Report Describing COBOL 1961, plus many of the features defined as elective COBOL. A COBOL source program is specified in four divisions: IDENTIFICATION, ENVIRONMENT, DA T A, and PROCEDURE. The IDENTIFICATION division identifies the name, author, date, and so forth of the program. The ENVIRONMENT division defines the computer configuration re- quired for both compilation and execution. The DATA division describes the format of the data files which the program is to process. The PROCEDURE division contains a sequence of statements which describe the processing to be performed. The 3100 COBOL compiler is a three-pass system. No object code is produced until the entire source program has been thoroughly analyzed. Wherever possible, in-line coding is produced. Depending on the needs of the program, the compiler provides an input/output system which allows variable length records, up to two buffer areas per file, multi-file reels, multi-reel files, rerun procedures, and so forth. In general, the features of the 3100 COBOL input/output system correspond to those described for the Data Processing package. 3100 FORTRAN The 3100 FO R TRA N system incorporates a problem-oriented language that facilitates simple algebraic solution of mathematical or scientific problems. 3100 FORTRAN programs are written as a sequence of statements, using familiar arithmetic operations and English expre~sions. Large programs may be written independently in sections, the sections tested, then executed together. Statements are available to reserve areas of memory for variables and arrays. Strings of values may be loaded with the program for reference during the program execution. Equivalence statements allow the same areas of memory to be identified with different variables and arrays during the execution of a program. Type statements specify the mode in which values are to be stored. The possible types include: REAL, INTEG ER, and CHARACTER. The programmer may also declare a special mode, type OTHER, to handle information which does not conveniently conform to the standard modes. Arithmetic expressions are indicated by arithmetic sign and algebraic names. For example, A+B-C means add A to B and subtract C. Logical and relational operators are available for use in expressions which may be true or false. Statements are usually executed in sequence. However, control statements may be used to transfer to another part of the program. Sets of statements which are to be executed several times with minor changes or increments may be written once with a statement to indicate how many times they are to be repeated, and if they are to be changed each time. Input/ output operations provide a means to read 2-3 information into the machine from various sources and to record results on a selected output device. If buffered input/output operation is specified, other operations may continue while information is read in or out. Facilities are also available to transfer a num- ber of characters from one area of memory to another, and to test machine conditions through calls to 3100 FORTRAN library functions. The 3100 FORTRAN compiler produces machine language programs which may be executed immediately or stored for execution at a later date. 3100 Generalized Sort/Merge Program The GENERALIZED SORT/MERGE PROG RAM organizes data on magnetic tape into one continuous predetermined order. SORT/MERGE operates under the 3100 SCOPE operating system. Control cards, read from the standard input unit, contain file descriptions and SORT/MERGE specifications. SORT /MERGE orders fixed or variable length tape records, blocked or unblocked, written in either BCD or binary mode, according to a specified collating sequence. BCD and binary collating sequences are provided within SORT/MERGE, or the user may specify his own. The resultant output file may be merged with other presorted files in a final merge pass, or, if a number of presorted files exist, the merge phase only can be performed. The SORT/MERGE can transfer to user prepared subroutines which perform the following functions: • edit acceptable records • reject records • check nonstandard labels • modify nonstandard labels • generate messages for the operator • write secondary output file (edit sorted records) • prepare summary file (summarize sorted records) • terminate the sort process The SO R T /MER G E checks standard header and trailer labels and provides rerun dumps. The SORT/MERGE contains an internal sort phase and a merge phase. The sort uses the tournament replacement technique which makes maximum use of available core storage and takes advantage of existing bias in the data. The method of merging, which is selected by the user; can be normal balanced or polyphased with either forward or backward reading. Basic System The BASIC system is designed for the CONTROL DATA 3104 computer with a standard 4K internal storage memory. This system may also be used with the 3104 computers equipped with expanded memory modules up to 32K. Appendix B provides coding procedures for the BASIC Assembler. Included in the BASIC system are: BASIC ASSEMBLER BASIC LOADER BASIC FORTRAN " BASIC ASSEMBLER AND LOADER The BASIC Assembler language forms a subset of the COMPASS language. Although designed primarily for use on the 3104 with a 4K memory, it can readily be used on larger systems. Object programs produced by the BASIC Assembler are loaded by the BASIC Loader or can be loaded by 3100 SCOPE. Source language programs must be prepared as complete entities if they are to be loaded by the BASIC loader. As a result, facilities for referencing external storage areas (COM M 0 N, DATA) and external program elements (ENTRY, EXT, macros) are not used in BASIC Assembler 2-4 language, nor are a few of the more complex pseudo instructions (VF, IF). All other features of the language are similar: operation codes, addressing, data definitions, listing control, and s·o forth. To assemble a BASIC Assembler program, the following configuration is required: 4K words of storage Input unit: card reader, magnetic tape or paper tape (used for source language input, library, and BASIC Assembler) Listable output unit: printer, magnetic tape, paper tape, typewriter Object program output unit: card punch, magnetic tape, paper tape, typewriter (all output may be written on one tape unit if desired) BASIC FORTRAN II BASIC FORTRAN II is a problem-oriented language that performs familiar mathematical operations in arithmetic expressions and replacement statements. The source language provides substantial power and flexibility through a variety of statements. BASIC FORTRAN II is compatible with other FORTRAN II systems and provides many of the features incorporated in 3100 FORTRAN. 2-5 3 Programming Features This chapter discusses the following programming features of the 3100 computer system: • program interrupts • special power failure interrupt • trapped instructions • integrated register file • real-time clock • block operations Program Interrupts The interrupt control section of the 3104 computer provides for testing whether certain internal and external conditions exist without having these tests in the main program. Examples of these conditions are internal faults and external equipment end-of-operation. Near the end of each RNI cycle, a test is made for these conditions. If one of the conditions exists, execution of the main program halts. The contents of the Program Address register, P, are stored and an interrupt routine is initiated. This interrupt routine, which has been initially stored in memory, takes the necessary action for the condition and then jumps back to the next unexecuted step in the main program. There are three major types of interrupts in the 3100 Computer System-normal interrupts (including internal and external conditions), trapped instruction interrupts, and a special power failure interrupt. Normal interrupts are the only interrupts that are completely under the programmer's control. These interrupts are of two types-internal and external. The following paragraphs describe the interrupt causing conditions, the Interrupt Mask register, interrupt control, and interrupt processing. INTERNAL INTERRUPTS Seven internal conditions may be set to cause an interrupt. These conditions and their definitions are: • Arithmetic Overflow Fault The Arithmetic Overflow fault is set when the capacity of the adder is exceeded. Its capacity, including sign, is 24 or 48 bits for 24-bit precision and 48-bit precision, respectively. • Divide Fault The divide fault sets if a quotient, including sign, exceeds 24 or 48 bits for 24-bit precision or 48-bit precision, respectively. Therefore, attempts to divide by too small a number result in a divide fault. • Exponent Overflow/Underflow Fault During a trapped floating point mUltiplication and division, the Exponent Overflow/Underflow is set if the exponent exceeds 21°-1. • BCD Fault A BCD Fault is set if a BCD Trapped instruction is executed. • 110 Channel Interrupts Any of the four possible I/O channels will generate an interrupt: 1) Upon reaching the end of an input or output block, or 2) Upon receiving an End of Record (Disconnect) signal from an external device. • Search/Move Interrupt The Search/Move interrupt is generated during a 71 or 72 instruction: 1) Upon the completion of an equality or inequality search, or 2) Upon the completion of a block move. • Real- Time Clock Interrupt The Real-Time Clock interrupt is generated when the clock reaches a prespecified time that has been stored in register 32 of the register file. EXTERNAL INTERRUPTS Three external conditions may cause interrupts. These are: • External I/O Interrupts The External I/O interrupt is set when an Interrupt signal is received from any of eight peripheral equipment controllers connected to any of the four possible I/O channels (there may be a total of 32 lines). The interrupt remains set until the computer directs the originating device to turn it off. • Manuallnterrupt The Manual interrupt is set by a switch on the computer console. This interrupt is not masked because it is assumed that this switch will be pressed only when an interrupt is desired. • Associated Computer Interrupt If two computers are sharing a storage module, either computer may interrupt the other by executing a 7757xxxx instruction. This interrupt is not masked. It clears out as soon as it is recognized. INTERRUPT MASK REGISTER The programmer can choose to honor or ignore an interrupt by means of the Interrupt Mask register. All but two of the normal interrupt conditions are represented by the 12 Interrupt Mask register bits. The mask is selectively set with instruction 7752xxxx, and selectively cleared by instruction 7753xxxx. See Table 3-1 for mask bit assignments. 3-1 Table 3-1. Interrupt Mask Bit Assignments Mask Bit Conditions Represented 00-07 External Interrupts on Channel 0-3, and I/O Channel Interrupts, Channels 0-3 Table 3-2. Interrupt Priority Priority 1 Arithmetic Overflow or Divide fault Exponent Overflow or BCD fault 08 Real-Time Clock Interrupt 2 3-66 67-74 09 Exponent Overflow and BCD Faults 75 10 Arithmetic Overflow and Divide Faults 11 Search/Move Completion 76 77 78 As previously explained, the Manual Interrupt and the associated computer interrupt are not masked. The contents of the Interrupt Mask register may be transferred to the upper 12 bits of the A register for display purposes with instruction 772cOOOO or 773cOOOO. INTERRUPT CONTROL Through use of the 3104 computer repertoire of instructions, the program can recognize, sense, and clear interrupts, and enable or disable interrupt control. Enabling or Disabling Interrupt Control The programmer has master control over normal interrupts. Instruction 7774---- enables the system; instruction 7773---- disables it. After recognizing an interrupt and entering the interrupt sequence, other interrupts are disabled automatically, just as if a 7773---- had been executed. When leaving the interrupt subroutine, the interrupt must again be enabled by the 7774---- instruction. After 7774----, one more instruction may be performed before the interrupt enable takes effect. INTERRUPT PRIORITY An order of priority exists between the various interrupt conditions. As soon as an interrupt becomes active, the computer scans the priority list until it reaches an interrupt that is active. The computer processes this interrupt and the scanner returns to the top of the list where it waits for another active interrupt to appear. Table 3-2 lists the order of priority. Sensing Interrupts The programmer may selectively sense interrupts, independent of the Interrupt Mask register, by using instruction 774cxxxx. Sensing the presence of internal faults automatically clears them. 3-2 Type of Interrupt External I/O Interrupts* I/O Channel Interrupts** Search/Move Interrupt Real- Time Clock Interrupt Manual Interrupt Adjacent Computer Interrupt NOTES: *There are eight interrupt lines on each of the four possible I/O channels, or 32 lines in all. On any given channel. a lower numbered line has priority over a higher numbered line. Likewise a lower numbered channel has priority over a higher numbered channel. Summarizing, line 0 of channel 0 has highest priority of all external I/O Interrupts, and line 7 of channel 3 has the lowest. ** A lower numbered I/O channel interrupt has priority over a higher numbered I/O channel interrupt. Clearing Interrupts I/O channel interrupts must be selectively cleared by instruction 7750xxxx. The real-time clock, arithmetic, and search/move completion interrupts may be cleared by: • Sensing, after which the interrupts are automatically cleared. • Using instruction 7750xxxx. • Master clearing. In instruction 7750xxxx, xxxx represents the mask. The manual and associated computer interrupts are automatically cleared when they are recognized. INTERRUPT PROCESSING Four conditions must be met before a normal interrupt can be processed: • With the exception of the manual interrupt and adjacent computer interrupt, a bit representing the interrupt condition must be set to "1" in the Interrupt Mask register. • The interrupt system must have been enabled. • An interrupt-causing condition must exist. • The interrupt scanner must reach the level of the active interrupt on the priority list. When an active interrupt has met the above conditions, the following takes place: • The instruction in progress proceeds until the point is reached in the RNI cycle where an interrupt can be recognized. At this time the count in P has not been advanced nor has any operation been initiated. When an interrupt is recognized, the address of the current unexecuted instruction in P is stored in address 00004. • A number representing the interrupt-causing condition is stored in the lower 12 bits of address 00005 without modifying the upper bits. Table 3-3 lists the octal codes which are stored for each interrupt condition. • Table 3-3. Representative Interrupt Codes Representative Codes Conditions External interrupt 1/0 channel interrupt Real-time clock interrupt Arithmetic overflow fault Divide fault Exponent overflow fault BCD fault Searchlmove interrupt Manual interrupt Adjacent computer interrupt OOLC* 010C 0110 0111 0112 0113 0114 0115 0116 0117 *L=line 0-7 *C = channel numbers 0-3 Program control is transferred to address 00005 and an RNI cycle is executed. Special Povver Failure Interrupts Failure of primary power is detected by the computer, and a special routine is executed prior to shutdown so that no data will be lost. This operation takes 30 ms; 16 ms detection and 14 ms for processing a special power failure interrupt. NATURE OF THE INTERRUPT The Power Failure interrupt overrides any other interrupt (internal or external), regardless of the state of the interrupt control. PROCESSING THE INTERRUPT Since this interrupt overrides all others, the address in which the present contents of P are stored and the address to which the program control is transferred must be different than that for a normal interrupt. When a Power Failure interrupt occurs, the machine stores the contents of P in address 00002 and transfers program control to address 00003. Trapped Instructions Table 3-4. List of Trapped Instructions The 3104 computer processes 3200 type BCD, floating point, and 48-bit precision multiply and divide instructions by means of implemented software. These instructions, listed in table 3-4 and in Chapter 5 are called trapped instructions. The following operations take place when a trapped instruction is detected: • (P + 1) is stored in address 00010 • The upper 6 bits of F are loaded into the lower 6 bits of address 00011; the upper 18 bits remain unchanged. • Program control is transferred to address 00011 and an RNI cycle is executed. Machine Code 56 57 60 61 62 63 64 65 66 67 70 Mnemonic Code MUAQ DVAQ FAD FSB FMU FDV LDE STE ADE SBE SFE EZJ, EO EZJ, LT EOJ SET Instruction Function Multiply AQ, 48-bit Precision Divide AO, 48-bit Precision Floating Point Add Floating Point Subtract Floating Point Multiply Floating Point Divide Load E Store E Add to E Subtract from E Shift E E Zero Jump, E=O E Zero Jump, E < 0 E Overflow Jump Set D Register 3-3 Integrated Register File The Integrated Register File is a 64 word (24 bits per word) memory located in the upper 64 addresses of storage. Although the programmer has access to all registers in the file with the 53 instruction, certain registers are reserved for specific pur- poses (see table 3-5). All reserved registers may be used for temporary storage if their use will not disrupt other operations that are in progress. The contents of any register in the file may be inspected by transferring them to the A register. Table 3-5. Integrated Register File Assignments Register Numbers 00-03 10-13 20 21 22 23 24 Reserved For Current character or word address (channel 0-3 control) Last character or word address ± 1 depending on the instruction (channel 0-3 control) Current character address (search control) Source address (move control) Clock, current time Current character address (type control) Current character address (auto-Ioad/ dump control) Register Numbers 25-27 30 31 32 33 34 35-77 Reserved For Temporary storage Last character address 1 (search control) Destination address (move control) Clock interrupt mask Last character address 1 (type control) Last character address 1 (auto-Ioad/ dump control) Temporary storage + + + NOTE: Register numbers correspond to upper 64 word locations in memory. Unused registers, located between register assignments are used for temporary storage. 3-4 Real-Time Clock The real-time clock is a 24-bit counter that is incremented each millisecond and has a penod of 16,777,216* milliseconds. The clock, which is controlled by a 1 kilocycle signal, starts as soon as the Run button on the console has been pushed. The current time is stored in register 22 of the register file. I t is removed from storage, updated, and com- pared with the contents of register 32 once each millisecond. When the clock time equals the time specified by the clock mask, an interrupt is set. When necessary, the real-time clock may be reset to any 24-bit quantity including zero by loading A, then entering (A) into register 22. Block Operations Block operations are of three types - Search, Move, and Input/Output. These operations use the computer block controls and, with the exception of those operations dealing with the A register, certain reserved registers in the register file. Block operations, with the exception of inputs to A and outputs from A, are buffered. After the Search/ Move or I/O control has been activated, the computer can return to its main program and continue until an interrupt is generated or the program senses for block operation completion. This section presents all block operations (see table 3-6) and includes machine code instruction formats, Instruction descriptions, and flow charts. Table 3-6. Block Operations SRCE SRCN MOVE Search/Move instructions, character addressed and buffered INAC INAW Character input Word input aTAC OTAW Character output Word output INPC INPW Character input Word input aUTC aUTW Character output Word output Unbuffered input to, and output from A Buffered input to, and output from storage * 16,777,216 milliseconds equals approximately 4 hours and 40 minutes. 3-5 SEARCH SRCE, SRCN Search F = 71 This instruction initiates a search through a block of character storage addresses looking for equality or inequality with character 'c'. It is composed ofthree words, including the two main block instruction words plus a one word reject instruction. 23 18 17 As a search operation progresses, m i is incremented until the search terminates when either a comparison occurs between the search character 'c' and a character in storage, or until m i = m 2 • If a comparison does occur, the address of the satisfying character may be determined by inspecting mI. To do this, transfer the contents of register 20 to A with instruction 53 (see figure 3-1). 16 00 l- 23 (P + I z I 71 (P) 18 c 1) 17 I e I~register m2 16 00 I \...--.register 20 m' 23 (P I NT m2 c e e m' + 2) = I 00 I Reject instruction ~----------------------------------------------------------~ "1" for interrupt upon completion last character address of the search block, plus one 00-778, BCD code of search character "0" for SRCE, search for character equality "1" for SRCN, search for character inequality first character address of the search block INSTRUCT ION WAIT FOR BLOCK CONTROL, THEN S BUS PRIORITY. OPERATION INT= I * WRITE(MI+I) INTO REGISTER 20 Figure 3-1. Search Operation Note: Instructions 71 and 72 are mutually exclusive. Attempts to execute one while the other is in progress will cause a reject to P 2. + 3-6 30 REGISTER 20 IS ADDRESS XXXX20 IN THE HIGHEST 64 WORDS OF MEMORY. MOVE = 72 This instruction is used to move a block of data, 'c' characters long, from one area of storage to another. It is composed of three words. As a move operation progresses, m! and m 2 are incremented and 'c' IS decremented until c = 0 f 23 18 1) (P + 2) I NT m2 c m1 00 72 ~~~~ I z I _________m_2_________~I~regi~er31 I~______ 17 23 + 16 l- (P) (P 17 (see figure 3-2). 128 characters or 32 words may be moved. When bits 00 and 01 of m! and m 2 are "0" and field length is a multiple of four characters, data is moved word by word. This reduces move time by 75% over a character by character move. I~ 16 00 c m_1___________ _ _ _ _ _ _ _ _L -_ _ _ _ _ _ _ _ _ _ ~)~register 21 Reject Instruction "1" for interrupt first address of character block destination field length of block, 0-1778* first address of character block source INSTRUCTION CONTROL, THEN S BUS PRIORITY. OPERATION INCREMENT BY 4 FOR WORD MOVE WAIT FOR BLOCK THEN S BUS CONTROL, PRIORITY. OR I FOR CHARACTER MOVE. DECREMENT C BY I OR 4 CHANNEL REQUEST * REGISTER HIGHEST 21 IS ADDRESS XXXX21 64 WORDS OF MEMORY. IN THE CHANNEL REQUEST *1-1778 represents a field length of 1 to 127 char- Figure 3-2. Move Operation acters; 0 represents a field length of 128 characters. 3-7 those that deal with storage. They all begin with the series of steps shown in figure 3-3. See the 77 instruction in chapter 5 for details on the preliminary operations-connecting to I/O equipment (77.0), sensing status of I/O equipment (77.2), and selecting function of I/O equipment (77.1). INPUT/OUTPUT Instructions 73 through 76 enable the computer to communicate with peripheral equipment via the I/O channels. These instructions are of two distinct types: those that deal with the A register and ~S_T_A_R_T----lH~~_:_~_:_~_p_)---,H,--R_(E_:_D_+_~_:_--,k) Figure 3-3. Initial Steps of liD Sequence Operations with A Operations with A are unbuffered. They have a common machine code format. INAC f = Input, Character to A channel in use. A is cleared previous to an input and in the case of a 12-bit input, the upper 12 bits remain cleared (see figure 3-4). OTAC Output, Character from A 73 OTAW Output, Word from A f = 74 INAW Input, Word to A I V77/ / / / / / / / / / / / 7\ (P) e 23 + 1) 21 20 Ch 17 I~ /7 71 ~ I / / / / 23 (P + 2) =/ 7 / / / / / / 7/ / / I 00 R_e_ie_c_t_l_n_st_r_u_ct_io_n_ _ _ _ _ _ _ _ _------l1 L-_ _ _ _ _ _ _ _ _ _ f = operation code 73-76 I NT = "1" for interrupt on completion Ch 1/.0 channel x; where x = 0-3 NC "1" for no BCD conversion e - "1" for operations with A 3-8 f = 18 17 23 75 76 A word from the lower 12 bits or from all of A is sent to a peripheral device. Word size depends upon the type of I/O channel in use (see figure 3-5). (A) is retained. A 12 or 24-bit word is read from a peripheral device and loaded into the lower 12 bits or into all of A. Word size depends upon the type of I/O (P f = A character from the lower 6 bits of A is sent to a peripheral device (see figure 3-5). (A) is retained. A 6-bit character is read from a peripheral device and loaded into the lower 6 bits of A. A is cleared previous to the input and the upper 18 bits remain cleared (see figure 3-4). INSTRUCTION LOAD (P+I)~ZO (p)~ZI ~--'!>01 ACTIVATE READ/ WRITE ON I/o CHANNEL 0....;.3 WAIT FOR BLOCK CONTROL, THEN S BUS PRIORITY. RELEASE BLOCK CONTROL AND SCANNER OPERATION NC= 0 I/O MODULE GENERATES DATA SIGNAL (INPUT REQUEST) WAIT FOR REPLY NC=I Figure 3-4. Input. Character or Word to A INSTRUCTION SAME~TRUCTI~FORMAT~ 1~I~R~R~ WORD TO A {FIGURE 3-~ OPERATION NC: 0 WAIT FOR REPLY I/O MODULE GENERATES DATA SIGNAL (OUTPUT READY) !L-lr-R-E-p-L-y---'H TERMI NATE ~.... _ _ _ _......I OUTPUT HEX IT RNI AT P+3 NC: I Figure 3-5. Output. Character or Word from A 3-9 Operations with Storage These operations are buffered. Main computer control relinquishes control of the I/O operations and returns to the main program as soon as Read or Write has been activated. They have a common machine code format. During the execution of word addressed I/O instructions, the addresses m! and m 2 are shifted left two places to the upper 15 bits of the 17 -bit address positions. From this time on, they are treated as character addresses. Registers 00-178 of the register file are reserved for buffered I/O operations; the last octal digit of the register designator corresponds to I/O channel x through which data is being transferred. 00-07 hold the current character or word address, and 10-178 hold the last character or word address, ± 1, depending on the operation. INPC Input, Character Block to Storage f= 73 This is a character addressed instruction; 6 or 12-bit characters are read from peripheral equipment and stored in memory (refer to figure 3-6). IfH=O, there is 6 to 24-bit assembly. If H= 1, there is 12 to 24-bit assembly. During this 12 to 24-bit assembly, the lowest bit of each character address is not read. This ensures that assembled characters are in either the upper or the lower half of a storage word. M2 = last character address of input data block, plus one (minus one, for backward storage). INPW Input. Word Block to Storage f = 74 This is a word addressed instruction with the addresses initially placed in the lower 15 bits of the 23 (P) + 1) + 2) 21 20 19 18 17 16 OUTW Output. Word Block from Storage f = 76 This is a word addressed instruction with the addresses initially placed in the lower 15 bits of the instruction words. Words are read from storage and sent to a peripheral device (refer to figure 3-9). If N = 0, there is 24 to 12-bit disassembly. If N = 1, there is a straight 12 or 24-bit data transfer depending on the I/O module capabilities. If an attempt is made to send 24 bits over a 12-bit I/O channel, the upper 12 bits will be lost. M2 = last word address of output data block, plus one (minus one for load backward). 00 ~I~mgi~er1X 00 _c_h_",-I_~--,-I_B--JIL-:_°...1-I_e--LI_________m_l_ _ _ _ _ _ _---.JI~register OX 1 L.... 00 =1~__________R_e_je_c_t_l_n_st_r_uc_t_io_n_ _ _ _ _ _ _ _ _----'1 f = operation code 73-76 INT "1" for interrupt m2 (see individual instruction) Ch 1/0 channel X; where X = 0-3 NC "1" for no BCD conversion B "1" for store backward HorN = (see individual instruction) e = "0" for operations with storage m 1 = first character or word address of 1/0 data block; becomes current address as 1/0 operation is carried out. 3-10 75 This is a character addressed instruction. Storage words are disassembled into 6 or 12-bit characters and sent to a peripheral device (refer to figure 3-8). If H = 0, there is 24 to 6-bit disassembly. If H = 1, there is 24 to 12-bit disassembly. M2 = last character address of output data block, plus one (minus one for load backward). m_2_ _ _ _ _ _ _ _ 23 (P OUTC Output. Character Block from Storage f = I~______~I_i~I_________ 23 (P 18 17 16 instruction words. Depending upon the I/O module capability, 12 or 24-bit words are read from a peripheral device and stored in memory (refer to figure 3-7). IfN = 0, there is 12 to 24-bit assembly. The first word of a block is stored in the upper half of a storage address for store forward and in the lower half for store backward. If N = 1, there is no assembly; a straight 12 or 24-bit data transfer occurs. A 12-bit word will be stored in the lower half of a storage address. M2 = last word address of input data block, plus one (minus one, for backward storage). INSTRUCTION SAME INSTRUCTION FORMAT AS I NPUT ,CHARACTER OR WORD TO A (FIGURE 3-4) OPE RATION H=O I/O MODULE GENERATES REQUEST IF NOT TERMINATED WAIT FOR BLOCK THE N S BUS CONTROL, P RIO R I TY • TESTS NO STORE BACKWARD? 12-;..24 BIT ASSEMBLY? NO BCD CONVERSION?, YES INT=O RELEASE BLOCK CONTROL AND SCA NNER =I I NT -* BCD CONVERSION IF NC=O Figure 3-6. Input, Character Block to Storage INSTRUCTION SAME INSTRUCTION FORMAT AS INPUT ,CHARACTER OR WORD TO A (FIGURE 3-4) OPE RATION N=O I/O MODULE GENERATES REQUEST >----...- -.......... IF NOT TERMINATED WAIT FOR BLOCK CONTROL, THEN S BUS PRIORITY. TESTS NO STORE BACKWARD? NO ASSEMBLY? . NO BCD CONVERSION?, YES INT =0 RELEASE BLOCK CONTROL AND SCANNER I NT * BCD CONVERSION IF = I NC=O Figure 3-7. Input Word Block to Storage 3-11 INSTRUCTION SAME INSTRUCTION FORMAT AS I NPUT ,CHARACTER OR WORD TO A (FIGURE 3-4) OPERATION H=O I/O MODULE GENERATES REQUEST~-""1r----iOJ IF NOT TERMINATED WAIT FOR BLOCK CONTROL, THEN S BUS PRIORITY. TESTS NO STORE ---eAc'KWARD ? '24~12 BIT DISASSEMBLY? NO BCD CONVERSION? YES INT=O RELEASE BLOCK CONTROL AND SCANNER I NT * BCD CONVERSION IF =I NC=O Figure 3-8. Output, Character Block from Storage INSTRUCTION SAME INSTRUCTION FORMAT AS I NPUT ,CHARACTER OR WORD TO A (FIGURE 3-4) OPERATION N=O I/O MODULE GENERATES REQUEST IF NOT TERMINATED WAIT FOR BLOCK CONTROL, THEN S BUS PRIORITY, ~ NO STORE BACKWARD? NO DISASSEMBLY::> . NO BCD CONVERSION? YES INT = 0 I NT * BCD CONVERSION IF = I NC=O Figure 3-9. Output, Word Block from Storage 3-12 4 Operating Features Two consoles, functionally identical to each other, are available for the 3100 computer system - the standard Integrated Console or the Optional 3101 Desk Console. This chapter defines the switches and indicators used on these consoles as well as explains the use of the entry keyboard. The basic differences in these consoles lie in their physical structures; they are electrically and logically identical. Displays and Indicators the register displays. The 3101 desk console is electrically and logically identical to the integrated console; however the displays and switches are located above the on-line monitor typewriter. Seven rows of indicator lights are used to display the operational registers of the 3104 on the integrated console. Status lights, manual controls and a keyboard are also provided. Figure 4-1 is a view of the integrated console and table 4-1 describes Ul IHI . t I l t o A U·'I$ I f . IQ8o \Q8Q!o8QIQ 8oI9891c;>8 9IoSc;>io'Sol o IQ8;i~g~'1~8oIQ8olo8~IQ8oi ~g~i c;>891 @-=-;;-l~~~1 QQQ IQQQI O'O'QiOO'OIQQQI • IQQQIQQQIQO'QiQQQIOQQl f :t.;:=.. -- IQQQ IQQQ"QQQiOQQ IQQQI Figure 4-1. Integrated Console 4-1 Table 4-1. Register Displays Binary Capacity Description Program Address Counter 15 bits Program Address register display panel. Indexes 15 bits Index register display panels. Instruction register or Communications register 24 bits 1) When one of the Step modes of operation is used, the contents of the Instruction register are shown. 2) In Stop mode, when the keyboard is active, the contents of the Communication register are shown. 3) In Run mode, when the keyboard is active, the contents of the Communication register are shown. A and Q registers 48 bits Register B'-B3 Displays the contents of each register. On the integrated console, three indicator lights represent each digit. The digit configuration is as follows: \ 1/ 0 0 \1/ 0 TT 4-2 (supernumeric bit) \1/ 0 IL bit 0 bit 1 bit 2 3 Cycle Four cycles are represented: Read Next Instruction, Read Address, Read Operand, and Store Operand. These indicators are lit whenever the cycles are in progress. EXTERNAL STATUS INDICATORS The external status indicators display the existing condition of I/O channels 0-3. Conditions displayed are Read, Write, Reject, Connect, Function, and Interrupt. 4 Faults This column represents the four arithmetic faults: Arithmetic Overflow, Divide, Exponent Overflow, and Decimal (BCD-always occurs when a BCD instruction is executed). INTERNAL STATUS INDICATORS Six columns of internal condition indicators are mounted on the consoles. Storage Active For addressing purposes, all possible word sections of memory are designated by digits 0-3. Digit zero indicates 4K or 8K storage. Digits 0 and 1 indicate 16K storage and 0 to 3 32 K storage. Whenever one of these storage sections becomes active, the corresponding indicator light is lit. 2 Conditions Standby means that the main power switch is on, but individual supplies are still off. Interrupt Disabled is lit whenever interrupt is disabled by the 77 instruction. 5 Temp Warning, and 6 Temp High Looking at the front of a fully expanded 3104 computer, the cabinet sections are designated by digits 0-3 (see figure 4-2). The Temp Warning lights indicate that the section in question is approaching the upper limit of the normal operating temperature range of the computer. This is only a warning; the computer is not disabled. The Temp High indicators light when the safe operating temperature is exceeded in the sections they represent. At the same time, the power will be cut off unless the Thermostat Bypass switch has been pressed. Temperature Indicator Temperature Indicator Temperature Indicator Temperature Indicator 2 1 0 3 Block Control, Interrupt, 4K Memory and I/O Logic. Main Control and Arithmetic Logic 8K Memory, and I/O Logic 16K Memory and I/O Logic Power Panel Figure 4-2. Temperature Warning Designations for Fully Expanded 3104, Front View Svvitches The console switches are divided into two groups -those used for normal operation of the computer and those used primarily for maintenance purposes. OPERATOR SWITCHES Operational switches are found on the mam console and the entry keyboard. Main Console: Table 4-2 lists and describes the main console operator switches. Entry Keyboard: The entry keyboard at the console replaces the Set and Clear push buttons that are on most CONTROL DATA computers for the manual entry of information. Figure 4-3 shows the 3104 console keyboard. Table 4-3 lists and describes the keyboard switches. 4-3 Table 4-2. Main Console Operator Switches Switch Name Quan. Ilium. Description Emergency Off (momentary) 1 Removes power from the whole system. Breakpoint Address Selector Run Mode Selector 1 Lefthand dial of the six section, eight position switch. Permits the selection of two modes: 2) Run Mode 1 ) Breakpoint Mode e) OFF a) OFF f) Register b) Instruction Number* Address g) OFF c) OFF h) Storage d) Operand Address Address *Registers 00000-00077 only. Breakpoint Address, Register File Number, or Storage Address 5 Five eight position thumb-wheel switches can be set to octal addresses 00000-77777 for modes 1 or 2 above. Auto Load (momentary) 1 Auto Dump (momentary) 1 Type Load (momentary) 1 Type Dump (momentary) 1 Select Stop 1 1 Manual Interrupt (momentary) 1 Select Jump 1-6 6 External Clear (momentary) 1 Internal Clear (momentary) 1 4-4 yes Provides for the automatic loading of storage from a designated device. Active whether machine is running or stopped. yes Provides for the automatic dumping of storage into a designated device. Active whether machine is running or stopped. yes Provides for the loading of storage from the online liD typewriter. Active whether machine is running or stopped. yes Provides for the dumping of storage into the online 1/0 typewriter. Active whether machine is running or stopped. yes yes yes yes Stops the computer when the Selective Stop instruction is read. Forces the computer into an interrupt routine if the computer is in Run. If the computer is stopped when the switch is pressed, it will go into an interrupt routine as soon as it is restarted. Provides the manual conditions for executing a program jump on the Selective Jump instruction. Master clears all external equipments, the I/O channels to which they are attached, and all controls in the data channels. Master clears internal conditions and registers. yes Figure 4 -3 . 3104 Console Keyboard 4-5 Table 4-3. Keyboard Switches Operational Control Switches Switch Name Keyboa rd Off Ilium. Yes Deactivates all keyboard controls. Disables Keyboard Active indicator. Clears the Communications register and keyboard control settings. Yes Starts the computer at address to which P register has been set. Indicator is lit while computer is executing instructions. Not used for Sweep or Enter. Yes Enables sweep or enter operations to proceed through storage. Yes Brings the computer to a halt at the end of the current instruction. Indicator is lit when computer is forced to a Halt or Stop. Keyboard Clear (momentary) Go (momentary) SW/EN Go (momentary) Stop (momentary) Description Transfer (momentary) Enables the transfer of data between the Communications register and a selected register or storage location. MC (momentary) Performs both an internal and external master clear. Disabled when computer is in Go mode. Register Selection Switches Switch Name Ilium. Description B1-B3 Yes Enables the manual entry of data from the keyboard into index registers 8'-8 3 . P Yes Enables the manual entry of an address from the keyboard into the P register. A Yes Causes both A and Q to be displayed, but enables entry only into A. Q Yes Causes both A and Q to be displayed, but enables entry only into Q. Mode Selector Switches Switch Name Ilium. Description Enter * Yes Enables the manual entry of information into storage while machine is stopped. First address of sequence is first entered into P. Pushing Transfer advances P. Sweep * Yes Enables instructions to be read from consecutive storage locations; they are not executed. First address of sequence is first entered into P. Pushing Transfer advances P. Write Storage Yes Enables keyboard entry into the storage location specified by the thumb-wheel switches. Entry occurs each time the Transfer key is pressed whether the computer is running or stopped. Read Storage Yes Causes the display of the contents of the storage register location specified by the thumb-wheel switches. The word is displayed when the Transfer key is pressed whether the computer is running or stopped. 4-6 Table 4-3. Keyboard Switches (cont'd) Digit and Sign Selector Switches Switch Name ilium. Description 0-7 All of these buttons, when pressed one at a time, allow entry of that particular digit into the Communications register. (momentary) * All register selection switches are disabled when either the Enter or Sweep switch is depressed. MAINTENANCE SWITCHES Maintenance switches are all located on the main console. Table 4-4 lists and describes the maintenance switches. Table 4-4. Maintenance Switches Switch Name Ilium. Description Disable Storage Protect Yes Disables the circuitry that normally protects the contents of storage. Disable Advance P Yes Disables advancement of the count in the P register. When the Go button on the keyboard is pressed, the same instruction is repeated. Press a second time to release function. Thermostat Bypass Yes Allows computation to proceed regardless of unfavorable ambient temperatures. Disable Parity Yes Disables the recognition of parity errors from all storage modules. Instruction Step Yes Enables the operator to step through the by instruction. Storage Cycle Step Yes Enables the operator to step through an instruction one storage cycle at a time. Auto Step Yes Enab.les many instructions to be executed in a low speed Run mode. The speed is regulated by the Auto Step Speed control on the console. ~rogram instruction 4-7 5 Repertoire of Instructions General Information INSTRUCTION WORD FORMATS Instructions 00-70 and 77 use one 24-bit word each; instructions 71-76 use two 24-bit words. In general, the upper 6 bits hold the identifying func- tion code 'f'. Instruction formats are of two types -word and character. Figure 5-1 shows the general formats for word and character oriented instructions. Instructions 70-77 use several additional symbols that are defined when they occur. j rr---~A..---~ 23 181716 1514 00 1",--~:.---LiID,,---------b 15 Word a f 1 v d m k y 23 Character I \ 18 17 16 15 14 W 6 v f d b* 00 1 17 v r z Figure 5-1. General Machine Code Instruction Formats SYMBOL DEFINITIONS + (B r + (B M =m a = addressing mode designator (a = 0, direct addressing; a = 1, indirect addressing) b = index designator (unless otherwise stated) R = K = k b ) b + ) b (B ) In each case, ifb=O, then M=m, R=r and K=k. d = operation designator (see individual instructions) = function code (6 bits, octal 00 to 77) = interval designator = jump, stop, or skip condition designator (see individual instructions) k = shift count m = word execution address = } ADDRESSING MODES Three modes of addressing are used in the 3100 computer: no address, direct address, and indirect address. unmodified character execution address y = 1 5-bit operand z = 17 -bit operand In some instructions, the execution address 'm' or 'r', or the shift count 'k' may be modified by adding to them the contents of an index register, Bb. The 2-bit designator 'b' specifies which of the three index registers is to be used. Symbols representing the respective modified quantities are M, Rand K. *When used in this position, 'b' calls for the use of a specific index register. No Address. This mode is used when an operand 'y' or a shift count 'k' is placed directly into the lower portion of an instruction word. Symbols 'a' and 'b' are not used as addressing mode and index designators with any ofthe no address instructions. Direct Address. A direct address instruction is any instruction in which an operand address 'm' is stored in the lower portion of the initial instruction word. This mode is specified by making 'a' equal to zero. In many instructions, address 'm' may be modified (indexed) by adding to it the contents of register Bb; M = m + (B b). 5-1 Indirect Address. It is possible to use indirect addressing only with instructions that require an execution address 'm'. For applicable instructions, indirect addressing is specified by making 'a' equal to one. Several levels (or steps) of indirect addressing may be used to reach the execution address; however, execution time is delayed in direct proportion to the number of steps. The search for a final execution address continues until 'a' equals zero. I t is important to note that direct (or indirect) addressing and address modification are two distinct and independent steps. In any particular instruction, one may be specified without the other. Figure 5-2 shows the indirect addressing routine for a 3100 computer. Go to address M. Acquire new terms a, b, & m. No Original instruction possibly containing 'a' and/or 'b' Execute instruction using address M. No Note: Unless it is otherwise stated, indirect addressing follows the above routine throughout the repertoire of instructions. Figure 5-2. Indirect Addressing Routine READ NEXT INSTRUCTION SEQUENCE (RNI) An abbreviation, RNI, is used throughout the repertoire of instructions to indicate the read next instruction sequence. This is a sequence of steps taken by the control section to advance the computer to its next program step. For an extensive description of this sequence, consult the 3100 Customer Engineering Manual. INDEX OF INSTRUCTIONS In this chapter the instructions are grouped and arranged in the following order. Those marked with an asterisk are trapped instructions. 5-2 Each group of instructions is introduced with an index as well as a group description whenever it is necessary. Individual instructions are all presented in the same basic format: Heading, which includes the assembly language mnemonict and instruction name. Machine code instruction format Instruction description Comments (when necessary) Approximate instruction execution time. Add 1.75 J,lsec for indirect addressing. Instructions shown without execution times are indeterminate at this time. 00-03 04-05,10-17 06-07, 10, 52 35-37 20-27, 54 40-47 STOP AND JUMPS REGISTER OPERATIONS WITHOUT STORAGE REFERENCE STORAGE TEST LOGICAL INSTRUCTIONS WITH STORAGE REFERENCE LOAD STORE INTER-REGISTER TRANSFER 24-bit Precision 53 30-31, 34, 50-51 32-33, *56-57 *60-63 *64-70 71-76 77 ARITHMETIC, FIXED POINT, 24-BIT PRECISION ARITHMETIC, FIXED POINT, 48-BIT PRECISION ARITHMETIC, FLOATING POINT BCD OPERATIONS BLOCK OPERATIONS MISCELLANEOUS OPERATIONS tSome assembly code mnemonics may be modified by one or more ofthe following codes: S Extend sign of operand; use full 24-bit register in skip instructions EO Equal B Backward read or write GE Greater than or equal H Half assembly or disassembly (12-24) Indirect addressing INT Interrupt when completed LT Less than N No assembly or disassembly (24-24) NE Not equal NC No internal BCD conversion Instructions STOP AND JUMPS Operation Field 00 HLT SJ 1 SJ2 SJ3 SJ4 SJ5 SJ6 RTJ Address Field m m m m m m m m Interpretation Unconditional stop; RN I from address 'm' Jump if key 1 is set Jump if key 2 is set Jump if key 3 is set Jump if key 4 is set Jump if key 5 is set Jump if key 6 is set Return jump 01 02 UJP, I m, b Unconditional jump IJI m, b m, b Index jump; increment index Index jump; decrement index 03 AZJ, EO NE GE LT AOJ, EO NE GE LT m Compare Compare Compare Compare Compare Compare Compare Compare IJD m A A A A A with with with with with A with A with A with zero; jump zero; jump zero; jump zero; jump 0; jump if 0; jump if 0; jump if 0; jump if if (A) o if (A) -F 0 if (A) :2: 0 if (A) < 0 (0) (A) (A) -F (0) (A) :2: (0) (A) < (0) NOTE: Two additional Jump instructions, EZJ and EOJ, are described under the BCD instructions. 5-3 A Jump instruction causes a current program sequence to terminate and initiates a new sequence at a different location in storage. The Program Address register, P*, provides the continuity between program steps and always contains the storage location of the current program step. When a Jump instruction occurs, P is cleared and a new address is entered. In most jump instructions, the execution address 'm' specifies the beginning address of the new program sequence. The word at address 'm' is read from storage, placed in F, and the first instruction of the new sequence is executed. 23 o Format: 0 o m 23 j = + No 1 o 0 m 1 to 6 Instruction Description: Jump to address Om' if Jump key j is set; otherwise, RNI from address P + 1. Indirect addressing and address modification are not applicable. (Approximate execution time: 1.8 J.ls.) Jump key j set? *Throughout this manual. the term (P) refers to the contents of the word addressed by P. This term shall be used because the more descriptive term, ((P)). becomes awkward when used frequently. 5-4 00 18 17 15 14 Instruction in F RNI from address P 00 Instruction Description: Unconditionally stop at this instruction. Upon restarting, RNI from address 'm'. Indirect addressing and address modification are not applicable. (Approximate execution time: 1.8 f.1s.) Format: Some of the Jump instructions are conditional upon a register containing a specific value or upon the position of the Jump key on the console. If the criterion is satisfied, the jump is made to location 'm'. If it is not satisfied, the program proceeds in its regular sequence to the next instruction. 18 17 15 14 Yes Jump to address 'm' o Format: 00 18 17 15 14 23 0 Instruction Description: If b = 0, this becomes a no-op instruction; RNI from address P + 1. If b ~ 0, (B b) is examined. m 7 Instruction Description: The address portion of (m) is replaced with the return address P + 1. Jump to location m + 1 and begin executing instructions at that location. Indirect addressing and address modification are not applicable. (Approximate execution time: 3.5 f.1s.) If (Sb) = 0, the jump test condition is not satisfied; RNI from address P 1. + 2 If (B ) ~ 0, the jump test condition is satisfied. b One is added to (B ); jump to address 'm' and RNI. b Indirect addressing and jump address modification are not applicable. (Approximate execution time: 2.6 f.1s.) Comments: The counting operation is done in a one's complement additive accumulator. Negative zero is not generated because the count progresses ... , 77775, 77776, 00000, stopping at positive zero. If negative zero is initially in Bb , the count progresses 77777, 00001, etc. In this case, the counter must pass through its entire range to reach positive zero. I nstruction in F , p+ 1 in Store address portion of (m) , Instruction in F Begin subroutine with instruction at address m 1 + RNI from address P + ~ Return to 'm' for address P + 23 Format: 1 8 1 7 1 6 1 5 14 01 Ia I b 00 m Instruction Description: Unconditionally jump to address M. Indirect addressing and indexing are available. (Approximate execution time: 1.8 f.1s.) 23 Format: 00 18 17 16 1 5 14 02 Id I d = 0 b = 1-3 m = jump address b Jump to address 'm'; RNI m 23 Format: 00 1 8 1 7 16 15 14 02 Id I b m d = 1 b = 1-3 m = jump address 5-5 Instruction Description: If b =0, this becomes a no-op instruction; RNI from address P + 1. If b ~ 0, (B b) is examined. Comments: If negative zero is initially in Bb , the count must be decremented from 77777 to 00000 before the program will RNI from P + 1. b 1 If (B ) = 0, the jump test condition is not satisfied; RNI from address P 1. + 2 If (B ) ~ 0, the jump test condition is satisfied. b One is subtracted from (B ); jump to address 'm' and RNI. b Indirect addressing and jump address modification are not possible. (Approximate execution time: 2.6 J.Ls,) 23 Format: 00 1 8 1 7 1 6 1 5 14 03 Id I m d=O j = 0-3 m = jump address Instruction in F Instruction Description: The quantity in A is compared algebraically with zero for an equality, inequality, greater than or less than condition (see table). If the test condition is true, the program jumps to address 'm'. If the test condition is not true, RNI from address P + 1. Indirect addressing and address modification are not applicable. (Approximate execution time: 2.6 J.Ls.) RNI from address P 1 + Condition Mnemonic EQ NE GE LT Subtract one 'from (B b) Jump to address 'm'; RNI j Test Condition ° (A)=± (A)~± 1 2 3 (A)~+ (A)<+ Comments: Positive and negative zero give identical results in this test when j = 0 or 1. Instruction in F RNI from address P + 5-6 No 1 ° °° ° Is test condition satisfied? Yes Jump to address m'; RNI 23 Format: 18 17 1 6 1 5 14 Id I 03 and address modification are not applicable. (Approximate execution time: 2.6 J..ts.) 00 m Condition Mnemonic d=1 j = 0-3 m = jump address EQ NE GE LT Instruction Description: The quantity in A is compared with the quantity in Q for an equality, inequality, greater than or less than condition (see table). If the test condition is true, the program jumps to address 'm'. If the test condition is not true, RNI from address P + 1. Indirect addressing j Test Condition 0 1 (A)=(Q) (A) r!: (Q) 2 3 (A)«Q) (A)~(Q) Comments: This instruction may be used to test the contents of Q by placing an arbitrary value in A for the comparison. Positive and negative zero give identical results in this test when j =0 or 1. Instruction in F ~ RNI from address P + No 1 ""- Is test condition satisfied? Yes ,. Jump to address 'm'; RNI 5-7 REGISTER OPERATIONS WITHOUT STORAGE REFERENCE Interpretation Address Field Operational Field 04 ASE, S QSE,S ISE y y y, b Skip next instruction if (A) = y Skip next instruction if (Q) = y b Skip next instruction if (B ) = y 05 ASG,S QSG,S ISG y y y, b Skip next instruction if (A) ~ y Skip next instruction if (Q) ~ y b Skip next instruction if (B ) ~ y 14 ENA, S ENQ,S ENI y y y, b Enter A with y Enter Q with y Enter index with y 15 INA, S INQ,S INI y y y, b I ncrease A by Y Increase Q by Y Increase index by y 16 XOA, S XOQ,S XOI y y y, b EXCLUSIVE OR of A and y EXCLUSIVE OR of Q and y EXCLUSIVE OR of index and y 17 ANA, S ANQ,S ANI y y y, b AND of A and y AND of Q and y AN 0 of index and y 10 lSI ISO y, b y, b Index skip, incremental I ndex skip, decremental 11 ECHA, S y Enter A with 17 -bit character address 12 SHA SHQ y, b y, b Shift A Shift Q 13 SHAQ SCAQ y, b y, b Shift AQ Scale AQ (B b) and RNI from address P execution time: 2.6 f..ts.) 23 Format: d = b = I 1 8 1 7 1 6 1 5 14 10 Id I b I + 1. (Approximate 00 y 0 18 17 16 23 1 to 3 Format: I 11 00 z Instruction Description: If (B b) = y, clear Bb and skip to address P + 2; if not, add one to (B ) and RNI from address P + 1. (Approximate execution time: 2.6 f..ts.) b 23 Format: 18171615 14 10 Id I b 00 y I d=l b = l to 3 Instruction Description: If (B b) = y, clear Bb and skip to address P + 2; if not, subtract one from 5-8 Instruction Description: Clear A, then enter a 17-bit quantity'y' (usually a character address) into A. When d = 1, the sign is extended. (Approximate execution time: 1.8 f..ts.) Instructions 04, OS, and 14-17 all refer to a register. Table 5-1 indicates the register and includes the corresponding operation codes, assembly mnemonics, and designators. When both 'd' and 'b' equal zero in instructions 04 and OS, zero is compared with 'y' and the instructions proceed just as if (B b) was zero. Instructions 14-17 are no-ops when both 'd' and 'b' equal zero. Table 5-1. Register Summary Operation Codes and Mnemonics 04 14 05 15 16 17 d b Register ISE ISG ENI INI* XOI ANI 0 1-3 b B , no sign extended on Bb or 'y' ASE,S ASG,S ENA,S INA,S XOA,S ANA,S 1 to A, sign extension on 'y' QSE,S OSG,S ENQ,S INO,S XOO,S ANQ,S 1 t 1 0, sign extension on 'y' ASE** ASG** ENA INA XOA ANA 1 t2 A. no sign extension on 'y' QSE** OSG** ENQ INO XOQ ANO 1 t3 0, no sign extension on 'y' *Sign extension on 'y' and Bb **Only the lower 15 bits of A or Q are used. t When d = 1, 'b' does not serve in its usual role of index designator. 23 Format: 04 I d I b Format: \ y 15 Instruction Description: If the register contents equal 'y'; skip to address P + 2; if not, RNI from address P + l. (Approximate execution time: 2.6 f.ls.) 00 18 17 16 15 14 05 Id I b Instruction Description: If the register contents are equal to or greater than 'y' skip to address P + 2; if not, RNI from address P + 1. (Approximate execution time: 2.6 f.ls.) Format: I 18 17 16 15 14 14 Id I b 00 18 17 16 1 5 14 16 Id I b y Instruction Description: Enter the selective complement (the EXCLUSIVE OR function) of 'y' and register contents into the register. (Approximate execution time: 1.8 f.ls.) 23 Format: y See table 5-1 for 'b', 'd', and register. y See table 5-1 for 'b', 'd', and register. 23 b Instruction Description: Add 'y' to the register contents. (Approximate execution time: 1.8 f.ls.) 23 Format: \ d [ See table 5-1 for 'b', 'd', and register. See table 5-1 for 'b', 'd', and register. 23 00 18 17 16 15 14 23 00 18 17 16 15 14 00 y See table 5-1 for 'b', 'd', and register. Instruction Description: Clear the register and enter 'y' directly into the register. (Approximate execution time: 1.8 f.ls.) 00 18 1 7 1 6 1 5 14 Format: y See table 5-1 for 'b', 'd', and register. Instruction Description: Enter the logical product (the AND function) of 'y' and the register contents into the register. (Approximate execution time: l.8 f.ls.) 5-9 the complement of the magnitude of shift is placed in ok'. 23 Format: d d b = = = I Examples: (b = 0 in both cases): 00 1817161514 k 12 O,SHA 1. SHQ index designator; K Shift left six positions: k = 00006 Shift right six positions: k = 77771 (Approximate execution time: 1.8 to 3.8 f.ls.) = k + (B b ). Instruction Description: (B b) and k, with their signs extended, are added. (Even if b=O, the sign of ok' is still extended.) The sign and magnitude of the 24-bit sum determine the direction and magnitude of shift. The computer only senses bits 00-05 and 23 of the sum for this information. To shift left, the magnitude of shift is placed in 'k'; to shift right, Comments: During left shifts, bits reaching the top of the A or Q register are brought end around. Therefore, a left shift of 24 places results in no change in (A) or (Q); a left shift of greater than 24 places results in an effective shift of K-24 (or K-48) places. During right shifts, the sign bit is extended and the low order bits are discarded. A right shift of 23 or more places results in (A) or (Q) becoming all "O's" or all .. 1's", depending on the sign. Instruction in F No Yes b Add (B ) to k with sign ext. Sign of k is extended "0" Uppermost bit of result equals "0" or "1 "? "1" Shift will be left Shift will be right "0" "1" RNI from address P + 5-10 23 Format: I 00 18 17 16 1 5 14 Id I 13 I b d=O b = index designator; K = k k + (B b ) Instruction Description: The contents of A and Q are shifted together as one 48-bit register. (B b) and 'k', with their signs extended, are added. (Even if b = 0, the sign of ok' is still extended.) The sign and magnitude of the 24-bit sum determine the direction and magnitude of shift. The computer only senses bits 00-05 and 23 of the sum for this information. To shift left, the magnitude of shift is placed in ok'; to shift right, the complement of the magnitude of shift is placed in 'k'. Examples: (b = 0 in both cases): Shift left three places: k = 00003 Shift right three places: k = 77774 (Approximate execution time: 2.6 to 5.1 J.ts.) Comments: During left shifts, bits reaching the top of the A register are brought end around to the lowest bit of Q. Therefore, a left shift of 48 places results in no change in (AQ); a left shift of greater than 48 places results in an effective shift of K-48 places. During right shifts, the sign bit is the low order bits are discarded. A 47 or more places results in (AQ) "O's" or all '"I 's", depending on the I 00 1817161514 23 Format: extended and right shift of becoming all sign. k 13 d=1 b = index designator K = k-shift count; (K~ B b ) Instruction Description: (AQ) is shifted left end around until the highest 2 bits (46 and 47) are unequal. If (AQ) should initially equal positive or negative zero, 48 decimal (60 octal) shifts are executed before the scale instruction terminates. During scaling, the computer makes a shift count. A quantity 'K', called the residue, equals ok' minus the shift count. If b = 0, this quantity is discarded; ifb = 1 to 3, the residue is placed in index Bb. (Approximate execution time: 2.6 to 5.1 J.ls.) STORAGE TEST Operation Field Address Field Interpretation Masked equality search 06 07 MEQ m, bl MTH m, b2 Masked threshold search 10 SSH m Storage shift 52 CPR,1 m, b Compare (within limits test) If A = Q.M, RNI from P quence. 18 17 15 14 23 Format: I I 06 I 00 (Approximate execution time: 3.5 J.lS + n*-l.8 J.ls.) Instruction Description: This instruction uses index m + (HI). (A) is compared with the logical product of (Q) and (M). Instruction Sequence: Comments: 'i' is represented by 3 bits allowing a decrement interval selection of 1 to 8. B1 exclusively. M = Decrement (Bl) by T. Test to see if (Bl) changed sign from positive to negative. *n = + 1; if not. test to see if A=Q.M. number of words searched 2; if not. repeat se- m i = 0 to 7, interval designator m = unmodified storage address If so, RNI from P + interval 1 1 2 3 2 3 4 4 5 6 7 0 5 6 7 8 5-11 Decrement (8 2 ) by 'j' Decrement (B1) by 'j' RNI from P+1 RNI from P+1 RNI from P 23 Format: 18171514 07 Yes A;:::::O·M +2 23 00 Format: m i = 0 to 7, interval designator m = unmodified storage address RNI from P+2 18171514 10 o 00 m m = storage address Instruction Description: This instruction uses index B2 exclusively. M = m +·(B2). (A) is compared with the logical product of (Q) and (M). Instruction Sequence: Decrement (B2) by 'i'. Instruction Description: Sense bit 23 of (m). If (m) is negative, RNI from P + 2; if positive, RNI from P + 1. In both cases, shift (m) one place left, end around, and replace it in storage. (Approximate execution time: 5.3 j.l.s.) Test to see if (8 2 ) changed sign from positive to negative. If so, RN I from P + 1; if not, test to see if A;:::::O.M. If A;::::: O. M, sequence. RNI from P+2; if not repeat (Approximate execution time: 3.5 j.l.S j.l.s.) + n*-1.8 RNI from P+2 Comments: 'i' is represented by 3 bits allowing a decrement interval selection of 1 to 8. interval 1 1 2 3 2 3 4 5 6 4 5 6 7 o 7 8 *n = number of words searched 5-12 RNI from P+1 Shift m) one Place left end around, and replace 23 Format: 00 18 17 16 15 14 52 Ia I b m a = addressing mode designator b = index designator m = storage address Instruction Description: (M) is tested to see if it is within the limits specified by A (upper limits) and Q (lower limits). The sequence of comparisons and the action taken are as follows: Subtract (M) from (A) and place the difference in A. If A is negative, R N I from address P 1; if not, + 2 Subtract (Q) from (M) and place the difference in A. If A is negative, R N I from address P 2; if not, + 3 RNI from address P + 3. Final State of Registers: (A) and (Q) remain unchanged. The address to which control proceeds, upon completion of the instruction is given by the following table: LOGICAL INSTRUCTIONS WITH STORAGE REFERENCE Operation Address Field Field Interpretation 35 SSA I m, b Selectively set A 36 SCA I m, b Selectively complement A 37 LPA I m, b Logical product A 23 00 18 1 7 1 6 1 5 14 Ia I Format: r=;5 m b a = addressing mode designator b = index designator b m = storage address: M = m (B ) + Instruction Description: Selectively set" 1's" in A for all "1 's" at address M. (Approximate execution time: 3.5 f.1s.) 23 Format: 18 1 7 1 6 00 1 5 14 -LI_a-L1__b__~______m______~ 3_6__ L I_ _ _ a = addressing mode designator b = index designator b m = storage address; M = m (B ) + Condition Control Given To (M»(A) (Q) >(M) (A) :2: (M):2: (Q) Instruction Description: Selectively complement corresponding bits in A for all HI's" at address M. (Approximate execution time: 3.5 f.1s.) P+3 23 Format: 00 18 17 16 15 14 37 m a = addressing mode designator b = index designator b m = storage address; M = m (B ) + Instruction Description: Replace A with the logical product of (A) and (M). (Approximate execution time: 3.5 f.1s.) 5-13 LOAD Interpretation Address Field Operation Field m, b Load A LOO,I m, b Load 0 LACH m,8 1 Load A, Character 23 24 25 LOCH m, 8 2 Load 0, Character LACM,I m, b Load A. Complement LOAQ,I m, b Load AQ 26 27 54 LAOC, I m, b Load AO, Complement LOL.l m, b Load A, Logical LOl.l m, b Load Index 20 21 LOA. I 22 23 Format: 00 18 1 7 16 1 5 14 20 m Instruction Description: Load bits 0 to 5 of A with the character from storage specified by character address R. A is cleared prior to the load operation. (Approximate execution time: 3.5 f..Ls.) Comments: Indirect addressing is not applicable. Characters in storage are specified in the following manner: a = addressing mode designator b = index designator b m = storage address; M = m (8 ) + 23 Instruction Description: Load A with a 24-bit quantity from storage address M. (Approximate execution time: 3.5 f..Ls.) 12 11 18 17 o Ia I Format: b 23 m :16 + l. ._0_0_00_0_-....,7:~7_77 Comments: Indirect addressing and address modification are available. 18 17 16 00 22 02 01 00: word address b = index designator. If b b = index designator. If b = 1, 'r' is modified by index register 8 1 ; R = r 5-14 + (8 1 ). ~ character designator modified by + (8 2 ). Instruction Description: Load bits 0 to 5 of Q with the character from storage specified by character address R. Q is cleared prior to the load operation. (Approximate execution time: 3.5 f..Ls.) Comments: Indirect addressing is not applicable. Characters in storage are specified in the following manner: 23 character designator = 1, r is index register 8 2 ; R = r 18 17 12 11 06 05 v word address 020100: __ Instruction Description: Load Q with a 24-bit quantity from storage address M. (Approximate execution time: 3.5 f..Ls.) Format: 00 18 17 16 a = addressing mode designator b b = index designator; M = m (8 ) m = storage address 23 3 00 18 1 7 1 6 1 5 14 21 I 2 23 Format: 00 ~~ /~ character designators Comments: Indirect addressing and address modification are available. 23 06 05 o 2 I 00 3 ~~/~ character designators 23 00 18 1 7 16 1 5 14 Format: 24 Ia I b m Instruction Description: Load registers A and Q with the complement of the two words from addresses M and M + 1, respectively. (Approximate execution time: 5.2 J.ls.) a = addressing mode designator b = index designator m = storage address; M = m + (B b ) 23 Instruction Description: Load A with the complement of a 24-bit quantity from storage address M. (Approximate execution time: 3.5 J.ls.) Comments: Indirect addressing and address modification are available. Format: 00 18 17 16 15 14 23 25 Format: 00 18 1 7 16 1 5 14 26 I Ia I 27 I b m a = addressing mode designator b = index designator Instruction Description: Load A with the logical product (the AND function) of (Q) and the contents of address M. (Approximate execution time: 3.5 J.ls.) m a = addressing mode designator b = index designator b m = storage address; M = m + (B ) Instruction Description: Load registers A and Q with the two words from addresses 'M' and M + 1, respectively. Address 77777 should not be used. (Approximate execution time: 5.2 J.ls.) 23 Format: 00 18 1 7 1 6 1 5 14 Ia I Format: 00 18 1 7 16 1 5 14 54 Ia I b I m a = addressing mode designator b = index designator m = storage address Instruction Description: Load index register Bbwith the lower 15 bits of storage address 'm'. (Approximate execution time: 3.5 J.ls.) Comments: Indirect addressing, but no address modification, is possible. During indirect addressing only 'a' and 'm' are inspected. Symbol 'b' from the initial instruction specifies which index register is to be loaded with the storage address contents. m b 23 a = addressing mode designator index designator m = storage address; M = m + (B b ) b= STORE Operation Field 40 41 42 43 44 45 46 47 a = STA, I STQ, I SACH SQCH SWA,I STAQ,I SCHA STI.I = m, B2 m, B1 m, b m, b m, b m, b 00 40 m addressing mode dflsignator storage address; M Store Store Store Store Store Store Store Store m, b b = index designator m Interpretation m, b 18 17 16 15 14 23 Format: Address Field = m + b (B ) Instruction Description: Store (A) in storage address M. (Approximate execution time: 3.5 J.ls.) a b m = = = I 00 18 17 16 15 14 23 Format: A Q 2.5 J.lsec A, character Q, character 1 5-bit word address AQ )- 3.8 J.lsec 17 -bit character address} index 2.5 J.lsec 41 Ia I b I m addressing mode designator index designator b storage address; M = m + (B ) Instruction Description: Store (Q) in storage address M. (Approximate execution time: 3.5 fJ,s.) 5-15 23 Format: 00 18 17 16 4_2__ L I_ _ _ 23 _____________________~ ~I_b~I Format: I r I 116 020100 1 !iJ '-----y===:;9 character designator Instruction Description: Store the contents of bits to 5 of the A register in the specified character address. All of A and the remaining three characters in storage remain unchanged. (Approximate execution time: 3.5 f.ls.) ° o ~ 12 11 1 I 2 45 1 00 43 : 16 8 02 01 00 [00000-:7777 word address I Instruction Description: Store the contents of bits to 5 of the Q register in the specified character address. All of Q and the remaining three characters in storage remain unchanged. (Approximate execution time: 3.5 f.ls.) ° Comments: Indirect addressing is not applicable. Characters in storage are specified in the following manner: 18 17 12 11 0605 00 I,----------=:-o---,---I------::-1----,--I------,,2---'---~~3 -------char~ d~tors ------l 5-16 a = b = m = ) Ia I b 00 m 18 17 16 15 14 46 1 a 1 b 00 m addressing mode designator index designator b storage address; M = m + (B ) Instruction Description: Store the lower 17 bits of (A) in the designated address M. The upper bits of M remain unchanged. (Approximate execution time: 3.5 f.ls.) character designator b = index designator. If b = 1, r is modified by index register 8 1 ; R = r + (8 1 ). 23 b Instruction Description: Store the contents of registers A and Q in storage addresses M and M + I, respectively. Address 77777 should not be used. (Approximate execution time: 5.2 f.ls.) Format: Format: (8 a = addressing mode designator b = index designator b m = storage address; M = m + (8 ) ~3 18 17 16 m b 18 17 16 15 14 23 23 1 = addressing mode designator Format: 00 06 05 a b = index designator 23 Comments: Indirect addressing is not applicable. Characters in storage are specified in the following manner: 18 17 I 00 Instruction Description: Store the lower 15 bits of (A) in the designated address M. The upper 9 bits of M remain unchanged. (Approximate execution time: 3.5 f.ls.) b = index designator. If b = 1, r is modified by index register 8 2 ; R = r+ (8 2 ). 23 44 m = storage address; M = m + 00000-77777 word address a 18 17 16 15 14 23 Format: 18 17 16 15 14 47 00 m a = addressing mode designator b = index designator m = storage address Instruction Description: Store the (B b) in the lower 15 bits of storage address 'm'. The upper 9 bits of om' remain unchanged. (Approximate execution time: 3.5 f.ls.) Comments: Indirect addressing, but no address modification, is possible. During indirect addressing only 'a' and Om' are inspected. Symbol 'b' from the initial instruction specifies which index register is to have its contents stored. If b = 0, zeros are stored in m. INTER-REGISTER TRANSFER 24-Bit Precision 53 Interpretation Address Field Operational Field Transfer Transfer Transfer Transfer Transfer Transfer Transfer Transfer Transfer Transfer Transfer b b m m m m m. b m. b TIA TAl TMO TOM TMA TAM TMI TIM AOA AlA b b IAI b (B ) to A (A) to Bb (Register m) to 0 (0) to Register m (Register m) to A (A) to Register m (Register m) to Bb b (B ) to Register m (A) (0) to A b (A) (B ) to A b (B ) (A) to Bb + + + The 53 instruction is used to move data between the A and Q (arithmetic) registers, the index registers, and the register file. 23 Format: 18 17 16 15 14 12 11 23 Format: I 00 18 1 7 1 6 1 5 14 12 11 53 23 3 I Format: 18 17 15 14 12 11 53 23 23 Format: 18 1 7 16 1 5 14 12 11 06 05 00 53 v Format: v 18 17 16 15 14 12 11 53 Id 1-- - I 2 I O,TMA; d = 1,TAM register number. 00-77 00 4 53 23 18 1 7 1 6 1 5 14 12 11 4 Instruction Description: The sign of (B b) is extended. O. TMO; d = 1. TOM register number. 00-77 23 o 00 b = index designator. 1 to 3 Format: d v = I 53 Comment: No sign extension. Format: b 00 d = 0, TMI; d = 1. TIM b = index designator, 1 to 3 v = register number. 00-77 d= O. TIA; d = 1. TAl b = index designator. 1 to 3 d v - Id I 06 05 06 05 00 v 18 17 16 15 14 12 11 53 00 4 b = index designator. 1 to 3 Instruction Description: The sign of the original (B b ) is extended prior to the addition. The upper 9 bits are lost when the sum is placed in Bb. 5-17 ARITHMETIC, FIXED-POINT, 24-BIT PRECISION Operation Field Address Field Interpretation 30 ADA I m, b Add to A 31 SBA I m, b Subtract from A 34 RAD, I m, b Replace add 50 MUA I m, b Multiply A 51 DVA I m, b Divide A Format: 00 18 1 7 16 15 14 23 30 Ia I b I m Instruction Description: Replace the quantity in M with the sum of (M) and (A). The original (A) remain unchanged. (Approximate execution time: 5.2 f.1s.) a = addressing mode designator b = index designator b m = storage address; M = m (B ) + Instruction Description: Add a 24-bit quantity located at address M to (A). The sum appears in A. (Approximate execution time: 3.5 f.1s.) Format: 00 18 17 16 15 14 23 Ia I 50 m b a = addressing mode designator b = index designator b m = storage address; M = m (B ) + 23 Format: 00 18 1 7 16 1 5 14 31 Ia I m b Instruction Description: Multiply (A) by the quantity at address M. The 48-bit product appears in QA with the lowest order bits in A. (Approximate execution time: 14.5 f.1s.) a = addressing mode designator b = index designator b m = storage address; M = m (B ) + Instruction Description: Subtract a 24-bit quantity located at address M from (A). The difference appears in A. (Approximate execution time: 3.5 f.1s.) 23 Format: 00 18 1 7 1 6 15 14 34 IaI m b a = addressing mode designator b = index designator m = storage address; M = m + (B b 18 17 16 15 14 23 ) Format: 51 lal b m a = addressing mode designator b = index designator b m = storage address; M = m (B ) + Instruction Description: Divide the 48-bit quantity in AQ by the quantity at storage address M. The quotient appears in A and the remainder with its sign extended appears in Q. If a divide fault occurs, this operation halts and the program advances to the next instruction. The final contents of A and Q are meaningless if this happens. (Approximate execution time: 15.0 jLs.) ARITHMETIC, FIXED-POINT, 48-BIT PRECISION Operation Field 5-18 Address Field 00 Interpretation 32 ADAQ, I m, b Add to AQ 33 SBAQ, I m, b Subtract from AQ 56 MUAQ, I m, b Multiply AQ { 57 DVAQ, I m, b Divide AQ \ Trapped Instructions Comments: Instructions 56 and 57 are trapped in 3100 computer systems. Instruction Description: Subtract the 48-bit combined contents of addresses M and M + 1 from (AQ). The difference appears in AQ. (Approximate execution time 5.2 f.,ls.) Registers A and Q serve together as a 48-bit register with the highest order bits in A. 23 Format: 23 Format: a b m = = = I 00 18 1 7 16 15 14 32 Ia I 00 18 17 16 15 14 Ia I 56 b I m a = addressing mode designator b = index designator m = storage address; M = m (Sb) + m b Instruction Description: M uitiply (AQ) by the 48bit operand in M and M + 1. The 96-bit product appears in AQE. addressing mode designator index designator storage address; M = m (Sb) + Instruction Description: Add the 48-bit contents of addresses M and M + 1 to (AQ). The sum appears in AQ. (Approximate execution time: 5.2 f.,ls.) 23 Format: 00 18 17 1 6 1 5 14 57 Ia I m b a = addressing mode designator b = index designator m = storage address; M = m (Sb) + 23 Format: a b m I 18 17 16 15 14 33 Ia I b 00 I m addressing mode designator index designator = storage address; M = m (Sb) = = + Instruction Description: Divide (AQE) by the 48bit contents of addresses M and M + 1. The answer appears in AQ and the remainder with its sign extended appears in E. If a divide fault occurs, this operation halts and the program advances to the next instruction. The final contents of AQ and E are meaningless if this happens. ARITHMETIC, FLOATING POINT Operational Field Address Field Interpretation 60 FAD, I m, b FP addition to AQ 61 FSB, I m, b FP subtraction from AQ 62 FMU, I m, b FP multiplication of AQ 63 FDV, I m, b FP division of AQ This group of instructions is trapped in 3100 computer systems. The E and 0 registers are simu- lated in 3100 memory by appropriate software and are not separate physical entities. Comments: All floating point operations in the 3100 computer involve the A and Q registers plus two consecutive storage locations, 'm' and m + 1. The A and Q registers are treated as one 48-bit register. Operand Formats: The AQ register and the storage address contents have identical formats. 5-19 (47) (46) (36) (35) (24) 23 22 12 11 00 (A) and (M) 11-bit o¥and exponent including bias Sign of Coefficient Upper 1Ybits of operand coefficient 23 (Q) and (M + 00 I 1) I \~----------~-------------- ~----------------------------} Lower 24 bits o~erand coefficient Exponent Equalization: During floating point addition and subtraction, the exponents involved are equalized prior to the operation. The coefficient of the algebraically smaller exponent is automatically shifted right until the exponents are equal. Rounding: Rounding modifies the coefficient answer by adding one to AQ for positive answers or by subtracting one for negative answers. Rounding is necessary since the coefficient answer may contain more than 36 bits. The condition for rounding is inequality of the sign bits of AQ and E. This means that the next lower significant bit to the right of the number in AQ is equal to or greater than one-half. Coefficient arithmetic may, yield rounded answers from zero to 237. Normalizing: Normalizing brings the above answer back to a fraction from one-half to one with the binary point to the left of the 36th bit. The magnitude of the final normalized number in AQ will range from 236 to 237_l. Normalizing is performed by either a right shift or the required number of left shifts for add and subtract or a one place right or left shift for multiply and divide. The exponent is corrected for every shift. The residue in E is not shifted. Exponent Overflow: It is possible to sense exponent overflow and/or to use this overflow to cause an interrupt. Sensing this fault automatically clears the Exponent Overflow indicator. 23 Format: 60 Ia I b I m a = addressing mode designator b = index designator m = storage address; M = m (Sb) + 5-20 00 18 1 7 1 6 1 5 14 Instruction Description: Add the contents of M and M + 1 to (AQ). The rounded and normalized sum appears in A Q. 23 Format: I 18 17 16 15 14 00 m 61 a = addressing mode designator b = index designator m = storage address; M = m (Sb) + Instruction Description: Subtract the 48-bit contents of 'M' and M + 1 from (AQ). The rounded and normalized difference appears in AQ. 23 Format: 00 18 17 16 15 14 62 Ia I m b a = b = rn addressing mode designator index designator = storage address; M = m (Sb) + Instruction Description: Multiply (AQ) by the 48bit contents of 'M' and M + 1. The rounded and normalized product appears in AQ. 23 Format: [63 00 1 8 1 7 1 6 1 5 14 Ia I m b a = addressing mode designator b = index designator m = storage address; M = m (Sb) + Instruction Description: Divide bit contents of M and M + 1. normalized quotient appears in der with sign extended appears (AQ) by the 48The rounded and AQ. The remainin the E register. BCD Address Field Operational Field Interpretation 70 SFE EZJ, EQ EZJ, LT EOJ SET k, b m m m y Shift E E zero jump, E = 0 E zero jump, E < 0 E overflow jump Set D register 64 LDE m, b 1 Load E b2 65 STE m, 66 ADE m, b 3 Addition to E 67 SBE m, b 3 Subtraction from E Store E This group of instructions is trapped in 3100 computer systems. The E and D registers are simulated in 3100 memory by appropriate software and are not separate physical entities. Formats: These instructions handle 4-bit BCD characters rather than whole 24-bit words. These characters are placed into the simulated E register and into storage in the following ways: Illegal Characters: By definition, any character greater than 9 (or lIs) is illegal. Characters are tested for legality during: 1 Loading into E, 2 Storing as they leave E, and 3 Addition and subtraction as they leave E and storage for processing by the adder. BCD Fault: The BCD fault will occur if: 1 ED Register (Simulated Configuration). 53 51 I± .. 00 11 3 11 211 1 11 0 +' I 91817161 5 1413121 y Sign Overflow of E character position 2 An illegal character is sensed during the execution of an instruction, or / 3 The contents of D exceed 12 (will set only BCD Characters during a SET instruction). The simulated 53-bit ED register can hold 12 regular BCD characters plus one overflow character. The ED register can never be displayed on the consoles. 2 Storage 23 (M) = A sign is present in any character position other than the least significant, or 18 17 12 11 06 05 00 IL-_O_-l-I_-.l..._2------L1----;-3-----i "'" ~ Character / Positions / Each 24-bit storage word may be divided into four character positions of 6 bits each. The lower 4 bits of each position may hold a 4bit character; the upper 2 bits are reserved for the sign designator, one per field. For each field, the sign accompanies the least significant character. 10xxxx specifies negative; any other combination, positive. The upper 2 bits of all other characters in the field must equal zero. The most significant character precedes the least significant character of a field in storage. Field Length: The field length is specified by the contents of the simulated 4-bit D register. Any number 1-12 (0001-1100) is legal.* 23 Format: 00 18 1 7 1 6 1 5 14 70 Id I b k d= 0 b = index designator k = shift designator Instruction Description: This instruction shifts BCD characters within the E register in one character (4-bit) steps. 'k' and the contents of index Bb are added to modify the shift designator; K = k + (B b). The computer senses bits 00-03 and 23 of the sum. *Although a fault will occur, D may equal 13 for the storage of 13 characters. The following sequence should be followed in storing 13 characters: 1 Set D (BCD fault will occur) 2 Sense for BCD fault (this clears the BCD Fault indicator 3 Issue STE instruction If the BCD fault is disregarded and there is an attempt to load, add, or subtract 13 characters, only the lower 12 characters will be used. No additional fault will occur. 5-21 Direction of Shift: Shifting is left if bit 23 is zero; right if it is one. Shifts are end off in both directions. Magnitude of Shift: For a left shift, the lower 4 bits of the sum specify the shift magnitude; for a right shift, the lower 4 bits of the complement of the sum specify the shift magnitude. 23 Format: Examples: If K = until a new quantity is entered. In other words, during a series of load and store operations dealing with equal size fields, (D) need only be set once. 00 18 17 16 Ib 64 I 00000006, shift left 6 character positions. If K = 77777771, shift right 6 character positions. Character position within the word If b=O, r is the unmodified direct address. If b=l, r is modified by (B1); R=r+(B1). Word Address 23 Format: I 00 18 1 7 16 1 5 14 Id I 70 m d=l j = jump test designator m = jump address Instruction Description: This instruction compares (E) with zero. If the test condition is true, jump to address m; if not, RNI from address P + 1. See the table below for test conditions. Mnemonic Test Condition o EQ Instruction Description: Load the 53-bit ED register (includes sign of ED) with a field of up to 12 numeric BCD characters from storage. Characters are read consecutively, starting with the least significant character (at address R + (D - 1) and continuing until the most significant character (at address R) is in ED. (ED) is shifted right as loading progresses. The sign is acquired along with the least significant character. Before executing this instruction, specify field length with a SET (70.7) instruction. (E) = 0 LT (E) <0 23 Format: 23 Format: ! 70 I 65 Ib I If b=O, r is the unmodified direct address. If b=l, r is modified by the (B2); R=r+ (B2). m 6 I 00 00 15 14 18 17 18 17 16 m = jump address Instruction Description: Jump to address 'm' if digit 13 of the ED register receive a character indicating that ED has overflowed; if not, RNI from address P + 1. 23 Format: I 18 17 70 15 14 7 00 23 y y = field length designator Instruction Description: Place the lower 4 bits of 'y' in the simulated 4-bit D register. (D) remains set 5-22 Instruction Description: Store a field of up to 13 numeric BCD characters from the 53-bit ED register (includes sign of ED). Storage begins with the least significant character and the sign. As it continues, (E~) is shifted right, end off, until the field is stored. Before executing this instruction, specify field length with a SET (70.7) instruction. Format: I 18 66 17 16 Ib I If b = 0, r is the unmodified direct address. If b=l, r is modified by (B3); R=r+(B3). 00 Instruction Description*: A field of up to 12 stored numeric characters may be added to (ED). The sum appears in ED. Stored characters are in consecutive character positions of adjacent storage addresses. 'R' specifies the most significant character of a field. The 4-bit D register specifies field length. 23 Format: 18 17 00 16 67 I b I If b=Q, r is the unmodified direct address. If b= 1. r is modified by (B3); R=r (B3). + Instruction Description*: A field of up to 12 stored numeric characters may be subtracted from (ED). See instruction 66 for remainder of description. BLOCK OPERATIONSSEARCH, MOVE, AND I/O Operation Field Address Field Interpretation 71 SRCE,INT SRCN,INT c, m c, m 1 , m 2 72 73 MOVE,INT c, m 1 • m 2 INPC,NC.INT,B,H INAC,NC.INT ch, m ch 74 INPW,NC,INT,B,N INAW,NC.INT ch, m 1 , m 2 ch Input, word block to storage I nput, word to A 75 OUTC,NC.I NT,B.H OTAC,NC,INT ch. m 1 , m 2 ch Output, character block from storage Output, character from A 76 OUTW.NC,INT.B,H OTAW.NC,INT 1• m2 1• m Search character equality Search character inequality Move c characters from m 1 to m 2 2 Input, character block to storage Input, character to A Output, word block from storage Output, word from A Comments: These instructions have the following characteristics in common: They are composed of three words, including the two main block instruction words plus a one word reject instruction. 2 Addresses required for the execution of the instruction set are located within the instruction set. 3 Constants such as field lengths and BCD codes for search characters are within the instruction set. 4 They can all be set to cause an interrupt upon completion. See chapter 3, Programming Features, for a description of the Block instructions. *The A and Q registers are not used for these instructions. 5-23 SENSING, CONTROL AND INTERRUPT Operation Field Address Field Interpretation 77.0 CON x. ch connect 77.1 SEl x. ch select 77.2 COpy x. ch; x = 0 copy external status 77.2 EXS x. ch; x 77.3 CINS x. ch; x = 0 77.3 INS x. ch; x 77.4 INTS x. ch interrupt sense 77.50 INCl x interrupt clear 77.51 10Cl x 1/0 clear 77.52 SSIM x selectively set interrupt mask 77.53 SCIM x selectively clear interrupt mask 77.57 IAPR 77.6 PAUS pause 77.70 SlS selective stop 77.71 SFPF *set FP fault 77.72 SBCD *set BCD fault 77.73 DINT 77.74 EINT enable interrupt control 77.75 CTI console typewriter in ~ ~ 0 external sense copy internal status internal sense 0 interrupt associated processor disable interrupt control 77.76 CTO console typewriter out 77.77 UCS unconditional stop Comments: 77 is an instruction that handles sensing, selecting, interrupt and control functions not covered by instructions 00-76. 23 18 Format: 15 17 14 The general format for all sub-divisions of the 77 instruction is: 12 11 0-7 Operation Code 0000-7777 Channel designator or special usage Operation Code Modifier Comparison mask. function code. etc. Throughout this instruction, the term Busy may mean: channel writing. channel reading. 1/0 equipment Reject on channel. last Connect on channel not yet recognized. or last Function on channel not yet recognized. *Used for software simulation of the optional arithmetic packages. 5-24 00 23 Format: 00 18 17 1 5 14 12 11 77 o c xxxx c-= 1/0 channel designator 0-3. xxxx = 12-bit connect code. Bits 09-11 select one of eight controllers which may be attached to the selected channel. Bits 00-08 select one of a possible 512 units which may be connected to the .selected controller. Instruction Description: Channel c is checked for Busy. If Busy is present, a reject instruction is read from address P + l. If channel c is not Busy, a 12bit connect code is sent on channel c along with a connect enable; then the next instruction is read from address P + 2. 23 Format: 23 c xxxx = = c xxxx I/O channel designator 0-3. 12-bit function code. Each piece of peripheral equipment has a unique set of function codes to specify operations within that device. Refer to the individual peripheral equipment manuals for these codes. Instruction Description: Channel c is checked for Busy. If Busy is present, a reject instruction is read from address P + 1. If channel c is not Busy, a 12bit function code xxxx is sent on channel c along with a function enable; then the next instruction is read from address P + 2. mask. Bits 00-03 of the mask represent interrupt lines from the designated I/O channel; bits 08-11 represent internal interrupt conditions. Instruction Description: Sense for the interrupt conditions listed in table 5-4. If" 1" bits appear on the interrupt lines in any of the same positions as "1" bits in the mask, RNI from address P + 1. If comparison does not occur in any of the bit positions, skip to address P + 2. Internal interrupts are cleared as soon as they are sensed. Table 5-4. Interrupt Sensing Mask Comparison Mask Bit Positions Definitions I/O line 0-3 interrupt active 00-07 Clock interrupt *08 1817 23 Format: I 77 I 2 1514 1211 I I ch 00 xxxx = sense 00 18 1 7 1 5 14 12 11 77 77 ch = I/O module, channels 0-3. xxxx Format: 00 18 17 15 14 12 11 *09 Exponent overflow or BCD fault *10 Arithmetic overflow or divide fault * 11 Search/move completion interrupt 0000 ch = I/O channel designator 0-3 Instruction Description: This is a dual purpose instruction: A The external status code from I/O channel C is loaded into the lower 12 bits of A. B The contents of the Interrupt Mask register are loaded into the upper 12 bits of A. See Table 5-4. RNI from address P 1. + 23 Format: 00 18 17 15 14 12 1 1 77 5 o xxxx Instruction Description: The interrupt faults defined by xxxx are cleared (see table 5-5). N ate that only internal I/O channel interrupts are cleared by this instruction. Table 5-5. Interrupt Mask Register Bit Positions Format: I 77 I 3 I ch I 00-07 0000 ch = I/O channel designator 0-3 Instruction Description: This is a dual instruction: A The internal status code of the computer is loaded into the lower 12 bits of A. B The contents of the Interrupt Mask register are loaded into the upper 12 bits of A. See Table 5-4. RNI from address P 1. + Definitions 00 18 17 15 14 12 11 23 08 I/O channel 0- 7 interrupts (internal and external) Clock interrupt 09 Exponent overflow or BCD fault 10 Arithmetic overflow or divide fault 11 Search/move completion interrupt * FFs associated with these faults are cleared as soon as the conditions are sensed. 5-25 23 Format: I 00 18 17 15 14 12 11 xxxx 77 23 Format: Instruction Description: Selectively sets the Interrupt Mask register according to xxxx. For each" 1" bit in xxxx, the corresponding bit position in the Interrupt Mask register is set to "1" (see table 5-5). I 18 17 15 14 12 11 77 Instruction Description: This instruction exists for the same reason as 77.71. In this case the BCD Fault flip-flop is set. 23 23 Format: I 00 18 1 7 1 5 14 12 11 77 5 I 3 I 18 17 1 5 14 12 11 77 Format: Format: Format: I 77 5 7 Format: I 18 17 15 14 12 11 77 7 00 I Instruction Description: The floating-point fault flip-flop is set to indicate that a floating point fault has occurred. This instruction is used when floating-point arithmetic is simulated and causes a flipflop to set whenever a fault is sensed. The setting of this flip-flop causes bit 09 to be set in the Interrupt register and permits a normal hardware interrupt. 5-26 I 18 17 1 5 14 12 11 77 I 7 I 4 00 I 00 Instruction Description: This instruction sends an int.errupt signal to a processor (computer). The interrupt remains active until it is recognized. 23 3 7 Instruction Description: Interrupt control is enabled. This instruction allows one more instruction to be executed before any interrupt can take place. 23 18 17 15 14 12 11 00 xxxx Instruction Description: Selectively clears the Interrupt Mask register according to xxxx. For each" 1" bit in xxxx, the corresponding bit position in the Interrupt Mask register is set to "0" (see table 5-5). 23 00 Instruction Description: Interrupt control is enabled. This instruction allows one more instruction to be executed before any interrupt can take place. Appendix A 3100 Compass This appendix describes the capabilities of the 3100 COMPASS assembly system and is not intended as a final system description. This information is preliminary and subject to change without notice. Coding Procedures 3100 COMPASS subprograms are written on standard coding sheets. A subprogram consists of symbolic or octal machine instructions and pseudo instructions. Symbolic machine instructions are alphabetic mnemonics for each of the 3100 machine instructions. Pseudo instructions are COMPASS instructions used for the following operations: subprogram identification and linkage ADDRESS FIELD The address field begins before column 41 anywhere after the blank which terminates the operation field and ends at the first blank column. It is composed of one or more subfields, depending upon the instruction. Subfields, which are separated by commas on the coding form, specify the following quantities: data definition (constants conversion) m or n word address data storage r or s character address system calls y operand (1 5-bit) assembler control z operand (17 -bit) output listing control b or i index register or interval quantity macro definition c character INSTRUCTION FORMAT A COMPASS instruction may contain location, instruction, address, comment, and identification fields. LOCATION FIELD A symbol in the location field (LOCN) is placed in columns 1-8. A symbol identifies the address of an instruction or data item. Location field symbols may be blank or consist of one to eight alphabetic or numeric characters; the first character must be alphabetic. Embedded blanks are ignored in location symbols. The following are examples of location symbols: A H3 ABCDEFGH P1234567 A single * in the location field signifies a line of comments. OPERATION CODE FIELD The operation code field (OP) consists of any of the 3100 mnemonic or octal instruction codes with modifiers, or any macro or pseudo instructions. The field begins in column 10 and ends at the first blank column. If a modifier is used, a comma must separate the operation code from the modifier; no blank columns may intervene. A blank operation field or a blank in column 10 results in a machine word with zeros in the operation field. v register file location ch channel x function code or comparison mask The interpretations of the address subfields for each set of 3100 instructions are described in the table on page A-2. An m, n, r, s, y or z subfield may contain: • a location symbol • the symbol ** which causes each bit in the subfield to be set to one • the symbol * which causes the assembler to insert the relocatable address of that instruction in the address field • an integer constant • an arithmetic expression • a literal b SUBFIELD- The index field (b) specifies an index register 1-3; or a symbol or expression which results in one of these digits may be used. Some instructions require a particular index register. If the b subfield is used with the octal operation codes, 0-7 may be used. c SUB FIE LD - The character field may con tain any . octal or decimal number, expression, or a symbol which is equivalent to a 6-bit binary number. Octal numbers must be suffixed with the letter B. ch SUBFIELD- The channel field may contain one digit 0-3 to designate an input! output channel, or a symbol equated to one of these digits, or an expression resulting in one of the digits. A-I x SUBFIELD- The code field may contain any of the interrupt or input! output codes or comparison mask. Either decimal numbers, octal numbers suffixed with the letter B, symbols, or expressions resulting in constants may be used. v SUBFIELD- The register file subfield specifies a location which may be 008-778. Any legal coding which results in a value 008-778 may be used. i SUBFIELD-In the MEQ and MTH instructions, this subfield specifies a decrement interval quantity of 1-8. COMMENTS FIELD Comments may be included with any instructions. A blank column must separate them from the last character in the address field and they may extend to column 72. Comments have no effect upon compilation, but are included on the assembly listing. INSTRUCTION 00-70 m,n 71 (Search) 72 (Move) 73-77 (1/0) first word address, last word address word address b index register y or z operand +1 operand F character c E r L D character address s address of first character first character address of source field first character address address of last character 1 first character address of receiving field last character address + + 1 ch channel x 1/0 or interrupt code i Interval quantity IDENTIFICATION FIELD Columns 73-80 may be used for sequence num- bers or for program identification. This field has no effect upon assembly. Pseudo-I nstructions MONITOR CONTROL The following pseudo instructions provide communication between 3100 COMPASS subprograms and the monitor. Some are required in every subprogram; others are optional. Unless otherwise noted, each instruction may have a location field and an address field. IDENT m -appears at the beginning of every COMPASS subprogram. The address field con- A-2 tains the name of the subprogram, which may be a maximum of eight alphanumeric characters, the first being alphabetic. A symbol in the location field is illegal and will result in an error flag (L) on the listing. END m -marks the end of every subprogram. When a program (consisting of one or more subprograms) is assembled for execution, one of the subprogram END cards must contain a location symbol in the address field to indicate the first instruction to be executed in the program. Only one END card can contain an address field symbol. A term in the location field is ignored. FIN IS -terminates an assembly operation. It is a signal to the assembler that no more programs are to be assembled. The FINIS card is placed after the last END card of the last subprogram in the source program. SYMBOL ASSIGNMENTS The pseudo instructions, EQ U; EQ U, C; ENTRY; and EXT define symbols as equal to other symbols, or values or identify symbols used to communicate with subprograms. Linkage between symbols in separate subprograms is provided by the monitor system. These pseudo instructions may appear anywhere between an IDENT and an END pseudo instruction. EQU m - assigns the result of the expression in the address field to the symbol in the location field. The result is a 15-bit address. The following forms are allowed: symbol EQU symbol symbol EQU constant (octal or decinal) symbol EQU expression (address arithmetic) Example: ENTRY SYM 1. SYM2, SYM3 can now be referenced by other subprograms. EXT m - Symbols used by a subprogram defined in another subprogram are declared as external symbols by placing them in the address field of an EXT pseudo instruction. Only word-location symbols (I5-bit) may be used. For example, to use the external symbols SYMI, SYM2, SYM3 in subprogram A, the following pseudo instruction would be written in subprogram A: EXT SYM 1.SYM2.SYM3 These symbols must be declared as ENTRY points in some other subprogram or subprograms which are loaded for execution with subprogram A. The address field may be extended to column 72; symbols are separated by commas. No spaces (blanks) can appear in a string of symbols. The location field of an EXT must be blank. Address arithmetic cannot be performed on external symbols. Example: FFI Example: OUT EQU JUMP + 2 If JUMP is assembled to address 00100, OUT will be assigned the value 00102. Numerical constants must follow the rules for symbolic instructions. Address arithmetic is permitted. A location field symbol may be equated to a decimal or octal constant. EQU, C m -is similar to EQU, except that the result is a 17-bit address. ENTRY m -defines location symbols which are referenced in other subprograms. These symbols, called entry points, must be placed in the address field of an ENTRY pseudo instruction. Any number of locations may be declared as entry points in the same ENTRY instruction. If two or more names appear in the address field, they must be separated by commas. No spaces (blanks) can appear within a string of symbols. The address field of the ENTR Y pseudo instruction may be extended to column 72 and the location field must be blank. Only word-location symbols (I5-bits) may be used. SYM 1,SYM2.SYM3 IDENT CAIRO ENTRY DEED. FFI EXT ABE. DAVID SJ 1 ** • BEN EQU DEED LDA HAKIM • ABE • • • RTJ DAVID • • END END FFI FINIS LISTING CONTROL The pseudo instructions which provide listing control for assembly listings are shown below. These instructions will not appear on the assembly listing and may be placed anywhere in a program. SPACE -controls line spacing on an assembly listing. A decimal constant in the address field designates the number of spaces to be skipped before printing the next line. If the number of A-3 spaces to be skipped is greater than the number of lines remaining to be printed on a page, the line printer skips to the top of the next page. A symbol in the location field is ignored. EJECT -causes the line printer to skip to the top of the next page when the assembled program is listed. A symbol in the location field is ignored. REM -is used to insert program comments in an assembly listing. The address field can be extended to column 72. Any standard key punch character can be used in the comments. If the comments are to be written on more than one line, successive REM pseudo instructions must be used. A symbol in the location field is ignored. NOLIST-causes the assembler to discontinue writing a listing of the program, starting with this instruction. LIST -causes the assembler to resume listing the program. This instruction is used after a NOLIST instruction; it is not necessary to use it to obtain a complete listing of a program. MACRO INSTRUCTIONS MACRO -defines the beginning of a sequence of instructions that will be inserted by the assembler in the source program whenever th~ location symbol of the MACRO instruction appears in an operation field. The end of the sequence of instruction is marked by an ENDM pseudo instruction. For example, if the sequence HOPE MACRO (PAMA) LOA PA INA 24B STA MA ENOM were defined and the following instructions appeared in the same program STA GARAGE HOPE (OW21 06) LOA FARM the assembled output would be STA A-4 GARAGE LOA OW21 INA 24B STA 06 LOA FARM EN OM - defines the end of a macro sequence. LI B M - names library macros. NAME (p1, ... ,pn)-is used to reference macros. The parameters pI, ... ,p2 are used by the routine, and name is a system defined macro. DATA STORAGE ASSIGNMENTS The following pseudo instructions reserve storage areas for blocks of data. BSS reserves storage blocks within the subprogram in which it appears. If these storage areas are to be referenced by other subprograms, the name assigned to the block is declared as an entry point in the program containing the block, and as an external symbol in the program referencing the block. Only work location symbols may be used. COMMON identifies storage areas to be referenced by more than one subprogram. DATA specifies special areas which may be preloaded with data; EXT and ENTRY are not needed to reference COMMON or DATA areas. Address arithmetic may be used, but all symbols must have been defined before the instruction is encountered. BSS m - reserves a storage area of length m in a subprogram on a common or data storage area. The address field may contain any expression which results in a constant. The resultant constant specifies number of words to be used. The address field of the first word of the reserved area is assigned the location field term of the BSS instruction. Other words or characters in the area may be referenced by addressing arithmetic or by indexing. BSS, C m - reserves a character storage area of length m in a subprogram. The address field is similar to the address field of BSS pseudo instruction. However, the resultant constant specifies the number of character positions to be reserved. COMMON -assigns location terms following it to a common storage block until a DATA or PRG pseudo instruction is encountered. ORGR, BSS and BSS, C are the only pseudo instructions which may follow a COMMON pseudo instruction.* Location and address fields of a COMMON pseudo instruction should be blank. COMMON may not be preset with data. The following example illustrates the foregoing pseudo instructions: *Occurrence of any other machine or data definition command causes the command and its successors to be assembled into the subprogram area. Example: IDENT During execution, one area in storage is assigned as common. All common storage may be filled repeatedly during program execution. A storage location assigned to the nth word in COMMON in subprogram 1 is the same location assigned to the nth word in common in subprogram 2. If the two subprograms in the above example were loaded together, the memory assignments would be as shown in the following table: BURKE COMMON A BSS 20 B BSS 10 C BSS 6 • • • END IDENT SPINOZA COMMON MARKET BSS STREET BSS 13 SINGER BSS 4 5 END Locations in memory relative to the beginning of common Name in subprogram BURKE Name in subprogram SPINOZA 1-5 A MARKET ) MARKET+4 6-18 A+5~A+17 STREET ) STREET+12 19-20 A+18~A+19 SINGER ) SINGER+1 21-22 B SINGER+2 ) SINGER+3 )A+4 )B+1 23-30 B+2 )B+9 31-36 C )C+5 DA TA - assigns all location symbols following it to a data block until a COMMON or PRG pseudo instruction is encountered. Data described by OCT; BCD; BCD,C; DEC; DECD and VFD pseudo instructions may be assembled into a DATA block. Areas may be reserved within a DATA block by the BSS and BSS,C pseudo instructions. The following is an example of a DATA pseudo instruction coded within a subprogram: Example: • • • LOA APRESMOI DATA CONS OCT 10,11,12,13 PRG * STA LEDELUGE A data area named CONS would be reserved and the octal constants 10, 11, 12, and 13 loaded into the four words in this area. In the source program, STA LEDELUGE would appear in the next location after LDA APRESMOI. PRG -terminates the definition of a COMMON or DATA area. CONSTANTS Octal, decimal, and BCD constants may be inserted in a 3100 COMPASS program by using the pseudo instructions listed below. Location terms may be used and the address field may extend to column 72, if necessary. OCT m1 ,m2, ... ,mn -inserts octal constants into consecutive machine words. A location term is optional; ifpresent, it will be assigned to the first word. The address field consists of one or more consecutive subterms, separated by commas. Each subterm may consist of a sign (+ or - or none), followed by up to eight octal digits. Each constant is assigned to a separate word. If a location term is present, it will be assigned to the first word. If less than eight digits are specified, the constant is right justified in the word and leading zeros inserted. A-5 DECD ml,m2, ... ,mn-converts decimal constants to equivalent 48-bit binary values and stores them in consecutive groups of two machine words. Each constant may be written in either fixed or floating point format. The decimal numbers to be converted are written in the address field of the DECD instruction as follows: Floating point constant consists of a signed or unsigned decimal integer of 14 digits. It is identified as a floating point constant by a decimal point which may appear anywhere within the digital string. A binary scale factor or decimal scale factor (indicated by B ± b or D ± d, respectively) is permitted. The result after scaling must not exceed the capacity of the hardware (approximately 10 ±308). Fixed point constant format is similar to that of the DEC single precision constants. Up to 14 decimal digits may be specified, expressing a value the magnitude of which is less than 247. Decimal and binary scale factors may be used. Low order bits are not lost; the signed 48-bit binary result is stored in two consecutive computer words. No spaces may occur within a number, including its associated scale factors, as a space indicates the end of the constant. Plus signs may be omitted. Any number of constants may appear in a DECD instruction. Successive constants are separated by commas. Examples: LOCN Op CONST A DECO -12345. FLOATING PT CONST CONST B DECO + 12345 FIXED PT CONST CONST C DECO -12345.0+5 FLOATING PT CONST, OECSCALE CaNST 0 DECO 123450-3 FIXED PT CaNST, OECSCALE Address Field CONST E DECO + 12345B+8 FIXED PT CONST, BINSCALE CaNST F DECO +12345.012B-18 FLOATING PT CaNST, OECBIN SC DEC ml ,m2, ... ,mn - inserts 24-bit decimal integer constants in consecutive machine words. The D and B scaling is identical to the DECD scaling, but only positive integer values less than 233 may be used. If a location term is present, it is assigned to the first constant. BCD n,clc2, ... ,c4n-inserts binary-coded decimal characters into consecutive words. If a location term is present, it will be assigned to the first word. The address field consists of a single digit n, which specifies the number of four-character words needed to store the BCD constant, followed by a comma and the BCD characters. The next 4n character positions after the comma will be stored. Any character string which terminates before column 73 may be used; n is restricted accordingly. BCD,C n,C1C2, ... ,Cn -places n characters in the next available m character positions in memory. If the previous instruction were also a BCD,C instruction, the next character position is defined as the one which follows the last position used by the previous instruction. If a location symbol is used, it will be assigned to the first character position in this field. If the previous instruction were not a BCD,C instruction, the next character position A-6 Comments would be the first character position (0) of the next available word. Any character string which terminates before column 73 may be used; n is restricted accordingly. VFD mln1/vl .. ./mpnp/vp-assigns data in continu- ous strings of bits rather than in word units. Octal numbers, character codes, program locations and arithmetic values may be assigned consecutively in memory, regardless of word breaks. The address field consists of one or more data fields. In each data field m specifies the mode of the data, n the number of bits allotted: and v the value. Four modes are allowed: o Octal number. If it is preceded by a minus sign, the one's complement form is stored. H Hollerith character code. The field length must be a mUltiple of six. Any printable character may appear in the v field except blanks or commas. Either a space or comma immediately succeeds the last character. A Arithmetic expression or decimal constant. The v field consists of an expression formed according to the rules for address field arithmetic, with the following restrictions: I vi ::;; n 1 n must be ~ 24 and 2 - 1-1 unless a relocatable expression is used, in which case, n = 1 5 for word addresses and n = 1 7 for character addresses. must be placed in the correct position in the address portion of a word to insure that it will be relocated by the loader. C Character Expression. 2 When a relocatable expression is used, it Example: VFD 012/-737,A27/A-X+B,H24/+A3 ,A15/NAME+2,H12/BQ A X, and B are non-relocatable symbols. Four words are generated, with the data placed as follows: 23 I 70 12 0 40 I [A* 14 23 I-x + B I 3 0 [NAME + 0 21 I 0 WORD 2 14 60 I 20 WORD 1 23 8 2] 23 I I ADDITIONAL PSEUDO INSTRUCTIONS Additional lines of coding may be generated by the following pseudo instructions: I FZ m,n - n succeeding lines of coding will be assembled if m is zero. The integer n must be a positive numerical integer and m may be a symbol, an address arithmetic symbol, or a literal. If m is nonzero, n succeeding lines of coding will be bypa~sed by the assembler. I FN m,n - n succeeding lines of coding will be as sembled if m is nonzero; n must be a positive numerical integer and m may be a symbol, address arithmetic symbol or literal. If m is zero, n succeeding lines of coding will be bypassed by the assembler. The pseudo instructions, 1FT and IFN, may be used within the range of a MACRO definition only. 1FT m,n,p - p succeeding lines of coding will be generated if character string m equals character string n. The integer p must be a positive numerical integer and m and n may be a formal parameter or a literal. If m ~ n, p succeeding lines of coding will be bypassed. IFF m,n,p-p succeeding lines of coding will be generated if m ~ n. The integer p must be a positive integer and m and n may be a formal parameter or a literal. If m = n, p succeeding lines of coding will be bypassed. B Q 0 I a 0 0 I 0 WORD 4 WORD 3 The YFD address field is terminated by the first blank column not within a Hollerith field. 12 ORGR m -the value in the address field will be assembled as the beginning location for subsequent instructions. The value may be in program, data area, or common area mode. The occurrence of a mode change pseudo operation, COMMON, DATA or PRG, terminates ORGR and subsequent instructions are assembled in the new mode. NOP-No operation. An ENI y, 0 instruction is inserted. the information beginning in the address field is printed at the head of each page of the output listing which follows. The first page of listing may be titled by presenting the TITLE card immediately following the IDENT card. TITLE - ASSEMBLY LISTING FORMAT An assembly listing contains the source program instructions and the corresponding octal machine instructions. The addresses assigned to each subprogram are relative addresses only. Absolute addresses are assigned when the program is loaded by the monitor loader. All common blocks are assigned consecutively, starting at relative location 00000. The range of locations assigned to the machine instructions (first word address and last word address plus one) are given at the beginning of each subprogram. Following this is a list of all entry points and external symbols, and the address assignments for all COMMON and DATA pseudo instructions. References to external symbols are strung together by the assembler. The monitor loader assigns the proper absolute addresses. A-7 The address of each instruction word is the leftmost field for each instruction in the assembled listing. (Error codes appear to the left of this field.) External address field symbols are indicated by an X immediately to the left of the octal address field of each instruction. P indicates Program Relocatable, and C indicates Common. Subsequent next fields from left to right on the listing are an 8-digit location contents field, a 2-digit operation code, a I-digit b-subfield, a 5-digit address, and a I-digit character position. The remaining fields correspond to those in the symbolic source program. Listing format: location location contents op 5 or 6 8 2 b addr 5 char pos source line o Same symbol used in more than one location field term. Only the first symbol is recognized; the remainder are ignored. A list of doubly defined symbols appears on the assembled listing. F Symbol table is full. No more location field symbols will be recognized. Also designates overflow of MACRO parameter table. D Illegal operation code. Zeros are substituted for the operation code. U Undefined symbol. The assembler assigns the symbol to a region following the last program entry. A list of undefined symbols will appear on the output listing. C An attempt was made to preset COMMON. L A symbol appears in the location field when not permitted, a symbol is missing in the location field when one is required, or an illegal location symbol appears. 80 digits ERROR CODES The following error codes may appear as the leftmost field on an assembled listing: Code A A-8 M A modifier appears in the location field when not permitted, a modifier is missing in the operation field when one is required, or an illegal modifier appears in the operation field. T Illegal character or expression in the address field. A character address symbol was used in an address subfield requiring a word symbol; significant bits are lost. TABLE A-1 3100 COMPASS and BASIC ASSEMBLER MACHINE INSTRUCTIONS Operation Field 00 Instruction Address Field RTJ m m m m m m unconditional stop; read next instruction from location m jump if key 1 is set jump if key 2 is set jump if key 3 is set jump if key 4 is set jump if key 5 is set jump if key 6 is set return jump 01 UJP. I m. b unconditional jump 02 IJI IJD m. b m. b index jump; increment index index jump; decrement index 03 AZJ. EO NE GE LT AOJ. EO NE GE LT m HLT SJ1 SJ2 SJ3 SJ4 SJ5 SJ6 04 ASE.S OSE. S ISE m m compare A with zero; m compare A with 0; y y y. b { jump jump jump jump jump jump jump jump { if if if if if if if if (A) (A) (A) (A) (A) (A) (A) (A) ASG.S OSG.S ISG y. b skip next instruction. if (A) ~ y skip next instruction. if (0) ::; y b skip next instruction. if (B ) ~ y 06 MEO m. i masked threshold search 07 MTH m. i masked equality search 10 lSI ISO SSH y. b y. b m index skip; increment index index skip; decrement index storage shift 11 ECHA. S z enter A with 17 -bit character address 12 SHA SHQ y. b y. b shift A shift Q 13 SHAO SCAO y. b y. b shift AO scale AO 14 ENA ENI ENO Y y. b enter A enter index enter 0 y 15 INA INI INO y y. b 16 XOA. S XOO. S XOI Y Y ANA. S ANO. S ANI y 17 Y y. b y y. b 0 ~ 0 ::; 0 = (0) ~ (0) ~ (0) ::; (0) skip next instruction. if (A) = y skip next instruction. if (0) = y b skip next instruction. if (B ) = y 05 Y Y = ~ 0 increase A increase index increase 0 exclusive OR y and (A) exclusive OR y and (0) b exclusive OR y and (B ) logical product (AND) of y and (A) logical product (AN D) of y and (0) logical product (AND) of y and (Bb) A-9 TABLE A-1 - (cant.) Operation Field Instruction 20 LDA, I m. b load A 21 LDQ. I m. b load Q 22 LACH r. 1 load A character 23 LQCH r. 2 load Q character 24 LCA, I m. b load A complement 25 LDAQ.I m. b load AQ (double precision) 26 LCAQ.I m. b load AQ complement (double precision) 27 LDL. I m. b load logical 30 ADA. I m. b add to A 31 SBA, I m. b subtract from A 32 ADAQ.I m. b add to AO 33 SBAO. I m. b subtract from AO 34 RAD. I m. b replace add 35 SSA, I m. b selectively set A 36 SCA, I m. b selectively complement A 37 LPA, I m. b logical product with A 40 STA, I m. b store A 41 STQ. I m. b store Q 42 SACH r. 2 store character from A 43 SQCH r. 1 store character from 0 44 SWA. I m. b store 15-bit word address from A 45 STAQ. I m. b store AO 46 SCHA. I m. b store 17 -bit character address from A 47 STI. I m. b store index 50 MUA, I m. b multiply A 51 DVA, I m. b divide AQ (48 by 24) 52 CPR. I m. b 53 TIA TAl TMA TAM TMO TOM TMI TIM AQA AlA IAI b b v v v v v.b v.b b within limits test b transmit (B ) to A transmit (A) to Bb transmit (high speed memory) to A transmit (A) to high speed memory transmit (high speed memory) to 0 transmit (Q) to high speed memory transmit (high speed memory) to Bb b transmit (B ) to high speed memory transmit (A) (0) to A b transmit (A) (B ) to A b transmit (B ) (A) to Bb 54 LDI. I m. b load index 56* MUAQ. I m. b multiply AQE (96 by 48) 57* DVAO. I m. b divide AQE (48 by 48) b + + + 60* FAD. I m. b floating add to AQ 61* FSB. I m. b floating subtract from AQ *Trapped instructions. A-lO Address Field TAB LE A-1 - (cant.) Operation Field Address Field Instruction 62* FMU, I m, b floating multiply AQ 63* FDV, I m, b floating divide AQ 64* lDE r, 1 load E 65* STE r, 2 store E 66* ADE r, 3 add to E 67* SBE r, 3 subtract from E 70* SFE EZJ, EQ IT EOJ SET y, b m shift E compare E with zero; jump if E compare E with zero; jump if E jump to m on E overflow set D to value of y m y < 0 0 search character equality search character inequality c, m1, m2 c, m1, m2 71 SRCE, INT SRCN, INT 72 MOVE,INT Lr, s move 73 INPC, INT, B, H, A or NC INAC, A or NC ch, r, s ch input character block to memory input character to A 74 INPW, INT, B, N, A or NC INAW, A or NC ch, m, n ch input word block to memory input word to A 75 OUTC, INT, B, H, A or NC OTAC, A or NC ch, r, s ch output character block from memory output character from A 76 OUTW, INT, B, N, A or NC OTAW, A or NC ch, m, n ch output word block from memory output word from A 77.0 CON x, ch connect 77.1 SEL x, ch select 77.20 COPY x, ch x=o copy status 77.2 EXS x, ch x~o external sense 77.3 INS x, ch x~o internal sense 77.30 CINS x=o copy internal status 77.4 INTS x, ch interrupt sense 77.50 INCl x interrupt clear 77.51 10Cl x 1/0 clear 77.52 SSIM x selective set interrupt mask 77.53 SCIM x selective clear interrupt mask 77.57 IAPR x interrupt associated processor 77.6 PAUS x pause 77.70 SLS selective stop 77.71 SFPF set floating point fault 77.72 SBCD set BCD fault 77.73 DINT disable interrupt control 77.74 EINT enable interrupt control 77.75 CTI console typewriter in 77.76 eTa console typewriter out 77.77 UCS unconditional stop f characters from r to s *T rapped instructions. A-II Appendix 8 BasIc Assembler Coding Procedures Basic Assembler Coding Procedures BASIC Assembler programs are written in a manner similar to 3100 COMPASS programs. Each program is a complete entity and may be designed for any 3100 equipment configuration. Object programs produced by the BASIC Assembler for the 3104 4K storage configuration are loaded by the BASIC Loader; those for 8K or larger configurations are loaded by 3100 SCOPE. INSTRUCTION FORMAT consists of the following fields: LOCATION FIELD -from one to six alphabetic or numeric characters; the first character must be alphabetic. OPERATION FIELD-any of the 3100 mnemonic instruction codes with modifiers, or the BASIC Assembler pseudo instructions. ADDRESS FIELD -from one to six character location symbols, the special ** or * symbol, an integer constant, or an expression (address arithmetic) consisting of two terms. COMMENTS FIELD -may be included with any instruction. A full line of comments may be inserted by placing an asterisk in the location field. IDENTIFICATION FIELD -sequence numbeT or program identification. Pseudo-I nstructions PROGRAM IDENTIFICATION is provided for each program. IDENT m appears atthe beginning of a BASIC Assembler program. The address field contains the name of the subprogram. END m marks the end of the program. The address field may contain a symbol which is used as the entry point to the program. DATA STORAGE ASSIGNMENTS BSS m reserves a block of words of length m. BSS, C m reserves a block of characters of length m. DATA DEFINITION OCT m inserts an octal constant into a machine word. DEC m inserts a single precision decimal constant into a machine word. Decimal and binary scaling is permitted. DECO m inserts a double precision decimal constant into two consecutive machine words. Floating or fixed point numbers are allowed, also decimal and binary scaling. SYMBOL ASSIGNMENTS for each program. EQU m equates an undefined symbol to a defined word address symbol. EQU, C m equates an undefined symbol to a defined character address symbol. ORGR m assembles the value specified in the address field as the beginning location for subsequent instructions. A symbol in the address field must be defined elsewhere in the program. NOP m inserts a "do-nothing" instruction. The address field may contain a symbol. LISTING CONTROL for assembly listings. SPACE controls line spacing. EJ ECT moves the line printer to the top of the next page. REM is used to insert program comments. NOLIST suppresses the output listing lines. LIST resumes printing after a NOLIST instruction. BCD n,C1C2 ... C4n BCD, Cn,c1c2 ... Cn inserts binary-coded decimal characters into consecutive words. inserts binary-coded decimal characters into the next available n character positions in storage. ASSEMBLY LISTING FORMAT An assembly listing contains the source program and corresponding octal machine instructions. The program may be loaded absolutely, beginning at location 00000 or relocated into memory relative to some location other than 00000. Error codes correspond to 3100 COMPASS error codes; A, D, F, L, M, 0 and T codes are included. B-1 Appendix C Number Systems • ARITHMETIC • CONVERSIONS • FIXED POINT AND FLOATING POINT NUMBERS Number Systems Any number system may be defined by two characteristics, the radix or base and the modulus. The Ox2 5 =Ox32= 0 + 1 X 24 = 1 x 16 = 16 +1x,2 3 =1x8 8 +Ox2 2 =Ox4 0 +1x21=1x2 2 +Ox2° = Ox 1 _0__ radix or base is the number of unique symbols used in the system. The decimal system has ten symbols, o through 9. Modulus is the number of unique quantities or magnitudes a given system can distinguish. For example, an adding machine with ten digits, or counting wheels, would have a modulus of 10 10 _1. The decimal system has no modulus because an infinite number of digits can be written, but the adding machine has a modulus because the highest number which can be expressed is 9,999,999,999. Fractional binary numbers may be represented by using the symbols as coefficients of ascending negative powers of the base. 2 1 = 1;2 Binary Point Most number systems are positional, that is, the relative position of a symbol determines its magnitude. In the decimal system, a 5 in the units column represents a different quantity than a 5 in the tens column. Quantities equal to or greater than 1 may be represented by using the 10 symbols as coefficients of ascending powers of the base 10. The number 98410 is: 9 x 10 2 = 9 x 100 = 900 +8 X 10 1 = 8 x 10 = 80 1 4 +4 x 10° = 4 x 98410 Quantities less than 1 may be represented by using the 10 symbols as coefficients of ascending negative powers ofthe base 10. The number 0.59310 may be represented as: 5x 10- 1 = 5x.1 +9x10- 2 =9x.01 2 3x10- 3 = 3x.001 BINARY NUMBER SYSTEM Computers operate faster and more efficiently by using the binary number system. There are only two symbols 0 and 1; the base = 2. The following shows the positional value: 24 2 3 22 21 20 =16 =8 =4 =2 =1 Binary point The binary number 0 I I 0 I 0 represents: 2- 2 = % 2- 3 2- 4 = Va = 1/16 2- 5 ... = 1/32 The binary number 0.10 110 may be represented as: = 1 x 112 = 112 = Ox 1/4 = 0 = 1 x 118 = 1/8 8/1 6 0 +1x2- 3 2/1 6 +1x2 4=1x1/16=1/16= J1l6 11/1610 1x2- +Ox2- 1 2 OCTAL NUMBER SYSTEM The octal number system uses eight discrete symbols, 0 through 7. With base eight the positional value is: 85 32,768 84 83 82 4,096 512 64 8° 1 The octal number 5138 represents: 5 x 8 2 = 5 x 64 = 320 +1x8 1 =1x8 8 +3 x 8° = 3 x 1 __ 3_ .5 .09 .003 0.59310 25 =32 2610 33110 Fractional octal numbers may be represented by using the symbols as coefficients of ascending negative powers of the base. 8- 1 1/8 8- 3 1/512 8- 4 1/4096 The octal number 0.4520 represents: 1 4x8- =4x1/8 =4/8 =256/512 + 5x8 - 2 = 5x 1/64 = 5/64 = 40/51 2 +2x8- 3=2x1 1512 =2/512 = 21512 298/512 = 149/25610 C-l Arithmetic ADDITION AND SUBTRACTION Binary numbers are added according to the following rules: as follows (the decimal equivalents verify the result): Partial Sum Carry ( 11 ) Subtraction may be performed as an addition: +4 (1 O's complement of subtrahend) 2 (difference - omit carry) The second method shows subtraction performed by the "adding the complement" method. The omission of the carry in the illustration has the effect of reducing the result by 10. One's Complement. The 3100 performs all arithmetic and counting operations in the binary one's complement mode. In this system, positive numbers are represented by the binary equivalent and negative numbers in one's complement notation. The one's complement representation of a number is found by subtracting each bit of the number from l. For example: 0110 (7) +(4) 8 (minuend) or 2 (difference) 1111 -1001 1011 Sum The addition of two binary numbers proceeds 8 (minuend) -6 (subtrahend) 0111 +0100 0011 1 Augend' Addend 0+0=0 0+1=1 1+0=1 1 + 1 = 0 with a carry of 1 MULTIPLICATION Binary multiplication proceeds according to the following rules: OxO Ox 1 1 xO 1x1 = 0 = 0 = 0 = 1 Multiplication is always performed on a bit-bybit basis. Carries do not result from multiplication, since the product of any two bits is always a single bit. Decimal example: 9 (one's complement of 9) This representation of a negative binary quantity may also be obtained by substituting" l's" for "O's" and "O's" for" I 's". The value zero can be represented in one's complement notation in two ways: 14 12 multiplicand multiplier partial products < 28 14 (shifted one place left) 16810 product The shift of the second partial product is a shorthand method for writing the true value 140. Binary example: 0000--'002 1111--.112 Positive (+) Zero Negative (-) Zero The rules regarding the use of these two forms for computation are: Both positive and negative zero are acceptable as arithmetic operands. 2 If the result of an arithmetic operation is zero, it will be expressed as positive zero. One's complement notation applies not only to arithmetic operations performed in A, but also to the modification of execution addresses in the F register. During address modification, the modified address will equal 777778 only if the unmodified execution address equals 777778 and b = 0 or (B b) = 777778. C-2 multiplicand multiplier (14) (12) partial products { product ( 16810) 1110 1100 0000 0000 1110 1110 shift to place digits in proper columns 101010002 The computer determines the running subtotal of the partial products. Rather than shifting the partial product to the left to position it correctly, the computer right shifts the summation of the partial products one place before the next addition is made. When the multiplier bit is "1", the multi- plicand is added to the running total and the results are shifted to the right one place. When the multiplier bit is "0", the partial product subtotal is shifted to the right (in effect, the quantity has been multiplied by 102). 1110 divisor 1 1 01 \1 0 11 1 001 1101 10100 1101 1110 1101 11 DIVISION The following examples shows the familiar method of decimal division: ,.-1'---4-=---_ q u oti e nt 13\185 dividend 13 divisor 55 52 3 partial dividend remainder The computer performs division manner (using binary equivalents): In a similar quotient (14) dividend partial dividends remainder (3) However, instead of shifting the divisor right to position it for subtraction from the partial dividend (shown above), the computer shifts the partial dividend left, accomplishing the same purpose and permitting the arithmetic to be performed in the A register. The computer counts the number of shifts, which is the number of quotient digits to be obtained; after the correct number of counts, the routine is terminated. Conversions The procedures that may be used when converting from one number system to another are power addition, double dabble, and substitution. Recommended Conversion Procedures (Integer and Fractional) Recommended Method Conversion Binary to Decimal Octal to Decimal Decimal to Binary Decimal to Octal Binary to Octal Octal to Binary Power Addition Power Addition Double Dabble Double Dabble Substitution Substitution GENERAL RULES rj rj > < rf : use Double Dabble, Substitution rf : use Power Addition, Substitution rj = Radix of initial system rf = Radix of final system POWER ADDITION To convert a number from rj to r fer j < rr) write the number in its expanded rj polynomial form and simplify using r f arithmetic. EXAMPLE 1 Binary to Decimal (Integer) 010 1112=1 (24) +0(2 3 )+1(2 2)+1(2 1 )+1(2 0 ) =1 (16) +0(8) +1(4) +1(2) +1(1) =16 +0 +4 +2 +1 =2310 EXAMPLE 2 Binary to Decimal (Fractional) .01012 =(2- 1)+1(2- 2) +0(2- 3 ) +1(2- 4 ) =0 +1/4 +0 +1/16 = 5/1610 EXAMPLE 3 Octal to Decimal (Integer) 3248=3(8 2 ) +2(8 1) +4(8 0 ) =3(64)+2(8) +4(1) =192 +16 +4 =21210 EXAMPLE 4 Octal to Decimal (Fractional) .448 = 4( 8 - 1) + 4 (8- 2) =4/8 +4/64 =36/6410 DOUBLE DABBLE To convert a whole number from ~ to r f (r j > r f ): 1 Divide ri by rf using ri arithmetic 2 The remainder is the lowest order bit in the new expression 3 Divide the integral part from the previous operation by rr 4 The remainder is the next higher order bit in the new expression 5 The process continues until the division prodUces only remainder ~hich will be the highest order bit in the rf expression. a C-3 To convert a fractional number from 1 MUltiply ri by rr using ri fi to n: EXAMPLE 4 arithmetic 2 The integral part is the highest order bit in the new expression Decimal to Octal (Fractional) .55 x 8 = 4.4; record .4 x 8 = 3.2; record .2 x 8 = 1.6; record 3 Multiply the fractional part from the previous operation by rf 4 The integral part is the next lower order bit in the new expression' 4 3 .431 ... Thus: .5510 .431 ... 8 5 The process continues until sufficient precision is achieved or the process terminates, Decimal to Binary (Integer) EXAMPLE 1 45 22 11 5 2 -;- -;- -;- 22 remain~er 1; record 11 remainder 0; record 5 remainder 1; record 2 remainder 1; record 1 remainder 0; record 0 remainder 1 ; record 2 2 2 2 2 2 Thus: 4510 1011012 0.5; record 1.0; record 0.0; record Thus: .2510 .0102 EXAMPLE 3 273 -7- 8 34 -7- 8 4 -7- 8 This method permits easy conversion between octal and binary representations of a number. If a .number in binary notation is 'pa-rtitioned into triplets to the right and left of the binary point, each triplet may be converted into an octal digit. Similady each octal digit may be converted into a triplet of binary digits. 0 .1 0 101101 Decimal to Binary (Fractional) EXAMPLE 2 .25 x 2 .5 x 2 .0 x 2 SU BSTITUTION 1 0 EXAMPLE 1 0 Binary to Octal Binary = Octal = .010 110 000 001 010 6 0' . 1 2 Decimal to Octal (Integer) 34 remainder 1; record 4 remainder 2; record o remainder 4; record Thus: 27310 = 1 2 4421 EXAMPLE 2 Octal to Binary Octal = 6 5 0 Binary = 110 101 000 4218 227 010 010 111 Fixed Point and Floating Point Numbers (The following information is for reference only and does not necessarily imply-computer capability). Any number may be expressed in the form kB n , where k is a coefficient, B a base number, and the exponent n the power to which the base number is raised. A fixed point number assumes: The exponent n = 0 for all fixed point numbers. 2 The coefficient, k, occupies the same bit positions within the computer word for all fixed point numbers. BIT NO. 23 A 3100 fixed point number consists of a sign bit and coefficient as shown below. The upper bit of any 3100 fixed point number designates the sign of the coefficient (23 lower order bits). If the bit is "1", the quantity is negative since negative numbers are represented in one's complement notation; a "0" sign bit signifies a positive coefficient. I 22 I~_~_I?_TN~I C-4 3 The radix (binary) point remains fixed with respect to one end of the expression. ____________________ 00 ~~~~ _____ C_O_E_FF_IC_I_E_N_T______________ I ~I The radix (binary) point is assumed to be immediately to the right of the lowest order bit (00). In many instances, the values in a fixed point operation may be too large or too small to be expressed by the computer. The programmer must position the numbers within the word format so they can be represented with sufficient precision. The process, called scaling, consists of shifting the values a predetermined number of places. The numbers must be positioned far enough to the right in the register to prevent overflow but far enough to the left to maintain precision. The scale factor (number of places shifted) is expressed as the power of the base. For example, 5,100,00010 may be expressedasO.5I x 10 7,0.051 X 108,0.0051 X 10 9, etc .. The scale factors are 7, 8, and 9. Since only the coefficient is used by the computer, the programmer is responsible for remembering the scale factors. Also, the possibility of an overflow during intermediate operations must be considered. For example, if two fractions in fixed poin.t format are multiplied, the result is a number < 1. If the same two fractions are added, subtracted, or divided, the result may be greater than one and an overflow will occur. Similarly, if two integers 47 I 46 F = fraction E = exponent In floating point, different coefficients_ need not relate to the same power of the base as they do in fixed point format. Therefore, the construction of a floating point number includes not only the coefficient but also the exponent. 00 I '- / V COEFFICIENT SIGN True Positive Exponent +0 +1 +2 --- +1776 + 17778 I '- v . Biased Exponent / COEFFICIENT EXP'NENT (INCLUDING BIAS) Coefficient. The coefficient consists of a 36-bit fraction -in the 36 lower-order positions of the floating point w.ord. The coefficient is a normalized fraction; it is equal to or greater than 1/2 b~t less than 1. The highest order bit position (47) is occupied by the sign bit of the coefficient. If the sign bit is a "0", the coeffiCient is positive; a "1" bit denotes a negative fraction (negative fractions are represented in one's complement notation). Exponent. The floating point exponent is expressed as an II-bit quantity with a value ranging from 00008 to 37778. It is formed by adding a true positive exponent and a bias of20008 or a true negative exponent and a bias of 17778. This results in a range of biased exponents as shown below. True Negative Exponent Biased Exponent 2000 2001 2002 - - -- -0 -1 -2 2000* 1776 1775 -- ------ - - -- -- ------ 3776 37778 -1776 -17778 0001 00008 *Minus zero is sensed as positive zero by the computer and is therefore biased by 20008 rather than 17778. where: 36 35 I "---y---/ are multiplied, divided, subtracted or added, the likelihood of an overflow is apparent. As an alternative to fixed point operation, a method involving a variable radix point, called floating point, is used. This significantly reduces the amount of bookkeeping required on the part of the programmer. By shifting the radix point and increasing or decreasing the value of the exponent, widely varying quantities which do not exceed the capacity of the machine may be handled. Floating point numbers within the computer are represented in a form similar to that used in "scientific" notation, that is, a coefficient or fraction multiplied by a number raised to a power. Since the computer uses only binary numbers, the numbers are multiplied by powers of two. C-5 The exponent is biased so that floating point operands can be compared with each other in the normal fixed point mode. Number = EXAMPLE 1 o o 0 000 As an example, compare the unbiased exponents of +528 and +0.028 (Example 1). +52 (36 bits) 110 000 Coefficient Exponent Coefficient Sign Number = o 111 +0.02 111 (36 bits) 011 Coefficient Exponent Coefficient Sign In this case +0.02 appears to be larger than +52 because of the larger exponent. If, however, both exponents are biased, (Example 2) changing the sign of both exponents makes +52 greater than +0.02. EXAMPLE 2 +528 Number = o o Coefficient Sign 000 Number = o Coefficient Sign 000 (36 bits) 110 Exponent o 111 Coefficient +0.028 111 011 (36 bits) Exponent When bias is used with the exponent, floatingpoint operation is more versatile since floatingpoint operands can be compared with each other in the normal fixed point mode. . CONVERSION PROCEDURES Fixed Point to Floating Point Coefficient 4 Assemble the number in floating point. 5 Inspect the sign of the coefficient. If negative, complement the assemble~ floating point number to obtain the true floating point representation of the number. If the sign of the coefficient is positive the assembled floating point number is the true representation. 1 Express the number in binary. 2 Normalize the number. A normalized number has the most significant 1 positioned immediately to the right of the binary point and is expressed in the range 1/2 :s:: k < 1. 3 I nspect the sign of the true exponent. If the sign is positive add 20008 (bias) to the true exponent of the normalize.d number. If the sign is negative add the bias 17778 to the true exponent of the normalized number. In either case, the resulting exponent is the biased exponent. C-6 EXAM PLE 1 Convert +4.0 to floating point 1 The number is expressed in octal. 2 Normalize. 4.0 = 4.0 x 8° = 0.100 x 23. 3 Since the sign of the true exponent is positive, add 20008 (bias) to the true exponent. Biased exponent = 2000 + 3. 4 Assemble number in floating point format. Coefficient = 400 000 000 0008 Biased Exponent = 20038 Assembled word = 2003 400 000 000 0008 5 Since the sign of the coefficient is positive, the floating point representation of +4.0 is as shown. If, however, the sign of the coefficient were negative, it would be necessary to complement the entire floating point word. 1 The number is expressed in octal. 2 Normalize. -4.0 = -4.0 x 8° = -0.100 x 2 3 3 Since the sign of the true exponent is positive, add 20008 (bias) to the true exponent. Biased exponent = 2000 + 3. 4 Assemble number in floating point format. Coefficient = 400000000 OOOa Biased Exponent = 20038 Assembled word = 20034000000000008 5 Since the sign of the coefficient is negative, the assembled floating point word must be complemented. Therefore, the true floating point representation for -4.0 = 57743777777777778 EXAMPLE 3 Convert 0.510 to floating point 2 Normalize. 0.4 = 0.4 x 80 = 0.100 x 20 3 Since the sign of the true exponent is positive, add 20008 (bias) to the true exponent. Biased exponent = 2000 + O. 4 Assemble number in floating point format. Coefficient = 400000000 0008 Biased Exponent = 2000a Assembled word = 2000 400 000 000 0008 5 Since the sign of the coefficient is positive, the floating point representation of +0.510 is as shown. If, however, the sign of the coefficient were negative, it would be necessary to complement the entire floating point word. This example is a special case of floating point since the exponent of the normalized number is 0 and could be represented as -0. The exponent would then be biased by 17778 instead of 20008 because of the negative exponent. The 3200, however, recognizes -0 as +0 and biases the exponent by 20008. Convert 0.048 to floating point 0.100 x 2- 2 If the biased exponent is equal to or greater than 20008 subtract 20008 to obtain the true exponent. If less than 20008 subtract 17778 to obtain true exponent. 3 Separate the coefficient and exponent. If the true exponent is negative the binary point should be moved to the left the number of bit positions indicated by the true exponent. If the true exponent is positive, the binary point should be moved to the right the number of bit positions indicated by the true exponent. fixed binary. The sign of the coefficient will be negative if the floating point number was complemented in step one. (The sign bit must be extended if the quantity is placed in a register.) 5 Represent the fixed binary number in fixed octal notation. EXAMPLE 1 Convert floating point number 2003400000000,0008 to fixed octal The floating point number is positive and remains uncomplemented. 2 The biased exponent> 20008, therefore subtract 2000a from the biased exponent to obtain the true exponent of the number. 2003 - 2000 = +3 3 Coefficient = 400 000 000 0008 = .1002. Move binary point to the right 3 places. Coefficient = 100.02. 4 The sign of the coefficient is positive because the floating point number was not complemented in step one. 5 Represent in fixed octal notation. 1 The number is expressed in octal. 2 Normalize. 0.04 = 0.04 x 80 = 0.4 x 8 - If the floating point number is negative, complement the entire floating point word and record the fact that the quantity is negative. The exponent is now in a true biased form. 4 The coefficient has now been converted to Convert to octal. 0.510 = 0.48 EXAMPLE 4 shown. If, however, the sign of the coefficient were negative, it would be necessary to complement the entire floating point word. Floating Point to Fixed Point Format Convert -4.0 to floating point EXAM PLE 2 5 Since the sign of the coefficient is positive, the floating point representation of 0.048 is as 1 100.0 x 2° = 4.0 x 8°. 3 3 Since the sign of the true exponent is negative, add 17778 (bias) to the true exponent. Biased exponent = 17778 + (-3) = 17748. 4 Assemble number in floating point format. Coefficient = 4000000000008 Biased Exponent =17748 Assembled word = 17744000000000008 EXAMPLE 2 Convert floating point number 5774377 777 777 7778 to fixed octal The sign of the coefficient is negative, therefore, complement the floating point n\Jmber. Complement = 2003 400 000000 0008 2 The biased exponent (in complemented form) > 20008, therefore subtract 20008 from the C-7 biased exponent to obtain the true exponent of the number. 2003 - 2000 = +3 The floating point number is positive and remains uncomplemented. 3 Coefficient = 4000 000 000 0008 = 0.1002 Move binary point to the right 3 places. Coefficient = 100.02 2 The biased exponent < 20008, therefore subtract 17778 from the biased exponent to obtain the true exponent of the number. 17748- 4 The sign of the coefficient will be negative because the floating point number was originally complemented. 5 Convert to fixed octal. -100.02 = -4.08 EXAMPLE 3 = -3 Convert floating point number 4 The sign of the coefficient is positive because the floating point number was not complemented in step one. 1774 400 000 000 0008 S Represent in fixed octal notation . to fixed octal C-8 17778 3 Coefficient = 400000000 0008 = .1002 Move binary point to the left 3 places. Coefficient = .0001002 .0001 002 = .048 Appendix D Table of Powers of Two TABLE OF POWERS OF TWO 2n n 2-n 1 2 4 8 0 1 2 3 1.0 0.5 0.25 0.125 16 32 64 128 4 5 6 7 0.062 0.031 0.015 0.007 5 25 625 812 5 256 512 1 024 2 048 8 9 10 11 0.003 0.001 0.000 0.000 906 953 976 488 25 125 562 5 281 25 4 8 16 32 096 192 384 768 12 13 14 15 0.000 0.000 0.000 0.000 244 122 061 030 140 070 035 517 625 312 5 156 25 578 125 65 131 262 524 536 072 144 288 16 17 18 19 0.000 0.000 0.000 0.000 015 007 003 001 258 629 814 907 789 394 697 348 062 531 265 632 5 25 625 812 5 1 2 4 8 048 097 194 388 576 152 304 608 20 21 22 23 0.000 0.000 0.000 0.000 000 000 000 000 953 476 238 119 674 837 418 209 316 158 579 289 406 203 101 550 25 125 562 5 781 25 16 33 67 134 777 554 108 217 216 432 864 728 24 25 26 27 0.000 0.000 0.000 0.000 000 000 000 000 059 029 014 007 604 802 901 450 644 322 161 580 775 387 193 596 390 695 847 923 625 312 5 656 25 828 125 268 536 1 073 2 147 435 870 741 483 456 912 824 648 28 29 30 31 0.000 0.000 0.000 0.000 000 000 000 000 003 001 000 000 725 862 931 465 290 645 322 661 298 149 574 287 461 230 615 307 914 957 478 739 062 031 515 257 5 25 625 812 5 4 8 17 34 294 589 179 359 967 934 869 738 296 592 184 368 32 33 34 35 0.000 0.000 0.000 0.000 000 000 000 000 000 000 000 000 232 116 058 029 830 415 207 103 643 321 660 830 653 826 913 456 869 934 467 733 628 814 407 703 906 453 226 613 25 125 562 5 281 25 68 137 274 549 719 438 877 755 476 953 906 813 736 472 944 888 36 37 38 39 0.000 0.000 0.000 0.000 000 000 000 000 000 000 000 000 014 007 003 001 551 275 637 818 915 957 978 989 228 614 807 403 366 183 091 545 851 425 712 856 806 903 951 475 640 320 660 830 625 312 5 156 25 078 125 D-l Appendix E Octal-Decimal I nteger Conversion Table OCTAL-DECIMAL INTEGER CONVERSION TABLE 0 1 2 3 4 0 1 2 3 4 5 6 7 0000 0010 0020 0030 0040 0050 0060 0070 0000 0008 0016 0024 0032 0040 0048 0056 0001 0009 0017 0025 0033 0041 0049 0057 0002 0010 0018 0026 0034 0042 0050 0058 0003 0011 0019 0027 0035 0043 0051 0059 0004 0012 0020 0028 0036 0044 0052 0060 0005 0013 0021 0029 0037 0045 0053 0061 0006 0014 0022 0030 0038 0046 0054 0062 0007 0015 0023 0031 0039 0047 0055 0063 0400 0410 0420 0430 0440 0450 0460 0470 0256 0264 0272 0280 0288 0296 0304 0312 0257 0265 0273 0281 0289 0297 0305 0313 0258 0266 0274 0282 0290 0298 0306 0314 0259 0267 0275 0283 0291 0299 0307 0315 0260 0268 0276 0284 0292 0300 0308 0316 0261 0269 0277 0285 0293 0301 0309 0317 0262 0270 0278 0286 0294 0302 0310 0318 0263 0271 0279 0287 0295 0303 0311 0319 0100 0110 0120 0130 0140 0150 0160 0170 0064 0072 0080 0088 0096 0104 0112 0120 0065 0073 0081 0089 0097 0105 0113 0121 0066 0074 0082 0090 0098 0106 0114 0122 0067 0075 0083 0091 0099 0107 0115 0123 0068 0076 0084 0092 0100 0108 0116 0124 0069 0077 0085 0093 0101 0109 0117 0125 0070 0078 0086 0094 0102 0110 0118 0126 0071 0079 0087 0095 0103 0111 0119 0127 0500 0510 0520 0530 0540 0550 0560 0570 0320 0328 0336 0344 0352 0360 0368 0376 0321 0329 0337 0345 0353 0361 0369 0377 0322 0330 0338 0346 0354 0362 0370 0378 0323 0331 0339 0347 0355 0363 0371 0379 0324 0332 0340 0348 0356 0364 0372 0380 0325 0333 0341 0349 0357 0365 0373 0381 0326 0334 0342 0350 0358 0366 0374 0382 0327 0335 0343 0351 0359 0367 0375 0383 0200 0210 0220 0230 0240 0250 0260 0270 0128 0136 0144 0152 0160 0168 0176 0184 0129 0137 0145 0153 0161 0169 0177 0185 0130 0138 0146 0154 0162 0170 0178 0186 0131 0139 0147 0155 0163 0171 0179 0187 0132 0140 0148 0156 0164 0172 0180 0188 0133 0141 0149 0157 0165 0173 0181 0189 0134 0142 0150 0158 0166 0174 0182 0190 0135 0143 0151 0159 0167 0175 0183 0191 0600 0610 0620 0630 0640 0650 0660 0670 0384 0392 0400 0408 0416 0424 0432 0440 0385 0393 0401 0409 0417 0425 0433 0441 0386 0394 0402 0410 0418 0426 0434 0442 0387 0395 0403 0411 0419 0427 0435 0443 0388 0396 0404 0412 0420 0428 0436 0444 0389 0397 0405 0413 0421 0429 0437 0445 0390 0398 0406 0414 0422 0430 0438 0446 0391 0399 0407 0415 0423 0431 0439 0447 0300 0310 0320 0330 0340 0350 0360 0370 0192 0200 0208 0216 0224 0232 0240 0248 0193 0201 0209 0217 0225 0233 0241 0249 0194 0202 0210 0218 0226 0234 0242 0250 0195 0203 0211 0219 0227 0235 0243 0251 0196 0204 0212 0220 0228 0236 0244 0252 0197 0205 0213 0221 0229 0237 0245 0253 0198 0206 0214 0222 0230 0238 0246 0254 0199 0207 0215 0223 0231 0239 0247 0255 0700 0710 0720 0730 0740 0750 0760 0770 0448 0456 0464 0472 0480 0488 0496 0504 0449 0457 0465 0473 0481 0489 0497 0505 0450 0458 0466 0474 0482 0490 0498 0506 0451 0459 0467 0475 0483 0491 0499 0507 0452 0460 0468 0476 0484 0492 0500 0508 0453 0461 0469 0477 0485 0493 0501 0509 0454 0462 0470 0478 0486 0494 0502 0510 0455 0463 0471 0479 0487 0495 0503 0511 0 1 2 3 4 5 0 1 2 3 4 6 7 1000 1010 1020 1030 1040 1050 1060 1070 0512 0520 0528 0536 0544 0552 0560 0568 0513 0521 0529 0537 0545 0553 0561 0569 0514 0522 0530 0538 0546 0554 0562 0570 0515 0523 0531 0539 0547 0555 0563 0571 0516 0524 0532 0540 0548 0556 0564 0572 0517 0525 0533 0541 0549 0557 0565 0573 0518 0526 0534 0542 0550 0558 0566 0574 0519 0527 0535 0543 0551 0559 0567 0575 1400 1410 1420 1430 1440 1450 1460 1470 0768 0776 0784 0792 0800 0808 0816 0824 0769 0777 0785 0793 0801 0809 0817 0825 0770 0778 0786 0794 0802 0810 0818 0826 0771 0779 0787 0795 0803 0811 0819 0827 0772 0780 0788 0796 0804 0812 0820 0828 0773 0781 0789 0797 0805 0813 0821 0829 0774 0782 0790 0798 0806 0814 0822 0830 0775 0783 0791 0799 0807 0815 0823 0831 1100 1110 1120 1130 1140 1150 1160 1170 0576 0584 0592 0600 0608 0616 0624 0632 0577 0585 0593 0601 0609 0617 0625 0633 0578 0586 0594 0602 0610 0618 0626 0634 0579 0587 0595 0603 0611 0619 0627 0635 0580 0588 0596 0604 0612 0620 0628 0636 0581 0589 0597 0605 0613 0621 0629 0637 0582 0590 0598 0606 0614 0622 0630 0638 0583 0591 0599 0607 0615 0623 0631 0639 1500 1510 1520 1530 1540 1550 1560 1570 0832 0840 0848 0856 0864 0872 0880 0888 0833 0841 0849 0857 0865 0873 0881 0889 0834 0842 0850 0858 0866 0874 0882 0890 0835 0843 0851 0859 0867 0875 0883 0891 0836 0844 0852 0860 0868 0876 0884 0892 0837 0845 0853 0861 0869 0877 0885 0893 0838 0846 0854 0862 0870 0878 0886 0894 0839 0847 0855 0863 0871 0879 0887 0895 1200 1210 1220 1230 1240 1250 1260 1270 0640 0648 0656 0664 0672 0680 0688 0696 0641 0649 0657 0665 0673 0681 0689 0697 0642 0650 0658 0666 0674 0682 0690 0698 0643 0651 0659 0667 0675 0683 0691 0699 0644 0652 0660 0668 0676 0684 0692 0700 0645 0653 0661 0669 0677 0685 0693 0701 0646 0654 0662 0670 0678 0686 0694 0702 0647 0655 0663 0671 0679 0687 0695 0703 1600 1610 1620 1630 1640 1650 1660 1670 OB96 0904 0912 0920 0928 0936 0944 0952 OB97 0905 0913 0921 0929 0937 0945 0953 OB9B 0906 0914 0922 0930 0938 0946 0954 OB99 0907 0915 0923 0931 0939 0947 0955 0900 0908 0916 0924 0932 0940 0948 0956 0901 0909 0917 0925 0933 0941 0949 0957 0902 0910 0918 0926 0934 0942 0950 0958 0903 0911 0919 0927 0935 0943 0951 0959 1300 1310 1320 1330 1340 1350 1360 1370 0704 0712 0720 0728 0736 0744 0752 0760 0705 0713 0721 0729 0737 0745 0753 0761 0706 0714 0722 0730 0738 0746 0754 0762 0707 0715 0723 0731 0739 0747 0755 0763 0708 0716 0724 0732 0740 0748 0756 0764 0709 0717 0725 0733 0741 0749 0757 0765 0710 0718 0726 0734 0742 0750 0758 0766 0711 0719 0727 0735 0743 0751 0759 0767 1700 1710 1720 1730 1740 1750 1760 1770 0960 0968 0976 0984 0992 1000 1008 1016 0961 0969 0977 0985 0993 1001 1009 1017 0962 0970 0978 0986 0994 1002 1010 1018 0963 0971 0979 0987 0995 1003 1011 1019 0964 0972 0980 0988 0996 1004 1012 1020 0965 0973 0981 0989 0997 1005 1013 1021 0966 0974 0982 0990 0998 1006 1014 1022 0967 0975 0983 0991 0999 1007 1015 1023 5 6 6 7 7 5 0000 0000 to to 0777 (Octal) 0511 (Decimal) Octal Decimal 10000 - 4096 20000 - 8192 30000 - 12288 40000 - 16384 50000 - 20480 60000 - 24576 70000 - 28672 1000 to 1777 (Detail 0512 to 1023 (Decimal) E-l OCTAL-DECIMAL INTEGER CONVERSION TABLE 2000 to 2777 (Octall 1024 to 1535 (Decimall Octal Decimal 10000 - 4096 20000 - 8192 30000 - 12288 40000 - 16384 50000 - 20480 60000 - 24576 70000 - 28672 3000 to 3777 (Detail E-2 1536 to 2047 (Decimal! 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 2000 2010 2020 2030 2040 2050 2060 2070 1024 1032 1040 1048 1056 1064 1072 1080 1025 1033 1041 1049 1057 1065 1073 1081 1026 1034 1042 1050 1058 1066 1074 1082 1027 1035 1043 1051 1059 1067 1075 1083 1028 1036 1044 1052 1060 1068 1076 1084 1029 1037 1045 1053 1061 1069 1077 1085 1030 1038 1046 1054 1062 1070 1078 1086 1031 1039 1047 1055 1063 1071 1079 1087 2400 2410 2420 2430 2440 2450 2460 2470 1280 1288 1296 1304 1312 1320 1328 1336 1281 1289 1297 1305 1313 1321 1329 1337 1282 1290 1298 1306 1314 1322 1330 1338 1283 1291 1299 1307 1315 1323 1331 1339 1284 1292 1300 1308 1316 1324 1332 1340 1285 1293 1301 1309 1317 1325 1333 1341 1286 1294 1302 1310 1318 1326 1334 1342 1287 1295 1303 1311 1319 1327 1335 1343 2100 2100 2120 2130 2140 2150 2160 2170 1088 1096 1104 1112 1120 1128 1136 1144 1089 1097 1105 1113 1121 1129 1137 1145 1090 1098 1106 1114 1122 1130 1138 1146 1091 1099 1107 1115 1123 1131 1139 1147 1092 1100 1108 1116 1124 1132 1140 1148 1093 1101 1109 1117 1125 1133 1141 1149 1094 1102 1110 1118 1126 1134 1142 1150 1095 1103 1111 1119 1127 1135 1143 1151 2500 2510 2520 2530 2540 2550 2560 2570 1344 1352 1360 1368 1376 1384 1392 1400 1345 1353 1361 1369 1377 1385 1393 1401 1346 1354 1362 1370 1378 1386 1394 1402 1347 1355 1363 1371 1379 1387 1395 1403 1348 1356 1364 1372 1380 1388 1396 1404 1349 1357 1365 1373 1381 1389 1397 1405 1350 1358 1366 1374 1382 1390 1398 1406 1351 1359 1367 1375 1383 1391 1399 1407 2200 2210 2220 2230 2240 2250 2260 2270 1152 1160 1168 1176 1184 1192 1200 1208 1153 1161 1169 1177 1185 1193 1201 1209 1154 1162 1170 1178 1186 1194 1202 1210 1155 1163 1171 1179 1187 1195 1203 1211 1156 1164 1172 1180 1188 1196 1204 1212 1157 1165 1173 1181 1189 1197 1205 1213 1158 1166 1174 1182 1190 1198 1206 1214 1159 1167 1175 1183 1191 1199 1207 1215 2600 2610 2620 2630 2640 2650 2660 2670 1408 1416 1424 1432 1440 1448 1456 1464 1409 1417 1425 1433 1441 1449 1457 1465 1410 1418 1426 1434 1442 1450 1458 1466 1411 1419 1427 1435 1443 1451 1459 1467 1412 1420 1428 1436 1444 1452 1460 1468 1413 1421 1429 1437 1445 1453 1461 1469 1414 1422 1430 1438 1446 1454 1462 1470 1415 1423 1431 1439 1447 1455 1463 1471 2300 2310 2320 2330 2340 2350 2360 2370 1216 1224 1232 1240 1248 1256 1264 1272 1217 1225 1233 1241 1249 1257 1265 1273 1218 1226 1234 1242 1250 1258 1266 1274 1219 1227 1235 1243 1251 1259 1267 1275 1220 1228 1236 1244 1252 1260 1268 1276 1221 1229 1237 1245 1253 1261 1269 1277 1222 1230 1238 1246 1254 1262 1270 1278 1223 1231 1239 1247 1255 1263 1271 1279 2700 2710 2720 2730 2740 2750 2760 2770 1472 1480 1488 1496 1504 1512 1520 1528 1473 1481 1489 1497 1505 1513 1521 1529 1474 1482 1490 1498 1506 1514 1522 1530 1475 1483 1491 1499 1507 1515 1523 1531 1476 1484 1492 1500 1508 1516 1524 1532 1477 1485 1493 1501 1519 1517 1525 1533 1478 1486 1494 1502 1510 1518 1526 1534 1479 1487 1495 1503 1511 1519 1527 1535 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 3000 3010 3020 3030 3040 3050 3060 3070 1536 1544 1552 1560 1568 1576 1584 1592 1537 1545 1553 1561 1569 1577 1585 1593 1538 1546 1554 1562 1570 1578 1586 1594 1539 1547 1555 1563 1571 1579 1587 1595 1540 1548 1556 1564 1572 1580 1588 1596 1541 1549 1557 1565 1573 1581 1589 1597 1542 1550 1558 1566 1574 1582 1590 1598 1543 1551 1559 1567 1575 1583 1591 1599 3400 3410 3420 3430 3440 3450 3460 3470 1792 1800 1808 1816 1824 1832 1840 1848 1793 1801 1809 1817 1825 1833 1841 1849 1794 1802 1810 1818 1826 1834 1842 1850 1795 1803 1811 1819 1827 1835 1843 1851 1796 1804 1812 1820 1828 1836 1844 1852 1797 1805 1813 1821 1829 1837 1845 1853 1798 1806 1814 1822 1830 1838 1846 1854 1799 1807 1815 1823 1831 1839 1847 1855 3100 3110 3120 3130 3140 3150 3160 3170 1600 1608 1616 1624 1632 1640 1648 1656 1601 1609 1617 1625 1633 1641 1649 1657 1602 1610 1618 1626 1634 1642 1650 1658 1603 1611 1619 1627 1635 1643 1651 1659 1604 1612 1620 1628 1636 1644 1652 1660 1605 1613 1621 1629 1637 1645 1653 1661 1606 1614 1622 1630 1638 1646 1654 1662 1607 1615 1623 1631 1639 1647 1655 1663 3500 3510 3520 3530 3540 3550 3560 3570 1856 1864 1872 1880 1888 1896 1904 1912 1857 1865 1873 1881 1889 1897 1905 1913 1858 1866 1874 1882 1890 1898 1906 1914 1859 1867 1875 1883 1891 1899 1907 1915 1860 1868 1876 1884 1892 1900 1908 1916 1861 1869 1877 1885 1893 1901 1909 1917 1862 1870 1878 1886 1894 1902 1910 1918 1863 1871 1879 1887 1895 1903 1911 1919 3200 3210 3220 3230 3240 3250 3260 3270 1664 1672 1680 1688 1696 1704 1712 1720 1665 1673 1681 1689 1697 1705 1713 1721 1666 1674 1682 1690 1698 1706 1714 1722 1667 1675 1683 1691 1699 1707 1715 1723 1668 1676 1684 1692 1700 1708 1716 1724 1669 1677 1685 1693 1701 1709 1717 1725 1670 1678 1686 1694 1702 1710 1718 1726 1671 1679 1687 1695 1703 1711 1719 1727 3600 3610 3620 3630 3640 3650 3660 3670 1920 1928 1936 1944 1952 1960 1968 1976 1921 1929 1937 1945 1953 1961 1969 1977 1922 1930 1938 1946 1954 1962 1970 1978 1923 1931 1939 1947 1955 1963 1971 1979 1924 1932 1940 1948 1956 1964 1972 1980 1925 1933 1941 1949 1957 1965 1973 1981 1926 1934 1942 1950 1958 1966 1974 1982 1927 1935 1943 1951 1959 1967 1975 1983 3300 3310 3320 3330 3340 3350 3360 3370 1728 1736 1744 1752 1760 1768 1776 1784 1729 1737 1745 1753 1761 1769 1777 1785 1730 1738 1746 1754 1762 1770 1778 1786 1731 1739 1747 1755 1763 1771 1779 1787 1732 1740 1748 1756 1764 1772 1780 1788 1733 1741 1749 1757 1765 1773 1781 1789 1734 1742 1750 1758 1766 1774 1782 1790 1735 1743 1751 1759 1767 1775 1783 1791 3700 3710 3720 3730 3740 3750 3760 3770 1984 1992 2000 2008 2016 2024 2032 2040 1985 1993 2001 2009 2017 2025 2033 2041 1986 1994 2002 2010 2018 2026 2034 2042 1987 1995 2003 2011 2019 2027 2035 2043 1988 1996 2004 2012 2020 2028 2036 2044 1989 1997 2005 2013 2021 2029 2037 2045 1990 1998 2006 2014 2022 2030 2038 2046 1991 1999 2007 2015 2023 2031 2039 2047 7 OCTAL-DECIMAL INTEGER CONVERSION TABLE 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 4000 4010 4020 4030 4040 4050 4060 4070 2048 2056 2064 2072 2080 2088 2096 2104 2049 2057 2065 2073 2081 2089 2097 2105 2050 2058 2066 2074 2082 2090 2098 2106 2051 2059 2067 2075 2083 2091 2099 2107 2052 2060 2068 2076 2084 2092 2100 2108 2053 2061 2069 2077 2085 2093 2101 2109 2054 2062 2070 2078 2086 2094 2102 2110 2055 2063 2071 2079 2087 2095 2103 2111 4400 4410 4420 4430 4440 4450 4460 4470 2304 2312 2320 2328 2336 2344 2352 2360 2305 2313 2321 2329 2337 2345 2353 2361 2306 2314 2322 2330 2338 2346 2354 2362 2307 2315 2323 2331 2339 2347 2355 2363 2308 2316 2324 2332 2340 2348 2356 2364 2309 2317 2325 2333 2341 2349 2357 2365 2310 2318 2326 2334 2342 2350 2358 2366 2311 2319 2327 2335 2343 2351 2359 2367 4100 4110 4120 4130 4140 4150 4160 4170 2112 2120 2128 2136 2144 2152 2160 2168 2113 2121 2129 2137 2145 2153 2161 2169 2114 2122 2130 2138 2146 2154 2162 2170 2115 2123 2131 2139 2147 2155 2163 2171 2116 2124 2132 2140 2148 2156 2164 2172 2117 2125 2133 2141 2149 2157 2165 2173 2118 2126 2134 2142 2150 2158 2166 2174 2119 2127 2135 2143 2151 2159 2167 2175 4500 4510 4520 4530 4540 4550 4560 4570 2368 2376 2384 2392 2400 2408 2416 2424 2369 2377 2385 2393 2401 2409 2417 2425 2370 2378 2386 2394 2402 2410 2418 2426 2371 2379 2387 2395 2403 2411 2419 2427 2372 2380 2388 2396 2404 2412 2420 2428 2373 2381 2389 2397 2405 2413 2421 2429 2374 2382 2390 2398 2406 2414 2422 2430 2375 2383 2391 2399 2407 2415 2423 2431 4200 4210 4220 4230 4240 4250 4260 4270 2176 2184 2192 2200 2208 2216 2224 2232 2177 2185 2193 2201 2209 2217 2225 2233 2178 2186 2194 2202 2210 2218 2226 2234 2179 2187 2195 2203 2211 2219 2227 2235 2180 2188 2196 2204 2212 2220 2228 2236 2181 2189 2197 2205 2213 2221 2229 2237 2182 2190 2198 2206 2214 2222 2230 2238 2183 2191 2199 2207 2215 2223 2231 2239 4600 4610 4620 4630 4640 4650 4660 4670 2432 2440 2448 2456 2464 2472 2480 2488 2433 2441 2449 2457 2465 2473 2481 2489 2434 2442 2450 2458 2466 2474 2482 2490 2435 2443 2451 2459 2467 2475 2483 2491 2436 2444 2452 2460 2468 2476 2484 2492 2437 2445 2453 2461 2469 2477 2485 2493 2438 2446 2454 2462 2470 2478 2486 2494 2439 2447 2455 2463 2471 2479 2487 2495 4300 4310 4320 4330 4340 4350 4360 4370 2240 2248 2256 2264 2272 2280 2288 2296 2241 2249 2257 2265 2273 2281 2289 2297 2242 2250 2258 2266 2274 2282 2290 2298 2243 2251 2259 2267 2275 2283 2291 2299 2244 2252 2260 2268 2276 2284 2292 2300 2245 2253 2261 2269 2277 2285 2293 2301 2246 2254 2262 2270 2278 2286 2294 2302 2247 2255 2263 2271 2279 2287 2295 2303 4700 4710 4720 4730 4740 4750 4760 4770 2496 2504 2512 2520 2528 2536 2544 2552 2497 2505 2513 2521 2529 2537 2545 2553 2498 2506 2514 2522 2530 2538 2546 2554 2499 2507 2515 2523 2531 2539 2547 2555 2500 2508 2516 2524 2532 2540 2548 2556 2501 2509 2517 2525 2533 2541 2549 2557 2502 2510 2518 2526 2534 2542 2550 2558 2503 2511 2519 2527 2535 2543 2551 2559 1 2 4 5 6 7 0 1 2 3 4 5 6 7 0 3 5000 5010 5020 5030 5040 5050 5060 5070 2560 2568 2576 2584 2592 2600 2608 2616 2561 2569 2577 2585 2593 2601 2609 2617 2562 2570 2578 2586 2594 2602 2610 2618 2563 2571 2579 2587 2595 2603 2611 2619 2564 2572 2580 2588 2596 2604 2612 2620 2565 2573 2581 2589 2597 2605 2613 2621 2566 2574 2582 2590 2598 2606 2614 2622 2567 2575 2583 2591 2599 2607 2615 2623 5400 5410 5420 5430 5440 5450 5460 5470 2816 2824 2832 2840 2848 2856 2864 2872 2817 2825 2833 2841 2849 2857 2865 2873 2818 2826 2834 2842 2850 2858 2866 2874 2819 2827 2835 2843 2851 2859 2867 2875 2820 2828 2836 2844 2852 2860 2868 2876 2821 2829 2837 2845 2853 2861 2869 2877 2822 2830 2838 2846 2854 2862 2870 2878 2823 2831 2839 2847 2855 2863 2871 2879 5100 5110 5120 5130 5140 5150 5160 5170 2624 2632 2640 2648 2656 2664 2672 2680 2625 2633 2641 2649 2657 2665 2673 2681 2626 2634 2642 2650 2658 2666 2674 2682 2627 2635 2643 2651 2659 2667 2675 2683 2628 2636 2644 2652 2660 2668 2676 2684 2629 2637 2645 2653 2661 2669 2677 2685 2630 2638 2646 2654 2662 2670 2678 2686 2631 2639 2647 2655 2663 2671 2679 2687 5500 5510 5520 5530 5540 5550 5560 5570 2880 2888 2896 2904 2912 2920 2928 2936 2881 2889 2897 2905 2913 2921 2929 2937 2882 2890 2898 2906 2914 2922 2930 2938 2883 2891 2899 2907 2915 2923 2931 2939 2884 2892 2900 2908 2916 2924 2932 2940 2885 2893 2901 2909 2917 2925 2933 2941 2886 2894 2902 2910 2918 2926 2934 2942 2887 2895 2903 2911 2919 2927 2935 2943 5200 5210 5220 5230 5240 5250 5260 5270 2688 2696 2704 2712 2720 2728 2736 2744 2689 2697 2705 2713 2721 2729 2737 2745 2690 2698 2706 2714 2722 2730 2738 2746 2691 2699 2707 2715 2723 2731 2739 2747 2692 2700 2708 2716 2724 2732 2740 2748 2693 2701 2709 2717 2725 2733 2741 2749 2694 2702 2710 2718 2726 2734 2742 2750 2695 2703 2711 2719 2727 2735 2743 2751 5600 5610 5620 5630 5640 5650 5660 5670 2944 2952 2960 2968 2976 2984 2992 3000 2945 2953 2961 2969 2977 2985 2993 3001 2946 2954 2962 2970 2978 2986 2994 3002 2947 2955 2963 2971 2979 2987 2995 3003 2948 2956 2964 2972 2980 2988 2996 3004 2949 2957 2965 2973 2981 2989 2997 3005 2950 2958 2966 2974 2982 2990 2998 3006 2951 2959 2967 2975 2983 2991 2999 3007 5300 5310 5320 5330 5340 5350 5360 5370 2752 2760 2768 2776 2784 2792 2800 2808 2753 2761 2769 2777 2785 2793 2801 2809 2754 2762 2770 2778 2786 2794 2802 2810 2755 2763 2771 2779 2787 2795 2803 2811 2756 2764 2772 2780 2788 2796 2804 2812 2757 2765 2773 2781 2789 2797 2805 2813 2758 2766 2774 2782 2790 2798 2806 2814 2759 2767 2775 2783 2791 2799 2807 2815 5700 5710 5720 5730 5740 5750 5760 5770 3008 3016 3024 3032 3040 3048 3056 3064 3009 3017 3025 3033 3041 3049 3057 3065 3010 3018 3026 3034 3042 3050 3058 3066 3011 3019 3027 3035 3043 3051 3059 3067 3012 3020 3028 3036 3044 3052 3060 3068 3013 3021 3029 3037 3045 3053 3061 3069 3014 3022 3030 3038 3046 3054 3062 3070 3015 3023 3031 3039 3047 3055 3063 3071 4000 2048 to to 4777 2559 (Octal) (Oecimal) Octal Decimal 10000 - 4096 20000 - 8192 30000 - 12288 40000 - 16384 50000 - 20480 60000 - 24576 70000 - 28672 5000 2560 to to 5777 3071 (Octal) (Decimal) E-3 OCTAL-DECIMAL INTEGER CONVERSION TABLE 6000 to 6777 10ctal) 3072 to 3583 IDec:imal) Octal Dec:imal 10000 - 4096 20000 - 8192 30000 - 12288 40000 - 16384 50000 - 20480 60000 - 24576 70000 - 28672 7000 to 7777 10ctal) E-4 3584 to 4095 IDecimal) 0 1 2 3 4 6000 6010 6020 6030 6040 6050 6060 6070 3072 3080 3088 3096 3104 3112 3120 3128 3073 3081 3089 3097 3105 3113 3121 3129 3074 3082 3090 3098 3106 3114 3122 3130 3075 3083 3091 3099 3107 3115 3123 3131 3076 3084 3092 3100 3108 3116 3124 3132 3077 3085 3093 3101 3109 3117 3125 3133 3078 3086 3094 3102 3110 3118 3126 3134 3079 3087 3095 3103 3111 3119 3127 3135 6100 6110 6120 6130 6140 6150 6160 6170 3136 3144 3152 3160 3168 3176 3184 3192 3137 3145 3153 3161 3169 3177 3185 3193 3138 3146 3154 3162 3170 3178 3186 3194 3139 3147 3155 3163 3171 3179 3187 3195 3140 3148 3156 3164 3172 3180 3188 3196 3141 3149 3157 3165 3173 3181 3189 3197 3142 3150 3158 3166 3174 3182 3190 3198 6200 6210 6220 6230 6240 6250 6260 6270 3200 3208 3216 3224 3232 3240 3248 3256 3201 3209 3217 3225 3233 3241 3249 3257 3202 3210 3218 3226 3234 3242 3250 3258 3203 3211 3219 3227 3235 3243 3251 3259 3204 3212 3220 3228 3236 3244 3252 3260 3205 3213 3221 3229 3237 3245 3253 3261 6300 6310 6320 6330 6340 6350 6360 6370 3264 3272 3280 3288 3296 3304 3312 3320 3265 3273 3281 3289 3297 3305 3313 3321 3266 3274 3282 3290 3298 3306 3314 3322 3267 3275 3283 3291 3299 3307 3315 3323 3268 3276 3284 3292 3300 3308 3316 3324 0 1 2 3 7000 7010 7020 7030 7040 7050 7060 7070 3584 3592 3600 3608 3616 3624 3632 3640 3585 3593 3601 3609 3617 3625 3633 3641 3586 3594 3602 3610 3618 3626 3634 3642 7100 7110 7120 7130 7140 7150 7160 7170 3648 3656 3664 3672 3680 3688 3696 3704 3649 3657 3665 3673 3681 3689 3697 3705 7200 7210 7220 7230 7240 7250 7260 7270 3712 3720 3728 3736 3744 3752 3760 3768 7300 7310 7320 7330 7340 7350 7360 7370 3776 3784 3792 3800 3808 3816 3824 3832 5 6 7 0 1 2 3 6400 6410 6420 6430 6440 6450 6460 6470 3328 3336 3344 3352 3360 3368 3376 3384 3329 3337 3345 3353 3361 3369 3377 3385 3330 3338 3346 3354 3362 3370 3378 3386 3331 3339 3347 3355 3363 3371 3379 3387 3143 3151 3159 3167 3175 3183 3191 3199 6500 6510 6520 6530 6540 6550 6560 6570 3392 3400 3408 3416 3424 3432 3440 3448 3393 3401 3409 3417 3425 3433 3441 3449 3394 3402 3410 3418 3426 3434 3442 3450 3206 3214 3222 3230 3238 3246 3254 3262 3207 3215 3223 3231 3239 3247 3255 3263 6600 6610 6620 6630 6640 6650 6660 6670 3456 3464 3472 3480 3488 3496 3504 3512 3457 3465 3473 3481 3489 3497 3505 3513 3269 3277 3285 3293 3301 3309 3317 3325 3270 3278 3286 3294 3302 3310 3318 3326 3271 3279 3287 3295 3303 3311 3319 3327 6700 6710 6720 6730 6740 6750 6760 6770 3520 3528 3536 3544 3552 3560 3568 3576 4 5 6 7 3587 3595 3603 3611 3619 3627 3635 3643 3588 3496 3604 3612 3620 3628 3636 3644 3589 3497 3605 3613 3621 3629 3637 3645 3590 3598 3606 3614 3622 3630 3638 3646 3591 3599 3607 3615 3623 3631 3639 3647 3650 3658 3666 3674 3682 3690 3698 3706 3651 3659 3667 3675 3683 3691 3699 3707 3652 3660 3668 3676 3684 3692 3700 3708 3653 3661 3669 3677 3685 3693 3701 3709 3654 3662 3670 3678 3686 3694 3702 3710 3713 3721 3729 3737 3745 3753 3761 3769 3714 3722 3730 3738 3746 3754 3762 3770 3715 3723 3731 3739 3747 3755 3763 3771 3716 3724 3732 3740 3748 3756 3764 3772 3717 3725 3733 3741 3749 3757 3765 3773 3777 3785 3793 3801 3809 3817 3825 3833 3778 3786 3794 3802 3810 3818 3826 3834 3779 3787 3795 3803 3811 3819 3827 3835 3780 3788 3796 3804 3812 3820 3828 3836 3781 3789 3797 3805 3813 3821 3829 3837 4 5 6 7 3332 3340 3348 3356 3364 3372 3380 3388 3333 3341 3349 3357 3365 3373 3381 3389 3334 3342 3350 3358 3366 3374 3382 3390 3335 3343 3351 3359 3367 3375 3383 3391 3395 3403 3411 3419 3427 3435 3443 3451 3396 3404 3412 3420 3428 3436 3444 3452 3397 3405 3413 3421 3429 3437 3445 3453 3398 3399 3406 3407 3414 3415 3422 3423 3430 3431 3438 3439 3446 3447 3454 3455 3458 3466 3474 3482 3490 3498 3506 3514 3459 3467 3475 3483 3491 3499 3507 3515 3460 3468 3476 3484 3492 3500 3508 3516 3461 3469 3477 3485 3493 3501 3509 3517 3462 3470 3478 3486 3494 3502 3510 3518 3463 3471 3479 3487 3495 3503 3511 3519 3521 3529 3537 3545 3553 3561 3569 3577 3522 3530 3538 3546 3554 3562 3570 3578 3523 3531 3539 3547 3555 3563 3571 3579 3524 3532 3540 3548 3556 3564 3572 3580 3525 3533 3541 3549 3557 3565 3573 3581 3526 3534 3542 3550 3558 3566 3574 3582 3527 3535 3543 3551 3559 3567 3575 3583 0 1 2 3 4 5 6 7 7400 7410 7420 7430 7440 7450 7460 7470 3840 3848 3856 3864 3872 3880 3888 3896 3841 3849 3857 3865 3873 3881 3889 3897 3842 3850 3858 3866 3874 3882 3890 3898 3843 3851 3859 3867 3875 3883 3891 3899 3844 3852 3860 3868 3876 3884 3892 3900 3845 3853 3861 3869 3877 3885 3893 3901 3846 3854 3862 3870 3878 3886 3894 3902 3847 3855 3863 3871 3879 3887 3895 3903 3655 3663 3671 3679 3687 3695 3703 3711 7500 7510 7520 7530 7540 7550 7560 7570 3904 3912 3920 3928 3936 3944 3952 3960 3905 3913 3921 3929 3937 3945 3953 3961 3906 3914 3922 3930 3938 3946 3954 3962 3907 3915 3923 3931 3939 3947 3955 3963 3908 3916 3924 3932 3940 3948 3956 3964 3909 3917 3925 3933 3941 3949 3957 3965 3910 3918 3926 3934 3942 3950 3958 3966 3911 3919 3927 3935 3943 3951 3959 3967 3718 3726 3734 3742 3750 3758 3766 3774 3719 3727 3735 3743 3751 3759 3767 3775 7600 7610 7620 7630 7640 7650 7660 7670 3968 3976 3984 3992 4000 4008 4016 4024 3969 3977 3985 3993 4001 4009 4017 4025 3970 3978 3986 3994 4002 4010 4018 4026 3971 3979 3987 3995 4003 4011 4019 4027 3972 3980 3988 3996 4004 4012 4020 4028 3973 3981 3989 3997 4005 4013 4021 4029 3974 3982 3990 3998 4006 4014 4022 4030 3975 3983 3991 3999 4007 4015 4023 4031 3782 3790 3798 3806 3814 3822 3830 3838 3783 3791 3799 3807 3815 3823 3831 3839 7700 7710 7720 7730 7740 7750 7760 7770 4032 4040 4048 4056 4064 4072 4080 4088 4033 4041 4049 4057 4065 4073 4081 4089 4034 4042 4050 4058 4066 4074 4082 4090 4035 4043 4051 4059 4067 4075 4083 4091 4036 4044 4052 4060 4068 4076 4084 4092 4037 4045 4053 4061 4069 4077 4085 4093 4038 4046 4054 4062 4070 4078 4086 4094 4039 4047 4055 4063 4071 4079 4087 4095 Appendix F Octal-Decimal Fraction Conversion Table OCTAL-DECIMAL FRACTION CONVERSION TABLE OCTAL DEC. OCTAL DEC. .125000 .126953 .128906 .130859 .132812 .134765 .136718 .138671 .200 .201 .202 .203 .204 .205 .206 .207 .250000 .251953 .253906 .255859 .257812 .259765 .261718 .263671 .300 .301 .302 .303 .304 .305 .306 .307 .375000 .376953 .378906 .380859 .382812 .384765 .386718 .388671 .110 .111 .112 .113 .114 .115 .116 .117 .140625 .142578 .144531 .146484 .148437 .150390 .152343 .154296 .210 .211 .212 .213 .214 .215 .216 .217 .265625 .267578 .269531 .271484 .273437 .275390 .277343 .279296 .310 .311 .312 .313 .314 .315 .316 .317 .390625 .392578 .394531 .396484 .398437 .400390 .402343 .404296 .031250 .033203 .035156 .037109 .039062 .041015 .042968 .044921 .120 .121 .122 .123 .124 .125 .126 .127 .156250 .158203 .160156 .162109 .164062 .166015 .167968 .169921 .220 .221 .222 .223 .224 .225 .226 .227 .281250 .283203 .285156 .287109 .289062 .291015 .292968 .294921 .320 .321 .322 .323 .324 .325 .326 .327 .406250 .408203 .410156 .412109 .414062 .416015 .417968 .419921 .030 .031 .032 .033 .034 .035 .036 .037 .046875 .048828 .050781 .052734 .054687 .056640 .058593 .060546 .130 .131 .132 .133 .134 .135 .136 .137 .171875 .173828 .175781 .177734 .179687 .181640 .183593 .185546 .230 .231 .232 .233 .234 .235 .236 .237 .296875 .298828 .300781 .302734 .304687 .306640 .308593 .310546 .330 .331 .332 .333 .334 .335 .336 .337 .421875 .423828 .425781 .427734 .429687 .431640 .433593 .435546 .040 .041 .042 .043 .044 .045 .046 .047 .062500 .064453 .066406 .068359 .070312 .072265 .074218 .076171 .140 .141 .142 .143 .144 .145 .146 .147 .187500 .189453 .191406 .193359 .195312 .197265 .199218 .201171 .240 .241 .242 .243 .244 .245 .246 .247 .312500 .314453 .316406 .318359 .320312 .322265 .324218 .326171 .340 .341 .342 .343 .344 .345 .346 .347 .437500 .439453 .441406 .443359 .445312 .447265 .449218 .451171 .050 .051 .052 .053 .054 .055 .056 .057 .078125 .080078 .082031 .083984 .085937 .087890 .089843 .091796 .150 .151 .152 .153 .154 .155 .156 .157 .203125 .205078 .207031 .208984 .210937 .212890 .214843 .216796 .250 .251 .252 .253 .254 .255 .256 .257 .328125 .330078 .332031 .333984 .335937 .337890 .339843 .341796 .350 .351 .352 .353 .354 .355 .356 .357 .453125 .455078 .457031 .458984 .460937 .462890 .464843 .466796 .060 .061 .062 .063 .064 .065 .066 .067 .093750 .095703 .097656 .099609 .101562 .103515 .105468 .107421 .160 .161 .162 .163 .164 .165 .166 .167 .218750 .220703 .222656 .224609 226562 .228515 .230468 .232421 .260 .261 .262 .263 .264 .265 .266 .267 .343750 .345703 .347656 .349609 .351562 .353515 .355468 .357421 .360 .361 .362 .363 .364 .365 .366 .367 .468750 .470703 .472656 .474609 .476562 .478515 .480468 .482421 .070 .071 .072 .073 .074 .075 .076 .077 .109375 .111328 .113281 .115234 .117187 .119140 .121093 .123046 .170 .171 .172 .173 .174 .175 .176 .177 .234375 .236328 .238281 .240234 .242187 .244140 .246093 .248046 .270 .271 .272 .273 .274 .275 .276 .277 .359375 .361328 .363281 .365234 .367187 .369140 .371093 .373046 .370 .371 .372 .373 .374 .375 .376 .377 .484375 .486328 .488281 .490234 .492187 .494140 .496093 .498046 DEC. OCTAL .000 .001 .002 .003 .004 .005 .006 .007 .000000 .001953 .003906 .005859 .007812 .009765 .011718 .013671 .100 .101 .102 .103 .104 .105 .106 .107 .010 .011 .012 .013 .014 .015 .016 .017 .015625 .017578 .019531 .021484 .023437 .025390 .027343 .029296 .020 .021 .022 .023 .024 .025 .026 .027 OCTAL DEC. F-l OCTAL-DECIMAL FRACTION CONVERSION TABLE OCTAL F-2 DEC. OCTAL DEC. OCTAL DEC. OCTAL DEC. .000000 .000001 .000002 .000003 .000004 .000005 .000006 .000007 .000000 .000003 .000007 .000011 .000015 .000019 .000022 .000026 .000100 .000101 .000102 .000103 .000104 .000105 .000106 .000107 .000244 .000247 .000251 .000255 .000259 .000263 .000267 .000270 .000200 .000201 .000202 .000203 .000204 .000205 .000206 .000207 .000488 .000492 .000495 .000499 .000503 .000507 .000511 .000514 .000300 .000301 .000302 .000303 .000304 .000305 .000306 .000307 .000732 .000736 .000740 .000743 .000747 .000751 .000755 .000759 .000010 .000011 .000012 .000013 .000014 .000015 .000016 .000017 .000030 .000034 .000038 .000041 .000045 .000049 .000053 .000057 .000110 .000111 .000112 .000113 .000114 .000115 .000116 .000117 .000274 .000278 .000282 .000286 .000289 .000293 .000297 .000301 .000210 .000211 .000212 .000213 .000214 .000215 .000216 .000217 .000518 .000522 .000526 .000530 .000534 .000537 .000541 .000545 .000310 .000311 .000312 .000313 .000314 .000315 .000316 .000317 .000762 .000766 .000770 .000774 .000778 .000782 .000785 .000789 .000020 .000021 .000022 .000023 .000024 .000025 .000026 .000027 .000061 .000064 .000068 .000072 .000076 .000080 .000083 .000087 .000120 .000121 .000122 .000123 .000124 .000125 .000126 .000127 .000305 .000308 .000312 .000316 .000320 .000324 .000328 .000331 .000220 .000221 .000222 .000223 .000224 .000225 .000226 .000227 .000549 .000553 .000556 .000560 .000564 .000568 .000572 .000576 .000320 .000321 .000322 .000323 .000324 .000325 .000326 .000327 .000793 .000797 .000801 .000805 .000808 .000812 .000816 .000820 .000030 .000031 .000032 .000033 .000034 .000035 .000036 .000037 .000091 .000095 .000099 .000102 .000106 .000110 .000114 .000118 .000130 .000131 .000132 .000133 .000134 .000135 .000136 .000137 .000335 .000339 .000343 .000347 .000350 .000354 .000358 .000362 .000230 .000231 .000232 .000233 .000234 .000235 .000236 .000237 .000579 .000583 .000587 .000591 .000595 .000598 .000602 .000606 .000330 .000331 .000332 .000333 .000334 .000335 .000336 .000337 .000823 .000827 .000831 .000835 .000839 .000843 .000846 .000850 .000040 .000041 .000042 .000043 .000044 .000045 .000046 .000047 .000122 .000125 .000129 .000133 .000137 .000141 .000144 .000148 .000140 .000141 .000142 .0001-43 .000144 .000145 .000146 .000147 .000366 .000370 .000373 .000377 .000381 .000385 .000389 .000392 .000240 .000241 .000242 .000243 .000244 .000245 .000246 .000247 .000610 .000614 .000617 .000621 .000625 .000629 .000633 .000637 .000340 .000341 .000342 .000343 .000344 .000345 .000346 .000347 .000854 .000858 .000862 .000865 .000869 .000873 .000877 .000881 .000050 .000051 .000052 .000053 .000054 .000055 .000056 .000057 .000152 .000156 .000160 .000164 .000167 .000171 .000175 .000179 .000150 .000151 .000152 .000153 .000154 .000155 .000156 .000157 .000396 .000400 .000404 .000408 .000411 .000415 .000419 .000423 .000250 .000251 .000252 .000253 .000254 .000255 .000256 .000257 .000640 .000644 .000648 .000652 .000656 .000659 .000663 .000667 .000350 .000351 .000352 .000353 .000354 .000355 .000356 .000357 .000885 .000888 .000892 .000896 .000900 .000904 .000907 .000911 .000060 .000061 .000062 .000063 .000064 .000065 .000066 .000067 .000183 .000186 .000190 .000194 .000198 .000202 .000205 .000209 .000160 .000161 .000162 .000163 .000164 .000165 .000166 .000167 .000427 .000431 .000434 .000438 .000442 .000446 .000450 .000453 .000260 .000261 .000262 .000263 .000264 .000265 .000266 .000267 .000671 .000675 .000679 .000682 .000686 .000690 .000694 .000698 .000360 .000361 .000362 .000363 .000364 .000365 .000366 .000367 .000915 .000919 .000923 .000926 .000930 .000934 .000938 .000942 .000070 .000071 .000072 .000073 .000074 .000075 .000076 .000077 .000213 .000217 .000221 .000225 .000228 .000232 .000236 .000240 .000170 .000171 .000172 .000173 .000174 .000175 .000176 .000177 .000457 .000461 .000465 .000469 .000473 .000476 .000480 .000484 .000270 .000271 .000272 .000273 .000274 .000275 .000276 .000277 .000701 .000705 .000709 .000713 .000717 .000720 .000724 .000728 .000370 .000371 .000372 .000373 .000374 .000375 .000376 .000377 .000946 .000949 .000953 .000957 .000961 .000965 .000968 .000972 OCTAL-DECIMAL FRACTION CONVERSION TABLE OCTAL DEC. .000400 .000401 .000402 .000403 .000404 .000405 .000406 .000407 OCTAL .000976 .000980 .000984 .000988 .000991 .000995 .000999 .001003 DEC. .000500 .000501 .000502 .000503 .000504 .000505 .000506 .000507 OCTAL .001220 .001224 .001228 .001232 .001235 .001239 .001243 .001247 DEC. .000600 .000601 .000602 .000603 .000604 .000605 .000606 .000607 .001464 .001468 .001472 .001476 .001480 .001483 .001487 .001491 .000700 .000701 .000702 .000703 .000704 .000705 .000706 .000707 .001708 .001712 .001716 .001720 .001724 .001728 .001731 .001735 .000410 .000411 .000412 .000413 .000414 .000415 .000416 .000417 .001007 .001010 .001014 .001018 .001022 .001026 .001029 .001033 .000510 .000511 .000512 .000513 .000514 .000515 .000516 .000517 .001251 .001255 .001258 .001262 .001266 .001270 .001274 .001277 .000610 .000611 .000612 .000613 .000614 .000615 .000616 .000617 .001495 .001499 .001502 .001506 .001510 .001514 .001518 .001522 .000710 .000711 .000712 .000713 .000714 .000715 .000716 .000717 .001739 .001743 .001747 .001750 .001754 .001758 .001762 .001766 .000420 .000421 .000422 .000423 .000424 .000425 .000426 .000427 .001037 .001041 .001045 .001049 .001052 .001056 .001060 .001064 .000520 .000521 .000522 .000523 .000524 .000525 .000526 .000527 .001281 .001285 .001289 .001293 .001296 .001300 .001304 .001308 .000620 .000621 .000622 .000623 .000624 .000625 .000626 .000627 .001525 .001529 .001533 .001537 .001541 .001544 .001548 .001552 .000720 .000721 .000722 .000723 .000724 .000725 .000726 .000727 .001770 .001773 .001777 .001781 .001785 .001789 .001792 .001796 .000430 .000431 .000432 .000433 .000434 .000435 .000436 .000437 .001068 .001071 .001075 .001079 .001083 .001087 .001091 .001094 .000530 .000531 .000532 .000533 .000534 .000535 .000536 .000537 .001312 .001316 .001319 .001323 .001327 .001331 .001335 .001338 .000630 .000631 .000632 .000633 .000634 .000635 .000636 .000637 .001556 .001560 .001564 .001567 .001571 .001575 .001579 .001583 .000730 .000731 .000732 .000733 .000734 .000735 .000736 .000737 .001800 .001804 .001808 .001811 .001815 .001819 .001823 .001827 .000440 .000441 .000442 .000443 .000444 .000445 .000446 .000447 .001098 .001102 .001106 .001110 .001113 .001117 .001121 .001125 .000540 .000541 .000542 .000543 .000544 .000545 .000546 .000547 .001342 .001346 .001350 .001354 .001358 .001361 .001365 .001369 .000640 .000641 .000642 .000643 .000644 .000645 .000646 .000647 .001586 .001590 .001594 .001598 .001602 .001605 .001609 .001613 .000740 .000741 .000742 .000743 .000744 .000745 .000746 .000747 .001831 .001834 .001838 .001842 .001846 .001850 .001853 .001857 .000450 .000451 .000452 .000453 .000454 .000455 .000456 .000457 .001129 .001132 .001136 .001140 .001144 .001148 .001152 .001155 .000550 .000551 .000552 .000553 .000554 .000555 .000556 .000557 .001373 .001377 .001380 .001384 .001388 .001392 .001396 .001399 .000650 .000651 .000652 .000653 .000654 .000655 .000656 .000657 .001617 .001621 .001625 .001628 .001632 .00.1636 .001640 .001644 .000750 .000751 .000752 .000753 .000754 .000755 .000756 .000757 .001861 .001865 .001869 .001873 .001876 .001880 .001884 .001888 .000460 .000461 .000462 .000463 .000464 .000465 .000466 .000467 .001159 .001163 .001167 .001171 .001174 .001178 .001182 .001186 .000560 .000561 .000562 .000563 .000564 .000565 .000566 .000567 .001403 .001407 .001411 .001415 .001419 .001422 .001426 .001430 .000660 .000661 .000662 .000663 .000664 .000665 .000666 .000667 .001647 .001651 .001655 .001659 .001663 .001667 .001670 .001674 .000760 .000761 .000762 .000763 .000764 .000765 .000766 .000767 .001892 .001895 .001899 .001903 .001907 .001911 .001914 .001918 .000470 .000471 .000472 .000473 .000474 .000475 .000476 .000477 .001190 .001194 .001197 .001201 .001205 .001209 .001213 .001216 .000570 .000571 .000572 .000573 .000574 .000575 .000576 .000577 .001434 .001438 .001441 .001445 .001449 .001453 .001457 .001461 .000670 .000671 .000672 .000673 .000674 .000675 .000676 .000677 .001678 .001682 .001686 .001689 .001693 .001697 .001701 .001705 .000770 .000771 .000772 .000773 .000774 .000775 .000776 .000777 .001922 .001926 .001930 .001934 .001937 .001941 .001945 .001949 OCTAL DEC. F-3 Appendix G Definition of liD Interface Signals DEFINITION OF liD INTERFACE SIGNALS This appendix defines the signals that are exchanged between the 3106 Data Channel and external equipment. There are three classes of signals: bidirectional, 3106 to external equipment, and external equipment to 3106. Bidirectional Signals Data Bits The 12 lines which carry data are bi-directional. and perform as follows: 1. I n a Read (input) operation, data is transmitted from the external equipment to the 3106. 2. In a Write (output) operation, data is transmitted from the 3106 to the external equipment. 3. The Connect and Function codes are transmitted from the 3106 to the external equipment via the 12 data lines. Parity Bit A parity bit accompanies each 12 bits of data transmitted between the 3106 and external equipment. Odd parity is used; thus the total number of "1 's" transmitted is always an odd number. 3106 to External Equipment Read Static" 1 " signal produced by 3106 during a Read operation. Write Static" 1" signal produced by 3106 during a Write operation. Connect Static" 1 " signal sent to external equipment when 12-bit Connect code is available on data lines. Signal drops when external equipment returns Reply or Reject. Function Static" 1" signal sent to external equipment when 12-bit Function code is available on data lines. Signal drops when external equipment returns Reply or Reject. Data Signal Static" 1 " signal sent to external equipment during both Read and Write operations. Signal drops conditionally when Reply is received from external equipment. 1. I n a Read operation, Data Signal indicates that 3106 is ready to accept a 12-bit word from external equipment. 2. I n a Write operation, Data Signal indicates the 3106 has placed a 12-bit word on the data lines. G-l 3106 to External equipment (Cont.) Master Clear "1" signal from computer which returns channel and external equipment to zero initial conditions and disconnects external equipment. Computer Running Static" 1 " when computer is operating. External Equipment to 3106 Reply Static "1" signal produced by external equipment in response to a Connect. Function, or Data Signal. Signal drops when Connect. Function, or Data Signal drops. 1 . If connection can be made when Connect signal is received, external equipment connects and returns a Reply. 2. If specified function can be performed when Function signal is received, external equipment initiates function and returns a Reply. 3. I n a Read operation, external equipment sends a Reply as soon as it has placed a 12-bit word on the data lines in response to the Data Signal. 4. In a Write operation, external equipment sends a Reply as soon as it samples the data lines in response to the Data Signal. G-2 Reject Static" 1 " signal produced by external equipment in response to a Connect or Function signal, if the connection cannot be made or the function cannot be performed at the time that the external equipment receives the respective signal. End of Record Static" 1" signal produced by external equipment during a Read operation. This signal is produced in response to the Data Signal, if the end of the specified block of data has been reached. Parity Error Static" 1" signal produced if the total number of "1 's" in the 12 data bits plus the parity bit is not an odd number. Status Bits The external equipment uses the 12 status lines to indicate its condition. Interrupt Lines A "1" signal on an interrupt line indicates that an external equipment has reached a predetermined condition. A 3106 may communicate with a maximum of 8 external equipments, and each external equipment uses 1 interrupt line. Appendix H 31 00 System Character Set 3100 SYSTEM CHARACTER SET Int. Ext. Char. BCD BCD Holi. o 00 12 o 01 01 2 02 02 3 03 4 Char. Int. Ext. BCD BCD Holi. p 47 47 11-7 Q 50 50 11-8 2 R 51 51 11-9 03 3 S 62 22 0-2 04 04 4 T 63 23 0-3 5 05 05 5 u 64 24 0-4 6 06 06 6 V 65 25 0-5 7 07 07 7 W 66 26 0-6 8 10 10 8 X 67 27 0-7 9 11 11 9 y 70 30 0-8 A 21 61 12-1 z 71 31 0-9 B 22 62 12-2 13 13 3-8 C 23 63 12-3 -(dash) 14 14 4-8 o 24 64 12-4 20 60 12 E 25 65 12-5 + +0 32 72 12-0 F 26 66 12-6 33 73 12-3-8 G 27 67 12-7 34 74 12-4-8 H 30 70 12-8 -(minus) 40 40 11 31 71 12-9 -0 52 52 11-0 J 41 41 1 1-1 $ 53 53 11-3-8 K 42 42 11-2 * 54 54 11-4-8 L 43 43 11-3 (space) 60 20 blank M 44 44 11-4 / 61 21 0-1 N 45 45 11-5 73 33 0-3-8 o 46 46 11-6 74 34 0-4-8 I,_----'-----------'-_----'--_~----'--------'----'---------' H-l Appendix I Peripheral Equipment Codes Peripheral Equipment FUNCTION AND STATUS RESPONSE CODES The following tables list the function and status response codes for the 3248/405 Card Reader and the 322X and 362X Magnetic Tape Controllers. Function and status response codes for other 3200 peripheral equipments can be found in the reference manuals of these equipments. 3248/405 CARD READER CODES FORMAT AND OPERATIONAL FUNCTION CODES 0001 0002 0004 0005 Negate Hollerith to Internal BCD Conversion Release Negate Hollerith to Internal BCD Conversion Gate Card to Secondary Station Function Clear 0020 0021 0022 0023 0024 0025 Interrupt on Ready and Not Busy Release Interrupt on Ready and Not Busy Interrupt on End of Operation Release Interrupt on End of Operation Interrupt on Abnormal End of Operation Release Interrupt on Abnormal End of Operation INTERRUPT FUNCTION CODES STATUS REPLIES XXXl XXX2 XXX4 XX1X XX2X XX4X X1XX X2XX X4XX lXXX 2XXX Reader Ready Reader Busy Binary Card End of File ~Card) Stacker Full or Jammed or Fail to Feed Hopper Empty End of File ~Switch) Interrupt - Ready and Not Busy Interrupt - End of Operation Interrupt - Abnormal End of Operation Read Compare or Pre-read Error 322X AND 362X MAGNETIC TAPE CONTROLLERS FORMAT FUNCTION CODES 0000 0001 0002 0003 0004 0006 0005 0041 0040 Release Binary Coded 556 BPI Density 200 BPI Density 800 BPI Density Clear Reverse Read Clear Reverse Read TAPE MOTION FUNCTION CODES 0010 0011 0012 0013 0014 0015 0016 Rewind Rewind Unload Backspace Search End of File Mark Forward Search End of File Mark Backward Write End of File Mark Skip Bad Spot INTERRUPT FUNCTION CODES 0020 0021 0022 0023 0024 0025 Interrupt On Ready and Not Busy Release Interrupt on Ready and Not Busy Interrupt on End of Operation Release Interrupt on End of Operation Interrupt on Abnormal End of Operation Release Interrupt on Abnormal End of Operation XXXl XXX2 XXX4 XX1X XX2X XX4X X1XX Ready Read/Write Control and/or Busy Write Enable File Mark Load Point End of Tape Density in bit 6 indicates 556 BPI. "0" in bit 6 and bit 1 indicates 200 BPI) Density ("1" in bit 1 indicates 800 BPI) Lost Data End of Operation Transverse or Longitudinal Parity Error STATUS REPLIES X2XX X4XX lXXX 2XXX r'1" 1-1 COMMENT SHEET CONTROL DATA 3100 COMPUTER SYSTEM PRELIMINARY REFERENCE MANUAL PUB. NO. 60108400 FROM NAME: _______________________________________________________________ BUSINESS ____________________________________________________________ ADDRESS: COMMENTS: (DESCR IBE ERRORS, SUGGESTED ADDITION OR DELETION AND INCLUDE PAGE NUMBER, ETC.) III Z .J (!) Z o .J « I:J U NO POSTAGE STAMP NECESSARY IF MAILED IN U. S. A. FOLD ON DOTTED LINES AND STAPLE STAPLE STAPLE FOLD FOLD FIRST CLASS PERMIT NO. 8241 M INNEAPOL IS, MINN. BUSINE:SS RE:PLY MAIL IJJ NO POSTAGE STAMP NECESSARY IF MAILED IN U.S.A. Z .I C) Z POSTAGE WiLL BE o PAID BY .I « CONTROL DATA CORPORATION I- 8100 34TH AVENUE SOUTH o ::J MINNEAPOLIS 20, MINNESOTA ATTN: TECHNICAL PUBLICATIONS DEPT. COMPUTER DIVISION PLANT TWO FOLD FOLD STAPLE STAPLE CONTROL DATA SALES OFFICES ALAMOGORDO. ALBUQUERQUE. ATLANTA. BOSTON. CAPE CANAVERAL CHICAGO. CINCINNATI. CLEVELAND. COLORADO SPRINGS. DALLAS. DAYTON DENVER. DETROIT. DOWNEY, CALIF .• HONOLULU. HOUSTON. HUNTSVillE ITHACA· KANSAS CITY. KAN .• LOS ANGELES. MINNEAPOLIS. NEWARK NEW ORLEANS. NEW YORK CITY· OAKLAND. OMAHA. PALO ALTO PHILADELPHIA. PHOENIX. PITTSBURGH. SACRAMENTO. SALT LAKE CITY SAN BERNARDINO. SAN DIEGO. SEATTLE. WASHINGTON. D.C. INTERNATIONAL OFFICES FRANKFURT, GERMANY. HAMBURG. GERMANY. STUTTGART, GERMANY GENEVA. SWITZERLAND. ZURICH. SWITZERLAND. CANBERRA. AUSTRALIA MELBOURNE, AUSTRALIA. SYDNEY, AUSTRALIA. ATHENS. GREECE LONDON, ENGLAND. OSLO. NORWAY. PARIS, FRANCE. STOCKHOLM. SWEDEN MEXICO CITY. MEXICO. (REGAL ELECTRONICA DE MEXICO, S.A.) OTTAWA, CANADA. (COMPUTING DEVICES OF CANADA. LIMITED). TOKYO. JAPAN. (C.ITOH ELECTRONIC COMPUTING SERVICE CO., LTD.) CONTROL DATA CORPORATION 8100 34th AVENUE SOUTH, MINNEAPOLIS. MINNESOTA 55440 Pub. No. 60108400 Litho in I
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Producer : Adobe Acrobat 9.0 Paper Capture Plug-in Modify Date : 2018:05:07 12:46:23-07:00 Create Date : 2018:05:07 12:46:23-07:00 Metadata Date : 2018:05:07 12:46:23-07:00 Format : application/pdf Document ID : uuid:fe5490cf-82f8-f847-a2fa-2cbf7b0bf74b Instance ID : uuid:bb21f258-3b1c-9f47-81e6-c3835b028272 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 113EXIF Metadata provided by EXIF.tools