diff options
Diffstat (limited to 'src/devices/machine/nscsi_bus.cpp')
-rw-r--r-- | src/devices/machine/nscsi_bus.cpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/devices/machine/nscsi_bus.cpp b/src/devices/machine/nscsi_bus.cpp index c408a6a6839..efc89a60f40 100644 --- a/src/devices/machine/nscsi_bus.cpp +++ b/src/devices/machine/nscsi_bus.cpp @@ -3,13 +3,15 @@ #include "emu.h" #include "nscsi_bus.h" -#define LOG_GENERAL (1U << 0) -#define LOG_STATE (1U << 1) -#define LOG_CONTROL (1U << 2) -#define LOG_DATA (1U << 3) +#define LOG_GENERAL (1U << 0) +#define LOG_UNSUPPORTED (1U << 1) +#define LOG_STATE (1U << 2) +#define LOG_CONTROL (1U << 3) +#define LOG_DATA (1U << 4) +#define LOG_DATA_SENT (1U << 5) //#define VERBOSE (LOG_GENERAL | LOG_STATE | LOG_CONTROL | LOG_DATA) -#define VERBOSE 0 +#define VERBOSE (LOG_UNSUPPORTED | LOG_DATA_SENT) #include "logmacro.h" @@ -562,6 +564,17 @@ void nscsi_full_device::scsi_status_complete(uint8_t st) void nscsi_full_device::scsi_data_in(int buf, int size) { + if(VERBOSE & LOG_DATA_SENT) { + std::string dt = ""; + int sz = size; + if(sz > 50) + sz = 50; + for(int i=0; i<size; i++) + dt += util::string_format(" %02x", scsi_cmdbuf[i]); + if(size > sz) + dt += " ..."; + LOGMASKED(LOG_DATA_SENT, "Sending data%s\n", dt); + } control *c; c = buf_control_push(); c->action = BC_DATA_IN; @@ -590,10 +603,10 @@ void nscsi_full_device::sense(bool deferred, uint8_t key, uint8_t asc, uint8_t a void nscsi_full_device::scsi_unknown_command() { - LOG("Unhandled command %s", command_names[scsi_cmdbuf[0]]); + std::string txt = util::string_format("Unhandled command %s (%d):", command_names[scsi_cmdbuf[0]], scsi_cmdsize); for(int i=0; i != scsi_cmdsize; i++) - logerror(" %02x", scsi_cmdbuf[i]); - logerror("\n"); + txt += util::string_format(" %02x", scsi_cmdbuf[i]); + LOGMASKED(LOG_UNSUPPORTED, "%s\n", txt); scsi_status_complete(SS_CHECK_CONDITION); sense(false, SK_ILLEGAL_REQUEST); @@ -620,10 +633,10 @@ void nscsi_full_device::scsi_message() return; } - LOG("Unknown message"); + std::string txt = "Unknown message"; for(int i=0; i != scsi_cmdsize; i++) - logerror(" %02x", scsi_cmdbuf[i]); - logerror("\n"); + txt += util::string_format(" %02x", scsi_cmdbuf[i]); + LOGMASKED(LOG_UNSUPPORTED, "%s\n", txt); } int nscsi_full_device::get_lun(int def) |