100 ! ******************** WESSIN ******************** ! ** MAINTENANCE PROGRAM FOR WESS MODEL DATA ** ! ** ARRAY AND PROGRAMS. OPTIONS: INIT MODELS, ** 105 ! ** CHANGE AVAILABILITY, AND ASSIGN PROT CODES ** 120 ! ** INIT PORTION FROM LOUISVILLE EXP SIM SYSTEM ** 140 ! ** TRANSLATED 20-DEC-74 WABASH COLLEGE ** ! ** BY JAMES A. WARDEN ** ! ************************************************** 160 PRINT"WESS MAINTENANCE * ";DATE$(0%);" * ";TIME$(0%) 180 INPUT"MODEL FILE";O$ 200 OPEN O$ AS FILE 1% : NAME O$ AS O$+"<48>" 220 DIM #1%,X%(48),A9(1),A1$(5)=128,A2$(24,4)=128,D2(24,12),X2(24,384) 240 ! \-----ID RECORD ------/ \-----24 MODEL RECORDS-----------/ 260 GOSUB 1500 : ON ERROR GO TO 300 280 OPEN A1$(0)+"TMP.TMP" AS FILE 3% : KILL A1$(0)+"TMP.TMP" : GO TO 320 300 PRINT"INSTRUCTOR ACCOUNT IS INCORRECTLY ASSIGNED" : RESUME 260 320 A$=LEFT(A1$(1%)+SPACE$(72%),72%)+A1$(2%) 340 X2(24,384)=0. : G$="123456789" 350 U$(0%)="## \ \ " : U$(1%)="## * \ \ " 360 ON ERROR GO TO 0 380 PRINT"MODELS IN FILE ARE (* = AVAILABLE TO STUDENTS):" : PRINT 400 FOR I%=1% TO A9(1)-1 420 PRINT USING U$(X%(I%+24%)+1%),I%,MID(A$,(I%-1%)*6%+1%,6%); 440 IF (I%/5%)*5%-I%=0% THEN PRINT 460 NEXT I% : PRINT : PRINT 470 INPUT"WHAT NEXT (P,C, OR I)";N$ : N%=ASCII(N$) : N9%=INSTR(1%,"ICP",CHR$(N%)) : IF N9% THEN 476 472 IF N$="" THEN 1480 474 PRINT"OPTIONS ARE:" : PRINT"I INITIALIZE MODELS" : PRINT"C CHANGE AVAILABILITY" : PRINT"P ASSIGN PROTECTION <48> TO MODELS" 475 PRINT : GO TO 470 476 ON N9% GO TO 480,1482,2000 ! INIT,CHG,PROT 480 INPUT"WHICH MODEL DO YOU WANT TO INITIALIZE ('ALL' MEANS ALL)";N$ 500 IF N$="ALL" THEN 1100 ELSE IF N$="" THEN 1480 520 ON ERROR GO TO 560 : N=VAL(N$) : IF N<1 OR N>24 THEN 480 540 ON ERROR GO TO 0 : GO TO 580 560 IF ERL=520% THEN RESUME 480 ELSE 540 ! --------------- INITIALIZE A PARTICULAR MODEL ----------- 580 X%(N)=-1% 600 A$=A1$(1) : B$=A1$(2) : F$=A1$(3) 620 D$=A1$(4) : E$=A1$(5) 640 IF A9(1)<>N+1 THEN 960 660 FOR J=1 TO 9 680 IF MID(F$,5%,1%)=MID(G$,J,1) THEN 740 700 NEXT J 720 GO TO 1480 740 IF MID(F$,6,1)=" " THEN 840 760 FOR J=1 TO 9 780 IF MID(F$,6,1)=MID(G$,J,1) THEN 920 800 NEXT J 820 IF MID(F$,5,2)<>"10" THEN 720 840 IF J=1 THEN 940 860 F$=LEFT(F$,4)+MID(G$,J-1,1)+RIGHT(F$,6) 880 F$=LEFT(F$,5)+" "+RIGHT(F$,7) 900 GO TO 940 920 F$=LEFT(F$,5)+MID(G$,J-1,1)+RIGHT(F$,7) 940 A9(1)=N 960 IF N>12 THEN 1040 980 A$=LEFT(A$,(N-1)*6)+" "+RIGHT(A$,N*6+1) 1000 D$=LEFT(D$,(N-1)*6)+"WESS0 "+RIGHT(D$,N*6+1) 1020 GO TO 1320 1040 B$=LEFT(B$,(N-13)*6)+" "+RIGHT(B$,(N-12)*6+1) 1060 E$=LEFT(E$,(N-13)*6)+"WESS0 "+RIGHT(E$,(N-12)*6+1) 1080 GO TO 1320 ! ----------------- ZAP THE ENTIRE FILE ------------------- 1100 X%(I%)=1% FOR I%=1% TO 24% 1120 X%(I%)=-1% FOR I%=25% TO 48% ! SET NO ACCESS FLAGS 1140 A2$(I%,J%)=" " FOR J%=1% TO 4% FOR I%=1% TO 24% 1160 MAT D2=ZER 1180 A9(1)=1 1200 A$=" " : B$=" " 1220 C$="WESS0 " : F$="WESS1 " 1240 FOR I=1 TO 72 STEP 6 1260 D$=LEFT(D$,I-1)+C$+RIGHT(D$,I+5+1) 1280 E$=LEFT(E$,I-1)+C$+RIGHT(E$,I+5+1) 1300 NEXT I ! --------------- UPDATE THE MODEL FILE ------------------- 1320 IF A9(1)<>N THEN 1420 1340 IF N>12 THEN 1400 1360 A$=LEFT(A$+SPACE$(72%),(N-1)*6) 1380 GO TO 1420 1400 B$=LEFT(B$+SPACE$(72%),(N-13)*6) 1420 ! WRITE OUT STRINGS 1440 A1$(1)=A$ : A1$(2)=B$ : A1$(3)=F$ : A1$(4)=D$ : A1$(5)=E$ 1460 PRINT"INITIALIZATION COMPLETE" 1480 CLOSE 1% : GO TO 9999 ! --------------- CHANGE AVAILABILITY OF MODELS --------------- 1482 PRINT"ENTER NUMBER OF MODEL, THEN * TO MAKE AVAILABLE OR": PRINT"NOTHING TO REMOVE AVAILABILITY; =END :" 1484 ON ERROR GO TO 1490 : INPUT Q$ : X%=-1% : IF RIGHT(Q$,LEN(Q$))="*" THEN X%=0% : Q$=LEFT(Q$,LEN(Q$)-1%) 1486 X1%=VAL(Q$) : IF X1%=0% THEN ON ERROR GO TO 0 : PRINT : GO TO 380 1488 X%(24%+X1%)=X% : GO TO 1484 1490 PRINT"* RETYPE *" : RESUME 1482 1500 ! --------------- ASSIGN INSTRUCTOR ACCOUNT AND DISK -------------- 1520 PRINT"INSTRUCTOR ACCOUNT IS "; 1540 IF LEFT(A1$(0%),1%)<>"[" THEN A1$(0%)="" : GO TO 1580 1560 PRINT A1$(0%) : GO TO 1600 1580 PRINT"NOT ASSIGNED" 1600 INPUT"DO YOU WISH TO CHANGE IT (Y/N)";Q$ : IF ASCII(Q$)<>89% THEN 1680 1620 PRINT"ENTER NEW ACCOUNT, DISK IN THIS FORM: [10,10]DK2:" 1640 PRINT"IF DISK IS PUBLIC SIMPLY GIVE ACCOUNT: [10,10]" 1660 INPUT LINE Q$ : Q$=LEFT(Q$,LEN(Q$)-2%) : A1$(0%)=Q$ : GO TO 1520 1680 PRINT : RETURN 2000 ! ---------------- PROTECT ALL MODELS TO <48> --------------- 2010 M$=" 0 1 2 3 4 5 6 6A7 7A" ! MODEL NAMES 2015 Q%=0% : E0$=".BAS" 2020 ON ERROR GO TO 2100 2025 PRINT"PROTECTION OF <48>:" : PRINT"ASSIGNED","NOT ASSIGNED" 2030 FOR I%=1% TO LEN(M$)/2% 2040 M0$="WESS"+MID(M$,(I%-1%)*2%+1%,2%)+E0$ 2050 NAME A1$(0%)+M0$ AS A1$(0%)+M0$+"<48>" 2060 PRINT M0$ 2070 NEXT I% : IF Q% THEN PRINT : ON ERROR GO TO 0 : GO TO 470 2080 Q%=-1% : E0$=".BAC" : GO TO 2030 2100 IF Q%=0% THEN PRINT,M0$ 2120 RESUME 2070 9999 END