diff options
Diffstat (limited to 'components/caretaker.py')
| -rw-r--r-- | components/caretaker.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/components/caretaker.py b/components/caretaker.py index 7f8cc33..4237702 100644 --- a/components/caretaker.py +++ b/components/caretaker.py @@ -11,12 +11,12 @@ class Caretaker: def __getitem__(self,key): if key=="MBRU": # If we ask for unsigned - return(self.objects["MBR"] & 0x000000FF) - elif key=="MBR": # If we ask for signed - if self.objects["MBR"]>=0: - return(self["MBRU"]) - else: # Send 2 complement if it's lower than 0 - return(self.objects["MBR"] & 0xFFFFFFFF) + return(abs(self.objects["MBR"])) + elif key== "MBR": + if (self.objects[key]>>7)==1: # If it a negative number (2 complement) + return(-((self.objects[key]-1)^0xFF)) # transforme bin negative number to python negative number + else: + return(self.objects[key]) return(self.objects[key]) def __setitem__(self,key,value):# TODO: Do special treatment for MBR (allow only 2^8 value) |
