SMF Script 8 — File Browser
SMFScript8v8.13 / SMFScript8v8.13 / system / calc.mrc
calc.mrc — 3.54 KB — Download this file
alias calculate {
dialog -mn calc calc
if (%calc.mem) did -a calc 11 X
}
dialog calc {
title "SMF Calculator 0.99b"
size -1 -1 248 261
button "",16,1 1 -3 -3,cancel
edit "",17,9 10 228 25,right,read,autohs
edit "",18,9 40 136 23,read,autohs,right
edit "",11,148 40 43 23,read,center
button "CE",12,195 40 41 23
button "7",7,10 68 41 41
button "8",8,56 68 41 41
button "9",9,103 68 41 41
button "/",13,149 68 41 41
button "RM",10,195 68 41 41
button "4",4,10 114 41 41
button "5",5,56 114 41 41
button "6",6,103 114 41 41
button "X",14,149 114 41 41
button "M-",15,195 114 41 41
button "1",1,10 160 41 41
button "2",2,56 160 41 41
button "3",3,103 160 41 41
button "-",19,149 160 41 41
button "M+",20,195 160 41 41
button "0",21,10 205 41 41
button "+/-",22,56 205 41 41
button ".",23,103 205 41 41
button "+",24,149 205 41 41
button "=",25,195 205 41 41
}
on *:dialog:calc:sclick:*:{
if (%calc.tmp.e) && ($did != 20) && ($did != 16) { did -r calc 17,18 | unset %calc.tmp.* }
if ($did = 16) unset %calc.tmp.*
if ($did = 12) { did -r calc 17,18 | unset %calc.tmp.* }
if ($did = 21) || ($did < 10) {
if ($did = 21) var %calc.tmp.n = 0 | else var %calc.tmp.n = $did
if (%calc.tmp.r) { did -ra calc 17 %calc.tmp.n | unset %calc.tmp.r }
else did -ra calc 17 $did(17).text $+ %calc.tmp.n
}
if ($did = 13) || ($did = 14) || ($did = 19) || ($did = 24) {
if (%calc.tmp.e) { did -r calc 17,18 | unset %calc.tmp.* | return }
if ($replace(%calc.tmp.1,0,1) = $null) && ($replace($did(17).text,0,1) = $null) return
if ($did = 13) set -u0 %calc.tmp.tc /
if ($did = 14) set -u0 %calc.tmp.tc *
if ($did = 19) set -u0 %calc.tmp.tc -
if ($did = 24) set -u0 %calc.tmp.tc +
if ($replace(%calc.tmp.1,0,1)) && (%calc.tmp.2 = $null) {
set %calc.tmp.2 $did(17).text
set %calc.tmp.1 $calc(%calc.tmp.1 %calc.tmp.c %calc.tmp.2)
if (e !isin %calc.tmp.1) {
did -ra calc 18 $did(18).text $+ %calc.tmp.2 $+ %calc.tmp.tc
did -ra calc 17 %calc.tmp.1
unset %calc.tmp.2
set %calc.tmp.c %calc.tmp.tc
set %calc.tmp.r -
}
else {
did -ra calc 18 $did(18).text $+ %calc.tmp.2 = $gettok(%calc.tmp.1,1,101) E
did -ra calc 17 $gettok(%calc.tmp.1,1,101) E
unset %calc.tmp.*
set %calc.tmp.e -
}
}
if (%calc.tmp.1 = $null) {
set %calc.tmp.1 $did(17).text
did -a calc 18 $did(17).text $+ %calc.tmp.tc
set %calc.tmp.c %calc.tmp.tc
set %calc.tmp.r -
}
}
if ($did = 25) && ($replace(%calc.tmp.1,0,1)) {
if (%calc.tmp.r) {
did -ra calc 18 $left($did(18).text,-1) $+ = $+ %calc.tmp.1
set %calc.tmp.e -
}
if ($replace($did(17).text,0,1)) && (%calc.tmp.r = $null) {
set %calc.tmp.2 $did(17).text
set %calc.tmp.1 $calc(%calc.tmp.1 %calc.tmp.c %calc.tmp.2)
did -ra calc 18 $did(18).text $+ %calc.tmp.2 $+ = $+ %calc.tmp.1
did -ra calc 17 %calc.tmp.1
unset %calc.tmp.2
set %calc.tmp.e -
}
}
if ($did = 22) { if ($left($did(17).text,1) = -) did -ra calc 17 $remove($did(17).text,-) | elseif ($did(17).text) did -ra calc 17 - $+ $did(17).text }
if ($did = 23) && ($replace($did(17).text,0,1)) && ($chr(46) !isin $did(17).text) did -ra calc 17 $did(17).text $+ .
if ($did = 10) && (%calc.mem) did -ra calc 17 %calc.mem
if ($did = 15) { unset %calc.mem | did -r calc 11 }
if ($did = 20) && ($did(17).text) { set %calc.mem $did(17).text | did -ra calc 11 X }
}