Working with Tape image files

BASin

Working with Tape image files

Note: Detailed information about the two types of tape file format that BASin understands can be found here.

There are two methods which BASin provides for managing Sinclair Spectrum tape image files, which are predominantly used by emulators. These files are intended to be a compressed representation of the sounds which the Spectrum produces when saving files, and to this end can be very complex to use. BASin, through the use of modified emulation, employs these tape images as storage areas where you can store files created from BASIC programs and memory data blocks.

The simplest method of creating and working with tape files is to use the Tape Creator tool, which is found in BASin's Tools Menu. You should read the documentation for this tool if you are at all unsure as to how to use tape image files. It allows you to add, remove and create new tape blocks from programs either in-memory or from .bas files, and to add blocks from memory chunks, and to save certain types of variables.

The other method for working with tape files within BASin is to use "streaming" where the actions of LOAD, SAVE, MERGE and VERIFY commands are redirected to a tape image rather than files on your hard drive. The Files Tab in the Options dialog has two switches, which allow you to turn this behaviour on or off. When active, for example, a LOAD "" command will (instead of bringing up a file requester asking for a file to load) attempt to load a block from the current tape image. If no tape image has been created and "attached", then the file requester will be used. If tape SAVE streaming is active, then any SAVE command issued by the user will send the saved data directly to the tape, adding it on to the end of the tape image. This behaviour is very close to that of Spectrum Emulators in general.

The tape image formats that BASin supports are the .tzx and the .tap formats. The .tap format is supported completely - but only the .tzx format's ROM block type (ID type 16) is supported by BASin. This is because BASin intercepts ROM routines for loading and saving, rather than monitoring the EAR bit of port $FE (which is where tape-sounds would normally be arriving in a real Spectrum). As such, complex loaders that employ the more exotic blocks of the .tzx format will fail to be recognised, or indeed even acknowledged as existing at all. Support for headerless tape blocks is provided, however.

The original tapes stored files sequentially, and the position of the tape head in the tape drive, along the tape, dictated which file would be loaded next. In BASin, this is indicated in the Tape Creator tool by the small cassette-tape icon that appears to the left of the block list. This icon indicates which block will be loaded next by a streamed tape operation.