Thanks, RB!

I found a disk image of the ComputerEyes that would capture in Double hi-res, so I did some hacking on the apple2e driver to make it work:


I did run into a couple of interesting problems.

The ioudis was preventing the annunciators from getting modified.

In the function do_io the ioudis keeps the bottommost switch from getting reached due to a return.


Code
void apple2e_state::do_io(address_space &space, int offset, bool is_iic)
{
        if(machine().side_effects_disabled()) return;

        // Handle C058-C05F according to IOUDIS
        if ((offset & 0x58) == 0x58)
        {

          if (m_ioudis)
                {       printf("m_ioudis <> 0\n");
                        switch (offset)
                        {
                                case 0x5e:  // SETDHIRES
                                        m_screen->update_now();
                                        m_video->m_dhires = true;
                                        break;

                                case 0x5f:  // CLRDHIRES
                                        m_screen->update_now();
                                        m_video->m_dhires = false;
                                        break;
                        }
                }

                return;           // always hits return here
        }

      switch (offset)      // switch here never gets reached for cases 0x58-0x5f
        {
                case 0x20:
                        if (m_cassette)
                        {


so my hack code never gets reached.

Code
                case 0x58: // AN0 off
                         m_cex=0;
                         m_cey=0;
                         printf("set cex,cey to zero AN0 %x \n",0);
                        
                         m_an0 = false; break;

Everything's made right by copying the switch statement and putting the relevant parts into an else.

Code
               else
                        switch (offset)
                        {

               case 0x58: // AN0 off
                        m_an0 = false; break;

                case 0x59: // AN0 on
                        m_an0 = true; break;

                case 0x5a: // AN1 off
                        m_an1 = false; break;

                case 0x5b: // AN1 on
                        m_an1 = true; break;

                case 0x5c: // AN2 off
                        m_an2 = false; break;

                case 0x5d: // AN2 on
                        m_an2 = true; break;

                case 0x5e: // AN3 off
                        m_an3 = false; break;

                case 0x5f: // AN3 on
                        m_an3 = true; break;
                        }

                return;         


And I noticed that ioudis is 1 on bootup, so after setting ioudis to 0 manually with the debugger memory window, things started working. Yay!

The dithering is a bit better (no pun intended) at the higher resolution of 560x192.

[Linked Image from i.imgur.com][Linked Image from i.imgur.com]
b+w double hi-res [Linked Image from i.imgur.com] color double hi-res [Linked Image from i.imgur.com]

Last edited by Golden Child; 04/29/19 02:21 PM.