Google
 

Trailing-Edge - PDP-10 Archives - bb-d868a-bm - 3-sources/stg.mac
There are 95 other files named stg.mac in the archive. Click here to see a list.
;<3.SM10-RELEASE-3>STG.MAC.47,  5-Apr-78 14:36:36, Edit by MCCLURE
; ADD NODNUM AND OURNUM
;<3.SM10-RELEASE-3>STG.MAC.46, 17-Mar-78 12:21:04, Edit by MCCLURE
; ADD DUPNLN
;<3.SM10-RELEASE-3>STG.MAC.45, 16-Feb-78 20:59:25, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.44, 16-Feb-78 20:46:40, Edit by MCLEAN
;FIX .PLOCK SO WE DON'T HAVE TO HAVE A DIFFERENT MONSYM
;<3.SM10-RELEASE-3>STG.MAC.43, 10-Feb-78 00:50:12, Edit by MCLEAN
;REMOVE LPPTR
;<3.SM10-RELEASE-3>STG.MAC.42,  8-Feb-78 23:53:28, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.41,  8-Feb-78 19:36:44, Edit by MCLEAN
;ADD MORE STORAGE FOR LP20
;<3.SM10-RELEASE-3>STG.MAC.40,  8-Feb-78 19:35:50, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.39,  7-Feb-78 16:30:59, Edit by MCLEAN
;ADD LPWINA FOR KS10
;<3.SM10-RELEASE-3>STG.MAC.38,  7-Feb-78 14:36:07, Edit by MCLEAN
;MAKE NLPBF BE AN NDG FOR KS10
;<3.SM10-RELEASE-3>STG.MAC.37,  5-Feb-78 18:03:34, Edit by MCLEAN
;ADD CRSHTM FOR RELOADS
;<3.SM10-RELEASE-3>STG.MAC.36, 27-Jan-78 02:15:58, EDIT BY BOSACK
;<3.SM10-RELEASE-3>STG.MAC.35, 26-Jan-78 23:36:09, EDIT BY BOSACK
;ADD SECTORS PER SURFACE AND MICROSECONDS PER LATOPT UNIT TO DSKSIZ
;<3.SM10-RELEASE-3>STG.MAC.34, 19-Jan-78 11:51:46, EDIT BY MILLER
;MOVE SPT DEFINITION TO SPECAIL PAGES AREA
;<3.SM10-RELEASE-3>STG.MAC.33, 18-Jan-78 13:01:23, EDIT BY MILLER
;ADD ENDRGN DEFINITION
;<3.SM10-RELEASE-3>STG.MAC.32, 17-Jan-78 09:56:42, EDIT BY MILLER
;ADD DIAGAR
;<3.SM10-RELEASE-3>STG.MAC.31, 11-Jan-78 20:09:58, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.30,  8-Jan-78 21:41:23, EDIT BY BORCHEK
;IF DCN=0 DEFINE NODINI IN STG TO PREVENT UNDEFINED GLOBAL
;<3.SM10-RELEASE-3>STG.MAC.29,  6-Jan-78 08:15:22, EDIT BY MILLER
;DEFINE SPCRES
;<3.SM10-RELEASE-3>STG.MAC.28, 21-Dec-77 13:15:11, EDIT BY HALL
;REMOVE BTBFLG
;<3.SM10-RELEASE-3>STG.MAC.25, 14-Dec-77 10:30:15, EDIT BY MCCLURE
;<3.SM10-RELEASE-3>STG.MAC.24, 11-Dec-77 21:06:00, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.23, 11-Dec-77 21:01:31, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.21,  8-Dec-77 17:42:35, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.20,  8-Dec-77 13:21:04, EDIT BY MILLER
;ADD MCPRON DEFINITION
;<3.SM10-RELEASE-3>STG.MAC.17,  8-Dec-77 11:34:56, EDIT BY ENGEL
;TCO #1887 HANDLE UNEXPECTED INTERRUPTS ON UNVECTORED CHANNELS
;<3.SM10-RELEASE-3>STG.MAC.16,  8-Dec-77 09:30:59, EDIT BY MILLER
;ADD OURCNT
;<3.SM10-RELEASE-3>STG.MAC.15,  7-Dec-77 13:43:27, EDIT BY MILLER
;MAKE NSPMAX AN ARRAY
;<3.SM10-RELEASE-3>STG.MAC.14,  7-Dec-77 10:18:38, EDIT BY MCCLURE
;<3.SM10-RELEASE-3>STG.MAC.13,  2-Dec-77 15:01:39, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.12,  1-Dec-77 16:02:56, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.11, 30-Nov-77 11:00:59, EDIT BY MILLER
;MOVE FE EXECUTE LOCATION FROM 144 TO 71
;<3.SM10-RELEASE-3>STG.MAC.10, 29-Nov-77 14:56:48, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.9, 29-Nov-77 00:41:49, Edit by MCLEAN
;<3.SM10-RELEASE-3>STG.MAC.8, 21-Nov-77 13:28:04, Edit by MCLEAN
;<3-MONITOR>STG.MAC.688, 17-Nov-77 13:11:23, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.687, 16-Nov-77 16:27:47, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.685, 11-Nov-77 18:01:54, EDIT BY MURPHY
;VARIABLES FOR CLOCK ON/OFF FACILITY
;<3-MONITOR>STG.MAC.681,  8-Nov-77 20:30:40, EDIT BY MILLER
;ADD PNSKDC TO THE PSB SO WE CAN DOING DIAG INTS CORRECTLY
;<3.SM10-RELEASE-3>STG.MAC.3, 26-Oct-77 14:03:01, Edit by MCLEAN
;ADD KLILNO   -- KLINIK LINE NUMBER FOR KS10
;<3.SM10-RELEASE-3>STG.MAC.2, 25-Oct-77 11:06:56, EDIT BY MURPHY
;ADD SEARCH PROKL, PROKS
;<3-MONITOR>STG.MAC.680, 17-Oct-77 18:57:38, EDIT BY HURLEY
;SET MSEC1 DEFAULT TO 1
;<3-MONITOR>STG.MAC.679, 17-Oct-77 16:20:53, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.678, 12-Oct-77 16:34:53, EDIT BY MILLER
;COMPUTE JFN AREA USING PROPER SYMBOL
;<3-MONITOR>STG.MAC.677, 11-Oct-77 16:21:04, EDIT BY MURPHY
;DEFAULT MSEC1 SET TO 0
;<3-MONITOR>STG.MAC.676, 10-Oct-77 14:28:13, EDIT BY KIRSCHEN
;UPDATE COPYRIGHT FOR RELEASE 3
;<3-MONITOR>STG.MAC.675,  7-Oct-77 11:23:37, EDIT BY MILLER
;SET UP XCT FOR A KEEP ALIVE CEASED AT 144
;<3-MONITOR>STG.MAC.674,  6-Oct-77 13:25:13, EDIT BY OSMAN
;DEFINE LPTST3
;<3-MONITOR>STG.MAC.673,  4-Oct-77 16:21:33, EDIT BY OSMAN
;DEFINING LPTST2
;<3-MONITOR>STG.MAC.672,  4-Oct-77 10:32:36, EDIT BY MILLER
;<3-MONITOR>STG.MAC.671,  4-Oct-77 10:13:14, EDIT BY MILLER
;DEFINE FPTABL
;<3-MONITOR>STG.MAC.670,  2-Oct-77 15:04:51, EDIT BY MILLER
;<MILLER>STG.MAC.2,  2-Oct-77 14:58:20, EDIT BY MILLER
;add section # defs
;<3-MONITOR>STG.MAC.669, 30-Sep-77 14:18:07, EDIT BY MILLER
;MAKE CHECK IN SYSLOD CODE FOR MSEC1 TO SEE IF WANT EXTENDED SECTIONS
;<3-MONITOR>STG.MAC.668, 24-Sep-77 23:46:07, EDIT BY CROSSLAND
;<3-MONITOR>STG.MAC.667, 24-Sep-77 21:55:49, Edit by MCLEAN
;REMOVE LPTSV FROM PI INTERRUPT SERVICE
;<3-MONITOR>STG.MAC.666, 20-Sep-77 10:34:05, EDIT BY MILLER
;ADD DZCHCT
;<3-MONITOR>STG.MAC.665, 19-Sep-77 14:35:09, EDIT BY OSMAN
;PUT IN KS LINEPRINTER STORAGE
;<3-MONITOR>STG.MAC.664, 19-Sep-77 14:09:06, EDIT BY MILLER
;DEFINE VALUES FOR TTY TIME CHECKS
;<3-MONITOR>STG.MAC.663, 18-Sep-77 16:30:36, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.662, 16-Sep-77 11:03:51, EDIT BY MILLER
;CHANGE DCOPNM TO BE 4 BY DEFAULT
;<3-MONITOR>STG.MAC.661, 15-Sep-77 01:47:41, EDIT BY CROSSLAND
;ADD AMONITR FOR ARPA MONITOR NAME AT MONSNM
;<3-MONITOR>STG.MAC.660, 14-Sep-77 14:44:17, Edit by MCLEAN
;INSERT CALL TO  DZCTIN FOR TTYSRV KS10 CTY
;<3-MONITOR>STG.MAC.659, 12-Sep-77 23:31:26, EDIT BY CROSSLAND
;DO NOT RESERVE SPACE FOR BITTABLE IF NETN IS ON
;<3-MONITOR>STG.MAC.658,  4-Sep-77 21:10:35, EDIT BY BOSACK
;<SM10-MONITOR>STG.MAC.656,  2-Sep-77 12:11:12, Edit by MCLEAN
;<3-MONITOR>STG.MAC.655,  1-Sep-77 15:37:16, EDIT BY KIRSCHEN
;<3-MONITOR>STG.MAC.654,  1-Sep-77 15:23:54, EDIT BY KIRSCHEN
;MOVE EXADF TO STG FROM PARAMS, DIRECTORY DEFAULTS FROM PARAMS TO STG
;<3-MONITOR>STG.MAC.653, 28-Aug-77 01:40:05, EDIT BY HELLIWELL
;DL10 STORAGE CHANGES
;<3-MONITOR>STG.MAC.652, 27-Aug-77 10:58:43, EDIT BY MILLER
;DEFINE MAX OBJECT #'S ALLOWED TO DECNET PROGRAMS
;<3-MONITOR>STG.MAC.651, 27-Aug-77 02:51:30, EDIT BY BOSACK
;<3-MONITOR>STG.MAC.650, 26-Aug-77 15:22:15, Edit by MCLEAN
;FIX CYLUN3 TO BE 820
;<3-MONITOR>STG.MAC.649, 26-Aug-77 09:28:41, EDIT BY MILLER
;ADD SPECIAL POWER FAIL INSTRUCTION
;<3-MONITOR>STG.MAC.648, 22-Aug-77 14:45:43, EDIT BY KIRSCHEN
;<3-MONITOR>STG.MAC.647, 22-Aug-77 10:11:05, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.646, 19-Aug-77 16:32:30, Edit by MCLEAN
;FIX DSKSZ3
;<3-MONITOR>STG.MAC.645, 19-Aug-77 15:18:22, EDIT BY MILLER
;MAKE NSP TREE LOCK RESIDENT
;<3-MONITOR>STG.MAC.644, 17-Aug-77 23:48:27, EDIT BY BOSACK
;TTYPEX TABLES MUST BE RESIDENT
;<3-MONITOR>STG.MAC.643, 17-Aug-77 19:35:46, Edit by MCLEAN
;<3-MONITOR>STG.MAC.642, 17-Aug-77 18:31:48, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.641, 17-Aug-77 16:57:38, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.640, 17-Aug-77 16:53:38, EDIT BY HURLEY
;MOVED TTYPE0 AND TTYPE1 TABLES AND CURSOR TABLES TO STG
;<3-MONITOR>STG.MAC.639, 16-Aug-77 08:56:19, EDIT BY MILLER
;<3-MONITOR>STG.MAC.638, 15-Aug-77 19:34:34, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.637, 15-Aug-77 19:09:55, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.636, 15-Aug-77 19:06:37, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.635, 15-Aug-77 19:01:45, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.634, 15-Aug-77 18:57:03, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.633, 15-Aug-77 16:09:21, EDIT BY MILLER
;ADD DCOPNM DEFINITION
;<3-MONITOR>STG.MAC.632, 15-Aug-77 16:00:17, EDIT BY MILLER
;ADD DCNCNT JSB VARIABLE
;<3-MONITOR>STG.MAC.631, 15-Aug-77 11:33:40, EDIT BY MILLER
;ALLOCATE SUFFICIENT SPACE FOR NETWORK STRINGS
;<3-MONITOR>STG.MAC.630, 15-Aug-77 11:11:15, EDIT BY MILLER
;<3-MONITOR>STG.MAC.629, 15-Aug-77 09:56:07, EDIT BY MILLER
;INCREASE STRING STORAGE FOR DECNET LINKS
;<3-MONITOR>STG.MAC.628, 15-Aug-77 08:32:00, EDIT BY MILLER
;MAKE DTE INT CODE PURE
;<3-MONITOR>STG.MAC.627, 14-Aug-77 23:45:36, Edit by MCLEAN
;ADD SMFLAG
;<SM10-MONITOR>STG.MAC.626, 13-Aug-77 01:42:14, Edit by MCLEAN
;ADD RM03
;<3-MONITOR>STG.MAC.625, 12-Aug-77 20:57:21, EDIT BY BOSACK
;<3-MONITOR>STG.MAC.624, 12-Aug-77 17:19:06, Edit by LCAMPBELL
;ADD WORD TO PSB TO HOLD ADDR OF INSTR CAUSING ADDR BREAK
;<3-MONITOR>STG.MAC.623, 12-Aug-77 04:34:25, EDIT BY BOSACK
;SETUP EPT BEFORE POLLING FOR MASTER DTE
;<3-MONITOR>STG.MAC.622, 11-Aug-77 17:23:47, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.621, 11-Aug-77 15:23:05, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.620, 11-Aug-77 09:32:56, EDIT BY HURLEY
;ADD LOGICAL NAME FOR SYSTEM:
;<3-MONITOR>STG.MAC.619, 11-Aug-77 00:25:05, Edit by MCLEAN
;FIX PROFLG FOR SM10
;<3-MONITOR>STG.MAC.618, 11-Aug-77 00:14:13, Edit by MCLEAN
;REMOVE POSTSM
;<3-MONITOR>STG.MAC.617, 10-Aug-77 12:55:00, Edit by MACK
;TCO 1822 - ADD CACHED ACCOUNT (CSHACT) TO JSB
;<3-MONITOR>STG.MAC.616, 10-Aug-77 09:22:54, EDIT BY MILLER
;<3-MONITOR>STG.MAC.615, 10-Aug-77 09:20:09, EDIT BY MILLER
;EXPAND PIPDL TO 34 WORDS. MOVE UPDL ONTO STACK PAGE
;<3BOSACK>STG.MAC.617,  9-Aug-77 02:38:04, EDIT BY BOSACK
;TCO 1832 - PSECT CHANGES
;<3-MONITOR>STG.MAC.613,  2-Aug-77 09:06:03, Edit by HESS
;ADD CONNECT TIME OF DAY TO JSB - CTIMON
;<3-MONITOR>STG.MAC.612,  2-Aug-77 08:33:14, EDIT BY MILLER
;ADD NAKCNT DEFINITION
;<3-MONITOR>STG.MAC.611, 30-Jul-77 01:47:20, EDIT BY CROSSLAND
;REMOVE SPECIAL CHECKS FOR NVT'S
;<3-MONITOR>STG.MAC.610, 29-Jul-77 10:44:33, Edit by HESS
;MOVE SYSTAD SO IT DOESNT GET CLEARED
;<3-MONITOR>STG.MAC.609, 28-Jul-77 00:34:26, EDIT BY CLEMENTS
; Remove TTFRK1. It's been dynamic'ed.
;<3-MONITOR>STG.MAC.608, 27-Jul-77 15:33:55, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.607, 27-Jul-77 11:33:37, EDIT BY HURLEY
;GET SDB BLOCKS FROM RESIDENT FREE POOL
;<3-MONITOR>STG.MAC.606, 27-Jul-77 09:22:05, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.605, 26-Jul-77 17:41:49, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.604, 26-Jul-77 17:18:48, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.603, 26-Jul-77 10:36:32, EDIT BY HURLEY
;FIX DSKALC FREE CHOICE ALGORITHM
;<3-MONITOR>STG.MAC.602, 24-Jul-77 13:24:18, EDIT BY CLEMENTS
;<3-NSW-MONITOR>STG.MAC.1, 24-Jul-77 13:23:42, EDIT BY CLEMENTS
;<3-MONITOR>STG.MAC.601, 23-Jul-77 23:33:18, EDIT BY CROSSLAND
;MOVE ARPANET BUFFERS TO ANOTHER SECTION
;<3-NSW-MONITOR>STG.MAC.1, 22-Jul-77 20:39:48, EDIT BY CLEMENTS
; ADD STORAGE AND CLK2 CALL FOR NEW CRJOB, TIMER AND JSYS TRAPS
;<3-MONITOR>STG.MAC.599, 20-Jul-77 11:37:51, Edit by MACK
;<3-MONITOR>STG.MAC.598, 20-Jul-77 11:32:13, Edit by MACK
;TCO 1822 - ADDED ACCTSX (ACCTSR EXPIRATION DATE) TO JSB
;<3-MONITOR>STG.MAC.597, 13-Jul-77 11:25:49, Edit by HESS
;<3-MONITOR>STG.MAC.596, 12-Jul-77 00:39:40, Edit by MCLEAN
;<3-MONITOR>STG.MAC.595, 12-Jul-77 00:07:13, Edit by MCLEAN
;MAKE MXDIRN MEMORY LOCATION
;<3-MONITOR>STG.MAC.594, 11-Jul-77 17:25:48, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.593, 11-Jul-77 13:58:28, Edit by LCAMPBELL
;TCO 1838 - Address break
;<3-MONITOR>STG.MAC.592, 11-Jul-77 11:44:03, Edit by HESS
;ADD STORAGE FOR JOB 0 CHECKPOINT TIMER
;<3-MONITOR>STG.MAC.591,  7-Jul-77 15:53:41, Edit by HESS
;<3-MONITOR>STG.MAC.590,  6-Jul-77 14:54:42, EDIT BY KIRSCHEN
;ADD .NODE AS DUMMY FOR DECNET-LESS SYSTEMS
;<3-MONITOR>STG.MAC.589,  6-Jul-77 13:08:40, EDIT BY MILLER
;ADD NSPINI AS DUMMY ENTRY
;<3-MONITOR>STG.MAC.588,  5-Jul-77 14:19:26, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.587,  5-Jul-77 08:54:55, EDIT BY MILLER
;REMOVE SOME OF NSPSRV DATA BASE NO LONGER NEEDED
;<3-MONITOR>STG.MAC.586,  1-Jul-77 14:22:30, Edit by MCLEAN
;ADD FILINE
;<3-MONITOR>STG.MAC.585,  1-Jul-77 09:30:35, EDIT BY MILLER
;ADD DEDMCB IF DECNET UNSUPPORTED
;<3-MONITOR>STG.MAC.584, 29-Jun-77 12:14:52, Edit by HESS
;ADD USAGE STORAGE TO JSB
;<3-MONITOR>STG.MAC.583, 28-Jun-77 11:24:53, EDIT BY MILLER
;<3-MONITOR>STG.MAC.582, 28-Jun-77 10:04:58, EDIT BY OSMAN
;<3-MONITOR>STG.MAC.581, 28-Jun-77 09:51:21, EDIT BY OSMAN
;ADD DECNET JFN BLOCK DEFS
;<3-MONITOR>STG.MAC.580, 27-Jun-77 19:33:35, Edit by MCLEAN
;FIX APRID (EXADF1 AND EXADFL TO LOOK AT CORRECT MICROCODE BITS)
;<3-MONITOR>STG.MAC.579, 27-Jun-77 17:16:06, EDIT BY BOSACK
;<3-MONITOR>STG.MAC.578, 27-Jun-77 14:39:02, Edit by MCLEAN
;MOVE EPT TO 540
;<3-MONITOR>STG.MAC.577, 27-Jun-77 13:29:07, Edit by HESS
;REMOVE LOGBUF,ACCTPT - PUT SYSTAD IN RESIDENT STG
;<3-MONITOR>STG.MAC.576, 24-Jun-77 17:25:23, Edit by HESS
;<3-MONITOR>STG.MAC.575, 24-Jun-77 14:57:44, Edit by HESS
;REMOVE VERSION INFO TO SEPARATE MODULE
;<3-MONITOR>STG.MAC.574, 24-Jun-77 10:31:28, Edit by HESS
;FIX PSB DEFINITIONS
;<3-MONITOR>STG.MAC.573, 23-Jun-77 19:31:44, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.572, 23-Jun-77 19:29:45, EDIT BY HURLEY
;REMOVED PSBMSZ
;<3-MONITOR>STG.MAC.571, 23-Jun-77 19:14:21, EDIT BY HURLEY
;MAKE ROOM IN PSB FOR EXTENDED IDXTAB
;<3-MONITOR>STG.MAC.570, 23-Jun-77 13:38:26, Edit by MCLEAN
;FIX LP CONDITIONALS
;<3-MONITOR>STG.MAC.569, 23-Jun-77 13:29:22, Edit by MCLEAN
;ADD PSBMSZ
;<3-MONITOR>STG.MAC.568, 23-Jun-77 10:20:16, EDIT BY MILLER
;<3-MONITOR>STG.MAC.567, 22-Jun-77 21:26:29, Edit by MCLEAN
;ADD BTBSIZ FOR EXTENDED ADDRESSING
;<3-MONITOR>STG.MAC.566, 22-Jun-77 13:41:10, EDIT BY MILLER
;<3-MONITOR>STG.MAC.565, 22-Jun-77 08:15:39, EDIT BY MILLER
;ADD NSPMAX
;<3-MONITOR>STG.MAC.564, 22-Jun-77 08:04:36, EDIT BY MILLER
;EXPAND DTE STACK SO ASGRES WON'T CAUSE MONPDL
;<3-MONITOR>STG.MAC.563, 20-Jun-77 23:10:04, Edit by HESS
;<3-MONITOR>STG.MAC.562, 20-Jun-77 10:20:06, EDIT BY MILLER
;REDEFINE KLIDTA BUFFER SIZES
;<3-MONITOR>STG.MAC.561, 17-Jun-77 16:49:06, EDIT BY MURPHY
;TCO #1826
;<3-MONITOR>STG.MAC.560, 17-Jun-77 05:37:29, EDIT BY CROSSLAND
;COMMENT IMPFRE AND REDUCE SIZE TO 5
;<3-MONITOR>STG.MAC.559, 16-Jun-77 15:03:05, Edit by HESS
;<3-MONITOR>STG.MAC.558, 15-Jun-77 14:46:41, Edit by MACK
;TCO 1808 - SESSION REMARK NOW LIVES RIGHT IN JSB
;<3-MONITOR>STG.MAC.557, 15-Jun-77 11:27:11, Edit by MACK
;ADDED STORAGE FOR ACCOUNT VALIDATION
;<3-MONITOR>STG.MAC.556, 15-Jun-77 10:58:24, Edit by HESS
;TCO 1821 - ADD STORAGE FOR USAGE JSYS
;<3-MONITOR>STG.MAC.555, 15-Jun-77 10:25:11, EDIT BY MILLER
;ADD DUMMY NSPQ AND NSPSPC ROUTINES FOR NON-DECNET MONITORS
;<3-MONITOR>STG.MAC.554, 14-Jun-77 23:32:57, EDIT BY OSMAN
;INCREASE MESHDS TO LEAVE ROOM FOR ACCOUNT STRING
;<3-MONITOR>STG.MAC.553, 14-Jun-77 22:11:22, EDIT BY CROSSLAND
;REMOVE SUPPORT FOR BBN AND ISI IMP INTERFACES
;<3-MONITOR>STG.MAC.552, 14-Jun-77 13:19:05, EDIT BY MILLER
;MAKE DCN ASSEMBLE 1 BY DEFAULT
;<3-MONITOR>STG.MAC.551, 13-Jun-77 14:33:12, EDIT BY MILLER
;<3-MONITOR>STG.MAC.550, 13-Jun-77 10:35:47, EDIT BY MILLER
;ADD CALL TO NSPCH7 IN THE LV8CHK TABLE
;<3-MONITOR>STG.MAC.549, 13-Jun-77 10:24:06, EDIT BY MILLER
;ADD SMSGQ
;<MACK>STG.MAC.1, 13-Jun-77 07:19:16, Edit by MACK
;<3-MONITOR>STG.MAC.547, 13-Jun-77 03:11:09, EDIT BY CROSSLAND
;<3-MONITOR>STG.MAC.546, 11-Jun-77 15:00:02, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.544, 10-Jun-77 11:09:10, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.543, 10-Jun-77 10:39:40, Edit by MACK
;ADDED NON-JSB STORAGE FOR ACCOUNT VALIDATION
;<3-MONITOR>STG.MAC.542,  9-Jun-77 23:34:53, EDIT BY MURPHY
;PERFORMANCE ENHANCEMENTS
;<2-PERF>STG.MAC.5, 26-May-77 16:04:29, EDIT BY HURLEY
;ADDED JSBCDS - POINTER TO CONNECTED DIR STRING
;<2-PERF>STG.MAC.4, 26-May-77 15:20:26, EDIT BY MURPHY
;<N2-MONITOR>STG.MAC.1, 12-May-77 14:25:30, EDIT BY MURPHY
;<MON1065>STG.MAC.3, 22-May-77 18:24:43, EDIT BY HELLIWELL
;<MON1065>STG.MAC.2, 12-May-77 18:56:16, EDIT BY HELLIWELL
;<MON1065>STG.MAC.1,  6-May-77 14:17:55, EDIT BY HELLIWELL
;CHANGE DL10 STORAGE FOR 2 DL10'S
;<3-MONITOR>STG.MAC.541,  7-Jun-77 08:40:58, EDIT BY MILLER
;ADD NETWORK ATTRIBUTE DEFS
;<3-MONITOR>STG.MAC.540,  4-Jun-77 10:15:42, EDIT BY MILLER
;ADD RSEGQ
;<3-MONITOR>STG.MAC.539,  1-Jun-77 10:26:42, EDIT BY MILLER
;ADD DEV ENTRIES FOR DCN AND SRV
;<3-MONITOR>STG.MAC.538, 31-May-77 00:22:53, EDIT BY BOSACK
;ADD DEFAULT VALUE FOR SUBDIRECTORY QUOTA
;<3-MONITOR>STG.MAC.537, 27-May-77 11:10:09, EDIT BY HALL
;CHANGE REFERENCE TO PDST TO REFERENCE NDST
;<3-MONITOR>STG.MAC.536, 25-May-77 14:38:17, Edit by MACK
;TCO 1808 - JSSRM IN JSB POINTS TO JOB SESSION REMARK
;<3-MONITOR>STG.MAC.535, 25-May-77 11:22:42, EDIT BY MILLER
;MOVE ALLOCATION OF RESIDENT FREE POOL TO AFTER BIT TABLE. HACK FIX
;<3-MONITOR>STG.MAC.534, 24-May-77 16:14:47, EDIT BY MILLER
;<3-MONITOR>STG.MAC.533, 24-May-77 15:43:57, EDIT BY MILLER
;<3-MONITOR>STG.MAC.532, 24-May-77 14:02:26, EDIT BY MILLER
;ADD DEFINTIONS FOR DECNET
;<3-MONITOR>STG.MAC.531, 23-May-77 21:43:27, Edit by MCLEAN
;ADD NTTDZ TO NLINES DEFINITION
;<3-MONITOR>STG.MAC.530, 23-May-77 09:55:40, Edit by HESS
;<3-MONITOR>STG.MAC.529, 23-May-77 08:55:37, EDIT BY MILLER
;DEFINE ACTLNS TO BE MAX # OF ACTIVE LINES
;<3-MONITOR>STG.MAC.528, 19-May-77 02:22:14, EDIT BY CROSSLAND
;<3-MONITOR>STG.MAC.527, 14-May-77 11:24:54, EDIT BY MILLER
;ADD SOME WORDS TO SWFREE FOR NETWORK STRINGS
;<3-MONITOR>STG.MAC.526, 12-May-77 16:58:17, EDIT BY BOSACK
;LOAD CORRECT APRSRV FOR SM10
;<3-MONITOR>STG.MAC.525, 12-May-77 15:56:03, EDIT BY CROSSLAND
;<3-MONITOR>STG.MAC.524, 10-May-77 21:37:22, EDIT BY BOSACK
;<3-MONITOR>STG.MAC.523, 10-May-77 20:23:14, EDIT BY BOSACK
;<3-MONITOR>STG.MAC.522, 10-May-77 20:17:32, EDIT BY BOSACK
;MOVE DTESRV STORAGE TO STG
;<3-MONITOR>STG.MAC.521, 10-May-77 20:14:37, EDIT BY BOSACK
;MOVE TTYSRV STORAGE TO STG
;<3-MONITOR>STG.MAC.520, 10-May-77 20:10:00, EDIT BY BOSACK
;MOVE DIAG STORAGE TO STG
;<3-MONITOR>STG.MAC.519, 10-May-77 19:23:41, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.518, 10-May-77 14:06:59, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.517, 10-May-77 13:40:48, EDIT BY HURLEY
;CHANGE .REQUIRES TO "LOADMODULE" 
;<3-MONITOR>STG.MAC.516,  5-May-77 11:39:36, EDIT BY MILLER
;TCO 1794. CHANGE SIZE OF KLINIK DATA BASE
;<3-MONITOR>STG.MAC.515,  5-May-77 11:19:17, EDIT BY MILLER
;TCO 1794. ADD DATA AREA TO HOLD KLINIK DATA BASE
;<3-MONITOR>STG.MAC.514,  4-May-77 14:27:08, EDIT BY MILLER
;TCO 1740. MAKE TTSPWD SWAPPABLE
;<3-MONITOR>STG.MAC.513,  3-May-77 18:24:26, EDIT BY CROSSLAND
;MORE TC0 1742 ARPANET SOURCE MERGING
;<3-MONITOR>STG.MAC.512,  3-May-77 01:53:47, Edit by MCLEAN
;<3-MONITOR>STG.MAC.511,  2-May-77 19:34:39, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.510, 30-Apr-77 23:27:43, Edit by MCLEAN
;ADD UNBCH5 CALL FOR UNIBUS ADAPTER
;<3-MONITOR>STG.MAC.509, 28-Apr-77 12:05:50, Edit by HESS
;ADD RESIDENT LABEL BUFFER PAGE POINTERS AND ASSIGN NRP FOR BUFFER
;<3-MONITOR>STG.MAC.508, 28-Apr-77 10:58:42, EDIT BY MILLER
;INIT LPTS ACCORDING TO WHETHER ON THE FE OR NOT
;<3-MONITOR>STG.MAC.507, 26-Apr-77 19:01:57, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.506, 25-Apr-77 10:28:46, EDIT BY MILLER
;INCREASE RSXMAX
;<3-MONITOR>STG.MAC.505, 19-Apr-77 13:25:47, EDIT BY MILLER
;ALLOW ANY DTE TO RUN RSX20F PROTOCOL
;<3-MONITOR>STG.MAC.504, 13-Apr-77 08:33:07, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.503, 11-Apr-77 22:49:51, Edit by MCLEAN
;CHANGE CTYTYP FROM TT.FE TO TYPCTY AND PUT IT IN PARAMS
;<3-MONITOR>STG.MAC.502, 11-Apr-77 13:40:45, EDIT BY HURLEY
;MOVED DTE DEFINITIONS FOR EPT TO STG
;<3-MONITOR>STG.MAC.501,  6-Apr-77 10:47:09, EDIT BY MILLER
;ADD NEW DEFINITIONS FOR FE
;<3-MONITOR>STG.MAC.500,  6-Apr-77 10:19:24, EDIT BY HURLEY
;CHANGED THE NAME OF DSKAL1 TO DSKALC
;<3-MONITOR>STG.MAC.499,  6-Apr-77 02:36:05, Edit by MCLEAN
;ADD EXADF1 FOR SM10
;<3-MONITOR>STG.MAC.498,  3-Apr-77 19:50:39, EDIT BY BOSACK
;ELIMINATE USE XXPC MACRO CALLS
;<3-MONITOR>STG.MAC.497, 30-Mar-77 17:17:02, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.496, 28-Mar-77 10:30:31, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.495, 28-Mar-77 10:28:53, EDIT BY HURLEY
;MORE ATTRIBUTE STUFF
;<3-MONITOR>STG.MAC.494, 27-Mar-77 15:08:30, Edit by MCLEAN
;REMOVE DUMMY DIAG JSYS FOR NEW DIAG MODULE
;<3-MONITOR>STG.MAC.493, 27-Mar-77 01:11:06, Edit by MCLEAN
;<3-MONITOR>STG.MAC.492, 27-Mar-77 01:02:24, Edit by MCLEAN
;ADD LINPSM FOR SM10 LINEPRINTER SERVICE
;<3-MONITOR>STG.MAC.491, 24-Mar-77 23:11:45, Edit by MCLEAN
;ADD TTYSSM
;<3-MONITOR>STG.MAC.490, 24-Mar-77 03:02:08, Edit by MCLEAN
;<3-MONITOR>STG.MAC.489, 24-Mar-77 01:25:51, Edit by MCLEAN
;REMOVE PHYSSM
;<3-MONITOR>STG.MAC.488, 24-Mar-77 00:43:35, Edit by MCLEAN
;ADD LOADMODULE FOR DIAG
;<3-MONITOR>STG.MAC.487, 20-Mar-77 03:00:28, Edit by MCLEAN
;ALWAYS INIT TTYS (DONE FOR DC10 AND SM10 COMPATABILITY)
;<3-MONITOR>STG.MAC.486, 17-Mar-77 13:46:46, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.485, 17-Mar-77 12:57:19, EDIT BY HURLEY
;ADDED FILATL TO JFNBLK (FILDNM)
;<3-MONITOR>STG.MAC.484, 16-Mar-77 15:53:30, Edit by HESS
;ADD MORE TAPE LABEL STORAGE
;<3-MONITOR>STG.MAC.483, 16-Mar-77 14:23:03, Edit by MCLEAN
;ADD UNBINI AND UNBRST
;<3-MONITOR>STG.MAC.482, 16-Mar-77 14:20:51, Edit by MCLEAN
;ADD FEFLG AND PROFLG FOR SM10
;<3-MONITOR>STG.MAC.481, 13-Mar-77 02:37:02, Edit by MCLEAN
;<3-MONITOR>STG.MAC.480, 13-Mar-77 02:17:07, Edit by MCLEAN
;CHANGE SO LINEP1 ALWAYS REQUIRED
;<3-MONITOR>STG.MAC.479, 11-Mar-77 01:02:09, Edit by MCLEAN
;STORAGE FOR BUGTYO NOW IN APRSRV
;<3-MONITOR>STG.MAC.478,  9-Mar-77 00:57:04, Edit by MCLEAN
;ADD LPTTYP
;<3-MONITOR>STG.MAC.477,  3-Mar-77 10:39:55, Edit by HESS
;<3-MONITOR>STG.MAC.476,  2-Mar-77 10:32:21, Edit by HESS
;CHANGE DEVICE TYPE CODES (SYMBOLIC)
;<3-MONITOR>STG.MAC.475, 28-Feb-77 04:49:52, EDIT BY CROSSLAND
;TCO 1743 ADD STORAGE FOR CRJOB
;TCO 1742 MERGE ARPANET SOURCES
;<3-MONITOR>STG.MAC.474, 26-Feb-77 11:48:32, EDIT BY HALL
;TCO 1740 - ADDED TTCSAD AND TTCSTM
;<3-MONITOR>STG.MAC.473, 24-Feb-77 20:33:19, Edit by HESS
;<3-MONITOR>STG.MAC.472, 24-Feb-77 16:46:05, EDIT BY HALL
;CHANGE DC10SV TO TTYSRV
;<3-MONITOR>STG.MAC.471, 24-Feb-77 16:19:57, EDIT BY MILLER
;INCREASE SKDPDL BY FIVE WORDS
;<3-MONITOR>STG.MAC.470, 24-Feb-77 10:21:42, EDIT BY MILLER
;ADD LOGICAL LINK POOL
;<3-MONITOR>STG.MAC.469, 23-Feb-77 19:40:27, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.468, 23-Feb-77 19:35:23, EDIT BY HALL
;TCO 1740 - REMOVED TTY DEFINITIONS, ADDED SOME NEW ONES
;<3-MONITOR>STG.MAC.467, 23-Feb-77 17:46:54, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.466, 23-Feb-77 15:37:05, EDIT BY MILLER
;ADD MSGQ
;<3-MONITOR>STG.MAC.465, 23-Feb-77 15:34:10, Edit by HESS
;<3-MONITOR>STG.MAC.464, 21-Feb-77 17:48:54, EDIT BY MURPHY
;TCO #1739 - ADD SNRSUM AND RPQSUM TO STATISTICS TABLE
;<3-MONITOR>STG.MAC.463, 17-Feb-77 19:57:57, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.462, 17-Feb-77 19:31:44, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.461, 17-Feb-77 17:02:17, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.460, 15-Feb-77 15:33:23, EDIT BY CROSSLAND
;TCO 1737 CHANGE SWPSEC FROM 96 TO 95
;<3-MONITOR>STG.MAC.459, 15-Feb-77 15:28:39, Edit by HESS
;TCO 1736 - ADD TAPE LABEL/PROCESSING SUPPORT
;<3-MONITOR>STG.MAC.458, 10-Feb-77 10:00:55, EDIT BY HURLEY
;MOVE CALL TO PHYINI AFTER PAGER IS TURNED ON
;<3-MONITOR>STG.MAC.457, 10-Feb-77 09:46:45, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.456, 10-Feb-77 09:33:37, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.455,  9-Feb-77 16:33:00, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.454,  9-Feb-77 16:31:36, EDIT BY HURLEY
;MORE RESIDENT FREE SPACE ADDITIONS
;<3-MONITOR>STG.MAC.453,  9-Feb-77 00:52:42, Edit by MCLEAN
;REMOVE CONDITIONALS THAT ARE NO LONGER USED
;<3-MONITOR>STG.MAC.452,  8-Feb-77 17:30:44, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.451,  7-Feb-77 14:52:51, Edit by MCLEAN
;<3-MONITOR>STG.MAC.450,  7-Feb-77 08:08:17, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.449,  7-Feb-77 08:04:19, EDIT BY HURLEY
;ADD STORAGE FOR THE UTEST JSYS
;<3-MONITOR>STG.MAC.448,  6-Feb-77 22:22:37, Edit by MCLEAN
;<3-MONITOR>STG.MAC.447,  6-Feb-77 22:01:40, Edit by MCLEAN
;<3-MONITOR>STG.MAC.446,  4-Feb-77 13:28:09, Edit by MCLEAN
;<3-MONITOR>STG.MAC.445,  3-Feb-77 15:31:56, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.444,  3-Feb-77 12:31:22, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.443,  3-Feb-77 12:28:24, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.442,  3-Feb-77 11:30:32, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.441,  3-Feb-77 10:51:47, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.440,  2-Feb-77 13:59:07, Edit by MCLEAN
;<3-MONITOR>STG.MAC.439,  1-Feb-77 19:18:27, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.438,  1-Feb-77 18:25:46, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.437,  1-Feb-77 10:26:42, Edit by HESS
;TCO 1726 - FIX SIMULTANEOUS UPDATE EOF PROBLEM
;<3-MONITOR>STG.MAC.436, 30-Jan-77 19:23:24, Edit by MCLEAN
;TCO 1723 SM10 ADDITIONS
;<3-MONITOR>STG.MAC.435, 29-Jan-77 18:08:27, Edit by MCLEAN
;TCO 1720 ADD RESIDENT STORAGE FOR BOOTSTRAP.BIN
;<3-MONITOR>STG.MAC.433, 28-Jan-77 10:07:15, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.432, 27-Jan-77 17:49:58, EDIT BY HURLEY
;<3-MONITOR>STG.MAC.431, 27-Jan-77 17:37:34, EDIT BY HURLEY
;ADD STORAGE SPACE FOR THE RESIDENT FREE SPACE POOL
;<2-MONITOR>STG.MAC.414, 25-Jan-77 17:43:23, EDIT BY MURPHY
;<3-MONITOR>STG.MAC.429, 24-Jan-77 11:20:24, EDIT BY MILLER
;<3-MONITOR>STG.MAC.428, 20-Jan-77 20:16:17, EDIT BY HURLEY
;INCREASE MLJFN TO 23
;<3-MONITOR>STG.MAC.427, 20-Jan-77 15:05:50, EDIT BY HURLEY
;TCO 1718 - ADD MATCHING OF ACCOUNT STRINGS TO GTJFN AND GNJFN
;<3-MONITOR>STG.MAC.426, 17-Jan-77 09:57:17, EDIT BY MILLER
;<3-MONITOR>STG.MAC.425,  4-Jan-77 13:01:00, Edit by MCLEAN
;<3-MONITOR>STG.MAC.424, 28-Dec-76 23:07:40, Edit by MCLEAN
;<3-MONITOR>STG.MAC.423, 28-Dec-76 21:21:09, Edit by MCLEAN
;<3-MONITOR>STG.MAC.422, 27-Dec-76 17:37:06, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.412, 23-Dec-76 12:05:15, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.411, 19-Dec-76 21:35:15, EDIT BY BOSACK
;TCO 1684 - ADD STORAGE FOR HOME BLOCK CHECKING ON OFFLINE/ONLINE TRANSITION
;<2-MONITOR>STG.MAC.410,  7-Dec-76 10:13:02, EDIT BY KIRSCHEN
;ADD STRLOK
;<2-MONITOR>STG.MAC.409,  1-Dec-76 14:57:39, EDIT BY MILLER
;TCO 1675. MAKE NDST ALWAYS BE AN INTGRAL NO OF SWPSEC'S
;<2-MONITOR>STG.MAC.408,  1-Dec-76 11:56:32, EDIT BY HELLIWELL
;FIX DTCHR TO HAVE DV%MDV
;<2-MONITOR>STG.MAC.407, 30-Nov-76 11:25:37, EDIT BY KIRSCHEN
;ADD WORD IN SDB TO HOLD MEDIA IDENTIFICATION (PACK UNIQUE CODE)
;<2-MONITOR>STG.MAC.406, 23-Nov-76 18:05:26, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.405, 23-Nov-76 10:27:08, Edit by MACK
;<2-MONITOR>STG.MAC.404, 16-Nov-76 14:44:44, Edit by MACK
;TCO 1666 - ADDED STORAGE FOR LOCAL TIME ZONE
;<2-MONITOR>STG.MAC.403, 15-Nov-76 00:19:37, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.402, 14-Nov-76 23:51:54, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.401, 14-Nov-76 18:27:37, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.400, 12-Nov-76 16:25:47, EDIT BY BOSACK
;MOVE RPLQ DATABASE, ADD SPMQ
;<2-MONITOR>STG.MAC.399, 10-Nov-76 13:26:20, EDIT BY HALL
;REMOVED JOBDNO
;<2-MONITOR>STG.MAC.398,  6-Nov-76 22:53:17, EDIT BY HELLIWELL
;FIX DRUM PARAMETERS
;<2-MONITOR>STG.MAC.397,  4-Nov-76 15:00:53, EDIT BY HURLEY
;TCO 1605- ADD "CDP" AS A SPOOLED DEVICE.
;<2-MONITOR>STG.MAC.396,  4-Nov-76 08:26:53, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.395,  1-Nov-76 08:35:45, EDIT BY HURLEY
;ADD STORAGE FOR LONG TERM ENQ/DEQ LOCKS
;<2-MONITOR>STG.MAC.394, 31-Oct-76 17:59:28, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.393, 31-Oct-76 17:12:15, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.392, 31-Oct-76 17:07:03, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.391, 31-Oct-76 16:18:43, EDIT BY HELLIWELL
;MORE PHYS4 STUFF
;<2-MONITOR>STG.MAC.390, 31-Oct-76 16:11:41, EDIT BY HELLIWELL
;ALWAYS INITIALIZE LPT (FE OR NO FE)
;<2-MONITOR>STG.MAC.389, 29-Oct-76 16:26:40, EDIT BY HELLIWELL
;ADD PARAMETERS FOR RS04/RH20 (PHYS4)
;<2-MONITOR>STG.MAC.388, 29-Oct-76 15:43:04, EDIT BY HELLIWELL
;MOVE "PICALL DLS" TO DTE CHANNEL
;<2-MONITOR>STG.MAC.387, 29-Oct-76 11:30:09, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.386, 26-Oct-76 17:48:14, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.385, 26-Oct-76 12:09:16, EDIT BY HURLEY
;INCREASE NLFKS TO 16
;<2-MONITOR>STG.MAC.384, 25-Oct-76 13:35:28, EDIT BY HURLEY
;TURN ON SWRSAF
;<2-MONITOR>STG.MAC.383, 23-Oct-76 12:27:19, EDIT BY HALL
;CHANGED NFEPGS TO NPGSFE
;<2-MONITOR>STG.MAC.382, 23-Oct-76 11:17:17, EDIT BY HALL
;ADDED DEFINITION OF NFEPGS
;<2-MONITOR>STG.MAC.381, 23-Oct-76 11:12:34, EDIT BY HALL
;DELETED PUBNAM, PG4SWP; ADDED FEFSIZ
;<2-MONITOR>STG.MAC.380, 16-Oct-76 11:23:54, EDIT BY HALL
;CHANGED SYSLOD AND SYSGO1 TO INITIALIZE STARTF INSTEAD OF DIDSCA
;<3-MONITOR>STG.MAC.420, 19-Dec-76 01:26:08, Edit by MCLEAN
;<3-MONITOR>STG.MAC.419, 19-Dec-76 01:24:46, Edit by MCLEAN
;<3-MONITOR>STG.MAC.418, 19-Dec-76 00:28:07, Edit by MCLEAN
;<3-MONITOR>STG.MAC.417, 19-Dec-76 00:17:39, Edit by MCLEAN
;<3-MONITOR>STG.MAC.416, 18-Dec-76 04:09:59, Edit by MCLEAN
;<MCLEAN>STG.MAC.415, 14-Dec-76 16:43:28, Edit by MCLEAN
;<2-MONITOR>STG.MAC.410,  7-Dec-76 10:13:02, EDIT BY KIRSCHEN
;ADD STRLOK
;<3-MONITOR>STG.MAC.413,  1-Dec-76 15:01:33, EDIT BY MILLER
;TCO 1675. MAKE NDST ALWAYS BE AN INTEGRAL NO OF SWPSEC'S.
;<3-MONITOR>STG.MAC.412,  1-Dec-76 11:57:53, EDIT BY HELLIWELL
;FIX DTCHR TO HAVE DV%MDV
;<2-MONITOR>STG.MAC.407, 30-Nov-76 11:25:37, EDIT BY KIRSCHEN
;ADD WORD IN SDB TO HOLD MEDIA IDENTIFICATION (PACK UNIQUE CODE)
;<3-MONITOR>STG.MAC.410, 24-Nov-76 23:44:44, Edit by MCLEAN
;<3-MONITOR>STG.MAC.409, 24-Nov-76 23:40:33, Edit by MCLEAN
;<3-MONITOR>STG.MAC.408, 24-Nov-76 23:40:01, Edit by MCLEAN
;<3-MONITOR>STG.MAC.407, 24-Nov-76 22:17:26, Edit by MCLEAN
;TCO 1669 EXTENDED ADDRESSING
;<2-MONITOR>STG.MAC.406, 23-Nov-76 18:05:26, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.405, 23-Nov-76 10:27:08, Edit by MACK
;<2-MONITOR>STG.MAC.404, 16-Nov-76 14:44:44, Edit by MACK
;TCO 1666 - ADDED STORAGE FOR LOCAL TIME ZONE
;<2-MONITOR>STG.MAC.403, 15-Nov-76 00:19:37, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.402, 14-Nov-76 23:51:54, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.401, 14-Nov-76 18:27:37, EDIT BY BOSACK
;<2-MONITOR>STG.MAC.400, 12-Nov-76 16:25:47, EDIT BY BOSACK
;MOVE RPLQ DATABASE, ADD SPMQ
;<2-MONITOR>STG.MAC.399, 10-Nov-76 13:26:20, EDIT BY HALL
;REMOVED JOBDNO
;<2-MONITOR>STG.MAC.398,  6-Nov-76 22:53:17, EDIT BY HELLIWELL
;FIX DRUM PARAMETERS
;<2-MONITOR>STG.MAC.397,  4-Nov-76 15:00:53, EDIT BY HURLEY
;TCO 1605- ADD "CDP" AS A SPOOLED DEVICE.
;<2-MONITOR>STG.MAC.396,  4-Nov-76 08:26:53, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.395,  1-Nov-76 08:35:45, EDIT BY HURLEY
;ADD STORAGE FOR LONG TERM ENQ/DEQ LOCKS
;<2-MONITOR>STG.MAC.394, 31-Oct-76 17:59:28, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.393, 31-Oct-76 17:12:15, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.392, 31-Oct-76 17:07:03, EDIT BY HELLIWELL
;<2-MONITOR>STG.MAC.391, 31-Oct-76 16:18:43, EDIT BY HELLIWELL
;MORE PHYS4 STUFF
;<2-MONITOR>STG.MAC.390, 31-Oct-76 16:11:41, EDIT BY HELLIWELL
;ALWAYS INITIALIZE LPT (FE OR NO FE)
;<2-MONITOR>STG.MAC.389, 29-Oct-76 16:26:40, EDIT BY HELLIWELL
;ADD PARAMETERS FOR RS04/RH20 (PHYS4)
;<2-MONITOR>STG.MAC.388, 29-Oct-76 15:43:04, EDIT BY HELLIWELL
;MOVE "PICALL DLS" TO DTE CHANNEL
;<2-MONITOR>STG.MAC.387, 29-Oct-76 11:30:09, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.386, 26-Oct-76 17:48:14, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.385, 26-Oct-76 12:09:16, EDIT BY HURLEY
;INCREASE NLFKS TO 16
;<2-MONITOR>STG.MAC.384, 25-Oct-76 13:35:28, EDIT BY HURLEY
;TURN ON SWRSAF
;<2-MONITOR>STG.MAC.383, 23-Oct-76 12:27:19, EDIT BY HALL
;CHANGED NFEPGS TO NPGSFE
;<2-MONITOR>STG.MAC.382, 23-Oct-76 11:17:17, EDIT BY HALL
;ADDED DEFINITION OF NFEPGS
;<2-MONITOR>STG.MAC.381, 23-Oct-76 11:12:34, EDIT BY HALL
;DELETED PUBNAM, PG4SWP; ADDED FEFSIZ
;<2-MONITOR>STG.MAC.380, 16-Oct-76 11:23:54, EDIT BY HALL
;CHANGED SYSLOD AND SYSGO1 TO INITIALIZE STARTF INSTEAD OF DIDSCA
;<2-MONITOR>STG.MAC.379, 14-Oct-76 19:17:30, EDIT BY HURLEY
;TCO 1597 - FIX ENQ QUOTA PROBLEMS
;<2-MONITOR>STG.MAC.378, 13-Oct-76 12:20:00, EDIT BY HALL
;MOVED BITS FOR STARTF TO PROLOG
;<2-MONITOR>STG.MAC.377, 12-Oct-76 15:48:35, EDIT BY HURLEY
;INCREASE THE SIZE OF THE RELOAD BUFFER TO HOLD THE MAX STRING
;<2-MONITOR>STG.MAC.376, 12-Oct-76 14:24:27, EDIT BY HALL
;ADDED STARTF AND ASSOCIATED BITS
;<2-MONITOR>STG.MAC.375,  6-Oct-76 16:13:24, EDIT BY HURLEY
;TCO 1571 - MAKE RSCAN BUFFER BE DYNAMIC
;<2-MONITOR>STG.MAC.374,  5-Oct-76 11:54:28, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.373,  1-Oct-76 10:37:33, EDIT BY HALL
;MADE FCTFIL POINT TO PS
;<2-MONITOR>STG.MAC.372, 30-Sep-76 14:48:25, Edit by HESS
;<2-MONITOR>STG.MAC.371, 29-Sep-76 13:18:48, EDIT BY HALL
;DELETED JSBUC. MADE JSBSDN COMMENT REFLECT UNIQUE CODE
;<2-MONITOR>STG.MAC.370, 28-Sep-76 14:17:05, EDIT BY HALL
;CHANGED COMMENT ON JSSTRT TO REFLECT CHANGE TO UNIQUE CODE
;<2-MONITOR>STG.MAC.369, 23-Sep-76 14:44:15, EDIT BY HALL
;ADDED JSSTLK - LOCK ON JSTRT
;<2-MONITOR>STG.MAC.368, 20-Sep-76 12:25:50, EDIT BY HURLEY
;ADDED FILDIR TO JFN BLOCK
;<2-MONITOR>STG.MAC.367, 15-Sep-76 14:28:53, EDIT BY KIRSCHEN
;ADD SDBLN
;<2-MONITOR>STG.MAC.366,  7-Sep-76 16:18:26, EDIT BY MILLER
;make psnam a core location so macro doesn't get upset
;<2-MONITOR>STG.MAC.365,  2-Sep-76 16:15:09, EDIT BY HALL
;FIXED PSNAM DEFINITION TO MAKE IT LEFT-JUSTIFIED
;<2-MONITOR>STG.MAC.364, 31-Aug-76 16:38:19, EDIT BY HALL
;ADDED PSNAM DEFINITION
;<2-MONITOR>STG.MAC.363, 20-Aug-76 17:15:35, Edit by HESS
;<2-MONITOR>STG.MAC.362, 17-Aug-76 11:40:18, Edit by HESS
;TCO 1496 - AUTHOR/LAST-WRITER STRINGS (ADD USRNAM TO JSB)
;<2-MONITOR>STG.MAC.361, 11-Aug-76 12:14:39, EDIT BY HURLEY
;ADD DEVCH2 TABLE FOR SPOOL DIRECTORY NUMBER
;<2-MONITOR>STG.MAC.360,  6-Aug-76 08:58:50, EDIT BY HURLEY
;CHANGED SYS FROM DSK:<SUBSYS> TO PS:<SUBSYS>
;<2-MONITOR>STG.MAC.359,  5-Aug-76 12:21:32, EDIT BY MURPHY
;TCO #1479
;<2-MONITOR>STG.MAC.358,  4-Aug-76 13:53:31, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.357,  2-Aug-76 12:55:04, EDIT BY HALL
;MOVED JSFRST DEFINITION TO PROLOG
;<2-MONITOR>STG.MAC.356,  2-Aug-76 12:26:00, EDIT BY HALL
;CHANGED JSFRST DEFINITION
;<2-MONITOR>STG.MAC.355,  2-Aug-76 11:48:14, EDIT BY HALL
;ADDED JSFRST DEFINITION
;<2-MONITOR>STG.MAC.354,  1-Aug-76 16:02:06, EDIT BY MILLER
;CHANGE JSSTR TABLE TO JSSTRT
;<HESS>STG.MAC.2, 28-Jul-76 14:21:12, Edit by HESS
;TCO 1478 - QUOTA CHECKING
;<2-MONITOR>STG.MAC.352, 29-Jul-76 15:49:44, EDIT BY HALL
;ADDED DEFINITION OF JSSTR - 3 WORD GROUPS FOR STRUCTURES IN JSB
;<2-MONITOR>STG.MAC.351, 28-Jul-76 16:42:47, EDIT BY MURPHY
;TCO # 1479 - MOVED SOME SCHED STORAGE TO STG
;<2-MONITOR>STG.MAC.350, 23-Jul-76 12:38:57, EDIT BY KIRSCHEN
;ADD UCSEED
;<2-MONITOR>STG.MAC.349, 23-Jul-76 10:54:04, EDIT BY KIRSCHEN
;ADD JSBSDN,JSBUC
;<2-MONITOR>STG.MAC.348, 23-Jul-76 10:30:08, EDIT BY KIRSCHEN
;ADD STRUCTURE TABLES IN JSB
;<2-MONITOR>STG.MAC.347, 16-Jul-76 15:28:26, EDIT BY MILLER
;ADD SDBCNT
;<1MILLER>STG.MAC.1,  6-Jul-76 11:41:00, EDIT BY MILLER
;ADD SDBFLK AND FILCOD
;<2-MONITOR>STG.MAC.39, 23-Jun-76 11:50:59, EDIT BY MILLER
;ADD CDRCT1
;<2-MONITOR>STG.MAC.38, 22-Jun-76 15:01:03, EDIT BY HALL
;REARRANGED BIT TABLE STUFF TO PUT UNDER CONDITIONALS
;<2-MONITOR>STG.MAC.37, 21-Jun-76 16:07:48, EDIT BY MILLER
;MAKE BTBFLG DEFINITION UPPER CASE
;<2-MONITOR>STG.NEW.3, 21-Jun-76 13:39:45, EDIT BY MILLER
;MANUAL MERGE OF 1B CHANGES
;<1B-MONITOR>STG.MAC.342, 18-Jun-76 09:33:33, EDIT BY HURLEY
;TCO # 1444 - ADD HLP: = SYS: TO SYSTEM LOGICAL NAME TABLE
;<1B-MONITOR>STG.MAC.341, 17-Jun-76 14:50:03, EDIT BY HURLEY
;<1B-MONITOR>STG.MAC.340, 17-Jun-76 14:33:37, EDIT BY HURLEY
;More TCO 1430
;<1B-MONITOR>STG.MAC.339, 16-Jun-76 15:21:10, EDIT BY OSMAN
;TCO 1430 - IMPLEMENT STANDARD VERSION STORAGE
;<1B-MONITOR>STG.MAC.338, 11-JUN-76 17:15:17, EDIT BY MILLER
;TCO 1403. FIX POWER FAIL RECOVERY AGAIN
;<1B-MONITOR>STG.MAC.337, 11-JUN-76 11:02:43, EDIT BY OSMAN
;CHANGE COMMENT ON MTINDX TO REFLECT PHYM2 CHANGE
;<1B-MONITOR>STG.MAC.336, 27-MAY-76 17:38:41, EDIT BY BOSACK
;TCO 1322 - FIX HOME BLOCK ASSIGNMENTS ON RP06
;<1B-MONITOR>STG.MAC.335, 26-MAY-76 14:22:07, EDIT BY MILLER
;TCO 1321. DEFINE NSWPGS
;<2-MONITOR>STG.MAC.35, 21-Jun-76 12:41:48, EDIT BY HALL
;added btbflg to indicate bit table being rebuilt
;<2-MONITOR>STG.MAC.34, 17-Jun-76 15:01:52, EDIT BY MILLER
;DEFINE MJFN AS INTERNAL
;<2-MONITOR>STG.MAC.33, 17-Jun-76 12:52:39, EDIT BY MILLER
;<2-MONITOR>STG.MAC.32, 17-Jun-76 11:28:24, EDIT BY MILLER
;ADD MLJFN
;<2-MONITOR>STG.MAC.31, 11-JUN-76 17:16:27, EDIT BY MILLER
;TCO 1403. FIX POWER FAIL RECOVERY AGAIN
;<2-MONITOR>STG.MAC.30,  9-JUN-76 09:28:36, EDIT BY MILLER
;<1MILLER>STG.MAC.1,  8-JUN-76 12:19:49, EDIT BY MILLER
;REMOVE CST4
;<2-MONITOR>STG.MAC.29,  7-JUN-76 17:25:13, EDIT BY MILLER
;<2-MONITOR>STG.MAC.28,  7-JUN-76 16:57:19, EDIT BY HALL
;NOTED USE OF RH OF SDBSTS FOR FORK NUMBER
;<2-MONITOR>STG.MAC.27, 26-MAY-76 15:32:40, EDIT BY HALL
;ADDED BTBMAX,BTBTOP,BTBBOT
;<2-MONITOR>STG.MAC.26, 26-MAY-76 14:26:07, EDIT BY MILLER
;TCO 1321. ADD NSWPGS
;<2-MONITOR>STG.MAC.25, 26-MAY-76 12:56:43, EDIT BY HALL
;ADDED COMMENT TO DSKSIZ
;<2-MONITOR>STG.MAC.24, 26-MAY-76 12:41:48, EDIT BY HALL
;REMOVED NSECTK DEFINITION UNDER RP04 CONDITIONAL, ADDED COMMENTS
;<2-MONITOR>STG.MAC.23, 26-MAY-76 09:54:25, EDIT BY HALL
;ADDED OLDBTB
;<2-MONITOR>STG.MAC.22, 24-MAY-76 12:32:41, EDIT BY HALL
;MADE OLD DEFINITIONS OF DISK SIZES ASSEMBLE UNDER RP10F ONLY
;MADE NEW TABLES OF DISK SIZES, NEW HOME BLOCK DEFINITIONS
;<1B-MONITOR>STG.MAC.335, 19-MAY-76 21:50:27, EDIT BY MILLER
;TCO 1305. FIX POWER FAIL RESTART
;<1B-MONITOR>STG.MAC.340, 11-MAY-76 15:10:52, EDIT BY MILLER
;<1B-MONITOR>STG.MAC.339,  7-MAY-76 08:59:22, EDIT BY MILLER
;TCO 1282. FIX DTE POLLING
;<2-MONITOR>STG.MAC.19, 14-MAY-76 09:27:58, EDIT BY KIRSCHEN
;REMOVE LSTDRN; NOW KEPT PER STRUCTURE IN SDB
;<2-MONITOR>STG.MAC.18, 12-MAY-76 18:26:04, EDIT BY HURLEY
;<2-MONITOR>STG.MAC.17, 11-MAY-76 15:11:21, EDIT BY MILLER
;<2-MONITOR>STG.MAC.16, 10-MAY-76 10:20:55, EDIT BY KIRSCHEN
;REMOVE RDOFN
;<2-MONITOR>STG.MAC.15,  7-MAY-76 10:34:30, EDIT BY KIRSCHEN
;<2-MONITOR>STG.MAC.14,  7-MAY-76 10:31:13, EDIT BY KIRSCHEN
;ADD SDBLDN TO SDB
;<2-MONITOR>STG.MAC.13,  7-MAY-76 09:00:20, EDIT BY MILLER
;TCO 1282. FIX DTE POLLING
;<2-MONITOR>STG.MAC.12,  6-MAY-76 11:26:50, EDIT BY HALL
;ADD DEFINITIONS FOR STRUCTURES IN INIDVT
;<2-MONITOR>STG.MAC.11,  4-MAY-76 09:57:41, EDIT BY KIRSCHEN
;<2-MONITOR>STG.MAC.10, 26-APR-76 09:27:36, EDIT BY KIRSCHEN
;PUT BACK STRINF
;<2-MONITOR>STG.MAC.9, 23-APR-76 20:24:23, EDIT BY MILLER
;COMMENT OUT STRINF DEFINITION
;<2-MONITOR>STG.MAC.8, 22-APR-76 14:05:33, EDIT BY KIRSCHEN
;<2-MONITOR>STG.MAC.7, 22-APR-76 13:12:51, EDIT BY HALL
;<2-MONITOR>STG.MAC.7, 22-APR-76 13:08:16, EDIT BY HALL
;ADDED INITIALIZATION OF BTBORA AND BTBLCK AT SYSGO1
;<2-MONITOR>STG.MAC.6, 22-APR-76 10:57:41, EDIT BY KIRSCHEN
;<2-MONITOR>STG.MAC.5, 21-APR-76 16:21:44, EDIT BY KIRSCHEN
;ADD STRINF WORD TO PSB, AND FIELDS IDXFLG AND CURSTR
;<2-MONITOR>STG.MAC.4, 21-APR-76 15:58:25, EDIT BY KIRSCHEN
;ADD SDBIDX FIELD TO STRUCTURE DATA BLOCK
;<2-MONITOR>STG.MAC.3, 21-APR-76 13:46:36, EDIT BY KIRSCHEN
;MOVE NIDXPG TO PROLOG
;<2-MONITOR>STG.MAC.2, 19-APR-76 15:14:03, EDIT BY HALL
;CHANGE BIT TABLE DEFINITIONS
;<1B-MONITOR>STG.MAC.338, 13-APR-76 20:25:31, EDIT BY BOSACK
;<1B-MONITOR>STG.MAC.337, 13-APR-76 20:14:51, EDIT BY BOSACK
;<1B-MONITOR>STG.MAC.336, 13-APR-76 19:42:01, EDIT BY BOSACK
;<1B-MONITOR>STG.MAC.335,  4-APR-76 23:25:44, EDIT BY BOSACK
;<1B-MONITOR>STG.MAC.334,  4-APR-76 23:12:44, EDIT BY BOSACK
;<1B-MONITOR>STG.MAC.333,  4-APR-76 23:01:07, EDIT BY BOSACK
;<1MONITOR>STG.MAC.332, 23-MAR-76 15:57:13, EDIT BY HURLEY
;TCO 1213 - REMOVE ALL ##'S FROM STG.  (CODE CLEAN UP)
;<1MONITOR>STG.MAC.331, 10-MAR-76 11:09:56, EDIT BY KIRSCHEN
;TCO 1171 - ADD FACILITY TO INTERRUPT ON ON-LINE/OFF-LINE TRANSITIONS
;<1MONITOR>STG.MAC.330,  5-MAR-76 18:36:17, EDIT BY MURPHY
;MORE 1097
;<1MONITOR>STG.MAC.329,  1-MAR-76 14:08:53, EDIT BY MURPHY
;TCO #1134 - PREVENT REENTRY OF BUGCHK/HLT/INF
;<1MONITOR>STG.MAC.328, 26-FEB-76 17:23:06, EDIT BY MURPHY
;MORE #1097
;<2MONITOR>STG.MAC.326, 19-FEB-76 22:01:03, EDIT BY KIRSCHEN
;TCO 1067 - ADD PGDATA WORD FOR LPT
;<2MONITOR>STG.MAC.325, 17-FEB-76 09:32:31, EDIT BY MILLER
;TCO 1098. DEATCH ALL JOBS ON POWER RESTART
;<2MONITOR>STG.MAC.324, 16-FEB-76 15:41:55, EDIT BY MURPHY
;TCO #1097 - INCREASE FREE MONITOR VAS
;<2MONITOR>STG.MAC.322, 10-FEB-76 13:18:55, EDIT BY KIRSCHEN
;<2MONITOR>STG.MAC.321,  9-FEB-76 15:27:26, EDIT BY KIRSCHEN
;TCO 1067 - ADD STORAGE DEFINITIONS FOR RAMFIL, VFUFIL, LPTST1
;<2MONITOR>STG.MAC.320,  6-FEB-76 11:28:27, EDIT BY HURLEY
;TCO 1062 - CHANGE DIR PROT OF SYSTEM AND SUBSYS TO 777740
;<2MONITOR>STG.MAC.319,  3-FEB-76 13:31:13, EDIT BY MILLER
;MCO 21. CHECK FOR NON-EX DTE
;<2MONITOR>STG.MAC.318, 29-JAN-76 20:52:11, EDIT BY MILLER
;MCO 21 AGAIN
;<2MONITOR>STG.MAC.317, 29-JAN-76 16:29:20, EDIT BY BOSACK
;MCO 40
;<2MONITOR>STG.MAC.316, 28-JAN-76 19:23:44, EDIT BY MILLER
;MCO #21 EDITS
;<2MONITOR>STG.MAC.315, 25-JAN-76 11:35:28, EDIT BY MILLER
;MCO #21. POLL FOR MASTER -11 AT STARTUP
;<2MONITOR>STG.MAC.314, 19-JAN-76 17:24:35, EDIT BY MURPHY
;<2MONITOR>STG.MAC.313, 16-JAN-76 12:39:37, EDIT BY MURPHY
;MCO#7 - ADD FKCSIZ DEFINITION COMMENT
;<2MONITOR>STG.MAC.312, 14-JAN-76 15:25:28, EDIT BY MURPHY

;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION

	SEARCH PROLOG,PHYPAR,SERCOD
	TTITLE STG

   IFN KLFLG,<
	SEARCH PROKL>
   IFN SMFLG,<
	SEARCH PROKS>


;PARAMETER-DEPENDENT STORAGE FOR ALL MODULES

EXT <PAGRST,PGRINI,TTINIT,SCDIN>
EXT <PI7P,PIAPR,PIINIT,PGRRST,SWPRST,PISC7,SCKATM>

	SWAPCD			;SOME SWAP CODE HERE BEFORE FIRST RESCD


;MISCELANEOUS DEFINITIONS

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

NDG	EXADF,0			;EXTENDED DIRECTORY FLAG
NDG	NTTD10,0		;NUMBER OF DC10 LINES
NDG	NTTFE,NDHL+NDLL		;NUMBER OF FRONT END LINES
;NUMBER OF LINES, INCLUDING LINE 0 FOR THE CTY
NDG	NLINES,NTTFE+NTTMCB+NTTPTY+NTTD10+NTTNVT+NTTDZ+1
   IFG ACTLNS-NLINES,<ACTLNS==:NLINES> ;ADJUST VALUE AS APPROPRIATE
NDG	DLSN,NTTD10		;NUMBER OF DC LINES
NDG	NTTBL,2			;DEFAULT NUMBER BUFFERS PER LINE
NDG	NTTBF,ACTLNS*NTTBL	;NUMBER OF TTY BUFFERS
NDG	TTSIZ,20		;SIZE OF INDIVIDUAL TTY BUFFER (POWER OF 2)
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
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
   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,<	EXTERNAL $'A>>
;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 ANBSEC,5			;section 5- arpanet buffers
NDG MAXSEC,5			;max section number
	MSEC1B==:<MSEC1>B17	;DEFINE SECTION 1 PC FORMAT
;FORCE THE LOADING OF THE CORRECT MODULES

LOADMODULE <LDINIT,SCHED,PAGEM,FORK,MEXEC,SYSERR,COMND>
LOADMODULE <DEVICE,DIRECT,ENQ,FREE,FUTILI,GTJFN,IO,IPCF,JSYSA,JSYSF>
LOADMODULE <LOGNAM,LOOKUP,MSTR,SWPALC,DISC,FILMSC,FLIN,RITH>
LOADMODULE <FLOUT,DATIME,TIMER,EDDT,MDDT>

;CONDITIONALS TO LOAD PROPER REL FILE

IFNDEF PHYIOF,<	PHYIOF==:0>
   IFN RP04F!TM02F,<	PHYIOF==:1>
IFG PHYIOF,<	
		LOADMODULE PHYSIO
		LOADMODULE DIAG
		LOADMODULE POSTLD
		LOADMODULE DSKALC
>
IFE EXADF,<	LOADMODULE FILINI>
IFN EXADF,<	LOADMODULE FILINE>
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 DLSN+DTEN,<
	IFE NETN,<	LOADMODULE TTYSRV>
	IFG NETN,<	LOADMODULE TTYSNV>
>
IFN SMFLG,<	LOADMODULE TTYSSM>
IFG DTAN,<	LOADMODULE DECTAP>
IFG FEN,<	LOADMODULE FESRV>
IFG MTAN,<
	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==:4		;MAXIMUM DENSITY IS 1600 BPI
	MTMXDM==:4		;MAXIMUM DATA MODE ALLOWED
	LOADMODULE MAGTAP
	LOADMODULE TAPE
	LOADMODULE PHYM2>
IFN SMFLG,<	LOADMODULE APRSSM>
IFE SMFLG,<	LOADMODULE APRSRV>
IFG DTEN,<	LOADMODULE DTESRV>
IFG DCN,<	LOADMODULE NSPSRV>
IFG DUPN,<	LOADMODULE DUPSRV>
IFN SMFLG,<	LOADMODULE DTESM>
IFE SMFLG,	<LOADMODULE LINEPR>
IFN SMFLG,	<LOADMODULE LINPSM>
IFG CDRN,<	LOADMODULE CDRSRV>
IFG PLTN,<	LOADMODULE PLT>
IFG PTPN,<	LOADMODULE PTP>
IFG PTRN,<	LOADMODULE PTR>
IFG VBCN,<	LOADMODULE VBC>
IFG DLXN,<	LOADMODULE DLX>
IFG NETN,<	LOADMODULE IMPDV
		LOADMODULE NETWRK
		LOADMODULE IMPANX
>
;MACROS FOR DECLARATION OF STORAGE (OTHERS DEFINED IN PROLOG)

;PSB STORAGE

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

;JSB STORAGE

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

TSBLOC==:PSB			;INITIAL VALUES
JSBLOC==:JSB
;RESIDENT STORAGE WHICH MUST BE DEFINED ON A PAGE BOUNDARY.
;THESE ARE ALL DEFINED FIRST AND MUST BE A MULTIPLE OF 512 WORDS
;EACH.

RS(ZROCOR,0)			;START OF STORAGE AREA TO CLEAR
RS(KIEPT,PGSIZ)			;EXECUTIVE PAGE TABLE
RS(SKHWPT,PGSIZ)			;HW PAGE TABLE WHEN SCHED RUNNING
RS(MMAP,PGSIZ)			;MONITOR MAP
   IFG DLXN,<
RS(DLBASE,PGSIZ*DLIBFP)	 ;RESIDENT PAGES FOR DL10
RS(DLOBUF,PGSIZ*DLOBFP)
   >;IFG DLXN
IFN SMFLG,<RS(LPBUF,LPTN*PGSIZ)>	;LINEPRINTER BUFFER SPACE
IFN NETN,<RS(NTBFIX,PGSIZ)>	;INDEX PAGE FOR  NET BUFFER SECTION
IFN DUPN,<RS(KMCPAG,DUPN*PGSIZ)>	;A PAGE FOR EACH DUP11

;MEMORY MANAGEMENT DATA BASE

RS CST0,MAXCOR			;CORE STATUS TABLES
RS SPT,SSPT			;SPECIAL/SHARED PAGES TABLE
	RS SPCRES,0		;END OF SPECIAL RESIDENT PAGES.
				;USED BY PAGEM CODE THAT
				;UNLOCKS PAGES. PUT ALL
				;SPECAIL PAGES (I.E. PAGE TABLES,
				;UPT'S) BEFORE THIS DEFINITION
RS CST1,MAXCOR
RS CST2,MAXCOR
RS CST3,MAXCOR
   IFN PHYIOF,<
RS CST5,MAXCOR		;**TEMP** UNTIL CSTONR MOVED
   >				;END IFN PHYIOF
RS SPTO,NOFN			;OFN TBALE ONLY
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 NRPLQ,1			;NUMBER OF PAGES ON REPLACABLE QUEUE
RS RPLQ,1			;REPLACABLE QUEUE    END,,BGN

RS NSPMQ,1			;NUMBER OF PAGES ON SPECIAL MEM QUEUE
RS SPMQ,1			;"SPECIAL" MEMORY QUEUE TAIL,,HEAD
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

;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

NR OFNLEN,NOFN			;ACTUAL END OF FILE

;TIME ZONE STORAGE

NR TIMZON,1			;NUMBER OF HOURS LOCAL TIME LAGS GREENWICH
;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 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
	;DEFSTR FKQN,FKQ2(FX),17,18 ;QUEUE LEVEL NUMBER
	;DEFSTR FKLOC,FKQ2(FX),35,18 ;LOCATION OF GOLST FORK
RS FKJTQ,NFKS			; Jsys Traps queue of forks
				;  waiting to PSI their monitor
RS FKPT,NFKS			;LOCATION OF FORK,,FORK QUEUE POINTERS
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 FKJOBN,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 - TAV,,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			; SPTN OF HWPT ,, CORE NUMBER
	;DEFSTR HWPTN,FKCNO(FX),17,18

;TABLES FOR SETNM

NNAMES==:^D40			;NUMBER OF NAMES ALLOWED

RS SNAMES,NNAMES		;SIXBIT NAME OF SUBSYSTEM
RS STIMES,NNAMES		;ACCUMULATED RUNTIME OF SUBSYSTEM
RS SPFLTS,NNAMES		;ACCUMULATED PAGE FAULTS OF SUBSYSTEM
RS SSIZE,NNAMES			;WORKING SET SIZE INTEGRAL
RS SNBLKS,NNAMES		;NUMBER OF BLOCKS
;MONITOR STATISTICS

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

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

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

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

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

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

RS NGCCOR,1			;COUNT OF GCCOR'S
RS PPGTIM,1			;INTEGRAL OF POSTPURGE TIME
RS NREMJ,1			;COUNT OF FORCED BALSET REMOVALS
RS BSWT,1			;SUM OF PROCESS WAIT TIMES

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

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

RS DWRWT,1			;SUM OF PROCESS DISK WRITE WAIT
RS NAJBAL,1			;NUMBER OF FORCED AJBALS CALLS
RS SNRSUM,1			;INTEGRAL OF SUMNR
RS RPQSUM,1			;INTEGRAL OF NRPLQ
RS HSPTTM,1			;HP PAGER TRAP TIME

NSTAT==:^D31+NRJAVS		;NUMBER OF STATISTICS WORDS

;LOAD AVERAGE COMPONENTS (GETAB TABLES)

RS HQLAV,NRJAVS			;HIGH-QUEUE AVERAGES
RS LQLAV,NRJAVS			;LOW-QUEUE AVERAGES
;STORAGE

NSKDP==:67			;SIZE OF SCHED PDL
RS SKDPDL,NSKDP			;SCHEDULER LOCAL PDL

RS SCKATM,1			;ALARM TIME - MIN OF ALL SCHED CLOCKS
RS OLDTCK,1			;  "
RS PISC7R,4
RS PI7AC1,2			;TEMPS AT PISC7
RS ALARMT,1			;MIN TIME OF FORKS ON CLKLST
RS SKDLST,1			;LAST READING OF HP CLOCK
RS SKDLRT,1			;RUNTIME OF LAST TRIP THRU SCHEDULER
RS SNPSV1,1			;PLACE TO SAVE AN AC WHILE CHECKING PC
				; TO SEE IF IT IS IN A SNOOP BREAK POINT

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 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 RLODPC,4			;PC'S FOR KEEP ALIVE RELOAD
RS FPTABL,MAXSEC+1		;PAGEM DISPATCH FOR SECTION NUMBERS
;BALANCE SET VARIABLES

NBP==:^D50			;MAX NUMBER FORKS IN BALSET
RS BALSET,NBP			;BALANCE SET LIST
RS NBW,NBP			;TOD OF START OF LAST WAIT
RS NBQ,NBP			;MINIMUM QUANTUM TO BE USED WHILE IN BALSET
RS BSQ,NBP			;BALSET LOCAL RUN QUANTUM
RS BSPT,NBP			;BALSET FORK QUEUE (DOUBLE CHAIN)

RS FBALS,1			;1 + HIGHEST BALSET SLOT IN USE
RS NBPROC,1			;NUMBER OF PROCESSES IN BAL SET
RS NBWT,1			;NUMBER WAITING PROCESSES IN BALSET
RS MAXBP,1			;MAX NUMBER OF JOBS IN BAL SET
RS BALLST,1			; TAIL,,HEAD OF BALSET FORK QUEUE
RS BALLS0,1			;TAIL OF BALSET HIGH QUEUE

RS SUMNR,1			;SUM OF RESERVE PAGES, ALL PROCESSES
RS BALSHC,1			;COUNT OF PAGES IN BALSET BECAUSE OF SHARING
RS PUBCL,1			;PROCESS USE BITS TO BE CLEARED AT GCCOR
RS MAXNR,1			;MAX VALUE OF SUMNR
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 BSHQN,1			;NUMBER BALSET FORKS ON .L. MAXQ
RS BSLQN,1			;NUMBER BALSET FORKS ON MAXQ

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

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 RTSKED,1			;REAL-TIME SERVICE REQUIRED IF NON-0
RS PSKED,1			;PAGE TRANSFER COMPLETED
RS QSKED,1			;BLOCKED FORK NOW UNBLOCKED IF .G. 0
RS BSKED,1			;FORK VOLUNTARILY LEFT BALSET IF .G. 0

RS NGOJOB,1			;NUMBER OF RUNNABLE JOBS

RS BSCTIM,1			;TIME AT LAST CHANGE TO NBPROC
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 SCDRQI,1			;SCHEDULER REQUEST QUEUE
RS SCDRQO,1
NSCDRQ==:^D33			;SIZE OF SCHED REQUEST QUEUE
RS SCDRQB,NSCDRQ

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 JOB 0 CONSIDERED OVERDUE

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

	RS MXDIRN,1		;MAXIMUM DIRECTORY NUMBER
	RS NDIRPG,1		;MAX # OF PAGES FOR A DIRECTORY FILE
	RS FBTSIZ,1		;SIZE FO FREE BIT TABLE BLOCK

RS IDXORA,1			;WORD CONTAINING START OF INDEX TABLE
RS DIRORA,1			;WORD CONTAINING BASE ADR OF MAPPED DIR
RS BTBORA,1			;WORD CONTAINING BASE ADR OF MAPPED BIT TABLE

;MISC STORAGE

;SYSTEM STARTUP FLAG. REPLACES DIDSCA AND STOKF

RS STARTF,1

;STORAGE FOR BUGHLT AND BUGCHK

RS BUGHLT,2
RS SVVEXM,1			;SAVE VALID EXAMINE IN BUGTYO
				;USED IN KS10 TO SAVE KEEPALIVE WORD
RS BUGLCK,1			;LOCK ON BUGXXX ROUTINES
RS BUGCHK,2
RS BUGINF,2			;INFORMATIONAL BUGCHK

RS BUGACS,20			;ACS
	BUGPLN==:^D12		;PUSH DOWN LIST SIZE
RS BUGPDL,BUGPLN		;PUSH DOWN LIST
	BUGMAX==:5		;DONT LET MORE THAN 5 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 BUGP,1			;PLACE TO STORE P DURING BUG HLT/CHK
RS BUGP1,1
RS BUGP2,1
RS BUGP3,1


;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==:2			;NUMBER OF PAGES OF STORAGE SPACE
NUTWDS==UTNPG*PGSIZ		;WORDS OF BUFFER SPACE FOR UTEST
NRP UTPGS,NUTWDS		;BUFFER SPACE
;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 SALCNT,1			;COUNT OF LINES DOING SENDALL

;STORAGE

RS TTFREC,1			;COUNT OF FREE BUFFERS
RS TTFREB,1			;LIST OF FREE BUFFERS

;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
   IFN SMFLG,<RS DZCHCT,1>	;"CLOCK" FOR DZ11 PI CHECK
   IFG DTFLG!SMFLG,<		;FOR FE CONFIGURATIONS
SNDSIZ==:20			;SIZE FOR A SEND ALL BUFFER
RS SNDALL,SNDSIZ		;ALLOCATE THE BUFFER
>
RS TTSTAT,NLINES		;STATIC DATA
RS TTACTL,NLINES		;POINTER TO DYNAMIC DATA
RS SPDBLK,1			;POINTS TO RESIDENT BLOCK FOR LINE SPEEDS
NR TTSPWD,NLINES		;INPUT,,OUTPUT SPEEDS
RS TTCSAD,NLINES		;ROUTINE FOR SCHEDULER TO CALL
RS TTCSTM,NLINES		;TIME TO CALL ROUTINE IN TTCSAD

;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
;DISK SIZE DATA DESCRIBING ALL KNOWN DISK TYPES
;THE ACTUAL TABLES ARE IN RESIDENT STORAGE AND ARE DEFINED LATER IN
;THIS MODULE.  DSKSZ0 CONTAINS THE RP04/RP05 DATA; DSKSZ1 CONTAINS THE
;RP06 DATA; AND DSKSIZ CONTAINS POINTERS TO THESE TABLES.

IFN RP04F,<

NWSEC==:200			;NUMBER OF WORDS PER SECTOR
;PGSIZ==:1000			;WORDS PER PAGE - DEFINED IN PROLOG

;DATA FOR RP04 AND RP05

SECPG0==PGSIZ/NWSEC		;SECTORS PER PAGE
LPPCT0==0			;LOST SECTORS PER CYL
SECSF0==^D20			;SECTORS PER SURFACE
SECCY0==^D19*SECSF0		;SECTORS PER CYLINDER
PAGCY0==SECCY0/SECPG0		;PAGES PER CYLINDER
CYLUN0==^D400			;CYLINDERS PER UNIT
SECUN0==SECCY0*CYLUN0		;SECTORS PER UNIT
BTWCY0==<PAGCY0+^D35>/^D36	;NUMBER BIT WORDS IN BIT TABLE FOR A CYLINDER
MINFP0==PAGCY0/3		;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
				; IN DSKASN
MAXFP0==PAGCY0*CYLUN0		;PAGES PER UNIT FOR DAKASN TURNING POINT
USSCU0==^D13			;MICROSECONDS PER LATOPT UNIT


;DATA FOR RP06

SECPG1==PGSIZ/NWSEC		;SECTORS PER PAGE
SECSF1==^D20			;SECTORS PER SURFACE
SECCY1==^D19*SECSF1		;SECTORS PER CYLINDER
PAGCY1==SECCY1/SECPG1		;PAGES PER CYLINDER
CYLUN1==^D800			;CYLINDERS PER UNIT
SECUN1==SECCY1*CYLUN1		;SECTORS PER UNIT
LPPCT1==0			;LOST SECTORS PER CYL
BTWCY1==<PAGCY1+^D35>/^D36	;NUMBER OF BIT WORDS PER CYLINDER IN BIT TABLE
MINFP1==PAGCY1/3		;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
				; IN DSKASN
MAXFP1==PAGCY1*CYLUN1		;PAGES PER UNIT FOR DSKASN TURNING POINT
USSCU1==^D13			;MICROSECONDS PER LATOPT UNIT

;DATA FOR RM03

SECPG3==PGSIZ/NWSEC		;SECTORS PER PAGE
LPPCT3==2			;LOST SECTORS PER CYL
SECSF3==^D30			;SECTORS PER SURFACE
SECCY3==<^D5*SECSF3>-LPPCT3	;SECTORS PER CYLINDER
PAGCY3==SECCY3/SECPG3		;PAGES PER CYLINDER
CYLUN3==^D820			;CYLINDERS PER UNIT
SECUN3==SECCY3*CYLUN3		;SECTORS PER UNIT
BTWCY3==<PAGCY3+^D35>/^D36	;NUMBER OF BIT WORDS PER CYLINDER IN BITTABLE
MINFP3==PAGCY3/3		;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
MAXFP3==PAGCY3*CYLUN3		;PAGES PER UNIT FOR DSKASN TURNING POINT
USSCU3==^D8			;MICROSECONDS PER LATOPT UNIT

BTBMAX==:15000			;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
IFE NETN,< BTBLEN==:BTBMAX>	;LENGTH OF BITTABLE IF IN SECTION 0
IFN NETN,< 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*PAGCY0		;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			;RESERVED
	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

;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

;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

STRN==:^D16			;MAXIMUM NUMBER OF STR'S ALLOWED
RS STRTAB,STRN			;TABLE OF POINTERS TO SDB'S

MXSTRU==:4			;MAX NUMBER OF PACKS IN A STRUCTURE
				; (ASSUMES RP04'S, USED TO LIMIT SDBUDB)
HOMTBL==:MXSTRU			;LENGTH OF HOMTAB
RS HOMTAB,HOMTBL		;LOGICAL TO PHYSICAL MAPPING
				; (CHANNEL,,UNIT) PER 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
SDBUDB==:27			;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

	.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

	.RESGP==:0		;GENERAL RESIDENT FREE SPACE POOL
	.RESTP==:1		;TERMINAL POOL
	.RESNP==:2		;NETWORK POOL
	.RESLP==:3		;LOGICAL LINK POOL
	.RSTMP==:4		; TIMER pool

	RESQTL==:5		;NUMBER OF POOLS OF RESIDENT FREE SPACE

	.RESGQ==:12000		;GENERAL QUOTA - USED BY PHYSIO FOR UDBS
				;   CDBS, KDBS, AND FOR SDBS.
				;   APPROXIMATELY 8 CHANNELS, 64 DRIVES,
				;   AND 16 ONLINE STRUCTURES
	.RESTQ==:40*ACTLNS	;TERMINAL QUOTA - USED BY TTYSRV
	.RESEQ==:1000		;ERROR QUOTA - USED BY ALCSEB (SYSERR)
	.RESNQ==:^D<50*2*30>	;NETWORK QUOTA - MESSAGE SIZE * ( # OF
				;   INPUT MESSAGES + # OF OUTPUT MESSAGES)
				;   * # OF ACTIVE LINKS
	.RESLQ==:^D<14*25>	;QUOTA FOR LOGICAL LINKS
	.RSTMQ==:^D20*NJOBS	; For TIMER 5 per job, 4 words each
	RESFRM==:400/4		;BLOCKS GUARANTEED FOR .RESP1 REQUESTS
	RESFRA==:RESFRM*3	;AVERAGE AMOUNT OF FREE SPACE LOCKED DOWN

RS RESMIN,1			;MINIMUM LEVEL FOR ALL BUT LEVEL 1 REQUESTS
RS RESAVE,1			;AVERAGE AMOUNT OF FREE SPACE LOCKED
RS RESFRE,1			;COUNT OF FREE BLOCKS LEFT
RS RESFFB,1			;FIRST FREE 4 WORD BLOCK
RS RESIFL,1			;INITIALIZATION FLAG = -1 DURING STARTUP
	NRESFP==:2*<.RESGQ+.RESTQ+.RESNQ+.RESLQ+.RSTMQ>/3000
				;# OF PAGES IS 2/3 OF SUM OF QUOTAS
	NRESFP==:12		;TEMPORARY VALUE
	NRESFB==:NRESFP*PGSIZ/4	;NUMBER OF RESIDENT FREE 4 WORD BLOCKS
NRP RESFRP,<NRESFP*PGSIZ>	;RESERVE SPACE FOR RESIDENT FREE POOL
	RESBTL==:<NRESFP*PGSIZ/4+^D35>/^D36 ;LENGTH OF BIT TABLE
RS RESBTB,RESBTL		;RESIDENT FREE SPACE BIT TABLE
RS RESBAS,1			;BASE ADDRESS OF THE RESIDENT FREE POOL
RS RESUTB,RESQTL		;RESIDENT FREE SPACE USAGE TABLE
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

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

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

NETCHR==DV%OUT!DV%IN!DV%DIR
NETCH1==0
NETMOD==DV%M0!DV%M5!DV%M6!DV%M7

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
DCNCH1==0
DCNMOD==DV%M0
DEFINE DV (NAME,UNITS,TYPE,DISP,CHAR1,CHAR2,MODES)<
	SIXBIT /NAME/
	XWD NDEV,DISP
	EXP CHAR1!<TYPE>B17!MODES
	EXP CHAR2+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) ;DSK ALWAYS EXISTS
DVXST0==:NDEV
		DV(STR,STRN,0,DSKDTB,STRCHR,STRCH1,DSMOD)
DVXSTN==:NDEV
IFG MTAN,<
	DV(MTA,MTAN,2,MTADTB,MTCHR,MTCH1,MTMOD) ;MAGTAPE
	DV(MT,MTAN,77,MTDTB,MTCHR,MTCH1,MTMOD)	;MT (FOR USER)
>
IFG DTAN,<	DV(DTA,DTAN,3,DTADTB,DTCHR,DTCH1,DTMOD)> ;DECTAPE
IFG PTRN,<	DV(PTR,PTRN,4,PTRDTB,PRCHR,PRCH1,PRMOD)> ;PTR
IFG SPTPN,<	DV(PTP,0,5,SPLDTB,PPCHR,PPCH1,PPMOD) ;SPOOLED PTP
		DV(PTP,SPTPN,5,SPLDTB,PPCHR,PPCH1,PPMOD)> ;SPOOLED PTP UNITS
IFG PTPN,<	DV(PPTP,PTPN,5,PTPDTB,PPPCHR,PPPCH1,PPMOD)> ;PTP
IFG VBCN,<	DV(VBC,0,6,VBCDTB,VBCHR,VBCH1,VBMOD)> ;VB10 DISPLAY
		DV(LPT,0,7,SPLDTB,LPCHR,LPCH1,LPMOD) ;SPOOL LPT ALWAYS EXISTS
IFG LPTN,<	DV(LPT,LPTN,7,SPLDTB,LPCHR,LPCH1,LPMOD)> ;SPOOLED LPT UNITS
DVXLP0==:NDEV
IFG LPTN,<
	DV(PLPT,LPTN,7,LPTDTB,PLPCHR,PLPCH1,LPMOD)> ;PHYSICAL LPT
		DV(CDR,0,10,SPLDTB,CRCHR,CRCH1,CRMOD)	;SPOOLED CDR
   IFG CDRN,<DVXCD0==:NDEV
	DV(PCDR,CDRN,10,CDRDTB,CDRCHR,CDRCH1,CDRMOD)> ;PCDR
   IFG CDPN,<	DV(CDP,0,21,SPLDTB,CPCHR,CPCH1,CPMOD)> ;SPOOLED CDP
   IFG FEN,<	DV(FE,FEN,11,FEDTB,FECHR,FECHR1,FEMOD)	;THE FE DEVICES
   >
DVXTT0==:NDEV			;SAVE DEV TABLE INDEX OF FIRST TTY
		DV(TTY,NLINES,12,TTYDTB,TTYCHR,TTYCH1,TTYMOD) ;TTYS ALWAYS EXIST
IFG NTTPTY,<	DV(PTY,NTTPTY,13,PTYDTB,PTYCHR,PTYCH1,PTYMOD)> ;PSEUDO TTY
		DV(NUL,0,15,NILDTB,NULCHR,NULCH1,NULMOD) ;THE NULL DEVICE
IFG NETN,<	DV(NET,0,16,NETDTB,NETCHR,NETCH1,NETMOD)>
IFG SPLTN,<	DV(PLT,0,17,SPLDTB,PLCHR,PLCH1,PLMOD) ;SPOOLED PLOTTER
		DV(PLT,SPLTN,17,SPLDTB,PLCHR,PLCH1,PLMOD)> ;SPOOLED PLT UNITS
IFG PLTN,<	DV(PPLT,PLTN,17,PLTDTB,PPLCHR,PPLCH1,PLMOD)> ;PLOTTER
IFG DLXN,<	DV(DLX,DLXN,20,DLXDTB,DLXCHR,DLXCH1,DLXMOD)> ;DL10
IFG DCN,<	DV(DCN,0,22,DCNDTB,DCNCHR,DCNCH1,DCNMOD)
		DV(SRV,0,23,SRVDTB,DCNCHR,DCNCH1,DCNMOD)>
	BLOCK 2*DVTSTP		;LEAVE ROOM TO PATCH 2 DEVICES
NINIDV==:.-INIDVT

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

RS(DEVLCK)			; 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 IPCF,ENA, AND NETWORK STRINGS

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

PIDHDS==:4			;LENGTH OF PID HEADER
MESHDS==:6+MAXLW+1		;LENGTH OF MESSAGE HEADER
PAGMSZ==:MESHDS+3		;LENGTH OF PAGE MESSAGE
MAXMSL==:^D30			;MAXIMUM LENGTH OF A NON-PAGE MESSAGE
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==:2			;STANDARD PID QUOTA PER JOB
IPCCFL==:<.IPCCC>B32		;FLAGS USED WHEN SENDING AN IPCC
				;   REQUEST TO INFO

PIDTBS==:NJOBS			;SET UP AN AVERAGE OF 2 PIDS PER JOB
MAXPID==:PIDTBS*2		;HIGHEST POSSIBLE PIDTBL INDEX
PDFREL==:MAXPID*<PIDHDS+SWOPTL>	;FREE SPACE SIZE (1 MESS/PID)

SRVSPC==^D32
DCNSPC==^D15

MAXBLK==:SRVSPC*^D25+DCNSPC*^D15 ;STRING SPACE FOR NETWORK CONNECTIONS
ENQMXF==:ENFREL+PDFREL*3/4	;MAXIMUM ENQ FREE SPACE UTILIZATION
SWFREL==:PDFREL+MAXBLK+ENFREL	;IPCF STORAGE + ENQ/DEQ STORAGE+NET STRINGS
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==:5		;LENGTH OF SYSTEM PID TABLE SET BY USERS
NR(SPIDTB,SPDTBL)		;TABLE OF COMMONLY USED PIDS

NR(PIDLOK,1)			;LOCK ON PID FREE POOL AND DATA STRUCT.
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)			;FREE SPACE HEADER BLOCK
NR(SWFREE,SWFREL)		;FREE STORAGE SPACE FOR MESSAGES
				;AND HEADERS

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

RS(PDFKTB,PDFKTL)	;ONE BIT PER FORK, WAKE UP TABLE
;LOCAL STORAGE FOR ENQ/DEQ
ENFKTL==:<NFKS+^D35>/^D36	;LENGTH OF FORK BIT TABLE

NR(HSHTBL,HSHLEN)		;HASH TABLE FOR ENQ LOCKS

NR(ENQLOK,1)			;DATA BASE LOCK FOR ENQ AND DEQ
NR(ENQSPC,1)			;COUNT OF FREE SPACE AVAILABLE FOR ENQ'S
NR(ENQLTL,1)			;LIST OF LONG TERM LOCKS
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 (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
NR (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
;SM10 DEPENDENT DATA

; UNIBUS ADAPTER SAVE AREAS

   IFN SMFLG,<
RS (SMADNX,4)			;NXT FREE NPR MAP FOR UBA
RS (SMUAMR,1)			;VALUE TO USE FOR SM10 UNIBUS ADAPTER MAINT REG
RS (SMUASR,1)			;VALUE TO USE FOR SM10 UNIBUS ADAPTER STATUS REG

   > ;END IFN SMFLG
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 DECNET

   IFG DCN,<			;ONLY IF PRESENT
NDG DCOPNM,4			;MAX LINKS PER JOB FOR NO PRIVILEGES
RS LLLLCK,1			;LL TREE LOCK
MAXEXP==:7			;EXP FOR MAXIMUM LL ADDRESS
MAXLNK==:1_<MAXEXP>-1		;GENERATE LARGEST LL ADDRESS
RS LLHEAD,1			;HEAD OF LL TREE
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
LLBIT==:<MAXLNK+1+43>/44	;WORDS IN LL ADDRESS BIT TABLE
NR LLBITS,LLBIT			;BIT TABLE FOR AVAILABLE LINK INDEXES
NR BLKASG,1			;AMOUNT OF SWAPPABLE STRING SPACE NOW ASSIGNED
NR OURNUM,1			;LOCAL NODE NUMBER
	NDG NODNUM,100		;DEFAULT LOCAL NODE NUMBER
NR OURNAM,2			;SPACE TO HOLD LOCAL NODE NAME
NR OURCNT,1			;COUNT OF CHARS IN "OURNAM"
RS RMSGQ,1			;EXPENDED MESSAGE QUEUE
RS MSGQ,1			;MESSAGE QUEUE
RS SMSGQ,1			;SCHEDULER'S MESSAGE Q
NR NSPLPB,1			;PORT FOR NSP LOOPBACK
NR MCBDTE,DCN			;THE DTE # OF THE MCB FRONT END
NR NSPMAX,DCN			;MAX SEG SIZE OF INTERCEPT NODE
NR ITSNAM,<DCN*2>		;MCB'S NODE NAME
NR ITSNUM,DCN			;MCB NODE NUMBER
NR ITSID,<DCN*^D9>		;MCB'S SYSVER STRING
NR NAKCNT,DCN			;COUNT OF NAK'ED SEGS
MCPRON==:.VNMCB		;MCB PROTOCOL IF DCN ASSEMBLED IN
   >				;END OF IFG DCN CONDITIONAL
   IFE DCN,<MCPRON==:0>	;IF NO DCN, NO MCB PROTOCOL
;STORAGE FOR KMC11'S

    IFLE DUPN,< ;ONLY IF NOT PRESENT
DUPINI==:R
KMCTSK==:R
    IFN SMFLG,<
.BOOT::	MCENT
	JRST UJSYS0
	>
	>
    IFN DCN,<
RS KMCFLG,1		;SET NONZERO WHEN NEED KMCTSK
    >
    IFG DUPN,<	;ONLY IF PRESENT
KMCQLN==:4+2*4*DUPN		;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
RS KMCIPL,50		;INTERRUPT PDL FOR KMC
RS DUPLIM,1		;LH IS NEGATIVE NUMBER OF DUP11'S ON SYSTEM
			; RH IS 0
RS DUPNLN,1		;POSITIVE NUMBER OF DUP11'S
RS DUPPAG,DUPN		;UBA ADR OF PAGE,,OUR ADR OF PAGE
RS DUPXPC,10		;XPCW BLOCK FOR KMC11 INTERRUPTS
    >
;STORAGE FOR DTE'S

IFG DTEN,<			;DTE STORAGE

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
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
RSXMAX==:2			;MAX DTE'S FOR RSX20F PROTOCOL
BUFSIZ==:^D33			;TRANSFER BUFFER SIZE
BYTBUF==:BUFSIZ*4		;BYTES PER BUFFER
BUFFSZ==RSXMAX*2*BUFSIZ
RS(DTEBFF,BUFFSZ)		;ALLOCATE 2 BUFFERS PER DTE
RS(DTBFWD,RSXMAX)		;THE HEADER WORD FOR THE BUFFERS
DTESZ==:60			;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
PKTSIZ==:3			;THE QUEUE PACKETS
PKTSZ1==PKTSIZ*RSXMAX
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
RS(TAD11,3)			;TIME FROM -11 CELL
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
DEFINE DTEPRO (UNIT)<		;MACRO TO GENERATE DTE INTERRUPT VECTOR
DTEN'UNIT:BLOCK 3
	.+1
	JSR SVDTRJ		;;SAVE REGISTERS
	MOVEI A,UNIT
	DMOVE B,DTEN'UNIT	;;GET INTERRUPT PC
	DMOVEM B,DTETRA		;;TO COMMON TRAP CELL
	CONI DTE'UNIT,F		;;GET DTE STATUS
	JRST INTDTE		;;GO DO COMMON STUFF
>
DEFINE DTEINN (UNIT)<		;;TO GENERATE INTERRUPT VECTOR
	XPCW DTEN'UNIT		;;THE XPCW
>
   >				;END IFG DTEN

IFN DTFLG,<
;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
   IFN SMFLG,<

; EPT RESERVED LOCATIONS

SMTEPT==:KIEPT+100	;POINTERS TO SM10 VECTOR TABLE
>

MSECTB=:KIEPT+540		;MONITOR SECTION TABLE
;ADD RESIDENT STORAGE FOR TAPE SCEDULER TEST


;DTESRV STORAGE

NR BTLOCK			;LOCK ON BOOT PAGE (DTERBT)
RS SNGPK1,6
RS SNGPK2,6

;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
   IFN SMFLG,<
   IFG <LPTN-1>,<PRINTX %%ILLEGAL NUMBER OF LINEPRINTERS DEFINED FOR KS10>
RS L11A,LPTN			;HOLDS FAKE -11 ADDRESS OF BUFFER
RS LPWINA,LPTN			;ADDRESS OF UNIBUS WINDOW
RS LPACS,20			;AC'S DURING LPT INTERRUPT
	LPSLEN==:50		;LENGTH OF LPT INTERRUPT STACK
RS LPSTAK,LPSLEN		;PDL DURING LPT INTERRUPT
RS LPXJEN,1			;XJEN INSTRUCTION FOR DISMISSING LPT INTERRUPT
RS LPXPTB,LPTN*4		;LP INTERRUPT INSTRUCTION IS XPCW
				; TO 4-WORD BLOCK IN THIS TABLE
LPERSZ==:6			;NUMBER OF WORDS PER ERROR BLOCK
RS LPERBF,LPERSZ*LPTN		;ERROR BLOCK CONTAINING ERROR INFORMATION
				;FOR SYSERR.
   >	;END IFN SMFLG

   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 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(MTINDX,1)			;NUMBER OF REAL MTA'S ON SYSTEM, SET UP BY PHYM2
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*MTAN
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)
NRP (TLABBF)			;BUFFERS FOR LABEL I/O
	IFG <^D20*MTAN-1000>,<PRINTX *** LABEL BUFFER OVERFLOW>

   >				;END IFG MTAN
   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
   IFG NETN,<

;SIZES OF NETWORK TABLES.

NSQ==:20			;NUMBER OF SPECIAL IMP QUEUES TO HANDLE
NHSTAD==:400			;NUMBER OF POSSIBLE HOST ADDRESSES IN LEADER
				;(OLD FORMAT LEADER - THIS WILL CHANGE.)
IMP8XS==:40			;SIZE OF IRREG MESSAGE BUFFER
IMPLBT==:<NHSTAD+^D35>/^D36	;BIT TABLE LENGTH, 1 BIT PER HOST
NIMSTK==:20			;SIZE OF PI LEVEL STACK
IMPNLK==:^D200			;SIZE OF LINK TABLES
NSKT==:200			;MAX NUMBER OF SOCKETS DEFINED AT ONCE
NHOSTS==:400			;LENGTH OF HOSTN TABLE
NHSTN==:600			;LENGTH OF HOST NAME TABLE (TEXT)

;STORAGE

;FIRST IMPGTN ARE A GETAB TABLE - DON'T SEPARATE

RS IMPRDY,1			;0=DOWN, .GTR. 0 =GOING DOWN, -1=UP
RS NETON,1			;0=NETWORK OFF
RS NETENT,1			;FLAGS TO DRIVE NETSER. E.G., DON'T ALLOW LOGIN
RS NCPUPT,1			;GTAD OF LAST TIME NCP CYCLED UP.
RS IGDMSG,1			;MOST RECENT IMP-GOING-DOWN MSG
RS IMPDNT,1			;TIME OF LAST IMP READY LINE DROP
RS IMPUPT,1			;TIME OF LAST IMP READY LINE UP
RS IGDTIM,1			;TIME OF ABOVE IMP-GOING-DOWN MSG
IMPGTN==:8			;LENGTH OF THIS GETAB TABLE
;END OF GETAB GROUP

RS IMPORD,1			;OUTPUT READY. NON-ZERO PERMITS OUTGOING MSGS
RS IMPRDL,1			;READY LINE NOTICED OFF
RS IMPRDT,1			;TODCLK WHEN READY LINE FIRST WENT OFF
RS IMPFLG,1			;SERVICE NEEDED BY ASYNC PROCESS
RS NCPFRK,1			;FORKX OF NCP FORK
RS TTNOF,1			;SCAN OF NET TTY LINES REQUESTED IF NON-0
RS IMPNOS,1			;OUTPUT SCAN REQUEST FLAG
RS IDVLCK,1			;LOCAL LOCK
RS IDVLLK,1			;LAST IDVLCK LOCKER
RS IMPOJB,1			;OLD JOBBIT OF CURRENT IDVLCK LOCKER
RS IMPDRQ,1			;RESET CYCLE REQUESTED IN NON-0
RS NETTCH,1			;STATE OF NET HAS CHANGED IF NON-0
RS IMPFRI,1			;LIST OF FREE INPUT BUFFERS
RS IMPNFI,1			;COUNT OF FREE INPUT BUFFERS
RS IMPNIB,1			;NUMBER OF INPUT BUFFERS TO KEEP ON TAP
RS SIQIBI,NSQ			;SPECIAL QUEUE
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 SQVAL,NSQ			;VALUE TO COMPARE AGAINST FOR MUX SPECIAL Q
RS SQMSK,NSQ			;MASK TO USE IN COMPARE
RS SQLCK,1			;INTERLOCK FOR ASSIGNING SPECIAL Q
RS IMPIBI,1			;IN BUFFERS IN PTR
RS IMPIBO,1			;IN BUFFERS OUT PTR
RS IMPOBI,1			;OUTPUT BUFFERS IN POINTER
RS IMPOBO,1			;OUTPUT BUFFERS OUT POINTER
RS IMPHBI,1			;HI PRIORITY OUTPUT BUFFERS IN POINTER
RS IMPHBO,1			;HI PRIORITY OUTPUT BUFFERS OUT POINTER
RS IMIB,1			;CURRENT IN BFR, PI LEVEL
RS IMPOB,1			;BUFFER NOW BEING EMPTIED BY PI ROUTINE
RS IMPINP,1			;BLKI POINTER ON INPUT
RS IMPOUP,1			;BLKO POINTER
RS IMINFB,1			;BUFFERS MADE FREE BY PI ROUTINES
RS ANIVI1,4			;TWO WORDS FOR INPUT INTERRUPT XPCW
IMIDSP=:ANIVI1+3		;INPUT DISPATCH ADDRESS
RS ANOVI1,4			;AND TWO FOR OUTPUT
IMODSP=:ANOVI1+3		;OUTPUT DISPATCH ADDRESS
RS IMOIRD,1			;TEMP FOR IRREG MSG OUTPUT DATA
RS IMPIOV,1			;FLAG FOR INPUT BUFFER OVERFLOW
RS IMPNCL,1			;NUMBER OF CONTROL INPUT CONNS
RS IMPNOL,1			;NUMBER OF CONTROL OUTPUT CONNS
RS LNKNDL,1			;NUMBER OF DELETES IN LINK TABLE
RS IMIS32,1			;INPUT REPACKING STATE WORD
RS IMOS32,1			;OUTPUT REPACKING STATE WORD
RS IMPTIM,1			;TIME OF NEXT CLOCK RUN DOWN
RS IBPTIM,1			;TIME OF NEXT IMPIBP RUN
RS NETTIM,1			;TIME OF NEXT CHECK OF FSM FOR HANGS
RS RFNTIM,1			;TIME OF NEXT CHECK FOR LOST RFNM'S
RS NEGTIM,1			;NEGOTIATION TIME-OUT CLOCK
RS ITMSTM			;TIME TO FLUSH ALL TTMSG'S TO NVT'S
RS IMPCHU,1			;0 IF CURRENT CONTROL MESS HOST NOT UP
RS IMPCHO,1			;HOST NUMBER OF CONTROL MSG, MUST PRECEDE I8CAL
RS I8CAL,5			;ARGS OF CONTROL OPERATION, MUST FOLLOW IMPCHO
RS IMPFLS,1			;COUNT (NEG) OF MESSAGES TO FLUSH
RS NOPCNT,1			;COUNT OF NOPS LEFT TO SEND
RS IMPGDM,1			;LAST IMP GOING DOWN MSG
RS HSTGDM,1			;CURRENT HOST GOING DOWN MESSAGE
RS IMPCCH,1			;INDEX TO HOST NUMBER FOR PERIODIC CHECK

RS IMP8XI,1			;IRREG MES BUFFER IN PTR
RS IMP8XO,1			;.. .. OUT
RS IMP8XC,1			;.. .. COUNT
RS IMP8XB,IMP8XS		;IRREG MES BUFFER

RS IMPHRT,IMPLBT		;HOST READY BITS
RS HSTSTS,<NHOSTS/2>		;DEAD HOST STATUS TABLE (18 BITS PER HOST)
RS IMPHCT,IMPLBT		;RECENT MESSAGE SENT
IFDEF POLLF,<RS IMPHL1,IMPLBT>	;HOSTS WHICH HAVE GONE DOWN
IFDEF POLLF,<RS IMPHL2,IMPLBT>	;STATE OF HRT AT LAST LOG TTY REPORT

RS IMPBHT,IMPLBT		;'BAD' HOST TABLE
RS NWPBT,IMPLBT			;BIT TABLE OF HOSTS USING RAR/RAS ETC.
RS IMPIAC,5			;PI LEVEL AC STORAGE
RS IMSTK,NIMSTK			;PI LEVEL STACK
RS IMINP,1
;TIME ACCUMULATORS

RS IMCCLK,1			;RUN TIME OF LAST CHECK
RS IMCLST,1			;POINTER TO CURRENT CLOCK
RS IMCIDL,1			;TIME SPENT IDLING
RS IMCNRB,1			;TIME SPENT RELEASING SPENT BUFFERS
RS IMCGC,1			;TIME SPENT GARBAGE COLLECTING LINK TABLES
RS IMCGIB,1			;TIME SPENT ASSIGNING INPUT BUFFERS
RS IMCCNP,1			;TIME SPENT PROCESSING CONTROL MESSAGES
RS IMCP1,1			;TIME SPENT DISPATCHING INPUT MESSAGES
RS IMC8XM,1			;TIME SPENT PROCESSING IRREGULAR MESSAGES
RS IMCTS,1			;TIME SPENT SCANNING FOR NVT OUTPUT
RS IMCNVI,1			;TIME SPENT UNPACKING NVT INPUT
RS IMCOS,1			;TIME SPENT SCANNING FOR OUTPUT TO DO
RS IMCNCK,1			;TIME SPENT PROBING NETWORK
RS IMCRFN,1			;TIME SPENT CHECKING OVERDUE RFNM'S
RS IMCNCC,1			;TIME SPENT IN NCP CHECKS
RS IMNIDL,1			;COUNT OF IDLING
RS IMNNRB,1			;COUNT OF RELEASING SPENT BUFFERS
RS IMNGC,1			;COUNT OF GARBAGE COLLECTING LINK TABLES
RS IMNGIB,1			;COUNT OF ASSIGNING INPUT BUFFERS
RS IMNCNP,1			;COUNT OF PROCESSING CONTROL MESSAGES
RS IMNP1,1			;COUNT OF DISPATCHING INPUT MESSAGES
RS IMN8XM,1			;COUNT OF PROCESSING IRREGULAR MESSAGES
RS IMNTS,1			;COUNT OF SCANNING FOR NVT OUTPUT
RS IMNNVI,1			;COUNT OF UNPACKING NVT INPUT
RS IMNOS,1			;COUNT OF SCANNING FOR OUTPUT TO DO
RS IMNNCK,1			;COUNT OF PROBING NETWORK
RS IMNRFN,1			;COUNT OF CHECKING OVERDUE RFNM'S
RS IMNNCC,1			;COUNT OF NCP CHECKS

;LINK TABLES

RS IMPLT1,IMPNLK		;LH -- UNIT (INDEX TO NCP TABLES)
				; OR -1 IF CONTROL LINK
				;B18-19/00 -- RECEIVE
				;       10 -- SEND
				;       11 -- FREE
				;       01 -- DELETED
				;B20-27 -- HOST
				;B28-35 -- LINK
RS IMPLT2,IMPNLK		;B0-B5 -- FLAGS
				;B5-9 -- UNUSED
				;B10-17 -- BYTE SIZE
				;RH -- IN BFR PTR
RS IMPLT3,IMPNLK		;LH -- OUT BFR PTR
				;RH -- SAVE MESSAGE FOR RETRANSMISSION
RS IMPLT4,IMPNLK		;LH -- CURRENT BUFFER
				;RH -- MSG ALLOCATION
;VARIABLES

DBGNBF==:2000

RS(DBGFAC,1)			;FAILURE COUNTER
RS(DBGSP,1)			;STORE POINTER
RS(DBGRP,1)			;READ POINTER
RS(DBGNWD,1)			;NUMBER OF WORDS IN BUFFER
NR(DBGBUF,DBGNBF)		;DEBUG BUFFER

RS(LSKT,NSKT)			;LOCAL SOCKET NUMBER
RS(FSKT,NSKT)			;FOREIGN SOCKET NUMBER
RS(NETAWD,NSKT)			;B0-8 -- FOREIGN HOST NUMBER (777 FOR NONE)
				;B9-17 -- LINK NUMBER (0 FOR NONE)
				;B18-23 -- TIME-OUT COUNTDOWN
				;B24-26 -- UNUSED
				;B27-35 -- INDEX TO LINK TABLE
RS(NETBAL,NSKT)			;BITS OF ALLOCATION
RS(NETDAL,NSKT)			;DESIRED LEVEL OF BIT ALLOCATION
RS(NETBUF,NSKT)			;B0-17 -- BYTES PER BUFFER
				;B18-35 -- BUFFER LOCATION -1 (0 FOR NONE)
RS(NETSTS,NSKT)			;B0-3 -- FSM STATE
				;B4-11 -- FLAG BITS
				;B12-17 -- BIT STREAM BYTE SIZE
				;B18-35 -- MESSAGE COUNT STATISTICS
RS(NETFRK,NSKT)			;B0-B5 -- INTERRUPT CHANNEL FOR INS
				;B6-B11 -- UNUSED
				;B12-B17 -- FSM STATE CHANGE INTERRUPT CHANNEL
				;B18-B35 -- FORKX OF FORK TO INTERRUPT
RS(NETBTC,NSKT)			;BIT COUNT STATISTICS
RS(NCPLCK)			;LOCK TO PREVENT DOFSM CONFUSION
RS(NCPLLK)			;FORKX OF LAST NCPLCK LOCKER
RS(NCPLCN)			;COUNT OF NCPLCK LOCKS
RS(NCPLFC)			;COUNT OF NCPLCK FAILURES
RS(ASNTBC)			;ASNTBF TRAFFIC COUNTER
RS(NETCNC)			;COUNT OF TOTAL CONECTIONS OPENED
RS(FUNNYC)			;COUNT OF FUNNY INPUTS TO FSM
NTBUFS==:1000			;START OF NETWORK BUFFER SECTION TO USE
NNTBFS==:777000			;LENGTH OF NETWORK BUFFER AREA
RS(NETFRE,5)			;NET BUFFER FREE LIST HEADER
				;WD 0 IS BUFFER FREE LIST POINTER
				;WD 1 BUFFER LOCK
				;WD 2 TOTAL FREE BUFFER SPACE
				;WD 3 START OF BUFFER AREA
				;WD 4 END OF BUFFER AREA
RS(ASNTHR,1)			;THRESHOLD BELOW WHICH WE GET NERVOUS
				; ABOUT BUFFER SPACE
NR(HOSTN,NHOSTS)		;TABLE OF HOST NUMBERS, POINTERS TO NAMES.
NR(HSTNAM,NHSTN)		;TEXT TABLE OF HOST NAMES
NR(MHOSTS,1)			;MINUS NUMBER OF HOSTS IN TABLE.

   > ; END OF IFG NETN

;DUMMY ROUTINES FOR NON-ARPANET SYSTEMS

   IFE NETN,<

CHKNVT::			;IS TERMINAL AN NVT
NETKFK::			;FORK KILLING TIME
NETLGO::			;JOB LOGOUT TIME
IMPHLT::			;SYSTEM SHUTDOWN TIME (HSYS4)
IMPBEG::			;SYS STARTUP TIME, CREATE JOB 0 FORK
HSTINI::			;SYS STARTUP AND SMON. INIT HOST TABLES
CHKNET::			;WAIT FOR NET TO FINISH
NETINI::RET			;INITIALIZATION OF NCP FORK
NR (NETON)			;CELL USED BY SMON, RSO DEFINE IT.
NR (IMPDRQ)			;EVEN THOUGH NEVER USED BY SYSTEM
.ASNSQ::
.CVSKT::
.SNDIM::
.RELSQ::
.FLHST::
.CVHST::
.ATNVT::
.RCVIM::ITERR ILINS2		;NETWORK ONLY JSYS'S

NTBFIX==:0			;NEWORK PUFFER SECTION PAGE TABLE

IMPGTN==:0			;NETWORK GETAB TABLES
IMPRDY==:0
IMPLBT==:0
IMPHRT==:0
HSTSTS==:0
NHSTN==:0
HSTNAM==:0
NHOSTS==:0
HOSTN==:0
NSKT==:0
LSKT==:0
FSKT==:0
NETAWD==:0
NETBAL==:0
NETSTS==:0
NETBUF==:0
NETBTC==:0
IMPNLK==:0
IMPLT1==:0
IMPLT2==:0
IMPLT3==:0
IMPLT4==:0

   >;END OF IFE NETN
;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

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

SEBBSZ==:1000			;BUFFER SIZE
RS SEBBFR,SEBBSZ		;BUFFER - PI LEVEL TO JOB 0
RS SEBFRE,1			;FREE PTR - BEG OF CONTIGUOUS BUFFER
RS SEBEFE,1			;END OF CONTIGUOUS FREE BUFFER
RS SEBQIN,1			;JOB 0 QUEUE - IN PTR
;SEBQOU IS IN A FIXED PLACE IN LOWER CORE
RS SEBFCT,1			;FREE COUNT - CONTIG BUFFER SPACE
RS SEBRLQ,1			;QUEUE OF RELEASED BLOCKS
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

;STORAGE COMMON TO ALL DRUM DRIVERS

RS DRMJ0R,1			;JOB 0 INTERLOCK ON ERROR BLOCK
RS DST,NDST			;DRUM STATUS TABLE
;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
;PROCESS STORAGE BLOCK ASSIGNMENTS

ENDPSB==:777777		;END OF VARIABLE STORAGE IN PSB
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==:16			;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==:62			;SIZE OF PAGER TRAP STACK
TS TRAPSK,NTSK			;STACK USED DURING PAGER TRAPS
TS TRAPSW,1			;TRAP STATUS WORD
TS TRAPAP,1			;PAGE TRAP SAVED P
TS TRAPC,1			;PAGER TRAP RECURSION COUNT
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 IFAV,1			;INTER-FAULT AVERAGE, CONTINUOUSLY MAINTAINED
TS CAPT,1			;WORKING SET WINDOW SIZE IN MS.
NWSPGS==:<PGSIZ/^D36>+1		;NUMBER OF WORDS TO HOLD 512 BITS
TS WSPGS,NWSPGS			;WORKING SET PAGES BIT TABLE
XWSPGS=:-PSB+FITPGA+WSPGS

NPIPDL==:34			;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
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 PSIBIP,1			;BREAK IN PROGRESS WORD (LEVELS)

   				;LEAVE ROOM FOR HARDWARE STORAGE
IFN TSBLOC-PSB-420,<PRINTX ?PSB STORAGE NOT ALIGNED TO HDWR BOUNDARY>
TSBLOC=PSB+600
TS ENSKR,4			;SCHEDULER TEMP (RETURN)
TS ADRBRK,1			;ADDRESS BREAK INFO
TS ADRBK1,1			;ADDRESS OF INSTRUCTION CAUSING ADDR BREAK
TS MONBK,1			;INTERRUPT TO MONITOR IF NON-0
TS PIFL,1			;SAVED FLAGS MUST STAY WITH PIPC *****
TS PIPC,3			;SAVED PC DURING INITIAL PI SERVICE
				; CALLED WITH XPCW

TS IFTIM,1			;TIME SINCE LAST PAGE FAULT
TS SKDFL,1			;SCHEDULER TEMP (RETURN FLAGS)
TS SKDPC,1			;SCHEDULER TEMP (RETURN) **MUST STAY WITH SKDFL
TS MONFL,1			;TEMP MONITOR PC AND FLAGS
TS MONPC,1			;MUST STAY TOGETHER ****
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 UTRSW,1			;SAVED TRAPSW FOR USER
TS UMUUOW,2			;SAVE MUUO WORD FOR USER
TS KIMUU1,2			;LAST UUO WORD FROM USER
TS PGTIM,1			;TIME SINCE AGE REG TICK
TS FKTOFF,1			;TIME AT WHICH CPU CLOCK TURNED OFF
TS FKTLST,1			;LOST TIME WHILE CLOCK TURNED OFF
; 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(IDXMAP,1)			;ADDRESS OF IDX TABLE PAGE MAP WHEN EXTENDED ADDRESSING

TS(STRINF,1)			;FILE STRUCTURE INFORMATION
TS ENTVEC,1			;ENTRY VECTOR POINTER
TS PATADR,1			;10/50 COMPATABILITY ENTRY VECTOR
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 DMSADR,1			;DMS ENTRY VECTOR
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
NERRSV==:4			; NUMBER OF ERROR PARAMETERS
TS(ERRSAV,NERRSV)		; Block of error parameters

TS(PSBMAP,<1000-PPMPG>)		;MAP FOR PROCESS AREA
PSBM0=:PSBMAP-PPMPG		;BEG OF PSBMAP RELATIVE TO VIRT P G 0
PPLOW==:PSBMAP+<PPMSPE-PPMSPS>B44-PSB ;LOWEST NON-SPECIAL PAGE IN PP AREA
PPHI==:PPLOW+UPTPG-1-<PPMSPE>B44	;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

NUPDL==:300			;SIZE OF MONITOR CALL STACK
UPDL=:PSB+2*PGSIZ-NUPDL		;PUT UPDL AT TOP OF STACK PAGE
IFL UPDL-TSBLOC,<PRINTX ?PSB VARIABLES AND STACK CONFLICT>
;JOB STORAGE BLOCK ASSIGNMENTS

ENDJSB==:JSB+1000		;END OF VARIABLE STORAGE IN JSB

JS JOBMAP,PPMPG-PJMPG		;OBJECT MAP FOR JOB-COMMON AREA
JOBM0=:JOBMAP-PJMPG		;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 FKCTTY,NUFKS-<NUFKS/2>	; 1/2 word per fork
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 LSTLGN,1			; Last login D&T
JS CTRLTT,1			;LINE NUMBER OF CONTROLLING TTY
JS TTSPSI,1			;CODE ENABLED ANYWHERE IN THIS JOB
JS TTSDPS,1			;TERM INT CODE DEFERRED
JS TTJTIW,1			;TERMINAL INTERRUPT ENABLE MASK
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 (CSHACX,1)			;CSHACT EXPIRATION DATE
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)			; LH - QUOTAS AND COUNTS
				; RH - POINTER TO Q-BLOCKS FOR THIS JOB
JS(TIMALC)			; TIMER clocks limit
JS(LNTABP)			; POINTER TO LOGICAL NAME TABLE
JS(LNMLCK)			; LOCK FOR LOGICAL NAME DATA BASE
JS(JOBUNT)			; CONNECTED DSK UNIT
JS JBCLCK,1			; LOCK FOR ASGPAG
JS(JBCOR,4)			; Page allocation bit table
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==:3			;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)
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,1			;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
;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

;FIRST DEFINE JFN LIMITS AND SIZES

MLJFN==:23			; # OF WORDS PER JFN BLOCK
FREJPA==<FREJP>B26
MJFN==:<<JSJFNA-<PJMA+1000>+MLJFN-1>/MLJFN> ;MAX NUMBER OF JFNS
RJFN==:MJFN*MLJFN		;ACTUAL SPACE USED BY JFNS

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(FILBYT)			; Byte pointers to current window
JS(FILPRT,0)			; Pointer to protection string or protection #
JS(FILBYN)			; Byte number of current byte
JS(FILACT,1)			; Pointer to account string or account number
JS(FILLEN)			; Total length of file in bytes
JS(FILCNT)			; Bytes remaining in current 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(FILDEV)			; Device dependent  information
JS (FILLLB,0)			; FOR DECNET, POINTER TO LL BLOCK
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
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 (FILBFO,0)			;FOR DECNET, OUPTU BUFFER POINTER
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 (FILBFI,0)			;FOR DECNET, POINTER TO INPUT BUFFER
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
;THE FOLLOWING MUST BE THE FIRST RESIDENT CODE LOADED

	RESCD

;PATCH SPACE FOR RESIDENT CODE

FFF::
FFF1::
FFF2::	REPEAT 100,<
	XLIST
	0>
	LIST

;PARAMETER DEPENDENT DEVICE CODE

;DTE
	

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
PROFLG::1			;IF 0 DON'T GO INTO PRIMARY PROTOCOL
FEFLG::0			;USE 2ND PROTOCOL UNITL FURTHER NOTICE
FEDBSW::0			;FE DEBUG SWITCH
SVDTRJ::BLOCK 1			;DOES A JSR TO HERE
	JRST SVDTAC		;GO SAVE REGS AND SET UP STACK

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				;DEFINE PROTOTYPE HARDWARE INSTRUCTIONS
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
   >

	IFN SMFLG,<

;SM10

;THESE ARE CURRENTLY USED ONLY FOR TTY SERVICE FOR SINGLE/MULTI TTYS.
PROFLG::1			;PROTOCOL FLAG 0 DON'T ENTER PROMAIY PROTOCOL
FEFLG::0			;USE 2ND PROTOCOL UNTIL FURTHER NOTICE
	>

   IFE DCN,<			;IF NO DECNET SUPPORT
DEDMCB::
NSPSPC::
NSPQ::	BUG(HLT,NSPUDF,<UNSUPPORTED NETWORK FUNCTION>)
NODINI::
NSPINI::RET			;NOTHING TO DO
.NODE::	JRST UJSYS0		;UNDEFINED IF NO DECNET SUPPORT
DCOPNM==:0			;DEFAULT OF 0 IF NO DECNET
   >
IFN SMFLG,<
.PLOCK::			;FIX SO WE CAN USE 3A-MONITO MONSYM
	JRST UJSYS0
>

;BUFFER ADDRESSES

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

;TTYSRV

IBFRC::	EXP <^D20>B7+<NTTBL>B12+<NTTBL>B17+<NTTBL*NCHBF-1>B26+<NTTBL*NCHBF-2>B35

   IFE PHYIOF,<
   IFG DRMN,<IFG RS04F,<

;UCB TABLE

..T==0				;RUNNING VARIABLE
				;LIST OF ALL UCBS
ALLUCB::REPEAT MAXDRM,<Z UCBDAT+..T*UCBLEN
		..T==..T+1>
   >>
   >				;END IFE PHYIOF
;GLOBAL CONTROL FLAGS

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

SMLKF::	0			; .G 0 MEANS LOCK SWPMON IN CORE,
				; .E 0 MEANS DEMAND PAGE SWPMON
CTYLNO::0			;CTY LINE NUMBER (STORED IN TTINIT)
CTYTYP::TYPCTY			;LINE TYPE FOR CTY
KLILNO::0			;KLINIK LINE NUMBER
PSNAM::'PS    '			;NAME OF THE PUBLIC STRUCTURE

;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)

RS APRSER,1			;APR SERIAL NUMBER
EXADFL::0			;EXTENDED ADDRESSING FLAG 1=MODEL B MACHINE
EXADF1::0			;MUUO/PAGE FAIL FLAG 1=MODEL B MACHINE
SMFLAG::SMFLG			;VALUE OF SMFLG (0=NON SM10 1=SM10)
EXADDR::0			;DIRECTORY FLAG 0=SEC 0 740000
				;+>= SEC 2 MAX SIZE 30 PGS
				;- = SEC 2 MAX SIZE 256. PGS

SYSTAD::0			;SYSTEM LOAD DATE/TIME
;SYSTEM LOGICAL NAME INITIAL VALUES

	SWAPCD

SYNMTB::XWD [ASCIZ/SYS/],[ASCIZ/PS:<SUBSYS>/]
	XWD [ASCIZ/HLP/],[ASCIZ/SYS:/]
	XWD [ASCIZ/SYSTEM/],[ASCIZ/PS:<NEW-SYSTEM>,PS:<SYSTEM>/]

SYNMCT==:.-SYNMTB
;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


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
NTTYPS==:.-TTYPE0
;SECOND PARALLEL TYPE INFORMATION TABLE

DEFSTR DSPTB,TTYPE1,35,18	;ADDRESS OF DISPLAY CONTROL TABLE

DEFINE TY1(DPTAB)<
	0,,DPTAB
>

TTYPE1::
   REPEAT ^D10,<		;TYPES 0-9 ARE NOT DISPLAYS
	TY1(0)
>
	TY1(VT05TB)		; 10 - VT05
	TY1(VT50TB)		; 11 - VT50
	TY1(0)			; 12 - LA30
	TY1(0)			; 13 - GT40
	TY1(0)			; 14- LA36
	TY1 (VT52TB)		; VT52
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

;VT50 TABLE - USES ESCAPE SEQUENCES

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

	SWAPCD
; NAME OF FILE INTO WHICH ACCOUNTING INFO IS WRITTEN

FCTFIL::ASCIZ /PS:<ACCOUNTS>FACT.BIN/
USGFIL::ASCIZ /PS:<ACCOUNTS>SYSTEM-DATA.BIN/
CKPFIL::ASCIZ /PS:<ACCOUNTS>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
RS USGLOK,1			;LOCK ON USAGE FILE
	RESCD

;PHYSIO STORAGE

IFG PHYIOF,<

;TABLE OF KNOWN CHANNEL DISPATCH ROUTINES

PHYCHT::
	IFG RH20F,<	XWD .CTRH2,RH2DSP>
	IFG RH11F,<	XWD .CTRH2,RH2DSP>
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>
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
RS CHNPIT,8		;HEAD OF LIST OF CHANS ON EACH PI LEVEL

;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

;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
RS PHYEBL,1		;POINTER TO ERROR BLOCK POINTER


;STORAGE ASSOCIATED WITH THE HOME BLOCK CHECKING LOGIC

RS CHBUDB,1		;UDB BEING CHECKED
RS CHBODT,1		;OVERDUE TIME FOR CURRENT REQUEST
RS CHBLUC,1		;UDB OF LAST UNIT CHECKED - TO PREVENT LOCKOUT
RS CHBIRB,IRBLEN	;IORB
RS CHBCCL,2		;CHANNEL COMMAND LIST
RS CHBHB1,176		;BUFFER FOR FIRST PART OF HOME BLOCK
RS CHBHB2,2		;LAST 2 WORDS OF HOME BLOCK
   >			;END IFG PHYIOF
IFN RP04F,<
;RESIDENT TABLES OF SIZE DATA FOR DISKS BASED ON TYPE
;THE VALUES CONTAINED IN THESE TABLES ARE DEFINED EARLIER IN THIS
;MODULE.  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.

;OFFSETS INTO DSKSIZ TABLES

SECPAG==:0			;SECTORS PER PAGE
SECCYL==:1			;SECTORS PER CYLINDER
PAGCYL==:2			;PAGES PER CYLINDER
CYLUNT==:3			;CYLINDERS PER UNIT
SECUNT==:4			;SECTORS PER UNIT
BTWCYL==:5			;BIT WORDS IN BIT TABLE PER CYLINDER
MINFPG==:6			;MINIMUM FREE PAGES FOR FREE CHOICE
MAXFPU==:7			;MAXIMUM FREE PAGES BEFORE TURNING POINT
LPPCYL==:10			;LOST SECTORS PER CYLINDER
SECSRF==:11			;SECTORS PER SURFACE
USSECU==:12			;MICROSECONDS PER LATOPT SECTOR UNIT

;RP04 AND RP05

DSKSZ0::SECPG0			;SECTORS PER PAGE
	SECCY0			;SECTORS PER CYLINDER
	PAGCY0			;PAGES PER CYLINDER
	CYLUN0			;CYLINDERS PER UNIT
	SECUN0			;SECTORS PER UNIT
	BTWCY0			;BIT WORDS IN BIT TABLE PER CYLINDER
	MINFP0			;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
				; IN DSKASN
	MAXFP0			;MAX FREE BEFORE DSKASN TURNING POINT
	LPPCT0			;LOST SECTORS PER CYL
	SECSF0			;SECTORS/SURFACE
	USSCU0			;USEC/UNIT

;RP06

DSKSZ1::SECPG1			;SECTORS PER PAGE
	SECCY1			;SECTORS PER CYLINDER
	PAGCY1			;PAGES PER CYLINDER
	CYLUN1			;CYLINDERS PER UNIT
	SECUN1			;SECTORS PER UNIT
	BTWCY1			;BIT WORDS IN BIT TABLE PER CYLINDER
	MINFP1			;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
				; IN DSKASN
	MAXFP1			;MAX FREE BEFORE DSKASN TURNING POINT
	LPPCT1			;LOST SECTORS PER CYL
	SECSF1			;SECTORS/SURFACE
	USSCU1			;MICROSECONDS PER UNITS

;RM03

DSKSZ3::SECPG3			;SECTORS PER PAGE
	SECCY3			;SECTORS PER CYLINDER
	PAGCY3			;PAGES PER CYLINDER
	CYLUN3			;CYLINDERS PER UNIT
	SECUN3			;SECTORS PER UNIT
	BTWCY3			;BIT WORDS IN BIT TABLE PER CYLINDER
	MINFP3			;MINIMUM FREE PAGES FOR FREE CHOICE ALLOCATION
	MAXFP3			;MAX FREE BEFORE DSKASN TURNING POINT
	LPPCT3			;LOST SECTORS PER CYL
	SECSF3			;SECTORS/SURFACE
	USSCU3			;USEC/UNIT
;THE POINTERS TO THE ABOVE TABLES ARE IN PHYSIO IN A TABLE CALLED
;DSKSIZ

>
;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


>
;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
;ORIGIN OF MANUAL START TRANSFER VECTOR

SVECT=:140

;LOWER CORE DEFINITIONS - NOT CLEARED AT STARTUP

PWRTRP=:70			;EXECUTED ON POWER-FAIL AUTO RESTART
RLDADR==:71			;FE EXECUTE'S THIS ON CERTAIN RELAODS
EDDTF=:72			;RETAIN EDDT IF 1
CRSTAD=:73			;TOD OF LAST CRASH
 ;74 RESERVED FOR JOBDDT
 ;75 RESERVED - .JBHSO
DBUGSW=:76			;BUGHLT ACTION SWITCH
DCHKSW=:77			;BUGCHK ACTION SWITCH
;100 THROUGH 107 RESERVED FOR FE COMMAND LANGUAGE FUNCTIONS

;CELLS NOT CHANGED DURING DISK RELOAD OF RES MON

CRSTD1=:27			;CRASH TIME AND DATE SAVED WHILE RELOADING
BUGHAD=:26			;BUGHLT AND CHK ADDRESSES SAVED WHILE RELOADING
DBUGS1=:25			;DBUGSW SAVED WHILE RELOADING
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==20			;SIZE OF STACK FOR PI LEVELS
;MANUAL START TRANSFER VECTOR

	LOC SVECT
EVDDT::	JRST DDTX		;EDDT
	JRST SYSDDT		;RESET AND GO TO EDDT
EVDDT2::JRST DDTX		;COPY OF EDDT IN CASE OTHER CLOBBERED
EVSLOD::JRST SYSLOD		;INITIALIZE DISK FILE SYSTEM
	Z 0			;UNUSED OFFSET
EVRST::	JRST SYSRST		;RESTART
EVLDGO::JRST SYSGO		;RELOAD AND START
EVGO::	JRST SYSGO1		;START

DDTPRS::0			;DDT PRESENT IF NON-0

;AUTOMATIC RELOAD AND SWPMON LOAD STORAGE

BUTRXB::0			;XB OF ROOT DIR ON SPECIFIED STR
BUTMUN::0			;MAX. UNIT ON SPECIFIED STR
BUTDRT:: BLOCK 8		;LOGICAL/ PHYSICAL MAPPING OF SPEC STR
BUTCMD:: BLOCK ^D15		;ASCIZ MONITOR FILE NAME
BUTPGS::0			;START,,END ADDRESSES OF VBOOT PAGES
BUTEPT::0			;ADDRESS OF VBOOT PAGE TABLE PAGE
BUTPHY::0			;# OF PAGES TO MAP,,# OF FIRST CORE PAGE
BUTVIR::0			;VIRTUAL ADDRESS OF FIRST PAGE TO MAP
BOOTFL::0			;0 - NORMAL BOOTSTRAP, +N - SPECIAL BOOT

TMPSMM==:500			;TEMP SWPMON MAP DURING RESTART

DINFSW::0			;INFORMATIONAL BUG SWITCH

   IFN PHYIOF,<
;PAGE ZERO FREE STORAGE POOL FOR PHYSIO

PHYPZS::BLOCK PZSSIZ
   >				;END IFN PHYIOF

	RELOC

;END OF RESIDENT STORAGE--SET BY POSTLD

ZROEND::0

;NAME TO SAVE THE MONITOR IMAGE AFTER POSTLD AS

MONSNM::
IFN SMFLG,<	ASCIZ /SMONITR.EXE/>
IFN NETN,<	ASCIZ /AMONITR.EXE/>
IFE SMFLG!NETN,< ASCIZ /MONITR.EXE/>

DEFINE ECALL (DEV)<
   IFG DEV'N,<
	CALL DEV'CHK
RS DEV'TIM>>

;SCHEDULER DEVICE-DEPENDENT CALLS

LV8CHK::ECALL VBC
   IFG DCN,<CALL NSPCH7>	;DO DECNET MESSAGES
	RET

;TABLE OF CALLS FOR SECOND LEVEL CLOCKS

RS CLK2TM,0			;SYMBOL OF FIRST CLOCK CELL IN TABLE

CLK2CL::
	CALL WTCHK		;CHECK NON-SPECIAL WAITING FORKS
RS WTTIM,1
   IFE PHYIOF,<
	ECALL DSK		;DISK RE-QUEUE CHECK
	ECALL DRM		;DRUM TIMEOUT CHECK
   >				;END IFE PHYIOF
   IFN PHYIOF,<
	CALL PHYCHK		;PHYSIO TIMER ROUTINE
	RS PHYTIM
   >				;END IFN PHYIOF
	ECALL DTE		;DO POLLER
	ECALL DUP		;CHECK DUP11
	ECALL PTP		;PAPER TAPE PUNCH
IFG PLTN,<	ECALL PLT>	;PLOTTER
	ECALL DTA		;DECTAPE
	CALL LPTCHK		;PHYSICAL LPT
	RS LPTTIM
	ECALL CDR		;THE CARD READER
	ECALL DLX		;DL10
   IFN NETN,<
	CALL IMPCHK		;ARPANET
	RS IMPTM2
   >
	CALL TIMSCM
	RS TMMLTM		; Millisecond TIMER Q (elapsed time)
	CALL TIMSCD
	RS TMDTTM		; D&T TIMER Q
	CALL TTYCHK		;CHECK CONTROLLER THINGS
	RS TTYTIM		;ALLOCATE TIMER WORD
N2CLKS==:.-CLK2CL
;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 PLTN,<	INICLL PLT>
	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
	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		;DISPACTH 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
	DTV CDR			;THE CDR
	0			;UNKNOWN
	DTV FE			;THE FE DEVICE

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


NLHOST::-1			;All references to lhostn should be
				; to this cell, So it can be patched
				; if needed.
NVTPTR::0			; -number of nvt's,,first nvt
	RESCD
;RESET ALL AND GO TO EDDT

SYSDDT:	XCT PIRST
	XCT IORST
	JRST EVDDT2

;RELOAD SYSTEM FROM DISK AND RESTART

SYSGO::

;START SYSTEM KEEP EXISTING SWPMON PAGES

SYSGOX::MOVE P,PI7P		;GET A STACK
	CALL SAVSMM		;SAVE PRESENT SWPMON MAP
	MOVEI T1,IRBOOT		;NOTE SPECIAL INTERNAL BOOT
	MOVEM T1,BOOTFL
	JRST SYSGO1
;START FROM SCRATCH AFTER LOADING

SYSGO1::TDZA 7,7		;INDICATE NORMAL STARTUP TO SAVE IN STARTF
SYSLOD::MOVX 7,MI%RFS		;INDICATE REFRESHING
	MOVE P,PI7P
	XCT PIRST		;RESET PI AND IO
	XCT IORST
   IFE SMFLG,<
	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?
	JRST [	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
		JRST .+1]	;AND PROCEED
	XCT T2			;THIS IT?
	JRST [	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
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!!!!!!!!!!!!
SYSLD1:
   IFN DTFLG,<			;DOING FE PROTOCOLS?
	PIOFF			;MAKE SURE MACHINE IS QUIET
	JSR BUGMON		;MAKE SURE IN PROPER PROTOCOL
   >
   > ;END IFE SMFLG
   IFN SMFLG,<

SYSLD1:
	MOVEI T1,1		;START WITH SECOND MAPPING REGISTER
				;FIRST ONE RESERVED FOR BOOT
	MOVEM T1,SMADNX
   > ;END IFN SMFLG
	SETZM CRSTD1
	MOVE 1,[XWD ZROCOR,ZROCOR+1]
	SETZM -1(1)
	MOVE 2,ZROEND		;GET END ADR OF RESIDENT STG
	BLT 1,-1(2)		;CLEAR RESIDENT STORAGE AREA
	MOVEM 7,STARTF
	MOVE 1,[BTB]		;GET ADDRESS OF BIT TABLE
	MOVEM 1,BTBORA		;SET UP BASE ADDRESS FOR REFERENCE ELSEWHERE
	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
	AOS INSKED
	CALL GAPRID		;READ APR SERIAL NUMBER
	MOVEM T1,APRSER
	APRID T1		;FIND TYPE OF MACHINE
	TRZ 1,737777		;CHECK FOR MODEL B MACHINE
   IFE SMFLG,<
	SKIPE [MSEC1]		;WANT TO TRY EXTENEDE ADDRESSING SECTIONS?
	HRRZM 1,EXADFL		;YES, SET FLAG
	HRRZM 1,EXADF1		;AND SET PC FORMAT FLAG
   >
   IFN SMFLG,<
	SETOM EXADF1		;SM10 DOES MODEL B FORMAT ONLY
	HRRZM 1,EXADFL		;AND SET EXTENDED ADDRESSING FLAG
   >
	MOVE 1,[JRST BUGH0]	;SETUP JSR DISPATCHES
	MOVEM 1,BUGHLT+1
	MOVE 1,[JRST BUGC0]
	MOVEM 1,BUGCHK+1
	MOVE 1,[JRST BUGI0]
	MOVEM 1,BUGINF+1
	MOVEI 1,RLDHLT		;THE BUGHLT ADDRESS FOR A KEEP ALIVE RELOAD
	MOVEM 1,RLODPC+3	;SET UP XPCW PC'S
	SETOM BUGLCK		;INIT LOCK
	MOVE T1,SWPCP0		;INIT SWPCOR
	MOVEM T1,SWPCOR
	CALL RESFPI		;INITIALIZE THE RESIDENT FREE POOL
	SETOM RESIFL		;MARK THAT WE ARE IN SYSTEM START UP
	CALL PAGRST		;INIT PAGER SIMULATION (FOR KI10)
	CALL PGRINI		;INIT DST, CST, ETC.
   IFN SMFLG,<
	CALL UNBINI		;INIT UNIBUS ADAPTER
   >
   IFN PHYIOF,<
	CALL PHYINI		;MUST INIT BEFORE PAGER (GRABS RES STG)
   >				;END IFN PHYIOF
   IFE PHYIOF,<
;	DRUM IS INITIALIZED AFTER CALLING FSIINI
	CALL DSKINI		 ;DISK
   >				;END IFE PHYIOF
	CALL TTINIT		 ;TELETYPE MODULE
	IFG DLXN,<CALL DLXINI> ;DL10 CONTROLER
	CALL SCDIN		;SCHEDULER
	CALL PIINIT		;PI MODULE - LAST INIT
	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
;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
;RESTART SYSTEM

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

SYSRST::MOVE P,PI7P
   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
	SETOM SCDRN1
	PUSH P,PWRDWN		;SAVE POWER FAIL INDICATOR
	SETZM PWRDWN
	CALL PAGRST		;INIT PAGER SIMULATION
	CALL PGRRST
   IFN SMFLG,<
	CALL UNBRST		;RESTART UNIBUS ADAPTER
   >
	CALL TTRSET
   IFE PHYIOF,<
	DEVRST DRM
	DEVRST DSK
	DEVRST MTA
   >				;END IFE PHYIOF
   IFN PHYIOF,<
	CALL PHYRST
   >				;END IFN PHYIOF
	DEVRST LPT
	DEVRST DTA
	DEVRST PTR
	DEVRST PTP
IFG PLTN,<	DEVRST PLT>
	DEVRST VBC
	DEVRST DLX
	PUSH P,INSKED
	MOVEI 1,1
	MOVEM 1,INSKED
	SETZM SKEDF1
	CALL PIINIT
	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
	EXCH 1,0(P)		;SAVE OLD INSKED, RESTORE OLD PWRDWN
	SKIPGE 1		;DOING POWER RESTART?
	CALL TTDALL		;YES DETACH ALL JOBS THEN
	POP P,1			;GET OLD INSKED
	JUMPN 1,SCHED0		;RESUME SCHED IF THERE AT CRASH
	CALL SETPPG		;REESTABLISH CONTEXT
	SETZM INSKED
	SETOM TRAPC
	MOVSI 1,(UMODF)		;CRASH PROCESS RUNNING AT CRASH
	MOVEM 1,FFL
	SETZM FPC
	SETOM SLOWF		;FAKE A USER CONTEXT SO RETURN CODE
				; WILL ALWAYS WIN
	JRST ITRAP
;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::	XWD PI5R,.+1
   IFN DTAN+PTRN,<		;GENERATE IF HELLIWELL IS ASSEMBLING
	DMOVEM T1,PI5AC		;SAVE TEMP ACS
	DMOVEM T3,PI5AC+2
	DMOVEM CX,PI5CX		;SAVE CX, P
	MOVE P,[IOWD NPISK,PI5STK]
	PICALL DTA
	PICALL PTR
PTRCHR::
DTACHR::
	DMOVE T1,PI5AC		;RESTORE TEMPS
	DMOVE T3,PI5AC+2
	DMOVE CX,PI5CX		;RESTORE CX, P
	XJEN PI5R

RS PI5R,4
RS PI5AC,4
RS PI5CX,2
RS PI5STK,NPISK
>
   IFE DTAN+PTRN,<
	BUG (CHK,PI5ERR,<UNEXPECTED UNVECTORED INTERRUPT ON CHANNEL 5>)
	CLSB	5		;CLEAR THE INTERRUPT ON 5
	XJEN	PI5R		;RESTORE INTERRUPTED PC
RS PI5R,4
>
PISC6::	XWD PI6R,.+1
   IFN SMFLG+PLTN+VBCN,<		;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 NPISK,PI6STK]
   IFN SMFLG,<
	CALL DZCTIN		;CALL TERMINAL SERVICE
   >
IFG PLTN,<	PICALL PLT>
	PICALL VBC
	PICALL PTP
PLTCHR::
VBCCHR::
PTPCHR::
LPTCHR::
	DMOVE T1,PI6AC
	DMOVE T3,PI6AC+2
	DMOVE CX,PI6CX		;RESTORE ACS
	XJEN PI6R

RS PI6R,4
RS PI6AC,4
RS PI6CX,2
RS PI6STK,NPISK
>

   IFE SMFLG+PLTN+VBCN,<
	BUG (CHK,PI6ERR,<UNEXPECTED UNVECTORED INTERRUPT ON CHANNEL 6>)
	CLSB	6		;CLEAR THE INTERRUPT ON 6
	XJEN	PI6R		;RESTORE INTERRUPTED PC
RS PI6R,4
>
;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,<DRMIO - DRUMP ON BUT NO DRUM CODE IN SYSTEM>)

DRMINI::SETOM DRMJ0R
	RET
   >				;END IFE DRMN!PHYIOF


	TNXEND
	END