Trailing-Edge
-
PDP-10 Archives
-
integ_tools_tops20_v7_30-apr-86_dumper
-
tools/sed-for-vms/chris.let
There are 5 other files named chris.let in the archive. Click here to see a list.
Paul Malquist
Brigham Young University
403 CB
Provo, Utah 84602
Chris Hall
Digital Equipment Corporation
MRO 1-2L10
200 Forest Street
Marlborough, MA 01752
Dear Chris:
This tape includes the source and documentation to the VAX version of
SED. It also includes my COMPIL program, which does the same as the COMPIL
programs on the DEC-10 and 20s. I included them because I have coded the
<ENTER><EXIT> command to run COMPIL, just like it does on the 10. There are
four save sets on the tape: The first is SED.SAV, which includes all the
files for SED. The second save set is COMPIL.SAV, which contains all the
sources and help files for COMPIL. The third is SED2.SAV, which is a copy
of the first save set, and the fourth is COMPIL2.SAV, which is another copy
of COMPIL. COMPIL is still under development: there may be bugs, and it
doesn't have all the capabilities I hope to have in it eventually; still, I
have found it to be quite useful.
I am aware of the following problems with SED, but I have not yet
addressed them:
1. The routine that converts a file from internal format to RMS variable
format has a problem with a form feed followed by a CRLF. Each time the
file is editted, an additional CRLF is appended after the form feed.
This hasn't affected me too much, since I always put form-feeds at the
beginning of a line of text.
2. When windowing is in effect, entering insert-mode does not cause the
insert-mode message to be displayed on the bottom line (but it does
cause the bottom line to be cleared).
3. SED can not yet get its input file or write its output file to a
record-oriented device (such as a mailbox). I plan eventually to
support this type of operation.
Here are a few random notes about SED that I think you should know
about.
1. There are three ways to tell SED what the terminal type is. The most
common way is to let VMS tell SED what type of terminal is being used.
This is the default if no other way is used. This works fine if you are
on a DEC terminal or on one defined as one of the foreign terminal
types, but it isn't general enough for all terminals. We have defined
foreign terminal 1 (FT1) to be the Televideo 910 terminal, but I
haven't used up any other terminal types. For those users on other
terminals, they can define a logical name "SED_TERMINAL" to be the
terminal type, and SED will set up its tables accordingly. For example,
to set the terminal type to Infoton 200 (INF200), you would issue the
command "DEFINE SED_TERMINAL INF200". This method takes precedence over
the normal VMS terminal type. The third way to specify the terminal
type is with the /TERM switch (I thought that conveyed the meaning of
the switch more than /Z did). This method takes precedence over all the
others. In my version of SED, the system terminal type of VT52 actually
defaults to Visual-200; the only way to select a real VT52 is to use
either option 2 or option 3 above. I have done this because we have
Visual 200 terminals connected to our system, but we don't have any
VT52 terminals connected to the system. Terminals in our public areas
are all VT100-type terminals.
2. In contrast to the way it is done on the DEC-10 and -20, the temporary
files created when the pick and close buffers overflow to disk are
truly invisible to the user on the VAX. They are created as temporary
files which are automatically deleted when they are closed. They are
never entered into any directory.
3. The journal file is written in "STREAM" format, which is similar to the
normal DEC-10 and -20 file format. Anytime SED edits a stream format
file, it writes it out as a variable format file. The journal recovery
code expects the journal file to be in stream format, so journal
recovery won't work if the file has been editted. There is, however, a
way around this problem. I do the incremental saves in stream format,
so I don't have to be constantly converting to and from RMS format. If
the journal file is editted, it must then be output using an
incremental save, and then the edit should be aborted instead of
exited normally, so the journal file will remain in stream format. We
can't just leave all files in stream format, because the compilers
don't seem to be able to handle them that way. They seem to require
variable format files.
4. There are several types of file formats on the VAX, and SED will read
all of them as long as the file organization is sequential. Be aware,
though, that any formats other than variable (that includes fixed,
variable with fixed control, and various stream formats) will be output
by SED only in variable format.
5. I have made some changes to the <SUBSTITUTE> command to properly
display the results of the substitute when either the search string or
the substitute string or both has imbedded CRLFs in it. This involves
count the number of lines in each string and doing the right thing to
the display to account for variations in the number of lines before and
after ths substitute. You may want to make corresponding changes to
your version of SED.
That's about all I can think of to tell you right now. If you have
questions, don't hesitate to call me.
Sincerely,
Paul Malquist, Systems Programmer