Running too rich- I would check the coolant temp sensor wiring and then the sensor itself first.
Also check the MAP sensor and O2 sensor. (You can substitute known good ones to check these-but inspect the wiring and plugs to them first. If the ECM can't get the info from them, they're worthless even if they're good.)
Temp, O2, and MAP are responsible for fuel delivery.
If it black smokes bad when stone cold-forget about the O2 sensor-it doesn't do anything at all until it reaches 600 degrees so that's not the problem.
Temp is more likely the culprit. It'll prolly be in the end of the head on the #4 side. Down low. Easy to replace. It'll cause immediate rich mixture if it thinks the coolant is at -30 degrees and it's really only 30 degrees out.
MAP sensor will also cause rich running due to thinking it's at a higher altitude than it really is at-but you'd notice an ignition timing change as well for altitude compensation.