Re: [hatari-devel] Small bug in Hatari Falcon emulation

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


On 23 Nov 2020 at 12:16, Eero Tamminen wrote:
> 
> On 11/23/20 2:46 AM, Roger Burrows wrote:
> > On 23 Nov 2020 at 1:08, Eero Tamminen wrote:
> >> On 11/23/20 12:47 AM, Roger Burrows wrote:
> >>> When the "STe Bus Emulation" bit (0x20) in the Falcon Bus Control
> Register
> >> at
> >>> $ff8007 is zero, "STe Bus Emulation" mode is set.  This affects bus
> error
> >>> handling.  Hatari already models this as far as the I/O memory area is
> >>> concerned (I haven't attempted to check how accurately yet).  But it
> also
> >>> affects bus errors when accessing RAM, which Hatari does NOT model.
> >> Basically,
> >>> on a real Falcon with "STe Bus Emulation" enabled, there are NO bus
> errors
> >>> generated for the whole $0 to $dfffff region, even in user state.  Even
> if
> >> RAM
> >>> isn't present at an address, no bus error occurs.
> >>
> >> Do reads to non-existing RAM areas produce some specific value like
> >> zero, or random values, or
> > 
> > A quasi-random sampling of values shows 0xff is returned.  That looks like
> a
> > floating bus (but what would I know, I'm a software guy).
> > 
> >> is the target location value just unmodified?
> >>
> > I'm just doing reads, so I'm not sure what you mean.
> 
> I meant the read result (e.g. register where you
> read it).
> 
I still don't know what you mean.  I'm doing a read from a non-existent RAM 
address.  I did write a separate program to do:
	read
	write new/read
	write old/read
and the value returned isn't always $ff (and rewriting the original value 
doesn't restore it, unsurprising considering there's no RAM there).  I think 
it's just floating bus values, but I'm not a hardware guy.

> You seemed to be doing byte reads.  For IO HW
> regs, it matters whether read is byte or word
> sized.  Did you try word access?
> 
1. As I said in my original post, the report is NOT about accessing the I/O 
memory area.  Hatari already has some code to handle that & I haven't 
investigated whether that code is correct or not.  The report is strictly about 
accessing the RAM area, both existing & non-existing memory.

2. I spent some more of my time and added support for different widths of 
memory access.  Unsurprisingly (to me) the same issue happens with 
byte/word/long widths.

If you want any more answers, I'll send you the code & you can investigate 
further.

Roger



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/