2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
7 [ SCSI/SASI hard disk drive ]
16 //class csp_state_utils;
18 class SCSI_HDD : public SCSI_DEV
24 // csp_state_utils *state_entry;
26 _TCHAR image_path[8][MAX_PATH];
30 SCSI_HDD(VM_TEMPLATE* parent_vm, EMU* parent_emu) : SCSI_DEV(parent_vm, parent_emu)
32 for(int i = 0; i < 8; i++) {
34 image_path[i][0] = _T('\0');
36 my_sprintf_s(vendor_id, 9, "NECITSU");
37 my_sprintf_s(product_id, 17, "SCSI-HDD");
39 is_removable = is_hot_swappable = false;
41 seek_time = 10000; // 10msec
42 bytes_per_sec = 0x500000; // 5MB/sec
44 // default_drive_size = 0x2800000; // 40MB
45 set_device_name(_T("SCSI HDD"));
51 void save_state(FILEIO* state_fio);
52 bool load_state(FILEIO* state_fio);
54 // virtual scsi functions
57 bool is_device_existing();
58 uint32_t physical_block_size();
59 uint32_t logical_block_size();
60 uint32_t max_logical_block_addr();
61 bool read_buffer(int length);
62 bool write_buffer(int length);
65 void set_disk_handler(int drv, HARDDISK* device)
71 HARDDISK* get_disk_handler(int drv)
78 void open(int drv, const _TCHAR* file_path, int default_sector_size);
80 bool mounted(int drv);
81 bool accessed(int drv);
84 class SASI_HDD : public SCSI_HDD
87 SASI_HDD(VM* parent_vm, EMU* parent_emu) : SCSI_HDD(parent_vm, parent_emu)
89 set_device_name(_T("SASI Hard Disk Drive"));
93 // virtual scsi functions
94 int get_command_length(int value);