Content deleted Content added
Undid revision 1233159320 by 164.215.193.96 (talk) Please specify exactly what you want corrected. Restored version that does not mention mod-255 three or more times in different places |
In Transit (talk | contribs) m Reverted 1 edit by 37.39.179.168 (talk) to last revision by Spitzak |
||
(48 intermediate revisions by 13 users not shown) | |||
Line 1:
{{Short description|
{{More citations needed|date=March 2022}}
Line 6:
==MS-DOS==
On [[IBM PC compatible]] [[personal computer]]s from the 1980s, the [[BIOS]] allowed the user to hold down the {{keypress|Alt}} key and type a decimal number on the keypad. It would place the corresponding code into the keyboard buffer so that it would look (almost) as if the code had been entered by a single keystroke. Applications reading keystrokes from the BIOS would behave according to what action they associate with that code. Some would interpret the code as a command, but often it would be interpreted as an 8-bit character from the current [[code page]] that was inserted into the text the user was typing.<ref name="AltModulo">If the entered value exceeds 255, only the remainder after dividing by 256 (i.e., the value [[modulo]] 256) was used by the BIOS. For example, 520 is interpreted as 520 mod 256 = 8, so it produces the same character as for value 8.</ref> On the original [[IBM PC]] the code page was [[CP437]].
Some Eastern European, Arabic and Asian computers used other hardware [[code page]]s, and MS-DOS was able to switch between them at runtime with commands like <code>KEYB</code>, <code>[[List of DOS commands#CHCP|CHCP]]</code> or <code>[[List of DOS commands#MODE|MODE]]</code>. This causes the Alt combinations to produce different characters (as well as changing the display of any previously-entered text in the same manner). A common choice in locales using variants of the Latin alphabet was [[CP850]], which provided more Latin character variants. (There were, however, many more code pages{{Crossreference|text=; for a more complete list, see
PC keyboards designed for non-English use included other methods of inserting these characters, such as national [[keyboard layout]]s, the [[AltGr key]] or [[dead key]]s, but the Alt key was the only method of inserting some characters, and the only method that was the same on all machines, so it remained very popular.{{where|date=October 2020}}{{clarify|reason = Alt codes worked on on computers set to US layout, and also many characters were still not accessible using AltGr|date=October 2020}} This input method is emulated by many pieces of software (such as later versions of MS-DOS and Windows) that do not use the BIOS keyboard decoding.
Line 16:
==Windows==
The Alt codes had become so well known and memorized by users that Microsoft decided to preserve them in [[Microsoft Windows]], even though the OS features a newer and different set of code pages
* The familiar {{key press|Alt}}+{{key press|#}}{{key press|#
* The new {{key press|Alt}}+{{key press|0}}{{key press|#}}{{key press|#}}{{key press|#}} combination (which prefixes a zero to each Alt code), produces characters from the newer "[[Windows code page#ANSI code page|
==Unicode==
Later versions of Windows and applications such as Microsoft Word supported
In the IBM PC Bios typing an Alt code greater than 255 produced the same as that number [[Modulo operator|modulo]] 256.<ref name="AltModulo"/><ref name="WannaBuildASnowman">{{Cite web |first=Raymond |last=Chen |title=The history of Alt+number sequences, and why Alt+9731 sometimes gives you a heart and sometimes a snowman |work=The Old New Thing |publisher=Microsoft |date=2 July 2024 |url=https://devblogs.microsoft.com/oldnewthing/20240702-00/?p=109951}}</ref> Some applications retained this behavior, while others (in particular applications using the Windows [[RichEdit]] control, such as [[WordPad]] and [[PSPad]]) made numbers from 256 to 65,535 produce the corresponding Unicode character.<ref name="RichEdit">{{Cite web |last=Walker |first=Jim |display-authors=etal |title=About Rich Edit Controls |work=Windows App Development |publisher=Microsoft |via=[[Microsoft Learn]] |url=https://learn.microsoft.com/windows/win32/controls/about-rich-edit-controls |date=27 April 2022}}</ref> For instance, {{key press|Alt}}+{{key press|9}}{{key press|7}}{{key press|3}}{{key press|1}} in WordPad produces the {{unichar|2603}}. If the Windows Code Page was set to CP1252 then all Unicode BMP characters except [[C0 and C1 control codes|control characters]] could be typed this way.
===
Because most Unicode documentation and
There are many [[Unicode input|other ways]] of typing arbitrary Unicode characters, such as the [[Character Map (Windows)|Character Map]] utility.
== Other operating systems ==
Line 38 ⟶ 41:
==Limitations==
If {{key press|[[Num lock]]}} is disabled, attempting an Alt code may cause unexpected results in some applications, due to the controls used on the same key. For example, {{keypress|Alt|4}} can be taken as {{keypress|Alt|←}}, causing a web browser to go back one page.
== List of codes ==
Line 733 ⟶ 734:
* [[List of Unicode characters]]
* [[Numeric character reference]]
* [[Unicode input]]
==Notes==
|