a) Can I use my sketch, and compile it in the ide and then use a programmer to get the .hex file into the chip?
b) If it's not compatible, which series should I look for (168 / 328 only)?
c) I haven't yet bought a programmer, apart from being compatible with the chip there's something else I should look for?
A. If you can get a hardware programmer that is supported by the Arduino IDE you can load a bootloader program by selecting the ATmega8 board from the tools/board selection. You will have to have a 16mhz crystal or resonator wired to your mega8 chip to be compatable with the Arduino platform
B. No, there is a board selection option that supports the mega8 chip.
C. Again if you get one that is supported by the Arduino IDE (I use the USBtinyISP) you can use the Arduino system to load bootloader and later upload sketches to your chips.
If you already have an Arduino, or else an ATmega that you can program normally (FTDI, USB, etc.), then you can use the Arduino as ISP programming option. I recently used it to program some ATmega644s. Here's a link:
No problem. I was equally excited when I first tried it :). It did give me a few difficulties though (most of which were related to the Sanguino bootloader), but just be careful that you follow the instructions.
a) Can I use my sketch, and compile it in the ide and then use a programmer to get the .hex file into the chip?
The Arduino environment does support the ATmega8, but there are a couple of differences that you might need to be aware of:
The mega8 has less memory than the 168 or 328. A max of 8k of flash memory and 1k of RAM (same as 168 but 1/2 of the 328.) Some of the applications that people are writing now simply do not fit in a Mega8.
Three less PWM outputs. You only have PWM on pins 9, 10, 11. in general, the mega8 has "different" timers than 168 or 328.
I don't know whether the people writing libraries are still paying attention to mega8; assorted libraries might not work on it (In particular, the ones that use the timers...)