Commit graph

247 commits

Author SHA1 Message Date
Alexandre Julliard
19b6a49845 Allocate DebugInfo field for all critical sections (based on a patch
by Alex Pasadyn).
Get rid of the Wine-specific CRITICAL_SECTION_INIT macro.
2003-08-12 23:50:54 +00:00
Patrik Stridvall
ba78aac406 Fixed some issues found by winapi_check. 2003-08-08 21:07:23 +00:00
Jukka Heinonen
02c67f3114 Make int1a BIOS ticks be equal to BIOS segment ticks.
Fix bugs in int1a subfunctions.
2003-07-15 20:50:34 +00:00
Jukka Heinonen
4ef7ba7247 Real mode context should always have V86 flag turned on.
Entering protected mode uses simpler and more robust virtual interrupt
flag check.
Mouse events are now received in graphics modes.
Improved tracing output of int33 handler.
2003-07-08 21:11:52 +00:00
Marcus Meissner
39d1b9c0e5 DPMI exceptions only happen on i386. 2003-07-03 18:08:04 +00:00
Jukka Heinonen
2a3ce4c425 Start processing asynchronous DOS events in DPMI mode. 2003-07-01 03:37:41 +00:00
Dmitry Timoshkov
4e1ef0c114 For all DLLs with defined DllMain and which do not require
DLL_THREAD_ATTACH/DLL_THREAD_DETACH notifications, call
DisableThreadLibraryCalls() in order to slightly improve performance
on thread creation/exiting.
2003-06-30 20:53:48 +00:00
Alexandre Julliard
2b72be546c Replace calls to WaitForMultipleObjects with a 0 count by calls to
SleepEx.
2003-06-30 02:10:19 +00:00
Jukka Heinonen
36001fe660 Make timer IRQ handler regular builtin interrupt handler instead of
using an assembler stub.
2003-06-30 02:03:48 +00:00
Gerald Pfeifer
e7724ffc65 Enable all of DllMain(), even if if not MZ_SUPPORTED. 2003-06-27 19:41:10 +00:00
Sylvain Petreolle
1ce760568c Display the interrupt number in hexadecimal. 2003-06-27 19:40:29 +00:00
Gerald Pfeifer
018e3cc67b Expose part of DOSVM_SendQueuedEvents() also for platforms without
MZ_SUPPORTED.
2003-06-24 02:24:54 +00:00
Francois Gouget
17c035b684 O_RDONLY==0 but it's cleaner to pass it to DRIVE_OpenDevice() anyway. 2003-06-23 19:50:16 +00:00
Jukka Heinonen
76f93fb6bc Add IRQ acknowledge handler for internal IRQs.
Change DPMI asynchronous event handling.
Always use alternate stack in DPMI relays and check for pending events
after original stack has been restored.
2003-06-23 03:35:51 +00:00
Jukka Heinonen
75e87b4457 Add int31 VIF manipulation functions.
Fix asynchronous event locking.
Make asynchronous event handling support DPMI.
2003-06-20 21:27:49 +00:00
Jukka Heinonen
e827269a99 Migrate create/open file functions to winedos.
Some fixes based on patch by Ferenc Wagner.
2003-06-16 01:18:01 +00:00
Jukka Heinonen
0b79a6e7c3 Make DOSVM_Wait work in protected mode.
Replace SHOULD_PEND macro with a function.
2003-06-16 01:17:30 +00:00
Sylvain Petreolle
918d8f3e20 Trace which real mode interrupt is emulated. 2003-06-13 23:17:34 +00:00
Jukka Heinonen
4cbc69a223 Move get current directory and set current directory int21
subfunctions into winedos. Fix quite a few bugs in the implementation
of these functions.
2003-06-13 18:05:18 +00:00
Jukka Heinonen
b2844d2c3a Split timer code into separate source file.
Stop using SIGALRM for timers.
2003-06-13 16:28:49 +00:00
Jukka Heinonen
7731c8e33e Pending timer interrupts no longer deadlock DOSVM_Wait.
Restored interrupt priorities to correct values.
2003-06-06 18:09:14 +00:00
Jukka Heinonen
f07dfff17b Migrate most int21 ioctl routines to winedos.
Migrate int21 set drive routine to winedos.
2003-06-04 20:17:52 +00:00
Jukka Heinonen
3da6ff753e Added some long filename functions. 2003-05-20 17:49:04 +00:00
Jukka Heinonen
c646408568 Move get current drive int21 function to winedos.
Fix spelling mistakes.
Add some drive handling helper routines.
2003-05-19 21:40:05 +00:00
Alexandre Julliard
a098c82aac Moved vxd support to winedos. 2003-05-15 23:25:49 +00:00
Alexandre Julliard
3b4143aea0 Thomas Mertes <thomas.mertes_at_gmx.at>
Implement file control block (FCB) functions:
  INT21_OpenFileUsingFCB [0x0f],
  INT21_CloseFileUsingFCB [0x10],
  INT21_SequenialReadFromFCB [0x14],
  INT21_SequenialWriteToFCB [0x15],
  INT21_ReadRandomRecordFromFCB [0x21],
  INT21_WriteRandomRecordToFCB [0x22],
  INT21_RandomBlockReadFromFCB [0x27],
  INT21_RandomBlockWriteToFCB [0x28].
2003-05-15 22:54:43 +00:00
Jukka Heinonen
cadffabd2d Make read from stdin use buffered input code and redirect stderr to
console.
2003-05-11 03:30:24 +00:00
Jukka Heinonen
fb3080a2f3 Add scrolling support for VGA text mode. 2003-05-07 03:16:34 +00:00
Jukka Heinonen
643e8740d5 Report errors to applications when illegal dates are passed to set
system date call (required by many installation checks).
2003-05-06 00:12:52 +00:00
Marcus Meissner
cba9795f14 Fixed non-x86 DOSVM_Wait prototype. 2003-05-04 02:25:21 +00:00
Jukka Heinonen
e2ae56e0b9 Remove obsolete code from DOSVM_Wait.
Prepare DOSVM_Wait for handling nested interrupts in both real and
protected mode.
Provide temporary workaround for keyboard related deadlock.
2003-05-02 20:12:52 +00:00
Jukka Heinonen
40bebee7ce Report correct IRQ bases to DPMI applications.
Make int31 print more tracing information.
2003-05-02 20:12:10 +00:00
Jukka Heinonen
f93d452d78 Fix argument passing to DOS program from winevdm.
Add support for invoking DOS programs with long command lines.
2003-05-02 20:11:52 +00:00
Alexandre Julliard
78654e2bff Fixed non-MZ case broken by previous patch. 2003-04-27 20:38:22 +00:00
Alexandre Julliard
fedc411743 Moved the functionality of starting Win16 and DOS programs from the
common process startup into a separate winevdm application.
2003-04-27 00:47:58 +00:00
Jukka Heinonen
013f89465c Moved dosconf.c to winedos. 2003-04-21 23:22:53 +00:00
Jukka Heinonen
af4f0ee240 Interrupt handling now prints more trace information.
Replaced some magic numbers with preprocessor constants.
2003-04-13 01:06:36 +00:00
Jukka Heinonen
31f35146b9 Return correct segment for VESA information.
Check oem number/version flag first and after that overwrite condition
code.
2003-04-08 19:41:03 +00:00
Alexandre Julliard
06a8c1203f Portability fixes. 2003-04-01 00:12:50 +00:00
Jukka Heinonen
6f6eb82dfc Add prototype for GetCompressedFileSize. Move some int21 functions to
winedos. Improve file attribute functions.
2003-03-30 03:04:37 +00:00
Alexandre Julliard
3dc1f2dff3 Changed the SET_AX etc. macros to not return a value. 2003-03-22 21:12:27 +00:00
Jukka Heinonen
4c6e36faf2 Move real mode interrupt emulation code to file interrupts.c.
Remove last wrapper check from int31 handler.
Move RM/PM hardware interrupt emulation code to separate functions.
2003-03-04 02:16:20 +00:00
Jukka Heinonen
2918ee6b0d Move decoding of long file name functions to winedos.
Move some int21 functions to winedos.
2003-03-04 02:15:56 +00:00
Alexandre Julliard
ce13153821 Moved LDT selector allocation routines to libwine.
Added support for correct locking of all LDT operations.
Added separate functions to manipulate the %fs selector, which allows
using a global GDT selector on recent Linux kernels.
2003-02-26 20:34:45 +00:00
Sylvain Petreolle
149c0c520b Implemented DSP Version command. 2003-02-26 20:27:23 +00:00
Jukka Heinonen
f498d4b8fb Move controller info and state/functionality info initialization to
winedos. Convert many incorrectly static fields into dynamic
fields. Fix vesa mode reporting and realloc memory block consistency
checks.
2003-02-26 05:02:54 +00:00
Michael Stefaniuc
745a78f490 Remove some unreachable code. 2003-02-24 20:48:45 +00:00
Gerald Pfeifer
2154db4d4e Fix TRACE format string. 2003-02-24 20:41:51 +00:00
Jukka Heinonen
a969416c56 Ignore get shadow buffer function.
Remember to synchronize VGA display on program exit because update
thread may not have time to run.
2003-02-19 23:27:01 +00:00
Jukka Heinonen
54f377c6c5 Move resize memory block to winedos and make it resize in place and
work correctly even when trying to allocate too much memory.
2003-02-19 22:11:04 +00:00
Jukka Heinonen
5812f52976 Outputting backspaces should only move the cursor.
Text buffer copy is now always initialized correctly.
Preserve video memory flag is parsed and text screen is now really
cleared when flag is clear.
2003-02-14 19:23:16 +00:00
Michael Stefaniuc
62ed0ffe00 Added some missing LeaveCriticalSection's. 2003-02-12 01:26:05 +00:00
Jukka Heinonen
101f91d9df Reorganize IOCTL handling.
Move ASPI hooking to winedos.
Move some miscellaneous functions to winedos.
Remove unnecessary exports from winedos dll.
2003-02-11 22:22:50 +00:00
Jukka Heinonen
b3143f6f70 Add locking to VGA_SetWindowStart.
Move console updates to update thread instead of immediately writing
to console.
2003-02-11 22:19:27 +00:00
Jukka Heinonen
d6b6dda6c1 Add support for VESA mode information.
Reorganize controller and state information routines.
2003-02-11 22:18:11 +00:00
Jukka Heinonen
8e8518d4ba Fix buffered input function. Add support for UMB subfunctions to
memory allocation strategy function. Move flock to winedos.
2003-01-30 00:17:03 +00:00
Jukka Heinonen
f0e1c04b87 Replace FIXMEs with TRACEs in those paging functions that really are
not supposed to do anything.
Add simple emulation of coprocessor state functions.
2003-01-28 00:19:21 +00:00
Jukka Heinonen
f92c8ca401 Return scancode when extended keycodes are read using console input
functions. Move file stamp handling to winedos. Implement DOS7 file
stamp extensions.
2003-01-28 00:18:57 +00:00
Jukka Heinonen
6758f027fa Handle horizontal and vertical retrace separately. 2003-01-28 00:16:15 +00:00
Jukka Heinonen
1f5e6994af Unify VGA and VESA video mode setting code. 2003-01-28 00:16:01 +00:00
Marcus Meissner
f63e5b646a Remove errno.h from files that do not need it. 2003-01-23 22:51:04 +00:00
Alexandre Julliard
f8aa3b506c Added -Wpointer-arith gcc flag, and fixed the resulting warnings. 2003-01-23 21:32:35 +00:00
Jukka Heinonen
66b29b275e Return number of bytes written when writing to DOS console using int21
function 0x40. Move some int21 functions to winedos.
2003-01-23 01:23:01 +00:00
Jukka Heinonen
fcba2b538e Reorganize int10 code. Fix comments. 2003-01-23 01:22:40 +00:00
Lawson Whitney
0c391fe32f Fix reversed hour and minute in int 21 ah=2c. 2003-01-20 23:22:27 +00:00
Dimitrie O. Paun
297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Eric Pouech
0fcada9fa7 Removed unused #include of module.h. 2003-01-02 17:59:47 +00:00
Jukka Heinonen
9d7ff6c85b Add support for DPMI32. Make winedos16.dll unnecessary. 2002-12-15 01:18:40 +00:00
Dimitrie O. Paun
737d4be892 Move excpt.h out of include/msvcrt/ as it does not conflict with any
standard Unix header.
2002-12-12 23:34:01 +00:00
Alexandre Julliard
dbf8b78acd Added .spec.def files. 2002-12-12 22:04:04 +00:00
Alexandre Julliard
435e2e63f4 winnt.h should not be self-contained, it must depend on windef.h so
that STRICT works correctly; moved some definitions back to windef.h
where they belong, and removed a couple of definitions that don't
exist on Windows.
2002-12-10 22:56:43 +00:00
Jukka Heinonen
be1c6deb18 Move int21 country information handling to winedos.
Improve country information handling.
Move collate table to upper memory.
2002-12-10 19:58:39 +00:00
Jukka Heinonen
1cfc850b2c Move int08 stub and LOL to upper memory.
Move simple int21 functions to winedos.
2002-12-07 23:46:41 +00:00
Jukka Heinonen
2ec8b71bae Clean up int21 handling. Move error handling to winedos.
Call INT_Int21Handler only to emulate selected functions.
2002-12-03 19:11:49 +00:00
Jukka Heinonen
7b7f198786 Move DPMI segments to winedos. 2002-12-02 21:39:58 +00:00
Jukka Heinonen
742142521a Rename old DOS3Call as INT_Int21Handler and make new DOS3Call call
directly winedos int21 handler.
2002-12-02 18:58:32 +00:00
Jukka Heinonen
c71cf7e60f Move int13 handler to winedos. 2002-12-02 18:57:42 +00:00
Francois Gouget
d2667a4ce3 Removed unnecessary HANDLE typecasts. 2002-12-02 18:10:57 +00:00
Andreas Mohr
60e0491fa2 Fixed text mode value. 2002-11-30 01:50:55 +00:00
Jukka Heinonen
3546290285 Moved handlers for int25 and int26 to winedos. 2002-11-27 20:18:50 +00:00
Jukka Heinonen
98058eb14d Moved handlers for int11, int15 and int5c to winedos. 2002-11-24 22:34:04 +00:00
Jukka Heinonen
5d3b7e64ec VGA text mode no longer flickers and it is much faster.
VGA text mode is now initialized earlier.
VGA text mode is now emulated even without console.
2002-11-24 22:15:56 +00:00
Jukka Heinonen
ab163db7c0 Move int2f handler to winedos.
Clean winedos headers a bit.
2002-11-23 02:23:54 +00:00
Jukka Heinonen
02e177759d Removed obsolete INT_Int31Handler. 2002-11-18 22:53:38 +00:00
Jukka Heinonen
d41581dbde DeviceIoControl now calls winedos interrupt handlers.
Fixed RawModeSwitch.
2002-11-15 01:35:52 +00:00
Marcus Meissner
94c7fa702d Do not define MZ_SUPPORTED if we do not have sys/vm86.h for all the
struct definitions.
2002-11-13 19:37:24 +00:00
Jukka Heinonen
416c2aeb00 Move simple interrupt handlers to winedos. 2002-11-12 23:29:48 +00:00
Jukka Heinonen
69f74dbf0e Move all int31 functions to winedos.
Fix some obvious bugs in int31 functions.
2002-11-11 19:55:52 +00:00
Jukka Heinonen
fe2acc1389 Start using winedos handlers for all interrupts. 2002-11-06 21:56:52 +00:00
Patrik Stridvall
517a93afe3 Fixed some issues found by winapi_check. 2002-11-06 19:57:49 +00:00
Jukka Heinonen
23be4ff094 Move most int31 functions to winedos.
Add DPMI32 fixes.
2002-11-06 19:54:39 +00:00
Alexandre Julliard
1e1313d54c Made the dll entry point default to DllMain and removed most of the
'init' spec file declarations.
2002-11-04 23:53:41 +00:00
Jukka Heinonen
3c9d9182eb Ignore VCPI installation checks. Handle XMS query any extended memory
function. Add stubs for get/set exception handler vector.
2002-11-04 22:35:36 +00:00
Jukka Heinonen
6a216d0eb7 When returning from 32-bit default interrupt handlers, eflags are now
returned correctly.
2002-11-04 22:35:15 +00:00
Jukka Heinonen
c1c346ae0d Prevent crashes when DOS program tries to access console and no
Windows console is available.
2002-10-31 03:41:20 +00:00
Alexandre Julliard
1e85f70899 Added winedos16.spec.c. 2002-10-30 23:53:49 +00:00
Jukka Heinonen
eb2a39e460 Add winedos16.dll which contains 16-bit protected mode interrupt entry
points.
2002-10-30 23:40:13 +00:00
Jukka Heinonen
6f6abac4f1 Modify winedos interrupt handlers so that they work with PM
interrupts.
Add forwarding functions for handlers in other DLLs.
Make DOSVM_GetBuiltinHandler use static table instead of
GetProcAddress.
2002-10-29 23:09:30 +00:00
Andreas Mohr
90ce2c896f - Make int09 update the BIOS data segment's keyboard status flags
bytes, implement pause key handling.
- Let int16/02 read the keyboard status flags bytes instead of calling
  GetAsyncKeyState().
- Make the keyboard state buffer used for Get*Key*() reflect
  VK_L/RMENU properly.
- Small fixes.
2002-10-28 23:51:27 +00:00
Jukka Heinonen
7710b3c8f3 Add routines for manipulating protected mode interrupt handlers to
winedos dll. Add routine for checking if process is Windows process.
Fix DOSVM_IsDos32 interface. Move real mode interrupt handler
manipulation routines to interrupts.c.
2002-10-28 20:12:40 +00:00