[Back to DRIVES SWAG index]  [Back to Main SWAG index]  [Original]

{
 ± Anybody know a realitively easy way to determine the file allocation
 ± unit size offa hard/floppy drive??  Pascal source would be prefered over
 ± pascal assembly as I know next to nothing about assembly.
}
{ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ}
Function GetUA(Drive: Byte:LongInt; {0=Default, 1=A, 2=B,..etc .}
Var regs:Registers;
Begin
  regs.ah:=$1C;   { Int 21h, Function 1Ch: Get drive data       }
                  { * Parameters:                               }
  regs.dl:=Drive; {     DL = Drive code                         }
  intr($21,regs); { Call function.                              }
                  { * Returns:                                  }
                  {     AL = Sectors per cluster                }
                  {     DS:DX = Segment:Offset of ID byte       }
                  {     CX = Physical sector length (bytes)     }
                  {     DX = Number of clusters of default unit }
  GetUA:=regs.al*regs.cx; { Returns SPC*SL                      }
End;

[Back to DRIVES SWAG index]  [Back to Main SWAG index]  [Original]