OSDev

для всех
Текущее время: 29 апр 2024, 17:52

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Работа на реальном железе
СообщениеДобавлено: 05 фев 2013, 15:04 

Зарегистрирован: 23 ноя 2012, 13:02
Сообщения: 27
Здравствуйте, не совсем понимаю, куда бы отнести данный вопрос, решил сюда... :oops:
Вчера решил попробовать запустить свою ОС не под виртуальной машиной (qemu, virtual box), а на реальном компе, записал на диск, загрузился...
Все работает, но обнаружилось следующее:
1. Белый цвет почему-то отображается как серый
2. Экран мигает, то есть то все исчезает, то все появляется с определенной частотой.
Отсюда вопрос, чем может быть вызвано подобное поведение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа на реальном железе
СообщениеДобавлено: 05 фев 2013, 15:55 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
У вас описание сумбурное. отлаживайте. Зделайте несколько вариантов и попробойте по переключать видео режим и способы отрисовки.

Мигание может быть вызванно соотвествующим режимом. Три бита цвет четвёртый бит моргание. А есть режим с 16 цветами где четвёртый бит кодирует светлый тон, а не моргание.
Что касется серого, то может быть выбран режим 6 бит, 6 бит, 6 бит, а не 8 бит, 8 бит, 8 бит.
Плюс возможно вы не учли обратный ход луча. В LCD он тоже есть для совместимости с CRT.
Ещё возможно вы выбрали частоту или разрешение не поддерживаемое вашем монитором.
Или ещё ошибка в коде экран перезатирается или очишается. Неправильно рассчитываются банки.


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

Зарегистрирован: 23 ноя 2012, 13:02
Сообщения: 27
Да, возможно я не совсем корректно выразился, дело в том, что я не переключаю видео режимы, ОС работает в текстовом режиме, пишу напрямую в видео буфер, по адресу 0xB8000... Поэтому про переключение режима и выставление расширения экрана пока даже речи не идет...


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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
А ну тогда всё точно. У тебя виде режим где цвет символа кодируются 4 битами и 4 бит отвечает за моргание. Поэтому текст и серый и моргает. Просто надо другой режим включить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа на реальном железе
СообщениеДобавлено: 05 фев 2013, 20:01 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Код:
mov ah,10h ; группа функций по управлению палитрой
mov al,3 ; функция отвечающая за выбор интенсивность/моргание.
mov bl,0 ; 0- интенсивность; 1- моргание
int 10h ; Прерывание отвечающие за подсистему видео карты.


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

Зарегистрирован: 23 ноя 2012, 13:02
Сообщения: 27
pavia писал(а):
Код:
mov ah,10h ; группа функций по управлению палитрой
mov al,3 ; функция отвечающая за выбор интенсивность/моргание.
mov bl,0 ; 0- интенсивность; 1- моргание
int 10h ; Прерывание отвечающие за подсистему видео карты.

Спасибо... Но я сам не настраиваю видеорежим, за меня это делает граб... А для того, чтобы выполнить данный код придется переключаться обратно в реальный режим... Можно ли сделать что-нибудь подобное с помощью grub?


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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Можно и через порты сделать тоже самое.
C ошибкой


Последний раз редактировалось pavia 05 фев 2013, 21:24, всего редактировалось 1 раз.

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

Зарегистрирован: 23 ноя 2012, 13:02
Сообщения: 27
Я сейчас через порты попытался переключить режимы, не получается, перестает работать полностью вывод на экран... Экран очищается и больше ничего не выводится... :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа на реальном железе
СообщениеДобавлено: 05 фев 2013, 21:32 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Сейчас перечитал внимательнее руководство. Код не проверяю. Всё оказалось гораздо запутаннее.
Код:
push dx
dx, 3DAh
in al,dx  ; Сбрасываем Flip-Flop

dx, 3C0h
mov al,10h+20h  ; 10h - индекс доступа к атрибутам ; 20h разрешить доступ к регистрам.
out dx,al   

dx, 3C1h   ; регистр для чтения
in al,dx
and al, 11110111b
push al

dx, 3DAh
in al,dx  ; Сбрасываем Flip-Flop
dx, 3C0h
mov al,10h  +20h; 10h - индекс доступа к атрибутам ; 20h разрешить доступ к регистрам.
out dx,al
pop al
dx, 3C0h ; регистр на запись совпадает с индексным регистром
out dx,al
pop dx
ret


Последний раз редактировалось pavia 05 фев 2013, 21:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа на реальном железе
СообщениеДобавлено: 05 фев 2013, 21:42 

Зарегистрирован: 23 ноя 2012, 13:02
Сообщения: 27
Я проверил сейчас код, тоже похоже, что что-то не то, опять тот же результат, экран очищается и вывод на экран не работает...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.

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


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

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


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

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