dir = SCROLL_DOWN;
}
// Get the dimensions
- u16 nbrows = GET_BDA(video_rows) + 1;
u16 nbcols = GET_BDA(video_cols);
- if (nblines > nbrows)
- nblines = 0;
u8 cols = lr.x - ul.x + 1;
struct VideoParam_s *vparam_g = GET_GLOBAL(vmode_g->vparam);
u8 cheight = GET_GLOBAL(vparam_g->cheight);
- if (nblines == 0 && ul.y == 0 && ul.x == 0 && lr.y == nbrows - 1
- && lr.x == nbcols - 1) {
- outw(0x0205, VGAREG_GRDC_ADDRESS);
- memset_far(GET_GLOBAL(vmode_g->sstart), 0, attr,
- nbrows * nbcols * cheight);
- outw(0x0005, VGAREG_GRDC_ADDRESS);
- return;
- }
if (dir == SCROLL_UP) {
u16 i;
for (i = ul.y; i <= lr.y; i++)
- if ((i + nblines > lr.y) || (nblines == 0))
+ if (i + nblines > lr.y)
vgamem_fill_pl4(ul.x, i, cols, nbcols, cheight,
attr);
else
return;
}
u16 i;
- for (i = lr.y; i >= ul.y; i--) {
- if ((i < ul.y + nblines) || (nblines == 0))
+ for (i = lr.y; i >= ul.y; i--)
+ if (i < ul.y + nblines)
vgamem_fill_pl4(ul.x, i, cols, nbcols, cheight,
attr);
else
vgamem_copy_pl4(ul.x, i, i - nblines, cols,
nbcols, cheight);
- if (i > lr.y)
- break;
- }
}
static void
dir = SCROLL_DOWN;
}
// Get the dimensions
- u16 nbrows = GET_BDA(video_rows) + 1;
u16 nbcols = GET_BDA(video_cols);
- if (nblines > nbrows)
- nblines = 0;
u8 cols = lr.x - ul.x + 1;
struct VideoParam_s *vparam_g = GET_GLOBAL(vmode_g->vparam);
u8 cheight = GET_GLOBAL(vparam_g->cheight);
u8 bpp = GET_GLOBAL(vmode_g->pixbits);
- if (nblines == 0 && ul.y == 0 && ul.x == 0 && lr.y == nbrows - 1
- && lr.x == nbcols - 1) {
- memset_far(GET_GLOBAL(vmode_g->sstart), 0, attr,
- nbrows * nbcols * cheight * bpp);
- return;
- }
if (bpp == 2) {
ul.x <<= 1;
cols <<= 1;
if (dir == SCROLL_UP) {
u16 i;
for (i = ul.y; i <= lr.y; i++)
- if ((i + nblines > lr.y) || (nblines == 0))
+ if (i + nblines > lr.y)
vgamem_fill_cga(ul.x, i, cols, nbcols, cheight,
attr);
else
return;
}
u16 i;
- for (i = lr.y; i >= ul.y; i--) {
- if ((i < ul.y + nblines) || (nblines == 0))
+ for (i = lr.y; i >= ul.y; i--)
+ if (i < ul.y + nblines)
vgamem_fill_cga(ul.x, i, cols, nbcols, cheight,
attr);
else
vgamem_copy_cga(ul.x, i, i - nblines, cols,
nbcols, cheight);
- if (i > lr.y)
- break;
- }
}
static void
// Get the dimensions
u16 nbrows = GET_BDA(video_rows) + 1;
u16 nbcols = GET_BDA(video_cols);
-
- if (nblines > nbrows)
- nblines = 0;
u8 cols = lr.x - ul.x + 1;
// Compute the address
dprintf(3, "Scroll, address %p (%d %d %02x)\n"
, address_far, nbrows, nbcols, ul.page);
- if (nblines == 0 && ul.y == 0 && ul.x == 0 && lr.y == nbrows - 1
- && lr.x == nbcols - 1) {
- memset16_far(GET_GLOBAL(vmode_g->sstart), address_far
- , (u16)attr * 0x100 + ' ', nbrows * nbcols * 2);
- return;
- }
if (dir == SCROLL_UP) {
u16 i;
for (i = ul.y; i <= lr.y; i++)
- if ((i + nblines > lr.y) || (nblines == 0))
+ if (i + nblines > lr.y)
memset16_far(GET_GLOBAL(vmode_g->sstart)
, address_far + (i * nbcols + ul.x) * 2
, (u16)attr * 0x100 + ' ', cols * 2);
, cols * 2);
return;
}
-
u16 i;
- for (i = lr.y; i >= ul.y; i--) {
- if ((i < ul.y + nblines) || (nblines == 0))
+ for (i = lr.y; i >= ul.y; i--)
+ if (i < ul.y + nblines)
memset16_far(GET_GLOBAL(vmode_g->sstart)
, address_far + (i * nbcols + ul.x) * 2
, (u16)attr * 0x100 + ' ', cols * 2);
, GET_GLOBAL(vmode_g->sstart)
, (void*)(((i - nblines) * nbcols + ul.x) * 2)
, cols * 2);
- if (i > lr.y)
- break;
- }
}
void