summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/bus/centronics/epson_lx810l.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/bus/centronics/epson_lx810l.h')
-rw-r--r--src/emu/bus/centronics/epson_lx810l.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/emu/bus/centronics/epson_lx810l.h b/src/emu/bus/centronics/epson_lx810l.h
index 6c40abf50fb..f136af737e1 100644
--- a/src/emu/bus/centronics/epson_lx810l.h
+++ b/src/emu/bus/centronics/epson_lx810l.h
@@ -17,7 +17,6 @@
#include "machine/e05a30.h"
#include "machine/eepromser.h"
#include "machine/steppers.h"
-#include "sound/beep.h"
#include "sound/speaker.h"
@@ -74,6 +73,22 @@ public:
DECLARE_WRITE8_MEMBER(cr_stepper);
DECLARE_WRITE_LINE_MEMBER(e05a30_ready);
+ /* Centronics stuff */
+ virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) { if (m_e05a30) m_e05a30->centronics_input_strobe(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) { if (m_e05a30) m_e05a30->centronics_input_data0(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) { if (m_e05a30) m_e05a30->centronics_input_data1(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) { if (m_e05a30) m_e05a30->centronics_input_data2(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) { if (m_e05a30) m_e05a30->centronics_input_data3(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) { if (m_e05a30) m_e05a30->centronics_input_data4(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) { if (m_e05a30) m_e05a30->centronics_input_data5(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) { if (m_e05a30) m_e05a30->centronics_input_data6(state); }
+ virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) { if (m_e05a30) m_e05a30->centronics_input_data7(state); }
+ DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_ack) { output_ack(state); }
+ DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_busy) { output_busy(state); }
+ DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_perror) { output_perror(state); }
+ DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_fault) { output_fault(state); }
+ DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_select) { output_select(state); }
+
/* Panel buttons */
DECLARE_INPUT_CHANGED_MEMBER(online_sw);
@@ -81,19 +96,27 @@ protected:
// device-level overrides
virtual void device_start();
virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
private:
required_device<cpu_device> m_maincpu;
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<speaker_sound_device> m_speaker;
+ required_device<e05a30_device> m_e05a30;
int m_93c06_clk;
int m_93c06_cs;
UINT16 m_printhead;
int m_pf_pos_abs;
int m_cr_pos_abs;
- int m_last_fire; /* HACK to get fire positions for motor in movement */
+ int m_real_cr_pos;
+ int m_real_cr_steps;
+ int m_real_cr_dir; /* 1 is going right, -1 is going left */
UINT8 m_fakemem;
+
+ enum {
+ TIMER_CR,
+ };
};
// ======================> epson_ap2000_t