Простейшая работа с желзками

Тема в разделе "WASM.BEGINNERS", создана пользователем TERRAPOD, 16 янв 2007.

  1. TERRAPOD

    TERRAPOD New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2007
    Сообщения:
    5
    Всем привет! На асме не програмлю, но безысходность толкнула меня к вам с просьбой о помощи :)
    В общем нужны 2 коротеньких фрагмента кода на асме, которые сделают чего-нить с чем нить на уровне железа. Ваш полет фантазии!
    Как это будет работать: есть драйвер режима ядра (на с - тут я сам справился). В нем есть след. код:
    Код (Text):
    1. NTSTATUS DeviceControlRoutine(IN PDEVICE_OBJECT fdo, IN PIRP Irp){
    2. .......
    3. switch(ControlCode){
    4.         case IOCTL_KB_DISABLE:
    5.         {  
    6.             tmp = 1;
    7.             while(tmp){
    8.                 tmp = _inp(0x64);
    9.                 tmp = tmp & 0x2;
    10.             }      
    11.             _outp(0x60, 0xED);
    12.             break;
    13.         }
    14.         case IOCTL_KB_ENABLE:
    15.         {
    16.             _outp(0x60, 0xFF);
    17.             break;
    18.         }
    19.         case IOCTL_KILL_WINDOWS:
    20.         {
    21.        
    22.             char x = *(char*)0x0L;
    23.         }
    24.  
    25.         default: status = STATUS_INVALID_DEVICE_REQUEST;
    26.     }
    27. .......
    28. }
    Мои многочисленные эксперименты (с перезагрузками и синими экранами) дали такие результаты для отключения (KB_DISABLE) и включения (KB_ENABLE) клавиатуры.
    Терь нужно еще чего-нить. Ну мышу отключать и включать к примеру. Или еще как.
    т.е. кусочек кода, который я вставлю в case в рамках __asm{}.
    Мне кажется - для тех кто работает на асме это не сложно. Драйвер компилиться под WinXP, 2003Server и Win2000 (Достаточно, чтобы работало под чем-нить ОДНИМ)
    Сейчас смотрю статью о пищании динамиком, думаю сделаю сам, но нужно еще что-ниудь.
    Заранее спсибо, если кто откликнеться!
     
  2. TERRAPOD

    TERRAPOD New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2007
    Сообщения:
    5
    PS: если у вас будет код, ну, к примеру, отключения монитора, но не будет его включения - и бог с ним! Хоть что-нибудь!
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Открвый Кулакова и copy-paste =)
     
  4. TERRAPOD

    TERRAPOD New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2007
    Сообщения:
    5
    Извиняюсь за наглость, но не мог бы ты дать линк на книгу(или ее цитаты, где есть код примера и мало-мальски объяснения) или сам сюда закопипастить чего-нить? Если сам закопипастишь, то не надо ниче объяснять!!! Главное, чтобы что-нибудь происходило на уровне железяк.
    Я уже заставил пищать динамик, откл/вкл клаву надо исчо что-нить - один пример!!!
    Всего ничего ведь получаеться, вот для динамика вышло 3 строчки на включение и 3 на отключение, для клавы ваще 1 цикл и 1 строка. Если б я раньше с этим сталкивался, придумал бы чего-нить а так я на асме ваще только "Hello world!" и писал...
    Ща ищу как прибить мышу... может и сам справлюсь но по-любому буду оч. признателен, если мне помогут!
     
  5. Flanker

    Flanker Антон

    Публикаций:
    0
    Регистрация:
    8 янв 2006
    Сообщения:
    101
    Адрес:
    Russia
    можно еще с лотком CD-DVD дисковода позабавляться!
     
  6. TERRAPOD

    TERRAPOD New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2007
    Сообщения:
    5
    Ох, госпади! Я знаю :) И на с++ или с я и сам могу при помощи винАПИ навернуть чего угодно... Но мне нуна именно НАПРЯМУЮ ОБРАТИТЬСЯ К РЕАЛЬНОМУ ФИЗ. УСТРОЙСТВУ. К любому! И сделать что угодно! Хоть лоток вынуть, хоть всунуть, но я не умею программировать на низком уровне. Я привык летать выше и думать в категориях ГОРАЗДО бОльших объектов, нежели бит, байт и даже мегабайт...
    Поэтому прошу помощи у тех, кто умеет то, что не умею я. Ну не хочу я из-за 10 строк кода ворошить кучу доков о том, что, где, по какому смещению, какие биты в каком порту читает...
    Напиши мне, пожалуйста, как открыть цд-лоток, или дай ссылку куда-нить на пример разобранный, но не 600-страничный талмуд!
    Кста, я ща и сам поищу - по этому поводу пока не додумался :) все мышу канаю :dntknw:
     
  7. TERRAPOD

    TERRAPOD New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2007
    Сообщения:
    5
    Все! Кто отвечал - спасибо (anyway). Отделался морганием лампочек на клаве :)