도스 API

DOS API

도스 API86-DOS에서 시작된 APIMS-DOS/PC DOS 및 기타 도스 호환 운영 체제에서 사용된다.DOS API에 대한 대부분의 통화는 소프트웨어 인터럽트 21h(INT 21h)를 사용하여 호출된다.AH 프로세서 레지스터의 하위 기능 번호와 다른 레지스터의 다른 파라미터로 INT 21h를 호출하면 다양한 DOS 서비스를 호출할 수 있다.여기에는 키보드 입력, 비디오 출력, 디스크 파일 액세스, 프로그램 실행, 메모리 할당 및 기타 다양한 활동이 포함된다.1980년대 후반, DOS 확장자는 DOS 보호 모드 인터페이스(DPMI)와 함께 프로그램을 16비트 또는 32비트 보호 모드로 실행할 수 있도록 허용하며, 여전히 DOS API에 대한 액세스 권한을 가지고 있다.

도스 API의 이력

86-DOS와 MS-DOS 1.0의 원래 DOS API는 CP/M과 기능적으로 호환되도록 설계되었다.파일 제어 블록(FCB)을 사용하여 파일에 액세스했다.DOS API는 파일 핸들이용한 파일 액세스, 계층적 디렉토리, 디바이스 I/O 제어 등 몇 가지 Unix 개념으로 MS-DOS 2.0에서 크게 확장되었다.[1]DOS 3.1에서는 네트워크 리디렉터 지원이 추가되었다.MS-DOS 3.31에서는 32MB 이상의 하드 디스크를 지원하도록 INT 25h/26h 기능이 향상되었다. MS-DOS 5는 상위 메모리 블록(UMB) 사용을 위한 지원을 추가했다.MS-DOS 5 이후, DOS의 연속적인 독립형 릴리스에 대해 DOS API는 변경되지 않았다.

DOS API 및 Windows

윈도우즈 9x에서 DOS는 보호 모드 시스템과 그래픽 쉘을 로드했다.DOS는 보통 VDM(가상 DOS 머신)에서 접속했지만 윈도우를 로드하지 않고도 리얼 모드 MS-DOS 7.0으로 직접 부팅이 가능했다.DOS API는 VDM에서만 긴 파일 이름 지원이 가능했지만 향상된 국제화 지원과 긴 파일 이름 지원으로 확장되었다.윈도 95 OSR2로 DOS를 7.1로 업데이트하여 FAT32 지원을 추가하였고, 이를 지원하기 위해 DOS API에 기능을 추가하였다.윈도 98윈도 ME도 MS-DOS 8.0으로 보고하지만 MS-DOS 7.1 API를 구현한다.

윈도 NT와 그것을 기반으로 하는 시스템(예: 윈도 XP윈도 비스타)은 MS-DOS를 기반으로 하지 않고 가상 머신NTVDM을 사용하여 도스 API를 처리한다.NTVDM은 DOS 프로그램을 가상 8086 모드(80386 이상의 프로세서에서 사용할 수 있는 보호 모드 내의 실제 모드의 에뮬레이션)에서 실행함으로써 작동한다.NTVDM은 DOS 5.0 API를 지원한다.Linux용 DOVEMU도 이와 유사한 접근법을 사용한다.

DOS에서 사용하는 인터럽트 벡터

다음은 프로그램이 DOS API 기능을 호출하기 위해 사용하는 인터럽트 벡터 목록이다.

인터럽트 벡터 설명 버전 메모들
20h 프로그램 종료 1.0+ DOS 커널에 구현됨
21h 메인 DOS API 1.0+ DOS 커널에 구현됨
22h 프로그램 종료 주소 1.0+ 호출 프로그램에서 주소 반환
23h 컨트롤-C 핸들러 주소 1.0+ 기본 처리기는 명령 셸(일반적으로 Command)에 있다.commodore).
24h 심각한 오류 처리기 주소 1.0+ 기본 처리기는 명령 셸(일반적으로 Command)에 있다.commodore).
25h 절대 디스크 읽기 1.0+ DOS 커널에 구현, DOS 3.31에 개선되어 최대 2GB 파티션을 지원
26h 절대 디스크 쓰기 1.0+ DOS 커널에 구현, DOS 3.31에 개선되어 최대 2GB 파티션을 지원
27h 종료 및 상주 유지 1.0+ COMMAND에 구현됨.DOS 1.0의 COM, DOS 2.0 이상의 DOS 커널
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, DOSKE, ADD 등)에서 구현

DOS INT 21h 서비스

다음은 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 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+

기본 지원이 포함된 운영 체제

DOS 에뮬레이션 계층이 있는 운영 체제

기타 에뮬레이터

참고 항목

참조

  1. ^ Ray Duncan (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. ISBN 0914845772.

추가 읽기

  • 앨런, 폴, 게이츠, 빌, 왕, 아드리안, 라슨, 크리스,. Letwin, 고든, O'Rear, 밥, 패터슨, 팀, 피터스, 크리스, 필립스, 브루스, 레이놀즈, 아론, Stillmaker, 베티, Zbikowski, 마크(1986년)."기술 고문".MS-DOS(버전 1.0-3.2)기술 참조에는 백과 사전.Bornstein, 하워드, Bredehoeft, 로렌스, 던컨, 레이, 모리스, 캐롤, 로즈, 데이비드, 소하, 존은 톰린, 짐, 비언. 미국, 캐슬린, 울버 턴, 반까지.Beley, 짐, Preppernau, 배리, 비슨, 팸, 루이스, 안드레아. Rygmyr, 데이비드(eds.).마이크로 소프트 참조 도서관이 있습니다.제1권(원래는 교육 내향적이었습니다.).워싱턴 주, 미국:MicrosoftPress.아이 에스비엔 0-914845-69-1. LCCN 86-8640.온라인 컴퓨터 도서관 센터 635600205.(xvii+1053 페이지, 29))(NB다.본 원판에는 시스템 내부 작업 흐름도가 수록되어 있다.마이크로소프트에 의해 1986년 대량 배포 전에 철회되었는데, 그것은 출판되어서는 안 될 일부 기밀 정보뿐만 아니라 많은 사실상의 오류들을 포함하고 있었기 때문이다.인쇄본이 거의 남아 있지 않았다.1988년에 전면 재작업된 판본으로 대체되었다. [1]
  • Zbikowski, 마크, 앨런, 폴, 발머, 스티브, 보먼 판사, 르우벤, 보먼 판사, 롭, 버틀러, 존은 캐롤, 척이며, 마크, 첼, 데이비드. Colee, 마이크, 코트니, 마이크;Dryfoos, 마이크, 던컨, 레이첼, Eckhardt, 커트, 에번스, 에릭, 농부, 릭, 게이츠, 빌, 기어리, 마이클 그리핀, 밥. 호가스, 더그. 존슨, 제임스 W.;Kermaani, Kaamel, 왕, Adrian은;. 코흐, 리드, 란도브스키, 제임스 라슨, 크리스, 레넌, 토머스, Lipkie, 댄, 맥도날드, 마크, 맥키니, 브루스, 마틴, 파스칼, Mathers가, 에스텔. Matthews, 밥, Melin, 데이비드. Mergentime, Charles:네빈, 랜디, 뉴웰, 댄, 뉴웰, 타니, 노리스, 데이비드, 있을 때 오리어리, 마이크;O'Rear, 밥, 올손, 마이크;Osterman, 래리, Ostling, 리지, 빠이, 선일. 패터슨, 팀;P.에레즈, 게리, 피터스, 크리스, 페쫄트, Charles:폴록, 존은 레이놀즈, 아론, 루빈은 대릴, 라이언, 랠프, Schulmeisters, 칼, 샤, Rajen, 쇼, 배리, 쇼트, 앤서니, Slivka, 벤, Smirl, 존, Stillmaker, 베티, 스토다드, 존은 틸먼, 데니스..휘튼, 그렉, Yount, 나탈리. Zeck, 스티브(1988년)."기술 고문".그 MS-DOS백과 사전:버전 1.03.2를 통해.덩컨, 레이, 보츠윅, 스티브, 버고인, 키스, 바이어스, 로버트 A.;까지.호건, 톰, 카일, 짐,. Letwin, 고든, 페쫄트, Charles:라비, 칩, 톰린, 짐, 윌턴 양탄자, 리처드, 울버 턴, 반, 웡은 윌리엄;우드콕. 도요목 도요과의 조류., JoAnne(완전히 교육 reworked.).워싱턴 주, 미국:MicrosoftPress.아이 에스비엔 1-55615-049-0. LCCN 87-21452.OCLC 16581341.(xix+1570 페이지, 26))(NB다.이 판은 다른 작가 팀에 의해 철회된 1986년 초판을 광범위하게 재작업한 후 1988년에 출판되었다.[2])
  • IBM PC & PS/2에 대한 피터 노튼과 마이크로소프트 프레스 리처드 윌튼, 1987년 ISBN 1-55615-131-4의 새로운 피터 노턴 프로그래머 설명서.
  • Ray Duncan (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. ISBN 0914845772.
  • Microsoft Press, Thom Hogan의 Programmer's PC 소스북, 1991 ISBN 155615321X
  • Microsoft MS-DOS Programmer's Reference - MS-DOS에 대한 공식 기술 참조, Microsoft Press, 1993 ISBN 1556155468
  • IBM PC DOS 7 기술 업데이트
  • OpenDOS Developer's Reference Series — OpenDOS Programmer's Guide — System and Programmer's Guide. Caldera, Inc. August 1997. Caldera Part No. 200-DOPG-003. Archived from the original on 2017-10-07. Retrieved 2012-06-28. (영국에서 인쇄됨)

외부 링크