651
edits
(Created page with "==Foo== ==eXtended Disk Parameter Block==") |
No edit summary |
||
Line 2: | Line 2: | ||
==eXtended Disk Parameter Block== | ==eXtended Disk Parameter Block== | ||
Each logical drive in +3DOS has an extended disk parameter block. This is a [[CP/M]] disk parameter block (DPB) with additional information to support different formats. | |||
When a disk is logged on the XDPB is initialised and set with the relevant settings for the disk format in use. | |||
The Plus 3 manual describes the XDPB layout: | |||
<pre> | |||
Bytes 0...1 SPT records per track | |||
Byte 2 BSH log2(block size / 128) | |||
Byte 3 BLM block size / 128 - 1 | |||
Byte 4 EXM extent mask | |||
Bytes 5...6 DSM last block number | |||
Bytes 7...8 DRM last directory entry number | |||
Byte 9 AL0 directory bit map | |||
Byte 10 AL1 directory bit map | |||
Bytes 11...12 CKS size of checksum vector (bit 15 = permanent) | |||
Bytes 13...14 OFF number of reserved tracks | |||
Byte 15 PSH log2(sector size / 128) | |||
Byte 16 PHM sector size / 128 - 1 | |||
Byte 17 Bits 0...1 Sidedness | |||
0 = Single sided | |||
1 = Double sided (alternating sides) | |||
2 = Double sided (successive sides) | |||
Bits 2...6 Reserved (set to 0) | |||
Bit 7 Double track | |||
Byte 18 Number of tracks per side | |||
Byte 19 Number of sectors per track | |||
Byte 20 First sector number | |||
Bytes 21...22 Sector size | |||
Byte 23 Gap length (read/write) | |||
Byte 24 Gap length (format) | |||
Byte 25 Bit 7 Multi-track operation | |||
1 = multi-track | |||
0 = single track | |||
Bit 6 Modulation mode | |||
1 = MFM mode | |||
0 = FM mode | |||
Bit 5 Skip deleted data address mark | |||
1 = skip deleted data address mark | |||
0 = don't skip deleted address mark | |||
Bits 0...4 = 0 | |||
Byte 26 Freeze flag | |||
00h (0) = auto-detect disk format | |||
FFh (255) = don't auto-detect disk format | |||
Byte 25 is normally set to 60h (96). Multi-track operation is not | |||
recommended. | |||
Setting the freeze flag (byte 26) prevents +3DOS from trying to | |||
determine the format of a disk. This should be used when patching an | |||
XDPB for a non-standard format. | |||
</pre> | |||
It also gives examples of the XDPB for three different formats. | |||
The AMSTRAD PCW range single track format (type 0) (As used by the +3): | |||
<pre> | |||
36 SPT, records per track | |||
3 BSH, block shift | |||
7 BLM, block mask | |||
0 EXM, extent mask | |||
174 DSM, number of blocks - 1 | |||
63 DRM, number of directory entries - 1 | |||
C0h (192) AL0, 2 directory blocks | |||
00h (0) AL1 | |||
16 CKS, size of checksum vector | |||
1 OFF, reserved tracks | |||
2 PSH, physical sector shift | |||
3 PHM, physical sector mask | |||
0 Single sided | |||
40 Tracks per side | |||
9 Sectors per track | |||
1 First sector number | |||
512 Sector size | |||
42 Gap length (read/write) | |||
82 Gap length (format) | |||
60h (96) MFM mode, skip deleted data address mark | |||
0 Do auto select format | |||
</pre> | |||
The AMSTRAD CPC range SYSTEM format (type 1) | |||
<pre> | |||
36 SPT, records per track | |||
3 BSH, block shift | |||
7 BLM, block mask | |||
0 EXM, extent mask | |||
170 DSM, number of blocks - 1 | |||
63 DRM, number of directory entries - 1 | |||
C0h (192) AL0, 2 directory blocks | |||
00h (0) AL1 | |||
16 CKS, size of checksum vector | |||
2 OFF, reserved tracks | |||
2 PSH, physical sector shift | |||
3 PHM, physical sector mask | |||
0 Single sided | |||
40 Tracks per side | |||
9 Sectors per track | |||
41h (65) First sector number | |||
512 Sector size | |||
42 Gap length (read/write) | |||
82 Gap length (format) | |||
60h (96) MFM mode, skip deleted data address mark | |||
0 Do auto select format | |||
</pre> | |||
Finally the AMSTRAD CPC range DATA ONLY format (type 2) | |||
<pre> | |||
36 SPT, records per track | |||
3 BSH, block shift | |||
7 BLM, block mask | |||
0 EXM, extent mask | |||
179 DSM, number of blocks - 1 | |||
63 DRM, number of directory entries - 1 | |||
C0h (192) AL0, 2 directory blocks | |||
00h (0) AL1 | |||
16 CKS, size of checksum vector | |||
0 OFF, reserved tracks | |||
2 PSH, physical sector shift | |||
3 PHM, physical sector mask | |||
0 Single sided | |||
40 Tracks per side | |||
9 Sectors per track | |||
C1h (193) First sector number | |||
512 Sector size | |||
42 Gap length (read/write) | |||
82 Gap length (format) | |||
60h (96) MFM mode, skip deleted data address mark | |||
0 Do auto select format | |||
</pre> | |||
====The +3e ROMs==== | |||
Garry Lancaster's [[+3e|+3e ROMs]] patch the XDPB to support the +3DOS filesystem on hard disk partitions. |