Lines Matching +full:flip +full:- +full:vertical
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
290 (scp)->sc->adp->va_window + \
291 (x) * (scp)->xoff + \
292 (scp)->yoff * (scp)->font_size * (w) + \
293 (x) * ((pos) % (scp)->xsize) + \
294 (scp)->font_size * (w) * ((pos) / (scp)->xsize); \
298 switch ((scp)->sc->adp->va_info.vi_depth) { \
312 if ((scp)->sc->adp->va_info.vi_pixel_fsizes[1] == 5) \
373 for (i = 0; i < nitems(scp->curs_attr.bg); i++) { in vga_cursorattr_adj()
374 newbg = (scp->curs_attr.bg[i] << 12) & bgmask; in vga_cursorattr_adj()
378 if (i == nitems(scp->curs_attr.bg)) in vga_cursorattr_adj()
392 xpixel = scp->xpixel; in vga_setmdp()
393 ypixel = scp->ypixel; in vga_setmdp()
394 if (scp->sc->adp->va_flags & V_ADP_CWIDTH9) in vga_setmdp()
397 /* If 16:9 +-1%, assume square pixels, else scale to 4:3 or full. */ in vga_setmdp()
403 * Use 10x16 cursors except even with 8x8 fonts except in ~200- in vga_setmdp()
405 * even 13 pixels high is really 4 too many. Clipping a 16-high in vga_setmdp()
406 * cursor at 9-high gives a variable tail which looks better than in vga_setmdp()
412 if (scp->font_size <= 8 && in vga_setmdp()
413 (ypixel < 300 || !(scp->status & PIXEL_MODE))) { in vga_setmdp()
420 if (scp->status & PIXEL_MODE) { in vga_setmdp()
430 v = (wb * abs(mdpp[i]->md_baspect - aspect) + in vga_setmdp()
431 wi * abs(mdpp[i]->md_iaspect - aspect)) / aspect; in vga_setmdp()
438 scp->mouse_data = mdp; in vga_setmdp()
452 sc_vtb_clear(&scp->scr, c, attr); in vga_txtclear()
458 vidd_set_border(scp->sc->adp, color); in vga_txtborder()
462 vga_txtdraw(scr_stat *scp, int from, int count, int flip) in vga_txtdraw() argument
468 if (from + count > scp->xsize*scp->ysize) in vga_txtdraw()
469 count = scp->xsize*scp->ysize - from; in vga_txtdraw()
471 if (flip) { in vga_txtdraw()
472 for (p = sc_vtb_pointer(&scp->scr, from); count-- > 0; ++from) { in vga_txtdraw()
473 c = sc_vtb_getc(&scp->vtb, from); in vga_txtdraw()
474 a = sc_vtb_geta(&scp->vtb, from); in vga_txtdraw()
476 p = sc_vtb_putchar(&scp->scr, p, c, a); in vga_txtdraw()
479 sc_vtb_copy(&scp->vtb, from, &scp->scr, from, count); in vga_txtdraw()
487 if (base < 0 || base >= scp->font_size) in vga_txtcursor_shape()
490 vidd_set_hw_cursor_shape(scp->sc->adp, base, height, in vga_txtcursor_shape()
491 scp->font_size, blink); in vga_txtcursor_shape()
495 draw_txtcharcursor(scr_stat *scp, int at, u_short c, u_short a, int flip) in draw_txtcharcursor() argument
500 sc = scp->sc; in draw_txtcharcursor()
502 if (scp->curs_attr.flags & CONS_CHAR_CURSOR) { in draw_txtcharcursor()
507 if (scp->font_size < 14) { in draw_txtcharcursor()
508 font = sc->font_8; in draw_txtcharcursor()
510 } else if (scp->font_size >= 16) { in draw_txtcharcursor()
511 font = sc->font_16; in draw_txtcharcursor()
514 font = sc->font_14; in draw_txtcharcursor()
517 if (scp->curs_attr.base >= h) in draw_txtcharcursor()
519 if (flip) in draw_txtcharcursor()
522 * This clause handles partial-block cursors in text mode. in draw_txtcharcursor()
527 bcopy(font + c*h, font + sc->cursor_char*h, h); in draw_txtcharcursor()
528 font = font + sc->cursor_char*h; in draw_txtcharcursor()
529 for (i = imax(h - scp->curs_attr.base - scp->curs_attr.height, 0); in draw_txtcharcursor()
530 i < h - scp->curs_attr.base; ++i) { in draw_txtcharcursor()
534 vidd_load_font(sc->adp, 0, h, 8, font, sc->cursor_char, 1); in draw_txtcharcursor()
535 sc_vtb_putc(&scp->scr, at, sc->cursor_char, a); in draw_txtcharcursor()
539 if (flip) in draw_txtcharcursor()
542 sc_vtb_putc(&scp->scr, at, c, a); in draw_txtcharcursor()
547 vga_txtcursor(scr_stat *scp, int at, int blink, int on, int flip) in vga_txtcursor() argument
552 if (scp->curs_attr.height <= 0) /* the text cursor is disabled */ in vga_txtcursor()
555 adp = scp->sc->adp; in vga_txtcursor()
557 scp->status |= VR_CURSOR_BLINK; in vga_txtcursor()
559 scp->status |= VR_CURSOR_ON; in vga_txtcursor()
560 vidd_set_hw_cursor(adp, at%scp->xsize, in vga_txtcursor()
561 at/scp->xsize); in vga_txtcursor()
563 if (scp->status & VR_CURSOR_ON) in vga_txtcursor()
564 vidd_set_hw_cursor(adp, -1, -1); in vga_txtcursor()
565 scp->status &= ~VR_CURSOR_ON; in vga_txtcursor()
568 scp->status &= ~VR_CURSOR_BLINK; in vga_txtcursor()
570 scp->status |= VR_CURSOR_ON; in vga_txtcursor()
572 sc_vtb_getc(&scp->vtb, at), in vga_txtcursor()
573 sc_vtb_geta(&scp->vtb, at), in vga_txtcursor()
574 flip); in vga_txtcursor()
576 cursor_attr = sc_vtb_geta(&scp->vtb, at); in vga_txtcursor()
577 if (flip) in vga_txtcursor()
579 if (scp->status & VR_CURSOR_ON) in vga_txtcursor()
580 sc_vtb_putc(&scp->scr, at, in vga_txtcursor()
581 sc_vtb_getc(&scp->vtb, at), in vga_txtcursor()
583 scp->status &= ~VR_CURSOR_ON; in vga_txtcursor()
589 vga_txtblink(scr_stat *scp, int at, int flip) in vga_txtblink() argument
601 if (ISMOUSEAVAIL(scp->sc->adp->va_flags)) { in draw_txtmouse()
612 mdp = scp->mouse_data; in draw_txtmouse()
615 pos = (y/scp->font_size - scp->yoff)*scp->xsize + x/8 - scp->xoff; in draw_txtmouse()
616 bcopy(scp->font + sc_vtb_getc(&scp->scr, pos)*scp->font_size, in draw_txtmouse()
617 &font_buf[0], scp->font_size); in draw_txtmouse()
618 bcopy(scp->font + sc_vtb_getc(&scp->scr, pos + 1)*scp->font_size, in draw_txtmouse()
619 &font_buf[32], scp->font_size); in draw_txtmouse()
620 bcopy(scp->font in draw_txtmouse()
621 + sc_vtb_getc(&scp->scr, pos + scp->xsize)*scp->font_size, in draw_txtmouse()
622 &font_buf[64], scp->font_size); in draw_txtmouse()
623 bcopy(scp->font in draw_txtmouse()
624 + sc_vtb_getc(&scp->scr, pos + scp->xsize + 1)*scp->font_size, in draw_txtmouse()
625 &font_buf[96], scp->font_size); in draw_txtmouse()
626 for (i = 0; i < scp->font_size; ++i) { in draw_txtmouse()
628 cursor[i + scp->font_size] = font_buf[i+64]<<8 | font_buf[i+96]; in draw_txtmouse()
631 /* now and-or in the mousepointer image */ in draw_txtmouse()
633 yoffset = y%scp->font_size; in draw_txtmouse()
635 border = mdp->md_border[i] << 8; /* avoid right shifting out */ in draw_txtmouse()
636 interior = mdp->md_interior[i] << 8; in draw_txtmouse()
639 if (scp->sc->adp->va_flags & V_ADP_CWIDTH9) { in draw_txtmouse()
653 for (i = 0; i < scp->font_size; ++i) { in draw_txtmouse()
656 font_buf[i + 64] = (cursor[i + scp->font_size] & 0xff00) >> 8; in draw_txtmouse()
657 font_buf[i + 96] = cursor[i + scp->font_size] & 0xff; in draw_txtmouse()
661 /* wait for vertical retrace to avoid jitter on some videocards */ in draw_txtmouse()
662 crtc_addr = scp->sc->adp->va_crtc_addr; in draw_txtmouse()
667 c = scp->sc->mouse_char; in draw_txtmouse()
668 vidd_load_font(scp->sc->adp, 0, 32, 8, font_buf, c, 4); in draw_txtmouse()
670 sc_vtb_putc(&scp->scr, pos, c, sc_vtb_geta(&scp->scr, pos)); in draw_txtmouse()
672 sc_vtb_putc(&scp->scr, pos + scp->xsize, c + 2, in draw_txtmouse()
673 sc_vtb_geta(&scp->scr, pos + scp->xsize)); in draw_txtmouse()
674 if (x < (scp->xsize - 1)*8) { in draw_txtmouse()
675 sc_vtb_putc(&scp->scr, pos + 1, c + 1, in draw_txtmouse()
676 sc_vtb_geta(&scp->scr, pos + 1)); in draw_txtmouse()
677 sc_vtb_putc(&scp->scr, pos + scp->xsize + 1, c + 3, in draw_txtmouse()
678 sc_vtb_geta(&scp->scr, pos + scp->xsize + 1)); in draw_txtmouse()
691 pos = (y/scp->font_size - scp->yoff)*scp->xsize + x/8 - scp->xoff; in draw_txtmouse()
692 a = sc_vtb_geta(&scp->scr, pos); in draw_txtmouse()
693 if (scp->sc->adp->va_flags & V_ADP_COLOR) in draw_txtmouse()
698 sc_vtb_putc(&scp->scr, pos, sc_vtb_getc(&scp->scr, pos), color); in draw_txtmouse()
725 if (scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_PLANAR) { in vga_rndrinit()
726 scp->rndr->clear = vga_pxlclear_planar; in vga_rndrinit()
727 scp->rndr->draw_border = vga_pxlborder_planar; in vga_rndrinit()
728 scp->rndr->draw = vga_vgadraw_planar; in vga_rndrinit()
729 scp->rndr->draw_cursor = vga_pxlcursor_planar; in vga_rndrinit()
730 scp->rndr->blink_cursor = vga_pxlblink_planar; in vga_rndrinit()
731 scp->rndr->draw_mouse = vga_pxlmouse_planar; in vga_rndrinit()
733 if (scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_DIRECT || in vga_rndrinit()
734 scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_PACKED) { in vga_rndrinit()
735 scp->rndr->clear = vga_pxlclear_direct; in vga_rndrinit()
736 scp->rndr->draw_border = vga_pxlborder_direct; in vga_rndrinit()
737 scp->rndr->draw = vga_vgadraw_direct; in vga_rndrinit()
738 scp->rndr->draw_cursor = vga_pxlcursor_direct; in vga_rndrinit()
739 scp->rndr->blink_cursor = vga_pxlblink_direct; in vga_rndrinit()
740 scp->rndr->draw_mouse = vga_pxlmouse_direct; in vga_rndrinit()
753 line_width = scp->sc->adp->va_line_width; in vga_pxlclear_direct()
754 pixel_size = scp->sc->adp->va_info.vi_pixel_size; in vga_pxlclear_direct()
755 lines = scp->ysize * scp->font_size; in vga_pxlclear_direct()
756 p = scp->sc->adp->va_window + in vga_pxlclear_direct()
757 line_width * scp->yoff * scp->font_size + in vga_pxlclear_direct()
758 scp->xoff * 8 * pixel_size; in vga_pxlclear_direct()
761 bzero_io((void *)p, scp->xsize * 8 * pixel_size); in vga_pxlclear_direct()
780 line_width = scp->sc->adp->va_line_width; in vga_pxlclear_planar()
781 lines = scp->ysize*scp->font_size; in vga_pxlclear_planar()
782 p = scp->sc->adp->va_window + line_width*scp->yoff*scp->font_size in vga_pxlclear_planar()
783 + scp->xoff; in vga_pxlclear_planar()
785 bzero_io((void *)p, scp->xsize); in vga_pxlclear_planar()
804 line_width = scp->sc->adp->va_line_width; in vga_pxlborder_direct()
805 pixel_size = scp->sc->adp->va_info.vi_pixel_size; in vga_pxlborder_direct()
807 if (scp->yoff > 0) { in vga_pxlborder_direct()
808 s = scp->sc->adp->va_window; in vga_pxlborder_direct()
809 e = s + line_width * scp->yoff * scp->font_size; in vga_pxlborder_direct()
815 y = (scp->yoff + scp->ysize) * scp->font_size; in vga_pxlborder_direct()
817 if (scp->ypixel > y) { in vga_pxlborder_direct()
818 s = scp->sc->adp->va_window + line_width * y; in vga_pxlborder_direct()
819 e = s + line_width * (scp->ypixel - y); in vga_pxlborder_direct()
825 y = scp->yoff * scp->font_size; in vga_pxlborder_direct()
826 x = scp->xpixel / 8 - scp->xoff - scp->xsize; in vga_pxlborder_direct()
828 for (i = 0; i < scp->ysize * scp->font_size; ++i) { in vga_pxlborder_direct()
829 if (scp->xoff > 0) { in vga_pxlborder_direct()
830 s = scp->sc->adp->va_window + line_width * (y + i); in vga_pxlborder_direct()
831 e = s + scp->xoff * 8 * pixel_size; in vga_pxlborder_direct()
838 s = scp->sc->adp->va_window + line_width * (y + i) + in vga_pxlborder_direct()
839 scp->xoff * 8 * pixel_size + in vga_pxlborder_direct()
840 scp->xsize * 8 * pixel_size; in vga_pxlborder_direct()
858 vidd_set_border(scp->sc->adp, color); in vga_pxlborder_planar()
865 line_width = scp->sc->adp->va_line_width; in vga_pxlborder_planar()
866 p = scp->sc->adp->va_window; in vga_pxlborder_planar()
867 if (scp->yoff > 0) in vga_pxlborder_planar()
868 bzero_io((void *)p, line_width*scp->yoff*scp->font_size); in vga_pxlborder_planar()
869 y = (scp->yoff + scp->ysize)*scp->font_size; in vga_pxlborder_planar()
870 if (scp->ypixel > y) in vga_pxlborder_planar()
871 bzero_io((void *)(p + line_width*y), line_width*(scp->ypixel - y)); in vga_pxlborder_planar()
872 y = scp->yoff*scp->font_size; in vga_pxlborder_planar()
873 x = scp->xpixel/8 - scp->xoff - scp->xsize; in vga_pxlborder_planar()
874 for (i = 0; i < scp->ysize*scp->font_size; ++i) { in vga_pxlborder_planar()
875 if (scp->xoff > 0) in vga_pxlborder_planar()
876 bzero_io((void *)(p + line_width*(y + i)), scp->xoff); in vga_pxlborder_planar()
879 + scp->xoff + scp->xsize), x); in vga_pxlborder_planar()
886 vga_vgadraw_direct(scr_stat *scp, int from, int count, int flip) in vga_vgadraw_direct() argument
896 line_width = scp->sc->adp->va_line_width; in vga_vgadraw_direct()
897 pixel_size = scp->sc->adp->va_info.vi_pixel_size; in vga_vgadraw_direct()
901 if (from + count > scp->xsize * scp->ysize) in vga_vgadraw_direct()
902 count = scp->xsize * scp->ysize - from; in vga_vgadraw_direct()
904 for (i = from; count-- > 0; ++i) { in vga_vgadraw_direct()
905 a = sc_vtb_geta(&scp->vtb, i); in vga_vgadraw_direct()
907 if (flip) in vga_vgadraw_direct()
913 f = &(scp->font[sc_vtb_getc(&scp->vtb, i) * scp->font_size]); in vga_vgadraw_direct()
915 for (j = 0; j < scp->font_size; ++j, ++f) { in vga_vgadraw_direct()
917 color = *f & (1 << (7 - k)) ? col1 : col2; in vga_vgadraw_direct()
926 if ((i % scp->xsize) == scp->xsize - 1) in vga_vgadraw_direct()
927 d += scp->font_size * line_width - in vga_vgadraw_direct()
928 scp->xsize * 8 * pixel_size; in vga_vgadraw_direct()
933 vga_vgadraw_planar(scr_stat *scp, int from, int count, int flip) in vga_vgadraw_planar() argument
944 line_width = scp->sc->adp->va_line_width; in vga_vgadraw_planar()
948 if (scp->sc->adp->va_type == KD_VGA) { in vga_vgadraw_planar()
955 fg = bg = -1; in vga_vgadraw_planar()
956 if (from + count > scp->xsize*scp->ysize) in vga_vgadraw_planar()
957 count = scp->xsize*scp->ysize - from; in vga_vgadraw_planar()
958 for (i = from; count-- > 0; ++i) { in vga_vgadraw_planar()
959 a = sc_vtb_geta(&scp->vtb, i); in vga_vgadraw_planar()
960 if (flip) in vga_vgadraw_planar()
967 fg = -1; in vga_vgadraw_planar()
969 if (scp->sc->adp->va_type != KD_VGA) in vga_vgadraw_planar()
980 f = &(scp->font[sc_vtb_getc(&scp->vtb, i)*scp->font_size]); in vga_vgadraw_planar()
981 for (j = 0; j < scp->font_size; ++j, ++f) { in vga_vgadraw_planar()
982 if (scp->sc->adp->va_type == KD_VGA) in vga_vgadraw_planar()
991 if ((i % scp->xsize) == scp->xsize - 1) in vga_vgadraw_planar()
992 d += scp->font_size * line_width - scp->xsize; in vga_vgadraw_planar()
994 if (scp->sc->adp->va_type == KD_VGA) in vga_vgadraw_planar()
1009 draw_pxlcursor_direct(scr_stat *scp, int at, int on, int flip) in draw_pxlcursor_direct() argument
1019 line_width = scp->sc->adp->va_line_width; in draw_pxlcursor_direct()
1020 pixel_size = scp->sc->adp->va_info.vi_pixel_size; in draw_pxlcursor_direct()
1023 (scp->font_size - scp->curs_attr.base - 1) * line_width; in draw_pxlcursor_direct()
1025 a = sc_vtb_geta(&scp->vtb, at); in draw_pxlcursor_direct()
1027 if (flip) in draw_pxlcursor_direct()
1034 f = &(scp->font[sc_vtb_getc(&scp->vtb, at) * scp->font_size + in draw_pxlcursor_direct()
1035 scp->font_size - scp->curs_attr.base - 1]); in draw_pxlcursor_direct()
1037 height = imin(scp->curs_attr.height, scp->font_size); in draw_pxlcursor_direct()
1039 for (i = 0; i < height; ++i, --f) { in draw_pxlcursor_direct()
1041 color = *f & (1 << (7 - j)) ? col1 : col2; in draw_pxlcursor_direct()
1045 d -= line_width; in draw_pxlcursor_direct()
1050 draw_pxlcursor_planar(scr_stat *scp, int at, int on, int flip) in draw_pxlcursor_planar() argument
1060 line_width = scp->sc->adp->va_line_width; in draw_pxlcursor_planar()
1063 (scp->font_size - scp->curs_attr.base - 1) * line_width; in draw_pxlcursor_planar()
1069 a = sc_vtb_geta(&scp->vtb, at); in draw_pxlcursor_planar()
1070 if (flip) in draw_pxlcursor_planar()
1082 f = &(scp->font[sc_vtb_getc(&scp->vtb, at)*scp->font_size in draw_pxlcursor_planar()
1083 + scp->font_size - scp->curs_attr.base - 1]); in draw_pxlcursor_planar()
1084 height = imin(scp->curs_attr.height, scp->font_size); in draw_pxlcursor_planar()
1085 for (i = 0; i < height; ++i, --f) { in draw_pxlcursor_planar()
1088 d -= line_width; in draw_pxlcursor_planar()
1098 vga_pxlcursor_direct(scr_stat *scp, int at, int blink, int on, int flip) in vga_pxlcursor_direct() argument
1100 if (scp->curs_attr.height <= 0) /* the text cursor is disabled */ in vga_pxlcursor_direct()
1105 scp->status |= VR_CURSOR_ON; in vga_pxlcursor_direct()
1106 draw_pxlcursor_direct(scp, at, on, flip); in vga_pxlcursor_direct()
1109 scp->status ^= VR_CURSOR_ON; in vga_pxlcursor_direct()
1111 scp->status & VR_CURSOR_ON, in vga_pxlcursor_direct()
1112 flip); in vga_pxlcursor_direct()
1115 if (scp->status & VR_CURSOR_ON) in vga_pxlcursor_direct()
1116 draw_pxlcursor_direct(scp, at, on, flip); in vga_pxlcursor_direct()
1117 scp->status &= ~VR_CURSOR_ON; in vga_pxlcursor_direct()
1120 scp->status |= VR_CURSOR_BLINK; in vga_pxlcursor_direct()
1122 scp->status &= ~VR_CURSOR_BLINK; in vga_pxlcursor_direct()
1126 vga_pxlcursor_planar(scr_stat *scp, int at, int blink, int on, int flip) in vga_pxlcursor_planar() argument
1128 if (scp->curs_attr.height <= 0) /* the text cursor is disabled */ in vga_pxlcursor_planar()
1133 scp->status |= VR_CURSOR_ON; in vga_pxlcursor_planar()
1134 draw_pxlcursor_planar(scp, at, on, flip); in vga_pxlcursor_planar()
1137 scp->status ^= VR_CURSOR_ON; in vga_pxlcursor_planar()
1139 scp->status & VR_CURSOR_ON, in vga_pxlcursor_planar()
1140 flip); in vga_pxlcursor_planar()
1143 if (scp->status & VR_CURSOR_ON) in vga_pxlcursor_planar()
1144 draw_pxlcursor_planar(scp, at, on, flip); in vga_pxlcursor_planar()
1145 scp->status &= ~VR_CURSOR_ON; in vga_pxlcursor_planar()
1148 scp->status |= VR_CURSOR_BLINK; in vga_pxlcursor_planar()
1150 scp->status &= ~VR_CURSOR_BLINK; in vga_pxlcursor_planar()
1154 vga_pxlblink_direct(scr_stat *scp, int at, int flip) in vga_pxlblink_direct() argument
1156 if (!(scp->status & VR_CURSOR_BLINK)) in vga_pxlblink_direct()
1161 scp->status ^= VR_CURSOR_ON; in vga_pxlblink_direct()
1162 draw_pxlcursor_direct(scp, at, scp->status & VR_CURSOR_ON, flip); in vga_pxlblink_direct()
1166 vga_pxlblink_planar(scr_stat *scp, int at, int flip) in vga_pxlblink_planar() argument
1168 if (!(scp->status & VR_CURSOR_BLINK)) in vga_pxlblink_planar()
1173 scp->status ^= VR_CURSOR_ON; in vga_pxlblink_planar()
1174 draw_pxlcursor_planar(scp, at, scp->status & VR_CURSOR_ON, flip); in vga_pxlblink_planar()
1191 mdp = scp->mouse_data; in draw_pxlmouse_planar()
1192 line_width = scp->sc->adp->va_line_width; in draw_pxlmouse_planar()
1193 xoff = (x - scp->xoff*8)%8; in draw_pxlmouse_planar()
1194 ymax = imin(y + mdp->md_height, scp->ypixel); in draw_pxlmouse_planar()
1196 if (scp->sc->adp->va_type == KD_VGA) { in draw_pxlmouse_planar()
1204 outw(GDCIDX, (scp->curs_attr.mouse_ba << 8) | 0x00); /* set/reset */ in draw_pxlmouse_planar()
1205 p = scp->sc->adp->va_window + line_width*y + x/8; in draw_pxlmouse_planar()
1207 m = mdp->md_border[j] << 8 >> xoff; in draw_pxlmouse_planar()
1209 m1 = m >> (8 * (2 - k)); in draw_pxlmouse_planar()
1210 if (m1 != 0 && x + 8 * k < scp->xpixel) { in draw_pxlmouse_planar()
1212 if (scp->sc->adp->va_type == KD_VGA) in draw_pxlmouse_planar()
1223 outw(GDCIDX, (scp->curs_attr.mouse_ia << 8) | 0x00); /* set/reset */ in draw_pxlmouse_planar()
1224 p = scp->sc->adp->va_window + line_width*y + x/8; in draw_pxlmouse_planar()
1226 m = mdp->md_interior[j] << 8 >> xoff; in draw_pxlmouse_planar()
1228 m1 = m >> (8 * (2 - k)); in draw_pxlmouse_planar()
1229 if (m1 != 0 && x + 8 * k < scp->xpixel) { in draw_pxlmouse_planar()
1231 if (scp->sc->adp->va_type == KD_VGA) in draw_pxlmouse_planar()
1242 if (scp->sc->adp->va_type == KD_VGA) in draw_pxlmouse_planar()
1257 mdp = scp->mouse_data; in remove_pxlmouse_planar()
1263 bx = (scp->xoff + scp->xsize) * 8; in remove_pxlmouse_planar()
1264 by = (scp->yoff + scp->ysize) * scp->font_size; in remove_pxlmouse_planar()
1265 xend = imin(x + mdp->md_width, scp->xpixel); in remove_pxlmouse_planar()
1266 yend = imin(y + mdp->md_height, scp->ypixel); in remove_pxlmouse_planar()
1270 /* Repaint the non-empty overlap. */ in remove_pxlmouse_planar()
1271 line_width = scp->sc->adp->va_line_width; in remove_pxlmouse_planar()
1276 outw(GDCIDX, (scp->border << 8) | 0x00); /* set/reset */ in remove_pxlmouse_planar()
1279 p = scp->sc->adp->va_window + yoff * line_width + i; in remove_pxlmouse_planar()
1296 mdp = scp->mouse_data; in vga_pxlmouse_direct()
1302 xend = imin(x + mdp->md_width, scp->xpixel); in vga_pxlmouse_direct()
1303 yend = imin(y + mdp->md_height, scp->ypixel); in vga_pxlmouse_direct()
1304 if (!on && xend <= (scp->xoff + scp->xsize) * 8 && in vga_pxlmouse_direct()
1305 yend <= (scp->yoff + scp->ysize) * scp->font_size) in vga_pxlmouse_direct()
1308 line_width = scp->sc->adp->va_line_width; in vga_pxlmouse_direct()
1309 pixel_size = scp->sc->adp->va_info.vi_pixel_size; in vga_pxlmouse_direct()
1315 p = scp->sc->adp->va_window + y * line_width + x * pixel_size; in vga_pxlmouse_direct()
1316 for (i = 0; i < yend - y; i++, p += line_width) in vga_pxlmouse_direct()
1317 for (j = xend - x - 1; j >= 0; j--) in vga_pxlmouse_direct()
1318 DRAW_PIXEL(scp, p + j * pixel_size, scp->border); in vga_pxlmouse_direct()
1323 p = scp->sc->adp->va_window + y * line_width + x * pixel_size; in vga_pxlmouse_direct()
1324 for (i = 0; i < yend - y; i++, p += line_width) in vga_pxlmouse_direct()
1325 for (j = xend - x - 1; j >= 0; j--) in vga_pxlmouse_direct()
1326 if (mdp->md_interior[i] & (1 << (15 - j))) in vga_pxlmouse_direct()
1328 scp->curs_attr.mouse_ia); in vga_pxlmouse_direct()
1329 else if (mdp->md_border[i] & (1 << (15 - j))) in vga_pxlmouse_direct()
1331 scp->curs_attr.mouse_ba); in vga_pxlmouse_direct()
1353 vidd_set_border(scp->sc->adp, color); in vga_grborder()