Make TSR resident, then TSRDOSED. I intercept the read-a-line command (21-0A),
translate it into read-a-key commands (21-08), and provide basic editing
functions. I distinguish between DOS command lines and application lines
(e.g. DEBUG). In addition, I'm re-entrant (the other guys aren't). This
means you can pop up resident programs over the command line without screwing
up the command line.
The function keys are:
Bsp Destructive backspace. Left arrow followed by Del.
Esc Clears the line. Home followed by Ctrl-End.
Home key Moves cursor to start of line.
End key Moves cursor to end of line.
Left arrow Works as expected.
Right arrow "
Del key "
Ins key "
Ctrl End Erases to end of line.
Up arrow Recalls commands stored in a buffer.
Down Arrow "
For years I had been using DOSEDIT, by J. Gersbach. I thought it would be
simple to modify DOSEDIT to run under TSR. After spending a day with the
source code, I gave up and rewrote it.
That DOSEDIT works well is a triumph of debugging over good programming
style. The program is an abortion. It uses all kinds of "tricks" to save
a byte here and a byte there. It's very, very, difficult to follow.
It is interesting to note that my program, which is written in "straight
ahead" assembler code, occupies almost the same exact size (2100 bytes) as
Gersbach. This in spite of the fact that I didn't use 128 bytes of the
psp for data storage and added a 150 byte author's credit.
A big improvement over DOSEDIT is the way I handle lines stored in the buffer.
If you change a recalled line, it simply replaces the line and doesn't lose
your position in the buffer. DOSEDIT puts new/changed lines at the bottom.
Robert Wagner, developer
1500 Broadway (#1208)
Lubbock, Tx 79401