Trailing-Edge
-
PDP-10 Archives
-
integ_tools_tops20_v7_30-apr-86_dumper
-
tools/sed2/chrisold.let
There are 2 other files named chrisold.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 edited, 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
edited. 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 edited, 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 counting 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 the 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