Put these at the end of globals
#define  WIN      640           /* size of the square window */
int hasnumber, number, decimal, sign ;  /* SLevy  bump gadget */

/********************************************************************/
float getnumber(float dflt){      /* return new or default number  */
      if(!hasnumber)return dflt; 
      tmp = sign ? -number : number;
      return decimal>0 ? tmp/(float)decimal : tmp ;
}
/**********************************************************************/
void graffiti(char strng[128], float par){  /* from avn by SLevy */
     char buf[128], *p ; 
     glColor3f(0,0,0); glRecti(5,3,WIN,20);  /* erase old graffiti */
     glColor3fv(rainbow[clr]);  /* create and draw new graffiti */
     sprintf(buf, strng, par); 
     glRasterPos2i(5,5);  
     for(p=buf; *p; p++)glutBitmapCharacter(GLUT_BITMAP_8_BY_13, *p);
}
/**********************************************************************/
void altit(void) { 
      alt= getnumber(alt); graffiti("%0.3f=(A)lt", alt); }

/**********************************************************************/
Put this into the keyboard function

     case 'a': {altit(); break;};

and insert this before the end of the keyboard function. It
makes it all work:

   glFlush(); /* superstition ? */
   /* Stuart Levy's gadget parser from avn.c 1998 */
   if(key >= '0' && key <= '9'){ hasnumber = 1;
         number = 10*number + (key - '0'); decimal *= 10;}
   else if(key == '.'){ decimal = 1;}
   else if(key == '-'){ sign = -1;}
   else {hasnumber = number = decimal = sign = 0;}
