Thanks guys for having a look, I don't think there's a quick fix to the ap2000.

I wanted to make sure that it's getting data from the parallel port, and it didn't seem to be getting data.

It seemed to have a lot of trouble with the m_centronics_busy check so after removing the check, it would get data.

Code
WRITE_LINE_MEMBER( e05a30_device::centronics_input_strobe )
{

//       if (m_centronics_strobe == true && state == false && !m_centronics_busy) {
   if ((state == false) && (m_centronics_strobe == true)) {

         printf("ACCEPT_STROBE **** Strobe %x\n",m_centronics_data);

                m_centronics_data_latch   = m_centronics_data;
                m_centronics_data_latched = true;
                m_centronics_busy         = true;
                m_write_centronics_busy(m_centronics_busy);
        }

        m_centronics_strobe = state;
}

Adding a few prints to see if the ap2000 is reading the data:

Code
uint8_t e05a30_device::read(offs_t offset)
 
        switch (offset) {
        case 0x02:
                result = m_centronics_data_latched << 7;
+                printf("0x02 CENTRONICS DATA LATCHED === %x     %s\n",m_centronics_data_latched,machine().describe_context().c_str());
                break;
        case 0x03:
+                printf("0x03 CENTRONICS DATA LATCH === %x     %s\n",m_centronics_data_latch,machine().describe_context().c_str());
                result = m_centronics_data_latch;
                m_centronics_data_latched = false;
                break;

but the ap2000 would grab a couple of bytes and then happily run off into the weeds...where it hangs on JR FF which is an infinite loop.

After typing PR#1

Code
ACCEPT_STROBE **** Strobe 8d  enter
ACCEPT_STROBE **** Strobe 8a  linefeed
ACCEPT_STROBE **** Strobe dd  ] basic prompt
ACCEPT_STROBE **** Strobe c1  A
ACCEPT_STROBE **** Strobe c1  
ACCEPT_STROBE **** Strobe c1
ACCEPT_STROBE **** Strobe c1
ACCEPT_STROBE **** Strobe c1
ACCEPT_STROBE **** Strobe cf   O    hitting O and L trying to get online
ACCEPT_STROBE **** Strobe cc  L
0x02 CENTRONICS DATA LATCHED === 1     ':sl1:parallel:pic_ctx:ap2000:maincpu' (2096)
0x02 CENTRONICS DATA LATCHED === 1     ':sl1:parallel:pic_ctx:ap2000:maincpu' (209C)
0x03 CENTRONICS DATA LATCH === cc     ':sl1:parallel:pic_ctx:ap2000:maincpu' (209C)

yay it did get a single byte!

0x02 CENTRONICS DATA LATCHED === 0     ':sl1:parallel:pic_ctx:ap2000:maincpu' (2096)
0x02 CENTRONICS DATA LATCHED === 0     ':sl1:parallel:pic_ctx:ap2000:maincpu' (2096)
0x02 CENTRONICS DATA LATCHED === 0     ':sl1:parallel:pic_ctx:ap2000:maincpu' (2096)
0x02 CENTRONICS DATA LATCHED === 0     ':sl1:parallel:pic_ctx:ap2000:maincpu' (2096)

Changing the code to make the block a different color based on m_online_led shows it flickering like crazy.

[Linked Image from i.imgur.com] red here, also comes in green [Linked Image from i.imgur.com]

Code
uint32_t epson_lx810l_device::screen_update_lx810l(screen_device &screen, bitmap
        copyscrollbitmap(bitmap, m_bitmap, 0, nullptr, 1, &scrolly, cliprect);
 
        /* draw "printhead" */
-       bitmap.plot_box(m_real_cr_pos + CR_OFFSET - 10, PAPER_HEIGHT - 36, 20, 36, 0x888888);
+
+       bitmap.plot_box(m_real_cr_pos + CR_OFFSET - 10, PAPER_HEIGHT - 36, 20, 36, m_online_led ? 0x008800 : 0x880000);
 
        return 0;
 }


So, no joy in Mudville... 8-)