Deleted Added
full compact
28c28
< * $Id$
---
> * $Id: syscons.c,v 1.278 1998/09/15 18:16:37 sos Exp $
123a124
> extern void generic_bzero(void *, size_t);
295a297
> static void scsplash_term(scr_stat *scp);
329c331,332
< u_short cursor_image, *ptr = Crtat + (scp->cursor_pos - scp->scr_buf);
---
> u_short cursor_image;
> u_short *ptr;
337a341,343
> ptr = (u_short *)(get_adapter(scp)->va_window)
> + (scp->cursor_pos - scp->scr_buf);
>
386c392
< scp->cursor_oldpos - scp->scr_buf, 0);
---
> scp->cursor_oldpos - scp->scr_buf, 0);
388c394,396
< *(Crtat + (scp->cursor_oldpos - scp->scr_buf)) = scp->cursor_saveunder;
---
> *((u_short *)(get_adapter(scp)->va_window)
> + (scp->cursor_oldpos - scp->scr_buf))
> = scp->cursor_saveunder;
415c423
< (*biosvidsw.diag)(bootverbose);
---
>
419d426
< (*biosvidsw.diag)(bootverbose);
421a429,430
> (*biosvidsw.diag)(bootverbose);
>
665a675,677
> #ifdef SC_SPLASH_SCREEN
> scsplash_term(scp);
> #endif
668a681,683
> #ifdef SC_SPLASH_SCREEN
> scsplash_init(scp);
> #endif
2313,2316c2328,2329
< if (old_scp->mode != new_scp->mode || ISUNKNOWNSC(old_scp)) {
< if (adp_flags & V_ADP_MODECHANGE)
< set_mode(new_scp);
< }
---
> if (old_scp->mode != new_scp->mode || ISUNKNOWNSC(old_scp))
> set_mode(new_scp);
2329,2332d2341
<
< /* FIXME: the screen size may be larger than a 64K segment. */
< if (ISPIXELSC(new_scp))
< bzero(Crtat, new_scp->xpixel*new_scp->ypixel/8);
2499c2508
< scp->xsize - scp->xpos);
---
> scp->xsize - 1 - scp->xpos);
2513c2522
< mark_for_update(scp, (scp->ypos + 1) * scp->xsize);
---
> mark_for_update(scp, (scp->ypos + 1) * scp->xsize - 1);
2558c2567
< mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n + count);
---
> mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n + count - 1);
2571c2580
< mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n + count);
---
> mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n + count - 1);
2607c2616
< mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n);
---
> mark_for_update(scp, scp->cursor_pos - scp->scr_buf + n - 1);
3026,3027c3035,3036
< generic_bcopy(Crtat, sc_buffer,
< console[0]->xsize * console[0]->ysize * sizeof(u_short));
---
> generic_bcopy((ushort *)(get_adapter(console[0])->va_window), sc_buffer,
> console[0]->xsize * console[0]->ysize * sizeof(u_short));
3995a4005,4007
>
> if (scp->status & PIXEL_MODE)
> generic_bzero((u_char *)(adp->va_window), scp->xpixel*scp->ypixel/8);
4004a4017,4056
> set_border(scr_stat *scp, int color)
> {
> u_char *p;
> int xoff;
> int yoff;
> int xlen;
> int ylen;
> int i;
>
> (*biosvidsw.set_border)(scp->adp, color);
>
> if (scp->status & PIXEL_MODE) {
> outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */
> outw(GDCIDX, 0x0003); /* data rotate/function select */
> outw(GDCIDX, 0x0f01); /* set/reset enable */
> outw(GDCIDX, 0xff08); /* bit mask */
> outw(GDCIDX, (color << 8) | 0x00); /* set/reset */
> p = (u_char *)(get_adapter(scp)->va_window);
> xoff = scp->xoff;
> yoff = scp->yoff*scp->font_size;
> xlen = scp->xpixel/8;
> ylen = scp->ysize*scp->font_size;
> if (yoff > 0) {
> generic_bzero(p, xlen*yoff);
> generic_bzero(p + xlen*(yoff + ylen),
> xlen*scp->ypixel - xlen*(yoff + ylen));
> }
> if (xoff > 0) {
> for (i = 0; i < ylen; ++i) {
> generic_bzero(p + xlen*(yoff + i), xoff);
> generic_bzero(p + xlen*(yoff + i) + xoff + scp->xsize,
> xlen - xoff - scp->xsize);
> }
> }
> outw(GDCIDX, 0x0000); /* set/reset */
> outw(GDCIDX, 0x0001); /* set/reset enable */
> }
> }
>
> void
4325c4377,4378
< u_short *crt_pos = Crtat + (scp->mouse_pos - scp->scr_buf);
---
> u_short *crt_pos = (u_short *)(get_adapter(scp)->va_window)
> + (scp->mouse_pos - scp->scr_buf);
4397c4450
< u_short *crt_pos = Crtat + (scp->mouse_oldpos - scp->scr_buf);
---
> u_short *crt_pos;
4400a4454,4456
>
> crt_pos = (u_short *)(get_adapter(scp)->va_window)
> + (scp->mouse_oldpos - scp->scr_buf);
4411a4468
> u_short *crt_pos;
4414a4472
> crt_pos = (u_short *)(get_adapter(scp)->va_window);
4416c4474
< nch = och = *(Crtat + (ptr - scp->scr_buf));
---
> nch = och = *(crt_pos + (ptr - scp->scr_buf));
4438c4496
< *(Crtat + (ptr - scp->scr_buf)) = nch;
---
> *(crt_pos + (ptr - scp->scr_buf)) = nch;
4487c4545,4546
< Crtat, scp->xsize * scp->ysize);
---
> (u_short *)(get_adapter(scp)->va_window),
> scp->xsize * scp->ysize);
4490c4549,4550
< Crtat, scp->xsize * scp->ysize);
---
> (u_short *)(get_adapter(scp)->va_window),
> scp->xsize * scp->ysize);
4500c4560,4561
< u_char *d, *e;
---
> u_char volatile *d;
> u_char *e;
4504a4566
> u_short bg;
4505a4568
> u_char c;
4508c4571,4572
< generic_bcopy(p+from, Crtat+from, (to-from+1)*sizeof (u_short));
---
> generic_bcopy(p + from, (u_short *)(get_adapter(scp)->va_window) + from,
> (to - from + 1)*sizeof(u_short));
4521c4585
< d = (u_char *)Crtat
---
> d = (u_char *)(get_adapter(scp)->va_window)
4523a4588,4592
>
> outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */
> outw(GDCIDX, 0x0003); /* data rotate/function select */
> outw(GDCIDX, 0x0f01); /* set/reset enable */
> bg = -1;
4525c4594,4604
< e = d;
---
> /* set background color in EGA/VGA latch */
> if (bg != (p[i] & 0xf000)) {
> bg = (p[i] & 0xf000);
> outw(GDCIDX, (bg >> 4) | 0x00); /* set/reset */
> outw(GDCIDX, 0xff08); /* bit mask */
> *d = 0;
> c = *d; /* set the background color in the latch */
> }
> /* foreground color */
> outw(GDCIDX, (p[i] & 0x0f00) | 0x00); /* set/reset */
> e = (u_char *)d;
4528c4607,4608
< *e = mark^*f;
---
> outw(GDCIDX, ((*f^mark) << 8) | 0x08); /* bit mask */
> *e = 0;
4534a4615,4650
> outw(GDCIDX, 0x0000); /* set/reset */
> outw(GDCIDX, 0x0001); /* set/reset enable */
> outw(GDCIDX, 0xff08); /* bit mask */
>
> #if 0 /* VGA only */
> outw(GDCIDX, 0x0305); /* read mode 0, write mode 3 */
> outw(GDCIDX, 0x0003); /* data rotate/function select */
> outw(GDCIDX, 0x0f01); /* set/reset enable */
> outw(GDCIDX, 0xff08); /* bit mask */
> bg = -1;
> for (i = from ; i <= to ; i++) {
> /* set background color in EGA/VGA latch */
> if (bg != (p[i] & 0xf000)) {
> bg = (p[i] & 0xf000);
> outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */
> outw(GDCIDX, (bg >> 4) | 0x00); /* set/reset */
> *d = 0;
> c = *d; /* set the background color in the latch */
> outw(GDCIDX, 0x0305); /* read mode 0, write mode 3 */
> }
> /* foreground color */
> outw(GDCIDX, (p[i] & 0x0f00) | 0x00); /* set/reset */
> e = (u_char *)d;
> f = &font[(p[i] & 0x00ff)*font_size];
> for (j = 0 ; j < font_size; j++, f++) {
> *e = *f^mark;
> e += line_length;
> }
> d++;
> if ((i % xsize) == xsize - 1)
> d += scp->xoff*2 + (font_size - 1)*line_length;
> }
> outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */
> outw(GDCIDX, 0x0000); /* set/reset */
> outw(GDCIDX, 0x0001); /* set/reset enable */
> #endif /* 0 */
4545,4552d4660
< /*
< * We currently assume the splash screen always use
< * VGA_CG320 mode and abort installation if this mode is not
< * supported with this video card. XXX
< */
< if ((*biosvidsw.get_info)(scp->adp, M_VGA_CG320, &info))
< return;
<
4564a4673,4681
> scsplash_term(scr_stat *scp)
> {
> default_saver = none_saver;
> scsplash_stick(FALSE);
> remove_scrn_saver(scsplash_saver);
> scsplash_unload(scp);
> }
>
> static void