0 'NAV2.BA by Gary L. Van Balen 2 'MH=54:LL=280:MDL=0:GOTO 16 'IF FLOPPY OR NODE ROM IN M100/102 4 IF PEEK(1)<>171 THEN 10 6 MH=118:LL=600:MDL=2 'FOR M200 8 IF MDL=2 THEN 16 10 CLEAR 100,62750 'FOR TXTCAL 12 GOSUB 460 14 MH=54:LL=280:MDL=1 'FOR M100/102 16 'SET DFULT VLUS 18 SPD=60:DST=0:FUL=13:MPG=40 20 'LO FUL FLG 22 LFUL=5 24 'DSPLY TITLE SCRN 26 GOSUB 400 28 'SETUP DSPLY & GET INTAL VLUS 30 ETA$="":CLS 32 KEY ON 34 GOSUB 354 36 FN$="RAM:"+MAP$+".DO" 38 GOSUB 146 40 FKFLG=2:GOSUB 168 42 GOSUB 340 44 GOSUB 62 46 GOSUB 74 48 GOTO 184 50 'DRW DST INDCTR 52 IF DST(LB+MH) THEN TP=0:GOTO 58 56 TP=(MH-(INT(DST+.5)-LB)) 58 LINE (3,TP)-(4,MH),1,B 60 RETURN 62 'UPDATE DATA WNDW 64 PRINT@72,"";:PRINT USING"#####.#";SPD; 66 PRINT@112,"";:PRINT USING"#####.#";DST; 68 PRINT@152,"";:PRINT USING"#####.#";FUL; 70 PRINT@192,"";:PRINT USING"#####.#";MPG; 72 RETURN 74 'FIND MAP BASE USNG DST 76 BL=(INT(DST/(MH-4)))*(MH-4) 78 LB=BL 80 'DSPLY MILSTNS USNG LB,FN$ 82 FOR Y=1 TO (LL-39) STEP40 84 PRINT@Y," "; 86 NEXT Y 88 LINE(3,0)-(5,MH),0,BF 90 OPEN FN$ FOR INPUT AS 1 92 INPUT#1,MLS,MLSTN$ 94 MLS=INT(MLS) 96 IF LEN(MLSTN$)>15 THEN MLSTN$=LEFT$(MLSTN$,15) 98 IF MLS9999 OR MLSTN$="END" OR MLSTN$="end" THEN 140 102 IF MLS>(LB+MH) THEN 140 104 YP=MH-(MLS-LB) 106 LINE(3,YP)-(5,YP) 108 S=(INT(YP/8))*40 110 PRINT@(1+S)," "; 112 PRINT@(1+S),MLS:PRINT@(7+S),MLSTN$ 114 'FIND ETA 116 T$=TIME$ 118 H=VAL(LEFT$(T$,2))+VAL(MID$(T$,4,2))/60+VAL(RIGHT$(T$,2))/3600 120 DH=ABS((MLS-DST)/SPD) 122 ETA=H+DH 124 IF ETA>24 THEN ETA=ETA-24 126 HTA$=RIGHT$(STR$(FIX(ETA)),2) 128 IF VAL(HTA$)<10 THEN HTA$="0"+RIGHT$(HTA$,1) 130 MTA$=RIGHT$(STR$(FIX(60*(ETA-FIX(ETA)))),2) 132 IF VAL(MTA$)<10 THEN MTA$="0"+RIGHT$(MTA$,1) 134 ETA$=HTA$+":"+MTA$ 136 PRINT@(23+S),ETA$; 138 GOTO 92 140 CLOSE 1 142 GOSUB 50 144 RETURN 146 'DRW DST SCALE 148 FOR Y=0 TO MH 150 PSET (2,Y) 152 NEXT Y 154 FOR Y=MH TO 0 STEP-5 156 LINE (1,Y)-(2,Y),1 158 NEXT Y 160 FOR Y=MH TO 0 STEP-10 162 PSET (0,Y) 164 NEXT Y 166 RETURN 168 'DRW FKEYS 170 ON FKFLG GOTO 172,176,180 172 PRINT@LL,""; 174 RETURN 176 PRINT@LL," GO ETAs SPD+ SPD- DST+ DST- FUL+ FUL-"; 178 RETURN 180 PRINT@LL,"STOP ETAs SPD+ SPD- DST+ DST- FUL+ FUL-"; 182 RETURN 184 'MAIN LOOP 186 ON KEY GOSUB 190,206,212,220,228,236,244,252 188 GOTO 260 190 'F1 192 BEEP 194 IF FKFLG=2 THEN FKFLG=3 ELSE FKFLG=2 196 GOSUB 168 198 IF FKFLG=3 THEN ST$=TIME$ 200 LH=VAL(LEFT$(ST$,2))+VAL(MID$(ST$,4,2))/60+VAL(RIGHT$(ST$,2))/3600 202 GOSUB 80 204 RETURN 206 'F2 208 GOSUB 80 210 RETURN 212 'F3 214 SPD=SPD+.5 216 PRINT@72,"";:PRINT USING"#####.#";SPD; 218 RETURN 220 'F4 222 SPD=SPD-.5 224 PRINT@72,"";:PRINT USING"#####.#";SPD; 226 RETURN 228 'F5 230 DST=DST+.1 232 PRINT@112,"";:PRINT USING"#####.#";DST; 234 RETURN 236 'F6 238 DST=DST-.1 240 PRINT@112,"";:PRINT USING"#####.#";DST; 242 RETURN 244 'F7 246 FUL=FUL+.1 248 PRINT@152,"";:PRINT USING"#####.#";FUL; 250 RETURN 252 'F8 254 FUL=FUL-.1 256 PRINT@152,"";:PRINT USING"#####.#";FUL; 258 RETURN 260 A$=INKEY$ 262 IF MDL=2ORMDL=0 THEN 266 264 IF A$="t"ORA$="T" THEN GOSUB 448 266 IF A$=CHR$(81) THEN 316 268 IF A$=CHR$(28) THEN MPG=MPG+.1:GOSUB 62 270 IF A$=CHR$(29) THEN MPG=MPG-.1:GOSUB 62 272 IF A$=CHR$(30) THEN LB=LB+50:GOSUB 80 274 IF A$=CHR$(31) THEN LB=LB-50:GOSUB 80 276 IF A$=CHR$(32) THEN CLS:GOSUB 146:GOSUB 340:GOSUB 62:GOSUB 74:GOSUB 168:GOSUB 50 278 T$=TIME$ 280 PRINT@230,T$; 282 IF FKFLG=2 THEN 184 284 'FIND CHNG IN DST & FUL 286 NH=(VAL(LEFT$(T$,2)))+(VAL(MID$(T$,4,2))/60)+(VAL(RIGHT$(T$,2))/3600) 288 IF NHLFUL THEN BFLG=0:GOTO 306 302 CALL17001 304 IF BFLG<5 THEN BFLG=BFLG+1:BEEP 306 PRINT@152,"";:PRINT USING"#####.#";FUL; 308 CALL17006 310 IF LBLB+(MH-1) THEN GOSUB 74 312 IF (DST-OLDST)=>.5 THEN OLDST=DST:GOSUB 50 314 GOTO 184 316 'QUIT TO MENU 318 BEEP:GOSUB 322 320 KEY OFF:CLS:MENU 322 'WRITE NAVDAT.DO 324 OPEN "RAM:NVDAT.DO" FOR OUTPUT AS 1 326 PRINT#1,SPD 328 PRINT#1,DST 330 PRINT#1,FUL 332 PRINT#1,MPG 334 PRINT#1,"It's ok to kill this file when finished with NAV2.BA" 336 CLOSE 1 338 RETURN 340 'DRW DATA WNDW 342 LINE(170,1)-(236,54),1,B:LINE(172,3)-(234,52),1,B 344 PRINT@69,"SPD"; 346 PRINT@109,"DST"; 348 PRINT@149,"FUL"; 350 PRINT@189,"MPG"; 352 RETURN 354 'SET INITL VLUS 356 CLS:FILES 358 PRINT@LL,"Name of MAP(.DO) file to use"; 360 INPUT MAP$:CLS 362 IF RIGHT$(MAP$,3)=".DO" THEN 354 364 IF MAP$="" THEN 354 366 'CHK TO SEE IF THERE'S AN NVDAT.DO 368 ONERROR GOTO 442 370 OPEN "RAM:NVDAT.DO" FOR INPUT AS 1 372 IF FNF=1 THEN FNF=0:GOTO 378 374 INPUT#1,SPD,DST,FUL,MPG 376 CLOSE 1 378 PRINT@11,"INITIAL SETTINGS" 380 PRINT@283,"Press RETURN to use default value."; 382 PRINT@90,"SPD =";:PRINT USING "####.#";SPD;:PRINT" ->"; 384 INPUT SPD 386 PRINT@130,"DST =";:PRINT USING "####.#";DST;:PRINT" ->"; 388 INPUT DST 390 PRINT@170,"FUL =";:PRINT USING "####.#";FUL;:PRINT" ->"; 392 INPUT FUL 394 PRINT@210,"MPG =";:PRINT USING "####.#";MPG;:PRINT" ->"; 396 INPUT MPG 398 CLS:RETURN 400 'TITLE SCRN 402 CLS:PRINT:PRINT " NAV2.BA HIGHWAY NAVIGATION" 404 PRINT " Version 2.0" 406 PRINT " (c) 1991 Gary L. Van Balen" 408 PRINT " All Rights Reserved" 410 PRINT " Distribution By Permission Only" 412 PRINT " Contact Author on CIS [71500,611]" 414 GOSUB 428 416 CLS:BEEP:PRINT@93,"*** WARNING ***" 418 PRINT@160,"Using your portable computer while" 420 PRINT "operating a motor vehicle is hazardous" 422 PRINT "to your health and the health of" 424 PRINT "others! Do so at your own risk."; 426 GOSUB428:RETURN 428 'DELAY 430 A$=INKEY$ 432 IF A$<>"" THEN 438 434 IF T>300 THEN 438 436 T=T+1:GOTO 430 438 T=0 440 RETURN 442 'ERR HNDLNG 444 IF ERR=52 THEN FNF=1 446 RESUME NEXT 448 'EXIT TO TEXT 450 OPEN FN$ FOR APPEND AS 1 452 CLOSE 1 454 CALL TX,,VARPTR(FN$) 456 A$=CHR$(32) 458 RETURN 'TO NAV2.BA 460 'TXTCAL BY MO BUDLONG 462 TX = 62750 464 FOR A = TX TO TX+65 466 READ N:POKE A,N:NEXT A 468 D=INT((TX+48)/256):C=(TX+47)-(256*D):POKE TX+42,C: POKE TX+43,D 470 RETURN 472 DATA 229,213,197,245,126, 35, 94, 35, 86,235 474 DATA 95,205, 11, 76,205,175, 32,202,237, 20 476 DATA 35, 94, 35, 86, 42,157,251,229, 33, 0 478 DATA 0, 34,231,246, 57, 34,157,251,213, 62 480 DATA 1, 33, 77,245,195,113, 95,225,225, 34 482 DATA 157,251,205,156,108,175, 50, 80,246, 61 484 DATA 50,173,250,195,237, 20