마이컴 1993년 12월호 - 도스 길라잡이 2 

 카멜레온 같은 ANSI.SYS의 기능 

 

 

 

ANSI.SYS란 무엇인가?

'Ansi.sys(앤시 점 시스라고 읽는다)'는 도스가 꼭꼭 숨겨둔 디바이스 드라이버의 일종으로, 화면과 키보드의 작동 상태에 관여한다. 가지고 있는 화려한 기능에 비해 Ansi.sys의 명성은 그리 높지 않다. 존재조차 모르거나, 알더라도 다루기 어려운 과 일이란 생각때문에 사용자들이 외면 하는 파일이다.

 

미국 국가 표준 연합회(ANSI : American National Standards Institute), 앤시란 거창한 이름도 이 파일에 다가서지 못하게 하는 한 요인이다. 이 연합회는 키보드와 모니터 다루기에 필요한 명령의 표준안을 만들었고, 이를 기준으로 동작하는 파일이 바로 앤시 점 시스인 것이다.


Ansi.sys는 카멜레온처럼 형형색색의 변화를 가능케 함으로써 똑같은 환경이 주는 지루함을 덜어준다. 글자 형식, 색깔, 화면 배경색이나 늘상 왼쪽 끝에 있는 커서의 자리도 옮길 수 있다. 키보드 상에서 키를 누르면 나타나는 정해진 글자도 바꿀 수 있다. 즉, 'A'키에 A부터 J까지 사용자 마음대로 정의할 수 있다는 말이다.


Ansi.sys중에서 키보드 다루기는 색 다루기와는 달리 고난도 기술을 요한다. 먼저 이번 호를 통해 앤시를 익히고 난 다음, 도전해 보기로 하자.

 

 

 

Ansi.sys 로딩하기

Ansi.sys를 사용하려면, 시스템상에 앤시 파일이 로딩되어 있어야만 한다. Ansi.sys가 로딩됐는지를 확인하려면 Config.sys 파일을 들여다보면 된다.


C:\>Type config.sys


라고 입력하면 확인할 수 있다. Ansi.sys 파일이 없으면, 새 Config.sys 파일을 작성해야 한다. 가장 간단한 예를 하나 들어보자. 도스 명령 라인상태에서 입력해야 한다.


c:\>copy con config.sys
files=20
buffers=20
device=c:\dos\ansi.sys
^Z


각 줄을 입력하고 나서는 반드시 엔터키를 쳐야 한다(너무 쉬운 내용을 반복한다구요? 잊지마시라고 드리는 말씀입니다). 맨 마지막에 ^Z 는 <Ctrl>와 <Z>키를 함께 눌러주라는 것으로 이렇게 하고나면 이 내용을 저장할 수 있다.

 

 

 


앤시 발사 카운트다운

앤시로 작업할 때는, 사용자가 할 일부터 알려줘야 한다. 앤시 에스케이프 시퀀스(Escape Sequences)는 바로 컴퓨터에게 키보드나 모니터의 상황을 바꿔주는 명령이다. 에스케이프의 명칭은 그 시퀀스가 문자에 부여하는 역할에서 따왔다. 여기서 문자란 보통 아스키 코드를 뜻한다.


이 시퀀스는 'ESCAPE(ESC)' 문자로 시작된다. Ansi.sys는 에스케이프 문자 다음에 적혀 있는 문자를 관찰해 이 명령들을 키보드나 화면용 명령으로 해석해 낸다.

 

에스케이프 시퀀스를 시작하는 것은 에스케이프 키 한번 입력으로 되지 않는다. 두번째 단계로는 화면 다음 줄로 커서를 옮긴다. 도스 시스템은 대부분 사용자가 보낸 메시지를 Ansi.sys가 알게 해주는 에스케이프 명령과 코드 및 종류를 필요로 한다.  PROMPT, TYPE, ECHO 등이 사용 가능한 세가지이다.


PROMPT는 도스 프롬프트에서 에스케이프 명령을 나타내는 짧은 문자열을 입력하도록 해 준다. 예를 들어 설명하면 이렇다. 화면이 문자로 가득한 상태라 화면을 깨끗이 지워버리고 싶을 때는 'prompt $e[2j'라고 명령을 주면 된다. 그리고 나서 엔터키를 치면 커서는 화면의 왼쪽 가장자리로 옮겨진다.

 

도스 명령어, 'CLS'를 입력한 것과 같은 효과가 난다. 컴퓨터는 앤시 명령어, 'ESC[2j'로서 이 명령 라인을 입력하게 된다. 그리고 화면은 깨끗해진다.


'prompt $e[k' 다음에 엔터키를 입력하면, 화면에 있던 내용이 모두 지워지면서 커서가 줄의 맨 끝으로 이동한다. PROMPT에서 불편한 점이라면, 도스 프롬프트가 화면에서 아예 사라져버려 다른 드라이브나 디렉토리로 이동할 때 위치를 알 수 없 다는 점이다.

 

Autoexec.bat 파일에 'Prompt $p$g'와 같은 명령이 없다면, 도스 프롬프트 상태에서 입력해도 'C:\>'와 같은 상태로 변한다.

 

 


화면 색 바꾸기

컬러 모니터 사용자라면, Ansi.sys의 가치를 충분히 느낄 수 있다. 색을 바꾸려면 Ansi.sys에게 다음과 같은 형식을 취해야 한다.


prompt $e[code:code'...m


앞 명령에서 'code' 부분은 전경색(글자색), 배경색, 혹은 속성값 등을 대표한다. Ansi.sys와 관련된 속성을 보여주는 각종 코드표를 다음에 실었다.

 

숫자 30~37까지는 전경색, 40~47까지는 배경색, 0, 1, 4, 5, 7, 8은 다른 문자 속성을 표시한다. 파랑색 바탕에 굵은체의 초록색 글자로 컴퓨터를 사용하고 싶다면, 다음처럼 명령을 주면 된다.


prompt Se[1;32;44m


도스 프롬프트에서 엔터키를 눌러주면, 이제 파랑색 바탕에 초록색 글자가 나타난다.

 

 

 


도스 프롤프트와 커서 개조하기

화면색은 이제 바꿨다. 커서 위치까지 마음대로 결정하고 싶다면, 다음 명령 형식을 취한다.


prompt $e[열;행


열은 1부터 25까지, 행은 1부터 80까지 지적할 수 있다. 이 명령을 응용하면 매일 날짜와 시간도 프롬프트로 나타낼 수 있다.


prompt $e[s$e[; 50h$d$t$h$h$h$h$h$e[u$p$g


굉장히 복잡해 보이지만, 간단한 원리에 의한 것이다. 하나하나 설명을 듣다보면 앤시 명령의 형식을 얼마쯤 이해할 수 있을 것이다.


제일 앞쪽의 '$e[s'까지는 현재 커서 위치를 저장해 두는 명령이다. '$e[;50h'는 화면의 오른쪽 꼭대기로 커서를 옮긴다. 그런 다음, '$d$t'에 의해 현재 시간과 날짜가 표시된다.

 

'$h'는 백스페이스더러 움직이라는 명령이다. 이 명령을 6번쯤 하면서 초 부분이 지워진다. 마지막 '$e[u'는 커서를 본래 위치로 돌려주면서 $p$g가 작동해 전형적인 도스 프롬프트 'C:>'를 보여주고 마치는 명령이다.

 

 

화면을 꾸며주는 프롬프트 명령들

$b  문자 하나
$d  현재 날짜
$e  에스케이프 문자
$g  >문자
$h  백스페이스(제일 마지막 글자 지음)
$i  <문자
$n  현재 드라이브
$p  현재 드라이브와 디렉토리
$q  = 문자
$t  현재 시간
$v  도스 버전 숫자
$$  $문자
$...  캐리지 리턴/라인 피드(새 줄로 바꿔줌)

 


Ansi.sys로 커서를 관리할 때 쓰는 에스케이프 시퀀스
$e[s  커서의 현 위치를 저장한다.
$e[u  $e[s로 저장해 두었던 커서의 마지막 위치를 다시 불러낸다.
$e[xxA  커서를 xx열 위쪽으로 옮긴다.
$e[xxB  커서를 xx열 아래쪽으로 옮긴다.
$e[xxC  커서를xx열 오른편으로 옮긴다.
$e[xxD  커서를 xx열 왼편으로 옮긴다.

$e[xx;yyH  커서를xx열, yy형으로 옮긴다.
$e[H  커서를 화면의 왼편 제일 위쪽으로 옮긴다.


앞에 보이는 에스케이프 시퀀스들을 참고해 신나는 앤시 활용을 즐기자. 이렇게 친해진 앤시로 다음 달에는 키보드를 고치고 만지는 일에 빠질거다.

 

 

 

 

 

  이글은 지금은 없어진 컴퓨터 잡지, 마이컴 1993년 12월호 기사에서 발췌한 내용입니다

 

글이 마음에 드시면 아래 공감버튼 살짝 눌러주세요.

공감과 댓글은 저에게 큰 힘이 됩니다. 

 

 

 

 

 

728x90
반응형
Posted by 전화카드
,