Как узнать номер диска и другие данные для загрузки файла с диска через BIOS
Пишу собственную ОС, пока все работает, так вот, хочу подгрузить следующий файл с диска(вторичный загрузчик), прошу помогите, как узнать номер диска, дорожки и т.д. И в какой адрес надо подгружать второй бинарник? 0x0860?
Пишу свою ОС
int13h
куда подгружать второй файл
пишу свою ОС, пока всё работает
как узнать место расположения файла на диске
cd-диск
как узнать номер диска
Дениска, ты ли это?
"И в какой адрес надо подгружать второй бинарник?" - в любой свободный . не трогая младшие 4 кило и не выше 640кб .
"дорожки" - нафиг дорожки . юзай EDD . а расположение файла можно либо передать из mbr (редко используется), либо загружать вторичный загрузчик из следующих за mbr 63 сектора , либо загружать из boot секции раздела , либо первичный загрузчик должен знать имя файла и уметь разбирать файловую систему (не используется , т.к. залить в 512 байт все файловые системы трудновато).
2 способ обычно используется мультизагрузчиками . 3 способ используется ОСями .
Цитата: CassandraDied
Пишу свою ОС
int13h
куда подгружать второй файл
пишу свою ОС, пока всё работает
как узнать место расположения файла на диске
cd-диск
как узнать номер диска
Дениска, ты ли это?
Нет, не я.
Цитата: koderAlex
"как узнать номер диска" - номер диска при загрузке mbr находится в dl .
"И в какой адрес надо подгружать второй бинарник?" - в любой свободный . не трогая младшие 4 кило и не выше 640кб .
"дорожки" - нафиг дорожки . юзай EDD . а расположение файла можно либо передать из mbr (редко используется), либо загружать вторичный загрузчик из следующих за mbr 63 сектора , либо загружать из boot секции раздела , либо первичный загрузчик должен знать имя файла и уметь разбирать файловую систему (не используется , т.к. залить в 512 байт все файловые системы трудновато).
2 способ обычно используется мультизагрузчиками . 3 способ используется ОСями .
"И в какой адрес надо подгружать второй бинарник?" - в любой свободный . не трогая младшие 4 кило и не выше 640кб .
"дорожки" - нафиг дорожки . юзай EDD . а расположение файла можно либо передать из mbr (редко используется), либо загружать вторичный загрузчик из следующих за mbr 63 сектора , либо загружать из boot секции раздела , либо первичный загрузчик должен знать имя файла и уметь разбирать файловую систему (не используется , т.к. залить в 512 байт все файловые системы трудновато).
2 способ обычно используется мультизагрузчиками . 3 способ используется ОСями .
Ну а если известно, что будет одна файловая система, например ISO 9660?
Можно по-подробней про 3-ий вариант при ISO 9660, в интернете нашел структуру и формат каталоговой записи http://www.ipm.kstu.ru/os/lec/13.php
EDD - расширеный дисковый сервис? Существует ли он на древних компах(2000 года)?
iso9660 - это загрузка с cd\dvd . обычно там в загрузочном секторе лежит ссылка на файл образа дискетки .
биос обнаружив такое дело перекидывает стандартный int13h через себя на этот файл .
если научите свою ось грузится с дискетки , то и с сидюка загружаться получится .