#!/usr/bin/env python2
# I, Danny Milosavljevic, hereby place this file into the public domain.

import memory

class ColorRAM(memory.Memory):
    """ one page, 4 bits per slot, faking 4 top bits to 1. """
    def __init__(self):
        memory.Memory.__init__(self)
        self.B_active = True
        self.B_can_write = True
        self.memory = 256 * [0xFF]
    def read_memory(self, address, size = 1):
        if size == 1:
            return(self.memory[address])
        assert size >= 0, "MMU.read_memory: size>=0"
        v = memory.one_big_value(self.memory[address : address + size])
        return v
    def write_memory(self, address, value, size):
        for i in range(size):
            self.memory[address + i] = (value & 0xF)|0xF0
            value >>= 8 # ain't compatibility grand?
