Artifact 7a4c0c01f7ac6f5c51de96014d22fdb41e707e0591f04ca713a15906641ae7ac:
- File
psl-1983/3-1/doc/nmode/nm-characters.ibm
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 13426) [annotate] [blame] [check-ins using] [more...]
,MOD - R 44X (11 April 1983) <PSL.NMODE-DOC>NM-CHARACTERS.ibm PLA 97_LAS 80 0_FIR 2_INT 1 6.0_TYP 160 163 162 193_INP 12 101_MAR 2 ,END ,PRO 201 OUT 160_202 OUT 163_203 OUT 162_204 OUT 193 205 INP 12 101_206 INP 12 102 ,END ,DEFINE UNIT SPACE FUNCTION ,END 201/NMODE Manual (Character Sets and Command Input Conventions) Page 3-1 202/3. Character Sets and Command Input Conventions 201/In this chapter we introduce the terminology and concepts used to talk about NMODE commands. NMODE is designed to be used with a kind of keyboard with two special shift keys which can type 512 different characters, instead of the 128 different characters which ordinary ASCII keyboards can send. The terminology of NMODE commands is formulated in terms of these shift keys. So that NMODE can be used on ASCII terminals, we provide two-character ASCII circumlocutions for the command characters which are not ASCII. 202/3.1 The 9-bit Command Character Set 201/NMODE is designed ideally to be used with terminals whose keyboards have a pair of shift keys, labeled "Control" and "Meta", either or both of which can be combined with any character that you can type. These shift keys produce 202/Control 201/characters and 202/Meta 201/characters, which are the editing commands of NMODE. We name each of these characters by prefixing "Control-" (or "C-"), "Meta-" (or "M-") or both to the basic character: thus, Meta-F or M-F is the character which is F typed with the Meta key held down. C-M-; is the Semicolon character with both the Control and Meta keys. Control in the NMODE command character set is not precisely the same as Control in the ASCII character set, but the general purpose is the same. There are 128 basic characters. Multiplied by the four possibilities of the Control and Meta keys, this makes 512 characters in the NMODE command character set. So it is called the 512-character set, to distinguish it from ASCII, which has only 128 characters. It is also called the 202/9-bit 201/character set because 9 bits are required to express a number from 0 to 511. Note that the 512-character set is used only for keyboard commands. Characters in files being edited with NMODE are ASCII characters. Sadly, most terminals do not have ideal NMODE keyboards. In fact, the only ideal keyboards are at MIT. On nonideal keyboards, the Control key is somewhat limited (it can only be combined with some characters, not with all), and the Meta key may not exist at all. We make it possible to use NMODE on a nonideal terminal by providing two-character circumlocutions, made up of ASCII characters that you can type, for the characters that you can't type. These circumlocutions start with a 202/bit prefix 201/character; see below. For example, to use the Meta-A command, you could type C-A. On the hp9836, the key labelled tab sends C-and acts as a meta prefix. Both the NMODE 9-bit character set and ASCII have Control characters, but the 9-bit character set has more different ones. In ASCII, only letters and a few punctuation marks can be made into Control characters; in the 9-bit character set every character has a Control version. For example, we have Control-Space, Control-1, and Control-=. We also have two different characters Control-A and Control-a! But they always do the same thing in NMODE, so you can ignore the distinction between them, unless you are doing customization. In practice, you can forget all about the distinction between ASCII Control and NMODE Control, except to realize that NMODE uses some "Control" characters which ASCII keyboards cannot type. 201/Page 3-2 NMODE Manual (The 9-bit Command Character Set) We have given some command characters special names which we always capitalize. "<CR>" or "Return" stands for the carriage return character, code 015 (all character codes are in octal). Note that C-R means the character Control-R, never <CR>. "Rubout" is the character with code 177, labeled "Delete" on some keyboards. "Altmode" is the character with code 033, sometimes labeled "Escape". Other command characters with special names are Tab (code 011), Backspace (code 010), Linefeed (code 012), Space (code 040), Excl ("!", code 041), Comma (code 054), and Period (code 056). Control is represented in the numeric code for a character by 400, and Meta by 200; thus, Meta-Period is code 256 in the 9-bit character set. 202/3.2 Prefix Characters 201/A non-ideal keyboard can only send certain Control characters, and may completely lack the ability to send Meta characters. To use these commands on such keyboards, you need to use two-character circumlocutions starting with a 202/bit prefix 201/character which turns on the Control or Meta bit in the second character. The C-character turns on the Meta bit, so C-X can be used to type a Meta-X, and C-Control-O can be used to type a C-M-O. C-is known as the 202/Metizer201/. Other bit prefix characters are C-^ for Control, and C-Z for Control and Meta together. Thus, C-^ < is a way of typing a Control-<, and C-Z < can be used to type C-M-<. Because C-^ is awkward to type on most keyboards, we have tried to minimize the number of commands for which you will need it. There are two other prefix characters, Control-X and Meta-X which are used as the beginning of a large set of multi-character commands known as 202/C-X commands 201/and 202/M-X commands201/. C-X is not a bit prefix character; C-X A is not a circumlocution for any single character, and it must be typed as two characters on any terminal. C-X actually runs the function 203/c-x-prefix201/, while M-X runs 203/m-x-prefix201/. Two prefixes which are also used are ESC (203/esc-prefix201/) and C-] (203/lisp-prefix201/) (also called Lisp-). Each of these is used with a small set of single character suffixes. You can create new prefix characters when you customize. 202/3.3 Commands, Functions, and Variables 201/Most of the NMODE commands documented herein are members of this 9-bit character set. Others are pairs of characters from that set. However, NMODE doesn't really implement commands directly. Instead, NMODE is composed of 202/functions201/, which have long names such as 203/move-down-extending-command 201/and which are programs that perform the editing operations. 202/Commands 201/such as C-N are connected to functions through the 202/command dispatch table201/. When we say that C-N moves the cursor down a line, we are glossing over a distinction which is unimportant for ordinary use, but essential for customization: it is the function 203/move-down-extending-command 201/which knows how to move down a line, and C-N moves down a line 203/because 201/it is connected to that function. We usually ignore this subtlety to keep things simple. To give the extension-writer the information he needs, we state the name of the function which really does the work in parentheses after mentioning the command name. For example: "C-N (203/move-down-extending-command201/) moves the cursor down a line". In the NMODE wall chart, the function names are used as a form of very brief 201/NMODE Manual (Commands, Functions, and Variables) Page 3-3 documentation for the command characters. See Section 6.2 [Functions], page 2. While we are on the subject of customization information which you should not be frightened of, it's a good time to tell you about 202/variables201/. Often the description of a command will say "to change this, set the variable Mumble Foo". A variable is a name used to remember a value. NMODE contains many variables which are there so that you can change them if you want to customize. The variable's value is examined by some command, and changing the value makes the command behave differently. Until you are interested in customizing, you can ignore this information. When you are ready to be interested, read the basic information on variables, and then the information on individual variables will make sense. See Section 22.2 [Variables], page 4. 202/3.4 Notational Conventions for ASCII Characters 201/Control characters in files, your NMODE buffer, or PSL programs, are ordinary ASCII characters. The special 9-bit character set applies only to typing NMODE commands. ASCII contains the printing characters, rubout, and some control characters. Most ASCII control characters are represented in this manual as uparrow or caret followed by the corresponding non-control character: control-E is represented as ^E. Some ASCII characters have special names. These include tab (011), backspace (010), linefeed (012), Return (015), altmode (033), space (040), and rubout (177). To make it clear whether we are talking about a 9-bit character or an ASCII character, we capitalize names of 9-bit characters and leave names of ASCII characters in lower case. Note that the 9-bit characters Tab and Control-I are different, but the ASCII characters tab and control-I are the same. On the Dec-20 lines in files are separated by a sequence of two ASCII control characters, carriage return followed by linefeed. This sequence is called 202/CRLF201/. On the hp9836 lines in files are separated by other means. Normally, NMODE treats this two-character sequence as if it were a single character, a 202/line separator201/, linefeed. A Return which is not part of a CRLF is called 202/stray201/. NMODE usually treats them as part of the text of a line and displays them as ^Ms. Most control characters when present in the NMODE buffer are displayed with a caret; thus, ^A for ASCII ^A. Rubout is displayed as ^?, because by stretching the meaning of "control" it can be interpreted as ASCII control-?. A backspace is usually displayed as ^H since it is ASCII control-H, because most displays cannot do overprinting.