Volume icons are placed on the DeskTop according to the position in ProDOS's DEVLST, gaps and all. This is stable for a given system configuration, but is non-intuitive. ProDOS's order is also... curious, e.g. ending up with slots ordered 3, 6, 2, 7, etc, which can make for odd placement. Different versions of ProDOS also order the devices differently, especially w/ SmartPort remapping.
A handful of options:
- Ignore gaps: devices retain the ProDOS order but are densely positioned, starting at the top left of the screen.
- Custom ordering: enumerate in an order that puts e.g. S7D1 at the top left, since that's most likely to be the boot device these days on systems with mass storage. I don't know of an order that would please everyone, though.
- Both (this is my preference)
The benefit of retaining gaps is that the placement on a given system is constant, regardless of the state of removable disks. That may be too subtle for anyone to care about, though.
Enumeration of devices is done in DEVLST order (look for places that call create_volume_icon). Retaining this, either ignoring gaps or custom ordering is straightforward: to ignore gaps, use # of volume icons as index into coords table; to do custom ordering, use the DSSS nibble as an index into an ordering table.
Doing both requires more thinking.
Volume icons are placed on the DeskTop according to the position in ProDOS's
DEVLST, gaps and all. This is stable for a given system configuration, but is non-intuitive. ProDOS's order is also... curious, e.g. ending up with slots ordered 3, 6, 2, 7, etc, which can make for odd placement. Different versions of ProDOS also order the devices differently, especially w/ SmartPort remapping.A handful of options:
The benefit of retaining gaps is that the placement on a given system is constant, regardless of the state of removable disks. That may be too subtle for anyone to care about, though.
Enumeration of devices is done in
DEVLSTorder (look for places that callcreate_volume_icon). Retaining this, either ignoring gaps or custom ordering is straightforward: to ignore gaps, use # of volume icons as index into coords table; to do custom ordering, use the DSSS nibble as an index into an ordering table.Doing both requires more thinking.