PROGRAM INSTALAR; {A+,S+,B-,E+,N+} {$M 16384, 000000, 50000} USES CRT,ERR; LABEL 1,4; CONST VERERROR : BOOLEAN=FALSE; ERRORNORMAL : BOOLEAN=FALSE; ERRORCLAVE : BOOLEAN=FALSE; REPITE : BOOLEAN=FALSE; VAR RECIBE : FILE; GRABA : FILE; ERRORINS : INTEGER; REGISTROSLEIDOS : INTEGER; CURSORPANX : BYTE; CURSORPANY : BYTE; CURSORX : BYTE; CURSORY : BYTE; COLOR1 : BYTE; COLOR2 : BYTE; COLOR3 : BYTE; COLOR4 : BYTE; COLOR5 : BYTE; COLOR6 : BYTE; COLOR7 : BYTE; COLOR8 : BYTE; TECLA : CHAR; ORIGEN : STRING[255]; ORIGEN1 : STRING[255]; DESTINO : STRING[255]; DESTINO1 : STRING[255]; ARCHIVO : STRING[20]; BUFFER : ARRAY [1..1000] OF BYTE; PUNTEROPANTALLA : POINTER; (**********************************************************) PROCEDURE HACERFONDO; VAR A,B:BYTE; BEGIN TEXTBACKGROUND(COLOR2); TEXTCOLOR(COLOR1); CURSOROFF; BEGIN FOR A:=1 TO 80 DO FOR B:=1 TO 25 DO BEGIN GOTOXY(A,B); WRITE(#176) END END END; (**********************************************************) PROCEDURE REHACERTROZODEFONDO; VAR C,D:BYTE; BEGIN TEXTBACKGROUND(COLOR2); TEXTCOLOR(COLOR1); CURSOROFF; BEGIN FOR C:=5 TO 75 DO FOR D:=16 TO 20 DO BEGIN GOTOXY(C,D); WRITE(#176); END END END; (**********************************************************) PROCEDURE COLORES; BEGIN IF MODOVIDEOACTUAL='M' THEN BEGIN COLOR1:=BLACK; COLOR2:=BLACK; COLOR3:=WHITE; COLOR4:=BLACK; COLOR5:=BLACK; COLOR6:=WHITE; COLOR7:=BLACK; COLOR8:=WHITE END ELSE BEGIN COLOR1:=LIGHTBLUE; COLOR2:=WHITE; COLOR3:=RED; COLOR4:=GREEN; COLOR5:=RED; COLOR6:=YELLOW; COLOR7:=BLUE; COLOR8:=LIGHTRED END END; (**********************************************************) {$F+} PROCEDURE ABANDONAR; BEGIN TEXTBACKGROUND(BLACK); TEXTCOLOR(WHITE); TEXTMODE(LASTMODE); CLRSCR; CURSORON; CARGARPANTALLA(PUNTEROPANTALLA); GOTOXY(CURSORPANX,CURSORPANY); LOWVIDEO END; {$F-} (**********************************************************) PROCEDURE COPIAR; LABEL 2,3,EMPEZAR; BEGIN EMPEZAR : CURSORX:=WHEREX; CURSORY:=WHEREY; ASSIGN(RECIBE,ORIGEN1); {$I-} RESET(RECIBE,1) {$I+}; ERRORINS:=IORESULT; IF ERRORINS=2 THEN BEGIN VERERROR:=TRUE; WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' '); GOTOXY(2,25); WRITE(' INTRODUZCA DISCO CON ',ARCHIVO,' Y PULSE CUALQUIER TECLA. ESCAPE=IGNORAR'); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); WRITELN('­NO instalado!'); TEXTCOLOR(WHITE); GOTO 3 END; IF TECLA<>#27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); GOTO EMPEZAR END END; IF (ERRORINS<>0) AND (ERRORINS=2) THEN BEGIN VERERROR:=TRUE; WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' ESCAPE=ABORTAR INSTALACION pulsa CUALQUIER TECLA para continuar '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN HALT; IF TECLA <> #27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); WRITELN('­NO instalado!'); TEXTCOLOR(WHITE); GOTO 3 END END; ASSIGN(GRABA,DESTINO1); REWRITE(GRABA,1); {$I-} BLOCKREAD(RECIBE,BUFFER,SIZEOF(BUFFER),REGISTROSLEIDOS) {$I+}; ERRORINS:=IORESULT; IF ERRORINS<>0 THEN BEGIN VERERROR:=TRUE; WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' ESCAPE=ABORTAR INSTALACION pulsa CUALQUIER TECLA para continuar '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN HALT; IF TECLA <> #27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); WRITELN('NO instalado correctamente'); TEXTCOLOR(WHITE); GOTO 3 END END; WHILE REGISTROSLEIDOS > 0 DO BEGIN {$I-} BLOCKWRITE(GRABA,BUFFER,REGISTROSLEIDOS) {$I+}; ERRORINS:=IORESULT; IF ERRORINS<>0 THEN BEGIN VERERROR:=TRUE; WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' ESCAPE=ABORTAR INSTALACION pulsa CUALQUIER TECLA para continuar '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN HALT; IF TECLA <> #27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); WRITELN('NO instalado correctamente'); TEXTCOLOR(WHITE); GOTO 2 END END; {$I-} BLOCKREAD(RECIBE,BUFFER,SIZEOF(BUFFER),REGISTROSLEIDOS) {$I+}; ERRORINS:=IORESULT; IF ERRORINS<>0 THEN BEGIN VERERROR:=TRUE; WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' ESCAPE=ABORTAR INSTALACION pulsa CUALQUIER TECLA para continuar '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN HALT; IF TECLA <> #27 THEN BEGIN GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); REHACERTROZODEFONDO; WINDOW(21,7,60,14); TEXTBACKGROUND(COLOR1); TEXTCOLOR(COLOR8); GOTOXY(CURSORX,CURSORY); WRITELN('NO instalado correctamente'); TEXTCOLOR(WHITE); GOTO 2 END END END; 2: {$I-} CLOSE(RECIBE) {$I+}; ERRORINS:=IORESULT; IF ERRORINS<>0 THEN BEGIN END; {$I-} CLOSE(GRABA) {$I+}; ERRORINS:=IORESULT; IF ERRORINS<>0 THEN BEGIN END; 3: END; (**********************************************************) BEGIN CURSORPANX:=WHEREX; CURSORPANY:=WHEREY; SALVARPANTALLA(PUNTEROPANTALLA); EXITPROC:=@ABANDONAR; COLORES; TEXTMODE(C80); TEXTBACKGROUND(COLOR2); CLRSCR; 1: HACERFONDO; VERERROR:=FALSE; ERRORNORMAL:=FALSE; ERRORCLAVE:=FALSE; REPITE:=FALSE; DIBUJARCUADRO(25,6,55,8,COLOR3,COLOR4); GOTOXY(26,7); WRITELN(' PROGRAMA DE INSTALACION '); DIBUJARCUADRO(20,10,60,20,COLOR6,COLOR5); WINDOW(21,11,60,19); WRITELN(' '); WRITELN(' EVALUACION VERSION 1.00 '); WRITELN(' '); WRITELN(' JULIO MARTINEZ JUAN '); WRITELN(' & '); WRITELN(' EMILIO SAHUQUILLO DOBON '); WRITELN(' '); WRITELN(' Valencia a 30 de Abril de 1993 '); WRITE(' '); WINDOW(1,1,80,25); GOTOXY(2,25); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WRITE(' ESCAPE=SALIR >>> PULSE CUALQUIER TECLA PARA CONTINUAR '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN HALT; HACERFONDO; TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); GOTOXY(2,25); WRITE(' ESCAPE=SALIR '); DIBUJARCUADRO(20,5,61,15,WHITE,COLOR7); WINDOW(21,6,60,14); REPEAT CLRSCR; IF REPITE=TRUE THEN BEGIN CURSOROFF; WRITE(' INTRODUZCA SOLO "A:" • "B:"'); SOUND(1000); DELAY(100); SOUND(800); DELAY(80); NOSOUND; DELAY(4000); CURSORON END; WRITELN(' '); WRITE('INTRODUZCA UNIDAD ORIGEN CON EL CONJUNTO'); WRITE(' EVALUACION 1.00 '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); GOTOXY(1,3); CURSORON; DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN BEGIN WINDOW(1,1,80,25); GOTO 1 END; IF TECLA IN [#0..#32] THEN TECLA:=#0; WRITE(TECLA); READLN(ORIGEN); IF TECLA<>#0 THEN ORIGEN:=TECLA+ORIGEN; IF ORIGEN[LENGTH(ORIGEN)]='\' THEN DELETE(ORIGEN,LENGTH(ORIGEN),1); REPITE:=TRUE; UNTIL (ORIGEN='A:') OR (ORIGEN='a:') OR (ORIGEN='B:') OR (ORIGEN='b:'); REPEAT WINDOW(21,6,60,14); CLRSCR; WRITELN(' '); WRITE(' INTRODUZCA UNIDAD Y SUBDIRECTORIO '); WRITE(' DESTINO '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); GOTOXY(1,3); CURSORON; DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN BEGIN WINDOW(1,1,80,25); GOTO 1 END; IF TECLA IN [#0..#32] THEN TECLA:=#0; WRITE(TECLA); READLN(DESTINO); IF TECLA<>#0 THEN DESTINO:=TECLA+DESTINO; IF DESTINO[LENGTH(DESTINO)]='\' THEN DELETE(DESTINO,LENGTH(DESTINO),1); CLRSCR; TEXTCOLOR(WHITE+BLINK); WRITE(' ­ REALIZANDO INSTALACION ! '); {$I-} MKDIR(DESTINO) {$I+}; ERRORINS:=IORESULT; IF NOT (ERRORINS IN [0,5]) THEN BEGIN WINDOW(1,5,80,25); CURSOROFF; ERROR(ERRORINS); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WINDOW(1,1,80,25); GOTOXY(2,25); WRITE(' ESCAPE=SALIR pulsa CUALQUIER TECLA para repetir '); DESCARGARTECLADO; TECLA:=READKEY; IF TECLA=#27 THEN BEGIN WINDOW(1,1,80,25); GOTO 1 END; HACERFONDO; DIBUJARCUADRO(20,5,61,15,WHITE,COLOR7); GOTOXY(2,25); TEXTBACKGROUND(COLOR1); TEXTCOLOR(WHITE); WRITE(' ESCAPE=SALIR ') END UNTIL (ERRORINS=0) OR (ERRORINS=5); {comenzamos la instalaci˘n} WINDOW(1,1,80,25); TEXTCOLOR(WHITE); GOTOXY(2,25); WRITE(' Ctr-INTER=ABORTAR INSTALACION '); WINDOW(21,7,60,14); CURSORON; ORIGEN1:=ORIGEN+'\LOCALIZA.EXE'; DESTINO1:=DESTINO+'\LOCALIZA.EXE'; TEXTCOLOR(WHITE); WRITELN('LOCALIZA.EXE'); ARCHIVO:='LOCALIZA.EXE'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ESPACIO1.EXE'; DESTINO1:=DESTINO+'\ESPACIO1.EXE'; TEXTCOLOR(WHITE); WRITELN('ESPACIO1.EXE'); ARCHIVO:='ESPACIO1.EXE'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\EVAL.EXE'; DESTINO1:=DESTINO+'\EVAL.EXE'; TEXTCOLOR(WHITE); WRITELN('EVAL.EXE'); ARCHIVO:='EVAL.EXE'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORCLAVE:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ATT.BGI'; DESTINO1:=DESTINO+'\ATT.BGI'; TEXTCOLOR(WHITE); WRITELN('ATT.BGI'); ARCHIVO:='ATT.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\CGA.BGI'; DESTINO1:=DESTINO+'\CGA.BGI'; TEXTCOLOR(WHITE); WRITELN('CGA.BGI'); ARCHIVO:='CGA.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\EGAVGA.BGI'; DESTINO1:=DESTINO+'\EGAVGA.BGI'; TEXTCOLOR(WHITE); WRITELN('EGAVGA.BGI'); ARCHIVO:='EGAVGA.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\HERC.BGI'; DESTINO1:=DESTINO+'\HERC.BGI'; TEXTCOLOR(WHITE); WRITELN('HERC.BGI'); ARCHIVO:='HERC.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\IBM8514.BGI'; DESTINO1:=DESTINO+'\IBM8514.BGI'; TEXTCOLOR(WHITE); WRITELN('IBM8514.BGI'); ARCHIVO:='IBM8514.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\PC3270.BGI'; DESTINO1:=DESTINO+'\PC3270.BGI'; TEXTCOLOR(WHITE); WRITELN('PC3270.BGI'); ARCHIVO:='PC3270.BGI'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\LITT.CHR'; DESTINO1:=DESTINO+'\LITT.CHR'; TEXTCOLOR(WHITE); WRITELN('LITT.CHR'); ARCHIVO:='LITT.CHR'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA1.OSC'; DESTINO1:=DESTINO+'\ONDA1.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA1.OSC'); ARCHIVO:='ONDA1.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA2.OSC'; DESTINO1:=DESTINO+'\ONDA2.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA2.OSC'); ARCHIVO:='ONDA2.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA3.OSC'; DESTINO1:=DESTINO+'\ONDA3.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA3.OSC'); ARCHIVO:='ONDA3.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA4.OSC'; DESTINO1:=DESTINO+'\ONDA4.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA4.OSC'); ARCHIVO:='ONDA4.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA5.OSC'; DESTINO1:=DESTINO+'\ONDA5.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA5.OSC'); ARCHIVO:='ONDA5.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA6.OSC'; DESTINO1:=DESTINO+'\ONDA6.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA6.OSC'); ARCHIVO:='ONDA6.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\ONDA7.OSC'; DESTINO1:=DESTINO+'\ONDA7.OSC'; TEXTCOLOR(WHITE); WRITELN('ONDA7.OSC'); ARCHIVO:='ONDA7.OSC'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\C1.TXT'; DESTINO1:=DESTINO+'\C1.TXT'; TEXTCOLOR(WHITE); WRITELN('C1.TXT'); ARCHIVO:='C1.TXT'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\C2.TXT'; DESTINO1:=DESTINO+'\C2.TXT'; TEXTCOLOR(WHITE); WRITELN('C2.TXT'); ARCHIVO:='C2.TXT'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSORON; ORIGEN1:=ORIGEN+'\C3.TXT'; DESTINO1:=DESTINO+'\C3.TXT'; TEXTCOLOR(WHITE); WRITELN('C3.TXT'); ARCHIVO:='C3.TXT'; COPIAR; IF VERERROR=TRUE THEN BEGIN ERRORNORMAL:=TRUE; VERERROR:=FALSE END; CURSOROFF; WINDOW(1,1,80,25); GOTOXY(2,25); TEXTCOLOR(WHITE); WRITE(' ESCAPE=SALIR '); WINDOW(21,6,60,14); CLRSCR; CURSOROFF; GOTOXY(1,1); WRITE(' LA INSTALACION HA SIDO TERMINADA. '); IF (ERRORNORMAL=TRUE) AND (ERRORCLAVE=FALSE) THEN BEGIN WRITE('Se han producido errores que pueden no'); WRITE('afectar al funcionamiento b sico del'); WRITE('programa. Asegurese instalando correcta-'); WRITE('mente con los ficheros necesarios segŁn'); WRITE('su tipo de ordenador. '); WRITE(' '); WRITE('>>> pulse CUALQUIER TECLA para repetir') END; IF ERRORCLAVE=TRUE THEN BEGIN WRITE('Se han producido errores que AFECTAN al'); WRITE('funcionamiento b sico del PROGRAMA. El'); WRITE('archivo EVAL.EXE no ha sido correctamen-'); WRITE('te instalado, repita la instalaci˘n. '); WRITE(' '); WRITE(' '); WRITE('>>> pulse CUALQUIER TECLA para repetir') END; IF (ERRORCLAVE=FALSE) AND (ERRORNORMAL=FALSE) THEN BEGIN WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' '); WRITE(' >>> pulse CUALQUIER TECLA') END; DESCARGARTECLADO; TECLA:=READKEY; IF (ERRORCLAVE=FALSE) AND (ERRORNORMAL=FALSE) THEN GOTO 4; IF TECLA <> #27 THEN BEGIN WINDOW(1,1,80,25); GOTO 1 END; 4: END.