Кіріспе
Таңбалар жинағында жазылған символды білдірмейтін кодтық нүкте. Есептеу және телекоммуникацияда, басқару таңбасы немесе баспаға шығармайтын таңба (NPC) – жазылған символ немесе таңбаны білдірмейтін таңбалар жинағындағы кодтық нүкте. Олар мәтінге символ қосылудан өзге әсерлер тудыру үшін каналдық сигнал беру ретінде қолданылады. Қалған барлық таңбалар негізінен графикалық таңбалар, сондай-ақ баспа таңбалары (немесе баспаға шығарылатын таңбалар) деп аталады, бірақ "бос орын" таңбаларынан басқа. ASCII стандартында 33 басқару таңбасы бар, мысалы, 7-код, терминал қоңырауын дыбыстатады.
In computing and telecommunication, a control character or non printing character (NPC) is a code point in a character set that does not represent a written character or symbol. They are used as in band signaling to cause effects other than the addition of a symbol to the text. All other characters are mainly graphic characters, also known as printing characters (or printable characters), except perhaps for "space" characters. In the ASCII standard there are 33 control characters, such as code 7, , which rings a terminal bell.
Тарих
Морзе кодындағы процедуралық сигналдар басқару символының бір түрі болып табылады. 1870 жылғы Бодо кодына NUL және DEL басқару символдары енгізілді. 1901 жылғы Мюррей кодына каретканың қайтарылуы (CR) және жолдың басы (LF) қосылды, ал Бодо кодының басқа нұсқалары басқа басқару символдарынан тұрды. Операторларды ескерту үшін қоңырау соққан қоңырау символы (BEL) да ертедегі телетайп басқару символы болды. Кейбір басқару символдары "форматтау эффектілері" деп те аталады.
Юникодпен
Юникодта "бақылау таңбалары" U+0000–U+001F (C0 бақылаулары), U+007F (жою) және U+0080–U+009F (C1 бақылаулары) болып табылады. Олардың жалпы санаты "Cc" болып табылады. Форматтау кодтары "Cf" жалпы санатында ерекшеленеді. Cc бақылау таңбаларының Юникодта есімі жоқ, олар "<control 001A>" сияқты таңбалармен белгіленеді.
Басқару таңбаларының пернетақтаға сәйкестігі
ASCII негізделген пернетақталарда "Control", "Ctrl" немесе (сирек кездесетін) "Cntl" деп белгіленген перне бар, ол ауысу пернесі сияқты қолданылады, яғни басқа әріп немесе символ пернесімен бірге басылады. Бір орындалуда басқару пернесі кодты 64 орынға (әдетте) үлкен әріптің кодын төмендетеді (яғни, үлкен әріптің ASCII кодын 0x40-қа кемітеді). Басқа орындалуда перненің ASCII кодын алып, оны 0x1F-пен біттік АНД операциясын (bitwise AND) жасайды, 5-тен 7-ге дейінгі биттерді нөлге мәжбүрлейді. Мысалы, "control" және "g" әрпін (көшірме түрінде 0110 0111) бассаңыз, 7 кодын шығарады (BELL, ондық түрінде 7, немесе көшірме түрінде 0000 0111). NULL символы (код 0) Ctrl @ арқылы бейнеленеді, "@" ASCII символдар жиынтығында "A" алдындағы код. Ыңғайлы болу үшін кейбір терминалдар Ctrl Space-ті Ctrl @ синонимі ретінде қабылдайды. Екі жағдайда да 0 мен 31 аралығындағы 32 ASCII басқару кодын береді. Екі тәсіл де DEL символын жасауға көмектеспейді, себебі ол кестеде ерекше орында және оның мәні (код 127) бар, сондықтан Ctrl ? кейде осы символ үшін қолданылады. Басқару пернесін басып тұрғанда, әріп пернелері ауысу немесе Caps Lock пернесінің күйіне қарамастан бірдей басқару символдарына шығарады. Яғни, перне үлкен немесе кішкентай әріп шығаруы маңызды емес. Бос орын, графикалық символ және цифр пернелерімен (ASCII кодтары 32-63) басқару пернесінің интерпретациясы жүйелер арасында әр түрлі. Кейбіреулері басқанда кодты шығармайды. Басқа жүйелер басқару пернесін басып тұрғанда осы пернелерді басқару символдарына аударады. Басқару пернесінің ASCII емес ("шет тілдік") пернелермен интерпретациясы да жүйелер арасында әр түрлі. Басқару символдары көбінесе карет нотациясы деп аталатын басып шығарылатын формаға келтіріледі, яғни карет (^) және басқару символының мәніне 64 қосылған ASCII символы басылады. Әріп пернелерін пайдаланып жасалған басқару символдары осылайша әріптің үлкен әріп түрімен көрсетіледі. Мысалы, ^G 7 кодын білдіреді, ол басқару пернесін басып тұрғанда G пернесін басу арқылы жасалады. Пернетақталарда әдетте басқару символдары кодтарын шығаратын бірнеше жеке пернелер болады. Мысалы, "Backspace" деп белгіленген перне әдетте 8 кодын, "Tab" 9 кодын, "Enter" немесе "Return" 13 кодын шығарады (кейбір пернетақталар "Enter" үшін 10 кодын шығаруы мүмкін). Көптеген пернетақталарда ASCII басып шығаратын немесе басқару символына сәйкес келмейтін пернелер бар, мысалы, курсорды басқару жебелері және мәтін өңдеу функциялары. Осы пернелерді басу арқылы компьютерлік бағдарламаларға төрт әдістің бірімен хабар беріледі: басқаша пайдаланылмаған басқару символдарына ие болу; ASCII-ден басқа кодтауды пайдалану; көп символдан тұратын басқару тізбектерін пайдалану; немесе символдарды жасаудан тыс қосымша механизмді пайдалану. "Ақымақ" компьютер терминалдары әдетте басқару тізбектерін қолданады. 1980 жылдары жасалған дербес компьютерлерге қосылған пернетақталар әдетте алғашқы екі әдістің біреуін (немесе екеуін де) қолданады. Қазіргі заманғы компьютерлік пернетақталар басылған нақты физикалық пернелерді анықтайтын сканерлеу кодтарын жасайды; компьютерлік бағдарламалық қамтамасыз ету содан кейін жоғарыда сипатталған төрт әдістің кез келгенін қоса алғанда, басылған пернелерді қалай басқаруды анықтайды.
Құрылыстың мақсаты
Басқару таңбалары бірнеше топқа жіктеліп жасалған: басып шығару және көрсетуді басқару, деректерді құрылымдау, беруді басқару және әртүрлі.
Басып шығару және көрсетуді басқару
Баспаны басқару таңбалары алғашқы шығару құрылғысы – принтерлердің физикалық механизмін басқару үшін қолданылған. Бұл идеяның алғашқы мысалы – Бодо кодындағы екі код бетінің арасында ауысу үшін Суреттер (FIGS) және Әріптер (LTRS) қолданылуы. Кейінірек, бірақ әлі ерте үлгісі – ASA каретасын басқару таңбалары. Соңыннан баспаға шығарылатын дерек ағынына басқару таңбалары енгізілді. Тасымалдау қайтару символы (CR) мұндай құрылғыға жіберілген кезде, ол таңбаны қағаздың жазу басталатын жиегіне орналастырады (оны келесі жолға жылжытуы да мүмкін, немесе жылжытпауы да мүмкін). Жолды беру белгісі (LF/NL) құрылғыны басып шығару орнын келесі жолға орналастырады. Құрылғы мен оның конфигурациясына байланысты, басып шығару орнын келесі жолдың басына жылжытуы мүмкін (солдан оңға жазатын батыс тілдерінің әліпбилері үшін сол жаққа, ал оңнан солға жазатын еврей және араб әліпбилері үшін оң жаққа). Тік және көлденең табу таңбалары (VT және HT/TAB) шығыс құрылғысын оқу бағытындағы келесі табу тоқталысына жылжытады. Форманы қоректендіру таңбасы (FF/NP) жаңа қағаз парағын бастайды және бірінші жолдың басына жылжуы мүмкін немесе болмауы мүмкін. Артқа жылжу белгісі (BS) басып шығару орнын бір таңба кеңістік артқа жылжытады. Принтерлерде, соның ішінде қағаз терминалдарында, бұл көбінесе принтерге басқа, әдетте қол жетімсіз таңбаларды басып шығаруға мүмкіндік береді. Видео терминалдарында және басқа электрондық шығыс құрылғыларында көбінесе бағдарламалық (немесе аппараттық) конфигурация таңдаулары болады, олар жойғыш артқа жылжуды (мысалы, BS, SP, BS тізбегі) немесе жоймайтын артқа жылжуды қамтамасыз етеді. Мәтінді ауыстыру және шығару (SI және SO) таңбалардың, қаріптердің, астын сызудың немесе басқа басып шығару режимдерінің балама жиынтығын таңдайды. Қашу тізбектері жиі осы мақсатта қолданылды. Компьютерлік терминалдар пайда болғаннан кейін, олар қағазға физикалық түрде басып шығармайтындықтан, экран орналасуы, өшіру және т.б. бойынша көбірек икемділік ұсынды, баспаны басқару кодтары бейімделді. Мысалы, форма ақпараты әдетте экранды тазалап, жаңа қағаз парағына көшуге болмайтындықтан. Жаңа терминалдардың және тіпті жаңа принтерлердің икемділігін пайдалану үшін күрделірек қашу тізбектері жасалды. Басқару символының түсінігі әрқашан біршама шектеулі болды және жаңа, әлдеқайда икемді жабдықпен қолданылған кезде өте шектеулі болды. Басқару тізбектері (кейде қашу тізбектері ретінде іске асырылады) жаңа икемділік пен қуатқа сай келіп, стандартты әдісқа айналды. Дегенмен, таңдауға арналған стандартты тізбектердің көптеген түрлері болды және әлі де бар.
Деректерді құрылымдау
Бөлімшелер (Файл, Топ, Жазба және Бөлшек: FS, GS, RS және US) деректерді құрылымдау үшін, әдетте таспада, перфокарталарды имитациялау мақсатында жасалған. Ортаның соңы (EM) таспаның (немесе басқа жазу құралының) аяқталып бара жатқанын хабарлайды. Көптеген жүйелер деректерді құрылымдау үшін CR/LF және TAB пайдаланса да, құрылымдалуы қажет деректерде бөлуші басқару таңбаларын кездестіру мүмкін. Бөлуші басқару таңбаларына қосымша функциялар берілмеген; олардың жалғыз ғана мақсаты деректерді құрылымдалған топтарға бөлу. Олардың сандық мәндері бос орын таңбасымен тікелей байланысты, оны сөздерді бөлуші ретінде топтың құрамына жатқызуға болады. Мысалы, RS бөлігіші (JSON мәтіндік тізбектері) JSON элементтерінің тізбегін кодтау үшін қолданылады. Әрбір тізбек элементі RS таңбасымен басталып, жол берумен аяқталады. Бұл шексіз JSON тізбектерін тізбектеп сақтауға мүмкіндік береді. Бұл JSON ағынды протоколдарының бірі.
Берілімді басқару
Таратуды басқару таңбалары дерек ағынын құрылымдау және қажет болған жағдайда қайта беруді немесе қалыпты аяқталуды басқару үшін арналған. Бастың басталуы (SOH) таңбасы дерек ағынының дерексіз бөлімін белгілеуге арналған – бұл мекенжайлар мен басқа да қызметтік деректерді қамтитын ағынның бөлігі. Мәтіннің басталуы (STX) таңбасы басқаның соңы мен ағынның мәтіндік бөлігінің басталуын белгілейді. Мәтіннің соңы (ETX) таңбасы хабарлама деректерінің соңы деп белгіленеді. Көп қолданылатын әдет – қателерді анықтау үшін ETX алдындағы екі таңбаны тексеру сомасы немесе CRC ретінде жасау. Тарату блогының соңы (ETB) таңбасы дерек блогының соңы екенін көрсету үшін пайдаланылды, онда деректер тарату мақсатымен мұндай блоктарға бөлінеді. Қашқыш таңба (ESC) келесі таңбаны «цитаталау» үшін арналған, егер ол басқа басқару таңбасы болса, басқару функциясын орындаудың орнына оны басып шығарады. Бүгінде бұл мақсатта көбінесе қолданылмайды. Контекстке байланысты әртүрлі басып шығаратын таңбалар көрінетін «қашқыш таңбалар» ретінде қолданылады. Аударма таңбасы (SUB) келесі таңбаны басып шығаратын таңбадан басқа мәнге аударуды сұрау үшін арналған, әдетте 5-бітті 0-ге орнату арқылы. Бұл ыңғайлы, себебі кейбір құралдар (мысалы, теріс машиналармен шығарылатын қағаз парақтар) тек басып шығаратын таңбаларды ғана жібере алады. Алайда, MS-DOS жүйелерінде мәтін режимінде ашылған файлдарда «мәтіннің соңы» немесе «файлдың соңы» басқа операциялық жүйелерде кең таралған Ctrl C немесе Ctrl D орнына осы Ctrl Z таңбасымен белгіленеді. Жою таңбасы (CAN) алдыңғы элементтің жойылуын білдіреді. Жағымсыз растау таңбасы (NAK) – қабылдауда мәселе бар екенін және көбінесе ағымдағы элементті қайта жіберу қажеттігін нақтылайтын белгі. Растау таңбасы (ACK) әдетте ағымдағы элементте ешқандай мәселе анықталмағанын көрсету үшін қолданылады. Тарату ортасы жартылай дуплексті болғанда (яғни бір уақытта тек бір бағытта ғана таратуға болады), әдетте кез келген уақытта таратуға болатын бас станция және рұқсат болғанда таратуға болатын бір немесе бірнеше бағынышты станциялар болады. Сұрау таңбасы (ENQ) бас станция бағынышты станциядан келесі хабарламаны жіберуді сұрау үшін көбінесе қолданылады. Бағынышты станция таратуын аяқтау таңбасын (EOT) жіберу арқылы аяқтағанын көрсетеді. Құрылғыны басқару кодтары (DC1-ден DC4-ке дейін) бастапқыда жалпы мақсаттағы, әр құрылғыда қажет болған жағдайда іске асырылатын болған. Дегенмен, деректерді таратудағы жалпы қажеттілік – алушы уақытша басқа деректерді қабылдай алмай қалғанда жіберушінің таратуды тоқтатуын сұрау. Digital Equipment Corporation 19 (құрылғыны басқару 3 таңбасы (DC3), сондай-ақ S немесе XOFF деп те аталады) таратуды «S» тоқтату үшін, ал 17 (құрылғыны басқару 1 таңбасы (DC1), басқаша айтқанда Q немесе XON) таратуды бастау үшін қолданылатын әдетті ойлап тапты. Ол кеңінен қолданыла бастады, сондықтан көптеген адамдар оның ресми ASCII құрамына кірмейтінін түсінбейді. Бұл техника, қалай жүзеге асырылғанына қарамастан, деректерді тарату кабеліне тек таратуды басқаруға арналған қосымша сымдарды қоюды болдырмайды, бұл ақшаны үнемдейді. Мұндай тарату ағынын басқару сигналдарын пайдалану үшін ақылға қонымды хаттама қолданылуы керек, бірақ мүмкін болатын тұйықталу жағдайларын болдырмау үшін. Дерек байланысының қашқыш таңбасы (DLE) келесі таңба STX немесе ETX сияқты басқару таңбасы екенін дерек байланысының екінші жағына сигнал беру үшін арналған. Мысалы, пакет келесідей құрылуы мүмкін: (DLE) <STX> <ЖҮК> (DLE) <ETX>.
Түрлі кодтар
Код 7 (BEL) қабылдау терминалында естілетін сигнал беруге арналған. ASCII басқару белгілерінің көпшілігі қазір көбінесе кездеспейтін сол кездегі құрылғылар үшін жасалған. Мысалы, 22-код, "синхронды күйсіздік" (SYN), бастапқыда синхронды модемдер (деректерді үнемі жіберуі керек) дерек жіберуге болмаған кезде жіберген. (Қазіргі жүйелер әдетте жіберілетін сөздің басталғанын хабарлау үшін бастапқы битті пайдаланады – бұл асинхронды байланыстың ерекшелігі. Синхронды байланыс желілері көбінесе мейнфреймдермен қолданылды, олар әдетте мейнфреймді басқа мейнфреймге немесе миникомпьютерге қосу үшін корпоративтік жалға алынған желілер арқылы жүргізілді.) 0 коды (ASCII NUL коды) – ерекше жағдай. Қағаз лентасында ол тесіктердің болмауымен сипатталады. Бұл белгіні басқа мағынасы жоқ толтыру белгісі ретінде қарастыру ыңғайлы. NUL белгісінің орнында тесіктер болмағандықтан, оны кейінірек кез келген басқа белгімен алмастыруға болады, сондықтан ол әдетте қателерді түзету үшін немесе кейінірек немесе басқа жерде қолжетімді болатын ақпаратты енгізу үшін орынды сақтау үшін қолданылды. Компьютерде ол жиі белгіленген ұзындығы бар жазбаларды толтыру үшін; жолдың соңында; және бұрын баспа құрылғыларына басқару функцияларын орындауға жеткілікті уақыт беру үшін қолданылады. Код 127 (DEL, басқаша "жою") – сондай-ақ ерекше жағдай. Оның 7 биттік коды – екілік жүйедегі барлық биттердің қосылуы, ол қағаз лентасындағы таңбалық жасушаны қайта перфорациялау кезінде өшіріп тастады. ASCII әзірленген кезде қағаз лентасы кең таралған сақтау ортасы болды, оның есептеу тарихы Екінші дүниежүзілік соғыс кезінде Biuro Szyfrów-та кодты бұзуға арналған құралдарға дейін жетеді. Қағаз лентасы 1970 жылдары қолданудан шықты, сондықтан ASCII-дің бұл ерекшелігі кейін сирек қолданылды. Кейбір жүйелер (мысалы, алғашқы Apple) оны кері батыруға айналдырды. Бірақ оның коды басқа басып шығаратын таңбалармен орналасқан диапазонға кіретіндіктен және оған ресми тағайындалған глиф болмағандықтан, көптеген компьютерлік жабдықтар сатушылары оны қосымша басып шығаратын белгі ретінде пайдаланды (көбінесе мәтінді жою үшін қолданылатын толық қара "қорапша" белгісі). Өшірілмейтін программаланатын ROM-дар әдетте біріктірілетін элементтердің массиві ретінде іске асырылады, олардың әрқайсысы бір битті білдіреді, оны тек бір рет, әдетте бірден нөлге ауыстыруға болады. Мұндай PROM-дарда DEL және NUL белгілерін перфокартада қолданылғандай пайдалануға болады: біреуін кейін жазылатын мәнсіз толтыру байттарын сақтау үшін, екіншісін жазылған байттарды мәнсіз толтыру байттарына айналдыру үшін. Бірден нөлге ауыстыратын PROM үшін NUL және DEL рөлдері ауыстырылады; сонымен қатар, DEL тек 7 биттік таңбалармен жұмыс істейді, олар бүгінде сирек қолданылады; 8 биттік мазмұн үшін DEL орнына 255 кодты белгіні, әдетте бұзылмайтын бос орын белгісі ретінде пайдалануға болады. Көптеген файлдық жүйелер файл атауларында басқару белгілеріне рұқсат бермейді, өйткені олардың резервтелген функциялары болуы мүмкін.