'Calculator
'By SierraKen on July 29, 2020.
'------------------------------
'This is my very first regular calculator.
'Thank you to B+ and TempodiBasic for the help and everyone for the inspiration!
'This was a 4 day project and I've wanted to make this all my life. Ever since I was real little
'playing around with my parents' calculator.
'Thank you Dav for the icon code!
'Added Clipboard by clicking the output number.
'Added Rad2Deg (and Deg2Rad), second power, Logarithm, and Pi buttons.
'Added 1/x, x/2, exp, postive or negative.
'Load the icon - call this somewhere near the top of your program
_TITLE "Calculator - Click output to copy."
'Setup calculator
LINE (50, 75)-(350, 350), _RGB32(255, 255, 255), B
'Buttons
c = c + 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(100 + c
, 100 + c
, 100 + c
), B
PAINT (buttonx
+ 12, buttony
+ 12), _RGB32(100 + c
, 100 + c
, 100 + c
) c = 0
buttonx = 275: buttony = 20
'Green C Button
c = c + 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(50, 100 + c
, 50), B
PAINT (buttonx
+ 12, buttony
+ 12), _RGB32(50, 100 + c
, 50)
'Label Buttons
mouseLeftButton = 0
'Clipboard
'Clear
a = 0: s = 0: t = 0: d = 0: num$ = ""
buttonx = 275: buttony = 20
'1/x
num = 1 / num
skipthis:
buttonx = 50: buttony = 405
'x/2
num = num / 2
buttonx = 126: buttony = 405
'EXP
buttonx = 200: buttony = 405
'Postive or Negative
num$ = "-" + num$
skipplusnegative:
buttonx = 275: buttony = 405
'Radians and Degrees
deg = deg + 1
deg2rad:
deg = 0
skipdeg2rad:
buttonx = 50: buttony = 350
'Second Power
num = num ^ 2
buttonx = 126: buttony = 350
'logarithm
skiplog:
buttonx = 200: buttony = 350
'Pi
buttonx = 275: buttony = 350
'Square Root
skip1:
buttonx = 50: buttony = 75
'Sine
buttonx = 126: buttony = 75
'Cosine
buttonx = 200: buttony = 75
'Tangent
buttonx = 275: buttony = 75
'Number Buttons
num$ = num$ + "7"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 50: buttony = 130
num$ = num$ + "8"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 126: buttony = 130
num$ = num$ + "9"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 200: buttony = 130
num$ = num$ + "4"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 50: buttony = 185
num$ = num$ + "5"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 126: buttony = 185
num$ = num$ + "6"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 200: buttony = 185
num$ = num$ + "1"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 50: buttony = 240
num$ = num$ + "2"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 126: buttony = 240
num$ = num$ + "3"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 200: buttony = 240
num$ = num$ + "0"
IF n
= 1 THEN num$
= "-" + num$: n
= 0 buttonx = 50: buttony = 295
'Decimal
buttonx = 126: buttony = 295
num$ = num$ + "."
skipdec:
'Equals
buttonx = 200: buttony = 295
'Add
d = 0: a = 1: s = 0: t = 0
oldnum$ = num$
num$ = ""
num
= VAL(oldnum$
) + VAL(num$
) a = 0
nex4:
buttonx = 275: buttony = 295
'Subtract
d = 0: a = 0: s = 1: t = 0
oldnum$ = num$
num$ = ""
num
= VAL(oldnum$
) - VAL(num$
) s = 0
nex3:
buttonx = 275: buttony = 240
'Multiply
d = 0: a = 0: s = 0: t = 1
oldnum$ = num$
num$ = ""
num
= VAL(oldnum$
) * VAL(num$
) t = 0
nex2:
buttonx = 275: buttony = 185
'Divide
d = 1: a = 0: s = 0: t = 0
oldnum$ = num$
num$ = ""
num
= VAL(oldnum$
) / VAL(num$
) d = 0
nex1:
buttonx = 275: buttony = 130
'For Number Buttons.
number:
'For Math
number2:
'Pressing Each Button
press:
c = 110
c = c - 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(100 + c
, 100 + c
, 100 + c
), B
c = c + 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(100 + c
, 100 + c
, 100 + c
), B
'Pressing the Green C Button.
zero:
c = 110
c = c - 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(50, 100 + c
, 50), B
c = c + 10
LINE (buttonx
+ bb
, buttony
+ bb
)-(buttonx
+ 75 - bb
, buttony
+ 55 - bb
), _RGB32(50, 100 + c
, 50), B
'This Function is from Dav which makes the icon picture. It uses code at the start of this program.
FUNCTION BASIMAGE1&
'calculatio icon data A$ = ""
A$ = A$ + "haIkJ^eBK\557GZJOl02m5YDX5J1A:YC0aGE##Oc?0RUD5A:HDOA=N=2N96`"
A$ = A$ + ";87A#=X?hm4S6=N3_[XV4CRgn4]>co5=SJdI?IR9R7K2lSmNFke\bj?c<[I]"
A$ = A$ + "3QXknHbT9:]dB;Y`kblMd7Tn#B3cF=CZmYb:[Tb<c<Y<b83Ua8c5QJnTNjY["
A$ = A$ + "X[go?_W<f^AbX=I\7O8IGRiA[eSAbZ7[ZZ[nj[?Z`2;DgD#15lTf;ZXRXlc?"
A$ = A$ + "okdUEiL`Q<>Ua]nAb]4c3\?_<S8[;_Z[[4mmQIWMfDNiUg3eeTb\[<1T9\n#"
A$ = A$ + ":\4SR=obhEVAOUX[moCNM[n#j6965KQTImDj:U^BY;mZ[O4j7D>[T3Ukfin\"
A$ = A$ + "eEomg?EB9U`DLa5[#dfRLlm]7mi0PVb:[\R;MmY>o4mUom;D>NbQnn1OoEee"
A$ = A$ + "[kSNee7]lAjKcl=b#03T1o6NcX[Lg:Gjc3mIj[CmEbP_g>jjeLM3Ee5jg0m:"
A$ = A$ + "4DO85DRAaV?IFkER^V#V5TaUnAbU4c3\?WaGln3OT^Jc8gk=gCOLPT=9V7]F"
A$ = A$ + "GRkWOjYWVZYVJ8cV=cSA07;2]l1[okJn=mc6o9IbR9jG=o[4:8V>Lj#EM]jZ"
A$ = A$ + "[B3>hPdHS=6chS?^bX84i3FKTA6Q\Je:3V7;a<F1a2ilJ[]VZj2[=jXSB;_l"
A$ = A$ + "bdNk]7M`17#k_onlX8Dc74S=fH3Jb9WDAGH>\59n?7#<#^RLf[G_JZ[eGOM:"
A$ = A$ + "H`PdeGO=c=gLS#DcW#Q2aJ>JM1KQ37V^mfKe5ARKTSAlA^VBGYdE:Mmg]^6H"
A$ = A$ + "P1X012lRZ;\o\>k\CZWNjQjZ[^hl\nj[WkCIXQ6RlkgOL[[;_lBnk7onLK^i"
A$ = A$ + "VD]eF;eJ[]B]dB;D5ED1O^9;MeNk]CmfK_T=KfX>jX3Zk^kVeDS=f8EGMeAW"
A$ = A$ + "NjY?k[GUFJY\N#O:8VEGMeDIUE6IaRUTV^P]S>j8>o?olcY3?l#nN6TWhh[^"
A$ = A$ + "jZW]^>iTChc3SPc>k<VkO_`o7On:IFgh]FOD_EkkMa5GTOn<JJ^iV5RFnPeA"
A$ = A$ + "]5#\4?m2RYCW>EEG[\b:LmKD_;2AZo92]l1_GX]fJS1ce:Nj5TcNlhAhcGhn"
A$ = A$ + "TiVK>Fo^LiBID4RlIQ5FPVHR9D^?4cQ=]RI\2bETcaBM3<jcW?jR;^P1e65Q"
A$ = A$ + "JnPJck^k^?Z^1\Qed:^J1ba8ilOceiQ_hLR>>RnnN:k8gCTj:JBY[Dj2m5^m"
A$ = A$ + "fKcnnFBGc>k\DiUG>_?UMfIWTR^>nhSiL1m<mBY;DSMZYVRZZZZX]fJ[4^^P"
A$ = A$ + "?XoXIVIVGd[GH_3hMR3?l`lnCBdjJniWWO?WXW_CEgh^gMSn1`i1#>82el1e"
A$ = A$ + "FD[O3\VFaE;#>RL=Fd5je2g3\dB;A^MkFID4Rl1m>j`Q35MQi`VFa<F1iZFm"
A$ = A$ + "7RNRAoff]KG1lOVjn7oDXU?XWKlKS0`L]RWN1i\Xnian_JZYVDf[D4P=AXU?"
A$ = A$ + "Hm6JX1VH9Na3A_o[o3Ph%%L2"
btemp$ = ""
IF F$
<> "%" THEN C$
= C$
+ F$
B&
= B&
* 64 + ASC(MID$(B$
, t%
)) - 48 X$
= X$
+ CHR$(B&
AND 255): B&
= B& \
256