10 KEY OFF:CLS
20 SCREEN 0
30 WIDTH 40
40 PRINT"???????????????????????????????????????"
50 PRINT"??????????????????????????????????????"
60 PRINT"??                                   ??"
70 PRINT"??            5016-A.BAS             ??"
80 PRINT"??            FLASH CARD             ??"
90 PRINT"??                                   ??"
100 PRINT"??                                   ??"
110 PRINT"?? BROUGHT TO YOU BY THE MEMBERS OF  ??"
120 PRINT"??      ????? ????? ????? ?????      ??"
130 PRINT"??        ?   ?   ? ?     ?   ?      ??"
140 PRINT"??        ?   ????? ?     ?   ?      ??"
150 PRINT"??        ?   ?     ?     ?   ?      ??"
160 PRINT"??      ????? ?     ????? ?????      ??"
170 PRINT"??                                   ??"
180 PRINT"??      International PC Owners      ??"
190 PRINT"??                                   ??"
200 PRINT"??P.O. Box 10426, Pittsburgh PA 15234??"
210 PRINT"??                                   ??"
220 PRINT"??????????????????????????????????????"
230 PRINT"???????????????????????????????????????"
240 PRINT
250 PRINT "       PRESS ANY KEY TO CONTINUE
260 A$=INKEY$: IF A$="" THEN 260
270 WIDTH 80
280 CLS
1000 WIDTH 40
1010 COLOR 7,0,0
1020 KEY OFF:COLOR 7,0,0:CLS:SCREEN 0,1
1030 ' * * * Makes cover * * *
1040 COLOR 9,0,0:PRINT CHR$(201)+STRING$(37,205)+CHR$(187);
1050 FOR X=2 TO 23:LOCATE X,1:PRINT STRING$(1,186):LOCATE X,39:PRINT STRING$(1,186);:NEXT X:PRINT CHR$(200)+STRING$(37,205)+CHR$(188);
1060 PLAY "L8MBO0AAAAAAAAAAAAAAA"
1070 S$="FLASH CARD "
1080 COLOR 15:FOR X=1 TO 23:A$=LEFT$(S$,X):LOCATE 3,39-X,0:PRINT A$:FOR Y=1 TO 100:NEXT Y,X
1090 LOCATE 22,8!:COLOR 17:PRINT "PRESS SPACEBAR TO CONTINUE."
1100 COLOR 4:LOCATE 9,9:PRINT CHR$(201)+STRING$(20,205)+CHR$(187):FOR X=10 TO 15:LOCATE X,9:PRINT STRING$(1,186):LOCATE X,30:PRINT STRING$ (1,186):NEXT X:LOCATE 15,9:PRINT CHR$(200)+STRING$(20,205)+CHR$(188)
1110 COLOR 9:LOCATE 11,15:PRINT "Practice":LOCATE 13,15,0 :PRINT "and Drill"
1120 Q$=INKEY$:IF Q$=" " THEN 1130 ELSE 1120
1130 KEY OFF:CLS:COLOR 7,0
1140 ' * * * Dirctions * * *
1150 LOCATE 1,15:PRINT "DIRCTIONS"
1160 PRINT :PRINT "You may only enter thirty cards and theymust be  no longer then forty characters per side.":PRINT
1170 PRINT "You can save your lists on disk and  youcan  call  your lists  back  at a  latertime.There is an option to choose either side  of the card you wish.There is also an option to edit your cards in case of a mistake."
1180 PRINT :PRINT "All you have to do is follow the menus  and pick which option you want and the  computer will do the rest.Good luck and happy studying, well good luck at least."
1190 INPUT"Enter drive for data (AB)";D$
1200 IF D$<>"b" AND D$<>"B" THEN D$="A"
1210 LOCATE 23,7:PRINT "PRESS SPACEBAR TO CONTINUE."
1220 A$=INKEY$:IF A$=" " THEN GOTO 1230 ELSE 1220
1230 ' * * * Initializing * * *
1240 DIM S1$(30), S2$(30), SS1$(30), SS2$(30)
1250 RANDOMIZE(VAL(RIGHT$(TIME$,2)+MID$(TIME$,4,2)))
1260 X=0:FF=1:Q=0:S=-1:SCREEN 0,1:KEY OFF:CLS:GOTO 2600
1270 ' * * * Makes cards * * *
1280 INPUT "ENTER NUMBER OF CARDS";N
1290 FOR A=1 TO N
1300 PRINT "ENTER SIDE ONE OF CARD";A:INPUT S1$(A)
1310 PRINT "ENTER SIDE TWO OF CARD";A:INPUT S2$(A)
1320 PRINT :PRINT:NEXT A
1330 RETURN
1340 ' * * * Save cards * * *
1350 GOSUB 2910
1360 GOSUB 2760
1370 LOCATE 2,16:COLOR 21:PRINT "Files used":COLOR 15
1380 ON ERROR GOTO 1400
1390 LOCATE 6,1:FILES D$+":*.   "
1400 RESUME NEXT
1410 LOCATE 23,1:INPUT "ENTER FILE NAME,(0)FOR NONE.";F$
1420 IF F$="0" THEN RETURN ELSE O$=D$+":"+F$+".LST"
1430 OPEN O$ FOR OUTPUT AS #2
1440 PRINT#2,N
1450 CLOSE #2
1460 IF N=0 THEN N=X
1470 FF$=D$+":"+F$:GOSUB 2940
1480 OPEN FF$ AS #1 LEN=80
1490 FOR X=1 TO N
1500 FIELD #1, 40 AS SS1$(X), 40 AS SS2$(X)
1510 LSET SS1$(X)=S1$(X)
1520 LSET SS2$(X)=S2$(X)
1530 PUT #1,X
1540 NEXT X
1550 X=X-1:CLOSE #1
1560 RETURN
1570 ' * * * Load cards * * *
1580 GOSUB 2910
1590 LU=3
1600 GOSUB 2760
1610 LOCATE 2,16:COLOR 21:PRINT "Data files":COLOR 15
1620 ON ERROR GOTO 1640
1630 LOCATE 6,1:FILES D$+":*.   "
1640 RESUME NEXT
1650 LOCATE 23,1:Q=1:INPUT "ENTER NAME OF FILE,(0)FOR NONE";F$
1660 IF F$="0" THEN RETURN ELSE O$=D$+":"+F$+".LST"
1670 OPEN O$ FOR INPUT AS #2
1680 INPUT #2,N
1690 CLOSE #2
1700 FF$=D$+":"+F$
1710 OPEN FF$ AS #1 LEN=80
1720 FOR X=1 TO N
1730 FIELD #1, 40 AS SS1$(X), 40 AS SS2$(X)
1740 GET #1,X
1750 S1$(X)=SS1$(X):S2$(X)=SS2$(X)
1760 NEXT X
1770 CLOSE #1
1780 RETURN
1790 ' * * * Drill cards * * *
1800 GOSUB 2760
1810 LOCATE 2,15:COLOR 21:PRINT "Test options":COLOR 15
1820 LOCATE 7,14:PRINT "[1] SIDE ONE"
1830 LOCATE 9,14:PRINT "[2] SIDE TWO"
1840 LOCATE 11,14:PRINT "[3] BOTH SIDES"
1850 LOCATE 13,14:PRINT "[4] MENU"
1860 LOCATE 21,11:PRINT "[Esc] END PROGRAM"
1870 LOCATE 23,8:PRINT "ENTER OPTION TO CONTINUE."
1880 P$=INKEY$:IF P$=CHR$(27) THEN RETURN ELSE IF VAL(P$)<1 OR VAL(P$)>4 THEN 1880
1890 P=VAL(P$)
1900 IF P=4 THEN RETURN
1910 CLS:WIDTH 80:GOTO 1930
1920 FOR Y=1 TO 3000:NEXT Y:CLS:COLOR 15
1930 SIDE=INT(RND*2)+1
1940 CARD=INT(RND*N)+1
1950 IF P=3 THEN 1970
1960 IF P=1 THEN SIDE=2 ELSE SIDE=1
1970 IF S1$(CARD)="" OR S2$(CARD)="" THEN WIDTH 40:LOCATE 11,16,0:PRINT "BAD DATA":FOR TT=1 TO 2000:NEXT TT:RETURN
1980 LOCATE 1,20:PRINT "SIDE";SIDE:LOCATE 1,58:PRINT "NO.";CARD
1990 GOSUB 2820
2000 FFF=1:FF=1
2010 JJ$=RIGHT$(S1$(CARD),FF):LL=ASC(JJ$):IF LL<>32 THEN CC=40-FF ELSE FF=FF+1:GOTO 2010
2020 JJJ$=RIGHT$(S2$(CARD),FFF):LLL=ASC(JJJ$):IF LLL<>32 THEN CCC=40-FFF ELSE FFF=FFF+1:GOTO 2020
2030 IF LU<>3 THEN CC=LEN(S1$(CARD)):CCC=LEN(S2$(CARD))
2040 IF SIDE=1 THEN WW=40-CC:HH=WW/2:LOCATE 4,21+HH:PRINT S1$(CARD) ELSE WW=40-CCC:HH=WW/2:LOCATE 4,21+HH:PRINT S2$(CARD)
2050 LOCATE 4,61:PRINT CHR$(179)
2060 GOSUB 2860
2070 LOCATE 8,20:PRINT "ENTER OTHER SIDE OF CARD."
2080 LOCATE 23,20:PRINT "TYPE IN {END} FOR SCORE AND TO END TEST."
2090 LOCATE 11,21:INPUT "",AAW$
2100 IF AAW$="END" OR AAW$="end" THEN 2190
2110 IF Q=1 THEN W=LEN(AAW$):Z=40-W:K$=SPACE$(Z):AW$=AAW$+K$ ELSE AW$=AAW$
2120 S=S+1:IF SIDE=1 THEN 2130 ELSE 2160
2130 IF SIDE=1 AND AW$=S2$(CARD) THEN R=R+1:LOCATE 15,38:PRINT "RIGHT" ELSE H=H+1:LOCATE 15,26:PRINT "WRONG,THE ANSWER IS AS FOLLOWS"
2140 IF AW$<>S2$(CARD) THEN LOCATE 17,30:PRINT S2$(CARD)
2150 GOTO 1920
2160 IF SIDE=2 AND AW$=S1$(CARD) THEN R=R+1:LOCATE 15,38:PRINT "RIGHT" ELSE H=H+1:LOCATE 15,26:PRINT "WRONG,THE ANSWER IS AS FOLLOWS"
2170 IF AW$<>S1$(CARD) THEN LOCATE 17,30:PRINT S1$(CARD)
2180 GOTO 1920
2190 WIDTH 40:CLS:LOCATE 8,11,0:PRINT R;"RIGHT  ";H;"WRONG"
2200 FOR L=1 TO 4000:NEXT L:RETURN
2210 ' * * * Editing cards * * *
2220 LOCATE 23,1:INPUT "WHAT CARD DO YOU WANT TO EDIT.";E
2230 LOCATE 1,1:PRINT "CARD";E;"   SIDE ONE"
2240 PRINT S1$(E)
2250 PRINT "CARD";E;"   SIDE TWO"
2260 PRINT S2$(E)
2270 LOCATE 23,1:PRINT SPACE$(39):LOCATE 23,1:INPUT "ENTER SIDE TO BE EDITED.";W
2280 IF W=0 THEN RETURN
2290 IF W=1 THEN 2300 ELSE 2340
2300 LOCATE 23,1:PRINT "ENTER NEW DATA FOR CARD.    ";S1$(E)
2310 INPUT S1$(E)
2320 K=40-LEN(S1$(E)):IF Q=1 THEN S1$(E)=S1$(E)+SPACE$(K)
2330 RETURN
2340 LOCATE 23,1:PRINT "ENTER NEW DATA FOR CARD.    "
2350 INPUT S2$(E)
2360 K=40-LEN(S2$(E)):IF Q=1 THEN S2$(E)=S2$(E)+SPACE$(K)
2370 RETURN
2380 ' * * * Lists whats in file * * *
2390 CLS:LOCATE 9,14:PRINT "TURN ON PRINTER"
2400 LOCATE 12,15:PRINT "INSERT  PAPER"
2410 LOCATE 23,6:PRINT "{P} FOR PRINTER {S} FOR SCREEN"
2420 LOCATE 21,9:PRINT "PRESS {C} FOR CHEAT NOTES"
2430 A$=INKEY$:IF A$="" THEN 2420 ELSE IF A$="P" THEN ZA=1 ELSE IF A$="C" THEN ZA=2
2440 IF N=0 THEN 2450 ELSE X=N:GOTO 2460
2450 IF X=0 THEN X=N-1
2460 CLS:GOSUB 3120:WIDTH 80
2470 FOR L=1 TO X:YY=0
2480 PRINT "NO.";L;" SIDE 1 ";S1$(L)
2490 YY=YY+1
2500 BB$=MID$(S1$(L),40-YY,1):IF BB$=" " THEN 2490 ELSE SS1$(L)=LEFT$(S1$(L),40-YY)
2510 IF ZA=2 THEN LPRINT CHR$(27)"1";CHR$(15);CHR$(27)"S"CHR$(1);SS1$(L)+"-"+S2$(L)
2520 IF ZA=1 THEN LPRINT CHR$(13);:LPRINT "NO.";L;" SIDE 1 ";S1$(L)
2530 PRINT "NO.";L;" SIDE 2 ";S2$(L)
2540 IF ZA=1 THEN LPRINT "NO.";L;" SIDE 2 ";S2$(L)
2550 PRINT :T=T+1:IF T=7 OR L=X THEN LOCATE 23,30,0:PRINT "PRESS SPACEBAR TO CONTINUE.":T=0 ELSE GOTO 2570
2560 A$=INKEY$:IF A$=" " THEN CLS:GOTO 2570 ELSE 2560
2570 NEXT L
2580 WIDTH 40:IF X=0 THEN LOCATE 11,17,0:PRINT "NO CARDS":FOR TT=1 TO 2000:NEXT TT
2590 RETURN
2600 ' * * * Options * * *
2610 CLS:WIDTH 40:GOSUB 2760
2620 LOCATE 2,16:COLOR 21:PRINT "Flash Card":COLOR 15
2630 LOCATE 7,14:PRINT "[1] MAKE CARDS"
2640 LOCATE 9,14:PRINT "[2] SAVE CARDS"
2650 LOCATE 11,14:PRINT "[3] TEST CARDS
2660 LOCATE 13,14:PRINT "[4] LOAD CARDS"
2670 LOCATE 15,14:PRINT "[5] EDIT CARDS
2680 LOCATE 17,14:PRINT "[6] LIST CARDS
2690 LOCATE 21,11:PRINT "[Esc] END PROGRAM"
2700 LOCATE 23,8,0:PRINT "ENTER OPTION TO CONTINUE."
2710 O$=INKEY$:IF O$=CHR$(27) THEN CLS:END ELSE IF VAL(O$)<1 OR VAL(O$)>7 THEN 2710
2720 CLS:ON VAL(O$) GOSUB 1280,1340,1790,1570,2220,2380,2380
2730 GOTO 2600
2740 END
2750 ' * * * Makes title outline * * *
2760 P=0:R=0:H=0
2770 COLOR 10:CLS:LOCATE 1,13:PRINT CHR$(201)+STRING$(14,205)+CHR$(187)
2780 FOR U=2 TO 3:LOCATE U,13:PRINT CHR$(186):LOCATE U,28:PRINT CHR$(186):NEXT
2790 LOCATE 3,13:PRINT CHR$(200)+STRING$(14,205)+CHR$(188)
2800 RETURN
2810 ' * * * Makes cards outline * * *
2820 LOCATE 2,20:PRINT CHR$(218)+STRING$(40,196)+CHR$(191)
2830 FOR V=3 TO 5:LOCATE V,20:PRINT CHR$(179):LOCATE V,61:PRINT CHR$(179):NEXT V
2840 LOCATE 6,20:PRINT CHR$(192)+STRING$(40,196)+CHR$(217)
2850 RETURN
2860 LOCATE 9,20:PRINT CHR$(218)+STRING$(40,196)+CHR$(191)
2870 FOR V=10 TO 12:LOCATE V,20:PRINT CHR$(179):LOCATE V,61:PRINT CHR$(179):NEXT V
2880 LOCATE 13,20:PRINT CHR$(192)+STRING$(40,196)+CHR$(217)
2890 RETURN
2900 ' * * * Save and load dirctions * * *
2910 LOCATE 10,13:PRINT "INSERT DATA DISK"
2920 LOCATE 23,8:PRINT "PRESS SPACEBAR TO CONTINUE."
2930 A$=INKEY$:IF A$=" " THEN RETURN ELSE 2930
2940 ' * * * Checks to see if file is used * * *
2950 CLS:GOSUB 2750:COLOR 21:LOCATE 2,16:PRINT "File check":COLOR 15
2960 ON ERROR GOTO 2980
2970 NAME FF$ AS FF$
2980 Z=ERR:RESUME 2990
2990 ON ERROR GOTO 0
3000 IF Z=53 THEN 3110 ELSE IF Z<>58 THEN PRINT "UNEXPECTED ERROR";ERR:STOP
3010 LOCATE 6,9:PRINT "FILE ";F$" ALREADY EXISTS."
3020 LOCATE 9,10:PRINT "[1] ENTER ANOTHER NAME"
3030 LOCATE 11,10:PRINT "[2] SAVE FILE"
3040 LOCATE 13,10:PRINT "[3] MENU"
3050 LOCATE 21,11:PRINT "[Esc] END PROGRAM"
3060 LOCATE 23,8,0:PRINT "ENTER OPTION TO CONTINUE."
3070 O$=INKEY$:IF O$=CHR$(27) THEN CLS:END ELSE IF VAL(O$)<1 OR VAL(O$)>3 THEN 3070
3080 CLS:ON VAL(O$) GOSUB 1340,3110,2600
3090 GOTO 3110
3100 KILL "fF$":X=0
3110 RETURN
3120 ' * * * ABC TO LIST * * *
3130 LOCATE 11,14:PRINT "Getting Cards"
3140 FOR I=1 TO X-1
3150 FOR J=I TO X
3160 IF S1$(J)