diff options
| author | Loic Guegan <loic.guegan@mailbox.org> | 2023-12-25 15:59:36 +0100 |
|---|---|---|
| committer | Loic Guegan <loic.guegan@mailbox.org> | 2023-12-25 15:59:36 +0100 |
| commit | 9550924042ced02c94ddc2af501f135a9f31d492 (patch) | |
| tree | 8bd53f8aa18ccfc8e4133a4e591cbd0ce3042578 /src/mem.c | |
| parent | c6ddcbe2bd529f2310e312559556aedbf896ec33 (diff) | |
Minor changes
Diffstat (limited to 'src/mem.c')
| -rw-r--r-- | src/mem.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -7,7 +7,7 @@ extern unsigned char DEFAULT_FONT[]; void MemInit(){ MemSet(0,0,4096); - MemCopy(DEFAULT_FONT,16*5,ADDR_FONT); + MemStore(DEFAULT_FONT,16*5,ADDR_FONT); } void MemSet(int addr, unsigned char value, int size){ @@ -15,12 +15,12 @@ void MemSet(int addr, unsigned char value, int size){ memory[addr+i]=value; } -void MemCopy(unsigned char *data, int size, int addr){ +void MemStore(unsigned char *data, int size, int addr){ for(int i=0;i<size;i++) memory[addr+i]=data[i]; } -void MemRead(unsigned char *data, int size, int addr){ +void MemLoad(unsigned char *data, int size, int addr){ int location=addr; for(int i=0;i<size;i++){ data[i]=memory[addr+i]; @@ -33,6 +33,8 @@ void MemLoadROM(char *path){ ptr=fopen(path,"rb"); int location=ADDR_ROM; while(fread(&byte,1,1,ptr)==1){ + if(location >= 4096) + break; MemSet(location,byte,1); location++; } @@ -40,7 +42,11 @@ void MemLoadROM(char *path){ } void MemDump(){ - for(int addr=0;addr<4096;addr+=2){ + MemDumpRange(0,4096); +} + +void MemDumpRange(int from, int size){ + for(int addr=from;addr<from+size;addr+=2){ printf("0x%03x: %02x %02x\n",addr,memory[addr], memory[addr+1]); } } |
