Unfortunately, the Openwave WAP-browser (5.0.2.1.103) used in Siemens ME45 is rather badly written. It does not fulfill WMLS specifications and the implementation of arithmetic is a real disaster. Here is a brief list of some bugs that I have met:
From time to time the browser collapses without any apparent reason.
The overflow (underflow) is not handled (e.g.,
1.1e-30 * 1.1e-20 -> 1.4e+27
).If a result should be "
1e-X
",X>3
, the system returns ":.-Y
", whereY=X+1
.The system refuses inputs of the form "
X.eY
" (with a decimal point followed bye
) but it returns results in this form.The library Dialogs probably clears the stack (at least the external functions from a script declared by the pragma use cannot be called after a Dialogs-function call).
Sometimes the script engine has problems with "long" else-statements (that contain a couple of commands) - it is used to freeze up.
I tried to correct ("compensate" or "bypass") these defects by patches in my scripts. But, it is impossible to avoid them in full (e.g., the maximal exponent is watched now, but the input
10000e36
slips through and leads to absurd results). Besides, the existence of other faults of the browser cannot be excluded. Therefore I cannot guarantee 100% reliability of the program. However, I had tested it thoroughly and it worked well and unfailingly for all "reasonable" inputs [like numbers x, 10-15 < |x| < 1015].