home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 04 / 0035 / egmenu.bas < prev    next >
Encoding:
BASIC Source File  |  1991-12-02  |  29.2 KB  |  519 lines

  1. 5 DEF SEG=&HF000:PCJR=0:IF PEEK(&HFFFE)<>&HFD THEN 900 ELSE CLEAR ,,,32768!:GOTO 900
  2. 9 REM ------- READ KYBD
  3. 10 POKE.C=0
  4. 11 A$=INKEY$:IF A$<>"" THEN IF A$=CHR$(27) OR A$=CHR$(19) THEN 14 ELSE 10
  5. 12 POKE.C=POKE.C-1: IF POKE.C<=0 THEN POKE.C=200: IF PCJR THEN POKE &H417,0 ELSE POKE &H417,PEEK(&H417) OR 32
  6. 13 A$=INKEY$:IF A$="" THEN 12
  7. 14 ZX=ASC(A$):IF ZX=27 THEN 62000
  8. 15 IF ZX=19 AND NOT PCJR THEN GOSUB 97:GOTO 12
  9. 16 IF ZX>96 AND ZX<123 THEN ZX=ZX-32:A$=CHR$(ZX)
  10. 17 IF LEN(A$)=2 THEN ZX=1000+ASC(RIGHT$(A$,1))
  11. 18 RETURN
  12. 19 REM ------ RND NUMBER GENERATOR
  13. 20 A=INT(RND(1)*X)+1:IF A=AX THEN 20
  14. 25 AX=A:RETURN
  15. 32 REM ------ COLOR FOR GRAPHICS
  16. 33 IF NOT PCJR OR SCREEN1 THEN COLOR 0,CINT(RND(5)*1): IF PCJR THEN GOSUB 37: PALETTE 1,CLR: CZ=CLR: GOSUB 37: PALETTE 2,CLR: GOSUB 37: PALETTE 3,CLR
  17. 34 CLR=CINT(RND*(FNCJ(14,2))+1):IF CLR=CZ OR CLR=7 OR CLR=8 OR CLR=15 THEN 34 ELSE CZ=CLR:RETURN
  18. 35 COLOR 0,CINT(RND(5)*1)
  19. 37 CLR=CINT(RND*(5)+1)+8:IF CLR=CZ OR CLR=CZ2 THEN 37 ELSE CZ2=CLR:RETURN
  20. 39 REM ------ SOUND RESPONSES
  21. 40 IF SND.MODE=0 THEN RETURN ELSE SND=RND*1000+50:FOR I=1 TO 15:SOUND SND,.9000001:SOUND 32767,.3:NEXT:RETURN:REM START GAME
  22. 41 IF SND.MODE=0 THEN RETURN ELSE FOR I=1 TO 20:SOUND RND*I*85+50,1.2:SOUND 32767,.4:NEXT:RETURN:REM CORRECT
  23. 42 IF SND.MODE=0 THEN RETURN ELSE FOR I=1 TO 2:SOUND 70,2:SOUND 32767,1:NEXT:RETURN:REM WRONG
  24. 43 IF SND.MODE=0 THEN RETURN ELSE FOR I=1 TO 3:SOUND RND(I)*I*500+50,1!:SOUND 32767,.25:NEXT:RETURN:REM ALPHABET
  25. 44 IF SND.MODE=0 THEN RETURN ELSE SOUND 600,.1:RETURN:REM DRAW DIRECTION
  26. 45 IF SND.MODE=0 THEN RETURN ELSE SOUND 300,.1:RETURN:REM DRAW COLOR
  27. 46 IF SND.MODE=0 THEN RETURN ELSE SOUND 400+AA*80,1:RETURN '--SOUND FOR COUNT
  28. 47 FOR TIME=1 TO 650-100*PCJR:NEXT:RETURN
  29. 48 FOR T=1 TO 102-298*PCJR:NEXT:RETURN
  30. 49 REM ------ TIME DELAY
  31. 50 FOR TIME=1 TO 1500:NEXT:RETURN
  32. 51 FOR TIME=1 TO 1000:NEXT:RETURN
  33. 52 FOR TIME=1 TO 3000:NEXT:RETURN
  34. 53 FOR TIME=1 TO 140:NEXT:RETURN
  35. 55 FOR TIME=1 TO 500:NEXT:RETURN
  36. 56 FOR TIME=1 TO 100:NEXT:RETURN
  37. 57 LOCATE ,,0:FOR TIME=1 TO 400:NEXT:RETURN
  38. 58 FOR TIME=1 TO 305:NEXT:RETURN
  39. 59 REM ------ LEVEL CHECK
  40. 60 IF NR/(NR+NW)>.75 THEN LEVEL=LEVEL+1
  41. 61 IF LEVEL<6 THEN X=3:RETURN
  42. 62 IF LEVEL<11 THEN X=5:RETURN
  43. 63 IF LEVEL<15 THEN X=7:RETURN
  44. 64 X=9:RETURN
  45. 69 REM ------ DROP A LEVEL
  46. 70 IF GAME=4 THEN 74
  47. 71 IF LEVEL<6 THEN RETURN
  48. 72 IF LEVEL<11 THEN LEVEL=4:RETURN
  49. 74 IF LEVEL<15 THEN LEVEL=9:RETURN
  50. 76 LEVEL=13:RETURN
  51. 80 FOR TIME=1 TO 1275:NEXT:RETURN
  52. 81 FOR TIME=1 TO 300:NEXT:RETURN
  53. 82 FOR TIME=1 TO 2550:NEXT:RETURN
  54. 83 FOR TIME=1 TO 900:NEXT:RETURN
  55. 84 FOR TIME=1 TO 200:NEXT:RETURN
  56. 85 FOR TIME=1 TO 375:NEXT:RETURN
  57. 86 FOR TIME=1 TO 50:NEXT:RETURN
  58. 87 LOCATE ,,0:FOR TIME=1 TO 340:NEXT:RETURN
  59. 88 FOR TIME=1 TO 260:NEXT:RETURN
  60. 90 REM ------ CHECK FOR CTRL KEYS
  61. 94 A$=INKEY$:IF A$=CHR$(27) THEN 62000
  62. 96 IF PCJR OR A$<>CHR$(19) THEN RETURN
  63. 97 SND.MODE=(SND.MODE+1) MOD 2:DEF SEG=0:POKE &H4F0,SND.MODE+1:RETURN
  64. 100 REM ------ CHECK FOR USED VALUE
  65. 110 AA=A :IF USED(AA)=0 THEN 150
  66. 120 FOR A=AA TO X :IF USED(A)=0 THEN 150 ELSE NEXT A
  67. 130 FOR A=AA TO 1 STEP -1 :IF USED(A)=0 THEN 150 ELSE NEXT A
  68. 140 FOR A=1 TO X :USED(A)=0 :NEXT A :GOSUB 20 :GOTO 110
  69. 150 USED(A)=1 :AA=A :RETURN
  70. 200 REM ------ ANIMATION FOR MATCH GAMES
  71. 205 X=135 :GOSUB 20 :Y=A+35 :X=20
  72. 210 Z=Z+1 :IF Z>4 THEN Z=1
  73. 215 ON Z GOSUB 225,280,320,400
  74. 220 RETURN  :REM ---pelican
  75. 225 PSET(X,Y),FNCJ(15,3):DRAW"R7M+8,-5E4U3M-5,-8U5H3L4G2D3F4M+3,+6G2L3H1L7M-8,+5G7L1G1R4E1R12":PAINT(X,Y-4),FNCJ(15,3):CIRCLE(X+10,Y-24),2,0,,,1 :PAINT(X+10,Y-24),0
  76. 230 PSET(X+11,Y-24),FNCJ(14,1):CT=FNCJ(14,2):DRAW"R0BR4C=CT;U1H1NR5F1NR10D1R15D1G2M-5,+7L3H4U2H1U2":PAINT(X+22,Y-17),FNCJ(14,2):PSET(X-6,Y-2),0:DRAW"R4E1R5E1R5E3U2"
  77. 235 GET(X-18,Y-28)-(X+30,Y+5),CHAR :K=0 :GOSUB 265 :GOSUB 81
  78. 240 FOR K=10 TO 30 STEP 10 :LINE(X-28+K,Y-28)-(X+20+K,Y+5),0,BF :PUT(X-18+K,Y-28),CHAR
  79. 245 IF K/20=INT(K/20) THEN GOSUB 265 ELSE GOSUB 255
  80. 250 IF PCJR THEN GOSUB 85 ELSE GOSUB 55
  81. 251 NEXT K :PSET(X+K+4,Y-25),0 :CT=FNCJ(14,2):DRAW"NR16C=CT;NM+15,-7U1NM+15,-6L1U1M+14,-5" :RETURN
  82. 255 PSET(X-1+K,Y+1),FNCJ(14,2):DRAW"ND4R1G2F2NL2R3H1NR4U3":IF SND.MODE>0 THEN PLAY"MBL32N25L48N30"
  83. 260 IF PCJR THEN GOSUB 86:RETURN ELSE GOSUB 56: RETURN
  84. 265 PSET(X+2+K,Y+1),FNCJ(14,2):DRAW"ND4R1G2F2NL2NR3U1L5E1U2R1":IF SND.MODE>0 THEN PLAY"MBL16N32L32N22"
  85. 270 IF PCJR THEN GOSUB 85 :RETURN ELSE GOSUB 55:RETURN
  86. 275 '---bird
  87. 280 CIRCLE(295-X,Y),3,FNCJ(4,2),,,1 :CIRCLE(293-X,Y+1),7,FNCJ(4,2),5.5,5,.8 :CIRCLE(305-X,Y+5),10,FNCJ(4,2),3.3,5.8,.9000001
  88. 285 PSET(300-X,Y+3),FNCJ(4,2) :DRAW"R2E1R7E3M+6,-16R9M-13,+18D2R5M-6,+5D1":PAINT(300-X,Y+7),FNCJ(4,2) :DRAW"C0F3R4E1R2E1R2"
  89. 290 PSET(307-X,Y+15),FNCJ(14,3):DRAW"NR1F3G1L1G1L1NF1L3BU5NR1F2G2L4
  90. 295 PSET(294-X,Y),1 :CT=FNCJ(14,3):DRAW"BL5BD1C=CT;NL2F1NL4D1NL7D1NL9F1NL11G1L4C0U1R2" :IF SND.MODE>0 THEN PLAY"MBL64N70N72"
  91. 300 GET(280-X,Y-20)-(318,Y+21),CHAR :GOSUB 51
  92. 305 PUT(280-X,Y-20),CHAR :PUT(265-X,Y-30),CHAR :GOSUB 56 :IF SND.MODE>0 THEN PLAY"MBL64AABC."
  93. 310 PUT(265-X,Y-30),CHAR :PUT(250-X,Y-20),CHAR :GOSUB 55
  94. 315 CT=FNCJ(14,3):PSET(258-X,Y+1),CT:DRAW"M-6,-2L1G1NR4R2F1NR6R1F1NR3D1C0NL5F1R1NL7F1R1NM-5,-3NL9D1C=CT;L1G1NR5L2G1NR6L1" :GOSUB 55 :RETURN
  95. 318 '---owl
  96. 320 CT=FNCJ(5,3):CIRCLE(X,Y-12),5,CT,,,1.2 :CIRCLE(X+3,Y+3),14,CT,4.7,.8,1.4:CIRCLE(X+10,Y-12),5,CT,,,1.2
  97. 325 PSET(X+11,Y-17),CT :DRAW"U2E3L3G1L1H1L3G1L6U1H2L2D6G1D3F1D4F1
  98. 330 PSET(X-3,Y+14),CT :DRAW"G1L3G1L3H1U1E2U1E1U1E1U8E1U2E1U1E1U1
  99. 335 PSET(X+4,Y+18),CT:CS=FNCJ(7,2):DRAW"L7NH2G1C=CS;NR9G1D1F1R10U1H2BE2F2D1H2
  100. 340 PAINT(X,Y),CT :PAINT(X,Y+20),CS :PSET(X+5,Y),0 :DRAW"D4G1D3G1D1G4L1G1L3
  101. 345 PAINT(X+1,Y-11),CS,CT :PAINT(X+11,Y-11),CS,CT
  102. 350 CIRCLE(X+1,Y-11),2,0,,,1 :CIRCLE(X+11,Y-11),2,0,,,1
  103. 355 PAINT(X+1,Y-11),0,0 :PAINT(X+11,Y-11),0,0
  104. 360 PSET(X+1,Y-11),1 :PSET(X+11,Y-11),1
  105. 365 PSET(X+5,Y-11),0 :DRAW"R1F2D3G1H2L1U4" :PAINT(X+6,Y-9),CS,0
  106. 370 GET(X-18,Y-28)-(X+20,Y+26),CHAR :IF SND.MODE>0 THEN PLAY"MBL32N30N34"
  107. 375 IF PCJR THEN GOSUB 83 ELSE GOSUB 51
  108. 376 FOR K=4 TO 16 STEP 4 :IF K/8=INT(K/8) THEN J=0 ELSE J=4
  109. 380 PUT(X-18+K,Y-28-J),CHAR,PSET :IF SND.MODE>0 THEN PLAY"MBL32EG"
  110. 385 IF PCJR THEN GOSUB 85 ELSE GOSUB 55
  111. 386 NEXT K
  112. 390 RETURN
  113. 395 '---penguin
  114. 400 XLR=FNCJ(8,2): CIRCLE(310-X,Y-13),7,XLR,5.5,3.4,1:CIRCLE(310-X,Y+3),17,XLR,2.3,4.1,1.9
  115. 405 PSET(308-X,Y+18),XLR :DRAW"L3G2D1R8U3E1F2R1F1R1F1R3U1H2U1H1U1H1U6E1U8H1U3H1U2
  116. 410 GOSUB 440 :PAINT(312-X,Y),XLR :CIRCLE(309-X,Y-15),3,0,,,1.1
  117. 415 PAINT(303-X,Y),FNCJ(15,3),XLR :PAINT(309-X,Y-15),FNCJ(15,3),0 :XLR=0 :GOSUB 440
  118. 420 PSET(307-X,Y-15),0 :CS=FNCJ(15,3):DRAW"E1ND4F1D2BL6C=CS;NL2D1NL4"
  119. 425 GET(280-X,Y-20)-(318,Y+21),CHAR :IF SND.MODE>0 THEN PLAY"MBL64AC"
  120. 430 GOSUB 51 :FOR K=3 TO 21 STEP 3 :PUT(280-X-K,Y-20),CHAR,PSET :IF SND.MODE>0 THEN SOUND 200+3*K,.5
  121. 435 IF PCJR THEN GOSUB 84 ELSE GOSUB 55
  122. 436 NEXT K :PSET(306-X-K,Y-12),0 :DRAW"NL4C=CS;NL1NG2ND1U1NL4U1NL2"
  123. 440 PSET(303-X,Y-7),XLR :DRAW"R2F1R2F1D3D7F1D2F2R1F1R1U2H1U1H1U3BL1BD8D4G1D1L2":RETURN
  124. 500 REM ------ MENU PICTURES
  125. 510 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  126. 511 CLR=FNCJ(14,3):CX=10:CY=160:AA=5:GOSUB 1525:LINE(135,60)-(185,75),FNCJ(14,3),BF:LINE(135,90)-(185,105),FNCJ(14,3),BF:CX=210:GOSUB 1525:RETURN
  127. 520 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  128. 521 CLR=FNCJ(2,1):CX=20:CY=160:SCL=3:AA=1:GOSUB 1525:CX=125:AA=2:GOSUB 1525:CX=220:AA=3:GOSUB 1525:SCL=4:RETURN
  129. 530 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  130. 531 CLR=FNCJ(4,2):CX=30:CY=160:AA=1:GOSUB 1525:LINE(135,60)-(185,75),CLR,BF:LINE(135,90)-(185,105),CLR,BF:CX=185:GOSUB 1525:RETURN
  131. 540 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  132. 541 CLR=FNCJ(2,1):XLR=1:A=8:TRY=0:GOSUB 2550:RETURN
  133. 550 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  134. 551 CLR=FNCJ(14,3):CY=100:CX=20:GOSUB 555:LINE(CX+57,CY-22)-(CX+97,CY-12),CLR,BF:LINE(CX+72,CY-35)-(CX+82,CY),CLR,BF:CX=142:GOSUB 555
  135. 552 GOSUB 558:CX=265:CY=72:GOSUB 555:CY=127:GOSUB 555:RETURN
  136. 555 LINE(CX,CY-35)-(CX+35,CY),CLR,BF:RETURN
  137. 558 CY=100:LINE(CX+58,CY-32)-(CX+98,CY-22),CLR,BF:LINE(CX+58,CY-12)-(CX+98,CY-2),CLR,BF:RETURN  '--EQ
  138. 560 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  139. 561 CLR=FNCJ(9,1):CX=20:CY=55:GOSUB 555:CY=100:GOSUB 555:CY=145:GOSUB 555:CY=100:LINE(CX+57,CY-22)-(CX+97,CY-12),CLR,BF
  140. 562 CX=142:CY=78:GOSUB 555:CY=123:GOSUB 555:GOSUB 558:CX=265:CY=100:GOSUB 555:RETURN
  141. 570 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,0
  142. 571 CLR=FNCJ(7,3):LINE(112,168)-(303,175),CLR,BF
  143. 575 LINE(112,103)-(119,168),CLR,BF:LINE(200,103)-(303,168),CLR,BF
  144. 580 LINE(208,111)-(295,168),FNCJ(4,2),BF:LINE(232,119)-(263,151),CLR,BF
  145. 585 LINE(240,119)-(255,151),0,BF
  146. 590 X=120:Y=102:I=32:K=8:GOSUB 650:X=192:I=-32:K=-8:GOSUB 650
  147. 595 LINE(120,103)-(199,167),FNCJ(4,2),BF:PAINT(136,102),FNCJ(4,2),FNCJ(7,3):LINE(144,119)-(175,167),0,BF
  148. 600 CLR=FNCJ(7,3):GOSUB 660:PAINT(286,100),FNCJ(2,1),FNCJ(7,3):CLR=FNCJ(2,1):GOSUB 660
  149. 610 LINE(232,46)-(256,62),FNCJ(4,2),BF:LINE(48,80)-(71,160),FNCJ(6,3),BF:LINE(40,161)-(79,168),FNCJ(6,3),BF
  150. 620 PSET(16,64),FNCJ(2,1):DRAW"U16R8U16R8U8R8U8R8U8R32D8R8D8R8D8R8D8R8D24L8D8L8D8L8D8L16U8L16D8L24U8L8U16L8":PAINT(18,60),FNCJ(2,1)
  151. 630 GET(120,103)-(127,110),A1:RESTORE 635:FOR K=1 TO 7:READ X,Y:PUT(X*8,Y*8),A1,PSET:NEXT K:RETURN
  152. 635 DATA 7,2,8,4,5,5,11,6,4,7,9,7,6,8
  153. 650 FOR A=0 TO I STEP K:LINE(X+A,Y-ABS(A))-(X+A+7,Y-ABS(A)-7),CLR,BF:NEXT A:RETURN
  154. 660 PSET(295,102),CLR:DRAW"S4U7L8U8L8U8L8U8L8U8L95":RETURN
  155. 799 REM ------ COUNT GRAPHICS
  156. 800 CX=CX+12:PRESET(CX,CY),POINT(CX,CY) :DRAW"S4C="+VARPTR$(XLR)
  157. 803 ON AA GOSUB 812,818,821,827,836,839,845,854,863,872
  158. 806 PAINT(CX+2+CLX,CY-16),XLR :CX=CX-12:RETURN
  159. 809 '--numbers
  160. 812 RETURN '--no zero
  161. 818 DRAW"BU2U5R3U19L3U4e3R5d26R3D5L11":CLX=3:RETURN '--1
  162. 821 DRAW"BU2BL4u5e1u1e13u1e1u1h3l3g3d3l5u5br20d4g1d1g14r15d5l20"
  163. 824 CIRCLE(CX+7,CY-23),10,XLR,0,3.1,1:CLX=6:RETURN '---2
  164. 827 DRAW"BL4bu11r5d2f2r5e2u3h3l3u5r3e3u3h2l5g2d2l5br20d2g1d1g2d1f2d1f1d2"
  165. 830 CIRCLE(CX+6,CY-25),10,XLR,0,3.1,.8:CIRCLE(CX+6,CY-10),10,XLR,3.1,,.8
  166. 833 CLX=7:RETURN '--3
  167. 836 DRAW"BL8bu11nr16u5e17r4d17r4d5l4d9l5u9bu5nu9l9e9":CLX=-7:RETURN
  168. 839 DRAW"BL5bu13r5d2f4r4e4u3h4l12u15r20d5l15d5r8"
  169. 842 CIRCLE(CX+6,CY-13),11,XLR,3.1,1.2,1:CLX=12:RETURN '--5
  170. 845 DRAW"BL5bu12u13br5nd4r1u1e2r6f2d1nr5bd11d4g3l4h3u4e3r4f3"
  171. 848 CIRCLE(CX+6,CY-25),10,XLR,0,3.1,.8:CIRCLE(CX+6,CY-12),10,XLR,3.1,2.2,1
  172. 851 CLX=-4:RETURN '-6
  173. 854 DRAW"BU2br6nu9l5nu9bl5bu26nr13u5r20d6 "
  174. 857 CIRCLE(CX+25,CY),35,XLR,2.25,2.75 ,1.4
  175. 860 CIRCLE(CX+30,CY+2),35,XLR,2.2,2.75 ,1.4:CLX=5 :RETURN '--7
  176. 863 CIRCLE(CX+6,CY-25),10,XLR,5.5,3.9,.8:CIRCLE(CX+6,CY-12),12,XLR,2.4,.8,.8
  177. 866 CIRCLE(CX+6,CY-25),5,XLR,,,.9000001:CIRCLE(CX+6,CY-12),6,XLR,,,.9000001
  178. 869 CLX=-4:RETURN '-8
  179. 872 DRAW"BL4bu10r5d1f3r4e4u5bl1bu6u4h3l4g3d4f3r4e3br6nu1nd11"
  180. 875 CIRCLE(CX+6,CY-23),10,XLR,0,5.4,1:CIRCLE(CX+6,CY-10),10,XLR,3.1,,.8
  181. 878 CLX=14:RETURN '-9
  182. 899 REM ------ START/MENU
  183. 900 ON ERROR GOTO 62000:LOCATE ,,0,6,7:DEFINT A-Z
  184. 902 KEY OFF:KEY 1,"":RANDOMIZE VAL(RIGHT$(TIME$,2))*60+VAL(MID$(TIME$,4,2)):DEF SEG=&HF000:PCJR=PEEK(&HFFFE)=&HFD:DEF SEG:KEYMODE=&H40
  185. 904 DIM N$(26),A1(26),A2(26),A3(26),CHAR(1560),RW(3),LSP(26),CP(24),NT$(12),USED(26),NT2$(12),NT3$(12),NO$(25)
  186. 906 DEF FNC(C)=C:DEF FNCJ(J,P)=(J AND NOT SCREEN1) OR (P AND SCREEN1):DEF FNP(P)=P
  187. 908 BL1$="nr20u150r20nr25bd20nr25d40nr25bd20" :SCL=4:GAME=0
  188. 909 BL2$="nr20u150r90d20l70d45r60d20l60d45":GOSUB 25000
  189. 910 SCREEN1=0:IF NOT PCJR THEN SCREEN1=-1:DEF SEG=0:POKE &H417,&H60
  190. 911 A$=INKEY$:IF A$<>"" THEN GOTO 910:ELSE LOCATE 1,1,0
  191. 915 GAME=(GAME MOD 9)+1:IF PCJR THEN SCREEN 5 ELSE SCREEN 1:COLOR 0,0
  192. 916 ON GAME GOSUB 530,540,550,560,510,520,7010,570,9000
  193. 917 FOR TIME=1 TO 300 - ((GAME < 5 AND GAME > 1) *100):A$=INKEY$:IF A$<>"" THEN 921
  194. 918 NEXT TIME:CLS:GOSUB 56:GOTO 915
  195. 921 A=ASC(A$):A$=INKEY$:IF A$<>"" THEN 921
  196. 925 IF A=19 AND NOT PCJR THEN GOSUB 97:GOTO 918
  197. 926 IF A=4 THEN 8500
  198. 930 IF A=9 THEN 10000
  199. 931 IF A=16 THEN 8400
  200. 932 IF A=23 THEN 30000
  201. 940 SCL=4
  202. 950 ON GAME GOTO 1000,2000,3000,4000,5000,6000,7000,8000,9050
  203. 1000 REM ------ MATCH NUMBERS GAME
  204. 1002 CLS:IF PCJR THEN SCREEN 5 ELSE SCREEN 1:COLOR 0,0
  205. 1003 GOSUB 57:GOSUB 1010:GOSUB 40:GOSUB 50:GOTO 1015
  206. 1010 LOCATE 12,FNP(8):PRINT "M A T C H   N U M B E R S";:RETURN
  207. 1015 CLS:LOCATE 25,8:PRINT "CAN YOU MATCH THIS NUMBER?";
  208. 1028 CY=160
  209. 1030 X=10:GOSUB 20:GOSUB 110:AA=AA-1
  210. 1032 GOSUB 33:CX=110:GOSUB 1525
  211. 1035 GOSUB 10:IF AA=VAL(A$) AND ASC(A$)>47 AND ASC(A$)<58 THEN 1038 ELSE GOSUB 42:GOTO 1035
  212. 1038 LOCATE 25,8:PRINT SPACE$(26);:GOSUB 205
  213. 1040 GOSUB 41:IF SND.MODE>0 THEN PLAY"MFP64"
  214. 1041 GOSUB 55:CLS:GOTO 1030
  215. 1060 '-----draw letters
  216. 1065 DRAW"bl10m+50,-150r22m+50,+150l22m-18,-54nl42bm-7,-21nl28m-14,-42m-14,+42
  217. 1070 DRAW"bm-7,+21m-18,+54l23" :CLX=15 :RETURN '--A
  218. 1075 DRAW"X"+VARPTR$(BL1$)+"NR30D50NR30BD20NR30" '--B
  219. 1080 CIRCLE(CX+45*SL!,CY-110*SL!),SL!*40,CLR,5.55,1.6,1
  220. 1085 CIRCLE(CX+45*SL!,CY-110*SL!),SL!*20,CLR,4.7,1.6,1
  221. 1090 CIRCLE(CX+50*SL!,CY-45*SL!),SL!*45,CLR,4.7,.9799999,1
  222. 1095 CIRCLE(CX+50*SL!,CY-45*SL!),SL!*25,CLR,4.7,1.6,1 :RETURN
  223. 1100 DRAW"br87BU45nr20bu60r20" '--C
  224. 1105 CIRCLE(CX+50*SL!,CY-75*SL!),SL!*75,CLR,.45,5.82,1.2
  225. 1110 CIRCLE(CX+50*SL!,CY-75*SL!),SL!*55,CLR,.61,5.65,1.25 :CLX=-10 :RETURN
  226. 1115 DRAW"bl5nr20u150r20nR24BD20nr24D110nr24bd20nr24" '--D
  227. 1120 CX=CX-5 :CIRCLE(CX+45,CY-75),75,CLR,4.7,1.6,1.2
  228. 1125 CIRCLE(CX+45,CY-75),55,CLR,4.7,1.6,1.3 :RETURN
  229. 1130 DRAW"br5NR90x"+VARPTR$(BL2$)+"R70D20" :RETURN '--E
  230. 1135 DRAW"br5x"+VARPTR$(BL2$)+"D20" :RETURN '--F
  231. 1140 DRAW"br87BU45l30u20r50d65l20u15bu90r20" '--G
  232. 1145 CIRCLE(CX+50,CY-75),75,CLR,.45,5.38,1.2
  233. 1150 CIRCLE(CX+50,CY-75),55,CLR,.61,5.65,1.25 :CLX=-10 :RETURN
  234. 1155 DRAW"br5nr20u150r20D60R50U60R20D150L20U70L50D70" :RETURN  '--H
  235. 1160 DRAW"br45U150r20d150l20" :CLX=45 :RETURN  '--I
  236. 1165 DRAW"BU45u5r20d5br50u105r20d105" '--J
  237. 1170 CIRCLE(CX+45,CY-45),45,CLR,3.1,,1
  238. 1175 CIRCLE(CX+45,CY-45),25,CLR,3.1,,1 :CLX=70 :RETURN
  239. 1180 DRAW"nr20u150r20d70m+60,-70r25m-57,+67m+60,+83l26m-48,-68m-14,+16d52" '-K
  240. 1185 RETURN
  241. 1190 DRAW"br5nr20u150r20D130R70D20L70" :RETURN '--L
  242. 1195 DRAW"bl10nr20u150r20m+40,+110m+40,-110r20d150l20u90m-32,+90l16m-32,-90d90
  243. 1200 CLX=-10 :RETURN '--M
  244. 1205 DRAW"nr20u150r21m+60,+110u110r20d150l21m-60,-110d110" :RETURN '--N
  245. 1210 CIRCLE(CX+50,CY-75),75,CLR,,,1.2 '--O
  246. 1215 CIRCLE(CX+50,CY-75),55,CLR,,,1.25 :CLX=-10 :RETURN
  247. 1220 DRAW"br8x"+VARPTR$(BL1$)+"NR30D70" '--P
  248. 1225 CX=CX+8 :CIRCLE(CX+45,CY-110),40,CLR,4.7,1.6,1
  249. 1230 CIRCLE(CX+45,CY-110),20,CLR,4.7,1.6,1 :RETURN
  250. 1235 DRAW"BR110H18bh15h12m+8,-20F15bf15f15m-8,+20" '--Q
  251. 1240 CIRCLE(CX+50,CY-75),75,CLR,5.7 ,5.44,1.2
  252. 1245 CIRCLE(CX+50,CY-75),55,CLR,5.77,5.41,1.25 :CLX=-10 :RETURN
  253. 1250 DRAW"br5x"+VARPTR$(BL1$)+"ND70r20m+30,+70r22m-31,-73" '--R
  254. 1255 CX=CX+5 :CIRCLE(CX+45,CY-110),40,CLR,5.14,1.6,1
  255. 1260 CIRCLE(CX+45,CY-110),20,CLR,4.7,1.6,1 :RETURN
  256. 1265 DRAW"bu46r20bu20br47 nm-43,-23be13nm-46,-27bu37nl5nr18" '--S
  257. 1270 CIRCLE(CX+50*SL!,CY-117*SL!),SL!*47,CLR,,4.1,.7
  258. 1275 CIRCLE(CX+50*SL!,CY-117*SL!),SL!*24,CLR,,3.95,.6
  259. 1280 CIRCLE(CX+50*SL!,CY-44*SL!),SL!*50,CLR,3.1,.95,.87
  260. 1285 CIRCLE(CX+50*SL!,CY-45*SL!),SL!*29,CLR,3.1,.9000001,.87 :CLX=60 :RETURN
  261. 1290 DRAW"BR40U130L40U20R100D20L40D130L20" :CLX=40 :RETURN '--T
  262. 1295 DRAW"br5BU45u105r20d105br50u105r20d105" '--U
  263. 1300 CX=CX+5 :CIRCLE(CX+45,CY-45),45,CLR,3.1,,1
  264. 1305 CIRCLE(CX+45,CY-45),25,CLR,3.1,,1 :RETURN
  265. 1310 DRAW"Br40m-50,-150r22m+38,114m+38,-114r22m-50,+150l20" :CLX=15:RETURN '-V
  266. 1315 DRAW"BR10M-30,-150R21M+20,+100M+20,-100R21M+20,+100M+20,-100R21M-30,+150"
  267. 1320 DRAW"l21M-20,-100M-20,+100L21" :RETURN  '--W
  268. 1325 DRAW"nr20M+40,-75M-40,-75R21M+30,+56M+30,-56R21M-40,+75M+40,+75L21M-30,-56
  269. 1330 DRAW"m-30,+56" :CLX=45 :RETURN '--X
  270. 1335 DRAW"br40u75M-41,-75R21M+30,+56M+30,-56R21M-41,+75d75L20" :CLX=45 :RETURN
  271. 1340 DRAW"U20M+80,-110L80U20R105D20M-80,+110R80D20L105" :CLX=45 :RETURN
  272. 1345 '--numbers
  273. 1350 CIRCLE(CX+50,CY-75),75,CLR,,,1.37   '--0
  274. 1365 CIRCLE(CX+50,CY-75),55,CLR,,,1.5  :RETURN
  275. 1370 DRAW"br45U118L12U18E14r18d150l20" :CLX=45 :RETURN  '--1
  276. 1375 DRAW"R100U20L72NM+53,-58BL28ND20NM+67,-72BU89BR5R20" :CLX=60 '-2
  277. 1380 CIRCLE(CX+50,CY-109),45,CLR,5.5,3.15,.9199999
  278. 1385 CIRCLE(CX+50,CY-109),25,CLR,5.5,3.15,.9000001 :RETURN
  279. 1390 DRAW"BU46R20BR30BU27U20BU20BL22L18" '--3
  280. 1395 CIRCLE(CX+50,CY-113),40,CLR,5.48,3.1,.9199999
  281. 1400 CIRCLE(CX+50,CY-113),22,CLR,4.75,3.1,.9000001
  282. 1405 CIRCLE(CX+50,CY-46),50,CLR,3.15,.97,.9199999
  283. 1410 CIRCLE(CX+50,CY-46),30,CLR,3.15,1.56,.9000001 :CLX=50 :RETURN
  284. 1415 DRAW"BL10BU51NR76U21E78R18D79R20D20L20D51L20U51BU20NU52L52E52" :RETURN '-4
  285. 1420 DRAW"BU47NR20BU27BR5NR45U76R85D20L65D37R26" '-5
  286. 1425 CIRCLE(CX+50,CY-46),50,CLR,3.15,1.56,.9199999
  287. 1430 CIRCLE(CX+50,CY-46),30,CLR,3.15,1.56,.9000001 :RETURN
  288. 1435 DRAW"BR3BU42U5H1U6H1U9H1U22E1U9E1U6E1U5BR20D3G1D5G1D6G1D9G1D2BU23BR56R20
  289. 1440 CIRCLE(CX+49,CY-104),46,CLR,,3,1
  290. 1445 CIRCLE(CX+49,CY-104),26,CLR,,3,1
  291. 1450 CIRCLE(CX+50,CY-46),46,CLR,3.2,2.3,1
  292. 1455 CIRCLE(CX+50,CY-46),26,CLR,,,1 :RETURN
  293. 1460 DRAW"BU130NR70U20R95D20BD130BL44L19" '-7
  294. 1465 CIRCLE(CX+115,CY+10),166,CLR,2.18,3.07,2
  295. 1470 CIRCLE(CX+143,CY+10),166,CLR,2.16,3.07,1.8 :CLX=40 :RETURN
  296. 1475 CIRCLE(CX+50,CY-113),40,CLR,5.48,3.95,.9199999 '-8
  297. 1480 CIRCLE(CX+50,CY-113),22,CLR,,,.9000001
  298. 1485 CIRCLE(CX+50,CY-46),50,CLR,2.2,.97,.9199999
  299. 1490 CIRCLE(CX+50,CY-46),30,CLR,,,.9000001 :CLX=12 :RETURN
  300. 1495 DRAW"BR4BU45R20BR72U1E1U6E1U9E1U12H1U10H1U9H1U6H1U5BL17BD42D12G1D8" '-9
  301. 1500 CIRCLE(CX+49,CY-104),46,CLR,,5.4,1
  302. 1505 CIRCLE(CX+49,CY-104),26,CLR,,,1
  303. 1510 CIRCLE(CX+50,CY-46),46,CLR,3.2,,1
  304. 1515 CIRCLE(CX+50,CY-46),26,CLR,3.2,,1 :CLX=12:RETURN
  305. 1520 '---display char
  306. 1525 SL!=SCL/4: CLX=0 :PRESET(CX,CY) :DRAW"C="+VARPTR$(CLR)+"S="+VARPTR$(SCL)
  307. 1530 IF GAME>0 AND GAME<5 THEN 1560
  308. 1550 ON AA GOSUB 1065,1075,1100,1115,1130,1135,1140,1155,1160,1165,1180,1190,         1195,1205,1210,1220,1235,1250,1265,1290,1295,1310,1315,1325,1335,1340
  309. 1555 GOTO 1565
  310. 1560 ON AA+1 GOSUB 1350,1370,1375,1390,1415,1420,1435,1460,1475,1495
  311. 1565 PAINT(CX+(10+CLX)*SL!,CY-75*SL!),CLR
  312. 1570 RETURN
  313. 2000 REM ------ COUNT GAME
  314. 2010 CLS:IF NOT PCJR THEN SCREEN 0:GOSUB 57:COLOR 9
  315. 2011 GOSUB 2021:GOSUB 40:LEVEL=1:NR=1:NW=1:GOSUB 50:GOTO 2090
  316. 2021 GOSUB 55:LOCATE 12,FNP(15),0:PRINT "C O U N T";:RETURN
  317. 2090 CLS:IF PCJR THEN SCREEN 5:GOSUB 37 ELSE SCREEN 1:GOSUB 33
  318. 2091 LOCATE 25,FNP(12),0:PRINT "HOW MANY BLOCKS?";
  319. 2100 GOSUB 60
  320. 2150 GOSUB 20:IF PCJR THEN GOSUB 37 ELSE GOSUB 34
  321. 2151 XLR=0:TRY=9:GOSUB 2550:TRY=0:IF PCJR THEN CLR=CLR-8
  322. 2160 GOSUB 10
  323. 2165 IF A<>VAL(A$) THEN 2170 ELSE CLS:IF NOT PCJR THEN SCREEN 1
  324. 2166 GOSUB 33:AA=A:CX=110:CY=160:GOSUB 1525:GOSUB 41:IF PCJR THEN GOSUB 50 ELSE GOSUB 52
  325. 2167 NR=NR+1:CLS:GOTO 2100
  326. 2170 GOSUB 42:TRY=TRY+1:GOSUB 2550:GOSUB 94:IF A=VAL(A$) THEN 2165 ELSE 2160
  327. 2550 GOSUB 50: AA=1:NRW=INT((A-1)/3)+1:IF NRW=1 THEN RW(1)=A
  328. 2560 IF NRW=2 THEN RW(2)=INT(A/2):RW(1)=A-RW(2)
  329. 2570 IF NRW=3 THEN RW(1)=3:RW(2)=3:RW(3)=A-6
  330. 2580 SPY=(170-NRW*35)/(NRW+1):FOR I=1 TO NRW:CY=30+SPY*I+((I-1)*35):SPX=(319-RW(I)*35)/(RW(I)+1)
  331. 2590 FOR J=1 TO RW(I):AA=AA+1:CX=SPX*J+((J-1)*35)
  332. 2600 GOSUB 2810:NEXT J:NEXT I
  333. 2610 IF TRY=4 THEN GOSUB 56:CLS:CX=110:CY=160:GOSUB 33:AA=A:GOSUB 1525:GOSUB 52:GOSUB 52:GOSUB 70:CLS:NW=NW+1:GOTO 2100
  334. 2620 RETURN
  335. 2670 REM
  336. 2700 GOSUB 800:GOSUB 46:GOSUB 51:RETURN
  337. 2800 REM --- responce to wrong try
  338. 2810 IF TRY=9 THEN LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOSUB 46:GOSUB 51:RETURN
  339. 2815 ON TRY+1 GOTO 2820,2830,2850,2860,2870
  340. 2820 LINE(CX,CY-35)-(CX+35,CY),CLR,BF:RETURN
  341. 2830 CLR=INT((POINT(CX,CY)+1) MOD FNCJ(15,3))+1
  342. 2840 LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOSUB 46:GOSUB 51:RETURN
  343. 2850 GOSUB 2700:GOSUB 51:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF:RETURN
  344. 2860 GOSUB 2700:RETURN
  345. 2870 FOR K=1 TO 4:GET(CX,CY-35)-(CX+35,CY),CHAR:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF:GOSUB 46:GOSUB 56:PUT(CX,CY-35),CHAR,PSET:GOSUB 56:NEXT K:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF
  346. 2880 RETURN
  347. 3000 REM ------ ADD GAME
  348. 3010 CLS:IF PCJR THEN SCREEN 5 ELSE SCREEN 0:GOSUB 57:COLOR 2
  349. 3011 GOSUB 3012:GOTO 3020
  350. 3012 LOCATE 12,FNP(18),0:PRINT "A D D";:RETURN
  351. 3020 GOSUB 40:GOSUB 50:LEVEL=1:NR=1:NW=1
  352. 3100 GOSUB 60:IF X=3 THEN X=4
  353. 3102 GOSUB 20:IF A=1 THEN A=2
  354. 3103 IF A=AZ THEN 3102
  355. 3105 CLS:IF NOT PCJR THEN SCREEN 1:GOSUB 33
  356. 3106 GOSUB 34:IF CLR=OLDCLR THEN 3106 ELSE OLDCLR=CLR
  357. 3107 GOSUB 34:IF CLR=OLDOPCLR THEN 3107 ELSE OPCLR=CLR:OLDOPCLR=CLR:CLR=OLDCLR
  358. 3108 TRY=9:XLR=0:GOSUB 3200:TRY=0:AZ=A:GOSUB 34
  359. 3110 GOSUB 10
  360. 3115 IF A<>VAL(A$) THEN 3120 ELSE CLS:IF NOT PCJR THEN SCREEN 1
  361. 3116 GOSUB 33:AA=A:CX=110:CY=160:GOSUB 1525:GOSUB 41:GOSUB 50:GOSUB 50:NR=NR+1:GOTO 3100
  362. 3120 GOSUB 42:TRY=TRY+1:GOSUB 3220:GOSUB 94:IF A=VAL(A$) THEN 3115 ELSE 3110
  363. 3200 RW(1)=CINT(RND(3)*(A-2))+1:IF RW(1)>5 THEN RW(1)=5
  364. 3210 RW(2)=A-RW(1):IF RW(2)>5 THEN RW(1)=RW(1)+(RW(2)-5):RW(2)=5
  365. 3220 AA=1:FOR I=1 TO 2:SPY=((199-RW(I)*40)/2)-2:CX=-135+(I*160)
  366. 3222 IF TRY=9 AND I=2 THEN LINE(100,97)-(140,107),OPCLR,BF:LINE(115,87)-(125,117),OPCLR,BF:GOSUB 55 ELSE GOSUB 55
  367. 3230 FOR J=1 TO RW(I):AA=AA+1:CY=SPY+(J*40)
  368. 3240 GOSUB 2810:NEXT J:NEXT I
  369. 3250 IF TRY=4 THEN GOSUB 55:CLS:CX=110:CY=160:GOSUB 33:AA=A:GOSUB 1525:GOSUB 52:GOSUB 52:NW=NW+1:GOSUB 70:GOTO 3100
  370. 3260 IF TRY=9 THEN LINE(260,87)-(300,97),OPCLR,BF:LINE(260,107)-(300,117),OPCLR,BF
  371. 3270 RETURN
  372. 4000 REM ------ SUBTRACT GAME
  373. 4010 CLS:IF PCJR THEN SCREEN 5 ELSE SCREEN 0:GOSUB 57:COLOR 14
  374. 4011 GOSUB 4031:GOTO 4040
  375. 4031 GOSUB 55:LOCATE 12,FNP(12),0:PRINT "S U B T R A C T";:RETURN
  376. 4040 GOSUB 40:GOSUB 50:LEVEL=8:NR=1:NW=1
  377. 4100 CLRFL=0:CLRFL2=0:GOSUB 60:IF X=9 THEN X=8
  378. 4101 GOSUB 20:IF A<3 THEN A=3
  379. 4102 IF A=AZ THEN 4101
  380. 4105 CLS:IF NOT PCJR THEN SCREEN 1
  381. 4106 GOSUB 33:IF CLR=OLDCLR THEN 4106 ELSE OLDCLR=CLR:GOSUB 34:OPCLR=CLR:CLR=OLDCLR
  382. 4107 TRY=9:XLR=0:AZ=A:GOSUB 4200:TRY=0
  383. 4110 GOSUB 10
  384. 4115 IF A<>VAL(A$) THEN 4120 ELSE CLS:IF NOT PCJR THEN SCREEN 1
  385. 4116 GOSUB 33:AA=A:CX=110:CY=160:GOSUB 1525:GOSUB 41:GOSUB 52:NR=NR+1:GOSUB 94:GOTO 4100
  386. 4120 GOSUB 42:TRY=TRY+1:GOSUB 4220:GOSUB 94:IF A=VAL(A$) THEN 4115 ELSE 4110
  387. 4200 RW(1)=CINT(RND(3)*(A-2))+1:IF RW(1)>5 THEN RW(1)=5
  388. 4210 RW(2)=A-RW(1):IF RW(2)>5 THEN RW(1)=RW(1)+(RW(2)-5):RW(2)=5
  389. 4215 A=ABS(RW(1)-RW(2)):IF RW(2)>RW(1) THEN SWAP RW(2),RW(1)
  390. 4218 IF A=0 THEN A=A+2:RW(1)=RW(1)+1:RW(2)=RW(2)-1
  391. 4220 AA=1:FOR I=1 TO 2:SPY=((199-RW(I)*40)\2)-2:CX=-135+(I*160)
  392. 4230 IF I=2 THEN LINE(100,97)-(140,107),OPCLR,BF:GOSUB 55
  393. 4240 FOR J=1 TO RW(I)
  394. 4245 IF I=1 THEN AA=AA+1:CY=SPY+(J*40) ELSE AA=AA-1:CY=234-SPY-(J*40)
  395. 4250 IF TRY=9 THEN LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOSUB 46:GOSUB 51:GOTO 4700
  396. 4260 ON TRY+1 GOTO 4270,4280,4400,4500,4550,4600
  397. 4270 LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOTO 4700
  398. 4280 IF I=1 AND CLRFL=0 THEN GOSUB 34:IF CLR=OLDCLR OR CLR=OPCLR THEN 4280 ELSE LEFTCLR=CLR:CLRFL=1:GOTO 4310
  399. 4290 IF I=2 AND CLRFL2=0 THEN GOSUB 34:IF CLR=OLDCLR OR CLR=LEFTCLR OR ((CLR=OPCLR) AND NOT SCREEN1) THEN 4290 ELSE RGHTCLR=CLR:CLRFL2=1
  400. 4300 X=25:Y=((199-RW(1)*40)\2)-2+(AA-1)*40:LINE(X,Y-35)-(X+35,Y),CLR,BF
  401. 4310 LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOSUB 46:GOSUB 55:GOTO 4700
  402. 4400 IF I=1 AND J<=A THEN GOSUB 2700:GOSUB 51:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF:GOTO 4700
  403. 4405 IF I=1 GOTO 4700
  404. 4410 X=25:Y=((199-RW(1)*40)\2)-2+(AA-1)*40:PSET(X+3,Y-3),0:GOSUB 4800
  405. 4420 PSET(CX+3,CY-3),0:GOSUB 4800:GOSUB 46:GOSUB 51
  406. 4430 LINE(X,Y-35)-(X+35,Y),CLR,BF:LINE(CX,CY-35)-(CX+35,CY),CLR,BF:GOTO 4700
  407. 4500 IF I=1 AND J<=A THEN GOSUB 2700:GOTO 4700
  408. 4505 IF I=1 THEN 4700
  409. 4510 X=25:Y=((199-RW(1)*40)\2)-2+(AA-1)*40:PSET(X+3,Y-3),0:GOSUB 4800
  410. 4520 PSET(CX+3,CY-3),0:GOSUB 4800:GOSUB 46:GOSUB 50:GOTO 4700
  411. 4550 IF I=1 THEN 4700
  412. 4560 X=25:Y=((199-RW(1)*40)\2)-2+(AA-1)*40:GOSUB 4850:GOSUB 50:GOTO 4700
  413. 4600 IF I=1 AND J<=A THEN 4610 ELSE 4700
  414. 4610 FOR K=1 TO 4:GET(CX,CY-35)-(CX+35,CY),CHAR:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF:GOSUB 46:GOSUB 56:PUT(CX,CY-35),CHAR,PSET:GOSUB 56:NEXT K:LINE(CX,CY-35)-(CX+35,CY),POINT(CX,CY),BF
  415. 4700 NEXT J:AA=AA+1:NEXT I:IF TRY=4 THEN TRY=5:GOTO 4220
  416. 4710 IF TRY=5 THEN GOSUB 56:CLS:CX=110:CY=160:GOSUB 33:AA=A:GOSUB 1525:GOSUB 52:GOSUB 52:NW=NW+1:GOSUB 70:GOTO 4100
  417. 4720 LINE(260,87)-(300,97),OPCLR,BF:LINE(260,107)-(300,117),OPCLR,BF
  418. 4730 RETURN
  419. 4800 DRAW"NE28L1NE29F1NE29BR29NH29U1NH28R1NH29":RETURN
  420. 4850 FOR JJ=0 TO 35 STEP 2:LINE(X+JJ,Y-35+JJ)-(X+35-JJ,Y-JJ),0,B:LINE(CX+JJ,CY-35+JJ)-(CX+35-JJ,CY-JJ),0,B :IF SND.MODE>0 THEN PLY=45+JJ:PLAY"MBL64N="+VARPTR$(PLY)
  421. 4860 GOSUB 56:NEXT JJ:RETURN
  422. 5000 REM ------ MATCH LETTERS
  423. 5002 CLS:IF PCJR THEN SCREEN 5 ELSE SCREEN 1:GOSUB 57:COLOR 0,0
  424. 5003 GOSUB 57:GOSUB 5005:GOSUB 40:GOSUB 50:GOTO 5015
  425. 5005 LOCATE 12,FNP(8):PRINT "M A T C H   L E T T E R S";:RETURN
  426. 5015 CLS:LOCATE 25,8:PRINT "CAN YOU MATCH THIS LETTER?";
  427. 5028 CY=160
  428. 5030 X=26:GOSUB 20:GOSUB 110
  429. 5032 GOSUB 33:CX=110:GOSUB 1525
  430. 5035 GOSUB 10:IF AA=ASC(A$)-64 OR AA=ASC(A$)-96 THEN 5038 ELSE GOSUB 42:GOTO 5035
  431. 5038 LOCATE 25,8:PRINT SPACE$(26);:GOSUB 205
  432. 5040 GOSUB 41:IF SND.MODE>0 THEN PLAY"MFP64"
  433. 5041 GOSUB 55:CLS:GOTO 5030
  434. 6000 '
  435. 6019 CLS: LOCATE 12,12,0: PRINT "A L P H A B E T";: GOTO 7001
  436. 7000 '
  437. 7001 DEF SEG=0:POKE &H4FF,GAME:IF PCJR THEN RUN"EG67JR" ELSE RUN "EG67PC
  438. 7010 CLS:GOSUB 57:CLR=3:SCL=2:CY=130:CX=6:AA=14:GOSUB 1525:CX=70:AA=1:GOSUB 1525:CX=140:AA=13:GOSUB 1525:CX=205:AA=5:GOSUB 1525:CX=260:AA=19:GOSUB 1525:SCL=4:RETURN
  439. 8000 DEF SEG=0:POKE &H4FF,GAME:RUN"EGDRAW
  440. 8400 GAME=24:GOTO 8000
  441. 8500 GAME=16:GOTO 8000
  442. 9000 REM ------ COMPARE SHAPES GAME
  443. 9010 CLS:GOSUB 57:IF NOT PCJR THEN SCREEN 1:COLOR 0,1
  444. 9011 SCL=4:GOSUB 9060:CLR=FNCJ(5,2):NUM1=8:NUM2=6 :AZ=2:X=5:Y=60:GOSUB 9240:RETURN
  445. 9031 CLS:LOCATE 12,7,0:PRINT "C O M P A R E   S H A P E S";:RETURN
  446. 9050 CLS: IF PCJR THEN SCREEN 5:COLOR 4,0 ELSE SCREEN 0:GOSUB 57:COLOR 4
  447. 9051 GOSUB 9031:GOSUB 40:GOSUB 50:CLS:IF NOT PCJR THEN SCREEN 1: GOSUB 57
  448. 9052 GOSUB 33:GOSUB 9060:GOTO 9100
  449. 9060 XLR=FNCJ(7,3):CY=180:CX=23:FOR AA=2 TO 5:GOSUB 800:CX=CX+80:NEXT AA:RETURN
  450. 9100 Y=60:LINE(0,0)-(319,140),0,BF:GOSUB 34:GOSUB 9220
  451. 9150 GOSUB 94:GOSUB 10:IF VAL(A$)=AZ THEN X=-75+(AZ*80):AA=NUM1:GOSUB 34:GOSUB 9270:GOSUB 41:GOSUB 50:GOSUB 50:GOTO 9100
  452. 9160 GOSUB 42:GOTO 9150
  453. 9210 '
  454. 9220 NUM1=CINT(RND(9)*13)+1:X=5
  455. 9225 AZ=CINT(RND(8)*3)+1:IF AZ=P THEN 9225 ELSE P=AZ
  456. 9230 NUM2=CINT(RND(9)*13)+1 :IF NUM2=NUM1 THEN 9230
  457. 9240 FOR I=1 TO 4
  458. 9250  IF I=AZ THEN AA=NUM1 ELSE AA=NUM2
  459. 9260 GOSUB 9275:X=X+80:NEXT I:RETURN
  460. 9270 REM
  461. 9275 ON AA GOSUB 9300,9310,9330,9400,9410,9430,9440,9450,9460,9480,9485,9490,9500,9520
  462. 9280 RETURN
  463. 9290 '-------shapes ------
  464. 9300 LINE (X,Y)-(X+70,Y+70),CLR,BF:RETURN '--sqr
  465. 9310 LINE (X,Y)-(X+70,Y+70),CLR,B :LINE(X+15,Y+15)-(X+55,Y+55),CLR,B
  466. 9320 PAINT(X+5,Y+5),CLR:RETURN '--sqr bdr
  467. 9330 CIRCLE(X+35,Y+35),35,CLR,,,1 '--cir w/face
  468. 9340 PSET(X+24,Y+26),CLR:DRAW"u3h2l3g4d4r1e1u1e2r3f1"
  469. 9350 PSET(X+46,Y+27),CLR:DRAW"u4e2r3f4d5l1h1u1h2l3g1"
  470. 9360 CIRCLE(X+35,Y+35),25,CLR,3.64,5.8,1
  471. 9370 CIRCLE(X+35,Y+38),25,CLR,3.64,5.78,.6
  472. 9380 CIRCLE(X+35,Y+38),7,CLR,,,1 :PAINT(X+35,Y+5),CLR
  473. 9390 CIRCLE(X+22,Y+50),11,0,2,4,1:CIRCLE(X+48,Y+50),11,0,5.4,1.1,1:RETURN
  474. 9400 CIRCLE(X+35,Y+35),35,CLR,,,1:PAINT(X+35,Y+5),CLR:RETURN '--sphere
  475. 9410 CIRCLE(X+35,Y+35),35,CLR,,,1:CIRCLE(X+35,Y+35),20,CLR,,,1
  476. 9420 PAINT(X+35,Y+5),CLR:RETURN '--cir/bdr
  477. 9430 PSET(X+35,Y),CLR:DRAW"m-35,+70r70m-35,-70":PAINT(X+35,Y+5),CLR:RETURN
  478. 9440 LINE(X+10,Y)-(X+60,Y+70),CLR,BF:RETURN '--vert retang
  479. 9450 PSET(X,Y),CLR:DRAW"nm+35,+70r70m-35,+70":PAINT(X+5,Y+5),CLR:RETURN
  480. 9460 LINE(X+10,Y)-(X+60,Y+70),CLR,B:LINE(X+25,Y+15)-(X+45,Y+55),CLR,B
  481. 9470 PAINT(X+15,Y+5),CLR:RETURN '--vt w/bdr
  482. 9480 PSET(X+15,Y),CLR:DRAW"r40m+15,+70l70m+15,-70":PAINT(X+20,Y+2),CLR:RETURN
  483. 9485 PSET(X,Y),CLR:DRAW"r70m-15,+70l40m-15,-70":PAINT(X+20,Y+2),CLR:RETURN
  484. 9490 PSET(X+20,Y),CLR:DRAW"r30F20D30G20L30H20U30E20":PAINT(X+25,Y+2),CLR:RETURN
  485. 9500 PSET(X+15,Y),CLR:DRAW"r55m-15,+70l55m+15,-70":PAINT(X+30,Y+5),CLR:RETURN
  486. 9510 RETURN '--parall
  487. 9520 PSET(X+35,Y),CLR:DRAW"nm-9,+27m+9,+27r26m-21,+16m+9,+27m-23,-17m-23,+17m+9,-27m-21,-16r26":PAINT(X+35,Y+5),CLR:RETURN '--star
  488. 10000 REM ------ READ IN INSTRUCTIONS
  489. 10010 SCREEN 0,1,0,0:CLS:LOCATE ,,0:GOSUB 43:GOSUB 43:ON ERROR GOTO 62000
  490. 10020 NAM$="PAGE1.BSV":GOSUB 10060:GOSUB 10
  491. 10030 NAM$="PAGE2.BSV":GOSUB 10060:GOSUB 10:GOTO 62000
  492. 10060 DEF SEG=&HB800:BLOAD NAM$,0:DEF SEG:RETURN
  493. 25000 ' SET SOUND
  494. 25010 DEF SEG=0:I=PEEK(&H4F0) AND 3:SND.MODE=1:IF I>0 THEN SND.MODE=I-1
  495. 25020 V12$="":V13$="":V14$="":V15$="":IF PCJR THEN IF SND.MODE<>2 THEN SOUND OFF ELSE SOUND ON:V12$="V12":V13$="V13":V14$="V14":V15$="V15"
  496. 25030 RETURN
  497. 30000 REM ------ WORD MENU
  498. 30005 CLS:GOSUB 57:SCREEN 0,1:CLS:GOSUB 57
  499. 30010 COLOR FNC(12):LOCATE 2,FNP(11):PRINT"1 = MATCH NUMBER GAME
  500. 30020 COLOR FNC(9):LOCATE 4,FNP(11):PRINT"2 = COUNT GAME
  501. 30030 COLOR FNC(13):LOCATE 6,FNP(11):PRINT"3 = ADD GAME
  502. 30040 COLOR FNC(10):LOCATE 8,FNP(11):PRINT"4 = SUBTRACT GAME
  503. 30050 COLOR FNC(14):LOCATE 10,FNP(11):PRINT"5 = MATCH LETTERS
  504. 30060 COLOR FNC(11):LOCATE 12,FNP(11):PRINT"6 = ALPHABET GAME
  505. 30070 COLOR FNC( 3):LOCATE 14,FNP(11):PRINT"7 = NAME GAME
  506. 30080 COLOR FNC( 5):LOCATE 16,FNP(11):PRINT"8 = DRAW GAME
  507. 30090 COLOR FNC( 4):LOCATE 18,FNP(11):PRINT"9 = COMPARE SHAPES GAME
  508. 30091 COLOR FNC( 7):LOCATE 20,FNP(4):PRINT"<Ctrl-P> = RETRIEVE PICTURE FROM DISK
  509. 30092 COLOR FNC( 7):LOCATE 21,FNP(4):PRINT"<Ctrl-D> = DELETE PICTURE FROM DISK
  510. 30093 COLOR FNC( 7):LOCATE 22,FNP(4):PRINT"<Ctrl-I> = INSTRUCTIONS
  511. 30100 COLOR 7:LOCATE 24,FNP(3),1:PRINT "SELECT:";:LOCATE ,,0
  512. 30105 A$=INKEY$:IF A$="" THEN 30105
  513. 30106 A=ASC(A$):IF A=9 THEN 10000 ELSE IF A=16 THEN 8400 ELSE IF A=4 THEN 8500 ELSE IF A=19 AND NOT PCJR THEN GOSUB 97:GOTO 30105 ELSE GAME=A-48:CLS:GOSUB 57:IF GAME<1 OR GAME>9 THEN 62000
  514. 30130 ON GAME GOTO 1000,2000,3000,4000,5000,6000,7000,8000,9050
  515. 62000 RUN 62010:' LOCATE 1,1: PRINT ERR;ERL: STOP: RUN"EGMENU
  516. 62010 ON ERROR GOTO 62020: RUN "EGMENU"
  517. 62020 SCREEN 0,1: CLS: LOCATE 12,3,0: PRINT "Insert the Early Games program disk": PRINT TAB(8) "and press the <Enter> key."
  518. 62030 A$=INKEY$: IF A$<>CHR$(13) THEN 62030 ELSE RUN 62010
  519.