10

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.

  • ProDOS allows volumes with multiple partitions, my IIgs has a hard disk with ProDOS and HFS partitions to divide up the 256 mb. – Michael Shopsin Apr 25 '17 at 19:01
6

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.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.