Конец SoftICE и Syser (технологии отображения на экран)

Тема в разделе "WASM.NT.KERNEL", создана пользователем PROFi, 30 июн 2007.

  1. Guest

    Guest Guest

    Публикаций:
    0
    Под SICE? Отлаживай в Olly =)
     
  2. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    im1111

    А если есть еще и Star-force :) - Это не выход.
    Суть проблемы в том что до замены компа пользовал GeForce 2MX и свой отладчик, купил новый комп отладчик работает, но вывод на экран - большая проблема.
     
  3. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    PROFi
    Выход 2 компа, меня как то в этом ещё Ms-Rem убеждал в этом и теперь я полностью убедился.

    ЗЫ так откуда взялась нелинейность

    ЗЫЫ и как мне извесно сайс ещё мог переходить в VGA и выводить там, а сей час?
     
  4. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SPA
    С Universal driver все закончилось ...
     
  5. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    при чем здесь вообще курсор? ;) Он упомянулся только как пример 2D-ускорения, как одна из фич видеокарты, которая аффектит внешний вид айса. ;)
    Мысль была в том, что geforce 8ххх рекламируется как карта с дополнительными фичами специально для поддержки "нового интерфейса висты" и dx10. Отсюда и предположение, что могли добавить в этом плане что-то такое, что привело к несовместимости с прогами, использующими фреймбуфер напрямую.
    по проявлению эффекта наводит на подозрение, что неверно определяется pitch. А каким образом вычислял смещение в видеопамяти, случайно не y * разрешение_по_горизонтали * байт_на_пиксел ? Или через pitch?
     
  6. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    _BC_

    На старых видеокартах смещение было 0, т.е. если отобразить видеопамять с начального адреса, то записав по этому адресу мы выводим на экран точку в верхний левый угол. Потом появились видеоналожния, и приходилось перебором находить этот начальный адрес (смещение), а сейчас я использовал lesson3.rar (см. выше) после запуска там программа получает логический адрес, его я преобразовал в физический и получил не С0000000h а С00F0000h (GeForce 8800 GTS) так вот если выводить по этому адресу в момент когда прога запущена - все работает ОК, но стоит снять приложение, как вывод превращается в прямоугольники, но первая точка выводится все равно в верхнем левом углу.
     
  7. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    я имел в виду вообще-то не базу фреймбуфера.
    поставлю вопрос конкретно: как вычисляется расстояние в байтах между строками экрана?
    add: т.е. при выводе в твоем отладчике. Чисто формульно или директдравовский pitch?
     
  8. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    PROFi
    Лично к тебе вопрос, почему видиопамять перестала отоброжаться линейно(нах это кому надо)?
    Я раза 3 спросил, но такоё ощущение что мои посто >> null.
    Мне просто интересно вдруг в причине и кроеться ответ как организовать вывод на новых видиокартах. Еслив никто не знает то давайте прикинем как можно выяснить.
     
  9. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Ну вы блин даете...
    Читаю и прифигеваю...возвращаемся в мир ZX Spectrum что-ли :) вот уж там полная нелинейность, но по известным законам.
    А хоть какая то совместимость то осталось у карточки, типа VBE ?
    Если исключить виндовоз и установить видеорежим средствами VESA BIOS, и попробовать непосредственно гадить в видеопамять, что тогда будет ?
    Могу предположить что нелинейность была введена для ускорения отображения/обработки тайловых текстур (такие, которые находятся в памяти не линейно, а разбиты на квадратики - для ускорения операций фильтраци над ними: чтобы соседние строчки текстуры не были разбросаны по памяти а находились рядышком дабы снизить веротность появления кэш промахов).

    ЗЫ:Система накопления бреда подсказывает :) специальная разбивка фрейм буфера для использования в системах с несколькими дисплеями :))))
     
  10. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SPA

    Потому, что Windows переводится как окна, а сними легче стало работать, поскольку теперь сразу отвечу _BC_ шаг между строками стал равен ширине окна.

    Раньше шаг между строками определял используя регистры CRT (вплоть до GeForce 2MX работало исправно), но поскольку там регистры 8 бит, приходилось логически домышлять - сверх этих 8 бит будет 1 или 2 , битность опеделял если по смещению [BASE(базовый адрес вывода) + 3] = 0 - то 32 бита иначе 16 (8 бит приходилось выставлять вручную)
     
  11. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    хм а раз ограничений на аппаратном уровне нет (как я понял), то какие проблеммы для айса?
     
  12. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SPA

    Улови ход мысли.
    Возникает прерывание от нажатия клавиши ctr+D, его перехватывает SoftIce, далее ему нужно вывести на экран окно, а как ты думаешь на каком уровне IRQL он работает в этот момент - правильно уж точно не на PASSIVE, а из этого следует, что он не может пользовать большинство функций OS и уж тем более заставить драйвер видеокарточки представить фрейм-буффер линейно.
     
  13. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SPA

    Кстати в тектовом режиме все работает на ура... поскольку 800B8000h :)
     
  14. UyTvGauG

    UyTvGauG New Member

    Публикаций:
    0
    Регистрация:
    17 май 2007
    Сообщения:
    49
    Топик - много споров из ничего. Раз можно сделать lock, то это можно сделать заранее, при старте отладчика.
    И никаких проблем больше возникнуть не должно.
     
  15. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    UyTvGauG


    Да уж, только никакое другое приложение не сможет вывести инфу на экран ... А Lock теряется при переходе между приложениями по ALT+TAB ...
     
  16. UyTvGauG

    UyTvGauG New Member

    Публикаций:
    0
    Регистрация:
    17 май 2007
    Сообщения:
    49
    Ну и х. с ним, с 3d софтом. Если кто-то отлаживает игры кернелмодным дебагером, то пусть или отключает лишнее ускорение, или ставит другую видюху.

    А это я думаю поддается фиксу.
     
  17. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    UyTvGauG


    Самое интересное что большинство современных технологий развиваются имеенно в 3D области.
    ... Фиксу это не поддается по определению многозадачной OS с разделяемым экраном.
     
  18. UyTvGauG

    UyTvGauG New Member

    Публикаций:
    0
    Регистрация:
    17 май 2007
    Сообщения:
    49
    Да ну? Фиксу поддается все, надо просто раздизасмить и пропатчить механизм переключения.
     
  19. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    UyTvGauG

    Ха, а как же потом скриншот к примеру снимать. Что касается использования вывода на экран - то необходим драйвер причем свой для каждой видеокарточки (до недавнего времени вывод на экран можно было программировать используя широкодоступную инфу и стандарты PCI конфигурационной области), поскольку для его написания необходима тех. инфа, которая неразглашается, то вот SoftIce и запнулся в своем развии... См. начало форума.
     
  20. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Мысль я понял изначально, но ведь винда сможет выводить без драйверов (со стандартным) как следствие можно забить на то чтобы сайс вылетал поверх окошек, а просто заново выводить на экран, конечно возможны траблы, я ваще х.з. а ты (PROFi) сам как решение видишь?

    ЗЫ или стандартные дрова даже для винды не будут, хм..