struc DeviceParams ; Device parameters for medium dpSpecFunc db ? ; Special functions dpDevType db ? ; Device type dpDevAttr dw ? ; Device attributes dpCylinders dw ? ; Max. no. of cylinders (set by device) dpMediaType db ? ; Medium currently accepted by drive ;; Start of BIOS parameter block (BPB) dpBytesPerSec dw ? ; No. of bytes per sector dpSecPerClust db ? ; No. of sectors per cluster dpResSectors dw ? ; No. of reserved sectors dpFATs db ? ; No. of file allocation tables dpRootDirEnts dw ? ; No. of root-directory entries dpSectors dw ? ; Total no. of sectors (0 if > 32 MB) dpMedia db ? ; Media descriptor dpFATsecs dw ? ; No. of sectors per FAT dpSecPerTrack dw ? ; Sectors per track dpHeads dw ? ; No. of heads dpHiddenSecs dd ? ; No. of hidden sectors dpHugeSectors dd ? ; No. of sectors if dpSectors = 0 ;; End of BIOS parameter block (BPB) ends
; ; dpSpecFunc (Int 21h 440Dh /40h) ; Bit Meaning ; 0 0 = Use dpBytesPerSec through dpHugeSectors to set the ; default BPB for this device. ; 1 = Use the device BPB for all subsequent Build BPB ; requests. ; 1 0 = Read all fields. ; 1 = Ignore all fields, but read the TrackLayout ; structure appended to the end of this structure. ; 2 0 = Do not use. ; 1 = The sectors in the track are all the same size, ; and the sector numbers are in the range 1 through ; the total number of sectors on the track. This bit ; should always be set. ; 3-7 Reserved (must be zero). ; ; ; ; dpDevType ; 00h = 320/360K ; 01h = 1.2 MB ; 02h = 720K ; 03h = 8-inch, single-density ; 04h = 8-inch, double-density ; 05h = Hard disk ; 06h = Tape drive ; 07h = 1.44 MB ; 08h = Read/write optical ; 09h = 2.88 MB ; ; ; ; dpDevAttr ; Bit Meaning ; 0 0|1 = The medium is|isn't removable. ; 1 0|1 = Disk change-line isn't|is supported ; (hasn't|has door-lock support). ; 2-15 Reserved (must be zero). ; ; ; ; dpMediaType ; Specifies which medium the drive currently accepts (for drives ; that accept more than one media type). For a 1.2 MB drive, if ; bit 0 is clear, it indicates, that the drive accepts ; quad-density, 1.2 MB disks (the default media type); if bit 0 ; is set, the drive accepts double-density, 320/360K disks. ; ; ; ; dpSecPerClust ; Specifies the number of sectors in a cluster. The sectors must ; be consecutive, and the number must be a power of 2. ; ; ; ; dpResSectors ; Specifies the number of reserved sectors on the drive, ; beginning with sector 0. Typically, this value is 1 (for the ; startup sector), unless the disk-drive manufacturer's software ; reserves additional sectors. ; ; ; ; dpFATs ; Specifies the number of file allocation tables (FATs) ; following the reserved sectors. Most versions of DOS maintain ; one or more copies of the primary FAT and use the extra copies ; to recover data on the disk if the first FAT is corrupted.