The program sets a series of counting problems from the numbers one to nine. You know, count the ships, flowers, cats, houses or whatever and - if the answer is correct - reward the little angels with ships moving, cats smiling, telephones ringing or the like.
5 REM *COUNTABOUT* BBC VERSION* CONVE RSION I.THOMAS.ORIGINAL @WALWYN. 10 ENVELOPE1,1,2,-2,0,1,1,0,128,0,0,-31,12 8,0 20 X=0:GOSUB890 30 Z$=STRING$(29,CHR$9) 40 MODE1:VDU28,4,30,35,4,19,1,9;0;:PRINTTA B(11)"COUNTABOUT"''"A counting game for child ren aged 2-5." 50 GOSUB390 60 PRINT''"Press any key to start the game ":*FX15 70 GOTO90 80 PRINTTAB(10,22)"Press any key":*FX15 90 K=GET 100 CLS 110 Q=RND(9) 120 K=RND(5) 130 J=4:FORI=1TOQ 140 IFI=4 ORI=7 J=4 150 ON((I-1) DIV3+1) GOSUB560,570,580 160 PRINTSTRING$(J,CHR$9); 170 IFX=1 GOTO200 180 ONK GOSUB640,670,710,740,760 190 GOTO210 200 ONK GOSUB780,790,810,830,860 210 J=J+10:NEXT 220 COLOUR3 230 IFX=1 X=0:GOTO350 240 PRINTTAB(0,0);"H O W M A N Y ";N$;" ? "; 250 *FX15 260 A=GET-48:IFA<1 OR A>9 GOTO250 270 PRINT;A 280 IFA=Q CLS:GOTO320 290 IFABS(A-Q)=1 GOTO330 300 VDU7:COLOUR1:PRINT'"N O,W R O N G A N S W E R." 310 GOSUB590:GOTO240 320 X=1:GOTO130 330 COLOUR2:PRINT'"V E R Y N E A R L Y !" 340 GOSUB590:GOTO240 350 GOSUB600:COLOUR1:PRINTTAB(9,0)"C O R R E C T"' 360 IFQ=1 PRINT;Q;" ";LEFT$(N$,LEN(N$)-2): GOTO380 370 PRINTQ;" ";N$ 380 FORF=1TO2000:NEXT:GOSUB430:GOTO80 390 PRINT''"There is no need to use the RETURN key in this program." 400 PRINT'"Once the child knows where the numbers 1 to 9 are on the keyboard,you can sit back and let the computer do a bit of teaching." 410 PRINT'"(The function keys f1 to f9 can be usd as well as the number keys." 420 RETURN 430 ON Q GOTO440,450,460,470,480,490,500,51 0,520 440 A$="AB B B ":GOTO530 450 A$="CEDCEFGEE":GOTO530 460 A$="CED EJGEF":GOTO530 470 A$=" _ A BHHI":GOTO530 480 A$="KEEGEDGEF":GOTO530 490 A$="CEDLEDGEF":GOTO530 500 A$=" __ A A ":GOTO530 510 A$="CEDLEJGEF":GOTO530 520 A$="CEDGEJGEF" 530 B$="":FORI=1TO9:IFMID$(A$,I,1)<>" " AND MID$(A$,I,1)<>"_" B$=B$+CHR$(ASC(MID$(A$,I,1) )+159) ELSE B$=B$+MID$(A$,I,1) 540 NEXT 550 PRINTLEFT$(B$,3)'MID$(B$,4,3)'RIGHT$(B$ ,3):RETURN 560 PRINTTAB(0,5);:RETURN 570 PRINTTAB(0,11);:RETURN 580 PRINTTAB(0,17);:RETURN 590 FORL=1TO3000:NEXT 600 PRINTTAB(0,0)SPC(31) 610 FORL=1TO3 620 PRINTSPC(31) 630 NEXT:RETURN 640 N$="H O U S E S":COLOUR3 650 PRINT" ";LEFT$(Z$,28)" ";CHR$240;CHR $255;CHR$255;CHR$255;CHR$239;LEFT$(Z$,26);CHR $240;STRING$(5,CHR$255);CHR$239;LEFT$(Z$,25); CHR$225" ";CHR$225;LEFT$(Z$,24);CHR$225" ";CHR$242;" ";CHR$225; 660 RETURN 670 N$="C A T S":COLOUR2 680 PRINT" "CHR$240" "CHR$239;LEFT$(Z$,28) STRING$(4,CHR$255)LEFT$(Z$,27)"="CHR$237;CHR$ 255;CHR$255;CHR$238"="LEFT$(Z$,27); 690 PRINTCHR$240;CHR$255;CHR$255;CHR$239;LE FT$(Z$,28)STRING$(4,CHR$255); 700 RETURN 710 N$="T E L E P H O N E S":COLOUR2 720 PRINTCHR$240;CHR$255;CHR$255;CHR$255;CH R$239;LEFT$(Z$,28);:COLOUR130:COLOUR0:PRINT"( o)";:COLOUR128:COLOUR2 730 RETURN 740 N$="S H I P S":COLOUR0:COLOUR131 750 PRINT"_"CHR$241;CHR$241;CHR$241;LEFT$(Z $,27)CHR$239":::::"CHR$240;:COLOUR128:RETURN 760 N$="V A N S":COLOUR3 770 PRINT" "CHR$224;CHR$255;CHR$255;LEFT$(Z $,28)STRING$(4,CHR$255)LEFT$(Z$,28)CHR$244;CH R$241;CHR$241;CHR$244;:RETURN 780 SOUND1,-15,RND(100),4:GOSUB640:COLOUR2: FORW=0TO1000:NEXT:PRINTCHR$8;CHR$8;CHR$8;CHR$ 254;CHR$8;CHR$8;CHR$8;CHR$8;CHR$8;CHR$254:FOR W=0TO1000:NEXT:RETURN 790 COLOUR2:PRINT" "CHR$240" "CHR$239;LEFT $(Z$,28);:COLOUR130:COLOUR0:PRINT" ";CHR$244; CHR$244" ";:COLOUR2:COLOUR128:PRINTLEFT$(Z$,2 7)"="CHR$237;CHR$255;CHR$255;CHR$238"="LEFT$( Z$,27);:COLOUR130:COLOUR0 800 SOUND1,-15,RND(100)+100,4:PRINTCHR$238; CHR$230;CHR$229;CHR$237;:COLOUR2:COLOUR128:PR INTLEFT$(Z$,28)STRING$(4,CHR$255);:FORW=0TO20 00:NEXT:RETURN 810 GOSUB710 820 SOUND1,1,120,7:FORW=0TO1000:NEXT:SOUND1 ,1,120,10:FORW=0TO2400:NEXT:RETURN 830 GOSUB740:SOUND1,1,RND(50),5:FORW=0TO400 :NEXT:IFI<>Q RETURN 840 FORW=26TO2STEP-1:PRINTTAB(W,20);:GOSUB7 40:IFW=18 ORW=8 SOUND1,-15,0,10 850 FORK=0TO400:NEXT:PRINTTAB(0,20)SPC(96): NEXT:RETURN 860 GOSUB760:SOUND1,1,RND(50)+50,5:FORW=0TO 400:NEXT:IFI<>Q RETURN 870 FORW=26TO0STEP-1:PRINTTAB(W,20);:GOSUB7 60:IFW=18 ORW=8 SOUND1,-15,70,4:SOUND1,0,0,2: SOUND1,-15,70,6 880 FORK=0TO400:NEXT:PRINTTAB(0,20)SPC(96): NEXT:RETURN 890 RESTORE:FORF=0TO7:READA,B 900 ?(&C00+F)=A 910 ?(&C08+F)=128 920 ?(&C10+F)=B 930 NEXT 940 FORF=0TO7:READ?(&C18+F) 950 ?(&C20+F)=0:IFF=3 ?(&C20+F)=255 960 READ?(&C28+F),?(&C30+F) 970 NEXT 980 FORF=0TO7 990 ?(&C40+F)=128 1000 ?(&C38+F)=0 1010 ?(&C48+F)=16 1020 READ?(&C50+F) 1030 ?(&C58+F)=8 1040 ?(&C60+F)=1 1050 ?(&C68+F)=(2^(7-F))-1 1060 ?(&C70+F)=256-(2^F) 1070 ?(&C78+F)=256-(2^(7-F)) 1080 ?(&C80+F)=(2^F)-1 1090 ?(&C88+F)=0 1100 READ?(&C90+F) 1110 ?(&C98+F)=16 1120 NEXT 1130 FORF=0TO7:READ?(&CA0+F):NEXT 1140 ?&C38=255 1150 ?&C40=255 1160 ?&C4B=240 1170 ?&C5B=15 1180 ?&C60=255 1190 ?&C88=255:?&C89=255 1200 DATA1,0,2,0,4,0,8,3,16,4,32,8,64,8,128, 8 1210 DATA0,16,8,0,16,8,0,32,4,192,192,3,32,0 ,0,16,0,0,16,0,0,16,0,0 1220 DATA0,213,0,171,0,213,15,171,8,213,8,17 1,8,213,8,171 1230 DATA0,60,126,126,126,126,126,60,0 1240 VDU23,255,255,255,255,255,255,255,255,2 55 1250 VDU23,254,127,73,73,127,73,73,127,0 1260 FORI=1TO9:$&900="*KEY"+STR$(I)+" "+STR$ (I) 1270 X%=0:Y%=&9:CALL&FFF7:NEXT 1280 RETURN