[comp.binaries.ibm.pc.d] Console I/O package for PC-class machines

fredex@cg-atla.UUCP (Fred Smith) (10/18/89)

Below is a zooed and uuencoded file which contains public domain console
I/O routines written (in assembler) for Microsoft C. These routines have
the same names as, and are intended as replacements for, certain routines
in the Microsoft libraries which purport to provide "direct console i/o",
where in reality they provide i/o to/from stdin/stdout. These routines are
often useful in programs which need to interact with the operator regardless
of the state of redirection of stdin/stdout. They have been released to the
public domain by the author.

Please note that I am not the author, so please don't bury me under
complaints/enhancements/fixes, etc. I am just posting these as a
public service (ahem!).

This is an excerpt from the C User's Group Volume #259, which also contains
a useful public domain windowing package for C/MSDOS and a good C language
profiler also for MSDOS, all public domain.

Fred

-------------------  cut here -----------------------
begin 777 conio.zoo
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
M                                                            
# /R#
 
end
----------------------this is really the end -------------------

nelson@sun.soe.clarkson.edu (Russ Nelson) (10/18/89)

As always, software posted to comp.binaries.ibm.pc.d and/or comp.sys.ibm.pc
does NOT get archived on grape.ecs.clarkson.edu.  Please mail software
postings to the comp.binaries.ibm.pc moderator, whose address is:
ibmpc-binaries%cirrusl@oliveb.ATC.olivetti.com.
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
Live up to the light thou hast, and more will be granted thee.
A recession now appears more than 2 years away -- John D. Mathon, 4 Oct 1989.