ANSI.SYS

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

ANSI.SYS je v rodině operačních systémů DOS ovladač zařízení, který umožňuje používat ANSI escape posloupnosti pro zpřístupnění různých funkcí systémové konzole. Většina řídicích posloupností, které ANSI.SYS podporuje, pochází z návrhu standardu pro ovládání textových terminálů vytvořeného technickým výborem X3 ANSI X3L2 pro kódy a znakové sady .

Protože se ovladač ANSI. SYS neinstaloval implicitně a při výpisu textů byl velmi pomalý, využívala jej jen malá část softwaru; většina celoobrazovkových programů používala pro výstup na obrazovku nástroje nižších úrovní (od služeb BIOSu až po přímé ovládání hardwaru videokaret). +more Existovalo však několik alternativních ovladačů jiných dodavatelů, které fungovaly výrazně rychleji, např. ANSI. COM, NANSI. SYS a ANSIPLUS. EXE, které se snažily tuto situaci změnit.

Použití

Pro použití ANSI. SYS v operačním systému DOS je třeba do souboru +moreSYS'>CONFIG. SYS (ve verzích Microsoft Windows založených na Windows NT do CONFIG. NT) přidat řádek:.

:DEVICE=disk:\cesta\ANSI.SYS parametry

kde disk: a cesta je označení diskové jednotky a cesta k adresáři, kde se nachází soubor ANSI. SYS. +more Ovladač ANSI. SYS může být také zaveden do Upper memory area použitím příkazu DEVICEHIGH/HIDEVICE. Jako parametry lze použít několik nepovinných přepínačů, které upřesňují chování ovladače:.

* /K používat rozšířené funkce BIOSu pro vstup z klávesnice (INT 16h) místo standardních * /L počet řádků na obrazovce * /R nastavuje scrollování řádků pro podporu screen readerů * /S nebo /SCREENSIZE nastaví velikost obrazovky * /X podpora předefinování rozšířených klávesových kódů nezávislých na standardních kódech

Funkčnost

Pokud je ANSI. SYS zaveden, umožňuje používat řídicí posloupnosti pro formátování textového výstupu na obrazovku. +more S tímto ovladačem mohou programy používající standardní výstup používat až 16 barev textu a 8 barev pozadí dostupných v VGA-kompatibilní textový režim, blikající text, měnit pozici kurzoru na obrazovce, a mazat obrazovku. Ovladač také umožňuje změnit videorežim ze standardního textového režimu 80×25 (25 řádků po 80 znacích) na různé grafické režimy (například s 320×200 grafickými body; ANSI. SYS umožňuje i v tomto režimu výpis textu, ale neposkytuje služby pro ovládání nebo zobrazování jednotlivých pixelů).

Standardní ANSI. SYS byl pomalý, protože převáděl escape posloupnosti na volání BIOSu. +more Několik společností vytvořilo náhrady, které pracovaly přímo s Video RAM stejným způsobem jako většina programů pro DOS, které poskytovaly celoobrazovkové uživatelské rozhraní.

Interní příkaz DOSu CLS implicitně používá přímo volání funkce BIOSu pro smazání obrazovky, což významně narušuje jinak dodržovaný model hardwarové abstrakce. Pokud však +moreCOM'>COMMAND. COM v DR DOSu detekuje ANSI ovladač, nebude volat tuto funkci BIOSu, ale na zařízení plnící úlohu konzole pošle řídicí posloupnost definovanou v rezervované proměnné prostředí $CLS. Pokud tato proměnná prostředí není definována, zašle posloupnost ESC [ 2 J. Použitím jiných řídicích posloupností lze po smazání obrazovky příkazem CLS dosáhnout různých efektů. Při zadávání řídicích znaků lze zadat kód v osmičkové soustavě ve tvaru \nnn; např. pro ASCII terminály by bylo možné definovat řídicí posloupnost ESC + (1Bh 2Bh) pro smazání obrazovky takto:.

:SET $CLS=\033+

Tyto vlastnosti podporuje COMMAND. COM ve všech verzích systémů DOS Plus a DR DOS, ne však v MS-DOSu nebo PC DOSu. +more Jsou také podporovány příkazovými interprety v Concurrent DOS, Multiuser DOS a REAL/32, které však implicitně místo řídicích posloupností ANSI používají posloupnosti pro terminál VT52 (například ESC E).

Přemapování klávesnice

Zajímavou vlastností ANSI. SYS je schopnost přemapovat libovolnou klávesu na klávesnici, aby generovala libovolnou posloupnost znaků. +more Použitím speciální escape posloupnosti může uživatel definovat, aby byl libovolný klávesový kód převeden na libovolnou posloupnost klávesových kódů. Tuto vlastnost však bylo možné zneužít pro vytvoření trojského koně, který díky escape sekvencím umístěným v souboru mohl přemapováním klávesnice provést nějakou škodlivou akci (tzv. „ANSI bomby“). Proto byly vyvinuty nástroje, které tomuto zneužívání zabraňují: * Některé verze ANSI. SYS mají parametr příkazového řádku, který zakazuje přemapování kláves, např. NANSI. SYS ve FreeDOSu nebo Datalight ROM-DOS používá volbu /S . Také jiné ANSI ovladače, např. ANSIPLUS lze zkonfigurovat, aby neumožňovaly předefinování kláves. * Parametr CONFIG. SYS SCREEN=ANSI v PTS-DOSu poskytuje vestavěný ANSI ovladač, který nepodporuje přemapování klávesnice. * Některé náhrady ANSI. SYS třetích stran byly úmyslně nepodporovaly přemapování klávesnice. * Program PKSFANSI firmy PKWARE typu Terminate and Stay Resident odstraňuje escape kódy pro přemapování kláves ze standardního výstupu. Jeho výhodou je, že uživatel může načíst některá užitečná mapování z textového souboru a pak spustit PKSFANSI, který zabrání aktivaci dalších přemapování, která by mohla škodit.

Dostupnost

Ovladač ANSI. SYS se objevil v MS-DOS 2. +more0, první verzi operačního systému, která podporovala ovladače zařízení, a byl dostupný ve všech následujících verzích MS-DOSu. Je také dostupný v mnoha systémech DOS jiných firem, například IBM PC DOS a DR DOS.

Některé programy vyžadovaly ovladač ANSI. SYS pro výpis textu na libovolné místo na obrazovce, nastavení pozice kurzoru a nastavování barev textu vypisovaného na obrazovku. +more Escape sekvence také umožňovaly nastavení barevné výzvy systému (prompt). Ovládání výstupu na obrazovku, které poskytoval ovladač ANSI. SYS, často používaly systémy BBS pro vytváření obrázků v textovém režimu a ovládání kurzoru způsobem, který se používal např. v různých online hrách.

Většina verzí Windows žádným užitečným způsobem ANSI escape kódy nepodporuje (v některých verzích však mohou být použity emulace MS-DOSu). Ve Windows 10 obsahuje podporu pro escape posloupnosti ve Win32 konzole (okno textového terminálu); musí být však aktivována použitím Windows API funkce nastavením příznaku .

Vlastnosti

CSI je zástupný znak pro běžné dvoubytové úvodní escape sekvence „ESC

“ (0x1B 0x5B). ANSI standard také definuje alternativní jednobytový CSI kód 0x9B, který není podporován v ANSI.SYS.

Standardní ovladače ANSI.SYS pro DOS podporují pouze následující podmnožinu ANSI escape posloupností:

PosloupnostVliv
ESC rKurzor nahoru (CUU)
ESC r BKurzor dolů (CUD)
ESC c CKurzor vpravo (CUF)
ESC c DKurzor vlevo (CUB)
ESC r;c fHorizontální a vertikální pozice (HVP)
ESC r;c HPřesune kurzor na pozici c na řádku r (CUP;l pozice i řádky se číslují od 1)
ESC n JSmazat obrazovku (ED) (n=0, 2 nebo n=0, 1, 2)
ESC n KSmazat řádek (EL) (n=0 nebo n=0, 1, 2)
ESC n mVybrat grafické ztvárnění (SGR) (n=0..47)
ESC 6 n(DSR) oznámí pozici kurzoru (CPR) ve tvaru (jako kdyby byla zadána z klávesnice) ESC[n;mR, kde n je řádek a m je sloupec
ESC sUložit pozici kurzoru (SCP)
ESC uObnovit pozici kurzoru (RCP)

Následující escape posloupnosti jsou specifické pro ANSI.SYS. Obecně nejsou podporovány ANSI konzolami v jiných operačních systémech:

PosloupnostVliv
ESC n h ESC . n h ESC =n h ESC >n hPřepne #Videorežimy|videorežim (SM)
ESC n l ESC . +moren l ESC =n l ESC >n lOpustí videorežim (RM)
ESC n qPovolí (n=1) nebo zakáže (n=0) podporu /X
ESC LVloží řádek (IL)
ESC MSmaže řádek (DL)
ESC $ ) 1Přepne režim vstupu z klávesnice na korejštinu (Hangul)
ESC ( 2Přepne režim vstupu z klávesnice na angličtinu
ESC +Povolí výstup na konzolu
ESC -Zakáže výstup na konzolu
ESC ;b;. pPřemapování kláves (SKR/KR)
.

RežimPopisRežimPopis
040 × 25 monochromatický140 × 25 barevný
280 × 25 monochromatický380 × 25 barevný
4320 × 200 barevný5320 × 200 monochromatický
6640 × 200 monochromatický
7Zalamování řádků
13320 x 200 barevný (grafický)14640 x 200 barevný (16barevná grafika)
15640 x 350 monochromatický (2barevná grafika)16640 x 350 barevný (16barevná grafika)
17640 x 480 monochromatický (2barevná grafika)18640 x 480 barevný (16barevná grafika)
19320 x 200 barevný (256barevná grafika)
114640 x 480 barevný (16barevná grafika)115640 x 475 barevný (16barevná grafika)
V některých implementacích DOSu nejsou video režimy nad 7 dokumentované. V Multiuser DOSu jediný platný argument ve spojení s PCTERM je 7.

Odkazy

Poznámky

Reference

Literatura

Související články

ANSI Escape sekvence

Externí odkazy

Kategorie:DOS

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top