Google
 

Trailing-Edge - PDP-10 Archives - BB-M080N-SM - monitor-sources/stg.mac
There are 95 other files named stg.mac in the archive. Click here to see a list.
; *** Edit 7459 to STG.MAC by MCCOLLUM on 27-Apr-87
; Increase NHOSTS to 5003, decimal. 
; *** Edit 7456 to STG.MAC by GSCOTT on 23-Apr-87, for SPR #19597
; Write session records properly when a job is attached, detached, or its
; session remark is changed. Also make sure session start time is correct. 
; *** Edit 7454 to STG.MAC by RASPUZZI on 16-Apr-87, for SPR #21586
; Prevent GLFNF BUGHLTs, SUMNR1 BUGCHKs and UNBFNF BUGCHKs.
; Add LLMPSQ. This is the pointer to the head of the LLMOP PSI queue.
; Also, add a new routine to CLK2CL - LLQCHK and its associated timer.
; LLQCHK will be called at scheduler level when a PSI is to be initiated
; for a fork from LLMOP.
; *** Edit 7450 to STG.MAC by PRATT on 16-Apr-87, for SPR #21374
; Fix up ARP table problems and also create a lock for GHT updating. 
; *** Edit 7433 to STG.MAC by MCCOLLUM on 2-Apr-87, for SPR #21502
; In SETJSB, map FPG2 to the second page of the other job's JSB. 
; *** Edit 7432 to STG.MAC by MCCOLLUM on 1-Apr-87, for SPR #21552
; Rearrange code and define dummy routine XCKNI so building monitors with
; KNIN=0 will work 
; *** Edit 7426 to STG.MAC by RASPUZZI on 20-Mar-87
; Remove junk from file so that STG will compile.
; *** Edit 7425 to STG.MAC by EVANS on 12-Mar-87
; Fix edit 7423 - add a table entry. 
; *** Edit 7423 to STG.MAC by EVANS on 11-Mar-87
; Add VT300 - dependent monitor edit 7424 and EXEC edit 3055 
; *** Edit 7382 to STG.MAC by MCCOLLUM on 15-Oct-86
; Increase the amount of DECnet extended section free space 
; *** Edit 7378 to STG.MAC by MCCOLLUM on 8-Oct-86
; Increase NHOSTS and NHSTN again. 
; *** Edit 7363 to STG.MAC by RASPUZZI on 12-Sep-86
; If the PMOVE/PMOVEM instructions are available, then use them instead of
; routines MOVRCA and STORCA for more efficiency.
; *** Edit 7357 to STG.MAC by RASPUZZI on 22-Aug-86
; Remove routine GAPRID since the processor serial number is already in APRSER
; and make all CALLs to GAPRID refer to that resident location. 
; *** Edit 7344 to STG.MAC by MCCOLLUM on 25-Jul-86
; Increase NHOSTN and NHSTN 
; *** Edit 7334 to STG.MAC by RASPUZZI on 15-Jul-86
; Make sure that the 3 second delay is always a penalty for incorrect passwords
; even with BREAKI turned on. 
; *** Edit 7324 to STG.MAC by RASPUZZI on 17-Jun-86, for SPR #20058
; Fix the SFTAD% JSYS to work as the documentation says it will. Also, make
; sure that TPRCYC and ARRCYC are properly initialized in STG. 
; *** Edit 7271 to STG.MAC by WAGNER on 18-Mar-86, for SPR #21132
; Give HOMPGA its own page seperate from SNPDAT to fix PITRAP and SKDPF1
; Bughlts. 
; *** Edit 7259 to STG.MAC by WONG on 14-Mar-86, for SPR #18580
; Add batch info to Usage Session Record.
; *** Edit 7250 to STG.MAC by MELOHN on 3-Mar-86, for SPR #21090
; Move MINACB to STG so that max number of LAT circuits can be customized by
; site 
;------------------------- Autopatch Tape # 13 -------------------------
; *** Edit 7247 to STG.MAC by LOMARTIRE on 19-Feb-86
; Implement OFN caching 
;Edit 7247 - Add new counters CFACCT and CFACTO; also add OFNGCI and OFNTIM
;            And add NOC, NOCH, GCFOFC, GCFOFG, GCFOFN, CFACUT
; *** Edit 7215 to STG.MAC by GRANT on 20-Dec-85, for SPR #20966
; Insure that DDT gets the correct start address for the symbol table 
; *** Edit 7211 to STG.MAC by GRANT on 18-Dec-85
; Add CI counters for WATCH 
;------------------------- Autopatch Tape # 12 -------------------------
; *** Edit 7204 to STG.MAC by MELOHN on 21-Nov-85 (TCO 6.1.1562)
; Add dummy routine CTHSFM for non-decnet monitors
; *** Edit 7193 to STG.MAC by WONG on 14-Nov-85
; Fix undefined symbol (LPTTIM) when LPTN=0
; *** Edit 7189 to STG.MAC by MCCOLLUM on 12-Nov-85
; Increase .RESUQ from 13000 to 17500 
; *** Edit 7184 to STG.MAC by MELOHN on 5-Nov-85 (TCO 6-1-1551)
; Increase NHOSTS factor from 4 to 6
; Edit 7173 to STG.MAC by PALMIERI on 23-Oct-85 (TCO 6.1.1542)
; Move modules NIUSR and LLMOP to an extended section. This required the
; changing of some global routine names in LLMOP; Therefor the changes to
; MEXEC, JSYSA, and FORK. 
; Edit 7154 to STG.MAC by GRANT on 15-Oct-85
; Fix bug which prevents monitor from finding all the disks ported to the FE. 
;Create FEDSKL and move FEDSKT here from DTESRV.MAC.
; Edit 7132 to STG.MAC by GRANT on 14-Aug-85
; CI microcode version is now 711 
; Edit 7124 to STG.MAC by MELOHN on 12-Aug-85 (TCO 6-1-1515)
; Up the terminal pool size by 4*ACTLNS 
; UPD ID= 2312, SNARK:<6.1.MONITOR>STG.MAC.510,  12-Aug-85 15:46:57 by MELOHN
;TCO 6.1.1515 - Up the per-terminal size factor used for calculating TTY pool.
; UPD ID= 2303, SNARK:<6.1.MONITOR>STG.MAC.509,  19-Jul-85 16:41:27 by MOSER
;TCO 6.1.1492 - MORE JFNS NO SZCOD
; UPD ID= 2297, SNARK:<6.1.MONITOR>STG.MAC.508,  16-Jul-85 14:21:07 by MELOHN
;TCO 6.1.1485 - set NTTLAH to 0 when LAHFLG is turned off.
; UPD ID= 2289, SNARK:<6.1.MONITOR>STG.MAC.507,  29-Jun-85 22:37:09 by GRANT
;CI microcode is now version 705
; UPD ID= 2271, SNARK:<6.1.MONITOR>STG.MAC.506,  25-Jun-85 10:50:52 by WAGNER
;MORE OF 6.1.1449 - Put code under CHFLG conditional for CTERM host
; UPD ID= 2258, SNARK:<6.1.MONITOR>STG.MAC.505,  21-Jun-85 11:22:52 by WAGNER
;TCO 6.1.1449 - **PERFORMANCE** Prevent CTERM HOST output from hogging system
; UPD ID= 2256, SNARK:<6.1.MONITOR>STG.MAC.504,  21-Jun-85 09:41:25 by PALMIERI
;TCO 6.1.1466  Make OURNAM and OURCNT RSIs and default nodename to TOPS20
; UPD ID= 2253, SNARK:<6.1.MONITOR>STG.MAC.502,  20-Jun-85 13:48:31 by MCCOLLUM
;Add TLABs for CTHBIN, CTHASC, CTHTID.
; UPD ID= 2237, SNARK:<6.1.MONITOR>STG.MAC.501,  19-Jun-85 10:57:14 by GROSSMAN
;TCO 6.1.1461 - Remove RCSIDS.  Add LLMFLG and LLMACT.
; UPD ID= 2234, SNARK:<6.1.MONITOR>STG.MAC.500,  18-Jun-85 15:52:15 by LEACHE
;TCO 6.1.1456 Increase allocation for IPCF and ENQ freespace pools
; UPD ID= 2233, SNARK:<6.1.MONITOR>STG.MAC.499,  18-Jun-85 15:38:05 by PALMIERI
;TCO 6.1.1457  Add variable EVSDRP to determine if endnodes enable for
;"all routers" multicast.
; UPD ID= 2221, SNARK:<6.1.MONITOR>STG.MAC.498,  12-Jun-85 17:48:58 by GRANT
;CI microcode is now version 700
; UPD ID= 2208, SNARK:<6.1.MONITOR>STG.MAC.497,  10-Jun-85 10:05:26 by PAETZOLD
;TCO 6.1.1437 - increase the size of the GHT.
; UPD ID= 2117, SNARK:<6.1.MONITOR>STG.MAC.496,   4-Jun-85 13:35:28 by WAGNER
;TCO 6.1.1423 - *** PERFORMANCE *** Dont let MSSCHK get called at LV8CHK
; UPD ID= 2028, SNARK:<6.1.MONITOR>STG.MAC.495,  28-May-85 17:07:17 by MOSER
;TCO 6.1.1411 - ADD FLKTMV - FORK LOCK TIMEOUT VALUE
; UPD ID= 2013, SNARK:<6.1.MONITOR>STG.MAC.494,  28-May-85 09:33:25 by GRANT
;TCO 6.1.1409 - add a page to .RESUQ
; UPD ID= 2007, SNARK:<6.1.MONITOR>STG.MAC.493,  24-May-85 13:38:19 by MCCOLLUM
;TCO 6.1.1406 - Update Copyrights
; UPD ID= 1982, SNARK:<6.1.MONITOR>STG.MAC.492,  16-May-85 15:43:14 by GLINDELL
;TCO 6.1.1381 - Add dummy SCSWJF in case DCN=0
; UPD ID= 1958, SNARK:<6.1.MONITOR>STG.MAC.491,  12-May-85 14:55:01 by PAETZOLD
;TCO 6.1.1380 - Add NHOSTN.
; UPD ID= 1956, SNARK:<6.1.MONITOR>STG.MAC.490,  10-May-85 16:48:15 by GROSSMAN
;TCO 6.1.1376 - Prevent undefined linktime symbols when KNIN=0.
; UPD ID= 1933, SNARK:<6.1.MONITOR>STG.MAC.489,   7-May-85 22:40:42 by MCCOLLUM
;TCO 6.1.1238 - Fix BUG. documentation
; UPD ID= 1803, SNARK:<6.1.MONITOR>STG.MAC.488,  24-Apr-85 10:17:39 by PALMIERI
;TCO 6.1.1339  Put FTNSPSRV around MAXBLK since 6.1 doesn't use a DECnet
; swappable free space pool.
; UPD ID= 1781, SNARK:<6.1.MONITOR>STG.MAC.487,  23-Apr-85 09:13:59 by GRANT
;TCO 6.1.1335 - remove DUALCT
; UPD ID= 1777, SNARK:<6.1.MONITOR>STG.MAC.486,  22-Apr-85 15:29:42 by GLINDELL
;  Change EV96.0 to 0 (OFF) since next time we ship it will be SDC
; UPD ID= 1773, SNARK:<6.1.MONITOR>STG.MAC.485,  22-Apr-85 12:00:26 by LOMARTIRE
;TCO 6.1.1328 - Remove TCO 6.1.1282
; UPD ID= 1759, SNARK:<6.1.MONITOR>STG.MAC.484,  17-Apr-85 11:33:42 by GLINDELL
;  TCO 6.1.1323 - Remove node database parameters - database is now dynamic
; UPD ID= 1740, SNARK:<6.1.MONITOR>STG.MAC.483,   9-Apr-85 13:06:59 by GLINDELL
;  TCO 6.1.1315 - Move node database size parameters here from SCLINK
; UPD ID= 1691, SNARK:<6.1.MONITOR>STG.MAC.482,  28-Mar-85 10:44:34 by GROSSMAN
;TCO 6.1.1293 - Add PISAV and PISV1 to contain CONI PI, for BUGHLT's.
; UPD ID= 1683, SNARK:<6.1.MONITOR>STG.MAC.481,  25-Mar-85 15:07:49 by MCCOLLUM
;Bump SWFREL by a page
; UPD ID= 1676, SNARK:<6.1.MONITOR>STG.MAC.480,  25-Mar-85 08:28:07 by GRANT
;TCO 6.1.1284 - Add CIFRKF and change TEFORK to CIFORK
; UPD ID= 1669, SNARK:<6.1.MONITOR>STG.MAC.479,  22-Mar-85 14:03:08 by LOMARTIRE
;TCO 6.1.1282 - Add CFUNLF to control checking of CFS pages during unlock
; UPD ID= 1638, SNARK:<6.1.MONITOR>STG.MAC.476,  14-Mar-85 15:53:35 by MELOHN
;TCO 6.1.1265 - Add more customer and DEC reserved TTY types to the tables.
; UPD ID= 1636, SNARK:<6.1.MONITOR>STG.MAC.475,  14-Mar-85 12:14:36 by PAETZOLD
;TCO 6.1.1256 - Use NMAXPG to force NHIPG to never be 17777.
; UPD ID= 1618, SNARK:<6.1.MONITOR>STG.MAC.474,  12-Mar-85 13:36:49 by PALMIERI
;TCO 6.1.1231 - Add DTBUGX
; UPD ID= 1610, SNARK:<6.1.MONITOR>STG.MAC.473,  11-Mar-85 09:47:35 by GRANT
;TCO 6.1.1245 - Add CCHEAD
; UPD ID= 1597, SNARK:<6.1.MONITOR>STG.MAC.472,   6-Mar-85 16:50:14 by PAETZOLD
;TCO 6.1.1239 - Make it possible to build with ANXN off.
; UPD ID= 1578, SNARK:<6.1.MONITOR>STG.MAC.471,   1-Mar-85 15:15:58 by GRANT
;CI u-code is now 674
; UPD ID= 1545, SNARK:<6.1.MONITOR>STG.MAC.470,  20-Feb-85 14:24:15 by PALMIERI
;TCO 6.1.1215 - Remove check of D36IFG in LV8CHK but check DNDINQ before
; calling DNADLL
; UPD ID= 1510, SNARK:<6.1.MONITOR>STG.MAC.469,  12-Feb-85 16:21:01 by PALMIERI
;TCO 6.1.1193 - Call DECnet routines from LV8CHK in section XCDSEC but
; don't call them until DECnet is initialized.
; UPD ID= 1504, SNARK:<6.1.MONITOR>STG.MAC.468,  12-Feb-85 10:03:22 by WAGNER
;TCO 6.1.1188 - *PERFORMANCE* - Move DDMP and CHKR to CLK2CL.
; UPD ID= 1464, SNARK:<6.1.MONITOR>STG.MAC.467,   2-Feb-85 11:30:21 by GROSSMAN
;TCO 6.1.1169 - Add KNIDSP to PHYCHT so that PHYSOI can initialize the KLNI.
; UPD ID= 1444, SNARK:<6.1.MONITOR>STG.MAC.466,  31-Jan-85 16:26:38 by MOSER
;TCO 6.1.1166 - *PERFORMANCE* - OFN MANAGEMENT
; UPD ID= 1428, SNARK:<6.1.MONITOR>STG.MAC.465,  29-Jan-85 18:49:14 by PAETZOLD
;TCO 6.1.1159 - Add a dummy for TVTSOF when NETN is off.
; UPD ID= 1412, SNARK:<6.1.MONITOR>STG.MAC.464,  28-Jan-85 10:26:09 by GROSSMAN
;TCO 6.1.1157 - Alter entry into NI% JSYS jiffy service.
; UPD ID= 1406, SNARK:<6.1.MONITOR>STG.MAC.463,  27-Jan-85 11:36:29 by NICHOLS
;Move NDG %RTBSZ out of DCN conditional, its ref'd in D36COM which is loaded
;in non-DECnet monitors.
; UPD ID= 1392, SNARK:<6.1.MONITOR>STG.MAC.462,  22-Jan-85 15:32:42 by LEACHE
;Add comments
; UPD ID= 1385, SNARK:<6.1.MONITOR>STG.MAC.461,  22-Jan-85 11:54:26 by GLINDELL
;  Change name from CSSEON to EV96.0
; UPD ID= 1378, SNARK:<6.1.MONITOR>STG.MAC.460,  21-Jan-85 14:55:24 by GLINDELL
;  Add CSSEON flag
; UPD ID= 1353, SNARK:<6.1.MONITOR>STG.MAC.459,  16-Jan-85 17:05:01 by GROSSMAN
;TCO 6.1.1140 - Add call to NIJJIF into LV8CHK.
; UPD ID= 1330, SNARK:<6.1.MONITOR>STG.MAC.458,  14-Jan-85 16:11:06 by PALMIERI
;Remove call to RTRJIF and add %RTBSZ default buffer size
; UPD ID= 1311, SNARK:<6.1.MONITOR>STG.MAC.457,  11-Jan-85 14:07:14 by PAETZOLD
;More DCN = 0 support
; UPD ID= 1307, SNARK:<6.1.MONITOR>STG.MAC.456,  10-Jan-85 18:41:52 by GLINDELL
;Support DCN = 0
; UPD ID= 1277, SNARK:<6.1.MONITOR>STG.MAC.455,   6-Jan-85 20:08:38 by GRANT
;TCO 6.1.1114 - Use SAVTRF in definition of SAVTRE.
; UPD ID= 1273, SNARK:<6.1.MONITOR>STG.MAC.454,   5-Jan-85 15:57:59 by GROSSMAN
;TCO 6.1.1113 - Add NIBUGX.  Put move LOADMODULE of NITEST from NISRV to here.
; UPD ID= 1269, SNARK:<6.1.MONITOR>STG.MAC.453,   4-Jan-85 14:17:53 by LEACHE
;TCO 6.1.1110  Fix symbol-table problem in KDDT user mode
; UPD ID= 1264, SNARK:<6.1.MONITOR>STG.MAC.452,   4-Jan-85 08:13:27 by GRANT
;TCO 6.1.1108 - Add NOKLIP
; UPD ID= 1260, SNARK:<6.1.MONITOR>STG.MAC.451,   2-Jan-85 15:57:58 by PALMIERI
;Add call to DNDJIF at LV8CHK
; UPD ID= 1242, SNARK:<6.1.MONITOR>STG.MAC.450,  28-Dec-84 09:36:28 by GRANT
;TCO 6.1.1097 - Add CITIMR.
; UPD ID= 1232, SNARK:<6.1.MONITOR>STG.MAC.449,  19-Dec-84 18:38:04 by GRANT
;TCO 6.1.1091 - Add CIBUGX.  Also, move SAVTRE here from MEXEC.
; UPD ID= 1220, SNARK:<6.1.MONITOR>STG.MAC.448,  18-Dec-84 13:06:30 by LEACHE
;Add comment
; UPD ID= 1211, SNARK:<6.1.MONITOR>STG.MAC.447,  17-Dec-84 11:22:18 by LEACHE
;Clean up last part of DTE storage-area definitions
; UPD ID= 1197, SNARK:<6.1.MONITOR>STG.MAC.446,  12-Dec-84 15:15:03 by TBOYLE
;Up .RESUQ to 12000 and make it an NDG for PARAMS.
; UPD ID= 1184, SNARK:<6.1.MONITOR>STG.MAC.444,  11-Dec-84 14:18:42 by LEACHE
;Change EHLJSB conditional to EXTJSB
; UPD ID= 1130, SNARK:<6.1.MONITOR>STG.MAC.443,  26-Nov-84 15:26:19 by GLINDELL
;Remove KONDSP since it isnt used any more
; UPD ID= 1127, SNARK:<6.1.MONITOR>STG.MAC.442,  26-Nov-84 15:08:57 by GLINDELL
;Remove DNBSE2 - it was never used
; UPD ID= 1105, SNARK:<6.1.MONITOR>STG.MAC.441,  19-Nov-84 16:09:26 by LEACHE
;Increase size of JSFSTK
; UPD ID= 1079, SNARK:<6.1.MONITOR>STG.MAC.440,  14-Nov-84 13:39:03 by GLINDELL
;Remove SCTJIF and RTRSEC, add DCNSEC
; UPD ID= 1050, SNARK:<6.1.MONITOR>STG.MAC.439,  13-Nov-84 00:26:12 by GROSSMAN
;TCO 6.1.1045 - Add stuff for NI% JSYS - UPLIST and NIJKFK.
; UPD ID= 1039, SNARK:<6.1.MONITOR>STG.MAC.438,  12-Nov-84 15:25:47 by PAETZOLD
;TCO 6.1041 - Move ARPANET to XCDSEC
; UPD ID= 1017, SNARK:<6.1.MONITOR>STG.MAC.437,   9-Nov-84 13:05:24 by GROSSMAN
;TCO 6.1.1038 - Remove call to NISCH from LV8CHK.
; UPD ID= 1016, SNARK:<6.1.MONITOR>STG.MAC.436,   9-Nov-84 12:23:14 by GRANT
;KLPVER is now 664
; UPD ID= 1010, SNARK:<6.1.MONITOR>STG.MAC.435,   8-Nov-84 15:48:47 by PALMIERI
;Increase number of SNOOP pages when DEBUG .ne. 0
; UPD ID= 996, SNARK:<6.1.MONITOR>STG.MAC.434,   7-Nov-84 14:35:34 by PRATT
;tco 6.1.1030 - IPCIDV storage and loadmodule for TCP/IP over CI
; UPD ID= 973, SNARK:<6.1.MONITOR>STG.MAC.433,   6-Nov-84 19:58:37 by TBOYLE
;TCO 6.1.1034 - Reduce .RESGQ from 6000 to 1400 because of ALCSBX on now.
; UPD ID= 964, SNARK:<6.1.MONITOR>STG.MAC.432,   6-Nov-84 10:33:34 by GLINDELL
;Suppress DDT typeout of CFGWD
; UPD ID= 962, SNARK:<6.1.MONITOR>STG.MAC.431,   5-Nov-84 19:56:33 by PRATT
;TCO 6.1.1032 - Make TTYSRV compile independently:
;  Define dummy TDCALx routines based on .xxFLG for each line type
;  Move other dummy routines to here
;  Move some RS defs from TTYSRV (TT1LIN, and send all stuff)
;  Turn on terminal line types using DCN, NETN, LAHFLG, CHFLG, etc
;  Add LOADMODULE's for NRTSRV, RSXSRV, and TVTSRV
; UPD ID= 5047, SNARK:<6.MONITOR>STG.MAC.430,  31-Oct-84 15:58:20 by TBOYLE
;Add SPTWD and MSCWD - lowcore locations for new SETSPD at 237,240.
; UPD ID= 5031, SNARK:<6.MONITOR>STG.MAC.429,  29-Oct-84 10:00:18 by LEACHE
;Change JSBSEC to JOBSEC
; UPD ID= 5027, SNARK:<6.MONITOR>STG.MAC.428,  29-Oct-84 03:07:32 by PRATT
;More TCO 6.1.1010 - Need TVTPTR in level b- TCP code
; UPD ID= 5026, SNARK:<6.MONITOR>STG.MAC.427,  28-Oct-84 11:02:22 by PRATT
;TCO 6.1.1022 - Add dummy .NTINF symbol under IFN FTNSPSRV
; UPD ID= 5014, SNARK:<6.MONITOR>STG.MAC.426,  26-Oct-84 09:54:43 by LEACHE
;Add definitions for extended JSB
; UPD ID= 5013, SNARK:<6.MONITOR>STG.MAC.425,  26-Oct-84 08:27:41 by LEACHE
;TCO 6.2260 Fix definition of H19 terminals
; UPD ID= 5008, SNARK:<6.MONITOR>STG.MAC.424,  25-Oct-84 09:02:56 by LOMARTIRE
;TCO 6.2252 - Fix power fail and spurious power fail restarting
; UPD ID= 4994, SNARK:<6.MONITOR>STG.MAC.422,  24-Oct-84 19:11:29 by LEACHE
;Increase DECnet swappable pool	size
; UPD ID= 4985, SNARK:<6.MONITOR>STG.MAC.420,  23-Oct-84 19:54:19 by PAETZOLD
;Merge level b TCP stuff from 5.4 for 6.1
; UPD ID= 4979, SNARK:<6.MONITOR>STG.MAC.419,  22-Oct-84 16:32:53 by GRANT
;Remove references to FTCI
; UPD ID= 4973, SNARK:<6.MONITOR>STG.MAC.418,  22-Oct-84 16:08:19 by GLINDELL
;TCO 6.2255 Increase MDDT data space to 3 pages (NDDTPG)
; UPD ID= 4957, SNARK:<6.MONITOR>STG.MAC.417,  18-Oct-84 15:44:52 by LEACHE
;TCO 6.2254 Add history buffers to swappable freespace pools
; UPD ID= 4940, SNARK:<6.MONITOR>STG.MAC.416,  15-Oct-84 13:13:56 by GRANT
;The assembly switch CFSCOD has been eliminated
; UPD ID= 4919, SNARK:<6.MONITOR>STG.MAC.415,  11-Oct-84 09:50:18 by GLINDELL
;TCO 6.1.1021 - 6.1 address space
; UPD ID= 4896, SNARK:<6.MONITOR>STG.MAC.414,   6-Oct-84 00:25:33 by TBOYLE
;QAR 706259 - More TCO 6.2081 - Fix NDG MTDFDN.
; UPD ID= 4891, SNARK:<6.MONITOR>STG.MAC.413,   1-Oct-84 13:57:56 by PALMIERI
;Initialize LATMCT to large positive value
;Make DECnet extended and non-extended pools have same mumber
;Don't allocate non-extended DECnet quota in extended pool
; UPD ID= 4875, SNARK:<6.MONITOR>STG.MAC.412,  25-Sep-84 11:35:47 by EVANS
;TCO 6.2222 - Add VT200 terminal support.
; UPD ID= 4873, SNARK:<6.MONITOR>STG.MAC.411,  25-Sep-84 10:38:15 by GUNN
;Fix bug introduced in UPD ID 4872. Remove definition of .XREDQ from
; FTNSPSRV conditional.
; UPD ID= 4872, SNARK:<6.MONITOR>STG.MAC.410,  24-Sep-84 16:58:52 by PALMIERI
;Build extended free space for DECnet-36 under conditional FTD36MM
; UPD ID= 4835, SNARK:<6.MONITOR>STG.MAC.409,  17-Sep-84 11:23:18 by PURRETTA
;Update copyright notice
; UPD ID= 4803, SNARK:<6.MONITOR>STG.MAC.408,  14-Sep-84 09:02:25 by MCLEAN
;UPDATE KLPVWD
;REMOVE PRTTBU
; UPD ID= 4792, SNARK:<6.MONITOR>STG.MAC.407,   6-Sep-84 19:19:24 by LEACHE
;Fix comment
; UPD ID= 4788, SNARK:<6.MONITOR>STG.MAC.406,   4-Sep-84 11:39:50 by GRANT
;KLPVER is now 650
; UPD ID= 4760, SNARK:<6.MONITOR>STG.MAC.405,  27-Aug-84 13:21:29 by GRANT
;KLPVER is now 642
; UPD ID= 4718, SNARK:<6.MONITOR>STG.MAC.404,  20-Aug-84 15:20:56 by TBOYLE
;TCO 6.2081 (QAR 706039) NDG MTDFDN allows site-specific value in PARAMs.
; UPD ID= 4706, SNARK:<6.MONITOR>STG.MAC.403,  17-Aug-84 20:36:29 by GROSSMAN
;TCO 6.1.1011 - Add dummys for the NI% JSYS.
; UPD ID= 4697, SNARK:<6.MONITOR>STG.MAC.402,  15-Aug-84 18:32:58 by GROSSMAN
;TCO 6.2176 - Add dummy global KNIJB0.
; UPD ID= 4696, SNARK:<6.MONITOR>STG.MAC.401,  15-Aug-84 17:24:59 by TBOYLE
;Put .RESGQ back to 6000. Because ALCSBX being disabled until SETSPD fixed.
; UPD ID= 4693, SNARK:<6.MONITOR>STG.MAC.400,  15-Aug-84 15:34:17 by TBOYLE
;Increase XRESGQ from 6000 to 7000. Parser logs are coming incomplete.
; UPD ID= 4684, SNARK:<6.MONITOR>STG.MAC.399,  14-Aug-84 07:23:37 by GRANT
;KLPVER is now 617.
; UPD ID= 4675, SNARK:<6.MONITOR>STG.MAC.398,  10-Aug-84 17:17:19 by GROSSMAN
;TCO 6.2169 - Change PI system initialization so that vectors are setup
;earlier.
; UPD ID= 4671, SNARK:<6.MONITOR>STG.MAC.397,   9-Aug-84 11:40:45 by PAETZOLD
;TCO 6.2168 - Contrary to popular belief PI6STK is needed at times when KNIN is off.
;More TCO 6.1.1010 - Only load TTANDV when release 6.1
; UPD ID= 4670, SNARK:<6.MONITOR>STG.MAC.396,   8-Aug-84 16:29:23 by LEACHE
;TCO 6.2167 - Fix escape sequence for VK100's
; UPD ID= 4661, SNARK:<6.MONITOR>STG.MAC.395,   7-Aug-84 17:05:28 by CDUNN
;More TCO 6.1127 - Add SCSTXN and SCSBXN to the PSB
; UPD ID= 4652, SNARK:<6.MONITOR>STG.MAC.394,   7-Aug-84 16:08:46 by PAETZOLD
;IPNIDV changes
; UPD ID= 4623, SNARK:<6.MONITOR>STG.MAC.393,  28-Jul-84 18:38:05 by GLINDELL
;More Tco 6.1127 - support section 37 also
; UPD ID= 4615, SNARK:<6.MONITOR>STG.MAC.392,  27-Jul-84 15:59:58 by TBOYLE
;New SYSERR - Make .XREGQ for extended general pool, and lower .RESGQ to 1400.
;Also added NIINI: RET when KNIN=0, for STU.
;TCO 6.2169 - Change PI system initialization so that vectors are setup
;earlier.
;Implement new address space scheme for 6.1
; UPD ID= 4623, SNARK:<6.MONITOR>STG.MAC.393,  28-Jul-84 18:38:05 by GLINDELL
;More Tco 6.1127 - support section 37 also
; UPD ID= 4615, SNARK:<6.MONITOR>STG.MAC.392,  27-Jul-84 15:59:58 by TBOYLE
;New SYSERR - Make .XREGQ for extended general pool, and lower .RESGQ to 1400.
;Also added KNINI: RET when KNIN=0, for STU.
; UPD ID= 4606, SNARK:<6.MONITOR>STG.MAC.391,  27-Jul-84 13:04:58 by MCLEAN
;Add KLPVWD and move KLPVER here from PHYKLP.MAC
; UPD ID= 4598, SNARK:<6.MONITOR>STG.MAC.390,  26-Jul-84 23:47:07 by GROSSMAN
;TCO 6.2106 - Make PI6STK bigger so that NISRV can use it.
; UPD ID= 4594, SNARK:<6.MONITOR>STG.MAC.389,  26-Jul-84 22:26:36 by CDUNN
;More TCO 6.1127 - Add FRKTAB and its length FRKTLN for the SCS% JSYS.
; UPD ID= 4586, SNARK:<6.MONITOR>STG.MAC.388,  25-Jul-84 16:05:45 by PURRETTA
;Reduce UTNPG (storage space for UTEST JSYS) to one page.
; UPD ID= 4502, SNARK:<6.MONITOR>STG.MAC.387,  12-Jul-84 19:56:36 by LOMARTIRE
;Fix the definition of SVSCAC since the symbol .SSMNT no longer exists.
; UPD ID= 4492, SNARK:<6.MONITOR>STG.MAC.386,  12-Jul-84 16:47:59 by MOSER
;CHANGE SIZE OF SCDBTB - MAKE SERVER PARAMETERS NDGS
; UPD ID= 4432, SNARK:<6.MONITOR>STG.MAC.385,   4-Jul-84 22:16:33 by MCLEAN
;ADD HOMSKP AND OTHER CHANGES FOR NEW HOMEBLOCK STUFF
; UPD ID= 4429, SNARK:<6.MONITOR>STG.MAC.384,   3-Jul-84 14:30:21 by LOMARTIRE
;Remove SRVCSP block as block is now acquired from free space
; UPD ID= 4407, SNARK:<6.MONITOR>STG.MAC.383,  28-Jun-84 19:24:21 by TBOYLE
;Fix undefined globals CFCIN, CFCSE, CFCND in non-CFS monitor
; UPD ID= 4386, SNARK:<6.MONITOR>STG.MAC.382,  26-Jun-84 11:45:54 by PURRETTA
;Up maximum number of online structures allowed to 32 decimal.
; UPD ID= 4380, SNARK:<6.MONITOR>STG.MAC.381,  24-Jun-84 15:26:33 by GLINDELL
;TCO 6.2106 - Add MONPDV
; UPD ID= 4374, SNARK:<6.MONITOR>STG.MAC.380,  22-Jun-84 16:26:04 by TBOYLE
;CNFIG% - CNFGWD parameter word, and do stuff for CFS/non-CFS monitor.
; UPD ID= 4344, SNARK:<6.MONITOR>STG.MAC.379,  15-Jun-84 13:49:32 by LOMARTIRE
;Add SRVCSP block to hold results of SC.CSP done by MSCP server
; UPD ID= 4338, SNARK:<6.MONITOR>STG.MAC.378,  13-Jun-84 22:01:25 by MCLEAN
;FIX SOME COMMENTS
; UPD ID= 4316, SNARK:<6.MONITOR>STG.MAC.377,  11-Jun-84 10:01:07 by HAUDEL
;ADD MACLOT,MAIOTC, AND MAICLT
; UPD ID= 4275, SNARK:<6.MONITOR>STG.MAC.376,  30-May-84 21:31:47 by MCLEAN
;ADD TRECPP TRUE SECTORS PER PAGE COUNT
; UPD ID= 4268, SNARK:<6.MONITOR>STG.MAC.375,  30-May-84 21:19:16 by MOSER
;TCO 6.2072 - NAKE PSPNTP A NDG
; UPD ID= 4254, SNARK:<6.MONITOR>STG.MAC.374,  30-May-84 11:14:23 by MOSER
;TCO 6.2071 - allow PCDPN = 0
; UPD ID= 4243, SNARK:<6.MONITOR>STG.MAC.373,  25-May-84 06:16:46 by GRANT
;TCO 6.2068 - Add RESNET (DECnet resident free space threshold flag)
; UPD ID= 4234, SNARK:<6.MONITOR>STG.MAC.372,  20-May-84 15:26:18 by PAETZOLD
;Increase NHOSTS and NHSTN
; UPD ID= 4231, SNARK:<6.MONITOR>STG.MAC.371,  18-May-84 07:30:10 by MCINTEE
;~6.0 Put CTMFRK here after other job 0 forks.
; UPD ID= 4228, SNARK:<6.MONITOR>STG.MAC.370,  16-May-84 17:44:46 by PAETZOLD
;Turn on INTBYP
; UPD ID= 4224, SNARK:<6.MONITOR>STG.MAC.369,  16-May-84 13:41:45 by MCINTEE
;~6.0 - Remove reference to CTHSCH.
; UPD ID= 4221, SNARK:<6.MONITOR>STG.MAC.368,  14-May-84 19:07:43 by WEISBACH
;Remove references to FIXUP.
; UPD ID= 4217, SNARK:<6.MONITOR>STG.MAC.367,  14-May-84 18:52:19 by WEISBACH
;~6.0 - Add Storage and definitions for LAT Host Terminal support.  Except
; for NTTLAH definition, all is under LAHFLG conditional.
; UPD ID= 4213, SNARK:<6.MONITOR>STG.MAC.366,  13-May-84 06:30:58 by GRANT
;Increase .RESNQ (DECnet resident free space)
; UPD ID= 4209, SNARK:<6.MONITOR>STG.MAC.365,  11-May-84 09:21:37 by MCINTEE
;More of previous at DDTU - to determine if we are running pre-POSTLD
; UPD ID= 4204, SNARK:<6.MONITOR>STG.MAC.364,   9-May-84 17:04:32 by LEACHE
;Use .EDSYM to determine if DDT must play mapping games or not
; UPD ID= 4184, SNARK:<6.MONITOR>STG.MAC.363,   8-May-84 15:39:23 by TBOYLE
;TCO 6.2055 - Define SPRFLG ... also moved ALCLST,BUGLST,SYELST to SYSERR area
; UPD ID= 4130, SNARK:<6.MONITOR>STG.MAC.361,  25-Apr-84 11:10:11 by LOMARTIRE
;TCO 6.2046 - Add SEBFRK,CILFRK,CIDFRK,JB0FRK,DDPFRK,DNTFRK,SJBFRK
; Move TEFORK, MOSFRK here from MEXEC
; UPD ID= 4122, SNARK:<6.MONITOR>STG.MAC.360,  24-Apr-84 22:47:06 by MCLEAN
;INSURE SYSRST RUNS IN SECTION 0 OR RESET OF IO WILL LOOSE
; UPD ID= 4121, SNARK:<6.MONITOR>STG.MAC.359,  24-Apr-84 18:10:05 by TBOYLE
;More TCO 6.2045 Up BUGMAX from 5 to 20.
; UPD ID= 4116, SNARK:<6.MONITOR>STG.MAC.358,  24-Apr-84 12:59:38 by TGRADY
;TCO 6.2041 - Remove TCO 6.1999
; UPD ID= 4107, SNARK:<6.MONITOR>STG.MAC.357,  23-Apr-84 10:47:17 by HAUDEL
;Add RS MAITIM,MAIFLG,MAICLF,and MAICLN for DIAG% CI Maintenance
; UPD ID= 4103, SNARK:<6.MONITOR>STG.MAC.356,  20-Apr-84 21:31:16 by MCLEAN
;MAKE HALTF +1 GO TO 140 TO CONTINUE ON CONTINUE COMMAND
; UPD ID= 4089, SNARK:<6.MONITOR>STG.MAC.355,  17-Apr-84 13:22:41 by PALMIERI
;Add DCNCID storage for DTESRV DECnet
; UPD ID= 4088, SNARK:<6.MONITOR>STG.MAC.354,  17-Apr-84 10:27:27 by GROSSMAN
;TCO 6.2035 - Install dummy routine for setting Ethernet address.
; UPD ID= 4084, SNARK:<6.MONITOR>STG.MAC.353,  12-Apr-84 17:06:19 by TBOYLE
;TCO 6.2033 Increase .RESGP by 4x to 6000. Uses 4 more pages in 0/1. *TEMP*
; UPD ID= 4077, SNARK:<6.MONITOR>STG.MAC.352,  11-Apr-84 22:24:38 by TBOYLE
;TCO 6.2027 Add RS SYELST, ALCLST, BUGLST.
; UPD ID= 4059, SNARK:<6.MONITOR>STG.MAC.351,  11-Apr-84 04:51:29 by LEACHE
;Fix FSPPL. macro
; UPD ID= 4054, SNARK:<6.MONITOR>STG.MAC.350,   5-Apr-84 16:10:07 by LOMARTIRE
;Increase the size of PIPDB to avoid MONPDLs from SCA ring buffer use
; UPD ID= 4051, SNARK:<6.MONITOR>STG.MAC.349,   5-Apr-84 08:45:42 by PAETZOLD
;TCO 6.2020 - Add PIOLD2 to save FKSTA2 during PSIs.
; UPD ID= 4009, SNARK:<6.MONITOR>STG.MAC.348,  30-Mar-84 15:44:32 by NICHOLS
;~6.0 - Fix order of tick service calls to DECnet-36 at LV8CHK
; UPD ID= 4007, SNARK:<6.MONITOR>STG.MAC.347,  28-Mar-84 22:31:59 by MOSER
;MORE 6.1562 - TUNE THE SERVER
; UPD ID= 3930, SNARK:<6.MONITOR>STG.MAC.346,  14-Mar-84 16:23:11 by GLINDELL
;~6.0 - Add LOADMODULE of CIDLL
; UPD ID= 3929, SNARK:<6.MONITOR>STG.MAC.345,  14-Mar-84 14:59:50 by TGRADY
;TCO 6.1999 - For non-CFS monitors, define MXGLBS = NJOBS for GL2LCL
; UPD ID= 3899, SNARK:<6.MONITOR>STG.MAC.344,  11-Mar-84 10:38:31 by PAETZOLD
;More TCO 6.1733 - Add JOBUNI, PRFNET, PRFADR, PRFNFD
; UPD ID= 3867, SNARK:<6.MONITOR>STG.MAC.343,   7-Mar-84 11:28:46 by LEACHE
;TCO  --- Make @START 140 cause NRCOD to be mapped into section zero
; UPD ID= 3831, SNARK:<6.MONITOR>STG.MAC.342,  29-Feb-84 18:34:09 by PAETZOLD
;More TCO 6.1733 - Remove ANBSEC and MNTSEC.
; UPD ID= 3817, SNARK:<6.MONITOR>STG.MAC.341,  29-Feb-84 17:05:46 by LEACHE
;TCO 6.1969 Add BOOT communications region, delete IRBOOT code
; UPD ID= 3788, SNARK:<6.MONITOR>STG.MAC.340,  28-Feb-84 15:22:14 by HAUDEL
;TCO 6.1546 - Change CNTBUF for new Performance Counter format.
; UPD ID= 3768, SNARK:<6.MONITOR>STG.MAC.339,  27-Feb-84 10:58:18 by MOSER
;ADD DUMMY MSSCHK
; UPD ID= 3762, SNARK:<6.MONITOR>STG.MAC.338,  26-Feb-84 23:54:06 by TGRADY
;Make JBWDS be a function of MXGLBS, not NJOBS, so global job numbers will work.
; UPD ID= 3733, SNARK:<6.MONITOR>STG.MAC.337,  22-Feb-84 14:21:50 by GUNN
;~6.0 - Change CLK2TM table to reside in RESDAT PSECT. Now uses RSI macro.
; UPD ID= 3732, SNARK:<6.MONITOR>STG.MAC.336,  22-Feb-84 14:05:49 by MOSER
;STILL MORE 6.1562 - ADD SVCMRT
; UPD ID= 3729, SNARK:<6.MONITOR>STG.MAC.335,  22-Feb-84 13:59:36 by MOSER
;MORE 6.1562 ADD DUMMY FOR SRVCFS. ADD NULJBF AND SRVSKD
; UPD ID= 3684, SNARK:<6.MONITOR>STG.MAC.334,  10-Feb-84 20:14:37 by PAETZOLD
;Increase NHOSTS
; UPD ID= 3679, SNARK:<6.MONITOR>STG.MAC.333,   9-Feb-84 10:33:17 by GROSSMAN
;Remove NIDLL and PHYKNI.  Add NISRV.  Put all things under FTNIDLL into KNIN.
; UPD ID= 3675, SNARK:<6.MONITOR>STG.MAC.332,   8-Feb-84 15:02:34 by MOSER
;INCREASE .XREUQ
; UPD ID= 3663, SNARK:<6.MONITOR>STG.MAC.331,   7-Feb-84 16:41:08 by VATNE
;Make ENQLTL only one word long.
; UPD ID= 3733, SNARK:<6.MONITOR>STG.MAC.337,  22-Feb-84 14:21:50 by GUNN
;~6.0 - Change CLK2TM table to reside in RESDAT PSECT. Now uses RSI macro.
; UPD ID= 3732, SNARK:<6.MONITOR>STG.MAC.336,  22-Feb-84 14:05:49 by MOSER
;STILL MORE 6.1562 - ADD SVCMRT
; UPD ID= 3729, SNARK:<6.MONITOR>STG.MAC.335,  22-Feb-84 13:59:36 by MOSER
;MORE 6.1562 ADD DUMMY FOR SRVCFS. ADD NULJBF AND SRVSKD
; UPD ID= 3684, SNARK:<6.MONITOR>STG.MAC.334,  10-Feb-84 20:14:37 by PAETZOLD
;Increase NHOSTS
; UPD ID= 3679, SNARK:<6.MONITOR>STG.MAC.333,   9-Feb-84 10:33:17 by GROSSMAN
;Remove NIDLL and PHYKNI.  Add NISRV.  Put all things under FTNIDLL into KNIN.
; UPD ID= 3675, SNARK:<6.MONITOR>STG.MAC.332,   8-Feb-84 15:02:34 by MOSER
;INCREASE .XREUQ
; UPD ID= 3663, SNARK:<6.MONITOR>STG.MAC.331,   7-Feb-84 16:41:08 by VATNE
;Make ENQLTL only one word long.
; UPD ID= 3652, SNARK:<6.MONITOR>STG.MAC.330,   3-Feb-84 15:49:10 by MURPHY
;Fix SWPMBP
; UPD ID= 3647, SNARK:<6.MONITOR>STG.MAC.329,   2-Feb-84 14:35:07 by MURPHY
;Fix bugs in previous.
; UPD ID= 3642, SNARK:<6.MONITOR>STG.MAC.328,   2-Feb-84 11:54:29 by MURPHY
;Put definition of BOOT cells in PROLOG.
; UPD ID= 3638, SNARK:<6.MONITOR>STG.MAC.327,   1-Feb-84 22:11:06 by MURPHY
;Ever more 6.1525 - Move DDTs and bug stuff to symsec.
; UPD ID= 3616, SNARK:<6.MONITOR>STG.MAC.326,   1-Feb-84 10:43:31 by PRATT
;TCO 6.1956 - XECFLG for EXEC flags
; UPD ID= 3609, SNARK:<6.MONITOR>STG.MAC.325,  31-Jan-84 15:52:58 by TGRADY
;Fix RSI GLBPTR so that byte pointer is treated as only one word (not two)
; UPD ID= 3600, SNARK:<6.MONITOR>STG.MAC.324,  31-Jan-84 13:06:40 by MOSER
;DUMMY FOR MSSRED
; UPD ID= 3596, SNARK:<6.MONITOR>STG.MAC.323,  31-Jan-84 04:05:31 by TGRADY
;ADD JSB LOCATION GBLJNO TO STORE GLOBAL JOB NUMBER
; UPD ID= 3543, SNARK:<6.MONITOR>STG.MAC.322,  25-Jan-84 19:34:16 by MOSER
;TCO 6.1562 - MORE SERVER CHANGES. MOVE SOME STUFF TO RSEs.
; MAKE FTSVMSCP GLOBAL.
; RETURN MSCPX1 IF NO SERVER.
; UPD ID= 3534, SNARK:<6.MONITOR>STG.MAC.321,  25-Jan-84 10:13:31 by PAETZOLD
;TCO 6.1954 - Add DDPDUE and CHKDUE
; UPD ID= 3522, SNARK:<6.MONITOR>STG.MAC.320,  24-Jan-84 13:58:22 by HAUDEL
;TCO 6.1546 - Add Performance counter locations and locks for DIAG% and the
;KLIPA
; UPD ID= 3480, SNARK:<6.MONITOR>STG.MAC.319,  19-Jan-84 19:27:05 by TBOYLE
;Remove CFGCFS, their are better ways...
; UPD ID= 3475, SNARK:<6.MONITOR>STG.MAC.318,  18-Jan-84 13:22:20 by TBOYLE
;CNFIG% JSYS - Add CFGCFS location to contain value of CFSSCA.
; UPD ID= 3455, SNARK:<6.MONITOR>STG.MAC.317,  13-Jan-84 17:12:19 by TBOYLE
;TCO 6.1933 - SPRCNT INITIALLY -1 TO STALL SPEAR LOGGING FOR SETSPD.
; UPD ID= 3447, SNARK:<6.MONITOR>STG.MAC.316,  12-Jan-84 14:21:13 by PAETZOLD
;TCO 6.1929 - Change FKJOBN to FKJBN
; UPD ID= 3346, SNARK:<6.MONITOR>STG.MAC.315,  19-Dec-83 15:37:27 by LEACHE
;TCO 6.1641 increase Pid header size (PIDHDS)
; UPD ID= 3342, SNARK:<6.MONITOR>STG.MAC.314,  19-Dec-83 10:50:21 by MOSER
; UPD ID= 3340, SNARK:<6.MONITOR>STG.MAC.313,  19-Dec-83 09:54:52 by PALMIERI
;Add LOADMODULE FOR DNADLL - part of DECnet 36
; UPD ID= 3324, SNARK:<6.MONITOR>STG.MAC.312,  14-Dec-83 17:35:17 by MOSER
;TCO 6.1562 - ADD DUMMYS FOR SERVER ONLINE/OFFLINE
; UPD ID= 3306, SNARK:<6.MONITOR>STG.MAC.311,  13-Dec-83 18:14:07 by PAETZOLD
;TCO 6.1906 - Add DDPTIM
; UPD ID= 3279, SNARK:<6.MONITOR>STG.MAC.310,   8-Dec-83 13:41:45 by PURRETTA
;Up old free space pool (SWFREL) one more page.
; UPD ID= 3276, SNARK:<6.MONITOR>STG.MAC.309,   7-Dec-83 15:42:32 by PAETZOLD
;Add SWPF1 and SWPF2 symbols
; UPD ID= 3253, SNARK:<6.MONITOR>STG.MAC.308,   5-Dec-83 14:56:07 by PURRETTA
;Temporarily up the old free space pool (SWFREL) for SYSDPY
; UPD ID= 3252, SNARK:<6.MONITOR>STG.MAC.307,   5-Dec-83 13:43:59 by PAETZOLD
;Condition out the .DBGIM stuff with IPPDSW
; UPD ID= 3241, SNARK:<6.MONITOR>STG.MAC.306,   1-Dec-83 10:14:50 by LEACHE
;Increase swappable pool sizes when debugging
; UPD ID= 3231, SNARK:<6.MONITOR>STG.MAC.305,  29-Nov-83 13:50:20 by MOSER
;TCO 6.1562 - BUNDLE MSCP SERVER WITH CFS
; UPD ID= 3227, SNARK:<6.MONITOR>STG.MAC.304,  29-Nov-83 09:53:06 by GLINDELL
;TCO 6.1.1004 - Add def of FILNLP, and turn on D1%MTO in DEVCH1 for DECnet-36
; UPD ID= 3225, SNARK:<6.MONITOR>STG.MAC.303,  28-Nov-83 15:25:29 by GUNN
;~6.0 - In CLK2CL, add call to RCSIDS in LLMOP to periodically perform Ethernet
;  Console Server Identify-Self function.
; UPD ID= 3220, SNARK:<6.MONITOR>STG.MAC.302,  28-Nov-83 09:47:30 by LEACHE
;Move DECnet swappable freespace out of section zero
; UPD ID= 3152, SNARK:<6.MONITOR>STG.MAC.301,  15-Nov-83 09:48:01 by PAETZOLD
;TCO 6.1856 - Change TVTWTM to 10000. from 200.
; UPD ID= 3136, SNARK:<6.MONITOR>STG.MAC.300,  10-Nov-83 09:50:24 by MCINTEE
;Angle bracket mistake
; UPD ID= 3116, SNARK:<6.MONITOR>STG.MAC.299,   8-Nov-83 09:02:17 by MCINTEE
;~6.0 - Remove NSP% jsys (module SCNSPJ)
; UPD ID= 3094, SNARK:<6.MONITOR>STG.MAC.298,   3-Nov-83 23:37:20 by GROSSMAN
;TCO 6.1849 - Initialize CRJTTY to -1
; UPD ID= 3077, SNARK:<6.MONITOR>STG.MAC.297,  25-Oct-83 13:06:04 by GRANT
;In CLK2CL, add call to MSCP poller
; UPD ID= 3045, SNARK:<6.MONITOR>STG.MAC.296,  19-Oct-83 10:41:14 by MILLER
;tco 6.1094. Add cfnnam
; UPD ID= 3044, SNARK:<6.MONITOR>STG.MAC.295,  19-Oct-83 09:35:40 by MCINTEE
;Remove FTNSPSRV conditional from definition of MAXBLK
; UPD ID= 3039, SNARK:<6.MONITOR>STG.MAC.294,  17-Oct-83 15:48:24 by MCINTEE
;Put NTTBF back to what it used to be for 6.1
; UPD ID= 3045, SNARK:<6.MONITOR>STG.MAC.296,  19-Oct-83 10:41:14 by MILLER
;tco 6.1094. Add cfnnam
; UPD ID= 3044, SNARK:<6.MONITOR>STG.MAC.295,  19-Oct-83 09:35:40 by MCINTEE
;Remove FTNSPSRV conditional from definition of MAXBLK
; UPD ID= 3039, SNARK:<6.MONITOR>STG.MAC.294,  17-Oct-83 15:48:24 by MCINTEE
;Put NTTBF back to what it used to be for 6.1
; UPD ID= 3028, SNARK:<6.MONITOR>STG.MAC.293,  11-Oct-83 10:27:11 by MILLER
;TCO 6.1824. Add PIDPRT
; UPD ID= 3017, SNARK:<6.MONITOR>STG.MAC.292,  10-Oct-83 13:22:52 by MOSER
;TCO 6.1816 - MAKE RLDFRK RESIDENT
; UPD ID= 2964, SNARK:<6.MONITOR>STG.MAC.291,  30-Sep-83 19:28:07 by MILLER
;FIx GLBPTR
; UPD ID= 2960, SNARK:<6.MONITOR>STG.MAC.290,  28-Sep-83 19:11:51 by MILLER
;Fix a typeo
; UPD ID= 2958, SNARK:<6.MONITOR>STG.MAC.289,  28-Sep-83 18:53:26 by MILLER
;TCO 6.1094. Add defs for global job numbers
; UPD ID= 2941, SNARK:<6.MONITOR>STG.MAC.288,  27-Sep-83 09:45:40 by GRANT
;Add KLPDSP to PHYCHT.  Add KLIPA test code to PISC5.
; UPD ID= 2912, SNARK:<6.MONITOR>STG.MAC.287,  20-Sep-83 14:10:09 by MCLEAN
;AND MORE MORE MORE PDL FOR SCA
; UPD ID= 2912, SNARK:<6.MONITOR>STG.MAC.287,  20-Sep-83 14:10:09 by MCLEAN
;AND MORE MORE MORE PDL FOR SCA
; UPD ID= 2872, SNARK:<6.MONITOR>STG.MAC.286,  31-Aug-83 15:53:13 by MCLEAN
;NEED MORE SCHED PDL FOR SCA
; UPD ID= 2867, SNARK:<6.MONITOR>STG.MAC.285,  24-Aug-83 17:11:30 by PAETZOLD
;TCO 6.1761 - VT131 Support
; UPD ID= 2843, SNARK:<6.MONITOR>STG.MAC.284,  17-Aug-83 21:41:22 by MURPHY
;More 6.1525 - Separate section 0/1 maps.  M1SPTN.
; UPD ID= 2806, SNARK:<6.MONITOR>STG.MAC.283,   9-Aug-83 11:45:25 by MURPHY
;More 6.1525 - Add new psect SZCOD.
; UPD ID= 2803, SNARK:<6.MONITOR>STG.MAC.282,   4-Aug-83 13:31:59 by LEACHE
;More of previous - move IPCF and ENQ pools out of section zero
; UPD ID= 2801, SNARK:<6.MONITOR>STG.MAC.281,   4-Aug-83 00:39:42 by LEACHE
;TCO 6.1641 Move swappable freespace out of section zero
; UPD ID= 2787, SNARK:<6.MONITOR>STG.MAC.280,   3-Aug-83 10:58:17 by MILLER
;TCO 6.1758. Add POBOX logical name
; UPD ID= 2765, SNARK:<6.MONITOR>STG.MAC.279,  25-Jul-83 14:50:29 by PAETZOLD
;More TCO 6.1733 - Add TVTMSG dummy for when NETN is off
; UPD ID= 2744, SNARK:<6.MONITOR>STG.MAC.278,  22-Jul-83 16:32:48 by MURPHY
;Put COFTIM back in here.
;TCO 6.1719 - Customer-selectable hangup options.
; UPD ID= 2720, SNARK:<6.MONITOR>STG.MAC.277,  22-Jul-83 14:55:29 by PAETZOLD
;TCO 6.1733 - No more NCP
; UPD ID= 2713, SNARK:<6.MONITOR>STG.MAC.276,  20-Jul-83 17:03:10 by GUNN
;TCO 6.1.1003 - Add DNA Phase IV Ethernet LLMOP Support ~6.0
;~6.0 LLMOP module and LLMOP% JSYS
; UPD ID= 2683, SNARK:<6.MONITOR>STG.MAC.275,   6-Jul-83 16:05:40 by PURRETTA
;Add large copyright statement, shrink small assembled one.
; UPD ID= 2678, SNARK:<6.MONITOR>STG.MAC.274,   6-Jul-83 08:57:00 by MILLER
;Add CFSCMC
; UPD ID= 2675, SNARK:<6.MONITOR>STG.MAC.273,   5-Jul-83 16:39:22 by MOSER
;MORE TCO 6.1568 MOVE COFMIN TO PARAMS REMOVE COFTIM
; UPD ID= 2666, SNARK:<6.MONITOR>STG.MAC.272,   5-Jul-83 13:31:34 by MURPHY
;More 6.1525 - Create SYMSEC for symbols, ddt, etc.
; UPD ID= 2617, SNARK:<6.MONITOR>STG.MAC.271,  21-Jun-83 15:31:44 by MURPHY
;Add CSTVA
;Fix S$BGN so section numbers always correct.
; UPD ID= 2563, SNARK:<6.MONITOR>STG.MAC.270,   7-Jun-83 17:02:17 by MURPHY
;More 6.1525 - Move BUGPTRs and BUGSTRINGS to ext section; elim. BUGSTF.
; UPD ID= 2560, SNARK:<6.MONITOR>STG.MAC.269,   6-Jun-83 06:54:47 by LEAPLINE
;Add level 2 clocks for device KNI.
; UPD ID= 2544, SNARK:<6.MONITOR>STG.MAC.268,  31-May-83 16:43:30 by MURPHY
;More 6.1525 - Move RESBTB to extended section.
;Move class scheduler tables and subsystem names tables to ext secn.
; UPD ID= 2518, SNARK:<6.MONITOR>STG.MAC.267,  25-May-83 13:29:26 by GRANT
;TCO 6.1667 - use NRE and RSE for network management node counters
; UPD ID= 2505, SNARK:<6.MONITOR>STG.MAC.266,   23-May-83 10:58:19 by LOMARTIRE
;TCO 6.1633 - Add INFTMR for NOOFN BUGINF
; UPD ID= 2487, SNARK:<6.MONITOR>STG.MAC.265,  18-May-83 14:59:36 by MURPHY
;More of .-1, fix up EPGSEC stuff.
; UPD ID= 2467, SNARK:<6.MONITOR>STG.MAC.264,  16-May-83 17:14:38 by MURPHY
;TCO 6.1525 - Locking RSE pages.
; UPD ID= 2441, SNARK:<6.MONITOR>STG.MAC.263,   6-May-83 11:57:56 by MOSER
;TCO 6.1562 - CODE FOR MSCP SERVER
; UPD ID= 2435, SNARK:<6.MONITOR>STG.MAC.262,   6-May-83 10:58:19 by LOMARTIRE
;TCO 6.1627 - Move FFF here from POSTLD so it's size can be changed easier
; UPD ID= 2433, SNARK:<6.MONITOR>STG.MAC.261,   6-May-83 09:22:54 by HAUDEL
;TCO 6.1631 - Increase size of MTAPBF
; UPD ID= 2417, SNARK:<6.MONITOR>STG.MAC.260,   4-May-83 09:08:59 by LEACHE
;TCO 6.1642 - Create SWFSEC for swappable freespace section
; UPD ID= 2411, SNARK:<6.MONITOR>STG.MAC.259,   3-May-83 16:15:44 by COBB
;TCO 6.1639 - ?s in PRINTX messages...
; UPD ID= 2400, SNARK:<6.MONITOR>STG.MAC.258,   3-May-83 08:53:58 by COBB
;TCO 6.1637 - Define SPRCNT, running count of SPEAR blocks queued
; UPD ID= 2396, SNARK:<6.MONITOR>STG.MAC.257,   2-May-83 18:05:11 by LEAPLINE
;Another shot at level 2 timers for KLNI.
; UPD ID= 2392, SNARK:<6.MONITOR>STG.MAC.256,   2-May-83 04:19:46 by LEAPLINE
;Add level 2 clock for KLNI because PHYSIO's timer is too long for KLNI.
; UPD ID= 2389, SNARK:<6.MONITOR>STG.MAC.255,  30-Apr-83 13:20:18 by LEAPLINE
;Remove KLNI level 2 clock.
; UPD ID= 2376, SNARK:<6.MONITOR>STG.MAC.254,  29-Apr-83 14:24:13 by MILLER
;TCO 6.1623. Add MXLOGO
; UPD ID= 2369, SNARK:<6.MONITOR>STG.MAC.253,  28-Apr-83 10:11:41 by LEACHE
;Temporarily define dummy return for CFSINI
; UPD ID= 2363, SNARK:<6.MONITOR>STG.MAC.252,  27-Apr-83 14:09:07 by MOSER
;TCO 6.1568 - ADD COFTIM AND COFMIN
; UPD ID= 2358, SNARK:<6.MONITOR>STG.MAC.251,  27-Apr-83 13:28:25 by MILLER
;tco 6.1094. Add some counters for CFS
; UPD ID= 2353, SNARK:<6.MONITOR>STG.MAC.250,  26-Apr-83 22:11:21 by MILLER
;TCO 6.1623. Adjust count
; UPD ID= 2352, SNARK:<6.MONITOR>STG.MAC.249,  26-Apr-83 21:52:52 by CDUNN
;More TCO 6.1127 - Add support locs for SCA second level clock
; UPD ID= 2339, SNARK:<6.MONITOR>STG.MAC.248,  25-Apr-83 14:17:13 by MILLER
;TCO 6.1623. Add locs for new password scheme.
; UPD ID= 2334, SNARK:<6.MONITOR>STG.MAC.247,  24-Apr-83 22:56:50 by PAETZOLD
;More TCO 6.1557 - ANXN, and ANX0 removal
; UPD ID= 2319, SNARK:<6.MONITOR>STG.MAC.246,  20-Apr-83 15:22:55 by PAETZOLD
;TCO 6.1619 - Add support for H19 terminal type
; UPD ID= 2311, SNARK:<6.MONITOR>STG.MAC.245,  19-Apr-83 22:37:49 by PAETZOLD
;TCO 6.1617 - Create dummy symbols for when DECNET does not exist.
; UPD ID= 2302, SNARK:<6.MONITOR>STG.MAC.244,  18-Apr-83 13:27:16 by PAETZOLD
;More TCO 6.1557 - Handle case of DCN off but FTNSPSRV on
; UPD ID= 2297, SNARK:<6.MONITOR>STG.MAC.243,  17-Apr-83 18:40:50 by MILLER
;TCO 6.1094. Add statistics for CFS
; UPD ID= 2291, SNARK:<6.MONITOR>STG.MAC.242,  16-Apr-83 19:16:09 by PAETZOLD
;TCO 6.1557 - TCP Merge
;TCO 6.1615 - Remove BLKTRN
; UPD ID= 2276, SNARK:<6.MONITOR>STG.MAC.241,  13-Apr-83 18:09:53 by MURPHY
;More 6.1525 - Extended free space should be NRPE not RSE.  Revise macros.
; UPD ID= 2271, SNARK:<6.MONITOR>STG.MAC.240,  13-Apr-83 14:03:35 by MILLER
;tco 6.1610. Add PRTTBU
; UPD ID= 2267, SNARK:<6.MONITOR>STG.MAC.239,  13-Apr-83 12:28:57 by MILLER
;TCO 6.1610. Define CFSSKC and CFONLT
; UPD ID= 2265, SNARK:<6.MONITOR>STG.MAC.238,  13-Apr-83 12:24:17 by COBB
;TCO 6.1594 - Change SPDTBL to reflect new system PID entries
; UPD ID= 2258, SNARK:<6.MONITOR>STG.MAC.237,  13-Apr-83 08:34:04 by HALL
;TCO 6.1502 - Allow free space in extended section
;	Change quotas
; UPD ID= 2241, SNARK:<6.MONITOR>STG.MAC.236,  12-Apr-83 13:13:48 by MCINTEE
;Remove IFNDEF FTNSPSRV
; UPD ID= 2224, SNARK:<6.MONITOR>STG.MAC.235,   8-Apr-83 17:54:21 by MURPHY
;TCO 6.1525 - Implement RSE, NRE, NRPE for storage in extended section.
; UPD ID= 2217, SNARK:<6.MONITOR>STG.MAC.234,   8-Apr-83 12:25:04 by MILLER
;Once more. Define CHKKLP correctly
; UPD ID= 2214, SNARK:<6.MONITOR>STG.MAC.233,   8-Apr-83 08:32:58 by MILLER
;TCO 6.1602. Add dummy CHHKLP
; UPD ID= 2193, SNARK:<6.MONITOR>STG.MAC.232,   7-Apr-83 23:18:48 by MURPHY
;TCO 6.1601 - Merge PAGFIL into PAGEM and PAGUTL.
; UPD ID= 2181, SNARK:<6.MONITOR>STG.MAC.231,   6-Apr-83 15:22:49 by MCINTEE
;SUPPRESS DDT PRINTOUT OF JOBM0
; UPD ID= 2179, SNARK:<6.MONITOR>STG.MAC.230,   6-Apr-83 10:34:01 by LEACHE
;Add comments
; UPD ID= 2170, SNARK:<6.MONITOR>STG.MAC.229,   5-Apr-83 18:55:54 by MILLER
; UPD ID= 2168, SNARK:<6.MONITOR>STG.MAC.228,   5-Apr-83 16:13:43 by MILLER
; UPD ID= 2164, SNARK:<6.MONITOR>STG.MAC.227,   4-Apr-83 21:46:04 by WACHS
;TCO 6.1587 - Change addressing for HSC disks to a per-page basis
; UPD ID= 2132, SNARK:<6.MONITOR>STG.MAC.226,   2-Apr-83 22:49:10 by LEACHE
;TC0 6.1247 Add password encryption definitions
; UPD ID= 2116, SNARK:<6.MONITOR>STG.MAC.225,  29-Mar-83 13:55:14 by MURPHY
;Remove MONFL, MONPC no longer used.
; UPD ID= 2113, SNARK:<6.MONITOR>STG.MAC.224,  29-Mar-83 05:23:16 by CDUNN
; More TCO 6.1127 - Add second level clock for the SCS% JSYS.
; UPD ID= 2036, SNARK:<6.MONITOR>STG.MAC.223,  20-Mar-83 12:40:18 by HALL
;TCO 6.1502 - Allow free space in extended section
;	Define start and end of extended free space
;	Allocate a section for free space
; UPD ID= 1997, SNARK:<6.MONITOR>STG.MAC.222,  15-Mar-83 16:46:24 by MILLER
;TCO 6.1546. Add SERCNT
; UPD ID= 1972, SNARK:<6.MONITOR>STG.MAC.221,  10-Mar-83 23:35:00 by MURPHY
;Ditto
; UPD ID= 1969, SNARK:<6.MONITOR>STG.MAC.220,  10-Mar-83 18:04:35 by MURPHY
;Ditto
; UPD ID= 1963, SNARK:<6.MONITOR>STG.MAC.219,  10-Mar-83 15:09:32 by MURPHY
;Make second PSB page setup same as first.
; UPD ID= 1953, SNARK:<6.MONITOR>STG.MAC.218,   9-Mar-83 16:02:44 by MURPHY
;Shuffle PSB storage so as to have TRAPSK size not conditional.
; UPD ID= 1949, SNARK:<6.MONITOR>STG.MAC.217,   9-Mar-83 14:43:29 by GRANT
;TCO 6.1481 - add LNSSLZ, LNBYTR, LNBYTS, LNBLKR, and LNBLKS
; UPD ID= 1917, SNARK:<6.MONITOR>STG.MAC.216,   7-Mar-83 06:47:46 by WACHS
;More TCO 6.1355
; UPD ID= 1911, SNARK:<6.MONITOR>STG.MAC.213,   3-Mar-83 09:25:53 by CDUNN
;More TCO 6.1127 Merge more changes for SCS% JSYS and SCA in general.
;Fixes feature test on TRAPSK and PSB storage.
; UPD ID= 1882, SNARK:<6.MONITOR>STG.MAC.212,  27-Feb-83 22:08:11 by MURPHY
; Bit in TTYPE1 to require page mode for terminal.
; UPD ID= 1864, SNARK:<6.MONITOR>STG.MAC.211,  23-Feb-83 13:19:52 by MILLER
;TCO 6.1520. Add SPTD
; UPD ID= 1853, SNARK:<6.MONITOR>STG.MAC.210,  22-Feb-83 11:46:51 by GRANT
;TCO 6.1481 - 2-word queue headers for DECnet
; UPD ID= 1845, SNARK:<6.MONITOR>STG.MAC.209,  20-Feb-83 22:19:10 by MURPHY
;TCO 6.1514 - Use ITERX instead of JRST ITRAP.
; UPD ID= 1838, SNARK:<6.MONITOR>STG.MAC.208,  20-Feb-83 20:27:30 by MURPHY
;More 6.1294 - get rid of unneeded RS's.
; UPD ID= 1833, SNARK:<6.MONITOR>STG.MAC.207,  19-Feb-83 14:07:56 by LEAPLINE
;Add LV8CHK for KLNI instead of calling it directly from SCHED.
; UPD ID= 1825, SNARK:<6.MONITOR>STG.MAC.206,  18-Feb-83 10:35:33 by LEAPLINE
;Add level 2 clock check for KLNI
; UPD ID= 1820, SNARK:<6.MONITOR>STG.MAC.205,  17-Feb-83 17:18:44 by RIZZOLO
;Add FTNIDLL and only load NIDLL.REL if non-zero.  Also define it to be
;zero if it's not defined.
; UPD ID= 1818, SNARK:<6.MONITOR>STG.MAC.204,  17-Feb-83 14:52:35 by MCINTEE
;Still more 6.1484 for 6.1 - ADD NMLPSI & STUFF TO LV8CHK
; UPD ID= 1803, SNARK:<6.MONITOR>STG.MAC.203,  14-Feb-83 15:17:46 by HALL
;TCO 6.1502 - Allow resident free space in non-PC section
;Put all ATS definitions under ATS conditional to save space
; UPD ID= 1802, SNARK:<6.MONITOR>STG.MAC.202,  14-Feb-83 15:05:05 by MCINTEE
;More TCO 6.1484 - PUT EVRFRK IN 6.1
; UPD ID= 1779, SNARK:<6.MONITOR>STG.MAC.201,  10-Feb-83 10:59:22 by WEETON
;TCO 6.1487 - Move DSTFLG into common area
; UPD ID= 1777, SNARK:<6.MONITOR>STG.MAC.200,  10-Feb-83 05:30:05 by CDUNN
;More TCO 6.1127 Fix SCS% storage
; UPD ID= 1771, SNARK:<6.MONITOR>STG.MAC.199,   5-Feb-83 18:31:51 by MILLER
;TCO 6.1094. Define OFNCFS
; UPD ID= 1770, SNARK:<6.MONITOR>STG.MAC.198,   4-Feb-83 20:43:44 by GRANT
;More TCO 6.1493 - adjust .RESNQ
; UPD ID= 1767, SNARK:<6.MONITOR>STG.MAC.197,   4-Feb-83 11:15:07 by MILLER
;TCO 6.1094. Add DDCFSF
; UPD ID= 1765, SNARK:<6.MONITOR>STG.MAC.196,   4-Feb-83 10:55:54 by GRANT
;More TCO 6.1493
; UPD ID= 1764, SNARK:<6.MONITOR>STG.MAC.195,   4-Feb-83 09:57:40 by GRANT
;More TCO 6.1493
; UPD ID= 1763, SNARK:<6.MONITOR>STG.MAC.194,   4-Feb-83 09:46:30 by MCINTEE
;RESTORE EDIT 1678 - 6.1 NEEDS SOMES DECNET RESIDENT FREE SPACE
; UPD ID= 1758, SNARK:<6.MONITOR>STG.MAC.193,   3-Feb-83 14:01:38 by GRANT
;TCO 6.1493 - add UNITS pools to resident free space
; UPD ID= 1739, SNARK:<6.MONITOR>STG.MAC.192,   2-Feb-83 14:07:32 by GRANT
;TCO 6.1484 - EVENTS, EVRFRK, MXEVNT, NEVNTS
; UPD ID= 1737, SNARK:<6.MONITOR>STG.MAC.191,   2-Feb-83 12:41:24 by CDUNN
;More TCO 6.1127 Fix comments on EPGMAP to not point at FREE.MAC anymore
; UPD ID= 1733, SNARK:<6.MONITOR>STG.MAC.190,   1-Feb-83 14:38:59 by MCINTEE
;MAKE NTCTAB RESIDENT FOR 6.1
; UPD ID= 1727, SNARK:<6.MONITOR>STG.MAC.189,  31-Jan-83 20:47:53 by CDUNN
;More TCO 6.1127 Add per fork PSI storage for SCS% JSYS
; UPD ID= 1712, SNARK:<6.MONITOR>STG.MAC.188,  28-Jan-83 07:35:03 by MCINTEE
;TYPO IN EDIT 1704
; UPD ID= 1705, SNARK:<6.MONITOR>STG.MAC.187,  27-Jan-83 19:57:16 by MILLER
;TCO 6.1094. Add ALCLOK
; UPD ID= 1704, SNARK:<6.MONITOR>STG.MAC.186,  27-Jan-83 18:35:58 by MCINTEE
;CHANGE TTY BUFFER FOR 6.1 TO REFLECT CTERM
; UPD ID= 1701, SNARK:<6.MONITOR>STG.MAC.185,  27-Jan-83 10:00:41 by GRANT
;TCO 6.1455 - remove storage for internal links
; UPD ID= 1698, SNARK:<6.MONITOR>STG.MAC.184,  26-Jan-83 13:59:18 by LEAPLINE
;Change UNVECTORED interrupt processing for KLNI from level 5 to level 6
; UPD ID= 1695, SNARK:<6.MONITOR>STG.MAC.183,  25-Jan-83 14:49:09 by MCINTEE
;REINSTATE NETWORK TOPOLOGY CHANGE INTERRUPT FOR 6.1
; UPD ID= 1683, SNARK:<6.MONITOR>STG.MAC.182,  20-Jan-83 08:30:40 by GRANT
;TCO 6.1469 - add DNASTA
; UPD ID= 1681, SNARK:<6.MONITOR>STG.MAC.181,  19-Jan-83 15:42:37 by MCINTEE
;TCO 6.1471 - MOVE SEBINI INTO SYSGO1
; UPD ID= 1678, SNARK:<6.MONITOR>STG.MAC.180,  19-Jan-83 11:38:40 by MCINTEE
;REINSTATE DECNET RESIDENT POOL FOR 6.1, FOR MCB DTE INIT.
;DELETE DECNET SWAPPABLE POOL FOR 6.1
; UPD ID= 1676, SNARK:<6.MONITOR>STG.MAC.179,  18-Jan-83 23:14:52 by CDUNN
;More TCO 6.1127 - Move SCS% pointers in PSB such that we can get a few
;more words.
; UPD ID= 1669, SNARK:<6.MONITOR>STG.MAC.178,  16-Jan-83 21:47:18 by GRANT
;TCO 6.1454 - LOADMODULE NTMAN for all DECnet
; UPD ID= 1652, SNARK:<6.MONITOR>STG.MAC.177,  14-Jan-83 08:01:53 by HALL
;TCO 6.1463 - Split PAGEM into three parts
;	Add PAGFIL and PAGUTL to LOADMODULE statement
;	Move data here from the old PAGEM and make it global
; UPD ID= 1642, SNARK:<6.MONITOR>STG.MAC.176,  12-Jan-83 08:06:03 by MCINTEE
;TCO 6.1453 - MAKE ALL THE DEFAULT FEATURE TESTS GLOBAL !!
; UPD ID= 1634, SNARK:<6.MONITOR>STG.MAC.175,  10-Jan-83 08:05:02 by GRANT
;TCO 6.1442 - assemble NSPLPB only on KS
; UPD ID= 1633, SNARK:<6.MONITOR>STG.MAC.174,   9-Jan-83 21:25:34 by CDUNN
;More TCO 6.1127 - Fix error in last edit. Increase to four words, allowing
;head and tail pointer for each queue.
; UPD ID= 1632, SNARK:<6.MONITOR>STG.MAC.173,   9-Jan-83 20:22:09 by CDUNN
;More TCO 6.1127 - Add words to PSB pointing to SCS% message and datagram lists
; UPD ID= 1621, SNARK:<6.MONITOR>STG.MAC.172,   6-Jan-83 15:12:50 by MCINTEE
;Add symbol SABTSZ - size of SAB indirect table pointed to by PSBSAB.
;And NSPSAB - offset of NSP's SAB pointer in that table
; UPD ID= 1617, SNARK:<6.MONITOR>STG.MAC.171,   4-Jan-83 17:27:27 by NICHOLS
;Change ratio of free space allocated/used to 3/3 for R6.1.
; UPD ID= 1607, SNARK:<6.MONITOR>STG.MAC.170,  30-Dec-82 11:11:11 by CDUNN
;More TCO 6.1127 - Split SCA into two modules, add support for second module,
;SCS% JSYS support in SCSJSY.MAC
; UPD ID= 1602, SNARK:<6.MONITOR>STG.MAC.169,  29-Dec-82 13:46:18 by DONAHUE
;TCO 6.1410 - Remove MTINDX
; UPD ID= 1579, SNARK:<6.MONITOR>STG.MAC.168,  27-Dec-82 12:28:13 by NICHOLS
;Fix feature tests so that UPDL grows under IFE FTNSPSRV, not vice versa
; UPD ID= 1575, SNARK:<6.MONITOR>STG.MAC.167,  27-Dec-82 08:52:17 by GRANT
;TCO 6.1427 - add NSSSLZ
; UPD ID= 1570, SNARK:<6.MONITOR>STG.MAC.166,  26-Dec-82 14:01:34 by NICHOLS
;Move KONDSP from NRCOD to RESCD, needed for access at interrupt level
; UPD ID= 1567, SNARK:<6.MONITOR>STG.MAC.165,  22-Dec-82 18:39:51 by NICHOLS
;When DECnet free space is moved out of section zero, allocate 3/4
;of resident free space quotas instead of 2/3
; UPD ID= 1565, SNARK:<6.MONITOR>STG.MAC.164,  22-Dec-82 14:05:54 by NICHOLS
;Fix some more feature tests
; UPD ID= 1562, SNARK:<6.MONITOR>STG.MAC.163,  21-Dec-82 22:44:32 by NICHOLS
;Put in defaults for CHFLG and CSFLG feature tests
; UPD ID= 1561, SNARK:<6.MONITOR>STG.MAC.162,  21-Dec-82 16:54:49 by NICHOLS
;Fix feature test around SEARCH D36PAR
; UPD ID= 1546, SNARK:<6.MONITOR>STG.MAC.161,  21-Dec-82 00:22:06 by NICHOLS
;Take DCOPNM definition out of IFN FTNSPSRV
; UPD ID= 1544, SNARK:<6.MONITOR>STG.MAC.160,  20-Dec-82 23:04:07 by NICHOLS
;Fix .DAP feature testing
; UPD ID= 1541, SNARK:<6.MONITOR>STG.MAC.158,  20-Dec-82 19:25:32 by NICHOLS
;Add FTNSPSRV to distinguish between release 6.0 and 6.1
;Add definitions for the CTERM host and server
;Add LV8CHK calls for DECnet-36 and CTERM
; UPD ID= 1526, SNARK:<6.MONITOR>STG.MAC.157,  10-Dec-82 12:58:58 by GRANT
;TCO 6.1411 - add LLNUM and LLIDS, remove GUDOBJ and LLHEAD
; UPD ID= 1507, SNARK:<6.MONITOR>STG.MAC.156,   1-Dec-82 22:30:05 by LEAPLINE
;More KLNI support. Remove FTKLNI and add KNIN conditional
; UPD ID= 1505, SNARK:<6.MONITOR>STG.MAC.155,   1-Dec-82 17:13:21 by LEAPLINE
;TCO 6.1.XXXX	Add KLNI support under FTKLNI conditional
; UPD ID= 1478, SNARK:<6.MONITOR>STG.MAC.154,  29-Nov-82 09:24:21 by GRANT
;TCO 6.1010 - Add CSTLOC, remove CSTS and SPCRES
; UPD ID= 1427, SNARK:<6.MONITOR>STG.MAC.153,   9-Nov-82 04:07:27 by WACHS
;TCO 6.1355 - Mods for KLIPA/MSCP
; UPD ID= 1424, SNARK:<6.MONITOR>STG.MAC.152,   8-Nov-82 10:22:02 by PAETZOLD
;More TCO 6.1334 - Forgot to remove the DIREC2 used for test purposes
; UPD ID= 1418, SNARK:<6.MONITOR>STG.MAC.151,   5-Nov-82 12:51:28 by MCINTEE
;Add PSBSAB to PSB for SCJSYS
; UPD ID= 1415, SNARK:<6.MONITOR>STG.MAC.150,   5-Nov-82 09:50:42 by MILLER
;TCO 6.1094. Define DDPFRK
; UPD ID= 1401, SNARK:<6.MONITOR>STG.MAC.149,   2-Nov-82 02:15:55 by CDUNN
;More TCO 6.1127 - Remove storage used by the old LCS driver (no longer
;referenced, see location MEMHI: in STG). Also fix CFS section definition
; UPD ID= 1383, SNARK:<6.MONITOR>STG.MAC.148,  26-Oct-82 19:26:08 by PAETZOLD
;TCO 6.1334 - Make LOADMODULE detect non unique module names.
;             Also delete pre release 5 edit history.
; UPD ID= 1380, SNARK:<6.MONITOR>STG.MAC.147,  25-Oct-82 14:56:15 by MILLER
;TCO 6.1094. Define CFS section
; UPD ID= 1362, SNARK:<6.MONITOR>STG.MAC.146,  20-Oct-82 16:28:31 by MURPHY
;TCO 5.1.1098 - Assemble copyright notice into RSCOD.
; UPD ID= 1361, SNARK:<6.MONITOR>STG.MAC.145,  20-Oct-82 16:14:06 by CDUNN
;More TCO 6.1127 - Correct the feature test that govern the compilation of the
;SCS% dummy entry point (.SCS).
; UPD ID= 1356, SNARK:<6.MONITOR>STG.MAC.144,  19-Oct-82 13:10:38 by CDUNN
;More TCO 6.1127 - Add LOADMODULE support to build a monitor which includes
;CFS, SCA, and the KLIPA port driver.
; UPD ID= 1313, SNARK:<6.MONITOR>STG.MAC.143,   9-Oct-82 10:32:07 by GRANT
;TCO 5.1089 - Make ULLCZQ a list of length NTTMCB
; UPD ID= 1265, SNARK:<6.MONITOR>STG.MAC.142,   1-Oct-82 08:45:09 by NEUSTAEDTER
;TCO 6.1294 - Add BUGRCV for BUG. recovery address
; UPD ID= 1239, SNARK:<6.MONITOR>STG.MAC.141,  24-Sep-82 12:33:29 by GRANT
;TCO 5.1.1068 - Increase NTCMAX from 5 to 10
; UPD ID= 1198, SNARK:<6.MONITOR>STG.MAC.140,  20-Sep-82 14:55:01 by MILLER
;TCO 6.1094. Add a word to the SDB for the alias name
; UPD ID= 1157, SNARK:<6.MONITOR>STG.MAC.139,   9-Sep-82 20:48:56 by LEACHE
;TCO 6.1247 Add CRYPT to LOADMODULE
;One more try
; UPD ID= 1128, SNARK:<6.MONITOR>STG.MAC.137,  31-Aug-82 22:48:59 by MILLER
;Add scheduler clock for CFS
; UPD ID= 1123, SNARK:<6.MONITOR>STG.MAC.136,  31-Aug-82 11:12:40 by LEACHE
;TCO 6.1244 - Change width of VK100 to 84
; UPD ID= 1096, SNARK:<6.MONITOR>STG.MAC.135,  19-Aug-82 13:35:09 by MCINTEE
;TCO 6.1030 - put DAPRST & DAPLGO under IFE NFT
; UPD ID= 1085, SNARK:<6.MONITOR>STG.MAC.134,  16-Aug-82 14:05:05 by GRANT
;TCO 6.1227 - Increase MAXBLK
; UPD ID= 1081, SNARK:<6.MONITOR>STG.MAC.133,  16-Aug-82 07:57:09 by GRANT
;TCO 6.1226 - define words in JFN block for asynchronous IO
; UPD ID= 1068, SNARK:<6.MONITOR>STG.MAC.132,   9-Aug-82 19:28:47 by CDUNN
;TCO 6.1221
;Move PSB storage to get more TRAPSK space. Move ENSKR to before the hardware
;locs and PIPDB to after the hardware locs. This get us another 32 (octal)
;words for TRAPSK.
; UPD ID= 1043, SNARK:<6.MONITOR>STG.MAC.131,   6-Aug-82 14:27:16 by PAETZOLD
;TCO 6.1217 - Add the DSKRVC word to the SYSTAT GETTAB table
; UPD ID= 1038, SNARK:<6.MONITOR>STG.MAC.130,   4-Aug-82 14:20:47 by WALLACE
;TCO 6.1104 - Place definition of CTSSBK under FTDYN instead of
;  FTCTS since Known Library List is in CTS State Block
; UPD ID= 1017, SNARK:<6.MONITOR>STG.MAC.129,  30-Jul-82 04:51:58 by WACHS
;TCO 6.1198  Mods for CI support
; UPD ID= 1004, SNARK:<6.MONITOR>STG.MAC.128,  27-Jul-82 10:33:31 by MCINTEE
;Add stub routines - DAPLGO & DAPRST - under IFE NFT
; UPD ID= 1002, SNARK:<6.MONITOR>STG.MAC.127,  26-Jul-82 00:18:16 by CDUNN
;Put .SCS dummpy entry for SCS% JSYS under conditional, such that it only
;compiles when the SCS% code is not present.
; UPD ID= 1000, SNARK:<6.MONITOR>STG.MAC.126,  21-Jul-82 09:16:46 by WALLACE
;TCO 6.1104 and  6.1105 - Place TTYNAM table under FTCTS conditional
;  Conditionalize LOADMODULE of CTSMON
;  Add dummy routine for DYNLB% and CTSOP% for the case when DYNFLG
;    and/or CTSFLG are turned off
; UPD ID= 989, SNARK:<6.MONITOR>STG.MAC.124,  16-Jul-82 13:07:23 by CDUNN
;Add dummy entry point for SCS% JSYS...
; UPD ID= 988, SNARK:<6.MONITOR>STG.MAC.122,  16-Jul-82 08:09:44 by MCINTEE
;Add stub routine to define .DAP (for DAP% JSYS)
; UPD ID= 982, SNARK:<6.MONITOR>STG.MAC.121,  13-Jul-82 09:49:44 by CHALL
;Add stub routine to define .NSP (for NSP% JSYS) under IFE NFT
; UPD ID= 981, SNARK:<6.MONITOR>STG.MAC.120,   7-Jul-82 16:47:02 by COBB
;TCO 6.1183 - Add DEFAULT-EXEC: to system logical names
; UPD ID= 941, SNARK:<6.MONITOR>STG.MAC.119,  16-Jun-82 19:41:20 by MILLER
;TCO 6.1094  Add first part of CFS code
; UPD ID= 940, SNARK:<6.MONITOR>STG.MAC.118,  16-Jun-82 17:57:46 by HALL
;TCO 6.1156 - Recognize failure return from STEXBK
; UPD ID= 936, SNARK:<6.MONITOR>STG.MAC.117,  15-Jun-82 06:46:25 by HALL
;TCO 6.1156 - Load T1 before calling EXECBK
; UPD ID= 930, SNARK:<6.MONITOR>STG.MAC.116,  14-Jun-82 15:55:43 by HALL
;TCO 6.1156 - Support exec mode address break
;	Change EXECBK to be in RSDAT so that system startup doesn't zero it.
;	Call STEXBK if EXECBK is non-zero after PGRINI is called.
; UPD ID= 919, SNARK:<6.MONITOR>STG.MAC.115,  10-Jun-82 11:01:55 by HALL
;TCO 6.1000 - Support the 2080
;	More on address break. Allocate room for break address on KL, too
; UPD ID= 909, SNARK:<6.MONITOR>STG.MAC.114,   9-Jun-82 23:38:32 by MURPHY
;TCO 6.1147 - Move bugdefs from BUGS.MAC to here and put them in-line.
; UPD ID= 888, SNARK:<6.MONITOR>STG.MAC.113,   9-Jun-82 18:26:37 by MURPHY
;TCO 6.1160 - Account idle time correctly in SCHED.
; UPD ID= 879, SNARK:<6.MONITOR>STG.MAC.112,   9-Jun-82 14:36:49 by HALL
;TCO 6.1000 - Support the 2080
;	Add block for doing WRCTX on address break
;	Add some cells to the PSB for address break
; UPD ID= 830, SNARK:<6.MONITOR>STG.MAC.111,   4-Jun-82 13:32:15 by HALL
;Add words for address break
; UPD ID= 795, SNARK:<6.MONITOR>STG.MAC.110,  27-May-82 08:35:25 by WALLACE
;TCO 6.1105 - Add Canonical Terminal Support
;  Add support for CTS Section: Define the section number CTSSEC and reserve
;    a page for the page table, CTSIDX.
;  Add Terminal Type to Name Table (TTYNAM)
;  Add CTSSBK to PSB Variables
;  Add LOADMODULE for CTSMON
; UPD ID= 399, SNARK:<6.MONITOR>STG.MAC.64,  13-Feb-82 15:21:31 by HALL
;TCO 6.1000 - Change name to TTYSRC for KC
; UPD ID= 397, SNARK:<6.MONITOR>STG.MAC.63,  12-Feb-82 15:51:35 by GRANT
;TCO 5.1729 - Don't load NSPINT anymore
; UPD ID= 395, SNARK:<6.MONITOR>STG.MAC.62,  11-Feb-82 13:24:53 by HALL
;TCO 6.1000 - Temporarily load TTYSRV unconditionally for the KC
; UPD ID= 793, SNARK:<6.MONITOR>STG.MAC.109,  27-May-82 07:24:30 by HALL
;TCO 6.1000 - Support the 2080
;	Remove TRAPSW since page fault data is on the stack now
;	Make STARTF be in RSDAT, defaulting to zero.
;	Make startup declare AC blocks
; UPD ID= 768, SNARK:<6.MONITOR>STG.MAC.108,  19-May-82 14:41:48 by HALL
;TCO 6.1000 - Move RLODPC out of here and to APRSRV
; UPD ID= 739, SNARK:<6.MONITOR>STG.MAC.107,  13-May-82 00:10:53 by CDUNN
;TCO 6.1127 - Increase the length of FPTABL to allow for sections up to 37
;for dynmaic section creation. All code under IFN <FTCI!FTKLIPA> conditional
; UPD ID= 731, SNARK:<6.MONITOR>STG.MAC.106,  11-May-82 16:55:45 by CDUNN
;TCO 6.1127 - Fix LOADMODULEs to load the right things under the new feature
;tests
; UPD ID= 730, SNARK:<6.MONITOR>STG.MAC.105,  11-May-82 15:04:10 by CDUNN
;TCO 6.1127 - Remove FTKLIPA from around HSC disk information since some code
;not under FTKLIPA references these.
; UPD ID= 728, SNARK:<6.MONITOR>STG.MAC.104,  11-May-82 05:11:19 by CDUNN
;TCO 6.1127 - More support still for SCA and KLIPA and CI
; UPD ID= 721, SNARK:<6.MONITOR>STG.MAC.103,  11-May-82 04:04:46 by CDUNN
;More TCO 6.1127 - More PHYxxx support
; UPD ID= 717, SNARK:<6.MONITOR>STG.MAC.102,  11-May-82 02:11:34 by CDUNN
;TCO 6.1127 - Add HSC type disk infomation under <FTCI!FTKLIPA>.
; UPD ID= 709, SNARK:<6.MONITOR>STG.MAC.101,   9-May-82 13:37:07 by HALL
;TCO 6.1000 - Support the 2080
;	At SYSRST set full word of flags for crashed process
;	Initialize new flags word for RLODPC to include AC block
; UPD ID= 708, SNARK:<6.MONITOR>STG.MAC.100,   9-May-82 13:28:32 by CDUNN
;TCO 6.1077 - Add extended memory allocator code...
; UPD ID= 694, SNARK:<6.MONITOR>STG.MAC.99,   5-May-82 11:33:38 by MURPHY
;TCO 6.1123 - J0RLDF
; UPD ID= 680, SNARK:<6.MONITOR>STG.MAC.98,   3-May-82 15:45:30 by MCINTEE
;TCO 6.1030 - add JSBDAP to JSB; put dummy LNWAI & DAPHND under IFE NFT
; UPD ID= 677, SNARK:<6.MONITOR>STG.MAC.97,   3-May-82 11:47:54 by MURPHY
;TCO 6.1122 - FKSTA2
; UPD ID= 664, SNARK:<6.MONITOR>STG.MAC.96,  27-Apr-82 16:50:59 by MURPHY
;TCO 6.1106 - TTWAKN
; UPD ID= 642, SNARK:<6.MONITOR>STG.MAC.95,  14-Apr-82 14:20:04 by CDUNN
;TCO 6.1093 - Add FTKLIPA to support the KLIPA driver.
; UPD ID= 632, SNARK:<6.MONITOR>STG.MAC.94,  12-Apr-82 15:23:07 by MILLER
; UPD ID= 625, SNARK:<6.MONITOR>STG.MAC.93,  11-Apr-82 16:55:07 by MILLER
;TCO 6.1066. DEFINE TAD11 FOR KL OR KC
; UPD ID= 615, SNARK:<6.MONITOR>STG.MAC.90,   9-Apr-82 10:10:12 by MURPHY
;Get rid of conditional around loadmodule ttysrv
; UPD ID= 614, SNARK:<6.MONITOR>STG.MAC.89,   9-Apr-82 09:47:10 by CHALL
;TCO 6.1087 TTYPE0- TTYPE1- Add VT102 support
; UPD ID= 606, SNARK:<6.MONITOR>STG.MAC.88,   7-Apr-82 16:25:17 by HALL
;TCO 6.1000 - SUPPORT THE 2080
;  ADD DEFINITION OF MSSPTB (SUPER SECTION TABLE IN EPT) AND USSPTB (SUPER
;    SECTION TABLE IN UPT)
;  Get rid of some obsolete definitions of EPT offsets
; UPD ID= 593, SNARK:<6.MONITOR>STG.MAC.87,   5-Apr-82 14:06:59 by MILLER
;More TCO 6.1066. Add more storage for RSP
; UPD ID= 583, SNARK:<6.MONITOR>STG.MAC.86,   2-Apr-82 18:08:42 by MURPHY
;More 6.1074
; UPD ID= 563, SNARK:<6.MONITOR>STG.MAC.85,  31-Mar-82 15:42:05 by CDUNN
;TCO 6.1078 - Add CI emulator support code under FTCI... Also include
;default setting for FTCI to be off...
; UPD ID= 558, SNARK:<6.MONITOR>STG.MAC.84,  24-Mar-82 17:04:51 by MURPHY
;TCO 6.1074 - Revise build procedures.
; UPD ID= 534, SNARK:<6.MONITOR>STG.MAC.83,  19-Mar-82 15:22:31 by MILLER
; UPD ID= 513, SNARK:<6.MONITOR>STG.MAC.82,  16-Mar-82 20:20:43 by PAETZOLD
;TCO 5.1756 - Increase NHOSTS.  Grumble.  Grumble.
; UPD ID= 507, SNARK:<6.MONITOR>STG.MAC.81,  16-Mar-82 08:08:43 by MILLER
; UPD ID= 500, SNARK:<6.MONITOR>STG.MAC.80,  15-Mar-82 16:55:33 by MILLER
;TCO 6.1066 some more
; UPD ID= 497, SNARK:<6.MONITOR>STG.MAC.79,  15-Mar-82 14:39:58 by MILLER
;TCO 6.1066. ADD INTCLR
; UPD ID= 493, SNARK:<6.MONITOR>STG.MAC.78,  15-Mar-82 13:29:31 by MILLER
; UPD ID= 490, SNARK:<6.MONITOR>STG.MAC.77,  15-Mar-82 09:57:24 by MILLER
; UPD ID= 487, SNARK:<6.MONITOR>STG.MAC.76,  15-Mar-82 09:40:51 by MILLER
; UPD ID= 473, SNARK:<6.MONITOR>STG.MAC.75,  13-Mar-82 10:31:34 by MILLER
;TCO 6.1066 SOME MORE
; UPD ID= 466, SNARK:<6.MONITOR>STG.MAC.74,  11-Mar-82 17:44:50 by MILLER
; UPD ID= 464, SNARK:<6.MONITOR>STG.MAC.73,  11-Mar-82 17:15:04 by MILLER
; UPD ID= 456, SNARK:<6.MONITOR>STG.MAC.72,  11-Mar-82 11:45:34 by MILLER
;More TCO 6.1066. Add line scanning code
; UPD ID= 453, SNARK:<6.MONITOR>STG.MAC.71,  11-Mar-82 08:24:50 by MILLER
;TCO 6.1066. ADD PI6 CODE FOR KC (TTY INTERRUPT CODE)
; UPD ID= 442, SNARK:<6.MONITOR>STG.MAC.70,   6-Mar-82 11:50:56 by HALL
;TCO 6.1000 - Support the 2080
;Change names of page fail offsets in UPT for the KC.
;Move definition of generic names under conditional
; UPD ID= 434, SNARK:<6.MONITOR>STG.MAC.69,   4-Mar-82 23:24:42 by PAETZOLD
;TCO 5.1745 - Increase size of DTESKP
; UPD ID= 418, SNARK:<6.MONITOR>STG.MAC.68,  22-Feb-82 11:03:06 by MCINTEE
;add dummy symbols & routines to turn off node name parsing when NFT=0
; UPD ID= 417, SNARK:<6.MONITOR>STG.MAC.67,  22-Feb-82 10:51:42 by MCINTEE
; UPD ID= 413, SNARK:<6.MONITOR>STG.MAC.66,  21-Feb-82 14:08:23 by HALL
;TCO 6.1000 - Support the 2080
;Add dummy routines as end of module as temporary means of linking KC monitor
;Put call to LPTCHK under LPTN conditional
; UPD ID= 407, SNARK:<6.MONITOR>STG.MAC.65,  16-Feb-82 11:21:37 by HALL
;TCO 6.1000 - Change name for TTYSRV again. Must be unique in 5 characters.
; UPD ID= 399, SNARK:<6.MONITOR>STG.MAC.64,  13-Feb-82 15:21:31 by HALL
;TCO 6.1000 - Change name to TTYSRC for KC
; UPD ID= 397, SNARK:<6.MONITOR>STG.MAC.63,  12-Feb-82 15:51:35 by GRANT
;TCO 5.1729 - Don't load NSPINT anymore
; UPD ID= 395, SNARK:<6.MONITOR>STG.MAC.62,  11-Feb-82 13:24:53 by HALL
;TCO 6.1000 - Temporarily load TTYSRV unconditionally for the KC
; UPD ID= 382, SNARK:<6.MONITOR>STG.MAC.61,   5-Feb-82 09:43:27 by HALL
;TCO 6.1000 - Support the 2080
;	Remove some EXT's that aren't used any more
;	Remove model A and KS support.
;	  Initialize all extended addressing  flags to be on
;	  Don't reserve space in section 0 for directories, index table,
;	    bit table, or DST
;	  Remove code at SYSGO1 that checks for extended machine
;	Set PCDPN to 0 by default (no card punch)
;	No ARPA buffers for the KC
; UPD ID= 377, SNARK:<6.MONITOR>STG.MAC.59,   3-Feb-82 07:12:39 by HALL
;TCO 6.1000 - Support the 2080
;	Removed a bunch of SMFLG's, added some KCFLG's
; UPD ID= 344, SNARK:<6.MONITOR>STG.MAC.58,  24-Jan-82 14:19:35 by MURPHY
;TCO 5.1697 - XSSEV%, etc.  Add PATLEV, DMSLEV.
; UPD ID= 342, SNARK:<6.MONITOR>STG.MAC.57,  23-Jan-82 12:10:41 by PAETZOLD
;TCO 5.1699 - Add VT125 and VK100 support to the monitor
; UPD ID= 340, SNARK:<6.MONITOR>STG.MAC.56,  22-Jan-82 12:12:15 by WALLACE
;TCO 5.1558 - Correct computation that tests whether location of PSB
;  variables and location of UDPL conflict
; UPD ID= 336, SNARK:<6.MONITOR>STG.MAC.55,  21-Jan-82 13:40:48 by HALL
;TCO 6.1000 - Support the 2080
;	Add UPT offset definitions
; UPD ID= 333, SNARK:<6.MONITOR>STG.MAC.54,  20-Jan-82 20:08:16 by PAETZOLD
;TCO 5.1684 - Make OFNLEN resident
;More of the PI fixes. Work on BUGCHK code for PISC5 & PISC6 (Miller)
; UPD ID= 285, SNARK:<6.MONITOR>STG.MAC.52,   8-Jan-82 15:26:55 by MILLER
;More fixing for non-vectored ints.
; UPD ID= 283, SNARK:<6.MONITOR>STG.MAC.51,   8-Jan-82 13:58:56 by TORREY
;TCO 5.1659 - INCREASE SNOOP PAGES FROM 8 TO ^D12
; UPD ID= 279, SNARK:<6.MONITOR>STG.MAC.50,   6-Jan-82 10:49:23 by MILLER
;TCO 6.1054. ADD .GOATJ FUNCTION OF ACJ
; UPD ID= 263, SNARK:<6.MONITOR>STG.MAC.49,  18-Dec-81 14:28:45 by PAETZOLD
;TCO 6.1048 - force NFT off if DCN is off
; UPD ID= 258, SNARK:<6.MONITOR>STG.MAC.48,  16-Dec-81 00:28:45 by PAETZOLD
;More TCO 6.1010 - fix up early CST references
; UPD ID= 249, SNARK:<6.MONITOR>STG.MAC.47,  13-Dec-81 10:54:41 by GRANT
;TCO 5.1636 - add SEGSZ
; UPD ID= 242, SNARK:<6.MONITOR>STG.MAC.46,   9-Dec-81 18:32:59 by SOUTH
;TCO 6.1046 - Add block of variables for dte timer test.
; UPD ID= 230, SNARK:<6.MONITOR>STG.MAC.45,   3-Dec-81 11:57:43 by GRANT
;More or previous edit - fix the second table
; UPD ID= 228, SNARK:<6.MONITOR>STG.MAC.44,   3-Dec-81 10:43:16 by GRANT
;TCO 5.1624 - Increase reserved TTY types from 4 to 20
; UPD ID= 222, SNARK:<6.MONITOR>STG.MAC.43,  30-Nov-81 08:43:47 by PAETZOLD
;TCO 6.1010 - Add CSTS, Remove CST0, CST1, CST2, CST3, change SRPLQ,
; SPMQ, SWPLST, and DRPLQ
; UPD ID= 200, SNARK:<6.MONITOR>STG.MAC.42,  10-Nov-81 10:20:26 by HALL
;TCO 6.1037 - Add PSB location to hold address of user's block for
;pushdown list overflow trapping
; UPD ID= 194, SNARK:<6.MONITOR>STG.MAC.41,   7-Nov-81 13:22:03 by PAETZOLD
;TCP 5.1610 - Force NTTMCB off if DCN is off
; UPD ID= 101, SNARK:<6.MONITOR>STG.MAC.40,  13-Oct-81 10:56:53 by MURPHY
;TCO 5.1570 - Fix bug in utilization computation.
; UPD ID= 92, SNARK:<6.MONITOR>STG.MAC.39,   5-Oct-81 11:36:45 by MURPHY
;NFT DEVICE
; UPD ID= 88, SNARK:<6.MONITOR>STG.MAC.38,   4-Oct-81 23:51:27 by PAETZOLD
;TCO 5.1554 - ADD CODE TO TRACE DOWN SPTLKB PROBLEMS UNDER CONTROL OF SPTDSW
; UPD ID= 85, SNARK:<6.MONITOR>STG.MAC.37,   2-Oct-81 13:34:23 by MURPHY
;REFINE PREVIOUS
; UPD ID= 81, SNARK:<6.MONITOR>STG.MAC.36,  22-Sep-81 17:29:21 by MURPHY
;TCO 5.1514 - INCREASE AMOUNT OF RES FREE MAINTAINED BY JOB 0
; UPD ID= 79, SNARK:<6.MONITOR>STG.MAC.35,  17-Sep-81 09:39:05 by GRANT
;Needed for TCO 5.1490 - Add LLSRVQ, LSTLLS, AKLSTL, AND ACKLST
; UPD ID= 75, SNARK:<6.MONITOR>STG.MAC.34,  16-Sep-81 10:23:03 by PAETZOLD
;TCO 4.1.1051 - INCLUDE USGMUP
; UPD ID= 66, SNARK:<6.MONITOR>STG.MAC.33,  14-Sep-81 11:13:14 by PAETZOLD
;TCO 6.1010 - Move CSTS to CSTSEC - Create CSTX tables
; UPD ID= 64, SNARK:<6.MONITOR>STG.MAC.32,  11-Sep-81 09:38:32 by PAETZOLD
;TCO 5.1458 - Change names of FLIN/FLOUT to MFLIN/MFLOUT
; UPD ID= 62, SNARK:<6.MONITOR>STG.MAC.31,   9-Sep-81 10:11:27 by PAETZOLD
;TCO 5.1494 - Increase size of TRAPSK
; UPD ID= 58, SNARK:<6.MONITOR>STG.MAC.30,  30-Aug-81 20:09:28 by PAETZOLD
;More of TCO 5.1461
; UPD ID= 57, SNARK:<6.MONITOR>STG.MAC.29,  28-Aug-81 18:52:01 by PAETZOLD
;TCO 5.1461 - Add MMAPWD
; UPD ID= 56, SNARK:<6.MONITOR>STG.MAC.28,  27-Aug-81 20:17:09 by PAETZOLD
;change TCO 5.1010X to TCO 5.1473
; UPD ID= 54, SNARK:<6.MONITOR>STG.MAC.27,  23-Aug-81 13:32:05 by PAETZOLD
;TCO 5.1010X - ADD NCPLPC
; UPD ID= 47, SNARK:<6.MONITOR>STG.MAC.26,   8-Aug-81 15:07:53 by PAETZOLD
;More TCO 5.1380 - Increase size of BUGPLN
; UPD ID= 44, SNARK:<6.MONITOR>STG.MAC.25,   5-Aug-81 12:21:27 by MURPHY
;TCO 5.1428 - HPSWRN
; UPD ID= 41, SNARK:<6.MONITOR>STG.MAC.24,  24-Jul-81 05:24:54 by PAETZOLD
;TCO 5.1382 - Create dummy BLKASG if no decnet so sysdpy works
; UPD ID= 39, SNARK:<6.MONITOR>STG.MAC.23,  23-Jul-81 11:22:45 by PAETZOLD
;More TCO 5.1380 - Remove uneeded data items for syserr (eg sebbfr)
; UPD ID= 38, SNARK:<6.MONITOR>STG.MAC.22,  23-Jul-81 11:14:21 by PAETZOLD
;More of TCO 5.1333 - yet another bad pointer
;Remove TCO 5.1302 as it is no longer needed
; UPD ID= 37, SNARK:<6.MONITOR>STG.MAC.21,  20-Jul-81 15:15:49 by MURPHY
;FRKNOP, LSTIPC, SCOUNT
; UPD ID= 28, SNARK:<6.MONITOR>STG.MAC.20,  15-Jul-81 11:55:47 by MURPHY
;FLUSH SCDRQ
; UPD ID= 21, SNARK:<6.MONITOR>STG.MAC.19,  13-Jul-81 14:46:07 by GRANT
;Make LSTTMR resident - now used in NSPTST
; UPD ID= 18, SNARK:<6.MONITOR>STG.MAC.18,  13-Jul-81 12:04:01 by GRANT
;More of previous edit
; UPD ID= 3, SNARK:<6.MONITOR>STG.MAC.17,   9-Jul-81 17:56:04 by GRANT
;Increase resident free space for DECnet
; UPD ID= 2275, SNARK:<6.MONITOR>STG.MAC.16,  30-Jun-81 11:59:36 by GRANT
;Make LSTINT resident - now used in NSPTST
; UPD ID= 2208, SNARK:<6.MONITOR>STG.MAC.15,  17-Jun-81 15:33:59 by PAETZOLD
;Add comment to previous edit
; UPD ID= 2207, SNARK:<6.MONITOR>STG.MAC.14,  17-Jun-81 15:30:54 by PAETZOLD
;TCO 5.1333 Add OWGBPV table and code to blt it into EPT
; UPD ID= 2174, SNARK:<6.MONITOR>STG.MAC.13,  11-Jun-81 10:26:17 by MILLER
;TCO 6.1021. ADD TLAB14
; UPD ID= 2137, SNARK:<6.MONITOR>STG.MAC.12,   7-Jun-81 21:46:51 by GRANT
;ADD LSTTMR
; UPD ID= 2109, SNARK:<6.MONITOR>STG.MAC.11,  29-May-81 16:23:54 by MURPHY
; UPD ID= 2088, SNARK:<6.MONITOR>STG.MAC.10,  27-May-81 13:49:29 by GRANT
;NSSNTQ, INNSPT, INNSPI, NSINAC, LSTINT, NODSTZ
; UPD ID= 1961, SNARK:<6.MONITOR>STG.MAC.9,   7-May-81 14:55:38 by OSMAN
;increase DGOFKN from 5 to 6
; UPD ID= 1784, SNARK:<6.MONITOR>STG.MAC.8,   5-Apr-81 13:33:43 by GRANT
;MAKE SOME NSP COUNTERS RESIDENT
; UPD ID= 1777, SNARK:<6.MONITOR>STG.MAC.7,  27-Mar-81 14:51:40 by GRANT
;TCO 5.1277 - conditionalize the linking of PHYM2
; UPD ID= 1734, SNARK:<6.MONITOR>STG.MAC.6,  19-Mar-81 08:44:41 by WACHS
;DIAGWT
; UPD ID= 1716, SNARK:<6.MONITOR>STG.MAC.5,  16-Mar-81 15:14:00 by MURPHY
;NDTEMQ
; UPD ID= 1706, SNARK:<6.MONITOR>STG.MAC.4,  16-Mar-81 11:44:52 by LYONS
; FIX UNVECTORED PI 5 AND 6 CODE
; UPD ID= 1618, SNARK:<6.MONITOR>STG.MAC.3,  28-Feb-81 11:39:16 by HALL
;TCO 6.1000 - implement the 2080
;	Remove XWD and XPCW blocks for interrupt code
;	change IFE SMFLG's to IFN KLFLG or IFN KLFLG!KCFLG
; UPD ID= 1600, SNARK:<6.MONITOR>STG.MAC.2,  27-Feb-81 07:21:52 by WACHS
;TCO 6.1002 Add DUALCT, used in disk dual-port code
; UPD ID= 1529, SNARK:<5.MONITOR>STG.MAC.83,   6-Feb-81 17:11:10 by MURPHY
;SPTO2
; UPD ID= 1525, SNARK:<5.MONITOR>STG.MAC.82,   6-Feb-81 12:47:04 by ZIMA
;TCO 5.1258 - remove IO dump buffers to recover unused address space.
; UPD ID= 1515, SNARK:<5.MONITOR>STG.MAC.81,   4-Feb-81 10:29:28 by GRANT
;INCREASE BIGNOD TO SUPPORT THE ENGINEERING NETWORK
; UPD ID= 1510, SNARK:<5.MONITOR>STG.MAC.80,   2-Feb-81 15:25:55 by GRANT
;Make NSBYTS and NSMSGS tables resident
; UPD ID= 1499, SNARK:<5.MONITOR>STG.MAC.79,  26-Jan-81 16:51:08 by ENGEL
;GET RID OF SOME OF THE LCS STUFF
; UPD ID= 1459, SNARK:<5.MONITOR>STG.MAC.78,  20-Jan-81 17:36:29 by MURPHY
;TQLNQ
; UPD ID= 1409, SNARK:<5.MONITOR>STG.MAC.77,   6-Jan-81 15:02:55 by MURPHY
;MAKE CERTAIN NSP VARIABLES RESIDENT
; UPD ID= 1365, SNARK:<5.MONITOR>STG.MAC.76,  18-Dec-80 10:17:09 by WACHS
; UPD ID= 1346, SNARK:<5.MONITOR>STG.MAC.75,  12-Dec-80 09:49:10 by GRANT
;TCO 5.1213 - Increase swappable free space allocation for DECnet
; UPD ID= 1343, SNARK:<5.MONITOR>STG.MAC.74,  12-Dec-80 09:05:10 by GRANT
;Add DTEEND for resident free space debugging
;TCO 5.1206 change parameters for rp07, load PHYM78
; UPD ID= 1331, SNARK:<5.MONITOR>STG.MAC.73,   1-Dec-80 17:33:05 by LYONS
;Add a page for KS's to do skip i/o functions to
; UPD ID= 1314, SNARK:<5.MONITOR>STG.MAC.72,  25-Nov-80 16:31:45 by GRANT
;Add NSP Node Counter Tables
; UPD ID= 1287, SNARK:<5.MONITOR>STG.MAC.71,  18-Nov-80 14:40:19 by OSMAN
;tco 5.1189 - make entry vector two words
; UPD ID= 1275, SNARK:<5.MONITOR>STG.MAC.70,  14-Nov-80 17:54:52 by MURPHY
;LFORKX
; UPD ID= 1193, SNARK:<5.MONITOR>STG.MAC.69,  25-Oct-80 12:14:23 by HALL
;TCO 5.1180 -- Move DST to non-zero section
;	DEFINE DST CONDITIONALLY ON EXADF
;	DEFINE DSTLOC
; UPD ID= 1184, SNARK:<5.MONITOR>STG.MAC.68,  21-Oct-80 14:42:34 by ENGEL
;MOVE MCBDTE
; UPD ID= 1173, SNARK:<5.MONITOR>STG.MAC.67,  20-Oct-80 10:26:48 by ENGEL
;ADD LOADMODULE FOR CISRV AND LCSSRV UNTIL WE DECIDE WHAT NEEDS TO BE DONE
; UPD ID= 1134, SNARK:<5.MONITOR>STG.MAC.66,   6-Oct-80 15:49:47 by GRANT
;Add dummy entry point .NTMAN:: for non-DECnet assembly
; UPD ID= 1070, SNARK:<5.MONITOR>STG.MAC.65,  30-Sep-80 14:25:45 by GRANT
;TCO 5.1161 - Increase size of, and add symbol for, KMC's stack
; UPD ID= 1052, SNARK:<5.MONITOR>STG.MAC.64,  26-Sep-80 11:17:07 by GRANT
;Add NODMAP, BIGNOD, and NMAPLK - the node name mapping table, its size, and lock
; UPD ID= 1050, SNARK:<5.MONITOR>STG.MAC.63,  25-Sep-80 17:35:39 by ENGEL
;ADD NEWNOD
; UPD ID= 989, SNARK:<5.MONITOR>STG.MAC.62,   4-Sep-80 18:37:58 by ENGEL
;ADD TABSEC FOR DST,CST, ETC.
; UPD ID= 976, SNARK:<5.MONITOR>STG.MAC.61,  29-Aug-80 08:46:06 by ENGEL
;CHANGE LCSMEM TO BE SET BY KLPRE
; UPD ID= 970, SNARK:<5.MONITOR>STG.MAC.60,  25-Aug-80 16:30:28 by ENGEL
;TCO 5.1136 - ADD DEVLKK
; UPD ID= 952, SNARK:<5.MONITOR>STG.MAC.59,  22-Aug-80 15:54:16 by ENGEL
; UPD ID= 942, SNARK:<5.MONITOR>STG.MAC.57,  20-Aug-80 17:54:12 by MURPHY
;ULLCZQ
; UPD ID= 941, SNARK:<5.MONITOR>STG.MAC.56,  20-Aug-80 17:00:36 by ENGEL
;TCO #5.1136 - ADD THE NEW LOCK STUFF
; UPD ID= 923, SNARK:<5.MONITOR>STG.MAC.54,  20-Aug-80 09:51:18 by MURPHY
;REMOVE FILNSP
; UPD ID= 917, SNARK:<5.MONITOR>STG.MAC.53,  19-Aug-80 14:10:51 by MURPHY
;Change legal mode mask for DCN:, SRV:
; UPD ID= 908, SNARK:<5.MONITOR>STG.MAC.52,  18-Aug-80 21:01:35 by LYONS
;Increase the size of the host name table, as it can overflow
; UPD ID= 906, SNARK:<5.MONITOR>STG.MAC.51,  18-Aug-80 13:02:42 by LYONS
;More of TCO 5.1062, add alternate swap address to force verification
;of the monitor as it swaps out.
; UPD ID= 897, SNARK:<5.MONITOR>STG.MAC.50,  14-Aug-80 10:30:38 by LYONS
;TCO 5.1062  add ERRSWP as a flag for an error in swapping a critical page,
;and bughlt later, after the bat block is updated.
; UPD ID= 894, SNARK:<5.MONITOR>STG.MAC.49,  14-Aug-80 10:23:09 by MURPHY
;Move in EPT definitions from DTESRV FOR DTE20
; UPD ID= 889, SNARK:<5.MONITOR>STG.MAC.48,  13-Aug-80 18:10:51 by MURPHY
;FEDBSW
; UPD ID= 879, SNARK:<5.MONITOR>STG.MAC.47,  12-Aug-80 16:16:21 by MURPHY
;NPRIVP
; UPD ID= 848, SNARK:<5.MONITOR>STG.MAC.46,   7-Aug-80 10:22:36 by ENGEL
;increase bytbuf to 210
; UPD ID= 813, SNARK:<5.MONITOR>STG.MAC.44,  30-Jul-80 11:16:01 by MURPHY
;ADD WEFLAG, MOVE DBUGSW, DCHKSW, EDDTF TO RSDAT
; UPD ID= 806, SNARK:<5.MONITOR>STG.MAC.43,  29-Jul-80 09:46:36 by HALL
;MOVE FFF TO POSTLD
; UPD ID= 799, SNARK:<5.MONITOR>STG.MAC.42,  24-Jul-80 15:04:04 by HALL
;MOVE INITIALIZATION OF DATA IN RSVAR FROM SYSGO1. PUT DATA IN RSDAT
;AND INITIALIZE AT ASSEMBLY TIME
; UPD ID= 791, SNARK:<5.MONITOR>STG.MAC.41,  23-Jul-80 20:30:25 by MURPHY
;TNETRQ
; UPD ID= 783, SNARK:<5.MONITOR>STG.MAC.40,  23-Jul-80 11:32:45 by HALL
;CLEAN UP COMMENTS FROM WRITE-PROTECTING PROJECT
; UPD ID= 779, SNARK:<5.MONITOR>STG.MAC.39,  23-Jul-80 10:50:25 by OSMAN
;tco 5.1109 - Add PDVS
; UPD ID= 775, SNARK:<5.MONITOR>STG.MAC.38,  22-Jul-80 16:35:34 by HALL
;CHANGES TO RESIDENT FREE SPACE: MAKE POOL NUMBERS START WITH 1
; IN ORDER TO DETECT ZEROED POOL NUMBER IN FREE SPACE
; UPD ID= 752, SNARK:<5.MONITOR>STG.MAC.37,  11-Jul-80 15:56:42 by DBELL
;TCO 5.1102 - INCREASE BTBMAX SO SINGLE UNIT RP20 WORKS FOR MODEL A'S
; UPD ID= 711, SNARK:<5.MONITOR>STG.MAC.36,  30-Jun-80 09:48:30 by ENGEL
;MAKE .RENSP 2 AGAIN (DONE BECAUSE OF THE 2102 PANIC)
;TEMPORARY - MAKE RESBTB PAGE ALIGNED SO IT CAN BE WRITE-PROTECTED
; UPD ID= 701, SNARK:<5.MONITOR>STG.MAC.34,  26-Jun-80 09:33:05 by LYONS
;Cycle the ARPAnet after a power fail to be sure we have updated info
; UPD ID= 664, SNARK:<5.MONITOR>STG.MAC.33,  16-Jun-80 17:23:40 by KONEN
;TCO 5.1063 - REMOVE PS: AS NAME OF PRIMARY STRUCTURE
; UPD ID= 617, SNARK:<5.MONITOR>STG.MAC.31,   9-Jun-80 16:07:08 by HALL
;FIX THE FEFLG CHANGES -- MAKE BOTH KL AND KS VERSIONS BE IN RSVAR
; UPD ID= 615, SNARK:<5.MONITOR>STG.MAC.30,   7-Jun-80 18:45:00 by KONEN
; UPD ID= 608, SNARK:<5.MONITOR>STG.MAC.29,   5-Jun-80 15:57:35 by KONEN
;Put FEFLG into writable area for KS code in PROINI
; UPD ID= 607, SNARK:<5.MONITOR>STG.MAC.28,   5-Jun-80 13:36:36 by ENGEL
; UPD ID= 604, SNARK:<5.MONITOR>STG.MAC.26,   5-Jun-80 08:36:27 by ENGEL
; UPD ID= 599, SNARK:<5.MONITOR>STG.MAC.24,   4-Jun-80 14:14:39 by ENGEL
;ADD BLKTRN FOR THE MEMORY DRIVER BLOCK TRANSFER SERVICE
; UPD ID= 589, SNARK:<5.MONITOR>STG.MAC.23,   3-Jun-80 08:16:53 by ENGEL
;MAKE SKDPDL LONGER
; UPD ID= 583, SNARK:<5.MONITOR>STG.MAC.22,   2-Jun-80 10:41:23 by ENGEL
;MAKE .RESNP EQUAL TO 0 (HIGHEST LEVEL SCHEDULAR CONTEXT)
; UPD ID= 571, SNARK:<5.MONITOR>STG.MAC.21,  30-May-80 09:03:31 by GRANT
;Move KLILNO from RESCD to RSVAR - needed for write protecting the
;resident monitor
; UPD ID= 570, SNARK:<5.MONITOR>STG.MAC.20,  30-May-80 08:58:22 by ENGEL
; UPD ID= 566, SNARK:<5.MONITOR>STG.MAC.19,  28-May-80 20:26:58 by ENGEL
;MAKE MCBDTE RESIDENT
; UPD ID= 513, SNARK:<5.MONITOR>STG.MAC.18,  12-May-80 11:07:12 by ENGEL
;MOVE LCSSEC OUT OF SMFLG CONDITIONAL
; UPD ID= 512, SNARK:<5.MONITOR>STG.MAC.17,   9-May-80 12:47:00 by ENGEL
;CHANGE MMALRM
; UPD ID= 511, SNARK:<5.MONITOR>STG.MAC.16,   8-May-80 20:15:58 by ENGEL
;CHANGE MEMHI TO REFLECT THE MF10
; UPD ID= 500, SNARK:<5.MONITOR>STG.MAC.15,   1-May-80 15:00:57 by GRANT
;TCO 5.1031 - Add GUDOBJ
; UPD ID= 488, SNARK:<5.MONITOR>STG.MAC.14,  29-Apr-80 14:36:22 by LYONS
;Move more ARPANET cells into RSADT
; UPD ID= 453, SNARK:<5.MONITOR>STG.MAC.13,  21-Apr-80 18:27:26 by LYONS
;Move GETOK, ARAPNET cells into RSDAT from RSCOD
; UPD ID= 447, SNARK:<5.MONITOR>STG.MAC.12,  19-Apr-80 12:30:38 by KONEN
;Write enable PRELDF
; UPD ID= 446, SNARK:<5.MONITOR>STG.MAC.11,  18-Apr-80 09:17:28 by ENGEL
; UPD ID= 440, SNARK:<5.MONITOR>STG.MAC.10,  13-Apr-80 15:13:45 by OSMAN
;Add CTTAB; remove FKCTTY
; UPD ID= 423, SNARK:<5.MONITOR>STG.MAC.9,  11-Apr-80 13:51:40 by HALL
;CHANGES TO WRITE-PROTECT THE RESIDENT MONITOR:
;	INVOKE RSI MACRO FOR BUGXXX WORDS, FFF, SVDTRJ, DDT ENTRY VECTOR
;	REMOVE CODE IN STARTUP TO INITIALIZE THESE LOCATIONS
; UPD ID= 417, SNARK:<5.MONITOR>STG.MAC.8,  11-Apr-80 09:18:58 by ENGEL
;ADD OURNOD
; UPD ID= 410, SNARK:<5.MONITOR>STG.MAC.7,   4-Apr-80 11:03:13 by LYONS
;ADD ACJ ENTRIES FOR ARPANET ACCESS AND DECNET ACCESS
; UPD ID= 408, SNARK:<5.MONITOR>STG.MAC.6,   3-Apr-80 17:03:10 by HALL
;CHANGES TO WRITE-PROTECT THE RESIDENT MONITOR:
;	CREATE RESIDENT DATA FOR SECPOND PROTOCOL TYPEOUT (BUGMON, ETC.)
;	CHANGE DTE DEFINITIONS TO CREATE RESIDENT STORAGE IN RSVAR
;	MOVE TO RSVAR PSECT: CONOPG,SVDTRJ,DDT'S DATA VECTOR
;	DO AN EXTRA IORST IN STARTUP CODE
; UPD ID= 368, SNARK:<4.1.MONITOR>STG.MAC.318,  26-Mar-80 11:08:50 by DBELL
;TCO 4.1.1119 - REARRANGE DISK DEFINITIONS TO HANDLE RP20 DISKS
; UPD ID= 382, SNARK:<5.MONITOR>STG.MAC.5,  27-Mar-80 10:24:04 by ENGEL
;FIX MEMHI
; UPD ID= 373, SNARK:<5.MONITOR>STG.MAC.4,  26-Mar-80 13:04:09 by ENGEL
;CHANGE MAXSEC TO 6
; UPD ID= 372, SNARK:<5.MONITOR>STG.MAC.3,  26-Mar-80 13:01:05 by ENGEL
;ADD MEMLO AND MEMHI
; UPD ID= 349, SNARK:<4.1.MONITOR>STG.MAC.317,  24-Mar-80 16:58:47 by ENGEL
;MAKE LCSMEM 0
; UPD ID= 348, SNARK:<4.1.MONITOR>STG.MAC.316,  24-Mar-80 16:30:54 by ENGEL
;PUT MEMBOT AND FRIENDS IN RSCOD
; UPD ID= 347, SNARK:<4.1.MONITOR>STG.MAC.315,  22-Mar-80 07:00:33 by ENGEL
;ADD MEMTOP,MEMBOT AND LCSMEM
; UPD ID= 346, SNARK:<4.1.MONITOR>STG.MAC.314,  21-Mar-80 16:18:08 by ENGEL
;ADD LCSSEC . LCS MEMORY DRIVER HAS SECTION 12
;MAKE CTYLNO BE IN RESIDENT DATA INSTEAD OF CODE
;MOVE CONOPG, DO IORST AT SYSLOD
; UPD ID= 170, SNARK:<4.1.MONITOR>STG.MAC.312,  20-Dec-79 15:21:07 by ENGEL
;ADD ERROR MESSAGE IF NTTBL IS GREATER THAN NTTBL1
; UPD ID= 133, SNARK:<4.1.MONITOR>STG.MAC.311,  13-Dec-79 10:53:31 by OSMAN
;Fix spelling
; UPD ID= 104, SNARK:<4.1.MONITOR>STG.MAC.310,   6-Dec-79 13:38:21 by DBELL
;TCO 4.1.1018 FOR R.ACE - REMOVE FCTFIL
; UPD ID= 36, SNARK:<4.1.MONITOR>STG.MAC.309,  28-Nov-79 10:58:37 by MILLER
;TCO 4.2582. ADD FKTIMW
; UPD ID= 20, SNARK:<4.1.MONITOR>STG.MAC.308,  27-Nov-79 13:36:59 by MILLER
;ADD LSTPFK
;<4.1.MONITOR>STG.MAC.307, 21-Nov-79 09:05:35, EDIT BY DBELL
;TCO 4.2574 - ADD PI5CNT
;COPYRIGHT  (C)  DIGITAL  EQUIPMENT  CORPORATION  1976, 1985.
;ALL RIGHTS RESERVED.
;
;
;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.

DEFINE CPYRYT (FUNCT)<
	 FUNCT <
COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1985.
             ALL RIGHTS RESERVED.
>>

	SEARCH PROLOG,PHYPAR,SERCOD,SCAPAR
	IFN NETN,<SEARCH ANAUNV>
	TTITLE STG

	IFNDEF FTKLIPA,<FTKLIPA==:0> ;Default is no KLIPA driver
	IFNDEF FTMSCP,<FTMSCP==:0> ;Default is no MSCP
	IFNDEF FTSVMSCP,<FTSVMSCP==:CFSSCA> ;Default MSCP server iff CFS
	IFNDEF CSFLG,<CSFLG==:0> ;Default is no CTERM server
	IFNDEF CHFLG,<CHFLG==:0> ;Default is no CTERM host
	IFNDEF LAHFLG,<LAHFLG==:0> ;Default is no LAT Host
	IFNDEF FTD36MM,<FTD36MM==:1> ;Default is DECnet-36 uses its own memory
				     ; manager
IFE FTNSPSRV,SEARCH D36PAR	;Release 6.1 needs this universal

IFE LAHFLG,<	LATINI::RET
		.LATOP::MRETNG>

   REPEAT 0,<			;CFSCOD NO LONGER USED
   IFE CFSCOD,<CFSINI::RET>	;Dummy for missing CFS code
   >				;END REPEAT 0

IFE FTSVMSCP,<			;DUMMYS FOR NO MSCP SERVER
MSSINI::			;DON'T INIT
MSSCHK::			;DON'T CHECK
MSSONL::			;ONLINE IS A NOP
MSSOFL::			;AS IS OFFLINE
SRVCFS::RET			;AND CFS CO-ORDINATION

MSSRED::			;NO MSCP SERVER ERROR FOR TMON
MSSMRK::ITERR(MSCPX1)		; AND SMON
>

   IFN KCFLG,<
	EXTN <CNSCAN,RSPCHK>>


;PARAMETER-DEPENDENT STORAGE FOR ALL MODULES

EXT <PAGRST,PGRINI,TTINIT,SCDIN>
EXT <PI7P,PVINIT,PSINIT,SWPRST,SCKATM,SETEPT>

;MISCELANEOUS DEFINITIONS

DEFINE NDG (SYM,VAL)<
   IFNDEF SYM,<
	SYM==:VAL>>

DEFINE SHOW. (SYM)<
	....Z=SYM>
;section number definitions

NDG MSEC1,1			;section 1- code
NDG DRSECN,2			;section 2- directories
NDG IDXSEC,3			;section 3- index table
NDG BTSEC,4			;section 4- bit table
NDG SYMSEC,5			;Section 5 - Symbols, DDT, etc.
IFN FTNSPSRV <
MFSEC0==:6			;FIRST SECTION ASSIGNABLE
>
IFE FTNSPSRV <
NDG XCDSEC,6			;Section 6 - Extended code section
NDG PCDSEC,37			;Section 37 - Only user mode (POSTCD)

MFSEC0==:7			;First section assignable


  IFN EXTJSB,<
  NDG JOBSEC,7			;Section 7 -Extended JSB
  MFSEC0==:10			;First section assignable
  >

>
FFMSEC==:MFSEC0			;FIRST FREE SECTION

DEFINE MSECN (NAME)<
	NAME==:FFMSEC		;ASSIGN NAME TO NEXT FREE SECTION
	FFMSEC=FFMSEC+1
	SHOW. NAME>

MSECN TABSEC			;SECTION FOR TABLES - CST, etc.
   IFE FTNSPSRV,<
MSECN DNBSE1			;DECnet BUFFERS
   >;END IFE FTNSPSRV
   IFN CTSFLG,<
MSECN CTSSEC			;CTS Terminal Data Base
   >
MSECN CFSSEC			;Section for CFS buffers
MSECN INTSEC			;Section for ARPANET buffers
MSECN RESSEC			;Section for RSE, NRE, NRPE
MSECN SWFSEC			;Swappable free space section

   IFN KLFLG,<
NDG HGHSEC,37			;Highest possible section number
    >
	MSEC1B==:<MSEC1>B17	;DEFINE SECTION 1 PC FORMAT
;STORAGE ASSIGNMENT MACROS - USED IN STG ONLY

DEFINE S$BGN (MAC,NAM,SEC)<
  DEFINE MAC (SYM,SIZ)<
	SYM=:NAM'C
   IFB <SIZ>,<NAM'C=NAM'C+1>
   IFNB <SIZ>,<NAM'C=NAM'C+SIZ>
	SHOW. SYM>
	NAM=<SEC,,<NAM&777777>>
	NAM'C==NAM		;;COUNTER
	NAM'P==:NAM'C_-PGSFT
	SHOW. NAM>

DEFINE S$END (NAM)<
	NAM'Z=:NAM'C-1
	NAM'L==:NAM'Z._-PGSFT>

;NOW CREATE MACROS AND INITIAL VALUES FOR VARIOUS STORAGE AREAS.

	S$BGN PSV,PSVAR,0	;PER-PROCESS AREA
	S$BGN JSV,JSVAR,0	;PER-JOB AREA
	S$BGN NRP,NPVAR,0	;NON-RESIDENT PAGE
	S$BGN RSE,ERVAR,RESSEC	;EXTENDED RESIDENT
	S$BGN NRE,ENVAR,RESSEC	;EXTENDED NON-RESIDENT
	S$BGN NRPE,EPVAR,RESSEC	;EXTENDED NON-RESIDENT PAGE

	SWAPCD			;SOME SWAP CODE HERE BEFORE FIRST RESCD

	DRSMDA==:30		;MAX SIZE OF A DIR ON A MODEL A
NDG	PIBITS,0		;PI ACCOUNTING BITS FOR KL METER
				; NOT USED ON OTHER PROCESSORS
NDG	EXADF,1			;EXTENDED DIRECTORY FLAG ALWAYS ON IN R6
NDG	NTTD10,0		;NUMBER OF DC10 LINES
   IFG DTFLG,<NDLL==:5>		;IF A FE PRESENT, MUST HAVE 5 DLS

IFE FTNSPSRV,<			

	ND .FEFLG,1		;FE TERMINALS ON BY DEFAULT
	ND .PTFLG,1		;PTY'S ON BY DEFAULT
	ND .MCFLG,0		;NRT 
	ND .LHFLG,0		;LAT 
	ND .CHFLG,0		;CTERM
	ND .TVFLG,0		;TCP

   IFN NETN,<.TVFLG==1>		;INCLUDE TVT'S IF ARPANET 
   IFN LAHFLG,<.LHFLG==1>	;INCLUDE LAT TERMINALS IF LAT IS PRESENT
   IFN DCN,<.MCFLG==1>		;INCLUDE NRT TERMINALS
   IFN CHFLG,<			;INCLUDE CTERM TERMINALS IF CTERM PRESENT
      .CHFLG==1		
      IFE .MCFLG,<
	PRINTX ?Can't enable CTERM terminals without DECnet/NRT support
        .CHFLG==0
        CHFLG==0
      >
   >

>;END OF IFE FTNSPSRV

   IFE DTFLG,<NDLL==:0>		;IF NO FE PRESENT, NDLL=0
   IFE LAHFLG,<NTTLAH==:0>	;IF NO LAT, NTTLAH=0
   IFE DCN,<NTTMCB==:0		;IF NO DECNET NO DECNET NVTS
	    NTTCTH==:0		;NO CTERM TTYs EITHER
	    NTTCTS==:0
	    NFT==:0>		;AND NO NFT
	NTTFE==:NDHL+NDLL	;NUMBER OF FE LINES

IFN FTNSPSRV,<
   IFN KCFLG,<NTTRSP==:4
	      NTTRSO==-1>
   IFE KCFLG,<NTTRSP==:0
	      NTTRSO==0>
>;END IFN FTNSPSRV

NDG NTTCTH,0			;DEFAULT IS NO CTERM HOST LINES
NDG NTTCTS,0			;DEFAULT IS NO CTERM SERVER LINES

IFE FTNSPSRV,<
   IFE CHFLG,<NTTCTH==0>	;IF NO CTERM HOST, NO CTERM HOST LINES
   IFE CSFLG,<NTTCTS==0>	;IF NO CTERM SERVER, NO CTERM SERVER LINES
>;END IFE FTNSPSRV
IFN FTNSPSRV,<
   IFE CHFLG,<NTTCTH==0>	;IF NO CTERM HOST, NO CTERM HOST LINES
   IFE CSFLG,<NTTCTS==0>	;IF NO CTERM SERVER, NO CTERM SERVER LINES
>;END IFN FTNSPSRV

NDG NTTTVT,0			;DEFAULT NUMBER OF TCP NVT LINES
NDG NTTLAH,0			;DEFAULT NUMBER OF LAT HOST LINES

;NUMBER OF LINES, INCLUDING LINE 0 FOR THE CTY

   IFN FTNSPSRV,<
NDG NLINES,NTTFE+NTTMCB+NTTPTY+NTTD10+NTTTVT+NTTDZ+NTTRSP+NTTRSO+NTTCTH+NTTCTS+NTTLAH+1
   >;END IFN FTNSPSRV

   IFE FTNSPSRV,<
NDG NLINES,NTTFE+NTTMCB+NTTPTY+NTTTVT+NTTCTH+NTTCTS+NTTLAH+1
   >;END IFE FTNSPSRV

   IFG ACTLNS-NLINES,<ACTLNS==:NLINES> ;ADJUST VALUE AS APPROPRIATE

NDG	DLSN,NTTD10		;NUMBER OF DC LINES
NDG	NTTBL,1			;DEFAULT NUMBER BUFFERS PER LINE
NDG	NTTBL1,2		;# OF BUFFERS FOR "FAST" LINES
NDG 	NTTBF,ACTLNS*NTTBL1  	;NUMBER OF TTY BUFFERS
NDG	TTSIZ,40		;SIZE OF INDIVIDUAL TTY BUFFER (POWER OF 4)
NDG	TTBSIZ,200		;BIG BUFFER SIZE
NDG	DSKN,1			;DSK IS PRESENT (MANDATORY)
NDG	 RP10F,0		;DISK TYPE IS RP10
NDG	 RH10F,0		;RH10
NDG	 RH20F,1		;RH20
NDG	 RH11F,0		;RH11
NDG	  RP04F,1		;RP04
NDG	DRMN,0			;DRUM IS PRESENT
NDG	 RS04F,0		;DRUM TYPE IS RS04
NDG	 RC10F,0		;DRUM TYPE IS RC10
NDG	DTAN,0			;NUMBER OF dectape units
NDG	 TM02F,1		;TM02/TU16
IFN KLFLG,<
NDG	DX20AF,1		;DX20-A/TU70,71,72
NDG	DX20BF,1		;DX20-B/RP20
NDG	TM78F,1			;TM78/TU78
>
   IFN KCFLG,<
NDG	DX20AF,0		;DX20-A/TU70,71,72
NDG	DX20BF,0		;DX20-B/RP20
NDG	TM78F,0			;TM78/TU78
   >				;END OF IFN KCFLG


NDG	PCDPN,0			;CARD PUNCH IS ABSENT BY DEFAULT
NDG	PLTN,0			; PHYSICAL Plotter exists
NDG	PTPN,0			; Paper tape punch exists
NDG	PTRN,0			; Paper tape reader exists
NDG	VBCN,0			;VB10C PRESENT
NDG	 NRVCPG,0		;NUMBER OF PAGES TO RESERVE FOR VB10C
NDG	DLXN,0			;NUMBER OF UNITS ON DL10
NDG	CMAN,0			;NUMBER OF AYDIN DISPLAYS
NDG	KNIN,0			;NUMBER OF KLNI'S
NDG	FTNITEST,0		;NISRV tester module
IFE KNIN,<IPNIN==:0		;IF NO NI FORCE IPNIN TO ZERO
	  FTNITEST==:0>		;IF NO NI, NO NEED FOR NITEST
IFE FTKLIPA,<IPCIN==:0>		;IF NO KLIPA, NO CI TCP

   IFG DLXN,<
	NDG	DLIBFP,<<DLXN+3>/4>	;# OF INPUT BUFFER AND CONTROL PAGES
	NDG	DLOBFP,<<DLXN+3>/4>	;  "  OUTPUT	"
   >;IFG DLXN


	DMSMAX==:1050		;LEGAL DMS JSYS'S ARE 1000-1050
	PRAMAX==:200		;MAXIMUM SIZE OF PRARG BLOCK

	SYSDPT==:777740		;DIRECTORY PROTECTION OF SYSTEM AND SUBSYS
	SYSFPT==:777752		;FILE PROTECTION DEFAULT FOR SUBSYS AND  SYSTEM

	PSNUM==:0		;PUBLIC STR NUMBER
	USRLH==:500000		;LEFT HALF OF A 36 BIT USER NUMBER
	.DFACT==:^D220100	;DEFAULT ACCOUNT NUMBER
DEFINE LOADMODULE(A),<
	IRP A,<
	IF1 <IFDEF $'A,<PRINTX ?MODULE A NOT UNIQUE TO FIVE CHARACTERS>>
	EXTERNAL $'A>>

;FORCE THE LOADING OF THE CORRECT MODULES

LOADMODULE <LDINIT,SCHED,PAGEM,PAGUTL,FORK,MEXEC,GETSAV,SYSERR,COMND>
LOADMODULE <DEVICE,DIRECT,ENQ,FREE,FUTILI,GTJFN,IO,IPCF,JSYSA>
LOADMODULE <JSYSF,LOGNAM,LOOKUP,MSTR,SWPALC,DISC,FILMSC,MFLIN>
LOADMODULE <MFLOUT,DATIME,TIMER,CRYPT,EDDT,MDDT>

IFE FTNSPSRV,<LOADMODULE D36COM>

IFN <DYNFLG!CTSFLG>,<LOADMODULE CTSMON>
;IFN CFSCOD,<
LOADMODULE CFSSRV		;Load CFS code if desired
;>
IFN <FTKLIPA>,LOADMODULE <SCAMPI,SCSJSY> ;Load SCA and MSCP for any CI
IFN FTKLIPA,LOADMODULE <PHYKLP> ;For KLIPA load its driver
IFN FTMSCP,<LOADMODULE PHYMSC>	;Load MSCP is desired
IFN FTSVMSCP,LOADMODULE <PHYMVR> ;Load MSCP server if wanted
IFG KNIN,<LOADMODULE NIUSR	;NI JSYS
	  LOADMODULE NISRV>	;Load Ethernet driver
IFN DEBUG&FTNITEST,LOADMODULE NITEST	;NISRV test routines
IFN LAHFLG,<LOADMODULE LATSRV>	;LAT Host 

;CONDITIONALS TO LOAD PROPER REL FILE

IFNDEF PHYIOF,<	PHYIOF==:0>
   IFN DX20AF!DX20BF!RP04F!TM02F!TM78F,<	PHYIOF==:1>
IFG PHYIOF,<
		LOADMODULE PHYSIO
		LOADMODULE DIAG
		LOADMODULE POSTLD
		LOADMODULE DSKALC
>
		LOADMODULE FILINI
IFG RH20F,<	LOADMODULE PHYH2>
IFG RH11F,<	LOADMODULE PHYH11>
IFG RP04F,<	LOADMODULE PHYP4>
IFG DRMN,<
 IFE PHYIOF,<
  IFG RS04F,<	LOADMODULE RS04SV>
 >
 IFG PHYIOF&RS04F,<	LOADMODULE PHYS4>
 IFG RC10F,<	LOADMODULE RC10SV>>
IFG CMAN,<	LOADMODULE DSPLAY>

IFN FTNSPSRV,<
IFE NETN,<	LOADMODULE TTYSRV>
IFN NETN,<	IFE DCN,<LOADMODULE TTYSNV>
		IFN DCN,<LOADMODULE TTYSDN>>
>

IFE FTNSPSRV,<	LOADMODULE TTYSRV
 IFN .MCFLG,<	LOADMODULE NRTSRV>
 IFN .FEFLG,<	LOADMODULE RSXSRV>
>

IFN KCFLG,<	LOADMODULE KCCNSL>
IFG DTAN,<	LOADMODULE DECTAP>
IFG FEN,<	LOADMODULE FESRV>
IFG MTAN,<
	NDG MTDFDN,4		;DEFAULT MAGTAPE DENSITY (1600 BPI)
	MTDFRS==:PGSIZ*1	;DEFAULT RECORD SIZE IS 1000 WORDS
	MTDFDM==:1		;DEFAULT MAGTAPE DATA MODE IS CORE DUMP
	MTDFPA==:0		;DEFAULT MAGTAPE PARITY IS ODD
MTMXDN==:5			;MAXIMUM DENSITY IS 6250 BPI
	LOADMODULE MAGTAP
	LOADMODULE TAPE
	IFG DX20AF,<LOADMODULE PHYX2>
	IFG DX20BF,<LOADMODULE PHYP2>
	IFG TM78F,<LOADMODULE PHYM78>
	IFG TM02F,<LOADMODULE PHYM2>>
		LOADMODULE APRSRV
IFG DTEN,<	LOADMODULE DTESRV>

IFG DCN,<
  IFN FTNSPSRV,<LOADMODULE <NSPSRV,NTMAN>>
  IFE FTNSPSRV,<LOADMODULE <NTMAN,JNTMAN,SCJSYS,SCLINK>
		LOADMODULE <LLINKS,ROUTER,DNADLL,CIDLL>
    IFG KNIN,<	LOADMODULE LLMOP> ;~6.0
    IFG CHFLG,<	LOADMODULE CTHSRV>
    IFG CSFLG,<	LOADMODULE CTSSRV>
  >;END IFE FTNSPSRV
  IFN NFT,<	LOADMODULE FILNFT>
>;END IFG DCN
IFN ATS,<	LOADMODULE <FILATS,ATSSRV,NRMSRV>>
IFG KDPN,<	LOADMODULE KDPSRV>
;**;[7193]At LOADMODULE LINEPR replace 1 line with 3 lines  JYCW  Nov-12-85
IFN KLFLG,<
IFN LPTN,<	LOADMODULE LINEPR>	;[7193] LOAD LINEPR ONLY IF WE HAVE ONE
IFE LPTN,<	.LPINI::JRST UJSYS>>	;[7193] DEFINE .LPINI AS UNDEFINE JSYS

; * * * *
;NEED ONE FOR KC
;* * * *
IFG PCDPN,<	LOADMODULE CDPSRV>
IFG CDRN,<
IFN KLFLG,<	LOADMODULE CDRSRV>>
; * * *
;need one for KC
;  * * * *
IFG PLTN,<	LOADMODULE PLT>
IFG PTPN,<	LOADMODULE PTP>
IFG PTRN,<	LOADMODULE PTR>
IFG VBCN,<	LOADMODULE VBC>
IFG DLXN,<	LOADMODULE DLX>
IFN KLFLG,<
IFN NETN,<     	LOADMODULE IPIPIP
		LOADMODULE IPFREE
		LOADMODULE TCPTCP
		LOADMODULE TCPCRC
		LOADMODULE TCPJFN
		LOADMODULE TCPBBN
 		LOADMODULE MNETDV
		IFN ANXN,<LOADMODULE IMPANX
		          LOADMODULE IMPDV>
		IFN FTNSPSRV,<LOADMODULE TTANDV>
		IFE FTNSPSRV,<LOADMODULE TVTSRV>
IFN FTKLIPA,<IFN IPCIN,<LOADMODULE IPCIDV>> 
IFE FTNSPSRV,<IFN IPNIN,<LOADMODULE IPNIDV>> 
>> ; END OF IFN NETN AND IFN KLFLG
;Setup data in the BOOT communications region
	;These locations are in page 0
	LOC BUTCOD
	 BTCOD			;Store the magic code
	LOC BUTLEN	
	 BTLEN			;Store length of BOOT communications region
	LOC BUTFLG	
	 0			;Store flags
	LOC BUTLLM		
	 0			;Store lower load limit
	LOC BUTULM
	 1,,NRCODL		;Store upper load limit
				;This specifies the highest memory page that
				;BOOT will load .EXE data into

	RELOC			;Continue relocatable storage
;RESIDENT STORAGE WHICH MUST BE DEFINED ON A PAGE BOUNDARY.
;These are all defined first and must be a multiple of 512 words
;each.  Some are defined as RSI because the symbol table overlays
;the RSDAT psect until paging is initialized and turned on.

RSI KIEPT,,PGSIZ		;EXECUTIVE PAGE TABLE
	EP==:KIEPT/PGSIZ	;DEFINE PAGE NUMBER FOR FILDDT
RSI SKHWPT,,PGSIZ		;HW PAGE TABLE WHEN SCHED RUNNING
RSI MMAP,,PGSIZ			;MONITOR MAP
RSI SYMMAP,,PGSIZ		;MAP FOR SYMSEC (DDT, ETC.)

RS(ZROCOR,0)			;START OF STORAGE AREA TO CLEAR
   IFG DLXN,<
RS(DLBASE,PGSIZ*DLIBFP)		;RESIDENT PAGES FOR DL10
RS(DLOBUF,PGSIZ*DLOBFP)
   >;IFG DLXN

;RSE ASSIGNMENTS - PAGE-MULTIPLE ASSIGNMENTS FIRST

;Resident free space bit tables are on a page so that we can
;write-protect them except when the free space manager is using
;them. The second table, RESBTX, is on the same page as RESBTB

RSE(RESBTB,PGSIZ)		;RESIDENT FREE SPACE BITTABLE


;NRPRE ASSIGNMENTS - INTEGER NUMBERS OF PAGES ONLY

NRPE EMMAPS,<PGSIZ*<FFMSEC-MFSEC0>> ;WINDOWS TO PT'S OF MONITOR SECTIONS
RSECMP=:EMMAPS+<RESSEC-MFSEC0>*PGSIZ	;Map for extended storage section.
NRPE EPGMAP,PGSIZ		;Map for extended free memory

  IFE FTNSPSRV <
NRPE XCDMAP,PGSIZ		;Map for extended code section
  >

IFN KDPN,<RS(KMCPAG,KDPN*PGSIZ)>;A PAGE FOR EACH KDP(KMC11/DUP11)

   FTCTS <
RS (CTSIDX,PGSIZ)		;Page Mape for CTS Section
   >				;End of Conditional Assembly

;THE READ AFTER WRITE VERIFICATION CODE NEEDS A PLACE TO READ DATA TO CHECK
;ECC.  THE RH20 HAS HARDWARE TO USE LOCATION 0 FOR THIS, BUT THE RH11 NEEDS A
;PHYSICAL PAGE TO USE. THE RH20, WHEN WRITING TO LOCATION 0, WILL TRANSFER NO
;DATA, BUT REQUIRE THE MASBUSS TO MOVE THE BITS AND THE DISK WILL CHECK ECC.
;ON WRITES, DATA IS TAKEN FROM LOACTIONS 70-73 OF THE EPT (WHICH TOPS-20 KEEP
;AS 0).

SKPPAG==:0			;RH20 CAN DO IT TO PHYSICAL 0 AND GET IT RIGHT


;MEMORY MANAGEMENT DATA BASE

RSI FREMEM,0			;FREE MEMORY DURING STARTUP (SET BY POSTLD)
IFE FTNSPSRV <
RSI PNRCOD,0			;Address of NRCOD in POSTLD image (set by PLD)
>
RS CSTLOC,1			;PHYSICAL ADDRESS OF CST0
   IFN PHYIOF,<
RS CST5,MAXCOR			;CST5
   >				;END IFN PHYIOF
RS CST0X,20			;CST0 ACCESS TABLE
RS CST1X,20			;CST1 ACCESS TABLE
RS CST2X,20			;CST2 ACCESS TABLE
RS CST3X,20			;CST3 ACCESS TABLE

RS SPTO,NOFN			;OFN TABLE ONLY
RS SPTO2,NOFN			;MORE OFN DATA
RS SPTO4,NOFN			;OFN2XB DATA

;***	THESE NEXT 2 TABLES MUST REMAIN IN ORDER AND TOGETHER
;	SINCE THE CODE DEPENDS ON POINTING THE BACK POINTER OF THE FIRST OFN
;	IN EACH CHAIN TO THE TABLE HEADER THUS A POINTER > NOFN POINTS TO
;	A HASH TABLE ENTRY. NO POINTER SHOULD EXCEED NOFN+OFNHSD

NDG OFNHSD,^D199		;DEFAULT HASH SIZE NOFN*(.75/SIZE) = AV LATENCY
				;VALUE SHOULD BE PRIME

RS OFNHSE,NOFN			;POINTERS FOR OFN HASHING
RS OFNHST,OFNHSD		;HASH TABLE FOR OFNS ** FOLLOW OFNHSE

RSI OFNGCI,^D15*^D60*^D1000	;[7247] OFN garbage collection interval (15 min)
RS OFNTIM,1			;[7247] Time to do next OFN GC

RS SPTD,NOFN			;Preallocation held here
IFN SPTDSW,<			;ONLY IF TRACKING DOWN SPTDSW PROBLEMS
RS SPTO3,NOFN
 >				;END OF IFN SPTDSW
	;..
;Memory management data base, continued

RS SPT,SSPT			;SPECIAL/SHARED PAGES TABLE
RS SPTH,SSPT
RS TOTRC,1			;TOTAL NUMBER REAL CORE PAGES
RS NRPMIN,1			;MINIMUM VALUE OF NRPLQ
RS NRPLEV,1			;HIGHEST NORMAL LEVEL OF NRPLQ
RS GCMINP,1			;MIN PAGES NEEDED BY GC, = NRPMIN+NRPLEV
RS CGFLG,1			;DEASSIGNED PAGES MAY EXIST IF .G. 0
RS GCFOFC,1			;[7247] Number of cached OFN forced clears
RS GCFOFG,1			;[7247] Count of cached OFN garbage collections
RS GCFOFN,1			;[7247] Count of OFN garbage collections
RS NRPLQ,1			;NUMBER OF PAGES ON REPLACABLE QUEUE
RS SRPLQ,1			;POINTER TO SRPLQO
SRPLQO=:MAXCOR			;SWAP REPLACABLE QUEUE  TAIL,,HEAD
RS DRPLQ,1			;POINTER TO DRPLQO
DRPLQO=:MAXCOR+1		;DISK REPLACABLE QUEUE  TAIL,,HEAD

RS NSPMQ,1			;NUMBER OF PAGES ON SPECIAL MEM QUEUE
RS SPMQ,1			;POINTER TO SPMQO
SPMQO=:MAXCOR+2			;"SPECIAL" MEMORY QUEUE TAIL,,HEAD
RS SWPLST,1			;POINTER TO SWAPOUT LIST POINTER
SWPLSO==:MAXCOR+3		;SWAPOUT LIST POINTER OFFSET
RS SWPLSI,1			;IN POINTER TO SWAP LIST
RS SPMLCK,1			;LOCK ON PROCESS CONTEXT MANIPULATION OF SPMQ
RS SPMONR,1			;FORK WHICH OWNS SPMLCK
RS SPMTPG,1			;PAGE FOR SCHED TEST RTN
RS SPMTIM,1			;WATCHDOG TIME FOR SCHED TEST RTN
RS PI5CNT,1			;NUMBER OF UNVECTORED PI 5 INTERRUPTS
   IFN KLFLG,<
NMD16K==:<MAXCOR*PGSIZ+37777>/40000 ;MAX # MEM MODULES, 16K EACH
RS MEMTAB,<<NMD16K+^D35>/^D36>	;TABLE INDICATING INT/EXT MEM
   >				;END IFN KLFLG
RS DDXLOK,1
RS BTSTRT,1			;START OF BITTABLE
RS BTEND,1			;END OF BITTABLE
RS PAGDIF,1			;COUNT OF NEW PAGES IN THE SYSTEM
RS NHIPG,1			;HIGEST PAGE USED BY SWAPPER
RS SPTC,1			;COUNT OF SPT (EXCLUDING OFN) ENTRIES IN SPT
RS NOF,1			;COUNT OF ENTRIES IN OFN PART OF SPT
RS NOC,1			;[7247] Count of cached OFNS in the system
RS NOCH,1			;[7247] Count of times cached OFN was reused
RS FRESPT,1			;FREE SPT LIST
RS OFNFRE,1			;FREE OFN LIST
RS MMSPTN,1			;OFN OF MONITOR MAP
RS M1SPTN,1			;OFN OF SECTION 1 MONITOR MAP
RS LOKPGS,1			;COUNT OF LOCKED PAGES, VIA MLKPG
RS LOKSUM,1			;NET NUMBER OF LOCKS, MLKPG-MULKPG
RS DDTIME,1			;TIME NEXT DDMP DUE
RS DDCFSF,1			;CFS flag for DDMP
RS CIFRKF,1			;CI FORK FLAG WORD (BITS DEFINED IN PROLOG)
;   IFN CFSCOD,<			;If CFS
 OFNCFW==:<NOFN+^D35>/^D36	;Words in bit mask
RS OFNCFS,OFNCFW		;Bit mask, one bit per OFN
;   >	;IFN CFSCOD
RS IOIP,1			;SWAP WRITES IN PROGRESS
RS DRMIN0,1			;DRUM SPACE LEVEL FOR DDMP ACTION
RS DRMIN1,1			;DRUM SPACE LEVEL FOR NO NEW JOBS
RS DRMLV0,1			;DRUM SPACE LEVEL FOR NO NEW PRIV PAGES
RS PRELRQ,1			;PRELOADING SWAPIN IF NON-0
RS DELPGQ,1			;QUEUE OF DELETED PAGES
RS JOBBAS,1			;JOB BASE (SPT INDEX)
RS JPTBAS,1			;SPT index for extended-JSB page-table
RS PSBBAS,1			;FORK BASE (SPT INDEX)
RS PS2BAS,1			;SECOND PSB PAGE BASE (SPT INDEX)
RS BTBBAS,1			;BIT TABLE BASE
RS SYMBAS,1			;HIDDEN SYMBOL TABLE MAP SPT INDEX
  IFE FTNSPSRV <
RS XCDBAS,1			;Extended code section page table spt index
  >
RS NBADCP,1			;NUMBER CORE PAGES DECLARED BAD
RS BSHC1,1			;GCCOR - NEW BALSHC

RS BSHC2,1			;GCCOR - DESCRETIONARY SHARED PAGES
RS GCCLPG,1			;GCCOR - LAST PAGE COLLECTED
RS NSWAPF,1			;NO SWAPPING IF NON-0
RS INFTMR,1			;TIME OF NEXT NOOFN BUGINF

RS EPGSEC,1			;Virtual section number of extended free section

RS ASGVCS,1			;Partial section available in ASGVAS
RSI ASGVBT,<<MASKB FFMSEC,HGHSEC>>

;GLOBAL PAGE AGE VALUES

RS CURAGE,1			;CURRENT VALUE FOR AGE
RS CUTAGE,1			;CUTOFF AGE FOR "OLD"
RS LSTAGE,1			;TIME (TODCLK) OF LAST GCCOR

;VARIABLES FOR SWPOM (SWPOMI, SWPOML, SWPOMG)

RS SWPRC0,1			;COUNT OF PAGES ON LIST
RS SWPDAD,1			;NEXT SEQUENTIAL SWAP ADDRESS TO USE
;STORAGE FOR MSCP SERVER
IFN FTSVMSCP,<
NDG MSSMBF,^D40			;MESSAGE BUFFERS PER CONNECTION
CCWLST==:IRBLEN+1		;CCW LIST IN IORB
NCCWS==:1			;NUMBER OF CCWS ALLOWED
SVIRLN==:CCWLST+NCCWS+1		;LENGTH OF IORB
NDG CFSNUM,^D8			;MAX CONNECTS + LISTENS
IFL ^D9-CFSNUM,<PRINTX ?UC.OLB IN PHYPAR INSUFFICENT FOR CFSNUM CONNECTIONS!>
NDG SVRDRV,3			;MAXIMUM NUMBER OF DRIVERS EXPECTED
NSVIRB==:<<MSSMBF+<SVRDRV-1>>/SVRDRV>*2	;NUMBER OF IORBS TO ALLOCATE PER 
				;CONNECTION (TOTAL IORBS = CONNECT MSG * 2)
NDG SVRTMX,^D15			;COMMAND TIMOUT VALUE (NUMBER OF TICKS)
NDG SVRTMV,^D10			;SERVER ACCESS TIMEOUT VALUE IN SECONDS
SVRTMI==:<SVRTMV-1>*^D1000	;TIMEOUT INTERVAL (MILLSECONDS BETWEEN TICKS)
NDG MSSNCH,^D500		;NEXT PERIODIC CHECK IN MILLSECS
NDG MSSLCH,^D10000		;NEXT LONG CHECK (CONNECTION STATES AND BRDCST)


RS(SVIORB,NSVIRB*SVIRLN*SVRDRV)	;IORBS
RS(SCDBTB,CFSNUM)		;MSCP SERVER CONNECTION DATA BLOCK TABLE
NMSFCN==^D9
RSE(SVCMDC,NMSFCN)		;COUNT OF SERVER COMMANDS
RSE(SVCMRT,NMSFCN)		;COUNT OF RETRIED COMMANDS (PARALLEL TO SVCMDC)
RSE(SVSCAC,.SSAFT+1)		;COUNT OF SCA INTERRUPTS
> ;IFN FTSVMSCP
;Storage for CFS

;   IFN CFSCOD,<			;If a CFS monitor
RS	CFSSTK,1		;Allocate the stack pointer
RS	CFSSTR,1		;Space for STR transaction values
RS	CFSOFN,1		;Pointer to where the OFN table resides
RS	CFSSVP,1		;Place to save old stack
RS	SCAILK,1		;INT. LEVEL INTERLOCK
RS	SCAFLG,1		;Random conditions
RS	SCAFL1,1		;Set if CI believed off-line
RS	VOTNUM,1		;VOTE DIALOGUE
RS	CFHSHT,1		;Pointer to hash table
RS	CFSHCT,1		;Count of hosts in this network
RS	CFSHCM,1		;Count of full voting hosts
RS	SCAQ,1			;Q OF PENDING MESSAGES
RS	SCTAIL,1		;TAIL OF THE Q
RS	CFSPCQ,1		;NORMAL HASH FREE QUEUE
RS	CFSPQL,1		;Long packet queue
RS	VOTQ,1			;QUEUE OF VOTING PACKETS
RS	CFBRDS,1		;Count of broadcast messages
	HSTSIZ==:10		;Max hosts on the same CI, full or reduced
RS	CFSENT,HSTSIZ		;Count of messages sent to this processor
RS	CFRECV,HSTSIZ		;Count of messages received from this processor
RS	CFSHST,HSTSIZ		;HOST TABLE
RS	CFSHNM,HSTSIZ		;HOST NUMBER
RS	CFHSTS,HSTSIZ		;Status word
RS	CFNNAM,HSTSIZ*2		;Two words for each name
RS	CFSSMQ,HSTSIZ		;Send queue
RS	CFSSQT,HSTSIZ		; Tail of queue
RS	CCHEAD,1		;Head of queued "cluster cease" messages
;   >	;IFN CFSCOD
   REPEAT 0,<			;CFSCOD NO LONGER USED
   IFE CFSCOD,<CFONLT==:R>	;If no CFS, no test routine either
   >				;END REPEAT 0
RS	CFSSKC,1		;Scheduler flag for testing CFS interconnect
RS	CFSCMC,1		;Connection management count
RS	CFGFSP,1		;Count calls to ASGRES
RS	CFGTLG,1		;Count long block allocates
RS	CFGTSH,1		;Count short block allocates
RS	CFACCT,1		;[7247] Count of currently cached file access tokens
RS	CFACUT,1		;[7247] Count of cached OFN invalidations
RS	CFACTO,1		;[7247] Count of cached access token hits

; Storage for the SCS% JSYS. This is the bit table to indicate which forks
;have event interrupts turned on. One bit per fork is required.

FKTLN==<NFKS+^D35>/^D36		;Define length of table (Be sure to round up)
RSI (FRKTLN,<FKTLN>)		;Allow the rest of world access to length
RS (FRKTAB,FKTLN)		;Allocate the fork table
;SYSTEM RESIDENT JOB TABLES

RS JOBDIR,NJOBS			;ATTACHED DIRECTORY,,LOGIN DIRECTORY
RS JOBNAM,NJOBS			;JOB BITS,,SUBSYS NAME INDEX
NR JOBPNM,NJOBS			;JOB PROGRAM NAME
RS JOBRT,NJOBS			;JOB RUN TIME
RS JOBRTL,NJOBS			;JOB RUN TIME LIMIT
	;DEFSTR JOBRTP,JOBRTL,35,23 ; Ptr to runtime limit blk
	;DEFSTR TIMCNT,JOBRTL,12,13 ; # of clocks in use by job
RS JOBPT,NJOBS			;CONTROL TTY,,TOP FORK

;QUOTA ENFORCEMENT TABLES

NR ALOC1,NOFN			;DIR # ,, OFN COUNT
NR ALOC2,NOFN			;COUNT OF PAGES LEFT
;   IFN CFSCOD,<
RS ALCLOK,1			;Lock word
;   >	;IFN CFSCOD

RS OFNLEN,NOFN			;ACTUAL END OF FILE

;GET FILE CACHE STORAGE

NDG FSMAX,20			;MAX NUMBER OF ENTRIES IN CACHE
;FSN==:3				;# OF WORDS PER ENTRY
NR FGLOCK,1			;THE LOCK WORD
NR FSTTBL,FSMAX			;NUMBER OF ENTRIES


;TIME ZONE STORAGE

RS TIMZON,1			;NUMBER OF HOURS LOCAL TIME LAGS GREENWICH
NR DSTFLG,1			;Daylight Saving Time method word


;EXEC FLAGS WORD. NOT USED BY THE MONITOR EXCEPT FOR SMON/TMON.

NR XECFLG,1			;EXEC FLAGS


;MEMORY ERROR REPORTING STORAGE

RS ERRTBL,1			;QUEUE HEADER

;ARCHIVE SYSTEM

RS IPPKFR,1			; Flag word used to indicate ARCMSG
				; waiting for a free packet (IPCF)
;**;[7324] Change 2 lines at TPSCYC:+0L		MDR	-JUN-86
RSI TPRCYC,<.STDFE>		;[7324] Tape recycle time (max offline exp.)
RSI ARRCYC,<.STDAE>		;[7324] Archive tape recycle time
RS NRTWTS,1			; Should waits for retrievals fail?
				;  non-0 implies fail rather than wait
;CLASS SCHEDULER STORAGE

;**;[7454] Add 2 lines at LLMPSQ:+0L	MDR	14-APR-87
;This is the queue pointer to LLMOP's PSI queue.
RSI LLMPSQ,0			;[7454]
RS MJBUSE,1			;HIGHEST JOB IN USE
RS RDRTIM,1			;TIME TO DO NEXT REORDER
RS UTLTIM,1			;TIME TO COMPUTE UTILIZATION
RS UTLINT,1			;INTERVAL TO COMPUTE NEXT UTIL
RS OLDSLD,1			;PREVIOUS SOLD TIME
RS OLDIDL,1			;PREVIOUS IDLE TIME
RS CLASSF,1			;IF NON-ZERO, DOING CLASSY SCHEDULING
RS CLSCTL,1			;CLASS CONTROL WORD
	NDG MAXCLS,10		;NUMBER OF CLASSES
RSE CLSUTL,MAXCLS		;CLASS UTILIZATION
RSE JOBCLS,NJOBS			;CLASS PER JOB
RSE JOBUTL,NJOBS			;JOB UTILIZATION
RSE JOBIRT,NJOBS			;JOB INCREMENTAL RUN-TIME
RSE JOBDST,NJOBS			;JOB "DISTANCE"
;RSE JOBSLD,NJOBS			;ACCUMULATED SOLD TIME PER JOB
RSE CLSSHR,MAXCLS
RSE CLSSWA,MAXCLS			;WINDFALL ALLOCATION (OR -1)
RSE CLSSHI,MAXCLS		;SHARE PER MEMBER
RSE CLSCNT,MAXCLS
RSE CLSDST,MAXCLS		;CLASS DISTANCE
RSE CLSSUM,MAXCLS		;INTEGRAL OF NRUN FOR CLASSES
RSE CLSIRT,MAXCLS		;CLASS INCREMENTAL RUN TIME
;SYSTEM RESIDENT FORK TABLES
; STRUCTURE DEFINED FOR SOME VARIABLES BUT NOT PRESENTLY USED
; CONSISTENTLY THROUGHOUT CODE.

RS FKPGS,NFKS			;PTB,,PSB   SPT NUMBERS
	;DEFSTR FKPSB,FKPGS(FX),35,18
	;DEFSTR FKUPT,FKPGS(FX),17,18
RS FKSTAT,NFKS			;FORK WAIT TEST
RS FKSTA2,NFKS			;SECOND DATA WORD FOR FORK TEST
RS FKPGST,NFKS			;TEST WORD WHILE IN PAGE WAIT
				;ALSO TOD ENTERED WAITLIST
RS FKQ1,NFKS			;REMAINING QUANTUM
	;DEFSTR FKQTM,FKQ1(FX),35,36
RS FKQ2,NFKS			;FORK SCHEDULING QUANTITIES
	;B0-B17 - FLAGS, MAX QUEUE, CURRENT QUEUE
	;B18-35 - FKWTL: LOC OF WAIT LIST PTR FOR BLOCKED FORK
RS FKBSPW,NFKS			; GOLST POSITION ,, BALSET LIST PTR
RS FKSWP,NFKS			;SWAPPING DATA
	;B0-B17 - FLAGS; B18-B35 - FKHST: MEM DEMAND HISTORY
RS FKNBW,NFKS			;TIME OF START OF BALSET WAIT
RS FKJTQ,NFKS			; Jsys Traps queue of forks
				;  waiting to PSI their monitor
RS FKPT,NFKS			;BALSET ENTRY TIME ,, FORK QUEUE PTRS
	;DEFSTR FKBET,FKPT(FX),17,18
RS FKINT,NFKS			;FORK INTERRUPT COMMUNICATION REG
RS FKINTB,NFKS			;INTERRUPT CHANNELS REQUEST
RS FKJOB,NFKS			;JOB NUMBER ,, JSB
	;DEFSTR FKJSB,FKJOB(FX),35,18
	;DEFSTR FKJBN,FKJOB(FX),17,18
RS FKNR,NFKS			;AGE,,BALANCE SET SIZE (RESERVE)
	;DEFSTR FKXAGE,FKNR(FX),8,9 ;AGE AT LAST XGC
	;DEFSTR FKAGE,FKNR(FX),17,9 ;CURRENT AGE
	;DEFSTR FKWSS,FKNR(FX),35,18 ;WORKING SET SIZE
RS FKWSP,NFKS			;WORKING SET PARAMETERS - NWSCE,,N
	;DEFSTR FKCSIZ,FKWSP(FX),35,18 ;CURRENT SIZE
				;ALSO LH USED WHILE ENTERING BALSET
RS FKTIME,NFKS			;TIME AT WHICH FORK WAS PUT ON CURRENT QUEUE
RS FKCNO,NFKS			; SECOND PSB PAGE ,, CORE NUMBER
	;DEFSTR FKPS2,FKCNO(FX),17,18
	;DEFSTR FKCNN,FKCNO(FX),35,18

;TABLES FOR SETNM

NNAMES==:^D40			;NUMBER OF NAMES ALLOWED

RSE SNAMES,NNAMES		;SIXBIT NAME OF SUBSYSTEM
RSE STIMES,NNAMES		;ACCUMULATED RUNTIME OF SUBSYSTEM
RSE SPFLTS,NNAMES		;ACCUMULATED PAGE FAULTS OF SUBSYSTEM
RSE SSIZE,NNAMES			;WORKING SET SIZE INTEGRAL
RSE SNBLKS,NNAMES		;NUMBER OF BLOCKS
RSE SCOUNT,NNAMES		;NUMBER OF SETSN CALLS
;MONITOR STATISTICS
;N.B. THIS TABLE IS AVAILABLE THROUGH GETAB AND IS USED BY WATCH, EXEC, ETC.
;THE RELATIVE LOCATION OF WORDS WITHIN THE TABLE SHOULD NOT BE CHANGED.

NSTAT==:0			;COUNT NUMBER STAT WORDS

;SPECIAL VERSION OF RS FOR STAT WORDS - COUNTS TOTAL

DEFINE STATRS (SYM,NUM)<
	NSTAT=NSTAT+NUM
   RS SYM,NUM
   >

STATRS SKDTM0,1			;TIME SPENT IN SKDNUL WITH BALSET EMPTY
STATRS SKDTM1,1			;TIME SPENT IN SKDNUL WITH BALSET NON-EMPTY
STATRS SKDTM2,1			;TIME SPENT RUNNING SCHEDULER
STATRS SPTTIM,1			;TIME SPENT IN PAGER TRAP CODE

STATRS DRMRD,1			;NUMBER OF DRUM READS
STATRS DRMWR,1			;NUMBER OF DRUM WRITES
STATRS DSKRD,1			;NUMBER OF DISK READS
STATRS DSKWR,1			;NUMBER OF DISK WRITES

STATRS TTYBKS,1			;NUMBER OF FORK WAKEUPS
STATRS TTINTS,1			;NUMBER OF TERMINAL INTERRUPTS
STATRS BSTSUM,1			;INTEGRAL OF NBPROC DT
STATRS RJTSUM,1			;INTEGRAL OF NBPROC+NGOJOB DT

NRJAVS==:3			;NUMBER OF EXPONENTIAL AVERAGES MAINTAINED
STATRS RJAV,NRJAVS			;EXPONENTIAL AVERAGE OF NUMBER RUNNABLE FORKS

STATRS DSKWT,1			;SUM OF PROCESS DSK WAIT TIMES
STATRS DRMWT,1			;SUM OF PROCESS DRUM WAIT TIMES

STATRS NTTYIN,1			;TOTAL NUMBER TERMINAL INPUT CHARS
STATRS NTTYOT,1			;TOTAL NUMBER TERMINAL OUTPUT CHARS

STATRS NGCCOR,1			;COUNT OF GCCOR'S
STATRS GCCTIM,1			;INTEGRAL OF GCCOR TIME
STATRS NREMR,1			;COUNT OF WS REMOVALS WHILE RUNNABLE
STATRS BSWT,1			;SUM OF PROCESS WAIT TIMES

STATRS SKDOVH,1			;ACCUMULATED SCHED OVERHEAD TIME IN HP UNITS
STATRS SKDIDL,1			;ACCUMULATED IDLE TIME IN HP UNITS
STATRS SKDSWP,1			;ACCUMULATED SWAP-WAIT TIME IN HP UNITS
STATRS USRTIM,1			;ACCUMULATED USER TIME IN MILLISECONDS

STATRS HQFSUM,1			;INTEGRAL OF NHQFK DT
STATRS LQFSUM,1			;INTEGRAL OF NLQFK DT

STATRS DWRWT,1			;SUM OF PROCESS DISK WRITE WAIT
STATRS NAJBAL,1			;NUMBER OF FORCED AJBALS CALLS
STATRS SNRSUM,1			;INTEGRAL OF SUMNR
STATRS RPQSUM,1			;INTEGRAL OF NRPLQ
STATRS HSPTTM,1			;HP PAGER TRAP TIME
STATRS NCSWCH,1			;NUMBER OF CONTEXT SWITCHES
STATRS BGNDTM,1			;TIME DOING BACKGROUND STUFF (TTCH7, ETC.)

STATRS STRPCT,1			;SYSTEM TOTAL PAGE TRAPS
STATRS SRPQSC,1			;SYSTEM TOTAL "SAVES" FROM RPLQ
STATRS SGCCWR,1			;NUMBER WRITES FROM GCCOR

STATRS NWSSUM,1			;INTEGRAL OF NUMBER WS IN MEM
STATRS SKDFIL,1			;INTEGRAL OF WAIT TIME WO SWAP WAITS
STATRS NWSLOD,1			;COUNT OF WS LOADS
STATRS NREMJ,1			;COUNT OF BALSET REMOVALS WHILE RUNNABLE
STATRS SXGCWR,1			;NUMBER WRITES FROM XGC

STATRS TTWAKN,1			;COUNT OF TERMINAL INPUT WAKEUPS
STATRS DSKRVC,1			;COUNT OF SKIP READS

;***** END OF STATISTICS TABLE *****

;**;[7211] Add 36 lines at (RSE CLSRJA)-3	CEG 18-Dec-85
;CI STATISTICS

;N.B. THIS TABLE IS AVAILABLE THROUGH GETAB AND IS USED BY WATCH, EXEC, ETC.
;THE RELATIVE LOCATION OF WORDS WITHIN THE TABLE SHOULD NOT BE CHANGED.

NCSTAT==:0			;COUNT NUMBER CI STATISTICS WORDS

;SPECIAL VERSION OF RS FOR CI STATISTICS WORDS - COUNTS TOTAL

DEFINE CTATRS (SYM,NUM)<
	NCSTAT=NCSTAT+NUM
   RS SYM,NUM
   >

CTATRS CIPKSN,1		;CI PACKETS SENT
CTATRS CIPKRC,1		;CI PACKETS RECEIVED
CTATRS SCAOSN,1		;SCA OVERHEAD MESSAGES SENT
CTATRS SCAORC,1		;SCA OVERHEAD MESSAGES RECEIVED
CTATRS MSCSNT,1		;MSCP DRIVER MESSAGES SENT
CTATRS MSCRCV,1		;MSCP DRIVER MESSAGES RECEIVED
CTATRS SVSEND,1		;MSCP SERVER MESSAGES SENT
CTATRS SVRECV,1		;MSCP SERVER MESSAGES RECEIVED
CTATRS CFSSND,1		;CFS MESSAGES SENT
CTATRS CFSRCV,1		;CFS MESSAGES RECEIVED
CTATRS SCSJSN,1		;SCS% MESSAGES SENT
CTATRS SCSJRC,1		;SCS% MESSAGES RECEIVED
CTATRS CMDQS,4		;CI COMMAND QUEUE USAGE
CTATRS IPSND,1		;IP DATAGRAMS SENT
CTATRS IPRCV,1		;IP DATAGRAMS RECEVIED
CTATRS DNASND,1		;DECNET DATAGRAMS SENT
CTATRS DNARCV,1		;DECNET DATAGRAMS RECEIVED
CTATRS SCSJDS,1		;SCS% DATAGRAMS SENT
CTATRS SCSJDR,1		;SCS% DATAGRAMS RECEIVED
CTATRS MSCDRC,1		;MSCP DRIVER DATAGRAMS RECEIVED
CTATRS HSCELP,1		;HSCP ERROR-LOG DATAGRAMS RECEIVED (PPD BYTE 5)

;********** END OF CI STATISTICS TABLE ******************

;LOAD AVERAGE COMPONENTS (GETAB TABLES)

RSE CLSRJA,<MAXCLS*NRJAVS>	;RUN AVGS FOR CLASSES
RS HQLAV,NRJAVS			;HIGH-QUEUE AVERAGES
RS LQLAV,NRJAVS			;LOW-QUEUE AVERAGES

;**TEMP** 3A ONLY
RS(XB2RED,1)
RS(XB2WRT,1)
;**TEMP END**
;SCHED VARIABLES

;THIS WAS 240 BEFORE SCA...
NSKDP==:700			;SIZE OF SCHED PDL
RS SKDPDL,NSKDP			;SCHEDULER LOCAL PDL

RS SCKATM,1			;ALARM TIME - MIN OF ALL SCHED CLOCKS
RS OLDTCK,1			;  "
RS PI7AC1,2			;TEMPS AT PISC7
RS ALARMT,1			;MIN TIME OF FORKS ON CLKLST
RS SKDTHS,1			;TIME IN SCHED SO FAR THIS PASS
RS SKDLST,1			;LAST READING OF HP CLOCK
RS SKDLRT,1			;RUNTIME OF LAST TRIP THRU SCHEDULER
RS NULJBF,1			;NON ZERO IF RUNNING THE NULL JOB
RS SNPSV1,1			;PLACE TO SAVE AN AC WHILE CHECKING PC
				; TO SEE IF IT IS IN A SNOOP BREAK POINT

RS LSTPFK,1			;LAST FORK SCHEDULED
RS LFORKX,1			;LAST FORK BEFORE BGND TASKS
RS FORKX,1			;INDEX OF CURRENTLY RUNNING FORK
RS FREJOB,1			;LIST OF FREE JOBS

RS WTLST,1			;WAITING FORK LIST
RS WT2LST,1			;WAITING FORKS TO BE WAKED BY UNBLK1
RS TTILST,1			;LIST OF FORKS WAITING FOR TTY INPUT
RS TTOLST,1			; .. .. TTY OUTPUT EVENTS
RS FRZLST,1			; .. .. UNFREEZING
RS TRMLST,1			; .. .. INFERIOR FORK TERMINATION
RS CLKLST,1			; .. .. CLOCK

RS JTLST,1			; JSYS traps queue
RS JTLSTL,1			; ... last; doubly linked list of forks
				; waiting on JTLCK to PSI some mon fork

RS GOLST,1			;RUNNABLE FORK LIST

RS JB0FLG,1			;RUN JOB 0 REQUEST
RS FRECB,1			;FREE CORE NUMBER BITS

RS FREFK,1			;LIST OF FREE FORKS
RS SYSIFG,1			;SYSTEM HAS BEEN INITIALIZED IF NOT 0
RS PWRDWN,1			;POWER FAILURE DETECTED IF .G. 0, DONE IF .L. 0
RS SPWFFL,1			;Spurious power fail if -1, real if 0

RS FPTABL,<HGHSEC+1>		;Allow us all sections for CI growth
RS NBPROC,1			;NUMBER OF PROCESSES IN BAL SET
RS NBWT,1			;NUMBER WAITING PROCESSES IN BALSET
RS NBSWP,1			;NUMBER FORKS IN SWAP WAIT
RS NHOLDF,1			;NUMBER OF FORKS IN BALSET HOLD
RS MAXBP,1			;MAX NUMBER OF JOBS IN BAL SET
RS BSQNT0,1			;VALUE OF BSQNT AT START OF LAST RUNNING

RS SUMNR,1			;SUM OF RESERVE PAGES, ALL PROCESSES IN MEM
RS SUMBNR,1			;SUM WORKING SETS IN BALSET
RS NWSEPG,1			;NUMBER PAGES WSETS ENTERING MEMORY
RS BALSHC,1			;COUNT OF PAGES IN BALSET BECAUSE OF SHARING
RS NXTCNF,1			;NEXT FORK TO CHECK - GCNO
RS RELCB,1			;MASK OF CORE NUMBERS RELEASED BUT NOT CLEARED
RS MAXNR,1			;MAX VALUE OF SUMNR
RS MAXHNR,1			;MAX NR OF BALSET HOLDING FORKS
RS BSLST,1			;LIST OF BALSET HOLDING FORKS
RS NBSL,1			;NUMBER OF BALSET HOLDING FORKS
RS NEBAL,1			;NUMBER OF PROCESSES NOW ENTERING BALSET
RS REMFGS,1			;FLAGS SET ON REMBSJ/REMBSF

RS NPMAX,1			;MAX NUMBER OF PAGES IN CORE FOR ONE PROCESS
RS SNPMAX,1			;SMALL NPMAX FOR LOADED CONDITIONS
RS IRJAV,1			;NEAREST INTEGER TO RJAV
RS WSMTIM,1			;TIME FOR NEXT WSMGT
RS RWSOKF,1			;FLAG - OK TO DO REMWS
RS NWSMEM,1			;NUMBER WS IN MEM

RS NHQFK,1			;NUMBER FORKS ON .L. MAXQ
RS NLQFK,1			;NUMBER FORKS ON MAXQ
;SCHEDULER VARIABLES

RS SCHFLG,1			;PERMANENT SCHEDULER FLAGS
RS SKEDF1,1			;START PROCESS VIA CH7 BREAK IN 1
RS SKEDF3,1			;PROCESS CLOCK COUNTED TO 0
RS SKEDFC,1			;FORCE CLEAR OF BALSET & MEMORY
RS INSKED,1			;IN SCHEDULER IF NON-ZERO
RS SSKED,1			;LAST JOB RUNNING WAS NOSKED
RS SETPAG,1		;TEMP FOR SETTING PAGER AT SCDR
RS RSKCHK,4			;XPCW DESTINATION

RS PSKED,1			;PAGE TRANSFER COMPLETED
RS QSKED,1			;BLOCKED FORK NOW UNBLOCKED IF .G. 0
RS TSKED,1			;TTY OUTPUT EVENT IF .N. 0
RS BSKED,1			;FORK VOLUNTARILY LEFT BALSET IF .G. 0

RS NGOJOB,1			;NUMBER OF RUNNABLE JOBS

RS RJTTIM,1			;TIME AT LAST UPDATE TO RJTSUM
RS RJATIM,1			;TIME OF NEXT RJAV UPDATE
RS RJAVS1,1			;RJTSUM AT LAST RJAV UPDATE
RS RJAVS2,1			;HQFSUM AT LAST RJAV UPDATE
RS RJAVS3,1			;LQFSUM AT LAST RJAV UPDATE

;CLOCKS COUNTED DOWN AND TESTED, PARALLEL TO PCLKT, DON'T REORDER

RS BSQNT,1			;RUNNING JOB REMAINING QUANTUM
RS TIM1,1			;SCHED FAST CLOCK
RS TIM2,1			;SECOND CLOCK, 100 MS

RS FKT0,1			;CLOCK AT START OF RUNNING
RS FKT1,1			;TIME USED SINCE SETRT
RS TIM0,1			;TODCLK AT LAST C1STAT

RS TODCLK,1			;MILLISECOND CLOCK, MONOTONICALLY INCREASING
RS TODPWL,1			;TIME OF DAY (IN SECONDS) BY POWER LINE CLOCK
RS CHKTIM,1			;TIME AT WHICH CHKR CONSIDERED OVERDUE
RS CHKDUE,1			;OVERDUE COUNT FOR CHKR
RS DDPTIM,1			;TIME AT WHICH DDMP CONSIDERED OVERDUE
RS DDPDUE,1			;OVERDUE COUNT FOR DDMP

RS SCDRN1,1			;RUN ONLY JOB N IF N .G. -1

;CRASH-ON-FORK STORAGE
IFN DEBUG,
<
RS CRSFRF,1			;FLAG WORD
RS CRSFRN,1			;FORK TO CRASH ON
RS CRSJBN,1			;JOB REQUESTING CRASH
>
;DIRECTORY RELATED STORAGE

	RS MXDIRN,1		;Maximum # of directories
				;Max directory # +1
	RS NDIRPG,1		;MAX # OF PAGES FOR A DIRECTORY FILE
	RS FBTSIZ,1		;SIZE OF FREE BIT TABLE BLOCK

RS IDXORA,1			;WORD CONTAINING START OF INDEX TABLE
RS DIRORA,1			;WORD CONTAINING BASE ADR OF MAPPED DIR
NDG DIRRDM,777777777700		;DEFAULT MASK FOR DIRECTORY READ UPDAATE
RS DIRRDU,1			;READ UPADTE MASK
RS DIRCLK,1			;DIRECTORY CACHE LOCK
NDG	DIRCSZ,^D25		;DIRECTORY CACHE SIZE
RS DIRCSH,DIRCSZ*5		;DIRECTORY CACHE TABLE
RS BTBORA,1			;WORD CONTAINING BASE ADR OF MAPPED BIT TABLE

;MISC STORAGE

;SYSTEM STARTUP FLAG. REPLACES DIDSCA AND STOKF

RSI STARTF,<0>			;DEFAULT IS NRMAL STARTUP
NR (JB0XFR,1)			;WHERE TO GO ON ERROR IN FORK 0

RS SEBFRK,1			;FORK NUMBER OF SYSERR FORK
RS CILFRK,1			;FORK NUMBER OF IPALOD.EXE FORK
RS CIDFRK,1			;FORK NUMBER OF IPADMP.EXE FORK
RS CIFORK,1			;FORK NUMBER OF THE CI FORK
RS JB0FRK,1			;FORK NUMBER OF JOB 0 (CHKR) FORK
RS DDMFRK,1			;FORK NUMBER OF DDMP FORK
RS DNTFRK,1			;FORK NUMBER OF NSP FORK
RS SJBFRK,1			;FORK NUMBER OF SYSJOB FORK
RS MOSFRK,1			;FORK NUMBER OF TGHA FORK
RS CTMFRK,1			;FORK NUMBER OF CTERM HOST FORK

;FLAGS FOR CUSTOMER-CONTROLLABLE OPTIONS

RSI HNGU0F,<HNGU0>		;HANGUP IF JOB NOT LOGGED IN
RSI HNGU1F,<HNGU1>		;HANDUP IF JOB LOGGED IN
RSI COFTIM,<^D60000*COFMIN>	;TIME BETWEEN AUTO DETACH AND AUTO LOGOUT
;STORAGE FOR BUGHLT AND BUGCHK

;KEEP DBUGSW, DCHKSW, EDDTF, WEFLAG IN ORDER (FOR DEBUGGING CONVENIENCE ONLY)

RSI DBUGSW,<0>			;STOP ON BUGHLTS
RSI DCHKSW,<0>			;STOP ON BUGCHKS
RSI EDDTF,<IEDDTF>		;EDDT PRESENT IF NON-0
RSI WEFLAG,<0>			;WRITE-ENABLE MON IF NON-0 AND DBUGSW=1
RSI DINFSW,<0>			;STOP ON BUGINFS
RSI DBUGIP,<0>			;IP DEBUGING
RSI SAVTRE,<SAVTRF>		;SAVE A TREE (ONE-LINE BUGXXX OUTPUT)
RSI CIBUGX,<0>			;OUTPUT MORE CI-RELATED BUGXXX
RSI DTBUGX,<1>			;If non-zero output BUGxxx for MCB DTEs
IFN KNIN,<
   RS NIBUGX			;OUTPUT MORE NI-RELATED BUGXXX
   RS RIQHED			;LLMOP Request ID Queue head
   RS RIQLST			;LLMOP Request ID Queue end
   RS LLMACT			;Time at which to send next System ID
> ; End of IFN KNIN
RSI CITIMR,<0>			;DON'T DO SCAMPI, PHYMSC, OR PHYMVR TIMEOUTS
RSI NOKLIP,<0>			;DON'T INITIALIZE THE KLIPA

RSI BUGHLT,<0,JRST BUGH0>	;JSR BLOCK FOR BUGHLT'S
RSI XBUGHLT,<<MSEC1,,BUGHLT>>	;Indirect word for BUGHLT's
RS SVVEXM,1			;SAVE VALID EXAMINE IN BUGTYO
				;USED IN KS10 TO SAVE KEEPALIVE WORD
RSI BUGLCK,<-1>			;LOCK ON BUGXXX ROUTINES
RSI BUGCHK,<0,JRST BUGC0>	;JSR BLOCK FOR BUGCHK'S
RSI XBGCCHK,<<MSEC1,,BGCCHK>>	;Indirect word for BUGCHK's
RSI BUGINF,<0,JRST BUGI0>	;JSR BLOCK FOR BUGINF'S
RSI XBGCINF,<<MSEC1,,BGCINF>>	;Indirect word for BUGINF's

RS BUGACS,20			;ACS
RS BUGACU,20			;PLACE TO SAVE PREV CONTEXT ACS
	BUGPLN==:^D40		;PUSH DOWN LIST SIZE
RS BUGPDL,BUGPLN		;PUSH DOWN LIST
	BUGMAX==:20		;DONT LET MORE THAN 20 IN QUEUE
RS BUGCNT,1			;COUNT OF BUG BLOCKS IN QUEUE
RS BUGNUM,1			;NUMBER OF BUG CHECKS SINCE STARTUP
RS BUGSEB,1			;SYSERR BLOCK POINTER
RS BUGP1,1			;TEMPS IN BUGSTO
RS BUGP2,1			; ..
RS BUGP3,1			; ..
RS BUGTMS,1			;TIME TO STORE NEXT BUGTIM
	BUGINT==:^D<5*60000>	;INTERVAL FOR STORING BUGTIM-5 MINUTES
RS BUGTIM,4			;ASCII TIME AND DATE STORED FOR BUGHLT
RSI PISAV,<-1>			;CONI PI, AT TIME OF BUGHLT
RSI PISV1,<-1>			;TEMP COPY OF PISAV BEFORE WE GET BUGLCK

;STORAGE FOR JSR'S IN RESIDENT MONITOR

RSI BUGMON,<0,JRST BUGM0>	;TO GO TO SECONDARY PROTOCOL
RSI BUGPRI,<0,JRST BUGP0>	;TO GO TO PRIMARY PROTOCOL

;ROUTINES IN APRSRV TO TYPE CHARACTERS ON THE CTY IN SECONDARY PROTOCOL
;REACHED VIA JSR, WHICH STORES INTO THE FIRST WORD OF THE PAIR.
;THESE LOCATIONS ARE IN PSECT RSDAT

RSI BUGTYC,<0,JRST BUGT0>	;TYPEOUT DURING ERROR HANDLING
RSI BUGMSG,<0,JRST BUGMS0>	;TYPE OUT A STRING
RSI BUGTYO,<0,JRST BUGTY0>	;TYPE CHARACTER, PAD IF <LF>
RSI BUGNO,<0,JRST BUGNO0>	;TYPE A NUMBER
;STORAGE FOR THE UTEST JSYS

RS UTLOCK,1			;CONTAINS THE FORK # OF OWNER
RS UTBASE,1			;THE STARTING ADR OF ROUTINE BEING TESTED
RS UTLEN,1			;THE NUMBER OF WORDS BEING TESTED
UTNPG==:1			;NUMBER OF PAGES OF STORAGE SPACE
NUTWDS==UTNPG*PGSIZ		;WORDS OF BUFFER SPACE FOR UTEST
NRP UTPGS,NUTWDS		;BUFFER SPACE


;STORAGE FOR ADDRESS BREAK

RSI EXECBK,<0>			;0 IF NO EXEC BREAK, BREAK CONDITIONS OTHERWISE
RS USERBK,1			;NUMBER OF PROCESSES WITH ADDRESS BREAK SET

   IFN KCFLG,<
RS BRKBLK,5			;BLOCK FOR DOING WRCTX

   >				;END OF IFN KCFLG
;STORAGE FOR TTYSRV

NCHBF==:<TTSIZ-1>*4		;NUMBER OF CHARS IN 1 BUFFER

;TTY BUFFERS--INPUT, OUTPUT, AND ECHO
;BUFFERS ARE OF SIZE TTSIZ, AND START AT LOCATIONS N*TTSIZ+1

RS TTBUFS,NTTBF*TTSIZ+TTSIZ

;WORD THAT CONTAINS THE UNIT NUMBER ON THE .FEDLS DEVICE BY WHICH
;THE FRONT END KNOWS THE CTY.  USED IN IDCTY.

	RS CTYINT,1

RS TCOERR,1			;TCOUT SETS THIS IF FAILS IN SCHEDULER CONTEXT
RS J0RLDF,1			;INTERLOCK FE RELOAD BECAUSE CTY HUNG

;STORAGE

RS TTFREC,1			;COUNT OF FREE BUFFERS
RS TTFREB,1			;LIST OF FREE BUFFERS
NTSQWD==:<NLINES+^D35>/^D36	;NUMBER OF WORDS IN START OUTPUT QUEUE
RS TTSOQ,NTSQWD			;START OUTPUT QUEUE, ONE BIT PER LINE
IFE FTNSPSRV,<
CHSQWD==:<NTTCTH+^D35>/^D36	;NUMBER OF WORDS IN CTERM START OUTPUT QUEUE
RS CHSOQ,CHSQWD			;CTERM START OUTPUT QUEUE, ONE BIT PER LINE
>;END IFE FTNSPSRV
RS PTYSTM,1			;PTY START TIME
RS TNETRQ,NTSQWD		;BIT MASK FOR ACTIVE NET USER LINES
RS TQLNQ,NTSQWD			;BIT MATRIX FOR LINE FUNCTION QUEUE
IFN LAHFLG,<
;**;[7250]Add 1 line at TQLNQ+1	WCM	28-FEB-86
MINACB==:<^D32>			;[7250]Max number of allocated circuit blocks.
NSBWDS==:<NTTLAH+^D35>/^D36	;NUMBER OF WORDS IN FREE LAT SLOT BLOCK QUEUE
RS NFRSBQ,NSBWDS		;FREE SLOT BLOCK QUEUE, ONE BIT PER LINE
>

;BIG BUFFER

RS TTBIGI,1			;INPUT INDEX
RS TTBIGO,1			;OUTPUT INDEX
RS TTBIGC,1			;COUNT
RS TTBBUF,TTBSIZ		;BUFFER
RS TTQCNT,1			;COUNT OF SPECIAL LINE ITEMS

RS TTCQLN,1			;CONTROL OP CURRENT LINE NUMBER
RS TTHNGL,1			;LINE BEING EXAMINED FOR HUNG
RS TTHNGT,1			;TIME AT WHICH LINE WILL BE DEFINED AS HUNG
RS TTHNGN,1			;LAST HUNG LINE ,, NUMBER UNHANGS DONE
RS LINKF,1			;LINKED OUTPUT CHAR IN NOT 0
RS IMECHF,1			;IMMEDIATE ECHO OUTPUT CHAR IF NON-0
RS TTCHIC,1			;INPUT CHARACTER IN TTCHI
RS TTSTAT,NLINES		;STATIC DATA
RS TTACTL,NLINES		;POINTER TO DYNAMIC DATA
RS TTSPWD,NLINES		;INPUT,,OUTPUT SPEEDS
RS TTCSAD,NLINES		;ROUTINE FOR SCHEDULER TO CALL
RS TTCSTM,NLINES		;TIME TO CALL ROUTINE IN TTCSAD

   IFE FTNSPSRV,<

RS TT1LIN,NLTYPS		;PLACE FOR FIRST LINE OF THIS TYPE
				; STORED AT INITIALIZATION

;OTHER MISC TTYSRV STORAGE

RS SALLCK,1			;SENDALL LOCK
RS SALCNT,1			;SENDALL COUNT
RS SALBFR,1			;SENDALL BUFFER ADDRESS

   >;END OF IFE FTNSPSRV

RS CTYLNO,1			;CTY LINE NUMBER (STORED IN TTINIT)

;STORAGE FOR STRING CONTAINING VERSION AND NAME OF MONITOR

NR SVN,NSVNT			;TEXT IS READ FROM SYSTEM:MONNAM.TXT
				; OR DEFAULTED TO A PREASSEMBLED STRING
				; AT TSVN
IFN RP04F,<

BTBMAX==:16000			;MAXIMUM WORDS AVAILABLE FOR BIT TABLE
BTBTOP==:3100			;SIZE OF TOP HALF FOR OLD DISKS
BTBBOT==:11300			;SIZE OF BOTTOM HALF FOR OLD DISKS

;BIT TABLE

RS BTBSIZ,1			;MAXIMUM WORDS AVAILABLE FOR BITTABLE
;* * * *
;This will go away when FILINI is fixed
; * * * *
BTBLEN==:0			;DO NOT RESERVE SPACE IN SECTION 0
NRP BTB,BTBLEN

;NOTE THAT THE OLD ASSUMPTION THAT SOME CYLINDERS ARE NOT AVAILABLE
;FOR FILES HAS BEEN REMOVED.  LOTRK (THE FIRST AVAILABLE CYLINDER) IS
;NOW ALWAYS 0, AND HITRK (THE HIGHEST AVAILABLE CYLINDER) IS THE LAST
;CYLINDER IN THE STRUCTURE, WHICH IS CONTAINED IN SDBCYL IN THE SDB

LOTRK==:0
>
RS BTBLCK,1			;BIT TABLE LOCK
RS DERRHD,1			;HEADER FOR BAT BLOCK QUEUE
ERRLNK==:4			;OFFSET IN ERROR NODE FOR THE LINK

;VARIABLES HOLDING PARAMETERS OF PUBLIC STRUCTURE


RS NSSUN,1			;# OF SWAPPING SECTORS PER UNIT
RS FSSUN,1			;FIRST SWAPPING SECTOR ON UNIT


;VARIABLES USED BY FSI ROUTINES

RS FSIBLK,20			;TEMPORARY BLOCK
RS FEFSIZ,1			;SIZE OF FRONT END FILE SYSTEM IN PAGES
RS BOTSIZ,1			;SIZE OF BOOTSTRAP.BIN IN PAGES
NPGSFE==:NTRFE*^D95		;DEFAULT NUMBER OF PAGES IN FE FILE SYSTEM
NPGSBT==:NTRBT			;DEFAULT NUMBER OF PAGES IN BOOTSTRAP.BIN

DSKMSK==:777774			;BITS NOT USED IN LH OF DISK ADDRESS

;HOME BLOCKS

IFN RP04F,<
HOME::	0			;BOOT STRAP FOR THE 11
	1			;HOME BLOCK
	2			;BAT BLOCK
	3			;PDV BLOCK
	4			;RESERVED
	5			;RESERVED
	6			;RESERVED
	7			;RESERVED
	10			;RESERVED
	11			;RESERVED
	12			;SECONDARY HOME BLOCK
	13			;SECONDARY BAT BLOCK
NHOME==:.-HOME
>


;DO NOT REORDER ERROR WORDS, USED BY GETAB

NDSKEW==:^D10			;NUMBER OF ERROR WORDS FOR GETAB

RS DSKRCE,1			;COUNT OF RECOVERABLE ERRORS
RS DSKRER,4			;COMMAND WORDS AND ERROR BITS OF LAST ERROR
RS DSKNRE,1			;COUNT OF NON-RECOVERABLE ERRORS
RS DSKLER,4			;COMMAND WORDS AND ERROR BITS LAST NON-REC ERR
RS DSPSFK,1			;FORK,,PSI FOR DISK ONLINE/OFFLINE INTERRUPT

;PARAMETERS FOR THE BAT BLOCK ERROR QUEUE

NODSIZ==:5			;SIZE OF AN ENTRY
MAXNOD==:^D10			;NUMBER IN FREE POOL
RS IOERRQ,MAXNOD*NODSIZ		;ALLOCATE THE POOL
RS IOERRH,1			;THE QUEUE HEADER
RS ERRSWP,1			;FLAG FOR A BAD BLOCK ON PSB, PT, UPT READ
RS VSMFLG,1			;FLAG FOR FORCED VERIFICATION OF MONITOR AT
				;SYSTEM STARTUP TIME

;BAT BLOCK VARIABLES

CODBAT==:606060			;UNLIKELY CODE IN BATCOD
MAXBFR==:^D61*2			;MAX FREE SPACE IN BAT BLOCK
MAXBAD==:^D511			;MAX BAD SPOTS IN A BAD PAIR
BAT1P==:4			;OFFSET OF FIRST BAD PAIR
;STRTAB AND SDB DEFINITIONS

NR (UCSEED,1)			;SEED FOR UNIQUE CODE FOR EACH STRUCTURE
NR (STRLOK)			;LOCK FOR THE DISMOUNT CODE

NDG STRN,^D32			;MAXIMUM NUMBER OF STR'S ALLOWED
RS STRTAB,STRN			;TABLE OF POINTERS TO SDB'S

NDG MXSTRU,4			;MAX # OF PACKS IN A STRUCTURE
				; (ASSUMES RP04'S, USED TO LIMIT SDBUDB)
HOMTBL==:MXSTRU			;LENGTH OF HOMTAB
RS HOMTAB,HOMTBL		;LOGICAL TO PHYSICAL MAPPING
				; (CKU NUMBERS FOR EACH LOGICAL UNIT)


;SDB - STRUCTURE DATA BLOCK FORMAT

SDBNAM==:0			;STRUCTURE NAME
SDBNUM==:1			;NUMBER OF UNITS IN STRUCTURE
SDBSIZ==:2			;SIZE IN SECTORS OF EACH UNIT IN STR
SDBSTS==:3			;STATUS FLAGS,,INITING FORK
SDBRXB==:4			;ADDRESS OF ROOT DIR INDEX BLOCK
SDBBXB==:5			;ADDRESS OF BACKUP COPY OF ROOT DIR
SDBNSS==:6			;NUMBER OF SWAPPING SECTORS PER UNIT
SDBFSS==:7			;FIRST SWAPPING SECTOR PER UNIT
SDBBTB==:10			;OFN OF BIT TABLE
SDBFRC==:11			;COUNT OF FREE PAGES ON STRUCTURE
SDBIDX==:12			;HANDLE'S OF INDEX TABLE AND ROOT-DIRECTORY
SDBLDN==:13			;LAST DIRECTORY NUMBER ON THIS STRUCTURE
SDBLCA==:14			;LAST CYLINDER ASSIGNED BY DSKASN
SDBCYL==:15			;TOTAL CYLINDERS IN STRUCTURE
SDBBT0==:16			;LENGTH OF TOP HALF OF BIT TABLE
SDBBT1==:17			;LENGTH OF BOTTOM HALF OF BIT TABLE
SDBTYP==:20			;ADDRESS OF DSKSIZ TABLE FOR THIS TYPE OF DISK
SDBFLK==:21			;FILE LOCK COUNT,,UNIQUE CODE
SDBCNT==:22			;MOUNT COUNT,,OPEN FILE COUNT
SDBPUC==:23			;PACK UNIQUE CODE FOR MEDIA IDENTIFICATION
SDBOMF==:24			;ORIGINAL MINIMUM FREE PAGES LIMIT
SDBMXF==:25			;BOUNDRY ABOVE WHICH SDBMFP=SDBOMF
SDBMFP==:26			;MIN FREE PAGES BELOW WHICH DSKASA
				;CHANGES ASSIGNMENT ALGORITHM
SDBALS==:27			;Alias name
SDBUDB==:30			;FLAGS,,POINTERS TO UDB'S

SDBLN==:SDBUDB+MXSTRU		;LENGTH OF ONE SDB
RS SDBBL0,SDBLN			;STRUCTURE DATA BLOCK FOR PS
;STORAGE FOR RESIDENT FREE SPACE POOL

;PRIORITY LEVELS

	.RESP1==:0		;HIGHEST PRIORITY, ALWAYS TRY TO ASSIGN SPACE
				;NO PAGE FAULTS ALLOWED
	.RESP2==:1		;SECOND LEVEL, NO PAGE FAULTS ALLOWED
				;BUT DONT ASSIGN SPACE IF BELOW RESMIN
	.RESP3==:2		;PROCESS CONTEXT. PAGE FAULTS ALLOWED.
				;LOCK DOWN MORE SPACE IF NECESSARY

;POOL NUMBERS. NOTE: POOL NUMBERS START AT 1, SO THAT WE CAN DETECT
;INADVERTENT ZEROING OF POOL NUMBERS IN FREE SPACE. OFFSET 0 IN THE
;TABLES IS UNUSED.

	.RESGP==:1		;GENERAL POOL
	.RESTP==:2		;TERMINAL POOL - USED ONLY BY TTYSRV
	.RESNP==:3		;NETWORK POOL - USED BY NSPSRV/DECnet-36
	.RSTMP==:4		;TIMER POOL - USED ONLY BY TIMER%
	.RESUP==:5		;UNITS POOL - USED BY PHYSIO AND DSKALC

	RESQTL==:6		;NUMBER OF POOLS OF RESIDENT FREE SPACE
				; USED FOR ALLOCATION OF QUOTA TABLE

;QUOTAS FOR EACH OF THE POOLS.

	.RESGQ==:1400		;GENERAL QUOTA - UNEXTENDED SYSERR AND CTY LDB
	.XREGQ==:7000		;GENERAL QUOTA EXTENDED
	.RESTQ==:600		;TERMINAL QUOTA - CTY DYNAMIC DATA AND SENDALLS
	.XRETQ==:44*ACTLNS	;TERMINAL QUOTA EXTENDED SECTION - TERMINAL BLOCKS
IFN FTNSPSRV,<			;DECNET QUOTA - USED BY NSPSRV
	.RESNQ==:<^D40*44>+<^D20*33>+<12*30>+<^D10*<4*120>>+<^D15*<4*50>>
	.XRSNQ==:0		;No extended quota for NSPSRV
>
;<40 SRV LL BLOCKS>+<20 DCN LL BLOCKS>+<12 ACK BUFFERS>+<10 ACTIVE LINKS WITH
;4 FULL SEGMENTS EACH>+<15 ACTIVE LINKS WITH 4 SMALL SEGMENTS EACH>

IFE FTNSPSRV,<
	IFN NETN,<.RESNQ==:5000>;xxxxxx temp hack for tcp
	IFE NETN,<.RESNQ==:^D300*4>	;QUOTA FOR MCB DTEs
  IFN FTD36MM,<
	.XRSNQ==:0		;If using DECnet-36 memory manager then
  >				; then no quota in extended pool
  IFE FTD36MM,<
;**;[7382] Change 1 line at .SRSNQ==: + 0 L	JDM	nn-Oct-86
	.XRSNQ==:^D105*^D512	;[7282]Quota for DECnet-36 extended pool
  >
>
	.RSTMQ==:0		;TIMER QUOTA IN SECTION 0
	.XRTMQ==:3*^D8*NJOBS	;TIMER QUOTA EXTENDED - 3 per job, 8 words each
	NDG .RESUQ,17500	;UNITS QUOTA - USED BY PHYSIO AND DSKALC
				;   FOR UDBS, CDBS, KDBS, AND SDBS.
	.XREUQ==:200		;UNITS QUOTA EXTENDED (USED BY PHYMVR)

;Total amount of free space is sum of the parts (100% allocation).

NRESFP==:<.RESGQ+.RESTQ+.RESNQ+.RSTMQ+.RESUQ>/1000 ;Total length in pages
  IFL NRESFP-10,<NRESFP==:10>	;ENSURE MINIMUM VALUE
	NRESFB==:NRESFP*PGSIZ/4	;NUMBER OF RESIDENT FREE 4 WORD BLOCKS
XNREFP==:<.XREGQ+.XRETQ+.XRSNQ+.XRTMQ+.XREUQ>/1000 ;Total in extended section
	XNREFB==:XNREFP*PGSIZ/4	;NUMBER OF 4-WORD BLOCKS IN EXTENDED SECTION

;Allocate free space

NRP RESFRP,<NRESFP*PGSIZ>	;RESERVE SPACE FOR RESIDENT FREE POOL

	RESFRZ==:RESFRP+<NRESFP*PGSIZ>-1 ;END OF RESIDENT FREE POOL
	RESBTL==:<NRESFP*PGSIZ/4+^D35>/^D36 ;LENGTH OF BIT TABLE

NRPE XREFRP,XNREFP*PGSIZ	;Extended free space
NRPE XREFRZ,0			;End of extended free space
	XREBTL==:<XNREFP*PGSIZ/4+^D35>/^D36 ;LENGTH OF BIT TABLE

XREBTB==:RESBTB+RESBTL+1 	;Extended bit table on same page with RESBTB

;MISCELLANEOUS VALUES FOR RESIDENT FREE SPACE

	RESFRM==:1000/4		;BLOCKS GUARANTEED FOR .RESP1 REQUESTS
	RESFRA==:10000/4	;MINIMUM AMOUNT OF FREE SPACE MAINTAINED
				;BY JOB 0

  IFN FTD36MM,<
	RSXFRA==:10000/4	;Minimum amount of free space maintained
  >				; by job 0 for extended free space
  IFE FTD36MM,<
	RSXFRA==:10000		;More minimum if DECnet is using extended
  >				; resident free space

;RESIDENT STORAGE FOR RESIDENT FREE SPACE MANAGER

RSI RESIFL,<-1>			;INITIALIZATION FLAG = -1 DURING STARTUP
RSI XRESFL,<-1>			;-1 until we can assign extended addresses
COMMENT *

Offset	Old	Meaning

.REBAS	RESBAS	Starting address of free space
.REEND	RESFRZ	Address of last word of free space
.RETOT	NRESFB	Total size of free space in blocks
.REPR1	RESMIN	If remaining space less than this, allocate only priority 1
.REGRO	RESAVE	If remaining space less than this, grow free space (larger than .REMIN)
.REBTB	RESBTB	Address of start of bit table
.REBTL	RESBTL	Length of bit table (words)
.RETFR	RESFRE	Total remaining unallocated blocks
.REFFB	RESFFB	Number of block just past end of free space
.REPMX	RESQTL	Number of pools
.REQTA	RESQTB	Address of block containing quota for each pool
.REPFR	RESUTB	Address of block containing count of unallocated blocks per pool
*


;Blocks containing figures for each pool. Initial values show all blocks
;to be free

RSI RESQTB,<0,.RESGQ/4,.RESTQ/4,.RESNQ/4,.RSTMQ/4,.RESUQ/4>
RSI RESFRB,<0,.RESGQ/4,.RESTQ/4,.RESNQ/4,.RSTMQ/4,.RESUQ/4>
RSI XREQTB,<0,.XREGQ/4,.XRETQ/4,.XRSNQ/4,.XRTMQ/4,.XREUQ/4>
RSI XREFRB,<0,.XREGQ/4,.XRETQ/4,.XRSNQ/4,.XRTMQ/4,.XREUQ/4>


;Tables that describe each area of resident free space. RES0TB describes
;free space allocated in section 0/1

RSI RES0TB,<RESFRP,RESFRZ,NRESFB,RESFRM,RESFRA,RESBTB,RESBTL,0,0,RESQTL,RESQTB,RESFRB>
RSI RESNTB,<XREFRP,XREFRZ,XNREFB,RESFRM,RSXFRA,XREBTB,XREBTL,0,0,RESQTL,XREQTB,XREFRB>
INTERN NDEV,DVXTT0

; Initial device tables used to initialize the working device tables

;CHARACTERISTICS DEFINITIONS AND MODE DEFINITIONS

DSCHR==DV%OUT!DV%IN!DV%DIR!DV%MDD
STRCHR==DV%OUT!DV%IN!DV%DIR!DV%MDD
DSCH1==0
STRCH1==0
DSMOD==DV%M0!DV%M1!DV%M2!DV%M3!DV%M4!DV%M5!DV%M6!DV%M7!DV%M10!DV%M11!DV%M12!DV%M13!DV%M14!DV%M15!DV%M16!DV%M17

MTCHR==DV%OUT!DV%IN!DV%AS
MTCH1==0
MTMOD==DV%M0!DV%M17

DTCHR==DV%MDV!DV%OUT!DV%IN!DV%DIR!DV%AS
DTCH1==0
DTMOD==DV%M0!DV%M17

   IFG FEN,<
FECHR==DV%IN!DV%OUT!DV%AS
FECHR1==0
FEMOD==DV%M0>

PRCHR==DV%IN!DV%AS
PRCH1==0
PRMOD==DV%M0!DV%M1!DV%M10!DV%M13!DV%M14

PPCHR==DV%OUT
PPPCHR==DV%OUT!DV%AS
PPCH1==D1%SPL
PPPCH1==0
PPMOD==DV%M0!DV%M1!DV%M10!DV%M13!DV%M14

VBCHR==DV%OUT!DV%IN!DV%AS
VBCH1==0
VBMOD==DV%M0!DV%M17


   IFG CDRN,<
CDRCHR==DV%IN!DV%AS
CDRCH1==0
CDRMOD==DV%M0!DV%M10
   >
LPCHR==DV%OUT
PLPCHR==DV%OUT!DV%AS
LPCH1==D1%SPL
PLPCH1==0
LPMOD==DV%M0

CRCHR==DV%IN
CRCH1==D1%SPL
CRMOD==DV%M0

CPCHR==DV%OUT			;SPOOLED CARD PUNCH
CPCH1==D1%SPL
CPMOD==DV%M0+DV%M10

PCPCHR==DV%OUT!DV%AS			;PHYSICAL CARD PUNCH
PCPCH1==0
PCPMOD==DV%M0

TTYCHR==DV%OUT!DV%IN!DV%AS
TTYCH1==0
TTYMOD==DV%M0!DV%M10

PTYCHR==DV%OUT!DV%IN!DV%AS
PTYCH1==0
PTYMOD==DV%M0

NULCHR==DV%OUT!DV%IN
NULCH1==0
NULMOD==DV%M0!DV%M1!DV%M2!DV%M3!DV%M4!DV%M5!DV%M6!DV%M7!DV%M10!DV%M11!DV%M12!DV%M13!DV%M14!DV%M15!DV%M16!DV%M17

TCPCHR==DV%OUT!DV%IN!DV%DIR
TCPCH1==0
TCPMOD==DV%M0!DV%M1!DV%M2!DV%M3!DV%M4

PLCHR==DV%OUT
PPLCHR==DV%OUT!DV%AS
PLCH1==D1%SPL
PPLCH1==0
PLMOD==DV%M0

DLXCHR==DV%IN!DV%OUT!DV%AS
DLXCH1==0
DLXMOD==DV%M0

DCNCHR==DV%IN!DV%OUT
IFN FTNSPSRV,<
DCNCH1==0
>
IFE FTNSPSRV,<
DCNCH1==D1%MTO
>
DCNMOD==DV%M0!DV%M1

;DEFINITIONS FOR APPLICATIONS TERMINALS

ATSCHR==DV%IN!DV%OUT
ATSCH1==0
ATSMOD==DV%M0

;DEFINITIONS FOR CMA DEVICE (AYDIN DISPLAY)
CMCHR==DV%OUT!DV%AS
CMCH1==0
CMMOD==DV%M17

;NFT DEVICE

NFTCHR==DV%OUT!DV%IN!DV%DIR!DV%MDD
NFTCH1==0
NFTMOD==DV%M0
DEFINE DV (NAME,UNITS,TYPE,DISP,CHAR1,CHAR2,MODES,CHAR3)<
	SIXBIT /NAME/
	XWD NDEV,DISP
	EXP CHAR1!<TYPE>B17!MODES
	EXP CHAR2+CHAR3+UNITS
   IFE UNITS,<NDEV==:NDEV+1>
NDEV==:NDEV+UNITS>
DVTSTP==:4			;STEP SIZE FOR INIDVT TABLE

;DEVICE INITIALIZATION TABLE (LOADED IN SWAPPABLE CODE SEGMENT)

NDEV==:0

INIDVT::
	DV(DSK,0,0,DSKDTB,DSCHR,DSCH1,DSMOD,0) ;DSK ALWAYS EXISTS
	DVXST0==:NDEV
	DV(STR,STRN,0,DSKDTB,STRCHR,STRCH1,DSMOD,0)
	DVXSTN==:NDEV
IFG MTAN,<
	DV(MTA,MTAN,2,MTADTB,MTCHR,MTCH1,MTMOD,0) ;MAGTAPE
	DV(MT,MTAN,2,MTDTB,MTCHR,MTCH1,MTMOD,DV%PSD)>	;MT (FOR USER)
IFG DTAN,<
	DV(DTA,DTAN,3,DTADTB,DTCHR,DTCH1,DTMOD,0)> ;DECTAPE
IFG PTRN,<
	DV(PTR,PTRN,4,PTRDTB,PRCHR,PRCH1,PRMOD,0)> ;PTR
IFG SPTPN,<
	DV(PTP,0,5,SPLDTB,PPCHR,PPCH1,PPMOD,0) ;SPOOLED PTP
	DV(PTP,SPTPN,5,SPLDTB,PPCHR,PPCH1,PPMOD,0)> ;SPOOLED PTP UNITS
IFG PTPN,<
	DV(PPTP,PTPN,5,PTPDTB,PPPCHR,PPPCH1,PPMOD,0)> ;PTP
IFG VBCN,<
	DV(VBC,0,6,VBCDTB,VBCHR,VBCH1,VBMOD,0)> ;VB10 DISPLAY
IFG CMAN,<
	DV(CMA,CMAN,.DVADS,CMADTB,CMCHR,CMCH1,CMMOD,0)> ;AYDIN DISPLAY
	DV(LPT,0,7,SPLDTB,LPCHR,LPCH1,LPMOD,0) ;SPOOL LPT ALWAYS EXISTS
IFG LPTN,<
	DV(LPT,LPTN,7,SPLDTB,LPCHR,LPCH1,LPMOD,0)> ;SPOOLED LPT UNITS
	DVXLP0==:NDEV
IFG LPTN,<
	DV(PLPT,LPTN,7,LPTDTB,PLPCHR,PLPCH1,LPMOD,0)> ;PHYSICAL LPT
	DV(CDR,0,10,SPLDTB,CRCHR,CRCH1,CRMOD,0)	;SPOOLED CDR
IFG CDRN,<
	DVXCD0==:NDEV
	DV(PCDR,CDRN,10,CDRDTB,CDRCHR,CDRCH1,CDRMOD,0)> ;PCDR
IFG CDPN,<
	DV(CDP,0,21,SPLDTB,CPCHR,CPCH1,CPMOD)> ;SPOOLED CDP
IFG PCDPN,<
	DV(PCDP,PCDPN,21,CDPDTB,PCPCHR,PCPCH1,CPMOD)>	;PHYSICAL CDP
IFG FEN,<
	DV(FE,FEN,11,FEDTB,FECHR,FECHR1,FEMOD,0)>	;THE FE DEVICES
	DVXTT0==:NDEV			;SAVE DEV TABLE INDEX OF FIRST TTY
	DV(TTY,NLINES,12,TTYDTB,TTYCHR,TTYCH1,TTYMOD,0) ;TTYS ALWAYS EXIST
IFG NTTPTY,<
	DV(PTY,NTTPTY,13,PTYDTB,PTYCHR,PTYCH1,PTYMOD,0)> ;PSEUDO TTY
	DV(NUL,0,15,NILDTB,NULCHR,NULCH1,NULMOD,0) ;THE NULL DEVICE
IFG SPLTN,<
	DV(PLT,0,17,SPLDTB,PLCHR,PLCH1,PLMOD,0) ;SPOOLED PLOTTER
	DV(PLT,SPLTN,17,SPLDTB,PLCHR,PLCH1,PLMOD,0)> ;SPOOLED PLT UNITS
IFG PLTN,<
	DV(PPLT,PLTN,17,PLTDTB,PPLCHR,PPLCH1,PLMOD,0)> ;PLOTTER
IFG DLXN,<
	DV(DLX,DLXN,20,DLXDTB,DLXCHR,DLXCH1,DLXMOD,0)> ;DL10
IFG DCN,<
	DV(DCN,0,22,DCNDTB,DCNCHR,DCNCH1,DCNMOD,0)
	DV(SRV,0,23,SRVDTB,DCNCHR,DCNCH1,DCNMOD,0)>
IFN ATS,<
	DV(ATS,0,24,ATSDTB,ATSCHR,ATSCH1,ATSMOD,0)> ;APPLICATIONS TERMINALS
IFN NFT,<
	NFTIDX==:NDEV		;DEVICE INDEX FOR NFT
	DV(NFT,0,24,NFTDTB,NFTCHR,NFTCH1,NFTMOD,0)>
IFN NETN,<DV(TCP,0,25,TCPDTB,TCPCHR,TCPCH1,TCPMOD,0)>

	BLOCK 2*DVTSTP		;LEAVE ROOM TO PATCH 2 DEVICES
NINIDV==:.-INIDVT

NDEV=NDEV+2			;LEAVE ROOM TO PATCH 2 DEVICES

RS(DEVL0K,LOKLEN)			; Lock for assigning devices
NR(DEVNAM,NDEV)			; Sixbit device name
NR(DEVCHR,NDEV)			; Device characteristics
NR(DEVCH1,NDEV)			;DEV CHAR WORD # 2
NR(DEVCH2,NDEV)		; DIR NUMBER OF SPOOL DIRECTORY
NR(DEVDSP,NDEV)			; Lh = ofn if any, rh = dispatch table address
RS(DEVUNT,NDEV)			; Lh = job of assigner, rh = unit number
;PARAMETERS AND STORAGE FOR ACCOUNT VALIDATION

NR ACTOFN,1		;OFN FOR <SYSTEM>ACCOUNTS-TABLE.BIN
NR ACTPGN,1		;FILE PG # MAPPED INTO ACCOUNT WINDOW PAGE
NR ACTLCK,1		;LOCK FOR HASH TABLE AND ACCOUNT WINDOW PAGE
NR AVALON,1		;ACCOUNT VALIDATION RUNNING IF NONZERO

NRP(HSHPG,PGSIZ)	;HASH TABLE PAGE
NRP(ACTPG,PGSIZ)	;ACCOUNT WINDOW PAGE

HASHLN==:PGSIZ-1		;# OF HASH VALUES FOR ACCOUNT VALIDATION
;PARAMETERS AND DATA STORAGE FOR CNFIG% JSYS

CFGWD==0
IFN DCN,<
	CFGWD==CFGWD+CF%DCN
>
IFN CFSSCA,<
	CFGWD==CFGWD+CF%CFS
>
IFN NETN,<
	CFGWD==CFGWD+CF%ARP
>

CNFGWD:: EXP CFGWD

; DUMMY ROUTINES FOR CNFIG% JSYS WHEN CFS INFORMATION NOT AVAILABLE

IFE CFSSCA,<

CFCIN::
CFCSE::
CFCND::	ITERR (CFGINA)		;CFS INFORMATION NOT AVAILABLE
>
;PARAMETERS AND DATA STORAGE FOR IPCF,ENA, AND NETWORK STRINGS

ENQBKS==:6			;ENQ/DEQ BLOCK SIZE (OPTIMUM)
HSHLEN==:3*NJOBS		;LENGTH OF ENQ/DEQ HASH TABLE
ENQFSZ==:HSHLEN*ENQBKS*2	;FREE SPACE FOR ENQ/DEQ
PDFKTL==:<NFKS+^D35>/^D36	;LENGTH OF FORK BIT TABLE

PIDHDS==:6			;LENGTH OF PID HEADER
MESHDS==:7+MAXLW+WPN		;LENGTH OF MESSAGE HEADER
				; (SEE MESALN, MESLLN IN IPCF.MAC)
PAGMSZ==:MESHDS+3		;LENGTH OF PAGE MESSAGE
MAXMSL==:^D30			;MAXIMUM LENGTH OF A NON-PAGE MESSAGE
MAXSMS==:^D60			; Maximum system packet size
MINPHL==:4			;MINIMUM SIZE OF PID DESCRIPTOR BLOCK
SWOPTL==:MESHDS+^D12		;OPTIMAL LENGTH OF FREE STORAGE BLOCK
PIDSSQ==:^D20			;STANDARD SEND QUOTA
PIDSRQ==:^D20			;STANDARD RECEIVE QUOTA
PIDSPQ==:5			;PID QUOTA, MAXIMUM PIDS ALLOWED PER NON-PRIVILEGED JOB
PIDSPJ==:2			;PIDS GUARANTEED PER JOB IF NONE USE MORE
IPCCFL==:<.IPCCC>B32		;FLAGS USED WHEN SENDING AN IPCC
				;   REQUEST TO INFO

MAXPID==:NJOBS*PIDSPJ		;HIGHEST POSSIBLE PIDTBL INDEX (0 ISN'T USED AS AN INDEX)
PIDTBS==:1+MAXPID		;NUMBER OF WORDS NEEDED FOR PIDTBL
IPCFSZ==:MAXPID*<PIDHDS+SWOPTL>*2 ;FREE SPACE SIZE (1 MESS/PID)
;****TEMP
PDFREL==:IPCFSZ
ENFREL==:ENQFSZ
;****TEMP

SRVSPC==^D32
DCNSPC==^D15
MAXBLK==:0
IFN DCN,<
IFN FTNSPSRV,<
 ;STRING SPACE FOR NETWORK CONNECTIONS (NSPSRV)
MAXBLK==:<SRVSPC*^D60+DCNSPC*^D40>+3000
>;END IFN FTNSPSRV
>;END IFN DCN
DCNFSZ==:MAXBLK
ENQMXF==:ENQFSZ			;MAXIMUM ENQ FREE SPACE UTILIZATION
SWFREL==:10000			;SIZE OF OLD SWAPPABLE FREESPACE POOL
MAXPIT==:<SWFREL+PAGMSZ-1>/PAGMSZ ;MAXIMUM NUMBER OF PAGES IN TRANSIT
PIDPBL==:<MAXPIT+^D35>/^D36	;LENGTH OF PIT BIT TABLE
PIDFTL==:<MAXPIT+^D511>/^D512	;LENGTH OF PIT OFN TABLE

NR(PIDTBL,PIDTBS)		;PID TABLE HAS HALFWORD PER PID
				;  THE HALF WORD POINTS TO THE HEADER
				;  OF THE PID IF IT EXISTS

	SPDTBL==:15		;LENGTH OF SYSTEM PID TABLE SET BY USERS
NR(SPIDTB,SPDTBL)		;TABLE OF COMMONLY USED PIDS

NR(PIDL0K,LOKLEN)			;LOCK ON PID FREE POOL AND DATA STRUCT.
NR(PIDPRT,1)			;Local CFS port ID
NR(NXTPID,1)			;NEXT UNIQUE # TO BE USED AS LH OF PID
NR(INFOPD,1)			;PID OF SYSTEM INFO
NR(INFOPV,1)			;PUBLIC VALUE OF SYSTEM INFO PID
NR(PIDLST,1)			;NUMBER OF FIRST FREE PID, 0 IF NONE

NR(PIDMXP,1)			;HIGHEST PAGE IN PAGES-IN-TRANSIT FILE
NR(PIDPBT,PIDPBL)		;BIT TABLE OF PAGES-IN-TRANSIT FILE
NR(PIDFTB,PIDFTL)		;TABLE OF PTN'S OF FORKS FOR PAGES IN TRANSIT

NR(SWPFRE,7)			;OLD FREESPACE DEFINITIONS
NR(SWFREE,SWFREL)

NR(PIDCNT,NJOBS)		;TABLE OF QUOTAS AND COUNTS FOR IPCF

RS(PDFKTB,PDFKTL)	;ONE BIT PER FORK, WAKE UP TABLE
COMMENT *


	Macro arguments for FSPPL.
	POOLNM		3-char pool mnemonic (becomes xxxFSP, xxxFSX)
	ADRSEC		Flag indicating if pool should be in section zero
	POOLSZ		Size in words of freepool
	HDRSIZ		Header size.  minimum = 2, maximum = FSPBHS
	TRLSIZ		Trailer size.  Any size .LE. HDRSIZ
	MINBLK		Minimum user block size.  Minimum = 0 (no minimum)
			Maximum = POOLSZ
	BLKACC		0=No block accounting, 1=do block accounting
	POOLAD		Optional pool address (when space defined elsewhere)
	HSBSIZ		# of transactions storable in the history buffer
	FLAGS
	*  ;End comment
   IFE FSPDBG,<
	HSBRC==0	;;No history records
   >

   IFN FSPDBG,<
	ENQFSZ==:ENQFSZ*3  ;;Up pool sizes to allow for long headers/trailers
	IPCFSZ==:IPCFSZ*3
	DCNFSZ==:DCNFSZ*3
	HSBRC==FSPHRC	   ;;This many history records
   >

  MAKRM. (FSPOL.,FSP.PL)	;;Remote macro for pool space
  MAKRM. (FSPDS.,FSP.DS)	;;Remote macro for pool descriptors

;Macro to define freespace pools
DEFINE FSPPL. (POOLNM,ADRSEC,POOLSZ,HDRSIZ,TRLSIZ,MINBLK,BLKACC,POOLAD,HSBSIZ,FLAGS)
<
IFE POOLAD,
<
	;;Build the pool
IFE ADRSEC-.XTND.,<
  FSPOL. <
    NRE (<POOLNM'DMY>,FSPDHS)	;;Reserve space for dummy header
    NRE (<POOLNM'FSP>,POOLSZ)	;;Reserve space for pool in ext section
    NRE (<POOLNM'BAR>,.FSPB.)	;;Create a barrier
    >				;;End remote macro FSPOL.
  >
IFE ADRSEC-.ZERO.,<
  FSPOL. <
    NR (<POOLNM'DMY>,FSPDHS)	;;Reserve space for dummy header
    NR (<POOLNM'FSP>,POOLSZ)	;;Reserve space for pool in sec zero
    NR (<POOLNM'BAR>,.FSPB.)	;;Create a barrier
    >				;;End remote macro FSPOL.
  >
 >

  FSPDS. <
  PADDR==POOLNM'FSP		;;Get pool address
  IFN POOLAD,<PADDR==POOLAD>	;;Get pool address if already supplied

	;;Reserve space for debugging areas
    IFN BLKACC,<NRE (POOLNM'BAC,FSPCBS)> ;;Space for block accounting
    IFG HSBSIZ,<RSE (POOLNM'HSB,HSBSIZ*FSPHRS)> ;;History Buffer
	;;Build the descriptor
	.PSECT RSDAT		;;Enter appropriate PSECT
    POOLNM'DES::FLAGS		;;Pool descriptor flags
    0				;;Pool lock (locked)
    PADDR			;;Pool origin
    PADDR+POOLSZ-1		;;Pool end
    POOLSZ			;;Space remaining
    POOLSZ			;;Smallest freespace balance achieved so far
    IFN BLKACC,<POOLNM'BAC>	;;Pointer to request accounting area
    IFE BLKACC,<0>		;; No accounting area
    MINBLK+HDRSIZ+TRLSIZ	;;Minimum total block size
    PADDR			;;Pointer to first free block
    PADDR			;;Randomized pointer to first free block
    HDRSIZ			;;Header size
    TRLSIZ			;;Trailer size
    HDRSIZ+TRLSIZ		;;Combined header and trailer size
    IFGE <HDRSIZ-TRLSIZ>,<TRLSIZ>;;Assemble smaller of HDRSIZ or TRLSIZ
    IFG <TRLSIZ-HDRSIZ>,<HDRSIZ>;;...
    IFG HSBSIZ,<POOLNM'HSB>	;;Pointer to history buffer origin
    IFLE HSBSIZ,<0>		;;...
    HSBSIZ,,0			;;# of history records,,current index

	.ENDPS RSDAT
    >				;;End remote macro FSPDS.
  .PSECT RSDAT			;;Enter PSECT of FSPTAB
  RELOC FSPTAB+.FSPI.		;;Relocate to pool-descriptor index table
  POOLNM'DES			;;Generate pointer to pool descriptor
  RELOC
  .ENDPS RSDAT
  POOLNM'FSX==:.FSPI.		;;Definition for FSPTAB index
  .FSPI.==.FSPI.+1		;;Increment our index
>


;Macro to define all swappable free space pools
DEFINE BLDFP.
< 
	;;Address space flags
	.ZERO.==0		;;Use section zero
	.XTND.==1		;;Use extended section

	.NONE.==0		;;General purpose "null" argument

	;;Block accounting flag
	.ACCN.==1		;;Do block accounting

	.FSPI.==0		;;Reset FSPTAB index
	.FSPB.==5		;;Barrier length
;;The following specify the freepool characteristics:
;;     Pol| Adrs|  Pool|  Hdr | Trl  |Minim | Block|  Cur |
;;     Nam| Sect|  Size|  Size| Size |Size  | Acctn|  Pool| Flags
	;;ENQ/DEQ pool
FSPPL.(ENQ,.XTND.,ENQFSZ,FSPBHS,FSPBTS,     4,.ACCN.,.NONE.,HSBRC,FS.CHK)
	;;IPCF pool
FSPPL.(IPC,.XTND.,IPCFSZ,FSPBHS,FSPBTS,     4,.ACCN.,.NONE.,HSBRC,FS.CHK)
	;;DECnet pool
FSPPL.(DCN,.XTND.,DCNFSZ,FSPBHS,FSPBTS,     4,.ACCN.,.NONE.,HSBRC,FS.CHK)

FSP.DS				;;Generate pool descriptors
REPEAT .FSPB.,<0> 		;;Create barrier
FSP.PL				;;Generate pools
>
RSI (FSPTAB,,FSPTBL)		;Free pool index table
BLDFP.				;Build free-space database
; DEFAULT DEFINITIONS FOR GETOK

GT%DEF==77B11

NDG	DGOUSR,0!GT%DEF		;USER REQUESTS
NDG	DGOASD,SF%DOK!GT%DEF	;ASSIGN DEVICE
NDG	DGOCAP,SF%DOK!GT%DEF	;ENABLE CAPABILITIES
NDG	DGOCJB,SF%DOK!GT%DEF	;CREATE JOB
NDG	DGOLOG,SF%DOK!GT%DEF	;LOGIN
NDG	DGOFKN,5		;DEFAULT NUMBER OF FORKS BEFORE GETOK IS CALLED
NDG	DGOCFK,SF%DOK!GT%DEF+DGOFKN	;CREATE FORK
NDG	DGOTBR,SF%DOK!GT%DEF	;SET TERMINAL BAUD RATE
NDG	DGOLGO,SF%DOK!GT%DEF	;LOGOUT OVER QUOTA
NDG	DGOENQ,0!GT%DEF		;ENQ OVER QUOTA
NDG	DGOCRD,SF%DOK!GT%DEF	;CREATE DIRECTORY
NDG	DGOSMT,SF%DOK!GT%DEF	;INCREMENT MOUNT COUNT
NDG	DGOMDD,SF%DOK!GT%DEF	;ENTRY TO MDDT
NDG	DGOCLS,SF%DOK!GT%DEF	;SET CLASS
NDG	DGOCL0,SF%DOK!GT%DEF	;SET CLASS AT LOGIN ONLY
NDG	DGOMTA,0!GT%DEF		;NO ACCESS FOR MT'S
NDG	DGOACC,0!GT%DEF		;NO ACCESS
NDG	DGOOAD,SF%DOK!GT%DEF	;OPEN ASSIGNABLE DEVICE
NDG	DGODNA,SF%DOK!GT%DEF	;DECNET ACCESS
NDG	DGOANA,SF%DOK!GT%DEF	;ARPANET ACCESS
NDG	DGOATJ,SF%DOK!GT%DEF	;ATTACH

;DEFAULT TIMEOUT FOR GETOK

NDG	GIVTIM,200000		;GIVOK TIMEOUT TIMER
NDG	RCVTIM,200000		;RCVOK TIMEOUT TIMER

; STORAGE FOR GETOK,GIVOK,RCVOK

	.PSECT RSDAT

GTOKPR::DGOUSR		;ONE ENTRY PER LEGAL GETOK/GIVOK FUNCTION (THIS ENTRY IS USER REQUESTS)
	DGOASD		;ASSIGN DEVICE
	DGOCAP		;ENABLE CAPABILITIES
	DGOCJB		;CREATE JOB
	DGOLOG		;LOGIN
	DGOCFK		;CREATE FORK
	DGOTBR		;TERMINAL BAUD RATE
	DGOLGO		;LOGOUT WHEN DIR OVER QUOTA
	DGOENQ		;ENQ QUOTA SETTING
	DGOCRD		;CREDIR
	DGOSMT		;SMOUNT
	DGOMDD		;MDDT ENTRY
	DGOCLS		;SET CLASS FOR JOB
	DGOCL0		;SET CLASS AT LOGIN
	DGOMTA		;MT ACCESS
	DGOACC		;ENTRY FOR ACESS JSYS
	DGOOAD		;ASSIGN DEVICE VIA OPENF
	DGODNA		;DECNET ACCESS
	DGOANA		;ARPANET ACCESS
	DGOATJ		;ATTACH
MXGOKF==:.-GTOKPR	;SIZE OF TABLE

	SWAPCD

RS (GETOKF,1)		;ARGUMENT LIST POINTER
RS (GOKNRQ,1)		;REQUEST NUMBER FOR NEXT FREE NUMBER
RS (GOKQED,1)		;FLAG FOR Q'ED GETOK REQUESTS
RS (GOKLCK,1)		;LOCK FOR GETOK Q
RS (ACJJN,1)		;JOB NUMBER OF ACCESS CONTROL JOB
RS (ACJFN,1)		;FORK NUMBER OF ACCESS CONTROL JOB
RS (RCVTMO,1)		;RCVOK TIMEOUT TIME
;LOCAL STORAGE FOR ENQ/DEQ
ENFKTL==:<NFKS+^D35>/^D36	;LENGTH OF FORK BIT TABLE

NRE(HSHTBL,HSHLEN*2)		;HASH TABLE FOR ENQ LOCKS
				;(2 WORDS PER LOGICAL SLOT)
NR(ENQL0K,LOKLEN)			;DATA BASE LOCK FOR ENQ AND DEQ
NR(ENQSPC,1)			;COUNT OF FREE SPACE AVAILABLE FOR ENQ'S
NR(ENQLTL,1)			;FORWARD LONG-TERM LOCK LIST
NR(ENQLTS,1)			;TIME OF NEXT GARBAGE COLLECT

RS(ENFKTB,ENFKTL)		;WAKE UP TABLE - ONE BIT PER FORK

;LOCAL STORAGE FOR DIRECTORY LOCK ENQ/DEQ

LCKDBN==:<NFKS+^D35>/^D36	;LENGTH OF FORK BIT TABLE

RS LCKDBT,LCKDBN		;FORK BIT TABLE, ONE BIT PER FORK

; Local storage for TIMER

RS (TIMLCK,1)			; Lock on TIMER Q's
RS (TMLSTL,1)			;FORK THAT LAST LOCKED TIMLCK
RS (TIMMLQ,1)			; Elapsed time clock Q head
RS (TIMDTQ,1)			; Date & time clock Q head
RS (TMNSS,1)			; # times scheduler has scanned Q's
RS (TMMUSE,1)			; # milliseconds use by scheduler

;LOCAL STORAGE FOR PTY

RS PTYSTS,NTTPTY			;STATUS BITS

;STORAGE FOR CRJOB JSYS

NR (CRJAC1,1)			;CALLER'S AC1 FLAG BITS
NR (CRJACT,11)			;ACCOUNT FOR NEW JOB LOGIN (STRING)
RS (CRJANS,1)			;ANSWER CELL FROM SCHED OR EXEC0
RS (CRJCAM,1)			;CAP MASK TO APPLY AT LOGIN TIME
RS (CRJCPU,1)			;CPU TIME LIMIT
NR (CRJEVO,1)			;ENTRY VECTOR OFFSET FOR NEW JOB
NR (CRJEXF,1)			;EXEC FLAGS FOR NEW JOB
NR (CRJFAC,20)			;FORK'S AC'S FOR NEW JOB
NR (CRJFIL,40)			;FILE NAME TO RUN IN NEW JOB
RS (CRJJNO,1)			;JOB NUMBER, SET AT SCHED LEVEL
RS (CRJLCK,1)			;LOCK ON ALL THIS DATA, SCHED TESTED
NR (CRJOJC,1)			;OWNING JOB'S CAPABILITIES
NR (CRJONJ,1)			;OWNING JOB'S JOB NUMBER
NR (CRJPJF,1)			;PRIMARY JFNS FOR NEW JOB
NR (CRJPSW,10)			;LOGIN PASSWORD FOR NEW JOB
RS (CRJSLO,1)			;PID TO SIGNAL ON LOGOUT
RSI (CRJTTY,-1)			;REQUESTED TTY FOR NEW JOB
NR (CRJUSR,10)			;NAME STRING TO LOG NEW JOB IN AS
NR (JOBONT,NJOBS)		;OWNER OF THIS JOB IN RH, ELSE -1
				; ALSO, B1 MEANS JOB WANTS TO LOG OUT
IFG DTAN,<

; Private storage for dectapes

DTNBUF==3*DTAN+2			;Number of buffers is one for read
				;One for write, one for directory, and
				;2 more for double buffering 1st files
DTNBUF==:<DTNBUF+3>/4*4		;Round to next higher page boundary
NDBMSK==:-1_<^D36-3*DTAN>		;Mask for unavailble 2nd buffers

RS(DTALCK,DTAN)			;Lock word
RS(DTASTS,DTAN)			;Lh -- status bits (see below)
				;Rh -- directory location (0 if none)
RS(DTIBF1,DTAN)			;Bit 0 -- buffer busy
				;Bit 1 -- error in this buffer
				;Bits 2-11 -- next input block number
				;Bits 13-17 -- input file number
				;Rh -- location of input buffer 1
RS(DTIBF2,DTAN)			;Bit 0 -- buffer busy
				;Bit 1 -- error in this buffer
				;Bits 2-11 -- current block number
				;Bit 12 -- if doing a nop spacing (rew etc)
				;Bit 13 -- if unloading
				;BIT 14 -- WRITE LOCK CHECK REQUESTED
				;BIT 15 -- WRITE OK (NOT LOCKED OUT) AT LAST CHECK
				;BIT 16 -- ACCESS OK (SELECTED) AT LAST CHECK
				;BIT 17 -- LAST MOUNT REQUESTED NO DIR READ
				;Rh -- location of input buffer 2 (0 if none)
RS(DTOBF1,DTAN)			;Bit 0 -- buffer busy
				;Bit 1 -- error in this buffer
				;Bits 2-11 -- next output block number
				;Bit 12 -- last buffer
				;Bits 13-17 -- output file number
				;Rh -- location of output buffer 1
RS(DTOBF2,DTAN)			;Bit 0 -- buffer busy
				;Bit 1 -- error in this buffer
				;Bits 2-11 -- first block number of output file
				;Bit 12 -- last buffer
				;Rh -- location of output buffer 2 (0 if none)
RS(DTAPTR,DTAN)			;Temp pointer to directory entry
RS(DTAIOW,DTAN)			;Iowd during dead reckoning
RS(DTARKN,DTAN)			;Bit 0 -- dead reckoning for a write
				;Bit 1 -- going backward
				;Bits 8-17 -- block number
				;Rh -- chain to next dead reckoning unit (-1 if end)
RS(DTARCE,DTAN)			;Total error count
NRP(DTABUF,DTNBUF*200)		;Dectape buffers
   >				;END IFG DTAN
   IFG DLXN,<

	DLMASK==:100		;SIZE OF PDP-10 MEMORY BLOCK IN PDP-11
	DLNPIS==:20		;SIZE OF PI LEVEL STACK
	DLIMIN==:20		;MINIMUM SIZE OF INPUT BUFFER
	DLNOB==:2		;NUMBER OF OUTPUT BUFFERS
	DLNIB==:2		;NUMBER OF INPUT BUFFERS

;SIZE OF EACH OUTPUT BUFFER
	DLOBFL==:<DLOBFP*PGSIZ/<<DLXN+3>/4*4*DLNOB>>

DEFINE DLSTOR (X,Y)<
	X==:DLPC+DLBASE
IFB <Y>,<DLPC==DLPC+1>
IFNB <Y>,<DLPC==DLPC+Y>>

DLPC==0			;DEFINE AREAS USED BY PDP-11'S

DLSTOR(DLINTW)			;INTERRUPT VECTOR WORD
DLSTOR(DLUNIT)			;UNIT NUMBER OF THIS PDP-11
DLSTOR(DLOC11)			;COUNT OF OUTPUT BYTES FOR TO 11 TRANS
DLSTOR(DLOP11)			;POINTER TO OUTPUT BUF FOR TO 11 TRANS
DLSTOR(DLIC11)			;COUNT OF BYTES IN INPUT BUF FOR TO 10
DLSTOR(DLIP11)			;POINTER TO INPUT BUF FOR TO 10 TRANS

DLPC==DLXN*DLMASK		;NOW DEFINE LOCAL STORAGE

DLSTOR(DLUBAS,0)		;START OF PER 11 LOCAL STORAGE AREA

DLSTOR(DLXSTS,DLXN)		;STATUS WORD
DLSTOR(DLXPNT,DLXN)		;LH=INITIAL BYTE POINTER, RH = S-FIELD
DLSTOR(DLXOCT,DLXN)		;COUNT OF BYTES IN A FULL OUTPUT BUF
DLSTOR(DLXICT,DLXN)		;COUNT OF BYTES IN A FULL INPUT BUF
DLSTOR(DLXBPW,DLXN)		;BYTES PER WORD
DLSTOR(DLOCNT,DLXN)		;# OF BYTES LEFT TO FILL OUTPUT BUFFER
DLSTOR(DLOPNT,DLXN)		;POINTER TO 10 OUTPUT BUFFER
DLSTOR(DLICNT,DLXN)		;# OF BYTES LEFT TO EMPTY BUFFER
DLSTOR(DLIPNT,DLXN)		;POINTER TO 10 INPUT BUFFER
DLSTOR(DLOBCT,DLXN)		;# OF FULL OUTPUT BUFFERS
DLSTOR(DLIBCT,DLXN)		;# OF FULL INPUT BUFFERS
DLSTOR(DLON11,DLXN)		;NEXT OUTPUT BUF TO BE GIVEN TO 11
DLSTOR(DLIN11,DLXN)		;NEXT INPUT BUF TO GIVE TO 11 TO FILL
DLSTOR(DLON10,DLXN)		;NEXT OUTPUT BUF TO BE FILLED BY 10
DLSTOR(DLIN10,DLXN)		;NEXT INPUT BUF TO BE GIVEN TO 10 USER
DLSTOR(DLOBFC,<DLNOB*DLXN>)	;# OF BYTES IN EACH OUTPUT BUFFER
DLSTOR(DLIBFC,<DLNIB*DLXN>)	;# OF BYTES IN EACH INPUT BUFFER
DLSTOR(DLXIMP,<<DLXN+3>/4*20>)	;4 WORD BLOCKS USED BY XPCW ON INTERRUPTS
DLSTOR(DLAC,5)			;PLACE TO STORE ACS DURING AN INTERRUPT
DLSTOR(DLACP,1)			;PLACE TO STORE P DURING INTERRUPTS
DLSTOR(DLPISK,DLNPIS)		;INTERRUPT LEVEL STACK

DLIBUF==:DLPC+DLBASE			;END OF LOCAL STORAGE
DLIBFL==:<PGSIZ*DLIBFP-DLPC>/<DLNIB*DLXN> ;REST OF PAGE IS FOR INPUT BUFFERS

IFL DLIBFL-DLIMIN,<PRINTX ?NOT ENOUGH ROOM FOR INPUT BUFFERS!>
   >				;END OF IFG DLXN
;STORAGE FOR CMA DEVICES (AYDIN DISPLAY)

  IFG CMAN,<

RS(DRBACS,20)			;STORAGE TO SAVE AC'S
	LCMAPD==:55		;LENGTH OF PDL
RS(CMAIPD,LCMAPD)		;INTERRUPT PDL
RS(CMALCK,CMAN)			;LOCK FOR DEVICE DATA BASE
RS(CMASTS,CMAN)			;STATUS
RS(CMINDX,1)			;COUNT OF CMA DEVICES
RS(CMOWNR,CMAN)			;OWNING FORK,,DR11-B BLOCK ADDRESS
RS(CMALAE,CMAN)			;LAST AYDIN ERROR
RS(CMAERC,CMAN)			;AYDIN ERROR INFO

	CMBUFN==:2		;NUMBER OF IORBS/BUFFERS
	MAXPPT==:20		;MAXIMUM PAGES PER BUFFER
				;.ALSO MAX PER DUMPI/O AND
				;EQUALS SIZE OF UBA WINDOW
	XRBLEN==:5+MAXPPT		;ALSO IN CMAPAR
	CMXLST==:XRBLEN		;START OF TRANSFER LIST
	CMIRBL==:CMXLST+MAXPPT+1 ;TOTAL LENGTH OF IORB
	CMABFL==:CMAN*CMBUFN*CMIRBL ;STORAGE REQUIRED FOR IORB'S
RS(CMXORB,CMABFL)		;STORAGE FOR IORB'S
	DRCHNN==:2		;MAX DR11-B'S (ALSO IN CMAPAR)
	DRBLEN==:21		;ALSO IN CMAPAR
CMDRBL==:DRBLEN*DRCHNN	;STORAGE REQUIRED FOR DR11B BLOCKS
RS(CMADRB,CMDRBL)		;STORAGE FOR DR11-B BLOCKS
RS(DRBTAB,DRCHNN)		;ADDRESSES OF DR11-B BLOCKS

NR(CMANR1,CMAN)			;CURRENT,,LAST XORB
NR(CMANR2,CMAN)			;LAST TRANSFER WORD COUNT,,LAST
NR(CMANR3,CMAN)			;LAST FUNCTION,NUMBER OF XORB'S QUEUED
NR(CMANR4,CMAN)			;FREE XORB'S LIST FOR UNIT
				;DUMP MODE IORB ADDRESS
NR(CMAPNM,CMAN)			;PROGRAM NAME
NR(CMAUDR,CMAN)			;USER DIRECTORY
  > ;END OF IFG CMAN

COMMENT \
Remove this storage which is never referanced by the new LCS (really CISRV)
shared memory driver.
;STORAGE FOR LCS MEMORY DRIVER

MEMLOW==:2,,0			;BOTTOM OF MEMORY
MEMHI==:2,,177000		;TOP OF SHARED MEMORY
RS MEMBOT,1			;BOTTOM OF SHARED MEMORY
RS MEMTOP,1			;TOP OF SHARED MEMORY
RS NEWNOD,1			;NUMBER OF NODES COUNT FOR NEW ARRIVING PORTS
RS OURNOD,1			;HOLDS OUR SHARED MEMORY NODE NUMBER
RSI MMALRM,<.+1,0>,2		;SHARED MEMORY ALARM
\;End COMMENT
	SWAPCD
;STORAGE FOR DECNET

   IFG DCN,<			;ONLY IF DECnet PRESENT
NDG NODNUM,100			;DEFAULT NODE NUMBER
OBJMAX==:377			;MAX # OF OBJECTS
DECOBJ==:177			;MAX OBJECT # RESERVED TO DEC
NR OBJTBL,OBJMAX+1		;GENERATE LOOK UP TABLE
NR LASTSK,1			;WORD FOR GENERATING RANDOM TASK NAMES
NR BLKASG,1			;AMOUNT OF SWAPPABLE STRING SPACE NOW ASSIGNED
				;  (left in under IFE FTNSPSRV for SYSDPY)
MCPRON==:.VNMCB			;MCB PROTOCOL IF DCN ASSEMBLED IN
NDG DCOPNM,4			;MAX LINKS PER JOB FOR NO PRIVILEGES
RS DNASTA,1			;DECNET STATUS WORD
RSI OURNAM,<ASCII /TOPS20/>,WPN	;SPACE TO HOLD LOCAL NODE NAME
RSI OURCNT,6			;COUNT OF CHARS IN "OURNAM"

IFN FTNSPSRV,<			;ONLY IF RELEASE 6.0 OR EARLIER

RS RESNET,1			;DECNET RESIDENT FREE SPACE THRESHOLD FLAG
				; 0 = LOTS OF SPACE LEFT, 1 = WE'RE LOW ON SPACE
RS LLLLCK,1			;LL TREE LOCK
MAXEXP==:7			;EXP FOR MAXIMUM LL ADDRESS
MAXLNK==:1_<MAXEXP>-1		;GENERATE LARGEST LL ADDRESS
RS OURNUM,1			;LOCAL NODE NUMBER
NR ITSNAM,<DCN*2>		;MCB'S NODE NAME
LLBIT==:<MAXLNK+1+43>/44	;WORDS IN LL ADDRESS BIT TABLE
NR LLBITS,LLBIT			;BIT TABLE FOR AVAILABLE LINK INDEXES
RS LLIDS,MAXLNK+1		;THE LOGICAL LINK ADDRESS TABLE
RS LLNUM,1			;NUMBER OF LINKS IN USE
NR NODLOK,1			;LOCK ON NODTBL
AKLSTL==:12			;LENGTH OF ACKLST
RS ACKLST,AKLSTL		;LIST OF NSP ACK BUFFERS
RS LLSRVQ,2			;"LL NEEDS SERVICE" QUEUE HEAD AND TAIL
RS LSTLLS,1			;LAST TIME LOGICAL LINKS WERE SERVICED BY SCHEDULER
RS NSSNTQ,1			;NSP "SENT MESSAGE" TIMER QUEUE
RS INNSPT,1			;"IN NSP TIMER" FLAG
RS INNSPI,1			;"IN NSP INACTIVITY TIMER" FLAG
;RS OUTQUE,1			;BACKGROUND TASK'S "OUTPUT REMAINING" QUEUE
;NR OUTLOK,1			;LOCK ON OUTQUE
;RS OUTTIM,1			;TIME TO RETRY BLOCKED OUTPUT
;NR OUTIVL,1			;TIME INTERVAL BEFORE RETRYING BLOCKED OUTPUT
;	NDG INIWAT,100		; DEFAULT IS 300 MS.
RS NSPMCB,1			;EACH BIT INDICATES A DED MCB PORT NUMBER (NSP)
RS RMSGQ,1			;EXPENDED MESSAGE QUEUE
RS NEVNTS,1			;NUMBER OF CURRENTLY QUEUED EVENTS
RS EVENTS,2			;HEAD AND TAIL OF EVENTS QUEUE
	MXEVNT==:^D10		;MAXIMUM NUMBER OF EVENTS TO QUEUE
RS EVRFRK,1			;PSI CHANNEL,,EVENT READER FORK
RS MSGQ,2			;BACKGROUND TASK'S QUEUE HEAD AND TAIL
RS SMSGQ,2			;SCHEDULER'S QUEUE HEAD AND TAIL
RS ULLCZQ,NTTMCB		;QUEUE OF LL IDS TO CLOSE BY NSPTSK
   IFN SMFLG,<
RS NSPLPB,1			;RH IS PORT FOR 2020 LOOPBACK TESTING
   >
RS SEGSZ,1			;NSP SEGMENT SIZE
	BIGNOD==:^D255		;MAX NUMBER OF DECNET NODES IN NETWORK
NR NODMAP,BIGNOD+1		;SESSION CONTROL'S NODE NAME MAPPING TABLE
NR NMAPLK,1			;LOCK FOR NODE NAME MAPPING TABLE
NRE NSSSLZ,BIGNOD+1		;NSP - "SECONDS SINCE LAST ZEROED"
RSE NSBYTR,BIGNOD+1		;NSP - "BYTES RECEIVED"
RSE NSBYTS,BIGNOD+1		;NSP - "BYTES SENT"
RSE NSMSGR,BIGNOD+1		;NSP - "MESSAGES RECEIVED"
RSE NSMSGS,BIGNOD+1		;NSP - "MESSAGES SENT"
NRE NSCONR,BIGNOD+1		;NSP - "CONNECTS RECEIVED"
NRE NSCONS,BIGNOD+1		;NSP - "CONNECTS SENT"
NRE NSTIMO,BIGNOD+1		;NSP - "TIMEOUTS"
NRE NSRCNE,BIGNOD+1		;NSP - "CONNECT RESOURCE ERRORS"
RSE NSALNK,BIGNOD+1		;NSP - "ACTIVE LINKS"
RS NSLDWS,1			;LOCAL DELAY WEIGHT SETTING
NR NSLDFS,1			;LOCAL DELAY FACTOR SETTING
NR NSTRYS,1			;RETRANSMIT COUNT SETTING
RS NSINAC,1			;NSP INACTIVITY TIMEOUT VALUE
RS LSTINT,1			;TIME OF LAST INACTIVITY TIMER CHECK
RS LSTTMR,1			;TIME OF LAST TIME OUT QUEUE CHECK
RS LNSSLZ,1			;LINE COUNTER - SECONDS SINCE LAST ZEROED
RS LNBYTR,1			;  "     "    - BYTES RECEIVED
RS LNBYTS,1			;  "     "    - BYTES SENT
RS LNBLKR,1			;  "     "    - BLOCKS RECEIVED
RS LNBLKS,1			;  "     "    - BLOCKS SENT
	NODTSZ==:<BIGNOD+21>/22	;SIZE OF REACHABLE NODES TABLE
NR NODTBL,NODTSZ		;REACHABLE NODES TABLE

	NTCMAX==:^D10		;MAX # OF FORKS TO REMEMBER
NR NTCTAB,NTCMAX		;NETWORK TOPOLOGY CHANGE FORK TABLE

NR NSPMAX,DCN			;MAX SEG SIZE OF INTERCEPT NODE
NR ITSNUM,DCN			;MCB'S NODE NUMBER
NR ITSID,<DCN*^D9>		;MCB'S SYSVER STRING
RS NAKCNT,DCN			;COUNT OF NAK'ED SEGS

RS MCBDTE,DCN			;THE DTE # OF THE MCB FRONT END
>;END OF IFN FTNSPSRV
IFE FTNSPSRV,<

	NTCMAX==:^D10		;MAX # OF FORKS TO REMEMBER
RS NTCTAB,NTCMAX		;NETWORK TOPOLOGY CHANGE FORK TABLE
RS EVRFRK,1			;PSI CHANNEL+1,,EVENT READER FORK
RS NMLPSI,1			;GIVE EVENT PSI
RSI EV96.0,<0>			;If non-zero, generate CSSE event (96.0)
RSI EVSDRP,<-1>			;If non-zero, eavesdrop on routing messages
				; when running as an endnode.  This can be
				; changed while the system is up if the
				; Ethernet circuit is off while the change
				; is made.
>;END IFE FTNSPSRV
>;END OF IFG DCN CONDITIONAL

NDG %RTBSZ,^D576		;Default DECnet buffer size, ref'd in D36COM

   IFE DCN,<MCPRON==:0>	;IF NO DCN, NO MCB PROTOCOL

;FOLLOWING IS A DUMMY FOR WHEN THERE IS NO DECNET. IT SHOULD NEVER BE EXECUTED

   IFE DCN,<
NTCOFF::SETZRO FKNTC		;TURN OFF BIT THAT CAUSED US TO GET HERE
	RETSKP
NR BLKASG,1>

;FOLLOWING IS A DUMMY FOR WHEN THERE IS NO NSPSRV-STYLE DECNET.

IFE KNIN,<
IF2,.LLMOP==:UJSYS0		;No LLMOP% JSYS
IF2,.NI==:UJSYS0		;No NI% JSYS
IF2,SETNIA==:MRETN##		;From JSYSA when no KLNI stuff loaded

	SEARCH NIPAR		;Get definition of UNIFC%
DLLUNI::MOVX T1,UNIFC%		;Return invalid function for NISRV users
LLMINI::			;LLMOP% initialization

;**; [7173]  Change 2 labels at LLMRSJ:	HMP	23-Oct-85
LLMRJB::			;[7173] LLMOP% job reset
LLMRFK::			;[7173] LLMOP% fork reset
NIJKFK::			;From RESET% and KSELF, NI% JSYS reset code
KNIJB0::			;From MEXEC, Job 0 stuff for NISRV
LLMJB0::			;From MEXEC, Job 0 stuff for LLMOP
;**;[7432] Add 1 line at LLMJB0:: + 1 L		JDM	1-Apr-87
XCKNI::				;[7432]From APRSRV, SCHED, shutdown
	RET
>

  IFN FTNSPSRV,<
.NTINF::ITERR (ILINS2)		;If 6.0, NTINF% is undefined jsys
  >

IFE NFT,<
.DAP::	MRETNG			;DAP% jsys
NODLUK::RETBAD (GJFX6)		;referenced in GTJFN, makes node names errors
NFTIDX==:0			;referenced in GTJFN, dummy, never reached
NFTDTB==:777777			;referenced in GTJFN, used in a CAIN, should
				; always skip when NFT=0
DAPRST::			;release all DAP% links belonging to this fork
DAPLGO::   			;release all DAP% resources for this job
DAPHND::RET			;the action routine referenced in SCHED
>

;DEFINITION FOR ATS

IFN ATS,<
NDG ATJBMX,10			;MAXIMUM NUMBER OF HTN'S PER JOB
>
IFE ATS,<
NDG ATJBMX,0			;NO HTN'S IF NO ATS
>
RS ATSTYM,1			;ATS TIMER (NEEDED BY DUMMY ATSINI ALSO)
;STORAGE FOR KMC11'S

REPEAT 0,<
    IFLE KDPN,< ;ONLY IF NOT PRESENT
KDPINI==:R
KDPTSK==:R
    IFN SMFLG,<
.BOOT::	MCENT
	JRST UJSYS0
	>
	>
    IFN DCN,<
RS KDPFLG,1			;SET NONZERO WHEN NEED KMCTSK
    >
    IFG KDPN,<	;ONLY IF PRESENT
KMCQLN==:4+2*4*KDPN		;LENGTH OF KMC11 INPUT QUEUE
RS KMCINQ,KMCQLN		;QUEUE OF INPUT FOR KMC11
				; 1ST WORD IS PUTTER, 2ND WORD IS TAKER
				; REST IS 2 WORD ENTRIES
RS KMCACS,20			;INTERRUPT SAVE ACS
KMCSZ==:50			;LENGTH OF KMC PDL
RS KMCIPL,KMCSZ			;INTERRUPT PDL FOR KMC
KMCPDL::IOWD KMCSZ,KMCIPL	;SETUP WORD FOR KMC PDL USE
RS KDPLIM,1			;LH IS NEGATIVE NUMBER OF DUP11'S ON SYSTEM
				; RH IS 0
RS KDPNLN,1			;POSITIVE NUMBER OF DUP11'S
RS KDPPAG,KDPN			;UBA ADR OF PAGE,,OUR ADR OF PAGE
RS KDPXPC,10			;XPCW BLOCK FOR KMC11 INTERRUPTS
    >
>				;END OF REPEAT 0
;Dummy when there is no KLIPA driver

   IFE FTKLIPA,<
CHKKLP==:R			;Make reload check say OK
   >
;Storage for 2080 console routines

   IFN KCFLG,<			;Only needed on the 2080

RS SECINP,5			;Save CTY control words here on protocol switch
RS RSPCNT,1			;Keep-alive time word
RS RSPLCK,1			;Lock for command word
RS CPYCMD,1			;Virtual address of diag output block
RS CMDCM1,1			;Virtual address of diag input block
RS CEMSTS,1			; Last seen EMM status
RS CEMLCT,1			;EMM counts
RS CEMCTR,3			;EMM running counts
 EMMENB==:3			;# OF EMMS
RS EMMINT,EMMENB		;Interrupt storage words for fork EMM

 CNTERM==:5			;Number of terminal lines of console

RS TTYOBK,CNTERM		;Output block addresses
RS TTYOPH,CNTERM		;Physical addresses of the blocks
RS CNLSTS,CNTERM
RS CPYKPA,1			;Last RSP keep alive
RS CPYSTS,1			;RSP status

 CTYLEN==:^D15			;Length of TTY output block
 CTYBCT==:CTYLEN*4		;Bytes in an output block

RS SCPNTR,1			;"secondary protocol" output pointer
RS CNCTRL,1			;control word for random bits
RSI KCMON,<0,JRST KCMONP>	;Enter secondary protocol
RSI KCPRI,<0,JRST KCPRIP>	;Enter primary protocol
   >	;IFN KCFLG
;STORAGE FOR DTE'S

IFG DTEN,<			;DTE STORAGE

;**;[7154] Add 2 lines at (RS UPFLAG)-1		CEG 15-Oct-85
FEDSKL==:10			;[7154] TABLE OF
RS FEDSKT,FEDSKL		;[7154]  FRONT-END DISK SERIAL NUMBERS
RS UPFLAG,1			;WORD TO GENERATE CONTINUED MESSAGE
NRP DTERBT,1000			;PAGE TO DO -11 REBOOTS
EXTN <SVDTAC,INTDTE>		;NECESSARY EXTERNALS
RS LOAD11,1			;IF AN -11 NEEDS TO BE LOADED
RS LODFRK,1			;HANDLE OF MONITOR FORK DOING RELOADING
NQPKT==:^D20			;NUMBER OF QUEUE PACKETS
QPKT==:5			;SIZE OF A PACKET
RS(DTEDTE,1)			;CELL TO REMEMBER INTERRUPTING
				; DTE
RS CTYUNT,1			;FE PHYSICAL UNIT FOR TS TTY
RS DTEQS,DTEN			;SET UP DRIVER QUEUE HEADERS
RS NDTEMQ,DTEN			;COUNT OF MESSAGES QUEUED FOR EACH DTE
QPKT1==QPKT*NQPKT
RS(COMQ,QPKT1)			;SET UP PACKETS
RS(COMH,1)			;THE QUEUE HEADER
RS(DTESTS,DTEN)			;DTE STATUS WORD
RS(DTEST1,DTEN)			;SECONDARY STATUS WORD
RS(DTETMR,DTEN)			;TIMER VARIABLE
BUFSIZ==:^D34			;TRANSFER BUFFER SIZE
BYTBUF==:BUFSIZ*4		;BYTES PER BUFFER
RS(DTBFWD,DTEN)			;THE HEADER WORD FOR THE BUFFERS
IFN FTNSPSRV,DTESZ==:110	;SIZE OF INTERRUPT STACK
IFE FTNSPSRV,DTESZ==:200	;SIZE OF INTERRUPT STACK
RS(DTETRA,2)			;WORD FOR INTERRUPT RETURN
RS(DTESKP,DTESZ)		;THE LOCAL STACK
RS(DTEACB,20)			;BLOCK TO SAVE REGISTERS
RS(DTEIND,DTEN)			;STORAGE FOR INDIRECT FUNCTIONS
RS(DTEEND,DTEN)			;RESIDENT FREE SPACE DEBUGGING STORAGE
IFE FTNSPSRV,<
RS(DTEOBL,DTEN)			;POINTER TO SECTION ZERO "OUTPUT" BLOCK
RS(DTEIBL,DTEN)			;POINTER TO SECTION ZERO "INPUT" BLOCK
RS(DTEDID,DTEN)			;PLACE TO KEEP DRIVER (ROUTER'S) CIRCUIT ID
RS(DCNCID,DTEN)			;List of DTE callback ID's for DECnet
>;END IFE FTNSPSRV
PKTSIZ==:3			;THE QUEUE PACKETS
PKTSZ1==PKTSIZ*DTEN
RS(PKTADR,PKTSZ1)		;ONE PER DTE
COMSIZ==:COMDAT+COMRGN		;SIZE OF THE "BASIC" COMM REGION
CMSZ==:COMSIZ*<DTEN+1>+COMRGN*DTEN
RS(COMBUF,DTEN+1)		;SIZE OF "VECTOR" FOR THE COMM REGION
RS(COMBAS,CMSZ)			;ALLOCATE COMMUNICATIONS REGION
RS ENDRGN,0			;END OF COMM REGION
IEXSIZ==:CMSZ-<DTEN+1>		;INITIAL EXAMINE SIZE
   IFN KLFLG!KCFLG,<
RS(TAD11,3)			;TIME FROM -11 CELL
   >	;IFN KLFLG!KCFLG
RS(TO11TM,3)			;PACKET TO SEND TIME TO THE -11
KLISIZ==^D10			;WORDS FOR KLINIK DATA BASE
KLIMAX==:<KLISIZ-1>*4		;MAX NUMBER OF BYTES IN KLINIK DATABASE
RS (KLIDTA,KLISIZ)		;KLINIK DATABASE
RS RLDFRK			;SYSTEM WIDE HANDLE OF RELOAD FORK
RS SNGPK1,6			;Single-packet-1 header
RS SNGPK2,6			;Single-packet-2 header

;THIS MACRO GENERATES RESIDENT STORAGE AND CODE FOR EACH DTE.
;FOR EACH DTE, IT GENERATES A 4-WORD BLOCK FOR XPCW'S. THE TABLE
;DTETRP CONTAINS A PROTOTYPE XPCW FOR EACH DTE, WHICH POINTS TO
;THE 4-WORD BLOCK GENERATED HERE

DEFINE DTEPRO (UNIT)<		;MACRO TO GENERATE DTE INTERRUPT VECTOR
	RS DTXPC'UNIT,4		;MAKE PLACE FOR XPCW
DTEN'UNIT:JSR SVDTRJ		;;SAVE REGISTERS
	MOVEI A,UNIT
	DMOVE B,DTXPC'UNIT	;;GET INTERRUPT PC
	DMOVEM B,DTETRA		;;TO COMMON TRAP CELL
	CONI DTE'UNIT,F		;;GET DTE STATUS
	JRST INTDTE		;;GO DO COMMON STUFF
>
;THIS MACRO GENERATES A PROTOTYPE XPCW FOR EACH DTE. THE VECTORS
;ARE STORED AT DTETRP AND COPIED AS NEEDED.

DEFINE DTEINN (UNIT)<		;;TO GENERATE INTERRUPT VECTOR
	XPCW DTXPC'UNIT		;;THE XPCW
>
   >				;END IFG DTEN

;THIS MACRO STORES IN THE XPCW BLOCK A POINTER TO THE CORRECT CODE
;FOR EACH DTE. THIS IN INVOKED IN THE STARTUP CODE AFTER RESIDENT
;STORAGE HAS BEEN CLEARED.

DEFINE DTXPCW (UNIT)<		;;TO STORE ADDRESS IN XPCW BLOCK
	MOVEI T1,DTEN'UNIT	;;THE ROUTINE FOR THIS DTE
	MOVEM T1,DTXPC'UNIT+3	;;MAKE THE XPCW POINT TO THE RIGHT ROUTINE
>
;Definitions of the DTE communications region in the EPT

IFN DTFLG,<

;FIXED LOCATIONS FOR DTE #0, OTHER DTE'S IN FOLLOWING 8-WORD BLOCKS

DTEEBP==:KIEPT+140		;TO -11 BYTE POINTER
DTETBP==:KIEPT+141		;TO -10 BYTE POINTER
DTEINT==:KIEPT+142		;INTERRUPT LOCATION
; 143
DTEEPW==:KIEPT+144		;EXAMINE PROTECTION WORD
DTEERW==:KIEPT+145		;EXAMINE RELOCATION WORD
DTEDPW==:KIEPT+146		;DEPOSIT RELOCATION WORD
DTEDRW==:KIEPT+147		;DEPOSIT RELOCATION WORD

;FIXED CORE ADDRESSES IN EPT FOR DTE PROTOCOL

DTEFLG==:KIEPT+444			;OPERATION COMPLETE FLAG
DTECKF==:KIEPT+445			;CLOCK INTERRUPT FLAG
DTECKI==:KIEPT+446			;CLOCK INTERRUPT INSTRUCTION
DTET11==:KIEPT+447			;TO 11 ARGUMENT
DTEF11==:KIEPT+450			;FROM 11 ARGUMENT
DTECMD==:KIEPT+451			;COMMAND WORD
DTESEQ==:KIEPT+452			;DTE20 OPERATION SEQUENCE NUMBER
DTEOPR==:KIEPT+453			;OPERATION IN PROGRESS FLAG
DTECHR==:KIEPT+454			;LAST TYPED CHARACTER
DTETMD==:KIEPT+455			;MONITOR TTY OUTPUT COMPLETE FLAG
DTEMTI==:KIEPT+456			;MONITOR TTY INPUT FLAG
DTESWR==:KIEPT+457			;CONSOLE SWITCH REGISTER
SDTE==:3			;SHIFT VALUE FOR EPT DTE SET

   >				;END IFN DTFLG
;Definitions of offsets in the EPT. Others are defined in APRSRV

   IFN KCFLG,<
MSSPTB=:KIEPT+520		;MONITOR SUPER SECTION TABLE
   >				;END OF IFN KCFLG
MSECTB=:KIEPT+540		;MONITOR SECTION TABLE

;CELLS IN EXEC PROCESS TABLE (EPT)
	USECTO==:540		;OFFSET IN PT FOR USER SECTION
	MXSECN==:37		;HIGHEST POSSIBLE SECTION NUMBER

EPTTPI=:KIEPT+420		;TRAP INSTRUCTIONS

RSI CONOPG,,1			;WORD FOR CONO PAG,@CONOPG (used before RS 0'ed)

EPTGBP=:KIEPT+700		;OWGBP UCODE TABLE STORAGE
OWGBPN==:722-700+1		;THE OWGBP UCODE USES EPT LOCS 700-722

RSI OWGBPV,<440606360607,300610220611,140612060613
	    000646441015,341016241017,141020041055
	    440722350723,260724170725,100726010762
	    441130331131,221132111133,001170442235
	    222236002275,000000000000,464750515253
	    626364656600,555657600000,707172730000
	    757600000000>,OWGBPN
;ADD RESIDENT STORAGE FOR TAPE SCEDULER TEST


;DTESRV STORAGE

NR BTLOCK			;LOCK ON BOOT PAGE (DTERBT)

;LINEPRINTER STORAGE

NDG NLPBF,400			;DEFAULT BUFFER SIZE

RS(LPTTYP,LPTN)			;TYPE OF LPT VECTOR FOR DEVICE INDEPENDENCE
RS(LPTSTS,LPTN)			; Status word
RS(LPTST1,LPTN)			;SECOND STATUS WORD
RS(LPTST2,LPTN)			;THIRD STATUS WORD
RS(LPTST3,LPTN)			;YES
RS(LPTERR,LPTN)			; LAST ERROR WORD
RS(LPTCNT,LPTN)			; Buffer counter
NRP(LPTBUF,LPTN*2*NLPBF)	;2 BUFFERS
RS LPTCLS,LPTN			;LPTCHK CLOCK SWITCH
RS LPTCCW,LPTN			;BLKI/O PTR
RS LPTICT,LPTN			;INTERRUPT BYTE COUNT
RS LPTCKT,LPTN			;INTERVAL FOR LPTTIM
RS(LPTLCK,LPTN)			; Lock on opening lpt
RS (PGDATA,LPTN)		;PAGE COUNTER PLACED HERE TO SEND IT TO -11

NR (LPTOFN,LPTN)		;VFU,,RAM OFN'S TO PREVENT OPENS FOR WRITE
	LPFLSZ==:^D28		;NUMBER OF WORDS IN FILENAME BUFFERS
NR (VFUFIL,LPFLSZ*LPTN)		;ALLOCATE SWAPPABLE STORAGE FOR VFU FILE NAMES
NR (RAMFIL,LPFLSZ*LPTN)		;ALLOCATE SWAPPABLE STORAGE FOR RAM FILE NAMES

   IFG FEN,<			;PRIVATE STORAGE FOR FE DEVICES
RS FEUDB0,FEN
RS FEUDB1,FEN
RS FEUDB5,FEN
RS FEUDB6,FEN
RS FEUDB7,FEN
RS FEUDB3,FEN
RS FEUDB4,FEN
RS FELOCK,1
   >				;END OF FE STORAGE DEFINITIONS

;PHYSICAL CARD PUNCH STORAGE
	IFG PCDPN,<
CDPBFZ==:41			; Size of CDP buffer
RS(CDPBF1,CDPBFZ)		; First buffer
RS(CDPBF2,CDPBFZ)		; Second buffer
RS(CDPSTS)			; Status word
RS(CDPLCK)			; CDP open lock
RS(CDPCNT)			; Count of full buffers
RS(CDPITC)			; Count of items remaining in current buffer
RS(CDPPTR)			; Byte bointer for emptying current buffer
RS(CDPSIO)			; Saved ios during interrupt
   >				;END IFG PCDPN
;PHYSICAL CARD READER STORAGE

   IFG CDRN,<
CDRSIZ==:^D40			;SIZE OF A CARD IMAGE
CDRLEN==:2*CDRSIZ		;SPACE IN CDRBUF FOR 1 CDR
RS CDRCT1,CDRN			;BUFFER COUNT
RS CDRCKT,CDRN			;WORD FOR SCHEDULER TEST
RS CDRSTS,CDRN			;THE STATUS WORD
RS CDRST1,CDRN			;THE SECOND STATUS WORD
RS CDRST2,CDRN			;THIRD STATUS WORD
RS CARDCT,CDRN			;COUNT OF CARDS READ
RS CARDER,CDRN			;NUMBER OF "HARDWARE" ERRORS
RS CDRLCK,1			;THE CDR LOCK WORD
RS CDRCNT,1			;COUNT OF CDR'S OPENED
NRP CDRBUF,1000			;THE BUFFER PAGE
   >

   IFG MTAN,<

;Private storage for magtapes

RS(MTALCK,MTAN)			;Lock word
RS(MTASTS,MTAN)			;Status of unit
NR(MTANR1,MTAN)			;NON-RESIDENT STORAGE FOR MAGTAPE
NR(MTANR2,MTAN)
NR(MTANR3,MTAN)
NR(MTANR4,MTAN)
NR(MTANR5,MTAN)
NR(MTANR6,MTAN)
RS(MTARS1,MTAN)			;RESIDENT STORAGE FOR MAGTAPE
RS(MTPSFK,MTAN)			;PSI,,FORK # FOR ONLINE/OFFLINE INTERRUPTS ON TAPE
RS(MTCUTB,MTAN)			;CDB ,, UDB TABLE

	MTBUFN==:2		;NUMBER OF BUFFERS/IORB'S
	MAXPPB==:20		;MAXIMUM PAGES PER BUFFER
	IRBLEN==:6		;LENGTH OF AN IORB (ALSO IN PHYPAR)
	MTIRSD==:IRBLEN		;START OF DEVICE SPECIFIC AREA
				;SEE MAGTAP FOR DEFSTR'S OF THIS AREA
	MTIRTL==:MTIRSD+2	;START OF TRANSFER LIST
	MTIRBL==:MTIRTL+MAXPPB+1	;TOTAL LENGTH OF MAGTAPE IORB
	MTABFL==MTAN*MTBUFN*MTIRBL
	MTPBFL==MTBUFN*<MAXPPB+1>*MTAN	;+1 for end-of-buffer zero word
RS(MTAPBF,MTPBFL)		;SPACE FOR BUFFER PAGE POINTERS
RS(MTIRBF,MTABFL)		;SPACE FOR IORB'S

RS(MTIOWD,MTAN)			;Iowd for next transfer
RS(MTBIOW,MTAN)			;BACKUP IOWD (FOR NEXT XFER)
RS(MTAOLS,MTAN)			;LENGTH OF LAST XFER,,
RS(MTARCE,MTAN)			;Total error count
RS(REWCNT)			;Number of rewinding units
RS(MTERAS)			;Rewrite erase counter
RS(MTPNTR)			;Iowd during transfer
RS(MTAUNT)			;Unit currently attached to controller
RS(MTERRC)			;Retry counter
RS(MTERFL)			;State of retry
RS(MTACOM)			;Cono word of current operation
RS(MTDINR)			;Return address from data interrupt
RS(MTACLS)			;Clock routine switch, 0 for no clock wanted

;PRIVATE STORAGE FOR MT (DUMMY TAPES)

RS (TLABBP,2*MTAN)		;PNTR TO LOCKED BUFFER PAGE
RS (TLABR0,MTAN)		;RESIDENT STORAGE FOR LABEL INFO

NR (TLABL0,MTAN)		;NON-RESIDENT STORAGE FOR TAPE
NR (TLABL1,MTAN)		; LABEL INFORMATION
NR (TLABL2,MTAN)
NR (TLABL3,MTAN)
NR (TLABL4,MTAN)
NR (TLABL5,MTAN)
NR (TLABL6,MTAN)
NR (TLABL7,MTAN)
NR (TLABL8,MTAN)
NR (TLABL9,MTAN)
NR (TLAB10,MTAN)		;PROTECTION FIELD, ETC
NR (TLAB11,MTAN)		;WORD TO HOLD OF MAGTAP PARAMS
NR (TLAB12,MTAN)		;HOLD VOL SET NAME IN HERE
NR (TLAB13,MTAN)		;HOLD EXP DATE HERE
NR (TLAB14,MTAN)		;SEQUENCE NUMBERS
NR (TPFCNT,MTAN)		;MT FILCNT (JFN)
NR (TPFBYN,MTAN)		;MT FILBYN (JFN)
NR (TPFLEN,MTAN)		;MT FILLEN (JFN)
NR (TPFLNX,MTAN)		;COUNT OF BYTES (OF FILLEN(JFN))
				;WIICH ARE EXPECTED IN NEXT RECORD (SPANNED)
NR (TPSBYT,MTAN)		;SAVES POINTER TO WHERE SCW/SCW SHOULD GO
				;WHEN RECORD IS COMPLETE, ALSO TPSCUP
   >				;END IFG MTAN
IFE MTAN,<
MTCLVA::			;DUMMY FOR MTA CLEAR ALL VALID VOLUME BITS
MTCLVL::			;DUMMY FOR SINGLE CLEAR VALID VOLUME
MTAKFK::RET			;DUMMY FOR KILL PSI
   >				;END IFE MTAN
RS(MTAJB0,1)			;JOB 0 FLAG FOR MTA UNIT CAME ON LINE
   IFG PLTN,<

;PLOTTER STORAGE

PLTBFZ==:401			; Size of plt buffer
RS(PLTBF1,PLTBFZ*PLTN)		; First buffer
RS(PLTBF2,PLTBFZ*PLTN)		; Second buffer
RS(PLTSTS,PLTN)		; Status word
RS(PLTLCK,PLTN)		; Plt open lock
RS(PLTCNT,PLTN)		; Count of full buffers
RS(PLTITC,PLTN)		; Count of items remaining in current buffer
RS(PLTFDC,PLTN)		; SPECIAL FUNCTION TO BE DONE
RS(PLTPTR,PLTN)		; Byte bointer for emptying current buffer
RS(PLTPWR,PLTN)		;PLOTTER HAS REMOTE POWER INDICATE
   >				;END OF IFG PLTN
   IFG PTPN,<
PTPBFZ==:41			; Size of ptp buffer
RS(PTPBF1,PTPBFZ)		; First buffer
RS(PTPBF2,PTPBFZ)		; Second buffer
RS(PTPSTS)			; Status word
RS(PTPLCK)			; Ptp open lock
RS(PTPCNT)			; Count of full buffers
RS(PTPITC)			; Count of items remaining in current buffer
RS(PTPFDC)			; Count of lines of feed left to punch
RS(PTPPTR)			; Byte bointer for emptying current buffer
RS(PTPSIO)			; Saved ios during interrupt
   >				;END IFG PTPN

   IFG PTRN,<
PTRBFZ==:41			; Size of ptr buffers
RS(PTRBF1,PTRBFZ)		; First buffer
RS(PTRBF2,PTRBFZ)		; Second buffer
RS(PTRSTS)			; Status word
RS(PTRLCK)			; Ptr open lock
RS(PTRCNT)			; Count of full buffers
RS(PTRITC)			; Count of room left in filling buffer
RS(PTRCHC)			; Count of items inserted in buffer
RS(PTRPTR)			; Byte pointer for filling buffers
RS(PTRSIO)			; Saved ios during int
   >				;END IFG PTRN

   IFG VBCN,<
RS(PENLOC,4)			;X,Y COORDINATE OF LAST PEN HIT
PENADR==:PENLOC+1		;PROGRAM ADDRESS OF WHERE HIT OCCURED
ERRLOC==:PENLOC+2		;X,Y COORDINATE OF FIRST ERROR SEEN
ERRADR==:PENLOC+3		;ADDRESS OF WHERE ERROR OCCURED

RS(DISREL)			;8 BIT BOUNDRY OF FIRST LOCKED PAGE
RS(DISPRT)			;# OF 1K PIECES OF CORE LOCKED
RS(DISBEG)			;LH=PROTECTION AND RELOCATION FOR DISPLAY
				;RH=STARTING ADDRESS OF DISPLAY PROGRAM

RS(VBCIOS)			;STATUS WORD
   >				;END IFG VBCN

;Storage for TCP/IP Service

%NETS==:ANXN+IPNIN+IPCIN	;NUMBER OF IP INTERFACES 
NINTIB==:^D20*%NETS		;NUMBER OF IP BUFFERS TO KEEP AROUND

IFN NETN,<

IFE IPNIN,<INTBSZ==:400>	;If no Ethernet small buffers
IFN IPNIN,<INTBSZ==:574>	;If Ethernet Larger buffers

;**;[7459] Change 1 line at NDG NHOSTS		JDM	27-Apr-87
NDG NHOSTS,^D5003		;[7459]LENGTH OF HOSTN TABLE (MUST BE PRIME)
;**;[7378]Change two lines at NDG NHOSTN	JDM	8-Oct-86
NDG NHOSTN,<NHOSTS*4>		;[7378]SIZE OF HOSTN TABLE
NDG NHSTN,<NHOSTS*12>		;[7378] LENGTH OF HOST NAME TABLE (TEXT)
IMPLBT==:10			;LENGTH OF OLD BIT TABLE
NHSTST==:200			;LENGTH OF OLD HOST STATUS TABLE
NDG NETHSZ,^D53			;SIZE OF NETWORK HASH TABLES

RS IGDMSG,1			;Last IMP going down message
RS IGDTIM,1			;Time of last IMP going down message
RS IMINFB,1			;BUFFERS MADE FREE BY PI ROUTINES
RS IMPGDM,1			;LAST IMP GOING DOWN MSG
RS SIQNXT,1			;TIME NEXT SPECIAL QUEUE MESSAGE EXPIRES
RS IBPTIM,1			;TIME OF NEXT IMPIBP RUN
RS BF18BI,1			;1822 BUFFER QUEUE INPUT
RS BF18BO,1			;1822 BUFFER QUEUE OUTPUT
NR(MHOSTS,1)			;MINUS NUMBER OF HOSTS IN TABLE.
RSI BBNOK,<1>			;BBN CONNECTIONS ALLOWED
RSI DECOK,<1>			;DEC CONNECTIONS ALLOWED

;Some of the following tables are kept in INTSEC

..OFST==1000			;STORAGE AFTER FIRST PAGE
				;THE FOLLOWING ARE SWAPPABLE
NDG BF18SZ,20			;NUMBER OF 1822 BUFFERS
DEFWRD(BF1822,BF18SZ*INTBSZ)  	;1822 BUFFER AREA
DEFWRD(HOSTN,NHOSTN)		;TABLE OF HOST FLAGS,,POINTERS TO NAMES.
DEFWRD(HOSTPN,NHOSTS)		;PRIMARY NAME FOR THIS HOST
DEFWRD(HSTNAM,NHSTN)		;TEXT TABLE OF HOST NAMES

BMNTLK==:..OFST			;FIRST LOCATION TO LOCK DOWN
DEFWRD(HOSTNN,NHOSTS)		;HOST NUMBERS
DEFWRD HSTSTS,NHOSTS		;DEAD HOST STATUS TABLE (18 BITS PER HOST)
EMNTLK==:..OFST			;LAST LOCATION TO LOCK DOWN

;The following parallel tables are used for looking up network numbers

RS(NETHTB,NETHSZ)		;Network number hash table
RS(NETGWY,NETHSZ)		;Path (interface of gateway) to a network

;These are part of the NETRDY GETAB Table

RS NETENT,1			;Flags to drive NETSER etc.

;Storage for Multinet device drivers and NCTs

	RESDT
	BLOCK	5		;**** TEMP *** trying to catch what's
				;clobbering NCT0
.NCTS::
	MKNCTS			;Make the actual NCTS

				;NCT Vector table
NCTVT::	MKPTRS			;And the pointers thereto

       				;Interrupt storage
RS NUMNCP,1			;Number of NCP Type nets up
RSI NETSUP,<0>			;Flag (-1) that MNTINI has completed

	RESDT

RSI ANT3EN,<0>			;Type 3 messages 0 no, -1 enabled
NR BADPCT,1			;Packets received with bad checksum, etc
NR GENCFL,1			;General lock conflits counter
NR GWTAB,1			;(Extended) pointer to gateway table
RS INETID			;Our Internet ID
RS INTABC,NTACWD		;Per fork count of ABORTed TCBs
RS INTBFF,NTWBWD		;Free wait bit indicators
				;bypass is off for now.  will be on soon.
RSI INTBYP,-1			;Internet bypass 0 no, -1 ok
RSI INTCLS,<4B6,4B6,4B6,4B6,6B6,6B6,7B6,7B6> ;Network class mask
RS INTFLG,1			;Flag to make the Internet fork run
RS INTFRI,1			;Free input buffer list pointer
RS INTFRK,1			;FORKX Running Internet
RSI INTHST,<77777777,77777777,77777777,77777777,177777,177777,377,0>
RS INTIBI,1			;IMPPHY to Gateway input queue input pointer
RS INTIBO,1			;IMPPHY to Gateway input queue output pointer
RSI INTLHX,<3>			;Maximum logical host value delivered to protocols
RSI INTNET,<37700000000,37700000000,37700000000,37700000000,37777600000,37777600000,37777777400,37777777777>
RS INTNFB,1			;Empty output buffer list pointer
RS INTNFI,1			;Free input buffer count
RS INTNIB,1			;# of free input buffers desired (default 4*%NETS)
RS INTON,1			;-1 If IP initialized, 0 if not
NR INTRAN,1			;IP reassembly packet number
NR INTRAQ,1			;(Extended) pointer to IP fragment ra queue (PKTQ)
NR INTRAT,1			;TODLCK of next fragment to timeout (RCVFLS)
NR INTSCR,1			;Set non-0 to run in secure mode
				;exclusive of local leaders (max PIPL)
NR INTSVC,1			;Count of scavenges of free storage
NR INTSVR,1			;Flag to request a scavenge
NR INTSVT,1			;TODCLK of most recent scavenge BUGINF
RS INTTIM,1			;TODCLK when Internet fork should run next
RS INTTRC,1			;Set to 0 to turn OFF packet trace

;N.B.
;Be very very carefull if you ever change any of INTBSZ, ..MXSZ, or INTXPW.
;They are all related and have been calculated exactly taking into account
;LCLPKT, MAXLDR, and the Ethernet CRC, with no extra bytes available.

RSI MAXWPM,<INTBSZ>		;Size of 1822 Buffers (including MAXLDR)
..MXSZ==<INTBSZ*4>-<4*MAXLDR>-4	;Max number of bytes 
RSI INTXPB,<..MXSZ>		;Maximum PIPL for all interfaces (bytes)
RSI INTXPW,<PKTELI+<<..MXSZ+3>/4>+1> ;# Words in max pkt bfr (+1) (PFSIZ=1)

IFN IPPDSW,<   			;Packet Printer
NR PPBLCK,LOCKSZ		;Lock on PPB
NR PPBUF,PPBWDS			;Packet printer buffer
RESDT
TCPPFN:	ASCIZ /PS:<OPERATOR>IPTRAC.BIN/ ;P777777
BLOCK 3
NR TCPPSJ,1			;Jfn of Simulation file (containing PKTs)
NR TCPPSQ,1			;Queue of PKTs read so far (maybe RXed)
RSI TCPPSA,<BYTE (4)0(8)^D10,0,0,^D79> ;DEC-2136
RSI TCPPTB,<INTSEC,,600>	;Defaults if not CALL TCPPIN
RSI TCPPTC,<INTSEC,,600>	;Current buffer pointer
RSI TCPPTE,<INTSEC,,730>	;Sav Dump <N,,garb>,N<data>
RSI TCPPTO,<0>			;IMP Dump <N>,<time>,N<data>
				;IP  Dump <adr,,N+1>,N<data>
>				;end of IFN IPPDSW

				;Internet Free Storage
NR BULKST,1			;START OF BULK STORAGE
NR BULKND,1			;END OF BULK STORAGE
NR FRELCK,LOCKSZ		;LOCK ON THE FREE STORAGE AREA
NR INTBLK,NFIXED
INTFRE=:EMNTLK+1		;FIRST INTERNET FREE SPACE LOCATION
INTFSZ==:777777-<EMNTLK+1> 	;USE AS MUCH OF THIS SECTION AS POSSIBLE
NR INTFSP,1			;AMOUNT OF FREE SPACE CURRENTLY AVAILABLE
NR MRGFLG,1			;NON-0 IF A GARBAGE COLLECT MIGHT HELP
NR ODDBLK,1			;ODD LENGTH BLOCKS LIST

;Internet Protocol Tables
; *** Do not separate

	RESDT

DEFINE PCLTAB (NAM,PRT)<
.X=.
	RELOC	.X+.INTPC
	IFE REL6,<MSEC1,,NAM'CHK>
	IFN REL6,<XCDSEC,,NAM'CHK>
	RELOC	.X+.INTPF
NAM'FLG::0
	RELOC	.X+.INTPI
	IFE REL6,<MSEC1,,NAM'INI>
	IFN REL6,<XCDSEC,,NAM'INI>
	RELOC	.X+.INTPQ
NAM'IPQ::0
	RELOC	.X+.INTPO
NAM'ON::	0
	RELOC	.X+.INTPL
IFB  <PRT>,<NAM'PCL::	.'NAM'FM>
IFNB <PRT>,<NAM'PCL::	PRT>
	RELOC	.X+.INTPP
	IFE REL6,<MSEC1,,NAM'PRC>
	IFN REL6,<XCDSEC,,NAM'PRC>
	RELOC	.X+.INTPS
NAM'SID::0
	RELOC	.X+.INTPT
NAM'TIM::377777777777
	RELOC	.X+.INTPE
	IFE REL6,<MSEC1,,NAM'ICM>
	IFN REL6,<XCDSEC,,NAM'ICM>
	RELOC	.X+.INTPZ
PURGE .X
>

INTPIX::-4,,.INTPZ	;-# protocols,,Table length
			;Tables follow INTPIX
	PCLTAB (TCP)	;TCP table
	PCLTAB (ICM)	;ICMP table

;Internet User Queue table
;NOTE:	This must be last since protocol -1 takes anything

	PCLTAB (INQ,-1)
	BLOCK .INTPZ	;Spare for tests

;*** End of do not separate

       			;Internet queue storage:
RSI INTQMX,<^D8>	;Max # of packets in RCVIN queue (INTSQP)
RSI INTQT0,<^D30000>	;Internet user queue (packet) timeout, msec (INTQTM)
NR INTQLK,LOCKSZ	;Lock on following queue tables
RS INTQFK,NIQ		;Forkx waiting for stuff on this queue (or -1)
			;in LH,,RH is FORKX of owner
NR INTQHD,1		;Pointer to INTSEC table of NIQ queue heads
NR INTQJB,NIQ		;Job owning this queue (Flags,,JOBN)
NR INTQM0,NIQ		;User queue mask for PIPRO (B24-31)
NR INTQM1,NIQ		;User queue mask for PIDH  (B00-31)
NR INTQM2,NIQ		;User queue mask for PISH  (B00-31)
NR INTQM3,NIQ		;User queue mask for for ports (l B0-15, f B16-31)
NR INTQSP,NIQ		;Number of messages on this queue
NR INTQTM,NIQ		;Timeout for this queue
NR INTQV0,NIQ		;User queue value for PIPRO (B24-31)
NR INTQV1,NIQ		;User queue value for PIDH  (B00-31)
NR INTQV2,NIQ		;User queue value for PISH  (B00-31)
NR INTQV3,NIQ		;User queue value for ports (l B0-15, f B16-31)
			;Additional ICMP storage
RSI ICMTM0,<^D120000>	;ICMP check time, msec
RSI NETHT0,<^D<30*60*1000>> ;Interval to clear hash table, msec
RS NETHTM		;Time to re-init the network cache
RSI PINGT0,<^D37000>	;Ping interval, msec (prime to reduce interactions)
RS PINGTM		;Time of next gateway ping

	RESDT
FKABCP::POINT ABTCBS,TCPABC	;Pointer to base of TCP abort counters
	XSWAPCD

RS INTWTB,NTWBWD	;Scheduler wait bits. One per lock, buffer, etc
NR NXTLBL,1		;Next packet label
RS STATF,1		;Set non-0 to take statistics
NR TCBCNT,1		;Count of TCBs now in use
NR TCBDQ,1		;Head of dead TCB queue (SCAN:)
NR TCBH,1		;TCB Hash table location
NR TCBHLK,LOCKSZ	;TCBH Lock
RS TCBHUC,1		;TCBH Use Count
   TCBMAX::MAXTCB	;Maximum number of TCBs allowed
RS TCPABC,NTACWD	;Abort counters
RS TCPBDQ,1		;Buffer done queue
   TCPBGT::^D30000	;BG time interval, msec
   TCPBYS::4400+17*4+17*4 ;Max local (bypass) packet size - 1 page + overhead
   TCPCKT::^D10000	;TCP check interval, msec
   TCPDGT::^D30000	;DG time interval, msec
   TCPDTL::^D60		;Default Time to live, seconds
   TCPDXD::^D2		;Default RX denominator
   TCPDXI::^D3		;Default RX interval, seconds
   TCPDXN::^D3		;Default RX numerator
RS TCPIDQ,1		;Head of IP's dead queue
RS TCPIFG,1		;Set non-0 after TCP initialized
   TCPISN::^D<<MAXSEQ/8>*<<24*60*60>/CYCTIM>> ;TCP sequence # per second
           EXP 3	;Scale factor (8 above) to prevent MUL overflow
   TCPPTM::^D300	;Maximum persistence time, seconds (send timeout)
   TCPRA0::^D100	;Msec to wait for RA to process input packet
   TCPRX0::^D3000	;Initial RX interval, msec
   TCPRXF::0,,-4	;Scale factor for TCPRXS & TCPRXV (ASH x,@TCPRXF)
   TCPRXN::^D1000	;Minimum RX interval, msec
   TCPRXS::15		;0.1101 = 0.8125
   TCPRXV::30		;1.1000 = 1.5
   TCPRXW::^D120000	;RX probe into zero window, msec
   TCPRXX::^D60000	;Maximum RX interval, msec
   TCPSY0::^D2000	;Msec delay on re-synchronization attempts
RS TCPUS0,1		;Saved TCP fork UPT pointer
NR PROC,1		;Points to currently running "process" in TCP
			;"Process" control blocks
NR BG,PROCSZ		;Background
NR DY,PROCSZ		;Delayed Actions Generator
NR IP,PROCSZ		;InputProcessor
NR PZ,PROCSZ		;Packetizer
NR RA,PROCSZ		;Reassembler
NR RX,PROCSZ		;Retransmitter

       			;TCP virtual terminals
RS TVMSTM,1		;TVT sendall timer
RS TVTLSN,1		;TVT listening JCN
RS TVTNOF,1		;TCP output scan needed
RS TVTNTM,1		;Time to check for over TVT negotiations
RS TVTPTR,1		; AOBJN ptr over TCP Virtual terminals
   TVTWTM::^D60000	;Msec to wait when window filled

			;Statistics area
NR STAT0,0		;Marks first cell cleared by STSINI
NR BYTRCT,1		;Bytes received counter
NR BYTSCT,1		;Bytes sent counter
NR FINRCT,1		;FINs received counter
NR FINSCT,1		;FINs sent counter
NR RSTRCT,1		;RSTs received counter
NR RSTSCT,1		;RSTs sent counter
NR SYNRCT,1		;SYNs received counter
NR SYNSCT,1		;SYNs counter
NR DUPKCT,1		;Count of duplicates received
NR IPPKCT,1		;Packets handled by InputProcessor
NR OPPKCT,1		;Packets output to the network
NR PZPKCT,1		;Packets produced by Packtizer
NR RAPKCT,1		;Packets processed by Reassembler
NR RXPKCT,1		;Packets retransmitted

       			;Task counters
NR BGRNCT,1		;Count of times Background has run
NR DGRNCT,1		;Count of times Delay Action has run
NR IPRNCT,1		;Count of times InputProcessor has run
NR OPRNCT,1		;Count of times OutputProcessor has run
NR PZRNCT,1		;Count of times Packetizer has run
NR RARNCT,1		;Count of times Reassembler has run
NR RXRNCT,1		;Count of times Retransmitter has run
NR TASKCT,1		;Count of all tasks 


IFN IPPDSW,<
NR ACDLAY,HISTSZ	; Delay histograms
NR IPDLAY,HISTSZ
NR OPDLAY,HISTSZ
NR PZDLAY,HISTSZ
NR RADLAY,HISTSZ
NR RXDLAY,HISTSZ
>

NR BGUSE,1		; CPU Usage meters
NR DGUSE,1
NR IPUSE,1
NR OHUSE,1
NR OPUSE,1
NR PZUSE,1
NR RAUSE,1
NR RXUSE,1
NR STATZZ,0		; The last cell cleared by STSINI is ...
NR TIMPTR,1		; Current timer.  Points to one of the above

IFN ANXN,<			;Only if we have an AN20

RESDT

NDG NSQ,10			;Number of special imp queues to handle
IMP8XS==:100			;Size of irreg message buffer
NIMSTK==:24			;Size of PI level stack

RS IMSTK,NIMSTK			;Stack storage area
IMPPDP:: IOWD NIMSTK,IMSTK 	;Stack pointer for AN20 interrupts
RS SIQIBI,NSQ			;Special queues
RS SIQIBO,NSQ
RS SIQTIM,NSQ			;Time of first message on special queue
RS SIQSPC,NSQ			;Space occupied by special input q
RS SQJOB,NSQ			;Job to which special Q is assigned
RS SQVAL1,NSQ			;Values for up to 3 words of leader
RS SQVAL2,NSQ
RS SQVAL3,NSQ
RS SQMSK1,NSQ			;Masks for up to 3 words of leader
RS SQMSK2,NSQ
RS SQMSK3,NSQ
RS IIMBUF,3			;Imp irreg msg buffer, for output side
RS IMPTIM,1			;Time of next clock run down
RS IMP8XI,1			;Irreg mes buffer in ptr
RS IMP8XO,1			;.. .. out
RS IMP8XC,1			;.. .. count
RS IMP8XB,3*IMP8XS		;Irreg mes buffer
NIMPIB==:4			;Number of 1822 buffers to keep around
RSI IMPNIB,<NIMPIB*ANXN>	;Number of input buffers to keep on tap
RS IMPNFI,1			;Count of free input buffers
RS SQLCK,1			;Interlock for assigning special Q
RS IMPIBI,1			;In buffers in ptr
RS IMPIBO,1			;In buffers out ptr
RS NOIBFS,1			;Flag that input buffer queue ran dry
RS IMPFRI,1			;List of free input buffers

IFN IPPDSW,<
DBGNBF==:100			;DBGIM JSYS Storage
RS(DBGFAC,1)			;Failure counter
RS(DBGSP,1)			;Store pointer
RS(DBGRP,1)			;Read pointer
RS(DBGNWD,1)			;Number of words in buffer
RS(DBGERR,1)			;Report 1822 errors
RS(DBGNCP,1)			;Report 1822 traffic
RS(DBGINT,1)			;Report IP traffic
NR(DBGBUF,DBGNBF)		;Debug buffer
>				;End of IFN IPPDSW
>				;end of IFN ANXN

IFE ANXN,<			;Only if we don't have an AN20

	RESCD

SIQCHK::			;Dummy siqchk for when no AN20
	MOVX T1,<377777,,-1>	;A long time from now
IMINRB::			;Dummies for when no AN20
IMPIN0::
IMICHK::
IMPSTS::
IMPCHK::
NETLGO::
IMPFPF::
CHKI7::
	RET

.SNDIM::
.RCVIM::
.ASNSQ::
.RELSQ::
	JRST UJSYS0
>				;End of IFE ANXN

IFN IPNIN,<		;If Ethernet TCP/IP is assembled

	RESDT

NDG MAXNIH,^D128	;Maximum number of hosts in GHT
RSI NIMAXH,MAXNIH	;Holds MAXNIH

RS NIPNCT		;NCT address (used by callbacks from NISRV)
RS IUNBLK		;UN block address
RS ICHNST		;Saves channel status
RS NIICNT		;Count of input errors
RS NIOCNT		;Count of output errors
RS NICNTP		;Posted buffer count
RS IPBLPC		;Occurances of possible IPIBLP buginfs
RS UNBNFI		;Free UN block count
RS UNBFRI		;Free UN block list pointer
RS NIPFRI		;Free input buffer list pointer
RS NIPNFI		;Free input buffer count
NDG NNIPIB,^D40		;Number of receive buffers to keep around
NDG NNIPTH,^D20		;Threshold before we will complain about buffers
RSI NIPNIB,NNIPIB	;Number of free input buffers desired
RS NIPSRQ		;Read NI portal counters request flag
RS NICTRS		;Pointer to portal counters block
RS NIPERR		;Save error code 
RS TRLERR		;Save error code for trailer portals
NDG TRLSW,-1		;Detecting trailers is on by default
RSI TRLENA,<TRLSW>	;Use ARP if it is on / We want ARP to be used
NDG ARPSW,-1		;ARP is on by default
RSI ARPENA,<ARPSW>	;Use ARP if it is on / We want ARP to be used
RS ARPON		;ARP is enabled and on
RS NIPON		;NI portal has been opened
RS TRLON		;Trailer encapsulation detection is on
RS AHLENA		;Enable gateway control features
RS AUNBLK		;Address of UN block
RS ABUFFR		;Address of big buffer containing all ARP buffers
RS ARPFRI		;Pointer to next free ARP buffer
RS ARPNFI		;Number of ARP buffers on free list
RS ETHADR,2		;Current Ethernet address
RS GHTAR1		;Address of Internet host # section of GHT
RS GHTAR2		;Address of per host data section of GHT
;**;[7450] Insert 1 line at GHTAR2    JMP    Apr 9 87
RS GHTLOK		;[7450] GHT lock flag
RS GHTCNT		;Count of entries in GHT
RS GHTLEN		;Length of the table
RS ARPSRQ		;Read ARP portal counters request flag
RS ARPTRS		;Pointer to portal counters block
RS NIPRSF		;Flag that IPNI needs restarting
RS NIPSHT		;Request IPNI to shutdown due to error
RS NIPGTF		;Request NIHINV to invalidate all ght entries
RS PDBYTS,<<^D46-<5*4>>/4>+1 ;Padding bytes for short messages

>;END OF IFN IPNIN

IFE IPNIN,<		;Dummy routine for non-IPNI monitor

	RESCD
NIPSRV::
ARPINI::
ARPKIL::
NIHINI::
NICTRS::
NIPSRQ::
ARPSRQ::
ARPTRS::
	RET

NIPNCT::Z

>			;End of IFE IPNIN

IFN IPCIN,<		;If CI TCP/IP is assembled

	RESDT

RS CIPNCT		;NCT address 
RS CIOCNT		;Count of output errors
RS CIPFRI		;Free input buffer list pointer
RS CIPNFI		;Free input buffer count
NDG NCIPIB,^D30		;Number of receive buffers to keep around
NDG NCIPTH,^D20		;Threshold before we complain about lack of buffers
RSI CIPNIB,NCIPIB	;Number of free input buffers desired
RS CIPERR		;Save error code 
RS CIPON		;CI portal has been opened

>;END OF IFN IPCIN

IFE IPCIN,<CIPSRV::RET>	;Dummy routine for non-IPCI monitor

>			;End of IFN NETN

;DUMMY ROUTINES FOR NON-ARPANET SYSTEMS

   IFE NETN,<

	RESCD

.IPOPR::
.TCOPR::
.ASNIQ::
.RELIQ::
.SNDIN::
.RCVIN::
.SEND::
.RECV::
.OPEN::
.CLOSE::
.SCSLV::
.ABORT::
.STAT::
.CHANL::
.GTHST::
.ASNSQ::
.SNDIM::
.RELSQ::
.FLHST::
.CVHST::
.ATNVT::
.RCVIM::
TATNVT::
	JRST UJSYS0

RS TVTPTR,1

TCPDTB::
CHKNVT::
GTBHRT::
GIMLT1::
GIMLT2::
GIMLT3::
GIMLT4::
GNTLSK::
GNTBUF::
GNTSTS::
GNTBTC::
GNTBAL::
GNTFSK::
GHSTNM::
GNTRDY::
GTBHSS::
GHOSTN::
GNTAWD::
CHKNVT::
CHKTVT::
NETKFK::
MNTHLT::
IMICHK::
MNTCHK::
CHKIMP::
MNTINI::
IMPBEG::
ABTBUF::
HSTINI::
CHKNET::
IMPFPF::
INTLGO::
NETLGO::
INTBEG::
CHKTVT::
ABTJCS::
TVTSOF::
TVTMSG::RET

TCPIX==:0
NTBFIX==:0
IMPGTN==:0
IMPRDY==:0
IMPLBT==:0
NHSTST==:0
NHSTN==:0
HSTNAM==:0
NHOSTS==:0
NHOSTN==:0
HOSTN==:0
NSKT==:0
LSKT==:0
FSKT==:0
NETAWD==:0
NETBAL==:0
NETSTS==:0
NETBUF==:0
NETBTC==:0
NETHST==:0
NETFRK==:0
NETDAL==:0
IMPNLK==:0
IMPLT1==:0
IMPLT2==:0
IMPLT3==:0
IMPLT4==:0
IMPLT5==:0

>				; End of IFE NETN
;Dummy routines for DYNLB% and CTSOP%
IFE DYNFLG,<
.DYNLB::ITERR(ILINS2)		;Undefined JSYS
>

IFE CTSFLG,<
.CTSOP::ITERR(ILINS2)		;Undefined JSYS
>
;STORAGE FOR RS04 SERVICE

IFG DRMN,<
  IFG RS04F,<

NTRK==:^D8			;NUMBER OF TRACKS ON RS04
DRMSEC==:^D64			;NO. OF DRUM SECTORS

;SWAP ALLOCATOR PARAMETERS

SWPSEC==:DRMSEC			;USE DISK PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NDST/SWPSEC		;..
SWPNUN==:1			;..

   IFN PHYIOF,<
NDRMEW==:1
RS DRMCFE,1

MAXDRM==:^D8			;MAX NUMBER OF UNITS
				;CAN BE GREATER THAN 8
RS DRMNUM,1			;NUMBER OF DRUMS (COUNTED BY RS4INI)
RS DRMTAB,MAXDRM		;VIRTUAL TO PHYSICAL DRUM ADDRESSES
				;CDB,,UDB
   >;IFN PHYIOF

   IFE PHYIOF,<

MAXDRM==:^D8			;MAX NUMBER UNITS

NDRCCW==:10			;NUMBER OF DRUM CCWS
DRMCCL==:50			;TEMP UNTIL RH20 FIXED

NDRMEW==:5			;NUMBER OF DRUM ERROR WORDS FOR GETAB
RS DRMCFE,5			;DRM ERR BLOCK (NAME IS HISTORICAL) SEE DRMERP FOR DESCR
RS DRMEC,1			;ERROR COUNT, THIS XFER
RS DRMERR,1			;TOTAL NUMBER OF DRUM ERRORS
RS DRMNRE,1			;DRM NON REC ERRS

RS DRMNRQ,1			;NUMBER OF REQUESTS IN QUEUE OR IN PROGRESS

;PER CHANNEL DATA (WILL LIVE IN CCB EVENTUALLY)

RS RHPBAR,1			;CURRENT BAR - ALSO USED AS ACTIVE FLG
RS RHPTCR,1			;CURRENT TCR
RS RHPUCB,1			;UCB CORRESPONDING TO ABOVE
RS RHPCCW,1			;WILL POINT TO BEG OF PRI. CCW LIST

RS RHSBAR,1			;SBAR
RS RHSTRC,1			;STCR
RS RHSUCB,1			;UCB FOR ABOVE
RS RHSCCW,1			;WILL POINT TO BEG OF SEC CCW LIST

RS RHCNI,1			;CONI ON LAST INTERRUPT
;PER UNIT DATA - UCB OFFSETS

RHURI==:0			;READ Q INPUT PTR
RHURO==:RHURI+DRMSEC		;READ Q OUTPUT PTR
RHUWI==:RHURO+DRMSEC		;WRITE Q INPUT PTR
RHUWO==:RHUWI+DRMSEC		;WRITE Q OUTPUT PTR
RHUSEC==:RHUWO+DRMSEC		;NEXT AVAILABLE SECTOR ON UNIT
RHUERR==:RHUSEC+1		;ERR REG,,TOTAL ERR COUNT
RHUNRE==:RHUERR+1		;ERR REG,NON REC ERRS
RHUNRQ==:RHUNRE+1		;NUMBER OF REQUESTS TO THIS UNIT
RHUUNI==:RHUNRQ+1		;DRIVE NUMBER
RHUODT==:RHUUNI+1		;TIME WHEN UNIT REQUEST IS OVERDUE
RHUSTS==:RHUODT+1		;UNIT STATUS:
				; B0 - OFFLINE

UCBLEN==:RHUSTS+1

RS UCBDAT,UCBLEN*MAXDRM		;STORAGE AREA FOR UCBS
RS RH0UTB,MAXDRM		;LH INDEX BY PHYS UNIT #, RH INDEX BY LOG UNIT #

RS DRMACS,5			;AC0-4 DURING DRUM INTERRUPT
RS DRMACP,1			;AC P DURING INTERRUPT
RS DRMP12,2			;INTERRUPT ACS P1&P2
NDRMPD==:25			;PDL SIZE FOR DRM PD LISTS
RS DRMPDL,NDRMPD			;PDL FOR DRUM INTERRUPT SERVICE
RS DRMSPP,1			;SAVED P AT NON INT LEVEL
RS DRMPD1,NDRMPD		;PDL FOR NON PI LEVEL

RS RHXIOA		;IO ADDRESS OF MBC
RS RHXICO		;INITIAL CONO
RS RHXATN		;CONI ATTN BIT
RS RHXRAE		;REG ACCESS ERR IN CONI
RS RHXENB		;CONO ENABLE BITS NEEDED TO SEE ALL CONI BITS
RS RHXCRE		;MACHINE INSTR. NEEDED TO CLEAR RAE
RS RHXERR		;CONI ERROR BITS
RS RHXBAR		;LH OF BLOCK ADDR REG LOAD DATAO
RS RHXTCR		;LH OF TRANSFER CONTROL REG LOAD DATAO
RS RHXCIJ		;CHANNEL INITIAL JUMP
RS RHXCHL		;CHANNEL HALT
RS RHXCWC		;CHANNEL WORD COULD
RS RHXLIA		;DATAO TO LOAD INT VECOTR
   >;END IFE PHYIOF
  >;END IFG RS04F
   >				;END IFG DRMN
;STORAGE FOR RC10 DRIVER

   IFG DRMN,<IFG RC10F,<
NTRK==:^D90/2			;NUMBER OF TRACKS PER DRIVE
DRMSEC==:^D15			;NO. OF DRUM SECTORS
MAXDRM==:^D4			;MAX NUMBER UNITS

;SWAP ALLOCATOR PARAMETERS

SWPSEC==:DRMSEC			;USE DRUM PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NTRK			;..
SWPNUN==:MAXDRM			;..

DRMPST==:^D60			;NUMBER OF PHYSICAL SECTORS PER TRACK
DRMNWS==:^D64			;NUMBER OF WORDS PER DRUM SECTOR
DRMNSP==:PGSIZ/DRMNWS		;NUMBER OF DRUM SECTORS PER PAGE
RS DRMRI,DRMSEC*MAXDRM		;DRUM READ  QUEUE INPUT POINTER
RS DRMRO,DRMSEC*MAXDRM		;DRUM READ  QUEUE OUTPUT POINTER
RS DRMWI,DRMSEC*MAXDRM		;DRUM WRITE QUEUE INPUT POINTER
RS DRMWO,DRMSEC*MAXDRM		;DRUM WRITE QUEUE OUTPUT POINTER

RS DRMCCL,2			;COMMAND LIST FOR DF10
RS DRMEC,1			;ERROR COUNT, THIS XFER
RS DRMACT,1			;DRUM IS ACTIVE IF NON-0
RS DRMDAO,1			;LAST DATAO TO DRUM

NDRMEW==:4			;NUMBER OF DRUM ERROR WORDS FOR GETAB

RS DRMCFE,1			;COUNT OF CFM ERRORS
RS DRMLER,3			;LAST ERRONEOUS DRUM COMMAND AND ERROR BITS
   >>				;END IFG DRMN & RC10F
;STORAGE FOR DUMMY DRUM DRIVER

   IFE DRMN,<

DRMSEC==:0			;NO SECTORS...
NTRK==:0			;NO TRACKS...
MAXDRM==:0			;NO UNITS...

SWPSEC==:^D95			;USE DISK PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NDST/SWPSEC		;..
SWPNUN==:1			;..

NDRMEW==:1			;NUMBER OF DRUM ERROR WORDS FOR GETAB

RS DRMCFE,1			;COUNT OF ERRORS

   IFN PHYIOF,<
RS DRMNUM,1			;PHONEY NUMBER OF DRUMS (0)
RS DRMTAB,1
   >;IFN PHYIOF

   >;IFE DRMN

;STORAGE FOR SWAP ALLOCATOR -- MUST FOLLOW ALL DRUM DRIVER DECLARATIONS

	NDG SWDST,NDST		;IF NOT ALREADY DEFINED, THIS IS DEFAULT
DRMMXB==:SWPNUN*SWPTRK		;MAX NUMBER OF BANDS POSSIBLE
DRMBSZ==:<SWPSEC+^D35>/^D36	;NUMBER OF BIT WORDS PER TRACK

;PARAMETERS FOR SWAPPING STRUCTURE

RS NPDRMS,1			;NUMBER OF PHYSICAL DRUMS, SET BY DRMIOI
RS MAXDRA,1			;NUMBER OF PAGES OF PHYSICAL DRUMS

;FOLLOWING VARIABLES ARE FOR "LOGICAL" DRUM, I.E. SWAPPING SPACE
;RESERVED ON DISK

RS DRMBND,1			;NUMBER OF DRUM TRACKS
RS MDRMBD,1			;MINUS DRMBND
RS DRMTPG,1			;TOTAL NUMBER OF PAGES ON DRUM

;STORAGE

RS DRMBBT,DRMMXB*DRMBSZ		;BIT TABLE - DRMMXB GROUPS OF DRMSEC BITS
RS DRMCNT,DRMMXB		;FREE PAGE COUNT FOR EACH TRACK
RS DRMBN0,1			;TRACK NUMBER OF LAST ADDRESS ASSIGNED
RS DRMFRE,1			;TOTAL FREE PAGE COUNT FOR DRUM
;STORAGE FOR SYSERR FACILITY

RS SEBQIN,1			;JOB 0 QUEUE - IN PTR
;SEBQOU IS IN A FIXED PLACE IN LOWER CORE
RS SEBJFN,1			;JFN FOR SYSERR.LOG FILE
RS SECHKF,1			;FLAG TO WAKE JOB 0 SYSERR FORK
RS SEIETM,1			;TIME AFTER WHICH FAILING SEBOFI TRIED AGAIN
RS SERCNT,1			;Counter
RS SPRFLG,1			;Flag that says if SPRCNT needs initialization
;SPRCNT IS IN A FIXED PLACE IN LOWER CORE

RS ALCLST,1			;*** TEMP *** metering values for lossage
RS BUGLST,1
RS SYELST,1

;STORAGE COMMON TO ALL DRUM DRIVERS

RS DRMJ0R,1			;JOB 0 INTERLOCK ON ERROR BLOCK
RS DSTLOC			;CONTAINS ADDRESS OF DST

;* * * *
;This can be removed when PAGEM is fixed
; * * * *
DST==:0				;EXTENDED. DST WILL BE IN SEPARATE SECTION
;SWAPPER PAGES RESERVED IN PROCESSOR-PRIVATE AREA

DEFINE ASNPPG (P,N)<
	.PSECT PPVAR
P'A::	BLOCK N*PGSIZ
P==:P'A_-PGSFT
	.ENDPS PPVAR
...CNT==...CNT+N
>
...CNT==0


ASNPPG CSWPG,1			;SWAPPER TEMP
ASNPPG FITPG,1			;PRELOAD/POSTPG TEMP
ASNPPG PRLPG,1			;PRELOAD/POSTPURGE TEMP
ASNPPG PIPG,1			;FOR REAL-CORE REFS AT PI LEVEL

NRSPG==:...CNT
;STORAGE AND CODE BOUNDARIES

;JOB-COMMON AREA
DEFINE ASNJSB (P,N)<
	JSV (P'A,N*PGSIZ)
	P=:P'A_-PGSFT>

;JSB FREE PAGES

NDG NJSBPG,^D50		;NUMBER OF FREE JSB PAGES


ASNJSB JSBPG,1			;JSB IS FIRST PAGE IN JOB-COMMON AREA
ASNJSB JFNPG,4			;4 PAGES FOR JFNS
ASNJSB JSJFN,0			;END OF THE JFN STORAGE AREA
ASNJSB JTBPG,2			;JSYS TRAP BLOCKS.  FIRST WORD USED BY
				; NEWJTB

JTBFRE=:JTBPGA			; Free JTB bit table (jffo)
JTBIFR==:777777,,770000		; initial contents of JTBFRE
JTBOFF==:JTBPGA+1		; address of 0th JTB

ASNJSB FREJP,NJSBPG		;JOB FREE STORAGE.  MUST BE LAST
				; DEFINITION IN JOB AREA
ASNJSB JSLST,0			;END OF JSB. MUST BE LAST.
;JOB STORAGE BLOCK ASSIGNMENTS


;JSB STORAGE

DEFINE JS(T,N)<
	T=:JSBPGA+JSBLOC
   IFB <N>,<
	JSBLOC==JSBLOC+1>
   IFNB <N>,<
	JSBLOC==JSBLOC+N>
>

JSBLOC==0			;INITIAL VALUES

JS(JOBMAP,<<JSLSTA-JSBPGA>/PGSIZ>)	;OBJECT MAP FOR JOB-COMMON AREA
JOBM0==:JOBMAP-JSBPG		;BEG OF JOBMAP RELATIVE TO VIR PG 0

NUFKS==:30			;MAX NUMBER FORKS/JOB
JS SYSFK,NUFKS			;JOB FORK INDEX TO SYSTEM FORK INDEX
JS CTTAB,NUFKS			;rh:	-1 or controlling terminal number
				;lh:	vacant!
JS FKJTB,NUFKS			; Address of Jsys Trap Block
JS FKPTRS,NUFKS			;FORK POINTERS (STRUCTURE)
JS FKPSIE,NUFKS			;TERM INTERRUPT ENABLED WORD
JS FKDPSI,NUFKS			;DEFERRED TERM INTERRUPTS MASK
JS FREJFK,1			;FREE JOB FORK SLOT LIST
JS FKLOCK,1			;LOCK FOR FORK STRUCTURE MODIFICATION
JS FLKCNT,1			;NEST COUNT FOR FORK LOCK
JS FLKOWN,1			;FORK THAT LOCKED THE FORK LOCK
JS FKTIMW,1			;TIMER WORD
 NDG FLKTMV,^D120000		;DEFAULT FLKTIM TIMER
JS FKCNT,1			;COUNT OF ACTIVE FORKS IN THIS JOB
JS LSTLGN,1			; Last login D&T
JS SRTTIM,1			;DATE AND TIME THIS JOB WAS INITIALIZED
JS ARDFRT,1			; Job default for retrievals
JS CTRLTT,1			;LINE NUMBER OF CONTROLLING TTY
JS GBLJNO,1			;GLOBAL JOB NUMBER
JS TTSPSI,1			;CODE ENABLED ANYWHERE IN THIS JOB
JS TTSDPS,1			;TERM INT CODE DEFERRED
JS TTJTIW,1			;TERMINAL INTERRUPT ENABLE MASK
JS JBFLTM,1			;Time of last PW failure
JS JBFLCT,1			;Count of PW failures in the interval
;**;[7334] Remove 1 line at JBFLCT:+1L	MDR	14-JUL-86
 NDG MINTVL,^D180000		;Three minutes
;**;[7334] Change 2 lines at JBFLCT:+3L	MDR	14-JUL-86
 NDG MXFLCT,3			;[7334] Max password fails before BREAKI
 NDG MXLOGO,^D6			;[7334] Count before LOGOUT
JS (CONSTO,1)			;CONSOLE TIME ON (TODCLK UNITS)
JS (CTIMON,1)			;CONNECT TIME ON (GTAD UNITS)
JS (CONCON,1)			;CONSOLE CONNECT TIME (FOR USAGE)
JS (JBRUNT,1)			;JOB RUN TIME (FOR USAGE)
JS (JBNODE,1)			; NODE NAME (SIXBIT)
JS (JBBNAM,1)			; BATCH JOB NAME (SIXBIT)
JS (JBBSEQ,1)			; BATCH SEQUENCE NUMBER
JS (ACCTSL,1)			;LENGTH OF ACCTSR
JS (ACCTSR,MAXLW)		;ACCOUNT STRING
JS (ACCTSX,1)			;EXPIRATION DATE OF ACCTSR
JS (CSHACT,MAXLW)		;MOST RECENTLY VALIDATED ACCOUNT
JS (CSHUSR,1)			;USER FOR WHOM CACHED ACCOUNT WAS VALIDATED
JS (CSHACX,1)			;CSHACT EXPIRATION DATE
JS (CSHCLS,1)			;CLASS OF CACHED ACCOUNT
JS (LLSR,WPN)			;LOGICAL LOCATION (I DON'T UNDERSTAND WHY SOME OF THESE HAVE "+1")
JS (JSSRM,MAXLW+1)		;SESSION REMARK
JS (USRNAM,MAXLW+1)		;USER NAME STRING

JS(JFNLCK)			; Lock to prevent tampering with jfn's
JS(MAXJFN)
JS(ENQLST,2)			; BACKWARD AND FORWARD POINTERS TO Q-BLOCKS
				; FOR THIS JOB
JS(ENQQOT)			; LH - QUOTAS AND COUNTS
				; RH - RESERVED
JS(TIMALC)			; TIMER clocks limit
JS(LNTABP)			; POINTER TO LOGICAL NAME TABLE
JS(LNMLCK)			; LOCK FOR LOGICAL NAME DATA BASE
JS NPRIVP,1			;NUMBER OF PRIVATE PAGES IN JOB
JS(JOBUNT)			; CONNECTED DSK UNIT
JS JBCLCK,1			; LOCK FOR ASGPAG
JS(JBCOR,4)			; Page allocation bit table

IJSFRE==:JSBFSZ
JS(JSBFRE,7)			; Job area free storage header
JS(JSFREE,IJSFRE)		; Free storage area in job block

;STRUCTURE TABLES, 3 WORDS PER STRUCTURE.  DATA INCLUDES STRUCTURE NUMBER

JSSTMX==:4			;NO ENTRIES PER STRUCTURE
JS JSSTRT,JSSTMX*STRN		;3 WORDS PER STRUCTURE
JSSTRF==:0			;OFFSET FOR (FLAGS,,STRUCTURE UNIQUE CODE)
JSGRPS==:1			;OFFSET FOR (AOBJN POINTER TO LIST OF GROUPS)
JSADIR==:2			;OFFSET FOR (UNUSED,,ACCESSED DIRECTORY NUMBER)
JSFKMT==:3			;OFFSET FOR FORK-MOUNT BIT WORD
IFG NUFKS-44,<PRINTX ?ONLY ONE WORD HAS BEEN ALLOCATED FOR FORKS IN JSFKMT>
JS JSSTLK,1			;LOCK ON THE JSSTRT BLOCK

JS(JSBSDN)			; CONNECTED STRUCTURE UNIQUE CODE,,DIRECTORY #
JS(JSBCDS)			;POINTER TO CONNECTED DIR NAME STRING
JS(MODES)			; DDBMOD WORD FROM LOGIN
JS(GROUPS)			; GROUPS TO WHICH LOGIN USER BELONGS

JS RSCNPT,1			;RESCAN POINTER
JS RSCNBP,1			;POINTER TO RSCAN BUFFER
RSCMXC==:777			;MAX SIZE OF RSCAN BUFFER

JS JBINFO,1			;PID OF PRIVATE [SYSTEM]INFO FOR JOB
JS JSCDR,1			;SPOOLED CDR INFORMATION
				;LH = NEXT VERSION NUMBER - 1
				;RH = ADDRESS OF SPOOL SET STRING
JS JSMTA1,1			;DEFAULT DENSITY, MODE, AND RECORD SIZE
				; FOR MAGTAPES BEING USED BY THIS JOB
JS JBFLAG,1			;LH = FLAGS SENT TO SPOOLER ON CLOSE
				; OF SPOOLED FILE AND LOGOUT
				;RH = GENERAL JOB WIDE FLAGS (SEE PROLOG)
				;RH = GENERAL JOB WIDE FLAGS (SEE PROLOG)
JS JSLOPD,1			;PID TO GET LOGOUT MESSAGE, FROM CRJOB.
JS JSLOJB,1			;JOB NUMBER OF WHO DID LGOUT TO ME
JS JSFSTK,JSSTDL		;DESCRIPTOR FOR STACK OF THINGS TO BE
				;DONE ON FORK CLEAN-UP
JS JSFLCK,1			;THE LOCK FOR THE JSFSTK STRUCTURE
JS CRJFLG,1			;FLAG THAT THIS IS A CRJOB STARTUP.
				; USED BY MEXEC AND LOGIN
JS DCNCNT,1			;NETWORK LINK QUOTA,,COUNT
JS JSSRTM,1			;Runtime at start of this accounting session
JS JSSCTM,1			;Console time at start of this session
;**;[7456] At JSSCTM add 1 line				GAS	23-Apr-87
JS JSSCTI,1			;[7456] Universal date time at start of session
JS JSATCT,1			;ATS HTN QUOTA,,COUNT
JS JOBSKD,1			;SPECIAL JOB SCHEDULING PARAMETER
JS BATSTF,1			;BATCH STREAM NUMBER AND FLAGS WORD
;**;[7259]At BATSTF+0L add 1 line  JYCW  7-Mar-86
JS BATRID,1			;[7259]Batch request ID
JS JSBDAP,1			;addr of DAPPT table for DAP%
IFE FTNSPSRV,<
JS JSBSJB,1			;ADDRESS OF DECNET SJB
>
IFN NETN,<JS JOBUNI,1> 		;JOB UNIQUE NUMBER for ports
IFN NETN,<JS JCNTCB,MAXJCN>	;POINTER TO TCB FOR EACH JCN
;JFN BLOCK - EACH JFN USES BLOCK OF N WORDS, JFNS CAN GROW
;BEYOND END OF JSB INTO SUCCESSIVE PAGES.
; *** THIS MUST BE LAST STORAGE DEFINED IN JSB ***

;NAMES DEFINED WITH 0 OVERLAY THE NAME FOLLOWING.   POSSIBLE
;BECAUSE THEY ARE USED ONLY DURING GTJFN

JS(JFN0,0)			; FIRST JFN
JS(FILTMP,0)			; Lh -0 ptr to temp string block for default
				; Rh -0 point to temp string block
JS (FILBFI,0)			;NEW IO - BP TO CURRENT INPUT BUFFER
JS(FILBYT)			; Byte pointers to current window
JS (FILBFO)			;NEW IO - BP TO CURRENT OUTPUT BUFFER
JS(FILPRT,0)			; Pointer to protection string or protection #
JS (FILBNI,0)			;NEW IO - INPUT BYTE NUMBER OF CURRENT BYTE
JS(FILBYN)			; Byte number of current byte
JS (FILBNO)			;NEW IO - OUTPUT BYTE NUMBER OF CURRENT BYTE
JS(FILACT,1)			; Pointer to account string or account number
JS(FILLEN)			; Total length of file in bytes
JS (FILBCI,0)			;NEW IO - BYTES REMAINING IN CURRENT INPUT BUFFER
JS(FILCNT)			; Bytes remaining in current buffer
JS (FILBCO)			;NEW IO - BYTES REMAINING IN CURRENT OUTPUT BUFFER
JS(FILLCK)			; File lock word
JS(FILSKT,0)			;ARPANET CONNECTION NUMBER,,UNUSED
JS(FILOPT,0)			; Byte pointer to store string in gtjfn
JS(FILWND)			; Lh - current page number
				; Rh - location of current window
JS(FILSTS)			; Lh - file status bits
				; RH - STATUS, AND MODE IN BITS 32-35
JS (FILST1)			;MORE STATUS
JS(FILDEV)			; Device dependent  information
IFN ATS,<
JS (FILATB,0)			; FOR ATS, POINTER TO DATA NOT IN JOB SPACE
>
JS (FILLLB,0)			; FOR DECNET, POINTER TO LL BLOCK
JS (FILNLP,0)			; For DECnet-36, link parameters and quotas
JS (FILMTP,0)			; FOR MT ,HOLD PROTECTION WORD
JS (FILTCB,0)			; FOR TCP POINTER TO TCB FOR THIS JFN
JS(FILOFN)			; Lh - ofn for this file
				; Rh - ofn of long file pt table
JS(FILLNM,0)			; RH - POINTER TO LOGICAL NAME CHAIN
				; LH - POINTER TO RDTXT BUFFER
JS(FILLFW)			; LH - COUNT OF PAGES MAPPED
				; Rh - location of page table table
JS(FILDDN)			; Lh - pointer to device string block
				; Rh - directory number
JS(FILDNM)			; LH - DIR NAME STRING
				; RH - POINTER TO ATTRIBUTE LIST (FILATL)
	PFXMSK==:777		;UP TO 512 POSSIBLE PREFIXES
	NOATRF==:1B18		;THIS ATTRIBUTE DOES NOT HAVE A VALUE
	.PFACT==:1		;ACCOUNT STRING ATTRIBUTE
	.PFPRT==:2		;PROTECTION ATTRIBUTE
	.PFCOP==:3		;SPOOLED FILE COPIES
	.PFFRM==:4		;SPOOLED FILE FORMS
	.PFALC==:5		;PREALLOCATE FILE SPACE
	.PFBLK==:6		;MAGTAPE BLOCK LENGTH
	.PFEXP==:7		;MAGTAPE EXPIRATION DATE
	.PFFMT==:10		;MAGTAPE RECORD FORMAT
	.PFPOS==:11		;MAGTAPE POSITION
	.PFRLN==:12		;MAGTAPE RECORD LENGTH
	.PFUDT==:13		;NETWORK USER I.D.
	.PFPWD==:14		;NETWORK ASCII PASSWORD
	.PFBPW==:15		;NETWORK BINARY PASSWORD
	.PFACN==:16		;NETWORK ACCOUNT STRING
	.PFOPT==:17		;NETWORK OPTDATA FIELD
	.PFBOP==:20		;NETWORK BINARY OPTDATA
	.PFACC==:21		;MAGTAPE ACCESS
	.PFEXP==:22		;MAGTAPE EXPIRATION DATE
	.PFOFL==:23		; OFFLINE file attribute
	.PFTCN==:24		;TCP CONNECTION
	.PFTPR==:25		;TCP PERSIST
	.PFTTM==:26		;TCP TIMEOUT
	.PFTTS==:27		;TCP TYPE OF SERVICE
	.PFTSC==:30		;TCP SECURITY
	.PFTCM==:31		;TCP COMPARTMENTS
	.PFTHR==:32		;TCP HANDLING RESTRICTIONS
	.PFTTC==:33		;TCP TRANMISSION CONTROL
	.PFTLH==:34		;TCP LOCAL HOST
	.PFTFH==:35		;TCP FOREIGN HOST

JS(FILNEN)			; Lh - pointer to file name string block
				; Rh - pointer to extension string block
JS(FILVER)			; Lh - fork number of originator of this jfn
				; Rh - version number
JS(FILMS1)			; LH- DIRECTORY WILD MASK
				; RH- NAME WILD MASK
JS(FILIDX,0)			; RH - INDEX INTO DEVICE TABLES FOR THE
				;	ORIGINAL DEVICE GTJFN'ED.  I.E.
				;	DOES NOT CHANGE DURING SPOOLING
JS(FILMS2)			; LH- EXTENSION WILD MASK
JS (FILBCT,0)			;FOR DECNET, POINTER TO COUNTS
JS(FILFDB)			; ADDRESS OF THE FDB IN THE DIRECTORY
JS(FILCOD)			;C(LH) := STRUCTURE UNIQUE CODE
				;C(RH) := PT0 OFN FOR LONG FILE
JS FILNND,1			; DECNET PORT # ,, PTR TO NODE NAME STRING

JS FILZZZ,0			;END OF JFN BLOCK

MLJFN==:FILZZZ-JFN0		; # OF WORDS PER JFN BLOCK
MJFN==:<<JSJFNA-JFNPGA+MLJFN-1>/MLJFN> ;MAX NUMBER OF JFNS
RJFN==:MJFN*MLJFN		;ACTUAL SPACE USED BY JFNS
;GLOBAL job defintions
;   IFN CFSCOD,<
 JBPCKT==:^D32			;Jobs in a packet
 LCLPKT==:<NJOBS+JBPCKT-1>/JBPCKT ;Packets we need
 MXGLBS==:^D511			;Max global jobs
 JBWDS==:<MXGLBS+^D35>/^D36	;Words of bits needed
 MXPKTS==:MXGLBS/JBPCKT		;Max packets
RS	JOBMBT,JBWDS		;Allocate the table
RS	JOBGLB,<MXGLBS+2>/3	;Length of global to local table
RSI	GLBPTR,<<POINT ^D12,JOBGLB>> ;Inital byte pointer (to global job 1)
;   >	;IFN CFSCOD
;PROCESS-PRIVATE AREA

DEFINE ASNPSB (P,N)<
	PSV (P'A,N*PGSIZ)
	P=:P'A_-PGSFT>

ASNPSB PSSPS,0			;START OF PSB SPECIAL PAGES,MUST BE FIRST
ASNPSB CXBPG,1			;SWAPPER, MAP TEMP
ASNPSB CPTPG,1			; ..
ASNPSB CPYPG,1			; ..
ASNPSB PSSPE,0			;END OF PSB SPECIAL PAGES
ASNPSB FPG0,1			;FORK UTILITY PAGES
ASNPSB FPG1,1			;[7433]NOTE: FPG1 and FPG2 must be
ASNPSB FPG2,1			;[7433] contiguous for SETJSB in FORK.MAC
ASNPSB FPG3,1			; ..
	NPSIPG==:2		;# OF PAGES FOR PI STORAGE
ASNPSB PSIPG,NPSIPG		;PSI IN PROGRESS STORAGE
;* * * * *
;These can be removed after other modules are fixed
; * * * * *
	NIDXPG==:^D16		;NUMBER OF PAGES FOR THE INDEX
ASNPSB IDXPG,0			;Start of index table
NDG DRMASZ,0			;Size of directory
ASNPSB DIRPG,DRMASZ		;DIRECTORY WINDOW
	NDDTPG==:3		;NUMBER OF PAGES FOR MDDT
ASNPSB DDTPX,NDDTPG		;MDDT PRIVATE SEGMENT
;DDTPGA is defined in POSTLD as an arbitrary place in the symbol section.

;FROM HERE TO THE END OF THE PSB ARE MAGIC PAGES. THEY NEED TO LIVE
;TOGETHER AT THE END.

ASNPSB UPTPG,1			;USER SECTION 0 PAGE TABLE
ASNPSB HWPT,0			;HARDWARE VARIABLES IN PSB
ASNPSB PSBPG,1			;PROCESS CONTEXT VARIABLES
ASNPSB PS2PG,1			;PSB ADDITION (STACK AND WS), MUST BE LAST

PSBMSZ==:<<PS2PGA-PSSPSA>_-PGSFT>+1 ;SIZE OF PSB (PAGES)
;MACROS FOR DECLARATION OF STORAGE

;PSB STORAGE

DEFINE TS(T,N)<
	T=:PSBPGA+TSBLOC
   IFB <N>,<
	TSBLOC==TSBLOC+1>
   IFNB <N>,<
	TSBLOC==TSBLOC+N>
>


;PROCESS STORAGE BLOCK ASSIGNMENTS

TSBLOC==0			;INITIAL VALUES

TS UACB,NUACB			;MONITOR-CALL AC STACK
TS EUACB,0			;END

TS JOBNO,1			;JOB NUMBER TO WHICH THIS FORK BELONGS
TS JOBBIT,1			;SCHEDULER CONTROL BITS
TS FNPMAX,1			;MAX NUMBER PAGES IN WS FOR THIS FORK
TS JOBCK0,1			;VARIABLES FOR SCHEDULER TIME QUARANTEE
TS JOBCK1,1			; ..
TS RUNT2,1			;RUNTIME FRACTIONAL PARTS OF A MILLISECOND

NLFKS==:NUFKS			;MAX NUMBER FORK HANDLES/PROCESS
TS FKTAB,NLFKS/2		;LOCAL FORK HANDLE TO JOB HANDLE TABLE

TS FORKN,1			;JOB FORK NUMBER OF TOP FORK,,THIS FORK
TS FKRT,1			;FORK RUN TIME

TS PRARGP,1			;POINTER TO PROCESS ARGUMENTS
TS MPP,1			;MONITOR SAVED STACK POINTER AT LAST MENTR
TS(PRIMRY,1)			; Primary io indirection pointers
TS SLOWF,1			;SLOW MON ROUTINE FLAG
TS INTDF,1			;DEFER INTERRUPTS IF .GE. 0
TS INTDFF,1			;SOS INTDF  OR JSYS PSISV1
TS MJRSTF,1			;JRSTF @FPC  OR  JRST PSISV0
TS ACBAS,1			;CURRENT AC STACK POINTER

TS ITFFL,1			;FLAGS ON INTERRUPT TO MEXEC ***MUST STAY WITH ITFPC
TS ITFPC,1			;PC ON INTERRUPT TO MEXEC
TS TRPID,1			;IDENT OF PT OR PAGE CAUSING TRAP
TS TRPPTR,1			;STORAGE ADDRESS OR POINTER CAUSING TRAP

TS UAC,20			;USER AC'S (FROM BLOCK 1)
TS PAC,20			;PROCESS AC'S
TS PFL,1			;PROCESS FLAGS ***MUST STAY WITH PPC
TS PPC,1			;PROCESS PC
TS NSKED,1			;NO-SCHEDULE WORD
TS RSKED,1			;NO-SCHEDULE TRAP

NTSK==:133			;SIZE OF PAGER TRAP STACK
TS TRAPSK,NTSK			;STACK USED DURING PAGER TRAPS
TS TRAPAP,1			;PAGE TRAP SAVED P
TS TRAPC,1			;PAGER TRAP RECURSION COUNT
TS UTRSW,1			;SAVED PAGE FAIL WORD FOR USER
TS UTRPCT,1			;COUNT OF PAGER TRAPS FOR THIS PROCESS
TS USWPCT,1			;COUNT OF SWPINW CALLS FOR THIS PROCESS
TS PTTIM,1			;TIME SPENT IN PAGER TRAPS
TS LSTXGR,1			;TIME (FKRT) OF LAST XGC
TS FKTLST,1			;LOST TIME WHILE CLOCK TURNED OFF
TS CRSKED,1			;IN CRITICAL SECTION IF NON-0
TS SKDFL,1			;SCHEDULER TEMP (RETURN FLAGS)
TS SKDPC,1			;SCHEDULER TEMP (RETURN) **MUST STAY WITH SKDFL
TS MONBK,1			;INTERRUPT TO MONITOR IF NON-0
TS LSTIPC,1			;PC OF LAST JSP T2,ITRAP1
TS PSIPT,1			;PSI STORAGE LIST POINTER
TS PIOLDS,1			;FKSTAT PRIOR TO PSI IF WAS WAITING
TS LEVCHN,1			;LEVEL TABLE,,CHANNEL TABLE  ADDRESSES
TS PSISYS,1			;NON-0 IF PSI SYSTEM OFF
TS MONCHN,1			;CHANNELS RESERVED BY MONITOR

TS PSICHA,NTERMI/6		;CHANNEL ASSIGNED TO TERM CODE
TS PIMSK,1			;PSI REQUEST WORD BEING PASSED TO PSI SERVICE
TS PSIBW,1			;BREAK WAITING WORD
TS FORCTC,1			;CHANNEL WHICH CAUSED FORCED FORK TERMINATION
TS PSICHM,1			;CHANNEL ENABLED WORD
TS SUPCHN,1			;CHANNELS RESERVED BY SUPERIOR

TS ENSKR,4			;SCHEDULER TEMP (RETURN)

   				;LEAVE ROOM FOR HARDWARE STORAGE
;Definition of offsets in the UPT

;WARNING: THESE VARIABLES MUST BEGIN AT OFFSET 420. THE CURRENT
;DEFINITIONS THAT PRECEDE THIS WARNING CREATE 420 WORDS. NO WORDS
;MAY BE ADDED WITHOUT MOVING AN EQUAL NUMBER BEYOND OFFSET 600

IFN TSBLOC-420,<PRINTX ?PSB STORAGE NOT ALIGNED TO HDWR BOUNDARY>

;CELLS IN USER PROCESS TABLE (UPT)

   IFN KLFLG,<
UPTPPM=:HWPTA+400		;PER-PROCESS MAP ORIGIN
NPPMPG==40			;NUMBER OF ENTRIES (2/WORD) IN PP MAP
UPTTPI=:HWPTA+420		;TRAP INSTRUCTIONS
KLLUUO=:HWPTA+420		;LUUO TRAP ADDRESS
UPTOVI=:HWPTA+421		;OVERFLOW TRAP INSTRUCTION
KIMUFL=:HWPTA+424		;MUUO FLAGS
KIMUPC=:HWPTA+425		;MUUO PC
KIMUEF=:HWPTA+426		;EFFECTIVE ADDRESS
KIMPCW=:HWPTA+427		;PROCESS CONTEXT WORD
UPTPCW=:HWPTA+427		;PROCESS CONTEXT WORD
UPTDSP=:HWPTA+430		;DISPATCH VECTOR-UUO NEW PC WORDS
USECTB=:HWPTA+540		;USER SECTION TABLE
UPTPFW=:HWPTA+500		;PAGE FAIL WORD
TRAPS0==:UPTPFW			;PAGE FAIL WORD USED DIRECTLY
UPTPFL=:HWPTA+501		;PAGE FAIL OLD FLAGS WORD
UPTPFO=:HWPTA+502		;PAGE FAIL OLD PC WORD
UPTPFN=:HWPTA+503		;PAGE FAIL NEW PC WORD
TRAPFL==:UPTPFL			;GENERIC LOCATION FOR OLD FLAGS
TRAPPC==:UPTPFO			;GENERIC LOCATION FOR OLD PC
   >				;END OF IFN KLFLG

   IFN KCFLG,<
UPTPPM=:HWPTA+400		;PER-PROCESS MAP ORIGIN
NPPMPG==40			;NUMBER OF ENTRIES (2/WORD) IN PP MAP
UPTTPI=:HWPTA+420		;START OF AREA COPIED TO NEW PROCESS
KLLUUO=:HWPTA+420		;LUUO TRAP ADDRESS
UPTOVI=:HWPTA+421		;FIRST OVERFLOW TRAP INSTRUCTION
KIMUFL=:HWPTA+424		;MUUO OLD FLAGS
KIMUPC=:HWPTA+425		;MUUO OLD PC
KIMUEF=:HWPTA+426		;MUUO EFFECTIVE ADDRESS
KIMOAC=:HWPTA+427		;MUUO OP CODE AND AC
KCPFCD=:HWPTA+451		;PAGE FAIL CODE
KCPFVA=:HWPTA+452		;PAGE FAIL VIRTUAL ADDRESS
KCPFPA=:HWPTA+453		;PAGE FAIL PHYSICAL ADDRESS
KCPFD1=:HWPTA+454		;PAGE FAIL ADDITIONAL DATA 1
KCPFD2=:HWPTA+455		;PAGE FAIL ADDITIONAL DATA 2
KCPFOF=:HWPTA+456		;PAGE FAIL OLD FLAGS WORD
KCPFOP=:HWPTA+457		;PAGE FAIL OLD PC WORD
KCPFNF=:HWPTA+460		;PAGE FAIL NEW FLAGS
KCPFNP=:HWPTA+461		;PAGE FAIL NEW PC WORD
USSPTB=:HWPTA+520		;USER SUPER SECTION TABLE
USECTB=:HWPTA+540		;USER SECTION TABLE
TRAPFL==:KCPFOF			;GENERIC LOCATION FOR OLD FLAGS
TRAPPC==:KCPFOP			;GENERIC LOCATION FOR OLD PC
   >				;END OF IFN KCFLG

FFL==:KIMUFL			;MENTR-MRETN PC
FPC==:KIMUPC			;MENTR-MRETN PC

TSBLOC=600			;END OF RESERVED SLOTS
;More of the PSB, below the UPT locations

TS PIOLD2,1			;FKSTA2 PRIOR TO PSI IF WAS WAITING
TS PSIBIP,1			;BREAK IN PROGRESS WORD (LEVELS)
TS ADRBRK,1			;ADDRESS BREAK INFO
TS ADRBK1,1			;ADDRESS OF INSTRUCTION CAUSING ADDR BREAK
TS ADRBAD,1			;LAST BREAK REFERENCED THIS ADDRESS
   IFN KCFLG,<
TS ADRBUP,1			;UPPER BOUND ADDRESS FOR ADDRESS BREAK
   >				;END OF IFN KCFLG
TS FRKNOP,1			;CONTAINS A NOP OR MDDT BREAKPOINT
;TS MONFL,1			;TEMP MONITOR PC AND FLAGS
;TS MONPC,1			;MUST STAY TOGETHER ****
TS PIFL,1			;SAVED FLAGS MUST STAY WITH PIPC *****
TS PIPC,3			;SAVED PC DURING INITIAL PI SERVICE
				; CALLED WITH XPCW
TS FKTOFF,1			;TIME AT WHICH CPU CLOCK TURNED OFF
TS NWSCE,1			;NUMBER OF ENTRIES IN WS CACHE
TS LSTXGT,1			;TIME (TODCLK) OF LAST XGC
TS UMUUOW,2			;SAVE MUUO WORD FOR USER
TS KIMUU1,2			;LAST UUO WORD FROM USER
TS PSLEVT,1			;ADDRESS OF USER'S LEVEL TABLE
TS PSCHNT,1			;ADDESS OF USER'S CHANNEL TABLE
TS PSBITS,1			;MISCELLANEOUS PER PROCESS BITS
TS TRPDSP,1			;DISPATCH FOR MON ILLEG MEM REF
TS HPSWRN,1			;TIME TO FLAG EXCESSIVE HP SCHEDULING
TS DDPFRK,1			;1=) This is DDMP fork
TS PSBSAB,1			;ADDRESS OF DECNET SAB INDIRECT TABLE

IFN <FTKLIPA>,<
TS SCSTMQ,1			;Head pointer for SCS% message queue
TS SCSBMQ,1			;Tail pointer for SCS% message queue
TS SCSTDQ,1			;Head pointer for SCS% datagram queue
TS SCSBDQ,1			;Tail pointer for SCS% datagram queue
TS SCSTXQ,1			;Head pointer for SCS% DMA xfer queue
TS SCSBXQ,1			;Tail pointer for SCS% DMA xfer queue
TS SCSTEQ,1			;Head pointer for SCS% event queue
TS SCSBEQ,1			;Tail pointer for SCS% event queue

TS SCSPS0,1			;PSI channels for  msg avail,,dg available
TS SCSPS1,1			;PSI channels for  DMA avail,,events

TS SCSTCQ,1			;Head pointer for CB queue
TS SCSBCQ,1			;Tail pointer for CB queue

TS SCSTXN,1			;Head pointer for list of DMA buffer names
TS SCSBXN,1			;Tail pointer for list of DMA buffer names
>

		; ** KEEP EVLNTH/EVADDR TOGETHER IN ORDER
TS EVLNTH,1			;ENTRY VECTOR LENGTH
TS EVADDR,1			;ENTRY VECTOR ADDRESS
		; ** KEEP EVLNTH/EVADDR TOGETHER IN ORDER
TS PATLEV,1			;PA1050 ENTRY VECTOR LENGTH
TS PATADR,1			;10/50 COMPATABILITY ENTRY VECTOR
		; ** KEEP PATLEV/PATADR TOGETHER IN ORDER
TS PATU40,1			;WHERE TO STORE C(40), SETUP AS UMOVEM 1,XX
TS PATUPC,1			;WHERE TO STORE PC, SETUP AS UMOVEM 1,YY

TS DMSLEV,1			;RMS (FORMERLY DMS) ENTRY VECTOR LENGTH
TS DMSADR,1			;RMS (FORMERLY DMS) ENTRY VECTOR
		; ** KEEP DMSLEV/DMSADR TOGETHER IN ORDER
TS DMSU40,1			;WHERE TO STORE C(40) ON DMS CALL
TS DMSUPC,1			;WHERE TO STORE PC OF DMS CALL

TS(CAPMSK,1)
TS(CAPENB,1)
TS(SNPPGS,1)			; PAGES LOCKED DOWN FOR SNOOPING
				; XWD  COUNT  ,,  PAGE # OF FIRST PAGE
TS(SNPLST,1)			; XWD FLAGS ,, LINK TO 1ST BP FOR FORK
TS(LSTERR,1)			; Last error number
TS (PDVS,1)			; Pointer to PDV block
NERRSV==:4			; NUMBER OF ERROR PARAMETERS
TS(ERRSAV,NERRSV)		; Block of error parameters

TS(PSBMAP,PSBMSZ)		;MAP FOR PROCESS AREA
PSBM0=:PSBMAP-PSSPS		;BEG OF PSBMAP RELATIVE TO VIRT P G 0
PPLOW==:<PSBMAP-PSBPGA>+<PSSPEA-PSSPSA>/PGSIZ ;LOWEST NON-SPECIAL PAGE IN PP AREA
PPHI==:<PPLOW+<UPTPGA-PSSPEA>/PGSIZ>-1	;HIGHEST NONSPECIAL PAGE

; STORAGE ASSOCIATED WITH JSYS TRAPS

TS JTBLK,1			; FKJTB+forkn for this fork
TS JTLCK,1			; Lock on jsys traps to monitor (this)
				; fork;  protects JTTRW and allows only
				; one jsys trap interrupt at a time to
				; this monitor
TS JTTRW,1			; Jsys Trap Trap Word
				; (set by interrupting fork)
				; Contains trapping instruction
TS JTTFK,1			; Forkn of trapping fork
TS JTMNW,1			; Jsys Traps Monitor fork Word
				;  B12-B17: monitor's PSI channel,
				; 	  77 means don't PSI this montior
				;  RH: forkn of mon interrupted (PSI'd)
TS PNSKDC,1			;NOSKED'S DONE BY DIAG AND OTHER
				; RESOURCE MONGERS
TS ARTHTR,1			;USER-SPECIFIED ARITHMETIC TRAP
TS PDOVTR,1			;ADDRESS OF USER'S BLOCK FOR PDL OVERFLOW
TS CRTRGN,1			;FLAG TO INDICATE CODE NOW
				; IN CRITICAL REGION OF MONITOR.
				; INHIBITS REMOVAL FROM BALSET
TS STRWRD,1			;FLAGS,,# OF STRUCTURES MOUNTED BY FORK.
				; THIS NUMBER MAY NOT BE ACCURATE AS IT
				; IS NOT DECREMENTED WHEN A DRIVE IS
				; REMOVED FROM THE SYSTEM, AND THE FORK
				; HAS NOT DECREMENTED IT.  THE COUNT IS
				; USED AT KSELF TIME TO SEE IF IT IS
				; NECESSARY TO GO THRU EXTRA STRUCTURE
				; CODE.
TS FKXORA,1			;FORK IDXORA DURING CREATION OF STRUCTURE
TS LOKHI,1			;INDEX OF HIGHEST LOCK HELD AT THIS TIME

; Variables in psb associated with DIRECTORIES

TS(DRLOC,1)			;LOCATION IN DIR DURING SEARCHES
TS(DRINP,1)			;POINTER TO INPUT NAME DURING LOOKUP
TS(DRINL,1)			;LENGTH OF INPUT STRING
TS(DRMSK,1)			;MASK OF 0 BITS IN LAST WORD OF STRING
TS(DRSCN,1)			;POINTER TO FDB LINK DURING LOOKUPS
TS(DROFN,1)			;RH = OFN OF LAST DIRECTORY MAPPED
				;LH = LAST FDB CHECKED
TS(DRMAP,1)			;ADDRESS OF MAP PAGE WHEN SEC2
TS (DIRCAD,1)			;CACHE ADDRESS OF LAST MAPDIR
TS(IDXMAP,1)			;ADDRESS OF IDX TABLE PAGE MAP WHEN EXTENDED ADDRESSING

TS(STRINF,1)			;FILE STRUCTURE INFORMATION

	FTDYN <
TS CTSSBK,1			;Pointer to Canonical Terminal Support (CTS)
				;  State Block
>				;End of Conditional Assembly
   IFN KNIN,<
TS UPLIST,1			;Pointer to portal list block for NI% JSYS
   >
IFG TSBLOC-1000,<
	PRINTX ?PSB STORAGE OVERFLOWS ONE PAGE>

TSBLOC=1000			;PUT WS CACHE AT START OF SECOND PAGE
WSCNCW==:200			;SIZE OF WS CACHE - MUST MATCH VALUES IN PAGEM
TS WSCSH,WSCNCW			;WORKING SET CACHE

;PSI STACK AND ACS

NPIPDL==:55			;SIZE OF PSI STACK
				;*** NOTE, THIS VALUE SHOULD BE
				;GREATER THAN THE VALUE NUFKS.
				;HOW MUCH GREATER IS VARIABLE, BUT
				;IT SHOULD BE AT LEAST 2 MORE.***
TS PIPDB,NPIPDL			;PSI ROUTINES STACK
TS PIAC,20			;SAVED USER AC'S DURING BREAK START

NUPDL==:400			;SIZE OF MONITOR CALL STACK
UPDL=:PSBPGA+2*PGSIZ-NUPDL	;PUT UPDL AT TOP OF STACK PAGE
IFL <2*PGSIZ-NUPDL-TSBLOC>,<PRINTX ?PSB Variables and Stack Conflict>
;SWAPPABLE PATCH AREA:


	SWAPCD			;PUT SWPF IN SWAP MONITOR CODE

SWPF2::
SWPF1::
SWPF::	XLIST
	REPEAT 100,<0>
	LIST


;THIS IS THE PATCH SPACE FOR THE RESIDENT MONITOR.

	RSI FFF2,<>,0
	RSI FFF1,<>,0
	RSI FFF,<>,FFFSZE


;THE FOLLOWING MUST BE THE FIRST RESIDENT CODE LOADED

	RESCD

;ASSEMBLE THE COPYRIGHT NOTICE SO THAT IT WILL BE SEEN IF
;ANYONE DUMPS THE EXE FILE OR MEMORY

DEFINE $ASCIZ (TEXT)<
	ASCIZ /TEXT/>

	CPYRYT ($ASCIZ)		;CALLS ITS ARG WITH NOTICE TEXT

;PARAMETER DEPENDENT DEVICE CODE

;DTE

PROFLG::1			;IF 0 DON'T GO INTO PRIMARY PROTOCOL

DTSCNW::0			;HOLD CONO WORD FOR MASTER DTE
MSTRDT::0			;ID OF MASTER DTE
	IFG DTEN,<		;DTE STORAGE
PWRFLE::CALL DTEPWF		;TELL MASTER -11 OF POWER FAIL
RS FEFLG,1			;USE 2ND PROTOCOL UNITL FURTHER NOTICE
RS FEDBSW,1			;FE DEBUG SWITCH
RS FEDBST,1			;FE DEBUG STATE, TOGGLED BY .DFDBG MSG
RSI SVDTRJ,<0,JRST SVDTAC>	;DOES A JSR TO HERE

QQ==0				;GENERATE INT VECTOR
DTETRP::REPEAT DTEN,<DTEINN \QQ	;DO ONE
		QQ==QQ+1>	;DO ALL DTE'
QQ==0				;NOW DO INTERRUPT CODE
REPEAT DTEN,<DTEPRO \QQ		;DO ONE
		QQ==QQ+1>	;AND DO ALL

QQ==0
CNDO::	REPEAT DTEN,<CONO DTE0+QQ,
			QQ==QQ+4> ;DO ALL DTE'S
QQ==0
DATO::	REPEAT DTEN,<DATAO DTE0+QQ, ;THE DATAO TABLE
			QQ==QQ+4> ;DO ALL DTE'S
DTESTK::IOWD DTESZ,DTESKP	;DTE LOCAL STACK
	>
   IFE DTEN,<			;IF NO DTE
PWRFLE::JFCL			;NO SPECIAL POWER FAIL CODE
   >

   IFE DCN,<			;IF NO DECNET SUPPORT
SCSWJF::RET			;SWJFN% hook, called from JSYSF
IFN FTNSPSRV, DEDMCB::
IFN FTNSPSRV, NSPSPC::
NSPQ::	BUG.(HLT,NSPUDF,STG,SOFT,<UNSUPPORTED NETWORK FUNCTION>,,<

Cause:	If the monitor is not built for DECnet (DCN is 0), and
	a DECnetL utility routine is called, this BUGHLT will occur.
	Invoking the following routines will cause this BUGHLT:
	DEDMCB (shut links to dead MCB), NSPSPC (get a network buffer), and
	NSPQ (put a message in the scheduler queue).
>)
IFN FTNSPSRV,<
NODINI::
NSPINI::RET			;NOTHING TO DO

;ROUTINE TO INITIALIZE NODE NAME TO NULL FOR NON-DECNET SYSTEM

NAMINI::SETZM OURNAM		;NO NODE NAME
	SETZM OURCNT		;NO CHARACTERS IN NAME
	RET

.NODE::	JRST UJSYS0		;UNDEFINED IF NO DECNET SUPPORT
>

IFE FTNSPSRV <			;.NODE jsys for 6.1, needed for LAT and GALAXY

; The NODE% jsys when DCN is = 0 supports only functions .NDSLN and .NDGLN,
; i.e. set and read DECnet host name.  These functions are needed for LAT and
; GALAXY.

	SWAPCD
.NODE::	MCENT			;JSYS entry
	UMOVE T1,1		;Get function code
	CAIN T1,.NDSLN		;Set local name?
	JRST NODSLN		; -yes, go set it
	CAIN T1,.NDGLN		;Get local name?
	JRST NODGLN		; -yes, go get it
	ITERR (ARGX02)		;Neither, return error

;NODSLN - set local host name
NODSLN:	MOVE T1,CAPENB		;Privs required
	TXNN T1,SC%WHL!SC%OPR	;WHEEL or OPERATOR
	ITERR (CAPX1)		; -too bad

	UMOVE T2,2		;GET ADDRESS OF USER'S ARGUMENT BLOCK
	UMOVE T1,.NDNOD(T2)	;GET POINTER TO STRING IN USER SPACE
	MOVEI T2,OURNAM		;WE'LL WRITE PARSED NAME TO OURNAM
	CALL PARNDU		;MAKE SURE NODE NAME IS KOSHER
	  RETBAD()		;FAILED, TELL CALLER WHY
	MOVEM T2,OURCNT		;REMEMBER LENGTH OF OURNAM
	MRETNG			;Give good return

;NODGLN - get local host name
NODGLN:	MOVE T1,[POINT 7,OURNAM] ;Get bp to node name
	MOVE T2,OURCNT		;Count of bytes
	UMOVE T3,2		;GET USER'S POINTER TO ARG BLOCK
	UMOVE T3,.NDNOD(T3)	; FROM WHICH GET HIS BYTE POINTER
	TLC T3,-1		;IS LH OF DESTINATION PTR -1?
	TLCN T3,-1
	HRLI T3,(POINT 7,)	;YES, RESOLVE IT
	DO.			;LOOP
	  ILDB T4,T1		;  Get next byte
	  JUMPE T4,ENDLP.	;  Exit loop if null byte
	  XCTBU [IDPB T4,T3]	;  Deposit byte into user space
	  SOJG T2,TOP.		;  Loop back if more bytes to do
	  SETZ T4,		;   otherwise end with a null byte
	ENDDO.
	MOVE T2,T3		;Get user byte pointer (dont destroy T3)
	XCTBU [IDPB T4,T2]	;Write null byte
	UMOVE T1,2		;GET USER'S POINTER TO ARG BLOCK
	UMOVEM T3,.NDNOD(T1)	;SAVE ADJUSTED DESTINATION POINTER
	MRETNG			;Give good return

	RESCD

>

.NTMAN::JRST UJSYS0		;       "
DCOPNM==:0			;DEFAULT OF 0 IF NO DECNET

EVRKIL::			;DECNET DUMMY ROUTINES
DIMLNK::RET

RSI OURNAM,<ASCII /TOPS20/>,WPN	;SPACE TO HOLD LOCAL NODE NAME
RSI OURCNT,6			;COUNT OF CHARS IN "OURNAM"

  IFE FTNSPSRV,<		;Dummys for DCN=0 and 6.1

NSPCG::
NSPJB0::
NSPCR::
RTRSEC::
SCTSEC::
SCLGOU::
OBJINI::
CTHINI::
MCSRV::
REQNS::
RELSAB::RET

TNUKIL::RETSKP

CTHNGU::
SCTINI::
SCJINI::
RTRON::
DTIPPI::
CTHTXT::
	XJRST [MSEC1,,.+1]	;In case we arent in section 1
	BUG.(CHK,NODCN,STG,SOFT,<No DECnet>,,<

Cause:	The monitor is built without DECnet, and a function that should
	never be called was called. This is a software bug.
>,R)

  >				;End of IFE FTNSPSRV

>				;END OF IFE DCN

   IFE MTAN,<			;IF NO MAGTAPES (YOU LUCKY DEVIL)
RELMT::RET>			;DUMMY ROUTINE

   IFE ATS,<			;IF NO APPLICATIONS TERMINAL SERVICE
ATSINI::HRLOI T1,377777		;SET ATS TIMER NOT TO GO REQUIRE WAKEUP
	MOVEM T1,ATSTYM
DOATSQ::RET			;FOR NSPTSK - DON'T DO ANYTHING
CKATSQ::			;FOR NSPTST - DON'T WAKEUP
CHKATS::RETSKP			;DUMMY CHKATS - INDICATES NOT AN ATS JFN
.SINM::	JRST UJSYS0		;UNDEFINED IF NO ATS SUPPORT
.SOUTM::JRST UJSYS0		;UNDEFINED IF NO ATS SUPPORT
>
   IFE FTNSPSRV,<		;BEGINNING OF LARGE CONDITIONAL

;Define dummy symbols for TTYSRV when a particular 
;line type is not turned on.


DEFINE TLAB (TDLST),<
   XLIST			;DON'T BE VERBOSE IN LISTING
   IRP TDLST,<...TLB TDLST>	;DO GROUPS IN THE CALL
   LIST				;LISTING BACK TO NORMAL
   >

DEFINE ...TLB(TDLST),<..TLAB (TDLST)> ;BREAK IT DOWN INTO 2 ARGS

DEFINE ..TLAB(TYLST,LAB),<IFE .'TYLST'FLG,<LAB::>> ;DEFINE THE DUMMY SYMBOL


;Dummy TDCALL labels

TLAB <<FE,BIGST2>,<PT,CHKPTA>,<CH,CHRRH>,<MC,CKMCOU>>
TLAB <<PT,CKPTOU>,<CH,CTHCKI>,<CH,CTHCLI>,<CH,CTHEXF>>
TLAB <<CH,CTHFOU>,<CH,CTHLGO>,<CH,CTHNRT>,<CH,CTHOOE>>
;**;[7204] Change 1 line in dummy TDCALLS	WCM	21-NOV-85
TLAB <<CH,CTHPPC>,<CH,CTHSBM>,<CH,CTHSLN>,<CH,CTHSFM>,<CH,CTHSOF>>
TLAB <<CH,CTHSPR>,<CH,CTHSPS>,<CH,CTHSSP>,<CH,CTHSTO>>
TLAB <<CH,CTHSWD>,<CH,CTHTCI>,<CH,CTHTYP>,<FE,FEDABL>>
TLAB <<CH,CTHASC>,<CH,CTHBIN>,<CH,CTHTID>>
TLAB <<FE,FENTM>,<FE,FESTRO>,<LH,LHRRH>,<LH,LTCOBF>>
TLAB <<LH,LTEXF>,<LH,LTHNGU>,<LH,LTSALL>,<LH,LTSOF>>
TLAB <<LH,LTSTRO>,<LH,LTTCOU>,<MC,MCCKSA>,<MC,MCCOBF>>
TLAB <<MC,MCEXF>,<MC,MCHNGU>,<MC,MCLNON>,<MC,MCRRH>>
TLAB <<MC,MCSBEF>,<MC,MCSTRO>,<MC,MCSXON>,<MC,NRTSOF>>
TLAB <<PT,PTYCTM>,<FE,SNDXN2>>
TLAB <<FE,SNDXO2>,<PT,STPAR5>,<PT,STRTO2>,<PT,TCIPTY>>
TLAB <<CH,TTC7MC>,<MC,TTC7MC>,<PT,TTC7S2>,<TV,TTC7SN>>
TLAB <<FE,TTCHI3>,<FE,TTCHNL>,<FE,TTCOB4>>
TLAB <<FE,TTEXF>,<FE,TTHU2>,<FE,TTMSAL>>
TLAB <<PT,TTMSNO>,<FE,TTMSSN>,<FE,TTSBEF>,<FE,TTSETF>>
TLAB <<FE,TTSNT1>,<FE,TTSSP2>,<FE,TTTOBL>>
TLAB <<FE,TTXON1>,<TV,TVMSNT>,<TV,TVRRH>,<TV,TVTCOB>>
TLAB <<TV,TVTCSO>,<TV,TVTDET>,<TV,TVTDTS>,<TV,TVTIGA>,<TV,TVTPAR>>

;This instruction must follow the last TLAB def for all
;dummy TDCALLs labels 

	JRST TTBUGH		;IF WE REACH HERE, BADTTY BUGHLT

  IFE .MCFLG,<

TTMCNU::RETSKP

NRTINI::RET

  >;END IFE .MCFLG



  IFE .FEFLG,<			;DUMMY SYMBOLS FOR FE 

CKNOIS::
TTTOBL::RET

  >

   >;END OF LARGE IFE FTNSPSRV

;BUFFER ADDRESSES

LPTRLP::
	XX==0
   REPEAT LPTN,<
	-NLPBF,,LPTBUF+XX
	XX=XX+2*NLPBF>

;TTYSRV

IFL NTTBL1-NTTBL,<PRINTX ?NTTBL IS GREATER THAN NTTBL1. THAT IS AN ERROR.>

;		Wake   #InBufs	  #OutBfs	MaxInChars	  MaxOutChars
IBFRC::	EXP <^D20>B7 +<NTTBL>B11+<NTTBL>B15 +<NTTBL*NCHBF-1>B25+<NTTBL*NCHBF-2>B35
IBFRC1::EXP <^D100>B7+<NTTBL>B11+<NTTBL1>B15+<NTTBL*NCHBF-1>B25+<NTTBL1*NCHBF-2>B35
OVRBCT==:1			;NUMBER OF EXTRA BUFFERS FOR HIGH SPEED LINES
;GLOBAL CONTROL FLAGS

DRUMP::	DRMN			;1 = SWAP ON DRUM, 0 = SWAP ON DSK,
				;-1 = DO NOT SWAP
NSWPGS::SWDST			;NUMBER OF SWAP PAGES TO ALLOCATE
RSI PRELDF,0			;NO PRELOADING IF 0
SWRSAF::1			;REASSIGN SWAP ADDRESSES IF .G. 0
POSPGF::1			;POST PURGE IF .G. 0

SMLKF::	0			; .G 0 MEANS LOCK SWPMON IN CORE,
				; .E 0 MEANS DEMAND PAGE SWPMON
CTYTYP::TYPCTY			;LINE TYPE FOR CTY
RS KLILNO,1			;KLINIK LINE NUMBER
PSNAM::	'PS    '			;NAME OF THE PUBLIC STRUCTURE
LPSNAM::0				;LOGICAN NAME IF OTHER THAN PS

;DISK QUOTA ENFORCEMENT FLAG AND VALUE

NDG	USRSCF,-1		;INITIAL CONTENTS OF USRSPC (NON-0 TO PREVENT
				; WRITE OPENF IF USER OVER ALLOCATION)

USRSPC:: USRSCF			;TRUE = DON'T ALLOW WRITE OPEN IF USER EXCEEDS
				;DIRECTORY DISK ALLOCATION

SYSSPC:: SYSSCF			;DON'T ALLOW WRITE OPEN IF SYSTEM FREE PAGE
				;COUNT IS .L. C(SYSSPC)

;**;[7363] Add 1 line at APRSER:-1L	MDR	12-SEP-86
RS APRFLW,1			;[7363] APRID word goes here
RS APRSER,1			;APR SERIAL NUMBER
; * * * *
;These will be removed
; * * * *
EXADFL::1B21			;EXTENDED ADDRESSING FLAG 1=MODEL B MACHINE
EXADF1::1B21			;MUUO/PAGE FAIL FLAG 1=MODEL B MACHINE
SMFLAG::0			;VALUE OF SMFLG (0=NON SM10 1=SM10)

EXADDR::-1			;DIRECTORY FLAG 0=SEC 0 740000
				;+>= SEC 2 MAX SIZE 30 PGS
				;- = SEC 2 MAX SIZE 256. PGS

SYSTAD::0			;SYSTEM LOAD DATE/TIME
SWCEND::NRCODL			;END OF SWAPPABLE MONITOR+BUGSTRINGS+BUGPOINTERS

;POINTER TO BUGPOINTER TABLE

NBUGP==:BGPTRZ-BGPTR+1
RSI BUGTP,<<SYMSEC,,BGPTR>>	;ADDR,LENGTH OF BUGPTR TABLE
RSI BUGTL,NBUGP

;SPT cutoff levels

SPC0::	EXP <SSPT-NOFN-3*NFKS>	;SPT LEVEL FOR USING INDIRECT PTRS
SPC1::	EXP SSPT-NOFN-100	;SPT LEVEL FOR NO NEW JOBS
SPC2::	EXP SSPT-NOFN-10	;SPT LEVEL FOR NO NEW FORKS

;CANONICAL POINTERS

   IFN KLFLG,<
IMMPTR::FLD(IMMCOD,PTRCOD)+PTWR+PTCACH
SHRPTR::FLD(SHRCOD,PTRCOD)+PTWR+PTCACH
INDPTR::FLD(INDCOD,PTRCOD)+PTWR+PTCACH
   >
   IFN KCFLG,<
IMMPTR::FLD(IMMCOD,PTRCOD)+PTWR
SHRPTR::FLD(SHRCOD,PTRCOD)+PTWR
INDPTR::FLD(INDCOD,PTRCOD)+PTWR
   >


;BOUND PAIRS, CONTAINING FIRST PAGE ADDR,,LAST PAGE ADDR
;USED AS ARGUMENTS TO BSMGG/BSMGP

RSVABP::RSVAR,,RSVARZ		;RESIDENT VARS
INCOBP::INCOD,,INCODZ		;INIT CODE
RSDABP::RSDAT,,RSDATZ		;RESIDENT DATA, NON-ZEROED
  IFN FTNSPSRV <
SYTBBP::BLOCK 1			;SYMBOL TABLE - FILLED IN BY POSTLD
  >
SWPMBP::NRCOD,,NRCODZ		;SWAPPABLE MONITOR

;BOUNDARY TO ARTIFICIALLY LIMIT CORE

NLOWPG:: 0			;Pages below here considered NXM
IFE KLFLG,<NMAXPG:: MAXCOR-1>  	;Pages above here are considered NXM
IFN KLFLG,<

;N.B.  
;The KL10 CPU has a problem which causes channel detected parity errors
;in  the last possible (22-bit) quadword of memory. It is easier to not
;use the last possible page of memory  than  to  fix  the  hardware  or
;generate special case code to prevent channel IO to the last page.

IFE <MAXCOR-20000>,<NMAXPG:: MAXCOR-2>
IFN <MAXCOR-20000>,<NMAXPG:: MAXCOR-1>

>  				;Pages above here are considered NXM


;ADMINISTRATIVE LIMIT OF PROGRAM (FORK) SIZE.  ACTUAL LIMIT MAY BE LOWER
;IF INSUFFICIENT CORE.  SYSTEM ADMINISTRATOR MAY ADJUST THIS PARAMETER
;TO LIMIT SIZE OF LARGE JOBS THEREBY ALLOWING MORE IN CORE.

PGMMAX:: MAXFKS			;FORK SIZE LIMIT SPECIFIED IN PARAMS

IPTIM::	IPTIMF			;FLAG FOR PAGE TRAP TIME FROM PARAMS

NRPMX::	NFKSPP+2		;RPLQ MIN, SHOULD BE .G. MINNR

MONCOR::<INCOD>_-PGSFT		;NUMBER PAGES OF RES MON


;SYSTEM LOGICAL NAME INITIAL VALUES

	.PSECT RSDAT
;WHEN SIX SPACES PRECEDE THE COLON, SLNINI INSERTS THE NAME OF THE PRIMARY
;STRUCTURE INTO THAT LOCATION

SYNMTB::XWD [ASCIZ/SYS/],[ASCIZ/      :<SUBSYS>/]
	XWD [ASCIZ/HLP/],[ASCIZ/SYS:/]
	XWD [ASCIZ/SYSTEM/],[ASCIZ/      :<NEW-SYSTEM>,      :<SYSTEM>/]
	XWD [ASCIZ/EDITOR/],[ASCIZ/SYS:EDIT.EXE/]
	XWD [ASCIZ/ACCOUNT/],[ASCIZ/      :<ACCOUNTS>/]
	XWD [ASCIZ/DEFAULT-EXEC/],[ASCIZ/SYSTEM:EXEC.EXE/]
	XWD [ASCIZ/PS/],[ASCIZ/      :/]
	XWD [ASCIZ/POBOX/],[ASCIZ/      :/]

SYNMCT==:.-SYNMTB

ERRPT::	ASCIZ /      :<SYSTEM>ERROR.REPORT/
LCKTAB:: 0				;MUST BE HERE
	ALLOKS
;TERMINAL TYPE TABLES
; B0, B1, B2, B3, B4-7, B8-11, B12-15, B16-19
; FF,TAB, LC, --, CRPD, LFPAD, TABPAD, FF PAD

;NORMAL MODE IS LOWERCASE BIT ON, MOST DEVICES WILL PRINT LC CHAR
;AS UC.  FF AND TAB PADDING IS SPECIFIED FOR TTYS IN CASE
;FF OR TAB BIT TURNED ON MANUALLY

DEFINE TY(BB,CRPD,LFPD,TBPD,FFPD,WID,LEN)<
	^D<<BB>B2+<CRPD>B7+<LFPD>B11+<TBPD>B15+<FFPD>B19+<WID>B27+<LEN>B35>
>
	RESCD

;**;[7423] Add VT300-SERIES (number 52)		DEE		11-MAR-87

TTYPE0::TY(0,0,0,2,12,72,66)	; 0 - MOD 33
	TY(6,0,0,2,12,72,66)	; 1 - MOD 35
	TY(1,0,0,2,12,72,66)	; 2 - MOD 37
	TY(1,10,0,0,0,80,66)	; 3 - TI
	0			; 4 - RESERVED FOR CUSTOMER
	0			; 5 -   "  "  "
	0			; 6 -   "  "  "
	0			; 7 -  "  "  "
	TY(1,6,6,2,12,72,66)	; 8 - DEFAULT: MAX PADDING, ETC.
	TY(7,0,0,0,0,0,0)	; 9 - 'IDEAL' TERMINAL, NO FILL INF SIZ
	TY(2,0,4,0,12,72,20)	; 10 - VT05
	TY(2,0,0,0,0,80,12)	; 11 - VT50
	TY(0,6,6,2,12,80,66)	; 12 - LA30
	TY(1,0,0,0,0,80,30)	; 13 - GT40 (WITH SMALL CHAR STRAPPING)
	TY(1,0,0,0,0,132,66)	; 14 - ;LA36. SAME AS VT50 BUT WIDER
	TY(3,0,0,0,0,80,24)	; 15 - VT52
	TY(3,0,0,0,0,80,24)	; 16 - VT100
	TY(3,0,0,0,0,132,66)	; 17 - LA38
	TY(7,0,0,0,0,132,66)	; 18 - LA120
	0			; 19 - RESERVED FOR CUSTOMER
	0			; 20 -     "     "     "
	0			; 21 -     "     "     "
	0			; 22 -     "     "     "
	0			; 23 -     "     "     "
	0			; 24 -     "     "     "
	0			; 25 -     "     "     "
	0			; 26 -     "     "     "
	0			; 27 -     "     "     "
	0			; 28 -     "     "     "
	0			; 29 -     "     "     "
	0			; 30 -     "     "     "
	0			; 31 -     "     "     "
	0			; 32 -     "     "     "
	0			; 33 -     "     "     "
	0			; 34 -     "     "     "
	TY(3,0,0,0,0,80,24)	; 35 - VT125
	TY(3,0,0,0,0,84,24)	; 36 - VK100
	TY(3,0,0,0,0,80,24)	; 37 - VT102
	TY(3,0,0,0,0,80,24)	; 38 - H19
	TY(3,0,0,0,0,80,24)	; 39 - VT131
	TY(3,0,0,0,0,80,24)	; 40 - VT200-SERIES
	0			; 41 - RESERVED FOR CUSTOMER
	0			; 42 -     "     "     "
	0			; 43 -     "     "     "
	0			; 44 -     "     "     "
	0			; 45 -     "     "     "
	0			; 46 -     "     "     "
	0			; 47 -     "     "     "
	0			; 48 -     "     "     "
	0			; 49 -     "     "     "
	0			; 50 -     "     "     "
	0			; 51 -     "     "     "
	TY(3,0,0,0,0,80,24)	; 52 - VT300-SERIES [7423]
	0			; 53 - RESERVED FOR DEC
	0			; 54 -     "     "     "
	0			; 55 -     "     "     "
	0			; 56 -     "     "     "
	0			; 57 -     "     "     "
	0			; 58 -     "     "     "
	0			; 59 -     "     "     "
	0			; 60 -     "     "     "
	0			; 61 -     "     "     "
	0			; 62 -     "     "     "

NTTYPS==:.-TTYPE0
	FTCTS <

;Terminal Type to Name Table

DEFINE TTNAM (NAM) <	;Define MACRO for Terminal Type Names
	IFB  <NAM>,<EXP 0>	;If no name, zero the entry
	IFNB <NAM>,<[ASCIZ /NAM/]>	;  else place address of name string
>
	SWAPCD			;Place table in swappable storage

;**;[7423] Add VT300 (number 52)		DEE	11-MAR-87

TTYNAM::TTNAM (TTY33)		; 0 - MOD 33
	TTNAM (TTY35)		; 1 - MOD 35
	TTNAM (TTY37)		; 2 - MOD 37
	TTNAM (TI-EXECUPORT)	; 3 - TI
	TTNAM ()		; 4 - RESERVED FOR CUSTOMER
	TTNAM ()		; 5 -   "  "  "
	TTNAM ()		; 6 -   "  "  "
	TTNAM ()		; 7 -  "  "  "
	TTNAM (DEFAULT)		; 8 - DEFAULT: MAX PADDING, ETC.
	TTNAM (IDEAL)		; 9 - 'IDEAL' TERMINAL, NO FILL INF SIZ
	TTNAM (VT05)		; 10 - VT05
	TTNAM (VT50)		; 11 - VT50
	TTNAM (LA30)		; 12 - LA30
	TTNAM (GT40)		; 13 - GT40 (WITH SMALL CHAR STRAPPING)
	TTNAM (LA36)		; 14 - ;LA36. SAME AS VT50 BUT WIDER
	TTNAM (VT52)		; 15 - VT52
	TTNAM (VT100)		; 16 - VT100
	TTNAM (LA38)		; 17 - LA38
	TTNAM (LA120)		; 18 - LA120
	TTNAM ()		; 19 - RESERVED FOR CUSTOMER
	TTNAM ()		; 20 -     "     "     "
	TTNAM ()		; 21 -     "     "     "
	TTNAM ()		; 22 -     "     "     "
	TTNAM ()		; 23 -     "     "     "
	TTNAM ()		; 24 -     "     "     "
	TTNAM ()		; 25 -     "     "     "
	TTNAM ()		; 26 -     "     "     "
	TTNAM ()		; 27 -     "     "     "
	TTNAM ()		; 28 -     "     "     "
	TTNAM ()		; 29 -     "     "     "
	TTNAM ()		; 30 -     "     "     "
	TTNAM ()		; 31 -     "     "     "
	TTNAM ()		; 32 -     "     "     "
	TTNAM ()		; 33 -     "     "     "
	TTNAM ()		; 34 -     "     "     "
	TTNAM (VT125)		; 35 - VT125
	TTNAM (VK100)		; 36 - VK100
	TTNAM (VT102)		; 37 - VT102
	TTNAM (H19)		; 38 - H19
	TTNAM (VT131)		; 39 - VT131
	TTNAM (VT200)		; 40 - VT200-SERIES
	TTNAM ()		; 41 - RESERVED FOR CUSTOMER
	TTNAM ()		; 42 -     "     "     "
	TTNAM ()		; 43 -     "     "     "
	TTNAM ()		; 44 -     "     "     "
	TTNAM ()		; 45 -     "     "     "
	TTNAM ()		; 46 -     "     "     "
	TTNAM ()		; 47 -     "     "     "
	TTNAM ()		; 48 -     "     "     "
	TTNAM ()		; 49 -     "     "     "
	TTNAM ()		; 50 -     "     "     "
	TTNAM ()		; 51 -     "     "     "
	TTNAM (VT300)		; 52 - VT300-SERIES [7423] [7425]
	TTNAM ()		; 53 - RESERVED FOR DEC
	TTNAM ()		; 54 -     "     "     "
	TTNAM ()		; 55 -     "     "     "
	TTNAM ()		; 56 -     "     "     "
	TTNAM ()		; 57 -     "     "     "
	TTNAM ()		; 58 -     "     "     "
	TTNAM ()		; 59 -     "     "     "
	TTNAM ()		; 60 -     "     "     "
	TTNAM ()		; 61 -     "     "     "
	TTNAM ()		; 62 -     "     "     "

	RESCD			;Continue to place other table is Resident
				;  Storage
>				;End of Conditional Assembly
;SECOND PARALLEL TYPE INFORMATION TABLE

;BIT 0 OF TTYPE1 (TT1PRQ in TTYSRV) INDICATES WHETHER TERMINAL TYPE
;AUTOMATICALLY ENABLES XON AND XOFF PROCESSING.


DEFINE TY1 (DPTAB,PGM)<
	DPTAB>

TTYPE1::
   REPEAT ^D10,<		;TYPES 0-9 ARE NOT DISPLAYS
	TY1 (0,0)
>
	TY1 (VT05TB)		; 10 - VT05
	TY1 (VT50TB)		; 11 - VT50
	TY1 (0)			; 12 - LA30
	TY1 (0)			; 13 - GT40
	TY1 (0)			; 14- LA36
	TY1 (VT52TB)		; VT52
	TY1 (VT100T,1)		; VT100
	TY1 (0)			; 17 - LA38
	TY1 (0,1)		; 18 - LA120
   REPEAT ^D16,<		;TYPES 19-34 ARE NOT DISPLAYS
	TY1 (0)
>
	TY1 (VT125T,1)		; 35 - VT125
	TY1 (VK100T,1)		; 36 - VK100 - GIGI
	TY1 (VT102T,1)		; 37 - VT102
	TY1 (H19TBL,1)		; 38 - H19
	TY1 (VT131T,1)		; 39 - VT131
	TY1 (VT200T,1)		; 40 - VT200-SERIES
   REPEAT ^D11,<		;TYPES 41-51 ARE NOT DISPLAYS
	TY1 (0)
>
	TY1 (VT300T,1)		; 52 - VT300-SERIES [7423]
   REPEAT ^D10,<		;TYPES 53-62 ARE NOT DISPLAYS
	TY1 (0)
>

IFN <.-TTYPE1>-NTTYPS,<PRINTX %TERM TYPE TABLES OF DIFFERENT LENGTHS>
;CURSOR CONTROL TABLES.  TABLE FOR EACH TERMINAL TYPE, INDEXED
;BY FUNCTION.

.STP==:377			;STOP CODE

;VT05 TABLE AND FUNCTION INDEX DEFINITIONS

VT05TB::
	PHASE 0
.CURUP::!Z [BYTE (8)32,0,0,0,0,.STP]
.CURDN::!Z [BYTE (8)13,0,0,0,0,.STP]
.CURBK::!BYTE (8).CHBSP,.STP
.CURFW::!BYTE (8)30,.STP
.CURHM::!Z [BYTE (8)35,0,0,0,0,.STP]
.CURES::!Z [BYTE (8)37,0,0,0,0,.STP]
.CUREL::!Z [BYTE (8)36,0,0,0,0,.STP]
	DEPHASE

;**;[7423] Add VT300 		DEE		11-MAR-87

VT300T::				; [7423] VT300 TBALE SAME AS VT102
VT200T::				; VT200 TABLE SAME AS VT102
VT131T::				; VT131 TABLE SAME AS VT102
VT102T::				; VT102 TABLE
	BYTE (8).CHESC,"[","A",.STP	;UP
	BYTE(8).CHESC,"[","B",.STP	;DOWN
	BYTE(8).CHESC,"[","D",.STP	;BACK
	BYTE(8).CHESC,"[","C",.STP	;FORWARD
	BYTE(8).CHESC,"[","H",.STP	;HOME
	BYTE(8).CHESC,"[","J",.STP	;ERASE TO END OF SCREEN
	BYTE(8).CHESC,"[","K",.STP	;ERASE TO END OF LINE
VK100T::				; VK100 TABLE
	BYTE(8).CHESC,"[","A",.STP	;UP
	BYTE(8).CHESC,"[","B",.STP	;DOWN
	BYTE(8).CHESC,"[","D",.STP	;BACK
	BYTE(8).CHESC,"[","C",.STP	;FORWARD
	BYTE(8).CHESC,"[","H",.STP	;HOME
				        ;ERASE TO END OF SCREEN
	Z [BYTE(8).CHESC,"P","p","s","(","e",")",.CHESC,"\",.STP]
	BYTE(8).CHESC,"[","K",.STP	;ERASE TO END OF LINE

VT125T::				; VT125 TABLE
VT100T::				; VT100 TABLE
	BYTE (8).CHESC,"[","A",.STP	;UP
	BYTE(8).CHESC,"[","B",.STP	;DOWN
	BYTE(8).CHESC,"[","D",.STP	;BACK
	BYTE(8).CHESC,"[","C",.STP	;FORWARD
	BYTE(8).CHESC,"[","H",.STP	;HOME
	BYTE(8).CHESC,"[","J",.STP	;ERASE TO END OF SCREEN
	BYTE(8).CHESC,"[","K",.STP	;ERASE TO END OF LINE

;VT50 TABLE - USES ESCAPE SEQUENCES

H19TBL::				; H19 TABLE SAME AS VT52
VT52TB::
VT50TB::BYTE (8).CHESC,"A",.STP	;CURSOR UP
	Z [BYTE (8).CHLFD,0,0,0,0,.STP] ;CURSOR DOWN
	BYTE (8).CHBSP,.STP	;CURSOR BACK
	BYTE (8).CHESC,"C",.STP	;CURSOR FORWARD
	BYTE (8).CHESC,"H",.STP	;CURSOR HOME
	BYTE (8).CHESC,"J",.STP	;ERASE SCREEN
	BYTE (8).CHESC,"K",.STP	;ERASE LINE

;**;[7426] Change 1 line at VT50TB:+10L	MDR	20-MAR-87
	SWAPCD
; NAME OF FILE INTO WHICH ACCOUNTING INFO IS WRITTEN

USGFIL::ASCIZ /ACCOUNT:SYSTEM-DATA.BIN/
CKPFIL::ASCIZ /ACCOUNT:CHECKPOINT.BIN.1/

;ACCOUNTING SYSTEM DATA-BASE

NR USGJFN,1			;JFN OF USGFIL
NR USGEOF,1			;END OF FILE FOR USAGE FILE
NR USGBEG,1			;HEAD OF QUEUE FOR JOB 0
NR USGEND,1			;TAIL OF QUEUE FOR JOB 0
NR USQCNT,1			;COUNT OF ITEMS ON USAGE QUEUE
NR CKPJFN,1			;JFN OF CKPFIL
NR CKPINV,1			;CHECKPOINT INTERVAL (SETTABLE)
NR CKPTIM,1			;CHECKPOINT TIMER CELL
NR CKPDTL,1			;DATE/TIME OF LAST CHECKPOINT
NR USGMUP,1			;TIME SINCE LAST RELOAD
RS USGLOK,1			;LOCK ON USAGE FILE
NR ASCTIM,1			;Next automatic accounting shift change time
				; relative to TODCLK
NR ASCPTR,1			;AOBJN pointer to accounting shift change times block
NR ASCFLG,1			;Flag -1 if accounting shift change, 0 if checkpoint
NR ASCLOK,1			;Lock on ASCPTR
	RESCD

;PHYSIO STORAGE

IFG PHYIOF,<

;TABLE OF KNOWN CHANNEL DISPATCH ROUTINES

PHYCHT::
	IFG RH20F,<	XWD .CTRH2,RH2DSP>
	IFG RH11F,<	XWD .CTRH2,RH2DSP>
	IFG FTKLIPA,<	XWD .CTCI,KLPDSP>
	IFG KNIN,<	XWD .CTNI,KNIDSP>
PHYCHL==:PHYCHT-.		;NEGATIVE LENGTH OF TABLE

;TABLE OF KNOWN UNIT DISPATCH ROUTINES

PHYUNT::
	IFG RS04F,<	XWD .UTRS4,RS4DSP>
	IFG RP04F,<	XWD .UTRP4,RP4DSP>
	IFG TM02F,<	XWD .UTTM2,TM2DSP>
	IFG DX20AF,<	XWD .UTDXA,DXADSP>
	IFG DX20BF,<	XWD .UTDXB,DXBDSP>
	IFG TM78F,<	XWD .UTTM7,TM8DSP>
PHYUNL==:PHYUNT-.		;NEGATIVE LENGTH OF TABLE

RS CHNTAB,CHNN		;TABLE FOR CDB POINTERS
RS MAXCHN		;HIGHEST NUMBERED CHANNEL IN USE
RS ZSEND		;CURRENT END OF PAGE ZERO STORAGE
RS PHYSEC		;PHYSIO MINUTE COUNTER

;CI-20 U-CODE VERSION

;**;[7132] Change 705 to 711	CEG	14-AUG-85
NDG KLPVER,711		;[7132] THE VERSION THIS MONITOR EXPECTS TO LOAD
RSI KLPVWD,KLPVER	;CELL CONTAINING EXPECTED VERSION

;RESIDENT STORAGE FOR DIAG

RS(DIAGLK)		;LOCK ON DIAG
RS(DIAGFK)		;TEMP PAGE,,FORK WHO HAS DIAG LOCK
RS DIAGAR,1		;AR/ARX INTERCEPT LOCATION
RS DIAGCW		;ADDRESS OF CCW LIST
RS DIAGWT		;FLAG THAT ANOTHER FORK IS WAITING FOR DIAG

RSI CNTLCK,<-1>,1	;LOCK FOR PERFORMANCE COUNTER READ  OF KLIPA
RSI CNTFLG,<-1>,1	;PERFORMANCE COUNTER READ DONE FLAG
RS CNTTIM,1		;OVERDUE TIMER FOR PERFORMANCE COUNTER READ
RS CNTBUF,.PKPDD+1		;TIME OF READ AND PERFORMANCE COUNTER DATA

RS MAITIM,1		;OVERDUE TIMER FOR CI MAINTENANCE DATA READ/WRITE
RS MAIFLG,1		;ERROR OR DONE FLAG FOR CI MAINT. DATA READ/WRITE
RS MAICLF,1		;CLOSE BUFFER DONE FLAG FOR DIAG%
RS MAICLN,1		;BUFFER NAME FOR CLOSE BUFFER FUNCTION FOR DIAG%
RS MAICLT,1		;OVERDUE TIME FOR THE CI MAINTENANCE CLOSE BUFFER
RSI MACLOT,<^D1000>,1	;OVERDUE TIME CONSTANT TO SET UP MAICLT (TODCLK+MACLOT)
RSI MAIOTC,<^D3000>,1	;OVERDUE TIME CONSTANT TO SET UP MAITIM (TODCLK+MAIOTC)

;UDSKIO STORAGE

RS UIOLST		;FREE LIST FOR UDSKIO IORBS
RS UDIORB,<NUIORB*UIOLEN> ;POOL FOR UDSKIO IORBS

;SAVE AREAS AND PDLS

RS PHYACS,20		;INTERRUPT SAVE ACS
RS PHYPDL,LPHYPD	;PRIVATE PDL FOR REQUESTS
RS PHYSVP		;CALLERS PDL
RS PHYIPD,LPHIPD	;INTERRUPT PDL

   >			;END IFG PHYIOF
IFN RP04F,<


;RESIDENT TABLES OF SIZE DATA FOR DISKS BASED ON TYPE.  DSKSIZ IS
;PARALLEL TO DSKUTP (DEFINED IN PHYSIO), WHICH CONTAINS CODES FOR THE
;KNOWN DISK TYPES.  WHEN AN ENTRY IS ADDED TO DSKUTP, A CORRESPONDING
;ENTRY MUST BE ADDED TO DSKSIZ TO POINT TO THE CORRECT SIZE DATA FOR
;THAT TYPE OF DISK.  DO NOT CHANGE THE ORDER OF THE SIZE DATA, SINCE
;THE MSTR JSYS USES A BLT TO COPY IT FOR THE .MSRNU FUNCTION.



;MACRO TO DEFINE DISK PARAMETERS.  THE ARGUMENTS ARE USED TO GENERATE
;A TABLE OF DERIVED QUANTITIES FOR EACH DISK, AND ALSO TO DEFINE GLOBAL
;OFFSETS FOR REFERENCING THE TABLES.  ALL ARGUMENTS ARE IN DECIMAL.
;
;SEPPG	  NUMBER OF SECTORS PER PAGE (ASSUMED TO BE A POWER OF 2 IN DSKALC)
;SEPSU	  NUMBER OF SECTORS PER SURFACE (TRACK)
;SUPCY	  NUMBER OF SURFACES PER CYLINDER
;CYPUN	  NUMBER OF CYLINDERS PER UNIT
;LATUNI	  MICROSECONDS PER LATOPT SECTOR UNIT



DEFINE DSKTAB(SEPPG,SEPSU,SUPCY,CYPUN,LATUNI,TSECPP),<

.INDX.==0		;INITIALIZE OFFSET

;** THE ORDER OF THESE ENTRIES MUST NOT CHANGE WITHOUT FIXING MSTR **

DSKDAT (SECPAG,<SEPPG>,<SECTORS PER PAGE>)	;** MUST BE A POWER OF TWO **
DSKDAT (SECCYL,<<<SEPSU*SUPCY>/SEPPG>*SEPPG>,<SECTORS PER CYLINDER>)
DSKDAT (PAGCYL,<$SECCYL/$SECPAG>,<PAGES PER CYLINDER>)
DSKDAT (CYLUNT,<CYPUN>,<CYLINDERS PER UNIT>)
DSKDAT (SECUNT,<$SECCYL*$CYLUNT>,<SECTORS PER UNIT>)
DSKDAT (BTWCYL,<<$PAGCYL+35>/36>,<NUMBER OF BIT WORDS PER CYLINDER IN BITTABLE>)
DSKDAT (LPPCYL,<SEPSU*SUPCY-$SECCYL>,<LOST SECTORS PER CYLINDER>)
DSKDAT (MINFPG,<$PAGCYL/3>,<MINIMUM FREE PAGES FOR FREE CHOICE>)
DSKDAT (MAXFPU,<$PAGCYL*CYPUN>,<MAXIMUM FREE PAGES BEFORE TURNING POINT>)
DSKDAT (SECSRF,<SEPSU>,<SECTORS PER SURFACE>)
DSKDAT (USSECU,<LATUNI>,<MICROSECONDS PER LATOPT SECTOR UNIT>)
DSKDAT (TRECPP,<TSECPP>,<TRUE SECTORS PER PAGE>) ;WARNING!! THIS IS ONLY SUPPORTED FOR HSC DISKS!!
						;IT ALSO MUST = SECPAG OR 4* SECPAG
						;NO OTHER VALUES!!!!

IFG <MXSTRU*$PAGCYL*$CYLUNT-MXPGUN>,<	;;MAXIMUM PAGES IN STRUCTURE INCREASED?
 MXPGUN==:<MXSTRU*$PAGCYL*$CYLUNT>>	;;YES, DEFINE VALUE LARGER
IFGE <MXPGUN*$SECPAG-DSKAB>,<		;;BUT SEE IF SECTOR ADDRESS TOO LARGE
 MXPGUN==:<<DSKAB-1>/$SECPAG>>		;;YES, REDUCE SO SECTOR ADDRESS FITS
>
	MXPGUN==:0		;DEFINE INITIAL VALUE

;HOME BLOCK DUMMY BUFFER

RS HOMSKP,160			;BUFFER USED TO STORE UNNECESSARY HOME BLOCK DATA
RS FESER,1			;BUFFER TO INDICATE FE GAVE US THE FRONT-END DISK SERIAL NUMBERS
RS CFSSTS,C%SBLL		;BUFFER TO SAVE THE STATUS OF THE REMOTE CFS CONNECTIONS
;MACRO USED TO DO ACTUAL WORK.  IT DEFINES THE OFFSET FOR THIS DATA,
;REMEMBERS THE VALUE OF THIS DATA FOR USE IN LATER EXPRESSIONS, AND
;DUMPS THE DATA.


DEFINE DSKDAT(NAME,VALUE,TEXT),<

NAME==:<.INDX.==.INDX.+1>-1	;;DEFINE OFFSET INTO TABLES
$'NAME==^D<VALUE>		;;CONDENSE THE EXPRESSION
	EXP	$'NAME		;NAME - TEXT
>




;NOW DUMP OUT THE TABLES FOR EACH KIND OF DISK:



DSKSZ0::DSKTAB (4,20,19,400,13,4)	;DATA FOR RP04 AND RP05


DSKSZ1::DSKTAB (4,20,19,800,13,4)	;DATA FOR RP06


DSKSZ2::DSKTAB (4,43,32,629,7,4)	;DATA FOR RP07


DSKSZ3::DSKTAB (4,30,5,820,8,4)		;DATA FOR RM03


DSKSZ4::DSKTAB (1,6,30,1119,8,1)	;DATA FOR RP20

DSKSZ5::DSKTAB (1,7,28,273,13,4)	;DATA FOR RA80

DSKSZ6::DSKTAB (1,161,1,1248,13,4)	;DATA FOR RA81

DSKSZ7::DSKTAB (1,38,1,2382,13,4)	;DATA FOR RA60

DSKSZ8::DSKTAB (1,1,1,1,1)		;DATA FOR RA82 

DSKSZ9::DSKTAB (1,1,1,1,1)		;DATA FOR RA62 

>
;BREAK POINT PAGE ASSIGNMENTS

	SNPBPS==:1000		;LEN OF BREAK POINT PAGE (MUST BE 1000)
NRP (SNPBPP,SNPBPS)		;BREAK POINT PAGE

;*** SNPDPC <= 36. SINCE SNPFTB BITTABLE IS 1 WORD
IFE DEBUG,<
	SNPDPC==:^D12		;NUMBER OF PAGES FOR USER CODE
>
IFN DEBUG,<
	SNPDPC==:^D16		;More pages when debugging
>
	SNPDPS==:1000*SNPDPC	;LENGTH OF SNOOP VIRTUAL AREA
NRP (SNPDAT,SNPDPS)		;DATA PAGES FOR USER CODE

;CAUTION:  SNPBPP AND SNPDAT MUST BE CONTIGUOUS FOR SCHED TEST. (CHKSNP)

;SNOOP BREAK POINT LABEL DEFINITIONS

REPEAT 0,<

BP$000	1 MILLISECOND INTERVAL
	RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
	ALL ACS MUST BE SAVED AND RESTORED

BP$001	POWER LINE FREQUENCY INTERVAL (50 OR 60 CYCLES)
	RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
	ALL ACS MUST BE SAVED AND RESTORED.

BP$002	1 SECOND INTERVAL
	RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
	ALL ACS MUST BE SAVED AND RESTORED.

BP$003	BREAKPOINT FOR OPEN NEW FILE
	ASSUMPTIONS: JOB CONTEXT, STACK, OFN IN T1
	OFFSET FOR JOB'S JFN TABLE IN  11
	THESE ASSUMPTIONS HOLD FOR BP$003-BP$009

BP$004	BREAKPOINT FOR OPEN EXISTING FILE
	SEE ASSUMPTIONS FOR BP$003

BP$005	BREAKPOINT FOR  GET EXISTING PTT
	SEE ASSUMPTIONS FOR BP$003

BP$006	BREAKPOINT FOR  MAKE NEW PTT FOR LONG FILE
	SEE ASSUMPTIONS FOR BP$003

BP$007	BREAKPOINT FOR PT-0 OF LONG FILE
	SEE ASSUMPTIONS FOR BP$003

BP$008	BREAKPOINT FOR MAKE NEW PT IN LONG FILE
	ASSUMES PT-NUMBER IN -2(P); ALSO:
	SEE ASSUMPTIONS FOR BP$003

BP$009	BREAKPOINT FOR GET EXISTING PT IN LONG FILE
	ASSUMES PT-NUMBER IN 0(P); ALSO:
	SEE ASSUMPTIONS FOR BP$003

BP$010	(AT DASOFN) BREAKPOINT TO RELEASE OFN
	ASSUMES JOB CONTEXT, OFN IN T1, STACK

BP$011	(AT REMFP2) BREAKPOINT FOR DELETE PAGE IN CORE
	ASSUMES CST-INDEX IN T1

BP$012	(BELOW BKUP3) BREAKPOINT FOR WRITE TO DISC
	ASSUMES CST-INDEX IN T1

BP$013	(BELOW BKUP3) BREAKPOINT FOR WRITE TO RPLQ
	ASSUMES CST-INDEX IN T1

BP$014	(BELOW SWPO2) BREAKPOINT FOR WRITE TO DRUM
	ASSUMES CST-INDEX IN T1

BP$015	(BELOW BKUP0) BREAKPOINT FOR WRITE TO RPLQ (DRUM ADDR)
	ASSUMES CST-INDEX IN T1

BP$016	(AT SWPI5) BREAKPOINT FOR READ FROM DEVICE
	ASSUMES [STG-ADDR] IN T4, [IDENT] IN T1 (I.E., [SPTN,,PN])

BP$017	(BELOW TRP0C) BREAKPOINT FOR READ FROM RPLQ
	ASSUMES STACK.  WILL CALL GETPHA TO IDENTIFY PAGE

BP$018	(BELOW WCPY) BREAKPOINT FOR COPY-ON-WRITE
	ASSUMES TARGET [SPTN,,PN] IN T1, SOURCE CST-INDEX IN 0(P)

BP$019	(BELOW .CFORK) BREAKPOINT FOR CREATE SUB-FORK
	ASSUMES FORK-INDEX OF CREATED FORK IS IN 7

BP$020	(BELOW LOGI1) BREAKPOINT FOR CREATE MAIN FORK
	ASSUMES FORKX HAS FORK-INDEX, FKJOB(FORK-INDEX) HAS JOBNO

BP$021	(AT KSELF) BREAKPOINT FOR KILL FORK.
	ASSUMES FORKX HAS SUICIDAL FORK INDEX

BP$022	(AT MAPDI1-1 IN DIRECT) BREAKPOINT FOR ASOFN FOR DIRECTORIES
	ASSUMES DIRECTORY# IN T1, OFN IN DROFN USUALLY, BUT IN STRRDO
	IF T1=ROOTDN


>
;Define home block I/O page.  This page is used by fsiini and
;fsibat as a work page for home block I/O during system startup.

;**;[7271] CHANGE 1 LINE AT HOMPGA==:SNPDAT+0.L	DSW	3/17/86
NRP(HOMPGA)			;[7271] GIVE HOMPGA ITS OWN PAGE
HOMPG==:HOMPGA/1000		;DEFINE THE PAGE NUMBER AS WELL

;SCHEDULER TESTS - HERE BECAUSE NO OTHER RESIDENT CODE IN DIRECT

	EXTN <MLDTAB,NLDTAB>	;DEFINED IN DIRECT

LKDTST::HRRZ T1,Q3		;GET FORK INDEX
	IDIVI T1,^D36		;COMPUTE BIT ADDRESS
	MOVE T2,BITS(T2)
	TDNE T2,LCKDBT(T1)	;STILL WAITING?
	JRST 0(T4)		;YES
	JRST 1(T4)		;NO, WAKEUP

LKDSPT::MOVE T1,MLDTAB		;GET LIMIT OF TABLE
	CAIL T1,NLDTAB		;FULL?
	JRST 0(T4)		;YES
	JRST 1(T4)		;NO
;LOWER CORE DEFINITIONS - NOT CLEARED AT STARTUP

SCTLW==:20			;SCHEDULER HALT REQUEST WORD

	LOC 25			;DOWN TO LOWER CORE
MMAPWD:	EXP MMAP		;POINTER TO MMAP FOR SETSPD

	LOC	70		;DOWN TO LOW CORE

PWRTRP::BLOCK 1			;EXECUTED ON POWER-FAIL AUTO RESTART
RLDADR::BLOCK 1			;FE EXECUTE'S THIS ON CERTAIN RELAODS
	EDDTF			;FORMERLY EDDTF
CRSTAD::BLOCK 1			;TOD OF LAST CRASH
.JBDDT::DDTZ			;JOBDDT
	BLOCK 1			;75 RESERVED - .JBHSO
	DBUGSW			;THIS CELL FORMERLY DBUGSW
	DCHKSW			;THIS CELL FORMERLY DCHKSW
	BLOCK 10		;100 THROUGH 107 RESERVED FOR
				;  FE COMMAND LANGUAGE FUNCTIONS

;CELLS NOT CHANGED DURING DISK RELOAD OF RES MON

STSBLK::BLOCK 1			;110-111: STATUS BLOCK POINTER
	BLOCK 1			;NEXT WORD TO HOLD PHYSICAL ADDRESS
.JBEDV::MONEDV			;112 - POINTER TO EXEC DATA VECTOR

SPRCNT::EXP 0			;113 - RUNNING COUNT OF SPEAR BLOCKS QUEUED
				;IF THE POSITION OF THIS WORD IS MODIFIED,
				;SETSPD MUST BE MODIFIED TO REFLECT ITS NEW
				;POSITION, AS IT READS THIS VALUE FROM THE
				;DUMP. SETSPD SETS THIS NONNEG TO GET THINGS 
				;ROLLING
;114 RESERVED FOR THE FUTURE.
;THIS LOCATION IS THE ONLY ONE IN LOW CORE STILL FREE IN
;BOTH THE TOPS-10 AND TOPS-20 MONITORS.  MAY BE NEEDED FOR EDDT
;ETC. IN THE FUTURE.

;Inter-section breakpoint blocks for KDDT and MDDT

EDDBLK=:400
MDDBLK=:500

	RELOC			;BACK TO NORMAL

CRSTD1=:27			;CRASH TIME AND DATE SAVED WHILE RELOADING
BUGHAD=:26			;BUGHLT AND CHK ADDRESSES SAVED WHILE RELOADING
				;FORMERLY DBUGS1...NOW MMAPWD
SEBQOU=:24			;OUTPUT PTR FOR SYSERR BLOCKS
				;IN A FIXED PLACE SO JOB 0 CAN QUEUE UP
				;BUGHLT BLOCK AFTER A CRASH.
CRSHTM=:23			;INITIAL TIME FOR RELOADS. -1 INDICATES NOT SETUP YET

NPISK==24			;SIZE OF STACK FOR PI LEVELS
NPISK6==NPISK*<IFE KNIN,<1>>+200*<IFN KNIN,<1>>
		   ;* *  N O T E  W E L L  * *

	;Locations 21 and 22 are used by BOOT during LOADing and
	;DUMPing.  Their contents are meaningless in a monitor dump.

		;* *  E N D  N O T E  W E L L  * *

;MONITOR'S EXEC DATA VECTOR. EDDT REFERS TO THIS BLOCK BY THE OFFSET
;NAMES. THE MONITOR USES THE NAMES OF THE INDIVIDUAL ENTRIES.

RSI MONEDV,<<'EDV',,.EDSEC+1>,0,0,0,0,0> ;EXEC DATA VECTOR: .EDCNT, etc.

;MONPDV points to the monitors PDV. If MONPDV is zero, then there is no
; PDV (always in pre-6.1 monitors). MONPDV is set up by POSTLD and used
; by EDDT/MDDT.

RSI MONPDV,<0>			;Address of monitor PDV

IFE FTNSPSRV <
;All of the following symbols are set by POSTLD
RSI PDVECT,<.PVSYM+1,[ASCIZ /MONITR/],0,0,SVNM,0,SYMBLK>
RSI SYMBLK,<^D7,0,0,0,0,0,0>
RSI PDVSYM,<0>			;Address of 'defined symbols' symbol block
RSI PDVUSY,<0>			;Address of 'undefined symbols' symbol block
RSI SYMLEN,<0>			;Length of both symbol tables combined
RSI SYMSTA,<0>			;Start of symbol table area in SYMSEC
;**;[7215] Remove 1 line at (RSI SYMSTA)+1	CEG 20-Dec-85
RSI SYMEND,<0>			;End of symbol table in SYMSEC
RSI PLDRUN,<0>			;Set to -1 when POSTLD has run
>

;Lock used by MDDT to prevent more than one MDDT from using MDDBLK at
;the same time.

RSI MDDLCK,<-1>			;AOSE LOCK
RS MDDFX,1			;FORKX of locker when MDDLCK .ne -1
;ORIGIN OF MANUAL START TRANSFER VECTOR

SVECT=:140

;MANUAL START TRANSFER VECTOR

	LOC SVECT
EVDDT::	JRST DDTZ		;EDDT
	JRST SYSDDT		;RESET AND GO TO EDDT
EVDDT2::JRST DDTZ		;COPY OF EDDT IN CASE OTHER CLOBBERED
EVSLOD::JRST SYSLOD		;INITIALIZE DISK FILE SYSTEM
EVVSM::	JRST SYSVSM		;VERIFY SWAPABLE MONITOR ON STARTUP.
EVRST::	JRST SYSRST		;RESTART
EVLDGO::JRST SYSGO		;RELOAD AND START
EVGO::	JRST SYSGO1		;START

DDTPRS::-1			;DDT PRESENT IF NON-0, INITIALLY IS PRESENT

	LOC 237			;LOWCORE STUFF FOR NEW SETSPD
SPTWD::	EXP SPT			;LOCATION OF THE SPT
MSCWD::	EXP MSECTB		;LOCATION OF MONITOR'S SECTION MAP

TMPSMM==:500			;TEMP SWPMON MAP DURING RESTART

	RELOC

;PTR TO END OF RES VARS

ZROEND::RSVARZ

;NAME TO SAVE THE MONITOR IMAGE AFTER POSTLD AS

MONSNM::
IFN KLFLG,<IFN NETN,<	ASCIZ /AMONITR.EXE/>>
IFN KCFLG,<IFN NETN,<	ASCIZ /TMONITR.EXE/>>
IFN KLFLG,<IFE NETN,< ASCIZ /MONITR.EXE/>>
IFN KCFLG,<IFE NETN,<ASCIZ /CMONITR.EXE/>>

DEFINE ECALL (DEV)<
   IFG DEV'N,<
	CALL DEV'CHK
	RSI (DEV'TIM,<EXP 0>,1)>>

;SCHEDULER DEVICE-DEPENDENT CALLS

LV8CHK::ECALL VBC
   IFN KNIN,<
	SKIPE NIJFLG		;Any jiffy service needed?
	 CALL NIJJIF		; NI% JSYS Jiffy service.
   > ; End of IFN KNIN

IFN LAHFLG,<CALL LARSCH>	;LAT HOST SCHEDULER SERVICE
IFG CHFLG,<
	SETZ CX,		;find out if CTERM host output needs service
	EXCH CX,CTMWAG		;get flag
	IORM CX,CTMATN		;put where the CTERM MDISMS will notice
> ; End of IFG CHFLG
 IFN DCN,<			;These calls must be in ascending layer order
				;to assure adequate input performance.
   IFN FTNSPSRV,<CALL NSPCH7>	;DO DECNET MESSAGES
   IFE FTNSPSRV,<
	SKIPE @DNDINQ		;Anything in the queue for Router?
	 CALL @[XCDSEC,,DNDJIF]	; Yes, call the data link layer (DNADLL)
	CALL @[XCDSEC,,NSPJIF]	;NSP LAYER (LLINKS)
	SKIPE NMLPSI		;NETWORK EVENT QUEUE PSI?
	 CALL @[XCDSEC,,NMLEVT]	;YES. INFORM THE NETWORK WATCHER
   >;END IFE FTNSPSRV
 >;END IFN DCN
	RET

;TABLE OF CALLS FOR SECOND LEVEL CLOCKS

CLK2CL::
	RSI (CLK2TM)		;SYMBOL OF FIRST CLOCK CELL IN TABLE

	CALL WTCHK		;CHECK NON-SPECIAL WAITING FORKS
	RSI (WTTIM,<EXP 0>,1)

	CALL JB0CHK		;CHECK Job 0 functions: DDMP, CHKR
	RSI (JB0TIM,<EXP 0>,1)

   IFE PHYIOF,<
	ECALL DSK		;DISK RE-QUEUE CHECK

	ECALL DRM		;DRUM TIMEOUT CHECK
   >				;END IFE PHYIOF
   IFN PHYIOF,<
	CALL PHYCHK		;PHYSIO TIMER ROUTINE
	RSI (PHYTIM,<EXP 0>,1)
   >				;END IFN PHYIOF

   IFG KNIN,<
;**;[7454] Add 2 lines at CLK2CL:+20L	MDR	14-APR-87
	CALL LLQCHK		;[7454] LLMOP PSI queue check
	RSI (LLQTIM,<EXP 0>,1)	;[7454] LLMOP PSI queue timer

	ECALL KNI		;Device KNI checks
   >

   IFN <FTKLIPA>,<		;SCS% clock
	CALL MSCCHK		;MSCP POLLER
	RSI (MSCTIM,<EXP 0>,1)

	CALL SCSCLK		;Clock check routine
	RSI (SCSTIM,<EXP 0>,1)	;Timer

	CALL SC.CLK		;Routine to call on SCA clock tic
	RSI (SCATIM,<EXP 0>,1)	;Clock loc for SCA periodic events
   >				;End IFN <FTKLIPA>

;   IFN CFSCOD,<			;CFS clocks
	CALL CFSCHK		;Do the check
	RSI (CFSTIM,<EXP 0>,1)	;Timer word
;   >

   IFN FTSVMSCP,<
	CALL MSSCHK		;CHECKER ROUTINE
	RSI (MSSTIM,<EXP 0>,1)	;CLOCK FOR MSCP SERVER
   >

   IFN KCFLG,<			;IF THE 2080
	CALL RSPCHK		;CHECK OUT RSP STUFF
	RSI (RSPTIM,<EXP 0>,1)	;WORD FOR CLOCK
   >

	ECALL DTE		;DO POLLER

	ECALL KDP		;CHECK KDP (KMC11/DUP11)

	ECALL PTP		;PAPER TAPE PUNCH

   IFG PLTN,<
	ECALL PLT		;PLOTTER
   >

   IFG PCDPN,<
	CALL CDPCHK		;CARD PUNCH
	RSI (CDPTIM,<EXP 0>,1)
   >

	ECALL DTA		;DECTAPE

   IFN LPTN,<
	CALL LPTCHK		;PHYSICAL LPT
	RSI (LPTTIM,<EXP 0>,1)
   >

	ECALL CDR		;THE CARD READER

	ECALL DLX		;DL10

	CALL TIMSCM
	RSI (TMMLTM,<EXP 0>,1)	; Millisecond TIMER Q (elapsed time)

	CALL TIMSCD
	RSI (TMDTTM,<EXP 0>,1)	; D&T TIMER Q

	CALL TTYCHK		;CHECK CONTROLLER THINGS
	RSI (TTYTIM,<EXP 0>,1)	;ALLOCATE TIMER WORD

   IFE FTNSPSRV,<
	EXTN <DCNSEC>
	CALL DCNSEC		;DECNET'S ONCE-A-SECOND CHECK
	RSI (DCNTIM,<EXP 0>,1)	;ALLOCATE TIMER WORD
   >

   IFN LAHFLG,<			
	EXT LATXMC
	CALL LATXMC		;CALL ROUTINE TO PERIODICALLY MULTICAST LAT
	RSI (LATMCT,<EXP <200000,,0>>,1)	;LAT Host Multicast Timer
   >

N2CLKS==:.-CLK2CL		;Number of entries in clock table
;DEVICE INITIALIZATION AFTER SWPMON LOADED

	SWAPCD

DEFINE INICLL (DEV)<
   IFG DEV'N,<
	CALL DEV'INI>>

INIDEV::
	INICLL MTA
   IFG LPTN,< IFG LPTN-FELPTN,<
	INICLL LPT
   >>
   IFG CDRN,< IFG CDRN-FECDRN,<
	INICLL CDR
   >>
IFG PLTN,<	INICLL PLT>
IFG PCDPN,<	INICLL CDP>		;CARD PUNCH
	INICLL PTP
	INICLL PTR
	INICLL DTA
	INICLL VBC
	RET

;DEVICE DEPENDENT ROUTINES USED ON KFORK

DEVKFK::
	RET


;DEVICE INITIALIZATION FOR FRONT END DEVICES

INIDV1::
	INICLL FE
   IFG CDRN,<IFG FECDRN,<
	INICLL CDR
   >>
   IFG LPTN,<IFG FELPTN,<
	INICLL LPT
   >>
	RET
;GENERATE THE PROTOCOL DEVICE DISPATCH TABLE
	RESCD

   IFG DTEN,<			;ONLY IF A DTE EXISTS
DEFINE DTV (DEV)<
   IFG DEV'N,<
	DEV'DTV		;DISPATCH ADDRESS
   >
   IFE DEV'N,<
	0			;NO DISPATCH
   >>

MINDEV==:.FECTY			;FIRST KNOWN DEVICE

DTEDTV::
	BLOCK MINDEV		;RESERVE SPACE FOR UNKNOWN DEVICES
   REPEAT 4,<TTYDTV>		;THE CTY,DL11,DH11, AND DLS DEVICES
   IFG FELPTN,<			;FRONT END LPT'S?
	DTV LPT>		;YES
   IFE FELPTN,<			;BA10 LPT?
	0>			;YES
   IFG FECDRN,<
	DTV CDR>		;THE CDR
   IFE FECDRN,<			;IF NO CRD
	0>			;RESERVE SPACE ANYWAY
	0			;UNKNOWN
	DTV FE			;THE FE DEVICE

MAXDEV==:.-DTEDTV+MINDEV-1	;LAST KNOWN DEVICE
   >				;END OF PROTOCOL TRANSFER VECTOR LOGIC


;Keep these cells together. The ARPA GETAB% .LHOSTN requires this

RSI (NOHOST,<-1>,<%NETS+1>)	; OLD FORMAT HOST NUMBER
RSI (NVTPTR,<1>)		; -NUMBER OF NVT'S,,FIRST NVT
RS DEFADR			; DEFAULT HOST ADDRESS TO USE
RS NETFLD			; "DEFAULT" NETWORK NUMBER, SHIFTED
RS DEFNET			; DEFAULT NETWORK NUMBER
RS PRFADR			; PREFERRED LOCAL HOST ADDRESS FOR GTHST%
RS PRFNFD			; PREFERRED NETWORK NUMBER, SHIFTED
RS PRFNET			; PREFERRED NETWORK FOR GTHST%
RESDT
NLHOST:: REPEAT <%NETS+1>,<-1>
	EXP 0
	RESCD

;RESET ALL AND GO TO EDDT

SYSDDT:	XCT PIRST
	XCT IORST
DDTZ:	IFN FTNSPSRV <
	SKIPN MONEDV+.EDSYM	;MONEDV SETUP?
	JRST DDTY		;NO
	MOVEM T1,.JBUSY		;SAVE AN AC
	MOVE T1,MONEDV+.EDSYM	;RESTORE SYMTAB POINTERS
	MOVEM T1,.JBSYM
	MOVE T1,MONEDV+.EDUSY
	EXCH T1,.JBUSY
DDTY:>
	MOVEM T1,USRDFG		;SAVE AC
	JSP T1,.+1		;GET FLAGS
	TXNE T1,VSECNO		;NON-0 SECTION?
	XSFM T1			;YES, USE XSFM
	LSH T1,^L<UMODF>	;SHIFT IT TO SIGN BIT
	EXCH T1,USRDFG
	SKIPGE USRDFG		;EXEC MODE?
	JRST DDTU		;NO, USER MODE
	CONSO PAG,PGTPEN	;PAGING ON?
	JRST DDTX		;NO, JUMP TO PHYSICAL DDT LOC
	SKIPN MONEDV+.EDSEC	;SYMSEC SETUP?
	JRST DDTX		;NO, USE PHYSICAL
	XJRST [SYMSEC,,DDTX]	;YES, JUMP TO SYM SEC

RSI USRDFG,,1			;TEMP FOR ABOVE

	RESCD (INIT)

IFN FTNSPSRV <
	;These exit/entry points map certain psects from section 1 to
	;section zero, for ease of monitor patching

	;Here prior to entering EDDT in user mode
DDTU:	SKIPN MONEDV+.EDSYM	;Are we running pre POSTLD?
	JRST DDTX		;Yes
	;Map NRCOD to section 0

	MOVE T1,[.FHSLF,,NRCODP+<MSEC1*1000>]
	MOVE T2,[.FHSLF,,NRCODP]
	MOVE T3,[PM%RD!PM%WR!PM%EX!PM%CNT!<<NRCODL-NRCODP>+1>]
	PMAP
	JRST DDTX		;JUMP TO DDT LOC

	;Here after exiting EDDT in user mode with ^Z
DDTCZ::	SKIPN MONEDV+.EDSYM	;Are we running pre POSTLD?
	JRST DDTX		;Yes

	SETOM T1		;Unmap NRCOD from sec 0
	MOVE T2,[.FHSLF,,NRCODP]
	MOVE T3,[PM%CNT!<<NRCODL-NRCODP>+1>]
	PMAP
	HALTF
	JRST EVDDT		;INCASE OF CONTINUE
>

IFE FTNSPSRV <

;DDTU - called on entry to EDDT in user mode.
;
;Essentially, a runtime environment is built to ease patching.
;This means the following:
;	1. Copy the symbol tables into section PCDSEC (37)
;	   Update the symbol table pointers PDVSYM and PDVUSY in the
;	   monitor PDV.
;	   Also, unmap the pages that were used by the symbol table.
;	2. Create section SYMSEC and XCDSEC
;	3. Map ERCOD (EDDT) and ENCOD (MDDT) into section SYMSEC
;	4. Map NRCOD into section 0
;	5. Map resident psects (page 0, RSCOD, SZCOD, INCOD, RSDAT) into
;	   XCDSEC.
;	6. Map RSDAT into SYMSEC (so FFF is mapped there).
;	7. Map XRCOD and XNCOD into XCDSEC.
;	8. Put an indirect pointer to page 0 in SYMSEC
;	9. Start EDDT in user mode in SYMSEC

DDTU:	SKIPN PLDRUN		;Has POSTLD run?
	XJRST [SYMSEC,,DDTX]	; -no, jump to EDDT in SYMSEC

;Set up a local stack pointer. Use page 777 of section 0 for the stack -
; nothing else will be there
	MOVE P,[IOWD 1000,777000] ;Load stack pointer

	;Note:  "symbol block" refers a data structure that appears as:

	;Defined symbol table
	;Undefined symbol table
	;Fixed expansion area for symbol tables (length  = SYMPAD)

	STKVAR <SYMADR,TOPADR,NEWADR>	
	;STKVAR LEGEND
	;  SYMADR		True address of the symbol block (lower limit)
	;  TOPADR		True address of the symbol block (upper limit+1)
	;  NEWADR		Temporary address of the symbol block (lower 
	;			 limit) while in KDDT user mode.  The upper
	;			 limit is the section boundary.


;Create a section for the symbol block (PCDSEC)
	MOVEI T1,PCDSEC		;Section 'PCDSEC'
	CALL UDDTCS		;Create section

;Calculate limits of symbol block

	MOVE P1,PDVSYM		;Get address of defined-symbol record
	LDB T2,[POINTR .STLEN(P1),SY%LEN] ;Get length of defined symbol table
	ADD T2,.STPTR(P1)	;Add origin
	MOVEM T2,TOPADR		;Save upper limit (+1) of symbol block
	SUB T2,SYMLEN		;Subtract length of symbol block
	MOVEM T2,SYMADR		;Save lower limit

;Copy symbol block into another section (PCDSEC). (Must copy since we will
; overlay the section 0 location of the symbol block with NRCOD).
	MOVE T1,SYMLEN		;# of words to copy
	MOVE T2,SYMADR		;Get origin of symbol block
	HRLOI T3,PCDSEC		;Get sec,,-1
	SUBI T3,-1(T1)		;Calculate new lower limit for symbol block
	MOVEM T3,NEWADR		;Save it
	EXTEND T1,[XBLT]	;Move symbol block to high end of PCDSEC
	SETO T1,		;Prepare for unmap of the symbol block
	MOVE T2,SYMADR		;Get starting address of symbol block again
	LSH T2,-PGSFT		; and make # of pages
	HRLI T2,.FHSLF!FH%EPN	;Ourselves, extended page #'s
	MOVE T3,SYMLEN		;Get symbol block length
	ADDI T3,<PGSIZ-1>	; and make sure we get all pages it occupies
	LSH T3,-PGSFT		;  and make # of pages
	HRLI T3,(PM%EPN!PM%CNT)	;Extended pages, count
	PMAP%
	HRLZI T1,PCDSEC+1	;Get new upper limit plus one
	CALL UDDTSP		;Update PDVUSY/PDVSYM

;Create SYMSEC and XCDSEC
	MOVEI T1,SYMSEC		;Runtime symbol table section
	CALL UDDTCS		;Create it
	MOVEI T1,XCDSEC		;Extended code section
	CALL UDDTCS		;Create it, too

;Map ERCOD and ENCOD into SYMSEC
	MOVEI T1,ERCOD		;Get ERCOD offset in section 0
	MOVEI T2,ERCODZ		; and end of ERCOD
	MOVX T3,ERCOD		;  to its runtime location (in SYMSEC)
	CALL UDDTMC		;Move ERCOD
	MOVE T1,[MSEC1,,ENCOD&777777] ;Get POSTLD start of ENCOD
	MOVE T2,[MSEC1,,ENCODZ&777777] ; and POSTLD end of ENCOD
	MOVX T3,ENCOD		;  to its runtime location
	CALL UDDTPM		;Map the pages there

;Map NRCOD from section 1 into section 0
	MOVE T1,PNRCOD		;Get NRCOD's location in the POSTLD image
	MOVE T2,PNRCOD		; and make
	ADDI T2,<NRCODZ-NRCOD>	;  ending address
	MOVEI T3,NRCOD		;Destination
	CALL UDDTPM		;Map NRCOD into its runtime location in sec 0

;Map resident psects into XCDSEC
	SETZ T1,		;From page 0
	MOVEI T2,RSDATZ		; till end of RSDAT
	MOVSI T3,XCDSEC		;  into XCDSEC,,0
	CALL UDDTPM		;Map

;Map RSDAT into SYMSEC
	MOVEI T1,RSDAT		;From
	MOVEI T2,RSDATZ		; upto
	MOVE T3,[SYMSEC,,RSDAT]	;  into
	CALL UDDTPM		;Map

;Map XRCOD and XNCOD into XCDSEC
	MOVE T1,[MSEC1,,XRCOD]	;From 1,,XRCOD
	MOVE T2,[MSEC1,,XNCODZ]	; upto end of XNCOD
	MOVX T3,XRCOD		;  into runtime location
	CALL UDDTPM		;Map

;Indirect pointer to page 0 in SYMSEC
	SETZ T1,		;From page 0
	MOVEI T2,<PGSIZ-1>	; upto end of page 0
	MOVSI T3,SYMSEC		;  into SYMSEC,,0
	CALL UDDTPM		;Map

;Tell EDDT it's now in section SYMSEC
	CALL UDDTSE		;Set EDDT environment

;Start EDDT at  SYMSEC,,DDTX
	XJRST [SYMSEC,,DDTX]

;DDTCZ - called on ^Z from EDDT in user mode
;
;DDTCZ undoes what DDTU did:
;	1. Unmap NRCOD in section 0
;	2. Unmap all pages in SYMSEC and XCDSEC and delete the sections
;	3. Move the symbol tables back from PCDSEC, and unmap PCDSEC.
;	   Update PDVSYM and PDVUSY.
;	4. Unmap the stack page (page 777)

DDTCZ::	SKIPE PLDRUN		;Did POSTLD run?
	IFSKP.			; -no,
	  HALTF%		;  just exit
	  JRST EVDDT		;  and restart DDT on continue
	ENDIF.
	SETO T1,		;Prepare for unmap
	MOVE T2,[.FHSLF!FH%EPN,,<NRCOD/PGSIZ>] ;NRCOD
	MOVEI T3,<NRCODZ-NRCOD+PGSIZ>/PGSIZ ;# of pages to unmap
	HRLI T3,(PM%CNT!PM%EPN)	;Count, extended page #'s
	PMAP%			;Unmap
	MOVX T1,ERCOD		;ERCOD start address (in SYMSEC)
	MOVX T2,ERCODZ		;ERCOD ending address (in SYMSEC)
	MOVEI T3,ERCOD		;ERCOD dest (in section 0)
	CALL UDDTMC		;Move it
	MOVEI T1,SYMSEC		;SYMSEC
	CALL UDDTDS		; - unmap all pages and delete section
	MOVEI T1,XCDSEC		;XCDSEC
	CALL UDDTDS		; - unmap all pages and delete section
	MOVE T1,SYMLEN		;# of words in symbol block
	MOVE T2,NEWADR		;Get address of symbol block in PCDSEC
	MOVE T3,SYMADR		;  to section 0
	EXTEND T1,[XBLT]	;Copy
	MOVE T1,TOPADR		;Get the old symbol-block upper limit
	CALL UDDTSP		;Update symbol-table pointers
	MOVEI T1,PCDSEC		;PCDSEC
	CALL UDDTDS		; - unmap all pages and delete section
	JSR FAKDDT		;EDDT is now back in section 0
	SETO T1,		;Prepare for unmap
	MOVE T2,[.FHSLF!FH%EPN,,777] ;Page 777
	MOVX T3,PM%EPN		;Extended page #'s
	PMAP%			;Unmap stack page
	HALTF%			;All done, exit
	JRST EVDDT		;Go restart on continue
	ENDSV.

;UDDTCS - create a section for user mode EDDT
;
;Call:	T1/ sec #
;	CALL UDDTCS
;	+1 always

UDDTCS:	MOVE T2,T1		;Section # into place
	SETZ T1,		;Create a section
	HRLI T2,.FHSLF		; for ourselves
	MOVEI T3,1		;Just a single section
	SMAP%
	RET

;UDDTDS - unmap all pages and delete a section for user mode EDDT
;
;Call:	T1/ section #
;	CALL UDDTDS
;	+1 always

UDDTDS:	MOVE Q1,T1		;Save section #
	SETO T1,		;Unmap
	MOVE T2,Q1		;Get section #
	LSH T2,PGSFT		;Make page #
	HRLI T2,.FHSLF!FH%EPN	;Ourselves
	MOVX T3,PM%CNT!PM%EPN!1000 ;All of the section
	PMAP%			;Go
	SETO T1,		;Delete section
	MOVE T2,Q1		;Get section #
	HRLI T2,.FHSLF!FH%EPN	;Ourselves
	MOVEI T3,1		;Just 1 section
	SMAP%
	RET

;UDDTPM - map a sequence of pages for user EDDT
;
;Call:	T1/ starting address
;	T2/ last address to move
;	T3/ destination address
;	CALL UDDTPM
;	+1 always

UDDTPM:	SUB T2,T1		;Get # of words (-1) to move
	ADDI T2,1+PGSIZ		;# of pages to move
	EXCH T2,T3		;Put into place
	LSH T1,-PGSFT		;Page #
	HRLI T1,.FHSLF!FH%EPN	; from ourselves
	LSH T2,-PGSFT		;  to page #
	HRLI T2,.FHSLF!FH%EPN	;   and ourselves
	LSH T3,-PGSFT		;# of pages
	HRLI T3,(PM%CNT!PM%RD!PM%WR!PM%EPN) ;RD/WR..
	PMAP%
	RET

;UDDTMC - move (by BLT) a psect. Move by way of XBLT, and unmap source
; area after the copy.
;
;Call:	T1/ starting address of src
;	T2/ ending address of src
;	T3/ dest address
;	CALL UDDTMC
;	+1 always

UDDTMC:	STKVAR <LEN,ADR>
	EXCH T1,T2		;Get end address into T1, src addr to T2
	SUB T1,T2		;Get length - 1
	AOJ T1,			; so make it length
	MOVEM T1,LEN		;Save length (in words)
	MOVEM T2,ADR		; and save address
	EXTEND T1,[XBLT]	;Copy
	SETO T1,		;Prepare for unmap
	MOVE T2,ADR		;Get address
	LSH T2,-PGSFT		; and make into page #
	HRLI T2,.FHSLF!FH%EPN	;Own process and extended page numbers
	MOVE T3,LEN		;Get length
	ADDI T3,<PGSIZ-1>	;Round up to full pages
	LSH T3,-PGSFT		; and make # of pages
	HRLI T3,(PM%EPN!PM%CNT)	;Extended page #'s
	PMAP%			;Unmap the source area
	RET
	ENDSV.			;End STKVAR


;**;[7215] Add 1 line at UDDTUS-7	CEG 20-Dec-85
   REPEAT 0,<			;[7215] DON'T NEED THIS ANYMORE
;UDDTUS - update symbol table pointers for PGRINI
;Call:	T1/ new start address of symbol tables
;	CALL UDDTUS
;	+1 always
;

UDDTUS::SAVEQ			;Save Q1-Q3
	MOVE Q1,PDVUSY		;Get undefined pointer
	MOVE Q2,PDVSYM		; and defined pointer
	EXCH T1,.STPTR(Q1)	;Save new, and get old start address
	MOVE T2,.STPTR(Q2)	;Get old start address of defined table
	SUB T2,T1		;Difference between offsets
	ADD T2,.STPTR(Q1)	;Add to new undefined
	MOVEM T2,.STPTR(Q2)	; and thats the new defined!
	RET
;**;[7215] Add 1 line at UDDTUS+9	CEG 20-Dec-85
   >				;[7215] END OF REPEAT 0

;Subroutine to update symbol-table pointers in SYMBLK
;CALL:	CALL UDDTSP
;ARGS:	T1/ New  upper limit of symbol block (plus one)
;	+1 always

;**;[7215] Change 1 line at UDDTSP	CEG 20-Dec-85
UDDTSP::STKVAR <DEFLEN,UDFLEN>	;[7215]
	;STKVAR LEGEND
	;  DEFLEN		Current length of defined symbol table
	;  UDFLEN		Current length of undefined symbol table
	MOVE T2,PDVSYM		;Get pointer to defined symbol record
	LDB T2,[POINTR .STLEN(T2),SY%LEN] ;Get length of symbol table
	MOVEM T2,DEFLEN		;Save it
	MOVE T3,PDVUSY		;Get pointer to undefined symbol record
	LDB T3,[POINTR .STLEN(T3),SY%LEN] ;Get length of undefined symbol table
	MOVEM T3,UDFLEN		;Save it
	ADD T2,T3		;Add undefined length to defined length
	CAMG T2,SYMLEN		;Are we within allowable limit?
	IFSKP.			; - NO
	  TMSG <%Symbol table exceeds maximum size and has been truncated
>

	  ;Assume we have no undefined symbols ...
	  MOVE T2,SYMLEN	;Get maximum size
	  MOVEM T2,DEFLEN	;Save that as defined size
	  SETZM UDFLEN		;We have no undefined symbols
	ENDIF.

	SUB T1,DEFLEN		;Calculate origin of defined symbol table
	MOVE T2,PDVSYM		;Get pointer to defined symbol block
	MOVEM T1,.STPTR(T2)	;Save new pointer to defined symbols
	SUB T1,UDFLEN		;Calculate origin of undefined symbol table
	MOVE T2,PDVUSY		;Get pointer to undefined symbol block
	MOVEM T1,.STPTR(T2)	;Save new pointer to undefined symbols
	RET

	ENDSV.

;UDDTSE - set EDDT environment to SYMSEC
; Assume running in section 0.

UDDTSE:	MOVE 16,[UDDTSC,,1]	;Move code
	BLT 16,5		; into AC's so we can transfer to section 1
	XJRST [MSEC1,,2]	;Jump to Ac 2 in section 1
UDDTS1:	RET

UDDTSC:	PHASE 1
	SYMSEC,,FAKDDT		;[Ac 1] Address to call
	JSR @1			;[Ac 2] JSR to EDDT
	XJRSTF 4		;[Ac 3] Go back to section 0
	0			;[Ac 4] PC flags
	0,,UDDTS1		;[Ac 5] PC value
	DEPHASE

>

	RESCD


;RELOAD SYSTEM FROM DISK AND RESTART

SYSGO::

;START SYSTEM KEEP EXISTING SWPMON PAGES

SYSGOX::
	COMMENT %
	MOVE P,PI7P		;GET A STACK
	CALL SAVSMM		;SAVE PRESENT SWPMON MAP
	MOVEI T1,IRBOOT		;NOTE SPECIAL INTERNAL BOOT
	MOVEM T1,BOOTFL
	%	;End comment		

	JRST SYSGO1
;START FROM SCRATCH AFTER LOADING

  IFN FTNSPSRV <
RSI SYMMV1,0			;VALUES SET BY POSTLD FOR INITIALIZATION
RSI SYMMV2,0			; ..
RSI SYMMV3,0			; ..
  >

SYSVSM::SETOM VSMFLG		;INDICATE FORCED CHECKS ON SWAPABLE MONITOR
SYSLOD::MOVX 7,MI%RFS		;INDICATE REFRESHING
	MOVEM 7,STARTF		;SAVE INDICATION OF HOW WE STARTED
SYSGO1::
  IFN FTNSPSRV,< ;[6.0]
	MOVE T1,MONEDV+.EDSYM	;RESTORE SYMTAB POINTERS
	MOVEM T1,.JBSYM
	MOVE T1,MONEDV+.EDUSY
	MOVEM T1,.JBUSY
  >
   IFN KCFLG,<
	WRCTX SETMON		;DECLARE AC BLOCKS (MONITOR CURRENT, USER PREVIOUS)
   >
   IFN KLFLG,<
	DATAO PAG,SETMON	;DECLARE AC BLOCKS
   >
	MOVE P,PI7P
	XCT PIRST		;RESET PI AND IO
	XCT IORST
	SETZM STSBLK		;NO STATUS BLOCK NOW

;Move the symbol table and bug strings.  Everything has been computed
;by POSTLD.

IFN FTNSPSRV <
	MOVE T1,SYMMV1
	BLT T1,@SYMMV2		;MOVE EVERYTHING
	MOVE T1,SYMMV3		;GET VALUE TO ADJUST POINTERS
	ADDM T1,MONEDV+.EDSYM	;UPDATE ALL POINTERS
	ADDM T1,MONEDV+.EDUSY
	ADDM T1,.JBSYM
	ADDM T1,.JBUSY
>

;Now that symbol table is moved, resident storage can be initialized.

	MOVE 1,[XWD ZROCOR,ZROCOR+1]
	SETZM ZROCOR		;CLEAR FIRST WORD
	BLT 1,@ZROEND		;CLEAR RESIDENT STORAGE AREA
	AOS INSKED		;NOTE IN SCHED CONTEXT

;BLT THE VIRGIN COPY OF THE OWGBP TABLE INTO THE EPT

	HRRZI T1,EPTGBP		;BLT TO EPTGBP
	HRLI T1,OWGBPV		;BLT FROM OWGBPV
	BLT T1,EPTGBP+OWGBPN-1	;COPY THE OWGBP TABLE INTO THE EPT

  IFN KLFLG,<
	CALL MDTEIN		;FIND MASTER DTE, ETC.
   IFN DTFLG,<			;DOING FE PROTOCOLS?
	PIOFF			;MAKE SURE MACHINE IS QUIET
	JSR BUGMON		;MAKE SURE IN PROPER PROTOCOL
   >
   >				;END IFN KLFLG
;Turn on paging and enter section 1.

	CALL PGRINI		;INIT CST, ETC., TURN ON PAGING

	SETZM CRSTD1
	SETOM BTBLCK		;INITIALIZE BIT TABLE LOCK
	SKIPE 1,CRSTAD		;HAVE SAVED PRE-CRASH INFO?
	MOVE 1,BUGHAD		;YES, RESTORE CELLS
	HRRZM 1,BUGHLT
	HLRZM 1,BUGCHK

;STORE PROCESSOR'S SERIAL NUMBER. DETERMINE MODE OF ADDRESSING
;(EXTENDED VS: NONEXTENDED)

;**;[7357] Change 2 lines at SYSGO1:+67L	MDR	20-AUG-86
	APRID T1		;[7357] Get APR word
	STOR T1,APRNM,APRSER	;[7357] Serial number only goes here
;**;[7363] Add 1 line at SYSGO1:+69L	MDR	12-SEP-86
	MOVEM T1,APRFLW		;[7363] Save APRID word here

	CALL RESFPI		;INITIALIZE THE RESIDENT FREE POOL
	SKIPE T1,EXECBK		;HAS ADDRESS BREAK BEEN REQUESTED?
	CALL STEXBK		;YES. TELL THE HARDWARE
	 JFCL			;STRANGE, BUT NOT WORTH STOPPING
	CALL SEBINI		;INITIALIZE BUGS
	CALL PVINIT		;INITIALIZE PI VECTORS
   IFN PHYIOF,<
	CALL PHYINI>
   IFE PHYIOF,<
	CALL DSKINI>		 ;DISK

   IFN KCFLG,<CALL KCCINI>	;IF THE 2080, INIT CONSOLE PROTOCOL
	CALL TTINIT		 ;TELETYPE MODULE
   IFG DLXN,<CALL DLXINI> 	;DL10 CONTROLER
	CALL SCDIN		;SCHEDULER
	CALL PSINIT		;PI MODULE - TURN ON THE PI SYSTEM
	SETZM RESIFL		;END OF SYSTEM START UP (FOR RES FREE POOL)
	MOVS 1,CTYLNO		;GET CTY LINE NUMBER
	HRRI 1,JOBSRT		;START A NEW JOB LOCATION
	CALL SCDRQ7		;INITIATE FIRST JOB
	JRST SCHED0		;TO SCHEDULER
;NOW FIND THE MASTER DTE

   IFN KLFLG,<
MDTEIN:	MOVSI T1,-DTEN		;NUMBER TO POLL
	MOVE T2,[CONSO DTE0,DTEPRV] ;LOOK FOR PRIVILEGED BIT
	MOVE T3,[CONSO DTE0,DTEPI0+7] ;CHECK FOR PI ASSIGNED
	MOVE T4,[CONO DTE0,0]	; A CONO WORD
FDMST1:	XCT T3			;HAVE A PI ASSIGNMENT?
	IFNSK.
	  HRRI T4,DTEPI0+DTEPIE ;NO TRY TO TURN ON PI 0
	  XCT T4		;DO IT
	  XCT T3		;DID IT TURN ON?
	  JRST FDMST0		;NO. NON-EX DEVICE
	  TRZ T4,DTEPI0		;TURN IT OFF
	  XCT T4
	ENDIF.
	XCT T2			;THIS IT?
	IFNSK.
	  MOVEI T2,0(T1)	;YES. GET DTE NUMBER
	  MOVEM T2,MSTRDT	;SAVE DTE NUMBER
	  LSH T1,^D26		;ADJUST DEVICE FIELD
	  ADD T1,[CONO DTE0,0(T1)] ;FORM CONO WORD
	  MOVEM T1,DTSCNW	;STORE IN THE PROTOTYPE WORD
	  JRST SYSLD1		;AND PROCEED
	ENDIF.
FDMST0:	ADD T2,[4B11]		;NEXT DTE
	ADD T3,[4B11]
	ADD T4,[4B11]		;ADJUST ALL I/O INSTRUCTIONS
	AOBJN T1,FDMST1		;LOOK AT NEXT
	HALT .			;THIS CAN'T HAPPEN!!!!!!!!!!!!

;SET UP XPCW BLOCK FOR EACH DTE TO POINT TO INTERRUPT CODE

SYSLD1:
	QQ==0
  REPEAT DTEN,<DTXPCW \QQ	;STORE WORD FOR THIS DTE
		QQ==QQ+1>	;DO THEM ALL
	RET
  > ;END IFN KLFLG
;ROUTINE TO RETURN THE LINE FREQUENCY OF THE POWER LINE
;RETURNS LINE FREQUENCY IN A. CLOBBERS ONLY A

LINFRQ::PUSH P,B		;SAVE AN AC
	MOVEI A,^D60		;ASSUME 60 HZ
	APRID B			;GET LINE FREQ INFO
	TRNE B,1B18		;60 HZ?
	MOVEI A,^D50		;NO. TELL HIM IT IS 50 HZ
	POP P,B			;RESTORE B
	RET			;RETURN VALUE IN A
;AUTO RESTART PROCEDURE.  HERE VIA PWRTRP (LOCATION 70) WHEN POWER
;RESTORED AFTER POWER FAILURE.

PWRRST::XJRST [0,,.+1]		;Insure section 0 entry or IORST will hang
	XCT PIRST		;RESET WORLD
	XCT IORST
	MOVE P,PI7P		;NEED A STACK TO CALL MONEPT
	CALL PAGRST		;Init pager
	CALL PGRON		;Turn paging back on
	JSR BUGMON		;SET TO SECONDARY PROTOCOL
	MOVEI 1,[SIXBIT '$ATTEMPTING AUTOMATIC RESTART.../']
	JSR BUGMSG
	SETO 1,
	CAMN 1,PWRDWN		;POWER FAIL SEQUENCE COMPLETED?
	IFNSK.			;Yes, continue system
	  MOVEI 1,[SIXBIT '$ATTEMPTING TO CONTINUE SYSTEM$/']
	  JSR BUGMSG		;Tell CTY
	  SETZM SPWFFL		;Indicate that it was not spurious
	  JRST PWRRS1		;Go restart
	ENDIF.			

;We never got to shut down gracefully. Complain and then BUGHLT.

	MOVEI 1,[SIXBIT '$PWRDWN .NE. -1, RESTARTING...$/']
	JSR BUGMSG
	AOS INSKED		;BE SURE BUGHLT RESTARTS
	BUG.(HLT,PWRFL,APRSRV,HARD,<Fatal power failure>,,<

Cause:	The monitor has been started at the power-fail recovery
	code and is attempting to recover. However, the loss
	of power that preceded this occurred too quickly to
	allow an orderly shutdown. Therefore the monitor will
	be reloaded.  This BUGHLT will be preceeded by the messages:
		"Attempting automatic restart..."
		"PWRDWN .NE. -1, restarting..."
>) 				;Crash and reload
;RESTART SYSTEM

DEFINE DEVRST (DEV)<
   IFG DEV'N,<CALL DEV'RST>>

SYSRST::MOVE P,PI7P
	XJRST [0,,.+1]		;Insure section 0 entry or IORST will hang
   IFG DTFLG,<			;DOING FE PROTOCOLS?
	PIOFF			;MAKE SURE ALL PI'S ARE OFF
	JSR BUGMON		;MAKE SURE IN PROPER PROTOCOL
   >
	XCT PIRST
	XCT IORST		;RESET PI AND IO
	CALL PAGRST		;Init pager
	CALL PGRON		;Turn paging back on
PWRRS1:	XJRST [1,,.+1]		;Insure section 1 entry for TTRSET
       	SETOM SCDRN1
	PUSH P,PWRDWN		;SAVE POWER FAIL INDICATOR
	SETZM PWRDWN
	CALL TTRSET
   IFE PHYIOF,<
	DEVRST DRM
	DEVRST DSK
	DEVRST MTA
   >				;END IFE PHYIOF
   IFN PHYIOF,<
	CALL PHYRST
   >				;END IFN PHYIOF
	DEVRST LPT
   IFG KSCDRN,<
	DEVRST CDR
   >
	DEVRST DTA
	DEVRST PTR
IFG PCDPN,<	DEVRST CDP>		;CARD PUNCH
	DEVRST PTP
IFG PLTN,<	DEVRST PLT>
	DEVRST VBC
	DEVRST DLX
	PUSH P,INSKED
	MOVEI 1,1
	MOVEM 1,INSKED
	SETZM SKEDF1
	CALL PVINIT		;INITIALIZE PI VECTORS
	CALL PSINIT		;TURN ON PI SYSTEM
	CALL SWPRST		;SWAPPER CLEANUP
   IFG DTFLG,<			;DOING FE DH CONFIGURATIONS?
	SKIPE PROFLG		;AND DOING PRIMARY PROTOCOL?
	CALL DTERST>		;YES. GO INIT THE PROTOCOL
	POP P,1			;GET BACK INSKED
	EXCH 1,0(P)		;SAVE OLD INSKED, RESTORE OLD PWRDWN
	SKIPGE 1		;DOING POWER RESTART?
	IFNSK.			;Yes
	  CALL TTDALL		;Detach all jobs then
	  SKIPL SPWFFL		;Was it actually spurious?
	  BUG.(CHK,PWRRES,APRSRV,HARD,<Power restart>,,<

Cause:	The monitor was started at the power fail recovery code
	and is attempting to recover. This BUGCHK will be preceded by:
		"Attempting automatic restart..."
		"Attempting to continue system"
	This indicates that an an orderly shutdown was
	accomplished before the power fail so the system will
	continue. 
>)				;Not spurious, report power fail event.
	ENDIF.			
	POP P,1			;GET OLD INSKED
	JUMPN 1,SCHED0		;RESUME SCHED IF THERE AT CRASH

;Never get here on power restart because a good power fail shutdown
;will have ended in the scheduler.  Here only on manual restart.

	CALL SETPPG		;REESTABLISH CONTEXT
	SETZM INSKED
	SETOM TRAPC
	MOVX 1,USRCTX		;CRASH PROCESS RUNNING AT CRASH
	MOVEM 1,FFL
	SETZM FPC
	MCENTR			;ENTER JSYS CONTEXT
	ITERX
;DISPATCHES FOR PI CHANNELS 5-6.
;EACH ROUTINE CALLED WITH 'CALL'.
;ROUTINE SHOULD RETURN WITH 'RET' (CALLER +1) IF PI IS NOT FOR IT.
;ROUTINE SHOULD RETURN WITH 'UNBRK DEV' (JRST DEVCHR) AFTER HANDLING
;INTERRUPT.

DEFINE PICALL (DEV)<
   IFG DEV'N,<CALL DEV'SV>>

PISC5::
   IFN DTAN+PTRN+PCDPN!FTKLIPA,<		;GENERATE IF HELLIWELL IS ASSEMBLING OR CDP PRESENT
	DMOVEM T1,PI5AC		;SAVE TEMP ACS
	DMOVEM T3,PI5AC+2
	DMOVEM CX,PI5CX		;SAVE CX, P
	MOVE P,[IOWD NPISK,PI5STK]
   IFN FTKLIPA,<
	CONI KLP,CX		;GET DEVICE STATUS
	TXNN CX,CI.CPE!CI.MBE!CI.FQE!CI.EPE!CI.RQA ;IS IT A KLIPA?
	IFSKP.
	   MOVE	CX,CHNTAB+KLPRH2 ;YES, GET ADDRESS OF CDB
	   MOVEM P1,CDBSVQ(CX)	;SAVE P1 WHERE EXIT SEQUENCE WANTS IT
	   MOVE P1,CX		;FAKE A JSP P1,PHYINT
	   DMOVE CX,PI5CX	;RESTORE CLOBBERED ACS
	   JRST PHYINT		;GO TO INTERRUPT HANDLER
	ENDIF.
   >
	PICALL PCDP		;CARD PUNCH
	PICALL DTA
	PICALL PTR
>
   IFE DTAN+PTRN+PCDPN!FTKLIPA,<		;IF NO PI CODE
	PIOFF
	DMOVEM CX,PIXCX		;SAVE REGS
	MOVE P,[IOWD XPISK,PIXSTK]

	EXCH T1,PI5CNT		;SAVE AC AND GET COUNTER
	AOS T1			;BUMP COUNTER
	TRNN T1,7		; COMPLAIN ON EVERY 8'TH ONE
	BUG.(CHK,PI5ERR,STG,HARD,<Unexpected unvectored interrupt on channel 5>,,<

Cause:	If no devices are supposed to exist on the system which cause
	unvectored interrupts on channel 5, and more than ten such interrupts
	happen, this bugchk will occur. This bugchk is only possible if
	your system has no dectape and no card punch and no papertape
	reader. It has been observed that the DX20 occasionally causes
	random interrupts.  Having the bugchk not happen until ten such
	interrupts have been received tends to prevent the bugchk from
	happening.
>)		;YES, COMPLAIN
	EXCH T1,PI5CNT		;RESTORE AC AND COUNT
	CLSB	5		;CLEAR THE INTERRUPT ON 5
   >	;IFE DTAN+PTRN+PCDPN


   IFN DTAN+PTRN+PCDPN!FTKLIPA,< ;GENERATE IF HELLIWELL IS ASSEMBLING OR CDP PRESENT
KLPCHR::
CDPCHR::
PTRCHR::
DTACHR::
	DMOVE T1,PI5AC		;RESTORE TEMPS
	DMOVE T3,PI5AC+2
	DMOVE CX,PI5CX		;RESTORE CX, P

RS PI5AC,4
RS PI5CX,2
RS PI5STK,NPISK
>

   IFE DTAN+PTRN+PCDPN!FTKLIPA,< 	;IF NO PI CODE
	DMOVE CX,PIXCX			;RESTORE REGS
	PION
   >	;IFE DTAN+PTRN+PCDPN

	XJEN PI5R
PISC6::
   IFN KCFLG,<			;FOR THE KC
	MOVE P,[IOWD NPISK6,PI6STK] ;GET A STACK
	CALL CNTTYI		;GO DO THE PROCESSING
   >	;IFN KCFLG

   IFN SMFLG!KNIN!<PLTN+VBCN+PTPN>,<		;GENERATE FOR KS10 AND/OR HELLIWELL
	DMOVEM T1,PI6AC		;SAVE TEMP ACS
	DMOVEM T3,PI6AC+2
	DMOVEM CX,PI6CX		;SAVE CX, P
	MOVE P,[IOWD NPISK6,PI6STK]
	PICALL PLT
	PICALL VBC
	PICALL PTP
	PICALL KNI
   >	;IFN SMFLG!KNIN!<PLTN+VBCN+PTPN>

   IFE KCFLG!SMFLG!KNIN!<PLTN+VBCN+PTPN>,<		;IF NO PI CODE
	PIOFF
	DMOVEM CX,PIXCX
	MOVE P,[IOWD XPISK,PIXSTK]
	BUG.(CHK,PI6ERR,STG,HARD,<Unexpected unvectored interrupt on channel 6>,,<

Cause:	An unvectored PI interrupt has occurred which no devices have
	claimed responsibility for.  This most likely indicates a hardware
	malfunction.

Action:	Notify Field Service.

>)
	CLSB	6		;CLEAR THE INTERRUPT ON 6
   >	;IFE KCFLG!SMFLG!KNIN!<PLTN+VBCN+PTPN>


   IFN SMFLG!KNIN!<PLTN+VBCN+PTPN>,< ;GENERATE FOR KS10 AND/OR HELLIWELL
PLTCHR::
VBCCHR::
PTPCHR::
LPTCHR::
KNICHR::
IMPCHR::
	DMOVE T1,PI6AC
	DMOVE T3,PI6AC+2
	DMOVE CX,PI6CX		;RESTORE ACS

RS PI6AC,4
RS PI6CX,2
RS PI6STK,NPISK6
   >	;IFN SMFLG!KNIN!<PLTN+VBCN+PTPN>

   IFE KCFLG!SMFLG!KNIN!<PLTN+VBCN+PTPN>,<	;IF NO PI CODE
	DMOVE CX,PIXCX		;RESTORE REGS
	PION
   >	;IFE KCFLG!SMFLG!KNIN!<PLTN+VBCN+PTPN>

	XJEN PI6R

RS PIXCX,2			;SAVE REGS HERE
NDG XPISK,10
RS PIXSTK,XPISK			;STACK FOR NON-PI CASES
;DUMMY ROUTINES FOR DEVICES NOT PRESENT

   IFE DTAN,<			;IF NO DECTAPES

DTADTB::
DTAACK::
DTAMCK::
DTASTS::
	RET
   >

   IFE DRMN!PHYIOF,<

;DRUM DRIVER - DUMMY DRUM, USES DSK
	RESCD

;DRUM IO DRIVER

; AC1/ 18-35 CORE PAGE NUMBER (CST INDEX) OF PAGE
;      DWRBIT WRITE OPERATION IF 1, READ IF 0

DRMIO::	HLLZS CST3(1)		;SINGLE PAGE REQUEST, ZERO REST OF LIST
DRMIOM::SKIPG DRUMP		;DRUM ON SYSTEM?
	JRST DSKIOM		;NO, USE DISK
	BUG.(HLT,DRUMP1,STG,SOFT,<DRMIO - Drum on but no drum code in system>,,<

Cause:	This can only happen on the 2020. This BUGHLT occurs at DRMIOM if
	DRUMP contains a positive number. DRUMP contains DRMN, which, if
	positive, causes the DRUMP1 BUGHLT code not to be assembled.
>)

DRMINI::SETOM DRMJ0R
	RET
   >				;END IFE DRMN!PHYIOF
;Routine used by TTYSRV channel 7 code to scan lines that do
;not feed BIGBUF.

XTRCH7::			;ENTRY FROM TTYSRV

   IFN KCFLG,<			;IF THE KC
	CALL CNSCAN		;DO SCAN
   >
	RET			;AND DONE


;Routine called at fork death to handle processor dependent stuff.

INTCLR::
   IFN KCFLG,<			;FOR THE 2080
	CALL CHKEMM		;CLEAR EMM INTS
   >	;IFN KCFLG
	RET			;THAT'S ALL
		SUBTTL ATSSRV STORAGE

;POINTERS FOR BACKGROUND PROCESS QUEUES

IFN ATS,<
NR ATBTR1			;HEAD OF TERMINAL BLOCK QUEUE
NR ATBTR2			;TAIL OF TERMINAL BLOCK QUEUE
NR ATBDD1			;HEAD OF DATA PIPE DATA QUEUE
NR ATBDD2			;TAIL OF DATA PIPE DATA QUEUE
NR ATBCD1			;HEAD OF CONTROL PIPE DATA QUEUE
NR ATBCD2			;TAIL OF CONTROL PIPE DATA QUEUE
NR ATBPI1			;HEAD OF PIPE BLOCK QUEUE
NR ATBPI2			;TAIL OF PIPE BLOCK QUEUE

RS ATBPFG			;FLAG TO WAKE UP BACKGROUND PROCESS
				; (-1 TO WAKE, 0 TO SLEEP)
NR NRBKGR			;NRM BACKROUND TASK NEEDS TO DISMS AND TRY AGAIN

NDG ATMAX,^D96			;MAXIMUM NUMBER OF HTN'S IN SYSTEM
NR HTNADR,ATMAX+1		;TABLE OF ADDRESSES OF TERMINAL DATA
				; INDEXED BY HTN (WORD 0 UNUSED)

;SYSTEM INPUT BIT MASK - ONE BIT PER HTN

AMDAT==:1			;FIRST WORD IN BLOCK THAT HAS VALID BITS
NATMSK==:<<ATMAX+^D36>/^D36>+AMDAT ;NUMBER WORDS OF FREE SPACE
>
	SUBTTL Temporary dummy routines for the KC

IFN KCFLG,<
	RESCD
DTTIME::
DTEPOL::RET
PROINI::RET
RS FEFLG,1
.BOOT::JRST MRETN
.LPINI::JRST MRETN
>
;**;[7193]Add two symbols to represent problem on device  JYCW  Nov-12-85
PRBDEV::ASCIZ/
	%PROBLEM ON DEVICE /		;[7193] PROBLEM ON DEVICE MESSAGE
CRLF::ASCIZ/
/					;[7193] CRLF
COMMENT \
		HOW TO ADD A CUSTOM PASSWORD-ENCRYPTION ALGORITHM


1.	Add the code for the new algorithm immediately after the dispatch table
	CUSDIS.
2.	Add the entry address for the new algorithm to the first unused slot
	in CUSDIS.
3.	Redefine MX%CPV so that the table index for the new
	algorithm is included in the interval [MN%CPV...MX%CPV].
4.	Change location PSENVR to contain MX%CPV.

For example, if slot 1 is the first unused slot in CUSDIS, and the entry
address to the new algorithm is CUSENC, then:

PSENVR::MX%CPV

CUSDIS::[RETSKP]		;Version 0 (Always unencrypted)
	  MN%CPV==:<.-CUSDIS-1>!1B18
	CUSENC			;Version 1
	  MX%CPV==:<.-CUSDIS-1>!1B18
	[RET]			;Version 2
	.
	.
	.


CUSDIS+0 must not be changed.  Also, all customer encryption-numbers must have
bit 18 set.

	RULES FOR CODING THE ALGORITHM

1.	The routine must always return with +2 (e.g. with RETSKP).
	Before the encryption code is entered, the encryption
	version number will be range-checked by the monitor.  If the version
	number fails that check, then a +1 return is done to inform
	the caller that an illegal version number was specified.
2.	The routine must preserve all AC's except T1-T4
3.	The routine will be called with T2 containing a pointer to
	an 8-word JSB free-space block containing the plaintext password.
	This pointer is in the form: (-(LEN-1),,TEXT-1).
4.	The routine must return with T1 containing a pointer
	(again, in the format: (-(LEN-1),,TEXT-1)  ) to an
	8-word JSB free-space block containing the cyphertext password.
	The block in which the plaintext is passed may be used to
	produce and store the cyphertext password.  If additional JSB
	freespace is required to produce the cyphertext password,
	then that space must be released by the routine before the
	return is performed.  One (and only one) 8-word JSB block
	must be left assigned on the return.

5.	Password compares are done on a per-word basis.  To avoid problems,
	encrypted passwords should be padded with trailing nulls to the end
	of the 8-word block.

6.	Immediately before the encryption algorithm is called, the
	monitor saves the current date and time in cell DRPDT of
	the currently mapped directory.  By folding the contents of
	DRPDT into the password during the encryption process, customers
	can insure that duplicate passwords will not generate the same
	cyphertext.

	The contents may be fetched as follows:

	  MOVE T1,DIRORA	;Get directory origin
	  LOAD T1,DRPDT,(T1)	;Get encryption date and time

	The contents of DRPDT are saved and restored by DUMPER/DLUSER.  DRPDT
	is changed only when a new password is created with CRDIR, and
	not when an existing password is restored with CRDIR.

\	;End comment
		;Password encryption definitions

	SWAPCD

PSENVR::1			;Encryption algorithm to use when
				;encrypting new passwords

;Customer password-encryption version-number interval
MINCPV::MN%CPV			;Minimum customer password encryption version
MAXCPV::MX%CPV			;Maximum customer password encryption version


;Customer password-encryption version-number dispatch table.
CUSDIS::[RETSKP]		;Version 0 (Always unencrypted)
	  MN%CPV==:<.-CUSDIS-1>!1B18	  ;Current minimum customer encryption version
	  MX%CPV==:<.-CUSDIS-1>!1B18	  ;Current maximum customer encryption version
	[RET]			;Version 1
	[RET]			;Version 2
	[RET]			;Version 3
	[RET]			;Version 4
	[RET]			;Version 5
	[RET]			;Version 6
	[RET]			;Version 7
	[RET]			;Version 10

;Customer-written encryption algorithms go here
;END OF STORAGE AREAS


	S$END PSVAR
	S$END JSVAR
	S$END NPVAR
	S$END ERVAR
	S$END ENVAR
	S$END EPVAR

	TNXEND
	END	EVGO
; *** Edit 7184 to STG.MAC by MELOHN on 5-Nov-85 (TCO 6-1-1551)
; Increase NHOSTS factor from 4 to 6
; *** Edit 7189 to STG.MAC by MCCOLLUM on 12-Nov-85
; Increase .RESUQ from 13000 to 17500