[Back to COMM SWAG index] [Back to Main SWAG index] [Original]
{
===========================================================================
BBS: Canada Remote Systems
Date: 08-16-93 (19:59) Number: 34567
From: ERIC GIVLER Refer#: NONE
To: ALL Recvd: NO
Subj: PROBLEM Conf: (1221) F-PASCAL
---------------------------------------------------------------------------
When I start up the BBS and it has the wrong port# (ie Com1 instead of 2),
the machine will lockup trying to write to the modem. If the port is
correct, there are NO problems as long as the modem is on. Is there a
graceful way of detecting this and remedying it - ie. Even an abort
to DOS with an errorlevel would be nicer than a LOCKUP! The following
idea is what I've tried. It DOES appear to work!
}
USES CRT,DOS;
function is_device_ready( devicename:string) : boolean;
var r : registers; handle : word; ready : byte;
begin
ready := 0;
r.ds := seg(devicename);
r.dx := ofs(devicename[1]);
r.ax := $3d01;
msdos(r);
if (r.flags and fCarry) <> fCarry then
begin
handle := r.ax;
ready := 1;
r.ax := $4407;
r.bx := handle;
msdos(r);
ready := ready and r.AL;
r.ah := $3e;
r.bx := handle;
msdos(r);
end;
is_device_ready := ( ready = 1 );
end; { is_device_ready }
begin
ClrScr;
writeln('COM2 is ready ..', is_device_ready('COM2'+#00) );
writeln('COM1 is ready ..', is_device_ready('COM1'+#00) );
writeln('LPT1 is ready ..', is_device_ready('PRN' + #00) );
end.
--- msgedsq 2.1
* Origin: Noname Consultants (717)561-8033 (1:270/101.15)
[Back to COMM SWAG index] [Back to Main SWAG index] [Original]