trunk/src/mess/machine/upd765.c
| r18678 | r18679 | |
| 308 | 308 | |
| 309 | 309 | WRITE8_MEMBER(upd765_family_device::dsr_w) |
| 310 | 310 | { |
| 311 | | dsr = data; |
| 311 | logerror("%s: dsr_w %02x\n", tag(), data); |
| 312 | if(data & 0x80) |
| 313 | soft_reset(); |
| 314 | dsr = data & 0x7f; |
| 312 | 315 | cur_rate = rates[dsr & 3]; |
| 313 | 316 | } |
| 314 | 317 | |
| r18678 | r18679 | |
| 352 | 355 | break; |
| 353 | 356 | if(cmd == C_INVALID) { |
| 354 | 357 | logerror("%s: Invalid on %02x\n", tag(), command[0]); |
| 355 | | exit(1); |
| 356 | | command_pos = 0; |
| 358 | main_phase = PHASE_RESULT; |
| 359 | result[0] = 0x80; |
| 360 | result_pos = 1; |
| 357 | 361 | return; |
| 358 | 362 | } |
| 359 | 363 | start_command(cmd); |
| r18678 | r18679 | |
| 928 | 932 | // ...01100 read deleted data |
| 929 | 933 | // 0.001101 format track |
| 930 | 934 | // 00001110 dumpreg |
| 935 | // 00101110 save |
| 936 | // 01001110 restore |
| 937 | // 10001110 drive specification command |
| 931 | 938 | // 00001111 seek |
| 939 | // 1.001111 relative seek |
| 932 | 940 | // 00010000 version |
| 933 | 941 | // ...10001 scan equal |
| 934 | 942 | // 00010010 perpendicular mode |
| 935 | 943 | // 00010011 configure |
| 944 | // 00110011 option |
| 936 | 945 | // .0010100 lock |
| 937 | 946 | // ...10110 verify |
| 947 | // 00010111 powerdown mode |
| 948 | // 00011000 part id |
| 938 | 949 | // ...11001 scan low or equal |
| 939 | 950 | // ...11101 scan high or equal |
| 940 | | // 1.001111 relative seek |
| 941 | 951 | |
| 942 | 952 | // MSDOS 6.22 format uses 0xcd to format a track, which makes one |
| 943 | 953 | // think only the bottom 5 bits are decoded. |
| r18678 | r18679 | |
| 973 | 983 | return command_pos == 6 ? C_FORMAT_TRACK : C_INCOMPLETE; |
| 974 | 984 | |
| 975 | 985 | case 0x0e: |
| 976 | | return command_pos == 2 ? C_DUMP_REG : C_INCOMPLETE; |
| 986 | return C_DUMP_REG; |
| 977 | 987 | |
| 978 | 988 | case 0x0f: |
| 979 | 989 | return command_pos == 3 ? C_SEEK : C_INCOMPLETE; |
| r18678 | r18679 | |
| 1010 | 1020 | break; |
| 1011 | 1021 | |
| 1012 | 1022 | case C_DUMP_REG: |
| 1023 | logerror("%s: command dump regs\n", tag()); |
| 1013 | 1024 | main_phase = PHASE_RESULT; |
| 1014 | 1025 | result[0] = flopi[0].pcn; |
| 1015 | 1026 | result[1] = flopi[1].pcn; |