diff options
Diffstat (limited to 'MicSim/components/caretaker.py')
| -rw-r--r-- | MicSim/components/caretaker.py | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/MicSim/components/caretaker.py b/MicSim/components/caretaker.py index cd6d913..e46c402 100644 --- a/MicSim/components/caretaker.py +++ b/MicSim/components/caretaker.py @@ -6,22 +6,20 @@ class Caretaker: def __init__(self,ramSize): self.objects=dict() # Create empty objects pool - # Add registers to pool + ## Add registers to pool ## for reg in ["MAR","MDR", "PC", "MBR", "SP","LV","CPP","TOS","OPC","H"]: self.objects[reg]=0 - self.objects["RAM"]=Ram(self,ramSize) + self.objects["RAM"]=Ram(self,ramSize) # Create ram def __getitem__(self,key): if key=="MBRU": # If we ask for unsigned return(abs(self.objects["MBR"])) - elif key== "MBR": - if self.objects[key] < 0: + elif key== "MBR": # If we ask for signed + if self.objects[key] < 0: # If its already signed return(self.objects[key]) - elif self.objects[key]>>7==1: # If it a negative number (2 complement) - #return(-(self.objects[key]&0x7F)) - return(-((self.objects[key]-1)^0xFF)) # Reverse 2 complements to get an unsign nummber (for python is better) - - else: + elif self.objects[key]>>7==1: # Otherwise compute its python version + return(-((self.objects[key]-1)^0xFF)) # Reverse 2 complements to get an unsigned number then negate it + else: # Otherwise it is positive return(self.objects[key]) return(self.objects[key]) |
