void cursor_on(int8_t y, int8_t x) { map_for_video(); curpty->csave = *(char_addr(y, x)+1); curpty->cpos = char_addr(y, x)+1; *curpty->cpos = *curpty->cpos ^ 0x3f; map_for_kernel(); }
void clear_across(int8_t y, int8_t x, int16_t l) { char_addr(y, x); vtcount = l; vtchar = ' '; vwrite(); }
void clear_lines(int8_t y, int8_t ct) { char_addr(y, 0); vtcount = ct * (uint16_t)VT_WIDTH; vtchar = ' '; vwrite(); }
void plot_char(int8_t y, int8_t x, uint16_t c) { char_addr(y,x); vtcount = 1; vtchar = c; vwrite(); }
void plot_char(int8_t y, int8_t x, uint16_t c) { char *p=char_addr(y,x); map_for_video(); *p++ = VT_MAP_CHAR(c); *p = curpty->attr; map_for_kernel(); }
void clear_across(int8_t y, int8_t x, int16_t l) { map_for_video(); uint16_t *s = (uint16_t *)char_addr(y, x); uint16_t w=' ' * 0x100 + curpty->attr; while( l-- ) *s++=w; map_for_kernel(); }
void clear_lines(int8_t y, int8_t ct) { uint16_t wc= ct * VT_WIDTH; map_for_video(); uint16_t *s = (uint16_t *)char_addr(y, 0); uint16_t w = ' ' * 0x100 + curpty->attr; while( wc-- ) *s++=w; map_for_kernel(); }
void clear_across(int8_t y, int8_t x, int16_t l) { unsigned char *s = char_addr(y, x); memset(s, ' ', l); }
void clear_lines(int8_t y, int8_t ct) { unsigned char *s = char_addr(y, 0); memset(s, ' ', ct * VT_WIDTH); }
void plot_char(int8_t y, int8_t x, uint16_t c) { *char_addr(y, x) = VT_MAP_CHAR(c); }
void cursor_on(int8_t y, int8_t x) { cpos = char_addr(y, x); csave = *cpos; *cpos = VT_MAP_CHAR('_'); }
void cursor_on(int8_t y, int8_t x) { char_addr(y,x); do_cursor_on(); }
void vc_plot_char(int8_t y, int8_t x, uint16_t c) { vc_write_char(char_addr(y, x), VT_MAP_CHAR(c)); }
void vc_cursor_on(int8_t y, int8_t x) { cpos[VC] = char_addr(y, x); csave[VC] = vc_read_char(cpos[VC]); vc_write_char(cpos[VC], 0x80); /* black square */ }