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; extern int memspeed[11]; extern int nopageerrors; extern int cache; extern int memwaitstate; 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); 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); void mem_write_ram(uint32_t addr, uint8_t val, void *priv); void mem_write_ramw(uint32_t addr, uint16_t val, void *priv); void mem_write_raml(uint32_t addr, uint32_t val, void *priv); uint8_t mem_read_bios(uint32_t addr, void *priv); uint16_t mem_read_biosw(uint32_t addr, void *priv); uint32_t mem_read_biosl(uint32_t addr, void *priv); FILE *romfopen(char *fn, char *mode); int mem_load_video_bios();