Previous | Next
| From: Lion (all posts)
Date: 1998-05-18
Subject: lost mail 1, regarding to "re:tapes" from Tibor Biczo
|
Crown writes:
Hi there,
>Just type L in TEDMON and press STOP when the FOUND message appears on the
>screen. Then change the loading address in the tape buffer ($33c or
>something) and continue loading by replicating the necessary code from the
>ROM in RAM. Sorry, I don't remember details, but I successfully copied
>some tape games a couple of months ago.
Here are the details:
loading address is at $333-$334 ending address is at $335-$336.
Then do a GF10C , this will load the prg to the address you specified.
It will give a ?SYNTAX ERROR and will exit to BASIC but you can ignore that.
It is because the loading routine returns with an RTS and we just jumped into it and not called it with a jsr. If you want to do it safely, then write something like this:
A 2000 JSR $F10C A 2003 JMP $F445
and run this.
> adress. My C64 reference guide however seems to want it in another way:
> A devicenumber, X logical file number, Y secondary address.
I guess your C64 reference is buggy, as mine says A is logical filenumber,
X is device number, Y is secondary address.
About the tape autostart on Plus4. The header contains a byte, which tells the type of the prg. If it's 3 then it will load to the predefined address regardless of the secondary address which was specified to the Kernel LOAD.
If it's 1 then if the secondary address is 0 then it's loaded to the address you specify otherwise it's loaded to the address which is in the header.
If you save to tape and the secondary address lowest bit is set, then this byte in the header will be 3, so this is the way to save such a header, which always load to the address you specify.
I've seen two types of startup mechanisms, the first overwrites the stack and when the loader reaches an RTS, it returns into the turbo loader,
the other type overwrites the vector table at $0300-$332. Usually both has also code in the header at $348-$3F1.
Tibor Biczo / Crown of GOTU
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |