Program fyzicky prečíta boot sektor diskety a zistí LABEL

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategórie: Programy v Pascalu

Program: Label.pas
Soubor exe: Label.exe
Soubor ubuntu: Label

Program prečíta boot sektor diskety a zistí menovku diskety tzv. label.
{ LABEL.PAS                 Copyright (c) TrSek alias Zdeno Sekerak }
{ Program precita boot sektor diskety a zisti menovku, tzv. label.  }
{                                                                   }
{ Datum:28.05.1996                            http://www.trsek.com  }
 
program na_fyzicke_zistenie_label;
uses crt,dos;
 
function DiskLabel(disk:char):string;
var boot:array[0..1024] of char;
    reg:registers;
    i:integer;
    s:string;
begin
  reg.ah:=$0;
  reg.dl:=$0;
  intr($13,reg);
 
  reg.ah:=2;
  reg.al:=1;            {pocet sektorov  1}
  reg.cl:=2;            {cislo pociatku sektorov  1}
  reg.ch:=0;            {cislo stopy  0}
  reg.dh:=1;            {cislo hlavy  1}
  if UpCase(disk)='A' then reg.dl:=0            { cislo disku  0 - A }
                      else reg.dl:=1;           {              1 - B }
 
  reg.es:=seg(boot);    {adresa pameti}
  reg.bx:=ofs(boot);
  intr($13,reg);        {ak chyba cislo v reg.ah}
 
  s:='';
  for i:=$120 to $12A do s:=s+boot[i];
  DiskLabel:=s;
end;
 
begin
 WriteLn;
 WriteLn('Disketa A: ma meno: ',DiskLabel('a'));
end.