84 #define EEPROM_STATE_NOTHING 0 85 #define EEPROM_STATE_READY 1 86 #define EEPROM_STATE_COMMAND 2 87 #define EEPROM_STATE_READ 3 93 uint64_t idata = 0, odata = 0;
104 reg_ptr = &d->
reg[relative_addr];
105 if (relative_addr >= 8 && relative_addr <= 15 &&
107 reg_ptr = &d->
mar_8_15[relative_addr - 8];
108 if (relative_addr >= 8 && relative_addr <= 15 &&
110 reg_ptr = &d->
bmpr_8_15[relative_addr - 8];
115 switch (relative_addr) {
121 (*reg_ptr) &= ~idata;
160 fatal(
"mb8696x: UNIMPLEMENTED bits when " 161 "writing to FE_BMPR16: 0x%02x\n",
171 if (!((*reg_ptr) & FE_B16_SELECT) &&
172 idata & FE_B16_SELECT)
177 idata & FE_B16_CLOCK) {
194 fatal(
"WRITES to the " 204 * 256 + d->
eeprom[addr+1];
214 fatal(
"[ WARNING: more than 16" 215 " bits of EEPROM data " 229 fatal(
"mb8696x: UNIMPLEMENTED bits when " 230 "writing to FE_BMPR17: 0x%02x\n",
240 const char *bank =
"";
242 bank =
" (bank MAR)";
244 bank =
" (bank BMPR)";
246 fatal(
"[ mb8696x: read from UNIMPLEMENTED reg " 247 "%i%s ]\n", (
int)relative_addr, bank);
249 fatal(
"[ mb8696x: write to UNIMPLEMENTED reg " 250 "%i%s: 0x%02x ]\n", (
int)relative_addr,
uint64_t memory_readmax64(struct cpu *cpu, unsigned char *buf, int len)
void fatal(const char *fmt,...)
#define EEPROM_STATE_READ
#define CHECK_ALLOCATION(ptr)
uint8_t eeprom[FE_EEPROM_SIZE]
#define EEPROM_STATE_READY
void net_generate_unique_mac(struct machine *, unsigned char *macbuf)
uint8_t reg[MB8696X_NREGS]
#define EEPROM_STATE_COMMAND
#define FE_D7_IDENT_86967
void memory_writemax64(struct cpu *cpu, unsigned char *buf, int len, uint64_t data)
void memory_device_register(struct memory *mem, const char *, uint64_t baseaddr, uint64_t len, int(*f)(struct cpu *, struct memory *, uint64_t, unsigned char *, size_t, int, void *), void *extra, int flags, unsigned char *dyntrans_data)
#define EEPROM_STATE_NOTHING