CHAR16 mSetAttributeString[] = { ESC, '[', '0', 'm', ESC, '[', '4', '0', 'm', ESC, '[', '4', '0', 'm', 0 };\r
CHAR16 mClearScreenString[] = { ESC, '[', '2', 'J', 0 };\r
CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 };\r
+CHAR16 mCrLfString[] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
\r
//\r
// Body of the ConOut functions\r
Mode->CursorColumn = 0;\r
if (Mode->CursorRow < (INT32) (MaxRow - 1)) {\r
Mode->CursorRow++;\r
+ } else {\r
+ //\r
+ // Cursor has reached at MaxRow and MaxColumn,\r
+ // output carriage return and line feed to scroll screen\r
+ // when string is not control string.\r
+ //\r
+ if (!TerminalDevice->OutputEscChar) {\r
+ This->OutputString (This, mCrLfString);\r
+ }\r
}\r
\r
}\r