[Coco] CC-Five (was Re: Pseudo CoCo4???) (LONG)
Bob Devries
devries.bob at gmail.com
Mon Jan 22 01:43:14 EST 2007
Whew!!!
and
HEAR, HEAR!
This sounds like the future of the Coco, and would certainly ensure that the
old girl will out-last most of us.
Good writing, Joel.
From: "Joel Ewy" <jcewy at swbell.net>
> WARNING: Extended musings about hypothetical enhanced CoCo compatible
> follow. This is not a short note.
>
> I agree with Mark that any new hypothetical CoCo development would
> probably more rightly be called a '5'. I think that the MM/1, the
> TC-9/TC-70, etc, were the fourth generation, regardless of what you
> think of their success or failure as a successor to the CoCo. They were
> all more advanced over the CoCo 3 than the CoCo 2 was over the original
> Color Computer.
>
> It sounds like Frank is talking about something along the lines of the
> "Amiga Forever" CD, (which I have a copy of) which is considered to be
> an officially licensed Amiga "computer". I like emulators and I use
> them some. They do have a place in a world of cheap, ubiquitous,
> powerful, commodity hardware. I like the idea of a live CD distribution
> that is customized and made as seamless as possible, in order to create
> the illusion that the system you are using is running on bare metal.
>
> But really, what are the things that keep us coming back to the CoCo
> when we all have much more powerful computers? Some of it may be pure
> nostalgia. For many of us the CoCo was our first computer, which
> introduced us to whole new worlds of interesting people and ideas.
> Nothing wrong with nostalgia, but I think there's more to it than just
> that. If it was just nostalgia we'd be satisfied to plug it in every
> now and again and play the old games and look at the old pictures and
> see if the old tapes and disks still work. But nostalgia alone can't
> really account for HiColor displays, new arcade-style games, compact
> flash interfaces, and superboards.
>
> There's something qualitatively different about the CoCo experience that
> the modern PC (Windows, Linux, or Mac) experience just can't replicate.
> For me there is considerable value in the relative simplicity and
> immediacy of the hardware, and the system as a whole, including the
> BASIC firmware and OS-9. By 'immediacy' I mean both that the computer
> is responsive and at my command within an instant of powering it on, and
> that the details of the computer are hidden under far fewer layers of
> abstraction, even under OS-9. This is where emulators start to lose
> me. When I have to hit function keys and navigate menus to swap floppy
> disk images, then use a separate utility to move data to real floppy
> disks it makes the already tedious and error-prone technology of the
> floppy disk just that much more annoying. The upside is that you can
> store a million floppy disk images on a modern hard drive, and you can
> copy them and back them up with ease. But the CoCo itself isn't
> improved, just embedded within another, more complicated system. And
> you still don't have any intrinsically better way to remember what's on
> all those floppy images.
>
> I'm not trying to slam emulators, just spell out where they fail for
> me. If an improved CoCo were distributed as an emulator on a live CD, I
> would want the live CD to be as stripped-down and dedicated to CoCo
> support as possible. I would want it to boot in a hurry and then get
> out of the way, while still providing good support for the underlying
> hardware in a way that could be accessible seamlessly from within the
> emulated CoCo environment. FreeDOS would boot very quickly on modern
> PCs, but doesn't have support for USB, doesn't have very good network
> support, et cetera. DSL ( http://www.damnsmalllinux.org ) runs well on
> older PC hardware, and is fantastic on fast machines. It still takes a
> while to boot (though less time than most), but it has good hardware
> support, and can run entirely from RAM on machines with >= 128M RAM,
> which is a very CoCo-like thing to do. Memory is so cheap these days
> that unless you are doing video editing or running software or operating
> systems that are morbidly obese, virtual memory is just a performance
> drag. One more example of CoCo immediacy that we've lost.
>
> What I would prefer to yet another emulator is a fifth-generation
> CoCo-compatible implemented in FPGA(s). This would have the benefit of
> being upgradeable with newer generations of programmable logic devices,
> but not dependent on any particular CPU (or FPGA) vendor who may decide
> on a whim to quit developing or discontinue essential components. But
> it would also restore the immediacy that the CoCo has. It would be a
> 'real' computer, but one that could change and grow. It would be
> eminently hackable, and would provide much the same potential to be a
> vehicle for learning that the CoCo always has. I attribute most of my
> technical knowledge to the fact that when I got into computers with the
> CoCo, you _had_ to learn something about the computer in order to get
> anything out of it, because it wasn't all done for you already. An FPGA
> CC-Five would be the same way.
>
> One of the cool things about modern FPGAs is that you can change the
> logic function as fast as you can write to SRAM. This means that you
> can multi-task _hardware_. Any well-designed FPGA CC-Five should have
> at least one block of logic partitioned for hot-swappable virtual
> hardware modules. This dynamic reconfigurability means that old CoCo
> functionality that might be considered obsolete need not immediately be
> implemented in the base system. Even modern PCs are still bound to some
> degree by design decisions made with the first IBM PC. Simplicity could
> be gained by leaving out features that probably aren't going to be used
> much any more, while designing sufficient modularity into the system
> that they could be reimplemented and plugged in by those who value that
> compatibility.
>
> There are many computationally intensive functions that could be
> implemented more efficiently in random logic than in software running on
> a general purpose CPU. FPGAs are sometimes used in supercomputing
> applications for this very reason. So rather than writing CoCo software
> to en/decode JPG files or .MP3s, things like that could be implemented
> as a modular hardware-accelerated function. There are already open
> source cores on opencores.org to do a lot of this kind of stuff.
>
> Another downside to emulators is that PC hardware is becoming
> increasingly difficult to hack. Back in the days of the ISA bus, mere
> mortals could realistically build their own expansion cards to plug into
> the PC. If you can find a reasonably fast PC that still has a 16-bit
> slot or two, you could conceivably hook up your own hardware to it,
> whether it's CoCo hardware you want to interface with the emulator, or
> just some gadget you'd like to control with CoCo software. But I don't
> think that any currently manufactured PCs still have ISA buses, and
> there aren't inexpensive, hobbyist-oriented PCI project boards (that I'm
> aware of). That leaves serial ports and parallel printer ports, and
> those are disappearing as well. This is another example of immediacy,
> accessibility, and simplicity that a real, hardware CoCo has, and
> emulated CoCos, along with the PCs that host them, increasingly do not.
>
> There are already FPGA 6809 computer implementations available under GPL
> which could form the starting point for a CC-Five project. The CoCo
> user community has been touted so often as to make it a cliche. But
> it's true that users sharing technical information has been a hallmark
> of the CoCo world. Something like this could really be a community
> collaboration. And there's no reason it has to be either real hardware
> or enhanced emulation. The best of both worlds would be a single,
> community-developed specification for a CC-Five that could be
> implemented both in traditional emulation software running on PCs, and
> in an HDL running on FPGAs. This way programmers would have a single
> platform to write to, and users would have an array of options for
> embodying it in hardware.
>
> I've got a basement full of PCs of all varieties, and an attic that is
> filling up as well. It would be great to have a better-integrated
> emulator I could use to turn some of those machines into CC-Fives. But
> I'd really prefer to do it while saving up to buy a couple FPGA boards.
>
> Since I've already rambled on for far too long, I might as well just add
> a few ideas for what a CC-Five might look like, if I had my way:
>
> Design principles: simplicity, accessibility, modularity.
> Compatibility with older CoCo hardware is desirable, but can be
> sacrificed where it adds undue complexity. But careful planning could
> mitigate against the effects of incompatibilities if older functionality
> could be swapped in and out of the system in real-time in the place of
> new systems that the old software doesn't use. Avoid feeping
> creaturism. The aim is to produce a better Color Computer, not
> something unrecognizable. If the CoCo has a feature, it's OK to make it
> better, but few wholly new features should be added to the base system
> specification.
>
> Examples (and counterexamples): The CoCo can produce sounds. So better
> built-in sound hardware would be a natural improvement. The CoCo has a
> video display. More colors and higher resolution are good
> enhancements. The CoCo never had USB, and that probably shouldn't be
> part of the base specification. But the CoCo does have an expansion
> bus, and perhaps it could be enhanced in some way that could maintain a
> degree of compatibility (so we can plug in the old floppy disk
> controller), and could also facilitate adding more modern hardware (like
> USB and Ethernet). The CoCo did have one built-in mass-storage
> interface -- the cassette port. This is for removable, non-volatile
> storage, and it uses a connector that requires very few pins. Perhaps
> it could be replaced in the base design with an MMC interface, which has
> some of the same qualities. The interface is apparently fairly simple
> as evidenced by: http://uanr.com/sdfloppy/ The bit banger is lousy.
> Stick a UART in there. It shouldn't be too hard to add logic that can
> bypass the UART if necessary so that software that used the bit banger
> could still work. It probably wouldn't be too feeping to specify an
> IDE/CF interface as part of the base system. It wouldn't add much extra
> hardware, but would give each system a lot more usability out of the box
> than the CoCo ever had. And add some MPI functionality to the bus. And
> that's it for new stuff. Really :)
>
> Specifics:
>
> CPU: There is enough use of the 6309 in existing CoCo systems that it
> would be nice to be able to specify this as the base CPU model for the
> CC-Five. As far as I know, all the existing FPGA designs are for the
> 6809, so there would be some room for improvement there. But CC-Five,
> development version 0.8 might just use an existing 6809 core. If a
> complete 6309 implementation is too difficult, maybe some select 6309
> instructions and registers could be added along the way to full 6309
> compatibility. I think TFM is a must for a machine like this. Perhaps
> the next generation could even improve on the 6309. Floating point
> coprocessing can be implemented as a logic module, but probably
> shouldn't be part of the base specification.
>
> Video: Even at much higher clock rates, the CPU in the CC-Five will be
> modest by today's standards. And simplicity and stepwise improvement
> are important. So the video display should be something that could be
> used effectively, while being a significant improvement over CoCo 3
> graphics modes. Maybe something like 640x480 12-bpp. That would come
> in under .5M for a screen and give 4096 real colors. I don't know.
> It's tempting to want to use an SVGA video card, but then you'd have to
> add an ISA (or worse, a PCI) bus interface, and the things aren't at all
> straightforward to program, and the complexity goes through the roof.
> Just a simple display like the CoCo 3 has is the way to go.
>
> RAM: The memory interface should be able to use some kind of reasonably
> available PC memory module that provides at least 4M per stick.
> Probably, for something designed by hobbyists, 72-pin SIMMs would be the
> easiest to work with. They're still fairly available, though they may
> be getting a little harder to find new, and they can be found with
> 4-128M per unit. 30-pin SIMMs would be easier to interface, but they're
> even harder to find in 4M and above, and you'd have to use more of them,
> which means more complicated physical hardware. The more complexity we
> can shove inside chips and prefabricated modules the better. Memory is
> one area where emulators have the advantage. The MMU function will have
> to be enhanced to address a larger memory space. Paul Barton has worked
> out the logic for that. I would think that 64M would be quite a bit of
> space for CoCo programs to play around in, even with a .5M video
> display. It's too late tonight for me to work out what that would do
> the size and shape of the DAT, but that's easily computed. Perhaps it
> would be nice to add extra task registers to reduce multitasking
> overhead in NitrOS-9.
>
> Firmware: Here I guess we would have to take a cue from the emulators
> and insist that everybody supply their own ROM if you want to run
> (D)ECB. Of course the machine logic will probably have to live in
> non-volatile memory, and there will probably have to be a separate
> memory for program code. Flash is undoubtedly the choice. Perhaps the
> firmware shipped on the system could be a glorified monitor of some sort
> that could boot NitrOS-9 from CF/IDE. Or better yet, just copy it
> directly to RAM from flash ROM with a single TFM instruction. If you
> have a Microsoft BASIC ROM image, the firmware could also find that in
> the root directory of the CF/IDE, or in a cartridge plugged into the
> bus, and execute it on power up, perhaps dependent on a switch on the
> case (turbo sw?), or a key held down at start time. Maybe make the ROM
> monitor program able to update the firmware flash ROM from CF/IDE, so
> the hardware could be distributed with only the monitor, and customers
> could their own ROM-based operating systems by simply copying them to CF
> from a PC. Maybe add an option to snarf them from a real CoCo 3 using a
> serial cable. Enhancements to BASIC could be done the way they always
> have been, by adding code that patches the existing system. NitrOS-9 of
> course evolves more organically. I have found a public domain tiny
> BASIC for the 6809 that I plan to use in a Motorola 6809 Exorciser
> board. Perhaps something like that could serve as the seed for a
> community-developed replacement for the MS BASIC.
>
> Odds and ends: I have an old CoCo 3 case left over from when I
> repackaged one in a mini-tower. At the time I did that it made a lot of
> sense to enclose all the cables and power supplies in a single case.
> But what I lost was the self-contained compactness of the original CoCo
> (which really had already disappeared the minute I started adding
> hardware to it.) But an FPGA CC-Five could conceivably fit inside the
> CoCo case again, with much more functionality contained in a little
> space. It would be very cool if a new hardware CoCo compatible had the
> option of living in a case (whether old or newly manufactured) roughly
> the size and shape of the CoCo. Any new design should have an AT/PS/2
> keyboard interface, at least as a standard option. But it would also be
> nice if it could make use of the original CoCo keyboard. But of course
> all it would take is a different mounting bracket and it could be used
> with a standard PC case. One could probably stuff the workings of a
> MicroATX or MiniITX power supply into a CoCo case if you take it out of
> its housing and make some custom mounting hardware. It would certainly
> be nice if the whole thing ran cool enough to do without cooling fans.
> Just another thing the CoCo had going for it that modern PCs usually
> don't is that it runs quiet.
>
> I'd love to see people collaborate on something like this. I think that
> what I'm suggesting is sufficiently more powerful than existing CoCo
> hardware to be worth pursuing, but not so outlandishly complicated as to
> put it beyond the reach of what we CoCo hobbyists could accomplish. I
> think it would preserve much of what is great about the CoCo, while
> addressing some of its real shortcomings. It would not be a modern PC,
> and it would not pretend to be. But it would be a far more capable
> platform, which would be liberated from the confines of specific
> integrated circuit technologies. It could become more powerful as
> programmable logic technologies advance, and it could be adapted by its
> users to meet their needs, not the needs of some corporate marketing
> department, while preserving the CoCo heritage into the future.
>
> I think that the specifications for the base system should be open and
> shared, and should be possible to implement using FPGA project boards
> that are available at relatively low cost, plus whatever additional
> interface and glue hardware would be necessary to make a real computer.
> (That might be a commercial product right there -- a CoCo interface
> board that plugs into something like one of the Burch Ed boards, and
> adds a DRAM interface, some analog hardware, a CoCo bus interface, and
> appropriate connectors.) But specific implementations of the community
> design (whether as a software emulator or realized in hardware) could be
> proprietary and commercial. And of course, there would be plenty of
> opportunity for people to sell software, and hardware peripherals.
>
> For what it's worth.
>
> JCE
>
> Mark Marlette wrote:
>>
>> I think we need to skip the CoCo4 and got right to a 5. ????
>>
>> Mark
>>
>>
>> At 1/21/2007 12:22 PM, you wrote:
>>
>>> At 12:08 PM 1/21/2007, you wrote:
>>> >--===============0322145043==
>>> >
>>> >Just a thought here... I haven't played with MESS yet, one of those
>>> >"when I get some extra time" things. But as I recall it can work
>>> >with added features such as hard drive support, and run in a full
>>> >screen mode (sort of a "letterbox" mode)... What I'm thinking is why
>>> not package a "live"
>>> >CD with everything to run like a CoCo3 but make a few enhancements
>>> >(like HD support, faster clock speed, access to some of the PC
>>> >peripherals)? It's cheaper than doing it in hardware since there is
>>> >so much cheap PC hardware out there now.
>>> >
>>> >--
>>> >Frank Swygert
>>> >Publisher, "American Motors Cars"
>>> >Magazine (AMC)
>>>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
More information about the Coco
mailing list