14

On the back of this question, it got me thinking that it has always been that ProDOS would only support a ",D1" and ",D2" on a slot, i.e. slot 6 would have two addressible drives. With my 20MB Sider hard disk back in the day, I had only two partitions there as well which mapped /HARD1 to ,S7,D1 and /HARD2 to ,S7,D2.

Ever since I've been playing with emulators that supported hard disks, I did notice that you can have multiple volumes mounted on slot 7. Though ProDOS doesn't seem to allow you to do (say) ,S7,D6, you are able to mount a /HARD6 (to keep with my naming scheme from before).

How did ProDOS allow this behavior? And in the spirit of the question I linked to at the start of this, why wouldn't you be able to mount more than one volume on a floppy controller? The thing which makes it a touch puzzling is that SmartPort devices apparently could map themselves to other slots as needed and also devices such as a CFFA 3000 allow for mapping volumes to multiple slots and exceeding ,D3 conventions.

1
  • 1
    ProDOS allows volumes with multiple partitions, my IIgs has a hard disk with ProDOS and HFS partitions to divide up the 256 mb. Apr 25, 2017 at 19:01

1 Answer 1

9

Update As of the release of ProDOS 2.5 alpha#5, up to 37 drives are supported. This is done by increasing the number of mapped drives per slot from 2 to 8, which would theoretically allow 56 drives. However, there is only enough reserved memory for the table of unit numbers to hold up to 37 entries.

ProDOS, being an 8-bit OS designed to run in 64K, uses very small and efficient internal data structures to map logical entities, like your volume /HARD6 to physical hardware entities. Specifically, ProDOS maps its block devices (all disk drives) to unit numbers that are 1-byte long with the high 4-bits specified as DSSS, where D is the drive and SSS is the slot. Since D is only one bit, only 2 drives are supported. Since SSS excludes the value 0, 7 slots are supported (just like the hardware has slots 1 through 7). So, there is a limit of 14 unique unit numbers, and that means a limit of 14 physical drives (or partitions, since partitions are handled by the HD controller).

SmartPort controllers support more than 2 drives for a single slot, and can theoretically support up to 127 devices. During initialization, when ProDOS encounters a SmartPort controller with more than two drives, it uses mirroring to map the additional drives to unit numbers associated with different slots. So, four SmartPort drives connected via slot 5 will be mapped by ProDOS: S5,D1 S5,D2 S2,D1 S2,D2. Each of those 4 drives will also have a logical volume based on the name of the disk. So, that is how you end up with a /HARD3 and /HARD4 that are assigned to slot 2, even though the actual card in slot 2 is probably a serial card.

Much more detail about this is available in ProDOS 8 Technical Note #20.

2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .