home *** CD-ROM | disk | FTP | other *** search
- procedure page_05;
-
- var
- i : byte;
- xbyte : byte;
- xint1 : integer;
- xint2 : integer;
- xword : word;
-
- 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('·');
- for i:=black to white do begin
- textcolor(i);
- write('█')
- end;
- 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;
-