*NAME logarithms  7: 12: 7:  ""hd%=0:mins%=0:secs%=0:eflag%=0 %$whd%=0:wmins%=0:wsecs%=0:wleft%=0 &the_log=0:alog=0:wlog=0 *_box_window , 17,5) "" whd% . 28,5) "" wmins% 0 37,5) "" wsecs% 2 46,5) "" wlog 4wleft%=whd%+wmins%+wsecs% +6 (wleft%=0) (wlog=0) _do_antilog '8 (wleft%=0) (wlog=0) _do_log *: (wleft%=0) (wlog=0) _both_empty +< (wleft%=0) (wlog=0) _both_full >_wait_for_operator @ D J _wait_for_operator L ;N Let the operator read the screen. In case double byte )P codes come in use the GET operator. R T (0)=-1 V X 1,51,64,32,32 Z \wleft%= ^ wleft%=0 wleft%= ` b h _both_empty j /l None of the four input areas is non-zero. n ;p 45,0);"* * * * * * * * * N O T E * * * * * * * *"; ;r 45,1);"* A temporal value of zeroes has no valid *"; 5@ eflag% the_log alog hd% mins% secs% B D _box_window F H 12 J 9L Define a Z88 box for the logarithm programs to use. N 5P 1,51,64,102,32,1,50,42,67,1,50,42,69,1,50,42,70 +R 10,1);" A S T R O L O G I C A L "; %T 37,1);" L O G A R I T H M S "; #V 1,50,88,102,1,50,42,74: "C"; )X 1,50,42,74: " 1991, L.J.DEVANEY."; 5Z 1,51,64,102,34,1,50,42,73,1,50,42,69,1,50,42,76 \ " version 1.00"; ^ 13,3);"Hours/Degs"; ` 25,3);"Minutes"; b 34,3);"Seconds"; d 46,3);"Logarithm"; f 79,6);"ESC to exit."; h j !p _take_log(hd%,mins%,secs%) r Bt Logarithms for finding the proportions of time and/or angle. Cv Used with astrology calculations. Minimum input is one second 9x of time/arc. Maximum input is 24.00.00, hms or dms. z !| Version 1.00 for Z88 Basic. ~ + eflag% an error/success indicator. A -1 shows too small or too large an argument given. 0 the log for too small is 10.0. 0 the log for too large is 0.0. $ 0 shows all is well. 4 +1 shows an incorrect argument given. A the_log the result required, in the form of Raphael's log. ! hd% the degrees/hours.  mins% the minutes.  secs% the seconds.  -eflag%=0:the_log=0: presume all is well. * (hd%<0) (hd%>24) eflag%=1: * (mins%<0) (mins%>59) eflag%=1: * (secs%<0) (secs%>59) eflag%=1:  5 (hd%+mins%+secs%)=0 eflag%=-1:the_log=10.0:  0 proceed with the scaling to a real number.   a !a=hd%+(mins%/60)+(secs%/3600)   (a>24.0) eflag%=-1:  the_log=(24)-(a)    _give_log(alog)  B Logarithms for finding the proportions of time and/or angle. B Used with astrology calculations. Maximum input is about 4.5 A and the minimum zero. Output values range from 1 second to . 24 hours/degrees, in 1 second intervals.  ! Version 1.00 for Z88 Basic.  + eflag% an error/success indicator. A -1 shows too small or too large an argument given. 6 the result for too small is 24.00.00 6 the result for too large is 0.00.00 $ 0 shows all is well. 4 +1 shows an incorrect argument given. 7 alog the input, in the form of Raphael's log. * hd% the degrees/hours required. $ mins% the minutes required. $ secs% the seconds required.  9eflag%=0:hd%=0:mins%=0:secs%=0: presume all is well.  (alog<0) eflag%=1:   (alog>5) eflag%=-1:  0 proceed with the scaling to a real number.  a,b%,c a=10^((24)-alog)  $ (a>24.0) eflag%=-1:hd%=24:  b%=(a):a=a-b%:hd%=b%  "c=a*60:b%=(c):a=c-b%:mins%=b%  !c=(a*60)+0.5:b%=(c):secs%=b%  ' secs%>59 secs%=0: mins%=mins%+1  # mins%>59 mins%=0: hd%=hd%+1