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 ! !
+-------------------------------------------------------+
>