3
Applications and Education
Spelling Quiz
Edward Perrin
Here is an educational program that will help students learn their weekly spelling words. Word lists can be SAVEd to disk or tape for practice later. Requires 32K for disk and 16K for tape.

"Spelling Quiz" allows you or your child to enter weekly spelling words into the computer and save them on tape or disk. All the words for the year can be saved at once, or each week can be saved separately (20 words at a time) as the school year progresses.

The program allows you to enter up to 20 words at a time. I have found that most weekly spelling assignments are no more than 20 words, so this works out rather well. The program will accept fewer than 20 words, but no more than 20.

The program prompts are self-explanatory, but it would be good to read through the following instructions.

Load in the program with the BASIC cartridge inserted. The loading time for tape is about four minutes.

Type in RUN. After the title page you will be asked if you want to Create or Retrieve a list of words to work on. You will also be asked if you are using a Disk or Tape.

Creating Word Lists

To create a list, simply type in up to 20 words, no more than 20 letters each and with no leading or trailing spaces, one at a time, and hit the RETURN key. Be sure each word is spelled correctly before hitting RETURN. If you enter fewer than 20 words, type in an * following the last input. After the last word or the * you will be asked to type in some sort of identifier for that particular list. Use "Chapter 4" or "List 189," etc. Use an identifier that your child will understand. The identifier is used to make sure your child has retrieved the correct list.

Disk users will be asked to enter a filename. Only the filename is necessary; the program will supply the "D1:". Be sure to make the name unique and meaningful.

Tape users will need a blank tape or a tape which has been used to SAVE other word lists. Be sure to note the tape counter number on a sheet of paper and store the paper with the word tape.

If you already have words stored, just follow the prompts to LOAD the words.

Check the list and the identifier to be sure that this is the list you wanted to use. If not, you have the option to LOAD a new list or create a new one as needed.

Once the words are LOADed in with the Create or Retrieve option, your child is ready to use the program. You now choose one of three options: spell a Certain number of words correctly, spell an unlimited number of words correctly, or End.

If you choose the C option, you will be graded, and the program will terminate when then number of words spelled correctly equals the number you entered at the prompt. If you choose the unlimited option (by pressing RETURN), you can spell only 10,000 words before the program terminates. It is easy to change the 10,000 to another upper limit. Change the number in the last line of the program to stop the program automatically at a preset number.

The Quiz Begins

When you have made all of the necessary choices, the game is ready to play. The screen will show the number of the word being scrambled, the score (the number of words spelled correctly), a scrambled word, and the attempt number. At the bottom of the screen is a GRAPHICS 0 window where you will type your answers. The word on top will help the child who cannot figure out the scrambled word. The program checks spelling competence rather than ability to unscramble words, so there is no penalty for not unscrambling correctly. Use this option as you wish.

Your child will then have three tries to spell the word correctly. If the spelling is correct, the screen will respond with an encouraging CORRECT and a happy sound. After three tries, the program will give the correct spelling and set a different screen to allow the child to practice the misspelled word.

Practice Screen

The practice screen will not allow misspellings. It does allow the child to press the * to exit when he or she wants to. After each word in this mode, be sure to press the space bar, not RETURN. Pressing RETURN will cause the computer to register an error in spelling.

After the number of correct spellings equals the number put in at the beginning, or if your child enters * instead of spelling a word during the main run, the quiz ends and your child is graded on his performance. If you think the grading is too strict, change the limits in the grading subroutine in line 9000-9999.

After the grading, your child can go back and retrieve, or create and save a new file, or use the words already in the computer's memory. Your child has the option to end at this time. If he or she continues, the whole cycle repeats.


Spelling Quiz
2 REM  SPELLING QUIZ 
10 DIM A$(20),B$(20),C$(20),D$(20),E$(20),F$(20),G$(20),H$(20),I$(20),J$(20),K$(20),L$(20),M$(20),N$(20),O$(20)
20 DIM P$(20),Q$(20),R$(20),S$(20),T$(20),U$(20),ARRAY(20),Z$(20),STANDINGS(20),ANS$(1),WORD$(520),INWORD$(128)
30 DIM WEL$(38),DK$(15),ZZ$(1):TIME=0
40 GOSUB 3000
54 GOSUB 13000
55 PRINT "HOW MANY WORDS DO YOU WISH TO SPELL{3 SPACES}CORRECTLY BEFORE ENDING THIS DRILL?{3 SPACES} ENTER 0 TO END PROGRAM "
56 TRAP 56:INPUT RIGHT:IF RIGHT=0 THEN 4000
57 TRAP OFF:SCORE=0:ATT=0
58 GOSUB 5200:TRAP OFF
59 W1=0:W2=0:W3=0:W4=0:W5=0:W6=0:W7=0:W8=0:W9=0:W10=0:W11=0:W12=0:W13=0:W14=0:W15=0:W16=0:W17=0:W18=0:W19=0:W20=0
60 IF SCORE=RIGHT THEN 1000
65 NUM=1:W=INT(20*RND(1)+1)
70 GOSUB 7000:IF A$="{20 SPACES}" THEN NUM=-1:GOSUB 7000:GOTO 65
80 GRAPHICS 2:POKE 708,0:FOR AR=1 TO 20:ARRAY(AR)=-1:NEXT AR:PRINT "{BELL}";"INPUT '*' TO END QUIZ"
90 POSITION 11,3:? #6;"SCORE";" ";SCORE:POSITION 2,0:? #6;"#";W;" ON YOUR LIST"
110 FOR L=1 TO 20:IF A$(L,L)=" " THEN L=L-1:A$=A$(1,L):GOTO 115
112 NEXT L:IF L=21 THEN L=20
115 FOR LTR=1 TO L
120 ARR=INT(L*RND(0)+1):IF ARRAY(ARR)=1 THEN 120
125 P=ARR-1
130 POSITION P,7:? #6;A$(LTR,LTR):ARRAY(ARR)=1:NEXT LTR:POKE 708,200
135 TRY=0
137 TRY=TRY+1:ATT=ATT+1:POSITION 0,9:? #6;"ATTEMPT # ";ATT
140 INPUT Z$:IF Z$="*" THEN ATT=ATT-1:NUM=-1:GOSUB 7000:GOTO 1000
141 IF Z$=A$ THEN SCORE=SCORE+1:FOR N=100 TO 10 STEP -1:SOUND 0,N,10,10:NEXT N:SOUND 0,0,0,0
142 IF Z$=A$ THEN POSITION 12,6:? #6;"correct!":FOR N=1 TO 300:NEXT N:GOTO 60
143 IF TRY=3 THEN FOR N=1 TO 100:SOUND 0,20,4,10:NEXT N:SOUND 0,0,0,0:GOTO 2000
144 POSITION 0,2:? #6;"wrong...":POSITION 0,3:? #6;"try again.."
145 FOR N=1 TO 100:SOUND 0,11,4,10:NEXT N:SOUND 0,0,0,0
147 POSITION 0,2:? #6;"{8 SPACES}":POSITION 0,3:? #6;"{11 SPACES}"
150 GOTO 137
1000 GRAPHICS 18:PRINT #6;"  your score is ";SCORE
1010 PRINT #6:PRINT #6;"time to quit for now"
1020 ? #6:? #6:? #6;"{3 SPACES}CONGRATULATIONS"
1030 ? #6;"on a job well done!!":? #6:? #6;" QUIZ WILL REPEAT!"
1040 GOSUB 5000:SOUND 0,0,0,0:SOUND 1,0,0,0:GOTO 9000
2000 POSITION 0,5:? #6;A$:POSITION 0,4:? #6;"answer:":NUM=-1:GOSUB 7000
2010 FOR N=1 TO 1000
2020 NEXT N:GOSUB 8000
2030 GOTO 60
3000 GRAPHICS 18:POSITION 0,4:? #6;"{3 SPACES}SPELLING  quiz"
3005 GOSUB 5000:SOUND 1,0,0,0:SOUND 0,0,0,0:RETURN 
4000 GRAPHICS 18:POSITION 0,2:? #6;"VERY GOOD WORK..."
4010 POSITION 0,6:? #6;"see you again later"
4020 POSITION 4,10:? #6;"bye for now"
4030 GOSUB 5000:GOTO 7030
5000 FOR N=1 TO 200
5010 SOUND 0,RND(0)*200,10,2
5020 NEXT N
5040 RETURN 
5100 FOR N=1 TO 100:SOUND 0,N,10,10:NEXT N:SOUND 0,0,0,0:RETURN 
5200 FOR N=255 TO 200 STEP -1:SOUND 0,N,10,10:NEXT N:FOR N=225 TO 150 STEP -1:SOUND 0,N,10,10:NEXT N
5210 FOR N=175 TO 100 STEP -1:SOUND 0,N,10,10:NEXT N:FOR N=150 TO 50 STEP -1:SOUND 0,N,10,10:NEXT N:SOUND 0,0,0,0:RETURN 
7000 IF W=1 THEN B$=WORD$(1,20):A$=B$:W1=W1+NUM
7001 IF W=2 THEN C$=WORD$(21,40):A$=C$:W2=W2+NUM
7002 IF W=3 THEN D$=WORD$(41,60):A$=D$:W3=W3+NUM
7003 IF W=4 THEN E$=WORD$(61,80):A$=E$:W4=W4+NUM
7004 IF W=5 THEN F$=WORD$(81,100):A$=F$:W5=W5+NUM
7005 IF W=6 THEN G$=WORD$(101,120):A$=G$:W6=W6+NUM
7006 IF W=7 THEN H$=WORD$(121,140):A$=H$:W7=W7+NUM
7007 IF W=8 THEN I$=WORD$(141,160):A$=I$:W8=W8+NUM
7008 IF W=9 THEN J$=WORD$(161,180):A$=J$:W9=W9+NUM
7009 IF W=10 THEN K$=WORD$(181,200):A$=K$:W10=W10+NUM
7010 IF W=11 THEN L$=WORD$(201,220):A$=L$:W11=W11+NUM
7011 IF W=12 THEN M$=WORD$(221,240):A$=M$:W12=W12+NUM
7012 IF W=13 THEN N$=WORD$(241,260):A$=N$:W13=W13+NUM
7013 IF W=14 THEN O$=WORD$(261,280):A$=O$:W14=W14+NUM
7014 IF W=15 THEN P$=WORD$(281,300):A$=P$:W15=W15+NUM
7015 IF W=16 THEN Q$=WORD$(301,320):A$=Q$:W16=W16+NUM
7016 IF W=17 THEN R$=WORD$(321,340):A$=R$:W17=W17+NUM
7017 IF W=18 THEN S$=WORD$(341,360):A$=S$:W18=W18+NUM
7018 IF W=19 THEN T$=WORD$(361,380):A$=T$:W19=W19+NUM
7019 IF W=20 THEN U$=WORD$(381,400):A$=U$:W20=W20+NUM
7020 RETURN 
7030 END 
8000 GRAPHICS 18:POKE 708,100:? #6;"please type the word":POSITION 0,1:? #6;A$
8005 POSITION 0,2:? #6;"and hit spacebar..."
8007 POSITION 0,3:? #6;"UNTIL SCREEN IS FULL"
8010 POSITION 0,4:? #6;"or type * to return":L=0:COUNTER=0
8100 OPEN #1,4,0,"K:"
8150 L=L+1
8200 GET #1,CHAR
8300 CLOSE #1
8350 IF CHR$(CHAR)="*" THEN GOTO 60
8355 IF CHR$(CHAR)=" " THEN L=0:GOSUB 8400
8360 IF CHR$(CHAR)<>A$(L,L) THEN GOSUB 12000:GOTO 8000
8370 IF L=LEN(A$) THEN L=0
8400 COUNTER=COUNTER+1:PRINT #6;CHR$(CHAR);:TRAP 40000
8450 IF COUNTER>139 THEN GOTO 60
8500 GOTO 8100
8600 RETURN 
9000 POKE 752,1:PRINT "HERE IS A LIST OF HOW MANY TIMES EACH WORD WAS SPELLED CORRECTLY THIS TIME."
9010 NUM=0:FOR W=1 TO 20:GOSUB 7000:NEXT W
9050 FOR N=100 TO 240:SOUND 0,N,10,10:NEXT N:SOUND 0,0,0,0
9100 ? W1;" ";B$:? W2;" ";C$:? W3;" ";D$:? W4;" ";E$:? W5;" ";F$:? W6;" ";G$:? W7;" ";H$:? W8;" ";I$:? W9;" ";J$:? W10;" ";K$
9150 ? W11;" ";L$:? W12;" ";M$:? W13;" ";N$:? W14;" ";O$:? W15;" ";P$:? W16;" ";Q$:? W17;" ";R$:? W18;" ";S$:? W19;" ";T$
9200 ? W20;" ";U$
9250 POKE 752,1:POSITION 25,3:PRINT "ATTEMPTS":POSITION 28,5:PRINT ATT:FOR N=1 TO 200:SOUND 0,255,10,8:NEXT N
9260 POSITION 25,7:PRINT "CORRECT":POSITION 28,9:PRINT SCORE:FOR N=1 TO 200:SOUND 0,200,10,8:NEXT N
9270 TRAP 9400:PER=INT((SCORE/ATT)*100):POSITION 25,11:PRINT "PERCENT":POSITION 28,13:PRINT PER;"%"
9280 FOR N=1 TO 200:SOUND 0,100,10,6:NEXT N
9300 POSITION 25,15:? "GRADE:"
9310 IF PER>=95 THEN POSITION 27,17:? " A ":POSITION 25,21:? "EXCELLENT!!!"
9320 IF PER>=88 AND PER<95 THEN POSITION 27,17:? " B ":POSITION 25,21:? "VERY GOOD!!!"
9330 IF PER>=78 AND PER<88 THEN POSITION 27,17:? " C ":POSITION 25,21:? "GOOD!!!"
9340 IF PER>=70 AND PER<78 THEN POSITION 27,17:? " D ":POSITION 25,21:? "HMMMM!!"
9350 IF PER<70 THEN POSITION 27,17:? " F ":POSITION 25,21:? "STUDY!!!"
9360 SOUND 0,0,0,0:POKE 752,0:GOTO 54
9400 PER=0:POSITION 28,13:PRINT PER:POSITION 25,11:PRINT "PERCENT":GOTO 9280
10000 WEL$="WELCOME TO THE WORLD OF SPELLING QUIZ":PRINT "{CLEAR}":FOR N=1 TO 37:PRINT WEL$(N,N);:NEXT N:TIME=TIME+1
10010 OFF=40000:P=0:? :? "DO YOU WANT TO CREATE OR RETRIEVE THE FILE";
10011 O$="{20 SPACES}":FOR N=1 TO 520 STEP 20:WORD$(N,N+19)=O$:NEXT N
10012 ? :? :? "ONCE YOU CREATE A FILE IT WILL BE{5 SPACES}STORED ON TAPE OR DISK SO YOU CAN{5 SPACES}INPUT THE WORDS FROM"
10013 ? "THE TAPE OR DISK INSTEAD OF  TYPING{3 SPACES}THE SAME WORDS IN EVERY TIME YOU PLAY."
10014 ? :? :? "TYPE IN C OR R AND HIT RETURN NOW!"
10015 TRAP 10014:INPUT ANS$
10017 TRAP 10017:? "ARE YOU USING TAPE OR DISK":INPUT ZZ$:IF ZZ$(1,1)<>"T" AND ZZ$(1,1)<>"D" THEN 10017
10020 IF ANS$<>"C" THEN GOTO 11000
10100 ? "TYPE IN WORDS NOW":N=1
10105 ? :? :? "BE SURE EACH WORD IS SPELLED CORRECTLY BEFORE YOU PRESS RETURN{14 SPACES}"
10110 FOR N=1 TO 400 STEP 20:INPUT INWORD$
10120 IF N>399 THEN WORD$(401,520)=" ":GOTO 10200
10125 IF INWORD$="*" THEN WORD$(N,520)=" ":GOTO 10150
10130 WORD$(N,N+19)=INWORD$
10140 NEXT N
10150 ? "TYPE IN CHAPTER # OR LIST # ETC..."
10160 INPUT INWORD$:WORD$(401,420)=INWORD$
10200 FOR N=1 TO 420 STEP 20:PRINT WORD$(N,N+19):NEXT N
10202 IF ZZ$="D" THEN GOSUB 10500:TRAP 40000:OPEN #2,8,0,DK$:GOTO 10209
10203 ? "POSITION THE TAPE AND TAKE NOTE OF{4 SPACES}THE COUNTER NUMBER.":? :? "PRESS THE PLAY AND RECORD BUTTONS."
10204 ? :? "WHEN THE BUZZER SOUNDS, PRESS RETURN"
10205 N=1
10206 TRAP 10207:LPRINT 
10208 OPEN #2,8,0,"C:"
10209 N=1:FOR X=1 TO 4
10210 PRINT #2;WORD$(N,N+119):N=N+120
10220 NEXT X:CLOSE #2
10300 GOTO 13000
10500 PRINT "YOU MUST NOW ENTER THE FILENAME{7 SPACES}(WITHOUT 'D:') OF THE FILE TO ";
10520 IF ANS$="R" THEN PRINT "LOAD":GOTO 10530
10525 PRINT "CREATE"
10530 TRAP 10500:INPUT DK$:DK$(4)=DK$:DK$(1,3)="D1:"
10540 RETURN 
11000 IF ZZ$="D" THEN GOSUB 10500:N=1:TRAP 40000:OPEN #2,4,0,DK$:GOTO 11025
11005 ? "TO LOAD WORDS THAT ARE STORED ON TAPE BE SURE TO POSITION THE TAPE AT THE{3 SPACES}CORRECT COUNTER # YOU NEED."
11010 ? "WHEN BUZZER SOUNDS, PRESS RETURN AND  WAIT FOR THE WORDS TO BE LOADED INTO  THE COMPUTER..."
11020 N=1:OPEN #2,4,0,"C:"
11025 FOR X=1 TO 4
11030 TRAP 11040:INPUT #2,INWORD$
11035 WORD$(N,N+119)=INWORD$:N=N+120
11040 NEXT X
11045 CLOSE #2
11060 FOR N=1 TO 400 STEP 20:PRINT INT(N/20)+1;" ";WORD$(N,N+19)
11067 NEXT N
11068 PRINT "{9 SPACES}";WORD$(401,420)
11070 ? "IS THIS THE GROUP OF WORDS THAT YOU{3 SPACES}WANTED (Y/N)";:INPUT ANS$:IF ANS$="N" THEN GOTO 10000
11075 GOTO 13019
11080 END 
12000 FOR N=1 TO 100:SOUND 0,20,4,10:NEXT N:SOUND 0,0,0,0
12005 GRAPHICS 18:? #6;"you typed ";CHR$(CHAR);" this is "
12010 POSITION 0,1:? #6;"wrong...TRY AGAIN"
12020 POSITION 4,3:? #6;"THE WORD IS "
12030 POSITION 0,4:? #6;A$
12040 POSITION 6,5:? #6;"READY???"
12050 L=0:FOR N=1 TO 400:NEXT N:RETURN 
13000 WEL$="NOW YOU MUST MAKE A BIG DECISION!!!":FOR N=1 TO 35:PRINT WEL$(N,N);:NEXT N:NUM=1
13005 TRAP 13010:? :? "HIT THE RETURN KEY WHEN READY";:INPUT A:IF A=0 THEN END 
13010 PRINT "{CLEAR}{BELL}":TRAP OFF
13011 ? :? :? :? :? "DO YOU WANT TO USE THE LIST OF WORDS  ALREADY IN THE COMPUTER OR DO YOU WANTTO LOAD IN A NEW LIST"
13012 ? :? :? "TYPE IN N FOR A NEW LIST OR HIT RETURNTO USE  THE OLD LIST.":? :? :? "TYPE IN E TO END"
13013 ? :? :? "OF COURSE, IF THIS IS THE FIRST TIME  THROUGH THE PROGRAM DURING THIS{7 SPACES}SESSION YOU MUST HIT N!"
13014 INPUT ANS$:IF ANS$="N" THEN GOTO 10000
13015 IF ANS$="E" THEN GOTO 4000
13016 IF TIME=0 THEN ? "{3 BELL}":GOTO 13018
13017 GOTO 13019
13018 ? :? :? "THIS IS YOUR FIRST TIME THROUGH THE{3 SPACES}PROGRAM. YOU MUST LOAD IN OR CREATE A NEW LIST NOW!":GOTO 13011
13019 PRINT "{CLEAR}"
13020 ? :? :? "IF YOU WANT TO PRACTICE FOR A CERTAIN NUMBER OF TIMES TYPE IN C AND HIT{5 SPACES}RETURN."
13025 ? :? :? "IF YOU WANT TO PRACTICE UNTIL YOU GET TIRED JUST HIT RETURN."
13030 ? :? :? "IF YOU WANT TO QUIT, TYPE IN E."
13050 INPUT ANS$:IF ANS$="C" THEN GOTO 55
13060 IF ANS$="E" THEN GOTO 4000
13070 RIGHT=10000:GOTO 57

Listing. Spelling Quiz.
Download (Saved BASIC) / Download (Listed BASIC)


Return to Table of Contents | Previous Section | Next Section