home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk061 / abc.bas (.txt) next >
Encoding:
GW-BASIC  |  1986-08-10  |  5.3 KB  |  143 lines

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