akaiutil: access to AKAI S900/S1000/S3000 filesystems Copyright (c) 2008-2022 by Klaus Michael Indlekofer. All rights reserved. Note: Special restrictions apply. See disclaimers below and within the distribution. Release akaiutil-4.6.7 (21-OCT-2022) Email: m.indlekofer@gmx.de Usage: ------ akaiutil [-h] [-r] [-F] [-C] [-l ] [-o ] [-s ] [-n ] [-c ...] [-p ...] [[-f] ...] [[-f] ...] -h print this info -r read-only mode -F disable floppy filesystem for disk-files/CD-ROM drives/physical drives -C disable cache -l lock-file -o set start offset for disk-file/drive in bytes -s set pseudo-disk size in KB -n set max. number of pseudo-disks per disk-file/drive -c CD-ROM drive -p physical drive -f floppy drive or disk-file = floppyla: | floppylb: | floppyha: | floppyhb: Commands: --------- help [] print help information for a command =man exit exit program =quit =bye =q restart restart program (with opened disks) restartkeep restart program (with opened disks, keep current directory path etc.) =restart. =sync df print disk info dinfo print current directory info =pwd cd [] change current directory cdi change current volume dir [] list directory =ls dirrec list current directory recursively =lsrec lstags list tags in partition =dirtags inittags initialize tags of disk or partition rentag rename tag in partition cdinfo print CD3000 CD-ROM info vcdinfo print verbose CD3000 CD-ROM info setcdinfo [] set CD3000 CD-ROM info of disk or partition lcd change current local (external) directory ldir list files in current local (external) directory =lls lsfat print FAT of current partition lsfati print FAT-chain of file lstfati print FAT-chain of DD take infoi print information for file infoall print information for all files in current volume tinfoi print information for DD take tinfoall print information for all DD takes in current partition del delete file =rm deli delete file rmi tdeli delete DD take trmi ren [] rename/move file =mv reni [] rename/move file =mvi setosveri set OS version of file in S1000/S3000 volume setosverall set OS version of all files in current S1000/S3000 volume setuncompri set uncompr value of compressed file in S900 volume updateuncompri update uncompr value of compressed file in S900 volume updateuncomprall update uncompr value of all compressed files in current S900 volume sample900uncompr [] uncompress S900 compressed sample file =s9uncompr sample900uncompri [] uncompress S900 compressed sample file =s9uncompri sample900uncomprall [] uncompress all S900 compressed sample files in current volume =s9uncomprall sample900compr [] compress S900 non-compressed sample file =s9compr sample900compri [] compress S900 non-compressed sample file =s9compri sample900comprall [] compress all S900 non-compressed sample files in current volume =s9comprall fixramname fix name in file header fixramnamei fix name in file header fixramnameall fix name in file header of all files in current volume clrtagi {|all} untag file clrtagall {|all} untag all files in current volume settagi tag file settagall tag all files in current volume treni rename DD take =tmvi clrfiltertag {|all} remove tag from file filter setfiltertag add tag to file filter copy [] copy file =cp copyi [] copy file =cpi copyvol copy volume (with all of its files) =cpvol copyvoli copy volume (with all of its files) =cpvoli copypart copy all volumes of a partition =cppart copytags copy all tags of a partition =cptags wipevol delete all files in volume =wipedir =rmall wipevoli delete all files in volume =wipediri =rmalli delvol delete volume and all of its files =deldir =rmvol =rmdir delvoli delete volume and all of its files =deldiri =rmvoli =rmdiri formatfloppyl9 format/erase low-density floppy for S900/S950, create filesystem =formatfl9 formatfloppyl1 format/erase low-density floppy for S1000, create filesystem =formatfl1 formatfloppyl3 format/erase low-density floppy for S3000, create filesystem =formatfl3 formatfloppyh9 format/erase high-density floppy for S950, create filesystem =formatfh9 formatfloppyh1 format/erase high-density floppy for S1000, create filesystem =formatfh1 formatfloppyh3 format/erase high-density floppy for S3000, create filesystem =formatfh3 wipefloppy create filesystem on floppy =newfsfloppy formatharddisk9 [[M]|SH205|SUPRA20M|SUPRA30M|SUPRA60M] create filesystem on harddisk for S900/S950 (size in blocks or MB, or drive name) =formathd9 =newfsharddisk9 =newfshd9 formatharddisk1 [[M] [[M]]] create filesystem on harddisk for S1000 (size in blocks or MB) =formathd1 =newfsharddisk9 =newfshd1 formatharddisk3 [[M] [[M]]] create filesystem on harddisk for S3000 or CD3000 (size in blocks or MB) =formathd3 =newfsharddisk3 =newfshd3 formatharddisk3cd [[M] [[M]]] create filesystem on harddisk for CD3000 CD-ROM (size in blocks or MB) =formatcd =newfsharddisk3cd =newfscd wipepart [] create filesystem in harddisk partition =newfspart wipepart3cd [] create filesystem in harddisk partition for CD3000 CD-ROM =newfspart3cd fixpart [] fix filesystem in harddisk partition fixharddisk [] fix filesystem on harddisk scanbadblkspart [] scan for bad blocks/clusters in partition markbadblkspart [] mark free bad blocks/clusters in partition scanbadblksdisk [] scan for bad blocks/clusters in all partitions of disk markbadblksdisk [] mark free bad blocks/clusters in all partitions of disk getdisk get disk (to external file) =dget =dexport putdisk put disk (from external file) =dput =dimport getpart [] get partition (to external file) =pget =pexport putpart [] put partition (from external file) =pput =pimport gettags get tags from partition (to external file) =tagsget =tagsexport puttags put tags to partition (from external file) =tagsput =tagsimport renvol rename volume =rendir =mvvol =mvdir renvoli rename volume =rendiri =mvvoli =mvdiri setosvervol set OS version of current volume setosvervoli set OS version of volume setlnum set load number of current volume (OFF for none) setlnumi set load number of volume (OFF for none) lsparam list parameters in current volume lsparami list parameters in volume initparam initialize parameters in current volume initparami initialize parameters in volume setparam set parameters in current volume setparami set parameters in volume getparam get parameters from current volume (to external file) =paramget =paramexport getparami get parameters from volume (to external file) =paramgeti =paramexporti putparam put parameters to current volume (from external file) =paramput =paramimport putparami put parameters to volume (from external file) =paramputi =paramimporti get [ []] get file (to external) =export geti [ []] get file (to external) =exporti getall get all files (to external) =exportall sample2wav convert sample file into external WAV file =s2wav =getwav sample2wavi convert sample file into external WAV file =s2wavi =getwavi sample2wavall convert all sample files into external WAV files =s2wavall =getwavall put [/] [] put file (from external, use * for all local files) =import wav2sample [/] [] convert external WAV file into sample file (use *.wav for all local WAV files) =wav2s =putwav wav2sample9 [/] [] convert external WAV file into S900 non-compressed sample file (use *.wav for all local WAV files) =wav2s9 =putwav9 wav2sample9c [/] [] convert external WAV file into S900 compressed sample file (use *.wav for all local WAV files) =wav2s9c =putwav9c wav2sample1 [/] [] convert external WAV file into S1000 sample file (use *.wav for all local WAV files) =wav2s1 =putwav1 wav2sample3 [/] [] convert external WAV file into S3000 sample file (use *.wav for all local WAV files) =wav2s3 =putwav3 tgeti get DD take (to external) =texporti tgetall get all DD takes (to external) =texportall take2wavi convert DD take into external WAV file =t2wavi =tgetwavi =getwavti take2wavall convert all DD takes into external WAV files =t2wavall =tgetwavall =getwavtall tput put DD take (from external, use *.TK for all local DD take files) =timport wav2take convert external WAV file into DD take (use *.wav for all local WAV files) =wav2t =tputwav =putwavt tarc tar c from current directory (to external) =target =gettar tarcwav tar c from current directory (to external) with WAV conversion =targetwav =gettarwav tarx tar x in current directory (from external) =tarput =puttar tarx9 tar x in current directory (from external) for S900 =tarput9 =puttar9 tarx1 tar x in current directory (from external) for S1000 =tarput1 =puttar1 tarx3 tar x in current directory (from external) for S3000 or CD3000 =tarput3 =puttar3 tarx3cd tar x in current directory (from external) for CD3000 CD-ROM =tarput3cd =puttar3cd tarxwav tar x in current directory (from external) with WAV conversion =tarputwav =puttarwav tarxwav9 tar x in current directory (from external) with WAV conversion to S900 non-compressed sample =tarputwav9 =puttarwav9 tarxwav9c tar x in current directory (from external) with WAV conversion to S900 compressed sample =tarputwav9c =puttarwav9c tarxwav1 tar x in current directory (from external) with WAV conversion to S1000 sample =tarputwav1 =puttarwav1 tarxwav3 tar x in current directory (from external) with WAV conversion to S3000 sample =tarputwav3 =puttarwav3 mkvol [] create new volume =mkdir mkvol9 [] create new volume for S900 =mkdir9 mkvol1 [ []] create new volume for S1000 =mkdir1 mkvol3 [ []] create new volume for S3000 or CD3000 =mkdir3 mkvol3cd [ []] create new volume for CD3000 CD-ROM =mkdir3cd mkvoli [ []] create new volume at index =mkdiri mkvoli9 [] create new volume for S900 at index =mkdiri9 mkvoli1 [ []] create new volume for S1000 at index =mkdiri1 mkvoli3 [ []] create new volume for S3000 or CD3000 at index =mkdiri3 mkvoli3cd [ []] create new volume for CD3000 CD-ROM =mkdiri3cd dircache print cache information =lscache disablecache disable cache enablecache enable cache lock acquire lock unlock release lock playwav [] start playback of current external WAV file =p stopwav stop playback of current external WAV file =s delwav delete current external WAV file =rmwav Examples: --------- Example 1: access floppy image fff.img akaiutil.exe fff.img Example 2: access harddisk images hhh1.img and hhh2.img akaiutil.exe hhh1.img hhh2.img Example 3: access harddisk image hhh.img and floppy image fff.img akaiutil.exe hhh.img fff.img Example 4: access multi-harddisk image mmm.img with pseudo-disks of 524280KB akaiutil.exe -s 524280 mmm.img Example 5: access high-density (HD) floppy in floppy drive A: on Windows PC: akaiutil.exe floppyha: Example 6: access Windows physical drive 1 and Windows CD-ROM drive 0 akaiutil.exe -p 1 -c 0 Example 7: access Windows physical drive 2, harddisk image hhh.img, and floppy image fff.img akaiutil.exe -p 2 hhh.img fff.img Example 8: access UNIX harddisks /dev/da1, /dev/da2, and harddisk image hhh.img akaiutil /dev/da1 /dev/da2 hhh.img Example 9: access Darwin harddisk /dev/disk1 akaiutil /dev/disk1 Example 10: access Darwin CD-ROM /dev/disk2s0 in read-only mode akaiutil -r /dev/disk2s0 Warning: -------- Accessing disk-files or floppies or physical drives might destroy their contents!!! Use at your own risk!!! It is strongly recommended to use the read-only mode (-r) for testing and for accessing valuable drives, floppies, or files. Notes: ------ * whole (pseudo-)disks can be imported/exported via "putdisk"/"getdisk" * whole partitions can be imported/exported via "putpart"/"getpart" * individual files can be imported/exported via "put"/"get" * sample files can be exported to external WAV files via "sample2wav", "sample2wavall" * DD takes can be exported to external WAV files via "take2wav", "take2wavall" * external WAV files can be imported to sample files via "wav2sample", "wav2sample9", "wav2sample1","wav2sample3" WAV files for sample import must be mono or stereo, and in 8bit or 16bit or 24bit or 32bit PCM format * external WAV files can be imported to DD takes via "wav2take" WAV files for DD take import must be mono or stereo, and in 8bit or 16bit or 24bit or 32bit PCM format * the current external WAV file (e.g. previously exported via "sample2wav" or "take2wav") can be played back via "playwav" * individual files can be copied via "copy" * whole volumes and partitions can be copied via "copyvol" and "copypart" * whole directory trees can be imported/exported from/to tar archives via "tarput"/"target" * WAV file conversion for tar archives via "tarputwav"/"targetwav" * file path names in akaiutil are of the form "/disk/partition/volume/file", e.g. "/disk2/C/VOLUME_007/SINE.S" * for access to files/volumes via index, some commands have an "i" version * abbreviations: ".." = one level up, "." = stay in same directory "/N" = "/diskN" "/floppyN" = "/diskN/A/" '_' can be used as a typable replacement for ' ' (space) in file or volume names * if the pseudo-disk size ("-s" option) and the max. number of pseudo-disks ("-n" option) are both specified, the given values are taken and the usable disk size is not determined automatically, which might be useful e.g. for accessing harddisks which have bad blocks * for shared access to drives or disk-files, it might be useful to disable the cache (via the "-C" option or via the "disablecache" command), and the "restartkeep" command can be used to rescan disks/partitions/volumes, and a lock-file ("-l" option and "lock"/"unlock" commands) can be used for exclusive access * for detailed information about individual akaiutil commands please read the online help infos Floppy drives: -------------- In order to access a floppy drive to format, read, or write an AKAI floppy on a Windows PC, fdrawcmd.sys (by Simon Owen, see https://simonowen.com/fdrawcmd/) has to be installed. Floppy drive arguments for akaiutil running on a Windows PC: "floppyla:" for low-density (DD) floppy in drive A: "floppylb:" for low-density (DD) floppy in drive B: "floppyha:" for high-density (HD) floppy in drive A: "floppyhb:" for high-density (HD) floppy in drive B: Formatting drives and images: ----------------------------- Low-density (DD) floppy size: 800 blocks (1KB) = 800KB High-density (HD) floppy size: 1600 blocks (1KB) = 1600KB Max. S900/S950 harddisk (or CD-ROM) size: 8191 blocks (8KB) = 65528KB = approx. 64MB S900/S950 standard harddisk sizes: 2601 blocks (8KB) = 20808KB ("Atari SH205") 2500 blocks (8KB) = 20000KB ("Supra 20M") 3812 blocks (8KB) = 30496KB ("Supra 30M") 7624 blocks (8KB) = 60992KB ("Supra 60M") Max. S1000/S3000 harddisk (or CD-ROM) size: 65535 blocks (8KB) = 524280KB = approx. 512MB S1000/S3000 standard harddisk partition sizes: 3840 blocks (8KB) = 30720KB = 30MB 5120 blocks (8KB) = 40960KB = 40MB 6400 blocks (8KB) = 51200KB = 50MB 7680 blocks (8KB) = 61440KB = 60MB ZIP100 disk size (as seen by akaiutil): 12288 blocks (8KB) = 98304KB = 96MB ZIP250 disk size (as seen by akaiutil): 30595 blocks (8KB) = 244760KB = approx. 239MB Warning: Formatting disk-files or floppies or physical drives destroys their contents!!! Use at your own risk!!! Example 1: format S900 low-density (DD) floppy in floppy drive A: on Windows PC: akaiutil.exe floppyla: -> formatfloppyl9 Example 2: create and format S900 low-density floppy image dd if=/dev/zero of=fff.img bs=1024 count=800 akaiutil fff.img -> formatfloppyl9 Example 3: create and format S1000 high-density floppy image dd if=/dev/zero of=fff.img bs=1024 count=1600 akaiutil fff.img -> formatfloppyh1 Example 4: create and format CD3000 CD-ROM image of max. size dd if=/dev/zero of=hhh.img bs=8192 count=65535 akaiutil hhh.img -> formatharddisk3cd 60M (this gives 8 partitions of 60MB and 1 partition of approx. 32MB) -> setcdinfo MYCDROM (this must be done after all volumes/files have been transferred) Example 5: create and format S950 harddisk image of max. size dd if=/dev/zero of=hhh.img bs=8192 count=8191 akaiutil hhh.img -> formatharddisk9 Example 6: format ZIP100 drive at Windows physical drive 3 for S1000 akaiutil.exe -p 3 -> formatharddisk1 60M (this gives 1 partition of 60MB and 1 partition of 36MB) Example 7: format drive at Windows physical drive 4 for S1100 with DD space akaiutil.exe -p 4 -> formatharddisk1 1M 1M (this gives 1 partition of 1MB, rest of disk is allocated for DD) Compilation: ------------ Depending on the operating system and the programming environment, use Makefile (for make) or Makefile.nmake (for nmake) or the .vcproj file. References: ----------- * documentation, manuals, and webpages for AKAI samplers * floppies, harddisks, CD-ROMs, and files for AKAI samplers * "AkaiDisk" and its documentation, by Paul Kellett, accessed 09-JAN-2008, 06-MAR-2008, 27-MAR-2010 * "akaitools", by Hiroyuki Ohsaki, accessed 09-JAN-2008 * "akaifs", by Raymond Dresens and Roger Karis, accessed 18-JAN-2008 * "libakai", by Sébastien Métrot and Christian Schoenebeck, accessed 09-JAN-2008 * "fdrawcmd.sys" by Simon Owen, https://simonowen.com/fdrawcmd/, accessed 14-AUG-2020 * "DiskUtil" by Simon Owen, https://simonowen.com/fdrawcmd/DiskUtil.zip, accessed 14-AUG-2020 --- The following holds for all files in this distribution (unless stated otherwise on an individual basis for each file and statement): These program/data/document/HTML/picture/media files (materials) are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitue goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of data/information/software from this distribution, even if advised of the possibility of such damage. The contents of this distribution are intended for educational, non-commercial purposes only. Materials contained herein are property of their respective owners. All brand names and trademarks are property of their respective owners. If any copyrighted works/trademarks have been used, please contact the author and the item will be either removed or properly credited (at the copyright/trademark owner's discretion). We have no intention of violating any copyrights or trademarks. This distribution might use inlining and deep-linking, i.e. links in this distribution might lead directly to materials on other web sites/distributions (in which case the target page normally should be listed/credited in a "links" section). The author does not take responsibility for the contents of any links referred to. We do not necessarily endorse, sanction, support, encourage, verify or agree with the contents, opinions or statements of/on any of the linked pages. These statements hold for all links/references in all files in this distribution. We are in no way affiliated with any companies/institutions/individuals which might be mentioned in any manner in this distribution. The author does not take responsibility for incorrect, incomplete or misleading information. Statements are to be considered as the author's free personal opinion. The author does not necessarly possess any of the items mentioned in files in this distribution. Files (and the information therein) created by the author are copyright (c) by the author. Unless protected/restricted otherwise, the author permits reproduction/redistribution of material contained in this distribution under the condition that the item is properly credited. Links to items/materials in this distribution are welcome. Projects/publications/papers that make use of materials, programs, or generated output of this distribution must properly credit the author and mention the usage of this distribution. Please contact the author for comments or further questions and permission to use materials/information from this distribution. --- This product includes software developed by the University of California, Berkeley and its contributors. Copyright (c) 1987-2002 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. [rescinded 22 July 1999] 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- End of file