Commit graph

55285 commits

Author SHA1 Message Date
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 62da9a9deb [FAST486]
Physical memory read/write callbacks don't need to return a value.


svn path=/branches/ntvdm/; revision=60765
2013-10-27 01:38:24 +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
Hermès Bélusca-Maïto fcbe98e6b6 [SOFTX86]
Remove the now-unneeded headers. Bye-bye SoftX86 !

svn path=/branches/ntvdm/; revision=60758
2013-10-26 21:26:28 +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 dfd1c031d6 [FAST486]
Implement the CLTS instruction.


svn path=/branches/ntvdm/; revision=60752
2013-10-26 17:33:10 +00:00
Aleksandar Andrejevic 1525a235a2 [FAST486]
Implement the MOV instruction for control and debug registers.
Remove definitions for non-existant registers CR1, CR4, CR5, CR6 and CR7.
The standard 80486 doesn't have a CR4 register (although some implementations
of the 80486 had large page support and CR4, it was not reliable).
As for the debug registers, DR4 is the same as DR6, and DR5 is the same as DR7.


svn path=/branches/ntvdm/; revision=60747
2013-10-26 00:56:11 +00:00
Aleksandar Andrejevic 87f5903d48 [FAST486]
Implement extended opcode groups 0xB9 (UD2) and 0xBA (BT/BTS/BTR/BTC).


svn path=/branches/ntvdm/; revision=60745
2013-10-25 18:15:24 +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 5eb7c07bb8 Sync with trunk for console graphics palettes.
svn path=/branches/ntvdm/; revision=60735
2013-10-23 00:26:50 +00:00
Hermès Bélusca-Maïto dd2d4349e2 [CONSRV]:
Fix console palette setting. For that, we create a console framebuffer on which we draw the different active screen buffers (be they text or graphics), we can change the palette associated to this framebuffer and then we draw the framebuffer on screen.
Console palettes now work !!!!!! @ [TheFlash]

Part 2/2

svn path=/trunk/; revision=60734
2013-10-23 00:12:17 +00:00
Thomas Faber 8efecdcf15 [EXPLORER]
- Remove no longer needed special casing for __MINGW32__. Patch by Ivan Rodionov.
CORE-7335 #resolve #comment Thanks! Committed in r60733.

svn path=/trunk/; revision=60733
2013-10-22 19:51:25 +00:00
Thomas Faber 053591f6b4 [SHELL32_WINETEST]
- Add tests for SHCreateShellFolderView[Ex]. Already applied upstream.
CORE-7334

svn path=/trunk/; revision=60732
2013-10-22 19:09:45 +00:00
Thomas Faber 508dc39a87 [SHELL32]
- Import SHCreateShellFolderView implementation and fixes for -Ex from Wine
CORE-7334 #resolve

svn path=/trunk/; revision=60731
2013-10-22 19:01:07 +00:00
Eric Kohl 9a3424b618 [SAMSRV]
Create and set a security descriptor for new group account objects.

svn path=/trunk/; revision=60730
2013-10-21 20:16:56 +00:00
Eric Kohl ab4c296d0f [SAMSRV]
Create and set a security descriptor for new alias account objects.

svn path=/trunk/; revision=60729
2013-10-21 18:53:26 +00:00
Eric Kohl 89f9c12117 [SAMSRV]
- SampSetupCreateUserAccount, SamrCreateUserInDomain and SamrCreateUser2InDomain: Set the PrivateData attribute.
- SamrGetAliasMembership: Remove a superfluous call to SampRegCloseKey.
- SampQueryUserAll and SampSetUserAll: Disable access to the SecDesc attribute as long as it is not set upon user account creation.

svn path=/trunk/; revision=60728
2013-10-21 10:25:21 +00:00
Eric Kohl e64f2a9675 [INCLUDE]
- sam.idl: Rename GROUP_ATTRIBUTE_INFORMATION to SAMPR_GROUP_ATTRIBUTE_INFORMATION in order to avoid confilcts with new types in ntsam.h.
- ntsam.h: Add missing group specific structures.

svn path=/trunk/; revision=60727
2013-10-21 09:13:14 +00:00
Hermès Bélusca-Maïto 92bd19337b [CONSRV][WIN32K]
- Fix console palette setting; introduce the ConsoleMakePalettePublic control code for NtUserConsoleControl API which
  is called by the SetConsolePalette to make the given palette handle public (indeed, the caller to SetConsoleHandle
  gives to this API a GDI palette handle which is aimed at being used by another process, i.e. by CSRSS.EXE; in normal
  operation this is impossible unless saying to GDI that the handle is meant to be public; that's what it's done there).

  Thanks to Aleksander and David (who provided tests) and Timo (see revision 60725) for having helped me in understanding
  what happened exactly there.

- Remove now-unneeded DPRINT1s and the hacked palette that was introduced in revision 60629/60641.

Part 1/2

svn path=/trunk/; revision=60726
2013-10-20 22:35:15 +00:00
Timo Kreuzer 9625b9b820 [WIN32K]
Add GreSetObjectOwnerEx, allowing to set the owner of not-owned objects by passing GDIOBJFLAG_IGNOREPID as 3rd parameter. Use with care :) Dedicated to Alexander and Hermès.

svn path=/trunk/; revision=60725
2013-10-20 19:46:28 +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 56df983f97 Fix the fix.
svn path=/trunk/; revision=60723
2013-10-20 13:54:16 +00:00
Hermès Bélusca-Maïto 9d3f488a57 [USETUP]: Fix spanish translations, suggestions by Mario Rugiero and Julio Carchi
CORE-7516 #resolve #comment Suggestions committed in revision r60722. Thanks :)

svn path=/trunk/; revision=60722
2013-10-20 13:51:18 +00:00
Aleksey Bragin 41537ba703 [NTOS]
- Correctly compute addresses of MI_VAD_BITMAP and MI_WORKING_SET_LIST. In trunk's MM it went unnoticed because nothing really cares about these two structs.

svn path=/trunk/; revision=60721
2013-10-20 09:41:54 +00:00
James Tabor 746f5c09a7 - Fix ATI test and go.
svn path=/trunk/; revision=60720
2013-10-20 05:36:36 +00:00
James Tabor 533fa53c13 - Fix build.
svn path=/trunk/; revision=60719
2013-10-20 05:31:48 +00:00
James Tabor d700b033fc [Win32k]
- The (ATI) patch CORE-6551. Please oh please use this jira core issue for all bug reports and regressions.
- Major rewrite to input message queue. It is now attachable between threads. After all the hubbub the only thing we pass are all the SetActive/Foreground/Parent/Window wine msg and win tests. But not the message sequence tests.
- Pass all but one foreground API User32 ATI test when the message patch is installed. But w/o it, pass all but 8'ish.
- Tested XP osk (On-Screen Keyboard) with CMD, it works but is quirky. Need to look into set to top window issues.
- AHK issues work long as ATI is used and when it is not the some AHK tests fail. That was why all the hot key changes had been committed before. Still looking into this.
- Please test everything and post to the appropriate jira issue reports. I do not have a lot of time anymore to focus hard on many issues, it will take months to do so with just one.

svn path=/trunk/; revision=60718
2013-10-20 05:16:52 +00:00
Aleksandar Andrejevic 67b093f38c [FAST486]
Create a macro SWAP (swaps two variables) to shorten the code.
Implement the BSWAP instruction.


svn path=/branches/ntvdm/; revision=60717
2013-10-20 00:55:31 +00:00
Aleksandar Andrejevic a93095e678 [FAST486]
Implement BT, BTS, BTR and BTC.


svn path=/branches/ntvdm/; revision=60716
2013-10-20 00:25:41 +00:00
Aleksandar Andrejevic 1a968e6f61 [FAST486]
Fix more prefix handling.
Create the macros TOGGLE_ADSIZE and TOGGLE_OPSIZE to shorten the code.


svn path=/branches/ntvdm/; revision=60715
2013-10-19 23:43:53 +00:00