100 REM ************************* 110 REM ** ** 120 REM ** STATES OF THE UNION ** 130 REM ** ** 140 REM ** BRUCE JAEGER ** 150 REM ** ** 160 REM ** ST. PAUL, MINN ** 170 REM ** ** 180 REM ************************* 190 C=0:IF PEEK(57344)=133 THEN C=1 200 REM 0=VIC, 1=64 210 IF C=1 THEN 250 220 POKE 36879,8 230 POKE 36878,0 240 GOTO 270 250 POKE 53280,0:POKE 53281,0 260 POKE 54272+24,8 270 S6=54272:SV=36876 280 HC$=CHR$(147) 290 UC$=CHR$(142)+CHR$(8) 300 RV$=CHR$(18) 310 RO$=CHR$(146) 320 WH$=CHR$(5) 330 GR$=CHR$(153) 340 IF C=0 THEN GR$=CHR$(30) 350 RD$=CHR$(150) 360 IF C=0 THEN RD$=CHR$(28) 370 X=RND(-TI) 380 GOSUB 1430: REM READ DATA 390 PRINT HC$ "PRESS:" 400 PRINT:PRINT "Q FOR QUIZ," 410 PRINT:PRINT "T FOR TUTOR," 420 PRINT:PRINT "E FOR END." 430 POKE 198,0:WAIT 198,1:GETA$ 440 IF A$<>"T"ANDA$<>"Q"ANDA$<>"E"THEN 430 450 IF A$="E" THEN PRINTCHR$(9):GOTO63000 460 IF A$="Q" THEN 650 470 REM *** TUTORIAL SECTION *** 480 PRINT HC$ 490 INPUT "NAME OF STATE";S$ 500 GOSUB 1060 : REM CHECK SPELLING 510 PRINT HC$ RV$ S$(X) " (" PC$(X) ")" RO$ " TOUCHES:" 520 PRINT 530 IF LEN (T$(X))=0 THEN PRINT "NO OTHER STATES!":GOTO 590 540 FOR Y= 1 TO LEN(T$(X)) 550 Z$=MID$(T$(X),Y,1) 560 Z=ASC(Z$) 570 PRINT S$(Z) 580 NEXT Y 590 PRINT:PRINT 600 PRINT RV$ "ANOTHER?" RO$ " (Y/N)" 610 POKE 198,0:WAIT 198,1:GETA$ 620 IF A$<>"Y" THEN 390 630 GOTO 480 640 REM *** QUIZ SECTION *** 650 S=INT(RND(1)*51)+1 660 IF S=2 OR S=11 THEN 650 670 QS$=S$(S):QC$=PC$(S) 680 L=LEN(T$(S)):NG=0 690 PRINT HC$ RV$ QS$ RO$ 700 PRINT:PRINT "TOUCHES"LEN(T$(S))"STATES" 710 PRINT:PRINT "THEY ARE:" 720 QT$=LEFT$("========",L) 730 IF NG=L THEN 950:REM ALL STATES 740 PRINT:S$="" 750 INPUT "STATE:";S$:IFS$="END"THEN390 760 IF S$=""THEN 650:REM NEW STATE 770 IF S$=QS$ OR S$=QC$ THEN PRINTRV$ "SILLY!":GOTO 740 780 GOSUB 1060 :REM CHECK SPELLING 790 SG=X:SG$=CHR$(X) 800 FOR Y= 1 TO L 810 IF MID$(QT$,Y,1)<>SG$THEN NEXT Y 820 IF Y>L THEN 860 830 PRINT "YOU ALREADY GUESSED" 840 PRINT RV$ S$(ASC(SG$)) "!" 850 GOTO 730 860 FOR Y= 1 TO L 870 IF MID$(T$(S),Y,1)<>SG$ THEN NEXT Y 880 IF Y>L THEN 920 890 PRINT RV$ GR$ "CORRECT!" WH$ 900 QT$=LEFT$(QT$,NG)+SG$+LEFT$("========",L-NG-1) 910 NG=NG+1:GOTO 730 920 PRINT RV$ RD$ "INCORRECT!" WH$ 930 GOSUB 1210 940 GOTO 740 950 PRINT 960 PRINT RV$ GR$ "EXCELLENT!" 970 PRINT "YOU'VE GUESSED ALL" L 980 PRINT "STATES THAT TOUCH" 990 PRINT QS$ "!" WH$ 1000 PRINT:PRINT 1010 PRINT RV$ "ANOTHER?" RO$ " (Y/N)" 1020 POKE 198,0:WAIT 198,1:GETA$ 1030 IF A$<>"Y" THEN 390 1040 GOTO 650 1050 REM CHECK STATE NAME 1060 IF LEN(S$)<>2 THEN 1110 1070 FOR X= 1 TO 51 1080 IF S$<>PC$(X) THEN NEXT X 1090 IF X<=51 THEN RETURN 1100 GOTO 1140 1110 FOR X= 1 TO 51 1120 IF S$<>S$(X) THEN NEXT X 1130 IF X<=51 THEN RETURN 1140 PRINT 1150 PRINT RD$ RV$ "NO SUCH STATE!" RO$ 1160 PRINT WH$"(CHECK YOUR SPELLING!)" 1170 PRINT 1180 INPUT "NAME OF STATE";S$ 1190 GOTO 1060 1200 REM MISSES 1210 IF C=0 THEN 1330 :REM VIC 1220 FOR Q= 0 TO 24:POKE S6+Q,0:NEXT 1230 POKE S6+24,8 1240 POKE S6+5,192:POKE S6+6,250 1250 FOR Q= 120 TO 80 STEP-3 1260 POKE S6+1,Q:POKE S6+4,17 1270 FOR DE= 1 TO 4:NEXT DE,Q 1280 POKE S6+24,15:POKE S6+1,15 1290 POKE S6+4,128 1300 FOR VO= 15 TO 0 STEP-1 1310 FOR DE= 1 TO 10:NEXT DE 1320 POKE S6+24,VO:NEXT:RETURN 1330 POKE SV+2,10 1340 FOR VO= 250 TO 220 STEP-1 1350 POKE SV,VO 1360 FOR DE= 1 TO 4:NEXT DE,VO 1370 POKE SV,0:POKE SV+1,200 1380 FOR VO= 15 TO 0 STEP-.05 1390 POKE SV+2,VO:NEXT 1400 POKE SV+1,0:RETURN 1410 RETURN 1420 REM *** READ STATE DATA *** 1430 PRINT HC$ UC$ RV$ WH$ "STATES" 1440 PRINT:PRINT"READING DATA..." 1450 DIM S$(51),T$(51),PC$(51) 1460 FOR X= 1 TO 51 1470 READ PC$(X),S$(X) 1480 READ N : IF N=0 THEN 1530 1490 FOR Y= 1 TO N 1500 READ Z 1510 T$(X)=T$(X)+CHR$(Z) 1520 NEXT Y 1530 NEXT X 1540 RETURN 1550 REM *** STATE DATA *** 1560 DATA AL,ALABAMA,4,24,42,10,9 1570 DATA AK,ALASKA,0 1580 DATA AZ,ARIZONA,5,5,28,44,6,31 1590 DATA AR,ARKANSAS,6,43,36,25,42,24,18 1600 DATA CA,CALIFORNIA,3,37,28,3 1610 DATA CO,COLORADO,7,3,44,50,27,16,36,31 1620 DATA CT,CONNECTICUT,3,32,21,39 1630 DATA DE,DELAWARE,3,20,38,30 1640 DATA FL,FLORIDA,2,1,10 1650 DATA GA,GEORGIA,5,1,42,33,40,9 1660 DATA HI,HAWAII,0 1670 DATA ID,IDAHO,6,37,47,26,50,44,28 1680 DATA IL,ILLINOIS,5,25,15,49,14,17 1690 DATA IN,INDIANA,4,13,22,35,17 1700 DATA IA,IOWA,6,27,41,23,49,13,25 1710 DATAKS,KANSAS,4,6,27,25,36 1720 DATAKY,KENTUCKY,7,25,13,14,35,48,46,42 1730 DATALA,LOUISIANA,3,43,4,24 1740 DATAME,MAINE,1,29 1750 DATAMD,MARYLAND,5,48,38,8,46,51 1760 DATAMA,MASSACHUSETTS,5,32,45,29,7,39 1770 DATAMI,MICHIGAN,3,49,14,35 1780 DATAMN,MINNESOTA,4,41,34,49,15 1790 DATAMS,MISSISSIPPI,4,18,4,42,1 1800 DATAMO,MISSOURI,8,36,16,27,15,13,17,42,4 1810 DATAMT,MONTANA,4,12,34,41,50 1820 DATANE,NEBRASKA,6,6,50,41,15,25,16 1830 DATANV,NEVADA,5,5,37,12,44,3 1840 DATANH,NEW HAMPSHIRE,3,45,19,21 1850 DATANJ,NEW JERSEY,3,38,32,8 1860 DATANM,NEW MEXICO,5,3,44,6,36,43 1870 DATANY,NEW YORK,5,45,21,7,30,38 1880 DATANC,NORTH CAROLINA,4,42,46,40,10 1890 DATAND,NORTH DAKOTA,3,26,23,41 1900 DATAOH,OHIO,5,14,22,38,48,17 1910 DATAOK,OKLAHOMA,6,31,6,16,25,4,43 1920 DATAOR,OREGON,4,5,47,12,28 1930 DATAPA,PENNSYLVANIA,6,35,32,30,8,20,48 1940 DATARI,RHODE ISLAND,2,7,21 1950 DATASC,SOUTH CAROLINA,2,10,33 1960 DATASD,SOUTH DAKOTA,6,50,26,23,34,15,27 1970 DATATN,TENNESSEE,8,4,25,17,46,33,10,1,24 1980 DATATX,TEXAS,4,31,36,4,18 1990 DATAUT,UTAH,6,28,12,50,6,31,3 2000 DATAVT,VERMONT,3,29,21,32 2010 DATAVA,VIRGINIA,6,17,48,20,33,42,51 2020 DATAWA,WASHINGTON,2,37,12 2030 DATA WV,WEST VIRGINIA,5,35,17,38,20,46 2040 DATAWI,WISCONSIN,4,23,15,22,13 2050 DATAWY,WYOMING,6,12,26,41,27,6,44 2060 DATADC,DISTRICT OF COLUMBIA,2,20,46 63000 REM RETURN TO L.S. 63010 PRINT"[147]LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8":PRINT"RUN" 63020 POKE631,13:POKE632,13:POKE198,2:END