Trailing-Edge
-
PDP-10 Archives
-
bb-h138e-bm_tops20_v6_1_distr
-
galaxy-sources/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,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
;
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
; BY DIGITAL EQUIPMENT CORPORATION.
;
; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
; DIGITAL.
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==:1221 ;Maintenance edit number
QMCDEV==:1237 ;Development edit number
VERSIN (QMC) ;Generate edit number
SUBTTL Table of Contents
; Table of Contents for QSRMAC
;
;
; Section Page
; 1. Preliminaries. . . . . . . . . . . . . . . . . . . . . 1
; 2. Table of Contents. . . . . . . . . . . . . . . . . . . 2
; 3. Revision history . . . . . . . . . . . . . . . . . . . 3
; 4. Accumulator Definitions. . . . . . . . . . . . . . . . 4
; 5. Symbols derived from GALCNF. . . . . . . . . . . . . . 5
; 6. Changable System Parameters. . . . . . . . . . . . . . 6
; 7. RDB
; 7.1. Request Descriptor Block. . . . . . . . . . . 7
; 8. ROB
; 8.1. Requested Object Block. . . . . . . . . . . . 8
; 9. DIB
; 9.1. Dependency Information Block. . . . . . . . . 9
; 10. QH
; 10.1. Queue Header Definitions. . . . . . . . . . . 10
; 11. EV - Timed event block definitions . . . . . . . . . . 11
; 12. QE
; 12.1. Queue Entry Definitions . . . . . . . . . . . 12
; 13. JOB INFORMATION BLOCK (.QEJBB) DESCRIPTION . . . . . . 14
; 14. OBJ
; 14.1. Object Queue. . . . . . . . . . . . . . . . . 15
; 15. PSB
; 15.1. Processor Status Block. . . . . . . . . . . . 18
; 16. SPL
; 16.1. Spool Queue Definition. . . . . . . . . . . . 19
; 17. STR
; 17.1. Structure Queue Definition. . . . . . . . . . 20
; 18. NETWORK DATA BASE STRUCTURE. . . . . . . . . . . . . . 21
; 19. ROUTE TABLE ENTRY DESCRIPTION. . . . . . . . . . . . . 23
; 20. CSM
; 20.1. Canonical SPOOL Message . . . . . . . . . . . 24
; 21. CLM
; 21.1. Canonical LOGOUT Message. . . . . . . . . . . 25
; 22. The Messages and their respective codes. . . . . . . . 26
; 23. The HELLO Message
; 23.1. Function 1. . . . . . . . . . . . . . . . . . 27
; 24. The RELEASE Message
; 24.1. Function 2. . . . . . . . . . . . . . . . . . 28
; 25. The CHECKPOINT and REQUEUE messages
; 25.1. Functions 3 and 4 . . . . . . . . . . . . . . 29
; 26. The NEXTJOB and CREATE Messages
; 26.1. Functions 5 and 7 . . . . . . . . . . . . . . 32
; 27. EQ
; 27.1. The External Queue Entry. . . . . . . . . . . 33
; 28. The ABORT Message
; 28.1. Function 6. . . . . . . . . . . . . . . . . . 41
; 29. The LIST Message
; 29.1. Function 10 . . . . . . . . . . . . . . . . . 42
; 30. The MODIFY Message
; 30.1. Function 11 . . . . . . . . . . . . . . . . . 44
; 31. The KILL Message
; 31.1. Function 12 . . . . . . . . . . . . . . . . . 46
; 32. THE LIST ANSWER MESSAGE. . . . . . . . . . . . . . . . 47
; 33. The REQUEST FOR CHECKPOINT Message
; 33.1. Function 15 . . . . . . . . . . . . . . . . . 48
; 34. The DEFER Message
; 34.1. Function 16 . . . . . . . . . . . . . . . . . 49
; 35. Event Counters . . . . . . . . . . . . . . . . . . . . 50
; 36. The COUNT Message
; 36.1. Function 20 . . . . . . . . . . . . . . . . . 52
; 37. The COUNTANSWER Message
; 37.1. Function 21 . . . . . . . . . . . . . . . . . 53
; 38. The SETUP/SHUTDOWN Message
; 38.1. Function 22 . . . . . . . . . . . . . . . . . 54
; 39. The RESPONSE-TO-SETUP Message
; 39.1. Function 23 . . . . . . . . . . . . . . . . . 55
; 40. The HOLD/RELEASE Message
; 40.1. Function 25 . . . . . . . . . . . . . . . . . 56
; 41. The SPOOL Message - Function 26 (sent by IPCC) . . . . 57
; 42. The LOGOUT Message - Function 27 (sent by IPCC). . . . 59
; 43. MONITOR LOGIN MESSAGE PROCESSOR. . . . . . . . . . . . 60
; 44. TAPE ONLINE MESSAGE Function 31 (sent by IPCC) . . . . 61
; 45. THE DEVICE STATUS UPDATE MESSAGE - FUNCTION 31 . . . . 62
; 46. TAPE DEASSIGN/DISMOUNT MESSAGE (IPCC FUNCTION 34). . . 63
; 47. Job reset message (IPCC function 37) . . . . . . . . . 64
; 48. Disk unit ATTACH/DETACH Message (IPCC FCN 42/43) . . . 65
; 49. Disk unit XCHANGE Message (IPCC function 44) . . . . . 66
; 50. Structure removal message (IPCC function 45) . . . . . 67
; 51. Magtape unit accessible message (IPCC function 46) . . 68
; 52. NODE-WENT-AWAY NOTIFICATION MESSAGE (FUNCTION 36). . . 69
; 53. .QOCQE - CREATE QUEUE ENTRY MESSAGE (FUNCTION 37). . . 70
; 54. RECOGNIZE MESSAGE (FUNCTION .QOREC - 40) . . . . . . . 75
; 55. Tape status message (.QOTST functions 41). . . . . . . 76
; 56. TAPE DRIVE UNLOAD MESSAGE (FUNCTION .QOUNL - 42) . . . 78
; 57. Volume Mounted message to tape labeller (.QOVMN = 43). 79
; 58. Volume dismounted message to tape labeller (.QOVDM = 44) 80
; 59. Volume switch request from tape labeller (.QOVSR = 45) 81
; 60. Volume Switch Directive From MDA to Tape Labeler (.QOVSD - 46) 82
; 61. Request for System Catalog Information (.QORCT). . . . 83
; 62. Catalog information message (.QOCAT) . . . . . . . . . 84
; 63. INTERNAL CATALOG CACHE STRUCTURE . . . . . . . . . . . 86
; 64. BUILD A STRUCTURE MESSAGE (.QOBLD) . . . . . . . . . . 87
; 65. MDA ACK MESSAGE (.QOACK) . . . . . . . . . . . . . . . 88
; 66. ADD/REMOVE A STRUCTURE TO A USERS SEARCH LIST MESSAGE (.QOASL) 89
; 67. DISMOUNT/DEALLOCATE A VOLUME SET MESSAGE (.QODVS). . . 90
; 68. .QOLAC - List allocations for a job. . . . . . . . . . 91
; 69. .QOALC - Prescan a control file for allocations. . . . 92
; 70. .QOPRM - Response to .QOALC request. . . . . . . . . . 93
; 71. .QOIDN - Tape Initialization Done message. . . . . . . 94
; 72. LPTSPL forms change message (.QOFCH (63) ) . . . . . . 95
; 73. IBMCOM Statistice message (.QOIBM) . . . . . . . . . . 96
; 74. Common Parameters. . . . . . . . . . . . . . . . . . . 97
; 75. Random Macros. . . . . . . . . . . . . . . . . . . . . 98
; 76. Failsoft System Definitions. . . . . . . . . . . . . . 99
; 77. QUASAR Fatal Error Codes . . . . . . . . . . . . . . . 100
; 78. MDA ERROR MACROS AND CODES . . . . . . . . . . . . . . 101
; 79. Definition of the Known Queues . . . . . . . . . . . . 102
; 80. MTCON MOUNT STRUCTURES . . . . . . . . . . . . . . . . 103
; 81. MOUNT REQUESTS (WITHIN THE MESSAGE). . . . . . . . . . 104
; 82. TAPE MOUNT REQUEST BLOCKS. . . . . . . . . . . . . . . 105
; 83. .MEFLG BIT DEFINITIONS . . . . . . . . . . . . . . . . 108
; 84. MOUNT REQUEST. . . . . . . . . . . . . . . . . . . . . 109
; 85. Response to User Tape Mount Request. . . . . . . . . . 110
; 86. MOUNT RESPONSES. . . . . . . . . . . . . . . . . . . . 111
; 87. CANCELING TAPE MOUNT REQUESTS. . . . . . . . . . . . . 112
; 88. ABORT MSG FROM QUASAR TO MTCON . . . . . . . . . . . . 113
; 89. MOUNT RELEASE MESSAGE. . . . . . . . . . . . . . . . . 114
; 90. QUASAR TAPE MOUNT REQUEST QUEUE STRUCTURE. . . . . . . 115
; 91. VOLUME SET LIST (VSL) STRUCTURE. . . . . . . . . . . . 116
; 92. VOLUME LIST STRUCTURE (VOL). . . . . . . . . . . . . . 117
; 93. UNIT CONTROL BLOCK STRUCTURE . . . . . . . . . . . . . 118
; 94. ALLOCATION AND DEADLOCK AVOIDANCE MATRICES . . . . . . 119
; 95. REQUEST FOR MOUNT ATTRIBUTES . . . . . . . . . . . . . 120
; 96. RESPONSE TO REQUEST FOR MOUNT ATTRIBUTES . . . . . . . 121
; 97. The ARCHIVE Message - Function 41 (sent by IPCC) . . . 122
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
\ ;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)
;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 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
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 /
; / /
; !-------------------------------------------------------!
; / /
; / 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
.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
.QEMDR:! BLOCK 1 ;REQUESTS MDR ADDRESS
.QEACT:! BLOCK 10 ;ACCOUNT STRING (POSSIBLY DIFFERENT FROM .EQACT)
TOPS20 <
.QEOWN:! BLOCK 10 ;REQUEST OWNER
.QECON:! BLOCK 12 ;CONNECTED DIRECTORY
> ;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.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 !
; !-------------------------------------------------------!
; ! 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
OBJPID:! BLOCK 1 ;PID WHICH HAS THIS OBJ SETUP
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
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 !
; !-------------------------------------------------------!
; ! DESTINATION OBJECT TYPE !
; !-------------------------------------------------------!
; ! DESTINATION UNIT NUMBER !
; !-------------------------------------------------------!
; ! DESTINATION NODE NAME !
; !=======================================================!
PHASE 0
RTEOB1:! BLOCK OBJ.SZ ;SOURCE OBJECT BLOCK
RTEOB2:! BLOCK OBJ.SZ ;DESTINATION OBJECT BLOCK
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 !
; !=======================================================!
; EXTRA INFORMATION IS RETURNED BY BATCON DURING ITS RELEASE MESSAGE
; !=======================================================!
; ! FLAG SETTINGS ! THE JOB NUMBER !
; !-------------------------------------------------------!
; / /
; / STANDARD FD AREA DESCRIBING THE LOG FILE /
; / THE LENGTH IS DERIVED FROM THE RELEASE MESSAGE SIZE /
; / /
; !=======================================================!
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.CST==777777B35 ;RH FOR WSM
REL.TX:! BLOCK STSSIZ ;RELEASE MESSAGE TEXT
REL.SZ:! ;SIZE OF THE RELEASE MESSAGE
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
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 10 ;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
.EQDEC:! BLOCK ^D20 ;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.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 !
; !=======================================================!
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.XXX==7B26 ;EXTRA FLAG BITS
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:! ;MINUMUM FP AREA SIZE
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
ABO.ID:! BLOCK 1 ;ID OF PERSON REQUESTING THE KILL
ABO.SZ:! ;SIZE OF THE ABORT MESSAGE
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 CONTAINS 2 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)
; .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.SZ:! ;SIZE OF KILL ENTRY
DEPHASE
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 we have 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 !
; !-------------------------------------------------------!
; ! Port Number ! Line Number !
; !-------------------------------------------------------!
; ! Network Status Bits !
; !-------------------------------------------------------!
; ! Port/Line Handle !
; !=======================================================!
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)
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.CN:! BLOCK 7 ;DN60 LINE CONDITIONING BLOCK
SUP.ST:! BLOCK 1 ;NETWORK STATUS/FLAG BITS
;SEE 'NETSTS' BIT VALUES
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 !
; !-------------------------------------------------------!
; ! The RESPONSE Code !
; !-------------------------------------------------------!
; ! RESPONSE REASON !
; !-------------------------------------------------------!
; ! The DEC Device Attributes !
; !-------------------------------------------------------!
; ! Prototype Node Name !
; !=======================================================!
PHASE MSHSIZ ;STANDARD MESSAGE HEADER
RSU.TY:! BLOCK 1 ;OBJECT TYPE
RSU.UN:! BLOCK 1 ;UNIT NUMBER
RSU.NO:! BLOCK 1 ;NODE
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.SZ:!
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 \
; \ \
; !=======================================================!
; ! THE DEVICE STATUS CODE !
; !=======================================================!
PHASE MSHSIZ ;STANDARD MESSAGE HEADER
STU.RB:! BLOCK OBJ.SZ ;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.SZ ! .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\DSK:<SPOOL>PRIMARY-MASTER-QUEUE-FILE.QUASAR\>
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 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