After putting it off long enough I started working on updating Sanguino to work with Arduino 1.0 and higher. It looks like this could actually be easier then any version since. It looks like the Arduino guys are now doing all core features based on register values. I first saw this tactic from msproul at http://www.avr-developers.com/ and used the same method whenever possible when I was modifying the core for Sanguino.
I haven’t really done any extensive testing but I was able to get blink, SPI, and UART functions working by just adding a ‘variant’ to the original core. This brings up an interesting delema, which is how to install Sanguino. If I stick with it as just a ‘variant’ (which I would really like to do) I need to be able to install into the variant directory which isn’t a big deal, but also append to the board.txt. This is no longer as simple as unzipping an archive into a directory, the boards.txt step would have to be manual or some sort of setup routine run. Not to mention making all of that cross platform. I need to dig deeper but I’m guessing that using things like extra interrupts or UARTs might require actually modifying the core which will make my decision for me. The traditional approach of adding a completely new directory under hardware is an option but I want to make that a last resort.