Görgős egér programozása
2003-02-17T08:49:36+01:00
2003-03-03T09:50:35+01:00
2022-07-19T06:48:17+02:00
  • Ühöm, elöször is PS2-es egérről van szó amit a 60h/64h porton keresztül kell kezelni! Ha van időd + kedved akkor írhatsz saját egér drivert ami mondjuk kezeli a görgöt/görgőket egy plussz funkcióval! Amikor az egeret megmozdítod akkor jön az IRQ12 és olvasgathatod be a protról a XData, YData, ButtonData adatokat (nem ebben a sorrendben, meg nem ilyen egyszerűen, de a lényeg ez)! Egyébként A Ralph Brown féle interrupt listben van róla infó!
    Mutasd a teljes hozzászólást!
  • Azthiszem, ezt DOS alá nem tudod megcsinálni, ugyanis a DOSos egérmeghajtók szolgáltatásai (megszakitás) szabványban vannak foglalva, azaz a görgöre nincs funkció.

    De van azért remény. Folyamatosan olvasod a portot, ahová az egér be van dugva (2F7 asszem, de nem biztos), és figyeled, hogyan változnak az értékek. Ha megis tudod a logikát, akkor is csak a saját egereden fog müködni.

    A másik dolog, hogy DEBUGgolod a Windowsos drivert. hehe, jó poén....

    Összességébe megoldható a feladat, de nem éri meg. PONTOSAN ezen okok miatt nincs DOSos játék, ami a 3D kártyát használná. A hardverek drivereken keresztül kommunikálnak, és pont emiatt kedvelt a windowsos programozás, nem kell ismerned a hardwert regiszter szinten, hiszen a driver megtesz helyetted mindent (ami azért a win előnye) (és zárójelben irom le az inkompatbilitást....hú, az egy szemét dolog....)
    Mutasd a teljes hozzászólást!
  • Tisztelt KonzolCowboy!

    Ezt én is ismertem és használtam is, de ezt az egér meghajtó driver kezeli és DOS-os meghajtók esetén még nem találkoztam azzal, hogy a görgőket is kezelik.
    Mutasd a teljes hozzászólást!
  • A legjobb megoldás DOS alatt, ha az int 33 assembly megszakítást használod. Van C- ben egy. un. regpack struktúra melynek adattagjai a az assembly regisztereket hivatottak szimbolizálni.
    Valahogy így néz ki:

    struct regpack {
    long r_ax,r_bx,r_cx,r_dx
    long r_bp,r_es,r_si,r_di
    };
    Ezt a struktúrát egy intr nevezetü makrónak kell átadni:
    void intr(int megsz,ptr* r)
    paraméterek:
    megsz: az assembly megszakítás száma. Esetünkben 0x33
    r: a regpack struktúrára hivatkozó pointer.
    Ha szeretnéd küldhetek neked email-ben kész osztályt, vagy függvényt, melyet én készítettem, amely kezeli az egeret!
    Mutasd a teljes hozzászólást!
  • Üdv Mindenkinek!

    A görgős egér programozásával kapcsolatban az lenne a kérdésem, hogy DOS vagy Linux (de semmiképp sem Windows) alatt hogyan lehet a görgők mozgását programmal feldolgozni. Azt már megvan, hogy pl ps/2 egér esetén a 12 IRQ-t kell figyelni, de az minden egér esemény hatására végrehajtódik és nem tudom mekülönbözetni a kattintástól vagy a mozgástól.

    Előre is köszi!

    Zolcsi
    Mutasd a teljes hozzászólást!
abcd