Ok. For some reason this has been a real sticking point with me. Now, from what I've read, this seems to be the case:
1. if the O is in a 1 syllable word, it's pronounced O
2. if the O is in a stressed syllable, it's pronounced O
3. otherwise, it's pronounced A
Please tell me I finally got it!