Bug in i8086Rep:
The computation of stropcode & i8086_BIT_0 is curious -- per a documentation source I found, all of the available string instructions for the REP command (MOVSB, MOVSW, LODSB, LODSW, STOSB, STOSW) are only 1-byte long.
Additionally, setting stropcode = core->mem[(core->pc+1) + cs]; is incorrect -- by this point, PC has already been advanced, so the opcode of the string command is in PC, not PC+1. I've had success by removing everything between cs = i8086GetSegRegister_fast.... and if(stropcode &.....
did you test this with latest master code instead of the released binaries?
My fork was as of 305f9e, so not the "latest". I'm seeing now that there have been a significant number of commits since that time.
There are also a significant number of bugs in i8086text.c, most of which pertain to reading/using/displaying addresses as uint16 rather than uint32. I'll upload those as a separate ticket, but it's going to be difficult to separate out the other changes I've been making as well (such as passing a core pointer to all routines, to allow multiple emulators to run in the same program space).
well i really hate that ticket system if source forge - this very ticket appeas in "Patches" which suggests that you posted a patch aswell - but i can't see any patch.
Are you able to do pull requests with your suggested changes (the easy ones at least) - it would make code discussions much easier ...
Sorry, it looks like this was already fixed at some point. I had pulled the 0.9.2 tarball that was available from the front page, which (at least at the time) still had the bug that appears to have been patched back in 2004 (or prior).