реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Разбивка HDD, Как ОС определяет кол-во логических головок на винте?
zltigo
сообщение Jul 30 2011, 12:51
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 14:49) *
Всё не дано понять...
Фишка в том, что досовские проги используют эту виртуальную CHS и умудряются правильно её определять.

Они ее НЕ определяют, они ее СПРАШИВАЮТ у DOS используя INT13h/AH=13h.
QUOTE
Хотя может я чего-то и упустил.

Упустили ответы на вопросы sad.gif. Пост №8


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 12:54
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 17:51) *
Упустили ответы на вопросы sad.gif. Пост №8

Пост №11. Второй абзац.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 12:59
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 14:54) *
Пост №11. Второй абзац.

Естественно молча пользуется первоначальными. Это накладывает только одно ограничение IO.SYS и (не помню точно) DOS.SYS должны быть на первых 500 мегабайтах диска.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 13:08
Сообщение #19


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 17:59) *
Естественно молча пользуется первоначальными. Это накладывает только одно ограничение IO.SYS и (не помню точно) DOS.SYS должны быть на первых 500 мегабайтах диска.

Ваша некомпетентность бросается в глаза sm.gif
Загрузочный сектор уже использует DOS? разметку.
Представьте, 15 головок в BIOS. Как только код обратится к 16-ой, то кирдык. А 15 головок * 63 сектора - это 472.5 КБ (!).
Теоретически это может быть правдой, т.к. смещение первого кластера на диске FAT16 нах-ся в районе 260КБ. При этом остаётся место для IO.SYS размером 200 КБ.

ИМХО зря они этот уровень ввели. Лучше бы оставался один уровень ATA/BIOS, а следующий был бы в DOS уже одномерный в секторах. Тогда и загрузочной области была бы адресация уровня АТА и загрузчик работал бы через BIOS с параметрами АТА.


Upd.
Пока у меня есть несколько версий, как определяется кол-во головок.
1. По общему размеру диска, ограничивая кол-во цилиндров в диапазоне 1023-512.
2. Прочитав MBR и определив по значениям CHS максимальное значение головки.
2а. Прочитав загрузочный сектор и взяв оттуда кол-во головок

Сообщение отредактировал GetSmart - Jul 30 2011, 16:24


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 13:23
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 15:08) *
Ваша некомпетентность бросается в глаза sm.gif

Угу, именно она позволяла мне уже 20 лет назад писать MainBIOS, патчить биосы контроллеров IDE интерфейсов и писать загрузчики для своей системы.



QUOTE (GetSmart @ Jul 30 2011, 15:08) *
Представьте, 15 головок в BIOS. Как только код обратится к 16-ой, то кирдык. А 15 головок * 63 сектора - это 472.5 КБ (!).

Пустой набор слов ни о чем.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 13:29
Сообщение #21


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 18:23) *
Угу, именно она позволяла мне уже 20 лет назад писать MainBIOS, патчить биосы контроллеров IDE интерфейсов и писать загрузчики для своей системы.

Профессионалы ошибаются на плюс/минус 3 порядка sm.gif


Цитата
Пустой набор слов ни о чем.

Второй раз объясню.
Я недавно дизассемблил несколько загрузочных секторов MS-DOS/Windows.
Так вот, в них указано кол-во головок уровня DOS?. И при вычислении местоположения IO.SYS логический одномерный сектор делится на кол-во головок. Если вдруг местоположение IO.SYS окажется на головке выше чем в BIOS, то BIOS пошлёт код подальше. Если цилиндр окажется не нулевой, то сектор прочитается совсем не оттуда. Вот так то.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 13:51
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 15:29) *
Я недавно дизассемблил несколько загрузочных секторов MS-DOS/Windows.

И увидели фигу, не поняли, откуда берется расположение IO.SYS и как грузится IO.SYS, что не удивительно sad.gif, ибо Вам удается ее видеть даже глядя на более простые вещи, нежели дизассемблированный загрузчик. Продолжайте изучать. Должно-же когда-то дойти?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 14:11
Сообщение #23


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Очередная истерика?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 14:16
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 16:11) *
Очередная истерика?

Почему? Просто очередной раз убедился в справедливости русской поговорки "Дурака учить - только портить!" sad.gif



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 14:43
Сообщение #25


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 19:16) *
Почему?

Вам точно за 50?
По постам лет 15 с комплексом недооценённого таланта.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
follow_me
сообщение Jul 30 2011, 17:17
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



боже , из вас никто про LBA не слышал ? и про LBA48 точно никто
и про LBA -> CHS виртуальное преобразование ?

Человек вам правду говорил - из биоса получают данные , попробуйте простой тест , в старом биосе в котором можно ручками выставить CHS уберите часть головок или цилиндров или секторов и посмотрите как изменится определяемый DOS'ом размер


прошу прощения если я кого обижу . но гляньте тут на CHS , на LBA и на INT 13H

развязали тут две страницы полемики на пустом месте ....
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 17:49
Сообщение #27


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(follow_me @ Jul 30 2011, 22:17) *
Человек вам правду говорил - из биоса получают данные , попробуйте простой тест , в старом биосе в котором можно ручками выставить CHS уберите часть головок или цилиндров или секторов и посмотрите как изменится определяемый DOS'ом размер

Кое-что не сходится.
Мой биос показывает на одном из винтов 16 головок. Это честные АТА головки. Физически на винте их может быть и меньше, не суть. Но разметка на этом винте стоит на 32 головки. Не 16 и не 255. Я не собираюсь задавать сам какие-то значения. Меня интересует автоопределение и по какому алгоритму оно работает.

Цитата(follow_me @ Jul 30 2011, 22:17) *
прошу прощения если я кого обижу . но гляньте тут на CHS

Это напрямую никак не проясняет ситуацию с кол-вом головок. BIOS (int 13 func < 10h) может работать с головками до 255. Однако если диск (логический) размечен на 32, то BIOS будет работать с 32-мя. А не с 255. Причём кол-во АТА головок совершенно "до лампочки". Так вот. Либо BIOS приходится после перезагрузки читать первые сектора диска и их анализировать, либо по общему объёму диска по какому-то алгоритму задаётся кол-во головок.

Сообщение отредактировал GetSmart - Jul 30 2011, 17:57


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 31 2011, 14:57
Сообщение #28


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(follow_me @ Jul 30 2011, 22:17) *
прошу прощения если я кого обижу . но гляньте тут на CHS , на LBA и на INT 13H

развязали тут две страницы полемики на пустом месте ....

Прочитал эти три ссылки. Ржунимагу.
Вы, товарищи-писатели, хоть бы вчитывались в вопросы. Все три ссылки никак не проясняют алгоритм определения головок. В приличных биосах есть режим AUTO. Он умеет сам определять кол-во головок без ручного ввода их в биос.

zltigo просто мастер жанра. Когда ему указываешь что ответ не на тот вопрос, у него одна заготовка - вы, батенька, дурак biggrin.gif
zltigo, впредь прошу мне не отвечать. Ваша недопомощь мне не нужна.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 31 2011, 18:02
Сообщение #29


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Если вам не нравятся советы мудрого Zltigo sm.gif, то может быть окажется полезной ссылка "Работа с IDE HDD через порты контроллера"?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 31 2011, 18:40
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 31 2011, 16:57) *
zltigo, впредь прошу мне не отвечать. Ваша недопомощь мне не нужна.

Так ведь можно просто, в крайнем случае, непонятное просто молча пропустить. Ну а поскольку это форум, то отвечать или нет я буду решать сам.


QUOTE (Xenia @ Jul 31 2011, 20:02) *
то может быть окажется полезной ссылка "Работа с IDE HDD через порты контроллера"?

Нет, у него другая проблема, он типа дизасемблировал какую-то MBR (кстати,они достаточно разные у разных версий DOS и тем более WIN) и не понял, как загружается Boot Record активного раздела.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01511 секунд с 7
ELECTRONIX ©2004-2016