Commit graph

286 commits

Author SHA1 Message Date
Aleksandar Andrejevic
7ba3013923 [NTVDM]
Implement the IOCTL command in VDM DOS.
Rewrite the BIOS video pages support to use only one console buffer (not yet complete).
Fix the BIOS video mode table and several bugs in video functions.


svn path=/branches/ntvdm/; revision=59460
2013-07-13 01:56:36 +00:00
Aleksandar Andrejevic
be1d88e4b7 [NTVDM]
Add video pages support to INT 10h functions and memory access.
[SOFTX86]
Fix the opcode check for XLAT.


svn path=/branches/ntvdm/; revision=59454
2013-07-10 19:41:43 +00:00
Aleksandar Andrejevic
25cbe37d30 [NTVDM]
Fix bugs in the VDM DOS executable loader.


svn path=/branches/ntvdm/; revision=59452
2013-07-09 17:28:16 +00:00
Aleksandar Andrejevic
59e28c4f15 [SOFTX86]
Fix jump conditions.
[NTVDM]
Implement BIOS teletype output command.
Start implementation of a new CPU emulator to replace softx86.


svn path=/branches/ntvdm/; revision=59450
2013-07-07 20:53:23 +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
988c4490a8 [NTVDM]
Fix bugs in video memory access emulation.
Implement several missing INT 10h functions.
Resize the console screen buffer on startup.


svn path=/branches/ntvdm/; revision=59421
2013-07-03 23:38:51 +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
36f251eca0 [NTVDM]
Fix several bugs:
The file was not entirely read due to an integer overflow.
The second WORD of the Program Segment Prefix (PSP) is not the number of allocated
paragraphs, but the segment of the last paragraph.
Fix the order of registers (SI and DI were mixed up with SP and BP).
Implement interrupt 0x11.
Implement redirection for reading/writing characters.


svn path=/branches/ntvdm/; revision=59409
2013-07-02 02:08:30 +00:00
Aleksandar Andrejevic
40e7d3a9fb [NTVDM]
Implement file creation, opening, reading and writing.


svn path=/branches/ntvdm/; revision=59406
2013-07-01 02:29:29 +00:00
Aleksandar Andrejevic
ed9f26ccca [NTVDM]
Fix several bugs.
Implement some interrupt 1Ah services in the BIOS.


svn path=/branches/ntvdm/; revision=59374
2013-06-29 21:37:44 +00:00
Aleksandar Andrejevic
944d6e8b5a [NTVDM]
Implement "Get DOS Version" API call.
Implement BIOS keyboard IRQ handler and some "INT 16h" functions.


svn path=/branches/ntvdm/; revision=59350
2013-06-28 20:52:40 +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
44f2787b1f [NTVDM]
Use 286 mode in softx86.
Implement "Get / Set Disk Transfer Area".
Start implementation of PS/2 controller.
Improve hardware interrupts. Fix CLI / STI / HLT instruction support.


svn path=/branches/ntvdm/; revision=59343
2013-06-26 17:15:45 +00:00
Aleksandar Andrejevic
53fbdf6bc9 [NTVDM]
Implement the "Get Interrupt Vector" and "Set Interrupt Vector" DOS API functions.


svn path=/branches/ntvdm/; revision=59340
2013-06-25 17:56:05 +00:00
Aleksandar Andrejevic
2ea7dab9a6 [NTVDM]
Fix more bugs in DosResizeMemory().


svn path=/branches/ntvdm/; revision=59339
2013-06-25 17:18:34 +00:00
Aleksandar Andrejevic
6d45f4e6e3 [NTVDM]
Fix the VDM DOS memory manager to use the segment of the data portion of the block, rather than the MCB itself.


svn path=/branches/ntvdm/; revision=59338
2013-06-25 16:46:35 +00:00
Aleksandar Andrejevic
5db2a4a6dd [NTVDM]
Fix many VDM DOS memory manager bugs.


svn path=/branches/ntvdm/; revision=59336
2013-06-24 23:10:31 +00:00
Aleksandar Andrejevic
07928d50d4 [NTVDM]
Implement several directory operations.


svn path=/branches/ntvdm/; revision=59331
2013-06-24 18:15:53 +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
Aleksandar Andrejevic
030a935096 [NTVDM]
Remove whitespace from empty lines.


svn path=/branches/ntvdm/; revision=59296
2013-06-23 00:11:45 +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
b040791380 [NTVDM]
Use local time instead of system time for the clock.
Implement the "set system date" and "set system time" DOS functions.


svn path=/branches/ntvdm/; revision=59277
2013-06-21 22:14:07 +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
Aleksandar Andrejevic
03b2c06c97 [NTVDM]
Fix the PIC IRQ code. Interrupt requests only occur when no higher-priority IRQ is busy.


svn path=/branches/ntvdm/; revision=59272
2013-06-21 01:44:56 +00:00
Aleksandar Andrejevic
da877e495e [NTVDM]
Implement Programmable Interval Timer (PIT) emulation. Fix bugs in interrupts and PIC emulation.


svn path=/branches/ntvdm/; revision=59271
2013-06-21 00:47:07 +00:00
Aleksandar Andrejevic
7765319949 [NTVDM]
Make sure bit 2 in the ISR of the master PIC is set when an IRQ in the slave PIC occurs.


svn path=/branches/ntvdm/; revision=59269
2013-06-20 19:43:29 +00:00
Aleksandar Andrejevic
b44c5d3a6f [NTVDM]
Implement 8259 Programmable Interrupt Controller emulation.


svn path=/branches/ntvdm/; revision=59268
2013-06-20 19:00:07 +00:00
Aleksandar Andrejevic
c1bb00076e [NTVDM]
Implement the "get system time" and "get system date" functions in the virtual DOS kernel.


svn path=/branches/ntvdm/; revision=59264
2013-06-20 02:10:42 +00:00
Aleksandar Andrejevic
cde3f9547b [NTVDM]
Implement up/down scrolling function in interrupt 0x10.


svn path=/branches/ntvdm/; revision=59261
2013-06-19 22:53:16 +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