![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 25.01.2016
Сообщений: 105
|
![]()
Мне интересно как реализуются высокие разрешения (выше 640x350) экрана и высокие цветовые гаммы (>256 цветов) в DOS на Ассемблере, ведь в BIOS нет таких режимов, а общаться с видеокартой не даёт реальный режим. Но программы не требующие 32-bit расширитель DOS и использует высокие разрешения экрана я видел. Но как они реализуются на ассемблере?
Последний раз редактировалось timcryt; 27.04.2016 в 14:26. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
читайте про VESA
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.01.2016
Сообщений: 105
|
![]()
Прочитал, но у меня остались некоторые вопросы: как выводить графику в реальном режиме с VESA, если стандартная функция прерывания 10h SVGA не поддерживает, а прямой доступ к видеопамяти запрещён (ну точнее не разрешён, ведь в реальном режиме можно всё), где компьютер находит столько видео памяти, ведь BIOS резервирует всего 384 Кб памяти, а, например, режим 11Bh требует минимум 3840 Кб (даже если под видеопамять уйдёт вся адресуемая память, ОЗУ просто не хватит).
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
через режимы длинного адреса можно вполне.
в 32 битную адресацию можно уйти и без готовых расширителей. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 | ||||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Читаем про VESA
http://www.osp.ru/pcworld/1998/07/159374/ Цитата:
Цитата:
Цитата:
Не надо путать системную память и видео память. Это два разных устройства. В 1 мегабайте под BIOS отводится 192 КБ адресов. 128 КБ отводиться под адреса видео памяти. Видео память компьютер находит где либо(на системной плате, на видео карте или в системной ОЗУ). А далее просто отображает её в адреса с $A0000 по $BFFFF Цитата:
Но лучше через LFB прыгаем в "нериальный" режим процессора. Это промежуточный между реальным и защищенным. И там работаем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 27.04.2016 в 16:24. |
||||
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 25.01.2016
Сообщений: 105
|
![]()
Но как ставить точку через функцию BIOS прерывания 10h если в видеорежиме больше 256 цветов, если под цвет выделен однобайтовый регистр?
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
один байт только в опред режимах. вы хоть формат режима прочитайте. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 25.01.2016
Сообщений: 105
|
![]() Цитата:
И ещё, что за такой "нериальный" режим, никогда о таком не слышал: знаю только реаль, защищённый и длинный режимы, ну и виртуальный. |
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
в VESA вы в буфер памяти пишете всегда и сами. https://ru.wikipedia.org/wiki/Unreal_mode Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 25.01.2016
Сообщений: 105
|
![]()
Да в видеопамять я писал исключительно с помощью прерывания 10h. Про Unreal Mode понял. Спасибо.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение разрешения экрана | sanya_fl | Общие вопросы .NET | 1 | 13.09.2011 14:49 |
Смена разрешения экрана | boostman | Общие вопросы Delphi | 1 | 05.12.2009 21:47 |
Изменение разрешения экрана | Alex Cones | Мультимедиа в Delphi | 2 | 16.04.2009 19:34 |
Определение разрешения экрана | nemoomen | Microsoft Office Excel | 9 | 16.03.2009 22:49 |
Смена разрешения экрана | san72 | Помощь студентам | 3 | 05.06.2008 12:38 |