5 REM 2.70 CHARACTER GENERATOR PROGRAM 6 REM BRIAN KRAUSE 7 REM MAY 2, 1989 10 OPEN "COM1:300,N,8,1,RS,CS,DS,CD" AS #1 20 DIM CG$(10), N(200), N$(200) 30 FOR R=240 TO 243:PRINT #1,CHR$(R);CHR$(16);:NEXT R 35 PRINT #1,CHR$(241);CHR$(230);:PS=1 100 CLS:LOCATE 6,1:PRINT STRING$(79,"*"):LOCATE 19,1:PRINT STRING$(79,"*") 101 KEY OFF 105 FOR R=7 TO 18:LOCATE R,1:PRINT "*";:LOCATE R,79:PRINT "*";:NEXT R 110 LOCATE 8,3:PRINT "MIT STUDENT CABLE TELEVISION 1989 2.70 CONTEST CHARACTER GENERATOR DRIVER" 112 LOCATE 15,14:PRINT "COPYRIGHT (C) 1989, MIT STUDENT CABLE TELEVISION" 114 LOCATE 17,26:PRINT "READING NAMES...PLEASE WAIT." 118 ON ERROR GOTO 170 120 OPEN "270NAME.DAT" FOR INPUT AS #2 121 ON ERROR GOTO 0:INPUT #2,BS 125 FOR R=1 TO BS:INPUT #2,N(R):LINE INPUT #2,N$(R):NEXT R:CLOSE #2 129 GOTO 200 130 CLS 140 LOCATE 17,26:PRINT "PRESS ANY KEY TO BEGIN." 150 GOSUB 9000 160 CLS 165 GOTO 200 170 RESUME 171 171 ON ERROR GOTO 0:LOCATE 17,22:PRINT "PRESS ANY KEY TO BEGIN TYPING NAMES." 172 BS=0 173 CLOSE #2 175 GOSUB 9000:GOTO 6000 200 CLS:LOCATE 1,1:PRINT STRING$(79,"*");:LOCATE 4,1:PRINT STRING$(79,"*");:LOCATE 2,1:PRINT "*":LOCATE 2,79:PRINT "*":LOCATE 3,1:PRINT "*":LOCATE 3,79:PRINT "*" 202 LOCATE 2, 5:PRINT "MIT STUDENT CABLE TELEVISION 1989 2.70 CONTEST CHARACTER GENERATOR DRIVER" 204 LOCATE 3, 36:PRINT "MAIN MENU" 210 LOCATE 12,1 211 PRINT "<N>ame and number adjustments" 212 PRINT "<M>ain title display" 215 PRINT "<S>tandby notice" 216 PRINT "<A>nnouncer titles" 219 PRINT "<W>inner screen" 222 PRINT "< > Set up 2 players' names" 224 PRINT "<T> Declare top one winner" 226 PRINT "<B> Declare bottom one winner" 256 PRINT "<C>lear screen" 258 PRINT "<Q>uit" 260 GOSUB 9000 262 LOCATE 6,1:PRINT SPACE$(79) 270 IF K$="N" OR K$="n" THEN GOTO 1000 272 IF K$="M" OR K$="m" THEN GOSUB 8400:Y=3:M$="MIT STUDENT":GOSUB 8300:Y=4:M$="CABLE TELEVISION":GOSUB 8300:Y=6:M$="1989 2.70 CONTEST":GOSUB 8300:LOCATE 6,1:PRINT "Main Title on":GOSUB 8200:GOTO 210 274 IF K$="S" OR K$="s" THEN GOSUB 8400:Y=5:M$="PLEASE STAND BY":GOSUB 8300:LOCATE 6,1:PRINT "Standby notice being displayed.":GOSUB 8200:GOTO 210 280 IF K$="T" OR K$="t" THEN X=1:Y=10:M$=" ":GOSUB 8500:X=1:Y=9:M$=CHR$(92):GOSUB 8500:LOCATE 6,1:PRINT "Top player checked.":GOTO 210 282 IF K$="B" OR K$="b" THEN X=1:Y=9:M$=" ":GOSUB 8500:X=1:Y=10:M$=CHR$(92):GOSUB 8500:LOCATE 6,1:PRINT "Bottom player checked.":GOTO 210 284 IF K$="Q" OR K$="q" THEN CLOSE:END 286 IF K$="C" OR K$="c" THEN GOSUB 8400:GOSUB 8200:LOCATE 6,1:PRINT "Display cleared.":GOTO 210 290 IF K$=" " OR K$=CHR$(13) THEN GOSUB 2000:GOTO 210 300 IF K$="A" OR K$="a" THEN GOTO 500 390 GOTO 260 500 LOCATE 6,1:PRINT "<S>teve Danner" 502 PRINT "<J>ulie Temple" 504 PRINT "<L> Julie on left; Steve on right" 506 PRINT "<R> Julie on right; Steve on left" 550 GOSUB 9000 555 IF K$="S" OR K$="s" THEN GOSUB 8400:Y=10:M$="Steve Danner":GOSUB 8300:GOSUB 8200:LOCATE 6,1:PRINT "Steve Danner title displayed.":GOTO 590 557 IF K$="J" OR K$="j" THEN GOSUB 8400:Y=10:M$="Julie Temple":GOSUB 8300:GOSUB 8200:LOCATE 6,1:PRINT "Julie Temple title displayed.":GOTO 590 560 IF K$="L" OR K$="l" THEN GOSUB 8400:X=4:Y=9:M$="Julie":GOSUB 8100:X=15:Y=9:M$="Steve":GOSUB 8100:X=3:Y=10:M$="Temple":GOSUB 8100:X=15:Y=10:M$="Danner":GOSUB 8100:GOSUB 8200:LOCATE 6,1:PRINT "Julie/Steve displayed.":GOTO 590 562 IF K$="R" OR K$="r" THEN GOSUB 8400:X=4:Y=9:M$="Steve":GOSUB 8100:X=15:Y=9:M$="Julie":GOSUB 8100:X=3:Y=10:M$="Danner":GOSUB 8100:X=15:Y=10:M$="Temple":GOSUB 8100:GOSUB 8200:LOCATE 6,1:PRINT "Steve/Julie displayed.":GOTO 590 580 GOTO 550 590 FOR R=7 TO 11:LOCATE R,1:PRINT SPACE$(79):NEXT R:GOTO 210 999 END 1000 REM NAME AND NUMBER ADJUSTMENT 1005 CLS:PRINT "Name and number adjustment":PRINT:PRINT "<A>dd name(s)" 1010 PRINT "<S> Change spelling; search by number" 1012 PRINT "<N> Change number; search by number" 1014 PRINT "<T> Change spelling; search by misspelled name" 1016 PRINT "<O> Change number; search by name exactly as entered" 1018 PRINT "<L>ist all people" 1020 GOSUB 9000 1050 IF K$="A" OR K$="a" THEN GOTO 6000 1060 IF K$="S" OR K$="s" THEN GOSUB 1100:GOSUB 1200:GOTO 1600 1062 IF K$="N" OR K$="n" THEN GOSUB 1100:GOSUB 1400:GOTO 1600 1064 IF K$="T" OR K$="t" THEN GOSUB 1300:GOSUB 1200:GOTO 1600 1066 IF K$="O" OR K$="o" THEN GOSUB 1300:GOSUB 1400:GOTO 1600 1068 IF K$="L" OR K$="l" THEN GOTO 1500 1090 GOTO 1020 1100 REM FIND NUMBER 1105 CLS 1110 INPUT "Number of person to search for: ",NE 1120 FOR R=1 TO BS:IF N(R)=NE THEN E=R:E$=N$(R):RETURN 1130 NEXT R:PRINT "That number does not exist.":GOTO 1110 1200 REM CHANGE E'S NAME 1205 PRINT "Number ";N(E);" currently corresponds to the name ";E$;"." 1210 LINE INPUT "New name: ",N$(E) 1215 IF LEN(N$(E))>20 THEN PRINT "The new name is too long. Please type a new one.":GOTO 1210 1220 RETURN 1300 REM FIND E FOR NUMBER 1305 CLS 1310 INPUT "Name to be searched for: ",NE$ 1320 FOR R=1 TO BS:IF NE$=N$(R) THEN E=R:E$=N$(R):RETURN 1330 NEXT R:PRINT "That name does not exist.":GOTO 1310 1400 REM CHANGE NUMBER 1410 PRINT "Number ";N(E);" currently corresponds to the name ";E$;"." 1420 INPUT "New number: ",X 1430 FOR R=1 TO BS:IF X=N(R) AND R<>E THEN PRINT "That number is someone else's. Please type a new number.":GOTO 1420 1440 NEXT R:N(E)=X:RETURN 1500 REM LIST 1505 CLS 1510 FOR R=1 TO BS 1520 PRINT N(R),N$(R) 1525 IF R/20=INT(R/20) THEN LOCATE 22,1:PRINT "Press any key to continue.":GOSUB 9000:CLS 1530 NEXT R 1532 LOCATE 22,1:PRINT "Press any key to return to main menu.":GOSUB 9000 1535 GOTO 200 1600 REM PRINT FILE 1610 CLOSE #2:OPEN "270NAME.DAT" FOR OUTPUT AS #2 1620 PRINT #2,BS:FOR R=1 TO BS:PRINT #2,N(R):PRINT #2,N$(R):NEXT R 1630 CLOSE #2 1640 GOTO 200 2000 REM GET 2 NAMES 2005 LOCATE 6,1:INPUT "Number of top player: ",P1 2006 IF P1=0 THEN P1$="Placebo":GOTO 2020 2010 FOR R=1 TO BS:IF P1=N(R) THEN P1$=N$(R):GOTO 2020 2012 NEXT R:PRINT "There is no such player!":GOTO 2005 2020 LOCATE 7,1:PRINT SPACE$(79):LOCATE 7,1:INPUT "Number of bottom player: ",P2 2021 IF P2=0 THEN P2$="Placebo":GOTO 2030 2022 FOR R=1 TO BS:IF P2=N(R) THEN P2$=N$(R):GOTO 2030 2024 NEXT R:PRINT "There is no such player!":GOTO 2020 2030 LOCATE 7,1:PRINT SPACE$(79):LOCATE 7,1:PRINT " ";P1$:PRINT SPACE$(79):LOCATE 8,1:PRINT " ";P2$ 2035 GOSUB 8400:X=3:Y=9:M$=P1$:GOSUB 8100 2036 X=3:Y=10:M$=P2$:GOSUB 8100:GOSUB 8200:PRINT SPACE$(79);:LOCATE 9,1:PRINT "being displayed." 2040 RETURN 6000 REM ENTER NAMES 6001 CLS 6002 PRINT "ENTER 0 FOR NUMBER WHEN FINISHED. (THIS IS BASIC!)":PRINT 6004 INPUT "NUMBER: ",X 6006 IF X=0 THEN GOTO 6040 6007 FOR R=1 TO BS:IF X=N(R) THEN PRINT "That number has already been used. Maybe you should enter 0 here and then":PRINT "make a correction.":GOTO 6004 6008 NEXT R 6010 BS=BS+1:N(BS)=X 6011 LINE INPUT "NAME: ";N$(BS) 6012 IF LEN(N$(BS))>20 THEN PRINT "That name won't fit on the screen. Try using just the first initial.":GOTO 6011 6014 GOTO 6004 6040 OPEN "270NAME.DAT" FOR OUTPUT AS #2 6042 PRINT #2,BS:FOR R=1 TO BS:PRINT #2,N(R):PRINT #2,N$(R):NEXT R:CLOSE #2 6045 GOTO 200 8000 REM CONVERT M$ TO PROPERLY LOWER-CASED FOR CG 8002 FOR R=1 TO LEN(M$):C=ASC(MID$(M$,R,1)) 8004 IF C>95 AND C<128 THEN C=C+128-32:M$=LEFT$(M$,R-1)+CHR$(C)+MID$(M$,R+1) 8006 NEXT R:RETURN 8100 REM PRINT UNCONVERTED M$ AT X,Y ON PREVIEW SCREEN 8105 GOSUB 8000 8110 PRINT #1,CHR$(21);:FOR R=1 TO Y-1:PRINT #1,CHR$(19);:NEXT R 8112 FOR R=1 TO X-1:PRINT #1,CHR$(17);:NEXT R:PRINT #1,M$ 8120 RETURN 8200 REM SWITCH PROGRAM AND PREVIEW SCREENS 8205 PS=1-PS:PRINT #1,CHR$(229+PS);CHR$(242-PS); 8210 RETURN 8300 REM PRINT UNCONVERTED M$ CENTERED ON LINE Y ON PREVIEW SCREEN 8302 GOSUB 8000 8305 PRINT #1,CHR$(21);:FOR R=1 TO Y-1:PRINT #1,CHR$(19);:NEXT R 8310 PRINT #1,LEFT$(M$+SPACE$(22),22); 8312 PRINT #1,CHR$(21);:FOR R=1 TO Y-1:PRINT #1,CHR$(19);:NEXT R:PRINT #1,CHR$(23); 8320 RETURN 8400 REM CLEAR PVW SCREEN 8405 PRINT #1,CHR$(16);CHR$(21); 8420 RETURN 8500 REM PRINT UNCONVERTED M$ AT X,Y ON PROGRAM SCREEN 8505 GOSUB 8000:PRINT #1,CHR$(241+PS); 8510 PRINT #1,CHR$(21);:FOR R=1 TO Y-1:PRINT #1,CHR$(19);:NEXT R 8512 FOR R=1 TO X-1:PRINT #1,CHR$(17);:NEXT R:PRINT #1,M$ 8520 PRINT #1,CHR$(242-PS);:RETURN 9000 K$=INKEY$:IF K$="" THEN 9000 ELSE RETURN