wylie@cui.UUCP (WYLIE Andrew) (06/16/86)
Hello,
I am trying to use the COM1 serial port on an IBM PC-AT from Turbo
Pascal, and I have a couple of problems. I would appreciate any comments
from experienced net.pc people - by e-mail please, not to the net unless
you really think the topic is interesting enough.
First problem - I use the function Keypressed to poll the keyboard. What
Borland dont tell you is that any Read/Write to any device will wreck
the Keypressed function. Try this program - run it and type any normal
alphanumeric key : the prog will tell you what it was. Now remove the
comments from the writeln and re-run it - you will have to type *two*
characters to have the second one echoed.
Program test;
VAR
key: char;
begin
while (not Keypressed) ;
writeln('hello there');
read(KBD,key);
writeln('key hit was ',key);
end.
Second problem - using the COM1 port. I use the routines in COMLIB.PAS from
the Turbo Tutor disk, which make proper BIOS calls. First of all, any read
or write to the port wrecks Keypressed as above, but more seriously, the
SerialStatus function always returns with DSR = 0 (DataSetReady , which is
SerialStatus and $20). It *does* seem to work on an Olivetti XT clone, the
problem lies with the AT (I run DOS 3.0).
Has anyone else experienced this problem ? Can it be fixed ? Can I use
the PORT[] array instead of COMLIB ? All suggestions (by e-mail) welcome !
-----------------------------------------------------------------------------
Andrew Wylie
Groupe NSI
Uni II
Universite de Geneve
1211 GENEVE 4 (Switzerland)
to VMS/BITNET: to UNIX/EAN
BITNET: WYLIE@CGEUGE51 wylie%cui.unige.chunet@CERNVAX
ARPA: WYLIE%CGEUGE51.BITNET@WISCVM wylie%cui.unige.chunet@ubc.csnet
uucp: mcvax!cernvax!cui!wylie
X.400/ean: wylie@cui.unige.chunet