Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#1 missing opcode

v0.9.1
open
nobody
Opcodes (4)
5
2006-03-19
2006-03-19
hardi
No

Hello,

I like the idea of the i8086emu project very much.

Actually I needed an emulation of a 80186 instead of
8086. Therefore I
added some enhancements of the 80186:

- Opcode PUSHA
- Opcode POPA
- Opcode PUSH Immediate
- Opcode ENTER
- Opcode LEAVE
- Opcode Shift/Rotate with count
- Opcode IMUL
- Integrated Periphery Timer-Interrupt as rough draft
- Integrated Periphery DMA-Interrupt as rough draft

Because I had only one application to run (an old
printerserver), I
wrote a new main program without any user interface.

To understand what the application does, I added some
printf's in the
code of the emulator at specific points.

While working on that I found an error in 'i8086wrapper.c'.
*** 39,45 ****
if (c==6) /* 110b */
i8086PushMem(core, opcode, para, data);
else
! if (c==0)
i8086IncDecRegMem(core, opcode, para, data);
else
if (c==4 || c==2 || c==3 || c==5) /* 100b || 010b */
--- 39,45 ----
if (c==6) /* 110b */
i8086PushMem(core, opcode, para, data);
else
! if (c==0 || c==1) /*son c==1 ergaenzt*/
i8086IncDecRegMem(core, opcode, para, data);
else
if (c==4 || c==2 || c==3 || c==5) /* 100b || 010b */

Without this patch no Dec-Instruction is performed in
this addressing mode.

Is there anybody who is interested in details?

Hardi

Discussion

  • Memphis
    Memphis
    2008-06-17

    Logged In: YES
    user_id=990829
    Originator: NO

    Well because this is an 8086 emulator, i think your 8186 enhacments should go into a fork or extra project. We of course appreciate your work and are happy that we have inspired someone with this project :o). Right now i don't get your bug report about the i8086IncDecRegMem. Can you give me an link to the point in the intel reference for giving a reason for this patch?

    ciao

    Christian