diff options
Diffstat (limited to 'src/devices/machine/wd_fdc.cpp')
-rw-r--r-- | src/devices/machine/wd_fdc.cpp | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/src/devices/machine/wd_fdc.cpp b/src/devices/machine/wd_fdc.cpp index 32cda7b663c..3db68daeb20 100644 --- a/src/devices/machine/wd_fdc.cpp +++ b/src/devices/machine/wd_fdc.cpp @@ -65,7 +65,7 @@ const device_type WD1773 = &device_creator<wd1773_t>; // Show state machine #define TRACE_STATE 0 -wd_fdc_t::wd_fdc_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : +wd_fdc_t::wd_fdc_t(const machine_config &mconfig, device_type type, const char *name, std::string tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), intrq_cb(*this), drq_cb(*this), @@ -90,7 +90,7 @@ void wd_fdc_t::device_start() enmf_cb.resolve(); if (!has_enmf && !enmf_cb.isnull()) - logerror("%s: Warning, this chip doesn't have an ENMF line.\n", tag()); + logerror("%s: Warning, this chip doesn't have an ENMF line.\n", tag().c_str()); t_gen = timer_alloc(TM_GEN); t_cmd = timer_alloc(TM_CMD); @@ -190,13 +190,13 @@ void wd_fdc_t::set_floppy(floppy_image_device *_floppy) void wd_fdc_t::dden_w(bool _dden) { if(disable_mfm) { - logerror("%s: Error, this chip does not have a dden line\n", tag()); + logerror("%s: Error, this chip does not have a dden line\n", tag().c_str()); return; } if(dden != _dden) { dden = _dden; - if (TRACE_LINES) logerror("%s: select %s\n", tag(), dden ? "fm" : "mfm"); + if (TRACE_LINES) logerror("%s: select %s\n", tag().c_str(), dden ? "fm" : "mfm"); } } @@ -215,7 +215,7 @@ std::string wd_fdc_t::ttsn() void wd_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - if (TRACE_EVENT) logerror("%s: Event fired for timer %s\n", tag(), (id==TM_GEN)? "TM_GEN" : (id==TM_CMD)? "TM_CMD" : (id==TM_TRACK)? "TM_TRACK" : "TM_SECTOR"); + if (TRACE_EVENT) logerror("%s: Event fired for timer %s\n", tag().c_str(), (id==TM_GEN)? "TM_GEN" : (id==TM_CMD)? "TM_CMD" : (id==TM_TRACK)? "TM_TRACK" : "TM_SECTOR"); live_sync(); switch(id) { @@ -243,7 +243,7 @@ void wd_fdc_t::command_end() void wd_fdc_t::seek_start(int state) { - if (TRACE_COMMAND) logerror("%s: seek %d (track=%d)\n", tag(), data, track); + if (TRACE_COMMAND) logerror("%s: seek %d (track=%d)\n", tag().c_str(), data, track); main_state = state; status &= ~(S_CRC|S_RNF|S_SPIN); if(head_control) { @@ -263,7 +263,7 @@ void wd_fdc_t::seek_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -274,11 +274,11 @@ void wd_fdc_t::seek_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(main_state == RESTORE && floppy && !floppy->trk00_r()) { sub_state = SEEK_WAIT_STEP_TIME; delay_cycles(t_gen, step_times[command & 3]); @@ -296,7 +296,7 @@ void wd_fdc_t::seek_continue() break; case SEEK_MOVE: - if (TRACE_STATE) logerror("%s: SEEK_MOVE\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_MOVE\n", tag().c_str()); if(floppy) { floppy->dir_w(last_dir); floppy->stp_w(0); @@ -312,11 +312,11 @@ void wd_fdc_t::seek_continue() return; case SEEK_WAIT_STEP_TIME: - if (TRACE_STATE) logerror("%s: SEEK_WAIT_STEP_TIME\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_WAIT_STEP_TIME\n", tag().c_str()); return; case SEEK_WAIT_STEP_TIME_DONE: { - if (TRACE_STATE) logerror("%s: SEEK_WAIT_STEP_TIME_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_WAIT_STEP_TIME_DONE\n", tag().c_str()); bool done = false; switch(main_state) { case RESTORE: @@ -349,16 +349,16 @@ void wd_fdc_t::seek_continue() } case SEEK_WAIT_STABILIZATION_TIME: - if (TRACE_STATE) logerror("%s: SEEK_WAIT_STABILIZATION_TIME\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_WAIT_STABILIZATION_TIME\n", tag().c_str()); return; case SEEK_WAIT_STABILIZATION_TIME_DONE: - if (TRACE_STATE) logerror("%s: SEEK_WAIT_STABILIZATION_TIME_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_WAIT_STABILIZATION_TIME_DONE\n", tag().c_str()); sub_state = SEEK_DONE; break; case SEEK_DONE: - if (TRACE_STATE) logerror("%s: SEEK_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SEEK_DONE\n", tag().c_str()); status |= S_HLD; if(command & 0x04) { if(!is_ready()) { @@ -375,7 +375,7 @@ void wd_fdc_t::seek_continue() return; case SCAN_ID: - if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag().c_str()); if(cur_live.idbuf[0] != track) { live_start(SEARCH_ADDRESS_MARK_HEADER); return; @@ -389,7 +389,7 @@ void wd_fdc_t::seek_continue() return; case SCAN_ID_FAILED: - if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag().c_str()); status |= S_RNF; command_end(); return; @@ -404,7 +404,7 @@ void wd_fdc_t::seek_continue() bool wd_fdc_t::sector_matches() const { if(TRACE_MATCH) - logerror("%s: matching read T=%02x H=%02x S=%02x L=%02x - searched T=%02x S=%02x\n", tag(), + logerror("%s: matching read T=%02x H=%02x S=%02x L=%02x - searched T=%02x S=%02x\n", tag().c_str(), cur_live.idbuf[0], cur_live.idbuf[1], cur_live.idbuf[2], cur_live.idbuf[3], track, sector); @@ -425,7 +425,7 @@ bool wd_fdc_t::is_ready() void wd_fdc_t::read_sector_start() { - if (TRACE_COMMAND) logerror("%s: read sector%s (c=%02x) t=%d, s=%d\n", tag(), command & 0x10 ? " multiple" : "", command, track, sector); + if (TRACE_COMMAND) logerror("%s: read sector%s (c=%02x) t=%d, s=%d\n", tag().c_str(), command & 0x10 ? " multiple" : "", command, track, sector); if(!is_ready()) { command_end(); return; @@ -446,7 +446,7 @@ void wd_fdc_t::read_sector_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -455,11 +455,11 @@ void wd_fdc_t::read_sector_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(command & 4) { sub_state = SETTLE_WAIT; delay_cycles(t_gen, settle_time()); @@ -470,18 +470,18 @@ void wd_fdc_t::read_sector_continue() } case SETTLE_WAIT: - if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag().c_str()); return; case SETTLE_DONE: - if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag().c_str()); sub_state = SCAN_ID; counter = 0; live_start(SEARCH_ADDRESS_MARK_HEADER); return; case SCAN_ID: - if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag().c_str()); if(!sector_matches()) { live_start(SEARCH_ADDRESS_MARK_HEADER); return; @@ -497,13 +497,13 @@ void wd_fdc_t::read_sector_continue() return; case SCAN_ID_FAILED: - if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag().c_str()); status |= S_RNF; command_end(); return; case SECTOR_READ: - if (TRACE_STATE) logerror("%s: SECTOR_READ\n", tag()); + if (TRACE_STATE) logerror("%s: SECTOR_READ\n", tag().c_str()); if(cur_live.crc) status |= S_CRC; @@ -525,7 +525,7 @@ void wd_fdc_t::read_sector_continue() void wd_fdc_t::read_track_start() { - if (TRACE_COMMAND) logerror("%s: read track (c=%02x) t=%d\n", tag(), command, track); + if (TRACE_COMMAND) logerror("%s: read track (c=%02x) t=%d\n", tag().c_str(), command, track); if(!is_ready()) { command_end(); @@ -547,7 +547,7 @@ void wd_fdc_t::read_track_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -556,11 +556,11 @@ void wd_fdc_t::read_track_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(command & 4) { sub_state = SETTLE_WAIT; delay_cycles(t_gen, settle_time()); @@ -572,26 +572,26 @@ void wd_fdc_t::read_track_continue() } case SETTLE_WAIT: - if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag().c_str()); return; case SETTLE_DONE: - if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag().c_str()); sub_state = WAIT_INDEX; return; case WAIT_INDEX: - if (TRACE_STATE) logerror("%s: WAIT_INDEX\n", tag()); + if (TRACE_STATE) logerror("%s: WAIT_INDEX\n", tag().c_str()); return; case WAIT_INDEX_DONE: - if (TRACE_STATE) logerror("%s: WAIT_INDEX_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: WAIT_INDEX_DONE\n", tag().c_str()); sub_state = TRACK_DONE; live_start(READ_TRACK_DATA); return; case TRACK_DONE: - if (TRACE_STATE) logerror("%s: TRACK_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: TRACK_DONE\n", tag().c_str()); command_end(); return; @@ -604,7 +604,7 @@ void wd_fdc_t::read_track_continue() void wd_fdc_t::read_id_start() { - if (TRACE_COMMAND) logerror("%s: read id (c=%02x)\n", tag(), command); + if (TRACE_COMMAND) logerror("%s: read id (c=%02x)\n", tag().c_str(), command); if(!is_ready()) { command_end(); return; @@ -625,7 +625,7 @@ void wd_fdc_t::read_id_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -634,11 +634,11 @@ void wd_fdc_t::read_id_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(command & 4) { sub_state = SETTLE_WAIT; delay_cycles(t_gen, settle_time()); @@ -649,23 +649,23 @@ void wd_fdc_t::read_id_continue() } case SETTLE_WAIT: - if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag().c_str()); return; case SETTLE_DONE: - if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag().c_str()); sub_state = SCAN_ID; counter = 0; live_start(SEARCH_ADDRESS_MARK_HEADER); return; case SCAN_ID: - if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag().c_str()); command_end(); return; case SCAN_ID_FAILED: - if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag().c_str()); status |= S_RNF; command_end(); return; @@ -679,7 +679,7 @@ void wd_fdc_t::read_id_continue() void wd_fdc_t::write_track_start() { - if (TRACE_COMMAND) logerror("%s: write track (c=%02x) t=%d\n", tag(), command, track); + if (TRACE_COMMAND) logerror("%s: write track (c=%02x) t=%d\n", tag().c_str(), command, track); if(!is_ready()) { command_end(); @@ -706,7 +706,7 @@ void wd_fdc_t::write_track_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -715,11 +715,11 @@ void wd_fdc_t::write_track_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(command & 4) { sub_state = SETTLE_WAIT; delay_cycles(t_gen, settle_time()); @@ -730,22 +730,22 @@ void wd_fdc_t::write_track_continue() } case SETTLE_WAIT: - if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag().c_str()); return; case SETTLE_DONE: - if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag().c_str()); set_drq(); sub_state = DATA_LOAD_WAIT; delay_cycles(t_gen, 192); return; case DATA_LOAD_WAIT: - if (TRACE_STATE) logerror("%s: DATA_LOAD_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: DATA_LOAD_WAIT\n", tag().c_str()); return; case DATA_LOAD_WAIT_DONE: - if (TRACE_STATE) logerror("%s: DATA_LOAD_WAIT_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: DATA_LOAD_WAIT_DONE\n", tag().c_str()); if(drq) { status |= S_LOST; drop_drq(); @@ -756,18 +756,18 @@ void wd_fdc_t::write_track_continue() break; case WAIT_INDEX: - if (TRACE_STATE) logerror("%s: WAIT_INDEX\n", tag()); + if (TRACE_STATE) logerror("%s: WAIT_INDEX\n", tag().c_str()); return; case WAIT_INDEX_DONE: - if (TRACE_STATE) logerror("%s: WAIT_INDEX_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: WAIT_INDEX_DONE\n", tag().c_str()); sub_state = TRACK_DONE; live_start(WRITE_TRACK_DATA); pll_start_writing(machine().time()); return; case TRACK_DONE: - if (TRACE_STATE) logerror("%s: TRACK_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: TRACK_DONE\n", tag().c_str()); if(format_last_byte_count) { char buf[32]; if(format_last_byte_count > 1) @@ -776,7 +776,7 @@ void wd_fdc_t::write_track_continue() sprintf(buf, "%02x", format_last_byte); format_description_string += buf; } - if (TRACE_DESC) logerror("%s: track description %s\n", tag(), format_description_string.c_str()); + if (TRACE_DESC) logerror("%s: track description %s\n", tag().c_str(), format_description_string.c_str()); command_end(); return; @@ -790,7 +790,7 @@ void wd_fdc_t::write_track_continue() void wd_fdc_t::write_sector_start() { - if (TRACE_COMMAND) logerror("%s: write sector%s (c=%02x) t=%d, s=%d\n", tag(), command & 0x10 ? " multiple" : "", command, track, sector); + if (TRACE_COMMAND) logerror("%s: write sector%s (c=%02x) t=%d, s=%d\n", tag().c_str(), command & 0x10 ? " multiple" : "", command, track, sector); if(!is_ready()) { command_end(); @@ -812,7 +812,7 @@ void wd_fdc_t::write_sector_continue() for(;;) { switch(sub_state) { case SPINUP: - if (TRACE_STATE) logerror("%s: SPINUP\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP\n", tag().c_str()); if(!(status & S_MON)) { spinup(); return; @@ -821,11 +821,11 @@ void wd_fdc_t::write_sector_continue() break; case SPINUP_WAIT: - if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_WAIT\n", tag().c_str()); return; case SPINUP_DONE: - if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SPINUP_DONE\n", tag().c_str()); if(command & 4) { sub_state = SETTLE_WAIT; delay_cycles(t_gen, settle_time()); @@ -836,18 +836,18 @@ void wd_fdc_t::write_sector_continue() } case SETTLE_WAIT: - if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_WAIT\n", tag().c_str()); return; case SETTLE_DONE: - if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag()); + if (TRACE_STATE) logerror("%s: SETTLE_DONE\n", tag().c_str()); sub_state = SCAN_ID; counter = 0; live_start(SEARCH_ADDRESS_MARK_HEADER); return; case SCAN_ID: - if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID\n", tag().c_str()); if(!sector_matches()) { live_start(SEARCH_ADDRESS_MARK_HEADER); return; @@ -863,13 +863,13 @@ void wd_fdc_t::write_sector_continue() return; case SCAN_ID_FAILED: - if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag()); + if (TRACE_STATE) logerror("%s: SCAN_ID_FAILED\n", tag().c_str()); status |= S_RNF; command_end(); return; case SECTOR_WRITE: - if (TRACE_STATE) logerror("%s: SECTOR_WRITE\n", tag()); + if (TRACE_STATE) logerror("%s: SECTOR_WRITE\n", tag().c_str()); if(command & 0x10) { sector++; sub_state = SPINUP_DONE; @@ -888,7 +888,7 @@ void wd_fdc_t::write_sector_continue() void wd_fdc_t::interrupt_start() { - if (TRACE_COMMAND) logerror("%s: Forced interrupt (c=%02x)\n", tag(), command); + if (TRACE_COMMAND) logerror("%s: Forced interrupt (c=%02x)\n", tag().c_str(), command); if(status & S_BUSY) { main_state = sub_state = cur_live.state = IDLE; @@ -1052,7 +1052,7 @@ void wd_fdc_t::do_cmd_w() void wd_fdc_t::cmd_w(UINT8 val) { - if (TRACE_COMP) logerror("%s: Initiating command %02x\n", tag(), val); + if (TRACE_COMP) logerror("%s: Initiating command %02x\n", tag().c_str(), val); if (inverted_bus) val ^= 0xff; if(intrq && !(intrq_cond & I_IMM)) { @@ -1489,7 +1489,7 @@ bool wd_fdc_t::write_one_bit(const attotime &limit) void wd_fdc_t::live_write_raw(UINT16 raw) { - if (TRACE_WRITE) logerror("%s: write raw %04x, CRC=%04x\n", tag(), raw, cur_live.crc); + if (TRACE_WRITE) logerror("%s: write raw %04x, CRC=%04x\n", tag().c_str(), raw, cur_live.crc); cur_live.shift_reg = raw; cur_live.data_bit_context = raw & 1; } @@ -1508,7 +1508,7 @@ void wd_fdc_t::live_write_mfm(UINT8 mfm) } cur_live.shift_reg = raw; cur_live.data_bit_context = context; - if (TRACE_WRITE) logerror("%s: live_write_mfm byte=%02x, raw=%04x, CRC=%04x\n", tag(), mfm, raw, cur_live.crc); + if (TRACE_WRITE) logerror("%s: live_write_mfm byte=%02x, raw=%04x, CRC=%04x\n", tag().c_str(), mfm, raw, cur_live.crc); } @@ -1521,7 +1521,7 @@ void wd_fdc_t::live_write_fm(UINT8 fm) cur_live.data_reg = fm; cur_live.shift_reg = raw; cur_live.data_bit_context = fm & 1; - if (TRACE_WRITE) logerror("%s: live_write_fm byte=%02x, raw=%04x, CRC=%04x\n", tag(), fm, raw, cur_live.crc); + if (TRACE_WRITE) logerror("%s: live_write_fm byte=%02x, raw=%04x, CRC=%04x\n", tag().c_str(), fm, raw, cur_live.crc); } void wd_fdc_t::live_run(attotime limit) @@ -2125,7 +2125,7 @@ int wd_fdc_t::settle_time() const return 60000; } -wd_fdc_analog_t::wd_fdc_analog_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : +wd_fdc_analog_t::wd_fdc_analog_t(const machine_config &mconfig, device_type type, const char *name, std::string tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : wd_fdc_t(mconfig, type, name, tag, owner, clock, shortname, source) { clock_ratio = 1; @@ -2177,7 +2177,7 @@ bool wd_fdc_analog_t::pll_write_next_bit(bool bit, attotime &tm, floppy_image_de return cur_pll.write_next_bit(bit, tm, floppy, limit); } -wd_fdc_digital_t::wd_fdc_digital_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : +wd_fdc_digital_t::wd_fdc_digital_t(const machine_config &mconfig, device_type type, const char *name, std::string tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : wd_fdc_t(mconfig, type, name, tag, owner, clock, shortname, source) { clock_ratio = 4; @@ -2386,7 +2386,7 @@ void wd_fdc_digital_t::digital_pll_t::commit(floppy_image_device *floppy, const write_position = 0; } -fd1771_t::fd1771_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1771, "FD1771", tag, owner, clock, "fd1771", __FILE__) +fd1771_t::fd1771_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1771, "FD1771", tag, owner, clock, "fd1771", __FILE__) { const static int fd1771_step_times[4] = { 12000, 12000, 20000, 40000 }; @@ -2411,7 +2411,7 @@ int fd1771_t::calc_sector_size(UINT8 size, UINT8 command) const return size ? size << 4 : 4096; } -fd1781_t::fd1781_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1781, "FD1781", tag, owner, clock, "fd1781", __FILE__) +fd1781_t::fd1781_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1781, "FD1781", tag, owner, clock, "fd1781", __FILE__) { const static int fd1781_step_times[4] = { 6000, 12000, 20000, 40000 }; @@ -2439,7 +2439,7 @@ int fd1781_t::calc_sector_size(UINT8 size, UINT8 command) const const int wd_fdc_t::fd179x_step_times[4] = { 6000, 12000, 20000, 30000 }; const int wd_fdc_t::fd176x_step_times[4] = { 12000, 24000, 40000, 60000 }; -fd1791_t::fd1791_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1791, "FD1791", tag, owner, clock, "fd1791", __FILE__) +fd1791_t::fd1791_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1791, "FD1791", tag, owner, clock, "fd1791", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2455,7 +2455,7 @@ fd1791_t::fd1791_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1792_t::fd1792_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1792, "FD1792", tag, owner, clock, "fd1792", __FILE__) +fd1792_t::fd1792_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1792, "FD1792", tag, owner, clock, "fd1792", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2471,7 +2471,7 @@ fd1792_t::fd1792_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1793_t::fd1793_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1793, "FD1793", tag, owner, clock, "fd1793", __FILE__) +fd1793_t::fd1793_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1793, "FD1793", tag, owner, clock, "fd1793", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2487,7 +2487,7 @@ fd1793_t::fd1793_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -kr1818vg93_t::kr1818vg93_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, KR1818VG93, "KR1818VG93", tag, owner, clock, "kr1818vg93", __FILE__) +kr1818vg93_t::kr1818vg93_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, KR1818VG93, "KR1818VG93", tag, owner, clock, "kr1818vg93", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2503,7 +2503,7 @@ kr1818vg93_t::kr1818vg93_t(const machine_config &mconfig, const char *tag, devic nonsticky_immint = true; } -fd1794_t::fd1794_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1794, "FD1794", tag, owner, clock, "fd1794", __FILE__) +fd1794_t::fd1794_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1794, "FD1794", tag, owner, clock, "fd1794", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2519,7 +2519,7 @@ fd1794_t::fd1794_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1795_t::fd1795_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1795, "FD1795", tag, owner, clock, "fd1795", __FILE__) +fd1795_t::fd1795_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1795, "FD1795", tag, owner, clock, "fd1795", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2543,7 +2543,7 @@ int fd1795_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -fd1797_t::fd1797_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1797, "FD1797", tag, owner, clock, "fd1797", __FILE__) +fd1797_t::fd1797_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1797, "FD1797", tag, owner, clock, "fd1797", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2567,7 +2567,7 @@ int fd1797_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -mb8866_t::mb8866_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8866, "MB8866", tag, owner, clock, "mb8866", __FILE__) +mb8866_t::mb8866_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8866, "MB8866", tag, owner, clock, "mb8866", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2583,7 +2583,7 @@ mb8866_t::mb8866_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -mb8876_t::mb8876_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8876, "MB8876", tag, owner, clock, "mb8876", __FILE__) +mb8876_t::mb8876_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8876, "MB8876", tag, owner, clock, "mb8876", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2599,7 +2599,7 @@ mb8876_t::mb8876_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -mb8877_t::mb8877_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8877, "MB8877", tag, owner, clock, "mb8877", __FILE__) +mb8877_t::mb8877_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, MB8877, "MB8877", tag, owner, clock, "mb8877", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2615,7 +2615,7 @@ mb8877_t::mb8877_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1761_t::fd1761_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1761, "FD1761", tag, owner, clock, "fd1761", __FILE__) +fd1761_t::fd1761_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1761, "FD1761", tag, owner, clock, "fd1761", __FILE__) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2631,7 +2631,7 @@ fd1761_t::fd1761_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1763_t::fd1763_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1763, "FD1763", tag, owner, clock, "fd1763", __FILE__) +fd1763_t::fd1763_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1763, "FD1763", tag, owner, clock, "fd1763", __FILE__) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2647,7 +2647,7 @@ fd1763_t::fd1763_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1765_t::fd1765_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1765, "FD1765", tag, owner, clock, "fd1765", __FILE__) +fd1765_t::fd1765_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1765, "FD1765", tag, owner, clock, "fd1765", __FILE__) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2671,7 +2671,7 @@ int fd1765_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -fd1767_t::fd1767_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1767, "FD1767", tag, owner, clock, "fd1767", __FILE__) +fd1767_t::fd1767_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, FD1767, "FD1767", tag, owner, clock, "fd1767", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2695,7 +2695,7 @@ int fd1767_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -wd2791_t::wd2791_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2791, "WD2791", tag, owner, clock, "wd2791", __FILE__) +wd2791_t::wd2791_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2791, "WD2791", tag, owner, clock, "wd2791", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2711,7 +2711,7 @@ wd2791_t::wd2791_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd2793_t::wd2793_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2793, "WD2793", tag, owner, clock, "wd2793", __FILE__) +wd2793_t::wd2793_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2793, "WD2793", tag, owner, clock, "wd2793", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2727,7 +2727,7 @@ wd2793_t::wd2793_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd2795_t::wd2795_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2795, "WD2795", tag, owner, clock, "wd2795", __FILE__) +wd2795_t::wd2795_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2795, "WD2795", tag, owner, clock, "wd2795", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2751,7 +2751,7 @@ int wd2795_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -wd2797_t::wd2797_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2797, "WD2797", tag, owner, clock, "wd2797", __FILE__) +wd2797_t::wd2797_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_analog_t(mconfig, WD2797, "WD2797", tag, owner, clock, "wd2797", __FILE__) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2775,7 +2775,7 @@ int wd2797_t::calc_sector_size(UINT8 size, UINT8 command) const return 128 << ((size + 1) & 3); } -wd1770_t::wd1770_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1770, "WD1770", tag, owner, clock, "wd1770", __FILE__) +wd1770_t::wd1770_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1770, "WD1770", tag, owner, clock, "wd1770", __FILE__) { step_times = wd_digital_step_times; delay_register_commit = 32; @@ -2791,7 +2791,7 @@ wd1770_t::wd1770_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd1772_t::wd1772_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1772, "WD1772", tag, owner, clock, "wd1772", __FILE__) +wd1772_t::wd1772_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1772, "WD1772", tag, owner, clock, "wd1772", __FILE__) { const static int wd1772_step_times[4] = { 12000, 24000, 4000, 6000 }; @@ -2814,7 +2814,7 @@ int wd1772_t::settle_time() const return 30000; } -wd1773_t::wd1773_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1773, "WD1773", tag, owner, clock, "wd1773", __FILE__) +wd1773_t::wd1773_t(const machine_config &mconfig, std::string tag, device_t *owner, UINT32 clock) : wd_fdc_digital_t(mconfig, WD1773, "WD1773", tag, owner, clock, "wd1773", __FILE__) { step_times = wd_digital_step_times; delay_register_commit = 32; |