Separate external interrupts from interrupt signals (which are
interrupts whose number is not known until they can be serviced,
just like hardware interrupts on a real CPU).
[NTVDM]
Improve the PIC emulation code (IRQ priorities, etc...).
Instead of checking for interrupts in the main loop, move the
PS/2 input parsing to a different thread.
Improve BIOS keyboard IRQ handling.
svn path=/branches/ntvdm/; revision=60761
Remove the code that performs waiting in 32-bit mode since that blocks the emulator
and prevents interrupts from working.
Implement a 16-bit waiting system in the interrupt handlers.
Fix the PS/2 interrupt code.
svn path=/branches/ntvdm/; revision=60739
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
Change the instruction in the interrupt handlers to "INC SP" twice
instead of one "ADD SP, 2". It's shorter and supported by soft386 already.
svn path=/branches/ntvdm/; revision=60397
Implement the LES and LDS instructions.
Add optional support for BOPs (NTVDM-specific).
Fix prefix handling in some functions.
[NTVDM]
Enable BOPs for Soft386 (when NEW_EMULATOR is defined).
Fix the calling convention issue (softx86 uses cdecl, soft386 uses stdcall).
svn path=/branches/ntvdm/; revision=60395
Start implementing a new emulator library to provide 386/486 emulation support to NTVDM
and perhaps other components aswell.
svn path=/branches/ntvdm/; revision=59752
Do not rely on the internal format for console handles. Instead, use a more reliable way, by checking for success when calling a simple console function acting on in/out console handles.
svn path=/branches/ntvdm/; revision=59746
Make the BIOS Data Area accessible to other parts of ntvdm.
Properly redirect read/write access to the console to the keyboard and VGA systems, respectively.
svn path=/branches/ntvdm/; revision=59741
Synchronize with trunk again for SetConsolePalette.
Implement VGA palettes for graphics mode and DAC register access.
svn path=/branches/ntvdm/; revision=59713
Keep a list of current directories for all drives.
Implement functions that change the default drive and current directory.
svn path=/branches/ntvdm/; revision=59700
Use DOS_CMDLINE_LENGTH instead of MAX_PATH.
Fix bug in DosInitializePsp which allowed writing past the end of the Program Segment Prefix (PSP).
svn path=/branches/ntvdm/; revision=59693
- Use up to 256 parameters for programs (as suggested by the parsing while loop), but don't hardcode this values in many other places.
- The passed command line to ntvdm should be as long as MAX_PATH.
svn path=/branches/ntvdm/; revision=59691
Synchronize with trunk again to fix important bugs in the build system.
Implement register control functions which should be exported (Adapted from a patch by Hermes Belusca-Maito).
The actual export is temporarily disabled because a bug in the build system compiles ntvdm as a DLL instead of an EXE.
svn path=/branches/ntvdm/; revision=59684
- Enable TESTING by default until the correct way to load ntvdm is found.
- Calculate the character height instead of hardcoding in the BDA.
svn path=/branches/ntvdm/; revision=59678