* BMW Scanner: This is the most reliable method. You'll need a BMW-specific scan tool, often called a "BMW scanner" or a tool that specifically supports the OBD-I protocol used in that year. These scanners can connect to the car's diagnostic port (usually located under the dashboard, often near the steering column) and retrieve the trouble codes. These scanners are generally more expensive than generic OBD-II scanners. Look for one that explicitly states compatibility with pre-OBD-II BMW models.
* Connecting to a Computer (Advanced & Risky): Some individuals with advanced technical skills and the right software (e.g., INPA, DIS) can connect a laptop to the car's diagnostic port via a K+DCAN cable. This method requires significant technical knowledge and the correct software, cable, and interface. Improper use could potentially damage your car's computer system. This is *not* recommended for beginners.
Where NOT to look for codes: The flashing of the check engine light itself does *not* provide diagnostic codes on a 1998 BMW 328i. The light only indicates a problem; it doesn't give you the specific code.
In short: You need a BMW-specific scan tool. Attempting other methods without the necessary knowledge and equipment is highly discouraged. It's best to take your car to a qualified mechanic or a BMW specialist to diagnose and fix the problem. They'll have the right tools and expertise.