[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Slot 'extender' dev cable



Paul Schlyter wrote:

That's the way CP/M worked too: it merely assumed a particular disk
geometry - and if the disk you inserted had another geometry, well,
tough luck!

AFAIK, this 'limitation' only applies to 5.25 floppy disks.

The practical upshot is that you need to patch the kernel (either on
disk or in RAM after loading) as well as the disk formatter program
(see Understanding Apple ProDOS for the addresses to patch [you will
need to adjust these addresses for more recent versions of ProDOS 8]).

CP/M had a *documented* way of acheiving this, described in the CP/M
alteration guide: each logical disk had a Disk Parameter Table, where
you could specify things as the number of logical sectors (or "blocks"
in ProDOS jargon - a CP/M "block" was only 128 bytes though), the
number of entries in the directory (there were no subdirectories), the
interleave factor, the number of system tracks, the cluster size, etc.
Nowhere on the CP/M disk there was any info about the disk geometry of
that disk.

This is yet another case where Apple preferred the user follow standards instead of changing the system code. I believe it was reasoned; Keep P8 kernel free of patches unlike DOS 3.x which was patched extensively and sometimes caused compatibility issues. Obviously, they would not support a patched version of P8 or problems possibly related to the patched P8.

Also obvious was the fact that this 'ideal' didn't work as well as Apple expected. Consider the need to patch for different year dates.

....but what happens if you then insert a 35-track floppy?  I assume
reading it would be OK, but if you tried to write it, could your patched
ProDOS then attempt to write beyond the last (35'th) track?

In CP/M you could set up two different CP/M volumes to refer to the
same physcial disk - the two volumes could then specify different disk
geometries for that physical disk.

It should be remembered that P8 itself is only the OS kernel and requires a shell environment. Such environments could offer features for disk access as required. However, disk geometries would not be an option due to the methods used for reading/writing of block devices. The main reason (as I understand it) the floppy has a separate driver is because it isn't a block device as such.

Cheers,
Mike T.