| ScrRectScroll | Function (ROM Call 0x18B)

graph.h

void ScrRectScroll (const SCR_RECT *rect, const SCR_RECT *clip, short NumRows, short Attr);

Scrols a rectangular area upwards or downwards.

ScrRectScroll scrolls a rectangular area which is an intersection of two rectangular areas given using two SCR_RECT structures rect and clip upwards by NumRows pixels (or downwards if NumRows < 0). rect usually represents the actual area which need to be scrolled, and clip is the clipping area. See SetCurClip for more info about clipping areas. The attribute Attr determines what happens with pixels in a vacant space produced after scrolling:

A_NORMAL | Pixels in a vacant space are set
A_REVERSE | Pixels in a vacant space are reset
A_XOR | Pixels in a vacant space are inverted

See SetCurAttr command for more general info about attributes.
Note: This command is internally realized stupidly using BitmapGet and BitmapPut, so it is slow.

Uses: BitmapGet, BitmapPut, ScrRectFill, memcmp, memcpy, TIOS_abs
Used by: fputchar, WinChar, WinScrollV