diff options
Diffstat (limited to 'src/emu/machine/nscsi_hd.h')
-rw-r--r-- | src/emu/machine/nscsi_hd.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/emu/machine/nscsi_hd.h b/src/emu/machine/nscsi_hd.h new file mode 100644 index 00000000000..d49f6109d8a --- /dev/null +++ b/src/emu/machine/nscsi_hd.h @@ -0,0 +1,34 @@ +#ifndef __NSCSI_HD_H__ +#define __NSCSI_HD_H__ + +#include "machine/nscsi_bus.h" +#include "harddisk.h" + +#define MCFG_NSCSI_HARDDISK_ADD(_tag, _subtag) \ + MCFG_NSCSI_FULL_DEVICE_ADD(_tag, _subtag, NSCSI_HARDDISK, 0) + +class nscsi_harddisk_device : public nscsi_full_device +{ +public: + nscsi_harddisk_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual machine_config_constructor device_mconfig_additions() const; + + static struct harddisk_interface hd_intf; +protected: + virtual void device_start(); + virtual void device_reset(); + + virtual void scsi_command(); + virtual UINT8 scsi_get_data(int id, int pos); + +private: + UINT8 block[512]; + hard_disk_file *harddisk; + int lba, cur_lba, blocks; + int bytes_per_sector; +}; + +extern const device_type NSCSI_HARDDISK; + +#endif |