fujidude Posted August 12, 2015 Author Share Posted August 12, 2015 (edited) Update folks: I have been working on a new revision of the program which will speed up the processing tremendously. Casual use of the program on files which weren't too terribly large wasn't too bad to deal with. But now... I have been able to use multi byte burst transfers in Action! and get this thing on steroids! Thanks to drac030 for offering the feedback. I actually have the new code working just great, but since I am going to issue a new version, I though I might take the opportunity to add a little something extra that I had been thinking about before. And that is informing the user what the size of the input file is, so that the ongoing progress indications are just that much more meaningful. We'll see how that goes. Should be doable, but remember I'm not just writing code similar to a bunch I have written before. A lot of the time is spent figuring out why things aren't working right, rather than just organizing thoughts and laying down the code super quick. Anyway, be watching soon for a new version. It may or may not have the size info, but it will be a FAST version of the program. Edited August 12, 2015 by fujidude 2 Quote Link to comment Share on other sites More sharing options...
fujidude Posted August 12, 2015 Author Share Posted August 12, 2015 Okay here it is, the latest version of AAC, version 1.2. This version has vastly improved I/O speed. It also displays the input file size for convenience. Here is the change log as it currently sits: VERSION DESCRIPTION ======= ==================================================================== 1.2 Enhancement: Major enhancement in file I/O speed. Multibyte "burst" mode now utilized (CIO modes 7 and 11) with a 1KB buffer. Previously, buffering was also used, but only between read and writes. Each read to buffer and write from buffer phase still used single byte get and put routines. Enhancement: Another small enhancement is that now the program notifies the user of the size of the input file. This is handy while AAC is processing and showing updating how much is completed so far. Note that file size is only aproximate, and not precisely accurate. Please also note that XIO 39, which is used to get the file size, does not seem to be supported by the current (as of this writing) PCLINK.SYS driver. This means input file size feature will not work on the PCL: device. AAC traps the error generated (146) when trying to use it on such a device, and will simply skip any attempt to asscertain or use such info. In the event that XIO 39 capability ever gets implemented in the PC-Link driver, AAC will use the capability. 1.1 Bug fix: Program now works properly after running Sparta Comander. Thanks to drac030 for helping to pinpoint the issue to memory location $B7 having garbage in it. Action! uses this location to store which channel is used for output routines such as PutE, which do not specify a channel to use. Misc: Added a notice that the program is free software licensed under the GPL3 in the MAN file as well as the program title screen. Previously this notice was only included in the source code. 1.0 Initial public release. Attached to this posting is a DD SpartaDOS format .ATR disk image. Quote Link to comment Share on other sites More sharing options...
drac030 Posted August 12, 2015 Share Posted August 12, 2015 (edited) Note that file size is only aproximate, and not precisely accurate. Please also note that XIO 39, which is used to get the file size, does not seem to be supported by the current (as of this writing) PCLINK.SYS driver. The file size returned by XIO 39 is precisely accurate as long as the underlying file system provides accurate information. File systems like SpartaDOS FS, FAT FS do provide that, others like Atari DOS FS, CP/M 2.2 FS do not. The PCLINK.SYS driver does implement the required function and with the SIO2BSD file server it works as expected. So it is probably a problem with Altirra's implementation of the file server side of affairs here. Edited August 12, 2015 by drac030 Quote Link to comment Share on other sites More sharing options...
fujidude Posted August 12, 2015 Author Share Posted August 12, 2015 Yes, XIO 39 returns results that are accurate. But it is 24 bits worth of accuracy, and Action! natively just deals with up to 16 bits. So I used the middle significant byte and the MSB to form a card value that contains the number of 256 byte pages in the file. I then divide that by 4 to get a KB count. It's close enough for government work. So the inaccuracy is on my part, not SDX and XIO 39. Thanks for the info on the PCLINK.SYS driver supporting XIO 39. I made an incorrect assumption. Yes I am using Altirra and it's PC Link device and hadn't considered that was the limiting factor. I will update the change.log file and re-upload the package. Thanks again. Quote Link to comment Share on other sites More sharing options...
fujidude Posted August 12, 2015 Author Share Posted August 12, 2015 By the way, how does it work out for you now with the speed improvement? Quote Link to comment Share on other sites More sharing options...
fujidude Posted August 13, 2015 Author Share Posted August 13, 2015 (edited) Okay, here it is again, with the corrected change.log file in the package. VERSION DESCRIPTION ======= ==================================================================== 1.2 Enhancement: Major enhancement in file I/O speed. Multibyte "burst" mode now utilized (CIO modes 7 and 11) with a 1KB buffer. Previously, buffering was also used, but only between read and writes. Each read to buffer and write from buffer phase still used single byte get and put routines. Enhancement: Another small enhancement is that now the program notifies the user of the size of the input file. This is handy while AAC is processing and updating how much is completed so far. Note that file size is accurate to within a Kilobyte. Full byte level accuracy is available from SDX, but in the interest of simplifying programming, it was decided getting within a KB was sufficient. Please also note that XIO 39, which is used to get the file size, does not seem to be supported by the current (as of this writing) implementation of the PCLink server provided by the Altirra Atari emulator. This means input file size feature may not work on the PCL: device under Altirra. AAC traps the error generated (146) when trying to use it on such a device, and will simply skip any attempt to ascertain or use such info. In the event that XIO 39 capability ever gets implemented in the Altirra PCLink server, AAC will use the capability. 1.1 Bug fix: Program now works properly after running Sparta Comander. Thanks to drac030 for helping to pinpoint the issue to memory location $B7 having garbage in it. Action! uses this location to store which channel is used for output routines such as PutE, which do not specify a channel to use. Misc: Added a notice that the program is free software licensed under the GPL3 in the MAN file as well as the program title screen. Previously this notice was only included in the source code. 1.0 Initial public release. aac12.atr Edited August 13, 2015 by fujidude 1 Quote Link to comment Share on other sites More sharing options...
drac030 Posted August 13, 2015 Share Posted August 13, 2015 By the way, how does it work out for you now with the speed improvement? Appears to work fine and the speed is really vastly improved. Thanks! 1 Quote Link to comment Share on other sites More sharing options...
fujidude Posted November 2, 2015 Author Share Posted November 2, 2015 Wow, it's awful late. I'm tired. But I'm sure many of you know how it is when you get on a programming spree. Well, anyway I have now made another version of AAC, only this time, it is a Windows program! It's still uses a CLI (command line, not GUI), but does the job. This is a preliminary release for testing and is version 0.1. Once testing and bug fixes are done, it will get a 1.0 release. I would love for some of you to test it and see if you also find it works (or doesn't) and let me know. If there is anyone interested in testing, but only runs Linux, let me know and I'll see about building a Linux executable. Once it reaches 1.0, I will release 32, 64, Win, Linux versions. I do have some ideas for future enhancements too, but for now let's just test the core. Thanks in advance for your help! Quote Link to comment Share on other sites More sharing options...
fujidude Posted November 2, 2015 Author Share Posted November 2, 2015 I haven't found any problems with it yet. After using the A8 one, which I think performs as well as could be expected, this one just smokes. Of course yeah, it runs on modern computers so it would. But I'm excited. Quote Link to comment Share on other sites More sharing options...
fujidude Posted November 4, 2015 Author Share Posted November 4, 2015 (edited) Hmm. No comments yet and only 5 downloads. Me thinks since it is a new program it should it's own new topic, as I suspect some might assume new posts here are regarding the Atari native program of the same name (but of very different code). So... I am going to do just that. I will make a new topic for the AAC that is made for our modern computers and request discussion about that (if there ever is any LOL) takes place there. This topic thread on the other hand, will remain targeted on the Atari 8-bit version. Thanks for playing. Edited November 4, 2015 by fujidude 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.