#include "fpse.h"

FPSECfgType FPSEIni;

#define ON(a) FPSE_Flags |= a
#define OFF(a) FPSE_Flags &= ~a

int amiga_cd_unit = 2;
char *amiga_cd_device = NULL;
int amiga_use_screen = 0;

void LoadCFG(void)
{
  memset(&FPSEIni,0,sizeof(FPSEIni));

  OFF(EMULATE_BIOS);
  FPSEIni.BiosName = strdup("scph1001.bin");

  OFF(COMPILE);
  OFF(VERBOSE);
  OFF(DISASMFLG);
  OFF(DEBUG);

  ON(CDUSECACHE);

  // Europe as default
  FPSE_Flags |= USE_EUROPE_PSX;

  OFF(USESERIAL);
}

// OS Section
char *OS_Name        = "AmigaPPC";
char *OS_PorterName  = "Mathias 'AmiDog' Roslund";
char *OS_ExtendedMsg = 
     " -u#          cd unit (def: 2)\n"
     " -x<device>   cd device (def: atapi.device)\n"
     " -f           use screen (def: window)\n"
     " -l<c>        location, u=USA, j=Japan (def: Europe)\n";

int OS_CheckOption(char *s)
{
    switch (*s) {
    case 'u': amiga_cd_unit    = atoi(s+1);   break;
    case 'x': amiga_cd_device  = strdup(s+1); break;
    case 'f': amiga_use_screen = 1;           break;
    case 'l':
        FPSE_Flags &= 0xfffcffff; // Remove previous location
        switch(*(s+1)) {
            case 'u': FPSE_Flags |= USE_AMERICAN_PSX; break; // USA
            case 'j': FPSE_Flags |= USE_JAPAN_PSX; break;  // Japan
            default: FPSE_Flags |= USE_EUROPE_PSX; break;  // Europe
        }
        break;
    default:  return FPSE_ERR;
    }

    return FPSE_OK;
}