Jump to content
Sign in to follow this  
flashjazzcat

SpartaDOS X APT Driver for the Corvus Hard Disk Controller

Recommended Posts

Since Phaeron added Corvus emulation to Altirra, and considering the excitement which sometimes surrounds these rare vintage HDD controllers, here's an XL/XE Corvus APT driver for SpartaDOS X:

 

corvus_apt_driver_v.0.1.zip

 

This works exactly like the SIDE, MYIDE and Colleen drivers which are already in wide use. Fire up Altirra, add a Corvus via System->Devices..., boot SDX, run CORVUS.SYS and then run the APT partition editor (FDISK) in the usual fashion. Be sure to select XL/XE compatibility (ports 1+2). Volume size is very limited at the moment since only a 6MB HDD is emulated, but it's fun nonetheless.

 

Note: this driver uses the APT partition format, so if you happen to prep a disk (real or emulated), all your old Corvus partitions will be gone.

 

Not sure where this is going, if anywhere, but the next task is to tighten up the driver and make transfers a bit faster (it's very slow at the moment since modularity has resulted in a lot of subroutine calls for every byte transferred). Error checking is non-existent and I have absolutely no idea how this will fare on real hardware. The firmware tracks should be safe since the driver only does block transfers in the user area of the drive.

 

FDISK works transparently with the Corvus with the exception that the Firmware description string spills out of the APT device properties dialog, so I'll fix that eventually. All the APT tools I've tested work with it (APTDISK, APTDEV, etc), and you can explore the disk at the physical or logical level with KMK's excellent EDDY editor. You can even leave your Ultimate/SIDE HDD active and run it alongside the Corvus. Both devices show up in the partition editor.

 

Speaking of Ultimate: if you're using the new BIOS, disable joystick input in the setup menu otherwise the Corvus will move the highlight cursor for you. ;)

 

The driver will eventually sense if it's working on an 800 and configure itself for PORTB, and avail itself of the extra joystick ports Incognito provides in XL/XE mode. Right now, it's XL/XE only.

 

  • Like 6

Share this post


Link to post
Share on other sites

I have been testing this all day, and so far it has performed flawlessly. :)

Share this post


Link to post
Share on other sites

I'm glad I was able to provide a little help. I was planning on providing more help, but I'm not a speed-coder. I was still puzzling over that pdf when you discovered that error status byte thing.

 

I'm just happy that we now have a driver.

 

Really, I think this enhances SDX nicely. We can use the newest hardware, and now, some of the oldest.

  • Like 1

Share this post


Link to post
Share on other sites

Bump!

 

Jon, Any progress on this? I want to send it to someone who has a real Corvus for testing.

  • Like 1

Share this post


Link to post
Share on other sites

The main thing is that it hangs if no Corvus is present. It would be nice if it could gracefully exit so it could be included in the default config.sys. I don't remember if it auto detects ports (1-2) or (3-4) or not...

  • Like 1

Share this post


Link to post
Share on other sites

Ah right... got you. I'll have to dig into it since there's no "detection" code at all: it just assumes the interface is present. I notice several of the status routines (adapted from the Corvus bumph we were originally working from) just loop ad infinitum waiting for bits to change, so a few timers on those should facilitate a way to get out if there's no response.

  • Like 4

Share this post


Link to post
Share on other sites

in true corvus form, it should only exit after 30 seconds to a minute of no response, as it can take that long on real hardware if the corvus and the Atari power up at the same time.. correct?

  • Like 2

Share this post


Link to post
Share on other sites

Ah right... got you. I'll have to dig into it since there's no "detection" code at all: it just assumes the interface is present. I notice several of the status routines (adapted from the Corvus bumph we were originally working from) just loop ad infinitum waiting for bits to change, so a few timers on those should facilitate a way to get out if there's no response.

 

if I can recall, the interface just polls the drive and after a set time limit, in true "corvus network" fashon it would say something like "network offline" - I think you can see it flash for a moment in one of those videos I posted. Before I figured out how to write the firmware to a drive to fix it after a low level format I would see that message all the time. Thanks to everyone who made it possible for me to enjoy a fantastic piece of computing history, and to all you guys keeping it alive for the foreseeable future. And thank you FJC!

  • Like 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...