Пример #1
0
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]
Пример #2
0
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]
Пример #3
0
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]
Пример #4
0
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]