- Return the unique ID from BaseSrvGetTempFile instead of an NTSTATUS. Fixes GetTempFile when using kernel32.dll from Windows.
svn path=/trunk/; revision=70038
Start factoring out all code related to console-specific stuff (while leaving everything else in place). This is WIP (and the corresponding .c files are included where they are needed instead of being compiled, will be fixed later).
svn path=/trunk/; revision=69838
Usability fixes (part 2):
- Properly keep the mouse show state across screenbuffer switches.
- Use unicode strings for the disk menu items.
See r69428.
svn path=/trunk/; revision=69431
Usability fixes:
- Update the menu each time the user chooses to show or hide the mouse pointer.
- Keep the mouse show state across screenbuffer switches (text/graphics) (half-hackish at the moment; will be elegantly fixed later on).
- Update the floppy disk menu items each time the user mounts / ejects a disk; display the disk image file name currently mounted (CHAR strings used at the moment, WCHAR conversion will follow soon).
svn path=/trunk/; revision=69428
- Temporarily hack the boot sequence to floppy, then hard disk. See r69421; will be improved in the future.
- Complete the BIOS 16-bit bootstrap code.
svn path=/trunk/; revision=69422
- Add a basic boot sequence functionality (read from CMOS); will be improved in the future.
- Print a "FATAL BOOT FAILURE" error message when INT 18h is called.
- Fail startup if we cannot mount the available hard disk images.
- Improve some diagnostic error messages.
svn path=/trunk/; revision=69421
- Add floppy image automount support from the registry, as it was done for HDDs in r69390 (it's really copy-paste & adaptation of the existing code).
- Increase HDD number support from 1 to 4 (maximum) for INT 13h.
svn path=/trunk/; revision=69411
Fix a division-by-zero problem by storing the mouse driver's Width and Height
in DWORDs, thus avoiding the integer overflow which could make them zero.
svn path=/trunk/; revision=69408
Read global settings from the register (in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NTVDM ; note that this is a ReactOS-only configuration key, because no equivalent functionality exists on windows), and currently initialize:
- the BIOS and ROM files to be used;
- the hard disks to be mounted at startup (they cannot be unmounted at runtime, contrary to the floppies) (maximum 4 hard disks).
svn path=/trunk/; revision=69390
- Start implementing a user menu for mounting/unmounting floppy disks at runtime. Menu state refresh & proper localization remain to be done.
- Add a temporary "Sleep(INFINITE)" where the VdmShutdown function is susceptible to trigger again a VDM cleanup in case it was called again in parallel. For diagnosing CORE-10182, see also r69366.
svn path=/trunk/; revision=69375
Add basic disk support with mounting/unmounting images in NTVDM:
- basic disk controller (at the moment this is just a collection of helper functions. A real HW emulation will come later on).
- INT 13h services for the BIOS.
At the moment, the images to be mounted are hardcoded in disk.c. Please see disk.c for examples of how to use the function. This will be reworked to allow user choice without having to recompile NTVDM.
CORE-10262 #resolve
svn path=/trunk/; revision=69365
- Don't hardcode magic values of characters if they have C escape codes.
- Print an extra newline on call to the Ctrl-C handler, as it is done on real DOS.
- Use a do{}while loop which loops while we don't have read a CR character.
svn path=/trunk/; revision=69361
DosReadFile echoes the line feed when it encounters it.
A backspace should delete the '^' sign for special characters.
svn path=/trunk/; revision=69360
Fix DOS character device I/O. Implement CON line buffering.
Make sure INT 21h functions 01h, 06h, 07h, 08h, 0Ah and 3Fh work as expected
for CON input.
svn path=/trunk/; revision=69356
- Fix ZF and CF flags setting in function INT 2Fh, AX=1214h.
- Use CreateEventW explicitely.
- Set the VdmTaskEvent event at startup. This allows user input by default (even if we don't run our own DOS) in NTVDM. Fixes keyboard input not working when testing boot&usage of MSDOS 6.
svn path=/trunk/; revision=69339
- Do not hardcode the number of XMS memory blocks that can map the HMA. It should be function of the MAX_ADDRESS value of our emulator.
- Require that MAX_ADDRESS should be greater or equal than 1 MB.
svn path=/trunk/; revision=69323
Save and restore the general purpose and segment registers around Int32Call
calls in the BIOS. Also, make sure CF doesn't get set by the called interrupt
procedure.
svn path=/trunk/; revision=69297