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 *)
Вернуться к статье