#include #include #include #include #include #include "c:\backup\fuentes\prn_cnt\prn_cnt.h" #define INICIO 40 #define AMPLIACION 1 // S T R U C T U R E S ////////////////////////////////////////////////////// typedef struct worm_typ { int y; // current y position of worm int color; // color of worm int speed; // speed of worm int counter; // counter } worm, *worm_ptr; worm worms[90]; // used to make the screen melt unsigned int far *clock = (unsigned int far *)0x0000046C; // pointer to internal // 18.2 clicks/sec ////////////////////////////////////////////////////////////////////////////// void Melt( void ); void InitScreen(void); void RemapLeds(void); void RemapInputs(void); void cInfoMundo(void); void main(void) { char buffer[4096]; char key2; int key = 0; gettext(1, 1, 80, 25, buffer); setcursortype(_NOCURSOR); Melt(); InitScreen(); Lpt_usado = 1; /* Decimos que estamos usando el LPT1 */ /* Hay un archivo de registros? SI: LO UTILIZA PARA SABER QUE SALIDAS ESTA ACTIVADAS NO: LAS RESETEA */ if ( Register( LEER, "demo.std" ) != ok ) Reset_all(); RemapLeds(); while( key != 27 ) { while( !kbhit() ) { RemapInputs(); cInfoMundo(); }; key = getch(); key = key - '0'; if ( key > 0 && key < 9 ) { /* LEE EL ESTADO DE LA SALIDA INDICADA POR EL USUARIO */ key2 = Lee_Salida( (unsigned char)(key-1) + INICIO ); /* ESCRIBE EL ESTADO CONTRARIO (leido antes) DE LA SALIDA INDICADA POR EL USUARIO, ANTES. */ Escribe_Salida( (unsigned char)(key-1+INICIO), (char)!key2 ); RemapLeds(); } else key = key + '0'; }; /* SI TODAS LAS SALIDAS ESTAN A CERO LAS RESETEA ( por simple formalidad ) DE LO CONTRARIO GUARDA EL ESTADO DE LOS REGISTROS EN "demo.std" */ if ( Lee_Salidas( AMPLIACION, NULL ) == 0 ) Reset_all(); else Register( ESCRIBIR, "demo.std" ); puttext(1, 1, 80, 25, buffer); } void cInfoMundo(void) { static char state, pulse = 0; gotoxy( 2, 12 ); textcolor( state % 16 ); cprintf("I"); textcolor( ++state % 16 ); cprintf("n"); textcolor( state % 16 ); cprintf("f"); textcolor( ++state % 16 ); cprintf("o"); textcolor( state % 16 ); cprintf("M"); textcolor( ++state % 16 ); cprintf("u"); textcolor( state % 16 ); cprintf("n"); textcolor( ++state % 16 ); cprintf("d"); textcolor( state % 16 ); cprintf("o"); } void RemapLeds(void) { gotoxy(22,9); unsigned char i; for( i=0; i<8; i++) { if ( Lee_Salida( i + INICIO ) ) textcolor( LIGHTGREEN ); else textcolor( LIGHTRED ); cprintf("м "); } } void RemapInputs(void) { int i; for( i=0; i<8; i++) { gotoxy((29+(i*2)),15-i); if ( Lee_Entrada( i + INICIO ) ) { textcolor( LIGHTGREEN ); cprintf("м"); } else { textcolor( LIGHTRED ); cprintf("м"); } } } ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //// ////////////////////////////////////////////////////////////////// //// //////////////////////////////////////////////////////////////////////// //// ////// // // // // // // // //// ///////// //// //// // // // // ////// // /// // // // // / //////// //// ////// // // // // ////// // /// // // // ///////// //////// //// ////// // // // // // // // // // ///////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //////// ///////////// //////////////// ////// // /////////// //////// ///////////// /// ////////////////// ////////// // /////////// //////// // ////// /// // // // // // // // /// //// // ////// //////// // // // ////// // // /////// /// //// // // ///////// /////// // // // // // // // /// //// // ////// /////// // // // // // // // /// ////////////////////////////////////////////////////////////////////////////// void InitScreen(void) { clrscr(); gotoxy(1,1); /* cprintf("Grafista:џџџџJDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ_____џџџџџџџџџџџџџџџџџ"); cprintf("\r\nProgramador:џJDџџџџџџџџџџџџџџџџџлл___________________/|||||/|_џџџџџџџџџџџџџџџ"); cprintf("\r\n џџџџџџџџџџJoshuaџџџџџџџџџџџ/џССџк===Пџџџџџџџџџџџџ|/#####|//џџџџџџџџџџџџџџџ"); cprintf("\r\nHardware:џџџџLopezџџџџџџџџџџ/џТТТТТТТџџџџџџџџџџџТТТТТТТџџџџ/џџџџџџџџџџџџџџџџџ"); cprintf("\r\n џџџџџџџџџџMillanџџџџџџџ/џ_______џџџџџџџџџџ_______џџџџџ/џџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nџџџ џџџџџџџ џ џџ /џ/_______/|џџџџџџџ/_______/|џџ/џџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nџџџџџџџџџ џ џ /џџ|Т_Т_Т_Т|/џџџџџџџ|Т_Т_Т_Т|/џ/џџџџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nBienbenidosџaџunaџџџ/џџ________________ џџмџџџџџџџџ/џџџџџџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nnuevaџera, /џџмџм мџм м мџм мџ /џмџСк===Пџ/џџPulsaџunџnЃmeroџdelџ(0-7)"); cprintf("\r\nџbienvenidosџaџџ/џџ/_С_С_С_С_С_С_С_С/џмџСк===Пџ/џџparaџactivar/desactivarџlaџ"); cprintf("\r\n џџџџџџџ/џџ____џџџџџ џџџџмџСк===Пџ/џџsalidaџcorrespondiente.џџџџџџ"); cprintf("\r\nџInfoMundoџџ/џџ/џJDџ/|џџџ џџџмџСк===Пџ/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\n /џџ/___џ/џ!џџ џџџмџСк===Пџ/џџџLasџledџindicanџelџestadoџџџџџџџ"); cprintf("\r\n џџ/џџџ|____|!џџџ џмџСк===Пџ/џџџdeџlasџentradas.џџџџџџџџџџџџџџџџџџ"); cprintf("\r\n /џџџ________________џџмџСк===Пџ/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nџџџџ/џџџ/________________/|џСк===Пџ/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); cprintf("\r\nџџ/џџџџ|џ.џ.џ.џ.џ.џ.џ.џ.џ|/ /џџџџProgramaџejemploџenџmodoџTEXTO.џverџ1.1"); cprintf("\r\n/______џ\\џ.џ.џ.џ.џ.џ.џ.џ/______/џџџџџџInfoMundoџ1996џ(c).џ_-љFuTuReџViSiOnљ-_"); cprintf("\r\n ------------- џџџџ"); */ textcolor(WHITE);cprintf("Grafista:џџџџJDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ");textcolor(BLUE); cprintf("_____џџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nProgramador:џJDџџџџџџџџџџџџџџџџџ");textcolor(YELLOW+BLINK); cprintf("лл");textcolor(GREEN); cprintf("___________________");textcolor(BLUE); cprintf("/|||||/|");textcolor(GREEN); cprintf("_џџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\n џџџџџџџџџџJoshuaџџџџџџџџџџџ");textcolor(GREEN); cprintf("/");textcolor(LIGHTGRAY); cprintf("џССџк");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("Пџџџџџџџџџџџџ");textcolor(BLUE); cprintf("|/#####|/");textcolor(GREEN); cprintf("/џџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nHardware:џџџџLopezџџџџџџџџџџ");textcolor(GREEN); cprintf("/");textcolor(MAGENTA); cprintf("џТТТТТТТџџџџџџџџџџџТТТТТТТџ");textcolor(GREEN); cprintf("џџџ/џџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\n џџџџџџџџџџMillanџџџџџџџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џ_______џџџџџџџџџџ_______џџџ");textcolor(GREEN); cprintf("џџ/џџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nџџџ џџџџџџџ џ џџ ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џ/_______/|џџџџџџџ/_______/|џ");textcolor(GREEN); cprintf("џ/џџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nџџџџџџџџџ џ џ ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ|");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("|/џџџџџџџ|");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("Т");textcolor(DARKGRAY); cprintf("|/");textcolor(GREEN); cprintf("џ/џџџџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nBienbenidosџaџunaџџџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ________________ џџмџџџџџџџ");textcolor(GREEN); cprintf("џ/џџџџџџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nnuevaџera, ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџмџм мџм м мџм мџ /џмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџ");textcolor(WHITE); cprintf("PulsaџunџnЃmeroџdelџ(0-7)"); textcolor(WHITE);cprintf("\r\nџbienvenidosџaџџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ/_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("С"); textcolor(DARKGRAY); cprintf("/џмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџ");textcolor(WHITE); cprintf("paraџactivar/desactivarџlaџ"); textcolor(WHITE);cprintf("\r\n џџџџџџџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ____џџџџџ џџџџмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџ");textcolor(WHITE); cprintf("salidaџcorrespondiente.џџџџџџ"); textcolor(WHITE);cprintf("\r\nџInfoMundoџџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ/џJDџ/|џџџ џџџмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\n ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџ/___џ/џ");textcolor(LIGHTGRAY); cprintf("!");textcolor(DARKGRAY); cprintf("џџ џџџмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџџ");textcolor(WHITE); cprintf("Lasџledџindicanџelџestadoџџџџџџџ"); textcolor(WHITE);cprintf("\r\n џџ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("џџџ|____|");textcolor(LIGHTGRAY); cprintf("!");textcolor(DARKGRAY); cprintf("џџџ џмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџџ");textcolor(WHITE); cprintf("deџlasџentradas.џџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\n ");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("џџџ________________џ");textcolor(DARKGRAY); cprintf("џмџ");textcolor(LIGHTGRAY); cprintf("Ск");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("П");textcolor(GREEN); cprintf("џ/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nџџџџ");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("џџџ/________________/|");textcolor(LIGHTGRAY); cprintf("џСк");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("Пџ");textcolor(GREEN); cprintf("/џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"); textcolor(WHITE);cprintf("\r\nџџ");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("џџџ|џ.џ.џ.џ.џ.џ.џ.џ.џ|/ ");textcolor(GREEN); cprintf("/");textcolor(WHITE); cprintf("џџџџProgramaџejemploџenџmodoџTEXTO.џverџ1.1"); textcolor(WHITE);cprintf("\r\n");textcolor(GREEN); cprintf("/_____џ");textcolor(BLUE); cprintf("\\џ.џ.џ.џ.џ.џ.џ.џ/");textcolor(GREEN); cprintf("______/");textcolor(WHITE); cprintf("џџџџџџInfoMundoџ1996џ(c).џ_-љFuTuReџViSiOnљ-_"); textcolor(BLUE); cprintf("\r\n ------------- џџџџ"); } ////////////////////////////////////////////////////////////////////////////// void Melt( void ) { int index,ticks=0; for (index=1; index< 81; index++) { worms[index].speed = 3 + rand()%9; worms[index].y = 0; worms[index].counter = 0; gotoxy( index, 1 ); cprintf(" "); } while(++ticks<290) { delay(10); for (index=1; index<81; index++) { if (++worms[index].counter == worms[index].speed) { worms[index].counter = 0; if (worms[index].y < 25) { gotoxy( index, worms[index].y ); cprintf("ў"); gotoxy( index, worms[index].y-1 ); cprintf(" "); worms[index].y++; } else { gotoxy( index, 24 ); cprintf(" "); } } } if (!(ticks % 500)) { for (index=1; index<81; index++) worms[index].speed--; } } }