Interrupts  supported by emulator
Quick reference:
פסיקות הנתמכות על-ידי EMU8086

חיפוש מהיר:

MS-DOS can not be loaded completely in emulator yet, so we made an emulation for some basic DOS interrupts.


A list of supported interrupts with descriptions:

MS-DOS עדיין לא ניתנת לטעינה בתוכנת ההדמיה, על כן עשינו מספר הדמיות לפסיקות DOS בסיסיות.


רשימת הפסיקות עם הסברים:

INT 10h / AH = 00h

set video mode.

input:
AL = desired video mode.

These video modes are supported:

00h - Text mode 40x25, 16 colors, 8 pages.

03h - Text mode 80x25, 16 colors, 8 pages.

הגדר סוג  תצוגה במסך.

קלט:
AL = תצוגת מסך רצוי.

תומך בסוגים הבאים:

00h - מצב כתב של 40x25
16 צבעים, 8 דפים.

03h - מצב כתב של  80x25
16 צבעים, 8 דפים.

INT 10h / AH = 01h

set text-mode cursor shape.

input:
CH = cursor start line (bits 0-4) and options (bits 5-7).
CL = bottom cursor line (bits 0-4).

When bits 6-5 of CH are set to 00, the cursor is visible, to hide a cursor set these bits to 01 (this CH value will hide a cursor: 28h - 00101000b). Bit 7 should always be zero.

  הגדר צורת כתב של סמן במסך.

     קלט:
     CH = שורת התחלה של הסמן (סיביות 0-4)
              ואפשרויות  (סיביות 5-7)
     CL = שורה תחתונה של הסמן (סיביות 0-4)

כאשר סיביות 5-6 מוגדרים עם ערך 00, ניתן להציג את הסמן , להסתרת הסמן יש להגדיר הסיביות הנ"ל ל- 01
 (ערך זה של CH מסתיר את הסמן:
 28h - 00101000b )
סיבית 7 חייב להיות תמיד אפס.

 INT 10h / AH = 02h

set cursor position.

input:
DH = row.
DL = column.
BH = page number (0..7).

 הגדר מקום של סמן במסך.

     קלט:
     DH = שורה
    DL = עמודה
    BH = דף מספר (0..7) 

 INT 10h / AH = 03h

Get cursor position and size.

input:
BH = page number.
return:
DH = row.
DL = column.
CH = cursor start line.
CL = cursor bottom line.

  קבל מקום של סמן במסך.

קלט:
BH = דף מספר
החזר:
DH = שורה
DL = עמודה
CH = שורת התחלה של הסמן
CL = שורה תחתונה של הסמן

 INT 10h / AH = 05h

select active video page.

input:
AL = new page number (0..7).
the activated page is displayed.

  הגדר דף מסך פעיל.

קרט:
AL = מספר דף חדש (0..7).
מוצגת הדף המופעלת .

   INT 10h / AH = 06h - INT 10h / AH = 07h

06h- scroll up window.
07h- scroll down window.

input:
AL = number of lines by which to scroll (00h = clear entire window).
BH = attribute used to write blank lines at bottom of window.
CH, CL = row, column of window's upper left corner.
DH, DL = row, column of window's lower right corner

06h - גלילה של החלון לכיוון מעלה.
07h - גלילה של החלון לכיוון מטה.

קלט:
AL = מספר שורות לגלילה
(00h = ניקוי חלון שלם).
BH = תכונות בשימוש לכתיבת שורות ריקות בתחתית של החלון.
CH, CL = שורה, עמודה של הפינה העליונה השמאלית של החלון.
DH, DL = שורה, עמודה של הפינה התחתונה הימנית של החלון.

 INT 10h / AH = 08h

read character and attribute at cursor position.

input:
BH = page number.
return:
AH = attribute.
AL = character.

קרא אות (אסקי) ותכונות במיקום של הסמן.

קלט:
BH = מספר דף.
החזר:
AH = תכונות.
AL = אות אסקי (ascii)

  INT 10h / AH = 09h

write character and attribute at cursor position.

input:
AL = character to display.
BH = page number.
BL = attribute.
CX = number of times to write character.

 רשום אות (אסקי) ותכונות במיקום של הסמן.

קלט:
AL = אות אסקי (ascii)
BH = מספר דף.
BL = תכונות.
CX = מספר פעמים לכתיבת האות.

 INT 10h / AH = 0Ah

write character only at cursor position.

input:
AL = character to display.
BH = page number.
CX = number of times to write character.

  רשום אות (אסקי) בלבד במיקום של הסמן.

קלט:
AL = אות אסקי (ascii)
BH = מספר דף.
CX = מספר פעמים לכתיבת האות.

 INT 10h / AH = 0Eh

teletype output.

input:
AL = character to write.

This functions displays a character on the screen, advancing the cursor and scrolling the screen as necessary. The printing is always done to current active page.

 פלט לציוד הפלט של המחשב (למשל מסך)

קלט:
AL = אות אסקי (ascii) לכתיבה.

הפונקציה הזאת מציגה אות על המסך, מקדימה את הסמן וגוללת את המסך על פי הצורך. הפלט הוא תמיד בעמוד הפעיל.

 INT 10h / AH = 13h

write string.

input:
AL = write mode:
    bit 0: update cursor after writing;
    bit 1: string contains attributes.
BH = page number.
BL = attribute if string contains only characters (bit 1 of AL is zero).
CX = number of characters in string (attributes are not counted).
DL,DH = column, row at which to start writing.
ES:BP points to string to be printed.

כתוב מחרוזת.

קלט:
AL = דרך הכתיבה:
      סיבית 0: מעדכן הסמן לאחר הכתיבה;
      סיבית 1 תכונות של המחרוזת.
BH = מספר דף.
BL תכונות אם המחרוזת מכילה רק אותיות (סיבית 1 של כל ה-AL שווה לאפס).
CX = מספר אותיות במחרוזת (ללא תכונות).
DL, DH = עמודה, שורה בהם מתחילים לכתוב.
ES:BP מצביע לכתובת התחלה של המחרוזת.

 INT 10h / AX = 1003h

toggle intensity/blinking.

input:
BL = write mode:
    0: enable intensive colors.
    1: enable blinking (not supported by emulator!).
BH = 0 (to avoid problems on some adapters).

  החלף אינטנסיביות (בהירות) / הבהוב.

קלט:
BL = דרך הכתיבה:
      סיבית 0: מאפשר צבעים חזקים (כהים);
      סיבית 1: מאפשר הבהוב  (לא נתמך על ידי האמולטור !).
BH = 0 (להמנע מבעיות בכמה מתאמים).

 Bit color table:
Character attribute is 8 bit value, low 4 bits set foreground color, high 4 bits set background color. Background blinking not supported.

  טבלת צבעים על פי סיביות:
תכונות של אות הוא ערך של 8 סיביות, ה- 4 הסיביות הנמוכות מגדירים את צבע הכתב, ה- 4 הסיביות הגבוהות קובעים את צבע הרקע. האמולטור לא תומך בהבהוב.
HEX
הקסה
BIN
בינרי
COLOR   צבע
0 0000  black   שחור
1 0001 blue   כחול
2 0010 green   ירוק
3 0011 cyan   סיין
4 0100 red   אדום
5 0101 magenta   אדום-ארגמן
6 0110 brown   חום
7 0111 light gray   אפור בהיר
8 1000 dark gray   אפור כהה
9 1001 light blue   כחול בהיר
A 1010 light green   ירוק בהיר
B 1011 light cyan   סייאן בהיר
C 1100 light red   אדום בהיר
D 1101 light magenta   אדום-ארגמן בהיר
E 1110 yellow   צהוב
F 1111 white   לבן
 INT 11h

get BIOS equipment list.

return:
AX = BIOS equipment list word, actually this call returns the contents of the word at 0040h:0010h.

Currently this function can be used to determine the number of installed number of floppy disk drives.

Bit fields for BIOS-detected installed hardware:

  השג רשימה של ציוד של BIOS.

החזר:
AX = מילה עם רשימה מלאה של ציוד מתוך המערכת הבסיסית של קלט/פלט, למעשה פסיקה זו מחזירה את תוכן המילה שבכתובת 0040h:0010h.

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

שדות הסיביות של רשימת הציוד המותקן שגילה התוכנית ה- BIOS:

Bit(s)         Description                         הגדרה
 15-14  number of parallel devices.             מספר מכשירים מקבילים
 13     not supported.                                     ללא תמיכה
 12     game port installed.                        שער משחקים מותקן
 11-9   number of serial devices.                מספר מכשירים טוריים
 8      reserved.                                               שמור
 7-6    number of floppy disk drives     מספר כונני דיסקטים פחות אחד
                             (minus 1):
          00 single floppy disk;               כונן דיסקטים יחיד
          01 two floppy disks;                 שני כונני דיסקטים
          10 three floppy disks;             שלושה כונני דיסקטים
          11 four floppy disks.              ארבעה כונני דיסקטים
 5-4    initial video mode:                       מצב התחלתי של המסך
          00 EGA,VGA,PGA, or other with  גרפיקה מתקדמת או כל כרטיס
                 on-board video BIOS; מסך הכולל מערכת הפעלה בסיסית
          01 40x25 CGA color;                            צבע בסיסי
          10 80x25 CGA color (emulator default);    צבע ברירת מחדל
          11 80x25 mono text.              מסך שחור לבן לכתב בסיסי
 3    not supported.                                       ללא תמיכה
 2    not supported.                                       ללא תמיכה
 1    math coprocessor installed.               מותקן בעבד מתמטי עזר
 0    set when booted from floppy  הופך לאחד כאשר מפעילים מתוך דיסקט
          (always set by emulator).  (האמולטור תמיד הופך אותו לאחד)

 INT 12h

get memory size.

return:
AX = kilobytes of contiguous memory starting at absolute address 00000h, this call returns the contents of the word at 0040h:0013h.


Floppy drives are emulated using

FLOPPY_0(..3) files.

  קבל גודל של הזיכרון.

החזר:
AX = אלפי בתים של רצף זיכרון החל מכתובת פיזית 00000h, פסיקה זו מחזירה את תוכן של המלה שבכתובת: 0040h:0013h.


האמולציה של כונני דיסקטים מתבצעת על ידי קבצים:

FLOPPY_0(..3)

 INT 13h / AH = 00h

reset disk system,(currently this call doesn't do anything).

  קבע מחדש את מערכת הדיסק (פסיקה זו לא פעילה באמולטור).
    INT 13h / AH = 02h - INT 13h / AH = 03h

AH = 02h - read disk sectors into memory.
AH = 03h - write disk sectors.

input:

AL = number of sectors to read/write (must be nonzero)
CH = cylinder number (0..79).
CL = sector number (1..18).
DH = head number (0..1).
DL = drive number (0..3 , depends on quantity of FLOPPY_? files).
ES:BX points to data buffer.

return:

CF set on error.
CF clear if successful.
AH = status (0 - if successful).
AL = number of sectors transferred.

Note: each sector has 512 bytes.

AH = 02h - קורא סקטורים של דיסק לתוך הזיכרון
AH = 03h - כותב סקטורים של דיסק

קלט:

AL = כמות של סקטורים לקריא / כתיבה (שונה מאפס)
CH = מספר מסלול (0..79).
CL = מספר מקטע (1..18).
DH = מספר ראש (0..1).
DL = מספר כונן (בין 0 ל- 3 תלוי כמות קבצי כוננים הוגדרו באמולטור).
ES:BX מצביע לחוצץ נתונים.

החזר:

CF = 1 אם יש שגיאה.
CF = 0 אם יש הצלחה.
AH = מצב (0 אם מצליח)
AL = כמות מקטעות שהועברו.

הערה: לכל מקטע 512 בתים.

 INT 15h / AH = 86h

BIOS wait function.

input:

CX:DX = interval in microseconds

return:

CF clear if successful (wait interval elapsed),
CF set on error or when wait function is already in progress.

Note:

the resolution of the wait period is 977 microseconds on many systems, Emu8086 uses 1000 microseconds period.

  פונקציה של המתנה מתוך המערכת הבסיסית.

קלט:

CX:DX = פרק זמן במיקרו-שניות

החזר:

CF = 0 אם יש הצלחה (זמן המתנה הסתיים),
CF = 1 אם יש שגיאה או אם הפונקציה בתהליך ביצוע.

הערה:

במערכות רבות הרזולוציה של זמן המתנה היא 977 מיקרו- שניות, האמולטור משתמש בחלקית זמן של 1000 מיקרו- שניות.

 INT 16h / AH = 00h

get keystroke from keyboard (no echo).

return:

AH = BIOS scan code.
AL = ASCII character.
(if a keystroke is present, it is removed from the keyboard buffer).

 קבל החזר מנקישה במקלדת (ללא הד).

החזר:

AH = צופן סריקה מהמערכת.
AL = אות על פי צופן אסקי. אם יש נקישה במקלדת, הערך נמחק מזיכרונה.

 INT 16h / AH = 01h

check for keystroke in keyboard buffer.

return:

ZF = 1 if keystroke is not available.
ZF = 0 if keystroke available.
AH = BIOS scan code.
AL = ASCII character.
(if a keystroke is present, it is not removed from the keyboard buffer).

 בדוק בזיכרון המקלדת האם הייתה בה נקישה.

החזר:

ZF = 1 אם לא הייתה נקישה במקש כל-שהוא.
ZF = 0 אם יש נתון של נקישה.
AH = צופן סריקה מהמערכת.
AL = אות על פי צופן אסקי. אם יש נקישה במקלדת, הערך לא נמחק מזיכרונה.

 INT 19h

system reboot.

Usually, the BIOS will try to read sector 1, head 0, track 0 from drive A: to 0000h:7C00h. Emulator just stops the execution. To boot from floppy drive select from the menu: 'Virtual Drive' -> 'Boot from Floppy'

אתחול של המערכת מחדש.

בדרך כלל, מערכת ההפעלה הבסיסית תנסה לקרא את תוכן מקטע 1, ראש 0, מסלול 0 של כונן A: ולעתיק לכתובת 0000h:7C00h. האמולטר פשוט עוצר את הבצוע. לאתחול מתוך כונן דיסקט בחר בתפריט את "דיסקט מדומה" ומתוכו את "אתחול מתוך דיסקט".

 INT 1Ah / AH = 00h

get system time.

return:

CX:DX = number of clock ticks since midnight.
AL = midnight counter, advanced each time midnight passes.

Notes:
There are approximately 18.20648 clock ticks per second, and 1800B0h per 24 hours.
AL is not set by emulator yet!

קבל את השעה של מערכת הפעלה.

החזר:

CX:DX = כמות פעימות שעון מאז חצות.
AL = מונה של חצות, מתקדם כל פעם שעובר חצות.

הערה:
יש בערך 18.20648 פעימות בשנייה, ו- 1800
B0h ב- 24 שעות.  באמולטור תרם הוגדר השימוש של אוגר AL למטרה זו.

 INT 20h (MS-DOS)

exit to operating system.

יציאה למערכת הפעלה.

INT 21h / AH=01h (MS-DOS)

read character from standard input, with echo, result is stored in AL.

קרא מקלט סטנדרטי, עם הד למסך, התוצאה נרשמת באוגר AL.

INT 21h / AH=02h (MS-DOS)

write character to standard output, DL = character to write, after execution AL = DL.

  רשום תו לפלט סטנדרטי, DL = תו לכתיבה, לאחר הביצוע AL=DL.

INT 21h / AH=09h (MS-DOS)

output of a string at DS:DX.

  פלט מחרוזת ב: DS:DX.

INT 21h / AH=0Ah (MS-DOS)

input of a string to DS:DX, fist byte is buffer size, second byte is number of chars actually read.

 קלט מחרוזת ב: DS:DX, בית ראשון הוא גודל ה-BUFFER, ובית שני הוא כמות התווים לקריאה.

INT 21h / AH=4Ch (MS-DOS)

exit to operating system.

 יציאה למערכת הפעלה.

The Software is made available solely for use by end users in conjunction with training materials and/or courseware materials provided with the WEB Site or CD.
 Any reproduction or redistribution of the Software or the materials is expressly prohibited by law, and may result in severe civil and criminal penalties.
 Violators will be prosecuted to the maximum extent possible.