1 SUB LINE0P & ! 500.24 - STAT11 - LINE0P & ! & ! LINE PLOT CONTROL MODULE & ! & ! RELEASED FOR SUBMISSION TO THE DECUS LIBRARY BY THE DEC & ! ENGINEERING SYSTEMS GROUP AND THE EDUCATION PRODUCTS GROUP & ! SEPTEMBER, 1977 & ! & 2 ! COPYRIGHT (C) 1973, DIGITAL EQUIPMENT CORPORATION, & ! & ! MAYNARD, MASSACHUSETTS & 3 ! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE & ! ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF & ! DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS & ! MAY OTHERWISE BE PROVIDED IN WRITING BY DEC. & 4 ! THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT & ! NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL & ! EQUIPMENT CORPORATION. & 5 ! DEC ASSUMES NO RESPONSIBILITY FOR USE OR RELIABILITY OF ITS & ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. & ! & 6 ! THIS MODULE SETS UP THE TEMPORARY FILE THAT THE PLOTER MODULE USES & ! TO PRODUCE A LINE PLOT. & ! & ! & 7 ! AUTHOR: MICHAEL D. KNAUER & ! & ! VERSION NUMBER: 001 & ! & ! DATE: OCTOBER, 1973 & ! & 8 ! MODIFICATIONS: MAY, 1975 & ! & ! MODIFIED TO ACCEPT MISSING DATA & ! & ! BY ARDOTH HASSLER WILSON & ! CENTRAL STATE UNIVERSITY & ! EDMOND, OKLAHOMA & ! & 00009! MODIFICATIONS: JUNE, 1976 & ! & ! CTRL/C TRAP ADDED & 10 ! & ! & ! CALLING ARGUMENTS & 11 ! 1) VARIABLE NAME: F3$ & ! RANGE OF VALUES: S00000.RWM - S99999.RWM & ! USE: THIS IS THE 250 ROW BY 15 COLUMN & ! DATA MATRIX USED BY ALL STAT11 MODULES & 13 ! 2) VARIABLE NAME: R% & ! RANGE OF VALUES: 1 - 250 & ! USE: CONTAINS THE NUMBER OF ROWS OF ACTUAL & ! DATA IN THE VIRTUAL MATRIX F3$ & 15 ! 3) VARIABLE NAME: C% & ! RANGE OF VALUES: 1 - 15 & ! USE: CONTAINS THE NUMBER OF COLUMNS OF & ! DATA IN THE MATRIX F3$ & 20 ! & ! & ! RETURNING ARGUMENTS & 21 ! 1) VARIABLE NAME: F5$ & ! RANGE OF VALUES: S00000.PLT - S99999.PLT 22 ! USE: THIS FILE CONTAINS THE DATA POINTS & ! TO BE PLOTTED. COLUMN 0 CONTAINS THE & ! INDEPENDENT VARIABLE, COLUMNS 1 - 3 & ! CONTAIN THE DEPENDENT VARIABLE(S). & 24 ! 2) VARIABLE NAME: R% & ! RANGE OF VALUES: 1 - 250 & ! USE: CONTAINS THE NUMBER OF ROWS IN FILE F5$ & 26 ! 3) VARIABLE NAME: Y% & ! RANGE OF VALUES: 1 - 3 & ! USE: CONTAINS HOW MANY DEPENDENT VARIABLES & ! ARE STORED IN F5$ & 28 ! 4) CONSTANT VALUE: 1000 & ! USE: THIS IS THE NUMBER OF THE LINE IN LINE0P & ! THAT THE PLOTER MODULE CHAINS BACK TO. & 29 ! NOTE THAT THESE ARE ONLY RETURNING ARGUMENTS WHEN CHAINING TO PLOTER, & ! NOT WHEN CHAINING TO STATCM. THERE ARE NO RETURNING ARGU- & ! MENTS WHEN CONTROL IS TRANSFERRED TO STATCM. & ! & 30 ! DESCRIPTION OF FUNCTION & 31 ! LINE0P GETS TOGETHER AND PASSES TO PLOTER THE NECESSARY & ! INFORMATION FOR MAKING A LINE PLOT. & 32 ! IT ASKS THE USER WHAT COLUMNS ARE TO BE USED FOR THE & ! INDEPENDENT AND DEPENDENT VARIABLES AND TRANSFERS THESE & ! VARIABLES TO A TEMPORARY FILE. & 33 ! AFTER LOADING THE APPROPRIATE RETURNING ARGUMENTS INTO COMMON, & ! LINE0P THEN TRANSFERS CONTROL TO PLOTER. & 34 ! WHEN PLOTER RETURNS CONTROL, LINE0P ASKS THE USER IF HE WANTS & ! MORE PLOTS. IF NOT, THEN CONTROL IS TRANSFERRED TO STATCM. & 35 ! & ! & 90 ! & ! Modifications: August,1981 & ! & ! COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & ! added to replace core common and also to let STTMGR know & ! who to chain to (MODULE$). Once in MODULE$, LINE% indicates & ! line to begin execution. & ! & \ COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & 95 ! & ! & ! & ! IN THE FIRST SECTION OF CODE, CALLING ARGUMENTS ARE RETRIEVED FROM & ! COMMON, AND THE INPUT AND TEMPORARY FILES ARE OPENED. & ! & ! & 100 DIM V%(3%),V$(3%) & \ GOTO 1000 IF LINE% = 1000% & \ ON ERROR GOTO 1250 & \ GOSUB 10000 110 !F$=SYS(CHR$(7)) & \ F$ = SAV.F$ 115 GOSUB 600 120 R%=VAL(MID(F$,46%,5%)) 130 C%=VAL(MID(F$,51%,5%)) 140 F3$=MID(F$,31%,15%) 150 OPEN F3$ FOR INPUT AS FILE 3, VIRTUAL 160 DIM #3,A(250%,15%) 170 F5$=LEFT(F3$,6%)+".PLT" 180 OPEN F5$ FOR OUTPUT AS FILE 5, VIRTUAL 185 DIM #5,P(250%,3%) 188 ! & ! & ! & ! HERE THE MODULE ASKS THE USER TO ENTER THE NUMBER OF THE INDEPENDENT & ! VARIABLE, HOW MANY DEPENDENT VARIABLES HE WANTS TO PLOT, AND THE & ! NUMBERS OF THE DEPENDENT VARIABLES. & ! & ! 189 S1%=1% 190 INPUT "ENTER INDEPENDENT(X) VARIABLE NUMBER ";X% 200 PRINT 205 IF X%>=1% AND X%<=C% GOTO 219 210 PRINT "THE INDEPENDENT VARIABLE NUMBER MUST BE BETWEEN 1 AND"; C% 215 PRINT "PLEASE TRY AGAIN" 217 GOTO 190 219 S1%=2% 220 INPUT"HOW MANY DEPENDENT VARIABLES DO YOU WANT TO PLOT (MAX=3)";Y% 230 PRINT 235 IF Y%>=1% AND Y%<=3% GOTO 244 237 PRINT "YOU MUST SPECIFY 1, 2, OR 3 AS THE NUMBER OF DEPENDENT VARIABLES" 239 PRINT "PLEASE TRY AGAIN" 241 GOTO 220 244 S1%=3% 247 PRINT "ENTER THE (COLUMN) NUMBER(S) FOR THE";Y%;" DEPENDENT VARIABLE(S)" 249 PRINT "TYPE THEM IN ONE AT A TIME" 251 FOR I%=1% TO Y% 253 INPUT V%(I%) 255 IF V%(I%)>=1% AND V%(I%)<=C% GOTO 270 260 PRINT "THE DEPENDENT VARIABLE NUMBER(S) MUST BE BETWEEN 1 AND";C% 265 PRINT "ENTER DEPENDENT VARIABLE NUMBER"; I%; " AGAIN AND CONTINUE"; 267 INPUT V%(I%) 269 GOTO 255 270 NEXT I% 275 ! & ! & ! & ! HERE THE INDEPENDENT AND DEPENDENT VARIABLES ARE TRANSFERRED FROM & ! THE INPUT FILE TO THE TEMPORARY FILE F5$. & ! & ! 280 PRINT 300 J1%=0% & \ FOR J%=1% TO R% & \ IF A(J%,X%)=H9 GOTO 330 310 J1%=J1%+1% & \ P(J1%,0%)=A(J%,X%) 320 P(J1%,I%)=A(J%,V%(I%)) FOR I%=1% TO Y% 330 NEXT J% 335 P(0%,I%)=J1% FOR I%=0% TO Y% 338 IF J1%=0% THEN PRINT "NO DATA EXISTS FOR VARIABLE";X% & \ GOTO 1200 340 400 CLOSE 3,5 405 ! & ! & ! HERE THE RETURNING LINE NUMBER, THE NUMBER OF ROWS, AND THE NUMBER & ! OF DEPENDENT VARIABLES ARE ADDED TO THE CHARACTER STRING TO BE & ! PASSED VIA COMMON. & 410 G$=LEFT(F5$+SPACE$(15%),15%)+"LINE0P"+A9$+" " 415 G$=LEFT(G$+SPACE$(10%),30%) 420 G$=G$+CVT%$(1000%)+CVT%$(J1%)+CVT%$(Y%) 425 ! & ! & ! HERE THE USER IS ASKED TO ENTER PLOT CHARACTERS. THESE OR DEFAULT & ! CHARACTERS "A", "B", AND "C" ARE ADDED TO THE CHARACTER STRING TO BE & ! PASSED. & 430 PRINT "TYPE ";Y%;" PRINT CHARACTERS, ONE AT A TIME." 440 INPUT V$(I%) FOR I%=1% TO Y% 450 PRINT 460 G$=G$+LEFT(V$(1%)+"A",1%)+LEFT(V$(2%)+"B",1%)+LEFT(V$(3%)+"C",1%) 465 ! & ! & ! HERE THE FINAL STRING OF RETURNING ARGUMENTS IS LOADED INTO COMMON & ! AND CONTROL IS TRANSFERRED TO PLOTER. & ! & ! 470 G$=LEFT(G$+SPACE$(10),39%) 480 G$=G$+F$ 490 !R$=SYS(CHR$(8)+G$) & \ SAV.F$ = F$ 500 !CHAIN "PLOTER"+A9$ & \ MODULE$= "PLOTER" & \ LINE% = 0% & \ SUBEXIT & 510 ! 600 A9$=MID(F$,62%,9%) & \ A9$=LEFT(A9$,INSTR(5%,A9$,"]")) & \ H9=.9E-38 & \ RETURN 999 ! & ! & ! & ! THE LAST SECTION OF CODE ASKS THE USER IF HE WANTS TO PLOT MORE. & ! IF HE DOESN'T, CONTROL IS TRANSFERRED TO STATCM. & ! & ! 1000 !F$=SYS(CHR$(7)) & \ F$ = SAV.F$ 1010 GOSUB 600 1020 GOTO 1200 1200 INPUT "DO YOU WISH TO PLOT MORE VARIABLES ";W$ 1205 PRINT 1210 IF W$="YES" OR LEFT(W$,1%)="Y" GOTO 120 1215 IF LEFT(W$,1%)="N" OR W$="" GOTO 1230 1220 PRINT "YOU MUST ANSWER EITHER YES OR NO" 1225 GOTO 1200 1230 !R$=SYS(CHR$(8)+F$) & \ SAV.F$ = F$ 1240 !CHAIN "STATCM"+A9$ & \ MODULE$= "STATCM" & \ LINE% = 0% & \ SUBEXIT & 1245 ! & ! & ! THIS IS THE ERROR ROUTINE FOR THE SECTION WHERE THE USER TYPES IN & ! VARIABLE NUMBERS, ETC. & 1250 IF ERR=28% THEN GOSUB 10000 & !\ RESUME 1200 & \ MODULE$ = "FINISH" & \ GOTO 32750 1255 PRINT "YOU TYPED NON-NUMERIC CHARACTERS INSTEAD OF NUMBERS" 1260 PRINT "PLEASE TYPE ONLY NUMBERS WHEN NUMBERS ARE REQUESTED" 1270 ON S1% GOTO 1280,1285,1290 1280 RESUME 210 1285 RESUME 237 1290 RESUME 260 10000 V0%=CTRLC ! SYS(CHR$(6%)+CHR$(-7%)) & \ RETURN ! CTRL/C TRAP 32750 SUBEND