public C64Test(String file) {

//     System.out.println("Locale: " + l);
//     Locale.setDefault(Locale.US);
//    l = Locale.getDefault();

    // Set the buffer for SID chip to lower than 1 second...
    SIDMixer.DL_BUFFER_SIZE = 16384;

    monitor = new Debugger();
    //    monitor.setEnabled(true);
    cpu = new CPU(monitor, "", new SELoader());

    monitor.init(cpu);

    memory = cpu.getMemory();
    scr = new C64Screen(monitor, true);

    cpu.init(scr);

    // Reader available after init!
    scr.init(cpu);
    scr.registerHotKey(KeyEvent.VK_BACK_SPACE, KeyEvent.CTRL_DOWN_MASK |
		       KeyEvent.ALT_DOWN_MASK
		       , "reset()", cpu);

    scr.registerHotKey(KeyEvent.VK_F12, KeyEvent.CTRL_DOWN_MASK
		       , "toggleFullScreen()", this);

    reader = new C64Reader(); // scr.getDiskDrive().getReader();
    reader.setCPU(cpu);

    cpu.getDrive().setReader(reader);

    if (FULLSCREEN) {
      JFrame jf = new JFrame("nada");
      jf.setVisible(true);
      C64Scr = new JWindow(jf); // new JFrame("JaC64 - A Java C64 Emulator");
    } else {
      C64Win = new JFrame("JaC64 - A Java C64 Emulator");
    }


//     JMenuBar jbar = new JMenuBar();
//     C64Scr.setJMenuBar(jbar);
//     JMenu filem;
//     jbar.add(filem = new JMenu("File"));
//     filem.add(new JMenuItem("Open file"));
    if (FULLSCREEN) {
      C64Scr.setBackground(Color.black);
      C64Scr.setForeground(lblue = new Color(VICConstants.COLOR_SETS[0][14]));
      C64Scr.setLayout(new BorderLayout());
      C64Scr.add(scr.getScreen(), BorderLayout.CENTER);
      C64Scr.setSize(386 * 2, 284 * 2);
    } else {
      C64Win.setBackground(Color.black);
      C64Win.setForeground(lblue = new Color(VICConstants.COLOR_SETS[0][14]));
      C64Win.setLayout(new BorderLayout());
      C64Win.add(scr.getScreen(), BorderLayout.CENTER);
      C64Win.setFocusable(true);
    }

    if (!FULLSCREEN) {
      C64Win.pack(); //	C64Scr.setSize(380,300);
      C64Win.setSize(386 * 2, 284 * 2);
      C64Win.setResizable(true);
      C64Win.setVisible(true);
    } else {
      C64Scr.setVisible(true);
    }



    for (int i = 0; i < 24 * 21; i++)
      sprMem[i] = 0xfff04040 + i;

    mis = new MemoryImageSource(24, 21, sprMem, 0, 24);

    mis.setAnimated(true);
    mis.setFullBufferUpdates(true);
    if (FULLSCREEN) {
      sprite = C64Scr.createImage(mis);
    } else {
      sprite = C64Win.createImage(mis);
    }

    AudioClip trackSound = null;
    AudioClip motorSound = null;
    URL url = getClass().getResource("sounds/track.wav");
    System.out.println("Audio URL:" + url);
    if (url != null) trackSound = Applet.newAudioClip(url);
    url = getClass().getResource("sounds/motor.wav");
    if (url != null) motorSound = Applet.newAudioClip(url);
    else {
      System.out.println("Could not load file... motor.wav");
    }
    scr.setSounds(trackSound, motorSound);
    if (motorSound != null) {
      motorSound.play();
    }
  }