Commit graph

224 commits

Author SHA1 Message Date
Aleksandar Andrejevic cf559336a1 [NTVDM]
The command line in the PSP consists only of the parameters, the program
name is omitted.


svn path=/branches/ntvdm/; revision=60959
2013-11-12 01:56:18 +00:00
Aleksandar Andrejevic 1ff6bc0f8f [NTVDM]
Report the correct number of paragraphs in the PSP of a COM program.


svn path=/branches/ntvdm/; revision=60958
2013-11-12 00:49:02 +00:00
Aleksandar Andrejevic b781febbfe [NTVDM]
Implement vertical scrolling in BiosScrollWindow.


svn path=/branches/ntvdm/; revision=60955
2013-11-11 20:41:55 +00:00
Aleksandar Andrejevic eaf248fe87 [NTVDM]
Implement CMOS registers 15h, 16h, 17h and 18h.


svn path=/branches/ntvdm/; revision=60946
2013-11-11 17:59:04 +00:00
Hermès Bélusca-Maïto 0d174d717c [NTVDM]: Display more detailed information about which unknown interruption was called.
svn path=/branches/ntvdm/; revision=60943
2013-11-11 17:05:02 +00:00
Aleksandar Andrejevic 9ccaa9f1c4 [NTVDM]
Implement INT 15h, AH = 87h, "Copy Extended Memory".


svn path=/branches/ntvdm/; revision=60942
2013-11-11 16:47:10 +00:00
Aleksandar Andrejevic e53821aed0 [NTVDM]
Implement the miscellaneous BIOS system service (INT 15h) handler.
Implement INT 15h, AH = 88h, "Get Extended Memory Size".


svn path=/branches/ntvdm/; revision=60938
2013-11-11 04:00:10 +00:00
Aleksandar Andrejevic 442302eeb3 [NTVDM]
Give the virtual machine 16 MB of memory, for DOS extenders,
protected mode programs, etc...
EMS is still not implemented.


svn path=/branches/ntvdm/; revision=60937
2013-11-11 03:45:39 +00:00
Hermès Bélusca-Maïto ff2d706fb5 [NTVDM]: Fix CMOS file sharing access (so that we allow multiple ntvdm running with the same cmos data).
svn path=/branches/ntvdm/; revision=60934
2013-11-11 02:35:06 +00:00
Aleksandar Andrejevic cc1f7c6985 [NTVDM]
To make debugging easier, put the interrupt handlers at offset 0x1000,
and reserve 16 bytes for each. Also, move the common stub to offset
0x2000. That way the entry point of, for example, INT 0x21 is at
F000:1210.


svn path=/branches/ntvdm/; revision=60933
2013-11-11 02:27:29 +00:00
Aleksandar Andrejevic c3c7bb89c1 [FAST486]
Modularize linear memory access by adding two new functions:
Fast486ReadLinearMemory and Fast486WriteLinearMemory.
Implement Fast486GetPageTableEntry.


svn path=/branches/ntvdm/; revision=60923
2013-11-10 22:27:24 +00:00
Aleksandar Andrejevic 7c036fd0f7 [NTVDM]
Remove unnecessary indentation and clarify the code a bit.


svn path=/branches/ntvdm/; revision=60919
2013-11-10 18:14:40 +00:00
Hermès Bélusca-Maïto e4946e8b85 [NTVDM]
Instead of reassembling each time the very same common stub code for each interrupt, do it once, and then assemble just a little part for each interrupt and jump to the common stub.
Now the 4DOS Ctrl-C exception bug changes, but I have an idea what's happening in there...

svn path=/branches/ntvdm/; revision=60917
2013-11-10 16:22:33 +00:00
Hermès Bélusca-Maïto bf2731fb9f [NTVDM]
- BIOS: Reorganize a bit the header, and close the input thread before closing the input handle (and not after).
- INT32: Fix a comment.
- CMOS: Put CMOS data into a structure called CMOS_MEMORY, introduce READ/WRITE_CMOS_DATA macros for simplifying code. Save CMOS memory into a file (à la Windows' NTVDM), which is loaded at startup.

svn path=/branches/ntvdm/; revision=60913
2013-11-10 13:12:02 +00:00
Aleksandar Andrejevic e62c987917 [NTVDM]
Fix the jump instruction offset. Spotted by Hermes Belusca-Maito.


svn path=/branches/ntvdm/; revision=60911
2013-11-10 01:19:50 +00:00
Aleksandar Andrejevic cc89902e00 [NTVDM]
Don't enable interrupts unless it's necessary in the interrupt handler.
[FAST486]
When handling interrupt signals, make sure at least one instruction is executed,
to prevent the CPU from being completely blocked by interrupt signals.


svn path=/branches/ntvdm/; revision=60910
2013-11-10 00:53:05 +00:00
Hermès Bélusca-Maïto dd9dafc7ff [NTVDM]
Finish my Interruption revamp.
- Move interrupt-related code from bop.c to int32.c
- Introduce InitializeInt32 helper so that one can initialize all the needed 16-bit stubs for the 32-bit interrupts.
- Remove unneeded defines in emulator.h and an exported variable in ntvdm.h.

svn path=/branches/ntvdm/; revision=60908
2013-11-09 23:01:11 +00:00
Hermès Bélusca-Maïto 6da6a5ce56 [NTVDM]
Start my work on modularizing registration of "32-bit" interrupts, i.e.
interrupts that are implemented in 32-bit mode, but are stubbed with 16-bit
code (so that 16-bit apps can call them).
The 16-bit stub code uses a BOP call to our Control BOP function (BOP 0xFF) which
can handle in theory many sub-functions (as the BOP 0x58 documented here: http://www.ragestorm.net/tutorial?id=27)
specified as an additional BYTE in the call:
0xC4 0xC4 bop_code <optional_bop_subfunction>
Here, for calling 32-bit interrupts we use our BOP 0xFF, subfunction 0xFF.
The final aim would be to generate the 16-bit stub code when one calls the RegisterInt32 helper function
(contrary to what's happening now, that is, the 16-bit stub code is generated for all of the interrupts
at BIOS initialization time, and we use it for BIOS and DOS interrupts).

svn path=/branches/ntvdm/; revision=60907
2013-11-09 22:15:40 +00:00
Hermès Bélusca-Maïto bf61aa1278 [NTVDM]
- Make usage of MAKEWORD;
- Introduce BiosGetCursorPosition and use it in BiosPrintCharacter;
- Use EmulatorWriteMemory instead of VgaWriteMemory somewhere in BiosPrintCharacter;
- Add support for tabs in BiosPrintCharacter (taken from DosBox).

svn path=/branches/ntvdm/; revision=60906
2013-11-09 19:55:04 +00:00
Aleksandar Andrejevic 81a5adf885 [NTVDM]
Allow COM programs to exit with a simple near return to PSP:0000. Spotted by Thomas Faber.


svn path=/branches/ntvdm/; revision=60904
2013-11-09 18:10:21 +00:00
Aleksandar Andrejevic f4f6809d67 [NTVDM]
Make the emulator callbacks non-static.
In BiosPrintCallback, use EmulatorWriteMemory instead of VgaWriteMemory, because
VgaWriteMemory does not do any input validation.
Improve EmulatorWriteMemory input validation and bound checking.


svn path=/branches/ntvdm/; revision=60903
2013-11-09 17:16:04 +00:00
Hermès Bélusca-Maïto 53d6212640 [NTVDM]: Fix informative comment.
svn path=/branches/ntvdm/; revision=60901
2013-11-09 16:19:14 +00:00
Aleksandar Andrejevic c6b2a6efc7 [NTVDM]
Instead of repeating the BOP, simply handle both 0x51 and 0x62 as the same function.


svn path=/branches/ntvdm/; revision=60900
2013-11-09 16:15:24 +00:00
Hermès Bélusca-Maïto fa940c2075 [NTVDM]
DOS: Implement INT 21h, AH 62h as a call to INT 21h, AH 51h.

svn path=/branches/ntvdm/; revision=60899
2013-11-09 16:11:52 +00:00
Hermès Bélusca-Maïto 592a3383e5 [NTVDM]: Improve DisplayMessage by also displaying the message in the debug log.
svn path=/branches/ntvdm/; revision=60898
2013-11-09 15:53:52 +00:00
Aleksandar Andrejevic e801e2f0ea [NTVDM]
Display the opcode when an unhandled exception occurs.


svn path=/branches/ntvdm/; revision=60897
2013-11-09 15:48:07 +00:00
Hermès Bélusca-Maïto ecd0b33743 [FAST486][NTVDM]: Rename the last two IO functions parameters in the same way as some CSR functions (ElementCount == DataCount; ElementSize == DataSize).
svn path=/branches/ntvdm/; revision=60896
2013-11-09 15:00:19 +00:00
Aleksandar Andrejevic 43ee57f2f7 [FAST486][NTVDM]
The behavior of the I/O port bus depends on the data width. In the case
of 16-bit/32-bit access, two/four adjacent ports will be accessed.


svn path=/branches/ntvdm/; revision=60891
2013-11-09 03:30:27 +00:00
Hermès Bélusca-Maïto e971f67673 [NTVDM]: Add offset information to the BIOS Data Area, and add missing fields. See the provided links in the patch for more information.
svn path=/branches/ntvdm/; revision=60890
2013-11-09 00:28:26 +00:00
Hermès Bélusca-Maïto 860c121da8 [NTVDM]
- BIOS: Implement INT 12h (BiosGetMemorySize)
- BOP/DOS: Add some DPRINTs for INT 25h, 2Fh and for unimplemented functions of INT 21h. It's for helping in testing 4DOS.COM

svn path=/branches/ntvdm/; revision=60889
2013-11-08 23:15:58 +00:00
Aleksandar Andrejevic da4af40329 [NTVDM]
For better visibility, double the screen size if the resolution is too low.


svn path=/branches/ntvdm/; revision=60888
2013-11-08 21:56:30 +00:00
Hermès Bélusca-Maïto 3a1ae6ee3b [NTVDM]: Further modularize initialization/resetting of the VGA palette code.
svn path=/branches/ntvdm/; revision=60887
2013-11-08 20:06:10 +00:00
Aleksandar Andrejevic fd61c2cba3 [NTVDM]
Implement the use of palettes for text mode. Adapted from a patch by Hermes Belusca-Maito.
Reset the palette during every BIOS video mode switch.


svn path=/branches/ntvdm/; revision=60886
2013-11-08 19:30:58 +00:00
Hermès Bélusca-Maïto 248dda401d [NTVDM]: Code formatting only.
svn path=/branches/ntvdm/; revision=60876
2013-11-06 22:43:40 +00:00
Hermès Bélusca-Maïto b41ec9f332 [NTVDM]
- Add a missing "goto Cleanup;"
- Add DPRINT1s at the beginning and the end of ntvdm, so that one can easily localize in debug logs where one started it. Suggested by Vampyre ;)

svn path=/branches/ntvdm/; revision=60860
2013-11-04 00:22:29 +00:00
Aleksandar Andrejevic 3fbe4cb107 [NTVDM]
Use BiosConsoleInput instead of calling GetStdHandle in the keyboard input thread.


svn path=/branches/ntvdm/; revision=60855
2013-11-03 21:52:58 +00:00
Aleksandar Andrejevic 36afa0ea12 [NTVDM]
Implement the CMOS and Real Time Clock (RTC).
Improve the performance of the PIT and RTC (correctly this time).


svn path=/branches/ntvdm/; revision=60854
2013-11-03 21:33:22 +00:00
Hermès Bélusca-Maïto e9f8b230a6 [NTVDM]
Start to implement a basic emulated PC speaker, using the Beep driver.

svn path=/branches/ntvdm/; revision=60853
2013-11-03 20:31:19 +00:00
Aleksandar Andrejevic a0587b741a [NTVDM]
Improve the I/O read/write callbacks to allow multiple reads or writes
at once.


svn path=/branches/ntvdm/; revision=60849
2013-11-03 14:37:30 +00:00
Hermès Bélusca-Maïto c0a85cdfce [NTVDM]
Implement INT 10h, AH 10h, AL 10h, 12h, 15h and 17h (set/get individual or block of DAC registers).

svn path=/branches/ntvdm/; revision=60846
2013-11-03 13:25:01 +00:00
Aleksandar Andrejevic 67d77ecebe [NTVDM]
Halfplement the BIOS palette control command (INT 10h, AH = 10h).


svn path=/branches/ntvdm/; revision=60842
2013-11-03 03:22:36 +00:00
Aleksandar Andrejevic fde9609542 [NTVDM]
Fix resolution calculation when scanline doubling is enabled.


svn path=/branches/ntvdm/; revision=60827
2013-11-02 01:51:27 +00:00
Hermès Bélusca-Maïto e9a30e1068 [NTVDM]: Add a DPRINT1 that can be useful later on...
svn path=/branches/ntvdm/; revision=60826
2013-11-02 01:24:27 +00:00
Hermès Bélusca-Maïto 5c220ef022 [FAST486]
Fix the type of a variable.

[NTVDM]
Introduce a BOP handler table for the 256 possible BOP functions and use it.

svn path=/branches/ntvdm/; revision=60818
2013-11-01 02:28:47 +00:00
Aleksandar Andrejevic 90d7fbd4a8 [NTVDM]
Revert a previous incorrect fix for the PIT.
Modify the PitDecrementCount function to take a parameter instead
of it being called multiple times (which is slower).


svn path=/branches/ntvdm/; revision=60816
2013-11-01 01:57:40 +00:00
Hermès Bélusca-Maïto 861776bd7e [FAST486][NTVDM]
- Introduce a Fast486Initialize which is used to set up the CPU callbacks (and use default ones if some of the given callbacks are NULL), and to reset it the first time. Now Fast486Reset is meant to be used for only resetting the CPU to a safe state.
- Hence we are now sure that State->WhateverCallback is never NULL (and is theoretically valid), so don't do NULL-checks when calling them, but call them directly. The default cases for those checks become the default calls for the default callbacks.
- Remove the now-unneeded EmulatorIdle function.

svn path=/branches/ntvdm/; revision=60814
2013-11-01 01:46:58 +00:00
Hermès Bélusca-Maïto 39a527a21e [FAST486][NTVDM]
BOP numbers are 1 byte and map to a function (over 255). But one can pass additional "parameters" to those functions by adding extra bytes, however such functions must advance "by hand" the instruction pointer.

[NTVDM]
- Take into account our previous remark for the BIOS interrupt stubs, and comment them.
- Rework EmulatorBiosOperation (move almost all of its existing code into subfunctions in bop.c) so that one can call many other BOP functions in the future (WIP). The BOP number (still called) EMULATOR_INT_BOP (of value 0xFF) is used for internal 16 --> 32 bit switching for our 32bit bios.
- It appears that the IoRead/WriteCallback and IdleCallback must not be NULL for using fast486. I'm committing a temporary fix that I will definitely fix in a subsequent commit.

svn path=/branches/ntvdm/; revision=60812
2013-11-01 00:01:07 +00:00
Aleksandar Andrejevic b7ac8cf58e [NTVDM]
Fix an EOI condition in the BIOS IRQ handler.


svn path=/branches/ntvdm/; revision=60801
2013-10-30 22:42:32 +00:00
Hermès Bélusca-Maïto da33c5532e Fix a comment.
svn path=/branches/ntvdm/; revision=60791
2013-10-29 21:46:47 +00:00
Hermès Bélusca-Maïto 4784c22d50 [NTVDM]: DOS:
- The DosErrorLevel is stored as a WORD: its LOWORD is the return code and the HIWORD is the termination code.
- When copying CurrentDirectories[...], be sure that we copy maximum DOS_DIR_LENGTH chars.
- Implement (or stubplement) bunch of INT 21h functions: 0x03, 0x04, 0x05, 0x0C, 0x0D, 0x26, 0x37, 0x47, 0x4D and 0x50. Functions 0x18, 0x1D, 0x1E and 0x20 are NULL functions present in DOS for CP/M compatibility only.
- Fix DOS version querying.
- Use set/getAX() instead of EmulatorSet/GetRegister, and use setCF instead of EmulatorSetFlag.

svn path=/branches/ntvdm/; revision=60790
2013-10-29 01:55:54 +00:00
Aleksandar Andrejevic 1c1febed17 [NTVDM]
Save the error code returned by applications.


svn path=/branches/ntvdm/; revision=60789
2013-10-29 00:10:14 +00:00
Aleksandar Andrejevic 97acc35c7c [NTVDM]
Improve performance by computing the resolution required by the PIT,
and then using the standard tick count instead of performance counters
when that resolution is low.


svn path=/branches/ntvdm/; revision=60783
2013-10-28 02:25:54 +00:00
Hermès Bélusca-Maïto b8d8b21ebd Code formatting only.
svn path=/branches/ntvdm/; revision=60782
2013-10-27 23:42:16 +00:00
Hermès Bélusca-Maïto 76708ef246 [NTVDM]
- DOS: the DOS file attributes are one byte.
- BIOS: don't use hardcoded values; use the SEG_OFF_TO_PTR macro introduced earlier; use get/setAX instead of EmulatorGet/SetRegister.

svn path=/branches/ntvdm/; revision=60781
2013-10-27 23:39:52 +00:00
Hermès Bélusca-Maïto 09d991b838 [NTVDM]
DOS: Make use of get/setAX and consorts instead of EmulatorGet/SetRegister(EMULATOR_REG_AX, ...).
Start to implement real (but undocumented?) behaviour according to http://www.delorie.com/djgpp/doc/rbinter/
and http://www.datadoctor.biz/fr/data_recovery_programming_book_chapter6-pageXX.html (change XX by a valid page number)
and http://spike.scu.edu.au/~barry/interrupts.html

svn path=/branches/ntvdm/; revision=60778
2013-10-27 22:31:53 +00:00
Hermès Bélusca-Maïto d35b972d75 [NTVDM]: Use SEG_OFF_TO_PTR ( $+ \epsilon * code _eorganization$ ).
svn path=/branches/ntvdm/; revision=60776
2013-10-27 22:13:18 +00:00
Hermès Bélusca-Maïto 720ab73ec3 [NTVDM]: DPRINT1 ReadConsoleInput failures (for debugging purposes) and remove an unneeded comment.
svn path=/branches/ntvdm/; revision=60775
2013-10-27 22:10:51 +00:00
Hermès Bélusca-Maïto b8fa6d1de4 [NTVDM]: Introduce the SEG_OFF_TO_PTR macro for code simplification purposes.
svn path=/branches/ntvdm/; revision=60774
2013-10-27 22:08:41 +00:00
Aleksandar Andrejevic 7e0285b710 [NTVDM]
The PS/2 should latch the last value that was read in the case of multiple reads.
Modify the BIOS keyboard IRQ handler to support hooks.


svn path=/branches/ntvdm/; revision=60773
2013-10-27 19:08:58 +00:00
Aleksandar Andrejevic 37430c188b [NTVDM]
Simplify BiosPeekCharacter.
Implement DOS direct console I/O functions.


svn path=/branches/ntvdm/; revision=60772
2013-10-27 16:34:27 +00:00
Aleksandar Andrejevic 161fc791e4 [NTVDM]
Implement the BIOS keyboard shift flags.


svn path=/branches/ntvdm/; revision=60771
2013-10-27 14:57:12 +00:00
Hermès Bélusca-Maïto d9c072aba2 [NTVDM]
Implement all the missing INT 16h functions but 03h. Also, for simplification purposes (should be fixed later on) act exactly the same for INT 00h and 10h, and for INT 01h and 11h.
Finally, one has to implement setting the BIOS KeybdShiftFlags flag.

svn path=/branches/ntvdm/; revision=60770
2013-10-27 14:17:34 +00:00
Hermès Bélusca-Maïto 4d28af9bb5 [NTVDM]: Fix the callback prototypes.
svn path=/branches/ntvdm/; revision=60769
2013-10-27 12:17:06 +00:00
Hermès Bélusca-Maïto 2c8e8ba5d3 [FAST486]
- Remove an unneeded inclusion to the CRT header: limits.h (and use instead NDK definitions for max/min long values).
- Remove unneeded comments...
[NTVDM]
Remove an unneeded add_dependencies(...) command.

svn path=/branches/ntvdm/; revision=60767
2013-10-27 11:42:44 +00:00
Aleksandar Andrejevic 8800ea89d1 [NTVDM]
Push scancodes on to the BIOS keyboard queue even if they're not ASCII.


svn path=/branches/ntvdm/; revision=60764
2013-10-27 01:33:15 +00:00
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 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
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
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