I tried out your bitmap loading routine on SDL (I don't have/use Borland) and with a few modifications I was able to load the bitmap perfectly.
This is my code, you can probably implement it using BGI.
Code:
void wking(int sx,int sy,display *screen)
{
char r,g,b;
ifstream ifil("wking.bmp", ios::in);
ifil.seekg(54, ios::beg);
for (int i = 0; i < 60; i++)
{
for (int j = 0; j < 40; j++)
{
ifil.get(b);
ifil.get(g);
ifil.get(r);
DrawPixel(screen,sx+j,sy+200-i,r,g,b);
}
}
ifil.close();
}
Here's a screenie of the bitmap it loads (as you can see, flawless):