Home | History | Annotate | Download | only in isa

Lines Matching refs:scr

286 ega_selectfont(struct ega_config *vc, struct egascreen *scr, char *name1, char *name2)
289 const struct wsscreen_descr *type = scr->pcs.type;
319 if (scr != &ega_console_screen || ega_console_attached) {
328 scr->fontset1 = f1;
329 scr->fontset2 = f2;
336 ega_init_screen(struct ega_config *vc, struct egascreen *scr, const struct wsscreen_descr *type, int existing, long *attrp)
341 scr->cfg = vc;
342 scr->pcs.hdl = (struct pcdisplay_handle *)&vc->hdl;
343 scr->pcs.type = type;
344 scr->pcs.active = 0;
345 scr->mindispoffset = 0;
346 scr->maxdispoffset = 0x8000 - type->nrows * type->ncols * 2;
356 scr->pcs.dispoffset = vga_6845_read(&vc->hdl, startadrh) << 9;
357 scr->pcs.dispoffset |= vga_6845_read(&vc->hdl, startadrl) << 1;
360 if (scr->pcs.dispoffset < scr->mindispoffset ||
361 scr->pcs.dispoffset > scr->maxdispoffset)
362 scr->pcs.dispoffset = scr->mindispoffset;
365 scr->pcs.dispoffset = scr->mindispoffset;
368 scr->pcs.cursorrow = cpos / type->ncols;
369 scr->pcs.cursorcol = cpos % type->ncols;
370 pcdisplay_cursor_init(&scr->pcs, existing);
372 res = ega_allocattr(scr, 0, 0, 0, attrp);
378 scr->pcs.mem = NULL;
380 scr->fontset1 = scr->fontset2 = 0;
381 if (ega_selectfont(vc, scr, 0, 0)) {
382 if (scr == &ega_console_screen)
389 LIST_INSERT_HEAD(&vc->screens, scr, next);
532 const struct wsscreen_descr *scr;
542 scr = ega_console_dc.currenttype;
543 ega_init_screen(&ega_console_dc, &ega_console_screen, scr, 1, &defattr);
548 wsdisplay_cnattach(scr, &ega_console_screen,
586 struct egascreen *scr;
598 scr = malloc(sizeof(struct egascreen), M_DEVBUF, M_WAITOK);
599 ega_init_screen(vc, scr, type, vc->nscreens == 0, defattrp);
602 scr->pcs.active = 1;
603 vc->active = scr;
606 scr->pcs.mem = malloc(type->ncols * type->nrows * 2,
608 pcdisplay_eraserows(&scr->pcs, 0, type->nrows, *defattrp);
611 *cookiep = scr;
612 *curxp = scr->pcs.cursorcol;
613 *curyp = scr->pcs.cursorrow;
634 ega_setfont(struct ega_config *vc, struct egascreen *scr)
638 fontslot1 = (scr->fontset1 ? scr->fontset1->slot : 0);
639 fontslot2 = (scr->fontset2 ? scr->fontset2->slot : fontslot1);
651 struct egascreen *scr = cookie, *oldscr;
652 struct ega_config *vc = scr->cfg;
655 if (scr == oldscr) {
675 struct egascreen *scr, *oldscr;
679 scr = vc->wantedscreen;
680 if (!scr) {
685 type = scr->pcs.type;
695 if (scr == oldscr) {
699 if (scr->pcs.active)
717 ega_setfont(vc, scr);
720 scr->pcs.dispoffset = scr->mindispoffset;
721 if (!oldscr || (scr->pcs.dispoffset != oldscr->pcs.dispoffset)) {
722 vga_6845_write(vh, startadrh, scr->pcs.dispoffset >> 9);
723 vga_6845_write(vh, startadrl, scr->pcs.dispoffset >> 1);
727 scr->pcs.dispoffset, scr->pcs.mem,
729 scr->pcs.active = 1;
731 vc->active = scr;
733 pcdisplay_cursor(&scr->pcs, scr->pcs.cursoron,
734 scr->pcs.cursorrow, scr->pcs.cursorcol);
745 struct egascreen *scr = cookie;
750 if (scr) {
754 res = ega_selectfont(vc, scr, data->name, name2);
756 ega_setfont(vc, scr);
799 struct egascreen *scr = id;
800 struct ega_config *vc = scr->cfg;
835 struct egascreen *scr = id;
836 bus_space_tag_t memt = scr->pcs.hdl->ph_memt;
837 bus_space_handle_t memh = scr->pcs.hdl->ph_memh;
838 int ncols = scr->pcs.type->ncols;
844 if (scr->pcs.active) {
845 if (dstrow == 0 && (srcrow + nrows == scr->pcs.type->nrows)) {
847 int cursoron = scr->pcs.cursoron;
850 pcdisplay_cursor(&scr->pcs, 0,
851 scr->pcs.cursorrow, scr->pcs.cursorcol);
854 if ((scr->pcs.dispoffset + srcrow * ncols * 2)
855 <= scr->maxdispoffset) {
856 scr->pcs.dispoffset += srcrow * ncols * 2;
859 scr->pcs.dispoffset + srcoff * 2,
860 memh, scr->mindispoffset,
862 scr->pcs.dispoffset = scr->mindispoffset;
864 vga_6845_write(&scr->cfg->hdl, startadrh,
865 scr->pcs.dispoffset >> 9);
866 vga_6845_write(&scr->cfg->hdl, startadrl,
867 scr->pcs.dispoffset >> 1);
870 pcdisplay_cursor(&scr->pcs, 1,
871 scr->pcs.cursorrow, scr->pcs.cursorcol);
875 scr->pcs.dispoffset + srcoff * 2,
876 memh, scr->pcs.dispoffset + dstoff * 2,
880 memcpy(&scr->pcs.mem[dstoff], &scr->pcs.mem[srcoff],