First commit 20/04/1996
This commit is contained in:
		
							
								
								
									
										254
									
								
								DEMO.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								DEMO.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,254 @@
 | 
				
			|||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#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("<EFBFBD> ");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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("<EFBFBD>");
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					   textcolor( LIGHTRED );
 | 
				
			||||||
 | 
					   cprintf("<EFBFBD>");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					////        //////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					////  ////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					////  //////  //  //      //      //  //       //      //      ////  /////////
 | 
				
			||||||
 | 
					////    ////  //  //  //  //  //////  //  ///  //  //  //      //  /  ////////
 | 
				
			||||||
 | 
					////  //////  //  //  //  //  //////  //  ///  //  //  //  /////////  ////////
 | 
				
			||||||
 | 
					////  //////      //  //  //      //  //       //  //  //      //    /////////
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					////////  /////////////       ////////////////         //////  //  ///////////
 | 
				
			||||||
 | 
					////////  /////////////   ///  //////////////////  //////////  //  ///////////
 | 
				
			||||||
 | 
					////////  //     //////   ///  //      //      //  //      //  //  //      ///
 | 
				
			||||||
 | 
					////      //     //////      ////////  //  //  //  //////  //  //  /////// ///
 | 
				
			||||||
 | 
					////  //  //  /////////   ///////      //  //  //  //      //  //  //      ///
 | 
				
			||||||
 | 
					////      //     //////   ///////      //  //  //  //      //  //  //      ///
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					void InitScreen(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					clrscr();
 | 
				
			||||||
 | 
					gotoxy(1,1);
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					cprintf("Grafista:<3A><><EFBFBD><EFBFBD>JD<4A><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_____<5F><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\nProgramador:<3A>JD<4A><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>___________________/|||||/|_<><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n   <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Joshua<75><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>===<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|/#####|//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\nHardware:<3A><><EFBFBD><EFBFBD>Lopez<65><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n   <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Millan<61><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>_______<5F><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_______<5F><5F><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n<><6E><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>   /<2F>/_______/|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/_______/|<7C><>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>       <20> <20>   /<2F><>|<7C>_<EFBFBD>_<EFBFBD>_<EFBFBD>|/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C>_<EFBFBD>_<EFBFBD>_<EFBFBD>|/<2F>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\nBienbenidos<6F>a<EFBFBD>una<6E><61><EFBFBD>/<2F><>________________ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\nnueva<76>era,        /<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD> <20><> /<2F><><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><>Pulsa<73>un<75>n<EFBFBD>mero<72>del<65>(0-7)");
 | 
				
			||||||
 | 
					cprintf("\r\n<>bienvenidos<6F>a<EFBFBD><61>/<2F><>/_<>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><>para<72>activar/desactivar<61>la<6C>");
 | 
				
			||||||
 | 
					cprintf("\r\n       <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>____<5F><5F><EFBFBD><EFBFBD><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><>salida<64>correspondiente.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n<>InfoMundo<64><6F>/<2F><>/<2F>JD<4A>/|<7C><><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n          /<2F><>/___<5F>/<2F>!<21><>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><><EFBFBD>Las<61>led<65>indican<61>el<65>estado<64><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n      <20><>/<2F><><EFBFBD>|____|!<21><><EFBFBD>       <20><><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><><EFBFBD>de<64>las<61>entradas.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n      /<2F><><EFBFBD>________________<5F><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===<3D><>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n<><6E><EFBFBD><EFBFBD>/<2F><><EFBFBD>/________________/|<7C><><EFBFBD>===<3D><>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					cprintf("\r\n<><6E>/<2F><><EFBFBD><EFBFBD>|<7C>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>|/      /<2F><><EFBFBD><EFBFBD>Programa<6D>ejemplo<6C>en<65>modo<64>TEXTO.<2E>ver<65>1.1");
 | 
				
			||||||
 | 
					cprintf("\r\n/______<5F>\\<5C>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>/______/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>InfoMundo<64>1996<39>(c).<2E>_-<2D>FuTuRe<52>ViSiOn<4F>-_");
 | 
				
			||||||
 | 
					cprintf("\r\n         -------------                                                   <20><><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("Grafista:<3A><><EFBFBD><EFBFBD>JD<4A><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(BLUE); cprintf("_____<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\nProgramador:<3A>JD<4A><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(YELLOW+BLINK); cprintf("<EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("___________________");textcolor(BLUE); cprintf("/|||||/|");textcolor(GREEN); cprintf("_<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n   <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Joshua<75><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(BLUE); cprintf("|/#####|/");textcolor(GREEN); cprintf("/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\nHardware:<3A><><EFBFBD><EFBFBD>Lopez<65><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(MAGENTA); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n   <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Millan<61><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD>_______<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_______<EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD><EFBFBD><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>   ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD>/_______/|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/_______/|<7C>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>       <20> <20>   ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>|");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("|/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("|/");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\nBienbenidos<EFBFBD>a<EFBFBD>una<EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>________________ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\nnueva<EFBFBD>era,        ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD> <20><> /<2F><><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><>");textcolor(WHITE); cprintf("Pulsa<EFBFBD>un<EFBFBD>n<EFBFBD>mero<EFBFBD>del<EFBFBD>(0-7)");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD>bienvenidos<EFBFBD>a<EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>/_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(DARKGRAY); cprintf("_");textcolor(LIGHTGRAY); cprintf("<EFBFBD>"); textcolor(DARKGRAY); cprintf("/<2F><><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><>");textcolor(WHITE); cprintf("para<EFBFBD>activar/desactivar<61>la<6C>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n       <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>____<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><>");textcolor(WHITE); cprintf("salida<EFBFBD>correspondiente.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD>InfoMundo<EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>/<2F>JD<4A>/|<7C><><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n          ");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>/___<5F>/<2F>");textcolor(LIGHTGRAY); cprintf("!");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD>      <20><><EFBFBD><EFBFBD><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD>");textcolor(WHITE); cprintf("Las<EFBFBD>led<EFBFBD>indican<EFBFBD>el<EFBFBD>estado<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n      <20><>");textcolor(GREEN); cprintf("/");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD>|____|");textcolor(LIGHTGRAY); cprintf("!");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD>       <20><><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD>");textcolor(WHITE); cprintf("de<EFBFBD>las<EFBFBD>entradas.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n      ");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("<EFBFBD><EFBFBD><EFBFBD>________________<EFBFBD>");textcolor(DARKGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD>");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD>");textcolor(GREEN); cprintf("<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("<EFBFBD><EFBFBD><EFBFBD>/________________/|");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD><EFBFBD>");textcolor(CYAN); cprintf("===");textcolor(LIGHTGRAY); cprintf("<EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n<EFBFBD><EFBFBD>");textcolor(GREEN); cprintf("/");textcolor(BLUE); cprintf("<EFBFBD><EFBFBD><EFBFBD>|<7C>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>|/      ");textcolor(GREEN); cprintf("/");textcolor(WHITE); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Programa<EFBFBD>ejemplo<EFBFBD>en<EFBFBD>modo<EFBFBD>TEXTO.<2E>ver<65>1.1");
 | 
				
			||||||
 | 
					textcolor(WHITE);cprintf("\r\n");textcolor(GREEN); cprintf("/_____<5F>");textcolor(BLUE); cprintf("\\<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>/");textcolor(GREEN); cprintf("______/");textcolor(WHITE); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>InfoMundo<EFBFBD>1996<EFBFBD>(c).<2E>_-<2D>FuTuRe<52>ViSiOn<4F>-_");
 | 
				
			||||||
 | 
					textcolor(BLUE); cprintf("\r\n         -------------                                                   <20><><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					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("<EFBFBD>");
 | 
				
			||||||
 | 
					                           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--;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								FONDO.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								FONDO.TXT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Grafista:    JD					       _____
 | 
				
			||||||
 | 
					Programador: JD			<09><>___________________/|||||/|_
 | 
				
			||||||
 | 
						     Joshua	      / <20><> <20>===<3D>            |/%%%%%|//
 | 
				
			||||||
 | 
					Hardware:    Lopez	    / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>	        <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>	   /
 | 
				
			||||||
 | 
						     Millan	  / _______          _______     /
 | 
				
			||||||
 | 
								/ /_______/|       /_______/|  /
 | 
				
			||||||
 | 
							      /  |<7C>_<EFBFBD>_<EFBFBD>_<EFBFBD>|/       |<7C>_<EFBFBD>_<EFBFBD>_<EFBFBD>|/ /
 | 
				
			||||||
 | 
					Bienbenidos a una   /  ________________   <20>        /
 | 
				
			||||||
 | 
					nueva era,	  /  <20> <20> <20> <20> <20> <20> <20> <20>  / <20> <20><>===<3D> /  Pulsa un n<>mero del ( 0-7 )
 | 
				
			||||||
 | 
					 bienvenidos a	/  /_<>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>_<EFBFBD>/ <20> <20><>===<3D> /  para activar/desactivar la
 | 
				
			||||||
 | 
						      /  ____       /| /|   <20> <20><>===<3D> /  salida correspondiente.
 | 
				
			||||||
 | 
					 InfoMundo  /  / JD /|    /| /|   <20> <20><>===<3D> /
 | 
				
			||||||
 | 
						  /  /___ / !   /| /|   <20> <20><>===<3D> /   Las led indican el estado
 | 
				
			||||||
 | 
						/   |____|!    |  |   <20> <20><>===<3D> /   de las entradas.
 | 
				
			||||||
 | 
					      /   ________________  <20> <20><>===<3D> /
 | 
				
			||||||
 | 
					    /   /________________/| <20><>===<3D> /
 | 
				
			||||||
 | 
					  /    | . . . . . . . . |/      /    Programa ejemplo en modo TEXTO. ver 1.1
 | 
				
			||||||
 | 
					/______ \ . . . . . . . /______/      InfoMundo 1996 (c). _-<2D>FuTuRe ViSiOn<4F>-_
 | 
				
			||||||
 | 
						 -------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#PRN_DEMO 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					*20/04/1996* 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					ToDo: wwtcf? 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										384
									
								
								SOFT_DOC.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										384
									
								
								SOFT_DOC.TXT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,384 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                             8i8o Documentaci<63>n
 | 
				
			||||||
 | 
					                                 del Software
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                   Indice
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  1    <20> Que software incluye el kit ?
 | 
				
			||||||
 | 
					  2    Descripci<63>n de comandos.
 | 
				
			||||||
 | 
					  3    Primeros pasos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  4    Creaci<63>n de un programa ejemplo DEMO.C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  5    Preguntas y Respuestas.
 | 
				
			||||||
 | 
					  6    Puntos de consulta directa.
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      NOTA:
 | 
				
			||||||
 | 
					                Todas las referencias que se hagan aqui a la programaci<63>n
 | 
				
			||||||
 | 
					                seran basadas en el lenguaje C, ya que para otros lenguajes
 | 
				
			||||||
 | 
					                las librerias a utilizar seran las mismas, asi como los
 | 
				
			||||||
 | 
					                nombre y operaciones internas de las funciones.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                      <20> Que software incluye el kit ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Disco 1: [CONTENIDO]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                soft_doc.txt      Documentaci<63>n del software ( texto MS-DOS ).
 | 
				
			||||||
 | 
					                hard_doc.txt      Documentaci<63>n del hardware ( texto MS-DOS ).
 | 
				
			||||||
 | 
					                softhard.hlp      D. Software y Hardware  ( Formato WinHELP ).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                InfoMund.gif      Imagen del logotipo de InfoMundo
 | 
				
			||||||
 | 
					                8i8o_pb .gif      Imagen del circuito prototipo 8i8o_pb
 | 
				
			||||||
 | 
					                conexion.txt      Ideas de conexiones frecuentes.
 | 
				
			||||||
 | 
					                catalogo.txt      Lista de productos ofrecidos por InfoMundo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         lib_tc\prn_cnt?.lib      Librerias en C, para Tiny, Medium, Compact, Large y Huge   .
 | 
				
			||||||
 | 
					                prn_cnt .h        Cabeceras para las librerias.
 | 
				
			||||||
 | 
					                demo    .c        Demo completo de una utilizaci<63>n global.
 | 
				
			||||||
 | 
					                demo    .exe      Programa demo.c compilado
 | 
				
			||||||
 | 
					                kit     .c        Programa ejemplo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         lib_cp\prn_cnt .lib      Librerias para Clipper.
 | 
				
			||||||
 | 
					                prn_cnt .h        Cabeceras de las librerias.
 | 
				
			||||||
 | 
					                io      .prj      Fuente en clipper ( para escribir y leer ).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         lib_vb\prn_cnt .vbx      Librerias en Visual Basic ( ver 3.0 >> ).
 | 
				
			||||||
 | 
					                puertos .dll      .DLL para el control de los puertos en VB.
 | 
				
			||||||
 | 
					                control .bas      Demostraci<63>n de las librerias para VB.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       infomund\infomund.hlp      Archivo en formato winHELP, que habla de IM
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                            Descripci<63>n de comandos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> Init_all                     <20>> Register       
 | 
				
			||||||
 | 
					<EFBFBD>> Reset_all      
 | 
				
			||||||
 | 
					<EFBFBD>> Lee_Salidas                  <20>> Lee_Salida     
 | 
				
			||||||
 | 
					<EFBFBD>> Escribe_Salidas              <20>> Escribe_Salida 
 | 
				
			||||||
 | 
					<EFBFBD>> Lee_Entradas                 <20>> Lee_Entrada    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Esta rutina debe ser llamada al iniciar el programa que use las librerias. |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Es la encargada de poner a cero todas la salidas, al principio y al salir. |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:   ( ninguno )                                       |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                          OK                     Todo ha ido bien.          |
 | 
				
			||||||
 | 
					|                          ERROR_EN_ATEXIT        Error registrando funci<63>n  |
 | 
				
			||||||
 | 
					|                          FUNCION_YA_REGISTRADA  No es la 1<> vez            |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> int Init_all(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| WARNING:                                                                   |
 | 
				
			||||||
 | 
					|          El uso de la siguiente funci<63>n esta indicada solo para usuarios   |
 | 
				
			||||||
 | 
					|          experimentados, se debe usar en lugar de la funci<63>n anterior.     |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        ( LEER/ESCRIBIR )      // L/E los registros del fich|
 | 
				
			||||||
 | 
					|                        ( %s )                 // _ero %s                   |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        1    Ok!                         OK                 |
 | 
				
			||||||
 | 
					|                       -1    Fallo desconocido           FALLO_DESCONOCIDO  |
 | 
				
			||||||
 | 
					|                       -2    Archivo no existe           NO_ARCHIVO         |
 | 
				
			||||||
 | 
					|                       -3    Error archivo no valido     ARCHIVO_INCORRECTO |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					                       
 | 
				
			||||||
 | 
					<EFBFBD>> int Register( char leer_escribir, char *file );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Resetea todas las salidas y las pone a cero.                              |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> void Reset_all(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Obtiene el estado de las salidas ( On/Off ), de la ampliacion AMPL.       |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        ampl       Ampliaci<63>n donde debemos mirar           |
 | 
				
			||||||
 | 
					|                        estados    Puntero a estructura con los estados     |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con los estados                    |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| NOTA: si &estados es NULL, solo se devolvera el char de salida.            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Lee_Salidas( char ampl, ESTADOS *estados );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Obtiene el estado de una salida  ( On/Off ), cualquiera.                  |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        salida     ( Si  1 ampl.  0 a  7 )                  |
 | 
				
			||||||
 | 
					|                                   ( Si 10 ampl.  0 a 80 )                  |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con el estado                      |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Lee_Salida( char salida );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Escribe la variable 'estados' ( On/Off ), en la ampliacion AMPL.          |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        ampl       Ampliaci<63>n donde debemos mirar           |
 | 
				
			||||||
 | 
					|                        estados    Puntero a estructura con los estados     |
 | 
				
			||||||
 | 
					|                        estadosb   Byte con los estados                     |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con los estados                    |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| NOTA: si &estados es NULL, se utilizar<61> el char con los estados.           |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Escribe_Salidas( char ampl, ESTADOS *estados, char estadosb );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        salida     ( Si  1 ampl.  0 a  3 )                  |
 | 
				
			||||||
 | 
					|                                   ( Si 10 ampl.  0 a 80 )                  |
 | 
				
			||||||
 | 
					|                        estado     ( ON / OFF )                             |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con el estado                      |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Escribe_Salida( char salida, char estado );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Lee las entradas y la almacena en la variable estados.                    |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        ampl       Ampliaci<63>n donde debemos mirar           |
 | 
				
			||||||
 | 
					|                        estados    Puntero a estructura con los estados     |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con los estados                    |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| NOTA: si &estados es NULL, solo se devolvera el char de salida.            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Lee_Entradas( char ampl, ESTADOS *estados );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					|  Lee una entrada cualquiera.                                               |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Entrada:                                                     |
 | 
				
			||||||
 | 
					|                        entrada    ( Si  1 ampl.  0 a  7 )                  |
 | 
				
			||||||
 | 
					|                                   ( Si 10 ampl.  0 a 80 )                  |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					| Parametros de Salida:                                                      |
 | 
				
			||||||
 | 
					|                        char       1Byte con el estado                      |
 | 
				
			||||||
 | 
					|                                                                            |
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>> unsigned char Lee_Entrada( char entrada );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                                Primeros pasos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        En esta secci<63>n describiremos los principios b<>sicos para utilizar
 | 
				
			||||||
 | 
					        nuestro Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Junto con el programa tenemos que crear un proyecto en el que se
 | 
				
			||||||
 | 
					        incluyan nuestro programa y la libreria correspondiente al modelo
 | 
				
			||||||
 | 
					        de memoria que estemos utilizando.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        En primer lugar antes de empezar a realizar operaciones con el 8i8o
 | 
				
			||||||
 | 
					        deberemos indicar en que puerto se encuentra, cargando la variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  Lpt_usado = [1:Ltp1, 2:Lpt2, 3:Lpt3]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        acto seguido debemos resetear todas las salidas:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  #include "prn_cnt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  void main( void )
 | 
				
			||||||
 | 
					         <20>>  {
 | 
				
			||||||
 | 
					         <20>>       Lpt_usado = 1;
 | 
				
			||||||
 | 
					         <20>>       reset_all();
 | 
				
			||||||
 | 
					         <20>>  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        la funcion reset_all, puede ser sustituida por 'Register', esta
 | 
				
			||||||
 | 
					        ultima esta indicada cuando se ha salido voluntariamente de su
 | 
				
			||||||
 | 
					        programa y quiere guardar en un archivo el estado de las salidas,
 | 
				
			||||||
 | 
					        de modo que al volver a entrar todo siga igual, sin ninguna
 | 
				
			||||||
 | 
					        alteraci<63>n. ( Para que al salir del programa no se reseteen las
 | 
				
			||||||
 | 
					        salidas, basta con no llamar a la funcion reset_all ).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        para escribir en el '8i8o' podemos utilizar una de las dos
 | 
				
			||||||
 | 
					        funciones disponibles:
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					                        'Escribe_Salida' o 'Escribe_Salidas' la diferencia
 | 
				
			||||||
 | 
					        reside en que a la primera le indicamos la salida f<>sica y el
 | 
				
			||||||
 | 
					        estado ON, OFF. La segunda sirve para poner en el estado que deseemos
 | 
				
			||||||
 | 
					        la ampliaci<63>n, es decir, seleccionar el estado de los 8 bit's de golpe. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  #include <stdio.h>
 | 
				
			||||||
 | 
					         <20>>  #include "prn_cnt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  void main( void )
 | 
				
			||||||
 | 
					         <20>>  {
 | 
				
			||||||
 | 
					         <20>>   int salida, estado;
 | 
				
			||||||
 | 
					         <20>>       Lpt_usado = 1;
 | 
				
			||||||
 | 
					         <20>>       reset_all();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>   do{
 | 
				
			||||||
 | 
					         <20>>       printf( "\n Introduzca Salida y Estado [1:ON, 0:OFF] " );
 | 
				
			||||||
 | 
					         <20>>       printf( "\n estado > 1 Termina el Programa.          " );
 | 
				
			||||||
 | 
					         <20>>       scanf ( "%d %d", &salida, &estado );
 | 
				
			||||||
 | 
					         <20>>       Escribe_Salida( salida, estado );
 | 
				
			||||||
 | 
					         <20>>   }while( estado<=1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        las funciones destinadas a la lectura se usan de igual forma que
 | 
				
			||||||
 | 
					        las anteriores para la escritura, existiendo igualmente dos funciones
 | 
				
			||||||
 | 
					        para leer una salida determinada o leer una ampliaci<63>n de golpe,
 | 
				
			||||||
 | 
					        se<73>alar que las entras al '8i8o' pueden funcionar directamente como
 | 
				
			||||||
 | 
					        buses de datos digitales y no solo anal<61>gicos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  #include <conio.h>
 | 
				
			||||||
 | 
					         <20>>  #include "prn_cnt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  void main( void )
 | 
				
			||||||
 | 
					         <20>>  {
 | 
				
			||||||
 | 
					         <20>>   unsigned char estados;
 | 
				
			||||||
 | 
					         <20>>       Lpt_usado = 1;
 | 
				
			||||||
 | 
					         <20>>       reset_all();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>   cprintf( "\n Pulse una tecla para acabar " );
 | 
				
			||||||
 | 
					         <20>>   cprintf( "\n 1 entrada de datos ON       " );
 | 
				
			||||||
 | 
					         <20>>   cprintf( "\n 0 entrada de datos OFF      " );
 | 
				
			||||||
 | 
					         <20>>   do{
 | 
				
			||||||
 | 
					         <20>>       gotoxy( 10, 15 );
 | 
				
			||||||
 | 
					         <20>>       estados = Lee_Salidas( 1, NULL );
 | 
				
			||||||
 | 
					                  printf( "\n%d %d %d %d %d %d %d %d", ( estado & 0x80 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x40 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x20 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x10 ) != 0,
 | 
				
			||||||
 | 
					                       
 | 
				
			||||||
 | 
					                                                       ( estado & 0x08 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x04 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x02 ) != 0,
 | 
				
			||||||
 | 
					                                                       ( estado & 0x01 ) != 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>   }while( !kbhit() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         <20>>  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Como puedes ver, la programaci<63>n de nuestro dispositivo es tan
 | 
				
			||||||
 | 
					        sencilla como decir donde y que queremos hacer. El limite esta
 | 
				
			||||||
 | 
					        en tu imaginaci<63>n y conocimientos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                        Creaci<63>n de un programa ejemplo DEMO.C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vea fichero DEMO.C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Puntos importantes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                      -Realiza una lectura continua del bus de entrada
 | 
				
			||||||
 | 
					                      -Controla la 1<> ampliaci<63>n del 8i8o
 | 
				
			||||||
 | 
					                      -Al entrar comprueba que no se hubiera entrado
 | 
				
			||||||
 | 
					                       antes, recordando el estado de las salidas, register,
 | 
				
			||||||
 | 
					                       si al salir, todas las salidas estan a cero, se
 | 
				
			||||||
 | 
					                       elimina el archivo register, para que al volver a
 | 
				
			||||||
 | 
					                       entrar se reseteen las salidas.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                              Preguntas y Respuestas
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Bien, de momento ninguno de nuestros clientes nos han planteado ninguna
 | 
				
			||||||
 | 
					 respuesta, y esperamos que siga siendo asi, ya que eso es se<73>al de la
 | 
				
			||||||
 | 
					 buena documentaci<63>n incluida y el sencillo manejo del '8i8o'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 De todas formas si tiene alguna pregunta, no dude en realizarnosla.
 | 
				
			||||||
 | 
					 Aprovecho para realizar unas cuantas:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 <20> Que complementos tengo para mi '8i8o' ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Para saber que complementos, puede adquirir para su '8i8o' solo tiene
 | 
				
			||||||
 | 
					 que editar el fichero CATALOGO.TXT.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 <20> Quien es la asociaci<63>n InfoMundo ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Abre el fichero infomund.hlp, y enterate de quienes somos, que hacemos,
 | 
				
			||||||
 | 
					 y por que no, unete a nosotros, colaborando en proyectos y debates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                            Puntos de consulta directa.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Puedes dirigirte a nosotros via e-mail:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                        infomundo@arrakis.es
 | 
				
			||||||
 | 
					                                        guill@galileo.fie.us.es
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                              por tel<65>fono:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        a los propios Creadores del 8i8o :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Francisco Lopez         [hardware] -------> 568 xx xx 
 | 
				
			||||||
 | 
					        Francisco Millan        [hardware] -------> 568 xx xx 
 | 
				
			||||||
 | 
					        Jos<6F> David Guill<6C>n      [software] -------> 561 xx xx 
 | 
				
			||||||
 | 
					        Josue                   [software] -------> 568 xx xx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                              a nuestra BBS:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                8 nodos :           xX XXx xX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					                                F       I       N
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					eof file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										69
									
								
								VIDEOC~1.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								VIDEOC~1.TXT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Bit 5 --> Indica con 0 que empieza un sincronismo de pantalla
 | 
				
			||||||
 | 
					Bit 6 --> Indica que empieza una linea ( cuando esta a 0 )
 | 
				
			||||||
 | 
					Bit 4 --> Indica si es par o impar (0-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bit 0 }-> Commutador  
 | 
				
			||||||
 | 
					Bit 1 }->           Video
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  USO: video [LINEA_INICIO] [LINEA_FIN] [TIEMPO_RETARDO_MICRO_SEG]
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main( int argc, char *argv[] )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int LineaINI, LineaFIN;
 | 
				
			||||||
 | 
					 char LineaPI;
 | 
				
			||||||
 | 
					 double RETARDO;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 if ( argc < 4 )  
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  sprintf( "\nERROR de parametros: video [LINEA_INICIO] [LINEA_FIN] [TIEMPO_RETARDO_MICRO_SEG]\n");
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 LineaINI = atoi( argv[1] );
 | 
				
			||||||
 | 
					 LineaFIN = atoi( argv[2] );
 | 
				
			||||||
 | 
					 Retardo  = atod( argv[3] );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 do {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Esperamos a que empieze un sincronismo de pantalla
 | 
				
			||||||
 | 
					 while( inportb(888) & 32 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Mira si son lineas pares o impares e inicializa el contador de n<> de l<>nea
 | 
				
			||||||
 | 
					 if ( inportb(888) & 16 ) 
 | 
				
			||||||
 | 
					  LineaPI = 1;
 | 
				
			||||||
 | 
					 else
 | 
				
			||||||
 | 
					  LineaPI = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 while( linea < 313 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   if ( !(inport( 888 ) & 64) ) 
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    linea += 2;
 | 
				
			||||||
 | 
					    if ( LineaINI <= linea && linea <= LineaFIN )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					     outportb( 888, F2 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     // Perdemos "Retardo" micro-segundos
 | 
				
			||||||
 | 
					     while( (clock() - SegINI)<<3 < Retardo );  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     outportb( 888, F1 ); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 }; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 } while ( !kbhit() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 while( kbhit() ) getch();  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user