Re: [hatari-devel] Small bug in Hatari Falcon emulation |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Hi,
On 11/24/20 1:46 AM, Roger Burrows wrote:
On 23 Nov 2020 at 12:16, Eero Tamminen wrote:
On 11/23/20 2:46 AM, Roger Burrows wrote:
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.
Hopefully this pseudo-code (without bus error
checking) clarifies what I meant:
-------------------------------------
for (addr = start; addr < end; addr++) {
old = value;
value = *addr;
/* this check is what I'm referring to: */
if (value == old) {
value = ^value;
old = value;
value = *addr;
if (value == old) {
printf("0x%06x = <no value>\n", addr);
continue;
}
}
printf("0x%06x = 0x02x\n", addr, value);
}
-------------------------------------
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.
You said that value is 0xff, which I assume to
be from a byte read. If you do word reads from
non-existing RAM area, is the value 0xffff (as
expected), or something else?
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.
Unfortunately I don't have Falcon HW.
- Eero