פורסם 2008 במאי 1917 שנים אני בונה משחק "סיימון" לפרוייקט שלי באסמבלי בסביבת 8086 (16 ביט)... וכשאני מדליק כל פעם "אור" בצבע שצריך אז תחת האמולטור (emu8086) בזמן הרצת התוכנית רואים את ההדלקה והכיבוי אבל מן הסתם אחרי ההידור לקובץ EXE\COM הפעולות נעשות כל כך מהר שבכלל לא רואים את ההדלקה והכיבוי.... רציתי לדעת אם יש איזשהי פקודה/מנגנון קטן שיוכל ליצור דילאי אונבירסלי - ככה שתחת P1 ותחת CORE2 זה ימתין את אותו הזמן... תודה לעוזרים.
פורסם 2008 במאי 1917 שנים move.l #10-1,d0 ;flash 10 times.flash bchg #1,$bfe001 bsr _wait dbf d0,.flash rts_wait move.l #50-1,d0 ;waits 1 second on PAL.wait bsr _waitvb dbf d0,.wait rts_waitvb ;waits 1/50th of a second.1 btst #0,(_custom+vposr+1) beq .1.2 btst #0,(_custom+vposr+1) bne .2 rtsנלקח מ:http://eab.abime.net/showthread.php?t=9950
פורסם 2008 במאי 2117 שנים מה קרה לך!? זה קוד לאמיגה!על 8086 יש לך כמה אפשרויות, וכולן תלויות בחומרה.1) להשתמש בפסיקות חומרה על מנת לספור את הזמן. אם אתה עובד ללא מערכת הפעלה זו אולי האופציה הטובה שלך.2) תלוי במ"ה ובחומרה, יתכן שיש API או רגיסטר ממופה זכרון שיתן לך מונה זמן. זכור לי במעורפל שעל PC יש איזו כתובת שכזו.3) אם יש כרטיס מסך, אתה יכול לבדוק את ה-vertical blank ע"י פקודות port.4) בהנחה שקצב השעון קבוע, אתה יכול לבדוק כמה זמן לוקח למעבד לרוץ על ריק, לדוגמא אם הקוד הזה לוקח אלפית שניה:mov cx,1000hrep nopאז תוכל לחזור עליו 300 פעמים על מנת להמתין 0.3 שניות.לשיטה הזו יש חסרונות אבל לפחות היא פשוטה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.