6 #define RAM_SIZE 0x8000
7 static uint8_t ram[RAM_SIZE];
11 int emu_init(void *romimg, int romsz)
26 void emu_cleanup(void)
35 uint8_t emu_mem_read(uint16_t addr)
37 if(addr & 0x8000) { /* RAM */
38 return ram[addr & 0x7fff];
40 if((int)addr < rom_size) {
47 void emu_mem_write(uint16_t addr, uint8_t data)
50 ram[addr & 0x7fff] = data;
54 uint8_t emu_io_read(uint16_t addr)
56 if((addr & 0xf0) == 0) {
57 return duart_read(addr & 0xf);
60 /* nothing is enabled, the bus floats, return random bits */
64 void emu_io_write(uint16_t addr, uint8_t data)
66 if((addr & 0xf0) == 0) {
67 duart_write(addr & 0xf, data);
71 void emu_serin(int port, int c)