summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d5976d2)
INT 21h, AH = OAh - Special characters should be echoed onto
the screen (like ^A, etc...) and appended to the buffer.
svn path=/trunk/; revision=67003
/* Ctrl-C */
case 0x03:
{
/* Ctrl-C */
case 0x03:
{
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, '^');
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, 'C');
+
if (DosControlBreak()) return;
break;
}
if (DosControlBreak()) return;
break;
}
- if (Character == 0x0A || Character == 0x0D
- || (Character >= 0x20 && Character <= 0x7F))
- {
- /* Echo the character and append it to the buffer */
- DosPrintCharacter(DOS_OUTPUT_HANDLE, Character);
- InputBuffer->Buffer[Count] = Character;
+ /* Append it to the buffer */
+ InputBuffer->Buffer[Count] = Character;
+ Count++; /* Carriage returns are also counted */
- Count++; /* Carriage returns are also counted */
+ /* Check if this is a special character */
+ if (Character < 0x20 && Character != 0x0A && Character != 0x0D)
+ {
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, '^');
+ Character += 'A' - 1;
+
+ /* Echo the character */
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, Character);