.ENABLE SUBSTITUTION
.ENABLE GLOBAL
; DCL.CMD> EXECUTING
;
;	TO BE USED AS AN INTERFACE TO RSX11M FOR THOSE FAMILIAR WITH
;	THE DEC COMMAND LANGUAGE AND FOR THOSE WITH NO DEC EXPERIENCE.
;
.SETF DAT
.ASK CC DO YOU WISH TO USE  D C L 
.IFF CC .GOTO EXIT
.ASK DAT INSERTING YOUR COMMANDS INTO A COMMAND FILE
.IFF DAT .GOTO EXP
.ASKS [1:9.] DATNAM WHAT FILENAME (NO EXTENSION)
.OPEN 'DATNAM'.CMD
.EXP:;
;	HERE YOU ENTER THE 1 TO 4 CHARACTER IDENTIFIER FOR THE COMMAND
;	YOU WISH TO SIMULATE. 
;	EG:	FOR DIRECTORY TYPE	DIR OR DIRE
;		FOR R (RUN) TYPE	R
;		FOR GET TYPE 		GET
;		FOR FORTRAN TYPE 	FORT OR FOR
;	NOTE:	THERE ARE NO 2 CHARACTER CODES.
;	NOTE:	YOU WILL HAVE TO HIT <SCROLL> FOR LINE BY LINE ADVANCE,
;		AND <SHIFT><SCROLL> TO ADVANCE TO A NEW SCREEN FULL.
;	NOTE:	A <RETURN> (CARRIAGE RETURN KEY) WILL ACT AS A "NO"
;		OR NULL RESPONSE TO MOST ANY PROMPT.
;	NOTE:	TO EXIT TYPE EXIT
;
.10:.SETS NL ""
.SETS EXIT "EXIT"
.SETS CMD ""
.SETS S1 ""
.SETS S2 ""
.SETS S3 ""
.SETS S4 ""
.SETS S5 ""
.SETS XX ""
.SETS YY ""
.SETF DOT
.SETF DOD
SET /NOHOLD=TI:
.15:.ASKS [1:4] FNC COMMAND
.IF FNC = EXIT .GOTO EXIT
.IF <STRLEN> NE 2 .GOTO 20
;
;	* NO 2 CHARACTER CODES ALLOWED - SORRY - RETRY *
;
.GOTO 15
.20:SET /HOLD=TI:
.GOSUB 'FNC'
.GOTO 10
.GEN:; THE COMMAND LINE GENERATED IS:
	;	* 'CMD' 'S1''S2''S3''S4''S5' *
	.ASK CC EXECUTE IT
	.IFT CC 'CMD' 'S1''S2''S3''S4''S5'
	.IFT DAT .DATA 'CMD' 'S1''S2''S3''S4''S5'
	.RETURN
.SWSET:	.IF S2 EQ NL .GOTO S2OK
	.IF S3 EQ NL .GOTO S3OK
	.IF S4 EQ NL .GOTO S4OK
	.GOTO OKOUT
.S2OK:	.SETS S2 "'XX'"
	.GOTO OKOUT
.S3OK:	.SETS S3 "'XX'"
	.GOTO OKOUT
.S4OK:	.SETS S4 "'XX'"
	.SETS XX ""
.OKOUT:	.RETURN
;
.APL:	;
	; NO APL AS YET
	;
	.RETURN
.ASN:
.ASS:
.ASSI:	;	SELECT OPTIONS
	.ASK CC DISPLAY ASSIGNMENTS
	.IFT CC .GOTO DISASN
	.ASK CC ASSIGN DEVICE
	.IFT CC .GOTO ASNASN
	.ASK CC DELETE ASSIGNMENTS
	.IFT CC .GOTO DEAS
	.RETURN
.DEA:
.DEAS:	.SETS S1 "="
.DISASN:;	DEFAULT IS ALL LOCAL AND LOGIN ASSIGNMENTS
	.ASK CC ALL GLOBALS
	.IFT CC .SETS S2 "/GBL"
	.IFT CC .GOTO RDYASN
	.ASKS XX ENTER FOR WHICH TERMINAL, IF DESIRED (TTNN:)
	.IF XX = NL .GOTO RDYASN
	.SETS S2 "/TERM='XX'"
	.GOTO RDYASN
.ASNASN:.ASKS S1 ENTER PHYSICAL DEVICE (eg: '<SYDISK>'1:)
	.SETS S2 "="
	.ASKS S3 ENTER LOGICAL NAME    (eg: SY0:)
	.ASK CC IS IT TO BE A GLOBAL ASSIGNMENT
	.IFT CC .SETS S4 "/GBL"
	.IFT CC .GOTO RDYASN
	.ASK CC IS IT TO BE A LOGIN ASSIGNMENT
	.IFT CC .SETS S4 "/LOGIN"
	.IFT CC .GOTO RDYASN
	.ASKS XX ENTER FOR WHICH TERMINAL, IF DESIRED (TTNN:)
	.IF XX <> NL .SETS S5 "/TERM='XX'"
.RDYASN:.SETS CMD "ASN"
	.GOSUB GEN
	.RETURN
B:	;
	;	RELOCATION BASE NOT APPLICABLE IN RSX11M
	;
	.RETURN
.BASI:
.BAS:	;
	;	NO BASIC INTERPRETER AS YET
	;
	.RETURN
.BOO:
.BOOT:	;	USED TO SOFTWARE BOOT A NEW SYSTEM IMAGE FROM DISK
	.SETS CMD "BOO"
	.ASKS S1 ENTER ID OF DISK UNIT CONTAINING SYSTEM (eg: '<SYDISK>'1:)
	.ASKS S2 ENTER UIC OF SYSTEM LOCATION (eg: [123,321])
	.ASK CC IS IT CALLED RSX11M.SYS
	.IFT CC .SETS S3 "RSX11M"
	.IFF CC .ASKS S3 ENTER SYSTEM NAME
	.GOSUB GEN
	.RETURN
.CLOS:
.CLO:	;
	;	CLOSE IS NOT APPLICABLE IN RSX11M
	;
	.RETURN
.COMP:
.COM:	.ASK CC MACRO (Y) (<RETURN> OR (N) FOR FORTRAN)
.COM1:	.IFT CC .SETS CMD "MAC"
	.IFF CC .SETS CMD "FOR"
	.ASKS S5 ENTER INPUT FILENAME OR COMMAND-FILE-NAME (@FILE)
	.ASKS S1 ENTER OUTPUT FILENAME OR <RETURN>
	.ASKS XX ENTER LISTFILE NAME OR <RETURN>
	.IF XX NE NL .SETS S2 ",'XX'"
	.IF S2 NE NL .ASKS S3 ENTER ALL LISTING SWITCHES + /-SP
	.IF S1 NE NL .SETS S4 "="
	.IF S2 NE NL .SETS S4 "="
	.GOSUB GEN
	.RETURN
.RENA:
.REN:	.SETS S2 "/RE"
	.GOTO COP1
.COP:
.COPY:	.ASK CC DISK TO DISK (Y) OR BETWEEN DISK AND TAPE (N)
	.IFF CC .GOTO FLX
.COP1:	.ASKS S4  F R O M
	.SETS S3 "="
	.ASKS S1      T O
	.SETS CMD "PIP"
	.GOSUB GEN
	.RETURN
.FLX:	;
	;	SEE [1,2]CRAIDLE.CMD
	;
	.RETURN
.OPE:
.E:
.D:	.SETS CMD "OPE"
	;
	;	THIS WILL HALT THE CPU MOMENTARILY, AND IF INPUT DATA
	;	IS REQUIRED, YOU MAY ENTER IT ONCE THE LOCATION IS
	;	PRINTED. NOTE: YOU MUST HIT <ESC> TO EXIT.
	;
	.ASKS S1 OCTAL ADDRESS
	.ASKS S2 + OR - VALUE OFFSET (eg: +12 OR -4)
	.ASK CC IN SPECIFIC TASK
	.IFT CC .ASKS XX TASK NAME
	.IF XX NE NL .SETS S3 "/TASK='XX'"
	.IFT CC .GOTO RDYOPE
	.ASK CC IN SPECIFIC PARTITION
	.IFT CC .ASKS XX PARTITION NAME
	.IF XX NE NL .SETS S3 "/PAR='XX'"
	.IFT CC .GOTO RDYOPE
	.ASK CC IN THE KERNAL
	.IFT CC .SETS S3 "/KNL"
	.IFT CC .GOTO RDYOPE
	.ASK CC IN A SPECIFIC LOADED DRIVER
	.IFT CC .ASKS XX DRIVER NAME (DD:)
	.IF XX NE NL .SETS S3 "/DRV='XX'"
.RDYOPE:.GOSUB GEN
	.RETURN
.DAT:
.DATE:  .SETT DOD
	.GOTO TD
.TIM:
.TIME:	.SETT DOT
.TD:	.SETS CMD "TIM"
	.ASK CC DISPLAY ONLY
	.IFT CC .GOTO RDYTIM
	.IFT DOT .ASK DOD AND THE DATE
	.IFT DOT .GOTO GETTIM
	.IFT DOD .ASK DOT AND THE TIME
.GETTIM:.IFT DOT .ASKS S1 ENTER TIME  (HH:MM:SS)
	.IFT DOD .ASKS S3 ENTER DATE (DD-MMM-YY)
	.IFT DOT .AND .IFT DOD .SETS S2 " "
.RDYTIM:.GOSUB GEN
	.RETURN
.DEL:
.DELE:
.PUR:
.PURG:	.SETS CMD "PIP"
	.ASK CC PURGE (/KEEP) (Y), OR DELETE FILES (N)
	.IFF CC .SETS S5 "/DE"
	.IFT CC .ASKS XX KEEP HOW MANY VERSIONS (eg: 3)
	.IFT CC .SETS S5 "/PU:'XX'"
	.ASKS S1 ENTER TARGET DISK ID OR <RETURN> FOR SY0: (eg: '<SYDISK>'1:)
	.ASKS S2 ENTER UIC OR <RETURN> FOR '<UIC>' (eg: [123,321])
	.IFT CC .ASKS S3 ENTER FILENAME.EXT (eg: *.ASC)
	.IFF CC .ASKS S3 ENTER FILENAME.EXT;VER (eg: TEST.*;12)
	.GOSUB GEN
	.RETURN
.DIB:
.DIBO:	;
	;	NO DIBOL AS YET
	;
	.RETURN
.CMP:
.DIFF:
.DIF:	.SETS CMD "CMP"
	.IFNINS ...CMP INS $CMP
	.ASKS XX ENTER FIRST FULL INPUT FILE-SPEC:
	.ASKS YY ENTER SECOND FULL INPUT FILE-SPEC
	.SETS S5 "='XX','YY'"
	.ASKS XX ENTER OUTPUT FILE-SPEC (MUST BE PRESENT)
	.SETS S1 "'XX'/-SP"
	;
	;	ONLY 3 OPTION SWITCHES WILL BE PERMITTED
	;
	.ASK CC GENERATING AN SLP CORRECTION FILE
	.IFT CC .SETS S2 "/SL"
	.IFT CC .GOTO CMP1
	.SETS XX "/-LN"
	.ASK CC GENERATING LINE NUMBERS ON OUTPUT
	.IFF CC .GOSUB SWSET
.CMP1:	.ASK CC GENERATING CHANGE INDICATORS ON OUTPUT
	.IFF CC .GOTO CMP2
	.SETT DOT
	.ASK CC GENERATING OTHER THAN VERTICAL BAR
	.IFT CC .ASKS YY ENTER 3 CHARACTER OCTAL CODE FOR SYMBOL
	.IFT CC .SETS XX "/CB/VB:'YY'"
	.IFF CC .SETS XX "/CB"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP2:	.IFT DOT .GOTO CMP3
	.ASK CC GENERATING ONLY DIFFERENCES
	.IFT CC .GOTO CMP3
	.SETS XX "/-DI"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP3:	.ASK CC INCLUDING BLANK LINES
	.IFF CC .GOTO CMP4
	.SETS XX "/BL"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP4:	.ASK CC INCLUDING COMMENT (;) LINES
	.IFT CC .GOTO CMP5
	.SETS XX "/-CO"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP5:	.ASK CC INCLUDING FORM FEED CHARACTERS
	.IFF CC .GOTO CMP6
	.SETS XX "/FF"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP6:	;
	;	CURRENTLY, 3 LINES MUST BE IDENTICAL IN ORDER FOR CMP
	;	TO RECOGNIZE A MATCH.
	;
	.ASK CC CHANGING THIS DEFAULT
	.IFF CC .GOTO CMP7
	.ASKS YY ENTER NUMBER OF LINES FOR MATCH
	.SETS XX "/LI:'YY'"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP7:	.ASK CC COMPARING ALL BLANKS AND TABS (DEF = Y)
	.IFT CC .GOTO CMP8
	.SETS XX "/-MB"
	.GOSUB SWSET
	.IF XX = NL ;	SWITCH QUOTA FULL - SWITCH INCLUDED
	.IF XX = NL .GOTO CMPEX
.CMP8:	.ASK CC COMPARING TRAILING BLANKS (DEF = Y)
	.IFT CC .GOTO CMPEX
	.SETS XX "/-TB"
	.GOSUB SWSET
.CMPEX:	.GOSUB GEN
	.RETURN
.DIRE:
.DIR:	;
	;	BEFORE EXAMINING CERTAIN PORTIONS OF YOUR OWN DIRECTORY,
	;	THE DIRECTORY CAN BE RECONSTRUCTED IN SORTED FASHION,
	;	BY FILENAME OR EXTENSION, FIRST ONE THEN THE OTHER. 
	;	IN THIS WAY, SUBSEQUENT "PIP" DIRECTORIES WILL APPEAR
	;	MORE ORDERED.
	;
	.ASK CC DO YOU WANT YOUR DIRECTORY SORTED
	.IFF CC .GOTO PIP1
	.IF <UIC> = <SYSUIC> ;	SORRY - WILL NOT SORT OPERATING SYSTEM AREA -
	.IF <UIC> = <SYSUIC> .GOTO PIP1
	.IFNINS ...SRD INS $SRD
	.ASK CC BY NAME FIRST
	.IFT CC SRD /NA/WB/NOLI
	.IFF CC SRD /WB/NOLI
.PIP1:	.SETS CMD "PIP"
	.ASKS XX ENTER OUTPUT FILE-SPEC OR <RETURN> FOR SCREEN
	.IF XX = NL .GOTO PIP2
	.SETS S1 "'XX'="
.PIP2:	.ASK CC WILL DIRECTORY BE OF THIS DISK AND UIC '<UIC>'
	.IFT CC .GOTO PIP3
	.ASKS S2 ENTER FULL DISK AND UIC SPECS (eg: '<SYDISK>'1:[123,321]
.PIP3:	.ASK CC ALL FILES, ALL VERSIONS
	.SETS S3 "*.*;*"
	.IFT CC .GOTO PIP4
	.ASK CC ALL FILES, LATEST VERSIONS
	.SETS S3 "*.*"
	.IFT CC .GOTO PIP4
	.ASKS S3 ENTER FULL FILE-SPEC FOR LOOKUP
.PIP4:	.ASKS XX TYPE= BRIEF (BR), FULL (FU), OR STANDARD (LI) - ENTER ONE
	.SETS S4 "/'XX'"
	.GOSUB GEN
	.RETURN
.DMP:
.DUM:
.DUMP:	.SETS CMD "DMP"
	.IFNINS ...DMP INS $DMP
	.ASKS XX ENTER OUTPUT FILE-SPEC OR <RETURN> FOR SCREEN
	.IF XX = NL .SETS S1 "TI:="
	.IF XX <> NL .SETS S1 "'XX'/-SP="
	.ASKS S2 ENTER INPUT DEVICE AND/OR FILESPEC
	;
	;	YOU MAY CHOOSE ANY SWITCH FROM BELOW
	;
	.ASKS S3 ASCII (/AS), BYTE (/BY), DECIMAL (/DC) ...
	.ASKS S4 HEX-BYTE (/HX), HEX-DBL-WORD (/LW), HEX-WORD (/WD) ...
	;
	;	OR ANY OF THE FOLLOWING:
	;	NOTE: /RC WORKS WITH THE ABOVE IF DESIRED
	;
	;	/BL:N:M		N:M = RANGE OF BLOCKS (DEVICE MODE)
	;	/HD:/BL:0	DUMP FILE HEADER      (FILE MODE)
	;	/LB		GET STARTING BLOCK NUMBER
	;	/MD		DON'T RESET LINE #S ON BLOCK CROSSOVER
	;	/R5		RAD50 WORD FORMAT
	;	/RC		RECORD, NOT BLOCK, AT A TIME
	;
	.ASKS S5 ENTER SWITCH OR <RETURN>
	.GOSUB GEN
	.RETURN
.TEC:
.TECO:
.VTEC:
.EDT:
.EDIT:
.EDI:	;
	;	THE FOLLOWING EDITORS ARE AVAILABLE:
	;	EDI, EDT (STANDARD DEC EDITOR), TEC (TECO),
	;	AND VTEC (TECO FULLSCREEN EDITOR).
	;
	.ASKS XX ENTER EDITOR NAME FROM ABOVE LIST
	.IFNINS ...'XX' INS $'XX'
	.SETS CMD "'XX'"
	.ASKS S1 ENTER FILENAME WITH EXTENSION
	.GOSUB GEN
	.RETURN
.EXEC:
.EXE:	.GOSUB COMP
	.GOSUB LINK
	.GOSUB RUN
	.RETURN
.FOCA:
.FOC:	;
	;	NO FOCAL INTERPRETER AS YET
	;
	.RETURN
.FORT:
.FOR:	.SETF CC
	.GOSUB COM1
	.RETURN
.FRUN:
.FRU:	;
	;	NOT A FOREGROUND/BACKGROUND MONITOR BUT EXECUTING "RUN"
	;
	.GOSUB RUN
	.RETURN
.GET:	;
	;	THIS RESEMBLES THE RSX11M INSTALL COMMAND IS SO MUCH AS
	;	IT CAUSES A TASK TO BE READY TO RUN.
	;
	.SETS CMD "INS"
	.ASKS S1 SPECIFY THE TASK"S LOCATION OR ($) OR <RETURN> FOR SY0:
	.ASKS S2 ENTER ITS FILENAME
	;
	;	SEVERAL OPTIONS ARE AVAILABLE, AND YOU MAY ENTER UP TO
	;	3 OF THE FOLLOWING, WITH FULL SYNTAX:
	;	NOTE:	option IMPLIES A "YES" OR "NO" RESPONSE.
	;
	;	/CKP=option	CHECKPOINTABLE TO DISK
	;	/INC=size	ALLOW TASK MORE WORK SPACE
	;	/PAR=parname	INTO A SPECIFIC PARTITION
	;	/PMD=option	GENERATE DUMP ON TASK ABORT
	;	/PRI=number.	DECIMAL PRIORITY ALTERNATIVE
	;	/SLV=option	TASK RECEIVING DATA KNOWS TI: OF SENDER
	;	/TASK=taskname	SPECIAL 6 CHAR. TASKNAME
	;	/UIC=[uic]	ALTER TASK ACCESS PRIVILEDGES
	;
	.ASKS S3 SWITCH OR <RETURN>
	.IF S3 = NL .GOTO GETOUT
	.ASKS S4 SWITCH OR <RETURN>
	.IF S4 = NL .GOTO GETOUT
	.ASKS S5 SWITCH OR <RETURN>
.GETOUT:.GOSUB GEN
	.RETURN
.HELP:
.HEL:	;
	;	HELP IS PROVIDED FOR ALL SYSTEM TASKS AND UTILITIES BY
	;	TASKNAME (eg: EDI OR CMP OR DSCSYS ...).
	;
	.SETS CMD "HELP"
	.ASKS S1 ENTER NAME OF TASK IN QUESTION
	;
	;	ADDITIONAL QUALIFIERS ARE PROVIDED TO FURTHER DESCRIBE
	;	THE UTILITY.  A <RETURN> WILL SIMPLY GIVE A GENERAL
	;	FUNCTION DESCRIPTION.
	;
	.ASKS S3 ENTER SYNTAX, SWITCH, RESTRICT OR <RETURN>
	.IF S3 <> NL .SETS S2 " "
	.GOSUB GEN
	.RETURN
.INIT:
.INI:	;	THIS FUNCTION WILL CLEAR NOT ONE DIRECTORY, BUT AN ENTIRE
	;	RSX DISK, AND SHOULD NOT BE EXECUTED WITHOUT THOROUGH
	;	FAMILIARITY WITH THE SYSTEM.
	;
	.ASK CC DO YOU STILL WANT TO INITIALIZE A DISK OR TAPE
	.IFF CC .RETURN
	.SETS CMD "INI"
	.ASK CCC DISK (Y) OR TAPE (N)
	.IFT CCC .GOTO DSKDEV
	.ASKS [4:4] S1 ENTER TAPE UNIT ID (eg: MT0:)
	.ASKS [1:6] S2 ENTER DESIRED VOLUME LABEL
	.ASK CC 1600 BPI (Y) OR 800 BPI (N)
	.IFT CC .SETS S3 "/DENS=1600"
	.GOSUB GEN
	.RETURN
.DSKDEV:.ASKS [4:4] XX ENTER DISK UNIT ID (eg: '<SYDISK>'1:)
	.ASKS [1:12.] YY ENTER DESIRED VOLUME LABEL
	.SETS S1 "'XX''YY'"
	;
	;	THE FOLLOWING OPTIONS ARE AVAILABLE AND YOU WILL BE 
	;	PERMITTED TO SELECT AT MOST 4.
	;
	;	/EXT=block-count	# OF BLOCKS ALLOCATED TO FILE AT ONCE
	;	/FPRO=[sys,ow,gr,wo]	RWED PROTECTION FOR ENTIRE DISK
	;	/INDX=indx file posit"n	BEG, MID, END, BLK=nnn
	;	/INF=initial index size	INITIAL NUMBER OF FILE HEADERS
	;	/LRU=# buffers in memoryBUFFERS FOR MOST USED DIRECTORIES
	;	/MXF=file count		MAX # OF FILES PERMITTED
	;	/WIN=pointer count	IF NOT 7 POINTERS TO FILE WINDOWS
	;
	.ASKS S2 SWITCH OR <RETURN>
	.IF S2 = NL .GOTO DSKOUT
	.ASKS S3 SWITCH OR <RETURN>
	.IF S3 = NL .GOTO DSKOUT
	.ASKS S4 SWITCH OR <RETURN>
	.IF S4 = NL .GOTO DSKOUT
	.ASKS S5 SWITCH OR <RETURN>
.DSKOUT:.GOSUB GEN
	.RETURN
.INST:
.INS:	;
	;	DEVICES CANNOT BE INSTALLED IN RSX11M. THEY CAN BE 
	;	MOUNTED IF ALREADY SYSGENNED OR YOU MAY PERFORM AN
	;	RSX INSTALL OF A TASK IF THAT IS YOUR WISH.
	;
	.ASK CC MOUNT DEVICE (Y), OR INSTALL TASK (N)
	.IFT CC .GOTO MOU
	.GOSUB GET
	.RETURN
.MOUN:
.MOU:	;
	;	YOU MAY MOUNT A DISK OR MOUNT AN INITIALIZED TAPE
	;	TO BE ACCESSED BY PIP.
	;
	.SETS CMD "MOU"
	.ASKS [4:4] S1 ENTER TAPE OR DISK UNIT ID (eg: '<SYDISK>'1:)
	.ASKS S2 ENTER VOLUME ID, /OVR, OR <RETURN>
	.GOSUB GEN
	.RETURN
.LOAD:
.LOA:	;
	;	THE FOLLOWING LIST CONTAINS THE NAMES AND IDENTIFIERS
	;	OF CERTAIN DEVICE HANDLERS WHICH MAY BE ON YOUR SYSTEM.
	;
	;	TERMINAL DRIVER			TT:
	;	RK05 DISK DRIVER		DK:
	;	RL01 DISK DRIVER		DL:
	;	LINEPRINTER DRIVER		LP:
	;	MAGTAPE DRIVER			MT:
	;	CARD READER DRIVER		CR:
	;	PAPER TAPE READER DRIVER	PR:
	;	PAPER TAPE PUNCH DRIVER		PC:
	;	LPS11 PERIPHERAL DRIVER		LS:
	;
	.SETS CMD "LOA"
	.IFNINS ...LOA INS $LOA
	.ASKS [3:3] S1 ENTER APPROPRIATE DRIVER IDENTIFIER (eg: DK:)
	.GOSUB GEN
	.RETURN
.MACR:
.MAC:	.SETT CC
	.GOSUB COM1
	.RETURN
.RUN:
.R:	.ASK CC IS DESIRED TASK ON THIS DISK AND IN '<UIC>'
	.IFT CC .GOTO R1
	.ASKS S1 ENTER SOURCE DISK AND/OR UIC (eg: '<SYDISK>'n:[nnn,nnn])
.R1:	.ASKS S2 ENTER filename.ext OF TASK TO BE RUN
	;
	;	TASKS MAY BE RUN IMMEDIATELY, OF COURSE, OR AT AN ABSOLUTE
	;	TIME OF DAY, OR AFTER A DELAY OF n SECONDS, MINUTES, OR
	;	HOURS.
	;
	.ASK CC ENTERING TIME PARAMETERS
	.IFF CC .GOTO R2
	.ASKS XX ENTER nS (SEC), nM (MIN), nH (HOURS) OR <RETURN>
	.IF XX <> NL .SETS S3 " 'XX'"
	.IF S3 <> NL .GOTO R2
	.ASKS XX ENTER ABSOLUTE TIME (HH:MM:SS) OR <RETURN>
	.IF XX <> NL .SETS S3 " 'XX'"
.R2:	;
	;	TASKS MAY ALSO BE SCHEDULED TO RUN REPEATEDLY ON A 
	;	SPECIFIED TIME INTERVAL AFTER THE FIRST EXECUTION.
	;
	.ASK CC SPECIFYING A RUN INTERVAL
	.IFF CC .GOTO R3
	.ASKS XX ENTER nT (TICKS), nS, nM, nH OR <RETURN>
	.IF XX <> NL .SETS S4 "/RSI='XX'"
.R3:	;
	;	ADDITIONAL KEYWORDS ARE AVAILABLE WHICH ARE
	;	EXPLAINED IN VOLUME 2A, OPERATORS PROCEDURES,
	;	PAGE 5-89.  THESE ARE:
	;
	;		/CKP=option
	;		/INC=size
	;		/PAR=parname
	;		/PMD=option
	;		/PRI=number
	;		/SLV=option
	;		/TASK=taskname
	;		/UIC=[group,member]
	;
	.ASKS S5 ENTER ANY OF THE ABOVE OR <RETURN>
	.SETS CMD "RUN"
	.GOSUB GEN
	.RETURN
.PRIN:
.PRI:	.ASKS S1 ENTER filename.ext OF FILE TO BE PRINTED
	.SETS S2 "/SP"
	.SETS CMD "PIP"
	.GOSUB GEN
	.RETURN
.REEN:
.REE:	;
	;	NO CORRESPONDING FUNCTION IN RSX11M - EXECUTING RUN
	;
	.GOSUB RUN
	.RETURN
.REMO:	
.REM:	;
	;	NOT APPLICABLE TO RSX11M DEVICE HANDLERS. PROVIDING
	;	CHOICE TO REMOVE AN INSTALLED TASK OR UNLOAD A LOADED
	;	DEVICE DRIVER.
	;
	.ASK CC REMOVE TASK (Y), OR UNLOAD DRIVER (N OR <RETURN>)
	.IFF CC .GOTO UNL
	.ASKS S1 ENTER NAME OF TASK TO BE REMOVED
	.SETS CMD "REM"
	.GOSUB GEN
	.RETURN
.SAVE:
.SAV:	;
	;	MEMORY CANNOT BE DYNAMICALLY DUMPED IN RSX11M
	;
	.RETURN
.SHOW:
.SHO:
.DEV:	.ASK CC FOR A PARTICULAR DEVICE TYPE
	.IFF CC .GOTO DEV1
	.ASKS S1 ENTER DEVICE IDENTIFIER (eg: TT:)
	.GOTO DEV2
.DEV1:	.ASK CC FOR LOGGED IN TERMINALS
	.IFT CC .SETS S1 "/LOG"
.DEV2:	.SETS CMD "DEV"
	.GOSUB GEN
	.RETURN
.SQUE:
.SQU:	;
	;	ONLY CORRESPONDING FACILITY WHICH COMES CLOSE IS 
	;	DSCSYS (DISK SAVE AND COMPRESS) - EXECUTING HELP
	;
	.GOSUB HELP
	.RETURN
.STAR:
.STA:	;
	;	NO CORRESPONDING FACILITY IN RSX11M - EXECUTING RUN
	;
	.GOSUB RUN
	.RETURN
.SUSP:
.SUS:	;
	;	AN RSX TASK MAY ONLY SUSPEND ITSELF BY ISSUING AN
	;	EXECUTIVE SUSPEND DIRECTIVE.
	;
	.RETURN
.TYPE:
.TYP:	.ASKS S2 ENTER filename.ext OF FILE TO BE EXAMINED
	.SETS S1 "TI:="
	.SETS CMD "PIP"
	.GOSUB GEN
	.RETURN
.RES:	.ASK CC RESUME (Y), OR RESET (N)
	.IFT CC .GOTO RESU
.RESE:	;
	;	NOT APPLICABLE TO RSX11M
	;
	.RETURN
.RESU:	.ASKS S1 ENTER NAME OF TASK TO BE RESUMED
	.SETS CMD "RES"
	.GOSUB GEN
	.RETURN
.UNLO:
.UNL:	.ASKS S1 ENTER DEVICE CODE OF DRIVER TO BE UNLOADED (eg: PR:)
	.SETS CMD "UNL"
	.IFNINS ...UNL INS $UNL
	.GOSUB GEN
	.RETURN
.TKB:
.LIN:
.LINK:	;
	;	TASK BUILDING WILL BE ACCOMPLISHED BY CREATING A SIMPLE
	;	COMMAND FILE (fileBLD.CMD) IN '<UIC>' AND SUBMITTING IT
	;	TO THE TASK BUILDER (TKB).
	;
	.SETS CMD "TKB"
	.ASKS [1:6] XX ENTER OBJECT MODULE NAME (EXT MUST BE .OBJ)
	.OPEN #1 'XX'BLD.CMD
	.ASK MP DO YOU WANT THE MAP
	.ASK OV WILL THE TASK BE OVERLAID
	.IFT MP .IFT OV .DATA #1 'XX','XX'/-SP='XX'/MP
	.IFT MP .IFF OV .DATA #1 'XX','XX'/-SP='XX'
	.IFF MP .IFT OV .DATA #1 'XX'='XX'/MP
	.IFF MP .IFF OV .DATA #1 'XX'='XX'
	.IFF OV .ASKS YY ENTER ANY LIBRARY SPEC OR <RETURN>
	.IFF OV .AND .IF YY <> NL .DATA #1 'YY'/LB
	.IFF OV .DATA #1 /
	;
	;	THE FOLLOWING OPTIONS ARE AVAILABLE AND ARE DESCRIBED
	;	IN VOLUME 1B, THE TASK BUILDER MANUAL, PAGES 3-15 THRU
	;	3-30.
	;
	;	ABORT=	ABSPAT=	ACTFIL=	ASG=	COMMON=	EXTSCT=	EXTTSK=
	;	FMTBUF=	GBLDEF=	GBLPAT=	GBLREF=	LIBR=	MAXBUF=	ODTV=
	;	PAR=	PRI=	RESCOM=	RESLIB=	STACK=	TASK=	TSKV=
	;	UIC=	UNITS=	VSECT=	WNDWS=
	;
.TKB1:	.ASKS YY ENTER NEXT OPTION OR <RETURN>
	.IF YY = NL .GOTO TKB2
	.DATA #1 'YY'
	.GOTO TKB1
.TKB2:	.DATA #1 //
	.CLOSE #1
	.SETS S1 "@'XX'BLD"
	SET /NOHOLD=TI:
	;
	;	YOUR GENERATED BUILD COMMAND FILE IS CALLED 'XX'BLD.CMD,
	;	AND LOOKS LIKE THIS:
	;
	PIP TI:='XX'BLD.CMD
	;
	.GOSUB GEN
	.RETURN
.LBR:
.LIBR:
.LIB:	;
	.SETS ZZ "COCR"
	.SETS CMD "LBR"
	.IFNINS ...LBR INS $LBR
	;	THERE ARE FIVE GROUPS OF LIBRARY FUNCTIONS WHICH
	;	YOU CAN PERFORM, ALL OF WHICH MUST BE WELL CONSIDERED
	;	BEFORE EXECUTION.  EACH GROUP WILL BE DISTINGUISHED
	;	BY COMMENTS DESCRIBING THE AVAILABLE SWITCHES.
	;	IF THE FIRST GROUP IS SELECTED, NO OTHERS WILL BE 
	;	PERMITTED.
	;
	;	CO	TO COMPRESS A LIBRARY FILE
	;	CR	TO CREATE A LIBRARY FILE
	;	
	.ASKS XX ENTER DESIRED SWITCH OR <RETURN>
	.IF XX <> NL .GOSUB GR1
	.IF XX <> NL .GOTO LIBEX
	;
	;	DE	TO DELETE A MODULE
	;	DG	TO DELETE AN ENTRY POINT
	;
	.ASKS XX ENTER DESIRED SWITCH OR <RETURN>
	.IF XX <> NL .GOSUB GR2
	;
	;	IN	TO INSERT A MODULE
	;	RP	TO REPLACE A MODULE
	;	SZ	TO REDUCE THE SIZE OF A MACRO LIBRARY
	;
	.ASKS XX ENTER DESIRED SWITCH OR <RETURN>
	.IF XX <> NL .GOSUB GR3
	.IF XX <> NL .GOTO LIBEX
	;
	;	EX	TO EXTRACT A MODULE
	;	SS	TO SET FOR A SELECTIVE SEARCH
	;	EP	TO INCLUDE MODULE ENTRY POINTS
	;	NOEP	TO EXCLUDE MODULE ENTRY POINTS
	;
	.ASKS XX ENTER DESIRED SWITCH OR <RETURN>
	.IF XX <> NL .GOSUB GR4
	.IF XX <> NL .GOTO LIBEX
	;
	;	LI	TO LIST MODULE NAMES
	;	LE	TO LIST MODULE NAMES AND ENTRY POINTS
	;	FU	TO LIST MODULE NAMES AND FULL DESCRIPTIONS
	;
	.ASKS XX ENTER DESIRED SWITCH OR <RETURN>
	.IF XX <> NL .GOSUB GR5
.LIBEX:	.GOSUB GEN
	.RETURN
.GR1:	.ASKS YY ENTER LIBRARY NAME
	.SETS S1 "'YY'/'XX':"
	.SETS S3 "='YY'"
	.ASKS YY ENTER DESIRED SIZE (IN BLOCKS)
	.ASKS ZZY ENTER # OF ENTRY POINTS TO ALLOCATE
	.ASKS ZZZ ENTER # OF MODULE NAMES TO ALLOCATE
	.SETS S2 "'YY':'ZZY':'ZZZ'"
	.IF XX = ZZ[3:4] .ASKS YY ENTER FILE TYPE (OBJ OR MAC)
	.IF XX = ZZ[3:4] .SETS S3 ":'YY'"
	.RETURN
.GR2:	.ASKS YY ENTER LIBRARY NAME
	.SETS S1 "'YY'/'XX':"
	.ASKS YY ENTER MODULE OR ENTRY POINT NAME
	.SETS S1 S1+'YY'
	.RETURN
.GR3:	.IF S1 <> NL .GOTO GR31
	.ASKS YY ENTER LIBRARY NAME
	.SETS S1 "'YY'/'XX'"
.GR31:	.ASKS YY ENTER MODULE NAME OR LIBRARY FOR SZ
	.SETS S1 "'S1'='YY'"
	.RETURN
.GR4:	.ASKS S1 ENTER LIBRARY OR OUTPUT OBJECT SPECIFICATION
	.ASKS YY ENTER SOURCE LIBRARY OR EP MODULE NAME
	.SETS S2 "='YY'/'XX'"
	.ASKS YY ENTER MODULE TO BE EXTRACTED
	.IF YY <> NL .SETS S3 ":'YY'"
	.RETURN
.GR5:	.ASKS S1 ENTER LIBRARY NAME
	.ASKS YY ENTER LISTFILE NAME
	.SETS S2 ",'YY'/-SP/'XX'"
	.RETURN
.EXIT:	.IFT DAT .CLOSE
/
