# A simple implementation of memory
# Mark:
# Adds a memory address to a watchlist
# Check:
# Checks on all addresses on a watchlist
# If the address has changed state it will report about it
# Write:
# Writes to an address
# Read:
# Returns whatever is at a specific address
#
class Memory:
Memory = [0]*512
class Marked:
States = []
Addresses = []
def Write(Address, Byte):
Memory.Memory[Address] = Byte
def Read(Address):
return Memory.Memory[Address]
def Mark(Address):
Memory.Marked.States.append(Memory.Memory[Address])
Memory.Marked.Addresses.append(Address)
def Check():
for i in range(len(Memory.Marked.Addresses)):
if Memory.Memory[Memory.Marked.Addresses[i]] != Memory.Marked.States[i]:
print("Address '%s' has been changed to '%s' from '%s'" % (Memory.Marked.Addresses[i], Memory.Memory[Memory.Marked.Addresses[i]], Memory.Marked.States[i]))
else:
pass
Memory.Mark(32) # Mark 32
Memory.Check() # Check
Memory.Write(32, 1) # Write to 32
Memory.Check() # Check