I have put it into a function code come next if you want you can add it to revolution fx.
void Input_Char (int x, int y, char * input)
{
int status_old[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int status_new[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char big_letter[] = {' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
int code[] = {KEY_CHAR_DP,KEY_CTRL_XTT,KEY_CHAR_LOG,KEY_CHAR_LN,KEY_CHAR_SIN,KEY_CHAR_COS,KEY
_CHAR_TAN,KEY_CHAR_FRAC,KEY_CTRL_FD,KEY_CHAR_LPAR,KEY_CHAR_RPAR,KEY_CHAR_COMMA,K
E
Y_CHAR_STORE,KEY_CHAR_7,KEY_CHAR_8,KEY_CHAR_9,KEY_CHAR_4,KEY_CHAR_5,KEY_CHAR_6,K
E
Y_CHAR_MULT,KEY_CHAR_DIV,KEY_CHAR_1,KEY_CHAR_2,KEY_CHAR_3,KEY_CHAR_PLUS,KEY_CHAR
_
MINUS,KEY_CHAR_0};
int i;
int position=0;
int print;
while(!IsKeyDown(KEY_CTRL_EXE)){
if(position < 32) {
for (i=0; i<27; ++i) {
status_old[i]=status_new[i];
}
for(i=0; i<27; ++i) {
status_new[i]=IsKeyDown(code[i]);
}
for(i=0; i<27; ++i) {
if((status_old[i]==0) && (status_new[i]==1)) {
input[position]=big_letter[i];
position++;
print=1;
}
}
}
if (position>0) {
if(IsKeyDown(KEY_CTRL_DEL) ){
position--;
input[position] = ' ';
print=1;
while(!IsKeyUp(KEY_CTRL_DEL));
}
}
if(print==1) {
PrintMini(y,x,(unsigned char*)input,MINI_OVER);
Bdisp_AllClr_DD();
Bdisp_PutDisp_DD();
Bdisp_AllClr_VRAM();
print=0;
}
}
}
float Input_Num (int x, int y)
{
int status_old[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int status_new[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char numbers[] = {'.', '7', '8', '9', '4', '5', '6', 'x', '/', '1', '2', '3', '+', '-', '0'};
int code[] = {KEY_CHAR_DP,KEY_CHAR_7,KEY_CHAR_8,KEY_CHAR_9,KEY_CHAR_4,KEY_CHAR_5,KEY_CHAR_6,K
EY_CHAR_MULT,KEY_CHAR_DIV,KEY_CHAR_1,KEY_CHAR_2,KEY_CHAR_3,KEY_CHAR_PLUS,KEY_CHA
R
_MINUS,KEY_CHAR_0};
int i;
int position=0;
int number;
int print;
char input[] = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
while(!IsKeyDown(KEY_CTRL_EXE)){
if(position < 32) {
for (i=0; i<15; ++i) {
status_old[i]=status_new[i];
}
for(i=0; i<15; ++i) {
status_new[i]=IsKeyDown(code[i]);
}
for(i=0; i<15; ++i) {
if((status_old[i]==0) && (status_new[i]==1)) {
input[position]=numbers[i];
position++;
print=1;
}
}
}
if (position>0) {
if(IsKeyDown(KEY_CTRL_DEL) ){
position--;
input[position] = ' ';
print=1;
while(!IsKeyUp(KEY_CTRL_DEL));
}
}
if(print==1) {
PrintMini(y,x,(unsigned char*)input,MINI_OVER);
Bdisp_AllClr_DD();
Bdisp_PutDisp_DD();
Bdisp_AllClr_VRAM();
print=0;
number=atoi(input);
}
}
return number;
}