Aleksandar Andrejevic
a93095e678
[FAST486]
...
Implement BT, BTS, BTR and BTC.
svn path=/branches/ntvdm/; revision=60716
2013-10-20 00:25:41 +00:00
Aleksandar Andrejevic
1a968e6f61
[FAST486]
...
Fix more prefix handling.
Create the macros TOGGLE_ADSIZE and TOGGLE_OPSIZE to shorten the code.
svn path=/branches/ntvdm/; revision=60715
2013-10-19 23:43:53 +00:00
Aleksandar Andrejevic
97c51f53c4
[FAST486]
...
Fix prefix handling.
Create a macro NO_LOCK_PREFIX to shorten the code.
svn path=/branches/ntvdm/; revision=60714
2013-10-19 23:03:40 +00:00
Aleksandar Andrejevic
75a0ca07a1
[FAST486]
...
Implement CMPXCHG.
svn path=/branches/ntvdm/; revision=60712
2013-10-19 18:56:58 +00:00
Aleksandar Andrejevic
a98544e517
[FAST486]
...
Implement PUSH/POP FS/GS.
svn path=/branches/ntvdm/; revision=60711
2013-10-19 18:36:04 +00:00
Aleksandar Andrejevic
ca7d21eff4
[FAST486]
...
The 80486 doesn't have any time stamp counter (TSC) at all.
svn path=/branches/ntvdm/; revision=60710
2013-10-19 18:28:27 +00:00
Aleksandar Andrejevic
d3bc33ee5d
[FAST486]
...
And add those newly implemented opcodes into the table...
svn path=/branches/ntvdm/; revision=60708
2013-10-19 18:00:19 +00:00
Aleksandar Andrejevic
7105c52d86
[FAST486]
...
Implement SETO, SETNO, SETC, SETNC, SETZ, SETNZ, SETBE, SETNBE, SETS, SETNS, SETP
SETNP, SETL, SETNL, SETLE and SETNLE.
svn path=/branches/ntvdm/; revision=60706
2013-10-19 17:57:26 +00:00
Aleksandar Andrejevic
2583e4f51e
[FAST486]
...
Remove TODOs for instructions that don't exist on the 80486.
svn path=/branches/ntvdm/; revision=60704
2013-10-19 17:29:44 +00:00
Hermès Bélusca-Maïto
51040fc61e
Bye bye Soft386, welcome Fast486, courtesy Aleksandar Andrejevic.
...
[NTVDM]: Define by default NEW_EMULATOR, i.e. use Fast486 instead of softx86.
svn path=/branches/ntvdm/; revision=60703
2013-10-19 16:55:51 +00:00
Aleksandar Andrejevic
9b02129308
[SOFT386]
...
Implement extended conditional jumps.
svn path=/branches/ntvdm/; revision=60699
2013-10-19 00:35:06 +00:00
Aleksandar Andrejevic
2095b2a844
[SOFT386]
...
Number the opcodes in the TODO list.
svn path=/branches/ntvdm/; revision=60698
2013-10-19 00:19:57 +00:00
Aleksandar Andrejevic
0e8be812b0
[SOFT386]
...
Implement the hardware interrupt system.
Modify Soft386Interrupt to assume hardware interrupts, because
software interrupts from outside the emulator may cause race conditions.
svn path=/branches/ntvdm/; revision=60696
2013-10-18 22:50:00 +00:00
Aleksandar Andrejevic
3041ad0330
[SOFT386]
...
Fix previous fix.
svn path=/branches/ntvdm/; revision=60695
2013-10-18 22:01:35 +00:00
Aleksandar Andrejevic
fb5036618e
[SOFT386]
...
Fix typecasts to make sure the value is sign-extended.
svn path=/branches/ntvdm/; revision=60694
2013-10-18 21:45:10 +00:00
Amine Khaldi
25445ea35f
* Sync up to trunk head (r60691).
...
svn path=/branches/ntvdm/; revision=60692
2013-10-17 11:19:05 +00:00
Aleksandar Andrejevic
6bbc6fef9a
[SOFT386]
...
Allow the DS segment to overriden in LODS, MOVS and CMPS.
svn path=/branches/ntvdm/; revision=60689
2013-10-16 03:44:06 +00:00
Aleksandar Andrejevic
40ed113494
[SOFT386]
...
Implement the far absolute indirect JMP/CALL instructions in group 0xFF.
svn path=/branches/ntvdm/; revision=60688
2013-10-16 03:14:12 +00:00
Aleksandar Andrejevic
489dfb314e
[SOFT386]
...
Fix bugs in SF calculation.
svn path=/branches/ntvdm/; revision=60687
2013-10-16 02:22:40 +00:00
Aleksandar Andrejevic
1df88c9d1d
[SOFT386]
...
Implement the near absolute indirect JMP/CALL in opcode group 0xFF.
svn path=/branches/ntvdm/; revision=60686
2013-10-16 01:44:39 +00:00
Aleksandar Andrejevic
4b14d9a672
[SOFT386]
...
Start implementing call gate support.
Implement the direct far call opcode (0x9A).
svn path=/branches/ntvdm/; revision=60685
2013-10-16 00:41:24 +00:00
Aleksandar Andrejevic
2f4594cf30
[SOFT386]
...
Implement the PUSH instruction in opcode group 0xFF.
svn path=/branches/ntvdm/; revision=60681
2013-10-15 19:03:40 +00:00
Aleksandar Andrejevic
151db5ddd0
[SOFT386]
...
Implement far returns (both versions in Soft386OpcodeRetFar).
svn path=/branches/ntvdm/; revision=60680
2013-10-15 18:54:11 +00:00
Aleksandar Andrejevic
8d2a19ae5d
[SOFT386]
...
Implement far jumps.
svn path=/branches/ntvdm/; revision=60679
2013-10-15 17:27:23 +00:00
Aleksandar Andrejevic
642b52c4e1
[SOFT386]
...
Halfplement REPZ/REPNZ for CMPS and SCAS.
svn path=/branches/ntvdm/; revision=60658
2013-10-13 23:59:52 +00:00
Aleksandar Andrejevic
4ad8a401ef
[SOFT386]
...
Implement the REP prefix for MOVS.
Fix the REP prefix in INS, OUTS and STOS to simulate the DI
wrap-around even if DF is set.
svn path=/branches/ntvdm/; revision=60645
2013-10-13 21:15:01 +00:00
Aleksandar Andrejevic
c425bbc689
[SOFT386]
...
Implement Soft386Interrupt.
[NTVDM]
Implement EmulatorInterrupt and EmulatorExternalInterrupt for NEW_EMULATOR.
svn path=/branches/ntvdm/; revision=60628
2013-10-12 13:58:34 +00:00
Aleksandar Andrejevic
a2e0e03ee6
[SOFT386]
...
- Fix calculation of the AF flag in opcode groups 0xFE and 0xFF (INC/DEC).
- Fix a bug in the REP prefix by simulating the wrap-around of DI which
can occur when the current address size is 16-bit.
- Exception error codes are only pushed on the stack in protected mode.
svn path=/branches/ntvdm/; revision=60625
2013-10-11 23:45:42 +00:00
Aleksandar Andrejevic
8dff09c37a
[SOFT386]
...
Improve the performance of Soft386CalculateParity.
svn path=/branches/ntvdm/; revision=60621
2013-10-11 20:54:46 +00:00
Aleksandar Andrejevic
da5b8fc439
[SOFT386]
...
Fix prefix handling.
svn path=/branches/ntvdm/; revision=60620
2013-10-11 20:48:19 +00:00
Aleksandar Andrejevic
47390630ed
[SOFT386]
...
Fix a bad call to RtlFillMemory.
svn path=/branches/ntvdm/; revision=60618
2013-10-11 19:24:58 +00:00
Aleksandar Andrejevic
37059f6dfc
[SOFT386]
...
Fix incorrect (reverse) handling of the DF flag.
svn path=/branches/ntvdm/; revision=60617
2013-10-11 19:02:06 +00:00
Aleksandar Andrejevic
caf9a0a671
[SOFT386]
...
Implement the REP prefix for OUTS, LODS and STOS.
svn path=/branches/ntvdm/; revision=60616
2013-10-11 18:34:31 +00:00
Aleksandar Andrejevic
20486fd1b7
[SOFT386]
...
Clear the memory block before it's used.
svn path=/branches/ntvdm/; revision=60612
2013-10-11 16:31:35 +00:00
Aleksandar Andrejevic
800969b126
[SOFT386]
...
Fix a bug in Soft386ExceptionWithErrorCode. The instruction pointer exceptions can
return to should point to the instruction that caused the exception.
svn path=/branches/ntvdm/; revision=60603
2013-10-11 12:24:05 +00:00
Aleksandar Andrejevic
b22da55f8f
[SOFT386]
...
Implement the REP prefix for the INS instruction.
svn path=/branches/ntvdm/; revision=60600
2013-10-10 19:01:41 +00:00
Aleksandar Andrejevic
aef0bf1635
[SOFT386]
...
Implement an API for external segment modification.
[NTVDM]
Implement EmulatorSetRegister for NEW_EMULATOR.
svn path=/branches/ntvdm/; revision=60591
2013-10-09 21:48:52 +00:00
Aleksandar Andrejevic
e9829f1830
[SOFT386]
...
Fix the carry flag in the SAR instruction.
svn path=/branches/ntvdm/; revision=60589
2013-10-09 19:49:41 +00:00
Aleksandar Andrejevic
10523b910e
[SOFT386]
...
Don't single-step on a prefix. Single-step should execute one whole instruction.
svn path=/branches/ntvdm/; revision=60588
2013-10-09 19:11:42 +00:00
Aleksandar Andrejevic
182d7c8725
[SOFT386]
...
Fix more prefix handling code.
Implement the XLAT instruction.
svn path=/branches/ntvdm/; revision=60586
2013-10-09 00:36:37 +00:00
Aleksandar Andrejevic
9339e12e69
[SOFT386]
...
Fix prefix handling.
svn path=/branches/ntvdm/; revision=60585
2013-10-08 23:03:56 +00:00
Aleksandar Andrejevic
7078f183fb
[SOFT386]
...
Fix a bug in the CMP instruction.
Implement the SBB instruction.
svn path=/branches/ntvdm/; revision=60584
2013-10-08 22:27:48 +00:00
Aleksandar Andrejevic
f25d1a9f2a
[SOFT386]
...
Implement opcode group 0xF7.
svn path=/branches/ntvdm/; revision=60582
2013-10-07 20:38:01 +00:00
Aleksandar Andrejevic
95b0bb7b60
[SOFT386]
...
Implement opcode group 0xF6.
svn path=/branches/ntvdm/; revision=60568
2013-10-06 23:57:41 +00:00
Aleksandar Andrejevic
f10f82d938
[SOFT386]
...
Start implementing extended opcodes.
svn path=/branches/ntvdm/; revision=60562
2013-10-06 15:22:52 +00:00
Aleksandar Andrejevic
15a8cc4515
[SOFT386]
...
Set the opcode handler for the INS and OUTS instructions to be
Soft386OpcodeIns and Soft386OpcodeOuts, respectively.
svn path=/branches/ntvdm/; revision=60543
2013-10-05 20:12:08 +00:00
Aleksandar Andrejevic
fbcc4ad158
[SOFT386]
...
Halfplement INS and OUTS.
svn path=/branches/ntvdm/; revision=60540
2013-10-05 20:06:19 +00:00
Aleksandar Andrejevic
3593b8c8ef
[SOFT386]
...
Fix bugs in STOS and LODS (only one register is incremented).
Implement CMPS and SCAS.
svn path=/branches/ntvdm/; revision=60525
2013-10-04 19:51:11 +00:00
Aleksandar Andrejevic
c190ca817c
[SOFT386]
...
Halfplement MOVS, STOS and LODS.
Stubplement CMPS and SCAS.
svn path=/branches/ntvdm/; revision=60515
2013-10-03 20:56:36 +00:00
Aleksandar Andrejevic
c2e98bca7f
[SOFT386]
...
Implement the (undocumented) opcode SALC.
svn path=/branches/ntvdm/; revision=60492
2013-10-01 15:02:07 +00:00