![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Altair |
![]() ![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
серийнvй номер тома: xxxx-xxxx где xxxx-xxxx число. Эта информация выводится после завершения форматирования командой format A: Вопросы: 1. У каждой дискеты уникальный серийный номер? То есть понятно, что в мире найдется такая дискета, что ее номер будет совпадать с выбранной. хотя ... xxxxxxxx число перестановок огромно ... не знаю сколько дискет в мире. 2. Где храниться этот номер на дискете? ясно что он храниться где-то на записываемой части данных. Возникает 3 вопрос: 3. Можно его поменять? Видимо можно, исходя из того, что он где-то записан, значит можно переписать его ... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
ZeroLink |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 41 Пол: Мужской Репутация: ![]() ![]() ![]() |
С помощью следущей конители можно считать загрузочный сектор дискеты (и не только) и там я нашел метку тома, какой 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 -------------------- Я могу изменить мир, но Бог не даёт исходник:(
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 15:15 |