Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0058/edits.rno
There are 2 other files named edits.rno in the archive. Click here to see a list.
00100	
00200	.LEFT MARGIN 5
00300	.RIGHT MARGIN 60
00400	.TITLE ^^STOPGAP\\ - ^USERS ^GUIDE - ^V13(15)
00500	.SUBTITLE PREFACE
00600	.SPACING 1
00700	.FIGURE 15
00800	.INDEX ^PREFACE
00900	.CENTER
01000	^^P#R#E#F#A#C#E\\
01100	.CENTER
01200	-------------
01300	.BLANK 2
01400	^^EDITS\\ WAS DERIVED FROM AN EDITOR WRITTEN BY ^WILLIAM ^F. ^WEIHER WHILE AT THE
01500	^STANFORD ^ARTIFICIAL ^INTELLIGENCE ^PROJECT. ^THIS MEMBER OF THE ^^STOPGAP
01600	CLAN WAS ADAPTED FROM THE VERSION
01700	RUNNING AT ^SANDERS ^ASSOCIATES IN ^NASHUA, ^NEW ^HAMPSHIRE AND
01800	TURNED OVER TO ^DIGITAL BY ^SANDERS.  ^THE MODIFICATIONS
01900	MADE BY ^GORIN AND ^SAUTER WERE DONE AT ^SANDERS.  ^MANY OF THE MODS
02000	MADE BY ^RYDER AT ^DIGITAL BENEFITTED FROM CONVERSATIONS WITH BOTH
02100	^GORIN AND ^SAUTER.  
02200	.BLANK 4
02300	^^EDITS\\ IS VERY, VERY SIMILAR TO ^^SOS\\. ^BUT BEWARE, ^^SOS\\ USERS.
02400	.BLANK 4
02500	.CENTER
02600	^VERSION ^V13(15)
02700	.SUBTITLE ^ABSTRACT
02800	.PAGE
02900	.LEFT MARGIN 0
03000	.INDEX ^ABSTRACT
03100	.CENTER
03200	^^A#B#S#T#R#A#C#T\\
03300	.CENTER
03400	---------------
03500	.BLANK 2
03600	.PARAGRAPH
03700	^THIS MANUAL IS A DESCRIPTION OF THE ^STOPGAP ^EDITOR, AN EASY-TO-USE
03800	BUT POWERFUL LINE-ORIENTED EDITOR THAT IS AVAILABLE TO THE USERS OF THE
03900	^P^D^P-10 TIME-SHARING SYSTEM.
04000	.PARAGRAPH
04100	^IN A TIME-SHARING SYSTEM, PROGRAMS ARE USUALLY ENTERED FROM A REMOTE
04200	TELETYPE. ^THIS IS IN DISTINCT CONTRAST TO OTHER SYSTEMS WHERE PROGRAMS
04300	AND REVISIONS MUST BE PREPARED ON PUNCHED CARDS AND SUBMITTED DIRECTLY
04400	TO THE COMPUTER.
04500	.PARAGRAPH
04600	^IN THE ^P^D^P-10 SYSTEM, PROGRAMS ARE USUALLY WRITTEN AND MODIFIED USING
04700	AN EDITOR. ^PROGRAM STATEMENTS THAT ARE TYPED BY A USER ARE READ BY ^STOPGAP
04800	AND PUT ON THE DISK. ^IN THIS WAY, DISK FILES THAT CONTAIN PROGRAM
04900	STATEMENTS ARE CREATED. ^THESE FILES CONTAINING PROGRAMS ARE WRITTEN
05000	IN SUCH A WAY THAT OTHER PROGRAMS LIKE ^^FORTRAN C\\OMPILER CAN READ THEM.
05100	.PARAGRAPH
05200	^STOPGAP IS QUITE FLEXIBLE. ^IN ITS BASIC COMMANDS, IT ALLOWS A USER TO
05300	^INSERT, ^DELETE OR ^PRINT A LINE. ^IN THIS WAY, AND WITH THESE COMMANDS,
05400	FILES THAT CONTAIN PROGRAM STATEMENTS CAN BE CREATED AND REVISED.
05500	^STOPGAP IN ITS MORE ADVANCED COMMANDS ALLOWS GREAT FLEXIBILITY. ^STRING
05600	SEARCHES, SUBSTITUTIONS AND TEXT MANIPULATION ARE ALLOWED IN THE ADVANCED
05700	COMMANDS. ^ALSO, A COMMAND IS PROVIDED TO ALLOW CHANGES WITHIN A LINE
05800	TO BE MADE WITHOUT HAVING TO RETYPE THE ENTIRE LINE.
05900	.PARAGRAPH
06000	^THIS MANUAL IS DIVIDED INTO TWO SECTIONS. ^THE FIRST IS A GENERAL
06100	INTRODUCTION AND DESCRIPTION OF THE EDITOR. ^THE SECOND SECTION IS A
06200	DETAILED DESCRIPTION OF EACH COMMAND.
06300	.PARAGRAPH
06400	^THE NOVICE USER IS URGED TO BECOME FAMILIAR WITH BASIC COMMANDS
06500	^INSERT, ^DELETE, ^PRINT AND ^END BEFORE ATTEMPTING ANY OF THE MORE
06600	COMPLICATED FUNCTIONS.
     
00100	
00200	.SUBTITLE ^TABLE OF ^CONTENTS
00300	.PAGE
00400	.NOFILL
00500	.NOJUSTIFY
00600	.LEFT MARGIN 5
00700	.TAB STOPS 55
00800	.CENTER
00900	^^CONTENTS
01000	.CENTER
01100	--------
01200	.BLANK 2
01300	GENERAL INFORMATION
01400	.BLANK 1
01500	.CENTER
01600	BASIC COMMANDS
01700	.CENTER
01800	--------------
01900	.BLANK 1
02000	.TAB STOPS 12,55
02100	I	INSERT
02200	P	PRINT
02300	_.	MOVE POINTER
02400	D	DELETE
02500	R	REPLACE
02600	E	END
02700	G	GO
02800	B	BASIC
02900	Q	QUALM
03000	.BLANK 2
03100	.CENTER
03200	INTERMEDIATE COMMANDS
03300	.CENTER
03400	---------------------
03500	.BLANK 1
03600	M	MARK
03700	K	KLEAR
03800	N	NUMBER
03900	L	LIST
04000	=	GIVE INFORMATION
04100	__	SET
04200	J	JOIN
04300	.BLANK 2
04400	.CENTER
04500	ADVANCED COMMANDS
04600	.CENTER
04700	-----------------
04800	.BLANK 1
04900	F	FIND
05000	S	SUBSTITUTE
05100	C	COPY
05200	T	TRANSFER
05300	A	ALTER
05400	X	EXPAND
05500	.BLANK 1
05600	DISK CHECK FEATURE AND ALTERNATE DEVICES
05700	.BLANK 1
05800	ERROR RECOVERY
05900	.BLANK 1
06000	GLOSSARY\\
06100	
     
00100	
00200	.SUBTITLE ^GENERAL ^INFORMATION
00300	.PAGE
00400	.FILL
00500	.JUSTIFY
00600	.LEFT MARGIN 0
00700	.PARAGRAPH
00800	^THE ^STOPGAP TEXT EDITOR PROVIDES A MEANS OF CREATING AND MODIFYING
00900	TEXT FILES. ^IT PROVIDES THE ABILITY TO INSERT, DELETE AND MODIFY LINES
01000	OF TEXT. ^ALSO CERTAIN LISTING ABILITIES ARE INCLUDED.
01100	.PARAGRAPH
01200	^THE FILE IS ORGANIZED IN TERMS OF PAGES WHICH ARE SUB-DIVIDED INTO LINES.
01300	^THE PAGES ARE NUMBERED SEQUENTIALLY, STARTING AT 1 AND CONTINUING
01400	TO THE END OF THE FILE. ^THE DIVISION INTO PAGES IS DETERMINED BY THE USER
01500	RATHER THAN BY THE EDITOR. (^MANY USERS KEEP ONLY ONE PAGE). ^PAGE MARKS
01600	WHICH INDICATE THE START OF A PAGE ARE INSERTED AND DELETED BY THE USER.
01700	(^SEE THE ^MARK COMMAND). ^PAGE NUMBERS ARE "FLOATING"; I.E., IF PAGE
01800	^MARK 2 WERE CLEARED, THEN THE PAGE THAT HAD FORMERLY BEEN NUMBERED 3,
01900	WILL NOW BE NUMBERED 2. ^THE PAGES THAT HAD BEEN 1 AND 2 WILL BE CONCATENATED
02000	INTO PAGE 1. ^IN CONTRAST TO THE FLOATING PAGE NUMBERS, THE LINE NUMBERS
02100	ARE "STICKY". ^THAT IS, A GIVEN LINE WILL RETAIN THE SAME NUMBER REGARDLESS
02200	OF INSERTIONS OR DELETIONS IN THE TEXT AROUND IT. ^THE LINES ARE USUALLY
02300	NUMBERED BY SOME INCREMENT OTHER THAN 1 TO ALLOW ROOM FOR NEW LINES
02400	TO BE INSERTED. ^SEVERAL PAGES MAY HAVE LINES OF THE SAME NUMBER.
02500	.PARAGRAPH
02600	^A COMMAND TO THE EDITOR CONSISTS OF A SINGLE CHARACTER FOLLOWED BY A LIST
02700	OF ARGUMENTS. ^THE INPUT FORMAT IS FREE FIELD, I.E., SPACES ARE IGNORED
02800	EXCEPT THAT THEY DELIMIT NUMBERS AND IDENTIFIERS. ^TABS ARE TREATED AS
02900	MULTIPLE SPACES.
03000	.INDEX ^STARTING ^STOPGAP
03100	.PARAGRAPH
03200	^THE EDITOR IS SUMMONED IN TWO WAYS. ^FIRST, THE ^^CCL\\ COMMANDS
03300	^^CREATE\\ AND ^^EDIT\\ WILL SUMMON ^STOPGAP. ^WHEN STARTING ^STOPGAP
03400	IN THIS WAY, A FILE NAME MUST BE TYPED AS AN ARGUMENT TO THE ^^CREATE\\
03500	OR ^^EDIT\\ COMMANDS. ^IN CASE YOU TYPED A FILE NAME ARGUMENT TO ONE
03600	OF THESE COMMANDS ONCE BEFORE, THEN YOU NEED NOT REPEAT THE FILE NAME. ^FOR
03700	EXAMPLE, SUPPOSE YOU STARTED WITH:
03800	.BLANK 1
03900	^^CREATE FRED.F4\\
04000	.BLANK 1
04100	^SUBSEQUENTLY, TO EDIT THE FILE NAMED ^^FRED.F4\\, YOU ONLY NEED TO TYPE:
04200	.BLANK 1
04300	^^EDIT\\
04400	.BLANK 1
04500	AND ^^CCL\\ WILL REMEMBER THE FILE NAME.
04600	.BLANK 1
04700	^THE EDITOR CAN ALSO BE STARTED BY THE COMMAND:
04800	.BLANK 1
04900	^^R EDITS\\
05000	.TEST PAGE 5
05100	.INDEX ^^ESCAPE (ALTMODE)\\
05200	.PARAGRAPH
05300	^WHEN STARTED THIS WAY, ^STOPGAP WILL TYPE "^^FILE NAME:\\". ^AT THIS TIME THE FILE TO
05400	BE EDITED IS SELECTED. ^THE FILE NAME SHOULD BE TYPED WITH A PERIOD PRECEDING
05500	THE EXTENSION. ^TO EDIT THE FILE, FOLLOW THE FILE NAME WITH CARRIAGE RETURN.
05600	^TO CREATE THE FILE, TYPE THE ESCAPE KEY (ALTMODE ON SOME TELETYPES)
05700	AFTER THE NAME INSTEAD OF A RETURN.
05800	^IF AN ATTEMPT IS MADE TO CREATE A FILE WITH A NAME THAT IS ALREADY IN
05900	USE, THE MESSAGE:
06000	.BLANK 1
06100	^^FILE ALREADY EXISTS!  DELETE (Y OR N)\\
06200	.BLANK 1
06300	WILL BE TYPED. ^STOPGAP THEN WAITS FOR YOUR RESPONSE. ^IF ^N IS TYPED,
06400	^STOPGAP WILL RESPOND WITH A "*" AND A NEW FILE NAME CAN BE SELECTED.
06500	^IF ^Y IS TYPED, THEN THE OLD FILE BY THAT NAME WILL BE DELETED AND THE EDIT
06600	MAY PROCEED. ^TYPING ANYTHING OTHER THAN A ^Y OR AN ^N WILL CAUSE ^STOPGAP
06700	TO RESPOND WITH THE MESSAGE: "^^TYPE Y OR N"\\ AND A "*".
06800	.BLANK 1
06900	^IF AN ATTEMPT TO EDIT A FILE THAT DOES NOT EXIST IS MADE, THEN THE FOLLOWING
07000	MESSAGE WILL BE TYPED:
07100	.BLANK 1
07200	.INDENT 8
07300	^^FILE NOT FOUND
07400	.INDENT 8
07500	CREATION ASSUMED\\
07600	.BLANK 1
07700	.INDENT 8
07800	00100
07900	.BLANK 1
08000	AND LEAVE YOU IN "^I" MODE.
08100	.PARAGRAPH
08200	^IMPLICIT IN THE USE OF THE EDITOR IS THE ASSUMPTION THAT THE DISK IS
08300	THE DEVICE WHERE ALL THE FILES ARE KEPT. ^FOR A NOVICE, IT IS A GOOD
08400	IDEA TO ASSUME THAT THIS DISCUSSION PERTAINS TO THE DISK EXCLUSIVELY.
08500	^IT IS POSSIBLE TO SPECIFY DEVICES OTHER
08600	THAN THE DISK. ^FOR FURTHER INFORMATION, SEE THE DISCUSSION OF ALTERNATE
08700	DEVICES.
08800	.PARAGRAPH
08900	^IN THE ^^CREATE\\ COMMAND, THE EDITOR WILL TYPE A LINE NUMBER 100 AND
09000	WAIT IN ^INSERT MODE (SEE THE ^I COMMAND) FOR YOU TO TYPE LINES OF TEXT.
09100	^IN THE ^^EDIT \\COMMAND, OR IF YOU START ^STOPGAP BY THE ^^R EDITS\\
09200	COMMAND, THEN, ONCE THE FILE IS SPECIFIED, ^STOPGAP WILL TYPE "*" AND WAIT
09300	IN COMMAND MODE.
09400	.PARAGRAPH
09500	^IN NAMING A FILE THAT YOU ONLY WANT TO EXAMINE, IT IS POSSIBLE TO FOLLOW THE
09600	NAME BY /^R, WHICH WILL PUT THE EDITOR INTO READ-ONLY MODE. ^IN THIS MODE
09700	THE SOURCE FILE WILL NOT BE MODIFIED.
09800	.PARAGRAPH
09900	^STOPGAP WORKS BY RECOPYING THE TEXT OF YOUR FILE WITH CORRECTIONS AND ADDITIONS
10000	ONTO A FILE WHOSE NAME IT INVENTS. ^IN ADDITION, ^STOPGAP
10100	TAKES CARE THAT THE SAME NAME IS NEVER INVENTED TWICE OR BY TWO DIFFERENT
10200	COPIES OF THE PROGRAM. ^THIS IS DONE TO INSURE THAT THERE IS NO CONFLICT
10300	BETWEEN DIFFERENT COPIES OF THE EDITOR OR BETWEEN THE FILE CREATED BY THE
10400	EDITOR AND THOSE OF THE USER. ^WHEN THE EDIT IS FINISHED (SEE THE ^E COMMAND),
10500	^STOPGAP RENAMES THIS TEMPORARY FILE TO THE NAME OF THE USER'S ORIGINAL
10600	FILE (UNLESS A NEW NAME IS SPECIFIED IN THE ^E COMMAND). ^SINCE ^STOPGAP
10700	RECOPIES INSTEAD OF EDITING IN PLACE, IT MAY HAVE TO FINISH THE CURRENT
10800	COPY AND START COPYING OVER AGAIN IF THE USER ATTEMPTS TO REFERENCE
10900	A LINE THAT OCCURS EARLIER IN THE FILE THAN THE LAST LINE REFERENCED.
11000	^THIS PROCESS IS AUTOMATIC, BUT IT DOES TAKE TIME, SO THERE MAY BE A DELAY
11100	IN EXECUTING CERTAIN COMMANDS. ^NOTICE THAT THIS FORM OF EDITING MEANS
11200	THAT IF THE USER GOES AWAY AND RUNS SOME OTHER PROGRAM WITHOUT SAYING
11300	^E (OR#^G# ^B,#OR#^Q), THEN HIS FILE WILL BE EXACTLY THE SAME AS IT WAS
11400	BEFORE HE STARTED EDITING. (^YOU CAN RETURN TO THE MONITOR BY TYPING
11500	CONTROL ^C, THEN YOU CAN TYPE ^^RES, ASSIGN,\\ OR ^^SEND OPR,\\ ETC.,
11600	AND THEN YOU STILL RETURN TO ^STOPGAP BY TYPING ^^CONTINUE\\).
11700	.PARAGRAPH
11800	^AT THIS POINT, CONSIDER JUST WHAT RECOPYING
11900	MEANS. ^ASSUMING THAT YOU ARE EDITING AN EXISTING FILE, THEN, TO START
12000	WITH, THERE IS THAT FILE ON YOUR DISK AREA. ^AS YOU PASS THROUGH THE FILE
12100	FROM THE BEGINNING TO THE END, MODIFYING THE FILE AND MAKING CHANGES,
12200	A TEMPORARY FILE THAT IS A COPY OF THE ORIGINAL PLUS YOUR CORRECTIONS
12300	IS WRITTEN. ^BY THE TIME YOU REACH THE END OF THE ORIGINAL FILE YOU ARE
12400	OCCUPYING TWICE THE DISK SPACE THAT YOU DID BEFORE YOU STARTED. ^HAVING
12500	REACHED THE END, IF YOU DECIDE TO CHANGE SOMETHING AT THE BEGINNING OF THE
12600	FILE, THE TEMPORARY COPY IS WRITTEN ON THE DISK AND CLOSED IN A WAY THAT
12700	MAKES IT SORT OF LESS TEMPORARY.
12800	^THEN, AS YOU EDIT THE BEGINNING OF THE FILE, YOU NO LONGER ARE EDITING
12900	THE ORIGINAL FILE, RATHER YOU ARE EDITING THE TEMPORARY FILE. ^THE FILE
13000	AND THE NEW CORRECTIONS ARE COPIED TO A SECOND TEMPORARY FILE. ^BY THE TIME
13100	YOU HAVE REACHED THE END OF THE FIRST TEMPORARY FILE YOU HAVE CREATED A
13200	SECOND TEMPORARY FILE THAT IS AS BIG AS THE SOURCE FILE. ^THIS MEANS
13300	THAT YOU HAVE THREE COPIES OF THE FILE ON THE DISK. ^NOW, WHEN YOU RETURN
13400	TO THE BEGINNING, THE NEWEST TEMPORARY FILE WILL REPLACE THE OLDER TEMPORARY
13500	FILE, AND YOU WILL PROCEED TO EDIT THE LATEST OF THE TEMPORARY FILES.
13600	.PARAGRAPH
13700	^THE POINT OF ALL OF THIS IS THAT WHEN DISK RESOURCES ARE SCARCE YOU
13800	CAN HELP OUT EVERYONE ELSE BY EDITING LINEARLY; I.E., MAKING AN ORDERLY
13900	PROGRESSION DOWN THE FILE AND EXITING WHEN YOU GET TO THE END. ^THEN
14000	TO EDIT THE BEGINNING OF THE FILE START THE EDITOR AGAIN. ^TO MAKE THIS VERY
14100	SIMPLE TO DO, THERE IS THE ^Q COMMAND THAT WILL CAUSE THE SOURCE FILE 
14200	TO BE REPLACED BY THE LATEST TEMPORARY FILE. (^SEE THE ^Q COMMAND). ^THIS
14300	HAS THE SAME EFFECT AS THE LINEAR EDIT, EXIT AND RESTART, EXCEPT THE EXIT
14400	AND RESTART STEPS ARE ELIMINATED. ^ESSENTIALLY, THIS WILL REDUCE THE NUMBER
14500	OF COPIES OF YOUR FILE FROM THREE TO TWO.
14600	.PARAGRAPH
14700	^THERE IS ANOTHER POINT TOO: WHEN DISK RESOURCES ARE SCARCE, YOU CAN HELP
14800	EVERYONE BY THIS PROCESS SINCE YOU WILL BE USING LESS DISK. ^IT IS
14900	OBVIOUS THAT YOU WILL HELP YOURSELF TOO, SINCE YOU WILL NOT BE UNNECESSARILY
15000	CONTRIBUTING TO THE DISK SCARCITY.
15100	.PARAGRAPH
15200	^TO CONTINUE WITH THE DISCUSSION OF ^STOPGAP, IF A PROJECT-PROGRAMMER
15300	NUMBER (OTHER THAN THE ONE THAT YOU'RE LOGGED IN UNDER) IS GIVEN WITH
15400	THE FILE NAME, THEN ^STOPGAP WILL CREATE A FILE BY THE SAME NAME UNDER YOUR PRESENT
15500	PROJECT-PROGRAMMER NUMBER. ^THEN CHANGES THAT YOU MAKE WILL BE MADE TO YOUR
15600	COPY AND NOT TO THE COPY BELONGING TO THE OTHER PROJECT-PROGRAMMER NUMBERS.
15700	.PARAGRAPH
15800	^STOPGAP KEEPS A PORTION OF THE FILE IN CORE AT ALL TIMES DURING THE
15900	EDITING PROCESS SO THAT A CERTAIN (SMALL) AMOUNT OF BACKUP CAN BE DONE
16000	WITHOUT RECOPYING.
16100	.TEST PAGE 5
16200	.PARAGRAPH
16300	^THERE ARE CERTAIN ERROR MESSAGES THAT MAY OCCUR AT ALMOST ANY TIME DURING
16400	AN EDIT AND WHICH CAUSE ^STOPGAP TO EXIT (AND LOSE YOUR EDIT). ^THE EDIT
16500	WILL PROBABLY BE LOST (SEE SECTION ON POSSIBLE RECOVERY), BUT THE ORIGINAL
16600	FILE WILL NOT BE HARMED. ^THE ERRORS ARE LISTED BELOW.
16700	.BLANK 1
16800	.INDEX ^ERROR ^MESSAGES - ^FATAL
16900	.LEFT MARGIN 12
17000	.INDENT -4
17100	^^NO DISK AVAILABLE, PLEASE CHECK THE DISK YOU HAVE REQUESTED.\\
17200	.BLANK 1
17300	^SOMETHING IS VERY WRONG IF THE DISK IN NOT AVAILABLE. ^CALL A SYSTEM
17400	PROGRAMMER!
17500	.BLANK 1
17600	.INDENT -4
17700	^^TEMPORARY EDIT FILE IN USE; I GIVE UP.\\
17800	.BLANK 1
17900	^THE FILE NAME THAT ^STOPGAP INVENTS TO USE AS A TEMPORARY FILE IS ALREADY
18000	IN USE. ^IT SHOULD NOT BE POSSIBLE FOR THIS TO HAPPEN. ^CALL A SYSTEM
18100	PROGRAMMER!
18200	.BLANK 1
18300	.INDENT -4
18400	^^INTERNAL CONFUSION \O\R ILLEGAL UUO.\\
18500	.BLANK 1
18600	^STOPGAP HAS JUST FOUND A BUG IN ITSELF. ^DO NOT ATTEMPT TO DO ANYTHING
18700	ELSE UNTIL A SYSTEM PROGRAMMER HAS SEEN YOUR JOB!
18800	.BLANK 1
18900	.INDENT -4
19000	^^DEVICE OUTPUT ERROR\\
19100	.BLANK 1
19200	^STOPGAP HAS DISCOVERED THAT AN ERROR OCCURRED WHILE COPYING TO THE DISK.
19300	^TYPICALLY, THIS IS DUE TO A SCARCITY OF DISK SPACE.
19400	.BLANK 1
19500	.INDENT -4
19600	^^DEVICE INPUT ERROR\\
19700	.BLANK 1
19800	^STOPGAP HAS FOUND AN ERROR WHILE TRYING TO READ. ^TYPICALLY, THE SOURCE
19900	FILE IS FOULED UP.
20000	.LEFT MARGIN 0
20100	.PARAGRAPH
20200	^IN ADDITION TO THESE FATAL ERRORS, THERE ARE TWO MESSAGES WHICH ARE
20300	PRIMARILY WARNING MESSAGES. ^THE FIRST OF THIS IS *^^LINE TOO LONG*\\.
20400	^THIS MEANS THAT SOME LINE OF YOUR TEXT IS TOO LONG (MORE THAN 147
20500	CHARACTERS). ^THE LINE WILL BE SHORTENED TO 147 CHARACTERS AND PRINTED.
20600	^THE SECOND MESSAGE IS *^^OUT OF ORDER*\\. ^THIS INDICATES THAT SOME LINE
20700	OF YOUR INPUT HAS A NUMBER LOWER THAN THE LINE BEFORE IT. ^THE LINE
20800	WHICH IS OUT OF ORDER WILL BE PRINTED. ^IN BOTH OF THE ABOVE CASES, THE
20900	PAGE NUMBER ON WHICH THE ERROR OCCURS WILL ALSO BE PRINTED.
21000	.INDEX ^COMMAND ^FORM
21100	.TEST PAGE 5
21200	.INDEX ^LINE-^PAGE ^SPECIFICATIONS
21300	.PARAGRAPH
21400	^STOPGAP IS CAPABLE OF PERFORMING MANY OPERATIONS ON THE TEXT OF A FILE.
21500	^IN ORDER TO DO THIS, THE PORTION OF THE TEXT ON WHICH THE OPERATION
21600	IS TO BE PERFORMED MUST BE SPECIFIED. ^THERE ARE TWO WAYS TO DO THIS.
21700	^THE FIRST IS TO SPECIFY THE PARTICULAR LINE ON WHICH THE OPERATION IS
21800	TO BE PERFORMED. ^THE SECOND WAY IS TO SPECIFY A RANGE OF LINES. ^A SINGLE
21900	LINE IS SPECIFIED BY GIVING BOTH THE LINE NUMBER AND PAGE NUMBER OF THE LINE.
22000	^THIS IS SPECIFIED IN THE FORM: LINE-NUMBER/PAGE-NUMBER, E.G., 100/3,
22100	WHICH SPECIFIES LINE 100 ON PAGE 3. ^IF YOU HAVE ONLY ONE PAGE IN YOUR
22200	FILE (AS IS OFTEN THE CASE), THEN YOU NEED ONLY SAY 100. ^IF THE PAGE
22300	NUMBER IS OMITTED, THEN IT IS ASSUMED TO BE THE CURRENT PAGE.
22400	.PARAGRAPH
22500	^A RANGE CAN BE SPECIFIED BY GIVING THE FIRST AND LAST LINES OF THE RANGE,
22600	SEPARATED BY A COLON, E.G., 100/3:4702/6, WHICH WOULD SPECIFY THE RANGE
22700	FROM LINE 100 ON PAGE 3 THROUGH LINE 4702 ON PAGE 6.
22800	.PARAGRAPH
22900	^WHETHER A SINGLE LINE SPECIFIER IS USED, OR A RANGE SPECIFIER (WITH THE
23000	COLON CONSTRUCTION) IS USED, EITHER CONSTRUCTION IS REFERRED TO AS A RANGE
23100	SPECIFIER.
23200	.INDEX ^CURRENT ^LINE-^PAGE "."
23300	.PARAGRAPH
23400	^INSTEAD OF A NUMBER, THE SYMBOL "." MAY BE USED. "." MEANS EITHER THE CURRENT
23500	PAGE OR THE CURRENT LINE, DEPENDING ON WHETHER YOU USE THE "." FOLLOWING
23600	OR PRECEDING THE SLASH(/). ^THUS, 100/. MEANS LINE 100 ON THE PRESENT
23700	PAGE. ^AND ./3 MEANS THE PRESENT LINE NUMBER ON PAGE 3; I.E., THE LINE
23800	ON PAGE 3 WITH THE SAME NUMBER AS THE CURRENT LINE. ^THE CURRENT LINE
23900	AND PAGE ARE DETERMINED BY THE LAST COMMAND THAT WAS EXECUTED, BUT IN GENERAL
24000	ARE THE LAST LINE ON WHICH AN OPERATION WAS PERFORMED, AND THE PAGE ON
24100	WHICH THAT LINE APPEARS. (^SEE THE INDIVIDUAL COMMANDS FOR FURTHER DETAILS).
24200	.PARAGRAPH
24300	^RELATIVE PAGE AND LINE NUMBERS MAY BE USED INSTEAD OF ABSOLUTE ONES.
24400	^THUS 100+3/. .+27/4 AND .-5/.+6 ARE ALL LEGAL LINE SPECIFIERS. ^FOR
24500	PAGES THIS HAS THE OBVIOUS MEANING: IF YOU ARE ON PAGE 5, THEN .-4
24600	IS PAGE 1. ^FOR LINE NUMBERS, HOWEVER, .+N MEANS THE NTH LINE FOLLOWING
24700	THE CURRENT ONE. ^THUS IF A FILE HAS LINES NUMBERED 100, 103, 106, 109,
24800	11, 142, AND 200, AND IF THE CURRENT LINE IS 100, THEN .+3 IS LINE 109
24900	(NOT 103 FOR EXAMPLE, WHICH IS .+1). ^THE START AND END OF THE PAGE ACT
25000	AS BOUNDARIES FOR RELATIVE LINE NUMBERS AS FOLLOWS: IF A PAGE HAS LINES
25100	NUMBERED 100, 200, 300, 400, 500, AND 600, AND IF 300 IS THE CURRENT
25200	LINE, THEN .+3, .+4, ETC. ARE ALL LINE 600. ^SIMILARLY, .-2, .-3, ETC.
25300	ARE ALL LINE 100.
25400	.PARAGRAPH
25500	^FOR EASE OF USE, SOME OF THE SPECIFICATIONS MAY BE OMITTED. ^IF THE PAGE
25600	NUMBER OF THE SPECIFICATION FOR A SINGLE LINE, OR THE FIRST PAGE
25700	NUMBER OF A SPECIFICATION OF A RANGE IS OMITTED, IT IS ASSUMED TO BE
25800	THE CURRENT PAGE (IN THIS CASE THE SLASH IS ALSO OMITTED). ^THUS 400/.
25900	AND 400 BOTH SPECIFY THE SAME LINE, I.E., LINE 400 OF THE CURRENT PAGE.
26000	^SIMILARLY, 400:500/7 AND 400/.:500/7 SPECIFY THE SAME RANGE. ^IF THE PAGE
26100	NUMBER FOR THE END OF A RANGE IS OMITTED, IT IS ASSUMED TO BE THE SAME
26200	AS THAT FOR THE START OF THE RANGE. ^THUS, 400/7:3120/7 AND 400/7:3120
26300	BOTH SPECIFY THE SAME RANGE. ^THE RANGE SPECIFIERS 400/.:700/. 400/.:700
26400	AND 400:700 ARE ALL EQUIVALENT.
26500	.PARAGRAPH
26600	^OMITTING THE LINE NUMBER WHEN SPECIFYING A SINGLE LINE MEANS
26700	ALL THE LINES ON THAT PAGE. ^THUS /3 MEANS ALL THE LINES ON PAGE 3.
26800	^OMITTING THE FIRST LINE NUMBER OF A RANGE
26900	MEANS THE FIRST LINE OF THAT PAGE, WHILE OMITTING THE SECOND LINE NUMBER
27000	IN A RANGE SPECIFIER MEANS THE LAST LINE ON PAGE 5. ^IT IS NOT LEGAL TO
27100	OMIT BOTH THE LINE NUMBER AND THE PAGE NUMBER. ^THUS :100/6 IS ILLEGAL.
27200	.INDEX ^LAST ^LINE-^PAGE "*"
27300	.PARAGRAPH
27400	^THE SYMBOL "*" MAY BE USED TO SPECIFY THE LAST LINE ON A PAGE. "*" MAY
27500	ALSO BE USED TO SPECIFY THE LAST PAGE. ^EXPRESSIONS SUCH AS "*-4" ARE PERMITTED.
27600	("*+4" FOR A LINE NUMBER IS THE SAME AS "*" SINCE RELATIVE LINE NUMBERS CANNOT CROSS
27700	PAGE BOUNDARIES, THOUGH IT IS ILLEGAL FOR A PAGE NUMBER).
27800	
27900	.INDEX ^TOP OF ^PAGE "_^"
28000	.PARAGRAPH
28100	^THE SYMBOL "_^" MAY BE USED TO SPECIFY THE TOP OF THE PAGE.
28200	^IT CAN ALSO BE INDEXED FOWARD (^P_^+5) THOUGH BACK
28300	INDEXING IS MEANINGLESS (_^-10 IS THE SAME AS _^).
28400	^THIS CHARACTER MAY NOT BE USED AS A PAGE NUMBER (THE FIRST PAGE
28500	IS ALWAYS PAGE#1 ANYWAY).
28600	
28700	.PARAGRAPH
28800	^THERE IS ONE FURTHER FORM OF RANGE SPECIFICATION. ^THIS FORM SPECIFIES
28900	A STARTING LINE AND A NUMBER OF LINES. ^THE STARTING LINE IS SPECIFIED
29000	AS ABOVE, AND IS FOLLOWED BY A"_!" WHICH IS FOLLOWED BY THE NUMBER
29100	OF LINES DESIRED. ^THUS TO PRINT 4 LINES STARTING WITH LINE 100 ON
29200	PAGE THREE USE: ^P 100/3_!4 (SEE THE ^PRINT COMMAND). ^UNLIKE RELATIVE
29300	LINE NUMBERS, THE _! CONSTRUCTION WILL CROSS PAGE BOUNDARIES.
     
00100	
00200	.PAGE
00300	.INDEX ^SPECIAL ^CHARACTERS
00400	.PARAGRAPH
00500	^STOPGAP IS CAPABLE OF USING THE FULL 128 CHARACTERS SET. ^TO DO THIS,
00600	IT USES ' TO GIVE EACH CHARACTER ON THE TELETYPE A SECOND MEANING.
00700	^NORMALLY, WHEN ^STOPGAP IS STARTED, IT IS INITIALIZED IN THE 64 CHARACTER
00800	MODE. ^TO USE THE 128 CHARACTER MODE, YOU MUST USE THE SET COMMAND (SEE
00900	THE ^SET COMMAND) __^C128. ^ONCE IN 128 CHARACTER MODE, TYPING A ' PRECEDING
01000	A CHARACTER GIVES THE SECOND CHARACTER A SPECIAL MEANING. ^FOR EXAMPLE,
01100	TYPING '^A WILL CAUSE THE CHARACTER "A" (NOTE LOWER CASE) TO BE ENTERED
01200	INTO THE FILE. ^SIMILARLY THE CHARACTER "A" IN THE FILE WILL TYPE OUT AS
01300	'^A. ^TO ENTER THE CHARACTER "'" IN THIS MODE, TYPE ''.
01400	.BLANK 1
01500	^BELOW IS A TABLE OF THE ALTERNATE MEANINGS OF THE VARIOUS CHARACTERS.
01600	.BLANK 1
01700	.TAB STOPS 8,16,24,32,40,47,54
01800	'^A=A	'^B=B	'^C=C	'^D=D	'^E=E	'^F=F	'^G=G	'^H=H
01900	.BREAK
02000	'^I=I	'^J=J	'^K=K	'^L=L	'^M=M	'^N=N	'^O=O	'^P=P
02100	.BREAK
02200	'^Q=Q	'^R=R	'^S=S	'^T=T	'^U=U	'^V=V	'^W=W	'^X=X
02300	.BREAK
02400	'^Y=Y	'^Z=Z
02500	.BLANK 1
02600	''='
02700	.BLANK 1
02800	\\
02900	^THE REST OF THE ALTERNATE MEANINGS HAVE NO PRINTING EQUIVALENTS IN USUAL
03000	CHARACTERS, SO THEY ARE LISTED BY THE OCTAL CODES THAT THEY REPRESENT.
03100	.BLANK 1
03200	'1=021	'2=022	'3=023	'4=024	'5=025	'6=026	'7=027	'8=030
03300	.BREAK
03400	'9=031	'0=020	':=174	'-=022	',=021	'.=023	'/=024	'_!=001
03500	.BREAK
03600	'"=002	'_#=003	'$=004	'%=005	'_&=006	'?=037	'(=010	')=016
03700	.BREAK
03800	'*=017	'==033	'@=140	'[=173	'+=020	']=175	'<=034	'>=035
03900	.BREAK
04000	'/=177
04100	.BLANK 1
04200	^CERTAIN OF THESE CHARACTERS HAVE SPECIAL SIGNIFICANCE IN SEARCH AND
04300	SUBSTITUTE STRINGS.
     
00100	
00200	.SUBTITLE ^BASIC ^COMMANDS
00300	.PAGE
00400	.CENTER
00500	^^BASIC COMMANDS\\
00600	.BLANK 1
00700	.PARAGRAPH
00800	^ALL ^STOPGAP COMMANDS CONSIST OF A SINGLE LETTER OR SYMBOL, (POSSIBLY)
00900	FOLLOWED BY ARGUMENTS. ^IN EACH OF THE FOLLOWING COMMANDS THE KEY LETTER
01000	AND THE ARGUMENTS WILL BE SPECIFIED, IN ADDITION TO DESCRIBING THE EFFECT
01100	OF THE COMMAND. ^COMMANDS ARE TYPED WHEN ^STOPGAP IS IN COMMAND MODE,
01200	SIGNIFIED BY "*".
01300	
01400	.BLANK 2
01500	.TEST PAGE 5
01600	.INDEX ^I (^INSERT) ^COMMAND
01700	^I -- ^INSERT
01800	.PARAGRAPH
01900	^THE INSERT COMMAND IS USED TO INSERT NEW LINES INTO THE FILE. ^INSERT
02000	ACCEPTS A SINGLE LINE SPECIFIER AS ITS ARGUMENT AND BEGINS INSERTING
02100	AT THAT LINE.
02200	.PARAGRAPH
02300	^IF THE LINE NUMBER THAT YOU SPECIFY IS THE LINE NUMBER OF A LINE THAT
02400	ALREADY EXISTS IN THE FILE, THEN ^STOPGAP WILL ALLOW YOU TO INSERT A
02500	LINE FOLLOWING THAT LINE. ^BUT MORE OF THIS LATER.
02600	.PARAGRAPH
02700	^IF THE LINE THAT YOU REQUEST DOES NOT ALREADY EXIST, THEN ^STOPGAP
02800	WILL TYPE THE LINE NUMBER THAT YOU REQUESTED AND ALLOW YOU TO INSERT A
02900	LINE. ^WHEN YOU TERMINATE THE LINE BY A <RETURN> THEN ^STOPGAP WILL
03000	DECIDE WHETHER OR NOT TO KEEP INSERTING. ^THIS DECISION IS MADE IN THE
03100	FOLLOWING MANNER: ^STOPGAP WILL ADD THE CURRENT VALUE OF THE LINE INCREMENT
03200	TO THE LINE NUMBER OF THE LINE THAT YOU JUST INSERTED. ^IF THIS SUM
03300	IS GREATER THAN 99999 OR IF IT IS GREATER THAN THE LINE NUMBER OF THE NEXT
03400	LINE ON THE PRESENT PAGE, THEN ^STOPGAP WILL RETURN TO COMMAND MODE.
03500	^IF THE SUM IS LESS THAN 99999 AND LESS THAN THE LINE NUMBER OF THE NEXT
03600	LINE (OR IF THERE IS NO NEXT LINE), THEN THE EDITOR WILL TYPE A LINE
03700	NUMBER EQUAL TO THE SUM AND ALLOW YOU TO INSERT A LINE WITH THAT NUMBER.
03800	.INDEX ^^ESCAPE (ALTMODE)\\
03900	.PARAGRAPH
04000	^IF YOU WANT TO TERMINATE THE INSERTION, FINISH TYPING THE LAST LINE
04100	THAT YOU WANT IN THE NORMAL FASHION. ^WAIT FOR ^STOPGAP TO TYPE THE NEXT
04200	LINE NUMBER AND THEN TYPE <ESCAPE>. ^IF AN <ESCAPE> IS SEEN WHILE ^STOPGAP
04300	IS IN INSERT MODE, ALL THE TEXT ON THE PRESENT LINE WILL BE IGNORED,
04400	AND ^STOPGAP WILL RETURN TO COMMAND MODE.
04500	.PARAGRAPH
04600	^TO RETURN TO THE CASE WHERE THE USER REQUESTS AN INSERTION AT A LINE
04700	NUMBER THAT ALREADY EXISTS, ^STOPGAP WILL ALLOW TEXT TO BE INSERTED
04800	AFTER THE LINE THAT ALREADY EXISTS WITH THAT NUMBER. ^STOPGAP WILL CHOOSE
04900	A LINE NUMBER FOR THE INSERTED LINE. ^THAT LINE NUMBER WILL BE EITHER
05000	THE LINE NUMBER REQUESTED PLUS THE PRESENT INCREMENT, OR IF THAT SUM
05100	IS LARGER THAN THE LINE NUMBER OF THE NEXT LINE IN THE FILE, THEN ^STOPGAP
05200	WILL INSERT A LINE BETWEEN THE LINE NUMBER REQUESTED AND THE NEXT LINE
05300	IN THE FILE, WITH A NUMBER DETERMINED BY AN AVERAGE OF THOSE TWO NUMBERS.
05400	.PARAGRAPH
05500	^THE INSERTION INCREMENT CAN BE CHANGED BY AN OPTIONAL SECOND ARGUMENT
05600	TO THE INSERT COMMAND. ^FOLLOW THE LINE NUMBER FOR THE INSERTION BY A COMMA
05700	AND THE DESIRED INCREMENT. ^AN INCREMENT OF ZERO IS ILLEGAL.
05800	^SOME EXAMPLES MAY BE HELPFUL. ^WHEN THE ^^CREATE\\ COMMAND IS USED AN
05900	AUTOMATIC ^I100,100 COMMAND IS GIVEN. ^THUS WE BEGIN INSERTING TEXT
06000	INTO THE FILE AT LINE NUMBER 100 WITH AN INCREMENT OF 100. (^WHENEVER
06100	THE EDITOR IS STARTED, IT WILL ASSUME AN INCREMENT OF 100).
06200	.BLANK 1
06300	_.^^CREATE TEST .F4\\
06400	.BLANK 1
06500	.TAB STOPS 8,16
06600	.NOFILL
06700	.NOJUSTIFY
06800	00100		^^ACCEPT 10,A,B,C
06900	00200		D=SQRT(B**2-4*A*C)
07000	00300		X1=(-B+D)/(2*A)
07100	00400		X2=(-B-D)/2*A)
07200	00500		TYPE 20,A,B,C,X1,X2
07300	00600		CALL EXIT
07400	00700		END
07500	00800	$
07600	*
07700	.BLANK 1
07800	.FILL
07900	.JUSTIFY
08000	\\
08100	.PARAGRAPH
08200	^THE NUMBERS ARE ALL SUPPLIED BY ^STOPGAP. ^THE SYMBOL "$" IN LINE 800
08300	REPRESENTS THE <ESCAPE> KEY. ^TYPING <ESCAPE> WILL CAUSE AN IMMEDIATE
08400	RETURN TO COMMAND MODE. ^AFTER CONSIDERING THIS PROGRAM, THE USER DECIDES
08500	THAT HE NEEDS TO PUT IN TWO FORMAT STATEMENTS. ^SO HE CONTINUES BY TYPING:
08600	.BLANK 1
08700	*^I600,10
08800	.BREAK
08900	00610	10	^^FORMAT(3F)
09000	.BREAK
09100	00620	20	FORMAT(1H,5F)
09200	.BREAK
09300	00630	$
09400	.BREAK
09500	*E\\
09600	.BLANK 1
09700	^^EXIT\\
09800	.PARAGRAPH
09900	^THE USER HERE FINISHES CREATING HIS PROGRAM AND USES THE COMMAND ^E
10000	(SEE THE ^E COMMAND) TO EXIT FROM THE EDITOR. ^THIS PROGRAM WILL RUN,
10100	BUT IT IS NOT WITHOUT ITS FAULTS. ^AS A RULE, A PROGRAMMER IS NEVER
10200	SATISFIED, SO WE CAN EXPECT THAT THE FIRST TIME THAT ^A IS READ IN AS
10300	ZERO THE PROGRAMMER WILL BECOME SO ANNOYED THAT HE WILL MODIFY HIS PROGRAM.
10400	.BLANK 1
10500	^^EDIT TEST.F4
10600	.BLANK 1
10700	*I100
10800	.BREAK
10900	00150		IF(A.EQ.0)GO TO 40\\
11000	.BREAK
11100	*
11200	.PARAGRAPH
11300	^HERE A LINE IS INSERTED WITH LINE NUMBER 150. ^SINCE LINE 100 ALREADY
11400	EXISTED, THE NEW LINE COULD NOT  E NUMBERED 100. ^THE CURRENT INCREMENT
11500	IS 100, SINCE THAT IS THE VALUE IT TAKES WHEN THE EDITOR IS STARTED.
11600	^SINCE THE SUM OF THE LINE SPECIFIED PLUS THE CURRENT INCREMENT WAS 200
11700	AND 200 ALREADY EXISTS, THE RULE THAT CHOOSES THE LINE NUMBER AS THE AVERAGE
11800	BETWEEN THE LINE SPECIFIED AND THE LINE THAT FOLLOWS IS USED TO SELECT
11900	150 AS THE LINE TO INSERT ON.
12000	.PARAGRAPH
12100	^NOW WE CONTINUE BY INSERTING MORE INSTRUCTIONS IN THE PROGRAM.
12200	.BLANK 1
12300	*^I630,10
12400	.BREAK
12500	00630 40		^^X1=-B/C
12600	.BREAK
12700	00640		TYPE 20,A,B,C,X1
12800	.BREAK
12900	00650		CALL EXIT
13000	.BREAK
13100	00660	$
13200	.BREAK
13300	*E
13400	.BLANK 1
13500	EXIT\\
13600	.PARAGRAPH
13700	^NOW THE PROGRAM IS IMPROVED, BUT STILL IT HAS SOME FAULTS.
13800	^WE WILL CONTINUE WITH THIS EXAMPLE LATER. ^NOW IT IS TIME TO MORE FULLY
13900	DESCRIBE THE INSERT COMMAND.
14000	.PARAGRAPH
14100	^USUALLY, THE INSERTION WILL BEGIN AT THE LINE SPECIFIED. ^IF THIS LINE
14200	ALREADY EXISTS, THEN THERE ARE TWO WAYS IN WHICH A LINE NUMBER MAY BE
14300	COMPUTED TO SPEICIFY EXACTLY WHERE THE INSERTION WILL BE. ^IN ANY CASE,
14400	THE INSERTION WILL COME AFTER A LINE WITH EQUAL OR LOWER NUMBER, AND BEFORE
14500	ANY LINE WITH A HIGHER NUMBER. ^IF THE LINES 100 AND 110 EXIST IN A FILE,
14600	THEN THE COMMAND ^I100 WILL INSERT LINE 105. ^AFTER 105 IS IN PLACE,
14700	THE COMMAND ^I WILL CAUSE LINE 107 TO BE INSERTED. (^REMEMBER THAT "."
14800	HAS THE VALUE OF THE CURRENT LINE, AND THE CURRENT LINE IS SET BY THE INSERT
14900	COMMAND TO BE THE NUMBER OF THE LAST LINE INSERTED). ^REPEATING THE ^I.
15000	COMMAND WILL ALLOW THE INSERTION OF LINES 108 AND 109. ^ONCE LINE 109 IS
15100	IN PLACE, ^I. WILL CAUSE THE MESSAGE *^^ILLEGAL REPLACEMENT*\\ TO BE
15200	TYPED. ^IF IT IS NECESSARY TO INSERT TEXT BETWEEN LINE 109 110, THEN THE
15300	FILE MUST BE RENUMBERED (^SEE THE ^N COMMAND).
15400	.PARAGRAPH
15500	^IF AN ATTEMPT IS MADE TO INSERT A LINE THAT CONTAINS MORE THAN 147
15600	CHARACTERS, THEN THE MESSAGE *^^LINE TOO LONG*\\ WILL BE TYPED. ^THE LINE
15700	WILL NOT BE INSERTED AND ^STOPGAP WILL RETURN TO COMMMAND MODE.
15800	.PARAGRAPH
15900	^THE CURRENT LINE AND PAGE ARE SET TO THE LAST LINE ACTUALLY INSERTED.
16000	^IF A LINE IS TERMINATED BY AN <ESCAPE> INSTEAD OF A <RETURN>, THEN THE
16100	LINE WILL NOT BE INSERTED AND THE EDITOR WILL BE RETURNED TO COMMAND MODE.
16200	(^IF A LINE IS TERMINATED BY <ESCAPE>, THEN IT WILL NOT AFFECT THE VALUE
16300	OF THE CURRENT LINE AND PAGE).
16400	.PARAGRAPH
16500	^IF THE NEXT LINE TO BE INSERTED WOULD HAVE A NUMBER GREATER THAN 99999
16600	(E.G., IF THE CURRENT LINE WERE 99900 AND THE CURRENT INCREMENT WERE 100),
16700	THEN THE EIDTOR WILL RETURN TO COMMAND MODE.
16800	
16900	.BLANK 2
17000	.TEST PAGE 5
17100	.INDEX ^P (^PRINT) ^COMMAND
17200	^P -- ^PRINT
17300	.PARAGRAPH
17400	^THE PRINT COMMAND ACCEPTS A RANGE SPECIFIER AS ITS ONLY ARGUMENT.
17500	^THE LINES IN THE RANGE WILL BE PRINTED ON THE TELETYPE. ^THE CURRENT
17600	LINE AND PAGE WILL BE SET TO THE LINE AND PAGE OF THE LAST LINE PRINTED.
17700	^IF THE RANGE SPECIFIED HAS NO LINES IN IT, THEN THE MESSAGE *^^NO SUCH LINE(S)*\\
17800	WILL BE TYPED. ^IF THE RANGE OF PRINTING INCLUDES THE BOUNDARY OF A PAGE,
17900	THEN "^^PAGE\\ N" WILL BE TYPED TO INDICATE THE PRESENCE OF A PAGE MARK
18000	(SEE THE ^MARK COMMAND).
18100	.PARAGRAPH
18200	^TWO USEFUL COMMANDS ARE ^P. WHICH WILL PRINT THE PRESENT LINE ONLY
18300	AND THE COMMAND ^P/. WHICH WILL TYPE THE ENTIRE PRESENT PAGE.
18400	.BLANK 1
18500	.INDEX ^^ESCAPE (ALTMODE)\\
18600	<ESCAPE>
18700	.PARAGRAPH
18800	^THIS COMMAND IS LIKE ^P.-1, EXCEPT THAT IT WILL CROSS PAGE BOUNDARIES
18900	WHEN APPROPRIATE. ^IN ANY CASE, IT WILL CAUSE THE PRECEDING LINE TO BE TYPED.
19000	^IF THE PRESENT LINE IS THE FIRST LINE OF THE FILE, THEN THE MESSAGE
19100	*^^NO SUCH LINE(S)*\\ WILL BE TYPED.
19200	.BLANK 1
19300	.INDEX ^^LINE FEED\\
19400	<LINE FEED>
19500	.PARAGRAPH
19600	^THIS COMMAND IS LIKE ^P.+1, EXCEPT THAT LIKE THE <ESCAPE> COMMAND IT
19700	TOO WILL CROSS PAGE BOUNDARIES. ^THIS WILL CAUSE THE NEXT LINE AFTER THE
19800	PRESENT LINE AND PAGE TO BE TYPED. ^IF THE PRESENT LINE IS THE LAST LINE
19900	IN THE FILE, THEN THE ERROR MESSAGE *^^NO SUCH LINE(S)*\\ WILL BE TYPED.
20000	.PARAGRAPH
20100	^IF THE PRESENT LINE IS THE LAST LINE OF A PAGE, THEN CROSSING THE PAGE
20200	MARK THE MESSAGE "^^PAGE\\ N" WILL BE TYPED WHERE N IS THE NUMBER OF THE NEXT
20300	PAGE.
20400	.BLANK 1
20500	^IF SEVERAL PAGES ARE BLANK, THEN YOU MIGHT SEE:
20600	.BLANK 1
20700	^^PAGE 10
20800	.BREAK
20900	PAGE 11
21000	.BREAK
21100	PAGE 12
21200	.BREAK
21300	PAGE 13
21400	.BREAK
21500	00100	C		THIS IS THE FIRST LINE ON PAGE 13.\\
21600	.BREAK
21700	*
21800	.PARAGRAPH
21900	^THESE SAME CONSIDERATIONS APPLY TO THE <ESCAPE> COMMAND.
22000	
22100	.BLANK 2
22200	.TEST PAGE 5
22300	.INDEX . ^COMMAND
22400	_. -- ^POINTER ^MOVER
22500	.PARAGRAPH
22600	^THIS COMMAND IS USED TO MOVE THE ^PAGE-^LINE POINTER TO
22700	ANYWHERE IN THE FILE. ^IT DOES THE SAME THING AS THE ^P COMMAND
22800	BUT DOES NOT TYPE ANYTHING, SO ALL THE RULES FOR ^P HOLD TRUE
22900	FOR ".".
23000	
23100	.BLANK 2
23200	.TEST PAGE 5
23300	.INDEX ^D (^DELETE) ^COMMAND
23400	^D -- ^DELETE
23500	.PARAGRAPH
23600	^THE DELETE COMMAND WILL ACCEPT A RANGE SPECIFIER AS ITS ONLY ARGUMENT.
23700	^IT WILL DELETE ALL OF THE LINES SPECIFIED. ^IF THERE WERE NO LINES
23800	IN THE RANGE SPECIFIED, THEN ^STOPGAP WILL TYPE *^^NO SUCH LINE(S)*.
23900	\\
24000	.PARAGRAPH
24100	^THERE IS AN EXCEPTION TO THE NORMAL MANNER OF SPECIFYING LINES.
24200	^FIRST, THE DELETE COMMAND WILL NOT ALLOW A PAGE NUMBER FOR THE SECOND
24300	LINE NUMBER IN THE RANGE SPECIFIER. ^THUS THE COMMAND ^D 100/5:200/6
24400	IS ILLEGAL, AND WILL RESULT IN THE MESSAGE *^^ILLEGAL COMMAND*.\\
24500	.PARAGRAPH
24600	^ALL THE LINES ON A PAGE CAN BE DELETED BY THE COMMAND OF THE FORM ^D/5
24700	WHICH WOULD DELETE ALL THE LINES ON PAGE 5. ^A CONFIRMATION MESSAGE
24800	"^^MASSIVE DELETION. CONFIRM: \\" WILL BE TYPED,
24900	TYPE ^Y OR ^N TO CONTINUE.
25000	.PARAGRAPH
25100	^THE CURRENT LINE AND PAGE WILL BE SET TO THAT OF THE LAST LINE DELETED.
25200	^AFTER A DELETION, THE COMMAND ^P.#WILL RESULT IN THE MESSAGE
25300	*^^NO SUCH LINE(S)*.\\
25400	
25500	.BLANK 2
25600	.TEST PAGE 5
25700	.INDEX ^R (^REPLACE) ^COMMAND
25800	^R -- ^REPLACE
25900	.PARAGRAPH
26000	^THIS COMMAND IS THE SAME AS A DELETE COMMAND FOLLOWED BY AN INSERT COMMAND.
26100	^IT ACCEPTS A RANGE SPECIFIER AND AN OPTIONAL SECOND ARGUMENT, SEPARATED
26200	FROM THE FIRST BY A COMMA, WHICH SPECIFIES THE INCREMENT TO BE USED IN
26300	THE INSERTION.
26400	.PARAGRAPH
26500	^THIS COMMAND PERFORMS A ^D COMMAND ON THE RANGE AND THEN AN ^I COMMAND
26600	WITH THE FIRST LINE SPECIFIED BY THE RANGE SPECIFIER. ^IF THE FIRST
26700	LINE IS NOT SPECIFIED EXPLICITLY (AS ^R/3,100), THEN THE LINE NUMBER
26800	OF THE FIRST LINE DELETED WILL BE USED AS THE LINE NUMBER ON WHICH TO START
26900	INSERTING.
27000	
27100	.BLANK 2
27200	.TEST PAGE 5
27300	.INDEX ^E (^END) ^COMMAND
27400	^E -- ^END
27500	.PARAGRAPH
27600	^THIS IS THE COMMAND USED TO TERMINATE THE EDIT. ^IF NO ARGUMENTS ARE
27700	GIVEN, THEN THE OLD COPY OF THE FILE BEING EDITED WILL BE DELETED AND
27800	REPLACED BY THE NEW (EDITED) COPY. ^NOTE THAT THE DELETION OF THE 
27900	OLD COPY WILL NOT TAKE PLACE UNTIL THE NEW COPY (WITH A VERY STRANGE
28000	NAME) HAS BEEN SUCCESSFULLY WRITTEN TO THE DISK. ^AT THIS POINT, THE
28100	OLD FILE CAN SAFELY BE DELETED AND THE STRANGE NAME FILE WILL BE RENAMED
28200	TO THE SAVE NAME THAT THE OLD FILE HAD. (^IF THE EDIT FAILS FOR SOME
28300	REASON, YOU CAN EXPECT THAT YOUR OLD COPY WILL BE SAFE.)
28400	.INDEX ^RUN ^FEATURE
28500	.TEST PAGE 5
28600	.PARAGRAPH
28700	^IT IS POSSIBLE TO SPECIFY AN ARGUMENT TO THIS COMMAND. ^IF AN ARGUMENT
28800	IS GIVEN, IT SHOULD BE IN THE FORM:
28900	.BLANK 1
29000	.CENTER
29100	^R:<NAME>.<EXT>
29200	.BLANK 1
29300	^FOR EXAMPLE: ^^ER:NEW.F4\\ OR PERHAPS ^^ER:NEW\\
29400	.BLANK 1
29500	^WHEN AN ARGUMENT IN THIS FORM IS GIVEN, THEN UPDATED FILE WILL BE NAMED
29600	WITH THE NEW NAME.
29700	.PARAGRAPH
29800	^IF A NEW NAME IS SPECIFIED AND A FILE BY THIS NAME ALREADY EXITS,
29900	THEN THE MESSAGE ^^FILE ALREADY EXISTS! DELETE? (Y OR N)\\ IS TYPED,
30000	FOLLOWED BY A "*". ^STOPGAP WILL WAIT FOR YOU TO DECIDE. ^IF YOU TYPE
30100	^N, ^STOPGAP WILL RESPOND WITH "*" AND WAIT FOR YOU TO TYPE A NEW NAME.
30200	(WITHOUT THE ^R: PRECEDING THE NAME.)
30300	.PARAGRAPH
30400	^IF YOU TYPE ^Y, THEN THE FILE WILL BE DELETED AND THE NEW COPY WILL
30500	TAKE ITS PLACE. ^TYPING ANYTHING ELSE WILL RESULT IN THE MESSAGE:
30600	^^TYPE Y OR N.\\ ^IF THE OLD FILE CANNOT BE DELETED, THEN ^STOPGAP WILL
30700	TYPE: ^^FILE IN USE OR WRITE PROTECTED, TRY AGAIN.\\ ^A "*" WILL BE
30800	TYPED AND ^STOPGAP WILL WAIT FOR YOU TO TYPE ANOTHER NAME.
30900	.PARAGRAPH
31000	^STOPGAP WILL RETURN TO THE MONITOR AS SOON AS IT HAS FINISHED.
31100	.PARAGRAPH
31200	(^FOR PEOPLE WHO USE ALTERNATE DEVICES, IF YOU SPECIFY AS AN ARGUMENT A
31300	NEW NAME THAT EXISTS NEITHER ON THE OUTPUT NOR THE INPUT DEVICE, THEN THE
31400	FILE ON THE INPUT DEVICE WILL NOT BE DELETED. ^SEE THE SECTION ON ALTERNATE
31500	DEVICES).
31600	
31700	.BLANK 2
31800	.TEST PAGE 5
31900	.INDEX ^G (^GO) ^COMMAND
32000	^G -- ^GO
32100	.PARAGRAPH
32200	^THE ^G COMMAND IS VERY MUCH LIKE ^E, INCLUDING THE OPTION OF SPECIFYING
32300	A NEW FILE NAME. ^THE DIFFERENCE IS THAT IS CAUSES THE ^^CCL\\ PROGRAM TO
32400	BE RUN INSTEAD OF EXITING. (^EXCEPT, SEE THE __^^RUN\\ COMMAND.) ^THE ^^CCL\\
32500	PROGRAM WILL RE-EXECUTE THE LAST ^^COMPILE, LOAD, EXECUTE\\ OR ^^DEBUG\\
32600	COMMAND THAT IT HAD BEEN GIVEN.
32700	.PARAGRAPH
32800	^IF THE __^^RUN\\ COMMAND WAS USED, THEN INSTEAD OF RUNNING ^^CCL\\, THE ^GO 
32900	COMMAND WILL RUN THE PROGRAM SPECIFIED IN THE __^^RUN\\ COMMAND.
33000	
33100	.BLANK 2
33200	.TEST PAGE 5
33300	.INDEX ^B (^BASIC) ^COMMAND
33400	^B -- ^BASIC
33500	.PARAGRAPH
33600	^THIS COMMAND IS JUST LIKE THE ^E COMMAND, EXCEPT THAT
33700	THE RESULTING FILE WILL BE WRITTEN WITHOUT SEQUENCE NUMBERS.
33800	
33900	.BLANK 2
34000	.TEST PAGE 5
34100	.INDEX ^Q (^QUALM) ^COMMAND
34200	^Q -- ^QUALM (OR ^QUAINT)
34300	.PARAGRAPH
34400	^THIS COMMAND HAS THE FOLLOWING STRANGE EFFECT.  ^THE EDITOR IS MADE
34500	TO FINISH COPYING THE CORRECTIONS TO THE TEMPORARY (STRANGE NAME) FILE.
34600	^THIS FILE IS THEN RENAMED TO THE SAME NAME AS THE ORIGINAL FILE.  ^THIS
34700	MEANS THAT THE CORRECTIONS ARE EFFECTIVELY MADE A PART OF THE ORIGINAL
34800	FILE. ^THEN THE EDIT CONTINUES. (^THIS IS THE ^QUAINT PART).
34900	.PARAGRAPH
35000	^THIS COMMAND HAS SEVERAL "GOOD" EFFECTS. ^FIRST, IT HELPS CUT DOWN ON
35100	DISK USAGE UNDER THE RECOPYING SYSTEM EXPLAINED EARLIER. ^SECOND, IF THE ^Q
35200	COMMAND IS USED, THEN THE EDIT THUS FAR IS SAVED. ^NOW IF THE SYSTEM
35300	WERE TO CRASH, OR IF YOU WERE TO RUN OUT OF DISK SPACE AND GET AN ERROR,
35400	THEN YOU WOULD FIND THAT ALL YOUR EDIT UP TO THE TIME YOU TYPED ^Q WILL
35500	HAVE BEEN SAVED. (^THIS IS WHY IT'S CALLED ^QUALM: PEOPLE WHO HAVE QUALMS
35600	AND DOUBT THE SYSTEM STABILITY TEND TO USE THIS QUITE OFTEN).
35700	.PARAGRAPH
35800	^NOW IT IS TIME TO CONTINUE WITH THE EXAMPLE THAT WAS STARTED EARLIER. ^TO
35900	REFRESH OUR MEMORIES ABOUT WHAT WE DID, WE CAN START THE EDITOR AND FIND
36000	OUT JUST WHAT OUR PROGRAM LOOKS LIKE.
36100	.BLANK 1
36200	_.^^EDIT TEST.F4
36300	.BLANK 1
36400	*P/.
36500	.BLANK 1
36600	PAGE 1
36700	.NOFILL
36800	.NOJUSTIFY
36900	.TAB STOPS 8,16
37000	.BLANK 1
37100	00100		ACCEPT 10,A,B,C
37200	00150		IF(A.EQ.0) GO TO 40
37300	00200		D = SQRT(B**2 - 4*A*C)
37400	00300		X1 = (-B+D)/(2*A)
37500	00400		X2 = (-B-D)/(2*A)
37600	00500		TYPE 20,A,B,C,X1,X2
37700	00600		CALL EXIT
37800	00610	10	FORMAT(3F)
37900	00620	20	FORMAT(1H ,5F)
38000	00630	40	X1 = -B/C
38100	00640		TYPE 20,A,B,C,X1
38200	00650		CALL EXIT
38300	00700		END\\
38400	*
38500	.FILL
38600	.JUSTIFY
38700	.PARAGRAPH
38800	^NOW SOME THOUGHT REVEALS THAT THERE ARE STILL SOME SHORTCOMINGS IN
38900	THIS PROGRAM. ^TO FIX THESE, WE TYPE THE FOLLOWING CORRECTIONS AND
39000	ADDITIONS.
39100	.BLANK 1
39200	.NOFILL
39300	.NOJUSTIFY
39400	^^*R200,10
39500	00200		DISC = B**2 - 4*A*C
39600	00210		IF(DISC.LT.0) GO TO 50
39700	00220		D = SQRT(DISC)
39800	00230	$
39900	*P.+1
40000	00300		X1 = (-B+D)/(2*A)
40100	*I650
40200	00660	50	XR = - B/(2*A)
40300	00670		D = SQRT(-DISC)
40400	00680		XI1 = D/(2*A)
40500	00690		XI2 = - XI1
40600	*I.
40700	00695		TYPE 30 A,B,C,XR,XI1,XR,XI2
40800	*I.,1
40900	00696	30	FORMAT(1H ,7F).
41000	00697		CALL EXIT
41100	00698	$
41200	*\\
41300	.BLANK 1
41400	.FILL
41500	.JUSTIFY
41600	.PARAGRAPH
41700	^BY NOW NEARLY EVERYTHING HAS BEEN FIXED, BUT BEFORE WE EXIT, WE WILL
41800	RENUMBER ALL THE LINES SO THAT IF IT IS NEEDED WE WILL BE ABLE TO INSERT
41900	MORE NEW LINES. (^SEE THE ^NUMBER COMMAND).
42000	.BLANK 1
42100	.NOFILL
42200	.NOJUSTIFY
42300	^^*N
42400	*P/.
42500	.TAB STOPS 8,16
42600	.BLANK 1
42700	PAGE 1
42800	.BLANK 1
42900	00100		ACCEPT 10,A,B,C
43000	00200		IF(A.EQ.0) GO TO 40
43100	00300		DISC = B**2 - 4*A*C
43200	00400		IF(DISC.LT.0) GO TO 50
43300	00500		D=SQRT(DISC)
43400	00600		X1 = (B+D)/(2*A)
43500	00700		X2 = (-B-D)/(2*A)
43600	00800		TYPE 20,A,B,C,X1,X2
43700	00900		CALL EXIT
43800	01000	10	FORMAT (3F)
43900	01100	20	FORMAT(1H ,5F)
44000	01200	40	X1 = -B/C
44100	01300		TYPE 20,A,B,C,X1
44200	01400		CALL EXIT
44300	01500	50	XR=-B/(2*A)
44400	01600		D = SQRT(-DISC)
44500	01700		XI1 = D/(2*A)
44600	01800		XI2 = -XI1
44700	01900		TYPE 30,A,B,C,XR,XI1,XR,XI2
44800	02000	30	FORMAT(1H ,7F)
44900	02100		CALL EXIT
45000	02200		END
45100	*ER:NEW.F4
45200	.BLANK 1
45300	EXIT\\
     
00100	
00200	.SUBTITLE ^INTERMEDIATE ^COMMANDS
00300	.PAGE
00400	.INDEX ^INTERMEDIATE ^COMMANDS
00500	.CENTER
00600	^INTERMEDIATE ^COMMANDS
00700	.BLANK 2
00800	.INDEX ^M (^MARK) ^COMMAND
00900	^M -- ^MARK
01000	.BLANK 1
01100	.FILL
01200	.JUSTIFY
01300	.PARAGRAPH
01400	^THIS COMMAND IS USED TO INSERT A PAGE MARK INTO THE TEXT. ^IT ACCEPTS A
01500	SINGLE LINE SPECIFIER AS ARGUMENT AND PLACES THE PAGE MARK IMMEDIATELY
01600	BEFORE THE LINE SPECIFIED.
01700	.PARAGRAPH
01800	^IF THE PAGE SPECIFIED DOES NOT EXIST, THEN THE MESSAGE ^^*NO#SUCH#PAGE*\\
01900	WILL BE GIVEN AND THE MARK WILL NOT BE INSERTED.
02000	.PARAGRAPH
02100	^IF THE LINE SPECIFIED DOES NOT EXIST, THEN THE PAGE MARK WILL BE INSERTED
02200	AFTER THE LINE OF NEXT LOWER NUMBER ON THAT PAGE. (IMMEDIATELY AFTER THE
02300	PAGE MARK IF THE LINE SPECIFIED IS THE SMALLEST ON THE PAGE).
02400	.PARAGRAPH
02500	^PAGE NUMBERS ARE FLOATING, SO INSERTING A MARK WILL AFFECT ALL THE 
02600	FOLLOWING PAGES.
02700	.PARAGRAPH
02800	^THE CURRENT LINE IS SET TO THE FIRST LINE OF THE NEW PAGE.
02900	^THUS, IF THE COMMAND ^M4720/5 IS GIVEN, THEN THE NEW PAGE WILL BE
03000	SET TO 6 (IF THERE ARE NO ERROR MESSAGES LIKE *^^NO SUCH PAGE*\\).
03100	.PARAGRAPH
03200	^HINT: ^WHEN YOU WANT TO INSERT A NEW PAGE OF TEXT AFTER THE PRESENT PAGE,
03300	USE THE COMMAND ^M99999.
03400	.PARAGRAPH
03500	^AS AN EXAMPLE OF THE MARK COMMAND, SUPPOSE PAGE 4 HAS LINES NUMBERED 100,
03600	150, 200, 300, 400. ^THE COMMAND ^M200/4 WILL RESULT IN PAGE 4 CONTAINING
03700	LINES 100 AND 150, AND PAGE 5 WITH 200, 300, AND 400.
03800	.BLANK 2
03900	.TEST PAGE 5
04000	.INDEX ^K (^KLEAR) ^COMMAND
04100	^K -- ^KLEAR
04200	.PARAGRAPH
04300	^THIS COMMAND IS USED TO CLEAR A PAGE MARK. ^IT ACCEPTS A SINGLE
04400	PAGE NUMBER OF THE FORM ^K/3, WHICH WILL CLEAR THE PAGE 3 PAGE MARK.
04500	.PARAGRAPH
04600	^THE ^^*OUT OF ORDER\\* MESSAGE INDICATES THAT THERE IS SOME PAGE ON WHICH
04700	THERE ARE SOME SEQUENCE NUMBERS THAT ARE NOT IN ORDER. (^FOR EXAMPLE,
04800	SUPPOSE PAGE 4 HAS LINES NUMBERED 100, 200, 300 AND 400, AND PAGE 5
04900	HAD LINES NUMBERD 50, 150, AND 250. ^THEN THE COMMAND ^K/5 WILL RESULT
05000	IN A SINGLE PAGE (PAGE 4) THAT WILL HAVE INES 100, 200, 300, 400,
05100	50, 150, AND 250. ^THESE WILL HAVE TO BE RENUMBERED.
05200	.PARAGRAPH
05300	^AN ATTEMPT TO REMOVE PAGE MARK 1(^K/1) OR SOME PAGE MARK THAT DOES NOT
05400	EXIST WILL RESULT IN THE MESSAGE *^^NO SUCH PAGE*.\\
05500	.BLANK 2
05600	.TEST PAGE 5
05700	.INDEX ^N (^NUMBER) ^COMMAND
05800	^N -- ^NUMBER
05900	.PARAGRAPH
06000	^THIS COMMAND IS USED TO RENUMBER THE CURRENTLY EXISTING LINES. ^IT TAKES
06100	UP TO THREE ARGUMENTS. ^THE FIRST ARGUMENT IS AN INCREMENT TO USE IN THE
06200	RENUMBERING (AN INCREMENT OF 0 IS ILLEGAL). ^THE FIRST LINE THAT IS
06300	RENUMBERED WILL BE GIVEN THIS NUMBER (UNLESS THERE IS A THIRD ARGUMENT).
06400	^EACH SUCCEEDING LINE WILL BE GIVEN A NUMBER THAT IS THE SUM OF THIS 
06500	INCREMENT PLUS THE PRECEDING LINE NUMBER. ^IF THE RENUMBERING CROSSES A
06600	PAGE BOUNDARY, THEN THE FIRST LINE ON THE NEW PAGE WILL BE GIVEN THIS 
06700	NUMBER AGAIN. ^THUS, IF PAGE 3 HAS LINES NUMBERED 107, 254, AND 500
06800	AND PAGE 4 HAS NUMBERS 27, 39, AND 108, AND BOTH PAGES ARE RENUMBERED
06900	WITH AN ARGUMENT OF 20 BY THE COMMAND: ^N20,/3:/4, THE RESULT WILL
07000	BE PAGE 3 WITH LINES 20, 40, AND 60, AND PAGE WITH LINES 20, 40, AND 60.
07100	.PARAGRAPH
07200	^THE SECOND ARGUMENT INDICATES THE RANGE OF LINES TO BE RENUMBERED. ^IF
07300	ONLY A SINGLE LINE IS GIVEN, THEN THAT LINE ONLY WILL BE RENUMBERED. ^A
07400	RANGE OF LINES WILL BE RENUMBERED AS DESCRIBED ABOVE. ^IF THERE ARE NO
07500	LINES IN THE RANGE SPECIFIED, THEN THE ERROR *^^NO SUCH LINE(S)\\* WILL
07600	BE GIVEN.
07700	.PARAGRAPH
07800	^NOTE THAT IF ONLY PORTIONS OF A PAGE ARE RENUMBERED, THEN A SITUATION CAN
07900	BE CREATED THAT LEADS TO AN *^^OUT OF ORDER\\* ERROR.  ^THE BEST WAY TO
08000	CORRECT THIS IF IT HAPPENS IS TO RENUMBER THE ENTIRE PAGE.
08100	.PARAGRAPH
08200	^IF THE THIRD ARGUMENT IS PRESENT, IT IS USED AS THE NUMBER FOR THE FIRST
08300	LINE THAT IS RENUMBERED. ^THIS FEATURE IS USFUL IN RENUMBERING A PAGE
08400	BEFORE CLEARING A PAGE MARK, IN ORDER TO AVOID AN ORDER ERROR. ^FOR
08500	EXAMPLE, SUPPOSE PAGE 3 HAS LINES NUMBERED 300, 407, 813, AND 1001, THEN
08600	THE COMMAND ^N100,/3,10000 WILL LEAVE PAGE 3 WITH LINES 10000, 10100,
08700	10200, AND 10300.
08800	.PARAGRAPH
08900	^IF THE RENUMBER INCREMENT IS TOO LARGE, I.E., SOME OF THE RENUMBERED LINES
09000	WOULD HAVE NUMBERS GREATER THAN 99999, THE ERROR *^^WRAP AROUND\\* OCCURS.
09100	^THIS LEAVES THE PAGE OUT OF ORDER, AND THE PAGE MUST THEN BE RENUMBERED
09200	WITH A SMALLER INCREMENT. ^IF A PAGE BECOMES TOO LARGE, THEN THE RENUMBERING
09300	INCREMENT MUST BE MADE SMALLER. ^IF IT BECOMES INCONVENIENTLY SMALL, THE
09400	ONLY SOLUTION IS TO SPLIT THE LARGE PAGE INTO SEVERAL MORE REASONABLE
09500	PAGES. ^TO RENUMBER ALL OF THE CURRENT PAGE THE COMMAND WOULD BE ^N#.
09600	.PARAGRAPH
09700	^A ,^M MAY FOLLOW THE RANGE SPECIFIER WHICH MONOTONICLY RENUMBER
09800	WITHIN THE RANGE SPECIFIED. ^THIS WILL NUMBER BY INCREMENT THRU
09900	PAGE MARKS WITHOUT RECYCLING THE NUMBERS AT THE PAGE MARK.
10000	.BLANK 2
10100	.TEST PAGE 5
10200	.INDEX ^L (^LIST) ^COMMAND
10300	^L -- ^LIST
10400	.PARAGRAPH
10500	^THE LIST COMMAND IS SIMILAR TO THE PRINT COMMAND EXCEPT THAT THE OUTPUT
10600	DEVICE IS THE LINE PRINTER. ^THE ARGUMENT TO THE LIST COMMAND IS THE SAVE AS
10700	TO THE PRINT COMMAND.  ^IF DEVICE ^^LPT\\ IS NOT AVAILABLE,
10800	^^DSK\\ WILL BE USED.  ^THE NAME OF THE FILE CREATED IS THE SOURCE FILE
10900	NAME WITH A .^^LPT\\ EXTENSION.
11000	.PARAGRAPH
11100	^SUITABLE PAGE HEADINGS WILL BE PRINTED AT THE TOP OF EACH PAGE OF PAPER.
11200	^THE HEADING INCLUDES THE NAME OF THE FILE, THE DATE AND TIME AND THE PAGE.
11300	^THE PAGES ARE LISTED IN THE FORMAT ^^PAGE\\ M-N, WHERE M IS THE ACTUAL
11400	^STOPGAP PAGE AND N INDICATES THAT THIS IS THE NTH PAGE OF LINE PRINTER
11500	PAPER THAT WAS NEEDED FOR THIS ^STOPGAP PAGE.
11600	.PARAGRAPH
11700	^AS WITH ^P, THE CURRENT LINE AND PAGE IS SET TO THE LINE AND PAGE OF THE
11800	LAST LINE PRINTED.
11900	.PARAGRAPH
12000	^AS AN ADDITIONAL CONVENIENCE, THE COMMAND ^L WITH NO ARGUMENTS WILL CAUSE
12100	THE ENTIRE FILE TO BE LISTED.
12200	.BLANK 2
12300	.INDEX = ^COMMAND
12400	= -- ^GIVE ^INFORMATION
12500	.PARAGRAPH
12600	^THIS COMMAND IS USED TO DETERMINE THE STATE OF SEVERAL PIECES OF INFORMATION
12700	WHICH ARE NOT READILY AVAILABLE THROUGH OTHER MEANS. ^THERE ARE SEVERAL
12800	SUCH PIECES OF INFORMATION; SOME ARE SET BY THE ^SET COMMAND, OTHERS BY
12900	THE EXECUTION OF THE COMMANDS, STILL OTHERS REFLECT CONDITIONS THAT ARE
13000	EXTERNAL TO THE PROGRAM.
13100	.BLANK 1
13200	.TAB STOPS 15
13300	^THE FOLLOWING VARIANTS ON THIS COMMAND ARE AVAILABLE:
13400	.LEFT MARGIN 15
13500	.BLANK 1
13600	.INDENT -15
13700	=^^INC\\	^PRINT THE CURRENT INCREMENT (FOR ^I OR ^R).
13800	.BLANK 1
13900	.INDENT -15
14000	=.	^PRINT THE CURRENT LINE AND CURRENT PAGE AS:
14100	.BREAK
14200	<CURRENT LINE>/<CURRENT PAGE>.
14300	.BLANK 1
14400	.INDENT -15
14500	=^^BIG\\	^PRINT THE PAGE NUMBER OF THE LAST PAGE IN THE FILE
14600	.BLANK 1
14700	.INDENT -15
14800	=^^CASE\\	^PRINT OUT EITHER ^^UPPER\\ OF ^^LOWER\\ TO INDICATE THE
14900	MODE SET BY THE SET COMMAND. ^IF THE USER HAS DONE A __^M37 COMMAND (SEE THE
15000	SET COMMAND), ^STOPGAP WILL PRINT EITHER ^^MODEL 37 UPPER\\ OR ^^MODEL
15100	37 LOWER\\. ^IF THE USER HAS DONE A __^^DPY\\ COMMAND, THE ^STOPGAP
15200	WILL PRINT ^^DPY\\ IN FRONT OF ^^UPPER\\ OR ^^LOWER\\. ^IF A __^C64
15300	HAS BEEN DONE, THEN ^C64 WILL BE PRINTED.
15400	.BLANK 1
15500	.INDENT -15
15600	=^^ERROR\\	^PRINT OUT THE LAST ERROR MESSAGE GIVEN. ^PRINTOUT
15700	WILL ALWAYS BE DONE IN FULL REGARDLESS OF ANY __^^EXPERT\\ COMMAND.
15800	.BLANK 1
15900	.INDENT -15
16000	=^^STRING\\	^PRINT OUT THE FOUR STRINGS USED BY THE ^FIND, ^SUBSTITUTE, AND ^EXPAND
16100	COMMANDS. (^SEE THOSE COMMANDS FOR FURTHER DETAILS). ^THE STRINGS ARE
16200	PRINTED WITH THE HEADINGS ^^SEARCH, EXPAND, SUBSTITUTE\\ AND ^^FOR\\. ^THESE
16300	HEADINGS ARE INDENTED AND THE STRINGS THEMSELVES START AT THE LEFT MARGIN.
16400	^FOR EXAMPLE:
16500	.BLANK 1
16600	^^SEARCH:
16700	.INDENT -15
16800	FOO
16900	.BREAK
17000	EXPAND:
17100	.INDENT -15
17200		;THE
17300	.BREAK
17400	SUBSTITUTE:
17500	.INDENT -15
17600	GARP
17700	.BREAK
17800	FOR:
17900	.INDENT -15
18000	BAZ
18100	.BLANK 1
18200	.INDENT -15
18300	=DSK\\	^PRINT THE NUMBER OF FREE DISK BLOCKS PRESENTLY AVAILABLE.
18400	.BLANK 1
18500	.INDENT -15
18600	=^^CHECK\\	^PRINT THE STATUS OF THE DISK CHECK FLAG. (SEE DISK CHECK
18700	FEATURE.)
18800	
18900	.BLANK 1
19000	.INDENT -15
19100	=^^COMNDS\\	^PRINT THE NUMBER OF COMMANDS NOT YET SAVED ON DISK.
19200	^THIS IS ACTUALLY A COUNT OF THE ASTERISKS TYPED BY ^STOPGAP.
19300	
19400	.BLANK 1
19500	.INDENT -15
19600	=^^SUBS\\	^PRINT THE NUMBER OF SUBSTITUTIONS MADE
19700	ON THE LAST ^S COMMAND.
19800	
19900	.BLANK 2
20000	.LEFT MARGIN 0
20100	.TEST PAGE 5
20200	.INDEX __#^COMMAND
20300	__ -- ^SET
20400	.PARAGRAPH
20500	^IT IS POSSIBLE TO SET ^STOPGAP TO INVERT CASE SHIFTS. ^THIS MAKES IT
20600	EASIER TO EDIT TEXT THAT IS LARGELY LOWER CASE. ^THE COMMAND __^^UPPER\\
20700	WILL CAUSE THE EDITOR TO ENTER THE CHARACTERS ^A THROUGH ^Z AS THEMSELVES
20800	AND THE CHARACTERS '^A THROUGH '^Z (SEE THE __^C128 COMMAND)
20900	AS THE LOWER CASE LETTERS. ^THE COMMAND __^^LOWER\\ WILL REVERSE THIS SO
21000	THAT ^A THROUGH ^Z WILL BE ENTERED AS LOWER CASE, AND '^A THROUGH '^Z
21100	WILL ENTERED AS UPPER CASE. ^THIS MAY RESULT IN CONFUSION IF YOU ARE USING
21200	A ^^MODEL\\ 37 TELETYPE WHERE THE LOWER CASE CHARACTERS CAN BE ENTERED DIRECTLY.
21300	^IF YOU ARE USING A ^^MODEL\\ 37, THEN THE __^^LOWER\\ COMMAND WILL INVERT
21400	THE STATE OF THE SHIFT. ^THE CASE INVERSION ALSO HAPPENS FOR OUTPUT.
21500	^THE STARTING MODE FOR ^STOPGAP IS __^^UPPER\\.
21600	.PARAGRAPH
21700	^IT IS ALSO POSSIBLE TO INDICATE TO ^STOPGAP THAT YOU ARE USING A MODEL
21800	37 TELETYPE BY SAYING __^M37. ^THIS WILL CAUSE OUTPUT OF BOTH UPPER
21900	AND LOWER CASE LETTERS AS THEMSELVES. ^TO SET "NOT A 37", USE THE COMMAND
22000	__^M33, WHICH IS THE STARTING CONDITION.
22100	.PARAGRAPH
22200	^SINCE ON DISPLAYS IT IS POSSIBLE TO PRINT THE FULL CHARACTER SET, A SPECIAL
22300	MODE IS INCLUDED IN WHICH NO OUTPUT CONVERSION IS DONE. ^TO ENTER THIS
22400	MODE, THE COMMAND __^^DPY\\ IS DONE.
22500	.PARAGRAPH
22600	^STOPGAP IS STARTED IN __^C64 MODE WHEREIN THE
22700	SYMBOL "'" HAS NO SPECIAL SIGNIFICANCE. ^NOTE THAT ' WILL STILL PRINT AS
22800	'' IN THIS MODE.
22900	.INDEX ^RUN ^COMMAND
23000	.PARAGRAPH
23100	^THE __^^RUN\\ COMMAND WORKS IN CONJUNCTION WITH THE ^G COMMAND TO ALLOW THE
23200	EDITOR TO PASS CONTROL TO ANY ARBITRARY PROGRAM AT THE END OF AN EDIT.
23300	^THE PROGRAM TO WHICH CONTROL IS PASSED MUST BE SAVED ON SOME DIRECTORY
23400	DEVICE (DISK OR DECTAPE) THAT IS AVAILABLE TO THIS PROGRAM. ^THE COMMAND IS
23500	IN THE FORM:
23600	.BLANK 1
23700	__^^RUN\\
23800	.BREAK
23900	<DEV>:<NAME>
24000	.PARAGRAPH
24100	^HERE, <DEV> REPRESENTS THE LOGICAL OR PHYSICAL NAME OF THE DEVICE WHERE
24200	THE SAVED PROGRAM NAMED <NAME> CAN BE FOUND. ^NO PROJECT PROGRAMMER
24300	NUMBERS CAN BE SPECIFIED IN THIS COMMAND SO THE DEVICE MUST BE YOUR DISK
24400	AREA, ANY OF YOUR DEVICES NAMED WITH A LOGICAL NAME, OR THE SYSTEM AREA
24500	(^^SYS\\).
24600	.PARAGRAPH
24700	^FOR EXAMPLE, IF YOU WANT TO TRANSFER CONTROL TO ^^PIP\\ WHEN YOU LEAVE
24800	THE EDITOR, THE COMMAND:
24900	.BLANK 1
25000	^^__RUN
25100	.BREAK
25200	SYS:PIP\\
25300	.BLANK 1
25400	WILL DO THE PROPER THING. ^AFTER GIVING THIS COMMAND THE ^G COMMAND WILL TERMINATE
25500	THE EDIT AND PASS CONTROL TO ^^PIP\\.
25600	.PARAGRAPH
25700	^THE PROGRAM THAT IS RUN WILL BE STARTED ONE LOCATION BEYOND ITS NORMAL
25800	STARTING POINT. ^THIS MAY CAUSE SOME DIFFICULTIES IF THE PROGRAM THAT IS
25900	RUN DOES NOT EXPECT TO BE STARTED THIS WAY.
26000	.PARAGRAPH
26100	^IF YOU WANT TO START A ^^FORTRAN\\ PROGRAM FROM THE EDITOR THIS WAY,
26200	THEN THE FIRST EXECUTABLE STATEMENT IN THE PROGRAM MUST BE ^^CALL RESET\\.
26300	^THEN IT WILL BEHAVE NORMALLY.
26400	.PARAGRAPH
26500	^CERTAIN OTHER PROGRAMS, (SUCH AS ^STOPGAP ITSELF, ^^MACRO\\,
26600	ANOTHER ^^CUSP\\'S SUCH AS ^^PIP\\) UNDERSTAND TO VARYING
26700	DEGREES ABOUT BEING STARTED THIS WAY. ^CONSULT A SYSTEMS PROGRAMMER IF
26800	YOU CONTEMPLATE USING THIS COMMAND.
26900	
27000	.TEST PAGE 5
27100	.PARAGRAPH
27200	^OTHER SET COMMANDS ARE __^^NOVICE AND __EXPERT\\.
27300	__^^EXPERT\\ SHORTENS THE ERROR TYPEOUTS TO A VERY BRIEF FORM:
27400	*^^ILLEGAL COMMAND\\* BECOMES *^^ILC\\* OR *^^OUT OF ORDER\\* BECOMES
27500	*^^ORDER\\*. ^IF YOU ARE NOT THE EXPERT THAT YOU THOUGHT
27600	YOU WERE, =^^ERROR\\ WILL EXPAND IT BACK FOR YOU. ^^EXPERT\\ MODE
27700	ALSO INHIBITS ECHO OF CHARACTERS IN ^REPLACE, ^DELETE, AND
27800	^KILL IN ^A MODE.
27900	^THE ^^NOVICE\\ MODE IS DEFAULT.
28000	.PARAGRAPH
28100	^ANOTHER PAIR OF COMMANDS ARE __^^CHECK\\ AND __^^NOCHEC\\ WHICH TURN
28200	THE DISK CHECKING ON OR OFF. ^^CHECK\\ IS THE DEFAULT.
28300	
28400	.PARAGRAPH
28500	^THE __^^INC\\ COMMAND LOCKS IN THE INCREMENT FOR THE ^I AND ^R
28600	COMMANDS. ^IT CAN BE TYPED BY =^^INC\\.
28700	.BLANK 2
28800	.TEST PAGE 5
28900	.INDEX ^J (^JOIN) ^COMMAND
29000	^J -- ^JOIN
29100	.PARAGRAPH
29200	^THE JOIN COMMAND IS USED TO DELETE THE <RETURN> <LINE FEED> FROM THE END
29300	OF A LINE. ^ITS ARGUMENT WILL BE THE FIRST LINE OF A PAIR OF LINES TO
29400	BE JOINED. ^THE NEW LINE THAT IS FORMED WILL BE GIVEN THE NUMBER OF THE FIRST
29500	OF THE PAIR. ^THE LINE SPECIFIED IN THE COMMAND IS JOINED (CONCATENATED)
29600	WITH THE LINE THAT FOLLOWS IT. ^THE ERROR MESSAGE *^^LINE TOO LONG\\* MAY
29700	BE GIVEN, IN WHICH CASE THE LINES WILL BE UNCHANGED. ^IF THE LINE GIVEN
29800	AS ARGUMENT IS THE LAST LINE ON A PAGE, THEN THE MESSAGE *^^NO NEXT LINE\\*
29900	WILL BE GIVEN. ^IF THE JOIN IS SUCCESSFUL, THEN THE CURRENT LINE WILL BE
30000	SET TO THE NUMBER OF THE NEW LINE.
     
00100	
00200	.SUBTITLE ^ADVANCED ^COMMANDS
00300	.PAGE
00400	.INDEX ^ADVANCED ^COMMANDS
00500	.CENTER
00600	^^ADVANCED COMMANDS\\
00700	.BLANK 2
00800	.INDEX ^F (^FIND) ^COMMAND
00900	^F -- ^FIND
01000	.PARAGRAPH
01100	^THE FIND COMMAND IS USED FOR LOCATING OCCURRENCES OF CERTAIN STRINGS
01200	OF TEXT. ^THE BASIC FORM OF THE FIND COMMAND IS:
01300	.BLANK 1
01400	.INDENT 5
01500	^F<STRING><ESCAPE><RANGE>
01600	.PARAGRAPH
01700	^THE FIRST OCCURRENCE OF THE SPECIFIED STRING WITHIN THE SPECIFIED RANGE
01800	WILL BE FOUND AND THE LINE CONTAINING THAT STRING WILL BE TYPED. ^IF
01900	THE RANGE INCLUDES MORE THAN ONE PAGE AND THE LINE FOUND IS NOT ON THE
02000	FIRST PAGE, THEN "^^PAGE\\ N" WILL BE TYPED, WHERE N IS THE PAGE NUMBER
02100	WHERE THE LINE WAS FOUND. ^FOR EXAMPLE, TO FIND THE FIRST OCCURRENCE
02200	OF "^^FOOBAR\\" ON PAGE 5, USE THE COMMAND:
02300	.BLANK 1
02400	.INDENT 5
02500	^^FFOOBAR$/5\\
02600	.PARAGRAPH
02700	^WHERE $ REPRESENTS <ESCAPE>. ^TO USE THE SAME STRING AS USED BY THE LAST
02800	^F COMMAND, SIMPLY OMIT THE STRING, BUT NOT THE <ESCAPE>. ^FOR EXAMPLE,
02900	AFTER THE ABOVE SEARCH, TO FIND THE FIRST OCCURRENCE OF "^^FOOBAR\\" ON
03000	PAGE 14 USE THE COMMAND:
03100	.BLANK 1
03200	.INDENT 5
03300	^F$/14
03400	.PARAGRAPH
03500	^NOTE THAT IT IS POSSIBLE TO DETERMINE WHAT STRING WILL BE USED IN SUCH
03600	A CASE BY USING THE =^^STRING\\ COMMAND. ^IF THERE HAS BEEN NO PREVIOUS
03700	STRING AND THE STRING IN AN ^F COMMAND IS OMMITTED, THEN THE ERROR
03800	*^^NO STRING GIVEN\\* WILL BE TYPED.
03900	.PARAGRAPH
04000	^UPPER AND LOWER CASE LETTERS WILL BE CONSIDERED THE SAME INSIDE <STRING>
04100	(EXCEPT SEE THE ADVANCED ^F COMMANDS). ^THUS THE STRINGS "^^FOO"\\ AND
04200	"FOO" WILL FIND THE SAME LINES. ^THE USE OF <RETURN>, <LINE FEED> AND
04300	CERTAIN OF THE 128 CHARACTER SET SPECIAL CHARACTERS IN SEARCH STRINGS
04400	SHOULD BE AVOIDED. ^SEE THE SECTION ON ADVANCED ^F COMMANDS.
04500	.PARAGRAPH
04600	^IF THE RANGE IS OMITTED (E.G., ^^FFOOBAR$)\\, THEN THE RANGE SEARCHED
04700	WILL BE FROM THE LINE AFTER THE PRESENT LINE TO THE END OF THE FILE.
04800	^TO SEARCH FROM PRESENT LINE PLUS ONE (ESSENTIALLY .+1) TO
04900	SOME SPEICIFIED LOCATION, GIVE ONLY THE SECOND HALF OF THE RANGE. ^THUS
05000	TO SEARCH FROM .+1 TO THE END OF PAGE 10 USE ^^FFOOBAR$:/10.\\
05100	.PARAGRAPH
05200	^GIVING THE COMMAND ^F<RETURN> WILL CAUSE THE SEARCH TO CONTINUE FROM 
05300	THE PRESENT POINT.
05400	.PARAGRAPH
05500	^IF NO OCCURRENCE OF THE STRING IS FOUND IN THE GIVEN RANGE, THEN ^STOPGAP
05600	WILL SIMPLY TYPE "*" AND WAIT FOR THE NEXT COMMAND. ^THE CURRENT LINE
05700	WILL BE SET TO THE LAST LINE FOUND. ^IF NO LINE IS FOUND, THEN . IS
05800	UNCHANGED.
05900	.BLANK 2
06000	.TEST PAGE 5
06100	.INDEX ^F (^FIND) ^COMMAND - ^ADVANCED
06200	.CENTER
06300	^^ADVANCED F COMMANDS\\
06400	.PARAGRAPH
06500	^TO SEARCH FOR MORE THAN ONE STRING AT THE SAME TIME, SEPARATE THE STRINGS
06600	BY <RETURN>. ^THUS TO FIND THE FIRST OCCURRENCE OF EITHER "^^FOO"\\ OR
06700	"^^BAZ"\\ ON PAGE 5, USE THE COMMAND:
06800	.BLANK 1
06900	^^FFOO
07000	.BREAK
07100	BAZ$/5\\
07200	.PARAGRAPH
07300	^IF TOO MANY STRINGS, OR TOO MANY CHARACTERS IN THE STRINGS ARE SPECIFIED,
07400	THEN ERROR MESSAGES, *^^TOO MANY STRINGS*\\ OR *^^STRING TOO LONG\\*
07500	ARE TYPED. ^PRESENTLY, THE LIMIT IS 6 STRINGS AND 200 CHARACTERS.
07600	.PARAGRAPH
07700	^IT IS POSSIBLE TO MAKE ^STOPGAP ENTER THE INTRA-LINE EDIT MODE (SEE THE
07800	^A COMMAND) AUTOMATICALLY WHEN IT FINDS A STRING. ^TO DO THIS, SIMPLY
07900	APPEND ",^A" TO THE COMMAND AFTER THE RANGE SPECIFIER. ^FOR INSTANCE,
08000	.BLANK 1
08100	^^FFOO
08200	.BREAK
08300	BAZ/5,A \\OR
08400	.BLANK 1
08500	^^FBAZ$,A\\ (RANGE OMITTED).
08600	.PARAGRAPH
08700	^WHEN A MATCH IS FOUND WHILE USING THIS FEATURE, ^STOPGAP WILL ENTER THE
08800	INTRA-LINE EDIT MODE AND MOVE THE INTRA-LINE EDIT POINTER TO POINT TO THE
08900	FIRST CHARACTER OF THE STRING FOUND (USING THE <SPACE> COMMAND). ^IF THE
09000	^F<RETURN> COMMAND IS USED AFTER THE EDITING OF THE LINE IS COMPLETE, THEN
09100	THE ",^A" REMAINS IN EFFECT. ^THUS ^F<RETURN> IS REALLY A CONTINUE
09200	COMMAND IN RESPECT TO SPECIAL MODE, TOO. ^THIS EFFECT OF ^F<RETURN>
09300	ALSO HOLDS FOR THE ^X, ^N, AND ^E MODES EXPLAINED BELOW.
09400	.PARAGRAPH
09500	^IT IS ALSO POSSIBLE TO MAKE ^STOPGAP ENTER EXPAND MODE (SEE THE ^X
09600	COMMAND).  ^THIS IS DONE BY APPENDING ",^X" TO THE COMMAND AFTER THE
09700	RANGE SPECIFIER. ^THE POINTER IS LEFT AT THE END OF THE LINE, ANS
09800	YOU ARE IN ^I MODE.
09900	.PARAGRAPH
10000	^OCCASIONALLY, IT IS SUFFICIENT TO KNOW JUST THE LINE NUMBERS ON WHICH
10100	A GIVEN STRING OCCURS. ^THIS IS ESPECIALLY TRUE WHEN THE OUTPUT IS TO
10200	TELETYPES WHERE THE TYPING TAKES A GREAT DEAL OF TIME. ^FOR THIS REASON,
10300	^STOPGAP ALLOWS ",^N" TO BE ADDED TO THE ^F COMMAND IMMEDIATELY AFTER THE
10400	RANGE. ^THIS WILL CAUSE ONLY THE LINE NUMBER TO BE PRINTED WHEN THE STRING
10500	IS FOUND.
10600	.PARAGRAPH
10700	^IF IT IS UNDESIRABLE TO HAVE UPPER AND LOWER CASE LETTERS TREATED AS
10800	BEING IDENTICAL, IT IS POSSIBLE TO SPECIFY AN EXACT SEARCH WHERE THE CHARACTERS
10900	ARE TREATED INDIVIDUALLY. ^TO DO THIS, APPEND ",^E" AFTER EITHER ",^A"
11000	OR ",^N" IF EITHER IS PRESENT, OR ELSE IMMEDIATELY AFTER THE RANGE,
11100	IF BOTH ARE ABSENT.
11200	.PARAGRAPH
11300	^IT IS POSSIBLE TO FIND MORE THAN JUST THE FIRST OCCURENCE OF A STRING.
11400	^THIS MAY BE DONE BY ENDING THE COMMAND STRING WITH ",<NUMBER>" WHERE
11500	<NUMBER> IS THE NUMBER OF STRINGS TO BE FOUND. (99999 WILL ALMOST
11600	CERTAINLY FIND THEM ALL). ^THIS HAS THE EFFECT OF GIVING THE ^F COMMAND
11700	AND THEN A SERIES OF ^F<RETURN> COMMANDS UNTIL EITHER THE COUNT IS EXHAUSTED
11800	OR ALL THE OCCURRENCES HAVE BEEN FOUND.
11900	.PARAGRAPH
12000	^CERTAIN SPECIAL CHARACTERS THAT CAN ONLY BE ENTERED IN __^C128 MODE CAN
12100	BE INSERTED IN THE SEARCH STRING. ^INSTEAD OF BEING MATCHED BY THEMSELVES,
12200	THEY INDICATE A CLASS OF CHARACTERS THAT MAY OCCUR AT THAT POINT IN THE
12300	STRING. ^THESE CHARACTERS ARE AS FOLLOWS: (^REMEMBER, BEFORE YOU CAN TYPE
12400	THESE YOU MUST SAY __^C128).
12500	.BLANK 1
12600	.LEFT MARGIN 8
12700	.TAB STOPS 8
12800	.INDEX ^SPECIAL ^CHARACTERS
12900	.INDENT -8
13000	':	^THIS CHARACTER WILL BE MATCHED BY ANY "SEPARATOR". ^A SEPARATOR
13100	IS ANY CHARACTER WHICH IS NOT A NUMBER, LETTER, A PERIOD ("."), A PERCENT
13200	SIGN ("%") OR A DOLLAR SIGN ("$"). ^A SEPARATOR IS ANY CHARACTER THAT
13300	CANNOT BE PART OF A SYMBOL IN ^^MACRO\\.
13400	.BLANK 1
13500	.INDENT -8
13600	'/	^WILL BE MATCHED BY ANY CHARACTER.
13700	.BLANK 1
13800	.INDENT -8
13900	'%	^WILL CAUSE THE CHARACTER THAT FOLLOWS TO BE MATCHED BY ANY
14000	CHARACTER THAT IT WOULD NOT NORMALLY BE MATCHED BY. ^THUS, THE STRING
14100	"^F'%^A^B" WOULD BE MATCHED BY ^^FBB, FCB, F3B,\\ ETC., BUT NOT BY ^^FAB\\
14200	OR ^FA^B.
14300	.BLANK 1
14400	'%': WILL BE MATCHED BY ANY LETTER, NUMBER, ETC., I.E., BY ANY CHARACTER
14500	THAT IS NO A SEPARATOR.
14600	.BLANK 1
14700	'%'/ WILL BE MATCHED ONLY BY THE BEGINNING OR THE END OF A LINE. ^THUS,
14800	'%'/^^FOO\\ WILL BE MATCHED ONLY BY AN OCCURRENCE OF ^^FOO\\ AT THE
14900	BEGINNING OF A LINE.
15000	.BLANK 1
15100	.INDENT -8
15200	'7	^THIS CHARACTER IS USED TO QUOTE THE NEXT CHARACTER, THAT IS, IF
15300	YOU NEED TO SEARCH FOR ONE OF THE SPECIAL CHARACTERS AND HAVE IF MATCHED
15400	BY ITSELF, YOU MUST QUOTE THE CHARACTER. ^THUS, '7'%
15500	WILL SEARCH FOR THE CHARACTER '%, AND '7'7 IS USED TO SEARCH FOR THE CHARACTER
15600	'7. ^NOTE THAT THE CONSTRUCTION '%'7'% WILL BE MATCHED BY ANY CHARACTER EXCEPT
15700	'%.
15800	.BLANK 1
15900	.INDENT -8
16000	')	^IS USED TO MEAN "ANY NUMBER OF" WHATEVER FOLLOWS IT. ^THUS THE
16100	SEARCH STRING ^A')^B^C WILL BE MATCHED BY ^^AC, ABC, ABBC, ABBBC,\\ ETC.
16200	^IN CASE OF AMBIGUITY, THE SHORTEST SUCH STRING WILL BE FOUND. ^THUS
16300	THE STRING ')^A^B WILL FIND THE STRING ^B RATHER THAN ^A^B.
16400	.BLANK 1
16500	^SEARCH STRING OF THE FORM ')'%'7'% ARE PERFECTLY LEGAL. ^THIS EXAMPLE
16600	WILL BE MATCHED BY ANY STRING OF CHARACTERS THAT ARE NOT '%'S.
16700	.LEFT MARGIN 0
16800	.PARAGRAPH
16900	^CERTAIN STRINGS WHICH CAN BE FORMED WITH ABOVE CHARACTERS ARE ILLEGAL.
17000	SUCH STRINGS WILL PRODUCE THE MESSAGE *^^ILLEGAL SEARCH STRING\\*. ^THE
17100	STRINGS ARE NOT CHECKED BEFORE USE, SO THE MESSAGE WILL ONLY BE GIVEN WHEN
17200	AN ATTEMPT IS MADE TO CHECK FOR A MATCH WITH THAT PARTICULAR PART OF THE STRING.
17300	^THE ILLEGAL CONDITIONS ARE '%,'7 OR ') NOT FOLLOWED BY ANOTHER CHARACTER.
17400	^THE CONSTRUCTION '%')...#IS ALSO ILLEGAL. ^DUE TO THE FACT THAT SOME
17500	OF THESE STRINGS INVOLVE RECURSION AND THE USE OF INTERNAL TABLE SPACE, IT
17600	IS POSSIBLE TO GET THE MESSAGE *^^SEARCH STRING TOO COMPLEX\\*. ^IF THIS
17700	HAPPENS, TRY A SIMPLER STRING.
17800	.BLANK 2
17900	.TEST PAGE 5
18000	.INDEX ^S (^SUBSTITUTE) ^COMMAND
18100	^S -- ^SUBSTITUTE
18200	.PARAGRAPH
18300	^THIS COMMAND IS USED TO SUBSTITUTE ONE STRING FOR ALL OCCURRENCES OF
18400	ANOTHER STRING. ^THE BASIC FORM OF THE SUBSTITUTE COMMAND IS:
18500	.BLANK 1
18600	^S<OSTRING><ESCAPE><NSTRING><ESCAPE><RANGE>
18700	.PARAGRAPH
18800	<NSTRING> WILL BE SUBSTITUTED FOR ALL OCCURRENCES OF <OSTRING> IN THE RANGE
18900	SPECIFIED. ^NOTE THAT WHILE THE ^F COMMAND FINDS THE FIRST OCCURRENCE
19000	OF THE SEARCH STRING, THE ^S COMMAND WILL REPLACE ALL OCCURRENCES OF <OSTRING>
19100	BY <NSTRING>. ^THE ^S COMMAND WILL TYPE ALL THE LINES ON WHICH SUBSTITUTIONS
19200	HAVE BEEN MADE. ^EACH LINE ON WHICH <OSTRING> IS FOUND WILL BE PRINTED
19300	AFTER ALL SUBSTITUTIONS HAVE BEEN MADE ON THE LINE. ^AS WITH THE ^F COMMAND,
19400	THE HEADING "^^PAGE\\ N" WILL BE TYPED IF EITHER THE FIRST LINE AFFECTED
19500	IS NOT ON THE FIRST PAGE OF THE RANGE, OR A SUBSEQUENT LINE THAT IS MODIFIED
19600	IS NOT ON THE SAME PAGE AS THE PREVIOUS LINE THAT WAS MODIFIED.
19700	.PARAGRAPH
19800	^FOR EXAMPLE, TO CHANGE ALL THE OCCURRENCES OF "^^FOO\\" ON PAGE 17 TO
19900	"^^BAZ\\" USE THE COMMAND:
20000	.BLANK 1
20100	^^SFOO$BAZ$/17\\
20200	.PARAGRAPH
20300	^TO USE THE SAME STRINGS AS WERE USED BY THE LAST ^S COMMAND, SIMPLY
20400	OMIT BOTH STRINGS AND ONE OF THE <ESCAPE>'S. ^THUS IF IT WERE NOW DESIRED
20500	TO CHANGE ALL THE ^^FOO\\'S TO ^B^A^Z'S ON PAGE 33, ONE COULD NOW TYPE:
20600	.BLANK 1
20700	^S$/33
20800	.PARAGRAPH
20900	^NOTE THAT AS WITH THE ^F COMMAND, IT IS POSSIBLE TO DETERMINE JUST WHAT
21000	STRINGS WILL BE USED IF THEY ARE OMITTED FROM THE COMMAND. ^THE ^^STRING\\
21100	COMMAND WILL TYPE THE STRINGS. ^IF THE STRINGS ARE OMITTED AND NO PREVIOUS
21200	^S COMMAND HAD BEEN GIVEN, THEN THE ERROR *^^NO STRING GIVEN\\* WILL
21300	RESULT. ^AS WITH THE ^F COMMAND, UPPER AND LOWER CASE CHARACTERS ARE COSIDERED
21400	THE SAME IN THE FIRST STRING (BUT NOT IN <NSTRING>).
21500	.PARAGRAPH
21600	^AVOID THE USE OF <RETURN> AND <LINE FEED> IN BOTH STRINGS. ^ALSO THE
21700	USE OF THE 128 CHARACTER SET CHARACTERS: ':, '/, '%,'7 AND ') IN THE
21800	FIRST STRING, AND THE USE OF CHARACTERS '7 AND '* IN THE SECOND STRING SHOULD
21900	BE AVOIDED. ^SEE THE ADVANCED ^S COMMANDS FOR AN EXPLANATION.
22000	.PARAGRAPH
22100	^THE EFFECT OF OMITTING THE RANGE OR SPECIFYING ONLY THE LAST HALF OF THE
22200	RANGE IS THE SAME AS IN THE ^F COMMAND. ^S <RETURN> IS A CONTINUE IN THE
22300	SAME MANNER AS ^F <RETURN>, BUT IS RARELY NEEDED SINCE THE ^S COMMAND
22400	AFFECTS ALL THE LINES IN THE GIVEN RANGE. (^FOR EXCEPTIONS, SEE BELOW).
22500	^THE CURRENT LINE IS SET TO THE LAST LINE CHANGED. ^IF NO SUBSTITUTIONS
22600	ARE MADE, THE VALUE OF "." REMAINS UNCHANGED.
22700	.BLANK 2
22800	.TEST PAGE 5
22900	.INDEX ^S (^SUBSTITUTE) ^COMMAND - ^ADVANCED
23000	.CENTER
23100	^^ADVANCED S COMMANDS\\
23200	.PARAGRAPH
23300	^AS WITH THE ^F COMMAND, IT IS POSSIBLE TO DO SEVERAL SUBSTITUTIONS AT
23400	ONCE. ^SEVERAL STRINGS TO BE SEARCHED FOR, SEPARATED BY <RETURN>'S, MAY
23500	BE GIVEN FOR <OSTRING> FOLLOWED BY AN <ESCAPE>, THEN SEVERAL STRINGS
23600	TO REPLACE THEM, SEPARATED BY <RETURN>'S ARE GIVEN FOR <NSTRING> FOLLOWED
23700	BY ANOTHER <ESCAPE> AND A RANGE SPECIFIER. ^THE FIRST STRING GIVEN FOR
23800	<NSTRING> WILL BE SUBSTITUTED FOR THE FIRST STRING GIVEN FOR <OSTRING>,
23900	THE SECOND FOR THE SECOND, ETC. ^IF MORE <OSTRING>'S THAN <NSTRING>'S
24000	ARE GIVEN, THEN THE LAST <NSTRING> WILL BE SUBSTITUTED FOR ALL THE EXCESS
24100	<OSTRNG> WILL BE SUBSTITUTED FOR ALL THE EXCESS <OSTRING>'S. ^FOR
24200	EXAMPLE, TO SUBSTITUTE ^^ALPHA\\ FOR ^^BETA\\ AND ^^DELTA\\ FOR ^^GAMMA\\
24300	ON PAGE 5 THROUGH PAGE 7, USE THE COMMAND:
24400	.BLANK 1
24500	^^SBETA
24600	.BREAK
24700	GAMMA$ALPHA
24800	.BREAK
24900	DELTA$/5:/7\\
25000	.PARAGRAPH
25100	^THE ERRORS *^^TOO MANY STRINGS\\* AND *^^STRING TOO LONG\\* WILL OCCUR
25200	UNDER THE SAME CONDITIONS AS IN THE ^F COMMAND.
25300	.PARAGRAPH
25400	^A SPECIAL MODE OF THE ^S COMMAND IS PROVIDED IN WHICH THE USER HAS
25500	A CHANCE TO LOOK AT EACH LINE AFTER SUBSTITUTIONS HAVE BEEN MADE AND DECIDE
25600	WHETHER HE WANTS THE NEW LINE OR THE OLD ONE. ^TO USE THE ^S COMMAND IN THIS
25700	MODE, PUT ",^D" AFTER THE RANGE IN THE COMMAND STRING. ^THEN, FOR EACH
25800	LINE IN WHICH A SUBSTITUTION IS MADE, THE LINE WILL BE PRINTED AFTER ALL THE
25900	SUBSTITUTIONS HA E BEEN MADE. ^STOPGAP WILL THEN WAIT FOR A SINGLE
26000	CHARACTER TO BE TYPED ON THE USER'S TELETYPE. ^IF THIS CHARACTER IS
26100	<RUBOUT>, THEN THE SUBSTITUTIONS WILL NOT BE MADE AND THE OLD VERSION
26200	OF THE LINE WILL BE RETAINED. ^STOPGAP WILL THEN PROCEED TO LOOK FOR
26300	THE NEXT LINE AND THE PROCESS REPEATS. ^IF THE CHARCTER "^E" (OR "E")
26400	IS TYPED, THEN THE INDICATED SUBSTITUTIONS WILL NOT BE MADE AND ^STOPGAP
26500	WILL RETURN IMMEDIATELY TO COMMAND MODE. ^ANY OTHER CHARACTER WILL CAUSE THE
26600	LINE THAT WAS PRINTED TO BECOME THE NEW LINE AND SUBSTITUTION WILL
26700	CONTINUE. ^TYPING <RETURN> SHOULD BE AVOIDED, HOWEVER, SINCE ^STOPGAP TREATS
26800	THIS AS <RETURN><LINE FEED> AND WILL PERFORM TWO SUBSTITUTIONS.
26900	.PARAGRAPH
27000	^IF THE USER IS VERY SURE OF HIMSELF, HE MAY SUPPRESS THE PRINTING OF
27100	THOSE LINES IN WHICH A SUBSTITUTION IS MADE. ^TO DO THIS, PUT ",^N" AFTER
27200	THE RANGE IN THE COMMAND STRING.
27300	.PARAGRAPH
27400	^AS WITH ^F, ",^E" WILL CAUSE UPPER AND LOWER CASE LETTERS TO BE TREATED
27500	SEPARATELY IN THE FIRST STRING. ^THIS SHOULD COME AFTER THE ",^N" OR ",^D"
27600	IF EITHER IS PRESENT, OR ELSE AFTER THE RANGE.
27700	.PARAGRAPH
27800	^ALL OF THE SPECIAL 128 CHARACTERS THAT ARE ALLOWED IN THE ^F COMMAND
27900	(':, '/, '%, '), AND '7) ARE ALL ALLOWED IN THE FIRST STRING IN THE ^S COMMAND.
28000	^THIS MAY CREATE A PROBLEM, HOWEVER. ^SUPPOSE THAT IT WERE DESIRED TO CHANGE
28100	ALL OCCURRENCES OF ^^FOO\\ TO ^^BAZ\\, BUT THERE WERE STRINGS PRESENT
28200	IN THE TEXT SUCH AS ^^AFOO\\ AND ^^FOOBAR\\ THAT WERE NOT TO BE CHANGED.
28300	^THIS CAN BE CIRCUMVENTED BY GIVING "':^^FOO\\': AS <OSTRING> BUT IT STILL
28400	LEAVES THE PROBLEM OF REPLACING THE SEPARATORS THAT WERE FOUND BY THEMSELVES.
28500	^ALL STRINGS THAT MATCH ONE OF THE SPECIAL CONSTRUCTS IS CALLED A PARTIALLY
28600	SPECIFIED STRING. ^IF THE CONSTRUCT '*<NUMBER>'* IS USED IN <NSTRING>,
28700	IT IS REPLACED BY THE <NUMBER>TH PARTIALLY SPECIFIED STRING THAT IS FOUND
28800	BY <OSTRING>. ^THUS THE ABOVE PROBLEM CAN BE SOLVED BY THE COMMAND STRING:
28900	.BLANK 1
29000	^S':^^FOO':$'*1'*BAZ'*2'*$\\<RANGE>
29100	.PARAGRAPH
29200	^TO INSERT A '* OR A '7 INTO THE SUBSTITUTE STRING AS ITSELF INSTEAD OF
29300	AS A SPECIAL CHARACTER, PRECEDE IT BY '7. ^IF A '* IS NOT FOLLOWED BY A
29400	NUMBER AND A '* OR IF A '7 IS NOT FOLLOWED BY ANOTHER CHARACTER, THEN THE
29500	MESSAGE *^^ILLEGAL REPLACEMENT STRING\\* WILL RESULT. ^THIS SAME MESSAGE
29600	WILL BE GIVEN IF A PARTIALLY SPECIFIED STRING THAT DOES NOT EXIST IS
29700	SPECIFIED, E.G., '*12'* WHERE THERE ARE ONLY TWO PARTIALLY SPECIFIED STRINGS.
29800	.PARAGRAPH
29900	^AS AN EXAMPLE OF THE USE OF THE ^S COMMAND, CONSIDER THE FOLLOWING
30000	PROBLEM. ^IN ^^MACRO\\, EACH LINE CONSISTS OF AN OPTIONAL LABEL FOLLOWED BY
30100	A COLON, AN OPERATOR, SOME SEPARATOR AND AN OPTIONAL
30200	ACCUMULATOR FIELD FOLLOWED BY A COMMA AND AN OPTIONAL SEMICOLON
30300	FOLLOWED BY COMMENTS. ^AN EXAMPLE IS:
30400	.BLANK 1
30500	^^TYPE:TTCALL 3,TEXT ;TYPE OUT THE MESSAGE AT TEXT
30600	\\
30700	.PARAGRAPH
30800	^NOW, THE PROBLEM IS: DELETE ALL THE COMMENTS. ^WE DO THIS BY THE FOLLOWING.
30900	^WE USE A SUBSTITUTE COMMAND; WE SEARCH FOR A "SEMICOLON, FOLLOWED BY ANY
31000	NUMBER OF ANYTHING TO THE END OF THE LINE" AND WHEN WE FIND SUCH A STRING,
31100	WE CAN SUBSTITUTE THE NULL (EMPTY) STRING FOR IT. ^THE COMMAND IS:
31200	.BLANK 1
31300	__^C128####^REMEMBER WE HAVE TO BE IN ^C128 MODE FOR THIS.
31400	.BLANK 1
31500	^S;')'/'%'/$$/.
31600	.BLANK 2
31700	.TEST PAGE 5
31800	.INDEX ^C (^COPY) ^COMMAND
31900	^C -- ^COPY
32000	.PARAGRAPH
32100	^THE COPY COMMAND WILL INSERT A COPY OF A GIVEN PIECE OF TEXT IN A GIVEN
32200	LOCATION. ^THE SOURCE FOR THE TEXT MAY BE ON THE FILE BEING EDITED OR
32300	ON SOME OTHER FILE. ^THE BASIC FORM OF THE COPY COMMAND IS:
32400	.BLANK 1
32500	^C<DESTINATION>,<SOURCE RANGE SPECIFIER>,<INCREMENT>
32600	.PARAGRAPH
32700	^THE COPY COMMAND ACTS AS IF AN ^I<DESTINATION>,<INC> COMMAND HAD BEEN
32800	DONE AND THEN ALL THE LINES SPECIFIED BY THE <SOURCE RANGE SPECIFIER>
32900	HAD BEEN TYPED IN. (^SOME SLIGHT COMPLICATIONS ARE INTRODUCED IF THE SOURCE
33000	RANGE CONTAINS PAGE MARKS.) ^IF THE <INCREMENT> IS LARGE ENOUGH THAT IT
33100	WOULD CAUSE AN *^^ORDER\\* OR A *^^WRAP AROUND\\* ERROR, THEN THE COPY
33200	COMMAND WILL CHOOSE A SMALLER INCREMENT. ^THE MESSAGE ^^INC\\1=<NUMBER> IS
33300	TYPED TO INDICATE WHAT INCREMENT WAS FINALLY USED. ^IF IT IS IMPOSSIBLE
33400	TO CHOOSE A SMALL ENOUGH INCREMENT, THEN EITHER ^^INC1=ORDER\\ OR ^^INC1=WAR\\
33500	WILL BE TYPED AND THE GIVEN INCREMENT WILL BE USED.
33600	.PARAGRAPH
33700	^SINCE ALL OF THE TEXT TO BE COPIED MUST BE CONTAINED IN CORE AT ONE TIME,
33800	COPYING LARGE BLOCKS OF TEXT MAY RESULT IN THE MESSAGE *^^INSUFFICIENT
33900	CORE AVAILABLE\\*. ^THE ONLY POSSIBLE SOLUTION IS TO COPY SEVERAL SMALLER
34000	BLOCKS.
34100	.PARAGRAPH
34200	^IF THE SOURCE LINES CONTAIN PAGE MARKS, THEN THE RENUMBERING OF LINES WILL
34300	CEASE WHEN THE FIRST PAGE MARK IS REACHED. ^LINES BETWEEN THE FIRST AND
34400	LAST PAGE MARKS WILL BE INSERTED WITH THEIR ORIGINAL NUMBERS. ^LINES
34500	AFTER THE LAST PAGE MARK WILL BE INSERTED WITH THEIR ORIGINAL NUMBERS UNLESS
34600	A SECOND INCREMENT IS GIVEN. ^THIS SECOND INCREMENT SHOULD APPEAR
34700	IMMEDIATELY AFTER THE FIRST INCREMENT AND BE SEPARATED FROM IT BY A COMMA.
34800	^IF THE SECOND INCREMENT IS SO LARGE THAT *^^ORDER\\* OR *^^WRAP AROUND\\*
34900	ERRORS WOULD OCCUR, OR IF NO SECOND INCREMENT IS GIVEN, THEN ^STOPGAP
35000	WILL CHOOSE AN INCREMENT TO USE. ^STOPGAP WILL TYPE "^^INC\\2=<NUMBER>"
35100	TO ANNOUNCE THIS CHOICE. ^IF NO SUITABLE INCREMENT EXISTS, THEN THE MESSAGE
35200	"^^INC2=ORDER\\" WILL BE TYPED AND THE LINES WILL BE NUMBERED WITH THE
35300	SPECIFIED INCREMENT OR WITH THE ORIGINAL LINE NUMBERS, IF NO SECOND INCREMENT
35400	IS GIVEN.
35500	.PARAGRAPH
35600	^THE SOURCE LINES MAY BE ON ANOTHER FILE. ^THEN THE COPY COMMAND IS GIVEN
35700	IN THE FORM:
35800	.BLANK 1
35900	^C<DESTINATION>__<SOURCE FILE NAME>,<SOURCE RANGE SPECIFIER>..
36000	.PARAGRAPH
36100	^THIS COMMAND MAY GIVE EITHER THE MESSAGE *^^FILE NOT FOUND\\*
36200	OR *^^DISK NOT AVAILABLE\\*
36300	.PARAGRAPH
36400	^A SPECIAL FORM OF THE COPY COMMAND IS AVAILABLE FOR COPYING LINES
36500	FROM ANOTHER FILE WHEN THE LINE NUMBERS ARE NOT KNOWN. ^THE COMMAND:
36600	.BLANK 1
36700	^C<DESTINATION>__<SOURCE FILE NAME>/^S
36800	.BLANK 1
36900	WILL CAUSE ^STOPGAP TO RESPOND WITH "*". ^THE FILE INDICATED IS NOW BEING
37000	EDITED IN READ-ONLY MODE. ^YOU MAY USE THE ^P, ^L, AND ^F COMMANDS TO FIND
37100	THE LINES THAT YOU WANT TO COPY. ^AFTER THE LINES ARE FOUND, THE COMMAND
37200	"^E" WILL RETURN YOU TO THE ORIGINAL FILE WHERE THE MESSAGE "^^SOURCE LINES\\="
37300	WILL BE TYPED. ^AT THIS POINT, TYPE THE REMAINDER OF THE COPY COMMAND
37400	ARGUMENTS (THAT IS <SOURCE RANGE SPECIFIER>, <INCREMENT1>...).
37500	.PARAGRAPH
37600	^THE CURRENT LINE WILL BE SET TO THE LAST LINE INSERTED.
37700	.BLANK 2
37800	.TEST PAGE 5
37900	.INDEX ^T (^TRANSFER) ^COMMAND
38000	^T -- ^TRANSFER
38100	.PARAGRAPH
38200	^THE TRANSFER COMMAND MOVES A SET OF LINES FROM ONE PLACE IN A FILE TO ANOTHER.
38300	^IT ACTS LIKE A COPY COMMAND, FOLLOWED BY A DELETE COMMAND. ^IT HAS ONLY
38400	TWO DIFFERENCES FROM THE ^COPY COMMAND. ^FIRST, THE SOURCE LINES MUST
38500	BE ON THE SAME FILE THAT IS BEING EDITED. ^THE SECOND DIFFERENCE IS THAT
38600	THE MESSAGE *^^ILLEGAL TRANSFER DESTINATION\\* WILL BE GIVEN IF THE
38700	DESTINATION IS INSIDE THE SOURCE RANGE (I.E., ^T400/5,/2:9).
38800	.PARAGRAPH
38900	^IF THE DELETION WOULD CAUSE AN ORDER ERROR BECAUSE OF THE REMOVAL OF A
39000	PAGE MARK, THEN ^STOPGAP WILL INSERT ONE PAGE MARK AND TYPE ^^"PAGE MARK
39100	INSERTED TO PREVENT ORDER ERROR"\\.
39200	.PARAGRAPH
39300	^IF THE DESTINATION SPECIFIED IS ON A PAGE THAT DOES NOT EXIST, THEN ^STOPGAP
39400	WILL INSERT THE TEXT AT THE END OF THE FILE AND TYPE AN APPROPRIATE
39500	MESSAGE.
39600	.BLANK 2
39700	.TEST PAGE 5
39800	.INDEX ^A (^ALTER) ^COMMAND
39900	^A -- ^ALTER
40000	.PARAGRAPH
40100	^THIS COMMAND IS USED TO MAKE CHANGES WITHIN A LINE WITHOUT HAVING TO
40200	RETYPE THE ENTIRE LINE. ^IT ACCEPTS A RANGE SPECIFIER INDICATING THE LINES
40300	TO BE ALTERED.
40400	.PARAGRAPH
40500	^FOR EACH OF THE LINES IN THE RANGE, IT TYPES THE LINE NUMBER AND THEN
40600	ENTERS THE SPECIAL INTRA-LINE EDIT MODE WHICH HAS ITS OWN COMMANDS. ^THE
40700	COMMANDS TYPED IN INTRA-LINE EDIT MODE ARE NOT ECHOED ON THE TELETYPE.
40800	^THIS PROVIDES THE FEATURE THAT THE LINE SHOWN ON THE TELETYPE AT THE END
40900	OF THE INTRA-LINE EDIT IS EXACTLY THE LINE WHICH WILL APPEAR IN THE TEXT
41000	FILE, EXCEPT THE BACKSLASH WILL SIGNIFY DELETED CHARACTERS. ^IN GENERAL,
41100	ANY COMMAND IN THIS MODE MAY BE PRECEDED BY A NUMBER WHICH WILL CAUSE IT
41200	TO BE REPEATED THAT NUMBER OF TIMES.
41300	.PARAGRAPH
41400	^IF THERE ARE NO LINES IN THE RANGE SPECIFIED, THEN *^^NO SUCH LINE(S)\\*
41500	WILL BE TYPED.
41600	.PARAGRAPH
41700	^THE CURRENT LINE WILL BE SET TO THE LAST LINE EDITED.
41800	.PARAGRAPH
41900	^THE INTRA-LINE EDITOR MAINTAINS A POINTER WITHIN THE LINE BEING EDITED.
42000	^THIS POINTER POINTS TO THE CHARACTER WHICH THE NEXT COMMAND WILL AFFECT.
42100	^THE POINTER IS INITIALLY PLACED POINTING TO THE FIRST CHARACTER OF THE LINE.
42200	.BLANK 2
42300	.CENTER
42400	^INTRA-^LINE ^EDIT ^COMMANDS
42500	.LEFT MARGIN 15
42600	.BLANK 1
42700	.TAB STOPS 15
42800	.INDEX ^^SPACE\\ (^A MODE)
42900	.INDENT -15
43000	<SPACE>	^THIS COMMAND CAUSES THE CHARACTER POINTED TO TO BE PRINTED
43100	ON THE TELETYPE AND THE POINTER TO BE MOVED TO THE RIGHT ONE CHARACTER.
43200	^IF THE POINTER IS ALREADY AT THE RIGHT END OF THE LINE, THEN THIS
43300	COMMAND IS IGNORED.
43400	.BLANK 1
43500	.INDENT -15
43600	<RUBOUT>	^THIS MOVES THE POINTER TO THE LEFT ONE CHARACTER.
43700	^IF THE POINTER IS ALREADY AT THE EXTREME LEFT OF THE LINE, A
43800	<RETURN> <LINE FEED> IS TYPED AND THE LINE NUMBER IS PRINTED AGAIN.
43900	^THE POINTER THEN POINTS TO THE FIRST CHARACTER OF THE LINE. ^THE
44000	CHARACTERS THAT ARE PASSED OVER ARE TYPED BETWEEN BACKSLASHES.
44100	^THIS COMMAND SPECIFICALLY DOES NOT DELETE CHARACTERS AS <RUBOUT>
44200	DOES IN NORMAL TYPING.
44300	.BLANK 1
44400	.INDEX ^^TAB\\ (^A MODE)
44500	.INDENT -15
44600	TAB	^THIS COMMAND MOVES THE POINTER TO THE END OF THE LINE, TYPING
44700	ALL THE CHARACTERS IT PASSES OVER (LIKE A 999<SPACE>).
44800	.BLANK 1
44900	.INDEX ^C (^A MODE)
45000	.INDENT -15
45100	^C	^THIS COMMAND CAUSES A CHARACTER TO BE ACCEPTED FROM THE
45200	TELETYPE. ^THE CHARACTER THAT IS POINTED TO WILL BE REPLACED BY
45300	THIS NEW CHARACTER AND THE POINTER WILL BE MOVED TO THE RIGHT ONE
45400	CHARACTER. ^IF THE POINTER IS ALREADY AT THE RIGHT END OF THE LINE,
45500	THEN THIS COMMAND IS IGNORED. <RUBOUT> FROM THE TELETYPE WILL BE
45600	IGNORED. ^ANY OF THE CHARACTERS <RETURN>, <LINE FEED> OR <ESCAPE>
45700	WILL CAUSE THE REMAINDER OF THE ^C COMMAND TO BE ABORTED. (^THIS IS
45800	USEFUL IF A NUMBER WAS CHOSEN THAT PROVES TO BE TOO LARGE.)
45900	.BLANK 1
46000	.INDEX ^D (^A MODE)
46100	.INDENT -15
46200	^D	^THIS COMMAND DELETES THE CHARACTER POINTED TO. ^THE CHARACTERS
46300	THAT ARE DELETED WILL BE PRINTED BETWEEN DOUBLE BACKSLASHES. ^IF THE
46400	POINTER IS ALREADY AT THE EXTREME RIGHT OF THE LINE, THEN THIS COMMAND
46500	IS IGNORED. ^AFTER THE COMMAND, THE POINTER WILL POINT TO THE RIGHT OF
46600	THE LAST CHARACTER THAT WAS DELETED. ^IF THIS COMMAND IS PRECEDED BY
46700	A NUMBER, THEN ONLY THE LAST THREE CHARACTERS THAT ARE DELETED WILL
46800	BE TYPED.
46900	.BLANK 1
47000	.INDEX ^^LINE FEED\\ (^A MODE)
47100	.INDENT -15
47200	<LINE FEED>	^CAUSES THE PART OF THE LINE TO THE##RIGHT##OF
47300	.BREAK
47400	.INDENT -12
47500	OR	THE POINTER TO BE TYPED##AND##THE##INTRA-LINE
47600	.BREAK
47700	.INDEX ^^RETURN\\ (^A MODE)
47800	.INDENT -15
47900	<RETURN>	EDIT (OF THIS LINE) WILL BE FINISHED. ^IF ANY LINES REMAIN IN THE RANGE
48000	THAT WAS SPECIFIED FOR THE ALTER COMMAND, THEN THE INTRA-LINE EDIT OF
48100	THE NEXT LINE WILL BE STARTED; OTHERWISE, ^STOPGAP RETURNS TO THE
48200	NORMAL COMMAND MODE.
48300	.BLANK 1
48400	.INDEX ^F (^A MODE)
48500	.INDENT -15
48600	^F	^THIS COMMAND CAUSES FAST EXIT OF THIS LINE; I.E., SAME AS <RETURN>
48700	EXCEPT THE REST OF THE LINE IS NOT TYPED.
48800	.BLANK 1
48900	.INDEX ^Q (^A MODE)
49000	.INDENT -15
49100	^Q	^CAUSES THE INTRA-LINE EDITING TO BE TERMINATED WITHOUT HAVING
49200	MADE ANY CHANGES IN THE LINE BEING ALTERED. ^STOPGAP RETURNS TO COMMAND
49300	MODE. ^THIS COMMAND IS USEFUL IF YOU DISCOVER THAT A MISTAKE IS BEING
49400	MADE SINCE IT RESTORES THE LINE TO ITS ORIGINAL FORM. ^ALSO, IF THE
49500	RANGE SPECIFIED IN THE COMMAND IS TOO LARGE, YOU CAN USE THIS TO
49600	RETURN TO NORMAL COMMAND MODE.
49700	.BLANK 1
49800	.INDEX ^I (^A MODE)
49900	.INDENT -15
50000	^I	^THIS COMMAND CAUSES CHARACTERS FROM THE TELETYPE TO BE
50100	ACCEPTED AND INSERTED INTO THE LINE UNTIL AN <ESCAPE> IS TYPED. ^THE
50200	POINTER IS LEFT POINTING AT THE CHARACTER TO THE RIGHT OF THOSE
50300	CHARACTERS THAT ARE INSERTED. ^CHARACTERS ACCEPTED FROM THE TELETYPE
50400	ARE ECHOED. ^IF <RUBOUT> IS SEEN, THEN THE CHARACTER TO THE LEFT OF THE
50500	POINTER IS DELETED. ^THIS CHARACTER WILL USUALLY BE THE LAST CHARACTER
50600	THAT WAS INSERTED, BUT IT IS POSSIBLE TO DELETE MORE CHARACTERS THAN
50700	WERE INSERTED. ^TYPING <RUBOUT> WHEN AT THE LEFT END OF THE LINE WILL
50800	HAVE THE SAME EFFECT AS TYPING <RUBOUT> THERE IN NON-INSERT MODE. (^NO
50900	CHARACTERS ARE DELETED.) ^THE CHARACTERS THAT ARE DELETED ARE TYPED
51000	SURROUNDED BY A PAIR OF BACKSLASHES.
51100	.BLANK 1
51200	^IF ENOUGH CHARACTERS ARE INSERTED TO MAKE THE TOTAL LENGTH OF THE
51300	LINE GREATER THAN 147 CHARACTERS, THEN THE ERROR ^^*LINE#TOO#LONG*\\
51400	WILL BE TYPED AND ^STOPGAP RETURNS TO COMMAND MODE WITHOUT HAVING
51500	MADE ANY CANGES TO THE LINE.
51600	.BLANK 1
51700	^IF A <RETURN> OR A <LINE FEED> IS SEEN, THEN A <RETURN> AND <LINE FEED>
51800	ARE INSERTED IN THE LINE AT THAT POINT. ^THIS WILL CREATE A NEW LINE
51900	WHOSE CONTENTS ARE THAT PART OF THE ORIGINAL LINE WHOSE CONTENTS ARE
52000	THAT PART OF THE ORIGINAL LINE TO THE RIGHT OF THE PRESENT POINTER
52100	POSITION. ^THE NUMBER OF THIS NEW LINE WILL BE DETERMINED AS FOLLOWS:
52200	.BLANK 1
52300	^IF THE ^I COMMAND WAS PRECEDED BY A NUMBER, THEN THIS NUMBER WILL
52400	BE ADDED TO THE CURRENT LINE NUMBER TO PRODUCE THE "PROVISIONAL LINE NUMBER".
52500	^IF NO NUMBER PRECEDED THE ^I COMMAND, THEN THE CURRENT INSERT INCREMENT
52600	IS ADDED TO THE CURRENT LINE TO PRODUCE THE "PROVISIONAL LINE NUMBER". ^IF
52700	THE "PROVISIONAL LINE NUMBER" CAN BE USED WITHOUT CREATING AN ORDER OR
52800	WRAP AROUND ERROR, THEN IT WILL BE USED. ^IF NOT, THEN THE NEW LINE WILL
52900	BE GIVEN A NUMBER WHICH IS HALFWAY BETWEEN THE CURRENT LINE NUMBER AND THE
53000	NUMBER OF THE NEXT LINE. ^IF THE NUMBER OF THE NEXT LINE IS ONLY ONE
53100	MORE THAN THE NUMBER OF THE PRESENT LINE, AN *^^OUT OF ORDER\\* ERROR
53200	RESULTS. ^IN THIS CASE, ^STOPGAP RETYPES THE LINE NUMBER AND THE
53300	CONTENTS OF THE LINE TO THE LEFT OF THE POINTER. ^STOPGAP WILL THEN BE
53400	READY TO ACCEPT MORE CHARACTERS TO BE INSERTED.
53500	.BLANK 1
53600	^IF NO ERRORS OCCUR, THE POINTER WILL BE LEFT POINTING AT THE FIRST
53700	CHARACTER OF THE NEW LINE AND THE CURRENT LINE WILL BE SET TO THE
53800	NEW LINE NUMBER JUST CREATED.
53900	
54000	.BLANK 1
54100	.INDEX ^X (^A MODE)
54200	.INDENT -15
54300	^X	^THIS COMMAND E^XPANDS THE LINE YOUR EDITING; I.E., IT
54400	DOES A <TAB> FOLLOWED BY AN ^I. ^THE NUMBER PRECEDING THE ^X
54500	IS THE NEW LINE INCREMENT AS IT WAS IN THE ^I COMMAND.
54600	
54700	.BLANK 1
54800	.INDEX _^^U (^A MODE)
54900	.INDENT -15
55000	<^CONTROL ^U>	^THIS COMMAND CAUSES ^STOPGAP TO START THE INTRA-LINE
55100	EDIT OVER AGAIN. ^THE LINE IS RESTORED TO ITS ORIGINAL STATE, AND THE INTRA-LINE
55200	EDIT IS STARTED OVER.
55300	.BLANK 1
55400	.INDEX ^R (^A MODE)
55500	.INDENT -15
55600	^R	^THIS COMMAND IS A REPLACEMENT: <NUMBER>^R IS EXACTLY EQUIVALENT
55700	TO <NUMBER>^D^I.
55800	.BLANK 1
55900	.INDEX ^S (^A MODE)
56000	.INDENT -15
56100	^S	^THIS COMMAND ACCEPTS ONE CHARACTER FROM THE TELETYPE (NOTE THAT
56200	IN __^C128 MODE '1 COUNTS AS ONE CHARACTER, ETC.) WITHOUT ECHOING THAT
56300	CHARACTER AND IT MOVES THE POINTER TO THE RIGHT UNTIL IT POINTS TO THAT
56400	CHARACTER. ^IT WILL PRINT ALL THE CHARACTERS THAT IT PASSES OVER. ^THE
56500	CHARACTER THAT IS POINTED TO WHEN THE ^S COMMAND IS PRINTED, BUT NOT COMPARED
56600	(SO THE <NUMBER>^S<CHARACTER> COMMAND WILL WORK CORRECTLY.) ^THE
56700	COMMAND 3^S^H WILL MOVE THE POINTER TO THE THIRD OCCURRENCE OF "^H"
56800	AFTER THE CHARACTER THAT IS PRESENTLY POINTED TO.
56900	.BLANK 1
57000	^IF THERE ARE NO FURTHER OCCURENCES OF THE CHARACTER, THEN THE POINTER
57100	IS MOVED TO THE EXTREME RIGHT OF THE LINE.
57200	.BLANK 1
57300	.INDEX ^K (^A MODE)
57400	.INDENT -15
57500	^K	^THIS COMMAND IS THE SAME AS ^S EXCEPT THAT IT DELETES ALL OF THE
57600	CHARACTERS THAT IT PASSES OVER INSTEAD OF PRINTING THEM. ^IF THERE ARE
57700	NO FURTHER OCCURRENCES OF THE CHARACTER ON THE LINE, THEN THIS COMMAND
57800	WILL BE IGNORED INSTEAD OF DELETING THE REST OF THE LINE. (^TO DELETE
57900	THE REST OF THE LINE USE 999^D.) ^AS WITH THE ^D COMMCND, THE LAST THREE
58000	CHARACTERS DELETED WILL BE TYPED BETWEEN DOUBLE BACKSLASHES.
58100	.BLANK 1
58200	.INDEX ^L (^A MODE)
58300	.INDENT -15
58400	^L	^THIS COMMAND PRINTS THE REMAINDER OF THE LINE TO THE RIGHT OF
58500	THE PRESENT POINTER POSITION, PRINTS A <RETURN><LINE FEED>, PRINTS
58600	THE LINE AGAIN, AND CONTINUES IN INTRA-LINE EDIT MODE, WITH THE POINTER
58700	POINTING TO THE FIRST CHARACTER IN THE LINE.
58800	.BLANK 1
58900	.INDEX ^P (^A MODE)
59000	.INDENT -15
59100	^P	^THIS COMMAND DOES ALL THAT THE ^L COMMAND DOES EXCEPT AFTER IT TYPES
59200	THE LINE NUMBER IT MOVES THE POINTER TO THE RIGHT, PRINTING THE CHARACTERS
59300	THAT IT PASSES OVER UNTIL THE POINTER IS IN THE SAME POSITION THAT IT WAS
59400	IN BEFORE THE ^P COMMAND.
59500	.BLANK 1
59600	.INDEX ^J (^A MODE)
59700	.INDENT -15
59800	^J	^THIS COMMAND INSERTS A <RETURN><LINEFEED> AT THE PLACE THE POINTER
59900	IS CURRENTLY POINTING AND THEN CONCATENATES THE PORTION OF THE LINE
60000	TO THE RIGHT OF THE POINTER ONTO THE START OF THE NEXT LINE. ^THE POINTER
60100	IS LEFT POINTING AT THE START OF THE NEXT LINE. ^THE CURRENT LINE WILL BE
60200	SET TO THE NEW LINE NUMBER (I.E., THE LINE NUMBER OF THE LINE WHICH JUST
60300	GOT TEXT ADDED TO IT AT THE BEGINNING.) ^THIS COMMAND IS INTENDED
60400	TO BE USEFUL PRINCIPALLY IN HAND JUSTIFYING TEXT.
60500	.BLANK 1
60600	^THE ERROR *^^LINE TOO LONG\\* WILL BE GIVEN IF THE NEW LINE CREATED IS
60700	MORE THAN 147 CHARACTERS LONG. ^THE ERROR *^^NO NEXT LINE\\* WILL BE GIVEN
60800	IF THIS LINE IS THE LAST ONE ON THE PAGE. ^EITHER OF THESE ERRORS WILL
60900	CAUSE THE ^J COMMAND TO BE IGNORED, AND THE LINE WILL BE TYPED
61000	UP TO THE PRESENT POSITION OF THE POINTER AND ^STOPGAP WILL WAIT FOR
61100	FURTHER INTRA-LINE EDIT COMMANDS.
61200	
61300	.BLANK 1
61400	.INDEX ^E (^A MODE)
61500	.INDENT -15
61600	^E	^SETS ^^EXPERT\\ MODE (SEE __^^EXPERT)\\
61700	
61800	.BLANK 1
61900	.INDEX ^N (^A MODE)
62000	.INDENT -15
62100	^N	^SETS ^^NOVICE\\ MODE (SEE __^^NOVICE)\\
62200	
62300	.LEFT MARGIN 0
62400	.PARAGRAPH
62500	^ALL OTHER COMMANDS IN INTRA-LINE EDIT MODE WILL BE IGNORED 
62600	BUT WILL RING THE BELL. ^NO COMMAND
62700	IS ECHOED, SO DON'T GO TYPING KEYS WILDLY IF YOU THINK YOUR COMMANDS ARE
62800	BEING IGNORED.
62900	.BLANK 2
63000	.TEST PAGE 5
63100	.INDEX ^X (E^XPAND) ^COMMAND
63200	^X -- E^XPAND
63300	.PARAGRAPH
63400	^THIS COMMAND IS USED TO APPEND TEXT TO THE END OF A LINE OR
63500	LINES. ^THE FORM IS:
63600	.BLANK 1
63700	.CENTER
63800	^X<TEXT>$<RANGE>     (<TEXT>$ IS OPTIONAL)
63900	.PARAGRAPH
64000	^THE TEXT ARGUEMENT IS OPTIONAL BUT CAN BE INCLUDED TO APPEND
64100	THE TEXT TO THE END OF THE LINE UNDER EXPANSION THEN GETS READY
64200	TO INPUT MORE TEXT. ^THE TEXT IS TERMINATER BY A <RETURN> BUT
64300	AN <ALTMODE> MAY BE TYPED TO ABORT THE EXPANSION. ^IF THE
64400	TEXT HAS BEEN TYPED BEFORE AND YOU WANT IT TO BE REUSED, SIMPLY
64500	LEAVE IT OUT (BUT TYPE THE $).
     
00100	
00200	.SUBTITLE ^DISK ^CHECK ^FEATURE
00300	.PAGE
00400	.INDEX ^DISK ^CHECKING
00500	.CENTER
00600	^^THE DISK CHECK FEATURE\\
00700	.PARAGRAPH
00800	^THE RECOPYING PROCESS REQUIRES THAT LARGE AMOUNTS OF DISK SPACE BE
00900	AVAILABLE. ^AS THIS IS NOT ALWAYS THE CASE, ^STOPGAP
01000	HAS A FEATURE WHERE THE AVAILABILITY OF DISK BLOCKS IS TESTED BEFORE
01100	EACH OUTPUT ATTEMPT.
01200	.PARAGRAPH
01300	^USUALLY, THERE ARE ENOUGH FREE DISK BLOCKS, SO THE OUTPUT WILL BE DONE
01400	WITHOUT ANY INTERVENTION BY THE USER. ^OCCASIONALLY, HOWEVER, THE NUMBER
01500	OF FREE BLOCKS WILL DROP BELOW THE MARGIN THAT ^STOPGAP SETS. (^THIS IS
01600	PRESENTLY 6). ^IN THIS CASE, THE FIRST TIME THAT IT HAPPENS, A MESSAGE
01700	IS TYPED TO THE USER WITH INSTRUCTIONS.
01800	.PARAGRAPH
01900	^AFTER THE MESSAGE, THE MESSAGE "^^WELL? ?\\" IS TYPED AND ^STOPGAP WILL WAIT
02000	FOR YOU TO TYPE A SINGLE LETTER COMMAND. ^TYPE EITHER ^X, ^B, ^S, OR ^T AND
02100	FOLLOW THE CHARACTER BY A <RETURN>.
02200	.LEFT MARGIN 8
02300	.TAB STOPS 8
02400	
02500	.BLANK 2
02600	.INDEX ^X (^DISK ^CHECK)
02700	.INDENT -8
02800	^X	SAYS "DO THE OUTPUT, AND DON'T BOTHER ME". ^THIS EQUIVALENT TO SAYING
02900	__^^NOCHECK\\, AND THE RESULTS WILL BE THE SAME AS IN THE DAYS PRIOR
03000	TO THE INSTALLATION OF THE DISK CHECK FEATURE; (I.E., UNLESS THE USER IS
03100	VERY LUCKY, THE MESSAGE *^^DEVICE OUTPUT ERROR\\* WILL BE TYPED AND THE
03200	EDIT WILL BE LOST).
03300	.BLANK 1
03400	.INDEX ^T (^DISK ^CHECK)
03500	.INDENT -8
03600	^T 	SAYS "^TEST THE DISK NOW, AND IF THERE IS ROOM, DO THE OUTPUT". ^IF
03700	THERE IS DISK AVAILABLE NOW, THEN THE OUTPUT WILL BE DONE. ^IF THIS ALLOWS
03800	THE COMPLETION OF THE ^STOPGAP COMMAND THAT WAS IN PROCESS AT THE TIME THE
03900	DISK RAN OUT, THEN ^STOPGAP
04000	WILL TYPE WHATEVER IS APPROPRIATE AND RETURN TO COMMAND MODE. ^IF THE
04100	TEST WAS SUCCESSFUL, BUT AFTER WRITING ONE OR SEVERAL BLOCKS ONTO THE DISK,
04200	YOU RUN OUT OF ROOM AGAIN, THE MESSAGE ^^"WAITING#AGAIN"\\ AND
04300	"^^WELL? ?\\" WILL BE TYPED, AND YOU MUST TYPE EITHER ^X, ^B, ^S, OR ^T AGAIN. ^IF YOU TYPE
04400	^T AND THERE IS NOT ENOUGH ROOM, THE PROGRAM WILL RESPOND BY SIMPLY
04500	TYPING ANOTHER "^^WELL? ?\\".
04600	.BLANK 1
04700	.INDEX ^B (^DISK ^CHECK)
04800	.INDENT -8
04900	^B	SAYS TO TYPE THE NUMBER OF FREE BLOCKS LEFT ON THE DISK, AND THEN DO
05000	THE SAME AS FOR A ^T COMMAND.
05100	.BLANK 1
05200	.INDEX ^S (^DISK ^CHECK)
05300	.INDENT -8
05400	^S	SAYS TO SLEEP UNTIL SPACE APPEARS OR UNTIL YOU TYPE SOMETHING.
05500	^A ^C^R IS TYPED EVERY SECOND TO SHOW YOU IT IS STILL ALIVE.
05600	.BLANK 1
05700	.LEFT MARGIN 0
05800	.PARAGRAPH
05900	^AFTER YOU'VE RUN OUT OF DISK ONCE, THE MESSAGE "^^WAITING#AGAIN\\" WILL
06000	BE TYPED WHENEVER ^STOPGAP RUNS OUT OF ROOM. ^WHEN THIS MESSAGE IS TYPED
06100	YOU MUST RESPOND WITH ONE OF THE FOUR COMMANDS ABOVE.
06200	.INDEX ^ALTERNATE ^DEVICES
06300	.PARAGRAPH
06400	^NORMALLY, ^STOPGAP WORKS ON DISK FILES, BUT SINCE DISK SPACE IS SOMETIMES
06500	SCARCE, THERE IS A CAPABILITY IN ^STOPGAP TO USE OTHER DEVICES.
06600	.INDEX ^^IN
06700	.INDEX OUT\\
06800	.PARAGRAPH
06900	^IF THE LOGICAL NAMES ^^IN\\ OR ^^OUT\\ CORRESPOND TO ANY PHYSICAL DEVICE
07000	(THAT IS, IF SOME DEVICE HAS BEEN ASSIGNED LOGICAL NAME ^I^N OR ^^OUT\\ IN
07100	AN ASSIGN STATEMENT, E.G., ^^ASSIGN DTA4 IN\\), THEN THE DEVICE THAT IS
07200	SO ASSIGNED WILL BE USED FOR INPUT OR OUTPUT INSTEAD OF THE DISK. ^IF
07300	ONLY ONE OF THESE NAMES IS ASSIGNED, THEN THE DISK WILL BE ASSUMED FOR
07400	THE OTHER.
07500	.PARAGRAPH
07600	^THERE ARE SEVERAL LOGICAL RESTRICTIONS ON THE USE OF ALTERNATE DEVICES.
07700	^FIRST, THE RECOPYING PROCESS THAT WAS EXPLAINED AT THE BEGINNING IS RESTRICTED
07800	IF YOU USE ALTERNATE DEVICES. ^IF YOU TRY TO GO BACKWARDS IN YOUR FILE,
07900	YOU WILL MEET WITH LIMITED SUCCESS: ^STOPGAP KEEPS A LARGE BUFFER IN CORE,
08000	SO YOU CAN BACK UP A LITTLE. ^HOWEVER, IF YOU TRY TO BACK UP TO A POINT
08100	THAT LIES BEFORE THE IN-CORE BUFFER, ^STOPGAP WOULD NORMALLY GO FORWARD
08200	THROUGH THE FILE, RECOPYING TO DISK AND THEN WRAP AROUND THE END OF YOUR
08300	FILE AND START READING THE COPY UNTIL IT GETS TO THE POINT THAT YOU WANT.
08400	.PARAGRAPH
08500	^A LITTLE THOUGHT REVEALS THAT IF ALTERNATE DEVICES ARE USED, THEN ^STOPGAP
08600	WILL BE FRUSTRATED IN THE ATTEMPT TO USE THE OUTPUT DEVICE AS AN INPUT
08700	MEDIUM. ^FIRST, THIS REQUIRED A RE-ASSIGNMENT OF THE LOGICAL NAMES,
08800	WHICH UNDER PROGRAM CONTROL IS IMPOSSIBLE; SECOND, IT REQUIRES THE ABILITY
08900	TO DO INPUT FROM A DEVICE THAT MAY ONLY DO OUTPUT (E.G., THE PAPER TAPE
09000	PUNCH), OR POSSIBLY, OUTPUT TO SOMETHING LIKE THE CARD READER. ^THESE PROBLEMS
09100	MAY NOT BE INSURMOUNTABLE, BUT ^STOPGAP DOESN'T EVEN TRY. ^IF YOU DO TRY
09200	TO WRAP AROUND, YOU WILL BE FORCED TO EXIT.
09300	.PARAGRAPH
09400	^IF YOU GET TO A POINT WHERE YOU HAVE TO GO BACKWARDS IN YOUR FILE, YOU
09500	WILL BE FORCED TO EXIT. ^THE ONLY SOLUTION FOR THIS IS IF YOU PLAN TO
09600	USE ALTERNATE ^I/^O DEVICES, PLAN AHEAD. ^IF YOU DON'T TRY TO GO BACKWARDS,
09700	YOU'LL BE ALL RIGHT.
09800	.PARAGRAPH
09900	^WHEN YOU EXIT, OR WHEN YOU'RE FORCED TO EXIT, ^STOPGAP WILL FINISH
10000	COPYING YOUR FILE TO THE OUTPUT DEVICE, AND THEN, IF THERE ARE NO ERRORS,
10100	IT WILL ATTEMPT TO DELETE YOUR SOURCE FILE FROM THE INPUT DEVICE. (^EXCEPT
10200	IF IN THE ^E COMMAND YOU GIVE THE OUTPUT FILE A NEW NAME). ^IF YOU'RE THE
10300	SUSPICIOUS TYPE, YOU CAN PREVENT ^STOPGAP FROM DELETING THE SOURCE FILE
10400	IN SEVERAL WAYS. ^FIRST, LET "^I^N" BE A NON-DIRECTORY DEVICE, E.G., MAGTAPE,
10500	^^PTR\\, OR ^^CDR\\ (ALTHOUGH THE USE OF THE ^^CDR\\ FOR THIS PURPOSE
10600	IS DISCOURAGED). ^ALSO, YOUR FILE COULD BE ON A WRITE-LOCKED DECTAPE.
10700	^FINALLY, IF DISK IS YOUR INPUT DEVICE, THEN TO SAVE THE FILE YOU MUST DO
10800	A RENAME IN THE ^E COMMAND.
10900	.PARAGRAPH
11000	^THERE REALLY IS NO POINT IN SAVING THE OLD FILE (UNLESS YOU WOULD DO
11100	SO OTHERWISE) SINCE THE DEVICE "^^OUT\\ WILL HAVE FAITHFULLY UPDATED COPY
11200	OF THE SOURCE.
11300	.PARAGRAPH
11400	^LET ME MAKE A BRIEF COMMENT ABOUT THE SELECTION OF ALTERNATE DEVICES.
11500	^DISK, OF COURSE, WORKS. ^SOMETIMES IT IS NOT REALIZED THAT DISK CAN BE
11600	USED FOR ONE OF THE ALTERNATE DEVICES. ^THE IS ENCOURAGED IN FACT
11700	INSOFAR AS THERE IS ENOUGH DISK.
11800	.PARAGRAPH
11900	^DECTAPE ALSO WORKS. ^HOWEVER, AS A PARTICULAR CAUTION, NEVER TRY TO
12000	ASSIGN THE SAME DECTAPE AS ^I^N AND ^^OUT\\, AND IF POSSIBLE, AVOID
12100	USING TWO DECTAPES AS ^I^N AND ^^OUT\\. ^TWO DECTAPES DO WORK, BUT THEY
12200	ARE VERY, VERY SLOW.
12300	.PARAGRAPH
12400	^FINALLY, IF YOU HAVE TO EDIT A VERY LARGE FILE, ONE OR TWO MAGTAPES
12500	CAN BE USED BY THEMSELVES OR IN CONJUNCTION WITH A DECTAPE OR DISK.
12600	.PARAGRAPH
12700	^DEVICES SUCH THE ^^CDR, PTP \\AND ^^PTR\\ ARE DISCOURAGED,
12800	ALTHOUGH THERE IS REASON TO BELIEVE THAT THEY MIGHT WORK.
12900	.PARAGRAPH
13000	^FINALLY, ALTHOUGH YOU SHOULDN'T GET ZAPPED BY THE EDITOR NOW THAT THE
13100	DISK CHECK FEATURE IS INSTALLED, IT MUST BE SAID THAT ONE WAY TO AVOID
13200	BOMBING OUT OF THE EDITOR IS TO KEEP YOUR FILES SMALL.
13300	.BLANK 1
13400	^ONE WORD ABOUT THE DISK CHECK FEATURE AND ALTERNATE DEVICES: IF THE DEVICE
13500	"^^OUT\\" IS ASSIGNED AND IS NOT THE DISK, THEN THE DISK CHECK FEATURE WILL
13600	BE SHUT OFF; THEREBY SAVING YOU THE OVERHEAD OF CHECKING THE DISK, AND
13700	POSSIBLY EVEN WAITING UNTIL DISK BECAME AVAILABLE BEFORE DOING OUTPUT TO
13800	MAGTAPE. ^IF ^^OUT\\ IS NOT ASSIGNED (THEN IT DEFAULTS TO ^^DSK\\) OR
13900	IF ^^OUT\\ IS ASSIGNED AS THE DISK, THEN THE DISK CHECK FEATURE WILL NORMALLY
14000	BE ACTIVE.
14100	.SUBTITLE ^ERROR ^RECOVERY
14200	.PAGE
14300	.INDEX ^ERROR ^RECOVERY
14400	.CENTER
14500	^^ERROR RECOVERY\\
14600	.PARAGRAPH
14700	^OCCASIONALLY IT MAY HAPPEN THAT WHILE IN THE PROCESS OF EDITING A FILE,
14800	SOME CONDITION WILL OCCUR THAT WILL CAUSE THE EDIT TO BE LOST. ^IN THIS
14900	CASE, YOU CAN BE ASSURED THAT AT LEAST THE ORIGINAL FILE WILL BE INTACT.
15000	.PARAGRAPH
15100	^IN ADDITION TO THIS ASSURANCE; WHICH SAYS ESSENTIALLY THAT YOU'LL NEVER
15200	BE WORSE OFF THAN WHEN YOU STARTED, THERE ARE OTHER THINGS THAT THE USER
15300	CAN DO WHICH MAY LEAD TO A MORE COMPLETE RECOVERY.
15400	.PARAGRAPH
15500	^AS MENTIONED EARLIER IN THE DISCUSSION OF RECOPYING, THE EDITOR COPIES
15600	UPDATES TO A SECOND FILE. ^THUS, THERE IS SOME FILE, WHICH WILL, IF IT
15700	IS COMPLETE, CONTAIN A MORE RECENT VERSION OF THE FILE; I.E., IT WILL
15800	CONTAIN SOME OF THE CORRECTIONS THAT YOU HAVE MADE.
15900	.PARAGRAPH
16000	^THIS FILE WILL HAVE A VERY STRANGE LOOKING NAME, AND A ^^TMP\\ EXTENSION.
16100	^TO FIND THE FILE, TAKE A DIRECTORY OF YOUR DISK AREA AND SCRUTINIZE
16200	THE FILES THERE. ^TYPICALLY, A FILE NAME LIKE ^^RD1TEH.TMP\\ MIGHT
16300	BE AN EDITOR TEMPORARY FILE. (^FILES WITH NAMES CONTAINING A THREE DIGIT
16400	NUMBER IN THE FIRST THREE CHARACTERS LIKE 009^^PIP.TMP\\ OR
16500	^^014EDT.TMP\\ ARE NOT THE ONES YOU'RE LOOKING FOR).
16600	.PARAGRAPH
16700	^IF YOU HAVE ANY DOUBTS ABOUT WHETHER YOU'VE CHOSEN THE RIGHT FILE, ^^RENAME\\
16800	IT TO SOME USEFUL NAME BEFORE DELETING YOUR SOURCE FILE. ^AS ANOTHER
16900	HINT FOR FINDING THE TEMPORARY EDIT FILE, IT WILL BE ABOUT THE SAME
17000	SIZE AS THE SOURCE FILE.
17100	.PARAGRAPH
17200	^THE TEMPORARY EDIT FILE REPRESENTS THE BEST RECOVERY THAT YOU CAN MAKE.
17300	^IF YOU FIND THAT FOR SOME REASON YOU ARE CONSTANTLY LOSING YOUR EDITS,
17400	THE ^Q COMMAND IS RECOMMENDED.
     
00100	
00200	.SUBTITLE ^GLOSSARY
00300	.PAGE
00400	.FIGURE 5
00500	.INDEX ^GLOSSARY
00600	.CENTER
00700	^^GLOSSARY\\
00800	.CENTER
00900	--------
01000	.BLANK 2
01100	.TAB STOPS 6
01200	.LEFT MARGIN 6
01300	.INDENT -6
01400	^^CCL\\	^CONCISE ^COMMAND ^LANGUAGE. ^THIS IS A PROGRAM THAT ALLOWS
01500	AN EXTENSION OF THE MONITOR LEVEL COMMANDS. ^INCLUDED IN THIS EXTENSION
01600	ARE THE COMMANDS ^CREATE AND ^EDIT, WHICH DIRECT ^STOPGAP TO CREATE
01700	A NEW FILE, OR EDIT AN EXISTING FILE, RESPECTIVELY. ^ALSO INCLUDED IN
01800	^^CCL\\ ARE THE COMMANDS ^COMPILE, ^LOAD, ^EXECUTE AND ^DEBUG. ^FOR FURTHER
01900	DETAILS CONSULT THE ^^PDP-10 T\\IME-^SHARING ^MONITOR ^MANUAL (^^DEC T9
02000	MTZA D) A\\DDENDUM 1.
02100	.BLANK 2
02200	.INDENT -6
02300	^^CUSP\\	^COMMONLY ^USED ^SYSTEM ^PROGRAMS. ^THESE ARE THE
02400	PROGRAMS ON THE SYSTEM AREA (^^SYS).\\ ^SUCH PROGRAMS INCLUDE THE EDITOR ITSELF,
02500	THE ^^FORTRAN\\ COMPILER (^F40), THE ASSEMBLER (^^MACRO), PIP,\\ THE
02600	PERIPHERAL INTERCHANGE PROGRAM, AND OTHER PROGRAMS OF GENERAL USEFULNESS.
02700	.BREAK
02800	.SUBTITLE ^INDEX
02900	.PAGE
03000	.LEFT MARGIN 0
03100	.RIGHT MARGIN 80
03200	.INDEX ^INDEX
03300	.PRINT INDEX