[Coco] MM/1 question
Dave Kelly
daveekelly at earthlink.net
Fri Nov 7 23:48:00 EST 2003
On Thursday 06 November 2003 07:34 pm, you wrote:
> Are there any MM/1 owners out there who have large drives in their MM/1?
>
> I'm trying to put a 1G drive in. The MM/1 recognises and formats the drive,
> I can write to it, and read from it OK. But the darned thing WON'T BOOT!
I am posting this information for use by anyone that might derive some
benefit for it. I have an MM1 - AT68306 manufactured by Kreider Electronics
and came with OS-9/68000 version 3.0.
This information is taken from the tech manual. I do not know if this is
Kreider speaking or Kevin Pease who designed the hardware. This has a
September 27, 1995 publication date.
I make the standard disclaimer. I have tried to check for spelling and
accuracy against the original document. If anythings wrong, its your fault.
Dave
HARD DISKS
The hard disk descriptors provided are named as I use them. Again, you
can change them by changing there source files and remaking, moded, or a
binary file editor. The convention used ( where x is a number in 0.6 and y
is letter ) is:
hx - whole IDE hard disk, limited to tow
hxfmt - IDE formatting descriptor, not format protected
hxy - partition y on an IDE hard disk x
sdx - whole SCSI hard disk
sdxfmt- SCSI formatting descriptor, not format protected
sdxy - partition y on an SCSI hard disk x
Both IDE and SCSI drives use 512 byte sectors.
The large disks available today present a bit of a problem with OS-9/68000.
The bit map size on any disk is limited to 64K bytes. Thus only 512K
sectors can be addressed by th bit map. This limits the disk size of 256M
byte, However, one can use Microware's concept of clusters to address this
problem. By considering 2, 4, 8, etc sectors as a cluster, the bit map can
now address 512M bytes, 1024M bytes, 2048M bytes, etc. This is
accomplished by using th e-c=<num> option of format. There is, however, a
performance penalty associated with this method. It can be reduced by
using cache, but it still exists.
My preference is to partition the drive into logical disk. The mechanism is
to increment the port address by one for each partition. The bass address
is be saved for a raw or whole device. Partition on then base+1, two is
base+2 and so on. There can be sixteen partitions all together, since the
least four bits of the address are used for partitions, the PD_TotCyls field
is set to the total cylinders on the drive while PD_CYL is set to the
number of cylinders on the partition. PD_LSNOffs is set to the base LSN of
the partition. For example, assume a 400MB drive with 819200 sectors. The
physical layout of the disk is no a concern to us since OS-9/68000
considers a disk to be a linear array of blocks. But to convince OS-9/68000
to format a partition, we need to provide some fictitious parameters. If
we assume 64 sectors per track and 8 heads per cylinder, we get a capacity
of 1M byte per cylinder, and therefore 1600 cylinders. If we assume 64
sectors per track and 32 heads per cylinder, we get a capacity of 1M byte
per cylinder, and therefore 400 cylinders. Using these parameters for our
example, we next choose the partition size, A partition size of 100M bytes
would mean 100 cylinders. That is the number to use for PD_CYL in the
descriptor. PD_TotCysl would be set to 400, PD_SID would be set to 32m and
both PD_SCT and PD_TOS would be set to 64. Since this is the first
partition, PD_LSNOffs would be 0. A second partition of the same size would
use the same values except PD_LSNOffs, which would be 204800,, which is
100 cylinders time 32 heads per cylinder time 64 sectors per track.
Similarly, PD_LSNOffs for third and fourth 100M partition would be 409600
and 614400 respectively. IF the drive needs to be physically formated, it
must be done using a descriptor that describe the whole disk. The
logically format each partition with its descriptor, This will prepare the
drive for use.
The IDE driver ignores PD_ScsiOpt but both IDE and SCSI drives honor bits
in the PC_Cntl field.
Bit 0 prevents formatting when set to one. This helps prevent accidental
overwrtie of the hard disk. The hxfmt descriptors have bit 0 set to zero
to allow formatting and should be loaded from disk for the rare times
that you format.
Bit 1 enable multi-sector I/O when set to one. This will improve
throughput.
Bit 2 us set for any device with removable media, like Syquest 555 drives.
This would only apply for SCSI drives.
Bit 3 is set for either SCSI or IDE drives that auto-size. This include
all embedded SCSI drives and most IDE drives. In this case, the fields in
the descriptor that specify the drive geometry (PD_CYL, PD_SID, PD_SCT,
PD_TOS, PD_ILV, PC_TotCyls ) should be set to zero, since the drive will be
queried by th driver for their values. However, for older drives that do
not auto-size, these parameters must be set to real values.
Bit 4 is set if the device can format a single track. This is generally
not true for embedded SCSI drives, but certain controllers can do this, It
should be noted that many of the drives ( both SCSI and IDE ) currently
available today cannot be physically formatted by the user.
As a side note.
I put a 2 gig drive on my 306. Had trouble formatting. Finally let the
software auto-size the drive and it came up with 4096 sector cluster.
I personally never did get the above information to work. But I don't know
that much about partitioning drives either.
More information about the Coco
mailing list