Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VESA это большая проблема 
:(
    Опции темы
scuter
Дата 20.11.2011, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



Я запустил код на виртуальной машине, в нём запустил VESA режим,
и комп вылетел полностью из строя
вот оно замечательное творение
Код

use16
org 100h
  mov bx, 00ACh
  mov cx,0FFh
  mov ah,0Eh 
write:
  mov al,cl                       ;get a byte
  int     10h                     ;BIOS video interrupt
  loop    write                   ;repeat for the rest
  ;xor     ah,ah                   ;wait key function number
  ;int     16h                     ;BIOS keyboard interrupt
  
  
  mov    ax,4F00h
  mov    di,Video_Buffer
  int    10h
  mov    bx,word [Video_Buffer+04h]
  cmp    bx,0200h
  jl    Not_support_LFB
  jmp    Next_step
Not_support_LFB:
    mov    ah,9
    mov    dx,Error
    int    21h
    ret
Next_step: 
  mov    ax,4F01h
  mov    cx,4112h
  mov    di,Info_Buffer
  int    10h
  
  mov    esi,dword [Info_Buffer+028h]
  push    esi
  mov    ax,4F02h
  mov    bx,112h
  int    10h
  pop    esi    
gdt_base    dd    ?
Pos_X            dd    0    ; Координата X точки
Pos_Y            dd    0    ; Координата Y точки
X_scr            dd    0    ; Разрешение по X
Cr_Red        db    0    ; Красная компонента
Cr_Green        db    0    ; Зелёная компонента
Cr_Blue        db    0    ; Синяя компонента
Cr_Alpha        db    0    ; Альфа
Info_Buffer        db    256 dup(0)    ; Буфер для информации о режиме
Video_Buffer        db    512 dup (0)    ; Буфер для общей SVGA информации
Error            db    "Not support VESA VBE 2.0 or higher!$"

PM MAIL   Вверх
500mhz
Дата 20.11.2011, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



и ? что от нас требуется?


--------------------

PM MAIL ICQ   Вверх
iff
Дата 20.11.2011, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Цитата(scuter @  20.11.2011,  06:27 Найти цитируемый пост)
виртуальной машине


Цитата(scuter @  20.11.2011,  06:27 Найти цитируемый пост)
комп вылетел 

явно что-то не так с виртуальной машиной smile


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
scuter
Дата 20.11.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



Цитата(iff @  20.11.2011,  10:38 Найти цитируемый пост)
явно что-то не так с виртуальной машиной


виртуальная машина Oracle VM VirtualBox KolibriOS там запускается нормально.

Цитата(500mhz @  20.11.2011,  09:41 Найти цитируемый пост)
и ? что от нас требуется?

мне бы узнать почему комп вышел из строя,

и хотелось бы нормально в режиме VESA по работать,
а то 256-цветный дисплей с размером 320х200
это конечно хорошо, но хотелось бы все таки использовать полноценное RGB разрешение с альфа каналом
хотябы 800 x 600 (8:8:8)RGB

и не так как в других местах пишут, типа надо найти то место где находиться BITMAP дисплея и в него на прямую писать
PM MAIL   Вверх
scuter
Дата 20.11.2011, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



математика тут простая 

предположим режим у нас bx=11Bh ; 1280 x 1024 RGB
посчитаем количество точек 1280*1024=1310720
потом учтём параметры цвета 1310720*3=3932160
в регистре AX самое большое число которое туда помещается это 65536
если сравнить обьём памяти экрана и AX : 3932160=65536
то становится понятным что так просто указывать путь ES:AX не представляется возможным
PM MAIL   Вверх
iff
Дата 20.11.2011, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Цитата(scuter @  20.11.2011,  16:36 Найти цитируемый пост)
указывать путь ES:AX 

адрес. для этого и нужен регистр сегмента - меняйе его. или используйте eax


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
scuter
Дата 20.11.2011, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



Цитата(iff @  20.11.2011,  17:00 Найти цитируемый пост)
адрес. для этого и нужен регистр сегмента - меняйе его. или используйте eax

регист сегмента это CS , DS , SS , ES, FS, GS


на сколько я понимаю размер сегмента 65536
то есть видео буфер не может поместится в один сегмент
и это означает что придётся устраивать крутоверть с сегментными регистрами
а как это делать с eax немного не знаю
прям вот так вот и писать
Код

mov dword EAX, EBX

PM MAIL   Вверх
iff
Дата 20.11.2011, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



1. Витруальная машина не когда не должна приводить комп к зависанию (даже если на ней запускают программу с ошибами)
2. На сколько я помню в VESA используют "видео-окна", размеры каждого позволяют использовать адрессацию, когда адрес указывается как сегмент:смещение, причём сегмент не меняется, т.е. можно адрессовать одним шестнадцатиразрядным регистром. Окна можно переключать и получать доступ к разным частям экрана.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
scuter
Дата 20.11.2011, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



лучьше дайте рабочий пример скрипта на FASM
который запускает VESA в режиме bx=115h (800 x 600, RGB, 16777216 (16M))
и записывает точку где нибудь по центру, а ещё лучше линию

и текстовый режим bx=10Ch (132x60 text)
с записью пары букв на русском языке

Добавлено через 10 минут и 36 секунд
Цитата(iff @  20.11.2011,  19:46 Найти цитируемый пост)

1. Витруальная машина не когда не должна приводить комп к зависанию (даже если на ней запускают программу с ошибами)
2. На сколько я помню в VESA используют "видео-окна", размеры каждого позволяют использовать адрессацию, когда адрес указывается как сегмент:смещение, причём сегмент не меняется, т.е. можно адрессовать одним шестнадцатиразрядным регистром. Окна можно переключать и получать доступ к разным частям экрана.

тем не мения Oracle VM VirtualBox хоть и использует VMX монитор у меня всё равно стал черным и по середине был мёртвый синий экран виндовса

повторять такие попытки я больше не буду слишким опасно для компа.

а на счёт страниц VESA хотелось бы узнать как эти страници растределяются по экрану и сколько их
в документациях пишут (окно А, окно В)
PM MAIL   Вверх
500mhz
Дата 20.11.2011, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



flat real mode вам поможет
получаем прямой доступ к LFB без заморочек со страницами


--------------------

PM MAIL ICQ   Вверх
scuter
Дата 20.11.2011, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



Цитата(500mhz @  20.11.2011,  20:50 Найти цитируемый пост)
flat real mode вам поможетполучаем прямой доступ к LFB без заморочек со страницами

 
smile 

Цитата(scuter @  20.11.2011,  19:49 Найти цитируемый пост)

лучьше дайте рабочий пример скрипта на FASM
который запускает VESA в режиме bx=115h (800 x 600, RGB, 16777216 (16M))
и записывает точку где нибудь по центру, а ещё лучше линию

и текстовый режим bx=10Ch (132x60 text)
с записью пары букв на русском языке


мне бы хоть начать что то делать


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.