Пишем свой загрузочный сектор
Страница 4. Компиляция


Компиляция

Ну вот вроде бы и все. Компилируется все это до безобразия просто:

> nasm -f bin boot.asm -lboot.lst -oboot.bin

Осталось только как-то записать этот образ в загрузочный сектор вашей дискеты и разместить в корне этой дискеты файл загрузчика BOOTOR. Загрузочный сектор можно записать с помощью такой вот простой программы на Turbo (Borland) Pascal. Эта программа будет работать как в DOS, так и в Windows - пробовал на WinXP - работает как ни странно, но только с floopy. Но все же я рекомендую запускать эту утилиту из-под чистого DOS'а, т.к. WinXP обновляет не все поля в заголовке FAT и загрузочный сектор может работать некорректно.

var
 
fn:string;
  f:file;
  buf:array[0..511] of byte;
  ok:boolean;
begin
 
fn:=ParamStr(1);
  if fn='' then writeln('makeboot bootsect.bin')
  else
  begin
   
writeln('Making boot floppy');
    {$I-}
   
assign(f,fn);
    reset(f,sizeof(buf));
    BlockRead(f,buf,1);
    close(f);
    {$I+}
   
if IOResult<>0 then
    begin
     
Writeln('Failed to read file "',fn,'"');
      Halt(1);
    end;
    ok:=false;
    asm
      mov       ax, 0301h
     
mov       cx, 1
     
mov       dx, 0
     
mov       bx, seg buf
      mov       es, bx
      mov       bx, offset buf
      int       13h
     
jc        @error
      mov       ok, true
    @error:
   
end;
    if ok then writeln('Done :)')
    else begin
     
writeln('Makeboot failed :(');
      Halt(1);
    end;
  end;
end.

 
« Предыдущая статья   Следующая статья »