"Чистый" асм в win32

Тема в разделе "WASM.BEGINNERS", создана пользователем Blackbeam, 25 мар 2009.

  1. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    давным давно появилась идея попробовать начать писать ось "внутри" хрюши, чтобы не заморачиваться с... т.е - использовать системные видео и аудио драйвера, добавляя к ним код на чистом ассемблере - без использования апи и так далее...

    должно получиться что-то типа эмулятора, внутри которого будет проходить разработка оси...
    после этого - добавить загрузчик, написать свои драйвера и ось будет готова...вроде как..

    есть статьи lonesome-а, исходники колибри, очень много букв, и все разные...

    простейший вопрос - как отрисовать пиксель, не используя функции винды?
    уверен, что это возможно, помогите начинающему осеписателю...
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Это абсолютно невозможно.
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Есть еще эмулятор колибри, который позволяет запускать приложения колибри в винде.
    Без АПИ не выйдет.

    Создаешь массив Screen из него создаешь битмеп вернее DIB. И переодически по таймеру выводишь на экран.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Это всеголишь обёртка вокруг сервисов операционной системы. Можно отрисовать пиксель на контексте вызвав прерывание 0x2e, соответственно указав необходимые параметры(NtGdiSetPixel etc).
     
  5. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Clerk
    А что, прерывания это уже не API?
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Partner
    Нет. Тоесть апи, но не в том смысле, в котором все понимают, програмный интерфейс ведь.
     
  7. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Clerk
    Вообще-то это API и есть, причём истинный API винды (Native API), в отличие от Win32 API, который действительно является надстройкой над первым.
     
  8. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Clerk
    А можно пример, как используя int 2Eh вызвать MessageBox?
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Mikl___
    Нет.
     
  10. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Clerk
    Может быть ссылку дадите, где было бы много Code examples of using int 2Eh ?
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Mikl___
    Ты што шутишь ??
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Clerk
    [offtop]А в чем шутка? Я вполне серьезно спрашиваю[/offtop]
     
  13. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Blackbeam
    Direct X интерфейс IID_IDirectDraw7 и ниже даёт удобный прямой доступ к экранным поверхностям. Переключать поверхности, настраивать режимы и т.п. конечно придётся через функции этого интерфейса - а рисовать будешь напрямую - хочешь пиксель, хочешь MessageBox ;) Хотя имхо лучше всё-таки рисовать в буферном битмапе, а потом копировать его в экран средствами win - выполняется последняя операция через драйвер или через лишних посредников не столь важно, на первом этапе развития такого проекта уровнем абстракции больше/меньше не принципиально, а уж когда эту часть отладишь, с остальным разберёшься :))
     
  14. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Clerk
    Как это нет? Вот это очень даже тянет на неплохой примерчик.
     
  15. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    Y_Mur
    Да, но чтобы использовать его, нужно получить хэндл с помощью WinAPI, разве нет?
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Phuntik
    Я собственно и сам этот интерфейс к апи приравниваю :)) но дело не в этом, а в том, что "совсем без апи" прога полюбому работать не будет, а в качестве "приемлимого минимума", который даёт свободу действий, он имхо вполне подходит :))
     
  17. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Народ, вы чего тупите? Товарисчь спросил же

    Код (Text):
    1. как отрисовать пиксель, не используя функции винды?
    Ответ лежит на поверхности. Используй для этого функции DOS-а или BIOS-а.
     
  18. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    ХРЮША ОТРИСОВЫВАЕТ КАРТИНКИ, ИСПОЛЬЗУЯ ФУНКЦИИ DOS И BIOS?
     
  19. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    Там FASM API
    Скачай доки.