Re: Likely opcode execution bug
Nikolai Zhubr <[email protected]> Mon, 23 Aug 2021 16:26:13 +0300
| Newsgroups | gmane.comp.emulators.bochs.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
23.08.2021 2:23, I wrote:
[...]
> 0FFFC0: BE D6 FF 66 2E C7 44 03 41 D0 04 01 90 90 EB F0
> 0FFFD0: 00 00 00 00 00 00 00 00 00 41 D0 04 01 00 41 D0
> 0FFFE0: 04 01 00 41 D0 04 01 00 41 D0 04 01 00 00 00 00
> 0FFFF0: EA C0 FF 00 F0 00 00 00 00 00 00 00 00 00 00 00
>
> One can obviously see 3 additional bogus copies of 0104d041 appeared
> here. The effect apparently does not happen if the same example is run
> below 640k boundary, so this seems related to rom memory handling.
Ok, looking into memory.cc one can see in writePhysicalPage() the
following (in a byte-by-byte processing case):
line 168: for(unsigned i=0; i < len; i++) {
...
line 186: for (unsigned i = 0; i < len; i++) {
...
line 205: a20addr++;
line 206: data_ptr++;
...
line 211: }
line 219: inc_one:
line 220: a20_addr++;
line 222: data_ptr++;
...
line 227: }
This likely explains it :-)
Thank you,
Regards,
Nikolai
>
>
> Thank you,
>
> Regards,
> Nikolai