src/mess/drivers/trs80m2.c
| r9027 | r9028 | |
| 28 | 28 | #include "machine/z80ctc.h" |
| 29 | 29 | #include "machine/z80dma.h" |
| 30 | 30 | #include "machine/z80pio.h" |
| 31 | | #include "machine/z80sio.h" |
| 31 | #include "machine/z80dart.h" |
| 32 | 32 | #include "video/mc6845.h" |
| 33 | 33 | |
| 34 | 34 | /* Keyboard HACK */ |
| r9027 | r9028 | |
| 417 | 417 | AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE(FD1791_TAG, wd17xx_r, wd17xx_w) |
| 418 | 418 | AM_RANGE(0xef, 0xef) AM_DEVWRITE(FD1791_TAG, drvslt_w) |
| 419 | 419 | AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_r, z80ctc_w) |
| 420 | | AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE(Z80SIO_TAG, z80sio_cd_ba_r, z80sio_cd_ba_w) |
| 420 | AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE(Z80SIO_TAG, z80dart_cd_ba_r, z80dart_cd_ba_w) |
| 421 | 421 | AM_RANGE(0xf8, 0xf8) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_r, z80dma_w) |
| 422 | 422 | AM_RANGE(0xf9, 0xf9) AM_WRITE(rom_enable_w) |
| 423 | 423 | AM_RANGE(0xfc, 0xfc) AM_READ(keyboard_r) AM_DEVWRITE(MC6845_TAG, mc6845_address_w) |
| r9027 | r9028 | |
| 863 | 863 | |
| 864 | 864 | /* Z80-SIO/0 Interface */ |
| 865 | 865 | |
| 866 | | static void sio_interrupt(running_device *device, int state) |
| 866 | static Z80DART_INTERFACE( sio_intf ) |
| 867 | 867 | { |
| 868 | | cputag_set_input_line(device->machine, Z80_TAG, INPUT_LINE_IRQ0, state); |
| 869 | | } |
| 868 | 0, 0, 0, 0, |
| 870 | 869 | |
| 871 | | static const z80sio_interface sio_intf = |
| 872 | | { |
| 873 | | sio_interrupt, /* interrupt handler */ |
| 874 | | NULL, /* DTR changed handler */ |
| 875 | | NULL, /* RTS changed handler */ |
| 876 | | NULL, /* BREAK changed handler */ |
| 877 | | NULL, /* transmit handler */ |
| 878 | | NULL /* receive handler */ |
| 870 | DEVCB_NULL, |
| 871 | DEVCB_NULL, |
| 872 | DEVCB_NULL, |
| 873 | DEVCB_NULL, |
| 874 | DEVCB_NULL, |
| 875 | DEVCB_NULL, |
| 876 | |
| 877 | DEVCB_NULL, |
| 878 | DEVCB_NULL, |
| 879 | DEVCB_NULL, |
| 880 | DEVCB_NULL, |
| 881 | DEVCB_NULL, |
| 882 | DEVCB_NULL, |
| 883 | |
| 884 | DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0) |
| 879 | 885 | }; |
| 880 | 886 | |
| 881 | 887 | /* Z80-CTC Interface */ |
| r9027 | r9028 | |
| 898 | 904 | { |
| 899 | 905 | 0, /* timer disables */ |
| 900 | 906 | DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0), /* interrupt handler */ |
| 901 | | DEVCB_NULL, // DEVCB_DEVICE_LINE(Z80SIO_TAG, z80sio_rxca_w), /* ZC/TO0 callback */ |
| 902 | | DEVCB_NULL, // DEVCB_DEVICE_LINE(Z80SIO_TAG, z80sio_txca_w), /* ZC/TO1 callback */ |
| 903 | | DEVCB_NULL, // DEVCB_DEVICE_LINE(Z80SIO_TAG, z80sio_rxtxcb_w) /* ZC/TO2 callback */ |
| 907 | DEVCB_DEVICE_LINE(Z80SIO_TAG, z80dart_rxca_w), /* ZC/TO0 callback */ |
| 908 | DEVCB_DEVICE_LINE(Z80SIO_TAG, z80dart_txca_w), /* ZC/TO1 callback */ |
| 909 | DEVCB_DEVICE_LINE(Z80SIO_TAG, z80dart_rxtxcb_w) /* ZC/TO2 callback */ |
| 904 | 910 | }; |
| 905 | 911 | |
| 906 | 912 | /* FD1791 Interface */ |
| r9027 | r9028 | |
| 1034 | 1040 | MDRV_TIMER_ADD_PERIODIC("ctc", ctc_tick, HZ(XTAL_8MHz/2/2)) |
| 1035 | 1041 | MDRV_Z80DMA_ADD(Z80DMA_TAG, XTAL_8MHz/2, dma_intf) |
| 1036 | 1042 | MDRV_Z80PIO_ADD(Z80PIO_TAG, XTAL_8MHz/2, pio_intf) |
| 1037 | | MDRV_Z80SIO_ADD(Z80SIO_TAG, XTAL_8MHz/2, sio_intf) |
| 1043 | MDRV_Z80SIO0_ADD(Z80SIO_TAG, XTAL_8MHz/2, sio_intf) |
| 1038 | 1044 | MDRV_CENTRONICS_ADD(CENTRONICS_TAG, centronics_intf) |
| 1039 | 1045 | MDRV_FLOPPY_DRIVE_ADD(FLOPPY_0, trs80m2_floppy_config) |
| 1040 | 1046 | |