I am trying to get a 3-4 digit input with a decimal from the graph screen but need some help. This routine

```
:ClrDraw
:DelVar A15→B
:Text(1,82,"
:Text(0,82," LET
:" →Str1
:Repeat max(M={45,105,21
:‾5→C
:Repeat M=23 or max(Ans={21,45,105}) or (not(A)M>40 and not(A)M<95 and M≠44) or max(AAns={92,93,94,102,82,83,84,72,73,74
:C+1-10(C>4→C
:Text(29,B,sub(" [",1+(Ans>0),1
:Text(29,B+1,"
:If M=31
:Then
:not(A→A
:Text(0,83,sub("LETNUM",3A+1,3
:End
:getKey→M
:End
:If min(M≠{21,105,45,23
:Then
:If A
:Then
:sub("0123456789",27-3int(.1M)+10fPart(.1M)+2(M=102),1
:Text(29,B,Ans
:Str1+Ans→Str1
:B+4→B
:Else
:sub("ABC DEFGHIJKLMNOPQRSTUVWXYZθ",M-5int(.1M)-20,1
:Text(29,B,Ans
:Str1+Ans→Str1
:B+4→B
:End
:Else
:If M=23 and 1<length(Str1
:Then
:B-4→B
:Text(29,Ans,"
:sub(Str1,1,length(Str1)-1→Str1
:End
:End
:End
```

works very well but doesn't support decimals and requires you to switch to numlock if you want to input numbers. This other routine:

```
DelVar A" →Str1
Repeat K=55
Output(1,16,sub("A1",A+1,1
Output(2,16,Str1+"^ //one space afterwards
Repeat Ans
getKey
End
Ans-5int(.1Ans→K
"*
If K-20>16A
sub("789**456**123**0.‾**ABC**DEFGHIJKLMNOPQRSTUVWXYZθ'* :?*",K-36A,1
If Ans≠"*
Str1+Ans→Str1
A xor K=16→A
length(Str1
If Ans≠1
sub(Str1,(K=55)+1,1+(K≠25)(Ans-1-(21=abs(K-34→Str1
If K=25
ClrHome
End
ClrHome
Str1
```

supports decimals but is very ugly, brings me to the home screen (which I want to avoid) and also requires numlock. Is there any way to simplify the first routine so that it doesnt require numlock (only number input is possible) but also supports decimals? I don't have coding experience so any help would be much appreciated thank you :)

ps. I tried to provide links to the respective code but im too new to the forum for that. the first routine is off the techniques page and the second is from an old thread I found.