private void doUpdate() {
		CodeLine[] codes = machine.getProgram().getLines();
		
		if ( codes==null ) {
			for (int i=0; i<rows.length; i++) {
				rows[i].setCodeField("");
				rows[i].setBiField("");
				rows[num].resetColor();
				rows[i].setEditable(false);
			}
		} else {
			for(int i = 0; i < codes.length && i < rows.length-1; i++) {
				String setVal1 = PippinMachine.insNam.get(codes[i].getInstr()) + " ";
				if (codes[i].isIndirect()) setVal1 += "%";
				setVal1 = setVal1 + codes[i].getArg();
				rows[i].setCodeField(setVal1);
				
				
				String setVal2 = Integer.toBinaryString(codes[i].getInstr().getOpCode());
		        if(setVal2.length() < 7) {
		            setVal2 = "0000000" + setVal2;
		            setVal2 = setVal2.substring(setVal2.length()-7);
		        }
		        
		        if (codes[i].isIndirect()) {
		        	setVal2 += "1";
		        } else {
		        	setVal2 += "0";
		        }
		        
		        String arg = Integer.toBinaryString(codes[i].getArg());
		        if(arg.length() < 32) {
		            arg = "00000000000000000000000000000000" + arg;
		            arg = arg.substring(arg.length()-32);
		        }
		        setVal2 += arg;
		        
				rows[i].setBiField(setVal2);
				rows[i].setEditable(false);
			}
			
			for(int i = codes.length; i < rows.length-1; i++) {
				rows[i].setCodeField("");			
				rows[i].setBiField("");
				rows[i].setEditable(false);
			}
			if (num!=-1) rows[num].resetColor();
			num = machine.getProcessor().getProgramCounter();
			rows[num].setColor();
		}
	}