Thedeletecontrol character(also calledDELorrubout) is the last character in theASCIIrepertoire, with the code127.[1]It is supposed to do nothing and was designed to erase incorrect characters onpaper tape.It is denoted as^?incaret notationand isU+007FinUnicode.

Terminal emulators may produce DEL when← Backspacekey orControl+← BackspaceorControl+?are typed.

History

edit
· NUL
· CR
· LF
· DEL
· SP
"Delete" along with some other ASCII control characters andspaceas they appear on punched tape

This code was originally used to mark deleted characters onpunched tape,since any character could be changed to all ones by punching holes everywhere. If a character was punched erroneously, punching out all seven bits caused this position to be ignored or deleted.[2][3]Inhexadecimal,this is 7F to rub out 7 bits (FF to rubout 8 bitswas used for 8-bit codes). This character could also be used aspaddingto slow down printing after newlines, though the all-zeroNULwas more often used.

TheTeletype Model 33provided a key labelledRUB OUTto punch this character (after the user backed up the tape using another button), and did not provide a key that produced theBackspace character(BS). Therefore, a number of less-expensive computer systems that used Teletypes used this key (and thus the Delete code) to ignore the previous mis-typed character. Video terminals designed to replace the teletype then had to place a key that produced this code where Backspace would be expected, in particular in products fromDigital Equipment Corporation.OnVT100compatible terminals, this is the character generated by the key labeledDelete.[4][5]On later terminals, such as theVT510,the key is labeled(called backarrow in the manual[6]) and by default sent DEL, but could be set up to send BS.

Other terminals designed for systems that did not have a history of using Teletypes would usually make a key at this position send BS, leading to much confusion. Unix, in particular, had an annoying problem in that it could only be programmed to erase the previous character foroneof these (not both), thus requiring the user to reconfigure the terminal driver for each brand of terminal. Depending on the type of terminal the designer used, software would sometimes make the shortcutsCtrl+HorCtrl+?do something, even though these sent the same code as BS and DEL, assuming the backspace key was sending the other code.

A key markedBackspace ←that sends BS is by far the most common on modern terminals and emulators. To make sure they don't delete backwards, the key marked "Delete" on many terminals does not send DEL and instead sends anescape sequencesuch as^[[3~.[7]

Current use

edit

Unix-likeoperating systems can still use it as theerasecharacter, i.e., to delete the previous character in theline mode.The terminal driver still cannot be programmed to take both this and Backspace: one must be chosen. However, most modern programs bypass this and use libraries such asreadlinewhich accepts both codes. Most Unixterminal emulatorscan be configured to send either Delete or Backspace when the backspace key is pressed.[citation needed]

DOS/Windowsnever used this character in any way. The BIOS keyboard driver produced Backspace when the backspace key was typed and NUL with scan code 0x53 when the delete key was typed.[8]In Windows the delete key maps toVK_DELETE(0x2E).[9]EGA/VGA fonts,as fonts used byWin32 console,usually have the"house" symbol⌂ at 127 (0x7F) code point, seeCode page 437for details. However, its legacy can be seen in parts of the Windows operating system: as an example,Control+← BackspaceinMicrosoft Notepadused to insert the delete character[10]until it was changed in 2018 to make it delete the previous word.[11]

See also

edit

References

edit
  1. ^Vint Cerf (October 16, 1969).ASCII format for Network Interchange.IETF.doi:10.17487/RFC0020.RFC20.
  2. ^Robert C. Martin (2011).The Clean Coder: A Code of Conduct for Professional Programmers.Pearson Education.ISBN9780132542883.
  3. ^LaFarr (18 August 2006).""Paper Tape" First Machinable I/O ".
  4. ^"VT100 Family of Video Terminals".vt100.net.
  5. ^"VT100 User Guide- Chapter 3 – Table 3-4 Function Key Codes".vt100.net. Archived fromthe originalon 2016-03-14.Retrieved2015-04-12.
  6. ^"VT510 Video Terminal Programmer Information – Chapter 5 – ANSI Control Functions".vt100.net.
  7. ^"VT510 Video Terminal Programmer Information – Chapter 8 – Keyboard Processing".vt100.net. Archived fromthe originalon 2016-03-04.Retrieved2015-04-12.
  8. ^"Keyboard scan code/Character code combinations - PC DOS Retro".Archived fromthe originalon 2020-05-01.Retrieved2020-04-19.
  9. ^"Virtual-Key Codes (Winuser.h) - Win32 apps".22 June 2022.
  10. ^"Shortcuts - Notepad CTRL-Backspace behavior".
  11. ^"The New and Improved Windows 10 Notepad: Useful Tips and Features".23 November 2018.