Dec 102017
Clipper S87 & 86 assembler code for a modem dial routine/function.
File KLIPDIAL.ZIP from The Programmer’s Corner in
Category Dbase Source Code
Clipper S87 & 86 assembler code for a modem dial routine/function.
File Name File Size Zip Size Zip Type
DIALIT.DOC 4813 2166 deflated
DIALIT86.ASM 6679 2067 deflated
DIALIT86.OBJ 503 440 deflated
DIALIT87.ASM 6593 2069 deflated
DIALIT87.OBJ 509 451 deflated
DIALTEST.OBJ 1010 688 deflated
DIALTEST.PRG 550 317 deflated

Download File KLIPDIAL.ZIP Here

Contents of the DIALIT.DOC file

This program is adapted from

DTR and AT
Donavon Kuhn & Jon Niedfeldt
(c) 1985

Adaptation for Clipper
John Karns

Clipper/Modem Interface


v1.0 10/26/88

In general terms:
Call DIALIT with "Hayes command"
where the hayes command is a character string
without the AT on the front. (Since all commands
start with an AT, the module will supply it).

COM1 is the default unless you specify otherwise.


Call DIALIT with "Com2:DT1234567" && Can use COM1 thru 4

Call DIALIT with "DT1234567" && Dial # 1234567 (default COM1)

Call DIALIT with "H" && Hang up

(Upper or lower case may be used.)



@ 10, 25 SAY "Enter Phone No. " GET m_phone PICTURE "@R (999) 999-9999"
prefix = "DT"
cmd = prefix + m_phone
@ 12, 25 SAY "Dialing - Please wait..."
Errcode = DIALIT(cmd)

prompt1 = "Return Code = " + ltrim(str(errcode))
@ 14, 25 SAY prompt1
@ 23, 25 SAY "Press any key to hang up..."
cmd = "H"
Errcode = DIALIT(cmd) && Must use this form to maintain consis-
&& tency with above function call...

* CALL DIALIT with cmd && This will cause Clipper to generate a
&& compile-time error (see note below).

@ 12, 35 SAY "All Done..."


This module may be called as a procedure or as a function.
If called as a function, an error code will be returned.

For example:
Errcode = DIALIT("DT1234567")

Errcode = 0 - No errors detected

1 - Specified Com port > 4

2 - Com port not found

NOTE: If you call it as BOTH a function and as a procedure, Clipper
will give the compile-time error "Symbol Redefinition Error",
so you must be consistent - i.e., use one form or the other!

This is a straight-forward adaptation of the above mentioned set of
programs. A modem which uses the standard hayes command set is

The two sets of modules, DIALIT86.* and DIALIT87.* are for Clipper
versions Autumn '86 and Summer '87 respectively.

The intended purpose of the module is to provide a convenient
interface between a Clipper application and a dialing device. It
should be fully possible to send any of the full set of "AT"
commands to a modem via DIALIT. The full command string would be

Call DIALIT with "COMx:command"

where: 1 <= x <= 4

and 'command' is any modem command. The AT prefix IS SUPPLIED by
DIALIT, so don't use it! Just start with the third character in the
string. So instead of ATDT--------- use DT-----------, get it?
The COM spec. is optional, defaulting to COM1.

Before attempting this adaptation, I searched many of the popular
Clipper/dBase BBS's for such a utility. I did find one in a shareware
library, but then I came upon the two programs, AT.COM and DTR.COM
which were written to function from DOS, and were contributed freely
by the authors for others to use for their own purposes. I likewise am
happy to make a small contribution in that same spirit of sharing
with the user/programmer community.

This is my first (successful) attempt at doing anything with
808x/80x86 assembler, particularly relating to Clipper. I think I
learned a few basics in working in both domains, and hope to do some
more in the future. It is great fun! But I make no claims toward being
an expert in assembler. You are free to make your own adjustments as
you see fit.

When called from Clipper, DIALIT will set DTR before dialing.

For the uninitiated, DTR is a mnemonic for Data
Terminal Ready. It must be set prior to sending the
dial string in order for the modem to dial out.
"Dropping DTR" will effectively hang up the modem, and
can override a frozen connection - i.e., it FORCES the
modem to go on-hook (Hang up).

I thought it best to leave DTR set in order not to disrupt any other
pending process.


These programs are provided as is. Whomsoever will use these will
assume all responsibility in determining that these programs modules
are suitable for any intended use. Clipper is a trademark of
Nantucket Corporation.

 December 10, 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>