Commit Graph

341 Commits

Author SHA1 Message Date
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
Andreas Mohr 1b6f2574cd Tiny int17 printer fix. 2002-10-25 03:49:15 +00:00
Chris Morgan 23f9d682a1 Call CreateProcessA() when executing non-dos applications from a dos
application.
2002-10-23 23:35:34 +00:00
Jukka Heinonen eca6182749 Move interrupt emulation code from INSTR_EmulateInstruction to winedos
dll. Make CTX_SEG_OFF_TO_LIN work with 32-bit segmented pointers
common in DPMI32. Fix winedos initialization so that DOSMEM_Init(TRUE)
is only called when DOS executable is started.
2002-10-23 22:24:10 +00:00
Patrik Stridvall fb1a572b64 Fix for platforms not supporting DOS mode. 2002-10-23 20:16:36 +00:00
Alexandre Julliard b34fb35b31 Fixed warnings caused by conversion to -DSTRICT. 2002-10-18 23:48:57 +00:00
Alexandre Julliard 011605edf3 Use the WOWHandle functions to convert between task handle and thread
id. Stop exporting TASK_GetPtr and THREAD_IdToTEB from kernel.
2002-10-17 18:26:53 +00:00
Dmitry Timoshkov 472d016859 Correct SIZE_T size according to MS SDK.
Change some types to SIZE_T according to MS SDK definitions.
2002-09-21 01:21:00 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Alexandre Julliard cea2e825b2 Link all remaining dlls except kernel32 as separated dlls, by
temporarily exporting the few functions that are not properly
separated yet.
2002-09-06 18:51:31 +00:00
Alexandre Julliard 65ea73fedf Added DPMI segments structure and related function to avoid direct
references to dosmem internal variables.
Determine BIOS system offsets at compile time.
2002-09-04 18:52:22 +00:00
Alexandre Julliard 3fa613cf61 Moved internal context macros out of winnt.h.
Added SET_AX etc. macros to avoid non-portable pointer manipulations.
2002-08-31 18:47:00 +00:00
Alexandre Julliard 0d875e773e Fixed some dll separation issues. 2002-08-30 00:03:25 +00:00
Patrik Stridvall 1ee88a2bfb Removed trailing white space. 2002-08-28 23:43:43 +00:00
Dmitry Timoshkov d75aed2c92 Convert most of the file APIs to Unicode. 2002-08-27 01:13:58 +00:00
Patrik Stridvall d016f819f1 Added include protection for unistd.h and sys/time.h. 2002-08-17 00:43:16 +00:00
Jukka Heinonen 77c239979a Add support for moving VGA controller window in framebuffer using SVGA
interrupts. Detect correctly color plane modes and linear modes,
including Mode-X. Moved VESA interrupts into separate function and
implemented few more stubs.
2002-08-13 03:17:42 +00:00
Patrik Stridvall 4325554aef Fixed some issues found by winapi_check. 2002-08-09 01:07:29 +00:00
Alexandre Julliard 267ca68253 Fixed HANDLE<->HFILE conversions, since they will be different types
when handles are void*.
2002-07-31 17:20:00 +00:00
Chris Morgan 6ecade7c84 Some dos VGA error handling. Misc TRACE changes. 2002-07-29 23:51:57 +00:00
Jukka Heinonen 216e0248bc VGA emulation now supports outw and outl. 2002-07-29 23:29:03 +00:00
Jukka Heinonen b975aaaa2b Add VGA controller framebuffer between VGA window and
DirectDrawSurface.
2002-07-29 23:28:52 +00:00
Jukka Heinonen 0984b34783 Add decoding logic for VGA indexed registers. 2002-07-28 17:42:30 +00:00
Admiral Coeyman 9cb2b210aa Added support for FPU emulation interrupts. 2002-07-10 23:22:29 +00:00
Andreas Mohr 73f0bfb838 Better toggle all relevant bits in VGA crt register. 2002-07-03 21:04:44 +00:00
Andreas Mohr 45f5f5dabb Make sure we wait some time during int16 keyboard query call. 2002-07-03 01:13:34 +00:00
Andreas Mohr 5ab5c4991c Added a DOS text mode memory buffer copy in order to be able to tell
which lines of text changed and thus which ones to update.
2002-07-03 01:13:17 +00:00
Andreas Mohr db31151b1e Implemented set cursor shape functionality. 2002-07-01 18:13:52 +00:00
Jukka Heinonen 97a003fc37 Redirect all reads and writes to VGA controller to VGA emulation.
Catch and report 16/32-bit reads/writes to VGA controller.
Use correct flags when creating full screen DirectDraw window for
VGA.
2002-06-24 22:57:28 +00:00
Jukka Heinonen d19a64eafa Add save/restore mapping context routines.
Add map multiple pages routine.
Add partial implementation of hardware information query routine.
Replace incorrect use of MapSL with PTR_REAL_TO_LIN.
2002-06-24 22:50:22 +00:00
Alexandre Julliard 77afd6c47e Made some more spec file entries optional or unnecessary.
Fixed a few DLLName/DLLFileName mismatches.
2002-06-21 19:15:45 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Christian Costa cc208a151f The SVGA block code was not accessible (AH and AL inverted). Fixed.
Removed duplicate VESA Get SuperVGA INFORMATION function.
Fix and finish its implementation.
Add 2 functions to managed structures in the BiosSys segment.
2002-05-28 22:44:53 +00:00
James Juran 32886f6b88 Add missing \n to output messages. 2002-05-24 21:17:59 +00:00
Alexandre Julliard 55e845d11b Removed most inclusions of options.h.
Removed a few no longer used PROFILE_* functions.
2002-05-23 19:40:18 +00:00
Alexandre Julliard 261e28a775 Removed some unnecessary imports. 2002-05-23 02:46:10 +00:00
Patrik Stridvall 5e6943f421 Fixed some issues found by winapi_check. 2002-05-22 01:55:18 +00:00
Alexandre Julliard 2ab7625934 Removed most imports of ntdll since we no longer import Wine internal
functions from there.
2002-05-17 03:37:12 +00:00
Christian Costa fc37ef6130 Do not create a window each time VGA_DoSetMode is called. The window
is created the first time and then just resized.
2002-05-17 00:09:35 +00:00
Christian Costa 2fd4a55d07 Handle properly the requested video mode in Int10h SET VIDEO MODE
function by managing the bit 7 of AL.
2002-05-16 20:27:54 +00:00
Christian Costa 53268a54d1 Added DMA and SoundBlaster emulation. 2002-05-16 18:34:48 +00:00
Alexandre Julliard ad53383f9b Added winebuild support for generating a .dbg.c file containing the
debug channels definitions.
Made win32 the default type for spec files.
Ignore C compiler in winebuild so we can simply pass it $(DEFS).
Removed type win32 and debug_channels from spec files.
Fixed winebuild to always generate correct C identifiers (reported by
Vincent Béron).
2002-05-14 20:54:58 +00:00
Robert Coeyman 38fc50d202 Added the rest of the register manipulation code to int 10. It only
handles the setting of the 16-color palette registers and overscan.
2002-05-14 03:57:26 +00:00
Alexandre Julliard 67371bcc8d Added -res option to specify resources on winebuild command-line.
Added -exe mode to generate a .spec.c for an exe without having to
provide a .spec.
Removed some no longer needed spec files.
Removed .dll extension in makefiles import specifications.
2002-05-11 23:06:32 +00:00
Christian Costa 4a0a2ee00e Avoid deadlock in VGA_DoSetMode. 2002-05-11 23:00:17 +00:00
Alexandre Julliard 32459912dc Moved imports specification from the .spec into the Makefile so that
it can be used on platforms that don't build a .spec.c file.
2002-05-09 00:05:48 +00:00
Jukka Heinonen 09537b76f7 DOSVM now exports DPMI Raw Mode Switch routine. 2002-05-05 21:06:51 +00:00
Jukka Heinonen 887ed6228a Terminating DOS program in real mode now calls ExitThread which is
exactly what terminating in protected mode does.
2002-05-05 20:22:39 +00:00
Jukka Heinonen 8a1ac6edf4 Real mode interrupt handler now handles interrupt 21 function 0C. 2002-05-05 20:22:06 +00:00
Jukka Heinonen 7ec04452a1 When DOS program executes another DOS program, command line is now
passed correctly. If DOS command line is too long, command line is now
truncated instead of letting it trash memory.
2002-05-01 18:04:11 +00:00
Jukka Heinonen 6138ba089f When freeing XMS memory block, return an error if block has not been
previously allocated.
2002-04-29 17:12:29 +00:00
Alexandre Julliard 5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Alexandre Julliard 894b188fcf Moved __ASM_GLOBAL_FUNC macros and interlocked functions to port.[ch] 2002-04-25 21:40:56 +00:00
Christian Costa e684c1dad7 GET FUNCTIONALITY/STATE INFORMATION: The input parameter ES:DI is a
buffer where bios information (all the VIDEOSTATE struct) must be
copied to.
2002-04-20 20:52:05 +00:00
Christian Costa de61088197 VGA_ioport_in: Fake the occurrence of the vertical refresh when no
graphic mode has been set.
2002-04-19 00:05:38 +00:00
Christian Costa ee95709090 Implement SET INDIVIDUAL DAC REGISTER and SET BLOCK OF DAC REGISTERS. 2002-04-17 16:50:42 +00:00
Alexandre Julliard 7746e82122 Removed obsolete console driver. 2002-04-11 21:50:16 +00:00
Jukka Heinonen d9f4241d0e Removed obsolete text mode color and attribute code.
Made routines for text mode scolling, clearing and getting character
at cursor use Windows console and VGA buffer.
2002-04-11 17:33:15 +00:00
Jukka Heinonen 66503b0653 Converted "read standard input with echo" interrupt service to use
common DOSVM console input routine and made the service really echo.
2002-04-08 20:11:47 +00:00
Jukka Heinonen adf7751dd5 Writes to stdout and VGA_WriteChars routine now update both VGA
buffers and Windows console.
Added routine for changing current console attributes.
Moved text mode handling from VGA_Poll into new routine and changed
locking primitive into critical section.
2002-04-08 20:11:28 +00:00
Jukka Heinonen 7e94af47aa Redirect DOS writes to stdout/console to DOSVM_PutChar. 2002-04-03 02:34:45 +00:00
Jukka Heinonen 0c80289492 Compiles now even on platforms that do not support DOS VM. 2002-04-02 19:20:12 +00:00
Jukka Heinonen 869b044249 Routine DOSVM_Wait now wakes up if new events are queued and it
returns if it processed any queued events.
2002-04-01 20:56:15 +00:00
Alexandre Julliard ac0e137998 Create threads to manage timers instead of using the service thread. 2002-03-23 18:48:53 +00:00
Alexandre Julliard c1bfca04e1 Changed builtin dlls file names to make it clear they are not normal
Unix libraries, and install them in $libdir/wine instead of $libdir to
avoid name conflicts in /usr/lib.
2002-03-20 22:19:06 +00:00
Admiral Coeyman 3a4512b1ff Beginnings of the code that should allow DOS programs to set their
color palette.
2002-03-20 00:55:05 +00:00
Jukka Heinonen a65ef56101 Console mode DOS programs now receive mouse events.
Replaced GetMessage with PeekMessage, since MsgWaitForMultipleObjects
is allowed to return spontaneously.
2002-03-19 02:05:57 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Andreas Mohr 8bc7f16caa Spelling/alignment fixes. 2002-02-27 01:34:08 +00:00
Peter Hunnisett 73ab649ced New file msvcrt/excpt.h. Move some stuff out of winnt.h into it. 2002-02-25 20:10:35 +00:00
Patrik Stridvall 57e5784c21 Move __stdcall/__cdecl to the right place. 2002-02-02 18:42:11 +00:00
Nog 867a874375 Fixed function 0xb. 2002-01-31 21:47:57 +00:00
Nog 30f307c4d0 Implement function 0xb (Read mouse motion counters) and 0xf (Set
mickey/pixel ratio).
2002-01-31 20:45:02 +00:00
Jukka Heinonen fd33517a41 Added support for DOS EMS memory. 2002-01-29 17:55:21 +00:00
Nog 42a314dea6 Implement function number 0x5 (Return mouse button press information). 2002-01-29 02:51:47 +00:00
Jukka Heinonen a900cb8797 Low-resolution and low-color VGA modes are now mapped into mode
640x480x8. Added preliminary support for four bit modes.
2002-01-29 02:46:43 +00:00
Patrik Stridvall 19d66cc1f6 Fixed some issues found by winapi_check. 2002-01-07 21:16:46 +00:00
Ove Kaaven a814c4ef08 DOS support restructure. The DOS virtual machine is now a set of
threads running within Wine's own address space, obsoleting the old
dosmod module.
2002-01-06 18:34:02 +00:00
Alexandre Julliard 3f510ad2bb Link with libutil only where needed. 2002-01-01 01:13:03 +00:00
Alexandre Julliard 4895768443 Link to the curses library only for the dlls that need it. 2001-12-26 23:08:31 +00:00
Alexandre Julliard 9fcd89a5d8 Removed unnecessary includes. 2001-12-17 22:12:23 +00:00
Alexandre Julliard 1f7fce3cde Fixed compile for !MZ_SUPPORTED. 2001-12-05 22:19:57 +00:00
Alexandre Julliard 8cd55d0eba Moved most of the real-mode stuff to dlls/winedos. 2001-12-04 19:54:44 +00:00
Patrik Stridvall ae1c12c4cd Documentation fixes. 2001-11-20 18:55:39 +00:00
Ove Kaaven e2c477b21a Moved the int 9 (keyboard) handler to dlls/winedos. 2001-11-08 17:06:40 +00:00
Ove Kaaven cf6f12f3cf Added RunInThread callout to winedos. 2001-11-07 20:15:39 +00:00
Patrik Stridvall 01d5e5b071 Documentation fixes. 2001-07-02 19:59:40 +00:00
Marcus Meissner 3f1ed52d8b Implemented 64bit file size handling.
Removed several unneeded sys/stat.h includes.
2001-05-14 20:09:37 +00:00
Patrik Stridvall e683d6ec1f Added documentation. 2001-04-27 18:03:09 +00:00
Alexandre Julliard 2ec34e48a3 Added TASK_GetPtr/TASK_GetCurrent functions to get the TDB for a task
handle.
2001-04-04 00:21:05 +00:00
Alexandre Julliard ea2a9a8974 Removed a few Callout functions by doing a GetProcAddress at the time
we actually need the function.
2001-02-20 00:55:17 +00:00
Patrik Stridvall d5f824b482 Fixed some issues found by winapi_check. 2001-01-25 22:23:08 +00:00
Alexandre Julliard a90797d09d Updated debug channels. 2001-01-15 20:23:05 +00:00
Alexandre Julliard 105b0f4e64 Use the exe name and file handle we got from the server also when
starting Win16 or DOS programs, to avoid depending on the contents of
the command-line.
2001-01-06 01:55:49 +00:00
François Gouget da2b6a9f26 Fixed some HFILE vs. HANDLE mismatches.
If not used the last parameter of CreateFile must be 0, not -1.
2001-01-06 01:29:18 +00:00
Ove Kaaven 5c0f1e10a6 Release the Win16 lock before starting the DOS process, since it's not
really a Win16 app.
2000-12-27 03:24:20 +00:00
Ove Kaaven 287638fd4c Since DOSVM_Wait() blocks the normal event processing, it should
dispatch pending events itself.
2000-12-27 02:35:57 +00:00
Ove Kaaven e5557b357a Separated the MZ loader and core DOS VM into dlls/winedos. 2000-12-26 00:22:45 +00:00