Clubcos  0.0.0
Clubcos - Clubc Operating System
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 페이지들
terminal.h 파일 참조
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
terminal.h에 대한 include 의존 그래프
이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:

이 파일의 소스 코드 페이지로 가기

매크로

#define ckMakeTermColor(fg, bg)   (((bg) << 4) | (fg))
 지정한 전경색과 배경색을 조합한 색 코드를 만듭니다. 더 자세히 ...
 

타입정의

typedef enum tagTerminalColor TerminalColor
 터미널의 색상 코드입니다. 더 자세히 ...
 
typedef enum tagTermStatus TermStatus
 터미널의 상태를 나타내는 열거형입니다. 더 자세히 ...
 
typedef enum tagTerminalCursorType TerminalCursorType
 터미널의 커서 모양을 나타내는 열거형입니다. 더 자세히 ...
 

열거형 타입

enum  { TERMINAL_WIDTH = 80, TERMINAL_HEIGHT = 24 }
 
enum  tagTerminalColor {
  TERMINAL_BLACK = 0, TERMINAL_BLUE = 1, TERMINAL_GREEN = 2, TERMINAL_CYAN = 3,
  TERMINAL_RED = 4, TERMINAL_MAGENTA = 5, TERMINAL_BROWN = 6, TERMINAL_LIGHT_GREY = 7,
  TERMINAL_DARK_GREY = 8, TERMINAL_LIGHT_BLUE = 9, TERMINAL_LIGHT_GREEN = 10, TERMINAL_LIGHT_CYAN = 11,
  TERMINAL_LIGHT_RED = 12, TERMINAL_LIGHT_MAGENTA = 13, TERMINAL_LIGHT_BROWN = 14, TERMINAL_WHITE = 15,
  TERMINAL_COLOR_DEFAULT = ckMakeTermColor(TERMINAL_LIGHT_GREY, TERMINAL_BLACK), TERMINAL_COLOR_LOG = ckMakeTermColor(TERMINAL_LIGHT_GREEN, TERMINAL_BLACK), TERMINAL_COLOR_PANIC = ckMakeTermColor(TERMINAL_RED, TERMINAL_WHITE)
}
 터미널의 색상 코드입니다. 더 자세히 ...
 
enum  tagTermStatus { TERMINAL_STATUS_STRING_INPUTING, TERMINAL_STATUS_WAITING }
 터미널의 상태를 나타내는 열거형입니다. 더 자세히 ...
 
enum  tagTerminalCursorType { TERMINAL_CURSOR_NORMAL, TERMINAL_CURSOR_SOLID, TERMINAL_CURSOR_NOCURSOR }
 터미널의 커서 모양을 나타내는 열거형입니다. 더 자세히 ...
 

함수

void ckTerminalInitialize (void)
 터미널을 초기화합니다. 더 자세히 ...
 
void ckTerminalSetColor (uint8_t color)
 터미널의 색을 설정합니다. 더 자세히 ...
 
void ckTerminalSetStatus (TermStatus stat)
 터미널의 상태를 설정합니다. 더 자세히 ...
 
void ckTerminalPutEntryAt (char c, uint8_t color, uint16_t x, uint16_t y)
 특정 위치에 지정한 색 코드로 문자를 출력합니다. 더 자세히 ...
 
void ckTerminalPutCharEntryAt (char c, uint16_t x, uint16_t y)
 특정 위치에 문자를 출력합니다. 더 자세히 ...
 
bool ckTerminalPutChar (char c)
 터미널에 문자를 출력합니다. 더 자세히 ...
 
void ckTerminalDelete (void)
 커서가 가리키고 있는 입력 문자를 삭제합니다. 더 자세히 ...
 
void ckTerminalBackspace (void)
 커서 바로 뒤의 입력 문자를 삭제합니다. 더 자세히 ...
 
void ckTerminalCls (void)
 화면을 지웁니다. 더 자세히 ...
 
void ckTerminalOnInput (uint8_t cascii)
 사용자의 입력을 터미널로 전송합니다. 더 자세히 ...
 
void ckTerminalClearLineBuffer (void)
 사용자가 현재 입력한 내용을 비웁니다. 더 자세히 ...
 
void ckTerminalWriteStringAt (uint16_t x, uint16_t y, uint8_t color, const char *str)
 특정 위치에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalWriteStringAtF (uint16_t x, uint16_t y, uint8_t color, const char *format,...)
 특정 위치에 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBar_unsafe (const char *str)
 동기화 없이 상태 바에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBar (const char *str)
 상태 바에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBarF (const char *format,...)
 상태 바에 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
void ckTerminalClearStatusBar (void)
 상태 바를 비웁니다. 더 자세히 ...
 
void ckTerminalPanic (const char *str)
 panic 메시지를 출력하고 시스템을 panic 상태로 만듭니다. 더 자세히 ...
 
void ckTerminalSetCursorWidth (uint8_t BeginHeight, uint8_t EndHeight)
 커서의 모양을 설정합니다. 더 자세히 ...
 
void ckTerminalSetCursorType (TerminalCursorType cur)
 커서의 모양을 지정된 타입으로 설정합니다. 더 자세히 ...
 
uint16_t ckTerminalWhereX (void)
 커서의 현재 위치의 x 좌표를 구합니다. 더 자세히 ...
 
uint16_t ckTerminalWhereY (void)
 커서의 현재 위치의 y 좌표를 구합니다. 더 자세히 ...
 
void ckTerminalGotoXY (uint16_t x, uint16_t y)
 커서를 이동합니다. 더 자세히 ...
 
void ckTerminalPrintString_unsafe (const char *str)
 동기화 없이 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintString (const char *str)
 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStringF (const char *format,...)
 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
size_t ckTerminalGetLine (char *buf, size_t size)
 입력 문자 버퍼에서 한 행을 꺼냅니다. 더 자세히 ...
 
char ckTerminalGetChar (void)
 입력 문자 버퍼에서 한 문자를 꺼냅니다. 더 자세히 ...
 
uint8_t ckTerminalGetch (void)
 입력 키 버퍼에서 cascii 문자 하나를 꺼냅니다. 더 자세히 ...
 
void ckTerminalClearInputBuffer (void)
 입력 문자 버퍼를 지웁니다. 더 자세히 ...
 
void ckTerminalClearHitKeyBuffer (void)
 입력 키 버퍼를 지웁니다. 더 자세히 ...
 
void ckTerminalClearAllBuffers (void)
 사용자의 입력 내용, 입력 문자 버퍼, 입력 키 버퍼를 모두 비웁니다. 더 자세히 ...
 
bool ckTerminalIsHitKeyBufferFull (void)
 입력 키 버퍼에 키가 있는지의 여부를 검사합니다. 더 자세히 ...
 

상세한 설명

날짜
2014. 4. 26.
작성자
dlarudgus20

매크로 문서화

#define ckMakeTermColor (   fg,
  bg 
)    (((bg) << 4) | (fg))

지정한 전경색과 배경색을 조합한 색 코드를 만듭니다.

매개변수
fg전경색입니다.
bg배경색입니다.

타입정의 문서화

터미널의 색상 코드입니다.

터미널의 커서 모양을 나타내는 열거형입니다.

참고
ckTerminalSetCursorType
typedef enum tagTermStatus TermStatus

터미널의 상태를 나타내는 열거형입니다.

참고
ckTerminalSetStatus

열거형 타입 문서화

anonymous enum
열거형 멤버
TERMINAL_WIDTH 
TERMINAL_HEIGHT 

터미널의 색상 코드입니다.

열거형 멤버
TERMINAL_BLACK 
TERMINAL_BLUE 
TERMINAL_GREEN 
TERMINAL_CYAN 
TERMINAL_RED 
TERMINAL_MAGENTA 
TERMINAL_BROWN 
TERMINAL_LIGHT_GREY 
TERMINAL_DARK_GREY 
TERMINAL_LIGHT_BLUE 
TERMINAL_LIGHT_GREEN 
TERMINAL_LIGHT_CYAN 
TERMINAL_LIGHT_RED 
TERMINAL_LIGHT_MAGENTA 
TERMINAL_LIGHT_BROWN 
TERMINAL_WHITE 
TERMINAL_COLOR_DEFAULT 
TERMINAL_COLOR_LOG 
TERMINAL_COLOR_PANIC 

터미널의 커서 모양을 나타내는 열거형입니다.

참고
ckTerminalSetCursorType
열거형 멤버
TERMINAL_CURSOR_NORMAL 

일반적인 커서 모양입니다.

TERMINAL_CURSOR_SOLID 

꽉 찬 모양의 커서입니다.

TERMINAL_CURSOR_NOCURSOR 

커서가 없음을 나타냅니다.

터미널의 상태를 나타내는 열거형입니다.

참고
ckTerminalSetStatus
열거형 멤버
TERMINAL_STATUS_STRING_INPUTING 

터미널이 문자열을 입력받고 있는 상태입니다.

TERMINAL_STATUS_WAITING 

터미널이 대기 상태입니다. 이 상태에서는 사용자로부터의 입력을 무시합니다.

함수 문서화

void ckTerminalBackspace ( void  )

커서 바로 뒤의 입력 문자를 삭제합니다.

키보드의 [BackSpace] 키를 누른 효과가 납니다.

void ckTerminalClearAllBuffers ( void  )

사용자의 입력 내용, 입력 문자 버퍼, 입력 키 버퍼를 모두 비웁니다.

Remarks
이 함수는 ckTerminalClearHitKeyBuffer ckTerminalClearInputBuffer ckTerminalClearLineBuffer 를 차례대로 호출합니다.
void ckTerminalClearHitKeyBuffer ( void  )

입력 키 버퍼를 지웁니다.

void ckTerminalClearInputBuffer ( void  )

입력 문자 버퍼를 지웁니다.

void ckTerminalClearLineBuffer ( void  )

사용자가 현재 입력한 내용을 비웁니다.

Remarks
이 함수를 호출하면 사용자가 입력했던 내용이 모두 무효화됩니다. 화면에 echo된 문자가 지워지지 않는다는 점에 유의하십시오.
void ckTerminalClearStatusBar ( void  )

상태 바를 비웁니다.

void ckTerminalCls ( void  )

화면을 지웁니다.

void ckTerminalDelete ( void  )

커서가 가리키고 있는 입력 문자를 삭제합니다.

키보드의 [del] 키를 누른 효과가 납니다.

uint8_t ckTerminalGetch ( void  )

입력 키 버퍼에서 cascii 문자 하나를 꺼냅니다.

반환값
입력된 키의 cascii 코드입니다.
char ckTerminalGetChar ( void  )

입력 문자 버퍼에서 한 문자를 꺼냅니다.

표준 C의 getchar() 함수와 같은 역할을 합니다.

반환값
입력된 문자입니다.
Remarks
이 함수는 ckTerminalClearHitKeyBuffer 함수를 호출해서 입력 키 버퍼를 비웁니다.
size_t ckTerminalGetLine ( char *  buf,
size_t  size 
)

입력 문자 버퍼에서 한 행을 꺼냅니다.

표준 C의 gets() 함수와 같은 역할을 합니다.

매개변수
[out]buf입력한 문자열입니다.
[in]size버퍼의 크기입니다.
반환값
입력된 문자열의 길이입니다.
Remarks
이 함수는 ckTerminalClearHitKeyBuffer 함수를 호출해서 입력 키 버퍼를 비웁니다.
void ckTerminalGotoXY ( uint16_t  x,
uint16_t  y 
)

커서를 이동합니다.

매개변수
[in]x커서가 이동될 위치의 x 좌표입니다.
[in]y커서가 이동될 위치의 y 좌표입니다.
Remarks
이 함수가 커서를 이동할 때 ckTerminalClearLineBuffer 함수를 호출해서 사용자의 입력을 비우고, ckTerminalClearInputBuffer 함수를 호출해 입력 문자 버퍼의 내용을 비웁니다.
void ckTerminalInitialize ( void  )

터미널을 초기화합니다.

bool ckTerminalIsHitKeyBufferFull ( void  )

입력 키 버퍼에 키가 있는지의 여부를 검사합니다.

kbhit() 함수와 같은 역할을 합니다.

반환값
입력 키 버퍼에 키가 있다면 true고, 그렇지 않으면 false입니다.
void ckTerminalOnInput ( uint8_t  cascii)

사용자의 입력을 터미널로 전송합니다.

매개변수
[in]cascii사용자가 입력한 키의 cascii 코드입니다.
Remarks
사용자가 키를 입력했을 때, 사용자의 입력을 처리하는 함수입니다. 이 함수는 키보드 처리기에서 호출됩니다.
void ckTerminalPanic ( const char *  str)

panic 메시지를 출력하고 시스템을 panic 상태로 만듭니다.

assert 매크로에서 사용됩니다.

매개변수
[in]str출력할 panic 문자열입니다.
void ckTerminalPrintStatusBar ( const char *  str)

상태 바에 문자열을 출력합니다.

매개변수
[in]str상태 바에 출력할 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintStatusBar_unsafe ( const char *  str)

동기화 없이 상태 바에 문자열을 출력합니다.

매개변수
[in]str상태 바에 출력할 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintStatusBarF ( const char *  format,
  ... 
)

상태 바에 서식 문자열을 조립해 출력합니다.

매개변수
[in]format상태 바에 출력할 서식 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintString ( const char *  str)

문자열을 출력합니다.

매개변수
[in]str출력할 문자열입니다.
참고
ckTerminalPutChar
void ckTerminalPrintString_unsafe ( const char *  str)

동기화 없이 문자열을 출력합니다.

매개변수
[in]str출력할 문자열입니다.
void ckTerminalPrintStringF ( const char *  format,
  ... 
)

서식 문자열을 조립해 출력합니다.

매개변수
[in]format출력할 서식 문자열입니다.
bool ckTerminalPutChar ( char  c)

터미널에 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
void ckTerminalPutCharEntryAt ( char  c,
uint16_t  x,
uint16_t  y 
)

특정 위치에 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
void ckTerminalPutEntryAt ( char  c,
uint8_t  color,
uint16_t  x,
uint16_t  y 
)

특정 위치에 지정한 색 코드로 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
[in]color출력할 문자의 색 코드입니다.
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
void ckTerminalSetColor ( uint8_t  color)

터미널의 색을 설정합니다.

매개변수
[in]color터미널의 색 코드입니다.
void ckTerminalSetCursorType ( TerminalCursorType  cur)

커서의 모양을 지정된 타입으로 설정합니다.

매개변수
[in]cur커서의 모양 타입입니다.
void ckTerminalSetCursorWidth ( uint8_t  BeginHeight,
uint8_t  EndHeight 
)

커서의 모양을 설정합니다.

매개변수
[in]BeginHeight커서의 시작 높이입니다. 0 ~ 0x1f 사이의 값입니다.
[in]EndHeight커서의 끝 높이입니다. 0 ~ 0x1f 사이의 값입니다.
Remarks
이 함수는 VGA 포트에 직접 커서의 높이를 전달합니다. 일반적인 경우엔 ckTerminalSetCursorType 함수의 사용를 권장합니다.
void ckTerminalSetStatus ( TermStatus  stat)

터미널의 상태를 설정합니다.

매개변수
[in]stat터미널의 상태입니다.
uint16_t ckTerminalWhereX ( void  )

커서의 현재 위치의 x 좌표를 구합니다.

반환값
커서의 현재 x 좌표입니다.
uint16_t ckTerminalWhereY ( void  )

커서의 현재 위치의 y 좌표를 구합니다.

반환값
커서의 현재 y 좌표입니다.
void ckTerminalWriteStringAt ( uint16_t  x,
uint16_t  y,
uint8_t  color,
const char *  str 
)

특정 위치에 문자열을 출력합니다.

매개변수
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
[in]color출력할 문자열의 색 코드입니다.
[in]str출력할 문자열입니다.
void ckTerminalWriteStringAtF ( uint16_t  x,
uint16_t  y,
uint8_t  color,
const char *  format,
  ... 
)

특정 위치에 서식 문자열을 조립해 출력합니다.

매개변수
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
[in]color출력할 문자열의 색 코드입니다.
[in]format출력할 서식 문자열입니다.