Google
 

Trailing-Edge - PDP-10 Archives - cuspjul86upd_bb-jf24a-bb - 10,7/galaxy/batcon/batmac.mac
There are 38 other files named batmac.mac in the archive. Click here to see a list.
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==5017			;EDIT LEVEL

	%%.BAT==:<VRSN.(BAT)>		;ASSEMBLE VERSION NUMBER

TOPS10	<IF1,<PRINTX [Assembling GALAXY-10 BATMAC]>>
TOPS20	<IF1,<PRINTX [Assembling GALAXY-20 BATMAC]>>
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::<CR/LF>),
		the <CR/LF> is NOT to be sent to the subjob.  However,
		FOO::*<CR/LF> gives a blank line to the subjob.
		Same for IF (cond)<CR/LF>

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 <message><altmode><CR/LF>

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:"<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 <optional text> 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

5016	BATMAC	Increase IPCSIZ by 10 words to account for longer /REASON
	BATCON	text.  Properly truncate overly long messages in B$IMSG
		to compensate for operators who like to write novels.
		GCO 10389  31-Mar-86  /DPM

5017	BATCON	Change C$RPOS to return FALSE if a positioning error occurs,
	BATCTL	and have EXAM.3 set up to abort the job in stream context.
		Can't call B$ABORT from POSERR since we're not running in
		stream context when processing IPCF.
		GCO 10417  SPR 10-35517  17-Jun-86  /JAD

\
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,<<PAGSIZ-^D30>*5> ;MAXIMUM CHARACTERS IN A WTO/WTOR
	ND	RSPSIZ,^D80		;MAXIMUM CHARACTERS IN OPR RESPONSE
	XP	IPCSIZ,^D35		;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<IPCCHN>!1B<PTYCHN>!1B<PTYCHN+1> ;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-^D9>,<		;DEFMJB CANNPT BE GREATER THAN 9
		PRINTX % DEFMJB greater than 9, 9 assumed
		DEFMJB==^D9		;SET TO 9
	>				;END OF IFG <DEFMJB-^D9> 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),<IDENT. [ITEXT ( 'STAMP	'TEXT)]>


; Macro to support the IDHDR. UUO
;
DEFINE	$IDHDR	(STAMP,TEXT),<IDHDR. [ITEXT ( '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	<RSPSIZ/5>+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	<CTLSIZ/5>+1		;TO OPERATOR BUFFER
.JWFOP:! BLOCK	<CTLSIZ/5>+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	<CTLSIZ/5>+1		;CONTROL FILE LINE BUFFER
.JSCTB:! BLOCK	1			;CONTROL FILE LINE BYTE POINTER
.JSCTC:! BLOCK	1			;CONTROL FILE LINE BYTE COUNT
.JSCNM:! BLOCK	<KEYSIZ/5>+1		;COMMAND NAME STRING POINTER
.JSCDP:! BLOCK	1			;COMMAND DISPATCH ADDRESS
.JSCFL:! BLOCK	1			;FLAG WORD
.JSKEY:! BLOCK	<KEYSIZ/5>+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,<No free batch streams - job requeued>)
	X	(E.STRA,<Stream already started>)
	X	(E.NJOB,<No job slots available - job requeued>)

	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