2CDT ==== (c) Kevin Thacker (Original code written in May 2000, fixed and released in May 2001) 2CDT is a utility to transfer files into a ".CDT" Tape-Image. A ".CDT" is a tape-image file which describes the data stored on a cassette tape. This file format is very powerful and can describe fast and custom loaders as well as standard operating system formats. The ".CDT" file format is identical to the ".TZX" format. The extension is used to differentiate between Spectrum and Amstrad Tape-Images. The ".TZX" file format was originally designed to store Spectrum tape programs, it's format can be found from various sources, one of these is "World Of Spectrum": http://www.void.jump.org/ There are a number of tools which already create .TZX files, Taper, Voc2TZX and MakeTZX. However, these are designed to recognise Spectrum tape loaders, and so do not do well at creating a tape-image for Amstrad formats. This tool has been designed as a starting point for furthur Amstrad CDT tools, and as a program to generate reference tape-images which can be used by emulator authors to support this tape-image format in their programs. This tool is designed to "inject" one or more file into a ".CDT" in the format written by the Amstrad operating system. The tool allows the user to define the ".CDT" "recording" method and baud rate. 2CDT [parameters] parameters: -n - Blank CDT file before use Use this to create a new CDT, otherwise file will be added to the end of an existing CDT. -s - Write data with 'speed write' 0 or 1. This is the same as typing "SPEED WRITE 0" or "SPEED WRITE 1" in BASIC. Speed Write '0' is 1000 baud. Speed write '1' is 2000 baud. -b - Specify Baud Rate. Allows you to specify faster or slower loading. -t - Method to write data into TZX (for Amstrad blocks) 0 = Pure Data Block 1 = Turbo Loading Data Block (default) -m - Method to write CPC data 0 = blocks (default) 1 = headerless (Firmware function CAS READ for reading, CAS WRITE for writing ) To be loaded with firmware function CAS READ. Not readable from BASIC. Allows entire program to be stored as a single continuous block. 2 = Spectrum ROM loader -r - Give the tape file a name. Up to 16 characters. This allows you to give the file on tape a different name to the name given on your local filesystem. If no name is defined, the file will be unnamed. This option applies to CPC 'blocks' methods only. -X
Define execution address (where file doesn't have header), or override execution address (where file has a header) -L
Define load address (where file doesn't have header), or override load address (where file has a header) -T
Define type (where file doesn't have header), or override type address (where file has a header) 0 = BASIC, 2 = BINARY -p Set initial pause (default 3000ms) -P Add a small initial pause block for buggy emulators (e.g. old versions of Arnold) Not recommended. Please use newer version of this emulator. Examples: The following in a bacth file will create the master tape for 'Stranded': REM create new CDT and put binary loader 2cdt -n -r stranded strandlod.bin stranded.cdt REM add screen to existing CDT data 2cdt -r screen loading.bin stranded.cdt REM add code to existing CDT data 2cdt -r code stranded.bin stranded.cdt If you wanted to create a master tape for a game called 'Columns': REM create new CDT and put binary loader 2cdt -n -r loader colload.bin columns.cdt REM put binary file as headerless 2cdt -m 1 colcode.bin columns.cdt This archive contains a Windows command-line executable that will run under Win95, Win98, Win2000 and WinNT. License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.