trunk/src/mess/drivers/altos5.c
| r23512 | r23513 | |
| 12 | 12 | #include "machine/z80dart.h" |
| 13 | 13 | #include "machine/z80dma.h" |
| 14 | 14 | #include "machine/serial.h" |
| 15 | #include "machine/wd_fdc.h" |
| 15 | 16 | |
| 16 | 17 | |
| 17 | 18 | class altos5_state : public driver_device |
| r23512 | r23513 | |
| 24 | 25 | m_pio1(*this, "z80pio_1"), |
| 25 | 26 | m_dart(*this, "z80dart"), |
| 26 | 27 | m_sio (*this, "z80sio"), |
| 27 | | m_ctc (*this, "z80ctc") |
| 28 | m_ctc (*this, "z80ctc"), |
| 29 | m_fdc (*this, "fd1797") |
| 28 | 30 | { } |
| 29 | 31 | |
| 30 | 32 | DECLARE_READ8_MEMBER(memory_read_byte); |
| r23512 | r23513 | |
| 39 | 41 | DECLARE_DRIVER_INIT(altos5); |
| 40 | 42 | TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); |
| 41 | 43 | DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); |
| 44 | //DECLARE_FLOPPY_FORMATS(floppy_formats); |
| 42 | 45 | UINT8 m_port08; |
| 43 | 46 | UINT8 m_port09; |
| 44 | 47 | UINT8 *m_p_prom; |
| r23512 | r23513 | |
| 53 | 56 | required_device<z80dart_device> m_dart; |
| 54 | 57 | required_device<z80sio0_device> m_sio; |
| 55 | 58 | required_device<z80ctc_device> m_ctc; |
| 59 | required_device<fd1797_t> m_fdc; |
| 56 | 60 | }; |
| 57 | 61 | |
| 58 | 62 | static ADDRESS_MAP_START(altos5_mem, AS_PROGRAM, 8, altos5_state) |
| r23512 | r23513 | |
| 78 | 82 | static ADDRESS_MAP_START(altos5_io, AS_IO, 8, altos5_state) |
| 79 | 83 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 80 | 84 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("z80dma", z80dma_r, z80dma_w) |
| 81 | | //AM_RANGE(0x04, 0x07) // FD1797 fdc |
| 85 | AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("fd1797", fd1797_t, read, write) |
| 82 | 86 | AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write) |
| 83 | 87 | AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write) |
| 84 | 88 | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("z80pio_1", z80pio_device, read, write) |
| r23512 | r23513 | |
| 378 | 382 | DEVCB_DEVICE_LINE_MEMBER("z80sio", z80dart_device, ctsa_w) |
| 379 | 383 | }; |
| 380 | 384 | |
| 385 | //FLOPPY_FORMATS_MEMBER( altos5_state::floppy_formats ) |
| 386 | // FLOPPY_ALTOS5_FORMAT |
| 387 | //FLOPPY_FORMATS_END |
| 388 | |
| 389 | static SLOT_INTERFACE_START( altos5_floppies ) |
| 390 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 391 | SLOT_INTERFACE_END |
| 392 | |
| 381 | 393 | DRIVER_INIT_MEMBER( altos5_state, altos5 ) |
| 382 | 394 | { |
| 395 | |
| 396 | floppy_connector *con = machine().device<floppy_connector>("fd1797:0"); |
| 397 | floppy_image_device *floppy = con ? con->get_device() : 0; |
| 398 | if (floppy) |
| 399 | { |
| 400 | m_fdc->set_floppy(floppy); |
| 401 | //m_fdc->setup_intrq_cb(wd1772_t::line_cb(FUNC(applix_state::fdc_intrq_w), this)); |
| 402 | //m_fdc->setup_drq_cb(wd1772_t::line_cb(FUNC(applix_state::fdc_drq_w), this)); |
| 403 | |
| 404 | floppy->ss_w(0); |
| 405 | } |
| 406 | |
| 407 | |
| 383 | 408 | m_p_prom = memregion("proms")->base(); |
| 384 | 409 | |
| 385 | 410 | UINT8 *RAM = memregion("maincpu")->base(); |
| r23512 | r23513 | |
| 434 | 459 | MCFG_Z80SIO0_ADD("z80sio", XTAL_8MHz / 2, sio_intf ) |
| 435 | 460 | MCFG_RS232_PORT_ADD("rs232", rs232_intf, default_rs232_devices, "serial_terminal") |
| 436 | 461 | MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc_tick", altos5_state, ctc_tick, attotime::from_hz(XTAL_8MHz / 4)) |
| 462 | MCFG_FD1797x_ADD("fd1797", XTAL_8MHz / 4) |
| 463 | MCFG_FLOPPY_DRIVE_ADD("fd1797:0", altos5_floppies, "525dd", floppy_image_device::default_floppy_formats) |
| 464 | MCFG_FLOPPY_DRIVE_ADD("fd1797:1", altos5_floppies, "525dd", floppy_image_device::default_floppy_formats) |
| 437 | 465 | MACHINE_CONFIG_END |
| 438 | 466 | |
| 439 | 467 | |