int phantom_debug_window_puts(const char *s) { if(phantom_debug_window == 0) return 0; w_font_tty_string( phantom_debug_window, &DEB_FONT, s, console_fg, console_bg, &ttxd, &ttyd ); //drv_video_winblt( phantom_debug_window ); return 0; }
static int phantom_console_window_puts(const char *s) { if(phantom_console_window == 0) return 0; w_font_tty_string( phantom_console_window, &CON_FONT, s, console_fg, console_bg, &ttx, &tty ); w_update( phantom_console_window ); return 0; }
static int putws_17(struct pvm_object me , struct data_area_4_thread *tc ) { DEBUG_INFO; struct data_area_4_tty *da = pvm_data_area( me, tty ); //printf("putws font %d,%d\n", da->font_width, da->font_height ); int n_param = POP_ISTACK; CHECK_PARAM_COUNT(n_param, 1); struct pvm_object _text = POP_ARG; ASSERT_STRING(_text); int len = pvm_get_str_len( _text ); const char * data = (const char *)pvm_get_str_data(_text); char buf[BS+2]; if( len > BS ) len = BS; strncpy( buf, data, len ); //buf[len] = '\n'; buf[len] = 0; SYS_FREE_O(_text); //printf("tty print: '%s' at %d,%d\n", buf, da->x, da->y ); struct rgba_t fg = da->fg; struct rgba_t bg = da->bg; w_font_tty_string( &(da->w), tty_font, buf, fg, bg, &(da->x), &(da->y) ); drv_video_window_update( &(da->w) ); SYSCALL_RETURN_NOTHING; }