Dados gerais

Interface: TextVideo
Arquivos: textvideo.h
Última atualização: 22/06/2003
Autor: Luiz Henrique Shigunov
Informações

Descrição
Estruturas
Funções para o sistema

0x00 - Clear - Limpa uma região da tela
0x01 - GetCurrentMode - Obtém o modo corrente
0x02 - GetModeDesc - Obtém a descrição de um modo
0x09 - GetStatus - Obtém o estado do modo corrente
0x03 - Scroll - Rola a tela

0x04 - SetAttrib - Define os atributos do caracter
0x05 - SetCursorPos - Define a posição do cursor
0x06 - SetCursorType - Define o tipo de cursor
0x07 - SetMode - Define o modo corrente
0x08 - Write - Escreve na tela com atributos corrente
Funções para o usuário

0x0a - UClear - Limpa uma região da tela
0x0b - UGetCurrentMode - Obtém o modo corrente
0x0c - UGetModeDesc - Obtém a descrição de um modo
0x0d - UGetStatus - Obtém o estado do modo corrente
0x0e - UScroll - Rola a tela

0x0f - USetAttrib - Define os atributos do caracter
0x10 - USetCursorPos - Define a posição do cursor
0x11 - USetCursorType - Define o tipo de cursor
0x12 - USetMode - Define o modo corrente
0x13 - UWrite - Escreve na tela com atributos corrente

Descrição

Esta página descreve a interface TextVideo que trata do acesso ao console.

Essa interface é usada por programas que usem o console.

A primeira linha da tela é a linha 0 e a primeira coluna é a coluna 0.

Estruturas

typedef struct {
    unsigned int rows;
    unsigned int cols;
    int flags;
} TextVideo_ModeDesc;

Onde rows é o número de linhas e cols o número de colunas.

flags é o somatório de:

typedef struct {
    unsigned int row;
    unsigned int col;
    int attrib;
    int cursorType;
} TextVideo_Status;

Onde row e col é a posição do cursor, attrib os atributos do caracter e cursorType o tipo de cursor.

Funções para o sistema

Estas funções são de uso exclusivo dos módulos do sistema.

0x00 - Clear

Sintaxe

void TextVideo_Clear(unsigned int row, unsigned int col, unsigned int height, unsigned int width);

Propriedades

Descrição

Esta função limpa a região da tela definida pelo ponto row,col e de tamanho height linhas e width colunas.

A tela é limpa utilizando-se o caracter espaço com os atributos correntes.

Valor de retorno

Nada.

0x01 - GetCurrentMode

Sintaxe

unsigned int TextVideo_GetCurrentMode(void);

Propriedades

Descrição

Esta função obtém o modo corrente.

O valor retornado pode ser usado na função GetModeDesc para obter as características do modo.

Valor de retorno

O modo corrente.

0x02 - GetModeDesc

Sintaxe

int TextVideo_GetModeDesc(unsigned int mode, TextVideo_ModeDesc *desc);

Propriedades

Descrição

Esta função obtém as características do modo mode.

Em caso de sucesso desc é preenchido com as características do modo.

Valor de retorno

0x09 - GetStatus

Sintaxe

int TextVideo_GetStatus(TextVideo_Status *status);

Propriedades

Descrição

Esta função obtém o estado do modo corrente.

Em caso de sucesso status é preenchido com o estado do modo corrente.

Valor de retorno

0x03 - Scroll

Sintaxe

int TextVideo_Scroll(unsigned int top, unsigned int bottom, unsigned int lines, int dir);

Propriedades

Descrição

Esta função rola a tela dentro da região definida pelas linhas top-bottom, inclusive.

dir é a direção e lines o número de linhas a serem roladas.

O espaço aberto é preenchido da mesma forma que a função Clear preenche.

dir deve ser 0 ou:

Por exemplo, para rolar a região 0-10, 5 linhas para cima (fazendo as linhas 5-10 irem para 0-4) basta chamar Scroll(0, 10, 5, 0).

Valor de retorno

0x04 - SetAttrib

Sintaxe

void TextVideo_SetAttrib(int attrib);

Propriedades

Descrição

Esta função define os atributos do caracter para attrib, que tem o seguinte formato:

BitsDescrição
0-1Intensidade: 0 - fraco; 1 - normal; 2 - intenso
2Sublinhado
3Piscando
4Invertido
5-15Reservado
16-23Cor de fundo
24-31Cor de frente

As seguintes cores estão definidas:

ValorCor
0x00Preto
0x01Vermelho
0x02Verde
0x03Marrom
0x04Azul
0x05Magenta
0x06Ciano
0x07Branco

Pode acontecer de nem todos os atributos serem suportados. A descrição do modo indica quais são suportados.

Por exemplo, para definir intensidade normal, piscando, preto cor de fundo e azul cor de frente: 0x04000009

Valor de retorno

Nada.

0x05 - SetCursorPos

Sintaxe

void TextVideo_SetCursorPos(unsigned int row, unsigned int col);

Propriedades

Descrição

Esta função posiciona o cursor em row,col.

Valor de retorno

Nada.

0x06 - SetCursorType

Sintaxe

void TextVideo_SetCursorType(int type);

Propriedades

Descrição

Esta função define o tipo de cursor para type.

type deve ser:

Valor de retorno

Nada.

0x07 - SetMode

Sintaxe

int TextVideo_SetMode(unsigned int mode);

Propriedades

Descrição

Esta função define o modo corrente para mode.

Ao definir um modo a tela é limpa, o cursor posicionado na linha 0 coluna 0 e os padrões restabelecido (atributos do caracter, tipo do cursor).

Valor de retorno

0x08 - Write

Sintaxe

int TextVideo_Write(const char *text, int size);

Propriedades

Descrição

Esta função escreve o texto text de tamanho size na posição corrente e com os atributos correntes.

text pode ser um ponteiro para dados dentro do espaço de memória do usuário, o que pode gerar uma exceção de violação de acesso à memória.

Se chegar no fim da linha o texto passa para a próxima linha e se chegar no fim da última linha as linhas serão movidas para cima.

Esta função suporta dois caracteres de controle: 0xd (\r) - retorna para o início da linha e 0xa (\n) - muda de linha e retorna para o início.

Valor de retorno

Funções para o usuário

Estas funções foram projetadas para os módulos do usuário.

0x0a - UClear

Sintaxe

int TextVideo_UClear(unsigned int row, unsigned int col, unsigned int height, unsigned int width);

Propriedades

Do usuário

Descrição

A mesma de Clear.

Valor de retorno

0x0b - UGetCurrentMode

Sintaxe

unsigned int TextVideo_UGetCurrentMode(void);

Propriedades

Do usuário

Descrição

A mesma de GetCurrentMode.

Valor de retorno

O modo corrente.

0x0c - UGetModeDesc

Sintaxe

int TextVideo_UGetModeDesc(unsigned int mode, TextVideo_ModeDesc *desc);

Propriedades

Do usuário

Descrição

A mesma de GetModeDesc.

Valor de retorno

Os mesmo de GetModeDesc, mais:

0x0d - UGetStatus

Sintaxe

int TextVideo_UGetStatus(TextVideo_Status *status);

Propriedades

Do usuário

Descrição

A mesma de GetStatus.

Valor de retorno

Os mesmo de GetStatus, mais:

0x0e - UScroll

Sintaxe

int TextVideo_UScroll(unsigned int top, unsigned int bottom, unsigned int lines, int dir);

Propriedades

Do usuário

Descrição

A mesma de Scroll.

Valor de retorno

Os mesmo de Scroll, mais:

0x0f - USetAttrib

Sintaxe

int TextVideo_USetAttrib(int attrib);

Propriedades

Do usuário

Descrição

A mesma de SetAttrib.

Valor de retorno

0x10 - USetCursorPos

Sintaxe

int TextVideo_USetCursorPos(unsigned int row, unsigned int col);

Propriedades

Do usuário

Descrição

A mesma de SetCursorPos.

Valor de retorno

0x11 - USetCursorType

Sintaxe

int TextVideo_USetCursorType(int type);

Propriedades

Do usuário

Descrição

A mesma de SetCursorType.

Valor de retorno

0x12 - USetMode

Sintaxe

int TextVideo_USetMode(unsigned int mode);

Propriedades

Do usuário

Descrição

A mesma de SetMode.

Valor de retorno

Os mesmo de SetMode, mais:

0x13 - UWrite

Sintaxe

int TextVideo_UWrite(const char *text, int size);

Propriedades

Do usuário

Descrição

A mesma de Write.

Valor de retorno

Os mesmo de Write, mais: