"outsb" Emulation

Morten Welinder mwelinder at gmail.com
Fri Sep 2 21:07:53 CDT 2016


I'm sorry, it's all my fault!

Let me explain.

A while ago -- well, 20+ years ago -- I was reading Wine code over and
discovered
a number of problems big and small.  I have no recollection of what
they actually
were, but I shipped the list off to Alexandre who took at least some of my
suggestions.  Including one that was wrong.

And that is why we have code like
http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/krnl386.exe16/instr.c#l648

That FIXME is old -- older than the bug, actually. The answer is that
no, it's not
correct, but it used to be.  "outsb" allows segment override, even if
insb does not, see
http://x86.renejeschke.de/html/file_module_x86_id_223.html

The wine source file has gone though a few renames since then.  I
tracked it back to here:
http://source.winehq.org/git/wine.git/history/58371aa361c7b119a5880b2f69d845abb788a6e1:/miscemu/instr.c

The first bad version occurs on 960114 -- so long ago that two-digit years were
still a thing.

I realize that it doesn't matter in practical terms.  The code is
unlikely to have
been run multiple times over the past 20 years.  Still, it's my fault.

Morten Welinder



PS: Please don't take my word for it.  I really don't want to return
in 2036 with
an update.

PPS: Keep up the good work!



More information about the wine-devel mailing list