!
!
!  USA
!
!  General quiz on American geography.
!
!  Names and capitals of the lower 48 states.  Apologies
!  to Alaska and Hawaii; we couldn't get them to fit!
!
!  Data is kept in Packb format in the "usadata.byt" file.
!  However, it's also kept internally in DATA statements;
!  the file will be reconstructed if it doesn't exist.
!
DIM state$(50), sx(50), sy(50), cap$(50), capx(50), capy(50)

RANDOMIZE

OPEN #1: screen 0,1,.12,1         !plotting window
SET window 74,3728,475,2736       !range of data points
SET back "blue"

OPEN #3: screen 0,1,0,.08         !text window
SET color "yellow"

WINDOW #1
CALL ReadBorders(s$)              !fetch map coordinates
CALL DrawBorders(s$)              !draw borders

CALL ReadState(state$,sx,sy)      !get state 'flood' points
CALL Quiz(0)                      !do state quiz

WINDOW #3
PRINT
PRINT "Would you like to try capitals";
LINE INPUT t$
IF Ucase$(t$[1:1])="Y" then       !state capitals
   CALL ReadCapitals(cap$,capx,capy)   !read capital coordinates
   CALL Quiz(1)                   !give quiz
END IF
WINDOW #3
PRINT
PRINT "     Thank you very much!";
STOP

!
!  Quiz
!
!  Give quiz on either states or capitals.  We highlight
!  the state (and mark the capital), ask the question,
!  and then turn off highlighting.
!
!  We remember which states have been correctly identified,
!  and don't ask more questions about them.
!
!      caps = 0    state quiz
!             1    capitals quiz
!
SUB Quiz(caps)
    FOR n=1 to 15
        CALL QuizOne(caps)
    NEXT n
END SUB

!
!  QuizOne
!
!  Ask about one state or capital.  We're passed
!  caps=1 to ask about capitals, or 0 for states.
!
SUB QuizOne(caps)

    DO
       LET i = Int(rnd*48)+1     !pick a state...
       LET s$ = state$(i)
    LOOP until s$<>""            !...that we haven't done yet

    WINDOW #1                    !highlight the state
    CALL ColorState(s$,"yellow")

    if caps<>0 then              !if capital, show it
       SET color "red"
       BOX AREA capx(i)-10,capx(i)+10,capy(i)-10,capy(i)+10
       LET s$ = cap$(i)
    end if

    WINDOW #3                    !clear text window
    CLEAR

    if caps<>0 then              !get input
       LINE INPUT prompt "Capital of "&state$(i)&": ": guess$
    else
       LINE INPUT prompt "State name: ": guess$
    end if

    LET guess$ = Ucase$(Trim$(guess$))
    IF guess$=Ucase$(s$) then
       PRINT "That's right!";
       LET state$(i) = ""         !don't ask again
    ELSE
       IF guess$="" then PRINT "It's "; else PRINT "No, it's ";
       PRINT s$; ".";
       PAUSE 2
    END IF

    WINDOW #1                     !un-highlight state
    CALL ColorState(s$,"green")

END SUB

SUB ColorState(name$,color$)
    SET color color$
    FLOOD sx(i),sy(i)
    IF name$="Michigan" or name$ = "Lansing" then
       FLOOD 2605.45 , 2312.06    !upper peninsula
    ELSE if name$="New York" or name$="Albany" then
       FLOOD 3442,1952.36         !Long Island
    END IF
END SUB

END


!
!
!  ReadBorders
!
!  Read border coordinates from file "usadata.byt"
!  if it exists.  Otherwise use our internal data
!  (which is somewhat slower), and create the data file.
!
SUB ReadBorders(s$)
    WHEN error in
         OPEN #1: name "usadata.byt", organization byte
         ASK #1: filesize F
         READ #1, bytes f: s$
         CLOSE #1
         EXIT SUB
    USE
    END WHEN
    DO while more data
       READ n
       CALL Packb(s$,Maxnum,16,n)
    LOOP
    WHEN error in
         OPEN #1: name "usadata.byt", organization byte, create new
         WRITE #1: s$
    USE
    END WHEN
    DATA 414,391,2736,716,2649,774,2636,1006,2591,1359,2539,1468,2530
    DATA 1737,2511,1992,2506,1992,2538,2009,2536,2020,2492,2070,2472,2071
    DATA 2463,2091,2467,2117,2478,2142,2468,2149,2463,2157,2442,2161,2456
    DATA 2178,2456,2181,2446,2197,2442,2245,2448,2251,2435,2267,2436,2296
    DATA 2436,2300,2428,2311,2430,2329,2431,2284,2408,2234,2370,2210,2345
    DATA 2172,2311,2195,2312,2252,2336,2256,2330,2251,2306,2261,2310,2284
    DATA 2301,2317,2326,2355,2341,2400,2382,2422,2392,2439,2387,2413,2366
    DATA 2399,2349,2397,2327,2414,2344,2449,2337,2469,2309,2491,2313,2507
    DATA 2309,2538,2330,2572,2335,2597,2344,2610,2346,2608,2323,2632,2321
    DATA 2653,2322,2679,2287,2634,2282,2633,2272,2606,2282,2575,2274,2539
    DATA 2267,2529,2251,2518,2238,2498,2242,2483,2239,2466,2192,2462,2177
    DATA 2442,2153,2457,2146,2467,2165,2498,2205,2503,2204,2479,2146,2475
    DATA 2108,2467,2096,2468,2059,2460,2015,2471,1980,2465,1964,2469,1947
    DATA 2466,1935,2481,1916,2487,1895,2500,1882,2512,1881,2533,1893,2554
    DATA 1919,2569,1963,2567,2020,2541,2065,2546,2086,2539,2102,2552,2156
    DATA 2562,2166,2563,2179,2572,2183,2590,2206,2592,2181,2603,2185,2598
    DATA 2213,2625,2227,2615,2234,2610,2242,2632,2262,2670,2248,2713,2233
    DATA 2731,2209,2720,2205,2733,2185,2730,2144,2720,2121,2707,2113,2704
    DATA 2092,2721,2080,2764,2126,2778,2124,2798,2069,2806,2042,2804,1998
    DATA 2785,1992,2771,1967,2770,1946,2768,1917,2830,1897,2849,1909,2876
    DATA 1912,2913,1952,2977,1986,3029,2036,3031,2044,3045,2053,3037,2086
    DATA 3029,2071,3024,2094,3097,2116,3119,2110,3192,2151,3181,2177,3172
    DATA 2196,3195,2224,3223,2273,3240,2295,3449,2344,3451,2368,3483,2373
    DATA 3491,2416,3507,2440,3501,2446,3500,2462,3497,2464,3509,2489,3501
    DATA 2510,3529,2584,3542,2587,3546,2566,3557,2569,3584,2585,3622,2558
    DATA 3653,2482,3654,2462,3678,2460,3683,2454,3681,2448,3689,2437,3696
    DATA 2422,3703,2431,3728,2404,3703,2376,3672,2344,3662,2355,3640,2340
    DATA 3643,2329,3619,2324,3613,2290,3595,2277,3580,2261,3573,2271,3557
    DATA 2247,3553,2219,3543,2186,3542,2156,3554,2153,3541,2125,3548,2118
    DATA 3551,2122,3574,2104,3591,2085,3614,2093,3620,2110,3617,2081,3580
    DATA 2063,3579,2077,3560,2052,3531,2038,3477,2014,3445,2003,3421,1984
    DATA 3397,1959,3384,1931,3393,1916,3400,1859,3364,1771,3354,1775,3357
    DATA 1790,3318,1803,3329,1777,3352,1754,3361,1719,3346,1675,3339,1646
    DATA 3329,1633,3319,1637,3324,1676,3290,1698,3272,1710,3272,1740,3270
    DATA 1778,3269,1794,3258,1762,3258,1722,3281,1675,3266,1676,3291,1659
    DATA 3288,1630,3300,1614,3287,1604,3299,1590,3290,1582,3291,1575,3320
    DATA 1579,3371,1497,3358,1468,3333,1445,3314,1443,3338,1410,3324,1382
    DATA 3263,1350,3238,1298,3184,1274,3159,1219,3089,1146,3074,1145,3049
    DATA 1088,3029,991,3074,858,3144,736,3174,686,3187,672,3201,568,3190
    DATA 530,3179,511,3130,496,3126,510,3129,517,3122,524,3106,551,3070
    DATA 559,3056,610,3035,616,3035,637,3021,630,2981,680,2993,717,2978
    DATA 716,2979,696,2960,717,2964,767,2959,803,2945,826,2923,831,2888
    DATA 865,2836,900,2813,878,2748,848,2741,870,2610,892,2538,878,2530
    DATA 898,2526,883,2496,885,2473,892,2438,880,2420,867,2416,840,2448
    DATA 860,2451,835,2430,820,2422,814,2445,791,2452,787,2471,782,2471
    DATA 780,2429,762,2429,785,2394,803,2392,780,2373,767,2363,781,2330
    DATA 767,2280,799,2249,819,2227,810,2150,821,2061,802,2001,758,1932
    DATA 715,1870,673,1814,596,1808,562,1818,527,1830,491,1813,475,1794
    DATA 495,1739,498,1680,529,1655,591,1651,633,1632,638,1588,711,1561
    DATA 774,1513,828,1445,839,1442,832,1431,835,1406,808,1377,769,1322
    DATA 805,1276,839,1267,891,1244,933,1183,997,1155,1036,1020,1054,1015
    DATA 1014,800,1046,547,1201,556,1216,383,1242,382,1287,351,1346,334
    DATA 1367,323,1361,315,1369,313,1392,271,1416,253,1443,191,1465,178
    DATA 1479,193,1528,186,1526,180,1546,185,1545,175,1561,135,1645,141
    DATA 1680,147,1676,152,1701,124,1732,127,1748,124,1761,128,1784,136
    DATA 1784,137,1765,148,1763,145,1781,143,1799,154,1803,140,1816,132
    DATA 1788,111,1816,103,1811,111,1832,80,1907,85,1914,96,1978,74,2033
    DATA 75,2048,112,2089,129,2134,124,2157,132,2172,125,2187,126,2211
    DATA 136,2228,131,2253,174,2312,236,2465,252,2524,260,2516,264,2525
    DATA 250,2532,260,2561,264,2552,272,2566,258,2569,266,2583,279,2584
    DATA 266,2593,267,2641,260,2685,266,2704,267,2718,295,2697,332,2676
    DATA 360,2665,372,2661,385,2681,400,2704,394,2713,391,2736

    DATA 350                      !state outlines
    DATA 3447,2343,1,3447,2321,0,3454,2301,0,3434,2276,0,3429,2201,0,3439,2136
    DATA 0,3337,2317,1,3354,2255,0,3363,2194,0,3368,2198,0,3374,2195,0
    DATA 3392,2123,0,3400,1998,0,3405,1990,0,3395,1979,0,3401,1968,0,3392
    DATA 2125,1,3515,2153,0,3533,2175,0,3539,2173,0,3390,2062,1,3524,2095
    DATA 0,3535,2074,0,3544,2075,0,3558,2052,0,3497,2087,1,3513,2024,0
    DATA 3468,2375,1,3519,2217,0,3544,2192,0,2991,2000,1,2994,1977,0,3270
    DATA 2033,0,3300,2003,0,3389,1966,0,3386,1938,0,2947,1964,1,2977,1772
    DATA 0,3291,1830,0,3317,1841,0,3318,1803,0,3288,1827,1,3318,1721,0
    DATA 3362,1730,0,2968,1850,1,2952,1759,0,2926,1729,0,2916,1738,0,2902
    DATA 1690,0,2892,1683,0,2876,1675,0,2852,1641,0,2853,1612,0,2901,1566
    DATA 0,2929,1540,0,2948,1554,0,2957,1548,0,2983,1560,0,3009,1577,0
    DATA 3021,1605,0,3052,1684,0,3080,1674,0,3091,1714,0,3100,1709,0,3127
    DATA 1747,0,3127,1772,0,3163,1753,0,3169,1769,0,3110,1783,0,3050,1740
    DATA 0,3040,1790,0,3169,1769,1,3222,1733,0,3210,1701,0,3214,1687,0
    DATA 3229,1695,0,3279,1676,0,2856,1638,1,2830,1661,0,2801,1649,0,2741
    DATA 1657,0,2721,1684,0,2694,1679,0,2671,1909,0,2540,1898,1,2760,1921
    DATA 0,2491,1890,1,2515,1627,0,2486,1586,0,2485,1571,0,2483,1542,0
    DATA 2509,1551,0,2513,1561,0,2547,1548,0,2568,1567,0,2593,1589,0,2618
    DATA 1571,0,2645,1606,0,2659,1624,0,2661,1641,0,2702,1652,0,2696,1678
    DATA 0,2903,1566,1,2847,1500,0,2799,1468,0,2489,1442,0,2492,1428,0
    DATA 2396,1423,0,2469,1956,1,2281,1947,0,2246,2001,0,2253,2012,0,2243
    DATA 2035,0,2219,2080,0,2138,2136,0,2141,2205,0,2128,2219,0,2165,2257
    DATA 0,2164,2316,0,2279,2304,1,2423,2255,0,2461,2187,0,2282,1947,1
    DATA 2316,1915,0,2318,1888,0,2260,1850,0,2261,1833,0,2269,1810,0,2258
    DATA 1780,0,2242,1756,0,2247,1706,0,2293,1665,0,2302,1625,0,2335,1628
    DATA 0,2317,1578,0,2381,1526,0,2411,1466,0,2483,1541,1,2475,1530,0
    DATA 2486,1515,0,2457,1504,0,2459,1478,0,2423,1487,0,2412,1465,0,2411
    DATA 1470,1,2397,1422,0,2799,1469,1,3337,1554,0,2937,1486,1,2848,1403
    DATA 0,2787,1361,0,2769,1322,0,2854,1331,0,2920,1360,0,3003,1368,0
    DATA 3104,1352,0,3198,1285,0,2856,1331,1,2842,1304,0,2882,1290,0,2960
    DATA 1210,0,3006,1143,0,3053,1099,0,2346,1287,1,2771,1319,0,2396,1422
    DATA 1,2379,1375,0,2346,1285,0,2345,1285,1,2296,1197,0,2286,1104,0
    DATA 2311,1048,0,2263,931,0,2407,938,0,2398,906,0,2422,867,0,2493
    DATA 1297,1,2502,1286,0,2494,1017,0,2512,892,0,2678,1309,1,2726,1127
    DATA 0,2753,1084,0,2744,1034,0,2761,968,0,2583,899,1,2571,949,0,2760
    DATA 969,0,2779,946,0,2974,953,0,2991,940,0,2992,982,0,3025,980,0
    DATA 1866,2504,1,1875,2476,0,1889,2303,0,1901,2239,0,1886,2212,0,1913
    DATA 2187,0,1912,2025,0,1903,2027,0,1908,1976,0,1899,1956,0,1908,1934
    DATA 0,1931,1888,0,1930,1863,0,1946,1819,0,1955,1768,0,1983,1719,0
    DATA 2013,1704,0,1999,1679,0,2031,1644,0,2030,1407,0,2046,1314,0,2041
    DATA 1155,0,2073,1148,0,2078,1014,0,2115,943,0,2110,857,0,2092,821
    DATA 0,1913,2025,1,2243,2032,0,1955,1766,1,2221,1777,0,2245,1756,0
    DATA 2033,1407,1,2345,1420,0,2349,1399,0,2329,1373,0,2376,1377,0,2077
    DATA 1102,1,2287,1106,0,1468,2530,1,1406,1830,0,1536,1817,0,1512,1467
    DATA 0,1442,1470,0,1407,1029,0,1143,1058,0,1147,1038,0,1444,2264,1
    DATA 1903,2240,0,1422,2005,1,1776,1985,0,1810,1962,0,1854,1968,0,1895
    DATA 1943,0,1909,1937,0,1532,1731,1,1983,1716,0,1510,1466,1,2031,1453
    DATA 0,1441,1426,1,1649,1412,0,1644,1245,0,1693,1232,0,1756,1196,0
    DATA 1780,1201,0,1798,1174,0,1814,1185,0,1853,1166,0,1864,1184,0,1888
    DATA 1178,0,1905,1161,0,1962,1184,0,1992,1184,0,774,2634,1,753,2549
    DATA 0,803,2425,0,830,2410,0,800,2323,0,813,2309,0,840,2327,0,881
    DATA 2203,0,973,2200,0,980,2217,0,997,2192,0,1438,2182,1,1004,2232
    DATA 0,948,1886,0,1079,1867,0,955,1024,0,1076,1867,1,1025,1517,1,717
    DATA 2647,1,663,2394,0,684,2353,0,612,2257,0,581,2048,0,131,2170,1
    DATA 581,2048,0,771,2010,0,962,1974,0,255,2530,1,310,2491,0,309,2454
    DATA 0,358,2434,0,443,2425,0,543,2420,0,664,2393,0,771,2008,1,666
    DATA 1504,0,656,1491,0,619,1508,0,605,1409,0,613,1362,0,632,1339,0
    DATA 595,1317,0,588,1283,0,566,1242,0,574,1214,0,560,1214,0,392,2095
    DATA 1,330,1810,0,606,1413,0,682,1574,1,1028,1518,0,1078,1867,1,1408
    DATA 1831,0,1026,1518,1,1446,1468,0,3398,1925,1,3407,1953,0,3436,1972
    DATA 0,3469,1983,0,3478,1994,0,3497,1998,0,3501,1995,0,3514,2002,0
    DATA 3516,2001,0,3474,1964,0,3428,1941,0,3399,1926,0,1994,1184,1,2044
    DATA 1157,0,3326,1986,1,3314,1946,0,3319,1940,0,3313,1912,0,3321,1910
    DATA 0,3358,1883,0,3334,1857,0,3317,1843,0,3310,1826,0
    DATA 2161,2318,1,2178,2305,0, 2584,892,1,2584,880,0
    DATA 2104,822,1,2098,809,0

END SUB


!
!  DrawBorders
!
!  Draw the country and state borders.  We're passed
!  a string containing plotting instructions in condensed
!  form.
!
!  The first 16 bits tell how many data points 'n' are in
!  the country border.  Then come 'n' pairs of x/y
!  coordinates (16 bits each).
!
!  After this is the number 'n' of state border segments.
!  Then come 'n' triplets of x/y coordinates and an on/off
!  flag.  If flag=1 we turn the beam OFF before plotting
!  the corresponding point (ie, it's a 'move' rather than
!  a 'plot').
!
SUB DrawBorders(s$)
    LET n = Unpackb(s$,1,16)
    SET color "red"
    FOR i = 17 to 32*n+16 step 32
        LET j = j+1
        LET x = Unpackb(s$,i,16)
        LET y = Unpackb(s$,i+16,16)
        PLOT x,y;
    NEXT i
    SET color "green"
    FLOOD 2000,1500

    SET color "red"
    LET n = Unpackb(s$,i,16)
    FOR i = i+16 to i+3*16*n step 3*16
        LET x = Unpackb(s$,i,16)
        LET y = Unpackb(s$,i+16,16)
        LET p = Unpackb(s$,i+32,16)
        IF p=1 then PLOT
        PLOT x,y;
    NEXT i
    PLOT
    SET color "green"
    FLOOD 3442,1952.36            !Long Island

END SUB


!
!  ReadState
!
!  Read the names and "flood points" of 48 states.
!  We'll use these x/y flood points when we flood
!  the state.  (We can't use the capital's coordinate,
!  as flooding wouldn't work on the capital quiz.)
!
SUB ReadState(state$(),sx(),sy())

    FOR i = 1 to 48
        READ state$(i), sx(i), sy(i)
    NEXT i

    DATA Maine, 3556.18 , 2382.72
    DATA New Hampshire, 3476 , 2299.01
    DATA Vermont, 3395.82 , 2199.01
    DATA New York, 3315.64 , 2071.83
    DATA Massachusetts, 3441.64 , 2114.22
    DATA Rhode Island, 3521.82 , 2055
    DATA Connecticut, 3430.18 , 2029.44
    DATA Pennsylvania, 3246.91 , 1888.12
    DATA New Jersey, 3372.91 , 1859.86
    DATA Delaware, 3327.09 , 1746.81
    DATA Maryland, 3292.73 , 1732.68
    DATA Virginia, 3143.82 , 1605.5
    DATA West Virginia, 2960.55 , 1676.16
    DATA North Carolina, 3132.36 , 1421.79
    DATA South Carolina, 3040.73 , 1153.3
    DATA Georgia, 2914.73 , 1153.3
    DATA Florida, 3029.27 , 701.1
    DATA Alabama, 2605.45 , 1153.3
    DATA Mississippi, 2387.82 , 1153.3
    DATA Louisiana, 2216 , 927.2
    DATA Ohio, 2777.27 , 1831.6
    DATA Indiana, 2605.45 , 1831.6
    DATA Illinois, 2387.82 , 1831.6
    DATA Kentucky, 2605.45 , 1520.71
    DATA Tennessee, 2605.45 , 1379.4
    DATA Michigan, 2605.45 , 1958.78
    DATA Wisconsin, 2342 , 2057.7
    DATA Minnesota, 1929.64 , 2439.24
    DATA Iowa, 2090 , 1831.6
    DATA Missouri, 2250.36 , 1548.97
    DATA Arkansas, 2250.36 , 1252.22
    DATA North Dakota, 1826.55 , 2326.19
    DATA South Dakota, 1540.18 , 2057.7
    DATA Nebraska, 1895.27 , 1831.6
    DATA Kansas, 1895.27 , 1605.5
    DATA Oklahoma, 1895.27 , 1379.4
    DATA Texas, 1895.27 , 927.2
    DATA Montana, 1185.09 , 2283.8
    DATA Wyoming, 1185.09 , 2057.7
    DATA Colorado, 1185.09 , 1789.21
    DATA New Mexico, 1185.09 , 1379.4
    DATA Arizona, 830 , 1379.4
    DATA Utah, 830 , 1831.6
    DATA Idaho, 830 , 2057.7
    DATA Nevada, 474.909 , 1831.6
    DATA California, 234.364 , 1831.6
    DATA Oregon, 234.364 , 2283.8
    DATA Washington, 474.909 , 2509.9
END SUB


!
!  ReadCapitals
!
!  Read the names and x/y coordinates of the state
!  capitals.  These must be in the same order as the
!  states in ReadStates.
!
SUB ReadCapitals(cap$(),capx(),capy())

    FOR i=1 to 48
        READ cap$(i), capx(i), capy(i)
    NEXT i

    DATA Augusta, 3567.64 , 2319.5
    DATA Concord, 3487.45 , 2200.5
    DATA Montpelier, 3395.82 , 2260
    DATA Albany, 3361.45 , 2117.2
    DATA Boston, 3544.73 , 2129.1
    DATA Providence, 3521.82 , 2069.6
    DATA Hartford, 3453.09 , 2045.8
    DATA Harrisburg, 3201.09 , 1867.3
    DATA Trenton, 3350 , 1879.2
    DATA Dover, 3327.09 , 1772.1
    DATA Annapolis, 3258.36 , 1760.2
    DATA Richmond, 3201.09 , 1617.4
    DATA Charleston, 2926.18 , 1641.2
    DATA Raleigh, 3155.27 , 1450.8
    DATA Columbia, 3017.82 , 1260.4
    DATA Atlanta, 2777.27 , 1189
    DATA Tallahassee, 2811.64 , 927.2
    DATA Montgomery, 2651.27 , 1070
    DATA Jackson, 2353.45 , 1046.2
    DATA Baton Rouge, 2307.64 , 891.5
    DATA Columbus, 2788.73 , 1772.1
    DATA Indianapolis, 2594. , 1736.4
    DATA Springfield, 2353.45 , 1724.5
    DATA Frankfort, 2697.09 , 1581.7
    DATA Nashville, 2594. , 1403.2
    DATA Lansing, 2616.91 , 2022.
    DATA Madison, 2364.91 , 2033.9
    DATA St. Paul, 2112.91 , 2164.8
    DATA Des Moines, 2112.91 , 1855.4
    DATA Jefferson City, 2204.55 , 1605.5
    DATA Little Rock, 2193.09 , 1248.5
    DATA Bismarck, 1643.27 , 2343.3
    DATA Pierre, 1677.64 , 2105.3
    DATA Lincoln, 1872.36 , 1795.9
    DATA Topeka, 1941.09 , 1641.2
    DATA Oklahoma City, 1849.45 , 1319.9
    DATA Austin, 1792.18 , 843.9
    DATA Helena, 967.455 , 2390.9
    DATA Cheyenne, 1345.45 , 1867.3
    DATA Denver, 1345.45 , 1712.6
    DATA Santa Fe, 1230.91 , 1355.6
    DATA Phoenix, 772.727 , 1260.4
    DATA Salt Lake City, 887.273 , 1855.4
    DATA Boise, 658.182 , 2164.8
    DATA Carson City, 360.364 , 1819.7
    DATA Sacramento, 257.273 , 1760.2
    DATA Salem, 280.182 , 2379.
    DATA Olympia, 337.455 , 2581.3
END SUB
