[Coco] Raspberry Pi and RS-232 ports

Ron Klein ron at kdomain.org
Sat Apr 1 12:30:18 EDT 2017


Hi Andrew,

I've been working on getting an initial Raspberry Pi 3 Coco emulator
distribution set up for those who might be interested to try for
themselves.  It's being set up the why I like it, but could certainly be
taken in any direction from the community as I plan to share an SD image
soon.

This is what I have so far:

Raspberry Pi 3

Latest Raspbian distribution

Some RPi3 performance tweaks to allocate memory for programs and video.

Restrict video mode to 640 x 480 (rather than the 1920 x 1080).

A very slight CPU over clock and force all cores to be active all the time.

Latest MAME (0.184) compiled with SDL2 (and video hardware acceleration).
It runs from the console, no X involved.  I'm working on just compiling a
version to support only the Coco / Dragon targets, but not a priority just
yet.  For those interested, ChoccyHobNob provides precompiled, current
versions of MAME for the RPi3:

http://choccyhobnob.com/mame-0-184-for-raspberry-pi-macos/

... great site and information.

Latest XRoar for those who prefer that emulator for Coco 2 / Dragon
emulation.  It can be run from console or X, though the X version is very
nice with the added benefit of menus, etc..

Drivewire 4 configured to host/serve DSK images to the local instance of
MAME (or XRoar) running on the RPi3.  If you use a USB to serial adapter or
one of the serial interfaces to connect to the GPIO header, you can host
files for a real Coco as well.

Some scripts to start a Coco 2, Coco 3, MC-10 from MAME.  For the Coco 3, I
have it configured with 2MB of RAM.  Great for NitrOS9 and Fuzix.  Any of
these could be added to the /etc/rc.local file to boot directly into.

I've also added am EMCEE server to host files for a real MC-10.

Samba server and client packages.  You can transfer and DSK images, roms,
etc., to the RPi3 from another workstation on your network or you can
connect to other file server on your network from the RPi3.  Either way
works and is available.

Added a bunch of Coco development tools the distribution including
everything needed to compile MAME and XRoar, lwtools, Toolshed, etc..

Added William Astle's excellent lwwire application (with modifications from
Brett) to allow Fuzix (running on a Coco 3) access to the Internet.  This
can include an emulator running on the RPi3 or a real Coco 3 connected to
the RPi3 through the USB or GPIO serial port.

I connect my RPi3 to a LCD monitor that happens to have both a HDMI and VGA
connections.  I have not tested the RPi3's composite video output on the
GPIO header, but will get to that at some point.

I use a basic USB mouse and keyboard.  I came across a great deal on a
Nintendo Wii U Pro Controller which works perfectly with the RPi3 as it
already has built-in Bluetooth support.  Raspbian recognized the device
with no issues.  I was playing Pop Star Pilot just yesterday using it.
Very nice.  Nice thing is that controller has analog and digital control
support.  Perfect the Coco!

I know there's been much talk about booting into a Coco instantly at
power-up.  I have not attempted to do that, but the boot process is very
quick now (under 15 seconds).  I'm OK with that, but I'm sure there may be
other things to do to improve it more.  Unless you create an emulator that
doesn't require the Linux OS and talks directly to the hardware, not sure
if there will ever be a way to achieve instant-on access to a Coco.

The last part of my RPi3 testing is connecting a real Coco 3 keyboard to
the RPi3.  I'm using information provided by Chris Hawks who really
pioneered the early Coco emulation for the RPi.  I have the extra keyboard
and Coco 3 case, so I may be able to build my own CocoPi, just like Chris
did a while back.  With things like the USB to Coco joystick adapters, it
might even be possible to use real Coco joysticks with the RPi while it's
in a Coco case (using the factory holes on the case).  The RPi3 composite
video and analog audio port could be run to the factory location on the
case, too.  These types of things would require some sort of basic
backplane to mount the 6 pin joystick DIN connectors and the composite
video and audio connectors.

Anyway, getting a bit closer each day.  I would like to share something
soon, but need to find a way to limit the size the SD card image and find a
place to host it.

Thanks!

-Ron



On Sat, Apr 1, 2017 at 2:08 AM, Andrew <keeper63 at cox.net> wrote:

> In theory it could be done; the quickest way would be to (somehow) get a
> CoCo emulator written in standard C/C++ and cross-compile to the ARM core
> used in the Pi. At least - that's the high-level view. There's a lot of
> low-level stuff that -would- make this a herculean effort (video being the
> main one).
>
> It's been a while since I last looked at CoCo 3 emulators - I seem to
> recall that David Keil released the source to his CoCo 3 emulator, but I
> can't seem to find it (I know I have a copy myself - but I can't seem to
> find it on the web). But I did find the VCC source (for Windows) - and it's
> in C. So maybe that could be futzed with to get it into something more
> portable and standard? Probably the first step would be to get it to run
> under Linux using the framebuffer. Then port that?
>
> Another possibility would be to take the whole MESS version, and strip it
> down to the bare-bones to get it to run the CoCo 3 - then port that code
> (I'm pretty sure MESS is written in C or C++). Again, you'd want to target
> the framebuffer, of course.
>
> Lastly - and this is something that could be tried with MESS, because I've
> seen some tutorial on the technique - you could try to boot a bare-minimum
> X window system, that immediately starts MESS. Strip the linux kernel down
> to the bones, kick off X, then MESS (with CoCo 3 roms). While it won't be
> "instant on", it will probably be a lot better than "standard" linux bootup
> on the Pi. Something like this:
>
> https://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi
> -into-a-fullscreen-browser-kiosk/
>
> Keywords to grep are "browser kiosk fullscreen" - the takeaway is that you
> don't need a full-on desktop to run an X window aware piece of software.
>
> Ooh - another interesting possibility:
>
> https://devtidbits.com/2013/04/23/run-dos-on-the-raspberry-
> pi-use-rpix86-to-turn-your-pi-into-a-1980s-super-computer/
>
> http://rpix86.patrickaalto.com/
>
> ...then run one the DOS CoCo 3 emulators on top of that, perhaps?
>
> -- Andrew L. Ayers, Glendale, Arizona
>
> Message: 3
>> Date: Fri, 31 Mar 2017 13:15:36 -0500
>> From: Dave Philipsen <dave at davebiz.com>
>> To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
>> Subject: Re: [Coco] Raspberry Pi and RS-232 ports
>> Message-ID: <7fa405aa-019f-85e8-def1-d1824713c955 at davebiz.com>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> I think, actually, that someone has already emulated a CoCo on a
>> Raspberry Pi.  I've seen it mentioned here and there.  But someone
>> pointed out some days ago that a Raspberry Pi takes a finite amount of
>> time to boot and there's nothing like a good ol' CoCo that starts up
>> pretty much immediately.  I brought up the idea that if a Rasperry Pi
>> was only going to emulate a CoCo and nothing else it could surely be
>> made to boot up instantly just like a CoCo.  After all, it has a CPU
>> that runs at a clock speed of several hundred megahertz!  But I was
>> speaking only theoretically.  I imagine it would be a herculean software
>> effort to get in to the internals of the Pi and figure out how to get it
>> to boot up and run as a CoCo without the aid of the Linux (or other)
>> operating system.  It's certainly possible but it doesn't seem like it
>> would be worth the effort just to save the 15 seconds or so required to
>> boot into Linux and then run a CoCo emulator.
>>
>> Dave
>>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>


More information about the Coco mailing list