Listing of file='TIME.BAS;01' on disk='vmedia/ncc_23-sector.ccvf'
10 REM THIS PROGRAM ILLUSTRATES THE USE OF THE CALL JUMP 20 REM TO REPEATEDLY LOAD A SCREEN DISPLAY WITHOUT CALLING 30 REM THE DISC DRIVE EACH TIME. THE DISPLAY IS LOADED 40 REM IN HIGH MEMORY AT THE START OF THE PROGRAM AND THEN 50 REM IS RELOADED INSTANTLY INTO THE SCREEN MEMORY BY THE 60 REM CALL(0) JUMP AT LINES 180 AND 1600. 70 REM 80 REM CLOCK TIME IS KEPT IN UTC (GMT). 90 REM Z$ CORRECTS FOR YOUR TIME ZONE. 95 REM J IS THE HOUR OFFSET FROM UTC FOR THAT LOCALITY. 96 REM 97 REM ******************************************************* 98 REM 100 GOSUB 2000:REM LOAD MAP AND CALL ROUTINE IN HIGH MEMORY 110 CLEAR 300:PLOT 12,14,17 120 PRINT TAB( 12)"LOCAL STANDARD TIME FOR VARIOUS CITIES" 130 PLOT 15,22:PRINT TAB( 24)"OF THE WORLD" 140 PRINT 150 REM BY MYRON STEFFY, SUN CITY, ARIZONA. 1/25/81 160 REM MAP FROM NCCUG CATALOG. 170 GOSUB 3000:REM SET CLOCK 180 X= CALL (0):REM LOAD SCREEN DISPLAY FROM HIGH MEMORY 300 C$= "ALGIERS":X= 35:Y= 17:J= 0:GOSUB 1510 320 C$= "ANCHORAGE":X= 5:Y= 11:J= - 9:GOSUB 1510 340 C$= "BERLIN":X= 37:Y= 14:J= 1:GOSUB 1510 360 C$= "BUENOS AIRES":X= 25:Y= 27:J= - 3:GOSUB 1510 380 C$= "CALCUTTA":X= 50:Y= 20:J= 5:GOSUB 1510 400 C$= "CANBERRA":X= 61:Y= 28:J= 10:GOSUB 1510 420 C$= "CAPETOWN":X= 38:Y= 27:J= 2:GOSUB 1510 440 C$= "CHICAGO":X= 17:Y= 15:J= - 6:GOSUB 1510 460 C$= "HONG KONG":X= 55:Y= 20:J= 8:GOSUB 1510 480 C$= "HONOLULU":X= 0:Y= 20:J= - 10:GOSUB 1510 500 C$= "LONDON":X= 33:Y= 13:J= 0:GOSUB 1510 520 C$= "MOSCOW":X= 41:Y= 12:J= 3:GOSUB 1510 540 C$= "NAIROBI":X= 41:Y= 22:J= 3:GOSUB 1510 560 C$= "NEW YORK":X= 22:Y= 15:J= - 5:GOSUB 1510 580 C$= "PHOENIX":X= 13:Y= 17:J= - 7:GOSUB 1510 600 C$= "SAN FRANCISCO":X= 10:Y= 16:J= - 8:GOSUB 1510 620 C$= "THULE":X= 26:Y= 10:J= - 4:GOSUB 1510 640 C$= "TOKYO":X= 62:Y= 18:J= 9:GOSUB 1510 660 C$= "ULAN BATOR":X= 53:Y= 15:J= 7:GOSUB 1510 680 PLOT 14,3,0,0 700 PRINT "END" 720 PLOT 15 740 END 1500 REM *** PRINT CITY AND DAY OF WEEK *** 1510 PLOT 14,3,1,2,6,3:REM YELLOW ON BLACK 1520 PRINT C$:REM NAME OF CITY 1530 PLOT 15,3,X,Y,6,67,42:REM LOCATE STAR ON MAP 1540 HL= PEEK (33211)+ J:DL= DU:IF HL> 23THEN DL= DU+ 1 1550 IF HL < 0 THEN DL= DU- 1 1560 IF DL> 7THEN DL= 1 1565 IF DL< 1THEN DL= 7 1570 PLOT 15,3,54,4,6,3:REM YELLOW ON BLACK 1580 PRINT D$(DL):REM DAY OF WEEK 1590 GOSUB 4000:REM PRINT LOCAL TIME 1600 X= CALL (0):REM RESTORE MAP PICTURE 1620 RETURN 2000 REM *** SUBROUTINE TO LOAD PICTURE *** 2010 IF PEEK (45609)+ PEEK (45610)+ PEEK (45611)= 558THEN 2040 2020 PLOT 27,4:PRINT "LOAD SCREEN.DSP;02 AFFF":PLOT 27,27 2030 REM LOAD MACHINE LANGUAGE SUBROUTINE TO BRING UP DISPLAY 2040 DATA 245,229,33,255,175,17,0,112,1,255,191,126,18,124 2050 DATA 184,194,56,175,125,185,202,61,175,35,19,195,44,175 2060 DATA 225,241,201,0,0,0 2070 FOR AD= 44833TO 44865:READ VL:POKE AD,VL:NEXT AD 2080 POKE 33283,33:POKE 33284,175:REM CALL JUMP ADDRESS 2090 POKE 32940,254:POKE 32941,174:REM PROTECT MACHINE LANGUAGE 2120 PLOT 27,24 2130 RETURN 3000 REM *** TIME CLOCK ***:PLOT 6,3,15 3010 REM *** SET TIME *** 3020 INPUT "ENTER DAY OF THE WEEK ( FIRST THREE LETTERS ) ";N$ 3030 PRINT 3040 REM D$(D) = DAY OF THE WEEK 3050 D$(1)= "SUNDAY":D$(2)= "MONDAY":D$(3)= "TUESDAY" 3060 D$(4)= "WEDNESDAY":D$(5)= "THURSDAY":D$(6)= "FRIDAY" 3070 D$(7)= "SATURDAY" 3080 FOR I= 1TO 7 3090 IF LEFT$ (N$,3)= LEFT$ (D$(I),3)THEN D= I 3100 NEXT I 3110 INPUT "WHAT TIME ZONE ARE YOU IN ?( E,C,M,P ) ";Z$ 3120 IF Z$= "E"THEN Z= 5 3130 IF Z$= "C"THEN Z= 6 3140 IF Z$= "M"THEN Z= 7 3150 IF Z$= "P"THEN Z= 8 3160 PRINT 3170 PRINT "ENTER YOUR LOCAL STANDARD TIME IN 12 HOUR FORMAT:" 3180 PRINT 3190 INPUT "A.M OR P.M. ? (A OR P) ";Q$ 3200 IF LEFT$ (Q$,1)= "A"THEN Q= 0:GOTO 3220 3210 IF LEFT$ (Q$,1)= "P"THEN Q= 12:GOTO 3220 3220 PRINT 3230 INPUT "SET TIME ( HOURS, MINUTES, SECONDS ) ";H,M,S 3240 REM *** PUT CORRECT TIME INTO MEMORY *** 3250 IF Q= 0AND H= 12THEN H= 24 3260 IF Q= 12AND H= 12THEN Q= 0 3270 HZ= H+ Z+ Q:IF HZ> 23THEN HZ= HZ- 24:REM CONVERT TO UTC 3280 POKE 33211,HZ 3290 POKE 33210,M 3300 POKE 33209,S 3310 DU= D:IF Z> PEEK (33211)THEN DU= DU+ 1:REM UTC DAY 3320 IF DU> 7THEN DU= 1 3330 RETURN 4000 REM *** PRINT TIME AND DAY *** 4010 PLOT 14:T= 0:REM COUNTS DURATION OF PAUSE IN SECONDS 4020 S= PEEK (33209) 4030 M= PEEK (33210) 4040 H= PEEK (33211) 4050 IF H> 23THEN H= 0:POKE 33211,H 4060 H= PEEK (33211):HL= H+ J:REM LOCAL TIME 4070 IF HL> 23THEN HL= HL- 24 4080 IF HL< 0THEN HL= 24+ HL 4090 Q$= " AM":IF HL> 11THEN Q$= " PM":IF HL> 12THEN HL= HL- 12 4100 REM *** PUT 0 IN FRONT OF SINGLE DIGIT NUMBERS *** 4110 S$= RIGHT$ (STR$ (S+ 100),2) 4120 M$= RIGHT$ (STR$ (M+ 100),2) 4130 HL$= STR$ (HL):IF HL= 0THEN HL$= "12":Q$= " AM" 4140 PLOT 14,6,3:REM YELLOW ON BLACK 4150 PLOT 3,52,2:PRINT HL$;":";M$;":";S$;Q$ 4160 REM ** WAIT UNTIL SECONDS HAVE CHANGED ** 4170 IF PEEK (33209)= STHEN 4170 4180 T= T+ 1:IF T> 5THEN RETURN 4190 GOTO 4020