Commit graph

23 commits

Author SHA1 Message Date
Aleksandar Andrejevic f5d3c9254c [FAST486]
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
2013-10-27 00:37:01 +00:00
Aleksandar Andrejevic b60ee76f22 [NTVDM]
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
2013-08-10 21:41:20 +00:00
Hermès Bélusca-Maïto 2288b2c576 [NTVDM]
- 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
2013-08-10 20:50:37 +00:00
Aleksandar Andrejevic b62ad02740 [NTVDM]
- 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
2013-08-09 13:14:56 +00:00
Aleksandar Andrejevic b4ed87bb3a [NTVDM]
Fix coding style.
Fix initial cursor position bug.
Fix memory limit constant for VGA memory modes 0 and 1 (64 KB not 32 KB).


svn path=/branches/ntvdm/; revision=59669
2013-08-07 19:56:28 +00:00
Hermès Bélusca-Maïto 5bc19fdbfb [NTVDM]
- Don't leak console input/output handles when opening them in BiosInitialize.
- Deinitialize the emulator in the reverse order it was initialized.
- Simplify VgaGetVideoBaseAddress and VgaGetVideoLimitAddress and use the former one in VgaTranslate[Read-Write]Address.
- Use only unicode Win32 APIs where it's needed.

svn path=/branches/ntvdm/; revision=59659
2013-08-06 20:01:05 +00:00
Aleksandar Andrejevic 455deb3bde [NTVDM]
Implement Video Graphics Array (VGA) support.
Replace the old BIOS video code with new code that uses the VGA.


svn path=/branches/ntvdm/; revision=59648
2013-08-05 23:20:25 +00:00
Aleksandar Andrejevic c04b008f1f [NTVDM]
Add debug output.


svn path=/branches/ntvdm/; revision=59555
2013-07-22 13:51:26 +00:00
Hermès Bélusca-Maïto c5dad7aefe [NTVDM]
Fix the TESTING case, in case you run ntvdm without other parameters.

svn path=/branches/ntvdm/; revision=59498
2013-07-18 00:17:04 +00:00
Aleksandar Andrejevic bebaf9e812 [NTVDM]
Add a compile-time option (not default) to run ntvdm manually with the target executable as a parameter.
Fix screen clearing bug.
Rewrite several INT 10h functions to work for all video pages.


svn path=/branches/ntvdm/; revision=59497
2013-07-18 00:01:18 +00:00
Aleksandar Andrejevic 1f4d89e7d7 [NTVDM]
Improve vertical refresh performance.
Properly synchronize access to the framebuffer.


svn path=/branches/ntvdm/; revision=59425
2013-07-05 01:31:50 +00:00
Aleksandar Andrejevic 01fd2f9aa3 [NTVDM]
Implement BIOS video mode setting.
Fix bugs in video memory access emulation.


svn path=/branches/ntvdm/; revision=59424
2013-07-05 00:08:18 +00:00
Aleksandar Andrejevic c4ef9b6f44 [NTVDM]
Add more debug output.
[SOFTX86]
Properly set the carry and overflow flags.


svn path=/branches/ntvdm/; revision=59410
2013-07-02 21:40:11 +00:00
Aleksandar Andrejevic 4c4c69fc37 [NTVDM]
Clean up the code and properly separate different modules into different files.


svn path=/branches/ntvdm/; revision=59344
2013-06-26 22:58:41 +00:00
Aleksandar Andrejevic ca06374c9f [NTOSKRNL]
Check for old-style MZ executable in PeFmtCreateSection.
[NTVDM]
Fix bugs.
Implement MZ executable loading.


svn path=/branches/ntvdm/; revision=59328
2013-06-24 01:59:09 +00:00
Aleksandar Andrejevic 4c459af487 [KERNEL32]
Implement BasepCheckDosApp.
Enable NTVDM in CreateProcessInternalW.
[NTVDM]
Remove the old command line parser code. The entire command line is for the DOS application now.


svn path=/branches/ntvdm/; revision=59310
2013-06-23 12:33:13 +00:00
Aleksandar Andrejevic e7ce79fc05 [NTVDM]
Perform multiple CPU instructions in one emulator cycle.


svn path=/branches/ntvdm/; revision=59298
2013-06-23 00:20:24 +00:00
Hermès Bélusca-Maïto 2bd695b42e [NTVDM]
Use correctly NDEBUG, and use ReactOS macro: ASSERT, instead of the assert() CRT function.

svn path=/branches/ntvdm/; revision=59280
2013-06-22 01:48:28 +00:00
Aleksandar Andrejevic 6a3d90cf53 [NTVDM]
Improve keyboard IRQ performance.
Add debug output to measure number of instructions per second.


svn path=/branches/ntvdm/; revision=59279
2013-06-22 01:41:51 +00:00
Aleksandar Andrejevic fe6988cbdd [NTVDM]
Implement the keyboard IRQ.


svn path=/branches/ntvdm/; revision=59276
2013-06-21 21:25:01 +00:00
Aleksandar Andrejevic f3aa7c7145 [NTVDM]
Change the PIT code to use only one thread, to avoid race conditions.
Implement PIT counter reading and latch command.


svn path=/branches/ntvdm/; revision=59273
2013-06-21 13:55:31 +00:00
Hermès Bélusca-Maïto f1e0b70d39 [NTVDM]
Start of an implementation of a software DOS emulator.
Brought to you by Aleksandar Andrejevic. Good luck ;)

Remove the old language files. They will be recreated when the time comes.

svn path=/branches/ntvdm/; revision=59249
2013-06-17 00:00:36 +00:00
Hermès Bélusca-Maïto 4f0b8d3db0 Create a branch for Aleksandar Andrejevic for his work on NTVDM. See http://jira.reactos.org/browse/CORE-7250 for more details.
svn path=/branches/ntvdm/; revision=59241
2013-06-16 22:01:41 +00:00
Renamed from reactos/subsystems/ntvdm/ntvdm.c (Browse further)