int codeMenu(void)
{
    int retval = 0;

    printf("\fCode generation settings.\n");
    printf("-------------------------\n");

    printf("[1m1. [0mCPU: %s             ", cpuname[cpuCode]);
    printf("[1m2. [0mFloating point: %s\n", fpuname[fpuCode]);
    printf("[1m3. [0mCode model: %s      ", modelname[codemodel]);
    printf("[1m4. [0mData model: %s\n", modelname[datamodel]);
    printf("[1m5. [0m%s\n\n", docompilename[compileMethod]);


    back_help_quit();

    switch(getch())
    {
/*        char buf[255];*/

        case '1': add(cpuCode, 5);
                  updateLibList();
                  break;

        case '2': add(fpuCode, 2);
                  updateLibList();
                  break;

        case '3': negate(codemodel); break;

        case '4': negate(datamodel);
                  if(datamodel == SMALL)
                  {
                      addLib("vcs");
                      addLib("amigas");
                  }
                  else
                  {
                      removeLib("vcs");
                      removeLib("amigas");
                  }
                  break;

        case '5': add(compileMethod, 3); break;


        case 'h':
        case 'H': help(CODE); break;

        case ESC:
        case 'b':
        case 'B': retval = 1;
                  break;

        case 'q':
        case 'Q': exit(0);

    }

    return(retval);
}


/*
** maintaining the different libs to be linked with when floating
** point is being used.
*/
void updateLibList(void)
{
    removeLib("mieee");
    removeLib("m881");
    removeLib("m040");
    removeLib("m060");

    if(fpuCode == 1)
        addLib("mieee");

    if(fpuCode == 2)
    {
        switch(cpuCode)
        {
            case 0:                        /* 000 */
            case 1: addLib("mieee"); break;/* 010 */
            case 2:                        /* 020 */
            case 3: addLib("m881"); break; /* 030 */

            case 4:                        /* 040 */
            case 5: addLib("m040"); break; /* 060 */

/* WILL BE ADDED WHEN 060 is supported
            case 4: addLib("m040"); break; * 040 *
            case 5: addLib("m060"); break; * 060 *
*/

        }
    }
}


