100 ! EDITCL - A RANDOM-ACCESS EDIT PROGRAM FOR ! STUDENT CLASS SCHEDULES. COURSES MAY BE ! ADDED, CHANGED, OR DELETED. CREDIT-NO CREDIT, ! SC'S, AND GRADES MAY BE CHANGED. 110 ! OPTIONS ARE AS FOLLOWS -- 'DEV:' MEANS AUX ! LISTING DEVICE; '/H' MEANS USE HOURS INSTEAD ! OF CREDITS. DEFAULT IS . 120 ! 05-MAR-74 J. WARDEN WABASH COLLEGE 140 OPEN "KB:" AS FILE 4% 160 G2$="A+A A-B+B B-C+C C-D+D D-F CR NC IN CO P RC RN W WF WP" 180 C8$=CHR$(29%)+CHR$(31%)+CHR$(140%)+CHR$(10%) 190 H0=0.5 ! COURSE CREDITS 200 PRINT C8$;"R/A CLASS FILE EDITOR V02D" 202 INPUT"OPTIONS (DEV:/H)";O$ 204 O%=INSTR(1%,O$,"/H") : IF O% THEN H0=1. : O$=LEFT(O$,O%-1%) 206 IF O$="" OR O$="KB:" THEN O%=0% ELSE O%=3% : OPEN O$ FOR OUTPUT AS FILE 3% 210 IF H0>.7 THEN H0$="HR " ELSE H0$="CR " 220 F9$=" \ \ ##.# \\ \\" 240 B%=0% : S9%=1% 260 N%=4% : N1%=510%/N% : N2%=N1%-8% : N3%=N1%*N% : N6%=N%-1% 280 INPUT"CLASS LIST FILE";F$ : OPEN F$ AS FILE 1% 300 FIELD #1%, N1%*R% AS Z$, N1% AS A$(R%) FOR R%=0% TO N6% 320 CHANGE SYS(CHR$(6%)+CHR$(-8%)+CHR$(1%)) TO S% : C0%=(S%(7%)+SWAP%(S%(8%)))*N% : S%(I%)=0% FOR I%=0% TO 30% 400 INPUT"SUBJECT FILE (DEV:FILE)";S7$ 420 OPEN S7$ FOR INPUT AS FILE 5% 440 FIELD #5%,127%*X% AS Z$,127% AS S2$(X%) FOR X%=0% TO 3% 450 OPEN S7$+".TMP" AS FILE 6% 460 DIM S%(300) : DIM #6%,S$(300)=8% 480 PRINT"* WAIT A MOMENT PLEASE *" 500 IF X%<3% THEN X%=X%+1% ELSE X%=0% : GET #5% 520 IF LEFT(S2$(X%),1%)="\" THEN 600 540 S$(S9%)=LEFT(S2$(X%),6%)+MID(S2$(X%),19%,1%) 560 S%(VAL(MID(S2$(X%),8%,3%)))=S9% 580 S9%=S9%+1% : GO TO 500 600 S9%=S9%-1% : S%(0%)=S9% : CLOSE 5% 620 PRINT S9%;"SUBJECTS ON FILE" : PRINT : SLEEP(2%) 640 PRINT C8$ : PRINT"ID: "; : INPUT LINE #4%,N1$ : IF ASCII(N1$)=10% OR ASCII(N1$)=13% THEN 640 660 W3%=0% : Z%=0% 680 Z1%=ASCII(RIGHT(N1$,LEN(N1$))) : IF Z1%=0% OR Z1%=10% OR Z1%=13% THEN N1$=LEFT(N1$,LEN(N1$)-1%) : GO TO 680 700 IF N1$="S" THEN 1580 720 IF LEN(N1$)=6% THEN 740 ELSE PRINT"ID MUST BE 6 CHAR - RETYPE!" : GO TO 640 740 GOSUB 1400 : IF R9%<=0% THEN 640 760 W$=A$(R%) : GOSUB 820 780 GOSUB 1120 : GO TO 640 800 ! 'LOOK' ROUTINE 820 D%=4% : PRINT C8$ 840 PRINT #D%,MID(W$,7%,2%)+" "+MID(W$,13%,28%) 860 IF ASCII(RIGHT(W$,11%))=83% THEN PRINT #D%," SPECIAL STUDENT" 880 PRINT #D% 900 U%=(INSTR(40%,W$," ")-35%)/7% : H,H2=0. 920 FOR I%=1% TO U% 940 C1$=MID(W$,41%+(I%-1%)*7%,7%) : C%=VAL(LEFT(C1$,3%)) 960 H%=ASCII(RIGHT(C1$,4%))-48% : IF H%<1% OR H%>6% THEN H1=0. ELSE H1=H% 980 H1=H1*H0 : H=H+H1 : C1%=ASCII(RIGHT(C1$,5%)) : IF C1%<>67% THEN H2=H2+H1 1000 PRINT #D%,USING F9$,S$(S%(C%)),H1,CHR$(C1%), RIGHT(C1$,6%) 1020 NEXT I% : PRINT #D% 1040 PRINT #D%,H0$;"TWD GRAD:";H2;" TOTAL:";H 1060 PRINT #D%,CHR$(10%)+CHR$(10%) 1080 D%=4% : RETURN 1100 ! INSERT ENTRIES 1120 PRINT">"; 1140 INPUT LINE #4%,A1$ : A1%=ASCII(A1$)-10% : IF A1%*(A1%-3%)=0% THEN 1120 1160 A1%=ASCII(RIGHT(A1$,LEN(A1$))) : IF A1%=0% OR A1%=10% OR A1%=13% THEN A1$=LEFT(A1$,LEN(A1$)-1%) : GO TO 1160 1180 IF A1$="OK" THEN 1340 ! WE'RE DONE 1200 IF A1$="OOPS" OR A1$="EX" THEN 1380 ! SCRATCH 1220 IF A1$="L:" THEN IF O%=0% THEN A1$="L" ELSE D%=3% : GOSUB 840 : GO TO 1120 1240 IF A1$="L" THEN GOSUB 820 : GO TO 1120 1250 A2%=INSTR(3%,A1$,"//D") : IF A2% THEN A2%=43% : GO TO 1280 1260 A2%=INSTR(5%,A1$,"/D") : IF A2%=0% THEN A2%=43% ELSE A1$=LEFT(A1$,A2%-1%)+RIGHT(A1$,A2%+2%) : A2%=45% 1280 GOSUB 1640 1300 IF Q1%>0% THEN 1120 1320 Z%=Z%+1% : H$(Z%)=C2$ : L$(Z%)=T$ : GO TO 1120 1340 ! WRITEOUT ROUTINE 1360 LSET A$(R%)=W$ : PUT #1%, RECORD R1% 1380 RETURN 1400 ! SEARCH FOR ID 1420 M%=C0%+1% : B%=1% 1440 FOR I3%=1% TO 10% 1460 R9%=(M%+B%)/2% : R1%=(R9%+N6%)/N% : R%=R9%-1%-(R1%-1%)*N% : GET #1%, RECORD R1% 1480 T1$=LEFT(A$(R%),6%) 1500 IF T1$=N1$ THEN 1560 ELSE IF T1$57% THEN 1880 ELSE H$=CHR$(H1%) : C1$=LEFT(C1$,P3%-1%)+RIGHT(C1$,P3%+2%) 1860 GO TO 1900 1880 PRINT"* RETYPE *" : Q1%=2% : RETURN 1900 ! SUBJECT SEARCH 1920 C1$=LEFT(C1$+SPACE$(6%),6%) 1940 M%=S9%+1% : B1%=1% 1960 FOR I3%=1% TO 10% 1980 J%=(M%+B1%)/2% 2000 T$=LEFT(S$(J%),6%) 2020 IF T$=C1$ THEN 2080 ELSE IF T$