1 ! HSCORE -- DISPLAY OF HONORS SCORES 2 ! BEFORE USING THIS PROGRAM, THE MASTER SCORE ! FILE MUST HAVE BEEN RANKED IN THE E1, E2, ! AND CO CATEGORIES. 3 ! 15-MAR-74 J. WARDEN WABASH COLLEGE 100 PRINT"HONORS SCORE & RANK DISPLAY" 120 DEF FNF$(X%)=MID(A$(A%),V2%(1%,X%),V2%(2%,X%)) 122 DEF FNF%(X%)=CVT$%(MID(A$(A%),V2%(1%,X%),2%)) 124 DEF FNF (X%)=CVT$F(MID(A$(A%),V2%(1%,X%),4%)) 130 F$(1%)="\\ \"+SPACE$(26%)+"\ ######.# ####.### ####" 132 F$(3%)="\ \ \"+SPACE$(20%)+"\ ######.# ####.### "+ "######.# ####.### ####" 134 F$(2%)=F$(1%)+"" 160 N5%=1% : GOSUB 4000 180 ON ERROR GO TO 300 200 INPUT"INPUT FILE (DEV:FILE)";F1$ 220 INPUT"OUTPUT FILE (DEV:FILE)";F2$ 230 IF F2$="" THEN F2$="KB:" 240 OPEN F1$ FOR INPUT AS FILE 1% 250 FIELD #1%,N1%*A% AS Z$,N1% AS A$(A%) FOR A%=0% TO N6% 260 OPEN F2$ FOR OUTPUT AS FILE 2% 270 INPUT"E1, E2, OR CO";X$ 272 IF X$="E1" THEN X%=1% ELSE IF X$="E2" THEN X%=2% ELSE IF X$="CO" THEN X%=3% ELSE 270 280 PRINT"SPECIAL HEADER"; : INPUT LINE H1$ : H1$=LEFT(H1$,LEN(H1$)-2%) 290 GO TO 390 300 IF ERR<>5% THEN ON ERROR GO TO 0 340 PRINT CHR$(7%)+"** CAN'T FIND "+F1$+" **" : RESUME 360 360 INPUT"INPUT FILE (DEV:FILE)";F1$ ! TRY FOR INPUT FILE AGAIN 380 GO TO 240 390 ON ERROR GO TO 900 395 GOSUB 2200 400 IF A%"Y" THEN 400 430 ON X% GO TO 440,460,480 440 PRINT #2%, USING F$(X%),FNF$(3%),FNF$(6%),FNF(9%), FNF(11%),FNF%(13%) 445 GO TO 500 460 PRINT #2%, USING F$(X%),FNF$(4%),FNF$(6%),FNF(10%), FNF(12%),FNF%(14%) 465 GO TO 500 480 PRINT #2%, USING F$(X%),FNF$(3%)+" "+FNF$(4%),FNF$(6%), FNF(9%),FNF(11%),FNF(10%),FNF(12%),FNF%(15%) 500 IF P%<50% THEN P%=P%+1% ELSE P%=0% : GOSUB 2000 520 GO TO 400 900 IF ERR<>11% THEN ON ERROR GO TO 0 1000 ! WRITE DUMMY ID CODES ON FINAL RECORDS IN BLOCK 1300 CLOSE 1%,2% : GO TO 9999 2000 PRINT #2%,CHR$(12%); 2200 IF LEN(H1$) THEN PRINT #2%,H1$+" "; 2205 PRINT #2%,"HONORS EXAMINATION SCORES (";X$;") ";DATE$(0%) 2210 PRINT #2% 2220 PRINT #2%,"EXAM NAME"+SPACE$(16%); 2222 IF X%>2% THEN 2240 2230 PRINT #2%,SPACE$(7%);" RAW SCORE Z SCORE RANK" 2235 GO TO 2250 2240 PRINT #2%," RAW E1 Z E1 RAW E2 Z E2 RANK" 2250 PRINT #2%,CHR$(10%) 2300 RETURN 3900 ! === FILE ATTRIBUTES LOOKUP SUBROUTINE === 4000 DIM V2$(50),V2%(2,50) 4020 ON ERROR GO TO 4320 4030 F$="SCO" 4040 OPEN V1$+"$ATRIB" FOR INPUT AS FILE 1% 4060 FIELD #1%, 255%*A% AS Z$, 255% AS A$(A%) FOR A%=0% TO 1% 4080 IF A%<1% THEN A%=A%+1% ELSE A%=0% : GET #1% 4100 IF LEFT(A$(A%),3%)="\\\" THEN PRINT"NO SUCH FILE TYPE" : GO TO 9999 4120 IF LEFT(A$(A%),3%)<>F$ THEN 4080 4140 V2%(2%,0%),N%=VAL(MID(A$(A%),4%,2%)) : N9%=VAL(MID(A$(A%),6%,1%))*2% 4160 N1%=510%/N% : N2%=N1%-8% : N3%=N%*N1% : N6%=N%-1% 4180 FOR V%=1% TO 50% 4200 V2$(V%)=MID(A$(A%),42%+(V%-1%)*4%,2%) : IF V2$(V%)=" " THEN 4280 4220 V5%=CVT$%(MID(A$(A%),44%+(V%-1%)*4%,2%)) 4240 V2%(1%,V%)=ASCII(CHR$(V5%)) : V2%(2%,V%)=ASCII(CHR$(SWAP%(V5%))) 4260 NEXT V% 4280 V2%(1%,0%)=V%-1% : IF N5% THEN 4300 ELSE PRINT"CODES: "; : PRINT V2$(I%)+" "; FOR I%=1% TO V%-1% : PRINT 4300 CLOSE 1% : ON ERROR GO TO 0 : RETURN 4320 IF ERR<>5% AND ERR<>21% THEN 4380 ELSE RESUME 4340 4340 IF V1$="" THEN V1$="DK1:" : GO TO 4040 4380 PRINT"THE FILE '$ATRIB' HAS BEEN DELETED;" : PRINT"IT MUST BE REPLACED TO PROCEED." 9999 END