home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-08-10 | 5.3 KB | 143 lines |
- 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
-