trunk/src/emu/machine/idehd.c
| r26437 | r26438 | |
| 22 | 22 | ata_mass_storage_device::ata_mass_storage_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock,const char *shortname, const char *source) |
| 23 | 23 | : ata_hle_device(mconfig, type, name, tag, owner, clock, shortname, source), |
| 24 | 24 | m_can_identify_device(0), |
| 25 | m_num_cylinders(0), |
| 26 | m_num_sectors(0), |
| 27 | m_num_heads(0), |
| 25 | 28 | m_master_password(NULL), |
| 26 | 29 | m_user_password(NULL) |
| 27 | 30 | { |
| r26437 | r26438 | |
| 341 | 344 | |
| 342 | 345 | attotime ata_mass_storage_device::seek_time() |
| 343 | 346 | { |
| 344 | | /* just set a timer */ |
| 347 | int sectors_per_cylinder = m_num_heads * m_num_sectors; |
| 348 | |
| 349 | if (sectors_per_cylinder == 0 || m_num_cylinders == 0) |
| 350 | return attotime::zero; |
| 351 | |
| 345 | 352 | int new_lba = lba_address(); |
| 346 | | |
| 347 | | int old_cylinder = m_cur_lba / (m_num_heads * m_num_sectors); |
| 348 | | int new_cylinder = new_lba / (m_num_heads * m_num_sectors); |
| 353 | int old_cylinder = m_cur_lba / sectors_per_cylinder; |
| 354 | int new_cylinder = new_lba / sectors_per_cylinder; |
| 349 | 355 | int diff = abs(old_cylinder - new_cylinder); |
| 350 | 356 | |
| 351 | 357 | m_cur_lba = new_lba; |