home *** CD-ROM | disk | FTP | other *** search
/ PC Media 23 / PC MEDIA CD23.iso / share / prog / anubis / textmode.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-19  |  4.2 KB  |  94 lines

  1. // ====================================================================
  2. // TEXTMODE.H
  3. // (C) Anubis Software
  4. // Escrito el 14 de Septiembre 1995
  5. // Librería para el tratamiento de la pantalla en los modos de texto.
  6. // Esta funcion funciona a bajo nivel, directamente sobre la memoria
  7. // de video en el modo texto.
  8. // ====================================================================
  9.  
  10. #ifndef TEXTMODE.H
  11. #define TEXTMODE.H
  12.  
  13. // -------------------------------------+
  14. // Librerias standares del Borland C++  |
  15. // -------------------------------------+
  16. #include <dos.h>
  17. #include <mem.h>
  18.  
  19.  
  20. // -----------------------------+
  21. // Librerías de Anubis Software |
  22. // -----------------------------+
  23. #include "mdefs.h"
  24. #include "colores.h"
  25. #include "mouse.h"
  26.  
  27.  
  28. // -----------------------------------------+
  29. // Definición de constantes de la librería  |
  30. // -----------------------------------------+
  31. #define PANTALLA     0xB800
  32. #define LONG_PAGINA  0x1000
  33.  
  34. // Definición de tipos del cursor para la funcion tipo_cursor.
  35. #define CURSOR_INVISIBLE   0
  36. #define CURSOR_NORMAL      1
  37. #define CURSOR_BLOQUE      2
  38. #define OLD_CURSOR         3
  39.  
  40. // ------------------------------------+
  41. // Definición de macros de la librería |
  42. // ------------------------------------+          
  43. #define CARACTER(x,y)    ( (WORD) ( ((y)*160) +((x)<<1) ) )
  44. #define ATRIBUTO(x,y)    ( (WORD) (CARACTER(x,y)+1) )
  45. #define CARACTERP(n,x,y) ( (WORD) ((n)*LONG_PAGINA+CARACTER(x,y)) )
  46. #define ATRIBUTOP(n,x,y) ( (WORD) ((n)*LONG_PAGINA+ATRIBUTO(x,y)) )
  47. #define COLOR(x,y)       ( (BYTE) (x+(y<<4)) )
  48.  
  49. // Definición de las macros para escribir una cadena de carácteres
  50. #define escribe(cadena,posx,posy,ctexto,cfondo)      escribeppa(cadena,CARACTER(posx,posy),COLOR(ctexto,cfondo))
  51. #define escribep(pag,cadena,posx,posy,ctexto,cfondo) escribeppa(cadena,CARACTERP(pag,posx,posy),COLOR(ctexto,cfondo))
  52. #define escribea(cadena,posx,posy,atrib)             escribeppa(cadena,CARACTER(posx,posy),atrib)
  53. #define escribepa(pag,cadena,posx,posy,atrib)        escribeppa(cadena,CARACTERP(pag,posx,posy),atrib)
  54. #define escribes(cadena)                             escribeppa(cadena,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
  55. #define escribesp(pag,cadena)                        escribeppa(cadena,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
  56.  
  57. // Definición de las macros para escribir un caracter.
  58. #define escribec(car,posx,posy,ctexto,cfondo)        escribecppa(car,CARACTER(posx,posy),COLOR(ctexto,cfondo))
  59. #define escribecp(pag,car,posx,posy,ctexto,cfondo)   escribecppa(car,CARACTERP(posx,posy),COLOR(ctexto,cfondo))
  60. #define escribeca(car,posx,posy,atrib)               escribecppa(car,CARACTER(posx,posy),atrib)
  61. #define escribecpa(pag,car,posx,posy,atrib)          escribecppa(car,CARACTERP(pag,posx,posy),atrib)
  62. #define escribecs(car)                               escribecppa(car,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
  63. #define escribecsp(pag,car)                          escribecppa(car,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
  64.  
  65. //Definicion de las macros para Borrar_Pantalla
  66. #define Borrar_Pantalla()                            Borrar_Pantallapca(0,' ',COLOR(TBLANCO,FNEGRO))
  67. #define Borrar_Pantallap(pag)                        Borrar_Pantallapca(pag,' ',COLOR(TBLANCO,FNEGRO))
  68. #define Borrar_Pantallac(car,ctexto,cfondo)          Borrar_Pantallapca(0,car,COLOR(ctexto,cfondo))
  69. #define Borrar_Pantallapc(pag,car,ctexto,cfondo)     Borrar_Pantallapca(pag,car,COLOR(ctexto,cfondo))
  70.  
  71.  
  72. // -------------------------------------------+
  73. // Declaración de variables de la librería.   |
  74. // -------------------------------------------+
  75. extern BYTE CTexto,CFondo;
  76. extern BYTE CCursorx,CCursory;
  77.  
  78.  
  79. // ---------------------------------------------+
  80. // Prototipos de funciones de la librería       |
  81. // ---------------------------------------------+
  82. void Gotoxy(unsigned char, unsigned char);
  83. void tipo_cursor(unsigned char );
  84. void Save_Screen (unsigned short );
  85. void Restore_Screen (unsigned short );
  86. void escribecppa(char ,WORD ,BYTE );
  87. void escribeppa(char *,WORD ,BYTE );
  88. void Borrar_Pantallapca(BYTE ,char ,BYTE );
  89. void Grabar_Pagina(BYTE, char *);
  90. void Cargar_Pagina(BYTE, char *);
  91. void Muestra_Pagina(unsigned short);
  92.  
  93. #endif
  94.