home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Masterblend / cdsharewaremasterblend.iso / utils / infoplus / page_07.pas < prev    next >
Pascal/Delphi Source File  |  1990-12-08  |  3KB  |  133 lines

  1. procedure page_07;
  2.  
  3. const
  4.   mouseint = $33;
  5.   mouselang: array [0..8] of string[10] = ('English', 'French', 'Dutch',
  6.           'German', 'Swedish', 'Finnish', 'Spanish', 'Portuguese', 'Italian');
  7.  
  8. var
  9.   xbyte : byte;
  10.   xword1 : word;
  11.   xword2 : word;
  12.  
  13.   begin
  14.   caption2('Keyboard');
  15.   writeln;
  16.   caption3('BIOS support for enhanced keyboard');
  17.   with regs do
  18.     begin
  19.     AH:=$02;
  20.     intr($16, regs);
  21.     xbyte:=AL;
  22.     AX:=$1200 + xbyte xor $FF;
  23.     intr($16, regs);
  24.     if AL = xbyte then
  25.       begin
  26.       write('yes');
  27.       caption3('Enhanced keyboard present');
  28.       yesorno(mem[BIOSdseg : $0096] and $10 = $10)
  29.       end
  30.     else
  31.       writeln('no');
  32. (*  PC Magazine 6:15 p.378  *)
  33.     AH:=$02;
  34.     intr($16, regs);
  35.     offoron('Insert     ', AL and $80 = $80);
  36.     offoron('Caps Lock  ', AL and $40 = $40);
  37.     offoron('Num Lock   ', AL and $20 = $20);
  38.     offoron('Scroll Lock', AL and $10 = $10)
  39.     end;
  40.   caption3('Buffer start');
  41.   xword1:=memw[BIOSdseg : $0080];
  42.   segofs(BIOSdseg, xword1);
  43.   caption3(' end');
  44.   xword2:=memw[BIOSdseg : $0082];
  45.   segofs(BIOSdseg, xword2);
  46.   caption3(' size (keystrokes)');
  47.   writeln((xword2 - xword1) shr 1 - 1);
  48.   caption2('Internal modem/serial printer [PCjr]');
  49.   yesorno(equip and $2000 = $2000);
  50.   caption2('Game port');
  51.   yesorno(equip and $1000 = $1000);
  52.   caption2('Mouse');
  53.   with regs do
  54.     begin
  55.     AX:=$0000;
  56.     intr(mouseint, regs);
  57.     if AX = $FFFF then
  58.       begin
  59.       writeln('yes');
  60.       caption3('Buttons');
  61.       writeln(BX);
  62.       caption3('EGA register support');
  63.       AH:=$FA;
  64.       BX:=0;
  65.       Intr($10, regs);
  66.         if BX <> 0 then
  67.         begin
  68.         Write('yes');
  69.         caption3('version');
  70.         Writeln(Mem[ES:BX], decimal, Mem[ES:BX+1])
  71.         end
  72.       else
  73.         Writeln('no');
  74.       caption3('Save state buffer size (bytes)');
  75.       AX:=$0015;
  76.       intr(mouseint, regs);
  77.       writeln(BX);
  78.       caption3('Mickeys/pixel (horizontal)');
  79.       AX:=$001B;
  80.       intr(mouseint, regs);
  81.       write(BX : 5);
  82.       caption3(' (vertical)');
  83.       writeln(CX : 5);
  84.       caption3('Double speed threshold');
  85.       writeln(DX);
  86.       caption3('Current display page');
  87.       AX:=$001E;
  88.       intr(mouseint, regs);
  89.       writeln(BX);
  90.       caption3('Language');
  91.       AX:=$0023;
  92.       intr(mouseint, regs);
  93.       if AX < $FFFF then
  94.         if BX < 9 then
  95.           Writeln(mouselang[BX])
  96.         else
  97.           unknown('language', BX, 4)
  98.       else
  99.         writeln('N/A');
  100.       caption3('Driver version');
  101.       AX:=$0024;
  102.       intr(mouseint, regs);
  103.       if AX < $FFFF then
  104.         begin
  105.         write(BH, decimal);
  106.         zeropad(BL);
  107.         writeln;
  108.         caption3('Type');
  109.         case CH of
  110.           $01 : writeln('bus');
  111.           $02 : writeln('serial');
  112.           $03 : writeln('InPort');
  113.           $04 : writeln('PS/2');
  114.           $05 : writeln('HP')
  115.           else
  116.             unknown('mouse', CH, 2)
  117.         end;
  118.         caption3('Interrupt');
  119.         case CL of
  120.           $00 : writeln('PS/2');
  121.           $02..$05, $07 : writeln('IRQ', CL)
  122.           else
  123.             unknown('interrupt', CL, 2)
  124.         end
  125.         end
  126.       else
  127.         dontknow
  128.       end
  129.     else
  130.       writeln('no')
  131.     end
  132.   end;
  133.