home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
sysutl
/
new14h.arc
/
NEW14H.DOC
< prev
Wrap
Text File
|
1986-08-07
|
11KB
|
263 lines
/===========\
| NEW14H |
\===========/
Computing Resource Center
2116 Wilshire Blvd. #202
Santa Monica, Ca. 90405
Attn: Marty Ross
Release: 2.1, 08/01/84
By: Marty Ross, at the Computing Resource Center
System: IBM-PC with standard communications adapter (COM:)
Requirements: Tested using PC-DOS 2.0/2.1, 128K or larger PC preferred.
Contribution: Suggested $10.00; puts you on CRC mailing list.
Abstract: NEW14H is a DOS-extension (resident program) which intercepts
calls made to the BIOS communication application interrupt
(INT 14H), and adds extended functions to the communication
repertoire. The program maintains a 32K input buffer, and
a 255 byte output buffer, and uses both input and output
hardware interrupts for maximum efficiency.
If none of this makes any sense, then you don't need NEW14H
unless you are using application software which requires it.
NEW14H is of primary interest to communication software
developers only.
Distribution: I am distributing this preliminery version freely,
in hopes to stimulate interest and feedback. No fee
may be charged, and this document must accompany the
program(s) documented herein.
Features: NEW14H provides a more accurate way to read characters from
the communication port. The application program need not
keep up on a character basis with the incoming data: a 32K
circular input buffer is used and always updated while any
normal PC software executes. If NEW14H is installed on two
ports, then each port has 32K input buffer so is independant
from the other device. See extended function calls in .ASM
excerpt for details on extended functions provided by NEW14H.
Usage: There are three steps necessary to activate NEW14H so that
it may be used to by application software:
1.) Initialize PC-DOS
2.) Install the NEW14H communication enhancements
4.) Initialize the COM: port for desired baud/parity
(NEW14H DOES NOT DO THIS: USE PC-DOS "MODE.COM")
A typical installation sequence (which can be combined into
a .BAT file, such as "AUTOEXEC.BAT"):
+---------------------------------------------------------+
| |
(1) | <ALT>+<CTL>+<DEL> ... |
| |
| IBM Disk Operating System |
| Version 2.xx ... |
| |
(2) | A>new14h |
| NEW14H - 2.x - 08/01/84 - M.Ross @CRC, (C) 1984 |
| Auxiliary COM1: port driver active. |
| |
(3) | A>mode com1:300,n,8 |
| COM1:300,n,8,- |
| |
| A>_ |
| |
+---------------------------------------------------------+
Why NEW14H?: NEW14H was written because the BIOS counterpart is severely
deficient, and does not even use the powerful interrupt cap-
abilities on the communication devices used in the IBM-PC.
NEW14H intercepts the common calls made to the BIOS services
for async communication, and although not tested for transp-
arency, was modeled after the old INT 14H so that existing
application software can take advantage of the enhancements
provided without modification. Additional calls provided by
NEW14H also add a degree of power to the INT 14H system inter-
rupt which software developers can use for convenience, and
power which previously was possible only by taking care of
all the details of communication themselves, detracting from
their overall purpose.
Disclaimer: Though I've tested INT14H under varying conditions, I cannot
guarantee that it will work in every case/PC configuration.
Also, I suggest you use caution when using INT14H in new
situations (on two ports, etc): I will not be liable for any
damage caused by NEW14H, but would like to be informed if any
undesireable interactions occur. Please write me.
On-line help: For on-line info, type "NEW14H ?" which will cause the following
display:
+----------------------------------------------------------------------+
| syntax: |
| new14h [port#] |
| port#: |
| 1 - COM1: |
| 2 - COM2: |
| |
| You can use the PC-DOS "MODE" command to initialize |
| or change the channel baud rate, and parity settings |
| (e.g. "MODE COM1:300,E,7"). |
| |
| The communication channel will occupy approximately |
| 33K of memory, and will remain active until CTL-ALT-DEL. |
| |
+----------------------------------------------------------------------+
which indicates that you may install NEW14H on either the COM1: or
the COM2: port by specifying the port number.
NOTE: As indicated above, NEW14H does not automatically initialize
the selected communication port for baud rate or parity set-
tings. Use the PC-DOS 'MODE' command for this purpose BEFORE
attempting to use the port for communication.
Technical specs: (excerpt from source program):
----------------
TITLE NEW14H - Enhanced communications driver for COM adapter
NEW14H - Replacement driver for PC BIOS INT 14 call.
NOTICE: This code the property of the Computing Resource Center, a
Santa Monica based data processing firm. It may not be sold
or modified without the explicit permission of Marty Ross, at CRC.
Defines interrupt driver COMmunication "channel," and intercepts
INT 14H for UART INIT, character READ/WRITE, and other added functions.
NOTE: This version supports only one buffer configuration:
256 byte OUTPUT buffer
32K byte INPUT buffer
Both lists are treated as circular character lists, and an error
return is indicated for output overflow by the TIMEOUT BIT, and
and the value EOF in AL. Application must process incoming data
fast enough so as not to allow more than 32K (size of input buffer)
of data to remain un-processed (READ via RECV_CODE function call).
functions intercepted (replaced):
code(AH) function added feature(s)
0 INITIALIZE UART Re-enables interrupt system
1 SEND CHARACTER Interrupt driven, buffered.
2 RECEIVE CHARACTER Interrupt driven, buffered.
NOTE: will HANG for TIMEOUTCNT
3 RETURN MSR & LSR
as with old INT 14H, B7 of AH returned is timeout bit (as per TIMEOUTCNT),
and AH will always return with value of line status (bits 0-6).
added functions:
80h RETURN VERSION NUMBER OF THIS DRIVER IN AH, AL.
MAJOR VERSION # WILL NOT EXCEED 9, SO IF AH RETURNS
WITH VALUE > 9, THIS PROGRAM IS NOT INSTALLED AND
'ADDED' SUB-FUNCTIONS (BELOW) SHOULD NOT BE USED.
84h RETURN SIZE OF COMMUNICATION BUFFER
85h FLUSH COMMUNICATION BUFFER
86h CHECK FOR ANY CHARACTERS IN BUFFER/RETURN Z IF NONE
IF CHAR(S) EXIST, FIRST CHAR RETURNED IN AL
87h SEND BREAK SIGNAL OVER SELECTED PORT
88h RETURN 0 in AX if no chars in buffer, else non zero
89h Re-ENABLE interrupts (after initializing baud rate)
(since we don't intercept SET BAUD RATE function,
must use BIOS' which disables our interrupts!).
8AH This call allows caller to predict whether I/O is
currently taking place (at the device level). If
char(s) received since last call, AL will be NZ.
As usual (for INT 14H), DX must contain PORT # (0,1 valid).
I.E. 0=COM1, 1=COM2, etc.
About the Author:
Marty Ross is a consultant for the Computing Resource Center,
a Santa Monica based data processing firm. CRC uses the IBM
VM/SP operating system to provide its clients with an inter-
active method to access popular data handling facilities,
such as SAS, PL/1, FORTRAN, and the On-Line Data System, CRC's
own database management product. Recently, CRC has purchased
IBM-PC's to link many of its remote clients to the mainframe
system. To facilitate compatibility with other microcomputers
and terminals, CRC has operated a public access DEMOnstration
account and bulletin board system where anyone with a terminal
can call to find out about our services, rates, or expertise.
Because of this, keep your eye out for more communication
software from CRC: especially if interested in the elusive
"micro -> mainframe link" which seems to be in a state of
constant re-definition in other data processing circles.
----------------------------
[1] NEW14H will be destroyed by programs such as BASIC or BASICA which
re-define the communication interrupt driver(s).
------------------------------------------------------------------------------
/========\
| NEW14H |
\========/
Comments?
Can you use NEW14H?
Name: _________________________________________________________
Address: _________________________________________________________
_________________________________________________________
_________________________________________________________
---------------------------------------------------------
Comments: _________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
If you feel NEW14H contributes to your effectiveness, then please let
me know by sending a donation of $10.00 or whatever you feel is ap-
propriate. NEW14H was developed in my spare time, and is now not a
commercial effort of CRC. I will continue to develop products like
NEW14H for those who show interest - provided I can afford it. Users
who make contributions will be entitled to a single sided diskette
of other utilities I've developed while at CRC: please include your
name and return address when sending donations!