Dec 062017
Asm Edit 2.4a: smart tabs, auto comments, more. Freeware.

Full Description of File

Asm Edit 2.4a. Updated release of
an all new editor tailored for the
assembly language programmer. Smart
tabs, auto comments, more. Free pgm.

File AE24A.ZIP from The Programmer’s Corner in
Category Assembly Language
Asm Edit 2.4a: smart tabs, auto comments, more. Freeware.
File Name File Size Zip Size Zip Type
ADD4DOS.BTM 456 271 deflated
AE.COM 8310 5787 deflated
AE.DOC 42787 15979 deflated
AECONFIG.COM 1613 1040 deflated
FILE_ID.DIZ 150 123 deflated
HISTORY.TXT 6295 2892 deflated
TPCREAD.ME 199 165 deflated
UNDOCUME.NTD 534 339 deflated
WHATS.NEW 436 273 deflated

Download File AE24A.ZIP Here

Contents of the AE.DOC file

AE.COM: A .ASM file editor.

This document describes the use of Asm Editor, ver. 2.3. AE is an editor
intended for creation and maintainance of assembly language source files.
It is not intended as a general purpose editor nor an editor for other
types of source files.


First, AE is not in the public domain. It is freeware, which means it can
be distributed freely, used freely, but not sold. This is due to Ziff's
copyrights on TED, the ancestor of AE. Although TED has been very heavily
modified to become AE, I just don't feel right trying to circumvent Ziff's

Second, the use of this software is entirely at the user's OWN RISK. It is
not guaranteed to do anything except occupy 0 or more bytes of disk space.
ANY un-desired effects caused by this program, directly or indirectly, are the
responsiblity of the USER, and the USER's sole recourse is to dis-continue use
of the program. As this program alters data files, normal data processing
techniques dictate keeping reasonable back ups, as AE.COM or AECONFIG.COM
are NOT guaranteed to hold your hardware, software, or data safe from harm.

In-other-words, AE.COM and AECONFIG.COM *should* perform in a manner *similar*
to that set forth in this document, but there are NO GUARANTEES!


Third, I'm sick and tired of seeing software, freeware and otherwise, that
says "Free for all except military" (Or government). If our US Military
sees a stragic advantage in using this program (Doubtful), they are welcome
to it. I even built in a configuration item for silent operation so the Navy
can use this program in the submarine fleet. (Yea, right!).

WordStar and WS are trademarks of WordStar International.

80286+ ONLY!!!

As with the 8080 vs. Z-80 question under CP/M, there comes a time when
writing to the lowest common denominator no-longer makes sense. Especially
when the '286 introduced many space/time saving instructions. So this program
only works on a '286 or better. HOWEVER, 8088 based XT users aren't entirely
left out in the cold. Replace that useless 8088 chip with a Nec V-20 (Nec V-30
if you have an 8086). For about $10, you will pick up the ability to run this
program, and any other '286 only programs that don't require protected mode
features (almost all '286 only programs fall into this cataogory). PLUS you
will pick up a little speed. Instead of a Norton SI of 1.0, you'll have
a SI of about 1.1 or 1.2 - every bit helps.

DOS 2.0 or above:

The requirement of a '286 or above should lock out anyone from running DOS 1.x.
However, one never knows, or a V20 upgrade could be running it. Needless to
say, AE requires MS-DOS 2.0 or above (or it's equivilant), and will barf on
1.x. I don't bother checking, shouldn't have to in 1994...


o 80286 coded for speed/compactness.
o Very compact program.
o Edit files up to 64K in length.
o Uses TRUE TABS for ease of use, and compact file size.
o Enter key is always a cursor motion key.
o Intelegent TAB key.
o Emulates most applicable WordStar commands.
o Uses cursor keys for DOS weenies.
o User configurable initial insert state.
o User configurable backspace key - distructive or non-distructive.
o Smart, column oriented cursor.
o Intelegent use of EOF.
o Automaticly inserts semi-colon at beginning of comment field if none there.
o FORM7 filter.
o Automaticly appends colons on labels.
o Asm oriented auto-indent.
o Automaticly strips trailing spaces/tabs.
o Automaticly tabs from operand field to comment field.
o Automaticly and transparently saves file during keyboard in-activity
o On screen status line can be turned off, if desired.
o User specified default file extension.
o Pleasant audible feedback can be turned off if needed.


AE.COM is an adaptation of Tom Kihlken's TED.COM. AE.COM is written by
Mark D. Pickerill, a professional assembly language programmer.

From the author:

C and Pascal programmers have a wide array of specialized editors available
to them to assist in the coding process. Assembly Language programmers have
always had to make do with a general purpose text editor. It occured to me
some time back, that much of the process of writing assembly language could
be automated - thus the birth of AE. AE takes care of most of the mundane
tasks of creating well-documented code. Keystrokes are minimized as AE
anticipates what comes next, and does it for you. It can put colons on labels,
make sure you go directly to the next appropiate field, insert the semicolon
for you so you can immediately type your comment, and even take care of caps
lock for you so you can write upper case code with lower case comments - by
far the most readable, and most popular assembly language source formatting

AE closely follows the format and options of Irv Hoff's FORM7 assembly
language source formatter program. I have used this program daily for many,
many years. AE minimizes my need to use it.

I searched endlessly for an existing editor to modify, as I did not want to
re-invent the wheel. TED, by Tom Kihlken, fit the bill. It was small, source
was included, source was reasonably well commented and structured, and most
important, the source was in assembly.

Please bear in mind, that while some attempt has been made towards user
configurablity, this editor was created by me, for me, for my coding style.
Naturally, I think my coding style is the best, but others may not agree.
I comment every line, use colons after all labels (NOT allowed by MASM),

If you like AE, and can use it, fine. If it is incompatable with your coding
style, it is not for you. I developed my coding style over many years of
writing assembly language for a living, and code this way for a reason. I like
my assembly source files to be pleasing to the eye, and very well documented.
Nobody's source code meets my documentation standards - including mine!

AE is oriented towards a person who is used to, and prefers WordStar keystrokes.
Some attempt has been made to accomodate "DOS Weenies" with F-keys, cursor
arrow keys, etc., but the program remains heavily WordStar-ish.

As with all my works, AE is dedicated to my patron deity, the Goddess Athena.
If you are a member of a fanatical monotheistic religion and cannot deal with
this, oh well...


Auto-commenting feature: This is real time saver. If this configurable
option is turned on, it automaticly inserts semi-colons as needed. It
inserts them under two circumstances:

1) The TAB key is pressed, moving the cursor to the comment column specified
in the program installation. (see configuration, below) At this time,
a semi-colon is inserted, so the programmer can immediately type his comment.
A space is automaticly placed after the semi-colon, if AE was installed to
do so. AE does NOT insert a semi-colon if one already exists. This allows
tabbing in full line comments without conflict.

2) The key is pressed on a line that 1) is shorter than the specified
comment column, and 2) has no existing semi-colon.

This is for two reasons:

A) Blank lines in source code (semi-colon present for consistancy).
(and I don't like semicolons at the beginning of the line for a blank line)

B) The programmer isn't going to comment this line right now.
The programmer may want to go back later to comment this line in which
case the semi-colon is already there, or the line may stay un-commented
(tsk-tsk!) but the semi-colon remains for consistancy and style.

In all cases the semi-colon is inserted at the specified comment column.
If the line is already longer than the specified comment column (long
instructions, DB strings, etc.), no semi colon is placed.

This feature is great for going back and re-formatting and adding comments
to someone else's code. Load the code into AE, and hold down until
the file has scrolled to the end. You now have a properly placed semicolon
in all uncommented lines, vastly simplifying the commenting process.

See QUIRKS, below.

FORM7 Filter: If this configurable option is turned on, the code is
automaticly generated as upper case labels and instructions, with
Capitalized lower case comments. The first non-space character is
capitalized in the comment field, then the caps lock is removed so that
the remaing portion of the comment is in lower case. The programmer may
use the shift keys and/or re-engage the caps lock normally as needed.
switches back to upper case. This is similar to the output of Irv Hoff's
FORM7 program. (Highly recommended!)

The feature that strips trailing spaces and tabs (detailed below), is,
strictly speaking, part of the FORM7 filter. However, AE strips off trailers
regardless of whether the FORM7 filter is selected or not.

Weenies that program with lower case labels and instructions (YUK!), will
want this feature turned off. I have written diatribes in the past about
lower case source code in general, and lower case assembly source code
in particular, so I will spare the reader this...

See QUIRKS, below.

AUTO-COLONS: AE has the ability to automaticly place a colon after all
labels. Just type the label and press either TAB or CR, and the colon is
automaticly generated. MASM users may not like this feature and want
it turned off as MASM dis-allows colons on labels on EQU's, etc.
Or MASM users can backspace out the colon when it isn't desired, OR
press the space bar after typing the label as AE won't place a colon
after the label in this circumstance.

See QUIRKS, below.

AUTO-INDENT: AE has a primitive auto-indent feature that is suitable
for ASM programming. Like many other features, it is user configurable.

When on, this feature remembers the state of the previous line, and applies
it to the current line. If a label or full line comment was typed in the
previous line, when is pressed, it will set the cursor at the start of
the current line for another label or full line comment.

If the previous line has no label or full line comment, the cursor will be
placed at the first tab stop on the current line. You may then type an
instruction or to insert a label or full line comment.

TRAILING SPACES/TABS: AE automaticly strips any and all trailing spaces or
trailing tabs when is pressed on a line. This happens regardless of
the cursor position on the line. This means any new lines entered into a
source file by AE will not have any trailing spaces/tabs. To remove these
from existing source files created by editors other than AE, either use
FORM7, or, starting at the top, hold down the key until the entire file
has scrolled by. This feature minimizes file size and maximizes assembler

AE will also, when using save and exit, remove any trailing spaces/tabs
from the last line in the file, and then ensure that the last line is
terminated with a CR-LF pair. This both prevents superflous trailing
tabs created by the auto-indent feature AND prevents problems some assemblers
have if the last line isn't terminated.

This doesn't occur if save and resume, then abort is used, nor during

FIND/FIND NEXT: Unlike WordStar, FIND always starts at the top of the file.
I always *HATED* having to do ^QR before ^QF. FIND NEXT starts from the current
location. After entering the search string, FIND asks if you want the search
to be case sensitive. Any key other than defaults to case insensitive.

Search and Replace: This function also always starts at the top of the file.
This is ALWAYS a global search and replace, the most-often-used.

Search and Replace also doesn't waste your time by updating the display while
doing its job - unlike WordStar which shows every single replacement done.


AE uses TRUE TABs. This means 1) a single TAB replaces up to 8 spaces, and
2) TABs are the standard length of 8 characters. Non-standard tab stops, such
as 4 or 10 are not supported.

This is much better than a fair number of LAME editors that do not use tabs
at all. Tab based source code takes up less space on disk, transmits over
MODEM links faster, and most importantly ASSEMBLES FASTER!!

If insert status is on, a tab is inserted.

If insert status is off, the cursor is moved to the next tab stop, over
any characters that are there. Just functions as a cursor move key.

If insert status is off, and the next tab stop is beyond the current end
of line, a tab is appended to the end of the line.

This is contrary to some editors I've used that either insert a tab
regardless of insert status; or, with insert off, replace the current
character with a tab. This way is far more useful, especially when
writing assembly code which is TAB oriented anyway.

AUTO-TABS: This configurable option simplifies operation for the programmer
by automaticly tabbing from the operand field to the configured comment column.


... The operand field starts with the AL,0FFH. After typing the last of this,
the TAB key is pressed and the cursor moves to the configured comment column,
without stopping at intermediate tab stops along the way. The semi-colon is
inserted, etc, if AE is configured this way.

This is automaticly turned off if the cursor is past an existing semi colon.
This effectivly turns off the auto-tab feature when tabbing in a full line
comment, etc.

The key. This acts differently from any other editor I've ever
used, and I like it this way. is always a cursor movement key,
regardless of insert status. Only if the editor needs to append a new
line on the end of the file does it actually do anything. This allows
the key to be pressed halfway through a line, and just have it
move to the beginning of the next line. If you need to insert a line in
the middle of a file, or in the middle of a line, use ^N. Furthermore,
can be configured to turn OFF insert.

The LAME feature:

The LAME feature makes AE as lame as any other editor. Newline is inserted
if insert status is on. Needless to say, the neat feature of turning off
insert on doesn't apply here. This feature was provided by popular
request. See configuration, below.

The key. I hate distructive backspaces. Therefore, backspace
is just another cursor movement key. I realize a lot of people do like
distructive backspaces. Therefore it can be configured as you like it.

INITIAL INSERT STATUS. I think I'm the only person in the world who likes
to fire up an editor with insert turned OFF. Every other editor in the
world, except WS where it is configurable, comes up with insert ON. Some
don't even allow you to turn insert off! Needless to say, AE comes up with
insert OFF. As I'm probably the only person in the world who will like this,
it is configurable.

MOVING VERTICALY: A very nice feature of AE, which I've always wanted, is
the way the cursor column is handled when moving verticaly. Explaining this
gets a little complicated, so bear with me:

Let's say the cursor is positioned at the end of a fairly long line. The
up-arrow or ^E is pressed. The cursor moves up to the next line. Let's say
the next line up happens to be a short line. The cursor moves to the end
of the short line.

So far, this is no different from any other editor that does not place trailing
blanks to fill in a line. Now let's say we move up again. This next line up
is even longer than the first line we started from. In this case, the cursor
will be positioned *in the same column it was to start with*! WS drove me
nuts when moving verticaly in the comment field of an assembly language source
file. AE is much nicer. I cannot claim credit for this, it was inheirited
from TED.

PROCESSOR TECHNOLOGY COMPATIBILITY: AE is compatable with the Processor
Technology assembler's way of allowing a * in the first location of a line
to mean a full line comment, without having to use a semi-colon. Now, I
doubt that anyone is using this assembler anymore (or if they are, not on
a MuSh-DOS machine.), but this quirk has crept into several subsequent
products, including ASM for CP/M, and the FORM7 program. Even my assembler,
the 2500 A.D. assembler allows this, although it carries it a bit farther.
So a * in the first column is the same as a semi-colon, and the FORM7
filter will key off of it.

Just in case some flakey future version of MASM uses a * as the first character
in a label to mean something special, there is a config byte to turn this off.

The bottom line: You probably don't care. Leave on unless you code with a
* as the first character of a LABEL.


AE retains the capability inherited from TED of allowing editing beyond
80 columns. Any line longer than 80 columns will have a diamond placed in
the rightmost column. Using ^LEFTARROW and ^RIGHTARROW will shift the display
8 characters at a time to be able to "reach" this longer text. ASM source is
seldom wider than 80 chars anyway, but the capability is there, if needed.


AE will save your file for you automaticly (if so configured) if the file
hasn't been saved since the last change, AND no keys have been pressed
within the last 3 minutes.

Auto-save will also save your file for you automaticly before executing
the shell to MS-DOS feature. The safety reasons for this are obvious.

Auto-save is transparent to the user. The file is saved to .$$$.
This file is automaticly deleted when the user exits the program normally,
either through save and exit, or abort. However, if normal program execution
is interrupted through power failure, system crash, un-intended operation of
the Big Red Switch, or other cause, the .$$$ file will still be
present, and will represent the state of the edited file as of the last
auto-save. This file may be re-named as needed.

Auto-save will NOT kick in if the program is left waiting for user input.
As in a FIND, Search and Replace, or any file operation while entering
the file name.

Auto-save will attempt to save even when AE was invoked with no (or an
invalid) filename. In this case, it will NOT work, but the speaker is
beeped once to call your attention to the attempt.


The status line shows the functions of F-keys 1-10 as well as the current
insert/overstrike status. This line may be turned off with the configurator
program, if desired. The insert/overstrike status won't be visible with the
line off, but you pick up an extra line of display.


The last editor I used with a default file extension was Nevada EDIT,
under CP/M, although I suspect that the MS-DOS version, Utah EDIT was the
same. Regardless, I've always liked that feature and sorely missed it.
With AE, it's back!

A default file extension (.ASM, .A86, .68K, whatever) can be specified with

the AECONFIG.COM or DEBUG. Then the editor can be invoked without having
to specify a file extension - the default is used. As is usual with such
things, if you want to work on a file that actually has no extension, specify
it with a trailing dot, i.e. FILENAME.

If this kind of feature drives you crazy, just specify a default of 3 blanks
when configuring, it will effectivly turn this feature off.


Like any program that attempts to do your thinking for you, there are times
when it isn't doing what you want it to. AE is no exception. A good deal
of care has gone into the program, in an attempt to make it as un-obtrusive
as possible. A balance between doing your thinking for you vs. getting in the
way when you want to do something else has been struck. As mentioned before,
AE assumes that you write your ASM source much like I do. It assumes that you
use the TAB key to move to the next field. It assumes you press when
finished typing in a new line. Most of the automatic features are keyed off
of either the TAB key or , or both.

Here are some of the quirks you may encounter...

FORM7 filter: If there is a semi-colon inserted in a quoted string,
caps lock will want to fight you. Pressing the semicolon will turn on
caps lock. Then 1 or 2 characters later, it will come off. The editor will
also insert the "space after semicolon" if configured this way. You'll have
to go back and delete this space manualy.

This is due to AE making the assumption that a semi-colon means a comment.
It doesn't know about quoted strings. As semicolons aren't used too often
in quoted strings, it isn't felt worth the code space to work around this

Code to detect all possible permutations of quoted strings with single quotes,
double quotes, reverse quotes, and things like '' to actually insert the quote
character into the literal string, would be big, clunky, and ugly... Personally,
I can't remember the last time I had a semi-colon in a quoted string anyway.

A work-around is to DB 3BH or just toggle the caps lock as needed.

Auto commenting: Similar to the FORM7 quirk, if there is a semi-colon in
a quoted string, the auto comment feature won't work. You will have to insert
the semi-colon manualy, and handle the formatting of the comment manualy.

AUTO-COLONS: Does not automaticly place a colon after the label if any
key besides or TAB is pressed when typing the label. This has been
left this way in order to accomodate MASM users who cannot have colons after
some labels. MASM users are advised to press after a un-coloned label,
or use one of the control keys. (or turn this feature off).

EDITING MARKED TEXT: Not allowed. If you have a block defined, you cannot
edit inside it as long as it is visably marked. Use ^KH to hide the block, edit
it, then ^KH to un-hide it again. Search & Replace, since it is global, will
not function if there is a defined block visable *anywhere* in the file.

In a similar vein, block load from file is non-functional while the cursor
is inside a marked block. Turn off, then load, or move outside the marked

FIND, SEARCH & REPLACE: If using these functions, espcially search & replace
with a large file where there will be a lot of replacements, IF POSSIBLE, use
the case sensitive feature instead of the default case insensitive. The
exact match routine for the case sensitive routine is MUCH faster than the
"mask and compensate" that must be performed for the case insensitive search.
So you may have a situation where you know the case is the same, or it's
numeric data, or whatever, then you can use the case sensitive search with
the same result.

TRAILING SPACES/TABS: It *is* possible to enter lines with trailing spaces or
trailing tabs. The way this is done is to create the trailing spaces/tabs, then
instead of using , use one of the control-keys, such as up-arrow or page up,


Please note that if you are using an XT archetecture machine AND you have
one of those clone phone keyboards with caps lock LEDs, the LED will get out
of sync with the state of caps lock. XTs cannot turn this light on and off
like an AT can, and as AE is constantly fiddling with the caps lock state,
this light will be meaningless. You may restore the light to it's normal
state by making sure it is ON before exiting AE as AE turns caps lock on when
exiting. Some keyboards also allow the state of the LED to be "fixed".

AT machines, of course, will not have this problem, the LED will correctly
follow the caps lock state.

ALL QUIRKS: Yes, it *is* possible to "fix" most of these. However, doing so
would result in the editor becoming too rigid to be able to work around the
automatic features, when desired. It is felt that the balance is best served
this way. It goes without saying, that the way *I* code, minimizes my
encountering these quirks.


There are 4 catagories of WordStar emlation:

Catagory 1: Absolutely, positively, *MUST* act just like WordStar. Item
2, below, and most other implemented commands fit this description.

Catagory 2: Needs to be close, but need not be exact. Items 1 & 4, below,
fit this description.

Catagory 3: Needs to be close, but needs some kind of improvement. Items
3 (in the default configuration), and 6, fit this description.

Catagory 4: Not implemented. Either non-applicable, or too complicated for
the amount of times the function is required. ^KN, enter column mode, comes
to mind. Nice feature when you need it, but you seldom do.

Most WordStar keys are catagory 1 implementations.

A few exceptions:

1) Word Left and Word Right (^A and ^F). Merely move to the previous/next
tab stop. Felt to be good enough for programming.

2) To the best of my knowledge, AE handles tabs just like WS.

3) acts just like WS if AE has been configured this way. The default
configuration does not. See above.

4) ^KS and ^KX. Save and resume/save and exit. Invoke just like WS, but
have the added question about file name. This allows AE to be invoked without
a filename or utilized in a SAVE AS: mode.

5) As stated above, an initial FIND always starts at the top of the file. Find
next is just like WS. FIND only asks about case sensitivity, does not have
the other WS options.

6) Depending on what version of WS you may have been using, the handling of
the cursor when moving verticaly over a tab:

LAB_L:MOVAH,09H; Comment

...asuming the _ in the above label is the location of the cursor, WS 4.0,
when the cursor was moved DOWN (^X), would move the cursor to the beginning
of the JMP instruction, unlike WS 3.3, which would move the cursor to the
beginning of the line (beginning of the TAB).

The 4.0 way drove the author nuts! AE does it the 3.3 way. In fact, the 4.0
way was the beginning of the author's desire for a better editor!

7) Block marking is a catagory two implementation. Unlike WS, it doesn't matter
if you use ^KB, then move up to do a ^KK. With AE, always start a block with
^KB, then move to the end, even if it is a backwards move, then define the
end with ^KK. AE will swap them internaly for you. (Rather than printing
a stupid error message.) ^KK *cannot* be used first. (Nothing happens)

8) ^KF doesn't run the specified program as WS does. It merely shells
to DOS and you can do anything you like.

9) ^B doesn't just strip the high bit from the current line as WS does.
It strips the high bit from the entire file.

10) ^P insert literal works almost like WS. The next literal keystroke is
inserted into the file. However, control codes default to their IBM charcters,
NOT the carret followed by letter convention of WordStar. For example,
Control-A is displayed as not as ^A. For your protection, tabs, & CR do
not display at all, but perform their normal function. If you insert a ^Z
into the file, AE will beep as a caution. A literal ^Z placed into the middle
of a file will truncate the file at that location next time AE loads it (unless
EOF checking is turned off). Not recommended, so do this at your own risk!

Due to it's invisiblity, null (00) or ^@ is not allowed to be processed by
this function. Some assemblers will barf on invisable stuff like this...

AE keystrokes:

The following is a chart of all keystrokes AE accepts. It should be noted
that some commands are only present in the WordStar column. It is next
to impossible to use weenie keys for everything without resorting to a menu.
Most commands missing from the weenie column won't be missed by non-WordStar
users anyway. (I hope).

Some weenie keys may not make much sense and be hard to remember, esp.
the ^F keys. Tried to make the ^F keys as intuitive as possible. Most
other weenie keys should be fairly intuitive. Remember, the program *is*
oriented towards folks used to WordStar (for better or worse).

WordStar keyDOS weenie keyAction
^KQF1Abort edit
^KX F2Save & exit
^KS^F2 Save and resume editing
^KBF3Begin block
^KR^F3Read block from disk file
^KKF4End block
^KH^F4Hide/unhide block (toggle)
^KCF5Copy block
^KW^F5Write block to disk file
^KVF6Move block
^KY^F6 Delete block
^L^F7Find next
^QA F8Search & Replace
^QI^F8Jump to specified line #
^QYF9Delete to EOL
^B^F9Zero MSB of entire file (1)
^YF10Delete line
^U^F10Undelete line
^QBF11 *Jump to start of block
^QKF12 *Jump to end of block
^QR^PGUPTop of file
^QC^PGDWNEnd of file
^RPGUPGo up one screen
^CPGDWNGo down one screen
^QSHOMEGo to beginning of line
^QDENDGo to end of line
^EUPARROWGo up one line
^XDOWNARROWGo down one line
^SLEFTARROWGo left one char
^DRIGHTARROWGo right one char
^W^UPARROW * Scroll down one line
^Z^DNARROW * Scroll up one line
^ASHIFT-TAB Move to previous tab stop
^QE^HOMEGo to upper right of screen
^QX^ENDGo to lower left of screen
^F or TAB Move to next tab stop
^VINSToggle insert state
^GDELDelete character under cursor
^N^ENTERInsert line
^K0 - ^K9Place marker 0 - 9.
^Q0 - ^Q9Jump to marker 0 - 9
^KPPrint block if marked, whole
file if no block marked.
^TDelete word right
^RIGHTARROWShift display right 8 chars
^LEFTARROW Shift display left 8 chars
^KFShell to DOS
^PInsert literal keystroke.

* Extended keyboard only.

(1) Also converts any nulls (00) bytes to SPACE so you can see them. 80H
characters that convert into nulls also are re-converted to SPACE.


You can use the supplied program AECONFIG.COM to configure AE.COM. This
is a simple get-the-job-done program. AECONFIG prompts include the
recommended settings, following these will result in an "out of the box"
copy of AE.COM. These settings are felt to be suitable for most folks.
WordStar users will probably want the status line turned off as they won't
be using the F-keys anyway. (Unless they want to see Insert/Overstrike

AECONFIG does not include settings for the backup and temp file extensions,
as it is felt that most folks won't want/need to change them.

The following items can be patched in the .COM file with DEBUG.
All values are hex unless noted.

OFFSET Default Meaning
010300Inital insert status, 00=insert off, FF=insert on
0104FFFF=non-distructive backspace, 00=distructive backspace.
0105FFFF=Handle EOF properly. Append a single EOF when
saving, stop at the first EOF when loading.
00=Do MS-DOS style EOF handling. Ignore when loading,
do not append when saving.
0106FFFF=Do backup files, 00=don't do backup files
0107FFFF=Auto comment feature. Insert semicolons.
00=Auto comment off.
0108FFFF=Space after auto comment semi-colon
00=No space.
0109FF FF=FORM7 filter on. 00 = FORM7 filter off
010A FF FF for auto colons, 00 for no auto-colons.
010B FF FF for auto-tab to comment column
010CFFFF for auto indent, 00 for no auto indent
010D 00FF to allow to generate new line with insert on.
00 for to be cursor motion only
010EFFFF for Processor Technology compatiblity. Most
users can leave this on.
010FFFFF to allow to turn OFF insert. Meaningless if
LAME is turned on. (010D=FF) See note (3) below.
0110FFFF to enable 3 minute auto-save feature.
0111FFFF to enable screen status line
0112FFFF to enable beeps, clicks and pops. 00 for submarine
(totally silent) mode.
01130AColor for color users. Green = 02, intense green = 0A
If this byte is 00, AE will use the existing attribute.
This is for folks that like to set default colors from
DOS with one of the many programs available to do this.
See note (2) below.
011420(32 Decimal) Column comments start in for auto-comment
If this byte is not a multiple of 8, AE sets this to
the next lowest multiple of 8.
0115;(ASCII Value) Comment delimiter. Normally a semi-colon
Change to meet your needs.
01162EDO NOT CHANGE!! (Dot for file extension)
0117-0119ASM(ASCII values) Default file extension.
011A00DO NOT CHANGE!! (Termination for file extension)

The following items are not in the AECONFIG.COM program, and must be patched
with DEBUG if changes are desired. Most folks won't care....

011B2EDO NOT CHANGE!! (Dot for file extension)
011C-011EBAC(ASCII values) Backup file extension - not in AECONFIG.
011F00DO NOT CHANGE!! (Termination for file extension)
01202EDO NOT CHANGE!! (Dot for file extension)
0121-0123$$$(ASCII values) Temp file extension - not in AECONFIG.
012400DO NOT CHANGE!! (Termination for file extension)

(2) When this byte is set to 00, AE attempts to utilize the existing screen
attribute as it's default. Unfortunately, this only works if the *next*
screen line after the invocation line has the desired screen attribute.
For example, the Norton's popular SA program clears the screen and sets the
screen color of the entire screen. Running AE (configured with the color
byte=00) will correctly inherit this color. However, after performing
a CLS, only the "already used" portion of the screen is set to the SA attribute,
the rest of the screen is B&W. Which means AE inherits the B&W attribute.

Other screen setting programs may work differently. When in doubt, install
AE to use an internal color choice...

(3) If enabled, this feature also turns off insert on line delete as well.


A future version of AE will probably be able to at least be able to edit files
as large as available memory, as opposed to the current 64K limit. The current
64K limit hasn't been too much of a limitation to me, but it would be nice to
be able to edit larger files. Rest assured, that an AE capable of larger files
*will* require a '386 or better. "I don't do segments."
Rumor has it that MS-DOS 7 will have 32 bit extensions. If this is true, I'll
be using them...

Virtualizing. This is the ability to buffer to disk all but the immediate
portion of the file you're editing. Would be nice, but probably won't happen.
The program is too hard structured for that to be an easy task.

Doubtless, as I and others use the program, other enhancements will be needed.
Look for new releases from time-to-time. I use this program daily, and continue
to find things that aren't quite right and pop over and tweek the program a
little more.


There are several things you won't see, either because I don't do them, or
the necessary coding is beyond the scope of the project.

Mouse support: Mice are great for CAD programs, draw/paint programs, etc.
They don't belong in text editors, nor do they belong in operating systems...

Color support: There is rudimentary color support already built into the
program. I am willing to listen to suggestions on how to "improve" this.
However, as I am a color refusenik, I'm not going to go overboard on this.
Color monitors HURT my eyes...

Tab stops other than 8: Sorry folks, tab stops are 8 characters each, always
have been. I have had it suggested to me that the label field be longer, say
10 characters. First, the 8 character tab stop thing is hard coded into the
program, inheirited from TED (as it should be). Second, it is a religious
issue to me, I don't believe in long labels (or non-standard TAB stops).
Long labels can always be placed on their own line, AE makes this very
easy to do. Third, as stated at the top of the documentation, AE assumes
the user codes in a similar manner to the guy who wrote it.
And fourth, TRUE tabs are 8 characters. MS-DOS is the only OS I've
encountered that doesn't rigidly enforce this.


A number of folks helped test AE and pestered me with bug reports and
"Requests". The person most responsible for a good BETA cycle was Larry
Alm. Clarence Dyson, Bob Shepard, and Robert Cabral were also very helpful.

And espcially thanx to PC Magazine/Tom Kihlken for creating TED and allowing
us to have the source code. PC Magazine has published lots of useful programs
over the years, most with source. Hurray for them! We'd all be poorer
without them.


The "home" BBS for AE.COM is the Hacker Heaven BBS at (408) 375-5455.
We currently support baud rates from 300 to 14.4K+v.42bis.

In this day of media hype, it is necessary to point out that the word
"Hacker" means computer programmer, NOT computer criminal. We do not
tolerate illegal activities of any kind.


The following is a list of currently supported programs written by
Mark D. Pickerill, the author of AE. These may be found on the Hacker
Heaven BBS, or a fine BBS near you. Most have been uploaded to EXEC-PC as

AE: Asm Edit. A source code editor for assembly language programmers.
(at last!) Supports auto-colons on labels, auto-comments, much, much more.
Removes the mundane chores of creating well-documented assembly language
source code. A must for any serious assembly language programmer.
Distributed as AE*.ZIP where * is the version number. AE24.ZIP was the
latest at this writing.

UNLOAD86: This is the end-all and be-all of binary to Intel Hex conversion
programs. Many options, supports fill to end of ROM, the new "Linear extended
address records", more. Includes Source. Distributed as UNLD86*.ZIP where
* is the version number. UNLD8616.ZIP was the latest at this writing.
A couple of the initial versions were distributed as UNLOAD86.ZIP. These
are severely downrev, and should be deleted.

BAUDASC: Converts ASCII <---> Baudot. Allows use of the ancient Baudot
5 bit code. Includes Source. Distrubuted as BAUDASC*.ZIP where * is the
version number. BAUDASC1.ZIP was the latest at this writing.

CURSOR: Very tiny TSR forces your IBM PC compatable's cursor to a block
at all times. Much smaller than other programs of its type. Includes source.
Distributed as CURSOR*.ZIP, where * is the version number. CURSOR15.ZIP
was the latest at this writing. Now optionally incorporates caps lock support
similar to CAPS (Below).

UNLOAD: [for CP/M]. Converts binary to Intel hex. Only supports the
original phase 1 Intel hex specification. Distributed as UNLOAD*.ARK
(may be .LBR some places) where * is the version number. UNLOAD23.ARK
was the latest at this writing.

HELLO: [for CP/M *and* MS-DOS]. Writes the string Hello. to the screen.
Big deal huh? The point is the *same* physical .COM file works under *both*
CP/M and MS-DOS!! Distributed as HELLO.ARK and HELLO.ZIP. Includes source.

INDIO: [for CP/M] Shows how to do indirect I/O (ala Z-80) on an
8080 or 8085 processor. NO dedicated memory locations, ROMable routine.
Source only. Distributed as INDIO.ARK. (or .LBR)

CAPS: Old timers like me are used to command line input in UPPER case.
CAPS is a tiny TSR that sets caps lock when an application exits. Most
folks won't like/need this program. Distributed as CAPS*.ZIP where
* is the current version number. CAPS10.ZIP was the latest at this
writing. Includes source.

Discontinued programs:

The following programs have been written in the past. I no longer support
them, most (but not all) are gone from my board, but they may still be
floating around "out there". Feel free to use them if you find them, but
don't ask me about them... Most were quick hacks anyway...

SPLIT.ZIP: Splits a binary input file into two files, one containing the
ODD bytes the other containing the EVEN bytes. Useful for programming two
EPROMs on a 16 bit bus. Included source. (I think...)

FIXHEX.ZIP: Used to fix certain deficient Intel hex files. Would strip off
any extended address records, and ensure that a correct EOF record was on
the end. Fixed the old MAC/ASM :000000 (incorrect) EOF record.

FONT.ZIP: Reprogram EGA and VGA character fonts. Great for getting rid
of that ugly fat exclamation point! Define your on-screen fonts any way
you like. Included source.

SYSTEM.ARK: [for CP/M] Allows jumping to any place in memory. Input in
hex or decimal. Included source.

Dead programs:

The following programs have been written in the past. I no longer support
them, ALL are gone from my board, but they may still be floating around "out
DELETE THEM ASAP!! These are obsolete and no-longer of value.

OLDUSER: Designed to automate the process of deleting "old" users from
a Spitfire BBS system. Has long since been replaced by an official
Spitfire function. Only worked with a very old versions of Spitfire.

SFZIPDOR: A program designed to allow Spitfire callers the ability to
extract and selectively download members of any archive format. Worked
on my board, but pulled from distribution due to in-stablities of the
program. Plus it won't work above 9600 baud. Don't use this program!!!
A replacement is possibly in the works, either from myself or from Spitfire.

MSGUNDEL: Or something like that, I no-longer remember the exact name.
Program would globally un-delete any deleted messages in a Spitfire BBS
system. Program is no-longer compatable with Spitfire, AND is no
longer needed as Spitfire now allows the Sysop to turn off message deletion.

 December 6, 2017  Add comments

Leave a Reply