public void performNMI() {
       if (NES_DEV_MODE) {
           System.out.println("NMI actual: " + getStateString() + " APU " + _apu.toString());
       }
        if(_ppu.isNMIEnabled()) {

            if( isNMINextInstruction() && (_masterCycles <= 5)) {
               if (_captureMode && _captureOut != null) {
                    _captureOut.println("");
                    _captureOut.println("NMI SUPPRESS due to $2002 access on zero cycle:" + _cpu.getCurrentInstructionDescription());
                }
            } else {
                if (_captureMode && _captureOut != null) {
                    _captureOut.println("");
                    _captureOut.println("NMI");
                }
                _cpu.doInterrupt(_memoryManager.determineAddress(Architecture6502.NMI_VECTOR_VALUE));
            }
        } 
        //_apu.finishframe();
        calculateFrameRate();
    }