Alan, Attached is a QBasic file which provides assistance for the solitaire wargame Carrier by Victory Games. A number of people on Consimworld asked me to post it on Grognards. It isn't the flashes piece of code I've ever written, but for an amateur it gets the job done. Thanks Peter ===== Dr Peter Phelps 27 Waratah Street Queanbeyan NSW 2620 AUSTRALIA Hm: 6299 4046 Mb: 0419 261 416 peter_phelps@yahoo.com Find local movie times and trailers on Yahoo! Movies. http://au.movies.yahoo.com -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks transtec Computers for their support. REM ====================================== REM Carrier (VG) Basic Assist Program v1.1 REM by Peter Phelps -- 17 July 2004 REM ====================================== CLEAR CLS RANDOMIZE TIMER DIM js$(5, 11, 10) DIM l1$(6, 10) DIM c2$(3, 4, 10) DIM c3$(8, 11) DIM s3$(7, 10) DIM t3$(4, 10) DIM stcr(4, 10) DIM jcsr(17, 13) DIM jcap(4, 11) DIM aaf(11, 12) DIM am(11) DIM srn(18) DIM fing(11) DIM uskl(11, 11) DIM hcf(10, 10) DIM pb$(6, 10) DIM aas(19, 14, 2) DIM src(22, 24) DIM as2(28, 13, 2) DIM d$(12) DIM tme$(18) DATA 2845*, 2942, 2943*, 2944*, 3043, 3044, 3045*, 2944, 3045, 2740 DATA 2639, 2835, 2736, 2641, 2541, 2640, 2940, 2940, 3042, 2842* DATA 2845*, 2942, 2943, 2944, 3043, 3044, 3045, 3042, 2842*, 2741 DATA 2845*, 2942, 2943, 2644, 3043*, 3044*, 3045*, 2944, 3045, 2740 DATA 2639, 2835, 2736, 2641, 2541, 2640, 2940, 2940, 3042, 2842* DATA 2845*, 2942, 2943, 2944, 3043, 3044, 3045, 3042, 2842*, 2741 DATA 2639, 2835, 2943, 2944, 3043, 3044*, 3045*, 2944, 3045, 2740 DATA 2845*, 2942, 2736, 2641, 2541, 2640, 2940, 2940, 3042, 2842* DATA 2639, 2835, 2943, 2944, 3043, 3044, 3045, 3042, 2842*, 2741 DATA 2846, 2943, 2736, 2641, 2541, 2640, 2944, 3045, 2943, 2740 DATA 2846, 2943, 2940, 2944, 2942, 2842, 2741, 3042, 3045, 3043 DATA 1738, 1740, 1840, 2040, 2137, 2141, 2334, 2434, 2440*, 2533 DATA 1739, 1838, 2038, 2135*, 2139, 2143, 2337, 2437, 2441*, 2535 DATA 2631, 2632, 2639*, 2640*, 2641*, 2732, 2736, 2835, 2541*, 2243 DATA 1738,1740,1840,2040, 2137,2141,2334,2434,2440,2533 DATA 1739,1838,2038,2135,2139,2143,2337,2437*, 2441, 2535 DATA 2631, 2632, 2639, 2640, 2641*, 2732, 2736, 2835*, 2541*, 2243 DATA 1738, 1740, 1840, 2040, 2137, 2141, 2334, 2434, 2440, 2533 DATA 1739, 1838, 2038, 2135, 2139, 2143, 2337, 2437, 2441, 2535 DATA 2631, 2632, 2639, 2640, 2641, 2732, 2736, 2835, 2541, 2243 DATA 2935*, 2935, 2337, 2437, 2440, 2441, 2541, 2639, 2640, 2641 DATA 2641, 2541, 2540, 2639, 2138, 2441, 1940, 2437, 2137, 2141 DATA 2309, 2312, 2316, 2319, 2314, 2110, 2315, 2120, 2122, 2311 DATA 2321, 2116, 1820, 2113, 2011, 2314, 2017, 2314, 2022, 2121 DATA 2216, 2025, 2113, 2015, 2109, 1823, 2121, 2026, 2311, 1819 DATA 2519*, 2516*, 2510*, 2511*,2519*, 2520*,2510*, 2519*, 2516*, 2522* DATA 2309, 2116, 1914, 2111, 1820, 2112, 2018, 2113, 1824, 2114 DATA 2123, 2113, 2015, 2310, 2115, 2117, 2026, 2110, 1820, 2318 DATA 2213, 2028, 2310, 1811, 2015, 2223, 2110, 2020, 2318, 2023 DATA 2309, 2321, 1818, 1812, 2010, 1822, 2509*, 2510*, 2522*, 2516* DATA 1810, 2312, 2224, 2314, 2223, 2311, 1813, 1919, 1821, 2013 DATA 2319, 2318, 2217, 2116, 2311, 2311, 2419, 2319, 2109, 2211 DATA 2121, 2220, 2119, 2318, 2317, 2315, 2212, 2210, 2109, 2111 DATA 1726, 2232*, 1720, 1720, 1723, 1731, 1522, 1531, 1524, 1520 DATA 2117, 1520, 1516, 1528, 2115, 1520, 1619, 1723, 1718, 1731 DATA 2034*, 2132*, 2231*, 1719, 1735*, 1934*, 2131*, 1721, 2137, 2033* DATA 1919, 1923, 1932, 1835*, 1923, 2132*, 1919, 1828, 2026, 2132* DATA 2121, 2517, 1522, 2318, 2112, 2117, 1623, 2117, 2318, 1722 DATA 2313, 1524, 2315, 1731, 2313, 1730, 2117, 1528, 2117, 1720 DATA 2137, 2136, 2437, 2135*, 1718, 1725, 2137, 2134*, 2535, 2436 DATA 1831, 2132*, 1931, 2132*, 1828, 1923, 2029, 2121, 1931, 1923 DATA 2517, 2121, 2318, 2318, 2117, 2112, 2117, 2313, 2115, 2318 DATA 1731, 2034*, 1524, 1524, 1723, 1721, 1720, 1722, 1725, 1727 DATA 2334, 2532, 2132, 1931, 2029, 1828, 1830, 1923, 2026, 2121 DATA 1224, 1224, 1224, 1224, 1324, 1324, 1324, 1424, 1524, 1440* DATA 1226, 1226, 1226, 1226, 1326, 1326, 1326, 1426, 1526, 1440* DATA 1228, 1228, 1228, 1228, 1328, 1328, 1328, 1428, 1628, 1440* DATA 1231, 1231, 1231, 1231, 1331, 1331, 1331, 1431, 1531, 1440* DATA 1232, 1232, 1232, 1232, 1332, 1332, 1332, 1432, 1532, 1440* DATA 1233, 1233, 1233, 1233, 1333, 1333, 1333, 1433, 1533, 1440* DATA 1234, 1234, 1234, 1234, 1334, 1334, 1334, 1434, 1534, 1440* DATA 1235, 1235, 1235, 1235, 1335, 1335, 1335, 1435, 1535, 1440* DATA 1236, 1236, 1236, 1236, 1336, 1336, 1336, 1436, 1536, 1440* DATA 1237, 1237, 1237, 1237, 1337, 1337, 1337, 1437, 1537, 1440* DATA 0,0,0,0,0,0,0,0,0,0 DATA 1-2CV, 1-2CV, 1-2CV, 1-2CV, 2-3CV, 2-3CV, 2-3CV, 3+CV, 3+CV, SPECIAL DATA SmSurf, SmSurf, MedSurf, MedSurf, MedSurf, MedSurf, MedSurf, LgSurf, LgSurf, L1Carrier DATA SmTrans, SmTrans, MedTrans, Medtrans, LgTrans, Lgtrans, LgTrans, LgTrans, LgTrans, SPECIAL DATA MedSurf, LgSurf, LgSurf, LgSurf, LgSurf, LgTrans, 2-3CV, 3+CV, 3+CV, SPECIAL DATA MedSurf, MedSurf, MedSurf, MedSurf, MedSurf, MedTrans, 2-3CV, 2-3CV, 2-3CV, SPECIAL DATA SmSurf, SmSurf, SmSurf, SmSurf, SmTrans, 1-2CV, 1-2CV, 1-2CV, 1-2CV, SPECIAL DATA 0/1, 0/1, 0/1, 0/1, 0/1, 0/1, 0/1, 0/1, 0/2, 0/2 DATA 0/1, 0/1, 0/1, 0/2, 0/2, 0/2, 0/2, 0/2, 0/2, 1/0 DATA 0/2, 0/2, 0/2, 0/2, 0/2, 0/2, 0/2, 1/1, 1/1, 2/0 DATA 1/1, 1/1, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0 DATA 0/2, 0/2, 0/2, 0/2, 0/2, 0/2, 0/2, 0/3, 0/3, 0/3 DATA 0/2, 0/2, 0/3, 0/3, 0/3, 0/3, 1/1, 1/1, 1/1, 1/1 DATA 1/1, 1/1, 1/1, 1/1, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0 DATA 2/0, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0, 2/0, 2/1, 2/1 DATA 0/3, 0/3, 0/3, 0/3, 0/3, 0/3, 0/3, 0/3, 0/3, 0/3 DATA 0/3, 0/3, 0/3, 0/3, 0/3, 2/1, 2/1, 2/1, 2/1, 2/1 DATA 0/3, 2/1, 2/1, 2/1, 2/1, 2/1, 2/1, 2/1, 2/2, 2/2 DATA 2/1, 2/2, 2/2, 2/2, 2/2, 2/2, 2/2, 2/2, 2/2, 2/2 DATA 1-2CV, MedCA, MedBB, LgCA, LgCA, LgBB, LgBB, LgBB, LgBB, LgBB DATA 1-2CV, MedDD, MedDD, MedDD, MedCA, MedCA, MedCA, MedBB, LgCA, LgBB DATA 1-2CV, SmDD, SmDD, SmCA, SmCA, SmCA, SmCA, MedDD, MedDD, MedCA DATA C,C,B,B,B,B,B,A,A,A DATA D,C,C,C,C,B,B,B,B,A DATA D,D,D,D,D,C,C,C,B,B DATA CVE, CVE, CVE, CVE, CVE, CVL, CVL, CVL, 2CVE, 2CVL, 2CV DATA 2CVE, 2CVE, 2CVE, CVE+CVL, CVE+CVL, CVE+CVL, CVE+CVL, 2CVL, 2CV, 2CV+CVE, 3CV DATA 3CVE, 3CVE, 2CVE+CVL, 2CVE+CVL, 2CVE+CVL, 2CVE+CVL, 3CVE, 2CVL+CVE, 2CV+CVE, 2CV+CVL, 3CV DATA CVE, CVE, CVL, CVL, CVL, CV, CV, CV, 2CVE, 2CVL, 2CV DATA 2CVE, 2CVL, 2CV, 2CV, 2CV, 2CV, 2CV, 2CV, 2CV+CVE, 2CV+CVL, 3CV DATA CVE+CVL, 2CVE, 2CVL, CV+CVE, CV+CVE, CV+CVE, 2CV+CVL, 2CV+CVL, 2CV+CVL, 2CV, 3CV DATA CVE+2CVL, 2CV, 2CV+CVE, 2CV+CVE, 2CV+CVE, 2CV+CVE, 2CV+CVL, 2CV+CVL, 2CV+2CVE, 2CV+2CVL, 4CV DATA 2CV, 2CV+CVE, 2CV+2CVE, 2CV+2CVE, 2CV+2CVE, 2CV+2CVL, 2CV+2CVL, 2CV+2CVL, 2CV+2CVL, 2CV+2CVL, 4CV DATA 0/2/0/6, 0/4/0/4, 2/3/0/6, 2/3/0/6, 2/4/0/4, 2/4/0/4, 2/4/1/6, 3/1/0/2, 3/2/0/3, 4/2/0/3 DATA 0/1/0/4, 0/1/1/6, 0/2/0/6, 1/0/0/3, 1/1/0/6, 1/2/0/4, 1/2/1/6, 2/1/0/3, 2/1/0/4, 2/2/0/5 DATA 0/3/0/2, 0/4/0/3, 0/5/0/1, 0/5/0/2, 0/5/0/5, 0/5/1/1, 0/6/0/3, 0/6/0/4, 0/6/1/2, 0/6/1/5 DATA 0/0/1/5, 0/2/0/4, 0/3/0/2, 0/3/0/3, 0/3/0/3, 0/3/0/4, 0/4/0/2, 0/4/0/3, 0/4/0/4, 0/5/1/1 DATA 0/0/0/4, 0/0/0/5, 0/0/0/6, 0/0/0/6, 0/0/1/5, 0/0/1/6, 0/1/0/6, 0/1/0/6, 0/1/1/5, 0/1/1/5 DATA 0/0/0/4, 0/0/0/4, 0/0/0/5, 0/0/0/5, 0/0/0/5, 0/0/0/6, 0/0/0/6, 0/0/1/7, 0/0/1/8, 0/0/1/10 DATA 0/0/0/2, 0/0/0/2, 0/0/0/2, 0/0/0/3, 0/0/0/3, 0/0/0/3, 0/0/0/3, 0/0/0/4, 0/0/0/5, 0/0/1/4 DATA 09/09/0, 09/10/0, 10/10/0, 10/10/1, 10/11/1, 10/11/1, 11/11/1, 12/11/1, 13/11/1, 14/11/1 DATA 06/06/0, 06/07/0, 06/07/0, 07/07/0, 07/07/0, 07/08/0, 07/08/0, 08/08/0, 08/08/0, 08/09/0 DATA 03/04/0, 03/04/0, 04/04/0, 04/04/0, 04/05/0, 04/05/0, 05/05/0, 05/05/0, 05/06/0, 05/06/0 DATA 01/01/0, 02/01/0, 02/02/0, 02/02/0, 03/02/0, 03/02/0, 03/02/0, 03/03/0, 03/03/0, 03/03/0 DATA 1,2,3,3,3,3,3,3,3,3 DATA 1,1,1,2,2,3,3,3,3,3 DATA 1,1,1,1,1,2,2,3,3,3 DATA 1,1,1,1,1,1,1,1,3,3 DATA 0,0,0,0,0,0,1,1,1,1,1,1,1 DATA 0,0,0,0,0,1,1,1,1,1,1,1,1 DATA 0,0,0,1,1,1,1,1,1,1,1,1,2 DATA 0,0,0,1,1,1,1,1,1,1,1,2,2 DATA 0,0,1,1,1,1,1,1,1,1,2,2,2 DATA 0,0,1,1,1,1,1,1,1,2,2,2,2 DATA 0,0,1,1,1,1,1,2,2,2,2,2,2 DATA 0,1,1,1,1,1,1,2,2,2,2,2,3 DATA 0,1,1,1,1,1,2,2,2,2,2,3,3 DATA 0,1,1,1,1,2,2,2,2,2,3,3,3 DATA 0,1,1,1,2,2,2,2,2,3,3,3,3 DATA 0,1,1,2,2,2,2,2,3,3,3,3,4 DATA 0,1,1,2,2,2,2,2,3,3,3,4,4 DATA 1,1,2,2,2,2,2,3,3,3,4,4,4 DATA 1,2,2,2,2,2,3,3,3,4,4,4,4 DATA 1,2,2,2,2,3,3,3,4,4,4,4,4 DATA 1,2,2,3,3,3,3,4,4,4,4,4,4 DATA 0,0,0,0,0,0,0,0,1,1,2 DATA 0,0,0,0,0,0,0,1,1,1,2 DATA 0,0,0,0,0,0,1,1,1,2,3 DATA 0,0,0,0,0,1,1,1,2,2,4 DATA 0,0,0,0,0,0,0,0,0,2,2,2 DATA 0,0,0,0,0,0,0,0,2,2,2,2 DATA 0,0,0,0,0,0,0,2,2,2,2,2 DATA 0,0,0,0,0,0,2,2,2,2,2,4 DATA 0,0,0,0,2,2,2,2,2,2,4,4 DATA 0,0,0,2,2,2,2,2,2,4,4,4 DATA 0,0,2,2,2,2,2,2,4,4,4,6 DATA 0,0,2,2,2,2,2,4,4,4,6,6 DATA 0,2,2,2,2,2,4,4,4,6,6,8 DATA 2,4,4,4,4,4,4,4,6,6,8,8 DATA 2,4,4,4,4,4,4,6,6,8,10,10 DATA 2,1,1,1,0,0,0,0,-1,-1,-2 DATA 1,4,7,11,14,18,21,25,30,35,39,44,49,55,61,67,73,87 DATA 1,2,4,6,8,10,12,14,16,18,20 DATA 8,0,0,0,0,0,0,0,0,1,1 DATA 8,0,0,0,0,0,0,0,1,1,1 DATA 8,0,0,0,0,0,0,1,1,1,2 DATA 8,0,0,0,0,0,1,1,1,1,2 DATA 8,0,0,0,0,1,1,1,1,2,2 DATA 8,0,0,0,1,1,1,1,2,2,3 DATA 8,0,0,1,1,1,1,2,2,2,3 DATA 8,0,1,1,1,2,2,2,2,3,3 DATA 8,1,1,1,2,2,2,2,3,3,3 DATA 8,1,1,2,2,2,2,3,3,4,4 DATA 8,1,2,2,2,2,3,3,4,4,4 DATA 2,2,1,1,1,1,1,1,0,0 DATA 3,3,2,2,2,2,2,1,1,0 DATA 5,4,3,3,3,3,3,2,1,1 DATA 7,6,5,4,4,4,4,3,2,1 DATA 8,6,5,5,5,5,4,3,2,1 DATA 10,9,7,6,6,6,6,4,2,2 DATA 12,10,9,7,7,7,6,5,3,2 DATA 13,12,10,8,8,8,7,5,4,3 DATA 15,13,11,9,9,9,8,6,4,3 DATA 17,14,12,10,10,10,9,7,4,3 DATA 1/1,1/1,1/1,0/1,0/1,0/1,0/1,0/0,0/0,0/0 DATA 2/2,2/2,1/1,1/1,1/1,1/1,1/1,0/1,0/0,0/0 DATA 2/2,2/2,2/2,1/2,1/2,1/2,1/2,1/1,0/1,0/1 DATA 2/3,2/3,2/2,2/2,2/2,2/2,2/2,1/2,0/1,0/1 DATA 3/4,3/4,3/3,2/3,2/3,2/3,2/3,1/2,1/1,1/1 DATA 4/4,4/4,3/4,2/3,2/3,2/3,2/3,2/2,1/2,1/2 DATA 0,0,2,0,2,0,3,0,3,0,5,0,7,0,5,4,6,5,6,6,7,6,7,7,8,7,9,9 DATA 0,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,5,0,6,0,4,3,4,4,5,4,6,5 DATA 0,0,2,0,4,0,5,0,5,5,6,6,6,6,6,6,6,6,6,6,7,6,7,7,8,7,8,8 DATA 0,0,3,0,5,0,7,0,6,6,7,7,7,7,7,7,7,7,8,7,8,8,9,9,10,10,11,11 DATA 0,0,0,0,0,0,0,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0 DATA 0,0,0,0,0,0,0,0,2,0,3,0,3,0,3,0,4,0,4,0,5,0,5,0,3,3,4,3 DATA 0,0,0,0,0,0,2,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,3,3,6,0,4,3 DATA 0,0,0,0,0,0,2,0,4,0,4,0,5,0,5,0,3,3,6,0,6,0,6,0,6,0,4,3 DATA 0,0,0,0,0,0,2,0,4,0,5,0,3,3,6,0,6,0,4,3,4,3,4,4,4,4,5,4 DATA 0,0,0,0,2,0,3,0,6,0,6,0,4,3,7,0,4,4,4,4,4,4,8,0,5,4,5,4 DATA 0,0,0,0,2,0,3,0,6,0,4,3,7,0,8,0,4,4,4,4,5,4,5,4,5,4,5,5 DATA 0,0,2,0,3,0,4,0,8,0,4,4,5,4,5,5,5,5,5,5,5,5,6,5,6,5,7,6 DATA 0,0,2,0,4,0,5,0,5,4,6,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,7,7 DATA 0,0,2,0,4,0,5,0,5,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,7,7,8,8 DATA 0,0,2,0,4,0,5,0,6,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,8,7,9,9 DATA 0,0,3,0,5,0,6,0,7,6,7,6,7,6,7,6,7,6,8,7,8,7,9,8,9,8,9,9 DATA 0,0,3,0,5,0,6,0,7,6,7,6,7,6,7,7,7,7,8,7,9,8,9,9,10,9,10,10 DATA 0,0,3,0,5,0,4,3,7,6,7,7,7,7,8,7,8,7,8,8,9,9,10,9,10,10,11,10 DATA 0,0,3,0,5,0,4,3,7,7,7,7,8,7,8,7,8,8,8,8,9,9,10,10,10,10,11,11 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 0,1,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 DATA 0,1,2,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 DATA 0,0,1,2,3,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 0,0,1,2,3,4,5,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 0,0,1,2,2,3,5,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DATA 0,0,0,1,3,4,5,5,6,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 0,0,0,1,2,3,4,5,6,7,8,9,10,10,10,10,10,10,10,10,10,10,10,10 DATA 0,0,0,1,2,2,3,4,6,7,8,9,10,11,11,11,11,11,11,11,11,11,11,11 DATA 0,0,0,0,1,2,4,5,5,6,7,8,10,11,12,12,12,12,12,12,12,12,12,12 DATA 0,0,0,0,1,3,3,4,5,7,7,8,9,10,11,12,13,13,13,13,13,13,13,13 DATA 0,0,0,0,1,1,3,4,5,6,7,8,8,10,11,11,12,13,14,14,14,14,14,14 DATA 0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,15,15,15,15 DATA 0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16,16,16,16 DATA 0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17 DATA 0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18 DATA 0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,19,19 DATA 0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,20,20 DATA 0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21 DATA 0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 REM DATA 0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 DATA 0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0 DATA 0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0 DATA 0,0,0,0,0,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0 DATA 0,0,0,0,0,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0 DATA 0,0,0,0,2,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0 DATA 0,0,0,0,2,0,5,0,5,0,5,0,3,3,3,3,6,0,6,0,6,0,6,0,6,0 DATA 0,0,0,0,2,0,5,0,6,0,6,0,4,3,4,3,7,0,7,0,7,0,7,0,7,0 DATA 0,0,0,0,3,0,6,0,4,3,4,3,7,0,7,0,7,0,7,0,7,0,7,0,4,4 DATA 0,0,0,0,3,0,4,3,7,0,7,0,4,4,4,4,4,4,4,4,8,0,8,0,5,4 DATA 0,0,0,0,3,0,7,0,4,4,4,4,5,4,5,4,5,4,5,4,5,4,5,4,5,5 DATA 0,0,2,0,4,0,8,0,5,4,5,4,5,4,5,5,5,5,5,5,5,5,5,5,6,5 DATA 0,0,2,0,4,0,5,4,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,6 DATA 0,0,2,0,4,0,5,4,5,4,5,4,5,4,5,5,6,5,6,5,6,6,6,6,7,6 DATA 0,0,2,0,5,0,5,5,5,5,5,5,5,5,5,5,6,5,6,5,6,6,6,6,7,6 DATA 0,0,2,0,5,0,6,5,6,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,7,7 DATA 0,0,2,0,5,0,6,5,6,5,6,5,6,5,6,5,7,6,7,6,7,7,7,7,8,7 DATA 0,0,3,0,6,0,6,6,6,6,6,6,6,6,6,6,7,6,7,6,8,7,8,7,8,8 DATA 0,0,3,0,4,3,7,6,7,6,7,6,7,6,7,6,7,7,7,7,8,8,8,8,9,8 DATA 0,0,3,0,4,3,7,6,7,6,7,6,7,6,7,6,8,7,8,7,9,8,9,8,9,9 DATA 0,0,3,0,4,3,7,7,7,7,7,7,7,7,7,7,8,8,8,8,9,8,9,8,10,9 DATA 0,0,4,0,4,4,8,7,8,7,8,7,8,7,8,7,8,8,8,8,9,9,9,9,10,10 DATA 0,0,4,0,4,4,8,7,8,7,8,7,8,7,8,7,9,8,9,8,10,9,10,9,11,10 DATA 0,0,4,0,4,4,8,8,8,8,8,8,8,8,8,8,9,9,9,9,10,10,10,10,11,11 DATA 0,0,4,0,4,4,8,8,8,8,8,8,8,8,8,8,10,9,10,9,11,10,11,10,11,11 DATA 0,0,4,0,5,4,9,8,9,8,9,8,9,8,9,8,10,9,10,9,11,11,11,11,12,11 DATA 0,0,4,0,5,4,9,9,9,9,9,9,9,9,9,9,10,10,10,10,11,11,11,11,12,12 DATA 0,0,5,0,5,5,10,9,10,19,10,9,10,9,10,9,11,10,11,10,12,11,12,11,13,12 DATA January, February, March, April, May, June, July, August, September, October, November, December DATA 0520,0640,0800,0920,1040,1200,1320,1440,1600,1720,1840,2000,2120,2240,0000,0120,0240,0300 DATA 0,0,0,0,-1,-1,-1,-1,-2,-2 DATA +1,+1,0,0,0,-1,-1,-1,-1,-2 DATA Irreparable Hull Damage,+1,0,0,0,0,0,-1,-1,-1 DATA Irreparable Hull Damage,+1,0,0,0,0,0,0,-1,-1 FOR zd = 1 TO 5 FOR xd = 1 TO 11 FOR yd = 1 TO 10 READ js$(zd, xd, yd) NEXT yd NEXT xd NEXT zd FOR ad = 1 TO 6 FOR bd = 1 TO 10 READ l1$(ad, bd) NEXT bd NEXT ad FOR cd = 1 TO 3 FOR DD = 1 TO 4 FOR ed = 1 TO 10 READ c2$(cd, DD, ed) NEXT ed NEXT DD NEXT cd FOR fd = 1 TO 6 FOR gd = 1 TO 10 READ s2$(fd, gd) NEXT gd NEXT fd FOR hd = 1 TO 8 FOR id = 1 TO 11 READ c3$(hd, id) NEXT id NEXT hd FOR jd = 1 TO 7 FOR kd = 1 TO 10 READ s3$(jd, kd) NEXT kd NEXT jd FOR ld = 1 TO 4 FOR md = 1 TO 10 READ t3$(ld, md) NEXT md NEXT ld FOR nd = 1 TO 4 FOR od = 1 TO 10 READ stcr(nd, od) NEXT od NEXT nd FOR pd = 1 TO 17 FOR qd = 1 TO 13 READ jcsr(pd, qd) NEXT qd NEXT pd FOR rd = 1 TO 4 FOR sd = 1 TO 11 READ jcap(rd, sd) NEXT sd NEXT rd FOR td = 1 TO 11 FOR ud = 1 TO 12 READ aaf(td, ud) NEXT ud NEXT td FOR vd = 1 TO 11 READ am(vd) NEXT vd FOR wd = 1 TO 18 READ srn(wd) NEXT wd FOR a1d = 1 TO 11 READ fing(a1d) NEXT a1d FOR b1d = 1 TO 11 FOR c1d = 1 TO 11 READ uskl(b1d, c1d) NEXT c1d NEXT b1d FOR d1d = 1 TO 10 FOR e1d = 1 TO 10 READ hcf(d1d, e1d) NEXT e1d NEXT d1d FOR f1d = 1 TO 6 FOR g1d = 1 TO 10 READ pb$(f1d, g1d) NEXT g1d NEXT f1d FOR hh = 1 TO 19 FOR ii = 1 TO 14 FOR jj = 1 TO 2 READ aas(hh, ii, jj) NEXT jj NEXT ii NEXT hh FOR kk = 1 TO 22 FOR ll = 1 TO 24 READ src(kk, ll) NEXT ll NEXT kk FOR mm = 1 TO 28 FOR nn = 1 TO 13 FOR oo = 1 TO 2 READ as2(mm, nn, oo) NEXT oo NEXT nn NEXT mm INPUT "What is the date (Jan'42=1 - Dec'43=24)"; date IF date > 12 THEN a = 5 FOR qq = 1 TO 12 READ d$(qq) NEXT qq d2 = date IF date < 13 THEN year = 1942 IF date > 12 THEN year = 1943 IF date > 12 THEN d2 = d2 - 12 FOR ss = 1 TO 18 READ tme$(ss) NEXT ss t = 1 FOR tt = 1 TO 4 FOR uu = 1 TO 10 READ dm$(tt, uu) NEXT uu NEXT tt main: CLS PRINT "MAIN MENU" PRINT "=========" PRINT d$(d2); year PRINT tme$(t); " Hours" PRINT PRINT "1. Direction Roll" PRINT "2. Level 1 to Level 2 Check" PRINT "3. Level 2 to Level 3 Carrier Check" PRINT "4. Level 2 to Level 3 Surface/Screen/Transport Check" PRINT "5. Level 3 to Level 4 Carrier Check" PRINT "6. Level 3 to Level 4 Surface/Screen Check" PRINT "7. Level 3 to Level 4 Transport Check" PRINT "8. US Air Attack on Japanese Task Force" PRINT "9. Japanese Air Attack on US Task Force" PRINT "10. Hit Confirmation" PRINT "11. Japanese Air Strength - Level 1 or Level 2 Carrier" PRINT "12. Japanese Air Strength - Level 3 or Level 4 Carrier" PRINT "13. PBY Search" PRINT "14. Japanese entry Hexes" PRINT "15. Increment Time" PRINT "16. Repair US Carriers" PRINT "17. US Search" PRINT "18. Carrier/Rabaul Attack" INPUT mm1 SELECT CASE mm1 CASE 1 die = INT(RND * 10) + 1: PRINT : PRINT "The TF moves in the direction indicated by:"; die: INPUT x$: GOTO main CASE 2 GOSUB l1l2: INPUT x$: GOTO main CASE 3 GOSUB l2l3c: INPUT x$: GOTO main CASE 4 GOSUB l2l3st: INPUT x$: GOTO main CASE 5 GOSUB l3l4c: INPUT x$: GOTO main CASE 6 GOSUB l3l4s: INPUT x$: GOTO main CASE 7 GOSUB l3l4t: INPUT x$: GOTO main CASE 8 GOSUB usaa: INPUT x$: GOTO main CASE 9 GOSUB jpaa: INPUT x$: GOTO main CASE 10 GOSUB HitConfirm: INPUT x$: GOTO main CASE 11 GOSUB jaa12: INPUT x$: GOTO main CASE 12 GOSUB jaa34: INPUT x$: GOTO main CASE 13 GOSUB pby: INPUT x$: GOTO main CASE 14 GOSUB JapArrival: INPUT x$: GOTO main CASE 15 t = t + 1: GOTO main CASE 16 GOSUB Repairs: INPUT x$: GOTO main CASE 17 GOSUB USsearch: INPUT x$: GOTO main CASE 18 GOSUB crat: INPUT x$: GOTO main END SELECT JapArrival: CLS PRINT "Japanese Arrival Hex Determination" PRINT "==================================" PRINT IF a <> 5 THEN INPUT "Which Arrival Table is being used (1)P1 (2)P2 (3)NH (4)G"; a INPUT "Number of Task Forces"; b FOR v = 1 TO b m = INT(RND * 10) + 1 n = INT(RND * 10) + 1 PRINT "Task Force is in "; js$(a, m, n) NEXT v o = INT(RND * 10) + 1 PRINT "Transport is in "; js$(a, 11, o) RETURN l1l2: CLS l1a = 0 PRINT "Level 1 Chit to Level 2 Chit" PRINT "============================" PRINT PRINT "What is the current chit?": PRINT "1. Level 1 Carrier" PRINT "2. Level 1 Surface": PRINT "3. Level 1 Transport" PRINT "4. Level 1 Large": PRINT "5. Level 1 Medium": PRINT "6. Level 1 Small" INPUT l1 l1drx = INT(RND * 10) + 1 INPUT "Is Carrier Commitment within 5 of Carrier Limit (Yes=1, No=0)"; l1a: IF l1a = 1 THEN l1dm = l1dm - 4 INPUT "Has it a secndary objectve (do not apply CV with rev air str) (Yes=1, No=0)"; l1b: IF l1b = 1 THEN l1dm = l1dm - 4 INPUT "Does the Task Force have a revealed air strength (Yes=1, No=0)"; l1ras IF l1ras = 1 THEN INPUT "What it the revaled air strength"; l1c: l1dmz = l1c - 9: IF l1dmz < -4 THEN l1dmz = -4 l1dm = l1dm + l1dmz Retry: l1dr = INT(RND * 10) + 1 + l1dm IF l1dr < 1 THEN l1dr = 1 IF l1dr > 10 THEN l1dr = 10 PRINT "New chit is "; l1$(l1, l1dr) IF l1dr <> 10 THEN RETURN IF l1 = 1 AND l1ras = 1 THEN GOTO Retry IF l1 = 1 AND l1drx < 6 THEN PRINT "No Carrier! Level 1 Surface" IF l1 = 1 AND l1drx > 5 THEN PRINT "Dummy!" IF l1 = 3 AND l1drx = 1 THEN PRINT "No Transport! Level 1 Carrier" IF l1 = 3 AND l1drx = 2 THEN PRINT "No Transport! Level 1 Surface" IF l1 = 3 AND l1drx > 2 THEN PRINT "Dummy!" IF l1 = 4 AND l1drx = 1 THEN PRINT "3+CV" IF l1 = 4 AND (l1drx = 2 OR l1drx = 3) THEN PRINT "Medium Surface" IF l1 = 4 AND l1drx > 3 THEN PRINT "Dummy!" IF l1 = 5 AND l1drx = 1 THEN PRINT "1-2CV" IF l1 = 5 AND (l1drx = 2 OR l1drx = 3) THEN PRINT "Large Surface" IF l1 = 5 AND l1drx > 3 THEN PRINT "Dummy!" IF l1 = 6 AND l1drx = 1 THEN PRINT "1-2CV" IF l1 = 6 AND (l1drx = 2 OR l1drx = 3 OR l1drx = 4) THEN PRINT "Medium Surface" IF l1 = 6 AND l1drx > 4 THEN PRINT "Medium Transport" RETURN l2l3c: CLS PRINT "Level 2 to Level 3 Carrier Check" PRINT "================================" PRINT PRINT "What is the size of the current chit?": PRINT "1. 1-2 Carriers" PRINT "2. 2-3 Carriers": PRINT "3. 3+ Carriers" INPUT c2cn: PRINT "What is the revealed air strength?" SELECT CASE c2cn CASE 1 PRINT "1. <= 5": PRINT "2. None, or 6-7": PRINT "3. 8-10": PRINT "4. 11+" GOTO c2fin CASE 2 PRINT "1. <= 7": PRINT "2. None, or 8-10": PRINT "3. 11-13": PRINT "4. 14+" GOTO c2fin CASE 3 PRINT "1. <=12": PRINT "2. None, or 13-14": PRINT "3. 15-16": PRINT "4. 17+" END SELECT c2fin: INPUT c2ras: c2dr = INT(RND * 10) + 1 PRINT "Intelligence reveals the folowing (#CV/#CVL) "; c2$(c2cn, c2ras, c2dr) PRINT "and don't forget to add a screen of appropriate strength!" INPUT x$ l2l3st: CLS PRINT "Level 2 to Level 3 Surface//Screen/Transport Check" PRINT "==========================================" PRINT PRINT "What is the current surface chit?": PRINT "1. Large Surface" PRINT "2. Medium Surface": PRINT "3. Small Surface": PRINT "4. Large Transport" PRINT "5. Medium Transport": PRINT "6. Small Transport": INPUT s2cn: s2dr = INT(RND * 10) + 1 PRINT s2dr PRINT "Intelligence reveals target force "; s2$(s2cn, s2dr): s23$ = s2$(s2cn, s2dr) IF s23$ = "A" THEN PRINT "18 to 26 ships" IF s23$ = "B" THEN PRINT "12 to 17 ships" IF s23$ = "C" THEN PRINT "7 to 11 ships" IF s23$ = "D" THEN PRINT "2 to 6 ships" RETURN l3l4c: CLS PRINT "Level 3 to Level 4 Carrier Check" PRINT "================================" PRINT PRINT "What is the current carrier chit level": PRINT "1. 1 CVL": PRINT "2. 2 CVL" PRINT "3. 3 CVL": PRINT "4. 1 CV": PRINT "5. 2 CV": PRINT "6. CV + CVL" PRINT "7. 2 CV + CVL": PRINT "8. 2 CV + 2 CVL": INPUT c3cv: c3dr = INT(RND * 10) + 1 PRINT "What is the Carrier Commitment Limit?": PRINT "1. Less than 20" PRINT "2. 20-21": PRINT "3. 22-25": PRINT "4. 26-27": PRINT "5. More than 28" INPUT c3cl: c3cl = c3cl - 1 PRINT c3cl INPUT "The the Carrier Commitment Index within 5 points of the Limit (Yes=1,No=0)"; c3cci IF c3cci = 1 THEN c3cl = c3cl - 4 PRINT "For determining the screen, the die roll was "; c3dr c3fdr = c3dr + c3cl IF c3fdr < 1 THEN c3fdr = 1 IF c3fdr > 11 THEN c3fdr = 11 PRINT "Sir, we have confirmed report of "; c3$(c3cv, c3fdr); " at that location!" PRINT "and don't forget to upgrade the screen at the same time!" INPUT x$ l3l4s: CLS PRINT "Level 3 to Level 4 Surface Check" PRINT "================================" PRINT PRINT "What is the size of the current surface chit?": PRINT "1. Large BB" PRINT "2. Medium BB": PRINT "3. Large CA": PRINT "4. Medium CA": PRINT "5. Small CA" PRINT "6. Medium DD": PRINT "7. Small DD": INPUT s3cs s3dr = INT(RND * 10) + 1 INPUT "Is this a screen (Yes=1, No=0)"; s3scn: IF s3scn = 1 THEN s3dr = c3dr PRINT "Sir, was have a confirmed surface group comprising "; s3$(s3cs, s3dr) PRINT " (B/C/L/D)" RETURN l3l4t: CLS PRINT "Level 3 to Level 4 Transport Check" PRINT "================================" PRINT PRINT "What is the size of the current transport chit?": PRINT "1. Transport A" PRINT "2. Transport B": PRINT "3. Transport C": PRINT "4. Transport D": INPUT t3cs t3dr = INT(RND * 10) + 1 PRINT "Sir, we have a confirmed transport group comprising "; t3$(t3cs, t3dr) PRINT " (TR/DD/CL) " RETURN usaa: CLS PRINT "US Air attack on Japanese Force" PRINT "===============================" PRINT usatk = 1 stcdr = INT(RND * 10) + 1 sta = 0 find = 0 INPUT "Is the target currently inverted (Yes=1, No=0)"; targi: stcdr = stcdr + targi INPUT "What is the size of the attacking force"; ussz: IF ussz < 3 THEN stcdr = stcdr - 3 IF ussz = 3 OR ussz = 4 THEN stcdr = stcdr - 1 IF ussz > 8 THEN stcdr = stcdr + 1 IF date < 8 THEN stcdr = stcdr - 1 IF date > 9 THEN stcdr = stcdr + 1 IF stcdr < 1 THEN stcdr = 1 IF stcdr > 10 THEN stcdr = 10 PRINT "What is the strike's current time aloft marker?": PRINT "1. 1-4" PRINT "2. 5-7": PRINT "3. 8-10": PRINT "Note: 11+ prohibited": INPUT sta INPUT "Is the target marker currently on the '?' side (Yes=1, No=0)"; jtar: sta = sta + jtar PRINT sta; stcdr find = stcr(sta, stcdr) IF find = 1 THEN PRINT "Miss, no contact!" IF find = 3 THEN PRINT "Target Located! - Level 4 and inverted!": lf = 1 IF find = 2 THEN INPUT "Is there another target within two hexes (Yes=1, No=0)"; wrng: w2 = INT(RND * 10) + 1 IF wrng = 1 THEN PRINT "Wrong Target Contacted! - Level 4 and inverted!": lf = 1 IF find = 2 AND wrng = 0 AND w2 < 6 THEN PRINT "Miss, no contact!": RETURN IF find = 2 AND wrng = 0 AND w2 > 5 THEN PRINT "Target Located! - Level 4 and inverted": lf = 1 IF find = 1 THEN RETURN REM Increasing lower levels JapTF to level 4 during bomb process IF lf = 1 THEN INPUT "Is the target already at Level 4 (Yes=1 No=0)?"; lfu IF lfu = 1 THEN lf = 0: GOTO surprise1 INPUT "At what level is the Japanese Task Force (1, 2 or 3)?"; lfx IF lfx = 1 THEN GOSUB l1l2 INPUT "Is is a (1) carrier, (2) surface or (3) transport?"; lfy IF lfx = 3 THEN GOTO lvl3up IF lfy = 1 THEN GOSUB l2l3c IF lfy > 1 THEN GOSUB l2l3st INPUT "Upgrade from Level 3 to Level 4 (Yes=1 No=0)?"; lfz IF lfz = 0 THEN GOTO surprise1 lvl3up: IF lfy = 1 THEN GOSUB l3l4c IF lfy = 2 THEN GOSUB l3l4s IF lfy = 3 THEN GOSUB l3l4t lf = 0 surprise1: INPUT "Is Strategic Surprise in effect (Yes=1, No=0)?"; ss: spdr = INT(RND * 10) + 1 IF ss = 1 THEN spdr = spdr + 3 IF spdr < 9 THEN PRINT "No Surprise": sp = 0 IF spdr = 9 THEN PRINT "Surprise - Japanese CAP": sp = 1 IF spdr > 9 THEN PRINT "Surprise - Planes on the deck!": sp = 2 PRINT "CAP Resolution" PRINT "==============": PRINT INPUT "What is the target force air value"; tfav tfm = tfav - 3: jcsdr = INT(RND * 10) + 4 IF tfm > 20 THEN tfm = 20 IF tfav = 0 THEN GOTO AAA IF ss = 1 THEN jcsdr = jcsdr - 3 PRINT "Japanese CAP Strength is "; jcsr(tfm, jcsdr): japcap = jcsr(tfm, jcsdr) jcdr = INT(RND * 10) + 1 INPUT "Are there TBDs in the strike (Yes=1, No=0)"; tbf: jcdr = jcdr + tbf INPUT "No escorts, or CAP outnumbers escorts more than 2-1 (Yes=1, No=0)"; est: jcdr = jcdr + est IF est = 0 THEN INPUT "Do escorts outnumber CAP more than 2-1 (Yes=1, No=0)"; esr: jcdr = jcdr - esr jcdr = jcdr - sp IF jcdr < 1 THEN jcdr = 1 IF jcdr > 11 THEN jcdr = 11 PRINT "The Japanese CAP has inflicted "; jcap(japcap, jcdr); " losses on the strike" AAA: aa = 0 PRINT "Anti-Aircraft fire resolution" PRINT "=============================": PRINT INPUT "What is the total AAA value"; aav: aadr = INT(RND * 10) + 1 IF aav >= 0 THEN aa = aa + 1 IF aav > 9 THEN aa = aa + 1 IF aav > 14 THEN aa = aa + 1 IF aav > 19 THEN aa = aa + 1 IF aav > 29 THEN aa = aa + 1 IF aav > 39 THEN aa = aa + 1 IF aav > 49 THEN aa = aa + 1 IF aav > 59 THEN aa = aa + 1 IF aav > 79 THEN aa = aa + 1 IF aav > 99 THEN aa = aa + 1 IF aav > 119 THEN aa = aa + 1 INPUT "How many steps attacking (DOUBLE Japanese)"; strk IF strk < 5 THEN aadr = aadr - 3 IF strk = 5 OR strk = 6 OR strk = 7 OR strk = 8 THEN aadr = aadr - 1 IF strk > 13 THEN aadr = aadr + 2 IF date < 8 THEN aadr = aadr - 1 IF date > 9 AND jpatk = 1 THEN aadr = aadr + 3 IF sp = 1 THEN aadr = aadr - 2 IF sp = 2 THEN aadr = aadr - 20 IF rab = 1 THEN aadr = aadr + rab IF aadr < 1 THEN aadr = 1 PRINT "Anti-Aircraft fires destroys "; aaf(aa, aadr); " bombers (half for Japanese)" PRINT "Strike Resolution" PRINT "=================": PRINT REM us strike IF usatk = 1 THEN INPUT "Total attack values of bombers"; tav IF usatk = 1 THEN INPUT "Is this a combined attack (Yes=1, No=0)"; cmb IF cmb = 1 THEN INPUT "How many steps attacking"; usstp IF usatk = 1 AND date < 8 THEN ats = tav + (usstp / 4) IF usatk = 1 AND date > 7 THEN ats = tav + (usstp / 2) REM jap strike IF jpatk = 1 THEN INPUT "Total number of air points attacking"; tjav IF jpatk = 1 AND date < 13 THEN ats = tjav * 5 IF jpatk = 1 AND date > 12 THEN ats = tjav * 4 REM strike resolution INPUT "Is target group unloading transports (Yes=1, No=0)"; ut clm = 0 FOR x = 1 TO 18 IF ats >= srn(x) THEN clm = clm + 1 NEXT x SELECT CASE clm CASE 1 INPUT "One Attack"; x$ b = 1: z = -5: GOSUB boom: GOTO finito CASE 2 INPUT "One Attack"; x$ b = 1: z = -3: GOSUB boom: GOTO finito CASE 3 INPUT "One Attack"; x$ b = 1: z = -1: GOSUB boom: GOTO finito CASE 4 INPUT "One Attack"; x$ b = 1: z = 0: GOSUB boom: GOTO finito CASE 5 INPUT "One Attack"; x$ b = 1: z = 1: GOSUB boom: GOTO finito CASE 6 INPUT "Two Attacks"; x$ b = 1: z = 0: GOSUB boom b = 1: z = -1: GOSUB boom: GOTO finito CASE 7 INPUT "Two Attacks"; x$ b = 2: z = 0: GOSUB boom: GOTO finito CASE 8 INPUT "Two Attacks"; x$ b = 1: z = 1: GOSUB boom b = 1: z = 0: GOSUB boom: GOTO finito CASE 9 INPUT "Two Attacks"; x$ b = 2: z = 1: GOSUB boom: GOTO finito CASE 10 INPUT "Three Attacks"; x$ b = 3: z = 0: GOSUB boom: GOTO finito CASE 11 INPUT "Three Attacks"; x$ b = 2: z = 1: GOSUB boom b = 1: z = 0: GOSUB boom: GOTO finito CASE 12 INPUT "Three Attacks"; x$ b = 3: z = 1: GOSUB boom: GOTO finito CASE 13 INPUT "Four Attacks!"; x$ b = 1: z = 1: GOSUB boom b = 3: z = 0: GOSUB boom: GOTO finito CASE 14 INPUT "Four Attacks!"; x$ b = 3: z = 1: GOSUB boom b = 1: z = 0: GOSUB boom: GOTO finito CASE 15 INPUT "Four Attacks!"; x$ b = 4: z = 1: GOSUB boom: GOTO finito CASE 16 INPUT "Five Attacks!!"; x$ b = 3: z = 1: GOSUB boom b = 2: z = 0: GOSUB boom: GOTO finito CASE 17 INPUT "Five Attacks!!"; x$ b = 4: z = 1: GOSUB boom b = 1: z = 0: GOSUB boom: GOTO finito CASE 18 INPUT "Five Attacks!!"; x$ b = 5: z = 1: GOSUB boom: GOTO finito END SELECT boom: FOR jj = 1 TO b bdr = INT(RND * 10) + 1 bdr = bdr + z IF usatk = 1 AND japcap = 0 THEN bdr = bdr + 1 IF jpatk = 1 AND uscap = 0 THEN bdr = bdr + 1 bdr = bdr + ut IF usatk = 1 AND sp = 2 THEN bdr = bdr + 5 IF jpatk = 1 THEN INPUT "Does target have unready steps on flight deck (Yes=1, No=0)"; ufd: bdr = bdr + ufd IF jpatk = 1 THEN INPUT "How many ready steps on flight deck"; rfd: bdr = INT(bdr + (rfd / 2)) IF jpatk = 1 THEN INPUT "Does target have steps in its 'Servicing' box (Yes=1, No=0)"; svc: bdr = bdr + svc IF bdr < 4 THEN PRINT "No Hits on Target!" IF bdr = 4 THEN PRINT "One Hit on Target!" IF bdr > 4 AND bdr < 8 THEN PRINT "Two Hits on Target!!" IF bdr = 8 OR bdr = 9 THEN PRINT "Three Hits on Target!!!" IF bdr = 11 OR bdr = 10 THEN PRINT "Four Hits on Target!!!!" IF bdr > 11 THEN PRINT "Five Hits on Target!!!!!" IF usatk = 1 THEN PRINT "(Don't forget to double American aviator claims!)" REM input x$ NEXT jj RETURN jpaa: CLS PRINT "Japanese Air Attack" PRINT "===================" PRINT jpatk = 1 INPUT "What is the US CAP strength (P-39 only count as half)"; uscap INPUT "Does the CAP have a 'Time Aloft' marker on it (Yes=1, No=0)"; ta IF ta = 1 THEN PRINT "1. 7 or less": PRINT "2. 8-10": PRINT "3. 11-13": PRINT "4. 14+" IF ta = 1 THEN INPUT ta2: ta3 = ta2 - 1: uscap = INT(uscap / (2 ^ ta3)) INPUT "Is this a Rabaul strike (Yes=1, No=0)"; rab: IF rab = 1 THEN uscap = uscap * 2 uscdr = INT(RND * 10) + 1 INPUT "What is the size of the Japanese strike"; jpsz IF jpsz < 4 THEN uscdr = uscdr + 1 IF jpsz > 6 AND jpsz < 10 THEN uscdr = uscdr - 1 IF jpsz > 9 AND jpsz < 13 THEN uscdr = uscdr - 2 IF jpsz > 12 THEN uscdr = uscdr - 3 IF uscap < 1 THEN uscap = 1 IF uscap > 20 THEN uscap = 20 cst = 0 FOR c = 1 TO 11 IF uscap >= fing(c) THEN cst = cst + 1 NEXT c IF uscdr < 1 THEN uscdr = 1 capkil = uskl(cst, uscdr) IF capkil = 8 THEN PRINT "One US Step Destroyed" ELSE PRINT capkil; " enemy planes destroyed" IF capkil <> 8 THEN jpsz = jpsz - capkil GOTO AAA finito: usatk = 0 jpatk = 0 ut = 0 rab = 0 cst = 0 sp = 0 cmb = 0 aa = 0 RETURN HitConfirm: CLS PRINT "Confrmation of Reported Hits on Target" PRINT "======================================" PRINT INPUT "How many hits were reported on the target"; rht: rht = rht / 2 rhdr = INT(RND * 10) + 1 PRINT "Actual hits confirmed = "; hcf(rht, rhdr) INPUT "More hits (Yes=1, No=0)"; mht: IF mht = 1 THEN GOTO HitConfirm RETURN pby: CLS PRINT "PBY Searches" PRINT "============" PRINT p(1) = INT(RND * 10) + 1 pby2: p(2) = INT(RND * 10) + 1 IF p(2) = p(1) THEN GOTO pby2 PRINT "PBYs are searching in areas "; p(1); " and "; p(2) FOR p = 1 TO 2 PRINT "How many Japanese forces are within three hexes of "; p(p): INPUT nf IF nf = 0 THEN GOTO njf p3 = INT(RND * 10) + 1 IF nf = 1 OR nf = 3 OR nf = 5 OR nf = 7 OR nf = 9 OR nf = 11 THEN nf = nf + 1 IF nf > 12 THEN nf = 12 nf = nf / 2 PRINT p3 PRINT "PBY detect: "; pb$(nf, p3) PRINT " (New/Previously Approx.)" IF p3 = 1 THEN PRINT "One force detected by the PBY is increased an intelligence level!" njf: NEXT p RETURN jaa12: CLS PRINT "Level 1 and Level 2 Chit Air Attacks" PRINT "====================================" PRINT PRINT "What is the strength of the Japanese chit?": PRINT "1. Level 1 Carrier" PRINT "2. Level 2 1-2CV": PRINT "3. Level 2 2-3CV": PRINT "4. Level 2 3+CV": INPUT jsc INPUT "What is the Japanese Revealed Air Strength"; jras SELECT CASE jsc CASE 1 IF jras = 0 THEN cl = 1 IF jras > 0 AND jras < 4 THEN cl = 5 IF jras = 4 THEN cl = 6 IF jras = 5 THEN cl = 7 IF jras = 6 THEN cl = 8 IF jras = 7 THEN cl = 9 IF jras = 8 THEN cl = 10 IF jras = 9 THEN cl = 11 IF jras = 10 THEN cl = 12 IF jras = 11 OR jras = 12 THEN cl = 13 IF jras = 13 OR jras = 14 THEN cl = 15 IF jras > 14 AND jras < 18 THEN cl = 16 IF jras = 18 OR jras = 19 THEN cl = 17 IF jras > 19 THEN cl = 18 GOTO surprise CASE 2 IF jras = 0 THEN cl = 2 IF jras > 0 AND jras < 4 THEN cl = 5 IF jras = 4 THEN cl = 6 IF jras = 5 THEN cl = 7 IF jras = 6 THEN cl = 8 IF jras = 7 THEN cl = 9 IF jras = 8 OR jras = 9 THEN cl = 10 IF jras = 10 THEN cl = 11 IF jras = 11 THEN cl = 12 IF jras > 12 THEN cl = 13 GOTO surprise CASE 3 IF jras = 0 THEN cl = 3 IF jras > 0 AND jras < 6 THEN cl = 8 IF jras = 6 THEN cl = 9 IF jras = 7 OR jras = 8 THEN cl = 10 IF jras = 9 THEN cl = 11 IF jras = 10 THEN cl = 12 IF jras = 11 OR jras = 12 THEN cl = 13 IF jras = 13 THEN cl = 14 IF jras = 14 THEN cl = 15 IF jras = 15 OR jras = 16 THEN cl = 16 IF jras > 16 THEN cl = 17 GOTO surprise CASE 4 IF jras = 0 THEN cl = 4 IF jras > 0 AND jras < 8 THEN cl = 11 IF jras = 8 OR jras = 9 THEN cl = 12 IF jras = 10 OR jras = 11 THEN cl = 13 IF jras = 12 THEN cl = 14 IF jras = 13 THEN cl = 15 IF jras = 14 THEN cl = 16 IF jras = 15 OR jras = 16 THEN cl = 17 IF jras = 17 OR jras = 18 THEN cl = 18 IF jras > 18 THEN cl = 19 GOTO surprise END SELECT surprise: aasdr = INT(RND * 10) + 1 INPUT "Is this a Secdry Object TF with no Revealed Air Strength (Yes=1,No=0)"; ob2 IF od2 = 1 THEN aasdr = aasdr - 4 INPUT "Is Jap TF at a range of 7 or more hexes (Yes=1, No=0)"; hx7: IF hx7 = 1 THEN aasdr = aasdr - 3 INPUT "Is it Turn 11 or Turn 12 (Yes=1, No=0)"; t11: IF t11 = 1 THEN aasdr = aasdr - 3 aasdr = aasdr + 4 IF aasdr < 1 THEN aasdr = 1 IF assdr > 14 THEN aasdr = 14 fw = aas(cl, aasdr, 1) sw = aas(cl, aasdr, 2) PRINT aasdr INPUT "Is there any strength reduction for the attack (Yes=1, No=0)"; sr: IF sr = 0 THEN GOTO aast INPUT "How many points are lost or unavailable"; plu: tw = fw + sw srn = src(tw, plu) PRINT srn IF srn <= sw THEN sw = sw - srn IF srn > sw THEN fw = fw - (srn - sw): sw = 0: IF fw < 0 THEN fw = 0 GOTO aast aast: PRINT "First Wave consists of "; fw; " aircraft" PRINT "Second Wave consists of "; sw; " aircraft" RETURN jaa34: CLS PRINT "Japanese Air Attacks from Level 3 and Level 4 Chits" PRINT "===================================================" PRINT INPUT "What is the Adjusted Air Value (total minus unavailable)"; adav adr2 = INT(RND * 10) + 1 PRINT adr2 INPUT "Is this a Rabaul strike (Yes=1, No=0)"; rab: IF rab = 1 THEN adr2 = adr2 + 4 INPUT "Is this Turn 11 or Turn 12 (Yes=1, No=0)"; t11: IF t11 = 1 THEN adr2 = adr2 - 3 INPUT "Is this a Carrier-based strike at a range of 7 or more hexes (Yes=1, No=0)"; hx7: IF hx7 = 1 THEN adr2 = adr2 - 3 adr2 = adr2 + 3 IF adr2 < 1 THEN adr2 = 1 IF adr2 > 13 THEN adr = 13 IF adav > 28 THEN adav = 28 PRINT adr2 - 3 fw = as2(adav, adr2, 1) sw = as2(adav, adr2, 2) GOTO aast Repairs: PRINT "US Carrier Repairs" PRINT "==================" PRINT PRINT "What is the current level of damage?": PRINT "1. Light": PRINT "2. Moderate" PRINT "3. Heavy": PRINT "4. Dead in the Water": INPUT dm rpdr = INT(RND * 10) + 1: IF rpdr = 1 AND dm > 1 THEN ch = 1 IF dm = 4 THEN INPUT "Is damage at the second 'D' level (Yes=1, No=0)"; d4: rpdr = rpdr - d4 IF date < 8 THEN rpdr = rpdr - 1 IF date > 9 THEN rpdr = rpdr + 1 IF rpdr < 1 THEN rpdr = 1 IF rpdr > 10 THEN rpdr = 10 PRINT rpdr PRINT "Change to US damage level = "; dm$(dm, rpdr) IF ch = 1 THEN GOTO critical GOTO fox critical: rpd2 = INT(RND * 10) + 1 PRINT "Critical Hit!!"; rpd2 IF rpd2 = 1 THEN PRINT "+4 Hits" IF rpd2 = 2 THEN PRINT "+2 Hits" IF rpd2 > 2 AND rpd2 < 5 THEN PRINT "+1 Hit" IF rpd2 > 4 AND rpd2 < 8 THEN PRINT "No raise/lower permitted" IF rpd2 > 7 THEN PRINT "No effect!!" ch = 0 fox: INPUT "More carriers to repair (Yes=1, No=0)"; mcr: IF mcr = 1 THEN GOTO Repairs RETURN USsearch: CLS PRINT "US Search" PRINT "=========" scdr = INT(RND * 10) + 1 INPUT "Steps searching"; stp INPUT "Searching Located or Approx. Located force (Yes=1, No=0)"; sla INPUT "Any fighters (Yes=1, No=0)"; fgt scdr = scdr + fgt - sla IF stp < 3 THEN scdr = scdr + 2 IF stp = 3 THEN scdr = scdr + 1 IF stp > 4 AND stp < 8 THEN scdr = scdr - 1 IF stp > 7 THEN scdr = scdr - 2 IF date < 8 THEN scdr = scdr + 1 IF scdr > 7 THEN PRINT "No sighting of enemy forces" IF scdr = 6 OR scdr = 7 THEN PRINT "Enemy force approximately located" IF scdr = 5 OR scdr = 4 THEN PRINT "Enemy force located!" IF scdr = 3 OR scdr = 2 THEN PRINT "Enemy force located, increase intelligence one level" IF scdr < 2 THEN GOSUB grey INPUT "More task forces to search (Yes=1, No=0)"; mtf IF mtf = 1 THEN GOTO USsearch RETURN grey: PRINT "Enemy force located, increase intelligence one level" grdr = INT(RND * 10) + 1: tbd = 0 INPUT "Any TBD or TBF searching (Yes=1, No=0)"; tbd grdr = grdr + tbd IF grdr < 6 THEN PRINT "Nothing extra" IF grdr = 6 OR grdr = 7 THEN PRINT "One bomb hit! (SBD only)" IF grdr = 8 THEN PRINT "Two bomb hits!! (SBD only)" IF grdr > 8 THEN PRINT "If searched force includes a carrier, lose one searching air step" RETURN crat: CLS INPUT "Is this a carrier (1) or Rabaul (2) attack"; atype IF atype = 2 THEN GOTO rabaul cadr = INT(RND * 10) + 1 INPUT "Is strategic surprise in effect (Yes=1, No=0)"; atss: cadr = cadr + (atss * 2) INPUT "Does the force have a US advantage marker (Yes=1, No=0)"; adss: cadr = cadr + (adss * 3) IF t < 3 THEN cadr = cadr + 4 IF t = 3 OR turn = 11 OR turn = 12 THEN INPUT "What is the range"; rass IF t = 3 AND rass < 6 THEN cadr = cadr + 4 IF t = 3 AND rass > 5 THEN cadr = cadr + 5 IF t = 4 THEN cadr = cadr + 2 IF t = 5 THEN cadr = cadr + 1 IF t = 11 AND range > 6 THEN cadr = cadr + 4 IF t = 11 AND range > 2 THEN cadr = cadr + 5 PRINT "Priority Alternate 2nd Alternate" PRINT "======== ========= ==============" REM PRINT cadr IF cadr < 3 THEN PRINT "Carriers" IF cadr > 2 AND cadr < 6 THEN PRINT "Carriers Large Surface(P) Airfield(P)" IF cadr = 6 THEN PRINT "Carriers(P) Airfield(P) Large Surface(P)" IF cadr = 6 THEN PRINT "Airfield (P) Carriers(P) Large Surface(P)" IF cadr > 6 AND cadr < 10 THEN PRINT "Airfield(P) Large Surface (P)" IF cadr = 10 THEN PRINT "Non-Carrier(P) Airfield(P)" IF cadr > 10 THEN PRINT "NO ATTACKS FROM THE JAPANESE FORCE!" INPUT "More possible attacks (Yes=1, No=0)"; mat: IF mat = 1 THEN GOTO crat RETURN rabaul: rbdr = INT(RND * 10) + 1 INPUT "Is Strategic Surprise in effect (Yes=1, No=0)"; ssrb: rbdr = rbdr + (2 * ssrb) IF t < 3 THEN rbdr = rbdr + 4 IF t = 3 OR t = 9 OR t = 10 OR t = 11 OR t = 12 THEN INPUT "What is the range to the nearest target"; rrb IF t = 3 AND rrb < 6 THEN rbdr = rbdr + 4 IF t = 3 AND rrb > 5 THEN rbdr = rbdr + 5 IF t = 9 AND rrb > 15 THEN rbdr = rbdr + 4 IF t = 10 AND rrb > 11 THEN rbdr = rbdr + 4 IF t = 11 AND rrb > 7 THEN rbdr = rbdr + 4 IF t = 12 AND rrb > 3 THEN rbdr = rbdr + 4 PRINT "Priority Alternate 2nd Alternate" PRINT "======== ========= =============" REM PRINT rbdr IF rbdr < 3 THEN PRINT "Carriers(P)<=15 Transports(P)<=9 Closest(P)<=6" IF rbdr > 2 AND rbdr < 6 THEN PRINT "Carriers<=12 Transports<=4 Airfield(P)<=19" IF rbdr > 5 AND rbdr < 8 THEN PRINT "Transports(P)<=9 Carriers(P)<=6" IF rbdr > 7 AND rbdr < 11 THEN PRINT "Transports<=4 Carriers(P)<=6" IF rbdr > 10 THEN PRINT "No Japanese attacks from Rabaul" RETURN