Dec 072017
Fairly featured terminal program with Turbo Pascal 3.0 source.
File TMODEM.ZIP from The Programmer’s Corner in
Category Pascal Source Code
Fairly featured terminal program with Turbo Pascal 3.0 source.
File Name File Size Zip Size Zip Type
BASIC.INC 6784 1414 deflated
DIRECT.INC 7936 1704 deflated
MUSIC.INC 13440 2995 deflated
RWINDOW.INC 5248 1161 deflated
TM.COM 37955 22109 deflated
TM.PAS 15127 3310 deflated
TMODEM.CNF 128 62 deflated
TMODEM.DIR 2304 660 deflated
TMODEM.DOC 12800 4239 deflated
TMODEM.IN1 28422 5135 deflated
TMODEM.IN2 29037 4812 deflated
TMODEM.KEY 640 276 deflated

Download File TMODEM.ZIP Here

Contents of the TMODEM.DOC file

Documentation for TMODEM

TMODEM is short for Turbo Modem. A communications program for IBM
Personal Computers and compatible units. TMODEM is supplied with
source code in Turbo PASCAL version 3.00B, the user is encouraged
to customize this code as he wishes, but he must not remove, bypass,
or alter the copyright notice presented by the program. The author,
Paul Meiners, and his company, P & M Software, reserve the copyright
to this program and all related materials. The user is granted a
license to use the program and is encouraged to make a donation if
the program is found to be useful. $10 is recommended. Send
donations to the following address:

P & M Software Company
9350 Country Creek #30
Houston, Texas 77036

In addition, the user is granted the right to make unlimited copies
of the program and to distribute these copies as he desires, except
that the author reserves the sole right to distribute the program
for profit. The user may ask for a duplication charge, not to exceed
$5 per copy.

Why distribute another modem program? There are plenty of them around,
commercial, user supported and public domain. Answer: To make available
customizable code, as PC-TALK did, but in a classier language, PASCAL.
Our hope is that people will become exposed to PASCAL and will support
it in a serious manner, the way BASIC has been supported.


1. TTY emulation.
2. ANSI.SYS style color graphics.
3. BASIC style PLAY for single voice music. Nice, but due
to PASCAL's limited sound capability, it plays in foreground,
so the serial input buffer may wrap around while the music
plays. The serial input buffer contains 5k bytes.
4. Fully buffered, interrupt driven, serial I/O.
5. XMODEM file transfer.
6. Removable window subsystem.
7. Telephone directory, with up to 999 entries.
8. File capture, limited only by the amount of available
9. ASCII file transmission, using XON/XOFF protocol.
10. Utility package of BASIC style procedures and
11. Full control of all communication parameters.
12. 40 macro keys, to store logon, passwords, etc.

Most of the features of the program are self-documenting, however
for the sake of the novice user, some explanation is necessary.

The program is distributed in both .COM and .PAS form. The
.COM version can be executed immediately by placing your disk
into drive A, changing the default drive to A, if not already,
then typing the name of the program, TM. The .PAS form is
available for users who want to customize the program, the real
reason the program was written! In order to customize the
the program, the user must possess the Turbo PASCAL compiler,
version 3.00B or better. Needless to say, the user must also
have some familiarity with PASCAL...

Once the user has successfully executed the program, the copy-
right notice will appear, and the user will be asked if music
is wanted, strike a "y" if you want music, if not, then strike
any other key. The on-line screen will then appear. At the
bottom of the online screen appears a reminder of the most
frequently used commands. These commands may be selected by
depressing and holding the ALT key along with the indicated ALPHA
key. If the user needs a command that does not appear on the screen,
a complete list of available commands can be obtained by selecting
ALT-H. Commands may be selected while the HELP screen is still on
screen, so that the user does not need to call up the HELP screen
repetitively. Here is a brief description of each command:

ALT-T .... Terminate and return to DOS.
If other windows are open on the screen, this command
will be deferred until all windows have been closed.

ALT-R .... Receive a file using XMODEM protocol.

ALT-X .... Transmit a file using XMODEM protocol.

ALT-A .... Transmit a file using the ASCII XON/XOFF protocol,
where the DC1 character is used for XON and the
DC3 character is used for XOFF.

ALT-C .... Turn capture mode ON if it is OFF, or OFF if it is ON.
When this mode is turned OFF, either thru the ALT-C
command or with the ALT-T command, the user will be
prompted for a file name wherein to save the contents of
the capture buffer. During capture mode operations, a
'*' or 'W' will appear in the lower left corner of the
screen. The '*' reminds the user that capture mode
is ON, the 'W' warns the user that memory space is
short. Capture mode will make use of all available
memory. Capture mode is useful for recording complete
sessions for review later, so you don't read so much
on those long distance phone calls.

ALT-L .... Display disk directory, under a user supplied mask.
For example, to see all files on the logged drive
and current directory, the user would enter the mask
"*.*", when prompted. Or see just the files with an
extension of .PAS by entering the mask "*.pas", when

ALT-N .... Allows the user to change to a new logged drive and/or
new current directory.

ALT-V .... View the contents of a file, uses the same style as
MORE, the DOS utility.

ALT-K .... Kill a file. Delete a file from the disk.

ALT-M .... Macro key management. Allows the user to define the
contents of the function keys F1 thru F10, and all
combinations of the function keys and shift, Ctrl or
Alt. This gives the user 40 different macro keys.

ALT-H .... Produces the HELP screen for the user.

ALT-S .... Switch communication parameters. The program starts
with these default values: 1200 baud, No Parity,
8 data bits, 1 stop bit. Permissible values for the
baud rate are: 300, 1200, 2400.

ALT-D .... Modem dialing and phone directory management.
The phone directory may have up to 999 entries,
if there is enough disk space.

ALT-O .... Sort the dialing directory into ascending sequence
by name. Performs a IN MEMORY sort, so there must
be enough memory to hold all the phone directory

ALT-G .... Redial the last number dialed.

ALT-E .... Turn Half Duplex ON if it is OFF, or OFF if it
is on. If Half Duplex is ON, then a 'H' will
appear in the lower right corner of the screen to
remind the user.

ALT-Q .... Hang-up the phone line, put the modem "ON HOOK".
Drops the terminal ready signal to the modem for 3
seconds and resets the UART.

ALT-W .... Clear the screen.

ALT-P .... Play a tune, at random, from the several tunes
prestored in the program.

The dialing management sub-section has a list of commands also:

A = Add an entry to the dialing directory.
C = Change an entry in the dialing directory.
D = Delete an entry in the dialing directory, a sort of the
directory is recommended after this option or the Add option.
M = Dial a number not in the directory.
G = Dial a number that is in the directory.
S = Stop the modem, after it has dialed, but before it goes online.
This allows you to dial another number when a previous number
is busy, without waiting for the modem to timeout waiting for
F = Display the next page of the directory.
B = Display the previous page of the directory.
Q = Quit, returns to the online screen.

Note: When editing Phone Directory entries or Macro Key definitions,
the program responds to the following editing keys as indicated:

Backspace .... Delete character to the left of cursor.
Del .......... Delete character under the cursor.
End .......... Move the cursor to the end of the field.
Ins .......... Toggle between insert and overwrite mode.
When in insert mode the cursor becomes fat.
Left Arrow ... Move the cursor to the left 1 position.
Right Arrow .. Move the cursor to the right 1 position.

There are several files associated with the system. Here is a
description of each:

TM.COM ......... Absolute program. The one to execute.
TM.PAS ......... The main program module, source code.
TMODEM.IN1 ..... An Include file, source code.
TMODEM.IN2 ..... An Include file, source code.
MUSIC.INC ...... The musical Include file, source code.
RWINDOW.INC .... The windowing Include file, source code.
DIRECT.INC ..... The file management Include file, source code.
BASIC.INC ...... The BASIC style Include file, source code.
TMODEM.DIR ..... The phone directory, data file.
TMODEM.KEY ..... Macro key definitions, data file.
TMODEM.CNF ..... The configuration, data file. You may need
to edit the configuration file, using EDLIN or
other DOS compatible editor, so here is a detailed
examination of the file:

In position 1-3 of each record in the configuration
file is a code to identify a parameter. After the
"=" the value of the parameter appears.
The codes are:

ST= Stopbits
DA= Databits
PA= Parity. 0=None,1=Even,2=Odd
BA= Baud Rate. 300,1200 or 2400.
WA= Number of ticks in 1/3 of a second,
at 4.77 MHz clock. The value should be
larger if the clock is faster.
The units for the value is milleseconds,
and it is used for waiting, hence the WA=.
PR= Dialing Pre String.
PO= Dialing Post String, use the | character
where a RETURN is needed.
MI= Modem initialization string.
The default value, AT S0=0, will cause the
modem not to answer the phone. Again, use
the | character where a RETURN is needed.
* = Comment lines.

For Example: ST=1
MI=AT S0=0|

The program has been written to use Hayes compatible commands
with the modem. If your modem is not compatible, the program
must be customized. This should be a simple process if you are
familiar with PASCAL and have a copy of the Turbo compiler. Also,
the program controls the modem via the DTR signal, terminal ready,
so the cable between the computer and modem must provide a connection
for pin 20 and the modem should have the internal switches set so
that the DTR signal is monitored.

 December 7, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>