diff options
Diffstat (limited to 'src/devices/machine/nscsi_cd.h')
-rw-r--r-- | src/devices/machine/nscsi_cd.h | 62 |
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 |