コード例 #1
0
ファイル: ansicon_write.c プロジェクト: Celelibi/syslinux
static void ansicon_write_char(int x, int y, uint8_t ch,
			       const struct term_state *st)
{
    uint8_t attribute = ansicon_attribute(st);
    ansicon_set_cursor(x, y, false);

    firmware->o_ops->write_char(ch, attribute);
}
コード例 #2
0
ファイル: ansicon_write.c プロジェクト: Celelibi/syslinux
/* Erase a region of the screen */
static void ansicon_erase(const struct term_state *st,
			  int x0, int y0, int x1, int y1)
{
    uint8_t attribute = ansicon_attribute(st);

    if (firmware->o_ops->erase)
	firmware->o_ops->erase(x0, y0, x1, y1, attribute);
}
コード例 #3
0
ファイル: ansicon_write.c プロジェクト: Celelibi/syslinux
static void ansicon_scroll_up(const struct term_state *st)
{
    uint8_t rows, cols, attribute;

    cols = ti.cols - 1;
    rows = ti.rows - 1;
    attribute = ansicon_attribute(st);

    firmware->o_ops->scroll_up(cols, rows, attribute);
}
コード例 #4
0
static void ansicon_scroll_up(const struct term_state *st)
{
  static com32sys_t ireg;

  ireg.eax.w[0] = 0x0601;
  ireg.ebx.b[1] = ansicon_attribute(st);
  ireg.ecx.w[0] = 0;
  ireg.edx.b[1] = ti.rows-1;
  ireg.edx.b[0] = ti.cols-1;
  __intcall(0x10, &ireg, NULL); /* Scroll */
}
コード例 #5
0
/* Erase a region of the screen */
static void ansicon_erase(const struct term_state *st,
			  int x0, int y0, int x1, int y1)
{
  static com32sys_t ireg;

  ireg.eax.w[0] = 0x0600;	/* Clear window */
  ireg.ebx.b[1] = ansicon_attribute(st);
  ireg.ecx.b[0] = x0;
  ireg.ecx.b[1] = y0;
  ireg.edx.b[0] = x1;
  ireg.edx.b[1] = y1;
  __intcall(0x10, &ireg, NULL);
}
コード例 #6
0
static void ansicon_write_char(int x, int y, uint8_t ch,
			       const struct term_state *st)
{
  static com32sys_t ireg;

  ansicon_set_cursor(x, y, 0);

  ireg.eax.b[1] = 0x09;
  ireg.eax.b[0] = ch;
  ireg.ebx.b[1] = BIOS_PAGE;
  ireg.ebx.b[0] = ansicon_attribute(st);
  ireg.ecx.w[0] = 1;
  __intcall(0x10, &ireg, NULL);
}