שאלה ב-DPMI...

MotiAd

New member
שאלה ב-DPMI...

האם DPMI בשביל להפעיל אינטררפטים קופץ ל-Real Mode ואח"כ בחזרה ל-Protected Mode? מוטי.
 

jolp

New member
למיטב ידיעתי:

כמו ב- Real Mode, גם DPMI מסוגל ליצור ולשנות פסיקות(אינטרפטים) תוכנה. הדבר אפשרי כל עוד אלו פסיקות של Protected-Mode (ץDPMI כולל פונקציות קלות לשימוש, המטפלות בקביעת/שינוי פסיקות) עם זאת, DPMI לא מסוגל להריץ פסיקות תוכנה מבוססות Real Mode, כגון INT 21h, מלבד בודדות: 23h, 24h (שתי אלו קשורות למצבים חריגים בדוס) ו- 1Ch (הטיימר של ה- BIOS). חשוב לציין שכאשר אתה כותב תוכנית, המשתמשת ב- DPMI, עליך לדאוג לייצר מנגון השגחה על קריאות לפסיקות תוכנה של מצב Real Mode או שעלולות להיווצר בעיות.. מקווה שסייעתי!
 

voguemaster

New member
לדעתי

ואני לא אומר כי אני יודע, זה פשוט מה שנראה לי כנכון, יש מנגנון שמאפשר שימוש בפסיקות REALMODE תחת PROTECTED MODE. נדמה לי ש-DPMI מאפשר את זה, אבל אם אני מבין את זה נכון, המעבר בין המצבים יקר מבחינת זמן, ואני מדבר על CLOCK CYCLES כמובן.. שלא לדבר על כך שהפסיקה עצמה איטית בד"כ. אני באמת לא יודע מה עשו בזמנו כדי לפתור את הבעיה, אבל הפיתרון חייב להיות איפשהו..
 

MotiAd

New member
אני יודע...

העניין הוא ככה אני קראתי ש-DPMI מספק מנגנון לטיפול בפסיקות. פסיקות שמוכרות לו הוא מטפל בהם לבד. ופסיקות שלא אז הוא חוזר לדוס ומריץ אותן. פקודות של VESA לא מוכרות לו אז השאלה שלי היא מה הוא עושה? חוזר למצב אמיתי ומריץ אותן?
 

jolp

New member
בטוח יש דרך לעבוד עם VESA ב- DPMI

אני פשוט לא מכיר את הנושא כל-כך טוב. למען האמת, התעסקתי הרבה עם הדברים האלו אבל זה היה לפני 3 שנים.. אני משוכנע שהאינטרנט מכיל תשובה לכל שאלה שיש לך בנושא. אם לא, תמיד תוכל לשאול איזה גורו שחקר את הנושא לעומק (כמו הכותב של ה- DPMI FAQ אם קיים כזה אחד). בכלל, תמיד אפשר לעבוד עם DJGPP או WATCOM C והספריות הגרפיות שהם מספקים. למי שלא מכיר- אלו קומפיילרים של 32 סיביות, העובדים בסביבת Protected Mode ומייצרים קוד Portable, שניתן להריץ על כל מערכת הפעלה.
 

jolp

New member
הא ו..

הנה קישור (הראשון) לאתר שעוסק ב- PROTECTED MODE, ב- VESA ובשילוב של שניהם יחד. הקישור השני הוא לאתר שהנושא שלו: SuperVGA/VESA programmer´s notes ומדברים שם גם על סביבת פיתוח בשם SVPMI. הקישור השלישי הוא פשוט לחיפוש שביצעתי ב- altavista ובו מצאתי את שני האתרים הללו.. מקווה שסייעתי!
 

MotiAd

New member
תודה...

את האתר הראשון אני מכיר כבר. הוא כתוב ב-פסקל והוא לא מציג את הדרך לתיכנוות במצב מוגן. אבל תודה בכל אופן.
 

MotiAd

New member
או קיי...

אני יודע אילו קומפיילרים אלה. אבל אני מדבר על סביבה ללא מערכת הפעלה. אני נכנס למחשב ללא מערכת הפעלה קיימת או רצה ומנסה להפעיל את העסק. מה שאני בונה הוא GUI של מערכת הפעלה.
 

jolp

New member
הצעתי אליך היא כזו:

אתה תמיד יכול לעבור בין Protected Mode למצב "Virtual Real Mode" (נקרא גם Vitural 8086 או V86) או למצב "Flat Real Mode". מצב ה- Virtual מדמה את Real Mode באופן מוחלט, מה שאומר שהגבלות הזיכרון של Real Mode חלות גם בו. אם אני לא טועה, כשאתה מפעיל את "Command.Com" במערכת ההפעלה חלונות, זה המצב שאליו אתה נכנס. מצב ה- Flat מדמה את Real Mode כמעט באופן מוחלט. השוני הוא בהגבלות הזכרון- כעת אתה יכול לגשת לעד 4 ג´יגה של זיכרון, כמו ב- Protected Mode, אבל עם הנוחיות של Real Mode !! מצב זה לא תוכנן כ"מצב פורמלי" על-ידי מפתחי המעבד. הוא נוצר כתופעת לוואי של כניסה למצב Protected Mode ויציאה ממנו באופן מסויים, מה שהותיר את הגבלות הזיכרון החדשות. למה אני מסביר את כל זה? כי אתה יכול להיכנס ל- Protected Mode לזמן מה עם טעינת ה- OS Loader שלך ואז להריץ את יישום ה- GUI באחד המצבים שהצגתי ולהשתמש ב- VESA בלי בעיה. (אם מימשת טכניקות של Protected Mode, כמו ניהול זכרון או ריבוי יישומים בעזרת TSS, הן יפעלו ברקע) חפש על המצבים האלו באינטרנט ובוודאי תמצא דוגמאות קוד רלוונטיות. מקווה שהפעם כן סייעתי! :)
 

MotiAd

New member
אתה צודק...

לגבי המצב הווירטואלי אתה צודק לגבי ה-NTים למיניהם. 2000 פועל ככה וגם NT ו-XP. העניין הוא שדווקא המצב הזה לא יכול לדמות את הפסיקות של VESA. יש קוד של UNIVBE שבודק האם המצב הוא ווירטואלי ולכן אי אפשר לעבוד. בכל אופן לגבי ה-FLAT אני צריך לבדוק. המצב מוכר אבל אף פעם לא יצא לי לעבוד איתו. אני אשמח אם מישהו יוכל לחפש לי חומר בנושא. תודה גבר!!!!!
 

MotiAd

New member
או קיי...

אני יודע אילו קומפיילרים אלה. אבל אני מדבר על סביבה ללא מערכת הפעלה. אני נכנס למחשב ללא מערכת הפעלה קיימת או רצה ומנסה להפעיל את העסק. מה שאני בונה הוא GUI של מערכת הפעלה.
 
למעלה