UNIVER BATMAC - GALAXY-10 Batch controller parameter file SUBTTL C.D.O'Toole, D.P.Mastrovito /CDO/DPM 4-Dec-85 ; ; ; COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION ; 1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1986. ; 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. .DIRECTIVE .NOBIN ;DON'T GENERATE A .REL FILE SALL ;FOR CLEAN LISTINGS SEARCH GLXMAC ;GALAXY SYMBOLS SEARCH QSRMAC ;QUASAR SYMBOLS SEARCH ORNMAC ;ORION SYMBOLS BATVER==105 ;MAJOR VERSION BATMIN==0 ;MINOR VERSION BATWHO==0 ;WHO LAST PATCHED BATEDT==5015 ;EDIT LEVEL %%.BAT==: ;ASSEMBLE VERSION NUMBER TOPS10 > TOPS20 > SUBTTL Table of contents ; TABLE OF CONTENTS FOR BATMAC ; ; ; SECTION PAGE ; 1. Table of contents......................................... 2 ; 2. Revision History.......................................... 3 ; 3. Assembly parameters....................................... 18 ; 4. Accumulator definitions................................... 20 ; 5. Batch stream flags........................................ 21 ; 6. Miscellaneous bits and OPDEFS............................. 23 ; 7. Stream data base.......................................... 24 ; 8. Clock request queue data definitions...................... 28 ; 9. MODIFY symbols............................................ 29 ; 10. MSGBLD macro - Build error message table.................. 30 ; 11. End....................................................... 31 SUBTTL Revision History COMMENT \ EDIT 1000 This was the version sent to In-House Q/A April 1974 EDIT 1001 Correct mixup in the channel allocator if the CTL file is not artifically preserved and DISPOSE:PRESERVE is set EDIT 1002 Have BACKTO give the correct error if the label was not found BEFORE the initiating BACKTO command EDIT 1003 Allow BACKTO and restart labels to skip over %FIN:: EDIT 1004 Allow NEXT command to select a job after the KSYS timer has expired EDIT 1005 Fix interaction of SILENCE & REVIVE commands with DIALOGUE mode & QUOTES (") EDIT 1006 Correct random little annoyances discovered by Q/A EDIT 1007 On a line with only the label (e.g. FOO::), the is NOT to be sent to the subjob. However, FOO::* gives a blank line to the subjob. Same for IF (cond) EDIT 1010 Reformat WHAT line for the operators EDIT 1011 Accept TELL, KILL, REQUEUE, etc... when a job is STOPped EDIT 1012 More of EDIT 1005, still a problem with SILENCE & REVIVE EDIT 1013 Reformat DIALOGUE mode output for the operator EDIT 1014 Include .MESSAGE for the Mini-Batch Standard It is the same as PLEASE EDIT 1015 Give more information when the user can't use the specified LOG file EDIT 1016 General cleanup of code and elimination of subroutines no longer needed EDIT 1017 Make more efficient use of old PTY channels. Big help when MJOB .GT. 5 EDIT 1020 Correct problem with REQUEUE labels EDIT 1021 This was the version sent to Field Test June 1974 EDIT 1022 A leading tab was changed into a blank, shouldn't do that EDIT 1023 Include /NAME:"" on the LOGIN line EDIT 1024 LOGIN error code 1 is the same as a warning message. Treat it as such. EDIT 1025 Plug a hole in the SFD code EDIT 1026 Can only force /RESTART:YES on Checkpoint EDIT 1027 Post-job disposal of the CTL file wasn't done if the job was cancelled because of LOGIN EDIT 1030 Provide some additional information in the CURRENT command output EDIT 1031 Some more general cleanup EDIT 1032 Routines that save and restore the CTL file position were being thrown off by "^" in strange places EDIT 1033 Include BTNxxx for all error messages the user receives EDIT 1034 Using "1H+" for Fortran overprinting would start at the time stamp, not at column 17 EDIT 1035 Implement several suggestions EDIT 1036 QTS was called from one place, remove lots of code and change all references to QTS0 to QTS EDIT 1037 A timing problem was introduced by EDIT 1024, correct it. EDIT 1040 Implement more suggestions EDIT 1041 This was the version released to the Field November 1974 Edits made to version 12 by Software Support that are also in version 100 EDIT 1051 GETSTS returns the status in the right half, Teach this to GETCTL. (SPR 15846) EDIT 1054 Suppress trailing blanks on lines destined for the monitor command decoder. This should avoid any problems associated with card input. EDIT 1055 With edit 477 of LOGIN, LOGMAX is now enforced. Invent error code 5 to mean requeue this job, shutdown Batch for NJNINT minutes. (SPR 16184) Edits made during the development of version 13 that are also in version 100 EDIT 1060 Separate old and new LOG files with a Form-Feed. Do this to more easily recognize when a LOG file is used more than once (SPR several suggestions) EDIT 1061 Invent a new reserved label %TERR::. Control is passed to this label if TIME LIMIT EXCEEDED is detected. It follows the same rules of precedence as %ERR:: with respect to %FIN::. The %EXTRA time is given but the CLOSE/DUMP is not sent, allowing REENTER to be used for program cleanup for intelligent jobs. EDIT 1063 De-implement the following: (maintained for 1 versions worth of compatability) The FORCE Command (use NEXT) The old style $ processing for CDRSTK (who?) EDIT 1064 The correct path wouldn't be sent to LOGIN if there were no SFD levels. Send it if the P,Pn's are different. EDIT 1070 Plug a security hole. EDIT 2000 Begin conversion of MPB BATCON (v12) to the GALAXY-10 system Major changes (aside from queueing protocol) include: Remove FTOPR options for a separate BATOPR Remove all code for LOGSWS conditionals, LOGIN v.57 is required De-implement edit 1017 Redefine AC usage to conform with QUASAR's Change ATOKJB to talk to LOGOUT v.100 CORE/MCORE parameters are P internally but K for the operators. Remove WHKSYS conditionals, Work is done by QUASAR At the request of our operators, the default value of PROMPT is 5 min. Remove all the BATCON assembly parameters that are now defined in the GALGEN dialogue. This was the version sent with GALAXY-10 Field Test, June 1975 EDIT 2001 Report the P,Pn of the user requesting the cancellation of a job (ABO.DI) EDIT 2002 Can get a job from QUASAR with EQ.RDE set, turn them around. EDIT 2003 Quotes (") output from LOGOUT should be typed to the operator. EDIT 2004 Fix all the code dealing with core limit enforcment. INPCOR, the default value of /CORE, is used to conditionally assemble the enforcement code. If defined = 0, code is not assembled since NO was answered to the GALGEN question concerning core enforcment. EDIT 2005 Take advantage of the new routine in CSPQSR. Call CSPPSI to enable terminal input interrupts, avoid lots of SKPINL's. General code cleanup. EDIT 2006 Become version 101 EDIT 2007 .EQPAT is optional, Check for it. EDIT 2010 Convert to TOPS20 style LOGIN, File handling, etc... EDIT 2011 Fix all the bugs caused by edit 2010 EDIT 2012 The TOPS10 code got broken by edits 2010 & 2011, fix that. EDIT 2013 Implement the new values for /OUTPUT, they are: /OUTPUT:NOLOG Don't print the LOG /OUTPUT:LOG Print it (default) /OUTPUT:ERROR Print it if an unhandled error occurred EDIT 2014 Some Code Cleanup and Bug Fixes, Specifically: Use the PROLOGUE macro to get SBSMAC Symbols. Calling sequence to CSPINI has changed. 6.03 Monitor uses 1B2 of the OPEN of a PTY to indicate that jobs on that PTY are Batch. A bug in the TOPS20 code that PMAP'ed away my addressing space is corrected (a real cute one). Another TOPS20 bug that left the Log file JFN hanging around. The CHECKPOINT/REQUEUE messages have changed. Remove the old MPB restriction of 5 character labels for CHKPNT and /TAG. EDIT 2015 On the -20, before logging a job out delete any spooled input files created by SPRINT for it. EDIT 2050 Become version 102. Begin to eliminate TOPS10 UUOs on TOPS20. EDIT 2051 More of Edit 2050. EDIT 2052 Add ROUTE operator command, tell QUASAR of operators request. EDIT 2053 Removed EDIT 2054 Start converting to the version 2 database format. EDIT 2055 Convert to TOPS20 release 2 JSYSes. EDIT 2056 Do some cleanup work on operator output. EDIT 2057 Rework LOG file logic to do "in-his-behalf" FILOP on the -10. EDIT 2060 Include jobname, user id, and sequence number on all messages to the operator. Fix a problem on the -20 where the LOGIN command was not always sent correctly. EDIT 2061 Remove angle brackets around user name on "cancelled" message on the -20. Fix some minor problems. EDIT 2062 Spooled card-reader files were not getting deleted on 20 due to a recently introduced bug in DELSPL. EDIT 2063 Fix a timing problem on -20 which caused BATCON to not realize a job had really logged out. ;;First field-test release of GALAXY release 2, Jan, 1977 EDIT 2064 Fix a bad symbol reference in -10 version when core enforcement is turned on (%NSMXM). QAR #3. EDIT 2065 Make log files work on device NUL on the -20. Don't CHKAC them and don't send to LPTSPL. EDIT 2066 Fix a bug caused by edit 2052 which let BATCON start processing jobs before a START command was typed. (qar #9). EDIT 2067 Edit 2066 caused some additional problems. Try again. EDIT 2070 FIX KJOB TIMEOUT FOR -20 RELEASE 3 EDIT 4000 Make this version 104, April 1977. Insert changes for new FP/FD. EDIT 4001 Fix some problems in edit 4000. EDIT 4002 CONVERT CSPMEM AND CSPQSR TO GLXLIB ROUTINES EDIT 4003 USE GLXFIL FOR THE CONTROL FILE AND REPLACE RUNTIM UUO WITH GETJI JSYS EDIT 4004 MAKE ONE SEGMENT AND REMOVE (S) FROM SABBLK(ERROR) FIX REPOSI AND EXAMINE CODE EDIT 4005 ADD SOME PTY CODE FOR TOPS-20 AND CHANGE AC NAMES COMPLETE PTY CONVERSION OFF COMPATIBILITY PACKAGE EDIT 4006 MAKE SURE CODE FOR -20 STILL WORKS ON THE -10 EDIT 4007 CORRECT LONG LINES AND LOG FILE ERROR RECOVERY(RLJFN) EDIT 4010 CORRECT -20 PLACING JOB IN MONITOR MODE EDIT 4011 CONVERT DATA BASE TO .JQ??? FROM Q.??? EDIT 4012 CREATE BATMAC AS BATCONS UNIVERSAL FILE EDIT 4013 ADD NEW QUASAR MESSAGES FOR -10 EDIT 4014 ADD LOG FILE ERROR RECOVERY CODE TO QUEUE UP LOG FILE FOR USER FROM TEMP FILE CREATED BY BATCON EDIT 4015 ADD NEW CHECKPOINT REQUEUE DEFINITIONS EDIT 4016 PUT IN WTO ROUTINE TO ORION EDIT 4017 ADD NEW ACTION PROCESSING BY LINKED LIST EDIT 4020 ADD WTOR SUPPORT TO BATCON EDIT 4021 REMOVE OPERATOR INTERFACE EDIT 4022 ADD NEW CANCJB CODE AND OPTIONS EDIT 4023 SET UP WTO FOR EACH STREAM AND MAIN PROCESS EDIT 4024 ADD JOBMSG CODE INLINE NOT CONDITIONAL ASSEMBLY AND CONVERT A,B,C,D TO T1-T4 EDIT 4025 ELIMINATE JOBMSG WORD...ORION AND OPR WILL DECIDE EDIT 4026 SET SPOOL BITS IN RELEASE FOR CREATED LOG FILES. (ERROR LOGS OR QUASAR CREATED) EDIT 4027 CONVERT TO NEW WTO MESSAGE USING WTO.TY EDIT 4030 ADD NEW ITEXT ERRTAB PROCESSING EDIT 4031 ADD JOB NUMBER TO WTO MESSAGES EDIT 4032 FIX FD LENGTH FOR THE CREATED LOG FILE ON OPEN ERROR AND NOTIFY OPERATOR ON FAILURE THAT JOB WILL BE CANCELED. EDIT 4033 CORRECT LABEL INFO IN STATUS MESSAGE EDIT 4034 CORRECT GETJI INFO ON THE -20 EDIT 4035 Fix Formating at CLOS.5 as well as L$CRL2 for 2 L$CRLF EDIT 4036 INSTALL EDIT 3002 AS WELL AS -20 UPDATE FOR NEW LOGIN LINES AND SUPPORT FOR MORE JOBS ON THE -20 EDIT 4037 ADD $WTO MESSAGES FOR SETUP MESSAGE EDIT 4040 FIX CHECKPOINT STATUS MESSAGES FOR LOGGING IN JOBS AS WELL AS CANCELED AND REQUEUED JOBS EDIT 4041 FIX ?FULL FOR -20 AND SPEED UP PROCESSING OF OPR/USER REQUESTS EDIT 4042 FIX OPERATOR MESSAGES EDIT 4043 FIX -20 INTERRUPTS BY CHANGING INTERRUPT LEVELS EDIT 4044 FIX INMONM ERROR WHEN -20 EXEC SUBCOMMANDS FAIL ALSO FIX SOME SHOW-CONTROL-FILE MESSAGES EDIT 4045 FIX -20 IOWAIT CODE EDIT 4046 ADD CODE FOR ^R DISPLAYING OF JOB MESSAGE DATA EDIT 4047 FIX MONITOR LEVEL PROBLEM ON -20 EDIT 4050 FIX STOP LOGIC EDIT 4051 FIX SECURITY BUG FOUND BY LNEFF 2077 EDIT 4052 ADD SUPPORT FOR /BATLOG AND /OPRINT SWITCHES AND SET THE APPROPRIATE VALUES ON THE -20 FOR STREAM INFO IN THE MONITOR EDIT 4053 ADD SUPPORT FOR .QOSTU STATUS UPDATE MESSAGE AND THE RESPONSE TO SETUP CODES FOR NO PTYS AND SYSTEM FULL EDIT 4054 ADD NEW HEADER LINES TO LOG FILE FOR BATLOG(WRITE-LOG) AND OPERATOR-INTERVENTION (ASSISTANCE) EDIT 4055 FIX ABORTJ BUG AND CLEANUP ATOKJB EDIT 4056 ADD JOB NUMBER TO STATUS MESSAGE EDIT 4057 MODIFY IOWAIT ON -20 TO GET STATUS EACH TIME EDIT 4060 MODIFY HONORJ TO ONLY GET STATUS IF ENTER THROUGH HONO.0 EDIT 4061 Add SPR 20-10487 for timing problem originally edit 2070 EDIT 4062 Save all Labels identified with BLABL in .JLABL for use in Status EDIT 4063 Fix extra CRLF on BEGIN message also check EQ.PRV in File Open Routines to allow standard open not in behalf. EDIT 4064 Convert to new GLXLIB and New I%JINF Routines for runtime and Program Name. Also use $STOP with ITEXT EDIT 4065 CHECK LOGIN ERROR FOR INVALID ACCOUNT ON -20 OTHERWISE ASSUME NO JOBS SLOTS AND REQUEUE EDIT 4066 ADD DELETE SPOOL FILES IN .EQSIS FOR THE -20 EDIT 4067 READ INPUT FROM PTY BEFORE ATOKJB EDIT 4070 SET ACCOUNT OF USER ON LOG FILE FOR -20 HAVE JOBSTS VERIFY IF PTY HUNGRY THAT CHARACTERS HAVE BEEN READ USE EQ.IAS TO VERIFY ACCOUNT IN LOGIN FAILURES EDIT 4071 OUTPUT PLEASE RESPONSE TEXT AND CLEAN UP IF JOB KILLED EDIT 4072 FIX DELSPL ON -20 TO DELETE ALL FILES SPR 20-11329 EDIT 3001 EDIT 4073 ALLOW RESTART FOR JOB THAT USER MODIFIED AFTER SYSTEM CRASH TO BE RESTARTABLE. REMOVE EDIT 4061 SINCE 4070 BETTER SOLUTION EDIT 4074 USE MINIMUM SIZE FOR MEMORY ALLOCATION. CONSOLIDATE MESSAGE TO QUASAR ROUTINES EDIT 4075 CHECK FOR ERROR AFTER SETTING TIMER ON -20 LOGIN. REQUEUE THE JOB EDIT 4076 Release Message Page (C%REL) for Operator Messages EDIT 4077 ADD -20 STRUCTURE ACCOUNTING EDIT 4100 CHANGE CASING ON BTN MESSAGES EDIT 4101 FIX STATUS FOR JOB BEING SETUP EDIT 4102 Convert Types and Messages to Upper and Lower Case and Add Copyright Statement. Also Change Use of ENDERR to END. EDIT 4103 Send Status Update on Restarted Jobs after they start. This will Give Quasar the Job number EDIT 4104 Remove MONLVL and use INMO.1 TO MAKE -10 WORK RIGHT EDIT 4105 Always set Delete bit for Spool log Files. EDIT 4106 Change JOBSTS for the -20 to do 1 GETJI EDIT 4107 Setup Jobs Location on the -20 EDIT 4110 Add New LOGIN Switches on the -10 EDIT 4111 FIX OUTPUT:NOLOG PROBLEM IN LOG FILE AND SEND MESSAGES TO LOCATION OF THE JOB EDIT 4112 CORRECT DELSPL PROBLEM AND USE ONLY THE RIGHT HALF OF THE USER NUMBER EDIT 4113 Change -10 DUMP to DCORE EDIT 4114 Correct JOBSTS problem on -20 again. This time the monitor has the fix. EDIT 4115 Turn on Stream Number set for the -20 when setting the Batch Stream Number EDIT 4116 CHANGE JOBS.3 SO WE CAN COUNT THE HUNGRY ERROR STATES EDIT 4117 Change CANCEL to ABORT EDIT 4120 Remove F%FCHN and use relative Stream number for the channel EDIT 4121 Add code back at JOBS.3 to clear hungry in certain cases Add ERJMP after a SETJB EDIT 4122 Change the L$OUTP and L$CHKP to return back instead of just aborting. This prevents the SNDCHK code from having the main stack as streams stack. This can cause too many text levels. Fix QAR when -20 logout happens quickly and there is no more output to wait for. EDIT 4123 Have -10 DCORE add extension .DMP to avoid deletion. EDIT 4124 Use -1 as ack code for CANUSR so that ORION will log and not generate an error EDIT 4125 Fix a bug in NEWJOB so that the AC's checking the /UNIQUE switch value dont self destruct. EDIT 4126 Send a ^C on the -10 on user login failure to clean up Job slot EDIT 4127 Correct Batch Bug in LOGIN when log file Opened during LOGIN EDIT 4130 TOPS-20 only. The SOUT JSYS now has an error return to indicate a PTY's buffer is full. Teach BATCON. Routines affected: PTYSND (BATCON). EDIT 4131 TOPS-20 only. Can't trust the status returned by interrupts regarding PTY hungry. JSYSs don't lie. Use them instead. Routines affected: JOBSTS (BATCON). EDIT 4132 TOPS-20 only. Forgot to do a GETER JSYS before checking error code. Routines affected: PTYSND (BATCON). EDIT 4133 TOPS-20 only. More of edit 4132. Routines affected: PTYSND (BATCON). *** BATCON 104(4133) released with TOPS20 v4 *** EDIT 4134 Make BATCON version number global to include the sum of edits in all modules (BATLOG). Also change FTUUOS to TOPS10 and FTJSYS to TOPS20 conditionals. EDIT 4135 TOPS10 only. Remove the DCORE command forced on a job when an unexpected error has occured. The DUMP program is no longer supported. Routines affected: CHKCLS (BATCON). Edit Module Explanation ---- ------ ----------- 4500 ALL Begin major structural re-organization of BATCON and general code cleanup. 4501 BATCON Convert to Full SCNSER controlled PTYs on TOPS-10. 4502 BATCTL Create new module 'BATCTL' that contains all control file logic. This includes line parsing and label searching as well as the routines to OPEN, CLOSE, and delete the file at the end of the stream. 4503 BATPTY Create new module 'BATPTY' that contains all PTY logic. 4504 ALL Lots of bug fixes to insure that BATCON still performs as it did before the re-organization. 4506 BATPTY Make P$TERM turn off TTY DEFER since it doesn't do anything for us and could be the cause of random PTY I/O problems. 4507 BATCTL Add additional checks for control file lines without "*" or the monitor prompt at the begining. These lines were being ignored when they shouldn't have been. 4510 BATCTL Better checking for ambiguous commands required when a abreviated Batch command would conflict with a monitor command. 4511 BATCON Fix bug that caused NOERROR not to work. 4512 BATCTL Any command that takes a label for an argument forgot to check for a reserved label being specified. 4513 BATCTL Fix a bug that caused BATCON to report 'Found %FIN while searching for %FIN'. 4514 BATCTL Control character translation broken. Forgot about character codes ^O33 to ^O37. 4515 BATCTL Time stamps not aligned when vertical motion characters encountered as first characters in a line and the job is in monitor mode. 4516 BATCON Add new code to support Batch/MDA interface. Teach BATCON about message types that request control file prescanning by BATCON. Start to invent the concept of a job step (new to BATCON) and a step header processor. Edit Module Explanation ---- ------ ----------- 4517 BATCTL Add support for the job step header parsing. This requires the same command syntax (ALLOCATE and MOUNT commands) that the timesharing user currently has. The Galaxy parser 'OPRPAR' and the ALLOCATE/MOUNT parser subroutines 'MNTPAR' must now be loaded with BATCON. "$" is a new special character to indicate a line is part of the step header. The step header commands are $STEP, $ALLOCATE, $MOUNT, and $ENDPROLOGUE. 4520 BATCTL Change all occurances of $ENDPROLOGUE step header command to $ENDHDR. 4521 BATLOG During step header processing, write a log file showing what occurred. Use the /BATLOG bits to determine how to write the file. 4522 BATLOG If two jobs are in the Batch queue, one running and the other being prescanned, the prescanned job cannot write the same log file as the running job. In all prescan cases, write a temporary log file in the spooled area. If no errors are detected, delete the temporary file, otherwise, print it and delete it. 4523 BATCON If errors are detected during a prescan, cancel the Batch job. 4524 BATCON Clean up log file and error recovery routines during step header processing. 4525 BATCTL %FIN sometimes get skipped over (even when searching for %FIN). Routines calling LABSRC (to search for labels) should also set/clear FR.FIN to indicate whether or not %FIN may be skipped over during a search. 4526 ALL Move BATCON version number and edit history (this text) into BATMAC. Also remove references to individual module edit levels. This is the way QUASAR and its components are aranged. 4527 BATCTL Fix bug that caused ^^ to be translated into control-^ when ^ is what the user really wanted. 4530 ALL Re-define flags in AC 'F' as 36 bit quantities and change all FR.??? flags to FL.???. This allows TX?? macros to be used. Do the same for the flags in AC 'J'. 4531 BATCTL Fix a bug that allowed non-alphabetic characters to be passed to the monitor if a control file line did not begin with a recognized special character. Edit Module Explanation ---- ------ ----------- 4532 BATCON B$XFER assumed that a carriage return always preceeded a line feed when copying characters to the PTY. Not so. 4533 BATCON Don't write a log file or cancel a job during a step header prescan. Instead, allow the job to run and let it die a rapid and rabid death. This treatment has two redeaming features; (1) the user will be charged for some of BATCON's overhead by virtue of the fact that a job logged in and (2) it is possible to get more informative error messages out of QUASAR when ALLOCATE/MOUNT commands are issued at monitor level. 4534 BATCTL Be more defensive about multiple $STEP cards in a single step or no $STEP card seen. 4535 BATCTL More problems with lines that begin with non-special characters. Add new routine RNDMOD to handle these type of lines. 4536 BATCON QUASAR not getting initial checkpoint message before step header processing. Move call to SNDCHK from C$STRT to JOBINI. 4537 BATCTL ALLOCATE/MOUNT messages always has the "nothing in message" bit set if there is really something there. Change SKIPE to a SKIPN. 4540 BATLOG Fix a security bug. 4541 BATCTL When checking for an possible Batch command in MONMOD, send process the line at MONCMD if the test fails. Don't send it at user level. 4542 BATPTY BATCON waits forever in P$NXTC loop looking for a character. Check to see if the job is ready for input and if so, give up. 4543 BATCON No error processing occurs during step header scan after job logs in. Abort job if an error occurs. 4544 BATMAC Remove flags RL.JNA and RL.FCI since no longer needed. BATCON Add a new flag, FL.CTP, to indicate a carriage return has been sent to a PTY. Up until now, FL.CFP was timeshared between output to and input from a PTY with marginal results. 4545 BATCON Check the existance of the MDA PID on startup and ignore BATCTL ALLOCATE/MOUNT commands in a step header. Indicate in the log file that the line was ignored. 4546 BATCON Fix lots of bugs relating to error trapping (especially during the LOGIN sequence. Re-work the code at ANALYS so it could be more easily understood. 4547 BATCTL C$DISP forgot to clear .JCOPN(R) after releasing the channel causing a GLXLIB stopcode when C$CLOS tried to do the same. Edit Module Explanation ---- ------ ----------- 4550 ALL Fix up some typos and undefineds under TOPS-20 conditionals. 4551 BATCTL Don't HALT if too many ALLOCATE/MOUNT requests cause a page overflow. Issue error message instead. Also put some code under assembly conditionals. 4552 BATCTL Fix a bug involving error trapping and a control file with out a special character in column one. 4553 ALL Fixes to lots of code so it will run under TOPS-20. 4554 BATCON If a JOBSTS UUO or GETJI JSYS fails, don't stopcode. Instead assume the job has gone away and terminate the stream. 4555 BATCON Rework TOPS-20 PTY interrupt code. 4556 BATCON Attempt to recognize PTY echo and not check ERROR or OPERATOR BATPTY characters. 4557 BATMAC More of edit 4555 BATCON 4560 BATMAC Enhance changes made in edit 4556 to check for a PTY being BATCON set to a no echo state. This will allow error trapping when programs set no echo to input passwords. BATCON won't be fooled into thinking the error message coming back is just program echo. 4561 BATPTY For TOPS-20, clear any links to a PTY and clear it's output buffer during PTY initialization (SPR #20-13083). 4562 BATCTL .IF(ERROR) broken (note the absence of a space between the IF and the (ERROR)). 4563 BATCON Little anoying buggers BATCTL 4564 BATCON Take advantage of the new TOPS-10 LOGIN switches (/BATINT and /BATSTR) to set the operator intervention and WTO/WTOR privs. This will eliminate most of the TOPS-10 code in LOGSET. These switches are required for Galaxy 4.1 and later versions of QUASAR and ORION. 4565 BATMAC Handle log file output errors gracefully instead of stopcoding BATCON when $TEXT nests too many levels. Instead, set a flag when the BATLOG error occurs and handle it at top level. 4566 ALL WTO and log file message clean up. Edit Module Explanation ---- ------ ----------- 4567 BATCON Clean up end of stream code BATLOG 4570 BATCON If the control file could not be OPENed while servicing a BATCTL prescan request from QUASAR, the prescan stream exited without telling QUASAR. 4571 BATCON Fix time limit exceeded checking and associated bugs. 4572 BATCTL Clean up junk in PLEASE command sent to the operator. 4573 BATCON Add missing POPJ at SEND.1 - 1. 4574 BATMAC Add word .JLPTR (log file data) and fix NEWLOG to generate BATLOG random log file names correctly. 4575 BATPTY P$STOP looped forever if two attempts to ^C a job failed. Delete lots of code and do it like the good ole MPB BATCON did. It seemed to work OK then. No reason why it shouldn't now. 4576 BATCON Use new feature IB.DET to detach from FRCLIN. 4577 BATMAC Clean up LOGIN/BATCON error code handling. Do other small BATCON fixes too. Delete IB.DET (GLXLIB defaults to detach). Clean BATCON up MDA page handling a bit. 4600 BATMAC Add a fairness count when processing control file searches. BATCON A maximum of CTLFCT control file lines will be processed BATCTL before rescheduling the stream. 4601 BATCON I%SLP will now allow TOPS-10 jobs to specify certain HIBER UUO wake up bits. Use I%SLP and remove system dependant code in TSLEEP. 4602 BATMAC Add support for step header processing of modify requests BATCTL so that in-house sites that require accounting info on a per stream basis can have a $ACCOUNT card in a step header. *** Note *** This is unsupported code is under FTMODIFY feature test switch that MUST be turned off before customer ship. 4603 BATCON In LOGINJ, call P$TERM after sending control-C to wake up the PTY. Otherwise, some TTY characteristics might not get set correctly. 4604 ALL Clean up a few log file error messages. Make $WTO/$WTOR/$WTOJ text messages more consistant. Edit Module Explanation ---- ------ ----------- 4605 BATMAC Clean up MDA and MODIFY interface. Plug remaining holes in the BATCON BATCON/QUASAR MDA dialogue that caused some messages to get lost BATCTL and jobs never to be processed. 4606 ALL Use standarg Galaxy object blocks. Remove all references to .JQTYP, .JQSTR and .JQNOD. 4607 BATMAC Invent new flag 'RL.FKJ' (fast KJOB without QUASAR/ORION help). BATCON If QUASAR or ORION croaks, BATCON will kill off the streams, but BATPTY we must be careful not to attempt to talk to anyone since this could cause a GLXLIB stopcode or BATCON to loop. Upon setting this bit (by calling B$FKJB with AC 'R' setup, the job will be killed on the next pass and the stream database cleaned up. 4610 BATCON Prevent BPN stopcodes in the shutdown code by doing a HRRZ instead of a MOVE to pick up the stream relocation. Flags are in the left half word, remember? 4611 BATCTL Prevent IFN stopcodes by making C$DISP check the control file opened flag instead of blindly trying to release a non-existant IFN. 4612 BATCON Add a new entry point (via the .REENTER command) to set G$KILL and force an orderly shutdown the the batch world. 4613 BATMAC Remove redundant words in the stream data base. No need for BATCON .JCOPN/.JCCHN or .JLOPN/.JLCHN since a GLXLIB IFN is a non- BATCTL zero quantity. Create new locations .JCIFN and .JLIFN. BATLOG 4614 BATCON Fix lots of problems with dialogue and single quote mode. BATPTY 4615 BATCTL Process $ALLOCATE commands only on step header scans. This avoids unnecessary BATCON/IPCF/QUASAR overhead and the strange results produced by generic device requests. 4616 BATMAC Generate checkpoints without being prompted by QUASAR. BATCON Checkpoint interval is defined by CKTIME. This eliminates BATCTL about half of the IPCF traffic and reduces redundant messages for stupid streams that do .CHKPNT commands on every other line. 4617 BATCTL Fix confusion when user doesn't have proper line identification and job in user mode and BATCON can't deceide what to do with command line. 4620 BATCTL When ?TIME LIMIT EXCEEDED happens, don't loop searching for %TERR when %FIN is encountered. Just proceed from %FIN. Edit Module Explanation ---- ------ ----------- 4621 BATPTY Use symbolic references to the full SCNSER PTY bit in OPEN UUOs. 4622 BATCON Fix MSGTXT to skip null acks. Fix CANJBN to really cancel a job if aborted by the operator. 4623 BATCTL When .IF (ERROR) or .IF (NOERROR) is followed by a null line (just spaces or CRLF) don't send it to the job. 4624 BATCTL Finish up the unsupported modify code for changing account BATCON strings. 4625 BATCON Clean up use of the SAB. If not debugging, send stopcodes to ORION and use GLXPFH. If debugging, don't send stopcodes to ORION and don't use GLXPFH. This saves some overhead. 4626 BATCON Make the SAB global to BATUSR can reference it. Don't rely on BATCTL it always being set up. Also a few other locations global for BATPTY BATUSR. Re-order some code to fix quotes mode operation. Add BATUSR a missing POPJ and comma in log file header code example. By the way, BATUSR is a new module born sometime between edits 4621 and 4623. Its purpose is to contain user (customer) exit routines so that BATCON and friends don't need to be modified heavily by customers to implement local hacks. 4627 BATMAC Make the operator interface more friendly and useful. Previous BATCON attempts to do this have resulted in eratic and devistating BATCTL behavior (e.g. STOP and CONTINUE commands). The new interface BATLOG is smaller, understandable and reduces the overhead of calling BATPTY GLXLIB's linked-list and memory managers. In addition it now provides a generalized mechanism for carrying on dialogue between BATCON and the operator (it even validates the responses!), and the means to correctly parse messages from ORION. In addition, the operator messages are more informative and information is never typed more than once. All known IPCF/Operator/QUASAR bugs have been fixed. Fortunately for BATCON (not for me), a complete rewrite of the interface was necessary. 4630 BATMAC Program around OPRPAR's stupidity in handling parse pages. BATCON Fix problems with streams wanting to talk to the operator and no intervention is set. Shuffle lots of code around so that related subroutines will usually live near each other. 4631 BATCON Make CLRSTR release all extra core inuse by stream. Things like the MDA and MODIFY pages were ignored and BATCON could grow. 4632 BATMAC We no longer need to remember whether or not a stream is set BATCON for no operator intervention now that ORION handles it right. Remove all references to the FL.NOP bit. Edit Module Explanation ---- ------ ----------- 4633 BATMAC Allow /DISPOSE:RENAME to work correctly for control files BATCON and log files. Include in the log file header, the original BATCTL filename and extension if file has been renamed. BATLOG 4634 BATCON Begin job at %FIN if job has been restarted and the user BATPTY said /RESTART:NO. Turn off XOFF/XON processing so stream won't hang when some one puts ^S in their CTL file. When a SOUT to a PTY fails, use updated byte pointer and byte count for the retry. If the output isn't IOX33, tell the operator and cancel the job. Don't stopcode. 4635 BATCON Delete log file if /BATLOG:SPOOL and /OUTPUT:ERROR are set and the job does not end in error. 4636 ALL Cleanup lots of little things and begin process of making work under TOPS-20. 4637 BATCON Wait one scheduler pass after doing a LGOUT JSYS because the -20 is pretty slow killing jobs. 4640 BATCON Use GETLIM macro to get /CORE and /TIME values. BATPTY Clear PTY buffer in P$OBUF since the -20 won't do it for us. 4641 BATCON Cancel message code (ABORT command) didn't always handle /ERROR, /NOERROR or /PURGE switches correctly. 4642 BATLOG Correct logic error in the log file deletion code. 4643 BATCON More of edit 4637. 4644 BATCTL Undo edit 4615 since there was a better fix in QUASAR. 4645 BATCON When processing unhandled errors, issue the .DUMP command before the .CLOSE command. More information will be avail- able in the batch dump that way. Clear message flags at end processing "ABORT BATCH-STREAM nnn/ERROR" commands so that subsequent commands may be given. BATLOG Don't call L$IOER from L$CHKP or we'll get into a loop. Let the code at HONORJ catch the error as it was intended to do. BATPTY Check for SILENCEd log file after storing PTY output in the WTO buffer, since the two have nothing to do with each other. 4646 BATCON Don't set IPCF quotas in the PIB twice. Kill off pending WTOR messages if a job gets canceled. Edit Module Explanation ---- ------ ----------- 4647 BATCON Store zero for a job number in release message to QUASAR when a batch jobs fails before it's logged in. By doing this, log files won't get deleted when they should be preserved. Don't send MDA allocation messages more than once. BATCTL Strip off generation number from TOPS-20 filespecs so that users can submit jobs and edit the CTL files before the job starts to run. 4650 BATCON Only ask for MDA's PID on TOPS10. Also, at OPER.1 save the ITN as the ACK code for RESPON: 4651 BATCON Allow blank lines in step headers. Advance to next line prior to searching for %TERR, since the current line caused the error and it would get time stamped and marked as 'IGNORE' during the search. BATCTL Complain if $STEP lines don't have an argument. Don't process a label line twice when C$STRT finds the starting label and it's the first line in the file. 4652 BATCON Make operator ABORT work correctly. ^C the PTY and inform QUASAR of correct stream status if ABORT/ERROR. 4653 BATMAC Invent clock request queue so we can time any event. Use it BATCON on the -20 to put a stream to sleep so it has time to LOGOUT. 4654 BATMAC Add REQTIM to requeue message to specify wakeup time. If BATCON REQTIM = 0, then HOLD job, else REQTIM = minutes until BATCTL job restart. Ignore GETJI JSYS failures and continue checking PTY input ready/output available status. Check for legal labels before starting jobs at a tag. 4655 BATMAC Fix age old batch bug that where a stream would do a .CHKPNT BATCON and continue running even though QUASAR had croaked. Request BATCTL an ACK from the stream requested checkpoint message and don't let it continue until we get the ACK. 4656 BATCON Fix bug in DELSPL that caused BATCON to attempt deleting the wrong spooled files. 4657 BATCTL Allow .NOOPERATOR commands when job is in error. Edit Module Explanation ---- ------ ----------- 4660 BATMAC Move .JBSTS data from stream to JSTBLK in BATCON. BATCON Avoid confustion between ACK codes when doing checkpointing. Clean up a few messages at documentation's request. BATCTL Remove stopcode following call to P$INIT. It can't fail. Fix tag searching at begining of job. Have .BACKTO processor C$ZPOS instead of rewinding the CTL file itself. Fix up the CTL filespec before genreating the log file header. 4661 BATMAC Remove entry .JWADR from the stream data base. BATCON Remove routine WTOPAG since it's no longer used. 4662 ALL Update copyrights. Invent routines to translate time to ASCIZ text. Clean up time limit exceeded messages to OPR and log files. Tell OPR if CTL file EOF and searching for %TERR. Tell OPR when stop request queued cuz the -20 is slow. Enhance the modify code to include more options. Add routine U$FIRE to allow customers to copy EQ stuff. 4663 BATCON Standardize all WTOR messages so BATCON looks like all other BATCTL spoolers. Make sure that WTO/WTOR 'type text' is pretty. BATLOG Check for job going away and turn on code at B$GONE. BATPTY Include the CTL and LOG file specs in WTO at JOBPRC. 4664 BATCON Make sure WTO buffer gets terminated at B$WTO and B$WTOR. BATCTL Always include the JIB in WTORs in messages from B$OPER. Change WTO and LOG text at B$GONE and LABEOF for documentation people. More hacks to the -20 LOGOUT timer stuff. If the monitor supports MDA, wait until the PID get created. 4665 ALL Remove references to FL.ERR since it is obsolete. BATCON User redefines KJOB command. We can't kill jobs. Used forced KJOB command. BATPTY Correct error checking code if output to PTY fails. 4666 BATCON Cause status update after operator response since it may change. GCO 1275 4667 BATMAC Add location .JLECD to stream data base for log file error BATLOG code. Make log file output error message more explicite. GCO 1276 Edit Module Explanation ---- ------ ----------- 4670 BATCTL Don't list skipped lines during .BACKTO command processing. GCO 1277 4671 BATCON If a user requested a KJOB and it fails, the time limit will be reset. Don't go searching for %TERR. GCO 1318 4672 BATPTY Clear MIC status before attempting to stop a job. GCO 1304 4673 BATMAC Remove old clock queue crock and implement a new general BATCON purpose clock queue facility that will allow clock requests to be satisfied either when a specified event occurs or when a timer expires. In addition, while pending events and/or timer requests are outstanding, PTY output will be eaten and logged. This may be suppressed if desired. GCO 1354 4674 BATMAC Delete obsolete flags. Shrink the stream data base. BATCON Add global scratch byte pointer and count. BATCTL Flush spaces before batch cmds. Fix EOL testing, /DISP:REN. BATLOG NEWLOG doesn't always generate unique filenames. GCO 1355 4675 BATCON Don't send illegal account strings to LOGIN. GCO 131 4676 BATCTL Forgot that abbreviations for batch commands cannot be less than 2 characters long. GCO 1382 4677 BATPTY Set proper TTY parameters on the -20. GCO 1385 4700 BATCON Don't process status updates while ACKs outstanding. GCO 1390 4701 BATCON Don't clobber T1 which has good info before doing SETJB. GCO 4.2.1424 4702 BATCTL Allow .REQUEUE with no label. GCO 1445 4703 BATMAC Correct definition of WTOSIZ to use full page. GCO 1446 4704 BATCTL Have user requeue set requeue time instead of hold. GCO 1447 4705 BATCON Processlines containing both a label and a command correctly. SPR # 10-33993 29-JUL-83/CTK 4706 BATCON Delete unneeded and unexecuted instructions in B$WPUT. SPR 10-33100 20-OCT-83 /LWS 4707 BATMAC Define new word in .JXXXX area, .JLLBL, "last label encountered". BATCON Fix problem that piggybacking "label to search for" and "last BATCTL label encountered" in .JLABL causes. Namely, wrong batch status info and possibly wrong DUMP info. SPR 10-34144 8-Nov-83 /LWS 4710 BATCON Fix problem of operator messages interfering with BATLOG user output, especially when user output contains possible error characters. Also fix minor bug in L$COPY. SPR 10-34158 12-Nov-83 /LWS 4711 BATCON Don't give batch job to B$GONE until JL.ULI and JL.UJA are both off. This lets someone who puts ".K" in their control file see LOGOUT text. SPR 10-34336 28-Nov-83 /LWS 4712 BATCON Fix problem where G$SACT was decremented when it shouldn't when no PTY's were available to fire up a stream. Symptom was BATCON would stop processing jobs because G$SACT may get to zero. SPR 10-34928 GCO 10117 8-Nov-84 /LWS 4713 BATCON Fix another no available PTY problem. BATCON would send an erroneous checkpoint message after it had already sent a %RSUNA response to setup. QUASAR would say hey, Specified request is not yours. SPR 10-34931 GCO 10118 8-Nov-84 /LWS 4714 BATCTL Fix CRLF with no line identifier to send both the carriage return and line feed to the PTY. SPR 10-34901 GCO 10222 30-May-85 /DPM 5000 BATMAC Make all modules reference %%.BAT (now globaly defined) BATCON so version skews between modules will be detected by BATCTL LINK. Add support for KSYS processing. This involves BATLOG the use of extended channels and special stream numbers BATPTY above INPMAX. Write KSYS log files and queue them up BATUSR /DISPOSE:DELETE if errors logging the job out. Otherwise the log file will be deleted. 5001 BATMAC Send informative text in release message to QUASAR. BATCTL Implement .ABORT command to allow BATCON a user to croak off his own job. Likewise, the .STATUS command will do all but kill the job. 5002 BATMAC Change definition of IPCSIZ from XP IPCSIZ,^D25 to XP IPCSIZ,^D25. This is because INFO changes in QSRMAC created a new symbol IPCSIZ. It's easier to change here. GCO 10083 27-Aug-84 /LWS 5003 BATCON Ensure that KSYS log files always go to the correct BATLOG queue structure by GETTABing the value each time it's needed. GCO 10097 21-Sep-84 /DPM 5004 BATPTY Prevent occasional job hangs while trying to read error codes during a LOGIN sequence which do not contain digits between paranthesis. GCO 10098 21-Sep-84 /DPM 5005 BATMAC Use continuation lines for LOGIN command so echoing looks BATCON pretty. BATPTY GCO 10137 15-Jan-85 /DPM 5006 BATCTL Recognize K, KJ, and KJO as legal abbreviations to the KJOB command. GCO 10162 12-Mar-85 /DPM 5007 BATCON If limit word OPTN is non-zero, pass that quantity to LOGIN as an argument to the option switch. GCO 10172 21-Mar-85 /DPM 5010 BATCTL If JOBSTS bit JL.UHI (user is HIBERing for input) is on, BATCON allow non-monitor input to be passed to the job. GCO 10282 09-Sep-85 /RCB 5011 Update copyright statement. 12-SEP-85 /LEO 5012 BATCTL Fix problem in 5010. GCO 10289 17-Sep-85 /RCB 5013 BATLOG Put user's account string on the LOG file, not BATCON's. GCO 10313 28-Oct-85 /DPM 5014 BATCON Fix off-by-one bug in line width computation which BATPTY caused a messy log file when the PTY echo wrapped a LOGIN line. GCO 10318 1-Nov-85 /DPM 5015 BATCON Fix incorrect GETTAB of spooled file PPN. GCO 10333 4-Dec-85 /DPM \ SUBTTL Assembly parameters ; System dependant parameters ; SYSPRM DEFMJB,INPMAX,^D9 ;MAXIMUM NUMBER OF JOBS SYSPRM KSYMAX,^D10,0 ;MAXIMUM NUMBER OF KSYS STREAMS SYSPRM MONCHR,".","@" ;MONITOR PROMPT CHARACTER SYSPRM PTYBLK,23,30 ;PTY BUFFER SIZE IN WORDS ; System independant parameters ; ND FTMODIFY,0 ;UNSUPPORTED IN-HOUSE MODIFY CODE ND IZTIME,^D60 ;INACTIVE SLEEP TIME IN SECONDS ND AZTIME,^D15 ;ACTIVE SLEEP TIME IN SECONDS ND CKTIME,^D60 ;CHECKPOINT EVERY 60 SECONDS ND KJTIME,^D60 ;TIME TO KILL A JOB ND HLTIME,^D30 ;TIME TO HALT A JOB ND SNDMAX,^D511 ;IPCF SEND QUOTA TO SET ND RCVMAX,^D511 ;IPCF RECEIVE QUOTA TO SET ND TPSIZE,100 ;SIZE OF THE TOP LEVEL PDL ND .JPSIZ,100 ;SIZE OF THE JOB PDL ND %EXTRA,^D10 ;PERCENTAGE OF EXTRA TIME GIVEN A JOB ND CTLSIZ,^D300 ;CHARACTERS IN SCANNER TEXT BUFFERS ND KEYSIZ,^D14 ;MAXIMUM CHARACTERS IN KEYWORD BUFFER ND WTOSIZ,<*5> ;MAXIMUM CHARACTERS IN A WTO/WTOR ND RSPSIZ,^D80 ;MAXIMUM CHARACTERS IN OPR RESPONSE XP IPCSIZ,^D25 ;MAXIMUM IPCF MESSAGE SIZE IN DATA BASE ND IPCLVL,1 ;IPCF PRIORITY INTERRUPT LEVEL ND PTYLVL,1 ;PTY PRIORITY INTERRUPT LEVEL ND CTLFCT,^D500 ;CONTROL FILE FAIRNESS COUNT ND CLKMAX,JOBMAX+5 ;NUMBER OF CLOCK REQUESTS ND REQTIM,5 ;REQUEUE TIME ; Parameters not easily changed ; PSCSTR==DEFMJB+1 ;PRESCAN STREAM NUMBER KSYSTR==PSCSTR+1 ;STARTING KSYS STREAM NUMBER JOBMAX==KSYSTR+KSYMAX+1 ;MAXIMUM NUMBER OF PROCESSES STPCHR=="$" ;STEP PROMPT CHARACTER ; TOPS-10 dependant parameters ; TOPS10 < ;TOPS-10 ONLY > ;END OF TOPS-10 CONDITIONAL ; TOPS-20 dependant parameters ; TOPS20 < ;TOPS-20 ONLY ND IPCCHN,0 ;IPCF INTERRUPT CHANNEL ND PTYCHN,1 ;PTY INTERRUPT CHANNEL (FIRST OF TWO) INTMSK==1B!1B!1B ;INTERRUPT CHANNEL MASK .BFADR==0 ;BUFFER RING ADDRESS .BFPTR==1 ;BYTE POINTER .BFCTR==2 ;BYTE COUNT > ;END OF TOPS-20 CONDITIONAL ; Consistancy check for assembly parameters ; IFLE DEFMJB,< ;VALUE MUST BE POSITIVE PRINTX % DEFMJB less than 1, 1 assumed DEFMJB==1 ;SET TO 1 > ;END OF IFLE DEFMJB CONDITIONAL TOPS10 < ;TOPS-10 ONLY > ;END OF TOPS-10 CONDITIONAL TOPS20 < ;TOPS-20 ONLY IFG ,< ;DEFMJB CANNPT BE GREATER THAN 9 PRINTX % DEFMJB greater than 9, 9 assumed DEFMJB==^D9 ;SET TO 9 > ;END OF IFG CONDITIONAL > ;END OF TOPS-20 CONDITIONAL IFL <%EXTRA-^D10>!<^D100-%EXTRA>,< ;MUST BE BETWEEN 10% AND 100% PRINTX Bad value for percentage of extra time, 10% assumed %EXTRA==^D10 > ;END OF IFL CONDITIONAL SUBTTL Accumulator definitions ; *** Note *** ; The order of these ACs cannot easily be changed. See the context switching ; code in the job scheduler. ; F==13 ;MISCELLANEOUS STREAM FLAGS J==14 ;JOB STATUS S==15 ;STREAM INDEX R==16 ;RELOCATION INDEX FOR STREAM ; LH = FLAGS ; RH = BASE ADDRESS OF STREAM DATA P==17 ;PUSH DOWN LIST POINTER ; USED FOR BOTH BATCON TOPLEVEL AND ; INDIVIDUAL STREAMS SUBTTL Batch stream flags ; Flags for batch streams ; RL.ACT==1B0 ;STREAM IS ACTIVE (MUST BE SIGN BIT) RL.ACK==1B1 ;WAITING FOR AN ACK RL.OPR==1B2 ;WAITING FOR OPERATOR RESPONSE RL.JIE==1B3 ;JOB IN ERROR RL.KJB==1B4 ;AUTO KJOB LINE SENT RL.NSC==1B5 ;DON'T SCHEDULE STREAM RL.MSP==1B6 ;MESSAGE READY TO PROCESS RL.LGI==1B7 ;JOB LOGGING IN NOW RL.QTS==1B8 ;QUOTES SEEN RL.DIA==1B9 ;DIALOGUE MODE RL.STP==1B10 ;STOPPED BY THE OPERATOR RL.NLG==1B11 ;NO LOG FILE AVAILABLE RL.MIP==1B12 ;OPERATOR MESSAGE BEING PROCESSED RL.FLS==1B13 ;REQUEST TO FLUSH JOB RL.DRT==1B14 ;DELAY RESPONSE BUFFER TYPEOUT RL.FKJ==1B15 ;KILL JOB FAST WITHOUT QUASAR/OPR HELP RL.REQ==1B16 ;JOB BEING REQUEUED RL.SHT==1B17 ;SHUTDOWN STREAM AT EOJ ; Initial flags ; RL.INI==RL.ACT!RL.LGI ;JOB ACTIVE, LOGGING IN ; Flags in AC 'F' ; FL.RCL==1B0 ;RE-EAT COMMAND LINE FL.NER==1B1 ;NOERROR IS IN EFFECT FL.SUP==1B2 ;SUPRESS EOL CHARACTERS FL.SIL==1B3 ;SILENCE IS IN EFFECT FL.TLE==1B4 ;TIME LIMIT EXCEEDED FL.%XT==1B5 ;EXTRA TIME GIVEN FL.CFP==1B6 ;CARRIAGE RETURN READ FROM A PTY FL.CTP==1B7 ;CARRIAGE RETURN SENT TO A PTY FL.SPL==1B8 ;SPECIAL PROCESSING FOR MESSAGE FL.LSL==1B9 ;LIST SKIPPED LINES IN LABEL SEARCHES FL.FIN==1B10 ;LABEL SEARCH CAN PASS A %FIN FL.UHE==1B11 ;UNHANDLED ERROR OCCURED FL.LFE==1B12 ;LOG FILE ERROR ON OPEN FL.CHK==1B13 ;SEND CHECKPOINT DATA AND UPDATE FL.SCC==1B14 ;SENT ^C TO STOP THE JOB FL.ECH==1B15 ;LINE IS PTY ECHO FL.NUL==1B16 ;LOG FILE DEVICE IS NUL: FL.EOJ==1B17 ;END OF JOB PROCESSING DONE FL.UKJ==1B18 ;USER REQUESTED KJOB FL.PST==1B19 ;PRESCAN STREAM FL.KST==1B20 ;KSYS STREAM FL.TXT==1B21 ;COPY .JWTOP TO REL.TX FOR RELEASE MSG ; Initial flag settings ; FL.INI==0 ;NO FLAGS SUBTTL Miscellaneous bits and OPDEFs ; Job status bits ; ** Note ** ; These bits are identical to the TOPS-10 JOBSTS UUO bits ; JL.UJA==1B0 ;JOB NUMBER ASSIGNED JL.ULI==1B1 ;JOB LOGGED IN JL.UML==1B2 ;JOB AT MONITOR LEVEL JL.UOA==1B3 ;OUTPUT IS AVAILABLE JL.UDI==1B4 ;JOB CAN DO INPUT JL.UJC==1B5 ;JACCT IS SET JL.UNE==1B11 ;NO ECHO IS SET JL.UHI==1B15 ;JOB IS HIBERING FOR INPUT JL.UJN==777B35 ;JOB NUMBER ; Checkpoint/Requeue bits ; BA.JOB==1B0 ;SEEN THE JOB FLAG BA.ORQ==1B1 ;JOB REUEUED BY OPERATOR BA.URQ==1B2 ;USER REQUEUED THE JOB BA.CHK==1B3 ;CHECKPOINT JOB BY USER ; Message processing bits ; B.DEFR==400000 ;FLAG TO PROCESS BY STREAM B.STCN==200000 ;STOP AND CONTINUE OPERATOR MESSAGE ; Opdef the BATCON LUUOs ; OPDEF IDENT. [1B8] ;IDENTIFY A LINE IN A LOG FILE OPDEF IDHDR. [2B8] ;IDENTIFY A LINE IN A LOG FILE HEADER ; Macro to support the IDENT. UUO ; DEFINE $IDENT (STAMP,TEXT), ; Macro to support the IDHDR. UUO ; DEFINE $IDHDR (STAMP,TEXT), SUBTTL Stream data base PHASE 0 ; Queue entry data ; .JQITN:! BLOCK 1 ;INTERNAL TASK NAME .JQJBB:! BLOCK JIBSIZ ;JOB INFORMATION BLOCK .JQLIM:! BLOCK EQLMSZ ;LIMIT BLOCK .JQACT:! BLOCK 10 ;ACCOUNT STRING TOPS10 < ;TOPS-10 ONLY .JQPPN:! BLOCK 1 ;PPN .JQPAT:! BLOCK 6 ;PATH > ;END OF TOPS-10 CONDITIONAL TOPS20 < ;TOPS-20 ONLY .JQNAM:! BLOCK 10 ;USER NAME .JQCON:! BLOCK 12 ;CONNECTED DIRECTORY .JQSIS:! BLOCK 1 ;SPOOLED INPUT SET (FROM SPRINT) > ;END OF TOPS-20 CONDITIONAL .JQCFP:! BLOCK FPXSIZ ;CONTROL FILE PARAMETER BLOCK (FP) .JQCFD:! BLOCK FDXSIZ ;CONTROL FILE DESCRIPTOR BLOCK (FD) .JQLFP:! BLOCK FPXSIZ ;LOG FILE PARAMETER BLOCK (FP) .JQLFD:! BLOCK FDXSIZ ;LOG FILE DESCRIPTOR BLOCK (FD) .JQOBJ:! BLOCK OBJ.SZ ;OBJECT BLOCK .JQLOC:! BLOCK 1 ;LOCATION FOR OUTPUT ; Job processor data ; .JREGS:! BLOCK 20 ;JOB PROCESSOR ACS .JPLST:! BLOCK .JPSIZ ;JOB PROCESSOR PDL .JBSPS:! BLOCK 1 ;STEP PROLOGUE SCAN ONLY .JBECD:! BLOCK 1 ;ERROR CODE FROM PTY .JBECH:! BLOCK 1 ;ERROR CHARACTER .JBOCH:! BLOCK 1 ;OPERATOR CHARACTER .JBJNO:! BLOCK 1 ;JOB NUMBER .JBRTM:! BLOCK 1 ;RUNTIME (FOR BACKTO COMMAND) .JBCHK:! BLOCK 1 ;JOB CHECKPOINT FLAG .JBCRQ:! BLOCK EQCKSZ ;CHECKPOINT/REQUEUE INFORMATION .JBRQF:! BLOCK 1 ;REQUEUE FLAGS .JBRBP:! BLOCK 1 ;RESPONSE BYTE POINTER .JBRSP:! BLOCK PTYBLK-3 ;RESPONSE BUFFER .JBSPW:! BLOCK 1 ;STATUS POINTER WORD .JBCLK:! BLOCK 1 ;CLOCK QUEUE EVENT CODE,,ENTRY ID ; Control file data ; .JCFOB:! BLOCK FOB.SZ ;FILE OPEN BLOCK .JCIFN:! BLOCK 1 ;IFN FILE OPENED ON .JCPOS:! BLOCK 1 ;CHECKPOINTED POSITION IN FILE ; Log file data ; .JLFOB:! BLOCK FOB.SZ ;FILE OPEN BLOCK .JLFAB:! BLOCK 3 ;FILE ATTRIBUTE BLOCK .JLIFN:! BLOCK 1 ;IFN FILE OPENED ON .JLECD:! BLOCK 1 ;OUTPUT ERROR CODE FROM GLXLIB .JLTIM:! BLOCK 1 ;TIME STAMP NEEDED IN LOG FILE .JLHDR:! BLOCK 1 ;HEADER PAGE NUMBER (CORE) ; Operator/QUASAR interface data ; .JOVAL:! BLOCK 1 ;VALID MESSAGE FLAG .JOFLG:! BLOCK 1 ;FLAG WORD .JOACK:! BLOCK 1 ;ACK CODE FOR WTOR MESSAGES .JONAM:! BLOCK 1 ;ADDRESS OF ASCIZ MESSAGE NAME .JOPRC:! BLOCK 1 ;MESSAGE PROCESSOR .JOMSG:! BLOCK IPCSIZ ;MESSAGE STORAGE .JOTYP:! BLOCK 1 ;WTO TYPE TEXT ADDRESS .JOTXT:! BLOCK 1 ;WTO MAIN TEXT ADDRESS .JOTBL:! BLOCK 1 ;TABLE OF OPR RESPONSES .JORSP:! BLOCK +1 ;OPR RESPONSE TEXT ; PTY data ; .JPTTY:! BLOCK 1 ;PTY TERMINAL UDX OR DESIGNATOR .JPTYI:! BLOCK PTYBLK ;PTY INPUT BUFFER RING .JPTYO:! BLOCK PTYBLK ;PTY OUTPUT BUFFER RING .JPINP:! BLOCK 3 ;PTY INPUT BUFFER RING HEADER .JPOUT:! BLOCK 3 ;PTY OUTPUT BUFFER RING HEADER .JPCHN:! BLOCK 1 ;PTY I/O CHANNEL OR JFN .JPEOL:! BLOCK 1 ;EOL SENT TO PTY ; WTO/WTOR data ; .JWTOP:! BLOCK +1 ;TO OPERATOR BUFFER .JWFOP:! BLOCK +1 ;FROM OPERATOR BUFFER .JWPTR:! BLOCK 1 ;BYTE POINTER FOR WTO/WTOR OPERATIONS .JWCNT:! BLOCK 1 ;BYTE COUNT FOR WTO/WTOR OPERATIONS ; Scanner data ; .JSCTL:! BLOCK +1 ;CONTROL FILE LINE BUFFER .JSCTB:! BLOCK 1 ;CONTROL FILE LINE BYTE POINTER .JSCTC:! BLOCK 1 ;CONTROL FILE LINE BYTE COUNT .JSCNM:! BLOCK +1 ;COMMAND NAME STRING POINTER .JSCDP:! BLOCK 1 ;COMMAND DISPATCH ADDRESS .JSCFL:! BLOCK 1 ;FLAG WORD .JSKEY:! BLOCK +1 ;KEYWORD BUFFER .JSPAR:! BLOCK PAR.SZ ;PARSER BLOCK .JSCMD:! BLOCK 1 ;ADDRESS OF COMMAND BLOCK .JSSTP:! BLOCK 1 ;STEP FLAG .JSSPP:! BLOCK 1 ;STEP PROCESSING PENDING ; Label data ; .JLABL:! BLOCK 1 ;LABEL BEING SEARCHED FOR .JLLBL:! BLOCK 1 ;[4707] LAST LABEL ENCOUNTERED .JLSTP:! BLOCK 1 ;CURRENT $STEP LABEL ; MDA and modify data ; .JMDAP:! BLOCK 1 ;MDA ALLOCATE/MOUNT REQUEST PAGE .JMDAT:! BLOCK 1 ;TEMPORARY PAGE FOR MNTPAR .JMDAF:! BLOCK 1 ;FREE POINTER INTO .JMDAP(R) .JMODP:! BLOCK 1 ;MODIFY REQUEST PAGE .JMODC:! BLOCK 1 ;COUNT OF MODIFYS IN REQUEST .JSIZE:! ;STREAM DATA BASE SIZE IN WORDS DEPHASE ;END OF THE STREAM DATA BASE RELOC 0 ;SAVE SPACE .JPAGS==1+<<.JSIZE-1>/PAGSIZ> ;STREAM DATA BASE SIZE IN PAGES SUBTTL Clock request queue data definitions ; Clock queue entries ; ...LOC==. PHASE 0 .CQEID:! BLOCK 1 ;ENTRY ID .CQTIM:! BLOCK 1 ;TIME IN SECONDS .CQEVN:! BLOCK 1 ;PENDING EVENTS CQ.NSC==1B0 ;DON'T SCHEDULE STREAM CQ.EVN==777B17 ;PENDING EVENT .CQMIN==0 ;LOWEST LEGAL EVENT TYPE .CQHNG==0 ;HUNG TIMER ONLY .CQLGI==1 ;LOGIN .CQLGO==2 ;LOGOUT .CQHLT==3 ;HALTED (^C'ED) .CQMAX==3 ;HIGHEST LEGAL EVENT TYPE CQ.TIM==777777B35 ;SLEEP TIME IN SECONDS .CQCTX:! BLOCK 1 ;CONTEXT .CQADR:! BLOCK 1 ;DISPATCH ADDRESS .CQLEN:! ;LENGTH OF A CLOCK QUEUE ENTRY DEPHASE RELOC ...LOC SUBTTL MODIFY symbols ; The MODIFY code requires minor changes in QMANGR and QUASAR in order ; to work fully. The QMANGR changes are: ; At MOD.1A+6, add ; REPEAT 10,< ; SETO T1, ;INDICATE NO CHANGE IN ACCOUNT STRING ; PUSHJ P,GRPSTO ;STORE /ACCOUNT ; > ;END REPEAT 10 ; ; The QUASAR changes are in a dispatch table in QSRSCH: ; At INPMTB+10, add ; MOVEM P3,.EQACT+0(AP) ;STORE ACCOUNT STRING WORD 0 ; MOVEM P3,.EQACT+1(AP) ;STORE ACCOUNT STRING WORD 1 ; MOVEM P3,.EQACT+2(AP) ;STORE ACCOUNT STRING WORD 2 ; MOVEM P3,.EQACT+3(AP) ;STORE ACCOUNT STRING WORD 3 ; MOVEM P3,.EQACT+4(AP) ;STORE ACCOUNT STRING WORD 4 ; MOVEM P3,.EQACT+5(AP) ;STORE ACCOUNT STRING WORD 5 ; MOVEM P3,.EQACT+6(AP) ;STORE ACCOUNT STRING WORD 6 ; MOVEM P3,.EQACT+7(AP) ;STORE ACCOUNT STRING WORD 7 ; Major modify ; .MMAFT==MOD.FG+MOD.GE+0 ;/AFTER .MMPRI==MOD.FG+MOD.GE+1 ;/PRIORITY .MMXXX==MOD.FG+MOD.GE+2 ;SPARE WORD .MMPRO==MOD.FG+MOD.GE+3 ;/PROTECTION .MMUNT==MOD.FG+MOD.GE+4 ;/UNIT OR /LOWER OR /UPPER .MMPRC==MOD.FG+MOD.GE+5 ;/PROCESSING (node) .MMCST==MOD.FG+MOD.GE+6 ;CUSTOMER DEFINED ATTRIBUTES .MMMAX==.MMCST ;HIGHEST TYPE IN THIS GROUP NMAJPM==.MMMAX-MOD.FG-MOD.GE+1 ;NUMBER OF MAJOR MODIFY TYPES ; Queue modify ; .MQCOR==.MMMAX+MOD.GE+0 ;/CORE .MQTIM==.MMMAX+MOD.GE+1 ;/TIME .MQPGS==.MMMAX+MOD.GE+2 ;/PAGES .MQCDS==.MMMAX+MOD.GE+3 ;/CARDS .MQFET==.MMMAX+MOD.GE+4 ;/FEET .MQTPL==.MMMAX+MOD.GE+5 ;/TPLOT .MQDEP==.MMMAX+MOD.GE+6 ;/DEPENDANCY .MQUNI==.MMMAX+MOD.GE+7 ;/UNIQUE .MQRST==.MMMAX+MOD.GE+10 ;/RESTART .MQOUT==.MMMAX+MOD.GE+11 ;/OUTPUT .MQDST==.MMMAX+MOD.GE+12 ;/DESTINATION (NODE) .MQACT==.MMMAX+MOD.GE+13 ;/ACCOUNT .MQAST==.MMMAX+MOD.GE+23 ;/ASSISTANCE .MQBLG==.MMMAX+MOD.GE+24 ;/BATLOG .MQBEG==.MMMAX+MOD.GE+25 ;/BEGIN .MQMAX==.MQBEG ;HIGHEST NUMBER IN THIS GROUP NINPPM==.MQMAX-MOD.FG-MOD.GE+1 ;NUMBER OF QUEUE MODIFY TYPES SUBTTL MSGBLD macro - Build error message table DEFINE MSGBLD,< XLIST X (E.NSTR,) X (E.STRA,) X (E.NJOB,) LIST SALL > DEFINE X(A,B),< XLIST A==$$ ;ASSIGN VALUE TO SYMBOL $$==$$+1 ;INCREMENT COUNTER LIST SALL >;END X $$==0 ;SET TO 0 MSGBLD ;ASSIGN THE VALUES MSGTSZ==$$ ;COUNT OF MESSAGES SUBTTL End END