'''바이오스 인터럽트 호출'''()은 도스용 프로그램과, 부트 로더와 같은 일부 기타 소프트웨어가 IBM PC 호환기종의 컴퓨터에 위치한 바이오스의 기능을 불러내는데 이용하는 방식이다. 일부 운영 체제 또한 초기 시동 단계에서 바이오스를 이용하여 하드웨어 자원을 탐지하고 초기화할 있다. == 인터럽트 호출 == 인터럽트는 INT x86 어셈블리어 명령을 이용하여 호출할 있다. 이를테면 바이오스 인터럽트 0x10을 이용하여 문자열을 화면에 출력하려면 다음의 x86 어셈블리어 명령을 실행하면 된다: mov ah, 0x0e mov al, '!' int 0x10 == 인터럽트 테이블 == 일반적인 바이오스 인터럽트 목록은 아래와 같다. 일부 바이오스(특히 오래된 것들)는 아래의 모든 인터럽트 클래스를 갖추고 있지는 않다. 인터럽트 벡터 설명 00h CPU: 0으로 나누기를 시도한 또는 몫이 떨어지지 않을 실행된다 01h CPU: 추적 플래그가 설정되어 있는 동안 모든 명령을 마친 실행된다 02h CPU: 메모리 오류 등을 위해 POST 등이 사용하는 interrupt) 03h CPU: 가장 낮은 비예비 인터럽트. 디버깅에 예외적으로 사용되며 INT 03 핸들러는 디버깅 프로그램이 추가함 04h CPU: 숫자 오버플로. 오버플로 플래그가 설정될 INTO 명령에 의해 발생. 05h Shift-Print screen이 눌릴 실행. (BOUND 함수가 바운드 실패를 감지할 때에도 발생) 06h CPU: 정의되지 않은 Opcode (잘못된 함수) 예외가 발생할 호출함. 일반적으로 운영 체제가 설치. 07h CPU: 부동소수점 함수를 실행하고 수치 보조 프로세서의 이용이 불가능할 호출함 08h IRQ0: 시스템 타이밍 구성 요소가 추가함; PIT에 의해 초당 18.2번(55 ms) 호출함 09h IRQ1: 모든 키가 눌리고 뗐을 호출함 (키가 눌리고 있는 동안도 포함) 0Bh IRQ3: 필요시 직렬 포트 2, (COM2/4)가 호출함 0Ch IRQ4: 필요시 직렬 포트 1, (COM1/3)이 호출함 0Dh IRQ5: 필요시 하드 디스크 컨트롤러 (PC/XT) 또는 2차 병렬 포트 LPT2 (AT)가 호출함 0Eh IRQ6: 필요시 플로피 디스크 컨트롤러가 호출함 0Fh IRQ7: 필요시 1차 병렬 포트 LPT1 (프린터)가 호출함 10h 비디오 서비스 AH 설명 00h 비디오 모드 설정 01h 커서 모양 설정 02h 커서 위치 설정 03h 커서 위치 모양 가져오기 04h 라이트 위치 가져오기 05h 디스플레이 페이지 설정 06h 지우기/스크롤 스크린 07h 지우기/스크롤 스크린 다운 08h 문자열 커서 특성 읽기 09h 문자열 커서 특성 쓰기 0Ah 커서 문자열 쓰기 0Bh 커서 테두리 설정 0Ch 그래픽 픽셀 쓰기 0Dh 그래픽 픽셀 읽기 0Eh TTY 모드에서 문자열 쓰기 0Fh 비디오 모드 가져오기 10h 팔레트 레지스터 설정 (EGA, VGA, SVGA) 11h 문자 발생기 (EGA, VGA, SVGA) 12h 함수 대안 선택 (EGA, VGA, SVGA) 13h 문자열 쓰기 1Ah 디스플레이 결합 코드 가져오기 또는 설정 (VGA, SVGA) 1Bh 기능 정보 가져오기 (VGA, SVGA) 1Ch 비디오 상태 저장 또는 복원 (VGA, SVGA) 4Fh VESA 바이오스 확장 함수 (SVGA) 11h 장비 목록 반환 12h 기본 메모리 크기 반환 13h 낮은 수준의 디스크 서비스 AH 설명 00h 디스크 드라이브 초기화 01h 드라이브 상태 검사 02h 섹터 읽기 03h 섹터 쓰기 04h 섹터 유효 여부 확인 05h 트랙 포맷 08h 드라이브 변수 가져오기 09h 고정 드라이브 변수 초기화 0Ch 지정된 트랙으로 찾기 0Dh 고정 디스크 컨트롤러 초기화 15h 드라이브 종류 가져오기 16h 플로피 드라이브 미디어 변경 상태 가져오기 17h 디스크 종류 설정 18h 플로피 드라이브 미디어 종류 설정 41h 확장 디스크 드라이브 (EDO) 설치 검사 42h 섹터 확장 읽기 43h 섹터 확장 쓰기 44h 섹터 확장 유효 여부 확인 45h 드라이브 잠금/잠금 해제 46h 미디어 꺼내기 47h 확장 찾기 48h 드라이브 변수 확장 가져오기 49h 미디어 변경 상태 확장 가져오기 4Eh 하드웨어 구성 확장 설정 14h 직렬 포트 서비스 AH 설명 00h 직렬 포트 초기화 01h 문자열 전송 02h 문자열 수신 03h 상태 15h 기타 시스템 서비스 AH AL 설명 00h 카세트 드라이브 모터 켜기 01h 카세트 드라이브 모터 끄기 02h 카세트로부터 데이터 블록 읽기 03h 카세트에 데이터 블록 쓰기 4Fh 키보드 가로채기 83h 이벤트 대기 84h 조이스틱 읽기 85h Sysreq 호출 86h 대기 87h 블록 이동 88h 확장 메모리 크기 가져오기 89h 보호 모드로 전환 C0h 시스템 변수 가져오기 C1h 확장 바이오스 데이터 영역 세그먼트 가져오기 C2h 포인팅 장치 기능 C3h 감시 타이머 기능 PS/2 시스템 전용 C4h 프로그래밍 가능한 옵션 선택 MCA 버스 PS/2 시스템 전용 D8h EISA 시스템 기능 EISA 버스 시스템 전용 E8h 01h 확장 메모리 크기 가져오기 (1994년 이후 새로운 기능). 64 Mb 이상의 메모리 크기에 대한 결과를 제공. E8h 20h 쿼리 시스템 주소 맵. 16h 키보드 서비스 AH 설명 00h 문자열 읽기 01h 입력 상태 읽기 02h 키보드 Shift 상태 읽기 05h 키보드 버퍼에 눌림 저장 10h 문자열 확장 읽기 11h 입력 상태 확장 읽기 12h 키보드 Shift 상태 확장 읽기 17h 프린터 서비스 AH 설명 00h 프린터에 문자열 인쇄 01h 프린터 초기화 02h 프린터 상태 검사 18h 카세트 BASIC 실행: 실제 IBM 컴퓨터에는 시동 실패 이벤트의 해당 루틴이 해석, 실행을 목적으로 ROM에 BASIC이 포함되어 있다. (BIOS가 호출) 19h POST 이후 인터럽트는 운영 체제를 불러오기 위해 바이오스가 사용함 1Ah 실시간 시계 서비스 AH 설명 00h RTC 읽기 01h RTC 설정 02h RTC 시간 읽기 03h RTC 시간 설정 04h RTC 날짜 읽기 05h RTC 날짜 설정 06h RTC 알람 설정 07h RTC 알람 초기화 1Ah PCI 서비스 PCI 2.0 이상을 지원하는 BIOS가 추가 AX 설명 B101h PCI 설치 검사 B102h PCI 장치 찾기 B103h PCI 클래스 코드 찾기 B106h PCI 버스 관련 기능 B108h 구성 Byte 읽기 B109h 구성 Word 읽기 B10Ah 구성 Dword 읽기 B10Bh 구성 Byte 쓰기 B10Ch 구성 Word 쓰기 B10Dh 구성 Dword 쓰기 B10Eh IRQ 루틴 정보 가져오기 B10Fh PCI IRQ 설정 1Bh Ctrl-Break 핸들러 Ctrl-Break가 눌릴 INT 09가 호출 1Ch 타이머 핸들러 INT 08가 호출 1Dh 호출되지 않음. VTP(비디오 변수 테이블) 포인터로서 비디오 모드의 데이터를 포함 1Eh 호출되지 않음. DPT (디스켓 변수 테이블) 포인터로서 디스켓 드라이브에 관한 다양한 정보 포함 1Fh 호출되지 않음. VGCT(비디오 그래픽 문자 테이블) 포인터로서 아스키 문자열 80h FFh의 데이터 포함 41h 주소 포인터: FDPT 고정 디스크 변수 테이블 (1차 하드 드라이브) 46h 주소 포인터: FDPT 고정 디스크 변수 테이블 (2차 하드 드라이브) 4Ah 알람을 위해 RTC가 호출 70h IRQ8: RTC가 호출 74h IRQ12: 마우스가 호출 75h IRQ13: 산술 보조 프로세서가 호출 76h IRQ14: 1차 IDE 컨트롤러가 호출 77h IRQ15: 2차 IDE 컨트롤러가 호출 == 도스 == MS-DOS 시스템에서 IO.SYS는 플로피 디스크 변경 감지, 포맷 호출 추적, DMA 바운더리 오류 정정, 최초의 호출 이전 모델 코드 0xFC와 더불어 IBM의 ROM BIOS "01/10/84" 관련 문제 우회를 위해 INT 13을 처리한다. == 같이 보기 == 도스 인터럽트 호출 랄프 브라운의 인터럽트 리스트 == 참고 문헌 == The x86 Interrupt List (a.k.a. RBIL, Ralf Brown's Interrupt List) Embedded BIOS User’s Manual PhoenixBIOS 4.0 User's Manual HTML version of Ralf Brown Interrupt List ''IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference'', IBM, 1988, ''System BIOS for IBM PCs, Compatibles, and EISA Computers'', Phoenix Technologies, 1991, ''Programmer's Guide to the AMIBIOS'', American Megatrends, 1993, ''The Programmer's PC Sourcebook'' by Thom Hogan, Microsoft Press, 1991 분류:바이오스 분류:인터럽트