ANSI.SYS

ANSI.SYS

ANSI.SYSDOS 운영체제 계열의 장치 드라이버로, ANSI 탈출 시퀀스를 통해 추가 콘솔 기능을 제공한다.코드 및 문자 집합에 관한 ANSI X3L2 기술 위원회(이하 "X3 위원회")에서 제안한 문자 단자 제어 표준의 하위 집합에 부분적으로 기초하고 있다.

기본적으로 설치되지 않았고 속도가 느리기로 악명 높았기 때문에, 작은 소프트웨어도 이를 이용했고 대신 IBM PC 하드웨어를 직접 조작하는 데 의존했다.합리적인 속도로 달리던 제3자 대안이 여럿 생겨났다. 난시 [1]앤시컴SYS[2] ANSIPlus.EXE[3] 이것을 바꾸려고 시도한다.[third-party source needed]

사용법

ANSI를 사용하려면.DOS에서 SYSCONFIG에 선이 추가된다.SYS(또는 CONFIG).다음을 읽는 Windows NT 기반 버전의 Windows) 파일 아래의 NT:

DEVICE=drive:\path\ANSI.SYS 옵션

여기서 drive:경로ANSI 파일이 있는 디렉토리에 대한 드라이브 문자와 경로다.SYS가 발견되었으며, 옵션은 동작을 제어하기 위한 다수의 선택적 스위치가 될 수 있다.또한 ANSI.SYSDEVICEH/HIDE BISCH를 통해 상위 메모리에 로드될 수 있다.

  • /K는 표준 키보드[4] 대신 확장 키보드 BIOS 기능(INT 16h)을 사용한다.
  • /L 라인 수
  • /R 조정 라인 스크롤을 지원 화면 판독기로[4] 이동
  • /S 또는 /SCREENSIZE 설정스크린사이즈 설정
  • /X 표준 코드와[4] 무관하게 확장 키 코드의 재정의를 지원

기능

일단 로드되면, ANSI.SYS는 코드 시퀀스가 다양한 텍스트 포맷 기능을 적용할 수 있도록 한다. 드라이버를 사용하여 표준 출력에 쓰는 프로그램은 VGA 호환 텍스트 모드에서 사용할 수 있는 16개의 텍스트 전경색과 8개의 배경색을 사용하고 텍스트를 깜박이게 하며 화면의 커서의 위치를 변경하고 화면을 비워둘 수 있다.또한 비디오 모드를 표준 80×25 텍스트 모드에서 여러 가지 다른 그래픽 모드(예를 들어 ANSI에도 불구하고 텍스트가 픽셀로 그려진 320×200 그래픽 모드)로 변경할 수 있다.SYS는 개별 픽셀을 켜거나 끄기 위한 호출을 제공하지 않는다).

표준 ANSI.SYS는 이스케이프 시퀀스를 동등한 BIOS 호출에 매핑하기 때문에 상대적으로 느리다.몇몇 회사는 전체 화면 사용자 인터페이스를 가진 대부분의 DOS 프로그램과 유사한 방법으로 비디오 메모리와 직접 연결되는 타사 대체품을 만들었다.

기본적으로 내부 DOS 명령 CLS는 해당 BIOS 기능을 직접 호출하여 화면을 지우는 방식으로 작동하므로 달리 유지된 하드웨어 추상화 모델을 현저하게 위반한다.그러나 DR-DOS Command에 의해 ANSI 드라이버가 탐지된 경우.COM은 대신 예약된 환경변수 $CLS에 정의된 제어 시퀀스를 첨부된 콘솔 장치로 전송한다.[5]환경변수가 정의되지 않은 경우, ESC [2J] 시퀀스를 대신 전송하기 위해 후퇴한다.[5]다른 시퀀스를 지정하면 CLS 이후의 다양한 화면 설정을 제어하는 데 사용할 수 있다.이진 데이터 COMMAND를 포함하는 환경 변수를 정의하기가 어렵기 때문에.COM은 또한 8진수에 대한 특별한 \nnn 표기법을 받아들인다.[5]예를 들어 ESCII +(ASCII 단자에서 사용되는 1Bh 2Bh의 경우)와 같은 대체 제어 시퀀스를 전송하려면 다음과 같이 변수를 정의할 수 있다.

SET $CLS=\033+

이 기능들은 COMMANT에 의해 지원된다.DOS PlusDR-DOS의 모든 버전에서 COM을 사용하지만 MS-DOS 또는 PC DOS에서는 COM을 사용하지 않는다.기본적으로 ANSI 제어 시퀀스(예: ESC E)가 아닌 VT52를 사용하지만 Concurrent DOS, Multiuser DOSREAL/32의 명령 인터프리터에 의해 지원되기도 한다.[5]

키보드 재매핑

ANSI의 흥미로운 특징.SYS키보드의 모든 키를 다시 매핑하여 복잡한 지시사항에 대한 바로 가기 또는 매크로를 수행할 수 있는 기능이다.사용자는 특수 이스케이프 시퀀스를 사용하여 문자 코드 매핑이 있는 키 입력을 정의하여 이러한 키 입력의 임의 순서를 시뮬레이션할 수 있다.[6]이 기능은 또한 악당들에 의해 "ANSI 폭탄"이라고 알려진 악의적인 키보드 리맵이 있는 텍스트 파일로 간단한 트로이 목마를 만들기 위해 사용되었다.사용자 보호를 위해 다음과 같은 제품이 출시되었다.

  • ANSI의 일부 버전.SYS는 키 재매핑 기능(예: ANSI의 /S(Secure) 옵션)을 비활성화하는 명령줄 스위치를 지원한다.Datalight ROM-DOS[7] 또는 NANSI의 SYS.FreeDOS의 SYS[2].ANSIPLUS와 같은 다른 ANSI 드라이버도 키 재설정을 사용하지 않도록 구성할 수 있다.[3]
  • CONFIG 설정 중.PTS-DOSSYS SCREEN=ANSI는 키보드 재매핑 기능을 지원하지 않는 내장 ANSI 드라이버를 제공한다.[8][9]
  • 제3자 ANSI의 일부.SYS 교체는 키보드 재매핑 기능을 지원하지 않도록 의도적으로 설계되었다.
  • PKWARETSR 프로그램인 PKSFANSI(PK Safe ANSI)를 제작했는데, 이 프로그램은 표준 출력에 기록되는 대로 이스케이프 코드를 리메이크하는 키보드를 걸러낸다.[10]이는 사용자가 텍스트 파일에서 유용한 리맵핑을 로드한 다음 PKSFANSI를 실행하여 더 이상 악의적인 리맵핑을 방지할 수 있다는 장점이 있다.

발생

ANSI.SYSMS-DOS 2.0에 등장했는데, MS-DOS 2.0은 기기 드라이버를 지원하는 운영 체제의 첫 번째 버전이다.[11]그것은 MS-DOS의 다음의 모든 버전에 의해 지원되었다.또한 IBM PC DOSDR-DOS와 같은 많은 비 Microsoft DOS 시스템에도 존재한다.[12]

ANSI.SYS는 커서 및 색상 제어 기능을 사용하는 소프트웨어를 실행해야 했다.[12]그것은 또한 COMMAND에서 정교한 색상 코드를 가능하게 하는데 사용될 수 있다.COM 프롬프트.이러한 사용은 ANSI의 사용으로 가려졌다.BBSSYS; ANSI 이스케이프 시퀀스는 BBS가 ASCII 아트보다 더 정교한 텍스트 그래픽을 전송할 수 있도록 하고, 다수의 온라인 게임과 유사한 기능에 사용된 방법으로 커서를 제어하는 데 사용되었다.

대부분의 Windows 버전에서는 ANSI 이스케이프 코드를 어떤 유용한 방법으로도 지원하지 않았다(일부 버전에서는 MSDOS 에뮬레이션으로 사용할 수 있다.유사한 이스케이프 시퀀스에 대한 Windows 10 지원은 Win32 콘솔(텍스트 터미널 창)에 내장되었지만 Windows API 기능을 사용하여 활성화해야 함SetConsoleMode을 설정하여ENABLE_VIRTUAL_TERMINAL_PROCESSING국기를 [13]달다

특징들

CSI(Control Sequence Inference)는 공통 2바이트 이스케이프 리드 인 시퀀스 "ESC ["(즉, 0x1B 0x5B)의 자리 표시자다.[12]ANSI 표준은 또한 ANSI가 지원하지 않는 대안적인 단일 바이트 CSI 코드 0x9B를 정의한다.SYS

표준 DOS ANSI.SYS 드라이버는 다음의 ANSI 이스케이프 시퀀스 하위 세트만 지원한다.[12]

순서 효과
ESC [ r A 커서 UP(CUU)
ESC [ r B 커서 다운(CUD)
ESC [ C 커서 전진(CUF)
ESC [ c D 커서 뒤로(CUB)
ESC [ r;c f 수평 및 수직 위치(HVP)
ESC [ r;c H 커서 위치(CUP)
ESC [ n J 디스플레이 지우기(ED) (n=0, 2 또는 n=0, 1, [nb 1]2)
ESC [ n K 라인(EL)에서 지우기([nb 1]n=0 또는 n=0, 1, 2)
ESC [ n m 그래픽 렌더링(SGR) 선택(n=0..47)
ESC [ 6n DSR(장치 상태 보고서) 요청 커서 위치,
커서 위치 보고서(CPR)로 반환됨:
ESC [ r;c R
ESC [ s 커서 위치 저장(SCP)
ESC [ u RCP( 커서 위치 복원)

ANSI의 구현에 특정한 탈출 시퀀스도 있다.SYS. 다른 운영 체제의 ANSI 콘솔에서 일반적으로 지원하지 않는다.

순서 효과
ESC [ n h
ESC [ ?n h
ESC [ =n h
ESC [ >n h[nb 2]
화면 모드 설정(SM)[nb 2]
ESC [ n l
ESC [ ?n l
ESC [ =n l
ESC [ >n l[nb 2]
화면 모드 재설정(RM)[nb 2]
ESC [ n q 지원[nb 3] 사용(n=1) 또는 사용 안 함(n=0) /X 지원 사용
ESC [ L 삽입 선(IL)[nb 4]
ESC [ M 라인 삭제(DL)[nb 4]
ESC 달러 ) 1 키보드 입력 모드를 한국어로 전환(한글)[nb 5]
ESC(2개) 키보드 입력 모드를 영어로[nb 5] 전환
ESC [ + 콘솔 출력[nb 6] 사용
ESC [ - 콘솔 출력[nb 6] 사용 안 함
ESC [ a;b;...p 키 다시 정의 설정(SKR/KR)
화면 모드
모드 설명 모드 설명
0 40 × 25 단색 1 40 × 25 컬러
2 80 × 25 단색 3 80 × 25 컬러
4 320 × 200 컬러 5 320 × 200 단색
6 640 × 200 단색
7 [nb 7] 끝에서 포장
13 320 x 200 색상(색상) 14 640 x 200 컬러(16컬러 그래픽)
15 640 x 350 모노크롬(2컬러 그래픽 16 640 x 350색(16색 그래픽)
17 640 x 480 모노크롬(2컬러 그래픽) 18 640 x 480 컬러(16컬러 그래픽)
19 320 x 200 컬러(256 컬러 그래픽)
114 640 x 480 컬러(16컬러 그래픽)[nb 8] 115 640 x 475 색상(16색 그래픽)[nb 8]

일부 DOS 구현에서는 7 이상의 비디오 모드가 문서화되지 않는다.Multiuser DOS에서 PCTERM과 관련된 유일한 유효한 인수는 7이다.

참고 항목

메모들

  1. ^ a b 인수 0, 1, 2는 MS-DOS와 PC DOS ANSI의 일본어 버전에 의해서만 지원되고 구별된다.SYS. 서양의 ANSI 문제.SYS는 그들을 지지하거나 구별하지 않을 것이다.그러나 그것들은 또한 멀티우저 DOS에 의해 지원된다.
  2. ^ a b c d 리드인 접두사 '>'는 일본어 버전의 MS-DOS, PC DOS, DR-DOS ANSI에서만 지원된다.일본 특수 디스플레이 모드에 액세스하는 SYS.
  3. ^ 이 비표준 탈출 순서는 MS-DOSPC DOS ANSI에 의해서만 지원된다.SYS. ANSI와 유사한 런타임에 확장 키보드 지원을 활성화하거나 비활성화하는 데 사용할 수 있다.SYS /X 시작 옵션.
  4. ^ a b 선을 삽입하고 삭제하기 위한 이러한 비표준 및 이스케이프 시퀀스는 일본 버전의 MS-DOS와 PC DOS에서만 지원된다.그것들은 또한 서양의 멀티우저 DOS에 의해 지원되지만 DR-DOS에 의해 지원되지는 않는다.
  5. ^ a b 한국어와 영어 키보드 입력 모드를 전환하기 위한 이러한 비표준 탈출 시퀀스는 MS-DOS, PC DOS, DR-DOS ANSI의 한국어 버전에서만 지원된다.SYS.
  6. ^ a b CON: 장치에 대한 출력을 비활성화하고 다시 활성화하기 위한 비표준 탈출 시퀀스는 ANSI에 의해 지원된다.DR-DOS 7.02 이상의 SYS만 해당.예를 들어 DR-WebSpyder 부트 플로피와 함께 부팅하는 동안 콘솔 출력을 음소거하는 데 사용된다.
  7. ^ 7의 값은 행 끝에서 랩을 활성화(SM 포함)하거나 비활성화(RM 포함)하는 데 사용된다.이 옵션을 활성화하면 추가 문자가 다음 줄에 표시되며, 래핑이 비활성화되면 해당 문자가 손실된다.
  8. ^ a b 동영상 모드 114와 115는 ANSI의 일본 DOS/V 이슈에서만 지원된다.DR DOS 6.0, Novell DOS 7 이상에서 SYS가 발견됨

참조

  1. ^ Mefford, Michael (1989-02-07). "ANSI.com: Download It Here". PC Magazine. Retrieved 2011-08-10.
  2. ^ a b Kegel, Daniel; Almy, Tom; Auer, Eric (1999-02-28). "NANSI – An Enhanced MS-DOS Console Driver". 4.0. Dan Kegel's Web Hostel. Archived from the original on 2018-05-19. Retrieved 2011-08-10.
  3. ^ a b Sweger, Kristofer (2007) [2000]. "Configuring ANSIPLUS". Archived from the original on 2018-10-04. Retrieved 2018-10-04.
  4. ^ a b c "Guide to using ANSI.SYS". Archived from the original on 2007-06-23. Retrieved 2017-09-11.
  5. ^ a b c d Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on 2017-09-10. Retrieved 2014-08-06. (NB. NWDOSTIP).TXT는 Novell DOS 7과 OpenDOS 7.01에 대한 포괄적인 작품으로, 많은 미등록 기능 및 내부 기능에 대한 설명을 포함한다.그것은 저자의 더 큰 MPDOSTIP.Z의 일부분이다.IP 콜렉션은 2001년까지 유지되었고 그 당시 많은 사이트에 배포되었다.제공된 링크는 HTML 변환 NWDOSTIP의 이전 버전을 가리킨다.TXT 파일).[1]
  6. ^ "ANSI Keyboard codes - ANSI.SYS Key and Extended Key Codes". µVGA - VGA Microcontroller interface. SECONS Ltd. 2012. Archived from the original on 2017-09-11. Retrieved 2017-09-11.
  7. ^ Datalight, Inc.; GPvNO (April 2005) [1999]. "Datalight ROM-DOS User's Guide" (PDF). Datalight, Inc. 3010-0200-0716. Retrieved 2018-09-16.
  8. ^ "PTS-DOS 2000 Pro User Manual" (PDF). Buggingen, Germany: Paragon Technology GmbH. 1999. Archived (PDF) from the original on 2018-05-12. Retrieved 2018-05-12.
  9. ^ Günther, Jens; Ernst, Tobias (2004-04-25) [1996]. Ellsässer, Wolfgang (ed.). "Inoffizielle deutschsprachige PTS-DOS-FAQ (PTS/FAQD)" [Inofficial German PTS-DOS FAQ] (in German). Retrieved 2018-10-02.
  10. ^ Massingill, Michael D. Pearson, Dave (ed.). "PK SAFE ANSI (PKSFANSI.COM)". Archived from the original on 2017-09-11. Retrieved 2017-09-11.
  11. ^ Field, Tim (November 1983). "Installable Device Drivers for PC DOS 2.0 - Inside the IBM PC". BYTE. 8 (11): 188–196. Retrieved 2016-03-19.
  12. ^ a b c d "Chapter 9: Configuring the System". Caldera, Inc. 1998. Archived from the original on 2017-09-10. Retrieved 2017-09-10. (NB. DR-DOS 7 사용자 설명서, ANSI 설명).SYS 이스케이프 시퀀스(불완전)
  13. ^ "Console Virtual Terminal Sequences". Windows Console.

외부 링크