"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