Catweasel online manual for the Amiga versions

Click here for page Title 1 2 3 4 5 6 7 8 9 10 11 12 13 14

for 5.25" drives spinning at 360 RPM:

 16  Commodore64 1541              170   Kbytes          single-sided
 17  MS-DOS HD                    1200   Kbytes          double-sided
 18  MS-DOS DD 40 Track            360   Kbytes          double-sided
 19  Amiga DD                      880   Kbytes          double-sided
 20  MS-DOS DD 80 Track            720   Kbytes          double-sided
 21  MS-DOS DD                     180   Kbytes          single-sided
 22  Apple IIe                     140   Kbytes          single-sided
 23  Atari 800 XL                  130   Kbytes          single-sided
 24  Atari 800 XL                  180   Kbytes          single-sided

Other numbers will return an error (error on OpenDevice()). Multidisk.device can't check the type of the drive. It doesn't even check the presence of a drive, so it's up to you to choose the correct unit number and the correct flags number. Choosing wrong numbers will simply cause a lot of unreadable disks.

Surfaces = 2

This is the number of read/write heads accessing the disk. You must enter the correct value here, otherwise your disk will have a wrong size, and formatting such a disk may destroy data! Please look at the table above for the correct number of surfaces.

BlocksPerTrack = 11

This is the number of datablocks on a track. Mind the difference between a track and a cylinder: A track is always associated with a full revolution of the disk accessed with one read/write head. A cylinder is associated with a full revolution accessed with all the heads available, therefore the number of blocks per cylinder is Surfaces * BlocksPerTrack, so in this case you have 22 datablocks on a cylinder.

Reserved = 2

This is the number of blocks that shall not be used by the filesystem from the beginning of a disk. The two blocks of the Amiga 880K-disk are reserved for the bootblock. If you'd choose this value too small, you might destroy data on the disk by using the install command. It's better to change this value only for testing purposes.

mask = 0x7ffffffc

This value is a bit difficult to understand. If multidisk.device receives the command to transfer data, this value is a logical AND-mask for the start-address. The idea is to reduce hardware requirements when designing a DMA controller if you can rely on the lower address bits being zero. The Catweasel only accesses it's own memory directly, so this value isn't really important. We have set the upper bit to zero because the Amiga uses a 31 bit address space. The lower two bits are set zero to make the start-address longword-aligned, so the performance of the controller is always the same.



This document © Copyright 2000 Jens Schönfeld, individual Computers.