Я делаю эксперимент с ОС. До сих пор весь мой код использовал прерывание BIOS реального режима для управления жестким диском и гибкими дисками. Но как только мой код включил режим защиты CPU, вся процедура обслуживания прерываний BIOS в реальном режиме не будет доступна. Как я могу использовать R/W жесткий диск и дискету? Нужно ли мне сейчас делать некоторые драйверы оборудования? Как я могу начать? Является ли это одной из причин того, что ОС так сложно разрабатывать?
Я знаю, что все аппаратные средства контролируются путем чтения и записи в определенные регистры управления или данных. Например, я знаю, что регистры командного блока на жестком диске варьируются от 0x1F0 до 0x1F7. Но мне интересно, одинаковы ли регистровые адреса стольких разных аппаратных средств на платформе ПК? Или я должен обнаружить это, прежде чем использовать их? Как их обнаружить?
Поскольку я не уверен, что на дискете или жестком диске R/W в режиме защиты, я должен использовать прерывание BIOS для загрузки всего моего необходимого файла ядра с дискеты в память. Но , что я могу сделать, если мой файл ядра превышает реальный режим 1M пробела?
Для любых ответов я выражаю глубокую признательность.
Update
Я смутно помню, что есть способ сначала переключить защищенный режим, а затем переключиться обратно в реальный режим. И тогда мы могли бы использовать процедуру BIOS в защищенном режиме. Может, я ошибаюсь. Кто-нибудь помнил это правильно?