Wykonanie kodu przy starcie PC (np. przez bootloader)

0

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.
0

Jak napiszesz własny "bootloader" to tak tylko ze zazwyczaj uruchamia się pierwsze na komputerze ma opcję wczytania obrazka wiec nic pisac nie musisz (mam na mysli GRUB-a)

1

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)?

Zacznijmy od tego, że bez DOS-a nie masz Reset, Seek, BlockRead ani Close bo to są funkcje odwołujące się do DOS-a.

We własnym loaderze nie masz nic, tylko BIOS, a ten nie ma pojęcia o systemie plików.

Napisz może raczej co chcesz zrobić: bootloader który wyświetla obrazek? To się na upartego da zrobić, ale będzie w tym sporo asemblera, a Pascala najlepiej wcale.

1 użytkowników online, w tym zalogowanych: 0, gości: 1