home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD Shareware Masterblend
/
cdsharewaremasterblend.iso
/
utils
/
infoplus
/
page_10.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-12-08
|
6KB
|
255 lines
procedure page_10;
var
i : 1..63;
xbool1 : boolean;
xbool2 : boolean;
xbool3 : boolean;
xchar : char;
xword1: word;
procedure muxint(a : string; b : byte);
begin
caption3(a);
with regs do
begin
AH:=b;
AL:=0;
intr($2F, regs);
case AL of
$00 : writeln('no; OK to load');
$01 : writeln('no; not OK to load');
$FF : writeln('yes')
else
unknown('status', AL, 2)
end
end
end;
begin (* procedure page_10 *)
caption2('Multiplex interrupt ($2F)');
Window(1, 4, twidth div 2, tlength - 2);
muxint('DOS ', $12);
{ muxint('DRIVER.SYS ', $08);}
muxint('DISPLAY.SYS ', $B0);
muxint('ANSI.SYS ', $1A);
muxint('PRINT ', $01);
muxint('ASSIGN ', $06);
(*
** Byte 12:12 p. 176C, Duncan, and many others, all of whom mistakenly give
** AH = $02
*)
muxint('SHARE ', $10);
(* muxint('FASTOPEN ', $xx);*)
muxint('NLSFUNC ', $14);
muxint('GRAFTABL ', $B0);
(* muxint('KEYB ', $B8);*)
muxint('NETBIOS append ', $87);
muxint('NETBIOS network', $88);
(* Byte 12:12 p. 180. PC Tech Journal 3:11 p.104 gives AH = $BB *)
muxint('SHELLB ', $19);
muxint('XMA2EMS ', $1B);
muxint('APPEND ', $B7);
caption3('CDROM ');
with regs do
begin
AX:=$1500;
BX:=0;
Intr($2F, regs);
case AL of
$00 : writeln('no; OK to load');
$01 : writeln('no; not OK to load');
$FF : begin
Write('yes');
caption3('on drives');
Write(Chr(CX + 65));
caption3('through');
Write(Chr(CX + BX + 65 - 1))
end;
end; {case}
end;
caption3('Network ');
with regs do
begin
AX:=$B800;
Intr($2F, regs);
if AL = 0 then
Writeln('no; OK to load')
else
begin
Write('yes');
caption3('this is a');
if BX and $0040 = $40 then
Writeln('server')
else
if BX and $0004 = $4 then
Writeln('messenger')
else
if BX and $0080 = $80 then
Writeln('receiver')
else
if BX and $0008 = $8 then
Writeln('redirector');
end;
end;
pause3(3);
if endit then
Exit;
caption3('JP Software''s 4DOS');
with regs do
begin
AX:=$D44D;
BX:=0;
Intr($2F, regs);
if AX <> $44DD then
Writeln('no')
else
begin
Writeln('yes');
caption3(' version');
xword1:=BH;
Write(BL, decimal);
zeropad(xword1);
caption3('shell no.');
Writeln(DL);
caption3(' 4DOS PSP segment');
Writeln(hex(CX, 4))
end;
end;
pause3(2);
if endit then
Exit;
caption3('Microsoft Windows');
with regs do
begin
AX:=$1600;
Intr($2F, regs);
case AL of
$01,$FF: begin
Writeln('yes');
caption3(' version');
Writeln('Windows/386 2.x')
end;
$00,$80: begin
AX:=$4680;
Intr($2F, regs);
if AX = 0 then
begin
Writeln('yes');
caption3(' mode');
Writeln('Real or Standard')
end
else
Writeln('no');
end;
$02..$7F,$81..$FE: begin
Writeln('yes');
caption3(' version');
Writeln(AL, decimal, AH, ' enhanced mode');
end;
end; {case}
end;
caption3('Quarterdeck''s Desqview');
with regs do
begin
AX:=$2B01;
CX:=$4445; {DE}
DX:=$5351; {SQ}
MsDos(regs);
if AL = $FF then
Writeln('no')
else
begin
Writeln('yes');
caption3(' version');
if BX = $0002 then
Writeln('2', decimal, '00')
else
begin
Write(BH, decimal);
zeropad(BL);
end;
end;
end;
window(1 + twidth div 2, 3, twidth, tlength - 2);
if osmajor >=4 then
with regs do
begin
AX:=$B700;
Intr($2F, regs);
if AL=$FF then
begin
caption2('APPEND ');
AX:=$B706;
Intr($2F, regs);
if (BX and 1) = 1 then
Write('enabled ');
if (BX and $2000) = $2000 then
Write('/PATH ');
if (BX and $4000) = $4000 then
Write('/E ');
if (BX and $8000) = $8000 then
Write('/X');
Writeln;
caption2('APPEND path');
AX:=$B704;
Intr($2F, regs);
while Mem[ES:DI] <> 0 do
begin
Write(Chr(mem[ES:DI]));
Inc(DI)
end;
Writeln
end
end;
with regs do begin
AX:=$0100;
intr($2F, regs);
if AL = $FF then begin
caption2('PRINT queue');
AX:=$0104;
intr($2F, regs);
xbool1:=true;
xbool2:=false;
repeat
xchar:=char(mem[DS : SI]);
if xchar > #0 then
begin
if xbool1 then
begin
xbool1:=false;
writeln;
window(2 + twidth div 2, wherey + hi(windmin), twidth, tlength - 2)
end;
pause2;
if endit then
Exit;
write(xchar);
i:=1;
xbool3:=false;
repeat
xchar:=char(mem[DS : SI + i]);
if xchar > #0 then
begin
write(xchar);
inc(i)
end
else
begin
writeln;
xbool3:=true
end
until xbool3;
inc(SI, 64)
end
else
xbool2:=true
until xbool2;
if xbool1 then
writeln('(empty)');
AX:=$0105;
intr($2F, regs)
end
end
end;