First commit d
This commit is contained in:
commit
4cb68e1ee9
115
AGEND.IMG
Normal file
115
AGEND.IMG
Normal file
@ -0,0 +1,115 @@
|
||||
*********** Este codigo debe ser modificado para LEFT UP RIGHT DOWN
|
||||
|
||||
#1
|
||||
|
||||
1
|
||||
|
||||
|
||||
****************** HOJA 1¦ ****************
|
||||
& 40, 20, 315, 450, 7, 63, 56, 2, 2
|
||||
****************** ANILLAS ****************
|
||||
& 50, 300, 310, 80, 0, 56, 63, 1, 2
|
||||
& 90, 300, 310, 120, 0, 56, 63, 1, 2
|
||||
& 130, 300, 310, 160, 0, 56, 63, 1, 2
|
||||
& 170, 300, 310, 200, 0, 56, 63, 1, 2
|
||||
& 210, 300, 310, 240, 0, 56, 63, 1, 2
|
||||
& 250, 300, 310, 280, 0, 56, 63, 1, 2
|
||||
& 290, 300, 310, 320, 0, 56, 63, 1, 2
|
||||
& 330, 300, 310, 360, 0, 56, 63, 1, 2
|
||||
& 370, 300, 310, 400, 0, 56, 63, 1, 2
|
||||
& 410, 300, 310, 440, 0, 56, 63, 1, 2
|
||||
|
||||
****************** HOJA 2¦ ****************
|
||||
& 40, 325, 620, 450, 7, 63, 56, 2, 1
|
||||
****************** ANILLAS ****************
|
||||
& 50, 330, 340, 80, 0, 56, 63, 1, 1
|
||||
& 90, 330, 340, 120, 0, 56, 63, 1, 1
|
||||
& 130, 330, 340, 160, 0, 56, 63, 1, 1
|
||||
& 170, 330, 340, 200, 0, 56, 63, 1, 1
|
||||
& 210, 330, 340, 240, 0, 56, 63, 1, 1
|
||||
& 250, 330, 340, 280, 0, 56, 63, 1, 1
|
||||
& 290, 330, 340, 320, 0, 56, 63, 1, 1
|
||||
& 330, 330, 340, 360, 0, 56, 63, 1, 1
|
||||
& 370, 330, 340, 400, 0, 56, 63, 1, 1
|
||||
& 410, 330, 340, 440, 0, 56, 63, 1, 1
|
||||
|
||||
************ Union de anillas *************
|
||||
************ entre Hoja 1 y 2 *************
|
||||
|
||||
& 60, 305, 335, 70, 56, 7, 7, 0, 1
|
||||
& 100, 305, 335, 110, 56, 7, 7, 0, 1
|
||||
& 140, 305, 335, 150, 56, 7, 7, 0, 1
|
||||
& 180, 305, 335, 190, 56, 7, 7, 0, 1
|
||||
& 220, 305, 335, 230, 56, 7, 7, 0, 1
|
||||
& 260, 305, 335, 270, 56, 7, 7, 0, 1
|
||||
& 300, 305, 335, 310, 56, 7, 7, 0, 1
|
||||
& 340, 305, 335, 350, 56, 7, 7, 0, 1
|
||||
& 380, 305, 335, 390, 56, 7, 7, 0, 1
|
||||
& 420, 305, 335, 430, 56, 7, 7, 0, 1
|
||||
|
||||
|
||||
************ Recuadro de Nombre ************
|
||||
& 49, 395, 487, 65, 0, 63, 56, 0, 2
|
||||
& 67, 395, 487, 83, 0, 63, 56, 0, 2
|
||||
& 67, 488, 580, 83, 0, 63, 56, 0, 2
|
||||
************ Recuadro de Calle ************
|
||||
& 89, 395, 580, 105, 0, 63, 56, 0, 2
|
||||
************ Recuadro de N£mero ************
|
||||
& 107, 395, 415, 123, 0, 63, 56, 0, 2
|
||||
************ Recuadro de Piso ************
|
||||
& 107, 450, 470, 123, 0, 63, 56, 0, 2
|
||||
|
||||
*| 405, 107, 2, 4, 0, 0, Piso,
|
||||
|
||||
|
||||
|
||||
!1,6
|
||||
****************** Botones ****************
|
||||
****** ReP g *****
|
||||
$ 420, 25, 125, 445, 7, 56, 63, 2, 2, 00, 67
|
||||
****** AvP g *****
|
||||
$ 420, 515, 615, 445, 7, 56, 63, 2, 1, 00, 67
|
||||
|
||||
****** A¤adir ****
|
||||
$ 45, 585, 615, 105, 7, 56, 63, 1, 1, 00, 67
|
||||
****** Supr. ****
|
||||
$ 110, 585, 615, 180, 7, 56, 63, 1, 1, 00, 67
|
||||
****** Buscar ****
|
||||
$ 185, 585, 615, 245, 7, 56, 63, 1, 1, 00, 67
|
||||
****** Salir ****
|
||||
$ 250, 585, 615, 310, 7, 56, 63, 1, 1, 00, 67
|
||||
|
||||
|
||||
* & 40, 325, 620, 450, 7, 63, 56, 2, 1
|
||||
|
||||
11
|
||||
|
||||
| 30, 422, 2, 6, 0, 1, ReP g,
|
||||
| 520, 422, 2, 6, 0, 1, AvP g,
|
||||
|
||||
| 587, 50, 2, 5, 1, 1, A¤adir,
|
||||
| 598, 50, 2, 5, 1, 1, F9 ,
|
||||
|
||||
| 587, 115, 2, 5, 1, 1, Suprimir,
|
||||
| 598, 115, 2, 5, 1, 1, F10 ,
|
||||
|
||||
| 587, 190, 2, 5, 1, 1, Buscar,
|
||||
| 598, 190, 2, 5, 1, 1, F5 ,
|
||||
|
||||
| 587, 255, 2, 5, 1, 1, Salir,
|
||||
| 598, 255, 2, 5, 1, 1, F1 ,
|
||||
|
||||
|
||||
| 330, 50, 2, 4, 0, 0, Nombre,
|
||||
|
||||
| 330, 90, 2, 4, 0, 0, Calle,
|
||||
| 330, 107, 2, 4, 0, 0, n§,
|
||||
| 405, 107, 2, 4, 0, 0, Piso,
|
||||
|
||||
* | 397, 50, 2, 4, 0, 63, MMMMMMMMM-MMMMMMMMM-MMMMMMMMM-,
|
||||
|
||||
|
||||
|
||||
* x y fuente tama¤o orientacion color texto
|
||||
|
||||
|
111
AGENDA.IMG
Normal file
111
AGENDA.IMG
Normal file
@ -0,0 +1,111 @@
|
||||
** Codigo fuente para MAKE_BOTON
|
||||
|
||||
** Make BOTON es un programa realizado por Jos‚ David Guill‚n
|
||||
|
||||
#1
|
||||
!1,1
|
||||
$ 0, 0, 0, 0, 7, 63, 56, 2, 2, 000, 000
|
||||
|
||||
|
||||
1
|
||||
* Fondo Total
|
||||
& 0, 0, 639, 479, 7, 56, 63, 0, 2
|
||||
* Cuadro de titulo
|
||||
& 5, 5, 300, 25, 7, 63, 56, 0, 2
|
||||
| 5, 5, 2, 6, 0, 1, Registro General de Hermanos,
|
||||
* Linea de fondo para ayudas
|
||||
& 5, 455, 500, 475, 0, 63, 56, 0, 2
|
||||
& 505, 455, 635, 475, 63, 0, 56, 0, 2
|
||||
* Cuadro de vistazo rapido
|
||||
& 5, 310, 635, 325, 7, 56, 63, 1, 1
|
||||
| 10, 310, 2, 5, 0, 1, N§ Hno Nombre Apellidos Direccion Telefono,
|
||||
& 5, 325, 635, 450, 63, 56, 0, 1, 1
|
||||
|
||||
& 605, 5, 635, 25, 7, 63, 56, 0, 2
|
||||
| 609, 7, 2, 5, 0, 1, >,
|
||||
& 570, 5, 600, 25, 7, 63, 56, 0, 2
|
||||
| 574, 7, 2, 5, 0, 1, >>,
|
||||
& 535, 5, 565, 25, 7, 63, 56, 0, 2
|
||||
| 539, 7, 2, 5, 0, 1, <<,
|
||||
& 500, 5, 530, 25, 7, 63, 56, 0, 2
|
||||
| 504, 7, 2, 5, 0, 1, <,
|
||||
|
||||
& 500, 30, 565, 50, 7, 63, 56, 0, 2
|
||||
& 570, 30, 635, 50, 7, 63, 56, 0, 2
|
||||
| 572, 32, 2, 5, 0, 1, F2 Menu,
|
||||
|
||||
|
||||
|
||||
| 10, 55, 2, 5, 0, 1, N£mero de Hermano,
|
||||
& 150, 53, 300, 72, 63, 56, 0, 0, 2
|
||||
| 10, 80, 2, 5, 0, 1, Nombre,
|
||||
& 150, 78, 300, 97, 63, 56, 0, 0, 2
|
||||
| 10, 105, 2, 5, 0, 1, Primer Apellido,
|
||||
& 150, 103, 300, 122, 63, 56, 0, 0, 2
|
||||
| 320, 105, 2, 5, 0, 1, Segundo Apellido,
|
||||
& 480, 103, 630, 122, 63, 56, 0, 0, 2
|
||||
| 10, 130, 2, 5, 0, 1, Direcci¢n,
|
||||
& 150, 128, 390, 147, 63, 56, 0, 0, 2
|
||||
| 390, 130, 2, 5, 0, 1, N§,
|
||||
& 425, 128, 460, 147, 63, 56, 0, 0, 2
|
||||
| 460, 130, 2, 5, 0, 1, Piso,
|
||||
& 530, 128, 630, 147, 63, 56, 0, 0, 2
|
||||
|
||||
| 10, 155, 2, 5, 0, 1, C.P.,
|
||||
& 60, 153, 140, 172, 63, 56, 0, 0, 2
|
||||
| 150, 155, 2, 5, 0, 1, Poblaci¢n,
|
||||
& 230, 153, 390, 172, 63, 56, 0, 0, 2
|
||||
| 400, 155, 2, 5, 0, 1, Provincia,
|
||||
& 480, 153, 630, 172, 63, 56, 0, 0, 2
|
||||
|
||||
* Cuadro para enmarcar FN, Ant, R, UP, P
|
||||
& 10, 180, 300, 305, 7, 56, 63, 1, 1
|
||||
|
||||
| 10, 185, 2, 5, 0, 1, Fecha de Nacimiento,
|
||||
& 170, 183, 290, 202, 63, 56, 0, 0, 2
|
||||
| 10, 210, 2, 5, 0, 1, Antig<69>edad,
|
||||
& 170, 208, 290, 227, 63, 56, 0, 0, 2
|
||||
| 10, 235, 2, 5, 0, 1, Reserva,
|
||||
& 271, 233, 290, 252, 63, 56, 0, 0, 2
|
||||
| 10, 260, 2, 5, 0, 1, Ultima Posici¢n,
|
||||
& 150, 258, 290, 277, 63, 56, 0, 0, 2
|
||||
| 10, 285, 2, 5, 0, 1, Posici¢n,
|
||||
& 150, 283, 290, 302, 63, 56, 0, 0, 2
|
||||
|
||||
|
||||
| 400, 185, 2, 5, 0, 1, Tel‚fono 1,
|
||||
& 480, 183, 630, 202, 63, 56, 0, 0, 2
|
||||
| 400, 210, 2, 5, 0, 1, Tel‚fono 2,
|
||||
& 480, 208, 630, 227, 63, 56, 0, 0, 2
|
||||
|
||||
* Cuadro para englobar todo lo de abajo
|
||||
& 360, 230, 630, 305, 7, 56, 63, 1, 1
|
||||
|
||||
| 400, 230, 2, 5, 0, 1, ¨Acogido a cuota familiar?,
|
||||
& 380, 232, 390, 242, 63, 56, 0, 0, 2
|
||||
| 400, 241, 2, 5, 0, 1, ¨Recibe notificaciones?,
|
||||
& 380, 243, 390, 253, 63, 56, 0, 0, 2
|
||||
| 400, 252, 2, 5, 0, 1, ¨Tiene posibilidad de votar?,
|
||||
& 380, 254, 390, 264, 63, 56, 0, 0, 2
|
||||
| 400, 263, 2, 5, 0, 1, ¨Realiz¢ la est. de penitencia?,
|
||||
& 380, 265, 390, 275, 63, 56, 0, 0, 2
|
||||
| 400, 274, 2, 5, 0, 1, ¨Posee tunica de propiedad?,
|
||||
& 380, 276, 390, 286, 63, 56, 0, 0, 2
|
||||
| 400, 285, 2, 5, 0, 1, ¨ Cristo ? ¨ Virgen ?,
|
||||
& 380, 287, 390, 297, 63, 56, 0, 0, 2
|
||||
& 520, 287, 530, 297, 63, 56, 0, 0, 2
|
||||
|
||||
|
||||
*** CREACION DE UNA VENTANA
|
||||
*& 50, 50, 350, 200, 7, 63, 56, 0, 2
|
||||
*& 52, 52, 348, 75, 1, 56, 63, 0, 2
|
||||
|
||||
*& 51, 100, 101, 99, -1, 56, 63, 0, 2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
EGAVGA.BGI
Normal file
BIN
EGAVGA.BGI
Normal file
Binary file not shown.
103
HERM.IMG
Normal file
103
HERM.IMG
Normal file
@ -0,0 +1,103 @@
|
||||
** Codigo fuente para MAKE_BOTON
|
||||
|
||||
** Make BOTON es un programa realizado por Jos‚ David Guill‚n
|
||||
|
||||
#1
|
||||
!1,1
|
||||
$ 0, 0, 0, 0, 7, 63, 56, 2, 2, 000, 000
|
||||
|
||||
|
||||
1
|
||||
* Fondo Total
|
||||
& 0, 0, 639, 479, 7, 56, 63, 0, 2
|
||||
* Cuadro de titulo
|
||||
& 5, 5, 300, 25, 7, 63, 56, 0, 2
|
||||
| 5, 5, 2, 6, 0, 1, Registro General de Hermanos,
|
||||
* Linea de fondo para ayudas
|
||||
& 5, 455, 500, 475, 0, 63, 56, 0, 2
|
||||
& 505, 455, 635, 475, 63, 0, 56, 0, 2
|
||||
* Cuadro de vistazo rapido
|
||||
& 5, 310, 635, 325, 7, 56, 63, 1, 1
|
||||
| 10, 310, 2, 5, 0, 1, N§ Hno Nombre Apellidos Direccion Telefono,
|
||||
& 5, 325, 635, 450, 63, 56, 0, 1, 1
|
||||
|
||||
& 605, 5, 635, 25, 7, 63, 56, 0, 2
|
||||
| 609, 7, 2, 5, 0, 1, >,
|
||||
& 570, 5, 600, 25, 7, 63, 56, 0, 2
|
||||
| 574, 7, 2, 5, 0, 1, >>,
|
||||
& 535, 5, 565, 25, 7, 63, 56, 0, 2
|
||||
| 539, 7, 2, 5, 0, 1, <<,
|
||||
& 500, 5, 530, 25, 7, 63, 56, 0, 2
|
||||
| 504, 7, 2, 5, 0, 1, <,
|
||||
|
||||
& 500, 30, 565, 50, 7, 63, 56, 0, 2
|
||||
& 570, 30, 635, 50, 7, 63, 56, 0, 2
|
||||
| 572, 32, 2, 5, 0, 1, F2 Menu,
|
||||
|
||||
|
||||
|
||||
| 10, 55, 2, 5, 0, 1, N£mero de Hermano,
|
||||
& 150, 53, 300, 72, 63, 56, 0, 0, 2
|
||||
| 10, 80, 2, 5, 0, 1, Nombre,
|
||||
& 150, 78, 300, 97, 63, 56, 0, 0, 2
|
||||
| 10, 105, 2, 5, 0, 1, Primer Apellido,
|
||||
& 150, 103, 300, 122, 63, 56, 0, 0, 2
|
||||
| 320, 105, 2, 5, 0, 1, Segundo Apellido,
|
||||
& 480, 103, 630, 122, 63, 56, 0, 0, 2
|
||||
| 10, 130, 2, 5, 0, 1, Direcci¢n,
|
||||
& 150, 128, 390, 147, 63, 56, 0, 0, 2
|
||||
| 390, 130, 2, 5, 0, 1, N§,
|
||||
& 425, 128, 460, 147, 63, 56, 0, 0, 2
|
||||
| 460, 130, 2, 5, 0, 1, Piso,
|
||||
& 530, 128, 630, 147, 63, 56, 0, 0, 2
|
||||
|
||||
| 10, 155, 2, 5, 0, 1, C.P.,
|
||||
& 60, 153, 140, 172, 63, 56, 0, 0, 2
|
||||
| 150, 155, 2, 5, 0, 1, Poblaci¢n,
|
||||
& 230, 153, 390, 172, 63, 56, 0, 0, 2
|
||||
| 400, 155, 2, 5, 0, 1, Provincia,
|
||||
& 480, 153, 630, 172, 63, 56, 0, 0, 2
|
||||
|
||||
* Cuadro para enmarcar FN, Ant, R, UP, P
|
||||
& 10, 180, 300, 305, 7, 56, 63, 1, 1
|
||||
|
||||
| 10, 185, 2, 5, 0, 1, Fecha de Nacimiento,
|
||||
& 170, 183, 290, 202, 63, 56, 0, 0, 2
|
||||
| 10, 210, 2, 5, 0, 1, Antig<69>edad,
|
||||
& 170, 208, 290, 227, 63, 56, 0, 0, 2
|
||||
| 10, 235, 2, 5, 0, 1, Reserva,
|
||||
& 271, 233, 290, 252, 63, 56, 0, 0, 2
|
||||
| 10, 260, 2, 5, 0, 1, Ultima Posici¢n,
|
||||
& 150, 258, 290, 277, 63, 56, 0, 0, 2
|
||||
| 10, 285, 2, 5, 0, 1, Posici¢n,
|
||||
& 150, 283, 290, 302, 63, 56, 0, 0, 2
|
||||
|
||||
|
||||
| 400, 185, 2, 5, 0, 1, Tel‚fono 1,
|
||||
& 480, 183, 630, 202, 63, 56, 0, 0, 2
|
||||
| 400, 210, 2, 5, 0, 1, Tel‚fono 2,
|
||||
& 480, 208, 630, 227, 63, 56, 0, 0, 2
|
||||
|
||||
* Cuadro para englobar todo lo de abajo
|
||||
& 360, 230, 630, 305, 7, 56, 63, 1, 1
|
||||
|
||||
| 400, 230, 2, 5, 0, 1, ¨Acogido a cuota familiar?,
|
||||
& 380, 232, 390, 242, 63, 56, 0, 0, 2
|
||||
| 400, 241, 2, 5, 0, 1, ¨Recibe notificaciones?,
|
||||
& 380, 243, 390, 253, 63, 56, 0, 0, 2
|
||||
| 400, 252, 2, 5, 0, 1, ¨Tiene posibilidad de votar?,
|
||||
& 380, 254, 390, 264, 63, 56, 0, 0, 2
|
||||
| 400, 263, 2, 5, 0, 1, ¨Realiz¢ la est. de penitencia?,
|
||||
& 380, 265, 390, 275, 63, 56, 0, 0, 2
|
||||
| 400, 274, 2, 5, 0, 1, ¨Posee tunica de propiedad?,
|
||||
& 380, 276, 390, 286, 63, 56, 0, 0, 2
|
||||
| 400, 285, 2, 5, 0, 1, ¨ Cristo ? ¨ Virgen ?,
|
||||
& 380, 287, 390, 297, 63, 56, 0, 0, 2
|
||||
& 520, 287, 530, 297, 63, 56, 0, 0, 2
|
||||
|
||||
|
||||
*** CREACION DE UNA VENTANA
|
||||
*& 50, 50, 350, 200, 7, 63, 56, 0, 2
|
||||
*& 52, 52, 348, 75, 1, 56, 63, 0, 2
|
||||
|
||||
*& 51, 100, 101, 99, -1, 56, 63, 0, 2
|
BIN
MAKE_BOT.OBJ
Normal file
BIN
MAKE_BOT.OBJ
Normal file
Binary file not shown.
49
PRUEBA_B.CPP
Normal file
49
PRUEBA_B.CPP
Normal file
@ -0,0 +1,49 @@
|
||||
#include <conio.h> // Para getch();
|
||||
#include <graphics.h> // Para outtextxy(...); y cleardevice(...);
|
||||
|
||||
#include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON
|
||||
|
||||
|
||||
int main(void){
|
||||
|
||||
|
||||
Initialize( 9, 2 ); // Inicializa el Modo Gr fico
|
||||
carga_botones("Agenda.img"); // Carga botones del fichero "botones.p1"
|
||||
|
||||
|
||||
Imprime_Estaticos( 1, "Agenda.img"); // Imprime botones estaticos 'Seccion 1'
|
||||
|
||||
Imprime_Secuencia(1); // Imprime secuencia 1.
|
||||
|
||||
Imprime_Estaticos(11, "Agenda.img"); // Imprime Textos ( 1 ), secuencia 1
|
||||
/*
|
||||
while(1){ // Bucle infinito
|
||||
|
||||
switch( Comprueba_Secuencia( 1 ) ) { // Iniciamos comprobacion
|
||||
|
||||
case 0: // No se pulso ningun BOTON
|
||||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||||
break;
|
||||
case -1: // Hay una tecla especial en BUFFER
|
||||
getch(); // La eliminamos
|
||||
break;
|
||||
case 1:
|
||||
Ayuda();
|
||||
cleardevice();
|
||||
Imprime_Estaticos( 1, "botones.p1"); // Devolvemos el aspecto inicial
|
||||
Imprime_Secuencia(1);
|
||||
break;
|
||||
case 2:
|
||||
restorecrtmode();
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
getch();
|
||||
restorecrtmode();
|
||||
return 0;
|
||||
|
||||
}
|
BIN
PRUEBA_B.PRJ
Normal file
BIN
PRUEBA_B.PRJ
Normal file
Binary file not shown.
261
SM2.CPP
Normal file
261
SM2.CPP
Normal file
@ -0,0 +1,261 @@
|
||||
// Demostraci¢n del uso del RATON en SVGA
|
||||
// Jos‚ David Guill‚n
|
||||
//
|
||||
// ßßßßßßßßßßßßßßß
|
||||
// ßFuTuReßViSiOnß
|
||||
// ßßßßßßßßßßßßßßß
|
||||
// ßßÜÜÜÜÜßÜÜÜßßßß
|
||||
// ßß ÛßÛ ßÜßß
|
||||
// ßßÜ ÛßÛ Ûßß
|
||||
// ßßßÜÜÜßßÛÜÜß ßß
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#include <dos.h>
|
||||
#include <conio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graphics.h>
|
||||
|
||||
void InicializaSVGA(void);
|
||||
void PreparaCuadricula256col(void);
|
||||
extern int far _Cdecl Svga256_fdriver[];
|
||||
int huge DetectVGA256(){ return 2; }
|
||||
|
||||
#define T 255
|
||||
#define C1 31
|
||||
#define C2 4
|
||||
#define C3 12
|
||||
|
||||
|
||||
#define Ancho_Pantalla 640
|
||||
#define Largo_Pantalla 640
|
||||
|
||||
unsigned char Puntero [ /* 21 * 28 */ ] = {
|
||||
T, T, T, T, T, T, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, T, T, T, T, C1, C2, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, T, T, T, C1, C2, C2, C2, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, T, T, C1, C3, C2, C2, C2, C2, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, T, C1, C3, C3, C2, C2, C2, C2, C2, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, C1, C3, C3, C2, C2, C2, C2, C2, C2, C2, C1, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, C1, C1, C1, C1, C2, C2, C2, C1, C1, C1, C1, T, T, T, T, T, C1, C1, C1, C1, C1, C1, C1, C1, T, T, T
|
||||
, T, T, T, T, C1, C3, C2, C2, C1, T, T, T, T, T, T, T, C1, C2, C2, C2, C2, C2, C2, C2, C2, C1, T, T
|
||||
, T, T, T, T, C1, C3, C2, C2, C1, T, T, T, T, T, T, C1, C2, C2, C2, C1, C1, C1, C1, C2, C2, C2, C1, T
|
||||
, T, T, T, T, C1, C3, C2, C2, C1, T, T, T, T, T, C1, C2, C2, C2, C1, T, T, T, T, C1, C2, C2, C2, C1
|
||||
, T, T, T, T, C1, C3, C2, C2, C1, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T, T, C1, C2, C2, C1, T
|
||||
, T, T, T, C1, C3, C2, C2, C2, C2, C1, T, T, T, T, T, T, C1, C1, T, T, T, T, C1, C2, C2, C1, T, T
|
||||
, T, T, C1, C3, C2, C2, C1, C2, C2, C2, C1, T, T, T, T, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T
|
||||
, T, C1, C3, C2, C2, C1, T, C1, C2, C2, C2, C1, T, T, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T, T
|
||||
, C1, C3, C2, C2, C1, T, T, T, C1, C2, C2, C2, C1, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, C1, C1, T, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, C1, C1, T, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, C1, C2, C2, C1, T, T, T, T, T
|
||||
, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, C1, C1, T, T, T, T, T, T
|
||||
};
|
||||
|
||||
char raton = 0;
|
||||
unsigned char *Fondo_Raton;
|
||||
|
||||
int X_Mouse, Y_Mouse;
|
||||
|
||||
int Anclar_Raton(void);
|
||||
void Inicializa_Raton(int x1, int y1, int x2, int y2);
|
||||
unsigned char Pon_Pixel( unsigned long y, unsigned long x, unsigned char color );
|
||||
|
||||
void main( void )
|
||||
{
|
||||
char Resultado;
|
||||
|
||||
InicializaSVGA();
|
||||
|
||||
PreparaCuadricula256col();
|
||||
|
||||
Inicializa_Raton( 10, 10, 630, 470);
|
||||
|
||||
if ( !raton ) return;
|
||||
|
||||
Resultado = Anclar_Raton();
|
||||
|
||||
// Regresamos al modo texto
|
||||
restorecrtmode();
|
||||
|
||||
if ( Resultado )
|
||||
{
|
||||
if ( X_Mouse == Y_Mouse && Y_Mouse == -1 )
|
||||
cprintf( " Se pulso una tecla, 1§Scan Code: % 3d \n\r", getch() );
|
||||
else
|
||||
cprintf( " Se pulso un Boton en X: % 3d -- Y: % 3d \n\r", X_Mouse, Y_Mouse );
|
||||
}
|
||||
else
|
||||
cprintf( " Error Interno de asignacion de memoria \n\r" );
|
||||
|
||||
}
|
||||
|
||||
|
||||
// los par metros son las cotas para el raton
|
||||
void Inicializa_Raton(int x1, int y1, int x2, int y2)
|
||||
{
|
||||
|
||||
int px = 50, py = 50;
|
||||
|
||||
if ( Y_Mouse != -1 && X_Mouse != -1 )
|
||||
{
|
||||
px = X_Mouse; py = Y_Mouse;
|
||||
}
|
||||
|
||||
union REGS ent, sal;
|
||||
long dir;
|
||||
|
||||
ent.x.ax = 0;
|
||||
int86(0x33, &ent, &sal); /* averigua si hay rat¢n conectado */
|
||||
|
||||
raton = sal.x.ax; /* indica a la variable global el estado
|
||||
del raton */
|
||||
|
||||
if(raton!=0) {
|
||||
|
||||
ent.x.ax = 15;
|
||||
ent.x.cx = 5;
|
||||
ent.x.dx = 11;
|
||||
int86(0x33, &ent, &sal); /* fija la raz¢n mickey/pixel */
|
||||
|
||||
ent.x.ax = 7;
|
||||
ent.x.cx = x1;
|
||||
ent.x.dx = x2;
|
||||
int86(0x33, &ent, &sal); /* fija la posici¢n m x. y m¡n. horizontal */
|
||||
|
||||
ent.x.ax = 8;
|
||||
ent.x.cx = y1;
|
||||
ent.x.dx = y2;
|
||||
int86(0x33, &ent, &sal); /* fija la posici¢n m x. y m¡n. vertical */
|
||||
|
||||
ent.x.ax = 4;
|
||||
ent.x.cx = px;
|
||||
ent.x.dx = py;
|
||||
int86(0x33, &ent, &sal); /* fija la posici¢n del rat¢n */
|
||||
|
||||
ent.x.ax = 2;
|
||||
int86(0x33, &ent, &ent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// De esta funci¢n solo se regresa cuando se pulse una tecla o un Boton.
|
||||
// Devuelve 1 si todo va bien, o 0 si hay un error interno de gesti¢n.
|
||||
int Anclar_Raton(void)
|
||||
{
|
||||
char i,j;
|
||||
union REGS io;
|
||||
io.x.ax = 3;
|
||||
|
||||
static int Old_X_Mouse = X_Mouse, Old_Y_Mouse = Y_Mouse;
|
||||
char ok = 0, Draw = 1;
|
||||
|
||||
|
||||
if ( ( Fondo_Raton = (char *)malloc( 28*21 ) ) == NULL )
|
||||
return 0;
|
||||
|
||||
do{
|
||||
if( Draw )
|
||||
{
|
||||
|
||||
for( i = 0; i < 21; i++)
|
||||
for( j = 0; j < 28; j++ )
|
||||
{
|
||||
Fondo_Raton[ i*28 + j ] = getpixel( (j + X_Mouse), (i + Y_Mouse) );
|
||||
if( Puntero[ i*28 + j ] != 255 )
|
||||
putpixel( (j + X_Mouse), (i + Y_Mouse), Puntero[ i*28 + j ] );
|
||||
}
|
||||
|
||||
}
|
||||
Draw = 0;
|
||||
|
||||
// Esperamos a que se mueva el raton / pulse un boton o una tecla
|
||||
do{
|
||||
// Gestionamos las teclas
|
||||
if ( kbhit() )
|
||||
{
|
||||
X_Mouse = Y_Mouse = -1;
|
||||
ok = 1;
|
||||
break;
|
||||
// Si no hay teclas, los par metros del RATON habr n cambiado
|
||||
} else {
|
||||
int86(0x33, &io, &io); // lee posici¢n y estados del bot¢n
|
||||
X_Mouse = io.x.cx;
|
||||
Y_Mouse = io.x.dx;
|
||||
// ¨ Se Puls¢ Un BOTON ?
|
||||
// B.Izquierdo B. Derecho
|
||||
if ( (io.x.bx & 1) != 0 || ( (io.x.bx >> 1) & 1 ) != 0 )
|
||||
{
|
||||
ok = 1;
|
||||
break;
|
||||
} else
|
||||
/* ¨ Se movi¢ el Puntero ? */
|
||||
if ( X_Mouse != Old_X_Mouse || Y_Mouse != Old_Y_Mouse )
|
||||
{
|
||||
// Restauramos el contenido de la pantalla
|
||||
for( i = 0; i < 21; i++)
|
||||
for( j = 0; j < 28; j++ )
|
||||
putpixel( ( j + Old_X_Mouse), (i + Old_Y_Mouse), Fondo_Raton[ i*28 + j ] );
|
||||
|
||||
Old_X_Mouse = X_Mouse;
|
||||
Old_Y_Mouse = Y_Mouse;
|
||||
Draw = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}while( 1 );
|
||||
|
||||
}while(!ok);
|
||||
|
||||
// Restauramos el contenido de la pantalla
|
||||
for( i = 0; i < 21; i++)
|
||||
for( j = 0; j < 28; j++ )
|
||||
putpixel( ( j + Old_X_Mouse), (i + Old_Y_Mouse), Fondo_Raton[ i*28 + j ] );
|
||||
|
||||
free( Fondo_Raton );
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void InicializaSVGA(void) {
|
||||
|
||||
int Gd = DETECT, Gm;
|
||||
int Drv, errorcode;
|
||||
|
||||
installuserdriver("Svga256",DetectVGA256);
|
||||
|
||||
initgraph(&Gd,&Gm,"");
|
||||
|
||||
errorcode = graphresult();
|
||||
|
||||
if (errorcode != grOk)
|
||||
{
|
||||
cprintf("Graphics error: %s\n", grapherrormsg(errorcode));
|
||||
cprintf("Presione una tecla para finalizar:");
|
||||
getch();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PreparaCuadricula256col(void)
|
||||
{
|
||||
int x, y, color = 0;
|
||||
|
||||
for( y = 0; y < 16; y++ )
|
||||
for( x = 0; x < 16; x++ )
|
||||
{
|
||||
setcolor(color);
|
||||
setfillstyle( SOLID_FILL, color );
|
||||
bar( 40*x, 30*y, 40+40*x+40, 30+30*y);
|
||||
color++;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user