ai64 allows you to comvert complete directory structures containing c64 programs into IDE64 compatible copy of the whole structure. For example try running it on a complete copy of Arnold Game Archive, before burning a CD for IDE64 usage. Most of the archive will be converted to prg and d64 files. The program is licensed under GPL v3.
Latest version: v1.4, released on 25th of March, 2010.
You can see a demo of what this program can make from the various zip, rar, zipcode, lnx, t64, d64 and more archive files on the c64.rulez.org FTP site.
400kb HTML file list: ai64 demo result.
||Which makes it possible to run PHP programs from the command line. Normally part of all GNU/Linux distros, on Mandriva Linux it is the "php-cli" package.
|GNU/Linux or Unix
||Tested on Linux only. Windows compatible filename generation is now supported, Windows platform support is planned (never tested).
|unzip||Command line unzip to decompress the files.|
|unrar||Command line unrar to decompress the files.|
|tar||Command line tar to decompress the files.|
|gzip||Command line gzip to decompress the files.|
||Zipcode to d64 converter by Marko Makela.
||Marko Makela's converter masterpiece to handle all the c64 file formats (tested with v2.1.2).
|c1541||Command line utility, part of Vice emulator (tested with v2.2).
||[Not needed if you use Vice c1541] This is a little C program I made years ago, included in ai64 download.
The program will walk recursively in the sepcified source directory, convert all files to c64 usable format and copy them into the destination directory structure. Thus from all your ZIP, T64, etc files, you will just have a big directory which is directly usable on your IDE64 CDROM.
Currently the following formats are handled (anything can be nested, e.g. d64 in zip and so on):
||not copied (D64 extraction dirt)|
|ZIP||uncompressed and re-processed|
||extraced if 1 file only and BAM is valid. Hi-score files - if identified - are ignored if there is only 1 more file. Some BAM validation messages in names/headers are taken into consideration.)|
||extraced to files (if there is a single file named "FILE" is inside, the name of the original t64 is used when saving it to prg.)|
|P00||extracted to normal files|
|PRG||copied as is|
|TAR||extracted and re-processed|
|GZ||extracted and re-processed|
|TGZ||extracted and re-processed|
|RAR||extracted and re-processed|
|LNX||converted to d64 and re-processed|
|ZIPCODE||(1!,2!..) converted to d64 and re-processed|
Files starting with dot are not copied (Unix hidden files, FTP site messages).
Not listed files: copied as is.
Support is missing for: BZIP2, LHA (lzh).
All the stored files are saved with characters which are readable on C64. Filenames are converted to 16 + extension, IDE64 can handle this length (requires 0.9x or higher IDEDOS). Already existing files are not overwritten, the new file will get "-1", "-2".. index, thus running the program twice will create all destination files twice.
When the whole directory structure conversion is finished, ai64 will take another long walk. It will rearrange all the directories which contains more than 100 files, to make sure there are no more than 100 files in a directory (easier to handle on c64, MAN, etc). The created subdirs will be called "ai100-X", "ai200-X" and so on, where "X" means the first word of the first program in that dirctory. E.g. "ai300-blackjack".
Edit ai64 executable file if necessary:
ai64.php [options] original_dir destination_dir
|-s path/name||Skip to this file before staring processing
(Use this to continue after something went wrong)
||Use ',' as file extension separator (default is '.')|
|-v||Verbose, list succesfully processed files|
|-w||Force windows compatible file naming|
|-h||Print this help|
ai64.php -x , -v -w c64/Demos c64stuff
Converts with comma as extension separator, windows compatible file names. Useful when copying to HD using FuseCFS (http://singularcrew.hu/idedos/).
ai64.php downloadedwares coolwares
Convers with dot as separator. Linux file naming conventions. Useful when burning a CD for use with IDE64.
Since the program creates and deletes a LOT OF TEMPORARY FILES while uncomressing the archives, it is a good idea to choose a temporary dir (configred in the script) in RAM.
mount -t tmpfs none /mnt/rd
chown lion2:lion2 /mnt/rd
Usually Linux distros have ramdisk by default, to find it see:
dmesg | grep -i ramdisk
The second one also displays the size, what you can configure with the "ramdisk_size=64000" (64MB) kernel parameter at boot time (bootloader config). I use the following small shell script as root, before converting:
mke2fs -m 0 /dev/ram0
mount /dev/ram0 /mnt/rd
chown lion2:lion2 /mnt/rd
There is no option in the program to log the error messages, but it is very simple using standard Unix tool, "tee" (-a is for append, if needed).
ai64.php orig_dir dest_dir 2>&1 | tee -a errorlog.txt
Feedback and patches are welcomed, use the contact menu on this site. For updates look at this page.
C64 XLFiles - Download large archives convered with ai64
C64.rulez.org FTP site (c64, plus/4 programs)
Utopia.hacktic.nl (c64 programs)