public void start() {
        GUI.controls.refresh();
        startingTime = System.currentTimeMillis();
        boolean start = false;
        if (state == RunState.stopped) {
            if (model.program.none()) {
                Dialog.showMessage("No program to run");
                return;
            }
            if (model.program.compiling) {
                Dialog.showMessage("Program is still compiling, try it again, please");
                return;
            }
            load();
            model.load();
            observer.init();
            start = true;
        }
        timerid++;
        state = RunState.running;
        StepEvent.time = System.currentTimeMillis();
        GUI.globalTimer.schedule(new StepEvent(this, timerid), 0);
        if (start)
            go();

    }