Corvus hard drive

From: Michael Current (aa700@cleveland.Freenet.Edu)
Date: 11/19/94-04:12:55 PM Z

From: aa700@cleveland.Freenet.Edu (Michael Current)
Subject: Corvus hard drive
Date: Sat Nov 19 16:12:55 1994

From: (Frank Seipel)
Date: Sat, 5 Nov 94 04:48:48 GMT

The Corvus to Atari 8-bit interface uses exactly two joystick ports -- ports
3 & 4.  It was designed for use on an Atari 8oo, but could conceivably run
on an 800XL or 130XE.  The main modification required would consist of
changing all references to PORTB to PORTA, and all references to PBCTL to
PACTL.  Since the standard Atari OS doesn't recognize a Corvus, it cannot
boot from one.  Thus you must either boot from 1) a floppy which then boots
DOS.SYS from the Corvus [this was supplied with the Corvus drive] 2) a
cartridge which fits in the right hand slot (I've never seen one, but they
exist) or 3) [best option] acquire a replacement personality board
(Integrator) which allows you to boot from any Corvus volume, any floppy
drive, or your Axlon/Axlon compatible RAMdisk.  or 4) a cassette containing
the code to boot DOS.SYS from the Corvus [a program to write such a boot
cassette was provided with Corvus's Atari
8-bit software package that came with the drive].

To run a Corvus on an XL/XE, with an Integrator personality board or the
cartridge boot system, you would have to burn custom EPROMS of the modified
software, since both the software to be modified is on ROM chips.

The Corvus does not *have* to use a custom OS board.  The Integrator board
is an option.  I highly recommend it, though, since it adds direct operating
system support of Axlon RAMDISKS, allows you to swap any physical drive with
any device number (D1: through D8:), allows quick changes to the Corvus
mount table, and allows you run MyDos and full disk programs on your hard
drive, as opposed to the modified DOS 2.0D which you are forced to use if
you don't have the Integrator.  What Mr. Corr said of SIO is true; the
Integrator only works with DOS's that use legal SIO calls to access the
drive, hence SpartaDOS X and SpartaDOS will not support the Corvus.  The
Integrator, regrettably, does not overcome the problem of partition size; it
is still only possible to have 180K partitions on a Corvus using the
integrator.  A patch for MyDos could be written to overcome this.  This
would be a very short patch, since the Integrator would do almost all the
work of swapping partitions (see below).  The SIO calls in MyDos would be
patched (namely, the read and write sector vectors).  This would be the
extent of the patch.  Prior to calling the built-in ROM SIO routines, the
patch would:

1. Divide the sector number by 720 and store the remainder of the division.
2. The whole number result of the division in step [1] would be the Corvus
   volume number that the sector resides on.  The volume number would be
   incremented by one, since the Corvus volume numbers begin at one instead
   of zero.  The remainder of the division would correspond to the sector
   number on that volume.  The one-byte volume number would be stored in
   RAM as the 'current volume' following step [3].
3. The patch would check to see if the drive number (eg D1:) in question is 
   presently set to the 'current volume' calculated in step [1].
4. If the drive were not presently on that volume a JSR would be made to
   $C000 in the Integrator ROMS.  This configuration routine is built into
   the integrator and fully documented within the integrator manual.  This
   would reconfigure that drive number (eg D1:) to the volume number
   calculated in step [1].
5. The sector number would be changed to the remainder of the division from
   the calculation in step [1].  Thus, sector 725 would correspond to sector
   5 (remainder of 725 divided by 720).  Similarly, the volume number would
   be the integral part of the division plus one -- thus sector 725 would be
   on volume 2)
6. The patch would proceed to call the built-in ROM SIO routine, which would
   then get or put the appropriate sector number on the appropriate volume.
   Note that this patch would work for everything -- even directory reads --
   since MyDos would be seeing the Corvus as one large drive.  Also, delays
   due to volume changes would not be excessive, since the configuration
   command would only be issued at 720-sector intervals.

I do not believe any such patches were ever written but I think I've
demonstrated the necessary logic to do the deed.  MyDos doesn't pay much
attention to checking if a configuration is legitimate, so you would just
specify the number of sectors and tracks corresponding to six megs, ten
megs, or twenty megs, and use the [I] command from the DOS menu to write out
a legitimate directory structure.  Once the patch is installed with the
modified directory structure, it would work like a charm.  Whenever a sector
above 720 is accessed, the patch would catch it.  The format XIO call would
not need to be altered; the integrator ignores this anyway.  Incidentally,
David & Sandy Small were geniuses; they might have already implemented the
patch into the OS; what happens when you try to access above sector 720? 
Does it lock up, or does it automatically change volumes, or give an error?

Finally, regarding speed: I once did a comparison of the speed of the Corvus
vs the Blackbox hooked to an SCSI drive.  I don't recall the exact results,
but the data rate was comparable.  The joyports are plenty fast; the problem
is the software.  One advantage of the joyports is that (had the software
supported it) the drives would work with every single 8-bit computer ever
made, without any adapters.  The cartridge port would have the same
advantage as an interface.  Not supporting all platforms is one of the
disadvantages of all existing HD interfaces, except for the ATR8000, which
is slow and doesn't support SCSI.

Frank Seipel                                            (614) 622-1653
Michael Current, Keeper of the 8-Bit Atari FAQ & Vendor/Developer Lists
 Cleveland Free-Net Atari SIGOp: aa700 /

Return to message index