MG SuperCalc archive (which contains all necessary files for running the applet in your local environment) is available for downloading from our download page.
Information about MG SuperCalc is summarized in the following sections:
One of them is MG SuperCalc's ability to handle arbitrarily
long numbers in each, hex., dec., oct. and bin. radix notation.
This means that you will never get the Result is too large message
which you can get from other calculators.
Just go on and summarize all your stock market profits... you can't be
so rich that MG SuperCalc wouldn't be able to handle your
fortunes up to the last tiny coin you own.
Another feature is high degree of parallelism. Calculators usually aren't multithreaded. MG SuperCalc involves high degree of parallel calculations. Please read the How MG SuperCalc operates internally section for details.
[MG SuperCalc] [Contents]
In case of long calculations, the user can type-ahead its input while other MG SuperCalc's activities are performed in the background. If calculator is in the edit mode (the underscore ( _ ) character is appended to the number on the display), MG SuperCalc won't ship its result to the display, even if calculation has been completed while the user is editing the input number. If you're going to use MG SuperCalc seriously, we suggest opening the Java console window since every result that is supposed to be shipped to calculators display is always shipped also to that window.
If the number on the display doesn't fit, MG SuperCalc activates
horizontal scroll buttons ([<<]
,
[<]
, [>]
and
[>>]
) so that you can view it all by scrolling
it left or right. Single arrow buttons scroll the contents
of the display for one digit while the [<<]
button displays the beginning of the number on the display and
the [>>]
button displays its tail.
If calculator is in the edit mode (the underscore ( _ ) character is
appended to the number on the display), you can erase the tail of the number
by using the [Back]
button.
The [CE]
button erases the whole contents of the
display, while the [AC]
button, besides erasing the
whole contents of the display, also shuts down all threads that might be
performing any internal calculations and finally invokes
the garbage collector.
Please note that MG SuperCalc won't stop threads performing
calculations if you leave this page (on purpose!). So if you want to be
sure that MG SuperCalc is not using your precious CPU cycles, please
push the [AC]
button on MG SuperCalc which will
shutdown all active threads and release all CPU resources taken by the applet.
Otherwise you can give MG SuperCalc a job to do and in the meantime
you can go and do some surfing, after some time return to this page and
the most probably you will find results of Calculation waiting for you.
[MG SuperCalc] [Contents]
StringBuffer
class.
That means that crunching HUGE numbers may take some time. But there
are at least two possible approaches to boost the performance.
The first solution would be to run MG SuperCalc on multi-processor host (in case that Sun's already fixed libraries to enable applet threads riding more CPUs simultaneously?).
The other solution is much simpler and cheaper. You can disable animation (spinning balls) by simply clicking on the animated area of MG SuperCalc. If you do so, the stand changes its color from yellow to gray. You can again enable the animation by clicking the same area once again, and the stand will change its color from gray back to yellow.
[MG SuperCalc] [Contents]
FSM runs in a single thread (only one calculation can be performed simultaneously). Besides, FSM has been designed for performing calculations only on numerical input in binary radix.
Parallelism in MG SuperCalc has been achieved in data channels by using active objects (active queue items). When an item containing a number is enqueued, it starts recalculating the number from the given radix to required radix. Items can perform this calculations simultaneously, each in it's own thread.
While in the input queue, each active item has to convert its numerical input into binary radix accepted by the FSM and while in the output queue, each active item has to convert the FSMs binary output into whatever is the current radix mode selected by the user.
[MG SuperCalc] [Contents]
The animation area of the applet consists of three towers which are used as axes for spinning balls around them. Each spinning ball indicates activity of one or more threads in the applet. Of course, short-life threads usually don't get animated.
The leftmost tower in the animation area indicates activity of the input data channel (converting user inputted numbers into binary). If one ball is spinning around that axis it means that one item in the data channel is active (performing the calculation). In case of two spinning balls around that axis, two items are active and in case of three spinning balls, three or more items are active.
The middle tower indicates activity of the FSM. In this version, at most one ball can spin around that axis since FSM runs in a single thread.
The rightmost tower indicates activity in the output data channel (preparing FSM's results for shipping them to the display). If one ball is spinning around that axis it means that one item in the data channel is active (performing the calculation). In case of two spinning balls around that axis, two items are active and in case of three spinning balls, three or more items are active.
Animation can be disabled by clicking animated area of the applet. In that case, spinning balls will disappear and the stand will change its color from yellow to gray. By clicking animated area again, the animation will be activated (if any applicable threads are active, corresponding balls will appear and the stand will change its color from gray to yellow).
[MG SuperCalc] [Contents]
[MG SuperCalc] [Contents]
NumberCruncher
class will be re-implemented by using
simple char[]
data structures instead of currently used
StringBuffer
class.
[MG SuperCalc] [Contents]
javai.dll
's
developers should check this case (or maybe it's just our
problem, but we've failed to see the reason:-).
Anyway, the NumberCruncher
class will soon be re-implemented
by using simple char[]
data structures (for internal
number representation) instead of currently used
StringBuffer
class so this malfunction will be
eliminated (probably). For the time being, if you're unlucky,
you can get the following report before your browser finally
collapses:
appletviewer caused an invalid page fault in module JAVAI.DLL at 0137:10011e05. Registers: EAX=04e383b0 CS=0137 EIP=10011e05 EFLGS=00010293 EBX=04e383b0 SS=013f ESP=051ef458 EBP=006b8148 ECX=c107aaf4 DS=013f ESI=01393000 FS=2f07 EDX=bffbf9e0 ES=013f EDI=01395c80 GS=0000 Bytes at CS:EIP: 8b 2b f7 c5 07 00 00 00 0f 85 ab 00 00 00 3b f5 Stack dump: 006b8148 00000000 10011cc0 013981c8 00000000 0142c990 01692ffc 04e3ff64 013981c8 10017dda 006b8148 013981c8 00000000 00000000 005863b3 00000002
[MG SuperCalc] [Contents]
If the applet doesn't seem to be loaded correctly (broken appearance) and if you are using the Netscape navigator , you can try to reload MG SuperCalc by holding down the SHIFT key on you keyboard and simultaneously selecting Netscape's RELOAD or RELOAD FRAME items from the VIEW sub-menu. If it doesn't work, you can follow other applet-reloading recipes presented by John D. Mitchell in JavaWorld.
For your convenience, you can also download the MG SuperCalc archive from our download page which contains all necessary files for running MG SuperCalc in your local environment.
[MG SuperCalc] [Contents]
[MG SuperCalc] [Contents]