Altered device memory mapping.
This commit is contained in:
parent
8b8fed54b3
commit
7735e82085
43 changed files with 662 additions and 381 deletions
61
src/mem.h
61
src/mem.h
|
|
@ -1,3 +1,22 @@
|
|||
typedef struct mem_mapping_t
|
||||
{
|
||||
struct mem_mapping_t *prev, *next;
|
||||
|
||||
int enable;
|
||||
|
||||
uint32_t base;
|
||||
uint32_t size;
|
||||
|
||||
uint8_t (*read_b)(uint32_t addr, void *priv);
|
||||
uint16_t (*read_w)(uint32_t addr, void *priv);
|
||||
uint32_t (*read_l)(uint32_t addr, void *priv);
|
||||
void (*write_b)(uint32_t addr, uint8_t val, void *priv);
|
||||
void (*write_w)(uint32_t addr, uint16_t val, void *priv);
|
||||
void (*write_l)(uint32_t addr, uint32_t val, void *priv);
|
||||
|
||||
void *p;
|
||||
} mem_mapping_t;
|
||||
|
||||
extern uint8_t *ram,*rom,*vram,*vrom;
|
||||
extern uint8_t romext[32768];
|
||||
extern int readlnum,writelnum;
|
||||
|
|
@ -6,27 +25,37 @@ extern int nopageerrors;
|
|||
extern int cache;
|
||||
extern int memwaitstate;
|
||||
|
||||
void mem_sethandler(uint32_t base, uint32_t size,
|
||||
uint8_t (*read_b)(uint32_t addr, void *priv),
|
||||
uint16_t (*read_w)(uint32_t addr, void *priv),
|
||||
uint32_t (*read_l)(uint32_t addr, void *priv),
|
||||
void (*write_b)(uint32_t addr, uint8_t val, void *priv),
|
||||
void (*write_w)(uint32_t addr, uint16_t val, void *priv),
|
||||
void (*write_l)(uint32_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
void mem_mapping_add(mem_mapping_t *mapping,
|
||||
uint32_t base,
|
||||
uint32_t size,
|
||||
uint8_t (*read_b)(uint32_t addr, void *p),
|
||||
uint16_t (*read_w)(uint32_t addr, void *p),
|
||||
uint32_t (*read_l)(uint32_t addr, void *p),
|
||||
void (*write_b)(uint32_t addr, uint8_t val, void *p),
|
||||
void (*write_w)(uint32_t addr, uint16_t val, void *p),
|
||||
void (*write_l)(uint32_t addr, uint32_t val, void *p),
|
||||
void *p);
|
||||
void mem_mapping_set_handler(mem_mapping_t *mapping,
|
||||
uint8_t (*read_b)(uint32_t addr, void *p),
|
||||
uint16_t (*read_w)(uint32_t addr, void *p),
|
||||
uint32_t (*read_l)(uint32_t addr, void *p),
|
||||
void (*write_b)(uint32_t addr, uint8_t val, void *p),
|
||||
void (*write_w)(uint32_t addr, uint16_t val, void *p),
|
||||
void (*write_l)(uint32_t addr, uint32_t val, void *p));
|
||||
void mem_mapping_set_p(mem_mapping_t *mapping, void *p);
|
||||
void mem_mapping_set_addr(mem_mapping_t *mapping, uint32_t base, uint32_t size);
|
||||
void mem_mapping_disable(mem_mapping_t *mapping);
|
||||
void mem_mapping_enable(mem_mapping_t *mapping);
|
||||
|
||||
void mem_bios_set_state(uint32_t base, uint32_t size, int read_ram, int write_ram);
|
||||
|
||||
void mem_removehandler(uint32_t base, uint32_t size,
|
||||
uint8_t (*read_b)(uint32_t addr, void *priv),
|
||||
uint16_t (*read_w)(uint32_t addr, void *priv),
|
||||
uint32_t (*read_l)(uint32_t addr, void *priv),
|
||||
void (*write_b)(uint32_t addr, uint8_t val, void *priv),
|
||||
void (*write_w)(uint32_t addr, uint16_t val, void *priv),
|
||||
void (*write_l)(uint32_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
extern int mem_a20_alt;
|
||||
extern int mem_a20_key;
|
||||
void mem_a20_recalc();
|
||||
|
||||
uint8_t mem_readb_phys(uint32_t addr);
|
||||
void mem_writeb_phys(uint32_t addr, uint8_t val);
|
||||
|
||||
uint8_t mem_read_ram(uint32_t addr, void *priv);
|
||||
uint16_t mem_read_ramw(uint32_t addr, void *priv);
|
||||
uint32_t mem_read_raml(uint32_t addr, void *priv);
|
||||
|
|
|
|||
Loading…
Reference in a new issue