PROGRAM HCS C C This program is the target for the sent data from C routines HCSIZE and HCGEN. C C+ COMMON /BUFF/ INEXT, IBYE, BUFS(256,10) COMMON /ENTRY/ XENTRY, YENTRY, DIMEN, XMAX, YMAX, YMIN COMMON /HCDB/ ICASE, NVEC, IWIDTH, LL0, LL0D, SCALE, SCALED, 1 COSUPC, SINUPC, COSUPD, SINUPD, COSUPT, SINUPT, DES, DEF COMMON /HCS/ XLINE, YLINE, XBASE, YBASE, MAJLVL, MINLVL, 1 XLL, YLL, SIZEF, COSUPF, SINUPF, SIZEC, XDIV, YDIV, 1 XSAVE, YSAVE, MAJSAV, MINSAV, 1 XSNGLE, YSNGLE, MAJSNG, MINSNG, 1 XDBLE, YDBLE, MAJDBL, MINDBL, 1 XVEX, YVEX, MAJVEX, MINVEX COMMON /PLTR/ ILun, IDev, IsTerm, IMode, IXMax, IYMax, 1 Cnvrsn, CMag, CnvMag, IX0, IY0, KSetNo, IFancy, IBfDv3, 1 CSize, DeltaH, DeltaV, Upsiln, CosUp, SinUp, WidAdj COMMON /IPLTR/IPLTR(31,1) COMMON /ITERM/INPLT,ITERM(1) INTEGER DES, DEF LOGICAL DIMEN LOGICAL*1 BUFS C- DIMENSION IDAT(13), JLUN(1) LOGICAL*1 ST(132), NAME EQUIVALENCE ( IDAT(1),W ), ( IDAT(3),HA ), ( IDAT(5),HB ), 1 ( IDAT(9),IB ) EQUIVALENCE ( JLUN, ILun ) DATA ISOLD/0/, INEXT/1/, IBYE/1/ C C - SET PLOTTING TERMINAL NUMBERS. C THESE NUMBERS MUST CORRESPOND TO THE ONES IN GEBUDA.MAC. C DATA ITERM/ "1, "2, "3, "4, "13, "6, "12, "15, "16 / C C - ASSIGN ALL PLOTTERS LOGICAL UNITS. DO 1000 I=1,INPLT IFancy = "17 CALL PSEUDO( I, ITERM(I) ) CMag = 1. CnvMag = Cnvrsn DO 1000 J=1,31 1000 IPLTR(J,I) = JLUN(J) C C - SET EVENTS FLAGS USED BY OUTPUT BUFFERS. DO 2000 I=11,20 2000 CALL SETEF(I) C C - GET NEXT TEXT DESCRIPTION. 2100 CALL GEBUDA(TA,IS,DIMEN,KC,NC,CS,UP,WI,IX,IY,ST,IGOTO) IF( DIMEN .GT. 0 ) DIMEN = DIMEN-1 C C - SAME TERMINAL AS BEFORE? IF( IS .EQ. ISOLD ) GO TO 3100 DO 3000 J=1,31 3000 JLUN(J) = IPLTR(J,IGOTO) ISOLD = IS C C - PERFORM REQUESTED ACTION. 3100 CALL HCSETR( KC ) CSize = CS Upsiln = UP WidAdj = WI IX0 = IX IY0 = IY C WRITE(7,1) IS, DIMEN, KC, NC, CS, UP, WI, IX, IY, C 1 ( ST(K), K=1, NC ) C1 FORMAT(/,O8,I5,2I5,3F10.4,2O8,/,1X,132A1) IF( DIMEN .LE. 0 ) GO TO 3200 JUSTFY = DIMEN DIMEN = .TRUE. CALL HCSGEN( ST, NC ) DIMEN = JUSTFY 3200 CALL CLRALL CALL HCSGEN( ST, NC ) C C - PACK STUFF AS NEEDED BACK INTO DATA AREA. W = XMAX HA = YMAX HB = YMIN IB = IBfDv3 C C - SEND BACK TO TASK TO SIGNAL COMPLETION. CALL SEND(TA,IDAT,3,IDS) CALL WAITFR( 3 ) C C - EVERYTHING OKAY? IF( IDS .EQ. 1 ) GO TO 2100 C C - NOPE. CALL R50ASC(6,TA,NAME) ENCODE(56,3110,ST) NAME, IDS 3110 FORMAT('Program ',6A1,' not found by ...HCS', 1 ' Sorry. IDS =',O7) CALL ERRMSG( ST, 56 ) GO TO 2100 END