home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib27b.dsk / GUITAR.CHORDS.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  112 lines

  1. 10  REM  **********************
  2. 20  REM  *    GUITAR.CHORDS   *
  3. 30  REM  *   BY M.E. BAKICH   *
  4. 40  REM  * COPYRIGHT (C) 1986 *
  5. 50  REM  * BY MICROSPARC,INC. *
  6. 60  REM  *  CONCORD, MA 01742 *
  7. 70  REM  **********************
  8. 80  GOTO 240
  9. 90  HOME : GR : REM  DRAW BLANK GRID
  10. 100  COLOR= 5
  11. 110  FOR X = 2 TO 38  STEP 6
  12. 120  HLIN 13,28 AT X
  13. 130  NEXT X
  14. 140  FOR Y = 13 TO 28  STEP 3
  15. 150  VLIN 2,38 AT Y
  16. 160  NEXT Y
  17. 170  RETURN 
  18. 180  COLOR= 15: REM  DRAW CHORDS
  19. 190  FOR I = 1 TO C(A,C1)
  20. 200  FOR J = 0 TO 2
  21. 210  PLOT CD(A,C1,I) +J,CD(A,C1,I +C(A,C1)) -1
  22. 220  NEXT J,I
  23. 230  RETURN 
  24. 240  HOME : VTAB 7: HTAB 11: PRINT "GUITAR CHORD TUTOR": PRINT : HTAB 12: PRINT "BY MICHAEL BAKICH": PRINT : PRINT "** COPYRIGHT 1986 BY MICROSPARC, INC **": VTAB 21: HTAB 8: PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT : HOME : VTAB 7: HTAB 7: PRINT "READING CHORD DATA"
  25. 250  DIM R$(12),CD(3,12,19),C(3,12)
  26. 260 CH$(1) = " MAJOR":CH$(2) = " MINOR":CH$(3) = " SEVENTH"
  27. 270  DATA  A,B,C,D,E,F,G,A FLAT,B FLAT,D FLAT,E FLAT,G FLAT
  28. 280  FOR I = 1 TO 12: READ R$(I): NEXT 
  29. 290  FOR J = 1 TO 3
  30. 300  FOR K = 1 TO 12
  31. 310  READ C(J,K)
  32. 320  FOR L = 1 TO C(J,K) *2: READ CD(J,K,L): NEXT L
  33. 330  NEXT K,J
  34. 340  TEXT : HOME 
  35. 350  FOR I = 1 TO 12: VTAB I: HTAB 3: PRINT "*": VTAB I: HTAB 31: PRINT "*": NEXT 
  36. 360  FOR I = 4 TO 30: VTAB 1: HTAB I: PRINT "*": VTAB 12: HTAB I: PRINT "*": NEXT 
  37. 370  VTAB 3: HTAB 5: PRINT "THE FOLLOWING CHORD TYPES"
  38. 380  VTAB 4: HTAB 5: PRINT "ARE AVAILABLE FOR REVIEW:"
  39. 390  VTAB 6: HTAB 10: PRINT "(1) MAJOR"
  40. 400  VTAB 8: HTAB 10: PRINT "(2) MINOR"
  41. 410  VTAB 10: HTAB 10: PRINT "(3) SEVENTH"
  42. 420  VTAB 15: HTAB 3: PRINT "OR: PRESS 'T' FOR A SELF-TEST"
  43. 430  VTAB 17: HTAB 7: PRINT "PRESS 'Q' TO QUIT"
  44. 440  VTAB 20: HTAB 20: PRINT "CHOOSE ONE...";: GET A$
  45. 450  IF A$ = "T"  THEN 810
  46. 460  IF A$ = "Q"  THEN  END 
  47. 470  IF A$ <"1"  OR A$ >"3"  THEN 440
  48. 480 A =  VAL(A$)
  49. 490  HOME : GOSUB 90
  50. 500 X = 4
  51. 510  VTAB 21: PRINT "CHOOSE FROM THESE";CH$(A);" CHORDS:"
  52. 520  VTAB 21: PRINT "CHOOSE FROM THESE";CH$(A);" CHORDS:"
  53. 530  VTAB 22: HTAB 4: PRINT "A  B  C  D  E  F  G  A- B- D- E- G-"
  54. 540  VTAB 24: PRINT "USE <-- & --> THEN <RETURN>//<ESC>=MENU";
  55. 550  IF S <4  THEN S = 37
  56. 560  IF S >37  THEN S = 4
  57. 570  VTAB 22: HTAB S: GET W$
  58. 580  IF W$ =  CHR$(27)  THEN 340
  59. 590  IF W$ =  CHR$(13)  THEN 630
  60. 600  IF W$ =  CHR$(8)  THEN S = S -3: GOTO 550
  61. 610  IF W$ =  CHR$(21)  THEN S = S +3: GOTO 560
  62. 620  GOTO 550
  63. 630  HOME :C1 =  INT(S/3)
  64. 640  GOSUB 180
  65. 650  INVERSE : IF C1 >7  THEN 670
  66. 660  VTAB 22: HTAB 19: PRINT R$(C1);CH$(A): GOTO 680
  67. 670  VTAB 22: HTAB 16: PRINT R$(C1);CH$(A)
  68. 680  NORMAL : VTAB 24: HTAB 1: PRINT "<RETURN> = CONTINUE";: HTAB 25: PRINT "<ESC> = MENU...";: GET A$
  69. 690  IF A$ =  CHR$(27)  THEN 340
  70. 700  IF A$ < > CHR$(13)  THEN 680
  71. 710  COLOR= 0: GOSUB 190: GOSUB 100: HOME : GOTO 520
  72. 720  DATA  3,18,21,24,12,12,12,9,27,24,21,18,15,12,24,21,18,12,12,12,12,12,12,24,24,24,3,24,18,15,6,12,18,3,27,24,21,12,18,12,3,15,18,21,12,12,6,4,27,24,21,18,6,6,12,18,3,12,15,27,18,12,18
  73. 730  DATA  9,18,21,15,12,15,18,21,24,27,36,30,36,24,24,24,24,24,24,9,18,21,24,12,15,18,21,24,27,18,18,18,6,6,6,6,6,6,9,18,21,24,12,15,18,21,24,27,36,36,36,24,24,24,24,24,24
  74. 740  DATA  5,18,21,24,24,27,30,18,18,24,18,9,15,18,21,12,15,18,21,24,27,24,24,18,12,12,12,12,12,12
  75. 750  DATA  3,18,21,24,12,12,6,9,18,21,24,12,15,18,21,24,27,24,24,18,12,12,12,12,12,12,9,18,21,24,12,15,18,21,24,27,30,30,24,18,18,18,18,18,18,3,21,24,27,12,18,6,2,15,18,12,12
  76. 760  DATA  8,15,18,12,15,18,21,24,27,18,18,6,6,6,6,6,6,8,15,18,12,15,18,21,24,27,30,30,18,18,18,18,18,18,8,15,18,12,15,18,21,24,27,36,36,24,24,24,24,24,24,9,18,21,24,12,15,18,21,24,27,18,18,12,6,6,6,6,6,6
  77. 770  DATA  9,18,21,24,12,15,18,21,24,27,36,36,30,24,24,24,24,24,24,4,18,21,24,27,24,18,24,12,8,15,18,12,15,18,21,24,27,24,24,12,12,12,12,12,12
  78. 780  DATA  2,18,24,12,12,8,18,24,12,15,18,21,24,27,24,24,12,12,12,12,12,12,4,15,18,21,24,18,12,18,6,3,21,24,27,12,6,12,2,15,21,12,6,8,15,21,12,15,18,21,24,27,18,12,6,6,6,6,6,6,3,12,15,27,18,12,6
  79. 790  DATA  8,15,21,12,15,18,21,24,27,36,30,24,24,24,24,24,24,8,18,24,12,15,18,21,24,27,18,18,6,6,6,6,6,6,8,18,24,12,15,18,21,24,27,36,36,24,24,24,24,24,24
  80. 800  DATA  4,18,21,24,27,6,18,12,18,8,15,21,12,15,18,21,24,27,24,18,12,12,12,12,12,12
  81. 810  HOME : VTAB 3: PRINT "PLEASE CHOOSE (FOR SELF-TEST):"
  82. 820  VTAB 6: PRINT "1) MAJOR CHORDS"
  83. 830  VTAB 8: PRINT "2) MINOR CHORDS"
  84. 840  VTAB 10: PRINT "3) SEVENTH CHORDS"
  85. 850  VTAB 12: PRINT "4) ALL CHORDS"
  86. 860  VTAB 16: HTAB 20: PRINT "WHICH...";: GET A$
  87. 870  IF A$ <"1"  OR A$ >"4"  THEN 860
  88. 880 B =  VAL(A$):A = B
  89. 890  GOSUB 90
  90. 900  IF B < >4  THEN 920
  91. 910 A =  INT( RND(1) *3) +1:C1 =  INT( RND(1) *12) +1: GOTO 930
  92. 920  FOR C1 = 1 TO 12
  93. 930  GOSUB 100
  94. 940  HOME : VTAB 22: PRINT "PLEASE PLAY---> ";R$(C1);CH$(A)
  95. 950  REM  NEXT LINE HAS 36 DASHES
  96. 960  VTAB 23: HTAB 1: PRINT "------------------------------------": VTAB 24: PRINT "<RETURN> = CHORD";: HTAB 25: PRINT "<ESC> = MENU...";: GET A$
  97. 970  IF A$ =  CHR$(27)  THEN 340
  98. 980  IF A$ < > CHR$(13)  THEN 960
  99. 990  GOSUB 180
  100. 1000  HOME : VTAB 22: INVERSE 
  101. 1010  IF C1 >7  THEN 1030
  102. 1020  HTAB 18: PRINT R$(C1);CH$(A): NORMAL : GOTO 1060
  103. 1030  IF A = 3  THEN 1050
  104. 1040  HTAB 16: PRINT R$(C1);CH$(A): NORMAL : GOTO 1060
  105. 1050  HTAB 15: PRINT R$(C1);CH$(A): NORMAL 
  106. 1060  VTAB 24: HTAB 1: PRINT "<RETURN> = CONTINUE";: HTAB 25: PRINT "<ESC> = MENU...";: GET A$
  107. 1070  IF A$ =  CHR$(27)  THEN 340
  108. 1080  IF A$ < > CHR$(13)  THEN 1060
  109. 1090  COLOR= 0: GOSUB 190
  110. 1100  IF B = 4  THEN 910
  111. 1110  NEXT C1
  112. 1120  TEXT : GOTO 340