***************************************************************** ** ** ** To turn this text file back into a Basic file you must; ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ** ** ** ** 1) Load the file into a text editor or word processor, ** ** 2) Delete all the lines upto the line '*BASIC' ** ** 3) Save the file as a ASCII text file (with a new name) ** ** E.g. RAM::0.$.10_hr_Edit ** ** 4) Leave the desktop, e.g press 'f12' ** ** 5) Type *Exec ** ** E.g. *Exec RAM::0.$.10_hr_Edit ** ** 6) Type SAVE"" ** ** E.g. SAVE"RAM::0.$.Basic_File" ** ** 7) Type QUIT and press the return key to return to the ** ** desktop, or type RUN to run the program. ** ** ** ***************************************************************** *|| *BASIC NEW SOUND 1,-10,100,7 10 REM > TenHrClock 20 REMARK Teletext (Ceefax) Ten Hour Clock 30 REMARK by Mark A. Agius, (c)1996 40 REMARK For BBC Acorn 8-bit and Acorn 32-bit computers only 50 REMARK * For music on 32-bit computers edit PROCloadMusic * 60 REMARK version 0.01 70 REMARK 12/08/1996 80 : 90 DIM workspace% &100 100 MODE 7 110 VDU 23,1,0;0;0;0; 120 FOR loop%=1 TO 2 130 PRINT TAB(11,loop%+2)CHR$(&8D)CHR$(&86)"TEN HOUR CLOCK" 140 PRINT TAB(13,loop%+5)CHR$(&8D)CHR$(&86)"An idea by" 150 PRINT TAB(11,loop%+8)CHR$(&8D)CHR$(&86)"Mark A. Agius." 160 NEXT loop% 170 PRINT'' 180 ON ERROR CLS:REPORT:PRINT" at ";ERL':IF ERR=17 THEN PROCend_program:END ELSE key%=GET:PROCend_program:END 190 pageAt%=RND(899)+100 200 pageSearchingFor%=RND(899)+100 210 pageSearchingFor%=196 220 os_ok%=FNoperating_system>0 230 pages%=5 240 IF os_ok% THEN PROCsetTimeNumber 250 REM Start music here if 32-bit computer 260 IF FNoperating_system>=2 THEN PROCloadMusic 270 P%=1 280 REPEAT 290 pageAt%=RND(899)+100 300 pageSearchingFor%=196 310 REM CASE P% OF 320 flag%=TRUE 330 IF P%=1 THEN flag%=FALSE:PROCdisplayPage_1(pageAt%,pageSearchingFor%) 340 IF P%=2 THEN flag%=FALSE:PROCdisplayPage_2(pageAt%,pageSearchingFor%) 350 IF P%=3 THEN flag%=FALSE:PROCdisplayPage_3(pageAt%,pageSearchingFor%) 360 IF P%=4 THEN flag%=FALSE:PROCdisplayPage_4(pageAt%,pageSearchingFor%) 370 IF P%=5 THEN flag%=FALSE:PROCdisplayPage_5(pageAt%,pageSearchingFor%) 380 390 IF flag% THEN PROCdisplayPage_X(pageAt%,pageSearchingFor%,P%,pages%) 400 REM ENDCASE 410 end_time%=TIME+6000 420 REPEAT 430 pageAt%=RND(899)+100 440 REM CASE P% OF 450 flag%=TRUE 460 IF P%=1 THEN flag%=FALSE:PROCupdatePage_1(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt,pageSearchingFor%) 470 IF P%=2 THEN flag%=FALSE:PROCupdatePage_2(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt,pageSearchingFor%) 480 IF P%=3 THEN flag%=FALSE:PROCupdatePage_3(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt,pageSearchingFor%) 490 500 IF flag% THEN PROCupdateTitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%) 510 REM ENDCASE 520 key%=INKEY(1) 530 IF INSTR("Ss",CHR$(key%)) THEN 540 PRINT TAB(0,0)"STOP "; 550 REPEAT 560 key%=INKEY(1) 570 IF INSTR("Ss",CHR$(key%)) THEN key%=-1 580 UNTIL key%>=0 590 PRINT TAB(0,0)"P--- "; 600 key%=-1 610 ENDIF 620 UNTIL TIME>=end_time% OR key%>=0 630 P%=P%+1 640 IF P%>pages% THEN P%=1 650 IF CHR$(key%)>="1" AND CHR$(key%)<="9" THEN P%=VAL(CHR$(key%)) 660 UNTIL INSTR("EeQq",CHR$(key%)) 670 CLS 680 PROCend_program 690 END 700 : 710 DEF PROCend_program 720 IF FNoperating_system>1 THEN OSCLI("*Desktop") 730 PRINT'" Bye..."'' 740 VDU 23,1,1;0;0;0; 750 ENDPROC 760 : 770 DEF PROCupdateTitle(time%,day$,date%,month$,pageAt,pageSearchingFor%) 780 PRINT TAB( 1,0)FNnum(pageSearchingFor%,"0",3); 790 PRINT TAB(15,0)FNnum(pageAt%,"0",3); 800 PRINT TAB(20,0)day$; 810 PRINT TAB(24,0)FNnum(date%,"0",2); 820 PRINT TAB(27,0)month$; 830 PRINT TAB(32,0)FNtime(time%,24) 840 PRINT TAB(19,0)CHR$(&87)TAB(31,0)CHR$(&83); 850 ENDPROC 860 : 870 DEF PROCupdatePage_1(time%,day$,date%,month$,pageAt,pageSearchingFor%) 880 PROCupdateTitle(time%,day$,date%,month$,pageAt,pageSearchingFor%) 890 PRINT TAB(28, 9)FNtime(time%,24) 900 PRINT TAB(28,10)FNtime(time%,12); 910 IF pm% THEN PRINT"pm" ELSE PRINT"am" 920 PRINT TAB(28,11)FNtenhour_clock(time%) 930 PRINT TAB(28,12)FNtenhour_clock(time%) 940 ENDPROC 950 : 960 DEF PROCtitle(time%,day$,date%,month$,pageAt%,pageSearchingFor%,page%,pages%) 970 LOCAL page_string$ 980 CLS 990 PRINT TAB(0,0)"P"+FNnum(pageSearchingFor%,"0",3)" CEEFAX "FNnum(pageAt%,"0",3); 1000 PRINT TAB(20,0)day$; 1010 PRINT TAB(24,0)FNnum(date%,"0",2); 1020 PRINT TAB(27,0)month$; 1030 PRINT TAB(31,0)CHR$(&83)FNtime(time%,24); 1040 PRINT TAB(0, 1)CHR$(&94)STRING$(39,CHR$(&AC)) 1050 page_string$=CHR$(&87)+STR$(page%)+"/"+STR$(pages%) 1060 IF pages%>1 THEN PRINT TAB(40-LEN(page_string$),1);page_string$; 1070 ENDPROC 1080 : 1090 DEF PROCdisplayPage_X(pageAt%,pageSearchingFor%,page%,pages%) 1100 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,page%,pages%) 1110 PRINT TAB(0,3)CHR$(&83)CHR$(&88)"This is a blank TELETEXT page!!!"; 1120 PRINT TAB(0,24)CHR$(&81)CHR$(&9D)CHR$(&0B); 1130 ENDPROC 1140 : 1150 DEF PROCdisplayPage_1(pageAt%,pageSearchingFor%) 1160 LOCAL loop% 1170 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,1,pages%) 1180 PRINT TAB(0,2); 1190 FOR loop%=0 TO 1 1200 PRINT TAB(0,2+loop%)CHR$(&86)CHR$(&8D)"Here is some infomation on how the new" 1210 PRINT TAB(0,4+loop%)CHR$(&86)CHR$(&8D)" ten hours per day clock system works."; 1220 NEXT loop% 1230 PRINT TAB(9, 8)CHR$(&86)"The time now is; " 1240 PRINT TAB(9, 9)CHR$(&86)"24 hour system = "CHR$(&83)".." 1250 PRINT TAB(9,10)CHR$(&86)"12 hour system = "CHR$(&83)".." 1260 PRINT TAB(9,11)CHR$(&86)"10 hour system ="CHR$(&83) 1270 PRINT TAB(26,12)CHR$(&83); 1280 FOR loop%=11 TO 12 1290 PRINT TAB(27,loop%)CHR$(&8D)"10'00.00"CHR$(&8C) 1300 NEXT loop% 1310 PRINT TAB(0,13)CHR$(&86)"Times of the day," 1320 PRINT TAB(0,14)CHR$(&86)" 24 hour, 12 hour, 10 hour clock." 1330 RESTORE 1340 REPEAT 1350 READ timenumber%,timestring$ 1360 IF timestring$<>"" THEN PROCdisplay_line(timenumber%,timestring$) 1370 UNTIL timestring$="" 1380 PRINT TAB(0,24)CHR$(&84)CHR$(&9D)CHR$(&0B); 1390 ENDPROC 1400 : 1410 DEF FNnum(num%,start$,len%) 1420 =RIGHT$(STRING$(len%,CHR$(&20))+STRING$(len%,start$)+STR$(num%),len%) 1430 : 1440 DEF FNday(timeFlag%) 1450 IF timeFlag% THEN =LEFT$(TIME$,3) 1460 ="Sun" 1470 : 1480 DEF FNdate(timeFlag%) 1490 IF timeFlag% THEN =VAL(MID$(TIME$,5,2)) 1500 =12 1510 : 1520 DEF FNmonth(timeFlag%) 1530 IF timeFlag% THEN =MID$(TIME$,8,3) 1540 ="Aug" 1550 : 1560 DEF PROCsetTimeNumber 1570 LOCAL hr%,mi%,se%,cs%,time$ 1580 time$=RIGHT$(TIME$,8) 1590 hr%=VAL(time$) 1600 mi%=VAL(MID$(time$,4,2)) 1610 se%=VAL(MID$(time$,7,2)) 1620 cs%=00 1630 TIME=FNsetTime(hr%,mi%,se%,cs%) 1640 ENDPROC 1650 : 1660 DEF FNsetTime(hr%,mi%,se%,cs%) 1670 hr%=hr%MOD 24 1680 mi%=mi%MOD 60 1690 se%=se%MOD 60 1700 cs%=cs%MOD100 1710 =(hr%*360000)+(mi%*6000)+(se%*100)+cs% 1720 : 1730 DEF FNtime(time%,format%) 1740 LOCAL output$,hr%,mi%,se%,cs% 1750 hr%=(time%DIV360000)MOD24 1760 mi%=(time%DIV6000) MOD60 1770 se%=(time%DIV100) MOD60 1780 cs%= time%MOD100 1790 IF hr%>=12 THEN pm%=TRUE ELSE pm%=FALSE 1800 IF format%=12 AND hr%>12 THEN hr%=hr%MOD12 1810 IF format%=12 AND hr%=00 THEN hr%=12 1820 output$=FNnum(hr%," ",2)+":"+FNnum(mi%,"0",2)+"/"+FNnum(se%,"0",2) 1830 =output$ 1840 : 1850 DEF FNtenhour_clock(time%) 1860 LOCAL output$,hr%,mi%,se%,cs%,ten_hr_time% 1870 REM 24hr clock= 8640000cs per day 1880 REM 10hr clock=10000000cs per day 1890 ten_hr_time%=time%*(1000/864) 1900 hr%=(ten_hr_time%DIV1000000)MOD10 1910 mi%=(ten_hr_time%DIV10000) MOD100 1920 se%=(ten_hr_time%DIV100) MOD100 1930 cs%= ten_hr_time%MOD100 1940 IF hr%>=5 THEN pm%=TRUE ELSE pm%=FALSE 1950 REM IF hr%=00 AND mi%=00 AND se%=00 THEN hr%=10 1960 output$=FNnum(hr%," ",2)+"'"+FNnum(mi%,"0",2)+"."+FNnum(se%,"0",2) 1970 =output$ 1980 : 1990 DEF FNoperating_system 2000 LOCAL os% 2010 REM -1=BBC MOS 1.00/1.20 2020 REM 0=BBC MOS 0.10 2030 REM 1=Acorn Electron MOS 1.00 2040 REM 250=Acorn ABC MOS 2050 REM 251=BBC MOS 2.00 2060 REM 252=German BBC 2070 REM 253=BBC Master OS 3.20 2080 REM 254=BBC US MOS 1.00 or 1.10 2090 REM 164=Acorn A5000 (RISC OS3.10) 2100 REM 2110 os%=INKEY-256 2120 IF os%<=1 THEN os%=0 2130 IF os%=253 THEN os%=1 2140 IF os%>=250 AND os%<=255 THEN os%=0 2150 =os% 2160 : 2170 DEF PROCdisplay_line(timenumber%,timestring$) 2180 PRINT CHR$(&83)FNtime(timenumber%,24)" "; 2190 PRINT FNtime(timenumber%,12); 2200 IF pm% THEN PRINT"pm"; ELSE PRINT"am"; 2210 PRINT FNtenhour_clock(timenumber%); 2220 PRINT CHR$(&87)LEFT$(timestring$,11)CHR$(&08) 2230 ENDPROC 2240 : 2250 DATA 2592080,"Getup-time" 2260 DATA 3240000,"Start work" 2270 DATA 4320000,"Mid-day" 2280 DATA 6120000,"Tea-time" 2290 DATA 6300000,"Home time" 2300 DATA 7560000,"Bed-time" 2310 DATA 8639999,"End of day" 2320 DATA 8640000,"Mid-night" 2330 DATA 0,"" 2340 : 2350 DEF PROCdisplayPage_2(pageAt%,pageSearchingFor%) 2360 LOCAL loop% 2370 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,2,pages%) 2380 FOR loop%=2 TO 3 2390 PRINT TAB( 1,loop%)CHR$(&8D)"10 Hour Clock"; 2400 PRINT TAB(22,loop%)CHR$(&8D)"12 Hour Clock"; 2410 PRINT TAB(4,loop%+21)CHR$(&8D)CHR$(&83)FNtenhour_clock(TIME); 2420 PRINT TAB(25,loop%+21)CHR$(&8D)CHR$(&83)FNtime(TIME,12); 2430 IF pm% THEN PRINT"pm"; ELSE PRINT"am"; 2440 NEXT loop% 2450 REM Graphics 2460 PROCcircle( 1,6) 2470 PROCcircle(21,6) 2480 FOR loop%=4 TO 22 2490 PRINT TAB(0,loop%)CHR$(&9A); 2500 NEXT loop% 2510 : 2520 PRINT TAB(29, 8)"12" 2530 PRINT TAB(26, 9)"11 1" 2540 PRINT TAB(24,11)"10 2" 2550 PRINT TAB(24,13)"9 3" 2560 PRINT TAB(30,13)CHR$(&FF)"_____" 2570 PRINT TAB(30,14)CHR$(&FF) 2580 PRINT TAB(24,15)" 8 4" 2590 PRINT TAB(30,15)CHR$(&FF) 2600 PRINT TAB(30,16)CHR$(&FF) 2610 PRINT TAB(26,17)" 7 5" 2620 PRINT TAB(29,18)" 6" 2630 PRINT TAB( 1, 4)CHR$(&83)"(One day clock)" 2640 : 2650 PRINT TAB( 9, 9)"10" 2660 PRINT TAB( 6,10)" 9 1" 2670 PRINT TAB( 4,12)" 8 2" 2680 PRINT TAB(10,13)STRING$(4,CHR$(&FF)) 2690 PRINT TAB( 4,14)" 7 / 3" 2700 PRINT TAB( 8,15)"/" 2710 PRINT TAB( 6,16)" 6 4" 2720 PRINT TAB( 9,17)" 5" 2730 PRINT TAB(21, 4)CHR$(&83)"("CHR$(&5C)" day clock)" 2740 xT%=(6*60)+15 2750 xT%=xT%*6000 2760 PRINT TAB(10,21)CHR$(&83)FNtenhour_clock(xT%)" = "FNtime(xT%,12); 2770 IF pm% THEN PRINT"pm"; ELSE PRINT"am"; 2780 : 2790 ENDPROC 2800 : 2810 DEF PROCcircle(x%,y%) 2820 yy%=y% 2830 PRINT TAB(x%,y%);CHR$(&92)" "CHR$(&F8)STRING$(13,CHR$(&FC))CHR$(&F4)" "; 2840 y%=y%+1 2850 PRINT TAB(x%,y%);CHR$(&92)CHR$(&FE)CHR$(&A7)SPC(13)CHR$(&AB)CHR$(&FD); 2860 y%=y%+1 2870 REPEAT 2880 PRINT TAB(x%,y%);CHR$(&92)CHR$(&FF)CHR$(&87)SPC(13)CHR$(&92)CHR$(&FF); 2890 y%=y%+1 2900 UNTIL y%>yy%+12 2910 PRINT TAB(x%,y%);CHR$(&92)CHR$(&EF)CHR$(&F4)SPC(13)CHR$(&F8)CHR$(&BF); 2920 y%=y%+1 2930 PRINT TAB(x%,y%);CHR$(&92)" "CHR$(&AB)STRING$(13,CHR$(&AF))CHR$(&A7)" "; 2940 ENDPROC 2950 : 2960 DEF PROCupdatePage_2(time%,day$,date%,month$,pageAt,pageSearchingFor%) 2970 LOCAL loop% 2980 PROCupdateTitle(time%,day$,date%,month$,pageAt,pageSearchingFor%) 2990 FOR loop%=23 TO 24 3000 PRINT TAB( 6,loop%)FNtenhour_clock(TIME); 3010 PRINT TAB(27,loop%)FNtime(TIME,12); 3020 IF pm% THEN PRINT"pm"; ELSE PRINT"am"; 3030 NEXT loop% 3040 ENDPROC 3050 : 3060 DEF PROCdisplayPage_3(pageAt%,pageSearchingFor%) 3070 LOCAL loop%,clock$,clock_min$ 3080 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,3,pages%) 3090 FOR loop%=3 TO 4 3100 PRINT TAB( 2,loop%)CHR$(&8D)CHR$(&86)"HOW TO READ A NEW TEN HOUR CLOCK"; 3110 PRINT TAB( 3,loop%+ 3)CHR$(&8D)FNtime(TIME,12)CHR$(&86)"= 12 hour clock system"; 3120 PRINT TAB( 3,loop%+ 5)CHR$(&8D)FNtime(TIME,24)CHR$(&86)"= 24 hour clock system"; 3130 PRINT TAB( 3,loop%+16)CHR$(&8D)FNtenhour_clock(TIME)CHR$(&86)"= New 10 hours per day"; 3140 clock$=FNtenhour_clock(TIME) 3150 PRINT TAB(20,loop%+18)CHR$(&8D)CHR$(&86)"clock system"; 3160 NEXT loop% 3170 PRINT TAB(4,10)CHR$(&96)"jppj_pj_pppp"CHR$(&87)"Hours "CHR$(&84)"(0-23)" 3180 PRINT TAB(7,11)CHR$(&96)"jppj_pppp"CHR$(&87)"Minutes "CHR$(&84)"(0-59)" 3190 PRINT TAB(10,12)CHR$(&96)"jppppp"CHR$(&87)"Seconds "CHR$(&84)"(0-59)" 3200 PRINT TAB(4,15)CHR$(&96)"_ppppppppppp"CHR$(&87)"Decimal Hours"CHR$(&84)"(0- 9)" 3210 PRINT TAB(4,16)CHR$(&96)"j _pppppppp"CHR$(&87)"Minutes "CHR$(&84)"(0-99)" 3220 PRINT TAB(4,17)CHR$(&96)"j j _ppppp"CHR$(&87)"Seconds "CHR$(&84)"(0-99)" 3230 PRINT TAB(4,18)CHR$(&96)"* * *" 3240 PRINT TAB(0,23)CHR$(&84)CHR$(&9D)CHR$(&87)"The time is; "CHR$(&9C); 3250 clock_min$=MID$(clock$,4,2) 3260 IF LEFT$(clock_min$,1)="0" THEN clock_min$=" "+MID$(clock_min$,2) 3270 PRINT TAB(0,24)CHR$(&84)CHR$(&9D)CHR$(&87)LEFT$(clock$,2)" decimal hours and "clock_min$" minutes. "CHR$(&9C); 3280 ENDPROC 3290 : 3300 DEF PROCupdatePage_3(time%,day$,date%,month$,pageAt,pageSearchingFor%) 3310 LOCAL loop%,clock$,clock_min$ 3320 PROCupdateTitle(time%,day$,date%,month$,pageAt,pageSearchingFor%) 3330 FOR loop%=3 TO 4 3340 PRINT TAB(4,loop%+ 3)FNtime(TIME,12); 3350 PRINT TAB(4,loop%+ 5)FNtime(TIME,24); 3360 PRINT TAB(4,loop%+16)FNtenhour_clock(TIME); 3370 NEXT loop% 3380 clock$=FNtenhour_clock(TIME) 3390 clock_min$=MID$(clock$,4,2) 3400 IF LEFT$(clock_min$,1)="0" THEN clock_min$=" "+MID$(clock_min$,2) 3410 PRINT TAB(3,24)LEFT$(clock$,2); 3420 PRINT TAB(24,24)clock_min$; 3430 ENDPROC 3440 : 3450 DEF PROCdisplayPage_4(pageAt%,pageSearchingFor%) 3460 LOCAL loop%,bar$ 3470 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,4,pages%) 3480 bar$=CHR$(&94)+CHR$(&FF)+CHR$(&87) 3490 PRINT TAB(19,1)CHR$(&FC) 3500 PRINT TAB(18,2)bar$ 3510 FOR loop%=3 TO 4 3520 PRINT TAB(0,loop%)CHR$(&86)CHR$(&8D)"Old 24 hour day "bar$" New 10 hour day"; 3530 NEXT loop% 3540 PRINT TAB(18,5)bar$ 3550 PRINT TAB(1,6)"24 hours = 1 day "bar$" 10 hours = 1 day" 3560 PRINT" 60 min's = 1 hour"bar$"100 min's = 1 hour" 3570 PRINT" 60 sec's = 1 min."bar$"100 sec's = 1 min." 3580 PRINT TAB(18,9)bar$ 3590 PRINT TAB(0,10)CHR$(&84)CHR$(&9D)CHR$(&87)"To convert the time from the 24 hour" 3600 PRINT TAB(0,11)CHR$(&84)CHR$(&9D)CHR$(&87)"system to the 10 hour system;" 3610 PRINT 3620 PRINT" Hours x 3600" 3630 PRINT" + Minutes x 60" 3640 PRINT" + Seconds" 3650 PRINT" = Time in seconds (24 hour clock)" 3660 PRINT 3670 PRINT" 24 hour seconds x (1000/864)" 3680 PRINT" = seconds in 10 hour format. (HrMiSc)" 3690 PRINT 3700 PRINT" seconds / 100 = Minutes" 3710 PRINT" seconds / 10000 = Hours" 3720 PRINT TAB(0,24)CHR$(&84)CHR$(&9D)CHR$(&87); 3730 ENDPROC 3740 : 3750 DEF PROCdisplayPage_5(pageAt%,pageSearchingFor%) 3760 LOCAL loop% 3770 PROCtitle(TIME,FNday(os_ok%),FNdate(os_ok%),FNmonth(os_ok%),pageAt%,pageSearchingFor%,5,pages%) 3780 FOR loop%=2 TO 3 3790 PRINT TAB(15,loop%)CHR$(&8D)"TIME ZONES"; 3800 NEXT loop% 3810 PRINT TAB(15,4)CHR$(&97)STRING$(10,CHR$(&60)) 3820 PRINT"24 hour to 10 hour"'" time zones;" 3830 PRINT'"G.M.T. = + 0'00" 3840 FOR loop%=1 TO 12 3850 tz$=RIGHT$(" +/-"+STR$(loop%),6) 3860 PRINT TAB( 0,loop%+8)tz$" ="; 3870 S%=(loop%/24)*1000 3880 S%=S%/25:S%=S%*25 3890 H%=S%/100 3900 M%=S%MOD100 3910 IF H%<>0 OR M%<>0 THEN PRINT RIGHT$(" +/-"+FNnum(H%," ",1),5)"'"; 3920 IF H%<>0 OR M%<>0 AND M%<>0 THEN PRINT FNnum(M%,"0",2); 3930 NEXT loop% 3940 PRINT TAB(20,5)"10 hour to 24 hour"TAB(20,6)" time zones;" 3950 PRINT TAB(20,8)"G.M.T. = + 0:00" 3960 FOR loop%=1 TO 5 3970 tz$=RIGHT$(" +/-"+STR$(loop%),6) 3980 PRINT TAB(20,loop%+8)tz$"'="; 3990 S%=(loop%/10)*24 4000 IF S%<>0 THEN PRINT RIGHT$(" +/-"+FNnum(S%," ",2),6); ELSE PRINT SPC(5)"0"; 4010 PRINT":00"; 4020 NEXT loop% 4030 ENDPROC 4040 : 4050 DEF PROCloadMusic 4060 REM Edit this procedure to point to your Symphony or Tracker file. 4070 LOCAL module$,tune$,cd_rom%,type% 4080 LOCAL ERROR 4090 ON ERROR LOCAL ENDPROC 4100 PRINT'" Loading music...." 4110 type% =1 4120 cd_rom%=6 -6 4130 CASE cd_rom% OF 4140 WHEN 1: 4150 REM ** Acorn User CD-ROM 1 ** 4160 module$="CDFS::ACORN_USER_1.$.DEMOS.S_TO_Z.SYMPHONY.PlayModule.DSymPlay" 4170 tune$ ="CDFS::ACORN_USER_1.$.DEMOS.S_TO_Z.SYMPHONY.Symphonies.Nicole" 4180 WHEN 2: 4190 REM ** Archimedes World CD-ROM 1 ** 4200 module$="CDFS::AWCD1.$.COMMERCIAL.AUDIO.OREGAN.SYMPHONY1.PlayModule.DSymPlay" 4210 tune$ ="CDFS::AWCD1.$.COMMERCIAL.AUDIO.OREGAN.SYMPHONY1.Symphonies.BitOfEon" 4220 WHEN 3: 4230 REM ** Archive CD-ROM 1 (1995)** 4240 module$="CDFS::ARCHIVE95.$.DISCS.SHAREWARE.SHARE_50.BLUEMONDAY" 4250 PRINT''module$; 4260 OSCLI("*RmEnsure CoconizerSong 1.34 RmLoad "+module$) 4270 tune$ ="" 4280 type% =0 4290 WHEN 4: 4300 REM ** Acorn User CD-ROM 2 ** 4310 module$="CDFS::ACORN_U2.$.DEMOS.SHERSTON.VOYAGE.!VOYDEMO.PM" 4320 tune$ ="CDFS::ACORN_U2.$.DEMOS.SHERSTON.VOYAGE.!VOYDEMO.SOUND.SOUNDS1" 4330 tune$ ="CDFS::ACORN_U2.$.DEMOS.CLARES.TITLER.!SEQUENCER.TRACKTUNE" 4340 type% =2 4350 WHEN 5: 4360 REM ** APDL-PD1 CD-ROM ** 4370 module$="CDFS::APDL_PD_1.$.MAGAZINES.CD_01_93.!CD-01/93.PM" 4380 tune$ ="CDFS::APDL_PD_1.$.MAGAZINES.NEWDAWN_1.!New_Dawn.MUSIC.Credits" 4390 tune$ ="CDFS::APDL_PD_1.$.MAGAZINES.NEWDAWN_1.!New_Dawn.MUSIC.Intro" 4400 REM tune$ ="CDFS::APDL_PD_1.$.MAGAZINES.NEWDAWN_1.!New_Dawn.MUSIC.Mag" 4410 type%=2 4420 OTHERWISE: 4430 REM ** APDL-PD2 CD-ROM ** 4440 module$="CDFS::APDL_PD_2.$.MUSIC.SYMPHONY._SYMPHONY.PLAYMODULE.DSYMPLAY" 4450 tune$ ="CDFS::APDL_PD_2.$.MUSIC.SYMPHONY" 4460 REM tune$=tune$+"._DIGIT.2UNLIMIMIX" 4470 REM tune$=tune$+".C.CRYBABY" 4480 REM tune$=tune$+"._DIGIT.1993" 4490 REM tune$=tune$+".B.BLADERAVER" 4500 tune$=tune$+".H.HUMAN" 4510 ENDCASE 4520 IF type%<=0 THEN ENDPROC 4530 IF type%=2 THEN 4540 OSCLI("*RmEnsure TrackerModule 1.00 RmLoad "+module$) 4550 PRINT'" Loading Tracker music file;"'RIGHT$(" "+tune$,40); 4560 OSCLI("*PlayMod "+tune$) 4570 OSCLI("*PlayVolume 100") 4580 ELSE 4590 OSCLI("*RmEnsure DSymphonyPlayer 1.00 RmLoad "+module$) 4600 PRINT'" Loading Symphony music file;"'RIGHT$(" "+tune$,40); 4610 SYS"DSym_Load",tune$ 4620 REM Vol 0=off 64=max 4630 SYS"DSym_Vol",15 4640 SYS"DSym_RestartSong" 4650 ENDIF 4660 ENDPROC 4670 : 4680 DEF FNread_varable(varable$) 4690 LOCAL end% 4700 LOCAL ERROR 4710 REM ON ERROR LOCAL =REPORT$ 4720 ON ERROR LOCAL ="" 4730 REM DIM workspace% &100 4740 SYS"OS_ReadVarVal",varable$,workspace%,&100 TO,,end% 4750 workspace%?end%=&0D 4760 =$workspace% 4770 : SOUND 1,-10,200,7 REM Type SAVE"File" then type QUIT for the desktop. SAVE"