First commit 20/04/1996

This commit is contained in:
2021-09-08 21:36:37 +02:00
commit 8c5bf38666
8 changed files with 743 additions and 0 deletions

254
DEMO.CPP Normal file
View 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--;
}
}
}

BIN
DEMO.EXE Normal file

Binary file not shown.

BIN
DEMO.GIF Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
DEMO.PRJ Normal file

Binary file not shown.

27
FONDO.TXT Normal file
View 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
View File

@ -0,0 +1,9 @@
#PRN_DEMO
*20/04/1996*
ToDo: wwtcf?
![screenshot](/PRN_DEMO.png "Screenshot")

384
SOFT_DOC.TXT Normal file
View 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
View 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();
}