| 1 | C -+-+-+-+-+ \ e H A E P T V . F T \ e -+-+-+-+-+\r |
| 2 | C\r |
| 3 | C DISPLAYS THE SAMPLE BUFFER ONTO CRT \r |
| 4 | C\r |
| 5 | C UP 10-DEC-84 MORE SUPPORT OF THE FPP FACILITIES\r |
| 6 | C UP 8-SEP-87 HA REMOVING A PROGRAMMING ERROR\r |
| 7 | SUBROUTINE PLOTTV\r |
| 8 | INCLUDE HAEGSA.FI\r |
| 9 | INCLUDE HAEBUF.FI\r |
| 10 | INCLUDE HAEPTI.FI\r |
| 11 | INCLUDE HABRK.FI\r |
| 12 | INCLUDE HAETTY.FI\r |
| 13 | REAL COND,XYSAM\r |
| 14 | INTEGER NCOND\r |
| 15 | EXTERNAL COND,NCOND,XYSAM\r |
| 16 | C\r |
| 17 | \f INTEGER SAMBUF (2000),SAMBFL, @ DISPLAY BUFFER SPACE, BUFFER LENGTH (CHANGE DATA STATEMENT TOO!)\r |
| 18 | * NUMCN, @ NUMBER OF CHANNELS TO SCAN\r |
| 19 | * CO,CORD,CA, @ CHANNEL OF THE ORDINATE, ABZISSE\r |
| 20 | * STEP @ INCREMENT FOR SAMBUF SCAN & PLOT\r |
| 21 | LOGICAL TIMABZ,TIMORD @ ABZ., ORD. IS THE TIME BASE (COUNTS TO SAMCNT)\r |
| 22 | REAL ORD,ABZ, @ ORDINATE, ABZISSE\r |
| 23 | * DOWN,UP,LEFT,RIGHT @ SCREEN SCALING LIMITS\r |
| 24 | DATA SAMBFL /2000/, STEP /3/\r |
| 25 | C\r |
| 26 | C\r |
| 27 | IF (SAMCNT.EQ.0) RETURN @ NO SAMPLE, RETURN\r |
| 28 | IF (OPTION.NE.12) CALL ASKHIM (2) @ TV* SKIPS SOME QUESTIONS\r |
| 29 | NUMCN=2 @ DEFAULT NUMBER OF CHANNELS TO SCAN\r |
| 30 | CO=1\r |
| 31 | CA=8\r |
| 32 | WRITE (TTO,1) CA,CO,STEP @ READ THE CHANNEL NUMBER OF THE DATA TO BE DISPLAYED\r |
| 33 | READ (TTI,2) CA,CO,STEP\r |
| 34 | STEP=NCOND(STEP,STEP,3) @ INCREMENT DEFAULTS TO 3\r |
| 35 | CO=NCOND(CO,CO,CA.GT.7,CO,CA+1)\r |
| 36 | TIMABZ=CA.GT.7 @ ABZISSE IS A TIME SCALE\r |
| 37 | C IF THE ABZISSE IS THE TIME AXIS THEN WE MAY PLOT MORE THAN ONE CHANNEL\r |
| 38 | IF (.NOT.TIMABZ) GOTO 30\r |
| 39 | WRITE (TTO,5) NUMCN @ READ THE NUMBER OF CHANNELS TO SCAN\r |
| 40 | READ (TTI,2) I\r |
| 41 | 30 NUMCN=MIN0(CHNLS-CO,NCOND(.NOT.TIMABZ,1,I,I,NUMCN))\r |
| 42 | TIMORD=CO.GT.7 @ ORDINATE IS THE TIME SCALE\r |
| 43 | C COMPUTE THE SCREEN SCALING LIMITS\r |
| 44 | C COMPUTE THE MARGIN OF PLOT EITHER -511,511 FOR AD VALUES OR TE1 FOR TIME SCALE\r |
| 45 | UP =COND(TIMORD,ENDS*SAMRAT,511.)\r |
| 46 | DOWN =COND(TIMORD,FLOAT(BEGIN*SAMRAT),-511.)\r |
| 47 | LEFT =COND(TIMABZ,FLOAT(BEGIN*SAMRAT),-511.)\r |
| 48 | RIGHT=COND(TIMABZ,ENDS*SAMRAT,511.)\r |
| 49 | C\r |
| 50 | CALL CLRPLT(SAMBFL,SAMBUF) @ OPEN THE PLOT \r |
| 51 | CALL SCALE (LEFT,DOWN,RIGHT,UP) @ SCALE THE SCREEN\r |
| 52 | C\r |
| 53 | DO 10 I=BEGIN*SAMRAT,ENDS*SAMRAT-1,STEP\r |
| 54 | IF BREAK(11) GOTO 20 @ USER ABORTS DISPLAY PLOT\r |
| 55 | ABZ=COND(TIMABZ,FLOAT(I),XYSAM(I,CA))\r |
| 56 | DO 10 CORD=CO,CO+NUMCN-1 @ LOOP FOR EACH CHANNEL\r |
| 57 | ORD=COND(TIMORD,FLOAT(I),XYSAM(I,CORD))\r |
| 58 | CALL PLOT (1,ABZ,ORD) @ INSERT THE POINT INTO THE DISPLAY\r |
| 59 | 10 CONTINUE\r |
| 60 | WRITE (TTO,3) @ WAIT TO CONTINUE\r |
| 61 | READ (TTI,4)\r |
| 62 | 20 CALL CLRPLT (0,SAMBUF) @ SWITCH OFF THE DISPLAY\r |
| 63 | RETURN\r |
| 64 | 1 FORMAT (' KANAL DER ABZISSE/ORDINATE (ZEIT=8),'\r |
| 65 | * ' SCHRITTWEITE (3I1) (',\r |
| 66 | * 3I1,')? ',$)\r |
| 67 | 2 FORMAT (2I1,I3)\r |
| 68 | 3 FORMAT (' BILD LANGE GENUG ANGESEHEN? ',$)\r |
| 69 | 4 FORMAT ()\r |
| 70 | 5 FORMAT (' ANZAHL DER DARZUSTELLENDEN KANAELE (I1) (',I1,\r |
| 71 | * ') ? ',$)\r |
| 72 | END\r |
| 73 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |