Google
 

Trailing-Edge - PDP-10 Archives - BB-4170G-SM - sources/prolog.mac
There are 56 other files named prolog.mac in the archive. Click here to see a list.
;<3A.MONITOR>PROLOG.MAC.52, 22-Jun-78 16:37:43, Edit by ENGEL
;MOVE BUTPG TO STG
;<1BOSACK>PROLOG.MAC.1004,  5-Jun-78 18:32:21, EDIT BY BOSACK
;<1BOSACK>PROLOG.MAC.1003, 24-May-78 15:05:44, EDIT BY BOSACK
;<1BOSACK>PROLOG.MAC.1002, 24-May-78 14:43:09, EDIT BY BOSACK
;<1BOSACK>PROLOG.MAC.1001, 22-May-78 01:20:01, EDIT BY BOSACK
;<3A.MONITOR>PROLOG.MAC.50,  3-Jun-78 16:54:41, Edit by GILBERT
;Add GSOPDEF, suppress CALLRET etc. to DDT typeout
;<3A.MONITOR>PROLOG.MAC.49, 31-May-78 21:08:45, EDIT BY BOSACK
;<3A.MONITOR>PROLOG.MAC.48, 31-May-78 14:31:39, EDIT BY BOSACK
;<3A.MONITOR>PROLOG.MAC.47, 16-May-78 08:11:25, Edit by ENGEL
;THE ATSSRV ADDITIONS ARE FOR TCO 1900
;<3A.MONITOR>PROLOG.MAC.46, 15-May-78 12:21:43, Edit by ENGEL
;<3A.MONITOR>PROLOG.MAC.45, 15-May-78 11:24:49, Edit by ENGEL
;<3A.MONITOR>PROLOG.MAC.43, 15-May-78 11:18:59, Edit by ENGEL
;<3A.MONITOR>PROLOG.MAC.42, 15-May-78 11:13:40, Edit by ENGEL
;ADD ATSSRV DEFINITIONS 
;<3A.MONITOR>PROLOG.MAC.41, 10-May-78 09:28:00, Edit by KIRSCHEN
;<3A.MONITOR>PROLOG.MAC.40,  4-May-78 01:13:50, Edit by MCLEAN
;PUT CHNOFF AND CHNON BACK IN PROLOG
;<3A.MONITOR>PROLOG.MAC.39,  3-May-78 09:00:10, Edit by KIRSCHEN
;ADD MORE NSP SYMBOLS
;<3A.MONITOR>PROLOG.MAC.38, 24-Apr-78 17:14:15, EDIT BY MURPHY
;<3A.MONITOR>PROLOG.MAC.37, 17-Apr-78 16:08:51, Edit by MCLEAN
;<3A.MONITOR>PROLOG.MAC.36, 11-Apr-78 15:33:21, Edit by KIRSCHEN
;<3A.MONITOR>PROLOG.MAC.35, 11-Apr-78 11:18:27, EDIT BY MILLER
;ADD SBHED DEFINITION
;<3A.MONITOR>PROLOG.MAC.34,  5-Apr-78 16:45:18, Edit by MCLEAN
;INCREASE APRNM TO 14 BITS FOR KS
;<3A.MONITOR>PROLOG.MAC.33, 22-Mar-78 13:30:50, Edit by HALL
;ADDED MI%DHT AND MI%SCH - INTERNAL FLAGS FOR ATS
;<3A.MONITOR>PROLOG.MAC.32, 15-Mar-78 11:22:28, Edit by KIRSCHEN
;ADD MORE NSP DEFINITIONS
;<3A.MONITOR>PROLOG.MAC.31,  9-Mar-78 08:57:34, EDIT BY MILLER
;CHANGE QUOTAB TO BE IN PC FLAGS
;<3A.MONITOR>PROLOG.MAC.30,  9-Mar-78 08:06:45, EDIT BY MILLER
;ADD PCX. MBAZ BITS IN PC WORD
;<3A.MONITOR>PROLOG.MAC.29,  9-Mar-78 08:05:41, EDIT BY MILLER
;ADD QUOTAB
;<3A.MONITOR>PROLOG.MAC.28, 27-Feb-78 10:24:16, Edit by KIRSCHEN
;ADD NS%TRN
;<3A.MONITOR>PROLOG.MAC.27, 23-Feb-78 08:44:22, EDIT BY MILLER
;DEFINE MI%LIM
;<3A.MONITOR>PROLOG.MAC.26, 21-Feb-78 14:24:33, Edit by HALL
;ADD DEFSTRS FOR JSATCT - QUOTA OF HTN'S FOR ATS
;<3A.MONITOR>PROLOG.MAC.25, 17-Feb-78 11:04:17, Edit by KIRSCHEN
;MORE NSP DEFINITIONS
;<3A.MONITOR>PROLOG.MAC.24, 11-Feb-78 11:24:28, EDIT BY MILLER
;MOVE SOME OF THE EXTENDED DEFINITIONS TO MACSYM
;<3A.MONITOR>PROLOG.MAC.23, 11-Feb-78 10:26:03, EDIT BY MILLER
;ADD PTSECM DEFINITION
;<3A.MONITOR>PROLOG.MAC.22, 11-Feb-78 09:54:57, EDIT BY MILLER
;CHANGE PTLOK TO BE BIT 9 IN IMMEDIATE POINTER
;<3A.MONITOR>PROLOG.MAC.21,  1-Feb-78 12:13:54, Edit by KIRSCHEN
;<3A.MONITOR>PROLOG.MAC.20, 30-Jan-78 09:36:38, Edit by KIRSCHEN
;<3A.MONITOR>PROLOG.MAC.19, 26-Jan-78 12:08:46, EDIT BY KIRSCHEN
;<3A.MONITOR>PROLOG.MAC.18, 26-Jan-78 10:11:53, EDIT BY KIRSCHEN
;<3.SM10-RELEASE-3>PROLOG.MAC.17, 16-Jan-78 10:54:27, EDIT BY KIRSCHEN
;<3.SM10-RELEASE-3>PROLOG.MAC.16, 15-Jan-78 14:32:55, EDIT BY MILLER
;ADD MEMORY ERROR BLOCK DEFINITIONS
;<3.SM10-RELEASE-3>PROLOG.MAC.15, 12-Jan-78 09:36:25, EDIT BY KIRSCHEN
;<3.SM10-RELEASE-3>PROLOG.MAC.14, 10-Jan-78 10:54:16, EDIT BY KIRSCHEN
;<3.SM10-RELEASE-3>PROLOG.MAC.13, 11-Nov-77 14:05:16, EDIT BY OSMAN
;PUT PAGE FAIL DEFS BACK INTO APRSRV (SEE UBGOOD IN APRSRV!)
;<3.SM10-RELEASE-3>PROLOG.MAC.12, 11-Nov-77 13:17:15, EDIT BY MILLER
;ADD SAWF
;<3.SM10-RELEASE-3>PROLOG.MAC.11, 11-Nov-77 11:22:01, EDIT BY OSMAN
;CHANGE PAGE FAIL DEFS FROM ==: TO =:
;<3.SM10-RELEASE-3>PROLOG.MAC.10, 10-Nov-77 22:08:07, EDIT BY OSMAN
;MOVE PAGE FAIL CELL DEFS INTO HERE FROM APRSRV, SO ALL MODULES MAY ACCESS THEM
;<3.SM10-RELEASE-3>PROLOG.MAC.9, 31-Oct-77 23:54:29, Edit by MCLEAN
;<3.SM10-RELEASE-3>PROLOG.MAC.8, 24-Oct-77 17:13:53, EDIT BY MURPHY
;<3.SM10-RELEASE-3>PROLOG.MAC.4, 21-Oct-77 16:23:14, EDIT BY MURPHY
;REMOVE PROCESSOR-DEPENDENT DEFINITIONS TO SEPARATE FILES
;<3.SM10-RELEASE-3>PROLOG.MAC.3, 21-Oct-77 14:42:40, EDIT BY OSMAN
;PUT IN THE LPWXXX DEFINITIONS
;<3.SM10-RELEASE-3>PROLOG.MAC.2, 20-Oct-77 14:41:11, EDIT BY OSMAN
;ADD LP1A17 AND LP1A16
;<MURPHY.MON>PROLOG.MAC.1, 13-Oct-77 12:27:34, EDIT BY MURPHY
;REMOVE NOFN, NROFN TO PARAMS
;<3-MONITOR>PROLOG.MAC.558, 12-Oct-77 16:33:09, EDIT BY MILLER
;ADD JSJFN TO MARK END OF JFN STORAGE AREA
;<3-MONITOR>PROLOG.MAC.554, 10-Oct-77 14:13:00, EDIT BY KIRSCHEN
;UPDATE COPYRIGHT FOR RELEASE 3
;<3-MONITOR>PROLOG.MAC.553,  2-Oct-77 14:59:21, EDIT BY MILLER
;move section # definitions to stg
;<3-MONITOR>PROLOG.MAC.552, 30-Sep-77 05:48:50, EDIT BY OSMAN
;FIX LP1ERR DEFINITION
;<3-MONITOR>PROLOG.MAC.551, 28-Sep-77 00:47:38, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.550, 28-Sep-77 00:45:54, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.549, 20-Sep-77 12:06:58, EDIT BY HURLEY
;SHUFFLE STRUC AND STRLK FOR PERFORMANCE REASONS.  ADD STRUS.
;<3-MONITOR>PROLOG.MAC.548, 19-Sep-77 21:35:40, EDIT BY MURPHY
;ADD STKFLG AND STKPC
;<3-MONITOR>PROLOG.MAC.547, 14-Sep-77 17:16:41, EDIT BY OSMAN
;ADD LP1DRY, LP1DVU, LP1TM
;<3-MONITOR>PROLOG.MAC.546,  6-Sep-77 17:00:14, EDIT BY OSMAN
;CHANGE LPCSRA AND LPCSRB BIT DEFINITIONS TO BE 8-BIT BYTE RELATIVE
;<3-MONITOR>PROLOG.MAC.545, 28-Aug-77 01:14:08, Edit by MCLEAN
;ADD MORE KLINIK AND CTY DEFINITIONS FOR KS10
;<3-MONITOR>PROLOG.MAC.544, 25-Aug-77 10:33:40, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.543, 24-Aug-77 17:55:09, EDIT BY MILLER
;<3-MONITOR>PROLOG.MAC.542, 24-Aug-77 17:43:36, EDIT BY MILLER
;ADD A SECTION NUMBER TO IMCALL
;<3-MONITOR>PROLOG.MAC.541, 23-Aug-77 01:40:11, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.540, 22-Aug-77 22:35:42, EDIT BY BOSACK
;<3-MONITOR>PROLOG.MAC.539, 22-Aug-77 22:24:27, EDIT BY BOSACK
;ADD OPTIONAL ARGUMENT TO RESCD TO PLACE CODE IN INITIALIZATION SEGMENT
;<3-MONITOR>PROLOG.MAC.538, 19-Aug-77 14:02:50, Edit by MCLEAN
;MAKE SEBPTR HAVE ROOM FOR IFIW BITS
;<3-MONITOR>PROLOG.MAC.537, 17-Aug-77 14:20:37, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.536, 15-Aug-77 16:04:13, EDIT BY MILLER
;ADD DCMAX AND DCCUR DEFINITIONS
;<3-MONITOR>PROLOG.MAC.535, 12-Aug-77 02:43:17, EDIT BY BOSACK
;ELIMINATE ABSOLUTE JSTAB
;<3-MONITOR>PROLOG.MAC.534, 12-Aug-77 02:24:50, EDIT BY BOSACK
;XLIST LITERALS
;<3-MONITOR>PROLOG.MAC.533, 12-Aug-77 02:04:24, EDIT BY BOSACK
;ELIMINATE ABSOLUTE LOAD OF POSTLD
;<3-MONITOR>PROLOG.MAC.532, 11-Aug-77 10:42:39, EDIT BY HURLEY
;ADDED SUPPORT FOR WILD CARD USER NAME STRINGS IN ACCOUNT VERIFICATION
;<3BOSACK>PROLOG.MAC.531,  5-Aug-77 00:29:39, EDIT BY BOSACK
;TCO 1832 - PSECT CHANGES
;<3-MONITOR>PROLOG.MAC.530,  8-Aug-77 17:01:02, EDIT BY MILLER
;<3-MONITOR>PROLOG.MAC.529,  8-Aug-77 16:38:12, EDIT BY MILLER
;ADD FSPTN DEFINTIION
;<3-MONITOR>PROLOG.MAC.528,  4-Aug-77 18:48:17, Edit by HESS
;ADD XCTUU FOR USER EFFECTIVE ADDRS COMPUTATION
;<3-MONITOR>PROLOG.MAC.527, 27-Jul-77 00:07:36, EDIT BY CROSSLAND
;CHANGE ANBSEC TO BE SECTION 5 AGAIN
;<3-MONITOR>PROLOG.MAC.525, 24-Jul-77 04:04:17, EDIT BY CROSSLAND
;ADJUST STORAGE BOUNDARIES SO THAT ARPANET MONITOR CAN USES STD. ONES
;<3-MONITOR>PROLOG.MAC.524, 24-Jul-77 00:38:29, EDIT BY CROSSLAND
;<3-MONITOR>PROLOG.MAC.523, 24-Jul-77 00:27:45, EDIT BY CROSSLAND
;<3-MONITOR>PROLOG.MAC.523, 23-Jul-77 23:04:43, EDIT BY CROSSLAND
;ADD ARPANET DEFINITIONS
;<3-MONITOR>PROLOG.MAC.522, 23-Jul-77 22:41:48, EDIT BY CROSSLAND
;ADD TIMER AND JSYS TRAP DEFINITIONS
;<3-NSW-MONITOR>PROLOG.MAC.2, 22-Jul-77 20:15:33, EDIT BY CLEMENTS
;<3-MONITOR>PROLOG.MAC.521, 23-Jul-77 21:09:23, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.520, 20-Jul-77 20:03:40, EDIT BY HALL
;ADD DEFINITION OF DRROF IN DROFN
;<3-MONITOR>PROLOG.MAC.519, 19-Jul-77 18:51:09, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.518, 19-Jul-77 18:46:03, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.517, 19-Jul-77 17:30:20, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.516, 12-Jul-77 00:37:50, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.515, 12-Jul-77 00:19:53, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.514, 11-Jul-77 23:08:24, EDIT BY CROSSLAND
;UPDATE NUMBER OF BUGSTRINGS IN MEXEC
;<3-MONITOR>PROLOG.MAC.513, 11-Jul-77 13:48:06, Edit by LCAMPBELL
;TCO 1838 - Address break
;<3-MONITOR>PROLOG.MAC.512,  9-Jul-77 15:50:43, EDIT BY HALL
;TCO 1812 - ADD MI%XTB
;<3-MONITOR>PROLOG.MAC.511,  9-Jul-77 11:37:56, EDIT BY HALL
;TCO 1812 - ADD IDXIV IN INDEX TABLE ENTRIES
;<3-MONITOR>PROLOG.MAC.510,  7-Jul-77 08:16:29, Edit by HESS
;ADD CKPSIZ DEFINITION
;<3-MONITOR>PROLOG.MAC.509,  6-Jul-77 16:51:40, Edit by MCLEAN
;FIX DIRECTORY MAX TO 500 PAGES AND BITTABLE MAX TO 100 P
;<3-MONITOR>PROLOG.MAC.508,  6-Jul-77 13:08:53, Edit by MACK
;TCO 1822 - ADD DRACT TO DIRHDR FOR DEFAULT ACCOUNT STRING
;<3-MONITOR>PROLOG.MAC.507,  5-Jul-77 11:18:36, Edit by HESS
;<3-MONITOR>PROLOG.MAC.506,  2-Jul-77 22:01:49, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.505,  2-Jul-77 21:57:13, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.504, 29-Jun-77 23:44:58, Edit by MCLEAN
;UPDATE NUMBER OF BUGSTRINGS IN MEXEC
;<3-MONITOR>PROLOG.MAC.503, 27-Jun-77 14:49:49, Edit by MCLEAN
;MOVE BTSEC TO 4
;<3-MONITOR>PROLOG.MAC.502, 23-Jun-77 21:10:38, Edit by HESS
;PUT PSBMSZ BACK IN
;<3-MONITOR>PROLOG.MAC.501, 23-Jun-77 19:29:00, EDIT BY HURLEY
;REMOVED PSBMSZ
;<3-MONITOR>PROLOG.MAC.500, 23-Jun-77 19:21:18, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.499, 23-Jun-77 16:59:56, EDIT BY HALL
;TCO 1813 - EXPAND IDXFIL TO 16 PAGES
;<3-MONITOR>PROLOG.MAC.498, 23-Jun-77 16:52:00, Edit by HESS
;TCO 1821 - USAGE FILE DEFINITIONS
;<3-MONITOR>PROLOG.MAC.497, 23-Jun-77 13:27:38, Edit by MCLEAN
;ADD PSBMSZ SIZE OF PSB
;<3-MONITOR>PROLOG.MAC.496, 22-Jun-77 17:04:35, Edit by MCLEAN
;TEMP FIX FOR BITMAP IN SECTION 20
;<3-MONITOR>PROLOG.MAC.495, 22-Jun-77 16:58:41, EDIT BY MURPHY
;<3-MONITOR>PROLOG.MAC.493, 21-Jun-77 11:17:09, EDIT BY MILLER
;RESTORE CHNOFF MACRO. MACHINE IS ACTING FUNNY
;<3-MONITOR>PROLOG.MAC.492, 17-Jun-77 14:51:45, EDIT BY HALL
;REARRANGE DIRECTORY DEFINITIONS
;<3-MONITOR>PROLOG.MAC.491, 17-Jun-77 01:53:08, Edit by MCLEAN
;CHANGE NAME OF BITMAP SECTION NUMBER
;<3-MONITOR>PROLOG.MAC.490, 16-Jun-77 14:31:14, Edit by MACK
;TCO 1822 - MORE BUGSTRINGS FOR JSYSF
;<3-MONITOR>PROLOG.MAC.489, 15-Jun-77 15:55:57, Edit by MACK
;<3-MONITOR>PROLOG.MAC.488, 15-Jun-77 15:34:12, Edit by MACK
;<3-MONITOR>PROLOG.MAC.487, 15-Jun-77 15:30:54, Edit by MACK
;<3-MONITOR>PROLOG.MAC.486, 15-Jun-77 00:47:45, EDIT BY CROSSLAND
;MOVE ADDRESS BOUNDARIES DOWN
;<3-MONITOR>PROLOG.MAC.485, 14-Jun-77 22:04:51, EDIT BY CROSSLAND
;ADD ARPANET BUFFER SECTION
;<3-MONITOR>PROLOG.MAC.484, 13-Jun-77 11:21:47, EDIT BY MILLER
;CHANGE CHNOFF MACRO . CHANGE ASSUMES REV 8 ECO TO ALL MACHINES
;<3-MONITOR>PROLOG.MAC.483, 11-Jun-77 16:25:46, EDIT BY CROSSLAND
;REMOVE HSHLEN DEFINITION
;<3-MONITOR>PROLOG.MAC.482, 11-Jun-77 10:12:29, EDIT BY MILLER
;ADD NSPSRV DB DEFINITION
;<3-MONITOR>PROLOG.MAC.481, 10-Jun-77 10:29:51, Edit by MACK
;<3-MONITOR>PROLOG.MAC.480, 10-Jun-77 10:23:51, Edit by MACK
;ADDED DEFINITIONS FOR ACCOUNT VALIDATION
;<3-MONITOR>PROLOG.MAC.478,  9-Jun-77 23:12:33, EDIT BY MURPHY
;PERFORMANCE ENHANCEMENTS
;<2-PERF>PROLOG.MAC.4, 27-May-77 17:59:51, EDIT BY HURLEY
;<2-PERF>PROLOG.MAC.3, 26-May-77 16:08:54, EDIT BY HURLEY
;<2-PERF>PROLOG.MAC.2, 26-May-77 15:40:03, EDIT BY MURPHY
;<3-MONITOR>PROLOG.MAC.476,  1-Jun-77 15:05:55, EDIT BY MILLER
;<3-MONITOR>PROLOG.MAC.475, 30-May-77 17:32:40, EDIT BY BOSACK
;ADD POINTER TO DIR HEADER FOR USER GROUPS THIS USER MAY CRDIR
;<3-MONITOR>PROLOG.MAC.474, 28-May-77 10:45:00, EDIT BY MILLER
;CHANGE MSLNK
;<3-MONITOR>PROLOG.MAC.473, 27-May-77 08:55:09, EDIT BY MILLER
;ADD SOME MCB MESSAGE DEFINITIONS
;<3-MONITOR>PROLOG.MAC.472, 25-May-77 08:33:15, EDIT BY MILLER
;CHANGE MSTYP TO MSTOM
;<3-MONITOR>PROLOG.MAC.471, 24-May-77 17:16:53, EDIT BY MILLER
;MOVE PAGE VARIABLES UP FROM 522 TO 535
;<3-MONITOR>PROLOG.MAC.470, 19-May-77 09:38:09, EDIT BY MILLER
;CHANGE MCB MESSAGE FORMATS
;<3-MONITOR>PROLOG.MAC.469, 18-May-77 23:08:27, EDIT BY CROSSLAND
;TCO 1742 REMOVE DB MACRO FOR NVT MODULE
;<3-MONITOR>PROLOG.MAC.468, 10-May-77 15:09:51, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.467,  9-May-77 00:34:47, Edit by MCLEAN
; ADD DEFINITIONS FOR LP20
;<3-MONITOR>PROLOG.MAC.466,  6-May-77 16:11:59, EDIT BY MILLER
;FIX TYPEO
;<3-MONITOR>PROLOG.MAC.465,  6-May-77 11:38:48, EDIT BY HURLEY
;ADD ATTRIBUTES AND SET INPUT/OUTPUT ENTRIES IN DISPATCH TABLE
;<3-MONITOR>PROLOG.MAC.464,  6-May-77 10:39:19, EDIT BY MILLER
;TCO 1795. ADD FILINP AND FILOUP FOR I/O DIRECTION
;<3-MONITOR>PROLOG.MAC.463,  5-May-77 13:58:07, EDIT BY MILLER
;TCO 1794. NEED ONLY ONE KLINIK DATA FUNCTION
;<3-MONITOR>PROLOG.MAC.462,  5-May-77 11:20:21, EDIT BY MILLER
;TCO 1794. ADD KLINIK FUNTIONS
;<3-MONITOR>PROLOG.MAC.461,  3-May-77 01:33:35, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.460,  2-May-77 18:29:28, EDIT BY HURLEY
;LOAD SEQUENCE MODIFICATIONS
;<3-MONITOR>PROLOG.MAC.459,  2-May-77 18:13:08, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.458,  2-May-77 15:00:07, Edit by MCLEAN
;STOPCODE BIT INCORRECTLY DEFINED FOR SM10
;<3-MONITOR>PROLOG.MAC.457,  1-May-77 14:31:14, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.456, 30-Apr-77 23:46:04, Edit by MCLEAN
;MORE SM10 DEFINITIONS
;<3-MONITOR>PROLOG.MAC.455, 26-Apr-77 19:15:22, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.454, 24-Apr-77 14:04:39, Edit by MCLEAN
;FIX PI LEVEL OF UNIBUS ADAPTER
;<3-MONITOR>PROLOG.MAC.453, 23-Apr-77 21:23:32, Edit by MCLEAN
;CORRECT DEFINITONS FOR RECEIVER BUFFER FOR DZ11
;<3-MONITOR>PROLOG.MAC.452, 15-Apr-77 01:52:43, Edit by MCLEAN
;ADD RDHSB AND WRHSB
;<3-MONITOR>PROLOG.MAC.451,  9-Apr-77 22:42:09, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.450,  8-Apr-77 01:51:52, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.449,  5-Apr-77 16:36:35, EDIT BY MILLER
;TCO 1769. MAKE PSIPG 2 PAGES
;<3-MONITOR>PROLOG.MAC.448,  4-Apr-77 00:54:30, Edit by MCLEAN
;ADD RDTIME FOR SM10
;<3-MONITOR>PROLOG.MAC.447,  2-Apr-77 14:12:41, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.446,  2-Apr-77 14:10:57, Edit by MCLEAN
;REDEFINE DZ11 PARAMETERS CORRECTLY
;<3-MONITOR>PROLOG.MAC.445, 31-Mar-77 00:50:27, Edit by MCLEAN
;SM10 ADDITIONS AND MOVE NTMS TO APRSRV
;<3-MONITOR>PROLOG.MAC.444, 29-Mar-77 14:21:54, EDIT BY HALL
;MOVED MI%ASG AND MI%MXB BITS FROM MONSYM BECAUSE NOT RETURNED TO USER
;<3-MONITOR>PROLOG.MAC.443, 29-Mar-77 00:39:04, Edit by MCLEAN
;ADD MORE DZ11 DEFINITIONS
;<3-MONITOR>PROLOG.MAC.442, 28-Mar-77 00:47:55, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.441, 28-Mar-77 00:18:53, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.440, 27-Mar-77 16:11:14, Edit by MCLEAN
;ADD DEFINITIONS FOR UNIBUS ADAPTER AND CTY DZ11
;<3-MONITOR>PROLOG.MAC.439, 27-Mar-77 15:59:02, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.438, 26-Mar-77 23:46:26, Edit by MCLEAN
;MAKE XHLLI DO AN XMOVEI UNTIL MICROCODE FIXED
;<3-MONITOR>PROLOG.MAC.437, 24-Mar-77 02:37:25, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.436, 24-Mar-77 00:48:40, Edit by MCLEAN
;REMOVE CONI APR FLAGS TO APRSRV
;<3-MONITOR>PROLOG.MAC.435, 24-Mar-77 00:40:45, Edit by MCLEAN
;ADD BUGHLT SPACE FOR NEW DIAG MODULE
;<3-MONITOR>PROLOG.MAC.434, 22-Mar-77 00:35:11, Edit by MCLEAN
;CONVERT TT.SM TO TT.DZ
;<3-MONITOR>PROLOG.MAC.433, 22-Mar-77 00:33:23, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.432, 20-Mar-77 22:07:37, Edit by MCLEAN
;ADD AND CORRECT SM10 OPCODE DEFINITIONS
;<3-MONITOR>PROLOG.MAC.431, 20-Mar-77 13:47:44, Edit by MCLEAN
;PUT TT.SM AND NLTYPS BACK
;<3-MONITOR>PROLOG.MAC.430, 18-Mar-77 11:57:47, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.429, 17-Mar-77 13:50:35, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.428, 17-Mar-77 12:53:29, EDIT BY HURLEY
;ADDED DEFSTR OF FILATL - ATTRIBUTE LIST
;<3-MONITOR>PROLOG.MAC.427, 14-Mar-77 11:23:26, EDIT BY HALL
;TEMPORARILY UNDO MCLEAN'S ADDITION OF TT.SM AND REDEFINING NLTYPS
;<3-MONITOR>PROLOG.MAC.426, 12-Mar-77 15:17:10, Edit by MCLEAN
;ADD TT.SM
;<3-MONITOR>PROLOG.MAC.425,  9-Mar-77 01:32:23, Edit by MCLEAN
;ADD NEW GOPDEF'S FOR SM10
;<3-MONITOR>PROLOG.MAC.424,  9-Mar-77 01:28:29, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.423,  7-Mar-77 22:35:48, Edit by MCLEAN
;MAKE XHLLI DO CORRECT THING NOW THAT IT EXISTS
;<3-MONITOR>PROLOG.MAC.422,  7-Mar-77 17:12:02, Edit by MCLEAN
;ADD XHLLI
;<3-MONITOR>PROLOG.MAC.421,  7-Mar-77 02:31:04, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.420,  1-Mar-77 10:37:07, Edit by HESS
;ENHANCEMENTS TO "DTB" MACROS
;<3-MONITOR>PROLOG.MAC.419, 28-Feb-77 04:48:07, EDIT BY CROSSLAND
;TCO 1742 ADD ARPANET DEFINITIONS
;<CROSSLAND>PROLOG.MAC.1, 26-Feb-77 23:17:04, EDIT BY CROSSLAND
;TCO 1742 - ARPANET MERGE
;<3-MONITOR>PROLOG.MAC.418, 24-Feb-77 10:30:04, EDIT BY MILLER
;ADD RS%SE0 DEFINITION
;<3-MONITOR>PROLOG.MAC.417, 23-Feb-77 16:02:36, Edit by HESS
;ADD BUGSTRING STUFF FOR "TAPE"
;<3-MONITOR>PROLOG.MAC.416, 22-Feb-77 15:21:34, EDIT BY MILLER
;ADD MCB MESSAGE DEFINITIONS
;<3-MONITOR>PROLOG.MAC.415, 19-Feb-77 13:54:59, EDIT BY HALL
;ADD DEFINITIONS OF LINE TYPES FOR TELETYPE SERVICE
;<3-MONITOR>PROLOG.MAC.414, 17-Feb-77 12:54:42, EDIT BY MILLER
;ADD STKCD3
;<3-MONITOR>PROLOG.MAC.413, 10-Feb-77 14:36:53, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.412, 10-Feb-77 05:37:09, EDIT BY BOSACK
;<3-MONITOR>PROLOG.MAC.411, 10-Feb-77 04:55:33, EDIT BY BOSACK
;<3-MONITOR>PROLOG.MAC.410,  9-Feb-77 00:30:35, Edit by MCLEAN
;REMOVE DK10F
;<3-MONITOR>PROLOG.MAC.409,  6-Feb-77 21:07:19, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.408,  5-Feb-77 15:34:00, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.407,  5-Feb-77 13:52:11, Edit by MCLEAN
;REMOVE PGSIM
;<3-MONITOR>PROLOG.MAC.406,  4-Feb-77 02:58:06, EDIT BY BOSACK
;ADD SUBDIR COUNT AND MAX NUMBER OF SUBDIRS TO DIR HEADER
;<3-MONITOR>PROLOG.MAC.405,  3-Feb-77 20:46:14, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.404,  3-Feb-77 11:52:14, Edit by HESS
;TCO 1726 - ADD DEFS FOR OFN LENGTH TABLE
;<3-MONITOR>PROLOG.MAC.403,  2-Feb-77 13:56:04, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.402, 30-Jan-77 21:50:36, EDIT BY BOSACK
;CHANGE ADDRESS SPACE ASSIGNMENTS DUE TO GROWTH OF RESIDENT AREA
;<3-MONITOR>PROLOG.MAC.401, 30-Jan-77 19:16:34, Edit by MCLEAN
;TCO 1723 SM10 ADDITIONS
;<3-MONITOR>PROLOG.MAC.400, 22-Jan-77 19:05:22, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.399, 21-Jan-77 17:15:07, EDIT BY BOSACK
;ADD DEFSTR FOR SUPERIOR DIRECTORY IN IDXTAB
;<3-MONITOR>PROLOG.MAC.398, 20-Jan-77 16:57:08, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.397, 17-Jan-77 10:00:31, EDIT BY MILLER
;<3-MONITOR>PROLOG.MAC.396, 12-Jan-77 15:50:06, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.395, 11-Jan-77 15:30:40, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.394,  8-Jan-77 00:28:14, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.393, 28-Dec-76 21:29:26, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.392, 27-Dec-76 17:36:42, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.391, 27-Dec-76 17:26:50, EDIT BY HURLEY
;<3-MONITOR>PROLOG.MAC.390, 18-Dec-76 23:31:54, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.389, 18-Dec-76 04:06:26, Edit by MCLEAN
;<MCLEAN>PROLOG.MAC.388, 14-Dec-76 16:44:26, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.387,  4-Dec-76 16:56:14, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.386,  4-Dec-76 14:23:18, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.383,  3-Dec-76 23:12:07, Edit by MCLEAN
;<2-MONITOR>PROLOG.MAC.380, 30-Nov-76 11:34:14, EDIT BY KIRSCHEN
;ADD DEFSTR FOR MEDIA IDENTIFICATION FIELD IN SDB
;<3-MONITOR>PROLOG.MAC.381, 30-Nov-76 01:19:37, Edit by MCLEAN
;<3-MONITOR>PROLOG.MAC.380, 24-Nov-76 21:12:43, Edit by MCLEAN
;TCO 1669 EXTENDED ADDRESSING
;<2-MONITOR>PROLOG.MAC.379, 18-Nov-76 20:24:34, EDIT BY KIRSCHEN
;ADD DB MACRO CALL FOR MODULE MSTR
;<2-MONITOR>PROLOG.MAC.378, 17-Nov-76 19:49:44, Edit by MCLEAN
;TCO 1652 EPT REFERENCES
;<2-MONITOR>PROLOG.MAC.377, 16-Nov-76 17:37:54, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.376, 15-Nov-76 13:06:04, Edit by HESS
; FIX EMRETN MACRO TO TAKE A 2ND ARGUMENT
;<2-MONITOR>PROLOG.MAC.375, 13-Nov-76 15:24:17, EDIT BY BOSACK
;ADD PTLOK BIT TO PT POINTER DEFINITIONS
;<2-MONITOR>PROLOG.MAC.374, 13-Nov-76 13:53:08, EDIT BY BOSACK
;<2-MONITOR>PROLOG.MAC.373, 12-Nov-76 20:11:43, EDIT BY BOSACK
;<2-MONITOR>PROLOG.MAC.372, 12-Nov-76 19:59:30, EDIT BY BOSACK
;ADD PSSPQ FOR SPECIAL MEMORY QUEUE LOGIC
;<2-MONITOR>PROLOG.MAC.371, 11-Nov-76 20:33:59, EDIT BY BOSACK
;CHANGE PSTXXX DEFINITIONS TO USE MONSYM PMCTL SYMBOLS
;<2-MONITOR>PROLOG.MAC.370, 11-Nov-76 19:09:00, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.369,  9-Nov-76 17:59:08, Edit by HESS
;<2-MONITOR>PROLOG.MAC.368,  9-Nov-76 17:30:54, Edit by HESS
; CHANGE JSVAR DEFINITION TO INCLUDE ERROR RETURN
;<2-MONITOR>PROLOG.MAC.367,  5-Nov-76 15:30:09, Edit by HESS
;ADD JSVAR MACRO
;<2-MONITOR>PROLOG.MAC.366,  4-Nov-76 15:03:52, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.365,  4-Nov-76 11:57:59, EDIT BY KIRSCHEN
;ADD JSXCL TO STR INFO BLOCKS IN JSB
;<2-MONITOR>PROLOG.MAC.364,  3-Nov-76 15:27:25, EDIT BY HELLIWELL
;DEFINE MONITOR BOUNDARIES WITH NDG SO THEY CAN BE CHANGED IN PROLG0
;<2-MONITOR>PROLOG.MAC.363,  1-Nov-76 09:50:17, EDIT BY KIRSCHEN
;<2-MONITOR>PROLOG.MAC.362, 31-Oct-76 17:34:12, EDIT BY HELLIWELL
;<2-MONITOR>PROLOG.MAC.361, 31-Oct-76 14:33:51, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.360, 31-Oct-76 13:53:55, EDIT BY HURLEY
;CHANGE XCTU TO BE XCT 4, AND XBLTUU TO BE XCT 5,
;<2-MONITOR>PROLOG.MAC.359, 29-Oct-76 20:01:36, EDIT BY HELLIWELL
;<2-MONITOR>PROLOG.MAC.358, 29-Oct-76 18:21:02, EDIT BY HELLIWELL
;<2-MONITOR>PROLOG.MAC.357, 29-Oct-76 16:13:10, EDIT BY HELLIWELL
;INCREASED BUGSPACE FOR FILINI AND PHYS4
;<2-MONITOR>PROLOG.MAC.356, 29-Oct-76 15:46:09, EDIT BY HELLIWELL
;ADDED DCFLG CONTROLLING DC10 EXISTANCE SEPERATELY FROM DTFLG
;<2-MONITOR>PROLOG.MAC.355, 29-Oct-76 09:27:47, Edit by HESS
;CHANGE STRFK TO STRJB FOR INITING JOB #
;<2-MONITOR>PROLOG.MAC.354, 26-Oct-76 12:06:26, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.353, 25-Oct-76 13:37:55, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.352, 23-Oct-76 13:03:59, EDIT BY OSMAN
;TCO 1618 - "TTRFLG" DEFINED HERE SO FILMSC CAN GET IT TOO
;<2-MONITOR>PROLOG.MAC.351, 13-Oct-76 12:21:20, EDIT BY HALL
;ADDED BITS FOR STARTF
;<2-MONITOR>PROLOG.MAC.350, 11-Oct-76 14:51:29, Edit by MACK
;TCO 1586 - REDEFINE SCHEDULING CONTROL MACROS 
;<2-MONITOR>PROLOG.MAC.349, 11-Oct-76 10:20:32, EDIT BY KIRSCHEN
;ADD STIDX DEFINITION
;<2-MONITOR>PROLOG.MAC.348,  5-Oct-76 11:36:40, EDIT BY HALL
;FIXED COMMENT FOR HESS'S LAST EDIT
;<2-MONITOR>PROLOG.MAC.347,  4-Oct-76 14:07:46, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.346, 30-Sep-76 14:47:08, Edit by HESS
;REMOVED EDIT 344
;<2-MONITOR>PROLOG.MAC.345, 29-Sep-76 17:20:52, Edit by HESS
;ADD JSSDM DEFINITION
;<2-MONITOR>PROLOG.MAC.344, 29-Sep-76 15:40:41, Edit by HESS
;CHANGE DEFINITIONS OF "STR" AND "FILUC" IN JFN BLOCK
;<2-MONITOR>PROLOG.MAC.343, 29-Sep-76 13:19:56, EDIT BY HALL
;ADDED CURUC, DELETED JSSTR, CHANGED JSSTN TO BE UNIQUE CODE
;<2-MONITOR>PROLOG.MAC.342, 27-Sep-76 11:03:15, Edit by HESS
;<2-MONITOR>PROLOG.MAC.341, 23-Sep-76 13:41:21, EDIT BY KIRSCHEN
;REMOVE TWO STATUS BITS FROM STRUCTURE STATUS WORD (NOT NEEDED)
;<2-MONITOR>PROLOG.MAC.340, 22-Sep-76 13:55:37, EDIT BY BOSACK
;TCO 1536 - ADD CSTPST FIELD FOR PHYSICAL MEMORY PAGE STATE
;<2-MONITOR>PROLOG.MAC.339, 21-Sep-76 21:09:04, EDIT BY BOSACK
;TCO 1535 - CHANGE THE SIZE OF PUFLD
;<2-MONITOR>PROLOG.MAC.338, 20-Sep-76 12:33:40, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.337, 16-Sep-76 13:44:46, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.336, 16-Sep-76 13:41:36, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.335, 15-Sep-76 20:57:02, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.334, 15-Sep-76 20:39:45, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.333,  9-Sep-76 13:29:59, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.332,  9-Sep-76 13:03:03, EDIT BY HURLEY
;<2-MONITOR>PROLOG.MAC.331,  9-Sep-76 11:18:57, EDIT BY HURLEY
;ADD THE ABILITY TO SPECIFY * FOR STRUCTURES
;<HESS>PROLOG.MAC.7, 30-Aug-76 11:16:36, Edit by HESS
;TCO 1496 - ADD AUTHOR AND LAST WRITER STRINGS TO FDB
;<2-MONITOR>PROLOG.MAC.329,  6-Aug-76 17:21:45, EDIT BY HALL
;ADDED DEFSTRS FOR INDIVIDUAL PROTECTION FIELDS IN DIRECTORY PROTECTION WORD
;<2-MONITOR>PROLOG.MAC.328,  3-Aug-76 15:16:09, EDIT BY HALL
;ADDED BITS FOR CALLING DIRCHK AND ACCCHK
;<2-MONITOR>PROLOG.MAC.327,  2-Aug-76 12:55:53, EDIT BY HALL
;ADDED JSFRST DEFINITION
;<2-MONITOR>PROLOG.MAC.326,  2-Aug-76 12:36:27, EDIT BY HALL
;FIXED TYPO IN PREVIOUS EDIT
;<2-MONITOR>PROLOG.MAC.325,  2-Aug-76 12:28:55, EDIT BY HALL
;CHANGED DEFSTR OF JSSTN TO MSKSTR
;<2-MONITOR>PROLOG.MAC.324,  1-Aug-76 16:01:55, EDIT BY HALL
;FIXED BAD DEFSTRS (JSSTRN=>JSSTN,JSGRPS=>JSGRP)
;<2-MONITOR>PROLOG.MAC.323, 30-Jul-76 09:33:15, EDIT BY KIRSCHEN
;ADD STCRD DEFSTR
;<2-MONITOR>PROLOG.MAC.322, 29-Jul-76 16:02:02, EDIT BY KIRSCHEN
;ADD STRUCTURE STATUS DEFSTR'S
;<HESS>PROLOG.MAC.1, 28-Jul-76 14:17:19, Edit by HESS
;TCO 1478 QUOTA CHECKING
;<2-MONITOR>PROLOG.MAC.320, 29-Jul-76 15:47:57, EDIT BY HALL
;ADDED DEFSTRS FOR JSMCI,JSSTRN,JSGRPS,JSADN IN 3-WORD BLOCKS
;<2-MONITOR>PROLOG.MAC.319, 23-Jul-76 10:56:08, EDIT BY KIRSCHEN
;ADD STRUCTURE-RELATED JSB DEFSTR'S
;<2-MONITOR>PROLOG.MAC.318, 23-Jul-76 10:35:58, EDIT BY KIRSCHEN
;<2-MONITOR>PROLOG.MAC.317, 20-Jul-76 14:45:37, Edit by HESS
;ADD ALLOCATION/QUOTA DEFS IN SPT AND STS
;<2-MONITOR>PROLOG.MAC.316, 20-Jul-76 12:18:31, EDIT BY MILLER
;ADD FILDUD DEFINTION
;<2-MONITOR>PROLOG.MAC.315, 19-Jul-76 12:52:32, EDIT BY MILLER
;DEFINE OFNDUD
;<2-MONITOR>PROLOG.MAC.314, 19-Jul-76 09:17:36, EDIT BY KIRSCHEN
;ADD STRMC,STROF FIELDS TO SDB
;<2-MONITOR>PROLOG.MAC.313, 15-Jul-76 17:19:30, EDIT BY HALL
;CLEANED UP BAT BLOCK DEFINITIONS - NO CODE CHANGES
;<2-MONITOR>PROLOG.MAC.312,  8-Jul-76 10:24:10, EDIT BY KIRSCHEN
;FIX SDB DEFSTR'S TO BE UNIQUE IN FIVE CHARACTERS
;<2-MONITOR>PROLOG.MAC.311,  7-Jul-76 14:44:30, EDIT BY MILLER
;DEFINE FILP0 DEFSTR
;<2-MONITOR>PROLOG.MAC.310,  6-Jul-76 12:11:53, EDIT BY MILLER
;ADD MORE DEFSTR'S FOR SDB
;<2-MONITOR>PROLOG.MAC.309,  6-Jul-76 11:54:16, EDIT BY KIRSCHEN
;ADD DEFSTR DEFINITIONS FOR SDB FIELDS
;<2-MONITOR>PROLOG.MAC.17, 22-Jun-76 11:43:47, EDIT BY MILLER
;<2-MONITOR>PROLOG.MAC.16, 21-Jun-76 19:56:01, EDIT BY MILLER
;ALLOW FILINI TO HAVE MORE BUGHLT/BUGCHK S
;<1B-MONITOR>PROLOG.MAC.306, 18-Jun-76 09:35:38, EDIT BY HURLEY
;INCREASE BUGSTRING SPACE FOR JSYSF
;<1B-MONITOR>PROLOG.MAC.305, 15-JUN-76 16:36:27, EDIT BY MURPHY
;TCO #1380 - FIX ULOAD, USTOR DEFINITIONS
;<1B-MONITOR>PROLOG.MAC.304, 14-JUN-76 16:07:25, EDIT BY HURLEY
;<1B-MONITOR>PROLOG.MAC.303, 10-JUN-76 17:46:40, EDIT BY MILLER
;TCO 1379 - FIXED PREVIOUS EDIT TO USE BITS INSTEAD OF MSKSTR'S
;<1B-MONITOR>PROLOG.MAC.302, 10-JUN-76 11:37:34, EDIT BY JMCCARTHY
;TCO 1380 - PASSING INDIRECT OR INDEXED BYTE POINTERS TO JSYS'S
;CRASHES THE SYSTEM
;<1B-MONITOR>PROLOG.MAC.301,  9-JUN-76 15:33:13, EDIT BY HALL
;TCO 1379 - ADDED DOCSTS TO CONTAIN MASK FOR ALL DOCUMENTED BITS IN
;FILSTS WORD
;<2-MONITOR>PROLOG.MAC.14, 18-Jun-76 13:13:51, EDIT BY MILLER
;CHANGE DEFINITION OF STX AND STRX
;<2-MONITOR>PROLOG.MAC.13, 17-Jun-76 11:29:03, EDIT BY MILLER
;REMOVE JFN DEFINITIONS
;<2-MONITOR>PROLOG.MAC.12,  9-JUN-76 09:27:58, EDIT BY MILLER
;<1MILLER>PROLOG.MAC.1,  8-JUN-76 12:15:27, EDIT BY MILLER
;ADD CSTLDA AND REDEFINE CSTOFK
;<1MILLER>PROLOG.MAC.5,  4-JUN-76 16:15:31, EDIT BY MILLER
;<1MILLER>PROLOG.MAC.4,  3-JUN-76 08:50:29, EDIT BY MILLER
;DEFINE OFNDMO AND SPARES AND SPAREH
;<1MILLER>PROLOG.MAC.3,  2-JUN-76 15:31:40, EDIT BY MILLER
;ADD STX DEF AND REMOVE STRX
;<1MILLER>PROLOG.MAC.2,  1-JUN-76 14:30:51, EDIT BY MILLER
;<1MILLER>PROLOG.MAC.1,  1-JUN-76 13:37:17, EDIT BY MILLER
;<2-MONITOR>PROLOG.MAC.10, 24-MAY-76 13:51:36, EDIT BY KIRSCHEN
;add symbol definitions used during structure mounting
;<2-MONITOR>PROLOG.MAC.9,  8-MAY-76 11:29:02, EDIT BY HALL
;ADDED STR DEFSTR
;<2-MONITOR>PROLOG.MAC.8,  7-MAY-76 10:38:47, EDIT BY KIRSCHEN
;ADD STRRXB,STRBXB,STRLDN DEFINITIONS TO SDB
;<2-MONITOR>PROLOG.MAC.7,  4-MAY-76 09:59:43, EDIT BY KIRSCHEN
;ADD STRRDO FIELD TO SDB DEFINITIONS
;<2-MONITOR>PROLOG.MAC.5, 22-APR-76 14:06:46, EDIT BY KIRSCHEN
;<2-MONITOR>PROLOG.MAC.4, 22-APR-76 10:59:18, EDIT BY KIRSCHEN
;<2-MONITOR>PROLOG.MAC.3, 21-APR-76 16:16:04, EDIT BY KIRSCHEN
;<2-MONITOR>PROLOG.MAC.2, 21-APR-76 16:11:42, EDIT BY KIRSCHEN
;ADD IDXFIL PAGES, WHERE IDXTAB IS MAPPED
;<2-MONITOR>PROLOG.MAC.1, 21-APR-76 13:51:45, EDIT BY KIRSCHEN
;MOVE NIDXPG FROM STG
;<1B-MONITOR>PROLOG.MAC.2, 15-APR-76 09:43:45, EDIT BY KIRSCHEN
;TCO 1243 - ADD DTBYTM
;<1A-MONITOR>PROLOG.MAC.299,  9-APR-76 14:32:18, EDIT BY HURLEY
;<1MONITOR>PROLOG.MAC.298,  5-MAR-76 12:38:04, EDIT BY MURPHY
;MORE 1097
;<1MONITOR>PROLOG.MAC.297,  2-MAR-76 13:31:17, EDIT BY MILLER
;TCO 1145. ENABLE/DISABLE DATASET ANSWERS
;<2MONITOR>PROLOG.MAC.296, 19-FEB-76 22:02:33, EDIT BY KIRSCHEN
;TCO 1067 - DEFINE .DFLPC, LOAD PAGE COUNTER SPECIAL OPERATION
;<2MONITOR>PROLOG.MAC.295, 16-FEB-76 15:24:47, EDIT BY MURPHY
;TCO #1097 - INCREASE AVAILABLE MON VAS
;<2MONITOR>PROLOG.MAC.294, 16-FEB-76 14:58:49, EDIT BY KIRSCHEN
;TCO 1067 AGAIN, INTERCHANGE RAM AND VFU FUNCTION CODES
;<2MONITOR>PROLOG.MAC.293, 15-FEB-76 12:04:51, EDIT BY MILLER
;TCO 1093. DEFINE DTVRLD IN DTE VECTOR
;<2MONITOR>PROLOG.MAC.291, 10-FEB-76 12:30:31, EDIT BY KIRSCHEN
;MCO 1067 - ADD NEW -11 PROTOCOL FUNCTION CODES
;<2MONITOR>PROLOG.MAC.290,  3-FEB-76 13:27:31, EDIT BY MILLER
;MCO 21. ADD DTE ASSIGNMENTS
;<2MONITOR>PROLOG.MAC.289, 29-JAN-76 18:17:21, EDIT BY MURPHY
;MCO #42
;<2MONITOR>PROLOG.MAC.287, 16-JAN-76 12:33:34, EDIT BY MURPHY
;MCO #7 ADD FKCSIZ, REFORMAT DEFSTR CALLS
;<2MONITOR>PROLOG.MAC.286,  9-JAN-76 17:29:43, 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

	UNIVERSAL PROLOG
	SALL
	SEARCH MONSYM,MACSYM

IF2,<				;ONLY ONE PASS NEEDED

;*********TEMP*********
DEFINE TWOSEG(FOO)<
PRINTX ?TWOSEG AND PSECTS DONT MIX. FIX THIS MODULE.
>
;FORM OF OPDEF TO DO INTERNAL

DEFINE GOPDEF (NAM,VAL)<
	OPDEF NAM [VAL]
	INTERN NAM>

;FORM OF OPDEF TO DO .NODDT'D INTERNAL

DEFINE GSOPDEF (NAM,VAL)<
	OPDEF NAM [VAL]
	INTERN NAM
	.NODDT NAM>

;DEFINE GLOBAL SYMBOL IF NOT ALREADY DEFINED AND LIST VALUE

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

;DEFINE SYMBOL IF NOT ALREADY DEFINED AND LIST VALUE

DEFINE ND (SYM,VAL)<
   IFNDEF SYM,<
	SYM==VAL>>

NDG DEBUG,1			;1 TO INCLUDE DEBUG CODE, 0 TO EXCLUDE

;ABBREVIATION FOR IFN ??FLG,<>

DEFINE IFKL (ARG)<
   IFN KLFLG,<
	ARG>>
DEFINE IFSM (ARG)<
   IFN SMFLG,<
	ARG>>

IJSFRE==:100			; INITIAL SIZE OF JSB FREE AREA

ND RVCF,0			;T=RVC/MLKBK SUPPORTED
;GENERAL PARAMETERS AND MACROS

PGSIZ==:1000			;PAGE SIZE
PGSFT==:^D9			;SHIFT FOR PAGE/ADDRESS CONVERSION

; GTJFN FIELD LENGTHS

MAXLC==:^D39
MAXLW==:8
MAXSHT==:6			; MAX CHARACTERS IF G1%NLN IS ON
MAXEXT==:3			; MAX CHARACTERS IN EXTENSION
;PC FLAGS

FPD==:1B4			;FIRST PART DONE (PC WORD)
UMODF==:1B5			;USER MODE FLAG
UIOF==:1B6			;USER IO MODE
PCU==:1B6			;PREVIOUS CONTEXT USER (PC WORD)

;SOFTWARE BIT IN PC WORD

QUOTAB==:1B15			;PC "BACKED UP" BECAUSE OF OVER QUOTA
PCX==:77B5			;MBZ BITS IN PC WORD

NUACB==:120			;NUMBER WORDS FOR AC STACK
NTERMI==:^D36			;NUMBER OF TERMINAL INTERRUPTS
NPILEV==:3			;NUMBER OF PSEUDO-INTERRUPT LEVELS
;PI CHANNEL ASSIGNMENTS FOR ALL DIVICES

DSKCHN==:5			;DISK
DRMCHN==:4			;DRUM
DLSCHN==:6			;KL CHANNEL FOR TTY PI
MTACHN==:5			;MAG TAPE FLAGS CHANNEL
 MTDCHN==:1			;MAG TAPE DATA CHANNEL
DTACHN==:5			;DECTAPE CONTROL
 DTDCHN==:2			;DECTAPE DATA
PHYCHN==:5			;PHYSIO PI CHANNEL
PTPCHN==:6			;PAPER TAPE PUNCH
PTRCHN==:5			;PAPER TAPE READER
PLTCHN==:6			;PLOTTER
LPTCHN==:6			; LINE PRINTER PI CHANNEL
VBCCHN==:6			;VB10C DISPLAY
DLXCHN==:6			;DL10 SERVICE ROUTINE
IMPCHN==:6			;IMP DEVICE DRIVER
IMPCHS==:<IMPCHN>B32+<IMPCHN>B35  ;FOR DRIVER WITH TWO PI'S

APRCHN==:3			;APR PI CHANNEL
SCDCHN==:7			;SCHEDULER PI CHANNEL
UNBCHN==:56			;UNIBUS ADAPTER 2 PIA'S (11 DEVICES ARE BACKWARDS)
UNBPI5==6B35			;PI LEVEL OF BR5,BR4
UNBPI7==5B32			;PI LEVEL OF BR6,BR7
				;PI7 ON 11 IS HIGH THEREFORE IT IS 5 HERE
				;PI5 ON 11 IS LOW THEREFORE IT IS 7 HERE

;PI CONTROL DEFINITIONS


DEFINE CHNOFF (CHN)<
	CONO PI,PICHOF+1B<28+CHN>
   >

DEFINE CHNON (CHN)<
	CONO PI,PICHON+1B<28+CHN>>
;CONI/CONO PI

APR==:0				;DEVICE CODE FOR APR
;WARNING PI,PICHON AND PICHOF ARE ALSO DEFINED IN
;PROKL AND PROKS

PI==:4				;DEVICE CODE FOR PI

PICPIR==:1B22			;CLEAR PROGRAM PI REQUEST
PICLPI==:1B23			;CLEAR PI SYSTEM
PISPIR==:1B24			;SET PROGRAM PI REQUEST
PICHON==:1B25			;TURN CHANNELS ON
PICHOF==:1B26			;TURN CHANNELS OFF
PIPIOF==:1B27			;TURN PI SYSTEM OFF
PIPION==:1B28			;TURN PI SYSTEM ON

PIPIRM==:177B17			;PROGRAM REQUEST ACTIVE CHANNELS
PIPIIP==:177B27			;PI IN PROGRESS CHANNELS
PICHNM==:177B35			;CHANNEL MASK

;CONI/CONO PAG

PGCLKE==:1B18			;CACHE LOOK ENABLE
PGCLDE==:1B19			;CACHE LOAD ENABLE

PGKLMD==:1B21			;KL20 PAGING MODE
PGTPEN==:1B22			;TRAP ENABLE
PGEBRM==:<MASKB 23,35>		;EXEC BASE REGISTER

;DATAI/DATAO PAG

PGLACB==:1B0			;LOAD AC BLOCKS
PGLPCS==:1B1			;LOAD PCS
PGLUBR==:1B2			;LOAD UBR
PGCACB==:<MASKB 6,8>		;CURRENT AC BLOCK
PGPACB==:<MASKB 9,11>		;PREVIOUS AC BLOCK
PGNSAC==:1B18			;NO STORE ACCOUNTING REGISTERS
PGUBRM==:<MASKB 23,35>		;USER BASE REGISTER
MSKSTR PAGUBA,KIPGWD,PGUBRM

GSOPDEF ADJBP,<IBP>	;ADJBP = IBP WITH AC FIELD
;AC DEFINITIONS
;THESE ARE USED EXCLUSIVELY UNLESS SPECIFICALLY REDEFINED AT
;THE BEGINNING OF A MODULE

P=:17				;UNIVERSAL STACK
CX=:16				;CALL/RETURN TEMPORARY
 .SAC==:16			;SCRATCH - USED BY MACSYM MACROS
F=:0				;GENERAL FLAG REGISTER - PRESERVED

A=1				;ALTERNATE DEFINITION FOR TEMPORARIES
B=2				; FOR COMPATIBILITY WITH OLD CONVENTION UNTIL CHANGED
C=3
D=4
P1=10				;PRESERVED AC'S (NOT UNIVERSALLY OBSERVED NOW)
P2=11
P3=12
P4=13
P5=14
P6=15
Q1=5				;SECOND SET OF PRESERVED
Q2=6
Q3=7
T1=:1				;GENERAL TEMPORARY
T2=:2
T3=:3
T4=:4

NSAC==:15			;HIGHEST PRESERVED AC

;IF AN ALTERNATE DEFINITION FOR AN AC IS USED IN A MODULE, THE
;FOLLOWING MACRO MUST BE USED TO DEFINE IT.  THE NEW DEFINITION
;MUST BE MADE IN TERMS OF ONE OF THE GLOBAL DEFINITIONS ABOVE.  THE
;DEFINITION PROCESS PURGES THE OLD NAME THUS PREVENTING MULTIPLE
;NAMES FOR ONE AC.

DEFINE DEFAC (NEW,OLD)<
   IF1,<
	IFG OLD-15,<PRINTX **INVALID REDEFINITION OF AC OLD**>
	IFL OLD-1,<PRINTX **INVALID REDEFINITION OF AC OLD**>
	NEW=OLD
	PURGE OLD,OLD
	DEFINE OLD<%'OLD'%>>>
;OPDEFS

GOPDEF JSYS,<104B8>

;CALLING CONVENTIONS FOR LOCAL SUBROUTINES.
; SUBROUTINES ARE CALLED WITH 'CALL' WHICH IS A PSEUDONUM FOR PUSHJ P,.
; RETURN +1 IS EFFECTED BY 'RET' WHICH IS A PSEUDONUM FOR POPJ P,.
; RETURN +2 IS EFFECTED BY 'RETSKP' WHICH IS A JRST TO AN AOS, RET.

GOPDEF CALL,<PUSHJ P,0>
GOPDEF RET,<POPJ P,0>

DEFINE RETSKP<
	JRST RSKP>

;'CALLRET' IS AN ABBREVIATION FOR THE COMMON SEQUENCE
;	CALL ...
;	RET
;	RETSKP		;(OPTIONALLY)
;CODE WHICH USES 'CALLRET' MAY NOT ASSUME THAT IT ASSEMBLES INTO
;A SINGLE INSTRUCTION, I.E. THAT IT MAY BE SKIPPED OVER.

GSOPDEF CALLRET,<JRST>

;DECLARE LIST OF SYMBOLS EXTERNAL. (EQUIVALENT TO EXTERN BUT
;USES ANGLEBRACKET FORMAT LIKE OTHER IRP MACROS)

DEFINE EXTN (SYMS)<
	IRP SYMS,<
	EXTERN SYMS>>

;FACILITY TO SAVE ALL ACS, OR P1-P4, OR Q1-Q3, OR Q1-Q3 AND P1-P6
;PUTS DUMMY RETURN ON STACK FOR AUTOMATIC RESTORE ON RETURN

DEFINE ACSAV<
	JSP CX,ACSAV0>
DEFINE SAVEP<
	JSP CX,SAVP>
DEFINE SAVEQ<
	JSP CX,SAVQ>
DEFINE SAVEPQ<
	JSP CX,SAVPQ>
DEFINE SAVET<
	JSP CX,SAVT>

;SYMBOLS FOR REFERRING TO FLAGS AND/OR PC ON THE STACK

DEFINE STKFLG <-1(P)>
DEFINE STKPC <0(P)>
;THE FOLLOWING OPCODES ARE USED TO REFERENCE DATA IN THE 'PREVIOUS
;CONTEXT'.  THE PREVIOUS CONTEXT IS THE USER ADDRESS SPACE IF
;THE JSYS CALL WAS EXECUTED BY A USER PROGRAM, OR THE
;MONITOR ADDRESS SPACE IF IT WAS EXECUTED BY THE MONITOR.
;WHEN WRITING JSYS CODE HOWEVER, IT IS CONVENIENT TO THINK OF THE
;CURRENT CONTEXT AS 'MONITOR' AND THE PREVIOUS CONTEXT AS
;'USER'.  THESE TERMS SHOULD BE UNDERSTOOD IN THIS WAY IN THE
;FOLLOWING DISCUSSION AND IN THE OPDEF'S.

;XCTU IS THE GENERAL CASE AND IS USED FOR ALL ORDINARY (ONE-ADDRESS)
;INSTRUCTIONS.  IF USED FOR BLT, IT WILL CAUSE BOTH SOURCE AND
;DESTINATION TO BE USER.

;XCTUU ARE USED TO BOTH COMPUTE EFFECTIVE ADDRS IN USER AND FETCH
;FROM USER, I.E. - XCTUU [MOVE T1,@T1]

;XBLTMU AND XBLTUM ARE USED WITH BLT TO DO MONITOR-TO-USER
;AND USER-TO-MONITOR BLT'S RESPECTIVELY.  XBLTUU IS ALSO DEFINED
;FOR CONSISTENCY FOR USER-TO-USER BLT.

;XCTBU IS USED WITH BYTE INSTRUCTIONS WHERE POINTER IS IN MONITOR,
;DATA IN USER.  XCTBUU IS BYTE INSTRUCTION WITH POINTER AND DATA
;IN USER (KI10 DOES NOT SUPPORT).

;XPSHUM AND XPOPMU ARE THE ONLY CASES OF PUSH AND POP CURRENTLY USED.
;XPSHUM MEANS PUSH USER-TO-MONITOR, XPOPMU MEANS POP MONITOR-TO-USER, ETC.
;ADDITIONAL SUCH MNEMONICS WILL BE DEFINED IF NEEDED.

GOPDEF XCTU,<XCT 4,0>
GOPDEF XCTUU,<XCT 14,0>


GSOPDEF XBLTMU,<XCT 4,0>
GOPDEF XBLTUM,<XCT 1,0>
GOPDEF XBLTUU,<XCT 5,0>
GOPDEF XCTBU,<XCT 3,0>
GOPDEF XCTBMU,<XCT 1,0>
GOPDEF XCTBUU,<XCT 7,0>
GSOPDEF XPSHUM,<XCT 4,0>
GSOPDEF XPOPMU,<XCT 4,0>


; THE FOLLOWING OPCODES ARE USED TO PERFORM THE EXTENDED
; ADDRESSING FUNCTIONS.

GOPDEF XJEN,<JRST 6,0>		;RESTORE FLAGS,PC AND DISMISS
GOPDEF XPCW,<JRST 7,0>		;SAVE THEN RESTORE FLAGS AND PC (EXCHANGE PC WORDS)
GSOPDEF XHLLI,<XMOVEI 0,0>	;INSTRUCTION TO PUT IMMEDIATE ADDRESS IN LH
;'UMOVEX' IS A GROUP OF INSTRUCTIONS LIKE 'MOVEX' WHERE THE DATA
;REFERENCE IS FORCED TO 'USER' SPACE.  THEY ARE DEFINED IN TERMS
;OF 'XCTXX'.

 DEFINE UMOVE (A,L)<
	XCTU [MOVE A,L]>

 DEFINE UMOVEM (A,L)<
	XCTU [MOVEM A,L]>

;UMOVEI AND UMOVES ARE NOT DEFINED.

;THE FOLLOWING IS USED IN PLACE OF THE LOAD AND STOR MACROS WHEN
;PREVIOUS CONTEXT IS TO BE REFERENCED.  LOAD AND STORE CANNOT
;BE USED DIRECTLY UNDER XCTU BECAUSE THEY MAY ASSEMBLE BYTE
;INSTRUCTIONS WHICH REQUIRE DIFFERENT XCT BITS.

DEFINE ULOAD (AC,STR,Y)<
	..STR0 (..ULDB,AC,STR,Y)>

   DEFINE ..ULDB (AC,LOC,MSK)<
	..TSIZ (..PST,MSK)
	.CASE ..PST,<<
	  XCTU [MOVE AC,LOC]>,<
	  XCTU [HRRZ AC,LOC]>,<
	  XCTU [HLRZ AC,LOC]>,<
	  XCTBMU [LDB AC,[POINTR (LOC,MSK)]]>>>

DEFINE USTOR (AC,STR,Y)<
	..STR0 (..UDPB,AC,STR,Y)>

   DEFINE ..UDPB (AC,LOC,MSK)<
	..TSIZ (..PST,MSK)
	.CASE ..PST,<<
	  XCTU [MOVEM AC,LOC]>,<
	  XCTU [HRRM AC,LOC]>,<
	  XCTU [HRLM AC,LOC]>,<
	  XCTBMU [DPB AC,[POINTER (LOC,MSK)]]>>>

;THE FOLLOWING MACRO IS USED TO DEFINE FLAG BITS USING
;THE STRUCTURE FACILITY.  MSKSTR OR DEFSTR COULD BE USED DIRECTLY, THIS
;MACRO IS HERE FOR HISTORICAL REASONS.  THE FLAGS SO DEFINED
;ARE SET/TESTED WITH TQ??.

DEFINE FLG(FL,LR,REG,BIT)<
	IFIDN <LR><L>,<FL==<BIT>B17>
	IFIDN <LR><R>,<FL==BIT>
	MSKSTR (FL,REG,FL)>

;SAME AS ABOVE BUT MAKE FLAG GLOBAL

DEFINE GFLG(FL,LR,REG,BIT)<
	IFIDN <LR><L>,<FL==:<BIT>B17>
	IFIDN <LR><R>,<FL==:BIT>
	MSKSTR (FL,REG,FL)>
;RESIDENT STORAGE ALLOCATION MACRO

DEFINE RS (T,N)<
	.PSECT RSVAR
	IFB <N>,<
T::	BLOCK 1>
	IFNB <N>,<
T::	BLOCK N>
	.ENDPS RSVAR
>
;SWAPPABLE STORAGE

DEFINE NR (T,N)<
	.PSECT NRVAR
	IFB <N>,<
T::	BLOCK 1>
	IFNB <N>,<
T::	BLOCK N>
	.ENDPS NRVAR
>

;SWAPPABLE STORAGE ASSIGNED PAGE-AT-A-TIME

DEFINE NRP(T,N)<
	.PSECT NPVAR
	IFB <N>,<
T::	BLOCK PGSIZ>
	IFNB <N>,<
T::	BLOCK N>
	.ENDPS NPVAR
>
;SWAPPABLE, RESIDENT CODE

DEFINE SWAPCD<
	.ENDPS
	.PSECT NRCOD
>
DEFINE RESCD($TYPE)<
	.ENDPS
   IFB <$TYPE><
	.PSECT RSCOD
   >
   IFIDN <$TYPE><INIT><
	.PSECT INCOD
   >
>

;PSEUDO-TITLE FOR ALL REGULAR MODULES


DEFINE TTITLE (TT,NN,XTT)<
	SALL
	.DIRECT FLBLST
	TITLE TT'XTT
IFB <NN>,<ENTRY $'TT
	$'TT==:0>
IFNB <NN>,<ENTRY $'NN
	$'NN==:0>
	SEARCH MONSYM,MACSYM
	.PSECT RSCOD
	GGLOBS
	DEFINE TNXEND <
	XLIST
L'TT'....:	LIT
	LIST
>>

;MAKE SYMBOLS EXTERN IF NOT ALREADY DEFINED

DEFINE EXT (SYM)<
   IF2,<
	IRP SYM,<
	IFNDEF SYM,<EXTERN SYM
	SUPPRE SYM>>>>
;PI CONTROL DEFINITIONS

GOPDEF PIOFF,<CONO PI,PIPIOF>
GOPDEF PION,<CONO PI,PIPION>
DEFINE ISB (CHN)<
	CONO PI,PISPIR+1B<28+CHN>>

DEFINE CLSB (CHN)<
	CONO PI,PICPIR+1B<28+CHN>>

DEFINE UNBRK (DEV)<
	JRST DEV'CHR##>
;PAGEM BITS

;IN SPTH

FILWB==:1B1			;'FILE WRITE' BIT IN SPTH AND ASOFN ARG
THAWB==:1B2			;'THAWED' BIT """
FILNB==:1B3			;'FILE NEW' BIT """
SPTLKB==:1B4			;LH OF SPTH(OFN), XB IN USE BY DDMP
OFNWRB==:1B5			;OFN HAS BEEN MODIFIED
OFNBAT==:1B6			;XB CONTAINS A BAD BLOCK
OFNERR==:1B7			;ERROR IN FILE (E.G. MPE)
OFNDMO==:1B8			;THIS OFN IS ON A DISMOUNTED STRUCTURE
OFNDUD==:1B9			;THIS OFN NOT TO BE SWAPPED TO DISK
OFN2XB==:1B10			;**TEMP** SECOND LEVEL XB
SPAREH==:<MASKB 11,11>		;SPARE BITS IN SPTH

;IN SPT

DEFSTR (ALOCX,SPT,11,12)		;INDEX INTO ALLOCATION TABLES (OFN)
USHR==:1B11			;ONE UNIT OF SHARE COUNT IN SPT
DEFSTR SPTSHC,SPT,11,12		;SHARE COUNT IN SPT ENTRY
MAXSHC==:.RTJST(SPTSHC,SPTSHC)	;MAX SHARE COUNT VALUE
MAXSC0==:MAXSHC-1000		;MAX SHARE COUNT FOR NEW INDIRECT PTR

;IN SPTO

OFSHR==:1B17			;ONE UNIT OF OFN SHARE ENTRY
DEFSTR OFNSHC,SPTO,17,18	;SHARE COUNT FOR AN OFN
STX==:777777			;STRUCTURE INDEX IS RH OF SPTO
MSKSTR (STRX,SPTO,STX)		;DEFINE LOADABLE FIELD

;IN DST

BWRBIT==:1B11			;WRITTEN (CHANGED) FROM HOME COPY IN DST

;IN CST0

CORMB==:1B35			;MODIFIED BIT IN CST0
PSTFLD==:<MASKB 33,34>		;MASK FOR SPECIAL PAGE STATE FIELD
DEFSTR CFXRD,CST0,32,18		;FORK WHICH INITIATED READ
PUFLD==:<MASKB 9,32>		;PROCESS USE BITS
AGEMSK==:<MASKB 0,8>		;AGE AND CODE FIELD
MSKSTR CSTAGE,CST0,AGEMSK
MSKSTR CSTPST,CST0,PSTFLD	;SPECIAL PAGE STATE

;SPECIAL PAGE STATE CODES (CSTPST)

PSTAVL==.MCPSA			;AVAILABLE FOR RPLQ WHEN FREED
PSTSPM==.MCPSS			;PLACE ON SPMQ WHEN FREED
PSTOFL==.MCPSO			;OFFLINE - ACTION AS PSTSPM
PSTERR==.MCPSE			;OFFLINE DUE TO ERROR - ACTION AS PSTSPM

;PAGE STATE CODES (CSTAGE)

PSRPQ==:0			;ON REPLACABLE QUEUE
PSDEL==:1			;DELETED (ON DELETED QUEUE)
PSRDN==:2			;READ COMPLETED
PSWIP==:4			;WRITE IN PROGRESS
PSRIP==:6			;READ IN PROGRESS
PSSPQ==:7			;PAGE ON SPECIAL MEMORY QUEUE
PSASN==:10			;PAGE ASSIGNED TO PROCESS IF .GE. PSASN
PSASM==:<FLD(770,AGEMSK)>	;MASK TO TEST FOR ASSIGNED PAGE
;IN CST1

PLKV==:1B11			;PAGE LOCK VALUE IN CST1
PLKMSK==:<MASKB 0,11>		;LOCK COUNT FIELD
MSKSTR PLKCNT,CST1,PLKMSK

;IN CST3

DWRBIT==:1B0			;WRITE BIT IN CST3
SWPERR==:1B1			;SWAP ERROR BIT IN CST3
DSKSWB==:1B2			;SWAP TO DISK REQUESTED
DEFSTR CSTOFK,CST3,14,12	;OWNING FORK INDEX IN CST
DEFSTR CSTLDA,CST3,35,21	;LOCAL DISK ADDRESS FOR PHYSIO
OFNUL==:7777			;NULL VALUE FOR CSTOFK (NO OWNING FORK)

;TRAP STATUS (PAGE FAIL) WORD

TWUSR==:1B0			;USER MODE REFERENCE
TWHPFF==:1B1			;'HARD' FAILURE
TWCOD==:<MASKB 1,5>		;FAIL CODE
TWWRT==:1B5			;WRITE REFERENCE
TWVADR==:<MASKB 13,35>		;VIRTUAL ADDRESS

;EXTENDED ADDRESS MASKS


; SECTION DEFINITIONS

BTMXSZ==077777			;SIZE OF EXTENDED BITMAPS

;IN ALLOCATION OFN TABLES

DEFSTR (ALCWD,ALOC1,35,36)	;ALLOCATION WORD
DEFSTR (ADIRN,ALOC1,17,18)	;DIRECTORY NUMBER (LH)
DEFSTR (ODIRC,ALOC1,35,18)	;OFN DIRECTORY COUNT
DEFSTR (PGLFT,ALOC2,35,36)	;COUNT OF PAGES LEFT (MAYBE NEG)

;IN OFNLEN TABLE

DEFSTR (OFNBSZ,OFNLEN,5,6)	;OFN FILE BYTE SIZE
DEFSTR (OFNBC,OFNLEN,35,30)	;OFN FILE BYTE COUNT
;BITS IN MAP WORD

STGADM==:<MASKB 12,35>		;MASK FOR STORAGE ADDRESSES
SPTM==:<MASKB 18,35>		;MASK FOR SPT INDICES
MSKSTR SPTX,,SPTM		;SPT INDEX IN SHARE OR INDIRECT PTR
DEFSTR IPPGN,,17,9		;WHERE TO FIND PAGE NUMBER IN INDIRECT POINTER
MSKSTR STGADR,,STGADM		;STORAGE ADDRESS FIELD IN PTR OR SPT

PTRCOD==:<MASKB 0,2>		;CODE FIELD IN PAGE POINTER
IMMCOD==:1			;IMMEDIATE POINTER
SHRCOD==:2			;SHARE POINTER
INDCOD==:3			;INDIRECT POINTER
PTPUB==:1B3			;PUBLIC BIT
PTWR==:1B4			;WRITE ACCESS
PTSOFT==:1B5			;SOFTWARE BIT
PTCACH==:1B6			;CACHE BIT
PTCPY==:1B7			;COPY-ON-WRITE (SOFTWARE ONLY)
PTSECM==:1B8			;SECTION IS MAPPED
PTLOK==:1B9			;PAGE IS LOCKED (IMMEDIATE PTR ONLY)

NCORTM==:<MASKB 12,17>		;NOT-CORE TEST MASK IN STORAGE ADR
UAAB==:1B17			;UNASSIGNED BIT IN STORAGE ADR
UAACB==:1B17+1B35		;UNASSIGNED AND COPY
DRMAB==:2B17			;DRUM BIT IN STORAGE ADR
DRMOB==:1B17			;DRUM OVERFLOW (WITH DRMAB) IN STG ADR
DSKAB==:1B14			;DSK BIT IN STORAGE ADR
DSKNB==:1B15			;WITH DSKAB, NEWLY ASSIGNED ADDRESS

;HARDWARE/FIRMWARE REGISTERS

HWRACB==:6			;AC BLOCK FOR PAGING VARIABLES

SPTBR==:3			;SPT BASE REG
CSTBR==:2			;CST BASE REG
CSTMSK==:0			;CST UPDATE MASK
CSTDAT==:1			;CST UPDATE DATA

PTRW==:PM%RD+PM%WT		;NORMAL ACCESS, MONITOR CALL

;PHYSICAL CORE ADDRESS

PGWD==:777			;WORD WITHIN PAGE
PHCPNO==:<MASKB 14,26>		;PHYSICAL CORE PAGE NUMBER

;VIRTUAL ADDRESSES

VPGNO==:37777000			;PAGE NUMBER
LPGNO==:777000			;LOCAL PAGE NUMBER (WITHIN SECTION)
VSECNO==:37B17			;SECTION NUMBER
EXPCBT==:<MASKB 13,35>		;23 BIT PC ADDRESS
EXFLBT==:<MASKB 0,12>		;FLAGS BITS FOR ALL
EXSCBT==:<MASKB 13,17>		;SECTION BITS OF PC
;PAGER-RELATED STORAGE FORMAT DEFINITIONS


;BAT BLOCK DEFINITIONS
;THE BAT BLOCK IS ONE SECTOR IN LENGTH.  IT CONSISTS OF 4 WORDS OF
;HEADER, FOLLOWED BY DATA, TWO WORDS PER ENTRY, INDICATING WHERE THE
;BAD SPOTS ON THE DISK ARE.  WORD ^D126 CONTAINS A SPECIAL CODE, AND
;WORD ^D127 CONTAINS THE SECTOR NUMBER OF THE BAT BLOCK

BATBL1==2			;SECTOR NO. OF FIRST BAT BLOCK

;HEADER

BATNAM==0			;OFFSET OF SIXBIT /BAT/
BATFRE==1			;WORD WITH FREE BLOCKS LEFT
DEFSTR BATFR,BATFRE,17,18	;FIELD WITH FREE COUNT
DEFSTR BTFR2,BATFRE+HBLEN,17,18	;IN THE SECONDARY BLOCK
DEFSTR BTHCT,2,17,9		;NUMBER OF PAIRS ADDED BY MAPPER
DEFSTR BTMCT,3,35,36		;COUNT OF PAIRS ADDED BY MONITOR
DEFSTR BTMC2,HBLEN+3,35,36	;IN SECONDARY BLOCK

;DATA PAIRS

DEFSTR BATNB,0,8,9		;COUNT OF BAD BLOCKS IN PAIR
PUBCNT==22			;RIGHT-MOST BIT OF UNARY UNIT FIELD
DEFSTR BTKNM,0,20,3		;MASSBUS CONTROLLER #
DEFSTR BADT,0,21,1		;TYPE FIELD IN BAT PAIR
DEFSTR APRNM,0,35,14		;APR SERIAL NUMBER FIELD
DEFSTR ADD18,1,35,18		;OLD STYLE DISK ADDRESS OF STARTING SECTOR
DEFSTR ADD27,1,35,27		;NEW STYLE ADDRESS OF STARTING SECTOR

;SPECIAL WORDS AT END OF BAT BLOCK

BATCOD==^D126			;OFFSET FOR UNLIKELY CODE 606060
BATBLK==^D127			;OFFSET FOR SECTOR NUMBER
;VARIABLES USED IN MOUNTING STRUCTURES

HB%PUB==:1B0			;PUBLIC STR
HB%1OK==:1B1			;FIRST HOME BLOCK OK
HB%2OK==:1B2			;SECOND HOME BLOCK OK
HB%HBM==:1B3			;HOME BLOCKS MATCH
HB%MUN==:1B4			;MULTIPLE LOGICAL UNITS IN STR
HB%WLK==:1B5			;THIS UNIT IS WRITE-LOCKED

;INTERNAL BITS RELATING TO STRUCTURES. NOT NECESSARILY FOUND IN THE
;SAME WORD

MI%MSG==:1B11			;"TYPE CTY MESSAGES" FLAG FOR STR MOUNTING
				; ROUTINES CALLED BOTH FROM MSTR AND AT STARTUP
;MI%LIM==:1B5			;STRUCTURE IS LIMITED IN GROWTH
				; DEFINED AS MS%LIM IN MONSYM
MI%ASG==:1B7			;DISK ASSIGNMENTS ARE PROHIBITED (BIT TABLE IS BAD)
MI%MXB==:1B8			;BIT TABLE TOO BIG FOR MONITOR ADDRESS SPACE
;STORAGE DEFINITIONS FOR SYSTEM FORK DATA BASE

DEFSTR HIBFL,JOBNAM,0,1		;FLAG USED BY .HIBER JSYS
DEFSTR DIAFL,JOBNAM,1,1		;FLAG SAYING JOB HAS .DIAG
				; RESOURCES
DEFSTR FKPSB,FKPGS(FX),35,18
DEFSTR FKUPT,FKPGS(FX),17,18
DEFSTR FKQTM,FKQ1(FX),35,36
DEFSTR FKQN,FKQ2(FX),17,18	;QUEUE LEVEL NUMBER
DEFSTR FKLOC,FKQ2(FX),35,18	;LOCATION OF GOLST FORK
DEFSTR FKJSB,FKJOB(FX),35,18
DEFSTR FKJOBN,FKJOB(FX),17,18
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
DEFSTR FKCSIZ,FKWSP(FX),35,18	;CURRENT SIZE (NUMBER ASSIGNED PAGES)
DEFSTR HWPTN,FKCNO(FX),17,18
DEFSTR FSSPTN,FKCNO(FX),17,18		;PSB STACK PAGE FOR KL ONLY

;FLAGS IN BALSET

BSWTB==:1B0			;FORK WAITING
BSNSK==:1B1			;FORK NOSKED OR NOSWAP
BSNUL==:1B2			;DELETED ENTRY
BSHLD==:1B4			;FORK BEING HELD IN BALSET

DEFSTR BSFK,BALSET(P1),35,18	;FORK INDEX OF FORK IN BALSET
DEFSTR BSQTM,BSQ(P1),35,18	;BALSET QUANTUM REMAINING FOR FORK

;STORAGE DEFINITIONS FOR THE PSB

DEFSTR ABFLG,ADRBRK,12,6	;FLAG BITS IN ADDRESS BREAK WORD

;STORAGE DEFINITIONS FOR THE JSB

DEFSTR JSMTR,JSMTA1,35,18	;DEFAULT RECORD SIZE (HARDWARE BYTES)
DEFSTR JSMTM,JSMTA1,17,3	;DEFAULT MODE FOR TRANSFER'S (IRMXXX)
DEFSTR JSMTD,JSMTA1,14,4	;DEFAULT DENSITY
DEFSTR JSMTP,JSMTA1,10,1	;DEFAULT PARITY

MSKSTR (JSDFS,JBFLAG,SP%DFS)	;SPOOLING IS DEFERRED
MSKSTR (JSBAT,JBFLAG,SP%BAT)	;JOB IS BEING CONTROLLED BY BATCH
MSKSTR (JSELO,JBFLAG,SP%ELO)	;JOB EXECUTED LGOUT JSYS
MSKSTR (JSFLO,JBFLAG,SP%FLO)	;JOB FORCED TO LOGOUT BY TOP FK ERROR
MSKSTR (JSOLO,JBFLAG,SP%OLO)	;JOB LOGGED OUT BY OTHER JOB

DEFSTR JBMX,JBFLAG,18,1		;JOB HAS BEEN IN THE MINI-EXEC

;FIELDS IN JOBBIT

LOGIOB==:1B0			;JOB BEING CREATED OR DESTROYED


;DEFINITIONS FOR JFN AREA IN JSB

DEFSTR LNMCNT,0,17,18		;DEPTH COUNT FOR LOGICAL NAMES
DEFSTR LNMIDX,0,18,1		;INDEX INTO LN TABLES
DEFSTR LNMSTP,0,35,17		;STEP COUNTER AT TIME OF CHAINING
DEFSTR LNMLNK,1,17,18		;LINK TO NEXT CHAIN BLOCK 
DEFSTR LNMPNT,1,35,18		;POINTER TO LOGICAL NAME STRING
DEFSTR FILDMS,FILMS1,17,18	;WILD MASK FOR DIRECTORY
DEFSTR FILNMS,FILMS1,35,18	;WILD MASK FOR NAME
DEFSTR FILEMS,FILMS2,17,18	;WILD MASK FOR EXTENSION
DEFSTR STR,FILDEV,17,18		;STRUCTURE NUMBER IN JFN BLOCK
DEFSTR FILUC,FILCOD,17,18	;STRUCTURE UNIQUE CODE IN JFN BLOCK
DEFSTR FILP0,FILCOD,35,18	;PT0 OFN IF A LONG FILE
DEFSTR FILDIR,FILDNM,17,18	;POINTER TO DIRECTORY STRING IN JFN BLOCK
DEFSTR FILATL,FILDNM,35,18	;POINTER TO THE ATTRIBUTE LIST

DEFSTR PRFXS,0,35,9		;SIZE OF ATTRIBUTE STRING BLOCK
DEFSTR PRFXV,0,26,9		;VALUE OF ATTRIBUTE PREFIX
DEFSTR PRFXL,0,17,18		;LINK TO NEXT ATTRIBUTE ON CHAIN

; TIMER block defns

DEFSTR JOBRTP,JOBRTL,35,23	; Ptr to runtime limit block
DEFSTR TIMCNT,JOBRTL,12,13	; # of TIMER clocks in use by job

; Actual TIMER block

DEFSTR TIMLNK,0,35,36		; Link to next block (Q)
DEFSTR TIMTIM,1,35,36		; Time word (when clock should go off)
DEFSTR TIMFRK,2,35,18		; System fork handle to be PSI'd
DEFSTR TIMJOB,2,17,12		; Job # that set the clock
DEFSTR TIMCHN,2,5,6		; Channel for PSI
DEFSTR TIMKNL,3,35,36		; Back link to previous clock
TIMBSZ==:3			; Size of clock (less one, use the hdr)

;STRUCTURE OF ADDRESSES ON PHYSICAL DRUM

MSKSTR DRSEC,,000077		;DRUM SECTOR FIELD
MSKSTR DRTRK,,777700		;DRUM TRACK FIELD
;STANDARD ENTRY SEQUENCE FOR NORMAL (NON-HIGH SPEED) MONITOR CALLS

DEFINE MCENT<>

;PROCEDURE TO ESTABLISH NORMAL JSYS CONTEXT WHEN ENTERING MONITOR
;THROUGH SOME WAY OTHER THAN NORMAL JSYS

DEFINE MCENTR<
	JSP CX,MENT0>

;RETURN FROM NORMAL JSYS CONTEXT.  SKIP (SUCCESS) CASE.
; SEE ERROR RETURNS FOR NOSKIP CASES.

DEFINE SMRETN<
	JRST SKMRTN>

;RETURN GOOD FROM NEW CONVENTION JSYS (ITRAP IS BAD RETURN)

DEFINE MRETNG<
	JRST MRETN>

;INTERNAL MONITOR CALL - DOES NOT CHANGE PREVIOUS CONTEXT.  ADDRESS
;SHOULD BE JSYS ENTRY POINT, E.G. .GTJFN.
;	IMCALL ADDRESS,SECTION

DEFINE IMCALL (ADR,SEC)<
	JSP CX,IMCLL0
	IFB <SEC>,<ADR>
	IFNB <SEC>,<SEC,,ADR>
   >
;MONITOR ERROR CONDITIONS.  ALL TAKE ERROR CODE AS ARGUMENT.
;IF NO ARGUMENT GIVEN, ERROR CODE ASSUMED TO ALREADY BE IN A.
;IF 'EXTRA' APPEARS AS AN ARGUMENT, THEN EXTRA CODE CAN BE
;SPECIFIED WHICH WILL BE EXECUTED BEFORE THE ERROR CODE IS LOADED

;INSTRUCTION TRAP ERROR

DEFINE ITERR (ERN,EXTRA)<
	IFNB <ERN'EXTRA>,<
	JRST [	EXTRA
	   IFNB <ERN>,<MOVEI 1,ERN>
		JSP 2,ITRAP1]>
	IFB <ERN'EXTRA>,<
	JSP 2,ITRAP1>>

;JSYS ERROR RETURN. STORE ERROR CODE IN LSTERR AND RETURN IT IN
;AC1

DEFINE RETERR (ERN,EXTRA)<
	IFNB <ERN'EXTRA>,<
	JRST [	EXTRA
	   IFNB <ERN>,<MOVEI 1,ERN>
		JRST MRETNE]>
	IFB <ERN'EXTRA>,<
	JRST MRETNE>>


;JSYS ERROR RETURN.  STORE ERROR CODE IN LSTERR BUT DO NOT
;RETURN IT IN AN AC

DEFINE EMRETN (ERN,EXTRA)<
	IFNB <ERN'EXTRA>,<
	JRST [	EXTRA
	   IFNB <ERN>,<MOVEI 1,ERN>
		JRST EMRET0]>
	IFB <ERN'EXTRA>,<
	JRST EMRET0>>

;ERRJMP - LOAD ERROR CODE THEN JUMP

DEFINE ERRJMP (ERN,JMP)<
	JRST [	MOVEI 1,ERN
		JRST JMP]>
;LOCAL CALL ERROR RETURN

DEFINE RETBAD (ERN,EXTRA)<
	IFNB <ERN'EXTRA>,<
	JRST [	EXTRA
	   IFNB <ERN>,<MOVEI 1,ERN>
		RET]>
	IFB <ERN'EXTRA>,<
	RET>>

;
; DTB RETURN AND DISPATCH MACROS

DEFINE DTBSKP<	IFIW!RSKP>

DEFINE DTBBAD (A)<
    IFNB <A>,<
	IFIW![MOVEI T1,A
		RET]>
    IFB <A>,<
	 IFIW!R>
>

DEFINE DTBDSP (ROU) <
	IFIW!ROU>

;JSYS ERROR RETURN - UNLOCK JFN, RETURN ERROR CODE IN AC1 AND LSTERR

DEFINE ERUNLK(ERRORN,EXTRA)<
	JRST [	EXTRA
		IFDIF <ERRORN>,<>,<MOVEI A,ERRORN>
		JRST ERUNLD]>
; STANDARD ENTRY MACROS FOR SECTION MANIPULATION

; ENTER SECTION 1
; SE1ENT IS USED TO FORCE THE IMMEDIATE ENTRY INTO SECTION 1
; IT USES THE STACK BUT IT DOES NOT ALTER ANYTHING.  IT ASSUMES
; IDENTICAL MAPPING.

DEFINE SE1ENT<
	CALL SECALL>

; SE1CAL IS USED TO FIXUP A SUBROUTINE CALL ON ENTRY TO SECTION 1
;IT ASSUMES THAT THERE IS A RETURN PC ON THE STACK THAT NEEDS
;TO BE CLEARED OF THE FLAGS BITS SO IT WILL RETURN WITHOUT
;A SECTION GREATER THAN 27 BUGCHECK.

DEFINE SE1CAL<
	CALL SECALE>

; ENTER SECTION 0

; ENTER SECTION 0 IS USED TO GET FROM A NON-ZERO SECTION INTO
; SECTION 0 IT ASSUMES THAT THERE IS A STACK.

DEFINE SE0ENT<
	CALL SE0CAL>
;SCHEDULING CONTROL MACROS

DEFINE NOSKED<
	JSP CX,NOSKD0>

DEFINE OKSKED<
	JSP CX,OKSKD0>

;FLAG WAITING FORK NOW UNBLOCKED

DEFINE FSKED<
	AOS QSKED>

;USED INTERNALLY BY SCHEDULER

DEFINE ENTSKD<
	XPCW ENSKR>

;VARIOUS CALLS TO SCHEDULER

;NORMAL DISMISS

DEFINE MDISMS<
	JSP CX,EDMS0>

;DISMISS AND HOLD IN BALSET FOR SPECIFIED TIME-- USED FOR BLOCKS
;WHICH ARE EXPECTED TO BE SHORT
; HT = TIME IN MILLISECONDS

DEFINE HDISMS (HT)<
	MOVEI 2,HT
	JSP CX,EDMSH>

;PAGE FAULT DISMISS

DEFINE PDISMS<
	JSP CX,SCHEDP>

;PAGE FAULT DISMISS PLUS OKSKED

DEFINE RDISMS<
	JSP CX,SCHEDR>

;WAIT 100 MS IN BALSET, RETURN .-1

DEFINE CBLK0<
	JSP CX,BLOCK0>

;WAIT 100 MS NOT IN BALSET, RETURN .-1

DEFINE CBLK1<
	JSP CX,BLOCK1>
;NOSKED AND OKSKED FOR CODE POSSIBLY BEING RUN UNDER SCHEDULER

DEFINE NOSKD1<
	JSP CX,NOSK11>

DEFINE OKSKD1<
	JSP CX,OKSK11>

;PSI CONTROL

DEFINE NOINT<
	AOS INTDF>

DEFINE OKINT<
	XCT INTDFF>

;LET PSI SEE INTERRUPT REQUESTS

DEFINE CHKINT<
	AOS SKEDF3
	ISB SCDCHN>

DEFINE TSTINT<
	SKIPE PSIBW>

;STANDARD LOCK

DEFINE LOCK(LCK,FAIL)<
	AOSE LCK
	IFB <FAIL>,<
	  CBLK1	>
	IFNB <FAIL>,<
	  FAIL>>

DEFINE UNLOCK(LCK)<
	SETOM LCK>
;MACROS FOR DEFINING BUGHLT AND BUGCHK STRINGS

;THIS IS THE MACRO THAT APPEARS IN THE CODE.  ITS FIRST ARG IS INF, CHK 
;OR HLT, AND CAUSES ASSEMBLY OF JSR BUGINF, JSR BUGCHK OR JSR BUGHLT
;RESPECTIVELY.  ITS SECOND ARGUMENT IS A GLOBAL SYMBOL WHICH IS TYPED
;OUT AT THE TIME OF THE CHECK.   ITS THIRD ARGUMENT IS A STRING DEFINING
;THE PROBLEM REPRESENTED BY THE CHECK. THE FORTH ARGUMENT IS AN OPTIONAL
;LIST OF REGISTERS TO BE TYPED OUT AND TO BE PUT IN THE SYSERR REPORT.

DEFINE BUG (TYP,TAG,STR,REGS,%NAM,%STR)<
	XCT [TAG::	JSR BUG'TYP
		IRP REGS,<
		Z REGS>
		SIXBIT /TAG/]
	.PSECT BGSTR
%STR:	ASCIZ \STR\
	.ENDPS BGSTR
	.PSECT BGPTR
	XWD TAG,%STR
	.ENDPS BGPTR
>
;JSVAR - JSB VARIABLE FACILITY

;USES REGISTER P6 AS BASE POINTER TO VARIABLES ASSIGNED IN THE JSB
;ALLOWS VARIABLES TO BE USED WITHIN LOWER LEVEL ROUTINES
;AND AFTER OTHER THINGS HAVE BEEN PUSHED ON STACK.
;N.B. USES P6 AS FRAME POINTER - MUST NOT BE CHANGED WHILE
;VARIABLES IN USE.


DEFINE JSVAR (VARS,ERET)<
	..TRR==10		;;REMEMBER CURRENT RADIX
	RADIX 8
	..NV==0			;;INIT COUNT OF JSB WORDS
	IRP VARS,<
	  .TRV1 (VARS)>		;;PROCESS LIST
	JSP CX,.JSSET##		;;ALLOCATE JSB SPACE, SETUP P6
    IFB <ERET>,< ..NV+1,,0 >
    IFNB <ERET>,< ..NV+1,,ERET >
	RADIX ..TRR		;;RESTORE RADIX
	PURGE ..TRR,..NV>	;;CLEAN UP
;USAGE FILE / QUEUE DEFINTIONS

;USAGE QUEUE FOR JOB 0

DEFSTR (UQFCN,0,17,18)		;FUNCTION
DEFSTR (UQLEN,0,35,18)		;LENGTH
DEFSTR (UQLNK,1,35,36)		;LINK TO NEXT OR 0

UQDAT==:2			;OFFSET TO DATA

CKPSIZ==:PGSIZ/10		;ALLOW 8 JOBS/PAGE
				;IE 64 WORDS
; Bit definitions in sts (also filsts)

GFLG(OPNF,L,STS,400000)		; File is open
GFLG(READF,L,STS,200000)	; File is ok to read
GFLG(WRTF,L,STS,100000)		; File is ok to write
GFLG(XCTF,L,STS,040000)		; File is ok to execute
GFLG(RNDF,L,STS,020000)		; File is ok to reset pointer (i.e. not append)
GFLG(NONXF,L,STS,010000)	; NON-EXISTENT FILE, DELETE FDB ON RLJFN
GFLG(NWTF,L,STS,004000)		; NO-WAIT ON DUMPI/O
GFLG(LONGF,L,STS,002000)	; File is a long file
GFLG(EOFF,L,STS,001000)		; End of file if read attempted
GFLG(ERRF,L,STS,000400)		; Bytes read may be erroneous
GFLG(NAMEF,L,STS,000200)	; Name is associated with this jfn
GFLG(ASTF,L,STS,000100)		; A * was typed in
GFLG(ASGF,L,STS,000040)		; Jfn is being assigned
GFLG(BLKF,L,STS,000040)		; SERVICE ROUTINE WANTS TO BLOCK
				; SHARES A BIT POSITON WITH ASGF
GFLG(HLTF,L,STS,000020)		; Halt if i-o error
GFLG(WNDF,L,STS,000010)		; A window page has been set up
GFLG(ENDF,L,STS,000004)		; File is past end of maximum length
GFLG(TRNSF,L,STS,000004)	; BIT TIME-SHARED WITH ENDF TO SAY
				; THE JFN IS IN A TRANSITIONAL STATE
				; AND MAY NOT BE ACCESSED
GFLG(SIZF,L,STS,000002)		; Illegal to change size of byte
GFLG(FRKF,L,STS,000001)		; File is restricted to fork in lh(filver)

;NOTE: THIS WORD CONTAINS ALL THE BITS THAT ARE KNOWN TO BE DOCUMENTED FOR
;THE GTSTS JSYS.  ALL OTHER BITS ARE DISCARDED BEFORE RETURNING THE FILE'S
;STATUS.  THEREFORE, WHEN A NEW BIT IS ADDED TO THE STATUS WORD AND IS
;TO BE DOCUMENTED, IT MUST BE ADDED TO THIS WORD

DOCSTS==:OPNF!READF!WRTF!XCTF!RNDF!LONGF!EOFF!ERRF!NAMEF!ASTF!ASGF!HLTF!FRKF!1B18!17B35

MSKSTR(PASLSN,STS,1B18)		;SET TO SKIP LINE NUMBER CHECKING ON ASCII FILES
MSKSTR(SKIPBY,STS,1B19)		;SET BY BYTINA TO REMEMBER IT HAS TO DISCARD
				;  A BYTE ON THE NEXT CALL
GFLG(XQTAF,R,STS,1B20)		;QUOTA EXCEEDED FLAG
GFLG(FILDUD,R,STS,40000)	;SUPPRESS DDMP ACTION IF SET
GFLG(FILINP,R,STS,20000)	;DIRECTION OF I/O IS INPUT
GFLG(FILOUP,R,STS,10000)	;DIRECTION OF I/O IS OUTPUT
MSKSTR(IOMODE,STS,17B35)	;MODE FILE IS OPENNED IN

; In flags

GFLG(OUTPF,L,F,400000)		; Bit 0 for output use
GFLG(NEWNF,L,F,200000)		; Bit 1 new file name only
GFLG(OLDNF,L,F,100000)		; Bit 2 old file only
GFLG(PONFF,L,F,040000)		; Bit 3 print "old file"/"new file" etc.
GFLG(CFRMF,L,F,020000)		; Bit 4 confirmation required
GFLG(TMPFF,L,F,010000)		; Bit 5 temporary file
GFLG(RTYPF,L,F,004000)		; Bit 6 retype whole file name when complete
GFLG(NACCF,L,F,002000)		; Bit 7 no access to other forks
GFLG(IGDLF,L,F,001000)		; Bit 8 ignore deleted bit in files
GFLG(JFNF,L,F,000400)		; Bit 9 use jfn given in e+11
GFLG(JFNAF,L,F,000200)		; Bit 10 use alternate if jfn in e+11 na
GFLG(ASTAF,L,F,000100)		; Asterisk allowed
GFLG(OSTRF,L,F,000040)		; Output stars allowed
GFLG(RLHFF,L,F,000020)		; RETURN LEFT HALF FLAGS
GFLG(PHYOF,L,F,000010)		; PHYSICAL (NOT LOGICAL) ONLY DEVICE FIELD
GFLG(JFNRD,L,F,000004)		;RETURN BUFFER SPECIFIED
GFLG(FILF,L,F,000002)		; If short form, 2 has xwd infile,outfile
GFLG(SHTF,L,F,000001)		; Dummy bit to cause 1 to be taken as flags
; Flags in rh of f used by gtjfn

GFLG(DEVF,R,F,400000)		; Device is specified
GFLG(DIRF,R,F,200000)		; Directory specified
GFLG(NAMF,R,F,100000)		; Name specified
GFLG(EXTF,R,F,040000)		; Extension specified
GFLG(VERF,R,F,020000)		; Version specified
GFLG(PRTF,R,F,010000)		; Protection specified
GFLG(ACTF,R,F,004000)		; Account specified
GFLG(DEVTF,R,F,002000)		; Device was typed in
GFLG(DIRTF,R,F,001000)		; Directory was typed in
GFLG(NAMTF,R,F,000400)		; Name was typed in
GFLG(EXTTF,R,F,000200)		; Extension was typed in
GFLG(VERTF,R,F,000100)		; Version was typed in
GFLG(ACTTF,R,F,000040)		; Account was typed in
GFLG(PRTTF,R,F,000020)		; Protection was typed in
GFLG(TMPTF,R,F,000010)		; Temporary flag was set by type in
GFLG(CNTVF,R,F,000004)		; Control-v typed
GFLG(NNAMF,R,F,000002)		; No name device
GFLG(NVERF,R,F,000001)		; No versions etc.

; Flags in rh of F1 used locally

GFLG(MTCHF,R,F1,400000)		; Match seen during lookup ooerations
GFLG(AMBGF,R,F1,200000)		; More than one match seen during operations
GFLG(OCTF,R,F1,100000)		; Octal number is being collected
GFLG(NEGF,R,F1,040000)		; Minus sign was typed
GFLG(UNLKF,R,F1,020000)		; Used by directory to remember to unlock
GFLG(STRF,R,F1,010000)		; String input exists
GFLG(NREC,R,F1,004000)		; Don't perform recognition
GFLG(NREC1,R,F1,002000)		; Used by lookup routines as for norec
GFLG(DIRXF,R,F1,001000)		; Directory was stepped
GFLG(NAMXF,R,F1,000400)		; Name was stepped
GFLG(DIRFF,R,F1,000200)		; Directory is being specified
GFLG(EXTFF,R,F1,000100)		; Extension is being specified
GFLG(PRTFF,R,F1,000040)		; Protection is being specified
GFLG(ACTFF,R,F1,000020)		; Account is being specified
GFLG(NUMFF,R,F1,000010)		; Number is being collected
GFLG(KEYFF,R,F1,000004)		; Looking for t, p, a
GFLG(NEWF,R,F1,000002)		; A new file name was created
GFLG(NEWVF,R,F1,000001)		; A new version of an existing file was created

;FLAGS USED IN LOGNAM ONLY

GFLG(PFXFF,R,F1,000001)		; ENTERING A PREFIX FIELD
GFLG(ATRFF,R,F1,000002)		; ENTERING AN ATTRIBUTE VALUE
; Flags in lh of f1 (scan control)

				; B0 RESERVED FOR * DEVICE
GFLG(STRSF,L,F1,200000)		; SCAN ALL STRUCTURES
GFLG(DIRSF,L,F1,100000)		; Scan directories <*>
GFLG(NAMSF,L,F1,040000)		; Scan names (^*.)
GFLG(EXTSF,L,F1,020000)		; Scan extensions (^.*)
GFLG(VERSF,L,F1,010000)		; Scan versions (;*)
GFLG(RVERF,L,F1,004000)		; Most recent version specified
GFLG(HVERF,L,F1,002000)		; New version specified
GFLG(LVERF,L,F1,001000)		; Lowest version specified
GFLG(FXPRT,L,F1,000400)		; ;P SPECIFIED
GFLG(FXACT,L,F1,000200)		; Account specified with *'s
GFLG(FXTMP,L,F1,000100)		; ;t specified with *'s
GFLG(EXTXF,L,F1,000040)		; Extension was stepped

GFLG(TCONF,L,F1,000010)		; SAW CONFIRMING TERMINATOR
GFLG(DFSTF,L,F1,000004)		; * in default string
GFLG(STARF,L,F1,000002)		; Set by *
GFLG(STEPF,L,F1,000001)		; Step flag

;BITS IN LOCAL FLAG WORD USED BY GTJFN
WLDF==:1B0			; STRING IS A WILD MASK
DWLDF==:1B1			; DEFAULT STRING IS WILD
VERFF==:1B2			;COLLECTING A VERSION
SAWALT==:1B3			;SAW AN ALTMODE WHILE SCANNING
SWBRKT==:1B4			;SAW A SQUARE BRACKET FOR DIRECTORY
SAWCR==:1B5			;SAW A CR
SAWSLN==:1B6			;SAW A SYSTEM LOGICAL NAME
TMPFL==:1B7			;LAST ATTRIBUTE WAS ;T
PREFXF==:1B8			;GATHERING A PREFIX OF AN ATTRIBUTE
ARBATF==:1B9			;GATHERING THE DATA PART OF AN ATTRIBUTE
ATRF==:1B10			;HAVE SEEN AN ATTRIBUTE
RIEFLG==:1B11			;RETURN ON EMPTY FLAG
SAWF==:1B12			;SAW A CONTROL-F



;FLAGS IN DEVCHR

DV%OPN==:1B5			; FILE OPEN ON DEVICE

;FLAGS IN JOBNAM

JWAKEF==:1B0			;WAKEUP SIGNAL TO THIBR

;FLAGS IN REMFGS

GCF1==:1B0		;FULL GC DONE SINCE LAST REMBSJ/REMBSF

;BITS IN STARTF (SYSTEM STARTUP FLAG WORD)

MI%RFS==:1B0		;REFRESH BEING DONE
MI%RCN==:1B1		;RECONSTRUCTION OF ROOT-DIRECTORY
MI%HMB==:1B2		;HOME BLOCKS WERE REWRITTEN
MI%BTB==:1B3		;BIT TABLE BEING REBUILT
MI%XTB==:1B4		;INDEX TABLE MUST BE REBUILT
;PROCEDURE FOR DEFINING BLOCKS OF NAMED ITEMS

DEFINE DOPC (MAC,IVAL)<
   DEFINE MAC (NAM,SIZ)<
	NAM=:..PC
	..PC=..PC+SIZ>
   DEFINE S'MAC (NAM,SIZ)<
	NAM==:..PC
	..PC=..PC+SIZ>
   ..PC==IVAL
>

; Jsys Trap Block definitions

	DOPC (JTB,0)		;

JTBTL==:<1000+^D35>/^D36	; Length of JSYS trap bit tables
SJTB  JTBMN,1			; RH: forkn of immediate monitor
SJTB  JTBAL,JTBTL		; Bit table of all JSYSes being trapped
SJTB  JTBIM,JTBTL		; Bit table of JSYSes trapped by im. mon.
SJTB  JTBSIZ,0			; Length of Jsys Trap Block

; The length of the JTBs is 31 words, hence there are 33 blocks in 2 pages
; with one word left over, the first word of the JTB page is used as a
; free storage bit table. The actual number of blocks needed is, worst case,
; one per fork (NUFKS) so the number of page needed and the bit table should
; be based on the following calculations.
; NJTBS=<NUFKS*JTBSIZ+1000>/1000	;number of JTB pages needed

DEFSTR JTIMP,JTBMN,35,18	; immed mon pointer (forkn of im. mon.)
DEFSTR JTMCN,JTMNW,17,6		; monitor's channel to send PSI
DEFSTR JTMNI,JTMNW,35,18	; forkn of the monitor we interrupted
DEFSTR JTJNO,KIMUU1+1,35,18	; Jsys number for last USER jsys
DEFSTR JTFRK,JTTFK,35,18	; Trapped forkn; set by trapped fork

; Device dispatch indices

	DOPC (DTB,0)

SDTB DLUKD,1			; Directory setup routine
SDTB NLUKD,1			; Name lookup
SDTB ELUKD,1			; Extension lookup
SDTB VLUKD,1			; Version lookup
SDTB PLUKD,1			; Protection insertion
SDTB ALUKD,1			; Account insertion
SDTB SLUKD,1			; Status insertion (temporary permanent etc)
SDTB OPEND,1			; Open file
SDTB BIND,1			; Byte input
SDTB BOUTD,1			; Byte output
SDTB CLOSD,1			; Close file
SDTB REND,1			; Rename
SDTB DELD,1			; Delete file
SDTB DMPID,1			; Dump mode input
SDTB DMPOD,1			; Dump mode output
SDTB MNTD,1			; Mount device
SDTB DSMD,1			; Dismount device
SDTB INDD,1			; Initialize directory of device
SDTB MTPD,1			; Do mtape operation
SDTB GDSTD,1			; Get device status
SDTB SDSTD,1			; Set device status
SDTB RECOUT,1			; FORCE RECORD OUT, (SOUTR JSYS)
SDTB RFTADD,1			; READ FILE TIME AND DATE
SDTB SFTADD,1			; SET FILE TIME AND DATE
SDTB JFNID,1			; SET JFN FOR INPUT
SDTB JFNOD,1			; SET JFN FOR OUTPUT
SDTB ATRD,1			; CHECK ATTRIBUTE
;STANDARD CALL TO UNLOCK MAPPED DIRECTORY

DEFINE ULKDIR<
	CALL ULKMD0>

;DIRECTORY RELATED DEFINITIONS
DRMXSZ==500			;NUMBER OF PAGES FOR EXTENDED
MXDRNM==100			;NUMBER OF PAGES FOR IDXTAB
.IDXLN==2			;NUMBER OF ELEMENTS PER ENTRY IN INDEX

;NOTE: CHECKD CONTAINS A COPY OF THESE DEFINITIONS; WHEN CHANGING
;THEM HERE, CHANGE THEM IN CHECKD ALSO

;DIRECTORY HEADER (FOR PAGE 0; FIRST 3 WORDS ARE REPEATED ON
;SUBSEQUENT PAGES)

DEFSTR DRTYP,0,17,18		;BLOCK TYPE OF DIRECTORY (.TYDIR)
DEFSTR DRVER,0,23,6		;VERSION # OF DIRECTORY
DEFSTR DRHLN,0,35,12		;LENGTH OF HEADER AREA
DEFSTR DRRPN,1,17,18		;RELATIVE PAGE # WITHIN DIRECTORY
DEFSTR DRNUM,1,35,18		;DIRECTORY NUMBER
DEFSTR DRFFB,.DRFFB,35,36	;FIRST FREE BLOCK ON THIS PAGE
DEFSTR DRSBT,3,35,36		;ADDRESS OF BOTTOM OF SYMBOL TABLE
DEFSTR DRSTP,4,35,36		;ADDRESS OF TOP OF SYMBOL TABLE
DEFSTR DRFTP,5,35,36		;ADDRESS OF LAST USED WORD + 1
DEFSTR DRFBT,6,35,36		;POINTER TO FREE POOL BIT TABLE
DEFSTR DRDPW,7,35,36		;DEFAULT FILE PROTECTION
DEFSTR DRPRT,10,35,36		;DEFAULT DIRECTORY PROTECTION
	DEFSTR DRPOW,10,23,6	;OWNER FIELD
	DEFSTR DRPGP,10,29,6	;GROUP FIELD
	DEFSTR DRPWL,10,35,6	;WORLD FIELD
DEFSTR DRDBK,11,35,36		;BACKUP SPECIFICATION
DEFSTR DRLIQ,12,35,36		;LOGIN DISK QUOTA
DEFSTR DRLOQ,13,35,36		;LOGGED OUT QUOTA
DEFSTR DRDCA,14,35,36		;CURRENT DIR ALLOCATION
DEFSTR DRNAM,15,35,36		;POINTER TO NAME STRING
DEFSTR DRPSW,16,35,36		;POINTER TO PASSWORD STRING
DEFSTR DRPRV,17,35,36		;PRIVILEGE BITS
DEFSTR DRMOD,20,35,36		;MODE BITS
DEFSTR DRDAT,21,35,36		;TIME AND DATE OF LAST LOGIN
DEFSTR DRUGP,22,35,36		;USER GROUPS
DEFSTR DRDGP,23,35,36		;DIRECTORY GROUPS
DEFSTR DRUDT,24,35,36		;LAST UPDATE TIME OF DIR
DEFSTR DRSDC,25,35,18		;COUNT OF SUBDIRECTORIES
DEFSTR DRSDM,25,17,18		;MAXIMUM NUMBER OF SUBDIRECTORIES
DEFSTR DRCUG,26,35,36		;CRDIR ALLOWED SPECIFYING THESE USER GRPS
DEFSTR DRACT,27,35,36		;POINTER TO DIRECTORY DEFAULT ACCOUNT

	.DIHL0==:100		;LENGTH OF DIR PAGE 0 HEADER (+ SPARES)
	.DIHL1==:3		;LENGTH OF HEADER FOR DIR PAGES 1 & UP
	.DRFFB==:2		;OFFSET OF FIRST FREE BLOCK POINTER

;GENERAL FORMAT FOR ALL BLOCKS

DEFSTR BLKTYP,0,17,18		;TYPE CODE FOR STANDARD FORMAT BLOCKS
				;NMTYP, EXTYP, ACTYP, SYMTY, DRTYP,
				;UNTYP, FBTYP, AND FRTYP
DEFSTR BLKVER,0,23,6		;VERSION NUMBER OF BLOCK
DEFSTR BLKLEN,0,35,12		;LENGTH OF STANDARD FORMAT BLOCK

;SYMBOL TABLE

;	SYMBOL TABLE HEADER

DEFSTR SYMTY,0,17,18		;SYMBOL TABLE TYPE CODE (.TYSYM)
DEFSTR SYMDN,0,35,18		;DIR NUMBER OF SYMBOL TABLE

;	SYMBOL TABLE ENTRIES

	SY%ET==:7B2		;SYMBOL TABLE ENTRY TYPE MASK
	.SYMAD==:0		;POSITION OF ADDRESSES IN SYMBOL TABLE
	.SYMVL==:1		;POSITION OF SYMBOL HASH VALUE WORD
	.SYMLN==:2		;# OF WORDS IN A SYMBOL TABLE ENTRY
DEFSTR SYMET,.SYMAD,2,3		;SYMBOL TABLE ENTRY TYPE
DEFSTR SYMAD,.SYMAD,35,33	;ADDRESS OF BLOCK IN DIR FOR THIS SYM
DEFSTR SYMVL,.SYMVL,35,36	;FIRST 5 CHARACTERS OF NAME OR ACCOUNT
	.ETNAM==:0		;ENTRY TYPE OF NAME
	.ETUNS==:2		;ENTRY TYPE OF USER NAME
	.ETACT==:4		;ENTRY TYPE OF ACCOUNT

;NAME BLOCK

DEFSTR NMTYP,0,17,18		;NAME BLOCK TYPE CODE (.TYNAM)
DEFSTR NMLEN,0,35,12		;LENGTH OF NAME BLOCK
DEFSTR NMVAL,1,35,36		;FIRST 5 CHARACTERS OF NAME STRING

;EXTENSION BLOCK

DEFSTR EXTYP,0,17,18		;EXTENSION BLOCK TYPE CODE (.TYEXT)
DEFSTR EXLEN,0,35,12		;LENGTH OF EXTENSION BLOCK

;ACCOUNT STRING BLOCK

DEFSTR ACTYP,0,17,18		;ACCOUNT STRING BLOCK TYPE CODE (.TYACT)
DEFSTR ACLEN,0,35,12		;LENGTH OF ACCOUNT BLOCK
DEFSTR ACSHR,1,35,36		;SHARE COUNT OF ACCOUNT STRING
	.ACVAL==2		;START OF ACCOUNT STRING
DEFSTR ACVAL,.ACVAL,35,36	;FIRST 5 CHARACTERS OF ACCOUNT STRING

;USER NAME STRING BLOCK

DEFSTR UNTYP,0,17,18		;USER STRING BLOCK TYPE CODE (.TYUNS)
DEFSTR UNLEN,0,35,12		;LENGTH OF USER NAME BLOCK
DEFSTR UNSHR,1,35,36		;SHARE COUNT OF USER NAME STRING
DEFSTR UNVAL,2,35,36		;FIRST 5 CHARS OF USER NAME STRING

;FREE POOL BLOCK

	.FRNFB==:1		;OFFSET OF NEXT FREE BLOCK POINTER
	.FRHLN==:2		;LENGTH OF FREE BLOCK HEADER
DEFSTR FRTYP,0,17,18		;FREE BLOCK TYPE CODE (.TYFRE)
DEFSTR FRVER,0,23,6		;VERSION # OF FREE BLOCK
DEFSTR FRLEN,0,35,12		;LENGTH OF THIS FREE BLOCK
DEFSTR FRNFB,.FRNFB,35,36	;POINTER TO NEXT FREE BLOCK

;FDB DEFINITIONS

DEFSTR FBTYP,.FBHDR,17,18	;FDB TYPE CODE (.TYFDB)
DEFSTR FBVER,.FBHDR,23,6	;VERSION # OF FDB (0 := PRE-V2)
DEFSTR FBLEN,.FBHDR,35,12	;LENGTH OF FDB
DEFSTR FBFLG,.FBCTL,35,36	;FLAGS
	MSKSTR (FBTMP,.FBCTL,FB%TMP)
	MSKSTR (FBPRM,.FBCTL,FB%PRM)
	MSKSTR (FBNEX,.FBCTL,FB%NEX)
	MSKSTR (FBDEL,.FBCTL,FB%DEL)
	MSKSTR (FBNXF,.FBCTL,FB%NXF)
	MSKSTR (FBLNG,.FBCTL,FB%LNG)
	MSKSTR (FBSHT,.FBCTL,FB%SHT)
	MSKSTR (FBDIR,.FBCTL,FB%DIR)
	MSKSTR (FBNOD,.FBCTL,FB%NOD)
DEFSTR FBEXL,.FBEXL,35,33	;LINK TO NEXT EXTENSION FDB
DEFSTR FBADR,.FBADR,35,36	;DISK ADDRESS OF INDEX BLOCK
DEFSTR FBPRT,.FBPRT,35,36	;PROTECTION OF THE FILE
DEFSTR FBCRE,.FBCRE,35,36	;TIME AND DATE OF LAST WRITE
DEFSTR FBLW0,.FBUSE,17,18	;VER #0 LAST WRITER DIR #
DEFSTR FBAT0,.FBUSE,35,18	;VER #0 AUTHOR DIR #
DEFSTR FBAUT,.FBAUT,35,36	;POINTER TO AUTHOR STRING
DEFSTR FBLWR,.FBLWR,35,36	;POINTER TO LAST WRITER STRING
DEFSTR FBGEN,.FBGEN,17,18	;GENERATION # OF FILE
DEFSTR FBDRN,.FBDRN,35,18	;DIR NUMBER (IF THIS IS A DIR FILE)
DEFSTR FBACT,.FBACT,35,36	;ACCOUNT # OR POINTER TO ACCOUNT BLOCK
DEFSTR FBGNR,.FBBYV,5,6		;GENERATION RETENTION COUNT
DEFSTR FBBSZ,.FBBYV,11,6	;BYTE SIZE OF DATA IN FILE
DEFSTR FBMOD,.FBBYV,17,4	;MODE OF LAST WRITE TO FILE
DEFSTR FBNPG,.FBBYV,35,18	;# OF PAGES IN FILE
DEFSTR FBSIZ,.FBSIZ,35,36	;# OF BYTES IN THE FILE
DEFSTR FBCRV,.FBCRV,35,36	;CREATION TIME AND DATE OF FILE
DEFSTR FBWRT,.FBWRT,35,36	;DATE AND TIME OF LAST USER WRITE
DEFSTR FBREF,.FBREF,35,36	;TIME AND DATE OF LAST NON-WRITE ACCESS
DEFSTR FBNWR,.FBCNT,17,18	;# OF WRITES TO FILE
DEFSTR FBNRF,.FBCNT,35,18	;# OF REFERENCES TO FILE
DEFSTR FBBK0,.FBBK0,35,36	;BACKUP WORD 0
DEFSTR FBBK1,.FBBK1,35,36	;BACKUP WORD 1
DEFSTR FBBK2,.FBBK2,35,36	;BACKUP WORD 2
DEFSTR FBBK3,.FBBK3,35,36	;BACKUP WORD 3
DEFSTR FBBK4,.FBBK4,35,36	;BACKUP WORD 4
DEFSTR FBUSW,.FBUSW,35,36	;USER SETTABLE WORD
DEFSTR FBGNL,.FBGNL,35,33	;LINK TO NEXT GENERATION
DEFSTR FBNAM,.FBNAM,35,36	;POINTER TO NAME STRING
DEFSTR FBEXT,.FBEXT,35,36	;POINTER TO EXTENSION STRING

	.FBLN0==:30		;MINIMUM LENGTH OF AN FDB

;BLOCK TYPE CODES - FOUND IN LEFT HALF OF WORD 0 OF THE BLOCK

	.TYNAM==:400001		;BLOCK TYPE OF NAME STRING
	.TYEXT==:400002		;BLOCK TYPE OF EXTENSION STRING
	.TYACT==:400003		;BLOCK TYPE OF ACCOUNT STRING
	.TYUNS==:400004		;BLOCK TYPE OF USER NAME STRING
	.TYFDB==:400100		;BLOCK TYPE OF FDB
	.TYLAC==:400200		;BLOCK TYPE OF LEGAL ACCOUNT LIST
	.TYDIR==:400300		;BLOCK TYPE OF DIRECTORY BLOCK
	.TYSYM==:400400		;BLOCK TYPE OF SYMBOL TABLE
	.TYFRE==:400500		;BLOCK TYPE OF BLOCK ON THE FREE LIST
	.TYFBT==:400600		;BLOCK TYPE OF FREE STORAGE BIT TABLE
	.TYGDB==:400700		;BLOCK TYPE OF GROUP DESCRIPTOR BLOCK
;ENTRIES IN THE INDEX TABLE

DEFSTR IDXFB,0,35,18		;POINTER TO FDB FOR THIS DIRECTORY
DEFSTR IDXSD,0,17,18		;SUPERIOR DIRECTORY
DEFSTR IDXIB,1,35,30		;DISK ADDRESS OF INDEX BLOCK OF DIR
	IDXFLP==5		;BIT POSITION OF IDXFL IN DEFSTR
DEFSTR IDXFG,1,IDXFLP,6		;FLAGS
	IDX%IV==:1		;THIS IDX ENTRY IS INVALID
MSKSTR (IDXIV,1,<<IDX%IV>B<IDXFLP>>)

; INDEX TABLE FIELDS IN THE PSB

DEFSTR (CURUC,STRINF,17,18)	;UNIQUE CODE OF CURRENTLY MAPPED INDEX FILE
DEFSTR (IDXFLG,STRINF,18,1)	;0 IF NO INDEX FILE MAPPED, ELSE 1
DEFSTR (CURSTR,STRINF,35,17)	;STR # OF CURRENTLY MAPPED INDEX FILE

DEFSTR DIRLA,0,35,33		;ADDRESS POINTED TO BY DIRLOC

;THESE DEFINITIONS APPLY TO DROFN, WHICH IS SET UP WHENEVER A DIRECTORY
;IS MAPPED

DEFSTR (DRLFDB,DROFN,17,18)	;ADR OF LAST FDB CHECKED BY FDBCHK
DEFSTR (DRROF,DROFN,18,1)	;SET IF UNMAPD SHOULD RELEASE OFN
DEFSTR (DIROFN,DROFN,35,17)	;OFN OF CURRENTLY MAPPED DIR
; JSB FIELDS RELATED TO STRUCTURES

;THESE DEFSTRS RELATE TO THE 3-WORD BLOCKS CONTAINED IN JSSTR IN THE JSB.
;EACH BLOCK CONTAINS THE STRUCTURE UNIQUE CODE TO WHICH IT APPLIES.

DEFSTR (JSSDM,JSSTRF,0,1)	;STRUCTURE IS DISMOUNTED
DEFSTR (JSMCI,JSSTRF,1,1)	;MOUNT COUNT HAS BEEN INCREMENTED FOR THIS STR
DEFSTR (JSXCL,JSSTRF,2,1)	;STRUCTURE IS MOUNTED EXCLUSIVE BY THIS JOB
JSFRST==:777777			;VALUE IN STRUCTURE NUMBER FIELD WHEN SLOT
				; IS FREE
MSKSTR (JSSTN,JSSTRF,JSFRST)	;STRUCTURE UNIQUE CODE
DEFSTR (JSGRP,JSGRPS,35,36)	;AOBJN POINTER TO USER GROUPS
DEFSTR (JSADN,JSADIR,35,18)	;"ACCESS'ED" DIRECTORY # FOR THIS STRUCTURE

;THESE DEFSTRS RELATE TO THE CONNECTED STRUCTURE AND DIRECTORY FOR THE JOB

DEFSTR (JSUC,JSBSDN,17,18)	;CONNECTED STRUCTURE UNIQUE CODE
DEFSTR (JSDIR,JSBSDN,35,18)	;CONNECTED DIRECTORY NUMBER
DEFSTR (JSCDS,JSBCDS,35,18)	;POINTER TO CONNECTED DIR NAME STRING
DEFSTR (JSCDF,JSBCDS,0,1)	;0=NO VALID STRING POINTER IN JSCDS
				;1=STRING POINTER IN JSCDS IS VALID

;DEFINITIONS OF DECNET QUOTA WORD

DEFSTR (DCMAX,DCNCNT,17,18)	;MAX LINKS THIS JOB CAN HAVE
DEFSTR (DCCUR,DCNCNT,35,18)	;CURRENT COUNT OF OPEN LINKS

;DEFINITIONS FOR ATS QUOTA WORD

DEFSTR (JSAMX,JSATCT,17,18)	;MAXIMUM HTN'S THIS JOB CAN HAVE
DEFSTR (JSANO,JSATCT,35,18)	;NUMBER OF HTN'S THIS JOB HAS NOW

;BITS PASSED BETWEEN ATS ROUTINES TO INDICATE STATUS - CODE IN ATSSRV
;SETS THEM, CODE IN FILATS READS THEM

MI%SCH==1B0			;STATUS CHANGED
MI%DHT==1B1			;DEASSIGNING THIS HTN
; STRUCTURE DATA BLOCK DEFINITIONS

DEFSTR (STRNAM,SDBNAM,35,36)	;NAME OF STRUCTURE IN SIXBIT
DEFSTR (STRNUM,SDBNUM,35,36)	;NUMBER OF UNITS IN STRUCTURE
DEFSTR (STRSIZ,SDBSIZ,35,36)	;SIZE IN SECTORS OF EACH UNIT IN STRUCTURE
DEFSTR (STRSTS,SDBSTS,17,18)	;STRUCTURE STATUS
	MSKSTR (STPS,SDBSTS,MS%PS)	;STRUCTURE IS PUBLIC
	MSKSTR (STDIS,SDBSTS,MS%DIS)	;STRUCTURE IS BEING DISMOUNTED
	MSKSTR (STDOM,SDBSTS,MS%DOM)	;STRUCTURE IS DOMESTIC
	DEFSTR (STCRD,SDBSTS,17,1)	;CREATING ROOT-DIRECTORY ON THIS STR
	DEFSTR (STIDX,SDBSTS,16,1)	;INDEX TABLE FILE OFN HAS BEEN SET UP
DEFSTR (STRJB,SDBSTS,35,18)	;NUMBER OF INITING JOB
DEFSTR (STRRDO,SDBIDX,17,18)	;OFN OF ROOT-DIRECTORY FOR THIS STRUCTURE
DEFSTR (STRIDX,SDBIDX,35,18)	;FIELD WHICH HOLDS HANDLE OF INDEX TABLE
DEFSTR (STRLDN,SDBLDN,35,36)	;LAST DIRECTORY NUMBER ON THIS STRUCTURE
DEFSTR (STRRXB,SDBRXB,35,36)	;INDEX BLOCK ADDRESS OF ROOT-DIRECTORY
DEFSTR (STRBXB,SDBBXB,35,36)	;INDEX BLOCK ADDRESS OF BACKUP ROOT-DIRECTORY
DEFSTR (STRNSS,SDBNSS,35,36)	;NUMBER OF SWAPPING SECTORS PER UNIT
DEFSTR (STRFSS,SDBFSS,35,36)	;FIRST SWAPPING SECTOR PER UNIT
DEFSTR (STRBTB,SDBBTB,35,36)	;OFN OF BIT TABLE FILE
DEFSTR (STRFC,SDBFRC,35,36)	;COUNT OF FREE PAGES ON STRUCTURE
DEFSTR (STRLCA,SDBLCA,35,36)	;LAST CYLINDER ASSIGNED BY DSKASN
DEFSTR (STRCYL,SDBCYL,35,36)	;TOTAL CYLINDERS IN STRUCTURE
DEFSTR (STRB0,SDBBT0,35,36)	;LENGTH OF TOP HALF OF BIT TABLE
DEFSTR (STRB1,SDBBT1,35,36)	;LENGTH OF BOTTON HALF OF BIT TABLE
DEFSTR (STRTYP,SDBTYP,35,36)	;ADDRESS OF DSKSIZ TABLE FOR THIS TYPE DISK
DEFSTR (STRUDB,SDBUDB,35,36)	;FLAGS,,ADDRESS OF UDB FOR FIRST UNIT IN STR
DEFSTR (STRUC,SDBFLK,17,18)	;UNIQUE CODE IN SDB
	STRNS==:6		;LENGTH OF THE STR NUMBER FIELD
DEFSTR (STRUS,SDBFLK,17,STRNS)	;FIELD WITHIN STRUC TO HOLD STR NUMBER
DEFSTR (STRLK,SDBFLK,35,18)	;FILE LOCK COUNT
DEFSTR (STRMC,SDBCNT,17,18)	;MOUNT COUNT
DEFSTR (STROF,SDBCNT,35,18)	;OPEN FILE COUNT
DEFSTR (STRMI,SDBPUC,35,36)	;MEDIA IDENTIFICATION FIELD
;BITS FOR CALLING DIRCHK TO CHECK IF THE SPECIFIED ACCESS TO A DIRECTORY IS LEGAL

DC%RD==:DP%RD_<^D30-1>		;ACCESS FILES ACCORDING TO THEIR PROTECTION
DC%CN==:DP%CN_<^D30-1>		;CONNECT TO THE DIRECTORY
DC%CF==:DP%CF_<^D30-1>		;CREATE FILES

;BITS FOR CALLING ACCCHK TO CHECK IF THE SPECIFIED ACCESS TO A FILE IS LEGAL

FC%DIR==:FP%DIR_<^D30-1>	;LIST THE FILE SPEC VIA 'DIR' COMMAND
FC%APP==:FP%APP_<^D30-1>	;APPEND
FC%EX==:FP%EX_<^D30-1>		;EXECUTE
FC%WR==:FP%WR_<^D30-1>		;WRITE
FC%RD==:FP%RD_<^D30-1>		;READ

FC%MSK==:FC%DIR!FC%APP!FC%EX!FC%WR!FC%RD	;MASK OF ALL ACCESS BITS

;BIT DEFINITIONS FOR FE STATUS WORD

.DVFNX==:1B35			;NON-EX DEVICE
.DVFOL==:1B34			;OFF LINE
.DVFHE==:1B33			;HARDWARE ERROR
.DVFSE==:1B32			;SOFTEARE CONDITION
.DVFIP==:1B31			;I/O IN PROGRESS
.DVFEF==:1B30			;END OF FILE
.DVFLG==:1B29			;ERROR LOGGING INFO FOLLOWS
.DVFFE==:1B28			;DEVICE HAS A FATAL UNRECOVERABLE
				; ERROR

;SECOND STATUS WORD DEFINITONS
.DDRCK==:1B35			;READ CHECK
.DDPCK==:1B34			;PICK CHECK
.DDSCK==:1B33			;STACK CHECK
.DDHEM==:1B32			;HOPPER EMPTY
.DDSFL==:1B31			;STACKER FULL

;CODE DEFINITIONS FOR THE JSB FREE SPACE STACK. THESE
;CODES IDENTIFY THE TYPE OF ENTRY ON THE STACK

STKCD1==:1			;TYPE 1 FOR ASGJFR STRINGS
STKCD2==:2			;TYPE 2 FOR ASGPAG STRINGS
STKCD3==:3			;TYPE 3 FOR TTY LOCKS
;SYSERR DEFINITIONS

;FORMAT OF SEBCPY WORD

SEBOFS==:<MASKB 2,8>		;OFFSET
SEBTYP==:<MASKB 9,11>		;TYPE
SEBDPT==:<MASKB 13,35>		;DATA POINTER

;MACRO TO BUILD POINTER WORD AT ASSEMBLY TIME
; SEBPTR OFFSET,DATATYPE,ADDRESS

DEFINE SEBPTR (AA,BB,CC)<
	1B0+FLD(AA,SEBOFS)+FLD(BB,SEBTYP)+<Z CC>>

;DATA TYPES - SEBCPY WORD

SBTWD==:0			;FULL WORD
SBTSTR==:1			;STRING
SBTEVC==:2			;EVENT CODE IMMEDIATE
SBTFNA==:3			;FUNCTION ADDRESS FOR JOB 0 PROCESSING

;POSSIBLE LINE TYPES FOR TELETYPE SERVICE

TT.FE==0			;ON THE RSX20F FRONT END
TT.MCB==1			;ON THE MCB NETWORK
TT.PTY==2			;PSEUDO-TERMINAL
TT.D10==3			;ON THE DC10
TT.NVT==4			;ON THE ARPANET
TT.DZ==5			;ON THE SM10
NLTYPS==6			;NUMBER OF TYPES

;DEFINITIONS FOR RESIDENT FREE POOL ALLOCATION

;DEFINE FLAGS USED IN ASGRES

	RS%SE0==:1B0		;SPACE MUST BE IN SECTION 0
; DEFINITIONS FOR ACCOUNT VALIDATION
; THESE THREE DEFINITIONS ARE COMMON TO ALL ACCOUNT DATA BLOCKS

DEFSTR (BKTYP,0,17,18)		;DATA BLOCK TYPE
DEFSTR (BKLEN,0,35,18)		;BLOCK LENGTH
DEFSTR (XPDAT,1,35,35)		;EXPIRATION DATE

; ACCOUNT HEADER

DEFSTR (DATASZ,2,35,36)		;TOTAL LENGTH OF ACCOUNT DATA BLOCK
DEFSTR (ACPTR,3,35,36)		;POINTER TO CHAINED ACCOUNT BLOCK
DEFSTR (ACNAM,4,35,36)		;ACCOUNT STRING NAME

; USER NAME

DEFSTR (USRNM,2,35,36)		;USER NAME STRING

; USER GROUP

DEFSTR (USRGP,2,35,36)		;USER GROUP NUMBER


; SXSTR IS COMMON TO ALL DIRECTORY-TYPE BLOCKS

DEFSTR (SXSTR,2,35,36)		;SIXBIT STRUCTURE NAME

; DIRECTORY NAME

DEFSTR (DIRNM,3,35,36)		;DIRECTORY NAME STRING

; DIRECTORY GROUP

DEFSTR (DIRGP,3,35,36)		;DIRECTORY GROUP NUMBER

; ALL DIRECTORIES


; DATA BLOCK TYPES

	.TYHSH==:577001		;HASH TABLE
	.TYACC==:577002		;ACCOUNT HEADER
	.TYUNM==:577003		;USER NAME
	.TYUGP==:577004		;USER GROUP
	.TYALU==:577005		;ALL USERS
	.TYDNM==:577006		;DIRECTORY NAME
	.TYDGP==:577007		;DIRECTORY GROUP
	.TYALD==:577010		;ALL DIRECTORIES
	.TYNUL==:577011		;NULL BLOCK
	.TYWUS==:577012		;WILD USER NAME STRING

;FIELDS IN IMPLT1

L1%SND==1B18			;SEND CONNECTION
L1%FRE==1B19			;EITHER FREE OR DELETED
L1%HST==377B27			;HOST NUMBER
MSKSTR LTHOST,IMPLT1,L1%HST
L1%LNK=377B35			;LINK NUMBER MASK
MSKSTR LTLINK,IMPLT1,L1%LNK


;BITS IN IMPLT2

RFNMCM=3B1			;RFNM OUTSTANDING (2 BIT COUNT)
LTDF=1B2			;'DONE' FLAG
HIPFLG=1B3			;HIGH PRIORITY CONNECTION
ILCKB==1B4			;CONNECTION LOCKED (NO TRANSMISSIONS)
RXMTF==1B5			;RETRANSMISSION AFTER TIME-OUT
RARF==1B6			;RAR EXPECTED
RARRF==1B7			;SEND RAS WHE NO RFNM'S OUT

MSKSTR RFNMC,IMPLT2,RFNMCM	;RFNM COUNT FIELD
DEFSTR IMPBS,IMPLT2,17,9	;CONNECTION BYTE SIZE


;MISC. DEFINITIONS

DEFSTR ANLNK,NETAWD,8,9		;LINK TABLE INDEX
DEFSTR ANFHS,NETAWD,17,9	;LINK TABLE INDEX
DEFSTR LTIDX,NETAWD,35,9	;LINK TABLE INDEX
DEFSTR ANNVT,NETBUF,35,18	;NVT LINE NUMBER
HSTMSK==377			;MASK FOR HOST NUMBER
FLINK==2			;FIRST LINK NUMBER TO USE
LLINK==^D72			;LAST NCP LINK
MAXNCP==<LLINK>B23		;MAXIMUM NCP LINK NUMBER

;LEADER FIELD DEFINITION

;FIRST WORD

LD%HIP==1B0			;HIGH PRIORITY
LD%FIM==1B1			;FROM/TO IMP
LD%MST==17B7			;MESSAGE TYPE
LD%HST==377B15			;HOST NUMBER
LD%LNK==377B23			;LINK NUMBER

;SECOND WORD

LD%BYS=377B11			;BYTE SIZE
LD%BYC=177777B27		;BYTE COUNT

MAXWPM==400			;JUST ENOUGH FOR WORST CASE 32 BIT MSG
MAXBPM==^D<8095-3*36>		;MAXIMUM DATA BITS PER MESSAGE
MSGALL==2			;DESIRED MESSAGE ALLOCATION LEVEL

; NSP INTERNAL INTERFACE FUNCTION VECTOR OFFSETS

.NSCRT==:0			;CREATE AN INTERNAL LOGICAL LINK
	.NSSZW==:0		;ARGUMENT BLOCK SIZE
	.NSSTR==:1		;ADDRESS OF NAME STRING TO PARSE
	.NSHST==:1		;ADDRESS OF HOST NAME STRING
	.NSOBJ==:2		;ADDRESS OF OBJECT NAME STRING
	.NSDSC==:3		;ADDRESS OF DESCRIPTOR STRING
	.NSODC==:4		;COUNT OF BYTES IN OPTIONAL DATA STRING
	.NSOPD==:5		;ADDRESS OF OPTIONAL DATA STRING (8 BIT BYTES)
	.NSTSN==:6		;ADDRESS OF TASK NAME STRING
	.NSUSR==:7		;ADDRESS OF USER STRING
	.NSPWC==:10		;COUNT OF BYTES IN PASSWORD STRING
	.NSPSW==:11		;ADDRESS OF PASSWORD STRING (8 BIT BYTES)
	.NSCHG==:12		;ADDRESS OF ACCOUNT STRING

	NS%SHT==:1B0		;SHORT FORM CALL
	NS%RD==:1B1		;READ ACCESS WANTED
	NS%WRT==:1B2		;WRITE ACCESS WANTED
.NSCLZ==:1			;CLOSE AN INTERNAL LINK
.NSOUT==:2			;OUTPUT TO AN INTERNAL LINK
	NS%BLK==:1B0		;BLOCK UNTIL ALL DATA SENT
	NS%EOM==:1B1		;THIS BUFFERFUL IS AN ENTIRE NSP MESSAGE
.NSINB==:3			;PROVIDE INPUT BUFFER
.NSRIN==:4			;READ INTERRUPT MESSAGE
.NSSIN==:5			;SEND INTERRUPT MESSAGE
.NSTRN==:6			;TRUNCATE CURRENT MESSAGE
.NSRLS==:7			;READ LINK STATUS
.NSRHN==:10			;READ HOST NAME
.NSRTN==:11			;READ TASK NAME
.NSRDA==:12			;READ OPTIONAL DATA
.NSRSS==:13			;READ LINK SEGMENT SIZE
.NSRON==:14			;READ OBJECT NAME

; DRIVER FUNCTION VECTOR OFFSETS

.NSHDR==:0			;COUNT OF WORDS IN VECTOR
.NSCND==:1			;CONNECT DISPOSITION RECEIVED
.NSBFR==:2			;NSP NEEDS A BUFFER
	NS%TRN==:1B0		;TRUNCATE MESSAGES IF TOO BIG FOR BUFFER
.NSDAT==:3			;INPUT DATA NOW AVAILABLE
	NS%MSG==:1B1		;COMPLETE MESSAGE RECEIVED (END-OF-MESSAGE SEEN)
	NS%ABT==:1B2		;LINK ABORTED. NO DATA IS PRESENT IN BUFFER.
.NSOOK==:4			;OK TO SEND OUTPUT NOW
	.NSOMO==:1		;OUTPUT MAY NOW BE SENT
	.NSIMI==:2		;INTERRUPT MESSAGE MAY NOW BE SENT
.NSINT==:5			;INTERRUPT MESSAGE RECEIVED
.NSOBE==:6			;OUTPUT BUFFER IS NOW EMPTY
.NSDIS==:7			;DISCONNECT RECEIVED
;MEMORY ERROR SAVE AREA DEFINTIONS

;DEFINITIONS FOR ERROR BLOCK

SBSLNK==:0			;OFFSET FOR LINK WORD
SBSERA==:1			;ERROR REG
SBSTYP==:2			;TYPE WORD AS FOLLOWS
 DEFSTR (SBSCN,SBSTYP,17,18)	;CONTROLLER NUMBER
 DEFSTR (SBSTP,SBSTYP,35,18)	;TYPE OF THIS ENTRY

;FOLLOWING ENTRIES ARE "TYPE" DEPENDENT. 

;.PMMER DEFINTIONS

ERRSIZ==:11			;LENGTH OF A CER ENTRY
SBSEAD==:4			;OFFSET FOR ERROR ADDRESS
SBSSER==:5			;OFFSET FOR FIRST SERIAL NUMBER
DEFSTR (SBSSY,3,5,6)		;SYNDROME OF ERROR
DEFSTR (SBSBN,3,9,4)		;4-BIT BLOCK NUMBER
DEFSTR (SBSSB,3,15,6)		;SPARE BIT NUMBER
DEFSTR (SBHEB,3,16,1)		;HARD ERROR, NEEDS RECORDING
	SUBTTL		STORAGE DEFINITIONS FOR ATSSRV

;THIS CLUMSY SET OF DEFINITIONS IS NECESSARY TO MAKE MACRO COOPERATE.
;THE END RESULT IS A MASK THAT REPRESENTS 30 OR MORE BITS OF ADDRESS
;AND A VALUE THAT REPRESENTS -1 IN THE MASK.  THE SIZE OF THE ADDRESS
;CAN BE CHANGED BY ALTERING THE ARGUMENTS FOR THE MASKB MACRO, AND NO
;CODE NEED BE CHANGED

ADRMSK==MASKB(6,35)
ADRSHF==^D35-POS(ADRMSK)
ADRNEG==-ADRSHF
ADRVAL==ADRMSK_ADRNEG


;DATA FOR AN APPLICATION TERMINAL

	DEFSTR (ATLEN,0,35,18)	;LENGTH OF THIS BLOCK
	MSKSTR (ATJFN,1,ADRMSK)	;ADDRESS OF JFN DATA
	MSKSTR (ATDAP,2,ADRMSK)	;ADDRESS OF DATA PIPE DATA
	MSKSTR (ATCOP,3,ADRMSK)	;ADDRESS OF CONTROL PIPE DATA
		.ATMST==4
	DEFSTR (ATMST,.ATMST,35,36)	;MONITOR STATUS BITS
		AT%GTD==1B0	;GET THE TERMINAL
		MSKSTR (ATGTD,.ATMST,AT%GTD)
		AT%RLD==1B1	;RELEASE THE TERMINAL
		MSKSTR (ATRLD,.ATMST,AT%RLD)
		AT%NRH==1B2	;NRM RELEASED HTN
		MSKSTR (ATNRH,.ATMST,AT%NRH)
		AT%BZY==1B3	;HTN IS BUSY - NRM NEGOTIATIONS UNDERWAY
		MSKSTR (ATBZY,.ATMST,AT%BZY)
		AT%ASR==1B4	;NRM SENT ASYNCHRONOUS STATUS-REPORT
		MSKSTR (ATASR,.ATMST,AT%ASR)
		AT%ABR==1B5	;HTN IS IN ABORT MODE
		MSKSTR (ATABR,.ATMST,AT%ABR)
		AT%EOM==1B6	;INPUT INCLUDES END-OF-MESSAGE
		MSKSTR (ATEOM,.ATMST,AT%EOM)
		AT%XOF==7B9	;TERMINAL IS XOFF'D
		MSKSTR (ATXOF,.ATMST,AT%XOF)
		AT%XMC==1B7	;XOFF'D BECAUSE MCB SENT XOFF
		MSKSTR (ATXMC,.ATMST,AT%XMC)
		AT%XQU==1B8	;XOFF'D BECAUSE ATS COULDN'T QUEUE MESSAGE
		MSKSTR (ATXQU,.ATMST,AT%XQU)
		AT%XFR==1B9	;XOFF'D BECAUSE NO FREE SPACE FOR MESSAGE
		MSKSTR (ATXFR,.ATMST,AT%XFR)
		AT%WSR==1B10	;WAITING FOR STATUS-REPORT
		MSKSTR (ATWSR,.ATMST,AT%WSR)
		AT%SCH==1B11	;STATUS CHANGED SINCE LAST REPORT
		MSKSTR (ATSCH,.ATMST,AT%SCH)
		AT%URH==1B12	;USER CLOSED HTN
		MSKSTR (ATURH,.ATMST,AT%URH)
		AT%NRH==1B13	;NODE CLOSED HTN
		MSKSTR (ATNRH,.ATMST,AT%NRH)
		DEFSTR (ATSTR,.ATMST,35,18) ;STATE FOR NRM PROCESSING
		AT%RIP==1B14	;RELEASE OF HTN IS IN PROGRESS
		MSKSTR (ATRIP,.ATMST,AT%RIP)
		.ATUST==5
	DEFSTR (ATUST,.ATUST,35,36) ;USER STATUS BITS
		AT%DHT==1B0	;DEASSIGNING HTN
		MSKSTR (ATDHT,.ATUST,AT%DHT)
		AT%TXF==1B1	;TERMINAL IS XOFF'D
		MSKSTR (ATTXF,.ATUST,AT%TXF)
		AT%TCL==1B2	;NRM CLOSED TERMINAL VIA STATUS-REPORT
		MSKSTR (ATTCL,.ATUST,AT%TCL)
		AT%OPN==1B3	;HTN IS OPEN AND USABLE
		MSKSTR (ATOPN,.ATUST,AT%OPN)
		AT%UND==1B4	;DEVICE REQUESTED IS UNDEFINED
		MSKSTR (ATUND,.ATUST,AT%UND)
		AT%NAV==1B5	;DEVICE REQUESTED IS NOT AVAILABLE
		MSKSTR (ATNAV,.ATUST,AT%NAV)
		AT%OFL==1B6	;DEVICE REQUESTED IS OFFLINE
		MSKSTR (ATOFL,.ATUST,AT%OFL)
		AT%FUL==1B7	;SERVER IS FULL
		MSKSTR (ATFUL,.ATUST,AT%FUL)
		AT%UNS==1B8	;DEVICE TYPE IS UNSUPPORTED
		MSKSTR (ATUNS,.ATUST,AT%UNS)
		AT%REJ==1B9	;NODE NRM REJECTED THE REQUEST
		MSKSTR (ATREJ,.ATUST,AT%REJ)
		AT%SER==377B17	;STATUS REPORT ERROR CODE (8-BITS)
		MSKSTR (ATSER,.ATUST,AT%SER)

; ASYNCHRONOUS STATUS REPORT CODES 

STSLO==:1			;LOWEST DEFINED STATUS REPORT CODE
	.ATRCV==:1		;RECEIVE ERROR THRESHOLD EXCEEDED
	.ATREP==:2		;REPLY THRESHOLD EXCEEDED
	.ATNAK==:3		;NAK THRESHOLD EXCEEDED
	.ATTRM==:4		;TERMINAL PROTOCOL ERROR-FATAL
	.ATIRQ==:5		;INTERVENTION REQUIRED AT TERMINAL
	.ATPWF==:6		;POWERFAIL
	.ATDSC==:7		;DATA PIPE DISCONNECTED
	.ATDIA==:10		;DIAL IN TERMINAL ATTACHED
STSHI==:10			;HIGHEST DEFINED STATUS REPORT CODE

		AT%MIE==1B18	;MONITOR INTERNAL ERROR (NODE OR HOST)
		MSKSTR (ATMIE,.ATUST,AT%MIE)
		AT%TRL==1B19	;TERMINAL RELEASED 
		MSKSTR (ATTRL,.ATUST,AT%TRL)
;* * * * *
;NEED TO DEFINE USER'S STATUS BITS IN GLOBAL LOCATION
; * * * * *
	DEFSTR (ATBTN,6,17,18)	;BOUNDARY TERMINAL NUMBER
	DEFSTR (ATHTN,6,35,18)	;HOST TERMINAL NUMBER
	DEFSTR (ATUTN,7,35,36)	;USER TERMINAL NUMBER
	DEFSTR (ATICT,10,17,18)	;COUNT OF INPUT DATA
	DEFSTR (ATOCT,10,35,18)	;BYTES NEEDED FOR OUTPUT
	MSKSTR (ATIAD,11,ADRMSK) ;ADDRESS OF INPUT BUFFER
	DEFSTR (ATIBP,12,35,36)	;BYTE POINTER TO INPUT
	MSKSTR (ATLJF,13,ADRMSK) ;ADDRESS OF NEXT TERMINAL BLOCK FOR JFN
	MSKSTR (ATLDP,14,ADRMSK) ;ADDRESS OF NEXT TERMINAL BLOCK FOR DATA PIPE
	MSKSTR (ATLBP,15,ADRMSK) ;ADDRESS OF NEXT TERMINAL BLOCK FOR BACKGROUND PROCESS
	DEFSTR (ATDEV,16,35,36)	;ADDRESS OF FREE SPACE CONTAINING DEVICE NAME
		.ATLCK==17	;LOCK WORD
	ATSIZ==20		;SIZE OF BLOCK
;DATA FOR A PIPE

	DEFSTR (APTYP,0,2,3)	;TYPE OF LINK
		.APDAP==0	;DATA PIPE
		.APCOP==1	;CONTROL PIPE
	DEFSTR (APSTS,0,17,15)	;STATUS
		AP%NBP==77B8	;NEED ACTION BY THE BACKGROUND PROCESS
		MSKSTR (APNBP,0,AP%NBP)
		AP%NIB==1B3	;NEED INPUT BUFFER
		MSKSTR (APNIB,0,AP%NIB)
		AP%NRI==1B4	;NEED TO READ INTERRUPT MESSAGE
		MSKSTR (APNRI,0,AP%NRI)
		AP%NIO==37B9	;PIPE IS NOT FULLY OPEN IF ANY BIT SET
		MSKSTR (APNIO,0,AP%NIO)
		AP%NCL==1B5	;NEED TO CLOSE THIS PIPE
		MSKSTR (APNCL,0,AP%NCL)
		AP%NAB==7B8	;NEED TO ABORT PIPE IF ANY BIT SET
		MSKSTR (APNAB,0,AP%NAB)
		AP%CLR==1B6	;CLOSED BY REMOTE PROCESS
		MSKSTR (APCLR,0,AP%CLR)
		AP%CRJ==1B7	;CONNECT-REJECT RECEIVED
		MSKSTR (APCRJ,0,AP%CRJ)
		AP%PER==1B8	;PROTOCOL ERROR OCCURRED
		MSKSTR (APPER,0,AP%PER)
		AP%WCC==1B9	;WAITING FOR CONNECT-CONFIRM
		MSKSTR (APWCC,0,AP%WCC)
		AP%EOM==1B14	;EXTRA MESSAGE HAS END-OF-MESSAGE
		MSKSTR (APEOM,0,AP%EOM)
		AP%OTO==1B15	;LIMITED TO ONE TERMINAL
		MSKSTR (APOTO,0,AP%OTO)
		AP%NRO==1B16	;NSP REFUSED OUTPUT ON THIS LINK
		MSKSTR (APNRO,0,AP%NRO)
		AP%TXF==1B17	;A TERMINAL WAS XOFF'D BECAUSE QUEUE WAS FULL
		MSKSTR (APTXF,0,AP%TXF)
	DEFSTR (APLEN,0,35,18)	;LENGTH OF THIS BLOCK
	DEFSTR (APNSP,1,35,36)	;NSP'S IDENTIFIER FOR THE LINK
	DEFSTR (APNOT,2,35,18)	;NUMBER TERMINALS ASSIGNED TO THE LINK
	MSKSTR (APOAD,3,ADRMSK) ;ADDRESS OF FIRST OUTPUT MESSAGE
	MSKSTR (APLPS,4,ADRMSK) ;ADDRESS OF NEXT LINK BLOCK FOR SYSTEM
	MSKSTR (APLBP,5,ADRMSK) ;ADDRESS OF NEXT LINK BLOCK FOR BACKGROUND PROCESS
		.APLCK==6	;LOCK WORD
		CPSIZ==7	;CONTROL PIPE STOPS HERE
	MSKSTR (APXAD,7,ADRMSK)	;ADDRESS OF FIRST XOFF'D OUTPUT MESSAGE
	DEFSTR (APOCT,10,17,18)	;NUMBER OF OUTPUT MESSAGES QUEUED
	MSKSTR (APLAT,11,ADRMSK) ;ADDRESS OF FIRST TERMINAL BLOCK
	MSKSTR (APSIA,12,ADRMSK) ;ADDRESS OF SECOND INPUT MESSAGE
	DEFSTR (APSIT,13,17,18)	;TERMINAL FOR SECOND MESSAGE
	DEFSTR (APSIC,13,35,18)	;COUNT FOR SECOND MESSAGE
	DEFSTR (APOBJ,14,17,18)	;OBJECT NUMBER OF REMOTE TASK
	DEFSTR (APBUL,14,35,18)	;BULA
		DPSIZ==15	;DATA PIPE STOPS HERE



;NOTES ON PIPE STATUS:
;	AP%NBP=ALL BITS THAT REQUIRE ACTION BY THE BACKGROUND PROCESS
;	AP%NIO=ALL BITS THAT MAKE THE PIPE UNAVAILABLE FOR I/O
;	AP%NAB=ALL BITS THAT CAUSE A PIPE TO BE ABORTED BY THE BACKGROUND
;		PROCESS

; * * * *
;CHANGES FOR DATA MODE:
;AP%CON==1B13
;DEFSTR (APLIT,10,35,18)
; * * * *
;DATA FOR A JFN

	DEFSTR (AJMOD,0,5,6)	;MODE
	DEFSTR (AJFLG,0,17,12)	;FLAGS
	DEFSTR (AJLEN,0,35,18)	;LENGTH OF THIS BLOCK
	DEFSTR (AJCDA,1,17,18)	;CHANNEL FOR DATA ARRIVAL INTERRUPT
	DEFSTR (AJCST,1,35,18)	;CHANNEL FOR STATUS ARRIVAL INTERRUPT
	MSKSTR (AJLAT,2,ADRMSK) ;ADDRESS OF FIRST TERMINAL ON JFN
	MSKSTR (AJLIN,3,ADRMSK)	;ADDRESS OF NEXT TERMINAL WITH INPUT
	DEFSTR (AJPRO,4,17,18)	;PROCESS
	DEFSTR (AJJFN,4,35,18)	;JFN
		.AJSLK==5	;LOCK ON STRUCTURE FOR THIS JFN
		.AJCHG==6	;NUMBER OF TERMINALS WITH CHANGED STATUS
		.AJICT==7	;NUMBER OF TERMINALS WITH INPUT
		AJSIZ==10	;SIZE OF JFN DATA BLOCK
;DATA FROM DATA PIPE QUEUED FOR BACKGROUND PROCESS

	DEFSTR (DIBYT,0,17,18)	;NUMBER OF BYTES IN MESSAGE
	DEFSTR (DILEN,0,35,18)	;LENGTH OF THIS BLOCK IN WORDS
	MSKSTR (DILNK,1,ADRMSK)	;ADDRESS OF NEXT BLOCK IN QUEUE
		DIDAT==2	;FIRST WORD CONTAINING DATA

REPEAT 0,<
!-------------------------------------------------------!
!      Number of bytes      !      Length in words      !
!-------------------------------------------------------!
!            Address of next block on chain             !
!-------------------------------------------------------!
!   data    !   data    !    ...     !   data    !      !
+-------------------------------------------------------+
>

;OUTPUT MESSAGE FOR DATA PIPE QUEUED TO BE SENT

	DEFSTR (DOEOM,0,0,1)	;SET IF END-OF-MESSAGE
	DEFSTR (DOBYT,0,8,8)	;NUMBER OF BYTES IN THIS SEGMENT
	DEFSTR (DOSEG,0,17,9)	;SEGMENT NUMBER
		DOMAX==FLD(777,DOSEG) ;MAXIMUM SEGMENT NUMBER
	DEFSTR (DOLEN,0,35,18)	;LENGTH OF THIS BLOCK IN WORDS
	MSKSTR (DONMS,1,ADRMSK)	;ADDRESS OF NEXT MESSAGE FOR THIS LINK
	MSKSTR (DONSG,2,ADRMSK)	;ADDRESS OF NEXT SEGMENT FOR THIS MESSAGE
		DODAT==3	;FIRST WORD CONTAINING DATA

REPEAT 0,<
+-------------------------------------------------------+
!!No. of bytes! Segment no. !      Length in words      !
!-------------------------------------------------------!
!                Address of next message                !
!-------------------------------------------------------!
!                Address of next segment                !
!-------------------------------------------------------!
!                         Data                          !
!-------------------------------------------------------!
\                                                       \
\                                                       \
!-------------------------------------------------------!
!                         Data                          !
+-------------------------------------------------------+
>
;OUTPUT FOR CONTROL PIPE QUEUED TO BE SENT
;INPUT FROM CONTROL PIPE QUEUED FOR THE BACKGROUND PROCESS

	DEFSTR (COBYT,0,17,18)	;NUMBER OF BYTES IN MESSAGE
	DEFSTR (COLEN,0,35,18)	;LENGTH OF THIS BLOCK IN WORDS
	MSKSTR (COLNK,1,ADRMSK)	;ADDRESS OF NEXT MESSAGE ON THE CHAIN
		CODAT==2	;FIRST WORD CONTAINING DATA

REPEAT 0,<
;DATA FROM CONTROL PIPE QUEUED FOR BACKGROUND PROCESS

	DEFSTR (CIBYT,0,17,18)	;NUMBER OF BYTES IN MESSAGE
	DEFSTR (CILEN,0,35,18)	;LENGTH OF THIS BLOCK IN WORDS
	MSKSTR (CILNK,1,ADRMSK)	;ADDRESS OF NEXT BLOCK IN QUEUE
		CIDAT==2	;FIRST WORD CONTAINING DATA
>

repeat 0,<
+-------------------------------------------------------+
!      Number of bytes      !      Length in words      !
!-------------------------------------------------------!
!            Address of next block on chain             !
!-------------------------------------------------------!
!   data    !   data    !    data    !   data    !      !
!-------------------------------------------------------!
\                                                       \
\                                                       \
!-------------------------------------------------------!
!    data   !   data    !    data    !   data    !      !
+-------------------------------------------------------+
>