อินเทอร์รัพท์ DOS Interrupt
 
อินเทอร์รัพท์ (Interrupt)  หมายถึง อะไร
ทางเข้าโปรแกรมย่อยที่ BIOS หรือ DOS มีไว้บริการ เป็นการเข้าไปขัดจังหวะ
เพื่อขอกระทำการบางอย่าง เช่น ขอพิมพ์ ขออ่านข้อมูลบางอย่าง เป็นต้น
ผู้รู้บางท่านกล่าวว่า interrupt เหมือน call function ในภาษาคอมพิวเตอร์ คือ
เข้าไปเรียกโปรแกรมบางอย่างมาทำงานจนเสร็จ แล้วย้อนกลับมาทำบรรทัดต่อไป
อินเทอร์รัพท์เป็นกระบวนการในการส่งสัญญาณบอกให้ซีพียูรับรู้แล้วหยุดงานที่ทำอยู่
และหันมาตอบสนองต่ออินเทอร์รัพที่ร้องขอ เป็นวิธีที่เหมาะสมที่สุด
ในการติดต่อระหว่างอุปกรณ์และซีพียู มีลักษณะคล้ายการเรียกใช้ subroutine
Interrupt List  (
http://www-2.cs.cmu.edu  #A  .. 
#F )
The original interrupt list is from Ralph Brown, but I couldn't handle it on my computer (and I have a good one). This is why I adapted it. The interrupt page I have now has 85 files describing the interrupts, with in each file about 100 little (original) files. This has some advantages, like the saved disk space, but also disadvantages, like the longer waiting before getting a interrupt. Something positive about this is: when you once showed one page, you have 100 interrupts in your cache and when you search a lot of interrupts, you can easely scroll forward to the next interrupt.
 
อินเทอร์รัพท์ที่น่าสนใจ (Interested Interrupt) 
ตัวอย่าง ]
 
Sample of using : int 0h 
:: สร้างโปรแกรมขนาด 4 byte ชื่อ test.com เพื่อหยุดการทำงานของโปรแกรม
C:\>debug test.com
-a
11BD:0100 mov ah,0
11BD:0102 int 21
11BD:0104
-rcx
CX 0000
:4
-w
Writing 00004 bytes
-q
C:\>test.com
C:\>
   
:: ตัวอย่างการใช้ interrupt ใน debug อย่างสั้น 
// ex1 : รับค่าจากแป้นพิมพ์ส่งให้ errorlevel ใน DOS
mov ah,8
int 21
mov ah,4c
int 21
 
// ex2 : รับค่าจากแป้นพิมพ์ แล้วแสดงผล
mov ah,8
int 21
mov ah,2
mov dl,al
int 21
mov ah,4c
int 21
 
// ex3 : สั่ง Clear screen โดยกำหนด mode ของจอภาพ
mov ah,0
mov al,2
int 10
mov ah,0
int 21
 
// ex4 : กำหนด cursor ให้เป็นแถบทึบ
mov ah,1
mov ch,0
mov cl,7
int 10
mov ah,0
int 21
 
// ex5 : เปลี่ยน Mode การแสดงผล ด้วย int 10h
mov ah,0
mov al,12
int 10h
mov ah,4c
int 21h
  
// ex6 : พิมพ์อักษร AB และ ab คนละบรรทัด
mov ah,2
mov dl,41
int 21
mov ah,2
mov dl,42
int 21
mov ah,2
mov dl,0d
int 21
mov ah,2
mov dl,0a
int 21
mov ah,2
mov dl,61
int 21
mov ah,2
mov dl,62
int 21
mov ah,0
int 21
 
// ex7 : พิมพ์อักษร ABCDE โดยกำหนด ah = 2
mov ah,2
mov dl,41
int 21
mov dl,42
int 21
mov dl,43
int 21
mov dl,44
int 21
mov dl,45
int 21
mov ah,0
int 21
 
 
ไบออสและดอสอินเทอร์รัพท์ 
อินเทอร์รัพท์หมายเลข 0  :
อินเทอร์รัพท์หมายเลข 1  :
อินเทอร์รัพท์หมายเลข 2  :
อินเทอร์รัพท์หมายเลข 3  :
อินเทอร์รัพท์หมายเลข 4  : โอเวอร์โฟลว์ (Overflow)
อินเทอร์รัพท์หมายเลข 5  : พิมพ์หน้าจอ (Print Screen)
อินเทอร์รัพท์หมายเลข 6 และ 7   : สงวนไว้ (Reserved)
อินเทอร์รัพท์หมายเลข 8   :
อินเทอร์รัพท์หมายเลข 9  :
อินเทอร์รัพท์หมายเลข 0AH   : สงวนไว้ (Reserved)
อินเทอร์รัพท์หมายเลข 0BH - 0FH  :
 
อินเทอร์รัพท์หมายเลข  10H บริการที่ 0 : กำหนดสกรีนโหมด (Set Screen Mode)อินพุต 
AH = 0
AL = โหมด
 
โหมดใน AL
 ขนาดของการแสดงผล
 จำนวนสี
 อะแดปเตอร์
 จำนวนหน้าสูงสุด
  
0H
 40 X 25
 B&W test
 CGA,EGA,VGA
 8
  
1H
 40 X 25
 Color test
 CGA,EGA,VGA
 8
  
2H
 80 X 25
 B&W test
 CGA,EGA,VGA
 4(CGA) 8(EGA,VGA)
  
3H
 80 X 25
 Color test
 CGA,EGA,VGA
 4(CGA) 8(EGA,VGA)
  
4H
 320 X 200
 4
 CGA,EGA,VGA
 1
  
5H
 320 X 200
 B&W
 CGA,EGA,VGA
 1
  
6H
 640 X 200
 2(on or off)
 CGA,EGA,VGA
 1
  
7H
 80 X 25
 Monochrome
 MDA,EGA,VGA
 1(MDA) 8(EGA,VGA)
  
8H
 160 X 200
 16
 PCjr
 1
  
9H
 320X200
 16
 PCjr
 1
  
AH
 640X200
 1
 PCjr
 1
  
DH
 320X200
 16
 EGA,VGA
 8
  
EH
 640X200
 16
 EGA,VGA
 4
  
FH
 640X350
 Monochrome
 EGA,VGA
 2
  
10H
 640X350
 16
 EGA,VGA
 2
  
11H
 640X480
 2
 VGA
 1
  
12H
 640X480
 16
 VGA
 1
  
13H
 320X200
 256
 VGA
 1  
หมายเหตุ  โหมด B และ C สงวนไว้ใช้ในอนาคต
อินเทอร์รัพท์หมายเลข  10H บริการที่ 1 : กำหนดชนิดของเคอร์เซอร์อินพุต 
AH = 1
CH = เส้นเริ่มต้นของเคอร์เซอร์
CL = เส้นสุดท้ายของเคอร์เซอร์
เอาต์พุต 
เคอร์เซอร์ขนาดใหม่ตามที่กำหนด
อินเทอร์รัพท์หมายเลข  10H บริการที่ 2 : กำหนดตำแหน่งของเคอร์เซอร์อินพุต 
AH = 2
DH,Dl = แถว,คอลัมน์
BH = หมายเลขหน้า
อินเทอร์รัพท์หมายเลข  10H บริการที่ 3 : หาตำแหน่งคอร์เซอร์อินพุต 
AH = 3
BH = หมายเลขหน้า
เอาต์พุต 
DH,DL = แถว,คอลัมน์ของเคอร์เซอร์
CH,CL = ขนาดปัจจุบันของเคอร์เซอร์
อินเทอร์รัพท์หมายเลข  10H บริการที่ 4 : อ่านตำแหน่งของไลต์เพนอินพุต 
AH = 4
เอาต์พุต 
AH = 0 --> ไม่มีการกดสวิตช์บนไลต์เพน
AL = 1 --> DH,DL = แถว,คอลัมน์ของตำแหน่งที่ไลต์เพนอยู่
CH เป็นราสเตอร์ไลน์ (แนวดิ่ง)มีค่า 0 ถึง 199
BX เป็นพิกเซลคอลัมน์ (แนวราบ) มีค่า 0 ถึง 319,639
อินเทอร์รัพท์หมายเลข  10H บริการที่ 5 : กำหนดแอ็กทีฟเพจอินพุต 
AH = 5
AL = 0 - 7(สกรีนโหมด 0,1) และ0 - 3(สกรีนโหมด 2,3)
เอาต์พุต 
แอ็กทีฟเพจเปลี่ยนไปตามที่กำหนด
อินเทอร์รัพท์หมายเลข  10H บริการที่ 6 : เลื่อนแอ็กทีฟเพจขึ้นอินพุต 
AH = 6
AL = จำนวนบรรทัดว่างที่ส่วนล่างของจอภาพ (0 --> เลื่อนทั้งหน้าจอ)
CH,CL = แถว,คอลัมน์ของจุดมุมบนซ้ายของพื้นที่ที่จะเลื่อน
DH,DL = แถว,คอลัมน์ของจุดมุมล่างขวาของพื้นที่ที่จะเลื่อน
BH = แอตตริบิวต์ของบรรทัดว่าง สำหรับกำหนดสี
เอาต์พุต 
แอกทีฟเพจเลื่อนขึ้นไปตามที่กำหนด
อินเทอร์รัพท์หมายเลข  10H บริการที่ 7 : เลื่อนแอ็กทีฟเพจลงอินพุต 
AH = 7
AL = จำนวนบรรทัดว่างที่ส่วนล่างของจอภาพ (0 --> เลื่อนทั้งหน้าจอ)
CH,CL = แถว,คอลัมน์ของจุดมุมบนซ้ายของพื้นที่ที่จะเลื่อน
DH,DL = แถว,คอลัมน์ของจุดมุมล่างขวาของพื้นที่ที่จะเลื่อน
BH = แอตตริบิวต์ของบรรทัดว่าง
เอาต์พุต 
แอกทีฟเพจเลื่อนลงไปตามที่กำหนด
อินเทอร์รัพท์หมายเลข  10H บริการที่ 8 : อ่านแอตตริบิวต์และรหัสแอสกีของอักขระที่อยู่ที่ตำแหน่งของเคอร์เซอร์อินพุต 
AH = 8
BH = หมายเลขหน้า
เอาต์พุต 
AL = รหัสแอสกีของอักขระที่อยู่ที่ตำแหน่งของเคอร์เซอร์
AH = แอตตริบิวต์ของอักขระที่อยู่ที่ตำแหน่งของเคอร์เซอร์ (เฉพาะแอลฟานัมเบอริกส์เท่านั้น)
อินเทอร์รัพท์หมายเลข  10H บริการที่ 9 : แอตตริบิวต์และอักขระที่ตำแหน่งของเคอร์เซอร์อินพุต 
AH = 9
AL = รหัสแอสกีของอักขระที่จะเขียน
BH = หมายเลขหน้า
BL = แอตตริบิวต์ (ในเท็กโหมด)
เอาต์พุต 
อักขระถูกเขียนบนจอภาพที่ตำแหน่งเคอร์เซอร์
อินเทอร์รัพท์หมายเลข  10H บริการที่ A : เขียนเฉพาะ อักขระที่ตำแหน่งเคอร์เซอร์อินพุต 
AH = 0AH
AL = รหัสแอสกีของอักขระที่จะเขียน
BH = หมายเลขหน้า
CX = จำนวนอักขระที่จะเขียน
เอาต์พุต 
อักขระถูกเขียนบนจอภาพที่ตำแหน่งเคอร์เซอร์
อินเทอร์รัพท์หมายเลข  10H บริการที่ B : กำหนดพาเลตต์ของสีอินพุต 
AH = 11
BH = หมายเลขพาเลตต์ของสี
BH = 0 --> สีพื้น
BH = 1 --> หมายเลขพาเลตต์ของสีโดย
อินเทอร์รัพท์หมายเลข  10H บริการที่ C : เขียนจุดอินพุต 
AH = 12
AL = ค่าสี (0 ถึง 3)
CX = หมายเลขคอลัมน์ของจุดที่จะเขียน (0 ถึง 319,639)
DX = หมายเลขแถวของจุดที่จะเขียน (0 ถึง 199)
ข้อสังเกต  ถ้าบิตที่ 7 ของAL เป็น 1 ค่าสีจะถูกกระทำทางบิตแบบ XORed กับค่าสีปัจจุบันของจุดนั้น
อินเทอร์รัพท์หมายเลข  10H บริการที่ D : อ่านจุดอินพุต 
AH = 13
CX = หมายเลขคอลัมน์ของจุดที่จะเขียน (0 ถึง 319,639)
DX = หมายเลขแถวของจุดที่จะเขียน (0 ถึง 199)
เอาต์พุต 
AL = ค่าสี (0 ถึง 3)
ข้อสังเกต  ถ้าบิตที่ 7 ของAL เป็น 1 ค่าสีจะถูกกระทำทางบิตแบบ XORed กับค่าสีปัจจุบันของจุดนั้น
อินเทอร์รัพท์หมายเลข  10H บริการที่ E : เขียนแบบเทเลไทป์บนแอ็กทีฟเพจอินพุต 
AL = รหัสแอสกีของอักขระที่จะเขียน
BL = โหมดปัจจุบัน(ดู INT 10H บริการที่ 0)
BH = แอก็กทีฟเพจ
อินเทอร์รัพท์หมายเลข  10H บริการที่ FH : กำหนดพาเลตต์รีจิสเตอร์
ค่าสี สี rgbRGB
  0 ดำ 000000
 1 น้ำเงิน 000001
 2 เขียว 000010
 3 น้ำเงินแกมเขียว 000011
 4 แดง 000100
 5 ม่วง 000101
 6 น้ำตาล 010100
 7 ขาว 000111
 
 
ค่าสี สี rgbRGB
  8 เทาเข้ม 111000
 9 น้ำเงินอ่อน 111001
 10 เขียวอ่อน 111010
 11 น้ำเงินแกมเขียวอ่อน 111011
 12 แดงอ่อน 111100
 13 ม่วงอ่อน 111101
 14 เหลือง 111110
 15 ขาวเข้ม 111111
 
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 0 : กำหนดพาเลตต์รีจิสเตอร์ (ทีละตัว)อินพุต 
AH = 10H
AL = 0
BL = พาเลตต์รีจิสเตอร์ที่จะกำหนด (0 ถึง 15)
BH = ค่าที่จะให้แก่พาเลตต์รีจิสเตอร์ (0 ถึง 63)
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 1 : กำหนดโอเวอร์สแกน (บอร์เดอร์) รีจิสเตอร ์อินพุต 
AH = 10H
AL = 1
BH = ค่าที่กำหนด (0 ถึง 63)
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 2 : กำหนดพาเลตต์รีจิสเตอร์ (ทุกตัว)อินพุต 
AH = 10H
AL = 1
ES:BX = แอดเดรสของตารางขนาด 17 ไบต์ที่เก็บผลการเลือกค่าสี
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 7 : อ่านพาเลตต์รีจิสเตอร์ (ทีละตัว)อินพุต 
AH = 10H
AL = 7
BL = พาเลตต์รีจิสเตอร์ที่จะอ่าน
เอาต์พุต 
BH = ค่าในพาเลตต์รีจิสเตอร์
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 8 : อ่านโอเวอร์สแกน (บอร์เดอร์) รีจิสเตอร์อินพุต 
AH = 10H
AL = 8
เอาต์พุต 
BH = ค่าในโอเวอร์สแกน (บอร์เดอร์) รีจิสเตอร์
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 10H : กำหนด DAC รีจิสเตอร์อินพุต 
AH = 10H
AL = 10H
BX = รีจิสเตอร์ที่กำหนด CH = ความเข้มของสีเขียว
CL = ความเข้มของสีน้ำเงิน
DH = ความเข้มของสีแดง
อินเทอร์รัพท์หมายเลข  10H บริการที่ 10H ฟังก์ชั่นที่ 12H : กำหนด DAC รีจิสเตอร ์อินพุต 
AH = 10H
AL = 10H
BX = รีจิสเตอร์แรกที่กำหนด (0 ถึง 255)
CX = จำนวนรีจิสเตอร์ที่กำหนด (1 ถึง 256)
ES:DX = แอสเดรสของตารางความเข้มสีโดยที่ DAC รีจิสเตอร์แต่ละตัวใช้ 3 ไบต์
อินเทอร์รัพท์หมายเลข  10H บริการที่10H ฟังก์ชั่นที่ 13H : เลือกโหมดของหน้าสีอินพุต 
AH = 10H
AL = 13H
BL = 0 เลือกโหมดของหน้าสี
BH = 0 เลือก 4 DAC เพจรีจิสเตอร์จาก 64 รีจิสเตอร์
BH = 1 เลือก 16 DAC เพจรีจิสเตอร์จาก 16 รีจิสเตอร์
BL = 1 เลือกแอ็กทีฟคัลเลอร์เพจ
สำหรับโหมดที่มีเพียง 4 เพจ
อินเทอร์รัพท์หมายเลข  10H บริการที่ 11H : คาเรกเตอร์เจนเนอร์เตอร์อินเทอร์รัพท์หมายเลข  10H บริการที่ 12H : เลือกอินพุต 
AH = 10H
BL = 30H
AL = 0 --> 200 สกรีนสแกนไลน์
อินเทอร์รัพท์หมายเลข  11H : ตรวจสอบอุปกรณ์ที่ต่อเข้ากับเครื่องอินพุต 
อยู่ในบิตต่าง ๆ ของ AX
บิตที่
 ความหมาย
  
15,14
 จำนวนพรินเตอร์
  
13
 ไม่ได้ใช้
  
12
 =1 ถ้ามีเกมอะแคปเตอร์ต่ออยู่
  
11,10,9
 จำนวน RS 232 การ์ดที่ติดตั้งแล้ว
  
8
 ไม่ได้ใช้
  
7,6
 จำนวนดิสเกตต์ไดรฟ์(ถ้าบิตที่ 0=1)
  
 00 --> 1 ; 01 --> 2 ; 10 --> 3 ; 11 --> 4
  
5,4
 วีดีโอโหมด
  
 (00 ไม่ได้ใช้ 01= 40x25 Color Card 10 80x 25
  
 Color Card , 11 = 80x25 Monochrome)
  
3,2
 ขนาดของแรมบนแมนบอร์ด
  
 (00 = 16K , 01 = 32K , 10 = 48K , 11 = 64K)
  
1
 ไม่ได้ใช้
  
0
 = 1 ถ้ามีดิสเกตต์ไดรฟ์ต่ออยู่  
อินเทอร์รัพท์หมายเลข  12H : ตรวจสอบขนดของหน่วยความจำอินพุต 
AX = จำนวนบล็อกขนาด 1 K ที่ต่อเนื่องกันในหน่วยความจำ
อินเทอร์รัพท์หมายเลข  12H บริการที่ 0 : รีเซตดิสก์อินพุต 
AH = 0
เอาต์พุต 
CY = 0 --> AH = 0 , สำเร็จ
CY = 1 --> AH = รหัสความผิดพลาด (ดูบริการที่ 1)
ข้อสังเกต  สำหรับฮาร์ดดิสก์ : DL = 80H --> รีเซตดิสเกตต์
อินเทอร์รัพท์หมายเลข  13H บริการที่ 1 : รีเซตดิสก์อินพุต 
AH = 0
เอาต์พุต 
รหัสความผิดพลาดเกี่ยวกับดิสก์
ค่าใน AL
 ความหมาย
  
00
 ไม่มีข้อผิดพลาด
  
01
 มีการส่งคำสั่งที่ไม่ถูกต้องไปยังดิสก์คอนโทรลเลอร์
  
02
 ไม่พบแอสเดรสตามที่ระบุ
  
11,10,9
 จำนวน RS 232 การ์ดที่ติดตั้งแล้ว
  
03
 ดิสเกตต์ในไดรฟ์ปัจจุบันติดแถบป้องกันการบันทึกอยู่
  
04
 ไม่พบเซกเตอร์ของดิสก์เกตต์ในไดรฟ์ปัจจุบัน
  
05
 รีเซตล้มเหลว
  
07
 ไดรฟ์พารามิเตอร์ไม่ถูกต้อง
  
09
 สิ้นสุดของการ DMA ระหว่างเซกเมนต์
  
0B
 พบแทร็กเสีย
  
10H
 การตรวจสอบไม่ถูกต้อง
  
11H
 ข้อมูลได้รับการแก้ไขอย่างไม่ถูกต้อง
  
20H
 ดิสก์คอนโทรลเลอร์ทำงานล้มเหลว
  
40H
 ไม่สามารถค้นหาคำสั่งได้
  
80H
 ไม่มีการตอบสนองจากดิสก์เกตต์ในไดรฟ์ปัจจุบัน
  
0BBH
 พบข้อผิดพลาดที่ไม่มีการนิยามมาก่อน
  
0FFH
 ไม่สามารถรับรู้คำสั่งได้  
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้วค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 2 : อ่านข้อมูลจากเซกเตอร์เข้ามาเก็บไว้ในหน่วยความจำอินพุต 
AH = 2
DL = หมายเลขไดรฟ์
DH = หมายเลขของหัวอ่าน
CH = หมายเลขของแทร็กหรือไซลินเดอร์
CL = บิตที่ 7,6 เก็บ 2 บิตสูงของหมายเลขไซลินเดอร์ซึ่งมีขนาด 10 บิต
CL = บิตที่ 0 ถึง 5 เก็บหมายเลขเซกเตอร์
AL = จำนวนเซกเตอร์ที่จะอ่าน
เอาต์พุต 
CY = 0 --> AL = จำนวนเซกเตอร์ที่อ่าน
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้วค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 3 : เขียนข้อมูลลงในเซกเตอร์ของแผ่นดิสก์อินพุต 
AH = 3
DL = หมายเลขไดรฟ์
DH = หมายเลขของหัวอ่าน
CH = หมายเลขของแทร็กหรือไซลินเดอร์
CL = บิตที่ 7,6 เก็บ 2 บิตสูงของหมายเลขไซลินเดอร์ซึ่งมีขนาด 10 บิต
CL = บิตที่ 0 ถึง 5 เก็บหมายเลขเซกเตอร์
AL = จำนวนเซกเตอร์ที่จะอ่าน
เอาต์พุต 
CY = 0 --> AL = จำนวนเซกเตอร์ที่เขียน
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้ว ค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 4 : ตรวจสอบเซกเตอรอินพุต 
AH = 4
DL = หมายเลขไดรฟ์
DH = หมายเลขของหัวอ่าน
CH = หมายเลขของแทร็กหรือไซลินเดอร์
CL = บิตที่ 7,6 เก็บ 2 บิตสูงของหมายเลขไซลินเดอร์ซึ่งมีขนาด 10 บิต
CL = บิตที่ 0 ถึง 5 เก็บหมายเลขเซกเตอร์
AL = จำนวนเซกเตอร์ที่จะอ่าน
เอาต์พุต  
CY = 0 --> AL = จำนวนเซกเตอร์ที่เขียน
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้ว ค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 8 : ตรวจสอบเซกเตอร์ บริการนี้ใช้เฉพาะฮาร์ดดิสก์ของเครื่อง PS/2อินพุต 
AH = 8
DL = หมายเลขไดรฟ์
เอาต์พุต
DL = จำนวนไดรฟ์ที่ต่อเข้ากับดิสก์คอนโทรลเลอร์
DH = จำนวนหัวอ่านมากสุด
CH = จำนวนไซลินเดอร์มากสุด
CL = บิตที่ 7,6 เก็บ 2 บิตสูงของหมายเลขไซลินเดอร์ซึ่งมีขนาด 10 บิต
CL = บิตที่ 0 ถึง 5 บิตสูงของหมายเลขเซกเตอร์
BL สำหรับดิสก์เกตต์ที่ใช้กับเครื่อง PS/2 เท่านั้น
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้วค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 0AH และ 0BH : สงวนไว้อินเทอร์รัพท์หมายเลข  13H บริการที่ 0CH : ตรวจสอบเซกเตอร์อินพุต 
AH = 0CH
DH = หมายเลขหัวอ่าน
DL = หมายเลขของไดรฟ์ (80 ถึง 87H)
CH = หมายเลขของแทร็กหรือไซลินเดอร์
CL = บิตที่ 7,6 เก็บ 2 บิตสูงของหมายเลขไซลินเดอร์ซึ่งมีขนาด 10 บิต
CL = บิตที่ 0 ถึง 5 เก็บหมายเลขเซกเตอร์
เอาต์พุต 
CY = 0 --> AL = 0 สำเร็จ
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้ว ค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 0DH : รีเซตดิสก์สลับกันอินเทอร์รัพท์หมายเลข  13H บริการที่ 0EH และ 0FH : สงวนไว้อินเทอร์รัพท์หมายเลข  13H บริการที่ 10H : ตรวจสอบความพร้อมของไดรฟ์อินเทอร์รัพท์หมายเลข  13H บริการที่ 11H : คาลิเบรตไดรฟ์ของฮาร์ดดิสก์ใหม่อินพุต 
AH = 11H (อ่าน)
DL = หมายเลขของไดรฟ์ (80 ถึง 87H)
เอาต์พุต 
CY = 0 --> AL = 0 สำเร็จ
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง
ฮาร์ดดิสก์ สำหรับฮาร์ดดิสก์แล้วค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 12H : วินิจฉัยฮาร์ดดิสก์อินพุต 
AH = 12H (วินิจฉัยแรม)
AH = 13H (วินิจฉัยไดรฟ์)
AH = 14H (วินิจฉัยดิสก์คอนโทรลเลอร์)
DL = หมายเลขของไดรฟ์ (80 ถึง 87H)
เอาต์พุต 
CY = 0 --> AL = 0 สำเร็จ
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้ว ค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  13H บริการที่ 19H : พักการทำงานของหัวอ่านฮาร์ดดิสก์ (Park)อินพุต 
DL = หมายเลขของไดรฟ์
เอาต์พุต 
CY = 0 --> AL = 0 สำเร็จ
CY = 1 --> AH = รหัสบอกความผิดพลาดของดิสก์ (ดูบริการที่ 1)
ข้อสังเกต  DL = หมายเลขไดรฟ์ ; ถ้าบิตที่ 7 เป็น 1 หมายถึง ฮาร์ดดิสก์
สำหรับฮาร์ดดิสก์แล้ว ค่าใน DL เป็นได้ตั้งแต่ 80H ถึง 87H
อินเทอร์รัพท์หมายเลข  14H ,AH = 0 : อินนิเชียลพอร์ต RS 232อินพุต 
AH = 0
DL = ค่าในบิตต่างๆ มีความหมายดังนี้
บิตที่ 0,1 = ขนาดของเวิร์ค โดย
อินเทอร์รัพท์หมายเลข  14H ,AH = 1 :  ส่งอักขระไปยังซีเรียลพอร์ตอินพุต 
AH = 1
AL = รหัสแอสกีของอักขระที่จะส่งไป
เอาต์พุต 
ถ้าบิตที่ 7 ของ AH = 1 แสดงว่า ล้มเหลว
ถ้าบิตที่ 7 ของ AH = 0 แล้วบิตที่ 0 ถึง 6 เก็บสถานะ (ดู INT 14H ,AH = 3)
อินเทอร์รัพท์หมายเลข  14H ,AH = 2 :  ส่งอักขระไปยังซีเรียลพอร์ตอินพุต 
AH = 2
เอาต์พุต 
AL = รหัสแอสกีของอักขระที่จะส่งไป
AH = 0 แสดงว่า สำเร็จ
อินเทอร์รัพท์หมายเลข  14H ,AH = 3 : ตรวจสอบเซกเตอร์อินพุต 
AH = 3
เอาต์พุต 
AH = ค่าในบิตต่าง ๆ ถ้าถูกเซตจะมีความหมายดังนี้
อินเทอร์รัพท์หมายเลข  15H : คาสเซ็ตต์อินพุตและเอาต์พุตอินพุต 
AH = 0 --> เปิดมอเตอร์ของคาสเซ็ตต์
AH = 1 --> ปิดมอเตอร์ของคาสเซ็ตต์
AH = 2 --> อ่านบล็อกของข้อมูล (ขนาด 1 หรือ 256 ไบต์)
เอาต์พุต 
DX = จำนวนไบต์ที่อ่านได้จริง
CY = 0 --> AL = 0 สำเร็จ
CY = 1 --> AH = รหัสบอกความผิดพลาด โดย
อินเทอร์รัพท์หมายเลข  16H บริการที่ 0 : อ่านคีย์จากคีย์บอร์ดอินพุต 
AH = 0
เอาต์พุต 
AH = รหัสสแกน
AL = รหัสแอสกี
 ตัวอย่าง 
MOV     AH,00
INT     16
MOV     AH,4C
INT     21
อินเทอร์รัพท์หมายเลข  16H บริการที่ 1 : ตรวจสอบว่าคีย์บอร์ดพร้อมที่จะถูกอ่านหรือไม่อินพุต 
AH = 2
เอาต์พุต 
แฟล็กศูนย์ = 0 --> บัฟเฟอร์ว่าง
แฟล็กศูนย์ = 1 --> AH = รหัสสแกน
AL = รหัสแอสกี
อินเทอร์รัพท์หมายเลข  16H บริการที่ 2 : หาคีย์บอร์ดสถานะคีย์บอร์ดอินพุต 
AH = 2
เอาต์พุต 
AL = ไบต์บอกสถานะของคีย์บอร์ด
อินเทอร์รัพท์หมายเลข  17H บริการที่ 0 : พิมพ์อักขระที่เก็บใน AL ออกพรินเตอร์อินพุต 
AH = 0
AL = อักขระที่จะพิมพ์
DX = หมายเลขพรินเตอร์ (0,1,2)
เอาต์พุต 
AH = 1 --> printer time out
อินเทอร์รัพท์หมายเลข  17H บริการที่ 1 : อินนิเชียลพรินเตอร์พอร์ตอินพุต 
AH = 1
DX = หมายเลขพรินเตอร์ (0,1,2)
เอาต์พุต  
AH = สถานะของพรินเตอร์
ค่าในบิตต่าง ๆ ของ AH ถ้าถูกเซตจะมีความหมายดังนี้
อินเทอร์รัพท์หมายเลข  17H บริการที่ 2 : อ่านสถานะของพรินเตอร์เข้ามาเก็บไว้ใน AHอินพุต 
AH =
DX = หมายเลขพรินเตอร์ (0,1,2)
เอาต์พุต 
AH = สถานะของพรินเตอร์ (เหมือน INT 17H บริการที่ 1)
อินเทอร์รัพท์หมายเลข  18H : Resident BASICอินเทอร์รัพท์หมายเลข  19H : บูตแสตรป (Bootstrap)อินเทอร์รัพท์หมายเลข  1AH บริการที่ 0 : อ่านเวลาของวันอินพุต 
AH = 0
เอาต์พุต 
CX = เวิร์ดสูงของ timer count
DX = เวิร์ดต่ำของ timer count
AL = 0 ถ้าไทเมอร์ยังไม่เกิน 24 ชั่วโมงนับตั้งแต่การอ่านครั้งสุดท้าย
ข้อสังเกต  timer count มีค่าเพิ่มขึ้นชั่งโมงละ 65,536
อินเทอร์รัพท์หมายเลข  1AH บริการที่ 1 : กำหนดเวลาของวันอินพุต 
AH = 0
CX = เวิร์ดสูงของ TIMER COUNT
DX = เวิร์ดต่ำของ TIMER COUNT
ข้อสังเกต  TIMER COUNT มีค่าเพิ่มขึ้นชั่งโมงละ 65,536
อินเทอร์รัพท์หมายเลข  1BH : แอดเดรสของคีย์บอร์ดเบรกอินเทอร์รัพท์หมายเลข  1CH : ไทเมอร์ติกอินเทอร์รัพท์ (Timer Tick Interrupt)อินเทอร์รัพท์หมายเลข  1DH : ตารางวีดิโอพารามิเตอร์อินเทอร์รัพท์หมายเลข  1EH : ดิสเกตต์พารามิเตอร์อินเทอร์รัพท์หมายเลข  1FH : นิยามอักขระกราฟิกอินเทอร์รัพท์หมายเลข  20H : เทอร์มิเนตโปรแกรม 
อินเทอร์รัพท์หมายเลข  21Hอินเทอร์รัพท์หมายเลข  21H บริการที่ 0 : เทอร์มิเนตโปรแกรมอินพุต 
AH = 0
อินเทอร์รัพท์หมายเลข  21H บริการที่ 1 : รับข้อมูลจากคีย์บอร์ด (คีย์บอร์ดอินพุต)อินพุต 
AH = 1
เอาต์พุต 
AL = รหัสแอสกีของอักขระที่กดซึ่งจะถูกแสดงบนจอภาพให้เห็นด้วย
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2 : ส่งอักขระไปยังจอภาพอินพุต 
AH = 2
DL = รหัสแอสกีของอักขระ
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3 : รับข้อมูลจากอุปกรณ์ช่วยมาตรฐาน (Standard Auxiliary Device)อินพุต 
AH = 3
เอาต์พุต 
AL = รหัสแอสกีของอักขระ
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4 : ส่งอักขระไปยังอุปกรณ์ช่วยมาตรฐานอินพุต 
AH = 4
DL = รหัสแอสกีของอักขระ
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5 : ส่งอักขระไปยังพรินเตอร์อินพุต 
AH = 5
DL = รหัสแอสกีของอักขระ
อินเทอร์รัพท์หมายเลข  21H บริการที่ 6 : คอนโทรล I/Oอินพุต 
AH = 6
DL = รหัสแอสกีของอักขระ
เอาต์พุต 
DL = FF --> ส่งอักขระไปยังคอนโทรลโดยไม่แสดงบนจอภาพให้เห็น
อินเทอร์รัพท์หมายเลข  21H บริการที่ 7 : รับข้อมูลจากคอนโทรลโดยไม่แสดงบนจอภาพให้เห็นอินพุต 
AH = 7
เอาต์พุต 
AL = รหัสแอสกีของอักขระที่กด
หมายเหตุ  บริการนี้ไม่ตรวจสอบการกด < Ctrl > - < Break > หรือ  - < C >
อินเทอร์รัพท์หมายเลข  21H บริการที่ 8 : รับข้อมูลจากคอนโทรลโดยไม่แสดงบนจอภาพให้เห็น
เหมือนบริการที่ 7 แต่เพิ่มการตรวจสอบการกด < Ctrl - C > หรือ < Ctrl - Break >อินพุต 
AH = 8
เอาต์พุต 
AL = รหัสแอสกีของอักขระที่กด
อินเทอร์รัพท์หมายเลข  21H บริการที่ 9 : พิมพ์สตริงก์อินพุต 
DS:DX ชี้ไปยังสตริงก์ที่ลงท้ายด้วยเครื่องหมาย ‘$’
AH = 9
อินเทอร์รัพท์หมายเลข  21H บริการที่ A : สตริงก์อินพุตอินพุต 
AH = 0AH
[DS:DX] = ขนาดของบัฟเฟอร์
เอาต์พุต 
สตริงก์ที่รับเข้ามาทางคีย์บอร์ดถูกเก็บไว้ในบัฟเฟอร์ซึ่งอยู่ที่ DS:DX
อักขระที่กดจะถูกแสดงบนจอภาพให้เห็นด้วย
หมายเหตุ  บริการนี้ตรวจสอบการกด < Ctrl > - < Break > หรือ  - < C >
อินเทอร์รัพท์หมายเลข  21H บริการที่ 0BH : ตรวจสอบสถานะของอินพุตอินพุต 
AH = 0BH
เอาต์พุต 
AL = FF --> มีข้อมูลถูกอ่านเข้ามาแล้ว
AL = 00 --> ไม่มีข้อมูลใดถูกอ่านเข้ามา
 หมายเหตุ  บริการนี้ตรวจสอบการกด < Ctrl > - < Break > หรือ  - < C >
อินเทอร์รัพท์หมายเลข  21H บริการที่ 0CH : เคลียร์คีย์บอร์ดบัฟเฟอร์และเรียกใช้บริการอินพุต 
AH = 0CH
AL = หมายเลขบริการที่เกี่ยวกับคีย์บอร์ด
เอาต์พุต 
แสดงผลตามบริการที่เกี่ยวกับคีย์บอร์ดนั้น ๆ
 หมายเหตุ  บริการนี้ตรวจสอบการกด < Ctrl > - < Break > หรือ  - < C >
อินเทอร์รัพท์หมายเลข  21H บริการที่ 0DH : รีเซตดิสก์อินพุต 
AH = 0DH
อินเทอร์รัพท์หมายเลข  21H บริการที่ 0EH : รีเซตดิสก์อินพุต 
AH = 0EH
DL = หมายเลขไดรฟ์
DL = 0 --> A
DL = 1 --> B และอื่น ๆ
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 0FH : เปิดไฟล์ที่มีอยู่แล้วในดิสก์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 10H : ปิดไฟล์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 11H : ค้นหาไฟล์ที่ตรงกันเป็นไฟล์แรกอินพุต 
เอาต์พุต 
ข้อสังเกต  DTA อยู่ที่ CS-0080 ในไฟล์ .com
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 12H : ค้นหาไฟล์ต่อไปที่ตรงกันอินพุต 
เอาต์พุต 
ข้อสังเกต  ใช้บริการนี้หลังจากใช้บริการที่ 11H แล้ว
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 13H : ลบไฟล์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 14H : อ่านไฟล์แบบซีเควนเชียลอินพุต 
เอาต์พุต 
ข้อสังเกต  แอดเดรสของเรคอร์ดค่าเพิ่งขึ้น
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 15H : เขียนไฟล์แบบซีเควนเชียลอินพุต 
เอาต์พุต 
ข้อสังเกต  แอดเดรสของคอร์ดมีค่าเพิ่มขึ้น
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 16H : ครีเอดไฟล์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 17H : เปลี่ยนชื่อไฟล์อินพุต 
เอาต์พุต 
ข้อสังเกต  FCB ถูกเปลี่ยนแปลงโดยชื่อไฟล์ใหม่จะเก็บไว้ห่างจากจุดสิ้นสุด
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 18H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21 H บริการที่ 19H : หาดิสก์ปัจจุบันอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21 H บริการที่ 1AH : กำหนดตำแหน่ง DTAอินพุต 
ข้อสังเกต  DTA = Disk Transfer Area ซึ่งเป็นพื้นที่ข้อมูลที่ถูกใช้โดยบริการของ
อินเทอร์รัพท์หมายเลข  21H บริการที่ 1BH : ข้อมูล FAT ของดีฟอลต์ไดรฟ์อินพุต 
เอาต์พุต 
ข้อสังเกต  หน่วยเล็กที่สุดที่ใช้ในการเก็บไฟล์ คือ คลัสเตอร์
อินเทอร์รัพท์หมายเลข  21H บริการที่ 1CH : ข้อมูล FAT ของไดรฟ์ที่ระบุอินพุต 
เอาต์พุต 
ข้อสังเกต  หน่วยเล็กที่สุดที่ใช้ในการเก็บไฟล์ คือ คลัสเตอร์
อินเทอร์รัพท์หมายเลข  21H บริการที่ 1DH ถึง 20H : ใช้งานภายใน DOSอินเทอร์รัพท์หมายเลข  21H บริการที่ 21H : อ่านไฟล์แบบแรนคอมอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 22H : อ่านไฟล์แบบเรนดอมอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 23H : ขนาดของไฟล์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 24H : กำหนดเรนดอมเรคอร์ดฟิลด์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 25H : กำหนดอินเทอร์รัพท์เวกเตอร์อินพุต 
ข้อสังเกต  อินเทอร์รัพท์นี้ช่วยในหารอินเตอร์เซปอินเทอร์รัพท์เวกเตอร์
อินเทอร์รัพท์หมายเลข  21H บริการที่ 26H : สร้าง PSP ใหม่อินเทอร์รัพท์หมายเลข  21H บริการที่ 27H : อ่านบล็อกแบบแรนดอมอินพุต 
เอาต์พุต 
ข้อสังเกต  บัฟเฟอร์ของข้อมูลที่ใช้โดยบริการของ FCB ก็คือ DTA นั่นเอง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 28H : เขียนไฟล์แบบแรนดอมอินพุต 
เอาต์พุต 
ข้อสังเกต  บัฟเฟอร์ของข้อมูลที่ใช้โดยบริการของ FCB ก็คือ DTA นั่นเอง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 29H : พารส์ชื่อไฟล์ (Parse File Name)อินพุต 
เอาต์พุต 
ข้อสังเกต  ถ้าคอมมานด์ไลน์ไม่มีชื่อไฟล์ที่ถูกต้องแล้ว ES:DI + 1 จะเป็นช่องว่าง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2AH : อ่านวันทื่อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2BH : กำหนดวันทื่อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2CH : อ่านเวลาอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2DH : กำหนดเวลาอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2EH : กำหนดสถานะของการตรวจสอบอินพุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 2FH : อ่านที่อยู่ของ DTA ปัจจุบันอินพุต 
เอาต์พุต 
ข้อสังเกต  ปัฟเฟอร์ของข้อมูลที่ไช้โดยบริการของ FCB ก็คือ DTA นั่นเอง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 30H : อ่านหมายเลขรุ่น (เวอร์ชัน) ของดอสอินพุต 
เอาต์พุต 
ข้อสังเกต  ถ้า AL รีเทิร์นค่า 0 กลับมาแสดงว่าเราใช้ดอสรุ่นก่อนเวอร์ชัน 2
อินเทอร์รัพท์หมายเลข  21H บริการที่ 31H : จบการทำงานโดยที่โค้ดยังคงค้างอยู่ในหน่วยความจำอินพุต 
ข้อสังเกต  รหัสออกจะถูกอ่านโดยพาเรนต์โปรแกรม (parent program) ด้วยบริการที่
อินเทอร์รัพท์หมายเลข  21H บริการที่ 32H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 33H : ตรวจสอบการกด < BREAK >เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 34H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 35H : อ่านอินเทอร์รัพท์เวกเตอร์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 36H : อ่านจำนวนที่ว่างในแผ่นดิสก์อินพุต 
เอาต์พุต 
ข้อสังเกต  หน่วยเล็กที่สุดที่ใช้ในการเก็บไฟล์คือ คลัสเตอร์
อินเทอร์รัพท์หมายเลข  21H บริการที่ 37H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 38H : รีเทิร์นข้อมูลที่ขึ้นกับประเทศอินพุต 
เอาต์พุต 
ข้อสังเกต  ตั้งแต่คอสเวอร์ชัน3 ขึ้นไป เราสามารถกำหนดค่าเหล่านี้ได้ด้วย
อินเทอร์รัพท์หมายเลข  21H บริการที่ 39H : สร้างสับไดเรกเทอรีอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3AH : ลบสับไดเรกทอร์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3BH : ย้ายสับไดเรกทอรีอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3CH : สร้างไฟล์ (ใช้ไฟล์แฮนเดิล)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3DH : เปิดไฟล์ (ใช้ไฟล์แฮนเดิล)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3EH : (ใช้ไฟล์แฮนดิล)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 3FH : อ่านจากไฟล์หรือดีไวซ์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 40H : เขียนลงไฟล์หรือดีไวซ์อินพุต 
เอาต์พุต 
ข้อสังเกต  ดิสต์เต็มไม่ถือว่าเป็นข้อผิดพลาด ดังนั้นให้ตรวจสอบจำนวน
อินเทอร์รัพท์หมายเลข  21H บริการที่ 41H : ลบไฟล์อินพุต 
เอาต์พุต 
ข้อสังเกต  ไม่มีการใช้ wildcards ในชื่อไฟล์
อินเทอร์รัพท์หมายเลข  21H บริการที่ 42H : เคลื่อนย้ายพอยน์เตอร์ที่ใช้ในการอ่านและเขียนอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 43H : เปลี่ยนไฟล์แอดตริบิวต์อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 44H : I/O Cntrolอินเทอร์รัพท์หมายเลข  21H บริการที่ 45H : สร้างไฟล์แฮนเดิลซ้ำอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 46H : บังคับให้มีการสร้างไฟล์แฮนเดิลซ้ำ (Force Duplicate)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 47H : อ่านไดเรกทอรีปัจจุบันของไดรฟ์ที่ระบุอินพุต 
เอาต์พุต 
ข้อสังเกต  ชื่อไดรฟ์ไม่ถูกอ่านเข้ามาเก็บในสตริงก์แบบ ASCII
อินเทอร์รัพท์หมายเลข  21H บริการที่ 48H : ออลโลเคตหน่วยจำอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 49H : ปลดปล่อยหน่วยความจำที่ได้จากการออลโลเคตอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4AH : กำหนดบล็อกอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4BH :โหลดหรือเอกซีคิวต์โปรแกรม (EXEC)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4CH : เทอร์มิเนตโปรแกรมอินพุต 
ข้อสังเกต  บริการนี้ใช้จบโปรแกรมได้
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4DH : อ่านรีเทิร์นโค้ดของสับโพรเซสอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4EH : หาไฟล์แรกที่เข้าคู่ได้อินพุต 
เอาต์พุต 
ข้อสังเกต  บัฟเฟอร์ของข้อมูลที่ใช้โดยบริการของ FCB ก็คือ DTA นั่นเอง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 4FH : หาไฟล์ถัดไปที่เข้าคู่ได้อินพุต 
เอาต์พุต 
ข้อสังเกต  บัฟเฟอร์ของข้อมูลที่ใช้โดยบริการของ FCB ก็คือ DTA นั่นเอง
อินเทอร์รัพท์หมายเลข  21H บริการที่ 50-53H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 54H : อ่านสถานะการตรวจสอบอินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 55H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 56H : เปลี่ยนชื่อไฟล์อินพุต 
เอาต์พุต 
ข้อสังเกต  ไม่สามารถเปลี่ยนชื่อไฟล์แล้วมีชื่อไฟล์ใหม่นั้นอยู่ต่างไดรฟ์ได้
อินเทอร์รัพท์หมายเลข  21H บิการที่ 57H : อ่านหรือกำหนดเวลาและวันที่ของไฟล์อินเทอร์รัพท์หมายเลข  21H บริการที่ 58H : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  21H บริการที่ 59H : อ่านข้อผิดพลาดเพิ่มเติม (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
ข้อสังเกต  บริการนี้เกี่ยวข้องกับข้อผิดพลาดที่เพิ่มเติมขึ้นจากเดิมมาก
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5AH : สร้าง Unique File (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5BH : สร้างไฟล์ใหม่ (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5CH : ล็อคและไม่ล็อคการแอ็กเซสไฟล์ (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5E00H : อ่านชื่อของเครื่อง (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5E02H : กำหนดเซตอัปของพรินเตอร์ (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5E03H : อ่านเซตอัปของพรินเตอร์ (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5F03H : รกดีไวซ์ (Redirect Device)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 5F04H : ยกเลิกการรก (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 62H : อ่าน PSP (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 67H : กำหนดจำนวนแฮนเคิล (ดอส 3.00 ขึ้นไป)อินพุต 
เอาต์พุต 
อินเทอร์รัพท์หมายเลข  21H บริการที่ 68H : Commit File (Write Buffer) ดอส 3.00 ขึ้นไปอินพุต 
เอาต์พุต 
ข้อสังเกต  บริการนี้เป็นบริการสุดท้ายของดอส 3.3 INT 21H
      
อินเทอร์รัพท์หมายเลข  22H : เทอร์มิเนคแอดเดรสอินเทอร์รัพท์หมายเลข  23H : Control-Break Exit Addressอินเทอร์รัพท์หมายเลข  24H : Critical Error Handerอินเทอร์รัพท์หมายเลข  25H : อ่านดิสก์แบบแอบโซลุคอินพุต 
เอาต์พุต 
ข้อสังเกต  แฟล็กจะยังคงอยู่ในสแต็กภายหลังการเรียก INT อินเทอร์รัพท์หมายเลข  26H : เขียนดิสก์แบบแอบโซลุดอินพุต 
เอาต์พุต 
ข้อสังเกต  แฟล็กจะยังคงอยู่ในสแต็กภายหลังการเรียก INT อินเทอร์รัพท์หมายเลข  27H : จบโปรแกรมโดยโค้ดยังคงค้างอยู่ในหน่วยความจำอินพุต 
อินเทอร์รัพท์หมายเลข  28H-2EH : ใช้งานภายในดอสอินเทอร์รัพท์หมายเลข  2FH : มัลติเพล็กซ์อินเทอร์รัพท์อินเทอร์รัพท์หมายเลข  30H - 3FH : ดอสสงวนไว้อินเทอร์รัพท์หมายเลข  40H - 5FH : สงวนไว้อินเทอร์รัพท์หมายเลข  60H - 67H : สงวนไว้สำหรับยูสเซอร์ซอฟต์แวร์อินเทอร์รัพท์หมายเลข  68H - 7FH : ไม่ได้ใช้งานอินเทอร์รัพท์หมายเลข  80H - 85H : BASIC สงวนไว้อินเทอร์รัพท์หมายเลข  86H - F0H : ใช้โดยอินเตอร์พรีเตอร์ภาษาเบสิกอินเทอร์รัพท์หมายเลข  F1H - FFH : ไม่ได้ใช้งาน