home *** CD-ROM | disk | FTP | other *** search
- 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;