GE-625 / 635 Programming Reference Manual
Please note:
  1. This web document is in two parts
    the first 190 pages was scanned and OCRed and is on this web page
    the second 100 pages is presented in this 4.2 megabyte .PDF file.
  2. The paper document is the property of, and scanned atComputer History Museum Center
  3. The paper document was scanned to .tiff format by Ed Thelen,
  4. and is being OCRed and made into .html by Hans B Pufal.
  5. This on-line document is not yet complete nor proof-read.


GE-625 / 635
Programming
Reference Manual




GE-625/635
PROGRAMMING


REFERENCE MANUAL

July 1964
Rev. January 1966


GENERAL ELECTRIC

COMPUTER DEPARTMENT

PREFACE

The GE-625/635 Programming Reference Manual is the basic document for programming the GE-625/635. It essentially describes programming-related GE-625/635 machine features, the instruction repertoire, and the symbolic machine language oriented Macro Assembler. The Assembler chapter and the examples in Chapter IV describe how the programmer may write Processor instructions using a symbolic notation.

The Programming Reference Manual is one of a set of user publications for programming the GE-625/635 computer. The others of the set, together with pertinent and necessary programming information contained in each, are:

PUBLICATIONPROGRAMMING INFORMATION
GE-625/635 FORTRAN IV
Reference Manual, CPB-1006
FORTRAN IV language specifications, coding rules and restrictions, and compiler informa-tion for the GE-625/635
GE-625/635 COBOL
Reference Manual, CPB.-1007
COBOL-61 Extended language specifications, coding rules and restrictions and compiler information for the GE-625/635
GE-625/635 File and Record Control Reference Manual, CPB-1003 (GE FRC) Standard input/output coding by use of calling sequences to software system input/output routines.
GE-625/635 Comprehensive Operating Supervisor Reference Manual, CPB-1002 (GE COS)
  1. Descriptions and functions of the Comprehensive Operating Supervisor modules and submodules
  2. Use of Operating Supervisor control cards
  3. Coding for information exchange between the programmer and the Operating Super-visor
  4. Alternative coding techniques for input/out-put operations
  5. Preparation of the user program fault transfer table
GE-625/635 General Loader Reference Manual, CPB-1008, (GE LOAD)
  1. Use of Loader control cards
  2. Use of the Loader debugging and program segment overlays
  3. Descriptions of relocatable and absolute decks and their loading
GE-625/635 Sort/Merge Reference Manual, CPB-1005
  1. Descriptions of the sort and merge pro-grams
  2. Use of the sort/merge and supplemental system MACROS
GE-625/ 635 Bulk Media Conversion Reference Manual, CFB-1096 Description of deck preparation for bulk media conversion run

This reference manual is addressed to programmers experienced with coding in the environment of a large-scale computer installation. It assumes some knowledge and experience in the use of address modification with indirection, hardware indicators, fault interrupts and recovery routines, macro operations, pseudo-operations, and other features normally encountered in a fast, large memory capacity computer with a very flexible instruction repertoire - -under control of a master executive program. It is also assumed that the programmer is familiar with the 2's complement number system as used in a sign-number machine.

Comments on this publication niay be addressed to Technical Publications, Computer Department, General Electric Company, P. 0. Box 2961, Phoenix, Arizona, 85002.

Contents

  1. SUMMARY OF SYSTEM FEATURES
  2. GE-635 PROCESSOR
  3. CODING EXAMPLES

    APPENDICES

    • GE-625/635 Instructions Listed by Functional Class with Page References and Timings
    • GE-625/635 Mnemonics in Alphabetical Order with Page References
    • GE-625/635 Instruction Mnemonics Correlated with Their Operation Codes
    • Pseudo-Operations by Functional Class with Page References
    • Master Mode Entry, System Symbols, and Input/Output Operations
    • GE-625/635 Standard Character Set
    • Conversion Table of Octal-Decimal Integers and Fractions
    • Tables of Powers of Two and Binary-Decimal Equivalents
    • The Two's Complement Number System


    ILLUSTRATIONS

    FigurePage
    II-1Block Diagram of Principal Processor Registers
    II-2Table of Faults
    II-3Ranges of Fixed-Point Numbers
    II-4Ranges of Floating-Point Numbers
    II-5AAddress Modification Flow Chart
    II-5BAddress Modification Flow Chart
    III-1GE-625/635 MacroAssembler coding Form


    I. SUMMARY OF SYSTEM FEATURES

    COMPUTER COMPONENTS

    Basic System and Functions

    The basic GE-625/635 computer system is made up of four principle hardware components:

    1. The Memory module
    2. The Processor module
    3. The Input/Output Controller module
    4. Peripheral subsystems
    Each of the items 1 through 4 performs specialized functions to be elaborated upon under separate headings that follow. For purposes of this discussion, we consider a basic computer system comprised of items 1 through 3 and the following complement of peripheral devices:
    • A Magnetic Drum Storage Unit
    • A Dual-Channel Magnetic Tape Subsystem
    • A Card Reader
    • A Card Punch
    • Two Printers
    • An Operator Console with Typewriter
    The basic system can be expanded in a variety of ways to develop multiprocessor and multicomputer systems that are restricted in size only by practical application considerations. (The computer system itself is theoretically capable of unlimited expansion; see the GE-635 System Manual.)

    Memory Module

    The Memory module, unlike most computer systems which are processor-oriented, is the over-all system control agency. It serves as a passive coordinating component that provides interim information storage and general system communication control. The module comprises two major functional units: the System Controller and the Magnetic Core Storage Unit. The principle features of the module and the performing units are:

    FEATUREFUNCTIONAL UNIT
    1. Control of the selection and enabling of the eight or fewer channels between the Memory and Processor or Input/ Output Controller modules
    System Controller (eight priority-linked channel cells plus an associated mask register)
    1. Recognition of program interrupts within the multiprogram environment
    System Controller (32 priority-related program interrupt cells plus an associated mask register)
    1. Selection of the type of Core Storage Unit memory cycle to be used -- Read-Restore, Clear-Write, or Read-Alter-Rewrite
    System Controller (control logic submit)
    1. Control of information transfers to and from the Core Storage Unit and on the selected system communication channel.
    System Controller (control logic submit)
    1. Storage of information
    Magnetic Core Storage Unit
    1. Memory-based block protect to give protection to any 1024-word block is optionally available
    System Controller (memory file protection register)

    Processor Module

    The Processor module is composed of two principal functional units: the Program Control Unit and the Operations Unit. The chief features of the module and the performing units are:

    1. Decoding of instructions and indirect words with associated direction of the Operations Unit
    Program Control Unit (operations decoder)
    1. Development of effective addresses
    Program Control Unit (address modification registers, adder, location counter, and control circuitry)
    1. Memory protection of all executive routines and user programs not currently under execution
    Program Control Unit (Base Address register and adder)
    1. Dynamic relocation of user and other programs
    Program Control Unit (Base Address register and adder)
    1. Master and Slave Modes of operation whereby in the Master Mode all machine instructions can be executed but in the Slave Mode the LBAR, LDT, SMIC, RMCM, SMCM, and CIOC instructions cannot be executed
    Program Control Unit (Master Mode Indicator and mode control circuitry)
    1. Performance of arithmetic, logical, shifting, and other operations involving fixed- and floating-point numbers in single or double precision
    Operations Unit (control logic submit, main and exponent adders, and associated registers)

    Input/Output Controller Module

    The Input/Output Controller module is the coordinator of all input/output data transfers between the complement of peripheral subsystems and the Memory module. It is in fact a separate processor which, when provided with certain required information from the Comprehensive Operating Supervisor and the user program, works independently of the Processor module under control of its own permanently-wired program.

    The major functional units of the Input Output Controller are (1) the Memory Interface, (2) the Buffer Storage, (3) the Micro-Program Generator, (4) the I-O Processor, and (5) the PUB* Interrupt Service. The main features of this module and the performing units are:

    FEATUREFUNCTIONAL UNIT
    1. Transfer of characters and words to and from memory
    Memory Interface (with the Buffer Storage as controlled by the Micro-Program Generator and I/O Processor)
    1. Transfer of characters only to and from the programmer-designated peripheral type and Comprehensive Operating Supervisor selected physical device
    PUB Interrupt Service (with the Buffer Storage as controlled by the Micro-Program Generator and the I/O Processor)
    1. Memory protection of all executed routines and user programs, not currently involved in input/output operations, on all data transfers
    I/O Processor (as controlled by the Micro-Program Generator)
    1. Sensing and storing, in appropriate input/output queue lists of executive system (protected) memory, the status of every peripheral operation and/or device involved in input/output transfers
    Micro-Program Generator and I/O Processor

    Peripheral Subsystems

    Peripheral subsystems used with the GE-625 635 are described in the following manuals:
    1. CR-20 Card Reader Reference Manual
    2. CR-21 Card Reader Reference Manual
    3. CP-10 Card Punch Reference Manual
    4. CP-20 Card Punch Reference Manual
    5. PR-20 Printer Reference Manual
    6. PR-21 Printer Reference Manual
    7. DS-20 Disc Storage Unit Reference Manual
    8. TS-20 Perforated Tape Reader/Punch Reference Manual
    9. MD-20 Data Drum Reference Manual
    10. Magnetic Tape Subsystems Reference Manuals

    * Peripheral Unit Buffer; that is, peripheral device channel

    SOFTWARE SYSTEM

    Objectives

    The primary objectives of the GE-635 software system are:

    1. To reduce user-program "turn-around" time in large-scale installations (elapsed time from program submission to the machine room up to return of program solutions).
    2. To assure that accounting information is based only on such time as the user program activity is worked upon by the Processor and peripheral devices
    3. To increase the total "throughput" of the computer (the amount of work that may be performed in any given time)
    4. To reduce computer operation "overhead" time in running the installation programs
    5. To provide easy-to-use programmer and operator interfaces with the executive software

    The attainment of these objectives is achieved by the General Comprehensive Operating Supervisor (GECOS) (the overall manager of the software system) through efficient use of the hardware features and the supervision of a multiprogramming environment (which is the normal operating mode of the GE-625/635). The significant features provided by the Operating Supervisor as related to the several primary objectives above are summarized in the list following. These features are implemented by the modules and submodules within the Comprehensive Operating Supervisor.

    1. Scheduling and coordination of jobs
    2. Memory allocation for data and programs
    3. Assignment of input/output peripherals
    4. Input/Output supervision on an interrupt-oriented basis
    5. File-oriented programming (instead of device-oriented)
    6. Fault detection with standard Operating Supervisor or optional programmer-supplied corrective actions
    7. Modular construction to simplify maintenance
    8. Maximum system throughput via multiprogramming
    9. Maximum efficiency of core memory by dynamic program relocation, and by system-controlled subprogram overlays

    Multiprogramming

    Although each user-programmer writes his job program as though he had exclusive use of the computer, he is in fact generating a program that will reside concurrently in memory with other user programs and will be executed in a time-shared manner; that is, any given program is processed until it is held up (usually because of the need for some input/output to be completed) at which time the next most urgent program is processed. Transfer between programs under multiprogram execution is performed by means of the hardware interrupt facility (in the System Controller) working with the Dispatcher routines in the Input/Output Supervisor. The ways by which a user program can be temporarily delayed in execution are:

    DELAY TYPEREASON
    Roadblock Program cannot progress until all input/output requests have terminated
    Relinquish Program relinquishes control so that some other program may be executed
    Forced Relinquish Program was interrupted because a timer run-out occurred.

    Each time a program yields control to the Operating Supervisor by means of Roadblock, Relinquish or by Forced Relinquish listed above, the Supervisor has the opportunity to give control to another program in core which can make effective use of the Processor.

    In giving such control, the Supervisor examines the following conditions:

    1. Program urgency compared to other programs that reside in memory
    2. Roadblock status involving completion of all input/output
    3. Completion of input/output that was pending when the last Relinquish was given
    4. Request present for use of the Processor

    On-Line Media Conversion

    Media conversions are of two basic types (1) bulk media conversion, whereby large volumes of data in a single format and for a single purpose are processed and, (2) system media con-version where low-volume sets of data--each with its own format and purpose--are processed.

    Bulk media conversion is performed by a system routine which may be called into execution by use of a control card. Other control cards will direct the routine as to where to find the input and where to place the output.

    On-line media conversions for both input and output are performed as a normal part of the multiprogramming environment of the GE-625/635, Normal job input is carried out by input media conversion, which reads card input from the card reader, scans the control cards for execution information, and records the job on the input queue located on the system drum.

    System media conversions of program output data are automatically performed by the Output Media Conversion routine executed in protected memory. The programmer specifies that a particular output file be written on the permanently assigned system output (SYSOUT) file by use of the PRINT, PUNCH, or WTREC calling sequences described in the GE-635 File and Record Control Reference Manual. Once on the SYSOUT file, the output is converted to hard copy or punched cards by the Output Media Conversion routine, concurrently with other user programs under execution in the multiprogramming environment.

    Centralized Input/Output

    In the multiprogramming environment where several programs may concurrently request input/ output, a facility must be provided (1) for processing such multiple requests in terms of the efficient use of the entire peripheral complement and, (2) for maintaining continuous processing of the multiple programs in core storage. The Comprehensive Operating Supervisor module that performs these general functions is the Input/Output Supervisor.

    The main functions of the Input/Output Supervisor are to initiate an input/output activity and to respond to the termination of an input/output activity. In addition, the Input/Output Super-visor provides the following functions:

    1. File code to physical unit translation
    2. File protection of user files
    3. Pseudo-tape processing on disc/drum
    4. Supervision of all input/output interrupts
    5. Queueing of input/output requests
    6. Utilization of crossbarred magnetic tape channels
    7. Maintenance of an awareness of the status of each peripheral
    8. Accounting of time spent by the Processor and all peripherals for each program executed

    When the Input/Output Supervisor receives a request to perform an input/output function, it looks at the communication cells and issues a connect instruction. If the particular channel is busy, the request is placed in a waiting queue. If the request queue is full or if the program indicated that it should be roadblocked until all input/output is complete, then control is given to another program residing in memory.

    When the input/output operation terminates, control is given to the Input/Output Supervisor to perform all necessary termination functions. At this point, the request queue is examined and if any requests for the channel are in queue, they will be executed.

    Master/Slave Relationship

    Each Processor has the capability of operating in the Slave Mode or in the Master Mode. Master Mode is established for exclusive use by the Operating Supervisor. When executing a user program. a Processor is in Slave Mode. The prime reason for the Master Mode of operation is to protect the Operating Supervisor and user programs as well from modification by other user programs. This feature is vital in the multiprogramming environment and is closely tied in with memory protection, accounting determinations, multiprogram interrupt management, intermodule communications control, and input/output operations. Each of these functions is implemented by a Processor instruction that requires the Master Mode. These are listed below.

    All instructions available to the Processor in Slave Mode are available in Master Mode. The following instructions can be executed only when the Processor is in Master Mode.

    1. Load Base Address Register (LBAR)
    2. Load Timer Register (LDT)
    3. Set Memory Controller Interrupt Calls (SMIC)
    4. Read Memory Controller Mask Registers (RMCM)
    5. Set Memory Controller Mask Registers (SMGM)
    6. Connect Input/Output Channel (CIOC)

    The last of these instructions, Connect Input/Output Channel, is the beginning of every peripheral operation. Thus, all peripheral operations are reserved for execution in Master Mode, and in particular by the Input/Output Supervisor within the Comprehensive Operating Supervisor.

    Master Mode Entry

    Although Master Mode operation by the Processor is a primary safeguard for executive routines and user programs in memory, the applications programmer can force the Processor into this mode but only for accessing routines that are part of the Operating Supervisor. This is done by use of the Master Mode Entry (MME) instruction and one of the system-symbol operands listed in Appendix E and described fully in the General Comprehensive Operating Supervisor Manual. Any other use of MME causes an abort of the user program. Thus, through the MME instruction, the programmer can communicate with modules of the Operating Supervisor to exchange any necessary information for the execution of his program.

    Mass Storage Orientation

    "Compute overhead" time is reduced and multiprogramming is enhanced through the use of an external drum (mass) storage unit. The drum (and optionally a disc storage device) enables optimized accessing of system routines and performs data transfers at higher rates than other external storage media.

    The drum and or disc is used primarily for the following purposes:

    1. System storage area--Least used submodules of the Operating Supervisor and all system programs are stored on the drum. Included in this storage area are the As-sembler, compilers (FORTRAN and COBOL), portions of the operating system, sub-routine library, sort/merge, utility routines used by system routines, tables associated with storage allocation and file/record assignments, operational statistics, hardware diagnostics , and the General Loader with its debugging routines.
    2. Temporary data storage--Temporary data files used during a single activity can be stored on the drum or disc for fast access.
    3. Permanent user files--Permanent data files can be stored on the drum or disc and accessed through the software system.

    Program File Orientation

    The software system is further described as file oriented because (1) the Comprehensive Opera-ting Supervisor assigns peripheral devices to an activity and (2) it manages all assigned periph-erals during input or output operations so that the programmer never deals directly with input/ output subsystems or devices. The programmer references all peripherals by use of file code designators, two alphanumeric characters, that are referenced in two ways: (1) on file control cards used by the Allocator in the Operating Supervisor to specify those files needed to execute the activity and, (2) in communicating to the File and Record Control program or to the Input/Output Supervisor. The file code designators and their assigned peripheral devices are maintained in the Peripheral Assignment Table (PAT) used by the Input/Output Supervisor for peripheral identification.

    Software Reference Documentation

    The following manuals and documents contain detailed descriptions of items mentioned in this chapter.

    1. GE-635 Comprehensive Operating Supervisor Reference Manual, CPB-1002
    2. GE-635 File and Record Control Reference Manual, CPB-1003
    3. GE-635 General Loader Reference Manual, CPB-1008
    4. GE-635 FORTRAN IV Reference Manual, CPB-1006
    5. GE-635 COBOL Reference Manual, CPB-1007
    6. GE-635 Sort/Merge Generator Reference Manual, CPB-1005
    7. GE-635 FORTRAN IV Mathematical Routine Library, CPB-1083
    8. GE-635 Operator's Reference Manual, CPB-1045


    II. GE-635 PROCESSOR

    GENERAL CHARACTERISTICS

    Major Functional Units

    The Processor comprises two relatively independent units: the Control Unit and the Operations Unit. The Control Unit provides Processor control functions and also serves as an interface between the Operations Unit and memory. In addition, the Control Unit performs the following principal functions:
    1. Address modification
    2. Address relocation
    3. Memory protection for user and executive programs
    4. Fault recognition
    5. Interrupt recognition
    6. Operation decoding

    Since the Control Unit runs independently of the Memory module, a single Processor can be connected to memories with different cycle times. The Processor is designed to eliminate adverse interaction when memories with different cycle times are employed.

    The Operations Unit performs all arithmetic and logical operations as directed by the Control Unit. The Operations Unit contains most of the registers available to a user program. This unit performs such functions as:

    1. Fractional and integer divisions and multiplications
    2. Automatic alignment of fixed-point numbers for additions and subtractions
    3. Inverted divisions on floating-point numbers
    4. Automatic normalization of floating-point resultants
    5. Separate operations on the exponents and mantissas of floating-point numbers
    6. Shifts
    7. Indicator Register loading and storing
    8. Base Address Register loading and storing
    9. Timer Register loading and decrementing

    Master/Slave Mode of Operation

    To permit separation of control and object programs with corresponding protection of control programs from undebugged object programs, two modes of operation, Master and Slave, are provided in the Processor. Control programs will run in the Master Mode, and object programs will run in the Slave Mode. Programs running in Master Mode have access to the entire memory, may initiate peripheral and internal control functions, and do not have base address relocation applied. Programs running in Slave Mode have access to a limited portion of the memory, cannot generate peripheral control functions, and have the Base Address Register added to all relative memory addresses of the object program.

    Master Mode operation is the state in which the Processor:

    1. Presents an "unrelocated" address to the memory
    2. Has an unbounded access to memory
    3. Causes the memory to be in the unprotected state when accessed by the Processor
      1. This permits access to protected areas of memory (protected by the File Protect Register--when provided) and setting of execute interrupt cells.
      2. When this Processor is designated the "control" Processor by the memory, as set by Memory module switches, this also permits generation of peripheral commands, alteration of the File Protect Register (when installed) and interrupt masks, and generation of execute interrupts.
    4. Permits setting the timer and Base Address Register by the appropriate instructions (Load Timer Register or Load Base Register, LDT and LBAR)

    The Processor is in the Master Mode when any of the following exists:

    1. The Master Mode Indicator is in the master condition
    2. An execute interrupt is recognized
    3. A fault is recognized

    Slave Mode operation is the state in which the Processor:

    1. Presents a relocated address to the memory, as specified by the Base Address Register
    2. Restricts the effective address formed to the bounds specified by the Boundary Register
    3. Causes the memory to be in the "protected" state when accessed by the Processorú
      1. This prohibits access to protected areas of memory (controlled by the File Protect Register).
      2. This prohibits generation of peripheral commands, alteration of the File Protect Register/interrupt masks, or setting of execute interrupt cells, even if the Processor is designated the control Processor by the Memory module.
    4. Prohibits setting of the timer, and Base Address Register by the instructions LDT or LBAR

    The Processor is in the Slave Mode when the Master Mode Indicator is in the slave condition or when the Transfer and Set Slave (TSS) instruction is being executed. (See page II- 11.)

    Operation Overlapping

    Instruction words are fetched in pairs and sequentially transferred to the Control Unit of the Processor where the instructions are directed to the primary and secondary instruction registers of the instruction decoder. If required, address modification is then performed using the first of the two instructions.

    As soon as this is accomplished, the operand specified by the first instruction is requested from memory while the Control Unit concurrently performs any address modification required by the second of the instruction pair.

    When the operand called for by the first instruction is obtained, the Control Unit transfers the operand to the Operations Unit, thus initiating the specified operation to be carried out. While this operation is being carried out by the Operations Unit, the operand specified by the second instruction is requested by the Control Unit. As soon as the second operand is received and the Operations Unit has finished with the first operand, the Control Unit signals the Oprations Unit to carry out the second operation. Finally, while the second operation is being carried out, the next instruction pair is requested from memory.

    Address Range Protection

    Any object program address to be used in a memory access request while the Processor is in the Slave Mode is checked, just prior to the fetch, for being within the address range allocated by the Comprehensive Operating Supervisor (GECOS) to the program for this execution. This address range protection is commonly referred to as memory protection.

    For the purpose of memory protection, the 18-bit Processor Base Address Register is loaded by GECOS with an address range in bit positions 9-16. The check takes place only in the Slave Mode. It consists of subtracting bit positions 0-7 of the program address from this address range, using the boundary adder. When the result is zero or negative, then the program address is out of range; and a Memory Fault Trap occurs. (Refer to page 11-14.)

    More specifically, the checking is actually based on nine bits, namely the Base Address Register positions 9-17 and the bit positions 0-8 of the program address. This permits address range allocation to job programs in multiples of 512 words. Because of a software requirement, bits 8 and 17 of the Base Address Register have been wired in such a way that they contain zeros permanently and cannot be altered by the LBAR instruction. Thus, memory allocation and protection is performed in multiples of 1024 words.

    In the Master Mode no checking takes place; thus, any memory location (in those Memory modules that are connected to this Processor) can be accessed.

    Execution of Interrupts

    When an execute interrupt request present signal is received from a Memory module system controller for which the Processor is the control Processor, the Processor carries out the interrupt procedure as soon as an instruction from an odd memory location has been executed that:

    1. Did not have its interrupt inhibit bit position 28 set to a 1
    2. Did not cause an actual transfer of control (A transfer of control is effected if the instruction is an unconditional transfer, or a conditional transfer with the condition satisfied.)
    3. Was not an Execute or Execute Double (XEC or XED) instruction (Note that an XEC or XED instruction and the one or two instructions carried out under its control are regarded as a single instruction execution.)

    The interrupt procedure consists of the following steps:

    1. Enter the Master Mode (the Master Mode Indicator is not affected).
    2. Return the transfer interrupt number command code to the system controller that sent the interrupt request present signal.
    3. Receive a five-bit interrupt code on the data lines from this Memory module (bit positions 12-16), specifying the number of the highest priority nonmasked interrupt cell that was ON when the transfer interrupt number command code was recognized at the System Controller.
    4. Carry out an XED instruction (see p. II-122) with an effective address (Y) as shown below, bits 0-17:

       -------------+--------+-----------+---+------------------------- 
      | 000 000 000 | Memory | Interrupt | 0 | Operation code, inhibit |
      |             |   No   | Cell No.  |   |   bit and tag fields    |
       -------------+--------+-----------+---+------------------------- 
       0           8 9     11 12       16  17 18                     35 
      

      The memory number is determined by the position of the address reassignment switches (A0 A1 A2 ) associated with the system controller causing the execute interrupt. The switches are three-position toggles having the positions 0, 1, and EITHER. A switch in the EITHER position is interpreted as a 0 in preparing the address for the instruction.

      The cell number is determined by the highest priority unmasked interrupt cell (in the system controller) causing the execute interrupt.

    5. Return to the mode specified by the Master Mode Indicator (see below) and continue with the instruction from the memory location specified by the Instruction Counter.

    Each of the two instructions from the memory location Y-pair may affect the Master Mode Indicator as follows:

    1. If this instruction results in an actual transfer of control and is not the Transfer and Set Slave instruction (TSS), then ON (that is, Master Mode).
    2. If this instruction is either the Return instruction (RET) with bit 28 equal to 0 or the TSS instruction, then OFF (that is, Slave Mode).

    The first of the two instructions from the memory location Y must not alter the contents of the location of the second instruction, and must not be an XED instruction. If the first of the two instructions alters the contents of the Instruction Counter, then this transfer of control is effective immediately; and the second of the two instructions is not executed.

    Interval Timer

    The Processor contains a timer which provides a program interrupt at the end of a variable interval. The timer is loaded by GECOS and can be set to a maximum of approximately four minutes total elapsed time. (See pages 11-7 and 11-13)

    REGISTERS

    The Processor block diagram (Figure lI-i) shows the program accessible registers as well as the major nonprogram accessible registers, adders, and switches. Only data and information paths are shown. The block diagram also shows the division between the Operations Unit and Control Unit.

    The switches (rounded figures on the block diagram) control the flow of information between the registers, adders, and the memory interface.

    Program Accessible Registers

    The following table shows the registers accessible to the program.

    NameMnemonicLength
    Accumulator RegisterAQ72 bits
    Eight Index Registers
    (n=O,. 3)
    Xn18 bits each
    Exponent RegisterB8 bits
    Base Address RegisterBAR18 bits
    Indicator RegisterIR18 bits
    Timer RegisterTR24 bits
    Instruction CounterIC18 bits

    1. The AQ-register is used as follows:
      1. In floating-point operations as a mantissa register for single and double precision
      2. In fixed-point operations as an operand register for double precision
      3. In fixed-point operations as operands for single precision where each AQ half serves independently of the others (namely AQ0 35) and the Q-register, (namely AQ3671). The halves then are called the A-register,
      4. In address modification each half halves and QL (namely Q1835).of A as well as of Q is an index register. (namely These
    2. The Xn-registers are used as follows:
      1. In fixed-point operations as operand registers for half precision
      2. In address modification as index registers
    3. The E-register supplements the AQ-register in floating-point the exponent register.
    4. The Base Address Register (BAR) is used in address translation and memory protection. It stores the base address and the number of 1024-word blocks assigned to the object program being executed.
    5. The Indicator Register (IR) is a generic term for all the program-accessible indicators within the Processor. The name is used where the set of indicators appears as a register, that is, as source or destination of data.
    6. The Timer Register (TR) is decremented by one each 15.625 microseconds, and a Timer Runout Fault Trap occurs whenever its contents reach zero. If Timer Runout occurs in Master Mode, the trap does not occur until the Processor returns to Slave Mode; but decrementation continues beyond zero.
    7. The Instruction Counter holds the address of the next instruction to be executed.

    Program Nonaccessible Registers

    The following listed registers are used in Processor operations but are not referenced in machine instructions.

    MnemonicLength
    M72 bits
    H72 bits
    N72 bits
    D8 bits
    G8 bits
    ADR18 bits
    YE18 bits
    YO18 bits
    COE18 bits
    COO18 bits

    1. The M-register is an intermediate register used to buffer operands coming in from memory.
    2. The H- and N-registers are intermediate registers used to hold the operands which are presented to the main, 72-bit (S) adder.
    3. The D-register is used to hold the exponent of the operand from memory in floating-point operations.
    4. The G-register contains the number of shifts necessary in shifting, floating-point, and fixed-point multiply and divide operations.
    5. The ADR (Address) -register is used to hold the absolute address of memory cells when making memory accesses
    6. The YE- and YO-registers contain the address portions of the even and odd instruction respectively of an accessed instruction pair.
    7. The COE- and COO-registers contain the lower half of each instruction word and include the operation code and the tag field portions of the even and odd instructions respectively of an instruction pair.

    Adders

    The following table lists the Processor adders.

    NameLength
    S72 bits
    YS18 bits
    ES10 bits
    BS9 bits
    RS9 bits

    1. The S-adder is the main adder in the Processorú It is used for fixed- and floating-point additions, subtractions, multiplications, and divisions.
    2. The YS-adder is used to compute the effective addresses of instructions and operands.
    3. The ES-adder is the exponent adder; it is used for exponent operations in floating-point operations.
    4. The RS-adder is used to compute the absolute addresses of instructions and operands.
    5. The BS-adder, although not implemented as a complete adder, is used to determine if an effective address is out of the range allocated to the operating program (memory protection).

    PROCESSOR INDICATORS

    General

    The indicators can be regarded as individual bit positions in an 18-bit half-word Indicator Register (IR).

    An indicator is set to the ON or OFF state by certain events in the Processor, or by certain instructions. The ON state corresponds to a binary 1 in the respective bit position of the IR; the OFF state corresponds to a 0.

    The description of each machine instruction on pages II-39 through II-137 includes a statement about (1) those indicators that may be affected by the instruction and (2) the condition under which a setting of the indicators to a specific state occurs. If the conditions stated are not satisfied, the status of this indicator remains unchanged.

    The instruction set includes certain instruction which transfer data between the lower half of a storage location and the Indicator Register. The following table lists the indicators that have been implemented, their relation to the bit positions of the lower half of a memory location, and the instructions directly affecting indicators.

    AssignedBit PositionIndicatorIndicator Instructions
    Assigned18Zero
    1. Load Indicators (LOT)
    2. Store Indicators (STI)
    3. Store Instruction Counter Plus I (STC1)
    4. Return (RET)
    19Negative
    20Carry
    21Overflow
    22Exponent Overflow
    23Exponent Underflow
    24Overflow Mask
    25Tally Runout
    26Paritly Error
    27Parity Mask
    28Master Mode
    Unassigned29 Must be Zero 
    30
    31
    32
    33
    34
    35

    The following descriptions of the individual indicators are limited to general statements only.

    Zero Indicator

    The Zero Indicator is affected by instructions that change the contents of a Processor register (A, Q, AQ, Xn, BAR, IR, TR) or adder, and by comparison instructions.

    The indicator is set ON when the new contents of the affected register or adder contains all binary 0's; otherwise the indicator is set OFF.

    Negative Indicator

    The Negative Indicator is affected by instructions that change the contents of a Processor register (A, Q, AQ, Xn, BAR, IR, TR) or adder, and by comparison instructions.

    The indicator is set ON when the new contents of bit position 0 of this register or adder is a binary 1; otherwise it is set OFF.

    Carry Indicator

    The Carry Indicator is affected by left shifts, additions, subtractions, and comparisons.

    The indicator is set ON when a carry is generated out of bit position 0; otherwise it is set OFF.

    Overflow Indicator

    The Overflow Indicator is affected by the arithmetic instructions, but not by compare instructions and Add Logical (ADL(R)) or Subtract Logical (SBL(R)) instructions

    Exponent Overflow Indicator

    The Exponent Overflow Indicator is affected by arithmetic operations with floating-point numbers or with the exponent register (E).

    The indicator is set ON when the exponent of the result is larger than +127 which is the upper limit of the exponent range.

    Since it is not automatically set to OFF otherwise, the Exponent Overflow Indicator reports any exponent overflow that has happened since it was last set OFF by certain instructions (LDI, RET, and Transfer on Exponent Overflow (TEO)).

    Exponent Underflow Indicator

    The Exponent Underflow Indicator is affected by arithmetic operations with floating-point numbers, or with the exponent register (E).

    The indicator is set ON when the exponent of the result is smaller than -128 which is the lower limit of the exponent range.

    Since it is not automatically set to OFF otherwise, the Exponent Underfiow Indicator reports any exponent underflow that has happened since it was last set OFF by certain instructions (LDI, RET, and Transfer on Exponent Underflow (TEU)).

    Overflow Mask Indicator

    The Overflow Mask Indicator can be set ON or OFF only by the instructions LDI and RET.

    When the Overflow Mask Indicator is ON, then the setting ON of the Overflow Indicator, Exponent Overflow Indicator, or Exponent Underflow Indicator does not cause an Overflow Fault Trap to occur. When the Overflow Mask Indicator is OFF, such a trap will occur.

    Clearing of the Overflow Mask Indicator to the unmask state does not generate a fault from a previously set Overflow Indicator, Exponent Overflow Indicator, or Exponent Underfiow Indicator. The status of the Overflow Mask Indicator does not affect the setting, testing, or storing of the Overflow Indicator, Exponent Overflow Indicator, or Exponent Underflow Indicator.

    Tally Runout Indicator

    The Tally Runout Indicator is affected by the Indirect Then Tally (IT) address modification type (all designators except Indirect and Fault) and by the Repeat, Repeat Double, and Repeat Link instructions (RPT, RPD, and RPL).

    The termination of a Repeat instruction because a specified termination condition is met sets the Tally Runout Indicator to OFF.

    The termination of a Repeat instruction because the tally count reaches 0 (and for RPL because of a 0 link address) sets the Tally Runout Indicator to ON; the same is true for tally equal to 0 in some of the IT address modifications.

    Parity Error Indicator

    The Parity Error Indicator is set to ON when a parity error is detected during the access of one or both words of Y-pair from memory.

    It may be set to OFF by the LDI or RET instruction.

    Parity Mask Indicator

    The Parity Mask Indicator can be set to ON or OFF only by the instructions LDI and RET.

    When the Parity Mask Indicator is ON, the setting of the Parity Error Indicator does not cause a Parity Error Fault Trap to occur. When the Parity Mask Indicator is OFF, such a trap will occur. Clearing of the Parity Mask Indicator to the unmasked state does not generate a fault from a previously set Parity Error Indicator. The status of the Parity Mask Indicator does not affect the setting, testing, or storing of the Parity Error Indicator.

    Master Mode Indicator

    The Master Mode Indicator can be changed only by an instruction. For a description of how the indicator can be changed, refer to the following instruction descriptions:

    InstructionReference
    Master Mode Entry (MVIE)Page II-123
    Return (RET)Page II-116
    Derail (DRL)Page II-124
    Transfer and Set Slave (TSS)Page II-115

    When the Master Mode Indicator is ON, the Processor is in the Master mode; however, the converse is not necessarily true. (See the MME and DRL descriptions.)

    FAULT TRAPS

    Trapping Procedure

    Sixteen types of faults and other events each have a fault trap assigned. Some of these events have nothing to do with actual faults; they are included here because they are treated the same as faults.

    The fault trap procedure is similar to the interrupt procedure (page II-4) except that the effective address is defined differently. The fault trap procedure consists of the following steps:

    1. Automatically enter the Master Mode (the Master Mode Indicator is not affected).
    2. Carry out an Execute Double (XED) instruction (page II-122) with an effective address (Y) as defined for bits 0-17 of a machine word as follows:

       -------+------------+------------+--- 
      | ZEROS |  Constant  |    Code    | 0 |
       -------+------------+------------+--- 
       0     5 6         12 13        16  17 
      
      Constant:
      Set up by the fault switches in the the instructions Master Mode Entry Processor (also see the description of (MME) and Derail (DRL)
      Code:
      The four-bit fault trap code which identifies the respective fault trap (see Figure II-2).

    3. Return to the mode specified by the Master Mode Indicator, and continue with the instruction from the memory location specified by the Instruction Counter,

    Each of the two instructions from the memory location Y-pair may affect the Master Mode Indicator as follows: If this instruction results in an actual transfer of control and is not the Transfer and Set Slave instruction (TSS), then ON: if this instruction is either the Return instruction (RET) with bit 28 equal to 0 or the TSS instruction, then OFF.

    The first of the two instructions from the memory location Y must not alter the contents of the location of the second instruction, and must not be an Execute Double instruction (XED). If the first of the two instructions alters the contents of the Instruction Counter, then this transfer of control is effective immediately; and the second of the two instructions is not executedú

    Fault Categories

    There are four general categories of faults:

    1. Instruction generated (by execution of instruction)
    2. Program generated
    3. Hardware generated
    4. Manually generated

    Instruction Generated Faults

    The Instruction generated faults are:
    1. Master Mode Entry (MME)
      The instruction Master Mode Entry has been executed (page II-123).

    2. Derail (DRL)
      The instruction Derail has been executed (page II-124).

    3. Fault Tag
      The address modifier I(T) where T=F has been recognized. The indirect cycle will not be made upon recognition of F nor will the operation be completed.

    4. Connect (CON)
      The Processor has received a Connect from a Control Processor via a System Controller.

    5. Illegal OP Code (ZOP)
      An operation code of all zeros has been executed.

    Program Generated Faults.

    Program generated faults are defined as:
    1. The Arithmetic Faults
      1. Overflow (FOFL) -- An arithmetic overflow, exponent overflow, or exponent underflow has been generated. The generation of this fault is inhibited when the Overflow Mask is in the mask state. Subsequent clearing of the Overflow Mask to the unmasked state will not generate this fault from previously set indicators. The Overflow Fault Mask state does not affect the setting, testing, or storing of indicators.
      2. Divide Check (FDW) -- A divide check fault occurs when the actual division cannot be carried out for one of the reasons specified with each divide instruction.
    2. The Elapsed Time Interval Faults
      1. Timer Runout (TROF) -- This fault is generated when the timer count reaches zero. If the Processor is in Master Mode, recognition of this fault will be delayed until the Processor returns to the Slave Mode; this delay does not inhibit the counting in the Timer Register.
      2. Lockup (LUF) -- The Processor is in a program lockup which inhibits recognizing an execute interrupt or interrupt type fault for greater than 64 milliseconds. Examples of this condition are the coding TRA* or the continuous use of inhibit bit.
      3. Operation Not Completed (FONC) -- This fault is generated due to one of the following:
        1. No System Controller attached to the Processor for the address.
        2. Operation Not Completed. (See Hardware Generated Faults, page II-14.)
    3. The Memory Faults
      1. Command (FCMD) -- This fault is interpreted as an illegal request by the Processor for action of the System Controller. These illegal requests are:
        1. The Processor is not the the control Processor, or is the control Processor in the Slave Mode, and issues a CIOC, RMCM, RMFP, SMCM, SMFP, or SMIC. The CIOC, SMCM, SMFP, and SMIC commands will not be executed. (Refer to page A-7 for descriptions and references concerning these instruction mnemonics.)
        2. When the Processor has issued a connect to a channel that is masked off (by program or switch).
      2. Memory (FMEM) -- This fault is generated when:
        1. No physical memory existed for the address.
        2. An address (in Slave Mode) is outside the program boundary or System Controller protected memory.
        3. The memory did not respond to a request within 1 to 2 milliseconds.

    Hardware-Generated Faults.

    The hardware-generated faults are defined as:
    1. Operation Not Completed (FONC) -- This fault is generated due to one of the following:
      1. The Processor has not generated a memory operation within 1 to 2 milliseconds and is not executing the Delay Until Interrupt Signal (DIS) instruction.
      2. The System Controller closed out a double-precision or read-alter-rewrite cycle.
      3. See Operation Not Completed under Program Generated Faults (page II-13).
    2. Parity (FPAR) -- This fault is generated when a parity error exists in a word which is read from a core location:
      1. Single- or double-instruction word fetch -- if the odd instruction contains a parity error, the instruction counter retains the location of the even instruction.
      2. Indirect word fetch -- if a parity error exists in an indirect and tally word in which the word is normally altered and replaced, the contents of that memory location are destroyed.
      3. Operand fetch -- when a single-precision operand, C(Y) is requested, the contents of the memory pair located at Y, Y+1 where Y is even, or Y-1, Y, where Y is odd are read from memory. The System Controller will not report a parity error if it occurs in C(Y+1) or C(Y-1), but will restore the C(Y+1), C(Y-1) with a parity bit equal to 1.

        If a parity error occurs on any instruction for which the C(Y) are taken from a location (this includes "to storage" instructions, ASA, ANSA, etc., the Processor operation is completed with the faulty operand before entering the fault routine.

        The generation of this fault is inhibited when the Parity Mask Indicator is in the mask state. Subsequent clearing of the Parity Mask to the unmasked state will not generate this fault from a previously set Parity Error Indicator. The Parity Mask does not effect the setting, testing, or storing of the Parity Indicator.

    Manually Generated Faults.

    Manually generated faults are:
    1. Execute (EXF)
      1. The EXECUTE pushbutton on the Processor maintenance panel has been activated.
      2. An external frequency has been substituted for the EXECUTE pushbutton.

      The above two are dependent on other switch positions on the Processor control panel.

    2. The Power Turn On/Off Faults
      1. Startup (SUF) -- A power turn-on has occurred.
      2. Shutdown (SDF) -- Power will be turned off in approximately 1 millisecond.

    Fault Priority

    The 16 faults are organized into five groups to establish priority for the recognition of a specific fault when faults occur in more than one group. Group I has highest priority.

    Only one fault within a priority is allowed to be active at any one time. In the event that two or more faults occur concurrently, only the fault which occurs first through normal program sequence is permitted.

    Fault Recognition

    Faults in Groups I and II cause the operations in the Processor to abort unconditionally.

    Faults in Groups III and IV cause the operations in the Processor to abort conditionally upon the completion of the operation presently being executed.

    Faults in Group V are recognized under the same conditions that Program Interrupts are recognized. (See page II-4.) Faults in Group V have priority over Program Interrupts and are also subject to being inhibited form recognition by use of the inhibit bit in the instruction word.

    Instruction Counter (IC)

    Upon recognition of a fault, the contents of the Instruction Counter (IC) are shown in the Table of Faults below.


    Fault No.Fault NameGroup
    (Priority)
    IC Contents

    1100Startup I N+0,1, or 2
    1111Execute I N+0,1, or 2
    1011Operation Not Completed II N+0,1, or 2
    0111Lockup II N+0,1, or 2
    1110Divide Check III N (Note 4)
    1101Overflow III N
    1001Parity IV N (Note 2)
    0101Command IV N+1
    0001Memory IV N+1 (Note 4)
    0010Master Mode Entry IV N (Note 4)
    0110Derail IV N (Note 4)
    0011Fault Tag IV N (Note 4)
    1010Illegal Op Code IV N
    1000Connect V N
    0100Timer Runout V N
    0000Shut Down V N

    Notes:

    1. N = Last operation completed.
    2. If parity occurred on operand fetch, operation N-1 was completed with faulty data.
      If parity occurred on instruction fetch, operation N+1 was not completed.
      If parity occurred on IT, IT was not completed.
    3. Number of IND cycles, and ITs performed is unknown.
    4. These operations are considered complete when the fault is recognized.

    Figure II-2. Table of Faults

    THE NUMBER SYSTEM

    The binary system of notation is used throughout the GE-635 information processing system.

    Many of the instructions, mainly additions, subtractions, and comparisons, can be used in two ways: either operands and results are regarded as signed binary numbers in the 2's complement form (the "arithmetic" case), or they are regarded as unsigned, positive binary numbers (the "logic" case). The Zero and the Negative Indicators facilitate the general interpretation of the results in the arithmetic case; the Zero and the Carry Indicators, in the logic case. The instruction set contains instruction types "Add Logic" and "Subtract Logic" which particularly facilitate arithmetic of the logic type with half-word, single-word, and double-word precision.

    Subtractions are carried out internally by adding the 2's complement of the subtrahend.* It is a characteristic feature of the 2's complement representation that a "no borrow" condition in the case of true subtraction corresponds to a "carry" condition in the case of addition of the 2's complement, and vice versa.

    A statement on the assumed location of the binary point has significance only for multiplications and divisions. These two operations are implemented for integer arithmetic as well as for fractional arithmetic with numbers in 2's complement form, "integer" meaning that the position of the binary point may be assumed to the right of the least-significant bit position (that is, to the right of bit position 35 or 71, depending on the precision of the respective number) and "fractional" meaning that the position of the binary point may be assumed to the left of the most-significant bit position (that is, between the bit positions 0 and 1).

    REPRESENTATION OF INFORMATION

    The Processor is fundamentally organized to deal with 36-bit groupings of information. Special features are also included for ease in manipulating 6-bit groups, 18-bit groups, and 72-bit, double-precision groups. These bit groupings are used by the hardware and software to represent a variety of forms of information.

    Position Numbering

    The numbering of bit positions, character positions, words, etc., increases in the direction of conventional reading and writing: from the most- to the least-significant digit of a number, and from left to right in conventional alphanumeric text.

    Graphical presentations in this manual show registers and data with position numbers increasing from left to right.

    The Machine Word

    The machine word consists of 36 bits arranged as follows:

    0              17 | 18            35
    ------------------+-----------------
    |           One Machine Word         |
    ------------------+-----------------
     Upper Half word | Lower Half word
    

    Data transfers between the Processor and memory are word orientated: 36 bits are transferred at a time for single-precision data and two successive 36-bit word transfers for double-precision data. When words are transferred to a Magnetic Core Storage Unit, this unit adds a parity bit to each 36-bit word before storing it. When words are requested from a Magnetic Core Storage Unit, this unit verifies the parity bit read from the store and removes it from the word transferred prior to sending each word to the Processor.


    * When the subtrahend is zero, the algorithm for forming the 2's complement is still carried out. Thus, each bit of the subtrahend is complemented, and a 1 is added into the least-significant position of the parallel adder.

    The Processor has many built-in features for transferring and processing pairs of words, transferring a pair of words to or from memory, a pair of memory locations is accessed; the addresses are an even and the next-higher odd number.

    0              35 | 36            72
    ------------------+-----------------
    |     A Pair of Machine Words      |
    ------------------+-----------------
       Even Address  |   Odd Address  
    

    In addressing such pairs of machine locations in an instruction that is intended for handling pairs of machine words, either of the two addresses may be used as the effective address (Y). Thus,

    If Y is even, the pair of locations (Y, Y+1) is accessed. If Y is odd, the pair of locations (Y-1, Y) is accessed. The term "Y-pair" is used for each such pair of addresses.

    Alphanumeric Data

    Alphanumeric data are represented by six-bit or nine-bit characters. A machine word contains either six or four characters:

    Character positions within a word :

    ------+------+------+------+------+------         
    |  0   |  1   |  2   |  3   |  4   |  5   |  six-bit
    ------+------+------+------+------+------         
    0    5 6   11 12  17 18  23 24  29 30  35         
    
    ---------+---------+---------+---------          
    |    0    |    1    |    2    |    3    |  nine-bit
    ---------+---------+---------+---------          
    0       8 9      17 18     26 27     35         
    
    Bit positions within a character:
    -----+-----+-----+-----+-----+-----         
    |  0  |  1  |  3  |  4  |  4  |  5  |  six-bit
    -----+-----+-----+-----+-----+-----         
    
    -----+-----+-----+-----+-----+-----+-----+-----+-----          
    |  0  |  1  |  3  |  4  |  4  |  5  |  6  |  7  |  8  |  nine-bit
    -----+-----+-----+-----+-----+-----+-----+-----+-----          
    

    The character set used is the Computer Department Standard Character Set, which is readily convertible to and from the ASCII character set.

    Binary Fixed-Point Numbers

    The instruction set comprises instructions for binary fixed-point arithmetic with half-word, single-word, and double-word precision.

    PRECISION                               REPRESENTATION
    ---------                               --------------
    
                                              ------------------ - - - - - - - - - 
                                Upper Half   |                  |                 |
                                              ------------------ - - - - - - - - - 
                                              0               17
    Half-word
                             - - - - - - - - - -----------------
                 Lower Half |                 |                 |
                             - - - - - - - - - -----------------
                                               18             35
    
                                      ----------------------------------
    Single-word                      |                                  |
                                      ----------------------------------
                                      0                               35
    
                     ---------------------------------- ----------------------------------
    Double-word     |                                  |                                  |
                     ---------------------------------- ----------------------------------
                     0                               35 36                              72
                                 Even Address                       Odd Address
    

    Instructions can be divided into two groups according to the way in which the operand is interpreted: the "logic" group and the "algebraic" group.

    For the "logic" group, operands and results are regarded as unsigned, positive binary numbers. In the case of addition and subtraction, the occurrence of any overflow is reflected by the carry out of the most-significant (leftmost) bit position:

    1.Addition -- If the carry out of the leftmost bit position equals 1, then the result is above the range.
    2.Subtraction -- If the carry out of the leftmost bit position equals 0, then the result is below the range.

    In the case of comparisons, the Zero and Carry Indicators show the relation.

    For the "algebraic" group, operands and results are regarded as signed, binary numbers, the leftmost bit being used as a sign bit, (a 0 being plus and 1 minus). When the sign is positive all the bits represent the absolute value of the number; and when the sign is negative, they represent the 2's complement of the absolute value of the number.

    In the case of addition and subtraction the occurrence of an overflow is reflected by the carries into and out of the leftmost bit position (the sign position). If the carry into the leftmost bit position does not equal the carry out of that position then overflow has occurred. If overflow has been detected and if the sign bit equals 0, the resultant is below range; if with overflow, the sign bit equals 1, the resultant is above range.

    An explicit statement about the assumed location of the binary point is necessary only for multiplication and division; for addition, subtraction, and comparison the binary points are "lined up."

    In the GE-625/635 Processor, multiplication and division are implemented in two forms for 2's complement numbers: integer and fractional.

    In integer arithmetic, the location of the binary point is assumed to the right of the least-significant bit position, that is, depending on the precision, to the right of bit position 35 or 71. The general representation of a fixed-point integer is then:

    -an2n +an-12n-1 +an-22n-2 ... +a121 +a020

    where an is the sign bit.

    In fractional arithmetic, the location of the binary point is assumed to the left of the most-significant bit position, that is, to the left of bit position 1. The general representation of a fixed-point fraction is then:

    -a020 +a12-1 +a22-2 ... +an-12-(n-1) +an2-n

    The number ranges for the various cases of precision, interpretation, and arithmetic are listed in Figure II-3.

    InterpretationArithmetic Precision
    Half-Word
    (Xn, Y0..17)
    Single-Word
    (A,Q,Y)
    Double-Word
    (AQ, Y-pair)
    AlgebraicIntegral -217 <= N <= (217 - 1) -235 <= X <= (235-1) -271 <= N <= (271-1)
    Fractional -1 <= N <= (1-2-17) -1 <= N <= (1-2-35) -1 <= N <= (1-2-71)
    LogicIntegral 0 <= N <= (218)-1) 0 <= N <= (236)-1) 0 <= N <= (272)-1)
    Fractional 0 <= N <= (1-2-18)-1) 0 <= N <= (1-2-36)-1) 0 <= N <= (1-2-72)-1)

    Figure II-3. Ranges of Fixed Point Numbers

    Binary Floating-Point Numbers

    The instruction set contains instructions for binary flaoting-point arithmetic with numbers of single-word and double-word precision. The upper 8 bits represent the integral exponent E in the 2's complement form, and the lower 28 or 64 bits represent the fractional mantissa M in 2's complement form. The notation for a floating point number Z is:

    Z(2) = M(2) * 2E(2)

    Single-Word precision:

     0   1          7  8  9                                   35
     ---+------------+---+-------------------------------------- 
    | s |            | s |                                      |
     ---+------------+---+-------------------------------------- 
    |      E         |                  M                       |
    

    Double-Word precision:

     0   1          7  8  9                                                  71
     ---+------------+---+----------------------------------------------------- 
    | s |            | s |                                                     |
     ---+------------+---+----------------------------------------------------- 
    |      E         |                            M                            |
    

    Where S = Sign bit

    Before doing floating point additions or subtractions, the Processor aligns the number which has the smaller positive exponent. To maintain accuracy, the lowset sermissible exponint of -128 together with the mantissa equal to 0.000....0 has beed defined as the machine representation of the number zero (which has no unique floating-point representation). Whenever a floating point operation yeilds a resultant untruntcated machine mantissa equal to zero (71 bits plus sign because of extended precision), the exponent is automatically set to -128.

    The general representation of the exponent for single and double precision is:

    -e727+e626+ . . . +e121+e020

    where e7 is the sign.

    The general representations of the single- and double-precision mantissa are:

    Single Precision
    -m020 +m12-1 +m22-2 +m262-26 +m272-27
    Double Precision
    m020 +m12-1 +m22-2 +m622-62 +m632-63

    where m0 is the sign in both cases.

    Normalized Floating-Point Numbers

    For normalized floating point numbers, the binary point is placed at the left of the most-significant bit of the manitssa (to the right of the sign bit). Numbers are normalized by shifting the mantissa (and correspondingly adjusting the exponent) until no leading zeros are present in the mantissa for positive numbers, or until no leading ones are present in the mantissa for negative numbers. Zeros fill in the vacated bit positions. With the exception of the number zero (represented as 0 * 2-128), all normalized floating point numbers will contain a binary 1 in the most-significant bit position for positive numbers and a bianry 0 in the most-significant bit position for negative numbers. Some examples are:

      Unnormalized positive number (0|0001101) * 27
    Same number normalized (0|1101000) * 24
    Unnormalized negative number (1|11010111) * 2-4
    Same number normalized (1|01011100) * 2-6

    The numberof ranges resulting from the various cases of precision, normalization, and sign are listed in the table following:

    SignSingle PrecisionDouble Precision
    NormalizedPositive 2-129 <= N <= (1-2-27) 2127 2-129 <= N <= (1-2-63) 2127
    Negative -(1+2-26)2-129= N >= -2127 -(1+2-62)2-129= N >= -2127
    UnnormalizedPositive 2-155 <= N <= (1-2-27) 2127 2-191 <= N <= (1-2-63) 2127
    Negative -2-155 >= N >= -2127 -2-191 >= N >= -2127

    NOTE: The floating-point number zero is not included in the table.

    Figure II-4. Ranges of Floating-Point Numbers

    Decimal Numbers

    The instruction set does not comprise instructions for decimal arithmetic. The represetation of decimal numbers in the machine therefore depends entirely on the programs used for performing the decimal arithmetic required.

    The representation of te decimal digits as a subset of the character set is shown in Appendix F.

    Instructions

    Machine instructions have the following general format:

     ---------------------------+------------+---+---+---+-------------- 
    |            y              |  op code   | 0 | i | 0 |     tag      |
     ---------------------------+------------+---+---+---+-------------- 
     0                        17 18        26 27  28  29  30          35 
    

    Where

    y
    the address field; also used in some cases to augment the Op Code as in shift operations where it specifies the number of shifts
    Op Code
    the operation code, usually stated in the form of a 3-digit octal number
    i
    interrupt inhibit bit
    Tag
    the tag field, generally used to control the address modification
    0
    the two bit positions 27 and 29 have no function at this time; however, they must be zero for compatibility with other 600-line Processors.

    The three repeat instructions, Repeat, Repeat Double, and Repeat Link (RPT, RPD, and RPL) use a different instruction format. (See pages II-125, II-127, and II-129.

    Indirect words have the same general format as the instruction words; however, the fields are used in a somewhat different way. (See page II-26 and following.)

    ADDRESS TRANSLATION AND MODIFICATION

    Address Translation

    Any program address to be used in a memory access request while the Processor is in the Slave Mode is first translated into an actual address and then submitted to the memory.

    The term "program address" is used for the following addresses:

    1. An instruction address which is the address used for fetching instructions
    2. A tentative address which is the address used for fetching an indirect word
    3. An effective address, which is the final address produced by the address modification process, is the address used for obtaining an operand, for storing a result, or for other special operations during which the memory is accessed using the effective address.

    For the purpose of address translation, the Processor Base Address Register contains a base address in bit positions 0-7. The translation takes place only in the Slave Mode of operation. It consists of adding this base address to bit positions 0-7 of the program address, using the Relocation Adder (RS).

    In the Master Mode no address translation takes place. Any program address to be used in a memory access request while the Processor is in the Master Mode is used directly as an actual address and submitted to the memory without any translation.

    Address translation is actually based on nine bits, namely the Base Address Register positions 0-8 and the bit positions 0-8 of the program address; this permits address relocation by multiples of 512 words. Because of a software requirement, bit positions 8 and 17 of the Base Address Register have been wired in such a way that they contain 0's permanently and cannot be altered by the Load Base Address Register (LBAR) instruction, Thus, address relocation is performed in multiples of 1024.

    Tag Field

    Before the operation of an instruction is carried out, an address modification procedure generally takes place as directed by the tag field of the instruction and possibly of indirect words. Only the repeat mode instructions RPT, RPD, and RPL do not provide for an address modification. (See pages II-125, II-127, and II-129.

    The tag field consists of two parts, tm and td that are located within the instruction word as follows:

     30   31 32           35 
     ---+---+---+---+---+--- 
    |       |               |
     ---+---+---+---+---+--- 
    |  tm   |       td      |
    

    Where

    tm
    specifies one of the four possible modification types: Register (R), Register then Indirect (RI), Indirect then Register (IR), and Indirect then Tally (IT)
    td
    specifies further the action for each modification type:
    1. In the case of tm = R, RI, or IR, td is called the register designator and generally specifies the register to be used in indexing.
    2. In the case of tm = IT, td is called the tally designator and specifies the tallying in detail.

    Modification Types

    The following table gives a general characterization of each of the four modification types.

    tmBinaryModification Type
    R00 Register
    Indexing according to td as register designator and termination of the address modification procedure.
    RI01 Register then Indirect
    Indexing according to td as register designator, then substitution and continuation of the modification procedure as directed by the Tag field of this indirect word.
    IR11 Indirect then Register
    Saving of td as final register designator, then substitution and continuation of the modification procedure as directed by the Tag field of this indirect word.
    IT10 Indirect then Tally
    Substitution, then use of this indirect word according to td as tally designator.

    Register Designator

    Each of the three modification types R, RI, IR includes an indexing step which is further specified by the register designator td In most cases, td really specifies the register from which the index is obtained. However td may also specify a different action, namely that the effective address Y is to be used directly as operand and not as address of an operand (DU, DL), or that nothing takes place at all (N). Nevertheless td is called "register designator" in these cases.

    Register DesignatorAction
    SymbolicBinary
    N0000yreplaces Y
     
    X11001 y + C(Xn)replaces Y
    X21010
    ..
    X71111
     
    AU0001y + C(A)0..17replaces Y
    AL0101y + C(A)18..35replaces Y
    QU0010y + C(Q)0..17replaces Y
    QL0110y + C(A)18..35replaces Y
    IC0100y + C(IC)replaces Y
     
    DU0011y, 00...0is the operand
    DL011100...0,yis the operand

    Tally Designator

    The modification type IT consists of a substitution and the use of this indirect word as specified by the td of the instruction or previous indirect word as tally designator.

    The format of the indirect word is:

     ------------------+------------+------ 
    |         y        |   Tally    | Tag  |
     ------------------+------------+------ 
     0               17 18        29 30  35 
    

    Where
    y=address field
    Tally=tally field
    Tag=tag field

    Depending upon the prior tally designator, the tag field is used in one of three ways:

    ...

    The following table gives the possible tally designators under IT type modification.

    Tally DesignatorName
    SymbolicBinary
    I1001Indirect only
    DI1100Decrement Address, Increment Tally
    AD1011Add Delta (from address field)
    SD0100Subtract Delta (from address field)
    ID1110Increment Address, Decrement Tally
    DIC1101Decrement Address, Increment Tally, and Continue
    IDC1111Increment Address, Decrement Tally, and Continue
    CI1000Character form Indirect
    SC1010Sequence Character
    F0000Fault

    Address Modification Flowcharts

    All possible types and sequences of address modification are shown on the following two flow charts.

    Modification TypeFlow Chart
    R, IR, and RI address modificationFigure 11-5A
    IT address modificationFigure II-5B

    See explanation of symbols and descriptions of modifications immediately following these figures.

    Figure II-5A. Address Modification Flowchart

    Explanation of Symbols Used on Flowcharts

    y, tm,td is the original address, tag modifier, and tag designator, respectively.
    Cf, Tally, Delta is the value of the character field, tally field,and delta field of an indirect word.
    4should be read "replaces."
    C(---)should be read "the contents of ---."
    Y is the final effective address to be used in carrying out an instruction operation.
    Yi is the address of an indirect word which will be used for further modification.
    Yii is the address, obtained from another indirect word, of an indirect word which will be used for further modification.
    (---) represents quantities obtained from the contents of an indirect word.
    ((---)) represents quantities obtained from the contents of an indirect word which was obtained through another indirect word.
    td* is the register designator to be used as a final register modifier under IR modification.
    Original Most indirect words which are used under IT modification utilize the read-alter-rewrite (RAR) memory cycle. This RAR cycle must be completed before another indirect cycle can occur. The word original refers to the quantity contained in an indirect word before that quantity is incremented (during the alter part of the RAR cycle). Omission of the word original refers to the quantity after it is incremented or decremented during the alter portion of the RAR cycle.
    End indicates that the modification procedure for that instruction has terminated and the effective address Y, developed up to that point, is used to carry out the instruction operation.

    Detailed Description of Flowcharts

    1 The instruction word address field serves as the initial value of the tentative address y, and its tag field supplies the initial modifier tm as well as initial designator td
    2 tm is one of the four modification types: R, RI, IR, or IT.
    3 y modified by td replaces the former tentative address y. If td = DU or DL, DU or DL is ignored and the modification proceeds as if td = N.
    4 The tentative address y, developed up to that point, becomes the address Yi. to be used in accessing an indirect word which will be used for further modification. Using Yi the indirect word is fetched.
    5 The address and tag fields of the last indirect word replace the tentative address and the tag of the instruction.
    6 The last designator td, becomes the final designator td* to be used as a final register modifier under IR modification.
    7 tm, of the indirect word, designates one of the four modification types: R, RI, IR, or IT.
    8 The address of the indirect word (y), modified by the final register modifier td*, replaces the former tentative address.
    9 The tentative indirect address (y), developed up to that point, is used as the effective address Y for carrying out the instruction operation.
    10 The designator of the indirect word (td) replaces the final register designator td*.
    11 The tentative indirect address (y), developed up to that point becomes the address Yii, to be used in accessing another indirect word which will be used for further modification. Using Yii, the indirect word is fetched.
    12 The address (y), contained in the indirect word and modified by the designator of the indirect word (td), replaces the tentative indirect address (y).
    13 y modified by td replaces the former tentative address y.
    14 The tentative address y, developed up to that point, is used as the effective address Y for carrying out the instruction's operation.
    15 td is one of the nine tally designators: SC, CI, DIG, AD, IDC, F, DI, I, or ID.
    16 A value one less than or one greater than the value of the tally field loaded from the indirect word becomes the new value of the tally field, depending on the use of the AD or SD designator.
    17 The Tally Runout Indicator is set to ON if the tally field equals zero after incrementation or decrementation; the Indicator is set to OFF if the tally field does not equal zero after incrementation or decrementation.
    18 A value one greater than the value of the character field loaded from the indirect word becomes the new value of the character field.
    19 If the value of the character field Cf equals six, the character field is set to zero; and a value one greater than the value of the address field loaded from the indirect word becomes the new value of the address field.
    20 During the rewrite portion of the read-alter-rewrite cycle used for updating an indirect word, the updated fields -- (y), (Cf), (Tally), (Delta), (tm), (td), where applicable -- are returned to storage in memory.
    21 The original value of the address field (y), as loaded from the indirect word before any incrementation or decrementation, becomes the effective address Y which is used to carry out the instruction operation.
    22 The original value of the character field Cf, as loaded from the indirect word before any incrementation (or setting to zero), is the value used in carrying out the instruction operation. (See note at end of this listing.)
    23 A value one less than the value of the address field loaded from the indirect word becomes the new value of the address field.
    24 A value one greater than the value of the tally field loaded from the indirect word becomes the new value of the tally field.
    25 Under IDC or DIG types of modification, the modifiers permitted within the indirect are: td = N m t = IR td = N m t =RI td = N m t = IT any td m t = R effectively terminates the modification procedure while m t = RI, IR, or IT seeks at least an additional level of modification. m
    26 The original value of the address field (y), as loaded from the indirect word before incrementation, becomes the address Yii to be used in accessing the next indirect word which will be used for further modification.
    27 The address and tag fields of Yii replace the address and tag fields of the original instruction, and modification proceeds as directed by the new tag field.
    28 Occurs when tm = IT and td = F, or when Fault tag fault is initiated and no further indirect addressing occurs.
    29 A value one greater than the value of the address field loaded from the indirect word becomes the new value of the address field.
    30 A value equal to the value of the address field (loaded from the indirect word) plus or minus Delta (a constant also loaded from the indirect word) replaces the value of the address field, The constant is positive for the AD designator and negative for the SD designator.
    31 The value of the character field Cf, after incrementation (or setting to zero), is used in carrying out the instruction operation. (See the note at the end of this listing.)
    32 The original value of the address field and the tag field of the last indirect word replace the tentative address and tag of the instruction.
    NOTE:
    When the tally designator is CI or SC, the character field of the last indirect word is an octal number which specifies the character position of the memory location Y to be used in carrying out the instruction operation (the example uses a value of 3 in the character field).

    ....

    For six-bit character operations in which the operand is taken from memory, the effective operand from memory is presented as a single word with the specified character justified to character position 5; positions 0-4 are presented as zero. For operations in which the resultant is placed in memory, character 5 of the resultant replaces the specified character in memory location Y; the remaining characters in memory location Y are not changed.

    For nine-bit character operations in which the operand is taken from memory, the effective operand from memory is presented as a single word with the specified character justified to character position 3; positions 0-2 are presented as zero. For operations in which the resultant is placed in memory, character 3 of the resultant replaces the specified character in memory location Y; the remaining characters in memory location Y are not changed.

    CALCULATION OF INSTRUCTION EXECUTION TIMES

    The instruction execution times (Appendix A) are based on fetching of instructions in pairs from memory, and in the case of overlap type instructions, also on overlap between the operation execution of the overlap type instruction and the fetching and address modification of the next instruction. (Overlap type instructions = multiplications; divisions; shifts; floating-point operations except "loads" and "stores".)

    Certain operations prevent the fetching of instructions in pairs or the overlapping; accordingly, the following time adjustments should be made.

    1. If an instruction from an even memory location alters a register, and the next instruction (from the successive odd memory location) begins its address modification procedure with an R or RI type of modification which uses this same register, then add 0.8 microseconds.
    2. If an instruction from an even memory location alters the next instruction, then add 1.7 microseconds.
    3. If a transfer of control instruction is located at an even memory location, then add 0.5 microseconds.
    4. If a transfer of control transfers to an instruction located at an odd memory location, then add 0.8 microseconds.
    5. If a store type instruction is located at an even memory location, then subtract 0.5 micro-seconds. (Store type instructions = store; floating store; add and subtract stored; AND, OR, and EXCLUSIVE OR to storage; etc.)
    6. If located at an odd memory location, then add 0.5 microseconds.
    7. If a store type instruction is followed by one or more store type instructions, then from each such following instruction subtract 0.5 microseconds.
    8. If an overlap type instruction is followed either by a store type instruction from an odd memory location, or by a transfer of control instruction, then (depending on the particular instruction sequence) add 1.0 to 2.0 microseconds.

    The instruction execution times of shift and floating-point operations are listed as "average times based on a number of five-shift steps. Note that a single-shift step may effect a shift by one, four, or sixteen positions. Actual times for these instructions may vary by up to + 0.8 microseconds. Where unnornialized operands are used in normalizing floating-point operations, worst-case conditions can add as much as 1.5 microseconds.

    Address modifications do not require any time adjustments except in the following cases:

    1. RI type: for the indirect cycle add 1. 1 microseconds.
    2. IR type: for the indirect cycle add 1.7 microseconds.
    3. IT type: for the indirect cycle with restoring of the indirect word add 2.5 microseconds.
    4. IT type: for the indirect cycle with nonrestoring of the indirect word (CI and I) add 1.7 microseconds.
    5. Index designator DU or DL: subtract 0.5 microseconds, except when used with a first modification of the R or RI type with the preceding instruction being an "overlap" type instruction.

    THE INSTRUCTION REPERTOIRE

    The GE-625/635 instruction set described under this heading is arranged by functional class, as listed in Appendix A. Appendix A together with Appendix B, which lists the instructions in alphabetical order by mnemonic, afford convenient page references to the instructions in this section, Appendix C presents the instruction mnemonics grouped by operation code.

    For the description of the machine instructions that follow it is assumed that the reader is familiar with the general structure of the Processor, the representation of information, the data formats, and the method of address modifications, as presented in the preceding paragraphs of this chapter.

    Format of Instruction Description

    Each instruction in the repertoire is described in the following pages of this chapter. The descriptions are presented in the standardized format shown below.

    Mnemonic:Name of the Instruction:Op Code (octal)
         
    SUMMARY:
    MODIFICATIONS:
    INDICATORS:(Indicators not listed are not affected)
       
    NOTE:

    Line 1:
    Mnemonic, Name of the Instruction, Op Code (octal)

    This line has three headings that appear over boxes containing the following:

    1. Mnemonic -- The mnemonic code for the Operation field of the programming form.
    2. Name of the Instruction -- The name of the machine instruction from which the Mnemonic was derived.
    3. Op Code (octal) -- The octal operation code for the instruction.

    Line 2: SUMMARY
    The change in the status of the information processing system effected by the execution of the instructions operation is described in a short and generally symbolic form. If reference is made here to the status of an indicator, then it is the status of this indicator before the operation is executed.

    Line 3: MODIFICATIONS
    Those designators are listed explicitly that shall not be used with this instruction either because they are not permitted with this instruction or because their effect cannot be predicted from the general address modification procedure.

    Line 4: INDICATORS
    Only those indicators are listed whose status can be changed by the execution of this instruction. In most cases, a condition for setting ON as well as one for setting OFF is stated. If only one of the two is stated, then this indicator remains unchanged. Unless explicitly stated otherwise, the conditions refer to the contents of registers, etc. as existing after the execution of the instruction's operation.

    Line 5: NOTES
    This part of the description exists only in those cases where the SUMMARY is not sufficient for an understanding of the operation.

    Abbreviations and Symbols

    The following abbreviations and symbols will be used for the description of the machine operations.

    Registers:

       A-Accumulator Register (36 bits)
    Q-Quotient Register (36 bits)
    AQ-Combined Accumulator-Quotient Register (72 bits)
    Xn-Index Register n (n = 0, 1,. . . , 7) (18 bits)
    E-Exponent Register (8 bits)
    EA-Combined Exponent-Accumulator Register (8 + 36 bits)
    EAQ-Combined Exponent-Accumulator-Quotient Register (8 + 72 bits) BAR = Base Address Register (18 bits)
    IC-Instruction Counter (18 bits)
    IR-Indicator Register (18 bits, 11 of which are used at this time)
    TR-Timer Register (24 bits)
    Z-Temporary Pseudo-result of a non-store comparative Operation.

    Effective Address and Memory Locations:

       Y- The effective address (18 bits) of the respective instruction.
    Y-pair- A symbol denoting that the effective address Y designates a pair of memory locations (72 bits) with successive addresses, the lower one being even. When the effective address is even, then it designates the pair (Y, Y+1), and when it is odd, then the pair (Y-1, Y). In any case the memory location with the lower (even) address contains the more significant part of a double-precision number or the first of a pair of instructions.

    Register Positions and Contents:

    ("R" standing for any of the registers listed above as well as for a memory location or a pair of memory locations.)

       Ri = the ith position of R
       Ri...j = the positions i through j of R
       C(R) = the contents of the full register R
       C(R)i = the contents of the ith position of R
       C(R)i...j = the contents of the positions i through j of R

    When the description of an instruction states a change only for a part of a register or memory location, then it is always understood that the part of the register or memory location which is not mentioned remains unchanged.

    Other Symbols:

       =>i = replaces
       ::i = compare with
       ANDi = the Boolean connective AND (symbol A)
       ORi = OR = the Boolean connective OR (symbol V)
       R!= = the Boolean connective NON-EQUIVALENCE (or EXCLUSIVE OR)

    Memory Accessing

    It is a characteristic feature of the GE-625/635 computer that an address translation takes place with each memory access when the Processor operates in the Slave Mode.

    During the execution of a program, a base address is contained in the bit positions 0-7 of the Processor Base Address Register. With each memory access, this base address is added to bit positions 0-7 of the program address supplied by this program in order to generate the actual address used in accessing the memory. In this way, the address translation provides complete independence of the program address range from the actual address range that is used with a specific execution of this program.

    Only when the Processor is in the Master Mode is the program address used directly as an actual address; in this case, program addresses generally refer to the Comprehensive Operating System which has allocated to it the actual address range beginning at zero.

    The descriptions of the individual machine instructions in this chapter do not mention the address translation. It is understood here that an address translation has to be performed immediately prior to each memory access request (in the Slave Mode) regardless of whether:

    1. The program address is an instruction address, and the memory is accessed for fetching an instruction
    2. The program address is a tentative address, and the memory is accessed for fetching an indirect word
    3. The program address is an effective address, and the memory is accessed for obtaining an operand or for storing a result.

    No address translations take place for effective addresses which are used either as operands directly or in other ways (for example, shifts).

    Floating-Point Arithmetic

    Numbers in floating-point representation are stored in memory as follows:

    Integer ExponentFractional Mantissa
    Single-word precision C(Y)0...7 C(Y)8...35
    Double-word precision C(Y-pair)0...7 C(Y-pair)8...71

    When a floating-point number is held in the register EAQ, its mantissa length is allowed to increase to the full length of the register AQ.

    ....

    In storing a floating-point number, a truncation of the mantissa takes place. With single-word precision store Instructions, only C(AQ)0-27 will be stored as mantissa, and with double-word precision store instructions, only C(AQ)0-63.

    DESCRIPTIONS OF THE MACHINE INSTRUCTIONS

    DATA MOVEMENT
    LOAD

    Mnemonic:Name of the Instruction:Op Code (octal)
     LDA  Load A 235
    SUMMARY:C(Y) => C(A)
    MODIFICATIONS:All
    INDICATORS:(Indicators not listed are not affected)
     Zero  If C(A) = 0, then ON; otherwise OFF
     Negative  If C(A)0 = 1, then ON; otherwise OFF

    Mnemonic:Name of the Instruction:Op Code (octal)
     LDQ  Load Q 236
    SUMMARY:C(Y) => C(Q)
    MODIFICATIONS:All
    INDICATORS:(Indicators not listed are not affected)
     Zero  If C(Q) = 0, then ON; otherwise OFF
     Negative  If C(Q)0 = 1, then ON; otherwise OFF

    Mnemonic:Name of the Instruction:Op Code (octal)
     LDAQ  Load AQ 237
    SUMMARY:C(Y-pair) => C(AQ)
    MODIFICATIONS:All exce