Commit graph

111 commits

Author SHA1 Message Date
Aleksandar Andrejevic e954b0db71 [SOFTX86]
Remove softx86, as it is no longer used by anything.


svn path=/branches/ntvdm/; revision=60757
2013-10-26 20:53:33 +00:00
Aleksandar Andrejevic 0981b0859f [NTVDM]
Remove softx86 support, and use only fast486, since it is now
sufficiently functional.


svn path=/branches/ntvdm/; revision=60755
2013-10-26 20:48:31 +00:00
Aleksandar Andrejevic 68de967fb2 [NTVDM]
Fix the "Read Buffered Input" command and implement "Get STDIN Status".


svn path=/branches/ntvdm/; revision=60753
2013-10-26 18:01:40 +00:00
Aleksandar Andrejevic 01d5a36cf5 [NTVDM]
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
2013-10-24 01:01:49 +00:00
Aleksandar Andrejevic ba466dbba3 [NTVDM]
Implement the "Get Default Drive" DOS command.


svn path=/branches/ntvdm/; revision=60724
2013-10-20 15:01:28 +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 2462a558df [NTVDM]
Add a hack to fix screen updates while waiting for a keypress.


svn path=/branches/ntvdm/; revision=60697
2013-10-19 00:04:11 +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
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 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 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 0043c2f377 [NTVDM]
Properly handle the case when the console framebuffer could not be created.


svn path=/branches/ntvdm/; revision=60526
2013-10-04 21:16:58 +00:00
Aleksandar Andrejevic 0c91026f75 [NTVDM]
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
2013-09-28 00:55:28 +00:00
Aleksandar Andrejevic 7e119cf40b [SOFT386]
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
2013-09-28 00:29:16 +00:00
Aleksandar Andrejevic 7328873681 [SOFT386]
Implement external stack modification.
[NTVDM]
Implement EmulatorSetStack for NEW_EMULATOR.


svn path=/branches/ntvdm/; revision=60257
2013-09-21 00:41:41 +00:00
Aleksandar Andrejevic 758bdf41d9 [SOFT386]
Fix the "persistant prefix" bug.
Fix the conditional jump bug.
Implement Soft386ExecuteAt.
[NTVDM]
Add Soft386 support to ntvdm.


svn path=/branches/ntvdm/; revision=59929
2013-08-31 19:18:12 +00:00
Hermès Bélusca-Maïto 8e37700e5c Synchronize with trunk revision 59781.
svn path=/branches/ntvdm/; revision=59784
2013-08-19 18:55:28 +00:00
Aleksandar Andrejevic 99302b9d00 [SOFT386]
Implement Soft386LoadSegment.
[NTVDM]
Fix BiosPrintCharacter (Adapted from a patch by Hermes Belusca-Maito).


svn path=/branches/ntvdm/; revision=59764
2013-08-17 18:44:16 +00:00
Aleksandar Andrejevic e1c4d780c1 [NTVDM]
Fix the INT 12h handler to call the correct function (DosOpenFile not DosCreateFile).


svn path=/branches/ntvdm/; revision=59754
2013-08-16 19:40:02 +00:00
Aleksandar Andrejevic 5ffc6554be [NTVDM]
Remove the "new emulator" started in emulator.c in favor of Soft386.


svn path=/branches/ntvdm/; revision=59753
2013-08-16 19:33:04 +00:00
Aleksandar Andrejevic 005e1f0559 [SOFT386]
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
2013-08-16 19:21:02 +00:00
Sylvain Petreolle ec58bdeae3 [NTVDM]
Report VGA card as present.

svn path=/branches/ntvdm/; revision=59751
2013-08-16 18:33:24 +00:00
Hermès Bélusca-Maïto e3345a32fb [NTVDM]
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
2013-08-15 21:10:09 +00:00
Aleksandar Andrejevic 08dc1d3e16 [NTVDM]
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
2013-08-15 01:40:50 +00:00
Aleksandar Andrejevic a9fdfb3371 [NTVDM]
Fix bug in DosTerminateProcess.


svn path=/branches/ntvdm/; revision=59740
2013-08-14 23:28:45 +00:00
Aleksandar Andrejevic 58931acc6a [NTVDM]
Fix VGA interleaved mode.


svn path=/branches/ntvdm/; revision=59739
2013-08-14 21:55:50 +00:00
Aleksandar Andrejevic 516653f447 [NTVDM]
Fix 16 color modes.
Implement 4-bit interleaved shift mode.


svn path=/branches/ntvdm/; revision=59738
2013-08-14 17:17:43 +00:00
Aleksandar Andrejevic 05b8a9a86c [NTVDM]
Use the correct values for AC registers.


svn path=/branches/ntvdm/; revision=59734
2013-08-14 12:25:43 +00:00
Hermès Bélusca-Maïto 738d02adf2 [NTVDM]
Simplify the code

svn path=/branches/ntvdm/; revision=59730
2013-08-13 20:15:24 +00:00
Aleksandar Andrejevic 0c3e20ab89 [NTVDM]
Fix bug with VGA DAC register access.


svn path=/branches/ntvdm/; revision=59729
2013-08-13 19:00:02 +00:00
Aleksandar Andrejevic 409b1ee254 [NTVDM]
Fix VGA register constants.


svn path=/branches/ntvdm/; revision=59728
2013-08-13 18:41:35 +00:00
Hermès Bélusca-Maïto e387f7f1cd [NTVDM]
- Add new BIOS video modes (obtained from DosBox with the help of Aleksander)
- Remove an unneeded comment.

svn path=/branches/ntvdm/; revision=59724
2013-08-13 16:49:54 +00:00
Aleksandar Andrejevic 6646ea182c [NTVDM]
Use RGB() macro instead of defining the hexadecimal values manually, which were incorrect.


svn path=/branches/ntvdm/; revision=59721
2013-08-13 11:57:10 +00:00
Hermès Bélusca-Maïto 8a6a428ccc [NTVDM]
- Simplify code (flags resetting)
- Fix console palette initialization (use version 3) and palette change.

svn path=/branches/ntvdm/; revision=59720
2013-08-13 11:09:10 +00:00
Hermès Bélusca-Maïto 53fa8a9cdd Formatting fix only.
svn path=/branches/ntvdm/; revision=59719
2013-08-13 11:06:02 +00:00
Aleksandar Andrejevic 5a7a26d750 [NTVDM]
Synchronize with trunk again for SetConsolePalette.
Implement VGA palettes for graphics mode and DAC register access.


svn path=/branches/ntvdm/; revision=59713
2013-08-12 19:31:54 +00:00
Aleksandar Andrejevic f86c0161e0 [NTVDM]
Fix bug in DosChangeDirectory.


svn path=/branches/ntvdm/; revision=59701
2013-08-11 21:07:09 +00:00
Aleksandar Andrejevic 5921c465db [NTVDM]
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
2013-08-11 20:54:07 +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 b34e5646dd [NTVDM]
Optimize screen clearing by implementing it as a helper function in vga.c.


svn path=/branches/ntvdm/; revision=59690
2013-08-10 19:30:14 +00:00
Aleksandar Andrejevic acf127fe24 [NTVDM]
Clear the screen when switching video modes.


svn path=/branches/ntvdm/; revision=59688
2013-08-10 19:24:00 +00:00
Aleksandar Andrejevic 7b2978c43f Synchronize with trunk to fix spec2def issue.
[NTVDM]
Implement write modes and latch register for VGA.


svn path=/branches/ntvdm/; revision=59687
2013-08-10 17:06:04 +00:00
Aleksandar Andrejevic 022895e518 [NTVDM]
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
2013-08-09 23:52:08 +00:00
Hermès Bélusca-Maïto 6a2534345c Fix formatting, no code changes.
svn path=/branches/ntvdm/; revision=59682
2013-08-09 18:55:35 +00:00
Hermès Bélusca-Maïto 2f3827d040 [NTVDM]
Simplify code.

svn path=/branches/ntvdm/; revision=59681
2013-08-09 14:01:43 +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
Hermès Bélusca-Maïto d497b99734 [NTVDM]
Implement INT 10h, function 04h (Query Light Pen) (deprecated)

svn path=/branches/ntvdm/; revision=59677
2013-08-09 13:06:01 +00:00
Hermès Bélusca-Maïto 5670c032a9 Fix the fix.
svn path=/branches/ntvdm/; revision=59676
2013-08-09 11:55:31 +00:00
Hermès Bélusca-Maïto fda0b22ee8 [NTVDM]
Fix cursor position.

svn path=/branches/ntvdm/; revision=59675
2013-08-09 11:41:13 +00:00