Hej.
Mam tu kod na załadowanie obrazu. Coś takiego jest raczej do DOS'a (pisane z myślą o nim), ale czy odpaliło by się też przy starcie kompa (np. przez bootloader)?
procedure BMP(Sciezka : string);
var Paleta : array [0..255,0..3] of Byte; { Tu zapiszemy nasze kolorki }
Plik : file; { Zmienna plikowa }
i : Byte; { Zmienna pomocnicza }
begin
Assign(Plik,Sciezka); { Kojazymy zmienna z plikiem }
Reset(Plik,1); { Otwieramy plik }
Seek(Plik,54); { Pomijamy naglowek pliku }
BlockRead(Plik,Paleta,SizeOf(Paleta)); { Wczytujemy palete kolorow }
for i:=0 to 255 do
begin
port[$3c8]:=i;
port[$3c9]:=Paleta[i,2] div 4; { Ustawiamy skladowa Red }
port[$3c9]:=Paleta[i,1] div 4; { Ustawiamy skladowa Green }
port[$3c9]:=Paleta[i,0] div 4 { Ustawiamy skladowa Blue }
end;
for i:=199 downto 0 do { Wczytujemy linie na ekran }
BlockRead(Plik,Mem[$A000:i*320],320); { blokami po 320 pixeli }
Close(Plik) { Zamykamy plik }
end;
Begin
asm
mov ax,13h { Ustawienie rozdzielczosci }
int 10h { 320x200@256 kolorow }
end;
BMP('d:\car.bmp'); { Musi byc 320x200 - 256kolorow !!! }
Readln
End.