Page 1 of 1

Memory Map on D32 and D64

Posted: Thu Aug 01, 2024 8:00 pm
by clovepower
Hi

Just double checking if the area from 1024 to 2047 is free to be used as video memory on the Dragon target.

I am implementing double buffering (as I think it is not provided by ugBASIC). I am pretty sure the code works, as I can make it work for small programs, but when I use it on a bigger program I see patterns appearing on screen, like the screen is showing a changing memory area.

The only explanation is that when I set the screen to start at 1024+512 I overlap with some variables area.

Thanks
Maxi

Re: Memory Map on D32 and D64

Posted: Thu Aug 01, 2024 8:43 pm
by spotlessmind1975
Hi clovepower ! :)
clovepower wrote: Thu Aug 01, 2024 8:00 pm Just double checking if the area from 1024 to 2047 is free to be used as video memory on the Dragon target.
As far as I can tell, the compiled program should use memory from address &H2800 (10240 decimal). So that range should not be touched by the program. I suspect that, for some reason, the problem is instead related to some writing outside the expected boundaries. But without actual source, unfortunately, I can't investigate further. You could try using xroar's -trace option, redirecting the output to a file and investigating on addresses present into the logs.
clovepower wrote: Thu Aug 01, 2024 8:00 pm I am implementing double buffering (as I think it is not provided by ugBASIC).
You are right, it has not been implemented (yet).
But a ticket is open! :D
clovepower wrote: Thu Aug 01, 2024 8:00 pm The only explanation is that when I set the screen to start at 1024+512 I overlap with some variables area.
Another explanation could be related to the ROMs.
Try disabling interrupts using the DISABLE INTERRUPT command.

Cheers!
Marco