OSDev

для всех
Текущее время: 02 май 2024, 21:56

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 09 янв 2009, 19:22 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Вот цитата из оригинальной документации IBM (она у меня в бумажном варианте):

This command pulses selected bits in the controller output port for approximately 6 microseconds.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2009, 01:40 

Зарегистрирован: 09 дек 2008, 00:48
Сообщения: 16
ну вы звери!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2009, 22:13 

Зарегистрирован: 09 янв 2009, 12:19
Сообщения: 4
Просьба прокомментировать следующие моменты:
> шлюз перекрывает не вообще доступ к памяти за первым мегом, а лишь к четным мегам, т.е. 2-му, 4-му и т.д.

> Еще можно открыть линию так
> WaitInputBufferEmpty
> mov al,EFh
> out 64,al
Кажется, это не работает.

И как будет себя вести приведенный phantom-84 код при отстутствии клавиатуры? Не могу проверить на ноуте, в VMWare тоже вроде не отключается, а качать что-либо другое - интернет сейчас дорогой.
Остальное, в принципе, понятно. Спасибо за подробные разъяснения.

P.S.
Держателям ресурса:
По аналогии с http://osdev.ru/news и http://osdev.ru/forum попробовал зайти на http://osdev.ru/wiki и был немного удивлен сообщением об отсутствии вики :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2009, 08:16 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Работает или нет -- не знаю, проверять на практике лень :) Но отсутствие клавиатуры сказываться не должно. Вспомните, например, такую фичу, как эмуляция клавиатуры и мыши PS/2 средствами BIOS, когда в наличии только клавиатура и мышь USB. Механизм там, насколько понимаю, теоретически достаточно простой: при обращении к портам контроллера PS/2 происходит прерывание управления системой (SMI), процессор переходит в режим управления системой (SMM) и "подпольно", незаметно для программ, выполняет необходимые действия, как будто контроллер PS/2 и подключенные к ним устройства реально присутствуют. Точно такая же схема годится и здесь: реальное переключение вентиля A20 выполняет код BIOS, выполняющийся в режиме SMM, хотя с точки зрения программы пользователя всё выполняется аппаратно самим контроллером клавиатуры.

Ну а вика по адресу wiki.osdev.ru. Правда, ценного пока там немного, а хаоса -- полно. Всё вот хочу заняться наведением порядка, да конечности не доходят :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2009, 17:53 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Про доступ к четным мегам следует понимать дословно. Попробуй обнулять 20-ый разряд в произвольных линейных адресах и все поймешь сам.

Про команду контроллера EF ничего не знаю. Знаю только, что есть однобайтовая команда контроллера DF, но она работает далеко не всегда. Возможно, ее использование следует включить в цепочку попыток открыть GateA20, но я этого не стал делать. Кстати, в своем первом посте ты явно путаешь команду FF контроллеру с командой FF клавиатуре, т.е.
mov al, 0FFh
out 64h, al ; pulse output port
и
mov al, 0FFh
out 60h, al ; reset keyboard
При отсутствии клавиатуры проблем быть не должно. При отсутствии контроллера конечно могут возникнуть, но в коде нет возможности полного зацикливания из-за непоявления в статусном регистре (порт 64h) требуемого значения бита 1, поэтому может возникнуть лишь более длительная задержка. К тому же есть код для выполнения дополнительной попытки открыть шлюз с помощью порта управления системой, который позволяет открывать шлюз даже во встраиваемых системах, не имеющих клавиатурного контроллера, но поддерживающих управление через порт 92h.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2009, 20:32 

Зарегистрирован: 05 дек 2008, 03:58
Сообщения: 57
Про доступ к 4 мегам кто-то писал что встречал, как и полную блокировку так только нескольких линий.

Поповуду EF это из описание на контроллера VIA.

На данный момент в мой коллекции
Пару страниц из описание IBM на 8042
Контроллер VIA 80C42
Контроллер 8042 Intel UPI-42
Контроллер 42w11 SMSC(Standard Microsystems Corporation)
А также Super IO 47b272 тоже SMSC. Хорошее описание.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 янв 2009, 10:24 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Pavia, извини за вопрос, ты из России?
Я правильно понял, что ты хотел сказать, что в некоторых случаях шлюз перекрывает не только 20-ую адресную линию, но и те, что старше? В любом случае шлюз нужно открывать. Я в предыдущих постах просто хотел уточнить, что и при закрытом шлюзе возможен доступ к отдельным областям памяти выше первого мега.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 янв 2009, 15:11 

Зарегистрирован: 05 дек 2008, 03:58
Сообщения: 57
Из России. Русский. Вроде я там все корректно написал. Да, ты правильно понял.

Создал ветку в вики http://wiki.osdev.ru/index.php/Включение_линии_A20


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 янв 2009, 20:19 

Зарегистрирован: 09 янв 2009, 12:19
Сообщения: 4
phantom-84,
> Про доступ к четным мегам следует понимать дословно.
> Попробуй обнулять 20-ый разряд в произвольных линейных адресах и все поймешь сам.
да, мог бы и догадаться)
> в своем первом посте ты явно путаешь команду FF контроллеру с командой FF клавиатуре
тоже осознал

Pavia,
> Создал ветку в вики http://wiki.osdev.ru/index.php/Включение_линии_A20
Отлично)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 янв 2009, 12:31 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Я перенёс статейку в раздел "Практика программирования". Там же рассматривается именно практическая реализация этого дела :) Ну и надо будет написать отдельную статью про сам вентиль А20 -- заголовок я уже влепил в "Устройство ПК". Напишу, когда дойдут руки, если раньше сделано не будет. Ну и плюс отредактирую написанную про включение А20: у Pavia, увы, с русским языком довольно плохо, особенно с пунктуацией...


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

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


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

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


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

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