コード例 #1
0
ファイル: ROM.java プロジェクト: kingpinzs/nand2tetris-emu
  /** Loads the given program file (HACK or ASM) into the ROM. */
  public synchronized void loadProgram(String fileName) throws ProgramException {
    short[] program = null;

    if (displayChanges) ((ROMGUI) gui).showMessage("Loading...");

    try {
      program =
          HackAssemblerTranslator.loadProgram(
              fileName, Definitions.ROM_SIZE, HackAssemblerTranslator.NOP);

      mem = program;

      if (displayChanges) {
        gui.setContents(mem);

        ((ROMGUI) gui).setProgram(fileName);

        ((ROMGUI) gui).hideMessage();
        gui.hideHighlight();
      }

      notifyProgramListeners(ProgramEvent.LOAD, fileName);

    } catch (AssemblerException ae) {
      if (displayChanges) ((ROMGUI) gui).hideMessage();
      throw new ProgramException(ae.getMessage());
    }
  }
コード例 #2
0
ファイル: ROM.java プロジェクト: kingpinzs/nand2tetris-emu
  /** Constructs a new ROM with the given ROM GUI. */
  public ROM(ROMGUI gui) {
    super(Definitions.ROM_SIZE, gui);
    setNullValue(HackAssemblerTranslator.NOP, true);
    listeners = new Vector();

    if (hasGUI) {
      gui.addProgramListener((ProgramEventListener) this);
      gui.setNumericFormat(ASM_FORMAT); // enable assembler
      //          gui.setNumericFormat(BINARY_FORMAT); // disable assembler
    }
  }