I remember that that would mean that the number of sectors of a partition has to be a multiple of the NUMBER_OF_HEADS * NUMBER_OF_SECTORS_PER_TRACK (where that product is identical to a cylinder size) and that a partition has to start on a sector number that is a multiple of that product and, as a consequence, also end on a sector number that is a multiple of that product minus 1.

At least that is the formula that I used when implementing "virtual partition support" (wrapping a "large floppy" type of USB MSD into a partition) in USBMSD.ADD so that LVM and MINILVM would accept such a media as partioned media without complaining.

I vaguely remember that if the media contained a number of sectors that was not a multiple of that product, that it was acceptable if the partition at least ended on a sector number being a multiple of that product minus 1 (and could start at an offset to that product) but it is possible that that is only allowed for the very first partition on a media (that said: the "virtual partition support" only requires exactly 1 partition for the whole media).

There are specific rules for the NUMBER_OF_SECTORS_PER_TRACK that apply to OS/2 and this number varies with the size of the media.

Typically it is 63, if that is not sufficient with the max NUMBER_OF_HEADS being 255 then it is increased to 127 and further increased to 255 in case 127 is still too small.