def write(word_to_write, real_address): """ write word to the specified location PARAMETERS: real_address - hex value in format ???? """ global memory block = processor.to_int(real_address) / BLOCK_SIZE word = processor.to_int(real_address) % BLOCK_SIZE if processor.mode == 1: if block <= PAGE_TABLE_ENDING_BLOCK: processor.pi = 1 return elif block > USER_ENDING_BLOCK: processor.pi = 1 return memory[block][word] = word_to_write[0:4]
def fetch(real_address): """ fetch one word from user memory PARAMETERS: real_address - hex value in format ???? 0FFF - maximum possible value """ global memory block = processor.to_int(real_address) / BLOCK_SIZE word = processor.to_int(real_address) % BLOCK_SIZE if processor.mode == 1: if block < PAGE_TABLE_ENDING_BLOCK: processor.pi = 1 return elif block > USER_ENDING_BLOCK: processor.pi = 1 return return memory[block][word]