Comments (5)
Hi!
Hi! I'm trying to use
emu2
on an executable that includes acall
instruction prefixed by0x66
. According to this Stack Overflow question this means that it's supposed to explicitly set the behavior. Dosbox provides this disassembly for the instruction:
01FE:0112 66E8C6000000 call 01DE ($+c6)
That is a '386 instruction, as is any instruction prefixed with 0x66
the "operand size prefix", so it won't run on 8086 and 80286 processors that emu2
emulates.
I think that this instruction is there exactly to fail on old 16bit processors, as it is shorter to simply assemble as 3 bytes "E8C600" instead of the 6 bytes you are seeing.
What I'm wondering is if there's a semi-clean way of implementing this as an override, or what the appropriate change to
do_instruction
might be, to catch all the 0x66 prefixed instructions and have them zero out the upper bits ofEIP
. Is something like this out of scope for the project?
At least currently emulating 32bit instructions is out of scope, as you would need full 386 emulation to be useful.
Have Fun!
from emu2.
Thank you -- this is very illuminating! I suspect, but am only 98% sure, that adding 32 bit is likely out of my "feasibility range." I'm going to instead see if I can adjust the code generation from gcc to force 16-bit mode.
from emu2.
Why dont you consider using gcc-ia16?
from emu2.
@tsupplis I didn't know about it -- but now I will!
from emu2.
https://github.com/tkchia/build-ia16
Works and builds well on Linux. Requires tweaking on MacOSX but works well too then.
from emu2.
Related Issues (20)
- Various DOS Program Bugs under emu2 HOT 6
- IBM FileCommand II paints a blue screen and does not continue HOT 2
- IBM Professional Editor II v1.35 locks up when attempting to display directory listings HOT 2
- Problems with Fifth Generation Systems Direct Access v5.19 HOT 1
- Microsoft Programmer's Workbench IDE for DOS "cannot autoload extension" HOT 1
- VEDIT PLUS v4.12 (12/07/94) directory navigation issue HOT 1
- Arithmetic Exception in get_actual_timer HOT 5
- Compilation warning on printf arguments.
- Minor cursor positioning issues with BRE v0.998 HOT 1
- Support for Rename with FCB (Int 21/AH=17h) HOT 1
- Support for Truename (Int 21/AH=60h) HOT 7
- Advice required: CP/M-86 Emulator HOT 10
- Advice Required: Compatibility List (When and how is your emulator used) HOT 7
- CON doesn't seem to be emulated properly
- No stdout output running under node-pty HOT 3
- error, unimplemented opcode 66 at cs:ip = 0098:4FB3 HOT 18
- Add basic Installing to README HOT 1
- No consistent flushing strategy HOT 3
- DOS string output does not expand tabs HOT 1
- Another little FCB issue. 'Option Characters' HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from emu2.