PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #646)

[PCjs Machine "ibm5150"]

Waiting for machine "ibm5150" to load....

Information about “AMY’S FIRST PRIMER”

A collection of a half-dozen games designed to teach basic skills to
children, ages 3-8. They stress positive reinforcement and promote a
"learning is fun" attitude.

The collection includes a sing-along alphabet, a letter-matching game,
an alphabet tutorial, a numbers-counting game, a maze game, and a
pattern-matching game.

Repeated suggestions that the parents use the games with their child
add a nice reinforcement for family-based learning.

File Descriptions:

AMYMENU  TBC  Menu program to provide access to the other programs.
AMYABC   TBC  ABC musical program for picture/word/letter association.
AMYBEARA TBC  Beary fun ABC's -- learn keyboard and printed letters.
AMYBUNNY TBC  Bunny letters program to learn alphabet.
AMYBEAR1 TBC  Beary Fun counting program. Learn counting and numbers.
AMYFROG  TBC  Help the Froggy maze program for problem solving.
AMYTRUCK TBC  Load the Truck program for shapes, colors.

ABC.BAS

10 '                            A B C . B A S
20 '                                            Modified 8/10/86 10:46 pm
30 '
40 '    ABC will help a pre-schooler learn the alphabet, by
50 '    matching pictures with the letters as it plays the ABC song.
60 '
70 '    Screen 1 version for IBM PC.
80 '
90 SCREEN 1 : COLOR 0,1 : CLS : KEY OFF
100 LOCATE 7,2 : PRINT "A B C" : LOCATE 12,1 : PRINT "S O N G"
110 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
120 '
130 '
140 '         Poke subroutine ALOAD into memory.
150 '
160 DEF SEG : ALOAD= 48000!
170 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
180 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
190 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
200 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
210 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
220 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
230 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
240 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
250 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
260 '
270 '           Load the title picture onto the screen.
280 '
290 SEG2%=&HB800 : BERR%=0 : FILE$="ABC1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
300 '
310 DIM A(150),B(150),C(150),D(150),E(150),F(150),G(150),H(150),I(150),J(150)
320 DIM K(150),L(150),M(150),N(150),O(150),P(150),Q(150),R(150),S(150),T(150)
330 DIM U(150),V(150),W(150),X(150),Y(150),Z(150),BUNNY(150),RABBIT(150)
340 DIM XTL(28),YTL(28),XBR(28),YBR(28),LETTER(30),ALPHA(4)
350 DIM N$(40),T$(14)
360 FOR I=1 TO 7
370     XTL(I)=23+I*32 : XBR(I)=58+I*32 : YTL(I)=10 : YBR(I)=39
380     XTL(I+7)=23+I*32 : XBR(I+7)=58+I*32 : YTL(I+7)=50 : YBR(I+7)=79
390     XTL(I+14)=23+I*32 : XBR(I+14)=58+I*32 : YTL(I+14)=90 : YBR(I+14)=119
400     XTL(I+21)=20+I*35 : XBR(I+21)=55+I*35 : YTL(I+21)=140 : YBR(I+21)=169
410 NEXT I
420 XTL(6)=218 : XBR(22)=89 : XBR(19)=217 : XTL(21)=250 : XBR(26)=232
430 FOR I=1 TO 7
440     ON I GOTO 450,500,550,600,650,700,740
450     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),A
460     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),H
470     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),O
480     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),V
490     GOTO 770
500     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),B
510     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),I
520     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),P
530     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),W
540     GOTO 770
550     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),C
560     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),J
570     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),Q
580     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),X
590     GOTO 770
600     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),D
610     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),K
620     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),R
630     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Y
640     GOTO 770
650     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),E
660     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),L
670     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),S
680     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Z
690     GOTO 770
700     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),F
710     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),M
720     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),T
730     GOTO 770
740     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),G
750     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),N
760     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),U
770 NEXT I
780 XB=240 : YB=145 : GET (XB,YB)-(XB+25,YB+15),BUNNY
790 GET (21,59)-(36,84),RABBIT
800 CLS
810 LINE (0,0)-(319,199),2,B : LINE (0,35)-(319,35),2
820 '
830 '          Play the alphabet song.
840 '
850 DATA C4,C4,E4,E4,G4,G4,E2,F4,F4,E4,E4,D8,D8,D8,D8,C2
860 DATA C4,C4,E2,G4,G4,E2,F8F8F4,E2,D4D4,C2
870 DATA C4,NOW,C4,I'VE,E4,SAID,E4,MY,G4,A,G4,B,E2,C'S.
880 DATA F4,WILL,F4,YOU,E4,COME,E4,AND,D4,PLAY,D4,WITH,C2,ME?
890 IF N$(1)="" THEN FOR K=1 TO 26 : READ N$(K) : NEXT K
900 IF N$(27)="" THEN FOR K=27 TO 40 : READ N$(K),T$(K-26) : NEXT K
910 FOR K=1 TO 26
920   Y=INT(K/7)*40+50: X=(K MOD 7)*40+20
930   GOSUB 1150
940   IF K>21 THEN LINE (0,199)-(319,199),2
950   R=INT(K/7)*5+6 : C=(K MOD 7)*5+4 : LOCATE R,C
960   PRINT CHR$(ASC("A")+K-1);" ";CHR$(ASC("a")+K-1);
970   IF INKEY$=CHR$(27) THEN RUN"MENU"
980   PLAY "MFO3"+N$(K)
990 NEXT K
1000 LINE (0,199)-(319,199),2
1010 LINE (1,1)-(318,34),0,BF : NK=26
1020 FOR N=2 TO 3
1030   LOCATE N,5
1040   FOR K=1 TO 7
1050     NK=NK+1
1060     PRINT T$(NK-26);" "; : PLAY "MFO3"+N$(NK)
1070 IF INKEY$=CHR$(27) THEN RUN"MENU"
1080   NEXT K
1090 NEXT N
1100 FOR I=1 TO 500 : IF INKEY$=CHR$(27) THEN RUN"MENU" ELSE NEXT I
1110 GOTO 800
1120 RUN"menu"
1130 REM ---------- SUBROUTINE PLOT PICTURE AT (X,Y) FOR LETTER NUMBER K ----------
1140 '
1150     IF K<13 THEN ON K GOTO 1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280
1160     ON K-12 GOTO 1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420
1170     PUT (X,Y),A,PSET : RETURN
1180     PUT (X,Y),B,PSET : RETURN
1190     PUT (X,Y),C,PSET : RETURN
1200     PUT (X,Y),D,PSET : RETURN
1210     PUT (X,Y),E,PSET : RETURN
1220     PUT (X,Y),F,PSET : RETURN
1230     PUT (X,Y),G,PSET : RETURN
1240     PUT (X,Y),H,PSET : RETURN
1250     PUT (X,Y),I,PSET : RETURN
1260     PUT (X,Y),J,PSET : RETURN
1270     PUT (X,Y),K,PSET : RETURN
1280     PUT (X,Y),L,PSET : RETURN
1290     PUT (X,Y),M,PSET : RETURN
1300     PUT (X,Y),N,PSET : RETURN
1310     PUT (X,Y),O,PSET : RETURN
1320     PUT (X,Y),P,PSET : RETURN
1330     PUT (X,Y),Q,PSET : RETURN
1340     PUT (X,Y),R,PSET : RETURN
1350     PUT (X,Y),S,PSET : RETURN
1360     PUT (X,Y),T,PSET : RETURN
1370     PUT (X,Y),U,PSET : RETURN
1380     PUT (X,Y),V,PSET : RETURN
1390     PUT (X,Y),W,PSET : RETURN
1400     PUT (X,Y),X,PSET : RETURN
1410     PUT (X,Y),Y,PSET : RETURN
1420     PUT (X,Y),Z,PSET : RETURN

AMY.DOC





                  A M Y ' S   F I R S T   P R I M E R




                 Six delightful programs will give your

                 child a head start in school, teaching

                              the alphabet

                                 numbers

                                 shapes

                                 colors

                                counting

                                matching

                          pattern recognition

                          and problem solving.




                        Recommended for ages 4-8.


                     Requires an IBM PC, XT, or PCjr
               with 128K RAM, BASICA, color display or TV,
           IBM color graphics adapter or EGA graphics adapter.
        (Does not work with Hercules Monochrome Graphics Adapter)

               Authors:  Rob, Garth, and John Robinson

                Copyright 1985, Computing Specialties
                                Orange City, IA 51041





                          AMY'S FIRST PRIMER

                          Table of Contents


                Introduction . . . . . . . . . . . .  1

                Starting Amy's First Primer. . . . .  2

                Stopping Amy's First Primer. . . . .  3

                The Keyboard . . . . . . . . . . . .  3

                The Menu . . . . . . . . . . . . . .  4

                The ABC Song . . . . . . . . . . . .  5

                Beary Fun Letters. . . . . . . . . .  6

                Bunny Letters. . . . . . . . . . . .  7

                Beary Fun Counting . . . . . . . . .  8

                Help the Froggy. . . . . . . . . . .  9

                Load the Truck . . . . . . . . . . . 10

                Preparing a New Disk . . . . . . . . 11

















                          AMY'S FIRST PRIMER


                             INTRODUCTION

        Programs for young children are hard to find.  They
        must be extremely simple to use, very colorful and
        attractive, and they need to be fun and free of nega-
        tive rewards.  Our own five year old Amy wouldn't
        spend five minutes with the programs her older
        brothers enjoyed.  She didn't like the idea of
        destroying things or being destroyed.  In addition to
        being frustrated with the family computer, Amy's
        birthday came on September 8, forcing her to wait
        almost a year longer than some of her friends before
        going to kindergarten.

        Amy's First Primer was written by her father and
        brothers to help her work on the things her kinder-
        garten friends were doing.  After much testing and
        reprogramming, the programs finally met Amy's full
        approval.  We think your child will approve, too.


















                                 Page 1




                     STARTING AMY'S FIRST PRIMER

        If the disk is brand new, you should make a backup
        copy of the disk first for your own protection and
        then use that disk.  The section at the end of this
        guide on "Preparing a New Disk" will help you make a
        backup copy of the disk and place the DOS operating
        system on it.  Steps 1 and 2 below will only work if
        you have made a new disk with DOS on it.  Step 3 below
        will work even on the original disk.

        You may use one of the following steps to start Amy's
        disk:

        1.   If the computer power is off, just put Amy's disk
             in drive A and turn the power on.

                   or

        2.   If the power is already on, put Amy's disk in
             drive A and press the keys CTRL, ALT, and DEL
             simultaneously, causing a warm boot.

                   or

        3.   If you just want to see how the original disk
             works, Place a DOS disk with BASICA.COM in
             drive A and boot the system.  Then place Amy's
             disk in drive B: and type:

                        B:
                        A:BASICA START








                                 Page 2




                       STOPPING AMY'S FIRST PRIMER

        To quit playing with Amy's disk, perform one of the
        following:

             1.  Take the disk out and turn the computer off.

                      or

             2.  Press <CTRL/Break> and then type SYSTEM.



                             THE KEYBOARD

        There are a few important keys to learn for Amy's
        First Primer:

        ARROW KEYS - Used for moving objects on the screen.
                     Up, down, right or left.

        ENTER      - or RETURN - used in the menu program to call
                     up the program that the arrow is pointing to.

        ESC        - Used at any time in any of the six
                     programs to quit and return to the menu.

        The behavior of the keys has been modified to suit the
        expectations that young children have.  When an arrow
        key is pressed, an object will move and continue to
        move until the key is released, then it will stop
        immediately.








                                 Page 3




                               THE MENU

        The menu displays the six titles for the programs
        along with pictures that will help your child
        recognize the programs.  Select a program by pressing
        the up or down arrow keys until the big blue arrow
        is pointing to the desired program, then press the
        ENTER key to run the program.  The program titles are:

                          ABC Song
                          Beary Fun Letters
                          Bunny Letters
                          Beary Fun Counting
                          Help the Froggy
                          Load the Truck

        If your child is just beginning to learn the alphabet,
        we suggest that you start with the ABC Song and move
        from there to Beary Fun Letters and Bunny Letters.
        The ABC Song will help to associate the letters with
        the pictures.

        Beary Fun Counting is used for number recognition and
        counting.  Help the Froggy is a delightful maze for
        problem solving, and Load the Truck is used for
        pattern recognition and matching.

        To quit playing with Amy's disk, perform one of the
        following:

             1.  Take the disk out and turn the computer off.

                       or

             2.  Press <CTRL/BREAK> and then type SYSTEM.





                                 Page 4




                             THE ABC SONG

        The purpose of the ABC Song is to help associate the
        pictures with the letters.  The program will play the
        song over and over again, until the ESC key is
        pressed.  All other keys are ignored.  The ESC key
        will stop the song, and bring the menu back.

        Sing along with your child the first few times.  Even
        if your child already knows the ABC Song, she or he
        will start recognizing the individual letters as they
        are displayed.  I can remember wondering what an
        "eleminopee" was when I first started singing the ABC
        song.  Since a new picture is displayed with each
        letter, your child will actually start to realize that
        l, m, n, o and p are separate letters.
























                                 Page 5




                          BEARY FUN LETTERS

        Beary Fun Letters is used for learning the keyboard
        and the printed letters.  The program starts by
        displaying a picture on the screen.  It then waits
        until the proper key is pressed on the keyboard.  The
        proper key will be the first letter of the picture
        name in all cases.  The picture names are:

                  Apple          Jug            Snail
                  Boat           Kite           Truck
                  Car            Ladder         Umbrella
                  Diamond        Moon           Violin
                  Elephant       Number Nine    Wagon
                  Fish           Owl            Xylophone
                  Girl           Peanut         Yo-yo
                  Hat            Queen          Zebra
                  Ice cream      Ring

        If the key isn't pressed after four seconds, the
        program will display both the lower and upper case
        form of the letter on the screen.  It will continue to
        wait until the key is pressed.  When the proper key is
        pressed, a happy bear face is placed on the border of
        the screen.  When the border is full, the game is over
        and the ABC song will be played.  The game will then
        be repeated.  The ESC key may be pressed at anytime to
        return to the menu.

        You can help a lot, the first few times your child
        plays this game by saying the picture name and the
        first letter out loud.  For example, if a wagon is
        displayed, say "Wagon - W" and then help find the
        letter W on the keyboard.






                                 Page 6




                            BUNNY LETTERS

        Bunny Letters is a matching game.  It places four
        pictures on the left side of the screen and four
        letters (both lower and upper case) on the right side.
        The letters are not in the same order as the pictures.
        A bunny is placed next to the top picture.

        Use the arrow keys to move the bunny up, down, left or
        right toward the corresponding letter.  When the bunny
        reaches the proper letter, a blue line is drawn from
        the picture to the letter and the bunny is placed on
        the right side of the screen.

        A new bunny will be placed beside the next picture.
        When all pictures have been matched with their
        letters, a special bunny is placed at the top of the
        screen to indicate that a set of four matches has been
        completed.  The screen is then erased and a new set of
        four matches are displayed.  When five sets of matches
        are played, the game is over and the ABC song is
        played.

        The ESC key may be pressed at anytime to return to the
        menu.















                                 Page 7




                          BEARY FUN COUNTING

        Beary Fun Counting works the same as Beary Fun
        Letters, except that it displays a set of fruit on
        the screen for the child to count.  It then waits
        patiently until the child presses the proper number.

        When the proper key is pressed, a happy bear face is
        placed on the border of the screen.  When the border
        is full, the game is over and a congratulations
        message is displayed.  The game will then be repeated.
        The ESC key may be pressed at any time to return to
        the menu.



























                                 Page 8




                           HELP THE FROGGY

        This is a hungry frog and she needs help finding her
        way to the lily pad.  Use the arrow keys to guide her
        through the maze to the lily pad.  Once on the lily
        pad, the frog is ready for dinner.  There's usually a
        fly buzzing close by and frogs love flies.  Each maze
        takes approximately one minute to generate, and since
        each one is built using a random number generator,
        there will be a new, unique maze each time.

        The song "Froggy Went a Courting" will be played while
        a new maze is being built.

        Help the Froggy will be repeated until the ESC key is
        pressed to return to the menu.
























                                 Page 9




                            LOAD THE TRUCK

        Children have always liked playing with trucks and
        loaders, and Load the Truck is no exception.  The top
        right corner of the screen contains an order for four
        shapes.  Use the arrow keys to guide the loader around
        the screen.  The truck must be loaded so that it shows
        the same pattern as the order form.

        Load the Truck is a carefully designed simulation.
        Just like the other programs, it never scolds the
        child or even complains about finding the wrong shape.
        It patiently waits until the loader scoop reaches the
        bottom of the right shape.  It then raises the hoist,
        picking up the shape.   Patience again is the rule,
        until the loader reaches the edge of the trailer.
        Then the loader slides the shape onto the truck and
        lowers the hoist, ready for finding a new shape.  All
        that the child has to do is use the arrow keys to
        guide the loader to the right spots in the proper
        sequence.  When all four shapes are on the truck, the
        loader must be moved back up the screen, so that it
        will be out of the way for the tractor.  As soon as
        the loader is out of the way, the tractor will back up
        and haul the load away.

        Load the Truck will be repeated until the ESC key is
        pressed to return to the menu.  A new random order
        is generated for each game.











                                 Page 10




                         PREPARING A NEW DISK

        Your first job with Amy's disk should be to make a
        backup copy of the disk.  Just follow these steps.
        The steps assume that your PC has two floppy drives.

        1.  Put a write protect tab on Amy's disk, so that any
            mistake in the steps below will not destroy it.

        2.  Put a DOS system disk in drive A and boot the
            system.

        3.  When the "A>" prompt appears, type the command:

                                        FORMAT/S B:

        4.  The program will ask you to

                Insert new diskette for drive B:
                and strike any key when ready

            Make sure that it's asking you to put the disk in
            drive B:, then put a new blank disk in drive B:.
            and pick a key to press.

        5.  After the disk is formatted, it will ask you:

                Format another (Y/N)?

            Press the letter N to return to the "A>" prompt.

        6.  Now type the command:

                                     COPY  A:BASICA.COM  B:






                                 Page 11




        7.  Remove the DOS disk from drive A: and place the
            original disk for Amy's First Primer in drive A:.
            Now type the command:

                                     COPY  A:*.*   B:

        7.  When all files are copied, your disk will be ready.
            It contains both DOS and Amy's First Primer.

        8.  To test your new disk, place it in drive A: and
            reboot the system by pressing the CTRL-ALT-DEL
            keys simultaneously.  The program should display
            an introductory screen and go on to the main menu.
            If it doesn't, try this process again.


























                                 Page 12




                             USER SUPPORT

        Amy's First Primer is a user-supported "shareware"
        program.  You may copy it for free and share it with
        your friends on a "try before you buy" basis.  If you
        or your child like the programs, and find them useful,
        we request that you purchase a license to the program
        by sending $15.00 to:

                         Rob Robinson
                         523 Albany Avenue NE
                         Orange City, IA 51041

        In appreciation, we'll send you another free disk (and
        the license to use it) containing the DRAW program
        that was used for the graphics on Amy's disk.  The
        DRAW program provides all 4 colors and two palettes on
        the screen.  Commands available for the DRAW program are
        Draw, Erase, Circle, Box, Line, Jump, Fill, Get, Put,
        Input, Output, Report, Foreground color, Background
        color, Wipe, and Quit.  DRAW doesn't require a joy-
        stick, mouse, or lightpen.  All drawing is done with
        the keyboard.  The complete listable source code is
        included as well as some example game programs which
        show how to take graphics created by DRAW and use them
        in your own game programs.

        If you wish to only purchase a license to Amy's First
        Primer without the DRAW program, please send $10.00 to
        the above address.

        Thank you.








                                 Page 13


BEAR123.BAS

10 '                     B E A R 1 2 3 . B A S         8/10/86 11:20 pm
20 '
30 '   BEARY FUN COUNTING helps a child with counting and with locating numbers
40 ' on the keyboard.  It displays a random number of fruit on the screen and
50 ' waits patiently until the proper number is pressed. For each correct answer
60 ' a bear face is placed on the border of the screen
70 ' The game continues until the border is filled with bears.
80 '
90 '    Converted for IBM-PC Screen 1.
100 '
110  SCREEN 1 : CLS : COLOR 0,0
120 LOCATE 6,10 : PRINT "BEARY FUN COUNTING";
130 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
140 '
150 '
160 '         Poke subroutine ALOAD into memory.
170 '
180 DEF SEG : ALOAD= 48000!
190 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
200 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
210 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
220 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
230 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
240 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
250 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
260 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
270 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
280 '
290 '           Load the title picture onto the screen.
300 '
310 SEG2%=&HB800 : BERR%=0 : FILE$="BEAR1231.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
320 '
330 '     get the pictures into arrays.
340 '
350 DIM CHERRY(100),ORANGE(100),PINEAPPLE(100),BANANA(100),APPLE(100),BEAR(400)
360 DIM X(9),Y(9) : FOR I=1 TO 9 : READ X(I),Y(I) : NEXT I : DATA 60,45,140,45,220,45,60,90,140,90,220,90,60,135,140,135,220,135
370 GET (154,91)-(168,105),CHERRY
380 GET (191,88)-(204,99),ORANGE
390 GET (225,72)-(239,99),PINEAPPLE
400 GET (200,60)-(210,74),BANANA
410 GET (167,66)-(184,80),APPLE
420 GET (77,76)-(100,98),BEAR
430 FOR I=1 TO 3000 : NEXT I
440 '
450 '   Start the game.
460 '
470 RANDOMIZE TIMER
480 REM
490 LINE (0,0)-(319,199),2,B
500 LINE (30,30)-(289,169),3,B
510 LINE (31,31)-(288,168),0,BF
520 '
530 '   Pick a number from 1 to 9 and one of the fruits.
540 '   Then place that many fruit on the screen.
550 '
560 N=INT(RND*9)+1
570 FRUIT=INT(RND*5)+1
580 IF N>=4 THEN I=1:GOSUB 900
590 IF N>=7 THEN I=2:GOSUB 900
600 IF N>=4 THEN I=3:GOSUB 900
610 IF N=2 OR N=3 OR N=6 OR N=8 OR N=9 THEN I=4:GOSUB 900
620 IF N=1 OR N=3 OR N=5 OR N=7 OR N=9 THEN I=5 : GOSUB 900
630 IF N=2 OR N=3 OR N=6 OR N=8 OR N=9 THEN I=6 : GOSUB 900
640 IF N>=4 THEN I=7 : GOSUB 900
650 IF N>=7 THEN I=8 : GOSUB 900
660 IF N>=4 THEN I=9 : GOSUB 900
670 WHILE INKEY$<>"" : WEND
680 '
690 '   Wait until the proper number key is pressed.  (Quit if Q is pressed.)
700 '
710 R$=INKEY$
720 IF R$=CHR$(27)  THEN RUN"MENU
730 IF R$<>CHR$(48+N) THEN 710
740 '
750 '   The correct key was pressed, add a happy bear face to the border.
760 '
770 NB=NB+1
780 XB=(NB-1)*32+3 : YB=3
790 IF NB>10 THEN XB=292 : YB=(NB-10)*35+3
800 IF NB>14 THEN XB=3 : YB=(NB-14)*35+3
810 IF NB>18 THEN YB=173 : XB=(NB-19)*32+3
820 PUT(XB,YB),BEAR,PSET
830 SOUND 115+NB*5,1:SOUND 350+NB*5,1:SOUND 756+NB*5,1:SOUND 1036+NB*5,1:SOUND 1435+NB*5,1
840 FOR T=1 TO 100 : NEXT T
850 IF NB=28 THEN GOTO 990
860 GOTO 510
870 '
880 '   Subroutine to plot a piece of fruit at position I.
890 '
900 ON FRUIT GOTO 910,920,930,940,950
910 PUT (X(I),Y(I)),CHERRY : RETURN
920 PUT (X(I),Y(I)),ORANGE : RETURN
930 PUT (X(I),Y(I)),PINEAPPLE : RETURN
940 PUT (X(I),Y(I)),BANANA : RETURN
950 PUT (X(I),Y(I)),APPLE : RETURN
960 '
970 '   The screen is full of bears, congratulate the kid.
980 '
990 LOCATE 10,19 : PRINT "YAY!"
1000 LOCATE 16,16:PRINT "YOU DID IT!"
1010 FOR T=1 TO 10 : SOUND 1435,1 : SOUND 1100,1 : NEXT T
1020 '
1030 '   Reset the game and go back for a new one.
1040 '
1050 R$=INKEY$ : IF R$<>"" THEN 1050
1060 FOR I=1 TO 3000 : NEXT I
1070 CLS : NB=0
1080 GOTO 480
1090 END

BEARABC.BAS

10 '                     B E A R A B C . B A S    8/10/86 11:10 pm
20 '
30 '     BEARY FUN ABC'S will help associate each picture with the
40 '     letter and the keyboard key.  It displays the picture then
50 '     waits for the entry of the proper key.  If the key isn't
60 '     pressed in 3 seconds, the letter will also be displayed on
70 '     the screen.  Each time the right key is pressed, a bear
80 '     is placed on the screen.
90 '
100 '    Modified for IBM-PC screen 1
110 '
120 '    Initialize all variables and arrays.
130 '
140 SCREEN 1 : COLOR 0,0 : CLS
150 LOCATE 6,1 : PRINT "Beary";
160 LOCATE 7,2 : PRINT "Fun"; : LOCATE 12,1 : PRINT "Letters";
170 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
180 '
190 '
200 '         Poke subroutine ALOAD into memory.
210 '
220 DEF SEG : ALOAD= 48000!
230 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
240 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
250 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
260 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
270 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
280 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
290 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
300 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
310 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
320 '
330 '           Load the title picture onto the screen.
340 '
350 SEG2%=&HB800 : BERR%=0 : FILE$="BEARABC1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
360 UP$=CHR$(0)+CHR$(72) : DN$=CHR$(0)+CHR$(80)
370 LT$=CHR$(0)+CHR$(75) : RT$=CHR$(0)+CHR$(77)
380 DIM A(150),B(150),C(150),D(150),E(150),F(150),G(150),H(150),I(150),J(150)
390 DIM K(150),L(150),M(150),N(150),O(150),P(150),Q(150),R(150),S(150),T(150)
400 DIM U(150),V(150),W(150),X(150),Y(150),Z(150),BEAR(150)
410 DIM XTL(28),YTL(28),XBR(28),YBR(28),LETTER(30),ALPHA(4)
420 DIM N$(40),T$(14)
430 FOR I=1 TO 7
440     XTL(I)=23+I*32 : XBR(I)=58+I*32 : YTL(I)=10 : YBR(I)=39
450     XTL(I+7)=23+I*32 : XBR(I+7)=58+I*32 : YTL(I+7)=50 : YBR(I+7)=79
460     XTL(I+14)=23+I*32 : XBR(I+14)=58+I*32 : YTL(I+14)=90 : YBR(I+14)=119
470     XTL(I+21)=20+I*35 : XBR(I+21)=55+I*35 : YTL(I+21)=140 : YBR(I+21)=169
480 NEXT I
490 XTL(6)=218 : XBR(22)=89 : XBR(19)=217 : XTL(21)=250 : XBR(26)=232
500 RANDOMIZE TIMER
510 '
520 '           Sort the letters into random order for a new game.
530 '
540 FOR I=1 TO 26 : LETTER(I)=I : NEXT I
550 LETTER(27)=INT(RND*26)+1 : LETTER(28)=INT(RND*26)+1
560 FOR I=1 TO 100
570     J=INT(RND*26)+1 : K=INT(RND*26)+1
580     T=LETTER(J) : LETTER(J)=LETTER(K) : LETTER(K)=T
590 NEXT I
600 '
610 '           Load the pictures and store each one in an array.
620 '
630 FOR I=1 TO 7
640     ON I GOTO 650,700,750,800,850,900,940
650     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),A
660     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),H
670     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),O
680     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),V
690     GOTO 970
700     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),B
710     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),I
720     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),P
730     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),W
740     GOTO 970
750     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),C
760     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),J
770     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),Q
780     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),X
790     GOTO 970
800     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),D
810     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),K
820     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),R
830     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Y
840     GOTO 970
850     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),E
860     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),L
870     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),S
880     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Z
890     GOTO 970
900     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),F
910     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),M
920     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),T
930     GOTO 970
940     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),G
950     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),N
960     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),U
970 NEXT I
980 GET (10,59)-(32,84),BEAR
990 '
1000 '           Prepare for a new game.
1010 '
1020 CLS
1030 N=0 : NB=0
1040 LINE (0,0)-(319,199),2,B
1050 LINE (30,30)-(289,169),2,B
1060 LINE (31,31)-(288,168),0,BF
1070 '
1080 '           Pick the next letter and display the picture on the screen.
1090 '
1100 N=N+1 : K=LETTER(N) : X=150 : Y=90 : GOSUB 1750
1110 U$=CHR$(K-1+ASC("A")) : L$=CHR$(K-1+ASC("a"))
1120 WT=0
1130 '
1140 '           Wait until the proper key is pressed.
1150 '           If WT gets to 150, display the letters on the screen.
1160 R$=INKEY$
1170 WT=WT+1 : IF WT=150 THEN LOCATE 10,19 : PRINT U$;" ";L$ : WT=0
1180 IF R$=CHR$(27) THEN RUN"MENU
1190 IF R$<>L$ AND R$<>U$ THEN 1160
1200 '
1210 '           The correct key was pressed, put a bear face on the border.
1220 '
1230 NB=NB+1
1240 XB=(NB-1)*32+3 : YB=3
1250 IF NB>10 THEN XB=292 : YB=(NB-10)*35+3
1260 IF NB>14 THEN XB=3 : YB=(NB-14)*35+3
1270 IF NB>18 THEN YB=173 : XB=(NB-19)*32+3
1280 PUT (XB,YB),BEAR,PSET
1290 SOUND 115+NB*5,1 : SOUND 350+NB*5,1 : SOUND 756+NB*5,1 : SOUND 1036+NB*5,1 : SOUND 1435+NB*5,1
1300 IF NB<28 THEN GOTO 1060
1310 '
1320 '           The border is filled with bears, congratulate the kid.
1330 '
1340 LOCATE 10,16:PRINT "YAY  ";N$;"!"
1350 SOUND 115+NB*5,1:SOUND 350+NB*5,1:SOUND 756+NB*5,1:SOUND 1036+NB*5,1:SOUND 1435+NB*5,1
1360 LOCATE 16,16:PRINT "YOU DID IT!"
1370 FOR T=1 TO 10 : SOUND 1435,1 : SOUND 1100,1 : NEXT T
1380 FOR I=1 TO 3000 : NEXT I
1390 R$=INKEY$ : IF R$<>"" THEN 1390
1400 '
1410 '          End the game by playing the alphabet song.
1420 '
1430 CLS
1440 LINE (0,0)-(319,199),2,B : LINE (0,35)-(319,35),2
1450 DATA C4,C4,E4,E4,G4,G4,E2,F4,F4,E4,E4,D8,D8,D8,D8,C2
1460 DATA C4,C4,E2,G4,G4,E2,F8F8F4,E2,D4D4,C2
1470 DATA C4,NOW,C4,I'VE,E4,SAID,E4,MY,G4,A,G4,B,E2,C'S.
1480 DATA F4,WILL,F4,YOU,E4,COME,E4,AND,D4,PLAY,D4,WITH,C2,ME?
1490 IF N$(1)<>"" THEN GOTO 1520
1500 FOR K=1 TO 26 : READ N$(K) : NEXT K
1510 FOR K=27 TO 40 : READ N$(K),T$(K-26) : NEXT K
1520 FOR K=1 TO 26
1530   Y=INT(K/7)*40+50: X=(K MOD 7)*40+20
1540   GOSUB 1750
1550   IF K>20 THEN LINE (0,199)-(319,199),2
1560   R=INT(K/7)*5+6 : C=(K MOD 7)*5+4 : LOCATE R,C
1570   PRINT CHR$(ASC("A")+K-1);" ";CHR$(ASC("a")+K-1);
1580   PLAY "MFO3"+N$(K)
1590 NEXT K
1600 LINE (0,199)-(319,199),2
1610 LINE (1,1)-(318,34),0,BF
1620 FOR N=2 TO 3
1630   LOCATE N,5
1640   FOR K=1 TO 7
1650     NK=K+(N-2)*7
1660     PRINT T$(NK);" "; : PLAY "MFO3"+N$(NK+26)
1670   NEXT K
1680 NEXT N
1690 LINE (1,1)-(318,34),0,BF
1700 LOCATE 3,5
1710 FOR I=1 TO 3000 : NEXT I
1720 GOTO 1020
1730 REM ---------- SUBROUTINE PLOT PICTURE AT (X,Y) FOR LETTER NUMBER K ----------
1740 '
1750     IF K<13 THEN ON K GOTO 1770,1780,1790,1800,1810,1820,1830,1840,1850,1860,1870,1880
1760     ON K-12 GOTO 1890,1900,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010,2020
1770     PUT (X,Y),A,PSET : RETURN
1780     PUT (X,Y),B,PSET : RETURN
1790     PUT (X,Y),C,PSET : RETURN
1800     PUT (X,Y),D,PSET : RETURN
1810     PUT (X,Y),E,PSET : RETURN
1820     PUT (X,Y),F,PSET : RETURN
1830     PUT (X,Y),G,PSET : RETURN
1840     PUT (X,Y),H,PSET : RETURN
1850     PUT (X,Y),I,PSET : RETURN
1860     PUT (X,Y),J,PSET : RETURN
1870     PUT (X,Y),K,PSET : RETURN
1880     PUT (X,Y),L,PSET : RETURN
1890     PUT (X,Y),M,PSET : RETURN
1900     PUT (X,Y),N,PSET : RETURN
1910     PUT (X,Y),O,PSET : RETURN
1920     PUT (X,Y),P,PSET : RETURN
1930     PUT (X,Y),Q,PSET : RETURN
1940     PUT (X,Y),R,PSET : RETURN
1950     PUT (X,Y),S,PSET : RETURN
1960     PUT (X,Y),T,PSET : RETURN
1970     PUT (X,Y),U,PSET : RETURN
1980     PUT (X,Y),V,PSET : RETURN
1990     PUT (X,Y),W,PSET : RETURN
2000     PUT (X,Y),X,PSET : RETURN
2010     PUT (X,Y),Y,PSET : RETURN
2020     PUT (X,Y),Z,PSET : RETURN

BUNNY.BAS

10 '                       B U N N Y . B A S
20 '                                            Modified 8/10/86 11:18 pm
30 '
40 '    BUNNY LETTERS will help a pre-schooler learn the alphabet, by
50 '    matching pictures with the letters they start with.
60 '
70 '    Converted for IBM-PC Screen 1.
80 '
90 '    Initialize all variables and arrays.
100 '
110 SCREEN 1 : COLOR 0,1 : CLS
120 LOCATE 7,2 : PRINT "Bunny"; : LOCATE 12,1 : PRINT "Letters";
130 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
140 '
150 '
160 '         Poke subroutine ALOAD into memory.
170 '
180 DEF SEG : ALOAD= 48000!
190 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
200 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
210 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
220 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
230 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
240 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
250 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
260 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
270 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
280 '
290 '           Load the title picture onto the screen.
300 '
310 SEG2%=&HB800 : BERR%=0 : FILE$="BUNNY1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
320 UP$=CHR$(0)+CHR$(72) : DN$=CHR$(0)+CHR$(80)
330 LT$=CHR$(0)+CHR$(75) : RT$=CHR$(0)+CHR$(77)
340 DIM A(150),B(150),C(150),D(150),E(150),F(150),G(150),H(150),I(150),J(150)
350 DIM K(150),L(150),M(150),N(150),O(150),P(150),Q(150),R(150),S(150),T(150)
360 DIM U(150),V(150),W(150),X(150),Y(150),Z(150),BUNNY(150),RABBIT(150)
370 DIM XTL(28),YTL(28),XBR(28),YBR(28),LETTER(30),ALPHA(4)
380 DIM N$(40),T$(14)
390 M1$= "C4C4E4E4G4G4E2F4F4E4E4D8D8D8D8C2"
400 M2$= "C4C4E2G4G4E2F2E2D2C2"
410 M$=M1$+M2$
420 FOR I=1 TO 7
430     XTL(I)=23+I*32 : XBR(I)=58+I*32 : YTL(I)=10 : YBR(I)=39
440     XTL(I+7)=23+I*32 : XBR(I+7)=58+I*32 : YTL(I+7)=50 : YBR(I+7)=79
450     XTL(I+14)=23+I*32 : XBR(I+14)=58+I*32 : YTL(I+14)=90 : YBR(I+14)=119
460     XTL(I+21)=20+I*35 : XBR(I+21)=55+I*35 : YTL(I+21)=140 : YBR(I+21)=169
470 NEXT I
480 XTL(6)=218 : XBR(22)=89 : XBR(19)=217 : XTL(21)=250 : XBR(26)=232
490 RANDOMIZE TIMER
500 '
510 '           Sort the letters for a new game.
520 '
530 FOR I=1 TO 26 : LETTER(I)=I : NEXT I
540 FOR I=1 TO 50
550     J=INT(RND*26)+1 : K=INT(RND*26)+1
560     T=LETTER(J) : LETTER(J)=LETTER(K) : LETTER(K)=T
570 NEXT I
580 '
590 '           Load the pictures and store each one in an array.
600 '
610 FOR I=1 TO 7
620     ON I GOTO 630,680,730,780,830,880,920
630     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),A
640     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),H
650     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),O
660     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),V
670     GOTO 950
680     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),B
690     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),I
700     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),P
710     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),W
720     GOTO 950
730     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),C
740     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),J
750     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),Q
760     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),X
770     GOTO 950
780     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),D
790     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),K
800     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),R
810     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Y
820     GOTO 950
830     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),E
840     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),L
850     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),S
860     GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Z
870     GOTO 950
880     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),F
890     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),M
900     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),T
910     GOTO 950
920     GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),G
930     GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),N
940     GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),U
950 NEXT I
960 XB=240 : YB=145 : GET (XB,YB)-(XB+25,YB+15),BUNNY
970 GET (21,59)-(36,84),RABBIT
980 CLS
990 '
1000 '           Clear the screen for a set of five rounds.
1010 '
1020 LINE (0,0)-(319,199),2,B : LINE (0,35)-(319,35),2
1030 FOR N=1 TO 5
1040 '
1050 '           Select four letters and place them on the screen
1060 '
1070   FOR R=1 TO 4 : ALPHA(R)=LETTER((N-1)*4+R) : NEXT R
1080   FOR R=1 TO 10 : I=INT(RND*4)+1 : J=INT(RND*4)+1
1090     T=ALPHA(I) : ALPHA(I)=ALPHA(J) : ALPHA(J)=T
1100   NEXT R
1110   FOR J=1 TO 4
1120     K=LETTER((N-1)*4+J) : L=ALPHA(J)
1130     LOCATE J*5+3,30 : PRINT CHR$(ASC("A")+L-1);" ";CHR$(ASC("a")+L-1)
1140     X=55 : Y=J*40+1
1150     GOSUB 2060 ' PUT PICTURE AT (X,Y) FOR LETTER NUMBER K
1160   NEXT J
1170 LOCATE 1,1
1180 '
1190 '           Place the pictures in a different order on the left side.
1200 '
1210 FOR J=1 TO 4
1220    K=LETTER((N-1)*4+J)
1230    FOR I=1 TO 4
1240      IF ALPHA(I)=K THEN TB=I*40+10
1250    NEXT I
1260 XB=95 : YB=J*40+10 : PUT (XB,YB),BUNNY,>= : XL(J)=XB-1 : YL(J)=YB+5 : XR(J)=XB-1 : YR(J)=YL(J)
1270 '
1280 '           Redraw all current lines on the screen and wait for a
1290 '           key press on the keyboard
1300 '
1310 FOR I=1 TO J-1 : LINE (XL(I),YL(I))-(XR(I),YR(I)),1 : NEXT I
1320 LINE(XL(J),YL(J))-(XR(J),YR(J)),2
1330 C$=INKEY$ : IF C$="" THEN 1330
1340 '
1350 '           A key was pressed, respond to it.
1360 '
1370 IF C$=CHR$(27) THEN RUN "MENU"
1380 IF C$=UP$ THEN YD=-10: GOTO 1470
1390 IF C$=DN$ THEN YD=+10: GOTO 1470
1400 IF C$=RT$ THEN XD=+10: GOTO 1470
1410 IF C$=LT$ THEN XD=-10: GOTO 1470
1420 IF C$="q" OR C$="Q" THEN RUN "MENU"
1430 GOTO 1330
1440 '
1450 '           Move the bunny in the direction indicated.
1460 '
1470 PUT (XB,YB),BUNNY,>= : LINE(XL(J),YL(J))-(XR(J),YR(J)),0
1480 IF XB+XD>=95 AND XB+XD<=205 THEN XB=XB+XD : XR(J)=XR(J)+XD
1490 IF YB+YD>=50 AND YB+YD<=170 THEN YB=YB+YD : YR(J)=YR(J)+YD
1500 PUT (XB,YB),BUNNY,>= : XD=0 : YD=0
1510 WHILE INKEY$<>"" : WEND
1520 IF XB<>205 OR YB<>TB THEN 1310
1530 '
1540 '          The bunny has reached the right letter,
1550 '          change the line to blue, and put the rabbit on the right side.
1560 '
1570 XR(J)=XR(J)+30
1580 PUT (XB,YB),BUNNY,>= : PUT (XB+80,YB),BUNNY,PSET
1590 LINE (XL(J),YL(J))-(XR(J),YR(J)),1
1600 PLAY "O3C32E32G32O4C8"
1610 WHILE INKEY$<>"" : WEND
1620 NEXT J
1630 '
1640 '          All lines are connected, put a rabbit on the top of the screen.
1650 '          Then clear the screen for a new round.
1660 '
1670 FOR W=1 TO 500 : NEXT W : PLAY "O4C32E32G32O5C8"
1680 PUT ((N-1)*60+25,5),RABBIT,PSET
1690 FOR I=1 TO 2000 : NEXT I
1700 LINE (1,36)-(318,198),0,BF
1710 NEXT N
1720 '
1730 '          All rabbits are in the top row.  End the game
1740 '          by playing the alphabet song.
1750 '
1760 DATA C4,C4,E4,E4,G4,G4,E2,F4,F4,E4,E4,D8,D8,D8,D8,C2
1770 DATA C4,C4,E2,G4,G4,E2,F8F8F4,E2,D4D4,C2
1780 DATA C4,NOW,C4,I'VE,E4,SAID,E4,MY,G4,A,G4,B,E2,C'S.
1790 DATA F4,WILL,F4,YOU,E4,COME,E4,AND,D4,PLAY,D4,WITH,C2,ME?
1800 IF N$(1)<>"" THEN GOTO 1830
1810 FOR K=1 TO 26 : READ N$(K) : NEXT K
1820 FOR K=27 TO 40 : READ N$(K),T$(K-26) : NEXT K
1830 FOR K=1 TO 26
1840   Y=INT(K/7)*40+50: X=(K MOD 7)*40+20
1850   GOSUB 2060
1860   IF K>20 THEN LINE (0,199)-(319,199),2
1870   R=INT(K/7)*5+6 : C=(K MOD 7)*5+4 : LOCATE R,C
1880   PRINT CHR$(ASC("A")+K-1);" ";CHR$(ASC("a")+K-1);
1890   PLAY "MFO3"+N$(K)
1900 NEXT K
1910 LINE (0,199)-(319,199),2
1920 LINE (1,1)-(318,34),0,BF
1930 FOR N=2 TO 3
1940   LOCATE N,5
1950   FOR K=1 TO 7
1960   NK=(N-2)*7+K
1970     PRINT T$(NK);" "; : PLAY "MFO3"+N$(NK+26)
1980   NEXT K
1990 NEXT N
2000 LINE (1,1)-(318,34),0,BF
2010 LOCATE 3,5
2020 FOR I= 1 TO 3000 : NEXT I
2030 GOTO 980
2040 REM ---------- SUBROUTINE PLOT PICTURE AT (X,Y) FOR LETTER NUMBER K ----------
2050 '
2060     IF K<13 THEN ON K GOTO 2080,2090,2100,2110,2120,2130,2140,2150,2160,2170,2180,2190
2070     ON K-12 GOTO 2200,2210,2220,2230,2240,2250,2260,2270,2280,2290,2300,2310,2320,2330
2080     PUT (X,Y),A,PSET : RETURN
2090     PUT (X,Y),B,PSET : RETURN
2100     PUT (X,Y),C,PSET : RETURN
2110     PUT (X,Y),D,PSET : RETURN
2120     PUT (X,Y),E,PSET : RETURN
2130     PUT (X,Y),F,PSET : RETURN
2140     PUT (X,Y),G,PSET : RETURN
2150     PUT (X,Y),H,PSET : RETURN
2160     PUT (X,Y),I,PSET : RETURN
2170     PUT (X,Y),J,PSET : RETURN
2180     PUT (X,Y),K,PSET : RETURN
2190     PUT (X,Y),L,PSET : RETURN
2200     PUT (X,Y),M,PSET : RETURN
2210     PUT (X,Y),N,PSET : RETURN
2220     PUT (X,Y),O,PSET : RETURN
2230     PUT (X,Y),P,PSET : RETURN
2240     PUT (X,Y),Q,PSET : RETURN
2250     PUT (X,Y),R,PSET : RETURN
2260     PUT (X,Y),S,PSET : RETURN
2270     PUT (X,Y),T,PSET : RETURN
2280     PUT (X,Y),U,PSET : RETURN
2290     PUT (X,Y),V,PSET : RETURN
2300     PUT (X,Y),W,PSET : RETURN
2310     PUT (X,Y),X,PSET : RETURN
2320     PUT (X,Y),Y,PSET : RETURN
2330     PUT (X,Y),Z,PSET : RETURN

FILES646.TXT

Disk No  #646
Program Title: Amy's First Primer (PC,XT,AT Version) version 1.2
PC-SIG version 1.3

Amy's First Primer is a collection of simple games for young children that
help them with skills like counting, letter recognition, simple problem
solving, pattern recognition and keyboard use.

Usage: Educational

System Requirements: IBM PC or close compatible with Color graphics
                     adapter, 1 disk drive, Dos 2.0 or later and a version
                     of BASIC.

How to Start: type GO to start

Suggested Registration: $15.00

File Descriptions:

README        Quick instructions for a fast start. type:type  readme
AMY      DOC  15 page user's guide to print out.
GO       BAT  Batch file to start the programs.    type:  go
AUTOEXEC BAT  Batch file for auto-startup.
COPYRITE BAS+ Copyright program to display initial information screen.
MENU     BAS+ Menu program to provide access to the other programs.
ABC      BAS+ Abc song musical program for picture/word/letter association.
BEARABC  BAS+ Beary fun abc's program to learn keyboard and printed letters.
BUNNY    BAS+ Bunny letters program to learn alphabet.
BEAR123  BAS+ Beary fun counting program to learn counting and numbers.
FROG     BAS+ Help the froggy maze program for problem solving.
TRUCK    BAS+ Load the truck program for shapes, colors..
MENU1    PIC  Picture screen for menu program
ABC1     PIC  Picture screen for abc program
BEARABC1 PIC  Picture screen for bearabc program
BUNNY1   PIC  Picture screen for bunny program
BEAR1231 PIC  Picture screen for bear123 program
FROG1    PIC  Picture screen for frog program
TRUCK1   PIC  Picture screen for truck program

PC-SIG
1030D E Duane Avenue
Sunnyvale Ca. 94086
(408) 730-9291
(c) Copyright 1987 PC-SIG Inc.


FROG.BAS

10 '             F R O G . B A S          8/10/86 11:21 PM
20 '
30 '    HELP THE FROGGY generates random mazes for a child to solve
40 '    by guiding a frog to the lily pad at the end of the maze.
50 '    The size of the maze may be set to a 5x5, 6x6, or 7x7 maze by changing
60 '    the value for the variable SIZE in line 120 below.
70 '
80 '    Converted for IBM-PC Screen 1.
90 '
100 ' **      Algorithm for generic maze generator by Dan Rollins, 04/25/83
110 ' **      Rest of program by Rob Robinson 12/28/85
120 '
130 '    Initialize all variables.
140 '
150 DEFINT A-R,T-Z
160 SCREEN 1 : COLOR 1,0 : CLS
170 LOCATE 2,13 : PRINT "HELP THE FROGGY"
180 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
190 '
200 '
210 '         Poke subroutine ALOAD into memory.
220 '
230 DEF SEG : ALOAD!= 48000!
240 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD!+IB,BYTE : NEXT IB
250 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
260 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
270 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
280 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
290 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
300 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
310 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
320 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
330 '
340 '           Load the title picture onto the screen.
350 '
360 SEG2%=&HB800 : BERR%=0 : FILE$="FROG1.PIC" : CALL ALOAD!(FILE$,SEG2%,BERR%)
370 SIZE=7
380 DIM T(5),MZ(100,100)
390 DIM YD(3),XD(3) : YD(0)=-1 : XD(1)=1 : YD(2)=1 : XD(3)=-1
400 DIM PWR2(3) : PWR2(0)=1 : PWR2(1)=2 : PWR2(2)=4 : PWR2(3)=8
410 RANDOMIZE TIMER
420 DIM FROGGY(250),PAD(250)
430 '
440 '   Load the title picture onto the screen and fill the graphics arrays.
450 '
460 LOCATE 25,7
470 GET (41,20)-(71,36),FROGGY
480 GET (236,150)-(285,165),PAD
490 '
500 '   Generate a random maze.
510 '
520 H=SIZE-1 : V=SIZE-1 : TH=H*30+3 : TV=V*20+30
530 X=INT(RND*H) : Y=INT(RND*V)
540 GOSUB 710
550 MZ(0,0)=MZ(0,0)+1
560 '
570 '   Display the maze on the screen.
580 '
590 GOSUB 940
600 '
610 '   Solve the maze.
620 '
630 GOSUB 1130
640 '
650 '   Go back for another maze.
660 '
670 GOTO 420
680 '
690 '           Subroutine to generate a randome maze.
700 '
710 FOR J=0 TO H : FOR K=0 TO V : MZ(J,K)=0 : NEXT : NEXT
720 LS=1
730 RC=0 : TR=(H+1)*(V+1)-1
740 Q=0 : IF RC=TR THEN RETURN
750 IF PLAY(0)<4 THEN GOSUB 1820
760 IF Y>0 THEN IF MZ(X,Y-1)=0 THEN Q=Q+1 : T(Q)=0
770 IF X<H THEN IF MZ(X+1,Y)=0 THEN Q=Q+1 : T(Q)=1
780 IF Y<V THEN IF MZ(X,Y+1)=0 THEN Q=Q+1 : T(Q)=2
790 IF X>0 THEN IF MZ(X-1,Y)=0 THEN Q=Q+1 : T(Q)=3
800 IF Q=0 GOTO 880
810 D=INT(RND*Q)+1 : DIR=T(D)
820 MZ(X,Y)=MZ(X,Y)+PWR2(DIR)
830 Y=Y+YD(DIR) : X=X+XD(DIR)
840 ND=DIR-2 : IF ND<0 THEN ND=4+ND
850 MZ(X,Y)=MZ(X,Y)+PWR2(ND)
860 RC=RC+1
870 GOTO 740
880 Y=Y+1 : IF Y>V THEN Y=0 : X=X+1 : IF X>H THEN X=0
890 IF MZ(X,Y)=0 THEN 880
900 GOTO 740
910 '
920 '           Subroutine to display the maze on the screen.
930 '
940 CLS : LOCATE 25,7
950 PRINT "H E L P   T H E   F R O G G Y";
960 DX=30 : DY=20 : PX=DX : PY=DY : CL=3
970 FOR Y=0 TO V
980   FOR X=0 TO H
990     IF INT(MZ(X,Y)/2)=MZ(X,Y)/2 THEN LINE (PX,PY)-(PX+DX,PY),CL : PX=PX+DX : GOTO 1010
1000     PX=PX+DX
1010   NEXT X : PX=DX
1020   FOR X=0 TO H
1030     IF MZ(X,Y)>7 THEN PX=PX+DX : GOTO 1050
1040     LINE(PX,PY)-(PX,PY+DY),CL : PX=PX+DX
1050   NEXT X : LINE(PX,PY)-(PX,PY+DY),CL : PX=DX : PY=PY+DY
1060 NEXT Y
1070 FOR X=0 TO H-1
1080 LINE (PX,PY)-(PX+DX,PY),CL : PX=PX+DX
1090 NEXT X
1100 RETURN
1110 '
1120 '           Subroutine to solve the maze.
1130 '          Set up variables for playing
1140 '
1150 PX=DX+1 : PY=DY+1 : MOVES=0
1160 BLANK=0 : RED=2 : BLUE=1
1170 NUL$=CHR$(0) : UP$=NUL$+CHR$(72) : DN$=NUL$+CHR$(80)
1180 RT$=NUL$+CHR$(77) : LT$=NUL$+CHR$(75) : STIME$=TIME$
1190 PUT (PX*(V+1)-8,PY*(V+2)+8),PAD,PSET
1200 PUT (PX,PY),FROGGY,>=
1210 C$=INKEY$ : IF C$=CHR$(27) THEN RUN"menu"
1220 IF C$<>"" THEN 1210
1230 '
1240 '           Wait until a key is pressed, then compute the direction desired
1250 '
1260 C$=INKEY$ : IF C$="" THEN 1260
1270 DX=0 : DY=0 : TX=0 : TY=0
1280 IF C$=CHR$(27) THEN RUN "menu"
1290 IF C$=UP$ AND PY>21 THEN DY=-20 : TY=-1
1300 IF C$=DN$ AND PY<TV THEN DY=20 : TY=+19
1310 IF C$=RT$ AND PX<TH THEN DX=30 : TX=+29
1320 IF C$=LT$ AND PX>31 THEN DX=-30 : TX=-1
1330 IF DX=0 AND DY=0 THEN 1260
1340 '
1350 '           Check to see if a maze wall is blocking the desired path.
1360 '
1370 S=POINT (PX+TX,PY+TY)
1380 IF S<>BLANK AND S<>RED AND S<>BLUE THEN 1260
1390 '
1400 '           Move the froggy to the new spot.
1410 '
1420 S=POINT(PX+DX+15,PY+DY+10)
1430 PUT (PX,PY),FROGGY,>=
1440 SOUND  37,4 :SOUND  88,2
1450 '
1460 '           If the frog moved backwards, erase the red line.
1470 '           If it moved forward, plot a red line showing the path.
1480 '
1490 IF S=RED THEN LINE (PX+15,PY+10)-(PX+DX+15,PY+DY+10),BLANK ELSE LINE (PX+15,PY+10)-(PX+DX+15,PY+DY+10),RED
1500 '
1510 '           Update the coordinates and the number of moves.
1520 '
1530 PX=PX+DX : PY=PY+DY : MOVES=MOVES+1
1540 LOCATE 24,1 : PRINT MOVES;" moves";
1550 '
1560 '           If the frog isn't on the pad yet, go back for another move.
1570 '
1580 IF PX>TH-30 AND PY>TV THEN 1630 ELSE 1200
1590 '
1600 '           The frog is on the pad, give him a fly to catch and eat.
1610 '           then go back for another game with a new maze.
1620 '
1630 PUT (PX,PY),FROGGY,PSET : LOCATE 1,1
1640 FL=PX+50 : FR=PX+75 : FT=PY : FB=PY+15 : FX=FR : FY=FB
1650 FOR I=1 TO 50
1660   PSET (FX,FY),0 : FX=INT(RND*6-3)+FX : FY=INT(RND*6-3)+FY
1670   PSET (FX,FY),3
1680   SOUND 37+RND*25,0.25
1685   FOR J=1 TO 10 : NEXT J
1690 NEXT I
1700 LINE (PX+28,PY+6)-(FX,FY),RED
1710 SOUND 1050,0.5
1720 LINE (PX+28,PY+6)-(FX,FY),0
1730 FOR I=1 TO 25 : SOUND 97,0.02
1740 LINE (PX+23,PY+6)-(PX+28,PY+6),1 : LINE (PX+23,PY+6)-(PX+28,PY+6),0
1750 FOR J=1 TO 100 : NEXT J
1760 NEXT I
1770 PSET (PX+23,PY+6),1 : PSET (PX+24,PY+5),0
1780 T$=INKEY$ : IF T$="" THEN 1810
1790 IF T$=CHR$(27) THEN RUN"MENU"
1800 GOTO 1780
1810 GOTO 520
1820 '
1830 '          SUBROUTINE TO PLAY "FROGGY WENT A COURTIN"
1840 '
1850 ON LS GOTO 1860,1880,1900
1860 PLAY "MBMST200O1C4F8F8F8F8F8F8A4 G4 D4MLC4F2F4C4F2F4P4"
1870 GOTO 1910
1880 PLAY "MSA8>C8C8C8C8C8D4C4<A4 F4"
1890 GOTO 1910
1900 PLAY "  MST200G4F4F4MLF8G8MSA4F4D4MLC4F2F4C4F4F2"
1910 LS=LS+1 : IF LS=4 THEN LS=1
1920 RETURN
10 '                   M E N U . B A S                 5/25/87 11:49 am
20 '
30 '   MENU provides a menu for access to Amy's First Primer.  It loads
40 '   a picture with the menu on it, and then let's a child select the
50 '   desired program by moving a big blue arrow up or down with the
60 '   cursor keys.  The name of the program is also highlighted in blue when
70 '   the arrow points to it.  When the child presses the ENTER key, the
80 '   program with the arrow pointing to it will be run.
90 '
100 '    Converted for IBM-PC Screen 1
110 '
120 CLEAR ,48000! : SCREEN 1 : COLOR 0,1 : KEY OFF : CLS
130 LOCATE 22,12 : PRINT "AMY'S FIRST PRIMER  1.2"
140 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
150 '
160 '
170 '         Poke subroutine ALOAD into memory.
180 '
190 DEF SEG : ALOAD= 48000!
200 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
210 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
220 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
230 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
240 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
250 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
260 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
270 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
280 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
290 '
300 '           Load the menu picture onto the screen.
310 '
320 SEG2%=&HB800 : BERR%=0 : FILE$="MENU1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
330 MYNAME$="AMY"
340 LOCATE 22,15-LEN(MYNAME$) : PRINT MYNAME$;
350 '
360 '           Initialize all necessary variables.
370 '
380 UP$=CHR$(0)+CHR$(72) : DN$=CHR$(0)+CHR$(80)
390 TITLE$(1)="ABC SONG"
400 TITLE$(2)="BEARY FUN LETTERS"
410 TITLE$(3)="BUNNY LETTERS"
420 TITLE$(4)="BEARY FUN COUNTING"
430 TITLE$(5)="HELP THE FROGGY"
440 TITLE$(6)="LOAD THE TRUCK"
450 '
460 '           Get the arrow into an array, then point it at the first
470 '           program on the menu.
480 '
490 DIM ARROW(200) : GET (6,1)-(55,28),ARROW : LINE (6,1)-(55,28),0,BF
500 N=1 : X=6 : Y=1 : PUT (X,Y),ARROW,>= : ROW=3 : COL=22 : L=1
510 ' LOCATE ROW,COL : PRINT TITLE$(N);
520 WHILE INKEY$<>"" : WEND
530 '
540 '           Wait until one of the three command keys are pressed.
550 '           The up arrow will move the arrow up and select the previous
560 '           program.  The down arrow will move the arrow down and select
570 '           the next program.  The ENTER key will run the selected program.
580 '
590 K$=INKEY$ : IF K$="" THEN 590
600 IF K$=CHR$(13) THEN GOTO 790
610 IF K$=UP$ AND N>1 THEN N=N-1
620 IF K$=DN$ AND N<6 THEN N=N+1
630 '
640 '           Remove the arrow from the current program and place it on the
650 '           newly selected program.  Also change the current program name
660 '           back to red and the new program name to blue.
670 '
680 PUT (X,Y),ARROW,>= ' LOCATE ROW,COL : PRINT TITLE$(L);
690 Y=6+(N-1)*24 : ROW=N*3 : L=N
700 PUT (X,Y),ARROW,>= ' LOCATE ROW,COL : PRINT TITLE$(N);
710 WHILE INKEY$<>"" : WEND
720 '
730 '           Go back for another key press.
740 '
750 GOTO 590
760 '
770 '           The ENTER key was pressed, execute the selected program.
780 '
790 ON N GOTO 800,810,820,830,840,850
800 RUN"ABC"
810 RUN"BEARABC"
820 RUN"BUNNY"
830 RUN"BEAR123"
840 RUN"FROG"
850 RUN"TRUCK"
860 END

START.BAS

10 '                    C O P Y R I T E . B A S          8/10/86
20 '
30 '    COPYRITE displays the copyright message for Amy's First Primer.
40 '
50 SCREEN 0 : WIDTH 40 : DEF SEG : KEY OFF : CLS
60 LOCATE 1,12 : COLOR 9,0 : PRINT "AMY'S FIRST PRIMER"
70 COLOR 5,0 : LOCATE 3,1
80 PRINT "This disk is dedicated to Amy, whose "
90 PRINT "birthday came on September 8. It helped"
100 PRINT "her wait another year for kindergarten"
110 PRINT
120 PRINT "We hope this disk will help your child"
130 PRINT "too. It's recommended for children 4-8."
140 PRINT "These programs should help to learn the"
150 PRINT "alphabet and the numbers 1 through 9."
160 PRINT "They will also help build skills in "
170 PRINT "problem solving and pattern matching."
180 PRINT : COLOR 5,0
190 PRINT "If you find the disk helpful,we request";
200 PRINT "that you send $15.00 to:"
210 COLOR 14,0
220 PRINT "             Rob Robinson "
230 PRINT "          523 Albany Ave. NE"
240 PRINT "        Orange City, IA  51041"
250 COLOR 5,0
260 PRINT "In appreciation, we'll send you a free"
270 PRINT "copy of the DRAW program used to create"
280 PRINT "the graphics for this disk."
290 PRINT : COLOR 9,0
300 PRINT "      Press any key to continue.";
310 PRINT : COLOR 4,0
320 PRINT " copyright 1985, Computing Specialties";
330 WHILE INKEY$="" : WEND
340 RUN "menu"

TRUCK.BAS

10 '                            T R U C K . B A S          5/25/87 11:14 am
20 '
30 '    LOAD THE TRUCK helps with problem solving, pattern recognition,
40 '    and following orders.  Stock piles of shapes are stored on the
50 '    left side of the screen, with a loader in the middle and a
60 '    truck trailer at the bottom left.  A deisel tractor is at the
70 '    bottom right.  An order form at the top left of the screen
80 '    indicates which shapes are needed on the trailer.  The child
90 '    must use the loader to fill the trailer with the same pattern
100 '   that is on the order form.  When the order is filled properly,
110 '   and the loader is out of the way, the tractor will back up
120 '   and haul the load away.
130 '
140 '   Converted for the IBM-PC Screen 1
150 '
160 SCREEN 1 : KEY OFF : CLS
170 COLOR 0,0 : LOCATE 25,7
180 PRINT "L O A D   T H E   T R U C K"
190 LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
200 '
210 '
220 '         Poke subroutine ALOAD into memory.
230 '
240 DEF SEG : ALOAD= 48000!
250 FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
260 DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
270 DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
280 DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
290 DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
300 DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
310 DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
320 DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
330 DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
340 '
350 '           Load the title picture onto the screen.
360 '
370 SEG2%=&HB800 : BERR%=0 : FILE$="TRUCK1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
380 '
390 '   Fill the shape tables with the figures on the screen.
400 '
410 DIM LOADER(300), TRAILER(300), TRACTOR(300), COMBO(900)
420 DIM SQUARE(100),DIAMOND(100),RECTANGLE(100),TRIANGLE(100),SIRCLE(100)
430 GET (0,7)-(15,19),SQUARE : GET (0,32)-(15,44),DIAMOND
440 GET (0,57)-(15,69),RECTANGLE : GET (0,82)-(15,94),TRIANGLE
450 GET (0,107)-(15,119),SIRCLE  : GET (144,50)-(221,76),LOADER
460 GET (11,152)-(115,168),TRAILER : GET (246,135)-(305,170),TRACTOR
470 '
480 '   Fill the order square with four random shapes.
490 '
500 LINE (223,12)-(301,30),0,BF
510 RANDOMIZE TIMER
520 FOR I=1 TO 4
530     SHAPE=INT(RND*5)+1 : XS=215+I*18 : YS=16
540     GOSUB 2020  ' PLOT SHAPE AT XS,YS
550     ORDER(I)=SHAPE
560 NEXT I
570 '
580 '   Set up the variables for moving the loader.
590 '
600 XL=145 : YL=50 : LINE (XL,YL)-(221,76),0,BF : PUT (XL,YL),LOADER,>=
610 FOR I=1 TO 5 : NLEFT(I)=5 : NEXT I : S=1
620 YS=ORDER(S)*25-25 : NS=NLEFT(ORDER(S)) : XS=NS*15-15
630 NUL$=CHR$(0) : UP$=NUL$+CHR$(72) : DN$=NUL$+CHR$(80) : LT$=NUL$+CHR$(75)
640 RT$=NUL$+CHR$(77)
650 '
660 '   Let the buldozer move around the screen until the shape S is found.
670 '
680 C$=INKEY$
690 T=T+1 : IF T=10 THEN T=0 : SOUND 37,0.1
700 IF C$="" THEN 680
710 SOUND 37,0.1 : T=5
720 IF C$=CHR$(27) THEN RUN"MENU"
730 XO=XL : YO=YL
740 IF C$=LT$ THEN XL=XL+5*(XL>4) : GOTO 780
750 IF C$=RT$ THEN XL=XL-5*(XL<240) : GOTO 780
760 IF C$=UP$ THEN YL=YL+5*(YL>4)  : GOTO 780
770 IF C$=DN$ THEN YL=YL-5*(YL<150) : GOTO 780
780 PUT (XO,YO),LOADER,>=
790 PUT (XL,YL),LOADER,>=
800 WHILE INKEY$<>"" : WEND
810 IF YL<100 AND S=5 THEN GOTO 1610
820 IF XL<>XS OR YL<>YS THEN GOTO 680
830 '
840 '   The shape has been found, raise the hoist.
850 '
860 YS=YS+5 : GET (XS,YS)-(XS+17,YS+15),COMBO
870 LINE (XS,YS)-(XS+17,YS+15),0,BF : PUT (XS,YS),COMBO,>=
880 FOR I=1 TO 5
890   PUT (XS,YS),COMBO,>=
900   YS=YS-1
910   PUT (XS,YS),COMBO,>=
920   SOUND 100+I*5,1
930 NEXT I
940 GOSUB 2080
950 '
960 '   Get the loader and shape as one figure.
970 '
980 GET (XL+2,YL)-(XL+77,YL+25),COMBO : LINE (XL+2,YL)-(XL+77,YL+25),0,BF
990 PUT (XL,YL),COMBO,>= : XS=110 : YS=140
1000 '
1010 '   Let the buldozer move around the screen until it gets to the
1020 '   back of the trailer.
1030 '
1040 C$=INKEY$
1050 T=T+1 : IF T=10 THEN T=0 : SOUND 57,0.1
1060 IF C$="" THEN 1040
1070 SOUND 57,0.1 : T=5
1080 IF C$=CHR$(27) THEN RUN"MENU
1090 XO=XL : YO=YL
1100 IF C$=LT$ THEN XL=XL+5*(XL>4) : GOTO 1140
1110 IF C$=RT$ THEN XL=XL-5*(XL<240) : GOTO 1140
1120 IF C$=UP$ THEN YL=YL+5*(YL>4)  : GOTO 1140
1130 IF C$=DN$ THEN YL=YL-5*(YL<150) : GOTO 1140
1140 PUT (XO,YO),COMBO,>=
1150 PUT (XL,YL),COMBO,>=
1160 WHILE INKEY$<>"" : WEND
1170 IF XL<>XS OR YL<>YS THEN GOTO 1040
1180 '
1190 '   The trailer has been found, slide the shape back onto the truck
1200 '
1210 GET (XS-50,YS)-(XS+15,YS+13),COMBO
1220 LINE (XS-50,YS)-(XS+15,YS+13),0,BF : PUT (XS-50,YS),COMBO,>=
1230 FOR I=1 TO 15
1240   PUT (XS-50,YS),COMBO,>=
1250   XS=XS-1
1260   PUT (XS-50,YS),COMBO,>=
1270 SOUND 150+I*10,1
1280 NEXT I
1290 GOSUB 2080
1300 GET (XS+14,YS)-(XS+15,YS+13),COMBO : LINE (XS+14,YS)-(XS+15,YS+13),0,BF
1310 XS=XS+14 : PUT (XS,YS),COMBO,>=
1320 FOR I=1 TO 15
1330   PUT (XS,YS),COMBO,>=
1340   XS=XS+1
1350   PUT (XS,YS),COMBO,>=
1360 SOUND 300-I*10,1
1370 NEXT I
1380 GOSUB 2080
1390 '
1400 '   The shape has been loaded, lower the hoist.
1410 '
1420 YS=YL : XS=XL : GET (XS,YS)-(XS+15,YS+15),COMBO
1430 LINE (XS,YS)-(XS+15,YS+15),0,BF : PUT (XS,YS),COMBO,>=
1440 FOR I=1 TO 5
1450   PUT (XS,YS),COMBO,>=
1460   YS=YS+1
1470   PUT (XS,YS),COMBO,>=
1480 SOUND 125-I*5,1
1490 NEXT I
1500 GOSUB 2080
1510 '
1520 '   Switch to the regular loader again and go back for another shape.
1530 '
1540 LINE (XL,YL)-(XL+76,YL+26),0,BF
1550 PUT (XL,YL),LOADER,>=
1560 NLEFT(ORDER(S))=NLEFT(ORDER(S))-1
1570 S=S+1
1580 GOTO 620
1590 '
1600 '   The truck is loaded and the loader is out of the way,
1610 '  Back the truck up.
1620 '
1630 XT=246 : YT=133 : LINE (246,135)-(305,170),0,BF : PUT (XT,YT),TRACTOR,>=
1640 PLAY "O1C2P4C2"
1650 WHILE XT>100
1660   PUT (XT,YT),TRACTOR,>=
1670   XT=XT-5
1680   PUT (XT,YT),TRACTOR,>=
1690   SOUND 300,0.1
1700 WEND
1710 '
1720 '  Haul the load off
1730 '
1740 PLAY "O1C2P4C2P4CDEF8P8CDEF8P8"
1750 GET (5,134)-(175,170),COMBO : XT=5 : YT=134
1760 WHILE XT<145
1770   XT=XT+5 : PUT (XT,YT),COMBO,PSET
1780   SOUND 300,0.1
1790 WEND
1800 WHILE XT<314
1810   GET (XT,YT)-(314,170),COMBO
1820   XT=XT+5 : PUT (XT,YT),COMBO,PSET
1830 SOUND 300,0.1
1840 WEND
1850 FOR I=1 TO 2000 : NEXT I
1860 '
1870 '  Set up the screen for a new game.
1880 '
1890 CLS : LOCATE 25,7
1900 PRINT "L O A D   T H E   T R U C K";
1910 PUT (144,50),LOADER,PSET
1920 PUT (11,152),TRAILER,PSET : PUT (246,135),TRACTOR,PSET
1930 FOR I=0 TO 4
1940    PUT (I*16,7),SQUARE,PSET
1950    PUT (I*16,32),DIAMOND,PSET
1960    PUT (I*16,57),RECTANGLE,PSET
1970    PUT (I*16,82),TRIANGLE,PSET
1980    PUT (I*16,107),SIRCLE,PSET
1990 NEXT I
2000 LINE(222,11)-(302,31),3,B
2010 GOTO 520
2020 ON SHAPE GOTO 2030,2040,2050,2060,2070
2030 PUT (XS,YS),SQUARE : RETURN
2040 PUT (XS,YS),DIAMOND : RETURN
2050 PUT (XS,YS),RECTANGLE : RETURN
2060 PUT (XS,YS),TRIANGLE : RETURN
2070 PUT (XS,YS),SIRCLE : RETURN
2080 FOR I=1 TO 300 : NEXT I : RETURN

Directory of PC-SIG Library Disk #0646

 Volume in drive A has no label
 Directory of A:\

ABC      BAS      5445   8-10-86  11:14p
ABC1     PIC     16392   1-31-86   9:03a
AMY      DOC     20473   9-27-86  10:14a
AUTOEXEC BAT        27   5-25-87  11:40a
BEAR123  BAS      3720   8-10-86  11:20p
BEAR1231 PIC     16392   1-31-86   7:13a
BEARABC  BAS      7338   8-10-86  11:18p
BEARABC1 PIC     16392   1-31-86   8:57a
BUNNY    BAS      8253   8-10-86  11:20p
BUNNY1   PIC     16392   1-31-86   9:00a
FILES646 TXT      1817   6-25-87   9:27a
FROG     BAS      6093   8-10-86  11:21p
FROG1    PIC     16392   1-01-80   4:09a
GO       BAT        12   4-11-87  11:11p
MENU     BAS      3425   5-25-87  11:49a
MENU1    PIC     16392   1-01-80   1:59a
README            1095   4-11-87  11:18p
START    BAS      1191   8-10-86  11:49p
TRUCK    BAS      6555   5-25-87  11:13a
TRUCK1   PIC     16392   1-31-86   9:08a
       20 file(s)     180188 bytes
                      126976 bytes free