- [NEW] Afegits varios documents útils recopilats.
- [NEW] Afegida la rom de Combat. - [NEW] Afegit mòdul "rom" - [NEW] Ampliats stubs de "mem", "tia" i "pia"
This commit is contained in:
1 parent
421826d4b6
commit
22fd027cff
18 files changed
+3768
-1
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#include "rom.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
namespace rom
|
||||
{
|
||||
uint8_t *data = NULL;
|
||||
int size = 0;
|
||||
uint16_t mask = 0xffff;
|
||||
|
||||
void load(const char* filename)
|
||||
{
|
||||
if (data) free(data);
|
||||
size = 0;
|
||||
|
||||
FILE* f = fopen(filename, "rb");
|
||||
if (f) {
|
||||
fseek(f, 0, SEEK_END);
|
||||
size = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
data = (uint8_t*)malloc(size);
|
||||
fread(data, size, 1, f);
|
||||
fclose(f);
|
||||
|
||||
if (size <= 4096) mask = size-1;
|
||||
// [TODO] Gestionar ROMs mes grans de 4K
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t read(uint16_t address)
|
||||
{
|
||||
return data[address & mask];
|
||||
}
|
||||
|
||||
void write(uint16_t address, uint8_t value)
|
||||
{
|
||||
data[address & mask] = value;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user