Поиск:

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


Шустрый
*


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

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



пробую зарисовать квадрат
в режиме VESA mode 640x480 RGB

Код

ckl:
  mov  [es:di], eax
  add  edi, 03h
  cmp  edi, 0000FFFFh
  jl   not_cor
  call vesa_corekt
not_cor:
  loop ckl


каждый раз когда ставится пиксель

определяется превысел ли EDI границу стека или нет
если превысел то включается корекция( то есть смена банков)

но только вот эта зараза не работает не могу понять почему.


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


Шустрый
*


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

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



как то не могу понять

команда  JL она рабочая или нет

суде по всему нет,

мне нужно выполнить такое действие   если EDI < 0000FFFFh , то выполнить прыжок

Код

  cmp  edi, 0000FFFFh   
  jl   not_cor
  call vesa_corekt
not_cor:


а оно так и не хочет выполнять условие.
PM MAIL   Вверх
500mhz
Дата 23.3.2012, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



может тогда di,0xffff
cmp
jg

Добавлено через 41 секунду
а вообще не мучайте *опу, включите LFB и рисуйте себе в свое удовольствие без всякого переключения банков


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

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


Шустрый
*


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

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



Цитата(500mhz @  23.3.2012,  11:26 Найти цитируемый пост)

может тогда di,0xffff
cmp
jg

Добавлено через 41 секунду
а вообще не мучайте *опу, включите LFB и рисуйте себе в свое удовольствие без всякого переключения банков



а как включить LFB

и что от этого изменится
PM MAIL   Вверх
500mhz
Дата 23.3.2012, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



как что изменится? получим единое адресное пространство размером 640*480*bpp
и рисуем без заморочек с переключением так как видеопамять будет представлена одним большим окном.


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

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


Шустрый
*


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

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



так все таки какой функцией включить LFB

Добавлено через 9 минут и 10 секунд
всё нашёл.

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


шайтан
***


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

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





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

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


Шустрый
*


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

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



включил я этот LFB только ни чего он не показывает

а тот код который по ссылке приведён,

не только не работает, но и ещё в добавок приводит к сбою об этом я писал ранее.

Код

org     7C00h
  ;JMP start
macro key
{
  mov ax, 0
  int 16h
}
  xor eax, eax
  xor ebx, ebx
  xor edi, edi
  jmp start

vesa_mode_640_480_888:
  mov ax , 4F02h
  mov bx , 4112h
  int 10h
  mov ax , 4F01h
  mov cx , 4112h
  mov di , vesa_graf
  int 10h
  mov di , vesa_graf
  mov ax , [es:di+12h]
  mov [displey_w], ax
  mov ax , [es:di+14h]
  mov [displey_h], ax
  mov eax , [es:di+28h]
  mov [LFB]    , eax
  ret

vesa_set_x_y:
  mov  bp , [displey_w]
  imul ebx, ebp          ;y*displey_w
  add  ebx, eax          ;y*displey_w+x
  imul ebx, 03h          ;(y*displey_w+x)*3
  add  ebx, [LFB]
  mov  edi, ebx
  ret

set_box:
  call vesa_set_x_y
  mov  bx , cx
  mov  cx , dx
  mov  eax, esp
  sub  ebp, ecx
ckl:
  mov  dx , cx
  mov  cx , bx
ckl2:
  mov  [edi], eax
  add  edi, 03h
  loop ckl2
  add  edi, ebp
  mov  cx , dx
  loop ckl
  ret

start:
  key
  call vesa_mode_640_480_888
  key
  mov  ax , 0032h
  mov  bx , 0050h
  mov  cx , 012Ch
  mov  dx , 0190h
  mov  esp, 00FF8000h
  call set_box
kgn:
  key
  jmp kgn
displey_w dw 0
displey_h dw 0
LFB       dd 0     ; (x,y)=(0,0)
vesa_graf db 0,0,0,0,0


Это сообщение отредактировал(а) scuter - 23.3.2012, 15:08
PM MAIL   Вверх
500mhz
Дата 23.3.2012, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



все работает, у вас flat режим памяти включен? судя по исходнику нет.
и вообще нафига пихать это в бут сектор?  


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

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


Шустрый
*


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

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



Цитата(500mhz @  23.3.2012,  15:30 Найти цитируемый пост)

все работает, у вас flat режим памяти включен? судя по исходнику нет.

ну а как включить этот режим памяти
Цитата(500mhz @  23.3.2012,  15:30 Найти цитируемый пост)

и вообще нафига пихать это в бут сектор? 

к сожалению, это единственный способ который я знаю,

как по другому запустить код пока ещё не догадался.
PM MAIL   Вверх
500mhz
Дата 23.3.2012, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



Цитата

ну а как включить этот режим памяти

по ссылке что я дал выше есть исходник в нем все это проделываеться

Цитата

к сожалению, это единственный способ который я знаю,

как по другому запустить код пока ещё не догадался. 

что мешает поставить на виртуалке мсдос чистый и в нем эксперементировать?


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

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


Шустрый
*


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

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



Цитата(500mhz @  23.3.2012,  15:48 Найти цитируемый пост)
по ссылке что я дал выше есть исходник в нем все это проделываеться


вот, благодаря этой ссылке я уже процессор в компьютере поменял,

лучше просто на словах обьяснить.
Цитата(500mhz @  23.3.2012,  15:48 Найти цитируемый пост)
что мешает поставить на виртуалке мсдос чистый и в нем эксперементировать?


на виртуалке уже стоит DOS по умолчанию вместе с BIOS-ом,

если поставить Win XP естественно ни какая VESA на запустится.
PM MAIL   Вверх
500mhz
Дата 23.3.2012, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



Цитата

вот, благодаря этой ссылке я уже процессор в компьютере поменял,

это как?  smile 

Цитата

лучше просто на словах обьяснить.

на словах:
1) проверяем А20 линию, если выключена включаем
2) заходим в зашищеный режим
3) ставим все сегментные регистры в лимит 4гигабайта
4) выходим из зашищеного режима
вуаля


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

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


Шустрый
*


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

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



спасибо,

заработало.


Цитата(500mhz @  23.3.2012,  17:03 Найти цитируемый пост)

Цитата

вот, благодаря этой ссылке я уже процессор в компьютере поменял,

это как?


да все просто, использовал  я этот код несколько раз,

каждый раз появлялся чёрный экран, только не в окне VBox, а прямо весь монитор чёрный

потом он светлел и становился серым,

потом у меня погарели пикселы на мониторе,

и дымок пошел из системного блока,

открыл корпус посмотрел,

и вуаля две замечательные струйки дыма идут от проца и от видео карты.



вот такая замечательная история приключилась,
когда у меня в первый раз комп выключился я понял что с этим не стоит эксперементировать

но соблазн был очень велик.

Это сообщение отредактировал(а) scuter - 23.3.2012, 17:40
PM MAIL   Вверх
Dreamuchiy
Дата 11.3.2013, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

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

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


 




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


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

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