How can I possibly get a 9600Hz square wave, for a serial baud rate?
If you have a high enough original clock, you'll be close enough then you divide down even if it's not an exact integer ratio.

For example, to divide a 50MHz clock down to 9600Hz, you ideally need a ratio of \$5208.\overline{3}\$. But that's not an integer ratio so I just use 5208 instead. I'm only off by 1/3 of 20ns (period of a 50MHz cycle) every 9600Hz period. That's within 64ppm even though I'm off by a whopping 1/3 of a digit in the integer ratio because the original frequency is so high that each clock pulse is worth that much less.

Even with a 4MHz, oscillator you're within 0.16%.