Вывод точки в VESA

Тема в разделе "WASM.ASSEMBLER", создана пользователем tower120, 24 апр 2007.

  1. tower120

    tower120 New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    56
    Заливаем экран не с первого буфера по последний, а наоборот.
     
  2. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    ЗЫ Поскольку прогу пускаешь из-под форточек, не пробовал ставить\снимать галку "Эмуляция VideoBIOS драйверами карточки" в настройках PIF'а?
     
  3. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Мистика...
    Может бага в коде.
    А вообще попробуй запустить из чистого DOS.
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А этот код у тебя что рисует?

    Код (Text):
    1. code segment
    2. assume cs:code, ss:code, ds:code
    3. org 100h
    4. start:
    5.     mov ax,4F02h
    6.     mov bx,115h
    7.     int 10h
    8.  
    9.     or ah, ah
    10.     jnz exit    
    11.  
    12.     mov ax, 4f05h
    13.     xor bx, bx
    14.     xor dx, dx
    15.     int 10h
    16.    
    17.  
    18.     mov ax, 0a000h
    19.     mov es, ax
    20. draw:
    21.     xor si, si
    22. fill:
    23.     mov es:[si],    byte ptr 0h     ; синий
    24.     mov es:[si+1],  byte ptr 0h     ; зелёный
    25.     mov es:[si+2],  byte ptr 0ffh   ; красный
    26.     add si,4
    27.     jnz fill    
    28.     test dx,dx
    29.     jnz  done
    30.     mov ax, 4f05h
    31.     xor bx, bx
    32.     mov dx, 1Ch
    33.     int 10h
    34.     jmp short draw
    35. done:
    36.     xor ah, ah
    37.     int 16h
    38. exit:
    39.     mov ax, 0003h
    40.     int 10h
    41.     mov ax, 4c00h
    42.     int 21h
    43.    
    44. code ends
    45. end start
    Должно быть 2 красных полосы - сверху и снизу.
    Правда если режим 24бита а не 32 - то полосы будут из разноцветных точек.
     
  5. tower120

    tower120 New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    56
    Полосы рисует, линии - нет. И ёщё - нижняя полоса помойму иногда другого размера.
     
  6. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А так чего рисует?

    Код (Text):
    1.     .386
    2. code    segment para    public  'code'  use16
    3.     assume  cs:code, ss:code, ds:code
    4.     org 100h
    5. start:
    6.     mov ax,4F02h
    7.     mov bx,115h
    8.     int 10h
    9.     cmp ax,004Fh
    10.     jne exit    
    11.  
    12.     mov eax,0000FF00h
    13.     mov ebx,400
    14.     xor edx,edx
    15. vline:
    16.     call    pixel
    17.     inc dx
    18.     cmp dx,600
    19.     jb  vline
    20.     xor bx,bx
    21.     mov dx,300
    22. hline:
    23.     call    pixel
    24.     inc bx
    25.     cmp bx,800
    26.     jb  hline
    27.     xor ah,ah
    28.     int 16h
    29. exit:
    30.     mov ax,0003h
    31.     int 10h
    32.     mov ax,4C00h
    33.     int 21h
    34. ;------------------------------------------------
    35. ;-= EAX = Pixel_Color =-
    36. ;-= EBX = Pixel_X     =-
    37. ;-= EDX = Pixel_Y     =-
    38. ; ---------------------
    39. pixel   proc    near
    40.     pushad
    41.     push    es
    42.     push    0A000h
    43.     pop es
    44.     lea ecx,[edx*8+edx]
    45.     shl edx,04h
    46.     add edx,ecx
    47.     shl edx,07h
    48.     shl ebx,02h
    49.     add edx,ebx
    50.     push    dx
    51.     shr edx,10h
    52.     cmp dx,[current_bank]
    53.     je  bank_ok
    54.     push    ax
    55.     mov [current_bank],dx
    56.     mov ax,4F05h
    57.     xor bx,bx
    58.     int 10h    
    59.     pop ax
    60. bank_ok:
    61.     pop bx
    62.     mov es:[bx],eax
    63.     pop es
    64.     popad
    65.     ret
    66. pixel   endp
    67. ;------------------------------------------------
    68. current_bank    dw  00h
    69. ;------------------------------------------------
    70. code    ends
    71.     end start
     
  7. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А кто их спрашивать будет :)
    Погугли pdf password remover.
     
  8. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    tower120 твои какие мнения на этот счёт?
    cppasm любишь 32-битные регистры :derisive: ЗЫ Спасибо за pdf.
    ЗЫ Хорошо бы выровнять окна в видеопамяти так, чтобы их начала совпадали с началами строк, VESABIOS это позволяет. Но это уже потом.
     
  9. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Переделал свою оч. старую програмульку под VESA. Посмотри сам, что где выводится.
    Использует кнопки стрелки, pgup,pgdn,home,end,ESC.
     
  10. tower120

    tower120 New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    56
    cppasm
    Запустил. Намалевало крестик. Вышел из проги. Экран сдвинуло влево сантиметров на 5 (19'' монитор).

    Vov4ick
    Работает отлично. Спасибо ;).

    Ладно, думаю обсуждение можно считать оконченым. Всем ОГРОМНОЕ спасибо.
     
  11. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Значит все точки прорисовываются. :)
    Ну я хозе, у меня восстановление старого режима такое же как у Vov4ick...
    А вообще это скорее всего Win выделывается...
     
  12. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Да, пускал свою прогу на нескольких компах под форточками (хр) мониторы дружно вопили о недопустимом видеорежиме и изменение галки "эмулировать видеобиос дровами" ничего не дало. Видимо не повезло с видеокартами\драйверами (не помню какие к сожалению)
     
  13. tower120

    tower120 New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    56
    Vov4ick
    Это ты кому?
     
  14. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Это в дополнение к виндовым глюкам :derisive: