1 // license:BSD-3-Clause 2 // copyright-holders:smf 3 /*************************************************************************** 4 5 cr589.h 6 7 Matsushita CR589 8 9 ***************************************************************************/ 10 11 #ifndef MAME_BUS_ATA_CR589_H 12 #define MAME_BUS_ATA_CR589_H 13 14 #pragma once 15 16 #include "atapicdr.h" 17 18 class matsushita_cr589_device : public atapi_cdrom_device, 19 public device_nvram_interface 20 { 21 public: 22 matsushita_cr589_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 23 24 virtual void ExecCommand() override; 25 virtual void WriteData( uint8_t *data, int dataLength ) override; 26 virtual void ReadData( uint8_t *data, int dataLength ) override; 27 // ksys573 changes discs without telling the cdrom_image_device process_buffer()28 virtual void process_buffer() override { atapi_hle_device::process_buffer(); } 29 30 protected: 31 // device-level overrides 32 virtual void device_start() override; 33 virtual void device_reset() override; 34 35 // device_nvram_interface overrides 36 virtual void nvram_default() override; 37 virtual void nvram_read(emu_file &file) override; 38 virtual void nvram_write(emu_file &file) override; 39 40 private: 41 int download; 42 uint8_t buffer[ 65536 ]; 43 int bufferOffset; 44 }; 45 46 // device type definition 47 DECLARE_DEVICE_TYPE(CR589, matsushita_cr589_device) 48 49 #endif // MAME_BUS_ATA_CR589_H 50