Počítačová rubrika


Už je tady další číslo tý hergot-kruci fobie a kdybyste věděli, jakej kartáč jsem dostal za svůj poslední článek, tak už byste se neodvážili ani podepsat, natož si vylepšit reputaci další katastrofou. V můj prospěch mluví akorát poslední školní slohovka na kterou jsem dostal 1* (tímto zdravím i pana Umberta Eca, který mi svou geniální knihou poskytnul jakous-takous látku na slohovku).

Takže dneska se budu zabývat něčím úplně jiným, než Delphama, který nikoho, podle slov našeho šéfredaktora, nezajímají. Vyšel jsem z předpokladu, že Pascal jste se všichni aspoň trochu naučili, a proto jsem se rozhodl, že vás naučím jak si zkontrolovat svoje diskety pětkrát rychleji, než to zvládá DiscDoctor. Bude to primitivní. Vyrobíte si vlastní verifikovací program s několika assemblerovskýma instrukcema. Dodávám, že zdroják bude v textu kompletní a nemusíte se proto obávat nějakých programátorských zákysů. Takže si to rozeberem podrobně:

Pár údajů o disketách: Diskety se skládají z - povrchů
- stop
- sektorů

Povrchy jsou u 1.44 M diskety 2, stop je 80 a sektorů na stopu je 18. Jeden sektor má 512 B.

Uses Crt,Dos;

Var

a,b,c,d,e,p,s : byte;

pocpov, pocver, pocstp : byte;

kodchba, povrch, sektor, stopa, mechanika : byte;

label 1,2,3;

begin ClrScr;

end;

p := povrch + 1; { drobná úprava (začínalo se od nuly) }

s := stopa + 1;

GotoXY(1,2); WriteLn(' Disketa ma ',p,' povrchy ') ;

WriteLn(' ',s,' stop a ',sektor, ' sektoru') ;

GotoXY(1,5); WriteLn(' Zacinam verifikovat na 0 stope 0 povrchu' );

GotoXY(1,8);

{Cyklus který snad každý pochopí. Nejdřív nultý a potom první povrch. }

For pocpov := 0 to povrch do begin

{Nasledující řádky zkontrolují platnost provedené operace, a pokud je chyba číslo 128, není v mechanice disketa.}

If kodchba = 128 then begin WriteLn(' Mechanika neni pripravena');

end;

{Teď napíše na obrazovku, kolik sektorů na které stopě a povrchu zrovna verifikoval.}

Write(' verifikuji ',c,' sektoru na ',b,' stope ',a,' povrchu ');

{Když je chyba sektoru, napíše "vadny sektor".}

If kodchba > 00 then WriteLn(' vadny sektor') else WriteLn(' O K ');

if keypressed then Halt(1);

1:

end.

Přeju mnoho srandy s verifikováním !!!!

Zpět