First commit 09/04/1995
This commit is contained in:
838
CD_EDIT.CPP
Normal file
838
CD_EDIT.CPP
Normal file
@ -0,0 +1,838 @@
|
||||
#include <alloc.h>
|
||||
#include <dos.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <conio.h> // Para getch();
|
||||
#include <graphics.h> // Para outtextxy(...); y cleardevice(...);
|
||||
#include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON
|
||||
#include "cd_icons.h"
|
||||
#include "cd_file.h"
|
||||
#include "..\libs\wavplav\wavplay.h"
|
||||
|
||||
#include "CD_SND.H"
|
||||
|
||||
#include "EMMC.h"
|
||||
|
||||
extern int pagenum, /*n<>mero de p<>ginas EMS*/
|
||||
handle, /*Handle para acceder a la memoria EMS*/
|
||||
i; /*contador de bucle*/
|
||||
extern WORD pageseg ; /*direcci<63>n de segmento del Page-Frame*/
|
||||
extern BYTE emmver; /*n<>mero de versi<73>n de la EMM*/
|
||||
|
||||
extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos);
|
||||
|
||||
#define DOS 1
|
||||
#define WINDOWS 2
|
||||
|
||||
#define SIN_COMENTARIO 0
|
||||
#define CON_COMENTARIO 1
|
||||
|
||||
extern int file_exists(char *filename);
|
||||
extern void Carga_PCX(char *Imagen);
|
||||
|
||||
extern void Sonido(char Sonido);
|
||||
|
||||
void Muestra_Comentario(int Ini);
|
||||
int Abre_Ficha_CD_in(void);
|
||||
void GetLineCD_in(void);
|
||||
void Inicializa_Apertura(void);
|
||||
void BEEP(void);
|
||||
void Mueve_Abajo_CD_in(void);
|
||||
void Mueve_Arriba_CD_in(void);
|
||||
void PrintWholeScreenCD_in(void);
|
||||
void textxy( int x, int y, char *P_Texto );
|
||||
void Borra_Campo_Visual(void);
|
||||
|
||||
FILE *CD_in;
|
||||
CD_FILE CD_in1, CD_in2;
|
||||
struct Cabecera CD_cabecera;
|
||||
int Comprueba_Impresora(void);
|
||||
|
||||
extern int Muestra_Mensaje(int Mensaje, char *file);
|
||||
void Imprime_Lista(char Como);
|
||||
|
||||
extern char _XMS;
|
||||
extern int CFG;
|
||||
|
||||
extern void Init_CFG(void);
|
||||
extern void Init_EXE(int CurrIcon);
|
||||
extern void Init_Install(int CurrIcon);
|
||||
|
||||
void Coloca_Iconos(int Start_Icon);
|
||||
void Menu_de_Edicion(void);
|
||||
|
||||
unsigned char Items_for = DOS;
|
||||
unsigned char Item_select = 1;
|
||||
unsigned int CurrTopLineCD_in = 1; unsigned char CurrRowCD_in = 1;
|
||||
unsigned char CurrRowCD_in2 = 0;
|
||||
char NEW_PUSH = 0;
|
||||
char Fichero_Abierto;
|
||||
|
||||
char SONIDO = 0;
|
||||
void Menu_de_Edicion(void){
|
||||
int ok = 0;
|
||||
char cont;
|
||||
char Buffer[80];
|
||||
|
||||
int Curr_Item = 1;
|
||||
|
||||
Imprime_Bordes(1, 1, 251);
|
||||
settextstyle( SMALL_FONT, HORIZ_DIR, 4);
|
||||
Inicializa_Apertura();
|
||||
|
||||
while(!ok){ // Bucle infinito
|
||||
|
||||
switch( Comprueba_Secuencia( 1 ) ) { // Iniciamos comprobacion de iconos
|
||||
|
||||
case 0: // No se pulso ningun BOTON
|
||||
// Pero el raton fue presionado en
|
||||
// algun sitio...
|
||||
// Sonido("CD_OUT01.WAV");
|
||||
Sonido( Mouse_Press );
|
||||
break;
|
||||
case -2: // Hay una tecla normal en BUFFER
|
||||
getch(); // La eliminamos
|
||||
// Sonido("CD_OUT02.WAV");
|
||||
Sonido( Key_Press );
|
||||
break;
|
||||
case -1: // Hay una tecla especial en BUFFER
|
||||
switch ( getch() ){ // La utilizamos
|
||||
/*
|
||||
// INICIO
|
||||
case 71:
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 1;
|
||||
CurrTopLineCD_in = 1;
|
||||
PrintWholeScreenCD_in();
|
||||
GetLineCD_in();
|
||||
}
|
||||
break;
|
||||
// FIN
|
||||
case 79:
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 1;
|
||||
CurrTopLineCD_in = (CD_cabecera.Records + 1);
|
||||
PrintWholeScreenCD_in();
|
||||
GetLineCD_in();
|
||||
}
|
||||
break;
|
||||
*/
|
||||
// ReP<65>g
|
||||
case 71://73:
|
||||
// CurrRow = 1;
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
if( CurrTopLineCD_in + CurrRowCD_in > 10 ) { CurrTopLineCD_in -= 9; } else { CurrTopLineCD_in = 1; CurrRowCD_in = 1;}
|
||||
if( CurrTopLineCD_in + CurrRowCD_in< 1 ) { CurrTopLineCD_in = 1; CurrRowCD_in = 1;}
|
||||
PrintWholeScreenCD_in();
|
||||
GetLineCD_in();
|
||||
}
|
||||
break;
|
||||
// AvP<76>g
|
||||
case 79://81:
|
||||
// CurrRow = 1;
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrTopLineCD_in += 11;
|
||||
if ( (CurrTopLineCD_in +CurrRowCD_in-1) > CD_cabecera.Records) { CurrTopLineCD_in = CD_cabecera.Records; CurrRowCD_in = 1; }
|
||||
if (CurrTopLineCD_in ==0) CurrTopLineCD_in = 1;
|
||||
PrintWholeScreenCD_in();
|
||||
GetLineCD_in();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
// Boton DOS
|
||||
case 1:
|
||||
// Sonido("CD_OUT04.WAV");
|
||||
Sonido( Play_DOS );
|
||||
Imprime_Bordes(1, 2, -1);
|
||||
Items_for = DOS;
|
||||
Imprime_Bordes(1, 1, 251);
|
||||
fclose(CD_in);
|
||||
Inicializa_Apertura();
|
||||
break;
|
||||
// Boton WINDOWS
|
||||
case 2:
|
||||
// Sonido("CD_OUT05.WAV");
|
||||
Sonido( Play_WINDOWS );
|
||||
Imprime_Bordes(1, 1, -1);
|
||||
Items_for = WINDOWS;
|
||||
Imprime_Bordes(1, 2, 251);
|
||||
fclose(CD_in);
|
||||
Muestra_Comentario(0);
|
||||
Inicializa_Apertura();
|
||||
break;
|
||||
// Boton 1<> Icono
|
||||
case 3:
|
||||
// Sonido("CD_OUT06.WAV");
|
||||
Sonido( Select_Icono );
|
||||
if(Curr_Item==16){
|
||||
// Muestra_Creditos();
|
||||
if ( _XMS == 1) {
|
||||
strcpy( Buffer, "cd_out.cr1" );
|
||||
if ( file_exists(Buffer) )
|
||||
{
|
||||
SONIDO = 1;
|
||||
Carga_PCX(Buffer);
|
||||
SONIDO = 0;
|
||||
}
|
||||
}
|
||||
|
||||
while( kbhit() ) getch();
|
||||
}else{
|
||||
Item_select = Curr_Item;
|
||||
fclose(CD_in);
|
||||
Inicializa_Apertura();
|
||||
}
|
||||
break;
|
||||
// Boton Flecha Derecha
|
||||
case 4:
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
Curr_Item--; if( Curr_Item < 1 ) Curr_Item = 16;
|
||||
Coloca_Iconos(Curr_Item);
|
||||
break;
|
||||
// Boton Flecha Izquierda
|
||||
case 5:
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
Curr_Item++; if( Curr_Item > 16 ) Curr_Item = 1;
|
||||
Coloca_Iconos(Curr_Item);
|
||||
break;
|
||||
// Botones de Letras...
|
||||
case 6:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 1 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 1;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 2 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 2;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 3 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 3;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 4 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 4;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 5 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 5;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 6 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 6;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 7 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 7;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 8 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 8;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 9 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in = 9;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if ( Fichero_Abierto && ( CurrTopLineCD_in + 10 - 2 ) <= CD_cabecera.Records ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in =10;
|
||||
GetLineCD_in();
|
||||
CD_in2 = CD_in1;
|
||||
Muestra_Comentario(1);
|
||||
}
|
||||
break;
|
||||
// Boton Instalar
|
||||
case 16:
|
||||
if ( CD_in1.Alt_Install.Usar_LHA==0 && NEW_PUSH ) {
|
||||
// Sonido("CD_OUT07.WAV");
|
||||
Sonido( Install );
|
||||
DeInitSB();
|
||||
Init_Install(Curr_Item);
|
||||
}
|
||||
break;
|
||||
// Boton Configurar
|
||||
case 17:
|
||||
if( CFG != 0 ) {
|
||||
// Sonido("CD_OUT08.WAV");
|
||||
Sonido( Setup );
|
||||
Init_CFG();
|
||||
NEW_PUSH = 0;
|
||||
}
|
||||
break;
|
||||
// Boton Ejecutar
|
||||
case 18:
|
||||
if ( Fichero_Abierto && CD_in1.Typo.Ejecutable == 1 && NEW_PUSH ) {
|
||||
// Sonido("CD_OUT09.WAV");
|
||||
Sonido( Run );
|
||||
DeInitSB();
|
||||
Init_EXE(Curr_Item);
|
||||
}
|
||||
break;
|
||||
// Boton Salir
|
||||
case 19:
|
||||
ok = 1;
|
||||
break;
|
||||
// Boton Mueve Arriba Programas
|
||||
case 20:
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
Mueve_Arriba_CD_in();
|
||||
}
|
||||
break;
|
||||
// Boton Mueve Abajo Programas
|
||||
case 21:
|
||||
if ( Fichero_Abierto ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
Mueve_Abajo_CD_in();
|
||||
}
|
||||
break;
|
||||
// Boton Mueve Arriba Comentario
|
||||
case 22:
|
||||
if ( NEW_PUSH && CurrRowCD_in2 > 0 ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in2--;
|
||||
Muestra_Comentario(2);
|
||||
}
|
||||
break;
|
||||
// Boton Mueve Abajo Comentario
|
||||
case 23:
|
||||
if ( NEW_PUSH && CurrRowCD_in2 < /*10*/15 ) {
|
||||
// Sonido("CD_OUT03.WAV");
|
||||
Sonido( Mouse_Key_Tick );
|
||||
CurrRowCD_in2++;
|
||||
Muestra_Comentario(2);
|
||||
}
|
||||
break;
|
||||
// Boton Ver Dibujo
|
||||
case 24:
|
||||
if ( NEW_PUSH && Fichero_Abierto && CD_in1.Typo.T_Dibujo == 1 && _XMS == 1) {
|
||||
// Sonido("CD_OUT0A.WAV");
|
||||
Sonido( Show_Image );
|
||||
sprintf(Buffer, "imagenes\\%s.pcx", CD_in2.N_Img);
|
||||
if ( file_exists(Buffer) )
|
||||
Carga_PCX(Buffer);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||||
// Sonido("CD_OUT11.WAV");
|
||||
Sonido( Unknow_error );
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fclose(CD_in);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//<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><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>
|
||||
//<2F> <20>
|
||||
//<2F> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20> <20><><EFBFBD> <20><> <20><><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
|
||||
//<2F> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20> <20> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20><><EFBFBD> <20> <20> <20> <20><><EFBFBD><EFBFBD> <20> <20> <20> <20> <20><><EFBFBD><EFBFBD> <20>
|
||||
//<2F> <20>
|
||||
//<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><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>
|
||||
|
||||
int Abre_Ficha_CD_in(void){
|
||||
|
||||
char ArchivoDatos[80];
|
||||
char Memoria;
|
||||
void *Imagen;
|
||||
|
||||
int cm;
|
||||
cm = JD_imagesize(200, 212, 440, 267);
|
||||
if ( (Imagen = malloc( cm /*imagesize(200, 212, 440, 267)*/ ) ) == NULL ) Memoria = 0;
|
||||
else {
|
||||
Memoria = 1;
|
||||
getimage( 200, 212, 440, 267, Imagen );
|
||||
// Imprime_Estaticos( 113, "cd_out.img");
|
||||
Fichero_cd_img(113);
|
||||
// Sonido("CD_OUT71.WAV");
|
||||
Sonido( Error_113 );
|
||||
settextstyle( SMALL_FONT, HORIZ_DIR, 4);
|
||||
}
|
||||
|
||||
if (Items_for == DOS)
|
||||
sprintf(ArchivoDatos, "DATOS\\CD_D%02d.dat", Item_select );
|
||||
else
|
||||
sprintf(ArchivoDatos, "DATOS\\CD_W%02d.dat", Item_select );
|
||||
|
||||
//<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><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>//
|
||||
//<2F> CD_in Apertura de Indice, y Datos, o creaci<63>n... <20>//
|
||||
//<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><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>//
|
||||
|
||||
int LSJ = sizeof(struct Cabecera);
|
||||
int LSC = sizeof(CD_FILE);
|
||||
|
||||
if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) {
|
||||
Fichero_Abierto = 0;
|
||||
Borra_Campo_Visual();
|
||||
NEW_PUSH = 0;
|
||||
if( Memoria ) {
|
||||
// Imprime_Estaticos( 108, "cd_out.img");
|
||||
Fichero_cd_img(108);
|
||||
// Sonido("CD_OUT6C.WAV");
|
||||
Sonido( Error_108 );
|
||||
Espera_Tecla_o_Raton();
|
||||
Anclar_Raton();
|
||||
putimage( 200, 212, Imagen, COPY_PUT);
|
||||
free(Imagen);
|
||||
}
|
||||
return -1;
|
||||
} else Fichero_Abierto = 1;
|
||||
|
||||
rewind(CD_in);
|
||||
if ( fread(&CD_cabecera, LSJ, 1, CD_in) != 1 ) {
|
||||
if ( Memoria ) free(Imagen);
|
||||
restorecrtmode();
|
||||
printf("NO SE PUDO LEER EN EL FICHERO: INDICE");
|
||||
exit(1);
|
||||
}
|
||||
fseek(CD_in, (long)LSJ, SEEK_SET);
|
||||
if ( fread(&CD_in1, LSC, 1, CD_in) != 1 ) {
|
||||
if ( Memoria ) free(Imagen);
|
||||
restorecrtmode();
|
||||
printf("NO SE PUDO LEER EN EL FICHERO: DATOS");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if( Memoria ) {
|
||||
putimage( 200, 212, Imagen, COPY_PUT);
|
||||
free(Imagen);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
//<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><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>
|
||||
//<2F> <20>
|
||||
//<2F> <20><> <20><><EFBFBD> <20><><EFBFBD> <20> <20> <20><><EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
|
||||
//<2F> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20> <20> <20> <20> <20> <20>
|
||||
//<2F> <20> <20> <20> <20> <20><><EFBFBD> <20> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
|
||||
//<2F> <20>
|
||||
//<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><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>
|
||||
|
||||
|
||||
void GetLineCD_in(void){
|
||||
|
||||
long LSJ = sizeof(struct Cabecera);
|
||||
long LSC = sizeof(CD_FILE);
|
||||
|
||||
long CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1;
|
||||
|
||||
fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca
|
||||
fread(&CD_in1, LSC, 1, CD_in); // Y lee
|
||||
|
||||
}
|
||||
|
||||
void Inicializa_Apertura(void) {
|
||||
|
||||
CurrTopLineCD_in = 1;
|
||||
CurrRowCD_in = 1;
|
||||
// CurrColCD_in = 1;
|
||||
if ( Abre_Ficha_CD_in() != -1 ) {
|
||||
PrintWholeScreenCD_in();
|
||||
GetLineCD_in();
|
||||
} else Muestra_Comentario(-1);
|
||||
}
|
||||
|
||||
void BEEP(void){
|
||||
|
||||
sound(440);
|
||||
delay(50);
|
||||
nosound();
|
||||
|
||||
}
|
||||
|
||||
//<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><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>
|
||||
//<2F> <20>
|
||||
//<2F> <20><><EFBFBD> <20><> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20> <20><> <20>
|
||||
//<2F> <20> <20> <20> <20> <20><> <20> <20> <20> <20> <20> <20> <20> <20> <20>
|
||||
//<2F> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><> <20> <20><><EFBFBD><EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20> <20> <20> <20> <20> <20><><EFBFBD> <20><><EFBFBD> <20> <20> <20>
|
||||
//<2F> <20>
|
||||
//<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><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>
|
||||
|
||||
void Mueve_Abajo_CD_in(void){
|
||||
|
||||
if ( (CurrTopLineCD_in /*+ CurrRowCD_in - 1*/) >= ( CD_cabecera.Records + 1)-8 ) BEEP();
|
||||
else { CurrTopLineCD_in++;
|
||||
PrintWholeScreenCD_in();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Mueve_Arriba_CD_in(void){
|
||||
|
||||
// CurrRowCD_in = 1;
|
||||
|
||||
if ( CurrTopLineCD_in <= 1) BEEP();
|
||||
else {
|
||||
CurrTopLineCD_in--;
|
||||
PrintWholeScreenCD_in();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PrintWholeScreenCD_in(void){
|
||||
|
||||
int tmp = CurrRowCD_in;
|
||||
|
||||
setcolor(240);
|
||||
setfillstyle(SOLID_FILL, 240);
|
||||
|
||||
Borra_Campo_Visual();
|
||||
setusercharsize(7, 6, 1, 1);
|
||||
|
||||
for(CurrRowCD_in = 1; CurrRowCD_in < (10+1); CurrRowCD_in++)
|
||||
|
||||
if ( (CurrTopLineCD_in + CurrRowCD_in - 1) <= (CD_cabecera.Records + 1) ) {
|
||||
GetLineCD_in();
|
||||
switch(CurrRowCD_in){
|
||||
case 1:
|
||||
textxy( 15, 238, CD_in1.Nombre );
|
||||
break;
|
||||
case 2:
|
||||
textxy( 15, 261, CD_in1.Nombre );
|
||||
break;
|
||||
case 3:
|
||||
textxy( 15, 284, CD_in1.Nombre );
|
||||
break;
|
||||
case 4:
|
||||
textxy( 15, 307, CD_in1.Nombre );
|
||||
break;
|
||||
case 5:
|
||||
textxy( 15, 330, CD_in1.Nombre );
|
||||
break;
|
||||
case 6:
|
||||
textxy( 15, 353, CD_in1.Nombre );
|
||||
break;
|
||||
case 7:
|
||||
textxy( 15, 376, CD_in1.Nombre );
|
||||
break;
|
||||
case 8:
|
||||
textxy( 15, 399, CD_in1.Nombre );
|
||||
break;
|
||||
case 9:
|
||||
textxy( 15, 422, CD_in1.Nombre );
|
||||
break;
|
||||
case 10:
|
||||
textxy( 15, 445, CD_in1.Nombre );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CurrRowCD_in = tmp;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void textxy( int x, int y, char *P_Texto ) {
|
||||
|
||||
setcolor(255);
|
||||
outtextxy( x+1+2, y+1, P_Texto );
|
||||
setcolor(240);
|
||||
outtextxy( x+2, y, P_Texto );
|
||||
|
||||
}
|
||||
|
||||
void Muestra_Comentario(int Ini){
|
||||
|
||||
int Linea, inc;
|
||||
char Buffer[80];
|
||||
|
||||
switch( Ini ) {
|
||||
|
||||
// Borra la pantalla de comentario
|
||||
case -1:
|
||||
setfillstyle(SOLID_FILL, 240);
|
||||
bar(396, 141, 624, 410);
|
||||
break;
|
||||
case 1:
|
||||
CurrRowCD_in2 = 0;
|
||||
NEW_PUSH = 1;
|
||||
setfillstyle(SOLID_FILL, 240);
|
||||
// bar(396, 141, 624, 161);
|
||||
bar(396, 141, 624, 410);
|
||||
|
||||
setfillstyle(9, 242);
|
||||
bar(396, 141, 624, 161);
|
||||
|
||||
setusercharsize(3, 2, 8, 5);
|
||||
setcolor(250);
|
||||
inc = textwidth(CD_in2.Nombre);
|
||||
if ( inc<0 ) inc = 0;
|
||||
else
|
||||
inc = (228-inc)/2;
|
||||
outtextxy( 398+inc, 142, CD_in2.Nombre );
|
||||
setcolor(255);
|
||||
outtextxy( 397+inc, 141, CD_in2.Nombre );
|
||||
|
||||
settextstyle( SMALL_FONT, HORIZ_DIR, 4);
|
||||
for(Linea=0; Linea<22/*32*/; Linea++ )
|
||||
outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea] );
|
||||
|
||||
break;
|
||||
case 2:
|
||||
setfillstyle(SOLID_FILL, 240);
|
||||
// bar(396, 162, 624, 410);
|
||||
setcolor(255);
|
||||
|
||||
settextstyle( SMALL_FONT, HORIZ_DIR, 4);
|
||||
|
||||
if(CurrRowCD_in2<=10) {
|
||||
for(Linea=0; Linea<22/*32*/; Linea++ ) {
|
||||
bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo
|
||||
outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea+CurrRowCD_in2] );
|
||||
}
|
||||
} else {
|
||||
|
||||
for(Linea=0; Linea<22-(CurrRowCD_in2-10)/*32*/; Linea++ ) {
|
||||
bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo
|
||||
outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea+10+(CurrRowCD_in2-10)] );
|
||||
}
|
||||
|
||||
for(Linea=(22-(CurrRowCD_in2-10)); Linea< 22; Linea++ ) {
|
||||
bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo
|
||||
}
|
||||
|
||||
setcolor(242);
|
||||
sprintf( Buffer, "Informe:");
|
||||
if ( CurrRowCD_in2 == 12 )
|
||||
outtextxy( 397, 165+21*11, Buffer );
|
||||
if ( CurrRowCD_in2 == 13 )
|
||||
outtextxy( 397, 165+20*11, Buffer );
|
||||
if ( CurrRowCD_in2 == 14 )
|
||||
outtextxy( 397, 165+19*11, Buffer );
|
||||
if ( CurrRowCD_in2 == 15 )
|
||||
outtextxy( 397, 165+18*11, Buffer );
|
||||
|
||||
strcpy( Buffer, " \0" );
|
||||
if ( CD_in2.Alt_Install.Usar_LHA == 0) {
|
||||
strcat( Buffer, "Instalable" );
|
||||
if ( CD_in2.Typo.Ejecutable == 1 || CD_in2.Typo.T_Dibujo == 1)
|
||||
strcat( Buffer, ", " );
|
||||
}
|
||||
|
||||
if ( CD_in2.Typo.Ejecutable == 1 ) {
|
||||
strcat( Buffer, "Ejecutable" );
|
||||
if ( CD_in2.Typo.T_Dibujo == 1 )
|
||||
strcat( Buffer, ", " );
|
||||
}
|
||||
if ( CD_in2.Typo.T_Dibujo == 1 ) strcat( Buffer, "Posee Dibujo" );
|
||||
if ( CD_in2.Typo.Ejecutable == 0 && CD_in1.Typo.T_Dibujo == 0 && CD_in2.Alt_Install.Usar_LHA == 1 )
|
||||
strcpy( Buffer, "Archivo no accesible por CD_OUT" );
|
||||
|
||||
if ( CurrRowCD_in2 == 14 )
|
||||
outtextxy( 397, 165+21*11, Buffer );
|
||||
if ( CurrRowCD_in2 == 15 )
|
||||
outtextxy( 397, 165+20*11, Buffer );
|
||||
|
||||
strcpy( Buffer, "\0" );
|
||||
|
||||
strrev( CD_in2.Dir_P );
|
||||
strncpy( Buffer, CD_in2.Dir_P, 34 );
|
||||
strrev( CD_in2.Dir_P );
|
||||
strrev( Buffer );
|
||||
if ( CurrRowCD_in2 == 15 )
|
||||
outtextxy( 397, 165+21*11, Buffer );
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Borra_Campo_Visual(void){
|
||||
|
||||
setfillstyle( SOLID_FILL, 253);
|
||||
bar( 15+1, 237+1, 196-1, 253-1);
|
||||
bar( 15+1, 260+1, 196-1, 276-1);
|
||||
bar( 15+1, 283+1, 196-1, 299-1);
|
||||
bar( 15+1, 306+1, 196-1, 322-1);
|
||||
|
||||
bar( 15+1, 329+1, 196-1, 345-1);
|
||||
bar( 15+1, 352+1, 196-1, 368-1);
|
||||
bar( 15+1, 375+1, 196-1, 392-1);
|
||||
bar( 15+1, 398+1, 196-1, 414-1);
|
||||
|
||||
bar( 15+1, 421+1, 196-1, 437-1);
|
||||
bar( 15+1, 444+1, 196-1, 460-1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void Imprime_Lista(char Como){
|
||||
|
||||
int tmpRow = CurrRowCD_in;
|
||||
int tmpTop = CurrTopLineCD_in;
|
||||
void *Imagen; char Memoria = 0;
|
||||
|
||||
if ( Comprueba_Impresora() == 0 ) {
|
||||
Muestra_Mensaje(115, "CD_OUT.IMG");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ( (Imagen = malloc( JD_imagesize(200, 212, 440, 267) ) ) != NULL ) {
|
||||
getimage( 200, 212, 440, 267, Imagen );
|
||||
// Imprime_Estaticos( 116, "CD_OUT.IMG" );
|
||||
Fichero_cd_img(116);
|
||||
// Sonido("CD_OUT74.WAV");
|
||||
Sonido( Error_116 );
|
||||
Memoria = 1;
|
||||
}
|
||||
|
||||
CurrTopLineCD_in = 1;
|
||||
|
||||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ\n\r");
|
||||
fprintf( stdprn, "<EFBFBD> JD & CD_OUT <20>\n\r");
|
||||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r");
|
||||
fprintf( stdprn, "\n\r");
|
||||
|
||||
for(CurrTopLineCD_in = 1; CurrTopLineCD_in <= (CD_cabecera.Records + 1); CurrTopLineCD_in++) {
|
||||
|
||||
GetLineCD_in();
|
||||
if ( Como == SIN_COMENTARIO ) {
|
||||
|
||||
fprintf( stdprn, "%-26s <20> ", CD_in1.Nombre);
|
||||
if( (CurrTopLineCD_in + 1) <= (CD_cabecera.Records + 1) ) {
|
||||
CurrTopLineCD_in++;
|
||||
GetLineCD_in();
|
||||
fprintf( stdprn, "%-26s\n\r", CD_in1.Nombre);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fputc(12, stdprn);
|
||||
|
||||
CurrRowCD_in = tmpRow;
|
||||
CurrTopLineCD_in = tmpTop;
|
||||
|
||||
if ( Memoria == 1 ) {
|
||||
putimage( 200, 212, Imagen, COPY_PUT);
|
||||
free(Imagen);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
int Comprueba_Impresora(void){
|
||||
|
||||
// unsigned int tmp;
|
||||
union REGS Impresora_in, Impresora_out;
|
||||
/*
|
||||
struct byte {
|
||||
int a : 1;
|
||||
int b : 1;
|
||||
int c : 1;
|
||||
int d : 1;
|
||||
int e : 1;
|
||||
int f : 1;
|
||||
int g : 1;
|
||||
int h : 1;
|
||||
};
|
||||
union bits {
|
||||
char ch;
|
||||
struct byte bit;
|
||||
} Imp_out;
|
||||
*/
|
||||
Impresora_in.h.ah = 0x02;
|
||||
Impresora_in.x.dx = 0x0;
|
||||
|
||||
int86(0x17, &Impresora_in, &Impresora_out);
|
||||
|
||||
return ( Impresora_out.h.ah ? 1 : 0 );
|
||||
|
||||
}
|
Reference in New Issue
Block a user