'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