Люди, помогите!!!!!! Препод заставляет прочитать корневой каталог дискеты,
на след. неделе зачет, не наю че делать! Киньте пример кода под DOS, язык Turbo Pascal.
Говорят, что нужно использовать прерывания 13h.
http://www.sources.ru/pascal/disks/dsktools.htm
Не 2FH?
13-е это БИОС, насколько я помню.
Ozzя, наверное, я в этом не разбираюсь, спасибо тебе большое но там ничего не понятно, ты не мог бы, лично написать кусочек программы?
Мне вот друг набросал:
uses dos,crt;
type boot=record
jump:array[1..3]of byte;
oemname:array[1..8]of char;
sectsize:word;
clustsize:byte;
recsecs:word;
fatcnt:byte;
rootsiz:word;
totsecs:word;
media:byte;
fatsize:word;
trksecs:word;
headcnt:word;
hidnsec:word;
musor:array[1..482]of byte;
end;
var regs:registers;
s:boot;i:integer;
begin
clrscr;
writeln('razmer zapisi:',sizeof(boot));
with regs do begin
regs.ah:=$02;
regs.dl:=$0;
regs.ch:=0;
regs.cl:=1;
regs.al:=1;
regs.dh:=0;
regs.es:=seg(s);
regs.bx:=ofs(s);
intr($13,regs);
with s do begin
for i:=1 to 3 do
write(jump[i]:3);
writeln;
writeln('‚ҐабЁп Їа®Ё§ў®¤ЁвҐ«п Ё ®¬Ґа ўҐабЁЁ :',oemname);
writeln;
writeln('а §¬Ґа ᥪв®а : ',sectsize);
writeln('а §¬Ґа Є« бвҐа®ў :',clustsize);
writeln('зЁб«® § १ҐаўЁа®ў ле ᥪв®а®ў :',recsecs);
writeln('fatcnt :',fatcnt);
writeln('rootsiz :',rootsiz);
writeln('Ї®«®Ґ зЁб«® ᥪв®а®ў :',totsecs);
writeln('media :',media);
writeln('ᥪв®а®ў ў Fat,e :',fatsize);
writeln('ᥪв®а®ў ¤®а®¦Єг :',trksecs);
writeln('зЁб«® Ј®«®ў®Є :',headcnt);
writeln('зЁб«® бЄалвл ᥪв®а®ў :',hidnsec);
end;
end;
readln;
end.
--------------------------------------------
где тут, что я не понимаю...
Используется ф-ция чтения сектора 02H прерывания 13h (BIOS)
формат вызова команды
вау, спасибо, что так доходчиво объяснил! А ты не знаешь, где находится корневой каталог дискеты?
Только сейчас осознал, что мои ответы в точь-точь как из анекдота про программистов на воздушном шаре. Совершенно правильные, но абсолютно бесполезные. Для вопрошающей.