Digital PDFs
Documents
Guest
Register
Log In
DEC-T8-FRFA-D
December 1968
74 pages
Original
2.1MB
view
download
Document:
dec-t8-frfa-d
Order Number:
DEC-T8-FRFA-D
Revision:
Pages:
74
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/dec-t8-frf/dec-t8-frfa-d.pdf
OCR Text
TIME-SHARING SYSTEM TBS/B Monitor for the PDP—B PD P-B/ | For additional copies order No. DEC-T8—MRFA—D from Program Library, Price $3.00 Corporation, Maynard, Mass. DIGITAL EQUIPMENT CORPORATION Digital Equipment o MAYNARD. MASSACHUSETTS First Printing, September l968 The reader's attention is invited to the last two pages of this manual. The How To Obtain Revisions and Corrections offers the reader a means of keeping up-to-date with DEC's soFtware. The Reader's Comments card, when filled in and returned, is beneficial to both the reader and DEC. Each card received is considered when documenting subsequent manuals, and where the comments imply or ask For assistance, a knowledgeable DEC representative will contact the reader. Copyright©l968 by Digital Equipment Corporation ACK NOWLEDGMENT We wish to thank Dr. John McCarthy and his associates at the Stanford Computation Center For their permission to use some parts of the THOR User's Manual which describes a time-sharing System For the PDP-l computer. CONTENTS Page CHAPTER 1 INTROD UCT ION 1.1 Monitor Functions 1.2 TSS/ 8 User and Console 1.3 System Program Library 1.4 User Programs 1.5 User Files 1.6 System Configuration 1—4 1.6.1 Minimum Hardware Requirements 1-5 1.6.2 Hardware Options 1-5 1.6.3 Data Communication System, Type 680/1 CHAPTER 2 THE TSS/8 MONITOR 2.1 Monitor Services 2—1 2.2 Character and Data Flow 2—3 2.2.1 Character Transmission 2—4 2.2.2 General Input Routine 2-4 2.3 Permission and Switchboard Tables 2-5 2.3.1 Permission Table 2-6 2.3.2 Switchboard Table 2-6 CHAPTER 3 MONITOR COMMANDS 3.1 Logging In and Out 3—2 3.2 Console Manipulation 3-2 3.3 Device Allocation 3-3 3.4 File Control 3-3 3.5 Control oF User Programs 3-5 3.5.1 Saving and Restoring Binary User Programs 3-6 3.6 Switchboard 3-7 3.7 Inter-System Communication 3-9 CONTENTS (Cont) Page CHAPTER 4 INPUT/OUTPUT TRANSFER INSTRUCTIONS 4.1 Program Control 4.2 File Control 4-9 4.3 Input Buffer Control 4—14 4.4 Output Buffer Control 4-16 4.5 High-Speed Paper Tape Reader 4-18 4.6 High-Speed Paper Tape Punch 4—19 4.7 DECtape 4—20 4.8 Automatic Line Printer 4—21 4.9 Incremental Plotter 4-23 4.10 Card Reader 4—24 CHAPTER 5 ERROR DIAGNOSTICS 5.1 User Program 5-l 5.2 System Interpreter 5-I APPENDIX A TSS/8 CHARACTER SET APPENDIX B SUMMARY OF COMMANDS APPENDIX C SUMMARY OF IOT INSTRUCTIONS APPENDIX D REQUIRED MODIFICATIONS APPENDIX E STORAGE ALLOCATION ILLUSTRATIONS 1-1 User Console 1-2 Users Console Keyboard 1-2 1-3 System Configuration 1-5 2-1 Character and Data Flow 2-3 2-2 Permission Table 2-5 ILLUST RATIO NS (Cont) Page 2-3 Switchboard Table E—I TSS/ 8 Sforage Map E—I E-2 File Directories E—2 HOW TO OBTAIN REVISIONS AND CORRECTIONS Notification of changes and revisions to currently available Digital software and of software manuals is available from the DEC Program Library for the PDP-5, 8, new 8/5, 8/1, 8/L, LINC-8, the PDP-4, 7, and 9 is currently published in DECUSCOPE, the magazine of the Digital Equipment Computer User's Society (DECUS) This inforComputer NewsII . mation appears in a section of DECUSCOPE called "Digital Small . Revised software products and documents are shipped only after the Program Library receives a specific request From a user. DECUSCOPE is distributed periodically to both DECUS members and to non-members who request it. If you are not now receiving this information, you are urged to return the request form below so that your name will be placed on the mailing list l' l l l l l l . __________________________ To: Decus Office, Digital Equipment Corporation, Maynard, Mass. 0l754 0 Please send DECUS installation membership information. 0 Please send DECUS individual membership information. l l 0 Please add my name to the DECUSCOPE non-member mailing list. l Name l l l Company Address l I l _—________._ (Zip Code) CHAPTER I INTRODUCTION TSS/8 (Time—Sharing System for the PDP-8/l Computer) is a general purpose stand-alone, time-sharing system offering each of up to 32 users a comprehensive library of system, utility, and service programs which provide facilities for compiling, assembling, editing, loading, saving, calling, and debugging user programs on-line, and also two conversational languages, FOCALI and BASIC-82. The minimum hardware configuration is designed for eight users and includes the Following: a modified PDP-S/I or PDP-8 with 8K words of core memory, a RF08 Disk, 0 PT8/l high-speed paper tape reader, and Teletype control units for data communication (either four PTOSs or one 680/1 per system). See Section 1.6 for a complete list of possible optional devices and for the configuration for systems accommodating up to 32 users. By segregating the central processing operations from the time—consuming interactions with the human users, the computer can in effect work on a number of programs simultaneously. Giving only a fraction of a second at a time to each program or task, the computer can deal with many users seemingly at once, as if each had the computer to himself. The execution of various programs are interspersed without interfering with one another and without detectable delays in the responses to the individual users. Ll MONITOR FUNCTIONS The heart of this time-sharing system is a complex of subprograms called Monitor. Monitor coordinates the operations of the various units, allocates the time and services of the computer to users and controls their access to the system. The allocation function includes scheduling the user's requests, transferring control of the central processor from one user to another, moving (swapping) programs in and out of core memory, and managing the user's private files. 1.2 TSS/8 USER AND CONSOLE A TSS/8 user is any person running a computer program within TSS/8. He has an account number assigned to him by the person responsible for the system which determines his identity for TSS/8 and identifies his files on a permanent basis. When he is using the system this number also identifies l FOCAL (FOrmula CALculator) is an on-line conversational interpretive program developed by Digital Equipment Corporation. 2 BASIC-8 is a modified version of the elementary algebraic language developed at Dartmouth College. 1-] his console, his individual disk swapping track (a contiguous 4K section of disk) For temporary storage of active programs, and whatever other Facilities he may be using at any given time. While the user is logged into the system, he owns at least one console (Figure l—l) and one 4K disk track. The console consists of a keyboard (Figure l-2), which allows the user to type infor- mation to his user programs and Monitor, and an output device, usually a Teletype printer, which Fur- nishes typed copy of program and Monitor output and user input. Figure l-l Figure 1-2 User Console Users Console 1-2 Keyboard SYSTEM PROGRAM LIBRARY 1.3 A comprehensive library oF programs is available to all TSS/8 users. Facilities For assembling, The library provides compiling, editing, and debugging user programs. Any oF the system, utility, and service programs can be called into use by typing, in response to the dot typed by Monitor, the command R and the assigned name oF the programs. . For example, R FOCAL brings FOCAL into core From the disk and automatically executes FOCAL so that it begins typing out its lnitial Dialogue. The System Program Library contains the following programs: a. Binary (BIN) Loader b. Symbolic Tape Editor - used to load user programs into core memory From the console. - used to prepare, edit, and generate symbolic (source) programs and program tapes From the console. c. PAL III Symbolic Assembler - used to translate source programs written in the PAL III language into obiect programs. d. MACRO-8 Assembler - used to translate source programs written in the MACRO-8 language, containing macros and literals, into obiect programs. e. Dynamic Debugging Technique (DDT-8) - used to aid the user in correcting errors in stored user programs by allowing him to execute small sections at a time, to stop execution where he wishes, and to change portions oF his program, using the symbolic language oF the source program or machine language. The user may create an octal program using the DEPOSIT command. Octal Debugging Technique (ODT-81- used For the same purpose as DDT-8 (above) F. that the user communicates in the octal except representation oF his program. ODT-8 requires less core area than DDT-8, and can be loaded in either the upper or lower portion oF core, depending upon where the user's program is loaded. g. used to compile and operate a user program written in the 4K version compilation language; requires only one pass through the compiler. FORTRAN (4K) oF the FORTRAN - h. FOCAL (FOrmula CALculator) i. BASIC-8 an on-line, conversational, interpretive program used to solve complex numerical problems; used as a programming tool by students, engineers, and scientists. — an - elementary algebraic language, is an on—line, service program similar problems. to FOCAL used to solve complex numerical 1.4 USER PROGRAMS A user program is any program being run in user mode by TSS/8. When a user program is being run by TSS/8 it is swapped into core memory From the user's disk track. Several programs may be run by a regular process oF bringing a program into core From the disk, allowing it to execute For a short time, marking the state in which its execution is stopped, returning it to the disk, and picking up the next user program. User programs are serviced regularly on a "round-robin" basis. executed, it is placed last in the order oF user programs waiting to run. one quantum oF time and then it is exchanged For the next user program. AFter a user program has been Each program is allowed to run IF only one program is in a condition to run, it is allowed to run without interruption. There are three ways in which a user can place a binary program on his disk track. a. He may prepare an octal program at a console using a debugging program such as DDT-8, b. He may load a previously saved core image, or c. He may load the binary output File oF a previous assembly or compilation. USER FILES l.5 Disk storage is divided into logical areas called Files. new Files and extending, contracting, and destroying old Files. binary core images, or data in any standard Format. Facilities are available For creating Files may contain textual inFormation, The user can also protect his Files against unau- thorized access. A user File directory (see Appendix E) is assigned to each user by the person responsible For the system beFore the user First logs into the system. The user File directory is associated with the iob number assigned to the user by the Monitor each time the user logs in. Files are composed oF segments oF disk storage. 20008 words. Files are at A segment can consist oF From 2008 to least one segment long and grow by adding additional segments to the end oF the File. Each user may have access to up to Four active Files at any time. An internal File number, 0 through 3, is associated with each oF the user's active Files, and commands then operate in terms oF the internal File numbers. With this Feature, a user may attach one oF his Files to an internal File num- ber and then load system and utility programs which operate on his File without having to explicitly call the File For each system or utility program used. 1.6 SYSTEM CONFIGURATION Depending upon the hardware conFiguration oF a particular TSS/8, there can be From 1 to 32 users working with the system simultaneously. Following resources: at Each user has, in addition to system soFtware, the least 4K words oF core memory For execution oF programs, and a corresponding 4K disk track For temporary storage oF his core image. l.6.l Minimum Hardware Requirements The minimum equipment requirements of the system are listed below (see Figure 1-3). PDP-8/l or PDP-8 with KT08/I Time—Sharing Modifications MC8/I-A Memory Extension Control and 4096 words RF08 Disk Control R508 Disk PT08 Asynchronous Line Interfaces, Dual (4) PT8/I High—Speed Paper Tape Reader KE8/I Automatic Multiply—Divider CAB 8/IA Option Cabinet (TELETYPE MODEL 33 OR 35) Califooggf (TELETYPE MODEL 33 OR 35) 4K CORE X I f CONSOLE 680/1 CONTROL OR PT08’S E O C K CPU EXTRA 4K CORE RF08 Figure 1-3 1.6.2 System Configuration Hardware Options The system can have a maximum of 32K of core memory. As additional fields of core mem- ory are added they permit overlapping the running time of one user program with the swapping time of another, expanding the resident Monitor to buffer a larger number of consoles, and reducing the amount of Monitor overlay required. With a minimum of 12K of core memory, the following options are available. a. Up to three DECdisks can be appended to increase the number of active users and their file storage. b. Up to eight DECtapes can be appended for the use of private DECtapes by users. l.6.3 c Memory Parity d. Extended Arithmetic Element (PDP-8/I only) e. Power Failure f. I 9. l Card Reader h. l Incremental Plotter 3, I Line Printer i. l DAIO Interface (PDP—lO) k. I Bit Synchronous Communication Unit (Type 637) I. I Line Frequency Clock (required with PTO8's) m. 32 Teletype Controls (PTO8's or 680/I) High-Speed Paper Tape Punch Data Communication System, Type 680/I The Data Communication System, Type 680/I, is used in full duplex mode. Data Line Interface Unit (DL8/I), to form a data a It consists ofa Serial Line Multiplexer Unit (685), and other devices connected link and message switching system between the user consoles and the central processor. CHAPTER 2 THE TSS/8 MONITOR MONITOR SERVICES 2.1 The TSS/8 Monitor is composed of the Following routines: IOT Trap Handler Error Message Handler Scheduler Buffer Handler Storage Allocator 680 Service Overlay Control Disk Service System Interpreter Optional Device Service File Control With the above routines, Monitor provides services which may be divided into three broad categories: a. Device Service b. Scheduling and Activation c. Communication On an interrupt basis the Device Service routines receive information from all input devices, parcel that information out to the appropriate buffers, and inform the Activation routine when a user program must be activated to receive its information. user The Device Service routines accept output from programs, buffer it, and send it to output devices whenever they are able to receive it. Activation is handled by a "round-robin'I scheduling algorithm with the exception that programs with disk requests pending are run out of turn to optimize disk usage. The Activation routine decides whether to remove the current program from core, and if so, which program is to be run next. A user program is, at any point in time, in one of the following states. a. Running — The user program is in execution. It continues execution until its quantum has expired or until it issues an input/output (I/O) request that cannot be satisfied immediately. The user program is ready to run and will be swapped into core when its turn b. Active A program can become active when — comes. (I) An output buffer is almost empty, thus assuring continuous output of information, (2) An input buffer is almost full, (3) Input requested by a user has arrived, (4) A user determined activation condition has been satisfied, or (5) When the user commands the system to begin execution. Waiting In this state, the program would be active except that it is waiting for the of some I/O request or special condition. completion c. - ” The user may be Dormant The program is not being entered into the "round-robin. communicating with Monitor or the program may be dismissed for a variety of user determined reasons. d. - 2—] A program may be swapped out oF core memory For any oF the Following reasons. a. The quantum has expired; the program moves From the running state to the active state. b. The program has requested the quantum be terminated; the program moves From the running state to the active state. The program has Filled an output buFFer, has requested input and the input buFFer is empty, or has requested a special dismissal condition; the program moves From the running state to the waiting state. c. d. The program has tried to execute an illegal instruction; the program moves From the running state to the dormant state. Monitor checks all incoming characters For the SEE (CTRL/B) character. When the call character is encountered, Monitor routes all subsequent characters up to and including the First carriage return (CR) to its System Interpreter's input buFFer. Monitor's System Interpreter routine perForms the Following services. VeriFies the user's name and account number when he logs in and provides him with a a. disk track to store user programs. It releases Facilities oWned by the user when he logs out. b. Parcels out extra consoles and input/output devices. c. Provides commands For creating, d. Allows the user to save all or part oF his binary user program For Future use and reFerence, opening, and maintaining the user's Files. and restores it with its state unchanged. as e. Provides accounting oF console time and user program run time. F. Provides the user with inFormation about the state oF his program while running, as well inFormation about the state oF the character control tables. 9. Provides commands For calling the various utility programs. Communications to the System Interpreter are automatically duplexed. From a keyboard to the System Interpreter appear on that console's printer, setting. That is, all characters regardless oF the switchboard (See Section 2.3.) The System Interpreter may be receiving messages From many keyboards and user programs, thereFore, it must be run oFten. Consequently, it occupies its private position in the "round-robin, " being activated whenever there are characters in its input buFFer. Monitor has two Phantom routines: Error and File Control. which run in place oF a regular user program in the "round—robin. " Phantoms are privileged routines The time the Phantom takes to perForm its service is charged to that user program upon which it is servicing. The Error Phantom prints all error messages For running user programs. error Printing a lengthy message may require several quanta; the use oF the Error Phantom punishes the user responsible For the error and no one else. The File Control Phantom handles such modiFications to the File directory as creating, lengthening, renaming, and destroying Files. This Phantom is brought into operation when a user program executes certain IOT instructions or when Monitor is acting For the user program. 2—2 CHARACTER AND DATA FLOW 2.2 When a user logs into the system his account number is associated with a job number, and iob number is then associated with a disk swapping track and the console(s) he owns. The account that number establishes ownership oF the input buffer attached to the user program on his disk track and the output buffers attached to the printers oF his consoles. Monitor provides For communication among the users, communication is illustrated in Figure 2-l . programs, and Monitor. user Data Communication is provided through the [OT instructions. When a program executes certain IOT instructions, Monitor picks up locations in the user program as parameters to service routines. or These routines may simulate input/output to the on-line device, control release ownership of devices, handle character communication, or return information to the user program by filling registers within the program. Through IOT instructions, the user program can make its wants known and Monitor can inform the program oF any variation in the time-sharing system. user SWAPPING REQUEST FOR SPECIAL SERVICE OR I/O usrn nupnc “% 4" CHARACTER USER CONTROL CONSOLE GENERAL KEYBOARD --|NPUT- SWITCHBOARD — ROUTINE z 5 O '5 ‘3 +~——9U—T—p91— BUFFER ' BUFFER 0 3 PRINTER 5* INPUT ———————————————————————————— X ———~ "' TABLES I/O .: CONTROL 0 _. ' .. 3 ._ _ I i IO 0 o 3 0 _-_ l— g z 8 I ' GENERAL --~- PERMISSION —————~—>.=.._ l5 —INPuT—— —————— J ROUTINE COMMAND LANGUAGE AND SERVICE RFOHFQT sIOI-. :W FOR SERVICE PHANTOM SERVICE OTHER Figure 2-1 110 Character and Data Flow 2-3 0st FILES Character Transmission 2.2.] The input/output transfer instructions provide character transmission. ated by users typing at keyboards or by user programs typing out. Characters go into input buffers to be read by user programs or to output buffers to be printed on Teletype printers. Up useful character transmission Characters are gener— A switchboard device sets paths, whereby any character source (keyboard and program) may, with permission, send to any character sink (input and output buffer). To insure that unwanted connections are or not made, using the appropriate command to Monitor the user owning any character sink may grant deny permission for connection into that sink. A console may be thought of as two disassociated devices, a keyboard and a printer. To each printer there is an associated character output buffer numbered like the consoles, O-K. When a character is placed into output buffer number n, Monitor causes that character to be printed on printer number n. Each iob has an associated character input buffer numbered like the iob, O-P. When user program number n executes a keyboard input IOT, the next character waiting in input buffer number n placed in the user program's accumulator (AC). is the source of the last data character, or This character may be a data the time that the last data character was character, placed in the input buffer. 2.2. 2 General Input Routine The General Input Routine (GI R) provides and controls character input to user programs. Programs vary in how promptly they must pay attention to incoming characters. a In the preparation of file, characters are added to the input buffer when typed; when the input buffer gets full the program receives all the characters at once and transmits them to the disk. is activated only when the input buffer gets full. In this case, the user's program With a program whose operation is controlled from the keyboard, however, every character typed goes directly to and influences the program's action. Through IOTs, the user program can specify under which conditions the input characters will cause the program to be activated. some These conditions are called delimiters. A delimiter may be specific type of character appearing in the input or it may be a change in the source of characters; the input buffer becoming full is always a delimiter. GIR places all incoming characters in the user's input buffer until a delimiter is encountered. When a delimiter appears, the user program is always alerted and usually activated to receive all the characters in the input buffer. This is done by setting the delimiter bit (status register I) to one. the Wait Mask (see Chapter 4, Set Wait Mask) is set to one, the user program will be activated. If 2.3 PERMISSION AND SWITCHBOARD TABLES Characters originating From any keyboard or From any user program typing out can, with permission, be placed in any or all of the K output buffers or any or all of the P input buffers. The Permission Table is the device with which a user controls which character sources may place characters in which oF his buffers; the Switchboard Table controls the actual routing of these characters. The Permission and Switchboard Tables are organized as matrices (see Figures 2-2 and 2-3). The rows represent character sources, that is, keyboards and programs typing out. The columns represent character sinks, that is, input and output buffers. Along the rows are the K keyboards and P programs. Along the columns are the P input buffers and the K output buffers. INPUT IurrEns ITIVTIIIIIII OUT'UT Iurrens llI'lTlllllllllllllltlll'Ill'YY ,_ ‘ KEVIOARD nwur - n ' n.z 5 y 5.1 : PROGRAM ouwur — - _ : Permission Table Figure 2—2 mPuY IurrEns IlllIlTl'l' OUTPUY nurrsns 'I‘l'TI"Vl'll'VIYTIIllll'l'TT‘ .. _ KEVBOAHD : INPUT 3 P" P ‘ moan E 0' ° ‘ OUYPuY ' _ Figure 2—3 Switchboard Table 2-5 2.3.] Permission Table The Permission Table acts as the matrix of permitted connections. For example, if the bit R, Y is a one, it means that the owner of input buffer number Y allows keyboard number R to place characters in it. Similarly, if bit S,Z is a one, it means that the oWner of output buffer number Z (printer Z) has agreed to allow iob number S to type out characters onto printer Z. In general, if a bit in the Permission Table is a one, the owner of the entity specified by the column has granted permission for the entity specified by the row to place characters in his sink. The fact that permission for a given character routing has been established does not neces- sarily mean that characters automatically flow along that route. A route to a buffer is not established unless the owner of the keyboard or program sets the Switchboard Table. 2.3. 2 Switchboard Table The Switchboard Table acts as a matrix of requests by the oWner of a character source that characters emitted by that source appear in some sink. If bit Q,W is a one, characters coming from program number Q typing out will appear in input buffer number W. Similarly, if bit P,X is a one, characters typed on keyboard number P will appear in the output buffer of printer number X. In general, if a bit in the Switchboard Table is a one, characters emitted by the source specified by the row will appear in the sink specified by the column. Attempts to set bits in the Switchboard Table are automati— cally checked against the Permission Table. Only if the corresponding bit in the Permission Table is a one will the system allow that bit to be set in the Switchboard Table. The Switchboard Table may be regarded as the final arbiter of character routing. Bits in the Permission and Switchboard Tables may be set, reset, and read by using Monitor commands or by an IOT instruction which the system executes interpretively. The Permission and Switchboard Tables are automatically set up for normal use when a user logs into the system. This configuration is: a. The user gives permission for his keyboard to send characters to his user program's input buffer. The user gives permission for his keyboard to send characters to his printer's output b. buffer (this condition is known as duplexing). Whether the characters actually appear depends upon the corresponding Switchboard setting. Normally, the Switchboard is not set to handle the input before it is printed. The user gives permission for his program to type characters to its own input buffer. c. (The Switchboard determines whether characters typed out will in fact be sent to the input buffer.) d. The user gives Permission for his p r 09 ram to send characters to his pr inter's out P ut buffer. 2-6 e. user The Switchboard is set so that characters from the user's keyboard will be placed in the program's input buffer. f. The Switchboard is set so that characters typed out by the user program will be placed in the program's output buffer. The user is, of course, free to modify and add to these settings. The Switchboard generality finds application in: a. Duplexing - Characters typed at a keyboard can be printed on any console without user program intervention. b. Interprogram Communication User programs can communicate with each other and with Monitor. Thus, several user programs may run as one system coordinating their separate tasks through character communication. - Interconsole Communication Users at consoles can set up general links for conferences, or for other reason. teaching, monitoring, any c. - d. Multiple Consoles User programs may receive characters from and send characters to than one console. This allows a user program to act as a time-sharing system within TSS/8, con- more trolling its own set of consoles, as in teaching machine monitors. CHAPTER 3 MONITO R COMMANDS A Monitor command is a string of characters terminated by a semicolon (;) or a carriage return (RETURN key). Commands to Monitor are typed on the Teletype keyboard by the user or output by the user program, with each command beginning with a command name. name In some cases, the command is the entire command, in which case it is followed directly by a terminator. command name is followed by a space, one or more parameters, and then a terminator. (requesting the time of day. .TIME In other cases, the For example, This command was terminated by the RETURN key) (requesting the processing time used by job Cl. .TIME Cl Terminated by the RETURN key) Only enough characters need be typed in the command name to uniquely identify the command name. For example, LOGI for LOGIN LOGO for LOGOUT More than one command may be typed on a line, with all but the last command being ter- minated by a semicolon; the last command is terminated by the RETURN key. 5] .OPEN Cl For example, C2; LOAD Cl 51; START Cl (The abbreviated parameters are explained below.) NOTE Commands are executed when the RETURN key is typed, which explains why the last command on a line must be terminated by the RETURN key. As shown in the above examples, each command or line of commands is typed after the dot typed by Monitor. The dot is typed by Monitor when it is ready and available to accept commands from the user. Parameters may be typed as octal numbers, decimal numbers, character strings, letters. or single In the following descriptions of Monitor commands the parameters are coded as follows. Cl, C2, . . . represent octal numbers Dl , D2, . . . represent decimal numbers Sl , $2, . . . represent character strings Ll , L2, . . . represent single letters 3-] 3.] LOGGING IN AND OUT Logging in and out of TSS/8 is a function performed by Monitor's System Interpreter routine. When a console is in the free state, a prospective user may attempt to log into the system. LOGIN Cl Si; This is a request by a user to log into the system. If the console from which the command is typed is free, there is an available disk track, and the two parameters following the command LOGIN form a legitimate account number and password, then the user will be logged into the system. Cl is the user's account number Si is the user's password At the time of login, the Switchboard is initialized to the normal operation setting. However, Monitor diverts all characters typed to the System Interpreter until the user gives a command that indicates otherwise. LOGOUT; This is a request by a user to logout of the system. consoles and disk tracks that he owns, It disconnects all places his programs in the free state, and resets the Switchboard. It also writes an account record on the disk showing how much computing time (processing time) and console time was used by the user's program(s). TIME C]; This is a request for Monitor to type out the computing (processing) time used since login. console is assumed. If iob Cl is not specified, the job owning the If requested before login and if no iob is speci— fied, the time-of—day is typed. If, at any time, job 0 is specified, the time-of-day is typed. 3.2 CONSOLE MANIPULATION ASSIGN K C]; This is a request for console number Cl to be added to those consoles already owned by the requesting user. K denotes console Cl is the console number If the console is free, it will be given to the user and the user's Switchboard settings will be augmented by those additional entries which put the new console in the normal state with respect to its oWn printer and the program on the user's disk track. Cross settings for inter—console connections are left to the user's discretion. SLAVE c1; This command causes console number CT to be slaved. This means that console number Cl will be unable to communicate with Monitor, and the system will ignore the call (CTRL/B) character from that console. However, the console may serve as an input/output device for the user's program. Monitor checks to make sure that the request- ing user owns the console he wishes to slave. every console that a user owns. 3-2 It is illegal to slave UNSIAVE c1; This command restores a slaved console to normal status. After this command, console number Cl will be able to communicate with The user must own the console to unslave it. Monitor. RELEASE K C]; This command releases console number Cl and puts it in the free Monitor checks to make sure that the requesting user owns state. the console he wishes to release. When the console is released, the Switchboard is reset and the input and output buffers are cleared. The user must own the console to release it. 3.3 DEVICE ALLOCATION ASSIGN Ll; This is a request for access to the device specified by L]. L] = R for paper tape reader P for paper tape punch for card reader C L for line printer I for incremental plotter If device Ll is not busy, it will be allocated to the user program issuing the command. Ifdevice Ll is busy, the iob number of the having possession is returned. A RELEASE L]; or LOGOUT; user will release the device. ASSIGN D c1,- This command is the same as ASSIGN Ll; D denotes DECtape unit Cl is the unit number of the DECtape unit RELEASE L1; RELEASE K C]; RELEASE D C]; 3.4 Each of these commands will annul the current assignment of the specified device. FILE CONTROL OPEN C] S] C2; This command establishes association between an internal file num— ber and a file. After this command is given, the file of account C2 with the name 51 is associated with internal file number Cl The internal file number specified must be between zero and three . inclusive. If C2 is not specified, the account number of the cur- rent user is assumed. CLOSE S]; This command closes the files specified by S] . S] is a list of internal file numbers separated by spaces After this command is given, no writing can be done on the files specified, and the associations between the internal file numbers and the files are broken. This command causes Monitor to create a new File which is to have CREATE $1; the name Sl, iF there is available File storage. At the time oF creation, Monitor will enter the name oF the new File and the date oF creation into the owner's File directory (see Appendix E) and set the protection mask to 17. Example: asks Monitor to create a new File CREATE NEWF; named NEWF. IF there is no more File storage, Monitor will so inform the user (see Chapter 5). RENAME c1 51,- This command renames a File. The File to be renamed must be al— ready open and associated with internal File number Cl. name will become 5] . Its new Example: RENAME 1 F00; that File NEWF has been opened to internal File number l; this command will change the name assume oF that File From NEWF to FOO. REDUCE C] Di ; This command reduces the length oF a File. The File which is to be shortened must be open and associated with internal File number Cl D1 is the number oF segments to be removed From the end oF the File. IF D] is greater than or equal to the number oF segments in the File, the File is deleted From the directory. REDUCE 2 2; Example: File TTl3 is opened to internal File number 2; this command then reassume moves 2 segments From its end and returns those EXTEND C] Di; segments to Free storage. This command extends the length oF a File. The File which is to be lengthened must be open and associated with internal File number C]. D] is the number oF segments to be added to the end oF the File. IF there is space available, Monitor will lengthen the File as requested. PROTECT C1 C2; This command changes the File protection mask oF a File. The File protected must be open and associated with internal File number Cl. to be C2 is the new File protection mask. For File protection, the 12—bit account number is partitioned into project number (high order 7 bits) and a programmer number (low a order 5 bits). C2 = l Examples: read protect against users whose proiect number diFFers From OWner's . C2 II N write protect against users whose project number differs from owner's C2 = 4 read protect against users whose project number is same as C2 = OWner's ID write protect against users whose project number is same as owner's C2 can be the sum of any of the above values. This command is illegal for all users except the owner. PROTECT l 3; Example: read and write protect internal file 1 against access by any user whose proiect number differs from the owner's. F This command causes Monitor to print out the current state of the The Cl; association of the user's internal file number Cl with the file. response format is Cl S1 C2 D] where Cl is the owner's account number Si is the file name C2 is the protection mask D] is the number of segments 3.5 CONTROL OF USER PROGRAMS START This command begins execution of a user program at location Cl. In addition, the command resets the Switchboard so that all characters typed from either a keyboard or program directed into the user program's input buffer are no longer intercepted by the System Interpreter. The accumulator (AC) and link are cleared and the user's interrupt system is turned off. Cl; This command restarts a user program. START; If Monitor has been called during the execution of the user program, the complete state of the program is saved including the location of the next instruction to When the START command is given, the program's be executed. state is restored and the program continues execution where it left As in the START Cl; command, characters intended for the user program's input buffer are no longer intercepted by the System off. Interpreter. DEPOSIT Cl C2 . .. Cn;This command stores C2 in location Cl, C3 in location Cl+l, . .., Cn in location Cl+n-l. n is equal to or less than 10 decimal. A user can load a binary user program using the DEPOSIT command, although it is much easier using DDT-8. This command is useful when making small patches to stored programs. EXAMINE Cl This command causes Monitor to type the contents of the Dl locations starting at location Cl. Dl; Dl is equal to or less than l0 decimal. If Dl is not specified, the contents of location Cl is typed. 3.5.l Saving and Restoring Binary User Programs The SAVE, LOAD, R and RUN commands leave file Sl open on internal file 3, turn the user's interrupt system off, and reset the Wait Mask to its initial value. SAVE Sl; SAVE Sl Cl; SAVE Sl Cl C2; SAVE Sl Cl C2 C3; These commands write portions of the user's core image onto a file whose name is Sl . is the file address of the first word to be written; if Cl not specified, the entire 4K is written on the first 4096 words of the file. C2 is the core address of the first word to be written; if all 4096 words are written. not specified, C3 is the core address of the last word to be written; if not specified, 7777 is assumed. Example: SAVE NEWF; writes core words 0 through 7777 on words 0 through 7777 of file NEWF. LOAD Cl Sl; LOAD Cl Sl C2; LOAD Cl 51 C2 C3; LOAD Cl Sl C2 C3 C4; These commands read certain portions of the file whose owner's account number is Cl, and whose file name is Sl into core. C2 is the file address of the first word to be read; if not specified, words 0 through 7777 are read into words 0 through 7777. C3 is the core address of the first word to be loaded; if all 4096 words are loaded. not specified, C4 is the core address of the last word to be loaded; if not specified, 7777 is assumed. Example: LOAD NEWF 5 l0 l7; loads words 5 through l4 into words l0 through l7 respectively. R S]; This command is equivalent to OPEN 3 Si 2; LOAD 2 51; START 0 which loads program Sl from the System Library (account 2) and starts the program running. The accumulator (AC) and link are Cleared. 3—6 RUN $1; This command is equivalent to OPEN 3 Si; LOAD Sl; START 0 The accumulator (AC) and link are cleared. RUN c1 51,- This command is equivalent to OPEN 3 Si Cl; LOAD Cl Sl; START 0 The accumulator (AC) and link are cleared. This command stops the execution of the user program, saves its complete state, and sets the Switchboard so that all characters directed to the program's input buffer will be intercepted by System Interpreter. WHERE; This command causes Monitor to type out the current state of a user program's location counter, accumulator, link, and switch register. USER; This command causes Monitor to type out the number of the job and devices owned by the user. USER Cl; This command causes Monitor to type out the numbers of the devices owned by user Cl. If job 0 is specified, the numbers of unassigned devices are typed. SWITCH Cl; 3.6 This command sets the user's switch register to Cl . SWITCHBOARD Using Monitor commands the user may set, reset, and read any given bit in either the Permission Table or the Switchboard Table. See Section 2.2.l Character Transmission and Section 2.3 Permission and Switchboard Tables for a description of the meaning of bits in these tables. SET Ll L2 Cl L3 C2; This command sets a bit in either the Permission or Switchboard Table to a one. Ll L2 = = P denotes Permission Table S denotes Switchboard Table K denotes keyboard P denotes user program I denotes input buffer 0 denotes output buffer is the octal number of the keyboard or program Cl L3 = is the octal number of the buffer which is to receive C2 the characters from the character source. Monitor checks for appropriate ownership to decide whether it will allow the connection to be made. source The ownership of the character is used to determine legality in setting the Switchboard Table while the ownership of the character sink is used in setting the Permission Table. Examples: 3—7 SET P K 13 0 12; requests that keyboard number 13 be given permission to write on the printer (output buffer) of console 12. SET S P 41 16; informs Monitor that job number 4 would like to type out characters into the input buffer of user program 16. This request will be granted only if user 16 has previously given permission by SET P P 41 16; or by the equivalent IOT instruction (SSP). RESET L1 C2 C1 L3 C2; This command is identical in all respects to the SET command above except that the bit indicated by the parameters will be set to zero instead of one. READ L1 L2 C1 L3 C2; This command uses the same parameters to specify a bit in either the Permission or Switchboard Table as in the SET and RESET commands above. DUPLEX; Monitor will type out the value of the bit. This command is a shorthand command to set the Switchboard Table so that characters typed on the keyboard from which this command is issued will appear on the printer of that console. Example: DUPLEX; if the keyboard issuing this command is number ' 16, then this command is equivalent to SET S K 16 0 16; ALLOW c1; This command is shorthand to indicate that a user is given permission for keyboard number C1 to place characters in the output buffer of his console. Example: ALLOW 4 assume that this command was issued from keyboard number 27, then it is equivalent to SET P K 4 0 27; UNKCb This command is given by a user who wishes to communicate with a console other than the one at which he is setting. This command is legal only if the owner of the console has set the Permission Table so that he will accept characters from the requesting console into his printer's output buffer. The command is shorthand for the command ALLOW C1; followed by the command to set the Switchboard so that characters from the requesting console will be placed in output buffer number C1. LINK 32; Example: assume that the console which issued this command was number 7, then this command would be legal only if the owner of console number 32 had pre— viously set the Permission Table to allow keyboard 7 access to that output buffer. He could have done this with ALLOW 7; or by SET P K 7 0 32; or by equivalent IOT instruction executed by his program. If that permission has an been granted, the LINK command is equivalent to the following two Switch— board commands: SET P K 32 0 7; and SET S K 7 0 32; 32) (ALLOW 3.7 INTER- SYSTEM COMMUNICATION In those TSS/8 systems having a local connection to a PDP-lO Time-Sharing System or a Synchronous Data Communication System (Type 637), the input to the user's input buffer and program output is scanned for the character sequences CTRL/B CTRL/X and CTRL/B CTRL/Y, respectively. All characters up to the next CTRL/ B are diverted to the PDP—lO or 637 System, whichever the case may be. Characters from the PDP-lO and 637 System are directed into the user's input buffer. CHAPTER 4 INPUT/OUTPUT TRANSFER INSTRUCTIONS Whenever a user program executes an input/output transfer (IOT) instruction (an instruction of the form 6XXX) the system traps the instruction and transfers control to a system service or simulation These routines accomplish special tasks, set up parameters for the system, and perform input/ routine. output for the user program. IOT instructions may be separated by function into three types: a. Input/output instructions available on the standard PDP-8/I without a time-sharing when a user program executes one of these IOTs, TSS/ 8 simulates an input/output function similar to the function of the IOT instruction on the standard PDP-8/I. Some standard PDP-8/I IOT monitor - instructions are illegal in TSS8 (see Appendix C for a summary of legal IOTs). IOT instructions to request input/output service from TSS/8 unavailable on the standard b. these include requests for DECdisk, DECtape, high-speed paper tape reader and punch, card reader, and console character handling. PDP—8/I - c. IOT instructions which call subroutines to set user parameters or to alter the time—sharing environment for a particular user program or an alteration may, for example, include requests to add release facilites or to change mode of character handling. - An IOT instruction usually acts as a subroutine call. Therefore, depending upon the specific IOT instruction, parameters may be loaded into the accumulator (AC) before execution of the IOT. some cases, the parameter in the AC acts as a pointer to a parameter block in the user's program. In If the system has to return information to the user's program, it returns that information in the AC or in a block of locations in the user's program (the beginning address of this block is in the AC). 4.l PROGRAM CONTROL Check Status (CKS) Octal Code: 6200 Operation: There are three status registers, STRO, STRI, and STR2. All three registers are read by the CKS instruction, and the accumulator (AC) is cleared. Before executing CKS, load the AC with the address ofa 3-word block. Word l: STRO Word 2: Word 3: STRI STR2 Executing CKS will store in The formats of these registers are: STRO Bits 0 Run Bit Unconditional run (this bit is turned on when the program is started by the System Interpreter) 1 PI Enable ION has been executed by user program 2 Source Input buffer source is being recorded 4-! ST R0 Bits 4 Binary 5 JSIOT 6 JSIOTC Input buffer time is being recorded Card reader mode: alphanumeric (0), binary (T) Non-resident IOT call (system use only) Copy IOT results to user (system use only) Error Code Bits 7 through Tl specify a system error code 0 Timer Time is up 1 File 0 Internal file 0 is not busy 2 File 1 3 File 2 File 3 Delimiter Internal file l is not busy Internal file 2 is not busy Internal file 3 is not busy There is a delimiter in the input buffer There is a character in the input buffer Output buffer is not full 3 Time 7 through H STR] Bit_s_ 4 5 6 7 Keyboard Teleprinter 8 Reader 9 Punch Character in reader buffer Punch buffer is not full 10 Error System error detected, code in bits 7 through ll of STRO Tl Wait Job is not waiting 0 Plotter Plotter flag 1 DTO Flag 2 DTO Error 3 DTT 4 DTl Error DECtape flag unit 0 DECtape error flag unit 0 DECtape flag unit 1 DECtape error flag unit 1 STR2 Bits Flag 5 Unused Card Reader Character in card reader buffer 7 CR No Ready Card reader not ready 8 CR End File 9 LP Error Card reader end of file Line printer error 10 LP Done 6 1] Set Interrupt Mask (SIM) Line printer done Unused Octal Code: 6000 Operation: TSS/8 simulates the PDP—8 program interrupt system for the user. may request this mode of operation by executing the ION instruction. will cause an immediate transfer to location i of the user program. A user program A simulated interrupt The user's current loca- tion (Program Counter) before the interrupt, is stored in location 0 and the interrupt system is disabled (bit I of STRO= 0). Ifthe instruction following the ION is a JMP or JMS in- struction, it is simulated by the system before returning control to the user's program. The SIM instruction enables the user program to set those conditions which will result in simulated program interrupts. The system provides a mask called the Program In- terrupt Mask, which has the same format as the two status registers STRI and STR2 (see CKS). Before executing the SIM instruction, load the AC with the address of a 2-word After executing the SIM instruction, a bit match between the block containing the mask. status registers and the Program Interrupt Mask will result in a simulated interrupt if the interrupt system is enabled. cause The user's program may do a CKS instruction to determine the of the interrupt. The Program Interrupt Mask is normally set to 0074 7677 and is reset only on LOGOUT. Read Interrupt Mask (RIM) Operation: The AC is cleared by SIM. Octal Code: 6003 The Program Interrupt Mask is read into two locations starting at the location whose address is in the AC, and the AC is cleared. Interrupt Turn On (ION) Octal Code: 6001 Operation: This instruction enables TSS/ 8 to respond to a user program interrupt request by setting bit 1 of STRO = I. If the user interrupt is disabled (bit 1 of STRO = 0) when this in- struction is given and the following instruction is a JMP or JMS instruction, it, then enables the interrupt by returning control to the user program. no TSS/8 executes This instruction has effect if given when the user interrupt is enabled. Interrupt Turn Off (IOF) Operation: STRO = Octal Code: 6002 This instruction disables the user program interrupt system by setting bit I of 0. Set Wait Mask Operation: (SWM) Octal Code: 6005 The user program may request to be dismissed until some condition has been met. This is done by setting a mask through which the system will observe the status register of the user program. Load the AC with the address of a 2-word block containing 1 bits in the desired 4-3 wait conditions. cleared. The two words are inclusively ORed with the wait mask and the AC is In general, flag test IOTs whose skip condition is not met and requested [/0 operations which cannot be performed immediately, cause the program to be dismissed until the condition is met. For example, suppose it is desired that the user program be dismissed until any character is typed, then TAD MASK SWM KSF MASK 0040 , 0000 would have the desired effect. The normal setting of the Wait Mask is 0001 7767 and is reset on LOGIN, Clear Wait Mask (CWM) SAVE, LOAD, R and RUN commands. Octal Code: 6006 Same as Set Wait Mask (SWM) except that the selected bits are cleared and Operation: the AC is cleared. Read Wait Mask (RWM) Operation: Octal Code: 6007 The contents of the user's Wait Mask are read into two successive locations be— ginning at the word whose address is in the AC, and the AC is cleared. Wait (WAIT) Operation: Octal Code: 6410 The user's program is dismissed until it is re-scheduled by some status bit/Wait Mask match. The user may read the status registers to determine the restart conditions. User (USE) Octal Code: 6421 Operation: Return in the AC the number of the current iob. 4—4 Octal Code: 6422 Console (CON) Return in the AC the smallest unit number of the unslaved consoles assigned to Operation: the job whose number is in the AC. If the AC is 0, the number of an unassigned console is returned; if it does not exist, —l is returned. Octal Code: 64]] User Run Time (URT) Returns the total run time of the user program in the two locations starting at the Operation: location whose address is in the AC. Time—Of-Day (TOD) Octal Code: 64l2 Returns the value of the System Clock in the two locations starting at the loca— Operation: tion whose address is in the AC. Return Clock Rate (RCR) The AC is cleared. Octal Code: 64l3 The number of milliseconds per clock tick is returned in the AC. Operation: Date The AC is cleared. Octal Code: 6414 (DATE) Operation: Returns the date in the AC. The format of this 12-bit number is DATE=((YEAR-i964)*12*(MONTH-i ))*3]+DAY—i Skip On TSS/8 (TSS) Octal Code: 6420 Operation: This instruction is used by programs which run under both TSS/8 and a standard PDP-8/l. Under TSS/8, the instruction following TSS will be skipped. On a standard PDP—8/I, the IOT has the effect of a NOP instruction. Halt (HLT) Octal Code: 7402 Operation: This instruction is used to stop the user program and to pass control to the System Interpreter. Executing HLT is exactly equivalent to typing CTRL/B S RETURN. micro-coded with other group 2 IOT's (see Small Computer Handbook, C-800). HLT may be Octal Code: 6415 Quantum Synchronization (SYN) Operation: Upon execution of this instruction, the system will dismiss the user program and set it in the run state so that it will be run again next time through the "round—robin. " Ordinarily, this instruction is used to insure a full time quantum to perform some critical operation . Octal Code: 6416 Set Timer (STM) The system provides a clock time for each user program. Operation: By means of this IOT, the timer may be set to "fire" after a specified number of clock ticks have elapsed. Load the AC with the time in ticks to prime the timer. Upon execution of the STM instruction, the system sets the timer to IIfire" in the specified number of ticks, and turns the timer bit (bit 0) in status register 1 to 0 and clears the AC. After the specified time has elapsed, the system turns bit 0 back to l. The timer mechanism may be used three ways: and use the CKS IOT to find out when the time is up feature i) The user may set the time going 2) The timer may be used with the Wait . /Prime timer with 5000 8 ticks TAD C5000 STM /Set the Wait Mask to check bit 0 /of status register 1 TAD MASK SWM MASK , 4000 C5000, 5000 0000 Here the user program will be dismissed until 5000 ticks have elapsed 3) The time may also be used in coniunction with the interrupt system. In this case, an interrupt will occur after the specified number of ticks. Assign Device (ASD) Operation: Octal Code: 6440 If the device specified by the contents of the AC is available, it will be assigned to the user program and the AC cleared. the device is placed in the AC. Otherwise, the number of the user program having If the device does not exist, 7777 is returned in the AC. The left half of the AC specifies the device type and the right half specifies the unit number. AC Bits 6—ll AC Bits 0—5 Device 0 K Console K 40 0 40 I 40 2 Paper tape reader Paper tape punch Line printer 40 3 Plotter 40 4 Card Reader 40 N+5 DECtape unit N This assignment is in effect until a corresponding REL instruction or LOGOUT is encountered. Release Device (REL) Octal Code: 6442 Operation: The device specified by the contents of the AC is released. not assigned by ASD, the release is a NOP. Otherwise, the device is made available to other users. The AC is cleared. Octal Code: 6402 Slave A Console (SLV) Operation: SLV enables a user program to slave a console belonging to the user. console is slaved, the call as If the device was When a (CTRL/B) character is treated as an ordinary character rather than the System Interpreter call character. This means that the slaved console may not call the System Interpreter. Load the AC with the number of the console to be slaved, then execute SLV. If the console specified does not belong to the user, this IOT will be considered illegal and the AC will be non—zero. Otherwise, the AC is cleared. Unslave A Console (UNS) Operation: Octal Code: 6403 UNS removes a slaved console from the slave state. its power to call the The call character resumes System Interpreter. Load the AC with the number of the console to be released from the slave state, then execute UNS. If the console specified is not a slave or does not belong to the user, this IOT will be considered a NOP. The AC is cleared. Set Switchboard and Permission Tables (SSP) Operation: Octal Code: 6404 SSP is used to set, reset, and read bits in the Switchboard and Permission Tables. Its use mirrors the format of the Monitor commands for the same purpose. Load the AC with the beginning address of a 3-word block: Bits 0 and l contain 0, l, 2, Word 1: or 3 reset the bit in the table 1 read the bit in the table — the value of the bit is returned in the AC after executing SSP 2 set the bit in the table 3 link - set both tables Bit 9 contains 0 or T 0 reference the Switchboard Table 1 reference the Permission Table Bit 10 contains 0 or T 0 reference the keyboard rows of the table l reference the programs typing out rows of the table Bit ll contains 0 or T 0 reference the input columns of the table 1 reference the output columns of the table contains the number of the keyboard or program typing out Word 2: to be referenced contains the number of the input or output buffer to be Word 3: referenced If SSP is executed, the AC is set to 0, otherwise, to 7777. use As an example of the of SSP to duplicate the effect of the Monitor command SET P K 13 0 7; (set the Permission Table to give permission for the keyboard of console 13 to type into the output buffer of con— sole 7) execute the fol lowing sequence: TAD ARRAY SSP ARRAY, .+l 4005 13 7 As an example of console linking, the Monitor command LINK 3; to (set the Permission Table give permission for the keyboard of console 3 to type into the output buffer of this job and set the Switchboard Table to route keyboard console 3) is equivalent to: input to this job to the output buffer of USE CON DCA TABLE+2 TAD TABLE SSP TABLE, .+1 6000 0 3 Set Switch Register (SSW) Operation: Octal Code: 6430 Each user program has a switch register corresponding to the PDP-8/ I switch register. This IOT stores the contents of the AC in the user's switch register, and the AC is cleared. OR With Switch Register (OSR) Octal Code: 7404 Operation: The contents of the user's switch register are inclusively ORed into the AC. OSR may be micro-coded with other group 2 IOT's (see Small Computer Handbook, FILE CONTROL 4.2 All bulk data storage for user programs is on file on the disk. lectively as file storage. or C-800). This area is referred to col- A user program may read or write a file to handle bulk input/output of text binary information. Files are composed of sequential segments of file storage. The size of a file segment is an integer multiple of disk records specified at system initialization time. machine words. of the file. not more A record consists of 128 12-bit Files are at least one segment long and grow by adding additional segments to the end Each file is registered in the OWner's file directory by a name which may be any string of than six 6—bit characters. Each user may refer to four files simultaneously. associated with each of the user program's active files. numbers. An internal file number (0, l, 2, or 3) is All references to file storage is by internal file The act of assodating an internal file number with a file referenced by an account number and name is called l'opening" the file. All file IOTs that are successfully completed return to the user with the AC cleared. zero as AC indicates that an error was detected and the IOT was not performed. follows: A non- The error messages are AC = 4000 AC = 4400 The internal file specified is not open The file is open to another user AC = 5000 The directory is full = 6000 File protection violation = 7000 = 7400 File not found Disk is full AC AC AC Read File (RFILE) and Write File (WFILE) Operation: Octal Codes: 6603 and 6605 Once the association of a file with an internal file number has been made, these IOTs allow the actual file reference to be made. They are illegal on a file that has not been opened (associated with an internal file number). To read or write a file, load the AC with the address of a 6—word block, then execute the IOT. The format for the 6-word block is: Word 1: contains the high—order file word address Word 2: contains the internal file number Word 3: contains the negative of the number of words for the operation. This number will be either the number of words to be read or the number of words to be written. Word 4: contains a pointer to the beginning address —l of a buffer lo- cated in the user program. On a read operation this buffer will receive the information from the file; on a write operation this buffer holds the information that is to be sent to the file. Word 5: contains the least significant 12 bits of the initial file word address to begin the operation. Word 6: contains an error code: 0 if no error i if parity error 2 if file shorter than word count 3 if file not open 4 if protection violated The read or write begins at the word specified by words i and 5. For example: TAD X WFI LE ,+1 0 i -200 6477 200 means, write 200 words starting at word 200 of the file that is associated file number i from a buffer starting at location 6500. 4-10 with internal After the IOT is given, the file request is placed in the file request queue, and the corresponding file-inactive bit is cleared in status register 1 for the user program. Execution of the user program continues immediately without waiting for the file request to be com— pleted. If the Wait Mask contains a i in the bit corresponding to the inactive bit for that file, however, the user program will be dismissed until the file request has been completed. The file queue is one deep for each of the user program's internal file numbers, therefore, four different file requests may be overlapped if they refer to the four different internal file numbers. An attempt to overlap a file request on the same internal file number will result in the user program being dismissed until the first request on that internal file number has been completed. After completion of any file request, the corresponding file inactive bit in status register 1 is set to i and the word count (word 3) and core address (word 4) are updated, and the error code is set in word 6. Octal Code: 6600 Rename A File (REN) REN is used to change the name of a file. Operation: Load the AC with the beginning address of a 4-word block, where contains the internal file number associated with the file whose name is to be changed, that is, to rename a file one must first open it, otherwise, REN is illegal. Word 1: Words 2 through 4: contain the new name. This name is in 6—bit characters packed two to a word. Open A File (OPEN) Operation: Octal Code: 6601 OPEN is used to assOciate a file with an internal file number. This process, called "opening", is necessary since all file operations are in terms of the internal file numbers. Before executing the OPEN IOT, load the AC with the beginning address of a 5-word block, Where Word 1: contains the internal file number. Word 2: contains the account number of the owner of the file. the account number of the current user is specified. Word 3 through 5: contain the name of the file to be opened. If 0, This name is in 6—bit characters packed two to a word. If there was another file associated with the internal file number before the execution of the OPEN IOT, it will be closed automatically before the new file is associated with the internal file number. 4-H Close A File (CLOS) Operation: Octal Code: 6602 CLOS terminates the association between files and their internal file numbers. Before executing CLOS, load the AC with a selection pattern for the internal file numbers whose associated files are to be closed. The file is closed if bit I is l, where l = bit 0, l, 2, or 3. Octal Code: 6604 Protect A File (PROT) Operation: The owner of a file may protect his file from unauthorized attempts to access it by using this instruction. Before executing PROT, load the AC with Bits 5 through 6 Internal file number of the reserved file to be protected. Bit 7 Write protect against owner. Bit 8 Write protect against users whose proiect number is same as owner's. Read protect against users whose project number is same as Bit 9 owner's. Bit 10 Write protect against users whose proiect number differs from owner's. Read protect against users whose proiect number differs from Bit it owner's. A file must be opened before it can be protected. PROT is legal only when performed by the file owner, that is, the user who created the file. All attempts to access the file which violate any of the protection flags will be considered illegal. File Information (FINF) Operation: an Octal Code: 6613 FINF enables a user program to determine what file, if any, is associated with internal file number. Word 1: Load the AC with the beginning address of a 7-word block, where contains the internal file number for which the user program wishes information. Words 2 through 7 will contain the information that the system returns after executing FINF. Word 2: contains the account number of the owner or zero if no file is associated with the internal file number, that is, the file is not open. Words 3 through 5: contain the name of the file in 6-bit code. Word 6: contains Means Bit=i 7 write protected against OWner 8 write protected against users whose proiect number is same as owner's 9 read protected against users whose proiect number is same as owner's 10 write protected against users whose proiect number differs from owner's ll read protected against users whose proiect number differs from OWner's Word 7: contains the number of segments that the file contains. Create A File (CRF) Octal Code: 6610 Operation: The user may request the system to create a new file of one segment. program provides the new name for the file. The user Load the AC with the beginning address of a 3-word block, where Words 1 through 3: contain the 6-character name. If there is some reason why the request cannot be granted, the system will return a non-zero error code in the AC. The protection of a newly created file is 17. Extend A File (EXT) Operation: Octal Code: 66'” To extend the length of an existing file, that file must be currently open. Load the AC with the beginning address of a 2-word block, where Word l: contains the internal file number of the file to be extended. Word 2: contains the number of segments the system should append to the file. If for some reason the request to extend a file cannot be granted, the AC will contain 4000, 4400, 6000, or the number of segments it failed to append. RedUce A File (RED) Operation: Octal Code: 6612 To reduce the length of an existing file, that file must be currently open. Load the AC with the beginning address of a 2-word block, where Word 1: contains the internal file number of the file to be redUced. Word 2: contains the nUmber of segments to be removed. This request will always be granted. Octal Code: 6614 Segment Size (SIZE) Operation: The number of words per segment is returned in the AC. Octal Code: 6617 Account (ACT) Operation: The account number of the job whose number is in the AC is returned in the AC. If the AC is 0, the current iob is assumed. If 0 is returned in the AC, the specified iob does not exist. Octal Code: Who (WHO) Operation: 6616 The account number and password of the current job are returned to the three— word block whose address is in the AC, and the AC is cleared. 4.3 INPUT BUFFER CONTROL Set Keyboard Break (KSB) Operation: Octal Code: 6400 Rather than activate the user program to receive each character as it is placed in the input buffer, TSS/8 saves time by activating the program only on certain conditions specified by the user. These activation conditions are called delimiters. Before executing KSB, load the AC with a 12—bit delimiter table. The format of the table is as follows: (where each bit 1) = Specifies EL 0 1 2 3 4 change of character source all letters all numerals horizontal tab vertical tab space line feed form feed carriage return ! II I ; : ? [ & 1 ( / < 8 @ \ 9 RUBOUT ALT MODE all characters not specified in bits 1 through 10 5 6 7 10 11 I * ) - . = # 4-14 i > « $ % When a bit in the table is set to 1, the user's program is activated if the condition the bit represents is met by the incoming character, or if the input buffer becomes full. table is initialized to 3777 on LOGIN and ASSIGN. Set Buffer Control Flags (SBC) Operation: The delimiter KSB clears the AC. Octal Code: 6401 SBC permits the user program to clear his input and output buffers and control the recording of character time and source in his input buffer. Before executing SBC, load the AC with the desired flags whose functions are Bit 0 Clear output buffer 1 Clear input buffer Record character source Record character time 2 3 If bit 2:1, the source of each character in the input buffer is recorded in the following character position. The source from which the character was generated is indicated by the 8-bit character as follows: OXX 1XX Console XX keyboard User program XX typing out 172 637 typing out 174 PDP—10 typing out 177 System Interpreter typing out Bit 2 of status register 0 is set to 1. If AC bit 2:0, source recording in the input buffer is suppressed and bit 2 of status register 0 is set to 0. If AC bit 3=1, the time of receipt of each input character is recorded in the two sUccessive character positions following the character or following the source. If the time is being recorded, bit 3 of status register 0 is set to 1. If AC bit 3:0, time recording in the input buffer is suppressed and bit 3 of status register 0 is set to 0. The AC is cleared by SEC. Skip On Keyboard Flag (KSF) Operation: Octal Code: 6031 The keyboard flag is sensed, and if it contains a binary 1, the contents of the PC is incremented by one so that the next sequential instruction is skipped. The keyboard flag is bit 6 of status register 1, and it has a value of 1 whenever the input buffer is not empty. If the keyboard flag is 0 and the keyboard wait flag (bit 6 of wait register 1) is 1, the iob is placed in the active state until the keyboard flag is 1. is 0, control returns to the calling program immediately. 4—15 If the keyboard wait flag Clear Keyboard Flag (KCC) Octal Code: 6032 Event Time: 2 Operation: The AC is cleared, and if the input buffer is empty, the keyboard flag is cleared. Read Keyboard Buffer Static (K RS) Octal Code: 6034 Event Time: 3 Operation: If the input buffer is not empty, the next character from the input buffer is inclusively ORed into bits 4 through ll of the AC. the AC nor the keyboard flag is cleared. This is a static command in that neither If the input buffer is empty and the keyboard wait flag is 0, no operation is performed and control returns immediately to the user's program. If the keyboard wait flag is l, the iob is placed in the active state until the keyboard flag isl. Read Keyboard Buffer Dynamic (KRB) Octal Code: 6036 Event Time: 2, 3 Operation: Identical to KCC followed by KRS. Read Keyboard String (K SR) Operation: Octal Code: 6030 Before executing KSR, load the AC with the address of a 2—word block, where Word 1: contains the negative of the number of characters to read. Word 2: contains the address —l of the first word of the buffer. If the keyboard wait flag is 1, control does not return to the user program until a break condition (see KSB) is satisfied or until the word count in Word 1 is reduced to zero. If the keyboard wait flag is 0, control returns to the user program immediately; control returns to the location following the KSR, the negative of the number of characters remaining to be transferred is in Word 1, and word 2 points to the last character stored. 4.4 The AC is cleared. OUTPUT BUFFER CONTROL Send A String (SAS) Operation: Octal Code: 6040 To send a string, load the AC with the address of a 2-word block, where 4-16 Word l: contains the negative of the number of characters to be sent. Word 2: contains the address -1 of the first word of the string. The characters are stored one per word right iustified starting at the address specified by word 2. Upon execution of SAS, the system takes only as many characters as will fit in the output buffer. It then makes the appropriate adjustment to word 2 to indicate a new starting address and to word 1 to indicate the reduced character count; it returns to the instruction following the SAS. SAS is skipped. If the character count is reduced to zero, the instruction following the The instruction following the SAS may contain a JMP .-l to continue the In this case, the user program will dismiss until the block transfer of Teletype characters. Teletype output buffer is nearly empty. a If the user wishes to avoid dismissal, he can place jump to another part of his program in the instruction following SAS. The AC is cleared by SAS. Skip on Teleprinter Flag (TSF) Event Time: Octal Code: 6041 1 Operation: The teleprinter flag is sensed, and if it contains a binary l, the contents of the PC is incremented by one so that the next sequential instruction is skipped. The teleprinter flag is bit 7 of status register 1, and has a value of T if the output buffer is not full. If the teleprinter wait flag is 0, control returns to the user program immediately, otherwise, control returns when the teleprinter flag is 1. Clear Teleprinter Flag (TCF) Event Time: Octal Code: 6042 2 Operation: The teleprinter flag is cleared to zero. Load Teleprinter And Print (T PC) Event Time: Octal Code: 6044 3 Operation: The character in bits 4 through ll of the AC is typed out and routed through the switchboard to all buffers connected to the user's program character output. 4—17 Load Teleprinter Sequence (T LS) Octal Code: 6046 Event Time: 2, 3 Operation: 4.5 Same as TPC. HIGH-SPEED PAPER TAPE READER Octal Code: 6011 Skip On Reader Flag (RSF) Event Time: 1 Operation: The reader flag is sensed, and if it contains a binary 1, the contents of the PC is incremented by one so that the next sequential instruction is skipped. The reader Flag is bit 8 of status register 1, and has a value of 1 if the reader buffer is not empty. If the reader wait flag in the wait mask is 1, the program is dismissed until the reader flag is 1, otherwise, control returns to the user program immediately. Octal Code: 6012 or 6016 Read Reader Butter (RRB) Event Time: 2 Operation: The contents of the reader buffer is transferred into bits 4 through 11 of the AC and the reader flag is cleared it the reader buffer is empty. the AC. This instruction does not clear If the reader buffer is empty and the reader wait flag is 1, the user program is dis- missed until the reader flag is 1. If the reader buffer is empty and the reader wait flag is 0, this IOT is a NOP. Reader Fetch Character (RFC) Octal Code: 6014 Event Time: 3 Operation: The reader flag and the Monitor reader buffer are both cleared, the reader is started to fill the Monitor reader buffer and the reader flag is set after the first character is read. Read Reader String (RRS) Operation: reader. Octal Code: 6010 RRS allows a user program to read a string of characters from the paper tape Before executing RRS, load the AC with the beginning address of a 2-word bIOck, where Word 1: contains the negative of the number of characters to read. Word 2: contains the address —1 of the first word of a buffer. 4-18 If the reader wait flag in the wait mask is l, the program is dismissed until the transfer is completed, otherwise, control returns to the user program immediately. The reader flag is set to l 4.6 when the transfer is complete. The AC is cleared by RRS. HIGH-SPEED PAPER TAPE PUNCH Octal Code: 602] Skip On Punch Flag (PSF) Event Time: 1 Operation: The punch flag is sensed, and if it contains a binary l, the contents of the PC is incremented by one so that the next sequential instruction is skipped. The punch flag is bit 9 of status register 1, and has a value of i if the punch buffer is not full. If the punch flag is l and the punch wait flag is l, the program is dismissed until the punch flag is i. If the punch flag is 0 and the punch wait flag is 0, returns to the user program no operation is performed and control immediately. Clear Punch Flag (PCF) Octal Code: 6022 Event Time: 2 Operation: If the punch buffer is not full, the punch flag is cleared in preparation for punching the next character from the computer. wait If the punch buffer is full and the punch flag is l, the program is dismissed until the punch flag is i. and the punch wait flag is 0, no If the punch buffer is full operation is performed and control returns to the user pro- gram immediately. Load Punch Buffer and Punch Character (PPC) Octal Code: 6024 Event Time: 3 Operation: An 8-bit character is transferred from bits 4 through ll of the AC into the punch buffer and then this character is punched. PPC does not clear the punch flag. If the punch buffer is full and the punch wait flag is l, the program is dismissed until the punch flag is i. If the punch buffer is full and the punch wait flag is 0, control returns to the user program immediately. no operation is performed and Load Punch Buffer Sequence (PLS) Octal Code: 6026 Event Time: 2, 3 Operation: Identical to PCF Followed by PPC. Punch String (PST) Octal Code: 6020 PST allows a user program to punch a string of characters. Operation: Before executing PST, load the AC with the beginning address of a 2—word block, where Word 1: Word 2: contains the negative of the number of characters to be punched. contains the beginning address --1 of the string to be punched; the characters should be right iustified one per word. Upon execution of PST, the system takes only as many characters as will fit in the punch buffer; it then makes the appropriate adjustment to word 2 to indicate a new starting address and to word 1 to indicate the reduced character count. It returns to the instruction follow— ing the PST. If the character count is reduced to zero, the instruction Following PST is skipped. 4.7 The AC is cleared by PST. DECTAPE Octal Code: 6764 Load Status Register A (DTXA) Operation: DTXA allows a user program to read and write records (l28—word blocks) on DECtape. Load the AC with the beginning address of a 4-word block, where Word l: contains Bit=l contain the transport unit select number 0-2 6-8 9 = = lO-ll 2 for read data function 4 for write data function 0 to l to enable disable DECtape control flag (DTCF) and error flag from causing a program interrupt. DECtape control flag (DTCF) and error to cause flag program interrupt unused Word 2: contains the beginning DECtape block number Word 3: contains the negative of the number of records to transfer Word 4: contains the beginning core address —1 of record buffer After DTXA is given, the DECtape request is placed in the DECtape request queue and the DECtape and error flags are cleared in status register 2. Execution of the user program con— tinues immediately without waiting for the 4-20 DECtape request to be completed. If the wait mask contains a 1 bit corresponding to the DECtape flag of the selected unit, the program will be dismissed until the DECtape request has been completed. The DECtape queue is one deep for each unit, therefore, four different DECtape requests may be overlapped if they refer to different units. An attempt to overlap a DECtape request on the same Unit will result in the user program being dismissed until the first request has been completed. After the completion of any DECtape request, the corresponding DECtape flag in status register 2 The AC is cleared by DTXA. is turned on. Octal Code: 6771 Skip On Flags (DTSF) Event Time: 1 Operation: The contents of both the error flag and the DECtape flag is sampled, and if either flag contains a binary l, the contents of the PC is incremented by one to skip the next sequential instruction. If both flags are zero and if either of the corresponding wait flags are l, the user program is dismissed until the skip condition is satisfied. Octal Code: 6772 Read Status Register B (DTRB) Event Time: 2 Operation: The contents of DECtape status register B is loaded into the AC by an OR trans- fer. The AC bit assignments are: error O~U1->QJN—'O 4.8 flag mark track error | = ..,. 3' .1O C (O 3' || _.| —I II end of tape select error parity error timing error unused DECtape flag AUTOMATIC LINE PRINTER The Automatic Line Printer and Control (Type 645) IOT instructions are simulated precisely as they appear in the Small Computer Handbook. The line printer error flag is bit l0 of status register 2, and the done flag is bit ll of the some register. The wait mask and priority interrupt mask have the same significance as with other devices. 4-21 Octal Code: 6651 Skip On Line Printer Error (LSE) Event Time: 1 Operation: The contents of line printer error Flag is sensed, and if it contains a binary 1, indicating that an error has been detected, the contents of the PC is incremented by one so that the next sequential instruction is skipped. If Line Printer Error Flag Symbol: = 1, then PC+l "PC Octal Code: 6652 Clear Printer Buffer (LCB) Event Time: 2 Operation: Both sections of the line printer buffer are cleared in preparation for receiving new character information 0 Symbol: " . LPB Octal Code: 6654 Load Printer Butter (LLB) Event Time: 3 Operation: A section of the printer buffer is loaded from the contents of bits 6 through ll of the AC, then the AC is cleared. AC 6 through ll Symbol: " LPB, then 0 "AC Skip On Line Printer Done Flag (LSD) Event Time: Octal Code: 6661 1 Operation: The contents of the line printer done flag is sensed, and if it contains a binary l, the contents of the PC is incremented by one so that the next sequential instruction is skipped. If Line Printer Done Flag Symbol: Clear Line Printer Flags (LCF) = 1, then PC + l *PC Octal Code: 6662 Event Time: 2 Operation: Symbol: The line printer done and error flags are cleared. 0 " Line Printer Done Flag 0 ‘* Line Printer Error Flag 4-22 Clear Format Register (LPR) Octal Code: 6664 Event Time: 3 Operation: The line printer format register (FR) is cleared and then loaded From the contents of bits 9 through 11 of the AC, and the AC is cleared. the printer buffer (LPB) loaded last is printed. The line contained in the section of Paper is advanced in accordance with the selected channel of the Format tape it the contents of AC8 is a T. If AC8 is a 0, paper advance is inhibited. 4.9 INCREMENTAL PLOTTER The Incremental Plotter and Control (Type 3503) IOT instructions are simulated precisely as they appear in the Small Computer Handbook. The plotter flag is bit 0 of status register 2. The wait mask and priority interrupt mask have the same significance as with other devices. Skip On Plotter Flag (PLSF) Event Time: Octal Code: 6501 1 Operation: The plotter flag is sensed, and if it contains a l the contents of the PC is incremented by one so that the next sequential instruction is skipped. If Plotter Flag Symbol: = Clear Plotter Flag (PLCF) Event Time: i, then PC + 1 "PC Octal Code: 6502 2 Operation: The plotter flag is cleared in preparation for issuing a plotter operation command. Symbol: 0 Pen Up (PLPU) Event Time: " Plotter Flag Octal Code: 6504 3 Operation: The plotter pen is raised from the surface of the paper. Pen Right (PLPR) Event Ti me: Octal Code: 6511 1 Operation: The plotter pen is moved to the right in either the raised or lowered position. 4-23 Drum Up (PLDU) Event Time: Octal Code: 6512 2 Operation: The plotter paper drum is moved upward. This instruction can be combined with the PLPR and PLDD instructions. Drum Down Octal Code: 6514 (PLDD) Event Time: 3 Operation: The plotter paper drum is moved downward. Pen Left (PLPL) Octal Code: 6521 Event Time: 1 Operation: The plotter pen is moved to the leFt in either the raised or lowered position. Drum Octal Code: 6522 Up (PLUD) Event Time: 2 Operation: The plotter paper drum is moved upward. This instruction is similar to PLDU except that it can be combined with PLPL or PLPD instructions. Octal Code: 6524 Pen Down (PLPD) Event Time: 3 Operation: The plotter pen is lowered to the surface of the paper. 4.10 CARD READ ER Skip on Card Reader Flag (CRSF) Octal Code: 6632 Event Time: 2 Operation: The contents of the card reader flag is sensed, and if it contains a 1 (indicating that the card column is present for reading), the contents of the PC is incremented by one so that the next sequential instruction is skipped. The card reader flag is bit 6 of status register 2 and it has the value 1 if a card is in the card buffer. card reader wait flag is If the card reader flag is 0 and the 1, the program is dismissed until the card reader flag is 1; otherwise, control returns to the user program immediately. 4-24 Octal Code: 6634 Read Card Equipment Status (CERS) Event Time: 3 Operation: The contents of the card reader flag and status flags are transferred into the contents of bits 7 through 9 of the AC. 7 card reader flag 8 not (1 if card in T58 card reader buffer) ready (covers not in place, power is off, start pushbutton has not been pressed, hopper is empty, stacker is full, a card is jammed, a validity check error has been detected, or the read circuit is defective) end of file (EOF) (hopper is empty and operator has pushed EOF button) 9 Read Card Reader Buffer (CRRB) Event Time: The AC bit assignments are: Octal Code: 667] 1 Operation: The contents of the card column buffer is transferred into the AC and the card reader flag is cleared if the card reader buffer is empty. or binary information. One CRRB reads either alphanumeric If the card reader buffer is empty and the card reader wait flag is l, the program is dismissed until the card reader flag is T. and the card reader wait flag is 0, no If the card reader buffer is empty operation is performed and control returns to the user program immediately. Select Alphanumeric (CRSA) Event Time: Octal Code: 6672 2 Operation: The card reader alphanumeric mode is selected and a card is read into the card reader buffer. Information read into the card reader buffer is in 6—bit alphanumeric form (the Hollerith code representing the decoded lZ-row character in one column). If the card reader wait flag is l, the user program is dismissed until the card reader flag is 1; otherwise, control returns to the user program immediately. Select Binary (CRSB) Octal Code: 6674 Event Time: 3 Operation: The card reader binary mode is selected and a card is read into the card reader buffer in l2-bit binary form. If the card reader wait flag is l, the user program is dismissed until the card reader flag is 1; otherwise, control returns to the user program immediately. 4—25 Upon instruction to read the card reader buffer, the contents of the l2-bit column is transfen'ed into the AC. In the alphanumeric mode a 6—bit Hollerith code is transferred into bits 6 through ll of the AC, and bits 0 through 5 of the AC are cleared. In the binary mode, the binary contents of the 12 bits (or rows) in a card column are transferred into the AC so that row X is read into AC bit 0, row 9 into AC bit ii. Read Card String (RCS) Operation: row Y into AC bit 1, row 0 into AC bit 2, .. ., and The mode is specified by either the CRSA or CRSB instruction. Octal Code: 6630 RCS allows the user program to read a string of characters from the card reader. Before exeCUting RCS, load the AC with the beginning address of a 2—word block, where Word 1: contains the negative of the number of columns to be read. Word 2: contains the address -l of the first word of a buffer. If the transfer is terminated before the column count has been reduced to zero, the card reader flag is turned on the words 2 and l contain the address —l of the next buffer location and the negative of the number of columns remaining to be read, packed right justified, one per word independent of mode. 4—26 respectively. Columns are CHAPTER 5 ERRO R DIAGNOSTICS 5.I USER PROGRAM The following error messages are typed on the user's printer by the Error Phantom when error conditions occur in a running user program. If the user program is not era bled for system error interrupts, the error messages are typed in the following format. Sl FOR USER CI AC=C2, L:C3, PC=C4 INSTR=C5 Si is a string, describing the nature of the illegal instruction C5 which user program CI has executed at location C4. At the time the illegal instruction was executed the value of the accumulator was C2 and the value of the link was C3. For example, ILLEGAL IOT The user program has executed an IOT which the system regards illegal. The illegality may be for one of two reasons: as 5.2 I. The IOT itself may be illegal. 2. The parameters to a legal IOT may invalidate it. SYSTEM INTERPRETER The following error messages result from illegal requests to the System Interpreter. They are printed by the System Interpreter on the printer. SI ? The System Interpreter does not understand the command. SI ILLEGAL REQUEST 2 command The user has requested an illegal service. This error usually results when some parameter has been given an incorrect value or the request refers to a facility not owned by the user. SWITCHBOARD ERROR The user has attempted to set a Permission Table bit not owned by him; or the user has attempted to make a connection in the Switchboard Table for which permission has not been granted. SAVE LIMIT ERROR The user has given invalid bounds in the command to save binary core image. The first bound must be lower than the second. CONSOLE IN USE The user has tried to log in on a console which is already in use; or he has attempted to add a console to those he already LOGOUT TO RELEASE owns. LOGIN PLEASE The user has attempted to use a console which is not logged in. UNAUTHORIZED ACCOUNT FULL Cl HAS S] The user has attempted to log into the system with an invalid account number or name. This message may appear on an attempt to log into TSS/8 From It means that all disk swapping tracks are in use. a console. Job Cl had device Sl; the request For its acquisition cannot be granted. Cl = 5] = iob number device name APPENDIX A TSS/8 CHARACTER SET TSS/8 accepts 8-bit ASCII character only. Information Interchange. listed below The acceptable characters and their 6- and 8-bit octal equivalence are . _______Character 6-Bir* 8-Bit 8-Bit Octal —Charact_e_[ 6-Bir* O ctal Octal Octal Space 00 240 @ 40 300 ! 01 241 A 4] 30] " 02 242 B 42 302 # 03 04 243 244 c 5 D 43 44 304 % 05 245 E 45 305 & 06 F 07 G 46 47 306 ' 246 247 ( ) lO lI 250 25] H 50 I 5] 3] 0 3] l * I2 252 J 52 3] 2 + 13 253 K 53 3] 3 I4 254 L 54 3] 4 I5 255 M 55 315 I6 256 N 56 3] 6 / I7 257 O 57 3l7 0 20 260 P 60 320 l 2] 26] Q 6] 32] 2 22 262 263 264 R 62 S 63 322 323 324 , - . 3 23 4 24 5 25 6 26 7 T 64 U 65 303 307 V 66 27 265 266 267 W 67 325 326 327 330 8 30 270 X 70 9 3] 27] Y 7] 33] : 32 272 Z 72 332 ; 33 273 [ 73 333 < 34 35 274 275 \ ] 74 75 334 335 > 36 I 76 336 ? 37 276 277 “ 77 337 = * ASCII is an abbreviation For USA Code For Used to store passwords and Filenames only APPENDIX B SUMMARY OF COMMANDS A Monitor command is a string of characters terminated by a semicolon (;) or a carriage return or (RETURN key). Parameters to commands may be octal numbers, decimal numbers, character strings, single letters. In the Following summary, parameters are coded as Follows: C1, C2, ... represent octal numbers D1, D2, represent decimal numbers $1, $2, represent character strings Ll, L2, represent single letters Logging In and Out LOGIN Cl 5]; Request to login; Cl = Sl = user's account number user's password LOGOUT; Request to logout; processing and console time is typed out TIME c1; Request typeout of processing time; Cl iob number Without Cl, current iob is assumed; Before logging in and without Cl, time-oF-day is typed out; If Cl=iob 0, time-oF-day is typed out. = Console Manipulation ASSIGN K C]; SLAVE c1; Request console; K = Cl = console console number Slave an owner console; Cl console number = UNSLAVE c1; Unslave an owned console; Cl console number = RELEASE K C]; Release console; K console Cl console number = = Device Allocation ASSIGN Ll; Access device; Ll = R For paper tape reader P for paper tape punch C For card reader L For line printer I For incremental plotter B-l Device Allocation (Cont) ASSIGN D C]; Access DECtape unit; = CT = DECtape device number Release device; RELEASE Li; RELEASE K C]; L1 RELEASE D c1,- K D R, P, C, L, orI, (see ASSIGN Li;) = console DECtape unit = console or DECtape number Ci File OPEN c1 ST c2; Establish association between internal file number and file; CT internal file number 5] file name C2 account number = = = Close files; Si list of internal file numbers CLOSE $1; = CREATE SI; Create new file; 5] name of new file = RENAME C1 ST; Rename a file; Ci internal file number = 51 REDUCE C1 EXTEND C] D1; Di; = new name of file Reduce length of file; CT = D] = internal file number number of segments to be removed from end of file Extend length of file; C1 internal file number = Di PROTECT CT C2,- = number of segments to be added to end of file Protect a file; CT internal file number = C2 = new file protection mask 1 read protect against users with different project 2 write protect against users with different project number number 4 read protect against users with same project number 10 write protect against users with same proiect number Or the sum of any combination FCI; Print out association between internal file numbers and files CT internal file number = Control Of User Programs START Ci; Execute user program; CT starting location = 8-2 Control of User Programs (Cont) START; Restart user program; DEPOSIT Cl C2.. .Cn; Store in core memory; CT location = C2 = Cn = contents to be stored location Cl+n-l 510 decimal n EXAMINE c1 D]; List specified contents; CI = first location D] = number of location to be listed D1510 decimal Saving and Restoring Binary User Programs Save core image; SAVESh SAVE Si c1,SAVE $1 c1 c2; S] = CT = C2 = C3 = SAVE $1 c1 c2 c3; of file tile address of first word to be name saved; if not specified, entire 4K is saved core address of first word to be saved; if not specified, entire core is saved core address of last word to be saved; if not specified, entire core is saved LOAD C] S]; LOAD C] S1 C2; LOAD C] Si C2 C3; LOAD C] Si C2 C3 C4; Load core image; CT owner's account number = 5] = C2 = C3 = C4 = file address of first word to be loaded; if not specified, entire 4K is loaded core address of first word to be loaded, if not specified, entire core is loaded core address of last word to be loaded; if not specified, entire core is loaded Run System file; RS]; S] = name of file Run user file; RUN S]; S] RUN C] of file name S]; 5; WHERE; = name of file Run user file; CT = owner's account number S1 = name of file Stop execution Type out contents of location counter, accumulator, link, and switch register USER; Type out number of the [ob and devices owned USER c1,- Type out device numbers; CT = user's account number B-3 Saving and Restoring Binary User Programs (Cont) SWITCH Cl; Set switch register; Cl word to be set = Switchboard SET Ll L2 Cl L3 C2; Set bit in Permission or Switchboard Table; L1 = P for Permission Table S for Switchboard Table K for keyboard L2 = Cl = L3 = C2 = P for user program keyboard or program number for input buffer I 0 for output buffer RESET Ll L2 Cl L3 C2; receiving buffer number Clear bit in Permission or Switchboard Table; parameters are as in SET, above READ LT L2 Cl L3 C2; Read bit in Permission or Switchboard Table; parameters are as in SET, above DUPLEX; Echo typed characters on printer; ALLOW c1,- Permit console Cl to output on this console; Cl UNKCL = console number Output to console CT; Cl = console number B-4 APPENDIX C SUMMARY OF IOT INSTRUCTIONS PROGRAM CONTROL 6000 SIM 6001 ION 6002 Set Interrupt Mask Interrupt Turn On Interrupt Turn OFF Read Interrupt Mask 6005 IOF RIM SWM 6006 CWM 6007 RWM Set Wait Mask Clear Wait Mask Read Wait Mask 6200 CKS Check Status 6402 6403 6404 SLV Slave A Console Unslave A Console 6003 UNS SSP Set Switchboard and Permission Tables 641 0 641 1 WAIT Wait URT User Run Time 641 2 TOD Time Of Day 641 3 RCR Return Clock Rate 641 4 641 5 641 6 DATE SYN STM Date Quantum Synchronization Set Timer 6420 6421 6422 6430 6440 6442 TSS Skip On TS8 USE CON SSW User Console Set Switch Register ASD Assign Device REL Release Device 7402 HLT Halt 7404 OSR OR With Switch Register FILE CONTROL 6600 REN Rename File 6601 OPEN Open File 6602 CLOS 6603 RFILE Close File Read File Protect File Write File Create File Extend File Reduce File File Information 6604 PROT 6605 WFILE 6610 CRF 6611 EXT 6612 6613 6614 6617 ACT Segment Size Account Number 6616 WHO Who RED FINF SIZE INPUT BUFFER CONTROL 6030 603 1 KSR Read Keyboard String KSF 6032 KCC 6034 KRS 6036 KRB Skip On Keyboard Flag Clear Keyboard Flag Read Keyboard Buffer Static Read Keyboard Buffer Dynamic 6400 KSB Set Keyboard Break 6401 SBC Set Buffer Control Flags OUTPUT BUFFER CONTROL 6040 SAS 6041 TSF Send A String Skip On Teleprinter Flag 6042 6044 TCF Clear Teleprinter Flag TPC Load Teleprinter and Print 6046 TLS Load Teleprinter Sequence HIGH-SPEED PAPER TAPE READER AND CONTROL (TYPE PC02) 6010 601 1 6012 6014 RRS Read Reader String RSF Skip On Reader Flag RRB Read Reader Buffer RFC Reader Fetch Character HIGH-SPEED PAPER TAPE PUNCH AND CONTROL (TYPE PC03) 6020 PST Punch String 602 1 PSF 6022 PCF Skip On Punch Flag Clear Punch Flag 6024 6026 PPC Load Punch Butter and Punch Character PLS Load Punch Buffer Sequence DECTAPE CONTROL (TYPE TC01) 6764 6771 6772 DTX A Load Status Register A DTSF Skip On Flags DTRB Read Status Register B AUTOMATIC LINE PRINTER AND CONTROL (TYPE 645) 6651 6652 6654 LSE LCB 666 1 LSD Skip On Line Printer Error Clear Printer Buffer Load Printer Buffer Skip On Line Printer Done Flag Clear Line Printer Flags Clear Format Register LLB 6662 LCF 6664 LPR INCREMENTAL PLOTTER AND CONTROL (TYPE 3508) 6501 PLSF 6502 PLCF Skip On Plotter Flag Clear Plotter Flag 6504 PLPU Pen Up 6511 PLPR Pen Right 6512 PLDU Drum Up C-2 INCREMENTAL PLOTTER AND CONTROL (TYPE 3508) (Cont) 6514 PLDD Drum Down 6521 PLPL Pen Left 6522 6524 PLUD Drum Up PLPD Pen Down CARD READER AND CONTROL (TYPE 45]) 6630 RCS Read Card String 6632 CRSF Skip On Card Reader Flag 6634 CERS Read Card Equipment Status 667T 6672 CRRB Read Card Reader Buffer CRSA 6674 CRSB Select Alphanumeric Select Binary APPENDIX D REQUIRED MODIFICATIONS The PDP-S/I or POP-8 computer must have the following KT08/I time-sharing modifications to be used in a TSS/8 system. UF is a l-bit register that specified Monitor (UF:O) or (Ule) mode. In Monitor mode all instructions are legal; in user mode HALT, OSR, and IOT instructions are trapped via the program interrupt system. UF is cleared by the LOAD ADDress switch. a. USER FLAG REGISTER (UF) b. SAVE FIELD REGISTER EXTENSION - user (SF6) - When a program interrupt occurs, this bit is cleared and then loaded from the UF. The U8 serves as a l-bit input buffer for the UF. All transfers into the UF are made through the UB, except transfers from the computer console switches. The Change User Flag (CUF) instruction loads the UB with the value contained in the Memory Buffer (MB). The Restore Memory Field (RMF) instruction transfers the contents of SF6 into the UB to restore the UF to the condition that existed prior to a program interrupt. The UF is cleared by the LOAD c. USER BUFFER REGISTER (UB) - ADDress switch. The following machine instructions have been changed to operate as indicated. a. Name and Mnemonic: CHANGE USER FLAG (CUF) Octal Codes: 6264 and 6274 Execution Time: l.5 ps Operation: 6264 sets the UF to 0; 6274 sets the UF to l. The next JMP or JMS instruction causes the appropriate mode to be entered. Symbol: b. MB8 " UB Name and Mnemonic: SKIP ON USER IOT (SKIOT) Octal Code: 6245 Execution Time: 1.5 ps Operation: HALT, OSR, and IOTs when executed with UF=l, sets the user IOT (UIOT) flag and, if the program interrupt is enabled, causes an interrupt. c. Name and Mnemonic: CLEAR USER IOT (CIOT) Octal Code: 6204 Execution Time: 1.5 ps Operation: Clears the user IOT (UIOT) flag. Symbol: d. O -* UIOT Name and Mnemonic: READ INTERRUPT BUFFER (RIB) Octal Code: 6234 Execution Time: 1.5 ps D-l Operation: The contents of the Instruction Field, Data Field, and User Flag held in the Save Field Register during a program interrupt are transferred into bits 6 through 8, 9 through II, and 5, Symbols: SFO-2 *AC6-8, Name and Mnemonic: respectively. SF3-5 *AC9-ll, SF6 "AC5 RESTORE MEMORY FIELD (RMF) Octal Code: 6244 Execution Time: l.5 us Operation: This instruction is used upon exit from the program interrupt subroutine in another field. The Instruction Field, Data Field, and User Flag that were interrupted by the subroutine are restored by transferring the contents of the Save Field Register into the Instruction Buffer and Data Field Registers and the User Buffer. Symbols: SFO-2 *IB, SF3-5 "DF, D-2 SF6 "UB APPENDIX E STORAGE ALLOCATION STORAGE MAP E.I A mental picture of the system's storage allocation is illustrated below. PDP - B/I CORE MEMORY FIELD D FIELD 1 4K ’ / //’ / / / / / // / 1 / // _A: / / /l/ + \ I \ \ l \ l l l l /// I l / I I I I i i RESIDENT MONITOR USER PROGRAMS 4K 4K // / // / / / $// / // / / 4K / I \ \ \ \ \ \L SYSTEM INTESSSETER ERROR ISJISTTIE‘: FILE PHANToM IZATION USER FILE PROGRAMS STORAGE 4K 000 PHANTOM 4K 4K 4K .0. km“ SYSTEM MONITOR m’l IG-—~*———~—~SWAPPING Figure E-I E.2 AREA ——————-—Dl TSS/ 8 Storage Map FILE DIRECTORIES There are two directories on the disk: the Master File Directory, referenced mainly by the system, and the User File Directory, referenced by the TSS/8 user. is to serve as a directory for the UFD. One of the Functions of the MFD A UFD is a particular user's own file directory and will contain the names of programs he has created on the disk. The UFD itself is a file like any other file except that its filename is a binary number in combination with a four-letter password. The leftmost seven bits of the binary combination are used for the project number, and the remaining five bits are used for the programmer number. is logged in under a specific When a user project-programmer number and references the disk, he is actually re— ferencing his own area through the UFD having his proiect-programmer number as its name. He may of course, specifically code his routine to reference UFD's of other users or the MFD; whether he is success- ful or not will depend upon the type of protection that has been specified for the area he is trying to reference. An illustration of He file directories is shown below. MASTER WORD 1 PROJECT FILE DIRECTORY USER PROG. NO. NO. FILE DIRECTORY (I CHAR.) Fl LE (1 CHAR.) (1 CHAR) PA 55 (1 CHAR.) (1 CHAR.) NA ME (1 CHAR.) (1 CHAR.) WO RD (1 CHAR.) (1 CHAR.) W0 RD (1 CHAR.) LINK TO NEXT LINK TO NEXT ENTRY CONSOLE TIME SEGMENT COUNT TIME WORDB POINTER LINK TO NEXT PROTECTED BITS UNUSED CPU DATE OF TO RETRIEVAL RETRIEVAL ENRTY POINTER BLOCK LINK TO LAST TO NEXT ACCESS RETRIEVAL RETRIEVAL BLOCK SEGMENT #1 SEGMENT #1 SEGMENT it 2 SEGMENT 4* 2 SEGMENT *- 3 SEGMENT #3 SEGMENT # 4 SEGMENT #- 4 SEGMENT it 5 SEGMENT at 5 SEGMENT # 6 SEGMENT it 6 SEGMENT #- 7 SEGMENT # 7 Figure E-2 File Directories E-2
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies