Previous 15994 Revisions Next

r14317 Thursday 2nd February, 2012 at 13:12:44 UTC by Miodrag Milanović
moved latching to pc_lpt and implemented pull-up read (nw)
[src/emu/machine]ctronics.c ctronics.h
[src/mess/machine]cntr_covox.c pc_lpt.c

src/emu/machine/ctronics.c
r14316r14317
9797   m_fault = FALSE;
9898   m_busy = TRUE;
9999   m_strobe = TRUE;
100   m_data = 0x00;
100101}
101102
102103
src/emu/machine/ctronics.h
r14316r14317
6363   centronics_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
6464   virtual ~centronics_device();
6565     
66   DECLARE_WRITE8_MEMBER( write ) { if (m_dev) m_dev->write(data); m_data = data; }
67   DECLARE_READ8_MEMBER( read ) {  return (m_dev) ? m_dev->read() : m_data; }
66   DECLARE_WRITE8_MEMBER( write ) { if (m_dev) m_dev->write(data); }
67   DECLARE_READ8_MEMBER( read ) {  return (m_dev) ? m_dev->read() : 0x00; }
6868
6969   /* access to the individual bits */
7070   DECLARE_WRITE_LINE_MEMBER( d0_w ) { if (m_dev) m_dev->set_line(0, state); }
r14316r14317
101101   devcb_resolved_write_line m_out_ack_func;
102102   devcb_resolved_write_line m_out_busy_func;
103103   devcb_resolved_write_line m_out_not_busy_func;
104   
105   UINT8 m_data;
106104};
107105
108106// device type definition
r14316r14317
129127   // optional centronics overrides
130128   virtual void strobe_w(UINT8 state);
131129   virtual void init_prime_w(UINT8 state);   
130   virtual UINT8 read() {  return 0x00; }
132131protected:
133132    // device-level overrides
134133    virtual void device_start();
src/mess/machine/pc_lpt.c
r14316r14317
2828
2929   devcb_resolved_write_line out_irq_func;
3030
31   UINT8 data;
32   
3133   int ack;
3234
3335   /* control latch */
r14316r14317
109111   lpt->init = FALSE;
110112   lpt->select = TRUE;
111113   lpt->irq_enabled = FALSE;
114   lpt->data = 0xff;
112115}
113116
114117DEVICE_GET_INFO( pc_lpt )
r14316r14317
159162READ8_DEVICE_HANDLER( pc_lpt_data_r )
160163{
161164   pc_lpt_state *lpt = get_safe_token(device);
162   return lpt->centronics->read(*memory_nonspecific_space(device->machine()) , 0);
165   // pull up mechanism for input lines, zeros are provided by pheripherial
166   return lpt->data & ~lpt->centronics->read(*memory_nonspecific_space(device->machine()), 0);
163167}
164168
165169
166170WRITE8_DEVICE_HANDLER( pc_lpt_data_w )
167171{
168172   pc_lpt_state *lpt = get_safe_token(device);
173   lpt->data = data;
169174   lpt->centronics->write(*memory_nonspecific_space(device->machine()), 0, data);
170175}
171176
src/mess/machine/cntr_covox.c
r14316r14317
5454
5555void centronics_covox_device::write(UINT8 data)
5656{
57   m_data = data;
5857   dac_w(m_dac, 0, data);
5958}
No newline at end of file

Previous 15994 Revisions Next


© 1998-2018 The MESS Team