CATALOGO/CINFO.CPP
2021-09-03 17:43:05 +02:00

197 lines
5.4 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

///////////////////////////////////////////////////////////////////////////
///// Nombre: CInfo.CPP ///
///// Modulo: Perteneciente a Catalogo.C ///
//// Descripci¢n: Muestra informaci¢n del sistema.. (CPU, VIDEO...) ///
//// ///
//// Autor: Jos David Guilln Dominguez ///
//// Fecha: 26 - 07 - 1994 ///
//// ///
//// Compilador Borland C++ 3.0 ///
///////////////////////////////////////////////////////////////////////////
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
void DatosRaton(void);
void printxy(int x, int y, int m, char *texto);
extern int raton; /* Indica si esta instalado el raton (def. NO) */
extern int x_raton; // En el M¢dulo: Craton.CPP
extern int y_raton; // En el M¢dulo: Craton.CPP
extern int boton_izq; // En el M¢dulo: Craton.CPP
extern int boton_der; // En el M¢dulo: Craton.CPP
extern int dir_raton [32+32]; // En el M¢dulo: Craton.CPP
extern int access; /* Indica si se tiene acceso al menu ppal. (def. NO) */
extern void BorraViewPort(int view);
extern void printxy(int x, int y, int m, char *texto);
extern void desactiva_raton(void); // En el M¢dulo: Craton.CPP
extern void activa_raton(void); // En el M¢dulo: Craton.CPP
extern void inicializa_raton_grafico(int x1, // En el M¢dulo: Craton.CPP
int y1, int x2, int y2, int px, int py);
extern int sb2;
void Info(char *nombrecargado)
{
union REGS ent, sal;
int salir;
BorraViewPort( 3);
setcolor(63);
printxy(28, 19, 0, "Programa y versi¢n: CATALOGO v4.0, JùD Anyware");
setcolor( 8);
printxy(29, 39, 1, "P. EXE: ");
printxy(29, 40, 1, "Versi¢n registrada a:");
printxy(29, 42, 1, "Ejecuci¢n de INFO: Interna");
printxy(29, 44, 1, "DOS, enviroment:");
printxy(29, 45, 1, "DOS, memoria:");
printxy(29, 46, 1, "Hardware detectado: CPU: FPU:");
printxy(29, 47, 1, "Raton: ");
printxy(29, 49, 1, "Gr ficos: 640x480 VGA, 16 colores");
printxy(29, 50, 1, "Driver Gr fico: VGA Device Driver (EGAVGA)");
printxy(29, 51, 1, "Chips Gr fico:");
printxy(29, 53, 1, "Salida de sonido digital:");
printxy(29, 55, 1, "Nivel de acceso:");
setcolor( 7);
printxy(37, 39, 1, nombrecargado); // Lugar desde donde fue ejecutado
// el programa.
printxy(51, 40, 1, "Versi¢n PreView"); // Nombre del usuario registrado
// Enviroment del DOS
{
auto int ver;
auto int mayor, menor;
auto char buffer[5];
ver = bdos(0x30, 0, 0);
mayor = ver & 0xFF;
menor = ver >> 8;
sprintf(buffer, "%d.%d", mayor, menor );
printxy(46, 44, 1, buffer);
}
printxy(49, 45, 1, " "); // Memoria reportada por el DOS
/////////////////////////// Hardware detecci¢n ////////////////////////////
printxy(54, 46, 1, " "); // C.P.U.
printxy(71, 46, 1, " "); // F.P.U.
if (raton) DatosRaton(); // Raton
else printxy(36, 47, 1, "Raton no instalado");
if(access) printxy(49, 55, 1, "COMPLETO"); // Nivel de acceso COMPLETO
else printxy(49, 55, 1, "BAJO"); // Nivel de acceso BAJO
if(sb2) printxy(55, 53, 1, "Sound Blaster DETECT");
else printxy(55, 53, 1, "usando Speaker");
salir = 0;
if(raton!=0) {
inicializa_raton_grafico(325, 33, 584, 189, 454, 111);
activa_raton();
}
do {
if (kbhit()) {
getch();
salir = 1;
}
if( raton!=0 && !salir ) {
ent.x.ax = 3;
int86(0x33, &ent, &sal); /* lee posici¢n y estados del bot¢n */
boton_izq = sal.x.bx & 1;
boton_der = (sal.x.bx >> 1) & 1;
if (boton_izq || boton_der) salir = 1;
}
}while (!salir);
desactiva_raton();
BorraViewPort( 3);
if(raton!=0) {
inicializa_raton_grafico(0, 0, 624, 464, 320, 240);
activa_raton();
}
}
void DatosRaton(void)
{
struct SREGS segmento;
union REGS registro;
static char *tipo[]={"Bus","Serie","InPort","PS/2","HP"};
struct {
int status;
int botones;
short verhi,verlo;
short tipo,irq;
} minfo;
registro.x.ax=0;
int86(0x33,&registro,&registro);
minfo.status=registro.x.ax;
minfo.botones=registro.x.bx;
registro.x.ax=0x24;
int86(0x33,&registro,&registro);
minfo.verhi=registro.h.bh; minfo.verlo=registro.h.bl;
minfo.tipo=registro.h.ch-1;
minfo.irq=registro.h.cl;
/////////////////////////////////////////////////////////////////
//////////////////// Muestra datos obtenidos //////////////////
/////////////////////////////////////////////////////////////////
char *string = "buffer de linea";
printxy(36, 47, 1, tipo[minfo.tipo]);
itoa(minfo.verhi, string, 10);
printxy(43, 47, 1, string);
printxy(45, 47, 1, ".");
itoa(minfo.verlo, string, 10);
printxy(46, 47, 1, string);
printxy(48, 47, 1, ", IRQ ");
itoa(minfo.irq, string, 10);
printxy(54, 47, 1, string);
printxy(56, 47, 1, ",");
itoa(minfo.botones, string, 10);
printxy(58, 47, 1, string);
printxy(60, 47, 1, "Botones");
}
void printxy(int x, int y, int m, char *texto)
{
if (m==1) outtextxy( x*8 -7, y*8 - 7, texto); else outtextxy( x*8 - 7, y*16 - 16, texto);
}