Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50374/sosug.rno
There are no other files named sosug.rno in the archive.
.SPACING 1
.FILL
.JUSTIFY
.FIGURE 15
.CENTER
^^SOS\\
.B 2;.C
(AN ADVANCED LINE-ORIENTED TEXT EDITOR)
.B 2;.C
^USER'S ^GUIDE
.FG 15;.C
^THIS DOCUMENT REFLECTS VERSION 12 OF THE SOFTWARE.
.PAGE
.FIGURE 15
^REPRINTED WITH THE PERMISSION OF ^APPLIED ^DATA ^RESEARCH, ^INC..
.B 5
^COPYRIGHT (^C) ^OCTOBER 1971 BY ^APPLIED ^DATA ^RESEARCH, ^INC.
^ALL RIGHTS RESERVED. ^THIS MANUAL, OR PARTS THEREOF, MAY NOT BE
REPRODUCED IN ANY FORM WITHOUT THE WRITTEN PERMISSION OF ^APPLIED
^DATA ^RESEARCH, ^INC.
.PAGE
.LEFT MARGIN 0
.RIGHT MARGIN 70
.CENTER
^^CONTENTS\\
.BLANK 3
.TAB STOPS 67
.NOFILL
.NOJUSTIFY
	^PAGE
^^INTRODUCTION TO SOS	 5
TYPOGRAPHIC CONVENTIONS	 5
COMMAND FORMAT NOTATION	 6
.BLANK 1
.TAB STOPS 15,67
PART I	SOS SIMPLIFIED
.BLANK 1
CHAPTER 1	INPUT MODE	 7
.BLANK 1
.LEFT MARGIN 8
.TAB STOPS 15,67
1.1	ACCESSING SOS	 7
1.2	STORING THE FILE: THE END COMMAND - "E"	 8
1.3	CORRECTING ERRORS	 8
.BLANK 1
.INDENT -8
CHAPTER 2	EDIT MODE	10
.BLANK 1
2.1	ENTERING EDIT MODE	10
2.2	INDICATING LINE NUMBERS	10
2.3	EDIT MODE COMMANDS\\	11
2.3.1	^THE ^DELETE ^COMMAND - "^D"	11
2.3.2	^THE ^INSERT ^COMMAND - "^I"	11
2.3.3	^THE ^REPLACE ^COMMAND - "^R"	12
2.3.4	^THE ^PRINT ^COMMAND - "^P"	12
2.3.5	^THE ^FIND ^COMMAND - "^F"	12
2.3.6	^THE ^ALTER ^COMMAND (^INTRALINE ^EDIT ^MODE) - "^A"	13
2.3.7	^THE ^SUBSTITUTE ^COMMAND - "^S"	15
2.3.8	^THE ^COPY ^COMMAND - "^C"	16
2.3.9	^THE ^TRANSFER ^COMMAND - "^T"	16
2.3.10	^THE ^NUMBER ^COMMAND - "^N"	16
2.3.11	^THE ^QUIT ^COMMAND (^DELETE THE ^ENTIRE ^EDIT) - "^Q"	17
2.3.12	^THE ^END ^COMMAND (^EXTENSION) - "^E"	17
2.3.13	^THE ^SAVE ^WORLD ^COMMAND - "^W"	17
2.3.14	^THE ^GO ^COMMAND - "^G"	18
.BLANK 1
.INDENT -8
^^CHAPTER 3	READ-ONLY MODE	19
.BLANK 1
.INDENT -8
PART II	SOS ADVANCED
.BLANK 1
.INDENT -8
CHAPTER 4	FILES	20
.BLANK 1
4.1	BACKUP AND TEMPORARY FILES	20
4.2	STANDARD TEXT FILES	21
.BLANK 1
.INDENT -8
CHAPTER 5	LINE NUMBERS, PAGES	22
.BLANK 1
.INDENT -8
CHAPTER 6	EDIT MODE COMMANDS	23
.BLANK 1
6.1	THE MARK COMMAND - "M"	23
6.2	THE DELETE COMMAND -"D"	24
6.3	THE INSERT COMMAND - "I"	25
6.4	THE REPLACE COMMAND - "R"	27
6.5	THE PRINT COMMAND - "P"	27
6.6	THE LIST COMMAND - "L"	29
6.7	THE FIND COMMAND - "F"	29
6.8	THE ALTER COMMAND (INTRALINE EDIT MODE) - "A"	31
6.9	THE EXTEND COMMAND - "X"	35
6.10	THE SUBSTITUTE COMMAND - "S"	36
6.11	THE COPY COMMAND - "C"	38
6.12	THE TRANSFER COMMAND - "T"	39
6.13	THE JOIN COMMAND - "J"	40
6.14	THE NUMBER COMMAND - "N"	40
6.15	THE JUSTIFY COMMAND - "JU"	41
6.16	THE JUSTIFY LEFT COMMAND - "JL"	43
6.17	THE JUSTIFY RIGHT COMMAND - "JR"	43
6.18	THE JUSTIFY CENTER COMMAND - "JC"	43
6.19	THE JUSTIFY WORD COMMAND - "JW"	43
6.20	THE SET COMMAND - "__"	44
6.21	THE GIVE INFORMATION COMMAND - "="	44
6.22	LINE CONTENTS SPECIFICATION - ALL COMMANDS	45
6.23	THE QUIT COMMAND - "Q"	47
6.24	THE END COMMAND - "E"	47
6.25	THE SAVE WORLD COMMAND - "W"	49
6.26	THE GO COMMAND - "G"	49
.BLANK 1
.INDENT -8
CHAPTER 7	READ-ONLY MODE	49
.BLANK 1
.INDENT -8
CHAPTER 8	INDIRECT COMMANDS	50
.BLANK 1
.INDENT -8
CHAPTER 9	UPPER AND LOWER CASE REPRESENTATION	50
.BLANK 1
9.1	C128 AND C64 MODES	50
9.2	UPPER AND LOWER CASE	51
9.3	COMBINING MODES AND CASES	51
9.4	MODEL 37 TELETYPE: 37 MODE	53
9.5	ASCERTAINING MODE AND CASE: THE GIVE
	###INFORMATION COMMAND	53
9.6	SPECIAL CONSIDERATIONS: FIND AND
	   SUBSTITUTE COMMANDS	54
9.7	SPECIAL "MATCHING" CHARACTERS: FIND AND
	   SUBSTITUTE COMMANDS	54
.BLANK 2
.LEFT MARGIN 0
APPENDIX A:	ERROR MESSAGES	57
APPENDIX B:	SUMMARY OF COMMANDS	59
APPENDIX C:	DEFAULT VALUES	62
APPENDIX D:	ASCII CHARACTER TABLE\\	63
.PAGE
.FILL
.JUSTIFY
.CENTER
^^INTRODUCTION TO SOS\\
.BLANK 2
^^SOS\\ IS A LINE-ORIENTED TEXT EDITOR THAT OPERATES ONLY ON
SEQUENCED FILES.  ^^SOS\\ PROVIDES THE FOLLOWING FEATURES:
.BLANK 1
.LEFT MARGIN 10
.INDENT -4
1.##^SIMPLE, BUT POWERFUL, COMMANDS.  ^EACH COMMAND USUALLY
CONSISTS OF A SINGLE-LETTERED "VERB," FOLLOWED BY A NUMBER
OR RANGE OF NUMBERS INDICATING THE LINE(S) ON WHICH THE COMMAND
IS TO PERFORM.
.BLANK 1
.INDENT -4
2.##^AN "INDIRECT COMMAND" FILE.  ^THE USER CAN PUT A FREQUENTLY-USED
SEQUENCE OF COMMANDS INTO A FILE.  ^WHEN THE FILE IS CALLED, ^^SOS\\
WILL THEN PERFORM THE COMMANDS.
.BLANK 1
.INDENT -4
3.##^THE FULL ^^ASCII\\ CHARACTER SET, INCLUDING LOWER-CASE
CHARACTERS.
.BLANK 1
.INDENT -4
4.##^A SEARCH FACILITY.  ^THIS ENABLES THE USER TO SEARCH THROUGH
A FILE WITH STRINGS OF TEXT INSTEAD OF LINE NUMBERS.
.BLANK 1
.INDENT -4
5.##^TEXT-JUSTIFYING COMMANDS.
.BLANK 1
.LEFT MARGIN 0
^THIS MANUAL IS DIVIDED INTO TWO PARTS:
^SIMPLIFIED USES OF COMMON EDITING COMMANDS ARE PRESENTED
IN ^PART ^I, WHICH SHOULD BE READ IN ITS ENTIRETY BEFORE ANY
TEXT-EDITING IS ATTEMPTED.  ^PART ^^II\\, ON THE OTHER HAND,
DESCRIBES EVERY COMMAND IN GREATER DETAIL, EMPHASIZING MORE 
SOPHISTICATED USAGE.  ^MOST OF THIS ADVANCED MATERIAL IS
UNNECESSARY FOR ORDINARY EDITING PROBLEMS; THERE ARE INSTANCES,
HOWEVER, IN WHICH THESE COMMANDS CAN BE QUITE USEFUL.
.BLANK 3
.CENTER
^^TYPOGRAPHIC CONVENTIONS\\
.BLANK 2
^THE FOLLOWING TYPOGRAPHIC CONVENTIONS ARE USED THROUGHOUT
THE ^^SOS\\ ^MANUAL.
.BLANK 1
.LEFT MARGIN 10
.INDENT -4
*###^IN AN EXAMPLE, TEXT WHICH IS UNDERSCORED REPRESENTS
INFORMATION TYPED BY THE USER.  ^TEXT WHICH IS NOT UNDERSCORED
IS PRODUCED BY ^^SOS\\ OR THE ^^DEC\\SYSTEM\\-10 ^MONITOR.
.BLANK 1
.INDENT -4
*###^THE (^^CR\\) NOTATION APPEARING AFTER MOST LINES IN THE EXAMPLES
REPRESENTS THE CARRIAGE RETURN KEY (^^RETURN\\) ON THE TELETYPE
KEYBOARD.  ^THE ^^DEC\\SYSTEM\\-10 SUPPLIES A LINEFEED WITH EACH CARRIAGE RETURN.
.BLANK 1
.INDENT -4
*###^THE (^^LF\\) NOTATION REPRESENTS THE LINEFEED KEY (^^LINEFEED\\)
ON THE TELETYPE KEYBOARD.
.BLANK 1
.INDENT -4
*###^THE (^^FF\\) NOTATION INDICATES A FORMFEED OBTAINED BY
DEPRESSING ^^CTRL-L\\ (SEE "_^CHARACTER" BELOW).
.BLANK 1
.INDENT -4
*####$##IS USED TO INDICATE THE ^^ALTMODE\\ KEY.  ^NOTE THAT
^^SOS\\ ONLY PRINTS THE $ WITHOUT THE CIRCLE.
.BLANK 1
.INDENT -4
*###_^CHARACTER WITHIN A CIRCLE REPRESENTS THE CONTROL (^^CTRL\\)
KEY AND AN ALPHABETIC CHARACTER - E.G., #_^^U#.  ^NOTE THAT
^^SOS\\ DOES NOT PRINT THE CIRCLE.  ^TO OBTAIN THE CONTROL
CHARACTER, DEPRESS THE SPECIFIED ALPHABETIC WHILE HOLDING DOWN
THE ^^CTRL\\ KEY.  ^THE ^^DEC\\SYSTEM\\-10 WILL PRINT AN UP-ARROW AND
THE SPECIFIED CHARACTER TO INDICATE THAT IT HAS RECEIVED A
CONTROL CHARACTER.
.BLANK 1
.INDENT -4
*###^A VERTICAL BAR###REPRESENTS THE CONDITION "OR"
- E.G., ^^LMAR##RMAR\\ MEANS EITHER THE LEFT OR RIGHT MARGIN.
.BLANK 3
.CENTER
^^COMMAND FORMAT NOTATION\\
.BLANK 1
.INDENT -10
^THE FOLLOWING NOTATION IS USED IN ^^SOS\\ COMMAND FORMATS:
.BLANK 1
.INDENT -4
*###^COMMAND NAMES APPEAR IN CAPITAL LETTERS; ARGUMENTS IN
LOWER CASE.
.BLANK 1
.INDENT -4
*###^THERE ARE NO SPACES BETWEEN ^^SOS\\ COMMANDS NAMES AND ARGUMENTS.
.BLANK 1
.INDENT -4
*###^ANGLE BRACKETS <> ENCLOSING LOWER-CASE LETTERS
INDICATE A STRING OF TEXT CONSISTING OF ANY CHARACTERS ON THE
TELETYPE (AS LONG AS THESE CHARACTERS SATISFY
THE SPECIFIED CONDITIONS) - E.G., <RANGE> OR <FILENAME>.
.BLANK 1
.INDENT -4
*###^BRACKETS [] INDICATE AN OPTION WHICH MAY BE USED OR OMITTED AS DESIRED.
.PAGE
.TITLE -^^SOS\\-
.CENTER
^^PART I
.BLANK 1
.CENTER
SOS SIMPLIFIED
.BLANK 3
.CENTER
CHAPTER 1
.BLANK 1
.CENTER
INPUT MODE
.BLANK 3
.LEFT MARGIN 0
1.1##ACCESSING SOS\\
.BLANK 1
^THE USER CAN CALL ^^SOS\\ BY TYPING THE FOLLOWING COMMAND
TO THE MONITOR:
.BLANK 1
.INDENT 10
_.^^R SOS(CR)\\
.BLANK 1
.INDENT 15
OR
.BLANK 1
.INDENT 10
_.^^SOS(CR\\)
.BLANK 1
^^SOS\\ THEN WILL REQUEST THE NAME OF A FILE BY PRINTING "^^FILE\\=";
THE USER-SUPPLIED NAME IS TYPED ON THE SAME LINE AS THIS REQUEST.
.BLANK 1
.TAB STOPS 35
.INDENT 10
^^FILE\\=<FILENAME>(^^CR\\)	^^FILE\\:
.BLANK 1
<FILENAME> CONSISTS OF A 1-6 CHARACTER ALPHANUMERIC "NAME"
(REQUIRED), WHICH MAY BE FOLLOWED BY A PERIOD AND A 1-3 CHARACTER
EXTENSION (OPTIONAL).
.BLANK 1
^ALTERNATIVELY, THE USER MAY TYPE THE FILENAME DIRECTLY ON THE
COMMAND LINE AND OMIT THE INITIAL CONVERSATION WITH ^^SOS\\:
.BLANK 1
.INDENT 10
_.^^SOS\\ <FILENAME>(^^CR\\)	_.^^SOS\\-<FILENAME>
.BLANK 1
^THE FOLLOWING EXAMPLES ARE ALL EQUIVALENT WAYS TO CALL ^^SOS\\:
.BLANK 1
.INDENT 10
_.^^SOS(CR)
.INDENT 10
FILE=EXAMPL(CR)
.BLANK 1
.INDENT 15
\\OR^^
.BLANK 1
.INDENT 10
_.^^R SOS(CR)
.INDENT 10
FILE=EXAMPL(CR)
.BLANK 1
.INDENT 15
\\OR^^
.BLANK 1
.INDENT 10
_.SOS EXAMPL(CR)\\
.BLANK 1
^NOTE THAT "^^.R SOS EXAMPL(CR)\\" IS ILLEGAL.
.BLANK 1
^IF THERE IS NO DISK FILE WITH THE SUPPLIED NAME,
^^SOS\\ WILL INDICATE THAT IT IS PREPARED TO ACCEPT INPUT
BEGINNING WITH LINE 100 BY PRINTING
.BLANK 1
.INDENT 10
^^FILE NOT FOUND-INPUT.	INPUT:\\
.INDENT 10
00100
.BLANK 1
^AFTER PRINTING THE LINE NUMBER, ^^SOS\\ WAITS FOR THE USER TO
TYPE A STRING OF TEXT FOLLOWED BY (^^CR); SOS\\ THEN PRINTS
THE NEXT LINE NUMBER, INCREMENTING BY 100 EACH
TIME.  ^WHEN THERE ARE NO MORE LINES TO INPUT, THE ^^ALTMODE\\
OR ^^ESCAPE\\ KEY (APPREVIATED##$#) SHOULD BE USED AFTER THE NEXT
LINE NUMBER IS PRINTED.  ^THE PRINTING OF SEQUENCE NUMBERS IS
TERMINATED, AND THE USER IS AT THE ^^SOS\\ COMMAND LEVEL AS
INDICATED BY THE ASTERISK IN THE LEFT MARGIN.
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
_.^^SOS EXAMPL(CR)
FILE NOT FOUND-INPUT
00100 THIS IS LINE 1.(CR)
00200 THIS IS LINE 2.(CR)
00300 #$
*
.FILL
.JUSTIFY
.LEFT MARGIN 0
.BLANK 3
1.2##^STORING THE FILE: THE END COMMAND - "E"\\
.BLANK 1
^INSTEAD OF EDITING IMMEDIATELY AFTER THE FILE IS CREATED,
THE USER MAY WANT TO STORE THE FILE ON THE DISK.  ^TO DO SO, HE
USES THE ^END COMMAND AS FOLLOWS:
.BLANK 1
.INDENT 10
*^^E(CR\\)
.BLANK 1
^THE FILE WILL BE STORED UNDER THE NAME ASSIGNED TO IT WHEN
^^SOS\\ WAS CALLED.  ^^SOS\\ THEN RETURNS THE USER TO 
MONITOR MODE BY PRINTING
.BLANK 1
.INDENT 10
^^EXIT\\
.BLANK 1
^THE ^E COMMAND IS ALSO USED AT THE END OF AN EDITING SESSION
(SEE ^SECTION 2.3.12); IF THE ^END COMMAND IS NOT USED,
THE UNEDITED COPY OF THE FILE WILL BE RETAINED, AND THE EDITED
COPY WILL BE LOST.
.BLANK 3
1.3##^^CORRECTING ERRORS\\
.BLANK 1
^TYPOGRAPHICAL ERRORS CAN BE CORRECTED IN AN INPUT LINE,
PROVIDED THEY ARE NOTICED BEFORE (^^CR\\) IS TYPED.
.BLANK 1
.LEFT MARGIN 7
.INDENT -4
1.##^^RUBOUT\\.  ^TO DELETE INDIVIDUAL CHATACTERS,
^RUBOUT\\ SHOULD BE DEPRESSED ONCE FOR EVERY CHARACTER BEING
DELETED, BACK TO AND INCLUDING THE ERROR.  ^THE DELETED
CHARACTERS ARE ENCLOSED IN SINGLE BACKSLACHES ("_\"):
.BLANK 1
.INDENT 3
00100 ^^THIS IS TI_\I_\HE FIRST LINE\\
.BLANK 1
^IN THE ABOVE EXAMPLE, THE USER TYPED ^^RUBOUT\\ ONCE AFTER 
HE TYPED THE "^I" OF "^^TI\\".  "_\^I" IS PRINTED TO INDICATE
THAT ^^SOS\\ DELETED THE "^I".  ^THE NEXT CHARACTER TYPED IN
(OTHER THAN ANOTHER ^^RUBOUT\\) IS ACCOMPANIED BY THE SECOND
BACKSLASH - "_\^H".
.BLANK 1
.INDENT -4
2.##^^CTRL-U\\.  ^TO DELETE THE ENTIRE INPUT LINE, STRIKE ^U
WHILE HOLDING DOWN THE ^^CTRL\\ KEY - #_^^U#.  ^^SOS\\ WILL
PERFORM A CARRIAGE RETURN/LINEFEED, BUT WILL NOT PRINT A
NEW LINE NUMBER; INSTEAD IT WILL WAIT FOR INPUT WHICH WILL BE 
ASSOCIATED WITH THE LAST NUMBER.
.BLANK 1
.INDENT 3
00100 ^^THIS IS TEH#_^U
.INDENT 3
THIS IS LINE 1.(CR)
.INDENT 3
00200\\
.PAGE
.CENTER
^^CHAPTER 2
.BLANK 1
.CENTER
EDIT MODE
.BLANK 3
.LEFT MARGIN 0
2.1##ENTERING EDIT MODE\\
.BLANK 1
^THERE ARE TWO WAYS TO ENTER EDIT MODE.  ^DURING THE
INPUT SEQUENCE, IF AN EXISTING FILE IS SPECIFIED, ^^SOS\\ WILL
RECOGNIZE THE FILENAME, PRINT AN ASTERISK, AND WAIT FOR USER
COMMANDS.
^ANY EDITING, THEN, IS PERFORMED ON THE NAMED FILE.
.BLANK 1
.INDENT 10
_.^^R SOS(CR)
.INDENT 10
FILE\\=<FILENAME>(^^CR)
.INDENT 10
EDIT.
.INDENT 10
*
.BLANK 1
.INDENT 15
\\OR^^
.BLANK 1
.INDENT 10
_.SOS\\ <FILENAME>(^^CR)
.INDENT 10
EDIT.\\
.INDENT 10
*
.BLANK 1
^TO COMPLETE THE EDITING OF A NEW FILE, ON THE OTHER HAND, THE
USER SHOULD STRIKE THE ^^ALTMODE\\ KEY (#$#)
AT THE END OF THE INPUT SEQUENCE; THIS PLACES HIM AT THE ^^SOS\\
COMMAND LEVEL.  ^HE CAN EITHER STORE THE FILE FOR SUBSEQUENT 
EDITING BY USING THE ^E COMMAND, OR ELSE HE CAN UTILIZE
ANY OF THE EDITING COMMANDS LISTED BELOW AND IN ^PART ^^II\\.
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
_.^^SOS EXAMPL(CR)
FILE NOT FOUND-INPUT
00100 THIS IS LINE 1.(CR)
00200 THIS IS LINE 2.(CR)
.BLANK 1
\\00600  $
*
.BLANK 3
.FILL
.JUSTIFY
.LEFT MARGIN 0
2.2##^^INDICATING LINE NUMBERS
.BLANK 1
SOS\\ RECOGNIZES CERTAIN ABBREVIATIONS WHICH CAN BE EMPLOYED
IN COMMANDS REQUIRING LINE NUMBERS.  ^THE ^PRINT COMMAND IS
USED IN THE FOLLOWING EXAMPLES TO ILLUSTRATE THESE ABBREVIATIONS:
.BLANK 1
.LEFT MARGIN 7
.INDENT -4
1.##^A COLON BETWEEN TWO NUMBERS IS USED TO INDICATE A RANGE OF
LINES BETWEEN, AND INCLUDING, THE TWO ENDPOINTS.
.BLANK 1
.INDENT 3
*^^P100:200(CR\\)	^PRINT LINES 100 THROUGH 200 
.BREAK
	INCLUSIVE.
.BLANK 1
.INDENT -4
2.##^A PERIOD IS USED TO REPRESENT THE CURRENT LINE, AS 
DETERMINED BY THE LAST COMMAND WHICH ACTUALLY SPECIFIED A
LINE.
.BLANK 1
.INDENT 3
*^^P0:(CR\\)	^PRINT LINE 0 THROUGH THE CURRENT
.BREAK
	LINE.
.BLANK 1
.INDENT -4
3.##^AN ASTERISK REPRESENTS THE LAST LINE OF THE FILE.
.BLANK 1
.INDENT 3
*^^P0:*(CR\\)	^PRINT ALL THE LINES OF THE FILE.
.BLANK 1
.INDENT 3
*^^P.:*(CR\\)	^PRINT THE CURRENT LINE THROUGH THE
.BREAK
	LAST LINE OF THE FILE.
.BLANK 3
.LEFT MARGIN 0
2.3##^^EDIT MODE COMMANDS\\
.BLANK 3
2.3.1##^THE ^DELETE ^COMMAND - "^D"
.BLANK 1
^THE ^D COMMAND CORRECTS AN ERROR BY DELETING AN ENTIRE LINE
OR LINES.
.BLANK 1
.TAB STOPS 35
.INDENT 10
*^^D200(CR\\)	^DELETE LINE 200.
.BLANK 1
.INDENT 10
*^^D100:200(CR\\)	^DELETE LINES 100 THROUGH 200
.BREAK
	INCLUSIVE.
.BLANK 3
2.3.2##^THE ^INSERT ^COMMAND - "^I"
.BLANK 1
^THE ^I COMMAND IS USED TO INDICATE THAT NEW LINES WILL BE
INSERTED, BEGINNING AT THE STATED SEQUENCE NUMBER.  ^THE LINE
INCREMENT IS 100 BY DEFAULT, UNLESS SPECIFICALLY CHANGED.
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
*^^I200(CR\\)	^ACCEPT INPUT LINES BEGINNING AT LINE 200,
WITH THE DEFAULT INCREMENT OF 100.
.BLANK 1
.INDENT -35
^THE INCREMENT IS CHANGED AS FOLLOWS:
.BLANK 1
.INDENT -25
*^^I200,50(CR\\)	^ACCEPT INPUT LINES BEGINNING WITH
LINE 200, USING THE INCREMENT OF 50.  ^THE DEFAULT INCREMENT
FOR SUBSEQUENT ^I COMMANDS IS 50.
.BLANK 1
.LEFT MARGIN 0
^IF THERE ALREADY IS A LINE WITH THE SPECIFIED SEQUENCE
NUMBER, ^^SOS\\ WILL DETERMINE A DIFFERENT LINE 
NUMBER FOR THE INSERT BY ADDING THE LINE NUMBER SPECIFIED IN THE
COMMAND TO THE CURRENT INCREMENT.  ^IF A LINE EXISTS BETWEEN THE
LINE SPECIFIED BY THE COMMAND AND THE NEXT LINE DETERMINED BY
THE INCREMENT (E.G., "*^^I200,50(CR\\)" AND LINE 210 EXISTS),
^^SOS\\ WILL CHOOSE A LINE NUMBER HALFWAY BETWEEN THESE TWO LINES
(I.E., LINE 205).  ^IF ANY SUBSEQUENT LINE BEING INSERTED
ALREADY EXISTS, OR IF AN EXISTING LINE IN THE FILE FALLS BETWEEN
TWO LINES DETERMINED BY THE ^INSERT COMMAND, THEN THE INSERTION
PROCESS WILL TERMINATE AND THE USER WILL RETURN TO ^^SOS\\ COMMAND
LEVEL.  ^THE SEQUENCE OF LINE NUMBERS MAY BE TERMINATED AT ANY 
TIME USING THE ^^ALTMODE\\ KEY, WHICH WILL RETURN THE USER TO
COMMAND LEVEL.
.BLANK 1
.INDENT 10
00200 ^^THIS IS INSERTED\\.
.INDENT 10
00250 #$
.INDENT 10
*
.BLANK 3
2.3.3##^THE ^REPLACE ^COMMAND - "^R"
.BLANK 1
^THE ^REPLACE COMMAND IS A COMBINATION OF THE ^DELETE AND ^INSERT
COMMANDS.
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
*^^R200(CR\\)	^DELETE LINE 200 AND ACCEPT INPUT BEGINNING
AT THAT LINE.
.BLANK 1
.INDENT -25
*^^R200:300,50(CR\\)	^DELETE LINES 200 THROUGH 300 INCLUSIVE,
AND ACCEPT INPUT TO BE INSERTED IN LINES 200 THROUGH 300, WITH AN
INCREMENT OF 50.
.BLANK 1
.LEFT MARGIN 0
^^SOS\\ RESPONDS WITH THE NUMBER OF THE FIRST LINE TO BE REPLACED.
.BLANK 3
2.3.4##^THE ^PRINT ^COMMAND - "^P"
.BLANK 1
^THE ^PRINT COMMAND TELLS ^^SOS\\ TO PRINT SPECIFIED LINES ON
THE USER'S TELETYPE.
.BLANK 1
.LEFT MARGIN 10
.TAB STOPS 35
*^^P(CR\\)	^PRINT ALL THE LINES OF THE FILE.
.BLANK 1
*^^P200(CR\\)	^PRINT LINE 200.
.BLANK 1
*^^P100:200(CR\\)	^PRINT LINES 100 THROUGH 200
.BREAK
	INCLUSIVE.
.BLANK 1
*^^P0:*(CR\\)	^PRINT ALL THE LINES OF THE FILE.
.BLANK 1
*^^P.:*(CR\\)	^PRINT THE CURRENT LINE THROUGH THE
.BREAK
	LAST LINE OF THE FILE.
.BLANK 1
.LEFT MARGIN 0
^IF ^^SOS\\ IS READY TO ACCEPT A COMMAND, STRIKING (^^LF\\) WILL
CAUSE THE NEXT LINE OF THE FILE TO BE PRINTED, WHILE STRIKING  $
WILL CAUSE THE PREVIOUS LINE TO BE PRINTED.
.BLANK 3
2.3.5##^THE ^FIND ^COMMAND - "^F"
.BLANK 1
^^SOS\\ CAN LOCATE AN ARBITRARY TEXT STRING WITHIN A FILE WITHOUT
HAVING THE LINE NUMBER SPECIFIED:
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^F<TEXT>##$##(^^CR\\)	^SEARCH FOR THE FIRST OCCURRENCE OF THE
GIVEN STRING OF TEXT STARTING WITH THE CURRENT LINE.
.BLANK 1
.LEFT MARGIN 0
^NOTE THAT IMMEDIATELY AFTER THE FILE IS OPENED FOR EDITING,
THE "CURRENT" LINE IS THE BEGINNING OF THE FILE.
.BLANK 1
^IT IS ALSO POSSIBLE TO SEARCH THROUGH A RANGE OF LINE
NUMBERS FOR THE FIRST OCCURRENCE OF A GIVEN TEXT STRING:
.LEFT MARGIN 35
.BLANK 1
.INDENT -25
*^F<TEXT>##$##100:350(^^CR\\)	^SEARCH FOR THE FIRST OCCURRENCE
OF THE STRING OF TEXT IN LINES 100 THROUGH 350 INCLUSIVE.
.BLANK 1
.LEFT MARGIN 0
^IF THE SPECIFIED TEXT IS LOCATED, THE LINE AND LINE NUMBER WHERE
IT FIRST OCCURRED WILL BE PRINTED.  ^IF THE SPECIFIED TEXT
DOES NOT EXIST WITHIN THE GIVEN (OR IMPLIED) RANGE, ^^SOS\\
WILL INDICATE THAT THE SEARCH HAS FAILED AND RETURN THE USER
TO COMMAND LEVEL:
.BLANK 1
.INDENT 10
%^^SEARCH FAILS\\
.INDENT 10
*
.BLANK 1
^GIVING ANOTHER ^F COMMAND WITH NO ARGUMENTS WILL CONTINUE THE
SEARCH IN THE STATED RANGE AND CAUSE ^^SOS\\ TO PRINT THE NEXT
OCCURRENCE OF THE GIVEN TEXT STRING (LINE NUMBER AND CONTENT).
^IF THERE IS NO OTHER OCCURRENCE, ^^SOS\\ WILL PRINT
%^^SEARCH FAILS\\ AND RETURN TO COMMAND LEVEL.
^FOR EXAMPLE,
.BLANK 1
.LEFT MARGIN 38
.TAB STOPS 38
.INDENT -28
*^^FOLD##$##100:500(CR\\)	^SEARCH FOR THE FIRST OCCURRENCE
.INDENT -28
00150#^^THIS#IS#AN#OLD#LINE.\\	OF ^^OLD\\ IN LINES 100 THROUGH 500
.BLANK 1
.INDENT -28
*^^F(CR\\)	^SEARCH FOR THE NEXT OCCURRENCE
.INDENT -28
0200#^^THERE#WAS#AN#OLD#MAN.\\	OF ^^OLD\\ AFTER LINE 150
AND THROUGH LINE 500.
.BLANK 3
.LEFT MARGIN 0
2.3.6##^THE ^ALTER ^COMMAND (^INTRALINE ^EDIT
^MODE) - "^A"
.BLANK 1
^IT IS POSSIBLE TO CHANGE OR ALTER THE LINE WITH THE ^ALTER COMMAND.
.BLANK 1
.TAB STOPS 35
.INDENT 10
*^^A200(CR\\)	^ALTER LINE 200.
.BLANK 1
^THE ^A COMMAND PLACES THE USER IN A SPECIAL INTRALINE
EDITING MODE WHICH HAS ITS OWN COMMANDS (DESCRIBED BELOW).  ^IN
THIS MODE, THE COMMANDS THEMSELVES WILL NOT APPEAR ON A 
FULL-DUPLEX TELETYPE, ALTHOUGH ANY ACCOMPANYING USER-SUPPLIED
TEXT WILL.
.BLANK 1
^THE INTRALINE EDIT MODE MAINTAINS A POINTER WITHIN THE LINE
INDICATING THE NEXT CHARACTER IN THE LINE THAT THE NEXT COMMAND
WILL AFFECT.
.BLANK 1
1.##^MOVING THE ^POINTER (^SPACE ^BAR AND ^RUBOUT)
.BLANK 1
.LEFT MARGIN 4
^TO ADVANCE THE POINTER ONE POSITION TO THE RIGHT, STRIKE THE
SPACE BAR ONCE.  ^THE CHARACTER THAT IS PASSED OVER IS PRINTED
ON THE TELETYPE.  ^IF THE POINTER IS ALREADY AT THE EXTREME
RIGHT OF THE LINE, THIS COMMAND IS IGNORED.
.BLANK 1
^TO MOVE THE POINTER TO THE LEFT, USE ^^RUBOUT\\ ONCE FOR
EACH CHARACTER BEING PASSED OVER.  (^NOTE THAT THIS DOES
NOT DELETE ANYTHING AS IT WOULD IN INPUT MODE.)  ^THE CHARACTER(S)
PASSED OVER ARE PRINTED BETWEEN SINGLE BASKSLASHES (_\^^XX\\_\).
(^THE SECOND BASKSLASH IS PRINTED WHEN THE NEXT NON-^^RUBOUT\\
COMMAND IS GIVEN).  ^IF THE POINTER IS ALREADY AT THE
EXTREME LEFT OF THE LINE, A CARRIAGE RETURN/LINEFEED IS
AUTOMATICALLY DONE.  ^THE LINE NUMBER WILL BE REPRINTED,
AND THE POINTER WILL AGAIN POINT TO THE BEGINNING OF THE LINE.
.BLANK 1
.INDENT -4
2.##^THE "^D" ^COMMAND (^DELETE)
.BLANK 1
^TO DELETE THE CHARACTER POINTED TO, TYPE "^D" ONCE FOR EACH
CHARACTER BEING DELETED.  ^THE DELETED CHARACTER(S)
WILL BE PRINTED WITHIN DOUBLE BACKSLASHES (_\_\^X_\_\).  (^THE
SECOND DOUBLE BACKSLASH IS PRINTED WHEN THE NEXT NON-^D COMMAND
IS GIVEN.)  ^THE POINTER THEN WILL POINT TO THE RIGHT OF THE
LAST CHARACTER DELETED.  ^IF THIS COMMAND IS PRECEDED BY A
NUMBER, ONLY THE LAST THREE DELETED CHARACTERS WILL BE PRINTED
AND ENCLOSED IN DOUBLE BACKSLASHES.  ^THE COMMAND
IS IGNORED IF THE POINTER IS AT THE EXTREME RIGHT OF THE LINE.
.BLANK 1
.INDENT -4
3.##^THE "^I" ^COMMAND (^INSERT)
.BLANK 1
^TO INSERT TEXT IMMEDIATELY BEFORE THE CHARACTER INDICATED BY
THE POINTER, USE THE ^I COMMAND AS FOLLOWS:
.BLANK 1
.INDENT 6
^I<TEXT>##$
.BLANK 1
^ONLY THE INSERTED TEXT IS PRINTED ON THE TELETYPE.  ^THE
POINTER THEN WILL BE AT THE CHARACTER TO THE RIGHT OF THE INSERTED
MATERIAL.
.BLANK 1
.INDENT -4
4.##^TERMINATING ^INTRALINE ^EDITING: (^^CR\\) AND THE ^QUIT ^COMMAND
.BLANK 1
^WHEN NO MORE EDITING IS NECESSARY, THE USER SHOULD STRIKE
(^^CR\\).  ^THIS CAUSES THAT PORTION OF THE LINE TO THE RIGHT OF
THE POINTER TO BE PRINTED AND ENDS THE INTRALINE EDIT MODE.
^^SOS\\ THEN RETURNS TO COMMAND LEVEL.
.BLANK 1
^THE ^Q COMMAND TERMINATES INTRALINE EDITING MODE WITHOUT MAKING
ANY OF THE INDICATED INTRALINE CHANGES.  ^^SOS\\ THEN RETURNS
TO COMMAND LEVEL.
.BLANK 1
.INDENT -4
5.###_^^U##(^^RESTART\\)
.BLANK 1
^TO REEDIT A LINE, TYPE ^U WHILE HOLDING DOWN THE ^^CTRL\\ 
KEY - #_^^U#.  ^THE LINE WILL BE RESTORED TO ITS ORIGIONAL
STATE, AND INTRALINE EDITING CAN BE RESUMED AS SOON AS THE LINE
NUMBER IS REPRINTED.  ^THIS IS EQUIVALENT TO TYPING A ^Q
COMMAND DURING INTRALINE EDIT MODE AND THEN ISSUING AN ^ALTER
COMMAND FOLLOWED BY A PERIOD (AFTER THE ^^SOS\\ COMMAND ASTERISK):
.BLANK 1
.INDENT 6
<LINE>^Q
.INDENT 6
*^^A.(CR\\)
.BLANK 1
.INDENT -4
6.##^THE "^S" ^COMMAND (^SKIP)
.BLANK 1
^THE ^S COMMAND WILL MOVE THE POINTER TO THE RIGHT UNTIL THE NEXT
OCCURRENCE OF A SPECIFIED CHARACTER:
.BLANK 1
.INDENT 6
^S<CHARACTER>
.BLANK 1
^EVERY CHARACTER PASSED OVER WILL BE PRINTED.  ^THE CURRENT
CHARACTER IS AUTOMATICALLY PASSED OVER AND IS NOT COMPARED
TO THE CHARACTER SPECIFIED IN THE COMMAND.
.BLANK 1
^IF THE CHARACTER DOES NOT OCCUR IN THE REMAINDER OF THE LINE,
THE POINTER WILL MOVE TO THE EXTREME RIGHT.
.BLANK 1
^THE FOLLOWING EXAMPLE ILLUSTRATES INTRALINE EDIT MODE AND
POINTER MOVEMENT.  ^REMEMBER THAT USER COMMANDS ARE NOT
PRINTED ON THE FULL-DUPLEX TELETYPE WHEN THIS MODE IS UTILIZED.
.BLANK 1
.INDENT 6
*^^A200(CR)
.BLANK 1
.TAB STOPS 36
.INDENT 7
#####SX#D###IW##$##(CR\\)	^USER ^INPUT
.BLANK 1
.INDENT 7
00200^^LET_\_\X_\_\W=A+B+C	SOS\\ ^PRINTOUT
.BLANK 1
^THE USER WANTS TO ALTER LINE 200 ("^^LET X=A+B+C\\").
^THE POINTER IS AT THE FIRST CHARACTER OF THE LINE ("^L).  ^AFTER
"^^SX\\" IS TYPED, THE POINTER SKIPS TO "^X", AND ^^SOS\\ THEN
PRINTS "^^LET\\" ON THE TELETYPE.  ^TO DELETE THE "^X", THE
USER ISSUES A ^D COMMAND.  ^^SOS\\ THEN PRINTS "_\_\^X", AND
MOVES THE POINTER TO THE CHARATER WHICH FOLLOWS THE 
DELETED CHARACTER (THAT IS, TO THE "=").  ^TYPING "^^IW\\#$#"
COMPLETES THE DELETION PROCESS BY PRINTING ANOTHER "_\_\";
"^W" IS INSERTED TO THE LEFT OF THE POINTER AND PRINTED ON THE
TELETYPE.  (^^CR\\) CAUSES THE REST OF THE LINE TO BE PRINTED AND
RETURNS THE USER TO COMMAND LEVEL.
.B 3;.LM 0
2.3.7##^THE ^SUBSTITUTE ^COMMAND - "^S"
.BLANK 1
^SOMETIMES THE SAME STRING OF TEXT OCCURS FREQUENTLY IN A FILE,
AND IT WOULD BE TIME-CONSUMING FOR THE USER TO
PERFORM INTRALINE EDITING IN EVERY LINE THAT THE STRING IS
FOUND.  ^^SOS\\ PROVIDES A COMMAND THAT ALLOWS THE USER TO
SUBSTITUTE ONE STRING OF TEXT FOR ANOTHER WITH SOME RANGE IN
THE FILE:
.BLANK 1
.LEFT MARGIN 40
.TAB STOPS 40
.BLANK 1
.INDENT -40
*^S<OLDTEXT>#$#<NEWTEXT>#$#100:350(^^CR\\)	^SUBSTITUTE
THE <NEWTEXT> FOR THE <OLDTEXT> IN THE RANGE SPECIFIED.
.BLANK 1
.LEFT MARGIN 15
.CENTER
^^NOTE\\
.BLANK 1
.RIGHT MARGIN 55
^IF NO RANGE IS INCLUDED IN THE COMMAND, SUBSTITUTION
WILL BE ONLY DONE FOR ONE LINE.
.BLANK 3
.LEFT MARGIN 0
.RIGHT MARGIN 70
2.3.8##^THE ^COPY ^COMMAND - "^C"
.BLANK 1
^TO DUPLICATED SOME LINE OR GROUP OF LINES WITHIN A
FILE, USE THE ^COPY COMMAND.  ^THIS COMMAND ACTS LIKE AN
^INSERT COMMAND; THE LINE(S) SPECIFIED ARE COPIED BUT NOT
PRINTED ON THE TELETYPE.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^^C200,100(CR\\)	^COPY THE CONTENTS OF LINE 100 INTO A NEW
LINE NUMBERED 200.
.BLANK 1
.INDENT -25
*^^C1000,100:500,50(CR\\)	^COPY A PORTION OF THE FILE
(LINES 100 THROUGH 500) INTO A NEW LOCATION BEGINNING WITH LINE
1000.  ^AS EACH LINE IS COPIED, THE INCREMENT BETWEEN LINES
WILL BE 50.
.BLANK 1
.LEFT MARGIN 0
^IF A SPECIFIED INCREMENT IS TOO LARGE FOR THE SPECIFIED
RANGE, AN ERROR MESSAGE ("%^^OUT OF ORDER" OR "%WRAP AROUND\\")
WILL BE PRINTED, AND ^^SOS\\ AUTOMATICALLY WILL INDICATE THAT
IT HAS CHOSEN A SMALLER INCREMENT BY TYPING
.BLANK 1
.INDENT 10
^^INC\\1=<NUMBER>
.BLANK 1
^IF ^^SOS\\ CANNOT CHOOSE A SMALL ENOUGH INCREMENT, IT WILL USE
THE GIVEN INCREMENT AND COPY AS MANY LINES A POSSIBLE INTO THE
AVAILABLE SPACE.  ^AS A RESULT, ONLY PART OF THE TEXT WILL BE
COPIED AND AN "%^^OUT OF ORDER\\" ERROR MESSAGE WILL BE GIVEN.
^TO FINISH COPYING THE REST OF THE SPECIFIED RANGE, EDIT MODE
MUST BE TERMINATED WITH AN ^END COMMAND.  ^DURING
THE NEXT EDITING SESSION, THE FILE MUST BE RESEQUENCED AND 
THEN THE COPY CAN BE COMPLETED.
.BLANK 3
2.3.9##^THE ^TRANSFER ^COMMAND - "^T"
.BLANK 1
^THE ^TRANSFER COMMAND MOVES A SET OF LINES FROM ONE PART OF A
FILE TO ANOTHER.  ^IT IS SIMILAR TO THE ^COPY COMMAND, BUT IT
ALSO DELETES THE ORIGINAL RANGE IMMEDIATELY AFTER THE TRANSFER
IS COMPLETED.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^^T1000,100:500,50(CR\\)	^COPY LINES 100 THROUGH 500
INTO THE LOCATION BEGINNING WITH LINE 1000, USING THE INCREMENT
50; THEN DELETE LINES 100 THROUGH 500.
.BLANK 3
.LEFT MARGIN 0
2.3.10##^THE ^NUMBER ^COMMAND - "^N"
.BLANK 1
^THE ^NUMBER COMMAND ALTERS THE NUMBERS OF CURRENTLY EXISTING LINES;
IT SHOULD BE USED IF AN "%^^OUT OF ORDER\\" OR A "%^^WRAP
AROUND\\" ERROR MESSAGE OCCURS.
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
*^^N50,100:500,1000(CR\\)	^RENUMBER LINES 100 THROUGH
500, STARTING AT LINE 1000, WITH THE INCREMENT OF 50.
.BLANK 1
.INDENT -25
*^^N50,100:500(CR\\)	^RENUMBER LINES 100 THROUGU 500,
STARTING AT LINE 50, WITH AN INCREMENT OF 50.
.BLANK 1
.INDENT -25
*^^N100(CR\\)####OR	^RESEQUENCE THE ENTIRE FILE STARTING AT
LINE 100 WITH AN INCREMENT OF 100.
.BLANK 1
.INDENT -25
*^^N(CR\\)
.BLANK 3
.LEFT MARGIN 0
2.3.11##^THE ^QUIT ^COMMAND (^DELETE THE ^ENTIRE ^EDIT) - "^Q"
.BLANK 1
^SHOULD THE USER REALIZE THAT THE CURRENT EDITING SESSION IS
WORTHLESS, THE ^QUIT COMMAND WILL RETURN HIM TO THE 
MONITOR WITHOUT SAVING THE EDITED VERSION OF THE FILE:
.BLANK 1
.INDENT 10
*^^Q(CR\\)	^NO LONGER TURE.
.BLANK 1
^^SOS\\ WILL INDICATE THE EXIT AS FOLLOWS:
.BLANK 1
.INDENT 10
^^EXIT\\
.BLANK 1
^THE ORIGINAL FILE (IF THERE WAS ONE) IS STILL INTACT AFTER THE
^QUIT COMMAND.
.BLANK 3
2.3.12##^THE ^END ^COMMAND (^EXTENSION) - "^E"
.BLANK 1
^TO DIFFERENTIATE AN EDITED FILE FROM THE ORIGIONAL, THE NEW
VERSION MAY BE FILED SEPARATELY UNDER A DIFFERENT NAME
BY USING THE ^END COMMAND AND THE NEW FILENAME.
.BLANK 1
.INDENT 10
*^E<FILENAME>(^^CR\\)
.BLANK 1
^THIS LEAVES THE ORIGINAL FILE UNDER ITS ORIGINAL NAME.
^^SOS\\ THEN RETURNS THE USER TO THE MONITOR.
.BLANK 1
.INDENT 10
^^EXIT\\
.BLANK 3
2.3.13##^THE ^SAVE ^WORLD ^COMMAND - "^W"
.BLANK 1
^THE ^SAVE ^WORLD COMMAND IS THE SAME AS THE ^E COMMAND
EXCEPT THAT IT LEAVES THE USER IN COMMAND MODE RATHER THAN
RETURNING HIM TO THE MONITOR.  ^THIS IS USED TO SAVE THE
CURRENT VERSION OF THE FILE IN CASE THE SYSTEM CRASHES, AND SHOULD
BE DONE EVERY FIFTEEN MINUTES WHILE THE USER IS IN EDIT MODE.
^IF THE SYSTEM DOES CRASH, THE USER WILL LOSE
ONLY THE EDITING THAT WAS DONE SINCE THE LAST ^W COMMAND
WAS ISSUED.
.BLANK 1
^IT IS ALSO POSSIBLE TO USE A NEW NAME FOR THE EDITED VERSION
WITH THE ^W COMMAND (JUST AS IN THE EXTENSION OF THE ^E
COMMAND).  ^THE NEW NAME ONLY HAS TO BE GIVEN ONCE, AN ANY
SUBSEQUENT ^W COMMANDS WILL RECALL THE NEW FILENAME.
.BLANK 1
.INDENT 10
*^^W(CR)\\
.BLANK 1
.INDENT 12
 OR
.BLANK 1
.INDENT 10
*^W<FILENAME>(^^CR\\)
.BLANK 3
2.3.14##^THE ^GO ^COMMAND - "^G"
.BLANK 1
^THE ^G COMMAND IS USED AFTER THE USER ISSUES A PROGRAM EXECUTION
COMMAND SUCH AS ^^EXECUTE, LOAD, COMPILE\\, ETC., AND THEN EDITS
A FILE.  ^A FILENAME THAT HAS BEEN GIVEN TO ^^SOS\\ IS SAVED, SO
THAT CALLING ^^SOS (".SOS(CR\\)") AGAIN WITH NO FILENAME
WILL IMMEDIATELY PUT THE USER IN EDIT MODE FOR THE LAST FILE
SPECIFIED.
.BLANK 1
^ONCE EDITING IS COMPLETED, THE ^G COMMAND WILL WRITE THE FILE
ONTO THE DISK (LIKE THE ^E COMMAND) AND WILL CAUSE THE PREVIOUS
PROGRAM EXECUTION COMMAND TO BE REPEATED.
.BLANK 1
^THE FOLLOWING DEBUGGING SEQUENCE ILLUSTRATES ^G COMMAND USAGE:
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
_.^^SOS EXAMPL.CBL(CR\\)	^^SOS\\ ASSUMES INPUT MODE
AND IS READY
.INDENT -25
^^FILE NOT FOUND - INPUT.\\	TO ACCEPT LINES OF TEXT BEGINNING
.INDENT -25
00100	WITH LINE 100 (^^SOS\\ ALSO "REMEMBERS"
.INDENT -22
_.	THE NAME ^^EXAMPL.CBL\\).
.INDENT -22
_.
.INDENT -22
_.
.INDENT -25
NNNNN#$	^END INPUT AND GIVE COMMAND TO USER.
.INDENT -25
*^^E(CR\\)	^THE ^E COMMAND WILL SAVE THE INPUT
.INDENT -25
^^EXIT\\	UNDER THE FILENAME ^^EXAMPL.CBL\\.
.BLANK 1
.INDENT -25
_.^^EXECUTE EXAMPL.CBL(CR\\)	^THE USER ISSUES THE
^MONITOR COMMAND
.INDENT -22
_.	"^^EXECUTE EXAMPL.CBL\\".
.INDENT -22
_.
.INDENT -22
_.	^THE PROGRAM DID NOT EXECUTE
.INDENT -22
_.	CORRECTLY; THE USER MUST EDIT THE
.INDENT -22
_.	SOURCE FILE.
.INDENT -22
_.
.INDENT -25
_.^^SOS(CR)	SOS\\ "REMEMBERS" ^^EXAMPL.CBL\\,
BECAUSE
.INDENT -25
^^EDIT\\.	IT WAS THE LAST FILENAME USED, AND,
.INDENT -25
*	THEREFORE, ASSUMES EDIT MODE.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -25
*^^G(CR\\)	^THE USER PERFORMS SOME EDITING IN
.INDENT -22
_.	THE PROGRAM.
^THE ^G COMMAND WILL
.INDENT -22
_.	SAVE THE FILE
.INDENT -22
_.	AS ^E DID AND WILL BEGIN
.INDENT -22
_.	COMPILATION, LOADING, AND EXECUTION
.INDENT -22
_.	OF ^^EXAMPL.CBL\\.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -25
_.^^SOS(CR\\)	^MORE EXECUTION PROBLEMS.
.INDENT -25
^^EDIT\\.	^EDIT ^^EXAMPL.CBL\\ AGAIN.
.INDENT -25
*
.INDENT -22
_.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -25
*^^G(CR\\)	^^EXECUTE\\ AGAIN.
.INDENT -22
_.
.INDENT -22
_.
.INDENT -22
_.
.BLANK 2
.LEFT MARGIN 0
3.0##^^READ-^ONLY ^MODE\\
.BLANK 1
^^SOS\\ ALLOWS THE USER TO ACCESS HIS FILE
IN A "READ-ONLY" MODE IF "/^^READONLY\\" (OR "/^^REA\\")
IS INCLUDED IN THE INPUT SEQUENCE.
.BLANK 1
.INDENT 10
_.^^SOS(CR)
.INDENT 10
FILE\\=<FILENAME>/^^READONLY(CR\\)
.BLANK 1
.INDENT 15
OR
.BLANK 1
.INDENT 10
_.^^SOS\\<FILENAME>/^^READONLY(CR\\)
.BLANK 1
^THIS MODE PERMITS THE USER TO FIND INFORMATION IN HIS FILE, BUT
DOES NOT ALLOW HIM TO PERFORM ANY EDITING.
.PAGE
.CENTER
^^PART II
.BLANK 1
.CENTER
SOS ADVANCED
.BLANK 3
4.0##^^FILES\\
.BLANK 3
4.1##^^BACKUP AND ^TEMPORARY ^FILES\\
.BLANK 1
^CONSIDER THE FOLLOWING SITUATION.  ^AFTER A FILE IS CREATED, IT
IS STORED ON THE DISK UNDER A SPECIFIED NAME SUCH AS ^^PROG.FOR\\
(^SEE ^SECTION 1.1).
.BLANK 1
^WHEN THE USER IS EDITING THIS FILE AND GIVES AN ^END, ^SAVE
^WORLD, OR ^GO COMMAND, A BACKUP FILE (IN THIS CASE,
^^PROG.BAK\\) IS CREATED.  ^THIS BACKUP FILE CONTAINS THE ORIGONAL
VERSION OF ^^PROG.FOR\\, WHILE THE NEWLY EDITED
VERSION WILL BE STORED UNDER ^^PROG.FOR\\.
.BLANK 1
^IF THE ^^E, W,\\ OR ^G COMMAND SPECIFIES A FILENAME, NO
BACKUP FILE IS CREATED.  ^THE ORININAL COPY OF THE FILE IS STILL
NAMED ^^PROG.FOR\\; THE EDITED VERSION WILL HAVE THE NEW
FILENAME AS ITS NAME.
.BLANK 1
^DURING THE EDITING PROCESS, ^^SOS\\ SUCCESSIVELY COPIES A FILE.
^IN INPUT MODE, IF LINES ARE INSERTED IN THE CORRECT SEQUENCE ORDER,
THE FILE CAN BE WRITTEN OUT AS NEEDED WITH NO WRAPAROUND TO THE 
START OF THE FILE.  ^IF MATERIAL IS INSERTED OUT OF ORDER,
HOWEVER, IT MAY BE NECESSARY TO WRAP AROUND.  ^^SOS\\ DOES THIS
BY COPYING THE FILE OVER FROM THE BEGINNING OF THE FILE TO THE
LOCATION SPECIFIED IN THE COMMAND.  ^WITH SUBSEQUENT COMMANDS, 
^^SOS\\ WILL RECOPY ADDITIONAL PORTIONS OF THE FILE.
.BLANK 1
^WHEN EDITING AN ALREADY-EXISTING FILE, ^^SOS\\ IS CAREFUL NOT
TO MAKE CHANGES IN THE OLD VERSION UNTIL THE NEW VERSION IS
COMPLETE.  ^THEN WRAPAROUND IS REQUIRED, THREE
FILES MAY EXIST SIMULTANEOUSLY: THE ORIGINAL; A PARTIALLY-EDITED
COPY WHICH CONTAINS THE ENTIRE FILE WITH ALL CHANGES UP TO THE 
LAST WRAP AROUND ("^^TMP\\" FILE - SEE BELOW); AND A PARTIAL
COPY OF THAT FILE UP TO THE CURRENT POSITION ("^^TEM\\" FILE).
.BLANK 1
^^SOS\\ IS ALWAYS WRITING THIS PARTIAL COPY INTO A FILE CALLED
"NNN^^SOS.TEM\\" (WHERE "NNN" IS THE USER'S JOB NUMBER).
^IF RECOPYING IS NECESSARY, ^^SOS\\ WILL RENAME THE FILE
"NNN^^SOS.TMP\\" AND USE IT AS INPUT.  ^AT ANY TIME DURING AN EDIT,
^^SOS\\ WILL READ EITHER THE USER'S ORIGINAL FILE OR THE
"NNN^^SOS.TMP\\" FILE.  ^THUS, IF AN "NNN^^SOS.TMP\\" FILE
EXISTS, IT IS COMPLETE UP TO THE LAST TIME ^^SOS\\ HAD TO RECOPY
THE PARTIAL EDIT.
.BLANK 1
^WHEN AN "^^E", "G",\\ OR "^W" COMMAND IS GIVEN, ^^SOS\\ WILL
FINISH COPYING THE EDIT INTO THE "NNN^^SOS.TEM\\" FILE AND
RENAME IT EITHER THE NAME SPECIFIED IN THE "^^E", "G\\", OR
"^W" COMMAND, OR THE ORIGINAL NAME GIVEN WHEN EDITING 
BEGAN.
.BLANK 1
^DURING AN EDIT, ^^SOS\\ PRINTS "^^EXIT\\" AND RETURNS THE USER
TO THE MONITOR WHENEVER ONE OF THE FOLLOWING ERROR MESSAGES
OCCURS:
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -35
#####^ERROR MESSAGE	#####^EXPLANATION
.BLANK 1
.INDENT -35
%^^NO DISK AVAILABLE\\	^THE DISK WHICH THE USER REQUESTED IS
NOT AVAILABLE.
.BLANK 1
.INDENT -35
%^^TEMPORARY#EDIT#FILE#IN#USE\\	^THE FILE NAME WHICH
^^SOS\\ ASSIGNS TO THE TEMPORARY FILE IS ALREADY BEING USED.
^THIS SITUATION SHOULD NOT OCCUR.  ^IF IT DOES, THE USER SHOULD
ISSURE THE ^MONITOR COMMAND "^^DEL *.TMP,*.TEM(CR)\\" TO DELETE
ALL TEMPORARY FILES.
.BLANK 1
.INDENT -35
%^^DEVICE OUTPUT ERROR\\	^OUTPUT ERROR - NO RECOVERY WILL BE
ATTEMPTED.
.BLANK 1
.INDENT -35
^^%DEVICE INPUT ERROR\\	^INPUT ERROR - NO REVOVERY WILL BE
ATTEMPTED.
.BLANK 1
.INDENT -35
%^^INTERNAL CONFUSION	^^SOS\\ HAS JUST ENCOUNTERED AN
.INDENT -30
OR	INTERNAL CONFLICT - A SYSTEMS 
.INDENT -35
%^^ILLEGAL UUO\\	PROGRAMMER WILL BE NEEDED.
.BLANK 1
.LEFT MARGIN 0
^ALTHOUGH "^^EXIT\\" IS CALLED AND THE EDIT IS LOST, THE ORIGINAL
FILE IS NOT HARMED.  ^IF A ^SAVE ^WORLD COMMAND HAD BEEN GIVEN PRIOR
TO ANY OF THESE ERRORS, HOWEVER, THE ORIGINAL FILE WOULD CONTAIN
ALL EDITING CHANGES PERFORMED BEFORE THE ^W COMMAND WAS ISSUED.
.BLANK 1
^IF THE ERROR MESSAGE, "%^^ILLEGAL LINE FORMAT\\" OCCURS
DURING AN EDIT, THE USER PROBABLY HAD A LINE WITH A CARRIAGE
RETURN BUT NO LINEFEED OR VICE VERSA.  ^ISSUING A ^REPLACE
COMMAND WILL CORRECT THE SITUATION.
.BLANK 3
4.2##^^STANDARD TEXT FILES\\
.BLANK 1
^^SOS\\ UTILIZES A ^STANDARD ^TEXT ^FILE, CONTAINING ^STANDARD
^TEXT ^LINES AND ^STANDARD ^PAGE ^MARKS.  ^STANDARD ^TEXT
^LINE FORMAT IS A LINE NUMBER COMPOSED OF A STRING OF FIVE SEVEN-BIT
^^ASCII\\ DIGITS, LEFT-JUSTIFIED IN A SINGLE WORD WITH A 1
IN BIT 35.  ^THIS LINE NUMBER IS FOLLOWED BY A ^^TAB\\ AND THE
TEXT (147 OR FEWER ^^ASCII\\ CHARACTERS, NOT INCLUDING THE
CARRIAGE RETURN/LINEFEED).  ^EACH DISK FILE WORD IS LEFT-JUSTIFIED
AND CONSISTS OF FIVE ^^ASCII\\ CHARACTERS AND A 0 IN BIT
35.  ^THE FIRST CHARACTER WHICH FOLLOWS THE LINE NUMBER IS A
^^TAB\\ AND THE LAST TWO CHARACTERS ARE (^^CR)(LF\\).  ^THE
CHARACTERS ^^NULL\\ AND ^^DELETE\\ MAY NOT APPEAR IN THE TEXT.
^IF NECESSARY, THE LAST DISK FILE WORD FOR THE LINE IS FILLED
WITH ^^NULL\\S TO MAKE A COMPLETE WORD.
.BLANK 1
^A ^STANDARD ^PAGE ^MARK IS A WORD CONTAINING 5 ^^ASCII\\ SPACES,
LEFT-JUSTIFIED IN A WORD WITH A 1 IN BIT 35, FOLLOWED BY A WORD
CONTAINING THE CHARACTERS (^^CR),(CR),(FF),NULL,NULL\\,
WITH A 0 IN BIT 35.  ^STANDARD ^PAGE ^MARK USAGE IS
DISCUSSED IN ^CHAPTERS 5 AND 6.
.BLANK 1
^LINES ARE NEVER BROKEN ACROSS PHYSICAL DISK BLOCK BOUNDARIES,
AND ALL UNUSED WORDS IN A DISK BLOCK ARE 0.
.BLANK 1
^IF THE SPECIFIED FILE WAS CREATED BY USING AN EDITOR THAT
DOES NOT ASSIGN LINE NUMBERS, ^^SOS\\ WILL ASSIGN A NUMBER TO
EACH LINE AS IT READS THE FILE, BEGINNING WITH 100 AND 
INCREMENTING BY 100.
.BLANK 3
5.0##^^LINE NUMBERS, PAGES\\
.BLANK 1
^THROUGHOUT ^PART ^I, IT WAS ASSUMED THAT A FILE WAS ENTIRELY CONTAINED
IN ONE CONTINUOUS GROUP.  ^THIS IS A FEASIBLE WAY TO
STRUCTURE A FILE; HOWEVER, WHEN A FILE IS LARGE, IT IS ADVANTAGEOUS
TO DIVIDE IT INTO PAGES.  ^FOR EVERY COMMAND THAT INCLUDES
A LINE NUMBER SPECIFICATION, THERE IS ALSO A PAGE QUALIFICATION.
^THUS, A SINGLE LINE (<LINE>) MAY BE SPECIFIED BY BOTH THE LINE
NUMBER AND PAGE NUMBER AS FOLLOWS:
.BLANK 1
.INDENT 10
<LINE NUMBER>/<PAGE NUMBER>
.BLANK 1
^THE LINE NUMBER MUST BE IN THE RANGE 0 TO 99999; THE FIRST PAGE
IS 1, AND THERE IS ESSENTIALLY NO UPPER LIMIT.  ^A RANGE HAS THE
FORM
.BLANK 1
.INDENT 10
<LINE NUMBER>/<PAGE NUMBER>:<LINE NUMBER>/<PAGE NUMBER>
.BLANK 1
^A RANGE INCLUDES ALL TEXT UP TO AND INCLUDING THE ENDPOINTS.
.BLANK 1
^INSTEAD OF A NUMBER, THE SYMBOL "." MAY BE USED TO DENOTE
EITHER THE CURRENT LINE OR THE CURRENT PAGE, DEPENDING ON
WHETHER IT APPEARS BEFORE OR AFTER THE "/".  ^THEREFORE,
"100/." MEANS LINE NUMBER 100 ON THE CURRENT PAGE AND
"./2" MEANS THE LINE ON PAGE WHICH HAS THE SAME NUMBER AS THE
CURRENT LINE NUMBER.  ^THE CURRENT LINE AND PAGE ARE DETERMINED
BY THE LAST COMMAND WHICH WAS EXECUTED (OR, GENERALLY, BY THE
LAST LINE ON WHICH AN OPERATION WAS PERFORMED AND THE PAGE ON
WHICH THAT LINE APPEARS).
.BLANK 1
^THE SYMBOL "*" MAY BE USED TO SPECIFY THE LAST LINE ON THE PAGE,
BUT IT MAY NOT SPECIFY THE LAST PAGE.
.BLANK 1
^LINE AND PAGE SPECIFICATIONS MAY BE FURTHER ABBREVIATED AS FOLLOWS:
.BLANK 1
.LEFT MARGIN 10
.TAB STOPS 40
^ABBREVIATED#^SPECIFICATION	^FULL ^SPECIFICATION
.BLANK 1
.LEFT MARGIN 16
.TAB STOPS 44
100	100/.
.BLANK 1
100:500	100/.:500/.
.BLANK 1
100/2:500	100/2:500/2
.BLANK 1
/2	0/2:*/2
.BLANK 1
/2:/5	0/2:*/5
.BLANK 1
0/1:.	0/1:./1
.BLANK 1
.LEFT MARGIN 0
^ADDITION AND SUBTRACTION CAN ALSO BE USED IN LINE AND PAGE
SPECIFICATIONS.  ^WHILE THE ARITHMETIC IS STRAIGHT FORWARD FOR PAGES,
IT IS NOT FOR LINES BECAUSE OF VARYING INCREMENTS AND PRIOR EDITING
CHANGES.  ^A COUNT EITHER GOES FORWARD RO BACKWARD FROM THE
INDICATED LINE TO INCLUDE THE NUMBER OF LINES SPECIFIED.  ^ANOTHER
FORM OF THE RANGE SPECIFICATION EXTENDS THE ABILITY TO USE THE
COUNTING TECHNIQUE.  ^THE STARTING LINE IS SPECIFIED IN ONE OF
THE ABOVE WAYS AND IS FOLLOWED BY AN "!" AND THE NUMBER OF LINES DESIRED.
.BLANK 1
^LINE SPECIFICATIONS USING ARITHMETIC CANNOT CROSS PAGE BOUNDARIES,
EXCEPT THOSE WITH THE "!" WHICH MAY CROSS PAGE BOUNDARIES IF
NECESSARY.
.LEFT MARGIN 25
.BLANK 1
.TAB STOPS 25
.INDENT -25
^SPECIAL#^SPECIFICATION	^EQUIVALENT ^SPECIFICATION
.BLANK 1
.LEFT MARGIN 5
100+2	THE SECOND LINE AFTER LINE 100
.BLANK 1
100!3	LINE 100 AND THE TWO SUBSEQUENT LINES
.BLANK 1
/5-3	/2 OR PAGE 2
.BLANK 1
/.+2	THE SECOND PAGE AFTER THE CURRENT PAGE
.BLANK 1
/.-1	THE PREVIOUS PAGE
.BLANK 1
_.-1:.+1	THREE LINES, INCLUDING THE CURRENT LINE
.BLANK 1
*+2	*
.BLANK 1
0-5	0
.BLANK 1
*!2	*/.:0+1/.+1
.BLANK 1
	LAST LINE ON CURRENT PAGE AND FIRST LINE ON
.BREAK
	NEXT PAGE
.LEFT MARGIN 0
.BLANK 3
6.0##^^EDIT MODE COMMANDS
.BLANK 3
6.1##THE MARK COMMAND - "M"\\
.BLANK 1
^THE ^M COMMAND WILL INSERT A PAGE MARK INTO THE TEXT, IMMEDIATELY
BEFORE THE LINE SPECIFIED.  ^NOTE THAT PAGE MARK 1 IS ALWAYS
ASSUMED WHEN INPUT IS BEGUN.
.BLANK 1
.INDENT 10
*^M<LINE NUMBER>/<PAGE NUMBER>(^^CR\\)
.BLANK 1
^IF THE LINE THAT IS SPECIFIED DOES NOT EXIST, THE PAGE MARK WILL
BE INSERTED IMMEDIATELY AFTER THE LINE WITH THE NEXT LOWER NUMBER
ON THAT PAGE.  ^IF THE LINE SPECIFIED IS THE FIRST ON THAT
PAGE, THE NEW PAGE MARK WILL BE PLACED IMMEDIATELY AFTER THE ALREADY-EXISTING
PAGE MARK; THEREFORE, THE PAGE THAT ALREADY EXISTED WILL NOT HAVE
ANY ACCOMPANYING TEXT.  ^IF THE PAGE SPECIFIED IN THE ^M COMMAND
DOES NOT EXIST, THE ERROR MESSAGE "^^%NO SUCH PAGE\\" WILL
BE PRINTED AND NO PAGE MARK WILL BE INSERTED.  ^NOTE THAT THE
PAGE MARK ALWAYS PRECEDES THE RELATED TEXT.
.BLANK 1
^INSERTING A PAGE MARK CAUSES RENUMBERING OF ALL
SUBSEQUENT PAGES.  ^THE CURRENT LINE IS SET TO ZERO; THE CURRENT
PAGE IS CONSIDERED THE ONE JUST CREATED.  ^WHEN THE USER
IS INSERTING TEXT, THE COMMAND
.BLANK 1
.INDENT 10
*^^M99999(CR)\\
.BLANK 1
WILL PLACE A PAGE MARK AT THE END OF THE CURRENT WORK, AND THE
NEXT INSERTION WILL GO ON THE NEXT PAGE.
.BLANK 3
6.2##^^THE DELETE COMMAND - "D"\\
.BLANK 1
^THE ^DELETE COMMAND WILL DELETE ALL THE LINES OF A SPECIFIED RANGE:
.BLANK 1
.INDENT 10
*^^D\\<RANGE>(^^CR\\)
.BLANK 1
^IF THERE ARE NO LINES IN THE SPECIFIED RANGE, ^^SOS\\ WILL RESPOND
WITH THE ERROR MESSAGE "%^^NO SUCH LINES(S)\\".
.BLANK 1
^LINES IN A RANGE ARE SPECIFIED IN THE USUAL MANNER;
EXCEPTIONS ARE NOTED BELOW:
.BLANK 1
.LEFT MARGIN 7
.INDENT -4
1.##^THE ^DELETE COMMAND DOES NOT ALLOW A PAGE SPECIFICATION FOR
THE SECOND LINE NUMBER OF A RANGE.  ^ALL DELETIONS EXTEND,
THEREFORE, OVER ONE PAGE ONLY, EVEN IF THE "!" IS USED.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^^D100/2:200/3(CR\\)	^THIS IS AN ILLEGAL COMMAND; ^^SOS\\ WILL
RESPOND WITH AN APPROPRIATE ERROR MESSAGE.
.BLANK 1
.LEFT MARGIN 7
.INDENT -4
2.##^THE ^DELETE COMMAND WILL DELETE A PAGE MARK,
NOT THE CONTENTS OF THE GIVEN PAGE:
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
*^^D/5(CR)\\	^DELETE PAGE MARK 5 (NOT THE CONTENTS OF PAGE 5)
.BLANK 1
.LEFT MARGIN 7
^THE NUMBERS OF THE SUCCEEDING PAGE MARKS ARE DECREASED
BY ONE.
.BLANK 1
^DELETING A PAGE MARK MAY RESULT IN THE CREATION OF A PAGE WITH
LINE NUMBERS THAT ARE OUT OF SEQUENCE.  ^IF SO, ^^SOS\\
WILL PRINT THE MESSAGE "%^^OUT OF ORDER\\".  ^IN SUCH A CASE, IT
IS NECESSARY TO RENUMBER THE PAGE IMMEDIATELY.
.BLANK 1
.LEFT MARGIN 0
^PAGE MARK 1, OR ANY PAGE MARK WHICH DOES NOT EXIST, MAY
NOT BE DELETED.  ^IF DELETION IS ATTEMPTED, THE ERROR MESSAGE
"^^%NO SUCH PAGE\\" WILL BE PRINTED.
.BLANK 1
^ALL LINES ON A PAGE MAY BE DELETED AS FOLLOWS:
.BLANK 1
.INDENT 10
*^^D/:99999(CR\\)	^DELETE ALL LINES ON PAGE 2.
.BLANK 1
^THE CURRENT LINE AND PAGE WILL BE SET TO THE LAST LINE DELETED
ON THE SPECIFIED PAGE.
.BLANK 3
6.3##^^THE INSERT COMMAND - "I"\\
.BLANK 1
^THE ^INSERT COMMAND, WHICH IS USED TO INSERT NEW LINES INTO A FIE,
ACCEPTS A SINGLE LINE SPECIFIER (LINE NUMBER/PAGE NUMBER)
AS ITS FIRST ARGUMENT AND BEGINS INSERTING AT THAT LINE.  ^THE
^INSERT COMMAND MAY ALSO BE USED TO CHANGE THE CURRENT DEFAULT
INCREMENT BETWEEN LINES, IN WHICH CASE THE INCREMENT IS PRECEDED
BY A COMMA.
.BLANK 1
.INDENT 10
*^I[<LINE>][,<INCREMENT>](^^CR\\)
.BLANK 1
.INDENT 20
OR
.BLANK 1
.INDENT 10
*^I[<LINE>][;<INCREMENT>](^^CR\\)
.BLANK 1
^THUS,
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^I100/2,50(^^CR\\)	^INSERT LINES STARTING WITH LINE 100
ON PAGE 2 AND SET THE CURRENT INCREMENT TO 50.
.BLANK 1
.INDENT -25
*^I100/2;50(^^CR\\)	^INSERT LINES STARTING WITH LINE 100
ON PAGE 2.  ^USE THE INCREMENT OF 50.  ^^NOTE\\: ^THE
SEMI-COLON INDICATES THAT 50 IS A TEMPORARY INCREMENT TO BE USED
ONLY WHILE THIS COMMAND IS IN EFFECT.  ^THE CURRENT INCREMENT
WILL REMAIN UNCHANGED AND WILL BE USED AGAIN FOR THE NEXT COMMAND.
.BLANK 1
.INDENT -25
*^I100/2(^^CR\\)	^INSERT LINES STARTING WITH LINE 100 ON
PAGE 2 USING THE CURRENT INCREMENT (SINCE NO INCREMENT IS SPECIFIED).
^^NOTE\\: ^AT THE BEGINNING OF EDIT MODE, THE CURRENT INCREMENT IS 100.
.BLANK 1
.LEFT MARGIN 0
^AFTER A SPECIFIED LINE IS ACTUALLY INSERTED, ^^SOS\\ WILL ADD
THAT LINE NUMBER TO THE CORRECT INCREMENT TO OBTAIN THE NUMBER
OF THE NEXT LINE TO BE INSERTED.
.BLANK 1
^IF THERE ALREADY IS A LINE WITH THE SAME NUMBER AS THE SPECIFIED
LINE NUMBER, THE LINE NUMBER OF THE EXISTING LINE IS ADDED TO THE
CORRECT INCREMENT AND INSERTION BEGINS THERE.  ^IF THERE ALREADY
IS A LINE LOCATED BETWEEN THE TWO LINE NUMBERS (OR
AT THE SECOND LINE NUMBER), ^^SOS\\ WILL SELECT A LINE NUMBER THAT
IS HALFWAY BETWEEN THE INDICATED LINE NUMBER AND THE NEXT LINE
IN THE FILE.  ^FOR THE NEXT INSERTIONS, IF A LINE ALREADY EXISTS
AT THE LOCATION DETERMINED BY THE INCREMENT, OR IF IT IS NECESSARY
TO PASS OVER A LINE WHICH ALREADY EXISTS, THEN INSERTION MODE WILL
TERMINATE AND THE USER WILL BE RETURNED TO COMMAND LEVEL.
.BLANK 1
^IN THE FOLLOWING EXAMPLE, LINES 100 AND 200 ALREADY EXIST; THE CURRENT 
INCREMENT IS 100:
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -27
*^I100(^^CR\\)
.INDENT -27
00150##^^THIS IS A LINE(CR\\)	^^SOS\\ SELECTS LINE 150 TO BEGIN INSERTION.
.BLANK 1
^THE USER IS RETURNED TO COMMAND LEVEL SINCE LINE 200 ALREADY
EXISTS AND MUST BE PASSED OVER (200 IS BETWEEN 150 AND 250).
.BLANK 1
.LEFT MARGIN 0
^IF A LINE INSERTION IS TERMINATED WITH AN #$#, THE TEXT PRECEDING
THE #$# IS INSERTED, AND THE USER IS RETURNED TO COMMAND MODE.
^IF NOTHING HAS BEEN INSERTED AND #$# IS USED, AN
EMPTY LINE WILL NOT BE INSERTED, ALTHOUGH THE USER WILL BE
RETURNED TO COMMAND LEVEL.
.BLANK 1
^THE CURRENT LINE NUMBER AND PAGE BECOME THE LAST LINE ACTUALLY
INSERTED, NOT THE EMPTY LINE TERMINATED WITH #$#.  ^IN ADDITION,
AFTER #$# IS TYPED, ^^SOS\\ WILL REMEMBER THE LINE NUMBER AND
PAGE OF THE NEXT LINE TO BE INSERTED; THESE WILL BE USED
IF THE ^I COMMAND IS GIVEN LATER WITH NO ARGUMENT.  ^THE
INCREMENT WILL BE THE SAME AS THE INCREMENT USED IN THE MOST RECENT
COMPLETE COMMAND, INCLUDING THOSE COMMANDS WITH THE TEMPORARY
(";") CONSTRUCTION.
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
*^^I100;100(CR)
00100 THIS IS LINE 1.(CR)
00200 THIS IS LINE 2.(CR)
00300  $
*P100(CR)
00100 THIS IS LINE 1.
*I(CR)
00300 THIS IS LINE 3.(CR)\\
00400#######.
############.
############.
.BLANK 1
.FILL
.JUSTIFY
.LEFT MARGIN 0
^IF A PAGE WHICH DOES NOT EXIST IS SPECIFIED, ^^SOS\\ WILL
RESPOND WITH "%^^NO SUCH PAGE\\".
.BLANK 1
^IF AN ATTEMPT IS MADE TO INSERT A LINE WHICH CONTAINS MORE THAN
147 CHARACTERS (NOT INCLUDING THE RETURN/LINEFEED AT THE END),
^^SOS\\ WILL PRINT "%^^LINE TOO LONG\\".  ^THE LINE WILL NOT BE
INSERTED, AND ^^SOS\\ WILL RETURN TO COMMAND MODE.
.BLANK 1
^IF THE NEXT LINE TO BE INSERTED HAS A LINE NUMBER GREATER
THAN 99999, INSERTION WILL TERMINATE AND THE USER WILL BE IN
COMMAND MODE.
.BLANK 1
^AN INCREMENT OF ZERO WILL RESULT IN THE ERROR MESSAGE "%^^ILLEGAL COMMAND\\\\".
.PG
6.4##^^THE REPLACE COMMAND - "R"\\
.BLANK 1
^THE ^REPLACE COMMAND IS THE SAME AS THE ^DELETE COMMAND
FOLLOWED BY THE ^INSERT COMMAND.  ^REPLACE ACCEPTS A RANGE
SPECIFIER AND AN OPTIONAL INCREMENT, WHICH CAN BE EITHER TEMPORARY
(";") OR AN ACTUAL (",") UPDATE OF THE CURRENT INCREMENT.
.BLANK 1
.INDENT 10
*^R<RANGE>[;<INCREMENT>](^^CR\\)
.BLANK 1
.INDENT 20
OR
.BLANK 1
.INDENT 10
*^R<RANGE>[,<INCREMENT>](^^CR\\)
.BLANK 1
^THE DELETION IS PERFORMED ON THE SPECIFIED RANGE, AND INSERTION
BEGINS WITH THE FIRST LINE INDICATED BY THAT RANGE.  ^IF  THE
FIRST LINE IS NOT STATED EXPLICITLY, THE LINE NUMBER OF THE FIRST
LINE DELETED WILL BE USED AS THE STARTING POINT FOR INSERTION.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -25
*^^R/2,50(CR\\)	^REPLACE ALL LINES ON PAGE 2 AND INSERT NEW
LINES, BEGINNING WITH THE FIRST LINE DELETED, USING AN INCREMENT OF 50.
.BLANK 1
.LEFT MARGIN 0
^ALTHOUGH THE ^DELETE COMMAND WILL DELETE A PAGE MARK AND NOT
THE CONTENTS OF THAT PAGE, THE ^REPLACE COMMAND WILL DELETE ALL
OF THE LINES ON THE SPECIFIED PAGE AND THEN ALLOW INSERTION.
.BLANK 1
.INDENT 10
*^^D/2(CR)\\	^DELETE PAGE MARK 2
.BLANK 1
.INDENT 10
*^^R/2(CR\\)	^DELETE ALL THE LINES ON PAGE 2
.BLANK 1
^INSERTION MAY BE TERMINATED BY DEPRESSING #$# AFTER ^^SOS\\
HAS PRINTED THE NEXT LINE NUMBER.  ^AS IN THE ^INSERT COMMAND,
IF #$# IS USED AFTER SOME OF THE TEXT HAS BEEN TYPED, THAT TEXT
WILL BE INSERTED AND COMMAND MODE WILL BE REINSTATED.
.B 2
6.5##^^THE PRINT COMMAND - "P"\\
.BLANK 1
^THE ^PRINT COMMAND WILL PRINT OUT THE LINES SPECIFIED IN A
RANGE, INCLUDING THE LINE NUMBERS.
.BLANK 1
.INDENT 10
*^P[<RANGE>][,<OPTIONS>](^^CR\\)
.BLANK 1
^IF THE RANGE INCLUDES THE BOUNDARY BETWEEN TWO PAGES, "^^PAGE N\\"
ALSO WILL BE PRINTED TO INDICATE THE POSITION OF THE PAGE MARK.
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
^^*P100/1:100/2
00100 THIS IS A LINE
00200 THIS IS A LINE
  _.
  _.
  _.
PAGE 2
00100 THIS IS A LINE\\
.PG
.FILL
.JUSTIFY
.LEFT MARGIN 0
^THE SECOND ARGUMENT, IF GIVEN, CONSISTS OF ONE OR MORE OF THE
FOLLOWING OPTIONS, SEPARATED BY COMMAS.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -30
<^OPTION>	^EXPLANATION
.BLANK 1
.INDENT -30
^N ^NUMBER PAGES	^PRINT PAGE NUMBERS AT THE BOTTOM OF THE PAGE.
.BLANK 1
.INDENT -30
^#^SUPPRESS LINE#_#S	^DON'T PRINT LINE NUMBERS AND PAGE NUMBERS
AND SUPPRESS THE ASTERISK INDICATING THAT ^^SOS\\ IS READY FOR
THE NEXT COMMAND.
.BLANK 1
.INDENT -30
^E#^EJECT	^EJECT AT BOTTOM OF A PAGE.
.BLANK 1
.INDENT -30
^W ^WAIT	^AT THE BOTTOM, WAIT FOR A LINE.
.BLANK 1
.INDENT -30
^F#^FINAL ^COPY	^EQUIVALENT TO ^^S, E,\\ AND ^W OPTIONS COMBINED.
.BLANK 1
.LEFT MARGIN 0
^THE "BOTTOM OF THE PAGE" IS DETERMINED BY A PAGE MARK OR AN EXCEEDED
LENGTH (THE DEFAULT IS 55 LINES).
.BLANK 1
"^WAIT FOR A LINE" MEANS THAT ^^SOS\\ WILL WAIT AT THE BOTTOM
OF EACH PAGE WHILE THE USER TYPES AN ADDITIONAL LINE,
FOLLOWED BY A CARRIAGE RETURN, OR A RETURN ONLY (IF NO LINE IS
ADDED).
^TYPING A "^G" ONLY WILL SUPPRESS THE WAIT OPTION IN THE REMAINDER
OF THE PRINTOUT.  ^TYPING A "^Q" ONLY WILL STOP THE PRINTOUT AND
RETURN THE USER TO COMMAND MODE.  ^TYPING #_^^O# WILL SUPPRESS
A PRINTOUT IN PROGRESS.  ^SINCE ^^SOS\\ IS STILL MOVING THE
OUTPUT TO A BUFFER AREA, TYPING ANOTHER #_^^O# WILL RESUME THE 
PRINTOUT AT SOME LATER POINT IN THE OUTPUT.  ^IF ALL OUTPUT HAS
BEEN PASSED TO THE BUFFER AREA, THE USER IS RETURNED TO COMMAND
LEVEL.
.BLANK 1
^COMMON ABBREVIATIONS USED WITH ^PRINT ARE AS FOLLOWS:
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -30
*^^P(CR\\)	^PRINT 16 LINES, BEGINNING WITH THE CURRENT
POSITION; THE SAME AS "*^^P.!16(CR\\).
.BLANK 1
.INDENT -30
*^^(LF\\)	^PRINT THE NEXT LINE OF THE FILE.
.BLANK 1
.INDENT -30
*#$	^PRINT THE PREVIOUS LINE OF THE FILE.
.BLANK 1
.INDENT -30
*^^P/.(CR\\)	^PRINT ALL THE LINES OF THE CURRENT PAGE;
THE SAME AS "^^P0:*/.(CR\\)".
.BLANK 1
.LEFT MARGIN 0
^THE CURRENT LINE NUMBER AND PAGE ARE DETERMINED BY THE LAST LINE
ACTUALLY PRINTED.
.BLANK 1
^IF THERE ARE NO LINES IN THE SPECIFIED RANGE, ^^SOS\\ WILL PRINT
THE ERROR MESSAGE, "%^^NO SUCH LINE(S)\\".
.BLANK 3
6.6##^^THE LIST COMMAND - "L"\\
.BLANK 1
^IT IS ALSO POSSIBLE TO HAVE THE FILE, OR A PART OF IT, PRINTED
OUT ON THE LINE PRINTER:
.BLANK 1
.INDENT 10
*^L[<RANGE>][,^^S](CR\\)
.BLANK 1
^IF NO RANGE IS SPECIFIED, THE ENTIRE FILE WILL BE LISTED.
^THE "^S" OPTION FOR SUPPRESSING LINE NUMBERS AND HEADINGS
IS THE SAME AS THE ^S OPTION USED IN THE ^PRINT COMMAND.
^IN THIS CASE, HOWEVER, THE ASTERISK WILL NOT BE SUPPRESSED,
AND ^^SOS\\ WILL INDICATE THAT IT IS READY FOR THE NEXT COMMAND.
.BLANK 1
^AS WITH ^PRINT, THE ^LIST COMMAND DETERMINES THE CURRENT LINE NUMBER
AND PAGE BY THE LAST LINE PRINTED.  ^LINE PRINTER OUTPUT WILL HAVE
SUITABLE PAGE HEADINGS OF THE TOP OF EACH PAGE.  ^THESE INCLUDE
THE NAME OF THE FILE, THE TIME AND DATE OF THE PRINTING, AND THE PAGE
GIVEN IN THE FORM "^^M-N\\".  "^M" IS THE ACTUAL ^^SOS\\
PAGE ON WHICH THIS TEXT CAN BE FOUND; "^N" DENOTES THE ^NTH
PAGE OF LINE PRINTER OUTPUT COMPRISING PAGE ^M.
.BLANK 3
6.7##^^THE FIND COMMAND - "F"\\
.BLANK 1
^THE ^FIND COMMAND IS USED TO LOCATE A GIVEN STRING OF TEXT WITHIN
A STATED RANGE (NOTE THAT THE OPTIONS ARE DISCUSSED
SEPARATELY BELOW).
.BLANK 1
.INDENT 10
*^F[[<STRING>]#$#[<RANGE>][,<OPTIONS>]](^^CR\\)
.BLANK 1
^^SOS\\ WILL FIND THE FIRST OCCURRENCE OF THE STRING IN THE
RANGE AND PRINT THE LINE CONTAINING THAT STRING.  ^IF THE RANGE
INCLUDES MORE THAN ONE PAGE AND IF THE STRING IS FOUND ON A PAGE
OTHER THAN THE FIRST ONE OF THE RANGE, ^^SOS\\ WILL PRINT
"^^PAGE N\\" BEFORE THE LINE NUMBER TO INDICATE ON WHICH
PAGE THE LINE IS LOCATED.  ^IF THE STRING DOES NOT OCCUR IN
THE SPECIFIED RANGE, ^^SOS\\ WILL PRINT "%^^SEARCH FAILS\\".
.BLANK 1
^TO FIND THE FIRST OCCURRENCE OF A GIVEN TEXT ON A SPECIFIC
PAGE, SIMPLY PRECEDE THE PAGE NUMBER WITH A "/" AS FOLLOWS:
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 35
.INDENT -30
*^^FLINE#$#/2(CR\\)	^FIND AND PRINT OUT THE FIRST LINE ON PAGE 2 CONTAINING "^^LINE\\".
.BLANK 1
.LEFT MARGIN 0
^TO LOCATE THE SAME STRING SPECIFIED IN THE LAST ^FIND COMMAND,
ONLY USE THE RANGE ARGUMENT.
.BLANK 1
.LEFT MARGIN 35
.INDENT -30
*^^F#$#/3(CR\\)	^FIND AND PRINT OUT THE FIRST LINE ON PAGE 3
CONTAINING "^^LINE\\" (FROM THE PREVIOUS ^FIND COMMAND).
.BLANK 1
.LEFT MARGIN 0
^IF NO PREVIOUS ^FIND COMMAND WAS ISSUED, ^^SOS\\
WILL PRINT "%^^NO STRING GIVEN\\" SINCE NO STRING HAD BEEN SPECIFIED.
.BLANK 1
^IF THE RANGE IS OMITTED, THEN ^^SOS\\ WILL BEGIN ITS SEARCH AT
THE LINE FOLLOWING THE CURRENT LINE AND CONTINUE THROUGH THE END
OF THE FILE.
.BLANK 1
.LEFT MARGIN 35
.INDENT -30
*^^FALWAYS#$#(CR\\)	^FIND THE FIRST OCCURRENCE OF "^^ALWAYS\\"
BEGINNING WITH THE LINE FOLLOWING THE CURRENT LINE THROUGH THE END
OF THE FILE.
.BLANK 1
.LEFT MARGIN 0
^TO INDICATE A RANGE BEGINNING WITH THE NEXT LINE THROUGH A
SPECIFIED LOCATION, IT IS NECESSARY ONLY TO SPECIFY THE SECOND
HALF OF THE RANGE.
.BLANK 1
.LEFT MARGIN 35
.INDENT -30
*^^FALWAYS#$#:/5(CR\\)	^FIND THE FIRST OCCURRENCE OF "^^ALWAYS\\"
IN THE RANGE FROM THE NEXT LINE THROUGH THE END OF PAGE 5 (ASSUMING
THE CURRENT POSITION IS BEFORE PAGE 5).
.BLANK 1
.LEFT MARGIN 0
^NOTE THAT IF THIS PARTICULAR RANGE SPECIFICATION WERE USED IN
ANY OTHER COMMAND (EXCEPT ^SUBSTITUTE), ^^SOS\\ WOULD PRINT THE
MESSAGE "%^^ILLEGAL COMMAND\\".
.BLANK 1
^WHEN THE ^FIND COMMAND IS GIVEN REPEATEDLY, IT IS NOT
NECESSARY TO SPECIFY THE TEXT AND RANGE WHEN REFERRING TO THE SAME TEXT
AND RANGE GIVEN IN THE LAST COMPLETE ^FIND COMMAND.
.BLANK 1
.LEFT MARGIN 35
.INDENT -25
*^^F(CR)\\	^CONTINUE TO FIND THE TEXT (SPECIFIED PREVIOUSLY).
^THE SEARCH BEGINS WITH THE LINE AFTER THE LAST LINE THAT WAS
FOUND; THE END OF THE RANGE IS THE ENDPOINT SPECIFIED IN THE
LAST COMPLETE ^FIND COMMAND.
.BLANK 1
.INDENT -25
*^^F#$#(CR\\)	^CONTINUE TO FIND THE TEXT (SPECIFIED PREVIOUSLY)
THROUGH THE END OF THE FILE (SINCE NO RANGE HAD BEEN SPECIFIED).
.BLANK 1
.LEFT MARGIN 0
^THE CURRENT LINE WILL BE SET TO THE LAST ONE FOUND.  ^IF THE
ERROR MESSAGE "%^^SEARCH FAILS\\" IS PRINTED, THE
STRING CANNOT BE LOCATED IN THE REMAINING PORTION OF THE RANGE.
^IN THIS INSTANCE THE VALUE OF THE CURRENT LOCATION WILL BE UNCHANGED.
.BLANK 1
^IF IS POSSIBLE TO USE AN EXTENDED FORM OF THE ^FIND COMMAND TO
FIND UP TO SIX STRINGS OF TEXT.  ^THE CARRIAGE RETURN SEPARATES
THE TEXT STRINGS:
.BLANK 1
.LEFT MARGIN 35
.INDENT -30
*^F<STRING1>(^^CR\\)	^SEARCH FOR ANY OCCURRENCE OF ANY OF
.INDENT -30
<STRING2>(^^CR\\)	THE STRINGS (TOTALLING FEWER THAN
.INDENT -25
_.	200 CHARACTERS) IN THE RANGE
.INDENT -25
_.	SPECIFIED.
.INDENT -25
_.
.INDENT -30
<STRINGN>#$#<RANGE>(^^CR\\)
.BLANK 3
.LEFT MARGIN 0
^^OPTIONS\\
.BLANK 1
^THE COMPLETE ^FIND COMMAND FORMAT INCLUDING OPTIONS, IS AS FOLLOWS:
.BLANK 1
.INDENT 10
*^F[[<STRING>]#$#[<RANGE>][,^^A#,N][,E\\][,<NUMBER>]](^^CR\\)
.BLANK 1
.INDENT 10
###############################OPTIONS
.BLANK 1
^FIND COMMAND OPTIONS ARE DEFINED BELOW:
.BLANK 1
.LEFT MARGIN 20
.TAB STOPS 20
.INDENT -10
^A	^ENTER INTRALINE EDIT MODE AUTOMATICALLY WHEN THE STRING
IS FOUND.  ^THIS MOVES THE INTRALINE POINTER TO THE FIRST CHARACTER
OF THE STRING.  ^IF INTRALINE EDITING IS COMPLETE AND
"*^^F(CR\\)" IS ISSUED, THE ^A OPTION WILL STILL BE IN EFFECT.
(^THIS IS THE SAME FOR THE ^N AND ^E OPTIONS DISCUSSED BELOW).
.BLANK 1
.INDENT -10
^N	^FIND JUST THE LINE NUMBERS OF THE LOCATIONS OF A GIVEN
STRING.  ^N FOLLOWS THE RANGE SPECIFICATION AND CANNOT BE USED
WITH THE ^A OPTION.  ^N WILL STILL BE IN EFFECT IF AN 
"*^^F(CR\\)" IS ISSUED.
.BLANK 1
.INDENT -10
^E	^DO NOT TREAT UPPER AND LOWER CASE LETTERS AS BEING EQUIVALENT.
^E FOLLOWS THE RANGE, OR ^A OR ^N IF EITHER IS PRESENT.  ^E WILL
STILL BE IN EFFECT IF AN "*^^F(CR\\)" IS ISSUED.
.BLANK 1
.INDENT -10
<NUMBER>	"<NUMBER>" SPECIFIES THE NUMBER OF LINES TO BE
FOUND - 99999 USUALLY WILL FIND THEM ALL.  ^THIS OPTION CAN BE
USED INSTEAD OF REPEATING "*^^F(CR\\)" UNTIL THE STRING NO LONGER
CAN BE FOUND WITHIN THE RANGE SPECIFIED IN THE FIRST
COMPLETE ^FIND COMMAND.
.LEFT MARGIN 0
.BLANK 3
6.8##^^THE ALTER COMMAND (INTRALINE EDIT MODE) - "A"\\
.BLANK 1
^THE ^ALTER COMMAND (REFERRED TO BY THE ^FIND COMMAND) IS USED TO
MAKE CHANGES WITHIN A LINE WITHOUT HAVING TO RETYPE THE LINE.
^THE ^ALTER COMMAND ACCEPTS A RANGE SPECIFIER INDICATING THOSE
LINES TO BE ATERED.
.BLANK 1
.INDENT 10
*^A<RANGE>(^^CR\\)
.BLANK 1
^FOR EACH OF THE LINES IN THE RANGE, ^^SOS\\ PRINTS THE LINE
NUMBER, AND THEN ENTERS A SPECIAL INTRALINE EDIT MODE WHICH HAS
ITS OWN COMMANDS.  ^A POINTER, MAINTAINED WITHIN THE LINE,
POINTS TO THE NEXT CHARACTER IN THE LINE THAT WILL BE AFFECTED
BY THE NEXT COMMAND.  ^THE SPECIAL INTRALINE EDIT COMMANDS DO NOT
APPEAR ON THE USER'S TELETYPE.  ^THUS, THE LINE SHOWN ON
THE TELETYPE AT THE END OF THE INTRALINE EDIT IS EXACTLY THE SAME
AS IT IS IN THE FILE (EXCEPT FOR THE BACKSLASHES AND THE
CHARACTERS BETWEEN THEM).  ^ANY COMMAND IN THIS MODE MAY BE
PRECEDED BY A NUMBER WHICH WILL CAUSE THE COMMAND TO BE REPEATED
FOR THAT NUMBER OF CHARACTERS.  ^THE LINE NUMBER OF THE NEXT LINE IN THE
RANGE WILL BE TYPED OUT AUTOMATICALLY AS SOON AS INTRALINE
EDITING IS COMPLETED ON THE PRESENT LINE.
.BLANK 1
^THE CURRENT LINE IS DETERMINED BY THE LAST LINE EDITED.
.BLANK 1
^IF THERE ARE NO LINES IN THE SPECIFIED RANGE, ^^SOS\\ WILL
PRINT THE ERROR MESSAGE "%^^NO SUCH LINE(S)\\"
.BLANK 3
^^INTRALINE COMMANDS\\
.LEFT MARGIN 18
.BLANK 1
.TAB STOPS 18
.INDENT -18
^^SPACE\\	^THIS WILL ADVANCE THE POINTER ONE POSITION
TO THE RIGHT.  ^THE CHARACTER THAT IS PASSED OVER IS PRINTED ON
THE TELETYPE.  ^IF THE POINTER IS ALREADY AT THE EXTREME RIGHT
OF THE LINE, THIS COMMAND IS IGNORED.
.BLANK 1
.INDENT -18
^^RUBOUT\\	^THIS MOVES THE POINTER ONE CHARACTER TO THE LEFT.
^THIS DOES NOT DELETE ANYTHING AS IT WOULD ORDINARILY IN INPUT
MODE.  ^THE CHARACTERS MOVED OVER ARE PRINTED BETWEEN SINGLE
BACKSLASHES (_\^^XXX\\_\).  ^IF THE POINTER IS ALREADY AT
THE EXTREME LEFT OF THE LINE, A (^^CR)(LF\\) IS
AUTOMATICALLY PERFORMED.  ^THE LINE NUMBER WILL BE REPRINTED,
AND THE POINTER WILL AGAIN POINT TO THE BEGINNING OF THE LINE.
.BLANK 1
.INDENT -18
^C<CHARACTER>	^THIS CAUSES ^^SOS\\ TO ACCEPT THE NEXT CHARACTER
FROM THE TELETYPE.  ^THE CHARACTER POINTED TO WILL BE REPLACED
BY THE NEW CHARACTER, AND THE POINTER WILL BE MOVED ONE CHARACTER
TO THE RIGHT.  ^THE CHARACTER ACCEPTED FROM THE TELETYPE IS PRINTED
ON THE LINE IN PLACE OF THE ONE THAT IS
DELETED.  ^IF THE POINTER IS AT THE EXTREME RIGHT OF THE LINE, THE
COMMAND IS IGNORED.  ^DURING THIS COMMAND, ANY ^^RUBOUT\\
THAT IS USED WILL BE IGNORED.  (^^LF),(CR\\), AND #$# WILL ABORT
THE REMAINDER OF THE COMMAND.
.BLANK 1
.INDENT -18
^D	^THIS WILL DELETE THE CHARACTER POINTED TO.  ^THE
CHARACTER(S) DELETED WILL BE SURROUNDED BY DOUBLE BACKSLASHES
(_\_\^^XXX\\_\_\).  ^THE POINTER WILL POINT TO THE RIGHT OF THE
LAST CHARACTER DELETED.  ^IF THE COMMAND IS PRECEDED BY A NUMBER,
ONLY THE LAST THREE CHARACTERS THAT WERE DELETED WILL BE PRINTED
AND ENCLOSED IN DOUBLE BACKSLASHES.  ^THE COMMAND IS IGNORED
IF THE POINTER IS AT THE EXTREME RIGHT OF THE LINE.
.BLANK 1
.INDENT -18
^I<STRING>#$	^THIS WILL INSERT THE GIVEN STRING INTO THE LINE
IMMEDIATELY BEFORE THE CHRACTER TO WHICH THE POINTER POINTS.
^THE POINTER REMAINS POINTING TO THE CHARACTER TO THE RIGHT
OF THE INSERTED STRING.  ^THE CHARACTERS BEING INSERTED ARE TYPED
OUT ON THE TELETYPE.
.BLANK 1
^IF ^^RUBOUT\\ IS TYPED BEFORE THE #$#, THE LAST CHARACTER
THAT IS INSERTED WILL BE DELETED.  ^IF MORE ^^RUBOUT\\S
ARE TYPED THAN CHARACTERS INSERTED, THE CHARACTERS TO THE
LEFT OF THE INSERT ARE DELETED.  ^THE CHARACTERS DELETED ARE
SURROUNDED BY SINGLE BACKSLASHES.  ^IF ENOUGH CHARACTERS ARE
INSERTED TO MAKE THE LINE EXCEED 147 CHARACTERS, THE MESSAGE
"%^^LINE TOO LONG\\" IS PRINTED, AND ^^SOS\\ WILL RETURN THE
USER TO COMMAND MODE WITHOUT PERFORMING ANY OF THE ALTERATIONS 
SPECIFIED FOR THAT LINE.
.BLANK 1
^IF A (^^CR\\) IS TYPED BEFORE THE #$#, THE INSERT WILL BE
TERMINATED; INTRALINE EDIT WILL TERMINATE AS IN THE (^^CR\\)
COMMAND.
.BLANK 1
^IF A (^^LF\\) IS TYPED BEFORE THE #$#, A (^^CR)(LF\\) IS INSERTED
AT THAT POINT.  ^THIS CREATES A NEW LINE CONSISTING OF ANY SUBSEQUENTLY
INSERTED CHARACTERS AND THE REST OF THE OLD LINE TO THE RIGHT
OF THE POINTER.  ^THE NUMBER OF THE NEW LINE IS DETERMINED AS
FOLLOWS:
.BLANK 1
.LEFT MARGIN 22
.INDENT -4
1.##^IF THE ^I COMMAND IS PRECEDED BY A NUMBER, THIS NUMBER ACTS
LIKE A TEMPORARY INCREMENT AND IS ADDED TO THE CURRENT
LINE NUMBER TO OBTAIN THE NEW LINE NUMBER.
.BLANK 1
.INDENT -4
2.##^IF THE ^I COMMAND IS NOT PRECEDED BY A NUMBER, THEN THE
NEW LINE NUMBER IS DETERMINED BY ADDING THE CURRENT INCREMENT
TO THE CURRENT LINE NUMBER.  ^THE NEW LINE IS INSERTED AT THIS
NUMBER UNLESS IT WOULD BE OUT OF ORDER.
.BLANK 1
.INDENT -4
3.##^IF THE NEW LINE WOULD BE OUT OF ORDER IN (2) ABOVE, THE 
NEW LINE NUMBER WILL BE HALFWAY BETWEEN THE CURRENT LINE NUMBER
AND THE NEXT LINE NUMBER.  ^IF THE NEXT LINE NUMBER IS ONLY ONE
MORE THAN THE CURRENT LINE NUMBER, AN "%^^OUT OF ORDER\\"
ERROR MESSAGE WILL BE PRINTED.  ^^SOS\\ WILL RETYPE THE LINE NUMBER
AND THE CONTENTS OF THE LINE TO THE LEFT OF THE POINTER.  ^IT
IS THEN POSSIBLE TO INSERT MORE CHARACTERS.
.LEFT MARGIN 18
.BLANK 1
^IF NO ERRORS OCCUR WHILE MAKING THE NEW LINE, THE POINTER WILL
BE LEFT POINTING TO THE FIRST CHARACTER OF THE NEW
LINE, AND THE CURRENT LINE WILL BE SET TO THE NEW LINE JUST CREATED.
.BLANK 1
.INDENT -18
^^(CR\\)	^IF THERE IS NO MORE EDITING TO BE DONE, THAT PORTION
OF THE LINE TO THE RIGHT OF THE POINTER WILL BE PRINTED OUT;
INTRALINE EDITING IS COMPLETED FOR THAT LINE AND COMMAND RETURNS
TO THE USER, UNLESS THERE ARE MORE LINES IN THE ^ALTER
COMMAND RANGE TO BE EDITED.
.BLANK 1
.INDENT -18
^E	^THIS HAS THE SAME EFFECT AS THE (^^CR\\) KEY, EXCEPT
THAT THE REST OF THE LINE IS NOT PRINTED ON THE TELETYPE.
.BLANK 1
.INDENT -18
^Q	^THE ^QUIT COMMAND TERMINATES INTRALINE EDITING WITHOUT
MAKING ANY CHANGES IN THE LINE PRESENTLY BEING ALTERED.  ^^SOS\\
RETURNS TO COMMAND MODE.
.BLANK 1
.INDENT -18
#_^^U	^THIS RESTARTS INTRALINE EDITING ON THE SAME LINE.  ^THE
LINE WILL BE RESTORED TO ITS ORIGINAL STATE, AND INTRALINE
EDITING CAN BE STARTED AS SOON AS THE LINE NUMBER IS REPRINTED.
.BLANK 1
.INDENT -18
^S<CHARACTER>	^THE ^SKIP COMMAND WILL ACCEPT ONE CHARACTER FROM
THE USER'S TELETYPE (WITHOUT PRINTING IT) AND WILL MOVE THE
POINTER TO THE RIGHT UNTIL THE NEXT OCCURRENCE OF THAT CHARACTER.
^EVERY CHARACTER PASSED OVER WILL BE PRINTED.  ^THE CHARACTER THAT 
IS CURRENTLY BEING POINTED TO ALSO WILL BE PRINTED WITHOUT
BEING COMPARED TO THE CHARACTER SPECIFIED IN THE COMMAND.
^IF THE CHARACTER DOES NOT OCCUR IN THE REST OF THE LINE, THE POINTER
WILL BE MOVED TO THE EXTREME RIGHT OF THE LINE.
.BLANK 1
.INDENT -18
^K<CHARACTER>	^THE ^KILL COMMAND IS THE SAME AS THE ^SKIP
COMMAND EXCEPT THAT IT DELETES ALL THE CHARACTERS PASSED OVER
INSTEAD OF PRINTING THEM.  ^IF THERE ARE NO OTHER OCCURRENCES OF
THE SPECIFIED CHARACTER IN A LINE, THE COMMAND WILL BE IGNORED
(RATHER THAN THE REMAINDER OF THE LINE BEING DELETED).
^AS WITH THE ^D COMMAND, THE LAST 3 CHARACTERS DELETED ARE PRINTED
BETWEEN DOUBLE BACKSLASHES IF A NUMBER PRECEDES ^K.
.BLANK 1
.INDENT -18
^R	^THE ^REPLACE COMMAND IS THE SAME AS A ^DELETE
COMMAND FOLLOWED BY AN ^INSERT (EVEN IF A NUMBER IS
INCLUDED BEFORE ^R).
.BLANK 1
.INDENT -18
^L	^THE ^LINE COMMAND PRINTS THE REMAINDER OF THE LINE TO
THE RIGHT OF THE POINTER, PERFORMS A (^^CR)(LF\\), PRINTS
THE NUMBER OF THE LINE, AND CONTINUES THE INTRALINE EDITING WITH
THE POINTER POINTING TO THE FIRST CHARACTER OF THE LINE.
.BLANK 1
.INDENT -18
^P	^THIS PRINTS THE REMAINDER OF THE LINE TO THE RIGHT OF THE
POINTER, PERFORMS A (^^CR)(LF\\), PRINTS THE LINE NUMBER,
AND MOVES THE POINTER TO THE RIGHT; THE CHARACTERS PASSED OVER 
ARE PRINTED UNTIL THE POINTER REACHES THE SAME POSITION IT HAD 
BEFORE THE COMMAND WAS ISSUED.
.BLANK 1
.INDENT -18
^J	^THIS ^JUSTIFY COMMAND INSERTS A (^^CR)(LF\\) WHERE THE
POINTER IS CURRENTLY POINTING, AND CONCATENATES THE PORTION OF
THE LINE TO THE RIGHT OF THE POINTER ONTO THE BEGINNING OF THE NEXT
LINE.  ^THE CURRENT LINE NUMBER IS SET TO THE NEW
LINE NUMBER.
.BLANK 1
^THE ERROR MESSAGE "%^^LINE TOO LONG\\" WILL BE GIVEN IF THE
NEW LINE THAT IS CREATED CONTAINS MORE THAN 147 CHARACTERS.  ^THE
ERROR MESSAGE "%^^NO NEXT LINE\\" WILL BE PRINTED IF THIS LINE
IS THE LAST ONE ON THE PAGE.  ^EITHER OF THESE TWO ERRORS WILL
CAUSE THE ^J COMMAND TO BE IGNORED; THE LINE NUMBER AND THE PORTION
OF THE LINE TO THE LEFT OF THE POINTER WILL BE TYPED OUT AGAIN.
.BLANK 1
.INDENT -18
^W	^THE ^WORD COMMAND MOVES THE POINTER TO THE RIGHT, PASSES
OVER BLANKS AND TABS, THEN OVER THE FIRST "WORD" ENCOUNTERED,
AND THEN OVER SUBSEQUENT BLANKS AND TABS (UNTIL THE NEXT WORD).
^EVERYTHING THAT IS PASSES OVER IS PRINTED.
.BLANK 1
^A "WORD" IS DEFINED AS ANY COLLECTION OF LETTERS, NUMBERS, AND
THE SEPARATORS ".", "%", AND "$".  ^THE OTHER SEPARATORS WHICH
DELIMIT A WORD WILL CAUSE THE SCAN TO STOP AFTER THE WORD AND
SUBSEQUENT BLANKS AND TABS ARE PASSED OVER.  (^SEE ALSO ^SECTION
6.20 TO SET SEPARATORS.)
.BLANK 1
.INDENT -18
^X<STRING>#$	^THE ^X COMMAND MOVES THE POINTER OVER BLANKS
AND TABS, DELETING THEM AS IT MOVES, AND THEN DELETES THE NEXT
"WORD" AND THE FOLLOWING BLANKS AND TABS.  ^AFTER THE DELETION,
A STRING OF TEXT IS INSERTED TO REPLACE THE WORD AND SUBSEQUENT
BLANKS WHICH WERE DELETED.
.BLANK 1
.LEFT MARGIN 0
^ANY OTHER CHARACTER, USED AS A COMMAND, WILL BE IGNORED IN INTRALINE
EDIT MODE.
.BLANK 3
6.9##^^THE EXTEND COMMAND - "X"\\
.BLANK 1
^THE ^EXTEND COMMAND IS ANOTHER WAY TO ENTER INTRALINE EDIT MODE.
.BLANK 1
.INDENT 10
*^X<RANGE>(^^CR\\)
.BLANK 1
^WITH THIS COMMAND, HOWEVER, THE POINTER IS MOVED IMMEDIATELY TO
THE EXTREME RIGHT OF THE LINE, THE CHARACTERS PASSED OVER ARE 
PRINTED ON THE TELETYPE, AND THE USER IS IN THE INTRALINE INSERT
MODE.  ^THE DESIRED TEXT IS THEN TYPED IN FOLLOWED BY (^^CR\\).
.BLANK 1
.INDENT 10
<TEXT>(^^CR\\)
.BLANK 1
^IF A (^^LF\\) IS TYPED INSTEAD OF A (^^CR\\), A RETURN, LINEFEED
OCCURS AT THAT POINT.  ^THIS CREATES A NEW LINE CONSISTING OF ANYTHING
THAT IS SUBSEQUENTLY TYPED IN, SINCE THE USER IS STILL IN INSERT MODE.
^THE NUMBER OF THE NEW LINE IS DETERMINED BY THE METHODS DESCRIBED
IN ^SECTION 6.8.  ^NOTE THAT A (^^CR\\) MUST BE USED EVENTUALLY TO
END THE INSERTION, UNLESS THE SEQUENCE OF LINE
NUMBERS DOES NOT PERMIT ANOTHER LINE.  ^IN THIS CASE, THE USER
WILL BE RETURNED TO ^^SOS\\ COMMAND LEVEL.
.BLANK 1
^IF AN #$# IS TYPED BEFORE THE (^^CR\\), THE USER MAY THEN ISSUE
ANY OF THE INTRALINE EDIT MODE COMMANDS.
.BLANK 1
.INDENT 10
<TEXT>#$#(^^CR\\)
.BLANK 1
^THE FOLLOWING FORM OF THE COMMAND WILL SUPPRESS THE TYPE-OUT OF THE
ORIGINAL LINE:
.BLANK 1
.INDENT 10
*^X<RANGE>,^^S(CR\\)
.BLANK 1
^ONLY THE CHARACTERS THAT THE USER TYPES FOR THE INSERTION WILL
BE PRINTED ON THE TELETYPE.
.BLANK 3
6.10##^^THE SUBSTITUTE COMMAND - "S"\\
.BLANK 1
^THE ^SUBSTITUTE COMMAND WILL SUBSTITUTE "NEWSTRING" FOR ALL
OCCURRENCES OF "OLDSTRING" IN THE SPECIFIED RANGE AND PRINT
EVERY LINE IN WHICH A SUBSTITUTION HAS BEEN MADE.  (^NOTE
THAT THE OPTIONS ARE DISCUSSED SEPARATELY BELOW.)
.BLANK 1
.INDENT 10
*^S[<OLDSTRING>#$#<NEWSTRING>]#$#[<RANGE>][<OPTIONS>](^^CR\\)
.BLANK 1
^IF THE FIRST LINE WITH A SUBSTITUTION IS NOT ON THE FIRST PAGE
SPECIFIED IN THE RANGE, OR IF A SUBSEQUENT LINE WITH A SUBSTITUTION
IS NOT ON THE SAME PAGE AS A PREVIOUS LINE, "^^PAGE N\\" WILL
BE PRINTED BEFORE THE APPROPRIATE LINE.
.BLANK 1
^TO SUBSTITUTE THE SAME STRINGS SPECIFIED IN THE LAST ^S COMMAND,
OMIT THE STRINGS AND ONE #$# FROM THE COMMAND:
.LEFT MARGIN 35
.BLANK 1
.TAB STOPS 35
.INDENT -30
*^^SOLD#$#NEW#$#100/1:100/2(CR\\)	^SUBSTITUTE "^^NEW\\"
FOR ALL OCCURRENCES OF "^^OLD\\" IN THE SPECIFIED RANGE.
.BLANK 1
.INDENT -30
*^^S#$#/3(CR\\)	^CHANGE "^^OLD\\" TO "^^NEW\\" (AS SPECIFIED
PREVIOUSLY) ON PAGE 3.
.BLANK 1
.LEFT MARGIN 0
^IF THE STRINGS ARE OMITTED AND NO PREVIOUS ^S COMMAND HAD BEEN
GIVEN, ^^SOS\\ WILL PRINT THE ERROR MESSAGE "%^^NO STRING GIVEN\\".
.BLANK 1
^IF THE ENTIRE RANGE IS OMITTED, ^^SOS\\
WILL ASSUME A RANGE FROM THE LINE AFTER THE CURRENT LINE
THROUGH THE END OF THE FILE.  ^IF THE FIRST PART OF THE RANGE IS
OMITTED, IT IS ASSUMED TO BE THE LINE AFTER THE CURRENT LINE.
^THE CURRENT LINE IS SET TO THE LAST LINE IN WHICH A SUBSTITUTION
TOOK PLACE.  ^IF A SUBSTITUTION DID NOT OCCUR, THE VALUE OF THE
CURRENT LINE WILL NOT BE UPDATED.
.BLANK 1
^IT IS ALSO POSSIBLE TO PERFORM SEVERAL SUBSTITUTIONS AT ONE
TIME.  ^ALL TEXT TO BE LOCATED AND CHANGED IS SPECIFIED FIRST, 
FOLLOWED BY AN #$# AND ALL THE TEXT TO BE SUBSTITUTED, FOLLOWED
BY THE RANGE.
.BLANK 1
^THE FORM OF THIS COMMAND IS:
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
^S<OLDSTRING1>(^^CR\\)
<OLDSTRING2>(^^CR\\)
     _.
     _.
     _.
<OLDSTRINGN>#$#<NEWSTRING1>(^^CR\\)
<NEWSTRING2>(^^CR\\)
     _.
     _.
     _.
<NEWSTRINGN>#$#<RANGE>(^^CR\\)
.BLANK 1
.FILL
.JUSTIFY
.LEFT MARGIN 0
^IF THERE ARE FEWER "NEWSTRINGS" THAN "OLDSTRINGS," THE LAST
"NEWSTRING" IS SUBSTITUTED FOR THE EXTRA "OLDSTRINGS."
^UP TO SIX OLDSTRING AND SIX NEWSTRINGS (CONTAINING 200
CHARACTERS IN ALL) MAY BE USED; IF EITHER IS EXCEEDED, ONE OF THE
FOLLOWING ERROR MESSAGES MAY APPEAR: "%^^TOO MANY STRINGS\\"
OR "%^^STRING TOO LONG".
.BLANK 3
OPTIONS\\
.BLANK 1
^THE COMPLETE ^SUBSTITUTE COMMAND FORMAT, INCLUDING OPTIONS,
IS AS FOLLOWS:
.BLANK 1
*^S[<OLDSTRING>#$#<NEWSTRING>]#$#[<RANGE>][,^^D#,N][,E\\][,<NUMBER>](^^CR\\)
.BLANK 1
.TAB STOPS 50
	<OPTIONS>
.BLANK 1
^SUBSTITUTE COMMAND OPTIONS ARE DEFINED BELOW:
.BLANK 1
.LEFT MARGIN 10
.TAB STOPS 10
.INDENT -10
^D	^BY SPECIFYING THIS OPTION, THE USER CAN LOOK AT EACH
LINE AFTER THE SUBSTITUTIONS HAVE BEEN MADE IN ORDER TH
"DECIDE" IF HE PREFERS THE NEW LINE OR THE OLD ONE.  ^AFTER
EACH LINE IS PRINTED, ^^SOS\\ WILL WAIT FOR THE USER TO TYPE ONE
OF THE FOLLOWING CHARACTERS:
.BLANK 1
.INDENT -10
^^RUBOUT\\	^THE INDICATED SUBSTITUTIONS WILL NOT BE MADE;
THE OLD VERSION OF THE LINE WILL BE RETAINED.  ^^SOS\\ WILL
THEN PRINT THE NEXT LINE AND, WHEN FOUND, WILL WAIT FOR ANOTHER
"^D" COMMAND CHARACTER.
.BLANK 1
.INDENT -10
^E	^^SOS\\ WILL RETURN IMMEDIATELY TO COMMAND MODE WITHOUT
PERFORMING THE SUBSTITUTIONS.
.BLANK 1
.INDENT -10
^^G	SOS\\ WILL USE THE MODIFIED LINE TO REPLACE
THE ORIGINAL LINE; ^DECIDE MODE WILL BE HALTED AND
FURTHER SUBSTITUTIONS WILL BE MADE AUTOMATICALLY.
.BLANK 1
.INDENT -10
^^A	SOS\\ WILL ENTER INTRALINE EDIT MODE WITH THE
SUBSTITITIONS ALREADY MADE; THE USER THEN CAN ISSUE
ONE OF THE FOLLOWING:
.BLANK 1
#_^^U###^RESTORE THE ORIGINAL LINE.
.BLANK 1
(^^CR\\)##^LEAVE INTRALINE EDIT MODE AND CONTINUE SUBSTITUTION.
.BLANK 1
.LEFT MARGIN 16
.INDENT -6
^Q#####^ABORT THE ENTIRE PROCESS BY RETUNING ^^SOS\\ TO COMMAND
MODE.
.BLANK 1
.LEFT MARGIN 0
^ANY OTHER CHARACTER (E.G., A SPACE OR A (^^CR\\)) WILL
AUTOMATICALLY CAUSE THE NEW LINE TO REPLACE THE OLD LINE AND
SUBSTITUTION TO CONTINUE.
.BLANK 1
.LEFT MARGIN 12
.TAB STOPS 12
.INDENT -12
^N	^THIS OPTION WILL SUPPRESS THE PRINTING OF THOSE
LINES IN WHICH A SUBSTITUTION HAS BEEN MADE.
.BLANK 1
.INDENT -12
^E	^THIS OPTION WILL CAUSE UPPER AND LOWER CASE LETTERS
TO BE TREATED AS NON-IDENTICAL IN THE "OLD"
STRING.  ^THIS SHOULD COME AFTER ^D OR ^N, IF 
EITHER IS PRESENT, OR AFTER THE RANGE.  ^SEE ^CHAPTER 9.
.BLANK 1
.INDENT -12
<NUMBER>	"<NUMBER>" SPECIFIES THE NUMBER OF LINES
OF A GIVEN STRING TO BE SUBSTITUTED - 99999 USUALLY WILL
INCLUDE THEM ALL.
.BLANK 3
.LEFT MARGIN 0
6.11##^^THE COPY COMMAND - "C"\\
.BLANK 1
^THE ^COPY COMMAND WILL INSERT A COPY OF EXISTING TEXT AT
A GIVEN LOCATION.  ^ITS FORMAT IS:
.BLANK 1
.INDENT 2
*^C<DESTINATION LINE NUMBER>,<SOURCE RANGE>[,<INC1>[,<INC2>]](^^CR\\)
.BLANK 1
^THE ^COPY COMMAND ACTS AS IF AN ^INSERT COMMAND HAD
BEEN DONE FOR A GIVEN LOCATION, AND THEN AS IF ALL OF THE LINES
SPECIFIED BY THE SOURCE RANGE HAD BEEN TYPED IN, USING
THE SPECIFIED INCREMENT BETWEEN DESTINATION LINE NUMBERS.  ^IF 
THE INCREMENT IS TOO LARGE, ^^SOS\\ WILL PRINT "%^^OUT OF ORDER\\"
OR "%^^WRAP AROUND\\", AND THEN CHOOSE A SMALLER INCREMENT, WHICH
IS INDICATED AS FOLLOWS:
.BLANK 1
.INDENT 10
^^INC\\1=<NUMBER>
.BLANK 1
^IF, FOR SOME REASON, ^^SOS\\ CANNOT CHOOSE A SMALL ENOUGH
INCREMENT, IT WILL PRINT
.BLANK 1
.INDENT 10
^^INC1=ORDER\\ OR ^^INC1=WAR\\
.BLANK 1
^THE SPECIFIED INCREMENT WILL BE USED, AND ^^SOS\\ WILL COPY AS
MANY LINES AS POSSIBLE INTO THE AVAILABLE SPACE.
.BLANK 1
^SINCE ALL THE TEXT TO BE COPIED MUST BE CONTAINED IN CORE AT
ONE TIME, COPYING LARGE BLOCKS OF TEXT MAY RESULT IN THE ERROR
MESSAGE "%^^INSUFFICIENT CORE AVAILABLE\\".  ^THE ONLY SOLUTION
IS TO COPY SEVERAL SMALLER BLOCKS OF TEXT.
.BLANK 1
^IF THE SOURCE LINES CONTAIN PAGE MARKS, THE RENUMBERING OF LINES
AT THE DESTINATION USING THE FIRST INCREMENT WILL CEASE WHEN
THE FIRST PAGE MARK IS REACHED; THEN ALL LINES BETWEEN THE FIRST
AND LAST PAGE MARKS WILL BE INSERTED WITH ORININAL NUMBERS.  ^LINES
AFTER THE LAST PAGE MARK WILL BE INSERTED WITH THE ORININAL NUMBERS, 
UNLESS A SECOND INCREMENT (<INC2>) FOR THE DESTINATION
LINE NUMBERS IS SPECIFIED IN THE COMMAND.
.BLANK 1
^IF THE SECOND INCREMENT IS TOO LARGE, ^^SOS\\ WILL PRINT
ONE OF THE FOLLOWING ERROR MESSAGES: "%^^OUT OF ORDER\\" OR
"%^^WRAP AROUND\\".
.BLANK 1
^IF THE SECOND INCREMENT IS NOT SPECIFIED AND RENUMBERING IS
NOT DONE, ^^SOS\\ WILL PRINT "%^^OUT OF ORDER\\".
.BLANK 1
^IN BOTH CASES, ^^SOS\\ WILL TRY TO USE A DIFFERENT
INCREMENT, AS INDICATED BY
.BLANK 1
.INDENT 10
^^INC\\2=<NUMBER>
.BLANK 1
^IF ^^SOS\\ CANNOT FIND A SUITABLE INCREMENT, IT WILL PRINT
.BLANK 1
.INDENT 10
^^INC2=ORDER\\
.BLANK 1
^^SOS\\ THEN WILL USE THE SPECIFIED INCREMENT (OR THE ORIGINAL
LINE NUMBERS IF A SECOND INCREMENT HAD NOT BEEN STATED IN THE
COMMAND), AND WILL INSERT AS MANY LINES AS POSSIBLE INTO THE
REMAINING AVAILABLE SPACE.
.BLANK 1
^THE ^COPY COMMAND WILL ENABLE THE USER TO COPY LINES FROM A FILE
OTHER THAN THE ONE PRESENTLY BEING EDITED.  ^IF THE
LINE NUMBERS OF THIS OTHER FILE ARE UNKNOWN, THEN THE USER
WILL FIRST TYPE:
.BLANK 1
.INDENT 10
*^C<DESTINATION LINE NUMBER>__<SOURCE FILENAME>/^^S(CR\\)
.BLANK 1
^THIS WILL CAUSE ^^SOS\\ TO RESPOND WITH AN ASTERISK (*).
"/^S" PLACES THE INDICATED SOURCE FILE IN READ-ONLY MODE.  ^THE
DESIRED LINES ARE FOUND BY USING THE ^PRINT, ^LIST, OR ^FIND
COMMANDS.  ^AFTER THE LINES HAVE BEEN FOUND, TYPE
.BLANK 1
.INDENT 10
*^^E(CR\\)
.BLANK 1
^^SOS\\ WILL REPLY
.BLANK 1
.INDENT 10
^^SOURCE LINES\\=
.BLANK 1
^AT THIS POINT, THE REST OF THE ^COPY COMMAND SHOULD BE TYPED.
.BLANK 1
.INDENT 10
<SOURCE RANGE>[,<INC1>[,<INC2>]](^^CR\\)
.BLANK 1
^THE CURRENT LINE WILL BE SET TO THE LAST LINE COPIED.
.BLANK 3
6.12##^^THE TRANSFER COMMAND - "T"\\
.BLANK 1
^THE ^TRANSFER COMMAND MOVES A SET OF LINES FROM ONE LOCATION
IN A FILE TO ANOTHER.
.BLANK 1
.INDENT 2
*^T<DESTINATION LINE NUMBER>,<SOURCE RANGE>[,<INC1>[,<INC2>]](^^CR\\)
.BLANK 1
^THE ^TRANSFER COMMAND IS THE SAME AS A ^COPY COMMAND FOLLOWED
BY A ^DELETE COMMAND.  ^WITH THE ^TRANSFER COMMAND (UNLIKE THE
^COPY COMMAND) -
.BLANK 1
.LEFT MARGIN 7
.INDENT -4
1.##^THE SOURCE RANGE MUST BE IN THE FILE CURRENTLY BEING EDITED.
.BLANK 1
.INDENT -4
2.##^THE ERROR MESSAGE "%^^ILLEGAL TRANSFER DESTINATION\\" WILL
BE PRINTED WHEN THE DESTINATION IS INSIDE THE SOURCE RANGE,
AS IN
.BLANK 1
.INDENT 3
*^T100/3,/2:/5(^^CR\\)
.BLANK 1
.LEFT MARGIN 0
^IF AN "%^^OUT OF ORDER\\" ERROR MESSAGE IS PRINTED BECAUSE
OF THE REMOVAL OF A PAGE MARK, ^^SOS\\ THEN WILL REINSERT
ONE PAGE MARK AND PRINT "^^PAGE MARK INSERTED TO PREVENT ORDER
ERROR\\".
.BLANK 1
^IF THE SPECIFIED DESTINATION IS ON A PAGE WHICH DOES NOT EXIST,
^^SOS\\ WILL INSERT THE TEXT AT THE END OF THE FILE AND PRINT
"^^TEXT INSERTED AT END OF FILE\\".  ^^SOS\\ ALSO WILL INSERT
A PAGE MARK TO PREVENT AN "%^^OUT OF ORDER\\" ERROR MESSAGE.
.BLANK 1
^NOTE THAT <INC2> MUST BE USED IF LINE NUMBERS OTHER
THAN THE ORININAL ARE DESIRED FOR THE LAST PAGE.
.BLANK 3
6.13##^^THE JOIN COMMAND - "J"\\
.BLANK 1
^THE ^JOIN COMMAND JOINS TWO CONSECUTIVE LINES BY DELETING
THE CARRIAGE RETURN/LINEFEED SEQUENCE AT THE END OF ONE LINE
AND THE LINE NUMBER AND ^^TAB\\ OF THE NEXT LINE.
.BLANK 1
.INDENT 10
*^J<LINE>(^^CR\\)
.BLANK 1
<LINE> IS THE FIRST OF THE PAIR OF LINES TO BE JOINED.
^THE LINE NUMBER OF THE NEW LINE THAT IS CREATED WILL BE THE
SAME AS THIS FIRST LINE.
.BLANK 1
^IF THERE ARE NO ERRORS, THE CURRENT LINE IS THE
LINE THAT IS CREATED.
.BLANK 1
^THE LINES WILL NOT BE JOINED IF ^^SOS\\ PRINTS THE ERROR
MESSAGE "%^^LINE TOO LONG\\".
.BLANK 1
^IF THE LINE SPECIFIED AS THE ARGUMENT IS THE LAST LINE ON 
THE PAGE, ^^SOS\\ WILL GIVE THE ERROR MESSAGE "$^^NO NEXT LINE\\".
.BLANK 3
6.14##^^THE NUMBER COMMAND - "N"\\
.BLANK 1
^AFTER AN "%^^OUT OF ORDER\\" MESSAGE (OR AT ANY OTHER TIME),
IT IS POSSIBLE TO RENUMBER THE FILE, OR PORTIONS
OF IT, BY USING THE ^NUMBER COMMAND:
.BLANK 1
.INDENT 10
*^N<INCREMENT>[,<RANGE>[,<STARTING NUMBER>]](^^CR\\)
.BLANK 1
^THE FIRST ARGUMENT IS THE INCREMENT TO BE USED IN THE
RENUMBERED FILE.  ^THE FIRST LINE THAT IS RENUMBERED IS GIVEN
THIS NUMBER, UNLESS THE THIRD ARGUMENT IS SPECIFIED.  ^EACH
SUCCEEDING LINE WILL BE GIVEN A NUMBER THAT IS THE SUM OF THE
INCREMENT AND THE PREVIOUSLY ASSIGNED LINE NUMBER.
.BLANK 1
^IF RENUMBERING CROSSES A PAGE MARK, THE FIRST LINE ON THE 
NEW PAGE WILL BE GIVEN THE "STARTING NUMBER" - I.E., EITHER THE 
THIRD ARGUMENT OR THE FIRST ARGUMENT (IF THE THIRD IS OMITTED).
^FOR EXAMPLE,
.BLANK 1
^^BEFORE RENUMBERING\\:
.BLANK 1
.LEFT MARGIN 10
.TAB STOPS 20,28,36,44
^^PAGE#2	115	126	137	150
.BLANK 1
PAGE#3	900	911	952	999
.BLANK 1
*N10,/2:/3(^^CR\\)
.BLANK 1
.INDENT -10
^^AFTER RENUMBERING:
.BLANK 1
PAGE#2	10	20	30	40
.BLANK 1
PAGE#3	10	20	30	40\\
.BLANK 1
.LEFT MARGIN 0
^IF THE SECOND ARGUMENT IS ABSENT (INDICATING THE RANGE TO BE
RENUMBERED), THE ENTIRE FILE WILL BE RENUMBERED.
^IF THERE ARE NO LINES IN THE SPECIFIED RANGE, ^^SOS\\ WILL PRINT
THE ERROR MESSAGE "%^^NO SUCH LINE(S)".\\
.BLANK 1
^THE ^NUMBER COMMAND IS USEFUL IN RENUMBERING
A PAGE BEFORE THE PAGE MARK IS DELETED IN ORDER TO AVOID AN
"%^^OUT OF ORDER\\" ERROR MESSAGE.
.BLANK 1
^IF THE USER DELETES THE PAGE MARK BEFORE RENUMBERING, HE
SHOULD ISSUE THE ^NUMBER COMMAND WITH THE "/." RANGE SPECIFICATION,
THE DESIRED INCREMENT, AND STARTING POINT, IF DESIRED.
.LEFT MARGIN 35
.TAB STOPS 35
.BLANK 1
.INDENT -25
*^^N10,/.(CR\\)	^RENUMBER THE CURRENT PAGE WITH AN INCREMENT
AND STARTING POINT OF 10.
.BLANK 1
.LEFT MARGIN 0
^AFTER RENUMBERING, THE CURRENT NUMBER AND PAGE WILL BE SET TO 
THE NUMBER OF THE LAST RENUMBERED LINE.  ^AN INCREMENT OF 0 WILL
RESULT IN THE ERROR MESSAGE "%^^ILLEGAL COMMAND\\".  ^IF THE
SPEDIFIED INCREMENT IS SO LARGE THAT IT CAUSES SOME LINE NUMBERS
TO BE GREATER THAN 99999, THE HIGH-ORDER DIGITS OF THESE
LINE NUMBERS WILL BE DROPPED.  ^^SOS\\ WILL THEN PRINT THE
ERROR MESSAGE "%^^WRAP AROUND\\" ALONG WITH THE PAGE ON WHICH
THE PROBLEM OCCURRED.  ^THE PAGE WILL BE OUT OF ORDER AND SHOULD
BE RENUMBERED WITH A SMALLER INCREMENT.
.BLANK 3
6.15##^^THE JUSTIFY COMMAND - "JU"\\
.BLANK 1
^THE ^^JU\\STIFY COMMAND JUSTIFIES THE TEXT IN A SPECIFIED RANGE
BY IGNORING ALL LINE NUMBERS, RETURNS, AND LINEFEEDS:
.BLANK 1
.INDENT 10
*^^JU\\<RANGE>(^^CR\\)
.BLANK 1
^LINE NUMBERS, RETURNS, LINEFEEDS, AND BLANKS ARE THEN INSERTED
SO THAT THE LINE LENGTH IS THE DIFFERENCE BETWEEN THE RIGHT
(^^RMAR\\) AND LEFT (^^LMAR\\) MARGINS PLUS ONE:
.BLANK 1
.INDENT 10
^^RMAR-LMAR\\+1=LINE LENGTH
.BLANK 1
^INSERTING ANY ADDITIONAL CHARACTERS WILL RESULT IN UNJUSTIFIED
TEXT.  ^NOTE THAT THE DEFAULT VALUES OF "^^RMAR\\" AND "^^LMAR\\"
ARE 69 AND 1 RESPECTIVELY.
.BLANK 1
^IF THE RIGHT MARGIN IS LESS THAN THE LEFT, ^^SOS\\ WILL PRINT
"%^^MARGIN ERROR\\".
.BLANK 1
^IN THIS CASE, USE THE ^SET COMMAND TO RESET EITHER OR BOTH MARGINS.
.BLANK 1
^^SOS\\ INSERTS EXTRA BLANKS BETWEEN WORDS, STARTING FROM THE 
LEFT OR RIGHT ON ALTERNATE LINES, TO MAKE THE LINE LENGTH
"^^RMAR-LMAR\\+1".
.BLANK 1
^A WORD IS ANYTHING BETWEEN BLANKS.  (^THE END OF THE
ORIGINAL LINE IS CONSIDERED A BLANK.)  ^A WORD THAT ENDS WITH
".", "?", OR "!" MAY BE FOLLOWED BY TWO BLANKS; OTHERWISE, ONLY
ONE BLANK IS ALLOWED, AND ALL OTHER BLANKS WILL BE IGNORED.
.BLANK 1
^^SOS\\ INSERTS BLANKS AT THE BEGINNING OF THE
NEW LINE EQUIVALENT TO THE VALUE OF THE LEFT MARGIN MINUS 1.
^THE NEW LINE NUMBER IS THE SAME AS THE NUMBER DERIVED BY THE
^NUMBER COMMAND:
.BLANK 1
.INDENT 10
*^N<INCREMENT>,<RANGE>(^^CR\\)
.BLANK 1
^A PAGE MARK AUTOMATICALLY WILL BE INSERTED IF THE NEXT
LINE NUMBER EXCEEDS THE MAXIMUM LINE NUMBER (^^MAXLN\\)
WHOSE DEFAULT IS 99999.  ^IF THIS OCCURS, THE USER WILL BE
INFORMED.
.BLANK 1
^PARAGRAPHING WILL CAUSE EXCEPTIONS TO THE ABOVE PROCEDURES.
^THE END OF A PARAGRAPH IS INDICATED BY ONE OF THE FOLLOWING
CONDITIONS:
.BLANK 1
.LEFT MARGIN 5
1.##^TAB IN THE FIRST CHARACTER POSITION
.BLANK 1
2.##^BLANK LINE
.BLANK 1
3.##^PAGE MARK
.BLANK 1
4.##^BEGINNING OR END OF SPECIFIED RANGE
.BLANK 1
.LEFT MARGIN 0
^WHEN ONE OF THESE CONDITIONS IS ENCOUNTERED, THE LINE THAT
IMMEDIATELY PRECEDES THE END OF THE PARAGRAPH IS NOT EXPANDED
(UNLESS IT IS THE BEGINNING OF THE RANGE).  ^THE LINE, HOWEVER,
IS PLACED AT THE ^^LMAR\\, WITH LEADING BLANKS INSERTED 
IF NECESSARY.
.BLANK 1
^IF THE PARAGRAPH BEGINS WITH A TAB (8 SPACES, ENTERED DURING
^INSERT MODE BY ^^CTRL-TAB\\), THE TAB IS MERELY INSERTED INTO
THE TEXT.  ^OTHERWISE, THE PARAGRAPH WILL BEGIN WITH THE PARAGRAPH
MARGIN (^^PMAR\\) WHOSE DEFAULT IS 1, RATHER THAN THE ^^LMAR\\.
.PAGE
.BLANK 3
6.16##^^THE JUSTIFY LEFT COMMAND - "JL\\"*
.FOOTNOTE 6
.BLANK 1
---------------
.BREAK
*^^WARNING\\:  ^AFTER A LINE THAT EXCEEDS ^^RMAR-LMAR\\+1,
^^SOS\\ WILL PRINT THE ERROR MESSAGE "%^^LINE TOO LONG\\".
^THE TEXT, WHEN PRINTED, MAY NOT BE AS EXPECTED; THE MARGINS
SHOULD BE RESET AND THE COMMAND SHOULD BE REISSUED.
!
.BLANK 1
^THE ^JUSTIFY ^LEFT COMMAND REMOVES LEADING BLANKS
FROM LINES OF A RANGE AND INSERTS ^^LMAR\\-1 BLANKS TO
MOVE THE LINES TO THE LEFT MARGIN.
.BLANK 1
.INDENT 10
*^^JL\\<RANGE>(^^CR\\)
.BLANK 1
^THE FIRST LINE OF A PARAGRAPH IS TREATED AS IN THE
^^JU\\STIFY COMMAND.  ^NO CHOPPING, FILLING, OR RENUMBERING,
HOWEVER, IS DONE.
.BLANK 3
6.17##^^THE JUSTIFY RIGHT COMMAND - "JR"\\*
.BLANK 1
^IT IS ALSO POSSIBLE TO RIGHT JUSTIFY A RANGE
OF TEXT:
.BLANK 1
.INDENT 10
*^^JR\\<RANGE>(^^CR\\)
.BLANK 1
^ENOUGH BLANKS ARE INSERTED AT THE BEGINNING OF THE LINE SO THAT
THE RIGHT END OF THE LINE IS AT THE RIGHT MARGIN.  ^IF
ANY TABS ARE PRESENT, THE REQUIRED BLANKS ARE INSERTED TO THE
RIGHT OF THE RIGHTMOST TAB IN THE LINE.
.BLANK 3
6.18##^^THE JUSTIFY CENTER COMMAND - "JC\\"*
.BLANK 1
^THE ^JUSTIFY ^CENTER COMMAND CENTERS THE LINES OF A RANGE BETWEEN
THE LEFT AND RIGHT MARGINS:
.BLANK 1
.INDENT 10
*^^JC\\<RANGE>(^^CR\\)
.BLANK 1
^^JC\\ IS LIKE THE ^^JR\\ COMMAND, EXCEPT THAT ONLY HALF
AS MANY BLANKS ARE INSERTED TO MAKE THE LINE CENTERED
BETWEEN ^^LMAR\\ AND ^^RMAR\\.
.BLANK 3
6.19##^^THE JUSTIFY WORD COMMAND - "JW\\"
.BLANK 1
^THE ^JUSTIFY ^WORD COMMAND, LIKE THE ^^JU\\STIFY COMMAND
(^SECTION 6.15), JUSTIFIES A LINE OF TEXT.  ^IN THIS CASE,
^^SOS\\ INCLUDES AS MANY WORDS AS POSSIBLE BETWEEN ^^LMAR\\
AND ^^RMAR\\ WITHOUT ADDING BLANKS OR HYPHENATING.  ^THE TEXT,
THEREFORE, APPEARS AS TYPEWRITTEN TEXT WITHOUT A JUSTIFIED
RIGHT MARGIN.
.BLANK 1
^THE FORMAT OF THE ^^JW\\ COMMAND IS AS FOLLOWS:
.BLANK 1
.INDENT 10
*^^JW\\<RANGE>(^^CR\\)
.BLANK 3
6.20##^^THE SET COMMAND\\ - "__"
.BLANK 1
^THE ^SET COMMAND SETS (OR CHANGES) PARAMETERS IN ^^SOS\\:
.BLANK 1
.INDENT 10
*__<PARAMETER>[=<NUMBER>](^^CR\\)
.BLANK 1
^FOR EXAMPLE, AFTER ^^SOS\\ HAS BEEN USED FOR A WHILE, THE 
USER MAY WANT SHORTER FORMS OF ERROR MESSAGES.  ^BY TYPING
.BLANK 1
.INDENT 10
*__^^EXPERT(CR\\)
.BLANK 1
ALL ERROR MESSAGES WILL BE ABBREVIATED TO FIVE CHARACTERS OR
LESS (SEE ^APPENDIX ^A).  ^THIS IS REVERSED BY TYPING
.BLANK 1
.INDENT 10
*__^^NOVICE(CR\\)
.BLANK 1
^NOTE THAT ^^SOS\\ BEGINS IN __^^NOVICE\\ MODE.
.BLANK 1
^FOR THE INTRALINE EDIT MODE ^W AND ^X COMMANDS, THE PER CENT
SIGN, DOLLAR SIGN, AND PERIOD ARE CONSIDERED PART OF THE WORD.
^THE USE THESE AS SEPARATORS OR DELIMITERS, TYPE
.BLANK 1
.INDENT 10
*__^^SEPARATOR(CR\\)
.BLANK 1
^THIS IS REVERSED BY TYPING "*__^^NONSEPARATOR(CR\\)", THE
DEFAULT CONDITION WHEN ^^SOS\\ BEGAIN EDIT MODE.
.BLANK 1
^THE PARAMETERS USED IN THE FAMILY OF ^JUSTIFY COMMANDS
(^^LMAR, RMAR, PMAR, MAXLN\\), THE INCREMENT PARAMETER (^^INC\\),
AND THE ^^LENGTH\\ PARAMETER (^PRINT OPTION)
MAY BE ASSIGNED NEW VALUES AS FOLLOWS:
.BLANK 1
.TAB STOPS 30
.LEFT MARGIN 10
*__^^LMAR=5(CR)	*__MAXLN=1000(CR)
.BLANK 1
*__RMAR=65(CR)	*__INC=50(CR)
.BLANK 1
*__PMAR=10(CR)	*__LENGTH=60(CR\\)
.BLANK 1
.LEFT MARGIN 0
^THE NEWLY-ASSIGNED VALUES ARE ONLY VALID WHILE EDITING THE CURRENT FILE.
.BLANK 1
^IT IS POSSIBLE TO CHANGE THE NAME OF THE RESULTANT EDITED FILE
.BLANK 1
.INDENT 10
*__^^NAME\\=<FILENAME>(^^CR\\)
.BLANK 3
6.21##^^THE GIVE INFORMATION COMMAND\\ - "="
.BLANK 1
^ANY TIME THE USER IS IN COMMAND MODE, HE MAY REQUEST THE VALUE
OF A PARAMETER BY USING THE ^GIVE ^INFORMATION COMMAND:
.BLANK 1
.INDENT 10
*=<PARAMETER>(^^CR\\)
.BLANK 1
^POSSIBLE ^GIVE PARAMETERS ARE:
.BLANK 1
.LEFT MARGIN 16
.TAB STOPS 16
.INDENT -16
*=^^INC(CR\\)	^PRINT THE CURRENT INCREMENT.
.BLANK 1
.INDENT -16
*=.(^^CR\\)	^PRINT <CURRENT LINE NUMBER>/<CURRENT PAGE>.
.BLANK 1
.INDENT -16
*=^^LMAR(CR\\)	^PRINT THE CURRENT VALUE FOR THE LEFT MARGIN.
.BLANK 1
.INDENT -16
*=^^PMAR(CR\\)	^PRINT THE CURRENT VALUE USED FOR
PARAGRAPH IDENTATION.
.BLANK 1
.INDENT -16
*=^^RMAR(CR\\)	^PRINT THE CURRENT VALUE FOR THE RIGHT MARGIN.
.BLANK 1
.INDENT -16
*=^^MAXLN(CR\\)	^PRINT THE MAXIMUM LINE NUMBER ALLOWED IN THE
^^JU\\ COMMAND.
.BLANK 1
.INDENT -16
*=^^BIG(CR\\)	^PRINT THE PAGE NUMBER OF THE LARGEST PAGE IN THE FILE.
.BLANK 1
.INDENT -16
*=^^ERROR(CR\\)	^PRINT THE LAST ERROR MESSAGE - IN THE LONG FORM,
EVEN IF "__^^EXPERT\\" IS IN EFFECT.
.BLANK 1
.INDENT -16
*=^^STRING(CR\\)	^PRINT THE STRING USED BY THE ^FIND AND
^SUBSTITUTE COMMANDS:
.BLANK 1
#####^^SEARCH\\:
.BREAK
<^FIND COMMAND STRING(S)>
.BREAK
#####^^SUBSTITUTE\\:
.BREAK
<^SUBSTITUTE COMMAND NEWSTRING(S)>
.BREAK
#####^^FOR\\:
.BREAK
<^SUBSTITUTE COMMAND OLDSTRING(S)>
.BLANK 1
.INDENT -16
*=^^CASE(CR\\)	^PRINT WHETHER ^^SEPARATOR\\ (OR OTHER WORDS
DESCRIBED IN ^CHAPTER 9) HAS BEEN SET.
.BLANK 1
.INDENT -16
*=^^NAME(CR\\)	^PRINT THE NAME OF THE RESULTANT OUTPUT FILE.
.BLANK 1
.INDENT -16
*=^^LENGTH(CR\\)	^PRINT THE LENGTH USED FOR DETERMINING THE
END OF THE PAGE IN THE ^PRINT COMMAND OPTIONS.
.BLANK 3
.LEFT MARGIN 0
6.22##^^LINE CONTENTS SPECIFICATION - ALL COMMANDS\\
.BLANK 1
^IN ^^SOS\\ IT IS POSSIBLE TO ADDRESS LINES BY CONTENT, RATHER
THAN LINE NUMBERS.  ^THIS IS DONE BY REPLACING EACH <LINE NUMBER>
FIELD OF ANY COMMAND WITH
.BLANK 1
.INDENT 10
#$#<STRING>#$#(^^CR\\)
.BLANK 1
^THE REST OF THE ORININAL COMMAND STRING CONTINUES ON THE NEXT
LINE.  ^THIS MAY BE ANOTHER "#$#<STRING>#$#(^^CR\\)"
OR (^^CR\\) ALONE WHICH TERMINATES THE ENTIRE COMMAND.  ^FOR
EXAMPLE, TO PRINT EVERYTHING BETWEEN A LINE CONTAINING "^^ONE\\"
AND A LINE CONTAINING "^^TWO\\", TYPE THE COMMAND
.BLANK 1
.INDENT 10
*^^P#$#ONE#$#(CR)
.INDENT 10
:#$#TWO#$#(CR)
.INDENT 10
(CR\\)
.INDENT 10
*
.BLANK 1
^NOTE THAT THREE CARRIAGE RETURNS ARE REQUIRED: ONE FOR EACH
STRING OF TEXT AND ONE FOR TERMINATING THE ^PRINT COMMAND.
.BLANK 1
^IF THE STRING BETWEEN TWO #$#S IS NULL, THEN THE STRING LAST
USED IN THIS CONTEXT WILL BE USED AGAIN.  (^STRINGS FROM THE
^FIND AND ^SUBSTITUTE COMMANDS DO ^^NOT\\ QUALIFY.)
^NORMALLY, THE SEARCH BEGINS WITH THE CURRENT POSITION
AND CONTUNUES THROUGH THE END OF THE FILE.  ^A RANGE, HOWEVER,
MAY BE SPECIFIED AS FOLLOWS:
.BLANK 1
.INDENT 10
#$#[<STRING>]#$#[<RANGE>][,^^D#,N][,E\\][,<NUMBER>](^^CR\\)
.BLANK 1
<RANGE> MAY BE SPECIFIED AS A GROUP OF LINE NUMBERS, OR THE
LINE CONTENTS SPECIFICATION DESCRIBED ABOVE MAY BE SUBSTITUTED.  ^IN
THE LATTER CASE, <RANGE> PROVIDES THE OUTER BOUNDARIES FOR THE
SEARCH.  <RANGE> MAY BE NESTED A MAXIMUM OF THREE TIMES.
.BLANK 1
.LEFT MARGIN 10
.TAB STOPS 35
*^^P#$#C#$#(CR)	P\\RINT ALL THE LINES BETWEEN, AND
.BREAK
:#$#^^B#$##$#D#$#(CR\\)	INCLUDING, THE FIRST OCCURRENCE OF
.BREAK
:#$#^^G#$#(CR\\)	^C AND THE FIRST OCCURRENCE OF ^B.
.BREAK
.LEFT MARGIN 35
.INDENT -25
(^^CR\\)	^ONLY USE THAT PORTION OF TEXT BETWEEN THE
FIRST OCCURRENCES OF ^D AND ^G.
.BLANK 1
.LEFT MARGIN 0
^WHERE THE SAMPLE TEXT IS:
.BLANK 1
.LEFT MARGIN 5
.TAB STOPS 15,40
.NOFILL
.NOJUSTIFY
00300	^B###__CURRENT LINE
00400	^C
00500	^D
00600	^B	^SEARCH THROUGH THIS AREA
00700	^C	FOR LINES ^C AND ^B.
00800	^A###^PRINT THESE 3 LINES
00900	^B
01000	^G
.BLANK 1
.FILL
.JUSTIFY
.LEFT MARGIN 0
^ADDING EITHER THE ",^D" OR ",^N" OPTION WILL CAUSE THE ENTIRE LINE
(",^D") OR THE LINE NUMBER (",^N") OF THE FIRST OCCURRENCE OF THE
TEXT TO BE PRINTED.  ^^SOS\\ THEN WILL PRINT AN *.  ^IF THE USER
TYPES ^^RUBOUT\\ AT THIS POINT, ^^SOS\\ WILL SEARCH FOR THE NEXT
LINE CONTAINING THE TEXT AND THEN PRINT THE LINE OR LINE NUMBER.
^TYPING ANY OTHER CHARACTER WILL TERMINATE THE SEARCH FOR THE
PARTICULAR TEXT.
.BLANK 1
^THE ",^E" OPTION SPECIFIES THAT UPPER AND LOWER
CASE CHARACTERS ARE NOT EQUIVALENT (SEE ^CHAPTER 9).
.BLANK 1
<NUMBER> INDICATES A NUMBER OF TIMES THE STRING OCCURS.  ^^SOS\\
WILL SKIP TO THE LAST OCCURRENCE OF THIS SPECIFICATION AND USE
THAT LINE AS THE STARTING POINT FOR ITS SEARCH.
.BLANK 1
.LEFT MARGIN 30
.TAB STOPS 30
.INDENT -20
*^^P#$#1#$#,D,3(CR)	SOS\\ WOULD PRINT ALL THE LINES BETWEEN,
.INDENT -20
:#$#4#$#(^^CR\\)	AND INCLUDING, THE FIRST OCCURRENCE OF
.INDENT -20
(^^CR\\)	1 AND THE FIRST OCCURRENCE OF 4;
HOWEVER, 3 IN THE NUMBER FIELD INDICATES THAT ^^SOS\\ SHOULD
USE THE THIRD OCCURRENCE OF 1 AS ITS STARTING POINT.
.BLANK 1
.LEFT MARGIN 0
^WHERE THE SAMPLE TEXT IS:
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
1
2
1
2
1 __STARTING POINT
2
3
4
1
2
.BLANK 1
.LEFT MARGIN 15
.RIGHT MARGIN 55
.FILL
.JUSTIFY
.CENTER
^^NOTE:
.BLANK 1
RUBOUT\\, WHEN USED WITH THE ",^D" OR ",^N" OPTION, MAY
ONLY BE REPEATED "NUMBER-1" TIMES.
.BLANK 3
.LEFT MARGIN 0
.RIGHT MARGIN 70
6.23##^^THE QUIT COMMAND - "Q"
.BLANK 1
S\\HOULD THE USER REALIZE THAT HIS EDITING IS USELESS, HE MAY
RETURN TO THE MONITOR WITHOUT SAVING THE EDITED VERSION OF THE FILE
BY USING THE ^QUIT COMMAND:
.BLANK 1
.INDENT 10
*^^Q(CR\\)
.BLANK 1
^^SOS\\ WILL RESPOND BY RETURNING HIM TO THE MONITOR.
.BLANK 1
.INDENT 10
^^EXIT\\
.BLANK 1
^^WARNING:  CTRL-C\\ (_^^C) SHOULD NEVER BE USED TO RETURN TO
THE MONITOR WHILE ^^SOS\\ IS OPERATING SINCE UNNECESSARY
TEMPORARY FILES WILL BE SAVED.  ^USE THE ^QUIT COMMAND.
.BLANK 3
6.24##^^THE END COMMAND - "E"\\
.BLANK 1
^THE ^END COMMAND IS USED TO TERMINATE THE CURRENT EDIT.
.BLANK 1
.INDENT 10
*^E[<FILENAME>](^^CR\\)
.BLANK 1
^IF A FILENAME IS NOT SPECIFIED, THE ORIGINAL COPY OF THE FILE
BEING EDITED WILL BE RENAMED TO <FILENAME>.^^BAK\\; THEN THE
NEWLY EDITED VERSION WILL BE STORED UNDER THE ORIGINAL FILENAME.
.BLANK 1
^IF A NAME IS SPECIFIED, IT WILL BE ASSENGED TO THE EDITED VERSION.
^IF THE USER SPECIFIES A FILENAME WHICH ALREADY EXISTS, ^^SOS\\
WILL ASK "^^FILE ALREADY EXISTS! DELETE?(Y OR N)\\" AND WAIT
ON THE SAME LINE FOR A RESPONSE:
.BLANK 1
.INDENT 10
^Y - ^DELETE OLD FILE AND SUBSTITUTE NEW FILE
.BLANK 1
.INDENT 10
^N - ^DO NOT DELETE OLD FILE 
.BLANK 1
^IF "^N", ^^SOS\\ WILL RESPOND WITH "^^FILE\\=" AND WAIT
FOR A NEW NAME TO BE TYPED; THIS WILL BE ASSIGNED TO THE EDITED
FILE.
.BLANK 1
^IF "^Y" AND IF THE OLD FILE CANNOT BE DELETED (SUCH AS
_.^^BAK\\ FILES), ^^SOS\\ WILL RESPOND "^^FILE WRITE PROTECTED.
TRY ANOTHER NAME\\".  ^AN ASTERISK WILL APPEAR ON THE NEXT LINE.
.BLANK 1
^WHEN ^^SOS\\ IS FINISHED, IT WILL RETURN THE USER TO THE MONITOR:
.BLANK 1
.INDENT 10
^^EXIT\\
.BLANK 1
^INSTEAD OF USING THE ^END COMMAND TO SPECIFY THE FILENAME UNDER
WHICH THE EDITED VERSION WILL BE STORED, THE USER, WHEN BEGINNING
THE EDITING SESSION, MAY SPECIFY THE NEW FILENAME AS FOLLOWS:
.BLANK 1
.INDENT 10
_.^^SOS\\<NEW FILENAME>=<OLD FILENAME>(^^CR\\)
.BLANK 1
^^SOS\\ WILL ENTER EDIT MODE FOR <OLD FILENAME>.  "*^^E(CR\\)"
AT THE END OF THE EDITING WILL THEN CAUSE THE
EDITED VERSION TO BE STORED UNDER <NEW FILENAME>.  ^THE USER
MAY ALSO ADD "/^^READONLY\\" OR "/^^REA\\" TO THE COMMAND; THIS
WILL PUT THE <OLD FILENAME> IN READ-ONLY MODE.  ^THUS, THE
FILE NAMED <OLD FILENAME> WILL NOT BE OVERWRITTEN.
.BLANK 3
6.25##^^THE SAVE WORLD COMMAND - "W"\\
.BLANK 1
^THE ^SAVE ^WORLD COMMAND
.BLANK 1
.INDENT 10
*^W[<FILENAME>](^^CR\\)
.BLANK 1
IS SIMILAR TO THE ^END COMMAND EXCEPT THAT PARAMETERS SET
BY THE ^SET COMMAND ARE NOT RETURNED TO THEIR STANDARD SETTINGS
(I.E., THEY REMAIN AS THEY WERE BEFORE THE COMMAND), AND THE
USER IS RETURNED TO COMMAND MODE RATHER THAN TO THE MONITOR.  ^THIS
IS USEFUL FOR SAVING THE CURRENT VERSION OF THE FILE IN CASE
THE SYSTEM CRASHES, AND SHOULD BE DONE EVERY FIFTEEN
MINUTES WHILE IN EDIT MODE.  ^THEN, IF THE THE SYSTEM DOES CRASH,
ONLY THE EDITING DONE SINCE THE LAST ^W COMMAND WAS ISSUED
WILL BE LOST.
.BLANK 1
^IF A FILENAME IS USED WITH THIS COMMAND, THE EDITED VERSION
WILL BE SAVED UNDER THAT NAME.  ^IF THE ^W COMMAND IS ISSUED
AGAIN DURING THE SAVE EDITING SESSION AND NO FILENAME IS
SPECIFIED, THEN THE CURRENT VERSION IS SAVED WITH THE
NAME LAST GIVEN IN A PREVIOUS ^W COMMAND.
.BLANK 1
^IF THE SYSTEM CRASHES AND A ^W COMMAND HAD NOT BE ISSUED
RECENTLY, THE USER MAY BE ABLE TO RECOVER HIS EDITING BY
TYPING THE ^MONITOR COMMAND
.BLANK 1
.INDENT 10
_.^^RENAME\\<FILENAME NOT IN USE>=NNN^^SOS.TMP(CR\\)
.BLANK 1
(WHERE "NNN" IS THE USER'S JOB NUMBER).
.BLANK 1
^THIS WILL ATTACH THE USER TO A TEMPORARY FILE WHICH MAY BE THE
ONE THAT ^^SOS\\ WAS USING BEFORE THE SYSTEM DIED.  ^IT IS
THEN NECESSARY TO ENTER EDIT MODE WITH THE NEW FILENAME.  ^IF
THIS IS NOT THE CORRECT FILE, DELETE IT AND TRY AGAIN USING ANOTHER
TEMPORARY FILE (E.G., NNN^^SOS.TEM\\).  ^A SYSTEM ^DIRECTORY
COMMAND MAY BE ISSUED TO SEE IF THERE ARE ANY TEMPORARY FILES.
.BLANK 3
6.26##^^THE GO COMMAND - "G"\\
.BLANK 1
^IT IS POSSIBLE TO EDIT A PROGRAM SOURCE FILE WITH ^^SOS\\
AND THEN TO ISSUE A ^MONITOR COMMAND (^^EXECUTE, LOAD, COMPILE,
\\ ETC.).  ^^SOS\\ CAN BE REENTERED AFTER THE ^^EXECUTE,
 LOAD,\\ OR ^^COMPILE\\ IS DONE AND CAN DETERMINE THE 
NAME OF THE LAST FILE EDITED; THUS, TYPING
.BLANK 1
.INDENT 10
_.^^SOS(CR\\)
.BLANK 1
NEXT WILL PUT THE USER IMMEDIATELY INTO EDIT MODE IN THE LAST
FILE SPECIFIED.  ^THEN, ONCE THE FIRST ^^DEC\\SYSTEM\\-10 ^MONITOR
COMMAND HAS BEEN GIVEN, AND ^^SOS\\ HAS BEEN ENTERED A SECOND
TIME THE ^GO COMMAND (INSTEAD OF ^END) WILL WRITE THE FILE ONTO
THE DISK, EXIT FROM ^^SOS\\, AND CAUSE THE PREVIOUS ^MONITOR
COMMAND TO BE REPEATED.
.BLANK 1
.INDENT 10
*^^G(CR)\\
.BLANK 1
^A FILENAME MAY ALSO BE SPECIFIED WITH A ^GO COMMAND:
.BLANK 1
.INDENT 10
*^G[<FILENAME>](^^CR\\)
.BLANK 1
^THIS SIMPLY RENAMES THE EDITED VERSION; THE NAME WILL BE
SAVED FOR THE NEXT ^GO COMMAND.  ^THUS, A ^G COMMAND ALONE
WILL STORE A FILE UNDER A PREVIOUSLY-SPECIFIED NAME; A ^G
COMMAND WHICH INCLUDES A FILENAME WILL STORE THE FILE UNDER THAT
NEW NAME.
.BLANK 3
7.0##^^READ-ONLY MODE\\
.BLANK 1
^AS INDICATED EARLIER, ONCE A FILE IS CREATED IT MAY BE 
CALLED BY ^^SOS\\ IN READ-ONLY MODE BY THE ADDITION OF
"/^^READONLY\\" OR "/^^REA\\" WHEN THE FILE IS NAMED IN THE
INITIAL CONVERSATION WITH ^^SOS\\:
.BLANK 1
.INDENT 10
_.^^SOS(CR)
.INDENT 10
FILE=EXAMPL/READONLY(CR\\)
.BLANK 1
.INDENT 15
OR
.BLANK 1
.INDENT 10
_.^^SOS EXAMPL/READONLY(CR\\)
.BLANK 1
^THE USER WILL NOT BE ALLOWED TO PERFORM ANY EDITING IN THE
NAMED FILE (I.E., "^^EXAMPL\\").
.BLANK 1
^IN READ-ONLY MODE, ONLY THE FOLLOWING COMMANDS MAY BE USED:
^PRINT, ^FIND, ^END, ^GO AND ^LIST.
.BLANK 3
8.0##^^INDIRECT COMMANDS\\
.BLANK 1
^IF A PARTICULAR SEQUENCE OF COMMANDS IS USED FREQUENTLY, IT IS
POSSIBLE TO INSERT THESE COMMANDS IN A FILE.  ^THEN ^^SOS\\ CAN
BE INSTRUCTED TO READ COMMANDS FROM THE FILE, RATHER THAN FROM
THE TELETYPE KEYBOARD.  ^THE COMMAND
.BLANK 1
.INDENT 10
*@<FILENAME>(^^CR\\)
.BLANK 1
WILL DO THIS, PROVIDED THE LIST OF COMMANDS IS FOUND IN THE
NAMED FILE.  ^WHEN ^^SOS\\ SEES THIS COMMAND, IT WILL BEGIN TAKING
ITS COMMANDS FROM THE FILE.  ^ONLY THE FOLLOWING WILL BE PRINTED
OUT ON THE USER'S TELETYPE:
.BLANK 1
.LEFT MARGIN 10
1.##^ERROR MESSAGES
.BLANK 1
2.##^PRINTOUT FROM THE ^P COMMAND
.BLANK 1
3.##^ITEMS FOUND BY THE ^F COMMAND
.BLANK 1
4.##^SUBSTITUTIONS MADE BY THE ^S COMMAND
.BLANK 1
5.##^LINES ALTERED BY THE ^A COMMAND
.BLANK 1
.LEFT MARGIN 0
^IF THE USER INCLUDES THE ^SUBSTITITE COMMAND WITH THE ^DECIDE
OPTION IN HIS FILE, HE MUST TYPE IN THE DECISION CHARACTER WHEN
THE ^SUBSTITUTE COMMAND IS EXECUTED (SEE ^SECTION 6.10).
.BLANK 1
^WHEN ^^SOS\\ HAS EXECUTED THE LAST COMMAND IN THE "INDIRECT
COMMAND" FILE, THE USER WILL BE REUTRNED TO COMMAND MODE.
.BLANK 1
^WHEN THE USER IS INSERTING COMMANDS INTO THE FILE, HE MAY HAVE
TO ENTER SUCH CHARACTERS AS #$# OR A (^^CR\\)  WITHOUT THE (^^LF\\)
(SEE ^CHAPTER 9 ON ^^SOS\\ CHARACTER SETS).
.BLANK 3
9.0##^^UPPER AND LOWER CASE REPRESENTATION
.BLANK 3
9.1##C128 AND C64 MODES\\
.BLANK 1
^MODEL 33 AND 35 TELETYPES EMPLOY ONLY UPPER-CASE LETTERS AND
SOME SPECIAL SYMBOLS,  TOTALING 64 CHARACTERS IN ALL.
^^SOS\\ IS CAPABLE, HOWEVER, OF USING THE
FULL ^^ASCII\\ 128-CHARACTER SET.  ^SINCE EDIT MODE ASSUMES THE
64-CHARACTER SET, IT IS NECESSARY TO SPECIFY "^C128" MODE IN
ORDER TO REPRESENT LOWER-CASE LETTERS AND THE ADDITIONAL 
^^ASCII\\ SYMBOLS.  ^THIS ^C128 MODE IS INDICATED IN A ^SET COMMAND:
.BLANK 1
.INDENT 10
*__^C128(^^CR\\)
.BLANK 1
^IN ^C128 MODE, A ? PRECEDING ANY TELETYPE CHARACTER WILL GIVE
IT AN EQUIVALENT MEANING AS INDICATED IN ^APPENDIX ^D ("^^SOS\\
REPRESENTATION").
.BLANK 1
^FROM ^APPENDIX ^D IT IS OBVIOUS THAT UPPER-CASE LETTERS ARE INPUT
THE SAME IN BOTH ^C64 AND ^C128 MODES, EXCEPT FOR THE ?.  ^IN
^C128 MODE, A SINGLE ? HAS NO MEANING WHATSOEVER; IT IS NECESSARY,
THEREFORE, TO TYPE ?? IN THIS MODE TO REPRESENT A SINGLE
?.
.BLANK 1
^TO RETURN TO ^C64 MODE, AGAIN USE A ^SET COMMAND:
.BLANK 1
.INDENT 10
*__^C64(^^CR\\)
.BLANK 1
^IN ^C64 MODE, ONLY THE CHARACTERS ON THE TELETYPE MAY BE
INPUT.  ^A SINGLE ? WILL BE ECHOED DURING INPUT.  ^IN A LINE
PRINTED AS THE RESULT OF A ^PRINT OR ^FIND COMMAND, HOWEVER,
A DOUBLE ? WILL APPEAR.
.BLANK 3
9.2##^^UPPER AND LOWER CASES\\
.BLANK 1
^^SOS\\ INITIALLY ASSUMES THAT ALL CHARACTERS ARE UPPER CASE.
^THUS, IN ^C128 MODE IT IS NECESSARY TO PRECEDE ANY
CHARACTER CONSIDERED LOWER CASE WITH A ?.  ^THE USER, THEN,
CAN INTERSPERSE THE TWO CASES IN HIS TEXT IN THIS MANNER TO OBTAIN
ALL ALPHABETIC CHARACTERS.
.BLANK 1
^WHEN THE TEXT PRIMARILY IS COMPOSED OF LOWER-CASE LETTERS, IT
IS EASIER TO ASSUME THAT ALL CHARACTERS ARE LOWER CASE.  ^THEN,
A SPECIAL CONFIGURATION (I.E., THE ?) WILL INDICATE UPPER
CASE.  ^THE ^SET COMMAND IS USED TO INDICATE THE DOMINANCE OF
LOWER CASE.
.BLANK 1
.INDENT 10
*__^^LOWER(CR\\)
.BLANK 1
^TO REPRESENT UPPER-CASE CHARACTERS, PRECEDE EACH WITH A
?.  ^TO REVERT BACK TO THE ORIGINAL UPPER-CASE MODE, TYPE
.BLANK 1
.INDENT 10
*__^^UPPER(CR\\)
.BLANK 3
9.3##^^COMBINING MODES AND CASES\\
.BLANK 1
^THE FOLLOWING EXAMPLES ILLUSTRATE HOW ^^SOS\\ MODES AND CASES
CAN BE COMBINED:
.NOFILL
.NOJUSTIFY
.TAB STOPS 12,47
.BLANK 1
	^TEXT	^EXPLANATION
.BLANK 1
*^I1000
01000	^^IS THIS A LINE\\?	^INSERTED IN ^C64 ^^UPPER.
.BLANK 1
*P.
01000	IS THIS A LINE??\\	^PRINTED IN ^C64 ^^UPPER.
*__LOWER
*P.
01000	?I?S ?T?H?I?S ?A ?L?I?N?E??\\	^PRINTED IN ^C64 ^^LOWER.
*__C128
*__UPPER
*P.
01000	IS THIS A LINE??	\\^PRINTED IN ^C128 ^^UPPER\\.
*__^^LOWER
*P.
01000	?I?S ?T?H?I?S ?A ?L?I?N?E??\\	^PRINTED IN ^C128 ^^LOWER.
.BLANK 1
*I100
00100	WHO ARE YOU?\\	^INSERTED IN ^C64 ^^LOWER.
.BLANK 1
*__UPPER
*P.
00100	?W?H?O ?A?R?E ?Y?O?U??\\	^PRINTED IN ^C64 ^^UPPER.
*__LOWER
P.
00100	WHO ARE YOU\\??	^PRINTED IN ^C64 ^^LOWER.
*__C128
*__UPPER
*P.
00100	?W?H?O ?A?R?E ?Y?O?U??\\	^PRINTED IN ^C128 ^^UPPER.
*__LOWER
*P.
00100	WHO ARE YOU\\??	^PRINTED IN ^C128 ^^LOWER.
.BLANK 1
I2000
02000	IS N?<Q\\??	^INSERTED IN ^C128 ^^UPPER.
.BLANK 1
*P.
02000	IS N?<Q\\??	^PRINTED IN ^C128 ^^UPPER.
*__LOWER
*P.
02000	?I?S ?N?<?Q??\\	^PRINTED IN ^C128 ^^LOWER.
.BLANK 1
*__^C64
*__^^UPPER
*P.
02000	IS N?<Q??\\	^PRINTED IN ^^C64 UPPER\\.
.BLANK 1
*__^^LOWER
*P.
02000	?^^I?S ?N?<?Q??\\	^PRINTED IN ^^C64 LOWER\\.
.BLANK 1
*I3000
03000	IS THIS THE END\\??	^INSERTED IN ^C128 ^^LOWER.
.BLANK 1
*__UPPER
*P.
03000	?I?S ?T?H?I?S ?T?H?E ?E?N?D??\\	^PRINTED IN ^C128 ^^UPPER.
*__LOWER
*P.
03000	IS THIS THE END\\??	^PRINTED IN ^C128 ^^LOWER.
*__C64
*__UPPER
*P.
03000	?I?S ?T?H?I?S ?T?H?E ?E?N?D??\\	^PRINTED IN ^C64 ^^UPPER.
*__LOWER
*P.
03000	IS THIS THE END\\??	^PRINTED IN ^C64 ^^LOWER\\.
.BLANK 3
.FILL
.JUSTIFY
9.4##^^MODEL 37 TELETYPE: 37 MODE\\
.BLANK 1
^THE ^MODEL 37 TELETYPE HAS THE FULL ^^ASCII\\ 128-CHARACTER
SET; IT CAN, THEREFORE, INPUT THESE CHARACTERS DIRECTLY TO ^^SOS\\.
^TO TYPE  LOWER-CASE LETTERS ON TERMINALS SUCH AS THE ^MODEL
37, IT IS NECESSARY TO ISSUE THE SYSTEM COMMAND
.BLANK 1
.INDENT 10
_.^^TTY LC(CR\\)#####OR#####>^^SET TTY LC(CR\\)
.BLANK 1
^THEN, TO ALLOW ^^SOS\\ TO OUTPUT LOWER-CASE CHARACTERS
TO THIS TELETYPE, THE USER TYPES
.BLANK 1
.INDENT 10
*__^^M37(CR\\)
.BLANK 1
^THIS IS REVERSED BY ANOTHER ^SET COMMAND ("*__^^M33(CR\\)")
WHICH WILL ESSENTIALLY MAKE THE ^MODEL 37 TELETYPE ACT AS
IF IT WERE EITHER A ^MODEL 33 OR 35 - I.E., 2-CHARACTER
EQUIVALENTS MUST BE USED AS DESCRIBED IN ^SECTION 9.1.
.BLANK 3
9.5##^^ASCERTAINING MODE AND CASE: THE GIVE INFORMATION COMMAND\\
.BLANK 1
^IF THERE IS ANY DOUBT AS TO WHICH CASE AND MODE ARE EMPLOYED,
ISSUE A 
"^GIVE INFORMATION" COMMAND.
.BLANK 1
.INDENT 10
*=^^CASE(CR\\)
.BLANK 1
^FOR ^C64 MODE, ^^SOS\\ WILL PRINT
.BLANK 1
.INDENT 10
^^C64 UPPER\\
.BLANK 1
.INDENT 13
OR
.BLANK 1
.INDENT 10
^^C64 LOWER\\
.BLANK 1
^FOR ^C128 MODE, ^^SOS\\ WILL PRINT
.BLANK 1
.INDENT 10
^^UPPER\\
.BLANK 1
.INDENT 11
OR
.BLANK 1
.INDENT 10
^^LOWER\\
.BLANK 1
^FOR ^C64 MODE ON A ^MODEL 37 TELETYPE, ^^SOS\\ WILL PRINT
.BLANK 1
.INDENT 10
^^MODEL 37 C64 UPPER\\
.BLANK 1
.INDENT 17
OR
.BLANK 1
.INDENT 10
^^MODEL 37 C64 LOWER\\
.BLANK 1
^FOR ^C128 MODE ON A ^MODEL 37 TELETYPE, ^^SOS\\ WILL PRINT
.BLANK 1
.INDENT 10
^^MODEL 37 UPPER\\
.BLANK 1
.INDENT 15
OR
.BLANK 1
.INDENT 10
^^MODEL 37 LOWER\\
.BLANK 3
9.6##^^SPECIAL CONSIDERATIONS: FIND AND SUBSTITUTE COMMANDS\\
.BLANK 1
^FOR A ^FIND COMMAND<STRING>, UPPER AND LOWER-CASE
CHARACTERS WILL BE CONSIDERED THE SAME UNLESS THE ^E OPTION IS
USED.  ^FOR THE ^SUBSTITUTE COMMAND, UPPER AND LOWER-CASE WILL
BE CONSIDERED EQUIVALENT IN <OLDSTRING> ONLY.
.BLANK 3
9.7##^^SPECIAL "MATCHING" CHARACTERS: FIND AND SUBSTITUTE COMMANDS\\
.BLANK 1
^IF ^C128 MODE HAS BEEN SPECIFIED OR IF A ^MODEL 37 TELETYPE IS
USED, THERE ARE A FEW SPECIAL CHARACTERS WHICH "MATCH" SOME
OTHER CHARACTER IN THE ^FIND AND ^SUBSTITUTE COMMAND<STRINGS>.
.BLANK 1
.LEFT MARGIN 35
.TAB STOPS 25
.INDENT -15
^REPRESENTATION*	^EXPLANATION
.FOOTNOTE 4
.LEFT MARGIN 0
.BLANK 1
---------------
.BREAK
*^LINE 1: 2-CHARACTER REPRESENTATION
.BREAK
#^LINE 2: ^STANFORD REPRESENTATION
!
.BLANK 1
.LEFT MARGIN 25
.INDENT -9
?:	^MATCHES A ^^SEPARATOR\\ WHICH IS ANY
CHARACTER OTHER THAN A LETTER, A NUMBER, A ".", A "%", OR A
"^$".  ^SEE ^SECTION 6.20 ON ^SEPARATORS.
.BLANK 1
.INDENT -9
?/	^MATCHES ANY CHARACTER.
.BLANK 2
.INDENT -9
?%	^THE SUBSEQUENT CHARACTER MATCHES ANY CHARACTER WHICH
IT WOULD NOT NORMALLY MATCH.  ^A?%^^BC\\ WILL BE MATCHED
BY ^^AAC, ACC, ADC\\, ETC., BUT NOT
BY ^^ABC\\ (OR ABC UNLESS THE "^E" OPTION IS SPECIFIED
WITH ^FIND OR ^SUBSTITUTE).
.BLANK 1
.INDENT -25
^COMBINATIONS OF THE ABOVE 3 CODES INCLUDE:
.BLANK 1
?%?:  ^MATCHES ANY LETTER, NUMBER, ETC. - I.E., NOT A ^^SEPARATOR\\.
.BLANK 1
?%?/  ^MATCHES ONLY THE BEGINNING OR END OF A LINE.  ^FOR
EXAMPLE,  ?%?/^^OLD\\ FINDS ONLY THOSE OCCURRENCES OF "^^OLD\\"
AT THE BEGINNING OF A LINE.
.BLANK 1
.INDENT -9
?7	^QUOTES THE NEXT CHARACTER.  ^WHEN USED WITH ANOTHER
SPECIAL CHARACTER, ?7 WILL FIND THAT CHARACTER AND NOT ITS MATCH:
.BLANK 1
?7?% ^SEARCHES FOR THE ACTUAL OCCURRENCE OF ?%.
.BLANK 1
?7?7 ^SEARCHES FOR ?7.
.BLANK 1
?%?7?%  ^MATCHES ANY CHARACTER EXCEPT ?%.
.BLANK 1
.INDENT -9
?)	^INDICATES "ANY NUMBER OF" THE PARTICULAR CHARACTER
THAT FOLLOWS IT.  ^FOR EXAMPLE,
.BLANK 1
^^A?)BC\\ ^MATCHES ^^AC, ABC, ABBC\\, ETC.  ^IN CASE OF
AMBIGUITY, THE SHORTEST STRING IS FOUND.  ^FOR THE ABOVE EXAMPLE,
^^A?)BC\\ WILL FIND ^^AC\\ RATHER THAN ^^ABC\\.
.BLANK 1
?)?%?7?% ^MATCHES ANY NUMBER OF CHARACTERS WHICH ARE NOT ?%'S.
.BLANK 1
.LEFT MARGIN 0
^TWO OTHER SPECIAL CHARACTERS MAY BE USED IN THE <NEWSTRING>
OF THE ^SUBSTITUTE COMMAND WHEN ONE OF THE SPECIAL CONSTRUCTIONS
DISCUSSED ABOVE HAS BEEN SPECIFIED IN <OLDSTRING>.:
.BLANK 1
.LEFT MARGIN 25
.INDENT -9
?*	^SPECIFIES THAT A MATCH WHICH OCCURS BY USING ONE OF
THE ABOVE SPECIAL CONSTRUCTIONS IS TO BE USED FOR A LATER SUBSTITUTION.
.BLANK 1
?*1?* ^A STAND-IN FOR WHATEVER WAS ACTUALLY MATCHED FIRST BY A 
SPECIAL CONSTRUCTION. ?*2?* IS FOR THE SECOND MATCH, ETC.
.BLANK 1
^FOR EXAMPLE, SUPPOSE ALL OCCURRENCES OF ^^OLD\\ ARE TO BE 
REPLACES BY ^^NEW,\\ BUT ^^COLD, FOLD,\\ ETC., ALSO EXIST IN
THE FILE.  ^^OLD\\ CAN BE GIVEN FOR THE OLDSTRING, BUT HOW
CAN THE ^^SEPARATOR\\S BE REPLACED?  ^THE "?*" CONSTRUCTION
IS USED AS FOLLOWS:
.BLANK 1
*^^S?:OLD?:#$#?*1?*NEW\\?*2?*#$#<RANGE>(^^CR\\)
.BLANK 1
.INDENT -9
?"	^IN MORE COMPLICATED SPECIFICATIONS, ?" WILL REPLACE
SUCCESSIVE RECURRENCES OF THE ?* CONSTRUCTION WHEN THEY APPEAR
IN THE SAME ORDER THAT THEY WERE MATCHED.
.BLANK 1
^FOR EXAMPLE, AS THE FILE IS SCANNED FOR THE <OLDSTRING>, THE
MATCHES WITH THE SPECIAL CONSTRUCTIONS ARE ACTUALLY NUMBERED
AND STORED ON THE DISK.  (^THE FIRST IS 1, ETC.)  ^THEN, WHEN
THE <NEWSTRING> IS BEING SUBSTITUTED, THESE NUMBERED MATCHES
CAN BE NAMED FOR USE WITH ?*1?*, ?*2?*, ETC. - IF THEY OCCUR
IN ORDER, ?" CAN BE SUBSTITUTED FOR ?*<NUMBER>?*.
.BLANK 1
.LEFT MARGIN 0
^THE CONSTRUCTIONS MAKE IT POSSIBLE TO ISOLATE UNKNOWN PORTIONS
OF TEXT BY MANIPULATING WHAT COMES IMMEDIATELY BEFORE AND AFTER.
^^NOTE\\: ^CERTAIN STRINGS WHICH CAN BE FORMED WITH THE
ABOVE CHARACTERS ARE ILLEGAL AND WILL PRODUCE THE MESSAGE
"%^^ILLEGAL SEARCH STRING\\".
.BLANK 1
^SINCE THE STRINGS ARE NOT CHECKED WHEN THE COMMAND IS ISSUED,
THE MESSAGE WILL ONLY BE GIVEN WHEN AN ATTEMPT IS MADE TO MATCH
THE SPECIAL CONSTRUCTION.  ^IF ?%?), OR ?7 IS NOT FOLLOWED BY
ANOTHER CHARACTER, OR IF ?% IS FOLLOWED BY ?), ^^SOS\\ WILL
PRINT "%^^ILLEGAL SEARCH STRING\\".
.BLANK 1
^BECAUSE SOME OF THESE SPECIAL SEARCHES INVLOVE RECURSION OR REQUIRE
THE USE OF TABLE SPACE INSIDE ^^SOS\\, IT IS POSSIBLE TO GET THE
ERROR MESSAGE, "%^^SEARCH STRING TOO COMPLEX\\".  ^IF THIS
OCCURS, TRY A SIMPLER STRING.
.BLANK 1
^EXAMPLE 1
.BLANK 1
^EXCHANGE TWO ARGUMENTS OF A FUNCTION:
.BLANK 1
.INDENT 10
FUNCTION (^^A,B\\) => FUNCTION (^^B,A\\)
.BLANK 1
WHERE ^A AND ^B MAY BE ANY STRING NOT INCLUDING THE LEFT OR
RIGHT PARENTHESIS OR A COMMA.
.BLANK 1
.INDENT 2
*^SFUNCTION(?)?/,?)?/)#$#FUNCTION(?*2?*,?*1?*)#$#<RANGE>(^^CR\\)
.BLANK 1
^EXAMPLE 2
.BLANK 1
^CHANGE#ALL##^^READ\\#(3,_#)LIST##TO##^^READ\\#(5,_#)#LIST
.BLANK 1
.INDENT 10
*^^SREAD\\?)?%(3,#$#^^READ\\?"(5,#$#<RANGE>(^^CR\\)
.BLANK 1
^^NOTE\\: ^THIS WILL NOT MATCH "^^READ\\(4,_#) ^A(3,5)"
BUT WILL MATCH "^^READ\\(3,".
.PAGE
.CENTER
^^APPENDIX A
.BLANK 1
.CENTER
ERROR MESSAGES
.BLANK 2
.SPACING 2
.NOFILL
.NOJUSTIFY
.LEFT MARGIN 5
.TAB STOPS 15
EXPERT	NOVICE
DDE	%DEVICE OUTPUT ERROR
DIE	%DEVICE INPUT ERROR
DNA	%DISK NOT AVAILABLE
FNF	%FILE NOT FOUND
ICN	%INTERNAL CONFUSION
ILC	%ILLEGAL COMMAND
ILFMT	%ILLEGAL LINE FORMAT
ILR	%ILLEGAL REPLACEMENT ON INSERT
ILUUO	%ILLEGAL UUO
IRS	%ILLEGAL REPLACEMENT STRING
ISS	%ILLEGAL SEARCH STRING
ITD	%ILLEGAL TRANSFER DESTINATION
LTL	%LINE TOO LONG
NEC	%INSUFFICIENT CORE AVAILABLE
NLN	%NO SUCH LINE(S)
NNN	%NO NEXT LINE
NSG	%NO STRING GIVEN
NSP	%NO SUCH PAGE
ORDER	%OUT OF ORDER
STC	%STRING TOO COMPLEX
STL	%STRING TOO LONG
UNA	%DEVICE NOT AVAILABLE
TMS	%TOO MANY STRINGS
WAR	%WRAP AROUNG
SRF	%SEARCH FAILS
CMERR	%INDIRECT READ ERROR
CMEND	%INDIRECT END-OF-FILE
MAR	%MARGIN ERROR
.PAGE
.SPACING 1
.FILL
.JUSTIFY
.LEFT MARGIN 0
.CENTER
APPENDIX B
.BLANK 1
.CENTER
SUMMARY OF COMMANDS
.BLANK 2
ALTER\\
.BLANK 1
.INDENT 5
*^A<RANGE>(^^CR\\)
.BLANK 1
.LEFT MARGIN 10
.NOFILL
.NOJUSTIFY
^NEXT ^CHARACTER - ^^SPACE\\
^LAST ^CHARACTER - ^^RUBOUT\\
^CHANGE - ^C<CHARACTER>
^DELETE - ^D
^INSERT - ^I<STRING>#$
^END ^ALTER ^MODE - (^^CR\\)
^END ^ALTER ^MODE - ^E (WITHOUT PRINTOUT)
^QUIT - ^Q
^START ^OVER - #_^^U
^SKIP - ^S<CHARACTER>
^KILL - ^K<CHARACTER>
^REPLACE - ^R
^LINE - ^L
^PRINT - ^P
^JUSTIFY - ^J
^WORD - ^W
^DELETE ^WORD AND ^INSERT ^TEXT - ^X<STRING>#$
.BLANK 1
.FILL
.JUSTIFY
.LEFT MARGIN 0
^^COPY\\
.BLANK 1
.INDENT 5
*^C<DESTINATION LINE NUMBER>,<SOURCE RANGE>[,<INC1>[<INC2>]](^^CR\\)
.BLANK 1
.INDENT 5
*^C<DESTINATION LINE NUMBER>__<SOURCE FILENAME>/^^S(CR\\)
.BLANK 1
^^DELETE\\
.BLANK 1
.INDENT 10
*^D<RANGE>(^^CR\\)
.BLANK 1
^^END\\
.INDENT 10
*^E[<FILENAME>](^^CR\\)
.BLANK 1
^^EXTEND\\
.BLANK 1
.INDENT 10
*^X<RANGE>[^^,S](CR\\)
.BLANK 1
.INDENT 10
<TEXT>[#$##(^^LF)](CR)
.BLANK 1
FIND\\
.INDENT 10
*^F[[<STRING>]#$#[<RANGE>][,^^A#,N][,E\\][,<NUMBER>]](^^CR\\)
.BLANK 1
^^GIVE
.BLANK 1
*=INC#BIG#CASE#ERROR#STRING#.#LMAR#PMAR#RMAR#MAXLN#LENGTH#NAME(CR)
.BLANK 1
GO\\
.BLANK 1
.INDENT 10
*^G[<FILENAME>](^^CR)
.BLANK 1
INSERT\\
.BLANK 1
.INDENT 10
*^I<LINE>[,<INCREMENT>](^^CR\\)
.INDENT 23
OR
.INDENT 10
*^I<LINE>[;<INCREMENT>](^^CR\\)
.BLANK 1
^^JOIN\\
.BLANK 1
.INDENT 10
*^J<LINE>(^^CR\\)
.BLANK 1
^^JUSTIFY\\
.BLANK 1
.INDENT 10
*^^JU\\<RANGE>(^^CR\\)
.BLANK 1
^^JUSTIFY CENTER\\
.BLANK 1
.INDENT 10
*^^JC\\<RANGE>(^^CR)
.BLANK 1
JUSTIFY LEFT\\
.BLANK 1
.INDENT 10
*^^JL\\<RANGE>(^^CR)
.BLANK 1
JUSTIFY RIGHT
.BLANK 1
.INDENT 10
*JR\\<RANGE>(^^CR)
.BLANK 1
JUSTIFY WORD
.BLANK 1
.INDENT 10
*JW\\<RANGE>(^^CR)
.BLANK 1
LINE CONTENTS SPECIFICATION - ALL COMMANDS\\
.BLANK 1
.INDENT 10
LINE NUMBER FIELD =
.INDENT 10
#$#<STRING>#$#(^^CR)
.BLANK 1
LIST\\
.BLANK 1
.INDENT 10
*^L[<RANGE>][,^^S](CR)
.BLANK 1
MARK\\
.BLANK 1
.INDENT 10
*^M<LINE NUMBER>/<PAGE NUMBER>(^^CR)
.BLANK 1
NUMBER\\
.BLANK 1
.INDENT 10
*^N<INCREMENT>[,<RANGE>[,<STARTING NUMBER>]](^^CR)
.BLANK 1
PRINT\\
.BLANK 1
.INDENT 10
*^P[<RANGE>][,<OPTIONS>](^^CR)
.BLANK 1
^^QUIT
.BLANK 1
.INDENT 10
*Q(CR)
.BLANK 1
REPLACE\\
.BLANK 1
.INDENT 10
*^R<RANGE>[,<INCREMENT>](^^CR\\)
.INDENT 23
OR
.INDENT 10
*^R<RANGE>[;<INCREMENT>](^^CR)
.BLANK 1
SAVE WORLD\\
.BLANK 1
.INDENT 10
*^W[<FILENAME>](^^CR)
.BLANK 1
SET\\
.BLANK 1
.INDENT 10
*__<PARAMETER>(^^CR\\)
.BLANK 1
.INDENT 10
PARAMETER =
.LEFT MARGIN 15
.BREAK
^^UPPER/LOWER
.BREAK
M33/M37
.BREAK
C64/C128
.BREAK
NOVICE/EXPERT
.BREAK
NONSEPARATOR/SEPARATOR\\
.BLANK 1
.LEFT MARGIN 0
.INDENT 10
*__<PARAMETER>=<NUMBER>(^^CR\\)
.BLANK 1
.INDENT 10
PARAMETER =
.INDENT 15
^^INC#LMAR#PMAR#RMAR#MAXLN#LENGTH
.BLANK 1
.INDENT 10
*__NAME\\=<FILENAME>(^^CR)
.BLANK 1
SUBSTITUTE\\
.BLANK 1
.INDENT 2
*^S[<OLDSTRING>#$#<NEWSTRING>]#$#[<RANGE>][,^^D#,N][,E\\][,<NUMBER>](^^CR)
.BLANK 1
TRANSFER\\
.BLANK 1
.INDENT 1
*^T<DESTINATION#LINE#NUMBER>,<SOURCE#RANGE>[,<INC1>[,<INC2>]](^^CR\\)
.PAGE
.CENTER
^^APPENDIX C
.BLANK 1
.CENTER
DEFAULT VALUES\\
.BLANK 2
^IF CERTAIN <PARAMETER>S ARE NOT ASSIGNED VALUES BY THE
^SET COMMAND, THEY WILL ASSUME A DEFAULT VALUE:
.BLANK 1
.LEFT MARGIN 10
^^INC=100
.BREAK
LMAR=1
.BREAK
PMAR=1
.BREAK
RMAR=69
.BREAK
MAXLN=99999
.BREAK
LENGTH\\=55
.BLANK 1
.LEFT MARGIN 0
^ALSO, THE FOLLOWING <PARAMETER>S ARE "MODES" IN WHICH
^^SOS\\ BEGINS:
.BLANK 1
.INDENT 10
^^UPPER,M33,C64,NOVICE,NONSEPARATOR\\
.BLANK 1
^THESE CAN BE REVERSED BY USING THE ^SET COMMAND WITH THE
FOLLOWING <PARAMETER>S:
.BLANK 1
.INDENT 10
^^LOWER,M37,C128,EXPERT,SEPARATOR\\
.PAGE
.CENTER
^^APPENDIX D
.BLANK 1
.CENTER
ASCII CHARACTER TABLE
.BLANK 2
.LEFT MARGIN 3
.TAB STOPS 9,16,23,30,37,44,51,58,65
.NOFILL
.NOJUSTIFY
	 0	 1	 2	 3	 4	 5	 6	 7
.BLANK 1
	NUL	SOH	STX	ETX	EOT	ENQ	ACK	BEL	 A
00									 B
		?!	?"	?_#	?$	?%	?_&	?'	 C
.BLANK 1
	BS	HT	LF	VT	FF	CR	SO	SI
01		TAB
	?(
.BLANK 1
	DLE	DC1	DC2	DC3	DC4	NAK	SYN	ETB
02
	?+	?,	?-	?.	?/	?0	?1	?2
.BLANK 1
	CAN	EM	SS	ESC	FS	GS	RS	VS
03
	?9	?6	?4	?=	?<	?>	?7	?8
.BLANK 1
04	SP	!	"	_#	$	%	_&	'
.BLANK 1
05	(	)	*	+	,	-	.	/
.BLANK 1
06	0	1	2	3	4	5	6	7
.BLANK 1
07	8	9	:	;	<	=	>	?
								??
.BLANK 1
10	@	A	B	C	D	E	F	G
.BLANK 1
11	H	I	J	K	L	M	N	O
.BLANK 1
12	P	Q	R	S	T	U	V	W
.BLANK 1
13	X	Y	Z	[	_\	]	_^	__
.BLANK 1
14		\\A	B	C	D	E	F	G
	?@	?^^A	?B	?C	?D	?E	?F	?G
.BLANK 1
15	\\H	I	J	K	L	M	N	O
	?^^H	?I	?J	?K	?L	?M	?N	?O
.BLANK 1
16	\\P	Q	R	S	T	U	V	W
	?^^P	?Q	?R	?S	?T	?U	?V	?W
.BLANK 1
						ESC		DEL
17	\\X	Y	Z					^^RUB
	?X	?Y	?Z	?[	?:	?]	?3
.BLANK 2
.LEFT MARGIN 0
#A\\###128-CHARACTER CODE
#^B###^STANFORD CHARACTER
#^C###2-CHARACTER EQUIVALENT
.FILL
.JUSTIFY
.PAGE