private boolean blockTwoLengthChanged() {

			int length = 0;
			try {
				length = getLength();
			}
			catch (InvalidInputException e) {
				return false;
			}

			// update blockTwoStart, BlockOneEnd, blockOneLength
			try {

				Address end = block.getEnd();
				Address b2Start = end.subtractNoWrap(length - 1);
				blockTwoStart.setAddress(b2Start);
				Address b1End = b2Start.subtractNoWrap(1);
				blockOneEnd.setAddress(b1End);
				length = (int) b1End.subtract(block.getStart()) + 1;

				blockOneLengthField.setValue(Long.valueOf(length));

			}
			catch (Exception e) {
				return false;
			}
			return true;
		}
Listener on the RegisterField inputs; update other fields when either
of these fields change.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/SplitBlockDialog.java