I would help to know what year and model vehicle you have but, you may have a bad fuel injector.
I have a 98 Jeep Wrangler that kept generating a timing problem codes, after changing the crank sensor and timing module in the top of the distributor, I took it in and they changed out the distributor and stopped the check engine light from coming on. The CPU timing specifications are so tight that a little wear in the distributor shaft starts throwing codes out. It ran fine just kept throwing codes, a rebuilt distributor fixed it.
Those are all misfire codes. The common cause would be spark plugs, wires, distributor cap, and rotor.
I had that happen n I changed my plugs n coil pack...easy to do
43 is some sort of engine misfire, or distributor fault... code 12 is that the battery has been disconnected in the last 50 key cycles...
Have you tried wires, coils or injectors?? Depending on the mileage, a compression check may be in order also. P0300 is random misfire.. P0301 refers to cylinder #1 misfire and P0306 refers to cylinder #6 misfire. Try the simple things like wires 1st... after the compression check.
id try the coil. i had p 171, p174 ,p301 which is cylinder 1 and 4 are lean and the 300 codes are misfire codes i changed plugs wires and coil worked fine
Most obdii codes are multi-digit, such as po300,po301,po302, etc. Etc. Po300's are usally misfire codes pertaining to the same cylinder...code po302 is a misfire in cylinder #2. A po300 code is a random misfire for any cylinder
its most likely the air by pass valves and some coils that need to be changed.
Auto Zone will check your computer codes for FREE...
P0420 Catalytic Converter is bad p1320 misfire P0305 - Cylinder 5 Five Misfire
the po420 could also be a misfire or vacuum leak
It will depend on the trouble codes. If they are circuit codes, you have a wiring problem. If they are other codes you could have a vacuum leak, stuck egr valve, or engine malfunction.