Вернуться к статье
Листинг 1. Определение параметров диска
program DISK_PARM;
const
      Disk = 0;                  (*  0 = текущий, 1 = A:, 2 = B:, ...  *)
type
      Registers = record
                       case boolean
                       of
                          False : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : integer);
                          True  : (AL, AH, BL, BH, CL, CH, DL, DH   : byte)
                  end;
var
      Regs : Registers;
begin
      TextColor (LightGray);
      TextBackGround (Black);
      Regs.AH := $1C;
      Regs.DL := Disk;
      MsDos (Regs);
      if Disk = 0
      then WriteLn ('Параметры текущего диска:')
      else WriteLn ('Параметры диска ' + Chr (Ord ('A') + Pred (Disk)) + ':');
      WriteLn ('-------------------------------');
      WriteLn ('Число секторов в кластере =', Regs.AL : 6);
      WriteLn ('Размер сектора в байтах   =', Regs.CX : 6);
      WriteLn ('Число кластеров на диске  =', Regs.DH * 256.0
                                            + Regs.DL : 6 : 0);
      Halt (0)
end. (* DISK_PARM *) 

Вернуться к статье