TOPS-20 Monitor Building Procedures and Information DATE: FEBRUARY 1980, REVISED FEBRUARY 1983 COPYRIGHT (C) 1976,1983 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1.0 INTRODUCTION This document provides complete information on configuring and building the TOPS-20 monitor. Multiple configurations are provided so as to minimize the amount of resident storage used while supporting all of the available peripheral devices. The "build" procedure produces a core-image file of the monitor from the various relocatable files and the one parameter-dependent source file. Generally, an installation will be able to run one of the standard monitor configurations supplied. Section 2 of this document tells how to select the appropriate monitor configuration and how to run the build procedure. Some installations may wish to use a set of configuration parameters different from those of the standard set. Section 3 describes the function of each parameter and its effect on the resultant configuration. Section 4 describes how to add installation-specific terminal definitions. 2.0 BASIC MONITOR SELECTION AND BUILDING PROCEDURES NOTE: This section is intended for anyone who needs to build a monitor, and it requires a minimum level of familiarity with the structure or operation of the system. The knowledge which is required is: 1. How to login and use basic EXEC commands. 2. How to use the magtape file restore program (DUMPER). 3. How to bring up the system with an existing monitor. 2.1 How to Select a Monitor Configuration There are six standard monitor configurations. The first four are intended for general timesharing and batch operation in an ARPANET environment and differ only in overall size. The fifth and sixth are for use by non-ARPANET sites. The configuration names and general descriptions are: "Small" A typical small configuration for general timesharing. (ARPA ONLY) "Medium" A typical medium-size configuration for general timesharing. (ARPA ONLY) "Big" A typical large configuration for general timesharing. (ARPA ONLY) "Large" The largest monitor supported by Digital. (ARPA ONLY) "2060-Big" A typical configuration for 2060 timesharing. "2060-Maximum" The largest 2060 monitor supported by Digital. You should select the proper monitor based on your hardware configuration. You will want the smallest monitor which supports all of the hardware you have and which handles the number of users you wish to allow. All monitors support up to 8 disk drives. A. The "Small" monitor will support the following: -ARPA-ONLY- 40 Users (interactive and batch) 64 Terminal Lines, 40 active 512K Core memory 8 Magtape Units (max) 2 Line Printers (max) 5000 Pages of swapping space 20 Network Virtual Terminals (ARPA only) B. The "Medium" monitor will support the following: -ARPA-ONLY- 60 Users (interactive and batch) 128 Terminal Lines, 60 active 512K Core memory 8 Magtape Units (max) 2 Line Printers (max) 7000 Pages of swapping space 30 Network Virtual Terminals (ARPA only) C. The "Big" monitor will support the following: -ARPA-ONLY- 100 Users (interactive and batch) 128 Terminal Lines, 100 active 512K Core memory 8 Magtape Units (max) 2 Line Printers (max) 7000 Pages of swapping space 40 Network Virtual Terminals (ARPA only) D. The "Large" monitor will support the following: -ARPA-ONLY- 100 Users (interactive and batch) 128 Terminal Lines, 100 active 1024K words memory 8 Magtape units 2 Line Printers 5000 Pages of swapping space 40 Network Virtual Terminals (ARPA only) E. The "2060-Big" monitor will support the following: 100 Users (interactive and batch) 128 Terminal Lines 512K Core memory 8 Magtape Units (max) 2 Line Printers (max) 10000 Pages Swapping Space E. The "2060-Maximum" monitor will support the following: 128 Users (interactive and batch) 128 Terminal Lines 2M Memory 8 Magtape Units (max) 2 Line Printers (max) 15000 Pages of Swapping Space It does not matter if the monitor you select supports more of some devices than you have. The resident core requirements of each device are quite small, and monitors configured between the ones above would not show significant performance improvement. 2.2 How to Build a Standard Monitor Configuration At this point, you will have selected one of the standard monitor configurations described above (or have constructed you own parameter file as described in Section 3). The following step-by-step procedure produces a monitor configured according to the parameters in the corresponding parameter file. ( ) 1. Login and connect to a directory containing a complete set of monitor files. If the monitor files have not been loaded onto the disk, load them from your distribution tape using DUMPER (document TOPS20.DOC). ( ) 2. If you are building a standard monitor, copy the appropriate parameter file to "PARAM0.MAC". If you are building a KL-ARPA monitor, copy the appropriate parameter file to "PARAN.MAC". The parameter files for the various monitors are: KL ARPA Monitor -------- ------- "Small" = ANPSML.MAC "Medium" = ANPMED.MAC "Big" = ANPBIG.MAC "Large" = ANPLGE.MAC 2060 Monitor ---- ------- "Big" = P60BIG.MAC "Maximum" = P60MAX.MAC For example, if you are building a medium KL-ARPA monitor: @COPY ANPMED.MAC (TO) PARAN.MAC.1 !new file! ( ) 3. If you are building a standard monitor, copy the appropriate name file to "NAMAM0.MAC". If you are building a KL-ARPA monitor, copy the appropriate name file to "NAMAN.MAC". The name files for the various monitors are: KL-ARPA Monitor -------- ------- "Small" = ANNSML.MAC "Medium" = ANNMED.MAC "Big" = ANNBIG.MAC "Large" = ANNLGE.MAC 2060 Monitor ---- ------- "Big" = N60BIG.MAC "Maximum" = N60MAX.MAC For example, if you are building a medium KL-ARPA monitor: @COPY ANNMED.MAC (TO) NAMAN.MAC.0 !new file! ( ) 4. Submit the appropriate batch file for the type of monitor you are building: T20-AN.CTL for a KL-ARPA monitor, or LN2060.CTL for the standard monitor. For example, to build a medium KL-ARPA monitor: @SUBMIT T20-AN/TAG:SINGLE/TIME:1:0:0 This will leave the monitor in your directory. The file name of the monitor file is MONITR.EXE. If it is desirable to build all of the standard monitors, then submit the control file with a /TAG:ALL switch,e.g., @SUBMIT LN2060/TAG:ALL/TIME:2:0:0 ( ) 6. If this monitor is to be loaded from magtape, copy the file to magtape. @COPY MONITR.EXE (TO) MT0: The tape density must be 1600BPI for MTBOOT to work. The build procedure is now complete and the new monitor is ready to be brought up using the normal bootstrap procedures. 3.0 THE MONITOR CONFIGURATION PARAMETERS NOTE: This section is intended for anyone needing to build a monitor configuration different from the standard configurations. It requires some familiarity with the operation of the system and utility programs, and some knowledge of the structure of the monitor. Specifically: 1. Everything required in Section 2. 2. How to use the text editor. 3. How to read assembly language. 4. The meaning of common monitor terms, e.g., "jobs", "forks", "PTY", etc. The monitor configuration is determined by a single parameter file PARAM0.MAC (or PARAN.MAC if building an ARPANET monitor). This file is the only configuration-dependent file required for a monitor build. To configure a monitor, you will use the text editor to produce this parameter file. PARAM0.MAC (or PARAN.MAC) should contain only those parameters that are different from the standard values listed in PARAMS.MAC. This section describes the meaning of each parameter and its effect on the monitor configuration. You should read each description, determine the proper value for you configuration, and note this value on a listing of the parameter file. You can then edit the parameter file to include these values. Your edited parameter file should be given the name PARAM0.MAC, (or PARAN.MAC if building a KL-ARPA monitor). When the new parameter file has been produced, you may follow the normal monitor build procedure (Section 2). The Parameter Files --- --------- ----- 3.1 NTTPTY The number of pseudo-terminals. This parameter determines the number of PTYs available. You will need 1 for PTYCON plus 1 for each PTYCON subjob being run, plus 1 for each simultaneous batch job being run. Additional PTYs may be allocated for user use of PTYCON. The resident storage requirement for a PTY is exactly the same as for a physical terminal, i.e., N = 5*NTTPTY 3.2 NTTNVT The number of Network Virtual Terminals. These devices are present only on installations using an ARPA Monitor, with parameter NETN set to 1. The resident storage requirement for a NVT is exactly the same as for a physical terminal, i.e., N = 5*NTTNVT 3.3 NJOBS The number of jobs. This parameter determines the size of the jobs tables and hence the maximum number of jobs which can exist at any one time. This includes interactive and batch jobs and those jobs with run under PTYCON. There are 34 resident words of monitor space which are directly dependent on this parameter; in addition, the number of forks (described below) is usually determined by the number of jobs, and the normal ratio is 3 forks/job. Hence (unless you change the fork/job ratio), the number of resident words required is: N=NJOBS*(10+3*17)=NJOBS*61 3.4 NDHL, NDLL The number of physical terminals on a KL. This parameter determines the number of physical terminal lines (not including PTY's) including the CTY. NDHL is the number of DH lines on the front-end. This number is normally 16 times the number of DH's in the front-end. NDLL is the number of DL lines on the front-end, including the CTY, and is normally set to 5. The resident storage required per terminal line is a function of some ratios described below. For this parameter, the number of resident words required is: N=5*(NDHL+NDLL+1) 3.5 NTTMCB The number of DECnet network virtual terminals. If you do not have a DECnet installation, this value may be set to zero. Otherwise, these are like any other terminal device, and their resident core requirements are: N=5*NTTMCB 3.6 SSPT The size of the system pages table. This 2-word table holds information about every open file and every fork. Its minimum reasonable value is SSPT = 500 + NJOBS = 3*NFKS. It is also used for holding information about shared file pages if there is sufficient space. This allows a shared file page to be referenced without its owing index block also being brought into core. Hence it is probably most efficient to set SSPT to the value shown above plus the average number of shared pages in use in your system. The resident core requirements are: N = 2*SSPT 3.7 MAXCOR The maximum number of physical core pages. This parameter determines the size of the five core status tables. It should be set to at least the maximum amount of core on your system (i.e., #K/2). The resident core requirements for this parameter are: N = 5*MAXCOR 3.8 NDST The size of the drum status table. This table has one entry for each page of swapping storage. The swapping area is used for all active pages whether shared or private. If the swapping area becomes full, the monitor will move shared pages back to their home address, but it cannot move private pages. Hence, this parameter should be set to at least the maximum number of private pages expected to be in use at one time. The resident core requirements are: N = 1*NDST Note that at least this much swapping space must have been allocated on the public file structure (PS:). Also, since TOPS-20 V5.0, the DST is located in TABSEC and therefore modifying its size has no effect on TOPS-20's section 0 virtual address space. 3.9 SWDST The default number of pages to reserve for swapping space on an areas of a structure. If no value is declared for SWDST, it is set to NDST. 3.10 ACTLNS This includes TTY and PTY lines. The number of resident words is: N=32*ACTLNS In addition, 22 words of resident storage is required for each line. This latter storage changes dynamically as any line becomes active or inactive. The next group of parameters refers to the configuration of peripheral devices. These parameters take a number which is the maximum number of units of a particular device. Each device has a parameter related to the device name, i.e., for device "xxx", there is a parameter "xxxN". Other symbols in the monitor are constructed by concatenating the device name with a specific prefix or postfix. 3.11 FEN Front End Device service. This parameter defines the number of FE devices present. The FE devices are pseudo devices used for general transfer of data to and from the front-end. 3.12 MTAN Magtape service. This parameter is the number of magtape units present. A maximum of 8 is presently supported. 3.13 DTEN DTE20 service. This parameter denotes the number of DTE's connected to the KL20. 3.14 LPTN Lineprinter service. LPTN is the number of physical lineprinters present. A maximum of 2 is presently supported. 3.15 CDRN Card Reader service. This specifies the number of card readers on the front-end. 3.16 KSCDRN This is for the number of card readers on the KS10 3.17 CDPN Spooled card punch. This specifies the number of spooled card punch queues that are to be set up by GALAXY. 3.18 SPLTN Spooled plotter. This symbol specifies the number of spooled plotter queues that are allowed. 3.19 SPTPN Spooled paper tape punch. This symbol specifies the number of spooled paper tape punch queues that are allowed. 3.20 NETN ARPANET service. This symbol specifies that the monitor has support for the AN20 ARPANET Interfface hardware. This parameter must be 0 in the standard Monitors. 3.21 DCN DECNET service. This specifies that the monitor has support for DECNET. The following parameters control specific functions of the system. 3.22 NFKS The number of forks. This parameter determines the size of the scheduler fork tables and hence the maximum number of forks which can exist at any one time. This parameter is normally set to 3*NJOBS thus allowing an average of about 3 forks/job. If your system is known to have an average distinctly above or below this, this ratio may be changed. The resident core requirements are: N = 17*NFKS 3.23 TMZONE The time zone. This parameter specifies the local time zone in which the system is being operated. The monitor standard time and date format (see JSYS manual) is GMT. Hence, this parameter gives the number of hours by which local time lags GMT. This value is assembled into TIMZON and may be changed at system startup in 5-1-CONFIG.CMD. Values for USA are: EST = 5 CST = 6 MST = 7 PST = 8 Daylight saving time is handled automatically; this parameter should be set based on the standard local time. 3.24 MAXFKS Maximum fork size. This parameter specifies the maximum size to which the working set of any fork (process) can grow. If this value is set to 0, the monitor will limit working sets to a size 32 less than the number of available pages. CAUTION: If this number is set too low, the system will thrash. 3.25 IPTIMF This parameter controls the inclusion of page trap overhead time in process run times. A value of 1 causes page trap time to be included; a value of 0 causes page trap time to be excluded. "Page Trap Time" is the CPU time spent handling page traps for a process. This time typically increases under headier system loads because pages will be swapped out and must be faulted back into memory more often. This is the major item which causes variability in reported process and job runtimes under different load conditions. In monitors prior to release 3, this time was always included in reported runtimes. For compatibility with previous releases, the default in release 3 is to include the page trap time. Installations wishing to minimize the variability of reported runtimes may change this value to 0. Such installations should be aware, however, that this will generally result in some reduction of system total chargable time, since the overhead which was being charged in earlier monitors will be excluded. 3.26 SYSSCF This parameter is the total free disk space limit below which no OPENF's in write mode will be allowed. 3.27 IEDDTF EDDT retention flag. This parameter is set to 1 if EDDT is to be retained after monitor startup, 0 otherwise. This value is assembled into EDDTF and may be changed at startup. EDDT and monitor symbols take about 16K of resident core. 3.28 NTRFE This parameter specifies the number of disk cylinders that are set aside for the front-end-file-system. 3.29 LOGTTY Designator for logging information. This is the terminal on which all login, logout, and account change commands are recorded. It is not necessary to print this information on a terminal since it is also recorded in the USAGE file. Hence, this parameter is normally set to .NULIO. 3.30 .STDFP The default file protection given to each new file in a directory unless otherwise specified. 3.31 .STDDP The default directory protection of each new directory unless specifically set to something else. 3.32 .STDBS The default number of versions of each new file to keep. 3.33 .STDMX The default permanent and working disk storage. 3.34 .STDSD Standard subdirectory quota 3.35 .STDNE Standard on-line expiration for migration of files 3.36 .STDFE Standard off-line expiration for migrated files on magnetic tape. 3.37 DGOFKN If a job tries to create a fork, and the number of forks in the job (including the new one) is greater than the value of DGOFKN, then the monitor calls the access-control facility to determine if the job is permitted to create the fork. 3.38 FFFSZE This is the size (in words) of the resident monitor patch area, FFF. 4.0 INSTALLATION-SPECIFIC TERMINAL DEFINITIONS Installations wishing to define their own terminal types may use terminal type codes 4 through 7. It is not possible to define corresponding terminal type names. Note that DIGITAL only supports those terminals detailed in the TOPS-20 Software Product Description. The following items may be declared for each terminal type: - Terminal has mechanical form feed - Terminal has mechanical tabs - Terminal has lowercase keyboard input - Padding after the characters: - Carriage Return - Line Feed - Horizontal Tab - Form Feed - Terminal display length and width - Terminal automatically enables XON and XOFF processing - Character strings to be sent to the terminal to effect cursor positioning. These characteristics are described by tables which can be found in the source code module STG.MAC. The first five items are declared in table TTYPE0. The sixth item is in table TTYPE1. Also, the cursor positioning declarations are in tables for each terminal type, pointed to by entries in table TTYPE1. See table VT52TB for an example of the table of cursor positioning commands for a specific terminal.