Trailing-Edge
-
PDP-10 Archives
-
BB-L014Z-BM_1990
-
galsrc/qsrmac.mac
There are 45 other files named qsrmac.mac in the archive. Click here to see a list.
UNIVER QSRMAC -- Parameter File for QUASAR
SUBTTL Preliminaries
; COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975, 1988.
; ALL RIGHTS RESERVED.
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
; TRANSFERRED.
;
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
; CORPORATION.
;
; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
; SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
SEARCH GALCNF ;GET CONFIGURATION DATA
SEARCH GLXMAC ;GET GALAXY SYMBOLS
SEARCH ORNMAC ;GET OPERATOR SYMBOLS
; .DIRECT .NOBIN ;NO REL FILE...
IFN FTUUOS,<IF1,<PRINTX Building a GALAXY-10 System>
SEARCH UUOSYM ;GET TOPS10-UUO SYMBOLS
> ;END OF IFN FTUUOS
IFN FTJSYS,<IF1,<PRINTX Building a GALAXY-20 System>
SEARCH MONSYM ;GET TOPS20-JSYS SYMBOLS
> ;END OF IFN FTJSYS
SALL ;SUPPRESS MACRO EXPANSIONS
%%.QSR==36 ;Major change number of QSRMAC
QMCMAN==:1310 ;Maintenance edit number
QMCDEV==:1306 ;Development edit number
VERSIN (QMC) ;Generate edit number
Subttl Table of Contents
; Table of Contents for QSRMAC
;
; Section Page
;
;
; 1. Revision history . . . . . . . . . . . . . . . . . . . 5
; 2. Accumulator Definitions . . . . . . . . . . . . . . . 6
; 3. Symbols derived from GALCNF . . . . . . . . . . . . . 7
; 4. Changable System Parameters . . . . . . . . . . . . . 8
; 5. RDB - Request Descriptor Block . . . . . . . . . . . . 9
; 6. ROB - Requested Object Block . . . . . . . . . . . . . 10
; 7. DIB - Dependency Information Block . . . . . . . . . . 11
; 8. QH - Queue Header Definitions . . . . . . . . . . . . 12
; 9. EV - Timed event block definitions . . . . . . . . . . 13
; 10. QE - Queue Entry Definitions . . . . . . . . . . . . . 14
; 11. JOB INFORMATION BLOCK (.QEJBB) DESCRIPTION . . . . . . 16
; 12. OBJ - Object Queue . . . . . . . . . . . . . . . . . . 17
; 13. PSB - Processor Status Block . . . . . . . . . . . . . 20
; 14. SPL - Spool Queue Definition . . . . . . . . . . . . . 21
; 15. STR - Structure Queue Definition . . . . . . . . . . . 22
; 16. NETWORK DATA BASE STRUCTURE . . . . . . . . . . . . . 23
; 17. NODE ATTRIBUTE BLOCK (for SNA Workstations) . . . . . 25
; 18. NODE OBJECT BLOCK (for SNA Workstations) . . . . . . . 26
; 19. ROUTE TABLE ENTRY DESCRIPTION . . . . . . . . . . . . 27
; 20. CSM - Canonical SPOOL Message . . . . . . . . . . . . 28
; 21. CLM - Canonical LOGOUT Message . . . . . . . . . . . . 29
; 22. The Messages and their respective codes . . . . . . . 30
; 23. The HELLO Message - Function 1 . . . . . . . . . . . . 31
; 24. The RELEASE Message - Function 2 . . . . . . . . . . . 32
; 25. The CHECKPOINT and REQUEUE messages - Functions 3 and 33
; 26. The NEXTJOB and CREATE Messages - Functions 5 and 7 . 36
; 27. EQ - The External Queue Entry . . . . . . . . . . . . 37
; 28. The ABORT Message - Function 6 . . . . . . . . . . . . 44
; 29. The LIST Message - Function 10 . . . . . . . . . . . . 45
; 30. The MODIFY Message - Function 11 . . . . . . . . . . . 47
; 31. The KILL Message - Function 12 . . . . . . . . . . . . 49
; 32. THE LIST ANSWER MESSAGE. . . . . . . . . . . . . . . . 50
; 33. The REQUEST FOR CHECKPOINT Message - Function 15 . . . 51
; 34. The DEFER Message - Function 16 . . . . . . . . . . . 52
; 35. Event Counters . . . . . . . . . . . . . . . . . . . . 53
; 36. The COUNT Message - Function 20 . . . . . . . . . . . 55
; 37. The COUNTANSWER Message - Function 21 . . . . . . . . 56
; 38. The SETUP/SHUTDOWN Message - Function 22 . . . . . . . 57
; 39. The RESPONSE-TO-SETUP Message - Function 23 . . . . . 59
; 40. The HOLD/RELEASE Message - Function 25 . . . . . . . . 61
; 41. The SPOOL Message - Function 26 (sent by IPCC) . . . . 62
; 42. The LOGOUT Message - Function 27 (sent by IPCC) . . . 64
; 43. MONITOR LOGIN MESSAGE PROCESSOR . . . . . . . . . . . 65
; 44. TAPE ONLINE MESSAGE Function 31 (sent by IPCC) . . . . 66
; 45. THE DEVICE STATUS UPDATE MESSAGE - FUNCTION 31 . . . . 67
; 46. TAPE DEASSIGN/DISMOUNT MESSAGE (IPCC FUNCTION 34) . . 68
; 47. Job reset message (IPCC function 37) . . . . . . . . . 69
Subttl Table of Contents (page 2)
; Table of Contents for QSRMAC
;
; Section Page
;
;
; 48. Disk unit ATTACH/DETACH Message (IPCC FCN 42/43) . . . 70
; 49. Disk unit XCHANGE Message (IPCC function 44) . . . . . 71
; 50. Structure removal message (IPCC function 45) . . . . . 72
; 51. Magtape unit accessible message (IPCC function 46) . . 73
; 52. NODE-WENT-AWAY NOTIFICATION MESSAGE (FUNCTION 36) . . 74
; 53. .QOCQE - CREATE QUEUE ENTRY MESSAGE (FUNCTION 37) . . 75
; 54. RECOGNIZE MESSAGE (FUNCTION .QOREC - 40) . . . . . . . 80
; 55. Tape status message (.QOTST functions 41) . . . . . . 81
; 56. TAPE DRIVE UNLOAD MESSAGE (FUNCTION .QOUNL - 42) . . . 83
; 57. Volume Mounted message to tape labeller (.QOVMN = 43) 84
; 58. Volume dismounted message to tape labeller (.QOVDM = 4 85
; 59. Volume switch request from tape labeller (.QOVSR = 45) 86
; 60. Volume Switch Directive From MDA to Tape Labeler (.QOV 87
; 61. Request for System Catalog Information (.QORCT) . . . 88
; 62. Catalog information message (.QOCAT) . . . . . . . . . 89
; 63. INTERNAL CATALOG CACHE STRUCTURE . . . . . . . . . . . 91
; 64. BUILD A STRUCTURE MESSAGE (.QOBLD) . . . . . . . . . . 92
; 65. MDA ACK MESSAGE (.QOACK) . . . . . . . . . . . . . . . 93
; 66. ADD/REMOVE A STRUCTURE TO A USERS SEARCH LIST MESSAGE 94
; 67. DISMOUNT/DEALLOCATE A VOLUME SET MESSAGE (.QODVS) . . 95
; 68. .QOLAC - List allocations for a job . . . . . . . . . 96
; 69. .QOALC - Prescan a control file for allocations . . . 97
; 70. .QOPRM - Response to .QOALC request . . . . . . . . . 98
; 71. .QOIDN - Tape Initialization Done message . . . . . . 99
; 72. LPTSPL forms change message (.QOFCH (63) ) . . . . . . 100
; 73. IBMCOM Statistice message (.QOIBM) . . . . . . . . . . 101
; 74. Common Parameters . . . . . . . . . . . . . . . . . . 102
; 75. Random Macros . . . . . . . . . . . . . . . . . . . . 103
; 76. Failsoft System Definitions . . . . . . . . . . . . . 104
; 77. QUASAR Fatal Error Codes . . . . . . . . . . . . . . . 105
; 78. MDA ERROR MACROS AND CODES . . . . . . . . . . . . . . 106
; 79. Definition of the Known Queues . . . . . . . . . . . . 107
; 80. MTCON MOUNT STRUCTURES . . . . . . . . . . . . . . . . 108
; 81. MOUNT REQUESTS (WITHIN THE MESSAGE) . . . . . . . . . 109
; 82. TAPE MOUNT REQUEST BLOCKS . . . . . . . . . . . . . . 110
; 83. .MEFLG BIT DEFINITIONS . . . . . . . . . . . . . . . . 113
; 84. MOUNT REQUEST . . . . . . . . . . . . . . . . . . . . 114
; 85. Response to User Tape Mount Request . . . . . . . . . 115
; 86. MOUNT RESPONSES . . . . . . . . . . . . . . . . . . . 116
; 87. CANCELING TAPE MOUNT REQUESTS . . . . . . . . . . . . 117
; 88. ABORT MSG FROM QUASAR TO MTCON . . . . . . . . . . . . 118
; 89. MOUNT RELEASE MESSAGE . . . . . . . . . . . . . . . . 119
; 90. QUASAR TAPE MOUNT REQUEST QUEUE STRUCTURE . . . . . . 120
; 91. VOLUME SET LIST (VSL) STRUCTURE . . . . . . . . . . . 121
; 92. VOLUME LIST STRUCTURE (VOL) . . . . . . . . . . . . . 122
; 93. UNIT CONTROL BLOCK STRUCTURE . . . . . . . . . . . . . 123
; 94. ALLOCATION AND DEADLOCK AVOIDANCE MATRICES . . . . . . 124
Subttl Table of Contents (page 3)
; Table of Contents for QSRMAC
;
; Section Page
;
;
; 95. REQUEST FOR MOUNT ATTRIBUTES . . . . . . . . . . . . . 125
; 96. RESPONSE TO REQUEST FOR MOUNT ATTRIBUTES . . . . . . . 126
; 97. The ARCHIVE Message - Function 41 (sent by IPCC) . . . 127
SUBTTL Revision history
COMMENT \
***** Release 4.2 -- begin maintenance edits *****
1214 4.2.1451
Put logging of counts under conditional.
1215 4.2.1546
Print the complete file specification to the INFORMATION
RETRIEVAL-REQUEST /ALL command if the the caller has privileges or if the
request belongs to the caller. (TOPS-20 only)
1216 4.2.1582
Define EQ.CHP in word .EQSEQ to indicate if the priority of a PRINT or
SUBMIT request has been changed.
1217 4.2.1605
Define symbols %RBMIN and %RBMAX for use in checking for valid rebuild
codes.
1220 4.2.1607
Define symbols .QIMOD for use in checking for a modify request.
1221 4.2.1613
Define bit OBSIBM to indicate that an object is part of an IBM node.
***** Release 5.0 -- begin development edits *****
1230 5.1003 3-Jan-82
Move to new development area. Add version vector. Clean up
edit organization. Update TOC.
1231 5.1160 18-Sept-84
Change INPMAX to be G.INBS (value to be determine by GALGEN). This is
the highest number a batch stream can be on a system.
1232 5.1162 21-Sept-84
Define bit OBSSNA for SNA printers and punches. Define flag NETSNA for
SNA Workstations. Define a Node Attribute Block for SNA Workstations Nodes.
Define a Node Object Block for SNA Workstations Objects.
1233 5.1174 22-Oct-84
Redefine SUP.ST to its original value in the setup message to IBMSPL.
1234 5.1173 23-Oct-84
Define a new block, .QCSNA, to be used by SNASUB in processing
NOTRANSLATE, RECORD and TAB.
1235 5.1182 30-Nov-84
Define MR.FLG as the flag field in word .MRFLG of an MDR
1236 5.1197 5-Feb-85
Define QSR.JP, BAT.JP, ORN.JP and LPT.JP to be used by QUASAR, BATCON
ORION and LPTSPL to decide whether the respective process is to be a system
process or not.
1237 5.1210 25-Mar-85
Define .VSVOL as two words in the VSL to accomodate the first name
of the volume set which will be used by INFORMATION MOUNT/ALL
***** Release 5.0 -- begin maintenance edits *****
1245 Increment maintenance edit level for GALAXY 5.
***** Release 6.0 -- begin development edits *****
1260 6.1004 5-Oct-87
Add support for Cluster LPTSPL
1261 6.1012 10-Oct-87
Define the NAME block in a SETUP message to a DQS or LAT printer that
includes the VMS queue name (for DQS printers) or the PORT or SERVICE name
for (LAT printers) and also the type of name.
1262 6.1013 10-Oct-87
Define bit EQ.DLR in word .EQSEQ to indicate that a print request is
for a DQS or LAT printer. Also, add words .EQCHR and .EQRPN to store the
DQS characteristics mask and VMS queue name (or a LAT PORT or SERVICE name).
1263 6.1025 19-Oct-87
Add the remote name block to the definitions of the object queue entry,
the ROUTE table entry and the QE entry.
1264 6.1028 19-Oct-87
Add the remote LPT name block to the RELEASE message. This block is
defined only for DQS and LAT LPTs.
1265 6.1030 19-Oct-87
Define block .LSPID in the LIST message to contain the PID of the
sender for a INFORMATION OUTPUT/DESTINATION-NODE command. Define word KIL.PD
in the KILL message to contain the PID of the sender for a CANCEL PRINT/
DESTINATION-NODE command.
1266 6.1031 20-Oct-87
Add the remote printer name block to the DEVICE STATUS UPDATE MESSAGE
1267 6.1032 22-Oct-87
In support of remote printing, add words .EQNAM to the EQ definition,
SUP.CR to the SETUP message definition, KIL.ND to the KILL message and RES.CR
to the RESPONSE TO SETUP message.
1270 6.1039 28-Oct-87
Use proper definition of RSU.CR.
1271 6.1040 28-Oct-87
Change the SETUP and RESPONSE TO SETUP messages to add the queue name
(DQS) or service/port name (LAT) inside the message rather than having a
seperate block type. Update pictures for SETUP and RESPONSE TO SETUP messages.
This edit adds use of OBJ.SQ (object block length including queue name).
1272 6.1040 29-Oct-87
Response to setup message should follow the same format as the setup
message (the first three object words followed by the queue/service/port name).
1273 6.1048 30-Oct-87
Don't include the temporary file word (.FPTEM) in the minimum size
of an FP.
1274 6.1057 4-Nov-87
Change PS: to BS: and PS:[SPOOL] to SPOOL: for Non PS: login feature.
1275 6.1067 9-Nov-87
Add definitions .EQNJN and .EQPID to the EQ and definitions QE.NOD,
to the QE in suport of processing of Cluster printer requests.
1276 6.1072 16-Nov-87
Add 1 block for OBJTCR.
1277 6.1121 6-Dec-87
Define NEB.JP, BAT.JP, ORN.JP and LPT.JP to be used by NEBULA to
decide whether it is to be a system process or not.
1300 6.1123 6-Dec-87
Define bits EQ.NND and QE.NND to indicate that a CREATE request did not
explicitly include a node name.
1301 6.1175 7-Feb-88
Add .QENOD to the QE definition and block type .LSUNM to the LIST
message as well as defining new error codes E$ILF, E$IUN and E$NNR all in
support of INFORMATION OUTPUT/DESTINATION and CANCEL PRINT /DESTINATION.
1302 6.1177 11-Feb-88
Add bit QE.LOG to the QE definition, words RLSFG1 and RLSFG2 to the
route message definition, word OBJSC2 to the object queue entry definition
and word .EQPRT to the EQ definition all in support of specifying specific
local printers to route batch log and spooled files to.
1303 6.1183 16-Feb-88
Define error code E$CNE.
1304 6.1191 23-Feb-88
Change the error text of error code E$IFM.
1305 6.1225 8-Mar-88
Update copyright notice.
1306 6.1257 14-May-88
Add code "job cancelled by a remote user" to block ABO.CD of the
ABORT message. Also, define block types ABO.RU and ABO.ND to the ABORT
message and block type KIL.RU to the KILL message. These changes are in
support of remote cancelling of a cluster print request to indicate who
cancelled that request and from which node the cancel request originated.
***** Release 6.0 -- begin maintenance edits *****
1307 6.1305 19-Jan-90
Add bit definitions RT.SND and RT.DND in the .OFLAG word for the
ROUTE command.
1310 6.1318 3-Jun-90
Add alias printer support.
\ ;End of Revision History
SUBTTL Accumulator Definitions
AP==13 ;ARGUMENTS FOR ALL M$xxxx ROUTINES
E==14 ;QUEUE ENTRY POINTER
BM==14 ;'B' MATRIX POINTER
H==15 ;QUEUE HEADER POINTER
CM==15 ;'C' MATRIX POINTER
M==16 ;MESSAGE POINTER
SUBTTL Symbols derived from GALCNF
; DEFINE FEATURE TESTS SO THAT EACH MODULE NEED ONLY SEARCH QSRMAC
XP FTRQUE,FTRQUE ; ON = KEEP A REDUNDANT MASTER QUEUE
XP FTRJE,FTRJE ; ON = ADD RJE SUPPORT TO SPOOLERS
XP FTDN60,FTDN60 ; ON = ADD DN60 SUPPORT TO SPOOLERS
; DEFINE BATCH JOB PARAMETERS
XP INPMAX,G.INBS ;highest # a batch stream can be
XP INPTIM,G.ITIM ;DEFAULT BATCH JOB TIME LIMIT
XP INPCOR,G.ICOR ;DEFAULT BATCH JOB CORE LIMIT
XP INPPGS,G.ILPT ;DEFAULT PAGE LIMIT
XP INPCDS,G.ICDP ;DEFAULT PUNCHED CARD LIMIT
XP INPPTP,G.IPTP ;DEFAULT PAPER TAPE LIMIT
XP INPPLT,G.IPLT ;DEFAULT PLOTTER TIME
XP INPOIP,1 ;OPERATOR INTERVENTION PARAMETER
XP INPLOG,G.ILOG ;BATCH /OUTPUT: DEFAULT
; DEFINE SPOOLING SYSTEM PARAMETERS
XP SPLMAX,^D20 ;MAXIMUM NUMBER OF OBJECTS ALLOWED
XP SPLPRI,G.DPRI ;PRIORITY FOR SPOOLED REQUESTS
XP MXUPRI,G.SPRI ;MAXIMUM USER PRIORITY
XP FRMNOR,G.DNOR ;NAME OF "NORMAL" FORMS
XP FRMUNI,G.DNUC ;NUMBER OF UNIQUE CHARACTERS IN THE NAME
XP FLEACT,G.FLEA ;FORMS LIMIT EXCEEDED ACTION
FRMSK1==MASK.(6*FRMUNI,6*FRMUNI-1) ;ANDX, LOAD MASK
FRMSK2==MASK.(^D36-6*FRMUNI,^D35) ;TXZ STYLE MASK
XP LPTBAN,G.LBAN ;DEFAULT NUMBER OF BANNER PAGES
XP LPTTRL,G.LTRL ;DEFAULT NUMBER OF TRAILER PAGES
XP LPTHDR,G.LHDR ;DEFAULT NUMBER OF HEADER PAGES
XP LPTDIV,G.LPTD ;DIVISOR FOR CNVRTNG DSK BLKS TO PAGES
XP LPTMUL,G.LPTM ;MULTIPR FOR CNVRTNG DSK BLKS TO PAGES
ND LPTARF,^D10 ;10 PAGES PER MINUTE (600 LPM)
ND LPTKTL,^D15 ;KSYS THRESHOLD LIMIT
XP CDPDIV,G.CDPD ;DIVISOR FOR CNVRTNG DSK BLKS TO CARDS
XP CDPMUL,G.CDPM ;MULTIPR FOR CNVRTNG DSK BLKS TO CARDS
ND CDPARF,^D300 ;300 CARDS PER MINUTE (CP10)
ND CDPKTL,^D60 ;KSYS THRESHOLD LIMIT
XP PTPDIV,G.PTPD ;DIVISOR FOR CNVRTNG DSK BLKS TO FEET
XP PTPMUL,G.PTPM ;MULTIPR FOR CNVRTNG DSK BLKS TO FEET
ND PTPARF,^D25 ;25 FEET PER MINUTE (PC09)
ND PTPKTL,^D60 ;KSYS THRESHOLD LIMIT
XP PLTDIV,G.PLTD ;DIVISOR FOR CNVRTNG DSK BLKS TO FEET
XP PLTMUL,G.PLTM ;MULTIPR FOR CNVRTNG DSK BLKS TO FEET
ND PLTARF,^D1 ;1 MINUTE PER MINUTE (200 STP/MIN XY10)
ND PLTKTL,^D60 ;KSYS THRESHOLD LIMIT
;Define system process options
XP QSR.JP,Q.SYS ;QUASAR
XP BAT.JP,B.SYS ;BATCON
XP ORN.JP,O.SYS ;ORION
XP LPT.JP,L.SYS ;LPTSPL (and D60JSY)
XP NEB.JP,N.SYS ;[1277]NEBULA
;FAILSOFT SYSTEM PARAMETERS
XP FSSSTR,G.QSTR ;FILE-STRUCTURE FOR MASTER QUEUES
;MDA SYSTEM PARAMETERS
TOPS10<
XP DEFLBT,DEFLBT ;DEFAULT LABEL TYPE
XP DEF7TK,DEF7TK ;DEFAULT DENSITY FOR 7 TRACK
XP DEF9TK,DEF9TK ;DEFAULT DENSITY FOR 9 TRACK
XP DEFTRK,DEFTRK ;DEFAULT TRACK TYPE
XP NPRTLB,NPRTLB ;BLP FOR 1=ALL USERS, 0=PRIV USERS
XP MDADAE,0 ;DEADLOCK AVOIDANCE 1=ENABLE, 0=DISABLE
XP PRMSTR,0 ;PERMANENT STRUCTURES 0=OFF, 1=ON
>
TOPS20< ND NPRTLB,0 > ;BLP FOR 1=ALL USERS, 0=PRIV USERS
;Pick up symbol from GALCNF
SUBTTL Changable System Parameters
SYSPRM EQLMSZ,^D10,^D10 ;EQ LIMIT WORD BLOCK LENGTH
SYSPRM EQCKSZ,^D10,^D10 ;EQ CHECKPOINT BLOCK LENGTH
SYSPRM EQNMSZ,2,10 ;.EQOWN SIZE IN WORDS
SYSPRM EQASSZ,10,10 ;.EQACT SIZE IN WORDS
SYSPRM VSNLEN,10,2 ;VOLUME SET NAME LENGTH IN WORDS
SYSPRM STSSIZ,21,21 ;SIZE OF STATUS AREA IN OBJ AND CHKPNT
SYSPRM TIMONA,3,3 ;MINUTES TO WAIT FOR OBJECT NOT AVAIL
SYSPRM OBPRSZ,5,5 ;OBJECT BLOCK PARAMETER LENGTH
;**;[1310]At SYSPRM OBPRSZ:+1L change 1 line PMM 6/3/90
SYSPRM LPTNLN,11,11 ;[1310]REMOTE LPT NAME LENGTH
SUBTTL RDB - Request Descriptor Block
;THE REQUEST DESCRIPTOR BLOCK IS THE DATA-STRUCTURE USED TO REPRESENT
; A REQUEST OR SET OF REQUESTS. IT CONSISTS OF A JOBNAME WITH
; WILDCARDS AND A POSITIVE MASK, A SEQUENCE NUMBER (WHICH IF 0
; IMPLIES ALL JOBS WHICH FIT THE REST OF THE CRITERIA), AND AN
; OPERATING SYSTEM DEPENDENT OWNER SPECIFIER WITH WILDCARDS.
; !-------------------------------------------------------!
; ! SPECIFIED JOB NAME !
; !-------------------------------------------------------!
; ! JOB NAME MASK !
; !-------------------------------------------------------!
; ! EXTERNAL SEQUENCE NUMBER !
; !-------------------------------------------------------!
; ! REQUEST ID NUMBER !
; !-------------------------------------------------------!
;
; ----- TOPS10 -----
; ! !
; !-------------------------------------------------------!
; ! OWNER IDENTIFICATION (PPN) !
; !-------------------------------------------------------!
; ! OWNER ID MASK !
; !-------------------------------------------------------!
;
; ----- TOPS20 -----
; ! !
; !-------------------------------------------------------!
; ! !
; / SPECIFICATION OF REQUEST OWNER /
; / /
; / /
; ! !
; !=======================================================!
PHASE 0
.RDBJB:! BLOCK 1 ;JOB NAME (SIXBIT)
.RDBJM:! BLOCK 1 ;JOB NAME MASK
.RDBES:! BLOCK 1 ;EXTERNAL SEQUENCE NUMBER
.RDBRQ:! BLOCK 1 ;REQUEST ID NUMBER
TOPS10 <
.RDBOI:! BLOCK 1 ;OWNER ID
.RDBOM:! BLOCK 1 ;OWNER ID MASK
RDBSIZ:!
.RDBVS:! BLOCK 10 ;ASCIZ VOL SET NAME FOR MOUNT REQUESTS
RDBMSZ:!
> ;END TOPS10 CONDITIONAL
TOPS20 <
.RDBOW:! BLOCK 10 ;REQUEST OWNER SPEC
.RDBVS:!
RDBSIZ:!
> ;END TOPS20 CONDITIONAL
DEPHASE
SUBTTL ROB - Requested Object Block
;The ROB is used in any context where an object and
; some attributes (or a particular object) must be specified.
; !=======================================================!
; ! OBJECT TYPE !
; !-------------------------------------------------------!
; ! DEVICE ATTRIBUTES ! PHYSICAL UNIT NUMBER !
; !-------------------------------------------------------!
; ! NODE NAME !
; !-------------------------------------------------------!
; ! CUSTOMER DEFINED ATTRIBUTES !
; !=======================================================!
PHASE 0
.ROBTY:! BLOCK 1 ;OBJECT TYPE
.ROBAT:! BLOCK 1 ;ATTRIBUTES (DEC)
RO.ATR==-1,,0 ;OBJECT ATTRIBUTES
RO.UNI==0,,-1 ;PHYSICAL UNIT NUMBER
DEFINE ATTRIB,< ;;DECLARE THE VALID ATTRIBUTES
LSTOF.
X <Invalid>,%INVLD,0 ;;INVALID FOR ALL
X <LOWER>,%LOWER,.OTLPT ;;LOWERCASE
X <UPPER>,%UPPER,.OTLPT ;;UPPERCASE
X <PHYSICAL>,%PHYCL,<.OTLPT,.OTPTP,.OTCDP,.OTPLT>
X <>,%GENRC,-1 ;;GENERIC (VALID FOR ALL)
X <SITGO>,%SITGO,.OTBAT ;;SITGO REQUEST
LSTON.> ;End of ATTRIB definition
DEFINE X(TXT,SYM,OBJ) <
SYM==ZZ
%ATMAX==ZZ ;DECLARE THE MAXIMUM VALUE
ZZ==ZZ+1>
ZZ==0
ATTRIB ;DECLARE THE SYMBOL VALUES
.ROBND:! BLOCK 1 ;NODE NAME
.ROBUA:! BLOCK 1 ;CUSTOMER DEFINED ATTRIBUTES
ROBSIZ:!
DEPHASE
SUBTTL DIB - Dependency Information Block
;Each job has a Dependency List associated with it. Each entry in the
; list is a DIB which describes one dependency which the job has.
PHASE 0
.DIBDS:! BLOCK 1 ;DEPENDENCY STATUS
DI.SAT==1B0 ;SATISFIED LAST PASS (FOR LIST MOSTLY)
DI.TYP==0,,-1 ;DEPENDENCY TYPE
.DIBDT:! BLOCK 1 ;DEPENDENCY DATA
DIBSIZ:!
DEPHASE
;Currently defined dependencies
; Symbol Value Data
; ------ ----- -------------------------------
.DTSTR== 1 ;Adr of STR queue entry for structure
SUBTTL QH - Queue Header Definitions
; !=======================================================!
; ! QUEUE NAME ! FLAGS ! QUEUE TYPE !
; ! 3 SIXBIT CHARACTERS ! ! !
; !-------------------------------------------------------!
; ! POINTER TO LAST ! POINTER TO FIRST !
; ! ENTRY IN THIS QUEUE ! ENTRY IN THIS QUEUE !
; !-------------------------------------------------------!
; ! BASE OF SCHEDULING ! SIZE OF AN !# OF LIST PGS!
; ! AND LINKING ALGORITHM ! ENTRY ! LAST TIME !
; !-------------------------------------------------------!
; ! PTR TO FIRST ENTRY ! PTR TO LAST ENTRY !
; !-------------------------------------------------------!
; ! SIZE OF EACH ENTRY !
; !=======================================================!
PHASE 0
.QHTYP:! BLOCK 1 ;QUEUE TYPE WORD
QH.NAM==-1,,0 ;3 CHARACTER QUE NAME
QH.FLG==777B26 ;FLAGS
QH.INV==1B19 ;OBJECT IS INVISIBLE
QH.TYP==777B35 ;QUEUE TYPE
.QHTQS==0 ;INTERNAL TO QUASAR
.QHTOU==1 ;AN OUTPUT QUEUE
.QHTIP==2 ;AN INPUT QUEUE
.QHTMD==3 ;MOUNTABLE DEVICE QUEUE
.QHFRR==4 ;FREE RUNNING DEVICE QUEUE
.QHTAR==5 ;ARCHIVE SYSTEM QUEUE
.QHLNK:! BLOCK 1 ;LINK WORD
QH.PTL==-1,,0 ;POINTER TO LAST ENTRY
QH.PTF==0,,-1 ;POINTER TO FIRST ENTRY
.QHPAG:! BLOCK 1 ;STORAGE INFORMATION
QH.SCH==-1,,0 ;SCHEDULER ENTRY VECTOR
SCHLNK==0 ; LINK IN
SCHSCH==1 ; SCHEDULE
SCHDEF==2 ; FILL IN DEFAULTS FOR CREATE
SCHMOD==3 ; PREFORM QUEUE DEPENDENT MODIFY
SCHRJI==4 ; RELEASE JOB-OBJECT INTERLOCK
SCHFJB==5 ; FIND A JOB FOR AN OBJECT
QH.SIZ==777B26 ;SIZE OF EACH ENTRY
.QHLIS:! BLOCK 1 ;LIST FLAG (LIQxxx)
.QHAFT:! BLOCK 1 ;AFTER TIME OF BEST AFTER JOB
QHSIZE:! ;SIZE OF A QUEUE HEADER
DEPHASE
SUBTTL EV - Timed event block definitions
;All the event blocks are kept on a linked list, whose handle
; is stored in G$EVENT. This list is maintained sorted by
; event time, and thus the first entry in the list contains the
; nearest wakeup time. Users may put any amount of data on the
; end of the event block.
; !=======================================================!
; ! ! ENTRY TYPE !
; !-------------------------------------------------------!
; ! UDT AT WHICH TO SIGNAL THE EVENT !
; !-------------------------------------------------------!
; ! ROUTINE TO CALL WHEN THE TIMER GOES OFF !
; !-------------------------------------------------------!
; ! OPTIONAL DATA !
; !=======================================================!
PHASE 0
.EVTYP:! BLOCK 1 ;ENTRY TYPE WORD
EV.TYP==777B35 ;FIELD CONTAINING THE TYPE CODE
%EVCHK==1 ;CHECKPOINT REQUEST
%EVNOT==2 ;FILE ARCHIVE RETRIEVAL NOTIFICATION
%EVLCK==3 ;FILE STRUCTURE UN/LOCK REQUEST
%EVIGN==4 ;IGNORE OBJECT REQUEST
%EVAFT==5 ;/AFTER REQUEST
%EVNLC==6 ;LOCKED STR COUNTDOWN EVENT
.EVUDT:! BLOCK 1 ;UNIVERSAL DATE/TIME FOR WAKEUP
.EVRTN:! BLOCK 1 ;ROUTINE TO CALL AT WAKEUP
;ROUTINE GETS CALLED WITH ADRS OF
;THIS EVENT BLOCK IN S1
.EVMSZ:! ;MINIMUM SIZE OF A BLOCK
DEPHASE
SUBTTL QE - Queue Entry Definitions
; !=======================================================!
; ! LINK TO PREVIOUS ! LINK TO NEXT !
; ! 0 IF THIS IS THE FIRST ! 0 IF THIS IS THE FIRST !
; !=======================================================!
; ! CREATION TIME OF ENTRY (INTERNAL DATE/TIME FORMAT) !
; !-------------------------------------------------------!
; ! POINTER TO OBJECT QUEUE ENTRY FOR THIS REQ !
; !-------------------------------------------------------!
; ! INTERNAL TASK NAME !
; !-------------------------------------------------------!
; / /
; / REQUESTED OBJECT BLOCK /
; / /
; !-------------------------------------------------------!
; / / ;[1263]
; / REMOTE LPT NAME BLOCK / ;[1263]
; / / ;[1263]
; !-------------------------------------------------------!
; / /
; / JOB INFORMATION BLOCK /
; / /
; !-------------------------------------------------------!
; ! ! DEPENDENCY LIST NUMBER !
; !-------------------------------------------------------!
; ! ENTRANCE PRIORITY !
; !-------------------------------------------------------!
; ! THE PROTECTION FIELD ! !
; !-------------------------------------------------------!
; ! SPARE !
; !-------------------------------------------------------!
; ! !
; ! REQUEST LIMIT INFORMATION !
; ! CONTENTS ARE QUEUE DEPENDENT !
; ! 5 WORDS !
; ! !
; !-------------------------------------------------------!
; ! NOTIFY ID !
; !-------------------------------------------------------!
; ! BATCH JOB NUMBER ! USER'S JOB NUMBER !
; !-------------------------------------------------------!
; ! DISK PAGE ADDRESS ! !
; !-------------------------------------------------------!
;
; ! ----- TOPS 20 ----- !
; ! !
; !-------------------------------------------------------!
; ! OWNER (LOGGED IN USER) !
; ! (10 WORDS) !
; !-------------------------------------------------------!
; ! CREATOR'S CONNECTED DIRECTORY !
; ! (12 WORDS) !
; !=======================================================!
PHASE 0
.QELNK:! BLOCK 1 ;LINK WORD
QE.PTP==-1,,0 ;POINTER TO PREVIOUS ENTRY
QE.PTN==0,,-1 ;POINTER TO NEXT ENTRY
QEHSIZ:! ;SIZE OF QUEUE-ENTRY-HEADER
.QECRE:! BLOCK 1 ;INTERNAL CREATION TIME OF THIS ENTRY
.QEOBJ:! BLOCK 1 ;POINTER TO OBJECT SERVICING THIS REQUEST
.QEITN:! BLOCK 1 ;INTERNAL TASK NAME
QE.AVO==770000,,00 ;ACCT VALIDATION OBJECT TYPE (-10 ONLY)
QE.AVI==007777,,-1 ;ACCT VALIDATION ITN (-10 ONLY)
.QEROB:! BLOCK ROBSIZ ;REQUESTED OBJECT BLOCK
.QEONM:! BLOCK LPTNLN ;[1263]REMOTE LPT NAME BLOCK
.QEJBB:! BLOCK JIBSIZ ;JOB INFORMATION BLOCK
.QEDIN:! BLOCK 1 ;DEPENDENCY INFORMATION
QE.DLN==0,,-1 ;DEPENDENCY LIST NUMBER
.QEIPR:! BLOCK 1 ;ENTRANCE PRIORITY FOR THIS ENTRY
.QEPRT:! BLOCK 1 ;REQUEST PROTECTION
QE.PRO==-1,,0 ;THE PROTECTION FIELD
BLOCK 1 ;NOT USED (SPARE)
.QELIM:! BLOCK EQLMSZ ;LIMITS WORDS
.QENID:! BLOCK 1 ;/NOTIFY ID (LOGIN TIME, PID, DIRECTRY NBR)
.QEJBN:! BLOCK 1 ;JOB NUMBERS (For /NOTIFY)
QE.UJN==0,,-1 ;USERS JOB NUMBER (ORIGIONAL JOB NUMBER)
QE.BJN==-1,,0 ;BATCH JOB NUMBER
.QESTN:! BLOCK 1 ;REMOTE INFORMATION
QE.DPA==-1,,0 ;DISK PAGE ADDRESS
QE.NOD==0,,-1 ;[1275]CLUSTER NODE NUMBER WHERE REQUEST ORIGINATED
.QEMDR:! BLOCK 1 ;REQUESTS MDR ADDRESS
.QEACT:! BLOCK EQASSZ ;ACCOUNT STRING (POSSIBLY DIFFERENT FROM .EQACT)
TOPS20 <
.QEOWN:! BLOCK 10 ;REQUEST OWNER
.QECON:! BLOCK 12 ;CONNECTED DIRECTORY
.QEPID:! BLOCK 1 ;[1275]LISSPL'S PID
.QENOD:! BLOCK 1 ;[1301]REQUESTOR'S NODE FOR CLUSTER PRINTING
> ;END TOPS20
QNTSIZ:! ;SIZE OF THE QUEUE ENTRY
SUBTTL JOB INFORMATION BLOCK (.QEJBB) DESCRIPTION
.QEJOB==.QEJBB+JIB.JN ;EXTERNAL JOB NAME
.QESEQ==.QEJBB+JIB.SQ ;EXTERNAL VALUES
QE.SEQ==777700,,0 ;EXTERNAL SEQUENCE NUMBER
QE.NND==1B12 ;[1300]NODE NAME HAS BEEN DEFAULTED TO LOCAL
QE.DLR==1B13 ;[1262]PRINT REQUEST FOR A DQS OR LAT LPT
QE.RLT==1B14 ;[1260]PRINT REQUEST FROM REMOTE NODE
QE.RAI==1B15 ;[1260]ACCTING ENABLED ON REMOTE NODE
QE.LOG==1B16 ;[1302]REQUEST CONTAINS LOG FILES
QE.ALR==1B17 ;ALLOCATION REQUESTED
QE.WAL==1B18 ;BATCH REQUEST WAITING FOR ALLOCATION
QE.WAM==1B19 ;BATCH REQUEST WAITING FOR A MOUNT
QE.ACT==3B21 ;REQUEST REQUIRES ACCOUNT VALIDATION
%VALID==0 ;ACCOUNT STRING IS VALID
%VALRQ==1 ;ACCOUNT VALIDATION IS REQUIRED
%VALPD==2 ;ACCOUNT VALIDATION HAS BEEN REQUESTED
QE.IAS==1B22 ;REQUEST CONTAINS INVALID ACCT STRING
QE.NOT==3B24 ;JOB REQUESTED /NOTIFY
%NOTTY==1 ;NOTIFY VIA USERS TTY
%NOTML==2 ;NOTIFY USER VIA MAIL
%NOTJB==3 ;NOTIFY USERS JOB
QE.JBC==1B25 ;JOB HAS BEEN CHECKPOINTED
QE.HBO==1B26 ;JOB HELD BY OPERATOR
QE.PRV==1B27 ;REQUEST CREATOR WAS PRIVILEGED
QE.SPL==1B28 ;THIS REQUEST CONTAINS SPOOLED FILES
QE.RDE==1B29 ;THIS REQUEST DOESN'T EXIST (CLEAN-UP)
QE.PRI==77B35 ;EXTERNAL PRIORITY
.QEOID==.QEJBB+JIB.US ;OWNER IDENTIFIER
.QERID==.QEJBB+JIB.ID ;REQUEST ID.
TOPS10 <
.QEUSR==.QEJBB+JIB.NM ;USER'S NAME (2 WORDS)
>
DEPHASE
SUBTTL OBJ - Object Queue
;For each object on the system, known to QUASAR, an entry in the OBJ queue
; is made. This queue is used for scheduling and for interfacing with
; the operator control.
; !=======================================================!
; ! Object type code !
; !-------------------------------------------------------!
; ! Unit number of this type !
; !-------------------------------------------------------!
; ! Node name in SIXBIT !
; !-------------------------------------------------------!
; / / ;[1263]
; / Remote LPT name block / ;[1263]
; / / ;[1263]
; !-------------------------------------------------------
; ! Alias name in SIXBIT ! ;[1310]
; !-------------------------------------------------------!
; ! PID which has object setup !
; !-------------------------------------------------------!
; ! ITN of request currently on OBJect !
; !-------------------------------------------------------!
; !SCHEDULER STATE INFORMATION! QUEUE HEADER FOR OBJECT !
; !-------------------------------------------------------!
; ! OBJect Timer Word !
; !-------------------------------------------------------!
; ! OBJect Attributes (DEC defined) !
; !-------------------------------------------------------!
; ! OBJect Attributes (Customer defined) !
; !-------------------------------------------------------!
; \ 5 Word Object specific parameter \
; \ area \
; !-------------------------------------------------------!
; ! CURRENT DEVICE STATUS CODE !
; ! (FILLED IN BY QUASAR, UPDATED BY SPOOLER) !
; !-------------------------------------------------------!
; \ Current status, expressed \
; \ in as an ASCIZ string \
; !=======================================================!
;Define a macro which will allow a mapping between an object type
; and various object-type specific data like the queue in
; which jobs for that object reside, initial object parameters
; etc.
;
;Format for each line is:
; X obj,que,<p1,p2,p3,p4,p5>
;
;where obj is the object type specified as the XXX in .OTXXX
; que is the queue in which jobs reside for this object
; p1 - p5 are the initial contents of the 5 parameter
; words when an object entry is created.
; These are a single macro argument.
DEFINE MAPOBJ,<
X BAT,INP,<<1,,77>,<0,,^D600>,0,<INPOIP,,0>,<1,,^D512>>
X LPT,LPT,<<1,,77>,<1,,^D500>,<FRMNOR>,<FLEACT,,0>,0>
X PTP,PTP,<<1,,77>,<1,,^D500>,<FRMNOR>,<FLEACT,,0>,0>
X CDP,CDP,<<1,,77>,<1,,^D500>,<FRMNOR>,<FLEACT,,0>,0>
X PLT,PLT,<<1,,77>,<1,,^D30>,<FRMNOR>,<FLEACT,,0>,0>
X RDR,RDR,<0,0,0,0,0>
X BIN,BIN,<0,0,0,0,0>
X DBM,DBM,<0,0,0,0,0>
TOPS20 <
X RET,RET,<0,0,0,0,0>
X NOT,NOT,<0,0,0,0,0>
> ;END TOPS20
> ;END DEFINE MAPOBJ
;OBJ definitions are on the following page
PHASE QEHSIZ ;APPEND TO QUEUE ENTRY HEADER
OBJTYP:! BLOCK 1 ;OBJECT TYPE
OBJUNI:! BLOCK 1 ;UNIT NUMBER OF THIS TYPE
OBJNOD:! BLOCK 1 ;NODE THAT THIS UNIT IS ON
;**;[1310]At OBJNOD:+1L replace 1 line with 2 lines PMM 6/3/90
OBJNAM:! BLOCK LPTNLN-1 ;[1310]Remote LPT name block
OBJALI:! BLOCK 1 ;[1310]Sixbit alias name
OBJPID:! BLOCK 1 ;PID WHICH HAS THIS OBJ SETUP
OBJTCR:! BLOCK 1 ;[1276]TTY CHARACTERISTIC
OBJITN:! BLOCK 1 ;ITN OF CURRENT REQUEST ON OBJECT
OBJSCH:! BLOCK 1 ;SCHEDULER STATE INFORMATION
OBSSTA==1B0 ;OBJECT IS STARTED
OBSSUP==1B1 ;OBJECT IS SETUP
OBSBUS==1B2 ;OBJECT IS BUSY
OBSSIP==1B3 ;SETUP IN PROGRESS
OBSIGN==1B4 ;IGNORE THIS FOR A WHILE
OBSDAA==1B5 ;DEVICE (DEC) ATTRIBUTES AVAILABLE
OBSSEJ==1B6 ;SHUTDOWN AT END-OF-JOB
OBSINV==1B7 ;OBJECT IS INVISIBLE
OBSINT==1B8 ;DO AN INTERNAL SHTDWN WHEN QUEUE EMPTYS
OBSHUT==1B9 ;OBJECT IS INTERNALLY SHUTDOWN
OBSFRR==1B10 ;A FREE RUNNING DEVICE.
OBSSTP==1B11 ;STOPPED BY THE OPERATOR
OBSSER==1B12 ;STOP AFTER EVERY REQUEST
OBSSPL==1B13 ;OBJECT IS SPOOLING TO TAPE
OBSATR==1B14 ;DEVICE ATTRIBUTES SET BY PROCESSOR
OBSFRM==1B15 ;FORMS CHANGE SCHEDULED
OBSSNA==1B16 ;OBJECT BELONGS TO SNA WORKSTATION
OBSIBM==1B17 ;Object belongs to an IBM node
OBSQUH==0,,-1 ;ADDRESS OF QUEUE HEADER FOR OBJECT
OBJSC2:! BLOCK 1 ;[1302]SCHEDULDER STATE INFORMATION
OB2LOG==1B0 ;[1302]LOG/SPOOL FILES SCHEDULED
OBJRID:! BLOCK 1 ;[NXT] REQUEST-ID TO SCHEDULE NEXT
OBJDAT:! BLOCK 1 ;DEC-DEFINED ATTRIBUTES
; RO.ATR==-1,,0 ; OBJECT ATTRIBUTES
OBJCAT:! BLOCK 1 ;CUSTOMER-DEFINED ATTRIBUTES
OBJPRM:! BLOCK OBPRSZ ;DEPENDENT PARAMETERS
OBJSTS:! BLOCK 1 ;CURRENT DEVICE STATUS CODE
;FILLED IN BY QUASAR, UPDTED BY SPOOLER
OBJST1:! BLOCK STSSIZ ;CURRENT JOB STATUS IN ASCIZ
;UPDATED BY THE SPOOLER
OBJSIZ:! ;SIZE OF AN OBJ QUEUE ENTRY
;DEFINITIONS OF WORDS WITHIN THE OBJPRM BLOCK
;COMMON MASKS
OBPMIN==-1,,0 ;MINIMUM VALUE
OBPMAX==0,,-1 ;MAXIMUM VALUE
;OUTPUT PARAMETERS (PRINTERS, PAPERTAPE, CARDPUNCH, PLOTTER)
.OOPRI==0 ;MIN AND MAX EXTERNAL PRIORITY
.OOLIM==1 ;MIN AND MAX OUTPUT LIMITS
.OOFRM==2 ;FORMS TYPE
.OOFLG==3 ;OUTPUT FLAGS
.OFLEA==-1,,0 ;FORMS LIMIT EXCEEDED ACTION
.OOTAP==4 ;SIXBIT DEVICE NAME FOR SPOOLING TO TAPE
;CONTINUED FROM THE PREVIOUS PAGE
;BATCH-STREAM PARAMETERS
.OBPRI==0 ;MIN AND MAX EXTERNAL PRIORITY
.OBTIM==1 ;MIN AND MAX RUNTIME LIMITS
.OBFLG==3 ;BATCH STREAM FLAGS
.OPRIN==-1,,0 ;OPERATOR INTERVENTION FLAG
.OPINY==1 ;ALLOW OPERATOR INTERVENTION JOBS
.OPINN==2 ;NO OPERATOR INTERVENTION JOBS
.OBCOR==4 ;MIN AND MAX CORE LIMITS
;Retrieve-stream parameters
.OBSTM==0 ;Time stamp and flag
.OBTAP==1 ;Tape ID
.OBSSN==2 ;Saveset,,tape file #
OB.SSN==-1,,0 ;Saveset
OB.TFN==0,,-1 ;Tape file number
;OBJECT ATTRIBUTES (DEC)
;THESE ATTRIBUTES ARE DEFINED IN SHORT CREATE MESSAGE
;OBSOLETE OBJECT ATTRIBUTES
RO.PHY==1B0 ;PHYSICAL UNIT SPECIFIED
OBDLLC==1B1 ;LOWERCASE PRINTER
OBDLUC==1B2 ;UPPERCASE PRINTER
DEFINE STATUS,<
LSTOF.
X <Invalid>,%INVLD,100
X <Idle>,%IDLE,0
X <Active>,%ACTIV,0
X <Stopped>,%STOPD,0
X <Not Started>,%NSTRT,0
X <Not Available>,%NAVAL,0
X <No Ptys>,%NPTYS,.OTBAT
X <Offline>,%OFLNE,<.OTLPT,.OTPTP,.OTCDP,.OTPLT,.OTRDR>
X <System Full>,%SFULL,.OTBAT
X <Shutting Down>,%SHTDN,0
X <Aborting>,%CNCLG,0
X <Opr Resp Wait>,%OREWT,0
X <Aligning Forms>,%ALIGN,.OTLPT
X <>,%RESET,0
X <Reading>,%READN,.OTRDR
X <Requeing>,%REQUE,0
X <Shutting Down>,%SHUTD,0
X <Opr Output Wait>,%OPRWT,.OTLPT
X <Stop is Pending>,%STPPN,0
X <No processor>,%NOPRC,0
LSTON.> ;END STATUS MACRO
ZZ==0 ;START WITH VALUE OF 0
DEFINE X(A,SYM,VAL),<
SYM==ZZ
%STMAX==ZZ ;;DECLARE MAXIMUM VALUE
ZZ==ZZ+1>
STATUS ;DECLARE THE SYMBOL VALUES
SUBTTL PSB - Processor Status Block
; !=======================================================!
; \ \
; \ The Queue Entry Header \
; \ \
; !=======================================================!
; ! Process ID (PID) !
; !-------------------------------------------------------!
; ! Program Name !
; !-------------------------------------------------------!
; ! Current number of jobs ! Maximum number of jobs !
; !-------------------------------------------------------!
; ! Flags ! Number of OBJect types !
; !-------------------------------------------------------!
; ! !
; \ List of object types \
; \ \
; \ Maximum of 5 types \
; ! !
; !=======================================================!
PHASE QEHSIZ ;APPEND TO THE QUEUE ENTRY HEADER
PSBPID:! BLOCK 1 ;PROGRAM'S PID
PSBNAM:! BLOCK 1 ;PROGRAM NAME
PSBLIM:! BLOCK 1 ;CURRENT AND MAX NUMBER OF JOBS
PSLCUR==-1,,0 ;CURRENT NUMBER OF JOBS
PSLMAX==0,,-1 ;MAXIMUM NUMBER OF JOBS
PSBFLG:! BLOCK 1 ;FLAGS AND NUMBER OF OBJ TYPES
PSFNOT==0,,-1 ;NUMBER OF OBJECT TYPES
PSBOBJ:! BLOCK OBPRSZ ;LIST OF OBJECTS (UP TO OBPRSZ)
PSBSIZ:! ;SIZE OF A PSB
DEPHASE
SUBTTL SPL - Spool Queue Definition
; !=======================================================!
; / /
; / THE QUEUE ENTRY HEADER /
; / /
; !=======================================================!
; \ \
; \ REQUESTED OBJECT BLOCK \
; \ \
; !-------------------------------------------------------!
; ! JOB NUMBER ! RETRIEVAL POINTER !
; !-------------------------------------------------------!
; ! FORMS TYPE !
; !-------------------------------------------------------!
; ! AFTER PARAMETER !
; !-------------------------------------------------------!
; ! NOTE FIELD !
; ! (2 WORDS) !
; !-------------------------------------------------------!
; ! ! REQUEST LENGTH !
; !=======================================================!
PHASE QEHSIZ ;APPEND TO THE QUEUE ENTRY HEADER
SPLOID:! BLOCK 1 ;OWNER'S ID
SPLROB:! BLOCK ROBSIZ ;REQUESTED OBJECT BLOCK
SPLJOB:! BLOCK 1 ;JOB INFORMATION
SPYJOB==-1,,0 ;THE JOB NUMBER
SPYDPA==0,,-1 ;THE RETRIEVAL POINTER
SPLFRM:! BLOCK 1 ;FORMS TYPE
SPLAFT:! BLOCK 1 ;AFTER PARAMETER
SPLNOT:! BLOCK 2 ;NOTE FIELD
SPLRQZ:! BLOCK 1 ;SIZE OF CURRENT REQUEST
SPYLEN==0,,-1 ;THE LENGTH (FROM .MSTYP)
SPLSIZ:! ;SIZE OF THE SPOOL QUEUE ENTRIES
DEPHASE
;DURING Q$FSPL, THE SPL QUEUE IS SCANNED TO COMPRESS MULTIPLE SPOOL REQUESTS INTO A
; SINGLE REQUEST. THE FOLLOWING DECISIONS ARE MADE WITH THE INPUT BEING
; THE CURRENT SPOOL MESSAGE FROM THE MONITOR AND THAT QUEUE AND STATION TESTS
; HAVE SUCCEEDED.
; INPUT CURRENT QUEUE ACTION
; STN. GENERIC STN. GENERIC APPEND
; REAL DEVICE STN. GENERIC APPEND AND CHANGE TO REAL DEVICE
; LL:/LU: STN. GENERIC APPEND AND CHANGE TO LL: OR LU:
; STN. GENERIC REAL DEVICE APPEND
; REAL DEVICE REAL DEVICE APPEND IF DEVICES MATCH
; LL:/LU: REAL DEVICE NEVER APPEND
; STN. GENERIC LL:/LU: APPEND
; REAL DEVICE LL:/LU: NEVER APPEND
; LL:/LU: LL:/LU: APPEND IF BOTH FOR LL: OR FOR LU:
SUBTTL STR - Structure Queue Definition
PHASE QEHSIZ ;APPEND TO QUEUE ENTRY HEADER
IFN FTUUOS,<
STRNAM:! BLOCK 2 ;STRUCTURE NAME
> ;END IFN FTUUOS
IFN FTJSYS,<
STRNAM:! BLOCK ^D16 ;STRUCTURE NAME (TOPS-20) MAX 79 CHARS
> ;END IFN FTJSYS
STRSTS:! BLOCK 1 ;STRUCTURE STATUS
STSSSV==1B0 ;STRUCTURE STATUS VALID
STSONL==1B1 ;STRUCTURE IS ONLINE
STRSIZ:! ;SIZE OF THE STR QUEUE ENTRY
DEPHASE
SUBTTL NETWORK DATA BASE STRUCTURE
; !=======================================================!
; / /
; / THE QUEUE ENTRY HEADER /
; / /
; !-------------------------------------------------------!
; ! SIXBIT NODE (NETWORK) NAME !
; !-------------------------------------------------------!
; ! NODE (NETWORK) NUMBER !
; !-------------------------------------------------------!
; ! ONLINE/OFFLINE STATUS !
; !-------------------------------------------------------!
; \ \
; \ ASCIZ NETWORK NODE NAME \
; \ \
; !-------------------------------------------------------!
; ! CLEAR TO SEND DELAY !
; !-------------------------------------------------------!
; ! RECORDS PER MESSAGE !
; !-------------------------------------------------------!
; ! BYTES PER MESSAGE !
; !-------------------------------------------------------!
; ! SILO WARNING LEVEL !
; !-------------------------------------------------------!
; ! NODE PORT NUMBER ! NODE LINE NUMBER !
; !-------------------------------------------------------!
; ! PORT/LINE HANDLE (FOR DN60 FRONT END) !
; !=======================================================!
PHASE QEHSIZ
TOPS20< NETCOL:! > ;-20 COLLATING SEQ BY NAME
TOPS10< NETLOC:! > ;-10 NOT COLLATING SEQ
NETNAM:! BLOCK 1 ;SIXBIT NODE NAME
TOPS10< NETCOL:! > ;-10 COLLATING SEQ BY NUMBER
TOPS20< NETLOC:! > ;-20 NOT COLLATING SEQ
NETNBR:! BLOCK 1 ;NODE NUMBER
NETSTS:! BLOCK 1 ;FLAG WORD
NT.FLG==777000,,0 ;NETWORK FLAG BITS
NETNSV==1B0 ; ONLINE/OFFLINE STATUS BIT IS VALID
NETONL==1B1 ; ONLINE
NETADD==1B2 ; THIS NODE ADDED LAST PASS
NETIBM==1B3 ; NODE IS DN60 DRIVEN
NETSHT==1B4 ; NETWORK SHUTDOWN IS IN PROGRESS
NETSGN==1B5 ; NODE REQUIRES SIGNON PROCESSING
NETNUP==1B6 ; NODE WAS ONLINE SOMETIME
NETPRO==1B7 ; Proto-actual is online
NETSNA==1B8 ; Node is SNA Workstation
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
NT.TYP==700,,0 ;NETWORK TYPE
DF.DEC==0 ; 'DEC' NODE
DF.378==1 ; 3780 NODE
DF.278==2 ; 2780 NODE
DF.HSP==3 ; HASP NODE
DF.SNA==4 ; SNA NODE
NT.MOD==70,,0 ;NETWORK MODE
DF.TRM==1 ; TERMINATION MODE
DF.EMU==2 ; EMULATION MODE
DF.PRO==3 ; Proto mode
NT.TOU==7,,0 ;PROTOCOL TIMEOUT CATAGORY
ST.PRI==1 ; PRIMARY
ST.SEC==2 ; SECONDARY
NT.DTR==700000 ;DATA TERMINAL READY
ST.ON==1 ; ON
ST.OFF==2 ; OFF
NT.TRA==70000 ;TRANSPARENCY
; ST.ON==1 ; ON
; ST.OFF==2 ; OFF
NT.XTA==7777 ;EXTRA BITS
NETASC:! BLOCK 3 ;ASCIZ NETWORK NODE NAME FOR RAMDOM OUTPUT
NETCLM:! BLOCK 3 ;ASCIZ NETWORK NODE NAME FOR COLUMNIZED OUTPUT
NETDAT:! BLOCK 6 ;NODE DATA
NETSIZ:!
DEPHASE
;
; FOR IBM EMULATION/TERMINATION (DN60) TYPE NODES
;
PHASE NETDAT
NETCSD:! BLOCK 1 ;CLEAR TO SEND DELAY
NETRPM:! BLOCK 1 ;RECORDS PER MESSAGE
NETBPM:! BLOCK 1 ;BYTES PER MESSAGE
NETSWL:! BLOCK 1 ;SILO WARNING LEVEL
NETPTL:! BLOCK 1 ;PORT,,LINE NUMBER
NT.PRT==-1,,0 ;NODE PORT NUMBER
NT.LIN==0,,-1 ;NODE LINE NUMBER
NETIDN:! BLOCK 1 ;PORT/LINE HANDLE (FOR DN60 FRONT END)
DEPHASE
;
; FOR SNA WORKSTATION TYPE NODES
;
PHASE NETDAT
NETGWY:! BLOCK 1 ;SNA GATEWAY NAME (SIXBIT)
NETACC:! BLOCK 3 ;ACCESS NAME
NETNAB:! BLOCK 1 ;SNA NODE ATTRIBUTE BLOCK
NA.LEN==-1,,0 ;NODE ATTRIBUTE BLOCK SIZE
NA.ADR==0,,-1 ;NODE ATTRIBUTE BLOCK ADDRESS
NETNOB:! BLOCK 1 ;SNA NODE OBJECT LIST
DEPHASE
SUBTTL NODE ATTRIBUTE BLOCK (for SNA Workstations)
; !=======================================================!
; / /
; / LOGON DATA /
; / /
; !-------------------------------------------------------!
; / /
; / LOGON MODE /
; / /
; !-------------------------------------------------------!
; / /
; / APPLICATION /
; / /
; !-------------------------------------------------------!
; / /
; / CIRCUIT /
; / /
; !-------------------------------------------------------!
; / /
; / TRANSLATION FILE /
; / /
; !=======================================================!
PHASE 0
NABDAT:! BLOCK 7 ; LOGON Data (ASCIZ)
NABLOM:! BLOCK 2 ; LOGON Mode (ASCIZ)
NABPLU:! BLOCK 2 ; Application (ASCIZ)
NABCIR:! BLOCK 2 ; Circuit (ASCIZ)
NABCHS:! BLOCK FDXSIZ ; Character Translation File
NABSIZ:!
DEPHASE
SUBTTL NODE OBJECT BLOCK (for SNA Workstations)
; !=======================================================!
; ! OBJECT TYPE !
; !-------------------------------------------------------!
; ! OBJECT UNIT !
; !-------------------------------------------------------!
; ! OBJECT NODE !
; !-------------------------------------------------------!
; ! SNA FLAGS !
; !-------------------------------------------------------!
; / /
; ! DESTINATION SPECIFICATION !
; / /
; !=======================================================!
PHASE 0
NOBOBJ:! BLOCK OBJ.SZ ; Object Block
NOBTYP==NOBOBJ ; Type
NOBUNI==NOBOBJ+1 ; Unit
NOBNOD==NOBOBJ+2 ; Node
NOBFLG:! BLOCK 1 ; Flags
NOBSPL==1B0 ; /SPOOL
NOBNTL==1B1 ; /NOTRANSLATE
DSTSIZ==^D100/^D5 ; Reserve room for 100 characters
NOBDST:! BLOCK DSTSIZ ; Destination specification
NOBSIZ:!
DEPHASE
SUBTTL ROUTE TABLE ENTRY DESCRIPTION
; !=======================================================!
; ! SOURCE OBJECT TYPE !
; !-------------------------------------------------------!
; ! SOURCE UNIT NUMBER !
; !-------------------------------------------------------!
; ! SOURCE NODE NAME !
; !-------------------------------------------------------!
; ! ! ;[1263]
; / / ;[1263]
; / SOURCE REMOTE LPT NAME / ;[1263]
; / / ;[1263]
; ! !
; !-------------------------------------------------------!
; ! SOURCE SIXBIT ALIAS NAME ! ;[1310]
; !-------------------------------------------------------!
; ! SOURCE ENABLED FOR LOG/SPOOL REQUESTS ! ;[1302]
; !-------------------------------------------------------!
; ! DESTINATION OBJECT TYPE !
; !-------------------------------------------------------!
; ! DESTINATION UNIT NUMBER !
; !-------------------------------------------------------!
; ! DESTINATION NODE NAME !
; !-------------------------------------------------------!
; ! DESTINATION SIXBIT ALIAS NAME ! ;[1310]
; !-------------------------------------------------------!
; ! !
; / /
; / DESTINATION REMOTE LPT NAME /
; / /
; ! !
; !-------------------------------------------------------!
; ! SOURCE ENABLED FOR LOG/SPOOL REQUESTS ! ;[1302]
; !=======================================================!
;**;[1307]At RTEOB1:-4L add 7 lines JCR 1/19/90
;[1307]The Flag word (.OFLAG) can have the following bits set:
RT.SND==1B0 ;[1307]Default source name used
RT.DND==1B1 ;[1307]Default destination name used
SNDADR==.OHDRS+RTEOB1+ARG.DA+OBJ.ND ;[1307]Source node name offset
DNDADR==.OHDRS+RTEOB2+ARG.DA+OBJ.ND ;[1307]Destination node name offset
PHASE 0
RTEOB1:! BLOCK OBJ.SQ ;[1271] Source object block
RLSFG1:! BLOCK 1 ;[1302]LOG/SPOOL FILES FLAG
RFDLEN:! ;[1263]LENGTH OF A REMOTE FIELD
RTEOB2:! BLOCK OBJ.SQ ;[1271] Destination object block
RLSFG2:! BLOCK 1 ;[1302]LOG/SPOOL FILES FLAG
RTELEN:! ;TABLE ENTRY LENGTH
DEPHASE
SUBTTL CSM - Canonical SPOOL Message
; !=======================================================!
; ! JOB NUMBER ! STATION # ! FLAGS !
; !-------------------------------------------------------!
; ! OWNER'S ID !
; !-------------------------------------------------------!
; \ \
; \ REQUESTED OBJECT BLOCK \
; \ \
; !-------------------------------------------------------!
; ! ENTERED (GTJFN'ED) FILENAME !
; !-------------------------------------------------------!
; ! SIZE OF THE FILE !
; !-------------------------------------------------------!
; ! FLAGS FOR .FPINF OF INCLUDED FILE !
; !-------------------------------------------------------!
; ! FORMS TYPE !
; !-------------------------------------------------------!
; ! OUTPUT LIMIT !
; !-------------------------------------------------------!
; ! AFTER PARAMETER FOR JOB !
; !-------------------------------------------------------!
; ! NOTE FIELD !
; ! (2 WORDS) !
; !-------------------------------------------------------!
; ! ! ADDRESS OF THE FD !
; !=======================================================!
;
; ! ----- TOPS 10 ----- !
; ! !
; !-------------------------------------------------------!
; ! USER'S NAME IN SIXBIT !
; ! (2 WORDS) !
; !-------------------------------------------------------!
; \ \
; \ ASCIZ ACCOUNT STRING \
; \ \
; !=======================================================!
PHASE 0
CSM.JB:! BLOCK 1 ;JOB INFORMATION
CS.JOB==-1,,0 ;JOB NUMBER
CS.LOC==777000 ;NODE NUMBER (20-ONLY)
CS.LOC==777000 ;STATION NUMBER.
CS.FLG==000777 ;FLAGS
CS.DFR==1B27 ;DEFERRED MODE SPOOLING
CSM.OI:! BLOCK 1 ;OWNER'S ID
CSM.RO:! BLOCK ROBSIZ ;REQUESTED OBJECT
CSM.EN:! BLOCK 1 ;ENTER'ED (GTJFN'ED) FILENAME
CSM.FS:! BLOCK 1 ;SIZE OF THE FILE
CSM.FP:! BLOCK 1 ;FLAGS FOR .FPINF OF INCLUDED FILE
CSM.FM:! BLOCK 1 ;FORMS TYPE
CSM.LM:! BLOCK 1 ;OUTPUT LIMIT
CSM.AF:! BLOCK 1 ;AFTER PARAMETER FOR JOB
CSM.NT:! BLOCK 2 ;NOTE FIELD
CSM.FD:! BLOCK 1 ;FILE DESCRIPTOR INFORMATION
CS.FDA==0,,-1 ;ADDRESS OF THE FD TO INCLUDE
TOPS10 <
CSM.US:! BLOCK 2 ;USER NAME (2 WORDS)
CSM.AC:! BLOCK 10 ;ASCIZ ACCOUNT STRING
> ;END TOPS10
CSMSIZ:! ;LENGTH OF THE CANONICAL SPOOL MESSAGE
DEPHASE
SUBTTL CLM - Canonical LOGOUT Message
; !=======================================================!
; ! FUNCTION CODE !
; !-------------------------------------------------------!
; ! JOB NUMBER ! FLAG SETTINGS !
; !=======================================================!
PHASE 0
CLM.FC:! BLOCK 1 ;FUNCTION CODE - CONTAINS:
; .IPCSL IF FROM MONITOR
; .QIFNC IF INTERNAL
CLM.JB:! BLOCK 1 ;JOB INFORMATION
CL.JOB==-1,,0 ;JOB NUMBER
CL.BAT==1B18 ;JOB IS A BATCH JOB
CL.BQE==0,,-1 ;THIS FIELD CONTAINS THE ADDRESS
; OF THE BATCH JOB REQUEST (.QExxx)
; IF IT IS AN INTERNAL CALL
CLMSIZ:! ;LENGTH OF THE CANONICAL LOGOUT MESSAGE
DEPHASE
SUBTTL The Messages and their respective codes
;THE FOLLOWING PAGES CONTAIN THE FORMAT OF THE VARIOUS MESSAGES WHICH
; ARE SENT TO OR BY QUASAR TO VARIOUS SYSTEM COMPONENTS.
;EXTERNAL OPERATIONS
.QOHEL==1 ;HELLO - ESTABLISH CONTACT
.QOREL==2 ;RELEASE - FINISHED A REQUEST
.QOCHE==3 ;CHECKPOINT - FAILSOFT A REQUEST
.QOREQ==4 ;REQUEUE - RETURN A REQUEST
.QONEX==5 ;NEXTJOB - REQUEST GIVEN TO A COMPONENT
.QOABO==6 ;ABORT - STOP PROCESSING THAT REQUEST
.QOCRE==7 ;CREATE - MAKE A REQUEST
.QOLIS==10 ;LIST - GET A CROSS SECTION OF THE QUEUES
.QOMOD==11 ;MODIFY - CHANGE THE PARAMETERS OF A REQUEST
.QOKIL==12 ;KILL - REMOVE A REQUEST
.QOLAN==13 ;ANSWER MESSAGE TO LIST REQUEST
; 14 ;FUNCTION 14 OBSOLETE TEXT MSG (.QOOBS)
.QORCK==15 ;CHECKPOINT-REQUEST MESSAGE
.QODFR==16 ;DEFER MESSAGE
.QOROU==17 ;ROUTING CHANGE
.QOCOU==20 ;COUNT MESSAGE
.QOCAN==21 ;COUNT ANSWER MESSAGE
.QOSUP==22 ;SETUP MESSAGE
.QORSU==23 ;RESPONSE-TO-SETUP MESSAGE
; 24 ;FUNCTION 24 OBSOLETE OPR ACTION MSG (.QOOAC)
.QOHBO==25 ;HOLD/RELEASE MESSAGE
; 26 ;MONITOR SPOOL MESSAGE
; 27 ;MONITOR LOGOUT MESSAGE
.QOMNT==30 ;TAPE MOUNT REQUEST (USER TO QUASAR)
.QOSTU==31 ;DEVICE STATUS UPDATE MESSAGE
.QOMTR==32 ;TAPE MOUNT RELEASE MSG (SAME AS .QOREL)
.QOMTC==33 ;TAPE MOUNT CHKPNT MSG (SAME AS .QOCHE)
.QOMTA==34 ;TAPE MOUNT ABORT MSG (QUASAR TO MTCON)
.QOMAT==35 ;TAPE MOUNT ATTRIBUTES REQUEST
.QONWA==36 ;NODE-WENT-AWAY NOTIFICATION MESSAGE
.QOCQE==37 ;CREATE QUEUE ENTRY (SHORT CREATE MSG)
.QOREC==40 ;TAPE RECOGNIZE MESSAGE (QUASAR TO TAPE LABELER)
.QOTST==41 ;TAPE STATUS MESSAGE (TAPE LABELLER TO QUASAR)
.QOUNL==42 ;TAPE UNLOAD MESSAGE (QUASAR TO TAPE LABELLER)
.QOVMN==43 ;TAPE VOLUME IN USE (REASSIGNED)
; (QUASAR TO TAPE LABELLER)
.QOVDM==44 ;TAPE VOLUME DEASSIGNED (QUASAR TO TAPE LAB)
.QOVSR==45 ;VOLUME SWITCH REQUEST (TAPE LAB TO QUASAR)
.QOVSD==46 ;VOLUME SWITCH DIRECTIVE (QUASAR TO TAPE LAB)
.QOREW==47 ;TAPE REWIND MESSAGE (QUASAR 2 TAPE LABELER)
.QORCT==50 ;REQUEST FOR SYSTEM CATALOG INFO
.QOCAT==51 ;ANSWER TO SYSTEM CATALOG INFO REQUEST
.QOBLD==52 ;BUILD A STRUCTURE (QUASAR 2 TAPE LABELER)
.QODSM==53 ;DISMOUNT A STRUCTURE (QUASAR 2 TAPE LABELER)
.QOACK==54 ;MDA ACK MESSAGE (TAPE LABELER TO QUASAR)
.QOASL==55 ;ADD A STR TO A USERS SEARCH LIST (QUA 2 LBLR)
.QODVS==56 ;DISMOUNT/DEALLOCATE A VOL SET (USER 2 QUASAR)
.QOLAC==57 ;LIST SOME ALLOCATIONS
.QOALC==60 ;BATCH ALLOCATION PROCESSOR MESSAGE
.QOPRM==61 ;ANSWER TO ABOVE (A MOUNT MESSAGE)
.QOIDN==62 ;TAPE INITIALIZATION DONE
.QOFCH==63 ;LPTSPL FORMS CHANGE MESSAGE
.QOIBM==64 ;IBMCOM STATISTICS MESSAGE
.QOGFR==65 ;TOPS20 [SYSTEM]GOPHER
;INTERNAL OPERATIONS
.QIFNC==1B18 ;IF BIT 18 IS SET, THE CALL IS INTERNAL
; AND THE REQUEST MAY BE INTERPRETED
; DIFFERENTLY THAN EXTERNAL CALLS
.QIRET==1B19 ;If bit 18 is set, this is a
;monitor archive request, so
;dont bomb it if queue entry
;is disabled.
.QIMOD==1B20 ;If bit 20 is set, this is a
;modify request, so don't increment
;the external request id number
SUBTTL The HELLO Message - Function 1
; !=======================================================!
; \ \
; \ The Message Header \
; \ \
; !=======================================================!
; ! Program Name !
; !-------------------------------------------------------!
; ! QUASAR Internal Version ! Flags !
; !-------------------------------------------------------!
; ! Number of OBJect Types ! Max no. concurrent jobs !
; !-------------------------------------------------------!
; ! !
; \ List of object types \
; \ \
; \ From 1 to 5 object types allowed \
; ! !
; !=======================================================!
PHASE MSHSIZ ;APPEND TO THE MESSAGE HEADER
HEL.NM:! BLOCK 1 ;PROGRAM NAME
HEL.FL:! BLOCK 1 ;INTERNAL VERSION AND FLAGS
HEFVER==-1,,0 ;INTERNAL VERSION NUMBER (%%.QSR)
HEFFLG==0,,-1 ;MASK FOR FLAGS
HEFBYE==1B18 ;PROCESSOR SAYING "GOOD BYE"
HEL.NO:! BLOCK 1 ;NUMBER OF OBJ TYPES AND MAX NO JOBS
HENNOT==-1,,0 ;NUMBER OF OBJECT TYPES
HENMAX==0,,-1 ;MAXIMUM NUMBER OF JOBS
HEL.OB:! BLOCK OBPRSZ ;LIST OF OBJECTS (UP TO OBPRSZ)
HELOBJ==0,,-1 ;OBJECT TYPE
HELATR==-1,,0 ;DEVICE ATTRIBUTES
HEL.SZ:! ;SIZE OF THE HELLO MESSAGE
DEPHASE
SUBTTL The RELEASE Message - Function 2
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! INTERNAL TASK NAME !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! !
; / /
; / RELEASE MESSAGE TEXT /
; / /
; ! !
; !=======================================================!
; BATCON, IN ADDITION, RETURNS THE FOLLOWING IN ITS RELEASE MESSAGE
; !=======================================================!
; ! FLAG SETTINGS ! THE JOB NUMBER !
; !-------------------------------------------------------!
; ! !
; / /
; / STANDARD FD AREA DESCRIBING THE LOG FILE /
; / /
; ! !
; !=======================================================!
;THE FOLLOWING INFORMATION IS RETURNED BY LPTSPL FOR PRINT REQUESTS
;THAT ORIGINATED ON A REMOTE NODE IN THE CLUSTER
; !=======================================================!
; ! NODE NAME WHERE PRINT REQUEST ORGINATED FROM ! REL.NN
; !-------------------------------------------------------!
; ! RUN TIME ! REL.RT
; !-------------------------------------------------------!
; ! DISK READS ! REL.DR
; !-------------------------------------------------------!
; ! JOB NAME ! REL.JN
; !-------------------------------------------------------!
; ! DEVICE NAME ! REL.DN
; !-------------------------------------------------------!
; ! JOB SEQUENCE NUMBER ! REL.SN
; !-------------------------------------------------------!
; ! TOTAL PAGES PRINTED ! REL.PP
; !-------------------------------------------------------!
; ! TOTAL FILES PROCESSED ! REL.FP
; !-------------------------------------------------------!
; ! CREATION DATE/TIME OF REQUEST ! REL.CD
; !-------------------------------------------------------!
; ! SCHEDULED DATE/TIME ! REL.SD
; !-------------------------------------------------------!
; ! FORMS TYPE ! REL.FT
; !-------------------------------------------------------!
; ! JOB PRIORITY ! REL.JP
; !-------------------------------------------------------!
; ! !
; / /
; / USER NAME / REL.UN
; / /
; ! !
; !-------------------------------------------------------!
; ! !
; / /
; / ACCOUNT STRING POINTER / REL.AS
; / /
; ! !
; !=======================================================!
; ! NUMBER OF FILES TO BE DELETED ! REL.ND
; !=======================================================!
; ! LENGTH OF THE DELETE FILE BLOCK ! REL.FB
; !-------------------------------------------------------!
; ! !
; / THE ASCIZ STRING NAME OF THE FILE AS /
; / DEV:[DIRECTORY]FILE.EXT.GEN /
; ! !
; !=======================================================!
; / /
; / /
; / /
; / /
; !=======================================================!
; ! LENGTH OF THE DELETE FILE BLOCK ! REL.FB
; !-------------------------------------------------------!
; ! !
; / THE ASCIZ STRING NAME OF THE FILE AS /
; / DEV:[DIRECTORY]FILE.EXT.GEN /
; ! !
; !=======================================================!
PHASE MSHSIZ
REL.IT:! BLOCK 1 ;INTERNAL TASK NAME
REL.FL:! BLOCK 1 ;FLAG WORD
RF.DEC==777777B17 ;LF FOR DEC
RF.ABO==1B0 ;JOB ABORTED (OUTPUT) OR FATAL ERROR (INPUT)
RF.REM==1B1 ;[1260]CORRESPONDS TO A REMOTE PRINT REQUEST
RF.ACT==1B2 ;[1260]ACCOUNTING INFORMATION IS INCLUDED
RF.DEL==1B3 ;[1260]NAMES OF FILES TO BE DELETED ARE INCLUDED
RF.CST==777777B35 ;RH FOR WSM
REL.TX:! BLOCK STSSIZ ;RELEASE MESSAGE TEXT
REL.SZ:! ;SIZE OF THE RELEASE MESSAGE
DEPHASE
;BATCON INCLUDES THE FOLLOWING:
PHASE REL.SZ
REL.BJ:! BLOCK 1 ;BATCH JOB INFORMATION
RL.DLG==1B0 ;DELETE THE LOG FILE AFTER PRINTING
RL.SPL==1B1 ;LOG FILE IS SPOOLED
RL.JOB==0,,-1 ;THE JOB NUMBER
REL.FD:! BLOCK FDXSIZ ;RESERVE SPACE FOR THE MAXIMUM FD RETURNED
REL.BL:! ;MAXIMUM LENGTH OF A BATCON RELEASE
DEPHASE
;[1260]LPTSPL, WHEN PROCESSING PRINT REQUESTS THAT ORIGINATED ON A REMOTE NODE
;[1260]IN THE CLUSTER, INCLUDES THE FOLLOWING:
PHASE REL.SZ
REL.NN:! BLOCK 1 ;[1260]NODE NAME
REL.RT:! BLOCK 1 ;[1260]RUN TIME
REL.DR:! BLOCK 1 ;[1260]DISK READS
REL.JN:! BLOCK 1 ;[1260]JOB NAME
REL.DN:! BLOCK 1 ;[1260]DEVICE NAME
REL.SN:! BLOCK 1 ;[1260]JOB SEQUENCE NUMBER
REL.PP:! BLOCK 1 ;[1260]PAGES PRINTED
REL.FP:! BLOCK 1 ;[1260]TOTAL FILES PROCESSED
REL.CD:! BLOCK 1 ;[1260]CREATION DATE/TIME OF REQUEST
REL.SD:! BLOCK 1 ;[1260]SCHEDULED DATE/TIME
REL.FT:! BLOCK 1 ;[1260]FORMS TYPE
REL.JP:! BLOCK 1 ;[1260]JOB PRIORITY
REL.UN:! BLOCK EQNMSZ ;[1260]USER NAME
REL.AS:! BLOCK EQASSZ ;[1260]ACCOUNT STRING POINTER
REL.ND:! BLOCK 1 ;[1260]NUMBER OF FILES TO BE DELETED
REL.RS:! ;[1260]MINIMUM SIZE OF THE RELEASE MESSAGE
DEPHASE
;[1260]For each file to be deleted, there is a corresponding DELETE FILE block
;[1260]that contains the name of the file. The format of a DELETE FILE block
;[1260]is:
PHASE 0
REL.FB:! BLOCK 1 ;[1260]LENGTH WORD
REL.FS:! ;[1260]FIRST WORD OF THE FILE SPECIFICATION
DEPHASE
SUBTTL The CHECKPOINT and REQUEUE messages - Functions 3 and 4
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! INTERNAL TASK NAME !
; !-------------------------------------------------------!
; ! !
; / CHECKPOINT/REQUEUE INFORMATION /
; / /
; / (5 WORDS) /
; ! !
; !-------------------------------------------------------!
; ! AFTER TIMER (REQ) !
; !=======================================================!
PHASE MSHSIZ
REQ.IT:! BLOCK 1 ;INTERNAL TASK NAME
REQ.FL:! BLOCK 1 ;REQUEUE FLAGS
RQ.HBO==1B0 ;HOLD BY OPR
RQ.RLC==1B1 ;RESTART AT LAST CHECKPOINT
;I.E. DONT UPDATE CHECKPOINT INFO
RQ.TIM==777 ;TIME IN MINUTES TO WAIT BEFORE RESCHEDULING
REQ.IN:! BLOCK EQCKSZ ;CHECKPOINTING INFORMATION
REQ.SZ:!
DEPHASE
PHASE MSHSIZ
CHE.IT:! BLOCK 1 ;INTERNAL TASK NAME
CHE.FL:! BLOCK 1 ;FLAG WORD
CH.FCH==1B0 ;DO A CHECKPOINT
CH.FST==1B1 ;UPDATE STATUS
CH.JBN==0,,-1 ;BATCH JOB NUMBER
CHE.MS:! ;MINIMUM SIZE OF CHECKPOINT MESSAGE
CHE.IN:! BLOCK EQCKSZ ;CHECKPOINT INFORMATION
CHE.ST:! BLOCK STSSIZ ;SPOOLER STATUS
CHE.SZ:!
DEPHASE
;Definition of the request limit words for each object type
DEFINE DEFLIM(NAME,WORD,SIZE,POS),<
RADIX 5+5
IF1,<IFDEF L.'NAME,<PRINTX Mult. defined limit parameter NAME>>
IFL <36-SIZE>,<PRINTX Illegal size for limit NAME>
IFL <35-POS>,<PRINTX Illegal position for limit NAME>
IFLE <EQLMSZ-WORD>,<PRINTX Illegal word for limit NAME>
L.'NAME==<BYTE (18) WORD (9) SIZE,POS>
RADIX 4+4
> ;END DEFINE DEFLIM
;Batch job parameters
DEFLIM UNIQ,0,2,1 ;/UNIQUE
DEFLIM REST,0,2,3 ;/RESTART
DEFLIM OINT,0,2,5 ;/OPRINT (OPR INTERVENTION)
DEFLIM OUTP,0,3,8 ;/OUTPUT
DEFLIM BSPR,0,9,17 ;(SPARE BITS FOR INPUT DEPENDENCY)
DEFLIM DEPN,0,18,35 ;/DEPENDENCY
DEFLIM CORE,1,18,17 ;/CORE
DEFLIM TIME,1,18,35 ;/TIME
DEFLIM SLPT,2,18,17 ;SPOOLED LPT LIMIT
DEFLIM SCDP,2,18,35 ;SPOOLED CDP LIMIT
DEFLIM SPTP,3,18,17 ;SPOOLED PTP LIMIT
DEFLIM SPLT,3,18,35 ;SPOOLED PLT LIMIT
DEFLIM ONOD,4,36,35 ;BATCH OUTPUT DESTINATION NODE
DEFLIM BLOG,5,2,1 ;/BATLOG
;Output job parameters
DEFLIM FORM,0,36,35 ;FORMS
DEFLIM NBLK,1,18,17 ;NUMBER OF BLOCKS
DEFLIM OLIM,1,18,35 ;OUTPUT LIMIT
DEFLIM NOT1,2,36,35 ;FIRST HALF OF NOTE
DEFLIM NOT2,3,36,35 ;SECOND HALF OF NOTE
DEFLIM FLEA,4,2,1 ;FORMS-LIMIT-EXCEEDED ACTION (SET BY OPR)
;Batch input parameters
DEFLIM CJOB,1,18,17 ;NUMBER OF JOBS
DEFLIM CTIM,2,36,35 ;START TIME
DEFLIM CNOD,3,36,35 ;NODE AT WHICH READER IS LOCATED
TOPS20 <
;Archive tape parameters
DEFLIM TDTD,0,36,35 ;DUMPER timestamp
DEFLIM TUFT,0,1,0 ;Use 1st tape rather than 2nd if on
DEFLIM TDAT,0,35,35 ;Actual time stamp
DEFLIM TID1,1,36,35 ;Tape 1 ID
DEFLIM TTN1,2,36,35 ;Saveset and tape file #
DEFLIM TTS1,2,18,17 ; Saveset 1
DEFLIM TTF1,2,18,35 ;Tape file # 1
DEFLIM TID2,3,36,35 ;Tape 2 ID
DEFLIM TTN2,4,36,35 ;Saveset and tape file # 2
DEFLIM TTS2,4,18,17 ;Saveset 2
DEFLIM TTF2,4,18,35 ;Tape file # 2
> ;END TOPS20 CONDITIONAL
DEFINE GETLIM(AC,BLOCK,NAME),<
IFNDEF L.'NAME,<PRINTX Undefined limit parameter NAME>
..Z==BLOCK
..O==<L.'NAME&777777000000>_-^D18
..Z==..Z+..O
..S==<L.'NAME&777000>_-^D9
..P==<L.'NAME&777>
..P==^D35-..P
..Z==..Z+<..S>B11+<..P>B5
LDB AC,[EXP ..Z]
> ;END DEFINE GETLIM
DEFINE STOLIM(AC,BLOCK,NAME),<
IFNDEF L.'NAME,<PRINTX Undefined limit parameter NAME>
..Z==BLOCK
..O==<L.'NAME&777777000000>_-^D18
..Z==..Z+..O
..S==<L.'NAME&777000>_-^D9
..P==<L.'NAME&777>
..P==^D35-..P
..Z==..Z+<..S>B11+<..P>B5
DPB AC,[EXP ..Z]
> ;END DEFINE STOLIM
DEFINE WIDLIM(NAME),<<L.'NAME&777000>_-^D9>
DEFINE MAXLIM(NAME),<<1_<WIDLIM(NAME)>>-1>
SUBTTL The NEXTJOB and CREATE Messages - Functions 5 and 7
; The NEXTJOB Message, Function 5, is the message which instructs a
; known component to process a job. The CREATE Message, Function 7, is
; sent to QUASAR by an unknown component as a request to create a job in
; one of the external queues. Both of these messages are in the form of
; the External Queue Entry (EQ).
;
; The External Queue Entry (EQ) consists of a header section followed by
; a list of file-specifications.
;
; The header section has three (3) parts:
;
; 1. The operating system independent header which is required and
; is the same on both operating systems.
;
; 2. The operating system dependent header which immediately
; follows the operating system independent header. It is
; required and is different for each operating system.
;
; The above parts comprise the minimum header size EQHSIZ.
;
;
; 3. The operating system dependent optional parameters which when
; present immediately follow the operating system dependent
; part of the header.
;
;
; The length of the entire header for a given request is stored in the
; header in .EQLEN<EQ.LOH>.
;
; Following the header sections is a list of one or more
; file-specifications. Each file-spec consists of a File-Parameter area
; (FP) followed by the standard File Descriptor area (FD).
SUBTTL EQ - The External Queue Entry
; !=======================================================!
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !=======================================================!
; ! INTERNAL TASK NAME (ITN) !
; !-------------------------------------------------------!
; ! INTERNAL REQUEST VERSION ! LENGTH OF HEADER !
; !-------------------------------------------------------!
; \ \
; \ REQUESTED OBJECT BLOCK \
; \ \
; !-------------------------------------------------------!
; \ \
; \ JOB INFORMATION BLOCK \
; \ \
; !-------------------------------------------------------!
; ! REQUEST PROTECTION CODE !NUMBER OF FILES IN REQUEST !
; !-------------------------------------------------------!
; ! SPARE EQ FIELD !
; !-------------------------------------------------------!
; ! AFTER PARAMETER (INTERNAL DATE/TIME FORMAT) !
; !-------------------------------------------------------!
; ! SPARE !
; !-------------------------------------------------------!
; ! !
; \ REQUEST LIMIT INFORMATION \
; \ CONTENTS ARE QUEUE DEPENDENT \
; \ 5 WORDS \
; ! !
; !-------------------------------------------------------!
; ! !
; \ REQUEST CHECKPOINT INFORMATION \
; \ MAINTAINED BY KNOWN COMPONENTS \
; \ EQCKSZ WORDS \
; ! !
; !-------------------------------------------------------!
; ! !
; \ ACCOUNT STRING \
; \ \
; \ 8 WORDS \
; ! !
; !-------------------------------------------------------!
; ! !
; ! THE LAST FEW WORDS OF THE "EQ" HEADER !
; ! ARE OPERATING SYSTEM DEPENDENT AS FOLLOWS !
;
;
; ! ----- TOPS 10 ----- !
; ! !
; !-------------------------------------------------------!
; ! USER NAME IN SIXBIT !
; ! (2 WORDS) !
; !=======================================================!
; ! !
; \ PATH SPECIFICATION \
; \ (OPTIONAL) \
; \ SIX WORDS \
; ! !
; !=======================================================!
;
; ! ----- TOPS 20 ----- !
; ! !
; !-------------------------------------------------------!
; ! !
; \ REQUEST OWNER SPECIFICATION \
; \ \
; \ (10 WORDS) \
; ! !
; !-------------------------------------------------------!
; ! !
; \ CONNECTED DIRECTORY OF REQUEST CREATOR \
; \ \
; \ (12 WORDS) \
; ! !
; !=======================================================!
; ! SPOOLED INPUT SET HANDLE !
; !=======================================================!
PHASE MSHSIZ
.EQITN:! BLOCK 1 ;INTERNAL TASK NAME
.EQLEN:! BLOCK 1 ;LENGTH WORD
EQ.VRS==-1,,0 ;VERSION NUMBER OF REQUEST (%%.QSR)
EQ.LOH==0,,-1 ;LENGTH OF THE HEADER ( e.g. EQHSIZ)
.EQROB:! BLOCK ROBSIZ ;REQUESTED OBJECT BLOCK
.EQJBB:! BLOCK JIBSIZ ;JOB INFORMATION BLOCK
.EQSPC:! BLOCK 1 ;FILE SPECIFICATION WORD
EQ.PRO==-1,,0 ;REQUEST PROTECTION
EQ.NUM==0,,-1 ;NUMBER OF FILES IN THE REQUEST
TOPS20< BLOCK 1 ;SPARE (TOPS20 ONLY) >
.EQAFT:! BLOCK 1 ;AFTER PARAMETER (INTERNAL FORMAT)
.EQLIM:! BLOCK EQLMSZ ;NOTE THAT EQLMSZ IS DEFINED IN
;THE OVERALL STRUCTURE DEFINITION
.EQCHK:! BLOCK EQCKSZ ;CHECKPOINT/REQUEUE INFORMATION
.EQACT:! BLOCK EQASSZ ;ACCOUNT STRING
.EQUSR:! BLOCK 5 ;ASCIZ /USER:name (MAX 24 CHARS)
.EQBOX:! BLOCK ^D10 ;ASCIZ STRING FOR ROUTING OUTPUT REQUESTS
;IE. /LOC:"ROOM 203, BOX 25"
.EQCST:! BLOCK ^D10 ;CUSTOMER USE ONLY
.EQNOD:! BLOCK 1 ;[1260]NODE WHERE PRINT REQUEST ORIGINATED FROM
.EQCHR:! BLOCK 4 ;[1262]DQS CHARACTERISTICS BIT MASK
.EQNAM:! BLOCK 1 ;[1267]REMOTE LPT NAME HEADER (FILLED BY QUASAR)
.EQRPN:! BLOCK 7 ;[1262]VMS QUEUE NAME/ LAT PORT OR SERVICE NAME
.EQNJN:! BLOCK 1 ;[1275]NODE AND JOB NUMBER OF REMOTE LPT REQUEST
EQ.NNM==-1,,0 ;[1275]NODE NUMBER WHERE PRINT REQUEST ORIGINATED
EQ.JNM==0,,-1 ;[1275]JOB NUMBER OF REMOTE USER
.EQPID:! BLOCK 1 ;[1275]PID OF LISSPL
.EQPRI:! BLOCK 1 ;[1302]LOG/SPOOL FILE REQUESTS
EQ.LOG==1B0 ;[1302]REQUEST CONTAINS LOG FILES
EQ.SPO==1B1 ;[1302]REQUEST CONTAINS SPOOLED FILES
.EQDEC:! BLOCK 4 ;[1302]FOR DEC USE ONLY
EQISIZ:!
;END OF OPERATING SYSTEM INDEPENDENT HEADER - MORE OF CREATE MESSAGE FOLLOWS
;THIS IS THE JOB INFORMATION BLOCK STRUCTURE DESCRIPTION
.EQJOB==.EQJBB+JIB.JN ;JOB NAME (SIXBIT)
.EQSEQ==.EQJBB+JIB.SQ ;EXTERNAL VALUES
EQ.SEQ==777700,,0 ;EXTERNAL SEQUENCE NUMBER
EQ.NND==1B12 ;[1300]NODE NAME HAS BEEN DEFAULTED TO LOCAL
EQ.DLR==1B13 ;[1262]PRINT REQUEST IS FOR A REMOTE PRINTER
EQ.RLT==1B14 ;[1260]PRINT REQUEST FROM A REMOTE CLUSTER NODE
EQ.RAI==1B15 ;[1260]ACCOUNTING ENABLED ON REMOTE CLUSTER NODE
EQ.CHP==1B16 ;Priority change has occurred
EQ.ALR==1B17 ;ALLOCATION REQUESTED
EQ.WAL==1B18 ;BATCH REQUEST WAITING FOR ALLOCATION
EQ.WAM==1B19 ;BATCH REQUEST WAITING FOR A MOUNT
EQ.ACT==3B21 ;REQUEST REQUIRES ACCOUNT VALIDATION
%VALID==0 ;ACCOUNT STRING IS VALID
%VALRQ==1 ;ACCOUNT VALIDATION IS REQUIRED
%VALPD==2 ;ACCOUNT VALIDATION HAS BEEN REQUESTED
EQ.IAS==1B22 ;REQUEST CONTAINS AN INVALID ACCT STRING
EQ.NOT==3B24 ;JOB REQUESTED /NOTIFY
EQ.JBC==1B25 ;JOB HAS BEEN CHECKPOINTED
EQ.HBO==1B26 ;JOB HELD BY OPERATOR
EQ.PRV==1B27 ;REQUEST CREATOR WAS PRIVILEGED
EQ.SPL==1B28 ;REQUEST CONTAINS SPOOLED FILES
EQ.RDE==1B29 ;THIS REQUEST DOESN'T EXIST (CLEAN-UP)
EQ.PRI==77B35 ;EXTERNAL PRIORITY
.EQOID==.EQJBB+JIB.US ;-10(PPN), -20(USER NUMBER)
.EQRID==.EQJBB+JIB.ID ;REQUEST ID
TOPS10 <
.EQOWN==.EQJBB+JIB.NM ;TOPS-10 USER NAME IN SIXBIT (2 WORDS)
>
;BEGINNING OF OPERATING SYSTEM DEPENDENT HEADER
TOPS20 <
.EQOWN:! BLOCK EQNMSZ ;EXTERNAL OWNER SPECIFICATION
.EQCON:! BLOCK 12 ;CONNECTED DIRECTORY
> ;END TOPS20 CONDITIONAL
;END OF OPERATING SYSTEM DEPENDENT HEADER
;BEGINNING OF OPERATING SYSTEM DEPENDENT OPTIONAL PARAMETERS
TOPS10 < ;MAKE ROOM FOR THE INPUT QUEUE PATH SPEC
.EQPAT:! BLOCK 6 ;PATH
.EQPSZ:! ;SIZE OF HEADER WITH PATH
> ;END TOPS10 CONDITIONAL
TOPS20 <
.EQSIS:! BLOCK 1 ;HANDLE FOR SPOOLED INPUT SET
> ;END TOPS20 CONDITIONAL
EQHSIZ:! ;TO DEFINE THE EQ HEADER SIZE
EQXSIZ:! ;MAXIMUM "DEFINED" SIZE OF AN EQ
;THIS MAXIMUM SHOULD NOT BE ENFORCED SINCE
; VARIOUS USER APPLICATIONS MAY PASS MORE
DEPHASE
; !=======================================================!
; ! LENGTH OF FILE-PARAM AREA ! !
; !-------------------------------------------------------!
; !FILE FMT !PAPR FMT!SPACING ! FLAGS ! COPIES !
; !-------------------------------------------------------!
; ! STARTING INFORMATION (CUSP DEPENDENT) !
; !-------------------------------------------------------!
; ! /REPORT WORD 1 !
; !-------------------------------------------------------!
; ! /REPORT WORD 2 !
; !-------------------------------------------------------!
; !RCRD FMT! ! RECORD LGTH !
; !-------------------------------------------------------!
; ! RECORD COUNT !
; !-------------------------------------------------------!
; ! UNIQUE FIELD OF THE NAME OF A TEMPORARY FILE !
; !=======================================================!
PHASE 0
.FPLEN:! BLOCK 1 ;SIZE WORD
FP.LEN==-1,,0 ;SIZE OF THE FP
PHASE 1 ;OUTPUT QUEUES
.FPINF:! BLOCK 1 ;FILE PARAMETER INFORMATION
FP.FFF==77B5 ;FILE FORMAT
.FPFAS==1 ;ASCII
.FPFFO==2 ;FORTRAN
.FPFCO==3 ;COBOL
.FPFAI==4 ;AUGMENTED IMAGE (FOR BIN QUEUE)
.FPFSA==5 ;STREAM ASCII (FOR BIN QUEUE)
.FPF11==6 ;ELEVEN
.FPFIM==7 ;IMAGE (FOR XFR QUEUE)
.FPF8B==10 ;8 BIT ASCII FILE
.FPMAX==.FPF8B ;MAX FP VALUE DEFINED
FP.FPF==77B11 ;PAPER FORMAT (SEE THE NEXT PAGE)
FP.FSP==77B17 ;SPACING CODE
FP.DEL==1B18 ;ON = DELETE THIS FILE
FP.FLG==1B19 ;THIS IS THE LOG FILE
FP.NFH==1B20 ;NO FILE HEADERS
FP.SPL==1B21 ;THIS IS A SPOOLED FILE
FP.PCR==1B22 ;SPOOLED CARD READER FILE
FP.REN==1B23 ;/DISPOSE:RENAME FILE
FP.NRA==1B24 ;[1260]USER DOES NOT HAVE READ ACCESS (CLUSTER LPT)
FP.CPY==1B25 ;[1260]FILE HAS A TEMPORARY COPY OF IT (CLUSTER LPT)
FP.XXX==1B26 ;[1260]EXTRA FLAG BIT
FP.FCY==777B35 ;COPY COUNT
.FPFST:! BLOCK 1 ;STARTING POINT INFORMATION
.FPFR1:! BLOCK 1 ;/REPORT WORD 1
.FPFR2:! BLOCK 1 ;/REPORT WORD 2
TOPS10<
.FPONM:! BLOCK 1 ;ORIGINAL FILE NAME IF /DISP:REN
.FPOXT:! BLOCK 1 ;ORIGINAL EXTENSION IF /DISP:REN
>
FPMSIZ:! ;[1272]MINUMUM FP AREA SIZE
.FPTEM:! BLOCK 1 ;[1260]UNIQUE PART OF TEMPORARY FILE NAME
FPXSIZ:! ;MAXIMUM FP AREA SIZE
PHASE 1 ;BIN QUEUE
.FPINF:! BLOCK 1 ;FP INFORMATION (SEE NEXT PAGE)
FP.RCF==77B5 ;RECORD FORMAT
FP.RCL==777B35 ;RECORD LENGTH (FOR FIXED FORMAT)
.FPRCD:! BLOCK 1 ;RECORD COUNT
PHASE 1 ;BATCH QUEUE (FOR SNA WORKSTATIONS)
.FPINF:! BLOCK 1 ;FP INFORMATION
FP.TAB==1B24 ;Preserve tabs
FP.NXL==1B25 ;No Translate
FP.RCL==777B35 ;RECORD LENGTH (FOR FIXED FORMAT)
DEPHASE
;PAPER FORMATS FOR LPT QUEUE (/PRINT)
%FPLAR==1 ;ARROW FORMAT
%FPLAS==2 ;ASCII FORMAT
%FPLOC==3 ;OCTAL FORMAT
%FPLSU==4 ;SUPPRESS FORMAT
;PAPER FORMATS FOR PTP QUEUE (/TAPE)
%FPTAS==1 ;ASCII FORMAT
%FPTIM==2 ;IMAGE FORMAT
%FPTIB==3 ;IMAGE BINARY FORMAT
%FPTBI==4 ;BINARY FORMAT
;PAPER FORMATS FOR CDP QUEUE (/PUNCH)
%FPCAS==1 ;ASCII FORMAT
%FPCBC==2 ;026 (BCD) FORMAT
%FPCBI==3 ;BINARY FORMAT
%FPCIM==5 ;IMAGE FORMAT
;PAPER FORMAT FOR PLT QUEUE (/PLOT)
%FPPIM==1 ;IMAGE FORMAT
%FPPAS==2 ;ASCII FORMAT
%FPPBI==3 ;BINARY FORMAT
;VALUES FOR .EQLM1<EQ.OUT> (/OUTPUT FIELD)
%EQONL==1 ;NO LOG
%EQOLG==2 ;LOG FILE ALWAYS
%EQOLE==3 ;LOG FILE ON ERROR ONLY
;VALUES FOR .EQLM1<EQ.UNI> (/UNIQUE FIELD)
%EQUNO==1 ;/UNIQUE:NO
%EQUYE==2 ;/UNIQUE:YES
;VALUES FOR .EQLM1<EQ.RST> (/RESTART FIELD)
%EQRNO==1 ;/RESTART:NO
%EQRYE==2 ;/RESTART:YES
;VALUES FOR .EQLIM WORD 6 (BATCH ONLY) (/BATLOG: FIELD)
%BAPND==1 ;APPEND OUTPUT LOG
%BSCDE==2 ;SUPERSEDE OUTPUT LOG
%BSPOL==3 ;SPOOL OUTPUT LOG
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
;DEFINITIONS FOR XFR QUE FP
FP.RFM==FP.FPF ;RECORD FORMAT INSTEAD OF PAPER FORMAT
FP.MRS==FP.FCY ;MAXIMUM RECORD SIZE INSTEAD OF COPIES
;VALUES FOR RECORD FORMAT (FP.RFM)
%FPXFI==1 ;FIXED LENGTH RECORDS
%FPXVA==2 ;VARIABLE LENGTH RECORDS
;VALUE FOR FILE RETREIVAL .EQLM1<EQ.UFT>
%EQUFT==1B0 ;USE FIRST TAPE NOT SECOND IF LIT
SUBTTL The ABORT Message - Function 6
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! INTERNAL TASK NAME !
; !-------------------------------------------------------!
; ! OBJECT TYPE !
; !-------------------------------------------------------!
; ! UNIT NUMBER !
; !-------------------------------------------------------!
; ! NODE !
; !-------------------------------------------------------!
; ! REASON CODE !
; !-------------------------------------------------------!
; ! ID OF PERSON REQUESTING THE CANCEL !
; !=======================================================!
PHASE MSHSIZ
ABO.IT:! BLOCK 1 ;INTERNAL TASK NAME
ABO.TY:! BLOCK 1 ;OBJECT TYPE
ABO.UN:! BLOCK 1 ;UNIT NUMBER
ABO.NO:! BLOCK 1 ;NODE
ABO.CD:! BLOCK 1 ;CODE INDICATING CAUSE OF MESSAGE
ABOUSR==1 ; BY USER REQUEST
ABORMU==2 ; [1306]BY A REMOTE USER
ABO.ID:! BLOCK 1 ;ID OF PERSON REQUESTING THE KILL
ABO.SZ:! ;SIZE OF THE ABORT MESSAGE
;[1306]The following two blocks are added on by QUASAR if the abort
;[1306]request originated remotely
ABO.RU:! BLOCK EQNMSZ ;[1306]REMOTE REQUESTOR NAME
ABO.ND:! BLOCK 1 ;[1306]REMOTE REQUESTOR'S NODE NAME
DEPHASE
SUBTTL The LIST Message - Function 10
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! ARGUMENT COUNT !
; !=======================================================!
; ARGUMENT DATA BLOCK
; !-------------------------------------------------------!
; ! LENGTH OF ARGUMENT BLOCK ! TYPE OF ARGUMENT !
; !-------------------------------------------------------!
; \ \
; \ DATA FOR THE ARGUMENT \
; \ \
; !=======================================================!
;THE FLAG WORD (.OFLAG) CAN HAVE THE FOLLOWING BITS LIT:
LS.FST==1B1 ;YOU WANT A QUICK QUEUES LISTING.
LS.ALL==1B2 ;YOU WANT TO SEE EVERYTHING !!!
;THE LIST QUEUES MESSAGE MAY CONTAIN THE FOLLOWING BLOCKS
.LSQUE==0 ;THE QUEUES YOU WANT TO LIST.
.LSUSR==1 ;THE USER ID FOR THE QUEUE ENTRYS YOU WANT.
.LSUSM==2 ;THE USER ID MASK (FOR .LSUSR)
.LSJOB==3 ;THE JOB NAME YOU WANT TO LIST
.LSJBM==4 ;THE JOB NAME MASK (FOR .LSJOB)
.LSUNT==5 ;THE UNIT NUMBER YOU WANT TO LIST
.LSDND==6 ;THE DESTINATION NODE (WHERE OUTPUT GOES)
.LSPND==7 ;THE PROCESSING NODE (WHERE BATCH JOBS RUN)
.LSPID==10 ;[1264]PID OF SENDER FOR I O/DESTINATION-NODE
.LSUNM==11 ;[1301]REMOTE USER NAME BLOCK
; .ORNOD ;THE NODE WHOSE QUEUE ENTRIES YOU WANT
;THE .LSQUE BLOCK AND ITS POSSIBLE VALUES IS DEFINED BELOW.
LIQBAT==1B0 ;LIST THE BATCH QUEUE
LIQLPT==1B1 ;LIST THE PRINTER QUEUE
LIQCDP==1B2 ;LIST THE CARD-PUNCH QUEUE
LIQPTP==1B3 ;LIST THE PAPER-TAPE PUNCH QUEUE
LIQPLT==1B4 ;LIST THE PLOTTER QUEUE
LIQMNT==1B6 ;LIST THE TAPE MOUNT QUEUE
LIQRET==1B7 ;LIST THE RETRIEVAL QUEUE
LIQALC==1B8 ;LIST THE JOBS ALLOCATION
LIQOUT==LIQLPT+LIQCDP+LIQPTP+LIQPLT ;LIST ALL OUTPUT QUEUES.
LIQALL==LIQOUT+LIQBAT+LIQRET+LIQMNT ;LIST ALL THE QUEUES.
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
; !=======================================================!
; ! 2 ! .LSQUE !
; !-------------------------------------------------------!
; ! THE QUEUE(S) YOU WANT TO LIST !
; !=======================================================!
;THE .LSUSR BLOCK IS DEFINED BELOW.
; !=======================================================!
; ! 2 ! .LSUSR !
; !-------------------------------------------------------!
; ! THE USER ID (PPN ON THE -10) OF THE !
; ! QUEUE ENTRYS YOU WANT !
; !=======================================================!
;THE .ORNOD BLOCK IS DEFINED BELOW
; !=======================================================!
; ! 2 ! .ORNOD !
; !-------------------------------------------------------!
; ! SIXBIT NODE NAME or OCTAL NODE # !
; !=======================================================!
SUBTTL The MODIFY Message - Function 11
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! QUEUE NAME !
; !-------------------------------------------------------!
; ! !
; \ REQUEST DESCRIPTOR BLOCK (RDB) \
; \ \
; \ TO DESCRIBE MODIFY REQUEST \
; ! !
; !-------------------------------------------------------!
; THE FOLLOWING BLOCK IS DUPLICATED FOR EACH "GROUP" TO BE MODIFIED
; THE LENGTH OF THE BLOCK IS DEPENDENT ON THE GROUP.
; IF AN ELEMENT IS NOT TO BE CHANGED, SPECIFY -1 AS THE VALUE.
; ELEMENTS ARE POSITIONAL WITHIN A GROUP AND NO ENDING INDICATION IS NECESSARY
; AS THE VARIOUS LENGTH FIELDS DETERMINE THE NEXT OR END OF THE MESSAGE
; FOR DESCRIPTIONS OF THE GROUP ELEMENTS AND POSITIONS THE READER IS DIRECTED TO:
; QSRQUE - MAJMOD FOR MAJOR REQUEST GROUP 0
; QSRSCH - MODIFIERS FOR QUEUE DEPENDENT GROUP 1
; !=======================================================!
; ! GROUP NUMBER ! WORD COUNT !
; !=======================================================!
PHASE MSHSIZ
MOD.OT:! BLOCK 1 ;OBJECT TYPE
MOD.RQ:! BLOCK RDBSIZ ;REQUEST DESCRIPTOR BLOCK
MOD.SZ:! ;MINIMUM SIZE OF A MODIFY REQUEST
MOD.FG:! ;FIRST GROUP WORD IN MODIFY REQUEST
PHASE 0 ;RELATIVE OFFSET
MOD.GN:! BLOCK 1 ;GROUP WORD
MODGPN==-1,,0 ;THE GROUP NUMBER
.GPMAJ==0 ;MAJOR PARAMETERS (AFTER, PRIORITY, etc...)
.GPQUE==1 ;QUEUE DEPENDENT (FORMS, TIME LIMIT, etc...)
MODGLN==0,,-1 ;THE NUMBER OF ELEMENTS (INCLUDING THIS WORD)
MOD.GE:! ;THE FIRST GROUP ELEMENT TO BE MODIFIED
DEPHASE
;IF MODIFYING /DEPENDENCY COUNT FOR INPUT QUEUES, 3 FORMS ARE RECOGNIZED
.MODAB==0 ;NEW VALUE IS ABSOLUTE CHANGE
.MODPL==1 ;NEW VALUE IS ADDITIVE
.MODMI==2 ;NEW VALUE IS SUBTRACTIVE
SUBTTL The KILL Message - Function 12
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! QUEUE NAME !
; !-------------------------------------------------------!
; ! !
; \ REQUEST DESCRIPTOR BLOCK (RDB) \
; \ \
; \ TO DESCRIBE KILL REQUEST \
; ! !
; !-------------------------------------------------------!
PHASE MSHSIZ
KIL.OT:! BLOCK 1 ;OBJECT TYPE
KIL.RQ:! BLOCK RDBSIZ ;REQUEST DESCRIPTOR BLOCK
KIL.PD:! BLOCK 1 ;[1264]PID OF THE SENDER FOR CANCEL PRINT/DEST
KIL.ND:! BLOCK 1 ;[1267]REMOTE NODE NAME FOR CANCEL PRINT/DEST
KIL.SZ:! ;SIZE OF KILL ENTRY
KIL.RU:! BLOCK EQNMSZ ;[1306]REMOTE REQUESTOR'S NAME (FILLED IN BY
DEPHASE ;[1306]QUASAR
SUBTTL THE LIST ANSWER MESSAGE.
;THE LIST ANSWER MESSAGE IS CONSTRUCTED AS FOLLOWS:
; !=======================================================!
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !=======================================================!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! ARGUMENT COUNT !
; !=======================================================!
; ! HEADER LENGTH ! HEADER BLOCK TYPE (.WTTYP) !
; !-------------------------------------------------------!
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !-------------------------------------------------------!
; ! ANSWER LENGTH ! ANSWER BLOCK TYPE (.WTTXT) !
; !-------------------------------------------------------!
; \ \
; \ THE QUEUES LISTING IN ASCIZ \
; \ \
; !=======================================================!
;THE FLAG WORD CAN CONTAIN THE FOLLOWING BITS:
WT.MOR==WT.MOR ;MORE DISPLAY PAGES COMMING.
;THIS IS ORIGIONALLY DEFINED IN ORNMAC.
SUBTTL The REQUEST FOR CHECKPOINT Message - Function 15
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! INTERNAL TASK NUMBER !
; !-------------------------------------------------------!
; ! OBJECT TYPE !
; !-------------------------------------------------------!
; ! UNIT NUMBER !
; !-------------------------------------------------------!
; ! NODE !
; !=======================================================!
PHASE MSHSIZ
RCK.IT:! BLOCK 1 ;THE ITN
RCK.TY:! BLOCK 1 ;THE OBJECT TYPE
RCK.UN:! BLOCK 1 ;THE UNIT NUMBER
RCK.NO:! BLOCK 1 ;THE NODE
RCK.SZ:! ;THE SIZE OF THE REQUEST FOR CHECKPOINT MESSAGE
DEPHASE
SUBTTL The DEFER Message - Function 16
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! QUEUE NAME FOR THE REQUEST (0 IF ALL) !
; !-------------------------------------------------------!
; ! FLAGS ! FUNCTION ! JOB NUMBER !
; !=======================================================!
PHASE MSHSIZ
DFR.OT:! BLOCK 1 ;THE OBJECT TYPE ( 0 IF ALL)
DFR.JB:! BLOCK 1 ;JOB INFORMATION
DF.FNC==777B17 ;THE FUNCTION REQUESTED
.DFREL==0 ;RELEASE ALL DEFERRED FILES
.DFKIL==1 ;KILL ALL DEFERRED FILES
DF.JOB==0,,-1 ;THE JOB NUMBER
DFR.SZ:! ;SIZE OF THE DEFER MESSAGE
DEPHASE
SUBTTL Event Counters
;QUASAR MAINTAINS A SET OF EVENT COUNTERS FOR VARIOUS EVENTS THAT
; MIGHT BE OF INTEREST. THESE COUNTERS ARE PRIMARILY FOR THE
; USE OF SOFTWARE DEVELOPMENT PEOPLE TO HELP KEEP A HANDLE ON
; WHAT IS REALLY HAPPENING INSIDE OF QUASAR.
;
;TWO MESSAGES EXIST TO HANDLE THESE COUNTERS:
; COUNT FUNCTION 20 SENT TO REQUEST CURRENT COUNTS
; CNTANSWER FUNCTION 21 SENT AS RESPONSE TO COUNT MESSAGE
;FOLLOWING ARE THE MACROS USED TO MANIPULATE THE COUNTERS:
DEFINE X(A,B),<
LSTOF.
INTERN $$'A
$$'A==$$
IFIDN <MNXT><A>,<$$==$$+.OTMAX>
$$==$$+1
LSTON.> ;END DEFINE X
DEFINE $COUNT(A),<
IFNDEF $$'A,<
PRINTX UNDEFINED COUNTER A USED
>
IFNDEF G$ITEM,<EXTERN G$ITEM>
AOS G$ITEM+$$'A
> ;END DEFINE $COUNT
DEFINE $SITEM(AC,A),<
IFNDEF $$'A,<
PRINTX UNDEFINED COUNTER A USED
>
IFNDEF G$ITEM,<EXTERN G$ITEM>
STORE AC,G$ITEM+$$'A
> ;END DEFINE $SITEM
;THE COUNTERS ARE DEFINE ON THE NEXT PAGE
;THE COUNTERS
DEFINE $ITEM,<
LSTOF.
X (ICNT,NUMBER OF ITEMS IN RECORD)
X (NOW,CURRENT TIME OF DAY)
X (STAR,QUASAR START TIME)
X (QJOB,QUASARS JOB NUMBER)
X (IPCI,TOTAL NUMBER OF IPCF INTERRUPTS RECEIVED)
X (RIPC,IPCF MESSAGES RECEIVED)
X (SIPC,IPCF MESSAGES SENT)
X (IPCF,IPCF SEND FAILURES)
X (IPCU,UNRECOVERABLE IPCF SEND FAILURES)
X (MREL,RELEASE MESSAGES RECEIVED)
X (MCHK,CHECKPOINT MESSAGES RECEIVED)
X (MREQ,REQUEUE MESSAGES RECEIVED)
X (MNXT,TOTAL NEXTJOB MESSAGES SENT BY TYPE)
X (MLST,LIST MESSAGES RECEIVED)
X (NLAP,LISTANSWER PAGES SENT)
X (SCRE,SUCCESSFUL CREATES DONE)
X (MMOD,MODIFY MESSAGES RECEIVED)
X (MKIL,KILL MESSAGES RECEIVED)
X (MDEF,DEFER MESSAGES RECEIVED)
X (ISPL,IMMEDIATE SPOOL MESSAGES RECEIVED)
X (DSPL,DEFFERED SPOOL MESSAGES RECEIVED)
X (MCAN,COUNTANSWER MESSAGES SENT)
X (SLCD,SCHEDULER LOOP COUNTDOWNS)
X (DEAD,MDA DEADLOCK AVOIDANCE CALLS)
X (DFAL,DEADLOCK AVOIDANCE FAILURES)
X (VSWM,VOLUME SWITCH TAPE MOUNT)
X (TAPM,TAPE MOUNT)
X (STRM,PHYSICAL STRUCTURE MOUNT)
X (USTM,USER STRUCTURE MOUNT)
X (GENM,GENERIC MOUNT)
X (TINP,TERMINATION BATCH REQUESTS)
X (TOUT,TERMINATION PRINT REQUESTS)
X (TCNI,TERMINATION CONSOLE INPUT)
X (TCNO,TERMINATION CONSOLE OUTPUT)
X (EINP,EMULATION BATCH REQUESTS)
X (EOUT,EMULATION PRINT REQUESTS)
X (ECNI,EMULATION CONSOLE INPUT)
X (ECNO,EMULATION CONSOLE OUTPUT)
LSTON.> ;END DEFINE $ITEM
$$=0 ;START CLEAN
$ITEM ;NOW CALL IT
NITEMS=$$ ;TOTAL NUMBER OF ITEMS
SUBTTL The COUNT Message - Function 20
PHASE MSHSIZ
COU.SZ:! ;SIZE OF COUNT MESSAGE
DEPHASE
SUBTTL The COUNTANSWER Message - Function 21
PHASE MSHSIZ
CAN.BL:! BLOCK NITEMS ;BLOCK OF ITEMS
CAN.SZ:! ;SIZE OF COUNTANSWER MESSAGE
DEPHASE
SUBTTL The SETUP/SHUTDOWN Message - Function 22
;The SETUP message is sent to cause a component to service an object for
; which there is a job. The SHUTDOWN message is sent to cause a
; component to give up control of a object.
; !=======================================================!
; \ \
; \ The Message Header \
; \ \
; !=======================================================!
; ! Flags !
; !-------------------------------------------------------!
; ! Type of OBJect to set up !
; !-------------------------------------------------------!
; ! Unit number of OBJect to set up !
; !-------------------------------------------------------!
; ! Node to set up OBJect at !
; !-------------------------------------------------------!
; / / [1271]
; / Queue name (if DQS LPTSPL) / [1271]
; / or Port or Service name (if LAT LPTSPL) / [1271]
; / / [1271]
; !-------------------------------------------------------! [1271]
; / DN60 line conditioning block (if DN60) / [1271]
; !-------------------------------------------------------! [1271]
; ! Network Status Bits !
; !-------------------------------------------------------!
; ! TTY LPTSPL SIXBIT characteristics word ! [1271]
; !-------------------------------------------------------! [1271]
; ! (SNA only) Gateway node in SIXBIT ! [1271]
; !-------------------------------------------------------! [1271]
; ! (SNA only) Access Name ! [1271]
; !-------------------------------------------------------! [1271]
; / (SNA only) SNA Attribute Block / [1271]
; !=======================================================!
PHASE MSHSIZ ;START WITH STD. MESSAGE HEADER
SUP.FL:! BLOCK 1 ;FLAGS
SUFSHT==1B0 ;SHUTDOWN INSTEAD OF SETUP
SPLTAP==1B1 ;BIT FOR PRINTER SPOOLER (SPOOL TO TAPE)
LOCSPL==1B2 ;[1260]A LOCAL LPTSPL
CLUSPL==1B3 ;[1260]A CLUSTER LPTSPL (CLUSPL)
DQSSPL==1B4 ;[1260]A DQS LPTSPL (DQSSPL)
LATSPL==1B5 ;[1260]A LAT LPTSPL (LATSPL)
TTYSPL==1B6 ;[1260]A TERMINAL LPTSPL (TTYSPL)
SUP.TY:! BLOCK 1 ;TYPE OF OBJECT TO SET UP FOR
SUP.UN:! BLOCK 1 ;UNIT NUMBER, OF THIS TYPE, TO SET UP
SUP.NO:! BLOCK 1 ;SIXBIT NODE AT WHICH TO SET UP OBJ
SUP.QN:! BLOCK LPTNLN ;[1271] Queue, port or service name
SUP.CN:! BLOCK 7 ;DN60 LINE CONDITIONING BLOCK
SUP.ST:! BLOCK 1 ;NETWORK STATUS/FLAG BITS OR TAPE/TTY
;SEE 'NETSTS' BIT VALUES
SUP.CR:! BLOCK 1 ;[1267]TTY LPT CHARACTERISTICS WORD
SUP.MS:! ;[1261]MINIMUM SIZE OF A SETUP MESSAGE
;THE FOLLOWING BLOCKS ARE USED BY SNA PROCESSING
SUP.GW:! BLOCK 1 ;Gateway node in sixbit
SUP.AN:! BLOCK 3 ;Access Name
SUP.AB:! BLOCK NABSIZ ;SNA Attribute Block
SUP.SZ:! ;SIZE OF THE SETUP MESSAGE
DEPHASE
SUBTTL The RESPONSE-TO-SETUP Message - Function 23
;The RESPONSE-TO-SETUP message is sent to QUASAR by a known component
; after the component receives a SETUP message for an object.
; !=======================================================!
; \ \
; \ The Message Header \
; \ \
; !=======================================================!
; ! The OBJect Type !
; !-------------------------------------------------------!
; ! The OBJect Unit Number !
; !-------------------------------------------------------!
; ! The NODE at which the OBJect Resides !
; !-------------------------------------------------------!
; / Queue name (if DQS LPTSPL) / [1272]
; / or Port or Service name (if LAT LPTSPL) / [1272]
; !-------------------------------------------------------!
; ! The RESPONSE Code !
; !-------------------------------------------------------!
; ! RESPONSE REASON !
; !-------------------------------------------------------!
; ! The DEC Device Attributes !
; !-------------------------------------------------------!
; ! Prototype Node Name !
; !-------------------------------------------------------! [1271]
; ! TTY LPTSPL SIXBIT characteristics word ! [1271]
; !=======================================================!
PHASE MSHSIZ ;STANDARD MESSAGE HEADER
RSU.TY:! BLOCK 1 ;OBJECT TYPE
RSU.UN:! BLOCK 1 ;UNIT NUMBER
RSU.NO:! BLOCK 1 ;NODE
RSU.ND:! BLOCK LPTNLN ;[1272] Queue, port or service name
RSU.CO:! BLOCK 1 ;RESPONSE CODE
%RSUOK==0 ;SETUP OK
%RSUNA==1 ;OBJECT NOT AVAILABLE (TRY AGAIN LATER)
%RSUDE==2 ;OBJECT DOESNT EXIST (DONT TRY AGAIN)
%RSUNC==3 ;OBJECT PORT/LINE NOT CONDITIONED
RSU.CD:! BLOCK 1 ;RESPONSE REASON
;SEE OBJECT STATUS CODES IN OBJECT
; QUEUE DESCRIPTION
RSU.DA:! BLOCK 1 ;DEC DEVICE ATTRIBUTES
RSU.PN:! BLOCK 1 ;Prototype node name (SIXBIT)
RSU.CR:! BLOCK 1 ;[1270] TTY LPT characteristics word
RSU.SZ:! ;[1264]MINIMUM SIZE OF A RELEASE MESSAGE
DEPHASE
SUBTTL The HOLD/RELEASE Message - Function 25
; !=======================================================!
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !=======================================================!
; ! THE OBJECT QUEUE !
; !-------------------------------------------------------!
; ! FLAGS !
; !-------------------------------------------------------!
; \ \
; \ REQUEST DESCRIPTOR BLOCK \
; \ \
; !=======================================================!
PHASE MSHSIZ ;STANDARD MESSAGE HEADER
HBO.OT:! BLOCK 1 ;OBJECT TYPE (QUEUE)
HBO.FL:! BLOCK 1 ;FLAGS
HB.FRL==1B0 ;RELEASE FLAG
HBO.RQ:! BLOCK RDBSIZ ;THE RDB SPECIFIED
HBO.SZ:! ;SIZE OF THE HBO MESSAGE
DEPHASE
SUBTTL The SPOOL Message - Function 26 (sent by IPCC)
IFN FTUUOS,<
; !=======================================================!
; ! LENGTH ! FUNCTION 26 - SPOOL !
; !-------------------------------------------------------!
; ! ! JOB NUMBER ! JBTLOC(J) ! FLAGS !
; !-------------------------------------------------------!
; ! USERS NAME !
; ! 2 SIXBIT WORDS !
; !-------------------------------------------------------!
; ! DEVICE INIT'ED BY THE USER !
; !-------------------------------------------------------!
; ! STRUCTURE CONTAINING THE FILE !
; !-------------------------------------------------------!
; ! MONITOR GENERATED FILE NAME !
; !-------------------------------------------------------!
; ! ENTERED FILE NAME !
; !-------------------------------------------------------!
; ! FILE SIZE !
; !-------------------------------------------------------!
; ! FILE EXTENSION ! !
; !-------------------------------------------------------!
; ! NUMBER OF COPIES !
; !-------------------------------------------------------!
; ! FORMS NAME !
; !-------------------------------------------------------!
; ! OUTPUT LIMIT !
; !-------------------------------------------------------!
; !SFL! FLAGS !DEV TYPE !
; !-------------------------------------------------------!
; ! DEVICE ATTRIBUTES !
; !-------------------------------------------------------!
; ! NODE !
; !-------------------------------------------------------!
; ! AFTER PARAMETER !
; !-------------------------------------------------------!
; \ \
; \ ASCIZ ACCOUNT STRING \
; \ \
; !=======================================================!
PHASE 0
SPL.HD:! BLOCK 1 ;THE HEADER FROM IPCC
SPL.JB:! BLOCK 1 ;USERS JOB NUMBER
SP.STR==177000,,0 ;BATCH STREAM NUMBER
SP.JOB==777,,0 ;THE JOB NUMBER CLOSING THE SPOOLED FILE
SP.LOC==777B26 ;CURRENT REMOTE STATION (.LOCATE n)
SP.BAT==1B27 ;THIS IS FOR A BATCH JOB
SP.DFR==1B28 ;DEFERRED MODE SPOOLING
SPL.US:! BLOCK 2 ;THE USERS NAME (2 SIXBIT WORDS)
SPL.DV:! BLOCK 1 ;DEVICE INIT'ed BY THE USER (e.g. LPT0:)
SPL.ST:! BLOCK 1 ;STRUCTURE CONTAINING THIS FILE
SPL.FN:! BLOCK 1 ;MONITOR GENERATED FILE NAME
SPL.EN:! BLOCK 1 ;ENTERED FILE NAME
SPL.FS:! BLOCK 1 ;FILE SIZE (IN BLOCKS)
SPL.EX:! BLOCK 1 ;FILE EXTENSION
SP.EXT==-1,,0 ;IN LEFT HALF
SPL.CP:! BLOCK 1 ;# COPIES
SPL.FM:! BLOCK 1 ;FORMS NAME
SPL.LM:! BLOCK 1 ;OUTPUT LIMIT
SPL.SF:! BLOCK 1 ;SPOOLING FLAGS
SP.FLG==3B2 ;SPOOLING FLAG LOCATION
.SPDFD==1 ;DEFERED SPOOLING
.SPDFI==2 ;IMMEDIATE SPOOLING
SP.TYP==77 ;TYPE OF EDVICE
SPL.DA:! BLOCK 1 ;DEVICE ATTRIBUTES
SPL.ND:! BLOCK 1 ;NODE
SPL.AF:! BLOCK 1 ;AFTER PARM
BLOCK 2 ;SPARE SPOOLED PARAMETER WORDS
SPL.AC:! BLOCK 10 ;ASCIZ ACCOUNT STRING
SPL.SZ:! ;SIZE OF THE SPOOL MESSAGE
DEPHASE
> ;END IFN FTUUOS
IFN FTJSYS,<
; !=======================================================!
; ! FUNCTION 26 - SPOOL !
; !-------------------------------------------------------!
; ! # HEADER WORDS ! JOB NUMBER !
; !-------------------------------------------------------!
; ! FLAGS ! STATION NUMBER !
; !-------------------------------------------------------!
; ! PROGRAM NAME !
; !-------------------------------------------------------!
; ! BYTE SIZE ! NUMBER OF PAGES IN FILE !
; !-------------------------------------------------------!
; ! BYTE COUNT WHICH WOULD ADDRESS EOF !
; !-------------------------------------------------------!
; ! !
; / FILESPEC FOR SPOOLED FILE /
; ! !
; !=======================================================!
PHASE 0
SPL.HD:! BLOCK 1 ;HEADER FROM IPCC
SPL.JB:! BLOCK 1 ;JOB INFORMATION
SP.NHW==-1,,0 ;NUMBER OF HEADER WORDS
SP.JOB==0,,-1 ;JOB NUMBER
SPL.FL:! BLOCK 1 ;FLAGS
SP.BAT==1B0 ;JOB MAKE REQUEST IS A BATCH JOB
SP.DFR==1B1 ;REQUEST IS DEFERED
SP.LOC==0,,-1 ;STATION NUMBER
SPL.PG:! BLOCK 1 ;NAME OF PROGRAM WRITING FILE
SPL.BV:! BLOCK 1 ;CONTENTS OF FDBBYV
SP.SIZ==0,,-1 ;NUMBER OF PAGES IN FILE
SPL.EF:! BLOCK 1 ;BYTE COUNT WHICH ADDRESSES TO EOF
SPL.FI:! ;BEGINNING OF FILESPEC FOR SPOOLED FILE
SPL.SZ:! ;SPOOL MSG SIZE
DEPHASE
> ;END IFN FTJSYS
SUBTTL The LOGOUT Message - Function 27 (sent by IPCC)
IFN FTUUOS,<
; !=======================================================!
; ! LENGTH ! FUNCTION 27 - LOGOUT !
; !-------------------------------------------------------!
; ! ! JOB NUMBER ! JBTLOC(J) ! FLAGS !
; !=======================================================!
PHASE 0
LGO.HD:! BLOCK 1 ;THE HEADER FROM IPCC
LGO.JB:! BLOCK 1 ;USERS JOB NUMBER
LG.STR==177000,,0 ;BATCH STREAM NUMBER
LG.JOB==777,,0 ;THE JOB NUMBER
LG.LOC==777B26 ;THE CURRENT LOCATION
LG.BAT==1B27 ;THIS IS A BATCH JOB
LG.DFR==1B28 ;DEFERRED MODE SPOOLING
LG.BSS==1B29 ;BATCH STREAM NUMBER SET
LGO.SZ:! ;SIZE OF THE LOGOUT MESSAGE
DEPHASE
> ;END IFN FTUUOS
IFN FTJSYS,<
; !=======================================================!
; ! FUNCTION 27 - LOGOUT !
; !-------------------------------------------------------!
; ! NO. OF HEADER WORDS ! JOB NUMBER !
; !-------------------------------------------------------!
; ! FLAGS ! STATION NUMBER !
; !=======================================================!
PHASE 0
LGO.HD:! BLOCK 1 ;HEADER FROM IPCC
LGO.JB:! BLOCK 1 ;JOB INFORMATION
LG.NHW==-1,,0 ;NUMBER OF HEADER WORDS
LG.JOB==0,,-1 ;JOB NUMBER
LGO.FL:! BLOCK 1 ;FLAG WORD
LG.BAT==1B0 ;THIS WAS A BATCH JOB
LG.DFR==1B1 ;DEFERRED MODE SPOOLING
LG.LOC==0,,-1 ;JOBS STATION NUMBER
LGO.SZ:! ;SIZE OF THE LOGOUT MESSAGE
DEPHASE
> ;END IFN FTJSYS
SUBTTL MONITOR LOGIN MESSAGE PROCESSOR
TOPS10 <
PHASE 0
LGN.HD:! BLOCK 1 ;MESSAGE HEADER (LEN,,TYPE)
LGN.JB:! BLOCK 1 ;JOB DATA (SAME AS LGO.JB)
LGN.US:! BLOCK 2 ;SIXBIT USER NAME
LGN.PV:! BLOCK 1 ;USER PRIV WORD
LGN.TT:! BLOCK 1 ;USER TTY NUMBER (SIXBIT/TTYxxx/)
DEPHASE
> ;END TOPS10 CONDITIONAL
SUBTTL TAPE ONLINE MESSAGE Function 31 (sent by IPCC)
TOPS10 <
; !=======================================================!
; ! Length ! Function code !
; !-------------------------------------------------------!
; ! Device Name (Sixbit) !
; !-------------------------------------------------------!
; ! !Device Type !
; !=======================================================!
PHASE 0
.TONHD:! BLOCK 1 ;TAPE ONLINE MESSAGE HEADER
.TONDV:! BLOCK 1 ;TAPE ONLINE DEVICE
.TONST:! BLOCK 1 ;TAPE ONLINE DEVICE TYPE
TON.TY==77 ;DEVICE TYPE
DEPHASE
>
SUBTTL THE DEVICE STATUS UPDATE MESSAGE - FUNCTION 31
; !====================================================== !
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !=======================================================!
; \ \
; \ THE REQUESTED OBJECT BLOCK \
; \ (including queue/port/service name) \ [1271]
; !=======================================================!
; ! THE DEVICE STATUS CODE !
; !=======================================================!
PHASE MSHSIZ ;STANDARD MESSAGE HEADER
STU.RB:! BLOCK OBJ.SQ ;[1271] The object block you want
STU.CD:! BLOCK 1 ;THE DEVICE STATUS CODE
STU.SZ:!
DEPHASE
SUBTTL TAPE DEASSIGN/DISMOUNT MESSAGE (IPCC FUNCTION 34)
; !=======================================================!
; ! 3 ! 34 !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !-------------------------------------------------------!
; ! DEVICE TYPE !
; !-------------------------------------------------------!
; ! JOB NUMBER !
; !=======================================================!
PHASE 0
.TDHDR:! BLOCK 1 ;HEADER
.TDDEV:! BLOCK 1 ;SIXBIT DEVICE NAME
.TDDVT:! BLOCK 1 ;DEVICE TYPE
.TDJBN:! BLOCK 1 ;USER JOB NUMBER
DEPHASE
SUBTTL Job reset message (IPCC function 37)
; !=======================================================!
; ! 2 ! 37 !
; !-------------------------------------------------------!
; ! Job number !
; !=======================================================!
PHASE 0
.RSTHD:! BLOCK 1 ;MESSAGE HEADER
.RSTJB:! BLOCK 1 ;JOB NUMBER
DEPHASE
SUBTTL Disk unit ATTACH/DETACH Message (IPCC FCN 42/43)
; !=======================================================!
; ! 4 ! 42/43 !
; !-------------------------------------------------------!
; ! SIXBIT UNIT NAME !
; !-------------------------------------------------------!
; ! PRIMARY PORT !
; !-------------------------------------------------------!
; ! SECONDARY PORT !
; !=======================================================!
PHASE 0
.ATTHD:! BLOCK 1 ;MESSAGE HEADER
.ATTUN:! BLOCK 1 ;AFFECTED UNIT NAME
.ATTPR:! BLOCK 1 ;NEW PRIMARY PORT
.ATTSC:! BLOCK 1 ;NEW SECONDARY PORT OR 0
DEPHASE
SUBTTL Disk unit XCHANGE Message (IPCC function 44)
; !=======================================================!
; ! 3 ! .IPCXC (44) !
; !-------------------------------------------------------!
; ! First unit name in SIXBIT !
; !-------------------------------------------------------!
; ! Second unit name in SIXBIT !
; !=======================================================!
PHASE 0
.XCHHD:! BLOCK 1 ;MESSAGE HEADER
.XCHU1:! BLOCK 1 ;FIRST UNIT NAME IN SIXBIT
.XCHU2:! BLOCK 1 ;SECOND UNIT NAME IN SIXBIT
DEPHASE
SUBTTL Structure removal message (IPCC function 45)
; !=======================================================!
; ! 2 ! .IPCRM (45) !
; !-------------------------------------------------------!
; ! Structure name in SIXBIT !
; !=======================================================!
PHASE 0
.REMHD:! BLOCK 1 ;MESSAGE HEADER
.REMSN:! BLOCK 1 ;STRUCTURE NAME IN SIXBIT
DEPHASE
SUBTTL Magtape unit accessible message (IPCC function 46)
; !=======================================================!
; ! 2 ! .IPCMT (45) !
; !-------------------------------------------------------!
; ! Magtape unit name in SIXBIT !
; !=======================================================!
PHASE 0
.MTAHD:! BLOCK 1 ;MESSAGE HEADER
.MTAUN:! BLOCK 1 ;MAGTAPE UNIT NAME IN SIXBIT
DEPHASE
SUBTTL NODE-WENT-AWAY NOTIFICATION MESSAGE (FUNCTION 36)
; !=======================================================!
; ! !
; ! MESSAGE HEADER !
; ! !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! ARGUMENT COUNT !
; !-------------------------------------------------------!
; THE ONLY BLOCK DEFINED FOR THIS MESSAGE IS .OROBJ
; IT DEFINES THE NODE WHICH WENT OFFLINE
; The .OFLAG word will contain a port,,line # if the node was
; an IBM remote. It will be zero otherwise.
; Also: If the %ONLINE bit is lit in .MSFLG then this msg
; is a Node-Online Message
%ONLINE==1B3 ;MAKE THIS A NODE ONLINE MESSAGE
SUBTTL .QOCQE - CREATE QUEUE ENTRY MESSAGE (FUNCTION 37)
; !=======================================================!
; ! !
; ! MESSAGE HEADER !
; ! !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! ARGUMENT COUNT !
; !-------------------------------------------------------!
;THE MESSAGE BLOCK TYPES ARE:
.QCFIL==10 ;FILE SPEC BLOCK
;This block is the Standard Galaxy FD with .QCFIL put in
;the right half of the .FDLEN word.
.QCCOP==11 ;NUMBER OF COPIES BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCCOP !
; !-------------------------------------------------------!
; ! THE NUMBER OF COPIES OF THE FILE TO !
; ! BE OUTPUT !
; !-------------------------------------------------------!
.QCFRM==12 ;FORMS TYPE BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCFRM !
; !-------------------------------------------------------!
; ! THE FORMS TYPE YOU WANT (SIXBIT) !
; !-------------------------------------------------------!
.QCPTP==13 ;FILE FORMAT BLOCK (ASCII, FORTRAN, ETC)
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCPTP !
; !-------------------------------------------------------!
; ! THE FILE FORMAT TYPE (SEE .FPINF - FP.FFF) !
; !-------------------------------------------------------!
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
.QCODP==14 ;/DISP: OUTPUT DISPOSITION BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCODP !
; !-------------------------------------------------------!
; ! OUTPUT FILE DISPOSITION %PRESERVE or %DELETE !
; !-------------------------------------------------------!
%PRESERVE==0 ;DONT DELETE FILE AFTER PROCESSING
%DELETE==1 ;DELETE FILE AFTER PROCESSING
%RENAME==2 ;RENAME THE FILE INTO DSK:[3,3]
.QCUNT==15 ;UNIT TYPE (/UNIT:, /LOWER, /UPPER)
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCUNT !
; !-------------------------------------------------------!
; ! DEVICE ATTRUBUTES ( %LOWER,%UPPER,%GENRC,%PHYCL) !
; !-------------------------------------------------------!
.QCAFT==16 ;/AFTER BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCAFT !
; !-------------------------------------------------------!
; ! /AFTER TIME (IN UDT FORMAT) !
; !-------------------------------------------------------!
.QCLIM==17 ;LIMIT BLOCK (/TIME:, /PAGES:, ETC)
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCLIM !
; !-------------------------------------------------------!
; ! LIMIT BLOCK (# OF PAGES,ETC or TIME IN SECS) !
; !-------------------------------------------------------!
.QCUNI==20 ;/UNIQUE BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCUNI !
; !-------------------------------------------------------!
; ! /UNIQUE: VALUE (%EQUNO or %EQUYE) !
; !-------------------------------------------------------!
.QCRES==21 ;/RESTART BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCRES !
; !-------------------------------------------------------!
; ! /RESTART: VALUE (%EQRNO or %EQRNY) !
; !-------------------------------------------------------!
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
.QCLOG==22 ;/OUTPUT: (LOG,NOLOG,ERROR)
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCLOG !
; !-------------------------------------------------------!
; ! /OUTPUT: VALUE (%EQONL or %EQOLG or %EQOLE) !
; !-------------------------------------------------------!
.QCACT==23 ;/ACCOUNT: ACCOUNT STRING BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH ! .QCACT !
; !-------------------------------------------------------!
; \ \
; \ USERS ACCOUNT STRING IN ASCIZ \
; \ \
; !-------------------------------------------------------!
.QCQUE==24 ;QUEUE TYPE BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCQUE !
; !-------------------------------------------------------!
; ! QUEUE TYPE (SEE GLXMAC OBJ.TY FIELD) !
; !-------------------------------------------------------!
.QCNOD==25 ;/NODE: DESTINATION NODE BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCNOD !
; !-------------------------------------------------------!
; ! DESTINATION NODE NUMBER OR SIXBIT NODE NAME !
; !-------------------------------------------------------!
.QCNAM==26 ;USERS NAME BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH ! .QCNAM !
; !-------------------------------------------------------!
; \ \
; \ USERS NAME (ASCIZ ON -20, SIXBIT ON THE -10) \
; \ \
; !-------------------------------------------------------!
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
.QCOID==27 ;USERS NUMBER BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCOID !
; !-------------------------------------------------------!
; ! USERS ID (36 BIT USER ID ON -20, PPN ON -10) !
; !-------------------------------------------------------!
.QCNOT==30 ;/NOTIFY BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCNOT !
; !-------------------------------------------------------!
; ! /NOTIFY VALUE (%NOTTY, %NOTML, %NOTJB) !
; !-------------------------------------------------------!
.QCBLT==31 ;/BATLOG: BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCBLT !
; !-------------------------------------------------------!
; ! /BATLOG VALUE (%BAPND or %BSCDE or %BSPOL) !
; !-------------------------------------------------------!
.QCJBN==32 ;JOB NAME
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCJBN !
; !-------------------------------------------------------!
; ! SIXBIT JOB NAME !
; !-------------------------------------------------------!
.QCCDI==33 ;CONNECTED DIRECTORY BLOCK
TOPS20 <
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCCDI !
; !-------------------------------------------------------!
; ! 36 BIT CONNECTED DIRECTORY NUMBER !
; !-------------------------------------------------------!
>
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
TOPS10 <
; !-------------------------------------------------------!
; ! BLOCK LENGTH 2-6 ! .QCCDI !
; !-------------------------------------------------------!
; \ \
; \ USER PATH BLOCK \
; \ UP TO 6 WORDS \
; \ \
; !-------------------------------------------------------!
>
.QCNTE==34 ;/NOTE: BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH 1-2 ! .QCNTE !
; !-------------------------------------------------------!
; \ \
; \ 1 TO 12 SIXBIT CHARACTERS \
; \ \
; !-------------------------------------------------------!
.QCBGN==35 ;/BEGIN: BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCBGN !
; !-------------------------------------------------------!
; ! BEGINNING PAGE NUMBER FOR STARTING OUTPUT !
; !-------------------------------------------------------!
.QCPRI==36 ;/PRIORITY: BLOCK
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCPRI !
; !-------------------------------------------------------!
; ! PRIORITY (1 TO 20 OR 1 TO 77) !
; !-------------------------------------------------------!
.QCFRR==37 ;FREE RUNNING DEVICE LIMIT BLOCK (IE DBMS)
; !-------------------------------------------------------!
; ! LENGTH 1 - EQLMSZ ! .QCFRR !
; !-------------------------------------------------------!
; \ \
; \ 1 TO EQLMSZ LIMIT WORDS \
; \ \
; !-------------------------------------------------------!
.QCSNA==42 ;FILE FORMAT BLOCK (SNA-WORKSTATIONS)
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCSNA !
; !-------------------------------------------------------!
; ! THE FILE FORMAT TYPE (SEE .FPINF) !
; !-------------------------------------------------------!
SUBTTL RECOGNIZE MESSAGE (FUNCTION .QOREC - 40)
TOPS10<
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (1) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;THE ONLY BLOCK DEFINED IS .RECDV WHICH CONTAINS THE
;SIXBIT DEVICE NAME
.RECDV==3 ;DEFINE THE DEVICE NAME BLOCK TYPE
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
PHASE 0
.RECDN:! BLOCK 1 ;SIXBIT DEVICE NAME
.RECSZ:! ;SIZE OF THE BLOCK
DEPHASE
>;END TOPS10
SUBTTL Tape status message (.QOTST functions 41)
TOPS10<
; !=======================================================!
; / EXPANDED GALAXY MESSAGE HEADER /
; !-------------------------------------------------------!
;There are 3 blocks defined for this message: .TLSTA & .DSSTA
; and .STSTS.
;The Device Status Block (.STSTS)
.STSTS==10 ;UNIT STATUS BLOCK
; !-------------------------------------------------------!
; ! 3 ! .STSTS !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !-------------------------------------------------------!
; ! DEVICE STATUS BITS !
; !-------------------------------------------------------!
PHASE 0
.STUNT:! BLOCK 1 ;UNIT NAME IN SIXBIT
.STFLG:! BLOCK 1 ;UNIT STATUS BITS (DEVICE DEPENDENT)
ST.OFL==1B0 ;ON IF UNIT IS OFF-LINE
ST.LOK==1B1 ;ON IF UNIT IS WRITE-LOCKED
TS.DEN==77B8 ;ACTUAL DENSITY OF TAPE (SEE UUOSYM)
TS.LAB==77B14 ;TAPE LABEL TYPE (SEE UUOSYM)
.STLEN:! ;UNIT STATUS BLOCK LENGTH
DEPHASE
;The tape volume status block (.TLSTA)
.TLSTA==12 ;TAPE STATUS BLOCK TYPE
; !-------------------------------------------------------!
; ! 2 ! .TLSTA !
; !-------------------------------------------------------!
; ! SIXBIT VOLUME ID !
; !=======================================================!
PHASE 0
.TLVOL:! BLOCK 1 ;SIXBIT VOLUME ID
.TLSIZ:! ;TAPE STATUS BLOCK SIZE
DEPHASE
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
;The disk structure status block (.DSSTA)
.DSSTA==14 ;DISK STATUS BLOCK TYPE
; !-------------------------------------------------------!
; ! 6 ! .DSSTA !
; !-------------------------------------------------------!
; ! SIXBIT HOME BLOCK ID !
; !-------------------------------------------------------!
; ! SIXBIT NEXT VOL ID !
; !-------------------------------------------------------!
; ! SIXBIT PREVIOUS VOL ID !
; !-------------------------------------------------------!
; ! SIXBIT STRUCTURE NAME !
; !-------------------------------------------------------!
; ! OWNER PPN !
; !=======================================================!
PHASE 0
.DSHID:! BLOCK 1 ;HOME BLOCK ID IN SIXBIT
.DSNXV:! BLOCK 1 ;NEXT VOLUME IN STRUCTURE IN SIXBIT
.DSLUN:! BLOCK 1 ;LOGICAL UNIT NUMBER
.DSSNM:! BLOCK 1 ;STRUCTURE NAME IN SIXBIT
.DSPPN:! BLOCK 1 ;OWNER PPN
.DSSIZ:! ;DISK STATUS BLOCK SIZE
DEPHASE
>;END TOPS10
SUBTTL TAPE DRIVE UNLOAD MESSAGE (FUNCTION .QOUNL - 42)
;ALSO TAPE DRIVE REWIND MESSAGE (FUNCTION .QOREW - 47)
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (1) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;THE ONLY BLOCK DEFINED IS .RECDV WHICH CONTAINS THE
;SIXBIT DEVICE NAME
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
SUBTTL Volume Mounted message to tape labeller (.QOVMN = 43)
TOPS10<
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (2) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;ONE BLOCK IS .RECDV WHICH CONTAINS THE
;SIXBIT DEVICE NAME
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
;THERE IS ONE VOLUME (SET) BLOCK ATTACHED TO THE MESSAGE
;THIS BLOCK DESCRIBE THE INITIAL VOLUME BEING GIVEN TO THE
;USER AND THE FIRST VOLUME IN THE VOLUME SET
.VOLMN==4 ;BLOCK TYPE FOR THE VOLUME BLOCK
; !-------------------------------------------------------!
; ! SIXBIT VOLUME ID FOR MOUNTED VOLUME !
; !-------------------------------------------------------!
; ! SIXBIT VOLUME ID FOR FIRST VOLUME IN SET !
; !-------------------------------------------------------!
; !LABEL TYPE!WLOCK!JOB #! !
; !-------------------------------------------------------!
PHASE 0 ;DEFINE THE CONTENTS OF THE BLOCK
.VMNIV:! BLOCK 1 ;SIXBIT NAME OF INITIAL VOLUME
.VMNFV:! BLOCK 1 ;SIXBIT NAME OF FIRST VOL IN SET
.VMNIN:! BLOCK 1 ;INFORMATION ABOUT THE VOL SET
VI.LTY==77B5 ;LABEL TYPE
VI.WLK==1B6 ;WRITE LOCKED IF 1
VI.JOB==777B17 ;JOB NUMBER OF REQUESTOR
.VMNSZ:! ;SIZE OF THE BLOCK (WITHOUT HEADER)
>;END TOPS10
SUBTTL Volume dismounted message to tape labeller (.QOVDM = 44)
TOPS10<
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (1) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;THE ONLY BLOCK DEFINED IS .RECDV WHICH CONTAINS THE
;SIXBIT DEVICE NAME
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
>;END TOPS10
SUBTTL Volume switch request from tape labeller (.QOVSR = 45)
TOPS10<
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (2) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;ONE BLOCK IS A .RECDV BLOCK WHICH HAS THE
;SIXBIT DEVICE NAME OF THE DRIVE NEEDING A NEW VOLUME
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
;THE OTHER BLOCK DESCRIBES WHICH VOLUME OF THE SET IS
;NEEDED BY THE USER ON THAT DRIVE
; !-------------------------------------------------------!
; ! 2 ! .RLVOL !
; !-------------------------------------------------------!
; !WRT! RELATIVE VOLUME CODE !
; !=======================================================!
.RLVOL==4
PHASE 0
.RLVCD:! BLOCK 1 ;SPACE FOR THE RELATIVE VOLUME CODE
%VWRT==1B0 ;WANT TO USE 'NEXT' VOLUME FOR WRITING
RLV.CD==7 ;WHERE THE CODE GOES
%RLNXT==1 ;GET THE NEXT VOLUME
%RLPRV==2 ;GET THE PREVIOUS VOLUME
%RLFIR==3 ;GET THE FIRST VOLUME OF THE SET
.RLVSZ:! ;SIZE OF THIS BLOCK
DEPHASE
>;END TOPS10
SUBTTL Volume Switch Directive From MDA to Tape Labeler (.QOVSD - 46)
TOPS10<
;This message is sent by MDA in response to a volume switch request
; message from the tape labeller. It directs the labeller
; to continue the labelling process on the same drive
; or on another drive which the OPR/MDA has chosen
; !=======================================================!
; / /
; / MESSAGE HEADER /
; / /
; !-------------------------------------------------------!
; ! BLOCK COUNT (1) !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
;Flags for this message
%VEOF==1B0 ;There are no more volumes in the set
;give EOF to the requestor
%VABT==1B1 ;OPR has aborted the volume
;switch request
%VTMV==1B2 ;Too many volumes in the
;volume set
;There are two blocks passed on this message
;One is the Volume set directive block which describes
;the two drives being swapped, and the other is a Volume
;info block describing the new volume in use, its label type,
;and its write enable/lock status
.VSDBL==12 ;VOLUME SET DIRECTIVE BLOCK
; !-------------------------------------------------------!
; ! 4 ! .VSDBL !
; !-------------------------------------------------------!
; ! INITIAL DRIVE NAME IN SIXBIT !
; !-------------------------------------------------------!
; ! CURRENT DRIVE NAME IN SIXBIT !
; !-------------------------------------------------------!
; ! CURRENT VOLUME NAME !
; !=======================================================!
PHASE 0
.VSDID:! BLOCK 1 ;INITIAL DRIVE NAME
.VSDCD:! BLOCK 1 ;CURRENT DRIVE NAME
VSDLEN:! ;BLOCK LENGTH
DEPHASE
>;END TOPS10
SUBTTL Request for System Catalog Information (.QORCT)
;This message is sent to the Tape Labeler Requesting information
;from the System Catalog (STRLST for now).
; !=======================================================!
; \ \
; \ Standard Galaxy Header \
; \ \
; !-------------------------------------------------------!
;There is one block defined for this message, .RCTVS
.RCTVS==12 ;Asciz Volume Set Name
; !-------------------------------------------------------!
; ! Length ! .RCTVS !
; !-------------------------------------------------------!
; \ \
; \ Volume Set Name in Asciz \
; \ \
; !-------------------------------------------------------!
PHASE 0
.RCTAV: BLOCK 1 ;VOLUME SET NAME
.RCTLN: ;MINIMUM BLOCK LENGTH
DEPHASE
SUBTTL Catalog information message (.QOCAT)
; This message is sent from the system catalog to QUASAR
; in response to a .QORCT message.
; !=======================================================!
; \ \
; \ Standard Galaxy Header \
; \ \
; !-------------------------------------------------------!
; This message consists of at least two argument blocks.
; The first is the .RCTVS block, which tells the
; volume set being "looked up" in the catalog.
; !-------------------------------------------------------!
; ! Length ! .RCTVS !
; !-------------------------------------------------------!
; \ \
; \ Volume Set Name in Asciz \
; \ \
; !-------------------------------------------------------!
; The second is the .CVSFS block, which describes
; the information in the catalog about the volume set
; asked for. This second block is the last block if
; the catalog contains no information about the volume set
; (in this case, the error bit is on)
; !-------------------------------------------------------!
; ! Length ! .CVSFS !
; !-------------------------------------------------------!
; ! ! # of volumes !
; !-------------------------------------------------------!
; ! Owner's PPN !
; !-------------------------------------------------------!
; \ Owner's name \
; \ (SIXBIT) \
; !-------------------------------------------------------!
.CVSFS==.RCTVS+1 ;Block type
PHASE 0 ;At end of Block header
.CVSNV:! BLOCK 1 ;# of volumes
CVS.NV==RHMASK ;Number of volumes
;(# of .CVLPR blocks following)
.CVSOW:! BLOCK 1 ;PPN of owner
.CVSON:! BLOCK EQNMSZ ;Owner name
.CVSLN:! ;Length of the block
DEPHASE
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
; These blocks are generally followed by (n) .CVLPR blocks,
; one for each volume in the volume set
; !-------------------------------------------------------!
; ! Length ! .CVLPR !
; !-------------------------------------------------------!
; ! Volume ID (SIXBIT) !
; !-------------------------------------------------------!
; ! !Kon!Uni!Cls!
; !-------------------------------------------------------!
.CVLPR==.CVSFS+1 ;Block type
PHASE 0 ;After arg block header
.CVLID:! BLOCK 1 ;Volume ID (SIXBIT)
.CVLST:! BLOCK 1 ;Status bits
CVL.KT==7000 ;Kontroller type
CVL.UT==70 ;Unit type
CVL.CL==7 ;Class (?)
.CVLLN:! ;Length of block
DEPHASE
SUBTTL INTERNAL CATALOG CACHE STRUCTURE
; !-------------------------------------------------------!
; ! SIXBIT VOL SET NAME !
; !-------------------------------------------------------!
; ! OWNER ID !
; !-------------------------------------------------------!
; ! VOLUME COUNT !
; !-------------------------------------------------------!
; ! SIXBIT VOL NAME # 1 !
; !-------------------------------------------------------!
; ! VOLUME RESOURCE NUMBER !
; !-------------------------------------------------------!
; .
; .
; .
; !-------------------------------------------------------!
; ! SIXBIT VOL NAME # n !
; !-------------------------------------------------------!
; ! VOLUME RESOURCE NUMBER !
; !-------------------------------------------------------!
PHASE 0
.CTVSN:! BLOCK 1 ;SIXBIT VOLUME SET NAME
.CTOID:! BLOCK 1 ;OWNERS PPN
.CTNAM:! BLOCK EQNMSZ ;OWNER'S NAME
.CTBLD:! BLOCK 1 ;BUILD CODE
.CTCAT==0 ;FROM CATALOG (STRLST)
.CTQSR==1 ;FROM QUASAR
.CTCNT:! BLOCK 1 ;VOLUME COUNT
.CTVOL:! ;VOLUME BLOCK STARTING OFFSET
CATLEN:! ;HEADER LENGTH
DEPHASE
;Volume Block Description
PHASE 0
.CTVID:! BLOCK 1 ;VOLUME ID (SIXBIT)
.CTRSN:! BLOCK 1 ;VOLUME RESOURCE NUMBER
CATBLN:! ;CATALOG BLOCK LENGTH
DEPHASE
SUBTTL BUILD A STRUCTURE MESSAGE (.QOBLD)
;
; DISMOUNT A STRUCTURE MESSAGE (.QODSM)
;This message is sent to the Tape Labeler to define what volumes
;comprise a structure
; !=======================================================!
; \ \
; \ Standard Galaxy Header \
; \ \
; !-------------------------------------------------------!
; There are two flags in .OFLAG, for the /REMOVE and /NOCHECK switchs
; The flags are defined in ORNMAC, and passed in to QUASAR and
; out to the tape labeler.
; The bits are .DMRMV for /REMOVE and .DMNCK for /NOCHECK.
; One additional field is only of interest to QUASAR and PULSAR.
; and is defined here. It indicates the number of queue requests
; requiring a structure.
.DMNRQ==7777B35 ;NUMBER OF QUEUE REQUESTS REQUIRING STR
;There are 2 blocks defined for this message, .BLDSN
; and .BLDUN
.BLDSN==5 ;STRUCTURE NAME BLOCK
; !-------------------------------------------------------!
; ! 3 ! .BLDSN !
; !-------------------------------------------------------!
; ! SIXBIT STRUCTURE NAME !
; !-------------------------------------------------------!
; ! OWNERS PPN !
; !-------------------------------------------------------!
PHASE 0
.BLDNM:! BLOCK 1 ;SIXBIT STRUCTURE NAME
.BLDOW:! BLOCK 1 ;OWNERS PPN
.BLDLN:! ;BLOCK LENGTH
DEPHASE
.BLDUN==7 ;UNIT(S) BLOCK
; !-------------------------------------------------------!
; ! n ! .BLSUN !
; !-------------------------------------------------------!
; ! SIXBIT UNIT NAME #1 !
; !-------------------------------------------------------!
; ! SIXBIT HOME BLOCK NAME #1 !
; !-------------------------------------------------------!
; \ . \
; \-------------------------------------------------------\
; \ . \
; \-------------------------------------------------------\
; \ . \
; \-------------------------------------------------------\
; ! SIXBIT UNIT NAME # n !
; !-------------------------------------------------------!
; ! SIXBIT HOME BLOCK NAME #n !
; !-------------------------------------------------------!
SUBTTL MDA ACK MESSAGE (.QOACK)
;This message is sent by the Tape Labeler to QUASAR to ACK
;certain actions requested by QUASAR.
; !=======================================================!
; ! LENGTH ! .QOACK ! .MSTYP
; !-------------------------------------------------------!
; ! ! .MSCOD
; !-------------------------------------------------------!
; !NAK! ! Ack Type ! .MSFLG
; !-------------------------------------------------------!
; ! 0 ! .OFLAG
; !-------------------------------------------------------!
; ! BLOCK COUNT ! .OARGC
; !-------------------------------------------------------!
;The .MSFLG word contains the NAK bit (sign bit). If this bit is
; on, the the message is a NAK.
;The AK.TYP field describes what flavor of ACK/NAK this message is
;In addition, the message may have some number (0-n) of qualifier
; argument blocks tacked on.
;FIELDS OF .MSFLG:
AK.NAK==MF.FAT ;THIS MESSAGE IS A NAK, NOT AN ACK
AK.TYP==RHMASK ;FIELD FOR TYPE OF ACK/NAK
;The valid ACK/NAK flavors are:
%MOUNT==1 ;MOUNT STRUCTURE ACK
%DSMNT==2 ;DISMOUNT STRUCTURE ACK
%CATLG==3 ;CATALOG REQUEST ACK (ONLY ON ERROR)
%ADSTR==4 ;ADD STRUCTURE TO SEARCH LIST ACK
%RMSTR==5 ;REMOVE STRUCTURE FROM A SEARCH LIST ACK
%MNTNO==6 ;MOUNT STRUCTURE ACK (NO OWNER PPN)
;The allowable argument blocks follow:
; .RCTVS ;VOLUME SET BLOCK
.ACUFD==.RCTVS+1 ;QUALIFIER FOR ADD-TO-SEARCH-LIST ACK
;INDICATES NO UFD CREATED ON STR
;LENGTH = 1
.ACQTO==.ACUFD+1 ;QUALIFIER FOR REMOVE-FROM-SEARCH-LIST NAK
;INDICATES USER IS OVER QUOTA BY N
;BLOCKS. N IS THE ARG.DA WORD OF THE BLOCK
;LENGTH = 2
SUBTTL ADD/REMOVE A STRUCTURE TO A USERS SEARCH LIST MESSAGE (.QOASL)
;This message is sent to the tape labeler to add a structure to that
;users search list. The flag bits are stored in .OFLAG.
;The only block defined for this message is .BLDSN
;If bit ASL.RM is lit in .OFLAG, Then this is a request
;to remove the structure from the users search list
;If bit ASL.RM is on, then ASL.NQ may be lit indicating
;No quota check is to be performed. This is lit when MDA
;wants to take back a structure to keep deadlocks
;straight, and can't be bothered with quota checks.
; !=======================================================!
; ! 10 ! .QOASL ! .MSTYP
; !-------------------------------------------------------!
; ! ! .MSCOD
; !-------------------------------------------------------!
; ! ! .MSFLG
; !-------------------------------------------------------!
; !WL!NC!PS!SA!NQ! !JOB NUMBER ! .OFLAG
; !-------------------------------------------------------!
ASL.WL==1B0 ;ADD STRUCTURE 'WRITE LOCKED'
ASL.NC==1B1 ;ADD STRUCTURE 'NO CREATE'
ASL.PS==1B2 ;ADD STRUCTURE 'PASSIVE'
ASL.SA==1B3 ;ADD STRUCTURE 'SINGLE ACCESS'
ASL.RM==1B4 ;REMOVE THIS STR FROM USER SEARCH LIST
ASL.NQ==1B5 ;IF REMOVING, DON'T ENFORCE QUOTAS
ASL.AR==1B6 ;ALWAYS RECOMPUTE
ASL.NR==1B7 ;NEVER RECOMPUTE
ASL.JB==777B35 ;USERS JOB NUMBER
SUBTTL DISMOUNT/DEALLOCATE A VOLUME SET MESSAGE (.QODVS)
;This Message is sent by the user to dismount or deallocate a
;volume set
; !=======================================================!
; \ \
; \ Standard Galaxy Msg Header \
; \ \
; !-------------------------------------------------------!
; ! Message flags (.OFLAG) !
; !-------------------------------------------------------!
; ! Block count (.OARGC) !
; !_______________________________________________________!
;The allowable message flags are:
; MM.DLC==MM.DLC ;Remove from jobs allocation state
;There are two blocks defined for this message, .RECDV (Device Name)
; and .RCTVS (Volume Set Name)
;Either type of block can be sent, but not both. On Deallocate, if
; .RCTVS is sent, the volume set name is also treated as a logical
; name. If the volume set name does not match for this user, the
; first 6 characters are treated as a logical name and this is used
; for a logical name search.
;.RECDV defined in Recognize message
; .RECDV==3 ;DEFINE THE DEVICE NAME BLOCK TYPE
; !-------------------------------------------------------!
; ! 2 ! .RECDV !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !=======================================================!
; PHASE 0
;
;.RECDN:! BLOCK 1 ;SIXBIT DEVICE NAME
;.RECSZ:! ;SIZE OF THE BLOCK
;
; DEPHASE
;.RCTVS defined in Catalog message
; .RCTVS==12 ;Asciz Volume Set Name
;
; !-------------------------------------------------------!
; ! Length ! .RCTVS !
; !-------------------------------------------------------!
; \ \
; \ Volume Set Name in Asciz \
; \ \
; !-------------------------------------------------------!
;
;
; PHASE 0
; .RCTAV: BLOCK 1 ;VOLUME SET NAME
; .RCTLN: ;MINIMUM BLOCK LENGTH
; DEPHASE
SUBTTL .QOLAC - List allocations for a job
SUBTTL .QOALC - Prescan a control file for allocations
;This message is sent from QUASAR to the batch control file scanner
; (currently BATCON)
; to extract the batch job's required mountable
; device requirements before scheduling the stream
;This message is just a NEXTJOB message with an EQ already built,
; and all of the requisite FPs, and FDs attached
; In particular, the .EQRID field must be supplied.
SUBTTL .QOPRM - Response to .QOALC request
;This message is sent from the batch control file scanner
; to QUASAR after that process has performed pre-scanning of
; a control file for mountable device requirements
;The contents of this message are identical to the .QOMNT message
; except that the ME entries may have varying allocate/mount requirements
;Also, there is a bit defined in .OFLAG which indicates that
; there were no allocations found.
;The batch control file scanner extracts the Request
; ID from the EQ in the .QOALC message and places it in the .QOPRM
; message (in OFLAG, actually) so that QUASAR can line up the response
; with a waiting batch request
; .OFLAG==.OFLAG ;Bits in the flag word
PR.NON==1B0 ;No allocations found
PR.RID==RHMASK ;Request ID for identification
SUBTTL .QOIDN - Tape Initialization Done message
;This message is set by PULSAR to QUASAR when a tape
; initialization sequence is finished. The message tells QUASAR that
; the drive is now available for use.
;The message contains only one block. a .RECDV block
; which contains the drive name which is finished
SUBTTL LPTSPL forms change message (.QOFCH (63) )
; !=======================================================!
; \ \
; \ Standard Galaxy Msg Header \
; \ \
; !-------------------------------------------------------!
; ! New forms type in sixbit (.OFLAG) !
; !-------------------------------------------------------!
; ! Block count = 1 (.OARGC) !
; !_______________________________________________________!
; !_______________________________________________________!
; ! OBJ.SQ ! .OROBJ !
; !_______________________________________________________!
; \ \
; \ OBJECT BLOCK \
; !_______________________________________________________!
SUBTTL IBMCOM Statistice message (.QOIBM)
; !=======================================================!
; \ \
; \ Standard Galaxy Msg Header \
; \ \
; !-------------------------------------------------------!
; ! Statistics update code !
; !-------------------------------------------------------!
IFN FTDN60,<
XP FTIBMS,-1> ;Include IBM statistics
IFE FTDN60,<
XP FTIBMS,0> ;But only if IBMCOM is used
;Possible statistics codes are:
%TINP==1 ;Termination batch requests (CDRIVE)
%TOUT==2 ;Termination printer requests (LPTSPL)
%TCNI==3 ;Termination console input (CDRIVE)
%TCNO==4 ;Termination console output (LPTSPL)
%EINP==5 ;Emulation batch requests (IBMSPL)
%EOUT==6 ;Emulation printer requests (IBMSPL)
%ECNI==7 ;Emulation console input (IBMSPL)
%ECNO==8 ;Emulation console output (IBMSPL)
SUBTTL Common Parameters
;THE PARAMETERS DEFINED HERE ARE ONES THAT ARE NEEDED BY QUASAR BUT ARE
;SYSTEM DEPENDENT. TO MINIMIZE FEATURE TESTS AND DUPLICATION OF ROUTINES,
;QUASAR PARAMETERS ARE USED AND EQUATED TO THE CORRECT SYSTEM VALUE.
;**NOTE: THESE VALUES ARE NOT TO BE CONSTRUED AS 'OPTIONS' AND ANY CHANGES
; WILL CAUSE UNPREDICTABLE RESULTS.
SYSPRM ACC.KM,.ACREN,.CKAWT ;KILL/MODIFY ACCESS CODE
SYSPRM INT.PI,0,0 ;IPCF INTERRUPT CHANNEL OR OFFSET
SYSPRM INT.PL,1,1 ;IPCF PRIORITY INTERRUPT LEVEL
SYSPRM FSSBKS,200,1000 ;STANDARD BLOCKSIZE
SYSPRM FSSFIB,2,1 ;BLK. # OF 1ST INDEX BLK
SUBTTL Random Macros
;DOSCHD is a macro which may be called to flag that something has
; happened which might allow a scheduling pass to bear fruit.
DEFINE DOSCHD,<
IFN <%%.MOD-<SIXBIT /QUASAR/>>,<EXTERN G$SCHD>
SETOM G$SCHD
> ;END DEFINE DOSCHD
SUBTTL Failsoft System Definitions
;I/O CHANNELS
ND CMQ1,10 ;FIRST MASTER QUEUE CHANNEL
ND CMQ2,11 ;SECOND MASTER QUEUE CHANNEL
;OTHER SYMBOLS
XP FSSSTR,FSSSTR ;STRUCTURE FOR MASTER QUEUES
ND FSSPRT,277 ;PROTECTION FOR MASTER QUEUES
;FILE FORMAT AND INDEX DEFINITIONS
XP FSSQFV,%%.QSR ;QUEUE FILE VERSION
XP FSSMRS,1000 ;MAXIMUM REQUEST SIZE
XP FSSBPR,<FSSMRS/FSSBKS> ;MAXIMUM BLOCKS/REQUEST
XP FSSWPI,1000 ;NUMBER OF WORDS/INDEX
XP FSSNIB,<FSSWPI/FSSBKS> ;NUMBER OF INDEX BLOCKS/SECTION
XP FSSFDB,<FSSFIB+FSSNIB> ;BLK. NO. OF FIRST DATA BLOCK
XP FSSBPS,FSSWPI ;BLOCKS PER SECTION
XP FSSMNS,5 ;MAXIMUM NUMBER OF SECTIONS
;MASTER FILE NAMES
IFN FTUUOS,<
DEFINE MQFNM1,<SIXBIT\QSRMS1\> ;THE PRIMARY MASTER
DEFINE MQFNM2,<SIXBIT\QSRMS2\> ; REDUNDANT MASTER
ND DFSSTR,<SIXBIT /DSK/> ;STRUCTURE TO USE IF DEBUGGING
ND SPLSTR,<SIXBIT/DSK/> ;SPOOL STRUCTURE
> ;END OF IFN FTUUOS
IFN FTJSYS,<
DEFINE MQFNAM,<ASCIZ\SPOOL:PRIMARY-MASTER-QUEUE-FILE.QUASAR\> ;[1274]
DEFINE DMQFNM,<ASCIZ \DSK:PRIVATE-MASTER-QUEUE-FILE.QUASAR\>
ND SPLSTR,<ASCII/DSK:/> ;SPOOL STRUCTURE
> ;END OF IFN FTJSYS
;REBUILD CODES
; A REBUILD CODE IS STORED IN THE FILE INDEX ENTRY FOR EACH REQUEST
; IN THE MASTER QUEUE FILE. AT QUASAR INITIALIZATION THE CORRECT
; ROUTINE IS CALLED WITH THE ENTRY BASED ON THE REBUILD CODE.
%RBMIN==1 ;Minimum valid code number
%RBBAT==1 ;BATCH JOB (INP, LPT, PLT, ...)
%RBDEL==2 ;DELETED FILES
%RBMAX==%RBDEL ;Maximum valid code number
SUBTTL QUASAR Fatal Error Codes
;ARGUMENTS USED ARE
; X 'SUFFIX' , 'TEXT' , 'ERROR SEVERITY'
;THE EXPANDER IS TO DEFINE THE CORRECT 'X' MACRO
DEFINE ERRCDS,<
LSTOF.
X BMG,<Bad MODIFY Group>,MF.FAT
X ICM,<Illegal CREATE Message>,MF.FAT
X IFS,<Illegal File Specification>,MF.FAT
X ILM,<Illegal LIST Message>,MF.FAT
X IFD,<Illegally Formatted Device Name>,MF.FAT
X IMT,<Illegal Message Type>,MF.FAT
X INF,<Illegal Number of Files>,MF.FAT
X IPE,<Insufficient Privileges Enabled>,MF.FAT
X MTL,<Message Too Long>,MF.FAT
X MTS,<Message is Too Short>,MF.FAT
X NKC,<Not a Known Component>,MF.FAT
X NOR,<Number Out of Range>,MF.FAT
X NYO,<Not Your Object>,MF.FAT
X SNY,<Specified request is Not Yours>,MF.FAT
X UQS,<Unknown Queue Specified>,MF.FAT
X UOS,<Unknown Object Specified>,MF.FAT
X WVN,<Wrong Version Number>,MF.FAT
X IAS,<Invalid Account String Specified>,MF.FAT
X OHR,<Operator Has Restricted Queue Entry Commands>,MF.FAT
X IMM,<Illegal MOUNT Message>,MF.FAT
X MPN,<MOUNT Request Processor Not Running>,MF.FAT
X CDU,<Can't Default User Name>,MF.FAT
X CDD,<Can't Default Connected Directory>,MF.FAT
X NSD,<No such device>,MF.FAT
X CDA,<Can't Delete an Allocated request>,MF.FAT
X PRB,<Privileges Required for Bypass Label Processing>,MF.FAT
X ICD,<Illegal Connected Directory Specified>,MF.FAT
X IFC,<Invalid Function Code Specified>,MF.FAT
X MDA,<MDA is not supported in this monitor>,MF.FAT
X SDY,<Specified Device is not Yours>,MF.FAT
X IVN,<Invalid Volume Set Name Specified>,MF.FAT
X ISS,<Invalid Switch Specified in a Structure Mount Request>,MF.FAT
X MRP,<Mount Request is not Pending>,MF.WRN
X MIN,<Mount Illegal for 'No Operator Intervention' Request>,MF.FAT
X IPB,<Invalid Path Block Specified>,MF.FAT
X IBL,<Invalid Block Length/Count Specified>,MF.FAT
X MVB,<Multiple Volume Set Name Blocks is Illegal>,MF.FAT
X IMO,<Invalid message received from ORION>,MF.FAT
X NUA,<No Units Available for Mounting this Request>,MF.FAT
X RTE,<Route Table Entry does not Exist>,MF.FAT
X ISO,<Invalid Source Object Specified in Route Command>,MF.FAT
X IDO,<Invalid Destination Object Specified in Route Command>,MF.FAT
X CRG,<Cannot Route a Generic Unit>,MF.FAT
X UST,<Unknown device or structure name>,MF.FAT
X ERZ,<Ersatz devices may not be mounted>,MF.FAT
X DNM,<Device may not be mounted>,MF.FAT
X VID,<Volume identifier must be specified>,MF.FAT
X VIU,<Volume identifiers must be unique>,MF.FAT
X ISA,<Illegal attribute for structure mount request>,MF.FAT
X ITA,<Illegal attribute for tape mount request>,MF.FAT
X ILN,<Illegal logical name>,MF.FAT
X IDE,<Invalid density>,MF.FAT
X ILT,<Invalid label type>,MF.FAT
X RNS,<Reelid not specified in mount command>,MF.FAT
X NNR,<NEBULA is not running>,MF.FAT ;;[1301]
X ILF,<QUASAR received an illegally formatted message>,MF.FAT ;;[1304]
X IUN,<Illegal User Name Specificed>,MF.FAT ;;[1301]
X CNE,<Cluster GALAXY is not enabled>,MF.FAT ;;[1303]
X XXX,<This is a text buffer for messages built on the fly. MAX 70 characters>,MF.FAT
LSTON.> ;END OF DEFINE ERRCDS
DEFINE X(CODE,STRING,FLAGS),<
ER$'CODE==..XX
..XX=..XX+1
>;END DEFINE X
..XX==1
ERRCDS ;DEFINE THE ERROR OFFSETS
SUBTTL MDA ERROR MACROS AND CODES
;Define the $ERJMP Macro
;
;Use: $ERJMP ERROR-CODE,AC-CONTAINING-VSL-ADDRESS
DEFINE $ERJMP(CODE,VSL),<
LSTOF.
PUSHJ P,D$MDAE
CAI <<VSL>B23!<CODE>B35>
LSTON.>
AC.VSL==770000 ;DEFINE VSL AC FIELD
ER.CDE==007777 ;DEFINE ERROR CODE FIELD
;Define the error codes and strings
DEFINE MDAERR,<
LSTOF.
X NVM,<No Volume Mounted On Drive>
X VAU,<Volume is Already in Use>
X DAU,<Drive is Already in Use>
X VIL,<Volume on Drive is Labeled>
X RDM,<Reelid does not match user's request>
X URB,<User Requested Bypass Label Volumes>
X URL,<User Requested Labeled Volumes>
X URW,<User Requested Write-Locked Volumes>
X URE,<User Requested Write-Enabled Volumes>
X RDD,<Requested Density Does not Match Volume Density>
X VND,<Requested Volume not on this Device>
X IUD,<Illegal for unavailable device>
X RLD,<Request Label Type Doesn't Match Volume Label Type>
X DAD,<Drive is already available>
X NVI,<VOLID Required for This Volume>
X CIU,<Cannot identify the Users Current Volume>
X TDM,<Request Track type Doesn't Match Device Type>
X DDD,<Device Allocation Error - Deadlock Detected>
X IDD,<Illegal density for drive>
LSTON.>
DEFINE X(CODE,STRING),<
MD$'CODE==..XX
..XX==..XX+1
>
..XX==1
MDAERR ;GENERATE THE MDA ERROR CODES
SUBTTL Definition of the Known Queues
;ARGUMENTS USED ARE
; X 'QUENAME' , 'ENTRYSIZE' , 'TYPE' , 'FLAGS' , 'SCHEDULER'
DEFINE QUEUES,<
LSTOF.
X INP,QNTSIZ,.QHTIP,0,S$INPT,LIQBAT
X LPT,QNTSIZ,.QHTOU,0,S$LPT,LIQLPT
X PTP,QNTSIZ,.QHTOU,0,S$PTP,LIQPTP
X CDP,QNTSIZ,.QHTOU,0,S$CDP,LIQCDP
X PLT,QNTSIZ,.QHTOU,0,S$PLT,LIQPLT
X RET,QNTSIZ,.QHTAR,QH.INV,S$RET,LIQRET
X NOT,QNTSIZ,.QHTAR,QH.INV,S$NOT,0
X BIN,QNTSIZ,.QHTIP,QH.INV,S$BIN,0
X DBM,QNTSIZ,.QHFRR,QH.INV,S$DBM,0
X RDR,QNTSIZ,.QHFRR,0,S$RDR,0
X SPL,SPLSIZ,.QHTQS,QH.INV,0,0
X PSB,PSBSIZ,.QHTQS,QH.INV,0,0
X OBJ,OBJSIZ,.QHTQS,QH.INV,0,0
X USE,USESIZ,.QHTQS,QH.INV,0,0
X STR,STRSIZ,.QHTQS,QH.INV,0,0
X NET,NETSIZ,.QHTQS,QH.INV,0,0
LSTON.> ;END OF DEFINE QUEUES
;DEFINE THOSE QUEUES WHICH ARE DEVICES.
DEFINE DEVQUE,<
X BAT
X LPT
X CDP
X PTP
X PLT
X MNT
X RET
> ;END OF DEVICE QUEUES MACRO
MAX <QNTSIZ> ;INCLUDE ANY QUEUE THAT CAN HAVE AFTER OR INUSE
USESIZ==MAXSIZ ;DEFINE LARGEST ENTRY IN USE QUEUE
RDESIZ==MAXSIZ ;DEFINE LARGEST ENTRY IN RDE QUEUE
DEFINE QUEHDR,< ;MACRO TO GENERATE THE QUEUE HEADERS FROM THE QUEUES MACRO
DEFINE X(A,B,C,D,E,F),< ;DEFINE X FOR THE LATER EXPANSION OF QUEUES
HDR'A:: INSVL.(<SIXBIT\ A\>,QH.NAM)!INSVL.(C,QH.TYP)!D
EXP 0
IFDIF <E> <0> ,<GLOB(E)>
XWD E,INSVL.(B,QH.SIZ)
EXP F
EXP 0
> ;END OF DEFINE X
QUEUES ;NOW EXPAND QUEUES
> ;END OF DEFINE QUEHDR
SUBTTL MTCON MOUNT STRUCTURES
;MOUNT REQUEST (SENT BY USER TO QUASAR)
; !=======================================================! /+\
; \ \ !
; \ THE MESSAGE HEADER \ !
; \ \ !
; !=======================================================! !
; ! FLAGS THAT APPLY TO THE ENTIRE MESSAGE ! !
; !-------------------------------------------------------! LM
; ! SIXBIT NAME OF MOUNT REQUEST ! !
; !-------------------------------------------------------! !
; ! MOUNT ENTRY COUNT (MUST BE 1 FOR RLS 4) ! !
; !=======================================================! !
; ! ----- TOPS 10 ----- ! !
; ! ! !
; !-------------------------------------------------------! !
; ! SIXBIT USER NAME ! !
; ! (2 WORDS) ! !
; !-------------------------------------------------------! !
; ! ! !
; \ USER ACCOUNT STRING \ !
; \ IN ASCIZ \ !
; \ (10 WORDS) \ !
; ! ! !
; !=======================================================! \./
PHASE MSHSIZ
.MMFLG:! BLOCK 1 ;FLAG WORD FOR MOUNT MESSAGE
MM.WAT==1B0 ;USER IS WAITING FOR IPCF ACK WHEN DONE
MM.NOT==1B1 ;USER WANTS NOTIFICATION VIA TRMOP.
MM.DLC==1B2 ;(DISMOUNT/DEALLOCATE ONLY) DEALLOCATE, NOT DISMOUNT
MM.REM==1B3 ;(DISMOUNT/DEALLOCATE ONLY) /REMOVE WAS TYPED
MM.GFR==1B4 ;INTERNAL USE ONLY (MSG SENT BY [SYSTEM]GOPHER)
.MMNAM:! BLOCK 1 ;SIXBIT NAME OF MOUNT REQUEST
.MMARC:! BLOCK 1 ;ARGUMENT COUNT FOR MOUNT MESSAGE
TOPS10 <
.MMUSR:! BLOCK EQNMSZ ;SIXBIT USER NAME
.MMUAS:! BLOCK 10 ;ASCIZ USER ACCOUNT STRING
>
.MMHSZ:! ;SIZE OF MOUNT MESSAGE HEADER
DEPHASE
SUBTTL MOUNT REQUESTS (WITHIN THE MESSAGE)
;!=======================================================! /+\
;! ENTRY LENGTH (LE) ! TYPE CODE ! !
;!-------------------------------------------------------! !
;! REQUEST-SPECIFIC FLAGS ! !
;!-------------------------------------------------------! !
;! SUBENTRY COUNT ! !
;!-------------------------------------------------------! !
;! SUBENTRY # 1 ! !
;!-------------------------------------------------------! LE
;! SUBENTRY # 2 ! !
;!-------------------------------------------------------! !
;! . ! !
;! . ! !
;! . ! !
;!-------------------------------------------------------! !
;! SUBENTRY # n ! !
;!=======================================================! \./
PHASE 0
.MEHDR:! BLOCK 1 ;MOUNT ENTRY HEADER WORD
.MNUNK==0 ;Unknown Mount request type
.MNTTP==1 ;Tape Mount Request Code
.MNTST==2 ;Disk Mount Request Code
.DSMST==3 ;Disk Dismount Request Code
.MEFLG:! BLOCK 1 ;FLAG WORD FOR ENTRY
; (See below for bit definitions)
.MECNT:! BLOCK 1 ;SUBENTRY COUNT
.MEHSZ:! ;SIZE OF HEADER
DEPHASE
; The argument block is defined in GLXMAC under General Message Format.
; Refer there for latest information.
; PHASE 0
;ARG.HD:! BLOCK 1 ;SUBENTRY HEADER WORD
; AR.LEN=-1,,0 ;LENGTH OF SUBENTRY
; AR.TYP=0,,-1 ;TYPE OF SUBENTRY
;ARG.DA:! ;START OF DATA AREA
; DEPHASE
SUBTTL TAPE MOUNT REQUEST BLOCKS
.MDINV==0 ;BLOCK TYPE 0 IS INVALID
.TMDEN==1 ;MAG TAPE DENSITY CODE
; !-------------------------------------------------------!
; ! 2 ! .TMDEN !
; !-------------------------------------------------------!
; ! The Tape Density Code !
; !-------------------------------------------------------!
SYSPRM (.TFD00,.TFD00,0) ;SYSTEM DEFAULT
SYSPRM (.TFD20,.TFD20,.SJDN2) ; 200 BPI
SYSPRM (.TFD55,.TFD55,.SJDN5) ; 556 BPI
SYSPRM (.TFD80,.TFD80,.SJDN8) ; 800 BPI
SYSPRM (.TFD16,.TFD16,.SJD16) ;1600 BPI
SYSPRM (.TFD62,.TFD62,.SJD62) ;6250 BPI
.TMDRV==2 ;MAG TAPE DRIVE TYPE
; !-------------------------------------------------------!
; ! 2 ! .TMDRV !
; !-------------------------------------------------------!
; ! .TMDR9 or .TMDR7 !
; !-------------------------------------------------------!
.TMDR9==1 ;Nine Track Drive
.TMDR7==2 ;Seven Track Drive
.TMDMX==2 ; ?
.TMLT==3 ;Mag TAPE LABEL TYPE
; !-------------------------------------------------------!
; ! 2 ! .TMLT !
; !-------------------------------------------------------!
; ! .LTUNL or .LTANS or .LTEBC or .LTT20 !
; !-------------------------------------------------------!
SYSPRM (%TFLBP,.TFLBP,-1) ;BYPASS
SYSPRM (%TFANS,.TFLAL,.LTANS) ;ANSII
SYSPRM (%TFEBC,.TFLIL,.LTEBC) ;EBCDIC (IBM)
SYSPRM (%TFUNL,.TFLNL,.LTUNL) ;UNLABELED
SYSPRM (%TFT20,-1,.LTT20) ;TOPS20
SYSPRM (%TFUNV,.TFLNV,-1) ;UNLABELED USER-EOV
SYSPRM (%TFMIN,.TFLBP,.LTUNL) ;MINIMUM LABEL TYPE
SYSPRM (%TFMAX,.TFLNV,.LTT20) ;MAXIMUM LABEL TYPE
.TMSET==4 ;MAG TAPE SET NAME
; !-------------------------------------------------------!
; ! 2 ! .TMSET !
; !-------------------------------------------------------!
; ! sixbit Volume Set Name !
; !-------------------------------------------------------!
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
.TMRMK==5 ;Asciz Remark for the Operator
; !-------------------------------------------------------!
; ! length ! .TMRMK !
; !-------------------------------------------------------!
; \ \
; \ An Asciz remark for the OPR \
; \ \
; !-------------------------------------------------------!
.TMSTV==6 ;Mag Tape Starting Volume
; !-------------------------------------------------------!
; ! 2 or 3 ! .TMSTV !
; !-------------------------------------------------------!
; ! Index into Volume set if length = 2 !
; !-------------------------------------------------------!
; ! Sixbit volume Id (Length = 3 & word 2 = 0) !
; !-------------------------------------------------------!
.TMVOL==7 ;Volume List
; !-------------------------------------------------------!
; ! Length ! !
; !-------------------------------------------------------!
; \ \
; \ Sixbit list of volumes \
; \ \
; !-------------------------------------------------------!
.TMVPR==10 ;Volume Protection code For new volumes
; !-------------------------------------------------------!
; ! 2 ! .TMVPR !
; !-------------------------------------------------------!
; ! 0 ! Protection Code !
; !-------------------------------------------------------!
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
.TMINI==11 ;Volume Initialization Parms
; !-------------------------------------------------------!
; ! 2 or 3 ! .TMINI !
; !-------------------------------------------------------!
; ! Tape Label Type !
; !-------------------------------------------------------!
; ! User Number (Optional) !
; !-------------------------------------------------------!
.SMNAM==12 ;Disk Structure Name in sixbit
; !-------------------------------------------------------!
; ! 2 ! .SMNAM !
; !-------------------------------------------------------!
; ! Sixbit Structure Name !
; !-------------------------------------------------------!
.SMALI==13 ;Disk Structure Alias Name in sixbit
; !-------------------------------------------------------!
; ! 2 ! .SMALI !
; !-------------------------------------------------------!
; ! Sixbit Structure Alias !
; !-------------------------------------------------------!
.TMLNM==14 ;VOLUME SET LOGICAL NAME
; !-------------------------------------------------------!
; ! 2 ! .TMLNM !
; !-------------------------------------------------------!
; ! The Logical Volume Set name !
; !-------------------------------------------------------!
.TMEXP==15 ;VOLUME SET EXPIRATION DATE/TIME
; !-------------------------------------------------------!
; ! 2 ! .TMEXP !
; !-------------------------------------------------------!
; ! Expiration date time in UDT !
; !-------------------------------------------------------!
%MDMAX==15 ;Maximum block number allocated
SUBTTL .MEFLG BIT DEFINITIONS
;The following flags may be
;present in the .MEFLG word of a tape-mount request:
;FLAG BIT MEANING
;---- --- -------
TM%SCR==1B0 ; Request to access temporary volume set.
; Implies TM%NEW, TM%NOV, TM%WEN
; TM%OSV is ignored if set
TM%NEW==1B1 ; Creating new volume set.
; Implies TM%NOV, TM%WEN
TM%VFY==1B2 ; Verify that user-supplied setname
; matches setname of volume(s) being mounted.
; Meaningful for labeled tapes only.
TM%OSV==1B3 ; Operator will be asked to key in list of
; volume identifiers.
TM%WEN==1B4 ; Volume(s) must be mounted write-enabled.
;
TM%BYP==1B5 ; If label-type is unlabeled, bypass any label
; security checks.
TM%NUL==1B6 ; Do not unload volumes at volume-switch or
; when DISMOUNT TAPE command given.
SM%PAS==1B7 ; Put structure in jobs passive search list
SM%EXC==1B8 ; Request exclusive access
SM%DEF==1B9 ; Defer mounting (reserved)
SM%NOC==1B10 ; Don't allow creates on structure
TM%WLK==1B11 ; User requested Write Locked Volumes
ME%ALC==1B12 ; User requesting only allocation of these resources, not mount
SM%ARD==1B13 ; Always recompute disk usage
SUBTTL MOUNT REQUEST
; TAPE MOUNT REQUEST
; IPCF MESSAGE SENT FROM QUASAR TO MTCON
;!=======================================================!
;! MESSAGE LENGTH (512) ! MESSAGE TYPE (.QOMNT) !
;!-------------------------------------------------------!
;! FLAGS ! SIXBIT SUFFIX !
;!-------------------------------------------------------!
;! ACKNOWLEDGMENT CODE !
;!=======================================================!
;! !
;\ UNMODIFIED USER IPCF MESSAGE (MINUS HEADER) \
;! !
;!-------------------------------------------------------!
;! !
;\ 0 \
;! !
;!-------------------------------------------------------!
;! INTERNAL TASK NAME (ITN) !
;!-------------------------------------------------------!
;! USER'S PID !
;!-------------------------------------------------------!
;! SIZE OF USER'S MOUNT MESSAGE !
;!-------------------------------------------------------!
;! ACK CODE FROM USER'S MESSAGE HANDLER !
;!-------------------------------------------------------!
;! USER'S USER NUMBER !
;!-------------------------------------------------------!
;! USER'S ENABLED CAPABILITIES !
;!-------------------------------------------------------!
;! !
;\ USER'S ASCIZ ACCOUNT STRING \
;! !
;!=======================================================!
PHASE 762
.MMUMX:! ;MAXIMUM LENGTH OF USER MOUNT MESSAGE
.MMITN:! BLOCK 1 ;INTERNAL TASK NAME ASSIGNED BY QUASAR
.MMPID:! BLOCK 1 ;USER'S PID
.MMUMS:! BLOCK 1 ;SIZE OF USER'S MOUNT MESSAGE
.MMUCD:! BLOCK 1 ;ACK CODE FROM USER'S MESSAGE HEADER
.MMUNO:! BLOCK 1 ;USER'S USER NUMBER
.MMCAP:! BLOCK 1 ;USER'S ENABLED CAPABILITIES
.MMACT:! BLOCK 10 ;USER'S ASCIZ ACCOUNT STRING
DEPHASE
SUBTTL Response to User Tape Mount Request
;After the user process has sent an IPCF message to QUASAR to
;request a tape mount, it will typically wait for a response,
;which will be sent when:
; 1. QUASAR finds an error while parsing and validating the
; user request; the request is aborted.
; 2. MTCON encounters a problem trying to satisfy the
; request; the request is aborted.
; 3. MTCON mounts the first volume of the request
; successfully; the response indicates a successful
; mount.
;The mount response message sent by MTCON or QUASAR to the user
;will have the following format:
;!=======================================================!
;! MESSAGE LENGTH ! MESSAGE TYPE (.QOMNA) !
;!-------------------------------------------------------!
;! FLAGS ! SIXBIT SUFFIX !
;!-------------------------------------------------------!
;! ACKNOWLEDGMENT CODE FROM USER'S MOUNT REQUEST !
;!=======================================================!
;! FLAGS (NONE DEFINED) !
;!-------------------------------------------------------!
;! ENTRY COUNT !
;!-------------------------------------------------------!
;! ENTRY 1 !
;!-------------------------------------------------------!
;! . !
;! . !
;! . !
;!-------------------------------------------------------!
;! ENTRY n !
;!=======================================================!
;DEFINE THE MESSAGE TYPE
.QOMNA==1 ;TAPE MOUNT REQUEST ANSWER
;Either of two responses is conveyed:
; 1. The request was completed successfully. The response
; contains one .MNRDV and one .MNRTX.
; 2. The request was aborted. The response contains one
; .MNREC and possibly one .MNRTX.
SUBTTL MOUNT RESPONSES
;Mount response entry formats are described below:
.MNREC==2 ;Error Code
; !=======================================================!
; ! LENGTH (2) ! .MNREC !
; !-------------------------------------------------------!
; ! 0 ! TOPS-20 ERROR CODE !
; !=======================================================!
.MNRDV==1 ;Device block
; !=======================================================!
; ! LENGTH (2 OR 3) ! .MNRDV !
; !-------------------------------------------------------!
; ! VOLUME SET NAME OR STRUCTURE NAME !
; !-------------------------------------------------------!
; ! MT DEVICE DESIGNATOR (TAPE REQUESTS ONLY) !
; !=======================================================!
.MNRTX==3 ;Asciz Text
; !=======================================================!
; ! LENGTH ! .MNRTX !
; !-------------------------------------------------------!
; ! !
; \ ASCIZ TEXT \
; ! !
; !=======================================================!
.MNSDV==4 ;Sixbit Structure Alias
; !=======================================================!
; ! LENGTH ! .MNSDV !
; !-------------------------------------------------------!
; ! SIXBIT STRUCTURE NAME !
; !=======================================================!
.MNRNM==5 ;Sixbit Mount Request Name
; !=======================================================!
; ! LENGTH 1 .MNRNM !
; !-------------------------------------------------------!
; ! SIXBIT MOUNT REQUEST NAME !
; !=======================================================!
SUBTTL CANCELING TAPE MOUNT REQUESTS
;Response to User Cancel Request
;MTCON will send the following message to the user PID to convey
;the actions taken as a result of the cancel request:
;!=======================================================!
;! MESSAGE LENGTH ! MESSAGE TYPE (.QOMCA) !
;!-------------------------------------------------------!
;! FLAGS ! SIXBIT SUFFIX !
;!-------------------------------------------------------!
;! ACKNOWLEDGMENT CODE FROM USER'S MOUNT REQUEST !
;!=======================================================!
;! FLAGS (NONE DEFINED) !
;!-------------------------------------------------------!
;! ENTRY COUNT !
;!=======================================================!
SUBTTL ABORT MSG FROM QUASAR TO MTCON
;THIS MESSAGE IS SENT BY QUASAR TO MTCON WHEN A USER
;CANCELS 1 OR MORE OF HIS MOUNT REQUESTS
;!===================================================== !
;! MESSAGE LENGTH ! MESSAGE TYPE (.QOMTA) !
;!------------------------------------------------------!
;! FLAGS ! SUFFIX !
;!------------------------------------------------------!
;! ACKNOWLEDGEMENT CODE !
;!------------------------------------------------------!
;! FLAG WORD (NONE) !
;!------------------------------------------------------!
;! ARGUMENT COUNT !
;!------------------------------------------------------!
;! ENTRY LENGTH ! ENTRY TYPE (.MTPID) !
;!------------------------------------------------------!
;! USERS PID !
;!------------------------------------------------------!
;! ENTRY LENGTH ! ENTRY TYPE (.MTITN) !
;!------------------------------------------------------!
;! ITN !
;!------------------------------------------------------!
;! ITN !
;!------------------------------------------------------!
; ETC
; THE MESSAGE BLOCK TYPES ARE:
.MTPID==1 ;USERS PID
.MTITN==2 ;A LIST OF ITN'S TO CANCEL
SUBTTL MOUNT RELEASE MESSAGE
;When a request completes, MTCON notifies the user (if
;appropriate) and sends a RELEASE message to QUASAR for that
;request.
; RELEASE MESSAGE FROM MTCON TO QUASAR
;!=======================================================!
;! MESSAGE LENGTH ! MESSAGE TYPE (.QOREL) !
;!-------------------------------------------------------!
;! FLAGS ! SIXBIT SUFFIX !
;!-------------------------------------------------------!
;! ACKNOWLEDGMENT CODE !
;!=======================================================!
;! INTERNAL TASK NAME OF REQUEST !
;!=======================================================!
;CHECKPOINT MESSAGE DEFINITIONS
;THESE DEFINE THE OFFSETS INTO THE CHE.IN BLOCK OF THE
;TAPE/DISK CHECKPOINT MESSAGE
.MTSTA==0 ;CHECKPOINT STATUS INFORMATION
.MTVOL==1 ;CHECKPOINT VOLUME INFORMATION
%VOLBL==0 ;NO VOLUME PRESENT
%VOLSC==1 ;SCRATCH VOLUME
;WORD MAY ALSO CONTAIN A SIXBIT VOLUME ID
.MTTYP==2 ;CHECKPOINT VOLUME TYPE
;SEE THE MOUNT REQUEST BLOCK CODES FOR TYPES
SUBTTL QUASAR TAPE MOUNT REQUEST QUEUE STRUCTURE
; !=======================================================!
; ! 36 BIT USER ID !
; !-------------------------------------------------------!
; / ASCIZ USER NAME /
; / /
; !-------------------------------------------------------!
; ! FLAGS ! USERS JOB NUMBER !
; !-------------------------------------------------------!
; ! SIXBIT REQUEST NAME !
; !-------------------------------------------------------!
; / /
; / USERS ASCIZ ACCOUNT STRING /
; / /
; !-------------------------------------------------------!
; ! USERS PID # !
; !-------------------------------------------------------!
; ! # OF VSL'S ! REQUEST ID !
; !-------------------------------------------------------!
; / /
; / POINTERS TO THE VOLUME /
; / SET LISTS /
; / /
; !-------------------------------------------------------!
PHASE 0
.MRUSR:! BLOCK 1 ;36 BIT USER ID OR PPN (-10)
.MRNAM:! BLOCK EQNMSZ ;USER NAME (ASCIZ -20, SIXBIT -10)
.MRJOB:! BLOCK 1 ;CAPABILITIES (IPCF MDB.PV),,JOB NBR
BA%JOB==400000 ;LIT IF THIS IS A BATCH ALLOCATION
; THEN THE 'JOB NBR' IS THE REQUEST ID
.MRQEA:! BLOCK 1 ;REQUESTS QE ADDRESS
.MRNOD:! BLOCK 1 ;NODE NAME WHERE USER IS LOCATED
.MRTTY:! BLOCK 1 ;TTY DATA WHERE USER IS LOCATED
MR.TRD==-1,,0 ;TERMINAL DESIGNATOR
MR.TNO==0,,-1 ;LINE NUMBER
.MRACT:! BLOCK 10 ;ASCIZ ACCOUNT STRING
.MRPID:! BLOCK 1 ;REQUESTORS PID
.MRACK:! BLOCK 1 ;USER ACK CODE
.MRFLG:! BLOCK 1 ;FLAG BITS FOR THIS MDR
MR.FLG==76B4 ;Flag field
MR.WAT==1B0 ;SENDER IS WAITING FOR IPCF ACK WHEN DONE
MR.NOT==1B1 ;SENDER WANTS NOTIFICATION BY TRMOP.
MR.ACK==1B2 ;WAITING FOR INITIAL ACK
MR.GFR==1B3 ;REQUEST CREATED BY UUO ( [SYSTEM]GOPHER )
MR.DMO==1B4 ;DISMOUNT (USED FOR TEXT FORMATTING)
MR.QUE==77B35 ;OBJECT TYPE OF THE PSEUDO PROCESS (IF NEEDED)
.MRLOG:! BLOCK 1 ;UNIVERSAL TIME OF LOGIN
.MRCNT:! BLOCK 1 ; 0,,VOL SET COUNT
MR.CNT==0,,-1 ;VOLUME SET COUNT IN THE RIGHT HALF
MR.LNK==-1,,0 ;CURRENT VSL LINK CODE
.MRVSL:! BLOCK 1 ;POINTERS TO THE VOLUME SET LISTS (MINIMUM 1)
MDRLEN:! ;MINIMUM MDR QUEUE LENGTH
DEPHASE
SUBTTL VOLUME SET LIST (VSL) STRUCTURE
; !-------------------------------------------------------!
; ! POINTER TO MDR !
; !-------------------------------------------------------!
; ! FLAG WORD !
; !-------------------------------------------------------!
; ! # TRACKS ! DENSITY !
; !-------------------------------------------------------!
; ! VOLUME SET NAME !
; !-------------------------------------------------------!
; / /
; / USER'S ASCIZ REMARKS /
; / /
; !-------------------------------------------------------!
; ! VOLUME SET LOGICAL NAME ! PROTECTION !
; !-------------------------------------------------------!
; ! VOLUME COUNT ! VOLUME OFFSET !
; !-------------------------------------------------------!
; ! POINTERS TO VOLUME LIST !
; !-------------------------------------------------------!
PHASE 0
.VSMDR:! BLOCK 1 ;POINTER TO THE CONTROLLING MDR
.VSFLG:! BLOCK 1 ;MOUNT FLAG WORD
VS.SCR==1B1 ;THIS IS A SCRATCH VOLUME SET
VS.NEW==1B2 ;THIS IS A NEW VOLUME SET
VS.UAL==1B3 ;USER ALLOCATED THIS VOLUME SET
VS.OPR==1B4 ;OPR WILL BE ASKED FOR VOLUME SET LIST
VS.WLK==1B5 ;0=WRITE ENABLED, 1=WRITE LOCKED
VS.REM==1B6 ;USER REQUEST TO DISMOUNT THE STRUCTURE
VS.TYP==7B9 ;VOLUME TYPE 1=TAPE, 2=STRUCTURE, 3=DECTAPE
VS.LBT==17B13 ;VOLUME LABEL TYPE FOR LABEL PROCESSING
VS.VSW==1B14 ;VOLUME SWITCH IN PROGRESS
VS.ALC==1B15 ;VOLUME SET IS IN ALLOCATION STATE
VS.WAL==1B16 ;VOL SET IS WAITING FOR DEVICE ALLOCATION
VS.CLM==1B17 ;RESOURCES FOR THIS VSL ARE CLAIMED
VS.PAS==1B18 ;(DISK) PUT IN PASSIVE 1/2 OF SEARCH LIST
VS.NOC==1B19 ;(DISK) DON'T DO CREATES ON THIS STR
VS.SIN==1B20 ;(DISK) SINGLE ACCESS
VS.NMT==1B21 ;VOLUME SET MOUNTED FOR A PSEUDO PROCESS
VS.ABO==1B22 ;REQUEST CANCELLED BY THE OPERATOR
VS.REL==1B23 ;USER SPECIFIED A REEL ID FOR THIS REQUEST
VS.CTL==1B24 ;THIS REQUEST IS PART OF PSEUDO PROCESS ALLOC
VS.ARD==1B25 ;ALWAYS RECOMPUTE DISK USAGE
.VSATR:! BLOCK 1 ;MOUNT REQUEST DEVICE ATTRIBUTES
VS.PRT==777B8 ;PROTECTION CODE
VS.DEN==7B20 ;VOLUME DENSITY STATUS
VS.TRK==7B23 ;VOLUME TRACK STATUS
VS.RSN==77B29 ;REQUESTED RESOURCE TYPE
VS.DDN==1B34 ;DENSITY STATUS IS DEFAULTED
VS.DTK==1B35 ;TRACK STATUS IS DEFAULTED
.VSRID:! BLOCK 1 ;VOLUME SET REQUEST ID
VS.RID==-1,,0 ;VOLUME SET REQUEST ID
VS.LNK==0,,-1 ;VOLUME SET REQUEST LINK
.VSVSN:! BLOCK VSNLEN ;ASCIZ VOLUME SET NAME
.VSTXT:! BLOCK 1 ;TEXT POINTER FOR USER ACKS
VS.LEN==-1,,0 ;TEXT BLOCK LENGTH
VS.ADR==0,,-1 ;TEXT BLOCK ADDRESS
.VSREM:! BLOCK ^D12 ;ASCIZ USER REMARKS (59 CHARS MAX)
.VSCRE:! BLOCK 1 ;REQUEST CREATION TIME
.VSSCH:! BLOCK 1 ;REQUEST SCHEDULED TIME
.VSLNM:! BLOCK 1 ;VOLUME SET LOGICAL NAME (-10 ONLY)
.VSUCB:! BLOCK 1 ;POINTER TO LAST DEVICE ALLOCATED TO THIS VSL
.VSCVL:! BLOCK 1 ;VOL COUNT,,OFFSET TO THE CURRENT VOLUME
VS.OFF==0,,777000 ;OFFSET TO THE CURRENT VOLUME
VS.CNT==-1,,0 ;VOLUME COUNT
.VSVOL:! BLOCK 2 ;Pointers to the volume list
;Following the volume list pointers is the sixbit name of the first volume.
;This is used by INFORMATION MOUNT/ALL
VSLLEN:! ;MINIMUM LENGTH OF A VSL
DEPHASE
SUBTTL VOLUME LIST STRUCTURE (VOL)
; !-------------------------------------------------------!
; ! SIXBIT VOLUME NAME !
; !-------------------------------------------------------!
; ! OWNER PPN !
; !-------------------------------------------------------!
; ! VOLUME FLAG BITS !
; !-------------------------------------------------------!
; ! MOUNT COUNT ! OWNER OFFSET !
; !-------------------------------------------------------!
; ! POINTER TO THE UCB !
; !-------------------------------------------------------!
; / /
; / POINTER(S) TO THE VSL(S) /
; / /
; !-------------------------------------------------------!
PHASE 0
.VLNAM:! BLOCK 1 ;VOLUME NAME (STRUCTURE NAME OR VOL ID)
.VLVID:! BLOCK 1 ;INTERNAL VOLUME ID FOR STRUCTURES
.VLOID:! BLOCK 1 ;OWNER PPN OR USER ID
.VLMTM:! BLOCK 1 ;VOLUME MOUNT TIME
.VLFLG:! BLOCK 1 ;VOLUME FLAG BITS
VL.STA==7B2 ;VOLUME STATUS
%STAWT==0 ;VOLUME IS WAITING
%STAAB==1 ;VOLUME USE HAS BEEN ABORTED
%STAMN==2 ;VOLUME IS MOUNTED
%STADM==3 ;VOLUME IS TO BE DISMOUNTED
VL.SCR==1B3 ;VOLUME IS A SCRATCH VOLUME
VL.SHR==1B4 ;VOLUME IS TO BE SHARED (DISK ONLY)
VL.DEN==7B7 ;VOLUME DENSITY
VL.LBT==17B11 ;VOLUME LABEL TYPE
VL.LUN==7B14 ;STRUCTURE LOGICAL UNIT NUMBER
VL.REM==1B15 ;REMOVE THE STRUCTURE ON DISMOUNT
VL.LCK==3B17 ;VOLUME LOCK STATUS
%UNLCK==0 ;NOT LOCKED
%LOCKD==1 ;LOCKED
%LOCKP==2 ;UNLOCKED, LOCK PENDING
%ULCKP==3 ;LOCKED, UNLOCK PENDING
VL.SRD==1B18 ;SET REQUESTED DENSITY FOR USER
VL.RSN==777B35 ;VOLUME RESOURCE NUMBER
VL.FLG==-1,,777000 ;FLAG AREA MASK (NOT INCLUDING RSN)
.VLLTM:! BLOCK 1 ;VOLUME LOCK OR UNLOCK TIME (UDT)
.VLOWN:! BLOCK 1 ;COUNT OF REQUESTORS,,OFFSET TO OWNER
VL.CNT==-1,,0 ;NUMBER OF REQUESTORS FOR THIS VOLUME
.VLUCB:! BLOCK 1 ;POINTER TO THE UCB
.VLPTR:! BLOCK 1 ;BACK,,FORWARD PTRS TO MULTIPLE VOL STRS
VL.PRV==-1,,0 ;ADDR OF PREVIOUS VOLUME BLOCK IN STR
VL.NXT==0,,-1 ;ADDR OF NEXT VOLUME BLOCK IN STR
.VLSTR:! BLOCK 1 ;VOLUME STRUCTURE NAME
.VLNXT:! BLOCK 1 ;SIXBIT VOL NAME OF NEXT VOL IN STR
.VLVSL:! BLOCK 1 ;POINTER(S) TO THE VSL(S)
VL.ASN==1B0 ;FLAG BIT INDICATING THAT VOL IS
; ASSIGNED BY THE USER
VL.ASK==1B1 ;FLAG BIT INDICATING THAT VOL
; ASSIGNMENT HAS BEEN REQUESTED
VL.OWN==1B2 ;FLAG BIT INDICATING THE VOLUME WAS
; OWNED BY THE USER AT SOME TIME
VL.AAS==1B3 ;STRUCTURE ALREADY ASSIGNED
VOLLEN:! ;MINIMUM VOLUME ENTRY LENGTH
DEPHASE
SUBTTL UNIT CONTROL BLOCK STRUCTURE
; !===============================================================!
; ! Device Name (Sixbit) !
; !---------------------------------------------------------------!
; ! Device Status Bits !
; !---------------------------------------------------------------!
; ! User Mount Count !
; !---------------------------------------------------------------!
; ! Volume Pointer !
; !===============================================================!
PHASE 0
.UCBNM:! BLOCK 1 ;UNIT/DEVICE NAME IN SIXBIT
.UCBAU:! BLOCK 1 ;ALTERNATE UNIT FOR DUAL PORTED SYSTEMS
.UCBST:! BLOCK 1 ;DEVICE STATUS BITS
UC.SEL==1B0 ;UNIT IS SELECTED (USED FOR OPR NOT)
UC.200==1B2 ;DEVICE SUPPORTS 200 BPI
UC.556==1B3 ;DEVICE SUPPORTS 556 BPI
UC.800==1B4 ;DEVICE SUPPORTS 800 BPI
UC.1600==1B5 ;DEVICE SUPPORTS 1600 BPI
UC.6250==1B6 ;DEVICE SUPPORTS 6250 BPI
UC.AVR==1B7 ;AVR BIT 1=ENABLED
UC.WLK==1B8 ;UNIT WRITE LOCKED 1=LOCKED
UC.OFL==1B9 ;UNIT IS OFFLINE 1=OFFLINE
UC.DVT==17B13 ;UNIT DEV TYPE (%TAPE, %DISK, %DTAPE)
UC.KTP==7B16 ;UNIT CONTROLLER TYPE
UC.AVA==1B17 ;UNIT IS AVAILABLE FOR USE BY MDA
UC.VSW==1B18 ;UCB IS IN VOLUME SWITCH STATE
UC.UTP==3B20 ;UNIT TYPE (DEPENDS ON UC.KTP)
UC.SHR==1B21 ;UNIT CAN BE SHARED
UC.RSN==777B30 ;UNIT RESOURCE NUMBER
UC.SWP==1B31 ;UNIT HAS SWAP SPACE ON IT
UC.INI==1B32 ;UNIT IS INITIALIZING
UC.TRK==3B34 ;TRACK STATUS 1=7TRK, 2=9TRK
%TRK7==1 ; 7 TRACK
%TRK9==2 ; 9 TRACK
.UCBCN:! BLOCK 1 ;USER MOUNT COUNT
.UCBVL:! BLOCK 1 ;PTR TO VOLUME MOUNTED ON THIS DEVICE
.UCBVS:! BLOCK 1 ;POINTER TO THE VSL WHICH OWNS THIS UCB
UCBLEN:! ;A UCB LENGTH
DEPHASE
;DEVICE AND RESOURCE TYPE DESCRIPTIONS
%UNKN==0 ;THIS IS AN UNKNOWN MOUNT REQUEST
%ZER1==%UNKN ;THIS IS A 'NO LEVEL' RESOURCE
%TAPE==1 ;THIS IS A TAPE MOUNT REQUEST
%DISK==2 ;THIS IS A STRUCTURE MOUNT REQUEST
%DTAP==3 ;THIS IS A DECTAPE MOUNT REQUEST
%DSMT==4 ;THIS IS A DISMOUNT REQUEST
%STRC==5 ;THIS IS A STRUCTURE
%TVOL==6 ;THIS IS A TAPE VOLUME RESOURCE
%DTVOL==7 ;THIS IS A DEC-TAPE VOLUME RESOURCE
%HLR1==%STRC ;THIS IS A HIGHER LEVEL RESOURCE
%LLR1==%DISK ;THIS IS A LOWER LEVEL RESOURCE
SUBTTL ALLOCATION AND DEADLOCK AVOIDANCE MATRICES
;'A' Matrix entry
PHASE 0
.AMNAM:! BLOCK 1 ;ASCIZ RESOURCE NAME ADDRESS
AM.USE==1B0 ;SLOT IN USE, (MUST BE SIGN BIT)
AM.PRM==1B1 ;NAME STRING FROM PERMANENT A MATRIX
AM.PRR==1B2 ;RESOURCE (STRUCTURE) IS 'PERMANENT'
;AND WILL 'NEVER' BE REMOVED FROM SYSTEM
AM.NAM==RHMASK ;ADRS OF NAME STRING
.AMSTA:! BLOCK 1 ;ENTRY STATUS BITS (SAME AS .UCBST),,0
AM.DVT==UC.DVT ;MATRIX ENTRY TYPE (%TAPE, %DISK, ETC)
.AMCNT:! BLOCK 1 ;ENTRY COUNTS
AM.AVA==7777B11 ;COUNT OF UNITS AVAILABLE
AM.ALO==7777B23 ;COUNT OF UNITS ALLOCATED
AM.CLM==7777B35 ;COUNT OF UNITS CLAIMED (OWNED)
.AMDLK:! BLOCK 1 ;SCRATCH WORD FOR USE DURING
;DEADLOCK AVOIDANCE COMPUTATIONS
AMALEN:! ;MATRIX ENTRY LENGTH
DEPHASE
MAXRES==3777 ;MAXIMUM NUMBER OF A RESOURCE AVAILABLE
SGNBIT==4000 ;SIGN BIT FOR RESOURCE COUNTS
;'A' Matrix Header
PHASE 0
.AMHDR:! BLOCK 1 ;MATRIX HEADER
AM.LEN==-1,,0 ;LENGTH IN LEFT HALF
AM.CNT==777B35 ;HIGHEST INDEX CURRENTLY IN USE
AM.MCN==777B26 ;# OF SLOTS IN THIS MATRIX (.GE. AM.CNT)
.AMSPR:! BLOCK AMALEN-.-.AMHDR ;SPARE HEADER WORDS
DEPHASE
;'B' & 'C' Matrix Entries
PHASE 0
.SMJOB:! BLOCK 1 ;USERS JOB NUMBER 400000+RID FOR BATCH
.SMFLG:! BLOCK 1 ;ENTRY FLAG WORD
SM.IGN==400000,,0 ;IGNORE THIS ENTRY
SM.CNT==0,,-1 ;RESOURCE COUNT
.SMDLK:! BLOCK 1 ;DEADLOCK FLAG BITS AND SEQUENCE NUMBERS
SM.PLY==1B0 ;ON IF THIS PROCESS HAS BEEN PLAYED
SM.DLK==1B1 ;ON IF THIS PROCESS IS IN A DEADLOCK
SM.SEQ==RHMASK ;POSITION PLAYED INTO SAFE SEQUENCE
;IF SM.PLY IS ON
.SMRES==.-1 ;RESOURCE # OFFSET (WITH BASE OF 1)
SM.RSN==-1,,0 ;RESOURCE NUMBER
SM.CLM==0,,-1 ;TOTAL CLAIMED
BLOCK 2 ;SPACE FOR 2 RESOURCE NUMBERS
SMALEN:! ;MINIMUM ENTRY LENGTH
DEPHASE
SUBTTL REQUEST FOR MOUNT ATTRIBUTES
;THIS IS A REQUEST TO QUASAR (ACTUALLY MTCON) FROM A USER TO RETURN
;ATTRIBUTES OF A MOUNTED DEVICE. THE MESSAGE SENT BY THE USER
;CONTAINS ONLY THE HEADER AND THE DEVICE DESIGNATOR. QUASAR
;ADDS THE PID AND CAPABILITIES WORDS AND PASSES THE MESSAGE TO
;MTCON, WHO THEN SENDS A REPLY TO THE USER'S PID.
;!=======================================================!
;! MESSAGE LENGTH ! MSG TYPE (.QOMAT) !
;!-------------------------------------------------------!
;! FLAGS !
;!-------------------------------------------------------!
;! USER'S ACKNOWLEDGMENT CODE !
;!=======================================================!
;! DEVICE DESIGNATOR !
;!-------------------------------------------------------!
;! USER'S PID !
;!-------------------------------------------------------!
;! USER CAPABILITIES ! USER JOB # !
;!=======================================================!
PHASE MSHSIZ
.MATDV:! BLOCK 1 ;DEVICE DESIGNATOR
.MATUS:! ;SIZE OF USER ATTRIBUTE REQUEST MESSAGE
.MATPD:! BLOCK 1 ;USER'S PID
.MATCP:! BLOCK 1 ;USER'S CAPABILITIES AND JOB NUMBER
.MATQS:! ;SIZE OF QUASAR-TO-MTCON MESSAGE
DEPHASE
SUBTTL RESPONSE TO REQUEST FOR MOUNT ATTRIBUTES
;!=======================================================!
;! MESSAGE LENGTH ! MESSAGE TYPE (.QOMAR) !
;!-------------------------------------------------------!
;! FLAGS !
;!-------------------------------------------------------!
;! USER'S ACKNOWLEDGMENT CODE !
;!=======================================================!
;! FLAGS (NONE DEFINED) !
;!-------------------------------------------------------!
;! ENTRY COUNT !
;!-------------------------------------------------------!
;! ENTRY 1 !
;!-------------------------------------------------------!
;! . !
;! . !
;! . !
;!-------------------------------------------------------!
;! ENTRY n !
;!=======================================================!
;DEFINE THE MESSAGE TYPE
.QOMAR==2 ;TAPE MOUNT ATTRIBUTES ANSWER
;EACH ENTRY CONSISTS OF A 1-WORD HEADER (LENGTH IN LEFT HALF, TYPE
;IN RIGHT HALF) FOLLOWED BY THE ENTRY-SPECIFIC INFORMATION. THE
;FOLLOWING ENTRIES ARE RETURNED FOR MAGTAPE DEVICES:
;.TMVOL LIST OF SIXBIT VOLIDS
;.TMSET SIXBIT SETNAME
;.MATDD DESIGNATOR OF MT DEVICE
.MATDD==100
SUBTTL The ARCHIVE Message - Function 41 (sent by IPCC)
TOPS20 <
PHASE 0
ARC.HD:!BLOCK 1 ; Header
ARC.FN:!BLOCK 1 ; Function and reason for message
AR.FNC==0,,-1 ; Function code
AR.MOD==-1,,0 ; Function modifier (reason)
ARC.PR:!BLOCK 1 ; Protection of file
AR.PRT==0,,-1 ; LH is unused
ARC.T1:!BLOCK 1 ; Tape ID #1
ARC.N1:!BLOCK 1 ; Further tape #1 info
AR.TSN==-1,,0 ; Tape saveset number
AR.TFN==0,,-1 ; Tape file number
ARC.T2:!BLOCK 1 ; Tape ID #2
ARC.N2:!BLOCK 1 ; Saveset and file nos. for tape #2
ARC.TT:!BLOCK 1 ; TAD file written to tape
ARC.AS:!BLOCK 10 ; Account string
ARC.FL:! ; File name begins here
ARC.SZ:! ; Minimum size of ARCHIVE msg
DEPHASE
> ;END TOPS20 CODE
; BLOCK DEFINITIONS FOR MDA (MOUNT/DISMOUNT/ALLOCATE/DEALLOCATE)
;
;TAPE DENSITY BLOCK
.QBDEN==42
; .QBLEN==0 ;TAPE DENSITY BLOCK LENGTH
.QBTDN==1 ;TAPE DENSITY CODE (.TFDxx)
;TAPE TRACK BLOCK
.QBTRK==43
; .QBLEN==0 ;TAPE TRACK BLOCK LENGTH
.QBDRV==1 ;TAPE TRACK REQUEST CODE
.QBDR9==1 ; WANT 9 TRACK DRIVE
.QBDR7==2 ; WANT 7 TRACK DRIVE
;LABEL TYPE BLOCK
.QBLTP==44
; .QBLEN==0 ;LABEL TYPE BLOCK LENGTH
.QBLAB==1 ;LABEL TYPE CODE (See .TFxxx)
;REMARK BLOCK
.QBRMK==45
; .QBLEN==0 ;REMARK BLOCK LENGTH
.QBREM==1 ;START OF ASCIZ REMARK TO BE SENT TO OPERATOR
;TAPE VOLUME LIST BLOCK
.QBVOL==46
; .QBLEN==0 ;TAPE VOLUME LIST BLOCK LENGTH
.QBVLS==1 ;START OF LIST OF SIXBIT TAPE VOLUME IDS (MAX 63)
;VOLUME SET LOGICAL NAME BLOCK
.QBLNM==47
; .QBLEN==0 ;LOGICAL NAME BLOCK LENGTH (MUST BE 2)
.QBLGN==1 ;SIXBIT LOGICAL NAME FOR THIS VOLUME SET
;MOUNT/DISMOUNT FLAG BLOCK
.QBMFG==50
; .QBLEN==0 ;FLAG BLOCK LENGTH (MUST BE 2)
.QBMDF==1 ;MOUNT/DISMOUNT FLAG BITS
QB.PAS==1B0 ;ADD STR TO PASSIVE SEARCH LIST (ACTIVE IS DEFAULT)
QB.EXC==1B1 ;WANT EXCLUSIVE/SINGLE ACCESS (SHARE IS DEAFULT)
QB.NOC==1B2 ;WANT /NOCREATE (CREATE IS DEFAULT)
QB.DSK==1B3 ;THIS IS A STRUCTURE REQUEST (UNKNOWN IS DEFAULT)
QB.TAP==1B4 ;THIS IS A TAPE REQUEST (UNKNOWN IS DEFAULT)
QB.WLK==1B5 ;WANT VOLUME SET WRITE LOCKED
QB.WEN==1B6 ;WANT VOLUME SET WRITE ENABLED
QB.REM==1B7 ;ASK OPR TO REMOVE STR ON DISMOUNT
QB.SCR==1B8 ;WANT SCRATCH TAPE
END