ABA


"סמן עכבר בVesa... - דריסת פסיקות אולי?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #7900 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 7900
hll

   16:30   05.02.04   
אל הפורום  
  סמן עכבר בVesa... - דריסת פסיקות אולי?  
 
   אז ככה
ה Vesa הזה חמוד וזה.. הצלכתי להכניס אותו למצב גרפי והכל טוב ומצייר על המסך בלי בעייה ב 640x480x256 (טקסט מעולה: www.vesa.org/vbe3.pdf)

אקיצר, לא ראיתי של Vesa יש גם פסיקות לתמיכה בסמן העכבר במודים כאלה...
ניסיתי את הפסיקה הרגילה וכשאני מצג את סמן העכבר, התוכנית מתרסקת...
אז אני יודע שאפשר להתקע עם לולאות מעצבנות ולעדכן את העכבר באופן ידני דרך גוף התוכנית....
אבל אולי אני יכול לעשות את זה בדרך אחרת?? הממ חשבתי על דריסה של הפסיקה 33h של העכבר ...
אז יש לי כמה דברים שאין לי מושג איך עושים אותם:

איך אני אמור לדעת איפה סמן העכבר נמצא מתוך הפסיקה שבניתי בסי?
איך אני יודע אם קראו לפסיקה בגלל הזזת העכבר או בגלל משהוא אחר?

ושאלת בונוס (שנראה לי שהתשובה כן אבל אני לא בטוח) אחרי שהפסיקה שלי עשתה מה שהיא צריכה לעשות אני יכול ליצור שוב את הפסיקה והפעם לקרוא לפסיקה המקורית שהיתה בזיכרון המחשב עם אותם ערכים (כדי שאני לא ידפוק שום דבר במחשב)?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תחטוף את הפסיקה של העכבר dryice 05.02.04 23:32 1
     כן זהו הנחתי ככה... hll 06.02.04 15:05 2
         מצאתי פסיקה שמסיגה את מספר הקליקס hll 06.02.04 16:59 3
             OK ok ירדתי מזה כי הבנתי שזה טעות לנסות... hll 07.02.04 00:59 4
  UP hll 09.02.04 17:58 5
  אני עדיין צריך את זה, דיי בדחיפות, אין אף אחד hll 12.02.04 21:47 6

       
dryice

   23:32   05.02.04   
אל הפורום  
  1. תחטוף את הפסיקה של העכבר  
בתגובה להודעה מספר 0
 
   זאת הדרך הסטנדרטית לטפל בעכבר.
אתה מקבל הודעה מתי שהוא זז, ודואג לצייר בעצמך.

רק תחשוב מה קורה לרקע מאחורי העכבר כאשר אתה מוריד את
העכבר ממנו.

לפני שאתה שם את הקוד שלך בVector הפסיקות אתה קורא את
הערך הישן שזה למעשה מצביע לפונקציה, ואז אתה קורא לפונקציה
שהייתה שם.(אם כי יש לשים לב להבדלים בין ret לreti

וראוי שתקרא תיעוד לפסיקה 33h כי אני לא כתבתי כזה driver
כבר הרבה שנים.

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   15:05   06.02.04   
אל הפורום  
  2. כן זהו הנחתי ככה...  
בתגובה להודעה מספר 1
 
   אבל השאלה שלי, איך (או שלפחות תגיד לי לי איזה KeyWords לחפש בגוגל כי ניסיתי ולא מצאתי) אני בודק את מיקום מסמן העכבר מיתוך הפונקציה שלי שמטפלת בפסיקה 33h???

ותודה רבה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   16:59   06.02.04   
אל הפורום  
  3. מצאתי פסיקה שמסיגה את מספר הקליקס  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 06.02.04 בשעה 17:00 בברכה, hll
 
של העכבר מהפעם האחרונה שהפקודה נקראה
אז עשיתי ככה:

void interrupt mousemove(void);
union REGS regs;
int xtick, ytick;
asm PUSHA;
asm int 123;
asm POPA;
asm mov AX, Bh;
asm int 33h;
asm mov xtick, CX; //X clicks
asm mov ytick, DX; //Y clicks
printf("%d, %d", xtick, ytick);
}


void main(){
setvect(123, getvect(33)); //Copy original vect
setvect(0x33, &mousemove()); //Set new vect

setvect(0x33, getvect(123)); //Restore old vect
}

ומשום מה או שה TC שלי מתרסק ומדווח לי שגיאה מאוד מוזרה...
או שהוא אומר לי שהוא לא יכול להדר בגללל שה 286\287 Is disabled משהוא כזה...

אגב אני עובד עם (מה שיש בביתספר שלי) זה (זה מהאודות של הTC):

Turbo C++

Version 3.0


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   00:59   07.02.04   
אל הפורום  
  4. OK ok ירדתי מזה כי הבנתי שזה טעות לנסות...  
בתגובה להודעה מספר 3
 
   לנסות לדרוס פסיקת תוכנה!! (דהה)
אז הלכתי לגוגל ומצאתי את זה

עכשיו מוסבר פה על 3 פסיקות (של 33H) תוכנה שונות שעושות משהוא בכיוון של מה שאני צריך (משנות את השגרה שמטפלת בפסיקת החומרה של העכבר)...
זה הטקסט:
http://www.physics.curtin.edu.au/teaching/units/Sda202/Resources/mouse%20programming.rtf

Mouse Function 24, 20 ו 12
נדמה לי שטוב לי רק 24 כי הוא היחיד שאפשר לקרוא ממנו לפסקות חדשות, ואני צריך את זה
אבל אני שומר את הווקטור המקורי בעזרת פונקצייה 20 מגדיר לי שגרה חדשה עם מסכה מתאימה בעזרת 24
ואז משחזר את הפסיקה המקורית בסוף התוכנית...

בכלמיני צירופים שאני עושה, זה תמיד מתרסק כאשר הפסיקה מתעוררת!! פעם עם שגיאה פעם פשוט בום, נסגר הTC.. :/

יש פה אוליי מישהוא שניסה לעשות דברים בסגנון?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   17:58   09.02.04   
אל הפורום  
  5. UP  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   21:47   12.02.04   
אל הפורום  
  6. אני עדיין צריך את זה, דיי בדחיפות, אין אף אחד  
בתגובה להודעה מספר 0
 
   שניסה בעבר לבנות תמיכה ידנית לסמן העכבר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net