trunk/src/mess/includes/bullet.h
| r19221 | r19222 | |
| 6 | 6 | |
| 7 | 7 | #include "emu.h" |
| 8 | 8 | #include "cpu/z80/z80.h" |
| 9 | | #include "imagedev/flopdrv.h" |
| 10 | 9 | #include "machine/ctronics.h" |
| 11 | 10 | #include "machine/ram.h" |
| 11 | #include "machine/scsibus.h" |
| 12 | 12 | #include "machine/scsicb.h" |
| 13 | #include "machine/scsihd.h" |
| 13 | 14 | #include "machine/terminal.h" |
| 14 | | #include "machine/wd17xx.h" |
| 15 | #include "machine/wd_fdc.h" |
| 15 | 16 | #include "machine/z80ctc.h" |
| 16 | 17 | #include "machine/z80dart.h" |
| 17 | 18 | #include "machine/z80dma.h" |
| r19221 | r19222 | |
| 37 | 38 | m_dmac(*this, Z80DMA_TAG), |
| 38 | 39 | m_fdc(*this, MB8877_TAG), |
| 39 | 40 | m_ram(*this, RAM_TAG), |
| 40 | | m_floppy0(*this, FLOPPY_0), |
| 41 | | m_floppy1(*this, FLOPPY_1), |
| 41 | m_floppy0(*this, MB8877_TAG":0"), |
| 42 | m_floppy1(*this, MB8877_TAG":1"), |
| 43 | m_floppy2(*this, MB8877_TAG":2"), |
| 44 | m_floppy3(*this, MB8877_TAG":3"), |
| 45 | m_floppy4(*this, MB8877_TAG":4"), |
| 46 | m_floppy5(*this, MB8877_TAG":5"), |
| 47 | m_floppy6(*this, MB8877_TAG":6"), |
| 48 | m_floppy7(*this, MB8877_TAG":7"), |
| 49 | m_floppy(NULL), |
| 42 | 50 | m_terminal(*this, TERMINAL_TAG), |
| 43 | 51 | m_centronics(*this, CENTRONICS_TAG), |
| 44 | 52 | m_fdrdy(0) |
| r19221 | r19222 | |
| 48 | 56 | required_device<z80ctc_device> m_ctc; |
| 49 | 57 | required_device<z80dart_device> m_dart; |
| 50 | 58 | required_device<z80dma_device> m_dmac; |
| 51 | | required_device<mb8877_device> m_fdc; |
| 59 | required_device<mb8877_t> m_fdc; |
| 52 | 60 | required_device<ram_device> m_ram; |
| 53 | | required_device<legacy_floppy_image_device> m_floppy0; |
| 54 | | required_device<legacy_floppy_image_device> m_floppy1; |
| 61 | required_device<floppy_connector> m_floppy0; |
| 62 | required_device<floppy_connector> m_floppy1; |
| 63 | required_device<floppy_connector> m_floppy2; |
| 64 | required_device<floppy_connector> m_floppy3; |
| 65 | required_device<floppy_connector> m_floppy4; |
| 66 | required_device<floppy_connector> m_floppy5; |
| 67 | required_device<floppy_connector> m_floppy6; |
| 68 | required_device<floppy_connector> m_floppy7; |
| 69 | floppy_image_device *m_floppy; |
| 55 | 70 | required_device<serial_terminal_device> m_terminal; |
| 56 | 71 | required_device<centronics_device> m_centronics; |
| 57 | 72 | |
| r19221 | r19222 | |
| 75 | 90 | DECLARE_READ8_MEMBER( pio_pb_r ); |
| 76 | 91 | DECLARE_WRITE_LINE_MEMBER( dartardy_w ); |
| 77 | 92 | DECLARE_WRITE_LINE_MEMBER( dartbrdy_w ); |
| 78 | | DECLARE_WRITE_LINE_MEMBER( fdrdy_w ); |
| 79 | 93 | |
| 94 | void fdc_intrq_w(bool state); |
| 95 | void fdc_drq_w(bool state); |
| 96 | |
| 80 | 97 | void bankswitch(); |
| 81 | 98 | void update_dma_rdy(); |
| 82 | 99 | |
| r19221 | r19222 | |
| 87 | 104 | // DMA state |
| 88 | 105 | UINT8 m_exdma; |
| 89 | 106 | int m_buf; |
| 90 | | int m_fdrdy; |
| 107 | bool m_fdrdy; |
| 91 | 108 | int m_dartardy; |
| 92 | 109 | int m_dartbrdy; |
| 93 | 110 | int m_winrdy; |
| 94 | 111 | int m_exrdy1; |
| 95 | 112 | int m_exrdy2; |
| 113 | |
| 96 | 114 | TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); |
| 97 | 115 | DECLARE_WRITE_LINE_MEMBER(dart_rxtxca_w); |
| 98 | 116 | }; |
| r19221 | r19222 | |
| 102 | 120 | public: |
| 103 | 121 | bulletf_state(const machine_config &mconfig, device_type type, const char *tag) |
| 104 | 122 | : bullet_state(mconfig, type, tag), |
| 123 | m_floppy8(*this, MB8877_TAG":8"), |
| 124 | m_floppy9(*this, MB8877_TAG":9"), |
| 105 | 125 | m_scsibus(*this, SCSIBUS_TAG ":host") |
| 106 | 126 | { } |
| 107 | 127 | |
| 128 | required_device<floppy_connector> m_floppy8; |
| 129 | required_device<floppy_connector> m_floppy9; |
| 108 | 130 | required_device<scsicb_device> m_scsibus; |
| 109 | 131 | |
| 110 | 132 | virtual void machine_start(); |
| r19221 | r19222 | |
| 126 | 148 | DECLARE_WRITE_LINE_MEMBER( cstrb_w ); |
| 127 | 149 | DECLARE_WRITE_LINE_MEMBER( req_w ); |
| 128 | 150 | |
| 151 | void fdc_intrq_w(bool state); |
| 152 | |
| 129 | 153 | void update_dma_rdy(); |
| 130 | 154 | |
| 131 | 155 | int m_rome; |
trunk/src/mess/drivers/bullet.c
| r19221 | r19222 | |
| 58 | 58 | */ |
| 59 | 59 | |
| 60 | 60 | #include "includes/bullet.h" |
| 61 | | #include "machine/scsibus.h" |
| 62 | | #include "machine/scsicb.h" |
| 63 | | #include "machine/scsihd.h" |
| 64 | 61 | |
| 65 | 62 | |
| 66 | 63 | |
| r19221 | r19222 | |
| 205 | 202 | */ |
| 206 | 203 | |
| 207 | 204 | // drive select |
| 208 | | wd17xx_set_drive(m_fdc, data & 0x03); |
| 205 | m_floppy = NULL; |
| 209 | 206 | |
| 210 | | // side select |
| 211 | | wd17xx_set_side(m_fdc, BIT(data, 4)); |
| 207 | switch (data & 0x07) |
| 208 | { |
| 209 | // 5.25" |
| 210 | case 0: m_floppy = m_floppy0->get_device(); break; |
| 211 | case 1: m_floppy = m_floppy1->get_device(); break; |
| 212 | case 2: m_floppy = m_floppy2->get_device(); break; |
| 213 | case 3: m_floppy = m_floppy3->get_device(); break; |
| 214 | // 8" |
| 215 | case 4: m_floppy = m_floppy4->get_device(); break; |
| 216 | case 5: m_floppy = m_floppy5->get_device(); break; |
| 217 | case 6: m_floppy = m_floppy6->get_device(); break; |
| 218 | case 7: m_floppy = m_floppy7->get_device(); break; |
| 219 | } |
| 212 | 220 | |
| 213 | | // floppy motor |
| 214 | | floppy_mon_w(m_floppy0, BIT(data, 5)); |
| 215 | | floppy_mon_w(m_floppy1, BIT(data, 5)); |
| 216 | | floppy_drive_set_ready_state(m_floppy0, 1, 1); |
| 217 | | floppy_drive_set_ready_state(m_floppy1, 1, 1); |
| 221 | m_fdc->set_floppy(m_floppy); |
| 222 | |
| 223 | if (m_floppy) |
| 224 | { |
| 225 | // side select |
| 226 | m_floppy->ss_w(BIT(data, 4)); |
| 227 | |
| 228 | // floppy motor |
| 229 | m_floppy->mon_w(BIT(data, 5)); |
| 230 | } |
| 218 | 231 | } |
| 219 | 232 | |
| 220 | 233 | |
| r19221 | r19222 | |
| 272 | 285 | m_fdc->set_unscaled_clock(BIT(data, 2) ? XTAL_16MHz/16 : XTAL_16MHz/8); |
| 273 | 286 | |
| 274 | 287 | // density select |
| 275 | | wd17xx_dden_w(m_fdc, BIT(data, 3)); |
| 288 | m_fdc->dden_w(BIT(data, 3)); |
| 276 | 289 | } |
| 277 | 290 | |
| 278 | 291 | |
| r19221 | r19222 | |
| 297 | 310 | |
| 298 | 311 | */ |
| 299 | 312 | |
| 300 | | UINT8 data = 0x10; |
| 313 | UINT8 data = 0; |
| 301 | 314 | |
| 302 | 315 | // DIP switches |
| 303 | 316 | data |= ioport("SW1")->read() & 0x0f; |
| 304 | 317 | |
| 305 | | // floppy interrupt |
| 306 | | data |= wd17xx_intrq_r(m_fdc) << 6; |
| 318 | // floppy |
| 319 | data |= m_fdc->hld_r() << 4; |
| 320 | data |= m_floppy ? m_floppy->dskchg_r() : 1; |
| 321 | data |= m_fdc->intrq_r() << 6; |
| 322 | data |= m_fdc->drq_r() << 7; |
| 307 | 323 | |
| 308 | | // floppy data request |
| 309 | | data |= wd17xx_drq_r(m_fdc) << 7; |
| 310 | | |
| 311 | 324 | return data; |
| 312 | 325 | } |
| 313 | 326 | |
| r19221 | r19222 | |
| 429 | 442 | |
| 430 | 443 | */ |
| 431 | 444 | |
| 432 | | // floppy drive select |
| 433 | | wd17xx_set_drive(m_fdc, data & 0x0f); |
| 445 | // drive select |
| 446 | m_floppy = NULL; |
| 434 | 447 | |
| 435 | | // floppy side select |
| 436 | | wd17xx_set_side(m_fdc, BIT(data, 4)); |
| 448 | switch (data & 0x0f) |
| 449 | { |
| 450 | // 5.25" |
| 451 | case 0: m_floppy = m_floppy0->get_device(); break; |
| 452 | case 1: m_floppy = m_floppy1->get_device(); break; |
| 453 | case 2: m_floppy = m_floppy2->get_device(); break; |
| 454 | case 3: m_floppy = m_floppy3->get_device(); break; |
| 455 | // 8" |
| 456 | case 4: m_floppy = m_floppy4->get_device(); break; |
| 457 | case 5: m_floppy = m_floppy5->get_device(); break; |
| 458 | case 6: m_floppy = m_floppy6->get_device(); break; |
| 459 | case 7: m_floppy = m_floppy7->get_device(); break; |
| 460 | // 3.5" |
| 461 | case 8: m_floppy = m_floppy8->get_device(); break; |
| 462 | case 9: m_floppy = m_floppy9->get_device(); break; |
| 463 | } |
| 437 | 464 | |
| 438 | | // floppy motor |
| 439 | | floppy_mon_w(m_floppy0, BIT(data, 5)); |
| 440 | | floppy_mon_w(m_floppy1, BIT(data, 5)); |
| 441 | | floppy_drive_set_ready_state(m_floppy0, BIT(data, 5), 1); |
| 442 | | floppy_drive_set_ready_state(m_floppy1, BIT(data, 5), 1); |
| 465 | m_fdc->set_floppy(m_floppy); |
| 443 | 466 | |
| 467 | if (m_floppy) |
| 468 | { |
| 469 | // side select |
| 470 | m_floppy->ss_w(BIT(data, 4)); |
| 471 | |
| 472 | // floppy motor |
| 473 | m_floppy->mon_w(BIT(data, 5)); |
| 474 | } |
| 475 | |
| 444 | 476 | // FDC clock |
| 445 | 477 | m_fdc->set_unscaled_clock(BIT(data, 6) ? XTAL_16MHz/16 : XTAL_16MHz/8); |
| 446 | 478 | |
| 447 | 479 | // density select |
| 448 | | wd17xx_dden_w(m_fdc, BIT(data, 7)); |
| 480 | m_fdc->dden_w(BIT(data, 7)); |
| 449 | 481 | } |
| 450 | 482 | |
| 451 | 483 | |
| r19221 | r19222 | |
| 527 | 559 | |
| 528 | 560 | */ |
| 529 | 561 | |
| 530 | | UINT8 data = 0x10; |
| 562 | UINT8 data = 0; |
| 531 | 563 | |
| 532 | 564 | // centronics busy |
| 533 | 565 | data |= m_centronics->busy_r(); |
| r19221 | r19222 | |
| 535 | 567 | // DIP switches |
| 536 | 568 | data |= ioport("SW1")->read() & 0x06; |
| 537 | 569 | |
| 538 | | // floppy interrupt |
| 539 | | data |= wd17xx_intrq_r(m_fdc) << 6; |
| 570 | // floppy |
| 571 | data |= (m_floppy ? m_floppy->twosid_r() : 1) << 3; |
| 572 | data |= m_fdc->hld_r() << 4; |
| 573 | data |= (m_floppy ? m_floppy->dskchg_r() : 1) << 5; |
| 574 | data |= m_fdc->intrq_r() << 6; |
| 575 | data |= m_fdc->drq_r() << 7; |
| 540 | 576 | |
| 541 | | // floppy data request |
| 542 | | data |= wd17xx_drq_r(m_fdc) << 7; |
| 543 | | |
| 544 | 577 | return data; |
| 545 | 578 | } |
| 546 | 579 | |
| r19221 | r19222 | |
| 569 | 602 | AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) |
| 570 | 603 | AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) |
| 571 | 604 | AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x03) AM_READWRITE(win_r, wstrobe_w) |
| 572 | | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY(MB8877_TAG, wd17xx_r, wd17xx_w) |
| 605 | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) |
| 573 | 606 | AM_RANGE(0x14, 0x14) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) |
| 574 | 607 | AM_RANGE(0x15, 0x15) AM_READWRITE(brom_r, brom_w) |
| 575 | 608 | AM_RANGE(0x16, 0x16) AM_WRITE(exdsk_w) |
| r19221 | r19222 | |
| 598 | 631 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY(Z80DART_TAG, z80dart_ba_cd_r, z80dart_ba_cd_w) |
| 599 | 632 | AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) |
| 600 | 633 | AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) |
| 601 | | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY(MB8877_TAG, wd17xx_r, wd17xx_w) |
| 634 | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) |
| 602 | 635 | AM_RANGE(0x14, 0x14) AM_WRITE(xdma0_w) |
| 603 | 636 | AM_RANGE(0x16, 0x16) AM_WRITE(xfdc_w) |
| 604 | 637 | AM_RANGE(0x17, 0x17) AM_WRITE(mbank_w) |
| r19221 | r19222 | |
| 631 | 664 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") |
| 632 | 665 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 633 | 666 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 634 | | PORT_DIPNAME( 0xf0, 0xf0, "Floppy Type" ) PORT_DIPLOCATION("SW1:5,6,7,8") |
| 635 | | // TODO |
| 667 | PORT_DIPNAME( 0xf0, 0x50, "Floppy Type" ) PORT_DIPLOCATION("SW1:5,6,7,8") |
| 668 | PORT_DIPSETTING( 0xf0, "5.25\" SD" ) |
| 669 | PORT_DIPSETTING( 0x50, "5.25\" DD" ) |
| 670 | PORT_DIPSETTING( 0x60, "8\" SD" ) |
| 671 | PORT_DIPSETTING( 0x00, "8\" DD" ) |
| 636 | 672 | INPUT_PORTS_END |
| 637 | 673 | |
| 638 | 674 | |
| r19221 | r19222 | |
| 657 | 693 | PORT_DIPNAME( 0xf0, 0xc0, "Floppy Type" ) PORT_DIPLOCATION("SW1:5,6,7,8") |
| 658 | 694 | PORT_DIPSETTING( 0x10, "3\" DD" ) |
| 659 | 695 | PORT_DIPSETTING( 0xc0, "5.25\" SD" ) |
| 660 | | PORT_DIPSETTING( 0x40, "3\" DD" ) |
| 696 | PORT_DIPSETTING( 0x40, "5.25\" DD" ) |
| 661 | 697 | PORT_DIPSETTING( 0xa0, "8\" SD" ) |
| 662 | 698 | PORT_DIPSETTING( 0x20, "8\" DD" ) |
| 663 | 699 | INPUT_PORTS_END |
| r19221 | r19222 | |
| 686 | 722 | |
| 687 | 723 | WRITE_LINE_MEMBER(bullet_state::dart_rxtxca_w) |
| 688 | 724 | { |
| 689 | | device_t *device = machine().device(Z80DART_TAG); |
| 690 | | z80dart_txca_w(device, state); |
| 691 | | z80dart_rxca_w(device, state); |
| 725 | z80dart_txca_w(m_dart, state); |
| 726 | z80dart_rxca_w(m_dart, state); |
| 692 | 727 | } |
| 693 | 728 | |
| 694 | 729 | static Z80CTC_INTERFACE( ctc_intf ) |
| 695 | 730 | { |
| 696 | 731 | DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0), // interrupt handler |
| 697 | | DEVCB_DRIVER_LINE_MEMBER(bullet_state,dart_rxtxca_w), // ZC/TO0 callback |
| 732 | DEVCB_DRIVER_LINE_MEMBER(bullet_state, dart_rxtxca_w), // ZC/TO0 callback |
| 698 | 733 | DEVCB_DEVICE_LINE(Z80DART_TAG, z80dart_rxtxcb_w), // ZC/TO1 callback |
| 699 | 734 | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF, z80ctc_device, trg3) // ZC/TO2 callback |
| 700 | 735 | }; |
| r19221 | r19222 | |
| 980 | 1015 | // wd17xx_interface fdc_intf |
| 981 | 1016 | //------------------------------------------------- |
| 982 | 1017 | |
| 983 | | WRITE_LINE_MEMBER( bullet_state::fdrdy_w ) |
| 1018 | static SLOT_INTERFACE_START( bullet_525_floppies ) |
| 1019 | SLOT_INTERFACE( "525sd", FLOPPY_525_SD ) |
| 1020 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 1021 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 1022 | SLOT_INTERFACE_END |
| 1023 | |
| 1024 | static SLOT_INTERFACE_START( bullet_8_floppies ) |
| 1025 | SLOT_INTERFACE( "8dssd", FLOPPY_8_DSSD ) |
| 1026 | SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) |
| 1027 | SLOT_INTERFACE_END |
| 1028 | |
| 1029 | static SLOT_INTERFACE_START( bullet_35_floppies ) |
| 1030 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| 1031 | SLOT_INTERFACE_END |
| 1032 | void bullet_state::fdc_intrq_w(bool state) |
| 984 | 1033 | { |
| 985 | | m_fdrdy = !state; |
| 986 | | update_dma_rdy(); |
| 1034 | z80dart_dcda_w(m_dart, state); |
| 987 | 1035 | } |
| 988 | 1036 | |
| 989 | | static const floppy_interface bullet_floppy_interface = |
| 1037 | void bulletf_state::fdc_intrq_w(bool state) |
| 990 | 1038 | { |
| 991 | | DEVCB_NULL, |
| 992 | | DEVCB_NULL, |
| 993 | | DEVCB_NULL, |
| 994 | | DEVCB_NULL, |
| 995 | | DEVCB_NULL, |
| 996 | | FLOPPY_STANDARD_5_25_DSDD, |
| 997 | | LEGACY_FLOPPY_OPTIONS_NAME(default), |
| 998 | | "floppy_5_25", |
| 999 | | NULL |
| 1000 | | }; |
| 1039 | z80dart_rib_w(m_dart, state); |
| 1040 | } |
| 1001 | 1041 | |
| 1002 | | static const wd17xx_interface fdc_intf = |
| 1042 | void bullet_state::fdc_drq_w(bool state) |
| 1003 | 1043 | { |
| 1004 | | DEVCB_NULL, |
| 1005 | | DEVCB_DEVICE_LINE(Z80DART_TAG, z80dart_dcda_w), |
| 1006 | | DEVCB_DRIVER_LINE_MEMBER(bullet_state, fdrdy_w), |
| 1007 | | { FLOPPY_0, FLOPPY_1, NULL, NULL } |
| 1008 | | }; |
| 1044 | m_fdrdy = !state; |
| 1045 | update_dma_rdy(); |
| 1046 | } |
| 1009 | 1047 | |
| 1010 | | |
| 1011 | | //------------------------------------------------- |
| 1012 | | // wd17xx_interface bulletf_fdc_intf |
| 1013 | | //------------------------------------------------- |
| 1014 | | |
| 1015 | | static const wd17xx_interface bulletf_fdc_intf = |
| 1016 | | { |
| 1017 | | DEVCB_NULL, |
| 1018 | | DEVCB_DEVICE_LINE(Z80DART_TAG, z80dart_rib_w), |
| 1019 | | DEVCB_DRIVER_LINE_MEMBER(bullet_state, fdrdy_w), |
| 1020 | | { FLOPPY_0, FLOPPY_1, NULL, NULL } |
| 1021 | | }; |
| 1022 | | |
| 1023 | 1048 | WRITE_LINE_MEMBER( bulletf_state::req_w ) |
| 1024 | 1049 | { |
| 1025 | 1050 | if (!state) |
| r19221 | r19222 | |
| 1034 | 1059 | } |
| 1035 | 1060 | |
| 1036 | 1061 | |
| 1062 | //------------------------------------------------- |
| 1063 | // serial_terminal_interface terminal_intf |
| 1064 | //------------------------------------------------- |
| 1065 | |
| 1037 | 1066 | static serial_terminal_interface terminal_intf = |
| 1038 | 1067 | { |
| 1039 | 1068 | DEVCB_NULL |
| r19221 | r19222 | |
| 1065 | 1094 | |
| 1066 | 1095 | void bullet_state::machine_start() |
| 1067 | 1096 | { |
| 1097 | // floppy callbacks |
| 1098 | m_fdc->setup_intrq_cb(mb8877_t::line_cb(FUNC(bullet_state::fdc_intrq_w), this)); |
| 1099 | m_fdc->setup_drq_cb(mb8877_t::line_cb(FUNC(bullet_state::fdc_drq_w), this)); |
| 1100 | |
| 1068 | 1101 | // state saving |
| 1069 | 1102 | save_item(NAME(m_segst)); |
| 1070 | 1103 | save_item(NAME(m_brom)); |
| r19221 | r19222 | |
| 1085 | 1118 | |
| 1086 | 1119 | void bulletf_state::machine_start() |
| 1087 | 1120 | { |
| 1121 | // floppy callbacks |
| 1122 | m_fdc->setup_intrq_cb(mb8877_t::line_cb(FUNC(bulletf_state::fdc_intrq_w), this)); |
| 1123 | m_fdc->setup_drq_cb(mb8877_t::line_cb(FUNC(bulletf_state::fdc_drq_w), this)); |
| 1124 | |
| 1088 | 1125 | // state saving |
| 1089 | 1126 | save_item(NAME(m_fdrdy)); |
| 1090 | 1127 | save_item(NAME(m_rome)); |
| r19221 | r19222 | |
| 1151 | 1188 | MCFG_Z80DART_ADD(Z80DART_TAG, XTAL_16MHz/4, dart_intf) |
| 1152 | 1189 | MCFG_Z80DMA_ADD(Z80DMA_TAG, XTAL_16MHz/4, dma_intf) |
| 1153 | 1190 | MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_16MHz/4, pio_intf) |
| 1154 | | MCFG_MB8877_ADD(MB8877_TAG, fdc_intf) |
| 1155 | | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(bullet_floppy_interface) |
| 1191 | MCFG_MB8877x_ADD(MB8877_TAG, XTAL_16MHz/8) |
| 1192 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", bullet_525_floppies, "525qd", NULL, floppy_image_device::default_floppy_formats) |
| 1193 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1194 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1195 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":3", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1196 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":4", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1197 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":5", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1198 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":6", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1199 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":7", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1156 | 1200 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| 1157 | 1201 | MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 4800) |
| 1158 | 1202 | |
| r19221 | r19222 | |
| 1182 | 1226 | MCFG_Z80DART_ADD(Z80DART_TAG, XTAL_16MHz/4, dart_intf) |
| 1183 | 1227 | MCFG_Z80DMA_ADD(Z80DMA_TAG, XTAL_16MHz/4, dma_intf) |
| 1184 | 1228 | MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_16MHz/4, bulletf_pio_intf) |
| 1185 | | MCFG_MB8877_ADD(MB8877_TAG, bulletf_fdc_intf) |
| 1186 | | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(bullet_floppy_interface) |
| 1229 | MCFG_MB8877x_ADD(MB8877_TAG, XTAL_16MHz/8) |
| 1230 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", bullet_525_floppies, "525qd", NULL, floppy_image_device::default_floppy_formats) |
| 1231 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1232 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1233 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":3", bullet_525_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1234 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":4", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1235 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":5", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1236 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":6", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1237 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":7", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1238 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":8", bullet_35_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1239 | MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":9", bullet_35_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) |
| 1187 | 1240 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| 1188 | 1241 | MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 4800) |
| 1189 | 1242 | |
| r19221 | r19222 | |
| 1226 | 1279 | |
| 1227 | 1280 | // YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS |
| 1228 | 1281 | // the setname 'bullet' is used by Sega's Bullet in MAME. |
| 1229 | | COMP( 1982, wmbullet, 0, 0, bullet, bullet, driver_device, 0, "Wave Mate", "Bullet", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) |
| 1282 | COMP( 1982, wmbullet, 0, 0, bullet, bullet, driver_device, 0, "Wave Mate", "Bullet", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) |
| 1230 | 1283 | COMP( 1984, wmbulletf, wmbullet, 0, bulletf, bulletf, driver_device, 0, "Wave Mate", "Bullet (Revision F)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) |