23 |
#include <unistd.h> |
#include <unistd.h> |
24 |
#include <iconv.h> |
#include <iconv.h> |
25 |
#include <argp.h> |
#include <argp.h> |
26 |
|
#include <string.h> |
27 |
|
|
28 |
#include <sys/io.h> |
#include <sys/io.h> |
29 |
#include <sys/mman.h> |
#include <sys/mman.h> |
265 |
} |
} |
266 |
mutex_unlock (&vga_lock); |
mutex_unlock (&vga_lock); |
267 |
} |
} |
268 |
mutex_unlock (&cons->lock); |
mutex_unlock (&cons->lock); |
269 |
return 0; |
return 0; |
270 |
} |
} |
271 |
|
|
291 |
emu->x = emu->width - 1; |
emu->x = emu->width - 1; |
292 |
else if (emu->x < 0) |
else if (emu->x < 0) |
293 |
emu->x = 0; |
emu->x = 0; |
294 |
|
|
295 |
if (emu->y >= emu->height) |
if (emu->y >= emu->height) |
296 |
emu->y = emu->height - 1; |
emu->y = emu->height - 1; |
297 |
else if (emu->y < 0) |
else if (emu->y < 0) |
484 |
emu->params[0] ?: 1, emu->attr | ' '); |
emu->params[0] ?: 1, emu->attr | ' '); |
485 |
break; |
break; |
486 |
case '@': /* insert character(s): <ich1>, <ich> */ |
case '@': /* insert character(s): <ich1>, <ich> */ |
487 |
screen_scroll_right (emu->screen, emu->x, emu->y, |
screen_scroll_right (emu->screen, emu->x, emu->y, |
488 |
emu->width - emu->x, 1, |
emu->width - emu->x, 1, |
489 |
emu->params[0] ?: 1, emu->attr | ' '); |
emu->params[0] ?: 1, emu->attr | ' '); |
490 |
break; |
break; |
571 |
} |
} |
572 |
else |
else |
573 |
{ |
{ |
574 |
if (cons->current_line == cons->video_buffer_lines - 1) |
if (cons->current_line == cons->video_buffer_lines - 1) |
575 |
cons->current_line = 0; |
cons->current_line = 0; |
576 |
else |
else |
577 |
cons->current_line++; |
cons->current_line++; |
648 |
int charval = dynafont_lookup (cons->df, chr); |
int charval = dynafont_lookup (cons->df, chr); |
649 |
int line = (cons->current_line + cons->cursor_y) |
int line = (cons->current_line + cons->cursor_y) |
650 |
% cons->video_buffer_lines; |
% cons->video_buffer_lines; |
651 |
|
|
652 |
cons->video_buffer[(line * cons->width + cons->cursor_x) * 2] |
cons->video_buffer[(line * cons->width + cons->cursor_x) * 2] |
653 |
= charval & 0xff; |
= charval & 0xff; |
654 |
cons->video_buffer[(line * cons->width + cons->cursor_x) * 2 + 1] |
cons->video_buffer[(line * cons->width + cons->cursor_x) * 2 + 1] |
791 |
/* First process all successfully converted characters. */ |
/* First process all successfully converted characters. */ |
792 |
for (i = 0; i < CONV_OUTBUF_SIZE - outsize; i++) |
for (i = 0; i < CONV_OUTBUF_SIZE - outsize; i++) |
793 |
vga_display_output_one (cons, outbuf[i]); |
vga_display_output_one (cons, outbuf[i]); |
794 |
|
|
795 |
if (nconv == (size_t) -1) |
if (nconv == (size_t) -1) |
796 |
{ |
{ |
797 |
/* Conversion didn't work out. */ |
/* Conversion didn't work out. */ |