DPB
This page was last modified 15:04, 2 December 2018 by NYYRIKKI. Based on work by Gdx.

Drive Parameter Block

Under MSX-DOS, DPB are stored into RAM in disk work area for each connected unit, and these contain the unit-specific information. MSX-DOS supports drives with different disk types such as 3.5-inch 2DD or 5-inch 2D. Referring to DPB and performing a processing corresponding to each drive allows to support different media.

The DPB is defined as follows:

Offset: Name: Lenght Description:
0 DRIVE 1 Drive number (0=A, 1=B, etc)
1 MEDIA 1 Media ID.
Format: 11111TSF
             ||+-- 0 if single side, 1 if double side
             |+--- 0 if 9 sec./track, 1 if 8 9 sec./track
             +---- 0 if 80 track, 1 if 40 track
2-3 SECBIZ 2 Sector size (in byte).
4 DIRMSK 1 Folder mask. (SECSIZE/32)-1
5 DIRSHFT 1 Folder shift. Number of 1-bits in DIRMSK
6 CLUSMSK 1 Cluster mask. (Number of sectors per cluster)-1
7 CLUSSHFT 1 Cluster shift. (Number of 1-bits in CLUSMSK)+1
8-9 FIRFAT 2 First sector of the FAT.
10 FATCNT 1 Number of FATs on the disk.
11 MAXENT 1 Maximum number of files/entries on root folder.
12-13 FIRREC 2 First sector of the data area.
14-15 MAXCLUS 2 Maximum number cluster +1.
16 FATSIZ 1 Number sectors per FAT.
17-18 FIRDIR 2 First sector of folders area.
19-20 FATPTR 2 FAT pointer, Address of FAT placed in RAM.