summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/nscsi_cd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/nscsi_cd.h')
-rw-r--r--src/devices/machine/nscsi_cd.h62
1 files changed, 61 insertions, 1 deletions
diff --git a/src/devices/machine/nscsi_cd.h b/src/devices/machine/nscsi_cd.h
index 2f7c111c2d6..f3ce871c70a 100644
--- a/src/devices/machine/nscsi_cd.h
+++ b/src/devices/machine/nscsi_cd.h
@@ -12,11 +12,23 @@
class nscsi_cdrom_device : public nscsi_full_device
{
public:
- nscsi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nscsi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void set_block_size(u32 block_size);
protected:
+ nscsi_cdrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0);
+
+ nscsi_cdrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, const char *mfr, const char *product, const char *rev, uint8_t inq_data, uint8_t compliance)
+ : nscsi_cdrom_device(mconfig, type, tag, owner, 0)
+ {
+ strncpy(manufacturer, mfr, 8);
+ strncpy(this->product, product, 16);
+ strncpy(revision, rev, 4);
+ inquiry_data = inq_data;
+ this->compliance = compliance;
+ }
+
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
@@ -35,9 +47,57 @@ private:
required_device<cdrom_image_device> image;
uint8_t mode_data[12];
+ char manufacturer[8];
+ char product[16];
+ char revision[4];
+ uint8_t inquiry_data;
+ uint8_t compliance;
+
void return_no_cd();
};
+class nscsi_dec_rrd45_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_dec_rrd45_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
+class nscsi_toshiba_xm3301_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_toshiba_xm3301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
+class nscsi_toshiba_xm5301_sun_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_toshiba_xm5301_sun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
+class nscsi_toshiba_xm5401_sun_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_toshiba_xm5401_sun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
+class nscsi_toshiba_xm5701_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_toshiba_xm5701_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
+class nscsi_toshiba_xm5701_sun_device : public nscsi_cdrom_device
+{
+public:
+ nscsi_toshiba_xm5701_sun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+};
+
DECLARE_DEVICE_TYPE(NSCSI_CDROM, nscsi_cdrom_device)
+DECLARE_DEVICE_TYPE(NSCSI_RRD45, nscsi_dec_rrd45_device)
+DECLARE_DEVICE_TYPE(NSCSI_XM3301, nscsi_toshiba_xm3301_device)
+DECLARE_DEVICE_TYPE(NSCSI_XM5301SUN, nscsi_toshiba_xm5301_sun_device)
+DECLARE_DEVICE_TYPE(NSCSI_XM5401SUN, nscsi_toshiba_xm5401_sun_device)
+DECLARE_DEVICE_TYPE(NSCSI_XM5701, nscsi_toshiba_xm5701_device)
+DECLARE_DEVICE_TYPE(NSCSI_XM5701SUN, nscsi_toshiba_xm5701_sun_device)
#endif // MAME_MACHINE_NSCSI_CD_H