home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG023.ARK
/
EDIT.DOC
< prev
next >
Wrap
Text File
|
1984-04-29
|
8KB
|
256 lines
***************************************************************************
** 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***