Date : Mon, 28 Jul 1986 12:06:38 EDT
From : SAGE@LL.ARPA
Subject: CP/M Text Editors
Urs Zurbuchen asked for information about a public-domain text editor for
P/M with a rather impressive list of requirements. The only public-domain
ditors I know of are rather simple beasts, and the only programs that come
lose to Zurbuchen's list of requirements are two commercial programs, PMATE
nd VEDIT. I am familiar with PMATE, the original editor of this type.
EDIT is quite similar. Here is how it matches up to those requirements:
small and fast: PMATE is a little over 20K long (exact size depends on
user configuration choices, principally the size of the permanent macro
area. PMATE is particularly fast, since it gives proper priority to
keyboard input over its own screen output.
support for memory-mapped video: PMATE does this very nicely (that is how
I use it).
multiple file editing: PMATE has a total of 11 editing buffers, all of
which can contain text from files or macro commands. Commands allow text
to be transfered in various ways between the buffers.
arbitrary file size: The main text buffer in PMATE supports disk buffering
of files and thus can handle files of arbitrary length (limited by disk
space). Source, destination, and temporary files can each be on a
separate drive so that the longest file that can be edited is limited to
the full capacity of a drive.
key-to-command binding: Here PMATE really shines. First, PMATE not only
binds individual keys but recognizes sequences of keys and assigns them to
commands. Secondly, the commands to which key sequences are bound include
not only the built-in functions that PMATE comes with but also user-
written functions, written using the interpreted macro command language
(TECO-like). These user-written macros are stored in what is called the
permanent macro area (PMA). After the PMA has been updated, PMATE's clone
function is used to save a new version of the editor.
macros: PMATE has an unbelievably complete macro capability. There are
user variables and system variables that tell one almost everything about
the environment (current line and column, current buffer number, the value
of the character under the cursor, the next tab stop, the amount of memory
left, the absolute memory address of the cursor, and many, many more).
Fully structured iteration is supported (if-then-else, do-until, do-while,
repeat). I cannot begin to describe all the features here. Suffice it to
say that the hooks are present to do just about anything one can imagine.
Without access to any source code, I made a version of PMATE that is
ZCPR3-compatible (supports file access using the DU: -- drive/user --
format).
auto-indent: PMATE supports automatic indentation for writing in languages
such as C and Pascal. The macro languages give full support and control
to auto-indentation.
overlays: PMATE is complete in one COM file.
clean screen: PMATE shows only the information you really need to know --
the names of open files, the current editing buffer, the value of a
numerical argument returned by a macro, and the cursor position (line and
column).
f anyone wants more information about PMATE, I would welcome their
nquiries, since I am probably the most active supporter around of the 8-bit
ersion of PMATE (there are 16-bit versions, too). A special section (with
estricted access) of my remote access system, the Newton Z-Node
617-965-7259, pw=DDT), is devoted to PMATE support. It includes a bulletin
oard with suggestions and tips on exploiting PMATE's capabilities and an
xtensive collection of macros.
Jay Sage (SAGE @ LL)