trunk/src/emu/machine/scsicb.c
r18341 | r18342 | |
25 | 25 | out_msg_func.resolve(_out_msg_func, *this); |
26 | 26 | out_req_func.resolve(_out_req_func, *this); |
27 | 27 | out_ack_func.resolve(_out_ack_func, *this); |
| 28 | out_atn_func.resolve(_out_atn_func, *this); |
28 | 29 | out_rst_func.resolve(_out_rst_func, *this); |
29 | 30 | } |
30 | 31 | |
r18341 | r18342 | |
69 | 70 | READ_LINE_MEMBER( scsicb_device::scsi_msg_r ) { return get_scsi_line(SCSI_LINE_MSG); } |
70 | 71 | READ_LINE_MEMBER( scsicb_device::scsi_req_r ) { return get_scsi_line(SCSI_LINE_REQ); } |
71 | 72 | READ_LINE_MEMBER( scsicb_device::scsi_ack_r ) { return get_scsi_line(SCSI_LINE_ACK); } |
72 | | READ_LINE_MEMBER( scsicb_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RESET); } |
| 73 | READ_LINE_MEMBER( scsicb_device::scsi_atn_r ) { return get_scsi_line(SCSI_LINE_ATN); } |
| 74 | READ_LINE_MEMBER( scsicb_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RST); } |
73 | 75 | |
74 | 76 | WRITE_LINE_MEMBER( scsicb_device::scsi_bsy_w ) { set_scsi_line(SCSI_LINE_BSY, state); } |
75 | 77 | WRITE_LINE_MEMBER( scsicb_device::scsi_sel_w ) { set_scsi_line(SCSI_LINE_SEL, state); } |
r18341 | r18342 | |
78 | 80 | WRITE_LINE_MEMBER( scsicb_device::scsi_msg_w ) { set_scsi_line(SCSI_LINE_MSG, state); } |
79 | 81 | WRITE_LINE_MEMBER( scsicb_device::scsi_req_w ) { set_scsi_line(SCSI_LINE_REQ, state); } |
80 | 82 | WRITE_LINE_MEMBER( scsicb_device::scsi_ack_w ) { set_scsi_line(SCSI_LINE_ACK, state); } |
81 | | WRITE_LINE_MEMBER( scsicb_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RESET, state); } |
| 83 | WRITE_LINE_MEMBER( scsicb_device::scsi_atn_w ) { set_scsi_line(SCSI_LINE_ATN, state); } |
| 84 | WRITE_LINE_MEMBER( scsicb_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RST, state); } |
82 | 85 | |
83 | 86 | const device_type SCSICB = &device_creator<scsicb_device>; |
trunk/src/emu/machine/scsicb.h
r18341 | r18342 | |
32 | 32 | devcb_write_line _out_msg_func; |
33 | 33 | devcb_write_line _out_req_func; |
34 | 34 | devcb_write_line _out_ack_func; |
| 35 | devcb_write_line _out_atn_func; |
35 | 36 | devcb_write_line _out_rst_func; |
36 | 37 | }; |
37 | 38 | |
r18341 | r18342 | |
49 | 50 | devcb_resolved_write_line out_msg_func; |
50 | 51 | devcb_resolved_write_line out_req_func; |
51 | 52 | devcb_resolved_write_line out_ack_func; |
| 53 | devcb_resolved_write_line out_atn_func; |
52 | 54 | devcb_resolved_write_line out_rst_func; |
53 | 55 | |
54 | 56 | UINT8 scsi_data_r(); |
r18341 | r18342 | |
67 | 69 | DECLARE_READ_LINE_MEMBER( scsi_msg_r ); |
68 | 70 | DECLARE_READ_LINE_MEMBER( scsi_req_r ); |
69 | 71 | DECLARE_READ_LINE_MEMBER( scsi_ack_r ); |
| 72 | DECLARE_READ_LINE_MEMBER( scsi_atn_r ); |
70 | 73 | DECLARE_READ_LINE_MEMBER( scsi_rst_r ); |
71 | 74 | |
72 | 75 | DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w ); |
r18341 | r18342 | |
76 | 79 | DECLARE_WRITE_LINE_MEMBER( scsi_msg_w ); |
77 | 80 | DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); |
78 | 81 | DECLARE_WRITE_LINE_MEMBER( scsi_ack_w ); |
| 82 | DECLARE_WRITE_LINE_MEMBER( scsi_atn_w ); |
79 | 83 | DECLARE_WRITE_LINE_MEMBER( scsi_rst_w ); |
80 | 84 | |
81 | 85 | protected: |
trunk/src/emu/machine/scsibus.c
r18341 | r18342 | |
168 | 168 | |
169 | 169 | switch (lineno) |
170 | 170 | { |
| 171 | case SCSI_LINE_BSY: result=(linestate & (1<<SCSI_LINE_BSY)) >> SCSI_LINE_BSY; break; |
171 | 172 | case SCSI_LINE_SEL: result=(linestate & (1<<SCSI_LINE_SEL)) >> SCSI_LINE_SEL; break; |
172 | | case SCSI_LINE_BSY: result=(linestate & (1<<SCSI_LINE_BSY)) >> SCSI_LINE_BSY; break; |
173 | | case SCSI_LINE_REQ: result=(linestate & (1<<SCSI_LINE_REQ)) >> SCSI_LINE_REQ; break; |
174 | | case SCSI_LINE_ACK: result=(linestate & (1<<SCSI_LINE_ACK)) >> SCSI_LINE_ACK; break; |
175 | 173 | case SCSI_LINE_CD: result=(linestate & (1<<SCSI_LINE_CD )) >> SCSI_LINE_CD; break; |
176 | 174 | case SCSI_LINE_IO: result=(linestate & (1<<SCSI_LINE_IO )) >> SCSI_LINE_IO; break; |
177 | 175 | case SCSI_LINE_MSG: result=(linestate & (1<<SCSI_LINE_MSG)) >> SCSI_LINE_MSG; break; |
178 | | case SCSI_LINE_RESET: result=(linestate & (1<<SCSI_LINE_RESET)) >> SCSI_LINE_RESET; break; |
| 176 | case SCSI_LINE_REQ: result=(linestate & (1<<SCSI_LINE_REQ)) >> SCSI_LINE_REQ; break; |
| 177 | case SCSI_LINE_ACK: result=(linestate & (1<<SCSI_LINE_ACK)) >> SCSI_LINE_ACK; break; |
| 178 | case SCSI_LINE_ATN: result=(linestate & (1<<SCSI_LINE_ATN)) >> SCSI_LINE_MSG; break; |
| 179 | case SCSI_LINE_RST: result=(linestate & (1<<SCSI_LINE_RST)) >> SCSI_LINE_RST; break; |
179 | 180 | } |
180 | 181 | |
181 | 182 | LOG(3,"get_scsi_line(%s)=%d\n",linenames[lineno],result); |
r18341 | r18342 | |
328 | 329 | void *hdfile; |
329 | 330 | |
330 | 331 | // Reset aborts and returns to bus free |
331 | | if((line==SCSI_LINE_RESET) && (state==0)) |
| 332 | if((line==SCSI_LINE_RST) && (state==0)) |
332 | 333 | { |
333 | 334 | scsi_change_phase(SCSI_PHASE_BUS_FREE); |
334 | 335 | cmd_idx=0; |
r18341 | r18342 | |
500 | 501 | case SCSI_LINE_MSG: m_scsicb->out_msg_func(state); break; |
501 | 502 | case SCSI_LINE_REQ: m_scsicb->out_req_func(state); break; |
502 | 503 | case SCSI_LINE_ACK: m_scsicb->out_ack_func(state); break; |
503 | | case SCSI_LINE_RESET: m_scsicb->out_rst_func(state); break; |
| 504 | case SCSI_LINE_ATN: m_scsicb->out_atn_func(state); break; |
| 505 | case SCSI_LINE_RST: m_scsicb->out_rst_func(state); break; |
504 | 506 | } |
505 | 507 | } |
506 | 508 | } |