Previous 199869 Revisions Next

r24024 Sunday 30th June, 2013 at 18:00:34 UTC by Carl
diserial: add attotime and clock-div forms of set_rate and rename check_for_start to rx_w (nw)
debugqt: don't hide cursor while in debugger (nw)
(mess) ibmpc: xt floppies for the xt (nw)
[src/emu]diserial.c diserial.h
[src/emu/imagedev]midiout.h
[src/emu/machine]ins8250.h microtch.h mos6551.c n68681.h
[src/mess/drivers]ibmpc.c
[src/mess/machine]esqpanel.h isa_sblaster.h keyboard.h terminal.h
[src/osd/sdl]debugqt.c

trunk/src/osd/sdl/debugqt.c
r24023r24024
242242
243243#if defined(SDLMAME_UNIX) || defined(SDLMAME_WIN32)
244244extern int sdl_entered_debugger;
245#elif defined(WIN32)
246void winwindow_update_cursor_state(running_machine &machine);
245247#endif
246248
247249void xxx_osd_interface::wait_for_debugger(device_t &device, bool firststop)
r24023r24024
307309         gather_save_configurations();
308310         break;
309311      }
312#if defined(WIN32) && !defined(SDLMAME_WIN32)
313      winwindow_update_cursor_state(machine()); // make sure the cursor isn't hidden while in debugger
314#endif
310315   }
311316}
312317
trunk/src/emu/diserial.c
r24023r24024
4040   }
4141   m_rcv_clock = NULL;
4242   m_tra_clock = NULL;
43   m_tra_baud = 0;
44   m_rcv_baud = 0;
43   m_tra_rate = attotime::never;
44   m_rcv_rate = attotime::never;
4545   m_tra_flags = 0;
4646   m_rcv_register_data = 0x8000;
4747   m_rcv_bit_count = 0;
r24023r24024
6767
6868void device_serial_interface::set_rcv_rate(int baud)
6969{
70   m_rcv_baud = baud;
70   m_rcv_rate = baud ? attotime::from_hz(baud) : attotime::never;
7171   receive_register_reset();
7272   m_rcv_clock->adjust(attotime::never);
7373}
7474
7575void device_serial_interface::set_tra_rate(int baud)
7676{
77   m_tra_baud = baud;
77   m_tra_rate = baud ? attotime::from_hz(baud) : attotime::never;
7878   transmit_register_reset();
7979   m_tra_clock->adjust(attotime::never);
8080}
8181
82void device_serial_interface::set_rcv_rate(attotime rate)
83{
84   m_rcv_rate = rate;
85   receive_register_reset();
86   m_rcv_clock->adjust(attotime::never);
87}
88
89void device_serial_interface::set_tra_rate(attotime rate)
90{
91   m_tra_rate = rate;
92   transmit_register_reset();
93   m_tra_clock->adjust(attotime::never);
94}
95
96void device_serial_interface::set_rcv_rate(UINT32 clock, int div)
97{
98   m_rcv_rate = attotime::from_hz(clock) / div;
99   receive_register_reset();
100   m_rcv_clock->adjust(attotime::never);
101}
102
103void device_serial_interface::set_tra_rate(UINT32 clock, int div)
104{
105   m_tra_rate = attotime::from_hz(clock) / div;
106   transmit_register_reset();
107   m_tra_clock->adjust(attotime::never);
108}
109
82110void device_serial_interface::tra_clock()
83111{
84112   tra_callback();
r24023r24024
131159   m_rcv_flags |= RECEIVE_REGISTER_WAITING_FOR_START_BIT;
132160}
133161
134UINT8 device_serial_interface::check_for_start(UINT8 bit)
162WRITE_LINE_MEMBER(device_serial_interface::rx_w)
135163{
136   m_rcv_line = bit;
164   m_rcv_line = state;
137165   if(m_rcv_flags & RECEIVE_REGISTER_SYNCHRONISED)
138      return 0;
139   receive_register_update_bit(bit);
166      return;
167   receive_register_update_bit(state);
140168   if(m_rcv_flags & RECEIVE_REGISTER_SYNCHRONISED)
141169   {
142      if(m_rcv_clock && m_rcv_baud)
170      if(m_rcv_clock && !(m_rcv_rate.is_never()))
143171         // make start delay just a bit longer to make sure we are called after the sender
144         m_rcv_clock->adjust(attotime::from_hz((m_rcv_baud*2)/3), 0, attotime::from_hz(m_rcv_baud));
145      return 1;
172         m_rcv_clock->adjust(((m_rcv_rate*3)/2), 0, m_rcv_rate);
146173   }
147   return 0;
174   return;
148175}
149176
150177/* this is generic code to be used in serial chip implementations */
r24023r24024
283310   int i;
284311   unsigned char transmit_data;
285312
286   if(m_tra_clock && m_tra_baud)
287      m_tra_clock->adjust(attotime::from_hz(m_tra_baud), 0, attotime::from_hz(m_tra_baud));
313   if(m_tra_clock && !m_tra_rate.is_never())
314      m_tra_clock->adjust(m_tra_rate, 0, m_tra_rate);
288315
289316   m_tra_bit_count_transmitted = 0;
290317   m_tra_bit_count = 0;
trunk/src/emu/diserial.h
r24023r24024
9191   void receive_register_update_bit(int bit);
9292   void receive_register_extract();
9393
94   void set_rcv_rate(attotime baud);
95   void set_tra_rate(attotime baud);
96   void set_rcv_rate(UINT32 clock, int div);
97   void set_tra_rate(UINT32 clock, int div);
9498   void set_rcv_rate(int baud);
9599   void set_tra_rate(int baud);
96100   void tra_clock();
r24023r24024
117121   void set_other_connection(device_serial_interface *other_connection);
118122
119123   void connect(device_serial_interface *other_connection);
120   UINT8 check_for_start(UINT8 bit);
124   DECLARE_WRITE_LINE_MEMBER(rx_w);
121125protected:
122126   UINT8 m_input_state;
123127   UINT8 m_connection_state;
r24023r24024
166170
167171   emu_timer *m_rcv_clock;
168172   emu_timer *m_tra_clock;
169   int m_rcv_baud;
170   int m_tra_baud;
173   attotime m_rcv_rate;
174   attotime m_tra_rate;
171175   UINT8 m_rcv_line;
172176
173177   device_serial_interface *m_other_connection;
trunk/src/emu/machine/microtch.h
r24023r24024
7474   microtouch_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7575   template<class _Object> static devcb2_base &static_set_stx_callback(device_t &device, _Object object) { return downcast<microtouch_serial_device &>(device).m_out_stx_func.set_callback(object); }
7676
77   DECLARE_WRITE_LINE_MEMBER(rx) { check_for_start(state); }
77   DECLARE_WRITE_LINE_MEMBER(rx) { device_serial_interface::rx_w(state); }
7878protected:
7979   virtual void device_start();
8080   virtual void tx(UINT8 data);
trunk/src/emu/machine/mos6551.c
r24023r24024
354354
355355WRITE_LINE_MEMBER( mos6551_device::rxd_w )
356356{
357   check_for_start(state);
357   device_serial_interface::rx_w(state);
358358}
359359
360360
trunk/src/emu/machine/ins8250.h
r24023r24024
3434   DECLARE_WRITE_LINE_MEMBER( dsr_w );
3535   DECLARE_WRITE_LINE_MEMBER( ri_w );
3636   DECLARE_WRITE_LINE_MEMBER( cts_w );
37   DECLARE_WRITE_LINE_MEMBER( rx_w ) { check_for_start(state); }
37   DECLARE_WRITE_LINE_MEMBER( rx_w ) { device_serial_interface::rx_w(state); }
3838   void input_callback(UINT8 state) { m_input_state = state; }
3939
4040protected:
trunk/src/emu/machine/n68681.h
r24023r24024
106106   DECLARE_WRITE8_HANDLER(write);
107107   UINT8 get_irq_vector() { return IVR; }
108108
109   DECLARE_WRITE_LINE_MEMBER( rx_a_w ) { m_chanA->check_for_start((UINT8)state); }
110   DECLARE_WRITE_LINE_MEMBER( rx_b_w ) { m_chanB->check_for_start((UINT8)state); }
109   DECLARE_WRITE_LINE_MEMBER( rx_a_w ) { m_chanA->device_serial_interface::rx_w((UINT8)state); }
110   DECLARE_WRITE_LINE_MEMBER( rx_b_w ) { m_chanB->device_serial_interface::rx_w((UINT8)state); }
111111
112112protected:
113113   // device-level overrides
trunk/src/emu/imagedev/midiout.h
r24023r24024
4747   virtual bool core_opens_image_file() const { return FALSE; }
4848   virtual const option_guide *create_option_guide() const { return NULL; }
4949
50   virtual void tx(UINT8 state) { check_for_start(state); }
50   virtual void tx(UINT8 state) { rx_w(state); }
5151
5252protected:
5353   // device-level overrides
trunk/src/mess/drivers/ibmpc.c
r24023r24024
309309
310310   MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "cga", false)
311311   MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "com", false)
312   MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "fdc", false)
312   MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "fdc_xt", false)
313313   MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "hdc", false)
314314   MCFG_ISA8_SLOT_ADD("mb:isa", "isa5", pc_isa8_cards, NULL, false)
315315
r24023r24024
343343
344344   MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "cga", false)
345345   MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "com", false)
346   MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "fdc", false)
346   MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "fdc_xt", false)
347347   MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "hdc", false)
348348   MCFG_ISA8_SLOT_ADD("mb:isa", "isa5", pc_isa8_cards, NULL, false)
349349   MCFG_ISA8_SLOT_ADD("mb:isa", "isa6", pc_isa8_cards, NULL, false)
trunk/src/mess/machine/terminal.h
r24023r24024
9494public:
9595   serial_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
9696
97   DECLARE_WRITE_LINE_MEMBER(rx_w) { m_tbit = state; check_for_start(state); }
97   DECLARE_WRITE_LINE_MEMBER(rx_w) { m_tbit = state; device_serial_interface::rx_w(state); }
9898   DECLARE_READ_LINE_MEMBER(tx_r);
9999   virtual void tx(UINT8 state) { rx_w(state); }
100100   virtual ioport_constructor device_input_ports() const;
trunk/src/mess/machine/keyboard.h
r24023r24024
8585   serial_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
8686   serial_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
8787
88   DECLARE_WRITE_LINE_MEMBER(rx_w) { m_tbit = state; check_for_start(state); }
88   DECLARE_WRITE_LINE_MEMBER(rx_w) { m_tbit = state; device_serial_interface::rx_w(state); }
8989   DECLARE_READ_LINE_MEMBER(tx_r);
9090   virtual ioport_constructor device_input_ports() const;
9191
trunk/src/mess/machine/esqpanel.h
r24023r24024
6060   // construction/destruction
6161   esqpanel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
6262
63   DECLARE_WRITE_LINE_MEMBER( rx_w ) { check_for_start(state); }
63   DECLARE_WRITE_LINE_MEMBER( rx_w ) { device_serial_interface::rx_w(state); }
6464
6565   virtual void send_to_display(UINT8 data) = 0;
6666
trunk/src/mess/machine/isa_sblaster.h
r24023r24024
117117      DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w);
118118      DECLARE_WRITE8_MEMBER(dsp_cmd_w);
119119
120      DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { check_for_start((UINT8)state); }
120      DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((UINT8)state); }
121121
122122protected:
123123      // device-level overrides

Previous 199869 Revisions Next


© 1997-2024 The MAME Team