void intelflash_init(int chip, int type, void *data) { struct flash_chip *c; if( chip >= FLASH_CHIPS_MAX ) { logerror( "intelflash_init: invalid chip %d\n", chip ); return; } c = &chips[ chip ]; c->type = type; switch( c->type ) { case FLASH_INTEL_28F016S5: c->bits = 8; c->size = 0x200000; c->maker_id = 0x89; c->device_id = 0xaa; break; case FLASH_SHARP_LH28F400: c->bits = 16; c->size = 0x80000; c->maker_id = 0xb0; c->device_id = 0xed; break; case FLASH_FUJITSU_29F016A: c->bits = 8; c->size = 0x200000; c->maker_id = 0x04; c->device_id = 0xad; break; case FLASH_INTEL_E28F008SA: c->bits = 8; c->size = 0x100000; c->maker_id = 0x89; c->device_id = 0xa2; break; case FLASH_INTEL_TE28F160: c->bits = 16; c->size = 0x200000; c->maker_id = 0xb0; c->device_id = 0xd0; break; } if( data == NULL ) { data = auto_malloc( c->size ); memset( data, 0xff, c->size ); } c->flash_mode = FM_NORMAL; c->flash_master_lock = 0; c->flash_memory = data; state_save_register_item( "intelfsh", chip, c->flash_mode ); state_save_register_item( "intelfsh", chip, c->flash_master_lock ); state_save_register_memory( "intelfsh", chip, "flash_memory", c->flash_memory, c->bits/8, c->size / (c->bits/8) ); }
void intelflash_init(running_machine *machine, int chip, int type, void *data) { struct flash_chip *c; if( chip >= FLASH_CHIPS_MAX ) { logerror( "intelflash_init: invalid chip %d\n", chip ); return; } c = &chips[ chip ]; c->type = type; c->sector_is_4k = 0; switch( c->type ) { case FLASH_INTEL_28F016S5: case FLASH_SHARP_LH28F016S: c->bits = 8; c->size = 0x200000; c->maker_id = 0x89; c->device_id = 0xaa; break; case FLASH_SHARP_LH28F400: case FLASH_INTEL_E28F400: c->bits = 16; c->size = 0x80000; c->maker_id = 0xb0; c->device_id = 0xed; break; case FLASH_FUJITSU_29F016A: c->bits = 8; c->size = 0x200000; c->maker_id = 0x04; c->device_id = 0xad; break; case FLASH_INTEL_E28F008SA: c->bits = 8; c->size = 0x100000; c->maker_id = 0x89; c->device_id = 0xa2; break; case FLASH_INTEL_TE28F160: c->bits = 16; c->size = 0x200000; c->maker_id = 0xb0; c->device_id = 0xd0; break; case FLASH_SHARP_UNK128MBIT: c->bits = 16; c->size = 0x800000; c->maker_id = 0xb0; c->device_id = 0xb0; break; case FLASH_MACRONIX_29L001MC: c->bits = 8; c->size = 0x20000; c->maker_id = 0xc2; c->device_id = 0x51; break; case FLASH_PANASONIC_MN63F805MNP: c->bits = 8; c->size = 0x10000; c->maker_id = 0x32; c->device_id = 0x1b; c->sector_is_4k = 1; break; case FLASH_SANYO_LE26FV10N1TS: c->bits = 8; c->size = 0x20000; c->maker_id = 0x62; c->device_id = 0x13; c->sector_is_4k = 1; break; } if( data == NULL ) { data = auto_alloc_array( machine, UINT8, c->size ); memset( data, 0xff, c->size ); } c->status = 0x80; c->flash_mode = FM_NORMAL; c->flash_master_lock = 0; c->timer = timer_alloc(machine, erase_finished, c); c->flash_memory = data; state_save_register_item( machine, "intelfsh", NULL, chip, c->status ); state_save_register_item( machine, "intelfsh", NULL, chip, c->flash_mode ); state_save_register_item( machine, "intelfsh", NULL, chip, c->flash_master_lock ); state_save_register_memory( machine, "intelfsh", NULL, chip, "flash_memory", c->flash_memory, c->bits/8, c->size / (c->bits/8), __FILE__, __LINE__ ); }
void state_save_register_bitmap(const char *module, UINT32 instance, const char *name, mame_bitmap *val) { state_save_register_memory(module, instance, name, val->base, val->bpp / 8, val->rowpixels * val->height); }
void state_save_register_bitmap(running_machine *machine, const char *module, const char *tag, UINT32 index, const char *name, bitmap_t *val, const char *file, int line) { state_save_register_memory(machine, module, tag, index, name, val->base, val->bpp / 8, val->rowpixels * val->height, file, line); }