Brian Smithson (brian@king.ca41.csd.mot.com)
15 Apr 91 10:08:15 PDT (Mon)

I got a copy of DGTERM, that small-footprint terminal emulator with background
file transfer. It really works, and it is indeed 10KB (10.353KB to be precise).
The VT102 emulation seems to work OK -- I haven't really beat it up, but I also
haven't found any problems with it. Haven't tried file transfer yet. If you'd
like a copy, send me a note (not to the list -- send it to brian@csd.mot.com)
and I'll send you a uuencoded ARC file of the executable and documentation.

The status line doesn't show very well on the UltraLite color emulation, but
it can be changed with DEBUG or whatever. The documentation has some suggested
values for color emulation displays.

FYI, Here's the documentation:

DGTERM - Background VT102 Emulator with X/Ymodem
Version 1.0

By Dale Gass
P.O. Box 82
Shubenacadie, Nova Scotia
Canada B0N 2H0

I. Shareware

DGTERM is distributed as Shareware. If you use the program
regularly and find it useful, please contribute $30 US (or
any amount within your means) to the author.

If there is sufficient interest (and donations) various
features will be added to the program, such as a powerful
script language, and the Kermit file transfer protocol.
Users who give the $30 shareware donation for this version
will not be expected to do so for future versions.

Any further development and future releases of this program
depend solely upon contributions received from the current
release. (Translation: if it doesn't pay, I'm not spending
any more time on it :-) So if you wish to see new versions
of this and other high quality shareware programs from me,
please contribute what you can.

II. Overview

DGTERM is designed to be a small yet reliable and useful
background terminal program with full VT-102 emulation and
file transfer capabilities.

III. Function Keys

ALT-B Send BREAK exactly as long as key is held down
ALT-C Change COMmunications port
ALT-D Change directory
ALT-E Toggle local echo
ALT-K Set hot keys (Defaults to Ctrl-LeftShift)
ALT-L Set line speed (baud rate)
ALT-M Toggle echoing of incoming characters back to COM
ALT-O Toggle DTR (data terminal ready) line
ALT-P Set parity
ALT-R Reset VT-102 terminal


ALT-S Save all settings into .COM file
ALT-X Terminal DGTERM (remove it from memory)
PgUp Perform YMODEM batch upload
^PgUp Perform XMODEM upload (CTRL-PgUp)
PgDn Perform XMODEM download/YMODEM batch download

IV. Notes

A. DGTERM's current directory defaults to the default
directory when the program was first executed.

B. Multiple copies of DGTERM may be executed, each running
on different communication ports. The hot keys for
each copy of DGTERM should be unique to avoid

C. DGTERM attempts to choose an attribute set which will
work best with the video card and video mode. There
are currently three attribute sets: Mono, for use with
monochrome displays; Color, for use with CGA's, EGA's,
etc.; and B&W for use with CGA's, EGA's when connected
to a B&W monitor. See the 'Technical Information'
section on how to change these attributes.

D. To perform an XMODEM download, use PgDn, then type the
file's name. To perform a YMODEM download, use PgDn,
then just hit return--the host end will supply all the

E. With YMODEM batch uploads, several wildcard patterns
may be specified, separated by spaces. For example,
you may specify "*.ASM *.DOC *.OBJ".

F. All uploads/downloads take place in DGTERM's current
directory (as set by ALT-D).

G. ESC will abort any upload/download.

H. Currently, no screen retrace checking is done, so some
snow may occur on older graphics cards. If this turns
out to be a major problem, it will be added.

I. All resident programs (like DGTERM, Sidekick, etc.)
should be removed in the *reverse* of order that they
were installed, otherwise crashes may occur. As well,
uninstalling *any* resident program can be dangerous
when another application program (which takes over
sytem interrupts) is currently runing on top of it.

J. Be careful with ALT-O (toggling DTR). If you leave the


DTR low, depending upon the dip switch settings of your
modem, your modem may ignore your commands (until you
hit ALT-O to bring DTR high again).

V. Hot Keys

When choosing hot keys (with ALT-K), press the desired shift
keys you with (choosing from ALT, CTRL, Left Shift, and
Right Shift) then press and release the key you wish to use
in conjunction with these shift keys.

For example, if you want ALT-. to be the hot key, press ALT-
K, then press ALT, press and release the . key, then release
the ALT key.

Both the shifts and the auxiliary key are optional. Use the
'N' key if you just want to use shifts and no auxiliary key.
(I.E. Press CTRL-SHIFT-N to make CTRL-SHIFT the hot key).
Similarly, just press a key without any shifts to use that
key as the hot key (I.E. Press F10 to use F10 as the hot
key). (I find SysReq to be a handy solo hot key, on
keyboards which have it).

Pressing ALT-N (choosing ALT as the hot key) can get you
into trouble, as you won't be able to access any of the ALT
functions, and thus can't change the hot keys again (the
instant you press ALT, you will be toggled out of the
program, before you get a chance to hit the other key of an
ALT combination).

Note: when toggling between DGTERM and a graphics screen,
DGTERM will not reset to text mode, and you will see
graphics garbage. No crashes will occur, it will just
confuse you. Toggling again will put you safely back in
your graphics screen. It is best to avoid toggling when in
graphics mode. Graphics mode toggling was left due to the
amount of code and extra storage space it would require.

VI. VT-102 Emulation

Relatively complete VT-102 emulation is implemented (include
insert/delete spaces on line). All feasible features were

The numeric keypad is implemented with the PC's function
keys F1-F4 taking the place of the VT-102's top row, and the
remaining keys on a standard PC numeric pad corresponding to
the VT-102 positions. The NumLock key must be pressed to
make use of the application keypad.


Deviations: PC's PrtSc key is VT-102 -
PC's Numeric - is VT-102 ,
PC's Numeric + is VT-102 ENTER

VII. Technical Information

The following details will be of interest to technical

DGTERM is written solely in 8088 assembly language. The
background kernel and minimal terminal emulation is just
over one kilobyte of code. With the VT-102 emulation, file
transfer options, and various other functions, it weighs in
around 11K.

When executed, it allocates an extra 4K for communications
buffer, 2K for screen buffer, 4K for a file buffer, and 2K
for various other uninitialized data, bringing the total
resident memory to about 24K.

It takes over the following BIOS interrupts:

INT 08 - Timer interrupt, for timeouts & multitasking
INT 09 - Keystroke interrupt, for trapping hot keys
INT 0B/0C - Communications interrupt, for obvious reasons
INT 21 - For capturing the use of DOS in the background
INT 28 - For capturing the use of DOS in the background

Great pains have been taken to make the it reliable in the
interrupt handling (even at 19,200 baud), and to perform
reliably yet safely with capturing DOS.

All of DGTERM's saveable parameters are located near the
beginning of the program, as are the attribute sets. For
those interested, here are the actual values (which can be
modified with DEBUG.COM).

Note: Please do not distribute modified versions of this
program: only distribute the original DGTERM.ARC file
containing an untouched DGTERM.COM and DGTERM.DOC.

Addr Default Description
0100: - - - Jump to main program
0103: 01 Communications port, 1-4
0104: B0 04 Baud rate (04B0H == 1200 baud)
0106: 03 Parity, data, stop bit info (default 8,N,1)
0107: 00 Local echo flag
0108: 00 Communications echo flag


0109: 0A Hot shift keys (01=Rshift, 02=Lshift, 04=Ctrl,
010A: 00 Hot shift scan code (00==no key required, just the
shifts as defined above)
010B: 0B Line Control Register status--defaults to DTR and
RTS set, interrupts enabled.

The following 18 bytes are the attributes for Color displays:
I = inverse B = blinking
U = underline H = high intensity (bold)

010C: 17 No No No No White on blue
010D: 1F No No No Yes Bright white on blue
010E: 47 No No Yes No White on red
010F: 4F No No Yes Yes Bright white on red
0110: 97 No Yes No No Blinking white on blue
0111: 9F No Yes No Yes Blinking bright white on blue
0112: C7 No Yes Yes No Blinking bright white on red
0113: CF No Yes Yes Yes Blinking bright white on red
0114: 71 Yes No No No Blue on white
0115: 79 Yes No No Yes Bright blue on white
0116: 74 Yes No Yes No Red on white
0117: 7C Yes No Yes Yes Bright red on white
0118: F1 Yes Yes No No Blinking blue on white
0119: F9 Yes Yes No Yes Blinking bright blue on white
011A: F4 Yes Yes Yes No Blinking red on white
011B: FC Yes Yes Yes Yes Blinking bright red on white

011C: 2E Normal status attribute Yellow on green
011D: 2F Bold status attribute White on green

The following 18 bytes are similar to the above 18 attribute
bytes, but are tailored for B&W modes on color cards:

011E: 07 0F 70 7F 87 08 F7 FF 70 7F 7F 7F F0 FF FF FF 7F 70

The following 18 bytes are similar to the above 18 attribute
bytes, but are tailored for Monochrome display devices:

0130: 07 00 01 09 87 8F 81 89 70 70 70 70 F0 F0 F0 F0 70 07


In this initial release, I believe when errors occur during
uploads, the resulting uploaded file may not be reliable.
Downloading seems secure. The next release should have more
reliable uploads when errors occur (if user response and
[more importantly] contributions warrant a new release).


DGTERM PC Terminal Program Registration Form

Mail to: Dale Gass
P.O. Box 82
Shubenacadie, Nova Scotia
Canada B0N 2H0

Name of Institution: ____________________________________________

Address: ____________________________________________

City: ____________________________________________

Province/State: ___________________________

Country: ___________________

Postal Code/ZIP: __________________

Number of Copies: _____

Price per copy ($30 US): _____

Total: _____


-Brian Smithson
 Motorola Inc., Computer Group, Commercial Systems Division
 10700 N. De Anza Boulevard, Cupertino, CA 95014 USA, (408)366-4104
 brian@csd.mot.com, {apple | pyramid}!motcsd!brian