Trailing-Edge
-
PDP-10 Archives
-
decus_20tap2_198111
-
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