#include "zdevice_exc.h" zuint zmemory::store(const zuchar* data, const zuint& dataaddr, const zuint& datalen) throw(zmem_wr_exception) { if (dataaddr + datalen <= 1024) { memcpy (memdevice+dataaddr, data, datalen); return datalen; } else { if (dataaddr <= 1023) { memcpy (memdevice+dataaddr, data, 1024 - dataaddr); } throw zmem_wr_exception(1024 - dataaddr); } } zuint zmemory::read(zuchar * data, const zuint& dataaddr, const zuint& datalen) throw(zmem_rd_exception) { zuint dataread; if (dataaddr + datalen <= 1024) { memcpy (data, memdevice+dataaddr, datalen); return datalen; } else { if (dataaddr <= 1023) { dataread = 1024 - dataaddr; memcpy (data, memdevice+dataaddr, 1024 - dataaddr); } throw zmem_rd_exception(1024 - dataaddr); } }