[Coco] Playing or converting CAS files
William Astle
lost at l-w.ca
Sun Aug 17 12:06:56 EDT 2014
There is a further wrinkle with cassette binary files. There are, in
fact, two different file formats. One is the "single record" format
described by Robert. This is the only format understood by plain old
Color Basic for CLOADM. Plain old Color Basic also does not have CSAVEM.
Extended Basic, on the other hand, does have CSAVEM. It also introduces
a format that is pretty much identical to the Disk Basic "LOADM" format.
This is the so-called "multi record" format. This format allows a file
to have multiple blocks that load in all sorts of random places rather
than in a single lump in one place. There is no possible way to save a
multi record file using CSAVEM or SAVEM. Thus, copying a binary file
from tape to disk or from disk to tape is not a simple matter.
It is, however, possible to create a program that can simply copy the
files from tape to disk or vice versa. I have a recollection of at least
one such program having been published in the Rainbow but I can't
remember what it was called or when it appeared.
On 14-08-17 08:06 AM, Robert Gault wrote:
> Charlie Pelosi wrote:
>>> CSAVEM"filename",L,H,E
>>> where
>>> L=lowest address
>>> H=highest address
>>> E=execution address
>>> The addresses can be decimal numbers or &H hexidecimal numbers.
>>>
>>> The command is completely analogous to the SAVEM command which places
>>> a binary
>>> file on disk.
>>>
>> Hi Robert. How can you find out the lowest, highest, and execution
>> addresses?
>> Is there a program on the coco that would allow you to load the binary
>> and see
>> these values?
>>
>> -C
>>
>
> I'm not sure there is a "good" way to find these values. There is an
> explanation in "The FACTS for the TRS-80 COLOR COMPUTER" by Spectral
> Associates that describes Coco cassette files.
> The closest I see to the L, H, and E addresses is in the "Namefile block".
> byte value
> 0 $55
> 1 $3C sync
> 2 0=namefile 1=data $FF=end of file
> 3 length of block
> if a namefile block you then have
> 0-7 8 bytes ascii file name
> 8 0=basic 1=data 2=machine language
> 9 ascii flag 0=binary $FF=ascii
> 10 not used
> 11-12 2byte start address
> 13-14 2byte transfer address ?exec?
>
> I've looked at some .cas files with Hex Workshop (PC program) and can
> find the namefile block but would not want to rely on the addresses, and
> what does "transfer" mean in this context. You can always find the EXEC
> address by reading the content of $11D-$11E.
> There does not seem to be an H address in a cassette file. You just keep
> reading data until the file ends.
>
> Robert
>
>
More information about the Coco
mailing list