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