#! /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