On a dragon 32 rom it works. The code is actually from the "Getting started with Extended Basic (Tandy)" book! Anyone know whats happening here?
Also, I was about to upload a cas file (created by the coco) so you didn't have to type the code but then loading the cas file into a dragon machine the basic tokens were all messed up. Basic programs on tape are not compatible between the two machines?
Thanks for looking into this. I'll await your answer on the strange problem until I continue with coco programming.
As for saving "cross platform" cas files your tip worked.
sixxie wrote:Ok it's a RAM translation problem - older BASIC ROMs set this up and it's triggering something. Will check more later.
I believe that older versions of the CoCo sense the memory slightly differently to the newer versions could be something to do with that, I had to sort it out on the MESS driver, and remember commenting it so might be worth looking at the MESS CoCo/Dragon driver. This may of course not be reflected in the basic Roms.
sixxie wrote:Ok it's a RAM translation problem - older BASIC ROMs set this up and it's triggering something. Will check more later.
I believe that older versions of the CoCo sense the memory slightly differently to the newer versions could be something to do with that, I had to sort it out on the MESS driver, and remember commenting it so might be worth looking at the MESS CoCo/Dragon driver. This may of course not be reflected in the basic Roms.
Cheers - I'll have a poke around in there later. So far ROM disassembly and trace leads me to:
$F8 -> $FF02
IF BIT 2 of $FF22 CLEAR THEN
SET TO 4K
ELSE
$00 -> $FF02
IF BIT 2 of $FF22 CLEAR THEN
SET TO 64K
ELSE
SET TO 16K
Meaning *one* of the top five bits of PB on PIA0 is connected to PB2 on PIA1 on >16K CoCos otherwise PIA1/PB2 is tied low (4K) or high (16K). The CoCo schematic you can find (if you knew where it was and how to use archive.org) online doesn't seem to show which line is linked, but I have a 64K CoCo at home, so should be able to figure it out
So I have a fix, just hacked it to relay the top bit (as it's probably as otherwise unused as the rest of them) to see that it works. Will make it "right" later. Happy that this wasn't some programming error, just a lack of hardware emulation
I'll do an interim release to fix this and the other recent stuff once I've done it properly.