A8CAS - software for reading/writing Atari 8-bit cassettes

Features

A8CAS consists of:

Here are described features already realised in the A8CAS project.

liba8cas

The liba8cas library implements creating tape files in several formats, read and write operations, and seek operations. Interaction with sound files is provided by using the libsndfile library.

Support for audio tracks in stereo tapes is also implemented.

FeatureStatusNotes
Support for CAS formatYesWAV2CAS' CAS format has been extended to support copy-protected tapes. The extension is backwards-compatible - old CAS files are read without problems.
Support for HEX formatYesWAV2CAS' HEX format has been modified and extended to support copy-protected tapes.
Support for FSK formatYesFSK is a simple text file format destined for debugging particularly bad tapes.
Support for WAV filesYes
Support for other audio formatsYesAll formats supported by libsndfile are usable. This includes WAV, AIFF, Ogg/Vorbis and FLAC. MP3 is excluded due to licencing constraints. Creating new tapes is however possible only in WAV format.
Support for raw filesYesAllows to convert an arbitrary file (f.e. a BASIC program) to/from a cassette image.
Creating new tapesYesTape files in all of the above formats can be created and written to.
Conversion between formatsYesRealised by opening two files simultaneously - one for reading, one for writing.
Seek operationsYesAvailable in all of the above formats, including sound files. This allows to rewind or fast-forward a tape file like on a real tape-recorder.
Mixing of read, write and seek operationsYesA tape file can be opened in "read/write" mode, and read, seek, and write operations can then be performed in any order. Supported by all formats (except for Ogg/Vorbis, FLAC and other compressed formats. These files cannot be opened in "read/write" mode).
Playback of audio trackYesIn all formats. Used in the emulator to make the user hear the loaded tape. Stereophonic tapes are also supported.
Conversion of cassettes with audio track to CAS formatPlanned
Loading turbo tapesLimitedThe CAS format has been extended to support various turbo formats. Works with CAS and HEX, but with audio files loading is rather unreliable.
Saving turbo tapesPlanned

a8cas-tools

a8cas-tools consists of two command-line tools that use liba8cas. These are:

Atari800 patch

View of the new Tape Management menu in Atari800
View of the new Tape Management menu in Atari800

A patch has been created to add support for liba8cas to Atari800. Support for loading, writing and creating tape files in all formats has been added. Rewinding and fast-forwarding is also supported, as well as tapes with stereophonic audio track.

Select Tape Management (shortcut: Alt+T) from the emulator's main menu (F1).

FeatureStatusNotes
Loading and saving in CAS formatYesNew CAS files can be created from withing the emulator.
Loading and saving in HEX and FSK formatsYesNew files in these formats cannot be created from within the emulator.
Loading and saving in WAV formatYesNew WAV files can be created from within the emulator.
Loading and saving in other audio formatsPartialCreation of new files in formats other than WAV is not supported. Additionally, compressed file formats (Ogg/Vorbis, FLAC) are read-only.
Loading and saving of raw filesYesAllows to mount a COM or BASIC program as a cassette image, or create such files by saving to tape.
Fast-forwarding and rewindingYesSupported in all formats. The user has to enter a number of the block to which the tape should be rewinded.
Audio playbackYesWhen loading and saving a tape, its sound is played synchronously with the loaded/saved data. For stereophonic tapes, only the data track is played back. Volume of the audio playback can be adjusted. Supported only in the SDL version of Atari800. Supported in all frequencies, 8/16 bit, and mono/stereo.
Tapes with non-standard blocks (copy-protected)YesLoading of non-standard blocks is fully supported. Writing is supported too, but not fully.
Cassette recorder activity indicatorYesSame as the indicator seen during disk operations. Can also display a current block number (activate by Display Settings→Show sector counter).
SIO-patch for fast tape accessYesStandard tapes (ie. without custom loaders) can be loaded/saved with SIO patch. All formats CAS, HEX, FSK, sound, raw) are supported.
Turbo hardware modificationsLimitedSeveral turbo systems are supported, but only when loading. Reading from sound files is unreliable.

To do

Important features to do: