Trailing-Edge
-
PDP-10 Archives
-
BB-JR93L-BB_1990
-
10,7/galaxy/quasar/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
;
;
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975,1976,1977,1978,1979,
;1980,1981,1982,1983,1984,1985,1986,1987. ALL RIGHTS RESERVED.
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
;
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
; BY DIGITAL EQUIPMENT CORPORATION.
;
; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
; DIGITAL.
SEARCH GALCNF ;GET CONFIGURATION DATA
SEARCH GLXMAC ;GET GALAXY SYMBOLS
SEARCH ORNMAC ;GET OPERATOR SYMBOLS
SEARCH CATPRM ;GET CATALOG 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==41 ;MAJOR CHANGE NUMBER OF QSRMAC
QSRVER==5 ;MAJOR VERSION NUMBER
QSRMIN==0 ;MINOR VERSION NUMBER
QSRWHO==0 ;LAST EDITOR
QSREDT==1523 ;EDIT NUMBER
QSRVRS==<VRSN.(QSR)> ;MAKE UP A VERSION NUMBER
SUBTTL Table of Contents
; TABLE OF CONTENTS FOR QSRMAC
;
;
; SECTION PAGE
; 1. Table of Contents......................................... 2
; 2. Revision History.......................................... 3
; 3. Accumulator Definitions................................... 11
; 4. Symbols derived from GALCNF............................... 12
; 5. Changable System Parameters............................... 13
; 6. Abbreviations Used in QUASAR-10........................... 14
; 7. RDB -- Request Descriptor Block......................... 15
; 8. ROB -- Requested Object Block........................... 17
; 9. QH -- Queue Header Definitions......................... 18
; 10. QE -- Queue Entry Definitions.......................... 19
; 11. OBJ -- Object Queue..................................... 21
; 12. PSB -- Processor Status Block........................... 23
; 13. SPL -- Spool Queue Definition........................... 24
; 14. CSM -- Canonical SPOOL Message.......................... 25
; 15. CLM -- Canonical LOGOUT Message......................... 26
; 16. The Messages and their respective codes................... 27
; 17. The HELLO Message -- Function 1........................... 28
; 18. The RELEASE Message -- Function 2......................... 29
; 19. The CHECKPOINT and REQUEUE messages -- Functions 3 and 4.. 30
; 20. The NEXTJOB and CREATE Messages -- Functions 5 and 7...... 31
; 21. EQ -- The External Queue Entry......................... 32
; 22. The ABORT Message -- Function 6........................... 40
; 23. The LIST Message -- Function 10........................... 41
; 24. The MODIFY Message -- Function 11......................... 42
; 25. The KILL Message -- Function 12........................... 44
; 26. The LIST ANSWER Message -- Function 13.................... 45
; 27. The REQUEST FOR CHECKPOINT Message -- Function 15....... 47
; 28. The DEFER Message -- Function 16........................ 48
; 30. Event Counters............................................ 50
; 31. The COUNT Message -- Function 20........................ 52
; 32. The COUNTANSWER Message -- Function 21.................. 53
; 33. The SETUP/SHUTDOWN Message -- Function 22............... 54
; 34. The RESPONSE-TO-SETUP Message -- Function 23............ 55
; 35. The OPERATOR-ACTION Message -- Function 24.............. 56
; 36. The HOLD/RELEASE Message -- Function 25................. 57
; 37. The SPOOL Message - Function 26 (sent by IPCC)............ 58
; 38. The LOGOUT Message - Function 27 (sent by IPCC)........... 60
; 39. IPCF Parameters........................................... 61
; 40. Common Parameters......................................... 62
; 41. Prolog macro for generating common header................. 63
; 42. Random Macros............................................. 64
; 43. Failsoft System Definitions............................... 65
; 44. QUASAR Fatal Error Codes.................................. 66
; 45. Definition of the Known Queues............................ 67
SUBTTL Revision History
COMMENT \
Edit Module Explanation
1 ALL First System Version Of QUASAR-10 February, 1975
2 QSRSCH Operator NEXT Command Caused Batch Job Tables To Get Out Of Sync
3 QSRMEM Add New Routine For Cusp Version (CSPMEM) To Clean Core When
Cusp Is Going Dormant. Call It M$CLNC
4 QSRMAC Invent High Availability Queues
The Pages Belonging To Them Remain Even If The Queue Is Empty
Define QH.HAQ In The Queue Header Flags, Include In QUEUES Macro
QSRMEM Have M$GCOL Collect Empty Pages That Are Not High Availability
Remove Some Checks From M$PFRE
5 QSRSCH Clean up some code in SCHSTR to remove an extra
call to I$VSTR.
QSRIPC Have SNDFAI save the correct address of a requeued message
in the IPS entry, and also have it requeue "all"
messages to SYSINF whether the error was recoverable
or not.
QSRQUE Q$KLPD clobbers H and AP causing a great deal of trouble.
Preserve both of them. Also take check out of Q$RTMS for
the message type, and call Q$KLPD for all returned messages.
6 QSRFSS Move index-SAT words into the index itself.
Start integrating code for multiple sections.
QSRINT Start moving code to open the master queue files into QSRINT
from QSRFSS.
7 QSRFSS Fully integrate code for multiple sections.
QSRINT On TOPS10 whenever master queue file is extended,
force the RIBs to be written. On fatal STOPCDs,
store away acs so they can be found easily.
Call M$IPRM when an IPCF receive failed with error IPCUP%.
QSRMEM Install M$IPRM
10 QSRMAC Define the TEXT Message as an acknowledgement of an operation.
QUASAR Implement the global string routines to build the TEXT message.
Give TEXT message as a return if the caller sets MS.ACK non-zero.
QSRINT Invent I$WHEEL to check if caller is an operator of some flavor.
QSRQUE Call I$WHEEL in HELLO message processor.
Send explicit TEXT acknowledgements after KILL, MODIFY, LIST.
QSRSCH Call I$WHEEL during default processing if (.EQDIR .NE. G$DIR)
11 ALL Insert code for the 6.02 device names.
QSRQUE Move changable data from the internal queue to the external
queue request during Q$NEXTJOB.
QSRSCH Insure the Batch job limits for cards, paper tape, etc...,
get applied to the spooled requests.
QSRINT Complete moving code to open master files from QSRFSS.
12 QSRSCH Broadcast TEXT message with TX.NMS set now that it has been defined
QSRQUE Remove the old Q$SYNC code.
CSPQSR Watch for in-coming TEXT messages
13 ALL This is the version of QUASAR-10 sent to Field Test, June, 1975.
14 QSRMAC Eliminate most of edit 12 and instead invent the Request For Checkpoint
message. Every SPLMBC minutes, ask the component to Checkpoint itself.
Add a word to the PSB to contain the next time to request a checkpoint.
Define ABO.DI in the ABORT message as the directory of the requestor.
QSRSCH Keep track of the Checkpoint time, send during the scheduling loop.
The Request for Checkpoint message serves a dual purpose.
1) The individual spoolers don't need to watch the time for Checkpoints
2) The message is used to determine if the component is still alive
Therefore, dead interlock recovery is done every SPLMBC minutes.
QSRMEM Have ANYOUT look for pages to destroy first.
QSRQUE Install Q$RCK to actually send out the Request for Checkpoint message.
Include directory of sender in ABORT message.
15 QSRMAC Define the Canonical SPOOL Message.
QSRINT Invent a new class of routines, the FD Manipulaters.
QSRQUE Use the Canonical SPOOL Message throughout the spooling subroutines.
Generalize SPLINC to include based on the Canonical SPOOL Message,
call it Q$INCL.
QSRSCH Build a Canonical SPOOL Message in S$RELE, call Q$INCL for the Log File.
16 ALL Major Change of QSRMAC (#27).
QSRMAC Include /REPORT FP areas in all requests.
This adds 2 words to the minimum FP size.
QSRQUE Set and check the Request Doesn't Exist bit instead of the old ones.
QSRSCH Set RDE in the external request during SCHDEF if all files are /REMOVEd.
QSRINT Monitor change to 6.02. The extension of a spooled LL or LU is LPT.
17 GALGEN Ask for Automatic Forms Change Threshold.
QSRMAC Define FRMTHR = the answer from GALGEN.
Add definition of the DEFER Message.
Define the Canonical LOGOUT Message.
QSRQUE Include Q$DEFER to operate on the Defer Message.
Implement File-Specific Modifies.
Use the Canonical LOGOUT Message in Q$LOGOUT.
QSRMEM Define co-routine ".SAVAP" to save/restore AP.
Add ".CALLn" to save/restore the preserved acs.
QSRSCH Use FRMTHR instead of the absolute 100.
Build a Canonical LOGOUT Message in S$RELE.
QSRINT Add I$FMCH to compare 2 FDs with masks.
20 GALGEN Add question for enforcing the jobs core limit.
If the answer is YES, ask for the default value of /CORE.
If the answer is NO, define the default = 0.
QSRMAC Extract INPCOR = G.ICOR (the GALGEN value).
QSRSCH Insert code in INPSCH to use the core values.
21 ALL Become version 1A
22 ALL Major Change of QSRMAC (#30).
QSRINT Get the maximum IPCF packet size from the operating system during
initialization and store it in G$MPS.
Install I$CSM for TOPS20.
QSRQUE Determine the entry size for the IPC and IPS queues at runtime using
the maximum packet size in G$MPS.
Include the number of files in File-Specific Modify, re-work
Q$MODIFY, Q$KILL, Q$DEFER, BLDKMS, FILMOD.
QUASAR Use G$MPS whenever a check must be made for the maximum IPCF packet size.
23 QSRMAC Define the Universal Directory Specification
QUASAR Remove G$LOCS, G$SDIR, and G$FFAD
QSRINT Add more TOPS20 routines
24 ALL Make consistent use of connected and logged in
directories in TOPS20.
25 QSRIPC If C$GET does a query which returns false, clear IPCPND.
QSRINT Add I$READ and I$WRIT for TOPS20.
Add I$CRIP routine.
QSRFSS Call I$CRIP in the appropriate places.
26 **NOTE [SYSTEM]QUASAR no longer requires [SYSTEM]INFO
QSRMAC Add a bit in the external queue to indicate that the creator
of a request was privileged at the time of creation.
This will reduce the number of CHKACC's required in the spoolers.
QSRSCH Set the Privilege bit appropriately.
QUASAR Dispatch messages from [SYSTEM]IPCC independently.
QSRIPC Move code to establish a PID into QSRINT.
Remove C$ISM since QUASAR handles the dispatch.
QSRINT Add I$EPID and associated routines for acquiring a PID.
CSPQSR Remove code for [SYSTEM]INFO, call [SYSTEM]IPCC instead.
27 ALL Major Change of QSRMAC (#31).
QSRMAC Make .EQPAT optional and TOPS10 only.
QUASAR Lay the groundwork for handling multiple PIDs.
Add G$SFAL to notify all concerned of an invalid PID.
Isolate dispatch for messages directed to [SYSTEM]QUASAR (G$QPID).
QSRQUE Remove Q$RTMS, G$SFAL directly calls Q$KLPD.
QSRIPC Add C$GIPC to get a specific response from [SYSTEM]IPCC.
Re-arrange SNDFAI to call G$SFAL.
QSRMEM Define co-routine ".SAVEH" to save/restore H.
30 QSRINT Break up QSRINT into the appropriate modules.
Name the new ones QSRT10 & QSRT20.
31 QSRQUE Have CHKMCH just check for matching owner field
rather than complete directory.
QSRSCH If the request protection field is 0 fill in a default
protection using the contents of G$SPRT.
32 QSRMAC Define TX.MOR indicating another ACK to follow.
QUASAR If TX.MOR is set at G$MSND, don't clear G$ACK.
Add G$CSIX for sixbit conversions.
Add G$CCHR for a Single Characters.
QSRQUE Have Q$CREATE send an explicit acknowledgement indicating:
Quename:Jobname=/SEQUENCE:s, n Files
33 QSRSCH Could ask for Forms Change for non-existant (EQ.RDE) requests,
Override Forms Type for those requests.
34 GALGEN Ask Questions about conversions from Blocks to "Units".
QSRMAC Extract the answers. Define EQ.NBL in .EQLM2 for Output Queues.
QSRQUE Replace code that deals with Spooled Limits with some that counts blocks.
QSRSCH Convert blocks to limit appropriately during default filling.
35 QSRMAC Invent the "listable" bit (QH.LST) in the queue header.
Put in CLQ message.
Add new bit to batch release message to flag that the
log file is to be printed.
QSRQUE Check "listable" bit on LIST requests.
ACK for CREATE in 'INP' with an after parameter was wrong
because H pointed to 'AFT'.
QSRSCH Zero copies field for log file if RL.PRL is off.
36 QSRSCH Default the /OUTPUT field in SCHDEF('INP').
37 ALL Become version 2.
Major change of QSRMAC (#32).
QUASAR Provide LUUO handler for new STOPCD calls.
QSRMAC Remove definitions now found in SBSMAC, Search it.
Make the same change to the PROLOGUE Macro.
Re-arrange CHECKPOINT and REQUEUE messages so that the
entire block is available for CHECKPOINT information.
QSRT20 Have I$KSYS return seconds to shutdown minus 1 minute.
Set up IPCF quotas during I$EPID.
Change I$STCD to accept standard calls.
QSRT10 Change I$STCD to accept standard calls.
QSRSCH Ask for checkpoint from all components after KSYS has expired.
QSRQUE Don't give extended "ACK" during create of "RDE" requests.
Change Q$CHECKPOINT and Q$REQUEUE to account for
the changes to those messages.
CSPQSR Accept indicator in call to CSPINI as:
0 = old style call
-1 = caller will handle interrupt system.
40 QSRQUE Deferred requests recovered from the failsoft file had
/LIMIT:0 sent to the spooler.
Move Q$CDIN to inline code in KILPSB.
QUASAR Add G$MCOR as minimum system value of /CORE.
QSRT10 Fill in G$MCOR with %CNMMX.
If IO.BKT is set on Master file, use SETSTS to clear it.
QSRT20 Set G$MCOR = 0, there is no system minimum.
QSRSCH Check value of G$MCOR after defaulting /CORE.
Use G$MCOR in input scheduling as PSB minimum.
QSRIPC PDL used during IPCF interrupts was too short.
Could miss a call to I$POST.
41 QSRQUE Report words not being cleared during Q$INCL.
Could MODIFY a file if it had been /REMOVEd previously.
QUASAR Wrong ac loaded on returned packets.
42 QSRMEM Re-define free space management to optimize size and paging.
Add M$MOVE for moving entries between queues.
QSRMAC Define the "route" message (function 17) to change the routing
of output from one station to another.
Include S$USE as scheduling vector for the USE queue.
QUASAR Add dispatch entry 17 to S$ROUTE.
QSRSCH Install S$ROUTE and tables required, convert station
numbers in OUTREJ.
Assume forms are frozen if "NO OPERATOR ON DUTY".
Apply the bias (SPLLIM) on a per file basis.
Add linking dispatch for the USE Queue (S$USE).
QSRT10
QSRT20 Install I$OPER to check if an operator is present.
QSRQUE Call M$MOVE during Q$REQUEUE, Q$NEXTJOB, Q$CKAF, and KILPSB.
43 GALGEN Don't convert LPT limit factor from pages/page to
pages/block. Add a question for the number of minutes before
system shutdown to stop scheduling automatic forms changes.
QSRMAC Extract new symbol from GALCNF.
QSRSCH If KSYS is set and is less than FRMKSY minutes away,
don't schedule a forms change.
PRIO:0 now means default. Default it in SCHDEF, and change
link-in routines to make PRIO:1 do fifo linking.
QSRT20 Maintain spooled file-sizes in pages on -20.
44 QSRADM Add new module QSRADM to handle system
administrative functions. Move all the routing routines
from QSRSCH to QSRADM.
QSRMAC Include .REQUIRE for QSRADM in PROLOGUE macro.
QUASAR Call A$INIT, and dispatch to A$ORTE on a
ROUTE message.
QSRSCH Remove routing code and put in QSRADM.
45 ALL Cleanup accumulator conventions in all QUASAR modules.
P registers "must" be saved by ALL routines which use them.
46 ALL Major change of QSRMAC (#33).
Start rearranging code and data-structures to allow for
new user and directory number format on TOPS20.
QSRMAC Add account string block to the EQ.
Define the Request Descriptor Block (RDB).
Invent new CBL error code.
QSRT10 Invent I$EQQE, I$QELA, I$SMEQ, I$RMCH, I$DFEQ.
Make I$VSTR much smarter.
Remove I$DCHK.
QSRT20 Invent I$EQQE, I$QELA, I$SMEQ, I$RMCH, I$DFEQ.
Write I$VSTR.
Remove I$DCHK.
Start removing/changing JSYSes which are non-
existant or different in TOPS20 release 2.
QSRMEM Invent M$PCNT to determine whether a given
number of pages can be acquired.
QSRQUE On LISTANSWER keep track of the number of pages
needed to build the listing and if the number of pages needed
to build the last listing are not available give the new
CBL error.
47 ALL Start putting in event counters.
QSRQUE Remove all PSB handling routines, Q$RCK, Q$HELLO, and Q$KLPD.
Move the ACK call from Q$LIST and move it to Q$LANSWER
after check for %CBL since otherwise user never gets CBL error.
QSRADM Insert all PSB handlers and routines removed from QSRQUE.
Invent COUNT and CNTANSWER messages.
QSRT20 Put in STGWLD routine to compare a "wild"
string against a base string.
Uninvent I$MSTR, it wasn't useful on -20.
QSRT10 Uninvent I$MSTR and have I$VSTR do its work.
50 QSRMAC Define flags for calling C$SEND.
QSRMEM In M$MOVE, if moving to a queue with no scheduling
vector defined, use M$ELNK to link the entry in.
QSRSCH Remove scheduling vector for USE QUEUE.
QSRIPC Modify calling sequence to C$SEND to optionally
allow specification of additional action to be performed.
QSRT10 Cleanup I$EPID a little.
Add some more debugging aids, i.e. the CRASH routine.
QSRT20 Change I$CHAC to allow access only if caller
is a wheel or the request owner.
Add some more debugging aids, i.e. the CRASH routine.
51 QSRMEM Call new routine I$MFFP to find first free page in
my address space during initialization.
QSRT10 Add new routine I$MFFP.
QSRT20 Add new routine I$MFFP.
52 QSRMAC Add QUASAR job number to COUNTANSWER.
QSRT10 Set job number in COUNTANSWER.
QSRT20 Set job number in COUNTANSWER and fix problems with I$VSTR.
53 QSRMEM Incorporate performance improvements in garbage collection
and free page searching.
QSRT10 GETTAB directories for prime and redundant queues at
initialization time on -10.
54 QSRT10 Make I$GTAB into a local routine.
QSRT20 Extract structure from spooled file name and store it
in the CSM so FTSPLIT works on the -20.
QSRIPC Set "truncate if too long" on all receives.
CSPQSR Set "truncate if too long" on all receives.
GALGEN Ask about FTSPLIT on the -20.
55 QSRSCH Call routines in operating system interface to handle
/UNIQUE checking of directories.
QSRT10
QSRT20 Add I$UQST, I$UQCL, I$UQCH to worry about /UNIQUE directory
checking for batch requests.
;;First field-test release of GALAXY release 2, Jan, 1977
56 QSRMAC Invent the RDE queue.
QSRQUE Place jobs which get the RDE bit set into a
separate queue, the RDE queue.
QSRSCH If a known component has said that it can handle RDE jobs,
try to schedule it one before checking the processing queue.
QSRT10 Make the maximum IPCF packet size equal to the
MAX(SPL.SZ,monitor supplied maximum).
57 QSRSCH Add the "bias" to the limit for each copy of each file
rather than each file.
200 QSRMAC Begin release 3 development. Major change of QSRMAC (#34).
Take length of FD out of the FP and add a length field to the FD.
Define two new queues, XFR and BIN.
ALL Use new FD/FP format. This change affects the format
of the CSM, FP, MODIFY message.
QSRSCH Add a release entry to scheduling vectors (SCHREL).
Add vectors for the new queues.
QSRQUE Call the SCHREL entry instead of S$RELE.
201 QSRT20 Fix some problems with edit 200.
202 QSR??? Change all QUASAR modules to use the new GLXLIB conventions,
routines and symbols. Also add some debugging code.
203 QSR??? Integrate more of GLXLIB
204 QSR??? Change to use the new GLXLIB segment
205 QSR??? Begin adding QSROPR, ORION-QUASAR interface
206 QSRMAC Remove file-specific modify symbols.
Remove FP.IGN field from the FP.
QSRSCH
QSRQUE Remove group 2 (file-specific) modify, and make the various
parameters part of the group 1 (queue-specific) modify parameters.
QSRT10
QSRT20 Remove I$FMCH.
207 QSR??? Make use of the GLXLIB module GLXINT for interrupt handling
and common operating system tasks.
210 QSR??? Move TEXT message to GLXMAC
211 QSRMAC Major change 35 to %%.QSR, message format change (.MSxxx)
212 QSRMAC Make /UNIQUE values 1 and 2 rather than 0 and 1 so that it can be default.
Make /RESTART a 2 bit field with values 1 and 2 for the same reason.
QSRSCH Default the /UNIQUE and /RESTART fields.
213 QSRMAC Add canonical device types
QSRADM Add new object queue creation code
QSRTx0 Add I$NLDV for finding number of local devices of type 'xxx'
214 QSRMAC Insert new definitions for the PSB and the HELLO message.
Insert definitions for new SETUP and RESPONSE-TO-SETUP messages.
QSRSCH Re-write entire module from scratch to implement new scheduling
algorithms.
QSRADM Re-write A$HELLO and KILPSB to keep up with all the other changes.
215 ALL Due to interim release on the -20 called version 3,
make this version 4 of GALAXY. Continue with new
scheduling changes.
216 QSRMAC Change ROUTE message to use full words for nodes, to allow
QSRADM TOPS20 style node names
217 QSRMAC Add symbol for file spooler XFRSPL OBJect type.
Add mask symbol for flags in flags word of HELLO message.
220 QSRMAC Get rid of the AFT queue and keep AFT jobs in the
QSRQUE appropriate external queue.
QSRSCH
221 QSRMAC Add new Table of Contents.
222 QSRQUE
QSRSCH Make jobs which have been scheduled and checkpointed at
least once get restarted sooner after a system crash by
invisibly bumping its priority.
223 ALL Remove FTSPLIT conditional in preparation of new general
dependency list.
224 QSRMAC Define new data-structures (and re-define old ones) for new
dependency list.
225 QSRMAC Create the QSRMDA module which will contain all the routines
QSRMDA which do things with file-structures. Include the .REQUIRE
for QSRMDA in the PROLOGUE macro.
226 QSRMAC Invent the RDR queue for Readers (card). Take the structure
QSRSCH word out of the LISTANSWER message and just include a bit
QSRQUE which indicates waiting for structure.
227 QSRT10 Add a routine to validate objects.
QSRADM Add the hooks to call the object validation routine.
QSRMAC Add INPMAX which defines the maximum number of Batch
streams which can be started.
230 QSRMAC Change PROLOGUE macro to .REQUIRE QSRSHO if QUASAR is defined.
QSRSHO Add a new QUASAR module for display messages.
231 QSRMAC Remove .REQUIRE Statements for all Modules
and Create a Separate Command file QUASAR.CMD
to load the module.
232 ALL Remove PROLOGUE macro from QSRMAC. Use PROLOGUE in GLXMAC.
233 ALL Changed DEFLIM OUTP to be compatible with QMANGR
234 QSRADM Modified The route processor for the new
message types.
QSRDSP Added the SHOW ROUTE TABLE message processor.
235 QSRMAC Modified INPMAX so as to get its value as a GALGEN parm.
QUASAR Added G$NBAT as a global parm. Used to keep track
of the number of batch streams started.
QSRT10 Modified I$VOBJ to use G$NBAT
QSRSCH Modified the SHUTDOWN code to Update G$NBAT.
236 QSRMAC Define a symbol representing the number of
words used for the .EQLIM block. Also, get
rid of the old .EQ??? and EQ.??? symbols.
237 QSRMAC Add IBM and Card Reader queues
QSRSCH Add Card Reader scheduling code. IBM is the same as card punch.
240 QSRMAC Add the new Network data base structure.
QSRSCH Modify all calls to network subrutines to use the new routines
QSRADM Deleted all network support from this module
QSRNET Added this new QUASAR module in support of Networks.
241 QSRDSP Modified the queues display to its new format.
QSRSCH Modified the scheduler so that network devices get shutdown
when the queue is empty.
242 QSRT10 Fixed I$LGFD so that it generates ledgible file names
QSRMDA Fixed a bug in D$ESTR which allowed null structure names.
243 QSRADM Added support for SET LIMIT-EXCEEDED commands.
QSRMAC Here also
QSRMAC Added support for DISP:RENAME
244 QSRMAC Modify the Spool Msg structure for DISP:RENAME
QSRT10 Add more DISP:RENAME code
245 QSRT10 Complete the DISP:RENAME coding
246 QSRQUE Fix a bug which caused create's with bad structure names
to be fail-softed. This caused QUASAR to stopcode
if it was restarted since when Q$CREATE rejected the
entry the second time, QSRFSS couldnt handle it.
247 QSRMAC Add .FPINF to the EQ for the card reader
QSRSCH Add defaults for the SPRINT queue
QSRT10 Fix I$CSM for DISP:RENAME
250 QSRMAC Changed a duplicate definition of SP.DFR under SPL.SF
to SP.FLG.
QSRT10 Changed I$CSM to use the new definition.
251 QSRT20 Fix a bug in I$CSM so that device numbers specified
in the spool message FD are parsed.
252 QSRMAC Expand EQ limit block to 6 words.
Define a Device Status Update msg (Function 31).
Change the Object queue entry OBJSTS to 1 word which
will contain a code describing the Object status.
Define the object status codes.
Add operator intervention symbols, DEFLIM it, and add
to the Object queue parameter words
Add RSU.CD to the Response-to-Setup message. This
contains an optional reason why the device count not
be started.
253 QSRQUE Fix the Request-Id logic so that RIDs are maintained
after queue modification
QSRSCH Add code to INPFJB so that it checks the opr intrvn
status before scheduling a job for a stream.
Add code to default the opr intrvn status for batch jobs.
254 QSRIPC Fix C$GET so that oversize packets are recieved properly.
255 QSRADM Remove Set Job Priority - make it a Modify Command.
Add code for Set OPr/NO-OPR Intrvn.
Change A$OREQ, A$OHLD, A$OREL to use Req Id instead of
Jobname & Seq number.
Add A$DELETE to remove jobs from the queues
Add A$STATUS to update the Object status via a device
status update message
256 QSRT10 Fix I$LGFD so that it generates unique funny-name
log file-specs
257 QSRDSP Re-write the Show Status and Show Parameters routines
to display the data in a different format
260 QSRSCH Add code
QSRT10 to support
QSRQUE the /NOTIFY option
261 QSRMAC Add %READN to object status code list.
QSRADM Fix A$OBST so the Free running objects are always set 'IDLE'
QSRDSP Fix DMPSTS so that the call to CHKSPC for the /AFTER parm
is made after we're sure that there is a /AFTER parm
QSRQUE Modify NOTIFY routine to put out a crlf first.
262 QSRMAC Delete Function 24, operator action message (Now obsolete)
QUASAR Add G$RMTE for remote operator queue requests
It contains the node at which the operator is located.
QSRQUE Fix Q$CREATE so that the correct number of limit words
are BLT'd from the EQ to the QE
Modify FNDREQ so that if its checking an operator request,
it looks at G$RMTE and only wins if the queue entry is
destined for that operators remote station
QSRSCH Fixed LNKPRI so that priority 1 jobs are always linked
to the end of the queue, regardless of limit specifications.
QSRADM Added a DOSCHD to the SET message processing routine
Added code in A$MODIFY, A$OHLD, A$OREL, A$ODEL
and GENRDB to support the .ORNOD block in operator msgs.
QSRNET Make QUASAR completly Node number/Node name knowledgable.
Ie., make it so that it understands either an
octal node number or a sixbit node name in all cases where
a node value is referenced.
263 QSRMAC Add symbols for /BATLOG: switch
QSRSCH Add code for /BATLOG: support
264 QSRMAC Add %REQUE to the list of object status codes
QSRSCH Fix scheduling bug in batch for opr intrvn allowed
Also add defaulting code for batch log type
265 QSRMAC Change .QEJBN so that it contains 2 values:
QE.UJN==0,,-1 ;Users Job Number
QE.BJN==-1,,0 ;Batch Job Number
Also change CHE.FL, adding CH.JBN which is the
job number of the checkpointed batch job.
QSRQUE Modify Q$CHECKPOINT so that it save the batch job number.
Add routine Q$NOTIFY to setup /NOTIFY parameters.
QSRT10 Delete routine I$NOTF
QSRT20 Delete routine I$NOTF
266 QUASAR Deleted G$OLNK hack.
QSRSCH Deleted references to G$OLNK.
267 QSRMAC Delete .OTBIN and .OTXFR symbols. Define them in GLXMAC.
270 QSRSCH Add processing code for XFR queue. Simple first come
first serve scheduling.
271 QSRMAC Add symbols QE.AVO, QE.AVI to redefine .QEITN for
account verification (-10 only)
QSRSCH Add hooks for Account Verification
QSRT10 Add routines I$VACT, I$ACCT. These two routines
QSRT20 are used for Account Verification. I$ACCT is
a no-op on the -20.
272 QSRMAC Delete OBSNLP
QSRSCH Delete code supporting OBSNLP. This modifies the
scheduler such that it does not shut down objects
just because there are no jobs in the queue AND
there is another object which needs to be started.
Remote objects will still be shut down when the
Queue go empty.
273 QSRMAC Add QH.INV to queue header flag.
Add OBSINV to object flags
Add node block to list queues request message (function 10)
Add QH.INV to QUEUES macro.
QSRADM Add support for initializing invisible objects when the
object gets started.
QSRDSP Add support in D$SHST and D$SHPR so that invisible objects
are not displayed in status/parameters requests.
274 QSRMAC Delete SPRINT .EQLIM definitions for CMOD, CSIZ, NCRDS.
Add %EQUFT for file retrieval
Add new object scheduling bit OBSINT (internal shutdown)
QSRSCH Modify CHKOBJ so that it shutsdown the object if its
remote or if OBSINT is lit.
QSRT20 Modify I$DFEQ so that if the job name in the EQ is
null,,it gets defaulted to the first 6 chars of the filename.
QSRQUE Rewrote Q$ARCHIVE so that it conforms to GALAXY standards.
QSRADM Changed GETOBJ so that the right field is checked when
looking to see if the object is free running. (QH.TYP)
QSRDSP Changed DEPRET to fix a few bugs. (Wrong ac's, a PUSH and
no POP, etc.)
275 QSRMAC Add new message type .QONWA and description (function 36).
Add FP.RCD to the BIN queue FP description.
QSRNET Add NODE Jsys to GETNODE routine.
Modify N$INTR so that when a node goes offline, it
searches the object queue looking for objects started
and setup for that node. If it finds one, it sends a
node went away message to the controlling spooler.
When done, it sends ORION the same message.
QSRT20 Change I$RDEF so that it picks up the tape info from
the limit words instead of the checkpoint words.
QSRQUE Change Q$ARCHIVE so that it saves the tape info in
the limit words instead of the checkpoint words.
276 QSRMAC Move EQHSIZ to the end of the EQ header definition (where
its supposed to be)
277 QSRMAC Put all ARCHIVE definitions under TOPS20 conditional.
QSRQUE Move Q$ARCHIVE to QSRT20.
QUASAR Change Archive message entry point to I$ARCHIVE.
300 QSRMAC Add a redefinition of the RDB for ARCHIVE requests.
Delete the ARCHIVE definition's in the KILL msg.
Add an ARCHIVE msg Create code (.QIRET) so that
creates wont fail if Queue Creates are disabled.
QSRQUE Delete routine FNDFRR and make it work with FNDREQ.
QSRT20 Delete all Archive notification routines (they
were terribly written) and replace them with code
that works.
301 QSRMAC Change .EQUSR to .EQOWN (Just to be consistant)
Add symbol EQNMSZ which is the length of .EQOWN.
Add .QOCQE (Short Create message) to msg type table
QSRQUE Add Support code for .QOCQE (Short Create Message)
QUASAR Add .QOCQE to the QUASAR message Dispatch Table.
302 QSRMAC Change .EQTIM to .EQSPR (SPARE)
QSRADM Delete 'Requeue' from Request-Id error message
QSRQUE Change create ack to put out # of files if greater then 1.
303 QSRT20 Change Archeive Notify to put flag on in .OFLAG and to
use .CMDIR for the Directory
304 QSRMAC Add SUP.PL for DN60 PORT,,LINE #'s to SETUP message
305 QSRMAC Add SUP.ST For remote network status/flag bits in SETUP msg.
306 QSRMAC Add .OOTAP to OBJPRM definition and OBDTAP to
line printer attributes for spooling to mag tape
QSRADM Modify A$OSTA to support spooling to mag tape
QSRSCH Modify SETUP to support spooling to mag tape
307 QSRMAC Add NETBPM to network data base (Bytes Per Message)
QSRADM Add DN60 CALL11 Support
310 QSRMAC Change INPMAX to default to 30 streams total
Add INPLOG to default /OUTPUT:(LOG,NOLOG,ERROR)
Change INPOIP to default to 1 (opr intrvn required)
QSRSCH Change INPDEF to use INPLOG to default the /OUTPUT: switch
311 QSRMAC Add a new limit word to the card reader inperpreter .QE
queue. This new field is CNOD which is the node where the
card deck origionated.
312 QSRMAC Remove error DRN - Duplicate Mount Request Name - from
the QUASAR error list.
QSRT20 Remove the code from U$MNT which checks for duplicate
mount request names.
QSRSCH Modify LPTFJB so that if spooling to tape, it skips the
device check
313 QSRMAC Add a new queue for DBMS (DBM)
QSRSCH Add scheduling control vector for DBMS
314 QSRMAC Add %OPRWT to list of Object status codes for DN60
Add error code WFM (waiting for tape/structure mount) for
R.ACE and Co.
QSRT20 Have U$MNT always return through E$WFM.
315 QSRADM Make A$OBST set remote stations which are internally
shutdown show up as IDLE instead of NOT AVAILABLE
QSRDSP Fix a bug in PADLIN so that the correct byte count
is calculated even if the count is negative.
QSRNET Fix a bug so that TOPS-10 603A and non-decnet
TOPS-20 monitors will run. The bug fix is just to
make sure that the central site status bits
are not set to indicate that the node is offline.
QSRQUE Fix a bug - make sure that if a BIN (SPRINT) request
is processed, that no NOTIFY takes place.
316 QSRADM In the DEFINE command processor, start a batch stream for
Emulation.
QSRDSP In the list file archiving code, if the user specified
/ALL, list the archived file name (From .QECON)
QSRT20 In the File Archiving defaulting code, stash the archived
file name in the connected directory area (.EQCON)
317 QSRMAC Add response to setup code %RSUNC for
'Port/Line not conditioned'
Add another word to the network data base for port/line handles
Add another word to the setup message for port/line handles
QSRADM Add code to A$DEFINE so that it generates a handle for
that port/line number by which the front end and spoolers
can identify one another. Use the UDT and save in net DB.
QSRSCH Modify the setup message processor so that it sends the
port/line handle along if setuping up a DN60 remote station
Modify the Response to setup code so that, if the line/port
handles do not match(%RSUNC) we will re-define the port/line
and retry the device setup.
320 QSRDSP Add code to D$DMNT (Show Mount Queues) to support
'INFO MOUNT/USER:xxxx'
*********** Start MDA Modifications/Additions **************
321 QSRMAC Remove the TOPS20 conditional from the MOUNT structures.
QSRT20 Remove The MOUNT message processor from the U$MNT code
and make it D$CMDR to create the MDA MDR queue. Put it
into QSRMDA.
Add I$DFMR to default the system dependent data for the MDR.
QSRDSP Change all MNTQUE references to MDRQUE
QSRMDA Add D$INIT to initialize the MDA system
Add D$CMDR to create an entry in the MDR queue.
322 QSRMAC Change the disk mount block type codes so that they fall in
line with the tape block codes.
Add 2 new block types, .MDNAM, .MDACT for the user
number, the user name, and the users account string.
QSRMDA Add the block processors for the new codes.
323 QSRMAC Impliment Base Level -3 of MDA . Make Mucho changes/refinements
to the MDA structures. Update all the Pictures for all QUASAR
structures. Delete the File Retrieval cancel msg Structure.
QSRT10 Add code for Initialization to build the UCB chain.
Add routine I$OMNT to parse operator mount messages and
send them off to the correct msg processor.
Delete all U$xxxx routines and/or modify them to be I$xxxx.
QSRQUE Make Q$LOGOUT exit through the MDA logout processor D$LOGOUT.
QSRMDA Add mucho code to support base level -3 of MDA. This base level
supports tape mounts (no AVR) and replaces the UMOUNT/OMOUNT
interface for tapes.
QSRDSP Cleanup/fix the tape/disk mount queue display routine to use
the MDA structures.
324 QSRMAC Add Volume status (on-line/offline) message block definitions
325 QSRMAC Delete the file archiving cancel message decsriptions
QSRT20 Delete the code in I$RMCH for matching file archiving
requests since the cancel message is going to look just
like all other cancel messages.
326 QSRMAC Add /NOTE:, /BEGIN:, and /PRIORITY: to the list of short
create blocks.
QSRADM Make D60CND set the IBM node offline. Make A$OSND send
the message if the destination node is an IBM station.
QSRSCH Make RSETUP set an IBM node Online if the setup is %RSUOK.
Make RSETUP set the IBM node offline if the response if
%RSUDE and we were setup prior to getting the response to
setup.
QSRMDA Make some mods to get MDA code running on the -20.
QSRDSP Delete/Change D$SHRT (Show route tables) so that it dumps
the network data base.
Make D$SMNT dump the remarks if /ALL is specified.
Add code for /SCRATCH in D$SMNT.
QSRQUE Add processing routines CRQNTE, CRQBGN, and CRQPRI for new
short create message blocks.
327 QSRT20 Make I$CACV get the user number from the EQ.
Re-arrange some code in I$DFEQ to make sure .EQOID is
defaulted before account validation
330 QSRT20 Fix a bug in the file archiving notification code which
caused a DTL stopcode. Must asve AP across the NSNDIT
subroutine call.
331 QSRMDA Add finishing touches on volume switch support (tape).
Put up latest version for everyone to use.
QSRDSP Add REMARK and LABEL TYPE on tape Q display
332 QSRMAC Add error code CIU.
QSRMDA Fix a bug in MDA Identify code to prevent OPR from identifying
the users current tape as the user next tape in volume switch.
QSRT10 Delete temporary code for setting/clearing DVCMDA.
333 QSRMAC Add new Message type .QOREW for MDA Tape Rewind
QSRMDA Add code to support the new rewind function
QSRT10 Fix a bug (MDA) so that if the device is not available,
we don't lite the AVR bit on startup.
334 QSRMAC Add Error Code ICD, Illegal Connected Directory Specified.
Modify the setup msg block for passing DN60 line conditioning
block
QSRT20 Return Error ICD if Connected directory error
Add a WTO for a File Retrieval Request.
QSRNET Remove IBM check from N$NODE and only return TRUE is online
QSRSCH Re-Work S$RSETUP and remove the old DN60 crocks and add some
new ones
Delete routine CHKNODE and put the node online/offline checking
in the scheduler and the object validation in GETOBJ(QSRADM).
Modify SETUP to pass a correct DN60 line conditioning block
to the spoolers.
QSRADM Delete the DN60 line conditioning routines (They're moving to
the spoolers) and re-work the DN60 support code.
Add some more object validation to GETOBJ.
QSRMDA Move the PUSHJ P,UNLOAD from CHKVOL to the device status msg
processing routine.
335 QSRMAC Expand the node went away message so that we can stuff the
port,,line number in .OFLAG and lite %ONLINE in .MSFLG to
make it a Node Online Message.
QSRADM Add code in KILPSB so that if we are killing a processor for
an IBM remote, we set the node offline
QSRNET Add entry points N$NONL (online) and N$NOFF (offline) for IBM
online/offline processing. Have it send a node-went-away or
node-came-online message to Orion.
QSRSCH Make the RSETUP routines call N$NONL & N$NOFF for IBM remotes.
336 QSRMAC Add .FPF8B for 8 bit files
QSRSCH Add DN60 Node offline call to the shutdown code.
Also, send the setup msg to DN60 devices regardless of
requests in the queue.
QSRADM Delete the code to set an IBM node offline in SHUTDOWN NODE
337 QSRDSP Add support to the show status processor for the emulation
spooler. If the emulation spooler is running, send the status
message to it so that it can generate the ack back to the OPR.
340 QSRT10 Modify I$IPS so that it works the same on both the -10 and
-20. That is, if the message being sent is greater then the
maximum packet size, then allow it to be sent anyway. We
did this by allocating a page for the message and sending
a page instead of a packet. This allows for GALAXY debugging
where IP.CFL would not.
341 QSRSCH TOPS20 QAR (20-00605) Delete the spooling to tape check
in OUTFJB.
342 QSRADM Add DN60 Signon support to DEFINE and SET NODE commands.
QSRMAC Add Node Status Bit NETSGN for Node Signon Required.
QSRDSP Modify D$NPRM to display Signon Required info
343 QSRMAC Add a new status bit to the EQ for account validation required.
Delete OBJECT status bit OBSAVW.
QSRT10 Start adding code to support disk units in MDA. Build the
UCB's and VOL's for disk drives in I$INIT.
Make I$SACV always return true.
QSRSCH Delete the JUMPF .RETF following the call to I$SACV
in NEXTJB.
Delete the JUMPF SCHD.4 following the PUSHJ P,SCHSCH(P2)
in SCHD.2
Change the PUSHJ P,EQDFLT at BINDEF to PUSHJ P,INPDEF
QSRNET In N$NONL, change the check for .OTIBM to .OTBAT
Also, only send the Node online/node offline message to
ORION if the node is termination
QSRADM In A$HELLO, $LOG the processor signon event.
In KILPSB, $LOG the deletion of a PSB.
QUASAR Add support for account validation response from ACTDAE,
so that we dispatch to the correct routine.
344 QSRSCH Add OBSSIP to S$SHUT code to check if setup in progress
for shutting down an object
QSRADM Add OBSSIP to A$SHUT to check for setup in progress when
shutting down an object
QSRDSP Remove label type from /ALL mount queue listing
345 QSRADM Change A$OSHT to remove the OBSSIP bit check added above.
Instead, make A$OSHT call S$SHUT to shut down the object.
Also, change SHUTNO to call S$SHUT to shut down an object.
QSRT20 Zero the VL.SCR (CHKP.5-3) bit if MOUNTR passes back a
volume ID.
346 QSRSCH Add a hack (Should be removed ASAP) to correct a problem
in BINDEF where the CNOD limit word can get trashed by
the call to INPDEF. Save the CNOD limit word across the call.
347 QSRT20 Modify I$AGE so that it always returns a value. If the
calculated time difference is 0, then return 1 second.
QSRT10 Same As Above.
350 - 600 Spare Edit Numbers For Release 4
601 QSRMAC Expand the EQ status bit (QE.ACT) so that it is a field 2
bits in size. Add EQ.ACT codes %VALID, %VALRQ, %VALPD
QSRT10 Change I%ACTV, I%CACV, I%VACT to use the new codes.
;Start implimenting disk structure support for MDA.
602 QSRMAC Add symbols .VLVID, .VLSTR to the VOL structure description.
Add symbols .UCBAU, UC.UTP to the UCB structure description.
Add Symbols for .DSVOL block in the .QOTST message
QSRT10 Add disk structure initialization support for MDA.
Define .QOCAT and .QORCT message formats
603 QSRMAC Add symbol for %RMSTR, removal of str from user's search list
ACK code type.
604 QSRMAC Add %UNKN for unknown mount requests
QSRMDA Fix many bugs in MDA code for Strcutures
QSRDSP Add a display routine for SHOW STATUS STRUCTURES
605 QSRMDA Make MDA pass and understand the ack code for
catalog requests.
Delete routine D$MVSL as it is now not needed.
QSRDSP Change the reference to D$MVSL to do check .VSUCB instead
Make KONTBL a global table
606 QSRMAC Add .RDBVS to the RDB structure for canceling mount requests
QSRT10 Change I$KMNT to use .RDBVS
QSRMDA Change MDA to enable multiple volume set requests
QSRDSP Change D$SMNT for new MDA structure
607 QSRQUE Make the message length check in Q$KILL upward compatible
QSRADM Add OBSSIP to A$OSHT so that setup in progress is equilvelant
to setup
QSRSCH Add OBSSIP to S$SHUT when shutting down an object.
610 QSRMDA Fix 2 bugs. One in D$IDEN which would cause an IVU stopcode
by deleting a volume which was requested by someone. Second,
make REASSIGN take a VSL Address in S2 so that we assign the
device to the correct volume set.
611 QSRMDA Add .VLOID the owner id for private structures
Don't build structure until we know the owner (via GETCAT)
612 QSRMDA Make DELVOL delete all volumes of a multiple
volume structure.
QUASAR Add support for [SYSTEM]GOPHER messages
QSRT10 Add routine I$GOFR to process [SYSTEM]GOPHER messages.
613 QSRMEM Remove routine SETSIZ and make the references just a LOAD.
QSRT10 Remove routine I$IPS for sending IPCF Messages
QSRMAC Remove the IPCF resend and input queues
QSRIPC Delete all old code and rewrite QSRIPC, using the GLXLIB
IPCF interface
614 QSRADM Change A$OSHT to remove the OBSSIP bit check. Instead make
A$OSHT call S$SHUT to shut down the object. Also change
SHUTNO to call S$SHUT to shut down the object.
QSRSCH Add OBSSIP to RSET.2 so that it gets cleared when OBSSUP does
615 QSRIPC Add a call to G$SFAL in the unrecoverable send code to
delete the PSB and clean up the world if the 'user' that
went away was a processor.
616 QSRIPC If we queue up a message to be resent later, then return true.
QSRMDA Add code to build the 'A' matrix for deadlock avoidance.
Change USRNOT so that it sets up the page in both the ACK code
and the NOTIFY code.
Add new DISK. function to clear MDA WAIT in UNISTS.
Fix a bug in DELVSL so that if called with TMPVSL as the VSL
to delete, then we do the right things
617 QSRT10 Delete the code to get the device attributes during UCB
generation and make it a separate subroutine called I$GATR
QSRMDA Add support for the ATTACH/DETACH monitor messages.
Make SET x AVAILABLE call I$GATR to setup attributes.
620 QSRMDA Add support for LOCK and UNLOCK commands
621 QSRSCH OK Fans, I've finally gone and done it. With this edit,
QUASAR now has an EVENT queue for scheduling events by time.
Rewrote routine CHKTIM.
Added routine S$EVENT
QUASAR Deleted routine G$STIM and added global variable G$EVENT
622 QSRMDA Display units of structure when dismount ack comes thru.
QSRMAC Symbolize forward, backward pointers in .VLPTR
623 QSRQUE Delete the call to S$SCHK when a checkpoint message is processed
QSRSCH Make S$SCHK check the OBJTIM word to see if a checkpoint is
scheduled. If it is non-zero, then return now.
Make CHKPOINT zero the OBJTIM word.
QSRT10 Change the INIT code so that if there is no MDA support in the
monitor, we don't do MDA initialization. Also, add code to force
QUASAR to wait for the system components it needs before
continueing to process.
QUASAR Add global word G$MDA for an MDA support flag.
624 QSRMDA Add ALLOCATION support
Add code to support QUASAR running without MDA monitor support
QSRMAC Add MR.LNK, delete VS.LVL.
625 QSRMDA Rewrite MATUNI, and add routines ACKUSR, CHKVSL, MNTVSL in
order to support multiple VSL Mount requests
QSRT10 Add routine to send SHOW messages for system DUMP list to
PULSAR.
Add a new error E$MDA for no MDA monitor support
QSRDSP Make D$SMNT check to see if the request is an allocation
request and if it is, skip over it.
626 QSRMDA Make D$CMDR be Global
QSRT10 Add code to process messages from the monitor for search
list changes.
QUASAR Add an entry for the above monitor message
627 QSRDSP Do something with /MOUNTED and /FREE on
SHOW STAT DISK
630 QUASAR Add a dispatch entry point for the LOGIN message.
QSRT10 Add routine I$LOGN to process LOGIN messages
631 QSRMAC Add VS.WAL for a new volume set state (waiting for allocation)
QSRALC Create module QSRALC for MDA Device Allocation
QSRMDA Add calls to D$ALOC (in QSRALC) to perform device allocation
632 QSRDSP Add SHOW ALLOCATION support
633 QSRMDA Add support for ASCII resource names
634 QSRMAC Add definition for unknown mount request type
635 QSRMDA Add support for /SINGLE, /NOCREATE, /WL, /PASSIVE
QSRMAC for disks.
636 QSRMAC Add .QOALC message type for BATCON allocation processing
QSRQUE Add support for MDA batch Interface (Call I$BMDR)
QSRT10 Add routines I$BALC (Batch Allocation Msg) and I$BMDR
for creating the batch request MDR.
637 QSRMAC Move the MM.ALC bit from .MMFLG to .MEFLG, and call it ME%ALC
Also Change MM.ALC to MM.DLC
Invent the .QOPRM message (just like .QOMNT) except
for use only from pre-scan process to QUASAR.
640 QSRMDA UiO hacking... Countdown on locked strucutres notification
Single access file structures. Operator intervention streams
Automatic unlod of file structure when last lock goes away.
641 QSRMDA More UiO hcaking. Don't account for resources
QSRALC used by 'permannent' structures. Remove those resources
QSRMAC from the A matrix at startup time
642 QSRMAC Add VS.REM to indicate user wants str dismounted
Add MM.REM for the same reason
QSRDSP Fix bugs in STATUS displays involving remote stations
QSRMDA Fix bugs causing PPR stopcodes in the batch/MDA interface
Make MDA wait for the dismount ack from PULSAR before
acking the user
Add support for user requesting structure dismount
QSRT10 Fix more batch/MDA interface problems (I$UMDR)
QSRALO Add code to make the allocation routine reset the VSL link
codes for pseudo requests if the allocation wins
643 QSRT10 Fix a bug: Make I$KMNT check for a null MDR and delete it
before returning.
Add some code to support MDA UUO interface (Errors only)
QSRMAC Add MR.ACK for checking ack msg requests in mount/allocate
QSRMDA Modify D$MOUNT to set MR.ACK and USRNOT to check it.
644 QSRT10 Add full UUO support for MDA.
QSRMAC Add MR.GFR to indicate request was generated by UUO.
QSRMDA Make USRACK look at MR.GFR and exit if set
Rewrite VALMSG so that it validates ALL message block lengths
645 QSRMAC Invent ASL.NQ so MDA can tell PULSAR to remove a str from
a user without regard for quotas
646 QSRMDA Fix a couple of bugs. First, delete the call to MATUNI in
ALCVSL for mag tapes and make DELVSL always call ALCVSL.
Second, Create a new status bit, VS.NMT (Not Mounted) so that
we can mount a volume set for a pseudo process without really
assigning the device.
Add $ERJMP macros for error calls which will display the
error for the operator.
QSRMAC Define some new error macros and codes for MDA
647 QSRMDA Make MNTDRV look at 7 track codes, instead of 9 track
Make DEFTAP call TAPRSN to validate the resource type
Create routine REMOVE to delete a specific VSL and retry the
mount with the remaining requests (If any).
Call REMOVE from CATACK and D$RCAT
650 QSRMDA Fix NBE (Negative 'B' Matrix) Stopcode. In DELVSL, lite VS.UAL
with an IORM instead if INCR. In D$DVS, call DELVSL on a
Deallocate.
651 QSRT10 Finish Set Tape Initialize, Add .QOIDN (Initialize Done)
Message.
QSRMDA Add Support for MOUNT with ALIAS (OPR MOUNT command)
Add quota enforcement support
652 QSRNET Add support for device routing (Rewrite N$NRTE)
653 QSRMAC Add definition for %TFxxx tape label types
Make .TFDnn definitions as SYSPRM's
Add error codes for MOUNT message parsing
654 QSRMAC Add definition for %SITGO attribute and obsolete
OBDLLC, OBDLUC and RO.PHY
QSRADM Add support for device attributes in KILPSB, A$HELLO, and
A$OSTA.
QSRNET Change Device attribute check in N$CSTN for new attributes.
QSRSCH Add support for device attributes in the scheduler and
RSETUP.
655 QSRMAC Add an account string entry to the CSM and SPOOL msg
descriptions for TOPS10.
QSRADM Add routine A$GPSB & A$LPSB to find a generic PSB entry
using the object type and device attributes.
QSRT10 Change I$CSM to move the account string from the monitor
spool message into the connical spool message
Change I$SMEQ to move the account string from the CSM to the EQ
Change I$RALC so that it calls A$LPSB to find an allocation
processor, and also make it look at .QECRE and the DEPN limit
word before sending the request for allocation.
QSRSCH Delete the PSB search from the scheduling loop and insert a
call to A$GPSB instead.
656 QSRMDA Fix a bug in volume set name translation from lower case
to upper case
QSRQUE In Q$REQUEUE, make sure we always convert the MDR to a
pseudo process MDR
QSRT10 Store BA%JOB+Request-id in the QE when building the
MDR (I$BMDR)
QSRALO Store BA%JOB+Request-id in the QE when converting from a
real MDR to a pseudo process MDR
657 QSRMAC Add OBSSER (Stop after every request) to OBJECT status bits
QSRMDA Add LOCK /NOUNLOAD support
QSRADM Re-write A$OPAU to support various flavors of STOP
660 QSRMDA Add DISMOUNT str:/NOCHECK
661 QSRMDA Add D$ASGN to support foreign devices
QSRT10 Add I$CUNK to support foreign devices
QSRDSP Modify D$SMNT for %UNKN displays
662 QSRMDA Store density index into VS.DEN in the VSL and make DENSTY
global.
QSRDSP Add code to display volume set, tracks, and density on MOUNT
request listings. Also display single access mounts in SHOW
ALLOCATION commands.
663 QSRDSP Modify ACKs to include queue type on INP, LPT, etc. queue
requests.
664 QSRALO Merge this modult into QSRMDA and delete it
QSRMDA Add support for deadlock avoidance during volume switch
and at IDENTIFY time
Fix numerous bugs.
QSRQUE Add a new short create block for free running processors.
QSRDSP Add the remark, track and density data to the mount displays
QSRMAC Add VL.OWN to the volume status bits to indicate that the user
owned this volume at some time
;In-house 4.1 Load Test started 5-May-80
665 QSRMDA At MNT.2B, delete the check for allocation wait.
QSRSCH At INPFJB, delete the check for dependancy and /AFTER
times and always call I$RALC to check these and validate
allocation.
QSRT10 Make I$RALC always return FALSE unless we are no longer
waiting for allocation (QE.WAL not lit)
QSRADM Rewrite A$FOBJ so that we call N$MTCH to compare the
OBJNOD fields of the 2 object blocks.
666 QSRDSP Delete the "alloc Wait' status from the SHOW QUEUE display
QSRMDA In D$IDEN, call D$BMTX to locate the guys 'B' matrix entry
before updating his 'B' matrix.
667 QSRMAC ADD %TFT20 TAPE LABEL DEFINITION FOR TOPS20
MAKE %TFLBP ILLEGAL FOR TOPS20
QSRT10 Make the I$ATCH code clear the MDA wait status in the UNISTS
word for the port which was attached
QSRNET Always call the PURGE.DUP.OBJS routine for nodes online
and nodes just added. Also, always gen a new node name for
nodes online and just added.
670 QSRMAC Add an event counter for the number of times the deadlock
avoidance alogrithm is invoked.
Delete all references to the /DEADLINE parm (obsolete)
Add symbols MAXRES for the max resource count, and SGNBIT
for the "A" matrix count fields sign bit.
QSRMDA Add the counter increment to D$DEAD
Change the max number of a particular resource to MAXRES,
from G$MAXJ.
Change TELOPR to put out remark/track/density info on tape mnts
QSRSCH Modify INPSCH and INPRJI to fix a bug caused by multiple
batch streams (same batch stream number) being started.
QSRDSP Add track type to show status tape
Replace Req# with Job# in show status tape
Fix a bug in mount queue display so that we get correct tracks
QSRQUE Delete the modify instruction for /DEADLINE
671 QSRMDA Make the Mount request display for volume switches be the same
as normal mount requests.
Make /SCRATCH and /NEW tape volume sets work correctly
Make Bypass label processing a privilaged label type
QSRSCH Fix a bug in the new UNIQUE code (INPSCH).
QSRT10 Fix a bug - clear 'waiting for MDA' on ATTACH of either primary
or secondary port (Not just primary port)
672 QSRMAC Expand MDR for some accounting info.
QSRMDA Add hooks for MDA accounting
Fix a bug - Always call the deadlock avoidance routine during
device allocation
QSRT10 Add subroutines for MDA Accounting
In I$BMDR, do not set QE.WAM by default.
673 QSRMAC Define VL.FLG to mask the .VLFLG flag bits area
Add definitions for MDA defaulting from GALCNF
QSRMDA Add routine CKTVOL to check for duplicate VOLID requests
in different volume sets
In IDEN.3+x only move the .VLFLG flag bits from the mounted
VOL block to the user VOL block
In VSR.4 change the MOVEM P3,0(S2) to a HRRM P3,0(S2). This
will preserve the VSL pointer flag bits in the left half.
Add routine MNTOPR to notify the operator of pending mount reqs
QUASAR Add a generic error buffer called ER$XXX. This can be $TEXT'd
into in order to generat an ack back to the user
Move the call to DETACH up before the call to I%INIT.
QSRT10 Fix misc bugs in the MDA accounting routines
674 QSRMDA Delete the FROM: from the MDA opr displays
QSRT10 Make the accounting routines do a DSKCHR to get the private
structure bit.
Make the login routine do the ACCT. UUO to get the users
account string.
QSRDSP Fix a bug in CHKOBJ. Must save S2 around the call to N$NODE.
675 QSRMAC Delete .MRACT from the MDR.
QSRSDP Put the secondary port unit back into SHOW STATUS DISK
QSRT10 Make I$LOGN convert the batch MDR to a real MDR.
Make the MDA accounting routines get the users account
string and private structure bit at the time the account
entry is made.
QSRQUE Delete the code from Q$CHECKPOINT which takes the job number
from batch checkpoint messages and puts it into the QE.
QSRMDA On duplicate mount requests for tapes, don't allow attribute
changes. (prevents NCM stopcode)
On Set Tape Unavailable, do NOT unload the tape drive.
676 QSRMAC Add new counts inc. deadlock failures, nextjob messages
by objects, and mount by types
QSRMDA Do the counts for mounts and deadlock failures
Add the MPP stopcode to the D$PPRE routine
QSRSCH Do counts on nextjob messages by object
QSRQUE Fix bugs in the Modify code which caused MPP and PPR
stopcodes. Change Q$CREATE so that we ALWAYS generate
a new request ID. Change MODI.5 so that we delete the
old MDR for the request being modified.
677 QSRSCH Fix up some undefined symbols under INPCOR conditional.
QSRDSP Change Batch queue display to include /CORE value. Also
clean up random messages.
700 QSRMDA In the dismount structure ack code, is the requestor was a
pseudo process, then set the QE.WAM status bit instead of
calling USRNOT.
701 QSRT20 SPR 20-14519 Make NTIMER build the file archiving object block,
instead of relying on it being built by someone else.
702 QSRMAC Fix counts to have MNXT counted correctly (+.OTMAX+1)
Remove MABO so things remain the same
703 QSRDSP The OPR command "SHOW STATUS NETWORK-NODE nnn" where nnn was
an offline (unknown to QUASAR) octal node number would return
a junk node name in the ACK. QUASAR assumes that all node
names/numbers are in sixbit and would ^W/.../ the quantity.
^N/.../ instead.
704 QSRMAC Correct bad spelling in the IMO fatal error message.
705 QSRT10 Check DEVCHR bits DV.ASC!DV.ASP to determine if a device
is in use instead of DEVTYP's TY.JOB field.
706 QSRMAC Define new LIST message fields
QSRDSP Process new LIST message fields for SHOW QUEUE and QUENCH.
707 QSRDSP QAR # 10-04634 Fix display for OPR> SHOW STATUS STRUCTURE
/USER to show correct batch request number and notate same.
710 QSRSCH Change all search references of D60JSY to D60UNV
711 QSRMAC Implement /DISPOSE:RENAME correctly
QSRSCH Add routine RENDEF to default process /DISP:RENAME
QSRT10 Add Routine I$REND to rename the file to DSK:[3,3]
712 QSRT10 Rewrite the ATTACH/DETACH routine for the new monitor
message
713 QSRSCH Fix /MODIFY of input /DEST and /BEGIN
QSRDSP List input /DEST as well as /PROC
714 QUASAR Use new feature IB.DET to detach from FRCLIN.
715 QSRDSP Do a DEVNAM UUO for the device specified in SHO STA TAP x
QSRMDA Do ***NOT*** poll the tape drives on MDA initialization
QUASAR Delete the IB.DET bit from the IB. GLXLIB defaults to detach
if on FRCLIN
QSRSCH In INPDEF, zero .EQROB+.ROBAT to make sure no unit is specified
QSRT10 In D$BMDR, save the pseudo job number in the QE (.QEJBN)
716 QSRMAC Add symbol %RENAME for QUEUE. UUO and Short Create
QSRQUE Modify CRQODP to handle the %RENAME function
QSRT10 Fix debugging code at SETO.1-2 (QAR 10-04678)
QSRMDA Put out an error msg for IDENTIFY with bad RID (QAR 10-04675)
717 QSRT10 Add routine I$CGEN which validates device requests
Modify I$DTCH & I$ATCH so that multiple deatches for the same
drive do not change the unit availability count and an attach
for a previously unavailable drive gets the device attributes
again
QSRMDA Modify TELOPR so that the device type is displayed
for generic mounts
QSRDSP Modify D$SMNT so that the device type is displayed
for generic mounts
720 QSRMAC Add MR.QUE to the MDR flag word. Contains the object type of
the process if a pseudo process
Define VS.ABO for OPR mount cancels during volume switch
Expand the VS.RSN field to 6 bits & VS.TRK to 3 bits
QSRT10 Make I$BMDR set MR.QUE
Delete the force line detach code (GLXLIB always detaches)
QSRMDA Change all calls to A$FREQ which just need an object type to
use MR.QUE
Make CANCEL MOUNT <str> or <*> work.
Add support for mount cancel during volume switchs
QSRDSP Change all calls to A$FREQ which just need an object type to
use MR.QUE
Check VS.ABO before putting out a mount request
721 QSRMAC Add RSU.PN to respond to setup message for prototype node name
722 Fix SCE stopcodes
QSRMAC Add VS.REL to indicate a reel id was specified by the user
QSRMDA Modify MNTVOL to set VS.REL
QSRT10 Modify I$CUNK to check VS.REL
723 QSRMDA Fix multiple scratch tape mount problem
QSRT10 Add a WTO to the operator on a user mount cancel
Make the cancel mount code call CHKOWN
QSRDSP Make show status structure display the time in hours:minutes
724 QSRT10 During initialization, turn off spooling so QUASAR can reassign
physical devices (non-disk/tape) to users.
725 QSRMDA Confused user when QUASAR tells him that pending UNLOCK has been
canceled instead of pending LOCK.
726 QSRMAC No way to tell if a given stream or unit has a process driving
QSRDSP it. Invent new status "No processor" to indicate the obvious.
727 QUASAR Add code for statistics recording (G$LOG)
QSRMDA Clean up some noisy messages (those with bells).
QSRQUE
QSRT10
730 QSRADM Use ^N instead of ^W for node names
QSRDSP
QSRMDA Fix a bug so that the OPR cannot set a tape drive unavailable
while the user is switching volumes.
QSRT10 Modify I$BMDR so that we don't request allocation for jobs
destined for remote nodes.
731 QSRMDA Set and clear DVCMDA for all non-disk/non-magtape devices
reassigned so that pretty messages will appear on the OPR
terminal.
732 QSRMDA QAR #10-04775 Make disable/enable volume recognition work
correctly for both tape and disk drives
733 QSRT10 QAR # 10-04779 Reverse execution of GTNEN. with GETLCH
to use correct terminal number with GETLCH
734 QSRADM QAR # 10-04904 Can't shutdown the central node. Remove
useless check at SHUTNO plus a few.
735 QSRT10 QAR # 10-04776 Confused programmer. Description of ACTSTR block
says its storage for an accounting string. Not any more.
Change comments a bit.
736 QSRADM Add
QSRNET prototype
QSRSCH node
QSRDSP support for DN60
737 QSRMAC Remove definition for argument block and place in GLXMAC
740 QSRSCH Fix QAR # 10-04950 Don't zero attributes in INPDEF.
QSRMAC DELETE DEFDEN AND ADD DEF7TK AND DEF9TK FOR 7 AND 9
TRACK DEFAULTS.
QSRMDA ADD SUPPORT FOR DEFAULTING 7 AND 9 TRACK DENSITIES
ALSO, DO NOT ALLOW NULL DISK VOLIDS ON DISK ONLINE
ALSO, EXPAND VSL QUEUE ON STACK IN MNTVSL
QSRNET FIX SOME BUGS IN PROTOTYPE NODE SUPPORT FOR DN60
QSRT10 DO USAGE ACCOUNTING EVEN IF NOT DOING ACCOUNT VALIDATION
QUASAR DELETE G$APID (NOT USED)
741 QSRMDA Fix NCE stopcodes by checking VS.ABO in VSLRSN.
QSRADM Fix A$GBLK so that it is more defensive against bad messages
742 QSRDSP Clean up parameter display when stream attrributes are involved.
743 QSRMDA Don't set up AP at RCAT.0-1. FNDVSL already did it.
Fix up LOCK code so that PULSAR always deletes a sstructure
when a lock expires
QSRIPC In C$SEND, if no PID in SAB.PD, then skip resend logic
QSRDSP Enhance SHOW ALLOCATION display to include resource type.
744 QSRT10 Delete the WTO for invalid unit characteristics (of no use !)
745 QSRADM Stop the resetting of device attributes in KILPSB!
(%SITGO gets blown away)
746 QSRDSP Allow ranges specified in SHOW PARAMETER or DEVICE to
function correctly.
747 QSRT10 Enhance DECtape support. Change MOUNT queue display to
QSRMDA include device type and write locked/enabled status for
QSRDSP DECtapes. Change operator MOUNT message to include more
information about DECtapes. Add DECtape accounting.
750 QSRDSP Get rid of extra carriage return in SHOW STAT STR/USERS.
Align "Ask" with Lim-Ex column in parameter display.
Check for /FREE switch on SHOW STATUS TAPE display.
751 QSRMDA Fix generation of structure mounted messages to ]<crlf>[
752 QSRMDA Use symbolic, not numeric references to data within CATQUE.
753 QSRMDA QUASAR adopted the habit of handing out logical names for free
in the hopes of providing the user with a new "useful" way
of accessing a device. It has the nasty side effect of not
allowing the user to type .MOUNT MTA/switches twice, since
QUASAR tries to assign the logical name 'MTA' to both tapes.
Naturally, the first wins and the second loses. Also fix up
ACKs that want to display logical names when there aren't any.
754 QSRADM Change the default for transparance for IBM to off per B.S.
QUASAR Add a dispatch table for system messages to QUASAR
QSRMAC Add ATTACH/DETACH message definition to QSRMAC.
QSRT10 Delete ATTACH/DETACH message definition.
QSRDSP Fix QSRDSP to display correct forms type
Add 25 words to end of display page. Some mount displays
exceed 50 words.
755 QSRMAC Add .QEMDR & .MRQEA so we can point MDR's and QE at each other
QSRMDA Make MDA use .QEMDR & .MRQEA to reference MDR's and QE's
Do not allow SET AVAILABLE if device already is available
No not tell OPR to mount anything if batch req's has uniqueness
QSRT10 Make MDA use .QEMDR & .MRQEA to reference MDR's and QE's
QSRSCH Make NEXTJB reset .MRQEA
QSRQUE Make REQUEUE reset .MRQEA
QSRDSP Fix mount display to prevent wrap around.
QUASAR Do not execute G$LOG (Statistics routine) if debugging.
756 QSRMAC Add new object attribute OBSATR
QSRSCH If the processor resets the object attributes, set OBSATR
When shutting down the object, only reset attributes if
OBSATR is on
QSRADM When killing a PSB, only reset object attributes if OBSATR
is on
757 QSRDSP Modify the SHOW ALLOCATION display to include any volume set
QSRMDA names that the user has. Other minor cosmetic fixes.
QSRQUE
760 QSRMAC Some accounting changes. Keep the account string in the QE
QSRQUE so verification at scheduling time is faster, support the
QSRSCH new IPCF message returned from ACTDAE on a sucessfull account
QSRT10 validation (it contains a possibly modified/defaulted account
string) and move the new account string into the QE.
Fix a bug where spooled files didnt get account
strings unless account validation was required.
QSRMDA Fix logical name defaulting so that we always default the
logical name, but if the REASSIGN fails, we zero the name
and retry the REASSIGN UUO.
761 QSRADM Simplify A$CPOB to use a BLT to accomplish the move.
QSRSCH Fix bug in scheduling of remote batch jobs
QSRMDA Fix big in DELRID for bad request id display
Fix bug in DSMACK so that mounts do not disappear.
;Field test tape #4
762 QSRQUE Fix an old bug which caused mount requests to disappear.
QSRSCH Delete automatic checkpointing (performance fix) and let
the spoolers send checkpoints when they feel like it
QSRADM Add code to send a null ack to all PSB's when a HELLO msg
is processed. This will let QUASAR know what processors
still exist.
763 QSRSCH Jobs don't get scheduled for off-line nodes when spooling to
a random device. Add a check.
QSRADM No not shutdown invisible objects on SHUTDOWN NODE command
764 QSRMAC Define IPCC message type .IPCXC (XCHANGE disk unit).
Define some new .EQ fields: .EQUSR, .EQBOX, .EQCST, .EQDEC
QSRMDA Impliment a scheme for letting PULSAR return text to QUASAR
Do not create mount request for NUL: if pseudo process
QUASAR Add symbol MSGLN which defines G$MSG buffer length
QSRIPC Fix bug in C$SEND resend queue logic
QUASAR Define MSGLN for G$MSG length
QSRSCH Fix bug which caused remote devices to be shutdown (really)
when the queue was empty
765 QSRT10 Check for NUL: on pseudo process MDR creates
Fix DECtape accounting routines
QSRNET Don't check for non-standard devices (tape) when performing
network device checks for the scheduler.
QSRMDA Modify D$DEAS, D$ASGN to support (better) DECtapes, etc.
Fix a bug - Mount requests for strs when opr dismount fails
If perm str is dismounted,,update the 'A' matrix
766 QSRMAC Add OBSFRM to indicate forms change required
QSRSCH Fix DTS stopcode for IBM remote batch jobs
Add support for forms type change for LPTSPL
QSRT10 Add FTOACT feature test for FACT file accounting support
QSRNET Change output of route command to use decimal unit numbers
QSRDSP Add support to list reader interpreter (SPRINT) queues
QSRADM Add A$FRMC and modity SETFRM for LPTSPL forms change
767 QSRMDA Tell the OPR if user deallocates a mount request
Modify D$ESTR to not allow multiple entries for generic strs
Modify volume switch code to pass back more descriptive
errors in the volume switch directive message.
Make the owner ID get set when a str is mounted
QSRT10 Remove [..] from user ack on mount cancel
QSRNET Modify N$CSTN to not do routing for batch requests.
QSRMAC Add %VTMV to volume switch directive message
Delete .VLOID (Use .CTOID instead)
770 QSRSCH Clean up limits for plotter (they are minutes not feet)
QSRDSP Allow user setting/modification of PTP and PLT limits.
771 QSRQUE Fix it so request modification does NOT modify the /NOTIFY
ID of the origional requestor (once and for all !!!)
QSRT10 Fix I$LOGN to use .QEMDR to locate the MDR for the QE.
Also, check success in finding 'B' and 'C' matrix entries
Also, make attach/detach disk processor create/delete UCB's
as needed.
772 QSRMDA Allow OPR mount to work if users requested the structure
In MNTACK, if the mount fails then reset the forward/back
VOL block address pointers in .VLPTR
QSRADM Fix the last 'No Processor' bug. Move the code to set
genric attributes into the create object code.
773 QSRMDA Fix the big ones !!! Re-organize the way device allocation
is performed for mag tapes in order to prevent unwanted
deadlocks.
Finally make IDENTIFY work on BATCH mounts.
774 QUASAR Define entry points for monitor exchange message and
structure removed message
QSRMDA Add D$RMS to process the structure removed message
Allow tape initialization during volume switch
QSRT10 Add I$XCH to process the exchange message
Add routine REMSTR to remove structures not currently mounted
when the search list change message comes through
QSRDSP Add KSYS display to SHOW STATUS
775 QSRMAC Add ARF (Arbitrary Rate Factor) and KTL (KSYS Threshold Limit)
QSRSCH values. Add KSYS checking (based on ARF values) for all
output queues.
QUASAR Modify G$LOG so that if QUASAR is started within 10 minutes
after the system is booted, it will not write out a restart
record. This modification also creates a 70 minute window
after system restarts during which the SYS:GALAXY.LOG file
can be deleted.
QSRT10 Allow user to request scratch tape with QUEUE. UUO.
776 QSRDSP Fix a bug in allocation display so that the 'own' field is ok
Validate job numbers on SHOW ALLOCATION JOB x
QSRMDA Notify users if OPR unlocks a structure
QSRMAC Remove .OFLAG, .OARGC, symbols (Defined in GLXMAC)
QSRT10 Add routine I$CHKJ to check the schedulability of a request
777 QSRDSP Display /OUTPUT and /BATLOG on batch /LIST:ALL
1000 QSRSCH Produce a warning message when files with /DISPOSE:RENAME
can't be renamed.
1001 QSRT10 Use FTFACT from GALGEN dialogue and delete references to FTOACT.
QSRDSP Correct mount queue display listing when a job name (volume
name) is specified. Don't list the SPRINT queue if the user
specified a job name, PPN or unit number.
1002 QSRSCH Generate warning messages when /DISPOSE:RENAME fails and
QSRQUE add brackets around queue ACKs.
1003 QSRT10 Remove G$LOGN as the OPR can restrict batch jobs from OPR
QSRSCH Remove G$LOGN from batch schedeuling check since we won't
schedule IBMCOM jobs if its set.
QUASAR Remove G$LOGN since its no longer needed (and won't be back)
1004 QSRMAC Make default unit/stream parameters more reasonable.
QUASAR Define X$XCH to be D$XCH and delete [SYSTEM]GOPHER ID
QSRADM Add a DOSCHD call if status update returns %RESET.
QSRMDA Modify CHKBAT to get QE address from MDR and call S$INPS
to check request schedulability
Add D$XCH to process monitor XCHANGE messages.
QSRSCH Change INPFJB to call I$RALC (which calls S$INPS) to
check the request schedulability
Move all of the request dependent scheduler parameters into
S$INPS - These include /AFTER, /DEP, operator hold, etc.
Allow /DISPOSE:RENAME file processing for batch CTL and LOG
files by having INPDEF call RENDEF.
QSRT10 Delete I$CHKJ and add I$LCKS to check structure lock
schedules. Also, have I$UMDR clear QE.ALR & QE.WAL.
QSRDSP In D$SMNT, call S$INPS to check request schedulability
before including the request in the mount display
1005 QSRMAC Check new bit in monitor LOGIN and LOGOUT message to determine
QSRT10 if the job is a Galaxy batch job. The bit is LG.BSS (batch
stream set). The regular batch bit doesn't do the job since
both BATCON and MIC cause this bit to be set.
1006 QSRSCH Move call to I$SYSV above G$SCHD check
QSRT20 Fix I$SYSV to use new -1 value returned from KSYS check
QSRT10 Fix I$SYSV to request a scheduling pass if KSYS state changes
QUASAR Fix G$MSND to set MF.NOM if a null ack is sent
1007 QSRMDA Fix /SINGLE structure mount problem.
1010 QSRMAC XP number of LPT banners, trailers and headers from GALCNF.
QUASAR Check for zero length messages sent to QUASAR
QSRSCH Do not schedule 'stopped' objects. Also minor performance win
in job scheduling by moving 'stopped' check to top of scan
QSRADM Make A$OBST set the status correctly for 'stopped' objects
QSRT10 Set spooled file protection code on /DISPOSE:RENAME files.
1011 QSRMDA Fix 'No operator on duty' message so that it works
Fix lost allocations as a result of batch requeues
Do not put pseudo requests into 'mount wait' if just allocating
Fix DISMOUNT/DEALLOCATE /NOTIFY
Fix 'MOUNT/WAIT' so that it does something reasonable
QSRQUE Delete code in Q$CREA which sets up wakeup timer for /AFTER
and put it into QSRSCH
On batch requeues, call new routine S$AFTR to setup wakeup time
QSRSCH Add routine S$AFTR to setup /AFTER wakeup timer
1012 QSRDSP Fix 'SHO STA STR/USER' for batch requests
QSRT10 Move the PPN from the QE to G$SID before calling D$CMDR
1013 QSRSCH Make it so that froms change will happen with the NEXTJB
message if there is a schedulable job in the queue
QSRT20 Fix I$AGE ala PCO 20-QUASAR-008
QUASAR Do not allow QUASAR to sleep forever (1 minute max)
QSRADM Fix START code - cancel pending shutdown (ala PCO 20-QUASAR-010)
1014 QSRMAC Remove some TOPS10 conditionals from the EQ
QSRMDA Only call CKTVOL in BLDVSL if a tape mount request
Fix Tape allocation problems by modifying a users allocation
on the fly.
1015 QSRMDA Fix bug in XCHANGE message processing that caused
ill mem refs.
Make SNDREC a global routine
QSRT10 Make the ATTACH code do an automatic RECOGNIZE
1016 QSRT10 DO not stopcode if there are no tape drives on the system
QSRMDA Fix NBM stopcode - Check for 'ignored' entries in D$BMTX & CMTX
QSRDSP Fix SHOW STATUS TAPES/FREE so that only free drives are listed
Fix SHOW STATUS TAPE so that drives owned by batch requests
which are not running display the batch jobs request ID as the
owner job number, not 1319 which is garbage...
1017 QSRMDA Fix HUNG dismounts for invalid structures
Have D$GUCB return 'No such device' instead of stopcoding
Do not allow IDENTIFY on cancelled mount requests
QSRT10 Fix I$CHAC bug (typo) @CHAC.2+1 change JUMPE to JUMPE S2,
Fix attach/detach so we only 'recognize' on attach's
QSRDSP Fix retrieval queue listing so that columns line up
1020 QUASAR Modify the GALAXY logging routine so that the log file is
closed once a week. The log is renamed to Gddmmm.LOG
QSRDSP Do not modify the object status if it is not started
Add another digit the REQ# column in mount displays
QSRNET Add routine N$PORT to check for multiple starts of
different nodes on the same port/line
QSRADM Add hooks to call N$PORT.
QSRMDA Allow DEFTAP to set tape defaults on TOPS20
1021 QSRDSP Make /DESTINATION and /PROCESSING work correctly for all
flavors of queue listings.
QSRT10 Add some 'foreign' devices to DEVTBL and DEVNTB.
QSRMDA Add support for SET TAP INIT /ABORT
QSRSCH In pass 2 of the scheduler, allow remote jobs to run when the
requested node is off-line if we're spooling to a magtape.
1022 QUASAR Fix a bug in GALAXY.LOG close code so we check times correctly
QSRT20 Fix 2 bugs in archive notification - Use timer queue to
schedule the notification (now once an hour), do notifications
during QUASAR initialization, and check for page overflow
and send multiple messages if they all won't fit in 1 page.
QSRQUE Fix user notification block so that it corresponds to the
object types
QSRNET Fix a bug in N$NONL for prototype nodes which caused the
real node name/number to get inserted into NETCOL when trying
to convert the node data base entry back to a prototype.
QSRMDA Remove IVR stopcode and instead send 'TMV' message to PULSAR
1023 QSRMAC Add event counters for IBMCOM
Create a new message (.QOIBM) for IBM statistics
QUASAR Add routine IBMSTS to process the .QOIBM message
1024 QSRMAC Add feature test switch FTIBMS which is to be used to decide
if IBM statistics are to be done.
QSRDSP Fix bug at SHOW.7 so that SPRINT queue is displayed correctly
QSRT20 Fix file archive notification bug
1025 QUASAR QUASAR too big. Remove duplicate code in QSRT10 and QSRT20
QSRADM and put it into QSRADM. The routines affected are:
QSRMDA I$AGE -> A$AGE
QSRQUE I$AFT -> A$AFT
QSRSCH I$WHEEL -> A$WHEEL
QSRT10
QSRT20
1026 QUASAR Don't sleep for more than 1 minute.
QSRMAC Add RQ.TIM to allow pgms to specify reschedule time in requeues
QSRQUE Check for RQ.TIM in requeue processing
1027 QSRNET Make N$NONL start an operators console output device
(LPTSPL) when a termination prototype comes online
Fix GET-NETWORK-TOPOLOGY for -20 so that with Phase III DECnet
we allocate enough space for the entire network topology.
1030 QUASAR Plug remaining holes in the spooling system that relates to
QSRQUE spooled CDR files on TOPS-20. QUASAR now will delete those
QSRT10 files for batch jobs that have been canceled before they
QSRT20 ran.
1031 QSRDSP Check alternate port name on SHOW STATUS DISK commands.
1032 QSRMAC Reorganize the prototype node support for IBMCOM.
Define NETLOC as the opposite of NETCOL in the node data
base. Also add bit NETPRO to indicate actual online.
Also add prototype mode.
QSRADM Make certain we only start up IBM objects as part of START NODE
Make certain we only shut IBM objects as part of SHUT NODE.
Change DEFINE processing to check for signon and to checkout
signon file.
QSRDSP Display new prototype information, inc. SHO NET and PARA NET.
QSRNET Support the new scheme of things in the node data base.
Add the routine to check out the state of nodes and the routine
to parse the signon file for an IBM node.
1033 QSRMAC Turn off deadlock avoidance.
QUASAR Don't schedule batch jobs if we now they can't LOGIN.
QSRMDA Define G$LOGN to indicate if LOGINs are allowed or not.
QSRSCH
QSRT10
QSRT20
1034 QSRADM Ack if operator shuts down node that does not exist.
QSRDSP Modify displays for SHOW STATUS NET and SHO PARA NET to
leave room for large node names. Add pointers from the
prototype to the actual when same is online. Remove
data-termin-ready and silo-warn. from parameter display.
Add timeout cat. to parameter display.
QSRNET In signon file, blank node name at end is not an error.
Give warning if online processing and node is already online.
Shutdown actual if not defined as IBM node.
1035 QSRMAC Define IPCC message type .IPCMT (magtape unit accessible).
QUASAR Add an entry for .IPCMT in the message dispatch table.
QSRT10 Add code to support .IPCMT messages.
QSRMDA Plug the last remaining holes in the dual-port logic.
1036 QSRDSP Fix UDT to hours minutes conversion to make it more accurate.
This in routine D$SSTR. Expand request-id field to 6 digits
in all displays. Clean up pending KSYS time display.
QSRT10 On detach disk message processing, don't set seondary port to
be the port detached. This screws up displays and leaves the
UCB data base incorrect. On attach messages, always use the
attached port name, not the primary port name when doing the
RECOGNIZE.
1037 QSRADM Change the way IBM node parameters are set by default in the
define node command @DEFI.2.
1040 QSRMAC Add
QSRADM support for
QSRSCH the NEXT
QUASAR command
1041 QSRADM Call the right routines in QSRNET to add nodes.
QSRDSP Widen LIMIT field in displays a bit.
QSRNET Concatonate all node on-line/off-line messages into one.
QSRT10 If a create contains a blank user name, store the [PPN] in
in the user name field.
1042 QSRMAC Add symbol for msg from [SYSTEM]GOPHER on TOPS20 and reserve
space in the release message for customers.
QSRADM Use new ORNMAC symbol DF.TPP instead of DF.TYP
QSRT10 Clear FILDAE bit (400) when access checking queue protections.
QSRMDA Fix bugs in MOUNT STR/ACTIVE and MOUNT STR/PASSIVE. Clear
DVCMDA on DECtape deassign (DECtape accounting broke it).
QSRQUE Fix a reversed table entry in the object defns
1043 QSRADM In IBMCOM when prototype name is the same as actual name...
QSRNET When shutting down, don't shut down twice.
When online processing, set both pointers the same.
When offline processing, don't clear the node type.
In either, use flag NOTIFY to notify ORION of change.
In routing, if eq object matches a route entry which does not
match the device, fail in N$CSTN.
QSRQUE Allow /NOTIFY to work with SPRINT jobs. Also notify when batch
jobs submitted by SPRINT are finished.
QSRSCH Don't schedule batch jobs when queues are disabled.
1044 QSRDSP Fix bugs relating to jobs being scheduled when a required
QSRMDA structure wasn't on line and MDA was turned on. Also correct
QSRSCH an inaccurate display when a job was waiting for a structure
to come on line.
QSRQUE Fix a bug relating to spooled file limits QAR 10-06742
1045 QSRNET Fix a bug where processing node signon file lost if node name
contained six characters.
QSRMDA Don't send mount request pending message to OPR if SCHED 400.
QSRT10 Speed up operator on duty checking by removing I$OPRC and
QSRT20 setting flag G$OPRA (operator available flag) in I$SYSV.
1046 QSRQUE Fix a bug in FNDREQ so that we don't process the same queue
entries multiple times
Add a check to the requeue code to check to see if the request
was cancelled and if so delete the queue entry
1047 QUASAR Change the format of the "count" records by adding an item
QSRMAC at the beginning of the record which is ICNT, the count of
the items in the record.
QSRT10 Set the queue structure name in the monitor after opening the
master queue file.
QSRSCH Answer to QAR 10-06543. Fixes junk in response block for
bad QUEUE. block. In S$INPS, check G$MDA only on the -10.
1050 QSRMAC Invent new macros to handle limit paramters;
MAXLIM(x) returns max value of limit parameter x
WIDLIM(x) returns width in bits of limit parameter x
Define word .DSPPN in the .DSSTA block of the .QOTST message
to allow PULSAR to pass the owner PPN of a volume back to
QUASAR.
QSRSCH Use MAXLIM and check that the output limit doesnt exceed
2**18. If it does, set it to the maximum.
QSRMDA Fix yet another dual-ported disk problem when secondary ports
are ATTACHed. Plug more holes in the owner PPN stuff for STRs
mounted due to AVR with no user MOUNT command pending.
Add routine D$ICAT for debugging.
QSRT10 Record the owner PPN for STRs mounted at system startup time.
1051 QSRDSP Change width of the node field display to include longest
possible node name and widen the header for the SHOW STATUS
NETWORK display.
QSRNET Have IBM online/offline processing call GENNOD to update the
node name ASCII strings. Fix GENNOD to print out the either
node name or number in parens.
1052 QSRMAC Define new bits in the ASL messages for quota checking, etc.
Add new bits in the VSL and VOL blocks for handling str mounts.
QSRMDA Fix up ACK code and make it work consistantly for all devices.
QSRT10 Perform bit translations for recomp bits from the QUEUE. UUO.
QSRT20 Add dummy routine I$CGEN.
1053 QSRMAC Defined protection field for the MOUNT tape /PROT command.
QSRMDA Tell OPR how to initialize tapes with /LABEL: and
/NEW or /SCRATCH.
QSRDSP Put above into SHOW Q MOUNT displays.
QAR: 10-06434 = GCO: 1245
1054 QSRNET In GENNOD, use ^N for the node number on the 20 and ^O for
node number field on the 10.
GCO: 4.2.1246
1055 QSRMDA Full word compares of half word addresses plus varying flags
don't make it. Ignore flags. GCO 1252.
1056 QSRMAC When a str needed for batch requests gets dismounted via tha
QSRDSP OPR DISMOUNT or LOCK commands, make a mount queue entry and
QSRMDA prevent the batch job from starting up. Clear up confusion
in the SHOW STATUS STRUCTURE display regarding mount counts
and the number of users (including batch jobs) on DISMOUNT
and LOCK command ACKs. GCO 1258
1057 QSRNET Change GENNOD to generate the ascii string for the node name
based on NETCOL not on NETNBR. GCO 4.2.1267
1060 QSRMDA Add support for hardware-write-protected disks and the operator
MOUNT command switch /WRITE-LOCKED. GCO 1271
1061 QRSMAC Make this entry into the revision history.
QSRMDA Fix a complaint that message on SET TAPE ... AVAILABLE
QSRT10 is too cryptic. GCO 1279
1062 QSRMAC Make sure that reelid's are checked even in unlabelled
QSRMDA tape. New error message. GCO 1299
1063 QSRDSP Display needed structure on all queue requests that can't run.
GCO 1300
1064 QSRDSP Fix wrap around and widen job/req-id column in SHOW STATUS TAPE
display. GCO 1305
1065 QSRQUE Don't let a user specify an old after parameter. GCO 1306
1066 QSRMAC Allow the operator to reassign away an unlabeled tape to a user
QSRMDA when the requested density does not match what is mounted on a
QSRT10 drive (legal for write-enabled tapes only). GCO 1317
1067 QSRMDA Always reschedule mount queue check events. GCO 1332
1070 QSRADM Rework node support so IBMCOM will function on TOPS10.
QSRNET GCO 4.2.1336
1071 QSRMDA Fix an IDENTIFY problem involving /SCRATCH with no /VOLID:
GCO 4.2.1337
1072 QSRMDA Fix a small problem with not getting rid of mount requests
with labelled non-scratch volumes on volume switches.
GCO 4.2.1340
1073 QSRDSP Make it so SHOW QUEUE /NODE:FOO:: works by using the node
switch as the destination node. GCO 4.2.1343
1074 QSRT10 Spell implemented correctly in a displayed message.
GCO 4.2.1347
1075 QSRMDA Always make sure the operator gets informed of mount requests
that go into the queue, even if they cannot presently be
satisfied. GCO 1350
1076 QSRNET Shutdown the printer if necessary when termination node goes
QSRT20 offline. If CREATE message is rejected because of insufficient
privs., say so. GCO 4.2.1352
1077 QSRADM Don't allow batch stream numbers greater than INPMAX. GCO 1357
1100 QSRT10 Make access checking work again. GCO 1364
1101 QSRMDA Don't allow MOUNT STRUCTURE DSKB: (as) DTA0: to work.
QSRT10 Add routine to validate a device name. GCO 1367
1102 QSRMDA Set density on mounts and clean up ACKs to OPR for pseudo
processes. GCO 1368
1103 QSRDSP Get these modules to handle false returns from GLXLNK
QSRIPC correctly. GCO 4.2.1369
QSRNET
QSRQUE
QSRSCH
QSRT20
1104 QSRDSP Make node name the processing node name so SHOW QUEUE BAT
/NODE:FOO:: works. GCO 4.2.1374
1105 QSRSCH Fix scheduling of batch jobs which exceed the time limit
for the stream. GCO 4.2.1375
1106 QSRQUE Fix the problem with passing privs for printing batch logs
for jobs submitted "/CONNECTED-DIRECTORY:" GCO 4.2.1377
1107 QSRT20 WITHDRAWN
1110 QSRSCH Fix conditional in S$INPS so batch jobs will always be scheduled
when they're supposed to be. GCO 1384
1111 QSRDSP Fix up formatting in structure displays. Make disk status
display of secondary units work again. GCO 1391
1112 QSRSCH Allow NEXT requests after KSYS times out. GCO 1399
1113 QSRNET Allow node number 0 on non-network sites. GCO 1403
1114 QSRSCH Fix bug that would keep QSRDSP from displaying the
mount request from a batch job that had a locked
structure and was already running. GCO 1408
1115 QSRDSP Display bug caused by timesharing and batch jobs attempting
to mount the same volume. GCO 1409
1116 QSRDSP Re-work edit 1104. GCO 1411
1117 QSRT20 Remove edit 1107 GCO 1414
1120 QSRDSP Final edit to allow queue listings to work correctly given
any combination of /DEST, /PROC, /UNIT, etc. on QUEUE class
commands or use of the /NODE, /UNIT, etc. switches to the
OPR's SHOW Q command. GCO 1416
1121 QSRT20 Place startup of FTS object under FTFTS conditionals
GCO 4.2.1423
1122 QSRDSP Don't allow mounts to batch jobs on HOLD. GCO 1431
QSRMDA
QSRQUE
1123 QSRNET Clear up remote printer problems on the -10 by checking both
node name and number when processing node off-line interrupts.
GCO 1436
1124 QSRMDA Allow scratch tapes to get reassigned again. GCO 1438
1125 QSRMAC Turn off permanent structures, 'til the bugs are worked out.
QUASAR GCO 1439
QSRT10
1126 QSRT10 Clean up bad DSKCHR argument block when setting the queue
structure. GCO 1440
1127 QUASAR Put the deadlock avoidance flag in G$DEAD so I'm not tempted
QSRMDA to patch literals. GCO 1442
1130 QSRMDA Fix problem with reassigning labelled tapes from one drive
type to another. GCO 1461
1131 QSRMAC Attempt to trap all conditions that could cause NBM, IVU,
QSRMDA and NUV stopcodes as a result of the operator performing
single and multi-pack structure mounts with and without
aliasing. Resolve internal catalog cache (STRLST) conflicts
if possible, and prohibit mounts that would cause maxtix
skews for allocated (but not mounted) structures. Let the
operator know about conflicts if they arise to avoid SPRs
and unnecessary confusion for all involved. GCO 1464
1132 QSRSCH Reapply QUASAR V4.0 edit # 415. QUASAR V4.0
edit # 376 does not completely address the problem
Remove edit # 376 and convert QUASAR's batch stream
time limit parameters from minutes to seconds before
the limits are compared. SPR 20-18114 15-APR-83/CTK
1133 QSRMDA Fix tape density problems. The ".SET DENSITY"
QSRT10 command values are not seen for the second tape
of multiply reels. The wrong density is used.
2-Jun-83/CTK
1134 QSRMDA Fix bypass-label-processing option bug for magtapes
and erratic "Initialize new tape" message problem.
SPR # 10-33400,10-33903,10-33931 7-JUN-83/CTK
1135 QSRMDA QUASAR does not check for the user's /ASSIST:NO switch
and a MOUNT request asking for operator action will
be processed.
SPR # 10-33886,10-33887,10-33962 7-JUL-83/CTK
1136 QSRMDA Originally published as TOPS-10 QUASAR EDIT # 1210.
Make sure all the tapes of a multi-volume save set
match the density of the first. TU70 and TU72 problem only.
SPR # 10-33230 11-NOV-82/NT
1137 QSRSCH Files queued /DISP:RENAME may be modified /DISP:PRESERVE
QSRQUE and QUASAR responds with a "[ 1 job modified]" message
indicating success. The files are not renamed and
they are deleted from [3,3] after processing.
SPR # 10-33935 14-JUL-83/CTK
1140 QSRMDA Prestaging does not work for unlabeled tapes.
The OPR command IDENTIFY MTAx: VOLUME FOO is given
and then the user command MOUNT TAPE(FOO):MT:/LABEL:NONE
is not automatically satisfied with the tape on MTAx:
SPR # 10-33710 23-JUL-83/CTK
1141 QSRMDA Clear the MDA bit in the DEASSIGN code if the device is not
a magtape because a device such as a line printer may be
mounted via the mount command and the device becomes
permanently stuck to QUASAR with the MDA bit on.
SPR # 10-33707 26-JUL-83/CTK
1142 QSRNET QUASAR does not notice when the first node in its
list goes off-line because when the list is sorted
we did not remove the code to skip the central site.
SPR # 10-33258 27-JUL-83/CTK
1143 QSRMDA A MOUNT request with /NEW or /SCRATCH requiring multiple
reels with only one drive available is confusing to the
operator. QUASAR will incorrectly request a scratch tape
when volume switching on a rewind, it knows the correct
VOLUME-ID and refuses to reassign the tape to the user if
the operator tries to use a new VOLUME-ID.
SPR # 10-33904 2-AUG-83/CTK
1144 QSRMDA When a disk structure is prelocked those users who
have the structure mounted will be given a warning
message. But no warning message is given to those
users who mount the structure after it has been prelocked.
SPR # 10-33399 2-AUG-83/CTK
1145 QSRSCH Use QSRMAC symbol TIMONA where appropriate in QSRSCH.
SPR # 10-34103 15-AUG-83/CTK
1146 QSRQUE QUEUE UUO fails with error code: 200000 + QUFER%
because the QSRQUE CRQUNT routine is failing a
validity check. This is occurred because the ATRCDS
table is incorrect because the X MACRO invoked by
the ATTRIB MACRO is wrong.
QAR # 10-125376 15-AUG-83/DPM
1147 QSRDSP Clean up IBMCOM display problem with the
OPR>SHOW PARAMETERS NET command.
NO SPR 21-AUG-83/CTK
1150 QSRMDA Remove edit 1140 for security reasons involving
prestaging of unlabeled tapes.
SPR # 10-33710 7-SEP-83/CTK
1151 QSRT10 Fix problem with hung tape drives. The problem is seen
when an OPR SET TAPE MTAn: AVAILABE command is done and
the tape drive has a degaussed tape mounted. The problem
is caused by QUASAR turning on AVR and PULSAR attempting
to read a tape label.
SPR # 10-34112 15-SEP-83/CTK
1152 QSRMAC Add QUASAR support to allow OPR to DISABLE
QSRADM individual queues. Requires ORION edit 341, ORNMAC edit 36,
QSRMDA and OPRCMD edit 146, MOUNT edit 53.
QSRSCH
QSRQUE 18-SEP-83/CTK
1153 QSRMDA Fix LPTSPL/LOCK bug.
QSRT10 SPR 10-33485 18-OCT-83/CTK
1154 QSRMAC Don't let QSRMDA delete VOL block during volume switch
QSRMDA that has been aborted if user was switching to a previous
volume. Add new field, VS.PRE, in .VSCVL word in VSL block.
VS.PRE is offset to previous VOL block. Routines D$VSR and
DELVSW. SPR 10-33178 18-Oct-83 /LWS
Superseded by 1162. 29-Nov-83
1155 QSRT10 Fix race in edit 1153.
SPR 10-33485 8-NOV-83/CTK
1156 QSRDSP Change the way jobs in the output queues are displayed
taken the original objects they were queued to are
routed to another device.
SPR 10-34115 8-Nov-83 /LWS
1157 QSRMDA Fix NBM and RMBstopcodes that occur because the
operator CANCELs a tape MOUNT request in volume
switch state and the user does a DISMOUNT or KJOB.
IMPORTANT: REQUIRES QUASAR EDIT 1154 !!!
SPR 10-34308 14-NOV-83/CTK
Superseded by 1162. 29-Nov-83
1160 QSRT10 Fix DISMOUNT/DEALLOCATE bug in REMSTR, the problem
will be seen when the I$SLCM IPCF packet contains
in the first word beyond the valid length a SIXBIT
structure that is in QUASAR's current search list
for this user. This bug will result in structure
allocation data base errors. This problem existed before
QUASAR edits 1153 and 1155 but can not be exercised
until they are installed.
SPR # 10-33485 21-NOV-83/CTK
1161 QSRMAC Define new bit, EQ.CHG, in .EQSEQ word of EQ block that
QSRQUE indicates QUASAR set user's requested priority down to
QSRSCH non-wheel user maximum, MXUPRI. Add code to tell user
what happened.
SPR 10-34293 19-Nov-83 /LWS
1162 QSRMAC More problems when volume switch is cancelled.
QSRMDA Make sure 'A' and 'C' matrices are the updated
for the volume user is made to keep. At beginning
of volume switch counts are decremented. If volume
switch is cancelled, make sure counts are incremented.
Also add support for PULSAR cancelling vol switches.
New value, %RLABO, in vol switch message.
This edit REQUIRES QUASAR edit 1154.
This edit SUPERSEDES QUASAR edit 1157.
29-Nov-83 /LWS
1163 QSRMAC Define new bit in object block status word, OBSFCH, which means
QSRSCH forms change is in progress. Testing this bit stops the race
QSRADM where QUASAR decides to shutdown remote printer before it is
completely setup with correct forms. Testing this bit also
fixes a problem with ALIGN PRI x /STOP.
SPR 10-34350, SPR 10-34180 5-Dec-83 /LWS
1164 QSRMAC Add support for /NEW-VOLUME user requested reinitializaion.
QSRMDA QUASAR tells PULSAR how to reinitialize (density,protection)
QSRDSP the volumes. Cannot change label types. Owner fields must
match on labeled tapes.
8-Dec-83 /LWS
1165 QSRMAC Fix problems with DEC/Mag tape statistics
QSRT10 in usage accounting file.
SPR 10-34170 /DPM
1166 QSRADM Fix typo in 1163. At A$OBST+19L, change S1 to S2.
15-Dec-83 /LWS
1167 QSRADM Allow operator to schedule a job for an object using the
NEXT command before the object is STARTed.
SPR 10-34374 19-Dec-83 /LWS
1170 QSRT10 Fix ACKing problems with QUEUE. UUO. Redo some of the
QSRMDA logic so it's somewhat clearer what should be done when
ACKing the user.
SPR 10-34383 29-Dec-83 /LWS
1171 QSRQUE Allow SUBMIT FOO/DISPOSE:XXXX via QUEUE. UUO to work.
SPR 10-34398 27-Jan-84 /LWS
1172 QSRT10 Check for BATCON batch job in I$SLCM. Check OB.BSS
instead of JB.LBT. MIC sets JB.LBT for cojobs.
21-Feb-84 /LWS
1173 QSRMAC Fix problems with ACK data in MDR getting overwritten
QSRMDA by subsequent mount requests before pending requests
QSRT10 (and ACKs) are completed. Add 3 words to VSL that are
QSRDSP copies of corresponding words in MDR. The words are:
.MRFLG <-> .VSRFL, .MRACK <-> .VSACK, .MRPID <-> .VSPID
The fields in .MRFLG are the same in .VSRFL.
SPR 10-34182 14-Feb-84 /LWS
1174 QSRMAC NBM stopcodes. QUASAR was updating catalog for structure
QSRMDA that had a different resource number but the same VSN
as original catalog entry when there were allocations
pending for original entry. This caused 'C' matrix to
be incremented for newly (and wrongly) created entry
(structure). 'B' matrix was never incremented because
the initial allocation never happened. Don't delete an
existing entry when there are pending allocations for
the corresponding resource.
Clean up code in D$CCAT. Change SKIPE to SKIPN !!!
Get number of allocations in RH of P1 for WTO.
27-Feb-84 /LWS
1175 QUASAR Remove QBI stopcode at SNDREC. Change to a WTO. Problem
QSRMDA is most likely in ORION or GLXLIB. One way QBI occurred
is fixed in GLXLIB edit 1163. ORION edit 604 adds PBI
stopcode to catch P$DEV screwing up. Also, make stack
bigger for deadlock code support.
2-Mar-84 /LWS
1176 QSRT10 Fix problem where request type was not displayed
in SHOW STATUS STR /USER. REQUIRES edit 1173.
8-Mar-84 GCO 10004 /LWS
1177 QSRDSP Fix ILM problem when OPR does a SHO STA command
and a large number of batch and print jobs are
in process.
SPR 10-34352 9-MAR-84/CTK
1200 QSRDSP Spurious TAB in LPT queue listing
when there are a large number of entries.
The last line before the extra TAB will end
with a non-standard forms type.
SPR 10-34351 10-MAR-84/CTK
1201 QSRQUE BATCH jobs fail to LOGIN because of a QUEUE
QSRSCH /DESTINATION:SIXBIT switch. The SIXBIT node
name is not allowed by LOGIN's /LOCATE switch.
Convert the SIXBIT node name to number at
the earliest possible occasion and don't
schedule the job until the node name has been converted.
SPR 10-34584,10-34586 30-MAR-84/CTK
1202 QSRADM Fix problem where a stopped printer seemed to continue
by itself.
SPR 10-34596 GCO 10017 2-Apr-84 /LWS
1203 QSRSCH CORMAX check is wrong, were comparing words
to pages. So fix it.
SPR 10-34598/CTK
1204 QSRMDA Have QUASAR issue more descriptive ACKs to OPR
commands concerning structures that are in the
process of being dismounted. (PULSAR is waiting for
WTOR answer from operator). Prevents PULSAR problems.
9-Apr-84 GCO 10023 /LWS
1205 QSRIPC Fix bug in IPCF message RESEND code. We were killing
PSBs becasue we were getting the PID of the resend
failure from the wrong place.
SPR 10-34664 GCO 10029 18-Apr-84 /LWS
1206 QSRNET Spooler jobs will not be scheduled or scheduling
QSRSCH will stop if we are on non-network monitor.
QSRADM Problems related to QUASAR edit 1142
QSRDSP only reflect part of the problem.
SPR 10-34655 GCO 10030 20-APR-84/CTK
1207 QSRSCH Fix bug where NEXT request REQUEST-ID for an object
was not cleared even after the request was scheduled.
SPR 10-34688 GCO 10038 10-May-84 /LWS
1210 QSRADM After edit 1206 ANF network line printers will not start.
SPR 10-34655 GCO 10041 16-MAY-84/CTK
1211 QSRMDA After edit 1151 we did not honor the AVR bit
and still send the recognize message to PULSAR.
SPR 10-34112 GCO 10040 16-MAY-84/CTK
1212 QSRQUE QUASAR using inordinate amount of runtime
and not deleting spooled files because the
structure is not on-line or no longer exists.
SPR 10-34636 GCO 10043 29-MAY-84/CTK
1213 QSRSCH For small files and numerious copies the LPT's
request page limit may be less than the number
of files in the request. This leads to
"Page Limit Exceeded" and the job does not
complete.
SPR 10-34720 GCO 10044 6-MAY-84/CTK
1214 QSRSCH Add code to support modifing the /ASSIST switch.
If this edit is installed QMANGR edit 2255
is required or QUASAR may incorrectly modify
a batch request's /ASSIST value.
SPR 10-34294 GCO 10046 14-JUN-84/CTK
1215 QSRMAC Change CVL.KT definition from 7000 to 77000.
This size and position matches the Kont type
field of STRLST.
SPR 10-34762 GCO 10048 5-Jul-84 /LWS
1216 QSRQUE The short create CRQNOD routine moves the
output destination field to the processing
node word, so don't do it.
SPR 10-34766 GCO 10054 11-JUL-84/CTK
1217 QSRMAC Add support for new 'structure mounted' message
QSRMDA from monitor. This message is a result from
QSRT10 a priv'd user mounting a structure without
QUASAR PULSAR getting involved.
GCO 10055 16-Jul-84 /LWS
1220 QSRMAC Add support for CI disks (entries in GENRES macro).
QSRMDA Shuffle bits in .UCBST to make UC.KTP 5 bits wide.
QSRDSP 3 bits isn't enough to handle all DEC controller types
as well as allowing room for customer specific disk
controller type codes.
NO SPR 6-MAR-84/JAD
1221 QSRMDA Prevent undeserved deadlock errors when all disk resources
are in use and drives are attached and detached.
SPR 10-33486, 10-34211
GCO 10061 31-Jul-84 /DPM
1222 QSRQUE More of edit 1212, there remained problems
with requests that were not incore and a missing
index AC.
SPR 10-34636A GCO 10043 1-Aug-84/CTK
1223 QUASAR Long messages truncated by QUASAR in the G$CCHR
routine will trash all future QUASAR user text
messages.
SPR 10-34595A GCO 10063 2-AUG-84/CTK
1224 QSRMDA Avoid races when reassign tapes to users where the
QSRT10 label type requested differs from what's on the tape.
13-Aug-84 GCO 10074 /DPM
1225 QSRMDA Mount requests for 'foreign' devices aren't displayed to OPR
if G$DEAD is zero.
30-Oct-84 GCO 10113 /LWS
1226 QSRMAC Mounts requests coming in via QUEUE.'s aren't checked very
QSRT10 well for validity. Add DEVCHK routine which essentially does
QUASAR the same kind of checking as the MOUNT program. Also, fix
problem where QUASAR uses GALGEN specified queue structure
instead of actual structure when setting up spooled log
file requests. GALGEN default is SSL!
SPR 10-34898 GCO 10123 21-Nov-84 /LWS
1227 QSRMDA Fix problems with aliased structures getting allocated
to requestors of the structure before it was aliased.
SPR 10-34768 GCO 10124 28-Nov-84 /LWS
1230 QSRMAC No code to support short create setting the
QSRQUE operator intervention bit or a processing
node for IBMCOM.
SPR 10-34766A MCO 11686 GCO 10130 16-DEC-84/CTK
1231 QSRDSP SHOW PARAMETERS BATCH /NODE:FOO where FOO is an IBM
emulation node gives "unknown device" even when there
really is a IBM node online.
SPR 10-34990 GCO 10134 7-Jan-84 /LWS
1233 QSRT10 Fix up handling of disk detach messages.
QSRMAC 15-May-85 GCO 10208 SPR 10-35195 /JAD
1234 QSRMAC Add code to handle volume switch tape statistics.
QSRT10 Fixes problems that cause QUASAR to send ACTDAE
QSRMDA junk for tape stats.
SPR 10-35081 GCO 10209 17-May-85 /LWS
1235 QSRQUE Allow .QBBGN block for input queue as well as output
queue, and disallow SIXBIT argument for output queue.
SPR 10-35221 GCO 10237 25-Jun-85 /JAD
1236 QSRIPC Fix bugs in edit 1205.
SPR 10-34664A GCO 10262 23-Jul-85 /JAD
1237 QSRT10 Handle account string blocks in gopher messages which
have a zero-length account string.
SPR 10-34151A GCO 10277 26-Aug-85 /JAD
1240 QSRMDA On reel switches, do AVR only if drive is enabled.
Remove check for drive being owned.
SPR 10-35187 GCO 10312 28-Sep-85 /DPM
** Version 5 Development **
1300 ALL Reference QSRMAC's and QUASAR's versions in all
modules to help catch version skews.
1301 QSRMAC Have QUASAR connect to PSI for KSYS and handle
QSRADM countdown and user warnings of impending KSYS.
QSRT10 When timesharing is over, send .QOKSY message
QSRDSP to BATCON to log jobs out.
QUASAR
1302 QSRMAC Turn on deadlock avoidance code and see what happens.
QSRMDA Fix BLI (Process owns more resources than allocated)
stopcode. VS.ABO is lit for no real reason. In fact,
the bit isn't even needed. VS.ABO was lit in DELVSW which
never worked to begin with when deadlock was last used.
QSRDSP Fix bug in mount queue display. If status is not known,
make it 'Waiting'.
1303 QSRALC Recompile QSRALC.B36. First UNDECLARE some symbols
that are in GLXMAC and QSRMAC, both.
ILM was occurring in UNMAP because catalogue entry
changed and QSRALC wasn't recompiled.
1304 QSRMDA Allow operator to set/clear AVR for a specific
QSRT10 tape drive even if drive is 'unavailable'. Also,
if AVR is 'on' for an unavailable drive, keep it
'on' when setting tape 'available'.
1305 QUASAR Add
QSRADM support
QSRDSP for
QSRMAC the
QSRQUE wonderful
QSRSCH Event
QSRT10 Queue
1306 QSRT10 Fix bug where QUASAR typed KSYS warning messages once
a minute until the time till KSYS matched up with
the KSYTAB entry. This only happens when QUASAR is
started and there's already a pending KSYS.
30-Jul-84 GCO 10060 /LWS
1307 QSRT10 "Timesharing is over!" not SEND ALLed. KSYTTY changes
incomplete.
3-Aug-84 GCO 10065 /LWS
1310 QSRMAC Use definition of G.DEAD, defined via GALGEN, to turn
on/off deadlock avoidance.
6-Aug-84 GCO 10067 /LWS
1311 QUASAR Add interface to the catalog daemon, [SYSTEM]CATALOG.
QSRMDA This edit adds module QSRCAT which will eventually
QSRMDA contain all the catalog-related code. For the time
being, only a couple of calls in QSRMDA will change
to use QSRCAT. As of this edit, QUASAR no longer
requests catalog information from PULSAR. Message
types .QORCT and .QOCAT are obsolete.
7-Aug-84 GCO 10069 /DPM
1312 QUASAR Add code to support [SYSTEM]INFO.
QSRMAC This edit adds module QSRINF which is the [SYSTEM]INFO
QSRMEM process. In addition, to support INFO, it adds variable
QSRIPC length queue types, and changes the resend queue from
QSRINF a library linked list to a variable-length queue.
14-Aug-84 GCO 10079 /RCB
1313 QSRMAC Add support for Usage accounting events and new QUEUE.
QSRQUE UUO arg block, .QBESW. Add new event independent switches
QSRSCH /FAILSOFT and /NOFAILSOFT.
QSRT10 20-Aug-84 GCO 10077 /LWS
1314 QSRT10 Make QUASAR more defensive when someone does a SETUUO UUO
to change KSYS. Create or release KSYS events when needed.
21-Aug-84 GCO 10080 /LWS
1315 QUASAR Add fallback code. Also rip out the GALAXY.LOG code,
QSRMAC which was only for 4.1 field test. Fix a bug in the
QSRINF CNTANSWER message, so that it's useful for people who
QSRADM still want an idea of where QUASAR spends its time.
QSRQUE 28-Aug-84 GCO 10084 /RCB
1316 QSRMAC Add new symbol MR.JOB to be used like the old MD.PJB.
QSRMDA However, MR.JOB is now 19 bits wide (1777777B35) and
QSRT10 BA%JOB is now 1B17. This fixes the 'no batch allocations'
QSRQUE bug introduced when 1312 changed MD.PJB to 777B35.
QUASAR
QSRDSP
QSRALC
QSRCAT 30-Aug-84 GCO 10086 /LWS
1317 QSRMAC Add default descriptive text for event queue entries.
QSRQUE Put the event queue at the top of the QUEUES macro
QSRSCH so it's the first one scanned.
31-Aug-84 GCO 10088 /LWS
1320 QSRMAC Add support for operator log file closure event.
QSRSCH Also, allow for fudge factor for UDTs in EVTCMP.
QSRT10 Fix problem with 'NOW' events not being scheduled.
QSRQUE 5-Sep-84 GCO 10092 /LWS
1321 QUASAR Change SHOW STATUS display so that "Timesharing ends"
QSRDSP is only displayed if KSYS is within an hour. Redo part
QSRT10 of edit 1317 - don't put default text in QE, only use it
QSRQUE when displaying event queue entries. Reword some default
QSRMAC descriptive text, too. Add support for Date/Time change
QSRSCH PSI interrupts. When interrupt occurs, modify .MRLOG,
.VSCRE, .VSSCH, .EVTIM, .VLMTM, and .VLLTM in their
respective data structures.
24-Sep-84 GCO 10099 /LWS
1322 QSRQUE Fix problems with 'stale' events being left in the
QSRT10 queue with QE.RDE lit. Do change .EQAFT at CREA.1 if
event and internal request. Make sure Q$EVTD loops
thru the entire event queue after failsoft rebuild.
Also don't change structure lock time when date/time
PSI happens.
5-Oct-84 GCO 10100 /LWS
1323 QSRADM Add code in A$AUTO to support AUTO TAKE file
/DISPLAY and /NODISPLAY switches. Also see
ORION edit 721.
19-Oct-84 GCO 10078 /CTK
1324 QSRT10 We missed a place where we didn't clear the JCH bits
in G$PRVS where most of QUASAR thinks is just a job
number. We didn't clear the JCH bits when processing
[SYSTEM]GOPHER messages (QUEUE.s)
22-Oct-84 GCO 10107 /LWS
1325 QSRMAC Add QUASAR support for FAL streams. (.OTFAL)
QSRADM
QSRSCH
QSRDSP 14-Nov-84 GCO 10121 /LWS
1326 QSRMAC More of above edit. Add FAL STATUS UPDATE message,
QUASAR .QOFAS. We need this because what FAL needs to tell
QSRADM us won't fit in the regular status update message.
26-Dec-84 GCO 10132 /LWS
1327 QSRMAC Add symbold %FPGRF to specify that the user typed
/GRAPHICS on print command. Extend queue entries
to include room for FONT name.
31-Jan-85 GCO 10142 /NT
1330 QSRDSP Add possible tape drive densities to SHOW STATUS
TAPE-DRIVE command display.
19-Feb-85 GCO 10150 /LWS
1331 QSRDSP Change SHOW PARAMETERS NETWORK display to correctly
display new style DN60 port argument.
11-Mar-85 GCO 10159 /LWS
1332 QUASAR Keep QUASAR's catalog cache in synch with [SYSTEM]CATALOG.
QSRMAC Also do a general cleanup of the CATALOG daemon interface
QSRALC and of QSRCAT. Enhance DECtape and magtape code to allow
QSRCAT these types of volume-sets to be cataloged. A side effect
QSRDSP of this edit provides full MDA support for DECtapes. Also
QSRMDA lots of dead code in QSRMDA.
QSRT10
19-Mar-85 GCO 10166 /DPM
1333 QUASAR Move call to init for PSI KSYS interrupts until after
QSRQUE QUASAR has read the master queue file. Also consider
same event types identical entries if the expiration
times are within 59 seconds.
19-Mar-85 GCO 10169 /LWS
1334 QSRMAC Reserve storage for /BATOPT in the batch limit words.
This contains the sixbit option name to be passed to
LOGIN on batch logins (i.e. LOGIN/OPTION:xxx).
21-Mar-85 GCO 10172 /DPM
1335 QUASAR Add a mechanism whereby priv'ed users can obtain the
QSRMAC EQ for a running spooler job. The message to QUASAR
QSRQUE is function .QOEQR and must contain a .OROBJ block.
The answer from QUASAR is message type .QOEQA.
22-Mar-85 GCO 10176 /DPM
1336 QSRMAC Re-implement old QUASAR V2 functionality of listing
QSRDSP summaries.
22-Mar-85 GCO 10173 /DPM
1337 QSRMDA For cataloged volume-sets, display the media storage location
QSRT10 text in the mount messages sent to OPR.
25-Mar-85 GCO 10175 /DPM
1340 QSRMAC Forgot to bump the master queue file version number.
Lenghten the user name to octal 10 words. Shorten the
box location for output to octal 10 words.
26-Mar-85 GCO 10180 /NT
1341 QSRMAC Make it easier to create new queues. Add several new
QSRADM arguments to the QUEUES macro. Store queue dependent
QSRDSP data in the queue headers. Currently, most of the new
QSRQUE data relates mostly to listing generation.
28-Mar-85 GCO 101XX /DPM
1342 QSRMAC If there is a problem with a request when reaching RENDEF
QSRSCH (G$ERR non-zero) don't rename files as the request will
not be queued and the files will be lost in [3,3].
30-Mar-85 GCO 10183 /JAD
1343 QSRMAC Add support for new QUEUE. UUO sub-blocks: .QBOPT, .QBDIS,
QSRQUE and .QBUSR.
2-Apr-85 GCO 10187 /DPM
1344 QSRMAC Add "Object type Data Block" (ODB) to queue header
QSRADM definitions as a variable length queue. These blocks
will contain data common to all objects of the same
type. Created to support FAL's default network PPN
and rejection list definition commands which are common
to all FAL streams.
8-Apr-85 GCO 10189 /LWS
1345 QSRT10 Teach QUASAR to use new function UGVUP$ to validate
account string and return user profile. Default .EQUSR
and .EQBOX from .AEPNM and .AEBOX respectively if needed.
22-Apr-85 GCO 10198 /LWS
1346 QSRCAT Keep QUASAR in sync with CATLOG by updating the catalog
QSRMDA on reel switches.
8-May-85 GCO 10206 /DPM
1347 QSRCAT If MDA is turned off, just return in V$INIT.
20-May-85 QAR #868095 GCO 10211 /LWS
1350 QSRT10 Fix bug where REDDIR gets clobbered by DSKCHR UUO.
Make ACTSTR's length .DCMAX.
21-May-85 QAR #868117 GCO 10213 /LWS
1351 QSRMDA Decouple magtape drive availability status from AVR status.
QSRT10
29-May-85 GCO 10220 /DPM
1352 QSRMAC Define FTDQS feature switch.
4-Jun-85 GCO 10225 /JAD
1353 QSRMAC Completely redo edit 1152. In particular, only input or
QSRADM output queues may be enabled or disabled. Furthermore,
QSRMDA 1152 made no consideration for batch, thus allowing an
QSRQUE operator to start a batch job and then disable a queue
QSRSCH which could cause the job to fail. Batch jobs are now
QSRT10 immune to disabled queues. Disabled queues should have
QUASAR no effect on scheduling jobs as it previously did.
6-Jun-85 GCO 10227 /DPM
1354 QSRMAC DQS support for QUASAR. Expand the DEFINE NODE command
QSRADM to allow defining a node as a SERVER. Don't worry about
QSRSCH offline status for such nodes when scheduling objects.
Add .EQDEP (same as .EQTXT) for queue-dependent info.
6-Jun-85 GCO 10228 /JAD
1355 QSRDSP SHOW SYSTEM PARAMETERS loses the KSYS time on a video
terminal. EXPTIM wasn't ending $TEXT line with CRLF.
17-Jun-85 GCO 10233 /JAD
1356 QSRDSP Finish DQS support in QUASAR. Display node type SERVER
QSRSCH in SHOW STATUS NETWORK. Add another server check in
the scheduling loop.
20-Jun-85 GCO 10236 /JAD
1357 QSRDSP Use summary name from QH when listing queues instead of
always saying "jobs".
26-Jun-85 GCO 10238 /JAD
1360 QSRMAC Make QUEUE FOO/UNIT:LN01 work. A side effect is QUASAR
QSRADM will always preserve object attributes across internal
QSRDSP shutdowns for remove devices. This helps prevent IPCF
QSRSCH wars between QUASAR and LPTSPL when trying to schedule
jobs for on a remote station whose device(s) do not
support the attributes needed by the request being
scheduled.
*** NOTE ***
Neither QUASAR nor QUEUE perform any validity checks
on the new unit class quantity. This enables a customer
to write a spooler which passes the unit class info to
QUASAR with no modifications necessary to any part of
QUASAR or QUEUE.
1-Jul-85 GCO 10240 /DPM
1361 QSRMAC Make START NODE work correctly for ANF-10 remote stations
QSRADM by starting only those devices which the node supports instead
QSRNET of always starting a single LPT and CDR.
2-Jul-85 GCO 10241 /DPM
1362 QSRADM Make SHUT NODE <nodename> doesn't work for ANF-10 remote
stations like it does when a node number is specified.
2-Jul-85 GCO 10242 /DPM
1363 QSRADM Fix undeserved "No processor" status and remote job scheduling
problems caused by remote objects having other than %GENRC
attributes by updating the PSB with object/attribute data
from response to setup messages. Aftermath of edit 1360.
9-Jul-85 GCO 10243 /DPM
1364 QSRADM Check for objects needing a restart when processing
QSRSCH HELLO messages.
10-Jul-85 GCO 10248 /DPM
1365 QSRNET Correct QE/OBJ attribute check in N$CSTN by using OBSDAA
QSRSCH instead of OBSSUP to indicate the presence of device
attributes. Remove check for OBSDAA in in scheduler pass
two since OBJ attribute checking is done correctly in
N$CSTN.
22-Jul-85 GCO 10255 /DPM
1366 QSRDSP Only list event queues if no destination node or only
local node is specified.
22-Jul-85 GCO 10256 /DPM
1367 QUASAR Have QUASAR create an AUTO file request to process the
QSRT10 GALAXY startup command file SYS:SYSTEM.CMD each time
QUASAR is started.
10-Sep-85 GCO 10283 /JAD
1370 QSRMDA Fix junk MDA error acks.
16-Sep-85 GCO 10286 /DPM
1371 QSRMAC Allow certain queues to be processed by the scheduler even
QSRSCH after KSYS expires. Do this by creating a new bit in the
queue header flag word called QH.IKS (Immune to KSYS).
Needed specifically for the event queue. Right now, all
other queues will behave as they always have.
18-Sep-85 GCO 10304 /DPM
1372 QSRMAC Define a maximum unit number so we can toss silly unit
number ranges in START, etc., commands.
22-Oct-85 GCO 10308 /JAD
1373 QSRINF Fix Ill mem ref caused by trashed index register when assigning
a system PID (such as [SYSTEM]MAILER).
29-Oct-85 GCO 10316 /RCB
1374 QSRT10 Only do account validation for input or output queues.
29-Oct-85 GCO 10317 /DPM
1375 QSRMDA Remove stopcode ITR. Return an error to a user if no tape
drives support the requested density.
5-Nov-85 GCO 10321 /DPM
1376 QSRMDA Remove stopcode MVD. Return an error to a user who tries
to mount a multi-reel DECtape volume-set.
5-Nov-85 GCO 10322 /DPM
1377 QSRT10 Add a few oddball devices to the "foreign" device table
so Narf can do wierd things with his KS10. New devices
are RDA, DTE, DDP, and RX2.
11-Nov-85 GCO 10324 /DPM
1400 QSRMAC Re-define .EQUSR and .EQBOX to be 8-bit ASCIZ. This changes
QSRT10 master queue file format. Upgrade to version 6 accounting
profile format.
12-Nov-85 GCO 10326 /DPM
1401 QSRT10 Add missing QUEUE. UUO function dispatch table entry so
events can be queued up with the QUEUE. UUO.
19-Nov-85 GCO 10328 /DPM
1402 QSRSCH Allow IBM multilation nodes to be started.
4-Dec-85 GCO 10334 /DPM
1403 QSRMAC Remove references to SPLTAP in the SETUP message. It's
QSRSCH obsolete. LPTSPL's drivers are responsible for figuring
out what the difference is between a printer and a magtape.
17-Dec-85 GCO 10344 /DPM
1404 QSRSCH Fix up /CORE defaulting now that QUEUE doesn't do that any
QSRT10 more. Also correct comparrisons between core values (pages)
and CORMAX and MINMAX storage (words). Both quantities are
now pages.
23-Dec-85 GCO 10345 /DPM
1405 QSRNET If spooling to a specific device, don't declare the printer
QSRSCH remote unless the device really exists at a remote station.
6-Jan-86 GCO 10349 /DPM
1406 QSRQUE Correct block lengths for .QBDIS and .QBUSR when converting
short creates into EQ format. Also, don't overwrite user name
with distribution location.
7-Jan-86 GCO 10350 /DPM
1407 QSRADM Fix comparrison UDTs in A$AGE by converting result to seconds.
QSRQUE Lite internal function bit for event EQs. Don't require
QSRSCH priv's when doing event queue defaulting if an internal
QSRT10 function. Remove trailing CRLF on event text for startup
QUASAR command file processing. If a zero sleep time is computed,
then sleep for one second (see QUASAR edit 347).
9-Jan-86 GCO 10355 /DPM
1410 QSRSCH Fix loop in setup code for DN60 nodes.
13-Jan-86 GCO 10357 /DPM
1411 QSRT10 Aviod DTL stopcodes in QSRFSS by not stuffing junk into the
DPA storage area of the QE if we're not rewriting the EQ on
disk while processing an account validation message.
14-Jan-86 GCO 10361 /DPM
1412 QSRSCH Fix stopcode CRM and RRF caused by a user submitting a batch
QSRT10 job whose CTL or LOG file structures specify a generic device
such as DSK. Bomb these requests out with an appropriate
error message.
14-Jan-86 GCO 10362 /DPM
1413 QSRADM Fix setup message processing for DN60s and cosmetic error
where ACKs can display junk port numbers.
17-Jan-86 GCO 10364 /DPM
1414 QSRT10 Fix "Wrong Profile Format" errors by requesting the proper
type of account validation.
20-Jan-86 GCO 10366 /DPM
1415 QSRADM Fix AGE computation. Also, KSYS has a resolution of
QSRSCH minutes, not seconds.
24-Jan-86 GCO 10370 /DPM
1416 QSRT10 Fix incorrect usage of UV$ACE when validating account string.
UV$ACE is last word in message, not length of message.
28-Jan-86 GCO 10372 /JAD
1417 QSRSCH Check for nexted request before checking for KSYS
expiration. This allows print jobs to be scheduled
in a "stand-alone" environment.
6-Mar-86 GCO 10386 /NT
1420 QSRDSP List queue requests in the order of 1) Running; 2) Runnable
(no /AFTER time); 3) Deferred (a /AFTER time).
18-Mar-86 GCO 10388 /JAD
1421 QSRT10 Make name, distribution location, and log file defaulting
work even when account validation is turned off.
9-Apr-86 GCO 10393 /DPM
1422 QSRMDA Add support for overriding disk set number when mounting
a disk via the MOUNT command.
28-Apr-86 GCO 10401 /JAD
1423 QUASAR Add a new queue header (network queue names). Add code
QSRADM to support OPR's DEFINE/SHOW NETWORK-QUEUE(-NAMES).
QSRDSP Add a binary listing message and response which gives a
QSRQUE queue listing in forms of "QE"'s in a page.
12-may-86 GCO 10407 /JAD
1424 QSRMDA Make /TAPE with a cataloged volume-set work.
19-May-86 GCO 10408 /DPM
1425 QSRADM Turn on code to set and display output spooler magtape
QSRDSP parameters. *** Note *** Associated edit 765 to ORION.
20-Apr-86 GCO 10409 /DPM
1426 QSRMAC Add support for scheduling input or output jobs destined
QSRADM for a remote queue. Invent new NETSTS bit NETNQC which
QSRDSP supersedes the old NETSRV. Eventually, this and all old
QSRSCH DQS code will go away.
6-Jun-86 GCO 10413 /DPM
1427 QSRADM Base NQC operation on queue name string supplied when a
QSRDSP request is queued, rather than twiddling a queue name into
QSRQUE a node/unit. New switch in QUEUE (/QUEUE) specifies the
QSRSCH remote queue name for various operations. Lots of rework
QSRT10 to edits 1424 and 1426.
18-Jun-86 GCO 104xx /JAD
1430 QSRDSP End message strings with a null to prevent junk
from previous messages coming out.
25-Jun-86 GCO 10424 /NT
1431 QSRQUE Fix Q$EQR so that .QOEQR doesn't generate an MF.NOM ACK
in addition to a .QOEQA message. A text ACK will still
occur instead of .EQEQA if an error occurs.
26-Jun-86 GCO 10426 /TL
1432 QSRDSP Default node/unit stuff from queue name in GETPAR.
30-Jun-86 GCO 10432 /JAD
1433 QSRT10 Allocate a private block for I$SSRL to build search list change
messages in. QSRMDA will use G$MSG which can confuse I$SLCM
when it tries to process the message I$SSRL built.
1-Jul-86 GCO 10434 /JAD
1434 QSRSCH Translate queue name string to upper case.
2-Jul-86 GCO 10435 /JAD
1435 QSRADM Fix usage of NETSRV where NETNQC should have been used.
QSRDSP Equate CHKRMQ to .RETF## instead of .RETF.
11-Jul-86 GCO 10437 /JAD
1436 QUASAR Have EQDFLT verify the characteristics and forms type arguments
QSRSCH on a CREATE by calling routines in CHRFRM.
13-Jul-86 GCO 10438 /JAD
1437 QSRMAC Add another word to the NQC status information to contain the
QSRDSP number of bytes transferred, and output that in the SHOW STAT.
31-Jul-86 GCO 10439 /JAD
1440 QSRADM Avoid ill mem ref in A$FNDB by using full word compare,
not half-word compare.
15-Aug-86 GCO 10454 /DPM
1441 QSRMDA Clear the last word of the G$MSG block when setting up the
QSRT10 byte pointer (MDBPTR) into the buffer to keep from losing
ACK text.
26-Aug-86 GCO 10456 /JAD
1442 QSRMDA Fix bug in linking VOL blocks to VSLs that prevented all
structure mount requests from being satisfied when an
unmounted structure was spun up.
3-Sep-86 GCO 10457 /DPM
1443 ALL Change $STOP to STOPCD.
24-Nov-86 GCO 10470 /BAH
1444 QSRMAC Allow SET BATCH n SYSTEM-OPR-INTERVENTION.
QSRADM These streams behave as OPR-INTERVENTION when OPR is on duty,
QSRDSP and as NOOPR-INTERVENTION when off. This can reduce skew
QSRSCH between what a batch job can test (OPR on) and what controls
QSRT?0 scheduling of other jobs (OPR-INTERVENTION).
14-Dec-86 GCO 10476 /TL
1445 QSRQUE Re-enter GCO 10383 which fixes unit type storage in QUEUE.
UUO processing.
16-Dec-86 GCO 10478 /JJF
1446 QSRT10 Make SET KSYS NOW do it NOW rather than blithely ignoring it
half the time and doing it a minute later the other half.
27-Jan-87 GCO 10488 /JJF
1447 QSRMDA IVV stopcode when IBM Emulation Batch is running and there
is a mount request from a batch stream. Make sure the
batch stream belongs to local processor when handling
a mount request from batch.
16-Feb-87 GCO 10493 /BAH
1450 QSRDSP Include write protect/single access/private structure status
in SHOW STATUS STRUCTURE output.
29-Apr-87 GCO 10504 /JAD
1451 QSRMAC Increase size of MR.JOB to handle request numbers bigger
QSRCAT than 18 bits. Redefine .VSRID as a full word quantity.
QSRDSP Define PR.RID (request ID for allocation prescan) to be
QSRMDA the same as MR.JOB minus the "batch request" flag BA%JOB.
QSRT10 Invent .VSLNK to hold link previously in .VSRID.
29-May-87 GCO 10510 /JAD
1452 QSRMAC Add support for "demand spoolers/processors" and new
QUASAR galactic startup done by QUASAR. QUASAR now starts up
QSRT10 ORION, PULSAR, and CATLOG. The object processors
QSRSCH (BATCON, LPTSPL, etc) are also started by QUASAR, but
QSRADM only when they're needed. (See PRCDAT macro in QSRMAC).
QSRQUE N.B. QUASAR NOW HAS AN "UNTIL RESET" PID.
QSRCAT
25-Jun-87 GCO 10516 /LWS
1453 QSRMAC Change NEBULA to a %ONCE processor. Add code to
QSRSCH SCH3.1 so NEBULA gets a SETUP msg if not already
SETUP.
1-Jul-87 GCO 10519 /LWS
1454 QSRALC .B36 Have BLISS include CATPRM.L36 for symbols.
2-Jul-87 GCO 10520 /LWS
1455 QSRMDA Fix it so DISABLE OUTPUT-DISPLAY MOUNT-MESSAGES
works.
3-Jul-87 GCO 10524 /LWS
1456 QSRSCH Make sure we don't overload NEBULA with jobs.
Check and set the correct OBJSCH bits in SCH3.1.
QSRMAC Add new object status code, %INACT (Inactive).
QSRDSP If no PSB is found for the object and it's a
%DEMND spooler, set this status.
7-Jul-87 GCO 10528 /LWS
1457 QSRSCH If debugging don't do demand spooler stuff or KSYS
QSRADM processing.
13-Jul-87 GCO 10531 /LWS
1460 QSRT10 A mount request for DTA succeeds whereas a mount request
for DTAx: doesn't. Fix DEVCHK so mounts for DTAx work.
15-Jul-87 GCO 10532 /LWS
1461 QSRSCH Cure NEBULAitis. Don't try to find/create a PSB for
%GENRC .OTNQC objects.
27-Jul-87 GCO 10539 /LWS
1462 QSRMAC Change PRCDAT macro to include all attributes an object
QSRSCH processor can handle. Simplify SOPTYP macro (new args).
QSRT10 Change format of OPDTAB and require attributes in call
QSRDSP to I$GOPD. Beef up pass 3 since NEBULA will be returning
QSRADM %RSUNA when appropriate. Don't turn off OBSIGN in object
block in KILPSB.
3-Aug-87 GCO 10546 /LWS
1463 QSRDSP Fix it so "ignored" objects are set to "Inactive" in
status display when processor is not around.
10-Aug-87 GCO 10549 /LWS
1464 QSRNET In N$INTR, don't assume local node is first entry
in network node queue.
10-Aug-87 GCO 10550 SPR 10-35622 /LWS
1465 QSRMDA QUASAR RNR stopcodes. Catalog entry is deleted for
a structure when it's dismounted even if the structure
has outstanding requestors. Don't delete catalog
entry if there are outstanding requests/allocations
for the structure.
12-Aug-87 GCO 10551 SPR 10-35671 /LWS
1466 QSRMAC QUASAR gets confused and sends BATCON batch jobs to
QSRQUE IBMSPL. Invent "IBM Batch" attribute.
QSRSCH
17-Aug-87 GCO 10554 SPR 10-35999 /LWS
1467 QSRMAC Remove reference to FTFLBK.
QSRINF 21-Aug-87 GCO 10557 /LWS
1470 QUASAR Put set/clear of G$ACKO in main IPCF loop so QUASAR
QSRQUE doesn't get confused if an ack to OPR is needed during
internal creates.
5-Sep-87 GCO 10569 SPR 10-35726 /TL/LWS
1471 QSRT10 Fix I$VACT so it can tell if a profile is returned or
not in UGVUP$ msg ack. This edit requires ACTDAE edit 153.
7-Sep-87 GCO 10570 SPR 10-36011 /LWS
1472 QSRMDA Don't set a tape drive unavailable if it causes a
deadlock.
10-Sep-87 GCO 10571 SPR 10-35582 /LWS
1473 QSRT10 Take dependency checking AC setup out of loop at INIT.2.
21-Sep-87 GCO 10576 /LWS
1474 QSRADM More attribute stuff.
QSRSCH 2-Oct-87 GCO 10578 /LWS
1475 QSRMAC Add new word to response-to-setup msg so that more
QSRSCH attribute type things can be returned by spooler.
5-Oct-87 GCO 10579 /LWS
1476 QSRADM Attributes again (hopefully for the last time).
QSRSCH 12-Oct-87 GCO 10580 /LWS
1477 QSRQUE Fix user output-device acknowledgement so that it supplies
a CRLF at the end. Makes it consistent with the rest of
QUASAR, and with QUEUE which no longer supplies a free
CRLF at the end of an ACK string.
QSRDSP Fix user-level 'The queues are empty' message so it doesn't
produce 3 extra CRLFs when QUEUE displays it. Terminate
the $TEXT string with a ^A. We'll get 1 CRLF from QUEUE
when it exits.
30-Oct-87 GCO 10588 /JJF
1500 QSRT10 In I$LOGFD, default the path of control file to
.EQOID if no PPN was given for control file.
12-Nov-87 GCO 10590 /LWS
1501 QSRMDA Remove check for DECtape mount in LBLNOT and always send
tape mounted message to PULSAR.
29-Dec-87 GCO 10592 /JAD
1502 QUASAR Add code to handle .IPCSM (Schedule Bits Change) message
QSRT10 from monitor. Fixes problem where batch jobs don't
get scheduled when schedule bits are changed.
Requires MCO 13773.
29-Dec-87 GCO 10593 SPR 10-36077 /LWS
1503 QSRMAC Add code to handle reverse LAT and LN03's.
QSRADM 02-Feb-88 GCO 10599 /KDO
QSRSCH
1504 QSRCAT Check for lower case volume names in CATALOG message.
04-Apr-88 GCO 10613 /LWS
1505 QSRMAC Add new bits VS.MWL and VS.MWE so the WL/WE status
QSRMDA of a mount request can be preserved in case we have to
QSRCAT wait for a response from CATLOG.
06-Apr-88 GCO 10614 SPR 10-36100 /LWS
1506 QSRMDA Fix problems where premounted volume of a cataloged
QSRCAT tape volume-set is not reassigned when the mount
request for the volume-set is processed.
12-Apr-88 GCO 10615 /LWS
1507 QSRADM When calling I$GOPD in A$OSTA, make sure we pick up
object's attributes in S2. Also, in HELSTA, don't
restart object if it's not started already.
7-May-1988 GCO 10626 QARs 1025,2038 /LWS
1510 QSRMAC Change PRCDAT macro: Remove HPQ arg and add arg that
QSRT10 be text strings to be sent down FRCLIN before running
QSRADM spooler. Also increase FRCLIN wait times for extreme
circumstances.
11-May-88 GCO 10629 /LWS
1511 QSRMDA Add A matrix definitions for SA10 disks and tri-density
magtapes.
13-Jun-88 GCO 10639 /DPM
1512 QSRDSP Fix SHOW PARAMETERS NET <nodename> display bug.
16-Jun-88 GCO 10644 /LWS
1513 QSRT10 Timesharing over message not ended with a null in
buffer. If "in " just happens to proceed it, INITIA
runs when SEND ALL command is shoved down FRCLIN.
4-Sep-88 GCO 10654 /LWS
1514 QSRT10 1. QUASAR will fire up a BATCON needlessly at KSYS time.
QSRADM 2. We decrement PSLCUR in the PSB on an internal
QSRSCH shutdown of an object and if the same object has only
one device setup and we shut it down via OPR when it's
internally shutdown, PSLCUR gets deceremented again making
it go to -1 and A$GPSB fails to find the PSB when the
object is started again causing a duplicate spooler to
startup needlessly.
3. Store default protection and priv'd PPN in event EQ
to keep nonpriv'd users from cancelling events.
29-Sep-88 GCO 10657 /LWS
1515 QSRSCH I$LGFD checking for junk file structures is insufficient.
QSRT10 .CTL FDs are ignored and non-batch queues have no checking
at all. Add FILCHK routine which gets called at the end
of all xxxDEF routines to check all filespecs in all EQs.
23-Nov-88 GCO 10661 /DPM
1516 QSRSCH SYSTEM.CMD is not taken at startup after edit 1515.
FILCHK causes event creates to fail if the command file
FD contains an ersatz device. Don't call FILCHK for
event creates. FILCHK was intended for device/deadlock
checking only.
6-Jan-89 GCO 10663 /DPM
1517 QSRNET On a Non-ANF system, QUASAR gets confused about the node
names of local objects when there are DQS-Server queues
defined. Make sure the dummy LOCAL node name gets set
in local object blocks.
10-Apr-89 GCO 10665 SPR 10-36259 /LWS
1520 QSRMAC Remove SM.RSN and SM.CLM (not needed).
24-May-89 GCO 10668 /KDO
1521 QSRMAC Remove .SMDLK. The rewritten D$DEAD routine doesn't
need it anymore.
28-May-89 GCO 10669 /KDO
1522 QSRMAC Make NEXT command work for NQC streams. Also, remove
QSRADM FTDQS conditional since this feature cannot be successfully
QSRDSP turned off. Return a warning message if a user attempts to
QSRQUE modify a destination node in cases where a queue name string
QSRSCH is in use.
QUASAR
21-Jul-89 GCO 10673 /DPM
1523 QSRMAC Part of Edit 1514 didn't quite fix the problem for which
QSRSCH it was intended. We always have to decrement PSLCUR on
either kind of shutdown. However, we just shouldn't store
it in the PSB if it goes negative. Also invent new meaning
for OBSINT (it was only set in -20 code). It means SETUP
msg to be sent for object is a setup after an internal
shutdown. When this bit is lit, we lite the new bit, SUFINT,
in the SETUP msg so that the spooler knows that it should
not up the new setup in SSETUP for keeping track
of when to logout when it's a %STCMD spooler. Also, lite
SUFINT in a SHUTDOWN msg when we are shutting down an object
internally. The spooler uses this bit in the SHUTDOWN msg the
converse way it did for the SETUP msg, i.e. not count down
SSETUP.
30-Nov-89 GCO 10681 SPR 10-36284 /LWS
\ ;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
XP MDADAE,G.DEAD ; ON = ENABLE DEADLOCK AVOIDANCE CODE
XP FTINFO,FTINFO ; ON = INCLUDE [SYSTEM]INFO SUPPORT
; DEFINE BATCH JOB PARAMETERS
XP INPMAX,^D30 ;DEFAULT BATCH STREAMS (ABS MAX = 63)
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
XP INPCEN,5 ;START NODE STREAMS AT CENTRAL STATION
XP INPREM,0 ;START NODE STREAMS AT REMOTE STATION
; DEFINE SPOOLING SYSTEM PARAMETERS
XP IDLMIN,G.IMIN ;MINUTES DEMAND SPOOLERS STAY IDLE
XP SPLPRI,G.DPRI ;PRIORITY FOR SPOOLED REQUESTS
XP MXUPRI,G.SPRI ;MAXIMUM USER PRIORITY
XP MXUNIT,^D127 ;MAXIMUM UNIT NUMBER
IFG <INPMAX-1>-MXUNIT,<XP MXUNIT,<INPMAX-1>> ;LEAVE ROOM FOR ALL BATCH STREAMS
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
;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 NPRTBL,NPRTLB ;BLP FOR 1=ALL USERS, 0=PRIV USERS
XP PRMSTR,0 ;PERMANENT STRUCTURES 0=OFF, 1=ON
;NEVER TURN ON PERMANENT STRUCTURES
>
TOPS20< XP NPRTBL,NPRTLB > ;BLP FOR 1=ALL USERS, 0=PRIV USERS
;FAL-STREAM PARAMETERS
XP FALNTY,G.FNTY ;DEFAULT NETWORK TYPE FOR FAL-STREAM
;NETWORK QUEUE CONTROL
XP QNMLEN,10 ;LENGTH OF QUEUE NAME IN WORDS
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 RMKLEN,10,2 ;REMARK STRING 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,17,17 ;OBJECT BLOCK PARAMETER LENGTH
SYSPRM CHRSIZ,4,4 ;LENGTH OF CHARACTERISTICS STRING
SYSPRM FRMSIZ,4,4 ;LENGTH OF LONG FORMS NAME
SYSPRM LPTNLN,14,14 ;LAT SERVER/SERVICE/PORT NAME
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
;Note: When adding new attribute, check PRCDAT to be sure attribute
; is accounted for.
DEFINE ATTRIB,< ;;DECLARE THE VALID ATTRIBUTES
LSTOF.
X <Invalid>,%INVLD,0 ;;INVALID FOR ALL
X <Lower>,%LOWER,.OTLPT ;;LOWER CASE
X <Upper>,%UPPER,.OTLPT ;;UPPERCASE
X <Physical>,%PHYCL,<.OTLPT,.OTPTP,.OTCDP,.OTPLT>
X <Generic>,%GENRC,-1 ;;GENERIC (VALID FOR ALL)
X <Sitgo>,%SITGO,.OTBAT ;;SITGO REQUEST
X <Input>,%NQINP,.OTNQC ;;NET QUEUE CTL INPUT STREAM
X <Output>,%NQOUT,.OTNQC ;;NET QUEUE CTL OUTPUT STREAM
X <IBM batch>,%IBMBT,.OTBAT ;;[1466] IBM BATCH (IBMSPL)
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
.ROBUT:! BLOCK 1 ;SIXBIT UNIT TYPE
.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 ! !
; ! AND LINKING ALGORITHM ! ENTRY ! !
; !-------------------------------------------------------!
; ! LIST FLAG (LIQxxx) !
; !-------------------------------------------------------!
; ! OBJECT TYPE !
; !-------------------------------------------------------!
; ! LISTING ROUTINE ADDRESS !
; !-------------------------------------------------------!
; ! SUMMARY ROUTINE ADDRESS !
; !-------------------------------------------------------!
; ! ASCIZ LISTING QUEUE NAME ADDRESS !
; !-------------------------------------------------------!
; ! ASCIZ SUMMARY "QUANTITY" NAME ADDRESS !
; !-------------------------------------------------------!
; ! ASCIZ SUMMARY "QUANTITY" TYPE ADDRESS !
; !-------------------------------------------------------!
; ! ASCIZ NOTIFICATION TEXT ADDRESS !
; !=======================================================!
PHASE 0
.QHTYP:! BLOCK 1 ;QUEUE TYPE WORD
QH.NAM==-1,,0 ;3 CHARACTER QUE NAME
QH.FLG==777B26 ;FLAGS
QH.VAR==1B18 ;ENTRY SIZE IS VARIABLE
QH.INV==1B19 ;QUEUE IS INVISIBLE
QH.DIS==1B20 ;QUEUE IS DISABLED
QH.IKS==1B21 ;QUEUE IS IMMUNE TO KSYS
QH.OAV==1B22 ;OBJECT ALWAYS VISIBLE (DESPITE QUEUE SETTING)
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
.QHTEV==6 ;EVENT 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 ; PERFORM 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)
.QHOBJ:! BLOCK 1 ;ASSOCIATED OBJECT TYPE
.QHDEP:! BLOCK 1 ;LISTING ROUTINE
.QHSUM:! BLOCK 1 ;SUMMARY ROUTINE
.QHLQN:! BLOCK 1 ;ASCIZ LISTING QUEUE NAME
.QHSQN:! BLOCK 1 ;ASCIZ SUMMARY "QUANTITY" NAME
.QHSQT:! BLOCK 1 ;ASCIZ SUMMARY "QUANTITY" TYPE
.QHNOT:! BLOCK 1 ;ASCIZ NOTIFICATION TEXT
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 FIXED QUEUE-ENTRY-HEADER
.QEVSZ:! BLOCK 1 ;SIZE OF EXTENSION AREA (QH.VAR QUEUES ONLY)
QE.VSZ==0,,-1 ;EXTENSION SIZE (BEYOND QH.SIZ)
QEHVSZ:! ;SIZE OF VARIABLE QUEUE-ENTRY-HEADER (QH.VAR)
DEPHASE ;END OF QUEUE HEADER DEFINITION
PHASE QEHSIZ ;START QE-SPECIFIC DEFINITION
; (QE IS IN A FIXED-LENGTH QUEUE)
.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
.QENQC:! BLOCK 1 ;NETWORK QUEUE CONTROL
QE.STR==1B0 ;SPOOLING TO REMOTE IN PROGRESS
.QEQNM:! BLOCK QNMLEN ;REMOTE QUEUE NAME
.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 (ORIGINAL 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 values for processor types to associate with the objects below.
%ONCE==0 ;Started once by QUASAR (at QUASAR startup time)
; Does not logout when idle
%STCMD==1 ;Started on START command from OPR
; Logout when all streams shutdown via OPR
%DEMND==2 ;Started on demand (job for a stream)
; Logout when all streams idle for x mins.
;Define a macro that defines the program name and processor type for
; a given object.
;
; P1 object type(s) (.OTxxx)
; P2 program name
; P3 processor type (defined above)
; P4 object attribute(s)
; P5 dependencies (ANF10, DECNET, DN60)
; P6 text string(s) to be sent down FRCLIN at spooler startup
DEFINE PRCDAT,<
X BAT,BATCON,%DEMND,%GENRC,,<SET HPQ 0,SET DSKPRI 0>
X LPT,LPTSPL,%DEMND,<%GENRC,%LOWER,%UPPER,%PHYCL>
X <PTP,CDP,PLT>,SPROUT,%DEMND,%GENRC
X RDR,CDRIVE,%STCMD,%GENRC
X BIN,SPRINT,%DEMND,%GENRC
X FAL,FAL,%STCMD,%GENRC,<ANF10,DECNET>
X BAT,IBMSPL,%STCMD,%IBMBT,DN60
X NQC,NEBULA,%ONCE,<%NQOUT,%NQINP>,DECNET
REPEAT 0,<
X FOO,FOOSPL,%DEMND,%GENRC,,<SET HPQ 15,SET DSKPRI 1>
>
>
;Define a macro to be used by object processors to determine their
; respective object processor type.
;
; NAM is the processor's name (eg. LPTSPL)
; SYM is the symbol that will be assigned object processor type
DEFINE SOPTYP (NAM,SYM), <
XLIST
DEFINE X (OTYP,PNAM,PTYP,PATR,PDEP,PTXT), <
PRCTYP (PNAM,PTYP)
>;;END X
..CNT==0
.XCREF ..CNT
DEFINE PRCTYP (PN,PT), <
IFIDN <NAM><PN>, <
IFG ..CNT-0, < ;;MAKE SURE ONLY ONE ENTRY PER PROCESSOR
IF1,<
PRINTX ?More than one entry in PRCDAT for same processor
>
>;;END IFG
'SYM=='PT ;;SET PROCESSOR TYPE
..CNT==..CNT+1 ;;COUNT THEM
>;;END IFIDN
>;;END PRCTYP
PRCDAT ;;INVOKE THIS MESS
PURGE ..CNT
LIST
>;;END SOPTYP
;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>
X EVT,EVT,<0,0,0,0,0>
X FAL,FAL,<<FALNTY>,0,0,0,0>
X NQC,QNM,<<%NQOUT>,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 ;SETUP IS INTERNAL "RESTART" OF OBJECT
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
OBSFCH==1B16 ;[1163] FORMS CHANGE IN PROGRESS
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
OF.LP2==3B20 ;LP20 SIMULATION
.OFLDF==0 ;DEFAULTED BY DRIVER
.OFLNO==1 ;NO
.OFLYE==2 ;YES
.OOTAP==4 ;SIXBIT DEVICE FOR SPOOLING TO TAPE
.OOUNT==5 ;SIXBIT UNIT TYPE
.OOMTA==6 ;MAGTAPE CHARACTERISTICS SET BY OPR
.OOVSN==7 ;VOLUME-SET NAME
;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
.OPINS==3 ;ALLOW IF SCHED # 400
.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
;FAL-STREAM parameters
.OBNTY==0 ;NETWORK-TYPE
.OBCON==1 ;ELAPSED CONNECT TIME
.OBBYT==2 ;BYTES TRANSFERRED
.OBNDN==3 ;CONNECTED NODE NAME (SIXBIT)
;Network Queue Controller parameters
.ONNOD==0 ;CONNECTED NODE NAME (SIXBIT)
.ONCON==1 ;ELAPSED CONNECT TIME (SECONDS)
.ONLNK==2 ;LINK (NETWORK) TYPE
.ONBYT==3 ;BYTES TRANSFERRED
;MAGTAPE BITS
OB.MRL==3B3 ;MULTI-REEL VOLUME-SET
.OBMRD==0 ;DEFAULT
.OBMRN==1 ;NO
.OBMRY==2 ;YES
OB.MDI==3B5 ;MAGTAPE DIRECTORY
.OBMDD==0 ;DEFAULT
.OBMDN==1 ;NO
.OBMDY==2 ;YES
OB.MTK==3B7 ;TRACKS
; .TMDRD==0 ;DEFAULT
; .TMDR9==1 ;9-TRACK
; .TMDR7==2 ;7-TRACK
OB.MPR==3B9 ;PARITY
.OBMPD==0 ;DEFAULT
.OBMPO==1 ;ODD
.OBMPE==2 ;EVEN
OB.MDN==7B12 ;DENSITY
OB.MLV==1B13 ;LABEL TYPE FIELD VALID
OB.MLT==17B17 ;LABEL TYPE
;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
X <Changing Forms>,%FRMCH,<.OTLPT,.OTPLT,.OTPTP,.OTCDP>
X <Connecting>,%CNECT,<.OTNQC,.OTFAL>
X <Mount wait>,%MWAIT,0
X <Inactive>,%INACT,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 !
; !-------------------------------------------------------!
; ! UDT set by QUASAR when processor should be running !
; !-------------------------------------------------------!
; ! !
; \ 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
PSFCNT==000777,,0 ;NUMBER OF TIMES TRIED TO STARTUP
PSFSTS==777000,,0 ;STATUS OF PROCESSOR
PS.RUN==0 ;RUNNING
PS.WAT==1 ;WAITING FOR HELLO MESSAGE
PS.FIR==2 ;PROCESSOR IS TO BE FIRED UP
PS.KSY==3 ;SPECIAL BATCON STATUS AT KSYS TIME
PSFNOT==0,,-1 ;NUMBER OF OBJECT TYPES
PSBUDT:! BLOCK 1 ;UDT WHEN PROCESSOR BETTER BE THERE
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 !
; !-------------------------------------------------------!
; ! ROUTE ENTRY NAME !
; !-------------------------------------------------------!
; \ \
; \ 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) !
; !=======================================================!
TOPS10 <
; MACRO TO DEFINE THE LIST OF ALL POSSIBLE ANF-10 NETWORK OBJECT TYPES
DEFINE ANFOBJ,<
X (BAT,.TYTTY)
X (LPT,.TYLPT)
X (PTP,.TYPTP)
X (CDP,.TYCDP)
X (PLT,.TYPLT)
X (RDR,.TYCDR)
> ;END DEFINE ANFOBJ
> ;END TOPS10
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==777700,,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
NETNQC==1B8 ; REMOTE NET QUEUE CONTROLLER
NETSRV==1B8 ; NODE IS A SERVER (SEE EDIT 1426)
NETLAT==1B9 ;Node is a LAT SERVER
;CONTINUED ON THE NEXT PAGE
;CONTINUED FROM THE PREVIOUS PAGE
NT.TYP==70,,0 ;NETWORK TYPE
DF.DEC==0 ; 'DEC' NODE
DF.378==1 ; 3780 NODE
DF.278==2 ; 2780 NODE
DF.HSP==3 ; HASP NODE
DF.LAT==5 ;LAT-SERVER
NT.MOD==7,,0 ;NETWORK MODE
DF.TRM==1 ; TERMINATION MODE
DF.EMU==2 ; EMULATION MODE
DF.PRO==3 ; Proto mode
NT.TOU==700000 ;PROTOCOL TIMEOUT CATAGORY
ST.PRI==1 ; PRIMARY
ST.SEC==2 ; SECONDARY
NT.DTR==070000 ;DATA TERMINAL READY
ST.ON==1 ; ON
ST.OFF==2 ; OFF
NT.TRA==007000 ;TRANSPARENCY
; ST.ON==1 ; ON
; ST.OFF==2 ; OFF
NT.XTA==000777 ;EXTRA BITS
NETASC:! BLOCK 3 ;ASCIZ NETWORK NODE NAME FOR RAMDOM OUTPUT
NETCLM:! BLOCK 3 ;ASCIZ NETWORK NODE NAME FOR COLUMNIZED OUTPUT
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)
NETLNM:! BLOCK LPTNLN ;LAT SERVER/SERVICE/PORT
TOPS10 <
NETOBJ:! ;START OF OBJECT COUNT LIST
DEFINE X (OBJ,TYP),<NET'OBJ:! BLOCK 1>
ANFOBJ
NETOBL==.-NETOBJ ;NUMBER OF ANF-10 NETWORK DEVICES
> ;END TOPS10
NETSIZ:!
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 PID -- [SYSTEM]INFO Queue of Names ands PIDs
IFN FTINFO,< ;DEFINE [SYSTEM]INFO'S PID QUEUE
; !=======================================================!
; \ \
; \ THE VARIABLE QUEUE ENTRY HEADER (QH.VAR) \
; \ \
; !=======================================================!
; ! THE PID ASSIGNED !
; !-------------------------------------------------------!
; ! LAST WHO TO TELL ! FIRST WHO TO TELL !
; !-------------------------------------------------------!
; ! LENGTH OF NAME ! LAST KNOWN OWNER !
; !=======================================================!
; \ \
; \ THE NAME CHOSEN BY THE CALLER \
; \ ASCIZ FORMAT \
; \ \
; !=======================================================!
PHASE QEHVSZ ;APPEND TO THE VARIABLE QUEUE ENTRY HEADER
PIDPID:! BLOCK 1 ;THE PID ASSIGNED
PIDLNK:! BLOCK 1 ;LINK INFORMATION
PID.LT==QH.PTL ;TAIL LINK FOR WHO TO TELL AT DROP OF PID
PID.LH==QH.PTF ;HEAD LINK FOR WHO TO TELL AT DROP OF PID
PIDJOB:! BLOCK 1 ;JOB INFORMATION
PID.LN==-1,,0 ;NUMBER OF CHARACTERS IN THE NAME
PID.CX==777B26 ;CTX NUMBER OF OWNER
PID.JB==777B35 ;JOB NUMBER OF OWNER
PID.JC==PID.CX!PID.JB ;JCH NUMBER OF OWNER
PIDNAM:! ;THE NAME PROPER
;NUMBER OF WORDS DEPENDS ON G$MPS
PIDSIZ:! ;LENGTH OF PID QUEUE MINUS DATA
DEPHASE
> ;END OF IFN FTINFO
SUBTTL IPC -- QSRIPC resend queue format
; !=======================================================!
; \ \
; \ THE VARIABLE QUEUE ENTRY HEADER (QH.VAR) \
; \ \
; !=======================================================!
; \ \
; \ THE SAB TO SEND (COPY OF G$SAB AT SEND) \
; \ \
; !=======================================================!
; \ \
; \ THE PACKET TO SEND \
; \ \
; !=======================================================!
PHASE QEHVSZ ;THIS IS A QH.VAR QUEUE
RS.CNT:! BLOCK 1 ;RESEND COUNT (FOR EXPIRATION CHECK)
RS.SAB:! BLOCK SAB.SZ ;SAB USED FOR THE SEND
RS.MSG:! ;START OF THE MESSAGE (ONLY IF PACKET MODE)
IPCSIZ:! ;MINIMUM SIZE OF IPC QUEUE ENTRY
DEPHASE
SUBTTL ODB -- Object type Data Block format
; !=======================================================!
; \ \
; \ THE VARIABLE QUEUE ENTRY HEADER (QH.VAR) \
; \ \
; !=======================================================!
; ! OBJECT TYPE (.OTXXX) !
; !=======================================================!
; ! NUMBER OF ARG BLOCKS IN DATA AREA !
; !=======================================================!
; \ \
; \ VARIABLE LENGTH DATA COMMON TO OBJECT \
; \ \
; !=======================================================!
Comment \
Object type data are parameters and such that are common to all
objects of the same type and are needed by all processors of the
objects, i.e. all .OTLPTs, no matter how many LPTSPLs are running
to process print requests. In other words, data that is common to
units, streams, etc. of the same object type, not settable on a
per unit or per stream basis.
Object type data are stored in ODB queue entries. ODB queue entries
are variable length (see ODB format definition). Each entry contains
the object type (.OTxxx) the data pertains to and a variable length
data following. The data area should be made of 1 or more "arg"
blocks, e.g. arg header word followed by data, header word containing
arg type and length of block. \
PHASE QEHVSZ ;THIS IS A QH.VAR QUEUE
ODB.OT:! BLOCK 1 ;OBJECT TYPE (.OTXXX)
ODB.AC:! BLOCK 1 ;NUMBER OF ARG BLOCKS IN DATA AREA
ODB.DA:! ;START OF OBJECT TYPE DATA
ODBSIZ:! ;MINIMUM SIZE OF ENTRY
DEPHASE
SUBTTL QNM -- Queue Name Data Block format
; !=======================================================!
; / /
; / THE QUEUE ENTRY HEADER /
; / /
; !=======================================================!
; ! QUEUE NAME IN 8-BIT ASCII !
; !-------------------------------------------------------!
; ! REQUESTED OBJECT BLOCK !
; !-------------------------------------------------------!
; ! FLAGS !
; !=======================================================!
PHASE QEHSIZ
QNM.QN:! BLOCK QNMLEN ;REMOTE QUEUE NAME
QNM.RO:! BLOCK ROBSIZ ;REQUESTED OBJECT BLOCK
QNM.FL:! BLOCK 1 ;FLAGS
QN.LCL==1B0 ;LOCAL QUEUE
QNMSIZ:! ;SIZE OF ENTRY
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
.QOKSY==66 ;KSYS MESSAGE (QUASAR TO BATCON)
.QOATO==67 ;PROCESS AUTO-FILE (QUASAR TO ORION)
.QOOLC==70 ;OPERATOR LOG FILE CLOSURE (QUASAR TO ORION)
.QOFAS==71 ;FAL STATUS UPDATE MSG (FAL TO QUASAR)
.QOEQR==72 ;EQ REQUEST (PRIV'ED USER TO QUASAR)
.QOEQA==73 ;EQ ANSWER (QUASAR TO PRIV'ED USER)
.QOODB==74 ;OBJECT TYPE DATA MSG (QUASAR TO PROCESSOR)
.QOBLR==75 ;BINARY QUEUE LIST REQUEST (USER TO QUASAR)
.QOBLA==76 ;BINARY QUEUE LIST ANSWER (QUASAR TO USER)
;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.
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
DEFLIM DLOG,5,1,2 ;DEFAULT LOG FILE NEEDED
DEFLIM OPTN,6,36,35 ;/BATOPN
;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
;Event queue parameters
DEFLIM FAIL,00,01,00 ;FAILSOFT ENTRY
DEFLIM ACTV,00,01,01 ;ACTIVE
DEFLIM INVS,00,01,02 ;INVISIBLE ENTRY
DEFLIM REQT,00,01,03 ;REQUEUE TIME ALREAY SET UP
DEFLIM NOFS,00,01,04 ;DON'T FAILSOFT ENTRY
DEFLIM TYPE,00,18,35 ;TYPE CODE (SEE EVENTS MACRO)
DEFLIM REPT,01,36,35 ;REPEAT TIMES (DAY,DAILY,WEEKLY, ETC.)
DEFLIM TEXT,02,36,35 ;ADDRESS OF REASON TEXT BLOCK
DEFLIM FILE,03,36,35 ;ADDRESS OF FILE DESCRIPTOR
DEFLIM SWIT,04,36,35 ;DEPENDENT EVENT SWITCHES
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 12 ;39 CHR 8-BIT ASCIZ /USER:"TEXT"
.EQBOX:! BLOCK 12 ;39 CHR 8-BIT ASCIZ /DISTRIBUTION:"TEXT"
.EQDEP:! ;ANOTHER NAME FOR THIS
.EQTXT:! BLOCK STSSIZ ;REASON TEXT FOR EVENT QUEUES
.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.CHG==1B16 ;[1161] PRIORITY WAS CHANGED BY QUASAR
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
.EQQNM==.EQDEP ;WHERE QUEUE NAME STRING IS STORED
.EQCHR==.EQQNM+QNMLEN ;WHERE CHARACTERISTICS STRING IS STORED
.EQFRM==.EQCHR+CHRSIZ ;WHERE LONG FORMS NAME STRING IS STORED
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
FNMLTH==^D30/4+1 ;LENGHT OF FONT NAME IN WORDS
.FPFNM:! BLOCK FNMLTH ;SPACE FOR A FONT NAME
FPXSIZ:! ;MAXIMUM FP AREA SIZE
PHASE 1 ;BIN QUEUE
.FPINF:! BLOCK 1 ;FP INFORMATION (SEE NEXT PAGE)
FP.RCF==77B5 ;RECORD FORMAT
FP.RCL==777B35 ;RECORD LENGTH (FOR FIXED FORMAT)
.FPRCD:! BLOCK 1 ;RECORD COUNT
DEPHASE
;PAPER FORMATS FOR LPT QUEUE (/PRINT)
%FPLAR==1 ;ARROW FORMAT
%FPLAS==2 ;ASCII FORMAT
%FPLOC==3 ;OCTAL FORMAT
%FPLSU==4 ;SUPPRESS FORMAT
%FPGRF==5 ;FILE HAS GRAPHICS COMMANDS
;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 !!!
LS.SUM==1B3 ;YOU WANT TO SEE ONLY A SUMMARY
LS.RMT==1B35 ;YOU WANT TO SEE REMOTE QUEUES TOO
;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)
.LSUTY==10 ;THE SIXBIT UNIT TYPE
.LSPID==11 ;THE PID OF THE REQUESTOR (ONLY SUPPLIED BY
; QUASAR TO THE NETWORK QUEUE CONTROLLER)
.LSQNM==12 ;THE NETWORK QUEUE NAME TO BE LISTED
; .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
LIQEVT==1B9 ;LIST THE EVENT QUEUE
LIQOUT==LIQLPT+LIQCDP+LIQPTP+LIQPLT ;LIST ALL OUTPUT QUEUES.
LIQALL==LIQOUT+LIQBAT+LIQRET+LIQMNT+LIQEVT ;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 ORIGINALLY 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 DEFINED 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's start time)
X (QJOB,QUASAR's 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,Deferred SPOOL messages received)
X (MCAN,COUNTANSWER messages sent)
X (SLCD,Scheduler loop countdowns)
X (DEAD,MDA deadlock avoidance calls)
X (DFAL,MDA 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)
X (IPCE,Resend queue expirations)
X (DTAM,DECtape mounts)
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
SUFLAT==1B1 ;BIT FOR LAT SERVICE
SUFSRV==1B2 ;BIT FOR SERVER STREAM
SUFLP2==3B5 ;LP20 SIMULATION
SUFINT==1B6 ;INTERNAL SETUP/SHUTDOWN
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.UT:! BLOCK 1 ;SIXBIT UNIT TYPE (I.E. 'LN01', ETC.)
SUP.CN:! BLOCK 7 ;DEVICE CONDITIONS/CHARACTERISTICS
;SET BY THE OPERATOR
SUP.ST:! BLOCK 1 ;NETWORK ('NETSTS') STATUS/FLAG BITS
SUP.MT:! BLOCK 1 ;MAGTAPE CHARACTERISTICS
SUP.VS:! BLOCK VSNLEN ;MAGTAPE VOLUME-SET NAME
SUP.LN:! BLOCK LPTNLN ;LAT SERVER/SERVICE/PORT
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 !
; !-------------------------------------------------------!
; ! Attribute Flags !
; !=======================================================!
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.UT:! BLOCK 1 ;SIXBIT UNIT TYPE
RSU.PN:! BLOCK 1 ;PROTOTYPE NODE NAME (SIXBIT)
RSU.FL:! BLOCK 1 ;EXTRA ATTRIBUTE FLAGS
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:!
;OPTIONAL DATA WHICH MAY BE INCLUDED IN THE STATUS MESSAGE
STU.PR:! BLOCK OBPRSZ ;DEPENDENT PARAMETERS
STU.ST:! BLOCK STSSIZ ;CURRENT JOB STATUS IN ASCIZ
STU.MX:! ;MAXIMUM SIZE
DEPHASE
SUBTTL TAPE DEASSIGN/DISMOUNT MESSAGE (IPCC FUNCTION 34)
; !=======================================================!
; ! LENGTH ! 34 !
; !-------------------------------------------------------!
; ! SIXBIT DEVICE NAME !
; !-------------------------------------------------------!
; ! DEVICE TYPE !
; !-------------------------------------------------------!
; ! JOB NUMBER !
; !=======================================================!
; This message consists of at least three words of common
; deassign data. For DECtapes and magtapes, additional
; words follow containing device specific data. These
; words begin at .TDMIN (the minimum length of the deassign
; message) and occupy only as many words as are required to
; contain data to be storred in the "MOUNT" (dismount) IPCF
; message sent to the Accounting Daemon.
PHASE 0 ;[1165] COMMON DEASSIGN DATA
.TDHDR:! BLOCK 1 ;HEADER
.TDDEV:! BLOCK 1 ;SIXBIT DEVICE NAME
.TDDVT:! BLOCK 1 ;DEVICE TYPE
TDD.DV==777777 ;[1234] DEVICE TYPE
TDD.FL==777777,,0 ;[1234] FLAGS SET BY MONITOR
TD.VSW==400000 ;[1234] VOLUME SWITCH STATS
.TDJBN:! BLOCK 1 ;USER JOB NUMBER
.TDMIN:! ;[1165] MINIMUM SIZE OF MESSAGE
DEPHASE ;[1165] END COMMON DEASSIGN DATA
PHASE .TDMIN ;[1165] DECTAPE SPECIFIC DATA
.TDDTR:! BLOCK 1 ;[1165] READS
.TDDTW:! BLOCK 1 ;[1165] WRITES
DEPHASE ;[1165] END DECTAPE SPECIFIC DATA
PHASE .TDMIN ;[1165] MAGTAPE SPECIFIC DATA
.TDCRD:! BLOCK 1 ;[1165] # CHARS READ SINCE UNLOAD
.TDCWR:! BLOCK 1 ;[1165] # CHARS WRITTEN SINCE UNLOAD
.TDSRE:! BLOCK 1 ;[1165] SOFT READ ERRORS
.TDHRE:! BLOCK 1 ;[1165] HARD READ ERRORS
.TDSWE:! BLOCK 1 ;[1165] SOFT WRITE ERRORS
.TDHWE:! BLOCK 1 ;[1165] HARD WRITE ERRORS
DEPHASE ;[1165] END MAGTAPE SPECIFIC DATA
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 \
; \ \
; !-------------------------------------------------------!
.QCAST==60 ;OPERATOR INTERVENTION BLOCK (BATCH)
;/ASSIST: SWITCH FUNCTIONALITY
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCAST !
; !-------------------------------------------------------!
; ! /ASSIST:YES .OPINY==1, /ASSIST:NO .OPINN==2 !
; !-------------------------------------------------------!
.QCPRC==61 ;IBMCOM PROCESSING NODE BLOCK
;/PROCESSING SWITCH FUNCTIONALITY
; !-------------------------------------------------------!
; ! BLOCK LENGTH (2) ! .QCPRC !
; !-------------------------------------------------------!
; ! SIXBIT NODE NAME OR OCTAL NUMBER !
; !-------------------------------------------------------!
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 magtape volume status block (.TLSTA)
.TLSTA==12 ;MAGTAPE STATUS BLOCK TYPE
; !-------------------------------------------------------!
; ! 2 ! .TLSTA !
; !-------------------------------------------------------!
; ! SIXBIT VOLUME ID !
; !=======================================================!
PHASE 0
.TLVOL:! BLOCK 1 ;SIXBIT VOLUME ID
.TLSIZ:! ;MAGTAPE STATUS BLOCK SIZE
DEPHASE
;The DECtape volume status block (.DLSTA)
.DLSTA==13 ;DECTAPE STATUS BLOCK TYPE
; !-------------------------------------------------------!
; ! 2 ! .DLSTA !
; !-------------------------------------------------------!
; ! SIXBIT REELID !
; !=======================================================!
PHASE 0
.DLRID:! BLOCK 1 ;SIXBIT REELID
.DLSIZ:! ;DECTAPE 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
%RLABO==4 ;[1162] PULSAR ABORTING VOL SWITCH
.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==77000 ;[1215] Kontroller type
CVL.UT==70 ;Unit type
CVL.CL==7 ;Class (?)
.CVLLN:! ;Length of block
DEPHASE
SUBTTL Internal catalog cache structure
; Volume-set identifier block
PHASE 0
.CQVSN:! BLOCK VSNSIZ ;VOLUME-SET NAME (7-BIT ASCIZ)
.CQFLG:! BLOCK 1 ;FLAGS
CQ.USE==777777B17 ;CATALOG CACHE ENTRY USE COUNT
CQ.TYP==7B32 ;VOLUME-SET TYPE
CQ.BLD==7B35 ;BUILD CODE
.CQCAT==0 ;FROM [SYSTEM]CATALOG
.CQQSR==1 ;CREATED BY QUASAR
.CQNVL:! BLOCK 1 ;NUMBER OF VOLUMES
.CQVUS:! BLOCK 1 ;OWNER PPN (USER)
.CQVNM:! BLOCK NAMSIZ ;8-BIT 39 CHARACTER ASCIZ NAME
.CQVLO:! BLOCK LOCSIZ ;8-BIT 19 CHARACTER ASCIZ LOCATION TEXT
.CQVSC:! BLOCK 1 ;VOLUME-SET CHARACTERISTICS
.CQVSL:! ;VOLUME-SET BLOCK LENGTH
DEPHASE
; Volume Block
PHASE 0
.CQVID:! BLOCK 1 ;VOLUME ID (SIXBIT)
.CQRSN:! BLOCK 1 ;VOLUME RESOURCE NUMBER
.CQVLL:! ;VOLUME 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==MR.JOB-BA%JOB ;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 THE FAL STATUS UPDATE MESSAGE - FUNCTION 71
; !=======================================================!
; \ \
; \ THE MESSAGE HEADER \
; \ \
; !=======================================================!
; \ \
; \ FAL STREAM OBJECT BLOCK \
; \ \
; !=======================================================!
; ! FAL STREAM STATUS CODE !
; !=======================================================!
; \ \
; \ OBJECT BLOCK PARAMETER WORDS \
; \ \
; !=======================================================!
; \ \
; \ FAL STREAM STATUS (ASCIZ) \
; \ \
; !=======================================================!
PHASE STU.SZ ;STANDARD MESSAGE HEADER
;FAL STATUS UPDATE MESSAGE IS REGULAR (.QOSTU) STATUS UPDATE MESSAGE
;WITH OBJECT BLOCK PARAMETER WORDS AND STATUS STRING WORDS ADDED.
FAL.PR:! BLOCK OBPRSZ ;DEPENDENT PARAMETERS
FAL.ST:! BLOCK STSSIZ ;CURRENT JOB STATUS IN ASCIZ
FAL.SZ:!
DEPHASE
SUBTTL Binary list request message (.QOBLR)
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
; ! QUEUE !
; !=======================================================!
PHASE MSHSIZ ;APPEND TO THE MESSAGE HEADER
LIS.QU:! BLOCK 1 ;THE QUEUE(S) TO LIST
LIS.SZ:! ;SIZE OF THE BINARY LIST MESSAGE
;LIS.QU contains the same bits as the .LSQUE block in the ASCII
;list message.
DEPHASE
SUBTTL Binary list answer message (.QOBLA)
; !=======================================================!
; / /
; / THE MESSAGE HEADER /
; / /
; !=======================================================!
;A single LIST message may generate more than one LISTANSWER response.
;The LST.MS word of the LISTANSWER message is used to indicate how many
;responses were sent. The RH of this word is a sequenced count of the
;number of LISTANSWER pages sent. The sign bit is set for the last of
;the LISTANSWER responses.
PHASE MSHSIZ ;APPEND TO THE MESSAGE HEADER
LST.MS:! BLOCK 1 ;MESSAGE SEQUENCE NUMBER
LST.FT:! ;THE FIRST ANSWER IN THIS BLOCK
;Each answer is in QE format. If .QECRE is zero the last entry in
;the page was the last QE to be listed.
LST.NU==<PAGSIZ-LST.FT>/QNTSIZ ;NUMBER OF ANSWERS PER PAGE
DEPHASE
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.
%RBBAT==1 ;BATCH JOB (INP, LPT, PLT, ...)
%RBDEL==2 ;DELETED FILES
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 UQN,<Unknown Queue Name Specified>,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 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 APE,<Already pending Event Queue entry>,MF.FAT
X ASN,<Ambiguous structure name>,MF.FAT ;[1226]
X ISN,<Invalid structure name>,MF.FAT ;[1226]
X GDN,<Generic devices may not be mounted>,MF.FAT ;[1226]
X PLD,<Pathological name invalid>,MF.FAT ;[1226]
X IER,<Invalid EQ request message format>,MF.FAT
X MRD,<Multi-reel DECtape volume-sets are not permitted>,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 Queue create-related event defintions
; The following bits are used during event creation by the queue
; specific code in QSRSCH (the defaulting routine).
EV.INT==1B0 ;INTERNAL EVENT TYPE
EV.CHK==1B1 ;ALWAYS CHECK EACH TIME THROUGH SCHEDULER
SUBTTL Definition of the Event type codes
; Arguments used are
; X 'ABRV' , 'SIXBIT NAME', 'SCHED' , 'RELEASE' , 'BITS' , 'TEXT'
DEFINE EVENTS,<
X TMR,<TIMER >,.POPJ,.POPJ,<EV.INT>,<> ;;RANDOM TIMER
X KSY,<KSYS >,I$SKSY,I$KKSY,<EV.CHK>,<Timesharing will end> ;;KSYS
X SPL,<SPOOL >,.POPJ,.POPJ,<EV.INT>,<> ;;SPOOLER CREATION
X ATO,<TAKFIL>,Q$EVTR,.POPJ,<0>,<Time-of-day OPR command file> ;;TIME-OF-DAY AUTO FILE
X USG,<USGFIL>,I$UFIL,.POPJ,<0>,<Usage file closure> ;;SET USAGE FILE CLOSURE
X BIL,<BILCLS>,I$UBIL,.POPJ,<0>,<Usage billing closure> ;;SET BILLING CLOSURE
X OPR,<OPRFIL>,I$OCLS,.POPJ,<0>,<ORION log file closure> ;;SET OPERATOR LOG FILE CLOSURE
X LCK,<FSLOCK>,.POPJ,.POPJ,<EV.INT>,<> ;;FILE STRUCTURE LOCK/UNLOCK
X IGN,<IGNORE>,.POPJ,.POPJ,<EV.INT>,<> ;;IGNORE OBJECT REQUEST
X AFT,<AFTER >,.POPJ,.POPJ,<EV.INT>,<> ;;/AFTER REQUEST
X NLC,<LOCKED>,.POPJ,.POPJ,<EV.INT>,<> ;;LOCKED STR COUNTDOWN
> ;END EVENTS MACRO
ZZ==0
DEFINE X (ABV,NAME,SCHED,KILL,BITS,TEXT),<.EV'ABV==<ZZ==ZZ+1>>
EVENTS
.EVMAX==ZZ ;HIGHEST LEGAL EVENT
SUBTTL Definition of the Known Queues
;ARGUMENTS USED ARE
; A - SIXBIT QUEUE NAME
; B - ENTRY SIZE
; C - QUEUE TYPE
; D - FLAGS
; E - SCHEDULER DISPATCH VECTOR
; F - LISTING FLAG
; G - OBJECT TYPE (ZERO IF NONE)
; H - QUEUE DEPENDENT LISTING ROUTINE
; I - SUMMARY TYPEOUT ROUTINE
; J - ASCIZ QUEUE NAME FOR LISTINGS
; K - ASCIZ "QUANTITY" NAME (I.E. EVENTS, JOBS, ETC.)
; L - ASCIZ "QUANTITY" TYPE (I.E. PAGES, REQUESTS, RUNTIME, ETC.)
; M - ASCIZ NOTIFICATION TEXT
DEFINE QUEUES,<
LSTOF.
X EVT,QNTSIZ,.QHTEV,QH.IKS,S$EVT,LIQEVT,.OTEVT,DEPEVT,0,<Event>,<event>,<>,<>
X INP,QNTSIZ,.QHTIP,0,S$INPT,LIQBAT,.OTBAT,DEPBAT,LIST.T,<Batch>,<job>,<runtime>,<executing>
X LPT,QNTSIZ,.QHTOU,0,S$LPT,LIQLPT,.OTLPT,DEPOUT,LIST.D,<Printer>,<job>,<pages>,<printing>
X PTP,QNTSIZ,.QHTOU,0,S$PTP,LIQPTP,.OTPTP,DEPOUT,LIST.D,<Paper tape punch>,<job>,<feet>,<punching>
X CDP,QNTSIZ,.QHTOU,0,S$CDP,LIQCDP,.OTCDP,DEPOUT,LIST.D,<Card punch>,<job>,<cards>,<punching>
X PLT,QNTSIZ,.QHTOU,0,S$PLT,LIQPLT,.OTPLT,DEPOUT,LIST.D,<Plotter>,<job>,<minutes>,<plotting>
X RET,QNTSIZ,.QHTAR,QH.INV,S$RET,LIQRET,.OTRET,DEPRET,LIST.D,<File retrieval>,<requests>,<>,<retrieving>
X NOT,QNTSIZ,.QHTAR,QH.INV,S$NOT,0,0,0,0,<>,<>,<>,<>
X BIN,QNTSIZ,.QHTIP,QH.INV,S$BIN,0,.OTBIN,0,0,<Interpreter>,<jobs>,<decks>,<interpreting>
X DBM,QNTSIZ,.QHFRR,QH.IKS!QH.INV,S$DBM,0,.OTDBM,0,0,<>,<>,<>,<>
X RDR,QNTSIZ,.QHFRR,0,S$RDR,0,.OTRDR,0,0,<>,<>,<>,<>
X SPL,SPLSIZ,.QHTQS,QH.IKS!QH.INV,0,0,0,0,0,<>,<>,<>,<>
X PSB,PSBSIZ,.QHTQS,QH.IKS!QH.INV,0,0,0,0,0,<>,<>,<>,<>
X OBJ,OBJSIZ,.QHTQS,QH.IKS!QH.INV,0,0,0,0,0,<>,<>,<>,<>
X USE,USESIZ,.QHTQS,QH.IKS!QH.INV,0,0,0,0,0,<>,<>,<>,<>
X STR,STRSIZ,.QHTQS,QH.IKS!QH.INV,0,0,0,0,0,<>,<>,<>,<>
X NET,NETSIZ,.QHTQS,QH.IKS!QH.INV,0,0,.OTNCU,0,0,<>,<>,<>,<>
IFN FTINFO,<
X PID,PIDSIZ,.QHTQS,QH.IKS!QH.INV!QH.VAR,0,0,0,0,0,<>,<>,<>,<>
>
X IPC,IPCSIZ,.QHTQS,QH.IKS!QH.INV!QH.VAR,0,0,0,0,0,<>,<>,<>,<>
X FAL,QNTSIZ,.QHFRR,0,S$FAL,0,.OTFAL,0,0,<>,<>,<>,<>
X ODB,ODBSIZ,.QHTQS,QH.IKS!QH.INV!QH.VAR,0,0,0,0,0,<>,<>,<>,<>
X QNM,QNMSIZ,.QHTQS,QH.IKS!QH.INV!QH.OAV,S$NQC,0,.OTNQC,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
X EVT
> ;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,G,H,I,J,K,L,M),<
IFDIF <E><0>,<GLOB (E)>
IFDIF <H><0>,<GLOB (H)>
IFDIF <I><0>,<GLOB (I)>
HDR'A:: INSVL.(<SIXBIT\ A\>,QH.NAM)!INSVL.(C,QH.TYP)!D
EXP 0
XWD E,INSVL.(B,QH.SIZ)
EXP F
EXP G
EXP H
EXP I
EXP [ASCIZ \J\]
EXP [ASCIZ \K\]
EXP [ASCIZ \L\]
EXP [ASCIZ \M\]
> ;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 !
; !-------------------------------------------------------!
.TMDRD==0 ;Default
.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
MR.JOB==177,,-1 ;'JOB' NUMBER FIELD
BA%JOB==1B11 ;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.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
.VSPID:! BLOCK 1 ;[1173] REQUESTORS PID
.VSACK:! BLOCK 1 ;[1173] USER ACK CODE
.VSRFL:! BLOCK 1 ;[1173] VSL MOUNT REQUEST FLAG'S
;[1173] FIELDS ARE SAME AS IN .MRFLG
;[1173] MR.ACK, MR.WAT, ETC.
;[1173] ** DON'T DEFINE NEW FIELDS HERE!! **
.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
VS.ALB==1B26 ;[1162] VOL SWITCH ABORTED BY PULSAR
VS.INI==1B27 ;[1164] REINIT IN PROGRESS
VS.FDV==1B28 ;FOREIGN (UNIT RECORD) DEVICE
VS.MWL==1B29 ;MOUNT REQUEST WRITE-LOCK STATUS (IN CASE
; CATALOG SEARCH NEEDED)
VS.MWE==1B30 ;MOUNT REQUEST WRITE-ENABLE STATUS
.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.DPR==1B33 ;[1164] PROTECTION IS TO BE DEFAULTED
VS.DDN==1B34 ;DENSITY STATUS IS DEFAULTED
VS.DTK==1B35 ;TRACK STATUS IS DEFAULTED
.VSRID:! BLOCK 1 ;VOLUME SET REQUEST ID
.VSLNK:! BLOCK 1 ;VOLUME SET REQUEST LINK
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.PRE==0,,000777 ;[1162] OFFSET TO THE PREVIOUS VOLUME
VS.CNT==-1,,0 ;VOLUME COUNT
.VSVOL:! BLOCK 1 ;POINTERS TO THE VOLUME LIST
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
%STAIN==4 ;[1164] VOLUME IS INITIALIZING
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.FRC==1B19 ;[1217] VOLUME 'FORCE' MOUNTED
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.AVA==1B1 ;UNIT IS AVAILABLE FOR USE BY MDA
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==37B18 ;UNIT CONTROLLER TYPE
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
UC.VSW==1B35 ;UCB IS IN VOLUME SWITCH STATE
.UCBS1:! BLOCK 1 ;[1217] YES, A SECOND WORD FOR STATUS
U1.FRC==1B0 ;[1217] 'FORCED MOUNT'. VOL LINKED IS
;[1217] BEING MOUNTED BEHIND PULSAR'S BACK
.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
.UCBS0==.UCBST ;[1217] FOR SYMMETRY
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
;The first entry, the "header", in the 'A' matrix defines the length of
; the matrix in words, the number of resources currently defined,
; and the maximum number of resources that can be kept in this
; data structure.
; !=======================================================!
; ! Length ! Current ! Maximum !
; !-------------------------------------------------------!
; ! !
; \ \
; \ Spare header words \
; \ \
; ! !
; !=======================================================!
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
;All other entries have the form:
; !=======================================================!
; ! Flags ! Address of ASCIZ string !
; !-------------------------------------------------------!
; ! Status bits !
; !-------------------------------------------------------!
; ! Available ! Allocated ! Claimed !
; !=======================================================!
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 ;ADDRESS 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
;The entries in the 'B' (allocated) matrix and the 'C' (owned) matrix
; have the form:
; !=======================================================!
; ! Job number !
; !-------------------------------------------------------!
; ! Flags ! Number of resources !
; !-------------------------------------------------------!
; ! !
; \ \
; \ Use counts \
; \ \
; ! !
; !=======================================================!
PHASE 0
.SMJOB:! BLOCK 1 ;USER'S JOB NUMBER 400000+RID FOR BATCH
.SMFLG:! BLOCK 1 ;ENTRY FLAG WORD
SM.IGN==1B0 ;IGNORE THIS ENTRY
SM.CNT==0,,-1 ;RESOURCE COUNT
.SMRES==.-1 ;RESOURCE # OFFSET (WITH BASE OF 1)
BLOCK 2 ;SPACE FOR 2 RESOURCE COUNTS
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