[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