PRN_DEMO/VIDEOC~1.TXT
2021-09-08 21:36:37 +02:00

69 lines
1.2 KiB
Plaintext

/*
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();
}