Author: hbelusca Date: Sat Sep 26 03:24:55 2015 New Revision: 69361
URL: http://svn.reactos.org/svn/reactos?rev=69361&view=rev Log: [NTVDM] - 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.
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dosfiles.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c [iso-8859-1] Sat Sep 26 03:24:55 2015 @@ -68,7 +68,7 @@ * Check if this is a special character * NOTE: \r and \n are handled by the underlying driver! */ - if (Character < 0x20 && Character != 0x0A && Character != 0x0D) + if (Character < 0x20 && Character != '\r' && Character != '\n') { DosPrintCharacter(DOS_OUTPUT_HANDLE, '^'); Character += 'A' - 1;
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] Sat Sep 26 03:24:55 2015 @@ -164,6 +164,10 @@ BOOLEAN DosControlBreak(VOID) { setCF(0); + + /* Print an extra newline */ + DosPrintCharacter(DOS_OUTPUT_HANDLE, '\r'); + DosPrintCharacter(DOS_OUTPUT_HANDLE, '\n');
/* Call interrupt 0x23 */ Int32Call(&DosContext, 0x23);
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dosfiles.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dosfiles.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dosfiles.c [iso-8859-1] Sat Sep 26 03:24:55 2015 @@ -675,11 +675,11 @@ PDOS_DEVICE_NODE Node = DosGetDriverNode(Descriptor->DevicePointer); BYTE LineSize = 0; PCHAR Pointer = FAR_POINTER(Buffer); - - while (TRUE) + CHAR Character; + + do { USHORT Amount = 1; - CHAR Character;
/* Read a character from the device */ Node->ReadRoutine(Node, @@ -757,9 +757,8 @@ } }
- /* Stop on a carriage return */ - if (Character == '\r') break; - } + /* Stop on a carriage return */ + } while (Character != '\r');
return LineSize - 1; } @@ -841,11 +840,11 @@ { /* Translated input from a character device that isn't CON */ PCHAR Pointer = FAR_POINTER(Buffer); + CHAR Character;
while (*BytesRead < Count) { USHORT Amount = 1; - CHAR Character;
/* Read a character from the device */ Node->ReadRoutine(Node,