7001  COM H[300,3],A$[24],R$[32],J[45],X2,X3,Y2,Y3,X4,Y4,G[47,72]
7002  REM
7003  REM  ****  HP BASIC PROGRAM LIBRARY  *****************************
7004  REM
7005  REM        PLOTTY:  KEYBOARD ENTRY MULTIPLE FUNCTION PLOTTER
7006  REM   
7007  REM        36659  REV A  --  10/73   PART 2 OF 2
7008  REM
7009  REM  ****  CONTRIBUTED PROGRAM  ***********************************
7010  REM
7011  REMEMBER PAUL VOJTA, SOUTHWEST SR. HIGH, MPLS, MN, WHO WROTE THIS
7012  REM
7013  IF LEN(R$) THEN 7015
7014  CHAIN "$PLOT33"
7015  MAT G=CON
7016  A=INT(Y3/Y4+1.5)
7017  IF A<1 OR A>47 THEN 7021
7018  FOR B=1 TO 72
7019  G[A,B]=12
7020  NEXT B
7021  A=INT(1.5-X2/X4)
7022  IF A<1 OR A>72 THEN 7026
7023  FOR B=1 TO 47
7024  G[B,A]=12
7025  NEXT B
7026  Y=P=0
7027  FOR X=-9 TO 9
7028  IF X=0 THEN 7032
7029  R=ABS(X)+2
7030  GOSUB 7117
7031  GOTO 7037
7032  FOR Y=-9 TO 9
7033  R=ABS(Y)+2
7034  GOSUB 7117
7035  NEXT Y
7036  Y=0
7037  NEXT X
7038  R=12
7039  R=R+1
7040  FOR X0=1 TO 72
7041  J[1]=(X0-1)*X4+X2
7042  H=P
7043  H=H+1
7044  S=J[H[H,1]]
7045  T=H[H,2]
7046  U=H[H,3]
7047  IF T<50 THEN 7050
7048  GOTO T-50 OF 7069,7072,7075,7078,7080,7083
7049  GOTO T-56 OF 7085,7087,7089,7091,7093,7097
7050  IF T>10 AND T<20 THEN 7056
7051  U=J[U]
7052  T=T+10
7053  IF T<30 THEN 7056
7054  U=-U
7055  T=T-20
7056  GOTO T-10 OF 7057,7059,7061,7063,7065,7067
7057  S=U
7058  GOTO 7095
7059  S=S+U
7060  GOTO 7095
7061  S=S-U
7062  GOTO 7095
7063  S=S*U
7064  GOTO 7095
7065  S=S/U
7066  GOTO 7095
7067  S=S^U
7068  GOTO 7095
7069  IF ABS(S)>100000. THEN 7099
7070  S=SIN(S)
7071  GOTO 7095
7072  IF ABS(S)>100000. THEN 7099
7073  S=COS(S)
7074  GOTO 7095
7075  IF ABS(S)>50000. THEN 7099
7076  S=TAN(S)
7077  GOTO 7095
7078  S=ATN(S)
7079  GOTO 7095
7080  IF S<0 THEN 7099
7081  S=LOG(S)
7082  GOTO 7095
7083  S=EXP(S)
7084  GOTO 7095
7085  S=RND(S)
7086  GOTO 7095
7087  S=ABS(S)
7088  GOTO 7095
7089  S=SGN(S)
7090  GOTO 7095
7091  S=INT(S)
7092  GOTO 7095
7093  IF S<0 THEN 7099
7094  S=SQR(S)
7095  J[H[H,1]]=S
7096  GOTO 7043
7097  Y=J[H[H,1]]
7098  GOSUB 7119
7099  NEXT X0
7100  IF H[H,2]=62 THEN 7103
7101  H=H+1
7102  GOTO 7100
7103  P=H
7104  IF H[H,3]=0 THEN 7039
7105  PRINT LIN(10)
7106  FOR A=1 TO 47
7107  FOR B=72 TO 1 STEP -1
7108  IF G[A,B]#1 THEN 7110
7109  NEXT B
7110  FOR C=1 TO B
7111  D=G[A,C]
7112  PRINT R$[D,D];
7113  NEXT C
7114  PRINT 
7115  NEXT A
7116  CHAIN "$PLOT33",7342
7117  X0=INT(1.5+(X-X2)/X4)
7118  IF X0<1 OR X0>72 THEN 7122
7119  Y0=INT(1.5+(Y3-Y)/Y4)
7120  IF Y0<1 OR Y0>47 THEN 7122
7121  G[Y0,X0]=R
7122  RETURN 
7123  END 
