[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DOS 3.3 Nibble Encoding
In article <Nov17.020819.75996@acs.ucalgary.ca> sbdocker@acs.ucalgary.ca (Sean Brendan Dockery) writes:
>
> First, the boot sector obviously conforms to the format of the rest of
> the disk.
>
> My question refers to the fact that the disk controller ROM won't be
> able to decode DOS 3.2.1 and DOS 3.3 formatted disks in the same
> manner as they use different encoding schemes.
A "dual boot" disk is one that will boot on either a 16-sector or
13-sector Disk ][ interface card. The entire disk is in 13-sector
format, apart from track zero, which has 12 or 11 sectors in 13-sector
format (numbered 0-11) and one sector in 16-sector format (numbered
0). The two instances of "sector 0" are distinguished by their
address marks, the third byte of which differs.
If you boot the disk on a 13-sector Disk ][ controller, it will ignore
the 16-sector copy of "sector 0" and will boot from the 13-sector
"sector 0". This contains the normal boot code for the disk.
If you boot the disk on a 16-sector Disk ][ controller, it will
ignore the 13-sector copy of "sector 0" and will boot from 16-sector
"sector 0". This sector contains code which duplicates the function
of the 13-sector Disk ][ controller, so it proceeds by loading the
13-sector copy of "sector 0". The boot then proceeds as with a
13-sector controller.
Dual-boot disks are rare - I've only ever seen them with games.
> I'm not sure if the built-in disk controller ROMs can handle the
> decoding (let alone identifying) both encoding schemes. The basic
> question is whether or not there is enough room for both algorithms.
They can't. The original Disk ][ controller's firmware (and hardware)
only handles 13-sector format. The revised Disk ][ controller
(supplied when DOS 3.3 and Pascal were released) has hardware support
for both formats, but the firmware can only read 16-sector format.
If you want to boot from a standard 13-sector disk and you have a
16-sector controller, you have to boot DOS 3.3 and run the BOOT13 (or
START13) program, which includes code to read the boot sector from a
13-sector disk.
Early versions of DOS 3.3 had a special 'BASICS' disk, which was in
16-sector format. You boot this disk and it asks you to insert a
13-sector disk and press a key. The 13-sector disk is then booted.
The BOOT13 program is basically the same as the BASICS disk, but in a
more convenient format (a BIN program).
> This is the exact problem that I am referring to above. Unless the
> disk controller is explicitly trying to identify a DOS 3.2.1 verus a
> DOS 3.3 format disk, the encoding format (5 and 3 for DOS 3.2.1 and 6
> and 2 for DOS 3.3) is unknown. I imagine that decoding a 5 and 3
> encoded sector with the 6 and 2 decoding algorithm would result in a
> checksum error anyway.
To say the least. The number of data bytes (disk bytes) in the sectors
differs between the two formats.
--
David Empson
dempson@swell.actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand