Files
atari2600/source/rom.cpp
T
Raimon @ quifisraimon 12d1dc6ff1 - [NEW] Configuració per a compilar i depurar des de vscode
- [FIX] Meimades per a que es calle el compilaor al dir-li -Wall
- [NEW] Reestructurats els simbols, 6502dis probablement acabe desapareguent
- [NEW] Reactivats els breakpoints i next (pas a pas sense entrar en subrutines)
- [NEW] Nou motor de desensamblat
- [NEW] Ja es mostren tots els simbols en el desensamblat
- [NEW] Syntax colorets en el desensamblat
2026-09-21 12:52:55 +02:00

48 lines
977 B
C++

#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;
}
namespace debug
{
const memDebugInfo getInfo(uint16_t address)
{
return {"ROM", mdtROM, uint16_t(0x1000 | (address & mask))};
}
}
}