- [NEW] Treballant en modularitzar la memòria, per a començar a implementar soport per als demes Spectrums

This commit is contained in:
2024-12-19 17:36:22 +01:00
parent da4c692283
commit dbd80694aa
10 changed files with 263 additions and 135 deletions

41
z80mem.h Normal file
View File

@@ -0,0 +1,41 @@
#pragma once
#include <stdint.h>
#include <stdio.h>
#define MEMTAG_NONE 0x00
#define MEMTAG_DATA 0x01
#define MEMTAG_INST 0x02
#define MEMTAG_CODE 0x04
#define MEMTAG_IGNORE 0x08
#define MEMTAG_TDATA 0x10
#define MEMTAG_TINST 0x20
#define MEMTAG_TREPEAT 0x40
#define MEMTAG_MODIFIED 0x80
#define MEMTAG_KNOWN 0x07
#define MEMTAG_TOUCHED 0x70
class z80mem
{
public:
static z80mem *get() { return singleton; };
virtual uint8_t readMem(uint16_t address);
virtual void writeMem(uint16_t address, uint8_t value);
virtual void loadMem(uint16_t address, uint16_t len, uint8_t *buffer);
virtual uint8_t getTag(uint16_t address);
virtual void setTag(uint16_t address, uint8_t value);
virtual void reset();
virtual void saveState(FILE* f);
virtual void loadState(FILE* f);
virtual uint32_t getSize();
protected:
static z80mem *singleton;
};