본 페이지에서는 최신 글 3개만 보여주니, 카테고리를 참고하기 바랍니다.
- MINT64 OS 개발 15장. 콘솔 셸 Ⅰ. 콘솔 입출력 처리 1. 콘솔 자료구조 생성과 printf( ) 함수 구현 콘솔 자료구조와 매크로 // 비디오 메모리의 속성(Attribute) 값 설정 #define CONSOLE_BACKGROUND_BLACK 0x00 #define CONSOLE_BACKGROUND_BLUE 0x10 #define CONSOLE_BACKGROUND_GREEN 0x20 #define CONSOLE_BACKGROUND_CYAN 0x30 #define CONSOLE_BACKGROUND_RED 0x40 #define CONSOLE_BACKGROUND_MAGENTA 0x50 #define CONSOLE_BACKGROUND_BROWN 0x60 #define CONSOLE_BACKGROUND_WHITE 0x70 #define ..
- MINT64 OS 개발 14장. 키보드 디바이스 드라이버 업그레이드 Ⅰ. 인터럽트 핸들러와 큐 1. 범용 큐 구현과 사용 방법 큐에 대한 정보를 관리하는 자료구조 bLastOperationPut : 삽입 위치와 제거 위치가 같아지는 경우를 처리하기 위한 필드 (삽입 시 TRUE, 제거 시 False로 설정된다.) typef struck kQueueManagerStruct { // 큐를 구성하는 데이터 하나의 크기와 최대 개수 int iDataSize; int iMaxDataCount; // 큐 버퍼의 포인트와 삽입/제거 인덱스 void pvQueueArray; int iPutIndex; int iGetIndex; // 큐에 수행된 마지막 명령이 삽입인지를 저장 // 큐의 버퍼가 비어있는지, 가득 찼는지 확인하는 용도 BOOL bLastOperationPut; } QUEU..
- MINT64 OS 개발 13장. PIC 컨트롤러와 인터럽트 핸들러 이용해, 인터럽트 처리 Ⅰ. PIC 컨트롤러 제어 1. PIC 컨트롤러 초기화 마스터 PIC 컨트롤러와 슬레이브 PIC 컨트롤러의 초기화 코드 // I/O 포트 정의 #define PIC_MASTER_PORT1 0X20 #define PIC_MASTER_PORT2 0X21 #define PIC_SLAVE_PORT1 0XA0 #define PIC_SLAVE_PORT2 0XA1 // IDT 테이블에서 인터럽트 벡터가 시작되는 위치, 0x20 #define PIC_IRQSTARTVECTOR 0x20 void kInitializePIC( void ){ // 마스터 PIC 컨트롤러를 초기화 // ICW1(포트 0x20), IC4 비트(비트 0) = 1 kOutPortByte( PIC_MASTER_PORT1, 0x11 ); // ICW2..