This file contains the Exec source modifications needed
to make Imgspl look like a part of Galaxy.  The changes
are in EXECCA, EXECGL, and EXECQU.
Required changes are marked with "[****]".


[EXECCA.MAC: In CTBL1 Command Table]
	T Keep				;KEEP (FORK)
MIC,<	T Kmic				;KILL MIC PROCESS >
	T Laser-Print,,.LSRPT		;[****] LASER-PRINT FILE
	T Load				;LOAD (FROM)



[EXECCA.MAC: In $DEF Command Table]
PCLF,<	T declare,ONEWRD,.IDDCL >
	T laser-print,ONEWRD,.IDC	;[****] "INFO DEFAULT LASER PRINT"
	T paper-tape,ONEWRD,.IDP


[EXECCA.MAC: In TDEFAU Command Table]
PCLF,<	T declare,,.SDDCL		;PCL >
	T laser-print,,.SDC		;[****] SET DEFAULT LASER-PRINT
	T paper-tape,,.SDT


[EXECCA.MAC: In $NODEF Command Table]
	T compile-switches,,.SNDCS	;SET NO DEFAULT COMPILE-SWITCHES
	T laser-print,,.SNDCP		;[****] SET NO DEFAULT LASER-PRINT
	T paper-tape,,.SNDTP



[EXECGL.MAC]
QEXT <.LSRPT>			;[****]

; CRJOB/PRARG
QEXT <CRPRA,..STCR,MESS>


[EXECQU.MAC]
.LSRPT::MOVEI P4,X%CP		;[****] USE PUNCHED CARD QUEUE FOR LASER PRINT
	JRST X1			;[****]

.PRINT::MOVEI P4,X%PR


[EXECQU.MAC]
BADQ:	XCT [
;[****]		CMERRX <Invalid PUNCH CARDS command>
		CMERRX <Invalid LASER-PRINT command>	;[****]
		CMERRX <Invalid PRINT command>


[EXECQU.MAC]
	CAIE P4,X%PR		;DOING A PRINT?
	CAIN P4,X%CP		;[****]OR A LASER PRINT?
	SKIPA			;[****]NO TO BOTH, SKIP EXTENTION CHECK
	JRST FIL0		;NOPE, SKIP EXTENSION TESTING
	MOVE A,P2		;MOVE IN ADDRESS OF AREA TO CHANGE
	CALL CHKEXT		;CHECK EXTENSION OF FILE
FIL0:	CALL FILBLK		;FILL IN INFO FOR THIS FILE



[EXECQU.MAC]
CHKEXT: STKVAR <CNGEAR>
	MOVEM A,CNGEAR		;STORE AREA TO CHANGE
	HRRZ B,PRIJFN		;GET JFN
	MOVX C,1B11		;WE WANT THE EXTENSION
	MOVE A,CSBUFP		;WRITE IT INTO FREE SPACE
	JFNS			;GET EXTENSION
	CAIN P4,X%CP		;[****]LASER PRINT?
	 JRST TRYIMP		;[****]YES, SKIP THIS
	TXNN Z,TPRES		;IS /PRESERVE IN EFFECT?


[EXECQU.MAC]
TRYIMP:	TXNN Z,TFILES		;[****]IS /FILE SWITCH IN EFFECT?
	 SKIPE FILSF		;[****]
	 RET			;[****]YES, LEAVE NOW
	MOVE A,CSBUFP		;[****]GET EXTENTION
	HRROI B,[ASCIZ /IMP/]	;[****]SEE IF EXTENTION IS "IMP"
	STCMP			;[****]
	MOVE B,CNGEAR		;[****]GET STORAGE AREA
	MOVEI C,.FPFAS		;[****]GET ASCII CODE
	SKIPN A			;[****]IS IT "IMP"?
	 MOVEI C,.FPFIM		;[****]YES
	STOR C,FP.FFF,.FPINF(B)	;[****]STORE INFORMATION AWAY
	RET			;[****]DONE

FILCT1:	HRRZ A,PRIJFN


[EXECQU.MAC]
;LIST OF SWITCHES FOR PRINT, PUNCH CARDS, PUNCH PAPER-TAPE, SUBMIT

DEFINE SLIST <
	JOBS <TV account>		;CHARGE PARTICULAR ACCOUNT FOR
THIS REQEST
	JOBS <TV after>			;PRINT AFTER THIS TIME
	JOBS <TV assistance>,B%SU	;DECLARE WHETHER JOB NEEDS
ASSISTANCE OR NOT
	JOBS <TV batch-log,,.WLOG>,B%SU	;SAY HOW TO WRITE LOG
	FILS <TV begin,,.PB>,B%PR	;BEGIN ON SPECIFIC PAGE
	JOBS <TV begin,,.SBEG>,B%SU	;BEGIN PROCESSING ON SPECIFIC
LINE
	FILS <T book>,B%CP		;[****] TWO FORMS, SIDE BY
SIDE
	JOBS <TV cards>,B%SU		;NUMBER OF CARDS JOB IS
ALLOWED TO PRINT
	FILS <TV collation>,B%CP	;[****] COPY COLLATION
	JOBS <TV connected-directory,,.BCON>,B%SU ;DIRECTORY TO
CONNECT BATCH JOB TO
	FILS <TV copies>		;HOW MANY COPIES
	FILS <T delete>,,B%SU		;DELETE FILE AFTER PRINTING
	JOBS <T delete>,B%SU
	JOBS <TV dependency-count,,.DEPEN>,B%SU	;SPECIFY DEPENDENCY
COUNT
	JOBS <TV destination-node,,.NODE> ;WHICH NODE REQUEST IS
DESTINED FOR, LOG FILE FOR SUBMIT
	FILS <T double>,B%CP		;[****] TWO FORMS, ABOVE AND
BELOW
	JOBS <TV feet>,B%SU		;NUMBER OF FEET OF TAPE JOB IS
ALLOWED TO PUNCH
;[****]	FILS <TV file>,B%PR		;WHICH TYPE OF FILE IT IS
	FILS <TV file>,,B%SU 		;WHICH TYPE OF FILE IT IS
;[****]
	JOBS <TV forms>,,B%SU		;KIND OF PAPER TO USE
	FILS <TV formlength>,B%CP	;[****] LINES PER PAGE
	FILS <TV formwidth>,B%CP >	;[****] CHARACTERS PER LINE
	JOBS <T generic>,,B%SU		;ANY UNIT
;[****]	FILS <T header>,,B%SU		;HEADER LINE FLAVOR
	FILS <T header>,B%PR		;HEADER LINE FLAVOR	;[****]
	JOBS <TV jobname,,.GOBNA>	;SPECIFY NON-DEFAULT JOBNAME
	FILS <T landscape>,B%CP		;[****] ROTATE THE PAGE
	FILS <TV leftmargin>,B%CP	;[****] LEFT OFFSET
	JOBS <TV limit>,,B%SU		;NUMBER OF PAGES TO ALLOW TO
BE PRINTED
	JOBS <TV logdisposition>,B%SU	;SPECIFY HOW TO DISPOSE OF LOG
FILE
	JOBS <TV logname,,.LFN>,B%SU	;SPECIFY NON-STANDARD LOG FILE
NAME
	JOBS <T lowercase,,.LOWER>,B%PR	;PRINT FILE ONLY ON PRINTER
WITH UPPER-LOWER CAPABILITY
	FILS <TV manual-feed,,.MANFD>,B%CP	;[****] MANUAL PAPER
FEED
	JOBS <TV meters>,B%TP		;PUNCH SO MANY METERS OF PAPER
TAPE
	FILS <TV mode>,,B%SU		;SPECIFY FORMAT
;[****]	FILS <T noheader>,,B%SU
	FILS <T noheader>,B%PR		;[****]
;[****]	JOBS <TV note>,,B%SU		;PUT NOTE ON OUTPUT
	JOBS <TV note>,B%PR		;[****]PUT NOTE ON OUTPUT
	JOBS <TV notify>		;GET NOTIFICATION WHEN REQUEST
IS PROCESSED
	FILS <TV outlines>,B%CP		;[****] PAGE OUTLINES
	JOBS <TV output>,B%SU		;CONTROL WHETHER LOG FILE GETS PRINTED
	JOBS <TV pages>,B%SU		;SPECIFY PAGE LIMIT
	FILS <T preserve>		;DON'T DELETE FILE, DEFAULT UNLESS .LST
	JOBS <TV priority>		;PRIORITY LEVEL OF REQUEST
	JOBS <TV processing-node,,.PN>,B%SU ;NODE WHERE JOB SHOULD BE RUN
	JOBS <T reader>,B%SU		;SPECIFY THAT CONTROL FILE IS A PSEUDO-CARD-DECK
	FILS <TV report>,B%PR		;PRINT REPORT WITH COBOL REPORT FILE
	JOBS <TV restartable>,B%SU	;ALLOW OR DISALLOW JOB TO BE RESTARTTED AFTER SYSTEM CRASH
	FILS <TV reverse>,B%CP		;[****] REVERSE PAGE ORDER
	FILS <TV rules>B%CP		;[****] PAGE RULES
	JOBS <TV sequence>		;SEQUENCE NUMBER OF REQUEST
	FILS <TV spacing>,B%PR		;SINGLE OR DOUBLE SPACING
	FILS <T standard>,B%CP		;[****] STANDARD PAGE LAYOUT
	JOBS <TV tag>,B%SU		;START PROCESSING AT THIS TAG
	JOBS <TV time,,.QUTML>,B%SU	;SPECIFY EXECUTION TIME LIMIT FOR JOB
	JOBS <TV tplot>,B%SU		;SPECIFY PLOTTER TIME JOB IS ALLOWED
	JOBS <TV unique>,B%SU		;SPECIFY UNIQUENESS OF JOB (WHETHER CONCURRENCY ALLOWED OR NOT)
	JOBS <TV unit>,,B%SU		;SPECIFIC UNIT NUMBER
	JOBS <T uppercase>,B%PR		;SEND TO UPPERCASE PRINTER
	JOBS <TV user,,.BUSER>		;SPECIAL OWNER FOR THIS REQUEST
>;;END OF DEFINE SLIST


[EXECQU.MAC]
$PUNCH:	TABLE
	T arrow,,%FPLAR		;[****]
	T ascii,,%FPCAS
;[****]	T bcd,,%FPCBC
;[****]	T binary,,%FPCBI
;[****]	T image,,%FPCIM
	TEND


[EXECQU.MAC]
DEFINE SLIST
<	JOBS <T ascii,,.FPFAS>
	JOBS <T cobol,,.FPFCO>,B%PR
;[****]	JOBS <T eleven,,.FPF11>
	JOBS <T eleven,,.FPF11>,B%PR	;[****]
	JOBS <T fortran,,.FPFFO>,B%PR
	JOBS <T impress,,.FPFIM>,B%CP	;[****]
>


[EXECQU.MAC]
;[****]REVERSE FILE ORDER ON LASER PRINT

.REVER:	KEYWD $YESNO		;[****]
	 T YES,,1		;[****]
	CMERRX <YES or NO required>	;[****]
	MOVE B,P3		;[****]
	MOVE A,[IREVER,,REVER2]	;[****]
	CALLRET STOR1		;[****]


;[****]TURN ON PAGE COLLATION FOR LASER PRINT

.COLLA:	KEYWD $YESNO		;[****]
	 T YES,,1		;[****]
	CMERRX <YES or NO required>	;[****]
	MOVE B,P3		;[****]
	MOVE A,[ICOLLA,,COLLA2]	;[****]
	CALLRET STOR1		;[****]

;[****]TURN ON OUTLINES FOR LASER PRINT

.OUTLI:	KEYWD $YESNO		;[****]
	 T YES,,1		;[****]
	CMERRX <YES or NO required>	;[****]
	MOVE B,P3		;[****]
	MOVE A,[IOUTLI,,OUTLI2]	;[****]
	CALLRET STOR1		;[****]

;[****]TURN ON RULES FOR LASER PRINT

.RULES:	KEYWD $YESNO		;[****]
	 T YES,,1		;[****]
	CMERRX <YES or NO required>	;[****]
	MOVE B,P3		;[****]
	MOVE A,[IRULES,,RULES2]	;[****]
	CALLRET STOR1		;[****]

;[****]TURN ON MANUAL FEED FOR LASER PRINT

.MANFD:	KEYWD $YESNO		;[****]
	 T YES,,1		;[****]
	CMERRX <YES or NO required>	;[****]
	MOVE B,P3		;[****]
	MOVE A,[IMANFD,,MANFD2]	;[****]
	CALLRET STOR1		;[****]


;[****]SPECIFY CHARACTERS PER LINE

.FORMW:	DECX <Decimal number of characters per line>	;[****]
	 CMERRX			;[****]
	SKIPL B			;[****]RANGE CHECK IT
	CAILE B,^D132		;[****]
	 ERROR <Invalid formwidth requested>	;[****]
	MOVE A,[IFORMW,,FORMW2]	;[****]
	CALLRET STOR1		;[****]

;[****]SPECIFY LINES PER PAGE

.FORML:	DECX <Decimal number of lines per page>	;[****]
	 CMERRX			;[****]
	SKIPL B			;[****]RANGE CHECK IT
	CAILE B,^D66		;[****]
	 ERROR <Invalid formlength requested>	;[****]
	MOVE A,[IFORML,,FORML2]	;[****]
	CALLRET STOR1		;[****]


;[****]SPECIFY LEFT OFFSET

.LEFTM:	DECX <Column number in which to begin printing>	;[****]
	 CMERRX			;[****]
	SKIPGE B		;[****]
	 ERROR <Invalid left margin requested>	;[****]
	MOVE A,[ILEFTM,,LEFTM2]	;[****]
	CALLRET STOR1		;[****]

;[****]PAGE FORMATS

.STAND:	MOVEI B,1		;[****]
	MOVE A,[ISTAND,,STAND2]	;[****]
	CALLRET STOR1		;[****]

.DOUBL:	MOVEI B,1		;[****]
	MOVE A,[IDOUBL,,DOUBL2]	;[****]
	CALLRET STOR1		;[****]

.BOOK:	MOVEI B,1		;[****]
	MOVE A,[IBOOK,,BOOK2]	;[****]
	CALLRET STOR1		;[****]

.LANDS:	MOVEI B,1		;[****]
	MOVE A,[ILANDS,,LANDS2]	;[****]
	CALLRET STOR1		;[****]


REVER2:	STOR B,FP.REV,.FPINF(Q1)	;[****]
	RET			;[****]

COLLA2:	STOR B,FP.COL,.FPINF(Q1)	;[****]
	RET			;[****]

OUTLI2:	STOR B,FP.OTL,.FPFR2(Q1)	;[****]
	RET			;[****]

RULES2:	STOR B,FP.RUL,.FPFR2(Q1)	;[****]
	RET			;[****]

MANFD2:	STOR B,FP.MAN,.FPFR2(Q1)	;[****]
	RET			;[****]

FORMW2:	HRLM B,.FPFR1(Q1)	;[****]
	RET			;[****]

FORML2:	HRRM B,.FPFR1(Q1)	;[****]
	RET			;[****]

LEFTM2:	HRRM B,.FPFR2(Q1)	;[****]
	RET			;[****]

STAND2:	SETZB B,.FPFR1(Q1)	;[****]
	STOR B,FP.2PG,.FPINF(Q1)	;[****]
	RET			;[****]

BOOK2:	SETZM .FPFR1(Q1)	;[****]
	MOVEI B,1		;[****]
	STOR B,FP.2PG,.FPINF(Q1)	;[****]
	RET			;[****]

DOUBL2:	MOVE B,[^D132,,0]	;[****]
	MOVEM B,.FPFR1(Q1)	;[****]
	MOVEI B,1		;[****]
	STOR B,FP.2PG,.FPINF(Q1)	;[****]
	RET			;[****]

LANDS2:	MOVE B,[^D132,,0]	;[****]
	MOVEM B,.FPFR1(Q1)	;[****]
	SETZ B,			;[****]
	STOR B,FP.2PG,.FPINF(Q1)	;[****]
	RET			;[****]


;HEADER TO PRINT HEADER ON FILE OUTPUT
.HEADE:	MOVE A,[IHEADE,,NHEA2]


[EXECQU.MAC]
$QUEUE:	TABLE
	T archive,,[.OTARC,,X%AR]
	T batch,,[.OTBAT,,X%SU]
;[****]	T cards,,[.OTCDP,,X%CP]
	T laser-print,,[.OTCDP,,X%CP]	;[****]
	T mount,,[.OTMNT,,X%MO]


[EXECQU.MAC]
$MQUEU:	TABLE
	T batch,,[.OTBAT,,X%SU]
;[****]	T cards,,[.OTCDP,,X%CP]
	T laser-print,,[.OTCDP,,X%CP]	;[****]
	T paper-tape,,[.OTPTP,,X%TP]


[EXECQU.MAC]
;SWITCHES FOR MODIFYING OUTPUT REQUESTS

DEFINE SLIST <
	JOBS <TV after,,.MAFTE>
	JOBS <TV begin,,.MSBEG>,B%SU
	JOBS <TV begin,,.MPBEG>,B%PR
	JOBS <TV cards,,.MCARDS>,B%SU
	JOBS <TV copies,,.MCOPI>,,B%SU
REPEAT 0,<
	JOBS <TV deadline,,.MDEAD>
>
	JOBS <T delete,,.MDELE>,,B%SU
	JOBS <TV dependency-count,,.MDEPE>,B%SU
	JOBS <TV destination-node,,.MNODE>,,B%SU
	JOBS <TV destination-node,,.MSNOD>,B%SU
	JOBS <TV feet,,.MFEET>,B%SU
	JOBS <TV file,,.MFILE>,B%PR
	JOBS <TV forms,,.MFORM>,,B%SU
	JOBS <T generic,,.MGENE>,,B%SU
	JOBS <T header,,.MHEAD>,,B%SU
	JOBS <TV jobname,,.MJOB>
	JOBS <TV limit,,.MLIMI>,,B%SU
	JOBS <T lowercase,,.MLOWE>,B%PR
;[****]	JOBS <TV mode,,.MMODE>,,B%SU
	JOBS <TV mode,,.MMODE>,B%PR	;[****]
;[****]	JOBS <T noheader,,.MNOHE>,,B%SU
	JOBS <T noheader,,.MNOHE>,B%PR	;[****]
;[****]	JOBS <TV note,,.MNOTE>,,B%SU
	JOBS <TV note,,.MNOTE>,B%PR	;[****]
	JOBS <TV output,,.MOUTP>,B%SU


[EXECQU.MAC]
BADDEF:	XCT [
;[****]		CMERRX <Invalid SET DEFAULT CARDS command>
		CMERRX <Invaled SET DEFAULT LASER-PRINT command> ;[****]
		CMERRX <Invalid SET DEFAULT PRINT command>


[EXECQU.MAC]
.SNDCP::CONFIRM			;WAIT FOR COMMAND CONFIRMATION
	XMOVEI A,DCSTK
	XMOVEI B,DCPT
	CALL REMDEF
;[****]	TYPE <All defaults for PUNCH CARDS command cleared
>
	TYPE <All defaults for LASER-PRINT command cleared
>				;[****]
	RET



[EXECQU.MAC]
ID0:	PRISTG			;ALLOCATE STORAGE
	TXO Z,INFOF		;SAY DOING INFORMATION
	SKIPN @[EXP DCPT,DPPT,DSPT,DTPT,DPLPT](P4)	;ANY DEFAULTS?
	RET			;NO!
	TYPE < SET DEFAULT >
	UTYPE @[
;[****]		[ASCIZ /CARDS/]
		[ASCIZ /LASER-PRINT/]	;[****]
		[ASCIZ /PRINT/]


[EXECQU.MAC]
IREVER:	HRROI A,[ASCIZ /yes/]	;[****]
	CAIN B,0		;[****]
	HRROI A,[ASCIZ /no/]	;[****]
	PSWITCH <reverse:%1M>	;[****]

ICOLLA:	HRROI A,[ASCIZ /yes/]	;[****]
	CAIN B,0		;[****]
	HRROI A,[ASCIZ /no/]	;[****]
	PSWITCH <collation:%1M>	;[****]

IRULES:	HRROI A,[ASCIZ /yes/]	;[****]
	CAIN B,0		;[****]
	HRROI A,[ASCIZ /no/]	;[****]
	PSWITCH <rules:%1M>	;[****]

IMANFD:	HRROI A,[ASCIZ /yes/]	;[****]
	CAIN B,0		;[****]
	HRROI A,[ASCIZ /no/]	;[****]
	PSWITCH <manual-feed:%1M>	;[****]

IOUTLI:	HRROI A,[ASCIZ /yes/]	;[****]
	CAIN B,0		;[****]
	HRROI A,[ASCIZ /no/]	;[****]
	PSWITCH <outlines:%1M>	;[****]

IFORMW:	PSWITCH <formwidth:%2Q>	;[****]
IFORML:	PSWITCH <formlength:%2Q>	;[****]
ILEFTM:	PSWITCH <leftmargin:%2Q>	;[****]
IDOUBL:	PSWITCH <double>	;[****]
IBOOK:	PSWITCH <book>		;[****]
ISTAND:	PSWITCH <standard>	;[****]
ILANDS:	PSWITCH <landscape>	;[****]

INOTIF:	HRROI A,[ASCIZ /YES/]
