summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/wd_fdc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/wd_fdc.cpp')
-rw-r--r--src/devices/machine/wd_fdc.cpp190
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;