Page 2 of 2

Re: XRoar 0.27 available

Posted: Sat Jan 21, 2012 11:05 pm
by sixxie
Confirmed with COLOR BASIC 1.0 (later versions are ok). I think the fix will be to make the breakpoints used to speed loading depend on a checksum of the ROM image.

Not sure what to do about 64K BASIC - it's in RAM, so could be anything: intercepting it at certain addresses seems like asking for trouble... Perhaps an explicit switch you have to turn on to confirm it's what you want to happen?

Re: XRoar 0.27 available

Posted: Sat Jan 21, 2012 11:09 pm
by zephyr
sixxie wrote:Confirmed with COLOR BASIC 1.0 (later versions are ok). I think the fix will be to make the breakpoints used to speed loading depend on a checksum of the ROM image.
I would sooner you didn't do that because it will mean that if anyone uses Steve Woolham's enhanced ROMs (like me) or any other custom patched ROMs the speed loading won't work.

Re: XRoar 0.27 available

Posted: Sat Jan 21, 2012 11:24 pm
by Sarah
For what it's worth T3 likewise uses a different set of breakpoints for each of the D32, D64(64K BASIC) and CoCo ROMs. This is done by modifying the ROMs at load time to install "special" opcodes (this approach is taken to ensure that the breakpoints have zero overhead for the fetch-execute cycle; it also avoids the problem of recognising whether or not to breakpoint RAM in 64K BASIC mode).

Re: XRoar 0.27 available

Posted: Sat Jan 21, 2012 11:32 pm
by zephyr
I suggest that you just check the bytes at the start of the CLOAD token dispatch address (D32/64 $B6D4), (CoCo - Color Basic $A498, CoCo - Extended Color Basic $8C62) and check for CoCo extended BASIC with the first two bytes ($45, $58) at $8000:8001.

Re: XRoar 0.27 available

Posted: Sun Jan 22, 2012 12:16 am
by sixxie
zephyr: Ok, I'll bear that in mind. Maybe summing just the part that the breakpoints are going to intercept anyway. Yeah, a bit like that (went to post and thread was updated).

Sarah: Interesting... I'll try and stay "invisible" mostly, but that might be the cleanest way to handle 64K mode BASIC.