SCIENTIFIC COMPUTATION R SYSTEMS AND CONTROL APPLICATIONS ON- LINE DATA COLLECTION AND REDUCTION

The Programmed Data Processor-5 (PDP-5) makes available to engineering and scientific applications a random-access, high-speed, magnetic-core memory in a compact but complete general-purpose digital . It is intended for use in computation or as a control or processing element in an on-line data handling, experiment monitoring, or process control system. The PDP-5 performs binary operations on 12- or 24-bit 2's complement numbers. Its 6-microsecond core memory cycle time gives it a computation rate of 55,555 additions per second and permits it to handle input-output data at rates up to two million bits per second. It is capable of servicing up to 64 external devices, each requirihg up to three commands, or 96 devices, each requiring two co-mmands, or 192. devices, each requiring one command. The external devices can be special-purpose units or any of Digital's wide selection of unique display or tape equipment and more conven- tional card, tape, and mass storage equipment. The addition of devices in the field requires no modification to the central processor. PDP-5 circuits use Digital's cus- tomer-proven solid-state circuit modules and incorporate provisions for marginal checking to insure reliability even under difficult operating conditions. Its programming system includes a FORTRAN compiler which operates in a basic PDP-5 with 4096 words of core memory. An expanded FORTRAN operating system is also available for installations with Digital's new Micro Tape. Other elements of the programming system are the Symbolic Assembler, Symbolic On-Line Debug- ging Program, Symbolic Tape Editor, Floating Point Package, mathematical func- tion routines, and utility and maintenance programs. On-line debugging and tape editing, a unique Digital combination, establish a close programmer-machine oper- ating mode in which the computer assists in the program debugging and edits program tapes to incorporate the programmer's changes. The result is far more speed in preparing operating programs and getting them on-line. STANDARD The standard PDP-5 includes the central processor (shown in the diagram), 1024- to 32,768-word, 12-bit random-access, magnetic-core memory, input- PDP.5 output control, and input-output tape teleprinter. Standard features include the FORTRAN Compiler, the Symbolic Assembler, and other elements of the programming system, 12- or 24-bit arithmetic, indirect addressing, data and program interrupts, and eight auto-indexing core memory locations.

CEMTRAL, PROCESSOR carries out arithmetic operations, provides memory access, and controls information entering or leaving the machine. It consists of registers and information handling elements. REGISTER (MA) -used to address a word in memory; provides addressing for 1024 or 4096 words of memory. Can be cleared or incremented by one, MEMORY BUFFER REGISTER (MB) -holds information which is being written into or read out of the core memory. Can be cleared, incremented by one or two, or shifted right. INSTRUCTION REGISTER (IR)-contains the operation code of the in- struction currently being performed by the machine. ACCUMULATOR (AC) -performs the arithmetic operations with the mem- ory buffer register. Acts as an input-output register and can be combined with the memory buffer register to act as a successive approximation analog-to-digital converter. LINK (L) -used to extend the precision of the accumulator. Permits more rapid performance of double-precision (24-bit) operations and acts as the carry register for twos complement arithmetic. SWITCH REGISTER- 12 switches whose settings can be sensed to let the operator intervene while programs are running. Operator can modify a program by depositing data in the memory address register, a memory register, or the accumuldtor. PROGRAM COUNTER -determines the sequence in which instructions are performed. It is core memory location 0 and can be manipulated by the program just as any other memory location can be. INPUT MIXER -accepts information from external devices and feeds it sequentially to the accumulator. In combination with the device selector, the input mixer gives the PDPd a greater flexibility in dealing with its environment than other in its price range. DEVICE SELECTOR (DS) -produces control pulses to transfer informa- tion between external devices and the accumulator or to activate external devices.

CORE MEMORY provides storage for operands and instructions to be performed by the in- ternal processor and holds information being collected or distributed. This is a random-access, magnetic-core memory available with 1024 to 32,768 12-bit words and with a cycle time of 6 microseconds. The PDP-5 is the only computer in its price range with such a memory.

INPUT-OUTPUT provides a means of transmitting data to or receiving data from external devices. It has several different classes of inputs. 'ONTRoL DATA BREAK-permits the transmission of data directly to core mem- ory. It includes three types of requests: data break, data direction, and increment. An increment request transfers data at sequential addresses automatically after the first address is specified. PROGRAMMED IN-OUT- makes it possible to specify input-output trans- fer (IOT) instructions which affect the state of selected devices. The IOT DATA BREAK REWEST DATA DIRECTION INCREMENT REQUEST 'UT-OUTPUT PROGRAM INTERRUPT INPUT IN-OUT TRANSFER. CLEAR ACCUMULATOR INPUT H-OUT HALT INPUT

MEMOR'

instruction allows one basic instruction to handle many devices. Com- mand pulses occur at various times to allow flags to be sampled (and an instruction skipped), buffers to be cleared, and data to be transmitted to or from the accumulator. IN-OUT SKIP (10s) -allows computer programs to determine the status of external devices and to skip a succeeding instruction when specified con- ditions exist. IN-OUT HALT -permits the computer to be halted while an external device is operating and then restarted by a pulse from the device. IN-OUT TRANSFER, CLEAR ACCUMULATOR -enables the accumulator to be cleared by an IOT instruction. PROGRAM INTERRUPT-initiates execution of subprograms to transfer control to external devices for recording or processing event signals or data.

INPUT-OUTPUT- -- - permits the operator to receive data from or send it to the processor on per- forated paper tape or by keys and keyboard. It is standard Teletype equip- TAPE ment with a speed of ten characters a second.

OPERATOR CONSOLE contains the indicators, keys and switches to operate the machine and to observe and modify the status of the internal processor. The functions of the keys and switches are described below. The programming system for the PDP6 consists of the Symbolic Assembler, PROGRAMMING FORTRAN II System, Symbolic On-Line Debugging Program, Symbolic Tape SYSTEM Editor, Floating Point Package, mathematical function subroutines, and utility and maintenance programs. All will operate with the basic computer: processor, 4096-word memory, tape teleprinter. Because the PDP-5 makes high-speed computing available to many new users, the programming system was designed to simplify and accelerate the process of learning to program. At the same time, experienced programmers will find that it incorporates many advanced features. The system is intended to make immediately available to each user the full, general-purpose data processing capability of the PDP-5 and to serve as the operating nucleus for a growing library of programs and routines to be made available to all installations. New techniques, routines, and programs are constantly being developed, field-tested, and documented in the Digital Program Library for incorporation in users' systems. ASSEMBLER The use of an assembly program has become a standard practice in program- ming digital computers. This process lets the programmer code his instruc- tions in a symbolic language, one he can work with more conveniently than with the 12-bit binary numbers which actually operate the computer. The assembly program then translates the symbolic language program he has written into its equivalent. The advantages are significant: the symbolic language he writes in is more meaningful and convenient than a numeric code; he can refer to instructions or data by symbolic names with- out being concerned with or even having to know their actual addresses in the memory; decimal and alphabetical data can be expressed in a form more convenient to him than in binary numbers; programs can be altered without extensive changes; and debugging is considerably simplified. The PDPd Symbolic Assembler (DEC-5-36) accepts source programs written in the symbolic language and converts memory locations, computer instruc- tions, and operand addresses from the symbolic to the binary form. It pro- duces an object program tape, a symbol table defining memory allocations, and useful diagnostic messages. COMPILER The FORTRAN (for FORmula TRANslation) System for the PDPd (DEC-5-64] lets the user express the problem he is trying to solve in a mixture of English words and mathematical statements that is close to the language of mathe- matics and also intelligible to the computer. In addition to reducing the time needed for program preparation, it enables users with little or no knowledge of the computer's organization and operating language to write effective programs for it. The FORTRAN Compiler contains the instructions the com- puter requires to perform the clerical work of translating the FORTRAN version of the problem statement into an object program in machine lan- guage. It also produces diagnostic messages. After compilation, the object program and the data it will work with are loaded into the computer for solu- tion of the problem. The FORTRAN language consists of four general types of statements: arith- metic, logic, control, and input-output. Fixed and floating point arithmetic expressions can be used, both simple and subscripted. FORTRAN functions include addition, subtraction, multiplication, division, sin, cos, arctan, square root, natural log, and exponential. The Extended FORTRAN System for PDPd installations with Micro Tape permits users to compile programs of arbitrary length, permits the use of multidimensional arrays to simplify matrix manipulation, and provides more input-output capability. SYMBOLIC DDT-5 (DEC-5-5-S) lets the programmer use the PDP-5 to debug his object ON-LINE programs on line, giving him instantaneous feedback when he makes changes. DEBUGGING This dynamic debugging has been extensively developed by Digital. One of its principal advantages is that it gives the programmer close control, pre- PROGRAM venting flaws in his program from destroying significant portions of the memory contents. Using the tape teleprinter, the user can communicate conveniently with the PDP-5 in the symbols of his source language. He can control the execution of any portion of his object program by inserting breaks, or traps, in it. When the computer reaches a break, it transfers control of the object program to DDT. The user can then examine and modify the contents of individual memory registers to correct and improve his object program.

SYMBOLIC The Symbolic Tape Editor program is used to edit, correct, and update sym- TAPE bolic program tapes using the PDP-5 and the tape teleprinter. With the editor EDIT~Rin memory, the user reads in portions of his symbolic tape, removes, changes, or adds instructions or operands, and gets back a new, complete, symbolic tape with errors removed. He can work through the program instruction by instruction, spot-check it, or concentrate on new sections.

FLOATING The Floating Point Package lets the PDP-5 user perform arithmetic opera- POINT tions that many other computers can perform only after the addition of costly PACKAGE optional hardware. Floating point operations automatically align the binary points of operands, retaining the maximum precision available by discarding leading zeros. In addition to increasing accuracy, floating point operations relieve the pro- grammer of the scaling problems common in fixed point operations. This is of particular advantage to the inexperienced programmer.

MATHEMATICAL The programming system also includes a set of mathematical function rou- FUNCTION tines to perform the following operations in both single and double precision: ROUTINES addition, subtraction, multiplication, division, square root, sin, cos, arctan, natural logarithm, and exponential.

UTILITY AND PDP-5 utility programs provide printouts or punchouts of memory contents MAINTENANCE in octal, decimal, or binary form, as specified by the user. Subroutines are provided for octal or decimal data transfer and binary-to-decimal, decimal- to-binary, and tape teleprinter conversion. A complete set of standard diagnostic programs is provided to simplify and expedite system maintenance. Program descriptions and usage manuals permit the user to effectively test the operation of the computer for proper memory functioning and execution of instructions. In addition, diagnostic programs to check the performance of standard and optional peripheral I devices are provided with the devices. TRAllNlNG AND Digital offers monthly courses in programming and maintaining each of its computer models as part of the service provided to purchasers. These courses ASSlSfANCE include instruction by experienced Digital personnel, training manuals, and supplies. Classes are kept small to insure adequate individual attention. Digital will assist you with specific programming problems before, during, and after installation of your computer and can provide a computer at our home office to let you check out your programs under the guidance of Digital pro- , - - . grammers until your own computer is on line.

DECUS LIBRARY In addition to the Digital Program Library, users of Digital equipment have access to the growing DECUS Library of utility programs, subroutines, and AND other programming materials. DEWS (for Digital Equipment Computer Users' Society) was formed to promote a free and effective interchange of information. NEwsLET~ER A principal channel for the information flow is DECUSCOPE, a monthly tech- nical newsletter to which users contribute their ideas, techniques, routines, and program summaries. The DECUS Library distributes to members program write-ups and the corresponding program tapes and listings. Certification of these materials is under the direction of the users' programming committee, which also guides the operation of the Library. DECUS also publishes the proceedings of its annual symposiums and frequent sem.inars. CONSOLE KEYS

START Starts, computer. Executes CLA incremented by one, permitting (clear accumulator), CLL (clear the operator to examine consecu- link) and IOF (interrupt off) and tive registers without resetting the takes the first instruction from the switch register. memory at the address presently . Sets the word selected by the iri the memory address register. switch register into the memory at STOP Causes the computer to stop at the location specified by the mem- the completion of the memory ory address register. The results cycle in progress at the time of remain in the memory buffer. The key operation. memory address register is then CONTINUE Causes the computer to resume incremented by one, permitting operation at the point where it was the operator to deposit words in consecutive registers without re- stopped. loading the addresses. EXAMINE Sets the contents of the memory LOAD Deposits the contents of the switch location selected by the memory ADDRESS register in the memory address address register into the accumu- register. lator and the memory buffer. The memory address register is then

CONSOLE TOGGLE SWITCHES

SWITCH Permits operator to deposit a word state of the machine can be exam- REGISTER in memory or in the memory ad- ined at each step. dress register by means of the SINGLE Causes the computer to stop at LOAD ADDRESS or DEPOSIT keys. INSTRUCTION the completion of each instruction. The contents of the switch reg- ister can be deposited in the accu- POWER Turns on power. mulator under program control. LOCK Disables all keys and switches on SINGLE Causes the computer to halt at the SWITCH the console except the SWITCH STEP completion of each memory cycle. REGISTER to prevent inadvertent Repeated operation of the CON- power turn-off or program inter- TINUE key will step the program ference while a program is in one cycle at a time so that the progress. PDP-5 The PDP-5 performs two types of instructions: memory reference and aug- mented. Memory reference instructions store or retrieve the data they use in core memory. Augmented instructions do not store or retrieve data in memory. INSTRUCTIONS They let the programmer use the address portion of the instruction to specify logical operations, giving the PDP-5 a microprogramming capability. Instruc- tion execution times are multiples of the 6-microsecond core-memory cycle time. Memory reference instructions are executed in 12, 18, or 24 microsec- onds, with an additional 6 microseconds required for those which use indirect addressing. Augmented instructions are executed in 12 microseconds.

MEMORY The word format for memory reference instructions is shown below. REFERENCE Operation Memory INSTRUCTIONS codes 0-5 A Page'L- 101 112131415 161 71819110111 Iniirect v Addressing Address The first three bits contain the octal code number of the instruction to be performed. This can be Og through 58, corresponding to the six instructions in the table below. Bit 3, when it contains a one, instructs the computer to use the indirect, or deferred, address selection mode. Indirect addressing lets the computer use more memory than the 256 (28) words directly addressable by the &bit address portion of the instruction word. In the indirect , the computer finds in the memory location specified by the address portion a 12-bit actual address in which to retrieve or store the data it needs or is working with. The memory cycle required to find the actual address adds 6 microseconds to the time re- quired for instructions using indirect addressing. . The memory page bit of the instruction word refers to the organization of the computer memory in 128 (2008)-word "pages." For direct addressing, the programmer uses bits 4 through 11 to select one of 256 memory loca- tions. To reach the other pages, the programmer uses indirect addressing.

TABLE 1 MEMORY REFERENCE INS?RUCTIONS Mnemonic Octal T~me Code Code Operation (wc)

AND Y 0 Logical AND. The logical AND function is performed between the contents of the accumulator and the contents of Y. The result is left in the accumulator and the original contents of the accumulator are lost. TAD Y Twos complement add. The contents of Y are added to the contents of the accumulator in 2's comple- ment arithmetic. If there is a carry out of bit 0of the accumulator, the link will be complemented. The contents of Y are unchanged. This feature is useful in multiple precision arithmetic. ISZ Y Index and skip if zero. The contents of Y are re- placed by the contents of Y plus one. The contents of the accumulator are unaffected by this instruction. If the resulting sum is zero, the instruction following the ISZ is skipped. This instruction is useful for incrementing operand addresses and in loop itera- tion counting. DCA Y Deposit and clear accumulator. The contents of the accumulator are deposited in memory register Y. The accumulator is then cleared. JMS Y Jump to subroutine. The contents of the program counter contained in register 0 are deposited in register Y. Upon completion, Y will contain the address of the instruction following the JMS. The next instruction will be taken from Y + 1. This in- struction is primarily useful for subroutine linkage. TABLE 1 MEMORY REFERENCE INSTRUCTIONS (continued) Mnemonic Octal Time Code Code Operation (rsec)

JMP Y 5 Jump. The contents of the program counter con- 12 tained in memory register 0 are reset to address Y. The next instruction that will be executed will be taken from memory register Y. The original contents of the program counter are lost. This instruction is useful for transferring program control to randomly selected memory locations.

AUGMENTED Augmented instructions are input-output transfer (IOT) and operate. They permit microprogramming, letting the user extend the operation code from lNSTRUCTlONS bit 0 through bit 11 to perform several operations with one instruction word. The IOT instruction transfers data between the processor and peripheral devices. The format is shown below. Operation Code 6s Command Pulses

Device Selection Bits 0 through 2 contain the IOT operation code, 6,. Bits 3 through 8 select one of 64 devices, and bits 9 through 11 are used to generate timed pulses to start and stop the devices and clear their flags. (Signals which indicate that the devices have data to send to the processor.) If only two command pulses are needed, up to 96 devices can be serviced or up to 192 devices which need only one pulse. The operate instruction includes two groups of microinstructions, listed below. Group 1 (opr I), designated by a 0 in bit 3 of the instruction, is pri- marily for performing clearing, complementing, incrementing, and rotating operations. Group 2 (opr 21, designated by a 1 in bit 3, is used primarily for checking the contents of the accumulator and link for instruction-skipping conditions. Several microinstructions can be combined in one step to per- form more powerful operations.

TABLE 2 AUGMENTED INSTRUCTIONS (12-microsecond execution times) Mnemonic Octal Code Operation Code (in Address Portion)

opr 1 cla 200 Clear accumulator cll 100 Clear link cma 40 Complement accumulator cml 20 Complement link rtr 12 Rotate accumulator and link right two positions rar 10 Rotate accumulator and link right one position rtl 6 Rotate accumulator and link left two positions ral 4 Rotate accumulator and link left one position iac 1 Index accumulator nop 0 No operation opr 2 cia 200 Clear accumulator spa 110 Skip on plus accumulator sma 100 Skip on minus accumulator sna 50 Skip on non-zero accumulator sza 40 Skip on zero accumulator szl 30 Skip on zero link snl 20 Skip on link equals one skp 10 Skip unconditionally osr 4 OR with switch register hlt 2 Halt OPTIONAL EQUIPMENT MICRO TAPE SYSTEM Provides a fixed-address magnetic tape facility for MEMORY EXTENSION CONTROL high speed loading, reading, and program updating. TYPE 154 Consists of a Type 555 Dual Transport Unit and Allows expansion of the PDP-5 memory from 4096 a Type 552 Control Unit. to 32,768 words in increments of 4096 words. Can be attached to any PDP-5 without requiring changes INCREMENTAL PLOTTER to the processor. TYPE 350 Performs high-resolution plotting in eight directions HlGH SPEED MULTIPLY AND DIVIDE on paper 12 or 31 inches wide and up to 120 feet TYPE 153 long. Rates are 12,000 and 18,000 per minute, with Reduces multiplication and division times to 48 and point-to-point increments of 0.005 and 0.01 of an 78 microseconds. inch. HlGH SPEED PERFORATED ANALOG TO DIGITAL CONVERTER TAPE PUNCH TYPE 137 TYPE 75A Wired into the computer, but modules to activate it Punches 8-level tape at 63.3 characters a second. are optional extras. Uses the successive approxi- mation technique. Offers accuracy of up to 11 bits, depending on speed required. HlGH SPEED PERFORATED TAPE READER ADDITIONAL EQUIPMENT BAY TYPE 750 Accommodates optional equipment requiring more Reads perforated paper tape photoelectrically at space. 300 characters a second. CARD PUNCH CONTROL MAGNETIC TAPE TRANSPORT TYPE 450 TYPE 50 Controls on-line buffered operation of standard card Reads and writes IBMcompatible magnetic tape punch equipment. Maximum speed is 100 cards a at transfer rates of 15,000 and 4 1,700 cps. minute. Any or all positions can be punched in any format. AUTOMATIC MAGNETIC TAPE CARD READER CONTROL TYPE 451A TYPE 57A Reads up to 200 standard cards a minute. Cards Automatically controls up to eight Type 50 Mag- are read optically, column by'column, in binary or netic Tape Transports. Provides information transfer alphanumeric modes. through the data interrupt facility of the computer. Controls tape reading or writing at 15,000 or HlGH SPEED CARD READER 41,700 cps transfer rate, 200 or 556 bits per inch. TYPE 451B The tape format is compatible with that of IBM Reads standard punched cards at rates up to 800 a equipment. minute. OSGILLOSCOPE DISPLAY AUTOMATIC LINE PRINTER TYPE 34B TYPE 64 Provides a lowcost display on a 5-inch cathode ray Prints 300 lines a minute, 120 columns a line, tube scope with 1024 x 1024 addressable points. any one of 64 characters a column. PRECISION CRT DISPLAY SERIAL MAGNETIC DRUM SYSTEM TYPE 30N TYPE 250 Plots data on a 16-inch cathode ray tube at 20,000 Stores and transfers information in blocks of 128 points per second. More than one million points 12-bit words. Total storage is 8,192, 16,384, or are individually addressable. 32,768 words. Computation continues during trans- fers. UGHT PEN DATA CHANNEL MULTIPLEXER TYPE 32 TYPE 129 De;Wxts information displayed on a Type 30N Dis- Permits high speed transfer between core memory and sends an identifying signal to the com- and up to four input-output devices. Maximum com- bined transfer rate is 166,666 12-bit words a second. DIGITAL EQUIPMENT CORPORATION . MAYNARD, MASSACHUSETTS

PRINTED IN USA.