UNIVER QSRMAC -- Parameter File for QUASAR SUBTTL Larry Samberg - Chuck O'Toole /CER 13 Jan 77 ;***Copyright (C) 1974, 1975, 1976, 1977, Digital Equipment Corp., Maynard, MA.*** SEARCH GALCNF ;GET CONFIGURATION DATA SEARCH SBSMAC ;GET SUB-SYSTEMS MACROS SEARCH MACTEN ;SEARCH MACRO DEFINITION FILE IFN FTUUOS, SEARCH UUOSYM ;GET TOPS10-UUO SYMBOLS > ;END OF IFN FTUUOS IFN FTJSYS, SEARCH MONSYM ;GET TOPS20-JSYS SYMBOLS > ;END OF IFN FTJSYS SALL ;SUPPRESS MACRO EXPANSIONS %%.QSR==33 ;MAJOR CHANGE NUMBER OF QSRMAC QSRVER==2 ;MAJOR VERSION NUMBER QSRMIN==0 ;MINOR VERSION NUMBER QSRWHO==0 ;LAST EDITOR QSREDT==57 ;EDIT NUMBER SUBTTL Table of Contents ; TABLE OF CONTENTS FOR QSRMAC ; ; ; SECTION PAGE ; 1. Table of Contents......................................... 2 ; 2. Revision History.......................................... 3 ; 3. Accumulator Definitions................................... 10 ; 4. Symbols derived from GALCNF............................... 11 ; 5. Changable System Parameters............................... 12 ; 6. Abbreviations Used in QUASAR-10........................... 13 ; 7. PT -- Page Table Definitions........................... 14 ; 8. IDS -- Internal Device Specifier........................ 15 ; 9. FD -- File Descriptor................................... 16 ; 10. RDB -- Request Descriptor Block......................... 18 ; 11. QH -- Queue Header Definitions......................... 20 ; 12. QE -- Queue Entry Definitions.......................... 21 ; 13. PSB -- Program Status Block............................. 23 ; 14. SPL -- Spool Queue Definition........................... 25 ; 15. CSM -- Canonical SPOOL Message.......................... 26 ; 16. CLM -- Canonical LOGOUT Message......................... 27 ; 17. The Messages.............................................. 28 ; 18. MS -- Message Header Definition........................ 29 ; 19. The HELLO Message -- Function 1........................... 30 ; 20. The RELEASE Message -- Function 2......................... 31 ; 21. The CHECKPOINT and REQUEUE messages -- Functions 3 and 4.. 32 ; 22. The NEXTJOB and CREATE Messages -- Functions 5 and 7...... 33 ; 23. EQ -- The External Queue Entry......................... 34 ; 24. The ABORT Message -- Function 6........................... 40 ; 25. The LIST Message -- Function 10........................... 41 ; 26. The MODIFY Message -- Function 11......................... 42 ; 27. The KILL Message -- Function 12........................... 44 ; 28. The LIST ANSWER Message -- Function 13.................... 45 ; 29. The TEXT Message -- Function 14......................... 47 ; 30. The REQUEST FOR CHECKPOINT Message -- Function 15....... 48 ; 31. The DEFER Message -- Function 16........................ 49 ; 32. The ROUTE Message -- Function 17........................ 50 ; 33. Event Counters............................................ 51 ; 34. The COUNT Message -- Function 20........................ 53 ; 35. The COUNTANSWER Message -- Function 21.................. 54 ; 36. The SPOOL Message - Function 26 (sent by IPCC)............ 55 ; 37. The LOGOUT Message - Function 27 (sent by IPCC)........... 57 ; 38. IPCF Parameters........................................... 58 ; 39. Common Parameters......................................... 59 ; 40. Operating System Dependent Macros......................... 60 ; 41. Failsoft System Definitions............................... 62 ; 42. QUASAR Fatal Error Codes.................................. 63 ; 43. Definition of the Known Queues............................ 64 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$ROUTE 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. \ ;End Of Revision History SUBTTL Accumulator Definitions ;ACCUMULATORS 0 THRU 12, AND 17 ARE DEFINED IN SBSMAC AP==13 ;ARGUMENTS FOR ALL M$xxxx ROUTINES E==14 ;QUEUE ENTRY POINTER H==15 ;QUEUE HEADER POINTER M==16 ;MESSAGE POINTER SUBTTL Symbols derived from GALCNF ; DEFINE FEATURE TESTS SO THAT EACH MODULE NEED ONLY SEARCH QSRMAC XP FTUUOS,FTUUOS ; ON = BUILDING GALAXY-10 XP FTJSYS,FTJSYS ; ON = BUILDING GALAXY-20 XP FTRQUE,FTRQUE ; ON = KEEP A REDUNDANT MASTER QUEUE XP FTSPLIT,FTSPLIT ; ON = SPLIT REQUESTS BY STRUCTURE ; DEFINE BATCH JOB PARAMETERS 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 INPNUM,G.IMXJ ;MAXIMUM NUMBER OF CONCURRENT BATCH JOBS ; DEFINE SPOOLING SYSTEM PARAMETERS XP SPLLIM,G.SBIA ;BIAS FOR SPOOLED REQUESTS XP SPLPRI,G.SPRI ;PRIORITY FOR SPOOLED REQUESTS XP SPLMBC,G.NMBC ;NUMBER OF MINUTES BETWEEN CHECKPOINTS XP FRMNUM,G.DNFS ;FORMS TO REMEMBER DURING SCHEDULING XP FRMTHR,G.AFCT ;AUTOMATIC FORMS CHANGE THRESHOLD XP FRMNOR,G.DNOR ;NAME OF "NORMAL" FORMS XP FRMUNI,G.DNUC ;NUMBER OF UNIQUE CHARACTERS IN THE NAME XP FRMKSY,G.SAFC ;MINS BEFORE KSYS TO STOP AUTO FORMS CHANGE FRMSK1==MASK.(6*FRMUNI,6*FRMUNI-1) ;ANDX, LOAD MASK FRMSK2==MASK.(^D36-6*FRMUNI,^D35) ;TXZ STYLE MASK XP LPTFCT,G.FLPT ;FACTOR FOR BLOCKS TO PAGES XP CDPFCT,G.FCDP ; " TO CARDS XP PLTFCT,G.FPLT ; " TO PLOTTER MINUTES XP PTPFCT,G.FPTP ; " TO FEET ;FAILSOFT SYSTEM PARAMETERS XP FSSSTR,G.QSTR ;FILE-STRUCTURE FOR MASTER QUEUES SUBTTL Changable System Parameters DEFINE PARAM(SYM,VAL,MIN,MAX),< IFDEF SYM,< IFL , IFG , > ;END IFDEF SYM IFNDEF SYM, > ;END DEFINE PARAM PARAM(EQCKSZ,5,5,200) ;SIZE OF REQUEST CHECKPOINT AREA SUBTTL Abbreviations Used in QUASAR-10 COMMENT \ Abbreviation Meaning ------------ ------- ITN Internal Task Name PDB Packet Data Block (for IPCF) PSB Program Status Block RQP Relative Queue Pointer NJP Number of Jobs being Processed DPA Disk Page Address IDS Internal Device Specifier CSM Canonical SPOOL Message CLM Canonical LOGOUT Message RDB Request Descriptor Block \ SUBTTL PT -- Page Table Definitions ; !-------------------------------------------------------! ; ! LINK TO NEXT ! FLAG BITS ! COUNT OF FREE CELLS ! ; ! 0 IF NONE ! ! REMAINING THIS PAGE ! ; !-------------------------------------------------------! PT.LNK==777B8 ;LINK TO NEXT PAGE FOR THIS QUEUE PT.USE==1B9 ;PAGE IN USE PT.WRK==1B10 ;PAGE IS IN WORKING SET PT.ADR==1B11 ;PAGE IS ADDRESSABLE PT.CNT==0,,-1 ;FREE CELL COUNT ;THE STATE OF A PAGE CAN BE DETERMINED BY THE FOLLOWING FLAG BIT SETTINGS ; PT.USE PT.WRK PT.ADR MEANING ; 0 0 0 DESTROYED PAGE (LOWEST RE-USE) ; 0 0 1 CREATED (HIGH DESTROY, MEDIUM RE-USE) ; 0 1 0 IMPOSSIBLE ; 0 1 1 AVAILABLE (HIGHEST RE-USE, HIGH PAGE OUT, LOW DESTROY) ; 1 0 0 TEMP STATE WHILE BEING CREATED OR IPCF'ed AROUND ; 1 0 1 PAGED OUT (PAGE IN ON PAGE FAULT) ; 1 1 0 IMPOSSIBLE ; 1 1 1 ACTIVLY USED (LOW PAGE OUT) SUBTTL IDS -- Internal Device Specifier ; !=======================================================! ; ! GENERIC DEVICE NAME ! FLAGS !STATION !UNIT! ; !=======================================================! DV.GDN==-1,,0 ;GENERIC DEVICE NAME DV.DMD==0,,-1 ;DEVICE MODIFIERS DV.NUL==1B24 ;NULL UNIT (GENERIC SPECIFICATION) DV.LLP==1B25 ;LOWER CASE LPT DV.LUP==1B26 ;UPPER CASE LPT DV.STN==77B32 ;STATION NUMBER DV.UTN==7B35 ;UNIT NUMBER SUBTTL FD -- File Descriptor ;ANY TIME A FILE-SPECIFICATION MUST BE PASSED AS A DATA ITEM ; BETWEEN SUBROUTINES OR WITHIN MESSAGES AND DATA-STRUCTURES, ; IT IS REPRESENTED BY A "FILE DESCRIPTOR" OR "FD". IFN FTUUOS,< ;FILE DESCRIPTOR FOR TOPS10 ; !=======================================================! ; ! STRUCTURE CONTAINING THE FILE ! ; !-------------------------------------------------------! ; ! FILE NAME ! ; !-------------------------------------------------------! ; ! EXTENSION ! ; !-------------------------------------------------------! ; ! [P,PN] ! ; !=======================================================! ; ! ! ; ! SFD PATH FOR THE FILE ! ; ! THESE WORDS ARE OPTIONAL ! ; ! AND CAN BE OF LENGTH 0 TO 5 ! ; ! ! ; !=======================================================! PHASE 0 .FDSTR:! BLOCK 1 ;STRUCTURE CONTAINING THE FILE .FDNAM:! BLOCK 1 ;THE FILE NAME .FDEXT:! BLOCK 1 ;THE EXTENSION .FDPPN:! BLOCK 1 ;THE OWNER OF THE FILE FDMSIZ:! ;MINUMUM SIZE OF A FILE DESCRIPTOR .FDPAT:! BLOCK 5 ;PATH (OPTIONAL AND FROM 0 TO 5 WORDS) FDXSIZ:! ;MAXIMUM FD AREA SIZE DEPHASE > ;END OF IFN FTUUOS ;CONTINUED ON FOLLOWING PAGE IFN FTJSYS,< ;FILE DESCRIPTOR FOR TOPS20 ; !=======================================================! ; / / ; / / ; / THE FILE DESCRIPTOR ON TOPS20 IS AN ASCIZ STRING / ; / OF VARIABLE LENGTH AND READY TO BE GTJFN'ED / ; / / ; / / ; !=======================================================! PHASE 0 .FDSTG:! BLOCK 1 ;ASCIZ STRING FOR GTJFN/OPENF SEQUENCE FDMSIZ:! ;MINIMUM SIZE OF A FILE DESCRIPTOR FDXSIZ==^D150/^D5 ;RESERVE ROOM FOR 150 CHARACTERS DEPHASE > ;END OF IFN FTJSYS 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 ! ; !-------------------------------------------------------! ; ! ! ; ! ! ; ; ; ; ! ----- TOPS10 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! OWNER IDENTIFICATION (PPN) ! ; !-------------------------------------------------------! ; ! OWNER ID MASK ! ; !-------------------------------------------------------! ; ; ; ; ! ----- TOPS20 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! ! ; \ SPECIFICATION OF REQUEST OWNER \ ; \ \ ; \ \ ; ! ! ; !-------------------------------------------------------! ;DEFINITIONS FOLLOW ON NEXT PAGE PHASE 0 .RDBJB:! BLOCK 1 ;JOB NAME (SIXBIT) .RDBJM:! BLOCK 1 ;JOB NAME MASK .RDBES:! BLOCK 1 ;EXTERNAL SEQUENCE NUMBER IFN FTUUOS,< .RDBOI:! BLOCK 1 ;OWNER ID .RDBOM:! BLOCK 1 ;OWNER ID MASK > ;END IFN FTUUOS IFN FTJSYS,< .RDBOW:! BLOCK 10 ;REQUEST OWNER SPEC > ;END IFN FTJSYS RDBSIZ:! DEPHASE SUBTTL QH -- Queue Header Definitions ; !=======================================================! ; ! QUEUE NAME ! FLAGS ! QUEUE TYPE ! ; ! 3 SIXBIT CHARACTERS ! ! ! ; !-------------------------------------------------------! ; ! POINTER TO LAST ! POINTER TO FIRST ! ; ! ENTRY IN THIS QUEUE ! ENTRY IN THIS QUEUE ! ; !-------------------------------------------------------! ; ! BASE OF SCHEDULING ! SIZE OF AN !# OF LIST PGS! ; ! AND LINKING ALGORITHM ! ENTRY ! LAST TIME ! ; !=======================================================! PHASE 0 .QHTYP:! BLOCK 1 ;QUEUE TYPE WORD QH.NAM==-1,,0 ;3 CHARACTER QUE NAME QH.FLG==777B26 ;FLAGS QH.IPC==1B18 ;QUEUE FOR IPCF, ADD IN G$MPS TO SIZE QH.LST==1B19 ;QUEUE CAN BE LISTED 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 .QHLNK:! BLOCK 1 ;LINK WORD QH.PTL==-1,,0 ;POINTER TO LAST ENTRY QH.PTF==0,,-1 ;POINTER TO FIRST ENTRY .QHPAG:! BLOCK 1 ;STORAGE INFORMATION QH.SCH==-1,,0 ;SCHEDULER ENTRY VECTOR SCHLNK==0 ; LINK IN SCHSCH==1 ; SCHEDULE SCHDEF==2 ; FILL IN DEFAULTS FOR CREATE SCHMOD==3 ; PREFORM QUEUE DEPENDENT MODIFY QH.SIZ==777B26 ;SIZE OF EACH ENTRY QH.NTL==777 ;LAST # OF PAGES NEEDED TO LIST THIS QUEUE QHSIZE:! ;SIZE OF A QUEUE HEADER DEPHASE SUBTTL QE -- Queue Entry Definitions ; !=======================================================! ; ! LINK TO PREVIOUS ! LINK TO NEXT ! ; ! 0 IF THIS IS THE FIRST ! 0 IF THIS IS THE LAST ! ; !=======================================================! ; ! CREATION TIME OF ENTRY (INTERNAL DATE/TIME FORMAT) ! ; !-------------------------------------------------------! ; ! PID PROCESSING THIS ENTRY (0 IF NOT IN USE) ! ; !-------------------------------------------------------! ; ! DEVICE PROCESSING THIS ENTRY ! ; !-------------------------------------------------------! ; ! INTERNAL TASK NAME ! ; !-------------------------------------------------------! ; ! FILE-STRUCTURE CONTAINING REQUEST ! ; !-------------------------------------------------------! ; ! ENTRANCE PRIORITY ! ; !-------------------------------------------------------! ; ! EXTERNAL SEQUENCE NUMBER ! FLAGS !PRIORITY! ; !-------------------------------------------------------! ; ! REQUEST PROTECTION ! DEVICE MODIFIERS ! ; !-------------------------------------------------------! ; ! OWNER'S IDENTIFICATION ! ; !-------------------------------------------------------! ; ! EXTERNAL JOB NAME ! ; !-------------------------------------------------------! ; ! DEADLINE PARAMETER (INTERNAL DATE/TIME FORMAT) ! ; !-------------------------------------------------------! ; ! ! ; ! REQUEST LIMIT INFORMATION ! ; ! CONTENTS ARE QUEUE DEPENDENT ! ; ! 5 WORDS ! ; ! ! ; !-------------------------------------------------------! ; ! DISK PAGE ADDRESS ! RQP ! ! ; !-------------------------------------------------------! ; ! ----- TOPS10 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! USER NAME ! ; ! (2 WORDS) ! ; !=======================================================! ; ; ; ! ----- TOPS20 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! OWNER (LOGGED IN USER) ! ; ! (8 WORDS) ! ; !-------------------------------------------------------! ; ! CREATOR'S CONNECT DIRECTORY ! ; ! (10 WORDS) ! ; !=======================================================! PHASE 0 .QELNK:! BLOCK 1 ;LINK WORD QE.PTP==-1,,0 ;POINTER TO PREVIOUS ENTRY QE.PTN==0,,-1 ;POINTER TO NEXT ENTRY QEHSIZ:! ;SIZE OF QUEUE-ENTRY-HEADER .QECRE:! BLOCK 1 ;INTERNAL CREATION TIME OF THIS ENTRY .QEPID:! BLOCK 1 ;PID PROCESSING THIS ENTRY (0 IF AVAILABLE) .QEDEV:! BLOCK 1 ;DEVICE PROCESSING THIS ENTRY (E.G. LPT2) .QEITN:! BLOCK 1 ;INTERNAL TASK NAME .QESTR:! BLOCK 1 ;FILE STRUCTURE CONTAINING REQUEST .QEIPR:! BLOCK 1 ;ENTRANCE PRIORITY FOR THIS ENTRY .QESEQ:! BLOCK 1 ;EXTERNAL VALUES QE.SEQ==-1,,0 ;EXTERNAL SEQUENCE NUMBER QE.SPL==1B28 ;THIS REQUEST CONTAINS SPOOLED FILES QE.RDE==1B29 ;THIS REQUEST DOESN'T EXIST (CLEAN-UP) QE.PRI==77B35 ;EXTERNAL PRIORITY .QEPRT:! BLOCK 1 ;REQUEST PROTECTION QE.PRO==-1,,0 ;THE PROTECTION FIELD QE.DMD==DV.DMD ;DEVICE MODIFIERS (MUST BE DV.DMD) .QEOID:! BLOCK 1 ;OWNER IDENTIFIER .QEJOB:! BLOCK 1 ;EXTERNAL JOB NAME .QEDED:! BLOCK 1 ;DEADLINE PARAMETER .QELM1:! BLOCK 1 ;THE FIRST LIMIT WORD (OUTPUT = FORMS TYPE) QE.DEP==EQ.DEP ;THE DEPENDENCY COUNT QE.UNI==EQ.UNI ;/UNIQUE: VALUE QE.UNO==EQ.UNO ; /NO .QELM2:! BLOCK 1 ;THE SECOND LIMIT WORD QE.PGS==EQ.PGS ;OUTPUT PAGE LIMIT QE.COR==EQ.COR ;BATCH JOB CORE LIMIT QE.TIM==EQ.TIM ;BATCH JOB TIME LIMIT .QELM3:! BLOCK 1 ;THE THIRD LIMIT WORD .QELM4:! BLOCK 1 ;THE FOURTH LIMIT WORD .QELM5:! BLOCK 1 ;THE FIFTH LIMIT WORD .QESTN:! BLOCK 1 ;REMOTE INFORMATION QE.DPA==-1,,0 ;DISK PAGE ADDRESS QE.RQP==177B24 ;RELATIVE QUEUE POINTER IFN FTUUOS,< .QEUSR:! BLOCK 2 ;USER'S NAME (2 WORDS) > ;END IFN FTUUOS IFN FTJSYS,< .QEOWN:! BLOCK 10 ;REQUEST OWNER .QECON:! BLOCK 12 ;CONNECTED DIRECTORY > ;END IFN FTJSYS QNTSIZ:! ;SIZE OF THE QUEUE ENTRY DEPHASE SUBTTL PSB -- Program Status Block ; !=======================================================! ; / / ; / THE QUEUE ENTRY HEADER / ; / / ; !=======================================================! ; ! PID OF KNOWN PROGRAM ! ; !-------------------------------------------------------! ; ! PROGRAM'S NAME ! ; !-------------------------------------------------------! ; ! DEVICE TO SCHEDULE FOR ( IDS FORMAT ) ! ; !-------------------------------------------------------! ; ! DEVICE USED BY THAT PROGRAM ! ; !-------------------------------------------------------! ; ! FLAG SETTINGS ! NJP ! ADDR OF THE QUEUE HEADER ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 1 ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 2 ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 3 ! ; !-------------------------------------------------------! ; ! SCHEDULER WORD ! ; !-------------------------------------------------------! ; ! TIME FOR NEXT CHECKPOINT ! ; !=======================================================! PHASE QEHSIZ ;APPEND TO THE QUEUE ENTRY HEADER SIZE PSBBGN:! ;FIRST LOC OF THE PSB PSBPID:! BLOCK 1 ;PROGRAM'S PID PSBNAM:! BLOCK 1 ;PROGRAM NAME IN SIXBIT PSBSDV:! BLOCK 1 ;DEVICE TO SCHEDULE FOR PSYQUE==-1,,0 ;QUEUE NAME TO DRAW FROM PSYDMD==DV.DMD ;DEVICE MODIFIERS (MUST BE DV.DMD) PSBPDV:! BLOCK 1 ;PROCESSING DEVICE PSBSTS:! BLOCK 1 ;STATUS FLAGS PSYSCH==1B0 ;AVAILABLE FOR SCHEDULING PSYFRZ==1B1 ;SPECIFIED FORMS ARE FROZEN PSYLLP==1B2 ;DEVICE IS LOWER CASE PRINTER (LL:) PSYRDE==1B3 ;COMPONENT CAN HANDLE RDE JOBS PSYNJP==77B17 ;NUMBER OF JOBS BEING PROCESSED FOR THIS PSB PSYHDR==0,,-1 ;ADDRESS OF QUEUE HEADER PSBIN1:! BLOCK 1 ;INFORMATION WORD 1 (OUTPUT = CURRENT FORMS) PSYSJT==-1,,0 ;SINGLE JOB TIME MAXIMUM PSYTBT==0,,-1 ;TOTAL TIME FOR ALL BATCH PSBIN2:! BLOCK 1 ;INFORMATION WORD 2 PSYPGS==-1,,0 ;MLIMIT PSYMJB==77B17 ;MJOB (SAME SIZE AS PSYNJP) PSYNXT==0,,-1 ;NEXT JOB PSBIN3:! BLOCK 1 ;INFORMATION WORD 3 PSYSJC==-1,,0 ;SINGLE JOB CORE MAXIMUM PSYTBC==0,,-1 ;TOTAL CORE FOR ALL BATCH PSBSCH:! BLOCK 1 ;SCHEDULER INFO PSYSMC==-1,,0 ;SUM OF CORE CURRENTLY ALLOCATED PSYSMT==0,,-1 ;SUM OF TIME CURRENTLY COMMITTED PSBRCK:! BLOCK 1 ;TIME TO REQUEST THE NEXT CHECKPOINT PSBSIZ:! ;SIZE OF THE STATUS BLOCK DEPHASE SUBTTL SPL -- Spool Queue Definition ; !=======================================================! ; / / ; / THE QUEUE ENTRY HEADER / ; / / ; !=======================================================! ; ! OWNER'S IDENTIFICATION ! ; !-------------------------------------------------------! ; ! INTERNAL DEVICE SPECIFICATION ! ; !-------------------------------------------------------! ; ! JOB NUMBER ! RETRIEVAL POINTER ! ; !-------------------------------------------------------! ; ! FILE-STRUCTURE CONTAINING REQUEST ! ; !-------------------------------------------------------! ; ! ! LENGTH OF REQUEST ! ; !=======================================================! PHASE QEHSIZ ;APPEND TO THE QUEUE ENTRY HEADER SPLOID:! BLOCK 1 ;OWNER'S ID SPLQUE:! BLOCK 1 ;INTERNAL DEVICE SPECIFICATION SPLJOB:! BLOCK 1 ;JOB INFORMATION SPYJOB==-1,,0 ;THE JOB NUMBER SPYDPA==0,,-1 ;THE RETRIEVAL POINTER SPLSTR:! BLOCK 1 ;STRUCTURE CONTAINING THE REQUEST 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 CSM -- Canonical SPOOL Message ; !=======================================================! ; ! JOB NUMBER ! STATION # ! FLAGS ! ; !-------------------------------------------------------! ; ! USER NAME IN SIXBIT ! ; ! (2 WORDS) ! ; !-------------------------------------------------------! ; ! OWNER'S IDENTIFICATION ! ; !-------------------------------------------------------! ; ! INIT'ED (OPEN'ED) DEVICE ! ; !-------------------------------------------------------! ; ! STRUCTURE CONTAINING THE FILE ! ; !-------------------------------------------------------! ; ! ENTER'ED FILENAME ! ; !-------------------------------------------------------! ; ! SIZE OF THE FILE IN 200 WORD DISK BLOCK UNITS ! ; !-------------------------------------------------------! ; ! LENGTH OF THE FD ! ADDRESS OF THE FD ! ; !=======================================================! PHASE 0 CSM.JB:! BLOCK 1 ;JOB INFORMATION CS.JOB==-1,,0 ;JOB NUMBER CS.LOC==777B26 ;STATION NUMBER CS.FLG==777 ;FLAGS CS.DFR==1B27 ;DEFERRED MODE SPOOLING CSM.OI:! BLOCK 1 ;OWNER'S ID CSM.DV:! BLOCK 1 ;INIT'ED DEVICE CSM.ST:! BLOCK 1 ;STRUCTURE CONTAINING THE FILE 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.FD:! BLOCK 1 ;FILE DESCRIPTOR INFORMATION CS.FDL==-1,,0 ;LENGTH OF THE FD AREA CS.FDA==0,,-1 ;ADDRESS OF THE FD TO INCLUDE IFN FTUUOS,< CSM.US:! BLOCK 2 ;USER NAME (2 WORDS) > ;END IFN FTUUOS 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 ;THE FOLLOWING PAGES CONTAIN THE FORMAT OF THE VARIOUS MESSAGES WHICH ; ARE SENT TO OR BY QUASAR TO VARIOUS SYSTEM COMPONENTS. SUBTTL MS -- Message Header Definition ; !=======================================================! ; ! MESSAGE LENGTH ! MESSAGE TYPE ! ; !=======================================================! PHASE 0 ;NORMALLY INDEXED BY 'M' .MSTYP:! BLOCK 1 ;TYPE OF MESSAGE MS.ACK==1B0 ;CALLER WANTS A RESPONSE MS.CNT==377777B17 ;LENGTH OF THE MESSAGE (INCLUDING WORD 0) MS.TYP==0,,-1 ;TYPE CODE ;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 .QOTEX==14 ;TEXT MESSAGE .QORCK==15 ;CHECKPOINT-REQUEST MESSAGE .QODFR==16 ;DEFER MESSAGE .QOROU==17 ;ROUTING CHANGE .QOCOU==20 ;COUNT MESSAGE .QOCAN==21 ;COUNT ANSWER MESSAGE ;INTERNAL OPERATIONS .QIFNC==1B18 ;IF BIT 18 IS SET, THE CALL IS INTERNAL ; AND THE REQUEST MAY BE INTERPRETED ; DIFFERENTLY THAN EXTERNAL CALLS MSHSIZ:! ;SIZE OF THE MESSAGE HEADER DEPHASE SUBTTL The HELLO Message -- Function 1 ; !=======================================================! ; / / ; / THE MESSAGE HEADER / ; / / ; !=======================================================! ; ! PROGRAM NAME ! ; !-------------------------------------------------------! ; ! SIXBIT SCHEDULING DEVICE ! ; !-------------------------------------------------------! ; ! PROCESSING DEVICE ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 1 ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 2 ! ; !-------------------------------------------------------! ; ! INFORMATION WORD 3 ! ; !-------------------------------------------------------! ; ! STATION ! FLAGS ! REQUEST VERSION ! ; !=======================================================! PHASE MSHSIZ HEL.NM:! BLOCK 1 ;PROGRAM NAME HEL.SD:! BLOCK 1 ;DEVICE TO SCHEDULE FOR HELQUE==-1,,0 ;QUEUE NAME HELDMD==DV.DMD ;DEVICE MODIFIERS (MUST BE DV.DMD) HEL.PD:! BLOCK 1 ;PROCESSING DEVICE HEL.I1:! BLOCK 1 ;INFORMATION WORD 1 ;INPUT = XWD TIME,SUMTIME (SECONDS) ;OUTPUT = FORMS TYPE HEL.I2:! BLOCK 1 ;INFORMATION WORD 2 ;INPUT = XWD MJOB,NEXT ;OUTPUT = XWD MLIMIT,NEXT HEL.I3:! BLOCK 1 ;INFORMATION WORD 3 ;INPUT = XWD CORE,SUMCORE (PAGES) ;OUTPUT = (UNUSED) HEL.ST:! BLOCK 1 ;STATUS FLAGS HELDSN==77B5 ;SPOOLERS DEFAULT STATION HELSCH==1B6 ; AVAILABLE FOR SCHEDULING HELFRZ==1B7 ; FREEZE SPECIFIED FORMS HELSTC==1B8 ; STATUS CHANGE HELBYE==1B9 ; DISCONNECT (GOOD-BYE) HELLLP==1B10 ; OWNS A LOWER CASE PRINTER (PROCESSING DEVICE) HELRDE==1B11 ; COMPONENT CAN HANDLE RDE JOBS HELVER==0,,-1 ;ASSEMBLED VERSION OF QSRMAC (%%.QSR) 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.SZ:! ;SIZE OF THE RELEASE MESSAGE REL.BJ:! BLOCK 1 ;BATCH JOB INFORMATION RL.DLG==1B0 ;DELETE THE LOG FILE AFTER PRINTING RL.PRL==1B1 ;PRINT THE LOG FILE 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.IN:! BLOCK EQCKSZ ;REQUEUE INFORMATION REQ.AF:! BLOCK 1 ;AFTER TIME (IN MINUTES, RELATIVE TO "NOW") REQ.SZ:! DEPHASE PHASE MSHSIZ CHE.IT:! BLOCK 1 ;INTERNAL TASK NAME CHE.IN:! BLOCK EQCKSZ ;CHECKPOINT INFORMATION CHE.SZ:! DEPHASE 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. ; ; 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 DEVICE ! ; !-------------------------------------------------------! ; ! EXTERNAL JOB NAME ! ; !-------------------------------------------------------! ; ! EXTERNAL SEQUENCE NUMBER !DEF NODE! FLAGS !EXT. PRIO! ; !-------------------------------------------------------! ; ! REQUEST PROTECTION CODE !NUMBER OF FILES IN REQUEST ! ; !-------------------------------------------------------! ; ! AFTER PARAMETER ! ; !-------------------------------------------------------! ; ! DEADLINE PARAMETER ! ; !-------------------------------------------------------! ; ! ! ; \ 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 ! ; ! ----- TOPS10 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! USER NAME ! ; ! 2 WORDS ! ; !-------------------------------------------------------! ; ! REQUEST OWNER'S IDENTIFICATION ! ; !=======================================================! ; ! ! ; \ PATH SPECIFICATION \ ; \ (OPTIONAL) \ ; \ 6 WORDS \ ; ! ! ; !=======================================================! ; ; ; ; ! ----- TOPS20 ----- ! ; ! ! ; !-------------------------------------------------------! ; ! ! ; \ REQUEST OWNER'S IDENTIFICATION \ ; \ \ ; \ 8 WORDS \ ; ! ! ; !-------------------------------------------------------! ; ! ! ; \ CONNECTED DIRECTORY OF REQUST CREATOR \ ; \ \ ; \ 10 WORDS \ ; ! ! ; !=======================================================! ; ! SPOOLED INPUT SET HANDLE (OPTIONAL) ! ; !=======================================================! 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) .EQRDV:! BLOCK 1 ;REQUESTED DEVICE .EQJOB:! BLOCK 1 ;JOB NAME (SIXBIT) .EQSEQ:! BLOCK 1 ;EXTERNAL VALUES EQ.SEQ==-1,,0 ;EXTERNAL SEQUENCE NUMBER EQ.DSN==77B23 ;DEFAULT STATION (JBTLOC(J)) 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 .EQSPC:! BLOCK 1 ;FILE SPECIFICATION WORD EQ.PRO==-1,,0 ;REQUEST PROTECTION EQ.NUM==0,,-1 ;NUMBER OF FILES IN THE REQUEST .EQAFT:! BLOCK 1 ;AFTER PARAMETER (INTERNAL FORMAT) .EQDED:! BLOCK 1 ;DEADLINE TIME (INTERNAL FORMAT) .EQLM1:! BLOCK 1 ;FIRST LIMIT WORD EQ.NRS==1B0 ;THE NON-RESTARTABLE BIT EQ.DEP==0,,-1 ;DEPENDENCY COUNT EQ.UNI==3B2 ;/UNIQUE:VALUE EQ.UNO==0 ;/NO EQ.OUT==7B8 ;/OUTPUT EQ.FRM==-1,,-1 ;FOR OUTPUT = FORMS TYPE .EQLM2:! BLOCK 1 ;SECOND LIMIT WORD EQ.NBL==-1,,0 ;OUTPUT NUMBER OF BLOCKS IN REQUEST EQ.PGS==0,,-1 ;OUTPUT PAGE LIMIT EQ.COR==-1,,0 ;INPUT CORE LIMIT (PAGES) EQ.TIM==0,,-1 ;INPUT TIME LIMIT (SECONDS) .EQLM3:! BLOCK 1 ;THIRD LIMIT WORD ;OUTPUT 1ST HALF OF /NOTE EQ.LPT==-1,,0 ;INPUT PAGE REQUEST EQ.CDP==0,,-1 ;INPUT CARD REQUEST .EQLM4:! BLOCK 1 ;FOURTH LIMIT WORD ;OUTPUT 2ND HALF OF /NOTE EQ.PTP==-1,,0 ;INPUT PAPER TAPE REQUEST EQ.PLT==0,,-1 ;INPUT PLOTTER TIME REQUEST .EQLM5:! BLOCK 1 ;THE FIFTH WORD IS EXTRA .EQCHK:! BLOCK 5 ;CHECKPOINT/REQUEUE INFORMATION EQCKSZ==.-.EQCHK ;SYMBOLIZE THE SIZE .EQACT:! BLOCK 10 ;ACCOUNT STRING EQISIZ:! ;END OF OPERATING SYSTEM INDEPENDENT HEADER - MORE OF CREATE MESSAGE FOLLOWS ;BEGINNING OF OPERATING SYSTEM DEPENDENT HEADER IFN FTUUOS,< .EQUSR:! BLOCK 2 ;USER NAME .EQOWN:! BLOCK 1 ;EXTERNAL OWNER SPECIFICATION > ;END IFN FTUUOS IFN FTJSYS,< .EQOWN:! BLOCK 10 ;EXTERNAL OWNER SPECIFICATION .EQCON:! BLOCK 12 ;CONNECTED DIRECTORY > ;END IFN FTJSYS EQHSIZ:! ;MINIMUM SIZE OF THE EXTERNAL QUEUE ENTRY HEADER ;END OF OPERATING SYSTEM DEPENDENT HEADER ;BEGINNING OF OPERATING SYSTEM DEPENDENT OPTIONAL PARAMETERS IFN FTUUOS,< ;MAKE ROOM FOR THE INPUT QUEUE PATH SPECIFICATION .EQPAT:! BLOCK 6 ;PATH .EQPSZ:! ;SIZE OF HEADER WITH PATH > ;END OF IFN FTUUOS IFN FTJSYS,< .EQSIS:! BLOCK 1 ;HANDLE FOR SPOOLED INPUT SET > ;END IFN FTJSYS DEPHASE ; !=======================================================! ; ! LENGTH OF FILE-PARAM AREA ! LENGTH OF FILE-DESCR AREA ! ; !-------------------------------------------------------! ; !FILE FMT !PAPR FMT!SPACING ! FLAGS ! COPIES ! ; !-------------------------------------------------------! ; ! STARTING INFORMATION (CUSP DEPENDENT) ! ; !-------------------------------------------------------! ; ! /REPORT WORD 1 ! ; !-------------------------------------------------------! ; ! /REPORT WORD 2 ! ; !=======================================================! PHASE 0 .FPSIZ:! BLOCK 1 ;SIZE WORD FP.FHD==-1,,0 ;SIZE OF THE PARAMETER HEADER FP.FFS==0,,-1 ;SIZE OF THE DESCRIPTOR BLOCK .FPINF:! BLOCK 1 ;FILE PARAMETER INFORMATION FP.FFF==77B5 ;FILE FORMAT .FPFAS==1 ;ASCII .FPFFO==2 ;FORTRAN .FPFCO==3 ;COBOL .FPF11==6 ;ELEVEN 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.IGN==1B22 ;IGNORE THIS FILE (IT IS /REMOVED) FP.XXX==17B26 ;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 FPMSIZ:! ;MINUMUM FP AREA SIZE FPXSIZ:! ;MAXIMUM FP AREA SIZE DEPHASE ;PAPER FORMATS FOR LPT QUEUE (/PRINT) %FPLAR==1 ;ARROW FORMAT %FPLAS==2 ;ASCII FORMAT %FPLOC==3 ;OCTAL FORMAT %FPLSU==4 ;SUPPRESS FORMAT ;PAPER FORMATS FOR PTP QUEUE (/TAPE) %FPTAS==1 ;ASCII FORMAT %FPTIM==2 ;IMAGE FORMAT %FPTIB==3 ;IMAGE BINARY FORMAT %FPTBI==4 ;BINARY FORMAT ;PAPER FORMATS FOR CDP QUEUE (/PUNCH) %FPCAS==1 ;ASCII FORMAT %FPCBC==2 ;026 (BCD) FORMAT %FPCBI==3 ;BINARY FORMAT %FPCIM==5 ;IMAGE FORMAT ;PAPER FORMAT FOR PLT QUEUE (/PLOT) %FPPIM==1 ;IMAGE FORMAT %FPPAS==2 ;ASCII FORMAT %FPPBI==3 ;BINARY FORMAT ;VALUES FOR .EQLM1 (/OUTPUT FIELD) %EQONL==1 ;NO LOG %EQOLG==2 ;LOG FILE ALWAYS %EQOLE==3 ;LOG FILE ON ERROR ONLY SUBTTL The ABORT Message -- Function 6 ; !=======================================================! ; / / ; / THE MESSAGE HEADER / ; / / ; !=======================================================! ; ! INTERNAL TASK NAME ! ; !-------------------------------------------------------! ; ! REASON CODE ! ; !-------------------------------------------------------! ; ! ID OF PERSON REQUESTING THE CANCEL ! ; !=======================================================! PHASE MSHSIZ ABO.IT:! BLOCK 1 ;INTERNAL TASK NAME ABO.CD:! BLOCK 1 ;CODE INDICATING CAUSE OF MESSAGE ABOUSR==1 ; BY USER REQUEST ABOOPR==2 ; BY OPERATOR 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 / ; / / ; !=======================================================! ; ! QUEUE NAME TO LIST ( 0 IF ALL) ! ; !=======================================================! PHASE MSHSIZ LIS.QN:! BLOCK 1 ;THE QUEUE NAME (0 IS ALL) LISQUE==-1,,0 LIS.SZ:! ;SIZE OF A LIST REQUEST DEPHASE 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 ; QSRQUE - FILMOD FOR FILE SPECIFIC GROUP 2 ; !=======================================================! ; ! GROUP NUMBER ! WORD COUNT ! ; !=======================================================! PHASE MSHSIZ MOD.QN:! BLOCK 1 ;QUEUE NAME MODQUE==-1,,0 ;QUEUE NAME 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...) .GPFSM==2 ;FILE SPECIFIC MODIFY BLOCK MODGLN==0,,-1 ;THE NUMBER OF ELEMENTS (INCLUDING THIS WORD) MOD.GE:! ;THE FIRST GROUP ELEMENT TO BE MODIFIED ;FOR GROUP .GPFSM (FILE SPECIFIC MODIFY) MOD.FI:! BLOCK 1 ;FD INFORMATION MODFDL==0,,-1 ;LENGTH OF SPEC AND MASKS FOR THE FD ;FOLLOWED BY 2 FD'S OF THAT LENGTH. THE 1ST IS THE SPEC TYPED BY THE USER, ; THE 2ND IS THE MASKS FOR WILD CARD MATCHING. MOD.FD:! ;THE FIRST FD ;THE SECOND FD IS (FDLENGTH+MOD.FD) ;THE FIRST GROUP ELEMENT IS (2*FDLENGTH+MOD.FD) ;THE NUMBER OF ELEMENTS IS (GROUPLENGTH - (2*FDLENGTH)+MOD.FD) 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.QN:! BLOCK 1 ;QUEUE NAME KILQUE==-1,,0 ;QUEUE NAME KIL.RQ:! BLOCK RDBSIZ ;REQUEST DESCRIPTOR BLOCK KIL.SZ:! ;SIZE OF KILL ENTRY DEPHASE SUBTTL The LIST ANSWER Message -- Function 13 ; !=======================================================! ; /STANDARD MESSAGE HEADER EXCEPT THAT THE LENGTH FIELD IS/ ; / A SEQUENCED COUNT OF THIS ANSWER. SINCE THEY CAN BE / ; / RECEIVED IN ANY ORDER, 1B0 IS SET FOR THE LAST / ; !=======================================================! ;THE FOLLOWING ENTRY IS DUPLICATED FOR EACH REQUEST TO LIST ;THE LISTING IS TERMINATED BY A ZERO (0) AS THE JOB NAME ; !=======================================================! ; ! EXTERNAL JOB NAME ! ; !-------------------------------------------------------! ; ! EXTERNAL SEQUENCE NUMBER ! REQUEST PROTECTION ! ; !-------------------------------------------------------! ; ! SIXBIT DEVICE NAME FOR QUEUE AND STATION ! ; !-------------------------------------------------------! ; ! PROCESSING DEVICE IF ENTRY IS IN USE ! ; !-------------------------------------------------------! ; ! OWNER'S IDENTIFICATION ! ; !-------------------------------------------------------! ; ! AFTER PARAMETER ( 0 IF NONE ) ! ; !-------------------------------------------------------! ; ! ! ; ! REQUEST LIMIT INFORMATION ! ; ! CONTENTS ARE QUEUE DEPENDENT ! ; ! 5 WORDS ! ; ! ! ; !-------------------------------------------------------! ; ! FILE-STRUCTURE CONTAINING REQUEST ! ; !-------------------------------------------------------! ; ! !PRIORITY ! ; !=======================================================! ; ! USERS NAME (TOPS10 ONLY) ! ; ! 2 SIXBIT WORDS ! ; !=======================================================! PHASE MSHSIZ LST.FT:! ;THE FIRST ANSWER IN THIS BLOCK PHASE 0 ;REPEATED FOR EACH ENTRY TO LIST LST.JB:! BLOCK 1 ;THE EXTERNAL JOB NAME LST.SQ:! BLOCK 1 ;EXTERNAL VALUES WORD LS.SEQ==-1,,0 ;THE EXTERNAL SEQUENCE NUMBER LS.PRO==0,,-1 ;EXTERNAL PROTECTION LST.DV:! BLOCK 1 ;THE QUEUE OR DEVICE LST.PV:! BLOCK 1 ;DEVICE PROCESSING THIS ENTRY (0 IS NONE) LST.OI:! BLOCK 1 ;OWNER'S ID LST.AF:! BLOCK 1 ;AFTER PARAMETER IN INTERNAL FORM (0 IS NONE) LST.LM:! BLOCK 5 ;THE LIMIT WORDS (QUEUE DEPENDENT) LST.ST:! BLOCK 1 ;STRUCTURE CONTAINING THE REQUEST LST.PI:! BLOCK 1 ;PRIORITY WORD LS.PRI==77B35 ;EXTERNAL PRIORITY IFN FTUUOS,< LST.US:! BLOCK 2 ;USERS NAME (2 SIXBIT WORDS) > ;END IFN FTUUOS LST.SZ:! ;SIZE OF A LIST ELEMENT DEPHASE LST.NU==<1000-LST.FT>/LST.SZ ;NUMBER OF LIST ELEMENTS PER PAGE SUBTTL The TEXT Message -- Function 14 ; !=======================================================! ; / / ; / THE MESSAGE HEADER / ; / / ; !=======================================================! ; ! STATUS FLAGS AND INFORMATION ! ; !-------------------------------------------------------! ; / / ; / MESSAGE IN ASCIZ FORMAT / ; / / ; !=======================================================! PHASE MSHSIZ TEX.ST:! BLOCK 1 ;THE STATUS WORD TX.FAT==1B0 ;A FATAL MESSAGE TX.WRN==1B1 ;A WARNING MESSAGE (NEITHER MEANS INFORMATIONAL) TX.OPR==1B2 ;TELL THE OPERATOR AS WELL TX.EXI==1B3 ;TO KNOWN COMPONENT, GIVE UP NOW TX.NMS==1B4 ;TO UNKNOWN COMPONENT, NO MESSAGE (ACK) TX.MOR==1B5 ;ANOTHER MESSAGE TO FOLLOW TX.SUF==0,,-1 ;SIXBIT SUFFIX FOR MESSAGE TEX.MS:! ;THE START OF THE MESSAGE DEPHASE SUBTTL The REQUEST FOR CHECKPOINT Message -- Function 15 ; !=======================================================! ; / / ; / THE MESSAGE HEADER / ; / / ; !=======================================================! PHASE MSHSIZ ;THERE IS NO BODY TO THE REQUEST FOR CHECKPOINT MESSAGE AS THE TYPE ITSELF ; IS SUFFICIENT INFORMATION TO THE COMPONENT 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.QN:! BLOCK 1 ;THE QUEUE NAME ( 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 The ROUTE Message -- Function 17 ; !=======================================================! ; / / ; / THE MESSAGE HEADER / ; / / ; !=======================================================! ; ! ORIGINAL STATION ! NEW ROUTING FOR IT ! ; !=======================================================! PHASE MSHSIZ ROU.ST:! BLOCK 1 ;STATION INFORMATION RO.ORG==-1,,0 ;ORIGINAL STATION RO.NEW==0,,-1 ;NEW DESTINATION ROU.SZ:! ;SIZE OF THE ROUTE 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),< XLIST INTERN $$'A $$'A==$$ $$==$$+1 LIST SALL > ;END DEFINE X DEFINE $COUNT(A),< IFNDEF $$'A,< PRINTX UNDEFINED COUNTER A USED > AOS G$ITEM##+$$'A > ;END DEFINE $COUNT DEFINE $SITEM(AC,A),< IFNDEF $$'A,< PRINTX UNDEFINED COUNTER A USED > STORE AC,G$ITEM##+$$'A > ;END DEFINE $SITEM ;THE COUNTERS ARE DEFINE ON THE NEXT PAGE ;THE COUNTERS DEFINE $ITEM,< XLIST X (NOW,CURRENT TIME OF DAY) X (STAR,QUASAR START TIME) X (QJOB,QUASARS JOB NUMBER) X (IPCI,TOTAL NUMBER OF IPCF INTERRUPTS RECEIVED) X (IPCD,DEFERRED IPCF INTERRUPTS) 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,NEXTJOB MESSAGES SENT) X (MABO,ABORT MESSAGES SENT) X (NPGC,PAGES GARBAGE COLLECTED) X (NGCC,GARBAGE COLLECTOR CALLS) X (MLST,LIST MESSAGES RECEIVED) X (NLAP,LISTANSWER PAGES SENT) X (SCRE,SUCCESSFUL CREATES DONE) X (MMOD,MODIFY MESSAGES RECEIVED) X (MKIL,KILL MESSAGES RECEIVED) X (MDEF,DEFER MESSAGES RECEIVED) X (ISPL,IMMEDIATE SPOOL MESSAGES RECEIVED) X (DSPL,DEFFERED SPOOL MESSAGES RECEIVED) X (MCAN,COUNTANSWER MESSAGES SENT) LIST SALL > ;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 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 ! ; !=======================================================! PHASE 0 SPL.HD:! BLOCK 1 ;THE HEADER FROM IPCC SPL.JB:! BLOCK 1 ;USERS JOB NUMBER SP.JOB==-1,,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 SP.IUD==1B29 ;FILE IN USER'S DIRECTORY SPL.US:! BLOCK 2 ;THE USERS NAME (2 SIXBIT WORDS) SPL.DV:! BLOCK 1 ;DEVICE INIT'ed BY THE USER (e.g. LPT0:) SP.QUE==-1,,0 ;QUEUE NAME TO GET THIS FILE 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.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 ! ; !-------------------------------------------------------! ; ! ! ; / FD AREA 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.FD:! ;BEGINNING OF FD AREA FOR SPOOLED FILE 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.JOB==-1,,0 ;THE JOB NUMBER OF THE USER LOGGING OUT LG.LOC==777B26 ;THE CURRENT REMOTE STATION NUMBER OF THIS JOB LG.BAT==1B27 ;THIS IS A BATCH JOB LG.DFR==1B28 ;DEFERRED MODE SPOOLING 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 IPCF Parameters PHASE QEHSIZ ;APPEND TO THE QUEUE-ENTRY-HEADER IPCFLG:! BLOCK 1 ;FLAGS (SEE UUOSYM.MAC FOR DEFINITIONS) IPCSDR:! BLOCK 1 ;SENDERS PID IPCRCR:! BLOCK 1 ;RECEIVERS PID IPCMES:! BLOCK 1 ;MESSAGE INFORMATION IPM.CT==-1,,0 ;COUNT OF WORDS IPM.AD==0,,-1 ;ADDRESS OF THE MESSAGE IPCHSZ==.-IPCFLG ;SIZE OF THE PDB FOR SEND IPCSID:! BLOCK 1 ;SENDERS ID IPCPRV:! BLOCK 1 ;SENDERS CAPABILITIES (PRIVS) IFN FTUUOS,< IPCCDI==IPCSID ;CONNECTED DIR=SENDER'S ID > ;END IFN FTUUOS IFN FTJSYS,< IPCCDI:! BLOCK 1 ;CONNECTED DIRECTORY OF SENDER > ;END IFN FTJSYS IPCRSZ==.-IPCFLG ;SIZE OF THE PDB FOR RECEIVE IPCDAT:! IPCSIZ:! ;SIZE OF AN IPCF ENTRY (NOT COUNTING ; THE MESSAGE) DEPHASE ;WHEN CALLING C$SEND FOR IPCF SENDS, BITS LIT IN AP ARE: IPS.TF==1B0 ;TRY FIRST (IGNORE SCAN OF IPS QUEUE) IPS.ID==1B1 ;IGNORE DUPLICATE (REQUESTED PID IN IPS) IPS.IF==1B2 ;IGNORE FAILURE (THROW AWAY PACKET) 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 ;IPCF PRIORITY INTERRUPT CHANNEL SYSPRM INT.PL,,^D3 ;IPCF PRIORITY INTERRUPT LEVEL SYSPRM IPE.SQ,IPCRS%,IPCFX6 ;SENDERS QUOTA EXHAUSTED SYSPRM IPE.RQ,IPCRR%,IPCFX7 ;RECEIVERS QUOTA EXHAUSTED SYSPRM IPE.SF,IPCRY%,IPCFX8 ;SYSTEM FREE SPACE EXHAUSTED SYSPRM IPE.DU,IPCDU%,IPCFX4 ;DESTINATION UNKNOWN SYSPRM IPE.DD,IPCDD%,IPCFX5 ;DESTINATION DISABLED SYSPRM IP.CFV,,IP%CFV ;PAGE MODE BIT SYSPRM IP.CFC,,IP%CFC ;FROM SYSTEM INFO OR IPCC SYSPRM IP.CFM,,IP%CFM ;A RETURNED MESSAGE SYSPRM IP.CFE,,IP%CFE ;ERROR INDICATORS SYSPRM IP.CFP,,IP%CFP ;PRIVILEGED SEND SYSPRM IP.TTL,IP.CFT,IP%TTL ;TRUNCATE IF TOO LONG SYSPRM FSSBKS,200,1000 ;STANDARD BLOCKSIZE SYSPRM FSSFIB,2,1 ;BLK. # OF 1ST INDEX BLK SYSPRM SP.QSR,.IPCPQ,.SPQSR ;SYSTEM PID TABLE ENTRY FOR QUASAR SYSPRM SP.MDA,.IPCPM,.SPMDA ; " " " " " MDA SYSPRM DEBUGW,.JBOPS,135 ;DEBUG WORD SUBTTL Operating System Dependent Macros IFN FTUUOS,< ;TOPS10 DEFINITIONS DEFINE PROLOGUE(A),< ;MACRO TO GENERATE MODULE PROLOGUE SALL XLIST SEARCH SBSMAC ;GET SUB-SYSTEMS MACROS SEARCH MACTEN ;GET UNIVERSAL SYMBOLS AND MACROS INTERN %%.QSR,%%.SBS ;FOR LINK CONSISTENCY CHECKS SEARCH UUOSYM ;GET TOPS10-UUO SYMBOLS IFIDN ,< ;IF MAIN MODULE .REQUIRE QSRMEM,QSRQUE,QSRSCH,QSRIPC,QSRFSS,QSRADM,QSRT10,SBSCOM > ;END OF IFIDN IFIDN ,< ;IF OTHER INTERFACE PASS2 ;SAVE THE ASSEMBLY END ;AND THE PAPER > ;END OF IFIDN LIST SALL > ;END OF DEFINE PROLOGUE > ;END OF IFN FTUUOS IFN FTJSYS,< ;TOPS20 DEFINITIONS DEFINE PROLOGUE(A),< ;MACRO TO GENERATE MODULE PROLOGUE SALL XLIST SEARCH SBSMAC ;GET SUB-SYSTEMS MACROS SEARCH MACTEN ;GET UNIVERSAL SYMBOLS AND MACROS INTERN %%.QSR,%%.SBS ;FOR LINK CONSISTENCY CHECKS SEARCH MONSYM ;GET TOPS20-JSYS SYMBOLS IFIDN ,< ;IF MAIN MODULE .REQUIRE QSRMEM,QSRQUE,QSRSCH,QSRIPC,QSRFSS,QSRADM,QSRT20,SBSCOM > ;END OF IFIDN IFIDN ,< ;IF OTHER INTERFACE PASS2 ;SAVE THE ASSEMBLY END ;AND THE PAPER > ;END OF IFIDN LIST SALL > ;END OF DEFINE PROLOGUE > ;END OF IFN FTJSYS 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, ;MAXIMUM BLOCKS/REQUEST XP FSSWPI,1000 ;NUMBER OF WORDS/INDEX XP FSSNIB, ;NUMBER OF INDEX BLOCKS/SECTION XP FSSFDB, ;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, ;THE PRIMARY MASTER DEFINE MQFNM2, ; REDUNDANT MASTER > ;END OF IFN FTUUOS IFN FTJSYS,< DEFINE MQFNAM,PRIMARY-MASTER-QUEUE-FILE.QUASAR\> > ;END OF IFN FTJSYS SUBTTL QUASAR Fatal Error Codes ;ARGUMENTS USED ARE ; X 'SUFFIX' , 'TEXT' ;THE EXPANDER IS TO DEFINE THE CORRECT 'X' MACRO DEFINE ERRCDS,< XLIST X BMG, X CBL, X CLQ, X ICM, X IFD, X IMT, X INF, X IPE, X MTL, X MTS, X NKC, X NOR, X SNY, X UQS, X WVN, LIST SALL > ;END OF DEFINE ERRCDS SUBTTL Definition of the Known Queues ;ARGUMENTS USED ARE ; X 'QUENAME' , 'ENTRYSIZE' , 'TYPE' , 'FLAGS' , 'SCHEDULER' DEFINE QUEUES,< XLIST X INP,QNTSIZ,.QHTIP,QH.LST,S$INPT X LPT,QNTSIZ,.QHTOU,QH.LST,S$LPT X PTP,QNTSIZ,.QHTOU,QH.LST,S$PTP X CDP,QNTSIZ,.QHTOU,QH.LST,S$CDP X PLT,QNTSIZ,.QHTOU,QH.LST,S$PLT X IPC,IPCSIZ,.QHTQS,QH.IPC,0 X IPS,IPCSIZ,.QHTQS,QH.IPC,0 X SPL,SPLSIZ,.QHTQS,0,0 X PSB,PSBSIZ,.QHTQS,0,0 X USE,USESIZ,.QHTQS,0,0 X AFT,AFTSIZ,.QHTQS,0,S$AFTR X RDE,RDESIZ,.QHTQS,0,S$RDE LIST SALL > ;END OF DEFINE QUEUES MAX ;INCLUDE ANY QUEUE THAT CAN HAVE AFTER OR INUSE USESIZ==MAXSIZ ;DEFINE LARGEST ENTRY IN USE QUEUE AFTSIZ==MAXSIZ ;DEFINE LARGEST ENTRY IN AFT 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),< ;DEFINE X FOR THE LATER EXPANSION OF QUEUES HDR'A:: INSVL.(,QH.NAM)!INSVL.(C,QH.TYP)!D EXP 0 IFDIF <0> , XWD E,INSVL.(B,QH.SIZ) > ;END OF DEFINE X QUEUES ;NOW EXPAND QUEUES > ;END OF DEFINE QUEHDR END