ดอส API

DOS APIคือAPIซึ่งมีต้นกำเนิดจาก86-DOSและใช้ในMS-DOS / PC DOSและระบบปฏิบัติการอื่นๆ ที่เข้ากันได้กับDOSการเรียก DOS API ส่วนใหญ่ถูกเรียกใช้โดยใช้ซอฟต์แวร์ขัดจังหวะ 21 ชม. ( INT 21 ชม.) ด้วยการเรียก INT 21h ด้วยหมายเลขฟังก์ชันย่อยในรีจิสเตอร์ตัวประมวลผล AH และพารามิเตอร์อื่นๆ ในรีจิสเตอร์อื่นๆ ทำให้สามารถเรียกใช้บริการ DOS ต่างๆ ได้ ซึ่งรวมถึงการจัดการอินพุตคีย์บอร์ด เอาต์พุตวิดีโอ การเข้าถึงไฟล์ดิสก์ การทำงานของโปรแกรม การจัดสรรหน่วยความจำ และกิจกรรมอื่นๆ มากมาย ในช่วงปลายทศวรรษ 1980 ตัวขยาย DOSพร้อมด้วยDOS Protected Mode Interface (DPMI) ช่วยให้โปรแกรมทำงานในโหมดป้องกัน 16 บิตหรือ 32 บิต และยังคงสามารถเข้าถึง DOS API ได้

ประวัติความเป็นมาของ DOS API

DOS API ดั้งเดิมใน 86-DOS และ MS-DOS 1.0 ได้รับการออกแบบมาให้ใช้งานร่วมกับCP/Mได้ เข้าถึงไฟล์โดยใช้บล็อกควบคุมไฟล์ (FCB) DOS API ได้รับการขยายอย่างมากใน MS-DOS 2.0 ด้วยแนวคิดUnix หลายประการ รวมถึงการเข้าถึงไฟล์โดยใช้ ตัวจัดการไฟล์ไดเร็กทอรีแบบลำดับชั้นและการควบคุม I/O ของอุปกรณ์[1]ใน DOS 3.1 มีการเพิ่มการรองรับตัวเปลี่ยนเส้นทางเครือข่ายใน MS-DOS 3.31 ฟังก์ชัน INT 25h/26h ได้รับการปรับปรุงเพื่อรองรับฮาร์ดดิสก์ที่มีขนาดใหญ่กว่า 32 MB MS-DOS 5 เพิ่มการรองรับการใช้บล็อกหน่วยความจำส่วนบน (UMB) หลังจาก MS-DOS 5 DOS API จะไม่เปลี่ยนแปลงสำหรับ DOS รุ่นสแตนด์อโลนที่ต่อเนื่องกัน

DOS API และ Windows

ในWindows 9x DOS จะโหลดระบบโหมดป้องกันและเชลล์กราฟิก โดยปกติแล้วจะเข้าถึง DOS จากเครื่อง DOS เสมือน (VDM) แต่ก็สามารถบูตโดยตรงไปยังโหมดจริงMS-DOS 7.0โดยไม่ต้องโหลด Windows DOS API ได้รับการขยายด้วยการรองรับความเป็นสากลที่ได้รับการปรับปรุงและ การรองรับ ชื่อไฟล์แบบยาวแม้ว่าการรองรับชื่อไฟล์แบบยาวจะมีให้ใช้งานใน VDM เท่านั้น ด้วยWindows 95 OSR2 ทำให้ DOS ได้รับการอัพเดตเป็น 7.1 ซึ่งเพิ่ม การรองรับ FAT32และเพิ่มฟังก์ชันต่างๆ ใน ​​DOS API เพื่อรองรับสิ่งนี้Windows 98และWindows MEยังใช้ MS-DOS 7.1 API แม้ว่า Windows ME จะรายงานตัวเองว่าเป็น MS-DOS 8.0 ก็ตาม

Windows NTและระบบที่ใช้ (เช่นWindows XPและWindows Vista ) ไม่ได้ทำงานบน MS-DOS แต่ใช้เครื่องเสมือน NTVDM เพื่อจัดการ DOS API NTVDM ทำงานโดยการรันโปรแกรม DOS ในโหมด 8086 เสมือน (การจำลองโหมดจริงภายในโหมดที่ได้รับการป้องกันบน โปรเซสเซอร์ 80386และสูงกว่า) NTVDM รองรับ DOS 5.0 API DOSEMUสำหรับLinuxใช้วิธีการที่คล้ายกัน

เวกเตอร์ขัดจังหวะที่ใช้โดย DOS

ต่อไปนี้เป็นรายการเวกเตอร์ขัดจังหวะที่โปรแกรมใช้เพื่อเรียกใช้ฟังก์ชัน DOS API

เวกเตอร์ขัดจังหวะ คำอธิบาย เวอร์ชัน หมายเหตุ
20h ยุติโปรแกรม 1.0+ ใช้งานในเคอร์เนล DOS
21h API ดอสหลัก 1.0+ ใช้งานในเคอร์เนล DOS
22h โปรแกรมสิ้นสุดที่อยู่ 1.0+ ส่งคืนที่อยู่ในโปรแกรมการโทร
23h ที่อยู่ตัวจัดการ Control-C 1.0+ ตัวจัดการเริ่มต้นอยู่ในเชลล์คำสั่ง (โดยปกติคือ COMMAND.COM)
24h ที่อยู่ตัวจัดการข้อผิดพลาดที่สำคัญ 1.0+ ตัวจัดการเริ่มต้นอยู่ในเชลล์คำสั่ง (โดยปกติคือ COMMAND.COM)
25h อ่านดิสก์แบบสัมบูรณ์ 1.0+ ใช้งานในเคอร์เนล DOS ปรับปรุงใน DOS 3.31 เพื่อรองรับพาร์ติชันสูงสุด 2 GB
26h เขียนดิสก์แบบสัมบูรณ์ 1.0+ ใช้งานในเคอร์เนล DOS ปรับปรุงใน DOS 3.31 เพื่อรองรับพาร์ติชันสูงสุด 2 GB
27h ยุติและอยู่อาศัยต่อไป 1.0+ ใช้งานใน COMMAND.COM ใน DOS 1.0, เคอร์เนล DOS ใน DOS 2.0+
28h คำบรรยายภาพเมื่อไม่ได้ใช้งาน 2.0+ ถูกเรียกโดยเคอร์เนล DOS เมื่อรออินพุต
29h เอาต์พุตคอนโซลที่รวดเร็ว 2.0+ ใช้งานโดยไดรเวอร์อุปกรณ์คอนโซลในตัวหรือไดรเวอร์ทดแทนเช่น ANSI.SYS
2Ah ส่วนเครือข่ายและประเด็นสำคัญ 3.0+ เรียกโดยเคอร์เนล DOS เพื่อเชื่อมต่อกับซอฟต์แวร์เครือข่าย
2Bh ไม่ได้ใช้
2Ch ไม่ได้ใช้
2Dh ไม่ได้ใช้
2Eh โหลดซ้ำชั่วคราว 2.0+ ดำเนินการใน COMMAND.COM
2Fh มัลติเพล็กซ์ 3.0+ นำไปใช้ในเคอร์เนล DOS และโปรแกรมต่างๆ (PRINT, MSCDEX, DOSKEY, APPEND ฯลฯ) ขึ้นอยู่กับหมายเลขฟังก์ชันย่อย

บริการ DOS INT 21 ชม

ต่อไปนี้เป็นรายการฟังก์ชันที่มีให้ผ่านทางเวกเตอร์ขัดจังหวะซอฟต์แวร์หลัก DOS API

AH คำอธิบาย เวอร์ชัน
00h โปรแกรมยุติลง 1.0+
01h การป้อนอักขระ 1.0+
02h เอาต์พุตอักขระ 1.0+
03h อินพุตเสริม 1.0+
04h เอาต์พุตเสริม 1.0+
05h เอาต์พุตเครื่องพิมพ์ 1.0+
06h ไดเร็กต์คอนโซล I/O 1.0+
07h อินพุตคอนโซลโดยตรงโดยไม่มีเสียงสะท้อน 1.0+
08h อินพุตคอนโซลโดยไม่มีเสียงสะท้อน 1.0+
09h สตริงการแสดงผล 1.0+
0Ah อินพุตคีย์บอร์ดบัฟเฟอร์ 1.0+
0Bh รับสถานะอินพุต 1.0+
0Ch ล้างบัฟเฟอร์อินพุตและอินพุต 1.0+
0Dh ดิสก์รีเซ็ต 1.0+
0Eh ตั้งค่าไดรฟ์เริ่มต้น 1.0+
0Fh เปิดไฟล์ 1.0+
10h ปิดไฟล์ 1.0+
11h ค้นหาไฟล์แรก 1.0+
12h ค้นหาไฟล์ถัดไป 1.0+
13h ลบไฟล์ 1.0+
14h อ่านตามลำดับ 1.0+
15h การเขียนตามลำดับ 1.0+
16h สร้างหรือตัดทอนไฟล์ 1.0+
17h เปลี่ยนชื่อไฟล์ 1.0+
18h ที่สงวนไว้ 1.0+
19h รับไดรฟ์เริ่มต้น 1.0+
1Ah ตั้งค่าที่อยู่การถ่ายโอนดิสก์ 1.0+
1Bh รับข้อมูลการจัดสรรสำหรับไดรฟ์เริ่มต้น 1.0+
1Ch รับข้อมูลการจัดสรรสำหรับไดรฟ์ที่ระบุ 1.0+
1Dh ที่สงวนไว้ 1.0+
1Eh ที่สงวนไว้ 1.0+
1Fh รับบล็อกพารามิเตอร์ดิสก์สำหรับไดรฟ์เริ่มต้น 1.0+
20h ที่สงวนไว้ 1.0+
21h สุ่มอ่าน 1.0+
22h สุ่มเขียน 1.0+
23h รับขนาดไฟล์ในบันทึก 1.0+
24h ตั้งค่าหมายเลขบันทึกแบบสุ่ม 1.0+
25h ตั้งค่าเวกเตอร์ขัดจังหวะ 1.0+
26h สร้างพีเอสพี 1.0+
27h บล็อกสุ่มอ่าน 1.0+
28h การเขียนบล็อกแบบสุ่ม 1.0+
29h แยกชื่อไฟล์ 1.0+
2Ah รับวันที่ 1.0+
2Bh ตั้งวันที่ 1.0+
2Ch ได้เวลา 1.0+
2Dh ตั้งเวลา 1.0+
2Eh ตั้งค่าสถานะการตรวจสอบ 1.0+
2Fh รับที่อยู่การถ่ายโอนดิสก์ 2.0+
30h รับเวอร์ชัน DOS 2.0+
31h ยุติและอยู่อาศัยต่อไป 2.0+
32h รับบล็อกพารามิเตอร์ดิสก์สำหรับไดรฟ์ที่ระบุ 2.0+
33h รับหรือตั้งค่า Ctrl-Break 2.0+
34h รับตัวชี้ธง InDOS 2.0+
35h รับเวกเตอร์ขัดจังหวะ 2.0+
36h รับพื้นที่ว่างในดิสก์ 2.0+
37h รับหรือตั้งค่าอักขระสวิตช์ 2.0+
38h รับหรือตั้งค่าข้อมูลประเทศ 2.0+
39h สร้างไดเรกทอรีย่อย 2.0+
3Ah ลบไดเรกทอรีย่อย 2.0+
3Bh เปลี่ยนไดเรกทอรีปัจจุบัน 2.0+
3Ch สร้างหรือตัดทอนไฟล์ 2.0+
3Dh เปิดไฟล์ 2.0+
3Eh ปิดไฟล์ 2.0+
3Fh อ่านไฟล์หรืออุปกรณ์ 2.0+
40h เขียนไฟล์หรืออุปกรณ์ 2.0+
41h ลบไฟล์ 2.0+
42h ย้ายตัวชี้ไฟล์ 2.0+
43h รับหรือตั้งค่าคุณสมบัติของไฟล์ 2.0+
44h การควบคุม I/O สำหรับอุปกรณ์ 2.0+
45h หมายเลขอ้างอิงที่ซ้ำกัน 2.0+
46h หมายเลขอ้างอิงการเปลี่ยนเส้นทาง 2.0+
47h รับไดเร็กทอรีปัจจุบัน 2.0+
48h จัดสรรหน่วยความจำ 2.0+
49h ปล่อยหน่วยความจำ 2.0+
4Ah จัดสรรหน่วยความจำใหม่ 2.0+
4Bh รันโปรแกรม 2.0+
4Ch สิ้นสุดด้วยรหัสส่งคืน 2.0+
4Dh รับโค้ดส่งคืนโปรแกรม 2.0+
4Eh ค้นหาไฟล์แรก 2.0+
4Fh ค้นหาไฟล์ถัดไป 2.0+
50h ตั้งค่า PSP ปัจจุบัน 2.0+
51h รับ PSP ปัจจุบัน 2.0+
52h รับตัวชี้ภายใน DOS (SYSVARS) 2.0+
53h สร้างบล็อกพารามิเตอร์ดิสก์ 2.0+
54h รับธงยืนยัน 2.0+
55h สร้างโปรแกรม PSP 2.0+
56h เปลี่ยนชื่อไฟล์ 2.0+
57h รับหรือตั้งค่าวันที่และเวลาของไฟล์ 2.0+
58h รับหรือกำหนดกลยุทธ์การจัดสรร 2.11+
59h รับข้อมูลข้อผิดพลาดเพิ่มเติม 3.0+
5Ah สร้างไฟล์ที่ไม่ซ้ำใคร 3.0+
5Bh สร้างไฟล์ใหม่ 3.0+
5Ch ล็อคหรือปลดล็อคไฟล์ 3.0+
5Dh ฟังก์ชั่นการแชร์ไฟล์ 3.0+
5Eh ฟังก์ชั่นเครือข่าย 3.0+
5Fh ฟังก์ชั่นการเปลี่ยนเส้นทางเครือข่าย 3.0+
60h รับรองชื่อไฟล์ 3.0+
61h ที่สงวนไว้ 3.0+
62h รับ PSP ปัจจุบัน 3.0+
63h รับตัวชี้ตารางไบต์นำ DBCS 3.0+
64h ตั้งค่าการรอแฟล็กเหตุการณ์ภายนอก 3.2+
65h รับข้อมูลประเทศเพิ่มเติม 3.3+
66h รับหรือตั้งค่าโค้ดเพจ 3.3+
67h ตั้งค่าจำนวนแฮนเดิล 3.3+
68h คอมมิตไฟล์ 3.3+
69h รับหรือตั้งค่ารหัสสื่อ 4.0+
6Ah คอมมิตไฟล์ 4.0+
6Bh ที่สงวนไว้ 4.0+
6Ch ขยายการเปิด/สร้างไฟล์ 4.0+

ระบบปฏิบัติการที่รองรับระบบเนทิฟ

ระบบปฏิบัติการที่มีเลเยอร์การจำลอง DOS

  • CP/M-86 (3.1 เท่านั้น) พร้อมPCMODE – ระบบปฏิบัติการที่ใช้ Digital Research CP/M-86 พร้อมโปรแกรมจำลอง PC DOS ที่เป็นอุปกรณ์เสริม
  • DOS พร้อมกัน – กลุ่ม CDOS การวิจัยดิจิทัลพร้อมโปรแกรมจำลอง PC DOS ในตัว
  • DOS Plus – เวอร์ชันผู้ใช้เดี่ยวแบบแยกส่วนของ Concurrent PC DOS 4.1–5.0
  • DOS ที่มีผู้ใช้หลายราย – กลุ่ม Digital Research/Novell MDOS รวมถึงDatapac System Manager , IMS REAL/32ฯลฯ
  • OS/2 (2.x และใหม่กว่า) – ระบบปฏิบัติการ IBM ที่ใช้ MS-DOS 5.0 ที่ได้รับอนุญาตเต็มรูปแบบในเครื่องเสมือน
  • Windows NT (ทุกเวอร์ชันยกเว้นรุ่น 64 บิตและรุ่น ARM 32 บิต)

อีมูเลเตอร์อื่นๆ

ดูสิ่งนี้ด้วย

อ้างอิง

  1. เรย์ ดันแคน (1988) การเขียนโปรแกรม MS-DOS ขั้นสูง: คู่มือ Microsoft สำหรับภาษา Assembly และโปรแกรมเมอร์ C สำนักพิมพ์ไมโครซอฟต์ไอเอสบีเอ็น 0914845772-

อ่านเพิ่มเติม

  • อัลเลน, พอล ; เกตส์, บิล ; คิง, เอเดรียน; ลาร์สัน, คริส; เลทวิน, กอร์ดอน ; โอ' เรียร์, บ๊อบ ; แพตเตอร์สัน, ทิม ; ปีเตอร์ส, คริส; ฟิลลิปส์, บรูซ; เรย์โนลด์ส, แอรอน ; สติลเมกเกอร์, เบตตี้; ซบิคอฟสกี้, มาร์ก (1986) "ที่ปรึกษาทางเทคนิค". MS-DOS (เวอร์ชัน 1.0-3.2) สารานุกรมอ้างอิงทางเทคนิค โดย บอร์นสไตน์, ฮาวเวิร์ด; เบรเดโฮฟต์, ลอว์เรนซ์; ดันแคน, เรย์; มอร์ริส, แครอล; โรส, เดวิด; โซชา, จอห์น ; ทอมลิน, จิม; เวียน, แคธลีน; วูลเวอร์ตัน, แวน. เบลีย์, จิม; เพรปเปอร์เนา, แบร์รี่; บีสัน, แพม; ลูอิส, แอนเดรีย; ริกมีร์, เดวิด (บรรณาธิการ). ไลบรารีอ้างอิงของ Microsoft ฉบับที่ 1 (ฉบับเดิมที่ถูกถอนออก) เรดมอนด์ วอชิงตัน สหรัฐอเมริกา: Microsoft Press ไอเอสบีเอ็น 0-914845-69-1- ลคซีเอ็น  86-8640 โอซีแอลซี  635600205.(xvii+1,053 หน้า; 29 ซม.) (หมายเหตุ ฉบับดั้งเดิมนี้มีผังงานการทำงานภายในของระบบ Microsoft ถอนตัวออกก่อนที่จะเผยแพร่จำนวนมากในปี 1986 เนื่องจากมีข้อผิดพลาดทางข้อเท็จจริงมากมาย เช่นเดียวกับข้อมูลลับบางอย่างที่ควร ยังไม่ได้รับการตีพิมพ์ มีสำเนาที่พิมพ์ออกมาเพียงไม่กี่ฉบับ และถูกแทนที่ด้วยฉบับปรับปรุงใหม่ทั้งหมดในปี พ.ศ. 2531
  • ซบิโควสกี้, มาร์ก ; อัลเลน, พอล ; บอลเมอร์, สตีฟ ; บอร์แมน, รูเบน; บอร์แมน, ร็อบ; บัตเลอร์, จอห์น; แคร์โรลล์, ชัค; แชมเบอร์เลน, มาร์ก; เชล, เดวิด; โคลลี, ไมค์; คอร์ทนีย์, ไมค์; ดรายฟูส, ไมค์; ดันแคน, ราเชล; เอคฮาร์ด, เคิร์ต; อีแวนส์, เอริค; ชาวนา ริก; เกตส์, บิล ; เกียร์รี่, ไมเคิล; กริฟฟิน, บ็อบ; โฮการ์ธ, ดั๊ก; จอห์นสัน, เจมส์ ดับเบิลยู.; เคอร์มาอานี, คาเมล; คิง, เอเดรียน; โคช, รีด; ลันดอฟสกี้, เจมส์; ลาร์สัน, คริส; เลนนอน, โทมัส; ลิปกี้, แดน; แมคโดนัลด์, มาร์ก ; แม็คคินนีย์, บรูซ; มาร์ติน, ปาสคาล; เมเธอร์ส, เอสเทล; แมทธิวส์, บ๊อบ; เมลิน, เดวิด; ผสานไทม์, ชาร์ลส์; เนวิน, แรนดี้; นีเวลล์, แดน; นีเวลล์, ทานี่; นอร์ริส, เดวิด; โอเลียรี, ไมค์; โอ' เรียร์, บ๊อบ ; โอลส์สัน, ไมค์; ออสเตอร์แมน, แลร์รี; ออสตลิง, ริดจ์; ปาย, สุนิล; แพตเตอร์สัน, ทิม ; เปเรซ, แกรี่; ปีเตอร์ส, คริส; เพตโซลด์, ชาร์ลส์ ; พอลล็อค, จอห์น; เรย์โนลด์ส, แอรอน ; รูบิน, ดาร์ริล; ไรอัน, ราล์ฟ; ชูลไมสเตอร์ส, คาร์ล; ชาห์ ราเจน; ชอว์, แบร์รี่; สั้น แอนโทนี่; สลิฟกา, เบน; ยิ้ม, จอน; สติลเมกเกอร์, เบตตี้; สต็อดดาร์ด, จอห์น; ทิลแมน, เดนนิส; วิทเทน, เกร็ก; ยอนต์, นาตาลี; เซค, สตีฟ (1988) "ที่ปรึกษาทางเทคนิค". สารานุกรม MS-DOS: เวอร์ชัน 1.0 ถึง 3.2 โดย ดันแคน, เรย์; บอสต์วิค, สตีฟ; เบอร์กอยน์, คีธ; ไบเยอร์ส, โรเบิร์ต เอ.; โฮแกน, ทอม; ไคล์, จิม; เลทวิน, กอร์ดอน ; เพตโซลด์, ชาร์ลส์ ; ราบิโนวิทซ์, ชิป; ทอมลิน, จิม; วิลตัน, ริชาร์ด; วูลเวอร์ตัน, แวน; หว่อง, วิลเลียม; Woodcock, JoAnne (ปรับปรุงใหม่ทั้งหมด) เรดมอนด์ วอชิงตัน สหรัฐอเมริกา: Microsoft Press ไอเอสบีเอ็น 1-55615-049-0- ลคซีเอ็น  87-21452. โอซีแอลซี  16581341.(xix+1570 หน้า; 26 ซม.) (หมายเหตุ ฉบับนี้จัดพิมพ์ในปี พ.ศ. 2531 หลังจากมีการปรับปรุงฉบับพิมพ์ครั้งแรกเมื่อปี พ.ศ. 2529 ที่ถูกเพิกถอนออกไปโดยทีมผู้เขียนอื่น [2])
  • นอร์ตัน, ปีเตอร์; วิลตัน, ริชาร์ด (1987) คู่มือโปรแกรมเมอร์ Peter Norton ใหม่สำหรับ IBM PC และ PS/ 2 สำนักพิมพ์ไมโครซอฟต์ไอเอสบีเอ็น 1-55615-131-4-
  • เรย์ ดันแคน (1988) การเขียนโปรแกรม MS-DOS ขั้นสูง: คู่มือ Microsoft สำหรับภาษา Assembly และโปรแกรมเมอร์ C สำนักพิมพ์ไมโครซอฟต์ไอเอสบีเอ็น 0914845772-
  • โฮแกน, ธอม (1991) แหล่งพีซีของโปรแกรมเมอร์สำนักพิมพ์ไมโครซอฟต์ไอเอสบีเอ็น 155615321X-
  • ข้อมูลอ้างอิงของโปรแกรมเมอร์ MS-DOS - ข้อมูลอ้างอิงทางเทคนิคอย่างเป็นทางการของ MS- DOS สำนักพิมพ์ไมโครซอฟต์ 2536. ไอเอสบีเอ็น 1556155468-
  • อัพเดตด้านเทคนิคของ IBM PC DOS 7
  • ชุดข้อมูลอ้างอิงของนักพัฒนา OpenDOS — คู่มือโปรแกรมเมอร์ OpenDOS — คู่มือระบบและโปรแกรมเมอร์Caldera, Inc.สิงหาคม 1997 หมายเลขชิ้นส่วน Caldera 200-DOPG-003 เก็บถาวรจากต้นฉบับเมื่อ 2017-10-07 . สืบค้นเมื่อ 28-06-2555 .(จัดพิมพ์ในสหราชอาณาจักร)

ลิงค์ภายนอก

  • รายการขัดจังหวะ x86 (หรือที่รู้จักในชื่อ RBIL, รายการขัดจังหวะของ Ralf Brown )
  • ctyme.com - INT โทรตามฟังก์ชัน
  • wustl.edu - คำอธิบายบริการ MS-DOS
  • MS-DOS ขัดจังหวะ
Retrieved from "https://en.wikipedia.org/w/index.php?title=DOS_API&oldid=1176092263"