2 ! ******************** WESS ************************ ! ** SUPERVISOR PROGRAM FOR WABASH EXP SIM SYSTEM ** 4 ! ** FROM LOUISVILLE EXPERIMENTAL SIMULATION SYSTEM ** ! ** TRANSLATED INTO BASIC+ FEBRUARY 1975 ** 6 ! ** WABASH COLLEGE: P. SPELT AND J. WARDEN ** ! **************************************************** 7 GO TO 9999 8 O$=SYS(CHR$(7%)) : IF ASCII(O$)=83% THEN O$=RIGHT(O$,2%) : O4%=-1% 10 INPUT"DO YOU WANT A BACKUP COPY OF RESULTS (Y/N)";O3$ : IF ASCII(O3$)=89% THEN O3%=-1% 12 GO TO 22 ! -------------- "CHAIN" ENTRANCE --------------- 14 O$=SYS(CHR$(7%)) : O%=INSTR(1%,O$,"!") : IF O%=0% THEN 22 16 O1$=MID(O$,O%+1%,4%) : O$=LEFT(O$,O%-1%) : S$=SYS(CHR$(8%)+O$) 22 OPEN O$ FOR INPUT AS FILE 1% 24 DIM #1%,X%(48),A9(1),A1$(5)=128,A2$(24,4)=128,D2(24,12),X2(24,384) 26 ! \-----ID RECORD ------/ \-----24 MODEL RECORDS-----------/ 27 DIM M%(30) 28 CHANGE SYS(CHR$(6%)+CHR$(9%)) TO M% : O2$="WESS"+CHR$(65%+M%(2%)/2%)+".TMP" : OPEN O2$ AS FILE 2% 30 DIM #2%,A3$(4)=128,Q(3,128),I(27),S(27),X(48),O(27),D(12),N(10), P(10),K(20),V(20),T$(500)=64 40 Q0=128 : C0$=CHR$(10%) 45 IF O3%=-1% THEN V(0%)=0% : T$(0%)="BACKUP" 48 IF T$(0%)="BACKUP" THEN O3%=-1% ! FOR CHAIN 50 IF O% THEN X9=V(1) : P5=V(3) : P6=V(4) : D2=V(5) : Q2=V(6) : M2=V(7) : N=V(8) : M%=V(9) : A9%=V(10) : J=V(11) : GO TO 320 55 MAT V=ZER 60 A9%=A9(1) : T0$=LEFT(A1$(1)+SPACE$(72%),72%)+LEFT(A1$(2),72%) 70 PRINT"MODELS AVAILABLE:" : PRINT 90 FOR I%=1% TO (A9%-1%)*6% STEP 6% : IF O4% AND X%((I%/6%)+25%) THEN 120 95 IF LEN(E$)=0% THEN 100 98 IF E$=MID(T0$,I%,6%) THEN 300 ELSE 120 100 IF X%((I%/6%)+1%)<>-1% THEN PRINT MID(T0$,I%,6%), 120 NEXT I% : PRINT C0$ 130 IF LEN(E$) THEN PRINT"I DON'T RECOGNIZE THAT ONE; TRY AGAIN" 170 INPUT"WHICH MODEL DO YOU WISH TO RUN";E$ : E$=LEFT(E$+" ",6%) : GO TO 90 300 M%,V(9)=I%/6%+1% : M=M%+1% 320 A3$(0%)="" : A3$(0%)=A3$(0%)+LEFT(A2$(M%,I%)+SPACE$(72%),72%) FOR I%=1% TO 3% 322 IF O% THEN IF O1$="2000" THEN 2000 325 A3$(I%)=A2$(M%,I%) FOR I%=1% TO 4% 330 D(I%)=D2(M%,I%) FOR I%=1% TO 12% 340 Q(3%,128%)=0. : MAT Q=ZER 350 FOR L=1 TO D(11) : M=Q0 : IF L 300 THEN PRINT "BACKUP FILE IS FULL -- OUTPUT BEFORE PROCEEDING." : GO TO 5000 542 INPUT"DO YOU WANT TO BE PROMPTED ON VARIABLE ORDER (Y/N/T)";E$ 550 N(0)=Q(1,8)-N(6) : MAT X=CON : MAT K=ZER 580 P5,P6,X(4),K0,K3=0. 640 GOSUB 2710 650 N=N(1)+N(2)+N(3)+N(5)+N(7) : X9=N-N(7) : N(9)=X9-N(5)+1 680 MAT I=ZER : MAT S=ZER : MAT O=ZER 710 IF P=1 THEN 750 ELSE IF P=2 THEN 770 ELSE IF P=3 THEN 765 ELSE IF P=4 THEN 10 750 GOSUB 2490 : GO TO 790 765 T0$=C0$+"END OF SIMULATION AT "+TIME$(0%) : GOSUB 4000 : PRINT T0$ : CLOSE 1% : GO TO 5000 770 PRINT "TYPE";N(0);"PARAMETERS" 780 INPUT I(I%) FOR I%=1% TO N(0) 785 T0$=C0$+C0$+NUM$(N(0))+"PARAMETERS:"+NUM$(I(1%)) 787 T0$=T0$+","+NUM$(I(I%)) FOR I%=2% TO N(0) : GOSUB 4000 790 S(L)=I(L) FOR L=1 TO N(0) 840 N(8)=N 850 IF N(6)=0 THEN 920 860 FOR L=N(9) TO N : IF I(L)<>99 THEN 910 880 N(8)=N+N(6) : MAT S=ZER : GOTO 920 910 NEXT L 920 S(L)=Q(1,8+L) FOR L=1 TO N(8) 950 FOR L=1 TO N 960 IF I(L)<> 0 THEN S(L)=I(L) 980 NEXT L 990 IF N(5)=0 THEN 1600 1000 K5=0 1010 FOR H2=N(9) TO X9 : K5=K5+1 1020 K5=K5+1 1030 IF S(H2)=0 THEN 1570 ELSE IF S(H2)=99 THEN 1210 1050 PRINT : INPUT"PLEASE INPUT NAME OF VARIABLE X";E$ 1070 INPUT"NOW GIVE ITS CODE, LOWER AND UPPER LIMITS";K1,K2,K3 1090 IF K3"+NUM$(K3)+")" 1100 IF K2=K3 THEN 1550 1110 PRINT "NOW GIVE THE VALUE OF ";E$;" IN THE RANGE FROM";K2; "TO";K3 1120 INPUT K0 : IF K0>K3 THEN 1150 1140 IF K0>=K2 THEN T0$=T0$+" VALUE ="+NUM$(K0) : GOSUB 4000 : GOTO 1480 1150 PRINT"YOUR VALUE FOR ";E$;"IS NOT WITHIN BOUNDS OF";K2; "TO"K3 : PRINT"PLEASE TRY AGAIN." : GOTO 1050 1190 PRINT"UPPER LIMIT IS LESS THAN LOWER ";K3;"<";K2; "TRY AGAIN" : GOTO 1050 1210 IF N(6)=0 THEN 1050 1220 N=N+N(6) 1230 IF P>1 THEN 1400 1270 M=X9+1 : L=1 1290 FOR J=M TO X9+N(6) 1300 PRINT MID(A3$(0%),(J-1)*8+1,8);" = "; : INPUT I(L) : L=L+1 1330 NEXT J 1390 GO TO 1420 1400 PRINT "NOW GIVE THE OTHER";N(6);"PARAMETERS." 1410 INPUT I(I%) FOR I%=1% TO N(6) 1420 FOR J=1 TO N(6) 1430 IF I(J)<>0 THEN S(N(8)-N(6)+J-1)=I(J) 1450 NEXT J 1455 T0$="OTHER "+NUM$(N(6))+" PARAMETERS:"+NUM$(I(1)) 1456 T0$=T0$+", "+NUM$(I(I%)) FOR I%=2% TO N(6) : GOSUB 4000 1460 GO TO 1550 1470 IF INT(K1/2)*2<>K1 THEN 1540 1480 M=K3 1490 K3=INT(K1/100) 1500 K0=(K0-K2)/(M-K2) 1510 IF K0<=0 THEN K0=.001 1530 GO TO 1570 1540 K1=1 1550 K0,S(H2)=0 1570 K(K5)=K3 : K(K5+10)=K0 1590 NEXT H2 1600 H2=0 1610 IF N(8)=X9+N(7)+N(6) THEN 1630 1620 H2=-N(6) 1630 FOR L=1 TO N(8) 1640 IF L<=X9+N(6) THEN 1680 1650 H2=H2 1660 IF N(0)0 THEN U2=H2 ELSE H2=0 : L2=8+X9+N(6)+N(7)+2*(L+H2) 1700 GOSUB 3000 1710 IF S(L)=0 THEN 1730 1720 IF S(L)2 THEN GOSUB 2080 :GO TO 540 2010 IF X(4)<>1 THEN GOSUB 2470 2020 GO TO 540 2080 REM*****SUBROUTINE TO CALCULATE STATISTICS***** 2090 PRINT : INPUT"STATISTICS WANTED";E$ 2110 GOSUB 2710 2120 P6=(S(1)*P6 - P5^2)/(S(1)*(S(1)-1)) 2130 P5=P5/S(1) 2140 IF P=1 THEN 2180 ELSE IF P=2 THEN 2430 ELSE IF P=3 THEN 2180 ELSE IF P=4 THEN 2430 2180 T0$=" " : GOSUB 3990 : T0$="MEAN ="+NUM$(P5) : GOSUB 3990 2190 T0$="STANDARD DEVIATION ="+NUM$(SQR(P6)) : GOSUB 3990 2200 T0$="VARIANCE ="+NUM$(P6) : GOSUB 3990 2210 INPUT"DO YOU WANT THE STD ERROR OF THE MEAN DIFFERENCE (Y/N)";E$ 2240 X(2)=1 : GOSUB 2710 2260 IF P=1 THEN 2300 ELSE IF P=2 OR P=4 THEN 2430 ELSE IF P=3 THEN 2310 2300 X(2)=0 2310 IF D2>0 THEN 2350 2320 PRINT"WHAT ARE YOU USING AS YOUR COMPARISON GROUP? STANDARD" 2330 PRINT"ERROR OF THE MEAN DIFFERENCE WILL NOT BE EVALUATED." 2340 GO TO 2430 2350 P=SQR(Q2/D2+P6/S(1)) : M=D2+S(1)-2 2370 IF X(2)>0. THEN 2400 2380 T0$="STANDARD ERROR OF THE MEAN DIFFERENCE ="+NUM$(P)+ " DF="+NUM$(M) : GOSUB 3990 : GO TO 2430 2400 X(2)=0. : P=ABS(P5-M2)/P 2420 T0$="T-VALUE ="+NUM$(P)+" DF="+NUM$(M) : GOSUB 3990 2430 Q2=P6 : D2=S(1) : M2=P5 : RETURN 2470 T0$="CORRELATION ="+NUM$(J)+C0$ : GOSUB 3990 : RETURN 2490 PRINT"PLEASE GIVE VALUE FOR:" 2530 M=N(0) 2540 FOR J=1 TO M 2550 PRINT MID(A3$(0%),(J-1)*8+1,8);"="; : INPUT I(J) 2555 T0$=MID(A3$(0%),(J-1)*8+1,8)+"="+NUM$(I(J)) : GOSUB 4000 2560 NEXT J 2565 T0$=" " : GOSUB 4000 2700 RETURN 2710 P=INSTR(1%,"YNTR",CHR$(ASCII(E$))) : IF P>0 AND P<5 THEN RETURN 2750 INPUT"WHAT WAS THAT";E$ : GO TO 2710 3000 IF L2