diff options
| author | Roger Frank <rfrank@pglaf.org> | 2025-10-15 02:47:36 -0700 |
|---|---|---|
| committer | Roger Frank <rfrank@pglaf.org> | 2025-10-15 02:47:36 -0700 |
| commit | 57eb81d1709f867282a1ed765c96a6fd5731127e (patch) | |
| tree | fafdea47c571b857da23893c9553358117bb89cd /29461.txt | |
Diffstat (limited to '29461.txt')
| -rw-r--r-- | 29461.txt | 2081 |
1 files changed, 2081 insertions, 0 deletions
diff --git a/29461.txt b/29461.txt new file mode 100644 index 0000000..371f523 --- /dev/null +++ b/29461.txt @@ -0,0 +1,2081 @@ +The Project Gutenberg EBook of Preliminary Specifications: Programmed Data +Processor Model Three (PDP-3), by Digital Equipment Corporation + +This eBook is for the use of anyone anywhere at no cost and with +almost no restrictions whatsoever. You may copy it, give it away or +re-use it under the terms of the Project Gutenberg License included +with this eBook or online at www.gutenberg.org + + +Title: Preliminary Specifications: Programmed Data Processor Model Three (PDP-3) + October, 1960 + +Author: Digital Equipment Corporation + +Release Date: July 20, 2009 [EBook #29461] + +Language: English + +Character set encoding: ASCII + +*** START OF THIS PROJECT GUTENBERG EBOOK PDP MODEL THREE (PDP-3) *** + + + + +Produced by Gerard Arthus, Katherine Ward, and the Online +Distributed Proofreading Team at https://www.pgdp.net + + + + + + + + + + PRELIMINARY SPECIFICATIONS + + --- + + PROGRAMMED DATA PROCESSOR + MODEL THREE + (PDP-3) + + --- + + October, 1960 + + Digital Equipment Corporation + Maynard, Massachusetts + + + + +TABLE OF CONTENTS + + + INTRODUCTION 1 + + General Description 1 + System Block Diagram 1 + Electrical Description 4 + Mechanical Description 4 + Environmental Requirements 5 + + CENTRAL PROCESSOR 6 + + Operating Speeds 6 + Instruction Format 6 + Number System 7 + Indexing 8 + Indirect Addressing 8 + Instruction List 9 + Manual Controls 20 + + STORAGE 22 + + STANDARD INPUT-OUTPUT 23 + + Paper Tape Reader 23 + Paper Tape Punch 24 + Typewriter 24 + + OPTIONAL INPUT-OUTPUT 26 + + Sequence Break System 26 + High Speed In-Out Channel 26 + Magnetic Tape 27 + CRT Display 33 + Real Time Clock 33 + Line Printer 34 + + UTILITY PROGRAMS 35 + + FRAP System 35 + DECAL System 35 + Floating Point Subroutines 36 + Maintenance Routines 37 + Miscellaneous Routines 37 + + + + +INTRODUCTION + + +GENERAL DESCRIPTION + +The DEC Programmed Data Processor Model Three (PDP-3) is a high +performance, large scale digital computer featuring reliability in +operation together with economy in initial cost, maintenance and use. +This combination is achieved by the use of very fast, reliable, solid +state circuits coupled with system design restraint. The simplicity of +the system design excludes many marginal or superfluous features and +thus their attendant cost and maintenance problems. + +The average internal instruction execution rate is about 100,000 +operations per second with a peak rate of 200,000 operations per second. +This speed, together with its economy and reliability, recommends PDP-3 +as an excellent instrument for complex real time control applications +and as the center of a modern computing facility. + +PDP-3 is a stored program, general purpose digital computer. It is a +single address, single instruction machine operating in parallel on 36 +bit numbers. It features multiple step indirect addressing and indexing +of addresses. The main memory makes 511 registers available as index +registers. + +The main storage is coincident current magnetic core modules of 4096 +words each. The computer has a built-in facility to address 8 modules +and can be expanded to drive 64 modules. The memory has a cycle time of +five microseconds. + + +SYSTEM BLOCK DIAGRAM + +The flow of information between the various registers of PDP-3 is shown +in the System Block Diagram (Fig. 1). There are four registers of 36 bit +length. Their functions are described below. + +Memory Buffer + +The Memory Buffer is the central switching register. The word coming +from or going to memory is retained in this register. In arithmetic +operations it holds the addend, subtrahend, multiplicand, or divisor. +The left 6 bits of this register communicate with the Instruction +Register. The address portion of the Memory Buffer Register communicates +with the Index Adder, the Memory Address Register, and the Program +Counter. In certain instructions, the address portion of the control +word does not refer to memory but specifies variations of an +instruction, thus, the address portion of the Memory Buffer is connected +to the Control Element. + +Accumulator + +The Accumulator is the main register of the Arithmetic Element. Sums and +differences are formed in the Accumulator. At the completion of +multiplication it holds the high order digits of the product. In +division it initially contains the high order digits of the dividend and +is left with the remainder. + +The logical functions AND, inclusive OR, and exclusive OR, are formed in +the Accumulator. + +Carry Storage Register + +The Carry Storage Register facilitates high-speed multiply and is +properly part of the Accumulator. + +In-Out Register + +The In-Out Register is the main path of communication with external +equipment. It is also part of the Arithmetic Element. In multiplication +it ends with the low order digits of the product. In division it starts +with the low order parts of the dividend and ends with the quotient. + +The In-Out Register has a full set of shifting properties, (arithmetic +and logical). + + * * * * * + +There are three registers of 15 bit length which deal exclusively with +addresses. The design allows for expansion to 18 bits. These registers +are: + +Memory Addressing + +The Memory Address Register holds the number of the memory location that +is currently being interrogated. It receives this number from the +Program Counter, the Index Adder or the Memory Buffer. + +Program Counter + +The Program Counter holds the memory location of the next instruction to +be executed. + +Index Adder + +The Index Adder is a 15 bit ring accumulator. The sum of an instruction +base address, Y, and the contents of an index register, C(x), are formed +in this register. This register holds the previous content of the +Program Counter in the "jump and save Program Counter," jps, +instruction. The Index Adder also serves as the step counter in shift, +multiply, and divide. + + * * * * * + +The Control Element contains two six bit registers and several +miscellaneous flip-flops. The latter deal with indexing, indirect +addressing, memory control, etc. The six bit registers are: + +Instruction Register + +The Instruction Register receives the first six bits of the Memory +Buffer Register during the cycle which obtains the instruction from +memory (cycle zero). This information is the primary input to the +Control Element. + +Program Flags + +The six Program Flags act as convenient program switches. They are used +to indicate separate states of a program. The program can set, clear, or +sense the individual flip-flops. The program can also sense or make the +state "All Flags ZERO." They can also be used to synchronize various +input devices which occur at random times (see Input-Output, Typewriter +Input). + + * * * * * + +Three toggle switch registers are connected to the Central Processor +(see Manual Controls). + +Test Address + +The fifteen Test Address Switches are used to indicate start points and +to select memory registers for manual examination or change. + +Test Word + +The thirty-six Test Word Switches indicate a new number for manual +deposit into memory. They may also be used for insertion of constants +while a program is operating by means of the operate instruction. + +Sense Switches + +The six Sense Switches allow the operator to manually select program +options or cause a jump to another program in memory. The program can +sense individual switches or the state "All Switches ZERO." + + +ELECTRICAL DESCRIPTION + +The PDP-3 circuitry is the static type using saturating transistor +flip-flops and, for the most part, transistor switch elements. The +primary active elements are Micro-Alloy and Micro-Alloy-Diffused +transistors. The flip-flops have built-in delay so that a logic net may +be sampled and changed simultaneously. + +Machine timing is performed by a delay line chain. Auxiliary delay line +chains time the step counter instructions (multiply, divide, etc.). The +machine is thus internally synchronous with step counter instructions +being asynchronous. The machine is asynchronous for in-out operations, +that is, the completion of an in-out operation initiates the following +instruction. + + +MECHANICAL DESCRIPTION + +The PDP-3 consists of two mechanical assemblies, the Console and the +Equipment Frame. Fig. 3 is a photograph of PDP-1 which is an 18 bit +version of PDP-3. + +Console + +The Console is a desk approximately seven feet long. It contains the +controls and indicators necessary for operation and maintenance of the +machine. A cable connects the Console to the Equipment Frame. + +Equipment Frame + +The Equipment Frame is approximately six feet high and two feet deep. +The length is a function of the amount of optional features included. +The Central Processor requires a length of five and one half feet. The +power cabinet is twenty-two inches long. A memory cabinet is thirty-two +inches long and will hold three memory modules (12,288 words per +cabinet). Memory cabinets may be added at any time. + +Magnetic tape units require twenty-two inches per transport. A tape unit +cabinet may be connected as an extension of the Equipment Frame or may +be a free-standing frame. + + +ENVIRONMENTAL REQUIREMENTS + +The PDP-3 requires no special room preparation. The computer will +operate properly over the normal range of room temperature. + +The Central Processor and memory together require thirty amperes of 110 +volts single phase 60 cycle ac. Each inactive tape transport requires +two amperes and the one active transport requires 10 amperes. + + + + +CENTRAL PROCESSOR + + +The Central Processor of PDP-3 contains the Control Element, the Memory +Buffer Register, the Arithmetic Element, and the Memory Addressing +Element. The Control Element governs the complete operation of the +computer including memory timing, instruction performance, and the +initiation of input-output commands. The Arithmetic Element, which +includes the Accumulator, the In-Out Register, and the Carry Storage +Register, performs the arithmetic operations. The Memory Addressing +Element which includes the Index Adder, the Program Counter, and the +Memory Address Register, performs address bookkeeping and modification. + + +OPERATING SPEEDS + +Operating times of PDP-3 instructions are normally multiples of the +memory cycle of 5 microseconds. Two cycle instructions refer twice to +memory and thus require 10 microseconds for completion. Examples of this +are add, subtract, deposit, load, etc. One cycle instructions do not +refer to memory and require 5 microseconds. Examples of the latter are +the jump instructions, the skip instructions, and the operate group. The +operating times of variable cycle instructions depend upon the +instruction. For example, the operating time for a shift or rotate +instruction is 5 +0.2N microseconds, where N is the number of shifts +performed. The operating times for multiply and divide are functions of +the number of ones in the multiplier and in the quotient, respectively. +Maximum time for multiply is 25 microseconds. This includes the time +necessary to get the multiply instruction from memory. Divide takes 90 +microseconds maximum. + +In-Out Transfer instructions that do not include the optional wait +function require 5 microseconds. If the in-out device requires a wait +time for completion, the operating time depends upon the device being +used. + +If an instruction includes reference to an index register, an additional +5 microseconds is required. Each step of indirect addressing also +requires an additional 5 microseconds. + + +INSTRUCTION FORMAT + +The instructions for PDP-3 may be divided into three classes: + + 1. Indexable memory instructions + 2. Non-indexable memory instructions + 3. Non-memory instructions. + +The layout of the instruction word is shown in Fig. 2. + +The octal digits 0 and 1 define the instruction code, thus, there are 64 +possible instruction codes, not all of which are used. The first bit of +octal digit 2 is the indirect address bit. If this bit is a ONE, +indirect addressing occurs. + +The index address, X, is in octal digits 3, 4, and 5. These digits +address an index register for memory-type instructions. If these digits +are all ZERO, indexing will not take place. In main memory, 511 of the +registers can be used as automatic index registers. + +The instruction base address, Y, is in octal digits 7 through 11. These +digits are sufficient to address 32,768 words of memory. Octal digit 6 +is reserved for further memory expansion. Space is available in the +equipment frame for this expansion, should it prove desirable. + +In those instructions which do not refer to memory, the memory address +digits, Y, and in some cases the index address digits also, are used to +specify the variations in any group of instructions. An example of this +is in the shift and rotate instructions in which the memory address +digits determine the number of shifts. + + +NUMBER SYSTEM + +The PDP-3 is a "fixed" point machine using binary arithmetic. Negative +numbers are represented as the 1's complement of the positive numbers. +Bit 0 is the sign bit which is ZERO for positive numbers. Bits 1 to 35 +are magnitude bits with bit 1 being the most significant and bit 35 +being the least significant. + +The actual position of the binary point may be arbitrarily assigned to +best suit the problem in hand. Two common conventions in the placement +of the binary point are: + +1. The binary point is to the right of the least significant digit, +thus, numbers represent integers. + +2. The binary point is to the right of the sign digit, thus the numbers +represent a fraction which lies between +-1. + +The conversion of decimal numbers into the binary system for use by the +machine may be performed automatically by subroutines. Similarly the +output conversion of binary numbers into decimals is done by subroutine. +Operations for floating point numbers are handled by programming. The +utility program system provides for automatic insertion of the routines +required to perform floating point operations and number base conversion +(see Utility Programs). + + +INDEXING + +In PDP-3, 511 registers of the main magnetic core memory are available +for use as automatic index registers. Their addresses are specified by +octal digits 3 to 5 of the instruction word. These registers are memory +locations 001-777 (octal). Address 000 specifies that no index register +is to be used with the instructions. The contents of octal digits 7 +through 11 of the selected index register are added to the unmodified +address (octal digits 7 through 11 of the instruction). + +This sum is used to locate the operand. The addition is done in the +Index Adder which is a 15 bit 1's complement adder. The contents of the +Accumulator and the In-Out Register are unaffected by the indexing +process. An instruction which has used indexing is retained in memory +with its original address unmodified. Memory registers 1-777 (octal) are +available for use as normal memory registers if they are not being used +as index registers. The left half of these registers is available for +the storage of constants, tables, etc., when octal digits 7 through 11 +act as index registers. + +Three special instructions snx, spx and lir, are available to facilitate +resetting, advancing, and sampling of the index registers. Since the +index registers are normal memory registers, their contents can also be +manipulated by the standard computer instructions. + + +INDIRECT ADDRESSING + +An instruction which is to use an indirect address will have a ONE in +bit six of the instruction word. The original address, Y, of the +instruction will not be used to locate the operand of the instruction, +as is the normal case. Instead, it is used to locate a memory register +whose contents in octal digits 7 through 11 will be used as the address +of the original instruction. This new address is known as the indirect +address for the instruction and will be used to locate the operand. If +the memory register containing the indirect address also has a 1 in bit +six, the indirect addressing procedure is repeated again and a third +address is located. There is no limit to the number of times this +process can be repeated. + +Index registers may be used in conjunction with indirect addressing. In +this case, the address after being modified by the selected index +register is used to locate the indirect address. + +The indirect address can be acted on by an index register and deferred +again if desired. Each use of an index register or an indirect address +extends the operating time of the original instruction by 5 +microseconds. + + +INSTRUCTION LIST + +This list includes the title of the instruction, the normal execution +time of the instruction, i.e., the time with no indexing and no +deferring, the mnemonic code of the instruction, and the operation code +number. The notation used requires the following definitions. The +contents of a register Q are indicated as C(Q). The address portion of +the instruction is indicated by Y. The index register address of an +instruction is indicated by x. The effective address of an operand is +indicated by Z. Z may be equal to Y or it may be Y as modified by +deferring or by indexing. + + +Indexable Memory Instructions + +Arithmetic Instructions + + _Add_ (10 usec.) + add x Y Operation Code 40 + +The new C(AC) are the sum of C(Z) and the original C(AC). The C(Z) are +unchanged. The addition is performed with 1's complement arithmetic. + +If the sum exceeds the capacity of the Accumulator Register, the +overflow flip-flop will be set (see Skip Group instructions). + + _Subtract_ (10 usec.) + sub x Y Operation Code 42 + +The new C(AC) are the original C(AC) minus the C(Z). The C(Z) are +unchanged. The subtraction is performed using 1's complement +arithmetic. + +If the difference exceeds the capacity of the Accumulator, the overflow +flip-flop will be set (see Skip Group instructions). + + _Multiply_ (approximately 25 usec.) + mul x Y Operation Code 54 + +The C(AC) are multiplied by the C(Z). The most significant digits of the +product are left in the Accumulator and the least significant digits in +the In-Out Register. The previous C(AC) are lost. + + _Divide_ (approximately 90 usec.) + div x Y Operation Code 56 + +The Accumulator and the In-Out Register together form a 70 bit dividend. +The high order part of the dividend is in the Accumulator. The low order +part of the dividend is in the In-Out Register. The divisor is (Z). + +Upon completion of the division, the quotient is in the In-Out Register. +The remainder is in the Accumulator. The sign of the remainder is the +same as the sign of the dividend. If the dividend is larger than C(Z), +the overflow flip-flop will be set and the division will not take place. + +Logical Instructions + + _Logical AND_ (10 usec.) + and x Y Operation Code 02 + +The bits of C(Z) operate on the corresponding bits of the Accumulator to +form the logical AND. The result is left in the Accumulator. The C(Z) +are unaffected by this instruction. + +Logical AND Function Table + + AC Bit C(Z) Bit Result + 0 0 0 + 0 1 0 + 1 0 0 + 1 1 1 + + _Exclusive OR_ (10 usec.) + xor x Y Operation Code 06 + +The bits of C(Z) operate on the corresponding bits of the Accumulator to +form the exclusive OR. The result is left in the Accumulator. The C(Z) +are unaffected by this order. + +Exclusive OR Table + + AC Bit C(Z) Bit Result + 0 0 0 + 0 1 1 + 1 0 1 + 1 1 0 + + _Inclusive OR_ (10 usec.) + ior x Y Operation Code 04 + +The bits of C(Z) operate on the corresponding bits of the Accumulator to +form the inclusive OR. The result is left in the Accumulator. The C(Z) +are unaffected by this order. + +Inclusive OR Table + + AC Bit C(Z) Bit Result + 0 0 0 + 0 1 1 + 1 0 1 + 1 1 1 + +General Instructions + + _Load Accumulator_ (10 usec.) + lac x Y Operation Code 20 + +The C(Z) are placed in the Accumulator. The C(Z) are unchanged. The +original C(Z) are lost. + + _Deposit Accumulator_ (10 usec.) + dac x Y Operation Code 24 + +The C(AC) replace the C(Z) in the memory. The C(AC) are left unchanged +by this instruction. The original C(Z) are lost. + + _Deposit Address Part_ (10 usec.) + dap x Y Operation Code 26 + +Octal digits 6 through 11 of the Accumulator replace the corresponding +digits of memory register Z. + +C(AC) are unchanged as are the contents of octal digits 0 through 5 of +Z. The original contents of octal digits 6 through 11 of Z are lost. + + _Deposit Instruction Part_ (10 usec.) + dip x Y Operation Code 30 + +Octal digits 0 through 5 of the Accumulator replace the corresponding +digits of memory register Z. The Accumulator is unchanged as are digits +6 through 11 of Z. The original contents of octal digits 0 through 5 of +Z are lost. + + _Load In-Out Register_ (10 usec.) + lio x Y Operation Code 22 + +The C(Z) are placed in the In-Out Register. C(Z) are unchanged. The +original C(IO) are lost. + + _Deposit In-Out Register_ (10 usec.) + dio x Y Operation Code 32 + +The C(IO) replace the C(Z) in memory. The C(IO) are unaffected by this +instruction. The original C(Z) are lost. + + _Jump_ (5 usec.) + jmp x Y Operation Code 60 + +The Program Counter is reset to address Z. The next instruction that +will be executed will be taken from memory register Z. The original +contents of the Program Counter are lost. + + _Jump and Save Program Counter_ (5 usec.) + jsp x Y Operation Code 62 + +The contents of the Program Counter are transferred to the Index Adder. +When the transfer takes place, the Program Counter holds the address of +the instruction following the jsp. The Program Counter is then reset to +address Z. The next instruction that will be executed will be taken from +memory register Z. + + _Skip if Accumulator and Z differ_ (10 usec.) + sad x Y Operation Code 50 + +The C(Z) are compared with the C(AC). If the two numbers are different, +the Program Counter is indexed one extra position and the next +instruction in the sequence is skipped. The C(AC) and the C(Z) are +unaffected by this operation. + + _Skip if Accumulator and Z are the same_ (10 usec.) + sas x Y Operation Code 52 + +The C(Z) are compared with C(AC). If the two numbers are identical, the +Program Counter is indexed one extra position and the next instruction +in the sequence is skipped. The C(AC) and C(Z) are unaffected by this +operation. + + +Non-Indexable Memory Instructions + +These instructions have the same word format as the indexable +instructions. Since they operate on the index register location, x, they +cannot be indexed. + + _Skip on Negative index_ (10 usec.) + snx x Y Operation Code 46 + +The number in octal digits 7 through 11 of the instruction word is added +to the C(x). This addition is done in the 15 bit Index Adder using 1's +complement arithmetic. If, after the addition, the sum is negative, the +Program Counter is advanced one extra position and the next instruction +in the sequence is skipped. The contents of octal digits 0-5 of the +index register location are unaffected by this instruction. + + _Skip on Positive index_ (10 usec.) + spx x Y Operation Code 44 + +The number in octal digits 7 through 11 of the instruction word is added +to the C(x). This addition is done in the 15 bit Index Adder using 1's +complement arithmetic. + +If, after the addition, the sum is positive, the Program Counter is +advanced one extra position and the next instruction in the sequence is +skipped. The contents of octal digits 0-5 of the index register location +are unaffected by this instruction. + + _Load Index Register_ (10 usec.) + lir x Y Operation Code 14 + +The octal digits 7 through 11 (Y) of the instruction will replace the +corresponding digits of the memory register specified by x. Octal digit +6 of the memory register will be left clear. Digits 0-5 of the memory +register are unchanged. + + _Deposit Index Adder_ (10 usec.) + dia x Y Operation Code 16 + +The C(IA) replace the octal digits 7 through 11 of memory location Y. +Octal digit 6 of Y is cleared. Digits 0 through 5 of Y are left +unchanged. The x portion of the instruction is ignored. + + +Non-Memory Instructions + +Rotate and Shift Group + +This group of instructions will rotate or shift the Accumulator and/or +the In-Out Register. When the two registers operate combined, the In-Out +Register is considered to be a 36 bit magnitude extension of the right +end of the Accumulator. + +Rotate is a non-arithmetic cyclic shift. That is, the two ends of the +register are logically tied together and information is rotated as +though the register were a ring. + +Shift is an arithmetic operation and is in effect multiplication of the +number in the register by 2^{+N}, where N is the number of shifts. Shift +or rotate instructions involving more than 33 steps can be used for +simulating time delays. 36 rotate steps of the Accumulator will return +all information to its original position. + + _Rotate Accumulator Right_ (13 usec. maximum for 36 shifts) + rar N Operation Code 671 + +This instruction will rotate the bits of the Accumulator right N +positions, where N is octal digits 7-11 of the instructions word. + + _Rotate Accumulator Left_ (13 usec. maximum for 36 shifts) + ral N Operation Code 661 + +This instruction will rotate the bits of the Accumulator left N +Positions, where N is octal digits 7-11 of the instruction word. + + _Shift Accumulator Right_ (13 usec. maximum for 36 shifts) + sar N Operation Code 675 + +This instruction will shift the contents of the Accumulator right N +positions, where N is octal digits 7-11 of the instruction word. + + _Shift Accumulator Left_ (13 usec. maximum for 36 shifts) + sal N Operation Code 665 + +This instruction will shift the contents of the Accumulator left N +positions, where N is octal digits 7-11 of the instruction word. + + _Rotate In-Out Register Right_ (13 usec. maximum for 36 shifts) + rir N Operation Code 672 + +This instruction will rotate the bits of the In-Out Register right N +positions, where N is octal digits 7-11 of the instruction word. + + _Rotate In-Out Register Left_ (13 usec. maximum for 36 shifts) + ril N Operation Code 662 + +This instruction will rotate the bits of the In-Out Register left N +positions, where N is octal digits 7-11 of the instruction word. + + _Shift In-Out Register Right_ (13 usec. maximum for 36 shifts) + sir N Operation Code 676 + +This instruction will shift the contents of the In-Out Register right N +positions, where N is octal digits 7-11 of the instruction word. + + _Shift In-Out Register Left_ (13 usec. maximum for 36 shifts) + sil N Operation Code 666 + +This instruction will shift the contents of the In-Out Register left N +positions, where N is octal digits 7-11 of the instruction word. + + _Rotate AC and IO Right_ (13 usec. maximum for 36 shifts) + rcr N Operation Code 673 + +This instruction will rotate the bits of the combined register right in +a single ring N positions, where N is octal digits 7-11 of the +instruction word. + + _Rotate AC and IO Left_ (13 usec. maximum for 36 shifts) + rcl N Operation Code 663 + +This instruction will rotate the bits of the combined register left in a +single ring N position, where N is octal digits 7-11 of the instruction +word. + + _Shift AC and IO Right_ (13 usec. maximum for 36 shifts) + scr N Operation Code 677 + +This instruction will shift the contents of the combined register right +N positions, where N is octal digits 7-11 of the instruction word. + + _Shift AC and IO Left_ (13 usec. maximum for 36 shifts) + scl N Operation Code 667 + +This instruction will shift the contents of the combined registers left +N positions, where N is octal digits 7-11 of the instruction word. + + * * * * * + + _Skip Group_ (5 usec.) + skp Y Operation Code 64 + +This group of instructions senses the state of various flip-flops and +switches in the machine. It does not require any reference to memory. +The address portion of the instruction selects the particular function +to be sensed. All members of this group have the same operation code. + + _Skip on ZERO Accumulator_ (5 usec.) + sza Address 100 + +If the Accumulator is equal to plus ZERO (all bits are ZERO) the Program +Counter is advanced one extra position and the next instruction in the +sequence is skipped. + + _Skip on Plus Accumulator_ (5 usec.) + spa Address 200 + +If the sign bit of the Accumulator is ZERO, the Program Counter is +advanced one extra position and the next instruction in the sequence is +skipped. + + _Skip on Minus Accumulator_ (5 usec.) + sma Address 400 + +If the sign bit of the Accumulator is ONE, the Program Counter is +advanced one extra position and the next instruction in the sequence is +skipped. + + _Skip on ZERO Overflow_ (5 usec.) + szo Address 1000 + +If the overflow flip-flop is a ZERO the Program Counter is advanced one +extra position and the next instruction in the sequence will be skipped. +The overflow flip-flop is cleared by this instruction. This flip-flop is +set by addition, subtraction, or division that exceeds the capacity of +the Accumulator. The overflow flip-flop is not cleared by arithmetic +operations which do not cause an overflow. Thus, a whole series of +arithmetic operations may be checked for correctness by a single szo. +The overflow flip-flop is cleared by the "Start" Switch. + + _Skip on Plus In-Out Register_ (5 usec.) + spi Address 2000 + +If the sign digit of the In-Out Register is ZERO the Program Counter is +indexed one extra position and the next instruction in the sequence is +skipped. + + _Skip on ZERO Switch_ (5 usec.) + szs Addresses 10, 20, ... 70 + +If the selected Sense Switch is ZERO, the Program Counter is advanced +one extra position and the next instruction in the sequence will be +skipped. Address 10 senses the position of Sense Switch 1, Address 20 +Switch 2, etc. Address 70 senses all the switches. If 70 is selected all +6 switches must be ZERO to cause the skip to occur. + + _Skip on ZERO Program Flag_ (5 usec.) + szf Addresses 0 to 7 inclusive + +If the selected program flag is a ZERO, the Program Counter is advanced +one extra position and the next instruction in the sequence will be +skipped. Address 0 is no selection. Address 1 selects program flag one, +etc. Address 7 selects all programs flags. All flags must be ZERO to +cause the skip. + +The instructions in the One Cycle Skip group may be combined to form the +inclusive OR of the separate skips. Thus, if address 3000 is selected, +the skip would occur if the overflow flip-flop equals ZERO or if the +In-Out Register is positive. The combined instruction would still take 5 +microseconds. + + * * * * * + + _Operate Group_ (5 usec.) + opr Y Operation Code 76 + +This instruction group performs miscellaneous operations on various +Central Processor Registers. The address portion of the instruction +specifies the action to be performed. + + _Clear In-Out Register_ (5 usec.) + cli Address equal 4000 + +This instruction clears the In-Out Register. + + _Load Accumulator from Test Word_ (5 usec.) + lat Address 2000 + +This instruction forms the inclusive OR of the C(AC) and the contents of +the Test Word. This instruction is usually combined with address 200 +(clear Accumulator), so that C(AC) will equal the contents of the Test +Word Switches. + + _Complement Accumulator_ (5 usec.) + cma Address 1000 + +This instruction complements (makes negative) the contents of the +Accumulator. + + _Halt_ + hlt Address 400 + +This instruction stops the computer. + + _Clear Accumulator_ (5 usec.) + cla Address 200 + +This instruction clears (sets equal to plus 0) the contents of the +Accumulator. + + _Clear Selected Program Flag_ (5 usec.) + clf Address 01 to 07 inclusive + +The selected program flag will be cleared. Address 00 selects no program +flag, 01 clears program flag 1, 02 clears program flag 2, etc. Address +07 clears all program flags. + + _Set Selected Program Flag_ (5 usec.) + stf Address 11 to 17 inclusive + + * * * * * + + _In-Out Transfer Group_ (5 usec. without in-out wait) + iot x Y Operation Code 72 + +The variations within this group of instructions perform all the in-out +control and information transfer functions. If bit six (normally the +Indirect Address bit) is a ONE, the computer will halt and wait for the +completion pulse from the device activated. When this device delivers +its completion, the computer will resume operation of the instruction +sequence. + +An incidental fact which may be of importance in certain scientific or +real time control applications is that the time origin of operations +following an in-out completion pulse is identical with the time of that +pulse. + +Most in-out operations require a known minimum time before completion. +This time may be utilized for programming. The appropriate In-Out +Transfer is given with no in-out wait (bit six a ZERO). The instruction +sequence then continues. This sequence must include an iot instruction +which performs nothing but the in-out wait. This last instruction must +occur before the safe minimum time. A table of minimum times for all +in-out devices is delivered with the computer. It lists minimum time +before completion pulse and minimum In-Out Register free time. + +The details of the In-Out Transfer variations are listed under +Input-Output. + +The mnemonic codes and addresses for the standard equipment are: + + _Read Paper Tape Alphanumeric Mode_ + rpa Address 1 + + _Read Paper Tape Binary Mode_ + rpb Address 2 + + _Typewriter Output_ + tyo Address 3 + + _Typewriter Input_ + tyi Address 4 + + _Punch Paper Tape Alphanumeric Mode_ + ppa Address 5 + + _Punch Paper Tape Binary Mode_ + ppb Address 6 + + +MANUAL CONTROLS + +The Console of PDP-3 has controls and indicators for the use of the +operator. Fig. 4 is a close-up of the control panel of PDP-1, the 18 bit +version of PDP-3. All computer flip-flops have indicator lights on the +Console. These indicators are primarily for use when the machine has +stopped or when the machine is being operated one step at a time. While +the machine is running, the brightness of an indicator bears some +relationship to the relative duty factor of that particular flip-flop. + +Three registers of toggle switches are available on the Console. These +are the Test Address (15 bits), the Test Word (36 bits), and the Sense +Switches (6 bits). The first two are used in conjunction with the +operating push buttons. The Sense Switches are present for manual +intervention. The use of these switches is determined by the program +(see System Block Diagram and Skip Group Instructions). + +Operating Push Buttons + +_Start_ - When this switch is operated, the computer will start. The +first instruction comes from the memory location indicated in the Test +Address Switches. + +_Stop_ - The computer will come to a halt at the completion of the +current memory cycle. + +_Continue_ - The computer will resume operation starting at the state +indicated by the lights. + +_Examine_ - The contents of the memory register indicated in the Test +Address will be displayed in the Accumulator and the Memory Buffer +lights. + +_Deposit_ - The word selected by the Test Word Switches will be put in +the memory location indicated by the Test Address Switches. + +_Read-In_ - When this switch is operated, the photoelectric paper tape +reader will start operating in the Read-In mode. (see Input-Output). + +In addition to the operating push buttons, there are several separate +toggle switches. + +_Single Cycle Switch_ - When the Single Cycle Switch is on, the computer +will halt at the completion of each memory cycle. This switch is +particularly useful in debugging programs. Repeated operation of the +Continue Switch button will step the program one cycle at a time. The +programmer is thus able to examine the machine states at each step. + +_Test Switch_ - When the Test Switch is on, the computer will perform +the instruction indicated in the Test Address location. It will repeat +this instruction either at the normal speed rate or at a single cycle +rate if the Single Cycle Switch is up. This switch is primarily useful +for maintenance purposes. + +_Sense Switches_ - There are six switches on the Console which are +present for manual intervention. + + + + +STORAGE + +The internal Memory System for PDP-3 consists of modules of 4096 words +of coincident current magnetic core storage. Each word has 36 bits. The +memory modules operate with a read-rewrite cycle time of 5 microseconds. +The driving currents of the memory are automatically adjusted to +compensate for normal room temperature variations. + +Each core memory module consists of the memory stack, the required X and +Y switches, the X and Y current sources and sense amplifiers for that +stack. + +The Memory Address Register, the Memory Buffer Register, and the Memory +Timing Controls are considered to be part of the Central Processor. The +standard PDP-3 Memory Address Register configuration is built to allow +up to 8 modules of core memory (32,768 words). There is a space in the +addressing section of the machine to allow expansion of the addressing +by a factor of eight for a total addressing capacity of 262,144 memory +registers. + +The Core Memory may be supplemented by Magnetic Tape Storage. This is +described under Input-Output. + + + + +STANDARD INPUT-OUTPUT + +The PDP-3 is designed to accommodate a variety of input-output +equipment. Standard input-output units include a Paper Tape Reader, +Paper Tape Punch and an Electric Typewriter. + +A single instruction, In-Out Transfer (see Central Processor), performs +all in-out operations through the 36 bit In-Out Register. The address +portion of this instruction specifies the in-out function. One bit of +the instruction selects an in-out halt as required. + + +PAPER TAPE READER + +The Paper Tape Reader of the PDP-3 is a photoelectric device capable of +reading 300 lines per second. Six lines form the standard 36 bit word +when reading binary punched eight hole tape. Five, six and seven hole +tape may also be read. + +The reader will operate in one of two basic modes or in a third special +mode. + + Alphanumeric Mode + rpa iot 1 + +In this mode, one line of tape is read for each In-Out Transfer. All +eight holes of the line are read. The information is left in the right +eight bits of the In-Out Register, the remainder of the register being +left clear. The standard PDP alphanumeric paper tape code includes an +odd parity bit which may be checked by the program. Tape of non-standard +width would be read in this mode. + + Binary Mode + rpb iot 2 + +For each In-Out Transfer instruction, six lines of paper tape are read +and assembled in the In-Out Register to form a full computer word. For a +line to be recognized in this mode, the eighth hole must be punched; +i.e., lines with no eighth hole will be skipped over. The seventh hole +is ignored. The pattern of holes in the binary tape is arranged so as to +be easily interpreted visually in terms of machine instruction. + +Read-In Mode + +This is a special mode activated by the "Read-In" Switch on the Console. +It provides a means of entering programs which neither rely on read-in +programs in memory nor require a plug board. Pushing the "Read-In" +Switch starts the reader in the binary mode. The first group of six +lines and alternate succeeding groups of six lines are interpreted as +"Read-In" mode instructions. Even-numbered groups of 6 lines are data. +The "Read-In" mode instructions must be either "deposit in-out" (dio Y) +or "jump" (jmp Y). If the instruction is dio Y, the next group of six +binary lines will be stored in memory location Y and the reader +continues moving. If the instruction is jmp Y, the "Read-In" mode is +terminated and the computer will commence operation at the address of +the jump instruction. + + +PAPER TAPE PUNCH + +The standard PDP-3 Paper Tape Punch has a nominal speed of 20 lines per +second. It can operate in either the alphanumeric mode or the binary +mode. + + Alphanumeric Mode + ppa iot 5 + +For each In-Out Transfer instruction one line of tape is punched. In-Out +Register bit 35 conditions hole #1. Bit 34 conditions hole #2, etc. Bit +28 conditions hole #8. + + Binary Mode + ppb iot 6 + +For each In-Out Transfer instruction one line of tape is punched. In-Out +Register bit five conditions hole #1. Bit four conditions hole #2, etc. +Bit zero conditions hole #6. Hole #7 is left blank. The #8 hole is +always punched in this mode. + + +TYPEWRITER + +The Typewriter will operate in the input mode or the output mode. + + Output Mode + tyo iot 3 + +For each In-Out Transfer instruction one character is typed. The +character is specified by the right six bits of the In-Out Register. + + Input Mode + tyi iot 4 + +This operation is completely asynchronous and is therefore handled +differently than any of the preceding in-out operations. + +When a Typewriter key is struck, Program Flag Number One is set. At the +same time the code for the struck key is presented to gates connected to +the right six bits of the In-Out Register. This information will remain +at the gate for a relatively long time by virtue of the slow mechanical +action. A program designed to accept typed-in data would periodically +check the status of Program Flag One. If at any time Program Flag One is +found to be set, an In-Out Transfer instruction with address four must +be executed for information to be transferred. This In-Out Transfer +normally should not use the optional in-out halt. The information +contained in the Typewriter's coder is then read into the right six bits +of the In-Out Register. + + + + +OPTIONAL INPUT-OUTPUT + +The PDP-3 is designed to accommodate a variety of input-output +equipment. Of particular interest is the ease with which new, and +perhaps unusual, external equipment can be added to the machine. +Optional in-out devices include Cathode Ray Tube Display, Magnetic Tape, +Real Time Clock, Line Printer and Analog to Digital Converters. The +method of operation of PDP-3 with these optional devices is similar to +the standard input-output equipment. + + +SEQUENCE BREAK SYSTEM + +An optional in-out control is available for PDP-3. This control, termed +the Sequence Break System, allows concurrent operation of several in-out +devices and the main sequence. The system has, nominally, 16 automatic +interrupt channels arranged in a priority chain. + +A break to a particular sequence may be initiated by the completion of +an in-out device, the program, or an external signal. If this sequence +has priority, the C(AC), C(IO), C(PC), and C(IA) are stored in three +fixed memory locations unique to that sequence. Since the C(PC) and +C(IA) are eighteen bits each, these two registers are stored in one +memory location. The next instruction is taken from a fourth location. +This instruction is usually a jump to a suitable routine. The program is +now operating in the new sequence. This new sequence may be broken by a +higher priority sequence. A typical program loop for handling an in-out +sequence would contain 3 to 5 instructions, including the appropriate +iot. These are followed by load AD and load IO from the fixed locations +and a special indirect jump through the location of the previous C(PC). +This special jump also loads the IA. This last instruction terminates +the sequence. + + +HIGH SPEED IN-OUT CHANNEL + +The device connected to an in-out channel communicates directly with +memory through the Memory Buffer Register. At the completion of each +machine instruction, a check is made to see if the in-out channel has a +word for, or needs a word from, the memory. When necessary, a memory +cycle is taken to serve the channel. The operation is initiated by an +in-out command. The in-out transfer command indicates the nature of the +transfer. The left half of the In-Out Register must contain the +starting address of the transfer, and the right half must contain the +number of words to be transferred. If the Sequence Break System is +connected, the completion of the transfer will signal the proper +sequence. If no Sequence Break System is connected, the completion of +the in-out channel transfer sets a program flag. + + +MAGNETIC TAPE + +The system consists of tape units connected to the PDP-3 through a tape +control (TC). This tape is read or written in IBM 729I format. Two +hundred characters, each having 6 bits plus a parity bit, are written on +each inch of tape and the tape moves at 75 inches/sec. The tape control +has the job of connecting a specific unit to the PDP-3 and is a switch. +It also has the function of controlling the format of information that +is read or written on tape. In-out class commands instruct TC to the +type of information transfer and select the tape unit. Another IOT +command synchronizes the transfer of information through the TC to the +computer. + +The IOT order to select the unit and function is decoded as follows: 1) +Three bits specify the function of TC. 2) The remaining 6 bits select +the unit. + +_IOT Motion Commands for Magnetic Tape Units_ + + _IOT Code_ _Abbreviation_ _Function_ + + 73....nn 60 mrb Read a binary record. + 73....nn 61 mra Read an alphanumeric (BCD) record. + 73....nn 62 mbb Backspace a binary record. + 73....nn 63 mba Backspace an alphanumeric record. + 73....nn 64 mwb Write a binary record. + 73....nn 65 mwa Write an alphanumeric record. + 73....nn 66 mlp Move tape to lead point (rewind). + +Where the octal digits, nn, specify the unit number. + +The motion commands have the deferred bit, thus, the program halts. If +the TC is free, the command will be transferred to the tape control for +action and the program restarts immediately. If the tape control is +currently busy with an instruction, i.e., it hasn't finished a previous +command, the motion command is held up until TC is free to execute the +new command. + +The transfer of information from the computer to the TC is accomplished +with the pause and skip command, MPS or IOT 70. This command has the +deferred bit and halts a program until the TC can handle the transfer. +On completion, the transfer occurs and the program restarts. This is +used exclusively to synchronize the flow of information between a tape +unit and the computer. This command normally skips the following +instruction. If a flag is set in the TC, indicating incorrect +information flow, the skip does not take place. + +The TC contains a 36 bit buffer which holds a complete word while +information is read or written. When an MPS order is given and the unit +is reading, the TC buffer is read into the IO. The MPS order given +during writing causes the IO to be transferred to the TC buffer. + +Various conditions occurring in the TC cause the no-skip condition, when +an MPS is given. Tape control flags are examined by the command, examine +and clear flags, MEC or IOT 71. When MEC is given, the flags are put +into the IO for program interrogation, and the flags cleared. The flags +are: parity, end of tape, an end of record flag, and reading-writing +check. + +The parity flag is set if the parity condition is not met while the tape +is being read (during MWA, MWB, MRA, or MRB). + +The end of tape flag is set when the tape comes to the end of tape, +moving in either direction. + +Three conditions set the read-write check flag: 1) If TC is inactive, +i.e., no unit or function selected, and an MPS instruction is given. The +MPS becomes a no-operation, no-halt instruction. 2) When reading +information and not emptying the TC buffer, by giving an MPS before more +information arrives from tape. 3) A unit becomes unavailable during a +normal sequence. + +The end of record flag is set during reading or backspacing when the +tape comes to an end of record gap. + +_Writing a Record of Information_ + +Information is written on the tape by giving a MWB or MWA command. This +sets a write binary or a write alphanumeric into the TC and selects the +unit. A motion select command is executed immediately if the TC is free, +otherwise, the command waits until it can be executed. Normal +programming can continue after the MWA or MWB is given for approximately +5 milliseconds. At this time, an MPS order is given and the program +pauses until information can be written. When the MPS is restarted, +information is transferred to the TC buffer from the IO. If no flags +have been set, the following instruction is skipped. + +Three-quarter inches of blank tape is written by giving either the MWA +or MWB order. An end of file is written as follows: 1) Four MWA commands +write three inches of blank tape. 2) Then end of file character is +written by giving the MPS order. + +Information is read and checked for correct parity while writing. + +If too many program steps are given between the motion select command, +MWA or MWB and the first MPS, the unit will deselect (or disconnect). +The MPS is then a no-operation command. + +_Writing Program_ + +As an example, a program to write k words in binary format from storage +beginning in register A, using tape unit number 04, is shown. The +following program is written in standard FRAP language. The program +begins in register enterwrite. + + enterwrite mec ,clear flags initially + mwb 400 ,73000000464 + lir x/-k+1 ,initialize index register x + b lio x/a+k-1 ,begin loop + mps ,wait for TC then write C(Z) + jmp c ,error + spx x/1 ,add 1 to index register x + jmp b ,return of loop + jmp done ,record written + + + c mec ,tape error + ril 1 + spi + jmp rwcstop ,read-write error or tape fault + ril 1 + spi + jmp b+3 ,tape end + hlt ,tape parity + + done ,resume programming + +_Reading Information_ + +Information is read by giving the MRA or MRB order. Almost 10 ms. is +available after a read order is given before information actually enters +the TC buffer. + +To read a record of unknown length, the read order is first given. The +MPS order halts the program until six characters are assembled in the TC +information buffer. The next instruction after the MPS, a jump +instruction, transfers control from the loop when any flag is set. The +next instruction deposits the IO. The record length is determined by not +skipping after the MPS order on the setting of the end of record flag. +The read-write check flag or the end of record flag is then interrogated +to see that the tape is actually at the end of record. If a tape is not +at the end of record, then the tape is either at the end of the reel, or +a parity check has occurred. + +_Reading Program_ + +Program to read j binary words into storage beginning in register d, +using tape unit 10, j is unknown. The program begins in register +enteread. + + enteread mec ,clear flags initially + mrb 1000 ,730000001060 + dzm x ,put zero in memory location x + e mps + jmp outcheck + dio x/d ,store in location modified by x + snx x/+1 ,add 1 to C(x) + jmp e + + outcheck mec ,examine flags + spi ,end of record? + jmp recordend ,yes + hlt ,error + + recordend snx x/+1 ,to find value of j + " ,resume programming C(IA) = j + " + " + " + +_Forward Spacing_ + +Forward spacing is done by giving an MRB or MRA order. This moves the +tape forward with the read-write head positioned at the end of the +following record. If n read orders are given, the tape is spaced forward +n records. By giving the MEC order, parity flags are examined to see +that information on tape has been read correctly. + +_Backspacing_ + +By giving an MBA or MBB order the tape is moved backwards a record with +the read-write heads positioned in the previous end of record gap. The +end of record flag is set when the tape has moved backwards a record. + +_Rewinding_ + +Rewinding is accomplished by giving the rewind order, move tape to load +point, MLP. The rewind order starts a unit rewinding and does not tie up +the TC. If a motion command is given which calls for a unit that is +rewinding, the command is executed, but the action will not take place +until the unit is available. + +_Unit Availability_ + +A unit is unavailable to the program under the following conditions: + + 1. Unit is rewinding. + 2. Tape is improperly loaded. + 3. Cover door open. + 4. Unit overloaded. + 5. Unit under manual control. + 6. Power off. + +A selected but unavailable unit holds up the TC if a motion order is +given for the unit. The TC will be held up until the unit is ready. + +_Flag Positions_ + + _IO Bit_ _Flag_ + + 0 EOR - End of record + 1 RWF - Read-Write + 2 EOT - End of Tape + 3 Parity + +_Connection with High Speed Channel_ + +The high speed channel directs the tape control, and word transfer, just +as a program would. A unit is first started reading or writing. The high +speed channel is given the memory location of the information, and the +number of registers the words read or written will occupy. The channel +effects the information transfer. Thus, a high speed channel connected +to a tape control handles the programming for the unit word transfers. + +Completion of the block transfer is signified by either setting a +program flag, or entering the sequence break. + +_Connection with Sequence Break System_ + +When the TC is connected to the Sequence Break System, the program is +automatically interrupted each time an MPS command needs to be given. + +Programming is unaffected during reading and a record may be read with +no flags set. The TC initiates breaks so that an MPS may be given in +time. + +Similarly, the break is initiated during writing each time an MPS needs +to be given. + +_Motion Command Summary_ + + _Time before _Time between _Time after End of _Flags that + first MPS_ MPS's_ Record to deselect_ may be set_ + + MWA 3 ms. 400 us. 10 ms. RWF (if unit + MWB (longer time is deselected + causes deselection) and MPS given, + or unit becomes + unavailable), + Parity, EOT. + + MRA 7 ms. < 400 us. 5 ms. RWF, (if + MRB (longer time information + misses information, is missed, or + and unit becomes + rwc set) unavailable), + EOT, EOR, + Parity. + + MBA - - 10 ms. RWF (if unit + MBB becomes + unavailable), + EOR, EOT. + + +CATHODE-RAY-TUBE DISPLAY + +The PDP-3 Cathode Ray Tube Display is useful for presentation of +graphical or tabular information to the operator. It uses a 16 inch +round tube with magnetic deflection. For each In-Out transfer order, one +point is displayed at the position indicated by the In-Out Register. +Bits 0-9 of the IO indicate the X coordinate of the position, and bits +18-27 indicate the Y coordinate. The display takes 60 microseconds. + +An additional display option is a Light Pen. By use of this device the +computer is signaled that the operator is interested in the last point +displayed. Thus the program can take appropriate action such as changing +the display or shifting operation to another program. + +A smaller display is available. This display uses a five inch, high +resolution cathode ray tube. The tube is equipped with a mounting bezel +to accept a camera or photomultiplier device. The operation of this +display is similar to that of the 16 inch, except that 12 bits are +decoded for each axis. + + +REAL TIME CLOCK + +A special input register may be connected to operate as a Real Time +Clock. This is a counting register operated by a crystal controlled +oscillator. The clock can be reset to zero by manual operation. A toggle +switch interlock prevents an accidental reset. The state of this counter +may be read at any time by the appropriate In-Out Transfer instruction. + + +LINE PRINTER + +A 72 column Anelex printer and control are available as an option for +PDP-3. The control contains a one line buffer. This buffer is cleared by +the completion of an order to space the paper one position (psp). The +buffer is filled from the In-Out Register by a succession of 12 load +buffer orders (plb). The first plb will put the six characters +represented by C(IO) in the leading (left-hand) column positions of the +buffer. After the buffer is loaded, the order, print (pnt), is given. + + + + +UTILITY PROGRAMS + + +FRAP-3 - The Assembly Program + +An assembler or compiler prepares a machine language tape suitable for +direct interpretation by the computer from a program tape in operator +language. Generally speaking, one statement accepted by FRAP produces +one instruction for the machine. A single statement written for the +PDP-3 compiler, DECAL-3, may cause several instructions to be written. +Thus, FRAP causes a 1 for 1 mapping of instructions for statements while +DECAL may produce many instructions from one statement. + +In addition to allowing program tapes to be prepared with off line +equipment, an assembly program has other functions. Normally, the +machine would require 36 bits or 12 octal digits to be written for each +instruction used in the machine. FRAP allows mnemonic symbols to be used +for the instructions. These mnemonic symbols aid the programmer by +representing the instruction in an easily remembered form. + +In addition to allowing mnemonic symbols to represent the instructions, +variable length sequences of alphanumeric characters may be used to +represent memory addresses in symbolic form. The assembly program does +the address bookkeeping for the programmer. A short example of a FRAP +program is on Page 29. + +Since few characters limit or control the format of instructions written +in FRAP-3 language, it is possible to write instructions in almost any +format or style. + +FRAP-3 may also be used to prepare tapes for interpretive programming, +since arbitrary definitions for operation code symbols are permitted. + +A feature useful both for ease of programming and for machine simulation +is the ability to call for a series of instructions (macro-instruction) +to be written. Frequently used instruction sequences thus need only to +be defined once. + + +DECAL - The Compiler Program + +DECAL-3 (Digital Equipment Compiler, Assembler, and Linking loader for +PDP-3) is an integrated programming system for PDP-3. It incorporates in +one system all of the essential features of advanced assemblers, +compilers, and loaders. + +DECAL is both an assembler and compiler. It combines the one-to-one +translation facilities of an assembler, and the one-to-many translation +facilities of a formula translation compiler. Problem oriented language +statements may be freely intermixed with symbolic machine language +instructions. A flexible loader is available to allow the specification +of program location at load time. The programmer may specify that +certain variables and constants are "systems" variables and constants. +The symbols so defined are universally used in a system of many +routines. Thus, communications between parts of a major program is +facilitated even though these parts may be compiled separately. Storage +requirements for a large program are lessened by this technique. + +DECAL is an open-ended programming system and can be modified without a +detailed understanding of the internal operation. This is achieved by +means of a recursive definition facility based on a skeleton compiler +with a small set of logical capabilities. The skeleton compiler acts as +a bootstrap for introducing more sophisticated facilities. + +The compiler will be delivered with a fully defined subset of formula +translation operators. Additional subsets may be defined by the user to +best fit his source language. + + +FLOATING POINT SUBROUTINES + +A set of subroutines are provided with the PDP-3 to perform floating +point arithmetic. In these, the PDP-3 36 bit word is divided to form a +27 bit mantissa, a, and 9 bit exponent, b. Numbers, thus, appear in the +form: k = ax2^b where, a, is considered to be in fractional form in the +range 1/2 <= a < 1, and b is an integer, 0 <= b < 29. This gives number, +k, the range 10^{-76} < k < 10^{+76}. + +The subroutines are called with one operand in the accumulator. After +the subroutine has been executed, the accumulator contains the answer. +Thus floating point numbers are essentially handled as regular logical +works. The format of the number allows magnitude comparisons to be made +by conventional arithmetic as bit 0 is the sign of the number, bits 1 to +9 the exponent, and the remaining 26 bits, together with the sign bit, +the mantissa in ones complement arithmetic. The arithmetic subroutines +are: add, subtract, multiply, divide, convert a floating point number to +binary, convert a binary number to a floating number. Additional +routines form: [square root of x], e^x, ln x, sine(~pi~/2)x, +cos(~pi~/2)x, tan^{-1}x. There are also programs to convert between +floating decimal numbers and PDP-3 floating numbers. + +Routines which require two operands, e.g., add, subtract, multiply and +divide, require an index register to specify the address of the second +operand. An index register also specifies parameters in data +conversions, e.g., the position of the binary point when converting a +binary number to a standard floating number. + +Using the floating point subroutines, additional routines may be written +which handle complex floating numbers and vector and matrix algebra. + + +MAINTENANCE ROUTINES + +Maintenance Routines are used exclusively to check the operation of the +machine. These routines are operated while varying the bias supply +voltages, and thus a check is made on possible degradation of all +components which would affect the operation of the machine. + + +MISCELLANEOUS ROUTINES + +A variety of additional programs are provided with PDP-3. + +One of the more important programs is the Typewriter Interrogator +Program (TIP). TIP allows the typewriter to be used most effectively as +an input-output link by which programs and data are examined and +modified. The features include request for printing of a series of +registers, interrogation and modification of the contents of registers, +and the ability to request new tapes after programs have been suitably +modified. Communication is done completely via the typewriter in either +octal numbers, decimal numbers, or alphanumeric codes. Register contents +are presented in similar form. + +Other miscellaneous routines handle arithmetic processes, e.g., number +conversions, and communication with the input or output devices. These +routines include various format print outs, paper tape and magnetic tape +read in programs, and display subroutines. + + * * * * * + + + + +[Illustration: SYSTEM BLOCK DIAGRAM FIGURE 1] + +[Illustration: INSTRUCTION FORMAT FIGURE 2] + +[Illustration: FIGURE 3] + + * * * * * + + + + +Transcriber's Notes: + +C (X) and C(X) standardized to C(X). + +usec and usec. standardized to usec. throughout text. + +Other changes to the original text are listed below. + +Figure 4 is referred to in the text, but a copy could not be located. + +Underlined Text is enclosed by underscores. + +Superscripts are marked with carats x^2 and y^{-3}. + +Greek symbols are surrounded by ~tildes~. + + +Transcriber Changes: + +TABLE OF CONTENTS: Originally 'Operation' (=Operating= Speeds) + +TABLE OF CONTENTS: Originally 'Frap' (=FRAP=) + +TABLE OF CONTENTS: Originally 'Routines' (=Subroutines=) + +Page 4: Originally 'theoperate' (while a program is operating by means + of =the operate= instruction.) + +Page 7: Added comma (The instruction base address, =Y,= is in octal + digits 7 through 11.) + +Page 8: Standardized from 'sub-routines' (The conversion of decimal + numbers into the binary system for use by the machine may be + performed automatically by =subroutines=.) + +Page 8: Standardized from 'sub-routine' (the output conversion of + binary numbers into decimals is done by =subroutine=.) + +Page 16: Added comma (This instruction will shift the contents of the + combined register right N =positions,= where N is octal digits + 7-11 of the instruction word.) + +Page 16: Moved comma. Was 'left, N positions' (This instruction will + shift the contents of the combined registers =left N positions,= + where N is octal digits 7-11 of the instruction word.) + +Page 19: Was 'know' (Most in-out operations require a =known= minimum + time before completion.) + +Page 20: Removed inconsistent comma (These are the Test Address (15 + bits), the Test Word (36 bits), and the Sense =Switches= (6 + bits).) + +Page 21: Changed comma to period (the computer will halt at the + completion of each memory =cycle.= This switch is particularly + useful in debugging programs.) + +Page 28: Was 'tpae' (during reading or backspacing when the =tape= + comes to an end of record gap.) + +Page 29: Standardized from 'de-select' (the unit will =deselect= (or + disconnect).) + +Page 35: Was 'propares' (An assembler or compiler =prepares= a machine + language tape suitable for direct interpretation) + +Page 35: Removed comma (Frequently used instruction =sequences= thus + need only to be defined once.) + +Page 37: Was 'Routiines' (=Routines= which require two operands, e.g., + add, subtract, multiply and divide) + + + + + +End of the Project Gutenberg EBook of Preliminary Specifications: Programmed +Data Processor Model Three (PDP-3), by Digital Equipment Corporation + +*** END OF THIS PROJECT GUTENBERG EBOOK PDP MODEL THREE (PDP-3) *** + +***** This file should be named 29461.txt or 29461.zip ***** +This and all associated files of various formats will be found in: + https://www.gutenberg.org/2/9/4/6/29461/ + +Produced by Gerard Arthus, Katherine Ward, and the Online +Distributed Proofreading Team at https://www.pgdp.net + + +Updated editions will replace the previous one--the old editions +will be renamed. + +Creating the works from public domain print editions means that no +one owns a United States copyright in these works, so the Foundation +(and you!) can copy and distribute it in the United States without +permission and without paying copyright royalties. Special rules, +set forth in the General Terms of Use part of this license, apply to +copying and distributing Project Gutenberg-tm electronic works to +protect the PROJECT GUTENBERG-tm concept and trademark. Project +Gutenberg is a registered trademark, and may not be used if you +charge for the eBooks, unless you receive specific permission. If you +do not charge anything for copies of this eBook, complying with the +rules is very easy. You may use this eBook for nearly any purpose +such as creation of derivative works, reports, performances and +research. They may be modified and printed and given away--you may do +practically ANYTHING with public domain eBooks. Redistribution is +subject to the trademark license, especially commercial +redistribution. + + + +*** START: FULL LICENSE *** + +THE FULL PROJECT GUTENBERG LICENSE +PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK + +To protect the Project Gutenberg-tm mission of promoting the free +distribution of electronic works, by using or distributing this work +(or any other work associated in any way with the phrase "Project +Gutenberg"), you agree to comply with all the terms of the Full Project +Gutenberg-tm License (available with this file or online at +https://gutenberg.org/license). + + +Section 1. General Terms of Use and Redistributing Project Gutenberg-tm +electronic works + +1.A. By reading or using any part of this Project Gutenberg-tm +electronic work, you indicate that you have read, understand, agree to +and accept all the terms of this license and intellectual property +(trademark/copyright) agreement. If you do not agree to abide by all +the terms of this agreement, you must cease using and return or destroy +all copies of Project Gutenberg-tm electronic works in your possession. +If you paid a fee for obtaining a copy of or access to a Project +Gutenberg-tm electronic work and you do not agree to be bound by the +terms of this agreement, you may obtain a refund from the person or +entity to whom you paid the fee as set forth in paragraph 1.E.8. + +1.B. "Project Gutenberg" is a registered trademark. It may only be +used on or associated in any way with an electronic work by people who +agree to be bound by the terms of this agreement. There are a few +things that you can do with most Project Gutenberg-tm electronic works +even without complying with the full terms of this agreement. See +paragraph 1.C below. There are a lot of things you can do with Project +Gutenberg-tm electronic works if you follow the terms of this agreement +and help preserve free future access to Project Gutenberg-tm electronic +works. See paragraph 1.E below. + +1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation" +or PGLAF), owns a compilation copyright in the collection of Project +Gutenberg-tm electronic works. Nearly all the individual works in the +collection are in the public domain in the United States. If an +individual work is in the public domain in the United States and you are +located in the United States, we do not claim a right to prevent you from +copying, distributing, performing, displaying or creating derivative +works based on the work as long as all references to Project Gutenberg +are removed. Of course, we hope that you will support the Project +Gutenberg-tm mission of promoting free access to electronic works by +freely sharing Project Gutenberg-tm works in compliance with the terms of +this agreement for keeping the Project Gutenberg-tm name associated with +the work. You can easily comply with the terms of this agreement by +keeping this work in the same format with its attached full Project +Gutenberg-tm License when you share it without charge with others. + +1.D. The copyright laws of the place where you are located also govern +what you can do with this work. Copyright laws in most countries are in +a constant state of change. If you are outside the United States, check +the laws of your country in addition to the terms of this agreement +before downloading, copying, displaying, performing, distributing or +creating derivative works based on this work or any other Project +Gutenberg-tm work. The Foundation makes no representations concerning +the copyright status of any work in any country outside the United +States. + +1.E. Unless you have removed all references to Project Gutenberg: + +1.E.1. The following sentence, with active links to, or other immediate +access to, the full Project Gutenberg-tm License must appear prominently +whenever any copy of a Project Gutenberg-tm work (any work on which the +phrase "Project Gutenberg" appears, or with which the phrase "Project +Gutenberg" is associated) is accessed, displayed, performed, viewed, +copied or distributed: + +This eBook is for the use of anyone anywhere at no cost and with +almost no restrictions whatsoever. You may copy it, give it away or +re-use it under the terms of the Project Gutenberg License included +with this eBook or online at www.gutenberg.org + +1.E.2. If an individual Project Gutenberg-tm electronic work is derived +from the public domain (does not contain a notice indicating that it is +posted with permission of the copyright holder), the work can be copied +and distributed to anyone in the United States without paying any fees +or charges. If you are redistributing or providing access to a work +with the phrase "Project Gutenberg" associated with or appearing on the +work, you must comply either with the requirements of paragraphs 1.E.1 +through 1.E.7 or obtain permission for the use of the work and the +Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or +1.E.9. + +1.E.3. If an individual Project Gutenberg-tm electronic work is posted +with the permission of the copyright holder, your use and distribution +must comply with both paragraphs 1.E.1 through 1.E.7 and any additional +terms imposed by the copyright holder. Additional terms will be linked +to the Project Gutenberg-tm License for all works posted with the +permission of the copyright holder found at the beginning of this work. + +1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm +License terms from this work, or any files containing a part of this +work or any other work associated with Project Gutenberg-tm. + +1.E.5. Do not copy, display, perform, distribute or redistribute this +electronic work, or any part of this electronic work, without +prominently displaying the sentence set forth in paragraph 1.E.1 with +active links or immediate access to the full terms of the Project +Gutenberg-tm License. + +1.E.6. You may convert to and distribute this work in any binary, +compressed, marked up, nonproprietary or proprietary form, including any +word processing or hypertext form. However, if you provide access to or +distribute copies of a Project Gutenberg-tm work in a format other than +"Plain Vanilla ASCII" or other format used in the official version +posted on the official Project Gutenberg-tm web site (www.gutenberg.org), +you must, at no additional cost, fee or expense to the user, provide a +copy, a means of exporting a copy, or a means of obtaining a copy upon +request, of the work in its original "Plain Vanilla ASCII" or other +form. Any alternate format must include the full Project Gutenberg-tm +License as specified in paragraph 1.E.1. + +1.E.7. Do not charge a fee for access to, viewing, displaying, +performing, copying or distributing any Project Gutenberg-tm works +unless you comply with paragraph 1.E.8 or 1.E.9. + +1.E.8. You may charge a reasonable fee for copies of or providing +access to or distributing Project Gutenberg-tm electronic works provided +that + +- You pay a royalty fee of 20% of the gross profits you derive from + the use of Project Gutenberg-tm works calculated using the method + you already use to calculate your applicable taxes. The fee is + owed to the owner of the Project Gutenberg-tm trademark, but he + has agreed to donate royalties under this paragraph to the + Project Gutenberg Literary Archive Foundation. Royalty payments + must be paid within 60 days following each date on which you + prepare (or are legally required to prepare) your periodic tax + returns. Royalty payments should be clearly marked as such and + sent to the Project Gutenberg Literary Archive Foundation at the + address specified in Section 4, "Information about donations to + the Project Gutenberg Literary Archive Foundation." + +- You provide a full refund of any money paid by a user who notifies + you in writing (or by e-mail) within 30 days of receipt that s/he + does not agree to the terms of the full Project Gutenberg-tm + License. You must require such a user to return or + destroy all copies of the works possessed in a physical medium + and discontinue all use of and all access to other copies of + Project Gutenberg-tm works. + +- You provide, in accordance with paragraph 1.F.3, a full refund of any + money paid for a work or a replacement copy, if a defect in the + electronic work is discovered and reported to you within 90 days + of receipt of the work. + +- You comply with all other terms of this agreement for free + distribution of Project Gutenberg-tm works. + +1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm +electronic work or group of works on different terms than are set +forth in this agreement, you must obtain permission in writing from +both the Project Gutenberg Literary Archive Foundation and Michael +Hart, the owner of the Project Gutenberg-tm trademark. Contact the +Foundation as set forth in Section 3 below. + +1.F. + +1.F.1. Project Gutenberg volunteers and employees expend considerable +effort to identify, do copyright research on, transcribe and proofread +public domain works in creating the Project Gutenberg-tm +collection. Despite these efforts, Project Gutenberg-tm electronic +works, and the medium on which they may be stored, may contain +"Defects," such as, but not limited to, incomplete, inaccurate or +corrupt data, transcription errors, a copyright or other intellectual +property infringement, a defective or damaged disk or other medium, a +computer virus, or computer codes that damage or cannot be read by +your equipment. + +1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right +of Replacement or Refund" described in paragraph 1.F.3, the Project +Gutenberg Literary Archive Foundation, the owner of the Project +Gutenberg-tm trademark, and any other party distributing a Project +Gutenberg-tm electronic work under this agreement, disclaim all +liability to you for damages, costs and expenses, including legal +fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT +LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE +PROVIDED IN PARAGRAPH F3. YOU AGREE THAT THE FOUNDATION, THE +TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE +LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR +INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH +DAMAGE. + +1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a +defect in this electronic work within 90 days of receiving it, you can +receive a refund of the money (if any) you paid for it by sending a +written explanation to the person you received the work from. If you +received the work on a physical medium, you must return the medium with +your written explanation. The person or entity that provided you with +the defective work may elect to provide a replacement copy in lieu of a +refund. If you received the work electronically, the person or entity +providing it to you may choose to give you a second opportunity to +receive the work electronically in lieu of a refund. If the second copy +is also defective, you may demand a refund in writing without further +opportunities to fix the problem. + +1.F.4. Except for the limited right of replacement or refund set forth +in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER +WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE. + +1.F.5. Some states do not allow disclaimers of certain implied +warranties or the exclusion or limitation of certain types of damages. +If any disclaimer or limitation set forth in this agreement violates the +law of the state applicable to this agreement, the agreement shall be +interpreted to make the maximum disclaimer or limitation permitted by +the applicable state law. The invalidity or unenforceability of any +provision of this agreement shall not void the remaining provisions. + +1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the +trademark owner, any agent or employee of the Foundation, anyone +providing copies of Project Gutenberg-tm electronic works in accordance +with this agreement, and any volunteers associated with the production, +promotion and distribution of Project Gutenberg-tm electronic works, +harmless from all liability, costs and expenses, including legal fees, +that arise directly or indirectly from any of the following which you do +or cause to occur: (a) distribution of this or any Project Gutenberg-tm +work, (b) alteration, modification, or additions or deletions to any +Project Gutenberg-tm work, and (c) any Defect you cause. + + +Section 2. Information about the Mission of Project Gutenberg-tm + +Project Gutenberg-tm is synonymous with the free distribution of +electronic works in formats readable by the widest variety of computers +including obsolete, old, middle-aged and new computers. It exists +because of the efforts of hundreds of volunteers and donations from +people in all walks of life. + +Volunteers and financial support to provide volunteers with the +assistance they need are critical to reaching Project Gutenberg-tm's +goals and ensuring that the Project Gutenberg-tm collection will +remain freely available for generations to come. In 2001, the Project +Gutenberg Literary Archive Foundation was created to provide a secure +and permanent future for Project Gutenberg-tm and future generations. +To learn more about the Project Gutenberg Literary Archive Foundation +and how your efforts and donations can help, see Sections 3 and 4 +and the Foundation web page at https://www.pglaf.org. + + +Section 3. Information about the Project Gutenberg Literary Archive +Foundation + +The Project Gutenberg Literary Archive Foundation is a non profit +501(c)(3) educational corporation organized under the laws of the +state of Mississippi and granted tax exempt status by the Internal +Revenue Service. The Foundation's EIN or federal tax identification +number is 64-6221541. Its 501(c)(3) letter is posted at +https://pglaf.org/fundraising. Contributions to the Project Gutenberg +Literary Archive Foundation are tax deductible to the full extent +permitted by U.S. federal laws and your state's laws. + +The Foundation's principal office is located at 4557 Melan Dr. S. +Fairbanks, AK, 99712., but its volunteers and employees are scattered +throughout numerous locations. Its business office is located at +809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email +business@pglaf.org. Email contact links and up to date contact +information can be found at the Foundation's web site and official +page at https://pglaf.org + +For additional contact information: + Dr. Gregory B. Newby + Chief Executive and Director + gbnewby@pglaf.org + + +Section 4. Information about Donations to the Project Gutenberg +Literary Archive Foundation + +Project Gutenberg-tm depends upon and cannot survive without wide +spread public support and donations to carry out its mission of +increasing the number of public domain and licensed works that can be +freely distributed in machine readable form accessible by the widest +array of equipment including outdated equipment. Many small donations +($1 to $5,000) are particularly important to maintaining tax exempt +status with the IRS. + +The Foundation is committed to complying with the laws regulating +charities and charitable donations in all 50 states of the United +States. Compliance requirements are not uniform and it takes a +considerable effort, much paperwork and many fees to meet and keep up +with these requirements. We do not solicit donations in locations +where we have not received written confirmation of compliance. To +SEND DONATIONS or determine the status of compliance for any +particular state visit https://pglaf.org + +While we cannot and do not solicit contributions from states where we +have not met the solicitation requirements, we know of no prohibition +against accepting unsolicited donations from donors in such states who +approach us with offers to donate. + +International donations are gratefully accepted, but we cannot make +any statements concerning tax treatment of donations received from +outside the United States. U.S. laws alone swamp our small staff. + +Please check the Project Gutenberg Web pages for current donation +methods and addresses. Donations are accepted in a number of other +ways including including checks, online payments and credit card +donations. To donate, please visit: https://pglaf.org/donate + + +Section 5. General Information About Project Gutenberg-tm electronic +works. + +Professor Michael S. Hart was the originator of the Project Gutenberg-tm +concept of a library of electronic works that could be freely shared +with anyone. For thirty years, he produced and distributed Project +Gutenberg-tm eBooks with only a loose network of volunteer support. + + +Project Gutenberg-tm eBooks are often created from several printed +editions, all of which are confirmed as Public Domain in the U.S. +unless a copyright notice is included. Thus, we do not necessarily +keep eBooks in compliance with any particular paper edition. + + +Most people start at our Web site which has the main PG search facility: + + https://www.gutenberg.org + +This Web site includes information about Project Gutenberg-tm, +including how to make donations to the Project Gutenberg Literary +Archive Foundation, how to help produce our new eBooks, and how to +subscribe to our email newsletter to hear about new eBooks. |
