651
edits
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
[[category:Specifications]] | [[category:Specifications]] | ||
IDEDOS is a hard disk formatting scheme designed for ZX Spectrum computers and clones. It was designed by Garry Lancaster for his [[+3e]] ROMs, and extended by Jarek Adamski to support his ZXVGS, CPM22QED and YaPaDOS operating systems. | IDEDOS is a hard disk formatting scheme designed for ZX Spectrum computers and clones. It was designed by Garry Lancaster for his [[+3e]] ROMs and ResiDOS RAM based operating system, and extended by Jarek Adamski to support his ZXVGS, CPM22QED and YaPaDOS operating systems. | ||
==Format== | ==Format== | ||
Line 28: | Line 28: | ||
IDEDOS Partition entry - 64 bytes | IDEDOS Partition entry - 64 bytes | ||
0x0000 PN PN PN PN PN PN PN PN PN PN PN PN PN PN PN PN | 0x0000 PN PN PN PN PN PN PN PN PN PN PN PN PN PN PN PN | ||
0x0010 PT SC SC SH EC EC EH LS LS LS LS | 0x0010 PT SC SC SH EC EC EH LS LS LS LS SS V1 V2 V3 V4 | ||
0x0020 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | 0x0020 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | ||
0x0030 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | 0x0030 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | ||
Line 41: | Line 41: | ||
LS: largest logical sector. 32 bit little endian word. | LS: largest logical sector. 32 bit little endian word. | ||
XX: partition type specific data. | XX: partition type specific data. | ||
(Virtual Geometry for Disk Image partitions) | |||
SS: Sector Shift. | |||
V1: Virtual Sector Size (0-128B, 1-256B, 2-512B, 3-1024B). | |||
V2: Virtual first sector number (0 to 240). | |||
V3: Virtual heads. | |||
V4: Virtual sectors. | |||
</pre> | </pre> | ||
====Partition Types==== | |||
There are numerous partition types [http://8bit.yarek.pl/system/fs.idedos/index.html defined] | There are numerous partition types [http://8bit.yarek.pl/system/fs.idedos/index.html defined] | ||
Line 65: | Line 74: | ||
</pre> | </pre> | ||
====The IDEDOS System Partition | =====Partition Type 0x01 - The IDEDOS System Partition===== | ||
The first partition entry in the partition table is the IDEDOS system partition. | The first partition entry in the partition table is the IDEDOS system partition. | ||
The starting head and ending head are either zero or one depending on where the partition table has been written. | The starting head and ending head are either zero or one depending on where the partition table has been written. | ||
Line 85: | Line 94: | ||
EA: +3 BASIC editor attribute byte | EA: +3 BASIC editor attribute byte | ||
DD: plus3dos default drive letter | DD: plus3dos default drive letter | ||
??: | ??: unused | ||
</pre> | </pre> | ||
====Partition Type 0x03 - +3DOS==== | =====Partition Type 0x03 - +3DOS===== | ||
The [[+3e|+3e ROMs]] create partitions of type 0x03 i.e. [[+3DOS]] partitions. The type specific data portion of the Partition Entries for these partitions contain a [[+3DOS#XDPB|+3DOS XDPB (eXtended Disc Parameter Block)]] between 0x0020 to 0x003A and also the +3DOS drive letter to which the partition has been mapped (if any) | The [[+3e|+3e ROMs]] create partitions of type 0x03 i.e. [[+3DOS]] partitions. The type specific data portion of the Partition Entries for these partitions contain a [[+3DOS#XDPB|+3DOS XDPB (eXtended Disc Parameter Block)]] between 0x0020 to 0x003A and also the +3DOS drive letter to which the partition has been mapped (if any) | ||
Line 100: | Line 109: | ||
DP: +3DOS extended disk parameter block byte | DP: +3DOS extended disk parameter block byte | ||
DL: plus3dos drive letter | DL: plus3dos drive letter | ||
??: | ??: unused | ||
</pre> | </pre> | ||
Line 132: | Line 141: | ||
</pre> | </pre> | ||
====Partition Type 0xFF - Free Space==== | =====Partition Type 0x3x - Non-CP/M Disk Image Partitions===== | ||
For partitions containing non-CP/M floppy disk images the type specific information defines a virtual geometry. More than one disk image partition can be present on each track, i.e. the partitions do not have to align to track boundaries. | |||
This is achieved by specifying a sector shift in the partition table entry. For example for a disk with 980 cylinders, 5 heads, 17 sectors per track and 512 bytes per sector, a 800kB partition takes 1600 sectors which is equal to 18 cylinders + 4 tracks + 2 sectors, so the shift for next partition is 2. | |||
=====Partition Type 0xFF - Free Space===== | |||
A Type 0xFF partition entry as created by the +3e ROMs is all blank except for the type byte and the location and size information. The type specific information is not used. | A Type 0xFF partition entry as created by the +3e ROMs is all blank except for the type byte and the location and size information. The type specific information is not used. |