fbpx
维基百科

DOS API

DOS API最初是86-DOS中的应用程序接口(API),并也被MS-DOS/PC-DOS及其他DOS兼容操作系统使用。大多数对DOS API的调用是使用中斷21h(INT英语INT (x86 instruction) 21h)。在调用INT 21h时,在AH 寄存器中带有子函数号,其他寄存器中带有其他参数,从而调用各个DOS服务。DOS服务包括键盘输入、视频输入、磁盘文件访问、执行程序、内存分配及其他事务。在1980年代后期,围绕DOS保护模式接口英语DOS Protected Mode Interface(DPMI)的DOS扩展器允许程序在16位元或32位元的保护模式下运行,并仍可访问DOS API。

DOS API的历史 编辑

在86-DOS和MS-DOS 1.0中的原始DOS API在设计上与CP/M兼容。文件访问使用文件控制块英语file control block(FCB)。在MS-DOS 2.0中的DOS API大大扩展了数个Unix概念,包括使用文件描述符分层目录和设备I/O控制的文件访问。[1]DOS 3.1中添加了网络重定向器英语network redirector的支持。MS-DOS 3.31中,INT 25h/26h函数被增强以支持大于32MB的硬盘。MS-DOS 5添加了使用高端内存块英语upper memory blocks(UMB)的支持。在MS-DOS 5之后,连续、独立发布的DOS没有改变DOS API。

DOS API与Windows 编辑

Windows 9x,DOS通常作为引导加载程序加载受保护模式的操作系统和图形外壳。DOS通常从一个DOS虚拟机英语virtual DOS machine(VDM)访问,但也可以不加载Windows而直接启动到真实模式的MS-DOS 7.0。DOS API已增强国际化和长文件名支持,尽管长文件名支持仅在VDM中可用。随着Windows 95 OSR2,DOS被更新到7.1,添加了FAT32及对其DOS API的支持。Windows 98Windows Me也实现了MS-DOS 7.1 API,尽管Windows ME本身自称为MS-DOS 8.0。

Windows NT及基于它的系统(例如Windows XPWindows Vista)不是基于MS-DOS,但也可使用一个虛擬機器——NTVDM英语NTVDM处理DOS API。NTVDM将DOS程序在虚拟8086模式Intel 80386及更高处理器上可在保護模式下进行真實模式的仿真)模式下运行。NTVDM支持DOS 5.0 API。面向LinuxDOSEMU英语DOSEMU使用类似的方法。

DOS使用的中断向量 编辑

中断向量 描述 版本 备注
20h 终止程序并检查空白空间 1.0+ 在DOS内核中实现
21h Main DOS 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+ DOS 1.0中在COMMAND.COM中实现,DOS 2.0+中则在DOS内核
28h Idle callout 2.0+ 等待输入时由DOS内核调用
29h 快速控制台输出 2.0+ 由内置的控制台设备驱动程序或替换驱动程序(如ANSI.SYS)实现
2Ah 网络和关键部分 3.0+ 由DOS内核调用,与网络软件交互
2Bh 未使用
2Ch 未使用
2Dh 未使用
2Eh Reload transient 2.0+ 在COMMAND.COM中实现
2Fh Multiplex 3.0+ 在DOS内核和各种程序(PRINT、MSCDEX、DOSKEY、APPEND等)中实现,取决于子功能号码

DOS INT 21h服务 编辑

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 创建PSP 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 获取或设置ID 4.0+
6Ah 提交文件 4.0+
6Bh 保留 4.0+
6Ch 扩展的打开/创建文件 4.0+

支持MS-DOS API的操作系统 编辑

支持MS-DOS API的程序 编辑

  • Concurrent CP/M-86英语Concurrent CP/M-86(仅3.1)的PCMODE英语PCMODE – 基于CP/M-86的Digital Research操作系统,使用可选的PC DOS模拟器
  • Concurrent DOS英语Concurrent DOS – 内置PC DOS模拟器的Digital Research CDOS家族
  • DOS Plus英语DOS Plus – Concurrent PC DOS 4.1–5.0的一个简化的单用户变种
  • 多用户DOS英语Multiuser DOS – Digital Research/Novell MDOS家族,包含Datapac System Manager英语Datapac System ManagerIMS REAL/32英语IMS REAL/32等。
  • 用于Windows NTNTVDM.EXE英语NTVDM
  • 用于LinuxDOSEMU英语DOSEMU
  • DOSBox

参见 编辑

参考资料 编辑

  1. ^ Ray Duncan. Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. 1988. ISBN 0914845772. 
  • The x86 Interrupt List(页面存档备份,存于互联网档案馆) (a.k.a. RBIL, Ralf Brown's Interrupt List)
  • ctyme.com - INT Calls by function(页面存档备份,存于互联网档案馆
  • Microsoft MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS, Microsoft Press, 1993 ISBN 1556155468
  • The MS-DOS Encyclopedia, Microsoft Press, 1988, ISBN 1556151748
  • Ray Duncan. Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. 1988. ISBN 0914845772. 
  • The Programmer's PC Sourcebook by Thom Hogan, Microsoft Press, 1991 ISBN 155615321X
  • The New Peter Norton Programmer's Guide to the IBM PC & PS/2 by Peter Norton and Richard Wilton, Microsoft Press, 1987 ISBN 1-55615-131-4.
  • Caldera, Inc. (1997). OpenDOS Developer's Reference Series — OpenDOS Programmer's Guide — System and Programmer's Guide. Printed in the UK, August 1997. Caldera Part No. 200-DOPG-003 ().

此條目已列出參考文獻, 但文內引註不足, 部分內容的來源仍然不明, 2017年4月, 请加上合适的文內引註来改善此条目, 此條目翻譯自其他語言維基百科, 需要相關領域的編者協助校對翻譯, 如果您精通本領域, 又能清楚地將來源語言翻譯為中文, 歡迎您協助校訂翻譯, 原文参见维基数据, 最初是86, dos中的应用程序接口, 并也被ms, dos及其他dos兼容操作系统使用, 大多数对的调用是使用中斷21h, 英语, instruction, 在调用int, 21h时, 在ah, 寄存器中带有子函数号, 其他寄存器中带. 此條目已列出參考文獻 但文內引註不足 部分內容的來源仍然不明 2017年4月 请加上合适的文內引註来改善此条目 此條目翻譯自其他語言維基百科 需要相關領域的編者協助校對翻譯 如果您精通本領域 又能清楚地將來源語言翻譯為中文 歡迎您協助校訂翻譯 原文参见维基数据 DOS API最初是86 DOS中的应用程序接口 API 并也被MS DOS PC DOS及其他DOS兼容操作系统使用 大多数对DOS API的调用是使用中斷21h INT 英语 INT x86 instruction 21h 在调用INT 21h时 在AH 寄存器中带有子函数号 其他寄存器中带有其他参数 从而调用各个DOS服务 DOS服务包括键盘输入 视频输入 磁盘文件访问 执行程序 内存分配及其他事务 在1980年代后期 围绕DOS保护模式接口 英语 DOS Protected Mode Interface DPMI 的DOS扩展器允许程序在16位元或32位元的保护模式下运行 并仍可访问DOS API 目录 1 DOS API的历史 2 DOS API与Windows 3 DOS使用的中断向量 4 DOS INT 21h服务 5 支持MS DOS API的操作系统 6 支持MS DOS API的程序 7 参见 8 参考资料DOS API的历史 编辑在86 DOS和MS DOS 1 0中的原始DOS API在设计上与CP M兼容 文件访问使用文件控制块 英语 file control block FCB 在MS DOS 2 0中的DOS API大大扩展了数个Unix概念 包括使用文件描述符 分层目录和设备I O控制的文件访问 1 DOS 3 1中添加了网络重定向器 英语 network redirector 的支持 MS DOS 3 31中 INT 25h 26h函数被增强以支持大于32MB的硬盘 MS DOS 5添加了使用高端内存块 英语 upper memory blocks UMB 的支持 在MS DOS 5之后 连续 独立发布的DOS没有改变DOS API DOS API与Windows 编辑在Windows 9x DOS通常作为引导加载程序加载受保护模式的操作系统和图形外壳 DOS通常从一个DOS虚拟机 英语 virtual DOS machine VDM 访问 但也可以不加载Windows而直接启动到真实模式的MS DOS 7 0 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 英语 NTVDM 处理DOS API NTVDM将DOS程序在虚拟8086模式 Intel 80386及更高处理器上可在保護模式下进行真實模式的仿真 模式下运行 NTVDM支持DOS 5 0 API 面向Linux的DOSEMU 英语 DOSEMU 使用类似的方法 DOS使用的中断向量 编辑中断向量 描述 版本 备注20h 终止程序并检查空白空间 1 0 在DOS内核中实现21h Main DOS 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 DOS 1 0中在COMMAND COM中实现 DOS 2 0 中则在DOS内核28h Idle callout 2 0 等待输入时由DOS内核调用29h 快速控制台输出 2 0 由内置的控制台设备驱动程序或替换驱动程序 如ANSI SYS 实现2Ah 网络和关键部分 3 0 由DOS内核调用 与网络软件交互2Bh 未使用2Ch 未使用2Dh 未使用2Eh Reload transient 2 0 在COMMAND COM中实现2Fh Multiplex 3 0 在DOS内核和各种程序 PRINT MSCDEX DOSKEY APPEND等 中实现 取决于子功能号码DOS INT 21h服务 编辑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 创建PSP 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 获取或设置ID 4 0 6Ah 提交文件 4 0 6Bh 保留 4 0 6Ch 扩展的打开 创建文件 4 0 支持MS DOS API的操作系统 编辑MS DOS 最广泛的化身 PC DOS MS DOS的IBM OEM版本 DR DOS 数字研究DOS系列 包括DR DOS DR DOS DR DOS等 Template Needfix PTS DOS 英语 PTS DOS PhysTechSoft和Paragon DOS克隆 包括S DOS 英语 S DOS ROM DOS 英语 ROM DOS Datalight ROM DOS版本 FreeDOS 自由 开源的DOS克隆 ReactOS IA 32和X86 64版本 Windows 95 包含MS DOS 7 0 Windows 98 包含MS DOS 7 1 Windows 98 包含MS DOS 7 1 Windows Me 包含MS DOS 8 0 Windows NT 64位版本外的所有版本 支持MS DOS API的程序 编辑Concurrent CP M 86 英语 Concurrent CP M 86 仅3 1 的PCMODE 英语 PCMODE 基于CP M 86的Digital Research操作系统 使用可选的PC DOS模拟器 Concurrent DOS 英语 Concurrent DOS 内置PC DOS模拟器的Digital Research CDOS家族 DOS Plus 英语 DOS Plus Concurrent PC DOS 4 1 5 0的一个简化的单用户变种 多用户DOS 英语 Multiuser DOS Digital Research Novell MDOS家族 包含Datapac System Manager 英语 Datapac System Manager IMS REAL 32 英语 IMS REAL 32 等 用于Windows NT的NTVDM EXE 英语 NTVDM 用于Linux的DOSEMU 英语 DOSEMU DOSBox参见 编辑BIOS中斷呼叫 Ralf Brown s Interrupt List 英语 Ralf Brown s Interrupt List DOS操作系统的比较 英语 Comparison of DOS operating systems DOS 4GW 英语 DOS 4GW DOS MZ可执行文件 COMMAND COM参考资料 编辑 Ray Duncan Advanced MS DOS Programming The Microsoft Guide for Assembly Language and C Programmers Microsoft Press 1988 ISBN 0914845772 The x86 Interrupt List 页面存档备份 存于互联网档案馆 a k a RBIL Ralf Brown s Interrupt List ctyme com INT Calls by function 页面存档备份 存于互联网档案馆 wustl edu Description of MS DOS services Microsoft MS DOS Programmer s Reference The Official Technical Reference to MS DOS Microsoft Press 1993 ISBN 1556155468 The MS DOS Encyclopedia Microsoft Press 1988 ISBN 1556151748 Ray Duncan Advanced MS DOS Programming The Microsoft Guide for Assembly Language and C Programmers Microsoft Press 1988 ISBN 0914845772 The Programmer s PC Sourcebook by Thom Hogan Microsoft Press 1991 ISBN 155615321X The New Peter Norton Programmer s Guide to the IBM PC amp PS 2 by Peter Norton and Richard Wilton Microsoft Press 1987 ISBN 1 55615 131 4 IBM PC DOS 7 Technical Update Caldera Inc 1997 OpenDOS Developer s Reference Series OpenDOS Programmer s Guide System and Programmer s Guide Printed in the UK August 1997 Caldera Part No 200 DOPG 003 1 取自 https zh wikipedia org w index php title DOS API amp oldid 63107568, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。