1  REM  ****  HP BASIC PROGRAM LIBRARY  *****************************
2  REM
3  REM        MUSIC2:  TRIAD SOLVING PROGRAM
4  REM
5  REM        36276  REV A  --  2/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  **********************************
10  REM  *** AARDWOLF & COMPANY WRITING TEAM ***  JOHN C. RIDGES
20  REM  *** MUSIC2 *** 0790 WORDS *** VERSION 1 ***
30  DIM A[11,55],A$[30],B$[7],E$[5]
40  PRINT "THIS PROGRAM PRINTS TRIADS ON A STAFF."
50  PRINT "M=MAJOR  N=MINOR  A=AUGMENTED  D=DIMINISHED"
60  PRINT "N=NATURAL  F=FLAT  S=SHARP"'13'10"EACH TRIAD HAS 3 LETTERS  EXAMPLE:"
70  PRINT "AFA=A FLAT AUGMENTED"'13'10"THE NUMBER OF TRIADS MUST BE BETWEEN 1  AND 30";
80  PRINT "EXAMPLE:  AFNDNMGSD"'13'10"WHAT TRIADS DO YOU WANT";
90  MAT A=ZER
100  I1=1
110  I2=I1+I1
120  I3=I2+I1
130  I4=I3+I1
140  J1=5/I3
150  FOR B=I2 TO 10 STEP I2
160  FOR C=I1 TO 55
170  A[B,C]=I1
180  NEXT C
190  NEXT B
200  INPUT A$
210  IF LEN(A$)/I3#INT(LEN(A$)/I3) THEN 280
220  B$="CBAGFED"
230  E$=" -O6#"
240  FOR D=I3 TO LEN(A$) STEP I3
250  FOR E=I1 TO 7
260  IF A$[D-I2,D-I2]=B$[E,E] THEN 300
270  NEXT E
280  PRINT "ILLEGAL CHARACTER"'13'10"WHAT TRIADS DO YOU WANT";
290  GOTO 90
300  A[E+I4,D*J1]=A[E+I2,D*J1]=A[E,D*J1]=I2
310  RESTORE 
320  FOR K8=I1 TO I4
330  READ C$,F,G
340  IF C$=A$[D,D] THEN 370
350  NEXT K8
360  GOTO 280
370  H=I1-I1
380  IF A$[D-I1,D-I1]#"S" THEN 410
390  A[E+I4,D*J1-I1]=I4
400  H=-I1
410  IF A$[D-I1,D-I1]#"F" THEN 440
420  A[E+I4,D*J1-I1]=I3
430  H=I1
440  RESTORE 740
450  READ D$,I,J
460  IF D$#B$[E,E] THEN 450
470  L=I1-I1
480  FOR K=I1-I1 TO I2
490  IF F <= I+H+K THEN 530
500  L=-K-I1
510  A[E+I2,D*J1-I1-K]=I4
520  GOTO 560
530  IF F >= I+H-K THEN 570
540  L=K+I1
550  A[E+I2,D*J1-I1-K]=I3
560  NEXT K
570  FOR M=I1-I1 TO I2
580  IF G <= J+L+M THEN 610
590  A[E,D*J1-I1-M]=I4
600  GOTO 630
610  IF G >= J+L-M THEN 640
620  A[E,D*J1-I1-M]=I3
630  NEXT M
640  NEXT D
650  PRINT '10'10'10'10
660  FOR N=I1 TO 11
670  FOR O=I1 TO LEN(A$)/I3*5+I4
680  PRINT E$[A[N,O]+I1,A[N,O]+I1];
690  NEXT O
700  PRINT 
710  NEXT N
720  PRINT '10'10'10'10
730  DATA "M",4,3,"N",3,4,"D",3,3,"A",4,4
740  DATA "C",4,3,"F",4,3,"G",4,3,"D",3,4,"E",3,4,"A",3,4,"B",3,3
750  END 
