I will now celebrate just a little

you see, I wrote this bio plotter for mirc and gave it too much to do.
I gave it tasks that it had no ability to do, such as lunar apogee/perigee times and distances.
This requires sin and other calcs to the 14th or better decimal places. and it was very slow.

with my new DLL, mirc scripting is as good as java scripting - I will now demonstrate - what took 30 secs is
calc'ed in a split second, estimates at 100 times the old rate or better.

Apogee -------------------------GMT 2003---------------------- Perigee
Jan 11  1:29 404266 km    F-7d 9h --- Jan 24  5:23 369479 km    F+5d18h
Feb  7 20:59 404481 km    N+6d10h --- Feb 19 16:27 365386 km    F+2d16h
Mar  7 15:50 405310 km    N+4d13h --- Mar 19 17:07 360032 km    F+1d 6h
Apr  4  4:29 406213 km -  N+2d 9h --- Apr 17  3:22 357291 km +  F+   7h
May  1  8:18 406593 km -  N-   3h --- May 15 13:24 357298 km +  F-  14h
May 28 12:08 406191 km -  N-2d16h --- Jun 12 23:36 360053 km    F-1d11h
Jun 25  0:50 405267 km    N-4d17h --- Jul 11  0:14 365415 km    F-2d19h
Jul 22 19:42 404424 km    N-6d11h --- Aug  6 10:57 369487 km    F-5d17h
Aug 19 15:12 404196 km    F+7d10h --- Aug 31 16:10 367837 km    N+3d22h
Sep 16 10:42 404712 km    F+5d18h --- Sep 28  8:34 362368 km    N+2d 5h
Oct 14  3:09 405609 km    F+3d19h --- Oct 26 13:25 358198 km    N+1d 0h
Nov 10 10:43 406276 km ++ F+1d 9h --- Nov 24  0:44 356988 km -- N+   1h
Dec  7 12:59 406259 km +  F-1d 7h --- Dec 22 12:14 358364 km    N-  21h

F/N = Event is closer to Full or New moon by plus/minus days and hours.
++/-- = The closest perigee and most distant apogee are marked with
               "++" if closer in time to full Moon or "--" if closer to new Moon.
Other close-to-maximum apo/perigees are flagged with a single character.

also, being that dll support is a security risk I have created "alias Verify".
if uses borland's impdef.exe to read exports then makes a comparison to calling script
With exports verified and cpp code included - it need not be such a frighten thing.
here is verify ------------

alias Verify {
var %vf = $scriptdir $+ Borland_impdef.exe
if ($file(%vf).size == 73728) {
if ($?!="I have verified Borland's dll export reader to be 73728 bytes, Continue? Results in 5 secs.") verifydll %vf
}
}
alias verifydll {
var %vt = $scriptdir $+ verify.txt
var %vd = $mircdir $+ mircdll.def
var %s = $1 mircdll mircdll
run -n command.com /c %s > %vt
.timer.display 1 5 displayresults %vd
}
alias displayresults {
if ($1) var %vd = $1
else var %vd = $mircdir $+ mircdll.def
var %l = $lines(%vd), %i = 0, %s = 0
var %str
while (%i <= %l) {
inc %i
%s = $read(%vd,n,%i)
if ((%s) && (@ isin %s)) %str = %str $gettok(%s,1,32)
}
echo -s Exports in mircdll :
if (%str) echo -s %str
var %myslf = $script
var %n = $numtok(%str,32), %j = 0, %tok, %tot
%l = $lines(%myslf)
echo -s Examining my logic in file %myslf
while (%j <= %n) {
inc %j | %tot = 0
%tok = $gettok(%str,%j,32)
%i = 0
while (%i <= %l) {
inc %i
%s = $read(%myslf,n,%i)
if (%tok isin %s) inc %tot
}
if (%tot) echo -s %tok found %tot time(s)
}
.remove %vd
}
Exports in mircdll :
add bio calibrate dadd datan2 dcos ddiv dmult dpow dsin dsqrt dsub load sphere sub unload wparms
Examining my logic in file c:\programming\mirc591\golf3d\sphere.mrc
add found 5 time(s)
calibrate found 1 time(s)
dadd found 2 time(s)
datan2 found 2 time(s)
dcos found 2 time(s)
ddiv found 2 time(s)
dmult found 2 time(s)
dpow found 2 time(s)
dsin found 2 time(s)
dsqrt found 2 time(s)
dsub found 2 time(s)
load found 8 time(s)
sphere found 9 time(s)
sub found 2 time(s)
unload found 3 time(s)
wparms found 1 time(s)