Always have a spare working Live Linux CD on hand. This way you can boot your system on it, try out the broken thing and see if it works. If it is still broken even with Linux then you have a very good clue that it is either hardware or something external or perhaps bios. Linux has all its own drivers and programs so you eliminate that it is a virus or other software problem. Puppy linux is a good light choice for testing.