home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
DOOG
/
INFOP131.ZIP
/
PAGE_05.INC
< prev
next >
Wrap
Text File
|
1990-09-04
|
5KB
|
173 lines
procedure page_05;
var
i : byte;
xbyte : byte;
xint1 : integer;
xint2 : integer;
xword : word;
mono2: boolean;
procedure showdisp(a : string; b : byte);
begin
caption2(a);
case b of
$00 : writeln('(none)');
$01 : writeln('MDA + 5151');
$02 : writeln('CGA + 5153/5154');
$03 : writeln('(reserved)');
$04 : writeln('EGA + 5153/5154');
$05 : writeln('EGA 5151');
$06 : writeln('PGA + 5175');
$07 : writeln('VGA + analog monochrome');
$08 : writeln('VGA + analog color');
$09 : writeln('(reserved)');
$0A : writeln('MCGA + digital color');
$0B : writeln('MCGA + digital monochrome');
$0C : writeln('MCGA + analog color');
$0D..$FE : writeln('(reserved)');
$FF : dontknow
end
end;
procedure showcolor(a : byte);
begin
case(a) of
black : write('black');
blue : write('blue');
green : write('green');
cyan : write('cyan');
red : write('red');
magenta : write('magenta');
brown : write('brown');
lightgray : write('light gray');
darkgray : write('dark gray');
lightblue : write('light blue');
lightgreen: write('light green');
lightcyan : write('light cyan');
lightred : write('light red');
lightmagenta: write('light magenta');
yellow : write('yellow');
white : write('white')
else
unknown('color', a, 2)
end
end;
begin (* procedure page_05 *)
with regs do begin
AX:=$1A00;
intr($10, regs);
if AL = $1A then begin
showdisp('Active video subsystem ', BL);
showdisp('Inactive video subsystem', BH)
end
end;
caption2('Initial video mode');
case equip and $0030 of
$0000 : writeln('No display');
$0010 : writeln('40 x 25 color');
$0020 : writeln('80 x 25 color');
$0030 : writeln('80 x 25 monochrome')
end;
caption2('Current video mode');
xbyte:=lo(lastmode);
write(xbyte, ' ');
case xbyte of
$00 : writeln('(40 x 25 b/w text)');
$01 : writeln('(40 x 25 color text)');
$02 : writeln('(80 x 25 b/w text)');
$03 : writeln('(80 x 25 color text)');
$04 : writeln('(320 x 200 4 colors)');
$05 : writeln('(320 x 200 4 colors, no color burst)');
$06 : writeln('(640 x 200 2 colors)');
$07 : writeln('(MDA text)');
$08 : writeln('(160 x 200 16 colors)');
$09 : writeln('(320 x 200 16 colors)');
$0A : writeln('(640 x 200 4 colors)');
$0D : writeln('(320 x 200 16 colors)');
$0E : writeln('(640 x 200 16 colors)');
$0F : writeln('(640 x 350 monochrome)');
$10 : writeln('(640 x 350 16 colors)');
$11 : writeln('(640 x 480 2 colors)');
$12 : writeln('(640 x 480 16 colors)');
$13 : writeln('(320 x 200 256 colors)');
$54 : Writeln('(132 x 43 color text [Paradise])');
$55 : Writeln('(132 x 25 color text [Paradise])');
$56 : Writeln('(132 x 43 b/w text [Paradise])');
$57 : Writeln('(132 x 25 b/w text [Paradise])');
$58 : Writeln('(800 x 600 16 colors [Paradise])');
$59 : Writeln('(800 x 600 2 colors [Paradise])');
$5E : Writeln('(640 x 400 256 colors [Paradise])');
$5F : Writeln('(640 x 480 256 colors [Paradise])');
else
unknown('video mode', xbyte, 2)
end;
caption2('Current display page');
writeln(vidpg);
caption2('Graphics modes');
getmoderange(graphdriver, xint1, xint2);
if graphresult = grok then
writeln(xint2 + 1 - xint1)
else
writeln(0);
caption2('Video buffer (offset)');
writeln(hex(memw[BIOSdseg : $004E], 4));
caption2('Video buffer size (bytes)');
writeln(memw[BIOSdseg : $004C]);
caption2('Active display port');
xword:=memw[BIOSdseg : $0063];
write('$', hex(xword, 3), ' ');
if xword = $03B4 then
writeln('(monochrome)')
else if xword = $03D4 then
writeln('(color)')
else
dontknow;
caption2('CRT mode register');
writeln('$', hex(mem[BIOSdseg : $0065], 2));
caption2('Current palette');
writeln('$', hex(mem[BIOSdseg : $0066], 2));
caption2('Colors');
caption1('·');
mono2:=mono;
mono:=false;
for i:=black to white do
begin
textcolor(i);
write('█')
end;
mono:=mono2;
caption1('·');
writeln;
caption2('Current colors');
if (attrsave and $80) = $80 then
write('blinking ');
showcolor(attrsave and $0F);
write(' on ');
showcolor(attrsave and $70 shr 4);
writeln;
caption2('Text rows');
writeln(tlength);
caption2('Text columns');
writeln(twidth);
if graphdriver in [EGA, MCGA, VGA] then begin
caption2('Scan lines/character');
with regs do begin
AX:=$1130;
BH:=$00;
intr($10, regs);
writeln(CX)
end
end;
caption2('Cursor scan lines');
with regs do begin
AH:=$03;
BH:=vidpg;
intr($10, regs);
writeln(CH, '-', CL)
end
end;