home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / windows / infop141.zip / PAGE_14.PAS < prev    next >
Pascal/Delphi Source File  |  1990-12-08  |  3KB  |  114 lines

  1. procedure page_14;
  2.  
  3. var
  4.   i : byte;
  5.   xbool : boolean;
  6.   xbyte1 : byte;
  7.   xbyte2 : byte;
  8.  
  9.   begin
  10.   caption2('BIOS disk parameters');
  11.   xbool:=true;
  12.   for i:=$00 to $FF do
  13.     with regs do
  14.       begin
  15.       AH:=$08;
  16.       DL:=i;
  17.       intr($13, regs);
  18.       if nocarry and ((BL > $00) or (i >= $80)) then
  19.         begin
  20.         if xbool then
  21.           begin
  22.           xbool:=false;
  23.           writeln;
  24.           caption3('Unit');
  25.           writeln;
  26.           caption3('Type');
  27.           writeln;
  28.           caption3('Drives');
  29.           writeln;
  30.           caption3('Heads');
  31.           writeln;
  32.           caption3('Cylinders');
  33.           writeln;
  34.           caption3('Sectors/track');
  35.           writeln;
  36.           caption3('Specify bytes');
  37.           writeln;
  38.           caption3('Off time (s)');
  39.           writeln;
  40.           caption3('Bytes/sector');
  41.           writeln;
  42.           caption3('Sectors/track');
  43.           writeln;
  44.           caption3('Gap length');
  45.           writeln;
  46.           caption3('Data length');
  47.           writeln;
  48.           caption3('Gap length for format');
  49.           writeln;
  50.           caption3('Fill byte for format');
  51.           writeln;
  52.           caption3('Head settle time (ms)');
  53.           writeln;
  54.           caption3('On time (ms)');
  55.           writeln;
  56.           xbyte1:=27;
  57.           end;
  58.         if xbyte1 + 10 > twidth then
  59.           begin
  60.           pause1;
  61.           if endit then
  62.             Exit;
  63.           xbyte1:=27;
  64.           window(xbyte1, 4, twidth, tlength - 2);
  65.           clrscr
  66.           end;
  67.         window(xbyte1, 4, xbyte1 + 11, tlength - 2);
  68.         writeln(i);
  69.         if i < $80 then
  70.           case BL of
  71.             $01 : writeln('360KB 5¼"');
  72.             $02 : writeln('1.2MB 5¼"');
  73.             $03 : writeln('720KB 3½"');
  74.         $04 : writeln('1.44MB 3½"');
  75.         $05 : Writeln('2.88MB 3½"')
  76.       else
  77.         writeln('(', hex(BL, 2), ')')
  78.       end
  79.     else
  80.       writeln('fixed disk');
  81.     writeln(DL);
  82.         writeln(DH + 1);
  83.         writeln(cbw(CH, CL shr 6) + 1);
  84.         writeln(CL and $3F);
  85.         if i < $80 then
  86.           begin
  87.           writeln('$', hex(mem[ES : DI], 2), ' $'
  88.             , hex(mem[ES : DI + $0001], 2));
  89.           writeln(longint(mem[ES : DI + $0002]) shl 16 / tick1 : 0
  90.             : 1);
  91.           xbyte2:=mem[ES : DI + $0003];
  92.           case xbyte2 of
  93.             $00 : writeln('128');
  94.             $01 : writeln('256');
  95.             $02 : writeln('512');
  96.             $03 : writeln('1024')
  97.           else
  98.             writeln('(', hex(xbyte2, 4), ')')
  99.           end;
  100.           writeln(mem[ES : DI + $0004]);
  101.           writeln(mem[ES : DI + $0005]);
  102.           writeln(mem[ES : DI + $0006]);
  103.           writeln(mem[ES : DI + $0007]);
  104.           writeln('$', hex(mem[ES : DI + $0008], 2));
  105.           writeln(mem[ES : DI + $0009]);
  106.           writeln(125 * mem[ES : DI + $000A])
  107.           end;
  108.         inc(xbyte1, 13)
  109.         end
  110.       end;
  111.   if xbool then
  112.     writeln('(no disks)')
  113.   end;
  114.