Yosh Posted November 21, 2018 Share Posted November 21, 2018 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 Quote Link to comment Share on other sites More sharing options...
phaeron Posted November 21, 2018 Share Posted November 21, 2018 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. 3 Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 21, 2018 Share Posted November 21, 2018 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. Quote Link to comment Share on other sites More sharing options...
phaeron Posted November 21, 2018 Share Posted November 21, 2018 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. Quote Link to comment Share on other sites More sharing options...
Alfred Posted November 21, 2018 Share Posted November 21, 2018 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 ? Quote Link to comment Share on other sites More sharing options...
phaeron Posted November 22, 2018 Share Posted November 22, 2018 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. Quote Link to comment Share on other sites More sharing options...
Yosh Posted December 30, 2018 Author Share Posted December 30, 2018 (edited) 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 December 30, 2018 by Yosh 4 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.