summaryrefslogtreecommitdiff
path: root/src/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem.c')
-rw-r--r--src/mem.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mem.c b/src/mem.c
index ec34750..aba34fc 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -16,13 +16,22 @@ void MemSet(int addr, unsigned char value, int size){
}
void MemStore(unsigned char *data, int size, int addr){
- for(int i=0;i<size;i++)
+ for(int i=0;i<size;i++){
+ if(addr+i>4096){
+ printf("Illegal memory access (store): addr=%d\n",addr+i);
+ return;
+ }
memory[addr+i]=data[i];
+ }
}
void MemLoad(unsigned char *data, int size, int addr){
int location=addr;
for(int i=0;i<size;i++){
+ if(addr+i>4096){
+ printf("Illegal memory access (load): addr=%d\n",addr+i);
+ return;
+ }
data[i]=memory[addr+i];
}
}