Trailing-Edge
-
PDP-10 Archives
-
decuslib20-10
-
decus/20-186/imgspl-exec-changes.txt
There are no other files named imgspl-exec-changes.txt in the archive.
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/]