branches/alto2/src/emu/cpu/alto2/a2drive.c
| r26119 | r26120 | |
| 47 | 47 | */ |
| 48 | 48 | void alto2_cpu_device::drive_get_sector(int unit) |
| 49 | 49 | { |
| 50 | | diablo_drive_t *d = m_drive[unit]; |
| 51 | 50 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 52 | 51 | fatal(1, "invalid unit %d in call to drive_get_sector()\n", unit); |
| 53 | 52 | |
| 53 | /* uninitialized drive? */ |
| 54 | diablo_drive_t *d = m_drive[unit]; |
| 55 | if (!d) |
| 56 | return; |
| 57 | |
| 54 | 58 | /* If there's no image, just reset the page number */ |
| 55 | 59 | if (!d->image) { |
| 56 | 60 | d->page = -1; |
| r26119 | r26120 | |
| 171 | 175 | */ |
| 172 | 176 | void alto2_cpu_device::expand_sector(int unit, int page) |
| 173 | 177 | { |
| 174 | | diablo_drive_t *d = m_drive[unit]; |
| 175 | 178 | diablo_sector_t *s; |
| 176 | 179 | UINT32 *bits; |
| 177 | 180 | size_t dst; |
| r26119 | r26120 | |
| 182 | 185 | if (page < 0 || page >= DIABLO_DRIVE_PAGES) |
| 183 | 186 | return; |
| 184 | 187 | |
| 188 | /* uninitialized drive? */ |
| 189 | diablo_drive_t *d = m_drive[unit]; |
| 190 | if (!d) |
| 191 | return; |
| 192 | |
| 185 | 193 | /* already expanded this sector? */ |
| 186 | 194 | if (d->bits[page]) |
| 187 | 195 | return; |
| r26119 | r26120 | |
| 423 | 431 | */ |
| 424 | 432 | void alto2_cpu_device::squeeze_sector(int unit) |
| 425 | 433 | { |
| 426 | | diablo_drive_t *d = m_drive[unit]; |
| 427 | 434 | diablo_sector_t *s; |
| 428 | 435 | UINT32 *bits; |
| 429 | 436 | size_t src; |
| r26119 | r26120 | |
| 432 | 439 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 433 | 440 | fatal(1, "invalid unit %d in call to squeeze_sector()\n", unit); |
| 434 | 441 | |
| 442 | /* uninitialized drive? */ |
| 443 | diablo_drive_t *d = m_drive[unit]; |
| 444 | if (!d) |
| 445 | return; |
| 446 | |
| 435 | 447 | if (d->rdfirst >= 0) { |
| 436 | 448 | LOG((LOG_DRIVE,0, |
| 437 | 449 | " RD #%d %03d/%d/%02d bit#%-5d (@%03d.%02d) ... bit#%-5d (@%03d.%02d)\n", |
| r26119 | r26120 | |
| 557 | 569 | */ |
| 558 | 570 | const char* alto2_cpu_device::drive_description(int unit) |
| 559 | 571 | { |
| 560 | | diablo_drive_t *d = m_drive[unit]; |
| 561 | 572 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 562 | 573 | fatal(1, "invalid unit %d in call to drive_description()\n", unit); |
| 574 | |
| 575 | /* uninitialized drive? */ |
| 576 | diablo_drive_t *d = m_drive[unit]; |
| 577 | if (!d) |
| 578 | return ""; |
| 579 | |
| 563 | 580 | return d->description; |
| 564 | 581 | } |
| 565 | 582 | |
| r26119 | r26120 | |
| 571 | 588 | */ |
| 572 | 589 | const char* alto2_cpu_device::drive_basename(int unit) |
| 573 | 590 | { |
| 574 | | diablo_drive_t *d = m_drive[unit]; |
| 575 | 591 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 576 | 592 | fatal(1, "invalid unit %d in call to drive_description()\n", unit); |
| 593 | |
| 594 | /* uninitialized drive? */ |
| 595 | diablo_drive_t *d = m_drive[unit]; |
| 596 | if (!d) |
| 597 | return ""; |
| 598 | |
| 577 | 599 | return d->basename; |
| 578 | 600 | } |
| 579 | 601 | |
| r26119 | r26120 | |
| 587 | 609 | */ |
| 588 | 610 | int alto2_cpu_device::drive_unit(int unit) |
| 589 | 611 | { |
| 590 | | diablo_drive_t *d = m_drive[unit]; |
| 591 | 612 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 592 | 613 | fatal(1, "invalid unit %d in call to drive_unit()\n", unit); |
| 614 | |
| 615 | /* uninitialized drive? */ |
| 616 | diablo_drive_t *d = m_drive[unit]; |
| 617 | if (!d) |
| 618 | return 0; |
| 619 | |
| 593 | 620 | return d->unit; |
| 594 | 621 | } |
| 595 | 622 | |
| r26119 | r26120 | |
| 601 | 628 | */ |
| 602 | 629 | attotime alto2_cpu_device::drive_rotation_time(int unit) |
| 603 | 630 | { |
| 604 | | diablo_drive_t *d = m_drive[unit]; |
| 605 | 631 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 606 | 632 | fatal(1, "invalid unit %d in call to drive_rotation_time()\n", unit); |
| 633 | |
| 634 | /* uninitialized drive? */ |
| 635 | diablo_drive_t *d = m_drive[unit]; |
| 636 | if (!d) |
| 637 | return attotime::never; |
| 638 | |
| 607 | 639 | return d->rotation_time; |
| 608 | 640 | } |
| 609 | 641 | |
| r26119 | r26120 | |
| 615 | 647 | */ |
| 616 | 648 | attotime alto2_cpu_device::drive_bit_time(int unit) |
| 617 | 649 | { |
| 618 | | diablo_drive_t *d = m_drive[unit]; |
| 619 | 650 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 620 | 651 | fatal(1, "invalid unit %d in call to drive_bit_time()\n", unit); |
| 652 | |
| 653 | /* uninitialized drive? */ |
| 654 | diablo_drive_t *d = m_drive[unit]; |
| 655 | if (!d) |
| 656 | return attotime::never; |
| 657 | |
| 621 | 658 | return d->bit_time; |
| 622 | 659 | } |
| 623 | 660 | |
| r26119 | r26120 | |
| 629 | 666 | */ |
| 630 | 667 | int alto2_cpu_device::drive_seek_read_write_0(int unit) |
| 631 | 668 | { |
| 632 | | diablo_drive_t *d = m_drive[unit]; |
| 633 | 669 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 634 | 670 | fatal(1, "invalid unit %d in call to drive_seek_read_write_0()\n", unit); |
| 671 | |
| 672 | /* uninitialized drive? */ |
| 673 | diablo_drive_t *d = m_drive[unit]; |
| 674 | if (!d) |
| 675 | return 0; |
| 676 | |
| 635 | 677 | return d->s_r_w_0; |
| 636 | 678 | } |
| 637 | 679 | |
| r26119 | r26120 | |
| 643 | 685 | */ |
| 644 | 686 | int alto2_cpu_device::drive_ready_0(int unit) |
| 645 | 687 | { |
| 646 | | diablo_drive_t *d = m_drive[unit]; |
| 647 | 688 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 648 | 689 | fatal(1, "invalid unit %d in call to drive_ready_0()\n", unit); |
| 690 | |
| 691 | /* uninitialized drive? */ |
| 692 | diablo_drive_t *d = m_drive[unit]; |
| 693 | if (!d) |
| 694 | return 0; |
| 695 | |
| 649 | 696 | return d->ready_0; |
| 650 | 697 | } |
| 651 | 698 | |
| r26119 | r26120 | |
| 659 | 706 | */ |
| 660 | 707 | int alto2_cpu_device::drive_sector_mark_0(int unit) |
| 661 | 708 | { |
| 662 | | diablo_drive_t *d = m_drive[unit]; |
| 663 | 709 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 664 | 710 | fatal(1, "invalid unit %d in call to drive_sector_mark_0()\n", unit); |
| 711 | |
| 712 | /* uninitialized drive? */ |
| 713 | diablo_drive_t *d = m_drive[unit]; |
| 714 | if (!d) |
| 715 | return 0; |
| 716 | |
| 665 | 717 | /* no sector marks while seeking (?) */ |
| 666 | 718 | if (d->s_r_w_0) |
| 667 | 719 | return 1; |
| 720 | |
| 668 | 721 | /* return the sector mark */ |
| 669 | 722 | return d->sector_mark_0; |
| 670 | 723 | } |
| r26119 | r26120 | |
| 677 | 730 | */ |
| 678 | 731 | int alto2_cpu_device::drive_addx_acknowledge_0(int unit) |
| 679 | 732 | { |
| 680 | | diablo_drive_t *d = m_drive[unit]; |
| 681 | 733 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 682 | 734 | fatal(1, "invalid unit %d in call to drive_addx_acknowledge_0()\n", unit); |
| 735 | |
| 736 | /* uninitialized drive? */ |
| 737 | diablo_drive_t *d = m_drive[unit]; |
| 738 | if (!d) |
| 739 | return 0; |
| 740 | |
| 683 | 741 | return d->addx_acknowledge_0; |
| 684 | 742 | } |
| 685 | 743 | |
| r26119 | r26120 | |
| 691 | 749 | */ |
| 692 | 750 | int alto2_cpu_device::drive_log_addx_interlock_0(int unit) |
| 693 | 751 | { |
| 694 | | diablo_drive_t *d = m_drive[unit]; |
| 695 | 752 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 696 | 753 | fatal(1, "invalid unit %d in call to drive_log_addx_interlock_0()\n", unit); |
| 754 | |
| 755 | /* uninitialized drive? */ |
| 756 | diablo_drive_t *d = m_drive[unit]; |
| 757 | if (!d) |
| 758 | return 0; |
| 759 | |
| 697 | 760 | return d->log_addx_interlock_0; |
| 698 | 761 | } |
| 699 | 762 | |
| r26119 | r26120 | |
| 705 | 768 | */ |
| 706 | 769 | int alto2_cpu_device::drive_seek_incomplete_0(int unit) |
| 707 | 770 | { |
| 708 | | diablo_drive_t *d = m_drive[unit]; |
| 709 | 771 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 710 | 772 | fatal(1, "invalid unit %d in call to drive_addx_acknowledge_0()\n", unit); |
| 773 | |
| 774 | /* uninitialized drive? */ |
| 775 | diablo_drive_t *d = m_drive[unit]; |
| 776 | if (!d) |
| 777 | return 0; |
| 778 | |
| 711 | 779 | return d->seek_incomplete_0; |
| 712 | 780 | } |
| 713 | 781 | |
| r26119 | r26120 | |
| 721 | 789 | */ |
| 722 | 790 | int alto2_cpu_device::drive_cylinder(int unit) |
| 723 | 791 | { |
| 724 | | diablo_drive_t *d = m_drive[unit]; |
| 725 | 792 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 726 | 793 | fatal(1, "invalid unit %d in call to drive_cylinder()\n", unit); |
| 794 | |
| 795 | /* uninitialized drive? */ |
| 796 | diablo_drive_t *d = m_drive[unit]; |
| 797 | if (!d) |
| 798 | return DIABLO_DRIVE_CYLINDER_MASK; |
| 799 | |
| 727 | 800 | return d->cylinder ^ DIABLO_DRIVE_CYLINDER_MASK; |
| 728 | 801 | } |
| 729 | 802 | |
| r26119 | r26120 | |
| 737 | 810 | */ |
| 738 | 811 | int alto2_cpu_device::drive_head(int unit) |
| 739 | 812 | { |
| 740 | | diablo_drive_t *d = m_drive[unit]; |
| 741 | 813 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 742 | 814 | fatal(1, "invalid unit %d in call to drive_head()\n", unit); |
| 815 | |
| 816 | /* uninitialized drive? */ |
| 817 | diablo_drive_t *d = m_drive[unit]; |
| 818 | if (!d) |
| 819 | return DIABLO_DRIVE_HEAD_MASK; |
| 820 | |
| 743 | 821 | return d->head ^ DIABLO_DRIVE_HEAD_MASK; |
| 744 | 822 | } |
| 745 | 823 | |
| r26119 | r26120 | |
| 756 | 834 | */ |
| 757 | 835 | int alto2_cpu_device::drive_sector(int unit) |
| 758 | 836 | { |
| 759 | | diablo_drive_t *d = m_drive[unit]; |
| 760 | 837 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 761 | 838 | fatal(1, "invalid unit %d in call to drive_sector()\n", unit); |
| 839 | |
| 840 | /* uninitialized drive? */ |
| 841 | diablo_drive_t *d = m_drive[unit]; |
| 842 | if (!d) |
| 843 | return DIABLO_DRIVE_SECTOR_MASK; |
| 844 | |
| 762 | 845 | return d->sector ^ DIABLO_DRIVE_SECTOR_MASK; |
| 763 | 846 | } |
| 764 | 847 | |
| r26119 | r26120 | |
| 773 | 856 | */ |
| 774 | 857 | int alto2_cpu_device::drive_page(int unit) |
| 775 | 858 | { |
| 776 | | diablo_drive_t *d = m_drive[unit]; |
| 777 | 859 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 778 | 860 | fatal(1, "invalid unit %d in call to drive_page()\n", unit); |
| 861 | |
| 862 | /* uninitialized drive? */ |
| 863 | diablo_drive_t *d = m_drive[unit]; |
| 864 | if (!d) |
| 865 | return 0; |
| 866 | |
| 779 | 867 | return d->page; |
| 780 | 868 | } |
| 781 | 869 | |
| r26119 | r26120 | |
| 787 | 875 | */ |
| 788 | 876 | void alto2_cpu_device::drive_select(int unit, int head) |
| 789 | 877 | { |
| 790 | | diablo_drive_t *d = m_drive[unit]; |
| 791 | 878 | |
| 792 | 879 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 793 | 880 | fatal(1, "invalid unit %d in call to drive_select()\n", unit); |
| r26119 | r26120 | |
| 799 | 886 | printf("select unit:%d head:%d\n", unit, head); |
| 800 | 887 | } |
| 801 | 888 | |
| 889 | /* uninitialized drive? */ |
| 890 | diablo_drive_t *d = m_drive[unit]; |
| 891 | if (!d) |
| 892 | return; |
| 893 | |
| 802 | 894 | if (d->image) { |
| 803 | 895 | /* it is ready */ |
| 804 | 896 | d->ready_0 = 0; |
| r26119 | r26120 | |
| 840 | 932 | */ |
| 841 | 933 | void alto2_cpu_device::drive_strobe(int unit, int cylinder, int restore, int strobe) |
| 842 | 934 | { |
| 843 | | diablo_drive_t *d = m_drive[unit]; |
| 844 | 935 | int seekto = restore ? 0 : cylinder; |
| 845 | 936 | |
| 846 | 937 | if (unit < 0 || unit >= DIABLO_DRIVE_MAX) |
| 847 | 938 | fatal(1, "invalid unit %d in call to drive_strobe()\n", unit); |
| 848 | 939 | |
| 940 | /* uninitialized drive? */ |
| 941 | diablo_drive_t *d = m_drive[unit]; |
| 942 | if (!d) |
| 943 | return; |
| 944 | |
| 849 | 945 | if (strobe == 1) { |
| 850 | 946 | LOG((LOG_DRIVE,1," STROBE end of interlock\n", seekto)); |
| 851 | 947 | /* deassert the log address interlock */ |
| r26119 | r26120 | |
| 914 | 1010 | */ |
| 915 | 1011 | void alto2_cpu_device::drive_egate(int unit, int gate) |
| 916 | 1012 | { |
| 1013 | /* uninitialized drive? */ |
| 917 | 1014 | diablo_drive_t *d = m_drive[unit]; |
| 1015 | if (!d) |
| 1016 | return; |
| 1017 | |
| 918 | 1018 | d->egate_0 = gate; |
| 919 | 1019 | } |
| 920 | 1020 | |
| r26119 | r26120 | |
| 926 | 1026 | */ |
| 927 | 1027 | void alto2_cpu_device::drive_wrgate(int unit, int gate) |
| 928 | 1028 | { |
| 1029 | /* uninitialized drive? */ |
| 929 | 1030 | diablo_drive_t *d = m_drive[unit]; |
| 1031 | if (!d) |
| 1032 | return; |
| 1033 | |
| 930 | 1034 | d->wrgate_0 = gate; |
| 931 | 1035 | } |
| 932 | 1036 | |
| r26119 | r26120 | |
| 938 | 1042 | */ |
| 939 | 1043 | void alto2_cpu_device::drive_rdgate(int unit, int gate) |
| 940 | 1044 | { |
| 1045 | /* uninitialized drive? */ |
| 941 | 1046 | diablo_drive_t *d = m_drive[unit]; |
| 1047 | if (!d) |
| 1048 | return; |
| 1049 | |
| 942 | 1050 | d->rdgate_0 = gate; |
| 943 | 1051 | } |
| 944 | 1052 | |
| r26119 | r26120 | |
| 962 | 1070 | */ |
| 963 | 1071 | void alto2_cpu_device::drive_wrdata(int unit, int index, int wrdata) |
| 964 | 1072 | { |
| 1073 | /* uninitialized drive? */ |
| 965 | 1074 | diablo_drive_t *d = m_drive[unit]; |
| 966 | | UINT32 *bits; |
| 1075 | if (!d) |
| 1076 | return; |
| 967 | 1077 | |
| 968 | 1078 | if (d->wrgate_0) { |
| 969 | 1079 | /* write gate is not asserted (active 0) */ |
| r26119 | r26120 | |
| 979 | 1089 | return; |
| 980 | 1090 | } |
| 981 | 1091 | |
| 982 | | bits = d->bits[d->page]; |
| 1092 | UINT32 *bits = d->bits[d->page]; |
| 983 | 1093 | if (!bits) { |
| 984 | 1094 | /* expand the sector to bits */ |
| 985 | 1095 | expand_sector(unit, d->page); |
| r26119 | r26120 | |
| 1013 | 1123 | */ |
| 1014 | 1124 | int alto2_cpu_device::drive_rddata(int unit, int index) |
| 1015 | 1125 | { |
| 1016 | | diablo_drive_t *d = m_drive[unit]; |
| 1017 | | UINT32 *bits; |
| 1018 | 1126 | int bit = 0; |
| 1019 | 1127 | |
| 1128 | /* uninitialized drive? */ |
| 1129 | diablo_drive_t *d = m_drive[unit]; |
| 1130 | if (!d) |
| 1131 | return bit; |
| 1132 | |
| 1020 | 1133 | if (d->rdgate_0) { |
| 1021 | 1134 | /* read gate is not asserted (active 0) */ |
| 1022 | 1135 | return 0; |
| r26119 | r26120 | |
| 1035 | 1148 | return 1; |
| 1036 | 1149 | } |
| 1037 | 1150 | |
| 1038 | | bits = d->bits[d->page]; |
| 1151 | UINT32 *bits = d->bits[d->page]; |
| 1039 | 1152 | if (!bits) { |
| 1040 | 1153 | /* expand the sector to bits */ |
| 1041 | 1154 | expand_sector(unit, d->page); |
| r26119 | r26120 | |
| 1065 | 1178 | */ |
| 1066 | 1179 | int alto2_cpu_device::drive_rdclk(int unit, int index) |
| 1067 | 1180 | { |
| 1068 | | diablo_drive_t *d = m_drive[unit]; |
| 1069 | | UINT32 *bits; |
| 1070 | | int clk; |
| 1181 | int clk = 0; |
| 1071 | 1182 | |
| 1072 | 1183 | /* don't read before or beyond the sector */ |
| 1073 | 1184 | if (index < 0 || index >= drive_bits_per_sector()) |
| 1074 | 1185 | return 1; |
| 1075 | 1186 | |
| 1187 | /* uninitialized drive? */ |
| 1188 | diablo_drive_t *d = m_drive[unit]; |
| 1189 | if (!d) |
| 1190 | return clk; |
| 1191 | |
| 1076 | 1192 | /* no clock while sector mark is low (?) */ |
| 1077 | 1193 | if (0 == d->sector_mark_0) |
| 1078 | 1194 | return 1; |
| r26119 | r26120 | |
| 1082 | 1198 | return 1; |
| 1083 | 1199 | } |
| 1084 | 1200 | |
| 1085 | | bits = d->bits[d->page]; |
| 1201 | UINT32 *bits = d->bits[d->page]; |
| 1086 | 1202 | if (!bits) { |
| 1087 | 1203 | /* expand the sector to bits */ |
| 1088 | 1204 | expand_sector(unit, d->page); |
| r26119 | r26120 | |
| 1114 | 1230 | */ |
| 1115 | 1231 | int alto2_cpu_device::debug_read_sync(int unit, int page, int offs) |
| 1116 | 1232 | { |
| 1117 | | diablo_drive_t *d = m_drive[unit]; |
| 1118 | | UINT32 *bits; |
| 1119 | | |
| 1120 | 1233 | if (unit < 0 || unit > 1) |
| 1121 | 1234 | return 0; |
| 1122 | 1235 | |
| r26119 | r26120 | |
| 1128 | 1241 | if (page < 0 || page >= DIABLO_DRIVE_CYLINDERS * DIABLO_DRIVE_HEADS * DIABLO_DRIVE_SPT) |
| 1129 | 1242 | return 0; |
| 1130 | 1243 | |
| 1131 | | bits = d->bits[page]; |
| 1244 | /* uninitialized drive? */ |
| 1245 | diablo_drive_t *d = m_drive[unit]; |
| 1246 | if (!d) |
| 1247 | return 0; |
| 1248 | |
| 1249 | UINT32 *bits = d->bits[page]; |
| 1132 | 1250 | if (!bits) { |
| 1133 | 1251 | /* expand the sector to bits */ |
| 1134 | 1252 | expand_sector(unit, page); |
| r26119 | r26120 | |
| 1160 | 1278 | */ |
| 1161 | 1279 | int alto2_cpu_device::debug_read_sec(int unit, int page, int offs) |
| 1162 | 1280 | { |
| 1163 | | diablo_drive_t *d = m_drive[unit]; |
| 1164 | | UINT32 *bits; |
| 1165 | 1281 | int i, clks, word; |
| 1166 | 1282 | |
| 1167 | 1283 | if (unit < 0 || unit > 1) |
| r26119 | r26120 | |
| 1175 | 1291 | if (page < 0 || page >= DIABLO_DRIVE_CYLINDERS * DIABLO_DRIVE_HEADS * DIABLO_DRIVE_SPT) |
| 1176 | 1292 | return 0177777; |
| 1177 | 1293 | |
| 1178 | | bits = d->bits[page]; |
| 1294 | /* uninitialized drive? */ |
| 1295 | diablo_drive_t *d = m_drive[unit]; |
| 1296 | if (!d) |
| 1297 | return 0; |
| 1298 | |
| 1299 | UINT32 *bits = d->bits[page]; |
| 1179 | 1300 | if (!bits) { |
| 1180 | 1301 | /* expand the sector to bits */ |
| 1181 | 1302 | expand_sector(unit, page); |
| r26119 | r26120 | |
| 1206 | 1327 | { |
| 1207 | 1328 | (void)ptr; |
| 1208 | 1329 | int unit = m_unit_selected; |
| 1209 | | diablo_drive_t *d = m_drive[unit]; |
| 1210 | 1330 | |
| 1211 | | LOG((LOG_DRIVE,5, " next sector (unit #%d sector %d)\n", unit, d->sector)); |
| 1212 | | (void)d; |
| 1213 | | |
| 1214 | 1331 | switch (arg) { |
| 1215 | 1332 | case 0: |
| 1216 | 1333 | m_sector_timer->adjust(DIABLO_SECTOR_MARK_PULSE_PRE, 1); |
| r26119 | r26120 | |
| 1238 | 1355 | */ |
| 1239 | 1356 | void alto2_cpu_device::sector_mark_1(int unit) |
| 1240 | 1357 | { |
| 1358 | /* uninitialized drive? */ |
| 1241 | 1359 | diablo_drive_t *d = m_drive[unit]; |
| 1360 | if (!d) |
| 1361 | return; |
| 1242 | 1362 | |
| 1243 | 1363 | LOG((LOG_DRIVE,5, " sector mark 1 (unit #%d sector %d)\n", unit, d->sector)); |
| 1244 | 1364 | /* set sector mark to 1 */ |
| r26119 | r26120 | |
| 1252 | 1372 | */ |
| 1253 | 1373 | void alto2_cpu_device::sector_mark_0(int unit) |
| 1254 | 1374 | { |
| 1375 | /* uninitialized drive? */ |
| 1255 | 1376 | diablo_drive_t *d = m_drive[unit]; |
| 1377 | if (!d) |
| 1378 | return; |
| 1256 | 1379 | |
| 1257 | 1380 | LOG((LOG_DRIVE,5," sector mark 0 (unit #%d sector %d)\n", unit, d->sector)); |
| 1258 | 1381 | |