Trenly 29 Mar 2016 14:58

```
Lbl A
ClrHome
Menu("QUADRATICS","SOLVER",1,"SQUARE ROOT",4,"EQUATIONS",3,"QUIT",10
Lbl 1
ClrHome
Disp "AX²+BX+C=0
Prompt A,B,C
"AX^2+BX+C"→Y₁
⁻B→Q
2A→R
Q/R→S
AS²+BS+C→V
ClrHome
Disp "VERTEX:",S,V
Pause
(⁻B+√(B²-4AC))⁄(2A→F
(⁻B-√(B²-4AC))⁄(2A→E
Disp "ROOTS:",F,E
Pause
Goto A
Lbl 3
ClrHome
Disp "STANDARD FORM:","AX²+BX+C","VERTEX FORM:","A(X-H)²+K","FACTORED/BINOML:","(M+N)(O+P)","SYMMETRY EQTION:
Output(8,1,"⁻B⁄2A
Pause
Goto A
Lbl 4
ClrHome
Input "√( ):",W
√(W→W
Disp W
W*⁻1→X
Disp X
Pause
Goto A
Lbl 10
ClrHome
DelVar ADelVar BDelVar CDelVar XDelVar QDelVar SDelVar RDelVar VDelVar WStop
```

I used TokenIDE to see the code, and I noticed a few optimizations. Pause can be used the same as Disp, and there was a statement that I simplified by not calculating a value and storing it, just to use that value once. Also, adding the a+bi at the beginning prevents the nonreal answer error. My code comes out to 399 bytes

```
a+bi
Lbl A
ClrHome
Menu("QUADRATICS","SOLVER",1,"SQUARE ROOT",4,"EQUATIONS",3,"QUIT",10
Lbl 1
ClrHome
Disp "AX²+BX+C=0
Prompt A,B,C
"AX^2+BX+C"→Y₁
⁻B/2A→S
AS²+BS+C→V
ClrHome
Pause "VERTEX:",S,V
Pause "ROOTS:",(⁻B+√(B²-4AC))⁄(2A,(⁻B-√(B²-4AC))⁄(2A
Goto A
Lbl 3
ClrHome
Disp "STANDARD FORM:","AX²+BX+C","VERTEX FORM:","A(X-H)²+K","FACTORED/BINOML:","(M+N)(O+P)","SYMMETRY EQTION:
Output(8,1,"⁻B⁄2A
Pause
Goto A
Lbl 4
ClrHome
Input "√( ):",W
√(W→W
Pause W,-W
Goto A
Lbl 10
ClrHome
DelVar ADelVar BDelVar CDelVar SDelVar VDelVar WReturn
```