This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

2021/09/17 04:47 · prokushev · 0 Comments
2021/08/20 03:18 · prokushev · 0 Comments


This call scrolls the entire display buffer (or area specified within the display buffer) to the right.


VioScrollRt (TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle)


  • TopRow (USHORT) - input : Top row to be scrolled.
  • LeftCol (USHORT) - input : Left column to be scrolled.
  • BotRow (USHORT) - input : Bottom row to be scrolled.
  • RightCol (USHORT) - input : Right column to be scrolled.
  • Lines (USHORT) - input : Number of columns to be inserted at the left of the screen area being scrolled. If 0 is specified, no lines are scrolled.
  • Cell (PBYTE) - input : Address of the character attribute(s) pair (2 or 4 bytes) used as a fill character on inserted columns.
  • VioHandle (HVIO) - input : This must be zero unless the caller is a Presentation Manager application, in which case it must be the value returned by VioGetPs.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR


TopRow = 0 and LeftCol = 0 identifies the top left corner of the screen.

If a value greater than the maximum value is specified for TopRow, LeftCol, BotRow, RightCol, or Lines, the maximum value for that parameter is used.

If TopRow and LeftCol = 0 and if BotRow, RightCol, and Lines = 65535 (or -1 in assembler language), the entire screen is filled with the character-attribute pair defined by Cell.


C Binding

#define INCL_VIO
USHORT  rc = VioScrollRt(TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle);
USHORT           TopRow;        /* Top row */
USHORT           LeftCol;       /* Left column */
USHORT           BotRow;        /* Bottom row */
USHORT           RightCol;      /* Right column */
USHORT           Lines;         /* Number of lines */
PBYTE            Cell;          /* Cell to be written */
HVIO             VioHandle;     /* Video handle */
USHORT           rc;            /* return code */

MASM Binding

EXTRN  VioScrollRt:FAR
INCL_VIO            EQU 1
PUSH   WORD    TopRow        ;Top row
PUSH   WORD    LeftCol       ;Left column
PUSH   WORD    BotRow        ;Bottom row
PUSH   WORD    RightCol      ;Right column
PUSH   WORD    Lines         ;Number of lines
PUSH@  OTHER   Cell          ;Cell to be written
PUSH   WORD    VioHandle     ;Video handle
CALL   VioScrollRt
Returns WORD