Search in sources :

Example 11 with MemoryDasm

use of sw_emulator.software.MemoryDasm in project jc64 by ice00.

the class Z80Dasm method csdasm.

/**
 * Comment and Disassemble a region of the buffer as source
 *
 * @param buffer the buffer containing the code
 * @param start the start position in buffer
 * @param end the end position in buffer
 * @param pc the programn counter for start position
 * @return a string rapresentation of disasemble with comment
 */
@Override
public String csdasm(byte[] buffer, int start, int end, long pc) {
    // local temp string
    String tmp;
    // local temp string
    String tmp2;
    // memory dasm
    MemoryDasm mem;
    // memory related
    MemoryDasm memRel;
    // memory related of second kind
    MemoryDasm memRel2;
    // actual position in buffer
    int pos = start;
    // true if we are decoding an instruction
    boolean isCode = true;
    // true if we were decoding garbage
    boolean wasGarbage = false;
    result.setLength(0);
    result.append(addConstants());
    this.pos = pos;
    this.pc = pc;
    while (pos <= end | pos < start) {
        // verify also that don't circle in the buffer
        mem = memory[(int) pc];
        isCode = ((mem.isCode || (!mem.isData && option.useAsCode)) && !mem.isGarbage);
        if (isCode) {
            assembler.flush(result);
            // must put the org if we start from an garbage area
            if (wasGarbage) {
                wasGarbage = false;
                assembler.setOrg(result, (int) pc);
            }
            // add block if user declare it
            if (mem.userBlockComment != null && !"".equals(mem.userBlockComment)) {
                assembler.setBlockComment(result, mem);
            }
            if ((mem.userLocation != null && !"".equals(mem.userLocation)) || (mem.dasmLocation != null && !"".equals(mem.dasmLocation))) {
                assembler.setLabel(result, mem);
                if (option.labelOnSepLine)
                    result.append("\n");
            }
            // this is an instruction
            tmp = dasm(buffer);
            result.append(getInstrSpacesTabs(mem)).append(tmp).append(getInstrCSpacesTabs(tmp.length()));
            tmp2 = dcom();
            // if there is a user comment, then use it
            assembler.setComment(result, mem);
            // always add a carriage return after a RTS, RTI or JMP
            if (iType == M_RET || iType == M_RETI || iType == M_RETN)
                result.append("\n");
            if (pc >= 0) {
                // rememeber this dasm automatic comment
                if (!"".equals(tmp2))
                    mem.dasmComment = tmp2;
                else
                    mem.dasmComment = null;
            }
            pos = this.pos;
            pc = this.pc;
        } else if (mem.isGarbage) {
            assembler.flush(result);
            wasGarbage = true;
            pos++;
            pc++;
            this.pos = pos;
            this.pc = pc;
        } else {
            // must put the org if we start from an garbage area
            if (wasGarbage) {
                wasGarbage = false;
                assembler.setOrg(result, (int) pc);
            }
            memRel = mem.related != -1 ? memory[mem.related & 0xFFFF] : null;
            if (memRel != null)
                memRel2 = memRel.related != -1 ? memory[memRel.related & 0xFFFF] : null;
            else
                memRel2 = null;
            assembler.putValue(result, mem, memRel, memRel2);
            pos++;
            pc++;
            this.pos = pos;
            this.pc = pc;
        }
    }
    assembler.flush(result);
    return result.toString();
}
Also used : MemoryDasm(sw_emulator.software.MemoryDasm)

Example 12 with MemoryDasm

use of sw_emulator.software.MemoryDasm in project jc64 by ice00.

the class JAutoLoHiDialog method jButtonOk2ActionPerformed.

// GEN-LAST:event_jButtonCancelActionPerformed
private void jButtonOk2ActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_jButtonOk2ActionPerformed
    if (memories == null)
        return;
    long valStartLow = (Long) jSpinnerStartLow2.getValue();
    long valStartHigh = (Long) jSpinnerStartHigh2.getValue();
    int size = (Integer) jSpinnerSize2.getValue();
    if ((valStartLow != valStartHigh + 1) && (valStartLow != valStartHigh - 1)) {
        JOptionPane.showMessageDialog(this, "High star position must be before or after low starting position by 1");
        return;
    }
    MemoryDasm low;
    MemoryDasm high;
    int position;
    String prefix = jTextFieldPrefix2.getText();
    int start = (Integer) jSpinnerStart2.getValue();
    boolean uppercase = jCheckBoxUpper2.isSelected();
    int digit = (Integer) jSpinnerDigit2.getValue();
    String label;
    for (int i = 0; i < size; i++) {
        low = memories[(int) (i * 2 + valStartLow)];
        high = memories[(int) (i * 2 + valStartHigh)];
        position = (low.copy & 0xFF) + ((high.copy & 0xFF) << 8);
        low.type = '<';
        low.related = position;
        high.type = '>';
        high.related = position;
        if (prefix != null && !"".equals(prefix)) {
            label = Integer.toHexString(i + start);
            if (label.length() == 1 && digit == 2)
                label = "0" + label;
            if (uppercase)
                label = label.toUpperCase();
            else
                label = label.toLowerCase();
            label = prefix + label;
            memories[position].userLocation = label;
        }
    }
}
Also used : MemoryDasm(sw_emulator.software.MemoryDasm)

Example 13 with MemoryDasm

use of sw_emulator.software.MemoryDasm in project jc64 by ice00.

the class JAutoLoHiDialog method jButtonOkActionPerformed.

// </editor-fold>//GEN-END:initComponents
private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_jButtonOkActionPerformed
    if (memories == null)
        return;
    long valStartLow = (Long) jSpinnerStartLow.getValue();
    long valStartHigh = (Long) jSpinnerStartHigh.getValue();
    long valEndLow = (Long) jSpinnerEndLow.getValue();
    long valEndHigh = (Long) jSpinnerEndHigh.getValue();
    if (valStartLow > valEndLow) {
        JOptionPane.showMessageDialog(this, "Low end position must be after low start position");
        return;
    }
    if (valStartHigh > valEndHigh) {
        JOptionPane.showMessageDialog(this, "High end position must be after high start position");
        return;
    }
    if (valEndLow - valStartLow != valEndHigh - valStartHigh) {
        JOptionPane.showMessageDialog(this, "The size area from low and high must be equal");
        return;
    }
    if (valStartLow < valStartHigh && valEndLow > valStartHigh) {
        JOptionPane.showMessageDialog(this, "Starting high position cannot be inside low area");
        return;
    }
    if (valStartLow < valEndHigh && valEndLow > valEndHigh) {
        JOptionPane.showMessageDialog(this, "Ending high position cannot be inside low area");
        return;
    }
    MemoryDasm low;
    MemoryDasm high;
    int position;
    // make the action
    for (long i = 0; i <= valEndLow - valStartLow; i++) {
        low = memories[(int) (i + valStartLow)];
        high = memories[(int) (i + valStartHigh)];
        position = (low.copy & 0xFF) + ((high.copy & 0xFF) << 8);
        low.type = '<';
        low.related = position;
        high.type = '>';
        high.related = position;
    }
    setVisible(false);
}
Also used : MemoryDasm(sw_emulator.software.MemoryDasm)

Example 14 with MemoryDasm

use of sw_emulator.software.MemoryDasm in project jc64 by ice00.

the class JDisassemblerFrame method initComponents.

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
private // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
void initComponents() {
    jPopupMenuData = new javax.swing.JPopupMenu();
    jMenuItemByteHex = new javax.swing.JMenuItem();
    jMenuItemByteDec = new javax.swing.JMenuItem();
    jMenuItemByteBin = new javax.swing.JMenuItem();
    jMenuItemByteChar = new javax.swing.JMenuItem();
    jSeparatorByte = new javax.swing.JPopupMenu.Separator();
    jMenuItemWord = new javax.swing.JMenuItem();
    jMenuItemWordSwapped = new javax.swing.JMenuItem();
    jSeparatorWord = new javax.swing.JPopupMenu.Separator();
    jMenuItemTribyte = new javax.swing.JMenuItem();
    jMenuItemLong = new javax.swing.JMenuItem();
    jSeparatorPopUpMenu0 = new javax.swing.JPopupMenu.Separator();
    jMenuItemAddress = new javax.swing.JMenuItem();
    jMenuItemStackWord = new javax.swing.JMenuItem();
    jSeparatorPopUpMenu1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemSpriteMono = new javax.swing.JMenuItem();
    jMenuItemSpriteMulti = new javax.swing.JMenuItem();
    jSeparatorSprite = new javax.swing.JPopupMenu.Separator();
    jMenuItemText = new javax.swing.JMenuItem();
    jMenuItemNumText = new javax.swing.JMenuItem();
    jMenuItemTextZero = new javax.swing.JMenuItem();
    jMenuItemtextHighOne = new javax.swing.JMenuItem();
    jMenuItemtextShifted = new javax.swing.JMenuItem();
    jMenuItemTextScreen = new javax.swing.JMenuItem();
    jMenuItemTextPetascii = new javax.swing.JMenuItem();
    jPopupMenuConstant = new javax.swing.JPopupMenu();
    jMenuItemConstant0 = new javax.swing.JMenuItem();
    jMenuItemConstant1 = new javax.swing.JMenuItem();
    jMenuItemConstant2 = new javax.swing.JMenuItem();
    jMenuItemConstant3 = new javax.swing.JMenuItem();
    jMenuItemConstant4 = new javax.swing.JMenuItem();
    jMenuItemConstant5 = new javax.swing.JMenuItem();
    jMenuItemConstant6 = new javax.swing.JMenuItem();
    jMenuItemConstant7 = new javax.swing.JMenuItem();
    jMenuItemConstant8 = new javax.swing.JMenuItem();
    jMenuItemConstant9 = new javax.swing.JMenuItem();
    jMenuItemConstantClear_ = new javax.swing.JMenuItem();
    jPopupMenuSaveAs = new javax.swing.JPopupMenu();
    jMenuItemSaveAsDasm = new javax.swing.JMenuItem();
    jMenuItemSaveAsTmpx = new javax.swing.JMenuItem();
    jMenuItemSaveAsCa65 = new javax.swing.JMenuItem();
    jMenuItemSaveAsAcme = new javax.swing.JMenuItem();
    jMenuItemSaveAsKickAssembler = new javax.swing.JMenuItem();
    jMenuItemSaveAsTass64 = new javax.swing.JMenuItem();
    jPopupMenuMemory = new javax.swing.JPopupMenu();
    jMenuItemCopy = new javax.swing.JMenuItem();
    jMenuItemPaste = new javax.swing.JMenuItem();
    jSeparatorMem1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemFindAddr = new javax.swing.JMenuItem();
    jMenuItemFindSeq = new javax.swing.JMenuItem();
    jSeparatorMem2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemCode = new javax.swing.JMenuItem();
    jMenuItemData = new javax.swing.JMenuItem();
    jMenuDataSel = new javax.swing.JMenu();
    jMenuItemByteHex2 = new javax.swing.JMenuItem();
    jMenuItemByteDec2 = new javax.swing.JMenuItem();
    jMenuItemByteBin2 = new javax.swing.JMenuItem();
    jMenuItemByteChar2 = new javax.swing.JMenuItem();
    jSeparatorByte2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemWord2 = new javax.swing.JMenuItem();
    jMenuItemWordSwapped2 = new javax.swing.JMenuItem();
    jSeparatorWord2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemTribyte2 = new javax.swing.JMenuItem();
    jMenuItemLong2 = new javax.swing.JMenuItem();
    jSeparatorPopUpMenu2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemAddress2 = new javax.swing.JMenuItem();
    jMenuItemStackWord2 = new javax.swing.JMenuItem();
    jSeparatorPopUpMenu3 = new javax.swing.JPopupMenu.Separator();
    jMenuItemSpriteMono2 = new javax.swing.JMenuItem();
    jMenuItemSpriteMulti2 = new javax.swing.JMenuItem();
    jSeparatorSprite2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemText2 = new javax.swing.JMenuItem();
    jMenuItemNumText2 = new javax.swing.JMenuItem();
    jMenuItemTextZero2 = new javax.swing.JMenuItem();
    jMenuItemtextHighOne2 = new javax.swing.JMenuItem();
    jMenuItemtextShifted2 = new javax.swing.JMenuItem();
    jMenuItemTextScreen2 = new javax.swing.JMenuItem();
    jMenuItemTextPetascii2 = new javax.swing.JMenuItem();
    jMenuItemGarbage = new javax.swing.JMenuItem();
    jPanelToolBar = new javax.swing.JPanel();
    jToolBarFile = new javax.swing.JToolBar();
    jButtonNewProject = new javax.swing.JButton();
    jButtonOpenProject = new javax.swing.JButton();
    jButtonClose = new javax.swing.JButton();
    jButtonSaveProject = new javax.swing.JButton();
    jButtonSaveProjectAs = new javax.swing.JButton();
    jButtonMPR = new javax.swing.JButton();
    jButtonMerge = new javax.swing.JButton();
    jButtonExit = new javax.swing.JButton();
    jToolBarMemory = new javax.swing.JToolBar();
    jButtonClearDMem = new javax.swing.JButton();
    jButtonClearUMem = new javax.swing.JButton();
    jButtonClearDLabel = new javax.swing.JButton();
    jButtonAddUserComm = new javax.swing.JButton();
    jButtonAddUserBlock = new javax.swing.JButton();
    jButtonAddUserLabel = new javax.swing.JButton();
    jButtonAddUserLabelOp = new javax.swing.JButton();
    jButtonMarkCode = new javax.swing.JButton();
    jButtonMarkData = new javax.swing.JButton();
    jButtonMarkGarbage = new javax.swing.JButton();
    jButtonMarkConstant = new javax.swing.JButton();
    jButtonMarkPlus = new javax.swing.JButton();
    jButtonMarkMinus = new javax.swing.JButton();
    jButtonMarkLow = new javax.swing.JButton();
    jButtonMarkLowHigh = new javax.swing.JButton();
    jButtonMarkBoth = new javax.swing.JButton();
    jButtonMarkHighLow = new javax.swing.JButton();
    jButtonMarkMax = new javax.swing.JButton();
    jButtonWizard = new javax.swing.JButton();
    jToolBarOption = new javax.swing.JToolBar();
    jButtonConfigure = new javax.swing.JButton();
    jButtonSIDLD = new javax.swing.JButton();
    jButtonViewProject = new javax.swing.JButton();
    jButtonViewLabels = new javax.swing.JButton();
    jToolBarSource = new javax.swing.JToolBar();
    jButtonFindMem = new javax.swing.JButton();
    jButtonDisassemble = new javax.swing.JButton();
    jButtonAssemble = new javax.swing.JButton();
    jButtonFindDis = new javax.swing.JButton();
    jButtonExportAsDiss = new javax.swing.JButton();
    jButtonFindSource = new javax.swing.JButton();
    jButtonExportAsSource = new javax.swing.JButton();
    jButtonExportAsSource1 = new javax.swing.JButton();
    jToolBarPerformance = new javax.swing.JToolBar();
    heapView = new sw_emulator.swing.HeapView();
    jToolBarPerc = new javax.swing.JToolBar();
    jPanelPerc = new sw_emulator.swing.JPanelPerc();
    jSplitPaneExternal = new javax.swing.JSplitPane();
    jSplitPaneInternal = new javax.swing.JSplitPane();
    jScrollPaneLeft = new javax.swing.JScrollPane();
    rSyntaxTextAreaDis = new org.fife.ui.rsyntaxtextarea.RSyntaxTextArea();
    jScrollPaneRight = new javax.swing.JScrollPane();
    rSyntaxTextAreaSource = new org.fife.ui.rsyntaxtextarea.RSyntaxTextArea();
    jScrollPaneMemory = new javax.swing.JScrollPane();
    jTableMemory = new javax.swing.JTable() {

        String[] hh = { "Memory address location in Hex", "Disassembler automatic comment", "User manual comment", "Disassembler automatic label", "User manual label", "User global comment", "Related location and data type", "Value in memory" };

        @Override
        protected JTableHeader createDefaultTableHeader() {
            return new JTableHeader(columnModel) {

                @Override
                public String getToolTipText(MouseEvent e) {
                    // int col = columnAtPoint(e.getPoint());
                    int index = columnModel.getColumnIndexAtX(e.getPoint().x);
                    int realIndex = columnModel.getColumn(index).getModelIndex();
                    return hh[realIndex];
                }
            };
        }

        // Implement table cell tool tips.
        public String getToolTipText(MouseEvent e) {
            String tip = null;
            java.awt.Point p = e.getPoint();
            int rowIndex = rowAtPoint(p);
            int colIndex = columnAtPoint(p);
            int realColumnIndex = convertColumnIndexToModel(colIndex);
            try {
                MemoryDasm memory = dataTableModelMemory.getData()[rowIndex];
                switch(dataTableModelMemory.columns[realColumnIndex]) {
                    case ID:
                        if (!memory.isInside)
                            tip = "Memory outside of the program";
                        else if (memory.isCode)
                            tip = "Memory marked as code (" + getAreaCodeSize(memory.address) + "/" + Shared.ShortToExe(jTableMemory.getSelectedRowCount()) + ")";
                        else if (memory.isData)
                            tip = "Memory marked as data (" + getAreaDataSize(memory.address) + "/" + Shared.ShortToExe(jTableMemory.getSelectedRowCount()) + ")";
                        else if (memory.isGarbage)
                            tip = "Memory marked as garbage (" + getAreaGarbageSize(memory.address) + "/" + Shared.ShortToExe(jTableMemory.getSelectedRowCount()) + ")";
                        else
                            tip = "Memory not marked as code or data";
                        break;
                    case DC:
                        if ((Boolean) getValueAt(rowIndex, colIndex))
                            tip = memory.dasmComment;
                        break;
                    case UC:
                        if ((Boolean) getValueAt(rowIndex, colIndex))
                            tip = memory.userComment;
                        break;
                    case DL:
                        if ((Boolean) getValueAt(rowIndex, colIndex))
                            tip = memory.dasmLocation;
                        break;
                    case UL:
                        if ((Boolean) getValueAt(rowIndex, colIndex))
                            tip = memory.userLocation;
                        break;
                    case UB:
                        if ((Boolean) getValueAt(rowIndex, colIndex))
                            tip = "<html>" + memory.userBlockComment.replace("\n", "<br>") + "</html>";
                        break;
                    case RE:
                        if (memory.type != ' ') {
                            MemoryDasm mem = dataTableModelMemory.getData()[memory.related];
                            switch(memory.type) {
                                case '+':
                                    if (mem.userLocation != null && !"".equals(mem.userLocation))
                                        tip = mem.userLocation + "+" + (memory.address - memory.related);
                                    else if (mem.dasmLocation != null && !"".equals(mem.dasmLocation))
                                        tip = mem.dasmLocation + "+" + (memory.address - memory.related);
                                    else
                                        tip = "$" + Shared.ShortToExe(mem.address) + "+" + (memory.address - memory.related);
                                    break;
                                case '-':
                                    if (mem.userLocation != null && !"".equals(mem.userLocation))
                                        tip = mem.userLocation + (memory.address - memory.related);
                                    else if (mem.dasmLocation != null && !"".equals(mem.dasmLocation))
                                        tip = mem.dasmLocation + (memory.address - memory.related);
                                    else
                                        tip = "$" + Shared.ShortToExe(mem.address) + (memory.address - memory.related);
                                    break;
                                default:
                                    if (mem.userLocation != null && !"".equals(mem.userLocation))
                                        tip = "#" + memory.type + mem.userLocation;
                                    else if (mem.dasmLocation != null && !"".equals(mem.dasmLocation))
                                        tip = "#" + memory.type + mem.dasmLocation;
                                    else
                                        tip = "#" + memory.type + "$" + Shared.ShortToExe(mem.address);
                            }
                        } else if (memory.dataType != null) {
                            tip = memory.dataType.getDescription();
                        }
                        break;
                }
            } catch (RuntimeException e1) {
            // catch null pointer exception if mouse is over an empty line
            }
            return tip;
        }
    };
    jMenuBar = new javax.swing.JMenuBar();
    jMenuFile = new javax.swing.JMenu();
    jMenuItemNewProject = new javax.swing.JMenuItem();
    jSeparatorProject1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemOpenProject = new javax.swing.JMenuItem();
    jMenuRecent = new javax.swing.JMenu();
    jMenuItemRecent1 = new javax.swing.JMenuItem();
    jMenuItemRecent2 = new javax.swing.JMenuItem();
    jMenuItemRecent3 = new javax.swing.JMenuItem();
    jMenuItemRecent4 = new javax.swing.JMenuItem();
    jMenuItemRecent5 = new javax.swing.JMenuItem();
    jMenuItemRecent6 = new javax.swing.JMenuItem();
    jMenuItemRecent7 = new javax.swing.JMenuItem();
    jMenuItemRecent8 = new javax.swing.JMenuItem();
    jMenuItemRecent9 = new javax.swing.JMenuItem();
    jMenuItemCloseProject = new javax.swing.JMenuItem();
    jSeparatorProject2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemSaveProject = new javax.swing.JMenuItem();
    jMenuItemSaveAsProject = new javax.swing.JMenuItem();
    jSeparatorProject3 = new javax.swing.JPopupMenu.Separator();
    jMenuItemMPR = new javax.swing.JMenuItem();
    jMenuItem2 = new javax.swing.JMenuItem();
    jMenuItemExit = new javax.swing.JMenuItem();
    jMenuMemory = new javax.swing.JMenu();
    jMenuItemClearDMem = new javax.swing.JMenuItem();
    jMenuItemClearUMem = new javax.swing.JMenuItem();
    jMenuItemClearDLabel = new javax.swing.JMenuItem();
    jSeparator4 = new javax.swing.JPopupMenu.Separator();
    jMenuItemAddComment = new javax.swing.JMenuItem();
    jMenuItemAddBlock = new javax.swing.JMenuItem();
    jMenuItemUserLabel = new javax.swing.JMenuItem();
    jMenuItemUserLabelOp = new javax.swing.JMenuItem();
    jSeparator3 = new javax.swing.JPopupMenu.Separator();
    jMenuItemMarkCode = new javax.swing.JMenuItem();
    jMenuItemMarkData = new javax.swing.JMenuItem();
    jSubMenu = new javax.swing.JMenu();
    jMenuItemByteHex1 = new javax.swing.JMenuItem();
    jMenuItemByteDec1 = new javax.swing.JMenuItem();
    jMenuItemByteBin1 = new javax.swing.JMenuItem();
    jMenuItemByteChar1 = new javax.swing.JMenuItem();
    jSeparatorByte1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemWord1 = new javax.swing.JMenuItem();
    jMenuItemWordSwapped1 = new javax.swing.JMenuItem();
    jSeparatorWord1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemTribyte1 = new javax.swing.JMenuItem();
    jMenuItemLong1 = new javax.swing.JMenuItem();
    jSeparator5 = new javax.swing.JPopupMenu.Separator();
    jMenuItemAddress1 = new javax.swing.JMenuItem();
    jMenuItemStackWord1 = new javax.swing.JMenuItem();
    jSeparator6 = new javax.swing.JPopupMenu.Separator();
    jMenuItemSpriteMono1 = new javax.swing.JMenuItem();
    jMenuItemSpriteMulti1 = new javax.swing.JMenuItem();
    jSeparatorSprite1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemText1 = new javax.swing.JMenuItem();
    jMenuItemNumText1 = new javax.swing.JMenuItem();
    jMenuItemTextZero1 = new javax.swing.JMenuItem();
    jMenuItemtextHighOne1 = new javax.swing.JMenuItem();
    jMenuItemtextShifted1 = new javax.swing.JMenuItem();
    jMenuItemTextScreen1 = new javax.swing.JMenuItem();
    jMenuItemTextPetascii1 = new javax.swing.JMenuItem();
    jMenuItemMarkGarbage = new javax.swing.JMenuItem();
    jSubMenuC = new javax.swing.JMenu();
    jMenuItemConstant0b = new javax.swing.JMenuItem();
    jMenuItemConstant1b = new javax.swing.JMenuItem();
    jMenuItemConstant2b = new javax.swing.JMenuItem();
    jMenuItemConstant3b = new javax.swing.JMenuItem();
    jMenuItemConstant4b = new javax.swing.JMenuItem();
    jMenuItemConstant5b = new javax.swing.JMenuItem();
    jMenuItemConstant6b = new javax.swing.JMenuItem();
    jMenuItemConstant7b = new javax.swing.JMenuItem();
    jMenuItemConstant8b = new javax.swing.JMenuItem();
    jMenuItemConstant9b = new javax.swing.JMenuItem();
    jMenuItemConstantClear = new javax.swing.JMenuItem();
    jMenuItemPlus = new javax.swing.JMenuItem();
    jMenuItemMinus = new javax.swing.JMenuItem();
    jMenuItemMemLow = new javax.swing.JMenuItem();
    jMenuItemMemLowHigh = new javax.swing.JMenuItem();
    jMenuItemMemBoth = new javax.swing.JMenuItem();
    jMenuItemMemHighLow = new javax.swing.JMenuItem();
    jMenuItemMemHigh = new javax.swing.JMenuItem();
    jMenuItemWizard = new javax.swing.JMenuItem();
    jMenuOption = new javax.swing.JMenu();
    jMenuItemConfigure = new javax.swing.JMenuItem();
    jMenuItemSIDLD = new javax.swing.JMenuItem();
    jSeparatorOption = new javax.swing.JPopupMenu.Separator();
    jMenuItemViewProject = new javax.swing.JMenuItem();
    jMenuItemViewLabels = new javax.swing.JMenuItem();
    jMenuSource = new javax.swing.JMenu();
    jMenuItem1 = new javax.swing.JMenuItem();
    jMenuItemDiss = new javax.swing.JMenuItem();
    jMenuItemAssembly = new javax.swing.JMenuItem();
    jSeparator1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemFindDis = new javax.swing.JMenuItem();
    jMenuItemDissSaveAs = new javax.swing.JMenuItem();
    jSeparator2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemFindSource = new javax.swing.JMenuItem();
    jMenuItemSourceSaveAs = new javax.swing.JMenuItem();
    jMenuSub = new javax.swing.JMenu();
    jMenuItemSaveAsDasm1 = new javax.swing.JMenuItem();
    jMenuItemSaveAsTmpx1 = new javax.swing.JMenuItem();
    jMenuItemSaveAsCa66 = new javax.swing.JMenuItem();
    jMenuItemSaveAsAcme1 = new javax.swing.JMenuItem();
    jMenuItemSaveAsKickAssembler1 = new javax.swing.JMenuItem();
    jMenuItemSaveAsTass65 = new javax.swing.JMenuItem();
    jMenuItem3 = new javax.swing.JMenuItem();
    jMenuHelpContents = new javax.swing.JMenu();
    jMenuItemContents = new javax.swing.JMenuItem();
    jSeparatorHelp1 = new javax.swing.JPopupMenu.Separator();
    jMenuItemLicense = new javax.swing.JMenuItem();
    jMenuItemCredits = new javax.swing.JMenuItem();
    jMenuItemAbout = new javax.swing.JMenuItem();
    jSeparatorHelp2 = new javax.swing.JPopupMenu.Separator();
    jMenuItemImportLabels = new javax.swing.JMenuItem();
    jMenuItemRefactorLabels = new javax.swing.JMenuItem();
    jMenuItemAutComment = new javax.swing.JMenuItem();
    jMenuItemAutLabel = new javax.swing.JMenuItem();
    jSeparatorHelp3 = new javax.swing.JPopupMenu.Separator();
    jMenuUndo = new javax.swing.JMenu();
    jMenuItemUndo1 = new javax.swing.JMenuItem();
    jMenuItemUndo2 = new javax.swing.JMenuItem();
    jMenuItemUndo3 = new javax.swing.JMenuItem();
    jMenuItemUndo4 = new javax.swing.JMenuItem();
    jMenuItemUndo5 = new javax.swing.JMenuItem();
    jMenuItemUndo6 = new javax.swing.JMenuItem();
    jMenuItemUndo7 = new javax.swing.JMenuItem();
    jMenuItemUndo8 = new javax.swing.JMenuItem();
    jMenuItemUndo9 = new javax.swing.JMenuItem();
    // NOI18N
    jMenuItemByteHex.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/B.png")));
    jMenuItemByteHex.setText("(B) Mark data as Byte (HEX)");
    jMenuItemByteHex.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteHexActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemByteHex);
    // NOI18N
    jMenuItemByteDec.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/D.png")));
    jMenuItemByteDec.setText("(D) Mark data as Byte (DEC)");
    jMenuItemByteDec.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteDecActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemByteDec);
    // NOI18N
    jMenuItemByteBin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Y.png")));
    jMenuItemByteBin.setText("(Y) Mark data as Byte (BIN)");
    jMenuItemByteBin.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteBinActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemByteBin);
    // NOI18N
    jMenuItemByteChar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/R.png")));
    jMenuItemByteChar.setText("(R) Mark data as Byte (CHAR)");
    jMenuItemByteChar.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteCharActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemByteChar);
    jPopupMenuData.add(jSeparatorByte);
    // NOI18N
    jMenuItemWord.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/W.png")));
    jMenuItemWord.setText("(W) Mark data as Word");
    jMenuItemWord.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWordActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemWord);
    // NOI18N
    jMenuItemWordSwapped.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/P.png")));
    jMenuItemWordSwapped.setText("(P) Mark data as Word Swapped");
    jMenuItemWordSwapped.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWordSwappedActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemWordSwapped);
    jPopupMenuData.add(jSeparatorWord);
    // NOI18N
    jMenuItemTribyte.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/E.png")));
    jMenuItemTribyte.setText("(E) Mark data as Tribyte");
    jMenuItemTribyte.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTribyteActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemTribyte);
    // NOI18N
    jMenuItemLong.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/L.png")));
    jMenuItemLong.setText("(L) Mark data as Long");
    jMenuItemLong.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemLongActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemLong);
    jPopupMenuData.add(jSeparatorPopUpMenu0);
    // NOI18N
    jMenuItemAddress.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/A.png")));
    jMenuItemAddress.setText("(A) Mark data as Address");
    jMenuItemAddress.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAddressActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemAddress);
    // NOI18N
    jMenuItemStackWord.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/S.png")));
    jMenuItemStackWord.setText("(S) Mark data as Stack Word");
    jMenuItemStackWord.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemStackWordActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemStackWord);
    jPopupMenuData.add(jSeparatorPopUpMenu1);
    // NOI18N
    jMenuItemSpriteMono.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/O.png")));
    jMenuItemSpriteMono.setText("(O) Mark data as Monocromatic Sprite definitions");
    jMenuItemSpriteMono.setToolTipText("");
    jMenuItemSpriteMono.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMonoActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemSpriteMono);
    // NOI18N
    jMenuItemSpriteMulti.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/F.png")));
    jMenuItemSpriteMulti.setText("(F) Mark data as Multicolor Sprite definitions");
    jMenuItemSpriteMulti.setToolTipText("");
    jMenuItemSpriteMulti.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMultiActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemSpriteMulti);
    jPopupMenuData.add(jSeparatorSprite);
    // NOI18N
    jMenuItemText.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/T.png")));
    jMenuItemText.setText("(T) Mark data as Text");
    jMenuItemText.setToolTipText("");
    jMenuItemText.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemText);
    // NOI18N
    jMenuItemNumText.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/N.png")));
    jMenuItemNumText.setText("(N) Mark data as Text with # chars before");
    jMenuItemNumText.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemNumTextActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemNumText);
    // NOI18N
    jMenuItemTextZero.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Z.png")));
    jMenuItemTextZero.setText("(Z) Mark data as text terminated with 0");
    jMenuItemTextZero.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextZeroActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemTextZero);
    // NOI18N
    jMenuItemtextHighOne.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/M.png")));
    jMenuItemtextHighOne.setText("(M) Mark data as Text with high bit 1");
    jMenuItemtextHighOne.setToolTipText("");
    jMenuItemtextHighOne.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextHighOneActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemtextHighOne);
    // NOI18N
    jMenuItemtextShifted.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/H.png")));
    jMenuItemtextShifted.setText("(H) Mark data as Text left shifted");
    jMenuItemtextShifted.setToolTipText("");
    jMenuItemtextShifted.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextShiftedActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemtextShifted);
    // NOI18N
    jMenuItemTextScreen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/C.png")));
    jMenuItemTextScreen.setText("(C) Mark data as Text converted to screen code");
    jMenuItemTextScreen.setToolTipText("");
    jMenuItemTextScreen.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextScreenActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemTextScreen);
    // NOI18N
    jMenuItemTextPetascii.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/I.png")));
    jMenuItemTextPetascii.setText("(I) Mark data as Text converted to petAscii code");
    jMenuItemTextPetascii.setToolTipText("");
    jMenuItemTextPetascii.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextPetasciiActionPerformed(evt);
        }
    });
    jPopupMenuData.add(jMenuItemTextPetascii);
    // NOI18N
    jMenuItemConstant0.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/0.png")));
    jMenuItemConstant0.setText("Sub-mark cell as of constant 0");
    jMenuItemConstant0.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant0ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant0);
    // NOI18N
    jMenuItemConstant1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/1.png")));
    jMenuItemConstant1.setText("Sub-mark cell as of constant 1");
    jMenuItemConstant1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant1ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant1);
    // NOI18N
    jMenuItemConstant2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/2.png")));
    jMenuItemConstant2.setText("Sub-mark cell as of constant 2");
    jMenuItemConstant2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant2ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant2);
    // NOI18N
    jMenuItemConstant3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/3.png")));
    jMenuItemConstant3.setText("Sub-mark cell as of constant 3");
    jMenuItemConstant3.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant3ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant3);
    // NOI18N
    jMenuItemConstant4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/4.png")));
    jMenuItemConstant4.setText("Sub-mark cell as of constant 4");
    jMenuItemConstant4.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant4ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant4);
    // NOI18N
    jMenuItemConstant5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/5.png")));
    jMenuItemConstant5.setText("Sub-mark cell as of constant 5");
    jMenuItemConstant5.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant5ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant5);
    // NOI18N
    jMenuItemConstant6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/6.png")));
    jMenuItemConstant6.setText("Sub-mark cell as of constant 6");
    jMenuItemConstant6.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant6ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant6);
    // NOI18N
    jMenuItemConstant7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/7.png")));
    jMenuItemConstant7.setText("Sub-mark cell as of constant 7");
    jMenuItemConstant7.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant7ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant7);
    // NOI18N
    jMenuItemConstant8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/8.png")));
    jMenuItemConstant8.setText("Sub-mark cell as of constant 8");
    jMenuItemConstant8.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant8ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant8);
    // NOI18N
    jMenuItemConstant9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/9.png")));
    jMenuItemConstant9.setText("Sub-mark cell as of constant 9");
    jMenuItemConstant9.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant9ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstant9);
    // NOI18N
    jMenuItemConstantClear_.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/0-9.png")));
    jMenuItemConstantClear_.setText("Sub-mark cell as of constant none");
    jMenuItemConstantClear_.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstantClear_ActionPerformed(evt);
        }
    });
    jPopupMenuConstant.add(jMenuItemConstantClear_);
    jMenuItemSaveAsDasm.setText("Save in Dasm format");
    jMenuItemSaveAsDasm.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsDasmActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsDasm);
    jMenuItemSaveAsTmpx.setText("Save in TMPx format");
    jMenuItemSaveAsTmpx.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsTmpxActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsTmpx);
    jMenuItemSaveAsCa65.setText("Save in CA65 format");
    jMenuItemSaveAsCa65.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsCa65ActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsCa65);
    jMenuItemSaveAsAcme.setText("Save in Acme format");
    jMenuItemSaveAsAcme.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsAcmeActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsAcme);
    jMenuItemSaveAsKickAssembler.setText("Save in KickAssembler format");
    jMenuItemSaveAsKickAssembler.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsKickAssemblerActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsKickAssembler);
    jMenuItemSaveAsTass64.setText("Save in Tass64 format");
    jMenuItemSaveAsTass64.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsTass64ActionPerformed(evt);
        }
    });
    jPopupMenuSaveAs.add(jMenuItemSaveAsTass64);
    jMenuItemCopy.setText("Copy into this instance");
    jMenuItemCopy.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemCopyActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemCopy);
    jMenuItemPaste.setText("Paste from another instance");
    jMenuItemPaste.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemPasteActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemPaste);
    jPopupMenuMemory.add(jSeparatorMem1);
    jMenuItemFindAddr.setText("Find address");
    jMenuItemFindAddr.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemFindAddrActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemFindAddr);
    jMenuItemFindSeq.setText("Find sequences of bytes");
    jMenuItemFindSeq.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemFindSeqActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemFindSeq);
    jPopupMenuMemory.add(jSeparatorMem2);
    jMenuItemCode.setText("Mark as code");
    jMenuItemCode.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemCodeActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemCode);
    jMenuItemData.setText("Mark as data");
    jMenuItemData.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemDataActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemData);
    jMenuDataSel.setText("More specific data selection:");
    // NOI18N
    jMenuItemByteHex2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/B.png")));
    jMenuItemByteHex2.setText("(B) Mark data as Byte (HEX)");
    jMenuItemByteHex2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteHex2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemByteHex2);
    // NOI18N
    jMenuItemByteDec2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/D.png")));
    jMenuItemByteDec2.setText("(D) Mark data as Byte (DEC)");
    jMenuItemByteDec2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteDec2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemByteDec2);
    // NOI18N
    jMenuItemByteBin2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Y.png")));
    jMenuItemByteBin2.setText("(Y) Mark data as Byte (BIN)");
    jMenuItemByteBin2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteBin2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemByteBin2);
    // NOI18N
    jMenuItemByteChar2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/R.png")));
    jMenuItemByteChar2.setText("(R) Mark data as Byte (CHAR)");
    jMenuItemByteChar2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteChar2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemByteChar2);
    jMenuDataSel.add(jSeparatorByte2);
    // NOI18N
    jMenuItemWord2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/W.png")));
    jMenuItemWord2.setText("(W) Mark data as Word");
    jMenuItemWord2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWord2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemWord2);
    // NOI18N
    jMenuItemWordSwapped2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/P.png")));
    jMenuItemWordSwapped2.setText("(P) Mark data as Word Swapped");
    jMenuItemWordSwapped2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWordSwapped2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemWordSwapped2);
    jMenuDataSel.add(jSeparatorWord2);
    // NOI18N
    jMenuItemTribyte2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/E.png")));
    jMenuItemTribyte2.setText("(E) Mark data as Tribyte");
    jMenuItemTribyte2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTribyte2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemTribyte2);
    // NOI18N
    jMenuItemLong2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/L.png")));
    jMenuItemLong2.setText("(L) Mark data as Long");
    jMenuItemLong2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemLong2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemLong2);
    jMenuDataSel.add(jSeparatorPopUpMenu2);
    // NOI18N
    jMenuItemAddress2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/A.png")));
    jMenuItemAddress2.setText("(A) Mark data as Address");
    jMenuItemAddress2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAddress2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemAddress2);
    // NOI18N
    jMenuItemStackWord2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/S.png")));
    jMenuItemStackWord2.setText("(S) Mark data as Stack Word");
    jMenuItemStackWord2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemStackWord2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemStackWord2);
    jMenuDataSel.add(jSeparatorPopUpMenu3);
    // NOI18N
    jMenuItemSpriteMono2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/O.png")));
    jMenuItemSpriteMono2.setText("(O) Mark data as Monocromatic Sprite definitions");
    jMenuItemSpriteMono2.setToolTipText("");
    jMenuItemSpriteMono2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMono2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemSpriteMono2);
    // NOI18N
    jMenuItemSpriteMulti2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/F.png")));
    jMenuItemSpriteMulti2.setText("(F) Mark data as Multicolor Sprite definitions");
    jMenuItemSpriteMulti2.setToolTipText("");
    jMenuItemSpriteMulti2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMulti2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemSpriteMulti2);
    jMenuDataSel.add(jSeparatorSprite2);
    // NOI18N
    jMenuItemText2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/T.png")));
    jMenuItemText2.setText("(T) Mark data as Text");
    jMenuItemText2.setToolTipText("");
    jMenuItemText2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemText2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemText2);
    // NOI18N
    jMenuItemNumText2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/N.png")));
    jMenuItemNumText2.setText("(N) Mark data as Text with # chars before");
    jMenuItemNumText2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemNumText2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemNumText2);
    // NOI18N
    jMenuItemTextZero2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Z.png")));
    jMenuItemTextZero2.setText("(Z) Mark data as text terminated with 0");
    jMenuItemTextZero2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextZero2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemTextZero2);
    // NOI18N
    jMenuItemtextHighOne2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/M.png")));
    jMenuItemtextHighOne2.setText("(M) Mark data as Text with high bit 1");
    jMenuItemtextHighOne2.setToolTipText("");
    jMenuItemtextHighOne2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextHighOne2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemtextHighOne2);
    // NOI18N
    jMenuItemtextShifted2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/H.png")));
    jMenuItemtextShifted2.setText("(H) Mark data as Text left shifted");
    jMenuItemtextShifted2.setToolTipText("");
    jMenuItemtextShifted2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextShifted2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemtextShifted2);
    // NOI18N
    jMenuItemTextScreen2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/C.png")));
    jMenuItemTextScreen2.setText("(C) Mark data as Text converted to screen code");
    jMenuItemTextScreen2.setToolTipText("");
    jMenuItemTextScreen2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextScreen2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemTextScreen2);
    // NOI18N
    jMenuItemTextPetascii2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/I.png")));
    jMenuItemTextPetascii2.setText("(I) Mark data as Text converted to petAscii code");
    jMenuItemTextPetascii2.setToolTipText("");
    jMenuItemTextPetascii2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextPetascii2ActionPerformed(evt);
        }
    });
    jMenuDataSel.add(jMenuItemTextPetascii2);
    jPopupMenuMemory.add(jMenuDataSel);
    jMenuItemGarbage.setText("Mark as garbage");
    jMenuItemGarbage.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemGarbageActionPerformed(evt);
        }
    });
    jPopupMenuMemory.add(jMenuItemGarbage);
    setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
    setTitle("JC64Dis");
    addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            formMouseEntered(evt);
        }
    });
    addWindowListener(new java.awt.event.WindowAdapter() {

        public void windowClosing(java.awt.event.WindowEvent evt) {
            formWindowClosing(evt);
        }
    });
    jPanelToolBar.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jPanelToolBarMouseEntered(evt);
        }
    });
    jPanelToolBar.setLayout(new javax.swing.BoxLayout(jPanelToolBar, javax.swing.BoxLayout.LINE_AXIS));
    jToolBarFile.setRollover(true);
    // NOI18N
    jButtonNewProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/filenew.png")));
    jButtonNewProject.setToolTipText("New project");
    jButtonNewProject.setFocusable(false);
    jButtonNewProject.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonNewProject.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonNewProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonNewProjectActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonNewProject);
    // NOI18N
    jButtonOpenProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/fileopen.png")));
    jButtonOpenProject.setToolTipText("Open project");
    jButtonOpenProject.setFocusable(false);
    jButtonOpenProject.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonOpenProject.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonOpenProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonOpenProjectActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonOpenProject);
    // NOI18N
    jButtonClose.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/close.png")));
    jButtonClose.setToolTipText("Close the project");
    jButtonClose.setFocusable(false);
    jButtonClose.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonClose.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonClose.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCloseActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonClose);
    // NOI18N
    jButtonSaveProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/filesave.png")));
    jButtonSaveProject.setToolTipText("Save project");
    jButtonSaveProject.setFocusable(false);
    jButtonSaveProject.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonSaveProject.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonSaveProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonSaveProjectActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonSaveProject);
    // NOI18N
    jButtonSaveProjectAs.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/filesaveas.png")));
    jButtonSaveProjectAs.setToolTipText("Save project as");
    jButtonSaveProjectAs.setFocusable(false);
    jButtonSaveProjectAs.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonSaveProjectAs.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonSaveProjectAs.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonSaveProjectAsActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonSaveProjectAs);
    // NOI18N
    jButtonMPR.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/create.png")));
    jButtonMPR.setToolTipText("Create a MRP archive");
    jButtonMPR.setFocusable(false);
    jButtonMPR.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMPR.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMPR.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMPRActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonMPR);
    // NOI18N
    jButtonMerge.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/merge.png")));
    jButtonMerge.setToolTipText("Collaborative merge");
    jButtonMerge.setFocusable(false);
    jButtonMerge.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMerge.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMerge.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMergeActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonMerge);
    // NOI18N
    jButtonExit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/exit.png")));
    jButtonExit.setToolTipText("Exit application");
    jButtonExit.setFocusable(false);
    jButtonExit.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonExit.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonExit.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonExitActionPerformed(evt);
        }
    });
    jToolBarFile.add(jButtonExit);
    jPanelToolBar.add(jToolBarFile);
    jToolBarMemory.setRollover(true);
    // NOI18N
    jButtonClearDMem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/eraser.png")));
    jButtonClearDMem.setToolTipText("Erase daisassembly automatic comment");
    jButtonClearDMem.setFocusable(false);
    jButtonClearDMem.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonClearDMem.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonClearDMem.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonClearDMemActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonClearDMem);
    // NOI18N
    jButtonClearUMem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/eraser1.png")));
    jButtonClearUMem.setToolTipText("Erase user comment");
    jButtonClearUMem.setFocusable(false);
    jButtonClearUMem.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonClearUMem.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonClearUMem.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonClearUMemActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonClearUMem);
    // NOI18N
    jButtonClearDLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/eraser2.png")));
    jButtonClearDLabel.setToolTipText("Erase disassembly automatic label");
    jButtonClearDLabel.setFocusable(false);
    jButtonClearDLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonClearDLabel.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonClearDLabel.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonClearDLabelActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonClearDLabel);
    // NOI18N
    jButtonAddUserComm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/comm.png")));
    jButtonAddUserComm.setToolTipText("Add user comment");
    jButtonAddUserComm.setFocusable(false);
    jButtonAddUserComm.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonAddUserComm.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonAddUserComm.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonAddUserCommActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonAddUserComm);
    // NOI18N
    jButtonAddUserBlock.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/block.png")));
    jButtonAddUserBlock.setToolTipText("Add a block user comment");
    jButtonAddUserBlock.setFocusable(false);
    jButtonAddUserBlock.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonAddUserBlock.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonAddUserBlock.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonAddUserBlockActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonAddUserBlock);
    // NOI18N
    jButtonAddUserLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mem2.png")));
    jButtonAddUserLabel.setToolTipText("Add user label");
    jButtonAddUserLabel.setFocusable(false);
    jButtonAddUserLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonAddUserLabel.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonAddUserLabel.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonAddUserLabelActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonAddUserLabel);
    // NOI18N
    jButtonAddUserLabelOp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mem3.png")));
    jButtonAddUserLabelOp.setToolTipText("Add user label on next word address");
    jButtonAddUserLabelOp.setFocusable(false);
    jButtonAddUserLabelOp.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonAddUserLabelOp.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonAddUserLabelOp.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonAddUserLabelOpActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonAddUserLabelOp);
    // NOI18N
    jButtonMarkCode.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/code.png")));
    jButtonMarkCode.setToolTipText("Mark the selected addresses as code");
    jButtonMarkCode.setFocusable(false);
    jButtonMarkCode.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkCode.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkCode.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonMarkCodeMouseEntered(evt);
        }
    });
    jButtonMarkCode.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkCodeActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkCode);
    // NOI18N
    jButtonMarkData.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/data.png")));
    jButtonMarkData.setToolTipText("Mark the selected addresses as data");
    jButtonMarkData.setFocusable(false);
    jButtonMarkData.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkData.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkData.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonMarkDataMouseEntered(evt);
        }
    });
    jButtonMarkData.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkDataActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkData);
    // NOI18N
    jButtonMarkGarbage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/garb.png")));
    jButtonMarkGarbage.setToolTipText("Mark the selected addresses as garbage");
    jButtonMarkGarbage.setFocusable(false);
    jButtonMarkGarbage.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkGarbage.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkGarbage.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonMarkGarbageMouseEntered(evt);
        }
    });
    jButtonMarkGarbage.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkGarbageActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkGarbage);
    // NOI18N
    jButtonMarkConstant.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/const.png")));
    jButtonMarkConstant.setToolTipText("Mark the selected addresses as constant");
    jButtonMarkConstant.setFocusable(false);
    jButtonMarkConstant.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkConstant.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkConstant.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonMarkConstantMouseEntered(evt);
        }
    });
    jButtonMarkConstant.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkConstantActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkConstant);
    // NOI18N
    jButtonMarkPlus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/plus.png")));
    jButtonMarkPlus.setToolTipText("Mark the selected addresses as +");
    jButtonMarkPlus.setFocusable(false);
    jButtonMarkPlus.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkPlus.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkPlus.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonMarkPlusMouseEntered(evt);
        }
    });
    jButtonMarkPlus.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkPlusActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkPlus);
    // NOI18N
    jButtonMarkMinus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/minus.png")));
    jButtonMarkMinus.setToolTipText("Mark the selected addresses as -");
    jButtonMarkMinus.setFocusable(false);
    jButtonMarkMinus.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkMinus.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkMinus.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkMinusActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkMinus);
    // NOI18N
    jButtonMarkLow.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/min.png")));
    jButtonMarkLow.setToolTipText("Assign the selected address as #<");
    jButtonMarkLow.setFocusable(false);
    jButtonMarkLow.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkLow.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkLow.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkLowActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkLow);
    // NOI18N
    jButtonMarkLowHigh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/minmax.png")));
    jButtonMarkLowHigh.setToolTipText("Assign the 2 selected addresses as #<>");
    jButtonMarkLowHigh.setFocusable(false);
    jButtonMarkLowHigh.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkLowHigh.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkLowHigh.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkLowHighActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkLowHigh);
    // NOI18N
    jButtonMarkBoth.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/both.png")));
    jButtonMarkBoth.setToolTipText("Assign the 2 tables as #<>");
    jButtonMarkBoth.setFocusable(false);
    jButtonMarkBoth.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkBoth.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkBoth.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkBothActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkBoth);
    // NOI18N
    jButtonMarkHighLow.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/maxmin.png")));
    jButtonMarkHighLow.setToolTipText("Assign the 2 selected addresses as #<>");
    jButtonMarkHighLow.setFocusable(false);
    jButtonMarkHighLow.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkHighLow.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkHighLow.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkHighLowActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkHighLow);
    // NOI18N
    jButtonMarkMax.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/max.png")));
    jButtonMarkMax.setToolTipText("Assign the selected address as #>");
    jButtonMarkMax.setFocusable(false);
    jButtonMarkMax.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonMarkMax.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonMarkMax.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonMarkMaxActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonMarkMax);
    // NOI18N
    jButtonWizard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/wizard.png")));
    jButtonWizard.setToolTipText("Assign using a wizard");
    jButtonWizard.setFocusable(false);
    jButtonWizard.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonWizard.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonWizard.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonWizardActionPerformed(evt);
        }
    });
    jToolBarMemory.add(jButtonWizard);
    jPanelToolBar.add(jToolBarMemory);
    jToolBarOption.setRollover(true);
    // NOI18N
    jButtonConfigure.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/configure.png")));
    jButtonConfigure.setToolTipText("Set general option");
    jButtonConfigure.setFocusable(false);
    jButtonConfigure.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonConfigure.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonConfigure.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonConfigureActionPerformed(evt);
        }
    });
    jToolBarOption.add(jButtonConfigure);
    // NOI18N
    jButtonSIDLD.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mem.png")));
    jButtonSIDLD.setToolTipText("Apply SIDLD flags to memory");
    jButtonSIDLD.setFocusable(false);
    jButtonSIDLD.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonSIDLD.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonSIDLD.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonSIDLDActionPerformed(evt);
        }
    });
    jToolBarOption.add(jButtonSIDLD);
    // NOI18N
    jButtonViewProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/view_detailed.png")));
    jButtonViewProject.setToolTipText("View project");
    jButtonViewProject.setFocusable(false);
    jButtonViewProject.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonViewProject.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonViewProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonViewProjectActionPerformed(evt);
        }
    });
    jToolBarOption.add(jButtonViewProject);
    // NOI18N
    jButtonViewLabels.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/view_label.png")));
    jButtonViewLabels.setToolTipText("View labels");
    jButtonViewLabels.setFocusable(false);
    jButtonViewLabels.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonViewLabels.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonViewLabels.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonViewLabelsActionPerformed(evt);
        }
    });
    jToolBarOption.add(jButtonViewLabels);
    jPanelToolBar.add(jToolBarOption);
    jToolBarSource.setRollover(true);
    // NOI18N
    jButtonFindMem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/finda.png")));
    jButtonFindMem.setToolTipText("Find a memory address");
    jButtonFindMem.setFocusable(false);
    jButtonFindMem.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonFindMem.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonFindMem.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonFindMemActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonFindMem);
    // NOI18N
    jButtonDisassemble.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/exec.png")));
    jButtonDisassemble.setToolTipText("Disassemble");
    jButtonDisassemble.setFocusable(false);
    jButtonDisassemble.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonDisassemble.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonDisassemble.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonDisassembleActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonDisassemble);
    // NOI18N
    jButtonAssemble.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/assembler.png")));
    jButtonAssemble.setToolTipText("Assemble");
    jButtonAssemble.setFocusable(false);
    jButtonAssemble.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonAssemble.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonAssemble.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonAssembleActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonAssemble);
    // NOI18N
    jButtonFindDis.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/findd.png")));
    jButtonFindDis.setToolTipText("Find a text in preview");
    jButtonFindDis.setFocusable(false);
    jButtonFindDis.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonFindDis.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonFindDis.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonFindDisActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonFindDis);
    // NOI18N
    jButtonExportAsDiss.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/exportas1.png")));
    jButtonExportAsDiss.setToolTipText("Save preview file");
    jButtonExportAsDiss.setFocusable(false);
    jButtonExportAsDiss.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonExportAsDiss.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonExportAsDiss.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonExportAsDissActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonExportAsDiss);
    // NOI18N
    jButtonFindSource.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/finds.png")));
    jButtonFindSource.setToolTipText("Find a text in source");
    jButtonFindSource.setFocusable(false);
    jButtonFindSource.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonFindSource.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonFindSource.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonFindSourceMouseEntered(evt);
        }
    });
    jButtonFindSource.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonFindSourceActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonFindSource);
    // NOI18N
    jButtonExportAsSource.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/exportas2.png")));
    jButtonExportAsSource.setToolTipText("Save source file");
    jButtonExportAsSource.setFocusable(false);
    jButtonExportAsSource.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonExportAsSource.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonExportAsSource.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonExportAsSourceMouseEntered(evt);
        }
    });
    jButtonExportAsSource.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonExportAsSourceActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonExportAsSource);
    // NOI18N
    jButtonExportAsSource1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/freeze.png")));
    jButtonExportAsSource1.setToolTipText("Freeze the source");
    jButtonExportAsSource1.setFocusable(false);
    jButtonExportAsSource1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    jButtonExportAsSource1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jButtonExportAsSource1.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jButtonExportAsSource1MouseEntered(evt);
        }
    });
    jButtonExportAsSource1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonExportAsSource1ActionPerformed(evt);
        }
    });
    jToolBarSource.add(jButtonExportAsSource1);
    jPanelToolBar.add(jToolBarSource);
    jToolBarPerformance.setRollover(true);
    jToolBarPerformance.setAlignmentY(0.5F);
    jToolBarPerformance.setMaximumSize(new java.awt.Dimension(128, 38));
    jToolBarPerformance.setMinimumSize(new java.awt.Dimension(128, 38));
    jToolBarPerformance.setPreferredSize(new java.awt.Dimension(128, 38));
    jToolBarPerformance.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jToolBarPerformanceMouseEntered(evt);
        }
    });
    heapView.setMinimumSize(new java.awt.Dimension(128, 38));
    // NOI18N
    heapView.setName("");
    heapView.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseClicked(java.awt.event.MouseEvent evt) {
            heapViewMouseClicked(evt);
        }
    });
    jToolBarPerformance.add(heapView);
    jPanelToolBar.add(jToolBarPerformance);
    jToolBarPerc.setRollover(true);
    jToolBarPerc.setMaximumSize(new java.awt.Dimension(92, 38));
    jToolBarPerc.setMinimumSize(new java.awt.Dimension(92, 38));
    // NOI18N
    jToolBarPerc.setName("");
    jToolBarPerc.setPreferredSize(new java.awt.Dimension(92, 38));
    jPanelPerc.setMaximumSize(new java.awt.Dimension(74, 36));
    jPanelPerc.setMinimumSize(new java.awt.Dimension(74, 36));
    jPanelPerc.setPreferredSize(new java.awt.Dimension(74, 36));
    jToolBarPerc.add(jPanelPerc);
    jPanelToolBar.add(jToolBarPerc);
    jSplitPaneExternal.setToolTipText("");
    jSplitPaneInternal.setResizeWeight(0.5);
    jSplitPaneInternal.setToolTipText("");
    rSyntaxTextAreaDis.setEditable(false);
    rSyntaxTextAreaDis.setColumns(20);
    rSyntaxTextAreaDis.setRows(5);
    // NOI18N
    rSyntaxTextAreaDis.setFont(new java.awt.Font("Monospaced", 0, 12));
    rSyntaxTextAreaDis.setSyntaxEditingStyle("text/asm6502");
    findDialogDis = new FindDialog(this, new SearchListener() {

        @Override
        public void searchEvent(SearchEvent e) {
            SearchEvent.Type type = e.getType();
            SearchContext context = e.getSearchContext();
            SearchResult result;
            switch(type) {
                // Prevent FindBugs warning later
                default:
                case MARK_ALL:
                    result = SearchEngine.markAll(rSyntaxTextAreaDis, context);
                    break;
                case FIND:
                    result = SearchEngine.find(rSyntaxTextAreaDis, context);
                    if (!result.wasFound()) {
                        UIManager.getLookAndFeel().provideErrorFeedback(rSyntaxTextAreaDis);
                    }
                    break;
            }
        }

        @Override
        public String getSelectedText() {
            return rSyntaxTextAreaDis.getSelectedText();
        }
    });
    rSyntaxTextAreaDis.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK), new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            execute(SOURCE_FINDD);
        }
    });
    // force menu key not working otherwise
    rSyntaxTextAreaDis.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, InputEvent.CTRL_MASK), new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            execute(MEM_PLUS);
        }
    });
    // force menu key not working otherwise
    rSyntaxTextAreaDis.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, InputEvent.CTRL_MASK), new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            execute(MEM_MINUS);
        }
    });
    rSyntaxTextAreaDis.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaDisMouseReleased(evt);
        }

        public void mouseClicked(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaDisMouseClicked(evt);
        }

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaDisMouseEntered(evt);
        }
    });
    rSyntaxTextAreaDis.addKeyListener(new java.awt.event.KeyAdapter() {

        public void keyReleased(java.awt.event.KeyEvent evt) {
            rSyntaxTextAreaDisKeyReleased(evt);
        }
    });
    jScrollPaneLeft.setViewportView(rSyntaxTextAreaDis);
    jSplitPaneInternal.setLeftComponent(jScrollPaneLeft);
    rSyntaxTextAreaSource.setEditable(false);
    rSyntaxTextAreaSource.setColumns(20);
    rSyntaxTextAreaSource.setRows(5);
    // NOI18N
    rSyntaxTextAreaSource.setFont(new java.awt.Font("Monospaced", 0, 12));
    rSyntaxTextAreaSource.setSyntaxEditingStyle("text/asm6502");
    findDialogSource = new FindDialog(this, new SearchListener() {

        @Override
        public void searchEvent(SearchEvent e) {
            SearchEvent.Type type = e.getType();
            SearchContext context = e.getSearchContext();
            SearchResult result;
            switch(type) {
                // Prevent FindBugs warning later
                default:
                case MARK_ALL:
                    result = SearchEngine.markAll(rSyntaxTextAreaSource, context);
                    break;
                case FIND:
                    result = SearchEngine.find(rSyntaxTextAreaSource, context);
                    if (!result.wasFound()) {
                        UIManager.getLookAndFeel().provideErrorFeedback(rSyntaxTextAreaSource);
                    }
                    break;
            }
        }

        @Override
        public String getSelectedText() {
            return rSyntaxTextAreaSource.getSelectedText();
        }
    });
    rSyntaxTextAreaSource.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK), new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            execute(SOURCE_FINDS);
        }
    });
    rSyntaxTextAreaSource.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaSourceMouseReleased(evt);
        }

        public void mouseClicked(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaSourceMouseClicked(evt);
        }

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            rSyntaxTextAreaSourceMouseEntered(evt);
        }
    });
    jScrollPaneRight.setViewportView(rSyntaxTextAreaSource);
    jSplitPaneInternal.setRightComponent(jScrollPaneRight);
    jSplitPaneExternal.setRightComponent(jSplitPaneInternal);
    jScrollPaneMemory.setPreferredSize(new java.awt.Dimension(200, 403));
    jTableMemory.setModel(dataTableModelMemory);
    jTableMemory.setDefaultRenderer(Integer.class, memoryTableCellRenderer);
    jTableMemory.getColumnModel().getColumn(0).setPreferredWidth(310);
    InputMap im = this.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    ActionMap am = this.getRootPane().getActionMap();
    // add custom action
    im.put(KeyStroke.getKeyStroke("control F"), "find");
    am.put("find", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            execute(SOURCE_FINDA);
        }
    });
    ((InputMap) UIManager.get("Table.ancestorInputMap")).put(KeyStroke.getKeyStroke("control F"), "none");
    // add custom action
    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, InputEvent.ALT_DOWN_MASK), "home");
    am.put("home", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            altHome();
        }
    });
    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_END, InputEvent.ALT_DOWN_MASK), "end");
    am.put("end", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            altEnd();
        }
    });
    jTableMemory.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mousePressed(java.awt.event.MouseEvent evt) {
            jTableMemoryMousePressed(evt);
        }

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            jTableMemoryMouseReleased(evt);
        }
    });
    jScrollPaneMemory.setViewportView(jTableMemory);
    jSplitPaneExternal.setLeftComponent(jScrollPaneMemory);
    jMenuBar.addMouseListener(new java.awt.event.MouseAdapter() {

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            jMenuBarMouseEntered(evt);
        }
    });
    jMenuFile.setText("File");
    jMenuItemNewProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemNewProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/filenew.png")));
    jMenuItemNewProject.setMnemonic('n');
    jMenuItemNewProject.setText("New Project");
    jMenuItemNewProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemNewProjectActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemNewProject);
    jMenuFile.add(jSeparatorProject1);
    jMenuItemOpenProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemOpenProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/fileopen.png")));
    jMenuItemOpenProject.setMnemonic('o');
    jMenuItemOpenProject.setText("Open Project");
    jMenuItemOpenProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemOpenProjectActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemOpenProject);
    jMenuRecent.setText("Open Recent Project");
    jMenuRecent.addMenuListener(new javax.swing.event.MenuListener() {

        public void menuSelected(javax.swing.event.MenuEvent evt) {
            jMenuRecentMenuSelected(evt);
        }

        public void menuDeselected(javax.swing.event.MenuEvent evt) {
        }

        public void menuCanceled(javax.swing.event.MenuEvent evt) {
        }
    });
    jMenuItemRecent1.setEnabled(false);
    jMenuItemRecent1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent1ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent1);
    jMenuItemRecent2.setEnabled(false);
    jMenuItemRecent2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent2ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent2);
    jMenuItemRecent3.setEnabled(false);
    jMenuItemRecent3.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent3ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent3);
    jMenuItemRecent4.setEnabled(false);
    jMenuItemRecent4.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent4ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent4);
    jMenuItemRecent5.setEnabled(false);
    jMenuItemRecent5.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent5ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent5);
    jMenuItemRecent6.setEnabled(false);
    jMenuItemRecent6.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent6ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent6);
    jMenuItemRecent7.setEnabled(false);
    jMenuItemRecent7.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent7ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent7);
    jMenuItemRecent8.setEnabled(false);
    jMenuItemRecent8.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent8ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent8);
    jMenuItemRecent9.setEnabled(false);
    jMenuItemRecent9.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRecent9ActionPerformed(evt);
        }
    });
    jMenuRecent.add(jMenuItemRecent9);
    jMenuFile.add(jMenuRecent);
    jMenuItemCloseProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemCloseProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/close.png")));
    jMenuItemCloseProject.setMnemonic('c');
    jMenuItemCloseProject.setText("Close Project");
    jMenuItemCloseProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemCloseProjectActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemCloseProject);
    jMenuFile.add(jSeparatorProject2);
    jMenuItemSaveProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSaveProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/filesave.png")));
    jMenuItemSaveProject.setMnemonic('s');
    jMenuItemSaveProject.setText("Save Project");
    jMenuItemSaveProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveProjectActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemSaveProject);
    jMenuItemSaveAsProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSaveAsProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/filesaveas.png")));
    jMenuItemSaveAsProject.setMnemonic('v');
    jMenuItemSaveAsProject.setText("Save Project As");
    jMenuItemSaveAsProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsProjectActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemSaveAsProject);
    jMenuFile.add(jSeparatorProject3);
    jMenuItemMPR.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMPR.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/create.png")));
    jMenuItemMPR.setText("Create a MPR archive");
    jMenuItemMPR.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMPRActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemMPR);
    jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/merge.png")));
    jMenuItem2.setMnemonic('r');
    jMenuItem2.setText("Collaborative merge");
    jMenuItem2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem2ActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItem2);
    jMenuItemExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemExit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/exit.png")));
    jMenuItemExit.setMnemonic('x');
    jMenuItemExit.setText("Exit");
    jMenuItemExit.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemExitActionPerformed(evt);
        }
    });
    jMenuFile.add(jMenuItemExit);
    jMenuBar.add(jMenuFile);
    jMenuMemory.setText("Memory");
    jMenuItemClearDMem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemClearDMem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/eraser.png")));
    jMenuItemClearDMem.setMnemonic('a');
    jMenuItemClearDMem.setText("Clear disassembly automatic comment");
    jMenuItemClearDMem.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemClearDMemActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemClearDMem);
    jMenuItemClearUMem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemClearUMem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/eraser1.png")));
    jMenuItemClearUMem.setMnemonic('m');
    jMenuItemClearUMem.setText("Clear user comment");
    jMenuItemClearUMem.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemClearUMemActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemClearUMem);
    jMenuItemClearDLabel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemClearDLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/eraser2.png")));
    jMenuItemClearDLabel.setMnemonic('r');
    jMenuItemClearDLabel.setText("Clear disassembly automatic label");
    jMenuItemClearDLabel.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemClearDLabelActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemClearDLabel);
    jMenuMemory.add(jSeparator4);
    jMenuItemAddComment.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SEMICOLON, 0));
    // NOI18N
    jMenuItemAddComment.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/comm.png")));
    jMenuItemAddComment.setMnemonic('u');
    jMenuItemAddComment.setText("Add user comment");
    jMenuItemAddComment.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAddCommentActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemAddComment);
    jMenuItemAddBlock.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SEMICOLON, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemAddBlock.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/block.png")));
    jMenuItemAddBlock.setMnemonic('b');
    jMenuItemAddBlock.setText("Add user block comment");
    jMenuItemAddBlock.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAddBlockActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemAddBlock);
    jMenuItemUserLabel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemUserLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/mem2.png")));
    jMenuItemUserLabel.setMnemonic('l');
    jMenuItemUserLabel.setText("Add user label");
    jMenuItemUserLabel.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUserLabelActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemUserLabel);
    jMenuItemUserLabelOp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemUserLabelOp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/mem3.png")));
    jMenuItemUserLabelOp.setMnemonic('n');
    jMenuItemUserLabelOp.setText("Add user label on next address");
    jMenuItemUserLabelOp.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUserLabelOpActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemUserLabelOp);
    jMenuMemory.add(jSeparator3);
    jMenuItemMarkCode.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMarkCode.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/code.png")));
    jMenuItemMarkCode.setMnemonic('c');
    jMenuItemMarkCode.setText("Mark as code");
    jMenuItemMarkCode.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMarkCodeActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMarkCode);
    jMenuItemMarkData.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMarkData.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/data.png")));
    jMenuItemMarkData.setMnemonic('d');
    jMenuItemMarkData.setText("Mark as data");
    jMenuItemMarkData.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMarkDataActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMarkData);
    jSubMenu.setText("(more specific data selection)");
    jMenuItemByteHex1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemByteHex1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/B.png")));
    jMenuItemByteHex1.setMnemonic('b');
    jMenuItemByteHex1.setText("(B) Mark data as Byte (HEX)");
    jMenuItemByteHex1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteHex1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemByteHex1);
    jMenuItemByteDec1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemByteDec1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/D.png")));
    jMenuItemByteDec1.setMnemonic('d');
    jMenuItemByteDec1.setText("(D) Mark data as Byte (DEC)");
    jMenuItemByteDec1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteDec1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemByteDec1);
    jMenuItemByteBin1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Y, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemByteBin1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Y.png")));
    jMenuItemByteBin1.setMnemonic('y');
    jMenuItemByteBin1.setText("(Y) Mark data as Byte (BIN)");
    jMenuItemByteBin1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteBin1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemByteBin1);
    jMenuItemByteChar1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemByteChar1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/R.png")));
    jMenuItemByteChar1.setMnemonic('r');
    jMenuItemByteChar1.setText("(R) Mark data as Byte (CHAR)");
    jMenuItemByteChar1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemByteChar1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemByteChar1);
    jSubMenu.add(jSeparatorByte1);
    jMenuItemWord1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemWord1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/W.png")));
    jMenuItemWord1.setMnemonic('w');
    jMenuItemWord1.setText("(W) Mark data as Word");
    jMenuItemWord1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWord1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemWord1);
    jMenuItemWordSwapped1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemWordSwapped1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/P.png")));
    jMenuItemWordSwapped1.setMnemonic('p');
    jMenuItemWordSwapped1.setText("(P) Mark data as Word Swapped");
    jMenuItemWordSwapped1.setToolTipText("");
    jMenuItemWordSwapped1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWordSwapped1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemWordSwapped1);
    jSubMenu.add(jSeparatorWord1);
    jMenuItemTribyte1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemTribyte1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/E.png")));
    jMenuItemTribyte1.setText("(E) Mark data as Tribyte");
    jMenuItemTribyte1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTribyte1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemTribyte1);
    jMenuItemLong1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemLong1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/L.png")));
    jMenuItemLong1.setMnemonic('l');
    jMenuItemLong1.setText("(L) Mark data as Long");
    jMenuItemLong1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemLong1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemLong1);
    jSubMenu.add(jSeparator5);
    jMenuItemAddress1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemAddress1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/A.png")));
    jMenuItemAddress1.setMnemonic('a');
    jMenuItemAddress1.setText("(A) Mark data as Address");
    jMenuItemAddress1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAddress1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemAddress1);
    jMenuItemStackWord1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemStackWord1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/S.png")));
    jMenuItemStackWord1.setMnemonic('s');
    jMenuItemStackWord1.setText("(S) Mark data as Stack Word");
    jMenuItemStackWord1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemStackWord1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemStackWord1);
    jSubMenu.add(jSeparator6);
    jMenuItemSpriteMono1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSpriteMono1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/O.png")));
    jMenuItemSpriteMono1.setMnemonic('o');
    jMenuItemSpriteMono1.setText("(O) Mark data as Monocromatic Sprite definitions");
    jMenuItemSpriteMono1.setToolTipText("");
    jMenuItemSpriteMono1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMono1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemSpriteMono1);
    jMenuItemSpriteMulti1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSpriteMulti1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/F.png")));
    jMenuItemSpriteMulti1.setMnemonic('f');
    jMenuItemSpriteMulti1.setText("(F) Mark data as Multicolor Sprite definitions");
    jMenuItemSpriteMulti1.setToolTipText("");
    jMenuItemSpriteMulti1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSpriteMulti1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemSpriteMulti1);
    jSubMenu.add(jSeparatorSprite1);
    jMenuItemText1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemText1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/T.png")));
    jMenuItemText1.setMnemonic('t');
    jMenuItemText1.setText("(T) Mark data as Text");
    jMenuItemText1.setToolTipText("");
    jMenuItemText1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemText1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemText1);
    jMenuItemNumText1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemNumText1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/N.png")));
    jMenuItemNumText1.setMnemonic('n');
    jMenuItemNumText1.setText("(N) Mark data as Text with # chars before");
    jMenuItemNumText1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemNumText1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemNumText1);
    jMenuItemTextZero1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemTextZero1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/Z.png")));
    jMenuItemTextZero1.setMnemonic('z');
    jMenuItemTextZero1.setText("(Z) Mark data as text terminated with 0");
    jMenuItemTextZero1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextZero1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemTextZero1);
    jMenuItemtextHighOne1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemtextHighOne1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/M.png")));
    jMenuItemtextHighOne1.setMnemonic('m');
    jMenuItemtextHighOne1.setText("(M) Mark data as Text with high bit 1");
    jMenuItemtextHighOne1.setToolTipText("");
    jMenuItemtextHighOne1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextHighOne1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemtextHighOne1);
    jMenuItemtextShifted1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemtextShifted1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/H.png")));
    jMenuItemtextShifted1.setMnemonic('h');
    jMenuItemtextShifted1.setText("(H) Mark data as Text left shifted");
    jMenuItemtextShifted1.setToolTipText("");
    jMenuItemtextShifted1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemtextShifted1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemtextShifted1);
    jMenuItemTextScreen1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemTextScreen1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/C.png")));
    jMenuItemTextScreen1.setMnemonic('c');
    jMenuItemTextScreen1.setText("(C) Mark data as Text converted to screen code");
    jMenuItemTextScreen1.setToolTipText("");
    jMenuItemTextScreen1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextScreen1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemTextScreen1);
    jMenuItemTextPetascii1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemTextPetascii1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/I.png")));
    jMenuItemTextPetascii1.setMnemonic('i');
    jMenuItemTextPetascii1.setText("(I) Mark data as Text converted to petAscii code");
    jMenuItemTextPetascii1.setToolTipText("");
    jMenuItemTextPetascii1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemTextPetascii1ActionPerformed(evt);
        }
    });
    jSubMenu.add(jMenuItemTextPetascii1);
    jMenuMemory.add(jSubMenu);
    jMenuItemMarkGarbage.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMarkGarbage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/garb.png")));
    jMenuItemMarkGarbage.setMnemonic('g');
    jMenuItemMarkGarbage.setText("Mark as garbage");
    jMenuItemMarkGarbage.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMarkGarbageActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMarkGarbage);
    jSubMenuC.setText("Sub-mark a cell");
    jMenuItemConstant0b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_0, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant0b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/0.png")));
    jMenuItemConstant0b.setText("as of constant 0");
    jMenuItemConstant0b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant0bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant0b);
    jMenuItemConstant1b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_1, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant1b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/1.png")));
    jMenuItemConstant1b.setText("as of constant 1");
    jMenuItemConstant1b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant1bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant1b);
    jMenuItemConstant2b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_2, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant2b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/2.png")));
    jMenuItemConstant2b.setText("as of constant 2");
    jMenuItemConstant2b.setToolTipText("");
    jMenuItemConstant2b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant2bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant2b);
    jMenuItemConstant3b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_3, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant3b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/3.png")));
    jMenuItemConstant3b.setText("as of constant 3");
    jMenuItemConstant3b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant3bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant3b);
    jMenuItemConstant4b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_4, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant4b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/4.png")));
    jMenuItemConstant4b.setText("as of constant 4");
    jMenuItemConstant4b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant4bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant4b);
    jMenuItemConstant5b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_5, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant5b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/5.png")));
    jMenuItemConstant5b.setText("as of constant 5");
    jMenuItemConstant5b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant5bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant5b);
    jMenuItemConstant6b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_6, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant6b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/6.png")));
    jMenuItemConstant6b.setText("as of constant 6");
    jMenuItemConstant6b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant6bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant6b);
    jMenuItemConstant7b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_7, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant7b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/7.png")));
    jMenuItemConstant7b.setText("as of constant 7");
    jMenuItemConstant7b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant7bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant7b);
    jMenuItemConstant8b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_8, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant8b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/8.png")));
    jMenuItemConstant8b.setText("as of constant 8");
    jMenuItemConstant8b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant8bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant8b);
    jMenuItemConstant9b.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_9, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstant9b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/9.png")));
    jMenuItemConstant9b.setText("as of constant 9");
    jMenuItemConstant9b.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstant9bActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstant9b);
    jMenuItemConstantClear.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_BACK_SPACE, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConstantClear.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/0-9.png")));
    jMenuItemConstantClear.setText("reset to none");
    jMenuItemConstantClear.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConstantClearActionPerformed(evt);
        }
    });
    jSubMenuC.add(jMenuItemConstantClear);
    jMenuMemory.add(jSubMenuC);
    jMenuItemPlus.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ADD, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemPlus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/plus.png")));
    jMenuItemPlus.setText("Assign the selected address as +");
    jMenuItemPlus.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemPlusActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemPlus);
    jMenuItemMinus.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SUBTRACT, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMinus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/minus.png")));
    jMenuItemMinus.setText("Assign the selected address as -");
    jMenuItemMinus.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMinusActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMinus);
    jMenuItemMemLow.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_1, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMemLow.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/min.png")));
    jMenuItemMemLow.setText("Assign the selected address as #<");
    jMenuItemMemLow.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMemLowActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMemLow);
    jMenuItemMemLowHigh.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_2, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMemLowHigh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/minmax.png")));
    jMenuItemMemLowHigh.setText("Assign the 2 selected addresses as #<>");
    jMenuItemMemLowHigh.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMemLowHighActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMemLowHigh);
    jMenuItemMemBoth.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_3, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMemBoth.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/minmax.png")));
    jMenuItemMemBoth.setText("Assign the 2 tables as #<>");
    jMenuItemMemBoth.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMemBothActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMemBoth);
    jMenuItemMemHighLow.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_4, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMemHighLow.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/maxmin.png")));
    jMenuItemMemHighLow.setText("Assign the 2 selected addresses as #><");
    jMenuItemMemHighLow.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMemHighLowActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMemHighLow);
    jMenuItemMemHigh.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_RIGHT, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemMemHigh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/max.png")));
    jMenuItemMemHigh.setText("Assign the selected address as #>");
    jMenuItemMemHigh.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemMemHighActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemMemHigh);
    jMenuItemWizard.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemWizard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/wizard.png")));
    jMenuItemWizard.setText("Assign using wizard");
    jMenuItemWizard.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemWizardActionPerformed(evt);
        }
    });
    jMenuMemory.add(jMenuItemWizard);
    jMenuBar.add(jMenuMemory);
    jMenuOption.setText("Option");
    jMenuOption.setToolTipText("");
    jMenuItemConfigure.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemConfigure.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/configure.png")));
    jMenuItemConfigure.setMnemonic('o');
    jMenuItemConfigure.setText("General Option");
    jMenuItemConfigure.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemConfigureActionPerformed(evt);
        }
    });
    jMenuOption.add(jMenuItemConfigure);
    jMenuItemSIDLD.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSIDLD.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/mem.png")));
    jMenuItemSIDLD.setMnemonic('e');
    jMenuItemSIDLD.setText("Apply SIDLD flags to memory");
    jMenuItemSIDLD.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSIDLDActionPerformed(evt);
        }
    });
    jMenuOption.add(jMenuItemSIDLD);
    jMenuOption.add(jSeparatorOption);
    jMenuItemViewProject.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_J, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemViewProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/view_detailed.png")));
    jMenuItemViewProject.setMnemonic('j');
    jMenuItemViewProject.setText("View Project");
    jMenuItemViewProject.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemViewProjectActionPerformed(evt);
        }
    });
    jMenuOption.add(jMenuItemViewProject);
    jMenuItemViewLabels.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemViewLabels.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/view_label.png")));
    jMenuItemViewLabels.setMnemonic('b');
    jMenuItemViewLabels.setText("View labels");
    jMenuItemViewLabels.setToolTipText("");
    jMenuItemViewLabels.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemViewLabelsActionPerformed(evt);
        }
    });
    jMenuOption.add(jMenuItemViewLabels);
    jMenuBar.add(jMenuOption);
    jMenuSource.setText("Source");
    jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/finda.png")));
    jMenuItem1.setText("Find memory address");
    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem1ActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItem1);
    jMenuItemDiss.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemDiss.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/exec.png")));
    jMenuItemDiss.setMnemonic('e');
    jMenuItemDiss.setText("Disassemble");
    jMenuItemDiss.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemDissActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemDiss);
    jMenuItemAssembly.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemAssembly.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/assembler.png")));
    jMenuItemAssembly.setMnemonic('t');
    jMenuItemAssembly.setText("Assemble");
    jMenuItemAssembly.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAssemblyActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemAssembly);
    jMenuSource.add(jSeparator1);
    jMenuItemFindDis.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemFindDis.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/findd.png")));
    jMenuItemFindDis.setText("Find text in preview");
    jMenuItemFindDis.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemFindDisActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemFindDis);
    jMenuItemDissSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemDissSaveAs.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/exportas1.png")));
    jMenuItemDissSaveAs.setMnemonic('p');
    jMenuItemDissSaveAs.setText("Export As of preview");
    jMenuItemDissSaveAs.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemDissSaveAsActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemDissSaveAs);
    jMenuSource.add(jSeparator2);
    jMenuItemFindSource.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemFindSource.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/finds.png")));
    jMenuItemFindSource.setText("Find text in source");
    jMenuItemFindSource.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemFindSourceActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemFindSource);
    jMenuItemSourceSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    // NOI18N
    jMenuItemSourceSaveAs.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/exportas2.png")));
    jMenuItemSourceSaveAs.setMnemonic('s');
    jMenuItemSourceSaveAs.setText("Export As of source");
    jMenuItemSourceSaveAs.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSourceSaveAsActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItemSourceSaveAs);
    jMenuSub.setText("(more specific export)");
    jMenuItemSaveAsDasm1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_0, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsDasm1.setText("Save in Dasm format");
    jMenuItemSaveAsDasm1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsDasm1ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsDasm1);
    jMenuItemSaveAsTmpx1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_1, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsTmpx1.setText("Save in TMPx format");
    jMenuItemSaveAsTmpx1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsTmpx1ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsTmpx1);
    jMenuItemSaveAsCa66.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_2, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsCa66.setText("Save in CA65 format");
    jMenuItemSaveAsCa66.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsCa66ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsCa66);
    jMenuItemSaveAsAcme1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_3, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsAcme1.setText("Save in Acme format");
    jMenuItemSaveAsAcme1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsAcme1ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsAcme1);
    jMenuItemSaveAsKickAssembler1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_4, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsKickAssembler1.setText("Save in KickAssembler format");
    jMenuItemSaveAsKickAssembler1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsKickAssembler1ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsKickAssembler1);
    jMenuItemSaveAsTass65.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_5, java.awt.event.InputEvent.ALT_DOWN_MASK));
    jMenuItemSaveAsTass65.setText("Save in Tass64 format");
    jMenuItemSaveAsTass65.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemSaveAsTass65ActionPerformed(evt);
        }
    });
    jMenuSub.add(jMenuItemSaveAsTass65);
    jMenuSource.add(jMenuSub);
    // NOI18N
    jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/freeze.png")));
    jMenuItem3.setText("Freeze source");
    jMenuItem3.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem3ActionPerformed(evt);
        }
    });
    jMenuSource.add(jMenuItem3);
    jMenuBar.add(jMenuSource);
    jMenuHelpContents.setText("Help");
    jMenuItemContents.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
    // NOI18N
    jMenuItemContents.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sw_emulator/swing/icons/mini/help_index.png")));
    jMenuItemContents.setMnemonic('h');
    jMenuItemContents.setText("Help contents");
    jMenuItemContents.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemContentsActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemContents);
    jMenuHelpContents.add(jSeparatorHelp1);
    jMenuItemLicense.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemLicense.setMnemonic('l');
    jMenuItemLicense.setText("License");
    jMenuItemLicense.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemLicenseActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemLicense);
    jMenuItemCredits.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemCredits.setMnemonic('d');
    jMenuItemCredits.setText("Credits");
    jMenuItemCredits.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemCreditsActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemCredits);
    jMenuItemAbout.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemAbout.setMnemonic('a');
    jMenuItemAbout.setText("About");
    jMenuItemAbout.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAboutActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemAbout);
    jMenuHelpContents.add(jSeparatorHelp2);
    jMenuItemImportLabels.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemImportLabels.setMnemonic('i');
    jMenuItemImportLabels.setText("Import labels");
    jMenuItemImportLabels.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemImportLabelsActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemImportLabels);
    jMenuItemRefactorLabels.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemRefactorLabels.setMnemonic('t');
    jMenuItemRefactorLabels.setText("Refactor labels");
    jMenuItemRefactorLabels.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemRefactorLabelsActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemRefactorLabels);
    jMenuItemAutComment.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemAutComment.setText("Clear automatic  comment");
    jMenuItemAutComment.setActionCommand("Clear automatic comment");
    jMenuItemAutComment.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAutCommentActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemAutComment);
    jMenuItemAutLabel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK));
    jMenuItemAutLabel.setText("Clear automatic label");
    jMenuItemAutLabel.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemAutLabelActionPerformed(evt);
        }
    });
    jMenuHelpContents.add(jMenuItemAutLabel);
    jMenuHelpContents.add(jSeparatorHelp3);
    jMenuUndo.setText("Undo");
    jMenuUndo.addMenuListener(new javax.swing.event.MenuListener() {

        public void menuSelected(javax.swing.event.MenuEvent evt) {
            jMenuUndoMenuSelected(evt);
        }

        public void menuDeselected(javax.swing.event.MenuEvent evt) {
        }

        public void menuCanceled(javax.swing.event.MenuEvent evt) {
        }
    });
    jMenuItemUndo1.setEnabled(false);
    jMenuItemUndo1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo1ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo1);
    jMenuItemUndo2.setToolTipText("");
    jMenuItemUndo2.setEnabled(false);
    jMenuItemUndo2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo2ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo2);
    jMenuItemUndo3.setEnabled(false);
    jMenuItemUndo3.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo3ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo3);
    jMenuItemUndo4.setEnabled(false);
    jMenuItemUndo4.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo4ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo4);
    jMenuItemUndo5.setToolTipText("");
    jMenuItemUndo5.setEnabled(false);
    jMenuItemUndo5.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo5ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo5);
    jMenuItemUndo6.setToolTipText("");
    jMenuItemUndo6.setEnabled(false);
    jMenuItemUndo6.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo6ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo6);
    jMenuItemUndo7.setEnabled(false);
    jMenuItemUndo7.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo7ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo7);
    jMenuItemUndo8.setEnabled(false);
    jMenuItemUndo8.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo8ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo8);
    jMenuItemUndo9.setToolTipText("");
    jMenuItemUndo9.setEnabled(false);
    jMenuItemUndo9.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItemUndo9ActionPerformed(evt);
        }
    });
    jMenuUndo.add(jMenuItemUndo9);
    jMenuHelpContents.add(jMenuUndo);
    jMenuBar.add(jMenuHelpContents);
    setJMenuBar(jMenuBar);
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jSplitPaneExternal).addComponent(jPanelToolBar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
    layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jPanelToolBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jSplitPaneExternal, javax.swing.GroupLayout.DEFAULT_SIZE, 613, Short.MAX_VALUE)));
    pack();
}
Also used : ActionEvent(java.awt.event.ActionEvent) JTableHeader(javax.swing.table.JTableHeader) SearchContext(org.fife.ui.rtextarea.SearchContext) SearchListener(org.fife.rsta.ui.search.SearchListener) AbstractAction(javax.swing.AbstractAction) Font(java.awt.Font) KeyEvent(java.awt.event.KeyEvent) JTable(javax.swing.JTable) InputMap(javax.swing.InputMap) ActionListener(java.awt.event.ActionListener) MemoryDasm(sw_emulator.software.MemoryDasm) FindDialog(org.fife.rsta.ui.search.FindDialog) MouseEvent(java.awt.event.MouseEvent) ActionMap(javax.swing.ActionMap) SearchEvent(org.fife.rsta.ui.search.SearchEvent) SearchResult(org.fife.ui.rtextarea.SearchResult) ActionEvent(java.awt.event.ActionEvent) MouseEvent(java.awt.event.MouseEvent) JScrollPane(javax.swing.JScrollPane)

Example 15 with MemoryDasm

use of sw_emulator.software.MemoryDasm in project jc64 by ice00.

the class JDisassemblerFrame method importLabels.

/**
 * Import lables from dasm file
 */
private void importLabels() {
    File file;
    int retVal = importLabelsChooserFile.showOpenDialog(this);
    if (retVal != JFileChooser.APPROVE_OPTION)
        return;
    file = importLabelsChooserFile.getSelectedFile();
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String text;
        StringTokenizer st;
        String label;
        String pos;
        int address;
        MemoryDasm mem;
        int done = 0;
        int processed = 0;
        while ((text = br.readLine()) != null) {
            if (text.startsWith("---"))
                continue;
            processed++;
            st = new StringTokenizer(text);
            label = st.nextToken();
            pos = st.nextToken();
            address = Integer.parseInt(pos, 16);
            if (silentErrorLabel(label))
                continue;
            mem = project.memory[address];
            // avoid to create a label like the automatic one
            if (mem.dasmLocation != null && mem.dasmLocation.equals(mem.userLocation))
                continue;
            mem.userLocation = label;
            done++;
        }
        br.close();
        JOptionPane.showMessageDialog(this, "Created " + done + " lables, out of " + processed + " entries");
    } catch (Exception e) {
        System.err.println(e);
        JOptionPane.showMessageDialog(this, "Error reading file", "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : StringTokenizer(java.util.StringTokenizer) MemoryDasm(sw_emulator.software.MemoryDasm) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) File(java.io.File) BadLocationException(javax.swing.text.BadLocationException) AWTException(java.awt.AWTException) IOException(java.io.IOException)

Aggregations

MemoryDasm (sw_emulator.software.MemoryDasm)50 IOException (java.io.IOException)7 AWTException (java.awt.AWTException)6 JScrollPane (javax.swing.JScrollPane)6 JTable (javax.swing.JTable)5 BadLocationException (javax.swing.text.BadLocationException)5 Vector (java.util.Vector)4 Font (java.awt.Font)2 ActionEvent (java.awt.event.ActionEvent)2 MouseEvent (java.awt.event.MouseEvent)2 File (java.io.File)2 FileNotFoundException (java.io.FileNotFoundException)2 AbstractAction (javax.swing.AbstractAction)2 ActionMap (javax.swing.ActionMap)2 InputMap (javax.swing.InputMap)2 JTableHeader (javax.swing.table.JTableHeader)2 TableModel (javax.swing.table.TableModel)2 Rectangle (java.awt.Rectangle)1 Robot (java.awt.Robot)1 Clipboard (java.awt.datatransfer.Clipboard)1