

























                 ELEMENTARY INSTRUCTIONAL PROGRAMS - VOLUME II

                                      BY

                     BOB HUNTSMAN, SCHOOL DISTRICT NO. 91

                            690 JOHN ADAMS PARKWAY
                           IDAHO FALLS, IDAHO  83401















                                AUGUST 26, 1974



















                               TABLE OF CONTENTS
                               -----------------

ITEM                                                                       PAGE
----                                                                       ----


                 ELEMENTARY INSTRUCTIONAL PROGRAMS - VOLUME II

SPEED PROGRAMS
  DOCUMENTATION   .........................................................  2
  SAMPLE PROBLEMS
    -SPEEDA-      .........................................................  3
    -SPEEDS-      .........................................................  4
    -SPEEDM-      .........................................................  6
    -SPEEDD-      .........................................................  8

BOX PROGRAMS
  DOCUMENTATION   .........................................................  9
  SAMPLE PROBLEMS
    -BOXA-        ......................................................... 10
    -BOXM-        ......................................................... 11
    -BOX-         ......................................................... 12

PROGRESSIVE
ADDING PROGRAMS
  DOCUMENTATION   ......................................................... 13
  SAMPLE PROBLEMS
    -PROGAS-      ......................................................... 14
    -PROGAL-      ......................................................... 16

DOUBLES/10'S
PROGRAM
  DOCUMENTATION   ......................................................... 18
  SAMPLE PROBLEMS ......................................................... 18

'RECORD' OPTION   ......................................................... 19


LISTINGS:
  SPEEDA          ......................................................... 20
  SPEEDS          ......................................................... 23
  SPEEDM          ......................................................... 26
  SPEEDD          ......................................................... 29
  BOXA            ......................................................... 32
  BOXM            ......................................................... 35
  BOX             ......................................................... 38
  PROGAS          ......................................................... 41
  PROGAL          ......................................................... 44
  DBL10           ......................................................... 47










                                      -1-



                                                                       PAGE 2


        THE SPEED PROGRAMS  WERE  DESIGNED  TO  DRILL  THE  USER  ON  ADDITION,
SUBTRACTION,  MULTIPLICATION,  AND  DIVISION  (IN  SEPARATE   PROGRAMS).    THE
PROBLEMS CHOSEN BY THIS PROGRAM ARE VERY BASIC -- BUT IF THE  USER  DOES  WELL,
THE DIFFICULTY OF THE PROBLEMS WILL INCREASE.  THE DIFFICULTIES ARE:

LEVEL                   DIFFICULTY
-----                   ----------

EASY            SPEEDA  SUMS ARE LESS THAN 11.
                SPEEDS  SUBTRAHEND AND REMAINDER ARE LESS THAN 11.
                SPEEDM  FACTORS ARE BETWEEN 1-8 INCLUSIVE.
                SPEEDD  DIVIDEND AND DIVISOR ARE BETWEEN 1-8 INCLUSIVE.


MEDIUM          SPEEDA  SUMS ARE LESS THAN 16.
                SPEEDS  SUBTRAHEND AND REMAINDER ARE LESS THAN 16.
                SPEEDM  FACTORS ARE BETWEEN 4-10 INCLUSIVE.
                SPEEDD  DIVIDEND AND DIVISOR ARE BETWEEN 4-10 INCLUSIVE.


HARD            SPEEDA  SUMS ARE LESS THAN 21.
                SPEEDS  SUBTRAHEND AND REMAINDER ARE LESS THAN 21.
                SPEEDM  FACTORS ARE BETWEEN 4-12 INCLUSIVE.
                SPEEDD  DIVIDEND AND QUOTIENT ARE BETWEEN 4-12 INCLUSIVE.


        THE PROGRAM INITIALLY GIVES JUST EASY PROBLEMS, THEN,  AFTER  THE  USER
SUCCESSFULLY COMPLETES 4 OUT OF THE FIRST 6 EASY ONES -- OR 8 EASY ONES --  THE
PROGRAM WILL THEN GIVE MEDIUM PROBLEMS, AND FINALLY HARDER ONES.
        EACH SPEED PROGRAM GIVES THE USER TWO MINUTES TO DO  AS  MANY  PROBLEMS
AS HE CAN.  ONLY CORRECT RESPONSES  ARE  SCORED.   AFTER  TIME  RUNS  OUT,  THE
COMPUTER WILL TELL THE USER HOW WELL HE DID.  THE  POSSIBLE  FINAL  MESSAGES  A
USER MAY RECEIVE ARE:

LESS THAN 7 CORRECT:    YOU DEFINITELY NEED MORE PRACTICE!
7 OR 8 CORRECT:         YOU DID PRETTY  WELL  --  BUT  MORE  PRACTICE  WOULDN'T
                        HURT!!
9 OR 10 CORRECT:        YOU DID REALLY WELL!
11 OR MORE CORRECT:     GREAT!!  CONGRATULATIONS!!



(THE SPEED PROGRAMS HAVE THE 'RECORD' OPTION.)

DOCUMENTATION OF THE SPEED PROGRAMS WAS COMPLETED JULY 2, 1974 BY BOB HUNTSMAN.














                                      -2-



                                                                       PAGE 3


RUNNH

GRADE? 3

LINDEN PARK

THE CURRENT RECORD FOR GRADE 3 IS -------------> 10
. . . . . .BY JEFF STODDARD ON 08-JUL-74!!!



SPEED ADDITION GAME!

NAME PLEASE? DOUG

DOUG -- YOU HAVE TWO MINUTES.  DO AS MANY PROBLEMS AS YOU CAN!!


(120 SECONDS LEFT)     8 + 1  = 9  <-----CORRECT!!
(111 SECONDS LEFT)     3 + 7  = 10 <-----CORRECT!!
 (90 SECONDS LEFT)     0 + 8  = 8  <-----CORRECT!!
 (81 SECONDS LEFT)     1 + 1  = 2  <-----CORRECT!!

*************

GOOD, DOUG!!  NOW SOME HARDER ONES!!

 (73 SECONDS LEFT)     5 + 5  = 10 <-----CORRECT!!
 (52 SECONDS LEFT)     8 + 5  = 13 <-----CORRECT!!
 (42 SECONDS LEFT)     4 + 4  = 8  <-----CORRECT!!
 (32 SECONDS LEFT)    12 + 2  = 4  <-----WRONG -- TRY AGAIN!!
 (23 SECONDS LEFT)    12 + 2  = 4  <-----WRONG!!

THE CORRECT ANSWER IS -----> 14!!

 (13 SECONDS LEFT)     5  + 11 = 16 <-----CORRECT!!



TIME IS UP!!!!!

DOUG, YOU GOT 8 PROBLEMS CORRECT IN TWO MINUTES.  YOU DID PRETTY
WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!



(DOUG--YOU MISSED THE RECORD BY 2. . .)



READY








                                      -3-



                                                                       PAGE 4


RUN SPEEDS

GRADE? 3

LINDEN PARK

THE CURRENT RECORD FOR GRADE 3 IS -------------> 13
. . . . . .BY TRICIA WECKER ON 11-JUL-74!!!



SPEED SUBTRACTION GAME!

NAME PLEASE? MARILYN

MARILYN -- YOU HAVE TWO MINUTES.  DO AS MANY PROBLEMS AS YOU CAN!!


(120 SECONDS LEFT)     9 - 1  = 8  <-----CORRECT!!
(114 SECONDS LEFT)     2 - 2  = 0  <-----CORRECT!!
(108 SECONDS LEFT)     7 - 7  = 4  <-----WRONG -- TRY AGAIN!!
(104 SECONDS LEFT)     7 - 7  = 2  <-----WRONG!!

THE CORRECT ANSWER IS -----> 0!!

 (98 SECONDS LEFT)     6 - 3  = 3  <-----CORRECT!!
 (92 SECONDS LEFT)     6 - 5  = 1  <-----CORRECT!!

*************

GOOD, MARILYN!!  NOW SOME HARDER ONES!!

 (86 SECONDS LEFT)     9 - 6  = 3  <-----CORRECT!!
 (80 SECONDS LEFT)     6 - 3  = 2  <-----WRONG -- TRY AGAIN!!
 (73 SECONDS LEFT)     6 - 3  = 3  <-----CORRECT!!
 (71 SECONDS LEFT)     7 - 2  = 5  <-----CORRECT!!
 (64 SECONDS LEFT)    10 - 9  = 1  <-----CORRECT!!
 (58 SECONDS LEFT)     5 - 4  = 1  <-----CORRECT!!

**********

VERY GOOD, MARILYN!  FINALLY, SOME REALLY HARD ONES!!

 (52 SECONDS LEFT)    10 - 6  = 4  <-----CORRECT!!
 (45 SECONDS LEFT)    16 - 12 = 4  <-----CORRECT!!
 (38 SECONDS LEFT)     6 - 3  = 3  <-----CORRECT!!
 (32 SECONDS LEFT)     7 - 6  = 1  <-----CORRECT!!
 (26 SECONDS LEFT)    16 - 2  = 14 <-----CORRECT!!
 (20 SECONDS LEFT)    14 - 7  = 7  <-----CORRECT!!
 (13 SECONDS LEFT)    19 - 11 = 8  <-----CORRECT!!
  (6 SECONDS LEFT)    10 - 6  = 4  <-----CORRECT!!



TIME IS UP!!!!!

MARILYN, YOU GOT 17 PROBLEMS CORRECT IN TWO MINUTES.  YOU DID
GREAT -- CONGRATULATIONS!!!!!

                                      -4-



                                                                       PAGE 5




TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 3:YES


CONGRATULATIONS, MARILYN!!!  A NEW RECORD!!


ENTER FULL NAME--->MARILYN MANNING



READY














































                                      -5-



                                                                       PAGE 6


RUN SPEEDM

GRADE? 4

LINDEN PARK

THE CURRENT RECORD FOR GRADE 4 IS -------------> 13
. . . . . .BY DAVID CECIL ON 11-JUL-74!!!



SPEED MULTIPLICATION GAME!

NAME PLEASE? MARILYN

MARILYN, YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!


(120 SECONDS LEFT)     1 X 3  = 3  <-----CORRECT!!
(116 SECONDS LEFT)     1 X 5  = 5  <-----CORRECT!!
(110 SECONDS LEFT)     1 X 1  = 1  <-----CORRECT!!
(104 SECONDS LEFT)     2 X 4  = 8  <-----CORRECT!!

*************

MARILYN -- HERE ARE SOME HARDER PROBLEMS!!

 (98 SECONDS LEFT)     7 X 9  = 8  <-----WRONG -- TRY AGAIN!!
 (91 SECONDS LEFT)     7 X 9  = 5  <-----WRONG!!

THE CORRECT ANSWER IS -----> 63!!

 (87 SECONDS LEFT)     9 X 5  = 45 <-----CORRECT!!
 (79 SECONDS LEFT)     6 X 7  = 42 <-----CORRECT!!
 (71 SECONDS LEFT)     5 X 9  = 45 <-----CORRECT!!
 (63 SECONDS LEFT)     4 X 4  = 16 <-----CORRECT!!
 (56 SECONDS LEFT)     9 X 9  = 7  <-----WRONG -- TRY AGAIN!!
 (49 SECONDS LEFT)     9 X 9  = 81 <-----CORRECT!!

**********

VERY GOOD MARILYN!!  TRY SOME REALLY HARD ONES!!

 (45 SECONDS LEFT)    10 X 10 = 100<-----CORRECT!!
 (39 SECONDS LEFT)    12 X 12 = 144<-----CORRECT!!
 (31 SECONDS LEFT)     7 X 11 = 77 <-----CORRECT!!
 (25 SECONDS LEFT)     8 X 9  = 72 <-----CORRECT!!
 (18 SECONDS LEFT)    12 X 11 = 132<-----CORRECT!!
 (11 SECONDS LEFT)    10 X 9  = 90 <-----CORRECT!!
  (4 SECONDS LEFT)    10 X 12 = 120<-----CORRECT!!



TIME IS UP!!!!!

MARILYN, YOU GOT 16 PROBLEMS CORRECT IN TWO MINUTES.  YOU DID
GREAT -- CONGRATULATIONS!!!!!


                                      -6-



                                                                       PAGE 7



TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 4:YES


CONGRATULATIONS, MARILYN!!!  A NEW RECORD!!


ENTER FULL NAME--->MARILYN MANNING



READY















































                                      -7-



                                                                       PAGE 8


RUNNH

GRADE? 5

LINDEN PARK

THE CURRENT RECORD FOR GRADE 5 IS -------------> 11
. . . . . .BY PAUL LEEPER ON 08-JUL-74!!!



SPEED DIVISION GAME!

NAME PLEASE? MICHELLE

MICHELLE, YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!


(120 SECONDS LEFT)    12 DIVIDED BY 4  = 3  <-----CORRECT!!
(111 SECONDS LEFT)     6 DIVIDED BY 2  = 1  <-----WRONG -- TRY AGAIN!!
(105 SECONDS LEFT)     6 DIVIDED BY 2  = 2  <-----WRONG!!

THE CORRECT ANSWER IS -----> 3!!

 (96 SECONDS LEFT)    12 DIVIDED BY 3  = 4  <-----CORRECT!!
 (85 SECONDS LEFT)     2 DIVIDED BY 1  = 2  <-----CORRECT!!
 (75 SECONDS LEFT)    18 DIVIDED BY 6  = 2  <-----WRONG -- TRY AGAIN!!
 (64 SECONDS LEFT)    18 DIVIDED BY 6  = 3  <-----CORRECT!!

*************

MICHELLE -- HERE ARE SOME HARDER PROBLEMS!!

 (56 SECONDS LEFT)    40 DIVIDED BY 8  = 5  <-----CORRECT!!
 (45 SECONDS LEFT)    72 DIVIDED BY 9  = 8  <-----CORRECT!!
 (37 SECONDS LEFT)    20 DIVIDED BY 4  = 5  <-----CORRECT!!
 (28 SECONDS LEFT)    48 DIVIDED BY 6  = 8  <-----CORRECT!!
 (14 SECONDS LEFT)    63 DIVIDED BY 9  = 7  <-----CORRECT!!

**********

VERY GOOD MICHELLE!!  TRY SOME REALLY HARD ONES!!

  (4 SECONDS LEFT)    49 DIVIDED BY 7  = 7  <-----CORRECT!!



TIME IS UP!!!!!

MICHELLE, YOU GOT 10 PROBLEMS CORRECT IN TWO MINUTES.  YOU DID REALLY
WELL!!

(MICHELLE--YOU MISSED THE RECORD BY 1. . .)


READY



                                      -8-



                                                                       PAGE 9


     THE BOX PROGRAMS ARE A SET OF THREE PROGRAMS:

                BOXA
                BOXM
                BOX

     THE BOX PROGRAMS ARE DESIGNED TO DRILL THE USER  IN  SOLVING  PROBLEMS  OF
THE TYPE:

        6  + [] = 8
OR      [] X 2  = 8
OR      6  - 2  = []

       -BOXA- PROBLEMS WILL ALL BE ADDITION PROGRAMS UNTIL THE USER GETS  THREE
OF THEM CORRECT.  AFTER THAT THE PROBLEMS WILL BE MIXED --  BOTH  ADDITION  AND
SUBTRACTION PROBLEMS.  THE LEVEL OF DIFFICULTY OF THE  PROBLEMS  WILL  INCREASE
AS THE USER SUCCESSFULLY ANSWERS THE GIVEN PROBLEMS.  THE LEVELS OF  DIFFICULTY
ARE:

LEVEL           DIFFICULTY
-----           ----------
EASY            THE SUM IS LESS THAN 11.
MEDIUM          THE SUM IS LESS THAN 16.
HARD            THE SUM IS LESS THAN 21.


     -BOXM- IS VERY SIMILAR TO BOXA.  THE DIFFERENCE IS THAT  BOXM  DEALS  ONLY
WITH MULTIPLICATION  AND  DIVISION  PROBLEMS.   LIKE  BOXA,  BOXM  BEGINS  WITH
MULTIPLICATION PROBLEMS UNTIL THE USER SUCCESSFULLY ANSWERS THREE CORRECTLY  --
THEN THE  PROBLEMS  BECOME  MIXED  (BOTH  MULTIPLICATION  AND  DIVISION).   THE
DIFFICULY LEVELS ARE:

LEVEL           DIFFICULTY
-----           ----------
EASY            FACTOR RANGE FROM 1-6 [INCLUSIVE].
MEDIUM          FACTORS RANGE FROM 4-10.
HARD            FACTORS RANGE FROM 7-12.

        -BOX-  IS  A  COMBINATION  OF  BOXA  AND  BOXM,  CONTAINING   ADDITION,
SUBTRACTION,MULTIPLICATION, AND DIVISION PROBLEMS.   THE  DIFFICULTY  LEVEL  IS
THE SAME AS IN  BOXA  AND  BOXM.   HOWEVER,  THE  EASY  PROBLEMS  ARE  STRICTLY
ADDITION  WHILE  THE  MEDIUM  PROBLEMS  CONTAIN  ADDITION,   SUBTRACTION,   AND
MULTIPLICATION, AND THE HARD PROBLEMS CONTAIN ALL FOUR TYPES OF PROBLEMS.

        (THE BOX PROGRAMS HAVE THE 'RECORD' OPTION.)

DOCUMENTATION OF THE BOX PROGRAMS COMPLETED JULY 5, 1974 BY BOB HUNTSMAN.












                                      -9-



                                                                       PAGE 10


RUNNH

GRADE? 5

ETHYL BOYES

THE CURRENT RECORD FOR GRADE 5 IS -------------> 12
. . . . . .BY BART BYBEE ON 27-JUN-74!!!



BOX ADDITION GAME!

NAME PLEASE? BOB

BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY
AS YOU CAN!!


(150 SECONDS LEFT)    2 + 2   = [] ---> [4]  <---CORRECT!!
(138 SECONDS LEFT)   [] + 4   = 5  ---> [9]  <---WRONG -- TRY AGAIN!!
(129 SECONDS LEFT)   [] + 4   = 5  ---> [4]  <---WRONG!!

THE CORRECT ANSWER IS ---> [1] !!

(121 SECONDS LEFT)    4 + []  = 5  ---> [1]  <---CORRECT!!
(108 SECONDS LEFT)   [] + 1   = 3  ---> [4]  <---WRONG -- TRY AGAIN!!
 (99 SECONDS LEFT)   [] + 1   = 3  ---> [2]  <---CORRECT!!
 (91 SECONDS LEFT)    4 + []  = 5  ---> [1]  <---CORRECT!!

*************

BOB -- HERE ARE SOME HARDER PROBLEMS!!

 (82 SECONDS LEFT)   [] + 1   = 15 ---> [16] <---WRONG -- TRY AGAIN!!
 (67 SECONDS LEFT)   [] + 1   = 15 ---> [14] <---CORRECT!!
 (59 SECONDS LEFT)   [] + 2   = 11 ---> [9]  <---CORRECT!!
 (45 SECONDS LEFT)    5 + 1   = [] ---> [6]  <---CORRECT!!
 (36 SECONDS LEFT)   [] + 2   = 6  ---> [8]  <---WRONG -- TRY AGAIN!!
 (28 SECONDS LEFT)   [] + 2   = 6  ---> [4]  <---CORRECT!!
  (7 SECONDS LEFT)   [] + 5   = 12 ---> [8]  <---WRONG!!



TIME IS UP!!!!!

BOB, YOU GOT 8 PROBLEMS CORRECT IN 2 1/2 MINUTES.  YOU DID PRETTY
WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!



(BOB--YOU MISSED THE RECORD BY 4. . .)



READY



                                     -10-



                                                                       PAGE 11


RUNNH

GRADE? 5

ETHYL BOYES

THE CURRENT RECORD FOR GRADE 5 IS -------------> 13
. . . . . .BY TONY WHITTEMORE ON 31-MAY-74!!!



BOX MULTIPLICATION GAME!

NAME PLEASE? BOB

BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY
AS YOU CAN!!


(150 SECONDS LEFT)    2 X 4   = []   --> [8]  <--CORRECT!!
(142 SECONDS LEFT)   [] X 3   = 18   --> [4]  <--WRONG -- TRY AGAIN!!
(128 SECONDS LEFT)   [] X 3   = 18   --> [5]  <--WRONG!!

THE CORRECT ANSWER IS ---> [6] !!

(120 SECONDS LEFT)    5 X 2   = []   --> [10] <--CORRECT!!
(106 SECONDS LEFT)    1 X []  = 3    --> [3]  <--CORRECT!!
 (97 SECONDS LEFT)    3 X 4   = []   --> [12] <--CORRECT!!

*************

BOB -- HERE ARE SOME HARDER PROBLEMS!!

 (83 SECONDS LEFT)   [] X 4   = 32   --> [5]  <--WRONG -- TRY AGAIN!!
 (70 SECONDS LEFT)   [] X 4   = 32   --> [7]  <--WRONG!!

THE CORRECT ANSWER IS ---> [8] !!

 (62 SECONDS LEFT)   32 / 8   = []   --> [3]  <--WRONG -- TRY AGAIN!!
 (49 SECONDS LEFT)   32 / 8   = []   --> [4]  <--CORRECT!!
 (39 SECONDS LEFT)   [] X 6   = 48   --> [8]  <--CORRECT!!
 (24 SECONDS LEFT)   [] / 4   = 7    --> [8]  <--WRONG -- TRY AGAIN!!
 (16 SECONDS LEFT)   [] / 4   = 7    --> [1]  <--WRONG!!

THE CORRECT ANSWER IS ---> [28] !!

  (8 SECONDS LEFT)    9 X 7   = []   --> [63] <--CORRECT!!

TIME IS UP!!!!!

BOB, YOU GOT 7 PROBLEMS CORRECT IN 2 1/2 MINUTES.  YOU DID PRETTY
WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!

(BOB--YOU MISSED THE RECORD BY 6. . .)

READY



                                     -11-



                                                                       PAGE 12


RUNNH

GRADE? 6

SPEED BOX GAME!

NAME PLEASE? BOB

BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY
AS YOU CAN!!


(150 SECONDS LEFT)    1 + []  = 5  ---> [6]  <--WRONG -- TRY AGAIN!!
(142 SECONDS LEFT)    1 + []  = 5  ---> [4]  <--CORRECT!!
(130 SECONDS LEFT)    4 + 1   = [] ---> [5]  <--CORRECT!!
(118 SECONDS LEFT)    1 + []  = 5  ---> [6]  <--WRONG -- TRY AGAIN!!
(110 SECONDS LEFT)    1 + []  = 5  ---> [4]  <--CORRECT!!
(106 SECONDS LEFT)    2 + 3   = [] ---> [5]  <--CORRECT!!

*************

BOB -- HERE ARE SOME HARDER PROBLEMS!!

 (95 SECONDS LEFT)    3 - []  = 1  ---> [2]  <--CORRECT!!
 (87 SECONDS LEFT)   [] X 7   = 56 ---> [8]  <--CORRECT!!
 (76 SECONDS LEFT)   11 - []  = 10 ---> [1]  <--CORRECT!!
 (69 SECONDS LEFT)   [] X 6   = 30 ---> [5]  <--CORRECT!!
 (60 SECONDS LEFT)    6 X 4   = [] ---> [24] <--CORRECT!!

**********

VERY GOOD BOB!!  TRY SOME REALLY HARD ONES!!

 (50 SECONDS LEFT)   [] - 6   = 14 ---> [8]  <--WRONG -- TRY AGAIN!!
 (40 SECONDS LEFT)   [] - 6   = 14 ---> [20] <--CORRECT!!
 (31 SECONDS LEFT)    3 + 14  = [] ---> [17] <--CORRECT!!
 (23 SECONDS LEFT)    8 + []  = 9  ---> [1]  <--CORRECT!!
 (18 SECONDS LEFT)   [] / 10  = 10 ---> [100]<--CORRECT!!
  (5 SECONDS LEFT)   14 - 10  = [] ---> [4]  <--CORRECT!!

TIME IS UP!!!!!

BOB, YOU GOT 14 PROBLEMS CORRECT IN 2 1/2 MINUTES.  YOU DID
GREAT -- CONGRATULATIONS!!!!!

TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 6:YES

SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES THE RECORD --
CONGRATULATIONS, BOB!!!!

ENTER FULL NAME--->BOB WILLIAMS

READY






                                     -12-



                                                                       PAGE 13


     THE PROGRESSIVE ADDITION PROGRAMS CONSIST OF TWO PROGRAMS -- -PROGAS-  AND
-PROGAL-.  THEY ARE DESIGNED TO DRILL THE USER ON  BASIC  ADDITION  PROBLEMS.  
THE PROBLEMS ARE OF THE FORM:

5 + [] = 7

OR

[] + 3 = 12

     ASSUME THAT THE USER  IS  RUNNING  -PROGAS-.   THE  USER  IS  GIVEN  THREE
PROBLEMS WITH SUMS OF 5 (NOTE THAT THE SUM WILL ALWAYS BE GIVEN TO THE USER).  
IF THE USER GETS NO MORE THAN ONE INCORRECT ANSWER, HE  WILL  PROGRESS  TO  THE
SIXES, AND AFTER SUCCESSFULLY  COMPLETING  THE  SIXES,  HE  PROGRESSES  TO  THE
SEVENS, AND SO ON UNTIL THE USER SUCCESSFULLY COMPLETES THE TENS.  IF THE  USER
MISSES TWO OR MORE PROBLEMS WITH A PARTICULAR SUM,  HE  WILL  REDO  THAT  GROUP
BEFORE HE PROGRESSES TO THE NEXT GROUP.   -PROGAL-  IS  IDENTICAL  TO  -PROGAS-
EXCEPT THAT THE SUMS RANGE FROM 10 TO 15 INSTEAD OF 5 TO 10.


     THE PROGRESSIVE ADDITION PROGRAMS HAVE THE 'RECORD' OPTION.   RECORDS  ARE
BASED ON TIME REQUIRED TO COMPLETE ALL THE PROBLEMS, RATHER THAN THE NUMBER  OF
CORRECT ANSWERS.



DOCUMENTATION OF THE PROGRESSIVE ADDITION PROGRAMS WAS COMPLETED JULY 15,  1974
BY BOB HUNTSMAN.































                                     -13-



                                                                       PAGE 14


RUN PROGAS

GRADE? 2

ETHYL BOYES

THE CURRENT RECORD FOR GRADE 2  IS ----->  9 MINUTES, 23 SECONDS
. . . . . .BY DEBRA LEAVITT ON 01-JUL-74!!!



PROGRESSIVE ADDING GAME -- SMALL NUMBERS!

NAME PLEASE? LAURA

-----> 5'S!!

5 + [] = 5     <----[0]  <---CORRECT!!
4 + [] = 5     <----[0]  <---WRONG -- TRY AGAIN!!
4 + [] = 5     <----[1]  <---CORRECT!!
[] + 2 = 5     <----[2]  <---WRONG -- TRY AGAIN!!
[] + 2 = 5     <----[3]  <---CORRECT!!

LET'S DO SOME MORE OF THOSE, LAURA!!

-----> 5'S!!

[] + 1 = 5     <----[4]  <---CORRECT!!
[] + 2 = 5     <----[3]  <---CORRECT!!
5 + [] = 5     <----[0]  <---CORRECT!!

-----> 6'S!!

1 + [] = 6     <----[5]  <---CORRECT!!
6 + [] = 6     <----[6]  <---WRONG -- TRY AGAIN!!
6 + [] = 6     <----[0]  <---CORRECT!!
[] + 2 = 6     <----[4]  <---CORRECT!!

-----> 7'S!!

[] + 6 = 7     <----[1]  <---CORRECT!!
[] + 3 = 7     <----[1]  <---WRONG -- TRY AGAIN!!
[] + 3 = 7     <----[4]  <---CORRECT!!
[] + 7 = 7     <----[0]  <---CORRECT!!

-----> 8'S!!

2 + [] = 8     <----[0]  <---WRONG -- TRY AGAIN!!
2 + [] = 8     <----[6]  <---CORRECT!!
[] + 0 = 8     <----[8]  <---CORRECT!!
[] + 3 = 8     <----[5]  <---CORRECT!!

-----> 9'S!!

[] + 8 = 9     <----[1]  <---CORRECT!!
4 + [] = 9     <----[6]  <---WRONG -- TRY AGAIN!!
4 + [] = 9     <----[5]  <---CORRECT!!
9 + [] = 9     <----[1]  <---WRONG -- TRY AGAIN!!

                                     -14-



                                                                       PAGE 15

9 + [] = 9     <----[9]  <---WRONG!!

THE CORRECT ANSWER IS ---> [0] !!


LET'S DO SOME MORE OF THOSE, LAURA!!

-----> 9'S!!

[] + 3 = 9     <----[7]  <---WRONG -- TRY AGAIN!!
[] + 3 = 9     <----[6]  <---CORRECT!!
0 + [] = 9     <----[9]  <---CORRECT!!
8 + [] = 9     <----[1]  <---CORRECT!!

-----> 10'S!!

5 + [] = 10    <----[5]  <---CORRECT!!
0 + [] = 10    <----[0]  <---WRONG -- TRY AGAIN!!
0 + [] = 10    <----[10] <---CORRECT!!
[] + 8 = 10    <----[0]  <---WRONG -- TRY AGAIN!!
[] + 8 = 10    <----[2]  <---CORRECT!!

LET'S DO SOME MORE OF THOSE, LAURA!!

-----> 10'S!!

7 + [] = 10    <----[3]  <---CORRECT!!
1 + [] = 10    <----[9]  <---CORRECT!!
0 + [] = 10    <----[10] <---CORRECT!!

CONGRATULATIONS, LAURA -- YOU MADE IT!!


YOU FINISHED IN 11 MINUTES AND 9 SECONDS!!
(LAURA -- YOU GOT 26 RIGHT AND 11 WRONG.)



(LAURA--YOU MISSED THE RECORD BY 106 SECONDS. . .)



READY

















                                     -15-



                                                                       PAGE 16


RUN 
GRADE? 3

ETHYL BOYES

THE CURRENT RECORD FOR GRADE 3  IS ----->  2 MINUTES, 54 SECONDS
. . . . . .BY RYAN ELLIS ON 05-JUL-74!!!



PROGRESSIVE ADDING GAME -- LARGE NUMBERS!

NAME PLEASE? SCOTT

-----> 10'S!!

5 + [] = 10    <----[5]  <---CORRECT!!
8 + [] = 10    <----[2]  <---CORRECT!!
4 + [] = 10    <----[6]  <---CORRECT!!

-----> 11'S!!

7 + [] = 11    <----[3]  <---WRONG -- TRY AGAIN!!
7 + [] = 11    <----[4]  <---CORRECT!!
[] + 1 = 11    <----[10] <---CORRECT!!
[] + 0 = 11    <----[11] <---CORRECT!!

-----> 12'S!!

9 + [] = 12    <----[3]  <---CORRECT!!
[] + 4 = 12    <----[9]  <---WRONG -- TRY AGAIN!!
[] + 4 = 12    <----[8]  <---CORRECT!!
7 + [] = 12    <----[4]  <---WRONG -- TRY AGAIN!!
7 + [] = 12    <----[5]  <---CORRECT!!

LET'S DO SOME MORE OF THOSE, SCOTT!!

-----> 12'S!!

9 + [] = 12    <----[3]  <---CORRECT!!
5 + [] = 12    <----[7]  <---CORRECT!!
8 + [] = 12    <----[5]  <---WRONG -- TRY AGAIN!!
8 + [] = 12    <----[3]  <---WRONG!!

THE CORRECT ANSWER IS ---> [4] !!


LET'S DO SOME MORE OF THOSE, SCOTT!!

-----> 12'S!!

[] + 6 = 12    <----[6]  <---CORRECT!!
9 + [] = 12    <----[3]  <---CORRECT!!
5 + [] = 12    <----[7]  <---CORRECT!!

-----> 13'S!!

8 + [] = 13    <----[5]  <---CORRECT!!

                                     -16-



                                                                       PAGE 17

[] + 13 = 13   <----[1]  <---WRONG -- TRY AGAIN!!
[] + 13 = 13   <----[0]  <---CORRECT!!
8 + [] = 13    <----[5]  <---CORRECT!!

-----> 14'S!!

[] + 8 = 14    <----[6]  <---CORRECT!!
[] + 2 = 14    <----[12] <---CORRECT!!
4 + [] = 14    <----[10] <---CORRECT!!

-----> 15'S!!

[] + 3 = 15    <----[13] <---WRONG -- TRY AGAIN!!
[] + 3 = 15    <----[12] <---CORRECT!!
7 + [] = 15    <----[6]  <---WRONG -- TRY AGAIN!!
7 + [] = 15    <----[8]  <---CORRECT!!
[] + 3 = 15    <----[12] <---CORRECT!!

LET'S DO SOME MORE OF THOSE, SCOTT!!

-----> 15'S!!

[] + 8 = 15    <----[7]  <---CORRECT!!
[] + 13 = 15   <----[2]  <---CORRECT!!
5 + [] = 15    <----[10] <---CORRECT!!

CONGRATULATIONS, SCOTT -- YOU MADE IT!!


YOU FINISHED IN 4 MINUTES AND 24 SECONDS!!
(SCOTT -- YOU GOT 26 RIGHT AND 8 WRONG.)



(SCOTT--YOU MISSED THE RECORD BY 81 SECONDS. . .)



READY





















                                     -17-



                                                                       PAGE 18


RUN DBL10

GRADE? 2

LINDEN PARK

THE CURRENT RECORD FOR GRADE 2 IS -------------> 6
. . . . . .BY WILLIAM FUNK ON 08-JUL-74!!!



DOUBLES/10'S GAME!

NAME PLEASE? BECKY

TWO MINUTES, BECKY. . . . .


(120 SECONDS LEFT)    1 + []  = 10 ---> [9]  <--CORRECT!!
(107 SECONDS LEFT)    6 + []  = 10 ---> [4]  <--CORRECT!!
 (93 SECONDS LEFT)   [] + 0   = 10 ---> [10] <--CORRECT!!
 (78 SECONDS LEFT)    0 + []  = 10 ---> [10] <--CORRECT!!

*************

OK, BECKY, HERE IS ANOTHER KIND OF PROBLEM!!

 (68 SECONDS LEFT)   [] + []  = 10 ---> [5]  <--CORRECT!!
 (44 SECONDS LEFT)   [] + []  = 14 ---> [8]  <--WRONG -- TRY AGAIN!!
  (5 SECONDS LEFT)   [] + []  = 14 ---> [7]  <--CORRECT!!



TIME IS UP!!!!!

BECKY, YOU GOT 6 PROBLEMS CORRECT IN TWO MINUTES.  YOU DEFINITELY
NEED MORE PRACTICE ON THESE PROBLEMS!!!



SORRY -- YOU TIED THE RECORD, BUT YOU MUST BEAT IT TO BE
THE NEW RECORD HOLDER!!



READY













                                     -18-



                                                                       PAGE 19


                         NOTES ON THE 'RECORD' OPTION


     THE 'RECORD' OPTION IS A FEATURE INCLUDED IN MOST OF THE PROGRAMS IN  THIS
SERIES.  IF A PROGRAM HAS THE 'RECORD' OPTION, IT MEANS  THAT  THE  BEST  SCORE
THUS FAR FOR EACH GRADE WILL BE RECORDED.  WHEN EACH PROGRAM IS RUN,  THE  USER
IS INFORMED OF THE CURRENT RECORD, WHO HOLDS IT, AND  WHEN  IT  WAS  SET.   THE
USER CAN THEN TRY TO BEAT THE RECORD, AND EVEN IF UNSUCCESSFUL, HE CAN  COMPARE
HIS SCORE TO THE TOP SCORE.   A  SEPARATE  RECORD  IS  STORED  FOR  EACH  GRADE
(GRADES RANGE FROM 1 TO 12).  EXAMPLE:

GRADE? 3

LINDEN PARK SCHOOL

THE CURRENT RECORD FOR GRADE 3 IS -------------> 10
. . . . . .BY JEFF STODDARD ON 08-JUL-74!!!


SPEED ADDITION GAME!

NAME PLEASE? SHAWN

.
.
.
     IF SHAWN WAS ABLE TO SCORE 11 OR BETTER,  HIS  NAME  AND  SCORE  WOULD  BE
RECORDED!

     AS THE USER COMPLETES EACH PROGRAM, HE IS INFORMED HOW HIS SCORE  COMPARES
WITH THE RECORD.  IF THE USER'S SCORE DOES NOT BEAT THE RECORD, HE IS  INFORMED
HOW CLOSE HE WAS.  IF THE USER'S SCORE TIES THE RECORD, HE IS INFORMED THAT  HE
MUST BEAT THE RECORD TO BECOME THE NEW RECORD HOLDER.  IF THE  USER  BEATS  THE
RECORD, HE WILL BE ASKED IF HE REALLY  IS  IN  THAT  GRADE.   THE  USER  SHOULD
ANSWER 'YES' OR HIS SCORE WILL NOT BE RECORDED.   HE  WILL  THEN  BE  ASKED  TO
ENTER HIS FULL NAME, AND THEN THE PROGRAM WILL TERMINATE.   HE  NOW  HOLDS  THE
CURRENT RECORD!



      THE 'RECORD' FILE WILL BE CREATED IF IT DOES  NOT  ALREADY  EXIST.   WHEN
THE FILE IS BEING CREATED, THE USER WILL BE ASKED TO  ENTER  THE  NAME  OF  THE
SCHOOL (OR ORGANIZATION.)  ALL THE 'RECORD' DATA IS STORED ON A DISK FILE  NAME
'RECORD' IN THE USER'S ACCOUNT.  THE FILE INITIALLY  IS  ONE  BLOCK  LONG,  AND
WILL BE EXTENDED ONE BLOCK EACH TIME A PROGRAM IS RUN FOR THE FIRST TIME  UNDER
THE SAME ACCOUNT.  RERUNNING A PROGRAM WILL NOT INCREASE THE FILE SIZE.


     IF THE USER DOES NOT WANT THE 'RECORD' FILE TO BE BUILT, OR DOES NOT  WANT
HIS SCORE RECORD, HE SHOULD HIT THE 'RETURN' KEY WHEN ASKED  FOR  GRADE.   THIS
IS PARTICULARLY USEFUL WHEN DEMONSTRATING A PROGRAM.








                                     -19-



PROGRAM:  SPEEDA                                                       PAGE 20


4 N2%=1%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "SPEED ADDITION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;" -- YOU HAVE TWO MINUTES.  DO AS MANY PROBLEMS AS YOU ";
        "CAN!!":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:X%=0%:R%=0%:T%=120%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT "GOOD, ";N$;"!!  NOW SOME HARDER ONES!!":PRINT
1140 B%=2%:R0%=R%:GOSUB  1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%)
        OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD, ";N$;"!  FINALLY, SOME REALLY HARD ONES!!":PRINT:
        B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 Q%=FNR%(5%+5%*B%):B0%=B1%:B2%=FNR%(5%*B%+5%):GOTO 1210 IF B2%>Q%
1215 GOTO 1210 IF B2%=B0%:B1%=B2%:A1%=Q%-B1%
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";
1240 PRINT SPACE$(2%-FNB%(A1%));FNN$(A1%);" + ";FNN$(B1%);TAB(29%);
        " = ";:T0=TIME(0%)

                                     -20-



PROGRAM:  SPEEDA  [CONT]                                               PAGE 21


1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(Q%);"!!":
        PRINT:RETURN
1320 DEF FNA%
1330 D%=0%
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(Q%)
        UNLESS D%/10%^FNB%(D%)<>Q%/10^FNB%(Q%)
1350 FNA%=1%:FNA%=0% IF D%=Q%
1360 PRINT TAB(35%);"<-----";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT

                                     -21-



PROGRAM:  SPEEDA  [CONT]                                               PAGE 22


9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END




















































                                     -22-



PROGRAM:  SPEEDS                                                       PAGE 23


4 N2%=2%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "SPEED SUBTRACTION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;" -- YOU HAVE TWO MINUTES.  DO AS MANY PROBLEMS AS YOU ";
        "CAN!!":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:X%=0%:R%=0%:T%=120%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT "GOOD, ";N$;"!!  NOW SOME HARDER ONES!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%)
        OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD, ";N$;"!  FINALLY, SOME REALLY HARD ONES!!":PRINT:
        B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 Q%=FNR%(5%+5%*B%):B0%=B1%:B2%=FNR%(5%*B%+5%):GOTO 1210 IF B2%>Q%
1215 GOTO 1210 IF B2%=B0%:B1%=B2%:A1%=Q%-B1%
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";
1240 PRINT SPACE$(2%-FNB%(Q%));FNN$(Q%);" - ";FNN$(B1%);TAB(29%);
        " = ";:T0=TIME(0%)

                                     -23-



PROGRAM:  SPEEDS  [CONT]                                               PAGE 24


1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(A1%);"!!":
        PRINT:RETURN
1320 DEF FNA%
1330 D%=0%
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A1%)
        UNLESS D%/10%^FNB%(D%)<>A1%/10%^FNB%(A1%)
1350 FNA%=1%:FNA%=0% IF D%=A1%
1360 PRINT TAB(35%);"<-----";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT

                                     -24-



PROGRAM:  SPEEDS  [CONT]                                               PAGE 25


9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END




















































                                     -25-



PROGRAM:  SPEEDM                                                       PAGE 26


4 N2%=3%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "SPEED MULTIPLICATION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;", YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!":
        PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:X%=0%:R%=0%:T%=120%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%)
        OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!!  TRY SOME REALLY HARD ONES!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 A1%=FNR%(6%)+(B%-1%)*3%:B0%=B1%:B1%=FNR%(6%)+(B%-1%)*3%:
        GOTO 1210 IF B1%=B0%:Q%=A1%*B1%
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";
1240 PRINT SPACE$(2%-FNB%(A1%));FNN$(A1%);" X ";FNN$(B1%);TAB(29%);
        " = ";:T0=TIME(0%)

                                     -26-



PROGRAM:  SPEEDM  [CONT]                                               PAGE 27


1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(Q%);"!!":
        PRINT:RETURN
1320 DEF FNA%
1330 D%=0%
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(Q%)
        UNLESS D%/10%^FNB%(D%)<>Q%/10%^FNB%(Q%)
1350 FNA%=1%:FNA%=0% IF D%=Q%
1360 PRINT TAB(35%);"<-----";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT

                                     -27-



PROGRAM:  SPEEDM  [CONT]                                               PAGE 28


9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END




















































                                     -28-



PROGRAM:  SPEEDD                                                       PAGE 29


4 N2%=4%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "SPEED DIVISION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;", YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!":
        PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:X%=0%:R%=0%:T%=120%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%)
        OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!!  TRY SOME REALLY HARD ONES!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 A1%=FNR%(6%)+(B%-1%)*3%:B0%=B1%:B1%=FNR%(6%)+(B%-1%)*3%:
        GOTO 1210 IF B1%=B0%:Q%=A1%*B1%
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";
1240 PRINT SPACE$(2%-FNB%(Q%));FNN$(Q%);" DIVIDED BY ";FNN$(B1%);TAB(38%);
        " = ";:T0=TIME(0%)

                                     -29-



PROGRAM:  SPEEDD  [CONT]                                               PAGE 30


1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(A1%);"!!":
        PRINT:RETURN
1320 DEF FNA%
1330 D%=0%
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A1%)
        UNLESS D%/10%^FNB%(D%)<>A1%/10%^FNB%(A1%)
1350 FNA%=1%:FNA%=0% IF D%=A1%
1360 PRINT TAB(44%);"<-----";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT

                                     -30-



PROGRAM:  SPEEDD  [CONT]                                               PAGE 31


9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END




















































                                     -31-



PROGRAM:  BOXA                                                         PAGE 32


4 N2%=6%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%:ON ERROR GOTO 0
1010 PRINT:PRINT "BOX ADDITION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY":
        PRINT "AS YOU CAN!!":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=0%:R%=0%:T%=150%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% 
        UNTIL (R%-R0%)>4% OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!!  TRY SOME REALLY HARD ONES!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 O%=FNR%(2%):O%=1% IF R%<4%:GOSUB 1850
1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1%
1212 ON O% GOSUB 1810,1820
1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]"
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";

                                     -32-



PROGRAM:  BOXA  [CONT]                                                 PAGE 33


1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%);
1242 PRINT " = ";A$(3%);:T0=TIME(0%)
1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT TAB(35%);"---> [";
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(45%);"<---";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
1810 O$="+":A%(3%)=A%(1%)+A%(2%):RETURN
1820 O$="-":A%(3%)=A%(1%):A%(1%)=A%(1%)+A%(2%):RETURN
1850 A5%=A%(1%):B1%=FNR%(5%+5%*B%):GOTO 1850 IF B1%=A5%
1855 A%(2%)=FNR%(B%*B%+5%):GOTO 1850 IF B1%+A%(2%)>5%+B%*5%:
        A%(1%)=B1%:RETURN
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500

                                     -33-



PROGRAM:  BOXA  [CONT]                                                 PAGE 34


9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END













































                                     -34-



PROGRAM:  BOXM                                                         PAGE 35


4 N2%=7%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "BOX MULTIPLICATION GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY":
        PRINT "AS YOU CAN!!":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:R%=0%:T%=150%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% 
        UNTIL (R%-R0%)>4% OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!!  TRY SOME REALLY HARD ONES!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 O%=FNR%(2%)+2%:O%=3% IF R%<4%:GOSUB 1870
1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1%
1212 ON O% GOSUB 1810,1820,1830,1840
1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]"
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";

                                     -35-



PROGRAM:  BOXM  [CONT]                                                 PAGE 36


1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%);
1242 PRINT " = ";A$(3%);:T0=TIME(0%)
1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT TAB(37%);"--> [";
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(46%);"<--";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
1810 PRINT "ERROR 1810!!":STOP
1820 PRINT "ERROR 1820!!":STOP
1830 O$="X":A%(3%)=A%(1%)*A%(2%):RETURN
1840 O$="/":A%(3%)=A%(1%):A%(1%)=A%(1%)*A%(2%):RETURN
1870 A5%=A%(1%):B1%=FNR%(6%)+(B%-1%)*3%:GOTO 1870 IF B1%=A5%
1875 A%(1%)=B1%:A%(2%)=FNR%(6%)+(B%-1%)*3%:RETURN
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":

                                     -36-



PROGRAM:  BOXM  [CONT]                                                 PAGE 37


        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END












































                                     -37-



PROGRAM:  BOX                                                          PAGE 38


4 N2%=5%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "SPEED BOX GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY":
        PRINT "AS YOU CAN!!":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=0%:R%=0%:T%=150%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% 
        UNTIL (R%-R0%)>4% OR R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!!  TRY SOME REALLY HARD ONES!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 O%=FNR%(B%+1%):GOSUB 1850 IF O%<3%:GOSUB 1870 IF O%>2%
1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1%
1212 ON O% GOSUB 1810,1820,1830,1840
1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]"
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";

                                     -38-



PROGRAM:  BOX  [CONT]                                                  PAGE 39


1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%);
1242 PRINT " = ";A$(3%);:T0=TIME(0%)
1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT TAB(35%);"---> [";
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(45%);"<--";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
1810 O$="+":A%(3%)=A%(1%)+A%(2%):RETURN
1820 O$="-":A%(3%)=A%(1%):A%(1%)=A%(1%)+A%(2%):RETURN
1830 O$="X":A%(3%)=A%(1%)*A%(2%):RETURN
1840 O$="/":A%(3%)=A%(1%):A%(1%)=A%(1%)*A%(2%):RETURN
1850 A5%=A%(1%):B1%=FNR%(5%+5%*B%):GOTO 1850 IF B1%=A5%
1855 A%(2%)=FNR%(B%*B%+5%):GOTO 1850 IF B1%+A%(2%)>5%+B%*5%:
        A%(1%)=B1%:RETURN
1870 A5%=A%(1%):B1%=FNR%(6%)+(B%-1%)*3%:GOTO 1870 IF B1%=A5%
1875 A%(1%)=B1%:A%(2%)=FNR%(6%)+(B%-1%)*3%:RETURN
9000 PRINT:GOTO 9200 IF R%>R9%

                                     -39-



PROGRAM:  BOX  [CONT]                                                  PAGE 40


9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES ";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
        GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END









































                                     -40-



PROGRAM:  PROGAS                                                       PAGE 41


2 ! PROGRAM NAME --> P R O G A S  -- BY BOB HUNTSMAN
4 N2%=9%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF CVT$%(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE";G2%;" IS -----> ";:R%=CVT$%(R1$(G2%))
47 T%=R%/60%:S%=R%-T%*60%:PRINT T%;"MINUTE";:PRINT "S"; IF T%<>1%
48 PRINT ",";S%;"SECOND";:PRINT "S"; IF S%<>1%:PRINT
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=CVT$%(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CVT%$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,2% AS R1$(K%),1% AS Z2$(K%),
        20% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "PROGRESSIVE ADDING GAME -- SMALL NUMBERS!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1025 V9$=SYS(CHR$(3%))
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOM
1060 R%,W1%=0%:T0=TIME(0%):GOSUB 1200 FOR A%=5% TO 10%
1080 PRINT:PRINT "CONGRATULATIONS, ";N$;" -- YOU MADE IT!!":PRINT
1090 T0=TIME(0%)-T0:T%=T0/60%:S%=T0-T%*60%
1093 PRINT:PRINT "YOU FINISHED IN";T%;"MINUTES AND";S%;"SECONDS!!":
        PRINT "(";N$;" -- YOU GOT";R%;"RIGHT AND";W1%;"WRONG.)":
        PRINT:PRINT:R%=T0:GOTO 9000
1200 PRINT:PRINT "-----> ";FNN$(A%);"'S!!":PRINT
1205 W%=0%:FOR A8%=1% TO 3%
1210 A5%=FNR%(A%+1%)-1%:GOTO 1210 IF A%(1%)=A5% OR A%(2%)=A5%:
        A%(1%)=A5%:A%(2%)=A%-A5%:A%(3%)=A%:M%=FNR%(2%)
1215 A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):A$(3%)=FNN$(A%(3%)):T9%=0%
1220 PRINT A$(1%);" + ";A$(2%);" = ";A$(3%);TAB(15%);"<----";:C%=FNA%:
        C8%=0%:GOSUB 1270:GOTO 1220 IF C8%=1%
1225 NEXT A8%
1230 RETURN IF W%<2%:PRINT:PRINT "LET'S DO SOME MORE OF THOSE, ";N$;"!!":
        A%=A%-1%:RETURN
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";:W%=W%+1%:W1%=W1%+1%

                                     -41-



PROGRAM:  PROGAS  [CONT]                                               PAGE 42


1280 GOTO 1310 IF T9%=1%
1290 PRINT " -- TRY AGAIN!!":T9%,C8%=1%:RETURN
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT "[";
1340 A7%=FNQ%:D%=D%*10%+A7%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(25%);"<---";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
9000 PRINT:V9$=SYS(CHR$(2%)):GOTO 9600 IF G2%=0%:GOTO 9200 IF R%<R9%
9005 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES";
        " THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
                GOTO 9205
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R%-R9%);" SECONDS. . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CVT%$(R%):LSET D1$(G2%)=DATE$(0%)

                                     -42-



PROGRAM:  PROGAS  [CONT]                                               PAGE 43


9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END























































                                     -43-



PROGRAM:  PROGAL                                                       PAGE 44


2 ! PROGRAM NAME --> P R O G A L  -- BY BOB HUNTSMAN
4 N2%=10%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF CVT$%(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE";G2%;" IS -----> ";:R%=CVT$%(R1$(G2%))
47 T%=R%/60%:S%=R%-T%*60%:PRINT T%;"MINUTE";:PRINT "S"; IF T%<>1%
48 PRINT ",";S%;"SECOND";:PRINT "S"; IF S%<>1%:PRINT
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=CVT$%(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CVT%$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,2% AS R1$(K%),1% AS Z2$(K%),
        20% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "PROGRESSIVE ADDING GAME -- LARGE NUMBERS!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1025 V9$=SYS(CHR$(3%))
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOM
1060 R%,W1%=0%:T0=TIME(0%):GOSUB 1200 FOR A%=10% TO 15%
1080 PRINT:PRINT "CONGRATULATIONS, ";N$;" -- YOU MADE IT!!":PRINT
1090 T0=TIME(0%)-T0:T%=T0/60%:S%=T0-T%*60%
1093 PRINT:PRINT "YOU FINISHED IN";T%;"MINUTES AND";S%;"SECONDS!!":
        PRINT "(";N$;" -- YOU GOT";R%;"RIGHT AND";W1%;"WRONG.)":
        PRINT:PRINT:R%=T0:GOTO 9000
1200 PRINT:PRINT "-----> ";FNN$(A%);"'S!!":PRINT
1205 W%=0%:FOR A8%=1% TO 3%
1210 A5%=FNR%(A%+1%)-1%:GOTO 1210 IF A%(1%)=A5% OR A%(2%)=A5%:
        A%(1%)=A5%:A%(2%)=A%-A5%:A%(3%)=A%:M%=FNR%(2%)
1215 A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):A$(3%)=FNN$(A%(3%)):T9%=0%
1220 PRINT A$(1%);" + ";A$(2%);" = ";A$(3%);TAB(15%);"<----";:C%=FNA%:
        C8%=0%:GOSUB 1270:GOTO 1220 IF C8%=1%
1225 NEXT A8%
1230 RETURN IF W%<2%:PRINT:PRINT "LET'S DO SOME MORE OF THOSE, ";N$;"!!":
        A%=A%-1%:RETURN
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";:W%=W%+1%:W1%=W1%+1%

                                     -44-



PROGRAM:  PROGAL  [CONT]                                               PAGE 45


1280 GOTO 1310 IF T9%=1%
1290 PRINT " -- TRY AGAIN!!":T9%,C8%=1%:RETURN
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT "[";
1340 A7%=FNQ%:D%=D%*10%+A7%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(25%);"<---";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
9000 PRINT:V9$=SYS(CHR$(2%)):GOTO 9600 IF G2%=0%:GOTO 9200 IF R%<R9%
9005 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES";
        " THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
                GOTO 9205
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500
9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R%-R9%);" SECONDS. . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CVT%$(R%):LSET D1$(G2%)=DATE$(0%)

                                     -45-



PROGRAM:  PROGAL  [CONT]                                               PAGE 46


9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END























































                                     -46-



PROGRAM:  DBL10                                                        PAGE 47


4 N2%=8%:N1%=1%
5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0%
7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%)
8 OPEN "KB:" AS FILE 2%
10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0
15 GOSUB 700
20 ON ERROR GOTO 800:GET #1%,RECORD 1%
25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1%
27 GET #1%,RECORD N1%:GOTO 25
30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN
        R9%=-1%:GOTO 1000
35 PRINT:PRINT LEFT(O$,INSTR(1%,O$,"  ")-1%):PRINT
40 PRINT "THE CURRENT RECORD FOR ";
45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%)))
50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON ";
        D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%))
60 GOTO 1000
500 ON ERROR GOTO 0 IF ERR<>5%
505 OPEN "RECORD" AS FILE 1%:GOSUB 700
510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$
515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%)
520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%)
        FOR K%=1% TO 12%
530 PUT #1%,RECORD 1%:RESUME 30
600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%):
        PUT #1%,RECORD N1%:GOTO 30
700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%),
        21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12%
710 FIELD #1%,1% AS N1$,31% AS O$:RETURN
800 ON ERROR GOTO 0 IF ERR<>11%
810 RESUME 600
1000 CLOSE 1%
1010 PRINT:PRINT "DOUBLES/10'S GAME!":PRINT
1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2%
1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5%
1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4%
1050 RANDOMIZE
1060 PRINT:PRINT "TWO MINUTES, ";N$;". . . . .":PRINT:PRINT
1080 V9$=SYS(CHR$(3%))
1090 B%=1%:R%=0%:T%=120%
1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K%
1110 PRINT:PRINT "*************":PRINT
1120 PRINT "OK, ";N$;", HERE IS ANOTHER KIND OF PROBLEM!!":PRINT
1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<7%) OR
        R%-R0%>6%
1150 PRINT:PRINT "**********":PRINT
1160 PRINT "VERY GOOD ";N$;"!! NOW I'LL GIVE YOU BOTH KINDS!!":PRINT:
        R0%=R%:B%=3%
1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2%
1190 PRINT "SOFTWARE CHECK 130!!":STOP
1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K%
1210 M%=FNR%(2%):IF B%=3% THEN O%=FNR%(2%):ON O%
        GOSUB 1870,1850: ON O% GOSUB 1810,1830:GOTO 1220
1211 ON B% GOSUB 1870,1850:ON B% GOSUB 1810,1830
1212 ON B% GOSUB 1810,1830
1220 T9%=0%:GOTO 1590 IF T%<=0%
1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT)   ";
1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%);

                                     -47-



PROGRAM:  DBL10  [CONT]                                                PAGE 48


1242 PRINT " = ";A$(3%);:T0=TIME(0%)
1250 C%=FNA%:T0%=INT(TIME(0%)-T0)
1260 T%=T%-T0%
1270 GOTO 1300 IF C%=0%:PRINT "WRONG";
1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590
1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230
1300 PRINT "CORRECT!!":R%=R%+1%:RETURN
1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> [";
        FNN$(A%(M%));"] !!":PRINT:RETURN
1320 DEF FNA%
1330 D%=0%:PRINT TAB(35%);"---> [";
1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)<FNB%(A%(M%))
        UNLESS D%/10%^FNB%(D%)<>A%(M%)/10%^FNB%(A%(M%))
1350 FNA%=1%:FNA%=0% IF D%=A%(M%)
1360 PRINT "]";TAB(45%);"<--";
1370 FNEND
1380 DEF FNB%(X9%)
1390 IF X9%<1% THEN FNB%=0%:GOTO 1410
1400 FNB%=INT(LOG10(X9%))
1410 FNEND
1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%)
1430 DEF FNR%(X9%)
1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9%
1450 FNR%=X8%+1%
1460 FNEND
1470 DEF FNQ%
1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9%
1490 FNQ%=C1%
1500 PRINT CHR$(C1%+48%);
1510 FNEND
1520 DEF FNP%
1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580
1540 B5%(K5%)=-1% FOR K5%=1% TO 5%
1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT
1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6%
1570 B6%=1%:GOTO 1530
1580 FNEND
1590 PRINT:PRINT:V9$=SYS(CHR$(2%))
1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT
1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES.  ";
1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE ";
        "ON THESE PROBLEMS!!!":GOTO 1650
1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT
        "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650
1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650
1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650
1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000
1810 O$="+":A%(3%)=A%(1%)+A%(2%):A$(3%)=FNN$(A%(3%)):
        A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):RETURN
1830 O$="+":A$(3%)=FNN$(A%(3%)):A$(1%),A$(2%)="[]":RETURN
1850 A5%=A%(1%):A%(1%)=FNR%(11%)-1%:GOTO 1850 IF A%(1%)=A5%:
        A%(2%)=A%(1%):A%(3%)=A%(1%)+A%(2%):RETURN
1855 A%(1%)=B1%:A%(2%)=10%-A%(1%):A%(3%)=10%:RETURN
1870 A5%=A%(1%):A%(1%)=FNR%(11%)-1%:GOTO 1870 IF A%(1%)=A5%:
        A%(2%)=10%-A%(1%):A%(3%)=10%:RETURN
9000 PRINT:GOTO 9200 IF R%>R9%
9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST ";
        "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500

                                     -48-



PROGRAM:  DBL10  [CONT]                                                PAGE 49


9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)":
        GOTO 9500
9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";:
        INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y"
9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES";
        "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT:
                GOTO 9205
9203 PRINT "CONGRATULATIONS, ";N$;"!!!  A NEW RECORD!!":
        PRINT:PRINT
9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1%
9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$
9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%)
9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%)
9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1%
9500 PRINT:PRINT:CLOSE 1%
9600 END











































                                     -49-


