Jump to content
Sign in to follow this  
fujidude

AAC (ASCII ATASCII Converter)

Recommended Posts

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 by fujidude
  • Like 2

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

 

 

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 by drac030

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by fujidude
  • Like 1

Share this post


Link to post
Share on other sites

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!

  • Like 1

Share this post


Link to post
Share on other sites

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!

 

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by fujidude

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...