for (int i = 0; i < read_ranges; i++) {
if(address >= read_addr[i] && address < read_upper[i]) {
- return read_data[i][address];
+ return read_data[i][address - read_addr[i]];
}
}
for (int i = 0; i < write_ranges; i++) {
if(address >= write_addr[i] && address < write_upper[i]) {
- write_data[i][address] = (unsigned char)value;
+ write_data[i][address - write_addr[i]] = (unsigned char)value;
return;
}
}