Audiotap is a program that creates TAP files from Commodore tapes, and turns TAP or DMP files into Commodore tapes. It is also able to concatenate many TAP files into one.
It uses the Audiotap library to access Commodore tapes (the Audiotap library can read TAP, DMP and some kinds of audio files including WAV, and can write TAP and WAV files). Furthermore, it needs the tapencoder library to create TAP files from audio, and the tapdecoder library to create audio from TAP and DMP files. The command-line tool tap2audio will only need tapdecoder, the command-line tool audio2tap will only need tapencoder.
In order to build it, GNU make and a compiler are needed. Unix systems typically have such an environment ready, while, on Windows, MinGW
will do. To build, type make
followed by the target name (not needed for the default target) and the optional modifiers.
The possible targets are:
audiotap.exe
(the default target), the Windows GUI executableaudio2tap
, the command-line tape readertap2audio
, the command-line tape writer
The dependency on the Audiotap library means that:
- at compile time, the compiler must be able to find
audiotap.h
- at link time, the linker must be able to find
audiotap.lib
(Windows)libaudiotap.so
(Unix) - at run time, the executable must be able to find
audiotap.dll
(Windows)libaudiotap.so
(Unix), plustapencoder.dll
(Windows)libtapencoder.so
(Unix) to be able to create audio, andtapdecoder.dll
(Windows)libtapdecoder.so
(Unix) to be able to read audio
In order to achieve that:
-
One solution is to deploy
audiotap.h
in the compiler's environment (e.g./usr/include
). Alternatively, the modifierAUDIOTAP_HDR
can be used, with the path whereaudiotap.h
is (not includingaudiotap.h
). Example:make cmdline/wav2prg AUDIOTAP_HDR=path/to/audiotap.h/
-
One solution is to deploy
audiotap.lib
orlibaudiotap.so
in the library path (e.g./usr/lib
). Alternatively, the modifierAUDIOTAP_LIB
can be used, with the path whereaudiotap.lib
orlibaudiotap.so
is. Example:make cmdline/wav2prg AUDIOTAP_HDR=path/to/audiotap.h/ AUDIOTAP_LIB=/path/to/libaudiotap/
-
On Windows, just make sure
audiotap.dll
,tapencoder.dll
andtapdecoder.dll
are in the same folder as the executable. On Unix, one solution is to deploylibaudiotap.so
,libtapencoder.so
andlibtapdecoder.so
in the library path (e.g./usr/lib
). Alternatively, the modifierUSE_RPATH
can be used along withAUDIOTAP_LIB
. IfUSE_RPATH
is set to 1, the path to the library will be hard-coded in the executable's library search path. In this case it is recommended to specify an absolute path inAUDIOTAP_LIB
. Example:make cmdline/wav2prg AUDIOTAP_HDR=path/to/audiotap.h/ AUDIOTAP_LIB=/path/to/libaudiotap/ USE_RPATH=1
On Mac, one can either ensure libaudiotap.so, libtapencoder.so and libtapdecoder.so are in the same folder as the executable (similar to Windows), or deploy them in the library path (as in other flavours of Unix), but USE_RPATH won't work.
Other modifiers are:
-
DEBUG: set to 1 to produce an executable that can be debugged with gdb. Example:
make audiotap.exe DEBUG=1
-
OPTIMIZE: set to 1 to produce an optimised executable. Example:
make audiotap.exe OPTIMIZE=1
-
CC: changes the compiler. Examples:
make CC=gcc
needed if your installation does not provide cc.
make CC=clang
if you want to use LLVM instead of gcc (and LLVM is installed).
make CC=i586-mingw32msvc-gcc
if you are running Linux and you want to produce Windows DLLs (and you have the MinGW cross-compiler installed)
-
WINDRES: changes the Windows resource compiler. Only needed when building the Windows GUI version and the Windows resource compiler has a non-standard name. Example:
make CC=i586-mingw32msvc-gcc WINDRES=i586-mingw32msvc-windres
-
HTMLHELP: adds support for invoking help by pressing F1 in the Windows GUI version. Requires Microsoft HTML Help Workshop to be installed. Argument to HTMLHELP is HTML Help Workshop's installation path. Example:
make AUDIOTAP_HDR=..\libaudiotap AUDIOTAP_LIB=..\libaudiotap DEBUG=1 HTMLHELP="c:\Programmi\HTML Help Workshop"