diff options
| author | Loic GUEGAN <loic.guegan@yahoo.fr> | 2018-09-03 16:26:14 +0200 |
|---|---|---|
| committer | Loic GUEGAN <loic.guegan@yahoo.fr> | 2018-09-03 16:26:14 +0200 |
| commit | 75d0268477b45f418fd122c441705933aca6938f (patch) | |
| tree | 92502890d1bd32fc5419a7f60b4038d3398abc13 /MicSim/components/caretaker.py | |
| parent | b0b7c993d47beb4796298519c18c1fb43aa51d62 (diff) | |
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]) |
