#! /usr/bin/python3
# ===================================================================
#
# ===================================================================
import test_bytearray as ba
MEMAX = 1024 * 4
MEM = bytearray(MEMAX)
ascii['','','','','','','','','','','','','','','','',
'','','','','','','','','','','','','','','','',
' ','!','"','#','$','%','&',''','(',')','*','+',',','-','.','/',
'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
'@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z','[','\',']','^','_',
'`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','']
# -------------------------------------------------------------------
# ---- memory functions
# -------------------------------------------------------------------
# ---- verify memory address is valid
def verify_memory_address(addr):
if addr >= MEMAX or addr < 0:
xx = ba.hex_string(addr,2)
bb = ba.bit_string(addr)
print(f'Memory address error ({addr}) ({xx}) ({bb})')
return False
return True
# ----
def writer_mem_byte(addr,len=1):
pass
# ----
def read_mem_byte(addr,len=1):
pass
# ---- set a range of memory bytes to the same value
def set_mem_byte(addr,value,len=1):
i = 0
while i < len:
if not verify_memory_address(addr):
return False
MEM[addr] = value & 0xFF
i += 1
addr += 1
return True
def display_mem_byte(addr,len=1,title=None):
if title:
print(title)
i = 0
while i < len:
if not verify_memory_address(addr):
return False
dd = MEM[addr]
xx = ba.hex_string(MEM[addr],2)
bb = ba.bit_string(MEM[addr])
print(f'[{addr:6}] {dd:3} {xx} {bb}')
i += 1
addr += 1
return True
# -------------------------------------------------------------------
# ---- main
# -------------------------------------------------------------------
if __name__ == '__main__':
set_mem_byte(1024,0xAA,4)
display_mem_byte(1024,4,'Memory Dump Test')
if not set_mem_byte(-1,'A',4):
pass