trunk/src/emu/machine/scsibus.c
| r18302 | r18303 | |
| 111 | 111 | return result; |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | | READ8_MEMBER( scsibus_device::scsi_data_r ) |
| 115 | | { |
| 116 | | return scsi_data_r(); |
| 117 | | } |
| 118 | | |
| 119 | 114 | void scsibus_device::scsi_data_w( UINT8 data ) |
| 120 | 115 | { |
| 121 | 116 | switch (phase) |
| r18302 | r18303 | |
| 165 | 160 | } |
| 166 | 161 | } |
| 167 | 162 | |
| 168 | | WRITE8_MEMBER( scsibus_device::scsi_data_w ) |
| 169 | | { |
| 170 | | scsi_data_w( data ); |
| 171 | | } |
| 172 | | |
| 173 | 163 | /* Get/Set lines */ |
| 174 | 164 | |
| 175 | 165 | UINT8 scsibus_device::get_scsi_line(UINT8 lineno) |
| r18302 | r18303 | |
| 193 | 183 | return result; |
| 194 | 184 | } |
| 195 | 185 | |
| 196 | | READ_LINE_MEMBER( scsibus_device::scsi_bsy_r ) { return get_scsi_line(SCSI_LINE_BSY); } |
| 197 | | READ_LINE_MEMBER( scsibus_device::scsi_sel_r ) { return get_scsi_line(SCSI_LINE_SEL); } |
| 198 | | READ_LINE_MEMBER( scsibus_device::scsi_cd_r ) { return get_scsi_line(SCSI_LINE_CD); } |
| 199 | | READ_LINE_MEMBER( scsibus_device::scsi_io_r ) { return get_scsi_line(SCSI_LINE_IO); } |
| 200 | | READ_LINE_MEMBER( scsibus_device::scsi_msg_r ) { return get_scsi_line(SCSI_LINE_MSG); } |
| 201 | | READ_LINE_MEMBER( scsibus_device::scsi_req_r ) { return get_scsi_line(SCSI_LINE_REQ); } |
| 202 | | READ_LINE_MEMBER( scsibus_device::scsi_ack_r ) { return get_scsi_line(SCSI_LINE_ACK); } |
| 203 | | READ_LINE_MEMBER( scsibus_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RESET); } |
| 204 | | |
| 205 | 186 | void scsibus_device::set_scsi_line(UINT8 line, UINT8 state) |
| 206 | 187 | { |
| 207 | 188 | UINT8 changed; |
| r18302 | r18303 | |
| 219 | 200 | } |
| 220 | 201 | } |
| 221 | 202 | |
| 222 | | WRITE_LINE_MEMBER( scsibus_device::scsi_bsy_w ) { set_scsi_line(SCSI_LINE_BSY, state); } |
| 223 | | WRITE_LINE_MEMBER( scsibus_device::scsi_sel_w ) { set_scsi_line(SCSI_LINE_SEL, state); } |
| 224 | | WRITE_LINE_MEMBER( scsibus_device::scsi_cd_w ) { set_scsi_line(SCSI_LINE_CD, state); } |
| 225 | | WRITE_LINE_MEMBER( scsibus_device::scsi_io_w ) { set_scsi_line(SCSI_LINE_IO, state); } |
| 226 | | WRITE_LINE_MEMBER( scsibus_device::scsi_msg_w ) { set_scsi_line(SCSI_LINE_MSG, state); } |
| 227 | | WRITE_LINE_MEMBER( scsibus_device::scsi_req_w ) { set_scsi_line(SCSI_LINE_REQ, state); } |
| 228 | | WRITE_LINE_MEMBER( scsibus_device::scsi_ack_w ) { set_scsi_line(SCSI_LINE_ACK, state); } |
| 229 | | WRITE_LINE_MEMBER( scsibus_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RESET, state); } |
| 230 | | |
| 231 | 203 | void scsibus_device::set_scsi_line_now(UINT8 line, UINT8 state) |
| 232 | 204 | { |
| 233 | 205 | if(state) |
trunk/src/emu/machine/scsibus.h
| r18302 | r18303 | |
| 92 | 92 | |
| 93 | 93 | UINT8 scsi_data_r(); |
| 94 | 94 | void scsi_data_w( UINT8 data ); |
| 95 | | DECLARE_READ8_MEMBER( scsi_data_r ); |
| 96 | | DECLARE_WRITE8_MEMBER( scsi_data_w ); |
| 97 | 95 | |
| 98 | 96 | /* Get/Set lines */ |
| 99 | 97 | |
| 100 | 98 | UINT8 get_scsi_line(UINT8 lineno); |
| 101 | 99 | void set_scsi_line(UINT8 line, UINT8 state); |
| 102 | 100 | |
| 103 | | DECLARE_READ_LINE_MEMBER( scsi_bsy_r ); |
| 104 | | DECLARE_READ_LINE_MEMBER( scsi_sel_r ); |
| 105 | | DECLARE_READ_LINE_MEMBER( scsi_cd_r ); |
| 106 | | DECLARE_READ_LINE_MEMBER( scsi_io_r ); |
| 107 | | DECLARE_READ_LINE_MEMBER( scsi_msg_r ); |
| 108 | | DECLARE_READ_LINE_MEMBER( scsi_req_r ); |
| 109 | | DECLARE_READ_LINE_MEMBER( scsi_ack_r ); |
| 110 | | DECLARE_READ_LINE_MEMBER( scsi_rst_r ); |
| 111 | | |
| 112 | | DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w ); |
| 113 | | DECLARE_WRITE_LINE_MEMBER( scsi_sel_w ); |
| 114 | | DECLARE_WRITE_LINE_MEMBER( scsi_cd_w ); |
| 115 | | DECLARE_WRITE_LINE_MEMBER( scsi_io_w ); |
| 116 | | DECLARE_WRITE_LINE_MEMBER( scsi_msg_w ); |
| 117 | | DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); |
| 118 | | DECLARE_WRITE_LINE_MEMBER( scsi_ack_w ); |
| 119 | | DECLARE_WRITE_LINE_MEMBER( scsi_rst_w ); |
| 120 | | |
| 121 | 101 | protected: |
| 122 | 102 | // device-level overrides |
| 123 | 103 | virtual void device_start(); |
trunk/src/emu/machine/scsicb.c
| r18302 | r18303 | |
| 1 | 1 | #include "scsicb.h" |
| 2 | #include "scsibus.h" |
| 2 | 3 | |
| 3 | 4 | scsicb_device::scsicb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 4 | 5 | : device_t(mconfig, SCSICB, "SCSI callback", tag, owner, clock) |
| r18302 | r18303 | |
| 26 | 27 | out_rst_func.resolve(_out_rst_func, *this); |
| 27 | 28 | } |
| 28 | 29 | |
| 30 | UINT8 scsicb_device::scsi_data_r() |
| 31 | { |
| 32 | scsibus_device *m_scsibus = reinterpret_cast<scsibus_device *>( owner() ); |
| 33 | return m_scsibus->scsi_data_r(); |
| 34 | } |
| 35 | |
| 36 | void scsicb_device::scsi_data_w( UINT8 data ) |
| 37 | { |
| 38 | scsibus_device *m_scsibus = reinterpret_cast<scsibus_device *>( owner() ); |
| 39 | m_scsibus->scsi_data_w( data ); |
| 40 | } |
| 41 | |
| 42 | UINT8 scsicb_device::get_scsi_line( UINT8 line ) |
| 43 | { |
| 44 | scsibus_device *m_scsibus = reinterpret_cast<scsibus_device *>( owner() ); |
| 45 | return m_scsibus->get_scsi_line( line ); |
| 46 | } |
| 47 | |
| 48 | void scsicb_device::set_scsi_line( UINT8 line, UINT8 state ) |
| 49 | { |
| 50 | scsibus_device *m_scsibus = reinterpret_cast<scsibus_device *>( owner() ); |
| 51 | m_scsibus->set_scsi_line( line, state ); |
| 52 | } |
| 53 | |
| 54 | READ8_MEMBER( scsicb_device::scsi_data_r ) |
| 55 | { |
| 56 | return scsi_data_r(); |
| 57 | } |
| 58 | |
| 59 | WRITE8_MEMBER( scsicb_device::scsi_data_w ) |
| 60 | { |
| 61 | scsi_data_w( data ); |
| 62 | } |
| 63 | |
| 64 | READ_LINE_MEMBER( scsicb_device::scsi_bsy_r ) { return get_scsi_line(SCSI_LINE_BSY); } |
| 65 | READ_LINE_MEMBER( scsicb_device::scsi_sel_r ) { return get_scsi_line(SCSI_LINE_SEL); } |
| 66 | READ_LINE_MEMBER( scsicb_device::scsi_cd_r ) { return get_scsi_line(SCSI_LINE_CD); } |
| 67 | READ_LINE_MEMBER( scsicb_device::scsi_io_r ) { return get_scsi_line(SCSI_LINE_IO); } |
| 68 | READ_LINE_MEMBER( scsicb_device::scsi_msg_r ) { return get_scsi_line(SCSI_LINE_MSG); } |
| 69 | READ_LINE_MEMBER( scsicb_device::scsi_req_r ) { return get_scsi_line(SCSI_LINE_REQ); } |
| 70 | READ_LINE_MEMBER( scsicb_device::scsi_ack_r ) { return get_scsi_line(SCSI_LINE_ACK); } |
| 71 | READ_LINE_MEMBER( scsicb_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RESET); } |
| 72 | |
| 73 | WRITE_LINE_MEMBER( scsicb_device::scsi_bsy_w ) { set_scsi_line(SCSI_LINE_BSY, state); } |
| 74 | WRITE_LINE_MEMBER( scsicb_device::scsi_sel_w ) { set_scsi_line(SCSI_LINE_SEL, state); } |
| 75 | WRITE_LINE_MEMBER( scsicb_device::scsi_cd_w ) { set_scsi_line(SCSI_LINE_CD, state); } |
| 76 | WRITE_LINE_MEMBER( scsicb_device::scsi_io_w ) { set_scsi_line(SCSI_LINE_IO, state); } |
| 77 | WRITE_LINE_MEMBER( scsicb_device::scsi_msg_w ) { set_scsi_line(SCSI_LINE_MSG, state); } |
| 78 | WRITE_LINE_MEMBER( scsicb_device::scsi_req_w ) { set_scsi_line(SCSI_LINE_REQ, state); } |
| 79 | WRITE_LINE_MEMBER( scsicb_device::scsi_ack_w ) { set_scsi_line(SCSI_LINE_ACK, state); } |
| 80 | WRITE_LINE_MEMBER( scsicb_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RESET, state); } |
| 81 | |
| 29 | 82 | const device_type SCSICB = &device_creator<scsicb_device>; |
trunk/src/emu/machine/scsicb.h
| r18302 | r18303 | |
| 51 | 51 | devcb_resolved_write_line out_req_func; |
| 52 | 52 | devcb_resolved_write_line out_rst_func; |
| 53 | 53 | |
| 54 | UINT8 scsi_data_r(); |
| 55 | void scsi_data_w( UINT8 data ); |
| 56 | |
| 57 | UINT8 get_scsi_line(UINT8 lineno); |
| 58 | void set_scsi_line(UINT8 line, UINT8 state); |
| 59 | |
| 60 | DECLARE_READ8_MEMBER( scsi_data_r ); |
| 61 | DECLARE_WRITE8_MEMBER( scsi_data_w ); |
| 62 | |
| 63 | DECLARE_READ_LINE_MEMBER( scsi_bsy_r ); |
| 64 | DECLARE_READ_LINE_MEMBER( scsi_sel_r ); |
| 65 | DECLARE_READ_LINE_MEMBER( scsi_cd_r ); |
| 66 | DECLARE_READ_LINE_MEMBER( scsi_io_r ); |
| 67 | DECLARE_READ_LINE_MEMBER( scsi_msg_r ); |
| 68 | DECLARE_READ_LINE_MEMBER( scsi_req_r ); |
| 69 | DECLARE_READ_LINE_MEMBER( scsi_ack_r ); |
| 70 | DECLARE_READ_LINE_MEMBER( scsi_rst_r ); |
| 71 | |
| 72 | DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w ); |
| 73 | DECLARE_WRITE_LINE_MEMBER( scsi_sel_w ); |
| 74 | DECLARE_WRITE_LINE_MEMBER( scsi_cd_w ); |
| 75 | DECLARE_WRITE_LINE_MEMBER( scsi_io_w ); |
| 76 | DECLARE_WRITE_LINE_MEMBER( scsi_msg_w ); |
| 77 | DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); |
| 78 | DECLARE_WRITE_LINE_MEMBER( scsi_ack_w ); |
| 79 | DECLARE_WRITE_LINE_MEMBER( scsi_rst_w ); |
| 80 | |
| 54 | 81 | protected: |
| 55 | 82 | // device-level overrides |
| 56 | 83 | virtual void device_config_complete(); |
trunk/src/mess/machine/lux4105.c
| r18302 | r18303 | |
| 178 | 178 | luxor_4105_device::luxor_4105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 179 | 179 | : device_t(mconfig, LUXOR_4105, "Luxor 4105", tag, owner, clock), |
| 180 | 180 | device_abc1600bus_card_interface(mconfig, *this), |
| 181 | | m_sasibus(*this, SASIBUS_TAG), |
| 181 | m_sasibus(*this, SASIBUS_TAG ":host"), |
| 182 | 182 | m_io(1) |
| 183 | 183 | { |
| 184 | 184 | } |
trunk/src/mess/machine/d9060.c
| r18302 | r18303 | |
| 424 | 424 | |
| 425 | 425 | static const via6522_interface via_intf = |
| 426 | 426 | { |
| 427 | | DEVCB_DEVICE_MEMBER(SASIBUS_TAG, scsibus_device, scsi_data_r), |
| 427 | DEVCB_DEVICE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_data_r), |
| 428 | 428 | DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_r), |
| 429 | 429 | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, req_r), |
| 430 | 430 | DEVCB_NULL, |
| 431 | 431 | DEVCB_NULL, |
| 432 | 432 | DEVCB_NULL, |
| 433 | 433 | |
| 434 | | DEVCB_DEVICE_MEMBER(SASIBUS_TAG, scsibus_device, scsi_data_w), |
| 434 | DEVCB_DEVICE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_data_w), |
| 435 | 435 | DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_w), |
| 436 | 436 | DEVCB_NULL, |
| 437 | 437 | DEVCB_NULL, |
| r18302 | r18303 | |
| 514 | 514 | m_riot0(*this, M6532_0_TAG), |
| 515 | 515 | m_riot1(*this, M6532_1_TAG), |
| 516 | 516 | m_via(*this, M6522_TAG), |
| 517 | | m_sasibus(*this, SASIBUS_TAG), |
| 517 | m_sasibus(*this, SASIBUS_TAG ":host"), |
| 518 | 518 | m_rfdo(1), |
| 519 | 519 | m_daco(1), |
| 520 | 520 | m_atna(1), |
trunk/src/mess/machine/e01.c
| r18302 | r18303 | |
| 455 | 455 | m_adlc(*this, MC6854_TAG), |
| 456 | 456 | m_rtc(*this, HD146818_TAG), |
| 457 | 457 | m_ram(*this, RAM_TAG), |
| 458 | | m_scsibus(*this, SCSIBUS_TAG), |
| 458 | m_scsibus(*this, SCSIBUS_TAG ":host"), |
| 459 | 459 | m_adlc_ie(0), |
| 460 | 460 | m_hdc_ie(0), |
| 461 | 461 | m_rtc_irq(CLEAR_LINE), |
| r18302 | r18303 | |
| 477 | 477 | m_adlc(*this, MC6854_TAG), |
| 478 | 478 | m_rtc(*this, HD146818_TAG), |
| 479 | 479 | m_ram(*this, RAM_TAG), |
| 480 | | m_scsibus(*this, SCSIBUS_TAG), |
| 480 | m_scsibus(*this, SCSIBUS_TAG ":host"), |
| 481 | 481 | m_adlc_ie(0), |
| 482 | 482 | m_hdc_ie(0), |
| 483 | 483 | m_rtc_irq(CLEAR_LINE), |
trunk/src/mess/includes/v1050.h
| r18302 | r18303 | |
| 74 | 74 | m_timer_sio(*this, TIMER_SIO_TAG), |
| 75 | 75 | m_timer_ack(*this, TIMER_ACK_TAG), |
| 76 | 76 | m_timer_rst(*this, TIMER_RST_TAG), |
| 77 | | m_sasibus(*this, SASIBUS_TAG) |
| 77 | m_sasibus(*this, SASIBUS_TAG ":host") |
| 78 | 78 | , |
| 79 | 79 | m_video_ram(*this, "video_ram"){ } |
| 80 | 80 | |
| r18302 | r18303 | |
| 93 | 93 | required_device<timer_device> m_timer_sio; |
| 94 | 94 | required_device<timer_device> m_timer_ack; |
| 95 | 95 | required_device<timer_device> m_timer_rst; |
| 96 | | required_device<scsibus_device> m_sasibus; |
| 96 | required_device<scsicb_device> m_sasibus; |
| 97 | 97 | |
| 98 | 98 | virtual void machine_start(); |
| 99 | 99 | virtual void machine_reset(); |
trunk/src/mess/includes/bullet.h
| r18302 | r18303 | |
| 102 | 102 | public: |
| 103 | 103 | bulletf_state(const machine_config &mconfig, device_type type, const char *tag) |
| 104 | 104 | : bullet_state(mconfig, type, tag), |
| 105 | | m_scsibus(*this, SCSIBUS_TAG) |
| 105 | m_scsibus(*this, SCSIBUS_TAG ":host") |
| 106 | 106 | { } |
| 107 | 107 | |
| 108 | | required_device<scsibus_device> m_scsibus; |
| 108 | required_device<scsicb_device> m_scsibus; |
| 109 | 109 | |
| 110 | 110 | virtual void machine_start(); |
| 111 | 111 | virtual void machine_reset(); |
trunk/src/mess/drivers/v1050.c
| r18302 | r18303 | |
| 446 | 446 | AM_RANGE(0xb0, 0xb0) AM_READWRITE(dint_clr_r, dint_clr_w) |
| 447 | 447 | AM_RANGE(0xc0, 0xc0) AM_WRITE(v1050_i8214_w) |
| 448 | 448 | AM_RANGE(0xd0, 0xd0) AM_WRITE(bank_w) |
| 449 | | AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE(SASIBUS_TAG, scsibus_device, scsi_data_r, scsi_data_w) |
| 449 | AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE(SASIBUS_TAG ":host", scsicb_device, scsi_data_r, scsi_data_w) |
| 450 | 450 | AM_RANGE(0xe1, 0xe1) AM_READWRITE(sasi_status_r, sasi_ctrl_w) |
| 451 | 451 | ADDRESS_MAP_END |
| 452 | 452 | |