תו בקרה
ב-ASCII

ב-ASCII הוגדרו לא מעט תווי בקרה (33 ב-ASCII, ותקן ECMA-48 מוסיף עוד 32). הסיבה לכך היא שלטרמינלים מוקדמים היו בקרות מכניות או חשמליות פרימיטיביות מאוד, שהפכו כל סוג של ממשק API זוכר מצבים ליקר ליישום, ולכן היה נחוץ קוד ייעודי לכל פונקציה ופונקציה. מהר מאוד הפך לאפשרי וזול לפרש רצפים של קוד כדי לבצע פונקציה, ויצרני מכשירים מצאו דרך לשלוח מאות הוראות מכשירים. בפרט, הם השתמשו בתו מילוט ASCII 27, ואחריו סדרת תווים שנקראת "רצף בקרה" או "רצף מילוט". המנגנון הומצא על ידי בוב במר, אבי ה-ASCII. לדוגמה, הרצף של קוד 27, ואחריו התווים הניתנים להדפסה "[2;10H", יגרום למסוף Digital Equipment Corporation VT100 להזיז את הסמן שלו לתא ה-10 של השורה השנייה של המסך. קיימים מספר תקנים עבור רצפים אלה, בעיקר ANSI X3.64. מספר הווריאציות הלא סטנדרטיות בשימוש הוא גדול, במיוחד בקרב מדפסות, שבהן הטכנולוגיה התקדמה הרבה יותר מהר, ואף גוף תקנים לא היה יכול לעמוד בקצב.
כל הערכים בטבלת ASCII מתחת לקוד 32 (טכנית ערכת קודי הבקרה C0) הם מסוג זה, כולל CR ו-LF המשמשים להפרדת שורות טקסט. הקוד 127 (DEL) הוא גם תו בקרה. טבלאות ASCII מורחבות שהוגדרו על ידי ISO 8859 הוסיפו את הקודים 128 עד 159 כתווי בקרה, זה נעשה בעיקר כדי שאם הסיבית הגבוהה הושמטה היא לא תשנה תו הדפסה לקוד בקרה C0, אבל היו כאן גם כמה הקצאות לשימושים, במיוחד NEL. סט שני זה נקרא סט C1.
65 קודי הבקרה הללו הועתקו ל-Unicode‏. Unicode הוסיף עוד תווים שיכולים להיחשב כפקדים, אבל הוא עושה הבחנה בין "תווי עיצוב" אלה (כגון ה-0-width non-joiner), לבין 65 תווי הבקרה.
ערכת התווים Extended Binary Coded Decimal Interchange Code (EBCDIC) מכילה 65 קודי בקרה, כולל כל קודי הבקרה של ASCII בתוספת קודים נוספים המשמשים בעיקר לשליטה בציוד היקפי של IBM.
|  | 0x00 | 0x10 |
| --- | --- | --- |
| 0x00 | NUL | DLE |
| 0x01 | SOH | DC1 |
| 0x02 | STX | DC2 |
| 0x03 | ETX | DC3 |
| 0x04 | EOT | DC4 |
| 0x05 | ENQ | NAK |
| 0x06 | ACK | SYN |
| 0x07 | BEL | ETB |
| 0x08 | BS | CAN |
| 0x09 | HT | EM |
| 0x0A | LF | SUB |
| 0x0B | VT | ESC |
| 0x0C | FF | FS |
| 0x0D | CR | GS |
| 0x0E | כך | RS |
| 0x0F | סִי | US |
| 0x7F | DEL |  |
תווי הבקרה ב-ASCII שעדיין נמצאים בשימוש נפוץ כוללים:
0 (null, NUL, \0, ^@), במקור נועד להיות תו שמתעלמים ממנו, אך כיום משמש שפות תכנות רבות, כולל C, כדי לסמן את סוף המחרוזת.
7 (bell, BEL, \a, ^G), מה שעלול לגרום למכשיר להשמיע אזהרה כגון פעמון או צליל צפצוף או מסך מהבהב.
8 (backspace, BS, \b, ^H), עשוי למחוק את התו הקודם.
9 (טאב אופקי, HT, \t, ^I), מעביר את מיקום ההדפסה ימינה לעצירת הטאב הבאה.
10 (ירידת שורה, LF, \n, ^J), מזיז את ראש ההדפסה למטה שורה אחת, או לקצה השמאלי ולמטה. משמש כסמן סוף שורה ברוב המערכות והגרסאות של UNIX.
11 (טאב אנכי, VT, \v, ^K).
12 (הזנת טופס, FF, \f, ^L), כדי לגרום למדפסת להוציא נייר לראש העמוד הבא, או למסוף וידאו לנקות את המסך.
13 (החזרת הסמן, CR, \r, ^M), מעביר את מיקום ההדפסה לתחילת השורה, ומאפשר הדפסת שורה נוספת על גבי השורה הקודמת. משמש כסמן סוף שורה ב- Classic Mac OS, OS-9, FLEX (וגרסאות שלהם). זוג CR+LF משמש לסימון סוף שורה את CP/M -80 ונגזרותיו כולל DOS ו-Windows, וכן על ידי פרוטוקולי שכבת יישומים כגון FTP, SMTP ו- HTTP.
26 (Control-Z, SUB, EOF, ^Z). פועל כסוף קובץ עבור פלט/קלט של קובץ טקסט במערכת ההפעלה חלונות.
27 (escape, ESC, ו-\e (ב-GCC בלבד), ^[). משמש כתו מילוט.
ניתן לתאר את תווי הבקרה כמבצעים משהו כאשר המשתמש מזין אותם, כגון קוד 3 (תו סוף טקסט, ETX, ^C) כדי לעצור את תהליך הריצה, או קוד 4 (תו סוף שידור, EOT, ^D), משמש לסיום קלט טקסט או ליציאה ממעטפת יוניקס. שימושים אלו בדרך כלל אינם קשורים לשימוש שלהם כאשר הם נמצאים בפלט של טקסט, ובמערכות מודרניות בדרך כלל אינם כרוכים בשידור של מספר הקוד כלל (במקום זאת, התוכנית מקבלת את העובדה שהמשתמש מחזיק את מקש Ctrl לחוץ ולוחץ על המקש המסומן ב-'C').