home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD Shareware Masterblend
/
cdsharewaremasterblend.iso
/
utils
/
infoplus
/
page_08.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-12-08
|
4KB
|
156 lines
procedure page_08;
const
tick2 = 115200;
var
i : byte;
xbyte1 : byte;
xbyte2 : byte;
xbyte3: byte;
xword : word;
xword2: word;
temp: word;
begin
window(1, 3, 30, tlength - 2);
caption2('Printers');
xbyte1:=equip and $C000 shr 14;
writeln(xbyte1);
if xbyte1 > 0 then
begin
caption3('Device');
writeln;
caption3('Base port');
writeln;
caption3('Timeout');
writeln;
caption3('Busy');
writeln;
caption3('ACK');
writeln;
caption3('Paper out');
writeln;
caption3('Selected');
writeln;
caption3('I/O error');
writeln;
caption3('Timed out');
for i:=1 to xbyte1 do
begin
window(9 + 6 * i, 4, 15 + 6 * i, tlength - 2);
writeln('LPT', i);
writeln('$', hex(memw[BIOSdseg : 2 * i + 6], 3));
writeln(mem[BIOSdseg : $0077 + i]);
with regs do
begin
AH:=$02;
DX:=0;
Intr($17, regs);
yesorno(AH and $80 = $00);
yesorno(AH and $40 = $40);
yesorno(AH and $20 = $20);
yesorno(AH and $10 = $10);
yesorno(AH and $08 = $08);
yesorno(AH and $01 = $01)
end
end
end;
window(twidth - 42, 3, twidth, tlength - 2);
caption2('Serial ports');
xbyte1:=equip and $0E00 shr 9;
writeln(xbyte1);
if xbyte1 > 0 then
begin
if xbyte1 > 4 then
xbyte1:=4;
caption3('Device');
writeln;
caption3('Base port');
writeln;
caption3('UART');
Writeln;
caption3('Timeout');
writeln;
caption3('Baud rate');
writeln;
caption3('Data bits');
writeln;
caption3('Parity');
writeln;
caption3('Stop bits');
writeln;
caption3('Break');
writeln;
caption3('RLSD');
writeln;
caption3('RI');
writeln;
caption3('DSR');
writeln;
caption3('CTS');
writeln;
caption3('dRLSD');
writeln;
caption3('-dRI');
writeln;
caption3('dDSR');
writeln;
caption3('dCTS');
for i:=1 to xbyte1 do
begin
window(twidth - 35 + 7 * i, 4, twidth - 28 + 7 * i, tlength - 2);
writeln('COM', i);
xword:=memw[BIOSdseg : 2 * i - 2];
writeln('$', hex(xword, 3));
xbyte2:=Port[xword + 2];
Port[xword + 2]:=$C1;
for temp:=1 to 20 do;
xbyte3:=Port[xword + 2];
Port[xword + 2]:=xbyte2;
case ((xbyte3 and $C0) shr 6) of
0: Writeln('8250');
1: Writeln('???');
2: Writeln('16550');
3: Writeln('16550A')
end;
writeln(mem[BIOSdseg : $007B + i]);
xbyte2:=port[xword + 3];
port[xword + 3]:=xbyte2 or $80;
xword2:=cbw(Port[xword], Port[xword + 1]);
if xword2 = 0 then
Writeln('N/A')
else
Writeln(tick2 / xword2:0:0);
port[xword + 3]:=xbyte2;
Writeln((xbyte2 and $03) + 5);
case xbyte2 and $38 of
$00, $10, $20, $30 : writeln('none');
$08 : writeln('odd');
$18 : writeln('even');
$28 : writeln('mark');
$38 : writeln('space')
end;
case xbyte2 and $07 of
$00..$03 : writeln('1');
$04 : writeln('1.5');
$05..$07 : writeln('2')
end;
yesorno(xbyte2 and $40 = $40);
with regs do
begin
AH:=$03;
DX:=i - 1;
Intr($14, regs);
yesorno(AL and $80 = $80);
yesorno(AL and $40 = $40);
yesorno(AL and $20 = $20);
yesorno(AL and $10 = $10);
yesorno(AL and $08 = $08);
yesorno(AL and $04 = $04);
yesorno(AL and $02 = $02);
yesorno(AL and $01 = $01)
end;
end
end
end;