Time Zones

This program determines time differences is global location, BASE to DESTINATION. These are listed in lines 530 – 540. The difference in CHR$ 1 and 2 were taken from the Telephone Directory. More may be added if desired. Time is entered in Greenwich Mean Time. ENTER will advance time 1 minute. BREAK will return to menu.

Hand holding a travel bag in front of national flags
Hand holding a travel bag in front of national flags
  10 GO SUB 5000
20 LET nc=1: REM NUMBER C
OLOR
30 LET tc=2: REM TITLE COLO
R
40 LET np=1: REM No. POSITI
ON
50 LET tl=0: REM WHOLE MENU
tl=1 means TITLE
ONLY
60 LET l=1: LET D=0
70 BORDER 6: INK 0: PAPER 7: C
LS
80 LET q$="BASE"
90 LET O$="▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒"
100 LET r$="▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒"
110 GO SUB 290: PAPER tc: BRIGH
T 1: PRINT AT l,(31-(LEN q$+2))/
2;"▒";O$( TO LEN q$);"▒"
120 PRINT AT l+1,(31-(LEN q$+2)
)/2;"▒"; INK 9;q$; INK 0;"▒"
130 PRINT AT l+2,(31-(LEN q$+2)
)/2;"▒";r$( TO LEN q$);"▒": PAPE
R 7: BRIGHT 0: IF tl=1 THEN RET
URN
140 RESTORE 530: FOR N=1 TO 13:
READ z$: PRINT AT 5+N,1; PAPER
nc; INK 9; BRIGHT 1;" ";CHR$ (64
+N);"-"; PAPER 7; BRIGHT 0;" ";z
$(3 TO ): NEXT N
150 RESTORE 540: FOR N=14 TO 26
: READ B$: PRINT AT N-8,16; PAPE
R nc; INK 9; BRIGHT 1;" ";CHR$ (
64+N);"-"; PAPER 7; BRIGHT 0;" "
;B$(3 TO ): NEXT N
155 ON ERR RESET
160 PRINT #1;TAB 9; PAPER 6; IN
K 0;" ENTER CHOICE ": GO SUB 290
170 PAUSE 0: LET tl=1: LET Z$=I
NKEY$
175 ON ERR GO TO 20
180 IF D=0 AND Z$<CHR$ 65 OR D=
0 AND Z$>CHR$ 90 THEN GO TO 20
190 IF D=1 AND Z$<CHR$ 65 OR D=
1 AND Z$>CHR$ 90 THEN GO TO 580
200 CLS
210 IF Z$="S" THEN GO TO 300
220 LET X=0
230 FOR n=65 TO 90
240 LET X=X+1
250 IF D=0 AND CHR$ n=Z$ THEN
GO TO 430
260 IF D=1 AND CHR$ n=Z$ THEN
GO TO 480
270 NEXT n
280 CLS : GO TO 20
290 PLOT 0,0: DRAW 0,175: DRAW
255,0: DRAW 0,-175: DRAW -255,0:
RETURN
300 ON ERR RESET : BORDER 6: PA
PER 6: CLS : PRINT AT 5,12; PAPE
R 1; INK 9; BRIGHT 1;" SAVE? ";A
T 10,7; PAPER 2;" 1 "; PAPER 6;
BRIGHT 0;" ON MICROWAFER ";AT 12
,13;" OR ";AT 14,7; PAPER 2; BRI
GHT 1;" 2 "; PAPER 6; BRIGHT 0;"
TAPE CASSETTE ": PAUSE 0
310 LET B$=INKEY$: IF B$="2" TH
EN GO TO 340
320 BORDER 1: PAPER 1: CLS : PR
INT AT 10,10; PAPER 2; INK 9; FL
ASH 1;" RECORDING "
330 SAVE "@2,TIME" LINE 20: GO
TO 20
340 ON ERR GO TO 390: BORDER 0
: PAPER 0: CLS : PRINT AT 11,10;
PAPER 2; INK 9; FLASH 1;" RECOR
DING "
350 SAVE "TIME" LINE 20
360 BORDER 1: PAPER 1: CLS : PR
INT INK 7;AT 9,2;"REWIND TAPE--
PRESS ANY KEY TO"'''TAB 5;"VERIF
Y OR BREAK TO STOP"
370 PAUSE 0: CLS : PRINT AT 11,
10; INK 6; FLASH 1;" VERIFYING "
380 INK 1: VERIFY "": PRINT AT
11,6; PAPER 2; INK 9;" RECORDING
IS O.K. ": BEEP .5,10: PAUSE 20
0: INK 0: GO TO 20
390 FOR n=1 TO 10: BEEP .1,-20-
n: BORDER 1: PAPER 1: CLS : PRIN
T PAPER 1; INK 7; FLASH 1;AT 11
,10;" TAPE ERROR "
400 BORDER 2: PAPER 2: CLS : PR
INT PAPER 2; INK 7; FLASH 1;AT
11,10;" TAPE ERROR ": NEXT n
410 PAUSE 200
420 ON ERR RESET : GO TO 20
430 RESTORE : FOR a=1 TO 26
440 READ B$
450 IF a=X THEN LET I=VAL B$(
TO 2)
460 IF a=X THEN LET s$=B$(3 TO
): GO TO 580
470 NEXT a
480 RESTORE : FOR n=1 TO 26
490 READ D$
500 IF n=X THEN LET J=VAL D$(
TO 2)
510 IF n=X THEN LET f$=D$(3 TO
): GO TO 600
520 NEXT n
530 DATA "08SAN FRANCISCO","06C
HICAGO","05NEW YORK","07DENVER",
"10HAWAII","-8LONDON","-1FRANCE"
,"-8HONGKONG","-9JAPAN","-8SINGA
PORE","-9AUSTRALIA","-1SPAIN","-
2GREECE"
540 DATA "06NEW ORLEANS","-1ITA
LY","-1GERMANY","06MEXICO","-1NO
RWAY"," SAVE","-8PHILIPPINES","
-7THAILAND","-3TURKEY","03ARGENT
INA","X","Y","Z"
550 RESTORE 540: FOR b=1 TO 26
560 READ z$: IF b=X THEN LET d
$=z$(3 TO )
570 NEXT b
580 LET D=1: LET nc=2: LET tc=1
: LET q$="DESTINATION": LET tl=0
590 CLS : GO TO 90
600 CLS : GO SUB 290: PRINT AT
2,13;" BASE "
610 LET l=4: LET q$=s$: GO SUB
110: LET tl=0
620 RESTORE 680: DIM U$(7,9): P
RINT AT 9,11;"WHAT DAY?"
630 FOR n=1 TO 3: READ U$(n)
640 PRINT AT 10+(n*2),2; PAPER
2; INK 9; BRIGHT 1;" ";n;" "; BR
IGHT 0; PAPER 7;" ";U$(n): NEXT
n
650 FOR n=4 TO 6: READ U$(n)
660 PRINT AT 10+((n-3)*2),16; P
APER 2; INK 9; BRIGHT 1;" ";n;"
"; BRIGHT 0; PAPER 7;" ";U$(n):
NEXT n
670 READ U$(7): PRINT AT 18,9;
PAPER 2; INK 9; BRIGHT 1;" ";7;"
"; BRIGHT 0; PAPER 7;" ";U$(7)
680 DATA "SUNDAY ","MONDAY
","TUESDAY ","WEDNESDAY","THURS
DAY ","FRIDAY ","SATURDAY "
690 GO SUB 290: PAUSE 0: LET W=
VAL INKEY$: LET C$=U$(W): LET Y$
=U$(W)
700 GO SUB 7000
710 PRINT AT 8,1;C$;": "
720>PRINT AT 14,10;" ENTER TIME
";AT 16,9;"(24 HOUR MODE)"
730 INPUT "HOUR ";H
740 GO SUB 1110
750 LET V=G
760 LET T=H
770 IF H>12 THEN LET T=H-12
780 IF G>12 THEN LET V=G-12
790 IF H>11 AND H<24 THEN LET
K$="PM"
800 IF G>11 AND G<24 THEN LET
L$="PM"
810 INPUT "MINUTES ";M
815 IF M=0 THEN LET M=60
820 PRINT AT 14,1;E$;AT 16,1;E$
830 GO SUB 5180
840 GO SUB 8000
850 LET K$="AM": LET L$="AM"
860 IF H>11 AND H<24 THEN LET
K$="PM"
870 IF G>11 AND G<24 THEN LET
L$="PM"
880 GO SUB 6000
890 PAUSE P
900 LET M=M+1: IF M>60 THEN LE
T M=1
910 IF M>59 THEN LET H=H+1: LE
T T=T+1
920 IF M>59 THEN LET G=G+1: LE
T V=V+1
930 IF W=7 THEN LET W=0
940 IF H=24 THEN LET C$=U$(W+1
)
950 IF G=24 THEN LET Y$=U$(W+1
)
960 IF H=24 THEN PRINT AT R,1;
C$
970 IF G=24 THEN PRINT AT 18,1
;Y$
980 IF H>24 THEN LET H=1: LET
T=12
990 IF G>24 THEN LET G=1: LET
V=12
1000 IF H=1 AND H<13 THEN LET T
=H
1010 IF G=1 AND G<13 THEN LET V
=G
1020 IF H=24 THEN LET K$="AM"
1030 IF G=24 THEN LET L$="AM"
1040 IF H>12 THEN LET T=H-12
1050 IF G>12 THEN LET V=G-12
1060 IF H>11 AND H<24 THEN LET
K$="PM"
1070 IF G>11 AND G<24 THEN LET
L$="PM"
1080 GO SUB 6000
1090 GO SUB 8000: GO SUB 6000
1100 GO TO 830
1110 LET F=(I-J)
1120 LET G=H+F
1130 IF H>24 THEN LET H=H-24: L
ET K$=U$(W+1)
1140 IF G>24 THEN LET G=G-24: L
ET Y$=U$(W+1)
1150 RETURN
5000 DIM H$(24,2)
5010 FOR H=1 TO 24: LET H$(H)=ST
R$ H: IF H<10 THEN LET H$(H)="0
"+STR$ H
5020 IF H=24 THEN LET H$(H)="00
"
5030 NEXT H
5040 DIM G$(24,2)
5050 FOR G=1 TO 24: LET G$(G)=ST
R$ G: IF G<10 THEN LET G$(G)="0
"+STR$ G
5060 IF G=24 THEN LET G$(G)="00
"
5070 NEXT G
5080 DIM T$(12,2)
5090 FOR T=1 TO 12: LET T$(T)=ST
R$ T: IF T<10 THEN LET T$(T)="
"+STR$ T
5100 NEXT T
5110 DIM V$(12,2)
5120 FOR V=1 TO 12: LET V$(V)=ST
R$ V: IF V<10 THEN LET V$(V)="
"+STR$ V
5130 NEXT V
5140 DIM M$(60,2)
5150 FOR M=1 TO 60: LET M$(M)=ST
R$ M: IF M<10 THEN LET M$(M)="0
"+STR$ M
5160 IF M=60 THEN LET M$(M)="00
"
5170 NEXT M
5180 LET R=8: LET C=14
5190 LET P=3515
5200 RETURN
6000 PRINT AT R,C-1;":";AT R,C+1
0;":"
6010 PRINT AT R+10,C-1;":";AT R+
10,C+10;":"
6020 PRINT AT R,C+4;"OR"
6030 PRINT AT R+10,C+4;"OR"
6040 PRINT AT R,C+14;K$
6050 PRINT AT R+10,C+14;L$
6060 PRINT AT R,C-3;H$(H);AT R,C
+8;T$(T)
6070 PRINT AT R+10,C-3;G$(G);AT
R+10,C+8;V$(V)
6080 PRINT AT R,C;M$(M);AT R,C+1
1;M$(M)
6090 PRINT AT R+10,C;M$(M);AT R+
10,C+11;M$(M)
6100 RETURN
7000 DIM E$(29)
7010 FOR N=8 TO 20
7020 PRINT AT N,1;E$
7030 NEXT N: RETURN
8000 PRINT AT 12,10;"DESTINATION
"
8010 LET l=14: LET q$=f$: LET tl
=1: LET tc=2: GO SUB 110: LET tl
=0
8020 PRINT AT 18,1;Y$;":"
8030 RETURN

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.