0 REM From Challenge Magazine #26, by Marc Miller 0 REM *** CORRECTIONS *** 0 REM 1220 Missing "once" and spacing 0 REM 1230 Missing INPUT 0 REM 1253 Typo: "C" -> "CH" for Chirper 0 REM 2050 DR$ initialized with " should be "" 0 REM 2070 LO$(B( should be LO$(B) 0 REM 2130 Unnecessary GOTO 2140 0 REM 2740 REM / merged with subsequent line 0 REM 3015 Typo: "O" -> "OR" 0 REM 3020 Typo: "HY 9" --> "HY = 9" 0 REM 3550 Typo: "AM 10" --> "AM = 10" 0 REM 3820 Typo: <> " should be <> "" 0 REM 4320 "(5-ST)" should be "(5-S1)" 0 REM Typo: line 4460 printed as 460 0 REM 4530 "ST = -3" should be "DM = -3" 0 REM 4622 "DM = +1" unary plus unnecessary 0 REM 4624 "D = 3" should be "DM = 3" 0 REM 5030 "ST$="B" AND ST$="C"" should be "ST$="B" OR ST$="C"" 0 REM 6210 " " should be 15 spaces 0 REM 6625 DR$ initialized with " should be "" 0 REM 6650 goto target missing; split 6640 to ensure AL$ appended if DR$ set 0 REM 2070 Missing ) at end of SQR 0 REM 2070 Unnecessary GOTO 2080 0 REM *** INVESTIGATE *** 0 REM 6120 Rule seems bogus - verify? 0 REM 4150/4160 inverted? 0 REM 4120 Jump to 4150 leaves DM unset, must be incorrect; changed to 4120 (no bases if ST$ = "E" or "X") 0 PR#0 1000 TEXT : HOME : PRINT "Traveller Sector Generator" 1010 PRINT " This program generates world UPP data" 1020 PRINT " for Traveller. Copyright 1986 GDW, Inc." 1100 HX$ = "0123456789ABCDFGHJKLMNPQRSTUVWXYZ" 1105 SP$ = "AAAABBCCDEEX" 1110 BA$ = "ABCDEFGHJKLMNPQRSTUVWXYZ" 1140 DEF FN A(X) = INT ( RND (4) * 6) + 1 1150 DEF FN B(X) = FN A(X) + FN A(X) 1200 REM DETERMINE ALLEGIANCES 1210 PRINT : PRINT "Allegiances." 1220 PRINT " You may assign up to 10 allegiances (with a base location and a radius for each). The same allegiance may be used more than once (to allow non-circular regions).": PRINT 1230 INPUT "How many allegiances in the area? > ";A: IF A<1 OR A>10 THEN 1230 1240 HOME : PRINT "Allegiances" 1250 PRINT " Allegiances are two-letter codes. The following use special procedures in this program:" 1253 PRINT "A* CS CH DR HV IM KK NA SO V* Z*" 1254 PRINT "(* = Wildcard)" 1260 PRINT : PRINT " The first allegiance is the default (automatic) allegiance for the sector.": PRINT 1270 FOR B = 1 TO A 1280 PRINT "Allegiance ";B; 1290 INPUT " is: ";AL$(B):AL$(B) = LEFT$ (AL$(B) + "BB",2) 1300 IF B = 1 THEN LO$(B) = "1620":RA(B) = 22: GOTO 1330 1310 INPUT "Location (Hex) is: ";LO$(B):LO$(B) = LEFT$ (LO$(B) + "0000",4) 1320 INPUT "Radius (parsecs) is: ";RA(B) 1325 IF RA(B)<1 THEN RA(B) = 1 1330 NEXT B 1400 REM DESIGNATE DENSITIES 1410 HOME : PRINT "Densities" 1420 PRINT " You may assign up to 10 densities (with a base location and a radius for each).": PRINT 1430 INPUT "How many densities in the area? > ";A1 1435 IF A1<1 OR A1>10 THEN 1430 1440 PRINT " Densities are decimal fractions.": PRINT 1450 PRINT " The first density is the default (automatic) density for the sector.": PRINT 1460 FOR B = 1 TO A1 1470 PRINT "Density ";B; 1480 INPUT " is: ";DE(B): IF DE(B)>1 THEN 1480 1490 IF B = 1 THEN L1$(B) = "1620":RD(B) = 22: GOTO 1520 1500 INPUT "Location (hex) is: ";L1$(B):L1$(B) = LEFT$ (L1$(B) + "0000",4) 1510 INPUT "Radius (parsecs) is: ";RD(B) 1515 IF RD(B)<1 THEN RD(B) = 1 1520 NEXT B 1530 HOME 2000 REM PRODUCE SECTOR 2010 PRINT CHR$ (4);"OPEN SECTOR, L50" 2020 FOR X = 1 TO 32 2030 FOR Y = 1 TO 40 2040 REM FIND ALLEGIANCE 2050 DR$ = "":AL$ = AL$(1):DR = 0 2060 FOR B = A TO 2 STEP - 1 2070 D = SQR((VAL(LEFT$(LO$(B),2))-X)*(VAL(LEFT$(LO$(B),2))-X)+(VAL(MID$(LO$(B),3,2))-Y)*(VAL(MID$(LO$(B),3,2))-Y)): IF D(0.9*RA(B)) AND FN B(4)>9 THEN AL$="NA": IF FN B(4)>6 THEN AL$="CS" : GOTO 2080 2080 NEXT B 2100 REM WORLD OCCURRENCE 2110 DE = DE(1): IF A1<2 THEN 2150 2120 FOR B = A1 TO 2 STEP - 1 2130 D = SQR (( VAL ( LEFT$ (L1$(B),2)) - X) * ( VAL ( LEFT$ (L1$(B),2)) - X) - ( VAL ( MID$ (L1$(B),3,2)) - Y) * ( VAL ( MID$ (L1$(B),3,2)) - Y)): IF DDE THEN 7070 2200 REM GENERATOR WORLD UPP 2210 ST = FN B(4):ST$ = MID$ (SP$,ST,1) 2220 SI = FN B(4) - 2: IF AL$ = "DR" THEN SI = FN A(6) 2230 AM = FN B(2) - 7 + SI:AM = AM * (AM>0): IF SI = 0 THEN AM = 0 2240 HY = FN B(2) - 7 + SI: IF SI<2 THEN HY = 0 2250 IF AM<2 OR AM>9 THEN HY = HY - 4 2260 IF HY<0 THEN HY = 0 2270 IF HY>10 THEN HY = 10 2300 PO = FN B(3) - 2 2310 GO = FN B(3) - 7 + PO:GO = GO * (GO>0) 2320 LA = FN B(4) - 7 + GO:LA = LA * (LA>0) 2330 IF PO<1 THEN 2600 2400 REM FIND DROYNE PRESENCE 2410 DM = - 5: IF SI>0 THEN DM = 0: IF SI>1 THEN DM = 1: IF SI>2 THEN DM = 2: IF SI>3 THEN DM = 3: IF SI>4 THEN DM = 2: IF SI>5 THEN DM = 1: IF SI>6 THEN DM = 0: IF SI>7 THEN DM = - 2: IF SI>8 THEN DM = - 4: IF SI>9 THEN DM = - 6 2420 DN = - 5: IF AM>0 THEN DN = - 4: IF AM>1 THEN DN = - 3: IF AM>2 THEN DN = - 2: IF AM>3 THEN DN = - 1: IF AM>4 THEN DN = 0: IF AM>5 THEN DN = 2: IF AM>6 THEN DN = 1: IF AM>7 THEN DN = 4: IF AM>8 THEN DN = 3: IF AM>9 THEN DN = - 5 2430 IF AM>10 THEN DN = - 6: IF AM>11 THEN DN = - 7: IF AM>12 THEN DN = - 3 2440 DO = 1: IF HY<3 THEN DO = 0: IF HY = 0 THEN DO = - 1 2450 IF HY>7 THEN DO = 0: IF HY>9 THEN DO = - 3 2460 DP = - 5: IF PO>0 THEN DP = - 4: IF PO>1 THEN DP = - 3: IF PO>2 THEN DP = - 2: IF PO>3 THEN DP = - 1: IF PO>5 THEN DP = 1: IF PO>7 THEN DP = 0: IF PO>8 THEN DP = - 2 2470 RR = FN B(5):RL = FN B(5) 2480 DM = DM + DN + DO + DP + RR 2490 IF DM<( - 8) THEN 2600 2500 IF (DM> - 9) AND (RL>11) THEN DR = - 5:DR$ = "DR" 2510 IF (DM>0) AND (RL>10) THEN DR = - 4:DR$ = "DR" 2520 IF (DM>9) AND (RL>9) THEN DR = - 2:DR$ = "DR" 2530 IF (DM>15) AND (RL>8) THEN DR = 0:DR$ = "DR" 2540 IF DR$ = "" THEN 2600 2550 IF FN B(4)>5 THEN DR$ = "CH" 2560 PP = ( FN B(3) - 2) + DR: IF PP<0 THEN PP = 0 2570 IF PP>9 THEN PP = 9 2580 DR$ = LEFT$ (DR$,1) + STR$ (PP) 2600 REM FIND SPECIFIC ALLEGIANCE 2610 IF LEFT$ (AL$,1) = "A" THEN 2700 2620 IF AL$ = "CH" THEN 2800 2630 IF AL$ = "DR" THEN 2800 2640 IF AL$ = "HV" THEN 2900 2650 IF AL$ = "KK" THEN 3000 2660 IF AL$ = "SO" THEN 3100 2670 IF LEFT$ (AL$,1) = "V" THEN 3200 2680 IF LEFT$ (AL$,1) = "Z" THEN 3300 2690 GOTO 3400 2700 REM ASLAN 2705 IF ASC ( MID$ (AL$,2,1))<48 OR ASC ( MID$ (AL$,2,1))>57 THEN 2720 2710 GO = 20: IF PO<4 AND FN B(6)<11 THEN GO = 16 2715 GOTO 2730 2720 WD = FN A(4):RD = FN A(3) + (1 * (PO<4)) + (2 * (PO = 9)) + (3 * (PO = 10)): IF RD<0 THEN WD = 0 2725 GO = 16 + WD: IF RD>6 THEN GO = 17 2730 AR = VAL ( MID$ (AL$,2,1)): IF GO = 20 AND AR = 0 AND MID$ (AL$,2,1)<>"0" THEN AL$ = "A" + STR$ ( INT ( RND (5) * 10)) 2735 LA = FN B(5) 2740 REM 2745 DM = 3: IF ST>4 THEN DM = 2: IF ST>6 THEN DM = 0: IF ST>8 THEN DM = - 1: IF ST>9 THEN DM = - 2 2750 IF PO<3 AND GO = 16 THEN DM = DM - 3: GOTO 2760 2755 IF PO<8 THEN DM = DM - 1: IF PO<7 THEN DM = DM - 1 2760 TL = FN A(4) + 8 + DM: IF TL>14 THEN TL = 14 2765 GOTO 3600 2800 REM DROYNE 2810 IF AL$ = "DR" OR AL$ = "CH" THEN PO = FN A(4) + 2 2820 IF AL$ = "DR" THEN A = FN A(4):GO = 31: IF A<5 THEN GO = 7: IF A<3 THEN GO = 6 2830 LA = ( FN B(4) - 6) + PO:TL = ( FN B(5) + FN A(3)) - 2 2835 ST = ( FN B(4) - 7) + TL 2840 LA = LA * (LA>0):TL = TL * (TL>0):ST = ST * (ST>0) 2850 IF ST>12 THEN ST = 12 2860 ST$ = MID$ ("XXXXEEDCCBBAAAA",ST + 1,1) 2870 GOTO 3700 2900 REM HIVERS 2905 IF PO<1 THEN GO = 0:LA = 0:TL = 0: GOTO 3700 2910 NH = 0: IF ((AM>0 AND AM<5) OR (AM>9 AND AM<13)) AND FN B(5)>8 AND PO>0 THEN NH = 1 2915 GO = PO - FN A(6): IF GO<0 THEN GO = 0 2920 IF GO = 4 OR GO = 5 THEN GO = 26 2925 IF GO = 6 OR GO = 7 THEN GO = 27 2930 IF GO = 8 THEN GO = 28 2935 IF GO = 9 THEN GO = 29 2940 IF GO = 3 THEN GO = 6 2945 IF PO<7 AND NH = 1 THEN GO = 6 2950 LA = FN A(4): IF NH = 1 THEN LA = FN B(5) 2955 DM = 3: IF ST$>"A" THEN DM = 2: IF ST$>"B" THEN DM = 0: IF ST$>"C" THEN DM = - 1: IF ST$>"D" THEN DM = - 2 2960 IF (PO<4 AND GO<>6) THEN DM = DM - 3 2965 IF (PO>3 AND PO<7) THEN DM = DM - 2 2970 IF PO = 7 THEN DM = DM - 2 2975 TL = FN B(4) + 8 + DM 2980 IF TL>15 THEN TL = 15 2985 GOTO 3700 3000 REM KKREE 3005 GO = 23: IF PO>2 THEN GO = 24: IF PO>5 THEN GO = 25 3010 DM = (2 * (ST$ = "A")) + (ST$ = "B") + ( - 1 * (ST$ = "E")) + ( - 6 * (ST$ = "x")) 3015 DM = DM + ( - 2 * (AM<3)) + ( - 1 * (AM = 3)) + (3 * (AM = 5 OR AM = 6 OR AM = 8)) + ( - 1 * (AM = 10)) + ( - 2 * (AM = 11 OR AM = 13 OR AM = 14 OR AM = 15)) + ( - 3 * (AM = 12)) 3020 DM = DM + ( - 2 * (HY = 0)) + (1 * (HY = 2 OR HY = 6)) + (2 * (HY = 3 OR HY = 4 OR HY = 5)) + ( - 1 * (HY = 8)) + ( - 2 * (HY = 9)) + ( - 3 * (HY = 10)) 3025 NK = 0:PO = FN A(4) - 2 + DM: IF PO>11 THEN PO = 12:NK = 1:PO = FN B(4) - 2:GO = ( FN B(4) - 7) + PO:GO = GO * (GO> - 0):LA = ( FN B(4) - 7) + GO:LA = LA * (LA>0): GOTO 3040 3030 GO = 23: IF PO>2 THEN GO = 24: IF PO>5 THEN GO = 25 3035 LA = 19 3040 IF PO<1 THEN PO = 0:ST = 10:ST$ = "E":GO = 0:LA = 0 3045 REM 3050 DM = 3: IF ST>4 THEN DM = 2: IF ST>6 THEN DM = 0: IF ST>8 THEN DM = - 1: IF ST>9 THEN DM = - 2: IF ST>11 THEN DM = - 9 3055 IF GO = 23 THEN DM = DM - 3 3060 IF GO = 24 THEN DM = DM - 1 3065 IF GO = 25 THEN DM = DM + 1 3070 TL = FN A(4) + 9 + DM 3075 IF TL>15 THEN TL = 15 3080 GOTO 3600 3100 REM SOLOMANI 3110 GOTO 3400 3200 REM VARGR 3210 IF ( FN B(5) + PO)>15 THEN GO = 7 3220 GOTO 3400 3300 REM ZHODANI 3310 IF ST>11 THEN PO = FN A(4) + 4 3320 GOTO 3400 3400 REM FIND TECH LEVEL 3410 TL = FN A(6) 3420 IF ST$ = "A" THEN TL = TL + 6 3430 IF ST$ = "B" THEN TL = TL + 4 3440 IF ST$ = "C" THEN TL = TL + 2 3450 IF ST$ = "X" THEN TL = TL - 4 3460 IF SI<5 THEN TL = TL - 1: IF SI<2 THEN TL = TL - 1 3470 IF AM<4 THEN TL = TL + 1 3480 IF AM>9 THEN TL = TL + 1 3490 IF HY>8 THEN TL = TL + 1: IF HY>9 THEN TL = TL + 1 3500 IF PO>0 AND PO<6 THEN TL = TL + 1 3510 IF PO>8 THEN TL = TL + 2: IF PO>9 THEN TL = TL + 2 3520 IF GO = 0 OR GO = 5 THEN TL = TL + 1 3550 IF LEFT$ (AL$,1) = "Z" AND ((AM<3 AND TL<8) OR (AM = 3 AND TL<7) OR ((AM = 4 OR AM = 7 OR AM = 9) AND TL<6) OR ((AM = 10 OR AM = 11) AND TL<9) OR (AM = 12 AND TL<10)) THEN PO = 0:GO = 0:LA = 0:TL = 0 3560 GOTO 3700 3600 REM BASIC ALIEN TL LEVELLER 3610 IF AM<3 AND TL>7 THEN TL = 7 3620 IF AM = 3 AND TL<6 THEN TL = 6 3630 IF (AM = 4 OR AM = 7 OR AM = 9) AND TL<5 THEN TL = 5 3640 IF (AM = 10 OR AM = 11) AND TL<8 THEN TL = 8 3650 IF AM = 12 AND TL<9 THEN TL = 9 3700 REM GENERATE GAS GIANT 3710 GG = 0: IF FN B(4)<10 THEN GG = 1 3800 REM GENERATE TRAVEL ZONES 3810 TZ = 0 3815 IF AL$<>"IM" THEN 3845 3820 IF DR$<>"" AND TZ = 0 THEN IF FN B(5)>8 THEN TZ = 1 3830 IF ST$ = "X" THEN TZ = 2 3840 IF TZ = 0 AND FN B(4)>10 THEN TZ = 1 3845 IF LEFT$ (AL$,1)<>"z" THEN 4000 3850 IF LEFT$ (AL$,1) = "Z" and (st$="C" or ST$="D" or ST$="E") and FNB(5)>10 then tz=4 3860 IF ST$ = "x" AND LEFT$ (AL$,1) = "z" THEN TZ = 3 4000 REM GENERATE BASES 4010 B1 = 0:B2 = 0:B$ = " " 4020 IF LEFT$ (AL$,1) = "A" THEN 4300 4030 IF AL$ = "DR" THEN 4900 4040 IF AL$ = "HV" THEN 5000 4050 IF AL$ = "KK" THEN 4500 4060 IF AL$ = "SO" THEN 4800 4070 IF LEFT$ (AL$,1) = "V" THEN 4600 4080 IF LEFT$ (AL$,1) = "Z" THEN 4700 4100 REM IMPERIAL BASES 4110 IF ST$<"C" AND FN B(5)>7 THEN B1 = 1 4120 IF ST$>"D" THEN 4210 4130 DM = - 3: IF ST>4 THEN DM = - 2: IF ST>6 THEN DM = - 1: IF ST>8 THEN DM = 0: IF ST>9 THEN 4150 4140 IF ( FN B(5) + DM)>6 THEN B2 = 1 4150 IF B1 = 1 AND B2 = 0 THEN B$ = "N" 4160 IF ( FN B(4) + DM)>6 THEN B2 = 1 4170 IF B1 = 0 AND B2 = 1 THEN B$ = "S" 4180 IF B1 = 1 AND B2 = 1 THEN B$ = "A" 4190 IF (AL$<>"IM" AND AL$<>"CS") AND B1<>0 THEN B$ = "J" 4200 IF (AL$<>"IM" AND AL$<>"CS") AND B2<>0 THEN B$ = "M" 4210 GOTO 6000 4300 REM ASLAN BASES 4310 B1 = 0:B2 = 0:T1 = FN B(5):T2 = FN B(4):S1 = ASC (ST$) - 64:B$ = " " 4320 IF GO = 16 AND S1<3 AND T1 + (5 - S1)>13 THEN B1 = 1 4330 IF GO = 16 AND S1<3 AND T2 + (5 - S1)>12 THEN B2 = 1 4340 IF GO = 17 AND S1<5 AND T1 + (5 - S1)>8 THEN B1 = 1 4350 IF GO = 20 AND S1<5 AND T1 + (5 - S1)>6 THEN B1 = 1 4360 IF GO = 20 AND S1>5 AND T1>7 THEN B1 = 1 4370 IF GO = 22 AND S1<5 AND T1 + (5 - S1)>9 THEN B1 = 1 4380 IF (GO = 17 OR GO = 18 OR GO = 21) AND S1<5 AND T2 + (5 - S1)>7 THEN B2 = 1 4390 IF GO = 19 AND S1<5 AND T2 + (5 - S1)>6 THEN B2 = 1 4400 IF GO = 22 AND S1<5 AND T2 + (5 - S1)>8 THEN B2 = 1 4410 IF GO = 18 AND S1>5 AND T2>7 THEN B2 = 1 4420 IF GO = 19 AND S1>5 AND T2>8 THEN B2 = 1 4430 IF B1 = 1 THEN B$ = "T" 4440 IF B2 = 1 THEN B$ = "R" 4450 IF B1 = 1 AND B2 = 1 THEN B$ = "U" 4460 IF GO = 16 AND B1 = 1 THEN B$ = "T" 4470 GOTO 6000 4500 REM KKREE BASES 4510 IF FN B(5)>6 THEN B1 = 1:B2 = 0:B$ = "K": GOTO 4550 4520 IF ST$>"D" THEN 4550 4530 DM = 0: IF ST<9 THEN DM = - 1: IF ST<7 THEN DM = - 2: IF ST<5 THEN DM = - 3 4540 IF FN B(5) + DM>6 THEN B2 = 1:B$ = "O" 4550 GOTO 6000 4600 REM VARGR BASES 4610 IF FN B(5)>6 THEN B1 = 1:B$ = "G": GOTO 4650 4620 DM = - 2: IF ST>4 THEN DM = - 1: IF ST>6 THEN DM = 2 4622 IF ST>8 THEN DM = + 1: IF ST>9 THEN DM = 2 4624 IF ST>11 THEN DM = 3 4630 IF FN B(5) + DM>8 THEN B2 = 1:B$ = "C" 4640 IF B1 = 1 AND B2 = 1 THEN B$ = "H" 4650 GOTO 6000 4700 REM ZHODANI BASES 4710 DM = 2: IF ST>4 THEN DM = 1: IF ST>6 THEN DM = 0: IF ST>9 THEN 4740 4720 IF FN B(6) + DM>8 THEN B1 = 1:B$ = "Z" 4730 IF ST<5 AND FN B(4)>10 THEN B1 = 2:B$ = "Y" 4740 REM 4750 GOTO 6000 4800 REM SOLOMANI BASES 4810 B2 = 0 4820 IF ST$<"C" AND FN B(5)>7 THEN B1 = 1 4830 IF B1 = 1 THEN B$ = "J" 4840 GOTO 6000 4900 REM DROYNE BASES 4910 IF ST$>"D" THEN 4950 4920 IF FN B(5) + (4 - ( ASC (ST$) - 64))>7 THEN B1 = 1:B$ = "P" 4930 IF GO = 6 THEN B1 = 2:B$ = "N" 4940 IF ( FN B(5) - 7) + TL>6 THEN B2 = 1:B$ = "Q" 4950 GOTO 6000 5000 REM HIVER BASES 5010 B0 = FN B(5):B1 = 0:B2 = 0 5020 IF ST$ = "A" AND B0<6 THEN B1 = 6 5030 IF ST$ = "A" AND B0>7 THEN B1 = 7: IF B0 = 12 THEN B1 = 8 5040 IF (ST$ = "B" OR ST$ = "C") AND B0<3 THEN B2 = 8 5050 IF ST$ = "B" AND (B0 = 10 OR B0 = 11) THEN B1 = 7 5060 IF ST$ = "B" AND B0 = 12 THEN B2 = 9 5070 IF ST$ = "C" AND (B0 = 10 OR B0 = 11) THEN B2 = 8 5080 IF ST$ = "C" AND B0 = 12 THEN B2 = 9 5090 IF ST$ = "D" AND (B0 = 2 OR B0 = 11) THEN B2 = 8 5100 IF ST$ = "D" AND B0 = 12 THEN B2 = 9 5110 IF ST$ = "E" AND B0 = 12 THEN B2 = 8 5120 IF ST$ = "X" AND B0 = 12 THEN B2 = 8 5130 IF B1 = 6 THEN B$ = "E" 5140 IF B1 = 7 THEN B$ = "L" 5150 IF B2 = 8 THEN B$ = "M" 5160 IF B2 = 9 THEN B$ = "F" 5170 GOTO 6000 6000 REM TRADE CLASSIFICATIONS 6010 TC$ = "": IF AL$ = "KK" AND NK = 1 THEN TC$ = TC$ + "NK " 6030 IF AL$ = "HV" AND NH = 1 THEN TC$ = TC$ + "NH " 6040 IF AL$ = "HV" AND NH = 1 AND PO>7 AND (AM = 3 OR AM = 4 OR AM = 10 OR AM = 11 OR AM = 12) THEN TC$ = TC$ + "FA " 6045 IF PO>8 THEN TC$ = TC$ + "HI " 6047 IF PO<4 THEN TC$ = TC$ + "LO " 6050 IF (AM<3 OR AM = 4 OR AM = 7 OR AM = 9) AND PO>8 THEN TC$ = TC$ + "IN " 6055 IF (AM<2 AND HY>0) THEN TC$ = TC$ + "IC " 6060 IF PO<7 THEN TC$ = TC$ + "NI " 6065 IF AM>9 AND HY>0 THEN TC$ = TC$ + "FL " 6070 IF ( LEFT$ (AL$,1) = "A" OR AL$ = "HV" OR AL$ = "KK") AND (AM = 6 OR AM = 8) AND (PO>5 AND PO<9) THEN TC$ = TC$ + "RI ": GOTO 6120 6080 IF LEFT$ (AL$,1) = "v" AND (AM = 6 OR AM = 8) AND (PO>5 AND PO<9) AND (GO<>7) THEN TC$ = TC$ + "RI ": GOTO 6120 6090 IF AL$ = "DR" AND (AM = 6 OR AM = 8) AND (PO>5 AND PO<9) THEN TC$ = TC$ + "RI ": GOTO 6120 6100 IF LEFT$ (AL$,1) = "Z" AND (TZ = 3 OR TZ = 4) AND (AM = 6 OR AM = 8) AND (PO>5 AND PO<9) THEN TC$ = TC$ + "RI ": GOTO 6120 6110 IF (AM = 6 OR AM = 8) AND (PO>5 OR PO<9) AND (GO>3 AND GO<10) THEN TC$ = TC$ + "RI " 6120 IF (AM>1 AND AM<6) AND HY<4 THEN TC$ = TC$ + "PO " 6130 IF HY = 10 THEN TC$ = TC$ + "WA " 6140 IF HY = 0 AND AM>1 THEN TC$ = TC$ + "DE " 6150 IF SI = 0 THEN TC$ = TC$ + "AS " 6160 IF AM = 0 AND SI<>0 THEN TC$ = TC$ + "VA " 6170 IF AL$ = "KK" AND (SI = 7 OR SI = 8) AND (AM = 6 OR AM = 8) AND (HY>2 AND HY<6) THEN TC$ = TC$ + "ST " 6180 IF (AM>3 AND AM<10) AND (HY>3 AND HY<9) AND (PO>4 AND PO<8) THEN TC$ = TC$ + "AG " 6190 IF AM<4 AND HY<4 AND PO>5 THEN TC$ = TC$ + "NA " 6200 IF PO = 0 AND GO = 0 AND LA = 0 THEN TC$ = TC$ + "BA " 6210 TC$ = LEFT$ (TC$ + " ",15) 6500 REM CREATE WORLD DATA STRING 6510 A$ = "": IF X<10 THEN A$ = "0" 6530 A$ = A$ + STR$ (X): IF Y<10 THEN A$ = A$ + "0" 6550 A$ = A$ + STR$ (Y) + " " 6560 IF HY<0 THEN HY = 0 6570 IF AM<0 THEN AM = 0 6580 A$ = A$ + ST$ + MID$ (HX$,SI + 1,1) + MID$ (HX$,AM + 1,1) + MID$ (HX$,HY + 1,1) 6590 A$ = A$ + MID$ (HX$,PO + 1,1) + MID$ (HX$,GO + 1,1) + MID$ (HX$,LA + 1,1) + "-" 6600 IF TL<0 THEN TL = 0 6610 A$ = A$ + MID$ (HX$,TL + 1,1) + " ":A$ = A$ + B$ + " " 6625 IF PO = 0 THEN DR$ = "" 6630 IF DR$<>"" THEN A$ = A$ + DR$ + " " + LEFT$ (TC$,12): GOTO 6650 6640 A$ = A$ + TC$ 6650 A$ = A$ + AL$ + " " 6660 IF TZ = 1 THEN A$ = A$ + "A " 6670 IF TZ = 2 THEN A$ = A$ + "R " 6680 IF TZ = 3 THEN A$ = A$ + "F " 6690 IF TZ = 4 THEN A$ = A$ + "U " 6700 IF TZ = 0 THEN A$ = A$ + " " 6710 IF GG = 0 THEN A$ = A$ + " " 6720 IF GG = 1 THEN A$ = A$ + "G " 7000 REM SAVE TO DISK 7010 R = R + 1 7020 PRINT CHR$ (4);"WRITE SECTOR, R";R 7030 PRINT A$ 7040 PRINT CHR$ (4) 7040 PRINT A$ 7070 NEXT Y: NEXT X 7090 REM SAVE FILE LENGTH 7100 PRINT CHR$ (4);"WRITE SECTOR, R0" 7110 PRINT R 7120 PRINT CHR$ (4);"CLOSE" 7130 REM SAVE FILE PARAMETERS 7140 INPUT "NAME THIS FILE? > ";FI$ 7150 PRINT CHR$ (4);"RENAME SECTOR,";FI$ 7160 PRINT CHR$ (4);"OPEN ";FI$;"@" 7170 PRINT CHR$ (4);"WRITE ";FI$;"@" 7180 PRINT 9: PRINT R: PRINT 49 7190 PRINT "HEX ": PRINT 4 7200 PRINT "UPP ": PRINT 9 7210 PRINT "BASES ": PRINT 1 7220 PRINT "TRADE CLA ": PRINT 14 7280 PRINT "ALLEG ": PRINT 2 7290 PRINT "TRAVEL ZO ": PRINT 1 7300 PRINT "GAS GIANT ": PRINT 1 7310 PRINT "TRADEWRLD ": PRINT 1 7320 PRINT "EXPLORED? ": PRINT 1 7390 PRINT CHR$ (4);"CLOSE" 7400 END