home *** CD-ROM | disk | FTP | other *** search
- // ====================================================================
- // TEXTMODE.H
- // (C) Anubis Software
- // Escrito el 14 de Septiembre 1995
- // Librería para el tratamiento de la pantalla en los modos de texto.
- // Esta funcion funciona a bajo nivel, directamente sobre la memoria
- // de video en el modo texto.
- // ====================================================================
-
- #ifndef TEXTMODE.H
- #define TEXTMODE.H
-
- // -------------------------------------+
- // Librerias standares del Borland C++ |
- // -------------------------------------+
- #include <dos.h>
- #include <mem.h>
-
-
- // -----------------------------+
- // Librerías de Anubis Software |
- // -----------------------------+
- #include "mdefs.h"
- #include "colores.h"
- #include "mouse.h"
-
-
- // -----------------------------------------+
- // Definición de constantes de la librería |
- // -----------------------------------------+
- #define PANTALLA 0xB800
- #define LONG_PAGINA 0x1000
-
- // Definición de tipos del cursor para la funcion tipo_cursor.
- #define CURSOR_INVISIBLE 0
- #define CURSOR_NORMAL 1
- #define CURSOR_BLOQUE 2
- #define OLD_CURSOR 3
-
- // ------------------------------------+
- // Definición de macros de la librería |
- // ------------------------------------+
- #define CARACTER(x,y) ( (WORD) ( ((y)*160) +((x)<<1) ) )
- #define ATRIBUTO(x,y) ( (WORD) (CARACTER(x,y)+1) )
- #define CARACTERP(n,x,y) ( (WORD) ((n)*LONG_PAGINA+CARACTER(x,y)) )
- #define ATRIBUTOP(n,x,y) ( (WORD) ((n)*LONG_PAGINA+ATRIBUTO(x,y)) )
- #define COLOR(x,y) ( (BYTE) (x+(y<<4)) )
-
- // Definición de las macros para escribir una cadena de carácteres
- #define escribe(cadena,posx,posy,ctexto,cfondo) escribeppa(cadena,CARACTER(posx,posy),COLOR(ctexto,cfondo))
- #define escribep(pag,cadena,posx,posy,ctexto,cfondo) escribeppa(cadena,CARACTERP(pag,posx,posy),COLOR(ctexto,cfondo))
- #define escribea(cadena,posx,posy,atrib) escribeppa(cadena,CARACTER(posx,posy),atrib)
- #define escribepa(pag,cadena,posx,posy,atrib) escribeppa(cadena,CARACTERP(pag,posx,posy),atrib)
- #define escribes(cadena) escribeppa(cadena,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
- #define escribesp(pag,cadena) escribeppa(cadena,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
-
- // Definición de las macros para escribir un caracter.
- #define escribec(car,posx,posy,ctexto,cfondo) escribecppa(car,CARACTER(posx,posy),COLOR(ctexto,cfondo))
- #define escribecp(pag,car,posx,posy,ctexto,cfondo) escribecppa(car,CARACTERP(posx,posy),COLOR(ctexto,cfondo))
- #define escribeca(car,posx,posy,atrib) escribecppa(car,CARACTER(posx,posy),atrib)
- #define escribecpa(pag,car,posx,posy,atrib) escribecppa(car,CARACTERP(pag,posx,posy),atrib)
- #define escribecs(car) escribecppa(car,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
- #define escribecsp(pag,car) escribecppa(car,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
-
- //Definicion de las macros para Borrar_Pantalla
- #define Borrar_Pantalla() Borrar_Pantallapca(0,' ',COLOR(TBLANCO,FNEGRO))
- #define Borrar_Pantallap(pag) Borrar_Pantallapca(pag,' ',COLOR(TBLANCO,FNEGRO))
- #define Borrar_Pantallac(car,ctexto,cfondo) Borrar_Pantallapca(0,car,COLOR(ctexto,cfondo))
- #define Borrar_Pantallapc(pag,car,ctexto,cfondo) Borrar_Pantallapca(pag,car,COLOR(ctexto,cfondo))
-
-
- // -------------------------------------------+
- // Declaración de variables de la librería. |
- // -------------------------------------------+
- extern BYTE CTexto,CFondo;
- extern BYTE CCursorx,CCursory;
-
-
- // ---------------------------------------------+
- // Prototipos de funciones de la librería |
- // ---------------------------------------------+
- void Gotoxy(unsigned char, unsigned char);
- void tipo_cursor(unsigned char );
- void Save_Screen (unsigned short );
- void Restore_Screen (unsigned short );
- void escribecppa(char ,WORD ,BYTE );
- void escribeppa(char *,WORD ,BYTE );
- void Borrar_Pantallapca(BYTE ,char ,BYTE );
- void Grabar_Pagina(BYTE, char *);
- void Cargar_Pagina(BYTE, char *);
- void Muestra_Pagina(unsigned short);
-
- #endif
-