Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 428 of file bootvid.c.
Referenced by InbvDisplayString().
{ ULONG TopDelta = 14; /* Start looping the string */ while (*String) { /* Treat new-line separately */ if (*String == '\n') { /* Modify Y position */ VidpCurrentY += TopDelta; if (VidpCurrentY >= VidpScrollRegion[3]) { /* Scroll the view */ VgaScroll(TopDelta); VidpCurrentY -= TopDelta; /* Preserve row */ PreserveRow(VidpCurrentY, TopDelta, TRUE); } /* Update current X */ VidpCurrentX = VidpScrollRegion[0]; /* Preseve the current row */ PreserveRow(VidpCurrentY, TopDelta, FALSE); } else if (*String == '\r') { /* Update current X */ VidpCurrentX = VidpScrollRegion[0]; /* Check if we're being followed by a new line */ if (String[1] != '\n') NextLine = TRUE; } else { /* Check if we had a \n\r last time */ if (NextLine) { /* We did, preserve the current row */ PreserveRow(VidpCurrentY, TopDelta, TRUE); NextLine = FALSE; } /* Display this character */ DisplayCharacter(*String, VidpCurrentX, VidpCurrentY, VidpTextColor, 16); VidpCurrentX += 8; /* Check if we should scroll */ if (VidpCurrentX > VidpScrollRegion[2]) { /* Update Y position and check if we should scroll it */ VidpCurrentY += TopDelta; if (VidpCurrentY > VidpScrollRegion[3]) { /* Do the scroll */ VgaScroll(TopDelta); VidpCurrentY -= TopDelta; /* Save the row */ PreserveRow(VidpCurrentY, TopDelta, TRUE); } /* Update X */ VidpCurrentX = VidpScrollRegion[0]; } } /* Get the next character */ String++; } }