Abstracting graphics and data source

Now we may have different implementations of data source (dos/amiga/custom) and graphics engines (SDL/native).
This needs more explanation. Is it a bug fix? How did you determine that 199 was wrong?