10 REM BIG BEN 20 REM Local Time Calculator 30 REM for 8 Bit Software 40 REM by M.Bobrowski 8'92 50 : 60 MODE1:VDU 19,1,5;0;19,2,6;0;19,3,3;0; 70 COLOUR 1:PRINT'TAB(4)"When Big Ben strikes twelve ...":*FX4,1 80 DIM L$(39),D%(39):FOR I%=0 TO 39:READ L$(I%),D%(I%):NEXT 90 ON ERROR IF ERR=17 AND INKEY-1 THEN 170 ELSE IF ERR<>17 REPORT:PRINT" at ";ERL:END 100 GCOL 0,1:MOVE 0,116:DRAW 0,940:DRAW 1279,940:DRAW 1279,116:DRAW 0,116:VDU 5,24,4;120;1275;936;28,2,31,37,29 110 T%=720:N%=20:PROCtime 120 REPEAT 130 CLS:COLOUR2:PRINT"Use cursor keys to select the city"'"then press RETURN. ESC+SHIFT to exit"; 140 PROCcursor(N%):PROCmove 150 T%=FNinput(N%):PROCtime 160 UNTIL FALSE 170 VDU26,12:*FX4,0 180 END 190 : 200 DEF FNinput(N%) 210 LOCAL H%,M%:*FX15,1 220 CLS:COLOUR 1:PRINT"What is the time in ";L$(N%);" ?" 230 REPEAT:COLOUR 2:PRINTTAB(0,1)"Hours :";SPC9:COLOUR3:INPUTTAB(8,1)H%:IF H%<0 OR H%>23 VDU7 240 UNTIL H%>=0 AND H%<24 250 REPEAT:COLOUR 2:PRINT TAB(19,1)"Minutes :";SPC7:COLOUR3:INPUT TAB(29,1)M%:IF M%<0 OR M%>59 VDU 7 260 UNTIL M%>=0 AND M%<60 270 =H%*60+M%-D%(N%) 280 : 290 DEF PROCtime 300 VDU 5,16:FOR I%=0 TO 39 310 Q%=T%+D%(I%):IF Q%<0 Q%=Q%+1440 ELSE IF Q%>=1440 Q%=Q%-1440 320 GCOL 0,3:MOVE 48-608*(I%MOD2=1),920-40*I%DIV2-20*(I%MOD2=1):PRINT L$(I%); 330 GCOL 0,2:MOVE 464-608*(I%MOD2=1),920-40*I%DIV2-20*(I%MOD2=1):PRINT RIGHT$("00"+STR$(Q% DIV 60),2);":";RIGHT$("00"+STR$(Q% MOD 60),2); 340 NEXT:VDU 4 350 ENDPROC 360 : 370 DEF PROCmove 380 REPEAT 390 G%=GET:IF G%=13 THEN 460 400 PROCcursor(N%) 410 IF G%=136 AND N%>0 N%=N%-1 420 IF G%=137 AND N%<39 N%=N%+1 430 IF G%=138 AND N%<38 N%=N%+2 440 IF G%=139 AND N%>1 N%=N%-2 450 PROCcursor(N%) 460 UNTIL G%=13 470 PROCcursor(N%) 480 ENDPROC 490 : 500 DEF PROCcursor(N%):GCOL4,0 510 LOCAL X%,Y%:IF N% MOD 2=0 X%=28 ELSE X%=636 520 Y%=928-40*(N% DIV 2) 530 FOR J%=Y% TO Y%-40 STEP -4 540 MOVE X%,J%:DRAW X%+608,J% 550 NEXT 560 ENDPROC 570 : 580 DATA Algiers,0,Athens,120,Baghdad,180,Bangkok,420,Beijing,480,Berlin,60,Buenos Aires,-180,Cairo,120,Caracas,-240,Chicago,-360 590 DATA Havana,-240,Hong Kong,480,Honolulu,-600,Jakarta,420,Jerusalem,120,Johannesburg,120,Kabul,270,Kathmandu,345,Lagos,60,Lima,-300 600 DATA London,0,Los Angeles,-480,Madrid,60,Melbourne,600,Mexico,-360,Moscow,180,New Delhi,330,New York,-300,Paris,60,Rangoon,390 610 DATA Reykjavik,0,R.de Janeiro,-180,Rome,60,Singapore,480,Stockholm,60,Tehran,210,Tokyo,540,Vienna,60,Warsaw,60,Wellington,720