OSDev
http://osdev.su/

не работает на реальном железе
http://osdev.su/viewtopic.php?f=5&t=966
Страница 1 из 1

Автор:  Rammstein [ 19 июл 2014, 17:16 ]
Заголовок сообщения:  не работает на реальном железе

вобщем имеется "ОС", которая работает на всех виртуалках кроме VMWare, и на одном домашнем десктопе довольно давнишнего года выпуска. но не работает на ноуте. причем кода особо нету там, но не пашет. никаких видимых признаков жизни. что посоветуете для нахождения сего бага? по сути код переводит проц в защищенный режим и пишет в видеопамять. но на экране ничего нет.

Автор:  pavia [ 19 июл 2014, 18:03 ]
Заголовок сообщения:  Re: не работает на реальном железе

Для нахождения ошибки есть два подхода.
1) Разделяй и властвуй
2) Последовательно.
Второй лучше так как в первом есть вероятность проскочить.

Вывод в видео можно делать на всех этапах(исключение некоторые виде карты которые без драйверов неработают). Прерывания тоже можно не отключать.

Пошаговая отладка на эмуляторах. Рефракторинг кода.

Автор:  phantom-84 [ 19 июл 2014, 19:20 ]
Заголовок сообщения:  Re: не работает на реальном железе

Попробуйте до перехода в защищенный режим установить нужный режим через BIOS (подозреваю, что этого не было сделано).

Автор:  Rammstein [ 19 июл 2014, 20:00 ]
Заголовок сообщения:  Re: не работает на реальном железе

ну что могу сказать. либо ноут какой-то особенный, либо еще что-то. режим установлен был 100%. вобщем суть дела такова: переход в защищенный режим норм осуществляется, прерывания по таймеру инкрементят 0xB8000+24*160 слово. тики видны, символы меняются. но стоит мне заюзать биосовое прерывание (предпологаю 13h ah=48h), как что-то крашится и непонятно что крашится, ибо машина тупо мрет насколько я понял, но при этом продолжает мигать текстовый курсор. так только на моем ноуте, на домашнем десктопе код работает на ура. что делать - хз. ._. ну чтож, будем писать ось для виртуалки

Автор:  sh2ezo [ 19 июл 2014, 22:17 ]
Заголовок сообщения:  Re: не работает на реальном железе

Тоже была проблема, что кодес работал на виртуалках и на старой машинке. На новых же всё умирало. Думаю, надо попробовать не на двух машинках, а на четырех, хотя бы. Если у машинок будет сильно разная начинка, то вообще хорошо. Ну и после основательного теста уже думать, машинка виновата или кодес. Я тоже грешил на машинку, но, как оказалось, виноват был быдлокод.

Автор:  Rammstein [ 19 июл 2014, 23:42 ]
Заголовок сообщения:  Re: не работает на реальном железе

ну у меня виноват вызов int 13h ah=48h. когда сие убрал стало норм работать. даже вот определил как у меня память разделена. честно сказать охренел, что она разбита на 19h блоков.

Автор:  Himik [ 22 июл 2014, 23:40 ]
Заголовок сообщения:  Re: не работает на реальном железе

Попробуй вызвать функцию ah=48h с заведомо отсутствующим кодом устройства, например 87h, тогда функция не станет заполнять буфер памяти, и "зависания" возможно не произойдёт. Если получится так, значит проблема с размещением этого буфера.

Автор:  Rammstein [ 23 июл 2014, 00:00 ]
Заголовок сообщения:  Re: не работает на реальном железе

спасибо за совет, однако я уже забил на загрузку с CD диска и работаю только на виртуалках. в будущем будем думать что со всем этим делать. можно конечно выделить для оси отдельный хард, да только это пока лишняя трата денег.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/