Re: [hatari-devel] Hatari and OUTSIDE (virtual memory manager) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Hatari and OUTSIDE (virtual memory manager)
- From: Uwe Seimet <Uwe.Seimet@xxxxxxxxx>
- Date: Tue, 2 Oct 2018 17:43:12 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1538494992; s=strato-dkim-0002; d=seimet.de; h=In-Reply-To:References:Message-ID:Subject:To:From:Date: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=XPsSlfwAbgvIb3oe4kZLY+JnwN5e1lCj+LaeozwlCnM=; b=EysFpF/qI4oWiNIQx/XJz3LpSAk1+C+PuWrEZ1xkFXBt0FmSonLCDG5Mj0PTIU8+kw yi0fuSIiEEkx9Vl35cZwL9wdoPJbQfwvnkpuzsQf0E3GifYk0v2jdTkX5sYmG5E7BU1s qa5pN0RCTWUKSTCKj3at+KCs8/27tf4Dxrkczk7Lw4OSiHRo1Q7ppePMTEuiVLZbAJvS zRl89GA93Sagcm11HQiPjbqVVzaB/DUwnic5CiRn4RwYB9cz1HCoyvQx26Ey+UnFb29h gd7LgIyKsYFdgaQKjG94PrqOOYgobSnDFzWvkh5aKuNsN7dt4eVJ0kJ8KPl1q4Dq7MFv 0hwQ==
I only tried OUTSIDE with the fix, not ROMSPEED. But from what you wrote
the result of the (now valid) instruction was not correct, because A0 should
have contained a valid page descriptor after execution, but it contained 0
instead.
> Le 02/10/2018 à 17:25, Uwe Seimet a écrit :
> > I'm afraid this change does not make a difference on my machine. The
> > behavior is exactly as before. Even complete removing the code block and
> > always returning "true" did not have any effect.
>
> If I try with ROMSPEED, it does change something.
>
> lea $00e00000,a0
> .nom1: ptestr #2,([8,a0]),#7,a0 ;refer to user program address space
> move.l d0,(a0) ;enter in descriptor table
> pflusha
>
>
> Before that "ptestr #2,([8,a0]),#7,a0" gave an exception 11 when
> executing this instruction.
> If I remove "eamode==6" then the instruction completes but the program
> crashes after that with a bus error on "move.l d0,(a0)" because a0=0
> (and RAM location 0.l and 4.l can't be written in Atari)
>
>
> >
> >>>>> According to TEMPLMON the instruction is F036 9E01 0161 0010
> >>>>>
> >>>>> PTESTR DFC,([$0010,A6]),#7
> >>
> >> mmu_op30_invea() incorrectly rejects effective address mode 6. I added
> >> the test because previously it didn't reject all invalid addressing
> >> modes like real CPU does and for some reason I also added one valid
> >> addressing mode..
> >>
> >> Change:
> >>
> >> if (eamode == 0 || eamode == 1 || eamode == 3 || eamode == 4 || eamode
> >> == 6 || (eamode == 7 && rreg > 1))
> >>
> >> To:
> >>
> >> if (eamode == 0 || eamode == 1 || eamode == 3 || eamode == 4 || (eamode
> >> == 7 && rreg > 1))
> >>
> >> It should fix the unexpected f-line.
> >>
> >>
> >>
> >
> >
>
>
>