Tape Utilities ---------------- Play TZX , TZX to VOC Converter & TZX Info v0.59b by Tomaz Kac Welcome to first utility that uses the new TZX format (.TZX) file. This utility will let you replay the .TZX files back to your ZX Spectrum (or to a cassette recorder) using SoundBlaster or if you don't have a SoundBlaster or if your emulator doesn't support .TZX files you can convert them to .VOC files. Also from v0.4b onwards you can show extensive information about ALL blocks in the .TZX file. What is required: - PC with atleast 486 processor - Soundblaster Pro or better (SB16, AWE32, ...) (if you want to playback tapes on SB) This version of PLAYTZX is able to play .TZX files of version 1.11. It is still in its BETA stages since not all ZXTape blocks have yet been tested and some are still not supported (like the Snapshot block). Also the .VOC files generated by this version should work with all possible programs and they have been tested (atleast) with Z80 and X128 emulators. Now that many emulators directly support .TZX files this option is not needed so much. All DATA blocks (10-14) should work fine. The Direct Recording block should work OK if you use the sampling rate that is the same, or a multiply of the original sampling rate that was used to create the Direct Recording Block (i.e. if direct recording block was created using 10kHz then use either 10,20 or 40kHz for playback/conversion). Also the Pause and Stop the tape command work just fine and can be used. if you would like to see more information on the INFO blocks then use the /info command switch which will show you ALL possible info on all the blocks. Use /p command to pause after each page is displayed. Also a condensed form of info can be displayed with one line per block (as in replay or conversion) with the /one switch. You can stop the display by pressing key. By default the Groups are not displayed expanded... i.e. Only the Group Name is shown and not what is in that group. If you would like to see what is in the groups then use the /x switch. This is only relevant when displaying info one line per block (or playing/converting the TZX tape) ... in /info mode ALL blocks are always displayed. If you don't want to replay/convert/see all blocks then you can specify the starting and ending block with /b and /e switches. If you want to replay other file formats, such as Z80, SNA, VOC, ... then you can use my other utility HYPRALOADER. Look on the homepage (below) for it. Command Line Syntax: PLAYTZX [switches] FILE.TZX [OUTPUT.VOC] Switches: (you can just enter FIRST letter of an argument ... i.e. /voc = /v) /b n - Start replay (or conversion) of the tape at block n. The first block has number 1. ALL blocks (including Info, group,...) are numbered. This will ofcourse change in HypraLoader, but until then this is the best way. /e n - Stop replay (or conversion) of the tape AFTER block n. i.e. if you use /b 3 /e 5 then blocks 3,4 and 5 will be played. /voc - This will create a .VOC file instead of replaying the TZX file to the Soundblaster. This is handy if you don't own a Soundblaster compatible sound card or if your emulator doesn't support .TZX files but only .VOC files. /freq n - This will set the sampling frequency to n Hz. The default sampling frequency for SoundBlaster playback is 44100 Hz and for .VOC file conversion is 30303 Hz. If you have a very old SoundBlaster which cannot handle higher frequencies than 22050 Hz then you should use this setting. Also if the .TZX file uses normal speeds and you want to convert it to .VOC for use in an emulator then you will be better off if you set this to 20000 Hz or even 10000 Hz. It should work. If you get distorted sound (or no sound at all) then try using lower frequencies (around 22050), since in that case the 'Low Speed DMA' is used... for higher frequencies the 'High Speed DMA' is used which is not supported by all clones (and even some Creative products). /info - This will show very extensive information about all the blocks within the TZX file. Some blocks have not yet been tested (such as Snapshot, Custom info, ...) but they *should* work OK anyway. The starting byte (in HEX form) of each block is written in the () brackets. /one - Show information ONE line for each block (the same as playing it to the soundblaster/VOC file, only without ANY output ...). Could also be interpreted as Brief Information. Will also show the starting byte of each block in the tape (right after the block number). /p - Will make a pause after each page of information is displayed. Use this in combination with /info or /one switches. /x - Will eXpand the Groups. By default the groups are displayed in collapsed mode (i.e. only the group name is displayed and not the blocks in it) ... when you use this switch ALL blocks will be displayed. NOTE: For /info ALL blocks are always displayed ! So this switch is not needed when using /info ! /128 - This will use 128k mode. Only relevant if the TZX file has the 'Stop the tape if in 48k mode' blocks. i.e. if this option is enabled then all these blocks are ignored. If you supply /voc setting and no output .VOC file is given then the program will use the same filename as .TZX one and change the extension to .VOC. If you are replaying the file through your SoundBlaster then you can stop the replay at any time by pressing any key. The Amstrad CPC, SAM Coupe, Jupiter ACE, Enterprise & Commodore 64 files are identified with the 'Hardware Info' Block ... The data is taken from the first record in this block. If this block is not present then the Filenames won't be written for these machines! Only first 10 characters of the block names for SAM Coupe will be shown! The Jupiter ACE tapes are ofcourse supported, but no Filenames are shown because I have never even seen such file, if you have some then please send them to me, so I can add direct support for their filenames :( On Commodore 64 tapes only the Turbo Tape and ROM Loader blocks will be displayed with the filename. Other non-standard loaders will just be represented by the length of the block ! So far this was thoroughly tested on my Cyrix P166+ and SB AWE32, but I got reports of it working on several other configurations ... I am using direct connection SoundBlaster-->ZX Spectrum using the amplified output of the SB. The volume setting must be set to the highest possible with the Gain to 4x and BASS setting set to 0dB and Trebble setting to the highest. I have found that ZX Spectrum +2 is MUCH more reliable when loading as the 48k version is. Have no idea why :) There could be problems if you have the IRQ setting of the SoundBlaster set to higher than 7 ... or DMA higher than 5. !!! IMPORTANT !!! ------------------- When first trying to load something to the spectrum use LOW settings and built up to higher ones or else you might damage the equipment, SB or Spectrum. I cannot be held responsible if anything like that happens... HISTORY: 0.3 - * First Public release 0.4 - * Added /info switch 0.41 - * Minor Bug fix - Sequence of Pulses works OK now 0.5 - * Added /one switch which shows Brief Information about each block ONE Line per block only. * Added /e switch to define where the replay/conversion/info should stop * Removed ANSI stuff (bold text) 0.51 - * Bug Fix - When displaying Hardware Info the program crashed 0.52 - * Some Cosmetic Changes * Added /x switch and set the Collapsed way of displaying the groups by default. * Bug Fix - Archive Info wasn't displayed properly * The delay over 1s after the execution of PlayTZX.EXE removed * Use key to exit the display while "scroll?" is shown. * Bug Fix - Function and Arrow keys jumped two pages in "scroll?" 0.53 - * Bug Fix - 'Jump Relative' Block did not work correctly 0.54 - * Support for 1.02 version of ZX Tape format added * If the Tape has the Hardware Info with the Computer Name then it is now shown in /one and other one line modes. * If the Archive Info is present then the Title is displayed in /one and other one line modes (title must be in first place). * Added support to show block names for Amstrad CPC and SAM Coupe computers. They are identified with 'Hardware Info'. * Speed calculations not influenced by /freq setting anymore! * Bug Fix - The Sound output sometimes didn't work on some SoundBlaster clones... Now the 'High Speed DMA' will only be used for frequencies higher than 22050 Hz... so use lower frequencies if you get distorted sound ! 0.55 - * Bug Fix - The 'Hardware Info' code still had some bugs :( 0.56 - * Support for 1.10 version of ZX Tape format added * Multi Line Text in 'Archive Info' and 'Message' blocks now works properly (Use it for authors of different stuff in the game (i.e. Code, Gfx, Sound, ...) . * Bug Fix - You can now press 'Escape' to exit when waiting for the keypress while the 'Stop the Tape Command'. * The Checksum in 'Custom Data' blocks is not shown for Amstrad CPC tapes (there is no checksum in those blocks) * Added the support for 5 new TZX blocks : - Loop Start/End - Call Sequence/Return - Select block * Added support for 'Language' filed in 'Archive info' block * Changed the 'Snapshot' block to comply with 1.10 version 0.57 - * Support for 1.11 version of ZX Tape format added * Added support for 'POKEs' Custom block * Added support for 'Stop the tape if in 48k mode' block * Added the '128' command line switch to tell if you are using 48k or 128k mode (for the new stop block) * Added the 'Jupiter ACE' hardware ID * Command line arguments can be entered with the first letter only now ... 0.58 - * Some cosmetic changes to the output (/info is written at the end, Hardware Info looks better) * Frequency is handled properly for files with Special block number 0x09 - the VOC files with frequency bigger than 20kHz 0.59 - * Support for 1.12 and 1.13 (Commodore 64) added If you would like to port this (or any other ZXTape utils) utility to some other computer or O/S then you can request the source code... since this is freeware I will be happy to send it to you, but it is VERY MESSY... you have been warned :) If you are looking for TZX files then the best place is 'World of Spectrum', which is mantained by Martijn v.d. Heide, the url is: http://www.void.demon.nl/spectrum.html The latest revision of the ZXTape format and of all these utilities together with others that use this format can be found at that page too (look in the 'Documents' section). My email is tomaz.kac@uni-mb.si ... mail me if you have any problems with this program or would like to see some things added. TC