Jump to content
IGNORED

SpartaDOS X MyIDE Driver


flashjazzcat

Recommended Posts

I got out my 64K 800XL with an internal flash MyIDE. It has 4.4I installed and works reliably using a Transcend 256MB CF module (the industrial type; not a CF card/adapter). I am using SDX 4.42e in a 1 Mb Maxflash cart.

 

From what the manual says, I presume that the library is enabled by default with the standard SDX configuration. (?)

 

I have no driver loaded. I can load FDISK from APE D2:. It loads fine, but evidently does not find my flash module. (See screen shot below.)

 

Am I doing something wrong, or is FDISK just not seeing the device?

 

-Larry

post-8008-128665971696_thumb.jpg

Link to comment
Share on other sites

I got out my 64K 800XL with an internal flash MyIDE. It has 4.4I installed and works reliably using a Transcend 256MB CF module (the industrial type; not a CF card/adapter). I am using SDX 4.42e in a 1 Mb Maxflash cart.

 

From what the manual says, I presume that the library is enabled by default with the standard SDX configuration. (?)

 

I have no driver loaded. I can load FDISK from APE D2:. It loads fine, but evidently does not find my flash module. (See screen shot below.)

 

Am I doing something wrong, or is FDISK just not seeing the device?

Larry, you're doing nothing wrong at all. What's actually happening here is that FDISK's external device detection routine is messing up the Maxflash SDX cart's banking registers. That's why the dialogue box is empty: FDISK is crashing when it calls the VPRINTF routine in the SDX library (because the library cart bank has been switched out).

 

On Sunday I will release the updated beta driver and a new version of FDISK, both of which will support the "/I" command line switch so that external MyIDE detection will be disabled. When Trub has the beta SDX ROMs ready, the custom CONFIG.SYS files added to CAR: will have the relevant switches set depending on which cartridge hardware is being used so that these kinds of crashes will not happen.

Link to comment
Share on other sites

FDISK running with S_VBXE driver installed:

 

Screengrabs are difficult: FDISK crashes Altirra's MyIDE emulation, and while it works with Atari800, that emulator doesn't have VBXE support (unless I'm very much mistaken).

 

Oops, I guess I never sent out a fixed version of Altirra:

http://www.virtualdub.org/beta/Altirra-1.8-test10.zip

http://www.virtualdub.org/beta/Altirra-1.8-test10-src.zip

 

This version also supports intSDX 128 banking, so you can grab screenshots without working around the $D5xx banking issue.

Link to comment
Share on other sites

Oops, I guess I never sent out a fixed version of Altirra:

http://www.virtualdu...-1.8-test10.zip

http://www.virtualdu...-test10-src.zip

 

This version also supports intSDX 128 banking, so you can grab screenshots without working around the $D5xx banking issue.

It's not often I use the phrase "totally awesome", but this is one of those times... :)

Link to comment
Share on other sites

It's not often I use the phrase "totally awesome", but this is one of those times... :)

 

Yup, Avery and Toni Wilen (author of WinUae) are two of the most fantastic developers in the emulation community. Their drive, knowledge and commitment is just incredible, cheers guys, your quest for perfection is very appreciated.....

Link to comment
Share on other sites

Just got the chance to try this today; the latest FDISK locks up, but the publicly available version locks when writing to the HEAD register when writing out the partition table:

 

post-21964-128670824964_thumb.jpg

 

We're surely getting there, though! icon_smile.gif

 

EDIT: loaded the S_VBXE driver and the latest FDISK ran (albeit with odd colours), but crashed in exactly the same place:

 

post-21964-128670850534_thumb.jpg

Edited by flashjazzcat
Link to comment
Share on other sites

Thanks. I also tried SDX 4.22 (original cart) and it didn't work either -

 

"U_GETKEY" not defined

Loader: Symbol not defined

Indeed. U_GETKEY is required by FDISK and does not exist in pre-4.42 versions. CLX (the SDX filesystem consistency checker) has the exact same dependancy and supplies a program which defines the libary symbol. Download it here:

 

http://drac030.krap.pl/clx17b.arc

 

I'll upload the new driver and FDISK tonight. Thereafter, the next versions of the driver will be on cart ROMs and supplied to private beta testers. PM me if you want to be on the list.

Link to comment
Share on other sites

Rather like waving a flag in space at the moment, but here is the updated driver/FDISK. Note that I don't have an internal MyIDE interface, so I'm prepared for an instant patch tomorrow if someone finds a problem.

 

MYIDESDX_101010.zip

 

  • There is now one driver (MYIDE.SYS) for both types of MyIDE interface (internal and external).
  • The order of interface detection has now been reversed, so that if an internal interface is detected, the external test won't be run and therefore SDX on a Maxflash cart won't crash.
  • Use (and detection) of internal/external interfaces can be set with the /I and /E switches. This applies to the driver and FDISK. It's desirable to, for example, force use of an internal interface so that the external test will never be run even if the internal interface fails the detection test. Again, this avoids the problem of SDX on an AtariMax cart not booting up.
  • FDISK now runs in 80 columns if you have VBXE and the S_VBXE driver installed (note: this feature is somewhat imperfect at the moment, and FDISK locks up on a second run unless you press <Reset> first).

The beta versions of SDX 4.43 will have a CONFIG.SYS which includes either:

 

DEVICE MYIDE /I

 

or

 

DEVICE MYIDE /E

 

The only time the switch can be safely omitted is when the combination internal or external interface plus the cartridge hardware can never cause unwanted clashes. Trub has also offered to include an SDX symbol from which it will be possible for the driver to automatically sense which cartridge hardware it is running on (VERY useful). Hopefully this will be included in the SDX ROM images sent out to the registered beta testers.

 

We will have:

 

IntSDX

Maxflash 1MB

Maxflash 8MB

Maxflash/IDE (for the first time)

 

Only one beta tester has PM'd me so far (bear in mind this is the last public beta).

Edited by flashjazzcat
Link to comment
Share on other sites

Just got the chance to try this today; the latest FDISK locks up, but the publicly available version locks when writing to the HEAD register when writing out the partition table:

 

Uuu, yeah, the halt was due to some debugging code I had left in that exposed a problem with write timing. There's also a verifier message that gets spit out, but you didn't see it since the Output window wasn't up when the violation happened. Apologies:

 

http://www.virtualdub.org/beta/Altirra-1.8-test11.zip

http://www.virtualdub.org/beta/Altirra-1.8-test11-src.zip

 

In the process of debugging this, though, I realized there's a trap with writing to the IDE registers: indexed writes can do bad things, because they issue a false read before the write. The Atari hardware is polite and doesn't do anything if you accidentally issue false reads, but the IDE hardware isn't necessarily so forgiving. It looks like most addresses are OK since they're either read/write or return the status register during BSY=1, but the one that's dangerous is the data register during a write operation. I couldn't find anything in ATA-1 about this, but ATA/ATAPI-4 specifically warns against this:

 

PIO out data transfers are processed by a series of reads to this register, each read transferring the data

that follows the previous read. PIO in data transfers are processed by a series of writes to this register, each

write transferring the data that follows the previous write. The results of a read during a PIO in or a write

during a PIO out are indeterminate.

 

It looks like you are already using non-indexed writes for the data register, but I wanted to note this just in case there was some code that didn't.

Link to comment
Share on other sites

Thanks for the Altirra update. I'll give that a spin a little later. Looking forward to doing VBXE screengrabs! :)

 

Also, the additional info is appreciated. I was in particular unaware of the indexed addressing caveats. However, I believe I experienced many stability issues until I got rid of them. Last night, I finally swept through FDISK and eradicated them all. I'll certainly guard against using them again in future.

Link to comment
Share on other sites

With the help of Hias, Shawn Jefferson, Draco, Trub, and Sijmen (Mr Atari), I'm close to implementing a new LBA partitioning system for MyIDE, together with an SDX driver and attendant FDISK program. The system will cater for hard disks, IDE modules and compact flash cards, in both 8 and 16-bit mode, supporting 512 byte sectors, 15 partitions, 60KB/s read speeds on supported hardware, and compatibility with most SDX and legacy software since there's no need to use a custom OS ROM.

I have been working at getting the MyIDE rom removed. I should have used the two OS setup with switch, but didn't. Also I should have installed a chip holder.

 

I'm looking forward to the new SDXbeta rom that has this code imbedded in the CAR: directory.

Link to comment
Share on other sites

With the new MyIDE SDX driver, I was able to successfully use FDISK to create a new D1: partition on my Transcend module. Loaded the new driver from your ATR and formatted the new drive (60,000) sectors. Copied a big chunk of a previously-made APE SDX HD image to the new drive. It seems to run well. Ran RWTEST V3.5 and got very good speed results as shown (256 bytes/sector). Very nice!

 

-Larry

post-8008-128681518746_thumb.jpg

Link to comment
Share on other sites

With the new MyIDE SDX driver, I was able to successfully use FDISK to create a new D1: partition on my Transcend module. Loaded the new driver from your ATR and formatted the new drive (60,000) sectors. Copied a big chunk of a previously-made APE SDX HD image to the new drive. It seems to run well. Ran RWTEST V3.5 and got very good speed results as shown (256 bytes/sector). Very nice!

Thanks Larry! Great to see some good results from systems other than mine and Hias's. :)

Link to comment
Share on other sites

So can you support MyIDE partitions as well as PBI hardisk partitions at the same time with this?

It's an interesting question. As well as including support for master/slave disks on the same interface, I was considering making an experimental driver which would support an internal and external MyIDE at the same time (IntSDX would probably be a must) once I've built my homebrew internal interface. It would mean you could use an internal disk most of the time, but when backing up or transferring data to the PC, just plug in the external interface with another CF card or drive, and copy the data across in situ (rather than opening up the Atari or having a card slot in the back of the case). In situ-backups and drive-to-drive transfers become quite feasible when an 8MB file can be copied in six minutes.

 

As to whether an internal MyIDE would live with a different PBI device: I see no reason why not. The driver does not preclude the presence of a PBI hard disk (i.e. it doesn't interfere with SDX's normal boot process, and SDX's I/O requests to a PBI device will bypass this driver altogether). Until I've built an internal MyIDE and got my KMK/IDEa working, I cannot verify this, however. If I build an experimental driver, I will pass it around for testing.

Edited by flashjazzcat
Link to comment
Share on other sites

Doesn't look like I'll be able to test master/slave configurations myself: I just tried hooking up two CF card adapters on an IDE cable and the computer wouldn't even boot. Perhaps this will work better with HDDs running off an external power supply.

 

Hi!

 

I understand that the master/slave featzre could be useful to backup one harddisk to another harddisk with the atari itself. But I'm not sure if that feature is going to be of much use for many people. This is especially the case, when considering the fact that the MyIDE hardware only supports a very limited set of devices and that Hias is coding a tool for backup using a much faster PC. Also it seems to be no questions of capacity because most users won't fill up the Transcend 256MB in 32MB partitions very quickly :)

 

please don't get me wrong. this is just my opinion. of course it would be very cool to see this feature supported by the MyIDE devices as well as your driver. but just in case you have to prioritize your development activities and you don't know it yet :) As for me I just can't wait to see the MyIDE+Flash combination running!! REALLY! I CAN'T WAIT :)

 

grtx,

\twh

Link to comment
Share on other sites

I understand that the master/slave featzre could be useful to backup one harddisk to another harddisk with the atari itself. But I'm not sure if that feature is going to be of much use for many people. This is especially the case, when considering the fact that the MyIDE hardware only supports a very limited set of devices and that Hias is coding a tool for backup using a much faster PC. Also it seems to be no questions of capacity because most users won't fill up the Transcend 256MB in 32MB partitions very quickly icon_smile.gif

 

please don't get me wrong. this is just my opinion. of course it would be very cool to see this feature supported by the MyIDE devices as well as your driver. but just in case you have to prioritize your development activities and you don't know it yet icon_smile.gif As for me I just can't wait to see the MyIDE+Flash combination running!! REALLY! I CAN'T WAIT icon_smile.gif

I agree: this may be something of an Icarus scenario. It would indeed have been mighty cool to copy an entire 32MB partition from one card to another in 25 minutes on the Atari, but my hardware went berzerk (the Atari and SIO2SD were flashing on and off) with two CF adapters. I'll get the basic driver finished (which I'm very close indeed to doing), put them on the beta ROMs when Trub sends them over, then worry about extra stuff (such as master/slave support) during the testing phase.

Edited by flashjazzcat
Link to comment
Share on other sites

After lengthy discussion with Draco and Trub, I finally got this driver to install the partition table in an extended bank if SDX is set to reside in banked RAM. At the moment, this saves 256 bytes, so the footprint of the driver in conventional memory is currently 737 bytes on a machine with extended RAM.

Edited by flashjazzcat
Link to comment
Share on other sites

After lengthy discussion with Draco and Trub, I finally got this driver to install the partition table in an extended bank if SDX is set to reside in banked RAM. At the moment, this saves 256 bytes, so the footprint of the driver in conventional memory is currently 737 bytes on a machine with extended RAM.

 

I'm constantly amazed with how much folks like you and the SDX dev team (plus all the other A8 devs out there) are still pushing the humble little 8 bit Atari. I'm seriously considering finding a MyIDE unit just to play with this.

Link to comment
Share on other sites

I'm constantly amazed with how much folks like you and the SDX dev team (plus all the other A8 devs out there) are still pushing the humble little 8 bit Atari. I'm seriously considering finding a MyIDE unit just to play with this.

To think I had once intended to fit an SIO device inside the Atari... I seriously could NOT go back to 10KB/s now. icon_smile.gif

 

EDIT: memory footprint is now 630 bytes.

Edited by flashjazzcat
Link to comment
Share on other sites

Some tests:

 

dos writing 44761 B/sek

dos reading 48770

dos average 46766

 

Card 32 meg canon,one partition, 256 bytes sector, Numen loaded, RW test done, tested on my "kynar made" myide 3.1.

 

Good job. Tommorrow i made more tests on few my atari and difrent memory cards.

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...