|
|
1.1 root 1: This package is a modem independent dial(3) package. It provides a device
2: independent method for dialing and manipulating modems. The format of the
3: description file is the ever present ;-) termcaps format. You may want to
4: read the modemcap file to see just what capabilities are present.
5:
6: This is Release 1.1 of this software. Please bear in mind that I haven't
7: released this to the public before this release.
8:
9: --< Start of the legal conditions of this software >--
10:
11: This software is copyright 1987 John F. Haugh II, all rights reserved.
12: Use, duplication and disclosure subject to the terms and conditions of
13: the license agreement below. This notice is intended to have legal
14: significance, and not to be taken lightly. If you have any questions,
15: please contact the author at the address below. This copyright covers
16: the entire software distribution it is enclosed with. Removing this
17: copyright is a violation of federal copyright law. Please consult an
18: attorney if you have any questions regarding the legal ramifications of
19: this agreement.
20:
21: This software is licensed subject to the following terms and conditions.
22: In order that this product may expand into the universe to fill the current
23: (void) in this area, it is my intention that this software be widely
24: distributed, and maintained in a consistent fashion. To this end, you
25: are authorized to redistribute this software in either source or binary
26: format, provided that, this agreement is retained as part of the release,
27: no direct profit is realized from the sale or transfer of this software,
28: and that credit is given the author for this work. To facilitate this
29: package coming into acceptance, you must provide library versions of this
30: software and any documentation included with this package when distributing
31: binary versions embedded in your products. Paying royalties would be
32: nice and you won't do it anyway, so don't even pretend to be nice people
33: unless you really want me to stay on top of this thing. Author retains
34: all rights to derived works, and as a condition to your making modifications
35: to the source code, you are required by this agreement to provide detailed
36: notes concerning the actual modifications and the motivation behind the
37: modification itself. Making the documentation look better is a nice idea
38: also. And since I'm very lazy, please send me your documentation. You
39: don't have to, but standardized documentation is a Good Thing.
40:
41: The author provides this software without warrantee. The user accepts by
42: use all responsibility for the performance (or lack thereof ;-) of this
43: software, including loss of profits, reputation, or job.
44:
45: --< End of the legal stuff, now for the documentation. >--
46:
47: call.c - a test program. do a `make all' to create the library and compile
48: the call program. read all the documentation before trying it out.
49:
50: dial(3L) - a version of the standard dial(3) command which should be fairly
51: compatible with the one in your manual ... has both dial() and undial()
52: routines. see your manpage for more details.
53:
54: hangup.c/hangup(3L) - a routine that attempts to absolutely hangup a modem.
55: it uses the modem capabilities database to figure out the best way to
56: hangup a modem. it supports both hangup on DTR and hangup on command.
57:
58: initmodem.c/initmodem(3L) - this routine takes a character pointer to a
59: modem name as it appears in the database and a file descriptor from a
60: open() call, and loads the database information. after the database is
61: loaded, the modem is placed in the command mode. beware, initmodem()
62: may make an alarm(2) call if the InitializationDelay requirement is present.
63:
64: mdial.c/mdial(3L) - this routine builds a dial command string to give
65: to the dialer. this is the weakest routine in the package, because i don't
66: have that many different modems around here, and hayes is pretty damned
67: common, so i don't see many others. the first argument is a character string
68: telephone number, digits only, or if you understand your modem (boo on me)
69: you can put in pause commands. the second argument is a file descriptor
70: from an open() call. this routine _will_ be the first to get fixed.
71:
72: merror.c/merror(3L) - this routine is a modemcap replacement for perror.
73: an `int merrno' variable is maintained by the routines. after an error
74: return, you can call merror with a character pointer just like perror(3)
75: and have a message printed on your standard error output.
76:
77: mgetent.c/mgetent(3L) - this is a low level routine you shouldn't be
78: calling anyway. it works like tgetent(3), only different. mostly, it
79: doesn't have the neat things. the first argument is a pointer to a
80: character buffer where the entry will be placed. the second argument
81: is a pointer to the modem name.
82:
83: mgetflag.c/mgetflag(3L) - just like tgetflag. this is a low level
84: routine you might just want to use. in particular, `if (mgetflag ("hc"))'
85: tests for modem hanging up on DTR being negated. `if (HC)' does the
86: same thing after mgetent() ...
87:
88: mgetnum.c/mgetnum(3L) - just like tgetnum. don't see much use for using
89: it.
90:
91: mgetstr.c/mgetstr(3L) - just like tgetstr, except it has a few quirks.
92: octal escapes are all three digits. the format '^c' where 'c' is some
93: character, only works with upper case letters. correctly at least.
94: ain't no way to get a null into the string, no how.
95:
96: /etc/modemcap - a modem capabilities database. read the file for more
97: details.
98:
99: /etc/modemtype - a modem/port mapping table. look at the example file.
100:
101: you will need to make entries for your devices in the L-devices file.
102: the speed listed must be a legal speed according to the modemcap file.
103: any compilation errors or warnings should be brought to my attention. i
104: didn't get any the last time i compiled all this stuff.
105:
106: the source is well enough (i'm lieing) documented for anyone to fix.
107: please don't add your local improvement. if you insist, make the mods
108: and send me context diffs. i'll tell you what i think about the change.
109: remember, according to the license you must let me in on what you are
110: doing. this is in everyones best interest.
111:
112: --< End of the documentation, now for my personal philosophical b.s. >--
113:
114: It is not my intention to limit the use of this software or your profits,
115: except where such use is inconsistent with the spirit of humanity, whatever
116: the hell that means. I don't care how much money you make selling your
117: new terminal program, just don't go jacking the price up because you
118: have added this thing. I will only work on this package if I get feedback
119: and I have some motivation, other than being a nice guy. I think I've been
120: nice enough by putting this thing out there. If what you want makes sense
121: in a real way, I will probably include your suggestions, and if you are
122: polite, I might just give you credit ;-) So don't be a jerk and pretend
123: that anyone actually works for free. I have a car note just like you.
124:
125: By way of this license and the legal mumbo-jumbo, I hope to keep people
126: from ripping me off, and totally trashing and perverting the integrity
127: of the code. Please, don't construe this agreement to be limiting in
128: a negative way. I hope to provide just enough limits to keep the code
129: consistent and portable across all machine environments, and hopefully,
130: you will use this thing enough that it becomes better and more useful
131: and fills the need for such a thing. Who knows, we both might just make
132: some money off of this thing.
133:
134: --
135: John F. Haugh II QUOTE: "The important thing is to not stop
136: 7825 McCallum Blvd. questioning" -- Albert Einstein
137: Apt. 510 TELCO: (214) 250-3311
138: Dallas, TX 75252 UUCP: { backbone } !ihnp4!killer!jfh
139:
140:
141: ----------------------------------------------------------------------
142:
143: All of this stuff is modified from [email protected]'s package,
144: so that it more closely follows the dial(3) manual page. Some things
145: were changed just because I wanted them to be done that way.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.