Previous 199869 Revisions Next

r18303 Saturday 6th October, 2012 at 10:28:31 UTC by smf
talking to scsibus is now done via scsicb (nw)
[src/emu/machine]scsibus.c scsibus.h scsicb.c scsicb.h scsihd.c
[src/mess/drivers]v1050.c
[src/mess/includes]bullet.h v1050.h
[src/mess/machine]d9060.c d9060.h e01.c e01.h lux4105.c lux4105.h

trunk/src/emu/machine/scsibus.c
r18302r18303
111111   return result;
112112}
113113
114READ8_MEMBER( scsibus_device::scsi_data_r )
115{
116   return scsi_data_r();
117}
118
119114void scsibus_device::scsi_data_w( UINT8 data )
120115{
121116   switch (phase)
r18302r18303
165160   }
166161}
167162
168WRITE8_MEMBER( scsibus_device::scsi_data_w )
169{
170   scsi_data_w( data );
171}
172
173163/* Get/Set lines */
174164
175165UINT8 scsibus_device::get_scsi_line(UINT8 lineno)
r18302r18303
193183   return result;
194184}
195185
196READ_LINE_MEMBER( scsibus_device::scsi_bsy_r ) { return get_scsi_line(SCSI_LINE_BSY); }
197READ_LINE_MEMBER( scsibus_device::scsi_sel_r ) { return get_scsi_line(SCSI_LINE_SEL); }
198READ_LINE_MEMBER( scsibus_device::scsi_cd_r ) { return get_scsi_line(SCSI_LINE_CD); }
199READ_LINE_MEMBER( scsibus_device::scsi_io_r ) { return get_scsi_line(SCSI_LINE_IO); }
200READ_LINE_MEMBER( scsibus_device::scsi_msg_r ) { return get_scsi_line(SCSI_LINE_MSG); }
201READ_LINE_MEMBER( scsibus_device::scsi_req_r ) { return get_scsi_line(SCSI_LINE_REQ); }
202READ_LINE_MEMBER( scsibus_device::scsi_ack_r ) { return get_scsi_line(SCSI_LINE_ACK); }
203READ_LINE_MEMBER( scsibus_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RESET); }
204
205186void scsibus_device::set_scsi_line(UINT8 line, UINT8 state)
206187{
207188   UINT8 changed;
r18302r18303
219200   }
220201}
221202
222WRITE_LINE_MEMBER( scsibus_device::scsi_bsy_w ) { set_scsi_line(SCSI_LINE_BSY, state); }
223WRITE_LINE_MEMBER( scsibus_device::scsi_sel_w ) { set_scsi_line(SCSI_LINE_SEL, state); }
224WRITE_LINE_MEMBER( scsibus_device::scsi_cd_w ) { set_scsi_line(SCSI_LINE_CD, state); }
225WRITE_LINE_MEMBER( scsibus_device::scsi_io_w ) { set_scsi_line(SCSI_LINE_IO, state); }
226WRITE_LINE_MEMBER( scsibus_device::scsi_msg_w ) { set_scsi_line(SCSI_LINE_MSG, state); }
227WRITE_LINE_MEMBER( scsibus_device::scsi_req_w ) { set_scsi_line(SCSI_LINE_REQ, state); }
228WRITE_LINE_MEMBER( scsibus_device::scsi_ack_w ) { set_scsi_line(SCSI_LINE_ACK, state); }
229WRITE_LINE_MEMBER( scsibus_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RESET, state); }
230
231203void scsibus_device::set_scsi_line_now(UINT8 line, UINT8 state)
232204{
233205   if(state)
trunk/src/emu/machine/scsibus.h
r18302r18303
9292
9393   UINT8 scsi_data_r();
9494   void scsi_data_w( UINT8 data );
95   DECLARE_READ8_MEMBER( scsi_data_r );
96   DECLARE_WRITE8_MEMBER( scsi_data_w );
9795
9896   /* Get/Set lines */
9997
10098   UINT8 get_scsi_line(UINT8 lineno);
10199   void set_scsi_line(UINT8 line, UINT8 state);
102100
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
121101protected:
122102   // device-level overrides
123103   virtual void device_start();
trunk/src/emu/machine/scsicb.c
r18302r18303
11#include "scsicb.h"
2#include "scsibus.h"
23
34scsicb_device::scsicb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
45    : device_t(mconfig, SCSICB, "SCSI callback", tag, owner, clock)
r18302r18303
2627   out_rst_func.resolve(_out_rst_func, *this);
2728}
2829
30UINT8 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
36void 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
42UINT8 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
48void 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
54READ8_MEMBER( scsicb_device::scsi_data_r )
55{
56   return scsi_data_r();
57}
58
59WRITE8_MEMBER( scsicb_device::scsi_data_w )
60{
61   scsi_data_w( data );
62}
63
64READ_LINE_MEMBER( scsicb_device::scsi_bsy_r ) { return get_scsi_line(SCSI_LINE_BSY); }
65READ_LINE_MEMBER( scsicb_device::scsi_sel_r ) { return get_scsi_line(SCSI_LINE_SEL); }
66READ_LINE_MEMBER( scsicb_device::scsi_cd_r ) { return get_scsi_line(SCSI_LINE_CD); }
67READ_LINE_MEMBER( scsicb_device::scsi_io_r ) { return get_scsi_line(SCSI_LINE_IO); }
68READ_LINE_MEMBER( scsicb_device::scsi_msg_r ) { return get_scsi_line(SCSI_LINE_MSG); }
69READ_LINE_MEMBER( scsicb_device::scsi_req_r ) { return get_scsi_line(SCSI_LINE_REQ); }
70READ_LINE_MEMBER( scsicb_device::scsi_ack_r ) { return get_scsi_line(SCSI_LINE_ACK); }
71READ_LINE_MEMBER( scsicb_device::scsi_rst_r ) { return get_scsi_line(SCSI_LINE_RESET); }
72
73WRITE_LINE_MEMBER( scsicb_device::scsi_bsy_w ) { set_scsi_line(SCSI_LINE_BSY, state); }
74WRITE_LINE_MEMBER( scsicb_device::scsi_sel_w ) { set_scsi_line(SCSI_LINE_SEL, state); }
75WRITE_LINE_MEMBER( scsicb_device::scsi_cd_w ) { set_scsi_line(SCSI_LINE_CD, state); }
76WRITE_LINE_MEMBER( scsicb_device::scsi_io_w ) { set_scsi_line(SCSI_LINE_IO, state); }
77WRITE_LINE_MEMBER( scsicb_device::scsi_msg_w ) { set_scsi_line(SCSI_LINE_MSG, state); }
78WRITE_LINE_MEMBER( scsicb_device::scsi_req_w ) { set_scsi_line(SCSI_LINE_REQ, state); }
79WRITE_LINE_MEMBER( scsicb_device::scsi_ack_w ) { set_scsi_line(SCSI_LINE_ACK, state); }
80WRITE_LINE_MEMBER( scsicb_device::scsi_rst_w ) { set_scsi_line(SCSI_LINE_RESET, state); }
81
2982const device_type SCSICB = &device_creator<scsicb_device>;
trunk/src/emu/machine/scsicb.h
r18302r18303
5151   devcb_resolved_write_line out_req_func;
5252   devcb_resolved_write_line out_rst_func;
5353
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
5481protected:
5582   // device-level overrides
5683   virtual void device_config_complete();
trunk/src/emu/machine/scsihd.c
r18302r18303
2525
2626void scsihd_device::device_start()
2727{
28   scsihle_device::device_start();
29
2830   save_item( NAME( lba ) );
2931   save_item( NAME( blocks ) );
3032}
trunk/src/mess/machine/lux4105.c
r18302r18303
178178luxor_4105_device::luxor_4105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
179179    : device_t(mconfig, LUXOR_4105, "Luxor 4105", tag, owner, clock),
180180     device_abc1600bus_card_interface(mconfig, *this),
181     m_sasibus(*this, SASIBUS_TAG),
181     m_sasibus(*this, SASIBUS_TAG ":host"),
182182     m_io(1)
183183{
184184}
trunk/src/mess/machine/lux4105.h
r18302r18303
7171
7272   abc1600bus_slot_device *m_slot;
7373
74   required_device<scsibus_device> m_sasibus;
74   required_device<scsicb_device> m_sasibus;
7575
7676   int m_cs;
7777   int m_io;
trunk/src/mess/machine/d9060.c
r18302r18303
424424
425425static const via6522_interface via_intf =
426426{
427   DEVCB_DEVICE_MEMBER(SASIBUS_TAG, scsibus_device, scsi_data_r),
427   DEVCB_DEVICE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_data_r),
428428   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_r),
429429   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, req_r),
430430   DEVCB_NULL,
431431   DEVCB_NULL,
432432   DEVCB_NULL,
433433
434   DEVCB_DEVICE_MEMBER(SASIBUS_TAG, scsibus_device, scsi_data_w),
434   DEVCB_DEVICE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_data_w),
435435   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_w),
436436   DEVCB_NULL,
437437   DEVCB_NULL,
r18302r18303
514514     m_riot0(*this, M6532_0_TAG),
515515     m_riot1(*this, M6532_1_TAG),
516516     m_via(*this, M6522_TAG),
517     m_sasibus(*this, SASIBUS_TAG),
517     m_sasibus(*this, SASIBUS_TAG ":host"),
518518     m_rfdo(1),
519519     m_daco(1),
520520     m_atna(1),
trunk/src/mess/machine/d9060.h
r18302r18303
9090   required_device<riot6532_device> m_riot0;
9191   required_device<riot6532_device> m_riot1;
9292   required_device<via6522_device> m_via;
93   required_device<scsibus_device> m_sasibus;
93   required_device<scsicb_device> m_sasibus;
9494
9595   // IEEE-488 bus
9696   int m_rfdo;                     // not ready for data output
trunk/src/mess/machine/e01.c
r18302r18303
455455     m_adlc(*this, MC6854_TAG),
456456     m_rtc(*this, HD146818_TAG),
457457     m_ram(*this, RAM_TAG),
458     m_scsibus(*this, SCSIBUS_TAG),
458     m_scsibus(*this, SCSIBUS_TAG ":host"),
459459     m_adlc_ie(0),
460460     m_hdc_ie(0),
461461     m_rtc_irq(CLEAR_LINE),
r18302r18303
477477     m_adlc(*this, MC6854_TAG),
478478     m_rtc(*this, HD146818_TAG),
479479     m_ram(*this, RAM_TAG),
480     m_scsibus(*this, SCSIBUS_TAG),
480     m_scsibus(*this, SCSIBUS_TAG ":host"),
481481     m_adlc_ie(0),
482482     m_hdc_ie(0),
483483     m_rtc_irq(CLEAR_LINE),
trunk/src/mess/machine/e01.h
r18302r18303
8484   required_device<device_t> m_adlc;
8585   required_device<mc146818_device> m_rtc;
8686   required_device<ram_device> m_ram;
87   required_device<scsibus_device> m_scsibus;
87   required_device<scsicb_device> m_scsibus;
8888
8989   inline void update_interrupts();
9090   inline void network_irq_enable(int enabled);
trunk/src/mess/includes/v1050.h
r18302r18303
7474        m_timer_sio(*this, TIMER_SIO_TAG),
7575        m_timer_ack(*this, TIMER_ACK_TAG),
7676        m_timer_rst(*this, TIMER_RST_TAG),
77        m_sasibus(*this, SASIBUS_TAG)
77        m_sasibus(*this, SASIBUS_TAG ":host")
7878   ,
7979      m_video_ram(*this, "video_ram"){ }
8080
r18302r18303
9393   required_device<timer_device> m_timer_sio;
9494   required_device<timer_device> m_timer_ack;
9595   required_device<timer_device> m_timer_rst;
96   required_device<scsibus_device> m_sasibus;
96   required_device<scsicb_device> m_sasibus;
9797
9898   virtual void machine_start();
9999   virtual void machine_reset();
trunk/src/mess/includes/bullet.h
r18302r18303
102102public:
103103   bulletf_state(const machine_config &mconfig, device_type type, const char *tag)
104104      : bullet_state(mconfig, type, tag),
105        m_scsibus(*this, SCSIBUS_TAG)
105        m_scsibus(*this, SCSIBUS_TAG ":host")
106106   { }
107107
108   required_device<scsibus_device> m_scsibus;
108   required_device<scsicb_device> m_scsibus;
109109
110110   virtual void machine_start();
111111   virtual void machine_reset();
trunk/src/mess/drivers/v1050.c
r18302r18303
446446   AM_RANGE(0xb0, 0xb0) AM_READWRITE(dint_clr_r, dint_clr_w)
447447   AM_RANGE(0xc0, 0xc0) AM_WRITE(v1050_i8214_w)
448448   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)
450450   AM_RANGE(0xe1, 0xe1) AM_READWRITE(sasi_status_r, sasi_ctrl_w)
451451ADDRESS_MAP_END
452452

Previous 199869 Revisions Next


© 1997-2024 The MAME Team