|Re: [hatari-devel] Re: RAM detection issue with VDI (was HDDriver issues with WinUAE CPU core)|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
On 10 Jan 2015 at 23:42, Roger Burrows wrote:
> On 11 Jan 2015 at 1:58, Eero Tamminen wrote:
> > VDI screen memory needs to reside in Atari RAM so that
> > it can be written. If it's larger than normal ST screen,
> > space must be done for it. stMemory.c:
> > -----------
> > /* Set memory size, adjust for extra VDI screens if needed.
> > * Note: TOS seems to set phys_top-0x8000 as the screen base
> > * address - so we have to move phys_top down in VDI resolution
> > * mode, although there is more "physical" ST RAM available. */
> > screensize = VDIWidth * VDIHeight / 8 * VDIPlanes;
> > /* Use 32 kiB in normal screen mode or when the screen size is
> > smaller than 32 kiB */
> > if (!bUseVDIRes || screensize < 0x8000)
> > screensize = 0x8000;
> > /* mem top - upper end of user memory (right before the screen
> > memory).
> > * Note: memtop / phystop must be dividable by 512, or TOS crashes
> > */
> > memtop = (STRamEnd - screensize) & 0xfffffe00;
> > STMemory_WriteLong(0x436, memtop);
> > /* phys top - This must be memtop + 0x8000 to make TOS happy */
> > STMemory_WriteLong(0x42e, memtop+0x8000);
> > -----------
> This is pretty bogus for a TT or a Falcon ... and I believe this issue was
> related to running TOS 3.06, so must have been TT emulation ...
Just to make it 100% clear what I was referring to: only ST-compatible
resolutions use 32K. TT high, medium, low & all Falcon resolutions use more
memory. So always setting phystop to memtop+32K does not seem right ...