Previous 199869 Revisions Next

r24627 Thursday 1st August, 2013 at 10:54:25 UTC by Curt Coder
(MESS) cbmiec: Restored some usability. (nw)
[src/mess/drivers]c128.c c64.c
[src/mess/machine]c1541.c c1571.c c1581.c cbmiec.c cbmiec.h cbmipt.h cmdhd.c fd2000.c interpod.c serialbox.c

trunk/src/mess/drivers/c128.c
r24626r24627
14981498//-------------------------------------------------
14991499
15001500static MACHINE_CONFIG_DERIVED( c128dcr, ntsc )
1501   MCFG_CBM_IEC_SLOT_ADD("iec", c128dcr_iec_devices, "c1571") // TODO c1571cr
1502   MCFG_CBM_IEC_BUS_ADD()
1501   MCFG_CBM_IEC_ADD("c1571") // TODO c1571cr
15031502   MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(c128_state, iec_srq_w))
15041503   MCFG_CBM_IEC_BUS_DATA_CALLBACK(WRITELINE(c128_state, iec_data_w))
15051504MACHINE_CONFIG_END
r24626r24627
15101509//-------------------------------------------------
15111510
15121511static MACHINE_CONFIG_DERIVED( c128d81, ntsc )
1513   MCFG_CBM_IEC_SLOT_ADD("iec", c128d81_iec_devices, "c1563")
1514   MCFG_CBM_IEC_BUS_ADD()
1512   MCFG_CBM_IEC_ADD(NULL)
15151513   MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(c128_state, iec_srq_w))
15161514   MCFG_CBM_IEC_BUS_DATA_CALLBACK(WRITELINE(c128_state, iec_data_w))
1515
1516   MCFG_DEVICE_MODIFY("iec8")
1517   MCFG_DEVICE_SLOT_INTERFACE(c128d81_iec_devices, "c1563", false)
15171518MACHINE_CONFIG_END
15181519
15191520
r24626r24627
16131614//-------------------------------------------------
16141615
16151616static MACHINE_CONFIG_DERIVED( c128dcrp, pal )
1616   MCFG_CBM_IEC_SLOT_ADD("iec", c128dcr_iec_devices, "c1571") // TODO c1571cr
1617   MCFG_CBM_IEC_BUS_ADD()
1617   MCFG_CBM_IEC_ADD("c1571") // TODO c1571cr
16181618   MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(c128_state, iec_srq_w))
16191619   MCFG_CBM_IEC_BUS_DATA_CALLBACK(WRITELINE(c128_state, iec_data_w))
16201620MACHINE_CONFIG_END
trunk/src/mess/drivers/c64.c
r24626r24627
11301130   MCFG_M6510_PORT_PULLS(0x07, 0xc0)
11311131
11321132   // devices
1133   MCFG_DEVICE_REMOVE("iec")
1134   MCFG_CBM_IEC_SLOT_ADD("iec", sx1541_iec_devices, "sx1541")
1133   MCFG_DEVICE_MODIFY("iec8")
1134   MCFG_DEVICE_SLOT_INTERFACE(sx1541_iec_devices, "sx1541", false)
11351135MACHINE_CONFIG_END
11361136
11371137
r24626r24627
11431143   MCFG_FRAGMENT_ADD(ntsc_sx)
11441144
11451145   // devices
1146   //MCFG_CBM_IEC_SLOT_ADD("iec", sx1541_iec_devices, "sx1541")
1146   MCFG_DEVICE_MODIFY("iec9")
1147   MCFG_DEVICE_SLOT_INTERFACE(sx1541_iec_devices, "sx1541", false)
11471148MACHINE_CONFIG_END
11481149
11491150
r24626r24627
12331234   MCFG_M6510_PORT_PULLS(0x07, 0xc0)
12341235
12351236   // devices
1236   MCFG_DEVICE_REMOVE("iec")
1237   MCFG_CBM_IEC_SLOT_ADD("iec", sx1541_iec_devices, "sx1541")
1237   MCFG_DEVICE_MODIFY("iec8")
1238   MCFG_DEVICE_SLOT_INTERFACE(sx1541_iec_devices, "sx1541", false)
12381239MACHINE_CONFIG_END
12391240
12401241
trunk/src/mess/machine/fd2000.c
r24626r24627
244244   MCFG_DP8473_ADD(DP8473V_TAG)
245245
246246   MCFG_FLOPPY_DRIVE_ADD(DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
247
248   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
249247MACHINE_CONFIG_END
250248
251249
r24626r24627
261259   MCFG_PC8477A_ADD(PC8477AV1_TAG)
262260
263261   MCFG_FLOPPY_DRIVE_ADD(PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
264
265   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
266262MACHINE_CONFIG_END
267263
268264
trunk/src/mess/machine/c1541.c
r24626r24627
555555   data |= !m_bus->clk_r() << 2;
556556
557557   // serial bus address
558   data |= (m_address->read() & 0x03) << 5;
558   data |= ((m_slot->get_address() - 8) & 0x03) << 5;
559559
560560   // attention in
561561   data |= !m_bus->atn_r() << 7;
r24626r24627
884884
885885   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface)
886886   MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
887
888   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
889887MACHINE_CONFIG_END
890888
891889
trunk/src/mess/machine/interpod.c
r24626r24627
186186   MCFG_RIOT6532_ADD(R6532_TAG, 1000000, riot_intf)
187187   MCFG_ACIA6850_ADD(MC6850_TAG, acia_intf)
188188
189   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
190189   MCFG_CBM_IEEE488_ADD(NULL)
191190MACHINE_CONFIG_END
192191
trunk/src/mess/machine/c1571.c
r24626r24627
319319   data |= !m_bus->clk_r() << 2;
320320
321321   // serial bus address
322   data |= (m_address->read() & 0x03) << 5;
322   data |= ((m_slot->get_address() - 8) & 0x03) << 5;
323323
324324   // attention in
325325   data |= !m_bus->atn_r() << 7;
r24626r24627
753753   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1570_floppy_interface)
754754   //MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", c1570_floppies, "525ssdd", 0, c1571_device::floppy_formats)
755755   MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
756
757   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
758756MACHINE_CONFIG_END
759757
760758
r24626r24627
788786   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1571_floppy_interface)
789787   //MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", c1571_floppies, "525dd", 0, c1571_device::floppy_formats)
790788   MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
791
792   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
793789MACHINE_CONFIG_END
794790
795791
r24626r24627
823819   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1571_floppy_interface)
824820   //MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", c1571_floppies, "525dd", 0, c1571_device::floppy_formats)
825821   MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
826
827   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
828822MACHINE_CONFIG_END
829823
830824
r24626r24627
861855
862856   MCFG_ISA8_BUS_ADD(ISA_BUS_TAG, M6502_TAG, isabus_intf)
863857   MCFG_ISA8_SLOT_ADD(ISA_BUS_TAG, "isa1", mini_chief_isa8_cards, "wd1002a_wx1", false)
864
865   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
866858MACHINE_CONFIG_END
867859
868860
trunk/src/mess/machine/c1581.c
r24626r24627
140140   //data |= !m_floppy->ready_r() << 1;
141141
142142   // device number
143   data |= (m_address->read() & 0x03) << 3;
143   data |= ((m_slot->get_address() - 8) & 0x03) << 3;
144144
145145   // disk change
146146   data |= m_floppy->dskchg_r() << 7;
r24626r24627
278278
279279   MCFG_WD1772x_ADD(WD1772_TAG, XTAL_16MHz/2)
280280   MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats)
281
282   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
283281MACHINE_CONFIG_END
284282
285283
trunk/src/mess/machine/cmdhd.c
r24626r24627
150150   MCFG_SCSIBUS_ADD(SCSIBUS_TAG)
151151   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
152152   MCFG_SCSICB_ADD(SCSIBUS_TAG ":host")
153
154   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
155153MACHINE_CONFIG_END
156154
157155
trunk/src/mess/machine/cbmiec.c
r24626r24627
259259
260260void cbm_iec_slot_device::device_start()
261261{
262   m_bus = machine().device<cbm_iec_device>(CBM_IEC_TAG);
262   cbm_iec_device* bus = NULL;
263
264   for (device_t *device = owner(); device != NULL; device = device->owner())
265   {
266      bus = device->subdevice<cbm_iec_device>(CBM_IEC_TAG);
267      if (bus != NULL) break;
268   }
269
270   assert(bus);
271
263272   device_cbm_iec_interface *dev = dynamic_cast<device_cbm_iec_interface *>(get_card_device());
264   if (dev) m_bus->add_device(get_card_device());
273   if (dev) bus->add_device(this, get_card_device());
265274}
266275
267276
r24626r24627
329338//  add_device -
330339//-------------------------------------------------
331340
332void cbm_iec_device::add_device(device_t *target)
341void cbm_iec_device::add_device(cbm_iec_slot_device *slot, device_t *target)
333342{
334343   daisy_entry *entry = auto_alloc(machine(), daisy_entry(target));
335344
345   entry->m_interface->m_slot = slot;
336346   entry->m_interface->m_bus = this;
337347
338348   m_device_list.append(*entry);
trunk/src/mess/machine/cbmiec.h
r24626r24627
4848   downcast<cbm_iec_device *>(device)->set_reset_callback(DEVCB2_##_write);
4949
5050
51#define MCFG_CBM_IEC_SLOT_ADD(_tag, _slot_intf, _def_slot) \
51#define MCFG_CBM_IEC_SLOT_ADD(_tag, _address, _slot_intf, _def_slot) \
5252   MCFG_DEVICE_ADD(_tag, CBM_IEC_SLOT, 0) \
53   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
53   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
54   downcast<cbm_iec_slot_device *>(device)->set_address(_address);
5455
5556
5657
r24626r24627
6061
6162// ======================> cbm_iec_device
6263
64class cbm_iec_slot_device;
6365class device_cbm_iec_interface;
6466
6567class cbm_iec_device : public device_t
r24626r24627
7476   template<class _write> void set_data_callback(_write wr) { m_write_data.set_callback(wr); }
7577   template<class _write> void set_reset_callback(_write wr) { m_write_reset.set_callback(wr); }
7678
77   void add_device(device_t *target);
79   void add_device(cbm_iec_slot_device *slot, device_t *target);
7880
7981   // reads for both host and peripherals
8082   DECLARE_READ_LINE_MEMBER( srq_r ) { return get_signal(SRQ); }
r24626r24627
151153   // construction/destruction
152154   cbm_iec_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
153155
156   void set_address(int address) { m_address = address; }
157   int get_address() { return m_address; }
158
154159   // device-level overrides
155160   virtual void device_start();
156161
157private:
158   // configuration
159   cbm_iec_device  *m_bus;
162protected:
163   int m_address;
160164};
161165
162166
r24626r24627
181185   virtual void cbm_iec_data(int state) { };
182186   virtual void cbm_iec_reset(int state) { };
183187
184   cbm_iec_device  *m_bus;
188   cbm_iec_device *m_bus;
189   cbm_iec_slot_device *m_slot;
185190};
186191
187192
trunk/src/mess/machine/cbmipt.h
r24626r24627
110110
111111
112112#define MCFG_CBM_IEC_ADD(_default_drive) \
113   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, _default_drive) \
113   MCFG_CBM_IEC_SLOT_ADD("iec4", 4, cbm_iec_devices, NULL) \
114   MCFG_CBM_IEC_SLOT_ADD("iec8", 8, cbm_iec_devices, _default_drive) \
115   MCFG_CBM_IEC_SLOT_ADD("iec9", 9, cbm_iec_devices, NULL) \
116   MCFG_CBM_IEC_SLOT_ADD("iec10", 10, cbm_iec_devices, NULL) \
117   MCFG_CBM_IEC_SLOT_ADD("iec11", 11, cbm_iec_devices, NULL) \
114118   MCFG_CBM_IEC_BUS_ADD()
115119
116120
trunk/src/mess/machine/serialbox.c
r24626r24627
7171static MACHINE_CONFIG_FRAGMENT( serial_box )
7272   MCFG_CPU_ADD(M6502_TAG, M65C02, XTAL_4MHz/4)
7373   MCFG_CPU_PROGRAM_MAP(serial_box_mem)
74
75   MCFG_CBM_IEC_SLOT_ADD("iec", cbm_iec_devices, NULL)
7674MACHINE_CONFIG_END
7775
7876

Previous 199869 Revisions Next


© 1997-2024 The MAME Team