100 ! CLISTC -- CLASS LISTING PROGRAM FOR ! NEW CURRICULUM. ASSEMBLED FROM CLASS LIST AND ! SUBJECT FILES. 120 ! THIS PROGRAM MAKES ONE PASS THROUGH THE CLASS LIST ! FILE FOR EACH COURSE. IT IS BEST USED TO PRODUCE ONLY ! ONE OR TWO LISTS. FOR A COMPLETE SET OF CLASS LISTS ! USE THE PROGRAM SET 'CLIST2' AND 'CLIST3'. 140 ! 28-AUG-73 J. WARDEN WABASH COLLEGE 160 H0$(0%)=" " : H0$(1%)="0.5" : H0$(2%)="1.0": H0$(3%)="1.5" 180 S5$=SPACE$(5) 200 PRINT"CLASS LIST PROGRAM" : PRINT 220 ON ERROR GO TO 1320 240 READ C6$,C5$ 260 DATA DK0:CLF74,DK0:SUBF74 280 PRINT"WANT STANDARD FILES "+C6$+" AND "+C5$; : INPUT Y$ : IF ASCII(Y$)=89% THEN 340 300 PRINT"CLASS LIST FILE (DEV:FILE)"; : INPUT LINE C6$ : C6$=LEFT(C6$,LEN(C6$)-2%) 320 PRINT"SUBJECT FILE (DEV:FILE)"; : INPUT LINE C5$ : C5$=LEFT(C5$,LEN(C5$)-2%) 340 OPEN C6$ FOR INPUT AS FILE 1% 360 OPEN C5$ FOR INPUT AS FILE 2% 380 FIELD #1%,127%*R% AS Z$,127% AS A$(R%) FOR R%=0% TO 3% 400 FIELD #2%,127%*S% AS Z$,127% AS S$(S%) FOR S%=0% TO 3% 420 INPUT"OUTPUT TO (DEV:FILE)";N$ : IF LEN(N$)<1% THEN N$="LP:" 440 OPEN N$ FOR OUTPUT AS FILE 3% 460 PRINT"WHICH COURSE TO START"; : INPUT LINE N$ 480 N0%=ASCII(RIGHT(N$,LEN(N$))) : IF N0%=13% OR N0%=10% THEN N$=LEFT(N$,LEN(N$)-1%) : GO TO 480 500 IF LEN(N$)<>6% THEN N$=LEFT(N$+SPACE$(6%),6%) 520 PRINT"LAST COURSE ([R] FOR SAME)"; : INPUT LINE L1$ 540 N0%=ASCII(RIGHT(L1$,LEN(L1$))) : IF N0%=13% OR N0%=10% THEN L1$=LEFT(L1$,LEN(L1$)-1%) : GO TO 540 560 IF LEN(L1$)<2% THEN L1$=N$ ELSE IF LEN(L1$)<>6% THEN L1$=LEFT(L1$+SPACE$(6%),6%) 580 ! SEARCH FOR 1ST SUBJECT 600 IF S%<3% THEN S%=S%+1% ELSE S%=0% : GET #2% 620 IF LEFT(S$(S%),1%)="\" THEN PRINT"NO SUCH COURSE":GOTO1560 640 S2$=LEFT(S$(S%),6%) 660 IF S2$=N$ THEN 740 ELSE IF S2$3% THEN H%=0% 1060 PRINT #3%,H0$(H%);" ";P3$;" ";G1$;CHR$(10%) 1080 L%=L%+1% : K%=K%+1% 1100 IF L%<=25% THEN 800 1120 GOSUB 1140 : GO TO 800 1140 PRINT #3%,CHR$(12%) 1160 PRINT #3%,S5$+"CLASS LIST "+DATE$(0%)+CHR$(10%) 1180 PRINT #3%,S5$+MID(S$(S%),36%,16%)+" "+MID(S$(S%),3%,3%); T$+MID(S$(S%),12%,2%)+":"+MID(S$(S%),14%,2%)+" "; MID(S$(S%),16%,3%)+" "+MID(S$(S%),20%,16%) 1200 PRINT #3%,CHR$(10%) 1220 PRINT #3%,S5$+S5$+"NAME"+SPACE$(23%)+"CC"; 1240 PRINT #3%," C/NC GRD EQ.GRD REMARKS" 1260 PRINT#3 1280 L%=0% 1300 RETURN 1320 IF ERR=11% THEN RESUME 1340 ELSE GO TO 1500 1340 PRINT #3% : PRINT #3%,S5$+"===> ";K%;" TOTAL" 1360 IF LEFT(S$(S%),6%)>=L1$ THEN 1540 1380 ! STOP IF WE'VE REACHED THE LAST COURSE 1400 PRINT #3%,CHR$(12%) 1420 CLOSE 1% 1440 OPEN C6$ FOR INPUT AS FILE 1% 1460 FIELD #1%,127%*R% AS Z$,127% AS A$(R%) FOR R%=0% TO 3% 1480 GO TO 700 1500 PRINT SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)) 1520 PRINT"STOPPED AT COURSE ";LEFT(S$(S%),6%) 1540 PRINT #3%,CHR$(26%) 1560 CLOSE 1%,2%,3% 1580 END