OSDev

для всех
Текущее время: 20 апр 2024, 14:57

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 17:16 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 18:03 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Для нахождения ошибки есть два подхода.
1) Разделяй и властвуй
2) Последовательно.
Второй лучше так как в первом есть вероятность проскочить.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 19:20 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Попробуйте до перехода в защищенный режим установить нужный режим через BIOS (подозреваю, что этого не было сделано).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 20:00 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 22:17 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 19 июл 2014, 23:42 

Зарегистрирован: 10 апр 2014, 17:12
Сообщения: 68
ну у меня виноват вызов int 13h ah=48h. когда сие убрал стало норм работать. даже вот определил как у меня память разделена. честно сказать охренел, что она разбита на 19h блоков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 22 июл 2014, 23:40 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает на реальном железе
СообщениеДобавлено: 23 июл 2014, 00:00 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB