IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Серийный номер тома ..., что это, где храниться, как изменить?
Altair
сообщение 2.10.2004 17:07
Сообщение #1


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +



серийнvй номер тома: xxxx-xxxx


где xxxx-xxxx число.
Эта информация выводится после завершения форматирования командой format A:
Вопросы:
1. У каждой дискеты уникальный серийный номер?
То есть понятно, что в мире найдется такая дискета, что ее номер будет совпадать с выбранной.
хотя ... xxxxxxxx число перестановок огромно ... не знаю сколько дискет в мире.
2. Где храниться этот номер на дискете?
ясно что он храниться где-то на записываемой части данных. Возникает 3 вопрос:
3. Можно его поменять?
Видимо можно, исходя из того, что он где-то записан, значит можно переписать его ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ZeroLink
сообщение 9.10.2004 8:41
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 41
Пол: Мужской

Репутация: -  0  +


С помощью следущей конители можно считать загрузочный сектор дискеты (и не только) и там я нашел метку тома, какой FAT, но серийник так и не обнаружил. Если найдеш напиши!

Код
Uses DOS;
var
 a  : Integer;
 Buf: array [1..512] of Byte;
 Reg: Registers;
 f  : Text;

Procedure ReadSector(Disk,Head: Byte;CSec: Word;var Buf);
begin
 with Reg do
   begin
     ah := 2;            {Операция чтения}
     dl := Disk;         {Номер привода}
     dh := Head;         {Номер головки}
     cx := CSec;         {Цилиндр/сектор}
     al := 1;            {Читать один сектор}
     es := seg(Buf);
     bx := ofs(Buf);
     Intr($13,Reg);
   end;
end;

begin
 ReadSector(0,0,1,Buf);
 Writeln;Writeln;
 Assign(f, 'ser_numb.buf');
 ReWrite(f);
 for a:=1 to 512 do
  begin
    write(Buf[a]);writeln('  *-*  ',chr(Buf[a]));
    write(f,Buf[a]);writeln(f,'  *-*  ',chr(Buf[a]));
  end;
 Writeln;
 Close(f);
 Readln;
end.


А с помощью это процедуры можно записать в главный
загрузочный сектор содержимое Buf

Код
Procedure SaveInBoot(var Buf);
begin
 with Reg do
   begin
     ah := 3;                  {Операция записи}
     al := 1;                  {Кол-во секторов}
     dl := 0;                  {1-й ГД}
     dh := 0;                  {Головка 0}
     cx := 1;                  {1-й сектор 0-й дорожки}
     es := seg(Buf);
     bx := ofs(Buf);
     Intr($13,Reg);
   end;
end;


Сообщение отредактировано: ZeroLink - 9.10.2004 8:42


--------------------
Я могу изменить мир, но Бог не даёт исходник:(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 15:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"