home *** CD-ROM | disk | FTP | other *** search
-
-
- ***************************************************************************
- ** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD **
- ** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977. ALL RIGHTS RESERVED. **
- ***************************************************************************
-
- STOIC DISPLAY EDITOR
- J. SACHS
- 2/8/77
-
- THE STOIC DISPLAY EDITOR IS SIMILAR TO THE NOVA DISPLAY
- EDITOR. WHEN INVOKED, IT MODIFIES THE STOIC PROMPT MESSAGE TO
- INCLUDE TYPING OUT A SECTION OF TEXT ON EITHER SIDE OF THE
- CURSOR. THE CURSOR ITSELF IS DISPLAYED AS A "~". THE TWO
- AUXILLIARY CURSORS (P1 AND P2) ARE DISPLAYED AS "{" AND "}"
- RESPECTIVELY. THE FIRST LINE OF THE DISPLAY GIVES THE INPUT
- FILE NAME ("*" IF NONE) FOLLOWED BY THE OUTPUT FILE NAME
- ("*" IF NONE). THE EDITOR ALSO MODIFIES THE ERROR MESSAGE HANDLER
- TO ERASE THE SCREEN, DISPLAY THE ERROR MESSAGE, AND WAIT FOR A
- CARRIAGE RETURN TO RESTORE THE NORMAL TEXT DISPLAY. A LIST OF EDITOR
- COMMANDS FOLLOWS:
-
- COMMAND DESCRIPTION
-
- EDIT ENTER EDITOR
-
- H EXIT EDITOR
-
- B MOVE CURSOR TO BEGINNING OF TEXT BUFFER
- Z MOVE CURSOR TO END OF TEXT BUFFER
-
- N M MOVE CURSOR N CHARACTERS (N MAY BE NEGATIVE)
- N L MOVE CURSOR N LINES (N MAY BE NEGATIVE)
-
- N <M> SET P1 AT CURRENT CURSOR LOCATION, MOVE N
- CHARACTERS, SET P2 AT CURRENT CURSOR LOCATION,
- SWAP P1 AND P2 IF P1 > P2.
-
- N <L> SET P1 AT CURRENT CURSOR LOCATION, MOVE N
- LINES, SET P2 AT CURRENT CURSOR LOCATION,
- SWAP P1 AND P2 IF P1 > P2.
-
- <ALL> SET P1 TO BEGINNING OF TEXT BUFFER, SET P2 TO
- END OF TEXT BUFFER.
-
- LINE# PUSH THE LINE NUMBER OF THE LINE CONTAINING THE CURSOR. LINE
- NUMBERS START AT ZERO.
-
- <S> GIVEN A FLAG AT TOP-2, A POINTER AT TOP-1 AND A BYTE COUNT AT TOP;
-
- IF THE FLAG IS NON-ZERO,
- SEARCH FORWARDS, STARTING AT THE CURRENT CURSOR LOCATION FOR
- THE SPECIFIED STRING. IF FOUND, P1 POINTS TO THE BEGINNING
- OF THE STRING, P2 AND THE CURSOR POINT TO THE END AND
- A -1 IS RETURNED ON THE STACK. IF NOT FOUND, A ZERO
- IS RETURNED ON THE STACK.
-
- IF THE FLAG IS ZERO,
- SEARCH BACKWARDS, STARTING AT THE CURRENT CURSOR LOCATION FOR
- THE SPECIFIED STRING. IF FOUND, P1 AND THE CURSOR POINT TO
- THE BEGINNING OF THE STRING, P2 POINTS TO THE END AND
- A -1 IS RETURNED ON THE STACK. IF NOT FOUND, A ZERO
- IS RETURNED ON THE STACK.
-
- 'STR S SEARCH FOR THE GIVEN STRING. IF NOT FOUND, THE ERROR
- "MISSING" IS GIVEN.
-
- 'STR BS BACKWARDS SEARCH FOR THE GIVEN STRING. IF NOT FOUND,
- THE ERROR "MISSING" IS GIVEN.
-
- <N> SIMILAR TO <S>, EXECPT THAN IF THE STRING IS NOT FOUND,
- A "1 R" IS EXECUTED AND THE SEARCH IS CONTINUED ON THE
- NEXT PAGE. THE SEARCH FAILS IF EOF IS ENCOUNTERED.
-
- 'STR N GLOBAL SEARCH FOR THE GIVEN STRING. IF NOT FOUND, THE
- ERROR "MISSING" IS GIVEN.
-
- <D> DELETE THE TEXT BETWEEN P1 AND P2.
-
- D DELETE N CHARACTERS STARTING AT THE CURSOR.
- DL DELETE N LINES STARTING AT THE CURSOR.
- DA DELETE THE ENTIRE TEXT BUFFER.
-
- <I> GIVEN BYTE COUNT AT TOP AND BYTE POINTER AT TOP - 1,
- INSERT THE SPECIFIED STRING AT THE CURSOR LOCATION.
- IF THE INSERT WILL NOT FIT, THE ERROR "CORE FULL" IS
- GIVEN.
-
- <IL> GIVEN BYTE COUNT AT TOP AND BYTE POINTER AT TOP - 1,
- INSERT THE SPECIFIED STRING FOLLOWED BY A RETURN.
-
- <IP> GIVEN BYTE COUNT AT TOP AND BYTE POINTER AT TOP - 1,
- INSERT THE SPECIFIED STRING FOLLOWED BY A FORM FEED.
-
- 'STR IS INSERT STRING.
- 'STR IL INSERT STRING FOLLOWED BY RETURN.
- 'STR IP INSERT STRING FOLLOWED BY FORM FEED.
- ICR INSERT A RETURN.
- IFF INSERT A FORM FEED.
- N I# CONVERT N TO A STRING AND INSERT IT.
-
- I/ CAUSES THE EDITOR TO ENTER INSERT MODE; THE DISPLAY IS REDRAWN
- MINUS THE TEXT FOLLOWING THE CURSOR. ALL CHARACTERS TYPED IN
- AT THE KEYBOARD ARE INSERTED INTO THE TEXT BUFFER UP TO THE
- THE FIRST ESCAPE CHARACTER. AT THIS POINT, NORMAL DISPLAY IS
- RESUMED. RUBOUT OR NULL MAY BE USED TO DELETE THE LAST CHARACTER
- OR THE ENTIRE INSERT RESPECTIVELY. THE ASCII CODE FOR THE ESCAPE
- CHARACTER MAY BE RESET BY MODIFYING THE VARIABLE "ESC".
-
- 'STR U DELETE TEXT BETWEEN P1 AND P2, INSERT STRING.
- 'STR1 'STR2 C CHANGE STRING 1 TO STRING 2.
- 'STR1 'STR2 BC BACKWARDS CHANGE STRING 1 TO STRING 2.
- 'STR1 'STR2 V CHANGE STRING 1 TO STRING 2; A GLOBAL SEARCH ("N") FOR
- STRING 1 IS PERFORMED.
-
- 'STR SD SEARCH FOR AND DELETE STRING.
-
- 'STR1 'STR2 CC CONDITIONAL CHANGE STRING 1 TO STRING 2.
- 'STR1 'STR2 BCC BACKWARDS CONDITIONAL CHANGE STRING 1 TO STRING 2.
- 'STR1 'STR2 CV CONDITIONAL CHANGE STRING 1 TO STRING 2
- A GLOBAL SEARCH ("N") FOR STRING 1 IS PERFORMED.
-
- CONDITIONAL CHANGES FIRST SEARCH FOR STRING 1
-
- IF NOT FOUND, THE ERROR "MISSING" IS GIVEN
-
- IF FOUND, THE COMMAND WAITS FOR THE OPERATOR
- TO TYPE A KEY
-
- IF A LINE FEED IS TYPED, STRING 1 IS REPLACED BY
- STRING 2 AND ANOTHER SEARCH FOR STRING 1 IS
- PERFORMED.
-
- IF A CARRIAGE RETURN IS TYPED, STRING 1 IS NOT
- REPLACED BY STRING 2 AND ANOTHER SEARCH FOR
- STRING 1 IS PERFORMED.
-
- IF ANY OTHER KEY IS TYPED, THE COMMAND RETURNS.
-
- <XC> COPY THE TEXT BETWEEN P1 AND P2 INTO THE "X" BUFFER.
-
- N XC COPY N CHARACTERS INTO THE "X" BUFFER.
- N XCL COPY N LINES INTO THE "X" BUFFER.
-
- N XM MOVE N CHARACTERS INTO THE "X" BUFFER.
- N XML MOVE N LINES INTO THE "X" BUFFER.
-
- XG INSERT THE CONTENTS OF THE "X" BUFFER AT THE CURRENT
- CURSOR LOCATION.
-
- 'FILE GR OPEN THE SPECIFIED FILE FOR INPUT
- 'FILE GW OPEN THE SPECIFIED FILE FOR OUTPUT
-
- GX FLUSH INPUT AND OUTPUT FILES
- OUTPUT FILE IS DELETED.
-
- 'FILE O OPEN THE SPECIFIED FILE FOR INPUT,
- OPEN "<EDSC>" FOR OUTPUT,
- DO A "1 YP" TO READ THE FIRST PAGE
- OF THE INPUT FILE.
-
- W IF THERE IS AN INPUT FILE, ANY REMAINING PAGES
- ARE COPIED INTO THE OUTPUT FILE, TWO EOF'S ARE
- OUTPUT, THE OUTPUT FILE IS CLOSED, THE INPUT FILE
- IS DELETED AND THE OUTPUT FILE IS RENAMED TO THE
- INPUT FILE.
-
- IF THERE IS NO INPUT FILE, THE TEXT BUFFER IS
- WRITTEN OUT, FOLLOWED BY TWO EOF'S AND THE
- OUTPUT FILE IS CLOSED.
-
- 'FILE WR
- IF THERE IS AN INPUT FILE, ANY REMAINING PAGES
- ARE COPIED INTO THE OUTPUT FILE, TWO EOF'S ARE
- OUTPUT, THE OUTPUT FILE IS CLOSED, THE OUTPUT
- FILE IS RENAMED TO THE THE GIVEN FILE NAME.
-
- IF THERE IS NO INPUT FILE, THE TEXT BUFFER IS
- WRITTEN OUT, FOLLOWED BY TWO EOF'S AND THE
- OUTPUT FILE IS RENAMED TO THE GIVEN FILE NAME.
-
- WO WRITE OUT THE CURRENT FILE AND REOPEN IT; I.E. START
- A NEW EDIT PASS.
-
- 'FILE WRO
- WRITE OUT THE CURRENT FILE AND RENAME IT. OPEN THE
- NEW FILE. THE ORIGINAL INPUT FILE REMAINS INTACT.
-
- <P> OUTPUT TEXT BETWEEN P1 AND P2
- PEOF OUTPUT AN EOF.
- N P OUTPUT N CHARACTERS STARTING AT CURSOR.
- N PL OUTPUT N LINES STARTING AT CURSOR.
- PA OUTPUT ENTIRE TEXT BUFFER.
-
- M N <A> APPEND M LINES USING CHARACTER N AS A LINE TERMINATOR.
- LEAVE EOF FLAG ON STACK.
-
- N <AL> APPEND N LINES.
- LEAVE EOF FLAG ON STACK.
-
- N <AP> APPEND N PAGES.
- LEAVE EOF FLAG ON STACK.
-
- N AL APPEND N LINES.
- GIVE ERROR ON EOF.
-
- N AP APPEND N PAGES.
- GIVE ERROR ON EOF.
-
- N <YL> DELETE TEXT BUFFER AND APPEND N LINES.
- LEAVE EOF FLAG ON STACK.
-
- N <YP> DELETE TEXT BUFFER AND APPEND N PAGES.
- LEAVE EOF FLAG ON STACK.
-
- N YL DELETE TEXT BUFFER AND APPEND N LINES.
- GIVE ERROR ON EOF.
-
- N YP DELETE TEXT BUFFER AND APPEND N PAGES.
- GIVE ERROR ON EOF.
-
- N <R> OUTPUT TEXT BUFFER AND READ NEXT N PAGES
- LEAVE EOF FLAG ON STACK.
-
- N R OUTPUT TEXT BUFFER AND READ NEXT N PAGES.
- GIVE ERROR ON EOF.
-
- FL DISPLAYS THE DIRECTORY. NORMAL DISPLAY IS
- RESTORED BY TYPING RETURN.
-
- <T> TYPE TEXT BETWEEN P1 AND P2.
-
- N T TYPE N CHARACTERS STARTING AT CURSOR.
-
- N TL TYPE N LINES STARTING AT CURSOR.
-
- TA TYPE ENTIRE TEXT BUFFER.
-
-
- NOTE:
-
- WHEN GENERATING A CORE IMAGE OF THE EDITOR, THE FOLLOWING
- PROCEDURE SHOULD BE USED:
-
- 'ED LOAD
- 'EDCI WRCI EDIT
-
- THIS WILL WRITE OUT AN EDITOR CORE IMAGE "EDCI" WHICH MAY BE USED
- ON MACHINES WITH DIFFERENT AMOUNTS OF MEMORY, SINCE ALL THE EDITOR
- POINTERS ARE RE-INITIALIZED EVERY TIME IT IS READ IN.
-
-
-
- ***EOF***
-