trunk/src/mess/drivers/pet.c
| r24604 | r24605 | |
| 1827 | 1827 | MCFG_DEVICE_MODIFY(MC6845_TAG) |
| 1828 | 1828 | MCFG_DEVICE_CONFIG(cbm8296_crtc_intf) |
| 1829 | 1829 | |
| 1830 | | MCFG_DEVICE_REMOVE("ieee") |
| 1831 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, "c8250") |
| 1830 | MCFG_DEVICE_MODIFY("ieee8") |
| 1831 | MCFG_DEVICE_SLOT_INTERFACE(cbm_ieee488_devices, "c8250", false) |
| 1832 | 1832 | |
| 1833 | 1833 | MCFG_RAM_ADD(RAM_TAG) |
| 1834 | 1834 | MCFG_RAM_DEFAULT_SIZE("128K") |
| r24604 | r24605 | |
| 1842 | 1842 | //------------------------------------------------- |
| 1843 | 1843 | |
| 1844 | 1844 | static MACHINE_CONFIG_DERIVED( cbm8296d, cbm8296 ) |
| 1845 | | MCFG_DEVICE_REMOVE("ieee") |
| 1846 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm8296d_ieee488_devices, "c8250lp") |
| 1845 | MCFG_DEVICE_MODIFY("ieee8") |
| 1846 | MCFG_DEVICE_SLOT_INTERFACE(cbm8296d_ieee488_devices, "c8250lp", false) |
| 1847 | 1847 | MACHINE_CONFIG_END |
| 1848 | 1848 | |
| 1849 | 1849 | |
trunk/src/mess/machine/hardbox.c
| r24604 | r24605 | |
| 19 | 19 | Start the pet8032 emulator with the HardBox attached as device 9, |
| 20 | 20 | with the new CHD and the utilities floppy mounted: |
| 21 | 21 | |
| 22 | | $ mess pet8032 -ieee:c8050:ieee hardbox \ |
| 22 | $ mess pet8032 -ieee9 hardbox \ |
| 23 | 23 | -hard1 /path/to/corvus20mb.chd \ |
| 24 | 24 | -flop1 /path/to/hardbox-utils.d80 |
| 25 | 25 | |
| r24604 | r24605 | |
| 132 | 132 | m_bus->dio_w(this, data ^ 0xff); |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | READ8_MEMBER( hardbox_device::ppi0_pc_r ) |
| 136 | { |
| 137 | UINT8 data = ioport("SW1")->read(); |
| 138 | |
| 139 | /* DIP switches on PC1,PC2,PC3 configure the IEEE-488 primary address. |
| 140 | We get the address from m_address instead. */ |
| 141 | data |= ((m_slot->get_address() - 8) << 1) ^ 0xff; |
| 142 | |
| 143 | return data; |
| 144 | } |
| 145 | |
| 135 | 146 | static I8255A_INTERFACE( ppi0_intf ) |
| 136 | 147 | { |
| 137 | 148 | DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pa_r), |
| 138 | 149 | DEVCB_NULL, // Port A write |
| 139 | 150 | DEVCB_NULL, // Port B read |
| 140 | 151 | DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pb_w), |
| 141 | | DEVCB_INPUT_PORT("SW1"), // Port C read |
| 152 | DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pc_r), |
| 142 | 153 | DEVCB_NULL // Port C write |
| 143 | 154 | }; |
| 144 | 155 | |
| r24604 | r24605 | |
| 283 | 294 | MCFG_HARDDISK_ADD("harddisk2") |
| 284 | 295 | MCFG_HARDDISK_ADD("harddisk3") |
| 285 | 296 | MCFG_HARDDISK_ADD("harddisk4") |
| 286 | | |
| 287 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 288 | 297 | MACHINE_CONFIG_END |
| 289 | 298 | |
| 290 | 299 | |
trunk/src/mess/machine/c2031.c
| r24604 | r24605 | |
| 358 | 358 | |
| 359 | 359 | MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface) |
| 360 | 360 | MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf) |
| 361 | | |
| 362 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 363 | 361 | MACHINE_CONFIG_END |
| 364 | 362 | |
| 365 | 363 | |
| r24604 | r24605 | |
| 411 | 409 | { |
| 412 | 410 | int state = 1; |
| 413 | 411 | |
| 414 | | switch (m_address->read() & 0x03) |
| 412 | switch ((m_slot->get_address() - 8) & 0x03) |
| 415 | 413 | { |
| 416 | 414 | case 0: state = (m_atna && m_nrfd_out); break; |
| 417 | 415 | case 1: state = m_nrfd_out; break; |
trunk/src/mess/machine/c2040.c
| r24604 | r24605 | |
| 516 | 516 | UINT8 data = 0; |
| 517 | 517 | |
| 518 | 518 | // device number selection |
| 519 | | data |= m_address->read() & 0x07; |
| 519 | data |= m_slot->get_address() - 8; |
| 520 | 520 | |
| 521 | 521 | // data accepted in |
| 522 | 522 | data |= m_bus->ndac_r() << 6; |
| r24604 | r24605 | |
| 1099 | 1099 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_16MHz/16, miot_intf) |
| 1100 | 1100 | |
| 1101 | 1101 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c2040_floppy_interface) |
| 1102 | | |
| 1103 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1104 | 1102 | MACHINE_CONFIG_END |
| 1105 | 1103 | |
| 1106 | 1104 | |
| r24604 | r24605 | |
| 1135 | 1133 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_16MHz/16, miot_intf) |
| 1136 | 1134 | |
| 1137 | 1135 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c4040_floppy_interface) |
| 1138 | | |
| 1139 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1140 | 1136 | MACHINE_CONFIG_END |
| 1141 | 1137 | |
| 1142 | 1138 | |
| r24604 | r24605 | |
| 1171 | 1167 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf) |
| 1172 | 1168 | |
| 1173 | 1169 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8050_floppy_interface) |
| 1174 | | |
| 1175 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1176 | 1170 | MACHINE_CONFIG_END |
| 1177 | 1171 | |
| 1178 | 1172 | |
| r24604 | r24605 | |
| 1207 | 1201 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf) |
| 1208 | 1202 | |
| 1209 | 1203 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8250_floppy_interface) |
| 1210 | | |
| 1211 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1212 | 1204 | MACHINE_CONFIG_END |
| 1213 | 1205 | |
| 1214 | 1206 | |
| r24604 | r24605 | |
| 1243 | 1235 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf) |
| 1244 | 1236 | |
| 1245 | 1237 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8250_floppy_interface) |
| 1246 | | |
| 1247 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1248 | 1238 | MACHINE_CONFIG_END |
| 1249 | 1239 | |
| 1250 | 1240 | |
| r24604 | r24605 | |
| 1279 | 1269 | MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf) |
| 1280 | 1270 | |
| 1281 | 1271 | MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c8250_floppy_interface) |
| 1282 | | |
| 1283 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 1284 | 1272 | MACHINE_CONFIG_END |
| 1285 | 1273 | |
| 1286 | 1274 | |
trunk/src/mess/machine/cbmipt.h
| r24604 | r24605 | |
| 115 | 115 | |
| 116 | 116 | |
| 117 | 117 | #define MCFG_CBM_IEEE488_ADD(_default_drive) \ |
| 118 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, _default_drive) \ |
| 118 | MCFG_IEEE488_SLOT_ADD("ieee4", 4, cbm_ieee488_devices, NULL) \ |
| 119 | MCFG_IEEE488_SLOT_ADD("ieee8", 8, cbm_ieee488_devices, _default_drive) \ |
| 120 | MCFG_IEEE488_SLOT_ADD("ieee9", 9, cbm_ieee488_devices, NULL) \ |
| 121 | MCFG_IEEE488_SLOT_ADD("ieee10", 10, cbm_ieee488_devices, NULL) \ |
| 122 | MCFG_IEEE488_SLOT_ADD("ieee11", 11, cbm_ieee488_devices, NULL) \ |
| 123 | MCFG_IEEE488_SLOT_ADD("ieee12", 12, cbm_ieee488_devices, NULL) \ |
| 124 | MCFG_IEEE488_SLOT_ADD("ieee13", 13, cbm_ieee488_devices, NULL) \ |
| 125 | MCFG_IEEE488_SLOT_ADD("ieee14", 14, cbm_ieee488_devices, NULL) \ |
| 126 | MCFG_IEEE488_SLOT_ADD("ieee15", 15, cbm_ieee488_devices, NULL) \ |
| 119 | 127 | MCFG_IEEE488_BUS_ADD() |
| 120 | 128 | |
| 121 | 129 | |
trunk/src/mess/machine/d9060.c
| r24604 | r24605 | |
| 267 | 267 | UINT8 data = 0; |
| 268 | 268 | |
| 269 | 269 | // device number selection |
| 270 | | data |= m_address->read() & 0x07; |
| 270 | data |= m_slot->get_address() - 8; |
| 271 | 271 | |
| 272 | 272 | // data accepted in |
| 273 | 273 | data |= m_bus->ndac_r() << 6; |
| r24604 | r24605 | |
| 446 | 446 | MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", D9060HD, SCSI_ID_0) |
| 447 | 447 | MCFG_SCSICB_ADD(SASIBUS_TAG ":host") |
| 448 | 448 | MCFG_SCSICB_REQ_HANDLER(DEVWRITELINE(DEVICE_SELF_OWNER, base_d9060_device, req_w)) |
| 449 | | |
| 450 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 451 | 449 | MACHINE_CONFIG_END |
| 452 | 450 | |
| 453 | 451 | |
trunk/src/mess/machine/ieee488.c
| r24604 | r24605 | |
| 88 | 88 | assert(bus); |
| 89 | 89 | |
| 90 | 90 | device_ieee488_interface *dev = dynamic_cast<device_ieee488_interface *>(get_card_device()); |
| 91 | | if (dev) bus->add_device(get_card_device()); |
| 91 | if (dev) bus->add_device(this, get_card_device()); |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | 94 | |
| r24604 | r24605 | |
| 152 | 152 | // add_device - |
| 153 | 153 | //------------------------------------------------- |
| 154 | 154 | |
| 155 | | void ieee488_device::add_device(device_t *target) |
| 155 | void ieee488_device::add_device(ieee488_slot_device *slot, device_t *target) |
| 156 | 156 | { |
| 157 | 157 | daisy_entry *entry = auto_alloc(machine(), daisy_entry(target)); |
| 158 | 158 | |
| 159 | 159 | entry->m_interface->m_bus = this; |
| 160 | entry->m_interface->m_slot = slot; |
| 160 | 161 | |
| 161 | 162 | m_device_list.append(*entry); |
| 162 | 163 | } |
trunk/src/mess/machine/ieee488.h
| r24604 | r24605 | |
| 58 | 58 | downcast<ieee488_device *>(device)->set_ren_callback(DEVCB2_##_write); |
| 59 | 59 | |
| 60 | 60 | |
| 61 | | #define MCFG_IEEE488_SLOT_ADD(_tag, _slot_intf, _def_slot) \ |
| 61 | #define MCFG_IEEE488_SLOT_ADD(_tag, _address, _slot_intf, _def_slot) \ |
| 62 | 62 | MCFG_DEVICE_ADD(_tag, IEEE488_SLOT, 0) \ |
| 63 | | MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) |
| 63 | MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ |
| 64 | downcast<ieee488_slot_device *>(device)->set_address(_address); |
| 64 | 65 | |
| 65 | 66 | |
| 66 | 67 | |
| r24604 | r24605 | |
| 70 | 71 | |
| 71 | 72 | // ======================> ieee488_device |
| 72 | 73 | |
| 74 | class ieee488_slot_device; |
| 73 | 75 | class device_ieee488_interface; |
| 74 | 76 | |
| 75 | 77 | class ieee488_device : public device_t |
| r24604 | r24605 | |
| 87 | 89 | template<class _write> void set_atn_callback(_write wr) { m_write_atn.set_callback(wr); } |
| 88 | 90 | template<class _write> void set_ren_callback(_write wr) { m_write_ren.set_callback(wr); } |
| 89 | 91 | |
| 90 | | void add_device(device_t *target); |
| 92 | void add_device(ieee488_slot_device *slot, device_t *target); |
| 91 | 93 | |
| 92 | 94 | // reads for both host and peripherals |
| 93 | 95 | UINT8 dio_r() { return get_data(); } |
| r24604 | r24605 | |
| 187 | 189 | // construction/destruction |
| 188 | 190 | ieee488_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 189 | 191 | |
| 192 | void set_address(int address) { m_address = address; } |
| 193 | int get_address() { return m_address; } |
| 194 | |
| 190 | 195 | // device-level overrides |
| 191 | 196 | virtual void device_start(); |
| 197 | |
| 198 | protected: |
| 199 | int m_address; |
| 192 | 200 | }; |
| 193 | 201 | |
| 194 | 202 | |
| r24604 | r24605 | |
| 216 | 224 | virtual void ieee488_atn(int state) { }; |
| 217 | 225 | virtual void ieee488_ren(int state) { }; |
| 218 | 226 | |
| 219 | | ieee488_device *m_bus; |
| 227 | ieee488_device *m_bus; |
| 228 | ieee488_slot_device *m_slot; |
| 220 | 229 | }; |
| 221 | 230 | |
| 222 | 231 | |
trunk/src/mess/machine/c8280.c
| r24604 | r24605 | |
| 257 | 257 | UINT8 data = 0; |
| 258 | 258 | |
| 259 | 259 | // device number selection |
| 260 | | data |= m_address->read() & 0x07; |
| 260 | data |= m_slot->get_address() - 8; |
| 261 | 261 | |
| 262 | 262 | // data accepted in |
| 263 | 263 | data |= m_bus->ndac_r() << 6; |
| r24604 | r24605 | |
| 342 | 342 | MCFG_FD1797x_ADD(WD1797_TAG, XTAL_12MHz/6) // clock? |
| 343 | 343 | MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG":0", c8280_floppies, "8dsdd", floppy_image_device::default_floppy_formats) |
| 344 | 344 | MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG":1", c8280_floppies, "8dsdd", floppy_image_device::default_floppy_formats) |
| 345 | | |
| 346 | | MCFG_IEEE488_SLOT_ADD("ieee", cbm_ieee488_devices, NULL) |
| 347 | 345 | MACHINE_CONFIG_END |
| 348 | 346 | |
| 349 | 347 | |