SUBROUTINE USRSAT(B,I) C C SIMPLE DRAWING PROGRAM USING DECGRAPHIC-11 SOFTWARE C C SATELLITE END OF HOST/SATELLITE VERSION C USES INTEGER MODE, LOCAL SAVE/RSTR, C AND LK11 PUSH BUTTON BOX C LOGICAL*1 B(60),FILE1(16),FILE2(16) IF(I.EQ.0.OR.B(1).LT.101.OR.B(1).GT.103)RETURN GOTO (10100,10200,10300),B(1)-100 10100 K2=B(2) CALL INFILE(K2,FILE1,FILE2,I) RETURN 10200 CALL DHOST(1) CALL MENUH(IT,INTEGR(B(2)),INTEGR(B(4))) CALL TOHOST(1,IT) RETURN 10300 CALL DHOST(2) K=B(2) CALL PICKOB(IT,K) CALL TOHOST(2,IT) RETURN END SUBROUTINE MENUH(IT,M1,M2) C C WAIT FOR MENU HIT C LOGICAL*1 ALL(16),TEMP(16) DATA ALL/16*.TRUE./ DO 10 I=1,16 10 TEMP(I)=.FALSE. CALL PBL(ALL,TEMP) 100 CALL GRATTN(1,IDEV,1,2,3) GOTO (130,120,110),IDEV 110 CALL KBC(IT) IT=IT-65+M1 IH=1 GOTO 135 120 CALL PBH(IH,TEMP) DO 125 IT=M1,M1+15 IF(TEMP(IT-M1+1))GOTO 135 125 CONTINUE GOTO 100 130 CALL LPEN(IH,IT) 135 IF(IH.EQ.0.OR.IT.LT.M1.OR.IT.GT.M2)GOTO 100 CALL POINTR(10,IT) CALL INTENS(10,8) IT=IT-M1+1 TEMP(IT)=.TRUE. CALL PBL(ALL,TEMP) TEMP(IT)=.FALSE. CALL WAIT(5000) CALL LPEN(IH,IX) CALL INTENS(10,4) CALL PBL(ALL,TEMP) RETURN END SUBROUTINE PICKOB(IT,IP) C C PICK AN OBJECT C 100 CALL GRATTN(1,IT,1) CALL LPEN(IH,IT) IF(IH.EQ.0.OR.IT.LT.1.OR.IT.GT.209)GOTO 100 CALL POINTR(IP,IT) CALL INTENS(IP,-8) CALL WAIT(5000) CALL INTENS(IP,-4) RETURN END SUBROUTINE INFILE(IFUN,FILE1,FILE2,II) COMMON/PDATA/NPRIM(209),NVPRIM(209),NDEF,NHID LOGICAL*1 FILE1(16),FILE2(16),DAT(5),DSP(5),D,X DATA DSP,DAT/'.','D','S','P',0,'.','D','A','T',0/ DATA D,X/'D','X'/ CALL DHOST(23) 1 CALL TTW(0,'FILENAME : ',-1) CALL KBS(16,FILE1,N) IF(N.EQ.0)GOTO 1 DO 100 I=1,N 100 FILE2(I)=FILE1(I) DO 200 I=1,5 FILE1(I+N)=DSP(I) 200 FILE2(I+N)=DAT(I) IF(FILE1(1).EQ.D.AND.FILE1(2).EQ.X)GOTO 300 CALL TOHOST(11,FILE1,11,FILE2,1,0) RETURN 300 CALL TOHOST(22,FILE1,1,1) IF(IFUN.EQ.0)GOTO 800 DO 400 I=1,420,20 400 CALL FRHOST(NPRIM(I)) CALL ACCESS(1,FILE2,1,IR) IF(IR.LT.0)CALL ACCESS(2,FILE2,1,IR,2) CALL READWR(1,1,0,420,NPRIM,IR2) CALL SAVE(FILE1) 500 IF(IR.LT.0.OR.IR2.LT.0)CALL TTW(0,'IO ERROR') RETURN 800 CALL ACCESS(1,FILE2,1,IR) CALL READWR(0,1,0,420,NPRIM,IR2) DO 900 I=1,420,20 900 CALL TOHOST(40,NPRIM(I)) CALL INIT CALL RSTR(FILE1) GOTO 500 END