5  COM A[100],C[100]
7  COM X1,X9,Y1,Y9,H5,V5
10  COM E,P9,D2,D1,P1,P8,P3,Q7,Q8,Z$[60],D8,D9,H$[4]
20  COM X2,Y2,V1,V9,H1,H9,D3,Q9
30  COM E9,P0,S9,A9,F[2],X3,Y3
31  COM C$[1],D7
32  COM D4,Q1
33  COM S$[6]
40  DIM A$[12],I$[72],B$[10]
60  DEF FNF()=-INT()
61  DEF FNL()=LOG()/LOG(10)
70  Q1=0
149  PRINT "PLTT"
150  PRINT 
152  RESTORE 
155  PRINT 
156  FILES *
158  ASSIGN S$,1,X
160  PRINT "COMMAND:";
161  INPUT I$
170  L9=LEN(I$)
175  A$=I$[1,3]
176  IF A$="SCA" THEN 878
177  IF A$="AXE" THEN 883
178  IF A$="ANG" THEN 506
180  IF A$="CAP" THEN 270
185  IF A$="CHA" THEN 355
190  IF A$="COM" THEN 365
195  IF A$="CRE" THEN 470
200  IF A$="DIV" THEN 495
205  IF A$="XDI" THEN 515
210  IF A$="YDI" THEN 535
215  IF A$="EXP" THEN 555
217  IF A$="FIL" THEN 531
220  IF A$="XFI" THEN 565
225  IF A$="YFI" THEN 585
230  IF A$="HEL" THEN 365
234  IF A$="LIS" THEN 602
235  IF A$="INS" THEN 605
236  IF A$="NOS" THEN 875
237  IF A$="NOA" THEN 880
238  IF A$="XLA" THEN 885
239  IF A$="YLA" THEN 890
240  IF A$="PER" THEN 790
245  IF A$="RUN" THEN 810
250  IF A$="SIZ" THEN 815
255  IF A$="STA" THEN 810
257  IF A$="QUI" THEN 9000
260  IF A$="TIT" THEN 850
265  IF A$="VER" THEN 835
267  PRINT "WHAT?"
268  GOTO 150
270  PRINT "   CAPABILITIES"
275  PRINT 
280  PRINT "     THIS PROGRAM ALLOWS EASY PLOTTING OF DATA FROM DATA FILES."
285  PRINT "NO PROGRAMMING IS REQUIRED TO RUN THE HEWLETT*PACKARD 7200"
290  PRINT "SERIES PLOTTERS. AUTOMATIC SCALING,AXES DRAWING AND TITLING"
295  PRINT "ARE DONE BY THE PROGRAM. MULTIPLE COLOR PLOTS MAY BE DRAWN"
300  PRINT "ON THE SAME PAPER WITH/WITHOUT MULTIPLE AXES. POINT,LINE,"
305  PRINT "BAR OR STEP GRAPHS MAY BE DRAWN ON PLAIN OR GRID PAPER."
310  PRINT "DATA IN A SPECIFIED RANGE OF INTEREST MAY BE SPECIFIED."
315  PRINT "PLOTS MAY BE LOG OR LINEAR IN ANY COMBINATION ON THE X AND Y"
320  PRINT "AXES. PLOT LIMITS MAY BE ADJUSTED WITH PLOTTER CONTROLS TO"
325  PRINT "FIT ANY STANDARD GRID."
330  PRINT 
335  PRINT "FOR INFORMATION CONCERNING HEWLETT*PACKARD PLOTTERS CONTACT"
340  PRINT "YOUR TIME-SHARE REPRESENTATIVE OR CALL THE LOCAL HEWLETT*"
345  PRINT "PACKARD SERVICE CENTER."
350  GOTO 150
355  PRINT "   THERE ARE NO PREMIUM CHARGES FOR THE USE OF THIS PROGRAM."
360  GOTO 150
365  PRINT "   COMMANDS"
370  PRINT 
371  PRINT "AXES             CANCLES NOAXES COMMAND"
372  PRINT "ANGLE            SETS THE ANGLE OF THE TITLE LABEL"
375  PRINT "CAPABILITIES     PRINTS THE CAPABILITIES OF THIS PROGRAM"
380  PRINT "CHARGES          NO PREMIUM CHARGES TO USE THIS PROGRAM"
385  PRINT "COMMANDS         PRINTS THIS LIST"
390  PRINT "CREDITS          THIS PROGRAM SUPPORTED BY HEWLETT-PACKARD "
395  PRINT "DIVISIONS        SETS NUMBER OF DIVISIONS ON X AND Y AXES"
400  PRINT "XDIVISIONS       SETS NUMBER OF DIVISIONS ON X AXIS"
405  PRINT "YDIVISIONS       SETS NUMBER OF DIVISIONS ON Y AXIS"
410  PRINT "EXPERT           SHORTENES PROMPTS FOR EXPERIENCED USERS"
415  PRINT "XFIRST           INDENTIFIES POSITION OF FIRST X DATA"
420  PRINT "YFIRST           IDENTIFIES POSITION OF FIRST Y DATA"
425  PRINT "HELP             PRINTS THIS LIST"
427  PRINT "INSTRUCTIONS     PRINTS THE PROGRAM INSTRUCTIONS"
429  PRINT "LIST             LISTS DATA TO BE PLOTTED"
431  PRINT "XLABEL           ALLOWS LABELING OF X AXIS"
432  PRINT "YLABEL           ALLOWS LABELING OF Y AXIS"
465  GOTO 150
470  PRINT "   CREDITS"
475  PRINT 
480  PRINT "     THIS PROGRAM WAS DONATED BY THE STAFF OF HEWLETT*"
485  PRINT "PACKARD, SAN DIEGO, CALIFORNIA."
490  GOTO 150
495  Z$="="
496  GOSUB 5000
497  B$=I$[B2+1,L9]
498  GOSUB 5100
500  D1=D2=B2
505  GOTO 150
506  Z$="="
507  GOSUB 5000
508  B$=I$[B2+1,L9]
510  GOSUB 5100
511  A9=B2
512  GOTO 150
515  Z$="="
516  GOSUB 5000
521  B$=I$[B2+1,L9]
522  GOSUB 5100
525  D1=B2
530  GOTO 150
531  Z$="="
532  GOSUB 5000
533  S$=B$[B2+1,L9]
534  GOTO 158
535  Z$="="
540  GOSUB 5000
541  B$=I$[B2+1,L9]
542  GOSUB 5100
545  D2=B2
550  GOTO 150
555  E9=1
560  GOTO 150
565  Z$="="
570  GOSUB 5000
571  B$=I$[B2+1,L9]
572  GOSUB 5100
575  P1=B2
580  GOTO 150
585  Z$="="
590  GOSUB 5000
591  B$=I$[B2+1,L9]
592  GOSUB 5100
595  P3=B2
600  GOTO 150
602  Q1=1
603  GOTO 901
605  PRINT "   INSTRUCTIONS"
610  PRINT 
615  PRINT "THIS PROGRAM HAS 4 REQUIRED INPUTS."
620  PRINT ""
625  PRINT "THE FIRST INPUT IS THE TYPE OF PLOT DESIRED. TYPE"
630  PRINT "L  FOR LINE PLOTS"
635  PRINT "P  FOR POINT PLOTS"
640  PRINT "B  FOR BAR CHARTS AND"
645  PRINT "S  FOR STEP GRAPHS"
650  PRINT 
655  PRINT "THE SECOND INPUT IS THE PAPER OR PAPER SCALES TO BE USED."
660  PRINT "THE "'1"SCALES ON X OR Y ARE TYPED AS LIN/LIN,LIN/LOG,ETC. IN"
665  PRINT "X/Y ORDER.   IF A PAPER NUMBER IS TO BE USED, THE PAPER"
670  PRINT "MAY BE SPECIED BY TYPING ITS NUMBER SUCH AS 9280-0180."
675  PRINT 
680  PRINT " THE THIRD INPUT IS THE SCALE TO BE USED. TYPE"
685  PRINT "N FOR NEW SCALE; PLACES AXIS AT LEFT FOR Y OR BOTTOM"
690  PRINT "  FOR X.  TYPE"
695  PRINT "A FOR ANOTHER SCALE; PLACES AXIS AT RIGHT FOR Y OR AT "
700  PRINT "    TOP FOR X. TYPE"
705  PRINT "S FOR SAME AXES. USES LAST SPECIFIED AXES TO PLOT NEW DATA."
710  PRINT "   AXIS LABELING IS NOT USED."
715  PRINT 
720  PRINT "THE FORTH INPUT IS THE RANGE OF DATA TO BE PLOTTED. TYPE"
725  PRINT "A TO PLOT ALL THE DATA."
730  PRINT "THE DATA RANGE OF INTEREST MAY ALSO BE SPECIFIED AS 10TO999."
735  PRINT "WHEN A DATA RANGE IS SPECIFIED, THE DATA LIMITS ARE ALSO USED"
740  PRINT "AS THE AXES LIMITS; THEREFORE THE 'A' MAY ALSO BE CONSIDERED"
745  PRINT "AS AUTOMATIC SCALING AND THE RANGE SPECIFICATION MAY BE"
750  PRINT "CONSIDERED AS CONTROLLED SCALING."
755  PRINT 
760  PRINT 
765  PRINT "     THE INPUTS MAY BE SPECIFIED ONE AT A TIME AS PROMPTED"
770  PRINT "BY THE PROGRAM OR 'ALL AT ONCE' BY EXPERIENCED PROGRAM"
775  PRINT "USERS. A TYPICAL INPUT MAYBE L;LIN/LIN;N/N;A/A."
780  PRINT "OR B;9270-1008;A/A;1TO50/20TO500"
785  GOTO 150
790  Z$="="
795  GOSUB 5000
796  B$=I$[B2+1,L9]
797  GOSUB 5100
800  P9=B2
805  GOTO 150
810  GOTO 896
815  Z$="="
820  GOSUB 5000
821  B$=I$[B2+1,L9]
822  GOSUB 5100
825  Q7=Q8=S9=B2*1.5
830  GOTO 150
835  PRINT "LATEST UPDATE 11/72"
840  PRINT "VERSION 003"
845  GOTO 150
850  Z$="="
851  GOSUB 5000
852  Z$=I$[B2+1,L9]
855  P0=1
856  CHAIN "$HP3A"
860  Z$="="
862  GOSUB 5000
875  F[1]=1
877  GOTO 150
878  F[1]=0
879  GOTO 150
880  F[2]=1
881  GOTO 150
883  F[2]=0
884  GOTO 150
885  Z$="="
886  GOSUB 5000
887  Z$=I$[B2+1,L9]
888  P0=2
889  CHAIN "$HP3A"
890  Z$="="
892  GOSUB 5000
893  Z$=I$[B2+1,L9]
894  P0=3
895  CHAIN "$HP3A"
896  IF P8 <> 0 THEN 901
898  CHAIN "$HP3A"
901  FOR J=1 TO P1
902  IF TYP(1)=2 THEN 907
903  IF TYP(1)=3 THEN 947
905  READ #1;A[1]
906  GOTO 908
907  READ #1;I$
908  NEXT J
909  FOR J=1 TO P3-P1
910  IF TYP(1)=2 THEN 915
911  IF TYP(1)=3 THEN 947
913  READ #1;C[1]
914  GOTO 916
915  READ #1;I$
916  NEXT J
917  FOR I=2 TO 100
918  FOR J=1 TO P9-(P3-P1)
919  IF TYP(1)=2 THEN 924
920  IF TYP(1)=3 THEN 940
922  READ #1;A[I]
923  GOTO 925
924  READ #1;I$
925  NEXT J
926  FOR J=1 TO P3-P1
927  IF TYP(1)=2 THEN 933
928  IF TYP(1)=3 THEN 940
930  READ #1;C[I]
931  GOTO 934
933  READ #1;I$
934  NEXT J
936  NEXT I
940  E=I-1
942  IF Q1=1 THEN 1000
946  CHAIN "$HP2A"
947  PRINT " DATA FILE HAS INSUFFICIENT DATA"
948  STOP 
1000  Q1=0
1001  PRINT "     PLTT"
1002  PRINT 
1003  PRINT 
1004  PRINT "  X    Y"
1005  PRINT 
1006  READ #1,1
1010  FOR I=1 TO E
1020  PRINT A[I];C[I]
1030  NEXT I
1040  GOTO 150
5000  FOR I=1 TO L9
5010  IF I$[I,I]=Z$ THEN 5050
5020  NEXT I
5030  B2=0
5040  RETURN 
5050  B2=I
5060  RETURN 
5100  A$=" 0123456789."
5120  B2=0
5130  FOR I=1 TO LEN(B$)
5135  FOR I1=1 TO LEN(A$)
5140  IF B$[I,I]=A$[I1,I1] THEN 5180
5145  IF B$[I,I]=A$[I1,I1] THEN 5180
5150  NEXT I1
5160  PRINT "ERROR ON INPUT-NONNUMERIC CHARACTER AFTER="
5170  GOTO 150
5180  IF I1=1 THEN 5210
5190  IF I1=12 THEN 5230
5200  B2=B2*10+I1-2
5210  NEXT I
5220  RETURN 
5230  I2=I
5240  A$=" 0123456789"
5250  FOR I=I2+1 TO LEN(B$)
5260  FOR I1=1 TO LEN(A$)
5270  IF B$[I,I]=A$[I1,I1] THEN 5310
5280  NEXT I1
5290  PRINT "ERROR ON INPUT-NONNUMERIC CHARACTER AFTER="
5300  GOTO 150
5310  IF I1=1 THEN 5330
5320  B2=B2+(I1-1)*10^(-(I-I2))
5330  NEXT I
5333  S$=I$[B2+1,L9]
5340  RETURN 
8000  DATA "9270","LIN/LIN",15,10,15,10
8010  DATA "46 5492","LIN/LOG",7,3,7,10
8020  DATA "9280-0168","LIN/LIN",5,15,7,7.5
8030  DATA "46 3410","LIN/LIN",5,15,7,7.5
9000  STOP 
9001  END 
