Jump to content
Sign in to follow this  
Yosh

Altirra fastest disk settings?

Recommended Posts

Hi

 

As I'm trying to do some comparison / regression / performance testing I would like to ask about fastest drive emulation in Altirra (for loading binaries):

 

- I don't have any bioses for fancier hardware, but all hacks/settings for Altirra are ok (SIO patch, CIO patch)

- Which DOS/loader ? I would pick something with Sparta file system (seems much faster on paper)

- 512 bytes per sector is not possible on pure Alitrra ?

 

Yes I know it will be apples to oranges, but still I have something fun in mind :)

 

Thanks

Share this post


Link to post
Share on other sites

SIO patch enabled via SIOV intercept is the fastest possible drive emulation -- it causes the emulator to intercept supported I/O operations. From the program's point of view, the JSR SIOV call completes instantly (zero cycles). Parallel Bus Interface (PBI) emulation is slightly slower as the 6502 has to execute the parts of SIO to scan for PBI devices before the intercept can occur. However, it will work out of the box with SpartaDOS X, whereas the SIOV hook will only work with that DOS if you explicitly force it to use SIOV (MAP 1 OS on recent 4.4x versions).

 

The fancy drive add-ons aren't going to be faster in the emulator because they don't have a well-defined hook that the emulator can intercept. For those, you'll be limited by the fastest rate that the 6502 can copy data in and out of the device. That's nowhere near as fast as a DMA transfer.

 

Altirra does support 512 byte/sector disk images. If you are using SpartaDOS X and creating the disk image in the emulator instead of through FORMAT, make sure that the boot sector count is set to 0.

 

CIO patch + CIO burst transfer will also transfer in zero time. For this to work, you need an emulator-based CIO device like H:. It won't know how to accelerate D: when that device is controlled by DOS.

  • Like 3

Share this post


Link to post
Share on other sites

Fastest IO I suspect would be using the load executable as it's just injected into Ram (0 cycles?) which in theory might allow some tricky stuff with creative use of segments and Init sections. Though just how useful that might be for your purposes?

Plus it's got the disadvantage that you have a coldstart environment without Dos or anything though of course you could easily enough kludge together a Dos image that just gets injected into Ram and added to the device table etc.

Share this post


Link to post
Share on other sites

Plus it's got the disadvantage that you have a coldstart environment without Dos or anything though of course you could easily enough kludge together a Dos image that just gets injected into Ram and added to the device table etc.

 

Current versions of Altirra have ways around this. You can install H: as D:, or modify the boot options to load the EXE after DOS has booted. Type 3 poll mode will automatically trigger the EXE load with DOS 2.0S, and with other DOSes there is an executable on the Additions disk to trigger the EXE load.

Share this post


Link to post
Share on other sites

 

Current versions of Altirra have ways around this. You can install H: as D:, or modify the boot options to load the EXE after DOS has booted. Type 3 poll mode will automatically trigger the EXE load with DOS 2.0S, and with other DOSes there is an executable on the Additions disk to trigger the EXE load.

 

If H: is set to masquerade as D: how does Altirra handle booting ?

Share this post


Link to post
Share on other sites

 

If H: is set to masquerade as D: how does Altirra handle booting ?

 

Booting is unaffected as D: is a CIO device -- the boot process uses SIO, which doesn't use CIO device names. If DOS boots, it will typically overwrite the D: entry added by the emulator. Otherwise, whatever software does run -- cart or loaded EXE -- will see the emulators D: device and access H: files through it.

Share this post


Link to post
Share on other sites

Yes I have completely forgotten Host Device. This was exactly what I needed on emulator.

 

I always wanted to make compressed video container abusing Atari DOS binary format... so, here it is

(requires fast xex loader - like warpseed host device on Altirra:) )

 

Sections in xex file goes like this:

1) INIT section setups graphic mode

2) RUN section (which will be ran at the end of load) returns to dos and gives calculated throughput (via OS clock)

3) data section for whole first frame

4,..,n) sections with delta to current frame

 

Of course there is no frame sync, no audio...

​Converter and examples are available in movie description. You will need fast xex loader. but you can toy on emulators (on yt warp speed isn't used)

 

 

DOS 2.5 CP is neat, because it understands H: correctly - can stream even big files (just opens them and reads to the end, ignoring file size)

Other doses aren't so smart (even when they see H)

 

Happy new year!

Edited by Yosh
  • Like 4

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.
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...