Thanks for the info. I keep reading that section of the datasheet. It does make more sense each time i read it. There are a few things i would like to check. I want to use SPI for reading data from SD cards. I have the protocol for them and it looks simple enough to use.

By "bitbang" do you mean the software method where certain pins are turned on/off at the correct time?

Using that method would i be able to communicate with an SD card really slow? Im thinking less than 1Hz while testing so i can see the data in realtime. I would like to use this idea for testing the hardware version too. The datasheet says the SPI clock can be controlled by timer2 which i could slow down. Would an SD card be alright with such a slow transfer or is there any kind of timeout on them?

Ive read the bit about SSPSTAT and SSPCON1. The configuration i had is the same as what you showed. I understand what the options mean but do you know which ones i need to work correctly with and SD card?

I understand #5 but one thing i cant seem to find out (even from the datasheet) is how the clock works. I assume that writing to SSPBUF will cause 8 cycles on the SPI clock pin then it stops instead of cycling constantly.