%NOCONTROLC %VARIABLES INTEGER ANSWER1, ANSWER2, ANSWER3, DUMMY; %VARIABLES BOOLEAN MIME; %ALGOL EXTERNAL PROCEDURE NOECHO,XECHO,INCH,TTOPEN; %INITIALIZE stopkc; INPUT(0,"TTY"); %TEXT This lesson describes the screen editor SED as used on a MIME-2A or a VT-100, in VT-52 mode. You shouldn't be running this lesson on any other terminal. %QUESTION mime2a: Are you using a MIME-2A? %neutral yes %algol MIME := TRUE; %GOTO continue; %neutral YES %algol MIME := TRUE; %GOTO continue; %neutral Yes %algol MIME := TRUE; %GOTO continue; %neutral Y %algol MIME := TRUE; %GOTO continue; %neutral y %algol MIME := TRUE; %GOTO continue; %neutral no %GOTO VT100; %neutral NO %SAME %neutral N %same %neutral n %same %neutral No %Same %neutral Please answer yes or no. %goto mime2a; %QUESTION VT100: Are you using a VT-100? %neutral yes %algol MIME := FALSE; %GOTO continue; %neutral YES %algol MIME := FALSE; %GOTO continue; %Neutral Yes %algol MIME := FALSE; %GOTO continue; %neutral Y %algol MIME := FALSE; %GOTO continue; %neutral y %algol MIME := FALSE; %GOTO continue; %neutral no Well then, please try again when you're on a MIME or VT-100. %GOTO endoflesson; %neutral NO %SAME %neutral N %same %neutral n %same %neutral No %Same %neutral Please answer yes or no. %goto vt100; %TEXT continue: pause; The text of this lesson is taken mostly from the document DOC:SEDMAN.DOC (by Christopher Hall). The SED lessons do not give you a complete description of SED, but will give you enough knowledge to get you started. If you want to learn the more complicated commands, you should read the document DOC:SED.DOC, but it is not recommended that you read it until you're comfortable with the commands you learn in the lessons. %TEXT outsymbol(12); Purpose of This Lesson ====================== In this lesson, you will be aquainted with the general concepts of the SED editor. You will also learn -how to enter and exit the SED editor, -how to move the cursor around, -how to insert and delete text, and -how to move through the file. %TEXT outsymbol(12); The Viewing Window Concept ========================== SED thinks of a text file as if it were a scroll of writing - lots and lots of lines of text, one line after another. The CRT terminal screen is like a magnifying glass held over the scroll: it shows a certain number of lines and a certain number of characters per line, but the file may extend beyond the limits of the glass on all sides. Like the magnifying glass, the terminal screen can be moved forward, backward, left, or right over the file. %TEXT outsymbol(12); The terminal screen is called the "viewing window" into the file. Moving the window forward or backward in the file is called "rolling" the window, and moving it left or right is called "sliding". %TEXT outsymbol(12); Talking to SED ============== You can do three types of functions with SED: put text in the file, move the cursor around, and issue editor commands. Editor commands do such things as insert blank lines or spaces into the text, move the viewing window around, and search for items. Descriptions of the various commands make up the bulk of this tutorial. %TEXT outsymbol(12); You issue a command by typing a control character, a special key, or an escape sequence. You type a control character by holding down the button labeled "CTRL" and pressing a letter key (for example, to get a ^T press "CTRL" and "T"). Special keys are keys which are off to the side of the normal keyboard. The editor understands special keys to be commands. You get an escape sequence by typing the "ESCAPE" or "ALTMODE" character followed by some other character. %TEXT outsymbol(12); Running SED =========== If you want to edit a file that already exists on your area, type: SED file.ext where file is the file-name and ext is the extension. If you want to create a file, type: SED file.ext= %TEXT outsymbol(12); Exiting SED =========== If you want to exit SED, and save all the changes you have made in your file, use the command, control-Z. If you want to exit SED, leaving the file the way it was before editing began, use the command, control-C. %QUESTION outsymbol(12); What command do you give if you want to edit a file on your disk area called "MYFILE.FOR" ? %NOEXTRA %RIGHT SED MYFILE.FOR %RIGHT sed myfile.for %NEUTRAL SED MYFILE.FOR= Actually, you can use the equal sign for a file that already exists, but you don't need it. %goto question1; %NEUTRAL sed myfile.for= %same %WRONG SED You didn't type the file name %WRONG sed %same %LACK FOR You forgot the extension. (.FOR) %EXTRA %WRONG %WRONG You should type SED MYFILE.FOR %text Note that if the file does not exist on your area, it will not be created, but you will enter SED. At this point the best thing to do would be to exit and try again. %ALGOL BEGIN question1: OUTSYMBOL(12); write("[N]OK. Now say you are in SED, and you want to exit, saving all"); write("[N]your editing."); write("[N]What command do you give?"); write("[N](Use the command, not it's name. The lesson will simulate a SED exit)."); write("[N]--->"); breakoutput; COMMENT set the terminal no echo, answer3 will count the number of errors, qcount is incremented (qcount is number of questions attempted); F10CALL(NOECHO); answer3:=0; qcount:=qcount+1; GETANSWER: F10CALL(INCH,ANSWER1,answer2,answer3); COMMENT input a character; if answer1 = 37 then goto zpercentout; COMMENT if "%", get out of question; COMMENT if control-Z (correct answer), increment latescore, if correct first try (answer3 = 0) increment score, clear screen, output exiting message; if answer1 = 26 then begin if answer3 = 0 then score := score +1; latescore := latescore +1 ; outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("SAVING FILE: DSKB:MYFILE.FOR[[107007,3232]] (WITH BACKUP)[N]"); write("[NN]"); breakoutput end else begin COMMENT if control-C output appropriate error message; if answer1 = 3 then begin write("No. A control C will exit without saving the file[N]"); breakoutput end else begin if answer1 > 26 then COMMENT if not a control character output error message; begin write("No! Use a CONTROL character![N]"); write("Type a character while holding down the CTRL key[N]"); breakoutput end; COMMENT if control character not Z or C output error message; else begin write("No, that's wrong, try again.[N]"); breakoutput end end end; COMMENT if wrong answer, increment answer3, start question over; if answer1 # 26 then begin answer3:=answer3+1; goto getanswer end; COMMENT if right answer, turn echoing back on, exit from question; else F10CALL(XECHO); goto goodzout; COMMENT if "%" go here; ZPERCENTOUT: outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("Type BACK to try this question over"); write("[N] SKIP to go to the next section"); write("[N] STOP to end this lesson"); write("[N]--->"); breakoutput; getline; POS:=1; if anywhere("STOP") then goto endoflesson; POS:=1; if anywhere("BACK") then goto question1; POS:=1; if anywhere("SKIP") then goto Zout; goto ZPERCENTOUT end; %TEXT goodzout: Very good. The above text is what SED will write when you exit. Note that SED also puts a backup file on your area with a ".BAK" extension. This is a copy of the file as it was before editing. %TEXT zout: outsymbol(12); Moving the Cursor ================= The cursor is the blinking blot or dash that is always present on the terminal screen. It represents your position in the file you are editing. If you type a character it appears where the cursor is (both on the screen and in the file you are editing) and the cursor moves one space to the right. %TEXT The cursor can be moved up, down, left and right by typing one of the keys with an arrow on it (these are located at the top of the keyboard). The direction of the arrow indicates the direction in which the cursor will move. You can also move the cursor to the top left position of the screen (called the "home" position) by typing the unmarked black key (for MIME-2A) or PF3 key (for VT-100) at the top right of the keyboard. %TEXT outsymbol(12); In the next question it is important that you do not try to type ahead of the computer. Give the computer time to operate after each keystroke you give it. %ALGOL BEGIN question2: COMMENT clear screen, go to home position, output question; outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("Pretend you are in SED, and this is the text of the file."); write("[N]What key will you press to get the cursor to the top left"); write("[N]corner of the screen? (press the key itself)"); breakoutput; COMMENT turn echo off, initialize answer3, increment qcount; F10CALL(NOECHO); answer3:=0; qcount:=qcount+1; GETANSWER2: F10CALL(INCH,ANSWER1,answer2,answer3); COMMENT input character; COMMENT if then look at next character, if R then its the correct answer; if answer1 = 27 then begin if answer2 = 82 then begin if answer3 = 0 then score := score +1; latescore := latescore +1 ; outsymbol(27); outsymbol(72); COMMENT cursor home; write("[NNNNNN]Ok!!!! Great! Now how do you move the cursor"); write("[N]one space to the right? "); breakoutput end else begin write("[NN]No, that's wrong, try again.[N]"); breakoutput; answer3:=answer3+1; goto getanswer2 end; end else begin if answer1 = 37 then goto done; COMMENT if "%" goto done; write("[NNNNNN]No, that's wrong, try again.[N]"); breakoutput; answer3:=answer3+1; goto getanswer2 end; COMMENT next question, initialize answer3, increment qcount; answer3:=0; qcount:=qcount+1; goright: outsymbol(27); outsymbol(72); COMMENT cursor home; breakoutput; F10CALL(INCH,ANSWER1,answer2,answer3); COMMENT input character; if answer1 = 37 then goto pcout; COMMENT if "%" goto pcout; COMMENT if look at next char, if "C", then correct answer; if answer1 = 27 then begin if answer2 = 67 then begin if answer3 = 0 then score :=score +1; latescore:=latescore+1; outsymbol(27); outsymbol(67); COMMENT cursor right (ESC C); write("[NNNNNNNNNNNNN]Good Work! I knew you could do it!"); write("[NNN]"); breakoutput; goto done end else COMMENT if ESC D, that is cursor left, try again, if not C or D try again; begin if answer2 = 68 then begin answer3 := answer3+1; write("[NNNNNNNNN]No, that is move to the LEFT. "); write("[N]Try again "); breakoutput; goto goright end else begin write("[NNNNNNNNN]No, that is wrong. Use the right arrow. "); write("[N]Try again "); breakoutput end end end else begin COMMENT if a printable character, print it to show user what (s)he did, if a space explain why space is wrong, try again; if answer1 > 31 then outsymbol(answer1); if answer1 = 32 then begin answer3 := answer3+1; write("[NNNNNNNNN]No that puts a space as the first character"); write("[N]You want to move the cursor, not insert a space"); breakoutput end else begin write("[NNNNNNNNN]No, that is wrong. Use the right arrow. "); write("[N]Try again "); breakoutput end end; goto goright; COMMENT go here if "%"; PCOUT: outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("Type BACK to try this question over"); write("[N] SKIP to go to the next section"); write("[N] STOP to end this lesson"); write("[N]--->"); breakoutput; getline; POS:=1; if anywhere("STOP") then goto endoflesson; POS:=1; if anywhere("BACK") then goto question2; POS:=1; if anywhere("SKIP") then goto done; goto PCOUT; done: F10CALL(XECHO); pause end; %TEXT outsymbol(12); There are five other cursor movers: 1) or M moves the cursor to the start of the next line 2) or I moves the cursor to the next tab stop. Tab stops are positioned every 8 columns, by default. (Note that it does not INSERT a tab.) 3) U (called BACKTAB) moves to the previous tab stop. 4) The 8 on the NUMERICAL keypad (next to the regular keypad) moves the cursor to the start of the line. This command is called "". 5) The 5 on the NUMERICAL keypad (next to the regular keypad) moves the cursor to the end of the line. This command is called "". %QUESTION outsymbol(12); If you are at the beginning of a line (leftmost position), and you push the numerical keypad "8", where on the line will the cursor go to? 1) Stays at the beginning of current line 2) Goes to the end of the line 3) Goes to the beginning of next line 4) Goes to the end of previous line (Please give the number of the appropriate response) %NOEXTRA %RIGHT 1 %RIGHT 1) %WRONG 2 That used to be true, in the original version of SED, but now the command, keypad 5, is what puts you at the end of the line. %WRONG 2) %SAME %WRONG 3 It will only deal with your current line. %WRONG 3) %same %WRONG 4 %same %WRONG 4) %same %WRONG %TEXT outsymbol(12); Putting Text into the File ========================== To put text into the file, just type it. The text will appear where the cursor is. Use the cursor movement commands described earlier to move the cursor to the location on the screen where you want the text to be. If there is already text there, it will be over-written. This is a good way to correct mistakes. %TEXT OUTSYMBOL(12); Inserting Characters ==================== If you want to insert a word between two other words use the command, which is given by typing the key marked "ENTER" on the numerical keypad. Then, characters you type, instead of replacing the ones in the file, will be inserted where the cursor is. The rest of the line will shift to the right as you type. You can get out of insert mode and back into replace mode by giving the command again. %TEXT In the next question it is important that you do not try to type ahead of the computer. Give the computer time to operate after each keystroke you give it. %ALGOL begin question3: COMMENT clear screen, cursor home; outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("Pretend you are in SED, and this is the text of the file."); write("[N]The cursor is before the word ""brown"" (actually ON the ""b"")"); write("[N]in the sentence below. You wish to insert the word ""quick"""); write("[N]at that position. Do this using the command."); write("[N]Remember to put a space in after ""quick"" and to do the "); write("[N] command again to end the inserting."); write("[N]SED will tell you that you are in INSERT-MODE and"); write("[N]will ring a bell at each character you insert"); write("[NN] The brown fox jumped over the lazy dog."); breakoutput; COMMENT dummy counts the number of tries, initialize dummy, increment qcount, turn echo off; dummy:=0; qcount:=qcount+1; f10call(noecho); getanswer3: dummy:=dummy+1; COMMENT increment dummy; COMMENT position cursor to bottom of screen, blank over anything that's there, position cursor home; outsymbol(27); outsymbol(89); outsymbol(55); outsymbol(32); outsymbol(27); outsymbol(75); outsymbol(27); outsymbol(72); COMMENT if 5th try, remind user that a "%" will take him/her out of the question; if dummy = 5 then write("[11N]If you are having trouble, type a ""%""."); breakoutput; COMMENT enter alternate keypad mode, get cursor in place; outsymbol(27); outsymbol(61); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; f10call(inch,answer1,answer2,answer3); COMMENT input char; COMMENT if ESC, look at next char, if "?" look at next char, if "M", then user pushed the numeric keypad "ENTER", which is the "INSERT-MODE" command, so go to get "q" (to insert "quick"); if answer1 = 27 then begin if answer2 = 63 then begin if answer3 = 77 then goto getq end end else begin COMMENT if control-C or "%", allow user to get out; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto KCOUT end end; COMMENT if not ESC ? M, try again; write("[NNN]Use the keypad key"); breakoutput; goto getanswer3; getq: COMMENT position cursor at bottom of screen, reverse video, output "INSERT MODE" message, return to normal video (video reversal for MIME only); outsymbol(27); outsymbol(89); outsymbol(55); outsymbol(32); if MIME then begin outsymbol(27); outsymbol(83); outsymbol(66) end else begin outsymbol(27); outsymbol(60); comment go into vt100 mode; outsymbol(27); outsymbol(91); outsymbol(50); outsymbol(52); outsymbol(59); outsymbol(48); outsymbol(72); comment position to last line; outsymbol(27); outsymbol(91); outsymbol(55); outsymbol(109); comment reverse video; outsymbol(27); outsymbol(91); outsymbol(63); outsymbol(50); outsymbol(108); comment return to vt52 mode; end; write(" *** INSERT MODE *** "); breakoutput; if MIME then begin outsymbol(27); outsymbol(83); outsymbol(64); breakoutput end else begin outsymbol(27); outsymbol(60); comment go into vt100 mode; outsymbol(27); outsymbol(91); outsymbol(48); outsymbol(109); comment unreverse video; outsymbol(27); outsymbol(91); outsymbol(63); outsymbol(50); outsymbol(108); comment return to vt52 mode; end; COMMENT reposition cursor to "brown"; outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; f10call(inch,answer1,answer2,answer3); COMMENT input char; COMMENT if char input is printable, insert it; if answer1 > 31 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(40); breakoutput; end; COMMENT if char is a "q" or a "Q", got to get a "u"; if (answer1 = 113) or (answer1 = 81) then goto getu; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto KCOUT end; COMMENT if not a "q" or "Q", output error message, position cursor, and if the wrong char was typed, delete it, and start all over again; write("[NNN]Insert the word ""quick"" "); write("[N]Please try over (starting with the command)"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; if answer1 > 31 then begin outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput end; goto getanswer3; getu: f10call(inch,answer1,answer2,answer3); COMMENT input next char; if answer1 > 31 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(41); breakoutput; end; COMMENT if "u" or "U", then go to get an "i"; if (answer1 = 117) or (answer1 = 85) then goto geti; COMMENT if control-C or "%", allow user to exit question; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not "u" or "U" output error message, position cursor, delete end of line and start over from beginning; write("[NNN]Insert the word ""quick"" "); write("[N]Please try over (starting with the command)"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; goto getanswer3; geti: f10call(inch,answer1,answer2,answer3); COMMENT input next character; if answer1 > 31 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(42); breakoutput; end; COMMENT if "i" or "I" then go get a "c"; if (answer1 = 105) or (answer1 = 73) then goto getc; COMMENT if control-c or "%" allow user to exit; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not "i" or "I", error message, position cursor, delete end of line, and start over again; write("[NNN]Insert the word ""quick"" "); write("[N]Please try over (starting with the command)"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; goto getanswer3; getc: f10call(inch,answer1,answer2,answer3); COMMENT input next character; if answer1 > 31 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(43); breakoutput; end; COMMENT if "c" or "C" go get a "k"; if (answer1 = 99) or (answer1 = 67) then goto getk; COMMENT if control-C or "%" let user exit; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not "c" or "C", error message, position cursor, delete 3 or 4 characters, and start over; write("[NNN]Insert the word ""quick"" "); write("[N]Please try over (starting with the command)"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; goto getanswer3; getk: f10call(inch,answer1,answer2,answer3); COMMENT input next char; COMMENT if character is printable, insert it; if answer1 > 31 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(44); breakoutput; end; COMMENT if "k" or "K" go get a space; if (answer1 = 107) or (answer1 = 75) then goto getspace; COMMENT if control-C or "%" allow user to exit; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not "k" or "K", write error message, position cursor, delete end of line, start over; write("[NNN]Insert the word ""quick"" "); write("[N]Please try over (starting with the command)"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; goto getanswer3; getspace: f10call(inch,answer1,answer2,answer3); COMMENT input next char; COMMENT if a space, insert it and go get another INSERT-MODE; if answer1 = 32 then begin outsymbol(27); outsymbol(75); outsymbol(answer1); outsymbol(7); breakoutput; write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(45); breakoutput; goto getout end; COMMENT if control-C or "%" allow user to get out; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not a space, output error message, position cursor, rewrite end of line and start over; write("[NNN]Put a space in at the end "); write("[N]Please try over (starting with the command)"); breakoutput; outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); outsymbol(27); outsymbol(75); write("brown fox jumped over the lazy dog"); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(39); breakoutput; goto getanswer3; getout: f10call(inch,answer1,answer2,answer3); COMMENT input char; COMMENT if ESC see next char, if "?" see next, if M, then user typed numerical keypad "ENTER" (SED INSERT-MODE), and is done; if answer1 = 27 then begin if answer2 = 63 then begin if answer3 = 77 then goto thatsit end end; COMMENT if control-C or "%" allow user to exit; if (answer1 = 3) or (answer1 = 37) then begin dummy := 100; goto kcout end; COMMENT if not ENTER, error message, position cursor, and get ENTER again; write("[NNN]End with the command"); write("[N] "); outsymbol(27); outsymbol(89); outsymbol(41); outsymbol(44); breakoutput; goto getout; COMMENT if "%" or control-C go here; KCOUT: outsymbol(27); outsymbol(72); outsymbol(27); outsymbol(74); write("Type BACK to try this question over"); write("[N] SKIP to go to the next section"); write("[N] STOP to end this lesson"); write("[N]--->"); breakoutput; getline; POS:=1; if anywhere("STOP") then goto endoflesson; POS:=1; if anywhere("BACK") then goto question3; POS:=1; if anywhere("SKIP") then goto thatsit; goto KCOUT; thatsit: outsymbol(27); outsymbol(89); outsymbol(55); outsymbol(32); outsymbol(27); outsymbol(75); outsymbol(27); outsymbol(89); outsymbol(47); outsymbol(32); outsymbol(27); outsymbol(62); if dummy # 100 then begin write("[NN]Excellent! Keep up the good work!"); breakoutput; latescore:=latescore+1; if dummy = 1 then score:=score+1 end end; %TEXT %TEXT outsymbol(12); Deleting Characters =================== You can delete the character to the left of the cursor by typing the command which is done by typing the KEYPAD period ("."). If the character to the left of the cursor is a tab, the entire tab is deleted. If the cursor is at the start of a line, has no effect. %TEXT There are other ways both to insert and to delete text. These will be covered in later lessons. %TEXT outsymbol(12); This lesson is almost finished, so you can go and try to create a file with SED, but first there is one more set of commands you should know before trying to use SED. %TEXT Outsymbol(12); Moving the screen forward and backward in the file ================================================== If you type on the bottom line of the screen and then type a carriage return the screen will roll one line. That is, the top line disappears, the other lines move up, and a blank line appears at the bottom. The top line has not been deleted; it is simply above the viewing window. You can get the lines above the viewing window back by typing the command: W. This command does the following: lines disappear from the bottom, the remaining lines roll down, and lines which were above the screen appear at the top. will attempt to roll about 8 lines, but it won't go farther than the beginning of the file (so if you're at the start of the file and type the command nothing will happen). Similarly, you can roll the screen forward about 8 lines by typing the command: T. %QUESTION outsymbol(12); Does a CTRL-T move the screen forward or backward? %right forward %wrong backward %wrong %text Just one more question before you go. %Question What command do you give to the monitor to CREATE a file called "TEXT.RNO" with sed? %NOEXTRA %RIGHT SED TEXT.RNO= %RIGHT sed text.rno= %WRONG SED TEXT.RNO You must have an "=" at the end of your command. %wrong sed text.rno %same %wrong sed text You must type the extension %wrong SED TEXT %SAME %WRONG SED TEXT= %SAME %WRONG sed=text.rno The "=" should be after the file name. %WRONG SED=TEXT.RNO %SAME %WRONG SED=TEXT %SAME %WRONG sed=text %SAME %WRONG sed = text.rno %same %WRONG SED = TEXT.RNO %SAME %WRONG SED = TEXT %SAME %WRONG sed = text %SAME %WRONG create No, use the SED command. %wrong CREATE %same %wrong CREATE TEXT %same %wrong create text %same %wrong CREATE TEXT.RNO %same %wrong create text.rno %same %wrong CREATE TEXT.RNO= %same %wrong create text.rno= %same %wrong %wrong %text outsymbol(12); All right. Now you can at least start to write a file with SED. But do try the other lessons, as you won't be able to go very far with just this one. %finish %end