Friday, March 30, 2012

Back in the Saddle

As I mentioned in a previous post, work and other tasks have pretty much sidelined the Liber809 project.  However, I'm spending some time this weekend to rework the NitrOS-9 port based on several pieces of good news:
  1. The Liber809 board had stopped working for some inexplicable reason.  As it turns out, a piece of solder flake had found its way onto the trace from the Maxim DS1100 that leads to the Q clock on the 6809, leaving it perpetually grounded.  Needless to say, I'm going with solder masked boards from now on.
  2. The XEGS had timing issues with the firmware going into all-RAM mode.  The ANTIC was picking up writes to addresses outside of its range of $D000-$D7FF.  We have theories on this subtle timing problem, but reports from others that the 800XL and 1200XL worked fine in all-RAM mode has us thinking this is something unique to the XEGS.
Sloopy, a member of the AtariAge forums, sent over an Atari 800XL which I readily disassembled.  After some mucking around, the Liber809 board came up, and indeed worked well, even in all-RAM mode.  Slor's excellent Liber809 demo in the previous post came up just fine, sound and all.

With a solid, reliable Atari system running the Liber809 board, I can now focus on bringing up NitrOS-9 through DriveWire, which is how I envision the majority of folks will want to use the operating system.  So I've carved out some time this weekend to do just that.

Wednesday, March 28, 2012

Demo Time

Slor sent over a link to a YouTube video which shows an impressive demo of the Liber809 in his Atari 1200XL. Check it out here.

Thanks Slor!  Great job!

In other news, work has had me sidelined for a while on the project, but we are still working on the next revision of the board.  More news as it comes.

Tuesday, March 6, 2012

1200XL Success

We've verified that another machine besides the Atari XEGS works with the Liber809.  Slor (pseudonym), a guy from the Atari group, purchased one of the Liber809 prototypes and has installed it in his Atari 1200XL.  We spent some time last night going over test code with DriveWire 4 Server.  Here's a screen shot of it in the 1200XL:

I've got some tidying up to do on the Liber809 ROM for the Atari, but expect to get all of the bugs worked out.  We're not sure on the final design of the Liber809 board yet, but Gary's working on it, so we'll have an update soon.

Monday, March 5, 2012

Liber309?

The Motorola 6809 has a cousin.  Yes, her name is 6309.  Actually the 6309 is a clone of the 6809 and is/was made by Hitachi.  For years, CoCo guys were sticking them in their systems to replace the 6809 because the 6309 is made from a CMOS process and runs cooler and takes up less power.

It took a Japanese guy named Hirotsugu Kakugawa to write a post to the comp.sys.m6809 Usenet newsgroup in 1992 entitled "A Memo on the Secret Features of 6309" to open up the potential of this chip to the CoCo world (see this link for the original message).  It turns out that the chip that a lot of CoCo users were running for years had extra registers, 16 bit multiply and 16/32 bit hardware divide instructions, plus other cool bit manipulation and block copy instructions.  Not only that, but the chip could be put into a mode that would shave 1 cycle off of many instructions.

Soon, intrepid developers began writing software to take advantage of the new-found power of the 6309, including updating Microware's OS-9 operating system (where NitrOS-9 got its name).  Performance was improved greatly and it set new speed records for the CoCo.

You would expect that the 6309 would also work in the Liber809, and that was the plan, but for a few weeks now, I was aware of a problem.  The 6309 wouldn't work in the Liber809 board, neither the Frankenproto wire beast that I handmade, nor the prototypes that came in last week.  The 6809 ran fine, but the 6309 would just lock up the machine.

It turns out that gate delays caused a glitch in the E and Q clocks.  Gary noted this in one of the logic analyzer shots I sent over to him, and surmised that switching two pins on the 7400 would cause the signal to arrive two gate delays earlier and eliminate the clock spike.  Today for lunch I quickly rewired the prototype and tried the 6309, and sure enough it came up.  So now the Liber809 also works with the 6309.

Speaking of prototypes, both have been sold and are getting into the hands of their new owners as we speak.  Some additional testing on their end will solidify things and we'll soon move to a larger run of boards that are optimized for both part count and space.

Thursday, March 1, 2012

Dual CPU Mission Accomplished

Today I received the rest of the parts in the mail to finish assembling the prototype boards.  Since I only had lunch time to do some work on the project, I quickly got down to soldering.  After carefully checking my work for proper continuity with an Ohm meter, I placed the chips in, set the jumpers and voila!  The Liber809 board came up!

I turned off the Atari XEGS, programmed the ROM emulator with the contents of the original Atari 32K ROM, then set the two jumpers into the alternate position.  When I powered the Atari up, the familiar READY prompt came up into Atari BASIC.

Now that we have a solid board running, the plan is for more testing and retesting to make sure everything is super stable.

As you can see in the pictures below, the board is a little long due to the specific size requirements that were placed on us by the prototype manufacturer.  The final board will be optimized, and we also expect to drop the number of support chips down as well.

As I have time, I'll assemble the other two prototypes then get them off to their respective buyers.