home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / TEST / EARTRAIN.bas < prev    next >
BASIC Source File  |  2020-08-13  |  3KB  |  70 lines

  1. 1  REM   - MUST HAVE LOADED PRIM AND TABLE FIRST   
  2. 2  CALL 36864: CALL 36908: REM   INIT BOTH CHIPS    
  3. 3  CALL 36897: CALL 36941: REM   RESET BOTH CHIPS   
  4. 5  TEXT : HOME : PRINT "EAR TRAINING PROGRAM": PRINT 
  5. 7  PRINT "CONCERT A = 145, Bb=137, E=193": PRINT 
  6. 10  GOSUB 1000
  7. 20  REM  L=LEFT SPKR FINE TONE, R=RIGHT SPKR FINE TONE
  8. 25  PRINT 
  9. 30 V = 15: REM  VOLUME
  10. 40 B1 = 768:B2 = B1 +16
  11. 50 M1 = 32768:M2 = 32796
  12. 60 V1 = B1 +8:V2 = B2 +8
  13. 70 P1 = 12 *4096 +6 *16 +1:P2 = P1 +1
  14. 100  POKE 8,B1 - INT(B1/256) *256
  15. 110  POKE 9, INT(B1/256)
  16. 120  POKE 10,B2 - INT(B2/256) *256
  17. 130  POKE 11, INT(B2/256)
  18. 140  FOR I = 0 TO 15: POKE B1 +I,0: POKE B2 +I,0: NEXT 
  19. 150  POKE B1,L: POKE B2,R
  20. 160  POKE B1 +7,62: POKE B2 +7,62
  21. 170  POKE V1,0: POKE V2,0
  22. 180  CALL M1: CALL M2
  23. 190  PRINT "OPEN APPLE PLAYS LEFT SPEAKER TONE": PRINT "SOLID APPLE PLAYS RIGHT SPEAKER TONE"
  24. 200  POKE V1,0: POKE V2,0
  25. 205 S1 = 0:S2 = 0: REM   STATUS OF BUTTONS     
  26. 210  IF  PEEK(P1) >127  THEN  POKE V1,V:S1 = 1
  27. 220  IF  PEEK(P2) >127  THEN  POKE V2,V:S2 = 1
  28. 230  CALL M1: CALL M2
  29. 240  IF (S1 = 1)  AND ( PEEK(P1) < = 127)  THEN 200
  30. 250  IF (S1 = 0)  AND ( PEEK(P1) >127)  THEN 200
  31. 260  IF (S2 = 1)  AND ( PEEK(P2) < = 127)  THEN 200
  32. 270  IF (S2 = 0)  AND ( PEEK(P2) >127)  THEN 200
  33. 280  IF  PEEK( -16384) <128  THEN 240
  34. 290  IF Q$ = "Q"  THEN  GOSUB 5000
  35. 300  PRINT : INPUT "RUN AGAIN (Y/N):";Y$
  36. 310  IF  LEFT$(Y$,1) = "Y"  THEN 5
  37. 311  IF  LEFT$(Y$,1) < >"N"  THEN 300
  38. 315  IF SN = 0  THEN 999
  39. 320  PRINT "FINAL SCORE: "SC"/"SN" OR " INT(SC/SN *100)"%"
  40. 999  END 
  41. 1000  INPUT "DO YOU WANT (P)RACTICE OR (Q)UIZ:";Q$
  42. 1010  IF  LEFT$(Q$,1) = "P"  THEN  GOSUB 2000: RETURN 
  43. 1020  IF  LEFT$(Q$,2) = "Q"  THEN  GOSUB 3000: RETURN 
  44. 1030  PRINT "TRY AGAIN": GOTO 1000
  45. 2000  PRINT 
  46. 2005  INPUT "LEFT SPEAKER FINE TONE: ";L
  47. 2010  INPUT "RIGHT SPEAKER FINE TONE: ";R
  48. 2020  RETURN 
  49. 3000 R1 =  INT( RND(1) *5) -2:R2 =  INT( RND(1) *3) +1
  50. 3010  IF R2 = 1  THEN L = 145:R = 145 +R1
  51. 3020  IF R2 = 2  THEN L = 137:R = 137 +R1
  52. 3030  IF R2 = 3  THEN L = 193:R = 193 +R1
  53. 3040  RETURN 
  54. 5000  INPUT "WAS THE RIGHT SPEAKER (S)HARP, (F)LAT, OR (E)QUAL:";U$
  55. 5010 U = 0
  56. 5011  IF  LEFT$(U$,1) = "S"  THEN U = 1
  57. 5012  IF  LEFT$(U$,1) = "F"  THEN U = 2
  58. 5013  IF  LEFT$(U$,1) = "E"  THEN U = 3
  59. 5014  IF U = 0  THEN 5000
  60. 5020 CO = 0
  61. 5021  IF R >L  AND U = 2  THEN CO = 1
  62. 5022  IF R <L  AND U = 1  THEN CO = 1
  63. 5023  IF R = L  AND U = 3  THEN CO = 1
  64. 5025  PRINT 
  65. 5030  IF CO = 1  THEN  PRINT "*** CORRECT! ***"
  66. 5040  IF CO = 0  THEN  PRINT "SORRY, THAT IS INCORRECT."
  67. 5050  PRINT "LEFT TONE WAS: ";L: PRINT "RIGHT TONE WAS: ";R
  68. 5060 SC = SC +CO:SN = SN +1
  69. 5070  PRINT : PRINT "YOUR SCORE IS "SC"/"SN" OR " INT(SC/SN *100)"%"
  70. 5090  RETURN