trunk/src/emu/machine/corvushd.c
| r31196 | r31197 | |
| 1020 | 1020 | m_buffer.drive_param_response.status = |
| 1021 | 1021 | corvus_format_drive(m_buffer.format_drive_revbh_command.pattern, m_offset - 512); |
| 1022 | 1022 | break; |
| 1023 | case PREP_VERIFY: |
| 1024 | m_buffer.verify_drive_response.status = STAT_SUCCESS; |
| 1025 | m_buffer.verify_drive_response.bad_sectors = 0; |
| 1026 | break; |
| 1023 | 1027 | default: |
| 1024 | 1028 | m_xmit_bytes = 1; |
| 1025 | 1029 | m_buffer.single_byte_response.status = STAT_FAULT | STAT_FATAL_ERR; |
| r31196 | r31197 | |
| 1241 | 1245 | corvus_prep_cmd[PREP_FILL_DRIVE_OMNI].recv_bytes = 3; |
| 1242 | 1246 | corvus_prep_cmd[PREP_FILL_DRIVE_OMNI].xmit_bytes = 1; |
| 1243 | 1247 | corvus_prep_cmd[PREP_VERIFY].recv_bytes = 1; |
| 1244 | | corvus_prep_cmd[PREP_VERIFY].xmit_bytes = 0; |
| 1248 | corvus_prep_cmd[PREP_VERIFY].xmit_bytes = 2; |
| 1245 | 1249 | corvus_prep_cmd[PREP_READ_FIRMWARE].recv_bytes = 2; |
| 1246 | 1250 | corvus_prep_cmd[PREP_READ_FIRMWARE].xmit_bytes = 513; |
| 1247 | 1251 | corvus_prep_cmd[PREP_WRITE_FIRMWARE].recv_bytes = 514; |
trunk/src/emu/machine/corvushd.h
| r31196 | r31197 | |
| 425 | 425 | UINT8 code; // Command Code |
| 426 | 426 | UINT8 pattern[512]; // Pattern to be written |
| 427 | 427 | } format_drive_revbh_command; |
| 428 | // |
| 429 | // Verify Drive command (Prep Mode 0x07) |
| 430 | // |
| 431 | // On the real Corvus controller, this is a variable length response. If the |
| 432 | // number of bad sectors is greater than zero, an additional four bytes will |
| 433 | // follow for each bad sector. We don't emulate bad sectors, so we always |
| 434 | // return a count of 0. That makes this a fixed length response of 2 bytes. |
| 435 | // |
| 436 | struct { |
| 437 | UINT8 status; // Disk access status |
| 438 | UINT8 bad_sectors; // Number of bad sectors (always zero) |
| 439 | } verify_drive_response; |
| 428 | 440 | } m_buffer; |
| 429 | 441 | |
| 430 | 442 | // Structure of Block #1, the Disk Parameter Block |