REM/Gate40.100/Honohan/11-Aug-90 REM modified for PBASIC by BJ Gleason NUMFMT="% g ":SSIZE=80 CLS P$="GATE! Global Air Time Estimator " FOR K=1TO 32:PRINT MID$(P$,K,1); FOR D=1TO 5:NEXT:NEXT:PRINT Z$="+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+" FOR K=1TO 31:PRINT MID$(Z$,K,1); FOR D=1TO 5:NEXT:NEXT:PRINT rem P=3.14159265358979 J=Pi/180:Q=180/Pi:E=24880 I=43:DIM X$(I),n$(i) FOR K=1TO I READ X$(K),n$(K):PRINT LEFT$(X$(K),3)+" "; NEXT 114PRINT:A$="1st":B$="2nd" PRINT"ITY "; PRINT"EGREES "; PRINT"UMERIC "; PRINT"UIT ?"; 1 k$=inkey$:if k$="" then goto 1 : rem INPUT K$ if asc(k$)=27 then if isrun then run "menu" else end IF K$="c"THEN GOSUB 200:if a$=b$ then 114 else GOTO 130 IF K$="d"THEN GOSUB 182:GOTO 130 IF K$="q"THEN if isrun then run "menu" else end if k$<>"n"then 114 CLS PRINT"nUMERIC" PRINT INPUT">1st Lat";W INPUT"> Lon";X:XX=X INPUT">2nd Lat";Y INPUT"> Lon";Z:ZZ=Z 130A=SIN(W*J)*SIN(Y*J) A=A+COS(W*J)*COS(Y*J)*COS((Z-X)*J) IF(-A*A+1)<=0THEN d=180 else D=(-ATN(A/SQR(-A*A+1))+(Pi/2))*Q N=D*(10800/Pi)*J:M=D*(.5*(E/Pi))*J B=SIN(Y*J)-SIN(W*J)*COS(D*J) IF(SIN(D*J)*COS(W*J))=0THEN C=0:GOTO 141 B=B/(SIN(D*J)*COS(W*J)) IF(-B*B+1)<=0THEN C=0:GOTO 141 C=(-ATN(B/SQR(-B*B+1))+(Pi/2))*Q IF SIN((Z-X)*J)>=0THEN C=360-C 141C$="^":A=.603602:B=.001821 IF C>000THEN C$="n" IF C>045THEN C$="e" IF C>135THEN C$="s" IF C>225THEN C$="w" IF C>315THEN C$="n" IF C$="e"THEN A=.625789:B=.001758 IF C$="s"THEN A=.668288:B=.001757 IF C$="w"THEN A=.598434:B=.001955 IF M<0150THEN A=.324867:B=.003736 T=A+B*M:S=M/T O=INT((XX+7.5)/15)-INT((ZZ+7.5)/15) DA=1:LV=9:AR=LV+T+O 154IF AR>24THEN AR=AR-24:DA=DA+1:GOTO 154 155IF AR<00THEN AR=AR+24:DA=DA-1:GOTO 155 HR=INT(AR):MN=INT((AR-HR)*60+.5) W$="montuewedthufrisatsun" FOR WD=1TO 7 IF WD=DA THEN D$=MID$(W$,WD*3-2,3) NEXT L$=MID$(STR$(HR),2) R$=MID$(STR$(MN),2) IF LEN(L$)<2THEN L$="0"+L$ IF LEN(R$)<2THEN R$="0"+R$ T$=L$+":"+R$ W=INT(W*10+.5)/10 X=INT(X*10+.5)/10 Y=INT(Y*10+.5)/10 Z=INT(Z*10+.5)/10 T=INT(T*10+.5)/10 N=INT(N+.5) M=INT(M+.5) C=INT(C+.5) S=INT(S+.5) CLS PRINT BJA$;" to ";BJB$ PRINT A$;W;X,b$;Y;Z PRINT" ";N;"Nm";M;"Sm" PRINT" ";C;C$;" @";O;"TZs" PRINT" ";T;"Hrs @";S;"Mph" PRINT" LV mon 09:00 AR ";D$;" ";T$ GOTO 114 182CLS PRINT"dEGREES @ DDDmmSSx" PRINT INPUT">1st Lat";X$:GOSUB 190:W=V INPUT"> Lon";X$:GOSUB 190:X=V:XX=X INPUT">2nd Lat";X$:GOSUB 190:Y=V INPUT"> Lon";X$:GOSUB 190:Z=V:ZZ=Z RETURN 190IF LEN(X$)<8THEN X$="0"+X$:GOTO 190 V$=LEFT$(X$,LEN(X$)-5) V=VAL(V$) V$=MID$(X$,LEN(X$)-4,2) V=V+VAL(V$)/60 V$=MID$(X$,LEN(X$)-2,2) V=V+VAL(V$)/3600 IF RIGHT$(X$,1)="s"THEN V=-V IF RIGHT$(X$,1)="e"THEN V=-V RETURN 200X$="***" CLS FOR K=1TO I PRINT LEFT$(X$(K),3)+" "; NEXT:PRINT INPUT">1st cITY";X$ GOSUB 225:GOSUB 214 BJA$=BJC$ A$=X$:W=L:X=R:XX=X IF MID$(X$(K),4,1)="-"THEN XX=X-15 INPUT">2nd cITY";X$ GOSUB 225:GOSUB 214 BJB$=BJC$ B$=X$:Y=L:Z=R:ZZ=Z IF MID$(X$(K),4,1)="-"THEN ZZ=Z-15 RETURN 214L$=MID$(X$(K),5,2) BJC$=N$(k) L=VAL(L$) L$=MID$(X$(K),7,2) L=L+VAL(L$)/60 IF MID$(X$(K),9,1)="s"THEN L=-L R$=MID$(X$(K),10,3) R=VAL(R$) R$=MID$(X$(K),13,2) R=R+VAL(R$)/60 IF MID$(X$(K),15,1)="e"THEN R=-R RETURN 225FOR K=1TO I IF X$=LEFT$(X$(K),3)THEN RETURN NEXT X$="***":K=1:RETURN REM REM you can add your own airport here REM 3 Letter airport name, + or - REM followed by long/lat REM 229DATA"***+0000n00000w","Nowhere" 230DATA"ams-5223n00454e","Amsterdam" 231DATA"ath+3758n02343e","Athens" 232DATA"auc+3652s17446e","Auckland" 233DATA"bog+0434n07400w","Bogota" 234DATA"bue-3430s05820w","Buenos Aires" 235DATA"cai+3030n03115e","Cairo" 236DATA"chi+4152n08738w","Chicago" 237DATA"cop+5541n01234e","Copenhagen" 238DATA"fra+5007n00840e","Frankfurt" 239DATA"hel+6015n02503e","Hesinki" 240DATA"hkg+2211n11414e","Hong Kong" 241DATA"hnl-2120n15800w","Honolulu" 242DATA"hou+2945n09522w","Houston" 243DATA"joh+2610s02808e","Johannesburg" 244DATA"lax+3403n11814w","Los Angles" 245DATA"lim+1200s07700w","Lima" 246DATA"lis-3842n00910w","Lisbon" 247DATA"lon+5130n00005w","London" 248DATA"mad-4025n00345w","Madrid" 249DATA"mex-1924n09909w","Mexico City" 250DATA"mia+2547n08017w","Miami" 251DATA"mos+5545n03735e","Moscow" 2511data"npl+9000n00000e","North Pole" 252DATA"nyc+4045n07400w","New York City" 253DATA"osl+5953n01052e","Oslo" 254DATA"par-4852n00220e","Paris" 255DATA"pek+3950n11620e","Peking" 256DATA"pra+5005n01422e","Prague" 257DATA"rey-6410n02200w","Reykjavik" 258DATA"rio+2300s04312w","Rio" 259DATA"rom+4154n01230e","Rome" 260DATA"sfo+3747n12225w","San Fransico" 2601data"spl+9000s00000w","South Pole" 261DATA"sto+5920n01893e","Stockholm" 262DATA"syd+3353s15110e","Sydney" 263DATA"tah+1737s14927w","Thailand" 264DATA"tel+3203n03446e","Tel Aviv" 265DATA"tok+3542n13946e","Tokyo" 266DATA"vie+4820n01622e","Vienna" 267DATA"war+5213n02100e","Warsaw" 2671DATA"yrb+7444n09500w","Resolute Bay" 268DATA"zur+4722n00832e","Zurich"