Google
 

Trailing-Edge - PDP-10 Archives - bb-k345a-sb - sos21.doc
There is 1 other file named sos21.doc in the archive. Click here to see a list.


SOS21.DOC -- Changes from V12 to V21
March 1979






























COPYRIGHT (C) 1974,1978,1979 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
SOS12.DOC                                                       Page 2


1.0  SUMMARY

The purpose of the document is to provide a brief description of  what
has  transpired  inside  SOS since the summer of 1972 when the current
ADR manual was published.  The following discussion  is  divided  into
two  sections,  the  first dealing with only those changes that affect
SOS use, and the second with internal changes.

This version of SOS must be loaded with  a  current  copy  of  HELPER.
There  are  no  other  dependecies.   It fully supersedes all previous
versions and has no known deficiencies.  This version fixes  all  bugs
reported  to  June 1974, and runs on all monitors.  It has been tested
on 5.06, and 5.07/6.01.  SOS version  21  fully  supports  the  DATE75
convention.

SOS is documented by this document, the ADR  manual,  and  its  ".HLP"
file.

This release of SOS  is  classified  as  catagory  IV  software.   The
documentation,   while   incomplete,  will  be  provided  at  a  later
unspecified date.  It is intended that this software be superseded  at
a  later  date with a slightly incompatible replacement of a different
name.



2.0  EXTERNAL CHANGES

Commands may be aborted by typing 2 bells in succession.  This feature
allows  you to return to SOS command level from any level except ALTER
mode.  Also this feature can be used to delete back past an ESC  typed
for an "F" or "S" command

Allow the use of ^ to mean either the first line of a  given  page  or
the first page (i.e.  Page 1) of the file, depending on the context in
which it is used.  Also allow the use of /* to denote the last page of
the file.

At startup, print the name of the file that is to be  edited  preceded
by  the  keyword:   "Edit"  if the file exists, "Input" if the file is
being created, and "Read" if the file is being accessed  in  Read-only
mode.

Change the quote character used to specify special character  handling
to   be   a   single-quote   (')  rather  than  a  question-mark  (?).
Question-marks are now normal characters.  To input  a  (')  you  must
type ('').  This pertains only to C128 mode.
SOS12.DOC                                                       Page 3


Add new backup file  logic  to  create  either  "Qxx"  or  "Zxx"  file
extensions,  where  "xx"  is  the  last two characters of the original
file's extension.  Also add the switch "/OLD" to allow  generation  of
"Zxx"  files.   The  "BAK"  file  extension  is  replaced by these new
conventions as follows:  If a backup file is requested then  create  a
file  with  the  "Qxx"  extension.   If a "old" file is requested then
create a file with the "Zxx" extension if it does not exist, else  use
the  "Qxx"  extension.   Thus  /OLD causes the original copy to become
"Zxx" and subsequent backup files to be "Qxx".  If no backup  file  is
requested  then  an  existing  "Qxx"  file  will  be deleted.  Related
switches are "/OLD, /NOBAK, and /BAK.  The "=BAK" command will  advise
you of wether backup files will be created.

All SOS parameters may be specified in the initial command  string  as
switches.  (See SOS.HLP for details on parameters.)

Add the command "K/n" to allow deletion of page marks.   This  is  the
only  acceptable  way  to  delete  just  a page mark.  E.G:  K/5  will
delete page mark 5, merging page 5 into page 4.

Fix the "D" and "R" commands to be more general.  That is allow a user
to  delete  through  page  boundaries.  If you try to delete through a
page mark SOS will ask "Massive deletions ok?", to which you may  type
Y  or  N.  Also and a switch (,Y) which may be appended to the command
to suppress this dialog.  This confirmation for massive  deletions  is
not necessary in expert mode.

Add a new command "." to allow positioning the current  line  pointer.
the acceptable format is ".<position>".

Fix command errors in intra-line edit mode ("A"  command)  to  echo  a
bell instead of nothing.

Add the ability to specify the name of the program to be run  for  the
"G"  command.   The format is "_RUN=DEV:FILE.EXT[<path>]".  The "=RUN"
command will type out the name of this program.

Add the type out of the "line-contents" search strings (3 of them)  in
addition to the current information given by the "=STRING" command.

Fix the "S" command with no arguments to do the substitution  on  only
the  first  line found instead of the entire file.  This makes the "S"
and "F" commands a little bit more compatible.

Make "_" and "=" mean the same thing in the "C" command.

Allow all command string switches and parameters to  be  specified  by
their unique initial segment.

Fix the "M" (insert  page  mark)  command  to  automatically  set  the
current line pointer (.) to the first line of the new page or 00100 if
the page is empty.
SOS12.DOC                                                       Page 4


Add code so that the "D" and "R" commands will inform the user of  the
number  and  range  of  lines  deleted.  This feature is suppressed in
expert mode.  The format of the  message  is  as  follows:   "n  lines
(<range>) deleted"

Add the command switch "/BASIC" to read an input file in the following
mode if that file doesn't have system style sequence numbers:

     1. All leading blanks and tabs will be stripped.

     2. The first non-blank character must be a digit.

     3. From 1-5 leading  digits  will  be  converted  to  a  sequence
         number.  More than 5 digits will be considered an error.

     4. A tab will be inserted using the following algorithm:   I)  If
         the  first  non-digit  is a space then replace it with a tab;
         II) If the first non-digit is a tab then leave it  in  place;
         III)  If  the  first non-digit is anything else then insert a
         tab.

     5. If the "UNSEQUENCE" option is used then  the  sequence  number
         will  be  converted to a 5-digit string and the following tab
         into a space upon exit.

In addition to above the "/R" switch  when  given  in  a  "C"  command
instead of "/S" will read the file being copied in "BASIC" mode.

Allow the user to specify "/START" and "/STEP" switches  in  order  to
control  the  reading  of  unsequenced files.  Defaults are 00100.  If
/START is omitted it defaults to the /STEP value.  E.G.  "/STEP:10" --
starts at 10 with increments of 10.

Re-write the "E" (end) command to have the following new  syntax.   In
order  to  specify a new file name it must be preceded by a colon (:).
E.G.  "E:newnam.ext[<path>]".  Also the command may be followed by one
of the optional command modifiers "B" , "Q" , "S" or "D" defined as:

  B  Suppress the creation of a backup file "Qxx" or "Zxx".
  Q  Terminate this  session  now  and  delete  any  temporary  files.
     Leaves original file unchanged.
  S  Unsequence the resulting output file.
  D  Delete the original input file.  (Useful if browsing a listing --
     see also "/DELETE").

The "W" and "G" commands follow this new convention also.  As a result
of this the "Q" command has been removed.

Modify intra-line edit mode to allow certain commands to  be  preceded
by  a  minus sign (-).  These are "-D" , "-S" , "-R" , and "-K".  Both
the "-S" and "-K" commands pass through the search character.   Repeat
counts are of the form "-nD" etc.
SOS12.DOC                                                       Page 5


Add the capability to cause automatic "W" commands to be  executed  by
the setting of parameters "SAVE" and/or "ISAVE".  The parameter "SAVE"
is a counter of the number of commands, that modify the file, that are
allowed  between "W" saves.  The parameter "ISAVE" is the count of the
number of lines that are allowed to be  inserted  between  "W"  saves.
When  a  counter goes to zero, the message:  "[Doing auto-save, please
wait]" will be printed on your terminal  and  the  edit  session  will
continue.   In  addition  the  message  "[Warning:   sequence  numbers
preserved]" may appear if the final file is to be  unsequenced.   This
is  to prevent the re-sequencing of the file that is in the process of
being edited.

Implement disk quota and space checking.  To enable this feature  give
the  "/CHECK  switch.   This will cause SOS to verify that enough disk
space exists before every output.  It will allow an  overdraw  of  100
blocks   if   possible.    If  your  quota  is  exceeded  the  message
"[Insufficient disk space to do  output]"  will  be  printed  on  your
terminal.   SOS  will then wait for you to type one of "G" , "T" , "R"
or "W" which mean:

  G  Do the output (now and forever).
  T  Test disk space and do output if space is available.
  R  Give resources and do output if space is available.
  W  Wait until either space appears or you type a different response.

In addition the "=DISK" command will inform  you  of  the  disk  space
available.

Implement the "/DECIDE" switch to permanently set the ",D"  option  on
the  substitute  (S) command.  Also in decide mode, a space " " is the
only character allowed to accept a line.   "/NODECIDE"  and  "=DECIDE"
have also been implemented.

When using search mode in the copy (C) command, prompting is done with
"C*" instead of just "*".

Allow echo suppression of all deleted text in intra-line edit mode  if
the  user is in expert mode.  This affects the "D" , "X" , "R" and "K"
commands.  In novice mode all deleted text will still be printed.

Implement CONTROL-C intercepting.  In response  too  a  CONTROL-C  SOS
will type "Yes?  (Type H for help) ", to which you may type one of:

  C  To continue automatically
  E  To end edit and close file
  Q  To quit (delete temp files)
  M  Return to monitor now
  R  To do reenter (terminate losing search etc.)

Implement option files (SWITCH.INI) as per the specification found  in
the DECsystem-10 Monitor Commands Manual.

Allow all switches and arguments to the "_" and  "/"  commands  to  be
compatable.   This  means  that  all  SOS parameters may be set in the
initial command string and in SWITCH.INI.
SOS12.DOC                                                       Page 6


Add the parameter "PLINES" that can be used to set the number of lines
printed by a "P" command with no arguments.  Default value is 16.

Allow full DECsystem-10 file specifications  in  the  initial  command
string.   Also  fix  all problems with the handling of file structures
and file protection.  All file names may be  specified  in  the  form:
"dev:name.ext[<path>]".

Allow the command of the form "I/n" where n is a page number to do  as
follows:   i)  Insert  a  page  mark  at the end of page n;  ii) Start
inserting text on page n+1 at line 00100.

Implement the "H" (help) command  to  print  help  text  according  to
standards embodied in the module "HELPER".

Allow control characters to print in the form  "^<character>"  in  C64
mode.

Add the feature "/NONUMBER" to suppress all printing of line  numbers.
This   feature  is  af  particular  interest  for  high  speed  input.
"/NUMBER" will turn sequence number printing back on.

Make modifications to the "N" (renumber)  command  to  allow  extended
features.   The  command  "NP"  will  not  reset the line numbers when
crossing page boundaries.  This allows using uniform sequence  numbers
over  the entire file even though it contains page marks.  The command
"NA" will add a constant offset  to  the  specified  range.   This  is
useful for making a hole in some text and still preserve the low-order
digits of the old sequence numbers.

The command "=LOCATION" will print the file position that is currently
at  the  head of the edit buffer.  This number represents how far back
one may go before causing wrap-around.

Implement commands of  the  form  "I<pos>;!<number>"  to  mean  insert
<number>  lines  starting at <pos>.  The increment that is computed is
chosen from at table of aesthetic  values  (1,2,5,10,20,50,100).   The
command "R<range>;!<number> is also permitted.



3.0  KNOWN BUGS AND DEFICIENCIES

None.



4.0  INSTALLATION INSTRUCTIONS

None.
SOS12.DOC                                                       Page 7


5.0  INTERNAL CHANGES

Maximum line length is increased to 500 characters.

All monitor UUOs use DECsystem-10 standard conventions found in C.MAC.

All unnecessary "CLOSE" UUOs have been removed.

LOOKUP failures other than "File not found" are now reported correctly
and  are  treated  as errors.  If the file is not found then SOS types
"Input:  file.ext" and enters insert mode as before.

The definition of the page mark text (i.e.  the  2nd  word)  has  been
changed  to  <CR><FF><Null><Null><Null>.   SOS guarentees that all old
style page marks are converted as a matter  of  course.   Unsequencing
will now leave only a form-feed.

Add logic to edit files with protection of  <3xx>  (i.e.,  modify)  or
less.

Add logic to eliminate costly wrap-arounds when no modifications  have
been made on this pass through the file.  In addition the message "[No
changes]" is printed upon ending if there is no need to  complete  the
edit (i.e.  copying the file).

Fix the "E" command in the "COPY" command to be more forgiving  toward
responses to "Source lines = ".  This means that if the response is in
error, do not leave copy mode.  If your wish to abort this  mode  type
"EQ".

Convert all errors messages to upper and lower case.



6.0  SUGGESTIONS

Fix losing searches to print out the range over which the  search  has
been done.

Suppress the printing of wrap-around warings in expert mode.

Fix  handling  of  temporary  files  so  that  "ersatz"  devices  work
properly.  Also allow editing in write-only directory.

Expand special characters to allow more strange functions.

Add more code to handle displays.

Rewrite error message processing to conform to DECsystem standards and
possibly use a general error processor.



[End of SOS21.DOC]