Compucolor.org – Virtual Media

Listing of file='SPELL.BAS;01' on disk='vmedia/chip_125-sector.ccvf'

5 REM  SPELLING AID
6 REM  LARRY PERTERSON
7 REM  OAKDALE, CALIFORNIA
10 CLEAR 1000:DIM TT$(20)
12 PLOT 12:DIM RN(30):TIME= 200
15 DIM D1$(300)
20 DIM A$(130),B$(130),L$(130),D$(36),SC(36)
30 GOSUB 10000
40 GOTO 100
50 FILE "R",1,"SPELL",1
100 PLOT 12:PRINT :PRINT "           SPELL-IT MENU":PRINT
105 PRINT "   1) ADD A SPELLING LIST TO A FILE"
107 PRINT "   2) SPELL WORDS IN A LIST"
109 PRINT "   3) SEE HOW WELL YOU HAVE DONE IN THE PAST"
110 PRINT "   4) BEGIN A NEW GRADE LEVEL FILE"
112 PRINT "   5) INSTRUCTIONS"
115 PRINT :PRINT :INPUT "    WHAT IS YOUR SELECTION? ";A
120 PLOT 12:ON AGOTO 200,1000,6000,7000,4000
199 PRINT
200 PRINT "THERE ARE 128 BYTES AVAILABLE FOR THIS LIST"
201 PRINT
205 PRINT "ENTER EACH WORD FOLLOWED BY A RETURN"
206 PRINT
210 PRINT "I WILL KEEP TRACK OF THE BYTES LEFT FOR YOU"
211 PRINT
215 PRINT "WHEN YOU'R FINISHED JUST HIT RETURN"
295 BY= 128:PRINT :NO= 0
300 NO= NO+ 1:L$= ""
320 PRINT "BYTES LEFT "BY"    WORD "NO")";
340 INPUT " ";A$(NO)
360 IF A$(NO)= "0"THEN NO= NO- 1:GOTO 460
380 L= LEN (A$(NO)):BY= BY- L- 1
400 IF BY< 0THEN PRINT A$(NO)" IS TO LONG TO FIT THE SPACE LEFT.":GOTO 440
420 GOTO 300
440 NO= NO- 1:BY= BY+ L+ 1:GOTO 300
460 REM  PRINT THE LIST
480 PLOT 12:PRINT "THIS IS THE WORD LIST AS I HAVE IT"
500 FOR X= 1TO NO:PRINT X") "A$(X):NEXT X
520 INPUT "WOULD YOU LIKE TO MAKE ANY CHANGES (Y OR N)? ";R$
540 IF LEFT$ (R$,1)= "Y"THEN 580
560 GOTO 680
580 INPUT "GIVE THE NUMBER OF THE WORD TO MODIFY ";X
620 INPUT "WHAT IS THE NEW WORD? ";B$(X)
640 L= LEN (B$(X)):BY= BY+ L+ 1
650 IF BY< 0THEN PRINT "THERE ISN'T ENOUGH ROOM FOR "B$(X):GOTO 480
660 A$(X)= B$(X):GOTO 480
680 REM  SAVE THE LIST ON THE DISK
700 FOR X= 1TO NO:L$= L$+ A$(X):L$= L$+ " ":NEXT X
720 BT= 128- BY
730 PLOT 12,3,10,5:INPUT "PLEASE GIVE ME THE NUMBER OF THIS LIST ";R
735 PLOT 3,8,8:INPUT "WHICH GRADE LEVEL IS THIS LIST FOR (1-9)? ";GR
738 FILE "R",1,G$(GR),1
740 PUT 1,R;L$[BT]
741 FILE "C",1
800 GOTO 100
1000 REM  READ LIST FROM THE DISK
1010 INPUT "WHAT GRADE LEVEL DO YOU WANT TO TRY (1-9)? ";GR
1020 PRINT :PRINT :INPUT "WHICH SPELLING LESSON WOULD YOU LIKE TO STUDY? ";R
1022 PRINT :PRINT
1025 INPUT "WHAT IS TODAYS DATE (MONTH/DAY-FOR EXAMPLE 3/22)? ";D$
1027 T$= "SCORE"+ RIGHT$ (STR$ (GR),1)
1030 FILE "R",1,G$(GR),1
1035 FILE "R",2,T$,1
1040 GET 1,R;A$[128]
1060 L= LEN (A$):B= 1:C= 1
1080 FOR X= 1TO L:E= E+ 1
1100 IF MID$ (A$,X,1)= " "THEN E= E- 1:GOTO 1140
1120 NEXT X
1122 GOTO 1200
1140 B$(C)= MID$ (A$,B,E)
1150 IF B$(C)= B$(C- 1)THEN C= C- 2:GOTO 1200
1160 B= X+ 1:E= 0:C= C+ 1
1190 NEXT X
1200 PLOT 12:PRINT "THIS IS THE LIST STUDY IT !!"
1220 FOR X= 1TO C:PLOT 3,20,X+ 2:PRINT B$(X):NEXT X
1230 REM  GOSUB 5500 FOR RANDOMIZATION OF THE LIST
1240 PRINT :PRINT "HIT RETURN WHEN YOU ARE READY AND I WILL FLASH THE
1250 INPUT "WORDS ON THE SCREAN IN A BOX";A
2000 REM  DISPLAY & CHECK WORDS
2010 FOR T= 1TO C- 1:TT= 0
2200 PLOT 12:GOSUB 5000:GOSUB 5200:GOSUB 5300
2205 PLOT 8
2210 PRINT "        NOW YOU SPELL THE WORD"
2215 PLOT 14,3,15,2,21:INPUT " ";T$:PLOT 15,18
2220 IF T$= B$(T)THEN 2500
2230 PRINT
2235 IF TT= 1THEN PRINT "STILL WRONG-TAKE ANOTHER PEEK":FOR X= 1TO 1000:NEXT :GOTO 2200
2240 PRINT :PRINT "THAT IS INCORRECT"
2250 TT= TT+ 1:WR= WR+ 1:TT$(WR)= B$(T)
2260 PRINT :PRINT "TRY AGAIN!":FOR X= 1TO 700:NEXT X:PLOT 12:GOTO 2210
2500 PRINT :PRINT "THAT IS CORRECT"
2510 PRINT :PRINT "HERE COMES THE NEXT WORD"
2520 FOR X= 1TO 1000:NEXT
2530 CO= CO+ 1:NEXT T
3000 REM  FINISHED WITH THE LIST
3003 IF F2= 1GOTO 10
3005 SC= INT ((C- 1- WR)/ (C- 1)* 100)
3010 PLOT 12:PRINT "THATS THE LAST WORD LET'S SEE HOW YOU DID"
3020 PRINT :PRINT "YOUR SCORE IS "SC"% FOR THIS WORD LIST."
3025 R= R+ 1:F2= 1:SC$= STR$ (SC)
3030 PUT 2,1,R* 9;D$[5]
3033 PUT 2,1,R* 9+ 5;SC$[4]
3035 FILE "C",1,2
3040 IF SC= 100THEN PRINT "HIT RETURN TO CONTINUE ";A:GOTO 10
3050 PRINT :PRINT "THESE ARE THE WORDS YOU MISSED"
3060 FOR X= 1TO WR:B$(X)= TT$(X):PRINT TT$(X):NEXT
3070 C= WR+ 1:WR= 0:INPUT "LET'S GO OVER THEM AGAIN - HIT RETURN";A
3090 F1= 1:GOTO 2000
4000 REM  INSTRUCTIONS
4010 PLOT 14:PRINT :PRINT "THIS PROGRAM WAS WRITTEN TO HELP MY CHILDREN WITH THEIR SPELLING"
4020 PRINT "THE PROGRAM HAS FOUR OPTIONS:":PRINT :PRINT
4030 PRINT "     1) WITH THIS CHOICE YOU CAN ADD SPELLING WORDS TO A LIST."
4040 PRINT "THE WORDS ARE PLACED IN A STRING VARIABLE THAT IS 128 LETTERS"
4050 PRINT "LONG.  WHEN YOU ARE FINISHED WITH THE LIST YOU WILL BE GIVEN."
4060 PRINT "THE CHANCE TO MAKE ANY MODIFICATIONS BEFORE THE LIST IS SAVED"
4070 PRINT "TO SAVE THE LIST YOU WILL NEED TO GIVE THE LIST A NUMBER AND"
4080 PRINT "THEN THE GRADE LEVEL THE LIST IS FOR. "
4090 PRINT :PLOT 15:INPUT "HIT RETURN TO CONTINUE ";AA:PLOT 12,14
4100 PRINT :PRINT "     2) WITH THIS OPTION YOU WILL BE ASK WHICH"
4105 PRINT "GRADE LEVEL YOU WOULD LIKE TO STUDY"
4110 PRINT "AND THE NUMBER OF THE LIST TO GET FROM THAT LEVEL.  THE LIST "
4120 PRINT "WILL BE DISPLAYED SO IT CAN BE STUDIED.  THE COMPUTER WILL"
4130 PRINT "THEN GIVE A WORD TEST BY FLASHING THE WORD TO BE SPELLED IN A "
4140 PRINT "BOX AND ASKING FOR IT'S CORRECT SPELLING. "
4150 PRINT "IF THE WORD IS SPELLED PROPERLY THE NEXT WORD WILL BE GIVEN."
4160 PRINT "IF THE WORD IS MISSPELLED YOU WILL BE ASK TO TRY AGAIN.  IF YOU"
4170 PRINT "STILL MISS IT THEN THE WORD WILL BE FLASHED IN THE BOX AGAIN."
4180 PRINT "WHEN THE LIST IS COMPLETED THE % CORRECT WILL BE GIVEN AND"
4190 PRINT "THOSE WORDS MISSED WILL BE GIVEN AGAIN."
4200 PLOT 15:PRINT :INPUT "HIT RETURN TO CONTINUE";AA:PLOT 12,14
4205 PRINT
4210 PRINT "   3) AFTER EACH SPELLING TEST IS COMPLETED THE DATE AND THE %"
4220 PRINT "SCORE FOR THE LIST ARE STORED IN A SPECIAL FILE FOR THE GRADE"
4230 PRINT "LEVEL THAT WAS BEING STUDIED.  ALL SCORES AND THE DATE THE"
4240 PRINT "TESTS WERE TAKE CAN BE OBSERVER BY CHOSING THIS OPTION."
4300 PRINT :PLOT 15:INPUT "HIT RETURN TO CONTINUE";AA:PLOT 12,14
4310 PRINT :PRINT "     5) WITH THIS OPTION YOU CAN OPEN A NEW FILE FOR ANOTHER"
4320 PRINT "EACH LEVEL.  IT IS POSSIBLE TO HAVE FILES FOR GRADES 1 TO 9."
4330 PRINT "EACH FILE CAN HAVE UP TO 36 SPELLING LIST STORED IN IT."
4340 PRINT "TO OPEN A NEW FILE ALL THAT IS NEED IS TO GIVE THE GRADE LEVEL"
4350 PRINT "AND THE NUMBER OF LISTS EXPECTED IN THE FILE."
4370 PRINT
4400 PRINT :PLOT 15:INPUT "HIT RETURN TO CONTINUE";AA:PLOT 12,14
4500 PLOT 15:GOTO 100
5000 REM  MAKE BOXS
5010 FOR X= 1TO 22
5020 PLOT 3,17+ X,13,30,124,3,17+ X,17,30,124
5030 NEXT X
5040 FOR X= 1TO 4
5050 PLOT 3,18,13+ X,30,124,3,39,13+ X,30,124,29
5060 NEXT X
5070 RETURN
5200 REM  ARROW
5210 PRINT "   3) AFTER EACH SPELLING TEST IS COMPLETED THE DATE AND THE %"
5220 FOR X= 1TO 5:PLOT 29,110,10,26:NEXT X:PLOT 17,104,18
5230 RETURN
5300 REM  PUT WORD IN BOX
5310 PLOT 3,29- ((LEN (B$(T)))/ 2),15
5320 PRINT B$(T)
5325 FOR X= 1TO TIME:NEXT X
5330 PLOT 12:RETURN
5500 REM  RANDOMIZE WORDS
5510 FOR X= 1TO C
5520 RN(X)= INT (C* RND (1))
5525 IF RN(X)= 0GOTO 5520
5530 IF X= 1GOTO 5590
5540 FOR Y= 1TO X- 1
5550 IF RN(X)= RN(Y)GOTO 5520
5560 NEXT Y
5590 NEXT X
5595 RETURN
6000 REM  LOOK AT PAST PREFORMANCE
6020 PLOT 12,3,2,5:INPUT "WHICH GRADE LEVEL WOULD YOU LIKE TO REVIEW (1-9)? ";GR
6060 T$= "SCORE"+ RIGHT$ (STR$ (GR),1)
6070 FILE "R",1,T$,2
6080 GET 1,1,1;NO
6085 F3= 0:NO= NO/ 2
6090 GET 1,1,9;D1$[NO* 9]
6130 PLOT 12:GOSUB 6150:GOTO 6200
6150 PRINT "LESSON  DATE   SCORE":RETURN
6200 FOR X= 1TO NO:Y= Y+ 1
6215 D$(X)= MID$ (D1$,X* 9+ 1,5)
6216 L$(X)= MID$ (D1$,X* 9+ 7,3)
6220 PRINT Y,;
6230 PRINT D$(X),L$(X)
6240 NEXT X:PRINT :PRINT
6250 IF F3= 1THEN INPUT "HIT RETURN TO CONTINUE.";A:GOTO 100
6260 F3= 1
6270 INPUT "HIT RETURN TO VIEW THE REST. ";A
6290 GET 1,1,(NO+ 1)* 9;D1$[NO* 9]
6300 FILE "C",1:GOTO 6130
7000 REM   BEGIN NEW GRADE LEVEL SPELLING LIST FILE
7005 PRINT :PLOT 20
7010 PLOT 12:INPUT "WHAT GRADE LEVEL WILL THE SPELLING LISTS BE FOR (1-9)?";GR
7015 PRINT :PLOT 21
7020 PRINT "HOW MANY SPELLING LISTS WILL THERE BE IN THE "G$(GR)"
7025 INPUT "GRADE FILE (UP TO 36)? ";NO:PLOT 18
7030 FILE "N",G$(GR),NO,128,1
7040 S= 9* (NO+ 2)
7041 N0= NO
7045 V$= RIGHT$ (STR$ (GR),1):T$= "SCORE"+ V$
7050 FILE "N",T$,1,S,1
7060 FILE "R",1,T$,1
7063 NO= INT (((NO+ 1)* 9)/ 2)
7065 FOR X= 1TO NO:D1$= D1$+ " ":NEXT X
7070 PUT 1,1,1;D1$[NO]
7073 PUT 1,1,NO;D1$[NO]
7076 PUT 1,1,1;N0
7080 FILE "C",1
7090 GOTO 100
10000 REM  READ GRADE NAMES
10010 RESTORE 10100
10020 FOR X= 1TO 9:READ G$(X):NEXT X
10030 RETURN
10100 DATA FIRST,SECOND,THIRD,FOURTH,FIFTH,SIXTH,SEVNTH,EIGHTH,NINTH