From 469861ed4426cdc5650100bb82048f7a08cdcfd6 Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Sat, 26 Jul 2014 01:34:19 +0200 Subject: [PATCH] BitField: Update --- src/org/hwo/bitfields/Field.java | 12 +++++-- src/org/hwo/bitfields/ui/BitFieldEditor.java | 17 +++++++--- src/org/hwo/bitfields/ui/BoolFieldEditor.java | 11 ++++-- src/org/hwo/bitfields/ui/FieldControl.java | 3 +- src/org/hwo/bitfields/ui/IntFieldEditor.java | 34 +++++++++++++++---- .../register/BitFieldServiceRegister.java | 3 +- .../register/bitfield/BitFieldEditor.java | 2 -- 7 files changed, 62 insertions(+), 20 deletions(-) diff --git a/src/org/hwo/bitfields/Field.java b/src/org/hwo/bitfields/Field.java index 4995796..0760410 100644 --- a/src/org/hwo/bitfields/Field.java +++ b/src/org/hwo/bitfields/Field.java @@ -36,11 +36,19 @@ public class Field { public synchronized int getValue(int srcValue) { - return (srcValue >> start) & (-1 >> (Integer.SIZE - len)); + int mask = (-1 >>> (Integer.SIZE - len)); + int val = (srcValue >> start) & mask; + //System.err.println(String.format("BF: 0x%08x (%d:%d = 0x%08x) = 0x%08x",srcValue,start,len,mask,val)); + return val; } - public void setValue(int value) + public int setValue(int srcValue,int fieldValue) { + int mask = ((-1 >>> (Integer.SIZE - len))<