Sunday, September 7, 2014

Working towards remote head

I have been doing a bit of work to support full-resolution remote display of the C65GS via the ethernet port.  My idea is that I can provide internet access for interacting with a C65GS in real-time and at full 60Hz so that people can get a feel for the machine, and also contribute to and test software on it.  In other words, I intend that in a few weeks time it will be possible to use a C65GS remotely via a web browser.

The first step is taking the video output from the VIC-IV and compressing it enough to go out on the 100mbit ethernet port.  This requires compressing the video to 10% of its original size. I have implemented a simple run-length encoder as a first step, which should be fine for 40 and 80 column text displays.  I will make this more sophisticated in time.

I want the remote display to be completely independent of the CPU, so that it can keep displaying even if the CPU is paused for debugging. To achieve this I have implemented a direct communications channel from the VIC-IV to the ethernet adapter that bundled and transmits the data as it arrives. There is a register that enables and disables remote display.

While there is obviously more work to do as the following images show, I was surprised at just how quickly I was able to get it to this point.  Next step will be to figure out what is causing the lost pixels in the stream so that it stays properly registered, and fix the horizontal and vertical synchronisation marks.  But I thought I would include these initial real-time frame captures as a taste of what is to come.

No comments:

Post a Comment