400  REM THIS PROGRAM USES THE FIRST RECORD OF A FILE.
401  REM ANY SUBSEQUENT RECORDS ARE LEFT UNTOUCHED.
402  REM  HP CONTRIBUTED LIBRARY, 2/75
403  REM CONTRA COSTA COMMUNITY COLLEGE CHEM DEPT.  COMPUTER EXPERIMENT
404  REM ***************************************************************
405  REM         TRIVIAL NAME DRILL DEVISED BY  JOHN WILSON
406  REM             INCLUDES FORMULA AND CHEMICAL NAMES
407  REM         WRITTEN FOR CHEMISTRY   MAY 1974
408  REM ***************************************************************
500  FILES TRIVIF
501  DATA "ACETYLENE","C2H2","ETHYNE"
502  DATA "LIME","CAO","CALCIUM OXIDE"
503  DATA "SLAKED LIME","CA(OH)2","CALCIUM HYDROXIDE"
504  DATA "VINEGAR","HC2H3O2","ACETIC ACID"
505  DATA "GALENA","PBS","LEAD(II) SULFIDE"
506  DATA "ALUMINA","AL2O3","ALUMINUM OXIDE"
507  DATA "BAKING SODA","NAHCO3","SODIUM HYDROGEN CARBONATE"
508  DATA "BAKING SODA","NAHCO3","SODIUM BICARBONATE"
509  DATA "CANE SUGAR","C12H22O11","SUCROSE"
510  DATA "BLUESTONE","CU(SO4)5(H2O)","COPPER(II) SULFATE PENTAHYDRATE"
511  DATA "BLUE VITRIOL","CU(SO4)5(H2O)","COPPER(II) SULFATE PENTAHYDRATE"
512  DATA "BORAX","NA2(B4O7)10(H2O)","SODIUM TETRABORATE DECAHYDRATE"
513  DATA "BRIMSTONE","S","SULFUR"
514  DATA "CALCITE","CACO3","CALCIUM CARBONATE"
515  DATA "MARBLE","CACO3","CALCIUM CARBONATE"
516  DATA "LIMESTONE","CACO3","CALCIUM CARBONATE"
517  DATA "CREAM OF TARTAR","KHC4H4O6","POTASSIUM HYDROGEN TARTRATE"
518  DATA "EPSOM SALTS","MG(SO4)7(H2O)","MAGNESIUM SULFATE HEPTAHYDRATE"
519  DATA "GYPSUM","CA(SO4)2(H2O)","CALCIUM SULFATE DIHYDRATE"
520  DATA "GRAIN ALCOHOL","C2H5(OH)","ETHANOL"
521  DATA "HYPO","NA2S2O3","SODIUM THIOSULFATE"
522  DATA "LAUGHING GAS","N2O","DINITROGEN OXIDE"
523  DATA "LITHARGE","PBO","LEAD(II) OXIDE"
524  DATA "LYE","NA(OH)","SODIUM HYDROXIDE"
525  DATA "MILK OF MAGNESIA","MG(OH)2","MAGNESIUM HYDROXIDE"
526  DATA "MURIATIC ACID","HCL","HYDROCHLORIC ACID"
527  DATA "OIL OF VITRIOL","H2(SO4)","SULFURIC ACID"
528  DATA "PLASTER OF PARIS","CA(SO4)1/2(H2O)","CALCIUM SULFATE HEMIHYDRATE"
529  DATA "POTASH","K2CO3","POTASSIUM CARBONATE"
530  DATA "PYRITES","FES2","IRON DISULFIDE"
531  DATA "QUICKSILVER","HG","MERCURY"
532  DATA "SAL AMMONIAC","NH4CL","AMMONIUM CHLORIDE"
533  DATA "SALTPETER","NANO3","SODIUM NITRATE"
534  DATA "TABLE SALT","NACL","SODIUM CHLORIDE"
535  DATA "WASHING SODA","NA2(CO3)10(H2O)","SODIUM CARBONATE DECAHYDRATE"
536  DATA "WOOD ALCOHOL","CH3(OH)","METHANOL"
699  REM
700  PRINT LIN(4),"INSTRUCTIONS FOR THIS TRIVIAL NAME QUIZ:"
710  PRINT "   ALWAYS PUT PARENTHESIS () AROUND THE FOLLOWING -    H2O"
720  PRINT SPA(55),"SO4"
730  PRINT SPA(56),"OH",LIN(1),"THIS IS IMPORTANT IN ORDER FOR ME TO";
740  DIM A$[35],B$[35],C$[40],M$[72],N$[3],W$[40],A[100],B[100],Z[6]
750  PRINT " UNDERSTAND YOUR FORMULAS.",LIN(2),"IF YOU DON'T KNOW THE ANSWER, TYPE  ?";
751  PRINT "  OR PRESS  RETURN .",LIN(1)
770  T0=45
780  FOR I=1 TO 6
790  Z[I]=I
800  NEXT I
810  D=INT(RND(1)*26+5)
820  FOR I=1 TO D
830  S1=INT(RND(1)*6+1)
840  S2=INT(RND(2)*6+1)
850  D1=Z[S1]
860  Z[S1]=Z[S2]
870  Z[S2]=D1
880  NEXT I
890  A1=A2=A3=0
900  N=36
901  REM ^ N IS THE NUMBER OF SUBSTANCES IN THE DATA BASE.
905  N1=N
910  FOR A=1 TO N
920  A[A]=A
930  NEXT A
940  FOR A=1 TO N1
950  B=INT(N1*RND(3)+1)
960  B[A]=A[B]
970  A[B]=A[N1]
980  N1=N1-1
990  NEXT A
1000  W0=0
1010  FOR A=1 TO N
1020  RESTORE 501
1030  FOR B=1 TO B[A]
1040  READ A$,B$,C$
1050  NEXT B
1060  W0=W0+(INT(LEN(A$)/2+1.5))+(INT(LEN(B$)/2+1.5))+(INT(LEN(C$)/2+1.5))
1070  IF W0>255 THEN 1170
1071  REM ^ THIS STMT. PREVENTS THE DATA FROM USING MORE THAN ONE RECORD.
1080  Y=0
1090  IF A>6 THEN 1120
1100  GOSUB Z[A] OF 1380,1530,1760,1910,1990,2220
1110  GOTO 1160
1120  IF RND(4)<.5 THEN 1150
1130  GOSUB INT(RND(5)*2+1) OF 1380,1530
1140  GOTO 1160
1150  GOSUB INT(RND(6)*4+1) OF 1760,1910,1990,2220
1160  NEXT A
1170  PRINT "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
1180  PRINT "  YOU GOT ";A1;" RIGHT.",LIN(1),SPA(10),A2;" WRONG.",LIN(1),SPA(10),A3;
1190  PRINT " TO SLOW.",LIN(1)
1200  IF A2=0 THEN 1280
1210  IF  END #1 THEN 1270
1220  READ #1,1
1230  PRINT "     STUDY LIST:"
1240  READ #1;A$,B$,C$
1250  PRINT A$;" = ";B$;" = ";C$
1260  GOTO 1240
1270  PRINT #1,1; END 
1280  PRINT "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=---=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
1290  IF A2=0 THEN 1330
1300  PRINT " I WILL WAIT ";(A2*7+3);" SECONDS FOR YOU TO STUDY THIS LIST..."
1310  PRINT "   PRESS  CR  IF YOU DON'T WANT TO WAIT.";
1320  ENTER A2*7+3,X,Z
1330  PRINT LIN(1),"DO YOU WANT TO CONTINUE THIS DRILL ?";
1340  ENTER 20,Z,Z$[1,1]
1350  IF Z=-256 THEN 9100
1360  IF Z$="Y" THEN 810
1370  GOTO 9100
1380  PRINT A;" WHAT IS THE COMMON NAME OF ",LIN(1),SPA(18),C$;"?:";
1390  GOSUB 2300
1400  GOTO Y OF 1520
1410  IF B$="CU(SO4)5(H2O)" THEN 1480
1420  IF B$#"CACO3" THEN 1500
1430  IF W$="CALCITE" THEN 1510
1440  IF W$="MARBLE" THEN 1510
1450  IF W$="LIMESTONE" THEN 1510
1460  GOSUB 2370
1470  RETURN 
1480  IF W$="BLUE STONE" THEN 1510
1490  IF W$#"BLUE VITRIOL" THEN 1460
1500  IF W$#A$ THEN 1460
1510  GOSUB 2510
1520  RETURN 
1530  PRINT A;" WHAT IS THE CHEMICAL NAME OF ",LIN(1),SPA(18),A$;"?:";
1540  GOSUB 2300
1550  GOTO Y OF 1750
1560  IF W$=C$ THEN 1740
1570  IF B$#"NAHCO3" THEN 1610
1580  IF W$="SODIUM BICARBONATE" THEN 1740
1590  IF W$="SODIUM HYDROGEN CARBONATE" THEN 1740
1600  GOTO 1720
1610  IF B$="PBS" THEN 1680
1620  IF B$#"PBO" THEN 1650
1630  IF W$="LEAD OXIDE" THEN 1690
1640  GOTO 1720
1650  IF B$#"CU(SO4)5(H2O)" THEN 1720
1660  IF W$="COPPER SULFATE PENTAHYDRATE" THEN 1690
1670  GOTO 1720
1680  IF W$#"LEAD SULFIDE" THEN 1720
1690  PRINT LIN(1),"   "'7"YES, BUT IT IS MORE CORRECT TO SAY ";C$;"."
1700  GOSUB 2600
1710  RETURN 
1720  GOSUB 2400
1730  RETURN 
1740  GOSUB 2510
1750  RETURN 
1760  PRINT A;" WHAT IS THE COMMON NAME OF",LIN(1),SPA(18),B$;"?:";
1770  GOSUB 2300
1780  GOTO Y OF 1900
1790  IF B$="CU(SO4)5(H2O)" THEN 1860
1800  IF B$#"CACO3" THEN 1880
1810  IF W$="CALCITE" THEN 1890
1820  IF W$="MARBLE" THEN 1890
1830  IF W$="LIMESTONE" THEN 1890
1840  GOSUB 2370
1850  RETURN 
1860  IF W$="BLUE STONE" THEN 1890
1870  IF W$#"BLUE VITRIOL" THEN 1840
1880  IF W$#A$ THEN 1840
1890  GOSUB 2540
1900  RETURN 
1910  PRINT A;" WHAT IS THE FORMULA OF",LIN(1),SPA(18),C$;"?:";
1920  GOSUB 2300
1930  GOTO Y OF 1980
1940  IF W$=B$ THEN 1970
1950  GOSUB 2430
1960  RETURN 
1970  GOSUB 2570
1980  RETURN 
1990  PRINT A;" WHAT IS THE CHEMICAL NAME OF ",LIN(1),SPA(18),B$;"?:";
2000  GOSUB 2300
2010  GOTO Y OF 2210
2020  IF W$=C$ THEN 2200
2030  IF B$#"NAHCO3" THEN 2070
2040  IF W$="SODIUM BICARBONATE" THEN 2200
2050  IF W$="SODIUM HYDROGEN CARBONATE" THEN 2200
2060  GOTO 2180
2070  IF B$="PBS" THEN 2140
2080  IF B$#"PBO" THEN 2110
2090  IF W$="LEAD OXIDE" THEN 2150
2100  GOTO 2180
2110  IF B$#"CU(SO4)5(H2O)" THEN 2180
2120  IF W$="COPPER SULFATE PENTAHYDRATE" THEN 2150
2130  GOTO 2180
2140  IF W$#"LEAD SULFIDE" THEN 2180
2150  PRINT LIN(1),"  "'7"YES, BUT IT IS MORE CORRECT TO SAY ";C$;"."
2160  GOSUB 2600
2170  RETURN 
2180  GOSUB 2400
2190  RETURN 
2200  GOSUB 2570
2210  RETURN 
2220  PRINT A;" WHAT IS THE FORMULA OF",LIN(1),SPA(18),A$;"?:";
2230  GOSUB 2300
2240  GOTO Y OF 2290
2250  IF W$=B$ THEN 2280
2260  GOSUB 2430
2270  RETURN 
2280  GOSUB 2540
2290  RETURN 
2300  REM  INPUT SUBROUTINE...
2301  ENTER T0,X,W$
2310  IF X#-256 THEN 2350
2320  A3=A3+1
2330  PRINT "!!!!!"'7'7'7,LIN(1),"YOU ARE TOO SLOW !!",LIN(1)
2340  Y=1
2350  RETURN 
2360  REM 'YOU ARE WRONG' SUBROUTINE
2370  M$=" IT IS CALLED "
2380  M$[15]=A$
2390  GOTO 2450
2400  M$=" IT IS NAMED "
2410  M$[14]=C$
2420  GOTO 2450
2430  M$=" THE CORRECT ANSWER IS "
2440  M$[24]=B$
2450  A2=A2+1
2455  IF W$[1,1]="?" THEN 2459
2456  IF LEN(W$)=0 THEN 2459
2457  N$="NO,"
2458  GOTO 2460
2459  N$=""
2460  PRINT LIN(1),N$;M$;"."
2470  PRINT #1;A$,B$,C$, END 
2480  PRINT LIN(1)
2490  RETURN 
2500  REM 'YOU ARE RIGHT' SUBROUTINE
2510  M$=" FORMULA IS "
2520  M$[13]=B$
2530  GOTO 2590
2540  M$=" CHEMICAL NAME IS "
2550  M$[19]=C$
2560  GOTO 2590
2570  M$=" COMMON NAME IS "
2580  M$[17]=A$
2590  PRINT LIN(1),"   YES! ALSO THE";M$;"."
2600  A1=A1+1
2610  PRINT LIN(1)
2620  RETURN 
9100  END 
