home *** CD-ROM | disk | FTP | other *** search
- procedure page_14;
-
- var
- i : byte;
- xbool : boolean;
- xbyte1 : byte;
- xbyte2 : byte;
-
- begin
- caption2('BIOS disk parameters');
- xbool:=true;
- for i:=$00 to $FF do
- with regs do begin
- AH:=$08;
- DL:=i;
- intr($13, regs);
- if nocarry and ((BL > $00) or (i >= $80)) then
- begin
- if xbool then begin
- xbool:=false;
- writeln;
- caption3('Unit');
- writeln;
- caption3('Type');
- writeln;
- caption3('Drives');
- writeln;
- caption3('Heads');
- writeln;
- caption3('Cylinders');
- writeln;
- caption3('Sectors/track');
- writeln;
- caption3('Specify bytes');
- writeln;
- caption3('Off time (s)');
- writeln;
- caption3('Bytes/sector');
- writeln;
- caption3('Sectors/track');
- writeln;
- caption3('Gap length');
- writeln;
- caption3('Data length');
- writeln;
- caption3('Gap length for format');
- writeln;
- caption3('Fill byte for format');
- writeln;
- caption3('Head settle time (ms)');
- writeln;
- caption3('On time (ms)');
- writeln;
- xbyte1:=27;
- end;
- if xbyte1 + 10 > twidth then begin
- pause1;
- if endit then
- Exit;
- xbyte1:=27;
- window(xbyte1, 4, twidth, tlength - 2);
- clrscr
- end;
- window(xbyte1, 4, xbyte1 + 11, tlength - 2);
- writeln(i);
- if i < $80 then
- case BL of
- $01 : writeln('360KB 5¼"');
- $02 : writeln('1.2MB 5¼"');
- $03 : writeln('720KB 3½"');
- $04 : writeln('1.44MB 3½"')
- else
- writeln('(', hex(BL, 2), ')')
- end
- else
- writeln('fixed disk');
- writeln(DL);
- writeln(DH + 1);
- writeln(cbw(CH, CL shr 6) + 1);
- writeln(CL and $3F);
- if i < $80 then begin
- writeln('$', hex(mem[ES : DI], 2), ' $'
- , hex(mem[ES : DI + $0001], 2));
- writeln(longint(mem[ES : DI + $0002]) shl 16 / tick1 : 0
- : 1);
- xbyte2:=mem[ES : DI + $0003];
- case xbyte2 of
- $00 : writeln('128');
- $01 : writeln('256');
- $02 : writeln('512');
- $03 : writeln('1024')
- else
- writeln('(', hex(xbyte2, 4), ')')
- end;
- writeln(mem[ES : DI + $0004]);
- writeln(mem[ES : DI + $0005]);
- writeln(mem[ES : DI + $0006]);
- writeln(mem[ES : DI + $0007]);
- writeln('$', hex(mem[ES : DI + $0008], 2));
- writeln(mem[ES : DI + $0009]);
- writeln(125 * mem[ES : DI + $000A])
- end;
- inc(xbyte1, 13)
- end
- end;
- if xbool then
- writeln('(no disks)')
- end;