/* Clear display from current position to end of screen */ void CD(void) { get_pos(&curx, &cury); if (curx > 0) { v86.ctl = 0; v86.addr = 0x10; v86.eax = 0x0600; v86.ebx = (bg_c << 4) + fg_c; v86.ecx = (cury << 8) + curx; v86.edx = (cury << 8) + 79; v86int(); if (++cury > 24) { end_term(); return; } } v86.ctl = 0; v86.addr = 0x10; v86.eax = 0x0600; v86.ebx = (bg_c << 4) + fg_c; v86.ecx = (cury << 8) + 0; v86.edx = (24 << 8) + 79; v86int(); end_term(); }
//end constructor const_product_boundary_iterator( const Boundary1& b1, const Boundary2& b2, const Product & p, const bool b): face1(), face2(), end1( b1.end( p.first)), end2( b2.end( p.second)), sign( 0){ end_term(); }
/* Exit attribute mode (reset fore/back-ground colors to defaults) */ void ME(void) { fg_c=7; bg_c=0; end_term(); }
static int vidc_init(int arg) { int i, hw_cursor; if (vidc_started && arg == 0) return (0); vidc_started = 1; Crtat = (unsigned short *)PTOV(0xA0000); while ((inb(0x60) & 0x04) == 0) ; outb(0x62, 0xe0); while ((inb(0x60) & 0x01) == 0) ; hw_cursor = inb(0x62); hw_cursor |= (inb(0x62) << 8); inb(0x62); inb(0x62); inb(0x62); crtat = Crtat + hw_cursor; #ifdef TERM_EMU /* Init terminal emulator */ end_term(); get_pos(); curs_move(curx, cury); fg_c = DEFAULT_FGCOLOR; bg_c = DEFAULT_BGCOLOR; #endif for (i = 0; i < 10 && vidc_ischar(); i++) (void)vidc_getchar(); return (0); /* XXX reinit? */ }
/* Absolute cursor move to args[0] rows and args[1] columns * (the coordinates are 1-based). */ void CM(void) { if(args[0]>0) args[0]--; if(args[1]>0) args[1]--; curs_move(args[1],args[0]); end_term(); }
/* Clear display from current position to end of screen */ void CD(void) { int pos; get_pos(); for (pos = 0; crtat + pos <= Crtat + col * row; pos++) { *(crtat + pos) = ' '; *(crtat + pos + 0x1000) = at2pc98(fg_c, bg_c); } end_term(); }
/* Clear display from current position to end of screen */ void CD(void) { get_pos(); v86.ctl = 0; v86.addr = 0x10; v86.eax = 0x0600; v86.ebx = (bg_c<<4)+fg_c; v86.ecx = v86.edx; v86.edx = 0x184f; v86int(); curx=0; curs_move(curx,cury); end_term(); }
void next_term(){ //\partial(\sigma) \times \tau if( face1 != end1){ face.cell().first = face1->cell(); face.cell().second = cellptr->second; face.coefficient( face1->coefficient()); ++face1; } else if ( face2 != end2){ face.cell().first = cellptr->first; face.cell().second = face2->cell(); face.coefficient( face2->coefficient()); face *= sign; ++face2; } else { end_term(); } }
/* Gracefully exit ESC-sequence processing in case of misunderstanding */ void bail_out(int c) { char buf[16], *ch; int i; if (esc) { vidc_rawputchar('\033'); if (esc != '\033') vidc_rawputchar(esc); for (i = 0; i <= argc; ++i) { sprintf(buf, "%d", args[i]); ch = buf; while (*ch) vidc_rawputchar(*ch++); } } vidc_rawputchar(c); end_term(); }
static int vidc_init(int arg) { int i; if (vidc_started && arg == 0) return (0); vidc_started = 1; #ifdef TERM_EMU /* Init terminal emulator */ end_term(); get_pos(&curx, &cury); curs_move(&curx, &cury, curx, cury); fg_c = DEFAULT_FGCOLOR; bg_c = DEFAULT_BGCOLOR; #endif for (i = 0; i < 10 && vidc_ischar(); i++) (void)vidc_getchar(); return (0); /* XXX reinit? */ }
/* Gracefully exit ESC-sequence processing in case of misunderstanding */ void bail_out(int c) { char buf[6],*ch; if(esc) vidc_rawputchar('\033'); if(br) vidc_rawputchar('['); if(argc>-1) { sprintf(buf,"%d",args[0]); ch=buf; while(*ch) vidc_rawputchar(*ch++); if(argc>0) { vidc_rawputchar(';'); sprintf(buf,"%d",args[1]); ch=buf; while(*ch) vidc_rawputchar(*ch++); } } vidc_rawputchar(c); end_term(); }
/* Emulate basic capabilities of cons25 terminal */ void vidc_term_emu(int c) { static int ansi_col[] = { 0, 4, 2, 6, 1, 5, 3, 7, }; int t; int i; switch (esc) { case 0: switch (c) { case '\033': esc = c; break; default: vidc_rawputchar(c); break; } break; case '\033': switch (c) { case '[': esc = c; args[0] = 0; argc = -1; break; default: bail_out(c); break; } break; case '[': switch (c) { case ';': if (argc < 0) /* XXX */ argc = 0; else if (argc + 1 >= MAXARGS) bail_out(c); else args[++argc] = 0; break; case 'H': if (argc < 0) HO(); else if (argc == 1) CM(); else bail_out(c); break; case 'J': if (argc < 0) CD(); else bail_out(c); break; case 'm': if (argc < 0) { fg_c = DEFAULT_FGCOLOR; bg_c = DEFAULT_BGCOLOR; } for (i = 0; i <= argc; ++i) { switch (args[i]) { case 0: /* back to normal */ fg_c = DEFAULT_FGCOLOR; bg_c = DEFAULT_BGCOLOR; break; case 1: /* bold */ fg_c |= 0x8; break; case 4: /* underline */ case 5: /* blink */ bg_c |= 0x8; break; case 7: /* reverse */ t = fg_c; fg_c = bg_c; bg_c = t; break; case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: fg_c = ansi_col[args[i] - 30]; break; case 39: /* normal */ fg_c = DEFAULT_FGCOLOR; break; case 40: case 41: case 42: case 43: case 44: case 45: case 46: case 47: bg_c = ansi_col[args[i] - 40]; break; case 49: /* normal */ bg_c = DEFAULT_BGCOLOR; break; } } end_term(); break; default: if (isdigit(c)) get_arg(c); else bail_out(c); break; } break; default: bail_out(c); break; } }
/* Set foreground color */ void AF(void) { fg_c=args[0]; end_term(); }
/* Set background color */ void AB(void){ bg_c=args[0]; end_term(); }