public void Main() { try { // will block on zm.Run() until the story file completes Stream gameStream = new FileStream(m_storyFile, FileMode.Open, FileAccess.Read); DumbIO io = new DumbIO(this); ZMachine zm = new ZMachine(gameStream, io); zm.Run(); } catch (Exception ex) { EventSink.InvokeLogException(new LogExceptionEventArgs(ex)); } m_stopped = true; return; }