In a nutshell, both Bulgaria and Romania apply the whole Schengen acquis (which means all the rules about entry and short stays, the SIS and Dublin regulations, the list of countries whose citizens need a visa, etc., etc. and not merely the 90/180 day limit) but only to one country (not as part of the Schengen area nor to both countries as a group).
Consequently, there are still border checks between Bulgaria and the Schengen area but also between Bulgaria and Romania, you are only granted entry to one country, the 90 days are counted country-by-country. The same is true of Croatia and Cyprus.
On top of that there are somewhat confusing rules regarding visa recognition. Most residence permits and visas from Schengen countries exempt visitors from any visa requirement in Romania and Bulgaria. This exemption specifically covers multiple-entry short-stay visas and long-stay national visas but not single-entry visas. A similar visa from Bulgaria, Romania, Cyprus, or Croatia also exempts the holder from the visa requirement in the three other countries in the list. However, a visa or residence permit from one of these four countries does not exempt the holder from any Schengen visa visa requirement (with one exception: residence permits as a member of an EU citizen's family).