Interface: TextVideo Arquivos: textvideo.h Última atualização: 22/06/2003 Autor: Luiz Henrique Shigunov |
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 |
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.
Onde rows é o número de linhas e cols o número de colunas.
flags é o somatório de:
Onde row e col é a posição do cursor, attrib os atributos do caracter e cursorType o tipo de cursor.
Estas funções são de uso exclusivo dos módulos do sistema.
void TextVideo_Clear(unsigned int row, unsigned int col, unsigned int height, unsigned int width);
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.
unsigned int TextVideo_GetCurrentMode(void);
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.
int TextVideo_GetModeDesc(unsigned int mode, TextVideo_ModeDesc *desc);
Esta função obtém as características do modo mode.
Em caso de sucesso desc é preenchido com as características do modo.
typedef struct {
unsigned int rows;
unsigned int cols;
int flags;
} TextVideo_ModeDesc;
typedef struct {
unsigned int row;
unsigned int col;
int attrib;
int cursorType;
} TextVideo_Status;
Funções para o sistema
0x00 - Clear
Sintaxe
Propriedades
Descrição
Valor de retorno
0x01 - GetCurrentMode
Sintaxe
Propriedades
Descrição
Valor de retorno
0x02 - GetModeDesc
Sintaxe
Propriedades
Descrição
Valor de retorno
int TextVideo_GetStatus(TextVideo_Status *status);
Esta função obtém o estado do modo corrente.
Em caso de sucesso status é preenchido com o estado do modo corrente.
int TextVideo_Scroll(unsigned int top, unsigned int bottom, unsigned int lines, int dir);
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).
void TextVideo_SetAttrib(int attrib);
Esta função define os atributos do caracter para attrib, que tem o seguinte formato:
Bits | Descrição |
---|---|
0-1 | Intensidade: 0 - fraco; 1 - normal; 2 - intenso |
2 | Sublinhado |
3 | Piscando |
4 | Invertido |
5-15 | Reservado |
16-23 | Cor de fundo |
24-31 | Cor de frente |
As seguintes cores estão definidas:
Valor | Cor |
---|---|
0x00 | Preto |
0x01 | Vermelho |
0x02 | Verde |
0x03 | Marrom |
0x04 | Azul |
0x05 | Magenta |
0x06 | Ciano |
0x07 | Branco |
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
void TextVideo_SetCursorPos(unsigned int row, unsigned int col);
Esta função posiciona o cursor em row,col.
void TextVideo_SetCursorType(int type);
Esta função define o tipo de cursor para type.
type deve ser:
int TextVideo_SetMode(unsigned int mode);
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).
int TextVideo_Write(const char *text, int size);
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.
Estas funções foram projetadas para os módulos do usuário.
int TextVideo_UClear(unsigned int row, unsigned int col, unsigned int height, unsigned int width);
Do usuário
A mesma de Clear.
unsigned int TextVideo_UGetCurrentMode(void);
Do usuário
A mesma de GetCurrentMode.
int TextVideo_UGetModeDesc(unsigned int mode, TextVideo_ModeDesc *desc);
Do usuário
A mesma de GetModeDesc.
Os mesmo de GetModeDesc, mais:
int TextVideo_UGetStatus(TextVideo_Status *status);
Do usuário
A mesma de GetStatus.
Os mesmo de GetStatus, mais:
int TextVideo_UScroll(unsigned int top, unsigned int bottom, unsigned int lines, int dir);
Do usuário
A mesma de Scroll.
Os mesmo de Scroll, mais:
int TextVideo_USetAttrib(int attrib);
Do usuário
A mesma de SetAttrib.
int TextVideo_USetCursorPos(unsigned int row, unsigned int col);
Do usuário
A mesma de SetCursorPos.
int TextVideo_USetCursorType(int type);
Do usuário
A mesma de SetCursorType.
int TextVideo_USetMode(unsigned int mode);
Do usuário
A mesma de SetMode.
Os mesmo de SetMode, mais:
int TextVideo_UWrite(const char *text, int size);
Do usuário
A mesma de Write.
Os mesmo de Write, mais: