src/mess/devices/flopdrv.c
| r7278 | r7279 | |
| 8 | 8 | - set unit id |
| 9 | 9 | |
| 10 | 10 | TODO: |
| 11 | | - Disk change handling. |
| 12 | 11 | - Override write protect if disk image has been opened in read mode |
| 13 | 12 | */ |
| 14 | 13 | |
| r7278 | r7279 | |
| 50 | 49 | int tk00; /* track 00 */ |
| 51 | 50 | int wpt; /* write protect */ |
| 52 | 51 | int rdy; /* ready */ |
| 52 | int dskchg; /* disk changed */ |
| 53 | 53 | |
| 54 | 54 | /* drive select logic */ |
| 55 | 55 | int drive_id; |
| r7278 | r7279 | |
| 452 | 452 | pDrive->tk00 = (pDrive->current_track == 0) ? CLEAR_LINE : ASSERT_LINE; |
| 453 | 453 | devcb_call_write_line(&pDrive->out_tk00_func, pDrive->tk00); |
| 454 | 454 | |
| 455 | /* clear disk changed flag */ |
| 456 | pDrive->dskchg = ASSERT_LINE; |
| 457 | |
| 455 | 458 | /* inform disk image of step operation so it can cache information */ |
| 456 | 459 | if (image_exists(img)) |
| 457 | 460 | flopimg_seek_callback(img, pDrive->current_track); |
| r7278 | r7279 | |
| 633 | 636 | /* motor off */ |
| 634 | 637 | floppy->mon = ASSERT_LINE; |
| 635 | 638 | |
| 639 | /* disk changed */ |
| 640 | floppy->dskchg = CLEAR_LINE; |
| 641 | |
| 636 | 642 | /* resolve callbacks */ |
| 637 | 643 | devcb_resolve_write_line(&floppy->out_idx_func, &floppy->config->out_idx_func, device); |
| 638 | 644 | devcb_resolve_read_line(&floppy->in_mon_func, &floppy->config->in_mon_func, device); |
| r7278 | r7279 | |
| 717 | 723 | |
| 718 | 724 | floppy_close(flopimg->floppy); |
| 719 | 725 | flopimg->floppy = NULL; |
| 726 | |
| 727 | /* disk changed */ |
| 728 | flopimg->dskchg = CLEAR_LINE; |
| 720 | 729 | } |
| 721 | 730 | |
| 722 | 731 | running_device *floppy_get_device(running_machine *machine,int drive) |
| r7278 | r7279 | |
| 954 | 963 | return drive->tk00; |
| 955 | 964 | } |
| 956 | 965 | |
| 966 | /* disk changed */ |
| 967 | READ_LINE_DEVICE_HANDLER( floppy_dskchg_r ) |
| 968 | { |
| 969 | floppy_drive *drive = get_safe_token(device); |
| 970 | return drive->dskchg; |
| 971 | } |
| 957 | 972 | |
| 958 | 973 | /************************************* |
| 959 | 974 | * |