Previous 199869 Revisions Next

r29542 Friday 11th April, 2014 at 21:11:14 UTC by Angelo Salese
More improvements, Arthur now boots without hacks.
[src/mame/machine]archimds.c
[src/mess/drivers]a310.c

trunk/src/mess/drivers/a310.c
r29541r29542
9898
9999WRITE_LINE_MEMBER(a310_state::a310_wd177x_intrq_w)
100100{
101   printf("%d IRQ\n",state);
101102   if (state)
102103      archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY);
103104   else
r29541r29542
106107
107108WRITE_LINE_MEMBER(a310_state::a310_wd177x_drq_w)
108109{
110   printf("%d DRQ\n",state);
109111   if (state)
110112      archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ);
111113   else
r29541r29542
359361   MCFG_RAM_DEFAULT_SIZE("2M")
360362   MCFG_RAM_EXTRA_OPTIONS("512K, 1M, 4M, 8M, 16M")
361363
362   MCFG_WD1772x_ADD("fdc", 8000000 / 2)
364   MCFG_WD1772x_ADD("fdc", 8000000 / 1) // TODO: frequency
363365   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE( a310_state, a310_wd177x_intrq_w))
364366   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(a310_state, a310_wd177x_drq_w))
365367   MCFG_FLOPPY_DRIVE_ADD("fdc:0", a310_floppies, "35dd", a310_state::floppy_formats)
trunk/src/mame/machine/archimds.c
r29541r29542
688688               if (m_fdc)
689689               {
690690                  //printf("17XX: R @ addr %x mask %08x\n", offset*4, mem_mask);
691
692691                  switch(ioc_addr & 0xc)
693692                  {
694693                     case 0x00: return m_fdc->status_r();
r29541r29542
805804                     case 0x40: // latch A
806805                        floppy_image_device *floppy = NULL;
807806
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
812811
813812                        m_fdc->set_floppy(floppy);
814813
815814                        if(floppy)
816815                        {
817816                           floppy->mon_w(BIT(data, 5));
818                           floppy->ss_w(BIT(data, 4));
817                           floppy->ss_w(!(BIT(data, 4)));
819818                        }
820819                        //bit 5 is motor on
821820                        return;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team