\section{Highlights}

\begin{itemize}
 \item
    Very small: fits in 4096 bytes = 4 clusters on 5.25"/3.5" floppies.
 \item
    Minimal free memory requirements: 137KB.
 \item
    Uses current screen size, including the most common $80x25$ screen
    dimensions but also unusual sizes such as $40\times16$, $40\times25$, $40\times40$,
    $40\times50$, $132\times25$, $132\times43$, $96\times33$, $80\times30$, $80\times33$, etc.
 \item
    Fully DESQview (version 2.0 and above) aware.
 \item
    Edit binary files. \Terse{} is ideal for a quick and dirty job
    of editing and patching strings in small programs. 
 \item
    Supports editing of UNIX style files 
		(lines terminated with `\verb+\n+').
 \item
    Supports both `{\verb+/+}' and `{\verb+\+}' as directory separator.
 \item
    Edit lines of unlimited length (limited only by file size).
 \item
    Automatic unlimited horizontal scrolling.
 \item
    {\em Brief}-like keyboard configuration.
 \item
    Support for tabs, and configurable tab positions.
 \item
    Prevents snow when run on a CGA screen.
 \item
    \Command{Cut}, \Command{Copy} and \Command{Paste} commands.
 \item
    \Command{Search}, \Command{Search} again, and \Command{Translate} commands.
 \item
    Safe: confirm exits when text is not saved.
 \item
    Edit files whose name contains spaces and other weird names.
 \item
    Extended version (the \Slim{} editor) of size\verb+~+5KB with many more
    features, including support (via external filters) for word count, 
    sorting, character codes translations, quoting, tab expansion and
    un-expansion, and other complex editing tasks.
 \item
    Status line indicating: current column, current line, horizontal
    scrolling, total number of lines, file name, modified status,
    insert/overwrite status, the current offset in file and total file size 
    in bytes are displayed in the status line. The extended version 
    also displays the hexadecimal value of the current char.
 \end{itemize}

\section{Requirements}

 \begin{itemize}
 \item
    PC-DOS/MS-DOS version 2.0 or higher
 \item
    137KB free memory
 \item
    64KB free disk space
 \end{itemize}

\section{Problems, Questions, Suggestions?}
Please do not hesitate to communicate all your thoughts and comments.
I answer all my E-mail usually in less than 24 hours.  If you do not
get a response within a reasonable time, it is probably because I didn't
get your message, or because I wasn't able to reply.  Kindly try sending
again using another route, and include more alternate return paths.

Any comments you may care to make are valuable to me.  The editors and
the included software would not have been what they are today without
all of the generous aid users provided: requests, complaints, thoughts
and even gripe are always welcomed.


\section{Compatibility}
\Terse{} uses only pure 8088 instructions and assumes the bare minimum
of the underlying operating system.  It would run on your good
old original 4.77MHz IBM-PC running under DOS 2.0 as well as on a fast
80486 66MHz machines running DR DOS 6.0 + 4DOS 5.0, or OS/2 in DOS
compatibility mode.  More than once during the development, I had a
chance to save a few bytes by using a more advanced instruction, or
by assuming a more advanced operating system version.  I managed to
resist this temptation.  Other than that every dirty assembly trick I
could think of was used.  It is conceivable that some of the tricks
could prevent \Terse{} from running on some DOS-like environments and
simulators, although I don't know of any concrete example.



\section{UNIX style files}
\Terse{} edits UNIX style files directly.  That is, \Terse{} uses
both \n{} (aka \Char{LF}, aka Line-Feed) and a \rn{} (aka CR-LF, aka
Carriage-return + Line-feed) combo for line ends.  Hitting \Key{Enter}
puts \rn{} into the file, and \Key{Ctrl-Enter} puts \n{}.  (Configuration 
utilities allow swapping these 2 keys.)  Thus, you can transfer UNIX 
text files to your PC, edit them on the PC, and then transfer them 
back without need for file conversion.


\section{Binary files editing}
\Terse{} can edit binary files as well.  To aid in this task, the
status line displays the file size in bytes and the current offset
in bytes in the file. The status line of the \Slim{} editor displays
the hexadecimal value of the current char.  (This feature may be
added in the future, space permitting to \Terse.)  A difficulty in
editing binary files is that the following characters: space (ASCII 32), 
Null (ASCII 0), and Meta-Del (ASCII 255) all look the same.  If you have
an EGA or VGA screen you may want to use the font loaders \Command{WITHFONT}
or \Command{LOADFONT} together with the binary editing font and circumvent
this difficulty.


\section{Configuration Utilities}
The configuration utilities allow you to: swap the \Key{Enter} and
\Key{Ctrl-Enter} keys, change the tab size to 2/4/8/16 (I personally prefer
tabs set every 4 characters), and modify the key assignments (with
some minor restrictions).  In addition, you can eliminate the snow
check done automatically on CGA screens, and you get better support
(as described above) for editing binary files on EGA/VGA screens.


\section{Future}
The main constraint in adding features to \Terse{} is that its total
size must be exactly 4096 bytes.  All additions are dependent on my
ability to squeeze the current code further.  I usually work several
hours, and sometimes days, for each byte squeezed.  And this task is
getting harder and harder all the time.  (A few versions had a slack
of very few bytes.  In these versions, a few dummy bytes were appended
to the program to keep its size 4096 bytes exactly.)

My current efforts are concentrated on the developing of 
	the \Terse{} library.									 
This is an object code program which could be invoked
	from a C or any other high level language. 

\section{How to obtain \Terse}
\Terse{} is available from Simtel, Garbo, Wustl, their mirrors and from
other fine FTP archive sites.  Some of these sites have mail-servers
for those who do not have access to FTP\@.  Some of these sites carry
only an abridged distribution.

In addition, the latest version of \Terse{} is regularly deposited in
\begin{quote}
\tt

    FTP.Technion.AC.IL:/pub/supported/cs/msdos/ters{[ \rm XXX}\/af{\rm ]}.zip

%    wuarchive.wustl.edu:/pub/MSDOS\_UPLOADS/ters{\rm XXX[}\/af{\em ]}.zip
\end{quote}
Where XXX denotes the three digit version number, and the 
letter a or f denotes the version type: abridged or full.
For example, the full distribution of version 1.42 should be 
in a file named trs142f.zip.

If you are experiencing problems downloading these files 
({\tt FTP.Technion.AC.IL} is picky for no real reason sometimes), or if you don't have FTP access,
please drop me a line and I will e-mail to you whichever distribution
you are interested in.  The full distribution is sent out in 5 parts of
about 1000 uuencoded lines each.  The abridged distribution (basically
just the \Terse{} editor and the manual) goes in one part of about 600
uuencoded lines.  You can use the \Command{UUDECODE} program enclosed with
this archive to decode this mail.

\section{Genealogy}
\Terse{} is an exercise of editor writing inspired by \Command{TED}, 
the famous \Em{T}iny \Em{ED}itor. \Command{TED} was written 
by Tom Kihlken and published on the November 1988 issue of PC Magazine
(Copyright 1988 Ziff Communications Co.).  

Some features of
\Terse{} are borrowed from the fine descendants of \Command{TED} called 
\Command{TED+}
(apparently also written by Tom Kihlken in November 1988) and \Command{TED2}
(written by James E. Galbraith, 1201 Chase St., Novato CA, 94945, USA).

There is not a single piece of code in \Terse{} which is the same as in
\Command{TED}, \Command{TEDPLUS} or \Command{TED2}.  \Terse{} 
represents almost three years of work on space optimization of the code, 
and on added functionality.  Some of the
newly added features include help screen, unlimited line length, space
optimization of the code, and on added functionality.  Some of the newly
added features include the help screen, unlimited line length, status
line, smooth horizontal scrolling, previous and next word, UNIX files
editing, search and replace, safety features and support for insertion
of all 256 characters of the IBM-PC extended ASCII set (including 
\Char{Nul},
\Char{BS}, \Char{CR}, and \Char{LF}).  
Some old features include scrolling, cut, copy,
paste, and printing operations.

Some of the documentation for \Terse{} is based on the documentation
provided with TED2.  See the article ``The tiniest editor you'll ever
need" by Tom Kihlken, in the November 15, 1988 issue of PC Magazine
for further details concerning TED, TED, TEDPLUS and TED2 are
available from SIMTEL20:
\begin{itemize}
    \item
		\Command{TED}\\
		\tt
	         PD1:$\langle$MSDOS.PCMAG$\rangle$VOL7N19.ARC

    \item\Command{TED+}\\
	     PD1:$\langle$MSDOS.EDITOR$\rangle$TEDPLUS.ARC

	\item	\Command{TED2}\\        
		PD1:$\langle$MSDOS.EDITOR$\rangle$TED2.ZIP
\end{itemize}
\Terse{} is not related in any way to \Command{TED3}.


