This may apply to other cars but I have done this in a Mark I Impreza.

You can get CEL codes without a scan tool.

1) Warm up the engine
2) Turn the ignition switch OFF
3) Turn the ignition switch ON
4) Start the engine
5) Drive the vehicle at speeds greater than 12 MPH
6) Stop the vehicle
7) Depress the brake pedal and move the gear selector to “1"
8) Turn the ignition switch to OFF
9) Turn the ignition switch to ON
10) Move the gear selector to “2"
11) Move the gear selector to “1"
12) Move the gear selector to “2"
13) Move the gear selector to “3"
14) Move the gear selector to “D”

In a Mark II or III you turn the car on but don’t start it, then off then on/off two more times and it will display the code in the odometer.

In a modern subaru you can turn the car off. Then turn it on (without starting it), click the headlights on, then hit the trip meter switch 4 times, headlights off, 4 more times on switch, headlights on, then 4 more times on switch and the code will show in the odometer.

Very cool stuff.