[Coco] ROMPak transfer to disk with cart2ram?
Robert Gault
robert.gault at worldnet.att.net
Tue Jan 13 09:35:28 EST 2004
Willard Goosey wrote:
>>Date: Mon, 12 Jan 2004 04:57:07 -0500
>>From: Robert Gault <robert.gault at worldnet.att.net>
>>The flow should be 1) compile TransferA and save, compile TransferB and
>>save; 2) use TransferA to copy ROM pak and save ROM pak. Then to play
>>the pak the flow should be 1) loadm pak copy; 2) loadm TransferB and
>>move pak to normal location; 3) run pak.
>
>
> OK, yeah. I missed steps 2 & 3.
>
>>Obviously not all paks will be happy with this or like a Coco3.
>
>
> The pak itself runs fine. It's just the last working ROMPak I've got
> that I haven't transfered to disk. It's not like I ever play it or
> anything. I'm just a completist.
>
>
>>If the pak contains a copy protection scheme, it will need to be
>>patched. That will best be done before it is saved to disk. Any patch
>>location used on the original ROM pak will need to be offset just as
>>the pak was during copy.
>>
>
> And since Neil's list of patches didn't say where the ROMpak was
> loaded into before patching...
>
>
>>It looks like TransferA may need to be modified to reset $FF23 to its
>>original state. Since I provided source code, a simple modification of
>>the program to save the original state of $FF23 and restore it should be
>>trivial.
>
>
> (looks up what's at $FF23.) Oh, the cartridge interrupt flag. Yeah,
> that probably needs to be saved and restored.
>
>
>>I don't know if the use of RESET will be detrimental. The code as posted
>>did work for me but is certainly not written in stone. Modify it if needed.
>
>
> I'm still kinda confused, but that's partially because it's 3 AM.
> I'll add in the code for $FF23 and see if that helps. I'm getting
> very strange results right now, and I can't tell if I'm doing
> something wrong or it's just copy protection biting me.
>
> Willard
All ROM paks load to $C000. If you have patches relative to $C000 and
move the ROM pak to $3000 (offset -$9000) and have a patch for ex.
$CA00, the patch should load to $3A00.
Most of us can't do this math in our heads, so use a calculator or
program. If you want the Coco to do the calculation, you will need to
convert to modulo math since the Coco doesn't like negative $ values.
So, that gives you, POKE &HCA00+&H7000,$mn. $CA00+$7000=$13A00 and the
Coco conveniently drops the $10000 to give $3A00.
More information about the Coco
mailing list