trunk/src/mess/drivers/a310.c
| r29541 | r29542 | |
| 98 | 98 | |
| 99 | 99 | WRITE_LINE_MEMBER(a310_state::a310_wd177x_intrq_w) |
| 100 | 100 | { |
| 101 | printf("%d IRQ\n",state); |
| 101 | 102 | if (state) |
| 102 | 103 | archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY); |
| 103 | 104 | else |
| r29541 | r29542 | |
| 106 | 107 | |
| 107 | 108 | WRITE_LINE_MEMBER(a310_state::a310_wd177x_drq_w) |
| 108 | 109 | { |
| 110 | printf("%d DRQ\n",state); |
| 109 | 111 | if (state) |
| 110 | 112 | archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ); |
| 111 | 113 | else |
| r29541 | r29542 | |
| 359 | 361 | MCFG_RAM_DEFAULT_SIZE("2M") |
| 360 | 362 | MCFG_RAM_EXTRA_OPTIONS("512K, 1M, 4M, 8M, 16M") |
| 361 | 363 | |
| 362 | | MCFG_WD1772x_ADD("fdc", 8000000 / 2) |
| 364 | MCFG_WD1772x_ADD("fdc", 8000000 / 1) // TODO: frequency |
| 363 | 365 | MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE( a310_state, a310_wd177x_intrq_w)) |
| 364 | 366 | MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(a310_state, a310_wd177x_drq_w)) |
| 365 | 367 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", a310_floppies, "35dd", a310_state::floppy_formats) |
trunk/src/mame/machine/archimds.c
| r29541 | r29542 | |
| 688 | 688 | if (m_fdc) |
| 689 | 689 | { |
| 690 | 690 | //printf("17XX: R @ addr %x mask %08x\n", offset*4, mem_mask); |
| 691 | | |
| 692 | 691 | switch(ioc_addr & 0xc) |
| 693 | 692 | { |
| 694 | 693 | case 0x00: return m_fdc->status_r(); |
| r29541 | r29542 | |
| 805 | 804 | case 0x40: // latch A |
| 806 | 805 | floppy_image_device *floppy = NULL; |
| 807 | 806 | |
| 808 | | if (data & 1) { floppy = m_floppy0->get_device(); } |
| 809 | | if (data & 2) { floppy = m_floppy1->get_device(); } |
| 810 | | if (data & 4) { floppy = NULL; } // floppy 2 |
| 811 | | if (data & 8) { floppy = NULL; } // floppy 3 |
| 807 | if (!(data & 1)) { floppy = m_floppy0->get_device(); } |
| 808 | if (!(data & 2)) { floppy = m_floppy1->get_device(); } |
| 809 | if (!(data & 4)) { floppy = NULL; } // floppy 2 |
| 810 | if (!(data & 8)) { floppy = NULL; } // floppy 3 |
| 812 | 811 | |
| 813 | 812 | m_fdc->set_floppy(floppy); |
| 814 | 813 | |
| 815 | 814 | if(floppy) |
| 816 | 815 | { |
| 817 | 816 | floppy->mon_w(BIT(data, 5)); |
| 818 | | floppy->ss_w(BIT(data, 4)); |
| 817 | floppy->ss_w(!(BIT(data, 4))); |
| 819 | 818 | } |
| 820 | 819 | //bit 5 is motor on |
| 821 | 820 | return; |