Memory Map on D32 and D64

This forum is dedicated to those who want support programming in ugBASIC.
Questo forum è dedicato a chi desidera supporto per programmare in ugBASIC.
Ce forum est dédié à ceux qui souhaitent prendre en charge la programmation en ugBASIC.
Post Reply
clovepower
Posts: 18
Joined: Sun Jun 23, 2024 7:59 am

Memory Map on D32 and D64

Post 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
spotlessmind1975
Site Admin
Posts: 169
Joined: Fri Oct 06, 2023 8:25 pm

Re: Memory Map on D32 and D64

Post 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
Post Reply