[Coco] New! Cassette to floppies
Robert Gault
robert.gault at worldnet.att.net
Wed Nov 2 09:02:37 EST 2005
Bob, I think you should check the CLOAD and CLOADM code. The start
address at $7E-$7F is a pointer to the load address as you say. But,
each block read from the tape changes the $7E-$7F value. Any long
program whether Basic or ml will use more than one tape block; they're
255 bytes. This will happen with ml programs even if the program loads
to contiguous memory. There is no cassette equivalent to disk single
record format.
The end address you have given is located within the cassette data
buffer at $1DA-$2D9. That does not seem a good place to have a pointer.
There is no mention of an end pointer (I can find) in the CLOAD code.
Bob Devries wrote:
> The START, END, and EXEC addresses of a binary file on tape are in fact
> easy to fine, **PROVIDED** the file is contiguous, and not one of the
> multi-block ones.
>
> START ADDRESS = PEEK(487) * 256 + PEEK(488)
> END ADDRESS = PEEK(126) * 256 + PEEK(127) -1
> EXEC ADDRESS = PEEK(157) * 256 + PEEK(158)
>
> If the file is of the multi-block format, you're on your own. :) You can
> easily hear the difference by listening to the sound of the file being
> played on the tape. If there's gaps in the data stream (except for the
> short one after the name block, then it's a multiblock file).
>
> Many games had a pre-loader, which auto-executed, and loaded the rest of
> the programme. These are more difficult to transfer to disk.
> --
> Regards, Bob Devries, Dalby, Queensland, Australia
>
> Isaiah 50:4 The sovereign Lord has given me
> the capacity to be his spokesman,
> so that I know how to help the weary.
>
> website: http://www.home.gil.com.au/~bdevasl
> my blog: http://bdevries.invigorated.org/
>
>
More information about the Coco
mailing list