Digital PDFs
Documents
Guest
Register
Log In
XX-932AC-35
September 1975
191 pages
Original
32MB
view
download
Document:
102737607-05-19-acc
Order Number:
XX-932AC-35
Revision:
0
Pages:
191
Original Filename:
102737607-05-19-acc.pdf
OCR Text
SOFTWARE SOFTWARE Languages AID ALGOL APl BASIC COBOL ISAM ePl FORTRAN FORTRAN Version 4 MACRO System Utilities SOAT Data Base Management System ITPS-l0 UNK-l0 MACY11-LNKX11 SYSTEM ARCHITECTURE The DECaYltem·1090 Central Processors Instruction Set InstructIOn Groups Instruchon Formal Trap Handling on the K110 and KIlO Processor Modes Fast Register Blocks Real-Time Clocks Memory Cache Memory Memory Systems Interleavmg Input/Output Prlonty Interrupt System Multiplexed 1/0 Bus Massbus 110 Channel Capacity Console/ Diagnostic Computer System Integrity Features Power Fall Error Handling Multiprocessor Systems Dual CPU System 2 4 6 6 6 7 8 9 9 10 12 12 12 13 13 13 ,.,. 15 16 16 16 17 17 PERIPHERALS PERIPHERALS 19 Disk Systems DAS33 Buffered Data Channel DECtape Transport Magnetic Tape Systems Hard Copy Equ ipment Card Reader. Line Print.rs Terminals 20 22 23 24 26 26 26 28 DDT FAILSAFE/BACKUP Message Control System PIP DATA COMMUNICATIONS DATA COMMUNICATIONS 33 System Concepts 34 Asynchronous Communications 34 Synchronous Communications 34 Synchronous vs. Asynchronous Transmission 35 Remote Communications 36 Netwo", Concepts 37 Simple Topologies 37 Complex Topologies 37 Task-to-Task Communication 38 IBM Device Emulation and Termination 38 CommunJcatkms Products 3. DN87/87S Universal Synchronous/Asynchronous Front End Subsystem 39 Complex Topologies '2 DECneHO .2 DAS80 Series Aemote Slalion .3 DAS92 Remote Station '5 DAS 61 IBM 2780/3780 Support 46 DAS 621BM HASP Multi-leaving Support '6 CONFIGURATOR 47 CONFIGURATDR 1 RUNOFF TECD Operating System TOPS-10 Operating System Command Control Language File System Input/Output Memory Management Multi'Processor Systems Inter-job Communication Communications Software Multlmode Computing Timesharing GALAXY-10 Batch Real-Time Computing Diagnostic Software High Availability Maintenance Features On-Une Diagnosis 59 61 60 60 60 62 61 62 62 63 63 64 65 65 65 66 66 67 67 67 68 68 68 68 •• 69 72 73 76 76 77 78 78 79 79 79 81 .3 83 83 83 SERVICES SERVICES 85 People Parts Support Service Agreements Education Logistics Technical Documentation Software Services Advanced Systems Group 87 87 87 88 86 8. 6. 90 ., The DECsyslem-1090 is an extension of the DECsystem -1080 which was announced in September of 1974 and first delivered in June of 1975. The DECsystem-1090 offers all the outstanding features of the 1060 plus many new ones. The key features of the DECsystem-lOoo are: The new Kll0B Processor. It features 1.4 mips, integrated channels, cache memory and a PDP-11 Can· sale front end computer which permits on-line, remote diagnosis and maintenance. The new CPU permits more compact configuration and lower power consumption through the use of integrated channels ; improved performance; and substantially lower system purchase and maintenance costs. Single and dual CPU systems, featuring high availability, are offered . The new MH10 Memory System. It offers 256K 36-bit words in one 31· system cabinet. Internal 2-way interleaving and eight memory ports accom modate up to 2 CPU 's and all of DIGITAL's standard memory channel peripheral subsystems. The DECsystem-IO memory can be expanded with up to 16 MH10 units to over 4 million words or 20 million ASCII characters. 320K (rU70) and 780K (TU72) characters per second allow DECsystem-l 090 users 10 select the tape system which meets their needs. With the new TUn system, 6250 bpi capability has been added to our product offerings allhe high end and the TTUt6 72KHz syslem greatly reduces the cost of 1600 bpi capability, for low performance requirements. The recently-announced RP06 200 megabyte Disks. They are now available using the integrated MASSeUS· controllers. Not only is the cost of Disk System s substantially reduced, but the use of integrated controllers and channels provide automatic update of the cache memory -thus reducing overhead. The on-line disk data storage can now be extended to over 6.2 billion ASCII characters or about 5 billion a-bit bytes. A compfete range of Una Printen and Card Readers. The new lPl00 offers high quality M band ~ prinling a11200 10 1500 lines per minute. The LPlO and LU10 offer high quality mid-range and Iow-speed printers at lower cost 10 meet users' individual needs. The CR10Eand CR10F 1200and 300 card per minute readers offer a choice of two excellent card readers. The new TTU16 Magnetic Tape Subsystem. It now uses the integrated MASSeUS· Controllers to extend the DECsystem1090 tape capability to three subsystems. Transfer rates of 72K (lUI6), The new ON87S CommunlcaUons front end. It provides additional features and lower costs than previous communication front end offerings. Cost is reduced through the use of the integrated DTE channels which utilize high-speed microcode for data transfer. Important new features include DECnet compatibility and simultaneous support of synchronous and asynchronous communica· tions on a single front end. All the standard ANF features are also supported. Up to three DN87S units per 1090 System can accommodate up to 336 full duplex asynchronous lines or 36synchronous lines. The number of lines can be extended by adding a ONB7A and up to three DN87D s, each of which can support 112 asynchronous or 12 synchronous lines. UNIT RECORO MEMORY B S M HIO MEMORY 256 1C TO 4M WOi!OS 110 BUS 0 M ICLIO A I n u 16 DN87S TAPE SYSTEM SYSTEM A DECsystem-1090 Block Diagram 2 ~ ~~~J I OTE j I RTP04/6 DISIC SYSTEM TAPE SYSTEM A INTERNAL CHANNELS AND CONTROLLERS MASS&uS TU70ln 0 I I a:JMM Within the family of six DECsystem10 configurations, there are three central processor units. All operate under the same DECsystem-l00perating system (TOPS-tO), execute the same software, and share most models of DECsystem-l0 peripheral equipment. The three processors differ in their speed, method of address mapping, memory capacity, program size, auto-diagnostic and restart features, and priority interrupt system. The KA10 central processor is used in the DECsystem-l050 and 1055. The more powerful KilO central processor is used in the DECsystem-l070 and 1077 configurations. The top-of-theline KL10 central processor is used in the DECsystem-tQ80, 1090 and 1099. The high speed 2K word cache memory (K=1,024) permits rapid instruction execution while minimizing accesses to main memory. A double precision floating multiply, for instance, executes in 4.BJlsec. Because ali processors operate wIth the same operating system, it is easy to field upgrade a system with a KA10 and replace it with a KI10 processor; or take a system with a KI10and replace it with a KL10 processsor, providing a significant increase in the computing power with no necessary changes in user programs. The 1090 configuration differs from the 1050 or 1070 in that the high speed data channels and communications processor channels are integral to the central processor. Up to eight high speed buffered data channels can be utilized which support DIGITAL's Massbus. peripherals. Because the data chan nels access four 36-bit words of memory in one channel request cycle the total throughput is in excess of one million words per second or 4 megabytes per second. Fornon-Massbus. peripherals, external channels which transfer directly to memory can be utilized. An important feature of the integrated high speed data channels is that cache memory is automatically updated 4 during 110 transfers. The integrated front end processor channels will accommodate up to three PDP-11 communications front ends in addItIOn to Ihe KL 10 console front end. These channels utilize high speed microcode to transfer and process data comrng from the PDP-ll communications fronl ends. All channel data transfers are parity checked. A final benefit of the 1090 internal channels is configuration simplicity, improved maintainability and reduced power consumption. DECsystem-l0 at a Glance. 1040/1050 Relallve Performance 1.0 1055* 1060/1070 1.8 2.2 30-80 1088*/1099* 1077* 1080/1090 3.5 40-100 4.8 50-127 75-150 2 1 2 6.7 Avg Number of Users 10-40 20-70 No ofCPUs 1 2 Memory Size In K words (min -max .) (K &'024) 64-256 128·256 128-4096 128-4096 128·4096 128-4096 No. ollnslruchons 366 366 378 378 398 398 Instruction Look-ahead No No Yes Yes Yes Yes Virtual Memory No No Yes Yes Yes Yes Memory Interleaving 20r4way 2or 4way 20r4way 2or 4way 2or4way 15 15 each 4x15 4x15each 8 x 15 Index Registers CPU Accumulators 16 16 each 4 x 16 CPU Instruction Times (microseconds) " Fixed Point Add 2or4way 8 x 15 each CPU CPU 4xl6each 8 x 16 8 x 16 each CPU CPU 2.8 2.8 1.6 1.6 .52 .52 Fixed POint Multiply 9.8 9.8 4.6 4.6 2.4 2.4 Unconditional Jump 1.5 1.5 1. 1 1.1 .36 .36 Single Precision Floallng POint Add 9.8 9.8 2.7 2.7 1.8 1.8 Double PrecISion Floallng POint Add 59.4 59.4 3.9 3.9 2.2 2.2 Double PrecISion Floallng Muiliply N.A. NA 8. 1 8. 1 4.8 4.8 Double PrecISion Floating DIvide NA NA 16.0 16.0 10_2 10.2 NA NA N.A. 5.6 5.6 1.4 1.4 NA 1.6 1.6 .48 .48 110 Bus Band width (words/second) 200K 200K 370K 370K 370K 370K Memory Bus Band width (words/second) 4000K 4000K 4000K 4000K 4000K 4000K Increment and Move Byte Move from Memory - Dual-processor systems execute two Instructions simultaneously. *'For 108011088 and 1090/1099 Operands in Cache Memory. 5 Instruction Set InstrucUon GrOtJPB The KA 10 has 366 instructions, the KI10 378 instructions, and the KL 10398 instructions, an extremely large reper- toire which provides the flexibility required for specialized computing problems. The instruction sets of the KA 10 and KilO are hardwired. By contrast, the instruction sel of the KL10 is microprogrammed; thai is, each instruction is actually a series of miera-instructions that perform various logical functions such as processor state control, data path control and actual implementation of each instruction in the KL10's set. The micro-code is loaded into a lK BO-bi! word RAM (random access memory) through the PDP-!! console/diagnostic computer. Since the set provides so many instructions to choose from, fewer instructions are required to perform a given function. Assembly language programs are therefore shorter than with other computers, and the instruction set simplifies the Monitor, language processors, and utility programs. For example, compiled programs on a DECsystem-1Q are otten 30 to 50 percent shorter, require less memory and execute faster than those of comparable computers. In addition to these instructions, the DECsystem'10 provides 64 programmable operators, 33 of which ~trap ~ to the Monitor (Monitor calls) and 31 of which trap to the user's call area. The remaining instruction codes areunimplemented and reserved for future expansion. An attempt to execute one of these unimplemented instrUctions results in a trap to the Monitor. The instruction set, despite its size, is easy to learn. It is logically grouped into families of instructions and the mnemonic code is constructed modularly. All instructions are capable of directly addressing a full 256K (36 bit) words of memory without resorting to base registers, displacement addressing, or indirect addressing. Instructions may, however, use indirect addressing with indexing to any level. Most instruction classes, including floating paint, allow immediate mode addressing, where the result of the effective address calculation is used direclly as an operand in order to save storage and speed execution. Instruction Format In all the non";npuvoutput instructions, the nine high-order bits (o-S) specify the operation, and bits 9-12 usually address an accumulator but are sometimes used for special control purposes, such as addressing flags. The rest of the instruction word always supplies information for calculating the effective address, which is used for immediate mode data or is the actual address used to fetch the operand or alter program flow. Bit 13 specifies the type of ad. dressing (direct or indirect), bits 14-17 specify an index register for use in ad· dress modification (zero indicates no indeXing), and the remaining eighteen bits (18-35) contain a memory address. The instruction codes that are 001 assigned as specific instrucbons are performed by the processor as so-caJed Munimplemented operations M , as are the codes for floating point and byte manipulation In any KA 10 that does not have the hardware fO( these instructions. An inpuVoutput instruction is deslg' nated by three 1s In bits 0-2. Bits 3-9 address the inpuVoulput device to be used in executing the instructIOn, and bits 10-12 specify the operation. The rest of the word is the same as In other instructions. I AOOII£SS T"I?[ -...~ o -T~l" .. II ". o INSTRUCTION FORMAT 6 HALF-WORD DATA TRANSMISSION The half-word data transmission instructIOns move a half-word and may modify the contents of the other half of the destination location. There are 16 instructions which differ in the direction that they move the chosen half-word and in the manner in which they modify the other half of the destination location. FULL-WORD DATA TRANSMISSION The full-word data transmission instructions move one or more full words of data from one place to another. The Instructions may perform minor arithmetic operations such as forming the negallve or the magnitude of the word bemg processed BYTE MANIPULATION The five byte manipulation instrucbans pack Of unpack bytes of any length anywhere within a word . LOGIC INSTRUCTIONS The logic instructions provide the capabilities of shifting and rotating, as well as performing the complete set of 16 Boolean functions on two variables. FIXED·POINT ARITHMETIC Two common conventions are to re gard a number as an integer (binary point at the right) or as a proper fraction (binary point at the left) : in these two cases, the range of numbers represented by a Single word Is - 2311 to 2311 - lor - I to 1-2.315. Since multiplication and division make use of double-preciSIOn numbers, there are special lnstructlons for performing these operations to yiekj results that can be represented by a single word The format for double-length fixed poent numbers is just an extension of the Single-precision format. The magnitude (or Its twos complement) is the 70-bit stnng '" bits 1-35 of the high- and loworder words Bit 0 of the hlgh-order word IS the sign, 0 for pOSItive, 1 for negallve Bit 0 of the low-order word is ignored The range for double-length integer and proper fractions is thus - 210 to 210 -lor -I to 1-2-10. Zero is represented by a word containing aliOs. FLOATING-POINT ARITHMETIC All DECsystem-l0 processors have instructions to perform scaling, negating, addition, subtraction, multiplication and division upon numbers in Single-preCi sion, floating point format. In the singleprecision floating point format, one bit is reserved for the sign, eight bits are used for the exponent and 27 bits are used for the fraction. As a superset of the KAIO, the KilO and KL10 have instructions to perform all of the above functions in doublepreCision floating-point format as well as single-preCiSion floating-paint. In double-precision floating-paint format, one bit is used for the sign. eight bits are used for the exponent and 62 bits are used for the fraction. FIXED/FLOATING CONVERSIONS Special KilO and KLIO instructions provide the capability of converting fixed-point formats to or from floatingpoint form ats. Two sets of instructions are provided to perform this function : one set optimized for FORTRAN and a second set optimized for ALGOl. ARITHMETIC TESTING The arithmetic testing instructions may jump or skip. depending on the result of an arithmetic test and may first perform an arithmetic operation on the test word. LOGICAL TESTING, MODIFICATION, AND SKIP These instructions modify and/or test using a mask andlor skip on selected bits in an accumulator. PROGRAM CONTROL Program control instructions include several types of jump instructions and the subroutine control PUSHJ and POPJ instructions. INPUT/OUTPUT OPERATIONS Input/output instructions govern all direct transfers of data to and from the peripheral equipment and also perform many operations within the processor. Block transfer instructions handle bulk data transfers to and from 110 devices. UNIMPLEMENTED USER OPERATIONS (UUOs) Many of the codes not assigned as specific instructions are executed as unimplemented user operations wherein the word given as an instruction is trapped and must be interpreted by a routine included for this purpose either by the programmer or by the Monitor. Those UUOs reserved for use by the Monitor are called Monitor UUOs (MUUOs), while user UUOs are called Local UUOs (LUUOs). lnstructions that are illegal in user mode also trap in the same manner as MUUOs. 7 BUSINESS INSTRUCTION SET Five instructions comprise the Business Instruction Set in the KLIOcentral processor. Four of these are new arithmetic instructions to add, subtract, multiply, and divide using double precision, fixed-point operands. The new STRING instruction is capable of performing nine separate functions. These functions include an EDIT capability: decimal to binary and binary to decimal conversion in both offset and translated mode, (offset mode is byte modification by addition of the effective address of the string instruction. This also occurs in EDIT. In addition to providing the translation function, those instructions which use translation can control the flags in ACs and can detect special characters in the source string.); Move String in both offset and translated mode: and Compare String in both offset and translated mode. This Business Instruction Set provides faster processing since there are specific instructions for doing more comprehensive string operations. These instructions can be used on a variety of code types such as ASCII and EBCDIC. TrapHandlingon the KilO and KL1 0 The KilO and KLIO provide facilities for handling arithmetic overflow and underflow conditions. pushdown list overflow conditions, and page failures directly by the execution of programmed trap instructions. This trap capability avoids recourse to the program interrupt system. If a program is running in a public submode, pages within the user's addressing space are accessible only if they are listed in the user's page map and are defined to be accessible from public mode. Pages designated public are, by definition, accessible. Pages designated concealed may be accessed only at defined entry pOints. i.e. portals which permit entry from public submode programs. In concealed submode operations. programs can access all of the virtual addressing space. However, if a program runn ing in concealed submode executes an instruction from an area designated to be public, the state of the processor transfers over into public submode. Concealed areas can be used for proprietary coding that can be executed but not altered or examined by users in the public mode. The supervisor and kernal submodes are similar but not identical to the public and concealed submodes. Supervisor submode programs can access but cannot atter areas designated as concealed. Also. any instruction executed out of a public area from either supervisor or kernel submode returns the processor to supervisor submode. In kernel submode operations all of memory is accessible and can be altered. Programs operating in kernel submode can address portions of memorydireclly, without paging. and it is through the kernel submode program that page restrictions are established. Functions delegated to supervisor submode generally include those affecting IndIVidual users as opposed to overall system management of mput/output, pnOflIy interrupts. page map accounting. elc. which are handled by kernel submode programs. The ability of kernel submode programs to supply InformatlOfl which supervISOr submode programs can read but not alter allows portions of Ihe oper. atmg system to be hardware-protected from other portions undergoing ffiOdt. fica lions or design changes. Processor Modes Instructions on the KAtO are executed in one of two modes depending upon whether a mode bit has been set. Programs operate in either User Mode or Executive Mode. In Executive Mode operations, aU implemented instructions are legal, addresses are nol relocated, and all core locations are accessible. The Monitor operates in Executive Mode and is able to control all system resources and the state of the processor. In User Mode operations, addresses are relocated, certain instructions are illegal, causing monitor traps when executed, and address references are confined within two user program segments. The KilO and KL10 further divide Executive and User Mode operation into two submodes each. User Mode is subdivided into public and concealed submodes and Executive Mode into supervisor and kernel submodes. For each 512-word page in the system, information is stored in a table maintained by the operating system which specifies whether or not a page can be accessed or altered, and if it is defined to be public or concealed. KI10 AND KLI0 PROCESSOR MODES USER MODE Public Submode • User programs • 256K word address • AU instructions permitted unless they compromise integrity of system or other users • Can transfer to concealed submode only at entry points Concealed Submode • Proprietary programs • Can READ, WRITE, EXECUTE or TRANSFER to any location labeled Public EXECUTIVE MODE (Monttor, Supervisor Submode • Performs general management of system • Performs Ihose functions that affect only one user at a time • Executes in virtual address space labeled public • Kernel Submode • Performs 110 for system • Performs those functions that affect all users Real-time Clocks Fast Register Blocks General-purpose registers are a DECsystem-tO feature that help improve program execution. These sets of fast in tegrated circulI registers can be used as accumulators, index registers, and as memory locations Since they may be addressed as memory loeations, they do not require special Instructions. One set of 16 registers IS Included in the KAID, four sets of 16 fa st registers are Included In the KilO. and eight sets of 16 fast registers are Included In the Kll0 Context sWitching on the KAIO is performed by stormg the regis ter Informallon mto core lOCations. Program sWitching time l or the Kll0 between register slacks IS 500 nanoseconds On the KilO and KL 10. different regrster blocks can be used l or the operating system and IndlYldual users This eliminates the need for stOring regi ster contents when sWitching tram User Mode to Executive Mode _Also, a critical real time program IS able to maintain its own register block for handling data and Interrupt sequences at maximum speed. The OKtO Real-time Clock is available with each KAtD- or KilO-based DECsystem-tO and provides high-resolution timekeeping for time accounting, timebase maintenance, periodic high-fre quency interrupts, and interval timing . Meeting the most demanding real -lime requirements, the clock provides 10 ~sec resolution and a choice of up to 2111 possible liming intervals, so that interrupts can be programmed at intervals from to ~sec up to 2.6 seconds. In addition to an interval register, the OKlO has a frequency counter which counts the pulses of an internal 100 kHz ± O.OI clock, or an external clock having a maximum frequency of 400 kHz. The clock includes a comparator network which provides a running comparison between the frequency counter and the internal register. When the frequency counter reading equals the to tal on the internal register, a program interrupt is generated and the frequen cy counter is automatically reset so that it can time the next interval. The clock, which is assignable to any interrupt channel. can be used to pace real -time, monitor, or other functi ons performed in either Executive or User Modes. In fact, a KA 10 or KilO system can have two clocks-one for each mode-since two device codes are available for ctock use. Clock updating is interlocked with the DATAl instructions so that it can be read correctlyat any time-by the KA to or KilO without losing a clock pulse. 9 The four clocks built into the KL10 provide a number of timing and counting func tions including an interval timer. a time base, an accounting meter and a performance analysis counter. All of the operations on these clocks are accomplished by means of 110 instructions to internal devices. Many of these functions use a microsecond source of pulses which is counted down from the basic machine clock. The 0.005% tolerance will give less than five seconds drift over 24 hours. The Interval Timer provides a programmable source of interrupts with a I microsecond resolution and is similar to the OKlO real-timectock.1t is used for real -time appli.:.:ations and for page management by the Monitor. It is designed so that a real-time deadline schedule with varying deadlines can be implemented. The TIme Base provides a 6O-bit microsecond resolution source of elapsed time. This gives over a 9,140 year maximum time before wrap-around. The Accounting Meters provide an accurate and reproducible measure of the amount of processor resource used by a job, interrupts, page failures, and cache activity_ The Performance Analysis Counter provides a tool for studying hardware and software performance of the system. lt may be used to point to hardware and/or software bottlenecks. On the KA10, dual memory protection and relocation registers protect other users and the monitor from errors in the active user program. If a user attempts to reference memory outside his area, his program is stopped from operating and control is transmitted to the operating system. The feature also permits dynamic memory allocation, allowing each user program to be assigned either one or two segments of memory. One of these segments can be write-protected so as to protect critical programs or data from errors committed by the user. Segments-which are multiples or t024 words-may be located anywhere in memory and may contract and expand as needs dictate. Memory management techniques, employed by the Monitor, insure efficient memory usage. The division of programs into two segments also makes possible the reentrant or recursive use of language processors and systems programs. With the DECsystem-tO, all DIGITAL-supported language processors and most utility programs are reentrant. In other words, each program is written in two parts. One part contains pure or reentrant code that is not modified during execution so the same copy can be used to simUltaneously service any number of USers. A separate second part of the program belongs strictly to each user and consists of non-reentrant code and data. This section is stored in a separate area of core. This feature allows more users to utilize a given amount of physical core simultaneously. Alternatively, less core is required to service a given number of users. The result is much more efficient use of computing resources. The ability to divide programs into two segments is not limited to DIGITAlsupplied language processors and utilities. User-written programs, including those written in higher-level languages such as FORTRAN and COBOL, can also take advantage of this feature. Thus, user developed applications can benefit from the same efficient treatment given DIGITAL-supplied software. KI10 Processor Associative Memory £F~(tTIV( &IICJIIIUS • I • ~{ "-, • I " ~,~ I~( I I • • I I " KilO ASSOCIATIVE MEMORY KL10 Processor Page Addressing L • I • I • - " ,-, I I " I • • I KLlO PAGE ADDRESSING 10 The KilO and KlIO provide memory address mapping from the program's memory address space (referred to as the ellecllve address) to the physical memory address space by substitution of the mosl Significant bits of the memory address ThIs mappmg provIdes access to the enttre physical memory space whICh can be up to 16 tImes larger than the ma)umum user address space. The user's effective address space is 256K words addressed wIth IS-bIt addresses: the phYSIcal address space is 4.096K words addressed wIth 22-bit addresses (where 4.096K IS equIValent to 4,194,304 doornail The memory mapping process utilizes the most sIgnificant 9 bits of the effective address as an Index Into the appropria te page map (User or ExecutIVe) . Thedala located by Iheindex provides 13 blls whIch are appended to the least-significant 9 bIts of the effective address m order to form the 22-bit physical address Also provided are 3 bits whICh IndICate what type of memory requests are allowed to the page In QuestIOn (none, read-only. proprietary, elc.) If this scheme were implemented exactly as outlined abOve. every user memory reference would reqUIre two actual memory references one to obtain the memory mappmg data and one to obtain the user's mapped memory reference In order to reduce the number of actual memory references to nearly the same number as required by Ihe program, an assoda live memory mappIng unillS used In the KilO, while a copy of Ihe entIre page table is kept in the K110 hardware If the address is in the rang e 0-17 (oclal) inclusive, the hardware fast register blocks are referenced instead of the memory system. On the KilO, the User Mode bit and the high·ord er 9-bits of the virtual address are compared against the contents of the associative memory registers which are part of the memory mapping hardware. These 10bits will either exactly match one of the associative registers or a no-match occurs. On the KL10, the User Mode bit and the high-order 9-bits of the virtual address are used todo a "table look·up" in the hardware page table. On the KilO. if a match exists, the contents of the related register supply the 13-bit most-Significant portion of the physical memory address and also supply 3 bits which indicate what type of memory references are allowed to this page, i.e., if the memory request is not consistent with the request type allowed bits, a page failure occurs. On the KL10, if a page table entry exists, the contents of the entry supply the 13-bit most-significant portion of the physical memory address and also supply 3 bits which indicate what types of memory references are allowed to this page. For both the KilO and KL10. if the memory request is consistent with the request type allowed bits, the physical address used consists of the 13 bits from the related register as the most significant bits of the physical address and the 9 least significant bits of the effective address as the least significant bils of the physical address. When the relocation data for a refer· enced page does not exist in the associ· ative memory of the KilO. or the hardware page table of the KL10 (i.e., a no-match), the hardware reads the relocation data from the page table in memory and stores it into the associative memory of the KilO or the hardware page table of the KUO. The associative memory in the KilO has associated with it a reload counter that points to one of the 32 entries in the memory. 11 Any time a word of the associative memory of the KIlO is referenced and the reload counter is pointing at it, the reload counter is incremented to point at the next word in the KilO associative memory. Whenever it is necessary to load a new entry into the associative memory, the location repla ced is the one to which the reload counter points. Thus, at worst, a page which was just referenced would not have its word in the KilO associative memory replaced by the next memory reference. If a particular word in the KIlO associative memory has not been referenced in some time, the reload counter would be left pointing to this word, having been pushed away from all words in associative memory which have been used. Thus, a ,-bit approximation to "feastrecentIY'used" page table operation is obtained. The monitor assigns the core area for each user by loading the various page tables, setting up the trap locations in the user page map, and responding appropriately when a trap occurs. The Monitor provides memory protection for itself and each user by filling the page tables only with those entries which are allowed to be accessed. A zero access bit in the page table will cause a reference to the associated page to initiate a page failure trap to the Monitor. The TOPS-l0 Operating System utilizes the KIlO and KL10 in-core page maps to create one or two segment pf"Ograms in roughly the same fashion as it uses the protection and relocation registers of the KA 10. Themajorbenefits of the paging capability are a smaller unit of core allocation (512 words instead or 1024), the freedom to scatter the pages of a segment randomly through physical core (avoiding core fragmentation and the overhead of repacking core), and the opportunity to execute a program when all of its pages are not in physical core (I.e., a virtual memory capability). Memory Systems Cache Memory The KL10 features a cache or buffer memory with 160 nanosecond access time. Data being written to or read from memory is typically found in the cache 85 to 90 percent of the time, thus giving the Kll0 an effective memory access time of 334 nanoseconds with current DECsystem-l0 memories. Another feature of the Mstate-of-the·art~ design cache memory on the Kl10 is that it does nol require write-through to memory. This eliminates, for example. the necessity of writing back into main memory each value of an index in a loop comprised of only a few instructions. A cache sweep feature allows all pa~es or one selected physical page in main memory to be updated from the cache. To meet the requirements of large systems, DECsystem-l0 core memory can be modularly expanded to 256K wordsforKA10-basedsystemsor4.096K words for Kll0- and KL10-based systems. all directly addressable. Memory can consist of combinations in 64K. 128K and 256K word modules. The structure of the memory bus gives the central processor and high-speed data channels simultaneous access to separate memory modules and allows each to operate at its own speed. The MF10 provides up to 4 ports and the MG10 or MH10 up to 8 ports. Each port can be further expanded through the use of the MX10 memory multiplexer. The multiplexer handles up to eight channels, inter-leaving data from the channels on a word-by-word priority basis. Such parallel operation yields many improvements over systems which provide only a single path to memory. The memory bus station allows each data channel to transmit full 36-bit words in parallel at a speed of one million words per second. In total. the memory structure operates at rates of up to 10 million characters per second when 1/0 devices and processors are concurrently simultaneously transferring data. In addition. the memory bus is capable of handling a max imum of 16 memory modules. Eachmemory module provides switches which allow that particular module to represent any module of its size in the addressable memory space. Thus, one model can replace another without rewiring. The Switches also provide for memory Interleaving. The core memory systems available for the DECsystem-l0 are described in the memory table below. Interleaving The concept of interleaving has long been used to Increase the effectrve bandWidth of DECsystem' lO systems. On KA- and KI-based systems, successive memory locations were Iocared via memory addressing hardware, I~ alternating memory modules. Thus.the processor, when requesting successive logicallocalions, would nothavelo wall for the complete memory read/write cycle to be complete before affectmga fetch. The tirst memory module could be completing the wrrte cycle, while the second memory module could be ac· complishing a read cycle. The memory Implementation niques for the Kl dramatically extend this conc,-,pt. The memory bus architecture of the Kll0 differs from both the KAKl and the KIlO In that rtsWldth lS tour 36-bit words. That is, in an adequately configured memory system. the Kll0 actually reads or wntes four words concurrently from memory. The fout logically successive memory Ioca· tions (obtained from four physlCaly separate memory modules) are placed m the KL's cache memory, and In typical programs. another COfe memory reference need not be inJtlated untd!he four mstructions or data have been processed. Combined wIth the typical effects of the cache memory, therefore the KL has an effectIVe memory word access time of 334 nanoseconds, using current DIGITAL memory. teen· Cor. Memories Word Sole M,nlfnum Memory 5I.!:e Maxlf!lum Memory SIZe KAm KilO KLIO M HIO MGIO "'~ 36 boIS plus panty 36 bob plus PiI"~ J6 0tU pIIA pwIIy 32' 320< .,-, ' 096K '096K Module St.les 321( wo rds 641< words 1281< words 256K words Read Access Time No V" V" V,. TyDtCaI 7J5 MaxlfTlum Cycle Time Interleaving Minimum memo ry that can be disabled V" V,. V,. No 620 ns "'" ,.,,' 102.1<; Va Va No No '" 660M 550M 610nl ." 10, I 2ol .way 950M 201, .. il1 32' 1 24eC 2or.w,y 12 - """" """" Ext&rJI.r 0",," "" Priority Interrupt System The DECsystem-l0 Priority Interrupt System IS one of the most flexible avaIlable today. Oevices are assigned under program control to anyone of seven pnonty levels through the dynamIC Ioadmg of 8 3·bit regIster w ithin the devICe Each Interrupt level has any number of high-speed programmable sublevels Thus, a program can change the priOrity level of any device or disconnect the deVice hom the system and later reinstate it at any o ther level. In the same manner, a program can set. enable, or disable, all or any combinahon of levels with a single instruction. In addition, the program can assign some or all devices to the same level. A set of instructions (block-in and bIOCk-oU!) allow blocks o f Information 10 be transferred between a device and memory with a single instruc tion.These Instructions identify the source o f the Interrupt. update a word count and data address, transmit or receive the block or Informabon. and dismiss the Interrupt The system can also generat e interrupts through software Real-tIme hardware can thus operate on a high -priority level while related computations, particularly If they are length y, can be performed on a }ower level The DECsystem -1O program-assignable ptlonty Interrupt system prOVides much greater flelubillty than permanenUy hard-wifed systems Hard-wifed systems reqUire a large number of levels, often operate wi th an extremely high overhead, and canno t change dev.ce ptlorilles without system shutdown and rewlflng Multiplexed 1/0 Bus An interrupt on the Ki lO or KL10 can cause the processor and the interrupting device t o immediately initiate one of several possible actions. In response to the "interrupt grant" signal from the processor, the device may supply a 33-bit word which is decoded as 18 bits address, 12 bits data, 3 bits fun ction. The processor then does one of the following: • Executes the instruction found at the supplied 18-bit address (KI100rKl1O) • Transfers a word into or out of the addressed location (KItO or KL 10) • Adds a signed 1,-bit (12 bits+ + II bits) value to the addressed location (KL10 only) • Traps to a predefined memory location (KAIO) Peripheral devices which are not equipped with the decoding logic perform an interrupt and transfer of control, as on the KA 10, to one of the standard mterrupt trap locations. 13 The DECsystem-IO Multiplexed I/O Bus provides a 36-bit full word parallel path between memory and an 1/0 device for purposes of control or low-speed data transfer. To initiate high speed data transmission directly between memory and a device connected to the memory bus, a control word is first transferred over the 110 bus to the buffer of the high-speed device controiler. Then, on command, entire data blecks are moved directly to orfrom memory with a single instruction. (For a description of the memory bus, see the discussion of Memory Systems.) The I/O bus may also be used as a control and data path to/from a large number of tow-speed liD devices. Transfer is performed in 36-bi! words in parallel at speeds of 200K words/sec on the KA 10, and 370K words/sec on the Kll0and KL10. Thus each data transmission instruction moves one word of data between memory and the buffer of the device controller. When block input or output instructions are used, entire blocks of data are moved to or from the device with a single instruction. 10.40 1070 loao MASS8US CHANNEl AJiJ a:NrROl BlOCK DIAGRAM := Massbus The KL10 architecture and implementation now allow use of DIGITAL's lalest Massbus controllers, channels, and peripheral devices. Although, via mem ory bus and 110 bus logic, the KL10 supports traditional peripheral control units, the effi cient memory control unit provides paths and logic for transfers into and out of DECsystem-1090 memory. Virtual-ta-physical address translation is p erform ed by a 64 x 154-bit RAM. The memory control also includes a series of multiple word channel buffers for high-speed direct 110 over the channel bus to the individual Massbus devices. For each device, there is one RH20 channel containing a 16-word data buffer, a channel command word register, and a control word location pOinter -effectively a program coun t er. The channels perlorm data transf er by executing channel programs which are set up in memory by device service routines. A storage bus provides a 1.6 million w ords/second transfer bandwidth between the memory control unit and memory. In diagnostic mode, the storage bus is used to access the internal memory controllers. The channel bu s is a physically short, high-speed data transfer path providing a peak 110 bandwidth of six million wordslsecond between the memory control unit and the Massbus controllers. The channel bus o perates in a synch ronous tim e division multiplexed mode, allowing the connection of multiple controllers to memory. A high·speed data path (Mass bus) connects the integrated channel controllers and mass storage devices, such as disk or tape. Operating either asynchronously or synchronously, the Massbus transfers control and status information or blocks of data between devices and controllers, The UNIBUS, an integral part of the PDP-11 architecture, provides a data and status control path between the Front End Processor and the devices making up the PDP-" system, including the commu nications interlace and unit record 110 devices. I .. ,r-------MX-IO MEMORY MULTIPLEXER ...1.,, ________ - OfIO.DFIOC ~ MEMORY "" '" QA5JJ - 'H~ IF REOUIREO 1090 MASSSlIS CHANNEL CENTRAl PROCESSOR OM' 'H20 uP TO a I/OCHAMMEL CAPACITY DECsystem-l0SO and 1070 generation equipment implement high-speed data transfers from mass storage devices via a direct to memory channel using the DF10, DAS33 or DX10 channel and an appropriate controller. If the number of channels exceeds the available memory ports then an MXlO multiplexer can be used. In general. capacity is determined by the memory system word transfer rate capacity which will vary based on the type of memory used and the method of interleave. For current memories, four words can be transf erre d every microsecond in a four-way interleaved configuration. Conflict in memory port contention will reduce the effective word transler rate somewhat and can result in "overruns " which occur when a rotating mass storage device cannot execute a memory transfer in the required time. TOPS-l0 recovers from this situation and simply re tnes the transfer until it is completed. The DAS33 buffered channel will greatly reduce o r eliminate ·overrun" capacity loss. 14 The DECsystem-l090 can use either the direct to memory channels or the internal channels in the Kl10B Central Processor. Since the processor is con· figured on a lower memory pnorilyport than direct to memory channels ther elS no conflict between these devICes The KL 10 cache and internal butfenng further reduce any contention. The number of internal high-speed channels which can be operated Slmul· taneously depends on the data transfer capacity between the CPU and Memory. This, in turn, is a function 01 the memory Interleave method and corre· sponding number of data bosses Illplemented. The follOWing table sum· marizes this relationship based on RP04 or RPOO device transfer rates. Memory Interleave and K110 Bus Mode ~ 2151 6 Number of Channels Translernng Simultaneously This table presumes no ·overruns• Should these occur they would be handled by TOPS-lO In the same man· ner as direct to memory channels It should be noted that for typiCal data transfer rates of under 1000 blocks per second there IS no measurable confIICI between instruction executIOn and 110 transler One of the more significant features of the KL10 is the PDP-11-based Con· sole/Diagnostic Computer. The POP' 11 communicates with the KL10 through a DECsystem-l0/PDP-11 interface The interface allows data transfers between the POP-II and the KL10 to take place simultaneously. On the POP' II side the Interface, data has dIrect memory access over the PDP' lt UNIBUS in 8· or lG·bit bytes. On the KLIO side of the interface, data may eXISt In any size byte up to 36 bits in length The POP' 11 serves as the console device for the KL 10 processor and Includes a TU56 DECtape for loading and diagnosing the PDP-It and back-up for the RP04 which normally loads the KL10's micro-code memory An LA36 DECwriter-II provides operator/monitor communication As a dtagnosUc computer. the POP-II can examine the data paths and the conttollogic of the KL to vIa a separate dtagnostlc bus, even if the KL 10 is completely inoperatIve Other features of the dIagnostIC computer allow all data busses to be checked Remotediagnos, IK: checIung over telephOne connection can also be performed via the PDP-II computer The console/diagnostIC computer is a Slale-ot-the-art concept 10 provIde the DECsystem-l090 and DECsystem1099 With greatly improved mean'limebetween-faIlure and reduced meantlme'lo-repair The KLINIK diagnostic system permits remote diagnosis of system failures via the console/dIagnostIc computer 0' IS Power Fail If system power fails, a power failure detection circuit senses the condition and causes an Interrupt The interrupt can trigger the operation of a program which saves all valuable registers so that the system can be restarted in a minimum amount of time. On the KilO and Kll0 (through the PDP-l1 console computer) an automatic restart capability has been added to resume normal operations in the event of a power outage. All three phases of AC power are monitored. Low voltage on any phase will initiate a sequence of power-down operations. A program-selectable automatic restart capability is provided to allow resumption of operations when power relurns. Alternatively, a manual restart maybe used. Temperature sensors strategically placed within the equipment detect high temperature and low air flow conditions and cause power shutdown. This, in turn, initiates the power failure interrupt. Error Handling The TOPS-tO Monitor records errors that occur in the slave CPU (on a dual CPU system) or peripheral subsystems and notifies the operator If the error can be corrected then users affected simply continue running. Alternatively, the operator may request that the faulty device be detached 10 which case the user job will be notified and contInued or restarted as required. If the error detected is in memory then TOPS-10 wIll attempt to move Its own data, if any, out of the failing memory In the case of disks, the system will attempt to migrate any sWapping space to another unit to prevent loss of jobs. TOPS-tO also provides diagnostics to fa cilitate on-line maintenance of a particular devIce concurrent with user mode operation . 16 Dual CPU System Multiprocessor systems, built around all 01 DIGITAL's current CPU's, offer attractive. economical solutions needed for capacity and availability In these configurations. two processors divide responsibilities as master and slave The master runs the TOPS-tO operating system and handles all scheduling and 110 One processor can take over the other's role through the use of strateglcaUy-placed bus SWitchIng hardware. which allows peripheral deVICes to be under the con Irol of either processor If the master malfuncllons. the system stops and an operator can have It back mto action 10 under five minutes by reconflgurlng all 110 to the slave, whICh then becomes the maSler Users IUSI temporarily have somewhat less computing power to work With, but can stili gel thelf JObs done Mmutes after a CPU malfunction that could keep a Single system down for hours, the dual processor configuratIOn can be back In actIOn Redundant disks and communcatlOns subsystems can provide Increased capaclly while all components are fully operational and back-up 10 case an I$OOled controller or subsyslem malfunction 0' An extremely important and valuable side benefit of the redundant, switched configuration is system maintainability. Malfunctioning subsystems, (such as disk controllers, etc.) which require a CPU to fully diagnose, repair, and certify as operational, may be included in a -maintenance contigura tion ~ while the remaining components of the system conllnue with the production tasks. Users need not sutter from any lack of capability until scheduled main tenance activity or -non-prime time" allows the testing of the complete system. W hen the subsystem or component is released, fully tested, trom Field Service, a scheduled recontiguration (providing minimum impact on users) can be accomplished, providing full capability again. 17 Dual CPU/peripheral configurations can be initially installed or, through the addition of appropriate redundant system components and bus switching hard ware, can provide attractive upgrade/migration paths for existing systems. SYSTEM 1099 A K1108 FRON T 'NO 'H1O OTE * 'RP0416 l,-L=-.l ON 8 7S COMMUNICATIONS LINES ISYNC. AND ASYNC.) MONITOR MAGTAPE SYSTEM ON COMNUNICATIONS LINES 875 jSYNC AND ASYNC.) ...... ore -' / 'H2O ",aNT ' NO RECORD DEVICES jSWITCHA8LE) L--"':'~ID~''-J---_-:- UNIT A DUAL DECSYSTEM 1090 SYSTEM r--=====r--~~~_r=~I/~O~'~U~S~#~':::r::~--A LPT fRONT CDR ' ND 'H ~}----L-------r---.----~---r- ON 875 COMMUNICATIONS LINES ISYNC AND ASYNC.) MONITOR TAPE SYSTEM IUSED 8Y 80TH CPU'S) MCNnOR ~" LIN' ON 875 COMMUNCATION LNES jSYNC AND ASYNC) ore RH20 FRONT 'NO l___~__-=~~-,~'~/O~8U~S~"~'~::J:::~_ , A UNIT RECORD EQUIPMENT 18 There are four disk systems available on the DECsystem-l0. The RHS04 system is designed to provide the DECsystem-l0 with a fast -access, high transfer rate swapping system which greatly enhances system performance and load handling capability. The DECsystem10's three disk pack systems offer rapid access, on -line storage, and large capacities at low cost. Modularly expandable, a DECsystem-l0 allows up to four controllers each with eig ht drives giving a total capacity in excess of 6.3 billion ASCII characters. In addition tostorage, a disk system may be used as either the primary or secondary swapping system. The RTP06 is DIGITAL's newest disk system. It operates through a controller which transfers data directly to and from memory via the KL10 internal channels. Since the controller provides overlapped positioner operation, the TOPS-l0 operating system will simultaneously position two or more disk drives, shortening the effective access time and increasing throughput. Each RP04 or RP06 drive configuration can have an optional dual Mass Bus· channel connection which allows access and data transfer via two paths for each individual drive. The RH04 and RP06 offer a high level of data reliability. A phase locked loop clock system and MFM (modified frequency modulation) recording provide the latest in reliable reading and recording techniques. In addition, error detection and correction hardware provides information as to the position and pattern of any error burst up to 11 bits within the data field. Correction of any data field errors is then accomplished under TOPS-10 software control. 20 Disks DISk Drive Capacity (m words) Transfer Rale I/Js/word) Access Time (msec) Track-Io-track Average Maximum Organizallon , words/seclor sectors/track tracks/cylinder cylinders/pack Number of Heads Number of Recording Surfaces Number of Disks Number of OnvesfControlier Number of OrivesfSystem Maximum Slorage/System (b ASCII Chrs) RP03 RP04 RP06 RSo. 10.24 20.48 40.96 .256 15 5.6 5.6 4.0 7.5 30 7 28 50 10 28 55 0 8.5 8.5 128 20 128 20 128 411 " 815 " " 12 " 55 128 10 20 400 20 20 11 8 32 ,. 1.96 21 64 64 64 19 12 8 32 8 32 1 1 8 16 3.19 6.30 .004 __ ----------------------~c The DAS33 is intended to replace DF10 data channels in large DECsystem-10 configurations containing many high-speed peripherals where memory transfer throughout is a critical consideration in a peak memory contention environment. • Hardware and software compatible with the standard Data Channels. • 256-word data channel buffer reduces memory contention for highspeed, direct-Io-memory peripherals, increasing memory transfer throughput. • Control word and data word ~Iook' ahead" logic • 22-bit memory addressing (four million words of 36-bit memory) The DAS33 has been developed by the Advanced Systems Group to reduce peak memory contenllon and to increase memory transfer throughput for the new generation of hIgh-speed peripherals such as swapping disk pack systems. It is fully hardware and software compatible with the existing data channels. By incorporating a 256word buffer (equivalent to two disk sectors). block transfers are averaged over available memory bandwidth. This results in a minimization of memory contention during peak memory trans fer and an increase in usable memory transfer throughput for high -speed peripherals. Throughput Is further enhanced by the ~Iook-ahead~ feature for control and data words. 22 The DAS33 is recommended 104' large DECsystem-10 configuraoons havIng swapping and disk pack suit systems. By minimizing memory contentIon (wIth the two-disk sectorbufferl and by providing control and data w()f1( "Iook-ahead~. the OAS33 will rocr~t: the system memory throughpu • Its 22' from these high-speed deviCeS. bit-wide memory addressing but ~ abies JlD controllers to address up 0 four million (36-M) words of me~o~ The DAS33 includes its own 19'1OC cabinet and memory bus cables. ~ne OAS33 is needed for each contro er. l Digital Equipment Corporation's popular computer data storage medium, DECtape, is available in a duaHransport verSIOn This fixed-address, bi-dlrecbonal magnetic tape storage system provides random access for highspeed reading or Wrillng of files on 260 fOOl reels of ¥. -Inch-wlde magnetic tape contained on a reetless than four InChes In diameter Redundant record ing (each bit of data is recorded on two separate tracks) assures high reliability and eliminates the need for character panty checIong. tn addloon, block check summing Insures data Integflty DECtape does not reqUire the rewind and count record operations or the WrltIn9 of separate header records typical of ordinary magnetic tapes The high rehablhty and convenient size make DECtape the ideal medium for program storing and transportation 23 OJ DIGITAL provides a complete range of magnetic tape systems from the lowcost THU16 to the mid-range TU7QI TU71, to the high-performance TU72. The THU16 subsystem provides 200, 556,800 bpi (NRZI) and 1600 (Phase Encoded-PEl capability at low cost. With a tape speed of 45 ips, these transports exhibit a 12K character per second maximum transfer speed. For systems with moderate duty requirements, the THU1 6 is an excellent price/performance choice. The TU7D series of high-speed magnetic tape drives represents the lalest state-of-the-art des ign in tape t ransport technology. The TU7a provides 800 bpi (NRZI) and 1600 bpi (PE) capability at 200 ips, resulting in a maximum transfer rate of 320K characters per second. The TU7l provides 7 -track capability at 220/5561 800 bpi (NRZI) al200 ips for a maximum transfer rate of lOOK characters per second. For very high performance systems DIGITAL offers the TU72, providing faster processing, fewer tapes, faster dum ps, and improved error handling for DEC-1O sites. This 6250 bpi drive provides 3 to 1 recording density compression of an eq uivalent 1600 bpi drive. Using the Group Coded Recording (GCR) t~chnique the hig her density provides more capacit y per tape, higher data rates and b etter error correction. Magnetic Tape Systems The TU7D-series drives incorporate such features as automatic threading and loading of 5-. Blt'.!- and lDlh-inch reels as well as industry-standard cartridges. Dynamic amplitude control during read operations improves performance during 1600 bpi operations by reducing read /write errors, avoids the need for preamplifier adjustments, and allows optimum performance w ith different tape brands on the same drive. All TU7D tape drives are equipped with an automatic reel hub to speed and ease tape loading and alleviate reel slippage. An analog capstan control provides constant motor drive control during read/write and rewind for smoother operation and greater drive-to drive compatibility, while a velocity feedback reel control provides for protection and velocity sensing of the tape loop in the vacuum columns to minimize reel overspeed; this prevents tape matching , results in longer tape file, and greater ma chine reliability. A linear high-speed rewind mechanism reduces rewind time and lessens stress on the reel drive system resulting in smoother operation. A tap e storage pocket is provided for convenience. 24 The controller handles up to 8 tape drives and providesdlrectaccesstolhe OECsystem -1D memory via an 1f'I~e grated data channel. The controller 1'1eludes such features as Improved phase-encoded and group coded recordmg error correctIOn technIQUes for fewer permanent and temporary read errors A read-only memory control for mcorporalJon m microprogram dl&\lnos tiCS, monolithic MSI deSign, f~ greater reliability, loadable in-line mIcroprogram diagnost)cs, programmable maintenance memory, adjust· ment-free read detection, and a radJ8: interface which allows each indlvldua drive to be maintained or physlC8l1y removed without effecting the operation of other units. II I III fI! TU7QITU72 Magnetic Tape Tape Speed Transfer Rate at 200 bpi 556 bpi 800 bpi 1600 bpi 6250 bpi Recording Technique Nominal Inter-record Gap 9-track 7-track Rewind Time (2400 ft) TU70 200 ips TU l 0W TU 16 45 IPS 45 ips 9 K char/sec 25 K char/sec 36 K char/sec 9 K char/sec 25 K char/sec 36 K char/sec 72 K char/sec 160 K char/sec 320 K char/sec NRZI PE/NRZI PElNRZI 06 inches 0.5 inches 0.6 inches 0.75 inches 195 seconds 3 min utes 45 seconds 25 TU71 200 ips TU72 125 ips 40 K c har/sec 11 1.2 K c har/sec 160 K char/sec NRZI 200 K char/sec 780 K char/sec PE/GCR 0.3 inches 0.75 in ches 45 seco nds 55 seconds Line Printers Card Readers Designed to meet varying throughput requ irements and provide quiet, reliable trouble-free operation, the CR10 card readers accept 8O-column EJA-ANSI standard cards. For fast throughput, the user can choose the console model CRlO-E which pro- cesses 1200 cards per minute or the table model CR10-D which processes 1000 cards perminute. The CAtO-F card reader is a lower-cost table model which operates at 300 cards per minute, but utilizes the same excellent features as the high-throughput model. The LPlO-F and lP1Q-H are drum type line printers deSigned with emphasis on output quality and operatmg reli ability. The two-speed capability of the 64-character LP1Q-F and the 96-char- acter LP1D-H increases the printing quality for both low-speed operation and multi-part forms handling. The LPlQ-F operates at 1250 or 925 lines per minute and the LP1Q-H al925 or 675 lines per minute. Both line printers featu re optical vertical format unit using 12-channel tape, and a quick-change drum whic h allows the character set to be c hanged in just 5 minutes. Both printers are available with either an EDP or Scientific character set for the quickchange drum . 26 For user sites requiring high-grade print quality, flexibIlity of pnnllng fonts. heavy print volumes and high rebabllty from a horizontal font-mobon linepnnlel, DIGITAL offers the LP100. ThelP100,an Impac t printer usmg a Chara band~ available w ith a 64-characterEDPctlaracter set font on one side of the band and a 96 character seton the other The Charaband· can be reversed by the operator in about one minute. The lPl00 stores a stream of uplO132 characters In a print line buffer and upon command prints the contents of tne buffer and advances the forms as specified. • "'rademark of Dataproducts CorporatiOn Une Printers PRINTERS TYPE LPlD-F lP1o-H LPlOO impact impact impact MAXIMUM MAXIMUM PRINT SET COLUMN " CHARACTERS SPEED LINES/MINUTE WIDTH 64 96 64/96 1250/925 925/675 1200/900 27 132 132 132 PAPER II PARTS TYPE OF PAPER FORMS std. std. std. 6 6 6 Each DECsystem-10 is capable of supporting up to 512 interactive terminals. A wide variety of EIAand 20 mA Current Loop compatible terminals is supported by the DECsystem-l0. The LA36 OECwriter II is designed to be industry's lowest-priced, best performing, most reliable 3O-cps impact teleprinter. DECwriter II is packed with capability: it's fast-a true 3O-cps machine; it's qUiet-you'll almost forget it's there; it has many people-oriented design considerations you wouldn't expect in a cost-conscious product ; it's versatile -you can use 6-part forms and even standard 132-column line printer paper; and it's built for a long, reliable li'etime of heavy use. The LA35 Receive Only terminal is an LA36 without the input key board_ The LA37 APl terminal is really three terminals in one. II provides the user with the choice of either full APL. full upperllower case ASCII, or upper case TIY in one reliable, easy-la-use hardcopy terminal. 28 The LA 180 OECprinler I is an inexpensive 7x7 dot matnx 132 column pnnter that prints at 180 characters per second. It features the 128 character ASCII upperlower case print sel an exlenSlVe array of human engineering features, and may be used either locally or as a remote prmter hard copy unit. The OECpnnter I extends the fieldproven technology of the LA36 DECw(lier II into applications demanding higher speed capabilities. Hardcopy Terminal. CHARACTERISTICS LA35 RECEIVE ONLY LA36 LA37APL LAl80 RECEIVE ONLY Pnnlspeed (charsJsec.) 10/15/30 10115130 10/15/30 up 10 180 Pnnt positions per ~ne 132 132 132 132 (with 133 bit buffer) Characler sel 96 ASCII upperl lower case 96 ASCII upperl lower case Full APL; Full ASCII upper case TIY 128 ASCII upperl lower case Character formaoon 7'11.7 dot maim: 7'11.7 dot matrix 7x7 do t matrix 7x7 dot matrix Inlerfaces 20mA standard; EIAophonal 20mA standard; EIA optional 20mA standard ; EIA optional Parallel ·01 COPieS Original +6 Original +6 Original +6 Original +5 Purpose of Unit A hardcopy output device (e.g . CRT display attachment) Interactive hard copy terminal APL Terminal A medium-speed hard copy unit Comments Basically an LA36 Without keyboard Prices include controllerI interface to attach to PDP-B or PDP-l1 29 DECscopes-DIGITAL's VT50 series of character oriented video terminalseliminate the need for electromechanical devices. They are all simple foroperators to master, quieter than mechanical terminals, and inexpensive. The three models-VTSO, VTSOH, and VT52 -differ only in advanced application features. The VT61 is the first DECscope that can transmit in either block or character mode. It offers over 80 commands, including character and line insertion and deletion, text justification, reverse video and protected forms, and a number of other editing features not found on the VT50 and VT52 DECscopes. The VT61 is an upper and lower case ASCII video terminal with a 1920 character display and 19-key function pad. However, the VT61 uses a faster microprocessor with larger memory than do the other DECscope models, so it can offer more stand-alone capabilities. 30 CRT DiapYy Terminal. Yr52 Vf61 12x80 (960 chars.) 8Ox24 (1920 chars.) 24x80 (1920 chars.) 5,7 5,7 7,7 7,8 64 ASCII upper case 64 ASCII upper case 96 ASCII upper/ lower case 128 char, upper/lower Character set Keyboard Standard typewriter Standard typewriter plus 19-key pad (10 numeric, enter, period & 3 unlabeled function keys) Standard typewriter plus 19-key pad (10 numeric, enter, 4 censor, period & 3 unlabeled function keys) DEC standard + 19key pad + 12 user defined keys CommunICatIOns Itlterface 20 rnA std. EIA optIOnal 20 rnA std., EIA optional 20 rnA or EIA standard 20 rnA std., EIA optional 75·9600 75·9600 75·9600 75-9600 Data rales (bps) Editing capabilities -Etaseto end of hne -Erase to end 01 yes yes yes yes yes yes yes yes no no yes yes yes yes yes CHARACTERlSTICS VfSO YrSOH Screen formal (lines and charsJhne) 12x80 (960 chars.) Character matnx saeen -Downward scroll -Upward scroll -Insert/delete character -Insert/delete hne yes yes no no no no no no Cursor control Cursor movement via ESCAPE sequences Direct cursor addressing Direct cursor addressing plus cursor keys OpllOnal features No optional attachments No optional attachments Electrostatic copier, LA35RO 31 yes Direct cursor addressing LA35 LAI80 202T modem interface Asynchronous Communications Asynchronous communications equipment, with associated terminals, serve a broad spectrum of user needs within the DECsystem-l0 interactive environment. These needs include interactive program development, operator control of the system, program production and control, data entry, program and data preparation, interactive problem solving, student instruction. and information storage and retrieval. to name a few. Asynchronous communications is used to link the DECsystem-1O with terminal equipment of three types: hard copy, such as the LA37 or LA36 DECwriters, CRT terminals such as the VT52 DECscope. and buffered terminals. such as the new VTSI. Local terminals within 1500 feet of the computer site can be connected over dedicated hard-wired lines. Remote terminals located beyond this distance are connected over dedicated or dial-up telephone lines. Speeds of asynchronous hard-copy terminal equipment generally range from 10 to 30 characters per second. CRT terminals range in speed from 10 to 960 characters per second, depending upon their communications interface and type of line used for transmission. The goal of an interactive terminal system is to match all users to the system in such a way that they feel the terminal is identified closely With the computer. In this way, the machine becomes an easy and natural extension of each applicaUon. To do this, the computer must be a willing partner In the interchang e so that the user feels that he is in con trol of the terminal. and not the reverse. TypicallY,a usertypesinput sporadically, occasionally makes mistakes, and re ads fast on output. The Data Communications system for the DECsystem-l0 has been engineered to deal with these user characteri stics. The system, which includes hardware and software elements, accepts characters at uneven rates, allows for single character or line correction of mIStakes, and allows the user to type at his own speed-even typing ahead of the computer's response to his characters When users are entenng large volumes of data and need no prompting. the system accumulates data and antiCipates ongOing entries so that the user can con tinue to type despite fluctuations In the system's re sponse. Features of DECsystem-tO asynchronous communications include the ablhty to delete one or more characters, delete entire lines, retype lines and characters, interact on a character or complete hne basis (depending upon the application), suppress unwanted output, and make use of prompting messages to call for input. Terminals may communicate With the system administrator or operator at the central or remote sites as w ell as with other terminals. 34 Synchronous Communications DECsystem-1O synchronous com· municatlOns provides error·free, hlQh· speed paths between the central com· puter and remote stations or other computer systems. DECsystem-l0 synchronous equipment controls trallSmission over high-speed synchrOOOlJs hnes. ThiS transmission isonamessage basIs In contrast With the character-bycharacter baSIS of lower-speed. asynchronous transmissIOn. Full duplex protocol software SUp' plied With the OECsystem-l0 makes efficient use of hlQh-speed tJansml$SlOll In both directions simultaneously on a full-duplex hne. Front end hardwareand software handles hardware control. message formatting, and message acknowledgements. The data transm~ IS "plpellned", a technique whICh Ill' creases line efficiency by fully overlapPing the acknowledge-conbnue Sl9na1s. TransmiSSion errors are detect~ uSing block-Qnented techniqueS In· cluding longitudinal data checks. Data errors are corrected through retrall Sk Hard-d mission of the erroneous bloc· ware is available to interface to a brOS range of communications moderns. Synchronous vs. Asynchronous Transmission Asynchronoos transmiSSIOn IS employed 10 transmit data on a characterby-eharacter baSIS; synchronous trans- mISSIOn IS preferred for mOYlng large tb:ks of data. Asynchronous transmisSIOn, at 2400baud, Is limited to conveyngnomorelhan240etghl-brtcharacters per second, synchronous transmISSIOn al 2400 bltsJsecond. can convey etght~ characters per second This drtIerence comes about because synchronous transmISsion uses Independ- 30Ci en~ bIock'oflented clock synchronization , wh'lI e asynchronous transmission re-establlshes its character-orlented dock synchrOnization With each char:~Ier Thus, In the asynchronous case, ch eight-bit character requires minimally• one start bit and one stop • bit. The most important distinction between asynchronous and synchronous methods of transmitting data is the means of error detection and recovery. Error detection for asynchronous devices is normally accomplished by insertion of a parity bit into the data field of each character transmitted. Halfduplex (local character echo) receivers will typically check this parity bit and nobfy the sender of the eXistence of an error. In full-duplex systems, such as the oECsystem-l0, the character echo is generally provided by the communications computer (oNB7, oAS80, etc.) to which the user is immediately attached. In thiS case, transmission error detection and corrective action are thus the responsibility of the sender, whO simply compares what was sent With what the computer says it received. The communications computer which echoes the character to the user then guarantees that it will deliver that character, without error, thrOugh the network, to the appropriate oECsystem-l0 host. 35 This mode of error detection is highly efficient and fully acceptable for interactive, terminal-oriented systems, but is less efficient and less than acceptable for message-oriented com m unications with other computers. Synchronous communication normally uses a blockoriented error detection technique, such as the Cyclic Redundancy Check (CRC-tS) polynomial. This technique is most efficient for block-oriented data transmission and for this reason, communications with remote computers is accomplished using synchronous data transmission. Remote Communications Prior to the current fine of OECsystem10 remote communications products, each remote user had been individually linked to the computer center by separate long-distance telephone lines. The only device that the remote user had available at his location was the terminal; he was able to utilize available devices at the central station, but he could not obtain output other than his terminal output at the remote site. Either the user had to travel to the central station to obtain a listing, or he had to have the listings delivered to him. However, with remote communications hardware and software, listing files and data can be sent via a single synchronous full duplex line to a small remote computer. That remote computer in turn services many remote peripherals, including terminals, card readers and line printers. This eliminates the need for the user to travel to the central site to obtain his output. The remote computer and its associated peripherals constitute a remote station. Remote station use of the central computer is essentially the same as local use. All sharable programs and peripherals available to local users at the central computer station are also available to remote users. The remote user specifies the resources he wants to use and, if available, these resources are then allocated in the same manner as to a local user. In addItion to utilizing the peripherals at the central station, the remote user can access devices located at his station or at another remote station. Local users at the central station can also make use of the penph erals at remote stations. Therefore, by specifying a station number in appropriate commands to the operatIng system, each user of the DECsystem-l0 IS given considerable flexibility in allocatlng system facilities and In directmg Input and output to the station or DECsystem-l0 of his choice. 36 The DECsystem-1O allows for sImultaneous operation 01 multiple remole stations. Software provisIOns are 11lCOfporated in the operating system to d~ ferentlate one remote station from another. By utilizing peripheral devICeS al various statIOns, the user IS provided With Increased capabilities. For example, data can be collected from vanous remote stations, compiled and processed at the central station. and then the realts of the processing can be sent to aI contributors of the data. Complex Topologies This is the name given to a group of general network building capabilities which, when put together. allow the user to make many different cost, performance and high availability tradeoffs so that his network may be configured In a way which IS very much optimized for him and therefore very favorable to his environment. These building block capabilities are : Route-thru This is the ability lor 8 Remote Station to send information to a DECsystem-l0, via the Universal Front End, to which it is only indirectly attached - i.e., indirectly through another Remote Station Of Universal Front End. This is most easily Illustrated In the following picture: ~ Topologies The most basic network topology is It IS ~1-I01>Otnt. or star topology --... . iustrated by the folowlng diagram • , E_ . .n 1 - ~ .. ,- -.." " E ~ Information flows from A to C only by being routed through B. This is a very useful price performance trade-off since the cost of a communications line from A to B and from B to C may be substantially cheaper than Ihe cost of lines fr om Ala C and from B to C. 37 Multi-pathlng This is the ability to have more than one path between nodes in the network. In general, these links are automatically load leveled depending upon the relative speed and error rate of the lines. This is best illustrated by the fol· lowing diagram: IXCsystem-1O A ON" j , - 0"'" F lP c~ r ~al ~ DN87S ": c ""'" = /, '''''' r"c, The two links between A and B will be automatically load leveled with data flowing through each link. This may be a desirable configuration for high availability systems with, for example, one link via microwave and one by ground link. This would allow degraded operation if either link went out for any reason. There are also two routes from 0 to A. The direct link could be a high speed link, while the link routed through C could be lower speed and used as hot backup to the direct link. Again, both of these configu rations have desirable benefits that the user, in building his network, can pick and choose from depending upon his specific needs and desires. The ability exists to pick and choose rather than having a very rigid set of network configuration rules. Multiple Host Support If there is morethan one DECsystem10 in a network, the Universal Front Ends on the DECsystem-10s may be hooked up to each other via a synchronous link, or the Remote Stations may be hooked up to each Universal Front End. This allows Teletype users anywhere in the network to select on an individual basis, before they LOGIN, which DECsystem-10 they wish to LOGIN to. This is accomplished by means of the SET HOST command. Dynamic Topology This feature allows individual nodes in a network to go down or come up without affecting the remainder of the network. The exact implications of an individual node going down depend on the type of node and its network functions, but any new node may be added to the network dynamically. Task·to·Task Communication DECneHO provides the capability to have tasks or jobs in dIfferent and geographically removed processors communicate with each other in a straightforward manner. These Jobs appear to each other as mere 110 devices much like a magtape. Jobs in different DECsystem-lOs may communicate WIth each other, or DECsyslem -l0Jobs may communicate with other DECnet systems, such as RT-11, ASTS, RSX-l1 M, D, & S, lAS, and ATS-8 when they are equipped with DECnet software. This interprocessor commUnication allows only for jobs to talk to each other, not for terminal concentration. It does not directly allow for remote file access, remote device access or program sharing. It does, though, present a mechanism or a building block which could be used to provide those features. 38 IBM Device Emulation and Termination Through the use otl8M deviCe emit" latlon the DECsystem-l0 can be a.l· tached to an IBM 36OI370compulerV18 a synchronous link.. The DECsystem-10 will be treated by the IBM system as drt were an IBM 2780 or 3780 or HAS~ multHeavlng remole statIOn. This tacitates job submiSSIOns and liIetransfers back and forth between the twO com' puter systems. Through IBM devICe lermin91JOtllBM 2780's, and HASP multHeavmg Vo'O~ statk>ns can be used as Remote J · bS 11110 Entry statJons to enter bale h jO the DECsystem-l0: batch .lObS may: placed in the card reader 01 the 27 3780 or HASP work statIOn. read .,to d ndhaVe the DECsystem-l0, eICecute a 3700 their output returned to the 2780. or HASP work stallon hne ponler DM87/DM87S Universal Synchronous! Asynchronous Front End Subsystem The DECsystem-l0 data communi- caoons products are based on the DN87 Unl\'ersaI Synchronous/Asynclvonous Communications Front End Subsystem The ON87 IS conftgurable nasynchronous only mode (up to 112 asynchronous Imes). synchronous only mode (up to 12 synchronous hnes) or ""lth a mIxture of synchronous and asynchronous bnes In the same DN87 These three modes allow the DN87 10 be configured very cosl effectIvely In a wide vanely 01 customer specific conliguratlons This greal lIexlbdlty is the essence 01 the DN87 Communications Subsystem The DN87 is capable 01 synchronous oommunicabon WIth the DAS80 series Remote Stallons. the DAS92 Remote StatiOn and the DC72NP Remote Station. ThesealowRemoleJobEntry, Remote ConcentratIOn 01 Interactive Teletype lines or a comblOa!)on of the two The DNa7 WIth these Remote StallOns supports complex topologIes such as multt-pathang, route-Ihru, and multIple host support WIth DECnet-IO. It IS pos$tie 10 t\ave a DECsystem-IO commu' IllCate 'NItti any DECne! system-for example RSX-l1M, RSX -l1D, RSX-1IS. ~, RT-Il , RSTSIE. RTS-8, OECsystemor OECSVSTEM -20 If equipped ""Ilb DECnet software The ON87S has the same funcllon ably as aDN87 excepl that It is attached 10 the DECsystem -IO vIa the OTE1D IOletface rather than Ihe OLtO Up to ~~ee ON87S's may be attached to the EIO Interface The DN87 and the DN87S reqUIre TOPS-IO versIOn 603 or later mORllor release Asynchronous FuncUonatity On an eight-line group basis, the ON87187S is capable of terminating 20 mA current loop, local EtA or EtA with full modem control type of asynchronous linelterminal interfaces. On an indIVidual line basis the oN87/87S asynchronous lines can be : • ASCII Teletype-compatible code or 2741 EBCD or Correspondence Code. • Full duplex WIth echoplex (i.e. echo generated by computer) or lullduplex With local copy (simu lated hatf-duplex). • Program selectable hne speeds of from 50 through 9600 baud. • Split transmiureceive speed s. • Automatically baud rate detected for 110, 134.5, 150and 300 baud lines. Some off-loading of the DECsystem10 host is accomplished. in that the DN87/87S does the majority of the echoing for asynchronous lines. It does nol echo special characters, nor does it echo when the user Is in character-ata-time mode (e.g .• OoT - when an individual character can be a command). The DN87187S also does fill character generation. 39 Synchronous Functionality The DN87/87S is capable of terminating EtA and/or current-loop type synchronous links. The line speeds may be 2400, 4800,7200, 9600, 19.2K, 38.4K or 40.8K baud on an individual line basis. These links operate only in full-duplex with simultaneous bidirectional trans' mission. The synchronous links use ODCMP protocol for error checking and correction and for poinHo-point link control. These synchronous links communi· cate only with the DC72NPRemoteStation (DC72NP is a software only upgrade of the DC71 or DC72) , the DAS80 Series Remote Stations, the OAS92 Remote Station or another DN87/87S. On an individual synchronous line basis the DN87/87S can also comm un icate on a task to task basis with systems running DEC net software. Q Options List The DN8? is the Universal Synchronous/Asynchronous Front End CommUnications Subsystem. Software to provide complex topology support is included with the DNa? The DN8? requires the addition of DNB1-xx synchronous and/or asynchronous line options. ON87-DA, DB -DNB7 including D110-C port only. Requires D110-A with available port. Note that this is what would be ordered with a 1080 or 1060 System Package, which includes a DUO. DN87-AA , AB -DNB7 including Dll0-A Communications Interface and one DL 10-C port. DN87S-AA, AB -DNB7 with interface. OTEIO ASYNCHRONOUS LINE OPTIONS DNB1 -EA, EB -Asynchronous Expansion Cabinet including one ONB1 -EC 16-Line Asynchronous Expansion Group. Requires two ONB1 -Fx 8-Llne Terminator Groups to activate the Imes ON8l -EC, ED -Asynchronous 16-Lme Expansion Group This reqUires two DNB1-Fx 8-Une Termmators to activate the lines. ON8l -FA -B-Llne Terminators each with 20 mA Current Loop Local Interfaces. ON8l -FB -B-Llne Terminators with EIA Local Interlaces each ON81-FC -B-Llne Terminators each with EIA Full Modem Control Interfaces ON81 -FD -B-Llne Terminators with Integral Auto Answer Modems (These modems reqUire customer supplied DAA'S). 40 SYNCHRONOUS UNE OPTIONS ON81-EE, EF-SynchronouS ExpansiOn Cabinet Includes one ON81+1 ON81-H -Synchronoos line controller Expansion Line For data transm: _ speeds of up to IOKbaudandfora men! to EIA RS232C compatible m0dems oIIef ON 81-J -Synchronous line ~:rup 10 For data transmISSIOn speeds It 303. 408K baud and for attach men 0 type current mode modems . ns are such NOTE · Option destgnatlO the lOnS • deslgnal that if there are two nd is first is 115V/60Hz and the seeo tjO(I 230V/SOHz. lf there i~ onJ.y a ~;~wer designation that option IS N dependenl H.rdw.re Configuration Guidelines ApIctonal representation of the DN87 cabinet arrangements should help to Simplify the explanation 01 the configurabon rules DUQ-A A synchronous Conflguratton Rules • The DN87cabinet(DN87-AorDN87D) has no available mounting space for asynchronous lines. • If any asynchronous lines are required a DN81-EA Asynchronous Expansion Cabinet must be ordered. This cabinet includes one DN81-EC Asynchronous lS-Une Expansion Group and has available mounting space for up to three additional DN81-EC units. Therefore, the DN81EA is capable of containing up to 64 asynchronous lines. • A maximum of two DN81-EA Asynchronous Expansion Cabi nets are permitted per DN87. • Each DN81-EC Asynchronous t6Line unit requires two DN81 -Fx (FA, FB, FC or FD) 8-Line Terminators to activate the lines. DN87-D or DN87S INCLUDES PDP-11I40 16K MEMORY (DN87),32K MEMORY (DN87S) AND INTERFACE PORT AVAJLABLE MOUNTING SPACE FOR UP TO 4 DN8t-H/J SYNC LINE UNITS DN81 -EA DN81-EE INCLUDES ONE DN81-EC 16-L1NE ASYNC. EXPAN . UNIT INCLUDES ONE DN81-H SYNC. LINE UNIT AVAILABLE MOUNTING SPACE FOR UPT03 ADD ITIONAL DN81 -EC AVAILABLE MOUNTING SPACE FOR UPTO 7 ADDITIONAL DN81-H " - - - - -V-- - - - - - ) DN87-A LINE MAXIMUMS PER DN87/ DN87S Max. No of Svnc . Lines Max. No. of Asvnc. Lines o 112 64 32 4 8 o 12 • Proper number of async hrOnous lines are made up using the Asynchronous Configuration Rules from above. • Proper number of synchrOnous lines are made up using the Synch ronouS Configuration Rules from above. 41 Synchronous Configurations Rules • The DN87 cabinet (DN87-A or DN87-D) has available mounting space for up to four DN8t-H/J synchronous line units. • If more than four Synchronous Line Units are required a DN81-EE Synchronous Expansion Cabinet must be ordered. This cabinet includes one DN81-H Synchronous Line Unit. and available mounting space for up to seven additional DN81-H units. Complex Topologies Complex topologies are available to all DECsystem-10s using the DASao Series Remote Stations and the ONS7 Front End (includes OC75NP and OASaS) with the 6.03 version of TOPS10. This means that route-through, multpathing, multiple host Support and dynamic topologies (SET HOST monitor cOmmand) are all a standard part of the 6.03 monitor a nd availa bla to those who have the appropriate communications hardware and software configurations. Oll"l,tal Network Architecture, .imPIe',," lopermented across a wide range 0 . ec allng systems and hardware areM ; tures, enables users to build a vanetyO DECna-1O DEene! is the set of software products which extend various DIGITAL operat- ing systems so they may be intercon nected with each other to form computer networks. The DEene! user can configure a variety of networks, satisfy' ing a variety of constraints, by choosing the appropriate CPU's, line interfaces (and speeds) and operating systems software, 42 networks, essor OECnet-tO provides interproc th task-to-task communications IO~om~ OECsystem-l0. Thus users may . baSIS munlcate on a program I0 pr ogram thrOugh with any other DEenet system d ' 'II inclu the ON87 Iront end. This WI RT-tte RSX-ltS, RSX-tlM, RSX-l1D, lAS, RSTS, RTS-8, DECSYSTEM-20 other OECsystem-10s. and DAS80Series Remote Station The oASSO Senes Remote Stations are a famity of remole stations with a wide range 01 functionahty The DAS80 is a Remote Job Entry Sl ation with a lX)cprn card Reader, a 300 Ipm Lme Pm!efandanLA36Console TheDAS81 is a Remote Concentrator capable of concentrating up to 32 asynchronous lines.The OAS82Is acombine lion 01the DAS80and DAS81.lacllltatlng both AJE Md Remote Concentration WIlen ~nked to a ON87/0N87S Uni- versal Front End the DASSO Series Remote StatIOns wIn support complex topolOgieS such as route-thru. multipatluog,aod multiple host support Asynchronous Functionality The asynch ronous terminal lines altached to the DASSO Series Remotes have the same functionality as the asynchronous lines attached directly to the DN871DN87S. Synchronous Functionality The synchronous line is used as a full duplex dedicated line to anyone of a DC75NP, DAS850r DN87/ DN87S DECsystem -lO Front Ends. The OAS80 Series Remote Stations are all downline loada ble from the OECsystem-l0 through the synchronous link. Unit Record Devices The Line Printer (LP) and the Card Reader (CR) on a OAS80or DAS82 Remote Station are available from the OECsystem-l 0 host In a transparent manner. This means that any user at any terminal can use this remote LP or CR very Similarly to how he would usea LP or CR attached directly to the host. 43 This is accomplished by use ofthe DECsystem-lO Mo nilor Command LOCATE which sets the default LP and CA for a specific user. The LA36 DECwriter, which is included with the OASBO Series Remotes, can be used as the Operator Controlling Console for the spoolers which are running for the LP and CR at that station. This means that any operator-type requests (e.g., LP out of paper) appear at the remote location with the LP and CA rather than at the host. Host Interfaces The DASBO Series Remote Stations can only communicate with the OECsystem-tO via Ihe DC75NP, the OASB5 or the ONB7/0NB7S Front Ends. The DN87IDNB7S requires the 6.03 or later version of the TOPS-tO monitor, while Ihe OC75NP and the OASB5 require the 6.02A or later monitor. The DC75 Front End will not run under 6.02 or later monitors unless it is equipped with the " NP~ upgrade (additional 4K memory, KG11 CRC unit and software). \ OPTIONS LIST DASeO-AA, AB - Remote Batch Station Includes t DN81-H, lA36 Console, DAS80-CA/CB, DASOO-lA/lB, PDP-lt and software, DAS81 -AA, AB - Remote Concentrator Includes PDP-tt , 1 DN81-H, DN81-EA and software. One more DN8l-EC can be added fora total of 32 asynchronous lines. DAS82-AA, AB-Remote Batch Station and Concentrator. Includes PDP-11, LA36 Console, DAS80-CNCB, DASeoLNLB, DN81-H, DN81-EA and SOftware. DN81-Fx asynchronous irterfaces are also required and must be ordered separately. UNIT RECORD OPTtONS DAS8O-CA, CB-CardReader,300cards per minute. DASeO-LA, lB - Printer, 300 lines per minute, 132 printing positions, 64 printing characters, EDP character set. DAS80-LC, lD - Printer, 230 lines per minute, 132 printing positions, 96 printing characters, EDPcharacter set. ASYNCHRONOUS LINE OPTIONS DN81-EA, EB-Asynchronous Expansion Cabinet including one DN81-EC 16 Une Asynchronous Expansion Group. Requires two DN81-Fx 8-Une Terminator Groups to activate the lines. DN81-EC, ED-Asynchronous 16-Une Expansion Group. This requires two DN81-Fx 8-Une Terminators to acllvate the lines. DN81-FA -8-Line Terminator each with 20mA Current Loop Local Interlaces. DN81-FB -8-line Terminators each with EIA Local Interfaces. DN81 -FC-8-Une Terminators each with ElA Full Modem Control Interlaces. DN81-FO-8-line Terminators with Integral Auto Answer Modems. (These modems require customer supplied DM's). 44 SYNCHRONOUS LINE OPTtONS DN81 -H -Synchronous Line Controller Expansion Une. For data transmIssion speeds of up to 10K baud and for attach· ment to EIA RS232C compatible modems. DN81 -J -Synchronous Une Controller For data transmission speeds of up to 40.8K baud and for aUachment to 303type current mode modems. Note: These same line options (DN81-)[X) are used on the DASBO series remote stations, as described here. on the DN87 and for DC76 add-ons. DASH RemOte Station The DAS92 Remote Station is a low costremote,lObentryconcentra!Orl hat is attached to the DECsystem -l 0 via one synchronous link to a ON87/DN87S fion! end The OAS92 may be canfigured in one of the following manners 1 up to 16asynchronous terminal hnes 2 up to 12 asynchronous lermlnal llnl3s plus a card reader Of line printer 3. up to 8 asynchronous terminal lines plus a card reader and Ime printer Only one synchronous interface Is permitted on Ihe DAS92 therefore the DAS92 must be a sequenlial node This means 11 may nol do multi-paining o r route-thru Data to the DAS92 may be routed from some other node, but no data maybe routed through the DAS92 Sll'lCe It IS onty capable of haVing one synchrOOOYs Itnk Options 1. DAS92-AA, AB Basic Unit, including 16K, PDP-8/ A processor, VT52 console terminal, desk, RO M for down-line loading, one (1) synchronous line interface and software. Requires at least one (1), buta maximum of five( 5 ) optional units listed below : (a) DAS92--EA Asynchronous 4...Jine multiplexer, including line drivers. The DAS92-EA Asynchronous 4-line Multiplexer will accommodate either 20 rna . or EIA lines in any mixture. One out of every four can be full modem control. The baud rate is switch selectable anywhere from 50 to 4800 baud . Maximum of four (4) OAS92-EA's per OAS92-A. (b) DAS92-CA, CB Card Reader. The DAS92-GA, CB Card Reader is a Digital CR8-F for 8O-column (only) cards, and operates at 285 CPM . Maximum of one (1) Card Reader per DAS92-A. (c) DAS92-PA LAl80 Printer. The LAl80 operates at 180 characters per second and uses a 96-character set (upper and lower case) . The carriage is 132 columns wide. Maximum of one (1) LAl80 per OAS92-A. 45 (d) DAS92-VA, VD LP05 Line Printer, (64-characters). This is the LP05 (LE8-V) and operates at 300 lines per minute using a 64-character set. The carriage is 132 columns wide. Maximum of one (1) LP05 per DAS92-A. (e) DAS92-WA, WD LP05 Line Printer, (96 characters). This is the same as the DAS92-VA except that it uses the 96-character set (upper and lower case). Maximum of one (1) lP05 per DAS92-A. i I DAS6l -EA, EB -Synchronous Expan sion Cabinet for expansion past 4 synchronous lines. Includes no synchronous lines. DAS61 IBM i780/3780 FRONT END The DAS61 Front End allows IBM 27BOand 3780emulation and termination. This means that IBM 2780's and/or 3780's can be used as RJE stations into the DECsystem-l0 or that the OECsystem-10 can emulate (or simulate) an IBM 2780 or 3780 to an rSM 360/370 computer. The DAS61 can handle a maximum of 12 synchronous lines each operating independently with any combination of 2780 or 3780 emulation or termination. The maximum aggregate throughput of a DAS61 is 100,000 bits per second (tOOK baud). The DAS61-0 is interfaced to the DECsyslem-l0 via the DUO and the DAS61-S is interfaced via the OTEtO. Multiple DAS61's are supported per DECsystem-l0. OPTIONS OAS61-0A, DB -IBM 2780and/or3780 Emulation and Termination Front End. Including Ol1D-C port and requiring OL 10-A with available port. Requires addition of OAS6t-H and/or OAS61-J synchronous line units. DAS61 -SA, SB - IBM 2780 and/or 3780 Emulation and Termination Front End including OTE10 interface. Requires addition of OAS61-H and/or DAS6l-J synchronous line units. DAS6l-H -Synchronous Single Une Controller for data transm Iss ion speeds of up to 10K baud and for attachment to EIA RS232C compatible modems. DAS6hJ -Synchronous Single Une Controller for data transmission speeds of up to 50K baud and for attachment to 303-type current modems. DAS6l - QC-DAS61 SoHware Only. DAS6l -Q X - DAS78 to DAS61 SoHware Only Upgrade (prerequ isite GALAXY). DAS6i IBM HASP MULTI-LEAVING FRONT END The DAS62 Front End combines all of the functionality of the DAS61 with support of IBM HASP multi-leaving work stations as DECsystem -l0 RJE stations and also allows for the DECsystem-l0 to simulate a HASP multlleaving work station to an IBM host computer. The DAS62 can handle a maximum of 12 synchronous lines each operating independently with any combination of 2780 or 3780 or HASP multileaving emulation or termination. The maximum aggregate throughput of the DAS62 is 100,000 bits per second (tOOK baud). The DAS62-D is interfaced to the DECsystem-l0 via the DL10 and the DAS62-S is interfaced via the DTE1O. Multiple DAS62's are supported per DECsystem-l0. 46 OPTtONS DAS62-DA, DB - IBM 2780 and/at 3780 and/or HASP multi-leaving worX stallon Front End. Including DUO-C port and requires DL 10-A with available port Requires addition of DAS62-H and/or OAS62-J synchronous line units. DAS62-SA, SB -IBM 2780andfor3780 andfor HASP multi-leaving work station Front End including DlElO interface. Requires addition of DAS62-H andlor OAS62-J synchronous line units. DAS62-EA, EB -Synchronous Expansion Cabinet for expansion past 4 synchronous lines. Includes no synchronous lines. DAS62-H -Synchronous Single Une Controller fordata transmission speeds of up to 10K baud and for attachment to EtA RS232C compatible modems. DAS62.J- Synchronous Single Une Controller for data transmission speeds of up to 50K baud and for attachmentto 303-type current modems. DAS62-QC -DAS62 SoHware Only DAS62-QX -DAS78 to DAS62 Software Only Upgrade (prerequisite GALAXY) DAS62-QY -CAS6l to OA56250ttware Only Upgrade • ~ :Q~:r w~~ ~~~ '00 ':t:~~ 'vv ""9 ,• > ils "9 ~§ , ••" • > "- " a ;; • ev ~ .~ ·, Oz .~ " !~ •,9 g 9 i$ ~ •"0 ;;~• ~ " ~§ ,•e ~~ ,~ ~ • e 48 OK MTlM 1090 / 1099 Ct>lI~'1ON CINnA!. ~U5Oo' ! I II t~;,;;=}----------1""""""'~~~~'~"":J " (l,II,'A LINK ........11",[1.(. >0 J ' " ro ., 01 1.1' 112 10 11 S'NOIIONOUS UNU LINES UP TO .-.$YI'fCHlONOU5 UHO 3 UNE NJNTUS 2 CAlI) I'EAIlUS I (oUt> P'UNCH ~"'TfU (l,II,'A CH..,.,."l CONUOl ~H20 "' • UI' TO' T"'f: OI:IVES OA'A QV.NNlL CONTROL uP TO 10 10 ~H20 'U'PiOi MEMORY MODULES uP TO • DIS« OIIIVfS DAtA CHAtH:l '" ro J . "' C~fl ... ro, CENTRAL PtIOCESSOII (UP TO 32 PER SYSTEM) CONTfIOlLER '" ro J COMI''',"CAIIONI UP TO 112 ASYNCHIIONOUS LINES MlA'IP'LEXU UP TO' I 011 uP TO 12 $'If\JCHItONOUS LINES UP TO 8 DfCTAPES MAX. NO sup· OPTION DESIGNATOR 115V/60Hz 230V/SOHz Central Processors DESCRIPTION PREREQUISITE PORTED (NO TE I) KA 10-A, KA 1O-C KAlO Central Processor; 366 hardware InstructIOns, 10-character-per-second console lermlnal None 2 KltO, KltO KIlO Central Processor. 378 hardware Instructions. memory paging, instruction look-ahead, virtual memory, IO-character-per-second console terminal KL to Central Processor; 395 microprogrammed instructions, bUSiness instruction set, high-speed cache memory, virtual memory. Instruction lookahead, 3O-character-per-second console terminal None 2 None 2 MFtO-A. MFtO-A MFlO Core Memory; 32K words olt o-mlCrOSecond memory. KAlO, KIlO or KLlO Nole2 MFtO-E, MFlO-E MFlO Core Memory eKpansion module: 32K words of t.O-microsecond memory 10 eKpand MFlO-A MFlO-A NOle 2 MF10-G, MFIO-G MFtO Core Memory: 64K words olIO-microsecond memory. KAlO, KilO, or KL10 Note 2 MGtO-HA MGIO Core Memory; t28K words 011.0 microsecond memory KA-lO, KltO. or KLlO Nole 2 MHIO-H MH-lO Core Memory 256K WOrds oil 2 microsecond memory KA-l0, KilO or KL10 Nole 2 MCtO-D. MClo-0 MCIO-F. MC10-F Memory Access Port. lor MDlO Memones MOlO Memory Access Port: far MFtO Memories MF10 MX10, MXtO Memory Port MultlpteKer; prOVides direct memory access for up to eight FDIO Data Channels using lS-bil address logiC MCtO 64 64 3 MX10-C. MX10-C Memory Port MultlpleKer. prOVides dlreCI memory access for up to eight DFlO-C Data Channels USIng 22-bJI address logic. MelO 3 DFtO.DFlO Data Channel; permits data Iransfer between hlghspeed devices and core memory; uses IS-bit address logic MClOor MXlO 8 DFtO-CA. DFtO-CB Data Channel; permits data !ransfer between highspeed devices and core memory; uses 22-bit address logic. MCtO or MXtQ-C 8 DAS33 Bulfered Data Channe!; permits block data transfers between 110 controllers and core memory: contains 256-word dala buffer; uses 22-bit address logic Avail. memory port MXlO or MXtQ-C 8 Disk Drive: 5.12-million words capacity; average access time 47.5 milliseconds. transfer rate t5 microseconds per word RPIO or RP1Q-C 32 Disk Drive; 1O.24-mllhon words capacity, average access time 47.5 milliseconds. transfer rate t5 microseconds per word APIQ-C 32 Disk Pack; additional disk pack for AP02 Of AP03 disk dnve. RPD20r RPOJ oJ, Disk Controller; contrOller for up to eight AP02 and/or APOJ DISk Drives DFtO or DF1Q-C 3 Disk Syslem: includes DF10 Data Channel, APlO-C Controller and one AP02 Disk Drive MCm, MX10 3 Disk System: includes DFIO Data Channel, RPIO-C Controller and one AP03 DIsk Drive MCIO. MXtO 3 KL 1O-8A. KL to-88 Memories and Channels Disk Systems RP02-A, RP02-B RP03-AS, AP03-BS AP02-P, RP02-P APIO-CA. APtO-CB AP02-CA, AP02-GB AP03-CA, AP03-CB 50 h OPTION DESIGNATOR ltSVI60Hz 230VISOHz MAX. NO. SUPPORTED (NOTE 1) DESCRIPTION PREREQUISITE RPCW-AA. RP04-AB Disk Drille , 20 48-mllllon words capacity; average access lime 27 mltllseconds , transfer rate 56 m ICroseconds per word RHPQ4-A, RHP04-8. or RHPQ4-D 32 RPCW -BA. RP04·88 DISk D"ve. 20 48-mlUlon words capacity. average access time 27 mllhseconds; transler rate 5.6 m ICroseconds per word, controller select option lor attachment to two controllers RHPQ4-E, RHPQ4-F, or RHP04-H Note 3 RPCW·C. RP04 -t Controller Select Option ; converts RPQ4 ·A to RP04 -B Disk Pack , additional disk pack lor RPQ4 Disk Dnve RPQ4-A ,I, RP04-A or RP04-B ," Disk System ; Includes controller and one RP04-A DiSk Ofille Disk System. Includes controller and one RP04-B Disk Olive Disk System , Includes DFlO Data Channel. conIroller and RPQ4 -A Disk Drive oFtO or oFIO-C 4 DFtO or DFtO·C 4 MCIO.MXtO 4 RHP04 ·EA. RHP04 -EB Disk System , Includes oFtO Data Channel, controller and one RP04 -B Disk Olive MCt O, MXtO 4 RHP04-FA. RHP04 -FB DISk System , Includes OFtO-C Data Channel. controller and one RP04-A Disk Olive MCtO, or MXtO-C 4 RHPOf-HA. RHP04+1B Disk System . Includes DFtO-C Data Channel, conlroller and one RP04-B Disk DrIVe MCtO. MXIO-C 4 RTP04 -AA. RTP04 -AB Disk System including Controller and RP04 -A (lingle access) Olsk Dnlle DISk System Including Controller and RP04 -B (dual access) Disk Olive KLtO-8 4 KLIO-B 4 RP04 -P. RP04 -P RHP04·AA. RHP04 -AB RHP04 -BA, RHP04 -8B RHP04..[)A. RHP04 -DB RTP04 -BA. RTPQ4 -BB RTP04-C RHP06-M, RHPO&AB RHP06-BA. RHPOO-BB RP06-AA. RPOB-AB RPOS-BA. RPOO-BB RP06-C RTP06-M, RTP06-BB RTP06·SA. RTPOG-BS RTP06-<: RHS04-{)A, RHS04 -DD RHSCM -<:A. RHS04-CD AHS04-GA, AHS04-GD RHS04 -HA. RHS04 -HD RHS04 -JA. RHS04 -JD Dual Channel Access Kit Disk System; Including Controller and RP06 -A (single access) Disk Onve Disk System. including Con troller and RP06-B (dual access) Disk Dnve Add.on Disk Olive (Single access) . Includes one RP06-P Disk Pack 39, 40 million word capaci ty average access time 27 milliseconds, tr ansfer rate 5 6 microseconds per word Add.1m Disk Dillie (dual access), mcludes one RPOS-P Disk Pack 39. 40 million word capacity allerage access time. 27 milliseconds. transfer rate 56 microseconds per words RPOS Dual Access Kit Disk System Including Controller and RP06-A (Single access) Disk D"ve Disk System Including Controller and RP06-B (dual access) Disk Dillie Dual Channel Access Kit Swapping DiSk , 256K words of swapping storage, transfer rate of four microseconds per word; room lor one additional RHS04-C Swapping Disk . 256K words of swapping storage; transfer rale lour microseconds per word . lor elCpltnSlOn of RHSQ4-D Swapping System , Includes controller and one RHS04 -o Swapping DIsk SwapPing System . Includes DFtO Data Channel, conlroller. and one RHS04-D Swapping Disk Swapping System . Includes DFtO-C Data ~hannel. conltoller. and one RHS04-o Swapping Disk 51 KL 10-B. RTP04-A NIA DFIO or DFtO-C 4 DFtO or DFIO-C 4 RHP06-A or RHP06-B 32 RHP06-A or RHP06-B 32 RP06-A KUO-S 4 KUO-S 4 KLtO-S. RTPOfi-A 7 RHSQ4-G. RHS04·H or RHS04 -J RHS04-D. RHS04-G RHS04-H, RHS04-J I" I" DF10 or DF10-C 2 MCIO, MXtO 2 MCtO or MXlO-C 2 OPTION DESIGNATOR 115V160Hz 230Vl5OHz Magnetic Tape Systems DESCRIPTION PREREaUISITE TUlOA-EE. TUtOA-EJ Magnetic Tape Drive; 9-channel drive. 45-inchesper-second; recording densities of 200, 556 and 88 bpi. TM10-A or n.lID-B TU10A-FE. TU10A-FJ Magnetic Tape Drive; 7-channel drive. 45-inches' per-second; recording densities 01 200. 556 and 800 bpi. n.41D-A or TM1D-B TM10·AA, TM 10-AB Magnetic TapeController; Interfaces tollO bus of KAlO or Kl t O Central Processors lor control of up to eight TUtOA M agnetic Tape Drives. Magnetic Tape System; includes TMlO-A Controller and one TUtOA Magnetic Tape Drive. Magnetic Tape System; including RH10 and TM02 Controliers and TUI6-E 9-track, 45 ips Tape Drive KAl00r KilO TUl 0-CA, TUI O-CB THU16-EA, THUI 6-ED MAX. NO SUPPORTED (NOTE 1) • • KA100r KilO DFtO or DAS33 • Recording densities 0180011600 bpi TTU16-EA, TTUt6-ED Magnetic Tape System including Massbus Controlier, Tape Controller and TUI6-E Tape Drive KLlO·B 4 TUI6B-E, TUI6B-ED Tape Controller and TU16-E Tape Drive (for expansion beyond 4 dnves) THU16-E or TTU16-E • TU I6-EE. TUt6-EJ Add-on Magnetic Tape Drive, 9-track. 45 IpS Recording densities of 80011600 bpi THU16 -E 32 TU40-A, TU40-B Magnetic Tape Drive; 9-channel drIve, 15D-lnchesper-second; recording densities 01200. 556 and BOO bpi. TU4Q-C. TU4t-C 16 TU4t-A, TU41-B Magnetic Tape Drive; 7-channel drive, lSO-lnchesper+second; recording densItIes 200, 556, and 800 bpi. TU4Q-C, TU41-C ,. TMIO-BA, TMtO-BB Magnetic Tape Control; attaches to DFtO or DFIQ-C Data Channel to control up to eight TU40 andlor TU41 Magnetic Tape Drives DFtO or DFIQ-C 2 TU40-CA, TU40-CB Magnetic Tape System; includes DFtO Data Channel, TM1D-B Controller and one TU40 Magnetic Tape Drive. MClO. MXtO 2 TU4 1-CA, TU4 t -CB Magnetic Tape System; includes DFIO Data Channel TMlO-B Controller and one TU41 MagnetIC Tape Drive. MC10. MX10 2 TU70·AA, TU70-AB Magnetic Tape Drive; 9-channel drive. 200-inchesper-second; recordIng denSItIes 800 and 1600 bpi TU70-C ,. TU7t-AA, TU7t-AS Magnetic Tape Drive; 7-channel drIve, 2OO-inchesper-second; recording densities 200. 556, and BOO bpi. TU70-C TU7O-CA, TU70-CB Magnetic Tape System; includes Data Channel, controller and one TU7D-A MagnetIC Tape Drive DECTAPE Unit; dUal-dnve OECTAPE. MCtO, MXtO or MXtQ-C TU56-A, TU56-S TOlO or TDtO-G ,. 2 • TOtO-A. TOl0'B DECTAPE Control; prOVides control for up to four TU56 DECTAPE uOlts. KAl0 TOtO-CA. TOto-cS DECTAPE Control; provides control for up to lour TU56 DECTAPE units. KilO. KL10 2 TOl0-GA, TOtD-GB DECTAPE System : Includes TD10 Controller and one ru56 DECTAPE unit KilO or KL10 2 Magnetic Tape System; includes DXtQ data channel, TX02 tape control unit and TU72-E 9-lrack 125 ips Tape Onve. Aecordlng denSities of 1600 and 6250 bpi. KilO or KLtO 2 TU72-C 52 2 MAX. NO. SUP~ DESCRIPTION PREREQUISITE PORTED (NOTE 1) Magnetic Tape D nve; g-track, 125-lnchesper-second. reco rdIng densllles 1600 and 6250 b.. TU 72-C 8 CRlo-DA. CRIO'OB Card Reader, table-top card reader. l OOO-card sper mlnule KAI O. Kil O or K11 0 2 CRlcrEA. CRIQ-EB Card Reader , console card reader. 1200-cards-permInute KA 10, KilO or KL 10 2 CRIQ--FA. CRIO-FB Card Reader . table-top card reader. JOO-card s-permInute KAI O. Kil O or K11 0 2 LSPIQ--LA. LSP10·LB KAI O. KIlO or KL1 0 I. Note 5 lPIO-F NfA LPIO-F NfA LPIO-H NfA LPIO-H NfA KAIO. Kil O. KLI O 3 KAIO, Ki l O, Kl1D 3 KAIO, Kil O. K11 0 3 KAID. Kil O, KLI O 3 KAI O. Kil O, K11 0 3 LP01-YA line Pnnter; 245-lines-per-m lnute. 54-character print set Pnnt Drum . 64-character EDP pnnt drum fo r lPIO·F line Prin ter Print Drum . 54 -character SCientific Print drum lor LPI O-F line Pnnter Pnnt Drum. 96-character EDP Pnnt drum for LPIO-H Line Pnn ter Print Drum, 96-character SClenllhc Prml drum for LP1Q-H Line Printer LIne Prlnter , I,250-lInes-per-mlnute. 54-character EDP prin t set LIne Pnnter, 1.250-lInes-per-mmu te. 64-character SclOntllic prlnl set. Lme Pnnter. 92S-hnes-per-mlnule, 96-character EOPpnnt sel LIne Pnnter. 925-bnes-per'mlnute, 96-characl er Sclenhhc pnnt sel LIne Pnnter , up to 15OOLPM , EDP pnnt set see LP07· Y Charaband lor LP100 with 2 sets of 64-char lonts LP100-B LPOH8 Charaband for LP100 with 2 sels 01 96-cnar fo nls LPIOO-B LP07-YC Charaband tor LP100 wIth 1 set of 64-char. lonls and 1 sel 01 96-char fon ts PloUer ContrOl , l or CALCQMP M odel. SA3 or 565 plott er or equIvalent Plotter , CALCOM P Model 565 plotter with con tr ol: uses 12-lnch paper ; speci fy step sIze Sleps/m inute Step sIze 18.000 001 Inches 18,000 005 Inches 18.000 I Inches LPIOO-B NfA NfA NfA KAI O. Kil O. KLIO 2 KA 10. KilO. K110 2 KAI O, KilO. K110 2 OPTION DESIGNATOR nSV/6OHz 230V/ SOHz TU72-E Hard-copy Equipment LPIO.fE. LPIQ--FE LPlMF. LPIO-FF LPIO'HE, lPIQ-HE LPlcrHF, LP1Q-HF LPlMA. LPlcrFB LPlMC. LPIQ-FD LPlQ-HA, LPIQ-HB LPl().HC, lP1crHD LP1ocrBA .LPIOD-BB XY10. XYtO XYIo-A. XYtO·A o o XY1O-8. Xyo-B Actler . CALCO M P M odel 563 plotler wi th con lrol : uses 3hnch paper, specI fy Slep size Steps/ m inute Slepslze 12.000 001 Inches 18,000 005 Inches 18,000 01 InChtlS o 53 Optio n Designator 115V/60Hz 230V /50Hz DESCRIPTION Prerequisite Maximum No. SuppOrted (Note 1) Asynchronous Data Communication Systems DCI(}AA,DC1(}AB Data Line Scanner: provides controller plus four units of cabinet space: DClO System handles up to 64 lines per oClO-A. KA1O, KilO 2 oClO-B, oCl(}B Eight-line Group: Interface for eight local or dial-up lines; requires one unit of cabinet space: dial-up lines require oCl0-E for full modem control. DC1D-A 16 DC10-C, DC10-C Telegraph Relay Assembly : provides conversion from local to long lines using full - or half-duplex facilities; requires two units of cabinet space. DCI(}B and DC1(}O 8 DC10-D,DC10-D Telegraph Power supply: pro .... ides a standard linevoltage power supply used with DCIO-C (120 volt, 2 amps): no cabinet space required. DC1D-C 8 DC10-E,DC10-E Expanded Data Set Control; provides expanded DClO-B control of eight data sets in the oCl0; recom mended for maximum system security; requires two units of cabinet space. 8 oClO-F, DC10-F Expander Cabinet; provides eight units of cabinet space and power supplies for expansion beyond DC1D-A. oCI(}A 2 DC10-H, DC10-H Eight-line Group; interface for eight local or dialup 2741-type lines; requires one unit of cabinet space; dial-up lines requ ire OC1D-E for full modem control. OC1D-A OAS80-AA, DAS80-AB Remote Batch Station. Includes 1 ON81 -H, lA36 Console, DAS80-CAlCB, DAS80-LNLB, POP-l1 and software. OAS 85. oN87. or DC75NP NJA DAS81 -AA, DAS81-AB Remote Concentrator. Includes PDP-It I DN81-H, oAsa5, ON87, or DN81-EA and software. Can add one more ON81 -EC. OC75NP EO for a total of 32 asynchronous lines. ON81-Fx asynchronous interfaces are also required and must be ordered separately. NJA DAS82-AA, DAS82-AB Remote Batch Station and Concentrator. Includes PDP-II, OAS80-CA/CB card reader, DAS80-LA/LB line printer, 1 DN81-H. DN81-EA and software. DN81-Fx asynchronous interfaces are also required and must be ordered separately. DAS85, DN87, or DC75NP NJA DAS92-AA, DAS92-AB Includes 16K POP-81A processor, vr52. ROM for down-line loading, one synchronous line interface. oECsyslem-1O DC75-NP, DAS85 or DN87 NJA OAS92-EA Asynchronous 4 line multiplexer including line drivers. Will accommodate either 20 mA or EIA lines in any mixture. See DAS92 confrgurator 4 oAS92-CA, DAS92-CB Card Reader for 8O-column (only) cards; operates at 285 cpm. See DAS92 contigutator OAS92-PA, oAS92-Po lA 180 Printer operates all80 cps and uses a 96-character set. DAS92-VA, OAS92-VD See DAS92 configurator LP05 Line Printer (64 characters) operates at 300 Ipm ; 132 columns w ide carriage DAS92-WA, oAS92-WD See OAS92 configuralor lP05 Line Printer (96 characters). See DAS92 configurator 8 Note S Remote Stations 54 Option oellgnlltor Unit RecOrd Options oAS8>CA. OAS8()-{:B 0/.S8><A. OASBO-LB DESCRIPTION Card Reader, 300 cards per minute. CASSO Series Remote Printer, 300 lines per minute, 132 printing pOSitions, 64 pnntlng characters, ECP character set. CASSO Series Remote Pnnter, 230 hnes per mmute, 132 printing positions, 96 printing characters, EoP character set. CASSO Series Remote ONS7 Including o110-C port only. Requires C110-A With available port. Requires addition of CN81-xx synchronous andlor asynchronous line options. KAIO, K110, K110 CLlO 6 OH87·M, DN87-AB oNS7 includmg o110-A Communications Interface and one oL10-C port. Requires addition of CN81-xx synchronous and/or asynchronous line options. KAtO, KIt O, KL10 2 OH87S-M, DN87S-AB ONS7 With oTE1O interface. Requires addition of DNSHlx synchronous andlor asynchronous line options OC76 to DNS7 software only upgrade (including KGII-A) . 1090 3 OC76 NfA ONS7,87S· 2 ONS7, B7S· 5 ON87,87S NfA ON87,87S NfA ON87,87S NfA oNS7,87S NfA OAS8H-C. OAS80.ll) Front Ends DN8H)A, CN87·0B ON87oU AsyndvonooI Une Option' Asynchronous Expansion Cabinet including one DN81-EA. DN81·EB ON81-EC 16-Llne Asynchronous Expansion Group. Requires two oN81-Fx B·lIne Terminator Groups to actIVate the hnes DN81-€C, ON81-EO 0Ii8HA DN81fS DN81fC ON81fD Asynchronous IS-Line Expansion Group. This reqUires two ON81-Fx B-Llne Termmators 10 acllvate the lines Sollne Terminators each with 20 rnA Current loop Local Interfaces. B-Une Terminators each with EIA Local Inlerfaces B-Une Terminators each with EIA Full Modem Control Interfaces. Boline Terminators with Integral Auto Answer Modems (These modems require customer supplied oAA'S) . Srncnronoul line Options DN81-EE. DN81-EF ON81-11 DN81-J Synchronous Expansion Cabinet. Includes one oN81 -H Synchronous Single Line Controller Expansion line For data transmission speeds of up to 10K baud and for attachment to EIA RS232C compatible modems. Synchronous Single Lme Controller. For data trans' miSSIOn speeds of up to 40.8K baud and for attachment to 303-type current mode modems. ·Used on ON87, CNB7S Front Ends and on CASSO Series Remote Stations. 55 b Prerequisite Maximum No. Supported (Note 1) 1 ON87,87S ON87,87S 12 CAS SO, B1. 82 4 ON87,87S 12 OASSO, Bl, 82 4 Option Designator 115V/ 60Hz 230V / 50Hz DESCRIPTION Prerequisite Maximum No. Supported (Note 1) IBM DEVICE EMULATION AND TERMINATION FRONT ENDS DAS61 -DA. DB IBM 2780 and/or 3780 Emulation and Termination Front End. Including DL10-C port and requiring D110-A with available port Requires addition of DAS61-H andl o r DAS61-J synchronous line units. KilO, Kl1 0, Dl10 TOPS106.03 8 DAS61-SA. SB IBM 2780and/or 3780 Emulation and Termination Front End including DTE10 interface. Requires addition of DAS61-H andl or DAS61-J synchronous line units. KL10B 3 OAS61 -EA, EB Synchronous Expansion Cabinet for expansion past 4 synchronous lines. Includes no synchronous lines. DAS6l -D.DAS61-S DAS61 -H Synchronous Single line Controller for data transmission speeds of up to 10K baud and for attachment to EIA RS232C compatible modems. DAS61-J Synchronous Single line Controller for data transmission speeds of up to SOK baud and for attachment to 303-type current modems. DAS61-0, DAS61-S 12 DAS61-D . DAS61S 12 DAS61-D, DAS61-S Note 6 Note 6 DAS61 -QC DAS61 Software Only DAS61-QX DAS78 to DAS61 Software Only Upgrade (prerequisite GALAXY). OAS62-DA, DB IBM 2780 and/or 3780 and/or HASP mu lti-leaving work station Front End. Including DLlD-C port and requires DL1D-A with available port. Requ ires addition of DAS62-H and/or DAS62-J synchronous line un its. KItO. KL 10, DL10 TOPS1O 6.03 4 DAS62-SA. SB IBM 2780 and/ or 3780 and/or HASP multi-leaving work station Front End including OTE10 interface. Requires addition of DAS62+l and/ or DAS62-J synchronous line units. KL lOB 8 DAS62-EA. EB Synchronous Expansion Cabinet for expansion past 4 synchronous lines. Includes no synchronous lines. DAS62-D. DAS62-S 3 DAS62-H Synchronous Single line Controller for data transmission speeds of up to 10K baud and for attachment to EIA RS232C compatible modems. DAS62-D, DAS62-S 12 DAS62-J Synchronous Single line Controller for data transmission speeds of up 10 SOK baud and for attachment to 303-type c urrent modems. DAS62-D, DAS62-S 12 DAS62-QC DAS62 Software Only. DAS78 to DAS62 Software Only Upgrade (prerequisite GAlAXY). DAS62-D, DAS62'S DAS78 Note 6 DAS62-QX NoleS OAS62-QY OAS61 to DAS62 Software O nly Upgrade. DAS6l NoteS LA36-CC. LA36-CD OECwriler-lI; 3O-character-per-second teleprinter with 20-mA current loop interface; handles up to 6-part forms. 132-column printing. variable-width forms. 96 upper- and lower-case <;haraclers. Asynchronous line Note 4 LA37 APL-ASCII Terminal. 3O-character-per-second. features full APL. full upper/lower case. or upper case TTY cha racter sets. Alphanumeric Terminal; 110 to 2400-baud CRT display terminal; features 128-cha racter keyboard. 1440-character capacity screen. direct cursor addressing. 20-mA cu rrent loop or EIA interface. DAS61-D, DAS61-S Terminals VTOSB-DA, VTOS-DB 56 Note 4 Note 4 Option Designator 115V/6OH1. 230YJ5OH1. Prerequisite DESCRIPTION Maximum No. Supported (Note 1) GT40'AA, GT40-AB Graphic System; computer-level graphic system consisting 01 a graphical display system and general-purpose mmicompu ter: features light pen. 128-character keyboard and EIA serial interface. Note 4 VTSO-GA. VTSO-GD DECscope; 75 to 9600-baud CRT terminal, 20-mA current loop Interface. 9OO-character capacity screen. 64-character keyboard. OECscope: 75to 9600·baud CRT terminal. EIA Interface. 1920-character capacity screen, 96-character keyboard. DECscope; 75 to 9600-baud CRT terminal . EIA Interface. 960-character screen. 64character keyboard DECscope Video Display Block-mode Terminal; 1920-character display and full ASCII keyboard; t28-character 7x8 dot matrix character set. Note 4 VT52 VTSO·EA. VTSO-ED VT., Note4 Note 4 Note 4 Note 6 Miscellaneous DAtO.DAIO Interface between KAtO or KltO CPU and PDP-8 minicomputer. KAIO. KilO, KltO 01. OKIO,DKtO Real-time Clock; provides resolution to 10 microseconds via crys tal oscillator. KAIO. or KltO 2 PClG-C High speed paper tape readerl punch KL10 GP10, GPIO General Purpose Interface; provides interface to KAl0 or KilO 1/0 bus; includes cabine t. two model 728 power supplies. one model 844 power control indicator in panels. convenience outlet and aSlo-A-15 cablet set; logic provides a status register. device decoding. read-in gating and line buffering. KAIO. KilO. KlIO N/A GPtO-L, GP1o-L GPIO Interface l ogic: interface logic only ; does not include power su pply or indicators. KAla. KilO. KlIO N/A GPtO-M. GPlO-M GPIO less logic; includes power supplies and indicators; does not include cables. KA1O, KilO, K110 N/A DF01-AA, DFOI-AB Acoustic Telephone Coupler. OECsystem-IO Terminal Note 4 CAB-98 . CAB-9B Cabinet: includes full-length single doors, Iront and back with indicator panel, but without end panels (old style). OECsystem-l 0 N/A H-956. H-956 Cabinet ; includes full-length single doors, front and back with indicator panel. but without end panels (new style). DECsystem -l 0 N/A Note: Specifications subject to change without notice. Note 1 Maximum number supported by standard software. Configurations with large numbers of disk drives. high-speed magnetic tape drives and/or data communication lines must be reviewed by OECsystem-l 0 Marketmg. Note 2: Maximum memory capacity of KAtO is 256K words in 16 memory modules. Maximum memory capacity 01 KilO or KL to is 4,096K word s in t6 memory modules. Note 3: Currently under software development. Contact DECsystem-l 0 Marketing before configuring. Note 4 DECsystem-l0's support a maximum of 512 simultaneously-active terminals through t27 simultaneouslyactive jobs. Note 5' Software Supported by Computer Special Systems. Note 6 Software Supported by Advanced Systems Group. 57 DECsystem ·10 UPGRADE/MIGRATION PATHS This chart illustrates the migration of different DECsystem-10 subsystems toward the common TOPS-10tTOPS20 hardware system . The chart is useful for determining what equipment is supported within each OECsystem-10 family member. It also provides insight into what equipment needs to be upgraded in moving from one CPU-based system to another. 1090 EXTENDED "60 1010 "MO SYSTEM DESIGNATION "" "" "'" HAROWARE FOR TOPS -IO TO PS·1O ' - TOPS-20 KltO KlI06 Klt06 EXTENDEO "60 1077 FUllY CO MPATIBLE TOPS-tO OR TOPS -20 TOPS -IO OPERATING SYSTEM TOPS ' IO TO PS-IO CPU <A" Ki l O MA,O ME M ORY MEIO (161<) MAIO' MEIO MF10(32K) MFIO MG10 (128K) M G10 MH1 0 (2 561<) RP1 0IRP02-3 RP1QIRP02-3 RHIOI RP04 & 06 RCIOIRM-flDIO DISK COM M UN ICATIONS MAGTAPE UNIT RECORD OC I O DC76 DAS7S TMIOAITUXX TM IOITUXX , RH1OJRP04 & 06 RCIOIR M-RO I O-----4- , DCIO DC76 DAS8S MElD ME10 -..> M F10 M G10 M H10 MF10 MG10 M H10 M G10 MH10 RP 1OJRP02 "-3 ".." RHIOIRP04 & 06 RHIOIRS04 - - 4 RH 1OJRP04 & 06 _ RH20IRP04 & 06 RH2OIRP04 & 06 CNa7 CN8 7S CN87S MFIO DCIO· - , : ................ DO. ON 67 " TM IOAITUXX _______ , TC101TSU 43 TM 10BfTUXX RH101TU 16 OX101TU7X TC1 01TSU43 8A1 OJDEVICE 8A101DEVICE -~ TM lOOfTUXX RHIOITU I 6 _ DXIOITU7X RH2OiTU16 OX101TU7X DX20ITUXX ,,/ 8A1 010 EVICE NOTES 1 N. w mlcfOC~ . TOps·20 R....... 2 Dfop ..... uPQf.d. f.pll<;.m.n l (old compo ..... l lypb. y f.luMldlrllio'Id) 3 Field "lfO llt llf1-PIac" , Subll,IU llon 01 RH20 10' DFIOIRHIO 5 Filld Up\I"d. f.pll<;. OLIO w,' 11 OTE connec lion. SIW R...... 6 F"'d UP\lf.d.' ... dd,' ion f,p"c"upg,.d. TMlOA w,'11 TMloa.M . dd OFI OIOFIO-C 7 l .pe Ch,nn" ,.p.I. CId willi OX20 lm'lfn.' ch.nn.') 6 8""0 H"d COP1 Con lfOI Unit "pl'C' d w,III POp·IH••• 1d con lfO"<1', • SI.ffe<! 11.m'.ft 11>0.. hafd w. " comPOn.n'" wlllCft 'f' fIOt m.nu lactu,e<! . d,lticulll""POu _ 1.lIu, .. w lllc;lI • •• nlUIUy ml k. Ih." IUPPO<1 uneconom lC" 58 6A1 010 EVlCE RH2OITU16 "-.... DX2Of1'UXX pop -" FRONT ENO DEVICES 10 I<Ipport. 0< wl'lO" l ua:.U O' I)fOwod. . COlllpetto ..... ~ '" 0 _ ALGOL AID The Algebraic Interpretive Dialogue, AID, is the DECsystem-l0 adaptation of the language elements of JOSS, a program developed by the RAND Corporation. To write a program in the AID language requires no previous programming experience. Commands to AID are typed in via the user's terminal as imperative English sentences. Each command occupies one line and can be executed immediately or stored as part of a routine for later execution. The beginning of each command is a verb taken from the set of AID verbs. These verbs allow the user to read,store and delete items in storage; halt the current processing and either resume or cancel execution; type information on his terminal; and define arithmetic formulas and functions for repetitive use that are not provided for in the language. However, many common algebraic and geometriC functions are provided for the user's convenience. The AIO program is device-independent. The user can create external files for storage of subroutines and data for subsequent recall and use. These files may be stored on any retrievable storage media, but for accessibility and speed, most files are stored on disk. • Programs may comprise separatelycompiled procedures • Assignments are permitted within expressions • Remainder operator • Unique Implementation of dynamic own arrays • Octal boolean constants and integer/boolean and boolean/integer transfer functions • Alternative reserved delimiter word or ~quoted delimiter word" representations The DECsystem -l0 ALGOL system is based on the ALGOL-50 specifications. It is composed of the ALGOL compiler, and the ALGOL object time system. The compiler is responsible for reading programs written in the ALGOL language and converting these programs into machine language. The user may specify a parameter at compile time which produces a sequence num bered listing with cross-referenced symbol tables. The ALGOL object time system provides special services, including the inpuUoutput service for the compiled ALGOL program. Part of the object time system ALGOL library is a set of routines that the user's program can call in order to perform various functions including mathematical functions and string and data transmission routines. These routines are loaded with the user's program when required ; the user need only make a call to them. The remainder of the object time system is responsible forthe running of the program and providing services for system resources, such as core allocation and management and assignment of peripheral devices. Source level, interactive debugging is provided through ALGDDT. The user may stop his program at any point, may examine and change the contents of data locations. may insert connected code and then continue execution to test his changes. 60 APL APL (A Programming Language) is a concise programming language specially suited for dealing with numeric and character data which can be collected into lists and arrays.The conciseness with which APL expressions can be written greatly enhances programmer productivity and allows fo r very compact and readable code which can be executed in a highly efficient manner. APL finds application not only in mathematics and engineering, but also in financial modeling and text handling situations. Some of APL's features include: • The user's active workspace size is dynamically variable • The workspace symbol-table is dynamically variable • Immediate-mode line editing at complex APL expressions • Statement branching may occur anywhere in a statement line • Multiple statements may appear in a single line • User-controlled tab positioning for 110 operations • All floating point operations are performed to an accuracy of eighteen decimal digits APL is a fully interactive system with both immediate (desk calculator) and function (program) modes of operation. It includes its own editor as well as debugging tools, tracing ot fun ction execution , typeout of Intermediate values, setting break points. etc. APL for the BASIC • Multiple users share the BASIC compiler's pure code. • A variety of program manipulation commands which include functions for savings, running and retrieving BAStC programs • Immediate mode statements to fa cilitate debugging and ~desk calculator ~ mode • Sequential data storage • String capability; including string arrays and functions • Chaining with COMMON to accommodate large programs • Formatted output using the PRINT USING statement DECsystem-l0 Includes many extensIOns not normally found in other APL Implementations Some of these features Include a fleXI~ file system which supports both ASCII sequential and ~nary direct access files, the dyadic format operator, expanded command formatIOns which allow the user to take advantage of the DECsystem -10 fite system , the execute operator and tools for error analysis and recovery. In additIOn, workspaces are dynamically variable 10 sizes up to 512K bytes and the system su pports double precision calculations which allow up to 18 decimal digIts of precisiOn FlnallY, APLon the DECsystem -lOis available to all users at all times without the need to run a separate subsystem which provides extra terminat handling, workspace swapping, etc. These tasks are all accomplished by the TOPS-10 operating system BASIC is a conversational problem solving language that is well suited for timesharing and easy to learn. It has wide application in the scientific, business, and educational communities and can be used to solve both simple and complex mathematical problems from the user's terminal. The BASIC user types in computational procedures as a series of numbered statements that are composed of common English terms and standard mathematical notation. After the statements are entered, a run-type command initiates the execution of the program and returns the results. If there are errors during execution, the user, from his terminal, simply changes the line or lines in error by deleting, modifying, or inserting lines. The beginning user has many facilities at his disposal to aid in program creation: • Program Editing Facilities-An existing program ordata file can be edited by adding or deleting lines, by renaming it, or by resequencing the line numbers. The user can combine two programs or data files into one and request either a listing of all or part of it on the terminal or a listing of all of it on the high-speed line printer. 61 • Documentation Aids-Documenting programs by the insertion of remarks within procedures enables recall of needed information at some later date and is invaluable in situations in which the program is shared by other users. • As a BASIC user, you can type in a com putational prodedure as a series of numbered statements by using Simple common English syntax and familiar mathematical notation. You can solve almost any problem by spending an hour or so learning the necessary elemenlary commands. • Functions-Occasionally, you may want to calculate a function, for example, the square of a number. Instead of writing a program to calculate this function, BASIC provides function s as part of the language. More advanced users will want to take advantage of some of the more sophisticated computation and data handling tools which BASIC provides. For example: File Input -The user may create a name date file using the BASIC editing fa cilities.This file may now be referenced. within a program. Output Formatting -The user can control the appearance of his output to the terminal or printer. Data Access-Data files may be read facilities. This file may now be referenced and written either sequentially or randomly. String Manipulation - Alphanumeric strings may be read, printed, concatenated and searched. COBOL The COmmon Business Oriented Language, COBOL. is an industry-wide data processing language that is dedesigned for business applications, such as payroll, inventory control, and accounts receivable. Because COBOL programs are written in terms that are familiar to the business user, he can easily describe the formats of his data and the processing to be performed in simple English..Jike statements. Therefore, programmer training is minimal, COBOL programs are self-documenting, and programming of desired applications is accomplished quickly and easily. Major features include: • On-line edit ing and debugging-The programmer may create and modify the source program from a terminal using an easily-learned editing facility. After the program has been submitted to the compiler-again from the terminal-any syntax errors may be immediately corrected using the editor, and the program resubmitted. The program listing is sequence numbered with symbols cross-ref' erenced to show when they are defined and where used. COBOOT, the on-line, interactive COBOL debugging package, allows the programmer to check out the program: • By selectively displaying a paragraph name • By causing the program to pause at any desired step during execution • By allowing the program to examine and modify data at will before continuing execution Easy program devetopment and debugging increases programmer productivity by eliminating tedious waiting periods. • Batch Using the same commands for timesharing, the programmer may submit the program via a control file to the Batch system. This further increases efficiency because other terminal work may be done concurrent with the Batch processing • Access Methods The programmer has a choice of three access methods; sequential, indexed sequential, and random. Indexed Sequential Access Mode (lSAM) ISAM requires a minimum amount of programming while providing a large data file handling capaCity. It is supported by the COBOL Object Time System which automatically handles all of the searching and movement of data. All reading and writing of an index file (ten levels of indexing) are performed by the run-time operating system (lIBOL). This does not involve the user. When using the indexed sequential files, the programmer need only specify which record is to be read, written, or deleted. Whenever records are added to the file, the index is automatically updated. additions to the file will not degenerate the file as with other computers. The common technique for using overflow areas for added records has been avoided. Whenever record s have been deleted from the file, the empty space is used again for later additions. The net effect of the addition and deletion techniques significantly increases the time between major ·overhauls ~ of Ihe data files, because the time required to access a file is independent of the number of changes made to It. • Sorting The SORT package permits a user to rearrange records or dala according 10 a set of user-speCified keys. The keys may be ascending or de· scending, alpha or numeric, and any size or location within the record. Mufti-reel file devices may be specified. • Source Ubrary Maintenance System This system lists file entries or adds, replaces, and/or deletes source language data on a file. It can also add, replace, or extract an entire file from the library. • Device Independence The operating system allows the programmer to referen ce a device with a user'assigned logical name as well as its physical name, thus allowing dynamic assignment of peripheral devices at run time. 62 CPL CPL is an interpreter supporting a subset of the draft ANSI PUI language. The following is a summary of the key features of CPl: • Data types include FIXED, FLOAT, CHARACTER. CHARACTER VARYING, BIT VARYING, POINTER , and arrays of Ihese data types. • Storage classes include AUTOMATIC, STATIC, CONTROLLED and BASED • Almost all PUI statement types are supported including READ, WRITE, DECLARE, DEFAULT, GET, PUT, ON and FORMAT • Subroutines and function procedures are recursive • The ON statement provides the capability of recovering from program error under program control. • Complete string manipulation package • CPL supports the following classes of PUI built-in functions: arithmetiC, mathematical, string array, storage control and pseudo-variables. CPL is intended to be easy-to-use for the beginning programmer or non-programmer. At the user's option, state' ments will be executed immediately or saved for deferred execution. A begin+ ning programmer can start by executing simple computational statements and can proceed to building programs. Since CPL is an interpreter, a user can track a program very closely. Debug · ging features, such as source level breakpoints and program modification are available. FORTRAN Version It FORTRAN-tO is a superset of the American National Standard FORTRAN. Both the compiler and objecttime system are reentrant (shareable). The compiler produces optimized object code. The following is a summary of key features and extensions of FORTRAN-tO: • Data Base Management System Interface The programmer may call upon the data base management system faCilitieS from within his program . This system . which allows the CODASYL specificatIOns. allows data files to be consolidated Into one or more data bases Application programs are then permitted to access the dala In the way best suiled to their needs. FORTRAN The FORmula TRANslator language. FORTRAN . IS a widely-used and precedul~nented programming language. It IS designed for solving scientific problems and IS thus composed of mathemabcal-llke statements constructed in accordance with precisely formulated ruies. Therefore. programs written in FORTRAN consist of meaningful sequences of these statements that are .ntended to dllect the computer to perfOl"m the specified computations. FORTRAN has a wide use in every segment of the computer market. UniversitIeS fmd that FORTRAN is a good language with which to teach students how to solve problems via the computer The scientific community relies on FORTRAN because of the ease with which scientific problems can be expressed In addition. FOR TRAN IS used as the primary data processmg language by many timesharing ul ties. • PARAMETER statement- Allows symbolic specification of compile-lime constants • INCLUDE statement-Allows user to include in the compilation of a given program unit source code which resides on a file other than primary source file • GLOBAL OpnMIZAnON-FORTRANto performs extensive local and optional global optimizations • FORDDT -the FORTRAN-tO debug- ge, FORDDT in conjunction with the FORTRAN-l0/~DEBUG M switch will allow: • Display and modification of program data • Tracing of the program statement by statement • Setting of pauses on any statement or routine • OPEN/CLOSE file-specification statements • Array bounds checking can be generated optionally • N-dimensional arrays • ENCODE/DECODE statements • Boolean operations equivalence (EOV) and exclusive or (XOR), in addition to OR. AND. NOT. • The NAMELIST and list-directed 110 features provide format-free input and output operations • Random-access 110 capabilities • Compatibility with IBM type declaration statements • Implied DO loops in 110 statements and data statements • Full mixed'mode arithmetic in expressions • Octat Constants • Logical Operations-full-word masking operations for aU logical functions (rather than a result of just true or false) • END ::: and ERR = in 110 statements • Device independence 63 The FORTRAN-tO object-time system, FOROTS. controls the input/outpul, format interpretation and numerical conversion for compiled programs. The FORTRAN user may reference any 110 device. All special editing. conversion. and file structuring tasks are handled by the object-time system. Devices are normally specified by logical assignment so that physical device selection need not be made until runtime. The devices corresponding to the special 110 statements READ. PRINT. ACCEPT. and TYPE are also assignable at run -time. The object-time system is shareable. FOROTS implements all program data file functions and provides the user with an extensive run-time error reporting system. Device independence is provided to allow the programmer or operator to determine the physical device at run-time. FORTRAN-tO is easy to use in both timesharing and batch processing environments. Under timesharing . the user operates in an interactive editing and debugging environment. FORDOT. an interactive program that is used as an aid in debugging. FORTRAN programs uses the language constructs and variable names of the program itself-thereby eliminating the need to learn another language in order to accomplish on-line debugging. Under batch processing. the user submits his program through the batch software in order to have the compiling. loading. and executing phases performed without his intervention. FORTRAN programs can be entered into the FORTRAN system from a number of devices: disk. magnetic tape. user terminal and card reader. In addi· tion to data files created by FORTRAN. the user can submit data files or FORTRAN source files created by the system editor. The data files conlain the data needed by the user's object program during execution. The source files contain the FORTRAN source text to be compiled by the FORTRAN compiler. Output may be received on the user's terminal. disk or magnetic tape. The source listing cross references all symbols to show where they are defined and where used. MACRO MACRO is the symbolic assembly program on the DECsystem-1O.1t makes machine language programming easier and faster for the user by • Translating symbolic operation codes in the source program into the binary codes needed in machine language instructions. • Relating symbols specified by the user to numeric values. • Assigning absolute core addresses to the symbolic addresses of program instructions and data. • Preparing anoulputlistingoflheprogram which includes any errors detected during the assembly process. MACRO programs consist of a series of statements that are usually prepared on the user's terminal with a system editing program. The elements in each statement do not have to be placed in certain columns nor must they be separated in a rigid fashion. The assembler interprets and processes these state· ments, generates binary instructions or data words, and performs the assembly. MACRO is a two-pass assembler. This means that the assembler reads the source program twice. Basically, on the first pass, all symbols are defined and placed in the symbol table with their numeric va lues, and on the second pass, the binary (machine) code is gen· erated. Although not as fast as a one· pass assembler, MACRO is more efficient in that less core is used in generating the machine language code and the output to the user is not as long. MACAO is a device-independent program; it allows the user to select, at runtime, standard peripheral devices for input and output files. For example, input of the source program can come from the user's terminal, output of the assembled binary program can go to a magnetic tape, and output of the program listing can go to the line printer. More commonly, the source program input and the binary output are disk files. The MACAO assembler contains powerful macro capabilities that allow the user to create new language elements. This capability is useful when a sequence of code is used several times with only certain arguments changed. The code sequence is defined with dummy arguments as a macro instruction . Thus, a single statement in the source program referring to the macro by name, along with a list of the real arguments, generates the entire correct sequence. This capability allows for the expansion and adaptation of the assembler in order to perform specialized functions for each programming job. 64 r SORT The TOPS-lO SORT arranges the records one or more files according to a user-specified sequence. The user designates the keys on which the records are sorted from one or more fields withlO a record. The keys can be ineither ascenchng or descending order. SORT compares the key 'Ields values of all 'ecords Then rt arranges the records on the speCified sequence and merges them Into a single output file. Sort may be used under timesharing and batch, and may be called from within a COBOL program. 0' Data Base Management System Certam data-such as that within commercial, aecou nling. inventory control and admInistrative systems-are used In computer applications which na... e common relationships and proces5lng reqUIrements with data in other apphcabOns ThIs can prove to be a prob4em because as file organizations are defined In one application or program, restructuring, redundant appearance. and even repetitive processing of :he same data are often required in another apphcallOn. To further complicate the problem , oo ... ne processes (i_e., customer order entry, shipment planning, and student "formabon retrieval systems) tend to d Herent data structures than the processes used to create and maintain pnmary data flies. This means that as new apphcabons requirements for ex~t.lOg data are determined and additonal data are defined, program development personnel must either alter existIn9 data file forms and programs or create and mamtaln redundant copies. DIGITAL offers a solution to the problem in the Data Base Management System-DBMS. It enables DEC system-l0 users to organize and maintain data in forms more suitable to the integration of a number of related but separate processes and applications. DBMS is ideal in situations where data processing control and program development function s require structu res and techniques not satisfied by traditional data management facilities. Features The DECsystem-l0 Data Base Management System is predicated upon the proposals of the CODASYL Data Base Task Group (oBTG) which appear in their report of April. 1971. DIGITAL's goal for DBMS is to provide features which assist users in obtaining the most significant objectives stated in the COoASYL oBTG report. These features include: 65 • Hierarchical Data Structures -In addition to sequential structures, simple tree structures and more complex network structures can be created and maintained. Data items can be related within and between various levels 01 the structure established. ( ttAIN II ow><. ;'I , N ~ p MtMaEA II iftMtM9lA , Iil'N II N ' NEU POINTU , . 1'11I0Il IOINlEt o· OWNfA I'OINTEfi • Non-redundant Data OccurrenceData items may appear in a number of different structural relationships without requiring multiple copies of the data. Data structures may be established and modified in a manner most suitable to a given application without altering the occurrence of the data in structures maintained for other applications. • Variety of Access and Search Strategies-Data records can be maintained in chains, as illustrated below. Access may be through DIRECT, CALCULATED, or VIA set location modes. Sort keys, in addition to the normal storage key, may be defined. • Concurrent Access-Multiple run units (or programs) that use the same re-entrant code module further DECsystem-tO supplement the monitor's extensive centralized file handling capabilities. Any number of concurrent retrievals to the same data areas can be handled. Concurrent updates to the same area can be handled by a multiple update queuing mechanism. • Protection and Centralized Control -Usage of a common data definition language establishes data base structures maintained on direct access storage devices that are selectively referenced by individual application programs through privacy lock and key mechanisms. Physical placement of data is specified by a centrally-controlled data definition processor. • Device Independence-The common input/output and control conventions of the DECsystem-l0 monitor provide basic device independence. Applications programs deal with logical areas rather than physical devices. Data base areas may reside on the same or different ITPS-l0, In-House Text Preparation direct access storage devices as System allows DECsystem-l0 users to non-date base files. prepare office-quality or camera-ready • Program Independence of Data(typeset) copy using the interactive Significant steps toward program capability of the DECsystem-1Q. Highindependence are ach ieved by using quality, camera-ready copy for pamthe SCHEMA and SUB-SCHEMAconphlets, advertising brochures, product ceplS of data definition. Individual proflyers, user manuals, and many other grams reference only user-selected types of documentation can be produced data elements rather than entire recand updated rapidly and inexpensively ord formalS. Program alterations due using ITPS-l0. The system allows use 01 to adding new data and relationships many different input and output devices, are minimized. Atterations of the origiincluding interactive CRT or hard copy nal form (i.e., binary, display) and terminals. line printers, typewriterlike element sizes require program redevices, and photocomposition equipcompilations. ment Documents are stored as standard • User Interaction Without Structural DECsystem-l0 files and can be easily Maintenance Responsibilities - Inupdated, edited and re-generated. dividual users, applications, and proThe system is easy-to-use and easy grams may access data structures to learn. Current successful applicawithout the responsibility of maintions range from preparing form letters taining detailed linkage mechanisms to setting daily newspapers. that are internal to the data base software. Common and centralized authorization, error recovery, and building techniques reduce individual LINK-tO, the DECsystem-l0 linking activity to maintain data structures. loader. merges independently-translated • Muttip6eLanguageUsage-TheDBMS modules of the user's program Into a data manipulation language is availsingle module and links thiS module able to both COBOL and FORTRAN with system modules into a form that as host languages can be executed by the operating sys• DBMS Software Modules Consistent tem. It provides automatic retocabon with the CODASVL and loading of the binary modules proData Base Task Group report, the body ducing an executable verSion of the of the DECSVSTEM-20 data base man- user's program. When the loading proagement software includes: cess has been completed. the user can request LINK-tO either to transfer con• DOL-data description language and tralto his program for immediate exeits processor cution or to output the program to a • DML-data manipulation language device for storage in order to aVOid the fat COBOL and FORTRAN programs loading procedure in the future . • DCBS-data base manager module of While the primary output of lINK-l0 re-entrant run-time routines is the executable version of the user's • OBU-group of data base system supprogram, the user can requestauxihary port utilities ITPS·10 LlMK·10 66 OIltpUt III the form of map, log, save, symbol, overlay plot, and expanded core linage files This additional output IS not automatically generated: the user t tnCIude appropriate switches in tws com mand strings to LINK-10 in order to oblalll thIS type of output. The user can also gam precise control over the tIaCJIng process by setting various load~ parameters and by controlling the Il'I9 of symbols and modules. FurlIermofe. by setting switches in his command stnngs to LINK-tO, the user r.I specdy the core sizes and starting dtesses of modules, the size of the s,mboI tab6e, the segment into which 'lne symbol tab6e IS placed, the messages It'Ie see on his terminal or in his log the seventy and verbosity levels oI\1'Iemessages . Finally, he can accept . . UNK-K) defaults for items In a file $PedfJCahon or he can set his own defICIts that 'NIII be used automatically wnen he omits an Item from his commiI'Id stnng 1(-10 has an overlay facility to be used when the total core required by a user s program IS more than the core I¥a8bIe to the user. The user organizes bel program so that only some portions tfIe program are reqUired in core at .". one llme The remaining portions :resde '" a dISk file and are transferred ~ out of core during execution. Because the porttOn brought into core may over1ay a portion already core~t. the amount of core required D)' It'8entJfe program is reduced. Overtays can be invoked either by runtime routines called from the user's program Of by automatIC calls to subroutines outsde the current overlay link. ".-1d MACY11 - LNKX11 UolCYll IS a cross-assembler which opetdtes on the OECsystem-IO and as:sembles MACAO-ll source code for t'Ie POP-It family of computers. MACYll will produce 8IIher an absoe binary or a relocatable object modIAe depending upon the assembly mode The resultmg absolute bmary files are transferrable to the PDP-ll for executJOn or, the relocatable object modules may be used as Input to the 11 'mker on the OECsystem-l0 and then transferred to the PDP-ll operahng enVIronment. MACYll will append a symbollable and (optionally) a cross-reference table to the listing file. IAA(;Yll produces a -s ide-by-side~ as5embly listmg of symbolic source statements, thetr octal equivalents, assigned addresses and error codes. DDT The Dynamic Debugging Technique, DOT, is used for on-line program composition of object programs and loran · line checkout and testing of these programs. For example, the user can perform rapid checkout of a new program by making a change resulhng from an error detected by DOT and then Immediately executing that section 01 the program for lestlng. Alter the source program has been compiled or assembled, the binary object program with ItS table of defined symbols is loadedwllh DDT. In command stflngs 10 ~OT. the user can speCify locations in hiS program, or breakpoints, where ~OT is to suspend execution in order to accept further commands. In this way, the user can check out his program sectlon-by-section and.lfan error occurs, tnsert the corrected code immediately. Either before DOT begins execution or at breakpoints, the user can examine and modify the contents of any location. lnserlionsand deletions can be 10 source language code or in vaflous numeflc and texl modes. DDT also performs searches, gIves cond., tlonal dumps, and calls user-coded debuggtng subrouttnes at breakpoint locations 67 FAILSAFE/BACKUP The FAILSAFE/BACKUP programs are used to selectively or universally save disk files on magnelic tape. Files may be copied to magnetic tape. In a special format, selectively by hie name or groups of file names, by projectlprogram mer number, by disk structure (logical or physical), or universally In addition to providing backup of files, these programs allow a method of extendmg disk space by allowmg infrequentlY'used files 10 be stored on tape. RestaTing of files from FAILSAFE/BACK, UP formatlapes can likewise be handled on an Individual file. groups of files, projecllprogrammer, log.cal or phYSical disk basis. An added benefit is achieved when restOTing files in Ihat disk fragmentation is often minimized by the failsafe /restore operation. TECO Message Control System The Message Control System (MCS~1O) is to provide the DECsystem-l0 with an efficient, transaction processing-oriented system that facilitates control of communications between a network of t erminals and applications processes. The intent is to provide generalized routines that are readily used from COBOL programs and network definitions. Message control in its fullest sense includes a complex of hardware and software systems: • Terminals and transmission devices. • Remote and central site concentrators. • Central site communications multi• plexers. DECsystem-l0 Monitor and its Message Service module. • Message Control System (MCS-l0) • Routines. Extended Communications Language module and interfaces (COBOU lIBOl). • Network Definition, Activation and Operations Control Routines. • Message Oriented Applications Programs. • Data Base Management capability via DBMS-1O. The activities normally associated with message control are cooperative processes distributed among communications concentrators, multiplexers, and a central system. Actual 110 transmission, line control, error handling, device selection, code translation, and message buffering are handled by the remote and local concentrators and front-end processors. The DECsystem10 central processor, Monitor, and Message Control modules accept, route, queue and log term inal and application program-generated messages. Upon the occurrence of specific user-specified events, application programs are activated to perform message processing. Applications programs receive messages from queues through interface modules, perform processes related to data within messages and send messages back through queues to terminals andlor other application processes. PIP The Peripheral Interchange Program, PIP, is used to transfer data files from o ne 110 devjce to another. Commands to PIP are formatted to accept any number of input (source) devices and one output (destination) device. Files can be transferred from one or more source devices to the destination device as either one combined file or individual files. Switches contained in the command string to PIP provides the user with the following capabilities: • Naming the files to be transferred. • Editing data in any of the input files. • Defining the mode of transfer. • Manipulating the directory of a device if it has a directory. • Controlling magnetic tape and card punch functions. • Recovering from errors during processing. RUNOFF RUNOFF facilitates the preparation of typed or printed manuscripts by performing line justification, page numbering, titling, indexing, formatting, and case shifting as directed by the user. The user createsa file with an editor and enters his material through his terminal. In addition to entering the text, the user includes information for formatting and case shifting. RUNOFF processes the file and produces the final formatted file to be output to the terminal, the line printer, or to another file. With RUNOFF, large amounts of material can be inserted into or deleted from the file without retyping the text that will remain unchanged. After the group of modifications have been added to the file, RUNOFF produces a new copy of the file which is properly paged and formatted. 68 The Text Editor and COrrector program , TECO, is a powerful editor used to edit any ASCII text file with a minimum of effort. TECO commands can be separated into two groups: one group of elementary commands that can be applied to most editing tasks, and the larger set of sophisticated commands for character string searching, text block movement, conditional commands, programmed editing, and command repetition. TECO is a character-oriented editor. This means that one orm ote characters in a line can be changed without retyping the remainder of the line. TECO has the capability to edit any source docu ment: programs written in MACRO, FORTRAN, COBOL. ALGOL, or any other source language; specifications; memoranda, and other types of arbitrarily-formatted text. The TECO program does not require that line numbers or other special formatting be associated with the text. Editing is performed by TECO via an editing buffer. which is a section within TECO's core area. Editing is accomplished by reading te xt from any device into the editing buffer (inputting), by modifying the text in the buffer with data received from either the user's term inal or some other device (inserting), and by writ ing the modified text in the buffer to an output file (outputting). A position indicator, or buffer pointer, is used to locate characters within the buffer and its position determines the effect of many of TECO's commands. It is always positioned before the first character, between two characters, or after the last character in the buffer. Various commands, such as insertion commands, always take place at the current position of the buffer pointer. There are TECO commands to manipulate data within the editing buffer. Input and output commands read data from the input file into the buffer and output data from the buffer to the output file. There are other commands to have one or more characters inserted into the editing buffer, deleted from the buffer, searched for, andlor typed out. In addition. the user can employ iteration commands to execute a sequence of commands repeatedly and conditional execution commands to create conditional branches and skips. TOPS-10 Operating System The resident operating system is made up of a number of separate and somewhat independent parts, or routines. Some of these routines are cyclic In nature and are repeated at every system clock interrupt (tick) to ensure that every user of the computing system is receMng the requested services. These cyclic routines are • The command processor, or decoder • The scheduler • The swapper The command decoder is responsible for Interpreting commands typed by the user on his terminal and passing them to the appropriate system program or rouMe. The scheduler decides which user is to run in the interval between the clock interrupts, allocates sharable system resources, and saves and restores conditions needed to start a program interrupted by the clock. The swapper rotates user jobs between secondary memory (usually disk or drum) and core memory after deciding which jobs should be in core but are not. These routines constitute the part of the operating system that allows many jObs to be operating simultaneously. The non-cyclic routines of the operatmg system are invoked only by user programs and are responsible for providing these prog rams with the services avaiable through the operating system. These routines are • The UUO handler • The InpuUoutput routines • The file handler ecuted, go to the operating system for processing. The input/output routines are the routines responsible for directing data transfers between peripheral devices and user programs in core memory. These routines are invoked through the UUO handler, thus saving the user the detailed programming needed to control peripheral Ctevices. The file handler adds permanent user storage to the computing system by allowing users to store named programs and data as files. Scheduler The DECsystem-l0 is a multiprogramming system; i.e., it allows several user jobs to reside in core simultaneously and to operate sequentially. It is then the job of the scheduler to decide which jobs should run at any given time. In addition to the multiprogramming feature, the DECsystem-l0 employs a swapping technique whereby jobs can exist on an external storage device (e.g., disk or drum) as well as in core. Therefore, the scheduler decides not only what job is to be run next but also when a job is to be swapped out onto disk or drum and later brought back into core. ------------1 1=1" 1 1 1L ____________ ~~. -.11 ~ The UUO handler Is the means by which the user program communicates with the operating system in order to have a service performed. Communicatton is by way of programmed operators (also known as UUO 's) contained In the user program which, when ex- THE RESIDENT OPERATING SYSTEM. 69 . All jobs in the system are retained in ordered groupings called queues. These queues have various priorities that reflect the status of each job at any given moment. The queue in which ajob is placed depends on the system resource for which it is waiting and, because a job can wait for only one resource at a time, it can be in only one queue at a time. Several of the possible queues in the system are • Run queues for jobs waiting for, or jobs in, execution. • 1/0 wait queues for jobs waiting for data transfers to be completed. • Resource wait queues for jobs waiting for some system resource. • Null queue for all job numbers that are not currently being used. The job's position within certain queues determines the priority of the job with respect to other jobs in the same queue. Forexampte, if ajob is first in the queue for a sharable device, ithas the highest priority for the device when it becomes available. However, if a job is in an I/O wait queue, it remains in the queue until the 1/0 is completed. Therefore, in an li D wait queue, the job's poSition has no significance. The status of a job is changed each time it is placed into a different queue. The scheduling of jobs into different queues is governed by the system clock. This clock divides the time forthe central processor into sixtieths of a second. When the clock licks, the scheduler decides which job will run during the next cycle. Each job, when it is assigned 10 run, is given a time slice. When the time slice expires for the job, the clock notifies the central processor and scheduling is performed. The job whose time slice just expired is moved into another, perhaps lower, priority run queue, and the scheduler selects another job to run in the next time slice. If the currently running job is the null job and a higher priority job (any job) becomes ready to run before the clock ticks it will immediately run. If the currently running job is not the null job and a high priority (HPQ real -time) job becomes runnable it will run at the next clock tick. Finally if a job just becoming runnable is not an HPQ job, but is of higher priority than the current job, it will only preempt the current job when the applicable time slice has expired. Each job, when it is assigned to run, is given a time slice. When the time slice expires for the job, the clock notifies the central processor and scheduling is performed. The job whose time slice just expired is moved into another, perhaps lower, priority run queue, and the scheduler selects another job to run in the next time slice. Scheduling may be forced before the clock ticks if the currently-running job reaches a point at which it cannot immediately continue. Whenever an operating system routine discovers that it cannot complete a function requested by the job (e.g., it is waiting for 110 to complete or the job needs a device which it currently does not have). it calls the scheduler so that another job can be selected to run. The job that was stopped is then requeued and is scheduled to be run when the function it requested can be completed. For example : when the currentiy running job begins input from a DEC tape, it is placed into the 110 wait queue, and the input is begun. A second job is scheduled to run while the input of the first job proceeds. If the second job then decides to accessa DECtape, it is stopped because the DECtape control is busy, and it is placed in the queue for jobs waiting to access the DECtape control. A third job is set to run. The input operation of the first job finishes, freeing the DECtape control forthe second job. The 110 operation of the second job is initiated, and the job is transferred from the device wait queue to the 110 wait queue. The first job is transferred from the 110 wait queue to the highest-priority run queue. This permits the first job to preempt the running of the third job. When the time slice of the first job becomes zero, it is moved into the second run queue, and the third job runs again until the second job completes Its I/O operation. In addition, data transfers allow the scheduler to permit the user to overlap computation with data transmission. In unbuffered data modes, the user supplies an address of a command list containing pointers to locations in his area to and from which data is to be transferred. When the transfer is initiated, the job is scheduled into an I/O wait queue where it remains until the device signals the scheduler that the entire transfer has been completed. In buffered modes, each buffer contains information to prevent the user and the device from using the same buffer at the same time. If the user requires the buffer currently being used by the device as his next buffer, the user's job is scheduled into an 110 wait queue. When the device finishes using the buffer, the device calls the scheduler to reactivate the job. TOPS-l0 also provides the ability to tune the system scheduler to specific loads. The system administrator can set aside percentages of the CPU to given classes of timesharing and batch users. This facility can be dynamically changed while the system is running and need not be defined at system generator time, thus facilitating optimal system usage over a wide variety of system loads. 70 + Swapper The swap per is responsible for keepIng in core the jobs most likely to be run. It determines if a job should be in core by scanning the various queues in whICh a job may be. If the swapper decides that a job should be brought into core, it may have to take another job already in core and transfer it to secondary storage. Therefore, the swapper ~ not only responsible for bringing a JOb IOta core but is also responsible for selecting the job to be swapped out. A job is swapped to secondary storage for one of two reasons: • Ajob that is more eligible torun needs to be swapped in and there is not enough room in core for both jobs. • The JOb needs to expand its core size and there is not enough core space to do so. If the latter case is true, the job must be swapped out and then swapped in later with new allocation of core. The swapper checks periodically 10 see .f a job should be swapped in. If there IS no such job, then it checks to see If a job is requesting more core. If there IS no job wishing to expand its size. then the swapper does nothing further and relinquishes control of the processor until the next clock tick. uuo Handler The UUO handler is responsible for accepting requests for services available through the operating system . These requests are made by the user program via software-implemented instructions known as program med operators, or UUO's . The various services obtainable by the user program include: • Communicating with the 1/0 devices on the computing system, including connecting and responding to any special devices that may be desired on the system for real -time programming. • Receiving or changing information concerning either the computing system as a whole or the individual program. • Altering the operation of thecomputing system as it concerns the user job, such as controlling execution by trapping or suspending, or controlling core memory by locking. • Communicating and transferring control between user programs. The UUO handler is the only means by which a user program can give control to the operating system in order to have a service performed . Contained in the user program are operation codes which, when executed, cause the hardware to transfer control to the UUO handler for processing. The routine obtains its arguments from the user program. The core location at which the UUO operation was executed is then remembered. After the UUO request has been processed, control is returned to the user program at the first or second instruction fOllowing the UUO . In this way, the software supplements the hardware by providing services that are invoked through the execution of a single core location just as the hardware services are invoked. 71 Device Service Routines 1/0 programming in the DECsystem10 is highly convenient for the user because all of the burdensome details of programming are performed by the operating system . The user informs the operating system of his requirements for I/O by means of UUO's contained in his program. The actual input/output routines needed are then called by the UUO handler. Since the operating system channels communication between the user program and the device, the user does not need to know all the peculiarities of each device on the system. In fact, Ihe user program can be written in a similar manner for all devices. The operating system will ignore, without returning an error message, operations that are not pertinent to the device being used. Thus, a terminal and a disk file can be processed identically by the user program. ln addilion. user programs can be written to be independent of any particular device. The operating system allows the user program to specify a logical device name, which can be as· sociated with any physical device at Ihe time when the program is to be executed. Because of this feature, a program that is coded to use a specific device does not need to be rewritten if the device is unavailable. The device can be designated as a logical device name and assigned to an available physical device with one command to the operating system. Data is transmitted between the device and the user program in one of two methods: unbuffered mode or buffered mode. With unbuffered data modes, the user in his program supplies the device with an address, which is the beginning of a command list . Essentially, this command list containspointers specifying areas in the user's allocated core to or from which data is to be translerred. The user program then waits until the operating system signals that the entire command list has been processed. Therefore, during the data transfer, the user program is idly waiting for the transfer to be completed. .. Data transfers in buffered mode utilize a ring of buffers set up in the user's core area. Buffered transfers allow the user program and the operating system's 110 routines to operate asyn chronously. As the user program uses one buffer, the operating system processes another one by filling or emptying it as interrupts occur from the device. To prevent the user program and the operating system from using the same buffer at the same time, each buffer has a use bit that designates who is using the buffer. Buffered data transfers are more efficient than unbuffered transfers because the user program and the operating system can be working together in processing the data. Several steps must be followed by the user program in order for the operating system to have the information it needs to control the data transfers. Each step is indicated to the operating system with one programmed operator. In the first step, the specific device to be used in the data transfer must be selected and linked to the user program with one of the software 110 channels available to the user's job (OPEN or INIT programmed operators). This device remains associated with the software 110 channel until it is disassociated from it (via a programmed operator) or a second device is associated with the same channel. In addition to specifying the 1/0 channel and the device name, the user program can supply an initial file status, which includes the type of data transfer to be used with the device (e.g., ASCII, binary), and the location of the headers to be used in buffered data transfers. The operating system stores information in these headers when the user program executes programmed operators, and the user program obtains from these headers all the information needed to fill or empty buffers. Another set of programmed operators (IN BUF and OUTBUF) establishes the actual buffers to be used for input and output. This procedure is not necessary if the user is satisfied to accept the two buffers automatically set up for him by the operating system . The next step is to select the file that the user program will be using when reading or writing data. This group of operators (LOOKUP and ENTER) is not required for devices that are not filestructured (e.g., card reader, magnetic tape, paper-tape punch). However, if used, they will be ignored, thus allowing file-structured devices to be substituted for non-file-structured devices without the user rewriting the program. The third step is to perform the data transmission between the user program and the file (IN, INPUT, OUT, and OUTPUn. When the data has been transmitted to either the user program on input or the file on output. the file must be closed (CLOSE, fourth step) and the device released from the channel (RELEASE, fifth step). This same sequence of programmed operators is performed for all devices; therefore, the 110 system is truly device-independent because the user program does not have to be changed every time a different device is used. In addition to reading or writing data to the standard 1(0 devices, provisions are included in the operating system for using the terminal for 1/ 0 during the execution of the user program. This capability is also obtained through programmed operators. As the user program is running, it can pause to accept input from or to type output to the terminal. The operating system does all buffering for the user, thus saving programming time. This method of terminal If 0 provides the user with a convenient way of interacting with a running program. 72 Command Control Language By allowing resources to be shared among users, the timesharing environment utilizes processor time and system resources thatarewasted in singleuser systems. Users are not restricted to a small set of system resources, but instead are provided with the full variety of facilities. By means of his terminal, the user has on-line access to most o f the system's features. This on-line access is available through the operating system command control language, which is the means by which the timesharing user communicates with the operating system. Through the command language, the user controls the running of a task, o r job, to achieve the desired results: create, edit. and delete files ; start, suspend, and terminate a job; compile, execute, and debug a program . In add ition, since GALAXY batch software accepts the same command language as the timesharing software, any user can enter a program into the batch run queue. Thus, any timesharing termina l can act as a remote job entry terminal. When the user types commands and/or requests on his terminal, the characters are stored in an input buffer in the operating system, The command decoder examines these characters in the buffer, checks them for correct syntax. and invokes the system program or user program as specified by the command. File System Mass storage devices, such as disks and drums, cannot be requested for a user's exclusive use, but must be shared among all users. (An exception is the assignment of a disk structure to a single user; I.e., a ·private ~ disk structure.) Because many users share these devices, the operating system must ensure independence among the users : one user's actions must not affect the activities of another unless the users desire to work together. To guarantee such independence, the operating system provides a file system for disks, disk packs. and drums. Each user'sdata is organized into groups of 128-word blocks called files. The user gives a name to each of his files, and the list of these names is kept by the operating system for each user. The operating system is then responsible for protecting each user's file storage from intrusion by unauthorized users. In addition 10 allowing independent file storage for users the operating system permits sharing of fites among individual users. For example, programmers working on the same project can share the same data in order to com plete a project without duplication of effort. The operating system lets the user specify protection rig hIs, or codes, for his files. These codes designate If other users may read the file, and after access, jf the files can be modified in any way. A new facility called File DAEMON allows the user to specifically permit or deny access to any lile, or set of fites, for specific users. The user may also create a log of accessos to his files for later review, proprietary program billing, etc. On each clock interrupt. control is given to the command decoderto Interpret and process one command in the Input buffer The command appearing Ifl the input buffer is matched with the table of valid commands accepted by the operating system. A match occurs rf the command typed in exactly matches a command stored In the system, or if the characters typed in match the beglnnmg characters of only one command (i e , constitute a unique abbreviaOOn). When the match IS successful, the legality information (or flags) assoCiated With the command is checked to see If the command can be performed Immediately For instance, a command must be delayed if the job is swapped out to the disk and command requires that the job be resident in core ; the command IS executed on a later clock ItIl errupt when the job is back in core. It all cond Illons as specified by the legalIty flags are met, control is passed to the appropriate program. The user of the DECsystem -l0 is not required to preallocate file storage : the operating system allocates and deallocates the file storage space dynamically on demand. Not only is this convenient for the user because he does not have to worry about allocation when creating files, but this feature also conserves storage by preventing targe portions of storage from being unnecessarily tied up. However, a large batch job which needs to preallocate space may do so. Files are assigned protection levels for each of three classes of users : self: users with a common project number; and all users. Each user class may be assigned a different access privilege; there are eight levels in each of the three user classes. The owner of a file may always change its protection. In addition the File DAEMON is called on all access failures if the owner protection is 4,5.6.7 ... Note that the protection used by the system to determine access right after a File DAEMON call is provided by the file DAEMON. Tab" VIII, File Protection Scheme, Protection Level Access Code Access Privi leges Greatest Protection 7 6 5 1 3 No access privileges (except by owner) EXECUTE ONLY READ , EXECUTE APPEND, READ. EXECUTE UPDATE. APPEND , READ. EXECUTE WRITE, UPDATE. APPEND . READ. EXECUTE RENAME . WRITE. UPDATE, APPEND , READ, EXECUTE CHANGE PROTECTION, RENAME, WRITE, UPDATE , APPEND. READ, EXECUTE 4 Least Protection 2 o 73 FUeHandler To reference'" file, the user does not need to know where the file is physically tocated. A named file is uniquely identified in the system by a file name and extension, an ordered list of directory names (UFDs and SFDs) which identify the owner of the file, and a file structure name which identifies the group of disk units containing the file, Usually a complete disk system is composed of many disk units of the same and/or different types. Therefore, the disk system consists of one or more file structures- a logical arrangement of files on one or more disk units of the same type. This method of file storage allows the user to designate which disk unit of the file structure he wishes to use when storing files. Each file structure is logically complete and is the smallest section of file memory that can be removed from the system without disturbing other units in other file structures. All pointers to areas in a file structure are by way of logical block numbers rather than physical disk addresses; there are no pointers to areas in other file structures, thereby allowing the file structure to be removed. File Structures A file structure contains two types of files; the data files that physically contain the stored data or programs, and the directory files that contain pointers to the data files. Included in these directory files are master file directories, user file directories, and sub-file directories. Each file structure has one master file directory (MFO). This directory file is the master list of all the users of the file structure. The entries contained in the MFD are the names of all the user file directories on the file structure. Each user with access to the file structure has a user file directory (UFO) that contains the names of all his files on that file structure ; therefore, there are many UFOs on each file structure. As an entry in the user file directory, the user can include another type of directory file, a sub-file directory (SFO). The sub-file directory is similar to the other types of directory files in that it contains as entries the names of all files within that sub-directory. This third level of directory allows groups of files belonging to the same user to be separate from each other. This is useful when organizing a large number of files according to func tion. In addition, sub-file directories allow non-conflicting, simultaneous runs of the same program using the same file names. As long as the files are in different sub-file directories, they are unique. Sub-file directories exist as files pointed to by the user file directory, and can be nested to the depth specified by the installation at system generation time. 74 F1$e Protection All disk files are composed of two parts: data and information used to retrieve data. The retrieval part of the file contains the pointers to the entire file, and is stored in two distinct locations on the device and accessed separately from the data. System reliability is increased with this method because the probability of destroying the retrieval information is reduced; system performance is improved because the number ofpositionings needed for random-access methods is reduced, The storing of retrieval information is the same for both sequential and randomaccess files. Thus a file can be created sequentially and later read randomly, or vice versa, without any data conversion. One section of the retrieval information is used to specify the protection associated with the fite. This protection is necessary because disk storage is shared among all users, each of whom may desire to share files with, or prevent files from being written, read, or deleted by other users. As discussed above, these protection codes are assigned by the user when the file is created and designate the users who have privileges to access the file, DlskOuotas Disk quotas are associated with each user (each project-programmer number) on each file structure in order to limit the amount of information that can be stored in the UFO of a particular file structure. When the user gains access to the computing system, he automatically begins using his logged-in quota. This quota is not a guaranteed amount of space, and the user must compete with other users for it. When the user leaves the computing system, he must be within his logged-out quota. This quota IS the amount of disk storage space that the user is allowed to maintain when he is not using the system and IS enforced by the system program that lS used in logging off the system. Ouotas are determined by the individual Installation and are, therefore, used to ratIOn disk resources in a predetermined manner. To the user, a file structure Is like a device; i.e., a file structure name or a set of flle structure names can be used as the device name in command strings or UUO calls to the operating system. AI· though file structures or the units compoSing the file structures can be specified by their actual names, most users specify a general. or generiC, name (DSK) whIch wfJI cause the operating system to select the appropriate file struc ture Theapproprlate file structure IS determined by a jab search list. Each JOb has ItS own Job search list with the file structure names in the order in whic h they are to be accessed when the generic name is specilied as the deVice. ThIS search list is established by LOGIN and thus each user has a UFO for hiS prOJect-programmer number in each fIle structure In which LOGIN allow s him to have files. File Opera!",ns File writing on the disk can be defined by one of four methods : creating. superseding, updating and simultaneous updating. The user is creating a file if no other file of the same name exists in the user's directory on the indicated file structure. If another file with the same name already exists in Ihe directory, the user is superseding, or replacing, the old file with the new lile. Other users sharing the old file at the time it is being superseded continue using the old file and are not affected until they finish using the file and then try to access it again. At that time, they read the new file. When auserupdales a file, he modi· fies selection parts of the file without creating an entirely new version. This method eliminates the need to recopy a file when making only a small number of changes. If other users try to access a ft1e while it is being updated, they receive an error indication issued by the system. Many users can update the same file through the use of the simultaneous update feature. This allows users to work with the same data base simultaneously. An ENO/DEO facility is also offered to allow record level lock out and thus eliminate race conditions where multiple users are attempting to read andlor write the same record. 75 Disk Storage Management File storage is dynamically allocated by the file handler during program oper· ations, so the user does nol need to give initial estimates of file length or the number of files. Files can be any length, and each user may have as many files as he wishes. as long as dIsk space IS available and the user has nol exceeded his logged-m quota. ThiS feature IS ex' tremely useful during program devel· opment or debuggmg when the final size of the file is st.1I unknown. However, for efficlenl random access, a user can reserve a contiguous area on the disk if he desires. When he has completed processing, he can keep his preallo' cated file space for future use or return it so Ihat other users can have access 10 ,I. Memory Management Input/Output Peripheral Device Assignment With the command language, the user can also request assignment of any peripheral device (magnetic tape. DECtape, and private disk pack) for exclusive use. When the request for assignment is received, the operating system verifies that the device is available to this user, and the user is granted its private use until he relinquishes it.ln this way, the user can also have complete control of devices such as card readers and punches, paper tape readers and punches, and line printers. Spooling When private assignment of a slowspeed device (card punch, line printer, paper tape punch, and plotter) is not required, the user can employ the spool- ing feature of the operating system. Spooling is a method by which output to a slow-speed device is placed on a highspeed disk or drum. This technique prevents the user from consuming unnecessary system resources while waiting for either a device to become available or output to be completed. In addition, the device is managed to a better degree because the users cannot tie it up indefinitely, and the demand fluctuations experienced by these devices are equalized. The DECsystem-10 is a multiprogramming system; i.e., it allows multiple independent user programs to reside simultaneously in memory and to run concurrently. This technique of sharing memory and processor time enhances the efficient operation of the system by switching the processor from a program that is temporarily stopped because of 110 transmission to a program that is executable. When core and the processor are shared in this manner, each user's program has a memory area distinct from the area of other users. Any attempt to read or change information outside of the area a user can access immediately stops the program and notifies the user. Because available memory can contain only a limited number of programs at anyone time, the computing system employs a secondary memory, usually disk or drum, to increase the number of users serviced. User programs exist on the secondary memory and move into memory for execution. Programs in memory exchange places with the programs being transferred from secondary memory for maximum useof avail· able main memory. Because the transferring, or swapping takes place directly between main memory and the secondary memory, the central processor can be operating on a user program in one part of memory while swapping is taking place in another. This independent, overlapped operation greatly improves system utilization by increasing the number of users that can be accommodated at the same time. 76 , To further increase the utilization of memory, the operating system allows users to share the same copy of a program or data segment. This prevents the excessive memory usage that re sults when a program is duplicated for several users. A program that can be shared is called a reentrant program and is divided into two parts or seg ments. One segment contains the code that is not modified during execution (e.g., compilers and assemblers) and can be used by any number of users. The other segment contains non-reentrant code and data. The operating system provides proteclionlfor shared segments 10 guarantee that they are not accidentally modified. Virtual Memory The virtual memory option permits a user program to execute with an address space greater than the physical memory actually allocated to that program during execution. User jobs are swapped as described a bove. However, the enllre program may not necessarily be in core during execution. Programs are divided into pages each of which is 512'words long. Some of these pages may remain on secondary storage while the program executes. When a virtual memory job attempts 10 access a page that IS not in core, a page fault handler decides which page or pagesto remove from core and which to bring in from secondary storage. Unlike the virtual memory implementation on other systems. this DECsyslem-10 feature is an option. Each site may determine ils own need for virtual memory and install il at their convenlence The system administrator may grant the privilege for uSing virtual memory only to those users who truly need lIs capabilities. Those users who are granted the privilege of using virtual memory may elect to invoke the feature for only those programs that could not execute without the virtuat memory capability. The virtual memory users may elect to use the system page fault handler or they may use a handler that is more tailored to the particular application or program behavior. Finally, it is important to pomt out that only those users actually USing the virtual memory feature are affected by any additional overhead associated with a demand paging system. Non-virtual users execute as they would in a non-virtual system with no discernible difference in performance. Multi-Processor Systems DECsystem-l0 Dual Processor systems are composed of two CPU·s. designated the primary processor (master) and the secondary processor (slave). The primary processor is connected to all of the memory in the system and has allof the system'S peripheral 110 equipment connected to its 110 bus. The secondary processor also has access to all of memory, however. there are normally no 110 devices on this processor's 110 bus. The primary processor performs exactly the same operations as the processor in a single processor system. This includes all 110 operations. swapping. core allocation. resource allocation and command decoding. The secondary processor also performs scheduling and execution of user jobs according to the same algorithm used in a single processor system. The secondary processor executes user jobs and scans the same job queues as the primary processor. However, since the slave cannot doany standard 110. it looks for any compute bound jobs which are in core and runnable. A software interlock has been added to the scheduler to prevent the possibility of both processors trying to execute the same job at the same time. Whenever a job being executed by the secondary processor req uests an I/O operation to be performed the jobis stopped and marked for execution on the mas· teronly. Thus both processors run com· pletely asynchronously. both executing the same scheduler, doing the same job accounting and using the same job queues. 77 The existence of dual processors gives OECsystem-l0 users a large scale computing capability, especially in the areas of highly compute bound jobs and non -interactive batch jobs. The existence of a slave more or less dedicated to user computation allows these jobs to be carried on in the systems with little interference with time sharing users. The performance goal is to provide a system in which each customer can improve the service offered to his users over a single processor compute bound system. Either the customer can add more users with the same response time or he can keep the same number of users and reduce turn around time for compute bound jobs. Communications Software Inter-job Communication Shared Data Areas The DECsystem-10 operating system enables a user to communicate with other jobs through the use of sharable data areas. This also enables a data analysis program, for example to read or write an area in the real-time job's core space. Since the real-time job associated with the data acquisition would be locked in core, the data analysis pro- gram residing on secondary memory would become core resident only when the real-time job had filled a core buffer with data. Operating system calls can be used to allow the data analysis program to remain dormant in secondary memory unlil a specified event occurs in the real-time jOb: e.g., a buffer has been filled with data for the data analysis. Inter-Process Communtcatlon Facility The Inter-Process Communication Facility (IPCF) provides the capability for independent jobs to communicate with one another. For example, if several programs are involved in processing or maintaining a data base, it is possible that one program might want to inform the others of any modifications it made to the data. A job using IPCF cannot make any changes to another job so protection is in no way sacrificed when using the IPCF feature. In order to use the IPCF, each participating job that wishes to receive communication from other jobs must request a unique process identifier (PID) from the system. The transmitting job then may send a ~ packet .. of information to another job. (In addition to the information, the system automatically provides a ~ return address· so that the receiving program can respond to the sender.) The monitor maintains a linear queue (the Mmailbox~) for each job using IPCF. The packet (or packets) will be kept in the mailbox until the receiving job retrieves it. This queue is not created untit a job sends an IPCF packet and it does not occupy any space until such time. The maximum number of packets allowed in a queue at anyone time is determined by a -receive" quota that may be set at each installation for each user. (If no quota is set by the installation, the standard default is five.) On systems with the virtual memory option, the packet could be an entire page. In this case, the monitor takes advantage of the page mapping hardware of the KltO and K110 to transmit the page without actually copying it. 78 DECsystem-l0 users have a wide selection of communications products to enhance or facilitate their computing needs. Within the multi -task environment of TOPS-IO. functionality exists for: • Asynchronous communication-the typical vehicle for interactive timesharing or transaction-oriented terminals • Synchronous communicationsfor connection of remote batch, remote terminal concentration and computer-to-computer links. The important featUre of DECsystem-l0 communications software is its implementation as an integral part of the TOPS-tO Operating System. The monitor, not the user, handles the communications housekeeping, and all communications products are fully supported within the TOPS-l0 environment. Appropriate synchronous line protocols -D IGITAL's own DDCMP or BISYNC-are supported. Users may configure networks with simple or complex topologies utilizing the DNB7 family of Universal Front End equipment. The DAS-80 and OAS-go. series remote stations/concentrators can then be used to expand the network topologies. In addition, DECNET-l0 permits the DECsystem-1O to utilize task-to-task communication with other DECsystem-tO's or with any other DEC supplied computer system which supports DECNET. The DAS-61 and DAS-62 can be used to do IBM 2780, 3780 or HASP multi-leaving emulation and termination. Additional detaits concerning the DECsystem-l0 communications capability and products are included in the Data Communications Section. GALAXY·10 Batch Timesharing The OECsystem-l0 is designed lor the concurrent operation of Ilmesharng. muillstream batch, real-time, and remot e communications 10 either SingleOt dual-processor systems In providIng these multifunction capabilities. the DECsystem -lO services Interactive lIsers, operates local and remote batch stations. and performs data acquisition and control functions lor on -line laboratories and other real-lime projects. By dynamically adjusting system operation, the OECsyslem -l0 provides many fea tures for each class 01 user and is therefore able to meel a wide variety of computational reqUirements. Timesharing lakes maximum advantage of the capabilities of the computing system by allowing many independent users to share the facilities of the DEC system-10 simultaneously. Because of the interactive. conversational. rapld response nature of TOPS-lO time-sharing. a wide range of tasks-from solving simple mathematical problems to implementing complete and complex information gathering and processing networks-can be performed by many users concurrenlly. The number of users on the system at anyone time depends on the system configuration and the job mix on the system. DEC system-10 timesharing is designed to support in excess of 200 active users. Interactive terminals can include CATs. hard copy terminals and other devices which operate at speeds of 110 to 9600 baud. Terminal users can be located at the computer center or at remote locations connected to the computer center by communication lines. Timesharing on the DECsystem-lO is general purpose; i.e .. the system is designed in such a way that the command language, inpul/output processing. file structures, and job scheduling are independent of the programming language being used. In addition. standard software interfaces make it easy for the user to develop his own special language or systems. This general purpose approach is demonstrated by the many special'purpose programming languages implemented by DECsystem-l O users. 79 GALAXY·l0 batch software enables the DECsystem-l0 to execute in excess of 30 batch jobs concurrently with timesharing jobs. Just as the timesharing user communicates with the system by way of his terminal, the batch user normally communicates by way of the card reader. (However, he can also enter his job from an interactive terminal.) Unlike the timesharing user, the batch user can punch his job on cards, insert a few appropriate control cards, and leave the job for an operator to run. In addition, the user can debug the program in the time sharing environment and then run it in batch mode without any additional coding. The GALAXY -10 system consists of a series of programs: QUASAR. the system queue manager and scheduler, SPRINT, the input spooler. BATCON. the batch controlier, and the output spoolers. LPTSPL and SPROUT. The input spooler is responsible for reading the input from the input device and for entering the job into the batch controller's input queue. The input spooler sends a message to aUASAR to do the actual entering mto the batch input queue. Although the input spooler is oriented toward card reader input, disk and magnellc tape also can be handled. The input information is then separated according to the control commands in the input deck and placed into disk 'iles for subsequent processing. In addition, the input spooler creates the job's log file and enters a report of its processing of the job, along with a record of any operator intervention during its processing. The log file is part of the standard output that the user receives when his job terminates. Afterthe inputspooler reads the endof-file and closes the disk files, it makes an entry in the batch controller's input queue. The batch controller processes batch jobs by reading the entries in its queue. The control file created by the input spooler is read by the batch controller, and data and user program commands are passed directly to the user's job. Operating system commands are detected by the batch controller and passed to the operating system for action. Most operating system and user program commands available to the timesharing user are also available to the batch user, Therefore, only one control language need be learned for both timesharing and batch. During the processing of the job and the control file, the batch controller adds information to the log file for later analysis by the user. QUASAR is responsible for scheduling jobs and maintaining both the batch controller's input queue and the output spooling queues. A job is scheduled to run under the batch controller according to external priorities, processing time limits, and core requirements which are dynamically computed according to parameters specified by the user for his job, such as start and deadline time limits for program execution. QUASAR makes an entry for the job in the batch input queue based upon the various priorities. After the job is completed an entry is made in the output queues forthe job'sspooled output and the job's LOG file. The output spooling programs improve system throughput by allowing the output from a job to be written temporarily on the disk for later transfer instead of being written immediately on a particular output device. The log file and all job output are placed into one or more output queues to await processing. When the specified device is available, the output is then processed by the appropriate spooling program. These spooling programs may be utilized by all users of the computing system. Use of System Features The GAlAXY-1O batch software employs many of the computing system's features in order to operate with maximum efficiency. Because core memory is not partitioned between balch and timesharing jobs, batch jobs can occupy any available area of core. Fast throughpullor high-priority batch jobs is accomplished with the same swapping technique used for rapid response to interactive users. When available core is not large enough for a highpriority batch job, the operating system transfers programs of lower priority to secondary memory in order to provide space for the job. This transfer is done at the same time that the processor is operating on another job. Thus, processing can be overlapped with swapping (and other I/O) to utilize time that would otherwise be wasted, Batch jobs can also share prog rams with timesharing and other batch jobs. Only one copy of a sharable program need be in core to service any number of batch and timesharing jobs at the same time. Flexibility GALAXY-lO batch allows the user great flexibility. The inpul spooler no(mally reads from the card reader, but can read from magnetic tape or disk in order 10 create a control file on disk and to enter the job into the batch controller's input queue. However, a job can be entered from an interactive terminal, in which case the user bypasses the input spooler and creates a control file on disk for the batch controller. The control file contains the operating system commands and user program commands necessary to run the job. The user then enters the job into the batch controller's input queue by way of an operating system command string. In the command string, the user can include switches to define the operation and set the priorities and limits on core memory and processor time. '''''''!~' ! 1'0 _ / 1M". 1- 00' ... _ . . . I 1 - i '....:..o.IIl. ~ -L-C ' !...c"-I-l '---'.-~, .."':- t I'STU. 01', ....'0. 80 .. Real-time Job Dependency Although jobs are entered sequen llally in to the batch system, they are not necessarily run in the order that they are read because of priorities either set by the user in an input spooler control command or computed by the queue manager when determining the scheduling of jobs, Occasionally, the user may wish to submit jobs that must be executed In a particular order: in other words, the execution of one job is dependent on another. To ensure that jobs are execu ted in the proper order, the user must specify an initial dependency count In a control command of the dependent Job This dependency count is then part of the Input queue entry, A control command in the job on which the dependent Job depends decrements the count. When the count becomes zero, the dependent job is executed Error Recovery The user can control system response to error conditions by including commands to the batch controller which will aid In error recovery, These commands are copied Into the control file by the Input spooler With error recovery commands, the user specifies the action 10 be taken when hiS program contains a fatal error, as for example, to skip to the next program or to transfer to a special user-written error handling routine. If an error occurs and the user did not mclude error recovery condilions In hiS Job, the batch controller Inltiales a standard dump of the user's core area and terminates the job. This core dump provides Ihe user with the means to debug his program, AlthOugh the batch system allows a large number of parameters to be specIfied, It IS capable of operating wllh very few user-specified values. If a parameter is missing, the batch system supplies a reasonable default value. These defaults can be modified by the IndiVidual Installations. Computing Operator Intervention Normal operating functions performed by the programs in the batch system require little or no operator intervention; however, the operator can exercise a great deal of control if necessary. He can specify the number of system resources to be dedicated to batch processing by limiting the number of programs and both the core and processor time for individual programs. He can stop a job at any point. requeue it, and then change its priorities. By examining the system queues, he can determine the status of all batch jobs. In addition, the programs in the batch system can communicate information to the operator and record a disk log of all messages printed at the operator's console, All operator intervention during the running of the input spooler and the batch controller causes messages to be written in the user's log file, as well as in the operator's log file, for later analysis. 81 For a system to be satisfactory for real-time operations, two important requirements must be met. The more important requirement is fast response time. Because real-time devices may not be able to store their information until the computing system is ready to accept it. the system would be useless for real-time if the response require ments of a real-time project could not be satisfied. The operating system allocates system resources dynamically in order to satisfy the response and computational requirements of real-time jobs. The second requirement is protection, Each user of the computing system must be protected from other users,just as the system itself is protected from all user program errors. In addition, since real-time systems have special real-time devices associated with jobs, the computing system must be protected from hardware faults that could cause system breakdown. And, because protection is part of the func tion of the operating system, the real time software employs this fealure to protect users as well as itself againsl hardware and software failures. Inherent in the operating system is the capability of real-time, and it is byway of calls to the operating system that the user obtains real -time services. The services obtained by calls Within the user's program include: • Locking ajob in core, • Connecting a real -time device to the priority interrupt system. • PlaCing a job in a high-priority run queue. • Initiating the execution of FORTRAN or machine language code on receipt of an interrupt. • Disconnecting a real -lime device from the priority interrupt system. locking Jobs Memory space is occupied by the resident operating system and by a mix of real-time and non-real-time jobs. The only fixed partition is between the resident operating system and the remain derot memory so as not to lose information when its associated real -time device interrupts (since there may not be sufficient time to swap-in the job) the job can request that it be locked into core. This means that the job is not to be swapped to secondary memory and guarantees that the job is readily available when needed. Because memory is not divided into fixed partitions, it can be utilized to a better degree by dynamically allocating more space to realtime jobs when real-time demands are high. As real-time demands lessen, more memory can be made available to regular timesharing and batch usage. Real-time Devices The real-time user can connect realtime devices to the priority interrupt system, respond to these devices at interrupt level, remove the devices from the interrupt system, and/or change the priority interrupt level on which these devices are assigned. There is no requirement that these devices be connected at system generation time. The user specifies both the names at the devices generating the interrupts and the priority levels on which the devices function. The operating system then links the devices to the operating system. The user can control the real-time device in one of two ways : single mode or block mode. In single mode, the user's interrupt program is run every time the real-time device interrupts. In block mode, the user"s interrupt program is run after an entire block of data has been read from the real-time device. When the interrupt occurs from the device in single mode or at the end of a block of data in block mode, the operating system saves the current state of the machine and jumps to the user's interrupt routine. The user services his device and then returns control to the operating system to restore the previous state of the machine and to dismiss the interrupt. Any number of real-time devices may be placed on any available priority interrupt channel for the program to read. When the specified event occurs, the dormant program is then activated to process the data. The core space for the real -time job's buffer area or the space for the dormant job does not need to be reserved at system generation time. The hardware working in conjunction with the operating system's core management facilities provides optimum core usage. 82 High-Priority Run Queues The real-time user can receive faster response by placing jobs in high-priority run queues. These queues are examined before all other run Queues in the computing system, and any runnable job in a high-priority Queue is executed before jobs in other queues In addition, jobs in high-priority queues are not swapped to secondary memory until all other queues have been scanned. When Jobs in a high-priority queue are to be swapped, the lowest priority job is swapped first and the highest priOrity job last The highest priority job swapped to secondary memory is the first job to be brought into core for immediate execution. Therefore, in addition to being scanned before all other Queues for job execution, the high-priOrity Queues are examined after all other Queues for swapping to secondary memory and before all other Queues for swapping from secondary memory. "High Availability" TOPS·1O provides a number of fea tures which allow the syslem 10 conMue operating although some devices may be Inoperable. I) When errors occur on disks, tapes, memory, or the slave CPU, TOPS-l0 will record the error dala and notify the operator. If the error can be fixed (e.g., put a disk back on-line), the user may continue running without further delay. Alternatively, the operator may instruct the system to remove (detach) the device, in which case the jobs in error will be notified and the system will continue operation without the specified device. llthe error is in a bank of memory, TOPS-lO will even attempt to move its own code (if any) out of the failing memory. In the case of disks, the system will attempt to migrate any swapping space to another unit to prevent loss of jobs. 2) RP04, and RP06 type disks may be dual ported so that in case 01 controller failure, the packs may be accessed via an alternate path. In case of a unit failure, the pack may be moved to a working unit. 3) With use of appropriate 110 bus, memory bus, and device control sWitches, DECsystem-lO's may be configu red to provide redundancy of hardware. Such systems may allow any p iece of hardware to be taken off-line and repaired while the system continues operation (in some cases, it may be necessary to reload the system after a significant reconfiguration). Maintenance Features The Diagnostic Strategy has produced a high quality of maintenance aids which enforce the inc reased performance and availability of a DECsystem-tO. The design of the KLtO processor uses integrated diagnostic logic to enable maximum visibility and reduce Mhard-core ~ requ irements. Special software techniques are employed to maximize test coverage per diagnostic load, thereby decreasing the mean time to diagnose. Board Level Diagnosis The Writable Control Store feature of the KL10 has enabled the MMicro Oiagnostic ~ alternate path methodology of testing. This technology has enabled generation of diagnostics which narrow mallunctions to the board level with a degree of confidence which exceeds industry standards. Maintainability was attacked from a total system's concept, lor not only are the CPU diagnostics capable of supporting the "Module Swap" philosophy of repair. the new generation of peri pheral diagnostics gives the maintainer the same qualities. The programs utilize special diagnostic wrap around logic to isolate suspected malfunctions to subsystem level. Then. through comprehensive logic analysis, not just functionality, the repair person is directed to the failing module. 83 On· line Diagnosis To further increase system availability, special features have been Incorporated into the monitor to enable on -line preventive maintenance. Emphasis has also been placed on testing the thoroughness of delectability and the correctness of isolation. Semiautomatic physical fault insertion is qualifying and providing maturity enhancements for this product. KUNIK Remote Diagnosis One finalleature of the Maintenance and Diagnostic Philosophy is the support of remote diagnosis (KlINIK). This can provide distant maintenance personnel with hardware performance statistics to improve the efficiency of service on KL10 Based Systems. Over the past few years, Datamation Magazine has run an annual survey of computer users, asking their opinions on the quality of service they receive from their vendors. One major area of concern is post-installation maintenance services. DIGITAL has continually ranked first In quality and availability of service. Major factors in this capability are the number and placement of service personnel ; parts inventories available to support local efforts; an organizational structure that provides increasing expertise at each level; a management reporting system that continuously monitors all areas of service;and a wide range of service agreements to meet every customer need. People DIGITAL's hardware maintenance organization includes 3000 hardware speclahsts supported by an administrative staff of over 1000. Thesespecialists are located in more than 3OOworldwide offices for the greatest decentralization of service availability. Large Systems service engineers typically enter DIGITAL with more than four years of field experience. They then undergo four months of intensive trainIng at DIGITAL, followed by yearly updates In new products and technology. They work with product support teams who assure smooth transitions of new products -from development to testing to Installation-and provide consultation and aSSistance for all service locations. Parts The size and location of DIGITAL's parts inventories-at local, district. regional, and headquarters operationsare computer-optimized by our own DECsystem-l0, which takes into account the needs of both existing and new installations. The DECsystem-l0, in concert with PDP-l1 computers at regional offices, assures that parts resources are available locally to solve more than 90% of user problems. For those problems requiring parts not available immediately, DIGITAL has a priority parts system utilizing inventories at district, regional and corporate levels. All priority parts are shipped by specialized air-freight carriers. 87 Support Field Service's hierarchical organization places the greatest concentration of resources at the local level, with supporting facilities at each ascending level in the group. Continuous monitoring of service activity at all levels of Field Service management focuses attention on our worldwide systems base so that resources can be mobilized as required. Education is an integral part of the total Digital customer service system . We believe in training, not only for ourselves, but also for our customers ..Your employees wilt, through education, extract greater performance from your computer. To provide this training, we have established completely equipped training centers in a dozen locations around the world. Our staff at these centers consists of fuU -time instructors dedicated to computer training . The education DIGITAL offers includes standard and custom courses in both hardware and software. Our current schedule includes over 90 standard courses, ranging in duration from one to five weeks. DIGITAL recognizes that you may have a unique requirement that can best be met with education at your location. Our on-site program meets this need by designing and conducting courses where and when you choose. To give flexibility to this structure and provide services that meet users exact needs, DIGITAL offers a variety of service agreements. These agreements range from coverage 12 hours/day, five days/week to around-the-clock maintenance coverage. Occasional service, on a time and materials basis, is available to users who elect to perform selfmaintenance, as weU as off-site repair of electro-mechanical assemblies through 16 Product Repair Centers in the U.S. and in Europe. 88 Good service demands outstanding logistics. Spares availability minimizes computer repair time. Our materials inventory network recognizes this concept- and strengthens the total DIGITAL support system. The first level of spares is often at your own computer site. From this point the inventory is in echelons at the Branch, District, Regional, and Headquarters locations. Our own DECsystern-tO keeps track of this support system, providing replacement parts when needed . For OIGITAL computers located in areas on the fringes of our service capabilities. and for customers who use our maintenance on an "as available~ basis, DIGITAL supplies spares planning and inventory procurement assistance. DIGITAL is a major publisher of manuals, handbooks, and engineering literature. These documents support more than 65,000 installed DIGITAL computers. They meet user requirements for installation, maintenance, education and operation . They provide an authoritative guide to DIGITAL systems. 89 One example is DEC-D-LOG. Maintaining current systems and documents is a critical task. DEC-D-lOG satisfies this requirement by listing and explaining engineering improvements as they evolve. This information is available to keep you abreast of the latest technological developments. The DIGITAL software organization represents over 3,000 man-years of experience gained from the development and support of operating systems used in more than 65,000 computer installations. DIG ITAL 's software varies in compexity from real-time executives for minicomputers tothe TOPS-10Monitor of the DECsystem-10. Applications cover the spectrum from process control and monitoring scientific experiments to implementing reservation and inventory control systems. DIGITAL offers a wide range of software services. These services range from the personal attention of a skilled software consultant to the dislribution of up-to-date sohware and software information. In this way you can get the most out of your DECsystem-10 and keep pace with advancements in software. You purchase only what you need. Software components, including manuals and updates, can be purchased as part of a Software Maintenance Service or ordered separately from the Software Distribution Center. Software maintenance plans for the DECsystem10 include: 1. Software Notebook Updates-Each customer receives two sets of comprehensive software notebooks which can be kept current via periodic update packages. You are assured of always having the most current documentation published. 2. Program Updates-Subscribers receive the latest software versions along with all available Mbug-fixes" on magtape. 3. Software DISPATCH-This service provides all available code corrections as well as a copy of all customer-generated Software Performance Reports published as an early warning service. This is a comprehensive publication aimed at the customer in a dynamic, growing software environment. 90 4 . Expedited Software Performance Report Service-This service provides a very fast priority response system with personalized replies returned directly to the originator, thus bypassing normal lags associated with publication and program update cycles. This insures that any problems you encounter will be corrected. 5. Consulting Service- These are available on a short-term, per-call basis or for a longer term scheduled or resident period. Consultants can install software updates, train new employees, and recommend procedures that result in top performance by your software system. The Advanced Systems Group, an integral part ofthe DECsystem -10 product group, meets special customer's needs by augmenting the standard products and services of the DECsystem -l0. The Advanced Systems Group extends the range of the DECsyslem-l 0 product and services by providing: 1. Hardware/Software Design and Development- Engineering for special products and modifications to standard products, with emphasis in Ihe areas of communications, nelwork systems, high availability and redundant systems, and special configurations. 2. Systems Project Management for large and complex configurations including such functions as systems evaluation and design, systems planning for future expansion, extended factory systems testing, special installation backup and support, and extensions to the OECsystem 10 acceptance test procedures. 3. Repeat Manufacture of previously designed and developed special products. Advanced Systems Group products maintain DIGITAL's high standard of quality. All hardware products are supportable under DECsystem-l 0 field service support plans and are supplied with full documentation, prints and diagnostics. 91 Support of special software is provided through a centralized support group on an individual basis for both installation and Software Performance Reports (SPR's). Because of the customized nature of these products, the Advanced Systems Group provides individual system configu ration review, system integration and system installation assistances when needed. CORPORATION Martborough, Massachusetts 01752 -- - InIerMlionII, CIIiIiVa a, Switzerland TECHNICAL SUMMARY DECSYSTEM The Information In th is document Is subject to change wlthout notice and should not be construed as a 'COmmitment by Digital Equipment Corporation, Digital Equipment Corporation assumes no responsibility lor any errors that may appear In this document. Digital Equipment Corporation makea no representation that the Interconnection 0' Its products In the manner described herein wlll not In'rlnge on existing or future petent rights, nor do the descriptions contained herein Imply the granting of license to make, use, or sell equipment constructed in accordance wlth Its description, The software described In this document Is furnished under license and mey be used or copied only In accordance with tha terms of such license, Unless otherwise noted, K _ 1,024: M _ K', DEC, DECUS, the Digital logo, PDP, VAX, DECnet, DECwriter, DECsystem, DECSYSTEM, DIBOL, RSTS, RSX, UNIBUS, MASS BUS, and VT are trademarks 01 DIgital Equipment Corporation, CopyrlghfO 1981 Digital Equipment Corporation, All rights reserved, 1/11-16 - Contents 1 PREFACE 2 OVERVIEW COMPONENTS ••••.•..•....•..••.•...••... '" .... .... 2-1 Processors ...••..... ".. •••..•.. ... ••••... . . . .... 2-1 TOPS-20 Operating System ..... ... ............. ....... 2·' RELIABILITY ................... .. .... . ..... 2· 3 Software Design ....................... . •... .......... 2-3 System Availability ....... ............. ...... . .. .. 2-3 System Recovery .. . . ... . . . . . • • . . ..•. 2· 3 Error Reponing ................... . ............ 2-3 3 THE USERS FRONT·END SUBSYSTEM .... . ................. 5·7 INPUT I OUTPUT SUBSYSTEM •......•. . ... 5-8 Multiplexed I/O Bus ............ , , ..... 5·6 MASSBUS ........• ,................. . ...... . . 5-9 UNIBUS •............••..•...•............. . ... THE APPUCATION PROGRAMMER The Programming Languages. . . . ........ 3-1 . . ............ 3·' Application Tools ........•••......•••.••.• 3-' THE SYSTEM PROGRAMMER .•••.•.... • .... . ...... 3·' THESVSTEM MANAGER ............ .. ....... ..... " •.• 3-2 User Authoriza tion .••.••......•......••• . .... . .. .. .... 3-2 Privileges •.•••..••..••.•.......••••.... • ....•...•.... 3-2 AllocaUng Disk Storage Quotas ......... . ... 3-2 Controlling Resources ••..••..••.•.•.•. • .••••••••..••• 3-2 Schecluler Controls .........•..•............... ..... ... 3-2 Resource Accounting Statistics •..••.•••..• • ••....••... 3-3 Performance Analysis Statistics .......... . ••••....... .. 3-3 THE SYSTEM OPERATOR ............ . ....... 3-3 Operator Intarface ..•.•..••.•.•......•••.••••.•••.•..• 3-3 Controlling Batch Streams ••..•.•.....•••••••....••... 3-3 System Recovery .................... 3-3 System Backup •••..•..•.......••......•• • ••...•••••• 3·3 USER UTILITIES ........... ....•..... . ... 3-3 4 THE OPERATING SYSTEM THE COMMAND LANGUAGE PROCESSOR THE BATCH SYSTEM ... 4-1 ....... . .4-1 JOBS AND PROCESSES .•..••.......••.....•.•.. .• ... 4·2 PROCESS COMMUNICA nON ...••••••........ • ...••... 4·2 DIrect Process Control .....•..•......... , .•••.•...• , .. 4-2 Interprocess Communication Facility. . . . . ....... 4-2 SoHware Interrupt System ........................... .4·2 Enqueue / Dequeue (ENQIDEQ) ..........•.. .. ....... 4-3 Memory Sharing..... ..•..••..•........•...•. . .4·3 THE TOPS·20 MONITOR .............................. 4·3 VIRTUAL MEMORY MEMORY SUBSYSTEM ...... . .. ......... ......... .. . 5-5 Internal Memory ...•..••.••••.•• . •••.... ......... .... . 5·5 MOS Memory ........•. . .••• .••..................•• .. 5·5 Cache Memory ...•.... . ......•••••...••... 5-5 Organization .........••...••.•..••••••. .....••...... 5-6 System Control of Cache ........ . . ............. 5·7 Memory Mapping on the Kl 100E ..... . . .....• 5-7 •... . .. 4-4 VIRTUAL MEMORY OPERATIONS ••••.. .. .. 4-4 THE FilE SySTEM................. . ............ 4-5 . . .4-5 Flies ................... ......... ...... . ....... File Protection ••.•••.•••••.....••••.•....•••.•.••.... .4·5 Fite Directories ...................................... 4-6 Groups ..............•..•..•.•••••••.................4-6 File Usage ••... • •..••.••.••••••.••••••...•...••••.•.•• 4·6 Archiving Files ...........................•..•.•.......4-6 Tape labelling .. • •..••.•..•••••.•.•••••..•..•••...•.•. 4-6 CONSOLE FRONT-END PROCESSOR AND SOFTWARE •• 4-6 Console Functions •..•••••••...•.................... .. 4-6 Command Tarmlnal Functions .••....••••..•...••..•••• .4·6 Peripheral Interface .....•.•..•... . .•••.•...•. 4-6 Diagnostic/Maintenance Functions ......••..•......... 4-6 5 KL10-E PROCESSOR EXECUTION BOX (EBOX) . . ••••. . . . . . . ..•• . ••• •. . .. 5-1 Instruction Set ••..••.•.•••.....•.......••.••.. ..... ... 5-2 Meters .........•...•. . .5-4 Priority Interrupt System .................... . . ... . . ... 5·4 . ... 5·9 6 KS10 PROCESSOR SYSTEM ARCHITECTURE ... ...•..• , ..•. 6-1 KS I OTechnology ................. . .. .. 6-1 The KSIO Central Processing Unit ........... .... ...... . 6·1 . .. 6-2 Cache Memory •......•..•••..•.........•... . Generat Reg isters ••... . .....................•. 6-2 Mlcrostore ..•••••....••.•••.••.•..••.........•.... . . 6-2 Instruction Set •...•.•.....•......•.... .. ..........•... 6-2 Processor Modes •••••..•....•.•..••••••........ . .... 6-3 MEMORy ................ •••.... ....... ....... . .. 6-3 Memory Address Mapping ........................•... 6-3 MOS Memory ......••.••.....•• • •••....••• , •••..••... 6-4 MS10 memory •••...•..••..•.•.•.•••....•....••..•.... 6-4 CONSOLE SUBSYSTEM .............................. 6-4 7 THE PERIPHERALS MASS STORAGE PERIPHERALS .............•• 7·1 DiSks ................................................ 7·1 Tape Devices ..................•..••••••......••..... 7-1 UNIT RECORD PERIPHERALS .•..••.................• 7-2 lP20·A and ·B l ineprinter. ................•. . .... 7·2 lP20·C end -0 Llneprlnters .............. , ............. 7-3 lP200 Llneprlnters ............................. . ... 7-3 Cardreaders .................... .......... ..7·4 PC 20 Paper Tape Reader / Punch ...................... 7-4 TERMINALS AND INTERFACES , ......... , ...... ... .... 7-4 lA 120 Hardcopy Terminal ••. . .....•• 7·4 lA3S Hardcopy Terminal •..• , ..•.• , ................... 7·5 VT100 Video Terminal ........ ........... ....... 7·5 DZlt Terminal Line Interlace .••.•..••• ,.... . .. 7-6 DH11 Programmable Asynchronous Serial Line Multipl exer .................. . ... 7·6 Dl 11 Serial line Asynchronous Interfaces .... 7·6 DUP II Single Synchronous line Interface ...... ... •..•• 7·6 KMC11-A AU)tltlary Processor ......................... 7-S DN20 COMMUNICAliONS FRONT END ...•.•.•..••.••. 7-6 8 THE LANGUAGES TOPS-20 ASSEMBLER ................................ S-1 DEBUGGING TOOLS . . . • . . • . . . • . •• ....... . ..... . . .. 8-1 FORTRAN . ...•...••..•.•.•...... . ..•. S·, language extensions ... . .• . ... . ..... . . ......... 8·2 Opti mization .•...........•...•. • • .••.....••....•••.••. 8·2 Debugging Tools •••.•..••..••..•••..•.•••.....••..•... 8-2 COBOL •.•.........••••.•...••.•.•••....••.....••.••. S-2 Data Types ..•••••..••••..••..•..•....... . .• 8-3 StrIng Manipulation . . . . . . . . . . . . . . .... . . .. 8·3 Interactive COBOL execution ••.•.•... . .... S-3 File Organization . ..... . . •. . ... . . . .. . ..... . . . .. 8· 3 Library FaCility. , ..................... , .•• S-3 ENTER Facility ....•••• , . •• . . . • . • . . . . .. 8·3 Online Debugger .••....•.•.•...•.••.•...••••... Source Program Input ••.•.•..•••••....•••••.. RERUN ...•.•...•.•••..••••••..•••••..• COBOl·58 and COBOl·7.. ................. .. AlGOl·20 •.••••...•••..••.•...•••. Block Structure .. .. .. . ... .. .• • ... Procedures • .... .. .... .. ... CompIler and System Futures •• •... . •..•• OWN VarIables .. • ...... .. Switches . . ........ .. StrIng Constants .....••..• ObJect-TIme System • ••• • •...•• BASIC·PlUS·2 •••.••••.. Fjle Capablhty VIrtual Memory Arrays Record Input/Output . Data FOfmats and OperatIon. .. Matrix ManlpulatJon •.•. ... . .. . .. . ... •• ConditIonal Stalements and Program Segmentation Debugging Tools ............. . APl •.. .. .. •• .. • •...•.. Data Structures . • . .. . ... . • . .. .. • Interacting with APl • System Commands. FunctIon • • and Variables . Slatements APl Statement &:ecutlon Debugging Tools Workspaces File Organization Error Analysis and Recovety Convllfslon Package 8l1SS·36 Compiling Debugging File Organization Compallbillty WIth Othllf languages CPl Immediate Mode ProgramCreauon ••. Debugging . 8-3 8-3 8-< '-' '-' 8" 8" 8-5 8-5 8-5 "5 8-5 8-5 8-8 8-8 '-6 8-6 '--77 '8-7 8-7 8-8 6-8 6-8 8-8 ... ..8-', ..8-', Data Manipulation Process DBMS Modules DBMS Utlhllu 10l Intllfactsve Mode DeI8fred MOde IOl Statements DBMS Files Report Fonnatllng SORT/ MERGE TRAFFIC· 20 8·10 8·10 8·10 .8·tO 9 DATA MANAGEMENT AND APPLICATION PRODUCTS DBMS .......... . ..... 9.' COOASYl Compliance .. . • .. .... . ............. 9., Data DescrlpUon Process . . • . . . . . . . .• . .. . .... . •.....•. 9.1 9-, • .• 1-2 ~ ......... ... ~ ... .......... COGO· 20 PCS· 20 10 COMMUNICATIONS OECNET· 20 ......... . DIGITAL Network ArchItecture .......•••••. OECnat Functions ....•••.. DECnet· 20 Capabilities . .. ................ .. REMOTE JOB ENTRY STATIONS .. ,0-, ,0-, '0-, '0-, INTERNET PROTOCOL EMULATORS •..... '0-3 ,0-3 OX/ TOPS· 20 DOCUMENT TRANSMISSION '0-5 11 SUPPORT SERVICES INSTALLATION 8·, ~, 0-, SOFTWARE SERVICES Software Warranty Software PrOduct ServICes Professional Services 8·tO 9-, ............ 8-' 8-, ~, ~, ............. 8-, 8·' ............. EOUCA nONAl SERVICES Course OptIOnS TOPS·20 Courses HARDWARE SERVICES COMPUTER SPECIAL SySTEMS .•...•....• CUSTOMER FINANCING . ACCESSORIES AND SUPPLIES GROUP ...•• COMPUTER SUPPLIES CUSTOMER SPARES DECUS 12 GLOSSARY 13 INDEX .. 11 . ' 11 · ' 11·' 11·1 11·' 11.' 11·1 11·2 .. . 11-3 ,,-3 ".. ".. ".. " . 11·5 - 1 Preface - This technical summary is a detailed Introduction to all aspects of the DECSYSTEM-20 - from the processors and peripheral devices to the TOPS-20 software and DIGITAL's support services. The technical summary Is pri- marily intended for system programmers and computer system specialists already lamUiar with computer hardware and software. However, it contains usefullnformatfon lor application programmers, system managers, and syslem operators. You are encouraged to read the technical summary selectively. Many of the system'S concepts and features are repeated throughout the text In different contexts. You m ight first skim through the summary to find those topics that Interest you most or perhaps read the summaries that appear at the beginning of each section. You can then start with sections of Interest and know which section to refer to when you come across references to concepts discussed elsewhere. If you are familiar with computer Industry terminology and simply want an overview of the DECSYSTEM-20 features, you should read Section 2, Overview. It briefly describes the DECSYSTEM-20 characteristics and Introduces features of the system that are described In detail In the rest. Some people may find It more helpful to begin with Section 3, The Users. It Introduces many of the aspects of the system that support application programming, system programming, system management, and operator control. If you are an application programmer, you will lind that the sections on high-level languages, data management, and application products provide an Indepth discussion on the system'S characteristics and capabilities. Finally, whether you are considering purchasIng a system or have a system already, you should read SectIon 11, Support Services, to become familiar with the kinds of services DIGITAL makes available to Its system users. ,-, . 2 Overview DECSVSTEM-20 computers are multipurpose systems that provide a wide range of computing versatility and power combined with exceptional reliability and efficiency. The systems have buill-in protection mechanisms In both the hardware and software to help ensure a high degree of data integrity and system availability. Online diagnostics and error detecting and logging verify system Integrity. Many hardware and software features provide rapid diagnosis and automatic recovery, should the power, hardware, or software fall. The processors have a 36-bit architecture, and their Instruction set Is implemented in microcode. All instructions are capable of addressing up to 256K words of memory without resorting to base registers, displacement addressing, or Indirect addressing. The large Instruction set allows for the construction of efficient programs and access to a wide range of operating system functions. The operating system that runs on the DECSVSTEM-20 series of computers is TOPS-20. Easy to use, TOPS-20 provides a highly reliable virtual memory, multipurpose operating environment. It supports multi language timesharing for program development and flexible forms of interactive and terminal-oriented applications, In addition to a full capability multlstream batch system. The operating system is both flexible and extendable. It enables the programmer to write large programs that can execute In both small and large physical memory configurations without the programmer having to define overlays or, later, modify the program to take advantage of additional memory. DECSYSTEM-20 computers are slate-ol-the-art hardware and software systems. They serve Interactive timesharing users, provide communications, and perform multiprogramming batch processing simultaneously. Because of the systems' versatility, they can be used for a variety of applications, such as: • Commercial applications that require InteractIve data access, a variety of data types, online data editing. data Integrity, and high throughput • Scientific applications that require large storage capacllies and high-speed computational capabilities • Communications that require a large number of interaclive terminals and fast response Processor. The Kl10 and KS10 central processing units (CPUs) form the basis of DECSYSTEM-20 com'puter systems. Both CPUs provide 36-blt addressing, eight sets of 16 fast general purpose registers, and seven priority Interrupt levels. Both CPUs feature a microprogrammed Instruction setcapable of directly addressing up to 256K words of memory. TOPS·20 on the KS10 supports from 256K to 512K words of main memory. and. on the Kl10, from 256K to 2.046K words of main memory. The design 01 DECSYSTEM-20s easily accomodates expansion and the incorporation 01 new features. devices, and technology. likewise, TOPS-20 Is software-compatible In that programs that run on one version of TOPS-20 will operate on subsequent versions of TOPS-20 software without any program modifications. On the Kl1 0, the PDP-11-based Console/Diagnostic frontend computer plays a key role In the operation and maintenance of the system. This minicomputer provides all console and command terminal functions, Interfaces with the various peripheral de.... lces. and performs all diagnostic and maintenance functions for TOPS-20 and the Kl10. Cache memory on both systems provides a faster effective memory access time. The cache Implementation for the KS10 is 512 words and for Kl10 Is 2,046 words. DECSYSTEM-20s can supervise themselves primarily because of the hardware Interrupt system and the TOPS20 operating system. Their combination allows for rapid response to dynamic conditions both Internal and external .to the system. When an error occurs, the current context Is saved , the Interrupt is processed, and the saved context Is restored, allowing the contlnuallon of normal operation. Thare are multiple interru pt levels so that more Important interrupts can interrupt less Important ones. Also. there Is a special set of fast accumulators used at Interrupt level. that make it unnecessary to save and restore the accumulators associated with the running context. On the KS10, the 6-blt microprocessor console Is an extremely important subsystem because It performs all console functions and controls all diagnostic functions. Unit record equipment and communications are handled by a UNIBUS Adapter (UBA), which also controls the synchronous lines and the tape drives. Both CPUs support KliNIK, the remote diagnosis capability that equips Field Service Engineers to examine the system while normal system operation continues. A variety of Input/output devices can be connected to DECSYSTEM-20 computers. The hardware features highspeed data channels, mass storage controllers for disk and magnellc tapes, and communications controllers. TOPS-20 Operating System TOPS-20 Is a virtual memory operating system designed for many applications, Including computation, data proceSSing, transaction processing, program development, and batch processing. Some of the features that contribute to TOPS-20's versatility are: • a multiuser, multiprogramming environment; • interactive processing that ellows for simultaneous sharIng of system facilities by many users; • multiple high-level language processors, two easily used but powerful text editors, and many system utilities; • a multislream batch system; • an easily learned and used command language which Is common to both the Interactive and batch users; • online help facilities for commands and programs; • a multiprocess job structure with a virtual memory ad· dress space of 2S6K words for all processes; • a sophisticated, reliable, hierarchicalllle system that includes file sharing, lIIe protection, file mapping, and file backup facilities. COMPONENTS The major components of the DECSYSTEM-20 are the: • Processor - Includes the choice of two models of CPUs that run the TOPS-20 software: the KS10 and Kl10. Both processors use the same Instruction set and support Metal-Oxlde-Semlconductor (MOS) memory. • Peripherals - Include a range of disk drives with smail and large capacity, magnetic tape systems, hardcopy and video terminals, IIneprinters, cardreaders, and papertape reader/punch. • Operating system - Includes a virtual memory manager, a pager, a swapper, system utilities, device drivers, a liIe system, a command language, and operator and system manager tools. • languages - Include TOPS-20 MACRO assembly language and, optionally, FORTRAN, COBOL-58, COBOl74, BASIC-PLUS-2, ALGOL, APl, CPl, and BlISS-36. Development tools for both natlve- and compatlbilltymode programs Include editors, linkers, and de buggers. • Communications - Includes DECnet-20 software, IBM emulation and termination software for 2760/3760 and HASP stations, and ARPANET software. TOPS-20 provIdes a command language that Is Interactive, comprehensive, easy to use, and extremely flexible. II enables the user to log into the system, create and manipulate flies, develop and test programs, and obtain system Information. 2-1 for each phase, programmers can overlap the phases of the program and thereby decrease the execution time of the overall program. The Interactive user who Is not lamillar with TOPS-20 can type a ''1'' (question mark) at any point within a TOPS-20 command to request help. For example, II a user types a "COO followed by a question mark, the command language processor lists all TOPS-20 commands beginning with the letter "C." It then reprints the line up to the question mark so that the user can continue, without starting over, with the desired command. TOPS-20 uses this process structure In the Implementation of Its own supporting software. As an example, the command language processor Is a process within the user's address space. Not only Is the operating system smaller, because the command language Is not part of It. but this design allows a job's command processor to control a process which Is Itself another command processor. New or special command language processors can be written, tested, and used during normal system operation, just like any other system program. Of course, for the user who does not require such a process structure, Its sUppOr1 by the system is Invisible. The user can give a abbreviated portion of a command and then press the "ESCAPE" control key on the terminal. If the abbreviation Is unique, the command language processor will display the remslnder 01 the command along with guide words to prompt the user for the necessary arguments. This feature, called Command Recognition, also works on command arguments, on file specltrcatlons, and on user names. Both file space and process space are Integrated. Users having sophisticated needs, such as those with multiuser database applications, can simultaneously and efficiently access and update flies, fully assured they are working with the latest data. Unlike other systems, when a TOPS-20 file Is properly updated, It Is the file Itself, not a copy, that Is modified. TOPS-20 also provides the user with help facilities that can be invoked simply by typing " help," followed by the program name or command name In question. TOPS-20 provides a flexible, easy-to-use, powerful batch processing system that Includes Input spoolers, batch stream controllers, a queue manager, a task scheduler, and output spoolers. Batch Jobs can be initiated and monitored from any terminal or can be automatically submitted by the system at specified times. The TOPS·20 file system Is a general purpose, named file system that provides mountable disk structures, multilevel user directories, optimized tile placement and 110, and a file archiving and retrieval capability that's under user and operator control. Both Interactive users and batch users work with the same command language. This feature is Important because It facilitates the use of either mode of processing. Equally slgnlficant Is that time Is saved, since users need learn only one set of commands for both interactive and batch processing. The TOPS-20 llIe system has been designed to provide controlled sharing of programs and data flies. System efficiency is maintained by allowing for several users to simUltaneously access a single copy of any program. However, TOPS-20 has built-In mechanisms to protect the system and the users from the errors of other users. If a user Is reading a file or executing a shared program, and If another user attempts to write In one of the shared pages, the user doing the writing is given a private copy of the page and proceeds with modifying the page. This feature, callecl "copy-on-wrlte," Is automatically handled by the system. TOPS-20 provides the file facUlties that equip users to create, access, and maintain fully protected data flies. The flexible tile facilities enable a wide variety of file organizations to be used, Including sequential, relative, Indexed sequential, and database organizations. The operating system Is organized around a relatively small amount of directly accessible main storage and a large amount of high-speed secondary storage. All programs are organized in pages of 512 words. Such organization, which Is transparent to each program, means users need not concern themselves with how memory will be allocated In main storage or how pages will be swapped between main and secondary storage. Assisted by the hardware, the operating system transfers pages between main storage and secondary storage as required, without explicit Intervention on the part of the program or user. The operating system provides a demand -paged memory environment. Every job on the system can be considered as a set of processes. These separately schedulable processes are linked together by user options or systemdefined linkages, for efficient use of storage and system resources. Operating In a demand-paged mode, the system moves Into memory a subset of all pages needed for each active process, bringing pages In from - or moving pages to - the disk as required. The system provides for easy, efficient communication among processes, both at the command and system level. TOPS-20 support for many optional high-level programming languages provides flexibility in choosing the most effective or most famUiar language for use In a given application. To minimize memory requirements, all language processors are sharable and generate sharable code. Job control , command languages, and the language processors are compatible under timesharing and batch processing . TOPS-20 optionally provides three types of communlca· tlons software: • DECnet-20, which extends the facllities of TOPS-20 so that processes can communicate with other processes In a DIGITAL computer network; • IBM Emulation/Termination, which performs both emulation and termination of IBM 2780/3780 remote stations or HASP workstations; With TOPS-20, processes are able to Initiate, suspend, and communicate with other processes. This structure allows for modularity In program development that can be taken advantage of at execution time by segmenting programs into distinct phases. By using a separate process 2·2 The system operator can perform software maintenance activities without having to bring the system down for stand-alone use. Concurrent with normal activities, the operator can back up disks and run restoration procedures for all tiles on the system or just a single file. • TOPS-20AN, which allows a usar to communicate with other sites or users on the Advance Research Project Agency Network (ARPANET). RELIABILITY The operating system supports online peripheral diagnostics. TOPS-20 logs CPU errors, memory errors, peripheral errora, and software failures. The operator or Field Service engineer can examine and analyze the error log file while the system is In operation. DECSYSTEM-20 computers provide features needed for maximum system reliability. Built-In reUabllity for both hardware and software provides data Integrity; Increased uptime; and fast system recovery trom power, hardware, or software failures. Some of the features that contribute to this reliability are discussed below. System Recovery Automatic system restart 'aclilltes bring up the system without need 01 an operator after 8 system failure caused by a power interruption, a machine check hardware malfunction. or a fatal software error. TOPS-20 automatically performs machine checks and Internal software consistency checks during system operation. Software De,lgn TOPS-20 Is designed to easily and efficiently serve many users and, at the same time, to be protected from possible user errors. For example, the TOPS-20 command language processor Is the controlling process In each user's Job. This organization makes the overall system more reliable because a command error will affect only the job that caused the error; other jobs continue processing in the normal manner. Using TOPS-20 remote diagnosis, DIGITAL Reid Service engineers can run diagnostics. examine memory locations. and diagnose problems from 8 remote terminal. The Field Service engineer who goes to the site Is prepared in advance to correct the specific problem. High reliability and security are necessary attributes of a multiuser environment, and the sophisticated TOPS-20 file system provides both. The file system allows controlled sharing and protection among USers. Master Ille directories are redundant for Increased l1Ie system Integrity. File read operations have priority over file write operations, so the system can quickly satisfy page faults. File write operations are ordered to ensure that flies are correct and remain In a consistent state. When operations on a file are active, Index blocks and pointers are kept In memory for speed. When the user Is notlfied that a tile Is closed, It has been completely written to the disk. Error Reporting TOPS-20 provides an extensive error-detection and errorrecovery package to ensure maximum system availability to the user. It also provides complete error reporting for DIGITAL Field Service and Software Support personnel and the customer's operations staff. When an error Is detected , TOPS-20 gathers all pertinent hardware and software information, Including whether the error Is recoverable. It then invokes the recovery procedure and adds this Information to a disk file tor storage. later. a program can read thia lIIe and generate reports concerning the entire system or Individual components. Additionally, significant operational events, such as system reloads and changes In the system conllguratlon, are recorded to assist the operations staff In monitoring system perlormance. The operating system's division of nonresident and resident portions allows for efficient use of memory and for system functions to be logically divided for Increased reliability. Unique protective processor modes are employed to effectively manage memory. System Availability The TOPS-20 operating system allows the hardware system to continue running even If some of the hardware components have tailed. The system automatically determines the presence 01 peripheral devices on the system when the system Is started. If the usual system bootstrap device Is unavailable, the system can be bootstrapped from another disk drive, from magnetic tape, or from a floppy disk. If memory units are defective, memory Is reconfigured so that defective modules will not be referenced. Software spooling allows for output generation, even If the normal output devices are not avallable. Periodically, Field Service personnel gather summary Information from this error lIIe and use It to detect Indications of possible problems. Detailed reports about specific errors frequenlly allow diagnosis of a problem and eliminate the need for running exhaustive diagnostics In a stand-alone mode. The error IIle can be backed up on magnetic tape to provide a complete history of system operation and quickly pinpoint slowly degrading portions of the system long before serious problems develop. 2-3 3 The Users The DECSVSTEM-20 consists of hardware and software that equip users to run a variety of programs efficiently and conveniently. The system is designed to execute many different kinds of Jobs concurrently. The DECSVSTEM-20 provides a complete program development environment. In addition to the native-mode assembly language, it offers optional high-level programming languages commonly used in developing scientific and commercial applications. It also offers the BLlSS-36 implementation language for system programming applications. The DECSVSTEM-20 provides the tools necessary to write, assemble or compile, and link programs, as well as build libraries of source and object modules. The system's general users are those who interact with applications or system programs from an online terminal or who benefit from executing batch jobs. These users can control the operation of the system through the command language. This language also can be used by system programmers to develop application software, by operators to monitor the system, and by system managers to control resources of the system. The TOPS-20 operating system takes maximum advantage of system throughput capabilities, allowing many independent users to simultaneously share system facilities. Its rapId-response nature makes It particularly well suited for a wide range of tasks. Application Tools Some of the tools available to the application programmer are: This section looks at the system 'rom four different user perspectives: • Application programmers • System programmers • System managers • System operators Record and File Handling - The record- and lIIe-handllng services provide general record and file-handling capabilities to users of high-level languages. Programmers can include statements In their programs that can read, write, find, delete, and update records within Illes. Records can be of fixed or variable length. The programmer can choose the best file organization and record access methods for the data processing application. THE APPLICATION PROGRAMMER The application programmer can write, compile, and test programs both interactively and in batch mode. As an in· teracUve user, the application programmer can control the running 0' 8 program; create, edit, and delete data Iiles; compile, execute, and debug programs; request assignment of peripheral devices, such as magnetic tapes; and make use of all system features from a terminal. As a batch user, the application programmer can submit a Job into the system. using a card deck that contains control cards defin ing the command options and error-recovery procedures for the job or, using a terminal, the user can create and submit a control Ille that Is then Interpreted by the batch system and processed In exactly the same manner as the job submitted on cards. For additional Information on record and lile handling and the system 's data management techniques, reler to the section on Oata Management and Application Products. Databas. Management - DBMS Is DIGITAL's proven CODASYl-standard database management system . DBMS enables programmers and managers to organize and maintain data In efficient structures, so It can be quickly and easily accessed by users and application programs. DBMS Is an optional software product. Aefer to Section g for a detailed explanation of the DBMS software product. Programmers can use the system for development even while other user jobs are In progress. All DECSYSTEM-20 languages and compilers are shared and reentrant, so many programmers can develop programs in the same language or in different languages without overburdening the system . Tran .. cllon Processing - The interactive transactIon processing capabil ities of TOPS-20 are supported by TAAFFIC-20, DIGITAL's Transaction Aoutlng and Forms Formatting in COBOl. TAAFFIC-20 simplifies building easy-to-use transaction processing COBOL applications that let the computer guide the user through each transaction. It is not necessary for the user to learn system commands. The application can be written so that the user simply IIl1s out a form on the terminal screen. In effect, TRAFFIC-20 makes nonintelllgent terminals appear to be Intelligent terminals that can display a form or a series of forms. The Progremming Languages Languages offered on the OECSYSTEM-20 are: • COBOL, the recognized " big machine" bUSiness Ian· guage. DECSYSTEM-20 COBOL provides extensive data processing capabilities for commercial applications. It is written to the ANSI 68 or 74 specification, so it matches the COBOL used on most general purpose systems. • FORTRAN, the standard scientific languege. DECSYSTEM-20 FORTRAN consists of a globally optimizing com plier and runtime system with an Interactive debugger to provide fast program development and execution. • ALGOL, a sophisticated scientific programming language. DECSYSTEM·20 ALGOL is a one-pass, singlephase compiler that generates optimized object code. • BAS1C-PLUS-2, an easy-to-learn conversational programming language. BASIC-PlUS-2 uses familiar English words, abbreviations, and mathematical symbols 10 perform operations. Conveni ent data structures, Includ ing multi-key Indexed flies, can be easily created and efficiently accessed with BASIC-PLUS-2. • APl, a concise programming language suitable for man ipulating numeric and character-oriented , arraystructured data. It includes procedural operators for array calculations and Its own editing and debugg ing facilities. • CPl, an interpreter supporting a subset of the ANSI PLII language. • BlISS-36, DIGITAL's implementation language for software development It contains many 01 the features of a hig h-level language, yet It also provides the flexibility and access to hardware of assembly language. Used with the DBMS system , TRAFFIC-20 makes it easy to bulld lIexl ble, Integrated , multiuser applications that Include specialized screen formats lor data Input. Because the DBMS system Is Integrated Into COBOL. several transactions can access and update Illes at the same time. Data Integrity is ensured . Centralized data definit ion Is supported. THE SYSTEM PROGRAMMER The system programmer can design and develop application systems for multiprogramming environments requirIng fast response and a high degree of Job Interaction and data sharing. System programmers are provided with a range of tools lor developing high-level languages, system utilities, and application systems where the sophisticated features of the operallng system are required . MACRO , Ihe TOPS-20 symbo lic assembly language , makes machine language programm ing easIer and faster by translating the symbolic operation codes In the source program Into binary mach ine language Instructions. It relates symbOlS specified by the user to stored numeric values and It assigns relative core addresses to symbolic addresses of program instructions and data. 3·' System programmers can also use BlISS·36 for software development. BlISS-36 Is an optimizing, hlgh.level sys· tem Implemenlatlon language for TOPS-20 . Ills specifIcally desIgned for buildIng compliers, syslem utilitIes, and operatIng system software. System programmer applications normally communicate with the system through monItor calls. MonItor calls are used to request system functions, such as Input/output operations, error handling, and number conversions, durIng execullon of the program. Support programs, such as the COBOL complier, Issue requests to the system through monitor calls. All monitor calls are reentrant, to maximize system reliability by IsolatIng monitor-cali proc· esslng from operatIng-system processIng . Through TOPS·20 mon itor calls, users can access a variety of sophIsticated operating system fUnctions - for ex· ample, the TOPS-20 command processor. Applications can be written that have the same syntax, help facilities, and recognition features used at system level. Each user who wishes to access the system is esslgned a user name, password, and account name. When the user logs Into the system. the system verifies the user's name and password. If either Is Incorrect. the system refuses the user access, Ihereby protecting itself from unauthorized use. The system manager can assign a delault account name in the user's directory SO that the user does nol have to enter an account name when logging Into the system. Privileges The system manager can assign Individual users special privileges that cover dIrectory access, resource usage, and system operational control. If a user tries to execule a function that requIres a specific privilege, the system checks the user's directory parame· ters to see If the user Is allowed that privilege. If the user does not have the specifIc privilege. the system does not execute the function and Instead notifIes the user of denIal of that prIvilege. Allocating Disk Storage Quotas The syslem manager assigns each directory a specific number 01 pages for both working slorage and permanent storage, Work ing storage refers to the disk space that 8 user can have while work ing on the system . Permanent storage refers to the total disk space In which a user can store flies after logging off the system. The system strictly enlorces working storage allocation. It will not allow a user to create a new file If that individual's work Ing storage has been filled. Controlling Resources Through a user-wrlnen program. the system manager can make policy decisIons thai govern access to a specific system resource, For example. TOPS·20 allows a user to change the speed of a terminal, assign a device. log Into the system at any time. mount a magnetic tape, and mount a disk structure. Access conlrol enables the syslem manager to restrict or disallow the use of some of these faclll· ties. The syslem manager can grant certain users access to the system at specified times of the day and , "desired, at specified termInals. By usIng the access control mechanism, the system manager can reduce or prevent mall· clous access to Ihe system resources and has an additional means for collecting accounting or other informallon, Scheduler Contlols The system manager Is provided tools that enable control or tuning of the allocation of CPU lime, The tuning mechanisms Include class scheduling and bIas control. THE SYSTEM MANAGER The system manager Is responsible for planning data access and protection, granting privileges, authorizing use of the system, controlling resource utilization, and analyzing the system's accounting and performance Information , Using class scheduling, the system manager can allocate percentages of the central processor's time to Individual classes of users to provide consistent service. Each Job In a class receives a portion of the class percentage. The system manager can also set up a class to Include all batch jobs, thereby controlling batch jobs separately from Interactive jobs, User Authorization The system manager controls use of the system primarily by creating user directories that Identify the user, supply defaults, specIfy privileges, and limit resource usage. 3-2 Class SCheduling Is dynamic, and changes made during a session remain In effect until the system Is reloaded or another change Is made. Using TOPS-20 commands, the system manager can turn the class scheduler off and back on again while the system Is In operation. operating the entire system and Is provided with command recognition, guide words, and help text. Controlling Batch Strellm. The system operator can control the number of batch streams that can run concurrently. Batch Jobs can be submitted by Interacllve users, other batch jobs, or programs. When the number of jobs exceeds the number of streams, the overflow is held in 8 batch Input queue. The operator can start additional batch streams, If desirable, and can also stop, continue, and shut down batch streams. The operator can send messages to batch streams, set parameters for batch streams, and dIsplay the status and parameters of batch streams. By using the bias control feature, the system manager can direct the scheduler to favor either Interactive or computebound programs. The bias control feature Is analogous to turning a knob over a range settings. When a low number Is selected, the scheduler favors users running Interactive programs. When a high number Is selected, It favors users running compute-bound programs. 0' Bias control and class scheduling can be used simultaneously. SYlltem Recovery The system operator can select manual or automatic system recovery following a power Interruption or a hardware or software failure. Resource Accounting Statistics Computer use can be assigned and charged to various accounts via the aet:ounting facility. Using this feature, the system manager can add security to the system; determine charges for computer usage and bill users by account name; and associate classes with accounts for use by the class scheduler. On automatic system recovery, after a power interruption, the system determines whether the contents of memory are stUl valid . If they are, it restarts all possible I/O In progress at the time of interruption and continues operation from the point 01 Interruption. If the contents of memory are not valid , the system automatically restarts Itself from disk and executes startup command procedures. All accounting data Is stored in a usage file that can be accessed for reports and billing. Because the system colleets detailed data In reeord format, the system manager can define algorithms used In resource usage bllllng. If the standard system bootstrap device Is unavailable, the operator can boot the system from one of several different devices. Performance Analysis Statistics The Performance Analysis Statistics program collects system usage and performance data that can be used to tune the system. Some of the statistics gathered by the programare: System Backup All files or selected flies can be saved on tape. The system operator can use this tape to restore all or certain files back on to the disk . • Monitor statistics Indicating CPU , disk, memory utlllzatlon, and system performance: If the system Is using the archiving/migration feature, the operator can periodically run a program to copy all archived or migrated files to tape. • Job ststrstics Indicating CPU time used by each job, information on each Job's use of system resources, and statistics collected on the Individual jobs; • System utilization stetlstlcs Indicating the demands made on the system and the distribution of system resources; • Disk 110 statistics indicating the number of seeks, reads, and writes performed by each disk drive. USER UTILITIES The TOPS-20 operating system features several utility programs that aid the user In performing various tasks. The most frequently used utilities are: • A MAil program with whIch the user can send messages to other users. Messages sent by the MAil program are stored in the receiver's disk directory and can be read at the receiver's convenience. THE SYSTEM OPERATOR The system operator has complete control of the system. Operator responsIbilitIes Include readying the system for tlmesharing and batch work , responding quickly to user requests such as magnetic tape mounts, taking care of the peripheral devIces and the distribution of output, and recovering the system when error conditions occur. The system operator can be called upon by the system manager to perform a variety 01 other functions, related to both hardware and software, to ensure the efficient running of the system . • A RDMAll program to read the messages sent by the MAil program. • A PLEASE program by which the user can communicate with the system operator. • A CREF program to generate a cross-reference listing of symbols used in programs. • A FllCOM program to compare two files on a line-byline or word-by-word basis and list the differences. • A MAKUB program that manipulates, changes, and queries reiocatable binary flies. MAKUB Is mainly used to manipulate and optimize collections of binary programs Into libraries. Operator Interfllce The OPR unified system Interface enables the system operator to deal with all the batch system components, handle user requests, and monitor application control programs. The operator learns a single set of commands for 3-3 • A DUMPER program that lets the user copy disk tiles to magnetic tape for safekeeping and/ or to transfer flies between systems. DUMPER can be used by the system operator to perform lull or incremental system backups. It can also be used by system users to back up selected flies . • A LINK program to merge independently complied program modules and system modules Into a sIngle module that can be executed by the operallng system . • A DDT program that lets the user examine, search, change. Insert breakpoint Instructions, and stop/trace a program at symbolic level. The user can also single-step executable programs. • An EDIT program with whIch the user can create and modify line-oriented programs and data files online. • A TV program with which the user can create and edit any source documents, programs, or other text liIes. 3-4 4 The Operating System TOPS·20 Is a highly reliable operating system designed to provide a wide range of services to users of varying capabilities. After brief training In using the command language, even novices can easily use the syslem. The same command language serves both interactive and batch users. TOPS·20 provides a demand·paged, process·structured environment. Every job on the system is made up of one or more processes, each having Its own address space. Operating In a demand·paged mode, TOPS·20 moves into memory a subset of all pages needed for each active process and moves onto disk all pages not currently required. The virtual memory design of TOPS·20 minimizes the use of main memory because only the currently necessary functions and data reside In memory. User programs are handled in the same manner, with nonactive pages residing on disk. Pages are moved Inlo memory when needed, so the program can execute whenever the processor calfs for It. This dynamic allocation does not require user Intervention; It is Jointly handled by the hardware and the software. .. TOPS-20 is designed for interective processing and for many independent users simultaneously to share system faCIlities. TOPS-20's rapid response and versatility make It par\lcUlarty effective over a wide range of tasks. Most users communicate with the system through a terminal, ttther at the central computer site, or at remote locations connected to the system by communications lines. Simply by typing a single command, users can display a1l TOPS-20 commands or various system statistics - tor example, terminal characteristics, system defaults, or available devices. Users can send messages to, or receive them Irom, other users; attach to another user's terminal; set terminal characteristics; and so forth. THE BATCH SYSTEM TOPS-20 can concurrently execute batch jobs and time· sharing jobs. The user can enter a job Into the batch system by creating and submitting a control Ille Irom a terminal or by using a card deck . Because the command language for batch and timesharing Is the same, the user can duplicate any terminal session with a batch job by using the same sequence of commands. THE COMMAND LANGUAGE PROCESSOR The user Interface to the system is the TOPS-20 Command language Processor. It Interprets ali commands Issued by the user for system services and sends responses from the operating system back to the user's terminal. The Command language Processor, a user program residing in the user's address space, is used for: Switches provided with the batch system give the user great lIexlblllty. Included in the command string, they can define the operation and set priorities and limits on memory and processor time. In addition, the user can structure the job submission so that jobs execute in a particular order. • Accessing the system • Directory and liIe utility operations • Initiating programs • Initiating operations • Acquiring Information about the system • Debugging programs Users can control the handling of error conditions by Including special commands in their jobs. It an error occurs, and If the user has not specified any error-recovery procedures, the batch system InitIates a memory dump of the user's area end terminates the job. Because the Command language Processor runs as a user program. an error found by it will terminate only the }ob that caused the error. DECSVST EM-20 owners can purchase Command language Processor source code. It can be modified, tested, and debugged as a normal user program under timesharIng, The modified code can then replace the existing syslem version 01 the Command language Processor. The batch system requires little or no operator intervention, although the operator can exercise control If II becomes necessary. The operator can specify system resources to be dedicated to batch processing ; can limit the number of Jobs, memory. and processor time lor Individual jobs; and can stop a job at any point, requeue II, or modify Its priorities. The operetor and the user can examine system queues to determine the status of a1l batch jobs. The batch system sends Information to the operator and records on disk a log liIe 01 all messages printed on the operator's console. A1I operator Intervention during the running of a batch job Is recorded In both the user's log liIe and the operator's log tile for later analysis. TI'Ie Command language Processor permits a user to lnterrupt a currently executing program, save Its address space. and start another program. For example. If a user neglects to create a necessary liIe before starting a program, the user can Interrupt the program that Is running, return to the TOPS-20 command level, and save the program's address space and execution state. After creating the necessary lile, the user can return to the IIrst program at the point 01 Interruption and continue processing. Running several batch jobs concurrently enhances syslem and user throughput because a user can separate jobs Inlo severel parallel subjobs. The Command language Processor Is reentrant and sharable. Even though it Is shared by many users, only the currently needed parts 01 the Command language Processor reside In memory. Batch system programs Include the Input spooler, the batch controller, the centralized queue menager, the task scheduler. and the output spooler. The TOPS-20 Command language Processor provides a common command language lor interactive and batch users. The command language uses English words to Invoke system functions. All TOPS-20 commands begin with a key word and can be lollowed by parameters to fully describe the lunction requested by the user. Users can create, edit, delete, and undelete files; compile, execute. and debug programs; and use all system features. The input spooler reads the Input from a device, such es a cardreader, disk. or magnetic tape, and requests the queue manager to enter jobs Into the balch controller's Input queue. The input is separated according to the control commands it includes, and is placed elther into the user's data files, or Into the batch controller's controllile for subsequent processing . The Input spooler creates the user'S log tile and enters a report of lts processing 01 the Job as well as a record of any operator Intervention during the processing. This log liIe Is a standard part 01 the output lor a batch Job. To enable even a beginner to use the system successlully. the command language contains such features as guide words that prompt the user, recognition input that uses command delaults to complete commands, and heip lacillties that provide instructions about programs and commands. The centralized queue manager Is responsible for scheduling jobs and maintaining both the batch controller's '-1 PROCESS COMMUNICATION input queue and the output spooling queues. A job Is scheduled to run according to external prioritIes, processing time limIts, and parameters specified by the user for the Job. The latter can Include start and deadline time limIts for program execution. A process can communicate with other processes in the system in several ways: • Direct process control • Interprocess Communications facility • Software Interrupts • ENQueue/ DEQueue facility • Memory Sharing The output spooler improves system throughput byallowing the output from a Job to be written to a disk lor later transfer to the lineprinter. The queue manager places the job's log !lie and output into one or more output queues to await spooling. When the lineprinter becomes available, the lineprinter spooler processes the output. This spooler also has fealures such as special forms control and character sets, multiple copies, and accounting information. The output spooler and lineprinter spooler are also used by the InteraC1lve user 10 get a printed Ilstlng of a flte. Dlract Proca •• Control A process can create and control other processes Inlerlor to Itself within a jOb structure. The superior proceS! can begin , suspend, and resume execution of the Inferior process. Alter the Inferior process has completed Its tasks, the superior process can delete It from the job structure. Interproce.. Communication Facility Although aach process Is fundamentally Independent, an important advantage of a multiprocess job structure Is that Ihe output of one process can be used as Input to others. The Interprocess Communication Facility (IPCF) enables fast communlcallon among processes. Communication occurs when processes send and receive Information In the form of packets (messages). Each sender and receiver has a unique process Identification number assigned to It that Is used to route packets among processes. JOBS AND PROCESSES The TOPS-20 operating system distinguishes between a job and a process. When a user types a CONTROL C at a terminal, the system creates a job by invoking the TOPS20 Command language Processor. During the existence of the Job, the user issues commands and executes programs. The system terminates the job when the user logs 0" the system. Each job can have multiple, helrarchlcally organized processes. When a job Is created , It consists of one process containing the Command language Processor. Whenever the Command Language Processor cannot perform a requested function, It creates an Inferior process to do so. The creating, or superior, process has complete control over its inleriors. It can give or withhold privileges, and suspend, conlfnue, or term inate them. Processes communicate with each other using a Process Identlllcation Number (PID) that Is unIque for each process In the syslem. In this tree structure, the top-level process In a job Is usually the TOPS-20 Command language Processor. When one process sends Information to another, It Is placed Into the receiver's Input queue, where It remains until the receiver retrieves It. Instead of periodically checkIng Its Input queue, the receiver can aC1lvate the software Interrupt system so that it can be Interrupted by the sendIng process when the information has been sent. To use IPCF, the system administrator must assign a user quotas that designate the number of sends and receives the user's process can have outstanding at any lime. II a user has a send quota of two and has sent two massages, for example, the user cannot send any more until at least one message has been retrieved by Its receiver. Each process Is separately scheduled, has Its own 256K address space, and competes for system resources such as the CPU and the devices. Th is makes the system more responsive to demands and It more easily achieves the goal of appearing to simultaneously perform a variety of functions. Softwere Interrupt Sy.tem The software Interrupt system enables a process to respond to several types of Interrupts generated by other processes, such as hardware error conditions or terminal trensactions. Interrupts can be activated either by a user or by the system . The system provides 36 software Interrupt channels, 01 which 18 have reserved functions. The primary types of interrupts are: • Terminal charaC1er Interrupts • IPCF Interrupts • ENQ/ DEQ interrupts • Hardware error condition Interrupts • 110 error-condition Interrupts • Program errors (such as arithmetic overflow) • Interprocess Interrupts Before a process can be scheduled by the system It must be in a runnable, or active, state. One requirement for this Is that a subset of Its pages needed for execution, called the working set, is in memory. The collection of processes most eligible to run and whose working sets simultaneously fit Into memory is caJled the balance set. Processes that are not runnable are inactive because they are waiting for events such as terminal Input. These inactive processes are blocked until the required event occurs. Because the runnabillty of a process Is event-driven It changes whenever the state of a process changes. To ensure good response, Interactive processes tend to get higher priority than compute-bound processes. However, If a computa-bound process has been blocked for a long time, Its eligibility Is changed to allow it to run. For priority ordering, there are three Interrupt priority levels assignable to each software Interrupt channel. A system call Is provided lor Interrupt dismissal to resume the Interrupted code. 4-2 EnqueuelDequeue (ENQ/OEQ) TOP$-20 makes program and data sharlng very easy, whlla preventing any user from changing a file that others are using In read-only mode. Howevar, more complex applications require simultaneous updating of a database (file) or sharing of devices. THE TOP5-20 MONITOR The TOP$-20 monitor Is a collection of modules that provides overall coordination and control of the lolal operatIng system. The monitor permits several user programs to be simultaneously loaded Into memory. It makes optimum use of the timesharing hardware to prevent one user's program from interfering with other users' programs. A sophisticated scheduling routine handles the requirements for execution, memory, and system resources to provide good response lor interactive users, and high throughput for computational users. The scheduler selects processes to run based on class, internally computed prlorlttes, and external policies. It makes these selections frequently enough for all processes to seem to run simultaneously. By using the ENQ/DEQ faCility, cooperating processes can ensure that such resources are shared correctly and that one user's modifications do not Interfere with another's. Examples of resources that can be shared using this facility are devices, flies, operations on flies (e.g., READ, WRITE), records, and memory pages. Memory Sharing Each page in a process' address space Is either private to the process or shared with other processes. Pages are shared among processes when the same page Is represented In more than one address space. This means that two or more processes can Identify and use the same page of physical storage. Even when several processes have ldentitJed the same page, each process can have a different access to that page, such as access to read or write that page. Another function of the monitor Is to process Input and output commands. The monitor's Input/output service routines preprocess the data so that all devices appear identical to the user's program, thus simplifying coding . The monitor uses the software Interrupt system to overlap Input/output operations with computation operations. For Instance, If a user's program must wait for completion of an input/output operation, the monitor will automatically 4-3 The specific goal of working set management Is to swap working sets Into and out of memory based on working set historieS and current memory allocation. To run, a process needs Its working set In memory; therefore, the working set manager always attempts to have the working sets of runnable processes In memory. This aids throughput by keeping the CPU active with useful work. Some definitions are needed to understand the working set manager: • Preloadlng - The action of swapping the working set 01 a process Into memory upon the selection of the process to be run. • Postpurglng - The action of completely removing the working set 01 a process when the process has been selected to be swapped out to secondary storage. If postpurglng Is not In effect. the pages of the process are swapped out 01 memory one page at a lime as other processes need the pageS. switch to another user's program , taking advantage of the system's throughput capabilities. The TOPS-20 monitor is modular and paged. It can be tailored to each user's equipment configuration and application requirements. Extensions to the system In the form 01 peripheral devices and appllcatlon programs can be added , altered, or deleted as required, without any change to the monitor. In summary. the monitor exercises primary control of the routines that constitute the operating system . This makes the computer a flexible tool that provides the user with maximum use 01 the hardware's advanced design features. VIRTUAL MEMORY From a hardware view. memory Is divided Into sections of 256K locations. The paging hardware further divides each section Into 512 locations, For the most part. virtual memory Irom TOPS-20's view is the same as from the hardware's view. TOPS-20 incorporates features that make virtual memory more appropriate lor the end user. Users have a 256K word address space In which to place programs and data. TOPS-20 divides the user's space Into 512 pages, each of which contains 512 36-bll words. Part 01 the working set manager's decision to swap a workIng set in or out of memory Is based on the current memory allocation. Membership in the balance set indicates that a process has been allocated memory. For this reason. the working set manager selects only a member of the balance set to be swapped Into memory. The other part of the working set manager's decision to swap a working set In or out of memory Is based on a value represenllng the history 01 a process. This value is calculated from the current state of the process and its recent behavior. The state of a process includes whether It Is runnable and Its current queue location . The recent behavior of a process Is related to Its membership In the balance set. Virtual memory addressing Is accomplished through the indexed accass method . Section tables exist for each process. and paga tables for each section. These page tables contain pointers to pages that contain either addltlonatlables or the data. There are lour types 01 pointers: no access, Immediate. shared, and indirect. The paging hardware maps pages from virtual address space into pages anywhere in physical memory. A page map for each process specifies correspondence from virtual address to physical address, whether an Individual vi rtual page Is accessible. whether it Is public or concealed, and whether cache memory can be used to refer to the page. The work ing set of a process Is swapped Into memory using one of two methods: • It can have just Its overhead pages swapped In. As the process executes, additional pages are faulted In as needed, • The working set Is preloaded. This method loads the pages that were In the working set when the process was last swapped out of memory. VIRTUAL MEMORY OPERATIONS The system manager decides whether to preload the working set. A working set is always post purged when it is removed Irom memory. All pages of the process are swapped out of memory. The TOPS-20 operating system provides a demand-paged virtual memory environment. The system moves Into memory a subset of all pages needed for all active processes, bringing pages In from or moving pages to the disk as memory space becomes available, The work ing set Is that set of pages referenced during a recent interval of time, that is, those pages recently used. The system determines the Interval so that, when the process Is reactivated, memory references will most likely be confined to the same pages. A particular program's characteristics determine the number of pages In Its working set. The Scheduler periodically redefines the batance set. Working set sizes are modified dynamically as a process runs and they are regularly monitored by the Scheduler to adjust balance set membership. If needed, a specific user or group 01 users can be guaranteed a percentage of the processor lime. TOPS-20 supports memory management through hardware and microcode. Memory mapping and page-level access protection provide efficient sharing of pages between processes and efficient context switching. Both page status and history lor each page in memory are automatically updated by the microcode from information Initially set up by the software, These updates create hardware tables that minimize overhead while they maximize system informallon needed for management of memory and diskchanneltralflc. A second definable property Is the balance set, the set of processes most ellg lble to run and whose collective workIng sets fit Into memory. The working set manager uses balance set membership to determine whether a working set can be swapped into memory. Balance set membership Is also used In calculating the history of a process. 4-4 r In Indirect mode, the entry on the Shared Pages Tables does not point directly to memory, but rather to another entry in the Process Table. This other entry may relndex back Into the Shared Pages Table or point directly to a physical page. To effectively manage memory. the DECSYSTEM·20 uses a combination of registers and tables to relate program or virtual addresses to physical addresses. Two hardware registers in the central processor, the EBR and UBA, contain pointers to the physical pages In memory that contain the mapping information for the operating system and the currently active ussr. These pages, called the User Page Table and the Monitor Page Table, contain pointers lor mapping information between the user's and monitor's address space and the actual pages 01 physical memory in use by the user and the operating system. Three types of pointers contained in the process tables are Immediate, shared , and Indirect. The characteristics of an Immediate Mode Pointer are shown below. Entries in the User Page Tabte point directly to physical pages in memory. Shared Mode Pointer characteristics are also Illustrated. To maximize system speed, the Hardware Page Table In the CPU Includes a subset 01 the Information for all active process page mappings, InCluding the operating system . As the working set for a particular process Is generated or altered , the page mappings obtaIned are loaded into the Hardware Page Table. Subsequent memory references to these pages then proceed through the Hardware Page Table, eliminating the need to access the In-memory page tables. This high-speed Hardware Page Table minimizes the need for an extra cycle to pick up the required mapping information. -- An additional register in the central processor points to a memory status table that contains. for each page of physical memory, Information on recent references, page modi· fications, reasons for a page to be loaded in memory, and reverse pointer data. The operating system uses the mem· ory status table to compute the length of time pages have been active and in memory, to record when pages have been written into, to record which processes have refer· enced the page, and to locate which of the page tables point to the page. --~ -- THE FILE SYSTEM The TOPS·20 file system is designed to provide the user with the highest possible degree of operational flexibility in storing and retrieving data. Because the system adjusts the Interface between the file and the device, the user need not consider the physlcai characteristics 01 the recording device when creating most liIes. The system Invokes security measures to help ensure that flies are not subject to unauthorized use or destruction. Users have lacilities to back up Illes from mass storage devices to magnetic tapes, as well as to restore such files to the mass storage devices when they are later needed . ~-- I Files A file is an organized collection of Information directed toward a certain purpose. The TOPS-20 lIIe system Is a collection of named files composed 01 512-word data pages. Each file Is Identified by a node name, device, directory name, filename, fl1 etype, and generation number - all of which define a unique path to the file. Agur.4-1 Polnt.r Mod •• The shared·mode pointer Indexes into a Shared Pages Table that contains entries pointing to physical pages In memory. The location of the Shared Pages Table In memory is contained In another hardware register internal to the central processor. The advantage of having a Shared Pages Table is that, when multiple processes are sharing the same page, the bookkeeping required to track the 10eation of the shared page Is reduced to updating only the Shared Pages Table. Without a Shared Pages Table, every user's Page Table, many of which would not be In memory, would have to be modified. When one process writes on a shared page, the system performs a copy-on-write , which creates a process-specific copy of the page, Including the modifications. Because the process Is using a modified page. and no longer sharing the original page. the Shared Pages Table Is updated to show one less user sharing that page. File Protection A user who creates a file can either assign a protection code or let a system default protection be assigned . All Illes are assigned protection codes for each of three class· es of users: the owner, users within a common group or project, and all other system users. Members of each class may be granted all , some, or none of the following: • Acknowledgement that a file exists when listing the directory • Permission to append data to a file • Execute-only access • Write access • Read access 4-5 Each tile Is associated with an Information block that fully describes the file characteristics to the operating system. The informallon inctudes the tile protection code, the awner of the·lUe. the name of the user who last wrote Into the liIe. the date the file was created, the date the tile was last changed. and the size of the file. The owner of a Ille can change the protection code ot the file at any time. All user filenames arB stored In a user file directory. File Dlrectorle. The TOPS-20 operating system maintains a Ille directory lor each user. The llie directory contains the names 01 all the user's flies, contains pointers to the user's file Informalion block, and contains general user information that Includes the user's password, privileges, disk-space allocation, disk space used, and default protection code. All file directories are themselves named flies, and information aboul them Is contained In a master directory called ROOT -DIRECTORY. There are two copies of ROOTDIRECTORY to Increase file-system Integrity. Ing simultaneously, using the TOPS-20 ENQueue/DEqueue facJllty for coordlnallon). • Restricted Updating (one user writing , any number of users reading). As a further protection, If a user has opened a file for reading or Is executing a shared program and attempts to modify a page that other users believe is not changlng,the user who wishes to modify the page Is given a private copy of It. This automatic facility Is called copy-an-write. Archiving Flies The number of flies In a user's directory is constantly grOwing. Consequently, the user may want to delete some flies or store some offline on magnetic tape. TOPS-20 users can store fUes offline with a simple command. The user requests a tile to be archived. and the system marks the file for archiving, giving It archive status. The system may then make the file Invisible to the user, even though It has not yet been physically archived. A file becomes archived when It has been backed up on two tapes. The two tape copies provide Insurance In case one of the tapes Is losl or destroyed by accident. An archival run consists of executing a system program to write onto tape flies with pend ing archival requests. Thus, to fully archive a file requires two archival runs. The system administrator must decide when the two runs are P8fformed, either one after another or the first run one day and the second the next. The tree-structured directory facJllty allows the user 10 create subdirectories. Subdirectories appear to the system as do file directories In that they can be accessed, can. be members ot user directory groups. and have the same protection mechanisms as fjle directories. The tree-structured directory facUity permits approximately 4,000 directories to be created on 8 KS10 system and 12,000 directories on a Kl10 system . Groups A group Is a set of cooperating users that is established by the system manager. Each directory contains two membership lists: the list of user groups of which the owner ot the directory Is a member and the lists of groups of which the directory Itself Is a member. An archival run Is performed In two phases. During the first phase, all files In the range of the given l1Ie speclflcallon are examined to see If the archival request bit Is set. When a tile Is found with this bit set, the system proceeds to write the file to tape. After the file Is written to tape, the search continueS lor more archival requests. After the entire range of the lIIe specification is searched. tlie second phase begins. File Us.ge The prime concern lor users of the file system Is the mechanism that permits controlled sharing of programs and data. The design of TOPS-20 ensures that two users with access to the same program will share It automatically. When either user modifies a page of the program, the system gives that user a private copy of the page, unless the two users expllcltly specify they wish to share the modIfied page. This facility makes memory utillzatlon far more efficient, since many users can share a single physical copy of any program. For example, although the TOPS-20 COBOL complier code is shared by all users, the users' particular program statements are slored in separate areas. The second phase consists of examining tha tape Information for each of the archival request flies to determine whether that Information Is valid and complete. The archive status is then adjusted accordingly. If the file has been written to two tapes, and If the user did not specify to retain the contents of the file on disk, the disk contents of the file are deleted. Because the filenames are retained In the user's directory, the user can request retrieval of the files by filename. The llIe retrieval process uses the information In the file directory to identify the tape reel containIng the file. rape Labelling The TOPS-20 operating system supports the reading and writing of ANSI- and TOPS-20-tabelled tapes, and the reading of EBCDIC-labeled tapes. This support Includes Automatic Volume Recognition (AVR) 01 labeled tapes; reading and writing of labels; automatic record blOCking and file searching; handling multiple-volume tape sets; and fixed. variable, and spanned record formats. Although program sharing is Important, data sharing Is even more important when It comes to building effective multiuser database systems, especially when online Interaction Is required. it can be confusing If one user is changing a particular file while another user Is read ing it. To prevent this confusion the system offers several modes of shared access: • Shared Reading (one or more users reading, no user writing). • Writing (one user writing. none reading). • Shared Updating (one or more users reading and wrlt- CONSOLE FRONT·END PROCESSOR On the OECSYSTEM-2040 and 2060, the console frontend processor and software reduce the central proces- 4·6 ...... sor's participation In 110 opera tions and together serve as I powerful diagnostic/ maintenance tool for service personnel. Specifically, they is responsible for providing : tlng capability Is provided , enabling terminal speeds to be changed dynamically . On dialup terminal lines , the monitor wlll automatically select the appropriate rate for 110, 150, 300, or 1,200 baud lines when the user types a carriage return or Control-C. Thus, line speeds need not be associated with phone numbers. • Console functions • Interface for command terminals • Interface for unit record peripherals • Diagnostic and maintenance functions Peripheral Interface The unit record-spooling programs In TOPS-20 communicate with the console front-end processor, using the same buffering mechanism described lor the command terminal functions. Both the central processor and the console front-end processor maintain buffers lor data. They Interrupt only once per buller transmission, Increasing the amount of useful work each processor can do. Console Function. Two major functions 01 the front end are system InlUallntlOl'1 and communication between the system and the operItor. A person need only push a button and type In data to Inltlate the automatic program sequence In which the console front-end processor loads and verifies the microcode, configures and interleaves memory, and loads and starts execution of the central processor bootstrap program from a device specilled by the user. DlagnostlcfMa,ntananca Functions Remote diagnosis capability reduces mean time to repair (MTTR) and increases system availability to the user, It also allows DIGITAL's service engineers to determine the causes 01 most system failures before leaving the local office. By running diagnostic tests using telephone dialup fa cilities, the Field Service eng ineer can give the customer better service, because It Is easier to select which spares and test equipment should be taken on the call. Certain tests can be run during general timesharing . Even If the main CPU Is inoperative, the console front-end processor can access all buses and major registers. The user can request a memory conllguratlon listing that IndIcates which memory controller is online, what the highest memory address conligured is, and how the memory is Interleaved . All normal console capabilities, such as the ability to examine registers, change registers, start, stop, reset, and load, are provided by the console front-end processor. An operator command language is provided with the system. Command Terminal Function. The console front-end processor serves as an Intelligent data link and buffer lor the Interactive terminals, relieving the central processor 01 this overhead. The console frontend processor buffers the characters received and interrupts the central processor, either upon receipt of a clock ~nal or In the event it has a group of characters to send. The central processor also sends groups of characters for terminal output to the console Iront-end processor, further enhancing effiCiency. Programmable terminal speed-set- Total system security Is maintained because the onslte system operator must activate the communications link. Only the onslte personnel know the specific password to the system each time remote diagnosis Is employed. Time limits for system access can also be Imposed , and the remote link cannot operate at a privilege level higher than that specified by the local console terminal. All 110 to the diagnostic link Is copied to the local term inal , giving onslle personnel a record of all steps taken. 4-7 - , 5 KL10-E Processor The Kl 10 central processing unit is the heart of DIGITAL's large-scale computer systems. It provides the basis for the popular and successful DECsystem-10 and DECSYSTEM-20 computer families. The Kl 10-E version of the Kl10 is the central processing unit of the DECSYSTEM-2040 and the DECSYSTEM-2060. Important features of the Kl 10-E central processing unit are: • 36-blt word length for programming efficiency and data resolution • 398 logically grouped, microprogrammed instructions Including byte and strIng manipulation, double-precision fixed and floating poInt, and character editing and conversion • Full 256K, 36-bit word memory space addressing without Indirect or base addreSSing • An architecture that allows modular expansion without component replacement or complex reconfJguration • An integrated PDP-11 front-end processor for diagnostic functions, console functions, and handling of low-speed peripheral devices • Extensive error-detecting circuitry for maintainability and availability • Integrated high-speed data channels/controllers for disks and tapes for improved reliability and price/performance • State-Of-the-art memory management hardware for virtual memory operation • Four-word fetch capability for Increased bandwidth and performance • High-speed cache memory with state-Of-the-art design; typlcallnllne programming results in a 90 percent cache "hit" rate for efficiency and high performance • One of the most flexible priority interrupt systems available • A full line of high-efficiency, high-performance UNIBUS and MASS BUS peripheral devices to meet individual user needs • High-speed Eel logic implementation • Eight sets of general purpose registers that can be used as accumulators, Index registers, or the first 16 locations of main memory, having an access time of 125 nanoseconds The Internal erchltecture of the Kl10-E centrat processing unit can be considered a collection of special purpose processors connected through high-speed internal buses. Four major subsystems constitute the centrel processor for this discussion: • The Execution Box (EBox) and associated buses that execute machine Instructions and provide control for other subsystems • The main memory subsystem that consists 01 a memory control unit (MBox), associated buses, and internal MOS memory • The front-end diagnostic and console PDP-11 subsystem that also supports UNIBUS unit-record equipment • The I/ O subsystem that consists of Integrated channels/ controilers and PDP-II-based communications subsystems eXECUTION BOX (EBOX) The execution box (EBox) Is the part of the processor that actually executes Instructions and performs various control functions for overall CPU operation. The Kll0-E has 398 microprogrammed Instructions. Each Instruction Is implemented as a series of microinstructions that performs various logical functions such as processor state control, data path control , and the actual Implementation of each instruction. Using microcode as opposed to "hardwired" instruction Implementation , a machine Instruction executes one or more m lcrostore instructions. To execute a given machine instruction, the mIcroinstruction sequence associated with that instruction performs functions such as the data movement, operations on data, or control steps needed to execute that Instruction. The m icroprogrammed Kll0-E central processor oHers several Important features: Figure 5-1 lIIustrates a fully conligured Kll0-E central processing unit. Key elements of this Implementation of the processor are internal memory, a MASS BUS for hlghspeed disks and tapes, and a UNIBUS for low-speed peripherals (unit record and PDP-II-based communications Interfaces). The MASSBUS terminates In RH20 integrated channels/ controllers, and the UNIBUS terminates In the DTE Interface. • The CPU executes TOPS-20 paging (memory management) and monitor call Interface • Eng i neering changes or central processor improvements can often be Implemented by microcode changes, rather than by wiring changes, since the microcode Is loaded by the PDP-II front-end processor during system start-up • Cache and virtual memory operations are enhanced • The packaging technology of microcoded hardware permits smaller size and greater flexibility In Instructions Figure 5-2 Illustrates the SO-inch-high DIGITAL Corporate "High-Boy" cabinets in which the KllO-E is paCkaged . r------------ - -----~--------------- - - - ------ - ------ --- -- , ,, ,, '-- ,-;' i ' 11140 0 T E '-- r ~ o Eel PFlOCESSOR UP TO • I+-+ !. CACHEAN O MEMORY CONTROL . d i ,, l , ~---- -- ------, ~ ,,, ,----, 0 ~~:-+~ "'-n ,,, I 1.-- ----.., A A UP TO ,, • 2 2 • 0 0 ,, ,, " I """ I ,,, ~ ~ ,, • , --- ---------- -'-- · ----- --- . . --- ---- ClY "'-n CHANNelS ~j EJ H 0 c •• KU NtK UNIBUS ------------, H PenpherlilS r--- Mulliplexed MASSBU S 110 Bu. Peript8-als Opbonet Figure 5-1 Kl10-E Central Proce .. lng Unit 5·1 _ _ _ _ _ _ _ .J INTERNAl MEMO RY In add ition to the 398 Instructions, the KL 10-E provides 64 programmable operators, of which 33 trap to the monitor and 31 trap to the user's call area. The remaining instruction codes are unimplemented and reserved lor future expansion. An attempt to execute one of the unimplemented instructions results In a trap to the monitor. "''''" 2 7 / / ./I / 1/ = FRO NT- END SOBSYSTEM OTE / O<B RH20 = ,==, El FRONTEND c:~i'~... 0l/. ~:, ,,, ,, ,,, , , , , ,,, Despite Its size, the Instruction set is easy to learn. It is logically grouped Inlo families of instructions, and Ihe mnemonic codes are constructed modularly. All instructions are capable of directly addressing 256K 36-bltwords of memory without resorting 10 base registers, displacement addressing, or Indirect addressing. Instructions can, however, use Indirect addressing with Indexing to any level. Most lnslruCllon classes, including floaUng point, allow immediate mode dala, the result of which is effeclive ad· dress calculation used directly as an operand to save storage and speed execution . ECl PROCESSO R ImJNAL MEMORY Secj" l ~ r ii The procassor mods concept has been a keys lone in DIGITAL's timesharing or muilitasking systems for more than a decade, and it Is central to the KL 10-E Implementation. Instructions are executed In either ussr mods or execulivs mods. In a multltask environment a user must nOI execute Instructions that would jeopardize other users. With the KL 10-E, attempted execution of such an Instruction In user mode will trap to the operating system analyzIng the Instruction. and appropriate action will be taken. g Figure 5-2 KL10-E Mechanical Conflgural/on • Architectural extensions can often be made using microprogramming, obviating the need lor extensive engineerIng change orders (as, for example, In the support of new peripheral subsystems) In executive mode operation any Implemented instruction Is legal. The monitor operating In executive mode Is abls lo control all system resources and the state 01 the processor. Executive and user modes are each further divided Into two submodes. Table 1 defines the processor moda Implementation. The microcode Is actually Implemented with 2,048 75-bit words. The EBox also has a 512-word Instruction dispatch table that rapidly decodes InstrUClions and dispatches operations to the appropriate microstore sequence to implement the instruction. Table 1 Besides performing the basic functions 01 decodIng and implementing control store steps for the Implementation of each instruction In the KL10-E set, the microcontroller executes the more fundamental operations 01 sequencing the program and processing Interrupts. The KL 10-E set also handles TOPS-20 paging operations beyond the basic address translation made, lor example, by the pager. User Mode Public Submode • User programs • 256K word address • All instructions permitted unless they compromise integrity of the system or other users • Transfers to concealed submode onty at entry points The EBox also contains eight sets of 16 general purpose registers, four timing and accounting meters, and a OTE interface to the low-speed UNIBUS 110 devices. The Interface to the low-speed control devices Is controlled by the EBox's microcode. It performs the required deta and control transfers by stealing microcode cycles between the execution 01 CPU instructions. Concealed Submode • Proprietary programs • Can READ, WRITE, EXECUTE, or TRANSFER to any location labelled public In.tructlon Set The KL 10-E has 398 microprogrammed Instructions, an extremely large repertoire. This provides the flexibility required for specialized computing problems. Since the set provides a very wide selection of instructions from which to choose, few are typically needed to perform a given function. Programs can therefore be shorter than they would be on other computers. The large instruction set also simplifies the monitor (operallng system), language processors, and utility programs. Executive Mode (monitor) Supervisor Submode • General management of system • Those functions that affect only one user at a time • Executes In virtual address space labeled public 5-2 - Procesaor Modes Byte Manipulation - Five byte-manipulation instructions pack or unpack bytes of any length anywhere within a word . Kernel Submode • 110 for system • Those functions that affect all users Logic Instructions - logic Instructions shift, rotate. and execute the 16 Boolean operations on two variables. Instruction Format - In all but Input/output Instructions, the nine hlgh·order bits (0 - 8) specify the operation. Bits 9 - 12 usually address an accumulator, but are sometimes used for special control purposes such as addressing flags. The rest of the instruction word always supplies In· formation for calculating the effective address that Is used for Immediate mode data. or that Is the actual address used to fetch the operand or alter program flow. The effec· tive address Is refarred to throughout this document as tha user (or operating system) virtual address. Memory map· ping and/or paging hardware can map this effective ad· dress into a very different physical address within main memory. However, the programmer need only be concerned with an effective user address space that can be 256K words. Bit 13 specifies the type of addressing (direct or Indirect). Bits 14 - 17 specify an Index register for use In address modification (zero indicates no indexing), and the remaining eighteen bits (18 - 35) contain a memory address that Is used as the basis for effective address calculation or as an actual operand In Immediate mode format. FIxed-Point Arithmetic - The Kl10-E is a 2's complement machine in which zero is represented by a word con· talnlng aU zeros. As in comparable Implementations, the Kl10-E logic does not keep track of a binary point. The programmer must adopt a point convention and shih the magnitude of the result to conform to the convention used. Two common conventIons are to regard a number as an Integer (binary point to the right) or as a proper fraction (binary point to the leh). In these cases. the range of numbers represented by a single KL 10-E word Is -2" 10 2S1- 1 (binary point to the right) or - 1 to 1-2-u (binary point to the left). Since multiplication and division use doublelength numbers, there are special Instructions with Integral operands for these operations. The format for double-length , fixed-point numbers Is an extension 01 the single-length format. The magnitude (or Its 2's complement) Is the 70·blt string In bits 1 - 35 of the hlgh- and low-order words. Bit 0 of the high-order word Is the sign; bit 0 of the low-order word Is Ignored. The range for double-length integer and proper fracllons is thus _2 70 to 2- 70 -1 (binary point assumed at the right) or -1 to 127(1 (binary point assumed at the left). Zero is represented by a word containing ali zeros. All input/output Instructions are designated by "ones" In bits 0 - 2. Bits 3 - 9 address the device to be used, and bits 10 - 12 specify the operation. Bits 13 - 35 are the same as for noo·I/O Instructions. They are used in calculating an effective address for the data to be transferred. Floallng-Polnt Arithmetic - The KL 10-E processor has instructions for scaling, negallng . adding, subtracting. multiplying, and dividing In slngle- and double-precision floating-pOint format. Flgure 5·3 Illustrates the two Instruction formats lor the Kl10· E. '00'"'' "" o ••".u,"'" .. 000< 1' 023 &11,2,31.,718 ~' \ In single-precision floatIng-point format, one bit Is used for the sign, eight bits for the exponent. and 27 bits for the fraction. In double-precisIon floating-point format, one bit is used for the sign, eight bits lor the exponent, and 62 bits for the fraction. This results In a precision In the fraction of 1 part In 4.6 X 10" and an exponent of 21n the range from -126to + 127. ''''''' REGISTER _ESS " REGISlEA '''''''' _ESS / /1 MEMORY ADOAESS 1110121'141718 " Normalized slngle·preclslon lIoating-polnt numbers have a Iraction that can range In magnitude Irom 'n to 1-(2- 17). Increasing the length of a number to two words does not significantly change the range, but It does increase the precision. In any format the magnitude range of the normalized fraction Is from V. to 1 less the value of the least significant bit. In all formats the exponent range Is from 2- 1" to 2m . I Figure 5·3 Instruction Formats Fixed/Floating Conver sion - Special instructions convert between fixed- and floating-point formats. Two sets of conversion instructions are provided . one optImized lor FORTRAN. the other for ALGOl. Ha lt·Word Data Transmission - Half-word data transmission Instructions move hall a word and can modify the contents of the other half of the destination location. The 16 sets of instructions differ In tha direction they move the chosen hall-word and in the way they modify the other hall of the destination location . Arithmetic Testi ng - An arithmetic testing Instruction can jump or skip depending upon the resu lt of an arithmetic test. II can also perform an arithmetic operation on the tested word. Full·Word Data Transmission - Full-word data transmission Instructions move one or more lull words of data from one place to another. The Instructions can perform minor arithmetic operations such as calculating the negative or the magnitude of the word being processed. logica l Testing, Modification , and Ski p - These Instructions modify and/ or test using a mask , and/or skip on selected bits In an accumulator. 5-3 Program Contlol - Program control Instructions Include several types of jump Instructions and subroutine calls Including calls that save the return address on a pushdown stack. Input/Output Operations - Inpul/output (110) Instructions govern all direct transfers of status to and from the peripheral equipment. They also perlorm many operations within the processor. Block transfer Instructions handle bulk data transfers to and from medium-speed 110 bus devices. High-speed devices transfer data directly to memory through Internal channels. Unimplemented User Operations (UUOs) - Many of the codes not assigned as specific Instructions are executed as unimplemented user operations. The word given as an Instruction Is trapped and must be Interpreted by a routine Included lor th is purpose, either by the programmer or by the monitor. TOPS-20 uses the Instruction JSVS to transfer control from the user program to the monitor where any of a large number of functions Is performed. The function perlormed is determ ined both by the effective address and by arguments in the user's registers. break suspends a user program end traps to the opereting system. This facUlty Is particularly useful In program development and debugging. Meter. Two meters built Into the KL10-E provide a number of timing and counting functions, Including an interval timer and a time base counter. The meters are controlled by 110 Instructions to internal devices. Many of the timing functions utilize a m icrosecond pulse source originating In the basic 30-megacycle mach ine clock. Designed with a tolerance of 0.005 percent, this pulse source drifts less than five seconds over 2. hours. The Interval timer Is a programmable source of interrupts with a one-microsecond resolution. Used lor realtime appUcatlons and for page management by the monitor. It can Implement a realtime deadline schedule with varying deadlines. The ti me base Is a SO-bit, one-microsecond resolution counter that can generate a source of elapsed time. This SO-bit register provides more than 9,000 years maximum time belore wrap-eround. Buslnen Instruction Set _ There are live classes of Instructions In the Business Instruction Set of the KL10-E central processor. Four of these are arithmetic instructions to add, subtract, multiply, and divide using double-precision, fiXed-point operands. The STRING Instruction in the filth ciass can perform nine separate string functions. Priority Interrupt System The KL 10-E has a powerful, flexible priority Interrupt system that permits overlapped concurrent asynchronous operation 01 the central processor, peripheral controllers end devIces, and software service routines. These functions include an edit capability, decimal-to-binary and blnary-to-declmal conversion in both offset and translated mode, move-string in both oifsetand translated mode, and compare-string In both offset and translated mode. Offset mode Is byte modification by add ition of the effective address of the string Instruction . Besides providing the translation function, these instructions can control AC flags and can detect special characters In the source string . Devices are assigned under program control to anyone of seven priority levels through dynamic loading of a 3-blt register within the device. Each of the seven levels has any number of programmable sublevels with which a programmer can change the priority level of any device, or disconnect the device from the system and later reinstate It at the same or any other level . In a similar manner, a program can set, enable, or dlsabla all (or any combination of) levels wIth a Single InstructIon. The program can assign some or all devices to the same level. The Business Instruction Set provides faster processing because there are special instructions for a variety of string operations. These instrucllons can be used on many code types such as ASCII and EBCDIC. The Business Instruction Set exemplifies a microprogrammed processor's advantages In meeting special user needs. The system can also generste Interrupts through software. so hardware can operate on a high-priority level while related computations can be performed on a lower level. The program-assignable priority Interrupt system provides much greater flexibility than permanently hardwired systems because hardwired systems require a large number 01 levels, often Operate with an extremely high overhead , and cannot change devIce priorities wIthout system shutdown and rewiring. Trap Handling _ The execution 01 programmed trap instructions permits the KL 10-E to directly handle arithmetic overflows and underllows and pushdown list overllows. Fast Register Blocks - The KL 100E architecture Includes eight sets of 16 general purpose registers. They can be used as accumulators, Index registers, or as the IIrst 16 locations in maln memory. Since register addressing is included in the basic instruction format, no speciallnstructlons are needed to access these registers. Different raglster blocks are used for the operating system and individual users, eliminating the need for storing register contents when switching from user mode to executive mode. In conjunction wIth the priority Interrupt system, a set of Instructions (BLOCK-IN/ BLOCK-OUT) allows the transfer of blocks 01 information between a device and memory In a single operation. When an Interrupt occurs, the KL 10-E will trap to a predetermined location . The BLOCK IN/ BLOCK-OUT Instruction Identifies the source of the Interrupt, translers a word In or out, updates word count and data address, and dismisses the Interrupt. When the word count Is zero, a different action occurs that allows the program to either prOCess the block of Information that has been transferred or to move on to other sct/vltles. Programmable Address Break _ When s specified location Is properly referenced, e programmable address 5-4 - MEMORY SUBSYSTEM Central to the KL 1O-E architecture Is the Implementation of all memory control through a discrete memory controller (MBox). The MBox Is responsible lor all memory requests from the E80x and Integrated channels/controllers for high-speed peripherals (disks and tapes). The MBox does paging (address translation) for memory management and contains the cache memory for CPU models so equipped. MOS Memory Metal Oxide Semiconductor (MOS) memory has a word length of 44 bits (36 data bits, seven error detection and correction bits, and one spare bit). This Implementation allows hardware detection and correction of a single-bit data error and hardware detection of a double-bit error. MOS memory Is available In 256K word Increments to a maximum of 2M words. Internal Memory The Internat memory Implementation of the KL 1O-E offers Improved reUabliity and lower cost per word than external memories, due to Its simplified design and, since no long bus Interfaces are required, fewer components. If a correctable (single-bit) error Is detected, the hardware Table 5-2 automatically corrects the data word , and notifies the CPU with a flag . This allows the program to continue without consideration of such memory deterioration while, at the same time, the operating system can gather statistics concerning possible failing areas of memory. II a detectable but noncorrectable (double-bit) error Is encountered, the memory controller signals the CPU, sets a noncorrectableerror lIag, and provides certain other data on the first error detected . The operating system will mark the page containing this location and will not reuse It. Internal Memory System Featu re MF20 Memory System M F20 (M OS) Word Size 36 bits plus 7 errorcorrecting bits Minimum Memory Slze- 256K words Maximum Memory Size· 2,048K words Read Access Time" 467 ns Read Cycle Time" I-word 4-word 667ns 1,287 ns The spare bit can be substituted (upon software command) for falling bits, significantly enhancing the mean time between failure (MTBF) for this type memory. Cache Memory Cache memory decreases Instruction execution time by substantially speed ing the average memory reference. This is accomplished by placing a high-speed semiconductor memory (the cache) Inside the MBox. The cache can hold up to 2K words from memory. Whenever the program accesses a word held In cache, the request Is satislled In 133 nanoseconds, compared to 867 nanoseconds or more for a memory reference as measured at the EBox. Interleaving Minimum memory unit that can be disabled The success of cache memory depends on the quality of the algorithm used to decide which 2K words from memory are cached . Cached locations change constantly wlth varying system demands, but the algorithm is based on the assumption that memory references tend to be somewhat localized . In a typical program the flow of control Is linear within a narrow scope. If an Instruction has Just been executed from location N, there Is a high probabil ity that there will soon be an instruction executed from location N • Within CPU cabinet • • Measured at memory ,, ,,, ""..." Section 2 INTERNAL + 1. MEMORY ,, ,, The "hit rate" of the KL 10- E cache memory usually exceeds 90 percent. Figure 5-4 Internal Memory Systems Configuration Several unique design features of the KL 10-E cache memoryare: • KL 10-E cache Is not a write-through cache. If the EBox Instructs the MBox to write a given location, the location Is modified only In cache. The corresponding physical location will be updated only when the monitor Instructs the MBox to sweep cache or when a quadword (lour adjacent 36-bit words) must be emptied to make room for new data . • The cache Is organized to handle physIcal addresses. Cache as used on some other large systems, however, Is oriented toward vlr1uai addresses. Stanford University developed the cache algorithm used in the Kl10-E, and Its modeling demonstrates that us ing physical addresses is more efficient than using virtual addresses. , 15 _ MEMO RY CONTROL (M ·SOJ() e A e H execUTE BOX (E·SoJ() E 5-5 • The hardware's use of the cache Is dependent upon the M 80x microcode that Is normally set up to support all four cache pages. However, If desired, some or all 01 the cache can be turned off. This option Is exercised when the front end Is Initializing the Kll0-E at system startup. j . . - .. Data WOrds Organ ization The cache can hold up to 2,048 words from memory. It Is organized as four separale, 512-word pages that operate In parallel. Each cache page has a directory associated with II. The directory consists of 128 13-blt entries. A single directory entry contains information concerning four words of data within the cache page (Figure 5-6). A four-word cell described by a single directory entry Is called a quadword. The 13-bit directory entry for a quadword contains the physical page number of the page In memory that originated the quadword. In turn, the position of a word within a cache page Is always the same as the position 01 the word In Its original page of memory. In the following simplified example, assume that there is only one page 01 cache and lis associated directory, rather than the four thai are actually provided In the hardware. Suppose that the EBox has requested the contents of the 22-blt physical address 14707002 (addresses are in octal nolatlon). The MBox must determine If It must read memory location 14707002, or If that location is already in cache. The IIrst step Is to split the physical address Into a 13-bll physical page number, in this case 14707, and a 9-bit index Into the page 002. In other words, the search Is concerned with the oo2nd word 01 physical page 14707.11 this word Is already cached, the only place It could be In a single cache page would be word 002, because the position 01 a word within a cache page is always the same as the position of the word In its original page. The MBox must examine the 13-bit directory entry corresponding to the 002nd word 01 the page and compare It to the desired physical page number of 14707. If the directory entry holds 14707, then the 002nd cache page word Is Indeed the required word . If the comparison lails, then It must read physical memory. L 13-8i1 DIrectory Figure 5--5 Cache Page Structure The above example was simplified by the omission of three-fourths of the cache pages. In a real system with lour pages (2K words) of cache, a given physical word might actually reside in anyone of the four pages 01 cache. It has to be In word 002 of whichever page hotds It; Just as It had to be In word 002 of the single cache page. The MBox compares the desired physical page number of 14707 to the contents of four directory entries, one for word 002 In each of the four cache pages. "a match Is found, then the data Is taken from the proper page. Otherwise physical memory must be read. Since there is exactly one directory entry lor each quadword , it follows that all four words In the quadword must come from the same physical page. Moreover, a word must have the same position In the cache page that It had In the physical memory page. These facts Imply that the four words In a single quadword are physically contiguous In memory as well as in cache - a key concept In the Kll O-E cache design. The algorithm that determines the order In which the cache pages are filled uses tables In RAM storage. Therefore, by rewriting the tables It Is possible, under program control, to shut down part or aU of the cache. 'Valid Bit Written Bit xxxxxxxxxxxxxxxx , , . , • . xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx Figure 5-6 Single Entry in Cache 5-6 • entry exists, the contents 01 the entry supply the 13-bIt most Significant part of the physical memory address and also supply three bits that Indicate types of memory references allowed to this page. If the memory request is consistent with the request type allowed, the physical address used consists of the 13 bits from the related page table entry as the most significant bits of the physical address, and the nine least significant bits 01 the effective address as the least Significant bits of the physical address. Syslem Conlrol 01 Cache There are Ihree different operations to which the monllor can subjecllhe cache: Invalldallon, validation, and unloading. These operalions can be performed on the entire cache or on entries belonging 10 a single memory page. To invalldale a locallon means 10 clear Its valid and written bits, Ihus emptying the location. Validation of a location means Ihal, II an entry has been written since It was brought In from memory, Ihen the modified contents must be written back into physical memory, This is necessary because the cache Is not a write-through cache. The unloading 01 a location requires Ihe MBox to validate the location and then to invalidate It. When the relocation data lor a referenced page does not exist In the hardware page table, Ihe microcode reads the relocation data from the page table In memory, stores It In the hardware page table of the KL IO-E, and proceeds. The operating system assigns the memory area for each user by loading the various In-memory page tables, setting up the trap locations In the user page map, and responding appropriately when a trap occurs. The monitor provides memory protection for itself and for each user by filling the page tables only with entries that are allowed to be accessed. This makes It Impossible for a user to infringe on another user's physical memory area. Memory Mapping on the KL1O·E The KL 10-E provides a hardware Implementation 01 memory address mapping from a program's memory address space (effective address or virtual address) to the physical memory address space. During mapping, the most significant bits of the memory address are changed dynamically to indicate the physical address at wh ich the program Is running , Mapping provides access to the entire physical memory space, which can be up to 16 times larger than the maxJmum user address space, The user's eflectlve address space i s 256K words addressed with IS-bit addresses. The physical address space Is 4M words addressed with 22-bit addresses (where 4M Is equivalent to 4,194,304 decimal). Provisions exist In the KL 1O· E to allow a user address space larger than 256K words. The major benefits 01 this paging capability are: • Full memory prot action alone user from another through hardware and microcode • Freedom to scatter the pages 01 a user virtual memory area throughout physical memory (programs do not have to be physically contiguous), eliminating memory shulliing and complex memory management even though a user program grows during execution • The opportunity to execute a program when all 01 Its pages are not In physical memory (i.e. , a virtual memory capability) The memory mapping process uses the nine most significant bits 01 the virtual address as an Index Into the appropriate user or executive page map. The data located by the Index provides 13 bits that are appended to the nine least significant bits 01 the virtual address to lorm the 22bit physical address. Also provided are three bits that Indicate what type of memory requests are allowed to the page in question, tor example, none, read-only, or proprietary. Figure 5·7 1I1ustrates this mapping by means of the page table. FRONT·END SUBSYSTEM A key element in the operation and maintenance of the KL 10-E is the POP-II-based console/diagnostic Iront-end computer. This minicomputer provides all console func tions lor the KL 10-E and Its associated operating systems (TOPS-IO and TOPS-20). effECTIVE AOOAESS , , ~{ , The POP-It interfaces to the KL I O-E through a dedicated DIGITAL Ten-to-Eleven (OTE-20) Interface with a tull-capabillty UNIBUS. The OTE·20, under control of both the KL 10·E and the Iront-end PDP-II, can examine or deposit words Into memory, and can provide two-way data transfers. Asynchronous communications lines for the console term inal and a dedicated line for remotellocal diagnostic functions (KLINIK) connect the user to the operating system through the console Iront end. ""'WOODS I IB11T5 - { !il2PMlES ,...." , PAGE I ~ " I , In addition to the OTE·20 link, both the KlIO-E (through an AH20) and the POP-II (through an RH11) are Interfaced to separate ports on an AP06 disk drive. Figure 5·S Illustrates these connections. .0II6K WOROS I 2281TS - { el92PAGES Figure 5·7 Memory Mapping In addition to the console and diagnostic functions, the KL10-E's Iront-end console/diagnostic PDP-11 supports unit record and asynchronous communications equipment. From the user standpoint, these devices operate Identically to those Interfaced to separate PDP-lis. They are explained In detail in the section below on 110 devices. II the address is In the range 0 - 17., Inclusive, the hardware fast regIster blocks are referenced Instead of the main memory system. The user mode bit and the nine high ·order bits of the virtual address are used to perform a "table lookup" In the hardware page table. If a page lable 5-7 E u"sus I I'OI'-n KL C"'_ PROCESSOR F I I POP-II "'"0''' J I I flOPPY RHn OR """ DEC''''' OI.n OI.n UN' """"". CAAO READER· L- CO""''' DUAL .poRTED "". TERMINAL LOCAL OR REMOTE I<UNIK TERMINAL -Kl.IO-E Figure 5-1 Front-End Subsystem formatted specifically for the front-end Illes. There ara both hardware and software interlocks to prevent the KL10-E and PDP- l1 lrom interfering with one another. The PDP-II disk area Is not available for user storage. All KL 10-based systems rely on the front-end for at least two basic functions. First. the PDP-11 Is used to initiate CPU operations from 8 dead stop. This process Involves setting up Kll0-E status. loading mIcrocode , configuring memory, and starting the monitor bootstrap. These operations are conducted primarily across a dIagnostic bus that connects the front-end to both the EBox and the MBox by software. Second , the PDP-11 supports the console terminal with which an operator can control the system. It Is this term inal that governs the operatIng system and th,J tasks running under It. The terminal can also be used as a normal user terminal. KL 10-E systems can support up to four PDP-lis; however, only one of these can be the controlling front end. To prevent conflicts between different PDP-I I s, the operations descr i bed In th is section can be accomplished only through a "privileged" hardware- and software-selectable DTE-20. INPUT/OUTPUT SUBSYSTEM The KL 10-E inpuVoutput subsystem provides standar d Interfaces and control logic for connecting the KL 100E to a wide range of peripheral and communications equipment. This includes disks and magnetic tapes, and - through PDP-II-based communications subsystems - cardreaders, tlneprlnters, synchronous, and asynchronous lines. Details of the operation and the specifications of these peripheral devices are described In Section 7. These functions are implemented us ing a spec ial operating system that runs in the front-end with supporting code for TOPS-20. The PDP-l1-based operating system Is built around DIGITAL's RSX realtime system software. RSX allows concurrent operation multiple tasks. One task Is the "command parser," the program that recognizes commands typed on the console terminal and passes appropriate messages through the DTE-20 to the TOPS-20 operating system. Other tasks Include KLiNIT, which oversees initialization of the KL10-E processor, and KLiNIK, which provides a diagnostic environment lor diagnosis and control of the KL10-E by privileged users from either local or remote locations. 0' To standardize the interface and permit the connectIon of a wide range of peripheral devIces, DIGITAL has long used a " bus" architecture. Three external buses (see Figure 5-9) are available to communicate with the Kll0-E CPU: • Multiplexed 1/ 0 bus • MASSBUS • UNIBUS Some devices associated with this front end support console and diagnostic operations and can be used as peripheral devices. These Include the RHII disk controller and a floppy-d isk drive. The floppy-d isk drive can be used as an alternate bootstrap device If, for some reason, the RP06 disk either cannot be used or contains Incorrect information. Multiplexed 1/0 Bus A multiplexed 1/ 0 bus Is optional on the Kl10-E. TOPS-20 supports un it record and communications capability through PDP-I I-based controllers but does support a lew special devices on the 1/ 0 bus. See Section 7 'or Information about these peripheral devices. The 110 bus provides control and a character-by-character, Interrupt-driven interface lor low-speed devices. Figure 5-10 illustrates the hardware asSOCiated with the KL10-E 1/0 bus. Front-end operations require that the dual-ported RPOS be available for normal operations. The RP06 Is connected to both the KL1O-E and the PDP-11 through dual-ported hardware. The disk used Is KL 1O-formatted with a section 5·8 • memory controller and Individual MASSBUS devices. Up to eight RH20s can be Installed In the Kll0. For each davice, the channel provides 8 15-word data buffer, a channel command word register, and a control command word pointer that serves as a program counter. The channels transfer data Independently of the KL 10-E execution logic by executing channel programs placed in memory by device service routines that use memory cycles. The device service routines are in the operating system. A channel bus Interfaces the RH20 Integrated controllers to the memory control unit (MBox) of the KL 10-E CPU. The bus Is a physically short, high-speed data transfer path designed for peak 1/0 bandwidth of six million words per second - well in excess of that encountered in any existIng memory or peripheral units - between the memory control unit and the MASS BUS controllers (RH20S). Operating In synchronous time-division multiplexed mode, the channel bus allows the connectfon 01 multiple RH20s In memory. I Each RH20 terminates In a MASSBUS. This high-speed data path connects the RH20 integrated controllers and mass storage devices such as disk or tape. Operating either asynchronously or synchronously, the MASSBUS transfers control and status Information or blocks of data between devices and controllers. Figure 5-9 KL 10·E Input/Output Bus Architecture DIGITAL disks and tapes connect directly to the MASSBUS , providing an Integrated, high-speed subsystem for mass storage. MASSBUS DIGITAL's MASSBUS allows connection of a wide range of DIGITAL disks and magnetic tapes to the KL1O- E central processor. See Sectlon 7 for Information about MASSBUS peripheral devices. Each MASSBUS can Interface as many as eight peripheral device controllers to a single RH20 MASSBUS controller. Each RH20 Interiaces to the ESox through the EBus and to one of eight data channels located In the MBax through the channel bus (CB us). (See Flg- UNIBUS DIGITAL 's UNIBUS prov ides the third path between external devices and the KL10-E CPU. As Illustrated in Figure 5-12, this interface uses the DTE-20 Interface to provide: • The ability to examine or deposit words In PDP-l1 memory and specified areas 01 KL 10-E memory (under the control of a PDP-11 processor connected to the DTE-20terminated UNIBUS or the KL 10-E CPU) • High-speed simultaneous transfer of data between PDP11 and KL10-E memory. This transfer operates In a ure5-1'.) The channel also Includes 8 series 01 multiple-word channel buffers to support high-speed 110 between the KL 10-E MULTIPLEXED I/O SUS DIA/S· E-Box HARDCOPY CONTROL Kl10 I I CARD READER LINE PRINTER LINE PRINTER CENTRAL PROCESSOR Figure 5-10 Multiplexed 1/0 Bus Architecture 5-9 DECTAPE CARD PUNCH There are two ways in which the DTE·20 allows a PDP-II to communicate with KL10-E memory. First, the PDP.l1 can use an examine/deposit feature that permits the PDP11 to read or write a single KL 10-E word. Second, DTE-20 transfers a string of data 10 or from Kll0·E memory. It Is Important to note Ihat the PDP-II memory Is itself a UNI. BUS device, and the DTE-20 can directly access it. For Kll0-E accesses, the DTE-20 Interfaces to the EBox of the Kll0-E processor. The DTE·20 does not operate unless a PDP-II Is connected to it and the appropriate program Is running In the PDP-11 . The PDP·l1 can examine or make deposits to any address within two windows defined in KL 10-E memory. The windows are specified by the operating system exec process table and are known as the "to-lO" area and the "to11 " area. The PDP· 11 can write only to the "to· 10" area; the Kll0·E can write to both. Figure 5·" MASSBUS Interface on f-----.~~--__,- A restricted DTE·20 cannot examine or deposit outside of the windows established by the operating system. This enables the Kll0·E to protect Itself from a malfunctioning PDP-II . However. for diagnostic functions, a privileged fronl end used only as the consolelfront-end processor can examine and deposit anywhere In Kll0-E memory. The other transfer mechanism, byte Iransfer, permits transfers to or from anywhere In KL 10-E memory. Byte size can be eight or 16 blls al the program'S option, and byte transfer supports concurrent ''10-10'' and "to-11 " transfers. Figure 5·12 UNIBUS Interface PDP·11 "byte" mode and transfers 8· or 16·blt bytes under the control of either the PDP·11 or KL10-E proc. essors. • Doorbell Interrupts - the PoP·l1 can cause an Interruptto the KL IO·E processor and vice versa The oTE-20's two operating modes, restricted and prlvi. leged , are controlled by a hardware switch on the oTE.20. The privileged oTE·20 Is used only for the console/frontend PDP-II ; it Is discussed In the section on Front-End Subsystems in this document. Only the restricted oTE-20, used to control peripheral devices and communications equipment, is described here. Once a transfer has been initiated, the DTE-2Q handles It without further Intervention from either CPU at the pro. gram leveL The operating system will not be Interrupted until the entire transfer Is complete. The DTE·20 recognizes the end of the transfer by the expiration of a byte counter. Transfer completion results in an Interrupt on the assigned PI leveL On the Kll0· E side, actuallmplementation of a byte or word transfer is by microcode. Thus, duro ing transfers through the DTE. 20, cycles stolen from the microcode Incur some CPU overhead. As Indicated earlier. DTE·20 operation requires a PDP-II processor. While service routines are Integral to the oper. ating system, It is the PDP·l1 program that actually con. trois the peripheral equipment. Cardreaders and lineprinters are supported on the consolelfront-end processor , as are a limited number of asynchronous communications lines. You can obtain additlonal'nformalJon on any peripheral or communications subsystem by contacting your DIGiTAL representative. 5-10 6 KS10 Processor - - • • q The KS10 central processing unit (CPU) forms the basis of the DECSYSTEM-2020. The KS 10 has changed mainframe computing. People constrained by budgets to settle for something less than a mainframe can now install a KS10-based OECSYSTEM·2020 with full assurance that softwarecompatible growth Is easy, cost-eHective, and straightforward. The DECSYSTEM-2020 comprises a number of major units or subsystems that communicate with each other. The minimum system has five subsystems: processor, MOS memory, console. a UNIBUS adapter to handle the disk system, and a UNIBUS adapter to handle all other peripheral devices. The console, which is based on a microprocessor, boots the system from disk and handles Interaction of the operator or a remote diagnostic link with other subsystems. SYSTEM ARCHITECTURE The KS10 microprogrammed central processor form s the basis for the DECSYST EM- 2020 computer system. The OECSYSTEM-2020 consists of four major subsystems: • KS 10 CPU and memory • Console and diagnostic microprocessor • UNIBUS Adapters • PMipherai controllers KS10Technoiogy The KS1Q uses low-power Schottky TTL and features a four-bit data path slice microprocessor to provide full TOPS-20 functionality at low cost. Microprogramming technology used In the KS10 design relies heavily on experience gained In the design and im- plementation of the successful Kl 10 central processor and several of DIGITAL's smalier central processors. MIcrocoded machine Instructions are Implemented by one or more mlcrostote instructions that move or operate on data or that control steps necessary to achieve the desired ef· fecI. - Microprogramming Implementation of the KS10 central processor provides several Important advantages: • Engineering changes or central processor Improve· ments can often be microstore (fIrmware) changes rath· er than wiring changes • The packaging technology of microcoded hardware ra-duces machine size and Increases flexlblllty of machine instructions • Microprogramming speeds virtual address cache and virtual memory control operations Figure &.1 Sy.tem ArchItecture The heart of the KS10 Is an internal synchronous back· plane bus, called the KS10 bus. A multiplexed, two-cycle bus, It provides a control and data path between the processor, memory, console, and per i pheral devices . Command and address Information Is transmitted from one bus device to another during the first ISO-nanosecond bus cycle. Data Is then transferred between the devices during the following bus cycle. The microprogramming Instruction combines with the four·blt·slice technology to make the KS10 reliable, low· cost, flexible, and compact. Chip technology has pro· grassed to the poInt where a single chip contains an entire data path, Including data registers, data operations, and lestlng and control functions for four bits. Thus, to Imple· ment a 36·blt KS10 central processor, nine four·bit data path slice chips are used, plus a tenth four·blt data path slice chip for extra control bits. Control lines from each are connected to the mlcrostore logic, so the microcode can dictate function, control, and data flow throughout the sys· tem. The bus operates In a bus request/bus grant mode before any device can transfer Information, it must first request and be granted the bus. There is a bus request line and a corresponding grent line for each device. The bus arbitrator on the console module monitors all requests, resolves priority, and , whenever the bus Is free. grants the bus by asserting the grant line for the requesting device with the highest priority. The bus arbitrator can handle up to eight devices. Figure 8-1 Illustrates the connectIon of the KS10 central processor, memory, UNIBUS Adapters, and console via the KSIO bU8. The KSI 0 Central Processing Unit The KS10 central processing unit consists of four extend· ad hex modules. They are: • The Data Path Execullve (OPE) Module that contains data path, registers, cache, PI system, and Dispatch ROM (Read·Only Memory) • The Data Path Memory (DPM) Module that contains bus Interlace, processor status flags, paging, cache directo· ry, and shift counter • The Control RAM Address (CRA) Module that contains next microcode address logic, microcode leading hard· ware, and 2K x 36 bits of microcode • The Control RAM Memory (CRM) Module that contains 2K x 60 bits of microcode. The bus performs several major functions: • Transfer data to and from MOS memory through the memory controlier under control of the CPU , console, or a UNIBUS Adapter. • Transfer data to and from 110 device registers under control of the CPU or console. Any device outside the CPU Is considered an 110 device. • Transmit priority interrupt requests generated by the UNIBUS Adapters and, upon CPU request, provide device numbers and Interrupt vectors from the Interrupting device to the CPU. 6-1 2 • Provide a continuous clock train used by all devices to sequence log ic and to synchronize operation with the rest of the system. • Equip the console to reset the system, to perform dlag. nostic functions, and to signal ac power failure to the devices on the bus. supplies Information for calculating the effective address. The effective address can be used as an operand (immediate mode) or as the actual (virtual) address to fetch an operand or alter program flow. Bit 13 specifies the type of addreSSing (direct or Indirect); bits 14 - 17 specify an index register used for address modification (zero indicates no Indexing). The remaining 18 bits contain a memo· ry address. Hair-Word OataTransmisslon - Half·word data transmission Instruc!lons move half a word and can modify the contents 01 the other half 01 the destination location. The 16 sets 01 Instructions differ In the direction they move the chosen half-word and in the way they modify the other half of the destination location . The KS10 bus data path Is 36 bits wide. Additionally, there are two parity bits associated with the data lines, one for data lines 0 - 17 and a second for data lines 18 - 35. Each device checks for correct parity when It receives Informa· tlon over the bus. If bad parity Is detected , the CPU clock Is stopped. Cliche Memory Cache memory decreases Instruction execution time by substantially speed ing the average memory reference. Main memory access time Is 900 nanoseconds; cache access time Is 300 nanoseconds. The typical KS10 cache hit rate of 80 percent gives an effective average memory ac· cess time of 420 nanoseconds. The KS10's 512-word cache memory Is located on the Data Path Executive (DPE) Module. Full-Word Data Transmission - Full-word data transmls· sian instructions move one or more full words of data. The Instructions can perform minor arithmetic operations, for Instance, calculating the negative or the magnitude of the word being processed . Byte Manipulation - Five byte·manlpulatlon Instructions pack or unpack bytes 01 any length anywhere within a word . Log ic Instruction s - LogiC Instructions shift, rotate, and execute the 16 Boolean operations on two variables. Genera l Registers The general registers consist of eight accumulator (AC) blocks of 16 words each, located on the OPE Module. The eight sets 01 registers can be used as accumulators, Index registers, or the first 16 locations In memory. How the registers are used depends upon how they are addressed in the Instruction word. Access time to general registers Is 300 nanoseconds. Fixed-Point Arithmetic - The KS10 Is a 2's complement machine In which zero Is represented by a word containing all zeros. As In comparable Implementations, the KS-IO logic does not keep track of a binary po int . The programmer must adopt a point convention and shift the magnitude 01 the result to conform to the convention used. Two common conventions are to regard a number as an integer (binary point to the right) or as a proper fraction (binary point to the left). In these cases, the range of numbers represented by a single KS-IO word Is _2 u to 2u -1 (binary paint to the right) or -1 to 1-2·u (binary point to the left). Since multiplication and division use doublelength numbers, there are special Instructions with Integral operands for these operations. Mlcrosto re The microstore Is located on the Control RAM Address and Control RAM Memory Modules. 2,048 96-blt words are provided. The microcode and microstore are considered integral to the hardware and are not available lor operating system or user program use. Instruction Sel The KS10 central processing unit features 396 microprogrammed Instructions. Each Instruction is a series of microinstructions that performs various logical functions such as processor state control, data path control, and actual implementation of each instruction in the KS 1O's set Since the set provides so many Instructions, fewer Instructions are typically required to perform a given lunc· tion. The instructions are log ically classed and consistent in mode, making their use straightforward. The format for double-length, fixed-point numbers Is an extension of the slngle·length format. The magnitude (or Its 2's complement) is the 70-blt string In bits 1 - 35 01 the high- and low-order words. Bit 0 of the hlgh·order word Is the sign; bit 0 of the low-order word Is Ignored. The range for double-length Integer and proper fractions Is thus - 2711 to 2-"_ 1 (binary point assumed at the right) or -1 to 12 70 (binary point assumed at the left). Zero Is represented by a word containing all zeros. All instructions are capable of directly addressing 256K words without resorting to base registers, displacement addressing, or Indirect addressing . Instructions can use Indirect addressing with indexing to any level. Many Instruction classes, Including floating point, allow Immed iate mode addressing where the result of the effective address calculation Is used directly as an operand to save storage and speed execution. Floating-Point Arithmetic - The KS10-E processor has instructions for scaling, negating, adding, subtracting, multiplying , and dividing in single· and double·preclslon floating·polnt format. In single·preclslon floatlng·polnt format, one bit Is used for the sign, eight bits for the exponent, and 27 bits for the fraction. In double-precision floating·point format, one bit is used for the sign, eight bits for the exponent, and 62 bits for the fraction. This results In a precision In the fraction of 1 part In 4.6 x 10 1 • and an exponent of 21n the range from -128to +127. In all Instructions, the nine hlgh·order bits specify the operation . Bits 9 - 12 usually address an accumulator, but are sometimes used for special control purposes such as addreSSing lIags. The rest of the instruction word always 6-2 • add, subtract, multiply, and divide, using double-preclslon,lixed-polnt operands. The STRING instruction, the fifth class, performs nine separate string functions. These functions Include an edit capability; decimal-to-binary and blnary-to-declmal conversion In both offset and translated mode; and move string and compare string In both offset and translated mode. Offset mode Is byte modification by addition of the effective address 01 the string Instruction. Besides providing the translation function, these Instructions can control AC lIags and can detect special characters In the source string. The Business Instruction Set provides faster processing because there are speclallnstrucllons for a range 01 string operations. These Instructions can be used on a variety of code types, SUCh as ASCII and EBCDIC. Trap Handling - The KS10 provides programmed trap Instructions to directly handle arithmetic overflows and underllows, pUShdown list overflows, and page failures. This trap capability avoids recourse to the program interrupt system. Normalized single-precision Ilealing-point numbers have 8 fraction that can range In magnitude from 'h to 1-(2-"). Increasing the length of 8 number to two words does not slgnillcantly change the range, but It does increase the precision. In any formal the magnitude range of the normalized fraction Is from 'h to 1 less the value of the least significant bit. In all lormals the exponent range Is Irom 2- ' " to 2117. Proces.or Modes Instructions are executed In either Executive Mode or User Mode, depending on the state of the mode bit. In Executive Mode operations, all Implemented Instructions are legal. The monitor operates in Executive Mode and is able to control all system resources and the state of the processor. In User Mode certain Instructions, such as direct 110, are illegal and cause a trap to the monitor. Users are required to Issue monitor calls for such system services. FlxedlFloatlng Conver,lon - Special KS10 Instructions convert fixed-point formals to or from Iloating-point for- mats. Two sets of Instructions perform this function, one MEMORY set optimized lor FORTRAN and 8 second set optimized for ALGOl. The KS10 central processor supports a hierarchical memory system consisting of fast register blocks, hlghspeed cache memory, main (MaS) memory. and mass memory subsystems such as disks. The fast register blocks, cache memory, and main (MaS) memory are directly controlled by the KS10 hardware and firmware. Accessing Is mlcrostore controlled. Disk memory access is controlled by the operating system. Arlthmellc Teltlng - The arithmetic testing instructions can cause a program Jump, no jump, skip, or no skip, depending on the result of an arithmetic test, and may first operate arlthmeticelly on the test word . Logical Testing, Modification , and Skip - A group 01 Instructions modify and /or test. using a mask. They cause a program skip or no skip, depending upon the value of selected bits in an accumulator. Memory Address Mapping The memory address hardware was developed in conjunction with the software so that memory management Is totally transparent to the user. Physical memory Is divided Into 512-word segments called pages. All addresses, both mon itor and user, are translated from the program's virtual address space to the physical memory address space. This facilitates protection of the monitor and efficient use 01 physical memory. For example, only a portion of the monitor need be permanenlly resident In memory, resulting In more memory available to the user. Program Control - Program control Instructions Include several types of program jump Instructions and subroutine control Instructions that jump as well as save or restore information on a stack . The KS10 Instruction set Includes a group of operation codes that are used as monitor calls. When included in a user program, these Instructions trap to the operating system, which examines the Instruction and takes the appropriate action. This monitor call Implementation Is fundamental to TOPS-20 operation because in a multitask environment. the operating system must control certain operations. The high-order nine bits of an 18-blt virtual address constitute the virtual page number and are used to Index Into a hardware page map. If the 13-blt physical page number is found In the hardware page map, then the low-order nine bits of the virtual address are appended to the 13-blt physical page number to form the complete physical memory address. If the entry In the hardware page map Bu,lnes, In,tructlon Set - There are five classes of instructions in the Business Instruction Set of the KS10 central processor. Four of these are arithmetic Instructions to 6-3 does not exist, the memory processor gets the entry from the Individual page map In memory, and updates the hard· ware page map. perature. The 128 rows of KS10 MOS memory are automatically refreshed by the memory hardware, one row every 15 microseconds. There are separate page maps In memory for the monitor and for each user. These maps contain storage address pointers that Identity a page either In memory or on disk. The system Interprets three types of address pointers. AU Information stored in MOS memory Is lost if power Is removed from the memory Circuitry. The first, called a private pointer, contains a physical sto· rage address. If this Is a memory address. the system loads the hardware page table with the Information and completes the requested reference. If It Is any other ad· dress, the system Initiates a trap to the monitor for appropriate action. The second, called a shared pointer, contains an Index Inlo a system table at a fixed location. This system table Is called the Shared Page Table (SPT) and contains the physical storage address of the shared page. The table, addressed through a hardware register, enables the soft· ware memory management routines to maintain just one pointer to a page, no matter how many processes are sharing Ihe page. The th ird, called an Indirect pointer, contains a page number and an SPT Index. The SPT Index Is used to pick up an address of a page table. To obtain the physical storage address, the page table Is Indexed by a page number given In the Indirect pointer. The pointer allows one page to be exactly equivalent to another page In a separate address space. MS10 memory The MS10 is a single-port memory using MaS random access memories (RAMs). II corrects single-bit errors and detects double·blt errors. If the memory control logic detects a correctable error on a memory read cycle, the following occurs: • If the error Is in one of the 36 data bits, the error bit and the parity bit are automatically corrected • If the error Is In one of the seven check bits, no correction Is required, an error flag Is raised, and the address of the faJllng memory Is held in a register • A flag Is raised Indlcatrng that the logic has corrected an error • The memory control logic saves a 2O-blt address (for a read or read-pause-wrlte request) and tha ECC code for the first error detected to allow software monitoring of memory condition The MS 10 memory Is highly reliable because: • Single-bit error detection and correctIon and double-bit error detection are implemented In the memory control logic • Power supply Is a hlgh·efficlency switching regulator lor low internal power dissipation • Storage array component layout facilitates airflow over module • Extensive airflow and temperature profile measurements have been taken • Modules are "burned In" prior to Installation • Faults are Isolated to board level • Correctable read errors are automatically handled by the hardware, so correct data Is always sent to the CPU and notification of the corrected error Is provided To aid the monitor In memory management, Information pertaining to how long a page has been In memory and the number of processes sharing it is also stored by the hard· ware In the Core Status Table. MOS Memory The main memory subsystem of the KS10 central proces· sor consists of metai oxide semiconductor (MOS) memory connected to the KS10 bus by a memory controller. The MS10 memory Is available In 64K word increments up to a maximum of 512K words. The memory word length is 43 bits; 36 data bits and seven error-detection and correction bits. Memory Interleaving Is not required. CONSOLE SUBSYSTEM The console Is an extremely Important subsystem In the KS 10 central processor because it controls all consoie and diagnostic functions. The console Is housed on a sIngle, extended hex module and uses an e l ght·bit microprocessor. To program the microprocessor, an 8 KB programmable read-only memory (PROM) and 1KB random access memory are provided. It also has two universal synchronous/ asynchronous receiver / transmitter (USART) Interfaces, one for console operation and one lor remote diagnosis link operation. Semiconductor memory offers the advantage of high speed, especially over core memories. It also offers ease of Interlacing to control "outside world" electronics. The processes used to construct the storage elements within the memory array itself can also be used for addressing and decoding electronics and for output buffering - on a single chip. Fewer connections mean higher reliability and lower cost. In the MOS memory Implementation, the storage element takes the form of a MOS "cell" or transistor. In an elementary operation, data bits are stored by charging or not charg ing the effective capacitance of each storage cell. Reading entails sensing the presence or absence of charge. Only a few hundred electrons of charge differentl· ate the storage of a 1 and a O. Because there is capacitive leakage, this charge must be periodically renewed or re· freshed. The required frequency of the refresh cycle depends on leakage of the circuit, which Increases with tem- The console Is Interlaced to the KS lObus for data and control functions. In addition, direct connections to other KS10 CPU modules allow the console to perform test and housekeeping functions. The local operator controls the KS10 with a set of commands typed at the console terminal (CTY). The CTY connects dlreclly to the microprocessor-based console hard· ware over a serial line interlace (USAAT). A second serial 6-4 same In elther local or remote eTY caseS, except that the remote link repertoire is restricted . In user mode, the CTY is a user terminal, and commands are passed to and from the KS10 CPU under control of the console program. An exception Is typing a "control ' " which causes the console program to switch the CTY from user mode to console mode. All other commands performed In user mode are a function of the operating system. In console mode, commands are directed to an executive by the microprocessor console hardware. An operator can : • Reset and bootstrap the system • Load and check the KS 10 microcode ( ~ ) • Deposit and examine memory • Read and write 1/ 0 device registers • Transmit to and receive from the KS10 backplane bus • Start and stop the CPU clock • Single-step the CPU clock • Execute a given Instruction • Halt the machine • Start the machine at a given location Figure 6-2 KS10 Console Subsystem line, operating In parallel with the Ilrst, can also be con~ nected to the console hardware to control the KS10 by 8 remote diagnosis link. Commands typed at the CTY or entered from the remote diagnosis link are Implemented by a program running In The console program initializes the CTY to console mode at powerup. When In console mode, either starting execution, continuing execution , or typing a "control z" will cause the CTY 10 switch to user mode. Also, an error that lights the fault indicator will cause a return to console mode. as will any KS 10 processor halt Instruction. the console's microprocessor. This program, resident in PROM, automatically runs when power Is turned on, and Is not destroyed when the system Is turned off. The e TY and remote diagnosis link can be operated In either user mode or console mode. Commands are the 6·5 7 The Peripherals --- --= === === === === DECSYSTEM-20s support a family of peripheral devices that includes disks, magnetic tapes, terminals and terminal Interfaces, llneprinters, card readers, and a papertape reader/punch. The wide selection of peripheral devices reduces the storage burden on disks and provides convenient media for file archives. Infrequently used programs or data files can be stored on magnetic tape, which Is easily transported and accessed. A cardreader and a papertape reader/punch are also available for this type of 110. Using multiple lineprinters with different characteristics can Improve hardcopy output. The terminals supported by the DECSYSTEM-20 are the hardcopy LA36, LA37, LA38, LA 120, and the VT100 video terminals. A front-end processor that supports synchronous communications Is available for DECSYSTEM-20s. The DN200 remote station Is discussed under the heading Remote Job Entry Stations In Section 10, Communications. = RM03 and RP06 disk drives can be mixed on the same RHll controller on a KS10; however, they cannot be mixed within the same logical disk structure. DECSYSTEM-20s support four types of peripheral systems: • Mass storage peripherals (disks and magnetic tapes) • Unit record peripherals (lineprinters, card readers and papertape devices) • Terminals and terminal line Interfaces • Communication Iront-end processors ATP20 Disk Subsystem - The ATP20 has the largest capacity of any disk offered by DIGITAL - 929 MB per RP20 disk unit. It consIsts of a controller and an RP20 disk drive, and can support two additional RP20s. Each RP20 data module has fifteen recording surfaces with two read /write heads per surface and a transfer rate of 1.2 MB per second. WIth the optional dual-port feature, each data module can Independently transfer data. The AP20 Is avalleble only with KL systems. All byte capacities In this section are calculated In 8-blt bytes. Peripheral devices for the KS10 (DECSYSTEM-2020) processor are UNIBUS and MASSBUS devices that Interface to the system through UNIBUS Adapters (UBAs). The USA Is a single extended hex module connecting to the KS10 backplane bus and a UNIBUS. Two UBAs are standard in the DECSYSTEM-2020. One USA and one UNIBUS are reserved lor disks. The second UBA and UNIBUS are used for all other devices: tape, lineprinter, synchronous communications, and asynchronous communications lines. Tape Devices DECSYSTEM-2020s are available with TU77 magnetic tape drIves. Other DECSYSTEM-20s are available wIth thIs drIve plus the TU70 series tapa subsystems. All provide capacities and speeds needed for a wide range of DECSVSTEM-20 applications. All tape devIces use a mylar-based , oxide-coated magnet. Ic tape with reflecting marker strips to Indicate Beginning of Tape and End of Tape. Adjacent Illes are separated by formatted Interrecord gaps. In addition, Industry-compatible formats lacllilate data transfer among computers and can reduce hardware costs. Detalis of the KL 10-e (DECSYSTEM-2040, 2060) 110 subsystem can be found in Section 5 under Input/Output Sub- system. MASS STORAGE PERIPHERALS All tape devices provide write-protection for data that Is read and wrItten onto the tape. An industry-standard wrIte. protect ring Is located on the tape reel. The tape drIve can sense write-protection and prohibit data writing. The DECSYSTEM-20 mass storage peripherals are moving-head disk drives and magnetic tape transports. Disks Disk features include accurate servopositionlng, error correction, and offset pos itioning recovery. Table 7-1 summarizes the capacities and speeds of the disk devices. Accurate data record ing and retrieval is ensured on all tape systems with read-afler-wrllechecks. This check verIlles that proper data Is written on the tape, eliminatIng the chance of data being written on worn or damaged sections of tape. II an error Is detected In the read-afler·wrlte check. a message Is sent to the processor. To support the performance and reliability features of the disk devices, the operating system's disk device drivers provide comprehensive error-recovery algorithms (e.g., ECC and offset recovery for disk) and log all device errors. Parity checks and longitudinal (LAC) and cyclic redundancy checkIng (CRC) further ensure the accurate transfer of data In all magnetic tape systems. Parity Is checked character by character when reading and writing on tape at 6250 (GCA), and 1600 (PE) bits per Inch. 800 (NRZI) bitsper-inch operation also Includes a CAC character and an LAC character. CAC and LAC characters are calculated when a block is written and checked when the block Is read. If an error Is detected, an Indication Is made to the host computer. Disk controllers allow several drives to perform simultaneous seek operations. Since the controiler Is not busy during seek operations, data transfers on one drive can overlap seeks In progress on other drives. II more than one drive Is on the same controlier, overlapped seeks will accelerate processing for disks that are on that controlier. Overlapped seeks Increase throughput by decreasing the effective access time. AM03 Disk-Pack Subsystem - The RM03 Is a top-load. lng, free-standing disk drive housed in a dedicated cabinet. Subsystems are expandable to eight disk drives or 536 MB. The RM03 has a formaHed capacity of 67 MB and an average access time of 38 milliseconds. tts maximum dala transler rate is 250 thousand 36-bit words per second. The disk does 18-blt NPR data transfers over a UNIBUS and 36-blt NPA data transfers over the KS10 backplane bus (see Section 6). The RM03 Is available only with KS systems. All magnetic tape systems minimize bad-tape-error prob. lems through a runaway timer that allows the system to recover from bad tape sections on the reel. Magnetic tape controllerslformatters perform similar operations. These include: • Moving the tape forward or backward to a new posItion • Monitoring tape operation • Fetch ing. form atting, and sending data • Handling error condillons and drIve-servicIng requIrements AP06 Disk-Pack Subsystem - The AP06 Is a large-capacity disk drive offering both high performance and a tow price per megabyte of storage. It uses a removable disk pack and has a variety of large-disk features. rU70 Series Magnetic Tape System - The TU70 series Is well suited for high-speed recording appllcatlons such 7-1 - 4 as JournaUng of transaction data and backup of large disk volumes. It is a fully Integrated, high-performance system specifically designed to operate with the DECSYSTEM-20. UNIT RECORD PERIPHERALS The DECSYSTEM-20 supports a full line of unit record peripherals Including IIneprlnters and card and papertape devices. A system consists of one or more TU72-E 9-lrsck drives, pius a maximum 01 eight drives, a TX02 tape control unit, and a DX20 data channel. The lape control unit connects to each drive with radial cabling, and the DX20 data channel connects directly to the internal data channel of the OECSY$TEM-20. LP20-A and -8 Llneprlnters The lP20-A and -8 lineprinter systems have two hardware components: an lPOS lineprinter and an lP20 lineprinter controlier and data source Interface. The lP05 lineprinter is a medium duty-cycle drum l ineprinter. It Is designed for data processing environments that require good print quality and moderate print volumes. The lPOS Is an Impact-shaped (whole) character, 132-column lineprinter. It prints at 300 lines per minute using a 64-character set or at 230 lines per minute using a 96-character set. It performs a Single forms (paper) step in 4S milliseconds (maximum) and, when formatting vertically. slews forms at up to 67.8 centimeters per second. When reading and wrltlng in PE mode, the accuracy 01 data transfer is confirmed with character-by-character parity checking . Error correction for single-track dropout Is dynamic. The GCR mode uses a polynomial error-detection scheme on data blocks within each record . Data reliablUty Is increased with a self-clocking feature that Is independent of tape skew. TUn MagnetiC Tapa System - The TUn is a high-performance tape storage system that is also suitable for many hlgh-duty-cycle applications such as backup Irom disk to tape and transaction processing. Design considerations, such as eliminating mechanical relays and Incandescent lamps on the drive and using air bearings and ceramic guides for reduced media wear. help ensure Its reliability. A tape interlock disables tape motion if there is a pressure loss In the vacuum system. This feature reduces the chance of accidental tape damage. Up to 132 characters can be slored In a print Une buffer. Upon command from the data source, the lPOS prints the contents of the buffer and advances the forms as specified. It signals the data source when it Is ready for the next line of print data or forms motion command. The lP05 uses a rotating drum contai ning all the characters in front 01 the forms and ribbons. Fifty-eight print hammers behind the forms are tlmeshared between 132 data columns to produce Inked characters and carbon transfer characters on multicopy forms. The Tun Is a fully Integrated system that is packaged In a dedicated cabinet wllh lis associated interface and power supply. The TU77 subsystem conSists of a TU77 tape drive, a dual-density TM03 tape formatter, and a MASSBUS controller that mounts in the processor chassis. Each subsystem can Include up to four tape drives with a total maximum 0lt6 drives per DECSVSTEM-20. The LPOS contains a 12-channel programmable vertical format unit (PVFU). It uses a format memory that Is loaded from the data source. so no lormat tape Is installed by the operator and there is no risk Of running a job with the wrong format tape. The PVFU can be loaded each time data Is requested by the printer. Format memory data and control codes are transm itted to the printer via the normal data lines using the standard demand /strobecommunicalions. The PVFU can control the vertical movement 01 forms having eight to 143 Jines. Automatic tape threading maximizes operator convenience and minimizes tape handling. Smaller reels of tape can be threaded automatically when tape Is placed manually In the loading slot. II a to.S-lnch reel of tape falls to load on the first attempt, the TU77 will detect the mlsfeed and reload without operator Intervention. The lPOSlineprlnter has switches and Indicators lor operallon and operator-level maintenance. When the print TEST/ ONLINE switch Is set to TEST, the self-test module operates as a built-In data source. The printer communicates with the self-test module on a demand/strobe basis. stores the data received in the line buffers and paper molion registers, and processes the data. After the line of data has been printed and the paper moved . the printer resumes the data exchange communlcallon with the selftest module In a continuous cycle. The TU77 subsystem also promotes data Integrity through automatic correction of single-track errors. In PE mode, this error correction Is done automatically by the hardware. In NRZI mode, error correction Is performed under software control. The TU77 reads in forward and reverse and uses the industry-standard data format. Table 7-1 Disk Typ. Disk Devices Capacity Peak Average Averege IMbyte)' Tren,',r Rete S •• klima Rotational (Kbyte' a)' (ma) letency Intertace Mllimum Drl"es per Controller (m.) AM03 Removable 67 1,200 30 8.30 MASSBUS 8 RP06 Removab le 178 806 30 8.' MASSBUS 8 RP20 Nonremovable 929 1.200 25 8.' MASSBUS ,t • K - 1,024; M - 1,024 " t 2 spindles per drive 7·2 A long-line interface provides the lP05 with differential receivers and drivers so that 11 can be located up to 30.5 meters (100 feet) from the data source. A standard 7.6meter (25-fOOI) device cable Is normally supplied. approprlale, and processes the data. After the line of data has been printed and the paper moved, the printer resumes continuous cycle data exchange communication with the self-test module. lP20-C and -0 lineprinter. The lP20-C and -0 lineprinter systems are composed of an lP14 lineprinter and lP20 lineprinter controller and data source interface. LP200 Lineprinter. The lP200 lineprinter system has two hardware components: an lP07 lineprinter and an lP20 lineprinter controller and data source Interface. The lP14 lineprinter Is a medium duty cycle drum lineprinter. It's designed for use In data processing environments that require good print quality and medium prInt volumes. The lP14 Is an Impact type, shaped (whole) characler, 132-column lineprinter capable of prInting six or eight lines per Inch. II will produce printed output al 890 lines per minute using a 64-characler set, or 650 lines per minute using a 96-character set. It performs sIngle forms (paper) step in 20 ms (max) and slews forms at up to 76.2 cm (30 Inches) per second when formatting vertically. The LP07 Is a high-performance, horizontal font motion lineprinter designed for data processing environments requiring high-grade print quality, heavy print volumes, and high reliability. The LP07 Is an impact-shaped (whole) character, 132-column lineprinter. It prints 990 or 1,220 tines per minute usIng a 96-character set and 715 or 905 lines per minute with a 96-character sel. Print speed Is operator-selectable. The LP07 does a single forms paper step In 12.5 milliseconds and slews forms vertically at up to 152.4 cm (60 In) per second. The lP14 lineprinter stores streams of up to 132 characters In a print-line buffer, and, upon command from the data source, prints the contents of the buffer and advances the forms as specified by the command. It slgnats the data source when It's ready for the next line of print data or forms-motion command. Up to 132 characters can be stored In a print line buffer. Upon command from the data source. the LP07 prints the contents of the buffer and advances the forms as specified. It signals the data source when It Is ready for the next line of print data or forms motion command. The lP14 contains a 12-channel programmable vertical format unit (PVFU). The PVFU uses a format memory that is loaded from the user system. This relieves the operator from having to Install a format tape and eliminates the risk of running a print job with the incorrect format. The PVFU may be loaded at any time data Is requested by the printer. Format memory data and control codes are transmitted to the printer via the normal data Unes using standard demand/ strobe communications. The PVFU can control the vertical movement of forms having from eight to 143 lines. The lP07 uses a Charaband- as the horizontal font carrier in front of the forms. One hundred thirty two print hammers, behind the forms and the ribbon, produce the Inked characters and carbon transfer characters on multlcopy forms. The Charaband has the advantages of train printers, but minimizes the prOblems of character set rigIdity, friction, and wear associated with other horizontal font techniques. The Charaband has two complete character sets, one on each side. A one-minute manual operation switches the sets. The lP14 lineprinter Includes an operation/maintenance panel that mounts switches and Indicators to operate the lineprinter and perform operator-level maintenance. The LP07 lineprinter contains a direct-access vertical form unit (DAVFU) that provides the same benefits as the PVFU discussed In the LP20 section above. The OAVFU also permits print density of six or eight lines per Inch under program control. A self-test module ailows the printer to be tested under dynamic conditions. When the printer TEST/ON- LINE switch Is set to TEST, the sell-lest module acts as a built-in data source: I.e., the printer communicates with the selftest module on a demand/strobe basis, stores the data received In the line buffers and paper motion registers, as Tape Reel Siu Capaclly (Mbyle)" Column Buffering (In) • Charaband Is alrademark 01 Data products Corporation Table 7-2 Tape Oevlcea Recording Density Read!Wrlte Speed Maximum Oall TrlnaferRlle Rewind Speed (bltalln) (Inla) (10~ch.r/a) (In/e) Inlerface TU72 g-track 10.5 40 Vacuum 1,600/6,250 125 750 500 MASS8US Tun 9-track 10.5 40 Vacuum BOO/I,600 t 125 200 440 MASS8US M - l,024" t Program.selectable 7-3 Maximum Orlvea per Controller , • The LP07 contains a self·test unit similar In function to the unit discussed in the LP20 section above. talns a 36-word buffer from which aU data Is retrieved by the processor. A iong.llne interface provides the LP07 with differential receivers and drivers so that It can be located up to 152 meters (494 feet) from the data source. A standard 7.6· meter (25-foot) device cable Is normally supplied. At 300 lines per second , the reader takes 3.33 milliseconds per alphanumeric character and 20 milliseconds per conIIguous word. Cardreader. The CD20 cardreaders read encoded, punched information using the American National Standard 8-bit card code and Interprets a special punch outside the data representation to indicate end-of-flle. The cardreaders use the Industry-standard EIA card that has 80 columns and 12 zones, or rows. TERMINALS AND INTERFACES A KS system supports a maximum of 32 local and remote line interfaces. A KL system supports up to 128 local and remote lines. Programs can control terminal operations through the terminal driver. The terminal driver receives and services Interrupts. Initiates lIO operations, cancels In-progress lIO operations, and performs other devicespecific functions. A program can: The cardreaders are designed to meet different throughput requirements. CD20 card readers are available In both table (CD20-A) and console (CD20-C) models. CD20-A can process 285 punched cards per minute, and the CD20-C , 1,200 cards per minute. • Get data from an open terminal without stalling program execution . The program doesn't have to walt lor incomIng data to be available In the terminal Input buffer. The CD20-A tabletop unit has an Input hopper capacity of 1,000 cards and the CD20-C. 2,250 cards. They are designed to prevent Jams and keep card wear to a minimum. These readers also have a high tolerance for cards thllt have been nicked, warped . bent, or subjected to high hum idity. Readers use a short card path. with only one card In the track at a time. They all use a vacuum-pick mechanism that keeps cards from sticking together by blowing a stream of air through the bottom half-Inch of cards In the Input hopper. • Translate, Interpret, and transmit ESCAPE sequences. • Through echo control mode, using a full-duplex terminal. simulate the operations of a blockmode terminal. Input data from the terminal Is processed a field at a time. without affecting the displayed output In other field s on the screen . In addition, pseudotermlnals can be used for jobs, such as batch . that do not require operator intervention. A pseudoterminal has the characteristics of a terminal but has no physical device attached to It. Like a terminal, a pseudoterminal has both Input and output buffers. By using pseudotermlnals, one job can control other jobs on the system. The CD20-C console card reader has a single-piece read stalion with Infrared light-emitting diodes, em itters, and phototranslstor detectors. No adjustments are required In the ten-year life expectancy of the diodes. Terminal characteristics are Initially established In a command file during software installation. However, system users also can modify the characteristics of their particular terminal. For example. users can: The console model also provides high data integrllywlth a "resync / error detection" feature. The data strobe can be resynchronlzed lor each data column. The reader will either correctly read a mlsreglstered card or reject the card by halting with a "read check" Indication. • Set the width of tha print line between 1 and 255 columns. The system automatically generates a carriage return and IIneleed sequence after the specified number of characters has been typed or printed. Cards can be loaded or unloaded while the console model is operallng. A switch can be set to provide either blower shutdown or continued running after the last card has been read. Automatic shutdown reduces computer room noise levels and can also signal the operator that the card hopper Is empty. • Control transmission 01 upper- and lowercase characters. • Allow the computer to Interrupt transmission of characters from the term inal (XOFF) or Instruct the terminal to resume transmission of characters (XON). The terminal hardware must be present to respond to XOFF and XON characters. PC20 Paper Tape Reader/Punch The PC20 raad s eight-channel papertape at 300 lines per second and punches at 50 lines per second In either alphanumeric or binary. It automatically fan-folds the paper tape. • Set the rate at which the terminal's interface can accept or pass characters. • Set even , odd , or no parity checking. A line entered on a command terminal is terminated by any of several special characters. The RETURN key, for example, is one of the most common means of transmitting a command to the host. A program reading from a term inal can specify a particular line terminator for read requests. The PC20 contains a photoelectric papertape reader and an electromechanical punch. A set of photodlodes translates the presence or absence of holes In the tape to Is and as. In alphanumeric mode, a single tape-moving command reads aU eight channels from the first line encountered . In binary mode. the device reads six channels from the first six lines in which hole 8 Is punched and then assembles the Information Into a 36-blt word . The PC20 Interface con- LA 120 Hardcopy Terminal The LA 120 Is a hardcopy terminal with high throughput and a number of advanced keyboard-selectable formatting and communication features. It uses a contoured. '·4 .. set and changed by the host computer or by the user. The LA38 has a permanently stored format for a computer printout. When the terminal Is powered up, It automatically Is set to print ten characters per Inch and space six vertical lines per Inch, set tab stops every eight spaces, set the lett margin at column 1 and the right margin at column 132. The LA38 operates at 300 baud and can print at burst speeds up to 45 characters per second. An alternate speed of 110 baud and 10 characters per second can be selected from the keyboard. The desktop configuration and sculptured typewriter-like keyboard are so similar to standard typewriters that the transition from typewriter to terminal Is natural. The terminal's basic design contributes to lis reliability and maintainability. Logic and power amplifier on a single board with custom LSI reduces the component count and increases circuit reliability. The LA38 senses prlnthead Jams Instantly and shuts down power to the prlnthead drive until the Jam Is corrected and the terminal restarted . This prevents motor overloads and blown fuses. The highly reliable prlnthead has been designed and tested to print more than 100 million characters. The prlnthead can be adjusted to adapt to various form thicknesses. The LA36 Is equipped with a paper-out sensor that, when enabled , Implements one of four selectable actions when there is a paper fault. typewriter-style keyboard, an additional numeric keypad, and an LEO display lor terminal characteristics. Several features give the LA120 Its high throughput: • 180-character-per-second print speed • 14 data transmlsslon speeds ranging up to 9,600 baud • l ,024-character buffer to equalize differences between transmission speeds and print speeds Although the LA36 has no scheduled preventive maintenance, should a problem occur, the unit disassembles Simply and quickly for easy access to all components. Printing self-test diagnostics allows quick and accurate Identification of any faulty components. With the new snap-In ribbon cartridge, users can change ribbons quickly and easily. • Smart and bidirectional printing so that the printhead always takes the shortest path to next print position • High-speed horizontal and vertical skipping over white space In addition to Its throughput, the LAt20 is distinguiShed by its printing features. The terminal offers eight font sizes ranging from expanded (live characters per Inch) to compressed (16.5 characters per Inch). Hence, a user could select a font size of 16.5 characters per inch and print 132 columns on an 6.25-lnch-wlde sheet. Other print features Include six line spacings ranging from two to 12 lines per Inch, user-selectable form lengths up to 14 Inches, left/right and top/bottom margins, and horizontal and vertical tabs. Wherever possible, ANSI standard escape sequences are used. These same escape sequences are also Implemented on DIGITAL's LA 120 and VT100, ensuring compatibility among DIGITAL's terminal products. VT100 Video Terminal The VT100 video terminal Is an uppercasellowercase ASCii terminal that offers a variety 01 user-controllable character and screen attributes. The VT100 features a typewriter-like detachable keyboard that Includes a standard numeric/ function keypad for data entry applications. Also featured are seven LEOs, four of which are programcontrolled , that can be used as operator Information and diagnostic aids. The LA 120 Is designed lor easy use. Terminal characteristics are selected via clearly labelled keys and simple mnemonic commands. Once the selections have been made, the operator can check the settings by depressing the STATUS key. The terminal will then print a listing of the selected settings. The VT100 offers a number of advanced features. The most Important of these are: • Two screen sizes - 24 lines by 60 columns or 14 lines by 132 columns • Une-by-line selectable characters of regular size, double width and single height, double height and single width, or double width and double height LA38 HardcopyTarmlnal The LA36 DECwrlter IV Is a low-cost, desktop microprocessor-driven terminal capable of proceSSing data at up to 30 characters per second. The LA36 Includes a universal power supply, a standard EIA Interlace and EIA null modem cable, an 18-key numeric keypad, paper-out switch, paperleed tractor, and user-assistance documentation package. • Smooth scrolling and split-screen capability • Keyboard selectable and storable baud rales, labs, and Answer Back messages • Special line-drawIng graphic characters for business or laboratory applications Features such as horizontal tabs and margins, and a choice of four character sizes and six line spacings can be '·5 • Selectable black-on-whlte or whlte-on-black characters on a full-screen basis Several optIons further extend the capabilities of the VT100. These Include the advanced video option that adds selectable blinking, underline, and dual-intensity characters to the existing reverse video aHrlbute, and an additional RAM module that enables 24 lines of 132 characters. elll Terminal lin. Interface (KS syst.ms) The OZII Is a serial line multiplexer whose character formats and operating speeds are programmable on a perline basis. A DZll connects the UNIBUS with up to eight asynChronous serial lines. Each line can run at any of 15 speeds. local operation with EIA terminals Is possible at speeds up to 9,600 baud. The DZll can be used with dialup fullduplex terminals that operate through most Industry-standard modems running at 300 or 1,200 bits per second. The OZ11 optIonally generates parity on output and checks parity on Input. Incoming characters are buflered using a 64-character silo buller; outgoing characters are processed on a programmed Interrupt request basis. DUP11 Single Synchtonousllne Interface (KS systems) The OUP11 Is a character-buffered, synchronous, serial line Interface capable of two-way simultaneous communication. The OUPll translates between serial data and parallel data. Output characters are transferred in parallel from the POP-l1 UNIBUS Into the DUPll where Ihey are serially shifted to the communication line. Input characters from the resident modem are Shifted Into the DUP11 and made available to the processor on an interrupt basis. The self-contained unit Is capable of handling a variety of protocols. These Include byte-oriented protocols, such as OOCMP and BSe, and bit-oriented protocols, such as SOlC, HOlC, and AOCCP. Signals needed to establish communications with the Bell Series 200 synchronous modems are resident In the DUP11's Receive Status Register. The OUPII can transmit data at up to 9,600 bits per second (limited by modem and data set Interface level converters). Its capablllties make the DUP11 well suited for remote batch, remote data collection, remote concentration, and network applications. In addition, multiple DUP11s can be used in applications requiring several synchronous lines. CH11 Programmable Asynchronous Serial line Multiple .. r (KL systems) The DH11 multiplexer connects the UNIBUS with 16 asynchronous serial communications lines. The DH111s a hlghperformance unit with programmable character formats and operating speeds. Data Is buffered on input and is transferred directly from memory. KMC11-A Auxiliary Processor (KS system) The KMC11-A is an auxiliary processor, complete with memory, that Interfaces to the UNIBUS. The KMC11 Improves the performance of the OECSYSTEM-20 computer systems by performing time-consuming syslem functions In parallel with the host CPU, thereby offloadlng It. It Is especially suited to contrOlling I/O operations, such as data communications and analog 1/0, that require extensive intelligence. Program-selectable parameters Include transmission speeds up to 9,600 baud, character size, stop-code tength, transmission mode, and parity generation and checking. An optional modem control multiplexer is available lor connecting the DHll to an autoanswer data set. The KMCll Is a high-speed MSi microprocessor (3oo nsec Instruction time) that uses 16-blt mlcrolnstructfons and operates on B-blt data paths. Its 1,024 16-blt word writable control memory that contains the microprogram is loaded by the host processor. A 1,024 B-blt byte data memory stores frequently used Information for high-speed access by the microprogram. An NPR UNIBUS Interface provides access to control, status, and data registers of one or more peripherals on the UNIBUS. This enables lowcost programmed 110 devices to operate as if they had an Intelligent OMA capabltlty. As many as eight DHlis can be placed on a single processor for a total capacity of12B lines. Ol11 Serial line Asynchronous Interfaces The Ol11 Is an Interface between a single asynchronous serial communication channel and the processor. II performs serial-la-parallel and parallel-to-serial conversion of serial start/stop dala with a double-character-buffered MOS/lSI circuit called a UART (universal asynchronous receiverltransmllter). This 40-pJn, dual inline package has all the circuitry necessary to dOUble-buffer characters In and out, serialize/deserialize data, select character length and stop code configuration, and present status Information about the unit and each character. The KMC11 can be directly connected to a high-speed peripheral such as a OMCll synchronous line unit. The full-duplex B-blt parallel Interface is well suited to custom designed Interfacing. DN20 COMMUNICATIONS FRONT-END With a Ol11 Interface, a DECSYSTEM-20 can communicate with a local terminal, such as a console teleprinter, and with a remote terminal via data sets and private line or public switched telephone facftilles. The DN20 is designed to handle all network communication functions. The ON20 Is referred to as a communication Iront-end to distinguish It from the console front-end that controls the local command terminals and unit record perIpherals. The ON20 and console front-end processor communicate with the Kl processor through the OTE hardware Interface. The OTE resolves the differences between the 36-bll Kl word and the 16-blt ON20 word . In systems with the KS10 processor, the communication software resides In the processor. Users can select from 13 standard data rates up to 9,600 baud or can select a nonstandard rate. With most of Ihe standard rates, the Interface can offer split-speed operation for faster, more efficient handling of computer output. In addition, character size Is strap- or switch-selectable, and parity checking and stop code length are selectable. '-6 • 8 The Languages In addition to the MACRO assembly language, the TOPS-20 system software supports the optional high-level programming languages FORTRAN . COBOl-G8. COBOl-74 . ALGOL. BASIC-PLUS-2. APl. BLISS, and CPL. This variety gives the user the most effective or familiar programming solution to match the problem . FORTRAN-20 Is both a globally optimizing complier and a runtime system with an interactive debugger and subroutine library. It has been designed 10 simplify the programmer's Job, provide superior complletime and runtime diagnostics, facilitate debugging , and produce errorfree and fast-runn ing programs. COBOL-68 and COBOL-74 are high-level Implementations designed specifically for business data processing . COBOL can be used to create online terminal applications or to write batch applications. Although BASIC-PLUS-2 is an Ideal language for novice programmers who need a fast, easy way to solve problems, It Is also a powerful and efficient language suitable for sophisticated applications. BASICPLUS-2 is a complier that produces fast-running programs, yet It reta ins the highly interactive immediate mode feature of primitive BASIC. ALGOL-20 is a scientific language designed for describing algorithms. It is a problem-solving language In which the problem is expressed as complete and precise statements of a procedure. Two levels of the popular APL language are available. Both are full APL implementations with significant extensions . The basic version suits users who do not require the file 110 or the advanced APL function . The extended version, APL-SF, has all of the features of the basic version plus advanced features that substantially Increase the range of applications In which It can be used. BLlSS-36 is DIGITAL's Implementation language for software development. It contains many of the features of a modern, high-level language. yet It also provides the flexibility and access to hardware of assembly language. CPL (Conversational Programming Language) is an interpreter similar to PUI . It Is a well documented and easy-to-Iearn subset of ANSI-1976 Pli I. . TOPS·20 ASSEMBLER FORTRAN MACRO Is the DECSYSTEM-20 symbolic assembly language. It makes machine language programming easier and 'aster for the user by: FORTRAN-20 Is a globally optimizing complier and a runtime system with an interactive debugger. Both have been designed to simplify the programmer's job, provide superior compile-time and runtime diagnostics, facilitate debugging. and produce error-free, fast-running programs. • Translating symbolic operation codes In the source program Into the binary codas needed In machine language Instructions • Relating symbols specilled by the user to stored addresses or numeric values FORTRAN-20 Is based on the 1966 American National Standard (ANSI) FORTRAN, but It has many extensions to that standard and Includes many features from the ANSI 1977 FORTRAN . Both the complier and object-time system are reentrant (sharable). FORTRAN features Include: • Assigning relative core addresses to symbolic addresses of program Instructions and date • Provid ing a MACRO expansion capablllty to facilitate storage, definition, or user-defined Instruction • Providing a sequential numbered listing with symbols cross-referenced to show where they are defined and where they are used • Accepted and powerful features useful to a wide range of technically oriented users • Computational faatures matched by full-scale data handling and data management facilities MACRO programs consist 01 8 series of free-format state- • Globalopllmlzatlon • PARAMETER statements that provide symbolic specification of compile-lime constraints • INCLUDE statements to compile source code from more than one file ments that can be prepared on the user's terminal with one 01 the system's edIting programs. The assembler Interprets and processes these statements, generates binary Instructions or data words, and produces a listing that can contain cross-reference symbols for ease In debugging the program . MACRO produces device-Independent programs. It enables the user to select, at runtime. standard peripheral devices for Input and output Illes. For example, Input of the source program can come from the user's terminal and output of the program listing can go to the lineprinter. More commonly, the source program Input and binary output are disk Illes. • N-dimensional arrays • Optionally generated array bounds checking • Direct-access 110 capabilities • Debugger that permits examining and modifying program data, statement-by-statement program tracing, and setting pauses on any statement or routine • OPEN and CLOSE statements for liIe specification and control The MACRO assembler contains powerful macro capabilities that enable the user to create new language elements. This is useful when a sequence of code Is used several times with only certain arguments changed. The code sequence Is defined with dummy arguments as a macro instruction. Thus. a single statement In the source program referring to the macro by name, along with a list of the real arguments, generates the enllre sequence needed. This capability permits the expanSion and adaptation of the assembler to perform specialized functions for each programming job. In addition, changing the macro dellnition changes It for every call. • ENCODE/ DECODE statements • Boolean operators, Including equivalence and exclusive NOR, OR, AND, and NOT • NAMELIST statement and list-directed 110 that provide lormat-Iree Input and output operations • Implied DO loops In 110 and data statements • Full , mixed-mode arithmetic In expressions • Octal constants • Full-word masking operations lor all logic functions (rather than a result of Just true or false) • Relational operators • Error-handling capabilities in 110 statements • Device Independence • Multistatementllnes • Remarks In statement fields DEBUGGING TOOLS The online symbolic debugging tool (DDT) enables a user to rapidly check and correct a new program. To do this, the source program Is assembled and the resulting binary object liIe with its table of dellned symbols Is loaded with DOT. Using command strings, the user specifies breakpoints In the program where DDT suspends execution to accept further commands. This segments the program Into executable sections that can be Individually checked and corrected. Either before DOT begins executing or at breakpoints, the user can examine and modify the contents of any location In the program. DDT also performs searches, gives conditional dumps, and calls user-coded debugging subroutines at breakpoint locations. The FORTRAN object-lime system. FOROTS, controls the Input/ output, format interpretation, and numerical conversion for programs complied by the FORTRAN complier. The FORTRAN user can reference any mass storage, unit record, or terminal device. All special editing, conversIon, and fIIe·structurlng tasks are handled by the object-time system . Devices are normally specified by logical assign· ment, so that physical device selection need not be made until runtime. The devices corresponding to the specific 110 statements - READ, PRINT, PUNCH, ACCEPT, and TYPE - are also assignable at runtime. The Important feature of DDT Is that users communicate with It In terms of the original symbolic iocatlon name, rather than the machine-assigned locations. 8·' Language Extensions Powerful FORTRAN IV extensions simplify program cod· Ing. Some of the enhancements are: • Array subscripts - any arithmetic expression can be used. lithe value of the expression Is not an Integer, it Is converted to Integer type. • Alphanumeric literals - strings of characters bounded by apostrophes that can be used In place of Hollerith constants. • Mixed-mode expressions - can contain any data type, including complex and byte. • End-of-line comments - any FORTRAN statement can be followed on the same line by a comment that begins with an exclamation point. • READ/ WRITE end-of-file or error condition transfer END - n and ERR - n (where n Is a statement number) can be Included In any READ or WRITE statement to transfer control to the specified statement upon detection of an end-ol-Ille or error condition. The ERR '"' n option Is also perm itted in the ENCODE and DECODE statements, allowing program control 01 data format errors. • General expression DO and GO TO parameters - general expressions are permitted for the Inllfalvalue, Increment, and limit parameters In the DO statement and as the control parameter In the computed GO TO statement. • DO Increment parameter - the value can be negative. • Optional statement label list - In an assigned GO TO. • Default FORMAT widths - Input or output formatting can be specUied by type and default width, and precision values will be supplied. • Additional 110 statements - these Include file conlrol and attrlbule definitions. list-directed (free-format) 110, device-oriented l I D , memory-to-memory formatting , and unformalted direct-access 110 10 read and write liles written In any' lormat. • Logical operations on INTEGER data - the .AND., .OR. , .NOT., .XOR., and .EQV. logicat operators can be applied to Integer data lor bit mask ing and manipulation. Debugging Tool. Three debugging facilities are avaJlable to the FORTRAN programmer: FORDDT debugger. the FORTRAN obJecttime system, and the use 01 a "0" in Column 1 01 a FORTRAN statement. Using FORDDT, a programmer can set up to 10 runtime breakpoints on subroutine entries or on source statement labels or line numbers. The programmer can also conlJOue from a breakpoint, display and change the value 01 variables. locate symbols, execute sourCe lines, and dispiaya trace of subroutIne calls. The debugger commands are similar to FORTRAN statements, so that programmers can easily learn and use them. With the exception of a IIne-by-line trace or the Inclusion 01 PAUSE statements, none 01 the FORDDT debugging features Increases the execution Ume of a program. FORDDT also provides an entry into the system debugger, DDT. The FORTRAN ob/ect-tlme system (FOROTS) provides a traceback feature that locates and lists the actual program unit and line number of a fatal runtime error. II the program unit Is a subroutine or function subprogram, the error handler traces back to the caJUng program unit and dIsplays the name of that program unit and the line number where the call occurred. This process continues until the calling sequence Is traced back to a specific line number in the main program. The traceback feature helps the programmer to determine the exact locallon of an error. even if It occurs in a deeply nested subroutine. A " 0 " In Column 1 of a FORTRAN statement allows that statement to be conditionally complied. These statements are considered comment lines by the complier unless the appropriate debugging line switch Is Issued In the compiler command string. Liberal use of the PAUSE statement and selective variable printing provide programmers with a method of monitorIng program execution. This allows the Inclusion of debugging aids that can be complied In the early program testing stages and later eliminated w ithout source program modification. COBOL Optimization The FORTRAN-20 compiler uses optimization to produce an object program that gives the same results as the original unopllmlzed program, but takes significantly less execution time. COBOL-68 and COBOL-74 are optional high-level languages designed specifically for bUSiness data processIng. COBOL can be used to create online terminal appllcalions or to write batch applications. Under control 01 the mullistream batch processor or from an Interactive terminal, program and data decks can be loaded Into the cardreader for spooling operations. Both methods use the same command language. Opllmizatlon techn iques Include: • Ellmlnallng redundant computations • Substituting arithmetic operations with operations that take less lime • Removing constant computations from DO loops • Folding and propagallng ~onstants • Removing Inaccessible code • Allocating global registers • Optimizing 110 • Detecting unlnltlaJized variables COBOL features include: • ANSI-standard compliance • Quick. efficient program development • Simple, interactive user application Interface • Efficient operation in both batch and online operallon • Programming tools with powerful, easy-to-use data editIng, sorting, updating , and reporting features 8-2 - - - --'-- r The program can receive U6er Input lines with the ACCEPT statement. The ACCEPT statement also can retrieve the current date or time from the system. The DISPLAY statement transfers data from a specified literal or data item to a specified device, normally the user's terminal. The DISPLAY WITH NO ADVANCING statement inhibits the automatic appending of a carriage return and line feed to halt the device atter the last charac· ter Is displayed. This Is especially useful when typing prompting messages on the terminal. File Orgenl1.8tlon The sequential 110, relative 110, and Indexed 1/0 modules meet the ANSI-74 high-level standards, except as Indicated In Table 8·1, and Include all the COBOL verbs. The COBOL object-time system includes a complete Indexed sequential access mode (ISAM) package to enable the user to access data either sequentially or randomly by key value on random-access devices. The time required to access a lIIe Is minimally affected by the number of additions made to the lIIe. The technique of "chaining" records Is not used . Instead, the Index to the file Is updated to minimize the number of accesses necessary to retrieve records. • Remote access from online terminals or from remote statlons • Complete program and device independence for eftl· clancy and rellabillty • Ability to cali subroutines written in-COBOL, FORTRAN, or MACRO Library Facility With COBOL, programmers have a full ANSI-74 high-level library facility that includes high-level extensions (COPV ... REPLACING). Frequently used data descriptions and program text sections can be held in library files that are available to all programs. These lUes can be copied at compile lime to reduce program preparation time and to eliminate a common source of errors. listings produced by the complier contain many documentation and debugging aids. English diagnostic messages are embedded in the source listing at the point of error. The listing can also include, at the user's discretion, 8 complete map of the object program and an easily read listing of the complied code similar to thai used by the MACAO assembler. All object code Is expanded to list the machine mnemonics and user-defined names in addition 10 the binary machine code (In octal). There Is also an Implementallon of the COBOL REPORT WRITER ENTER Faclilty The ENTER statement allows COBOL programs to Invoke separately complied subprograms, passing arguments In the process. These subprograms can be written In COBOL, FORTRAN, or MACRO. The ENTER facility: • Provides flexibility through modular development of application systems • Permits functional separation 01 small , well defined source modules • Gives the programmer access to operatlng-system.dependent features via subroutines written in MACRO statement. Data Types COBOL supports all of Ihe common COBOL dala types, includ ing: • Numeric COMp-3 packed decimal • Numeric COMPUTATIONAL (COMP) binary • Numeric COMPUTATIONAL-l (COMP-l) floating point • Alphanumeric DISPLAY (ASCII , EBCDIC, or SIXBIT) • Numeric DISPLAY (ASCII , EBCDIC, or SIXBIT) Online Oebugger The online COBDDT debugging package permits user in· teraction during the execution of a program. Source pro· grams require no modifications to use COBDDT - it Is simply loaded with the object program when execution starts. The user can specify points within the program at which to pause during execution, so that the user can examine and modify the contents of data Items belore proceeding. All references to data and procedure items are made by using the name In the source program. The user talks to the debugging package with familiar names rather than truncated or substituted names. These data types are required in a variety of applications and are provided lor lIexlbility In specification and design. String Manipulation COBOL provides INSPECT, STRING , and UNSTRING verbs for handling character strings. With these verbs programmers can search for embedded character strings with TALLY and REPLACE. The verbs can Join together or break out separate strings with various delimiters. Interactive COBOL Execution The ACCEPT and DISPLAY statements of the PRO· CEDURE DIVISION enable easy, termlnal·orlented Inter· action between a COBOL program and the program user. Source Program Input The disk-resident complier can accept source program 8·3 ALGOL-20 input from all supported input devices, including source text library files stored on disks. AlGOl-20 Is a scientific language designed for describing computation processing or algorithms. It Is a problemsolving language in which the problem is expressed as complete and precise statements of a procedure. COBOL accepts source programs that are coded using either Ihe conventional 60-column card reference format or the short, easy-to-enter terminal format. The TOPS-20 Interactive editors and an Integrated ALGOL debugger make It easy to code, test, and debug programs. Program modularity Is available through block structure, subprograms, and separately complied procedures. Terminal Format Is used with context edItors controlled from an online terminal keyboard. It eliminates the line number and identification fields and allows horizontal tab characters and short lines. These capabilities offer potential savings In disk space and allow easier Interactive input 01 source programs. AlGOl-20 is an Implementation of the ALGOL-GO language. The compiler consists of a 14K-word reentrant (sharable) segment and a data segment that varies In size depending on the size of the program to be complied. The one-pass, single-phase complier produces diagnostics and generates optimized object code. Conventional Format produces source programs that are compatible with the reference format of other COBOL compliers throughout the Industry. RERUN RERUN allows the user to periodically save the status of a job. In the event of a later dIsruption the lob can be restarted from the point of the last status saved Instead 01 from the beginning. AlGOl-20 language features Include: • long reel scalars, arrays, and procedures using the double-precision hardware with 52-bit mantissas • String scatars, arrays, procedures, and byte manipulation for users to generate, manipulate, and input or out· put strings or Individual bytes ranging In size from one to 35 bits • Assignments within expressions • A remainder operator • Unique Implementation of dynamic arrays • Octal Boolean constants and integer·ta-Boolean and Boolean-to-Integer conversion functions COBOl-68 and COBOl-74 COBOL on DECSYSTEM-20s is available In two versions: COBOl-68 and COBOl-74. COBOl-68 Is an Implementation 01 the COBOL language based on the ANSI COBOL X3.23-1968 standard. COBOL74 Is an Implementation of the COBOL language based on the ANSI COBOL X3.23-1974 standard. COBOl-74 meets the high-level requirements of Federal Information Processing Society (FIPS) PUB 21-1 as tested by the FCCTS (Federal COBOL Compiler Testing Service) with the exceptions noted In Table 6-1 . Table 8-1 • WHilE statement and a convenient abbreviated form of the FOR statement • The ability to call FORTRAN language subroutines and lunctions • Identifiers up to 54 characters long COBOl-74 Support levels AN5-74 Module level Supported byCOBOl·74 FIPS Pub 21·1 " High level" Requirements Nucleus 2 2 Table Handling 2 2 Sequenllall/O 2 2 Relative 1/0 2 2 Indexed 110 2· 2 Segmentation 2 2 Library 2 2 Debug 2' 2 Interprogram Communication 2 2 SORT/MERGE Communication , 2 2 Report Writer § 2 2 Block Structure The ALGOL program structure Is somewhat more sophisticated than some other high-level languages such as FORTRAN or BASIC. ALGOL programmers can effectively use structured programming techniques. An ALGOL program has a number of hIerarchically arranged blocks con· sisting of declarations and statements enclosed by the words BEGIN and END. Scope rules and declarations determine which variables are global and which are local to a block . Block structure offers many advantages Including easier Implementation of top-down application design, code mo· dularlty, easily read and understood programs, and Increased protection from side effects. Procedures ALGOL procedures are subprograms that are useful In writing highly structured, easily read programs. Code segments that are used more than once, and lo r that can be viewed as a module of the larger program , can be separated Into procedures. To aid top-down program development, procedures can be written, debugged , end complied separately from the main program. large structured programs frequently consist of a series of procedure calls. • Alternate kay not supported t Debug module Is functionally rap laced by CaBOOT * Not supported § ANSI-66 Report Writer syntax plus SUPPRESS statement 8-4 Parameters can be passed to a procedure by value or by length of the string Is limited only by available memory. String constants are typically used to convey messages to the program users or to assign value to string variables. nama. When an expression In a procedure call (an actual parameter or argument) Is passed by value, a copy of its value Is made available as alocsi, formal parameter (dummy varIable) within the procedure. This is an eHlclent way to pass many expressions and to protect the calling block from side effects. Object-Time System The AlGOL-20 object-time system (AlGOTS) provides a basic InpuUoutput system so that the user can communicate with dlrectorled and nondlrectorled devices In ASCII and binary modes. When an argument Is passed to a procedure by name, any changes made to the value of the formal parameter In the procedure also changes the actual parameter as If it, instead of the dummy, appeared In the procedure body. Passing an array or a Siring argument by name instead of value saves memory space and allows the procedure to treat the argument as a global variable. At run time, AlGOTS provides I/O processing , storage management, and debugging facilities. ALGOTS consists of a sharable high segment of 11 K words and a low segment of at least 2K words for each program depending on object program size, library routines used, and heap and stack sizes. The object system provides a checking mode for selective testing of array subscript bounds. ALGOL supports recursive procedures that can cali themselves directly or Indirectly to a depth limited only by the user's available memory space. The object-time system Includes a library of routines that can be Incorporated Into a user's program,lncludlng: • A set of mathematical functions of both slngle- and double-precision • Maxima and minima functions • String manipulation routines • BIt field manipulation routines • FORTRAN subprogram Interface routines Complier and System Features The ALGOL complier reports all source program errors on the user's terminal or on a listing device. The AlGOl-20 complier adds these extensions to AlGOL-60: • long real data type equivalent to FORTRAN's doubleprecision data type for more accurate real computations • External procedure can be complied Independently of main program • Convenience in loop Implementation with WHilE and abbreviated FOR statements • Programmer can manipulate strings of various-sized bytes and can Individually manipulate the bytes within a string through byte subscripting • Integer remaInder functIon • Delimiter words can be represented in either reserved word format or as nonreserved words • Conslants of data type real can be expressed as an Integer part or as a decimal part only The runtime facilities Include: • I/O with directory and nondlrectory devices In both ASCII and binary modes. Up to sixteen Internal logic channels plus default terminal 1/0 channels are available. • Storage management 01 the heap and stack enables the program to borrow a temporary buffer for 1/0, OWN arrays, and dynamically created byte strings. It also provIdes memory expansion when needed. • The ALGOL dynamic debugger allows interruption of program execution, setting and clearing of breakpOints, examination and alteration of ALGOL variables that are In scope, examination of various system parameters, automatic typing of ALGOL variables after a breakpoint, examination of the code generated, and continued program execution both from a hall and from an appropriate label. OWN Variables Special Integer, real, tong reat, Boolean, and string variables called OWN variables have these properties: • They follow the normal scope rules within a block • When control passes outsIde the block, the values are retaIned and stili available when the block Is reentered • Their values are Initialized to zero, false, or null BASIC-PLUS-2 Although BASIC-PlUS-2 is an ideal language for novice programmers who need a fast, easy way to solve problems, it Is also a powerful, efficient language suitable for sophlsflcated applications. OWN variables are vatuable In large-array work Inside procedures because the array doesn't have to be Initialized every time It Is referred to. Arrays defined and used Inside procedures are comparable to subroutines in other languages, but they can be dynamically defined and red efined. BAS1C-PlUS-2 retains Dartmouth BASIC's simplicity and ease of use. It adds many features and greatly enhances performance 10 accommodate a wide range of applications. The BASIC-PlUS-2 complier produces fast-running programs, yet Its Immediate mode retains Ihe advantages of the much slower BASIC Interpreters. Switches Switches provide the function of the CASE statement program control jumps to various locations depending on the value of an expressIon. Switches automatically detect when the evaluated expression Is out of range. BASIC-PlUS-2 uses features of the TOPS-20 operating system to provide Immediate mode and complle-and-go execution. The user can also save complied processes as direCtly executable modules. BASIC-PlUS-2 features Include: String Constants String constants enable the user to refer to strings of ASCII characters within a program by using a variable name. The 8-5 • Immediate "desk calculator"/debug mode • Ability to save compilations • Error dlagnosllcs and .program-controlled error-handling routines • Subprogram capabilities to help structure programs • IF-THEN-ELSE, UNLESS, WHILE, and UNTIL elim inate most 01 the need for GOTO statements • Block formatting with unlimited slatement length, multiline statements, and multlstatementlines • Variable names 01 up to 30 characters make programs more readable and easier to document • Full matrix manipulation and arithmetic • Powerful string-handling functions • Arrays stored In flies , yet can be accessed the same as In-memory arrays Record Input/Output Three methods for performing record I/O operations are provided: formatted ASCII 110, 110 to virtual memory arrays, and block 110 . Record 1/ 0 permits the user program to have complete control of I/O operations. Properly used , It Is the most flexible and efficient technique of data transfer available under BASIC-PLUS-2. Language extensions efficiently handle records composed of fixed-length fields. Block I/O offers great flexlbmly and performance for Input and output device transfers . For example: • GET and PUT statements Initiate I/O operations for d isk and magnellc tape, and read and write sequential data blocks. • For relallve disk files, the programmer can have complete random access to the file by specifying a record number In the GET, PUT, or FIND statement. • For Indexed disk Illes, the programmer can access records by multiple key values. • Other data file structures, Including ASCII text Illes and sequential, random, and mull1key indexed record flies • Formatting facilities for output and reports File Capability BASIC-PLUS-2 gives users high-speed , online access to disk files. Flies can be created , updated , extended, and deleted under program control. • Programmers use MAP and MOVE statements to map an 110 buffer. The MAP statement defines the format of a record when that format can be specified at compile time. If the lormat cannot be specified at compile time, the MOVE statement can be used to dynamically access the data in a record. Any number of programs can simultaneously read data from the same file, but only one write operation can occur at a time. Multiple updates are handled safely through the UPDATE feature. UPDATE locks a disk record from other programs while one program Is updating II. so all programs access current, valid files. Programs can be written to recover cleanly from failed attempts to open or access files. • A set of numeric/ string conversion functions permits optimum packing of number fields, thereby saving space In the record. • Programmers use formatted or stream ASCII 110 to handle character strIngs of indeterminate length. System fecillties handle the blOCking and unblock ing of formatted ASCII flies. Virtual Memory Arrays Many applications need to address and update random record s on a disk file. Other applications mIght require more memory for data storage than Is econom ically feasible. BASIC-PLUS-2 fills both of these requirements with virtual arrays, a Simple, random access Iiletype. Data Format, and Operation, Programmers can manipulate string, Integer numeric, or floating-point numeric data. String variables are sequences of ASCII characters thai are treated as units. Programmers can define string constants and string variables, Including subscripted variables. In additIon , relational operators can be applied to string operands to compare and Indicate alphabetic (ASCII) sequence. UsIng the CHANGE statemenl, lndlvldual string characters can be converted to their equivalent ASCII code In decimal, and vice versa. With the virtual memory array faCility, programmers can specify that a particular data matrix Is not to be stored in the computer memory, but on disk. Data, stored on disks that are external to the user program, can be retrieved by name at a later session. Items within the file are Ind ividuallyaddressable. Using the virtual memory array facility, programs can operate on data structures that are too large to be wholly In memory. The disk file system Is used for storing data arrays, and only portions of these files are maintained in main memory at any given lime. A variety of string functions enables programmers to concatenete two strings, access part of a string, determine the number 01 characters In a strlng , search for substrings, convert strings to compact storage formats, and define new strIng functions. Character strings can be any length, limited only by available memory. With virtual data storage, programs can reference any eiement of one or more matrices within the files, no matter where in the file the element resIdes. Random access allows programmers nonsequential referencing of the data for use In any BASIC statement. Virtual memory matrix elements are read Into memory automatically by the system. String arrays further enhance the usefulness of string variables. An entire list of alphabetic data can be Input, processed , and output with only two statements. Usually, all variable and constant numeric values specified In a BASIC-PLUS-2 program are stored Internally as floating-point numbers. If operatfons such as counting , Indexing , and subscripting deal with Integer numbers, slg- Virtual memory arrays are stored as unformatted bInary data. This means that no 110 conversion is performed when storing or retrieving elements In these arrays. 8·6 Subprograms or programs connected by a CHAIN share data through COMMON statements. nlflcant economies In storage space can be achieved by using the Integer data type. The Integer data type requires only one word of storage per value. Integer arithmetic Is significantly laster than Iloating-point arithmetic. The ON ERROR GOTO statement allows programmers to write subroulfnes to handle error conditions normally considered fatal. The program. can test a system variable to determine which error occurred, and can examine another system variable to determine the line number at which the error occurred. The action taken depends on the error and, If desired, on the line number of the error. For example, a program user might specify a nonexistent data lIIe lor Input to the program. The error-handling routine could print a message such as "no such lIIe, try again," and then return execullon to the line that requests the data lIIe name. Single- or double-precision, floating-point numeric operatloos are the default numeric type. Single-precision Iloatlng-point numbers occupy one word 01 storage In memory, and double-precision numbers occupy two. Programmers working with Iloating-point numbers can Increase accuracy of operations Involving fractional numbers by using the string arithmetic lunctlons or the scaled arithmetic feature, Programmers can perform arithmetic operations using a mix of integer and floating-point numbers. II both operands 01 an arithmetic operation are either explicitly Integer or explicitly lIoatlng-polnt, the system automatically generates Integer or floating-point results. II one operand Is an Integer and another Is floating-point, the system converts the Integer to a floating-point representation and generates a lIoating-polnt result. II one operand Is an Integer and the other operand is a constant that can be Interpreted either as a floating-point number or an integer, the system generates an Integer result. Programmers can explicitly Impose the formats, thereby controlling the result of the operation, The SLEEP and WAIT statements allow program suspension, either for a specified lime Interval or until Input from a terminal Is received. Debugging Tools Dynamic debugging tools maximize program debugging efficiency by minimizing the need to rerun programs. Programs can be Interrupted at any point to check. correct, and then resume operation. The most uselul of these tools are Immediate mode statement execullon, the STOP statement, and the CONTINUE command. Using Immediate mode, programmers enter a statement without assigning a program line number. and then immediately execute that statement. A programmed and an immediate mode statement are dislfngulshed solely by the presence or absence of a line number. ... trlx Manipulation Arrays are Indexed variables containing data of anyone type - integer, floaling-polnt, or string, Arrays can have one or two dimensions, and the number of elements In each dimension Is Implicitly or explicitly declared by the programmer. The number and size of an array's dimensions are explicitly defined with DIM, MAP, or COMMON statements, They are Implicitly defined by declaring a subscripted variable. The size of an array Is limited only by available memory. Immediate mode is also useful for performing simple calculations that occur too Infrequenlly to warrant being programmed. When debugging, programmers can use STOP statements to create executable sections of their program. Upon execution, a STOP statement halts the program and displays a message Indicating where the program was halted. The programmer can then use Immediate mode to examine and lor change data values. or to add, to delete. or to modIfy tines. CONTINUE or GOTO statements are used to continue program execution. Programmers can alter the number of elements in each and the number of columns In the matrix and can Input. print, add, multJply, transpose, Invert. or take the determinant of entire dala matrices In a single operation. (OW Conditional Statements and Program Segmentation BASIC-PlUS-2 extends the BASIC language by Including several additional statements for easier logic flow and function definitions. The IF-THEN-ElSE, WHilE, UNTil, GOSUB, function definition , and CAll statements provide a variety of loop controls, as well as function and procedure subprogram capabllJtles. The programmer can use multiline statements, multistatement lines, and the subroutine features 10 write structured programs, without GOTO statements. APL Two levels of this popular language are available, and both are full APl Implementations with significant extensions. The basic version suits users who do not require the IIle 1/ 0 or the advanced APllunctions. The extended version of APl, APl-SF, has all of the features of the basic version plus advanced features that substanllally Increase its useful range of applications. Both feature: • Full Implementation with significant extensions • Fastexecutlon • System functions/ variables • User-definable error trapping • Error analysis and recovery • Support of highly Interactive applications • Double-precision arithmetic The CAll statement accesses external subprograms. Programs can comprise several modular segments, each of which can be complied separately to speed program development. The CHAIN statement translers control from the current program to a program stored In a file. CHAIN loads a program from the file, complies It If necessary, and starts its execulfon from the beginning or from any line number. 8-7 • Integrated debugging features • Workspace Interchange features or capabilities APL-SF enables the user to obtain canonical string representations, to create local functions, to erase and classify names from a workspace, and to perform various file 1/ 0 operatIons Including ENQ/ DEQ. APL-SF features; • System variables with which the programmer can set tolerances, Index origIns, and store accounting Information • File 1/0 that makes It easy to structure program data and Interchange dala flies between other DECSYSTEM-20 languages such as FORTRAN and COBOL • System commands with which the programmer can redirect termlnallnpul and output to any file • A function that can solve linear equations, take the Inverse of a matrix, or solve an overdetermined set 01 linear equations using a least-squares fit • A function that converts numeric data to a character string and enables the programmer to write user-defined functions that perform special output formattIng and functIon editing • A function that efficiently finds the Indices In a vector for which a particular 800lean expression Is true • A funct ion that executes a character as an APL statement • A convenient and efficient mechanism for formatting output data; for example, an entire table with associated text can be formatted In a single operation, or a large matrix can be formatted with alphanumerics APL uses one of the most concise, consistent, and powerful character sets ever devised. APL Is especially suited for handling array-structured alphanumeric data. It Is also usad as a general data processing language and a mathematical tool. System Commands, Functions, and Variables Programmers can change system parameters, determine hardware or operational characterlstlcs, and modify workspace parameters through system commands, system functions, and system variables. System commands control the operational environment In whIch an APL session Is conducted by allowing programmers to examine or change the state 01 the system. System functions and variables are used to communicate with the APL system to change user workspace characteristics and to report sta· tistlcs about the workspace and the APL system. Statements There are two types of statements In APL programs; assignment and branch . Asslgoment statements Include calculation and Input/output operations. Branch statements are used to restart a lunctlon or to handle the transfer of control from one part of a program to another. Branch statements are relevant only to programmer-defined functions. An APL statement can contain: • Identifiers • Constants • APL primitIve functIons • User-defined functIons APL Statement Execution APL language statements operate In either of two modes; • Immediate or execution mode - In this desk-calculator mode. APL slatements and expressions entered by the user are executed Immediately • Functfon-de/inition mode - In this mode, APL programs and functions are developed, edited , named , and saved for later use Programmers can shllt from one mode to the other. The syntax of the APL language Is Identical In both modes. APL allows programmer-defined functions and primitive language functions to be expressed with the same syntax. Thus, programmers can expand the capabilities 01 the language to handle the requirements of any application. Data Structures APL supports a variety of numeriC and character data structures. They are: • Scalars, which are a single numeric or character value with no dimensions • Vectors or lists, which are one-dlmenslonal arrays or character strings con~lsting of any number of values • Matrices or tables, which are two-dimensIonal arrays consIsting of rows and columns • Arrays with three or more dimensions - the maximum number 01 dimensions and the maximum size of an array are limited only by the size of the workspace Interacting with APL Programn)ers interact with APL using a hardcopy or video terminal. DIGITAL's LA37 and LA120 hardcopy terminals Include an APLIASCIl dual-character set. On other terminals, keyboard mnemonics can represent special APL characters. 8·8 Debuggi ng Tools Function execution Is suspended If en error occurs or If a stop vector Is set. When execution Is suspended, the program displays the name of the suspended function and the line number of the statemant that would have been executed next or that was being executed. APl then awaits Input In Immed iate mode. Programmars can perform any other APl operations at this time. The programmer can resume execution after fixing the problem and can observe function nesting. Programs can also automatically display intermediate results of function execution. As a program-tracing aid, the values computed by one or more function statements can be output each lime those statements are executed. Fu nction execution can be suspended from within the function Itself. A stop control vector with a syntax similar to that of the trace vector suspends function execution Just before execution of one or more specified statements. curs, a particular APl expression be executed. Within that expression, the error can be analyzed and remedial action taken. Error-trapping features enable computar-asslsted instruction applications. A programmer can, for example, write a program that lets a student write a prOblem solution. The controlling program can Intercept any student error. Conversion Package A complete package Is avaJ1able to convert non-DIGITAL APl workspaces and data files Into APl-SF workspaces and data files. The package code Is mostly APl and Is easily adaptable for use with other APl systems. It Is written according to the workspace Interchange convention . adopted by the SIGPlAN Techn ical Committee on APl (STAPl) of the Association lor Computing Mach inery (ACM). Workspaces An APl workspace is a buffer In the programmer's memory area that stores the functions, variables, values, and temporary results obtained whlla executing APL state-ments. Using APl system commands, workspaces can be saved, loaded , and erased. Workspaces are stored as DECSYSTEM-20 disk fUes and can be manipulated as such. BLlSS-36 BUSS-36 is DIGITAL's Implementation language for software development. BLISS Is an optimizing , high-level systems-Implementation language lor the DECSYSTEM-20. It Is desIgned for building compliers, utJlltles, and operallng system software, and encourages the writing of highly structured , easily maintained programs. BLISS has the features 01 a modern, structured high-level language combined with the flexibility of an assembly language. BUSS can help systems programmers be more productive, shorten project development time, and lower maintenance cost. Through the file I/O facilities of APl-SF, a user can convert an APl workspace to ASCII format, and then edit It with any DIGITAL-supplied editor. File Organization The APl-SF file system allows access to data and program files on a variety of system devices. The lIIe system, Imptemented as an Integral part of the APllanguage, provides an interface to the TOPS-20 operating system. The key features 01 BLISS are: • State-ol-the-art optim ization technique to generate highly optimized programs • A lull set 01 structured programming constructs IncludIng IF-THEN-ElSE, CASE, DO-WHilE, SELECT, and DECR statements • Sophisticated macro processing capabilities • Access to machine-dependent features Includ i ng PSECTS, hardware regi sters, and machine Instructions (Including UUO and JSYS) • A linkage declaration that supports user-selected register conventions. Users can rebuild the object-time system to support nonstandard regIster conventions The APl Ille system support Is provided by system functions for assigning, closing, synchronizing, and renaming llIas, and by file functions for Input and output operations on ASCII data, APl data objects, or arbitrary binary data In either sequential- or random-access modes. APl supports ASCII sequential- and random -access flies. ASCII sequential data fUes can be read and written sequentially by any TOPS-20 language processor (e.g., BASIC--PLUS-2, FOATRAN, MACAO). APl can treat random access flies as random access memory. Programmers can access any word in the file directly by specifyIng the Individual word or value to be read or written . APl arrays of any shape or size can be read from or written to APl files either sequentially or randomly by component (I.e., record) number. • Precompiled source libraries similar to MONSYM Compiling The complier can display a listing of errors and warning flags on the programmer's terminal or can generate alisting with the errors and lIags embedded. listings can be printed as needed, and most syntax errors are labelled as such. Error Analysis and Recovery Instead of stopping execution, APl-SF error analysis and recovery permit the program to take remedial action. Debugging An interactive symbolic debugger supporting BLISS-style expression evaluation Is used . There are two ways to trap errors: • The programmer can execute an expression suspected of causing an error, then test whether an error occurred. • The programmer can specify that whenever an error oc- File Organization BLISS can access any file organization . 8-9 Compatibility with Other Languages BLISS Is not Intended to replace the other high-level languages such as COBOL, FORTRAN, or BASIC; Instead. It complements them. Programs written in other languages, except BASIC-PLUS-2, can call BLISS routines through the standard operating system calJlng sequence. BLISS programs can call routines written In a variety of other languages, and they use several linkage conventions. CPL Conversational Programming Language (CPL) is a PL/ I subset interpreter. It Is well documented, easy to learn, and a subset of ANSI-1976 PlIl . At the user's option, statements are executed Immediately or saved for deferred execution. A beginning programmer can start by executing simple computational statements and proceed to building programs. Since CPL Is an Interpreter, a user can track programs very closely. Debugging features Include source-level breakpoints and program modificatIon. CPL includes: • ANSI PlIi statements - ALLOCATE, ASSIGNMENT, BEGIN. CALL, CLOSE, DECLARE, DEFAULT, DELETE, DO, END, FORMAT, FREE, GET, GOTO, IF, NULL, ON, OPEN, PROCEDURE, PUT, READ, RETURN. REVERT, SIGNAL, STOP, and WRITE • Data types - FIXED, FLOAT, CHARACTER, CHARAC_ TER-VARYING, BIT. BIT-VARYING , POINTER, and arrays of these types • Storage classes - AUTOMATIC , STATIC, CONTROLLED, and BASED • Recursive procedure support • Almost all ANSI PLI I arithmetic, mathematical, string_ handling, array, and storage control built-In functions • STRING, SUBSTR, and UNSPEC pseudovarlables Immediate Mode The CPLlmmediate or desk-calculator mode Is Integrated InlO the system so that the user can easJly move between programming and calculating. Almost any CPL PlI I language statement can be typed without a line number for immediate mode execution. A user can perform simple computations to get immediate answers, and can assIgn Intermediate results to variables and use the varIables In further computations. Immediate mode Is thus useful for debugging. Program Creation Programmers can creale CPL programs wlthout using an edllor or utl/iry. Program statements are ryped to CPl; InsertIons, changes, or deletions are done easily. CPl provides automatIc, immedIate syntax checkIng 01 statements. If there Is an error, CPl tells where the error Occurred. The USer then can correct the statement and continue. ThIs avoIds waiting for a compilation to provide a JIst 01 errors. Programs created usIng an editor or file manipulation facliity are checked' automatically when loaded Inlo CPt. Any erroneous statement will be listed with an error message thai indlcales the problem. Oebugglng CPL Is the only PlI t language processor available that provides true source-level program debugging. To debug a program, a programmer can: • load the program. • Set breakpoints on any statement. • Execute the program. • Use CPL statements In immediate mode to Isolate problems when the program stops on an error, a breakpoint, or al programmer command. Variables can be examIned or changed. 1/ 0 can be done. Newvariables can be created to store Intermediate resurts. • Make source modilicalions to the program, such as add, delete, or modlly statements, and set or clear breakpoInts. • Continue execution aiter the current halt in execution. L 9 Data Management and Application Products / In addition to the standard file management facilities described In Section 4, TOPS-20 has optional data management and application products. DBMS Is a CODASYL-compliant database management system with which users can organize and maintain data in customized databases, and rapidly and conveniently access that data. IOL Is an Interactive query language for information retrieval and report writing. IOL can access DBMS files. SORT IMERGE is a TOPS-20 sort utility that operates by Ilself or with COBOL or FORTRAN programs to reorder the records of files Into new sequences or to merge sorted files into a single, sorted file. TRAFFIC-20 Is a collection of CAT screen-formatting and program-Io-program communications subroutines useful In writing online COBOL transaction processing applications. Two application products, COGO-20 and PCS-20, are also available. COGO-20 includes a geometriC language for solving problems in plane coordinate geometry. PCS-20 is a project control system Ihat analyzes critical path or procedure networks and generates a number of resource, cost, and critical path reports. Data Manipulation Proce •• Database records can be referred to via data manipulation statements Included In COBOL or FORTRAN application programs. These statements are used to store, modify, and delete fields and records that are 01 specific interest to an authorized application user. Records can be Inserted and removed within structural relaUonshlps, and can be directly accessed by symbolic keys or by movement through structural relationsh ips. The data management products detailed In this section are: • DBMS - a CODASVl database management system • lal - an Interactive query language for information retrieval and report writing • SORT/ MERGE - a sorting and merging utility for TOPS-20 flies • TRAFFIC-20 - a collection of screen-formatting and program-ta-program communications subroutines for COBOL programs DBMS Modules TOPS-20 DBMS modules Include the Data Oeflnltlon language, Data Manipulation language, and Database Control System. The opllonal appllcallon products discussed are: • COGO-20 - a tool lor solving problems In plane coordinate geometry using a geometric language • PCS-20 - a project control system that analyzes critical path or procedure networks The Data Definition Language (DOL) equips the database administer to centrally define the 10glcJlI and physical characteristics of the database files and database records. By controlling the placement of records on the physical slorage medium, the administrator can assure both data security and high-speed data retrieval. The comprehensive data menagement system that is part of TOPS-20 and Included with all DECSVSTEM-20s Is discussed In Section 4 of this technical summary under the headline The File System. Access to data files from various programming languages is described In Section 8. Records can be grouped logically In "sets", which are used to model the real-world relationships among objects . Instead of storing extra data about relationships, DBMS-20 links related record s In log ical chains. This thrust toward effective real-world modeling Is carried a step further In transaction definitions. A transaction definition Is an Integrated serles of manipulations performed against the database. A transaction defines the conteltt of these Interactions, allowing the user to perform a series of data manipulations as a slng le,lntegrated operation . DBMS DBMS Is an optional TOPS-20 CODASYl-compliant database management system that lets users organize and maintain data In customized databases and provides rapid and convenient access to the data. DBMS integrates relaled processes and data structures. It Is used when trad itional file management techniques woutd be dllllcult, costly, Inadequate, and / or prone to error. DBMS features : The database delinltlons reside In a central location In the SCHEMA, and can be accessed by user programs through the SUBSCHEMA. A SUBSCHEMA Is a subset of the SCHEMA that Is defined by the administrator to satisfy the needs of related groups of programs. By restricting the scope of the SUBSCHEMA. the administrator can prevent certain classes of users Irom accessing portions of the database, from the level of flies down to the level of data Items. This feature provides one 01 the Inherent security checks of DBMS-20. • COBOL and FORTRAN interfaces • English-language Interface for Inquiry and report generaUon through the lal package discussed below • Easy SCHEMA/ SUBSCHEMA definition and update • Full journallng and database recovery capability • Protection against unauthorized database access with centralized control of privacy • High throughput • Temporary work areas for use during development to protect database Integrity The Data ManIpulation Language (DML) performs the database retrieval and update. The programmer Includes OMl statements in a COBOL or FORTRAN program . COBOL and FORTRAN are called the host languages for DML. COOASYL Compliance DBMS provides software to define, access, and maintain data in the network structures of an Integrated database. DBMS Is based on the CODASVl Database Task Group Report of Aprlt 1971 . The IIrst DMl statement In a program Is the INVOKE statement, wh ich provides the program with the definitions from the SUBSCHEMA, In a form suitable for the host complier. No further data declarations are needed because the centrally defined database structures are mapped directly Into the host program. Data Description Procest Data structures can be established either In a hierarchical form (a trae) or in networks with multilevel relationships. Relallonshlps can exist within or between files with no Jilted limit on the length of chains. The TOPS-20 file system Is used to construct data base areas. The number of relalionshlps Involving any record and the size of the record Is normaUy limited only by the design constraints of the application. DBMS-20 provides multithreaded simultaneous update. Many users can access the database at the same time. Each program Is protected by a system of locks that are controlled In the Schema. The database administrator can grant exclusive control to one program, or distribute It among many programs, When a large number 01 programs are using the database, each one locks the resources It Is using until II completes Its transacllon . The 9-1 protective locks can be placed on areas (files) being used, or on the specific database page. Two typical DML verbs are FIND and STORE. In DBMS-20, there are six ways to find a record: by traversIng a set, by hashing a data Item , by sorted order, by direct address, by relative address, or by current program context. When a record is read from disk, DBMS-20 can also read In other database pages containing related records. This operation, called clustering, requires only a single disk access for the entire page cluster. The STORE statement, In addition to placing the record on the database, automatically performs a number of operations. In accordance with the specifications of the Schema, a record can be stored next to its logical group, or can be distributed randomly across the database. The Schema can specIfy how many records to place on a slngte page, or how many pages to leave between records. The STORE operation can automatically choose an appropriate set and link the record to !t lmmediately. An important, but largely Invisible component of DBMS· 20, Is the journal, which is a record of everything that has happened to the database. When using the journal , a program can recover from any kind of error that affects the database - either automatically or under program control, the database Is restored to the state it was before the c urrent transaction began. The journal helps assure the conslstency,lntegrlty, and reliability of the database. port-generating commands. IOl can access TOPS-20 files and Interface to DBMS to provide a powerful, fully Integra· ted database management system. IOl features: • Multiple Input flies (DBMS, ISAM, sequential) • Extensive record selection • Sorting • Conditional processing - ANDI OR conditions can be strung together; parentheses can be nested nIne deep • Bullt·ln summary statements • Complete report-formatting capabilities InCluding multl· pie across labels and speclallorms • MultIple reports - up to nIne, standard , and expand· able • Flies can be output In original or new format • Matrix reporting by manipulation 01 summar ies or Individual Items • Powerful computation capabilities • Built-In summary statements for tallies, totals, and aver· ages • File-updating capability • Dictionary presorting 01 liIe, record, and Item Informa· tion, Including printing of column titles and pictures • Default automatic formatting of reports, Including field alignment, dates, paging, and columns • Interactive or batch modes of operation • Exits to user-written modules Datebase Control System (DBCS) that is a runti me Inter· face between a COBOL or FORTRAN program and the TOPS-20 operating system. The DBCS exists In a specific module withIn the COBOL object-time system (UBOl) and the FORTRAN object-time system (FOROTS). Failed DML updates are recovered via the journaling faCility. Traditionally, data manipulation and reporting has been tell to programs written in COBOL, FORTRAN, or assembly language. This method Incurs high programming costs and delays In obtaining report Information. tOl, however, is an Inquiry system that can quickly extract, summarl1e, reorganIze, report, and copy file Information . Table 9-1 Illustrates the use of IOl Ad Hoc Inquiry and reporting. DBMS Utilities The DBMS utilities help the database manager run and maintaIn the database. The utilities Include: • DBMEND - for repairing the database using the Journal. DBMEND can restore the database after a system software or hardware failure, or a user error. Interactive Mode In Interactive mode, IOl operates under control of term inal front-end modules, so that terminal users can: • Write, store, retrieve, or change queries • Deline and Interrogate dictIonaries • Deline dictionaries reflectIng SCHEMA flies for DBMS databases • Browse or update sequential or Indexed sequentlal In· putliles • DBINFO - to generate a variety reports about the structure and contents of the database, Including maps and dictionaries from the Schema. Users can also obtain data dumps of single pages, single sets, sIngle records, or any larger portion 01 the database. • STATS - to generate complete statistics about the perlormance of the database. These statistics, relating to buffer management, disk 110, lock performance, and DMl runtime, allow the database administrator to evaluate the database design and fine-Iune It for maximum performance. ST ATS can be called by a database program. • Create sequential output files • Accept raw data Input • Operate other IOl system modules • Display snapshot reports on the terminal Deferred Mode In deferred mode the IOl system provIdes powttrlut retrieval selection, report formatting, sorting , computation, summarization, and data file writing capabilities. Up to three Input files can be read. The Input files can be DBMS database Illes, sequential Illes, or Indexed sequential flies. They can contain flxed- or variable-length records, and one or more record types. Input data flies are queried In IQL The optional Interactive Ouery language (IOL) Is used with TOPS·20 lor Information retrieval and report wrIting. It takes requests written In English-like formats, reads one or more Input files, and processes the data according to the request. IOl queries are groups of easily written, reo 9·2 Table 9-1 tQl Ad Hoc Reporting The Query: OPEN CUSTOMERS RPTHEAD " ANALYSIS OF// PRICE CHANGE/II MPACT"$ IF CSTATE EO "N H","VT", "MA", "M E" THEN GO TO 10 ELSE GO TO NR$ 10 COMPUTE XSAlES :CYSAlES·l .l 0$ COMPUTE XOIFF - XSAlES-CYSAlES$ PICTU RE XSAlES: " ZZZZ.99",XDIFF -"ZZZZ.OO"$ TOTAL CYSAlES $ TOTAL XSALES $ TOTAL XDIFF$ PRINT CNAME,1,CYSAlES,XSAlES,XDIFF,CSTATE $ The Report: 05-01-8 1 ANALYSIS OF PRICE CHANGE IMPACT PAGE 1 CUSTOMER NAM E V-T-D PURCHASES XSAlES XDIFF MANFREDINI VIOLIN CO. GlOBAlEX LAKESIDE HOMES INC. FARFtElD MOTORS HUBERT Oil COMPANY BEE DRill SERVICE INVESTMENT INC . ENERGY RESOURCES INC GEO BANK FISHERIES MERRIMACK VAllEY SALES APPLE ORCHARD INC. GIRAFICS ADVERTISING $1 ,233.67 $2,500.00 $1 .211.00 $9,000 $600.00 $1 ,000.00 $364.75 $8,000.00 $9,164.00 $6,000.00 $671.00 $5,115.50 1357.03 2750.00 1332.10 9900.00 660.00 1100.00 401.22 88000.00 10080.40 6600.00 738.10 5627.05 123.36 250.00 121 .10 900.00 60.00 100.00 36.47 800.00 916.40 600.00 67.10 511 .55 FINAL SUMMARIES Y-T-D XSAlES XDIFF TOTAL: TOTAl: TOTAL: $44,859.92 49,345.90 4,485.88 END QUERY EXECUTION DBMS File. lal accesses data files under control of a data dictionary that describes the format of the file and the location, the default display pictures, and the column titles of each Item In the data record(s). For DBMS databases the dictionary also Includes pertinent Information about record names, set names, and area names. Password protection can be applied to Individual data items or groups of Items. their original format and can be In SIXBIT or ASCII mode. All standard data item types are permitted. Only sequential or Indexed sequential Input files can be updated; DBMS databases cannot. Sequential output files can be generated that either mirror the format of the primary Input data file or assume a new format as specified by the query. Queries can be stored In text flies or In executable form for later reuse. To use DBMS database flies, the SCHEMA file must be present. Privacy locks provide additional security for DBMS databases. lal's queries opera'e In stages delimited by SORT statements. lal can sort data Items or calculated fields In ascend ing or descending order. IQl St.tements An tal selection statement can combine many conditional tests con nected by AND and OR logIcal operators and clarifi ed with parentheses. An lal computational statement can Include addition, subtraction, multiplication, and division with parentheses. Data Item breaks can be used to con trol built-In summary statements for tally, total , average, maximum, and minimum calculation. A random num· ber variable Is built In. Report Formatting IOl has automatic and custom report formatting. Users specify data item placement in reports. Both multiple print lines per Input data record and multiple Input data records 9-3 • per print line are permitted. Special-form reports such as mailing labels and checks can be produced easily. Up to 99 multiple reports can be generated at onetime. • Alignment and spiral functions • Maintaining compatlblllty with the previous COGO so that existing Input can be used • Outputting Information generated by COGO SORT/MERGE The optional TOPS-20 SORT/MERGE utility operates by Itself or with COBOL or FORTRAN programs. The user specifies parameters for the sort sequence and the collatIng sequence. PCS-20 PCS-20 Is an optional TOPS-20 Project Control System that analyzes critical path or procedure networks and generates a number of resource, cost, and critical path reports. SORT/MERGE reorders the records of EBCDIC files, ASCII Illes, SIXBIT flies, and binary files produced by COBOL or FORTRAN. PCS-20 can process data for any critical path network developed in an IJ/CPM, or precedence technique. The fixed-format input can be entered on a variety of media. The system Includes a terminal-oriented editor for Input from a CRT or hardcopy terminal. SOAT / MERGE automatically controls the use and allocalion of disk workspace and memory workspace, although the user can specify memory limits. SORT/MERGE provides error dlagnosllcs and statistics, upon completion. PCS-20 has the following features. MERGE combines sorted flies into a single sorted file. This function can be used alone, with COBOL, or with FORTRAN. • The time required to perform a work Item can be expressed in seven different time units. • Seven different days can be designated as the starting day of the work week associated with each work Item. • The work week of each work item can be one to seven days. TRAFFIC-20 Transaction Routing and Forms Filling In COBOL (TAAFFIC-20) Is a collection of CRT screen-formatting and program-la-program communications subroutines available to COBOL programs. TRAFFIC-20 Is optional on DECSYSTEM-20s. • Anyone of three distinct calendars can be used for each work item. • The actuel dates can be specified for each work item. • One of five types of "scheduled" dates can be specified for the start and completion of each work Item. TAAFFIC-20 Includes a set of screen-formatting routines, a set of transaction-routing routines, and a stand alone utility program for defining and saving CRT screen format descriptions. With the screen-formatting routines a COBOL program can send formatted CRT displays to, and receive data messages from terminals. The transactlonroullng routines equip a COBOL program to send and to receive data packets to and from another cooperating COBOL program. • Two "early" and two "late" dates can be computed for each work item. • Two types of duration can be specified for each work Item. • Two types of "percent complete" can be specified for each work Item. • Two kinds of "float" can be computed for each work item. • Three different kinds of codes can be specified to be associated with each work item. • Three kinds of costs can be specified for each work Item. • An IJ/ CPM or a precedence network can be accepted lor processing. COGO-20 COGO-20 Is an optional TOPS-20 tool for solving problems In plane coordinate geometry. II Includes a geometric language. COGO-20 Is used In such tasks as land surveying, highway des ign, right-of-way surveys, bridge geometry, end subdivision work. • An IJ/CPM network Is Internally converted Into a precedence network for processing. The user works directly with the COGO language, which consists of common engineering terms. No computer experience Is required to use It. Using the commands, problem definitions can be stored In a file and executed at a later time, or can be entered Interactively on a terminal keyboard. • Three different relationships can be specified between any two work Items when using precedence Input. • loops are detected and Identified. • A time delay can be specrfied that becomes an Intrinsic part of the relationship between two work Items. • All network calculations are based prImarily on three calculation dates. COGO has commands for: • Starting and ending a COGO Job or changing the 1/ 0 device • The specification of 240 "milestones" Is possible. • Fourteen different types of output reports can be produced on request: lour different kind of system runs can be specified , and a network can extend over a period of 2,911 calendar days, that Is, slightly less than eight years. • Maintaining tables (lists of related points such as road alignments or property lines) • Intersecting existing lines or figures to calculate a new point • Calculating and/or storing one or more points • "locating" In traverse work 9-4 10 Communication 1 A range of communications software expands the DECSYSTEM·20's capabilities tor interactive computing and distributed processing. Distributed processing software, remote Job entry stations. IBM protocol emulators, and a document transmission package for word processing equip TOPS-20 to communicate with other DIGITAL computer systems and with IBM mainframe computers and remote job entry stations. Distributed processing networks are formed when two or more computers communicate with each other to exchange information. DiGITAL has developed two types of network products - OEenet for communication between DIGITAL computers, and Internels for communication between DIGITAL systems and other vendors' systems. Using DEC net. computer system networks can be constructed to facilitate remote communications and distributed computation. DEC net is highly modular and flexible. It is a set of tools and services from which a user selects whatever Is appropriate to build a network that will satisfy the requirements of a particular application or application set. DIGITAL Network Architecture (DNA) provides the common network structure upon which all DECnet products are built. The architecture is designed to handle a broad range of application requirements because all the functions of the network - from the user Interface to physical link control - are completely modular. DNA allows nodes to operate as switches, front ends, terminal concentrators, or hosts. DECSVSTEM-20 distributed proceSSing capabilities can be extended with Internels or with PDP-11-based remote job entry stations. TOPS-20 supports the 2780/3780 and the 2780/3780/HASP protocol emulators. These two Internet products enable DECSVSTEM-20s to communicate with IBM systems. Both perform emulation to communicate with an IBM 360 or 370 host, and termination to communicate with an IBM or IBM-type remote job entry station. These emulators are well suited for batch-mode BISVNC communications. TOPS-20 2780/3780/HASP Is a functionally enhanced 2780/3780. Besides card reader. punch. and printer, It supports a terminal with CRT and keyboard. With it. operators can communicate directly with the IBM mainframe from a local termInal to control and check the status 01 jobs on the IBM host. DIGITAL Internet products offer distinct advantages over the IBM products whose protocols they emulate. Users can also install and support a DX/TOPS-20 document transmission package for word processing systems. DX/TOPS-20 links the data processing and tile management capability of a DECSVSTEM20 with the editing and list processing capabilities of DIGITAL's WPS-8 word processing systems. . . Ing and dumping the DN20 communications front end or DN200-based RJE station (see NEreON below). With NETCON , an operator can d isplay DECnet activity at the local site. The user can d isplay statistics related to com· munlcatlons lines, includ ing data on treHlc and errors. Output can be directed to the term inal or to a report We. Other utilities provide controlled local loopback test arrangements that enable users to perform a series of logl. callests to aid in Isolating communication problems. DECNEHO DEenat expands the power 01 DIGITAL computer systems so that each system can be used both independently, and as part of a network . Each can also provide additional computing bene Ills. There Is a DEena! product to support each of DIGITAL's major operating systems. DECnet-20 equips 8 OECSYSTEM·20 lor use in a computet network that can include other DECSYSTEM-20s, VAXNMS systems, and PDP-II systems running the RSX-l ' , lAS, ASTS/ E, CrS-500, or AT - 11 operating systems. Users access the network through the standard TOPS-20 lIIe system Interface via MACRO·20 system calls. When a TOPS-20 system operates as a node In a DECnet conflguraUon, the functions II can perform depend somewhat on olher DECnet products in the configuraUon , ThIs Is because two communicating nodes are always restricted to their common capabilities. Table 10-1 lists the various DECnet systems that can be configured with DECnet20 and the functions each can perform. Functions in the left-hand column afe described In the section titled DECnet Functions below. DECnet-20 olfers task-te-task communication, network Iile translar, and network control capabilities. Task-Ie-task communication permits user tasks running on one system to communlcete Interactively with pro· grams or tasks running on another. The local task uses the TOPS·20 l ile system monitor calls to operate on flies on network devices. Messages sent and received by user pro· grams can be In any data format. DECnet-20 also Includes onslle configuration tools and a set of programs with wh ich the DECSYSTEM-2040 or 2060 user can build Site-specific, tailored software according 10 a DIGITAl·supplled "cookbook" procedure. This software w i ll run I n the c ommunications Iront end of a DECSVSTEM·20 or in a DN200-based RJE station . DECSYSTEM·2040s and 20605 can support up to eight physical links over serial synchronous communications lines that can each support several logical links. DECSYS· TEM·2020s can support two such links. DECnet·20 network lIIe transler utilities permit a user to trans fer sequential ASCII Illes between network systems. Files can be transferred in either d irection between the locally supported DECSYSTEM·20 devices and the file system of an adjacent network system. DIGITAL Network Architecture DEenel Includes a set of layered network protocols, each of which performs specific network functions. The protocols govern the formal, control, and sequencing of message exc hange In all DECnet products. Collectively, these protocols are known as the DIGITAL Network Arch itecture (DNA), end they provide a modular design lor DECnet. The The DECnet·20 Network Control Program (NETCON utili· ty) supports recording and displaying statistics and load· Tabla 10·1 Product ever. Ion) Task·to-Task Intersy11em Fl1e Transfer Network Command T«mlnal Balch/Command File Submission - Requester Batch/Command FIle SubmistJon -S_ Batch/Command Ale Execution Remota Ale -.. DownUne System loading Downline Taskloadlng DEenat Product. and Function, .. . DECn.t·VAX (1.3) ..,e. DECn.t·20 (2.0) , ... DECne'·RT (1 .1) 00 , , DECn.IIE (1.1) yes' 00 "" '0 '0 "" '0 '0 yo. ye. , '0 '0 ,.. '0 , ye. '0 ye. '0 yeo ,.. yes' ,eo yes' yes t ,.. '0 , '0 DECne'·11 M DECn.t·llM DECn.t·llS ·PLUS (1.0) (3.0) (3.0) . . ,eo , , '0 . .. ,. , ,.. , ,e' .. ,e' , ye. . . DECn.t·IAS (2.1) .. ,. ,eo ,.. • requester only t server only 10-1 , , , ,e. . , .. .. . , ,e' ". . ,e' ,e. , , , 00 '0 ,eo ,eo '0 00 00 "" '0 major protocols are DIGITAL Data Communications Mes· sage Protocol (DOCMP), Network Services Protocol (NSP), and Data Access Protocol (DAP). DIGITAL Oat. Communication. M....g. Protocol DDCMP handles the physical link and physlcal·llnk error recovery within DECne!. DDCMP operates either full· or half·duplex with serial synchronous or asynchronous facll· Itles In a point.to·polnt mode. DOCMP: • Operates over a wide variety of hardware types • Makes efficient use of full-duplex channel capacity • Allows transmission of all data types (Including binary) • Allows use of standard character·orlented communica· tlons hardware fashion, exchange data with programs or tasks on other systems. Table 10.1 also shows that many DECnet systems support other leatures that are useful In a network envlronmenl These Include: • Intersystem file transler to move an entire data !lie between systems at either program or operator requesl Sequenttal ASCU liles are supported by all the systems and are used In these transfers. • Network command terminals to allow local users to log onto like systems In the network as though their terml· nals were directly connected to the remote system. • Batch/command file submission to submit batch or command files to remote systems for executIon . • Batch/ command file execution to allow remote users to submit for execution at the local node a batch or com· mand lIIe that resides at a remote node. • Remote lIIe access for tasks or programs to access se· quenttal flies on remote nodes on a record·by·record basis. • Downllne system loading 10 allow Initial memory Images for DECnet·11 systems In the network to be stored on the local system and loaded on request Into other systems In the network . Remote systems usually require the presence of a network bootstrap loader. Implemented In read·only memory. • Downline task loading to allow programs executable on DECnet·11S systems In the network to be stored on the local system and loaded on request Into other systems under the Joint control of the operating systems at both ends of the physical link. This feature and those listed above simplify the operation of network systems that do not have mass storage devices. • Uses CRC·16 for error detection, with recovery by re· transmIssion • Is elfectlve on satellite links and other links with long signal propagation delays N.twork S.rvlc •• Protocol - NSP handles logical link management functions within DECne!. NSP makes It pos· sible for two programs on different machines to establish a logical communications channel (log ical link) between the programs and to exchange data using thIs loglcel link . These progrems need not be aware either of the nature'of the physical link (full. or half·duplex, parallel, or serial) or the nature of the protocols supporting the physical link . NSP has: • Dynamic creation of logical links between tasks • Exchange of data between tasks on a solicited basis • Exchange of data between tasks on an unsolicited (e.g.,lnterrupt) basis • Ability to connect nodes dynamically within the network once NSP Initialization occurs over a previously esta· bllshed physical link Data Acceas Protocol - CAP enables programs on one node of the network to use the I/O services available on other nodes. Some DECnet products provide facilities for translating operatlng. system·speclflc I/O calls Into the DAP standard and vice versa. Thus, DAP enables data requests to be processed in a meaningful way by many possibly heterogeneous operating systems. DAP's laclll· ties include remote lUe access Including OPEN, READ, WRITE, CLOSE, and DELETE for sequential and random access flies and lor command flies. Table 10·1 provides the Informat/on for determining If the preceding functions are available on a particular DECnet system. The descriptions above are the minimum capabill· ties provided by a given function. Additional capabilities may be available between two DECnet-connected sys· tems. DECnet·20 Capabilities DECnet·20 provides the TOPS·20 user with network task· to·task and flte transfer capabl1ltles. Local system or user tasks can exchange Information with system or user tasks runn ing In one or more adjacent nodes in a network. TOPS·20 also provides file transfer between systems vIa the Network File Transfer Program using the COPY, DE· LETE, DIRECTORY, and SUBMIT commands. Each DAP function requires support at both ends 01 the link. At the local node where the user program Initiates a data request, DAP must package the request for transmls· slon through the network. At the remote node where the device or fil e resides, CAP causes the appropriate actions. Not all systems support both local and remote portions of each CAP operation. A local task communicates by usIng the TOPS·20 file system monitor calls 10 open flies, read and write Information. and close flies on a pseudodevlce representing the network. DECna! Function. DIGITAL Network Architecture, Implemented across a wide range 01 operatIng systems and hardware configura· tlons, enables users to build a variety of networks. While such networks have a common attribute, individual sya-tems withIn the network can have certain system·speclflc attributes. As Indicated In Table 10·1 the common attrlb· ute is task·to·task communication. Programs or tasks on one system can create logical links and, In realtime Below this user layer and transparent to the user, the net· work protOCOl takes over. NSP software runnIng In the main processor (and In the communications front end when It Is part of the system) manages the actual transfer of data over a logical link. User data Is first reformatted Into network·compatlble segments and then transferred over the logical link. NSP also generates the appropriate control messages to open and close network connections. 10· 2 bootstrap programs to be used for downllne loading. On the DECSYSTEM-2020, the LOAD LINE and DUMP LINE commands load and dump the Internal line drivers. The INITIATE LOGGING, TERMINATE LOGGING, and SET LOGGiNG INTERVAL commands control the recording of DECnet-20 line statistics. NEreON - The NETCON utility (see above) is started at system Initialization and runs under SYSJOB. NETCON accepts operator commands which can: • Oownllne-Ioad network software Into the communications front end of a OECSYSTEM-2040 or 2060 • Load network software Into the synchronous line controller of a DECSVSTEM-2020 • Upline-dump the memory of a communications front end of a DECSVSTEM-2040 or 2060 Into a TOPS-20 file • Log pertinent network load , dump, and line status Information Into the TOPS-20 SVSERR file DECnet-20 User Intertace - With the network Ille transfer utility (NFT), users can conveniently copy flies to or from a remote system, get 8 directory display for a specified account on a remote system, and submit a Job into the remote system's batch queue. • Display line statistics for any active node In the network • Start, stop, and loop-back lines on a DECSVSTEM-2020 REMOTE JOB ENTRY STATIONS TOPS-20 supports PDP-11-based remote Job entry stations. TOPS-20 support programs running on the DECSYSTEM-20 communicate with the remote PDP-11, using a DECnet-20 task-to-task link. Each station supports up to two high-speed synchronous lines, one lineprinter, and one cardreader. Tasks running In the remote station drive the lineprinter, cardreader and the console terminal. DECnet-20 Operator Intertace - Operator commands to NETCON fall into two classes: generic OECnet commands and DECnet-20 commands. Some DECnet commands are similar on all DECne! computer systems. These are the LOAD NODE and DUMP NODE commands that downllne-Ioad and upline-dump the communications front end, the SHOW QUEUE command that checks the status of any queued NETCON requests, and the SHOW COUNTS command that displays Ilnecounter Information. Remote stations can be downllne-Ioaded with the system software and diagnOStics from the host computer. The stations provide the user with remote Job entry (remote batch) capabilities to the DECSYSTEM-20. The remote stations have power-fall and automatic restartcapabtlltles. TOPS-20-speclflc commands are extensions to the generic DECnat commands necessary for implementation under TOPS-20. On the DECSVSTEM-2040 or 2060, the SET NODE command sets up operating characteristics of a network node, and the SET SECONDARV- or TERTIARYLOAD-FILE command specllles the secondary or tertiary ABLE 15 ", ~ USER B DECSYSTEM-20 16 ABLER USER A USER C INTERNET PROTOCOL EMULATORS The Interconnection of DIGITAL systems and computers built by other manufacturers Is supported by a family of products called Internets. TOPS-20-supported Internels if" C -- -------- --- ------ LOGICAL LINKS ,, , ", ",", ' "", , ~, / \", "" , , PHVSICAl ,~, , L1NKS~ CHARLY 27 / 36 BAKER USER D 1/ USER E 1"( [ USHER [ POP-ll ~ ---------LOGICAL LINK Figure 10-1 Logical and Physical Link. 10-3 [ USER F U~ER[ DECSVSTEM-2020 permit reliable bisynchronous links between DECSYSTEM-20s and IBM mainframe systems. The TOPS-20 Internet products perform both emulation and termination of IBM remote job entry stations. In emulation the software communicates with an IBM 360 or 370 host; In termination the software communicates with a remote station. The DECSYSTEM-20 Internet products are TOPS-20 2780/ 3780 and 2780/ 3780/ HASP protocol emulators. The 2780/3780 protocol supports up to six synchronous communications lines on a communications front end connected to a DECSYSTEM-2040 or 2060. Up to two synchronous lines are supported using the HASP protocol. The TOPS-20 Internets: • Allow submission from a DATA 100 rem ote station of card decks containing TOPS-20 batch commands for execution by the TOPS-20 host • Allow a TOPS-20 uSer to submit card deck Images containing IBM JCL commands for processing by an IBM 360 or 370 remote host running one of the fOllowing operating systems: 2780/3780 HASP OSIVS2 (SVS) HASP II OSIVS2 (MVS) JES2 OS/ MVT HASP JJ OS/ MVT ASP OSIVS2 (SVS) ASP OS/ VS2(SVS) HASP V4 OSIVS2 (MVS) JES2, NJ OSIVS2ASP OSIVS2JES2 • Allow a TOPS-20 user to print a lIIe ata remote station • Have features that support remote stations (2780/3780 termination) HASP support allows the user at the remote station to communicate with the operator Interface (OPR/ ORION) on the TOPS·20 host directly from the operator terminal at the remote slallon. HASP also supports multiple 110 streams and several si· multaneous devices. Wilh this multlleaving capability a short Job can be Interleaved while a longer Job Is running . TOPS-20 HASP supports full character compression. Table 10·2 Remote Job Entry Termination Support Protocol 2780 HASP 3780 MultIleaving EBCDIC code x x Extended retry x x Muilirecord transmission (selectable, x x x Multlrecord Interleaved transmIssion x Transparency (selectable) x x x CardreadSf x x LlneprintSf x x 120..character line x x x x x Modem control options x x x Unified system Interlace x x x 144·character line (132 positions used) x Operator's console Table 10·3 x Remote Job Entry Emul.tlon Emulated Protocol Table 10·2 lists the features provided by TOPS·20 Inter· nets In termination of remote job entry stations. Table 10-3 lists the features provided by TOPS·20 Internels when emulating remote job entry stations. Internel software can transfer DECSYSTEM-20 GALAXY batch Jobs from a remote slatlon to the OECSYSTEM-20 and execute them at the DECSYSTEM-20, or IBM JCL can be sent 10 an IBM system for execution. In either case, generaled log lt1es and oulput are returned to the sender. DIGITAL software required to support this emulation and termination Is the TOPS·20 operating system, the GAlAXY system, and the Internet software. Allinternel communica· tlons use the IBM Binary Synchronous protocol (BISYNC, BSC) In half· duplex mode. BSC protocol permits only half· duplex operation. 2780 3780 HASP MutU· leaving EBCDIC code X X X Extended retry X X X Multlrecord transmission (selectable) X Multirecord Interleaved transmission X Transparency (selectable) X Cardreadar x x X Lineprinter X X X 144-charactSf line (132 positions used) X X X ASCII graphics X X Operator's console 10·4 X X Modem control options X X X Unilied system interface X X X DXITOPS-20 package Includes utility programs that con· vert TOPS·20 flies stored In word processing format to TOPS-20 Illes stored In ASClilormat. and vice versa. In emulation, the Internet software makes the OECSYS· TEM·20 appear to be 2780/3780 remote station when It communicates with an IBM host. In termination, It does the reverse - the OECSYSTEM·20 appears to be an IBM 360 or 370 while communlcallng with a remote batch station. Communications between the WPS-8 system and the TOPS·20 system use the OX error.correcting message protocol. Consider a OECSYSTEM·20 connected to a remote station by dialup modems. The OECSYSTEM·20 Is running under the TOPS· 20 operating system and has a ON20 communi· cations Iront·end processor In addition to the usual con· sole front·end processor. The communications Iront·end contains the internet software. In a few steps, the remote station user can send a GALAXY batch Job to execute on the OECSYSTEM·20 and receive output returned to the remote station printer. OXITOPS·20 lets the WPS·8 system user: • Store word processing format liles on a TOPS·20 sys· tem and later retrieve them . By using the OECSYSTEM· 20 mass storage, the WPS·8 user can access a large number of documents that might fill several document flOPPY disks, including large documents titling an enUre floppy. • Use the high-speed OECSYSTEM·20 lineprinter con· nected to the TOPS·20 system to print rough drafts and other documents that do not require lelter·quallty print. Ing . This Increases system throughput and the avallablll· ty of the WPS·8 letter·quallty printer lor printing final drafts. The TOPS·20 system user can output text flies converted from the TOPS·20 liIe system on the WPS·8 letter.quallty printer. • Create TOPS·20 source language and data flies offline using the WPS-8 editor, and then transmit the lites to the TOPS·20 system for processing. OX/TOPS·20 OOCUMENT TRANSMISSION OXITOPS·20 Is an optional, user·supported FORTRAN software package that enables a WPS-8 word processing system to communicate with the TOPS·20 system through an asynchronous terminal Interface. The WPS· 8 system appears to the host OECSYSTEM·20 to be a normal terml· nal. OXITOPS-20 permits distributed stand·alone WPS·8 systems and the host TOPS·20 system to be linked togeth. er lor better system utilization and data sharing. The i SYNCHRONOUS LINES M ON20 IBM 370 I---orl CONSOLE FE '------' 1TTY, Figure 10--2 2780/3780 Emulation ~ SYI"CI<R()N()USLINES ON20 REMOTE STATION " L _ _ --' ~-~ ] nY's Flgur.10.3 2780/3780 Termination 10·5 ... 11 Support Services . DIGITAL offers comprehensive support services to help customers before, during , and after system installation. DIGITAL's sales force Is the primary contact for all products and services. The support DIGITAL provides customers is apparent from the beginning . Our sales representatives work closely with customers. They study the application with the customer and determine specific computing needs. Software and hardware specialists are available to supplement the sales representative's product knowledge. These specialists, trained to design systems using DIGITAL's standard and special products, can be called in to answer specific questions. Once the exact system requirements have been determined , the sales representative helps the customer select a system configuration . Site requirements such as adequate floor space, electrical capacity, air conditioning , and humidity control are reviewed . Customers can choose among various Field Service and Software Service maintenance plans to suit individual needs and budgets. If the application Is complex, the customer and DIGITAL's Software Service organization can prepare a Customer Support Plan (CSP). The CSP can consist of Software Product Services, Educational Services courses, hardware maintenance requirements, and software consulting services. It Identifies the customer's needs; the purposes , benefits, and details of the services recommended; how the services will be delivered ; and how much they will cost. Even before the OECSYSTEM·20 arrives, customers can train their personnel through DIGITAL's comprehensive educational programs. When a system is purchased, customers obtain training credIts that they can apply to the cost of courses. When a system is delivered, DIGITAL's hardware FIeld Service and Software Support organizations are on hand to ensure smooth Installation. DIGITAL's field specialists install hardware and software and run tests to determine that the system has been installed correctly and performs property. Following installation, DIGITAL's support organizatIons are avaJlable to help with special needs that may arise both during and after the warranty period. Product Services are avaHable to provide continued software support and maintenance. Designed to complement DIGITAL hardware services. these Software Product Services offer the most comprehensive post-warranty support In the industry: • Software Product Updates. This service Is for customers who Install their own software. It Includes Software Updates on the user's choice of available media and the most recent documentation . Support services are not provided but are available upon request. • Self-Maintenance Service for Software. This contractual service Includes SPR forms, a subscription to software product and documentation updates. and a newsletter that provides up-to-date Information on the software product. INSTALLATION Upon delivery 01 the system DIGITAL's Field Service account representative schedules Installation of the hardware components. During installation Field Service engineers supervise the uncratlng and placement of equipment. cable connection, and power-up of components. They lest the hardware by running 8 diagnostic package and , once hardware reliability Is confirmed, they coordinate with software support personnel to Install and test the o perati ng system. Finally, DIGITAL Field Service and Software Services complete forms thai certify successful installation, and the cus- tomer acknowledges system acceptance by signing the Field Service labor Accounting and Reporting System form. Profeulonal Services Whenever expert software assistance is needed, DIGITAL's software consultants afe available. These soft· ware specialists are experienced deSigners and writers of custom software who can tailor DIGITAL software to specific needs. Their expertise can be applied to any phase of an application - from analysis through Implementation. SOFTWARE SERVICES DIGITAL's Software Services organization specialists are committed to maintaining high-level support for TOPS-20 software. They have the knowledge and experience necessary to analyze the user's needs and to Identify and deliver the DIGITAL services that will help satisfy those needs. In add ition to local Software SpecIalists. backup support from regional and corporate levels is available when necessary. DIGITAL's total software resources and expertise are available to support TOPS-20 and its various dependent products. Software specialist services are available on a resIdent or per-call basis. • Resident service Is for users who need lull-time, onslte support. Aesldent consultants are particularly uselul in new, complex installations or in critical, long-term proJects. Residents are available for a minimum of six months; however, arrangements can be made to extend the length of service to suit Individual needs. • Per-ca11 service Is for customers with irregular or Infrequent consulting needs. Per-call (hourly) services are ordered as needed and generally extend from a few days to a few weeks. Software Warranty TOPS-20 Is a DIGITAL-supported software product engineered according to corporate quality standards. It operates in accordance with Its Software Product Description (SPO). and carries DIGiTAl's commitment to provide support servIces lor the product. TOPS-20 must be Installed by a qualif ied DIGITAL representative to qualify lor software support. You can learn more about DIGITAl's software services by contacting your local OIGITA.L sales office. DIGITAL-supported software products receive a 90-day warranty following Installation. If. during the 90 days of w arranty, a problem wlth the soltware Is encountered that DIGITAL determines to be caused by a defect In the current, unaltered release of the product. the following remedial services are provided. • If the software Is Inoperable, DIGITAL will apply a temporary correction or make a reasonable attempt to dev~op an emergency by-pass. EDUCATIONAL SERVICES DIGITAL provides comprehensive educational programs to train users before, during, and after system Installation . Instruction In system management. operations, hardware, and software is given by trained specialists at DIGITAL's worldwide training centers. Special onslte training and custom courses can also be arranged . • DIGITAL will help the customer prepare a Software Performance Aeport (SPA). Using an SPA, users can report problems with, or suggest enhancements to, DIGITAL's software or documentation, Course Option. Courses fall Into three general categories: • Generic Computer Courses. These provide a technical foundation for personnel whose computer experience Is limited. • Software Systems Courses. These are designed to train users, programmers, and operators to efficiently and knowledgeably use DIGITAL's operating systems, languages, and utilities. Courses are available for both beginning and advanced users. The student is assumed to have general computer and programming knowledge. • Hardware Courses. These are designed for customers who Intend to service their own equipment or who want a general understanding 01 the components In their sys- A fter the Initial purchase of a DIGITAL-supported product license, additional copies can be purchased. These can Inel ude support services or can be purchased as a " lIcense-to-Copy only," in which case neither media nor support services are Included. TOPS-20 includes the standard services defined In the TOPS-20 SPD. See your sales representative for these details. Software Product Services After the 9O-day warranty period, two levels of Software 11-1 tern. Courses In generat hardware familiarization , hard· ware troubleshooting, and hardware maintenance are offered. The courses can be iectureltab series regularly scheduled to be taught at DIGITAL Training Centers, onslle courses available by arrangement, or packaged courses. • Onslte courses. Educational Services can conduct group training courses at any convenient location such as a customer's offIce or a company's training center. Onslle Instruction eilmlnates travel expenses and allows DIGITAL Instructors to emphasIze points of particular value to Individual applications and operations. • Packaged courses. Designed for students who wish to learn computer fundamentals and TOPS·20 at a seltpaced rate, these packaged courses are portable, selfcontained, and modular In format. They are available either as audIo/visual courses or selt-paced Instruction (SPI) workbook courses. Audiovisual (A/V) courses use a combination of filmstrip/tape or videotape and workbooks. Among the AIV courses offered are Introduction to Data Communications and Introduction to Digital Logic. Sell-paced Instruction courses use a workbook with explanatory text, examples, and exercises. Among the SPi courses available are DECSYSTEM-10/20 DBMS Concepts, DECSYSTEM-20 Operator TraIning , and Programming In FORTRAN. For users with special needs, Educational Services can create a course tailored to unique applications, needs, and schedules. These can be completely new or modifications of existing courses. Custom courses can be conducted at a DIGITAL Training Center or at a user's training center. Contact your sales representative lor full details. TOPS.20 Course. DIGITAL Educational Services offers a comprehensive software training program designed to address the need, of all levels of TOPS·20 users. The courses consist of both sell-paced and lectureltab courses that stress practical, job-relevant skills required by TOPS-20 users, applications programmers, and system programm8f"s. There are 12 TOPS·20 courses. Users' job requirements dictate course content, and students can choose courses from the approprIate sequence. Figure 11-1 Is a course flowchart. The option to combine lectureltab and selfpaced instruction courses gives students the convenience of learning at their own speeds and at their job sites, and also the benefits of Instructor aid and the practical experience obtained In classroom and laboratory sessions. The following are brIef descriptions of the DECSYSTEM20 courses shown In Figure 11-1. TOPS·20 User provides a DECSYSTEM-20 software and hardware overview and teaches students how to use the program development features of the system. Disk file organization, system utilities, command language, and the batch system are covered. TOPS-20 AdmInIstratIon trains students In the skills need- ed to administer a TOPS-20 system from startup and shutdown to system Installation. Disk file organization, man· agement of resources, operation procedures, and system security are also taught. TOPS-20 Operator teaches operator duties and the basic system procedures: startup, shutdown, recovery, backup, and lile restoration. TOPS-20 Assembly Language Programming covers the DECSYSTEM-20 Instruction set and the MACRO Assam- I I I OI'(RATDA .mE> ......... SYIlUl PROGIWOIEII ASSEMBLY UNGUABE APftJCAnoN PROGfWliIIIEA COIOt APPUCAnON PROGIWlMEJI Figure 11-1 TOP$·20 Courses 11-2 • A comprehensive site management guide bier. Students learn to write programs that use monitor calls and the MACRO library and to use Dynamic Debugging Technique. Field Service's other onslte maintenance plan Is called Basic Service. DesIgned for customers who do not require a fixed response time and continuous remedial eHorts, Basic Service provides: • Next·day response • Remedial service during coverage hours • Priority-problem escalation • Preventive maintenance during coverage hours • Parts, labOr, and materials • Instatiatlon of the latest engineering change orders • An assIgned service representative • A comprehensive site manegement guide TOPS-20 COBOL teaches how to write COBOL applications programs under the TOPS·20 operating system. This course assumes the user has prior knowledge of COBOl. TOPS-20 System Programming covers system controls, the accounting package, and advanced system calls. TOPS-20 Applications Programming Techniques emphasizes the techniques that can be used to take advantage ot system facilities with anention to the best overall design of an application In the timesharing or production environment provided by TOPS-20. This course assumes the user has prior knowledga of COBOL and FORTRAN. Although standard coverage for both onslle service plans Is eight hours a day, five days a week, customers cen opt to extend their service coverage to 12, 16, or 24 hours, Includ ing weekends and holidays. TOPS·20 Operating System teaches the structure and the basic components and functions of the monitor with emphasis on the batch system, command processor, and the monhor's allocation and manipulation of system re- sources. Hardware maintenance on a per· call, IIme-and·materlals basis Is also available. DECSYSTEM-70120 DBMS Concepts Is an Introduction that covers basic concepts and terminology, compares the Inherent TOPS-20 data management system and DBMS data management, and discusses their suitability to various applications. More Information Is available on DIGITAL's Field Service hardware maintenance offerings from your local DIGITAL sales representative. COMPUTER SPECIAL SYSTEMS Computer Special Systems (CSS) provides design services and resultIng repeat products to DIGITAL's customers. Analysts, engineers, programmers, and manufactur' Ing specialists can provide hardwere and softwere to customers whose needs are not met by DIGITAL's standerd product offerings. In addition, Is represented by Marketing Representatives In the field. TOPS-20 Monitor Intarnals covers the monitor In depth, beyond the structural level, for the programmer responsl· bIe for monitor patching and problem detection. Module organization, monltor database, and Internal algorithms are stressed. ess TOPS-20 Database Management System gives managers, systems programmers, and applications programmers both the conceptual understanding and programming skills necessary to Implement DBMS systems. ess provides custom systems and products In all of DIGITAL's markets. Products and systems are analyzed, designed , and Implemenled according to each customer's goals and requirements. These products can range from simple processor Interfaces to complete hardware and software systems. All products carry DIGITAL's high standard of quellty, documentation. and field support. CSS design and project management services, evallable on a contrect baslS, lnclude: • Interfacing DIGITAL hardware with thet of other manu· facturers, modifying standerd hardware, and designing end building new equipment • Designing and producing diagnostic systems and applications software, mod ifying and expanding standard DIGITAL software systems. or building new software according to Individual needs • Building complete hardware and software systems for project managers oversee the speclel eppllcatlons. analysis, design , and Implementation of the system and work with the customer to ensure proper Installation and stert-up OECnet-20 presents the network communications products of TOPS-20. Major emphasis Is placed on the software required to support network Interaction. In particular, the data structures, message formats, and Interectlon between software modules are described . HARDWARE SERVICES DIGITAL's Field Service organization oHers a range of post-warranty hardware maintenance services. More than 10,000 Field Service personnel In over 400 locations worldwide are ready to provide the support needed for contlnUQ1Js productivity. DECservlce Is DIGITAL's most comprehensive onsite maintenance ptan. It Is designed lor customers who require uninterrupted system performance. DECservice Includes: ess • Four-hour response time • Continuous-eHort remedial service • Priority-problem escalatlon • Scheduled preventive meintenance • Parts, labor, and materials • Installation of the latest engineering change orders • An assigned service representative Add itionally, customers cen receive DIGITAL's broad range-of support services with any CSS system . Hardware Is supported by DIGITAL's extensive Customer Service organization. Training Is available for allespects of systems. ess 11·3 The CSS solution puts DIGITAL's technology and experience at each customer's fingertips. II provides a cost-effectIve system desIgned for a specifIc appllcalfon and backs the fInal product with high-quality service. Contact your nearest DIGITAL sales office for further details. CUSTOMER FINANCING To simplify Ihe fInancIal consIderations Involved In acquIrIng a new computer, DIGITAL provIdes leasing and IInanclal counseling. The Customer FInance Department can help customers acquire a DIGITAL system through a lease, conditional sale, or similar financing agreement, rather than an oUlright cash purchase. For commercial businesses or private organizations DIGITAL has developed a program known as DIGITAL leasIng with the U.S. leasing Corporallon of San Francisco. DIGITAL leasing , a dIvision of U.S. leasIng, Is committed solely to IInanclng DIGITAL computers. Representatives are located In or near many of the DIGITAL District Sales OffIces. Federal, stale. and local government agencies have special contraclual needs and , In some cases, can benefit from special tax privileges. For example, a slate or municipal agency qualilies for special Interest rates on Conditional Sales Agreements, rales that are slgnlflcanlly lower than Ihose charged 10 commercIal customers. The Inlerest Income is free from federal and , In some cases, state income taxes. The fOllowing IInanclng Is available: Full Payout lease. Conditional Sales Agreement, and Federal Government lease to Ownership Agreement. • Full Payout lease - This Is used primarily by commercial customers. II Is noncancellable, lasts three to five years, and usually has a 10 percent purchase option at Ihe end . No down payment Is required, and title remains with the lessor. Flexible lease payment schedules can be tailored to specific needs. • Conditional Sales Agreement - This type of financing Is used primarily by state and local governments. It Is noncancellable, and lasts one to five years. TIUe passes to the customer, but DIGITAL retains a security Interest. The customer owns the equipment free and clear at the end of the term . Fiscal funding provisions are available for state and local governments. • Federal Government lease to Ownership Agreement _ This Is available only to approved federal government agencies. It lasts one to five years, and is cancellable at the end of each fiscal year for nonapproprlatlon of funds. Ownersh ip passes to the customer at the end of the term . DIGITAL's Customer Financing group can provIde financIal counseling to help you decide which arrangement is best for you. For more Information, conlact your local DIGITAL sales office. d irect factory ordering, the Direct Sales Catalog, and worldwide support for theIr products. ASCs are full-service centers established to fulfill the needs of DIGITAL customers In major metropolitan areas. The ASCs hOld a local Inventory of the most requested accessories, supplies, documentation, and add-on products, for fast delivery. Full order processIng capability prOVIdes access to A&SG's central Inventory In Nashua, New Hampshire. ASCs provIde first-class service and conV9nlenceto DIGITAL's customers. A&SG maintains a toillree telephone number lor custom. ers to use when ordering accessories and supplies. The majority of products are shiPPed within 48 hours of receipt of order. A&SG 's Direct Sales Catalog offers a broad range of com· puter accessory and supply Items. These Include small computer systems and their complementary options, ac· cessorles, and operating supplies. The Direct Safes Csta· log also features some DIGITAL hardware options such as DECwriters, microcomputers, and associated options. Hardware and software documentation Is also offered. A&SG has a team of worldwide specialists and business managers to support sales. This sales force is located in the United States, Europe, and the General international Area (GIA). COMPUTER SUPPLIES DIGITAL's Computer Supplies group maIntains B complete line of supplies specifically designed for use with DIGITAL systems. These items facilitate reliable and effl. clent system operation and Include: • A family of magnetIc media such as disk cartridges, disk packs, and floppy diskettes • Sell-contained disk cartridge cleaners lor lasl and effl· clent cleaning of front-loading or top·loading magnetic disk cartridges • Word processing supplies such as nylon and mylar ribbons. 11 types of print wheel, and filter screens for video terminals • Ribbons for DiGITAL's DECwrlter and DECprlnter terminals The Computer Supplies group also offers computer cabinetry for maIntaining supplies and protecting magnet· ic medIa not In use. Cabinet interiors cen be customized with various options to meellndlvldual needs. Options can be conveniently rearranged or changed at any time to adapt to future requirements. Also available are paper baskets, work shelves, terminal lables, tape racks, papertape trays, and multipurpose binders. Relying on DIGITAL for compuUng needs means a savings In lime, money, and paperwork. Contact your sales representatlve for further information. CUSTOMER SPARES ACCESSORIES AND SUPPLIES GROUP Customer Spares Is dedicated to supporting customers who maintain their own computers. Customer Spares Is organized Into three dlstlncl businesses: self-maintenance DIGITAL's Accessories and Supplies Group (A&SG) maintaIns Accessories and Supplies Centers (ASes) and oilers 11-4 & DECUS headquarters, located In Marlboro, Massachusetts, administers all international policies and activities. DECUS is subdivided Into four chapters: products (hardware and documentallon). system accessories, and low-volume lSI·l1 products. System accessories Include products geared to the hardware builder. They allow easy expansion and (econflguratlon of DIGITAL sys- tems and optrons. Customer Spares sells modules, subassemblies, components, tools, and test equipment. Related services Involve providIng aSSistance In selecting the proper parts and expediting delivery during emergency situations. DEC US OECUS, the Digital Equipment Computer Users Society, is one oltha largest and most active user groups In the computer Industry. It Is a not.for-prollt association supported and admInistered by DIGITAL but actively controlled by Individuals who have purchased, leased, ordered, or used a DIGITAL computer or who have a bone fide Interest In DECUS. Membership Is free and voluntary. The goals of DECUS are to: • Advance the art of computation through mutual educatIon and the exchange of Ideas and Information • Establlsh standards and provide channels that ease the exchange of computer programs DECUS AUSTRALIAN CHAPTER (Australia, Brunal, New Zealand. Malaysia, Singapore, Indonesia, PNG) DECUS Australia P.O, BoII:W Chatswood NSW2067 Australia DECUS EUROPEAN HEADQUARTERS (Europe, Middle East, North Alrlca, Eastern Europe) DECUS Europe P.O. BOil: 510 12, Av. Des Morglnes CH·1213 Patil·laney lJGE Swltz&fland DECUS CANADIAN CHAPTER OECUS Canada P.O. Boll: 13000 Kanata. Ontario K2K, 2A6. Canada DECUS UNITED STATES CHAPTER (lor U.S. and an others) DECUS International Headquarters Digital Equipment Corporallon MR2·3/E55 One Iron Way Marlboro, MA 01752 U.S.A To further the goels of the society, DECUS serves Its members by holding symposia; maintaining a program library; publishing an association newsletter, technical newsletters, and books; and supporting a number of special user groups for special interests and locations. • SymposIa - These are regularly scheduled meetings held in each of the four chapters. They provide a forum In whIch users of DIGITAL products can meet with other users and with DIGITAL management, engineering, and support personnel. Symposia give users an opportunity to participate In DIGITAL product workshops and product planning feedback sessions. Many of the technical papers and presentations from each symposium are published as a book , the DECUS Proceedings. Copies of the Proceedings are supplied to all symposia attendees and can be purchased by any DECUS member, • Provide feedback to DIGITAL on hardware and software need. • Advance the effective use of DIGITAL computers, peripherals, and software by promoting the Interchange of information • Program Library - A major activity of DECUS Is the Program Library. It contains over 1,700 active software packages written and submitted by users. A wide range 01 software Is offered Including languages, editors, numerical functions, ulllitles, display routines, games, and other types of application software. Library catalogs are available for the PDP-8, PDP-l1/VAX, DECSVSTEM10/20. Catalogs are updated yearly and contain program descriptions and ordering Information. The programs are available at nominal service charges that cov· er the cost of reproduction and media. • Association Newsletter - Each DEC US chapter publishes and distributes to all chapter members a newsletter of general DECUS news. • Special Interest Groups - The focus of these groups Is on operating systems, languages, processors, and applications. User groups are formed basically by geographical proll:lmlty, but can also share common specific Interests. Many of these subgroups publish newsletters. You can obtain a membership form for OECUS by contactIng the appropriate chapter office. 11-5 The Glossary glos·sa-ry (gI basic tee cal ject or field, wit t glossa GLOSS2] -gloa/sa-rist, Absolute address A bInary number assIgned as the ad M dress of a fixed memory storage location. Absolute virtual address A fIxed locatIon in user vIrtual address space whIch cannot be relocated by the software. However, It cen stili be translated to a physical address by the hardware. AC AND A logical operation such that the result Is true II all conditions are true; otherwise the result is false. Refer to Accumulator. ANSI American National Standards Institute. An organization that develops and publishes Industry stanM dards. Aceess privileges Attributes of a lIIe which specify the class of users allowed to access the file and the type of access they are allowed. APl A Programming language. A problem-solving Ian· guage with special features for handling arrays and for performing mathematical functions. Access time The time between requesting a data trans· fer with a storage device and transferring the first bit. Application program A program written lor or by users that applies to their own work. Account name An identifier that Indicates a user ac· count for both fite structures and file access. Archival tape. Account validation A program within the operating sys· tem that is used to verify account names. Storing a file of unChanging data on magnetic Argument An Independent variable. For example: 1. A variable or constant which is given In the call of a subroutine as information to II. 2. A variable upon whose value the value of a function depends. 3. The known reference factor necessary to lind an Item in a table or array (I.e., the index). Contrast with subcomm8nd. Accumulator A hardware register and its associated equipment In the arithmetic unit In which data can be placed while the data Is beIng examined or manipulated. ActIve process A process considered by the operating system to be runnable. Arithmetic unit The component of a computer where arithmetic and logical operations are performed. Part of the central processor. Address 1. An Identification represented by a name, laM bel, or number lor a regIster, a locatIon in storage, or any other data source or desllnatlon In memory or on an adM dressable storage device. 2. The part 01 an Instruction that specifies the location of an operand of the Instruction. ARPANET Advanced Research Project Agency Network Array An arrangement of elements In one or more dl· menslons (I.e., an ordered arrangement of subscripted variables). Address constant A value or expression used In calcuM lating absolute or virtual storage addresses. Addressing Means by which localfons In storage are specified or computed. Addresses may be specified as absolute numbers or may be computed using absolute values combIned with the contents of registers. The address computed may be used In an instruction or It may indicate the location of the address to be actually used In the Instruction. ASCII American Standard Code for informatIon Interchange. A 7-bil code In which textual information is recorded. ASCII can represent 128 dlslfnct characters. These characters are the uppercase and lowercase letters, numbers, common punctuation marks, and special control characters. ASCII charecter set ters. Address mapping The assignment of user virtual address space to the physical address space In computer memory. ThIs Is automatically performed by the monitor and Is completely Invisible to user programs. The set of 128 7Mblt ASCII charac- Assemble To translate from a symbolic language program to a machine language program by substituting binary operation codes lor symbolic operation codes and absolute or relocatable addresses for symbolic addresses. ALGOL ALGOrithmic language. A scientifically oriented language that contains a complete syntax for describing computational algorithms. AlGOTS Analog Dealing in continuous variations or gradations, as contrasted to discrete (In steps) variations. PertaIning to data in the form of contInuously variable physIcal quantiM ties. Assembler A program which translates symbolic programs Into machine language programs and assigns memory locations for variables and constants. The ALGOL Object Time System. Assembler directive The mnemonic used In the assembly language program to control or direct the assembly process. Alphanumeric Pertaining to the characters which Include all the letters of the alphabet and the numerals 0 through 9. Assembly language A symbolic language that translates directly into machine language InstructIons. Usually there Is one-Io-one relation between assembly language Instructions and machine language Instructions. Al TMODE A terminal key which is used to end some command strings. See also ESCAPE. G·, Allembly liSting A printed list which Is an optional byproduct of an assembly run. It lists In sequence the symbolic code written by the programmer next to a representation of the actual machine Instructions generated. The contents of the assembly listing are mostly under the control of the programmer. Alle mbly ti me The time at wh ich the assembler translates the symbolic machine language statements into mach ine Instructions. Assigning a device Associating an 110 device with the user's job either for the duration of the job or unlilihe user relinquishes II. Asynchronous 1. Pertaining to the procedure by which the hardware can begin a second operation before waiting for the first operation to be completed . 2. PertaIning to the method of data transmission In which each character Is sent with Its own synchronizing Information and no fjxed time between consecutive characters. Backg round program A program operating automatically at low prIority, when higher priority (foreground) programs are not using system resources. Backspace To move backwards the logical poSitIon In a file or on a line according to a prescribed format. For example, magnetic tape units can be backspaced over a file or a record . Some terminals allow backspacing to permit overprinting . Backup fil e A copy of e file created for protection In case the primary file Is Inadvertently destroyed. Balance set The set of processes eligIble to run and whose working sets fIIlnto memory simultaneously; periodically redefined by the schedu ler. Base address An address used as a basis for computing the value of some other address. This computation Is usually of the form: final address . base address (+ or -) offset. BASIC Beginner's All-purpose Symbolic Instruction Code. An easily learned Interactive computer programming language. Batch mode A system state in which programs are run consecutively without terminal Interaction, as opposed to timesharing. Batch processing The technIque of executing a set of computer programs without human InteractIon or direction during their execution. Batch stream A collection of balch command strings which are executed successively without the Intervention of an operator. BATCON The Batch Controller. This program reads a Job's control file, starts the job, and controls the Job by passing commands and data to II. Baud A unit of signaling speed equal to the number of G-2 R signal events per second. Baud Is the same as bits per second when each signal event represents one bit. Baud rate A fixed amount of time devoted to sending a binary digit or bit. Binary A characteristic, property, or condition In which there are but two possible choices; for example, the binary number system , using 2 as Its base, has the digIts 0 and 1. Binary code A code that uses two distinct characters only, usually 0 and 1. Bit map A table describing the allocation of space or resources. For example, each bit In the table Indicates the slate of one segment 01 storage. as a block on a bulk storage device. BLISS-36 A programming language that enables users to write programs consisting only of declarations that establish structure, and expressions that compute values. It Is designed for Implementing system software. Block (In a program) A segment of a program or a group of Instructions In a program that performs some fun ction that Is aloglcatly distinct subtask of the entire job. Bootstrap A routfne or device desIgned to bring Itself Into a desired state by means of Its own action, e.g., a machine routine whose first Instructions are sufficient to bring the rest of the routine Into the computer from an Input device. Bootstrap loader A routine whose Ilrst few instructions are sufficient to bring the rest of the routine Inlo the computer from an Input device. Branch A transfer of program control Instruction execution from one place In storage to another. Breakpoint A locallon where program operation Is suspended to examine partial results. Breakpolnl s are used In the debugging process. Buffer A temporary storage area that may be a special register or an area of storage. Buffers are oHen used to hold data being passed between processes or between devices which operate at different speeds or different times. Bu s A circuit over which data Is transmitted. Byte unit. A sequence 01 adjacent binary bits acted upon as a Byte man ipulation The ability to manipulate, as Indlvldual lnstructlons, groups of bits as characters. Cache memory Very fast semIconductor memory, usually small in size. Call A branch, usually from one program to another. Usually implied Is the ability, via appropriate Instructions, to resume the first program from the locallon Just following the point from which the origInal branch was made. .. which Is set aside for common use by meny modules. COMMON Is usually set up by modules written In the FORTRAN language. It Is used by Independently complied modules to share the same data locations. Card column One of the 80 vertical lines of 12 punching positions on a punched card. Card fleld A fixed number of consecutive card columns assigned to a unit of Information. Communication hardware Devices such as terminals, modems, and acoustic couplers used for transmission, switching, and termination of communication. Cerd hopper The tray on a card processing machine that holds the cards to be processed and makes them avallable to the card feed mechanism . COAIVE Communication link The physical means of connecting one device to another for transmitting and receiving data. Thecardreader driver. Central Processing Unit (CPU) 1. The part of the computer that moveS values, does arithmetic, and performs comparisons and other manipulations, as well as keeping track 01the current instruction, storage location, and operand addresses. 2. The unit of a computing system that Includes the circuits controlling the InterpretatIon and execution 01 Instructions. Communication procelSor A computer dedicated to performing complete communication functions such as message switching and data concentration. Communication software Software written to explicitly control communication between systems. Compile 1. To produce a blnary-<:oded program from a program written In source (symbolic) language, by SelectIng appropriate subroutines from a subroutine library, as directed by the Instructions or other symbols of the source program. The linkage Is supplied for combining the subroutines Into a workable program, and the subroutines and linkage are translated Into binary code. 2. To prepare a machine language program from a computer program written In another programming language by making use of the overall logic structure of the program , or generating more than one machine Instruction for each symbolic statement, or both, as well as performing the function of an assembler. Central site The location of the central computer. Used in conjunction with remote communication to mean the locallon 01the central processor as distinguished from the location of the ram ate station. Channel l . A path along which signals can be sent; for example, data channel , output channel. 2. The portion of a storage medium that Is accessible to a given reading station; lor example, track, band. Character-orlented character. Operations performed on a single Checkpoint A place In a routine where a check or a recording 01 data for restart purposes Is performed . Compil e r A program wh ich translates a high-level source language Into a language suitable tor a particular machine. Closed subroutine A subroutine that can be stored at one place and called from one or more calling routines. Contrast with open subroutine. Complement One's complement - to replace every 0 bit with a 1 bit and vice versa. Two's complement - to form the one's complement and add 1. COBOOT The COBOL Dynamic Debugging Technique program. Computer network nected computers. COBOL Common Business Oriented language. A programming language used in business data processing applications. A complex of two or more Intercon- Concealed submode A user submode that contains proprietary Information . COBOL complier A program that translates COBOL language statements Into machine language programs. Concurrent processi ng The processing 01 two or more actlvilles within the same Intervel of time. COOASYl COnference on DAta SYstems language. The conference that developed COBOL Configuration A particular selection of computer, peripherals, and Interfacing equipment that function together. A list of the devices and computers of a computer system. Command The portion 01 an Instruction word that specifies the operation to be performed. Connect tl ma A measure of system usage by a user, usuelly the time Interval during which the user terminal was online during a session. The wall-clock time between login and logout. See also: CPU lime. Command language The set of commands with which the user informs the operating system of the desired func tion . Command processor A componen t of the operating system that reads and Interprets commands Issues by the user. Comm and atrlng A group of commands In a single line. Console (CTY) The part of a computer used by the operator to determine the status of, and to control the opera· tlon of the computer. The console has controls and Indicators used for manual operation of the computer. C O M MON area Context switchi ng A section In a program's address space G-a The saving of sufficient hardware and software Information of a process so that It may be continued at a later time, and the res toring of similar Information relevant to another process. A common example of context switching Is the temporary suspension of a user program so that the monilor can execute a monitor call. Control fil e The user-made file that directs the batch system In the processing ol the user's job. Control character A character whose purpose Is to control an acllon, such as a line spacing, pagIng, or termination of a job. Controller A devIce or portion of a device that controls the operation of connected units. CPl Conversational Programming language. CPU time A measure of system usage, based on the total amount of central processor time used. See also: connect time. CREF A program which produces a sequence-numbered assembly IIsling followed by tables showing crossreferences for all operand-type symbols, all user-defined operators, or aU operation and pseudo-op codes. Cross-reference listing A printed listing that Identifies all references in an assembled program to each specific label, macro, and/or operation code. CTY Refer to Console. Cylinder The tracks of a disk storage device that can be accessed without reposItioning the access mechanism. Database A collection of related data Items processable by one or more applications. Database management A systematic approach to storIng, updating, and retrieving Information stored as data items. Data channel The device that passes data between the memory system and a device controller. Data Manipulation language (DMl) The language used by the programmer to cause data to be transferred between a program and the data base. An Incomplete language by Itself, It requires a host language. DDT The Dynamic Debugging Technique program used for online checkout, testing , examination, and modification of object programs. DDCMP Digital Data Communications Protocol. A uniform discipline for transmitting data belween nodes In a polnt-Io-polnt or multipoint communication system. It governs parallel, serial-synchronous, or serial-asynchronous transmission and receipt of data. Default value The c hoi ce among excl u sive options made by the system when no explicit choice Is specifled by the user. Delimiter A character that separates, terminates, and organizes elements of a statement or program. Demand paging 8rlnglng into memory only those pages that are referenced, and bringing each page into memory when It Is first referenced . Device directory listing A list of all Illes on a specified device. The list contains all flies with assocIated creallon dates, total Iree blocks on the device, and number 01 blocks used by Illes. Device handler or routine Roullnes that perform 1/ 0 for specillc hardware devices. They usually translate logical block numbers to physical addresses lor those devIces that associate addresses with data. These routInes also handle error recovery and provide device Independence In operating systems. Device Independence The ability to request 110 operatIons without regard to the characteristIcs 01 specIfic types of 110 devices. Diagnostic program A program that facilitates ma intenance by detection and Isolation 01malfunctions. Direct address An address that specllles the location of an operand. Contrast with Indlrecl address. Directory device A storage retrieval device, such as a disk, that contains information describing the names of files and the layout of stored data. A directory of these files is maintained on the device to locata the Illes. A directory device must be randomly accessible. Distributed network A network configuration in whIch all node pairs are connected either dIrectly, or indirectly through intermediate nodes. Double preCision The use of two computer words to represent a single number. Dump 1. A listing of varia bles and their values, or allslIng of the values of locations in memory. 2. To copy the contents of all or part of a storage medium, usually onto another storage medium. Effective address An address computed by taking all the components Indicated In a given Instruction (such as absolute value. contents of base register or instruction location register, Index registers, elc.) and combining them to obtain a single address value. ENO/ DEO facility A ll ows cooperating processes to share resources and facilitates dynamic resource allocalion using the ENQ and DEO monitor calls. ESCAPE A control key on a terminal that Is used for com mand recognition and to end some command strings. Debugg ing The process 01 locating any errors In a program, and correcting them. Exclusive OR A logical operatIon such that the result is G·' . . . . . . . . . . . . . . ._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 4 . true II one and only one operand Is true, and false other. wise. EXEC Inlormal name for the TOPS·20 Command Proc. essor. Contains routines which handle TOPS·20 com. mands. These commands Interact with Ihe monitor. An interrupt caused by a device Frozen accen A type of access In which a flle can be concurrently accessed by at most one user writing the l1Ie, but by any number of users reading the file. An error from which a program cannot re.- Frozen proce.. A process whose execution Is suspended so Ihatltcan be continued where it was suspended. External interrupt conlroller. Fatal error cover. Front-end processor The RSX·20F monitor. Controls slow 110, main memory, and communication devices; transfers data from such to rear-end memory. FOB File Descriptor Block. Each tile has an associated FOB that contains data concernIng the file. An FOB may be up to 36 words. Field A fixed number 01 consecutive characters asSigned to a unit of information. FILDDT File Dynamic Debugging Technique. A version of DDT used for examlng and changing a file on disk Instead of In memory. This program Is used to examine a monitor lor debugging purposes. File A collection 01 records. An organized collection of information directed toward some purpose. File-structured device A device on which data is given names and arranged Into flies; the device also contains d irectories of these names. Usually synonymous with d irectory device. Full-duplex operation Simultaneous, two-way communIcation between two pOints. General register A register used lor operations such as binary addition, subtraction, division, and multiplication. General registers are usually used to modify an address. Generation numbe, A number aSsociated with every file that Indicates the number of revisions of that file that have occurred. Every time the user edits the file, the generation number Is typically Increased by 1. Global A value dellned In one program module and used In others. Globals are often called entry points In the module where they are defined and externals In the other modules that use them. Global symbol A symbol accessible to modules other Ihan where It is defined. The value of a global symbol la placed In the loader's global symbol table when the module conlalnlng the symbol definition Is loaded. File descriptors Identifiers that describe an attribute of a file. There are three types of lIIe descriptors; protection numbers. account descriptors, and temporary tile descrlp. tors. Guide word A word output when you use recognition that Indicates the type of argument that you can give lor the next field. File pOinter Indicates the last byte read from or written to an open file. Half-duplex Refers to an alternate, one way at a time, Independent transmission between two points. File protection code A code assigned to each file to specify the access rights to the file. Hardcopy A printed copy of machine output In a visually readable form. Flag A variable or register used to record the status of a p rogram or device. In the latter case, also caJled a device fla g . Hardware Physical equipment, as opposed to a computer program or method of use. Floating pOint A method for storing numeric data where one part represents the position of the radix point (the e xponent partj, and another part represents the significant d ig it s (the fractional partj. Host language A language Into which the Data Manipu_ lation language is Integrated to perform actions on the database. The host language, for example, FORTRAN or COBOL. Is used to manipulate the data once it Is in main memory. Aoellng-polnt binary A method for storing numeric data w here the exponent occupies the first byte and the mantis. sa resides In the next three or seven bytes. Used in FORT RAN IV representation. Indexed addre.. An address lormed by add ing the contents 01 an Index register to the contents of an address field prior to or during the execution of a computer instruction. FORDDT Indexing A programming technique In wh ich different locations are addressed by systemallcally changing the contents of an Index register. The program uses the contents of the index register to compute the effective address. FORTRAN's dynamic debugging tool . FORTRAN Formula Translator. A procedure-oriented programming language deSigned for solving scientifictYpe problems by expressing the procedure for their solution as arlthmellc formula. FOROTS Index reglate, A register whose contents are used In computing addresses. The common lunctlon of such a FORTRAN's obJect lime system G·5 rr~------------------------------------------------------------------------------ -or register Is to allow for convenient modification of addresses during program execution. Job A set of one or more related processes normally under control of a single user. Indlre.ct address An address which indicates a storage location where the address of the referenced operand or another Indirect address Is to be found. Contrast with direct addrsss. Job number Inferior procelll A process created by a superior process with the PUSH command. Inferior processes run under the same Job 8S the superior process that created them. JSB Job Storage Block . A table which contains all data relevant to a given job. Job status word A word containing bit flags Indicating the status of the program currently in memory. Kernel mode The executive submode in which I/O and system-wide functions operate. Code executed in kernel mode can access and alter aU of memory. INFO The central information utility for IPCF. 11 performs functions associated with names and PIDs. LlBOL Input buffer computer. A number assigned to ajob at login time. The CQBQLobJect time system. A temporary storage area for Input to the Library A collection of standard routines available to several programs. Instruction A bit pattern Interpreted by the computer as 8 d irection to take 8 speclllc action. Link To combine independently translated modules Into one module In which all relocation of addresses has been performed relative to that module and all external references to symbols have been resolved based on the definition of Internal symbols. Instruction format The allocation to a specific function of bits or characters of a machine Instruction. Linker A program that combines many Input modules into a single module prior to loading. Thus, it allows for Independent compilations of modules. Typically, It satisfies global references and may combine control sections. Instruction set A set 01 Instructions that a particular computer can perform. Interleaving To arrange parts 01 a sequence to alternate with parts 01 another sequence. The sequence can be things or events, and more than one sequence can be Interleaved. In Interleaving, each sequence retains Its Identity. Linking loader A program that provides automatic loadIng, relocation, and linking of complier and assemblergenerated object modules. Internal storage Addressable high-speed storage directly controlled by the central processing unit. Load module The output of the linker. A program In formatted binary form ready for loading and executing on a computer. Interpreter A computer program or routine that translates and executes each source language statement before translating and executing the next one. Local terminal A terminal connected directly to the computer. Contrast with remote terminal. Log file A file Into which BATCON writes all the Information passing between the job and its controlling terminal. This file can be printed as the final step In BATCON's processing 01 a job. Interrupt A break In the normal flow of control during the execution of a program. When an Interrupt occurs, control can be passed to a specific routine responsible for processing the Interrupt. The term Interrupt Is sometimes used to refar to the condition causing the break Instead of the break Itself. Interrupt service routine ternallnterrupt occurs. Logical name An alphanumeric name chosen to represent a physical device and, optionally. a file name. This name can be used in aU references to the device. Routine entered when an ex- LPTSPL The lineprinter spooler. Takes flies from d isk and prints them on the lineprinter. Interrupt vector add,e.. A unique address which points to two consecutive memory locations containing the start address of the Interrupt service routine and priority at which the interrupt Is to be serviced. Macro An Instruction In a source language that Is equivalent to a predefined sequence of machine Instructions, or a command in a command language that Is equivalent to a specified sequence of commands. IPCF Inter Process Communication Fac ility. Allows processes to communicate with each other via packets 01 Information or messages. MACRO-20 A programming language that Is closer to machine language than a high·level language such as FORTRAN. Also called an assembly language or assembler. JFN Job File Number. The unique Identifier of a particular file on a particular device during the execution 01 a process. Used by the system as an index into the table of files associated with the job. Also known as File Handle. MAILER G·6 A program that allows users to communicate .... th each other by sending and receiving messages In the form 01 data files. Null character A control character that accomplishes media 1111 or tlmallU. M.'n program The module containing the address at which object program execution normally begins. Usually, the main program exercises primary control over the operations performed and calts subroutines to perform specilic functions. Object code Output from a complier or assembler which Is Itself executable machine code. Milk A bit pattern that seiects Irom a word in memory those bits that are to be used In a subsequent operation. A mask can be used to retain or eliminate portions of any word in memory. Ma .. storage An auxiliary storage 01 very large capacity readily accessible to the CPU. Memory pro tection A scheme lor preventing read and/ or write access to certain areas 01 storage. Mode A method 01 operation. Monitor 1. The collection 01 programs that schedules and controls the operallon 01 user and system programs, performs overlapped 110, provides context switching, and allocales resources so that the computer's time Is elliclentty used . 2. The master control program that observes, supervises, controls, or verlfles the operations 01 a system. MOS memory Object module The primary output of an assembler or compiler. It can be linked with other object modules and loaded into a runnable program . Th is outpulls composed of the relocalable machine language code for the Iranslated module (I.e.• link items), relocallon information, and the corresponding symbol table listing the definition and use 01 symbols within the module. Object time system The collection of modules that Is cal1ed by the complied code lor a particular language in order to perlorm various utility lunctlons. This collection usually includes 1/ 0 and trap-handling routines. For example. FOROTS Is the object time system for the FORTRAN language. Offline llIe A lIIe that has been moved from dIsk to tape by either the virtual disk system or the archive syslem. Offline storage CPU. Storage not under the control of the O"set The number 01 locations or bytes relative to the base olan array, string , or block . Metal-oxlde semiconductor memory. Multiprocessing The simultaneous execution of two or more computer programs (i.e.• processes) by two or more interconnected processors sharing a common, Jointly addressable memory. Multiprogramming The apparent simultaneous execution 01 two or more programs on a single computer by timeSharing system components. Operating system Software that controls the execution 01 computer programs and may provide scheduling , debugging , Input and output control , accounting , storage assignment. data management. and related services. Sometimes called the Supervisor, Executive, MonItor, Master Control Program depending on the manulaclurer. OR 1. (Inclusive) A logical operation such that the result Is true If one or more operands are true, and false If all operands are false. 2. (EXclUSive) A logical operallon such that the result is true II one and only one operand Is true, and faise II otherwise. Multitasking The activation of several separate but related tasks under a single program Idenllty. Named tile A name-ordered collection of 36 bits whose length is limited only by the available space on the device and the user's maximum space allotment on that device. Overlay 1. The lechnique 01 repeatedly using the same sections of virtual address space to store different blocks 01 code and data during different stages 01 a program . When one routine Is no longer needed in storage, another roullne can replace all or part of It. 2. One 01 several blocks 01 code and data that potentially can occupy the same section of virtual address space. 3. A segment 01 a program that Is brought Into main memory upon request. Network control program (NCP) The module of an operating system In a host computer that establishes and breaks toglcal connections and communicates with the network on one side, and with user processes within the host computer on the other side. Node Any computer, communicallon controiler, terminal concentrator, or remote station in a computer network. PA10S0 The TOPS-20 Compatibility Package that Is merged with any program that uses TOPS-10 UUO's. It simulates the operation 01 these UUOs by performIng the appropriate JSYSs. Nonresident soHware Programs that reside on the disk until called lor by a user or other program. Nonsharable program has a separate copy. Pack A removable set of disks mounted on a common spindle. A program for which each user Packet A group of words transmitted by means of IPCF to and from Jobs and system processes. No op An Instruction that specifically Instructs the computer to do nothing, except to proceed to the next instruction in sequence. Page G-7 1. Any number of lines terminated with a form feed character. 2. The smallest mappable unit of main memory (512 words). 3. To remove selected parts of a user's pro.gram from memory. Process Identifier An octal number In the ra nge 400001 to 400777 that Identifies an Inferior process to Its superior process. Page Fault When the system tries to refer to a page that Is not In memory. Program Counter (PC) A register that contains the address from which the next Instruction to be executed Is fetched. Paging The process of transmlltlng pages of Information between main and secondary storage. Parallel Processes superior process. Two processes created by the same Parallel processing more programs. Concurrent execution of one or Parity bit A binary digit appended to a group of bits to make the sum of aU the bits always odd or always even. Parity check A check that tests whether the number of ones or zeros in an array of binary digits is correct. This check helps ensure that the data read has not been unln· tentronallyaltered . PARSER A command language that allows commands to be typed at the console and Invokes front·end tasks. Parsing The systematic ordering of the elements In a command or line of cod ing. For example, parSing a FOR· TRAN command places the elements In standard form for the complier. Programmed operators Instructions that, Instead of performing a hardware operation, cause a jump Into the monitor system or the user area at a predetermined point and perform a software operation. The monitor (or special user code) Interprets these entries as commands from the user program to perform specilled operations. Program trap One of the non·hardwlred operation codes that, when decoded by the processor, causes the next Instruction to be executed from a specified address. PROM Programmable Aead·Only Memory. Prompting A system feature that helps users by request· Ing them to supply arguments necessary to continue processing. Protection number A number given to every file that de· lines wh ich users may access the file and what access Is to be permitted to them. PSB Process Storage Block. A table that contains all monitor data for a given process. Password The character string assigned to a user; It Is usually known only to the user and the system. The pass· word Is used to verify that a user Is entllled to run a Job under a specific user name. Pseudo-operation An Instruction to the assembler; an operation code that Is not part of the computer'S herdware command repertoire. Peripheral equipment Any equipment distinct from the CPU that provides the system with outside communlcatfon or add itional faCilities. PTY Pseudo· Teletype. A Simulated terminal, controlled by the monitor, on which a subJob runs. PTYCON Program that controls PTYs. Physlcaladdresa space A set of separate memory loca· tlons where information can actually be stored (I.e., main memory) for the purpose of program execution . QUASAR A program that schedules requests for batch lobs and output peripherals such as the line printer. PIO Process ID. A number aSSigned to each process by INFO and used by IPCF to route messages between processes. Queue A list of Items waiting to be scheduled or processed according to system , operator, or user.assfgned priorities. Pointer 1. A location or register containing an address rather than data. A pOinter may be used In Indirect addressing or in Indexing. 2. An Instruction Indicating the address, position , and length of a byte of Information. RAM Random·Access Memory. Any type of memory with both read and write capability. Polling A centrally controlled method of calling anum· ber of points In some sequence to permit them to transmit information. Priority Interrupt An Interrupt that usurps control of the computer from the program or monitor and Jumps to an interrupt service routine If Its priority Is higher than the interrupt currently being serviced. Process An independent task capable of being run by the mon itor and having a virtual address space of 512 pages. A process Is performed under a Job. Also known as a fork or task. Random Access Describes the process of retrieving or depositing Information In storage where the time required for such access Is Independent of the location of the Infor· matlon most recently retrieved or deposited. Recogn ition Input A method of typing TOPS·20 com· mands in which the user types the unique portion of a command or argument, and then presses the ESC key. The system attempts to recognize what the user wants to type and either prints lis assumption or rings the terminal bell prompting the user to type more. The user can then type more and try for recognllion again. Reentrant program A program conslstfng of sharable G·8 = ..----------------------------- ~ code that can have several simultaneous Independent users. R.g'lter A device capable of storing a specified amount 01 data, usually one word. Relative addt... The specification of a memory loea· lion as an otfsellrom 8 base address. The computer sums the base address and olfset to ascertain the relative ad· dress. ThIs type 01 addressing allows the relocation of Instructions because the system moves all of the data being addressed by the same amount - the offset. REl file RUBOUT A key (also labeled DEL) on the term inal keyboard that erases characters that the user has typed. RUNOFF A program that facilitates the preparation of typed or printed manuscripts by performing formatting , case sh ifting, line Justification , page numbering, tltUng , and Indexing . Run-time Scheduling algorithm An algorithm that determines the order In which competing Jobs are allowed to use resources. A lite containing one or more relocatable object modules. Schema Rllocatable address An address within 8 module that Is specified as an offsetlrom the first location In that module. Sharable program A program wh ich can be used by several users at a time. Shared Pages When the same page 15 represented In more than one process address space. Allows two or more processes to Identify and use the same page of physical storage. Remote batch A feature that allows data 110 and job control of batch processing from a distant terminal over a communication link. Software Interrupt System Interprets the sequential fl ow of program execution under a variety of conditions. Remote Job entry The Input of batch jobs via a cardreader at a remote site and the receipt of job output via a printer or cardpunch at a remote site. Source code Text. usually In the form 01 an ASCII-Iormatted file wh ich represents a program. Such 8 file can be processed by an appropriate system complier or assembler to produce an object module. Remote station Unit record and/ or terminal equipment, located at a distance from a data processing system with which il communicates via communication lines. Spooling The technique by which output to slow-speed devices Is placed Into queues on faster devices (such as disk) to await transmission to the slower devices; this allows more efficient use 01 Ihe particular device, main memory, and the central processor unit. In memory, as opposed to being stored ex- Resource An available portion of the computer's machinery or software. SPRINT The batch Input processor. SPRINT reads any sequential Input stream , sets up the job's controlllle and data files, and enters the Job Into the batch Input queue. Remote Job Entry. ROM Read-Only Memory. A special memory that can be read from, but not written Inlo. SPROUT Root directory ries. High-capacity magnetic storage, Sequential access Obtaining data Irom an 110 device In a serial manner only. Reloeatable symbol. Symbolic names whose associated value Is an offset Irom the base (beginning) of a control section. Such a symbol's value depends on the address 01 the control section and must be relocated each time the control section Is asslgned an address by the Linker. RJE A complete description of a data base. Secondary storage such as disks. Relocatable code Code written so that It can be located and executed In any part 01 memory, once it has been linked by the linker. Resident ternally. The time In which a program Is executed. The card punch spooler. Contains the names of all users' directoSubcommand A qualifier given wlth a command that causes the command to operate In a specific way. Contrast with Argument. Root segment The segment of an overlay tree that, once loaded , remains in memory during the execution of the task. Subjob A job created by another Job running on the same physical terminal as the job that created It. Route through The ability of a node In a network to receive data destined for another node and to forward that data directly to its destination or to another Intermediate node. Subroutine A routine designed to be used by other routines to accomplish a specifiC task. Subscript A numeric valued expression or expression element which 15 appended to a local or global variable name to uniquely Identify specific elements 01 an array. Routine A set of Instructions and data for performing one or more specific functions. G·g --------------------------------------------------------------------------------- ~ S wa pp i ng The movement of programs and data between main memory and high-speed secondary storage. instruction. The address location from which the Jump Is made is recorded. II Is distinguished from an Interrupt, which Is caused by an external event. Symbolic address An address used to specify a storage locetion In the context of a particular program. Symbolic addresses must then be translated Into relocatable (or absolute) addresses by the assembler. Tree structure A hierarchical structure In which each element may be related to any number of elements at any level below It, but to only one element above It In the hierarchy. Symbolic name Refers to a label used In programs written In source languages to reler to data elements, peripheral devices, Instructions, etc. Un it-record device 110 equIpment such as a card reader, cardpunch , or lineprinter. Symbol table A table containing entries and binary values for each symbol defined or used within a module. This table generally contains eddltionallnformatlon about the way In which the symbol was defined In the module. SYSJOB A program that controls several active system processes simultaneously. Tape la bel A record used to Identify the magnetic tape on which It resides. Termina l u ssr system. Anyone who Is eligible to log onto the Thawed Access A type of access that allows a lIIe to be accessed even if other users are reading and writing the lIIe. Thrashi ng When the system spends an excessive amount of time swapping pages between memory and the disk. Throughput The measure of the amount of informatIon a computer can input, process, and output In a given time. TimesharIng 1. A means of sharing the facilities of a computer between several users by giving each one a fraction of a second at a time to execute his program. 2. Pertaining to the interleaved use of the lime of a device. 3. A method of allocating central processor time and other computer resources to multiple users so that the computer appears to process a number at programs simultaneously; multiprogramming. Ti me slice The period of time allocated by the operating system to process a particular partition's program. This term is synonymous with "timesharing Interval." Trap 1. An automatic transfer of control to a prespeclfled routine that can be caused by software or hardware. 2. A conditional Jump to a known locallon performed automatically by hardware as a side effect of executing a processor G-10 User name The unIque Identifier assigned to each user of the system. Also serves as the name of the user's primary directory. User programs A group of programs, subprograms , or subroutines written by a user. VarIable values. Any enllty that can assume any of a given set of Virt ual addre ss A number which Indicates relative position within a collection of logically related granules of a storage medium . The fact that the medium Itself may be virtual Is of little consequence; the ability to deal with a hierarchical or multilevel memory as If It were one medium Is one of the principal advantages of systems supporting virtual addressing. Virtual address space The upper extent of the size of any program the user may create and run. Virtual memory The space on secondary storage where the monitor keeps a reference copy of the job's Image tor when the Job has to be swapped out of memory to make room for other Jobs. Virtual memory pointer Pointer used to keep track of the program segments In memory. Wa lt state The condition of a process that Is dependent on one or more events In order to enter the active state. Same as a blocked state. Word An ordered set of bits that occupies one storage locatIon and is treated by the computer as a unit. Working set The set of pages most recently accessed by a process. The working set is modlfled as the process runs. Write-lock condition The condition of a device that Is protected against any transfers which would write Information to It. • Accessories and Supplies Group (MSO), ,,-4 byte manipulation, 5-3, 6-2 byle Iranslers, 5·10 accounting lacUity, 3-3 C addressing, vlnual memory. 4.... cache memories, 2·1 In KLlO·E procesaor, 5·5-5·7 In KS10 processor, 8-2 CALL statement, 8·7 cardreaders,7-4 CASE slalement, 8-5 CD20cardreaders, 7-4 centralized quaue manager, 4·1-4·2 central processing units - see pr0C8uon CHAIN Itatement, 8·7 CHANGE atatement, 8· 6 chennel bus (Cbus), 5-9 Charebend, 7-3 characlerslor APL, 8·8 class IChedullng, 3·2-3·3 COBOOT (COBOL debugger), 8·3 COBOL, 3·1 , 8-2-8-4 COBOL-58, 8-2, 8-4 COBOL·74, 6-2, 8-4 COOASYl,9·1 COGO·20 utility, g. 4 command language, 2·1-2-2 Command Language Processor, 2-3, 4-1 Invoked by jobs, 4·2 command parser, 5·8 Command Recognition, 2·2 commercial eppllcatlons, 2·1 communications, 2·1 console lurn:tlonslor, 4-7 interlaces lor, 7·6 KL IO-E I/ O sub.yltem and, 5-8 by processes, 4· 2-"-3 software lor, 2-2-2-3, 10-1-10·5 Computer Special Systems (CSS), 11-3-11-4 Computer Supplies group, 11·4 conditional sales agreements, II·" condlllOnal slatements, 8-7 console Ironl·end processors, 4-6-4-7 KlIO·E,5·7-5·8 console mode, 6-4-6-5 console subsystems, 2·1, 4·7 KL 100E Iront-end subsyslem, 5-7-5-6 lor KS I 0 processor, 6-4-6-5 console terminals (CTYa), 6-4-6-5 Control RAM Addres. (CRA) Module, 8-1 Control RAM Memory (CRM) Module, 6-1 Conventional Format, 8-4 conversion packages for APL, 8·9 copy·on-wrlte lealure, 2-2. 4-5 Core Status Table, 6-4 Cour.... ll-l-11·3 CPL (Conversallonal Programming Language), 3-1. 8-10 CPUs - see processors CREF program, 3-3 CTYs (console terminals), 6-4-6-5 cuslomer financing, 11· 4 Customer Spares, 11-4-1\·5 cyclic redundancy checking (CRC), 7-1 address space in KllO-E processor. 5·7 in KS 10 processor. &-3 AlGOL. 3-1, 8-4-8-5 ALGOL·20,6-4-8-5 ALGOTS (ALGOL ob}ecl-tlme system), 8-5 APL.3-1,8-7-8·9 APt-SF, 8-7-8-9 apptlcetion programmers, 3-1 applications. 2-1, 9-1-9-4 application tooll, 3-1 arch,tecture DNA. 10-1-10-2 KlIO-E memory subsyllemin, 5-5 01 KL IOE processor, 5-1 01 K510 proceuor. 6-1-6-3 archiving files, 4·6 archiving/migration lealure, 3-3 ."thmellC using BAStc;..PLUS-2, 8·7 flxed_ and floating-point. 5·3, 6-2 atithmebC tMUng ~llruCIIons,~. 6-2 ARPANET (Advanced Research Project Agency Network, 2-3 auemblef language. 3-1,8-' assignment statemenls. 8-8 authorization 01 users, 3-2 automatic restlrt., 2-3, 3-3 Automatic Volume Recognition (AVR), 4-8 aUl(Jllary processors, 7-6 availablhty. 2-3 8 backup. 3-3 balance sets, 4-2--4.4 8ASIC-PLt:JS-2, 3-1,8+5-8.7 Basic Service, 11·3 balch proce"lng, 2·2, 4·1-..·2 by appllcaUon programmers, 3-1 in networks, 10-2 batch streams, 3-3 bias con trolleature, 3-3 Bmary Synchronous protocol (BISYNC: esC), 4-10 BLISS-36, 3-1-3-2, 8-9-8-10 BLOCK-IN/BLOCK-OUT instruction, 5-4 block slructure In ALGOL, 8·4 block transfer InltrucUons, 5-4 bootstrapping reliability and, 2-3 brat'ICh statements, 8-8 buffers In APL, 8-9 in paper tape reader/punch, 7-4 print line, 7-2, 7-3 .u... In KL 100E processor, 5-1,5-8-5-10 KS10, 6-1-6-2 Buainess instruction Set. 5-4, 6-3 Index o data In "PL, 8·8 In BASIC·PlUS·2, 8-6-8-7 management 01, 9-1-9-4 sharing 01, 4·6 types 0111'1 COBOL, 8-3 Data Access Protocol (OAP), 10-2 Oataba.. Control System (OBCS), 9-2 database management. 3·1. 9-1-9-2 DaIS Dellnl\lon Language (DOl), 9·1 dala dictionary, 9·3 Oala Manipulation language (OML). 9-1-9-2 Data Path Executive (OPE Module), 6-1 Data Palh Memory (OPM) Module, 6-1 OAVFUa (dlrect·access vertlcallorm units), '·3 DBMS (datsbase management system). 3-1 , 9- 1-9-3 OBMS·20, 9·1-9·2 OOCMP (DIGITAL Data Communications Message Protocol), 10·2 DOT (DIGITAL Debugging Tool). 3-4, 8·1 debugging In APl, 8· 9 In BASIC-PlUS-2. 8-7 in BUSS·36, 8-9 in COBOL, 8-3 InCPl. 9-10 DOT lor. 8·' In FORTRAN, 8-2 DECnet· 20, 2·2. 10·1-10·3 OECservlce,11 ·3 DECSYSTEM·20 ALGOL. 3·1 OECSYSTEM·20 COBOL, 3·1 DECSYSTEM·20 FORTRAN, 3-1 OECSYSTEM-2020 KS10 processor and, 6-1-6·5 lsee slso KS 10 proce$$or; KS sys tems) DECUS (Digital Equipment Computar Users Society). 11-5 deferred mode, 9·2-9·3 davlces - see hardware; peripheral, OH11 programmable asynchronoua serla' line multiplexers, 7-6 diagnostics console and, 4-7 In KL 10-E processors, 5-1. 5·7 KUNIK lor, 2-1 In KS 10 processor, 6·4 online, 2·3 Oigi\al Oats Communications Message Protocol{DOCMP). 10-2 Digital Equipment Computer Users Society (OECUS),11-5 DIGITAL Network Archllecture(ONA), 10-1-10-2 Digital ten·to-eleven (OTE·20) Interface. 5-7, ." dlrect·acceas vertlcalform units (OAVFUsj, '·3 directorlea In caches, 5-6 user file. 4-6 direct proceS6 conlrol, 4-2 disk controllers. 7-1 diSk 1/0 statistics. 3-3 disks. 7-1 RP06 drives. 5-8 storage quotas on. 3-2 OL 11 serial line asynchronous Interfaces. 7-6 ON20 communications Iront end. 7-8, 10-5 DNA (DIGITAL Network Architecture), 10-1-10-2 double-precision Iloating-polnt format. 5-3 OTE Interlace. 5-2. 5-7.5-10.7-8 ~UMPER program, 3" OUPII single synchronous Une Interfaces. 7-6 OXITOPS-20 document transmission. 10-5 OZ11 terminal line Interfaces. 7-8 E EBox (execution Box), 5-1-5-4 EBR register. 4-5 EDIT program, 3-4 Educational Servlcas. 11_1_11_3 enqueue/dequeue (ENQ/OEQ) lacility. 4-3 ENTER lacility. 8-3 errors analysls 01 and recovery from In APl, 8-9 In batch processing, 4_1 corrections for In tape systems, 7-2 detection and reporting of. 2-3 handlll'lg of In BASiC-PLUS-2, 8-7 Interrupt p!"ocesslng lor. 2-1 lournals for recovety from, 9-2 In MOS memory, 5-5, 6-4 Execution Box (EBOX). 5-1-5-4 execuUon mode. 8-S executive mode. 5-2. 6-3 F last reg ister blocks, 5-4 Field Service. 11-1, 11-3 FllCOM program. 3-3 tile director ies, 4·6 liIe-handling services, 3-1 liles, 4-5 In APL. 6-9 In 8ASIC-PlUS-2, 6-6 In COBOL. 6-3 for data bases. 9-1 In DBMS. 9-3 In networks, 10-2 tile system. 2-2. 4-5-4-6 financing. t 1-4 fixedlloatlng conversion Instructions. 5-3. 6-2 fixed-point arlthmetk:, 5-3. 6-2 flags for MOS memory errors. 5-5 ftotIUng point arithmetic, 5-3 FOROOT debugger, 8-2 lorma. TRAFFIC-2O for. 3-1, 9-4 FOROTS (FORTRAN obJect· time system), 8-1. 8-2 FORTRAN, 3-1. 8-1-8-2 FORTRAN IV, 6-2 FORTRAN-208-1-S-2,lront-end subsystems. 2-1, 4-7 ON20communications Iront end, 7-6, 10-5 In KL 10-E processor, 5-7-5-8 full-word data transmission, 5-3. 6-2 function-defin ition mode. 8-8 G GALAXY system. 10-4. 10-5 GCR mode, 7-2 general purpose registers. 5-4. 6-2 geometry COGO-20 for, 9-4 groups. 4-6 H hall-word data transmission. 5-3, 6-2 hardcopy term inals, 7-4-7-5 hardware Installation 01. 11-1 KltO-E processors, 5-1-5-10 KS10 processors, 6-1-6-2 mess storage peripherals. 7-1-7-2 reliability of. 2-3 support services for, 11-3 terminals and Interfaces. 7"-7-6 unit record peripherals. 7-2-7" Hardware Page Table. 4-5 HASP protocol emulators. 10-4 help facilities. 2-2 IBM Emulation/ Termination. 2-2 IBM systems.lnternets lor , 10·4 Immediate mode. 6-7, 8-8, 6-10 Immediate Mode Pointer. 4-5 Inde)!;ed access method. 4-4 Ind8)(ed sequential-access mode (ISAM), 8-3 IndireCt pointers. 6-4 inferior processes. 4-2 input queues, 4-2 Input spoolers. 4-1 Installation, 11-1 instructions and Instruction sell for KlIo-E processor. 5_1_5" lor KSIOprocessor. 6-2-6-3 Interactlva mode. 9-2 interactive p!"ocessJng by applicalon programmers, 3-1 In COBOL, 8-3 Interactive Query Language (IOl). 9-2-9-4 interfaces. 7-6 OTE, 5-2. 5-7. 5-10 for NETCON. 10-3 USART,6" Internal memory in Kll0-E processor. 5-5 Internets, 10-3-10-5 Interpr0C9ss Communications Facility (IPCF). 4-2 Inlerupts, 2-1 priority systam for, 5-4 software Interrupt system for. 4-2 interval timer, 5-4 I/O instructJons. 5-3, 5-4 110 subsystems In KllO-E pr ocessor, 5-1. 5-8-5-10 IPCF (in terprocess Communication Facility). 4-2 IOL (Interactive Ouery lal'lguage), 9-2-9" ISAM (Indexed sequential access mode), 8-3 J jobs. 4-2 balch processing of. 4-1 Job statistics. 3-3 }aurnals.9-2 JSYS Instruction. 5-4 K Kll0 processor, 2-1 KllO-E processor. 5-1-5-10 fixed-point arithmetic on, 6-2 KLiNIK (diagnostics). 2-1, 5-7-5-8 KLINIT (Initialization program), 5-6 Kl systems OHlt prorammable asynchronou s serial line multiplexers for, 7-8 line Interfaces supported on. 7-4 KMC ll-A auxiliary processors, 7-6 KSIO bus. 6-1-6-2 KSIO processor, 2-1, 6-1-6-5 peripherals supported on, 7-1 KS systems Interfaces for. 7-6 line Interlaces supported on. 7-4 L LA38 OECwrlter IV hardcopy terminal s, 7-5 LA 120 hardcopy terminals. 7-4-7-5 labeling of tapes. 4-8 Isnguages. 2-1. 2-2, 3-t APL.8-7-8-9 BASIC_PLUS_2.8_5-8_7 COBOL. 8-2-8-5 CPl.6-10 FORTRAN. 6-1-8-2 leasll'lg.ll-4 library facilities In COBOL. 8-3 lineprlnters, 7-2-7" output spooling for. 4-2 LINK program. 3-4 log mes, 4-1 logical communications links. 10-2 logical testing Instructions. 5-3, 6-2-6-3 logic Instructions, 5-3. 6-2 longitudinal redundancy chec:kll'lg (lRC). 7-1 lP0511neprlnters.7-2-7-3 lP07I1neprinters.7-3 lP14 IIneprinters, 7-3 lP20 lineprinter controllers. 7-2. 7-3 lP20-A and -B lineprlnters, 7-2-7-3 lP2O-C and - 0 IIneprlnters. 7-3 lP200 tine p!"lnters. 7_3-7_4 M MACOR (assembly language). 3-1, 8-1 MAIL program. 3-3 maintenance console and. 4-7 01 hardware, 11 -3 for LA3S hardcopy terminals, 7-5 of software. 2-3. 11-1 MAKLIB program. 3-3 mapping In KlIo-e processor. 5-7 In KS 10 processor. 6-3---8-4 MASSBUS In KL Io-Eprocessor, 5-1. 5-9 mass storage - see memory mstri)!; manipulation. 8-7 MBox (memory control unit). 5-1. 5-5. 5-8 memory, 2-1 disk storage quotas for. 3-2 msss perIpherals for, 7-1-7-2 organization 01. 2-2 sharing of, 4-3 virtual. 4"-4-5. 6-6 memory control unit (MBo)!.), 5-1. 5-5, 5-6 memory mapping. 5-7.6-3--8-4 memory status table. 4-5 memory subsystems In KLIO-E processor, 5-5-5-7 In KSIO processor. 6-3--8-4 ........-------------------messages MAIL program lor, 3-3 meters. S-4 microprogramming, &-1 mlcrostore,6-2 mod.. lor APL language statements, 8-8 OTE-20 operating. 5-10 pn;)(:esllOf, 5-2, 8-3 modification Instructions, 5-3, &-2--6-3 monitor, 4-3-4-4 monitor caJitr., 3-2 Monitor Page Table. 4-5 monitor statistics, 3-3 MOS (Metal Oxide SemIConductor) memory, 5-5,8--4 MS 10 memory. 604 multiplexed 110 bus, 5-8 multiprogramming environments, .yetam programming for, 3-' " NETeON (Network Control Program) utility, 1(1.1,10-3 network lile Iransler (Nfl) utility. 10-2. 10-3 networks OECnet-20,IG-l-10-3 ON20 comrnunlcatlon.'ronl end lor, 7-8 Internats, lG-3-1 0-5 Network ServIces Protocol (NSP). 10-2 NRZI mode, 7-2 numbers flxed- and nolting-point, 5-3, 8-2 o object-time IystfIfTII AlGOTS, 8-5 FOROTS,a.,.1,8-2 offset mode, 5-4 ON ERROA GOlD .tatamenl, 8-7 OJ)efatlng system - see TOPS·20 operators - see sys/arn operstors aPR unified system Interlace. 3-3 optimization In FORTRAN·20, 8·2 output spoolers. "·2 OWN variables (ALGOL). 8-5 P pages.......- .. ·5 In caches, 5·6 In KllQ...E memory mapping. 5-7 In KS 10 memory mapping, 6-3 page tables, 5-7 paper tape reader/punches. 7--4 patlImeters In ALGOL, 8-5 parlty,7-1 passwords. 3·2 PC20 paper tape reader/punches. 7--4 PCS-20 (Project Control System). 9--4 POP-ll SUbsystem. 5-1, 5-7.5-8. 5-10 PE mode, 7·2 Performance Analysis Statistics program. 3-3 peripherals. 2-1 consolelntertace with, "-7 KL lQ...E I/O subsystem and. 5·8 MASSBUS lor. 5-9 mass storage, 7-1-7-2 supported by KL 10-E front-end subsystem. 5-7 terminals and Interlaces. 7-4-7-6 unit record. 7_2_7_4 physical address space in KL lQ...Eprocessor, 5-7 in KS10prOC8SSOf, 6-3 physIcal communications links. 10-2 PID (Process Identification Number). "-2 PLI!, CPl and. 8-10 PLEASE program. 3-3 pointers, 4.... , 4-5, 6-3-6.... postpurglng.4-" power 'allures. automatic recovery after. 3-3 pralo.dlng, 4_" printers, 7-2-7--4 hardcopy terminals, 7....-7-5 priorities lor Interrupts. 5-" lor processes. 4·2 private pointers. 6-3 privileged mode. 5-10 prlvlleges, 3-2 procedures In ALGOL, 6·4-8-5 processes, 4-2 communications by, 4-2--4-3 memory organization and, 2-2 virtual memory and, 4-" Process Identification Number (PID). "-2 processor modes. 5-2. 6-3 processors. 2-1 aUl{iilary.7-6 console front-end processors. "-6-4-7 Kl1Q...E.5-1-5-10 KS10,6-1-f).5 scheduling lime on. 3-2-3-3 prolesslonal~. 11 -1 program COfItrollnstructlons, 5.... . 6-3 programmable address break. 5-4 programmable asynchronous serial line multlplel{ers.7-6 programmable verticallormat units (PVUFs). 7-2.7-3 programs In COBOL, 8-3-8-4 InCPl,8- 10 sharing 01. program segmentation. 8-7 protection lor Illes. 4-5-4-6 protocol emulators. 10-3-10-5 pseudotermlnals, 7-4 "-6 Q quadwords.5-6 1 (question mark). 2·2 queue manager. "-1-4·2 R RDMAIL program, 3-3 record-Ilandling services, 3·1 record InpuVoutput In BASIC-PLUS-2. 8-6 records In DBMS, 9·1. 9-2 recovery. 2·3, 3-3 reg isters In KL 100E processor,S·" In KS10 processor, 6·2 lor virutal memory. 4-5 rellablllty,2·3 remote job entry stalions. 10-3 reports. IQL lor. 9-3-9·" RERUN lacillty, 8·4 resources accounting statistics lor, 3-3 system manager control of. 3-2 restrIcted mode, 5-10 RH20 Integrated controllers. 5-9 RM03 disk·pack subsystems. 7·1 ROOT-DIRECTORY. 4-8 RP08 disk-pack subsystems. 5-6, 7-1 RSX software. 5·8 RTP20 disk subsystems. 7-1 5 Scheduler. 4-4 scheduling centralized queue manager for. 4·1--4·2 system manager ,ontrols on. 3-2-3-3 TOPS·20 monitor lor, "-3 SCHEMA.9-1.9-2 scientific applicallons. 2-1 security. 2-3 during diagnostics. 4·7 user authorlzallon for. 3-2 SeU-Malntenance ServIce lor Software. 11·1 sel'-tesl modules, 7-2. 7·3 serial line asynchronous Interfaces. 7·6 serial line multiplexers. 7·8 services, 11-1-11-5 Shared Mode Pointer. 4·5 Snared Page Table (SPT). 4-5, 6-3 shared pointers. 6·3 sherlng lile syslem for. 4-6 01 memory. 4-3 single-precision Iloating·poInt lormat, 5·3 sIngle synchrooous line Interfaces. 7-6 skip Instructions. 5-3. 8-2-6-3 SLEEP statement, 8-7 software communications. 10-1-10-5 lor dala administration, 9·1-9-4 process structure 01. 2-2 reliability 01, 2·3 RSX.5-8 support services for. 11·1 (see also TOPS- 20) software Interrupt syslem, 4-2. 4·3 Software Product Upatea, 11-1 SORT/MERGE utility. 9-4 spoolers Input. 4-1 oulpul. "-2 SPT (Shared Page Table). "-5. 6-3 SPT Indel{, 6-4 sta tements In APl,8-8 In tal. 9-3 ststlstics. 3-3 Command Language Processor and, 4-1 STOP statemenl. 8-7 slOtage - see memory STORE statement, 9-2 string arrays. 8-6 string constants, 8-5 STRING Instructions. 5-4. 6-3 string manipulation. 8-3 string variables. 8-6 subd irectories. 4-6 Sub-Schema. 9·1 superior processes. 4-2 supplies. 11-4 support services, 11 -1-11-5 swapping, 4-4 switches In ALGOL. 8-5 In batch system, 4·1 system managers, 3-2-3·3 system operators, 3-3 lor bstch processing, 4-1 system programmers, 3·1-3-2 system recovery, 2-3, 3-3 system utilization statistics, 3-3 T tapes labelling 01, 4-6 peripherals lor, 7-1-7-2 task-to-task communications, 10-1 , 10-2 terminal drivers, 7-4 Terminal Formal, 8-4 terminal line Interfaces, 7-6 terminals, 7-4-7-8 lor APL, 8-8 consoles and, 4·7, 8-4 In networks, 10-2 remote Job entry stations as, 10-3 time base counter, 5·4 TOPS·20 (operating system), 2·1-2-3, 4-1-4·7 In DECnel conllgurstions, 10-1 Educational Services courses on, 11-2-11·3 Internets supported on, 10-3-10-5 memory assigned by, 5-7 NETCON commands for, 10-3 utility programs with, 3-3-3-4 TOPS.20AN (communications software), 2-3 TOPS-20 assembler language, 8--1 TOPS-20 monitor, 4-3-4-4 TRAFFIC.20 (Transaction Routing and Forms Formatting In COBOL), 3-1, 9·4 transaction processing, 3-1 trap handling, 5-4, 6-3 TU70 series magnellc tape systems, 7·1-7-2 TU77 magnetic tape systems, 7·1 , 7-2 TV program, 3-4 U UBR register , 4-5 UNIBUS In KL 10-E processor, 5·1. 5-7, 5·9-5-10 peripherals attached 10, 7-' UNIBUS Adapters (UBAs), 2-1, 7-1 unimplemented user operatlona(UUOs), 5-4 unit record peripherals, 7·1-7-4 universal syncronousfasyncronoua recleVer ftransmltter (USART) interfaces, 6·4 UPDATE leature, 8-6 user authorization, 3·2 user !!Ie directory, 4·6 user mode, 5-2, 6-3-6-5 User Page Table, 4-5 users, 3·1-3-4 classes of, for lile protection, 4-5 user utilities, 3-3-3-4 utilities, 3-3-3-4, 9-4 with DBMS, 9·2 NETCON, 10-1 , 10-3 V video terminals, 7-5-7-6 virtual memory, 4-4-4-5 virtual memory arrays, 8--& VT100 video terminals, 7-5-7-6 W WAIT statement, 8·7 warranties, lor software, 11·1 word processing, DXf TOPS-20 document transmission on, 10-5 working set manager, 4·4 working sets, 4-2, 4·4 works paces, In APL, 8·9 WPS·8 word processing sysytems, 10-5 Z zero, 5-3, 6-2 , I f • I DIGITAL EQUIPMENT CORPORATION, Corpor.l. H. .clqu.,,~. : ".yn,rd, MAo 01154 , T.1. t'17) 817·5111 _ SALES AND SERVICE OFFICES; UNITEO STATES _ ALABAMA, BI,mlngn,m, HuntlYlII. ARiZONA , Ph_nb, Tuc.on ARKANSAS, llttl. Rock CALIFORNl.... Co.t. M... , £l Seti!undo, lot Ang.l" , D.Id.nd, Slcrlm.nto, S.n Ol.go, S.n Frlnellco, Monro"'I , 5.1'1" hrt>.-r', Sin", Cllrl, Sh,rm.n DIU COLORADO, Colorado Spnng., O.n ..." CONNECTICUT, F.ltfI.ld , M,rId'n OELAWARE , N.w.rk FLORIDA, Nl.ml, Ort.ndo , P,n,.eol., T.m~ GEORGi .... AlI.nl. HAWAII, Honolulu IDAHO, 801.. ILLINOIS, Chicago, P"riIIINOtANA, IndI.n.poII. IOWA, 8,ttenclorf KENTUCKY, Loulnlflto LOUISI. ANA , Nlw 0,1•• 1'1' MARYLAND, 8.ltlmor. MASSACHUSETTS, 80tton, SprlngfI<tld, W.lth.m MiCHIGAN, C.trolt, K.I.ITlNOO MINNESOTA, Mlnn •• poU. MISSOURI , K.nN. Chy. SI. loul. NEBRASKA, Om.h. NEW HAMPSHIRE , M.nch •• I., NEW JERSEY, Cherry Hm , P.r.lppeny, Prine. ton , Som.r•• t NEW MEXICO , Albuqu.rqu., Lo. A'.mo. NEW YORK , Alb.ny, Buff.Io, Long 1.I.nd, N•• YOfil CIty , Roc:h •• t.r, SrrKU•• , W..teh •• t.r NORTH CAROLINA, Ch.pel H'., Ch.rlott. OHIO, Clnelnn.tI , CI.v.lend, Columbul, D.y1on OKLAHOMA, Tulu OREGON , Portiend PENNSYLVANIA, H.rrllburg , Phlled.lphle, Plttlburgh RHODE ISLAND, Providence SOUTH CAROliNA, Columbl., Gr..nvln. TENNESSEE, Kno .... III., N.. hvm. TEXAS, Au.lin , D.II... EI Puo. Houllon , S.n Anlonio UTAH . Salt L.k. City VERMONT, Burlington VIRGINIA , Felrf..., Richmond WASHINGTON , S .. II'., $poUn. WASHINGTON D.C. WEST VIRGINIA, Ch.rI.lton WISCONSIN , MIIw.uke. INTl:.RNATIONALEUROPEAN AREA HEADQUARTERS: Gen.v • • T.I: 141 J (22.,113-33-11 INTERNATIONAL AREA HEADQUARTERS; A(:jon , MA ttl754, U.S.A., Tet: (617) 2&3-&000 AUSTRALIA , Ad.I.ld. , BrI,~n. , Canberr., Hob.rt, M.lbourn. , P.rth, SydnlY, Townl'lill. AUSTRIA, VI.nn. BELGIUM, B...... "II BRAZIL, Rio d. Janllro, S80 P.ulo CANADA, C.lg.ry, Edmonton , H.IIIIX , klng'ton , Lonclon , Mont' •••• QUlbec: City, Regln • • Toronto, V,n<:ou".r, V'etorl " Winnipeg DENMARK , Copenh81l.n ENGLAND , Blllng,tok., Blrmlngh.m, Brlltol, E.llng, EpNm , Leed', L.lee,· '.r, London , M.nehllt.., Rlldlng , W.lwyn FINLAND, H.I,lnkl FRANCE, Bordl'UX , Lyon, P,.I., PutIlUX, St,"bourg HOLLAND, Amlt.rvlln , Dlltt, Ulrleht HONG KONG IRELAND , Dublin ISRAEL, T.I A",,, ITALY , MII.n , Roml , Turin JAPAN , OIlU, Tokyo MEXICO , MIXIco City, Mont.rr.y NEW ZEALAND, Aueklend , Chriliehureh, W.lllngton NORTHERN IRELAND, B,II..t NORWAY, 0.10, PUERTO RICO, S.n Ju.n SCOTLAND, Edinburgh REPUBLIC OF SINGA PORE SPAIN, Blle.lona, Madrl<! SWEDEN, Goth.nburg , Stoc:kholm SWITZERLAND, Glnl". , Zurich WEST GERMANY, Bllttn, CoIogn., F.. nkfurt , H.mburg , Hlnno,," , Munleh , Nurnbsrg , Stullg,rt Ott'." Ii ! J
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies