/* Save a rectangular region to a user buffer */
void save_area(int ulrow, int ulcol, int lrrow,
int lrcol, char *buf)
{
if (buf)
{
int nbytes = 2*(lrcol-ulcol+1), row, n;
for (row = ulrow; row <= lrrow; ++row)
{
char far *p = base + (row*160 + 2*ulcol);
for (n= 0; n < nbytes; ++n)
*buf++ = *p++;
}
}
}
/* Restore a region to the screen from user buffer */
void restore_area(int ulrow, int ulcol, int lrrow,
int lrcol, char *buf)
{
/* DETAILS OMITTED: Identical to save_area() except the
* assignment in the last statement is reversed:
*/
*p++ = *buf++;
}
}
}
/* Fill a region with normal spaces */
void vclear_area(int ulrow, int ulcol, int lrrow, int lrcol)
{
int far *p;
int nchars = (lrcol-ulcol+1), row, n;
for (row = ulrow; row <= lrrow; ++row)
{
p = (int far *) (base + (row*160 + 2*ulcol));
for (n = 0; n < nchars; ++n)
*p++ = 0x0720;
}
}
/* End of File */