10 REM COPYRIGHT 1991 - COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 20 IF DK=0 THEN DK=1:LOAD"WORLD.ML",8,1 30 Y=INT(32768/256):X=INT((32768/256-Y)*256+.5):POKE55,X:POKE56,Y:CLR:MD=0 40 POKE53280,6:POKE53281,6:OX=0:OY=0:SK=200/180:RESTORE 50 IF MD=1 THEN MD=0:SYS 49152+6:REM TEXT MODE 60 PRINT"[147]":A$="[215]ORLD[205]AP 64":GOSUB 870:PRINT 70 PRINT"[159]":A$="[195]OPYRIGHT 1991":GOSUB 870 80 A$="[195]OMPUTE [208]UBLICATIONS [201]NTL, [204]TD":GOSUB 870 90 A$="[193]LL [210]IGHTS [210]ESERVED":GOSUB 870:PRINT:PRINT:PRINT"[158]" 100 SS=90:A$="[208]LEASE [195]HOOSE:":GOSUB 870:PRINT 110 A$="([205])ERCATOR [208]ROJECTION":GOSUB 870 120 A$="([197])QUATORIAL [207]RTHOGRAPHIC [208]ROJECTION":GOSUB 870 130 A$="([208])OLAR [207]RTHOGRAPHIC [208]ROJECTION":GOSUB 870 140 A$="([199])RAPHIC [211]CREEN":GOSUB 870 150 A$="([211])AVE [199]RAPHIC":GOSUB 870:A$="([204])OAD [199]RAPHIC":GOSUB 870 160 GET A$:IF A$="" THEN 160 170 FL=0:B$="MEPGSL" 180 FOR X=1 TO LEN(B$):IF A$=MID$(B$,X,1) THEN FL=X 190 NEXT:IF FL=0 THEN 160 200 ON FL GOTO 450,230,560,900,770,810 210 REM ------------------------------- 220 REM EQUATORIAL ORTHOGRAPHIC 230 PRINT:A$="[195]ENTER (0-360)?":GOSUB 870:INPUT CC 240 IF MD=0 THEN MD=1:SYS 49152+3:REM SWITCH TO THE GRAPHICS SCREEN 250 SYS 49152+12:REM CLEAR SCREEN 260 R1=SS+127:S1=96 270 FOR RS=(null)/100 TO 2*(null) STEP (null)/100 280 WX=R1:WY=S1:R1=127+SS*COS(RS):S1=96+SS*SIN(RS) 290 X1=WX*SK+OX:Y1=(WY*SK+OY)*5/6 300 X2=R1*SK+OX:Y2=(S1*SK+OY)*5/6 310 GOSUB 960:NEXT:R1=0:S1=0 320 READ WX,WY:IF WX=-1 AND WY=-1 THEN 40 330 IF WX=99 AND WY=99 THEN N3=0:N4=0:GOTO 320 340 WX=WX*15-30-CC:IF WX>180 THEN WX=WX-360 350 IF WX<-180 THEN WX=WX+360 360 IF WX>0 OR WX<-180 THEN N3=0:N4=0:GOTO 320 370 GOSUB 410:IF N3=0 AND N4=0 THEN 400 380 X1=N1*SK+OX:Y1=(N2*SK+OY)*5/6 390 X2=N3*SK+OX:Y2=(N4*SK+OY)*5/6:GOSUB 960 400 N3=N1:N4=N2:GOTO320 410 IR=WX*(null)/180:IS=WY*(null)/180 420 N1=COS(IS)*SS*COS(IR)+127:N2=192-(SS*SIN(IS)+96):RETURN 430 REM ------------------------------- 440 REM MERCATOR PROJECTION 450 SS=255/360:IF MD=0 THEN MD=1:SYS 49152+3 460 SYS 49152+12:REM CLEAR SCREEN 470 READ WX,WY:IF WX=-1 AND WY=-1 THEN 40 480 IF WX=99 AND WY=99 THEN R1=0:S1=0:GOTO 470 490 WY=192-((WY+SGN(WY)*(ABS(WY/8)+ABS(WY*WY/150)))/1.1*SS+96):WX=WX*15*SS 500 IF R1=0 AND S1=0 THEN 530 510 X1=R1*SK+OX:Y1=(S1*SK+OY)*5/6 520 X2=WX*SK+OX:Y2=(WY*SK+OY)*5/6:GOSUB 960 530 R1=WX:S1=WY:GOTO 470 540 REM ------------------------------- 550 REM POLAR ORTHOGRAPHIC 560 PRINT:A$="([206])ORTH OR ([211])OUTH [208]OLE?":GOSUB 870 570 GOSUB 1080:IF A$="N" THEN HH=1 580 R1=SS+127:S1=96:IF MD=0 THEN MD=1:SYS 49152+3 590 SYS 49152+12:REM CLEAR SCREEN 600 FOR RS=(null)/100 TO 2*(null) STEP (null)/100 610 WX=R1:WY=S1:R1=127+SS*COS(RS):S1=96+SS*SIN(RS) 620 X1=WX*SK+OX:Y1=(WY*SK+OY)*5/6 630 X2=R1*SK+OX:Y2=(S1*SK+OY)*5/6 640 GOSUB 960:NEXT:R1=0:S1=0 650 READ WX,WY:IF WX=-1 AND WY=-1 THEN 40 660 IF WX=99 AND WY=99 THEN R1=0:S1=0:GOTO 650 670 IF HH=1 AND WY<0 THEN R1=0:S1=0:GOTO 650 680 IF HH=0 AND WY>0 THEN R1=0:S1=0:GOTO 650 690 RI=WX*15*(null)/180:SI=WY*(null)/180 700 WX=127+COS(SI)*SS*SIN(RI):WY=96+COS(SI)*SS*COS(RI):IF HH=0 THEN WY=191-WY 710 IF R1=0 AND S1=0 THEN 740 720 X1=R1*SK+OX:Y1=(S1*SK+OY)*5/6 730 X2=WX*SK+OX:Y2=(WY*SK+OY)*5/6:GOSUB 960 740 R1=WX:S1=WY:GOTO650 750 REM ------------------------------- 760 REM SAVE ROUTINE 770 IF MD=0 THEN MD=1:SYS 49152+3 780 SYS 49152+15:GOTO 40 790 REM ------------------------------- 800 REM LOAD ROUTINE 810 PRINT"[147][215]HAT IS THE NAME OF THE PICTURE?":INPUT A$ 820 X=LEN(A$):POKE 53050,X:FOR Y=1 TO X:POKE 53050+Y,ASC(MID$(A$,Y,1)):NEXT 830 IF MD=0 THEN MD=1:SYS 49152+3 840 SYS 49152+18:GOTO 900 850 REM ------------------------------- 860 REM CENTER TEXT 870 FOR X=1 TO 20-LEN(A$)/2:PRINTCHR$(32);:NEXT:PRINTA$:RETURN 880 REM ------------------------------- 890 REM SHOW BITMAP 900 IF MD=0 THEN MD=1:SYS 49152+3 910 GOSUB 1080 920 IF MD=1 THEN MD=0:PRINT"[147]":SYS 49152+6:REM TEXT MODE 930 GOTO 40 940 REM ------------------------------- 950 REM DRAW LINE 960 X1=INT(X1+.5):Y1=199-INT(Y1+.5) 970 X2=INT(X2+.5):Y2=199-INT(Y2+.5) 980 IF X1>319 OR X2>319 OR Y1>199 OR Y2>199 THEN RETURN 990 V(2)=INT(X1/256):V(1)=INT((X1/256-V(2))*256+.5) 1000 V(4)=INT(Y1/256):V(3)=INT((Y1/256-V(4))*256+.5) 1010 V(6)=INT(X2/256):V(5)=INT((X2/256-V(6))*256+.5) 1020 V(8)=INT(Y2/256):V(7)=INT((Y2/256-V(8))*256+.5) 1030 FOR Y=0 TO 7:POKE 53000+Y,V(Y+1):NEXT 1040 SYS 49152+9:REM DRAW THE LINE 1050 RETURN 1060 REM ------------------------------- 1070 REM WAIT FOR KEY 1080 GET A$:IF A$="" THEN 1080 1090 RETURN 1100 REM GEOGRAPHICAL DATA 1110 DATA 0,25,.5,25,.75,21,.83,22,1.15,8,1.4,10,1.4,15.5,1.9,22,2 1120 DATA 22,2.1,23,2.16,20,2.3,19 1130 DATA 2.3,15.2,2.5,15.8,2.6,11,2.56,8.5,2.65,8.7,2.74 1140 DATA 3,2.95,1.5,2.9,6,2.7,7,2.65,11 1150 DATA 2.7,14,2.74,13,2.83,12.5,2.83,11,3,10.5,3,8,3.3,11.5,3.32,14,3.15,18 1160 DATA 3.1,20.5,3.23,22,3.38,22,3.56,23,3.65,23.5,4,25.5,4,26.5,4.13,29 1170 DATA 4.11,31.5,3.95,36,4.2,37.5,4.05,38,3.9,37.2,3.77,40,3.87,40,4.1,41 1180 DATA 4.1,39.5,4.35,40,4.35,38,4.5,38,4.44,35,4.6,36,4.6,37.5,4.54,38.5 1190 DATA 4.8,43,4.95,42.8,5.4,49,5.47,52,5.47,53,5.4,54,5.15,53.5,5.57 1200 DATA 59.7,5.95,59.5,5.97,60,6.15,59,6.32,59.7,6.3,60 1210 DATA 6.5,62,6.75,62.3,6.75,60.5,6.9,62 1220 DATA 6.9,61,6.45,56,6.5,51,6.6,52,6.67,53,6.8 1230 DATA 53,6.8,58,6.9,60,7.45,60,8,62.5 1240 DATA 7.72,65,7.9,64.6,8.05,65.5,8.25,65.8,8.5,64.8,8.5 1250 DATA 65.3,8.65,65.3,8.5,66.7,8.4,66.6,8.38,67.2,8.13 1260 DATA 68,7.4,70,7.5,68.5,7.35,68,7.28,69.5,6.7 1270 DATA 69.5,6.7,71,6.2,71,6,71.5,5.35,72,5.37,70,4.9,70,4.85,69,4.6 1280 DATA 71.5,3.5,73.5,3,72,3.5,75,3.48,76.5,3.15 1290 DATA 76.5,3,77.5,2.73,77,2.75,76.5,2,75.5 1300 DATA 1.7,74.5,1.7,74,1.47,74,1.47,73,.6,73.3,.5,71.5,.5,69,0,70,99 1310 DATA 99,11,69,10.45,70,9.55,71,9.15,70,9.1,69 1320 DATA 8.95,69,8.9,68.5,9.1,67.5,9.2,67.5,9.2 1330 DATA 66.5,9.07,66.5,9.05,67,8.85,66.3,8.8,66.2,8.9,65.5,9.2,65.7,9.3,66 1340 DATA 9.35,64.5,9.27,64.5,8.9,62,9,60.5,9.2,60 1350 DATA 9.25,60,9.3,60.5,9.3,58.5,9.4,59 1360 DATA 9.55,58.5,9.5,57,9.2,55,9,54,9.48,56,9.75,59,9.75,60,9.95,61.5,9.8 1370 DATA 60.5,9.8,59.3,10.2,61,10.35,61,10.4,60,10.65,59.5,10.9,58.5,11,59,11.1 1380 DATA 59,11.45,51.5,11.8,50.5,11.85,49.5,11.7,49.5,11.75,47,11.7,42.5 1390 DATA 11.77,38.5,11.85,37.5,12,35,12.2,34,12.35 1400 DATA 29,12.4,28.5,12.45,27,12.42,27,12.42 1410 DATA 27.5,12.5,25,12.55,24,12.6,22.5,12.67,23,12.55,25.5,12.4,30,12.38,32 1420 DATA 12.48,32,12.51,30,12.75,26,12.75,25 1430 DATA 12.92,22,13,19,13.3,16.5,13.6,16,13.7 1440 DATA 16.5,13.97,14,14,14,14.5,13,14.25,11,14.25,10.5,14.47,9,14.65,8.5 1450 DATA 14.77,9,14.77,8,14.8,7.5,14.82,5,14.8 1460 DATA 4,14.7,1,14.6,-1.5,14.7,-2,14.6,-4 1470 DATA 14.65,-5,14.7,-7,14.75,-9.5,14.87,-14,15.37,-17,15.3,-25,15.25,-30 1480 DATA 15.2,-33,15.2,-37,15.1,-38,15.05,-40.5,15.2,-40,15.1,-46,15,-46.6,15.1 1490 DATA -47,15.02,-48,15.06,-51.5,15.1,-51,15.15,-51.8,15.15,-52,15.4,-51 1500 DATA 15.35,-50.5,15.55,-48,15.6,-47.3,15.5 1510 DATA -46,15.5,-45.4,15.53,-45,15.6,-45,15.65 1520 DATA -42.5,15.7,-42.5,15.65,-43,15.62,-41.5,15.75,-41,15.8,-40.5,16.1 1530 DATA -39.5,16.2,-37,16.1,-36,16.05,-35,16.45 1540 DATA -35.5,16.55,-33,16.65,-30.5,16.75 1550 DATA -28,16.77,-24.5,17.1,-23,17.25,-22.5,17.4,-19,17.45,-16,17.46 1560 DATA -13,17.65,-7,17.6,-5.5,17.5,-3,17.1,-2.5,16.7,0 1570 DATA 16.6,0,16.66,1.5,16.62,1.5,16.6 1580 DATA 5,16.55,5.5,16.2,6,15.8,11,15.5,10.5,15.45,11.5,15.3,11.5,15.3,12.5 1590 DATA 14.95,11.5,14.8,9,14.77,10,14.5,10 1600 DATA 14.45,11,14.47,15,14.45,16,14.1,16,14.2 1610 DATA 17,14.25,21.5,14,21.5,13.95,19.5,13.7,19,13.6,20,13.5,23,13.55,28 1620 DATA 13.6,30,13.9,30,14,29,14.1,29,14,31,14.35 1630 DATA 31,14.4,30,14.45,30,14.47,27,14.55 1640 DATA 25,14.6,25,14.6,27.5,14.55,31,14.9,37.5,14.9,38.5,15.1,40,15.4,41 1650 DATA 15.37,41,15.34,42,15.5,44.5,15.6,46 1660 DATA 15.53,44.5,15.45,44,15.8,46,15.65,46,15.6 1670 DATA 49,15.5,48.5,15.55,49,16,49,16.1,50,16.3,50.3,16.3,52,16.2,52,16.2 1680 DATA 53,16,53,15.7,60,15.6,59.7,15.6,59,15.45 1690 DATA 59,15.45,61,15.3,61.5,14.8,62,14.8,60 1700 DATA 14.75,59,14.8,58,14.85,56.5,14.75,55,14.8,51.5,14.7,51.5,14.65,52.5 1710 DATA 14.65,55,14.3,56,13.95,57,13.85,57,13.85 1720 DATA 59,13.75,59,13.77,62,14,64.5,14.2 1730 DATA 65.5,14.55,66,14.5,68.5,14.35,69,14.25,67,14.2,68.5,14,67.5,13.8,71 1740 DATA 13.6,70,13.8,68,12.9,68.5,12.35,68 1750 DATA 12.4,69,11.5,70.5,11,69,99,99,0,-68,.7 1760 DATA -68,.7,-69,1,-69.5,1.8,-67,3,-67,3.45,-66,4.1,-67.5,5,-67,5.8,-67.5 1770 DATA 5.8,-68,7.45,-70.5,6.9,-75,6.85,-77 1780 DATA 7,-78,6.7,-78,6.7,-82,10,-86,10,-85 1790 DATA 9.7,-84.5,9.7,-81,10.35,-80.5,9.5,-77,10.25,-78,10.25,-76,11.2,-75 1800 DATA 11.2,-75,11.5,-76,11.8,-73.5,13,-74,13.5 1810 DATA -72,13.6,-72.5,15.55,-72.5,15.45,-68.5 1820 DATA 15.6,-66,16.2,-63,15.6,-67,16,-73,16,-77,17.5,-78,18.8,-73,20,-70 1830 DATA 21.9,-70,23.75,-66,24,-68,99,99,3.6,-21 1840 DATA 3.6,-24,3.75,-32.5,3.7,-34,3.8,-34.3 1850 DATA 4.35,-33.5,4.8,-31.5,4.97,-33,5.1,-34,5.25,-33,5.45,-38.5,6,-37.5 1860 DATA 6.25,-29,6.3,-28,5.8,-19,5.55,-12 1870 DATA 5.5,-16.5,5.1,-14.5,5.2,-13,4.8,-12,4.6,-15 1880 DATA 4.45,-14.5,4.1,-19,3.6,-21,99,99,2.45,5,3,-6,3.1,-3,2.6,5,2.45,5,99 1890 DATA 99,3.35,1,3.4,-2,3.8,-2.5,3.95,.5,3.95 1900 DATA 5.5,3.85,6,3.35,1,99,99,3.1,-6.5,3.65,-7 1910 DATA 3.65,-6.5,3.1,-6,3.1,-6.5,99,99,4,0,4.3,.1,4,-5,4,0,99,99,4.8,-.5 1920 DATA 4.85,-3,5.2,-3.5,5.25,-7.5,5.55,-8,5.8 1930 DATA -7.5,5.9,-9.5,6.05,-9.5,5.7,-3,5.2,-1.5 1940 DATA 5.05,-2.5,5,0,4.8,-.5,99,99,7.55,-34,7.65,-36,7.6,-38,7.75,-39,7.9 1950 DATA -36.5,7.8,-36,7.55,-34,99,99,7.55,-39 1960 DATA 7.2,-45.5,7.35,-46,7.65,-40,7.55,-39,99,99 1970 DATA 5.7,-41,5.8,-43.5,5.95,-43,5.9,-41.5,5.7,-41.5,99,99,17.6,84,15.5,81 1980 DATA 15.6,80,15.1,79.5,15.5,76.5,16 1990 DATA 77,16.55,63,16.75,61,17.1,60.5,17.3,64.5,18.3 2000 DATA 68.5,18.7,80,19.2,81,17.6,84,99,99,24,69,23.6,68.5,23.65,69,23.25,68 2010 DATA 23.25,67.5,23,68,23.1,68.5,22.9,68.75 2020 DATA 22.95,67,22.7,66.5,22.75,65.5,22.5 2030 DATA 66,22.55,65,22.15,67,22.6,66.5,22.7,67,21.9,71,21,69,20.75,64.5,20.4 2040 DATA 63,20.4,58,20.7,59,20.9,56,21.1 2050 DATA 56.5,21.15,59,21.25,59.5,21.2,60.5,21.2,62.5 2060 DATA 21.47,65,21.7,65,21.72,64.5,21.45,63,21.55,60,22,60,21.6,59,21.65 2070 DATA 57.5,21.5,58,21.4,55.5,20.7,55.5 2080 DATA 20.75,57,20.6,56.5,20.7,55,20.4,54,19.75 2090 DATA 49.5,19.9,46,19.87,43.5,19.4,44,19.45,42.5,19.45,38,19.55,38.5,19.6 2100 DATA 37,19.85,37.5,20.2,42,20.2,44,20.7,45 2110 DATA 20.73,43,21.1,40.5,21.03,39,21.15,40 2120 DATA 21.15,41,21.25,40.5,20.8,45,21,45,21.35,42,21.45,36,21.6,36.5,21.55 2130 DATA 39,21.8,40,21.85,36,22.45,36,22.3,31 2140 DATA 21.8,31,21.4,32.5,21.4,30,20.8,32.5,20.75 2150 DATA 36,19.85,35,19.6,35.5,19.45,33,19.35,29,19.15,28,18.8,21,18.9,21,18.9 2160 DATA 16,18.8,16,19,12,19.5,5,20.25,6.5 2170 DATA 20.4,5,20.6,5,20.65,4,20.6,-1,20.75,-5.5 2180 DATA 20.9,-11,20.8,-12,20.75,-17.5,20.85,-18.5,21,-26,21.25,-32.5,21.2,-33 2190 DATA 21.35,-34,21.75,-33,22.25,-29,22.25 2200 DATA -20.5,22.4,-19.5,22.3,-19,22.75,-16 2210 DATA 22.75,-11.5,22.7,-5,23.2,4,23.4,12,23,11,22.7,15,22.2,30,22.25,28.5 2220 DATA 22.35,29,22.8,17,22.9,13,23.7,17.5 2230 DATA 24,23,23.7,25,23.6,24,23.25,30,23.4,30 2240 DATA 23.7,26.5,23.8,27,23.82,26,24,26,99,99,23.3,-12,22.9,-16,22.85,-22.5 2250 DATA 23,-21,23.2,-20.5,23.3,-12,99,99 2260 DATA 19.7,58,19.6,57,19.7,54,19.77,54,19.6,51 2270 DATA 20.05,52,20.1,53,19.8,55,19.9,57,19.75,57,19.8,58,19.7,58,99,99,19.5 2280 DATA 54.5,19.4,54.5,19.4,51.5,19.55,52 2290 DATA 19.6,54,19.5,54.5,99,99,18.5,66,18.4,65.5 2300 DATA 18.7,63,19.1,64.5,19,65.5,18.55,65,18.5,66,99,99,15.55,62,15.65,64 2310 DATA 15.5,66,15.9,66,14.9,74,14.1,74,14 2320 DATA 73,14.55,71,14.97,71.5,15.05,70,15,65,14.8 2330 DATA 65,14.8,64.5,15.1,64.5,15.55,62,99,99,15.2,84,13.75,82,13.85,79 2340 DATA 14.25,79,13.9,77,13.6,77.3,13.9 2350 DATA 76.5,13.9,75,14.6,75,14.65,75.7,14,76,14.65,76.5 2360 DATA 15,79,15.9,83.5,15.2,84,99,99,13.25,71,12,74.5,11.7,74.5,11.75,73 2370 DATA 12,73.5,12.4,70,13.25,71,99,99,5.5 2380 DATA 45,5.7,43.5,5.6,42,5.45,42.5,5.5,45,99,99 2390 DATA 5.4,41,5.5,40,5.4,36,4.7,32,4.6,33,5.3,37,5.4,41,99,99,5.55,54,5.6 2400 DATA 49,5.55,49,5.5,46,5.5,52.5,5.55,54 2410 DATA 99,99,2.4,81,2.1,80.5,2.7,78.5,2.65,78,3 2420 DATA 78.5,3,79,2.9,79.5,2.85,79,2.85,80,2.4,81,99,99,1.4,10.5,1.4,7.5,1.5 2430 DATA 7,1.5,9.5,1.4,10.5,99,99,9.7,19 2440 DATA 9.65,19,9.65,20,9.7,19,99,99,20.75,79,20.9 2450 DATA 78,21.2,78,20.9,77.5,21.15,77,21.3,78,21.4,78,21.4,77.5,21.55,77.5 2460 DATA 21.1,79,21.75,79,21.85,80,21.2,80 2470 DATA 20.75,79,99,99,24,74.5,23.75,73,23.75,72,23.8 2480 DATA 71,23.5,71.5,23.75,75,24,76,99,99,0,76,.7,77,.7,76.5,0,75,99,99,22 2490 DATA 47,21.8,42,21.9,41,22.45,42,22.55,41 2500 DATA 22.8,41.5,22.8,42.5,22.55,45,22.65,47,22.3 2510 DATA 46,22.5,45,22.25,45,22.1,46.5,22,47,99,99,14.4,22.5,14.55,22.5,15.05 2520 DATA 20,14.8,19.5,14.55,22,14.4,22,99,99 2530 DATA 15.1,18,15.4,18.5,15.1,20,15.1,18,99,99 2540 DATA 16.25,50,16.05,47.5,16.5,47,16.22,49,16.25,50,99,99,15.2,-52,15.4 2550 DATA -53.5,15.6,-54,15.5,-53,15.45,-51.5 2560 DATA 99,99,23.5,47.5,23.2,46.7,23.1,45,23.4 2570 DATA 40,23.3,37,23.55,35.5,23.65,36,23.6,40 2580 DATA 23.7,39.5,23.65,42,23.4,45,23.65,45.5,23.5,47.5,-1,-1