Previous 199869 Revisions Next

r26851 Wednesday 1st January, 2014 at 10:54:45 UTC by smf
converted pa* & pb* inputs to WRITE_LINE_MEMBER [smf]
[src/emu/machine]6522via.c 6522via.h
[src/mess/drivers]ssystem3.c
[src/mess/machine]lisa.c

trunk/src/emu/machine/6522via.c
r26850r26851
961961   }
962962}
963963
964void via6522_device::write_pa(int line, int state)
965{
966   if (state)
967      m_in_a |= (1 << line);
968   else
969      m_in_a &= ~(1 << line);
970}
964971
965972/*-------------------------------------------------
966973    ca1_w - interface setting VIA port CA1 input
r26850r26851
10341041   }
10351042}
10361043
1044void via6522_device::write_pb(int line, int state)
1045{
1046   if (state)
1047      m_in_b |= (1 << line);
1048   else
1049      m_in_b &= ~(1 << line);
1050}
10371051
10381052/*-------------------------------------------------
10391053    cb1_w - interface setting VIA port CB1 input
trunk/src/emu/machine/6522via.h
r26850r26851
112112   DECLARE_READ_LINE_MEMBER( read_cb1 ) { return m_in_cb1; }
113113   DECLARE_READ_LINE_MEMBER( read_cb2 ) { return m_in_cb2; }
114114
115   // TODO: CONVERT THESE TO WRITE LINE
116   DECLARE_WRITE8_MEMBER( write_porta ) { m_in_a = data; }
117   DECLARE_WRITE8_MEMBER( write_portb ) { m_in_b = data; }
118
115   DECLARE_WRITE_LINE_MEMBER( write_pa0 ) { write_pa(0, state); }
116   DECLARE_WRITE_LINE_MEMBER( write_pa1 ) { write_pa(1, state); }
117   DECLARE_WRITE_LINE_MEMBER( write_pa2 ) { write_pa(2, state); }
118   DECLARE_WRITE_LINE_MEMBER( write_pa3 ) { write_pa(3, state); }
119   DECLARE_WRITE_LINE_MEMBER( write_pa4 ) { write_pa(4, state); }
120   DECLARE_WRITE_LINE_MEMBER( write_pa5 ) { write_pa(5, state); }
121   DECLARE_WRITE_LINE_MEMBER( write_pa6 ) { write_pa(6, state); }
122   DECLARE_WRITE_LINE_MEMBER( write_pa7 ) { write_pa(7, state); }
119123   DECLARE_WRITE_LINE_MEMBER( write_ca1 );
120124   DECLARE_WRITE_LINE_MEMBER( write_ca2 );
125
126   DECLARE_WRITE_LINE_MEMBER( write_pb0 ) { write_pb(0, state); }
127   DECLARE_WRITE_LINE_MEMBER( write_pb1 ) { write_pb(1, state); }
128   DECLARE_WRITE_LINE_MEMBER( write_pb2 ) { write_pb(2, state); }
129   DECLARE_WRITE_LINE_MEMBER( write_pb3 ) { write_pb(3, state); }
130   DECLARE_WRITE_LINE_MEMBER( write_pb4 ) { write_pb(4, state); }
131   DECLARE_WRITE_LINE_MEMBER( write_pb5 ) { write_pb(5, state); }
132   DECLARE_WRITE_LINE_MEMBER( write_pb6 ) { write_pb(6, state); }
133   DECLARE_WRITE_LINE_MEMBER( write_pb7 ) { write_pb(7, state); }
121134   DECLARE_WRITE_LINE_MEMBER( write_cb1 );
122135   DECLARE_WRITE_LINE_MEMBER( write_cb2 );
123136
r26850r26851
159172   void set_int(int data);
160173   void clear_int(int data);
161174   void shift();
175   void write_pa(int line, int state);
176   void write_pb(int line, int state);
162177
163178   // TODO: REMOVE THESE
164179   devcb2_read8 m_in_a_handler;
trunk/src/mess/drivers/ssystem3.c
r26850r26851
195195
196196WRITE8_MEMBER(ssystem3_state::ssystem3_via_write_b)
197197{
198   via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
199   UINT8 d;
200
201198   ssystem3_playfield_write(data&1, data&8);
202199   ssystem3_lcd_write(data&4, data&2);
203200
204   d=ssystem3_via_read_b(space, 0, mem_mask)&~0x40;
201   // TODO: figure out what this is trying to achieve
202   via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
203   UINT8 d=ssystem3_via_read_b(space, 0, mem_mask)&~0x40;
205204   if (data&0x80) d|=0x40;
206205   //  d&=~0x8f;
207   via_0->write_portb(space,0, d );
206   via_0->write_pb0((d>>0)&1);
207   via_0->write_pb1((d>>1)&1);
208   via_0->write_pb2((d>>2)&1);
209   via_0->write_pb3((d>>3)&1);
210   via_0->write_pb4((d>>4)&1);
211   via_0->write_pb5((d>>5)&1);
212   via_0->write_pb6((d>>6)&1);
213   via_0->write_pb7((d>>7)&1);
208214}
209215
210216DRIVER_INIT_MEMBER(ssystem3_state,ssystem3)
trunk/src/mess/machine/lisa.c
r26850r26851
194194
195195void lisa_state::COPS_send_data_if_possible()
196196{
197   address_space &space = m_maincpu->space(AS_PROGRAM);
198
199197   if ((! m_hold_COPS_data) && m_fifo_size && (! m_COPS_Ready))
200198   {
201199//        printf("COPsim: sending %02x to VIA\n", m_fifo_data[m_fifo_head]);
202200
203      m_via0->write_porta(space, 0, m_fifo_data[m_fifo_head]);   /* output data */
201      UINT8 data = m_fifo_data[m_fifo_head];/* output data */
202      m_via0->write_pa0((data>>0)&1);
203      m_via0->write_pa1((data>>1)&1);
204      m_via0->write_pa2((data>>2)&1);
205      m_via0->write_pa3((data>>3)&1);
206      m_via0->write_pa4((data>>4)&1);
207      m_via0->write_pa5((data>>5)&1);
208      m_via0->write_pa6((data>>6)&1);
209      m_via0->write_pa7((data>>7)&1);
210
204211      if (m_fifo_head == m_mouse_data_offset)
205212         m_mouse_data_offset = -1;    /* we just phased out the mouse data in buffer */
206213      m_fifo_head = (m_fifo_head+1) & 0x7;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team