UNIT VISUAL; INTERFACE PROCEDURE VISUALIZACION_DE_ONDAS; PROCEDURE REJILLA; PROCEDURE SELE1; PROCEDURE SELE2; PROCEDURE CANALES; PROCEDURE CANAL1; PROCEDURE CANAL2; PROCEDURE VOLTIOS; PROCEDURE DIBUJAR; PROCEDURE PROGRAMA (SS,RR:REAL;CANAL:INTEGER); PROCEDURE AMBOS (SS1,SS2,RR1,RR2:REAL;CAN1,CAN2:INTEGER); PROCEDURE HORIZONTALES(ESCALA:REAL); PROCEDURE VERTICALES; PROCEDURE CURSOR; PROCEDURE PRINTSCREEN; PROCEDURE DISCO(DISC:INTEGER); PROCEDURE SALVAR; PROCEDURE CARGAR; PROCEDURE MIRARPCLAB; PROCEDURE VISUALIZAR; PROCEDURE TIME; IMPLEMENTATION USES CRT,DOS,GRAPH,ERR; TYPE MATRIZ = ARRAY[0..5000] OF INTEGER; CONST BASE = $200; DATOADL = BASE+4; DATOADH = BASE+5; CANALMUX = BASE+10; REGCONTROL = BASE+11; REGDISPARO = BASE+12; MAX_NUM_DATOS = 5000; REALXMAX = 639; REALYMAX = 349; EJECUTARGRAFICOS : BOOLEAN = TRUE; PCLAB : BOOLEAN = TRUE; MAS : CHAR = #251; VAR FICHA : FILE OF MATRIZ; FICHA2 : FILE OF MATRIZ; TIRA : STRING[11]; TIRO : STRING[11]; LAFECHA : STRING; MASCARA : STRING; FILENAME : STRING[255]; VMUESTRAS : MATRIZ; BORRAR : ARRAY[0..499] OF INTEGER; VMUESTRAS1 : MATRIZ; BORRAR1 : ARRAY[0..499] OF INTEGER; VMUESTRAS2 : MATRIZ; BORRAR2 : ARRAY[0..499] OF INTEGER; REFRESCO : INTEGER; RECTA2 : INTEGER; BCUR2 : INTEGER; CUR2 : INTEGER; DEF : INTEGER; numdatos : INTEGER; CAN1 : INTEGER; CAN2 : INTEGER; CANAL : INTEGER; D : INTEGER; D1 : INTEGER; D2 : INTEGER; E : INTEGER; INCREMENTO : INTEGER; HASTA : INTEGER; RECTA : INTEGER; BCUR : INTEGER; CUR : INTEGER; OP : INTEGER; OP1 : INTEGER; OP2 : INTEGER; OP3 : INTEGER; OP4 : INTEGER; OP5 : INTEGER; OP6 : INTEGER; OP7 : INTEGER; ONDAS : INTEGER; A : INTEGER; B : INTEGER; C : INTEGER; X : INTEGER; N : INTEGER; NN : INTEGER; NNNN : INTEGER; NNN : INTEGER; J : INTEGER; WW : INTEGER; YY : INTEGER; XX : INTEGER; XXX : INTEGER; XXX1 : INTEGER; XXX2 : INTEGER; YYY : INTEGER; WWA : INTEGER; WWB : INTEGER; VVA : INTEGER; VVB : INTEGER; DRIVER : INTEGER; MODO : INTEGER; W : INTEGER; Y : INTEGER; Z : INTEGER; M : INTEGER; TT : INTEGER; VV : INTEGER; TT2 : INTEGER; VV2 : INTEGER; ERROROSC : INTEGER; DISC : INTEGER; INICIAL : INTEGER; AMARILLA : CHAR; PO : CHAR; TIEMPO : REAL; ESCALA : REAL; ESCALA1 : REAL; ESCALA2 : REAL; MEDIDA : REAL; SS : REAL; RR : REAL; SS1 : REAL; RR1 : REAL; RR2 : REAL; SS2 : REAL; DD : REAL; I : WORD; FRE : WORD; FIN_CONVERSION : BYTE; DATO_BAJO : BYTE; DATO_ALTO : BYTE; LONGITUDDEDISCO : LONGINT; (**********************************************************) {$I AYUDA.PAS} (**********************************************************) PROCEDURE REJILLA; BEGIN SETCOLOR(LIGHTRED); FOR M:=0 TO 8 DO BEGIN Y:=15; Z:=M*40; LINE(70,Y+Z,570,Y+Z) END; FOR M:=0 TO 10 DO BEGIN W:=70; Z:=50*M; LINE(W+Z,15,W+Z,335) END; FOR M:=0 TO 50 DO BEGIN SETCOLOR(YELLOW); W:=70; Z:=10*M; LINE(W+Z,93,W+Z,97); LINE(W+Z,173,W+Z,177); LINE(W+Z,253,W+Z,257) END; FOR M:=0 TO 32 DO BEGIN Z:=10*M; LINE(318,15+Z,322,15+Z) END; SETCOLOR(LIGHTRED); LINE(70,174,570,174); LINE(70,176,570,176); LINE(319,15,319,335); LINE(321,15,321,335); {dibujado de salir} SETFILLSTYLE(1,MAGENTA); SETCOLOR(WHITE); BAR(580,100,630,135); OUTTEXTXY(598,105,'F6'); OUTTEXTXY(585,120,'SALIR'); RECTANGLE(580,100,630,135); SETFILLSTYLE(1,WHITE); {dibujado de informaci¢n} SETCOLOR(BLACK); STR(ESCALA1:1:2,TIRO); SETCOLOR(LIGHTGREEN); OUTTEXTXY(100,380,TIRO); OUTTEXTXY(150,380,'VOLTS/DIV'); STR(ESCALA2:1:2,TIRO); SETCOLOR(WHITE); OUTTEXTXY(100,420,TIRO); OUTTEXTXY(150,420,'VOLTS/DIV'); STR(TIEMPO:2:2,TIRO); SETCOLOR(RED); OUTTEXTXY(310,380,TIRO); OUTTEXTXY(350,380,'ms/div') END; (**********************************************************) PROCEDURE SELE1; BEGIN SETFILLSTYLE(1,BLACK); BAR(200,448,640,460); OUTTEXTXY(0,450,'CANAL 1'); OUTTEXTXY(100,450,' 0'); OUTTEXTXY(130,450,' 1'); OUTTEXTXY(160,450,' 2'); OUTTEXTXY(190,450,' 3'); OUTTEXTXY(220,450,' 4'); OUTTEXTXY(250,450,' 5'); OUTTEXTXY(280,450,' 6'); OUTTEXTXY(310,450,' 7'); OUTTEXTXY(340,450,' 8'); OUTTEXTXY(370,450,' 9'); OUTTEXTXY(400,450,'10'); OUTTEXTXY(430,450,'11'); OUTTEXTXY(460,450,'12'); OUTTEXTXY(490,450,'13'); OUTTEXTXY(520,450,'14'); OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR(100,448,120,460); SETCOLOR(YELLOW); OUTTEXTXY(100,450,' 0'); XXX:=0; REPEAT OP4:=ORD(READKEY); IF OP4=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>15 THEN XXX:=0; SETFILLSTYLE(1,BLACK); BAR((30*YYY)+100,448,(30*YYY)+125,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(100,450,' 0'); IF YYY=1 THEN OUTTEXTXY(130,450,' 1'); IF YYY=2 THEN OUTTEXTXY(160,450,' 2'); IF YYY=3 THEN OUTTEXTXY(190,450,' 3'); IF YYY=4 THEN OUTTEXTXY(220,450,' 4'); IF YYY=5 THEN OUTTEXTXY(250,450,' 5'); IF YYY=6 THEN OUTTEXTXY(280,450,' 6'); IF YYY=7 THEN OUTTEXTXY(310,450,' 7'); IF YYY=8 THEN OUTTEXTXY(340,450,' 8'); IF YYY=9 THEN OUTTEXTXY(370,450,' 9'); IF YYY=10 THEN OUTTEXTXY(400,450,'10'); IF YYY=11 THEN OUTTEXTXY(430,450,'11'); IF YYY=12 THEN OUTTEXTXY(460,450,'12'); IF YYY=13 THEN OUTTEXTXY(490,450,'13'); IF YYY=14 THEN OUTTEXTXY(520,450,'14'); IF YYY=15 THEN OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR((30*XXX)+100,448,(30*XXX)+125,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(100,450,' 0'); IF XXX=1 THEN OUTTEXTXY(130,450,' 1'); IF XXX=2 THEN OUTTEXTXY(160,450,' 2'); IF XXX=3 THEN OUTTEXTXY(190,450,' 3'); IF XXX=4 THEN OUTTEXTXY(220,450,' 4'); IF XXX=5 THEN OUTTEXTXY(250,450,' 5'); IF XXX=6 THEN OUTTEXTXY(280,450,' 6'); IF XXX=7 THEN OUTTEXTXY(310,450,' 7'); IF XXX=8 THEN OUTTEXTXY(340,450,' 8'); IF XXX=9 THEN OUTTEXTXY(370,450,' 9'); IF XXX=10 THEN OUTTEXTXY(400,450,'10'); IF XXX=11 THEN OUTTEXTXY(430,450,'11'); IF XXX=12 THEN OUTTEXTXY(460,450,'12'); IF XXX=13 THEN OUTTEXTXY(490,450,'13'); IF XXX=14 THEN OUTTEXTXY(520,450,'14'); IF XXX=15 THEN OUTTEXTXY(550,450,'15'); C:=XXX; CAN1:=C END; IF OP4=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<0 THEN XXX:=15; SETFILLSTYLE(1,BLACK); BAR((30*YYY)+100,448,(30*YYY)+125,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(100,450,' 0'); IF YYY=1 THEN OUTTEXTXY(130,450,' 1'); IF YYY=2 THEN OUTTEXTXY(160,450,' 2'); IF YYY=3 THEN OUTTEXTXY(190,450,' 3'); IF YYY=4 THEN OUTTEXTXY(220,450,' 4'); IF YYY=5 THEN OUTTEXTXY(250,450,' 5'); IF YYY=6 THEN OUTTEXTXY(280,450,' 6'); IF YYY=7 THEN OUTTEXTXY(310,450,' 7'); IF YYY=8 THEN OUTTEXTXY(340,450,' 8'); IF YYY=9 THEN OUTTEXTXY(370,450,' 9'); IF YYY=10 THEN OUTTEXTXY(400,450,'10'); IF YYY=11 THEN OUTTEXTXY(430,450,'11'); IF YYY=12 THEN OUTTEXTXY(460,450,'12'); IF YYY=13 THEN OUTTEXTXY(490,450,'13'); IF YYY=14 THEN OUTTEXTXY(520,450,'14'); IF YYY=15 THEN OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR((30*XXX)+100,448,(30*XXX)+125,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(100,450,' 0'); IF XXX=1 THEN OUTTEXTXY(130,450,' 1'); IF XXX=2 THEN OUTTEXTXY(160,450,' 2'); IF XXX=3 THEN OUTTEXTXY(190,450,' 3'); IF XXX=4 THEN OUTTEXTXY(220,450,' 4'); IF XXX=5 THEN OUTTEXTXY(250,450,' 5'); IF XXX=6 THEN OUTTEXTXY(280,450,' 6'); IF XXX=7 THEN OUTTEXTXY(310,450,' 7'); IF XXX=8 THEN OUTTEXTXY(340,450,' 8'); IF XXX=9 THEN OUTTEXTXY(370,450,' 9'); IF XXX=10 THEN OUTTEXTXY(400,450,'10'); IF XXX=11 THEN OUTTEXTXY(430,450,'11'); IF XXX=12 THEN OUTTEXTXY(460,450,'12'); IF XXX=13 THEN OUTTEXTXY(490,450,'13'); IF XXX=14 THEN OUTTEXTXY(520,450,'14'); IF XXX=15 THEN OUTTEXTXY(550,450,'15'); C:=XXX; CAN1:=C END UNTIL (OP4=13) OR (OP4=64); IF OP4=13 THEN BEGIN C:=XXX; CAN1:=C END END; (**********************************************************) PROCEDURE SELE2; BEGIN SETFILLSTYLE(1,BLACK); BAR(200,448,640,460); OUTTEXTXY(0,450,'CANAL 2'); OUTTEXTXY(100,450,' 0'); OUTTEXTXY(130,450,' 1'); OUTTEXTXY(160,450,' 2'); OUTTEXTXY(190,450,' 3'); OUTTEXTXY(220,450,' 4'); OUTTEXTXY(250,450,' 5'); OUTTEXTXY(280,450,' 6'); OUTTEXTXY(310,450,' 7'); OUTTEXTXY(340,450,' 8'); OUTTEXTXY(370,450,' 9'); OUTTEXTXY(400,450,'10'); OUTTEXTXY(430,450,'11'); OUTTEXTXY(460,450,'12'); OUTTEXTXY(490,450,'13'); OUTTEXTXY(520,450,'14'); OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR(100,448,120,460); SETCOLOR(YELLOW); OUTTEXTXY(100,450,' 0'); XXX:=0; REPEAT OP4:=ORD(READKEY); IF OP4=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>15 THEN XXX:=0; SETFILLSTYLE(1,BLACK); BAR((30*YYY)+100,448,(30*YYY)+125,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(100,450,' 0'); IF YYY=1 THEN OUTTEXTXY(130,450,' 1'); IF YYY=2 THEN OUTTEXTXY(160,450,' 2'); IF YYY=3 THEN OUTTEXTXY(190,450,' 3'); IF YYY=4 THEN OUTTEXTXY(220,450,' 4'); IF YYY=5 THEN OUTTEXTXY(250,450,' 5'); IF YYY=6 THEN OUTTEXTXY(280,450,' 6'); IF YYY=7 THEN OUTTEXTXY(310,450,' 7'); IF YYY=8 THEN OUTTEXTXY(340,450,' 8'); IF YYY=9 THEN OUTTEXTXY(370,450,' 9'); IF YYY=10 THEN OUTTEXTXY(400,450,'10'); IF YYY=11 THEN OUTTEXTXY(430,450,'11'); IF YYY=12 THEN OUTTEXTXY(460,450,'12'); IF YYY=13 THEN OUTTEXTXY(490,450,'13'); IF YYY=14 THEN OUTTEXTXY(520,450,'14'); IF YYY=15 THEN OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR((30*XXX)+100,448,(30*XXX)+125,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(100,450,' 0'); IF XXX=1 THEN OUTTEXTXY(130,450,' 1'); IF XXX=2 THEN OUTTEXTXY(160,450,' 2'); IF XXX=3 THEN OUTTEXTXY(190,450,' 3'); IF XXX=4 THEN OUTTEXTXY(220,450,' 4'); IF XXX=5 THEN OUTTEXTXY(250,450,' 5'); IF XXX=6 THEN OUTTEXTXY(280,450,' 6'); IF XXX=7 THEN OUTTEXTXY(310,450,' 7'); IF XXX=8 THEN OUTTEXTXY(340,450,' 8'); IF XXX=9 THEN OUTTEXTXY(370,450,' 9'); IF XXX=10 THEN OUTTEXTXY(400,450,'10'); IF XXX=11 THEN OUTTEXTXY(430,450,'11'); IF XXX=12 THEN OUTTEXTXY(460,450,'12'); IF XXX=13 THEN OUTTEXTXY(490,450,'13'); IF XXX=14 THEN OUTTEXTXY(520,450,'14'); IF XXX=15 THEN OUTTEXTXY(550,450,'15'); C:=XXX; CAN2:=C END; IF OP4=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<0 THEN XXX:=15; SETFILLSTYLE(1,BLACK); BAR((30*YYY)+100,448,(30*YYY)+125,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(100,450,' 0'); IF YYY=1 THEN OUTTEXTXY(130,450,' 1'); IF YYY=2 THEN OUTTEXTXY(160,450,' 2'); IF YYY=3 THEN OUTTEXTXY(190,450,' 3'); IF YYY=4 THEN OUTTEXTXY(220,450,' 4'); IF YYY=5 THEN OUTTEXTXY(250,450,' 5'); IF YYY=6 THEN OUTTEXTXY(280,450,' 6'); IF YYY=7 THEN OUTTEXTXY(310,450,' 7'); IF YYY=8 THEN OUTTEXTXY(340,450,' 8'); IF YYY=9 THEN OUTTEXTXY(370,450,' 9'); IF YYY=10 THEN OUTTEXTXY(400,450,'10'); IF YYY=11 THEN OUTTEXTXY(430,450,'11'); IF YYY=12 THEN OUTTEXTXY(460,450,'12'); IF YYY=13 THEN OUTTEXTXY(490,450,'13'); IF YYY=14 THEN OUTTEXTXY(520,450,'14'); IF YYY=15 THEN OUTTEXTXY(550,450,'15'); SETFILLSTYLE(1,RED); BAR((30*XXX)+100,448,(30*XXX)+125,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(100,450,' 0'); IF XXX=1 THEN OUTTEXTXY(130,450,' 1'); IF XXX=2 THEN OUTTEXTXY(160,450,' 2'); IF XXX=3 THEN OUTTEXTXY(190,450,' 3'); IF XXX=4 THEN OUTTEXTXY(220,450,' 4'); IF XXX=5 THEN OUTTEXTXY(250,450,' 5'); IF XXX=6 THEN OUTTEXTXY(280,450,' 6'); IF XXX=7 THEN OUTTEXTXY(310,450,' 7'); IF XXX=8 THEN OUTTEXTXY(340,450,' 8'); IF XXX=9 THEN OUTTEXTXY(370,450,' 9'); IF XXX=10 THEN OUTTEXTXY(400,450,'10'); IF XXX=11 THEN OUTTEXTXY(430,450,'11'); IF XXX=12 THEN OUTTEXTXY(460,450,'12'); IF XXX=13 THEN OUTTEXTXY(490,450,'13'); IF XXX=14 THEN OUTTEXTXY(520,450,'14'); IF XXX=15 THEN OUTTEXTXY(550,450,'15'); C:=XXX; CAN2:=C END UNTIL (OP4=13) OR (OP4=64); IF OP4=13 THEN BEGIN C:=XXX; CAN2:=C END END; (**********************************************************) PROCEDURE CANALES; BEGIN REPEAT SETFILLSTYLE(1,BLACK); BAR(0,460,640,468); BAR(0,448,640,460); OUTTEXTXY(200,450,'SELECCION:'); OUTTEXTXY(300,450,'CANAL '); OUTTEXTXY(400,450,'CANAL '); OUTTEXTXY(500,450,' ALIR'); SETFILLSTYLE(1,RED); BAR(300,448,375,460); SETCOLOR(YELLOW); OUTTEXTXY(300,450,'CANAL 1'); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S'); SETCOLOR(YELLOW); XXX:=3; OP:=3; REPEAT OP3:=ORD(READKEY); IF OP3=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>5 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'CANAL '); IF YYY=4 THEN OUTTEXTXY(400,450,'CANAL '); IF YYY=5 THEN OUTTEXTXY(500,450,' ALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'CANAL '); IF XXX=4 THEN OUTTEXTXY(400,450,'CANAL '); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S'); SETCOLOR(YELLOW) END; IF OP3=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<3 THEN XXX:=5; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'CANAL 1'); IF YYY=4 THEN OUTTEXTXY(400,450,'CANAL 2'); IF YYY=5 THEN OUTTEXTXY(500,450,' SALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'CANAL '); IF XXX=4 THEN OUTTEXTXY(400,450,'CANAL '); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S'); SETCOLOR(YELLOW) END UNTIL (OP3=13) OR (OP3=64) OR (OP3=49) OR (OP3=50) OR (OP3=115) OR (OP3=83); IF (OP3=13) OR (OP3=49) OR (OP3=50) THEN BEGIN IF ((XXX=3) AND (OP3=13)) OR (OP3=49) THEN SELE1; IF ((XXX=4) AND (OP3=13)) OR (OP3=50) THEN SELE2 END UNTIL ((XXX=5) AND (OP3=13)) OR (OP3=64) OR (OP3=115) OR (OP3=83) END; (**********************************************************) PROCEDURE CANAL1; BEGIN SETFILLSTYLE(1,BLACK); BAR(200,448,640,460); SETCOLOR(YELLOW); OUTTEXTXY(200,450,'CANAL 1'); OUTTEXTXY(300,450,'2.5 V/div'); OUTTEXTXY(400,450,'1 V/div'); OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR(300,448,375,460); SETCOLOR(YELLOW); OUTTEXTXY(300,450,'2.5 V/div'); XXX:=3; REPEAT OP2:=ORD(READKEY); IF OP2=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>5 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF YYY=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF YYY=5 THEN OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF XXX=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF XXX=5 THEN OUTTEXTXY(500,450,'0.25 V/div') END; IF OP2=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<3 THEN XXX:=5; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF YYY=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF YYY=5 THEN OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF XXX=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF XXX=5 THEN OUTTEXTXY(500,450,'0.25 V/div') END UNTIL (OP2=13) OR (OP2=64); IF OP2=13 THEN BEGIN IF XXX=3 THEN BEGIN SS1:=12.8; RR1:=0; TT:=20; VV:=10; ESCALA1:=2.5 END; IF XXX=4 THEN BEGIN SS1:=5.12; RR1:=240; TT:=8; VV:=4; ESCALA1:=1 END; IF XXX=5 THEN BEGIN SS1:=1.28; RR1:=1440; TT:=2; VV:=1; ESCALA1:=0.25 END; XXX1:=XXX END END; (**********************************************************) PROCEDURE CANAL2; BEGIN SETFILLSTYLE(1,BLACK); BAR(200,448,640,460); SETCOLOR(YELLOW); OUTTEXTXY(200,450,'CANAL 2'); OUTTEXTXY(300,450,'2.5 V/div'); OUTTEXTXY(400,450,'1 V/div'); OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR(300,448,375,460); SETCOLOR(YELLOW); OUTTEXTXY(300,450,'2.5 V/div'); XXX:=3; REPEAT OP2:=ORD(READKEY); IF OP2=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>5 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF YYY=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF YYY=5 THEN OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF XXX=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF XXX=5 THEN OUTTEXTXY(500,450,'0.25 V/div') END; IF OP2=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<3 THEN XXX:=5; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF YYY=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF YYY=5 THEN OUTTEXTXY(500,450,'0.25 V/div'); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'2.5 V/div'); IF XXX=4 THEN OUTTEXTXY(400,450,'1 V/div'); IF XXX=5 THEN OUTTEXTXY(500,450,'0.25 V/div') END UNTIL (OP2=13) OR (OP2=64); IF OP2=13 THEN BEGIN IF XXX=3 THEN BEGIN SS2:=12.8; RR2:=0; TT:=20; VV:=10; ESCALA2:=2.5 END; IF XXX=4 THEN BEGIN SS2:=5.12; RR2:=240; TT:=8; VV:=4; ESCALA2:=1 END; IF XXX=5 THEN BEGIN SS2:=1.28; RR2:=1440; TT:=2; VV:=1; ESCALA2:=0.25 END; XXX2:=XXX END END; (**********************************************************) PROCEDURE VOLTIOS; BEGIN WWA:=25; VVA:=390; WWB:=75; VVB:=390; REPEAT SETFILLSTYLE(1,BLACK); BAR(200,448,640,460); SETCOLOR(YELLOW); OUTTEXTXY(300,450,'CANAL '); OUTTEXTXY(400,450,'CANAL '); OUTTEXTXY(500,450,' ALIR'); SETFILLSTYLE(1,RED); BAR(300,448,355,460); SETCOLOR(YELLOW); OUTTEXTXY(300,450,'CANAL '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S'); XXX:=3; OP:=0; REPEAT OP1:=ORD(READKEY); IF OP1=77 THEN BEGIN YYY:=XXX; XXX:=XXX+1; IF XXX>5 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+55,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'CANAL '); IF YYY=4 THEN OUTTEXTXY(400,450,'CANAL '); IF YYY=5 THEN OUTTEXTXY(500,450,' ALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+55,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'CANAL '); IF XXX=4 THEN OUTTEXTXY(400,450,'CANAL '); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S') END; IF OP1=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<3 THEN XXX:=5; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+55,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,'CANAL '); IF YYY=4 THEN OUTTEXTXY(400,450,'CANAL '); IF YYY=5 THEN OUTTEXTXY(500,450,' ALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+55,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,'CANAL '); IF XXX=4 THEN OUTTEXTXY(400,450,'CANAL '); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' 1'); OUTTEXTXY(400,450,' 2'); OUTTEXTXY(500,450,' S') END UNTIL (OP1=13) OR (OP1=64) OR (OP1=49) OR (OP1=50) OR (OP1=115) OR (OP1=83); IF (OP1=13) OR (OP1=49) OR (OP1=50) THEN BEGIN IF ((XXX=3) AND (OP1=13)) OR (OP1=49) THEN CANAL1; IF ((XXX=4) AND (OP1=13)) OR (OP1=50) THEN CANAL2 END UNTIL ((XXX=5) AND (OP1=13)) OR (OP1=64) OR (OP1=115) OR (OP1=83); SETFILLSTYLE(1,BLACK); BAR(100,375,150,385); BAR(100,415,150,425); STR(ESCALA1:1:2,TIRO); SETCOLOR(LIGHTGREEN); OUTTEXTXY(100,380,TIRO); OUTTEXTXY(150,380,'VOLTS/DIV'); STR(ESCALA2:1:2,TIRO); SETCOLOR(WHITE); OUTTEXTXY(100,420,TIRO); OUTTEXTXY(150,420,'VOLTS/DIV') END; (**********************************************************) PROCEDURE DIBUJAR; BEGIN N:=0; DEF:=0; REPEAT X:=70; C:=X+N; D:=VMUESTRAS[DEF]; PUTPIXEL(C,D,LIGHTGREEN); PUTPIXEL(C+INCREMENTO,BORRAR[DEF],BLACK); DEF:=DEF+1; N:=N+INCREMENTO UNTIL N=HASTA END; (**********************************************************) PROCEDURE PROGRAMA (SS,RR:REAL;CANAL:INTEGER); VAR F:BYTE; BEGIN PORT[REGCONTROL]:=0; PORT[CANALMUX]:=CANAL; PORT[REGCONTROL]:=1; FOR I:=0 TO 500 DO BEGIN PORT[REGDISPARO]:=0; REPEAT FIN_CONVERSION:=PORT[DATOADH]; UNTIL FIN_CONVERSION<=$F; DATO_BAJO:=PORT[DATOADL]; DATO_ALTO:=PORT[DATOADH] MOD 16; A:=DATO_ALTO*256+DATO_BAJO; B:=335-ROUND((A / SS)-RR); BORRAR[I]:=VMUESTRAS[I+1]; VMUESTRAS[I]:=B END; DIBUJAR {UNTIL KEYPRESSED; PORT[REGCONTROL]:=0;} END; (**********************************************************) PROCEDURE AMBOS (SS1,SS2,RR1,RR2:REAL;CAN1,CAN2:INTEGER); VAR F:BYTE; BEGIN REPEAT REJILLA; FOR NN:=0 TO 10 DO BEGIN FOR NNNN:=1 TO 2 DO BEGIN IF NNNN=1 THEN BEGIN SS:=SS1; RR:=RR1; CANAL:=CAN1; PORT[REGCONTROL]:=0; PORT[CANALMUX]:=CANAL; PORT[REGCONTROL]:=1; FOR I:=0 TO 500 DO BEGIN PORT[REGDISPARO]:=0; REPEAT FIN_CONVERSION:=PORT[DATOADH]; UNTIL FIN_CONVERSION<=$F; DATO_BAJO:=PORT[DATOADL]; DATO_ALTO:=PORT[DATOADH] MOD 16; A:=DATO_ALTO*256+DATO_BAJO; B:=335-ROUND((A / SS)-RR); BORRAR1[I]:=VMUESTRAS1[I+1]; VMUESTRAS1[I]:=B END END; IF NNNN=2 THEN BEGIN SS:=SS2; RR:=RR2; CANAL:=CAN2; PORT[REGCONTROL]:=0; PORT[CANALMUX]:=CANAL; PORT[REGCONTROL]:=1; FOR I:=0 TO 500 DO BEGIN PORT[REGDISPARO]:=0; REPEAT FIN_CONVERSION:=PORT[DATOADH]; UNTIL FIN_CONVERSION<=$F; DATO_BAJO:=PORT[DATOADL]; DATO_ALTO:=PORT[DATOADH] MOD 16; A:=DATO_ALTO*256+DATO_BAJO; B:=335-ROUND((A / SS)-RR); BORRAR2[I]:=VMUESTRAS2[I+1]; VMUESTRAS2[I]:=B END END; DEF:=0; N:=0; REPEAT X:=70; C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); PUTPIXEL(C+INCREMENTO,BORRAR1[DEF],BLACK); PUTPIXEL(C+INCREMENTO,BORRAR2[DEF],BLACK); DEF:=DEF+1; N:=N+INCREMENTO UNTIL N=HASTA END END UNTIL KEYPRESSED; PORT[REGCONTROL]:=0 END; (**********************************************************) PROCEDURE HORIZONTALES(ESCALA:REAL); BEGIN SETCOLOR(BLACK); LINE(70,CUR,570,CUR); LINE(70,CUR2,570,CUR2); CUR:=175; CUR2:=175; SETCOLOR(MAGENTA); LINE(70,CUR,570,CUR); REPEAT RECTA:=ORD(READKEY); IF RECTA=72 THEN BEGIN BCUR:=CUR;CUR:=CUR-1; IF CUR<15 THEN CUR :=335; SETCOLOR(BLACK); LINE(70,BCUR,570,BCUR); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR,570,CUR) END; IF RECTA=80 THEN BEGIN BCUR:=CUR;CUR:=CUR+1; IF CUR>335 THEN CUR :=15; SETCOLOR(BLACK); LINE(70,BCUR,570,BCUR); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR,570,CUR) END; IF RECTA=75 THEN BEGIN BCUR:=CUR;CUR:=CUR+20; IF CUR>335 THEN CUR :=15; SETCOLOR(BLACK); LINE(70,BCUR,570,BCUR); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR,570,CUR) END; IF RECTA=77 THEN BEGIN BCUR:=CUR;CUR:=CUR-20; IF CUR<15 THEN CUR :=335; SETCOLOR(BLACK); LINE(70,BCUR,570,BCUR); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR,570,CUR) END UNTIL RECTA=13; SETCOLOR(MAGENTA); LINE(70,CUR2,570,CUR2); REPEAT RECTA2:=ORD(READKEY); IF RECTA2=72 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2-1; IF CUR2<15 THEN CUR2 :=335; SETCOLOR(BLACK); LINE(70,BCUR2,570,BCUR2); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR2,570,CUR2); LINE(70,CUR,570,CUR) END; IF RECTA2=80 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2+1; IF CUR2>335 THEN CUR2 :=15; SETCOLOR(BLACK); LINE(70,BCUR2,570,BCUR2); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR2,570,CUR2); LINE(70,CUR,570,CUR) END; IF RECTA2=75 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2+20; IF CUR2>335 THEN CUR2 :=15; SETCOLOR(BLACK); LINE(70,BCUR2,570,BCUR2); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR2,570,CUR2); LINE(70,CUR,570,CUR) END; IF RECTA2=77 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2-20; IF CUR2<15 THEN CUR2 :=335; SETCOLOR(BLACK); LINE(70,BCUR2,570,BCUR2); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(MAGENTA); LINE(70,CUR2,570,CUR2); LINE(70,CUR,570,CUR) END UNTIL RECTA2=13; IF DISC=0 THEN BEGIN ESCALA:=0 END; IF DISC=1 THEN BEGIN ESCALA:=ESCALA1 END; IF DISC=2 THEN BEGIN REPEAT SETCOLOR(WHITE); OUTTEXTXY(100,350,'¨QUE ONDA QUIERES MEDIR: VERDE o BLANCA? (V/B)'); DESCARGARTECLADO; AMARILLA:=READKEY; SETFILLSTYLE(1,BLACK); BAR(100,345,640,357) UNTIL (AMARILLA='V') OR (AMARILLA='B') OR (AMARILLA='v') OR (AMARILLA='b'); IF (AMARILLA='V') OR (AMARILLA='v') THEN ESCALA:=ESCALA1; IF (AMARILLA='B') OR (AMARILLA='b') THEN ESCALA:=ESCALA2 END; IF DISC=3 THEN BEGIN ESCALA:=ESCALA2 END; IF CUR>CUR2 THEN BEGIN MEDIDA:=(ESCALA/40)*(CUR2-CUR); SETFILLSTYLE(1,BLACK); BAR(0,395,449,407); STR(MEDIDA:5:4,TIRA); SETCOLOR(MAGENTA); OUTTEXTXY(235,400,TIRA); OUTTEXTXY(300,400,'VOLTS') END; IF CUR570 THEN CUR :=70; SETCOLOR(BLACK); LINE(BCUR,15,BCUR,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR,15,CUR,335) END; IF RECTA=72 THEN BEGIN BCUR:=CUR;CUR:=CUR+25; IF CUR>570 THEN CUR :=70; SETCOLOR(BLACK); LINE(BCUR,15,BCUR,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR,15,CUR,335) END; IF RECTA=80 THEN BEGIN BCUR:=CUR;CUR:=CUR-25; IF CUR<70 THEN CUR :=570; SETCOLOR(BLACK); LINE(BCUR,15,BCUR,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR,15,CUR,335) END UNTIL RECTA=13; SETCOLOR(BROWN); LINE(CUR2,15,CUR2,335); REPEAT RECTA2:=ORD(READKEY); IF RECTA2=75 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2-1; IF CUR2<70 THEN CUR2 :=570; SETCOLOR(BLACK); LINE(BCUR2,15,BCUR2,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR2,15,CUR2,335); LINE(CUR,15,CUR,335) END; IF RECTA2=77 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2+1; IF CUR2>570 THEN CUR2 :=70; SETCOLOR(BLACK); LINE(BCUR2,15,BCUR2,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR2,15,CUR2,335); LINE(CUR,15,CUR,335) END; IF RECTA2=72 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2+25; IF CUR2>570 THEN CUR2 :=70; SETCOLOR(BLACK); LINE(BCUR2,15,BCUR2,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR2,15,CUR2,335); LINE(CUR,15,CUR,335) END; IF RECTA2=80 THEN BEGIN BCUR2:=CUR2;CUR2:=CUR2-25; IF CUR2<70 THEN CUR2 :=570; SETCOLOR(BLACK); LINE(BCUR2,15,BCUR2,335); REJILLA; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; SETCOLOR(BROWN); LINE(CUR2,15,CUR2,335); LINE(CUR,15,CUR,335) END UNTIL RECTA2=13; IF CUR>CUR2 THEN BEGIN MEDIDA:=1/((TIEMPO/50)*(CUR2-CUR)); SETFILLSTYLE(1,BLACK); BAR(450,395,640,407); STR(MEDIDA:5:4,TIRA); SETCOLOR(BROWN); OUTTEXTXY(450,400,TIRA); OUTTEXTXY(515,400,'KHz') END; IF CUR5 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,' ENSION '); IF YYY=4 THEN OUTTEXTXY(400,450,' RECUENCIA'); IF YYY=5 THEN OUTTEXTXY(500,450,' ALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,' ENSION '); IF XXX=4 THEN OUTTEXTXY(400,450,' RECUENCIA'); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' T'); OUTTEXTXY(400,450,'F'); OUTTEXTXY(500,450,' S') END; IF OP1=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<3 THEN XXX:=5; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-4,448,(100*YYY)+80,460); SETCOLOR(YELLOW); IF YYY=3 THEN OUTTEXTXY(300,450,' ENSION '); IF YYY=4 THEN OUTTEXTXY(400,450,' RECUENCIA'); IF YYY=5 THEN OUTTEXTXY(500,450,' ALIR '); SETFILLSTYLE(1,RED); BAR((100*XXX)-4,448,(100*XXX)+80,460); SETCOLOR(YELLOW); IF XXX=3 THEN OUTTEXTXY(300,450,' ENSION '); IF XXX=4 THEN OUTTEXTXY(400,450,' RECUENCIA'); IF XXX=5 THEN OUTTEXTXY(500,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(300,450,' T'); OUTTEXTXY(400,450,'F'); OUTTEXTXY(500,450,' S') END UNTIL (OP1=13) OR (OP1=64) OR (OP1=116) OR (OP1=84) OR (OP1=102) OR (OP1=70) OR (OP1=115) OR (OP1=83); IF (OP1=13) OR (OP1=116) OR (OP1=84) OR (OP1=102) OR (OP1=70) THEN BEGIN IF ((XXX=3) AND (OP1=13)) OR (OP1=116) OR (OP1=84) THEN BEGIN HORIZONTALES(ESCALA) END; IF ((XXX=4) AND (OP1=13)) OR (OP1=102) OR (OP1=70) THEN BEGIN VERTICALES END END UNTIL ((XXX=5) AND (OP1=13)) OR (OP1=64) OR (OP1=115) OR (OP1=83) END; (**********************************************************) PROCEDURE PRINTSCREEN; VAR REG:REGISTERS; BEGIN SETFILLSTYLE(1,BLACK); BAR(580,100,630,135); {borrado de salir} BAR(70,340,570,470); {borrado del resto} SETCOLOR(WHITE); OUTTEXTXY(80,345,'GRAFICA : EVALUACION VERSION 1.00'); OUTTEXTXY(80,360,'Emilio Sahuquillo & Julio Martinez'); OBTENERFECHA(LAFECHA); OUTTEXTXY(80,375,LAFECHA); OUTTEXTXY(80,390,'TEMPERATURA AMBIENTE : 27§ C'); STR(ESCALA1:1:2,TIRO); OUTTEXTXY(80,405,'CANAL1 : VOLT/DIV'); OUTTEXTXY(160,405,TIRO); STR(ESCALA2:1:2,TIRO); OUTTEXTXY(80,420,'CANAL2 : VOLT/DIV'); OUTTEXTXY(160,420,TIRO); STR(TIEMPO:2:2,TIRO); OUTTEXTXY(280,415,'TIEMPO : mSEG/DIV'); OUTTEXTXY(350,415,TIRO); OUTTEXTXY(500,345,'TIEMPOS'); SETTEXTSTYLE(0,1,0); OUTTEXTXY(60,30,'TENSIONES'); SETTEXTSTYLE(0,0,1); {ejecutamos la primera vez graphics del MS-Dos} IF EJECUTARGRAFICOS=TRUE THEN BEGIN SWAPVECTORS; EXEC('GRAPHICS.COM',''); SWAPVECTORS; EJECUTARGRAFICOS:=FALSE END; {llamamos a la interrupci¢n del bios para imprimir} REG.AH:=9; INTR($5,REG); {borramos y dibujamos salir} BAR(70,340,570,470); BAR(50,25,65,120); BAR(490,340,550,350); SETFILLSTYLE(1,MAGENTA); SETCOLOR(WHITE); BAR(580,100,630,135); OUTTEXTXY(598,105,'F6'); OUTTEXTXY(585,120,'SALIR'); RECTANGLE(580,100,630,135) END; (**********************************************************) PROCEDURE DISCO(DISC:INTEGER); LABEL SALIMOS,SALIMOS2,SALIMOS3; BEGIN IF (DISC=1) OR (DISC=3) THEN BEGIN RESTORECRTMODE; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT CURSORON; MAS:=#251; WINDOW(1,1,80,25); CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); GOTOXY(3,2); TEXTCOLOR(YELLOW); WRITELN('NOMBRE DEL FICHERO : '); RAYA_HORIZONTAL(2,79,3,WHITE); TEXTBACKGROUND(LIGHTBLUE); TEXTCOLOR(YELLOW); WINDOW(3,4,78,5); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; WINDOW(3,4,78,24); ASSIGN(FICHA,FILENAME); {$I-} REWRITE(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} WRITE(FICHA,VMUESTRAS) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; SALIMOS : MODO:=2; SETGRAPHMODE(MODO) END; IF DISC=2 THEN BEGIN RESTORECRTMODE; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT CURSORON; WINDOW(1,1,80,25); MAS:=#251; CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); GOTOXY(3,2); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITELN('NOMBRE DEL FICHERO PARA ONDA 1'); RAYA_HORIZONTAL(2,79,3,WHITE); TEXTCOLOR(YELLOW); WINDOW(3,4,78,5); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; WINDOW(3,4,78,24); ASSIGN(FICHA,FILENAME); {$I-} REWRITE(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS2; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} WRITE(FICHA,VMUESTRAS1) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS2; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS2; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; SALIMOS2 : RESTORECRTMODE; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT CURSORON; WINDOW(1,1,80,25); CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); TEXTBACKGROUND(LIGHTBLUE); TEXTCOLOR(YELLOW); GOTOXY(3,2); WRITELN('NOMBRE DEL FICHERO PARA ONDA 2 : '); RAYA_HORIZONTAL(2,79,3,WHITE); TEXTCOLOR(YELLOW); WINDOW(3,4,78,5); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; WINDOW(3,4,78,24); ASSIGN(FICHA2,FILENAME); {$I-} REWRITE(FICHA2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS3; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} WRITE(FICHA2,VMUESTRAS2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS3; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(18,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS3; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; SALIMOS3 : MODO:=2; SETGRAPHMODE(MODO); MAS:=#251 END; IF (DISC=1) OR (DISC=3) THEN DIBUJAR; IF DISC=2 THEN BEGIN DEF:=0;N:=0; REPEAT X:=70;C:=X+N; D1:=VMUESTRAS1[DEF]; D2:=VMUESTRAS2[DEF]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE); DEF:=DEF+1;N:=N+INCREMENTO UNTIL N=HASTA END; END; (**********************************************************) PROCEDURE SALVAR; BEGIN SETFILLSTYLE(1,RED); BAR(150,448,220,460); REPEAT SETCOLOR(YELLOW); OUTTEXTXY(150,450,' MPRESORA'); OUTTEXTXY(300,450,' ISCO '); OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'I'); OUTTEXTXY(300,450,' D'); OUTTEXTXY(450,450,' S'); XXX:=1; OP:=0; REPEAT OP6:=ORD(READKEY); IF OP6=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>3 THEN XXX:=1; SETFILLSTYLE(1,BLACK); BAR((150*YYY)-5,448,(150*YYY)+75,460); SETCOLOR(YELLOW); IF YYY=1 THEN OUTTEXTXY(150,450,' MPRESORA'); IF YYY=2 THEN OUTTEXTXY(300,450,' ISCO '); IF YYY=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'I'); OUTTEXTXY(300,450,' D'); OUTTEXTXY(450,450,' S'); SETFILLSTYLE(1,RED); BAR((150*XXX)-5,448,(150*XXX)+75,460); SETCOLOR(YELLOW); IF XXX=1 THEN OUTTEXTXY(150,450,' MPRESORA'); IF XXX=2 THEN OUTTEXTXY(300,450,' ISCO '); IF XXX=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'I'); OUTTEXTXY(300,450,' D'); OUTTEXTXY(450,450,' S') END; IF OP6=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<1 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((150*YYY)-5,448,(150*YYY)+75,460); SETCOLOR(YELLOW); IF YYY=1 THEN OUTTEXTXY(150,450,' MPRESORA'); IF YYY=2 THEN OUTTEXTXY(300,450,' ISCO '); IF YYY=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'I'); OUTTEXTXY(300,450,' D'); OUTTEXTXY(450,450,' S'); SETFILLSTYLE(1,RED); BAR((150*XXX)-5,448,(150*XXX)+75,460); SETCOLOR(YELLOW); IF XXX=1 THEN OUTTEXTXY(150,450,' MPRESORA'); IF XXX=2 THEN OUTTEXTXY(300,450,' ISCO '); IF XXX=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'I'); OUTTEXTXY(300,450,' D'); OUTTEXTXY(450,450,' S') END UNTIL (OP6=13) OR (OP6=64) OR (OP6=105) OR (OP6=73) OR (OP6=100) OR (OP6=68) OR (OP6=115) OR (OP6=83); IF (OP6=13) OR (OP6=105) OR (OP6=73) OR (OP6=100) OR (OP6=68) OR (OP6=115) OR (OP6=83) THEN BEGIN IF ((XXX=1) AND (OP6=13)) OR (OP6=105) OR (OP6=73) THEN BEGIN PRINTSCREEN; SETFILLSTYLE(1,RED); BAR(150,448,220,460); SETCOLOR(BLACK); STR(ESCALA1:1:2,TIRO); SETCOLOR(LIGHTGREEN); OUTTEXTXY(100,380,TIRO); OUTTEXTXY(150,380,'VOLTS/DIV'); STR(ESCALA2:1:2,TIRO); SETCOLOR(WHITE); OUTTEXTXY(100,420,TIRO); OUTTEXTXY(150,420,'VOLTS/DIV'); STR(TIEMPO:2:2,TIRO); SETCOLOR(RED); OUTTEXTXY(310,380,TIRO); OUTTEXTXY(350,380,'ms/div') END; IF ((XXX=2) AND (OP6=13)) OR (OP6=100) OR (OP6=68) THEN BEGIN DISCO(DISC); SETFILLSTYLE(1,BLACK); BAR(145,440,430,465); REJILLA; SETFILLSTYLE(1,RED); BAR(150,448,220,460) END END UNTIL (XXX=3) OR (OP6=64) OR (OP6=115) OR (OP6=83) END; (**********************************************************) PROCEDURE CARGAR; LABEL SALIMOS4,SALIMOS5; BEGIN RESTORECRTMODE; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT REPEAT WINDOW(1,1,80,25); CLRSCR; CURSORON; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(3,2); WRITELN('¨ CUANTAS ONDAS CONTIENE SU ARCHIVO (1 ¢ 2) ?'); RAYA_HORIZONTAL(2,79,3,WHITE); DESCARGARTECLADO; WINDOW(3,4,78,5); TEXTCOLOR(YELLOW); {$I-} READLN(ONDAS) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); GOTOXY(33,24); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITE('>>> pulsa CUALQUIER TECLA para repetir'); DESCARGARTECLADO; MAS:=READKEY END UNTIL ERROROSC=0; IF (ONDAS<>1) AND (ONDAS<>2) THEN BEGIN SOUND(1000); DELAY(100); NOSOUND END UNTIL ONDAS IN [1,2]; WINDOW(1,1,80,25); IF ONDAS=1 THEN BEGIN MAS:=#251; DISC:=1; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT CURSORON; WINDOW(1,1,80,25); CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); GOTOXY(3,2); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITELN('NOMBRE DEL FICHERO : '); RAYA_HORIZONTAL(2,79,3,WHITE); WINDOW(3,4,78,5); TEXTCOLOR(YELLOW); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; WINDOW(3,4,78,24); ASSIGN(FICHA,FILENAME); {$I-} RESET(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS4; END; UNTIL ERROROSC=0; {comprobamos la longitud del fichero por sus componentes} LONGITUDDEDISCO:=FILESIZE(FICHA); IF LONGITUDDEDISCO<>1 THEN BEGIN MAS:=#27; WINDOW(1,1,80,25); CURSOROFF; ERROR(32762); DELAY(8000); DISC:=0; GOTO SALIMOS4 END; REPEAT {$I-} READ(FICHA,VMUESTRAS) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS4; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('>>> pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS4; WINDOW(5,10,76,24); CLRSCR END UNTIL ERROROSC=0; MODO:=2; SETGRAPHMODE(MODO); REJILLA; DIBUJAR; SALIMOS4 : IF MAS=#27 THEN BEGIN MAS:=#251; DISC:=0; MODO:=2; SETGRAPHMODE(MODO); REJILLA END END; IF ONDAS=2 THEN BEGIN RESTORECRTMODE; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; MAS:=#251; DISC:=2; REPEAT CURSORON; WINDOW(1,1,80,25); CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); GOTOXY(3,2); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); WRITELN('NOMBRE DEL FICHERO DE ONDA 1 :'); RAYA_HORIZONTAL(2,79,3,WHITE); WINDOW(3,4,78,5); TEXTCOLOR(YELLOW); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; ASSIGN(FICHA,FILENAME); {$I-} RESET(FICHA) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; {comprobamos la longitud del fichero por sus componentes} LONGITUDDEDISCO:=FILESIZE(FICHA); IF LONGITUDDEDISCO<>1 THEN BEGIN MAS:=#27; WINDOW(1,1,80,25); ERROR(32762); DELAY(8000); GOTO SALIMOS5 END; REPEAT {$I-} READ(FICHA,VMUESTRAS1) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA) {$I+}; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; WINDOW(1,1,80,25); TEXTBACKGROUND(LIGHTBLUE); CLRSCR; REPEAT CURSORON; WINDOW(1,1,80,25); CLRSCR; DIBUJARCUADRO(2,1,79,25,WHITE,LIGHTBLUE); TEXTBACKGROUND(LIGHTBLUE); RAYA_HORIZONTAL(2,79,3,WHITE); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(3,2); WRITELN('NOMBRE DEL FICHERO DE ONDA 2 : '); WINDOW(3,4,78,5); REPEAT READLN(FILENAME); UNTIL FILENAME<>''; ASSIGN(FICHA2,FILENAME); {$I-} RESET(FICHA2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; {comprobamos la longitud del fichero por sus componentes} LONGITUDDEDISCO:=FILESIZE(FICHA2); IF LONGITUDDEDISCO<>1 THEN BEGIN CURSOROFF; MAS:=#27; WINDOW(1,1,80,25); ERROR(32762); DELAY(8000); GOTO SALIMOS5 END; REPEAT {$I-} READ(FICHA2,VMUESTRAS2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; REPEAT {$I-} CLOSE(FICHA2) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN BEGIN CURSOROFF; WINDOW(1,1,80,25); ERROR(ERROROSC); TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTBLUE); GOTOXY(18,24); WRITE('pulsa CUALQUIER TECLA para repetir, ESCAPE salir'); DESCARGARTECLADO; MAS:=READKEY; IF MAS=#27 THEN GOTO SALIMOS5; WINDOW(5,10,78,24); CLRSCR END UNTIL ERROROSC=0; MODO:=2; SETGRAPHMODE(MODO); REJILLA; FOR N:=0 TO 500 DO BEGIN X:=70;C:=X+N; D1:=VMUESTRAS1[N]; D2:=VMUESTRAS2[N]; PUTPIXEL(C,D1,LIGHTGREEN); PUTPIXEL(C,D2,WHITE) END; SALIMOS5 : IF MAS=#27 THEN BEGIN MAS:=#251; DISC:=0; MODO:=2; SETGRAPHMODE(MODO); REJILLA END END END; (**********************************************************) PROCEDURE MIRARPCLAB; LABEL TERMINA; VAR PUNTO : POINTER; CTDOR : INTEGER; BEGIN CTDOR:=0; PORT[REGCONTROL]:=1; PORT[REGDISPARO]:=0; REPEAT FIN_CONVERSION:=PORT[DATOADH]; CTDOR:=CTDOR+1; IF CTDOR>=10000 THEN FIN_CONVERSION:=$F; UNTIL FIN_CONVERSION<=$F; IF CTDOR=10000 THEN BEGIN {$I-} GETMEM(PUNTO,IMAGESIZE(150,200,490,280)) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN GOTO TERMINA; {$I-} GETIMAGE(150,200,490,280,PUNTO^) {$I+}; ERROROSC:=IORESULT; IF ERROROSC<>0 THEN GOTO TERMINA; SETFILLSTYLE(1,RED); BAR(150,200,490,280); SETCOLOR(YELLOW); SETLINESTYLE(0,1,3); RECTANGLE(160,210,480,270); SETLINESTYLE(0,0,1); OUTTEXTXY(200,225,' NO LLEGAN DATOS AL PUERTO'); OUTTEXTXY(200,245,'POSIBLEMENTE PCLAB NO CONECTADA'); WRITELN(^g); DELAY(8000); PUTIMAGE(150,200,PUNTO^,COPYPUT); TERMINA : PCLAB:=FALSE END ELSE PCLAB:=TRUE END; (**********************************************************) PROCEDURE VISUALIZAR; LABEL SINPCLAB,SINPCLAB1,SINPCLAB2; BEGIN REPEAT SETFILLSTYLE(1,BLACK); BAR(0,448,640,473); SETCOLOR(YELLOW); OUTTEXTXY(0,450,'CANAL '); OUTTEXTXY(100,450,'CANAL '); OUTTEXTXY(200,450,' MBOS'); OUTTEXTXY(300,450,' ALVAR'); OUTTEXTXY(400,450,' ARGAR'); OUTTEXTXY(500,450,'C RSOR'); OUTTEXTXY(600,450,'SA IR'); SETFILLSTYLE(1,RED); BAR(0,448,55,460); SETCOLOR(YELLOW); OUTTEXTXY(0,450,'CANAL '); SETCOLOR(3); {azul claro} OUTTEXTXY(0,450,' 1'); OUTTEXTXY(100,450,' 2'); OUTTEXTXY(200,450,'A'); OUTTEXTXY(300,450,'S'); OUTTEXTXY(400,450,'C'); OUTTEXTXY(500,450,' U'); OUTTEXTXY(600,450,' L'); XXX:=0; OP:=0; REPEAT OP5:=ORD(READKEY); IF OP5=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>6 THEN XXX:=0; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-5,448,(100*YYY)+55,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(0,450,'CANAL '); IF YYY=1 THEN OUTTEXTXY(100,450,'CANAL '); IF YYY=2 THEN OUTTEXTXY(200,450,' MBOS'); IF YYY=3 THEN OUTTEXTXY(300,450,' ALVAR'); IF YYY=4 THEN OUTTEXTXY(400,450,' ARGAR'); IF YYY=5 THEN OUTTEXTXY(500,450,'C RSOR'); IF YYY=6 THEN OUTTEXTXY(600,450,'SA IR'); SETFILLSTYLE(1,RED); BAR((100*XXX)-5,448,(100*XXX)+55,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(0,450,'CANAL '); IF XXX=1 THEN OUTTEXTXY(100,450,'CANAL '); IF XXX=2 THEN OUTTEXTXY(200,450,' MBOS'); IF XXX=3 THEN OUTTEXTXY(300,450,' ALVAR'); IF XXX=4 THEN OUTTEXTXY(400,450,' ARGAR'); IF XXX=5 THEN OUTTEXTXY(500,450,'C RSOR'); IF XXX=6 THEN OUTTEXTXY(600,450,'SA IR') END; SETCOLOR(3); {azul claro} OUTTEXTXY(0,450,' 1'); OUTTEXTXY(100,450,' 2'); OUTTEXTXY(200,450,'A'); OUTTEXTXY(300,450,'S'); OUTTEXTXY(400,450,'C'); OUTTEXTXY(500,450,' U'); OUTTEXTXY(600,450,' L'); IF OP5=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<0 THEN XXX:=6; SETFILLSTYLE(1,BLACK); BAR((100*YYY)-5,448,(100*YYY)+55,460); SETCOLOR(YELLOW); IF YYY=0 THEN OUTTEXTXY(0,450,'CANAL '); IF YYY=1 THEN OUTTEXTXY(100,450,'CANAL '); IF YYY=2 THEN OUTTEXTXY(200,450,' MBOS'); IF YYY=3 THEN OUTTEXTXY(300,450,' ALVAR'); IF YYY=4 THEN OUTTEXTXY(400,450,' ARGAR'); IF YYY=5 THEN OUTTEXTXY(500,450,'C RSOR'); IF YYY=6 THEN OUTTEXTXY(600,450,'SA IR'); SETFILLSTYLE(1,RED); BAR((100*XXX)-5,448,(100*XXX)+55,460); SETCOLOR(YELLOW); IF XXX=0 THEN OUTTEXTXY(0,450,'CANAL '); IF XXX=1 THEN OUTTEXTXY(100,450,'CANAL '); IF XXX=2 THEN OUTTEXTXY(200,450,' MBOS'); IF XXX=3 THEN OUTTEXTXY(300,450,' ALVAR'); IF XXX=4 THEN OUTTEXTXY(400,450,' ARGAR'); IF XXX=5 THEN OUTTEXTXY(500,450,'C RSOR'); IF XXX=6 THEN OUTTEXTXY(600,450,'SA IR') END; SETCOLOR(3); {azul claro} OUTTEXTXY(0,450,' 1'); OUTTEXTXY(100,450,' 2'); OUTTEXTXY(200,450,'A'); OUTTEXTXY(300,450,'S'); OUTTEXTXY(400,450,'C'); OUTTEXTXY(500,450,' U'); OUTTEXTXY(600,450,' L'); UNTIL (OP5=13) OR (OP5=64) OR (OP5=49) OR (OP5=50) OR (OP5=97) OR (OP5=65) OR (OP5=115) OR (OP5=83) OR (OP5=99) OR (OP5=67) OR (OP5=117) OR (OP5=85) OR (OP5=108) OR (OP5=76); IF (OP5=13) OR (OP5=49) OR (OP5=50) OR (OP5=97) OR (OP5=65) OR (OP5=115) OR (OP5=83) OR (OP5=99) OR (OP5=67) OR (OP5=117) OR (OP5=85) THEN BEGIN IF ((XXX=0) AND (OP5=13)) OR (OP5=49) THEN BEGIN MIRARPCLAB; IF PCLAB=FALSE THEN BEGIN PCLAB:=TRUE; GOTO SINPCLAB END; DISC:=1; SETFILLSTYLE(1,BLACK); BAR(0,0,640,340); SS:=SS1; RR:=RR1; CANAL:=CAN1; REPEAT REJILLA; FOR NN:=0 TO 10 DO BEGIN PROGRAMA(SS,RR,CANAL) END UNTIL KEYPRESSED; SINPCLAB : PORT[REGCONTROL]:=0 END; IF ((XXX=1) AND (OP5=13)) OR (OP5=50) THEN BEGIN MIRARPCLAB; IF PCLAB=FALSE THEN BEGIN PCLAB:=TRUE; GOTO SINPCLAB1 END; DISC:=3; SETFILLSTYLE(1,BLACK); BAR(0,0,640,340); SS:=SS2; RR:=RR2; CANAL:=CAN2; REPEAT REJILLA; FOR NN:=0 TO 10 DO BEGIN PROGRAMA(SS,RR,CANAL) END UNTIL KEYPRESSED; SINPCLAB1 : PORT[REGCONTROL]:=0 END; IF ((XXX=2) AND (OP5=13)) OR (OP5=97) OR (OP5=65) THEN BEGIN MIRARPCLAB; IF PCLAB=FALSE THEN BEGIN PCLAB:=TRUE; GOTO SINPCLAB2 END; DISC:=2; SETFILLSTYLE(1,BLACK); BAR(0,0,640,340); AMBOS(SS1,SS2,RR1,RR2,CAN1,CAN2); SINPCLAB2 : END; IF ((XXX=3) AND (OP5=13)) OR (OP5=115) OR (OP5=83) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,448,640,460); SALVAR END; IF ((XXX=4) AND (OP5=13)) OR (OP5=99) OR (OP5=67) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,448,640,460); CARGAR END; IF ((XXX=5) AND (OP5=13)) OR (OP5=117) OR (OP5=85) THEN BEGIN CURSOR END END UNTIL (XXX=6) OR (OP5=64) OR (OP5=108) OR (OP5=76) END; (**********************************************************) PROCEDURE TIME; BEGIN SETFILLSTYLE(1,RED); BAR(145,448,240,460); SETCOLOR(YELLOW); OUTTEXTXY(150,450,' 1.6 ms/div'); OUTTEXTXY(300,450,'1. ms/div '); OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'1'); OUTTEXTXY(300,450,' 6'); OUTTEXTXY(450,450,' S'); SETCOLOR(YELLOW); XXX:=1; OP:=0; REPEAT OP7:=ORD(READKEY); IF OP7=77 THEN BEGIN YYY:=XXX;XXX:=XXX+1; IF XXX>3 THEN XXX:=1; SETFILLSTYLE(1,BLACK); BAR((150*YYY)-5,448,(150*YYY)+90,460); SETCOLOR(YELLOW); IF YYY=1 THEN OUTTEXTXY(150,450,' 1.6 ms/div'); IF YYY=2 THEN OUTTEXTXY(300,450,'1. ms/div '); IF YYY=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'1'); OUTTEXTXY(300,450,' 6'); OUTTEXTXY(450,450,' S'); SETCOLOR(YELLOW); SETFILLSTYLE(1,RED); BAR((150*XXX)-5,448,(150*XXX)+90,460); SETCOLOR(YELLOW); IF XXX=1 THEN OUTTEXTXY(150,450,' 1.6 ms/div'); IF XXX=2 THEN OUTTEXTXY(300,450,'1. ms/div '); IF XXX=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'1'); OUTTEXTXY(300,450,' 6'); OUTTEXTXY(450,450,' S'); SETCOLOR(YELLOW) END; IF OP7=75 THEN BEGIN YYY:=XXX;XXX:=XXX-1; IF XXX<1 THEN XXX:=3; SETFILLSTYLE(1,BLACK); BAR((150*YYY)-5,448,(150*YYY)+90,460); SETCOLOR(YELLOW); IF YYY=1 THEN OUTTEXTXY(150,450,' 1.6 ms/div'); IF YYY=2 THEN OUTTEXTXY(300,450,'1. ms/div '); IF YYY=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'1'); OUTTEXTXY(300,450,' 6'); OUTTEXTXY(450,450,' S'); SETCOLOR(YELLOW); SETFILLSTYLE(1,RED); BAR((150*XXX)-5,448,(150*XXX)+90,460); SETCOLOR(YELLOW); IF XXX=1 THEN OUTTEXTXY(150,450,' 1.6 ms/div'); IF XXX=2 THEN OUTTEXTXY(300,450,'1. ms/div '); IF XXX=3 THEN OUTTEXTXY(450,450,' ALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(150,450,'1'); OUTTEXTXY(300,450,' 6'); OUTTEXTXY(450,450,' S'); SETCOLOR(YELLOW) END UNTIL (OP7=13) OR (OP7=64) OR (OP7=49) OR (OP7=54) OR (OP7=115) OR (OP7=83); IF (OP7=13) OR (OP7=49) OR (OP7=54) THEN BEGIN IF (XXX=1) OR (OP7=49) THEN BEGIN INCREMENTO:=1; HASTA:=500; TIEMPO:=11.6; SETFILLSTYLE(1,BLACK); BAR(310,375,400,390); STR(TIEMPO:2:2,TIRO); SETCOLOR(RED); OUTTEXTXY(310,380,TIRO); OUTTEXTXY(350,380,'ms/div') END; IF (XXX=2) OR (OP7=54) THEN BEGIN INCREMENTO:=30; HASTA:=510; TIEMPO:=1.6; SETFILLSTYLE(1,BLACK); BAR(310,375,400,390); STR(TIEMPO:2:2,TIRO); SETCOLOR(RED); OUTTEXTXY(310,380,TIRO); OUTTEXTXY(350,380,'ms/div') END END; IF (XXX=3) OR (OP7=64) OR (OP7=115) OR (OP7=83) THEN END; (******************PROCEDIMIENTO.PRINCIPAL*****************) PROCEDURE VISUALIZACION_DE_ONDAS; VAR COTE1,COTE2:REAL; VALOX,VALOY:INTEGER; BEGIN CAN1:=0; CAN2:=1; SS1:=7.12; SS2:=7.12; RR1:=240; RR2:=240; WW:=40; YY:=105; ESCALA1:=2.5; ESCALA2:=2.5; TIEMPO:=11.6; DISC:=0; HASTA:=500; INCREMENTO:=1; MODO:=GETGRAPHMODE; {se ejecutar  si la definici¢n es buena} IF (GETMAXX>638) AND (GETMAXY>478) THEN BEGIN MODO:=2; SETGRAPHMODE(MODO); CLEARVIEWPORT; VALOX:=GETMAXX; COTE1:=VALOX/639; VALOY:=GETMAXY; COTE2:=VALOY/479; FOR INICIAL:=0 TO 5000 DO BEGIN VMUESTRAS[INICIAL]:=0; VMUESTRAS1[INICIAL]:=0; VMUESTRAS2[INICIAL]:=0 END; REJILLA; REPEAT {dibujado de las teclas de funci¢n} BEGIN SETFILLSTYLE(1,MAGENTA); SETCOLOR(WHITE); BAR(10,100,60,135); OUTTEXTXY(28,105,'F1'); OUTTEXTXY(15,120,'AYUDA'); BAR(10,145,60,180); OUTTEXTXY(28,150,'F2'); OUTTEXTXY(15,165,'V/DIV'); BAR(10,190,60,225); OUTTEXTXY(28,195,'F3'); OUTTEXTXY(20,210,'TIME'); BAR(10,235,60,270); OUTTEXTXY(28,240,'F4'); OUTTEXTXY(11,255,'VISUAL'); BAR(10,280,60,315); OUTTEXTXY(28,285,'F5'); OUTTEXTXY(17,300,'CANAL'); RECTANGLE(10,100,60,135); RECTANGLE(10,145,60,180); RECTANGLE(10,190,60,225); RECTANGLE(10,235,60,270); RECTANGLE(10,280,60,315) END; SETFILLSTYLE(1,BLACK); BAR(0,448,640,480); SETCOLOR(YELLOW); OUTTEXTXY(10,460,' .-VOLTS/DIV '); OUTTEXTXY(140,460,' .- TIME '); OUTTEXTXY(271,460,' .-VISUALIZA'); OUTTEXTXY(400,460,' .- CANALES '); OUTTEXTXY(530,460,' .- SALIR '); SETFILLSTYLE(1,RED); BAR(10,455,110,473); SETCOLOR(YELLOW); OUTTEXTXY(10,460,' .-VOLTS/DIV '); SETCOLOR(3); {azul claro} OUTTEXTXY(10,460,'1'); OUTTEXTXY(140,460,' 2'); OUTTEXTXY(271,460,'3'); OUTTEXTXY(400,460,' 4'); OUTTEXTXY(530,460,' 5'); SETCOLOR(YELLOW); XX:=0; REPEAT OP:=ORD(READKEY); IF OP=77 THEN BEGIN YY:=XX; XX:=XX+1; IF XX>4 THEN XX:=0; SETFILLSTYLE(1,BLACK); BAR((130*YY)+10,455,(130*YY)+110,473); SETCOLOR(YELLOW); IF YY=0 THEN OUTTEXTXY(10,460,' .-VOLTS/DIV '); IF YY=1 THEN OUTTEXTXY(140,460,' .- TIME '); IF YY=2 THEN OUTTEXTXY(271,460,' .-VISUALIZA'); IF YY=3 THEN OUTTEXTXY(400,460,' .- CANALES '); IF YY=4 THEN OUTTEXTXY(530,460,' .- SALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(10,460,'1'); OUTTEXTXY(140,460,' 2'); OUTTEXTXY(271,460,'3'); OUTTEXTXY(400,460,' 4'); OUTTEXTXY(530,460,' 5'); SETCOLOR(YELLOW); SETFILLSTYLE(1,RED); BAR((130*XX)+10,455,(130*XX)+110,473); SETCOLOR(YELLOW); IF XX=0 THEN OUTTEXTXY(10,460,' .-VOLTS/DIV '); IF XX=1 THEN OUTTEXTXY(140,460,' .- TIME '); IF XX=2 THEN OUTTEXTXY(271,460,' .-VISUALIZA'); IF XX=3 THEN OUTTEXTXY(400,460,' .- CANALES '); IF XX=4 THEN OUTTEXTXY(530,460,' .- SALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(10,460,'1'); OUTTEXTXY(140,460,' 2'); OUTTEXTXY(271,460,'3'); OUTTEXTXY(400,460,' 4'); OUTTEXTXY(530,460,' 5'); SETCOLOR(YELLOW) END; IF OP=75 THEN BEGIN YY:=XX; XX:=XX-1; IF XX<0 THEN XX:=4; SETFILLSTYLE(1,BLACK); BAR((130*YY)+10,455,(130*YY)+110,473); SETCOLOR(YELLOW); IF YY=0 THEN OUTTEXTXY(10,460,' .-VOLTS/DIV '); IF YY=1 THEN OUTTEXTXY(140,460,' .- TIME '); IF YY=2 THEN OUTTEXTXY(271,460,' .-VISUALIZA'); IF YY=3 THEN OUTTEXTXY(400,460,' .- CANALES '); IF YY=4 THEN OUTTEXTXY(530,460,' .- SALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(10,460,'1'); OUTTEXTXY(140,460,' 2'); OUTTEXTXY(271,460,'3'); OUTTEXTXY(400,460,' 4'); OUTTEXTXY(530,460,' 5'); SETCOLOR(YELLOW); SETFILLSTYLE(1,RED); BAR((130*XX)+10,455,(130*XX)+110,473); SETCOLOR(YELLOW); IF XX=0 THEN OUTTEXTXY(10,460,' .-VOLTS/DIV '); IF XX=1 THEN OUTTEXTXY(140,460,' .- TIME '); IF XX=2 THEN OUTTEXTXY(271,460,' .-VISUALIZA'); IF XX=3 THEN OUTTEXTXY(400,460,' .- CANALES '); IF XX=4 THEN OUTTEXTXY(530,460,' .- SALIR '); SETCOLOR(3); {azul claro} OUTTEXTXY(10,460,'1'); OUTTEXTXY(140,460,' 2'); OUTTEXTXY(271,460,'3'); OUTTEXTXY(400,460,' 4'); OUTTEXTXY(530,460,' 5'); SETCOLOR(YELLOW) END UNTIL (OP=13) OR (OP=60) OR (OP=61) OR (OP=62) OR (OP=63) OR (OP=64) OR (OP=49) OR (OP=50) OR (OP=51) OR (OP=52) OR (OP=53) OR (OP=59); {desdibujado de algunas teclas de funci¢n} BEGIN SETFILLSTYLE(1,BLACK); BAR(10,100,60,135); BAR(10,145,60,180); BAR(10,190,60,225); BAR(10,235,60,270); BAR(10,280,60,315) END; IF OP=13 THEN BEGIN IF XX=0 THEN OP:=60; IF XX=1 THEN OP:=61; IF XX=2 THEN OP:=62; IF XX=3 THEN OP:=63 END; IF OP=59 THEN AYUDA_OSCILOSCOPIO; IF (OP=60) OR (OP=49) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,455,640,473); VOLTIOS END; IF (OP=61) OR (OP=50) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,455,640,473); TIME END; IF (OP=62) OR (OP=51) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,455,640,473); VISUALIZAR END; IF (OP=63) OR (OP=52) THEN BEGIN SETFILLSTYLE(1,BLACK); BAR(0,455,640,473); CANALES END; UNTIL (OP=13) OR (OP=64) OR (OP=53); SETFILLSTYLE(1,BLACK); {borrado de salir} BAR(580,100,630,135); SETCOLOR (BLACK); OUTTEXTXY(1,70,'ÛÛÛÛÛÛÛ'); SETCOLOR(WHITE); OUTTEXTXY(1,70,'APAGADO'); REPEAT UNTIL KEYPRESSED END {de la definici¢n de condici¢n} ELSE BEGIN VALOX:=GETMAXX; COTE1:=VALOX/639; VALOY:=GETMAXY; COTE2:=VALOY/479; SETFILLSTYLE(1,7); BAR(ROUND(150*COTE1),ROUND(200*COTE2),ROUND(490*COTE1),ROUND(280*COTE2)); SETCOLOR(BLACK); RECTANGLE(ROUND(160*COTE1),ROUND(210*COTE2),ROUND(480*COTE1),ROUND(270*COTE2)); OUTTEXTXY(ROUND(190*COTE1),ROUND(220*COTE2),'NO EXISTE DEFINICION SUFICIENTE'); OUTTEXTXY(ROUND(190*COTE1),ROUND(240*COTE2),' PARA EJECUTAR EL OSCILOSCOPIO'); FOR VALOX:=1 TO 5 DO BEGIN SOUND(1000); DELAY(100); SOUND(800); DELAY(80); NOSOUND; END; DELAY(4000); SETFILLSTYLE(1,BLACK); BAR(ROUND(150*COTE1),ROUND(200*COTE2),ROUND(490*COTE1),ROUND(280*COTE2)); END END; {del conjunto} (*************************************************************************) END.