╔═══════════════════════════════════════════════════════╗ ║ ║ ║ E D I T O R Q U I C K R E F E R E N C E ║ ║ ═════════════════════════════════════════════════ ║ ╚═══════════════════════════════════════════════════════╝ ┌────────────────────────────────────────┐ │ <shft> F1 = Toggle to regular window │ └────────────────────────────────────────┘ <ctrl> ▲ = scroll UP <ctrl> ▼ = scroll DOWN F3 = goto line number ... S u b j e c t s line number ═══════════════════ ─────────── I. Keystrokes . . . . . . . . . . . . . . . . . . . . . 105 A. keystrokes which display characters 133 regular characters 137 dingbats 165 diacriticals (accents) 208 other characters 248 line drawing characters 274 B. keystrokes which move the cursor or scroll text 316 keystokes which move the cursor 320 keystrokes which scroll lines 357 keystrokes which produce larger leaps 367 of the cursor C. keystrokes involving the highlight 394 keystrokes which produce a highlight 411 keystrokes which move highlighted material 440 keystrokes which delete highlighted material 451 keystrokes which perform arithmetic operations 471 on highlight material keystrokes which change the color attributes 491 of highlighted material using the highlight to draw boxes and lines 543 D. keystrokes for inserting, deleting and clearing 604 the insert key 608 the delete key 663 keystrokes for clearing 719 E. keystrokes for formatting text 734 keystrokes for setting margins 744 keystrokes for formatting 783 F. keystrokes for setting and using tabs 815 G. keystrokes for loading and storing files 850 H. keystrokes for changing windows 936 I. the function keys 963 II. The data buffers . . . . . . . . . . . . . . . . . . 1083 A. the box buffer 1095 B. the line buffer 1141 C. the stream buffer 1215 III. The environment . . . . . . . . . . . . . . . . . . 1233 A. parameters of the environment 1237 B. saving the state of the environment 1325 C. exiting Dmuse 1445 IV. Printing text from a window . . . . . . . . . . . . . 1465 A. printer setup 1475 B. printer parameters 1490 C. the PrintScreen key 1518 V. Loading and storing files . . . . . . . . . . . . . 1536 A. Loading a file to a window 1541 B. Storing the contents of a window to a file 1607 ────────────────────────────────────────────────────────────────── ┌─────────────────────────┐ │ K E Y S T R O K E S │ └─────────────────────────┘ The Dmuse Editor is a command based, text oriented user interface controlled by keystokes from the keyboard. A keystroke is defined as the pressing of some "action key" while holding down some combination of the "modifier keys" (shft, ctrl and alt). Keystrokes may be divided into two types: those which result in a character being written to the screen, and those which control the editor. Some keystokes such as "t", "a", and "s", which normally write a character, will instead do something to the environment, if a portion of the screen is highlighted with a box. These exceptions are not discussed in this section. The Dmuse Editor uses most of the IBM PC compatable characters. Some of the math charcters have been redefined in order to complete the set of vowels with diacritical marks (accents, etc.) and to represent other European letters. For example, there is no way to get an Ê or an Ø with the IBM set. Also a few of the dingbats (charcters between 1 and 31) have been redefined. The Dmuse printer driver has been written to accommodate most of these re-definitions, so your hardcopy printout will usually match what you see on the screen. ┌─────────────────────────────────────┐ │ Keystrokes which display characters │ └─────────────────────────────────────┘ 1. Regular keyboard characters (Total = 95 characters) ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ └───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┐ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┘ │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ └───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴───┘ │ S P A C E │ └───────────────────────────┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ └───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┐ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┘ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ ┌────┐ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │Shft│ │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ └────┘ └───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴───┘ │ S P A C E │ └───────────────────────────┘ 2. Dingbats (Total = 26 characters) Holding down the shft and ctrl modifiers, the following keystrokes will yeild the corresponding dingbats. stroke: z x c v b n m a s d f g h j k l q w e r t y u i o p dingbat: ⌂ ↑ ♮ ╱ ♭ ← → ♯ ▁ ♦ ⎝ ⎞ ⎠ ▼ © ◄ ╲ ⎛ √ ¶ ↓ § ▲ ☼ ► ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┐ │q ◄│w ╲│e ⎛│r √│t ¶│y ↓│u §│i ▲│o ☼│p ►│ │ │ │ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┘ │a ♯│s ▁│d ♦│f ⎝│g ⎞│h ⎠│j ▼│k ©│l │ │ │ ┌────┐ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │Shft│ │z ⌂│x ↑│c ♮│v ╱│b ♭│n ←│m →│ │ │ │ ├────┤ └───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴───┘ │Ctrl│ │ │ └────┘ └───────────────────────────┘ ◄ = q ← = n ⎛ = e ╲ = w ♯ = a ⌂ = z ▲ = i ↑ = x ⎝ = f ╱ = v ♭ = b © = k ► = p → = m ⎞ = g √ = r ♮ = c ¶ = t ▼ = j ↓ = y ⎠ = h ▁ = s ♦ = d § = u ☼ = o <shft><ctrl>L will access the glyph. The printer will not print ⎛ ⎝ ⎞ ⎠ ╱ ╲ √ ▁ ♯ ♭ and ♮. The digbats ⎛ ⎝ ⎞ ⎠ ╱ ╲ √ and ▁ were designed for displaying advanced mathematical notation. Examples: ▁▁▁▁▁▁▁▁▁▁▁▁▁ oo ▁ ╱⎛ 2 ⎞ ⎛ 1 ⎛ - b +/- ╲╱⎝(b) - 4ac⎠ ⎞ y = │ ⎛ ▁▁▁▁▁▁▁▁ ⎞ dx x = │ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ │ ⎠ ⎝ ▁▁▁▁▁▁▁ ⎝ 2a ⎠ 0 √ 1 - x 3. Characters with diacritical marks and other modifications (Total = 59 characters) There are two ways to put a diacritical mark over a letter: (1) Directly after typing the letter, you can type <alt>(#) where (#) is a digit from 1 to 9. (2) Any time after typing the letter, you can position the cursor under the letter and type <alt>(#) where (#) is a digit from 1 to 9. The chart below shows the conbinations of letters and numbers which produce alterations to letters, and what that alteration is. Note that <alt>6 always returns a letter to its unaltered state. Letters Command Aa Cc Ee Ii Nn Oo Rr Ss Uu Yy ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ <alt> 1 │ │ │ │ │ Ññ │ Õõ │ │ │ │ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 2 │ │ Çç │ │ │ │ Øø │ │ ß │ │ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 3 │ Ää │ │ Ëë │ Ïï │ │ Öö │ │ │ Üü │ Ÿÿ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 4 │ Åå │ │ │ │ │ │ │ │ │ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 5 │ │ │ │ │ │ │ Řř │ Šš │ │ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 6 │ Aa │ Cc │ Ee │ Ii │ Nn │ Oo │ Rr │ Ss │ Uu │ Yy │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 7 │ Áá │ │ éé │ Íí │ │ Óó │ │ │ Úú │ Ýy │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 8 │ Àà │ │ Èè │ Ìì │ │ Òò │ │ │ Ùù │ │ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ <alt> 9 │ Ââ │ │ Êê │ Îî │ │ Ôô │ │ │ Ûû │ │ └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘ 4. Other characters (Total = 30 characters) Combination Result Combination Result ─────────── ────── ─────────── ────── <shft-alt> ! ¡ <alt> , ▌ <shft-alt> @ ¥ <alt> . ▐ <shft-alt> # £ <alt> l ▀ <shft-alt> $ ¢ <alt> ; ▄ <shft-alt> % ƒ florin <alt> o ░ <shft-alt> ^ ° degree <alt> p ▒ <shft-alt> & ½ 1/4 <alt> [ ▓ <shft-alt> * ¼ 1/2 <alt> ] █ <shft-alt> ( • <alt> - ¬ logical not <shft-alt> ) ┊ Tab <alt> = ⌐ illogical <shft-alt> _ (line feed) <shft-alt> + ± <shft-alt> < « <shft-alt> > » <shft-alt> ? ¿ <shft-alt> i æ ae <shft-alt> o Æ AE <shft-alt> p ₧ Pt <shft-alt> [ ◾ square mark <shft-alt> ] · centered period 5. Line drawing characters (Total = 40 characters) Dmuse provides an easy way to draw lines and boxes using the box highlight. None the less, It is useful to know that any line drawing character can be accessed from the keyboard using <alt>(letter) or <shft-alt>(letter) combinations. There is a pattern in the way the line drawing characters are assigned to the keys. <alt>(letter) <alt>(letter) Keyboard Characters Keyboard Characters ────────── ────────── ────────── ────────── q w e r ┌ ┬ ┐ ─ t y u i ╔ ╦ ╗ ═ a s d f ├ ┼ ┤ │ g h j k ╠ ╬ ╣ ║ z x c └ ┴ ┘ b n m ╚ ╩ ╝ <shft-alt>(letter) <shft-alt>(letter) Keyboard Characters Keyboard Characters ────────── ────────── ────────── ────────── Q W E ╓ ╥ ╖ T Y U ╒ ╤ ╕ A S D ╟ ╫ ╫ G H J ╞ ╪ ╡ Z X C ╙ ╨ ╜ B N M ╘ ╧ ╛ q w e ┌┬┐ t y u ╔╦╗ <alt> a s d = ├┼┤ <alt> g h j = ╠╬╣ z x c └┴┘ b n m ╚╩╝ q w e ╓╥╖ t y u ╒╤╕ <shft-alt> a s d = ╟╫╢ <shft-alt> g h j = ╞╪╡ z x c ╙╨╜ b n m ╘╧╛ ┌─────────────────────────────────────────────────┐ │ Keystrokes which move the cursor or scroll text │ └─────────────────────────────────────────────────┘ 1. Keystokes which move the cursor ▲ ▼ ◄ ► = move the cursor up or down, left or right. <alt> ◄ = move the cursor backward one word. <alt> ► = move the cursor forward one word. Enter = move the cursor to the left margin on the next line. <alt> Enter = move the cursor to the first character on the current line and then down one line. Some lesser-used commands: <shft> Enter puts a carrage return ( ) character at the end of the line the cursor is on and moves the cursor to column 1 on the next line. BackSpace moves the cursor one position to the left and puts a space character there. <sfht> BackSpace will move the cursor to the left margin on the current line. <ctrl> Home will do the same thing. <shft> Home will move the cursor to column 1 of the screen on the current line. <shft> End will move the cursor to the end of the current line. <ctrl> End will move the cursor to the last character on the line inside the right margin. 2. Keystrokes which scroll lines <ctrl>▲ <ctrl>▼ <ctrl>◄ <ctrl>► = scroll up or down, left or right. PageUp = scroll text DOWN a full screen size. PageDown = scroll text UP a full screen size. 3. Keystrokes which produce larger leaps of the cursor Home = jump to the top of the window. End = jump to the line below the last line of text in the window. F3 = jump to a specified line in the window. KeyPad / = jump to the next occurance of a specified string of characters in a window. A dialog box will appear asking you to type the characters of the search string (including space characters) that you want to search for. Either the cursor will move to the next occurance of the specified string, or a message box will inform you that the no such string was found going forward. F11 = search forward for the next occurance for the string last specified by the KeyPad / command. F12 = search backward for the next occurance for the string last specified by the KeyPad / command. ┌────────────────────────────────────┐ │ Keystrokes involving the highlight │ └────────────────────────────────────┘ There are times when you will want to perform operations on a certain area or section of a window. The Dmuse editor has a set of keystrokes which allow you to specify such an area. The selected area will appear in highlight (either white or purple). The highlight will disappear once the operation is complete. There are three ways to highlight material in a window: (1) the box highlight (white), (2) the stream highlight (white), and (3) the line highlight (purple). The box and line highlights work only when wordwrap is off; the stream highlight works only when wordwrap is on. The stream highlight will not be discussed in this document. 1. Keystrokes which produce a highlight If there is no highlight present, there are three strokes which can initiate a highlight. <shft> ◄ <shft> ► = start a box highlight (white) <shft> ▼ = start a line highlight (purple) Once a box highlight has been intiated, the following strokes will change its size. <shft> ▲ <shft> ▼ = move the highlight cursor up or down one line. <shft> ◄ <shft> ► = move the highlight cursor left or right one column. Once a line highlight has been intiated, the following strokes will change its size. <shft> ▲ <shft> ▼ = move the highlight cursor up or down one line. <shft> PageUp = move the highlight cursor up 24 lines. <shft> PageDown = move the highlight cursor down 24 lines. 2. Keystrokes which move highlighted material (box highlight only) To move highlighted material on the screen, hold down the ctrl and shft keys and use the cursor arrow keys to move the highlighted material around. Once this process has been started, typing any other key will deposit the highlighted material in its present (new) location. You need to be aware that the deposited material will write over anything which was "under" it at the time of deposit. 3. Keystrokes which delete highlighted material If material is highlighted with the box highlight (white), Delete = remove the highlighted material from the window. Move material on the right over to fill the empty space. <ctrl> Delete = perform the delete operation described above and also place the deleted material in the "box buffer" (for possible future "pasting" in some other location) If material is highlighted with the line highlight (purple), Delete = delete the highlighted lines from the window Add these lines to the "line buffer" (also called the line refuse heap). 4. Keystrokes which perform arithmetic operations on highlight material If you have highlighted a column of numbers, you can type the letter t to get a total. If you have highlighted two, side-by-side columns of numbers, you can type the letter a (a for add) to get a third column, which is the sum of the elements of columns 1 and 2. If you type the letter s (s for subtract), you will get a third column, which is the difference of the elements of columns 1 and 2. If your highlight box extends far enough to the right of column 2 to leave sufficent room for column 3 (the result column), the numbers in column 3 will be right justified. If your highlighted numbers contain commas, the answers will have commas (where appropriate). If your highlighted numbers have money signs ($, £, ¥, DM), the answers will have money signs. If you mix your money signs, the arithmetic operation will not take place. 5. Keystrokes which change the color attributes of highlighted material (box highlight only) The following function keystrokes will change the character attributes (color combinations) for the characters in a highlighted box: F5 = White on Black F6 = Black on Red F7 = Red on Black F8 = Black on Brick <ctrl> F5 = Green on Black <ctrl> F6 = Black on Green <ctrl> F7 = White on Forest Green <ctrl> F8 = Black on Purple <shft> F5 = White on Tan <shft> F6 = Black on Orange <shft> F7 = Black on Goldenrod <shft> F8 = Black on Pink <ctrl-shft> F5 = White on Blue <ctrl-shft> F6 = Black on Turquise <ctrl-shft> F7 = White on Purple <ctrl-shft> F8 = White on Sea Green (The colors shown are defaults; they can be changed by the user. See INIT file under Advanced Topics) In addition to being distinctive on the screen, some of these color combinations have a meaning as font designators for purposes of printing hardcopy. F5 = regular upright font F6 = bold upright font F7 = regular italic font <shft> F5 = underlined regular upright font <shft> F6 = underlined bold upright font <shft> F7 = underlined regular italic font When writing a window to a file, the Dmuse editor converts the various character attribute transitions to escape codes. This way, when you reload a file, the attributes are preserved. The Dmuse printer driver knows how to convert character attributes (colors) to the various fonts listed above. 6. Using the highlight to draw boxes and lines The box highlight can be used to draw line patterns. The line drawing characters are directly accessable from the keyboard, but using them directly to draw anything but the most simple patterns can be tedious and time consuming. It turns out that most of the patterns people want to make with the line drawing characters can be built up from a series of boxes and/or lines. You can draw a box pattern by highlighting the box shape you want and typing either a minus sign (-) for a single line box or an equal sign (=) for a double line box. The pattern below was made by highlighting the box shape on the left and typing "-", and then highlighting the shape on the right and typing "=". Typing a tilda "~" after highlighting a box will erase any line drawing characters around the edge of the box. ┌──────────────────┐ │ │ │ ╔════╪═══════════════╗ │ ║ │ ║ │ ║ │ ║ └─────────────╫────┘ ║ ║ ║ ╚════════════════════╝ Notice that the program chose the correct intersection characters, ╫ and ╪, where the lines of the two boxes crossed each other. Single horizontal or vertical lines may be drawn by highlighting long, narrow boxes and typing either "-" or "=". The pattern below was made by first highlighting the large box and typing "=", and then highlighting each of the interior lines and typing "-". ╔═════╤═══════════════════════╗ ║ │ ║ ╟─────┼───────────────────────╢ ║ │ ║ ║ │ ║ ║ │ ║ ╚═════╧═══════════════════════╝ Notice again that the program has chosen the correct intersection characters. The order in which boxes are drawn does make a difference in some cases. The best way for the user to become familiar with this pattern drawing feature is to experiment with it. There two more things that can be said here. (1) If you highlight a box and type the tilda character (~), any line drawing characters along the edge of the box will be replaced with the space character (i.e., be erased). (2) The highlight method of drawing boxes and lines will never overwrite text. In the example below, the text was typed first, and then the box was drawn. ┌──This─is─a─box──┐ │ │ └─────────────────┘ ┌─────────────────────────────────────────────────┐ │ keystrokes for inserting, deleting and clearing │ └─────────────────────────────────────────────────┘ 1. The insert key Insert Typing the Insert key when nothing is highlighted will simply toggle the insert mode. When insert mode is on, any material added to the screen at the point of the cursor, either by typing or by inserting from the box buffer, will cause material which is already there to move to the right and make space for the added material. When insert mode is off, material added to the screen by typing or by inserting from the box buffer will overstrike whatever was there before. When insert mode is on, a plus (+) sign will appear in the title bar at the top of the window. <shft> Insert Typing <shft> Insert when nothing is highlighted will retrieve material in the box buffer. Material will appear at the position of the cursor. Whether this material displaces to the right or overstrikes the material that was there before depends on the state of the insert mode (see paragraph above). <ctrl> Insert If material is highlighted with the box highlight (white), typing <ctrl> Insert will load that material into the box buffer. Material formerly in the box buffer will be over written. The contents of the window will remain unchanged. <alt> Insert Typing <alt> Insert will insert a blank line above the line the cursor is on. Insert (again) If lines are highlighted (purple), pressing the Insert key will copy them to the line buffer. Lines put into the line buffer as a group can be taken out of the buffer as a group, provided no new lines are added in the interum. <shft-alt> Insert <ctrl-shft> Insert You may retrieve lines from the line buffer by typing <shft-alt> Insert or <ctrl-shft> Insert . <shft-alt> Insert will retrieve and remove the last group of lines added to the line buffer place them above the line the cursor is on. <ctrl-shft> Insert will retrieve but not remove the last group of lines added to the line buffer and place them above the line the cursor is on. <ctrl-shft> Insert allows you to make multiple copies from the line buffer. 2. The delete key Delete Typing the Delete key when nothing is highlighted will simply delete the character (or space) above the cursor. All characters to the right of the cursor move one space to the left to fill the space left by the deleted character. If material is highlighted with the box highlight (white), Delete will delete the highlighted material from the window. Material to the right will move over to fill the empty space. If material is highlighted with the line highlight (purple), Delete will delete the highlighted lines and add them to the line buffer. <shft> Delete Does nothing. <ctrl> Delete If material is highlighted with the box highlight (white), typing <ctrl> Delete will delete the highlighted material from the window and also place the deleted material in the "box buffer" (for possible future "pasting" in some other location). Material formerly in the box buffer will be over written. <alt> Delete Typing <alt> Delete will delete the line the cursor is on and place it in the line buffer (also called the line refuse heap). Lines deleted with <alt> Delete are never really lost; they accumulate in the line buffer over the entire time that Dmuse is running. A new Dmuse session will start with an empty line buffer. <shft-alt> Delete Typing <shft-alt> Delete will put the line the cursor is on in the line buffer without deleting it. Typing <shft-alt> ▼ will also do this and will also scroll the text up one line. This way, if you want to put several contiguous lines into the attic, you simply hold down <shft-alt> ▼ and and watch the lines scroll past the cursor until you have all the lines you want. 3. Keystrokes for clearing Keypad - = clear the line the cursor is on from the column the cursor is in to the end of the line. <shft> Keypad - = Keypad - plus clear all lines below the line the cursor is on. To clear the entire window, you must first push the Home key to move the cursor to the top of the window and then push <shft> Keypad -. ┌────────────────────────────────┐ │ keystrokes for formatting text │ └────────────────────────────────┘ The most powerful commands for text formatting operate when wordwrap is on (This advanced feature is discussed in the Advanced Topics help section). Nevertheless, there are some formatting commands designed to work with wordwrap off. 1. Keystrokes for setting margins The Dmuse editor maintains right and left margins in every window, irrespective of whether wordwrap is on or off. At startup, the left margin is set to the left of column 1, and the right margin is set at column 76. You may see where the margins and tabs are set by typing the F10 key (this key toggles the display panel). The left margin is moved left or right by holding down the left <shft-alt> keys and typing the ◄ or ► cursor keys. The right margin is moved in the same manner, except you hold down the right <shft-alt> keys and type the ◄ or ► cursor keys. Both margins can be moved together left or right by holding down the <ctrl-shft) keys and typing the ◄ or ► cursor keys. Normally the margin setting commands operate over the span of the paragraph the cursor is in. Occasionally you may want to reset the margin for an arbitrary number of lines, which might or might not span one or more paragraphs. In this case, the easiest method is to highlight a long, thin box which spans the lines over which you want to change the margin. You then use the change margin commands as described above. With wordwrap off, the position of the right margin does not play a major roll in what you do (or what you type). The position of the left margin does make some difference. Some commands which are dependent on the position of the left margin are listed below. Enter move cursor to the left margin and down one line <ctrl> Home move cursor to the left margin <shft> BackSpace move cursor to the left margin 2. Keystrokes which format text (wordwrap = off) When wordwrap is off, moving the margins will not reformat the text. In this situation, there are only three commands which will automatically move text on the screen. These are <ctrl> s, <ctrl> p, and <ctrl> Enter . <ctrl> Enter split line at cursor and put the right-hand part at the left margin of a new line inserted below the current line <ctrl> s reformat the part of the current paragraph which lies within the boundaries of the left and right margins into separate sentences beginning at the left margin and wordwrapping at the right margin (even though wordwrap is off). <ctrl> p reformat a group of sentences lying within the the boundaries of the left and right margins into a paragraph lying within the same boundaries. The definition of a paragraph for purposes of the <ctrl> s and <ctrl> p commands is a set of lines of text beginning at the left margin. The first line of the paragraph may be indented from the left margin. A paragraph ends when there is a line with a space character at the left margin. ┌───────────────────────────────────────┐ │ keystrokes for setting and using tabs │ └───────────────────────────────────────┘ Tab = move the cursor forward to the next tab on the line or to column 1 of the next line. (left)<shft> Tab = move the cursor backward to the nearest tab on the line or to column 1 of the current line or, if the cursor is in column 1, to the last tab position on the previous line. <ctrl> Tab = set (or remove) a tab marker at the column the cursor is in. (left)<ctrl-shft> Tab = clear all tabs. (right)<shft> Tab works like Tab , but it puts typing in "backup" mode. While in backup mode, the cursor does not advance; instead, characters move to the left to make space for the character just typed. The editor continues in backup mode until a period (.) or some non-character key is typed. Backup mode is designed for typing columns of numbers with decimal points. (right)<ctrl-shft> Tab works the same way, except the Tab in done in the backward direction (Tab right). F10 toggles the margin and tab display panel. ┌──────────────────────────────────────────┐ │ keystrokes for loading and storing files │ └──────────────────────────────────────────┘ KeyPad + = load a file into the current window. This command will cause a dialog box to appear, with a prompt for the name of the file to be loaded to the window. The file will be loaded starting at the line the cursor is on. If you want the contents of the window to match the contents of the file, you must move the cursor to the top of the window (by pressing the Home key) before loading a file. If you would like to see the contents of a file in Hexidecimal format, type "$ <Enter>" at the prompt. You will then be prompted again for the name of the file, and the Hexidecimal representation of the file (up to 400,000 bytes) will appear in the current window. Because you probably would not want these contents put back in the source file, the read-protect flag for the window is set (the word Window in the top Red line turns blue). The <ctrl>F10 key gives you the option of toggling this flag. Clearing the Window will also clear the flag. There is another way to load a file into the current window. If you are using the resident file manager ( F4 ), and you type a number which references a file in the listing of the current directory, the file manager will load that file into the current window. <shft> KeyPad + = store the contents of the current window in a file. This command will cause a dialog box to appear, with a prompt for the name of the destination file. The entire contents of the window will be stored in the file. Since it is often the case that you are using the editor to make changes to a pre-existing file (i.e., you loaded a file, made changes, and now want to store the result back in the original file), the Dmuse editor provides you an easy way to do this. You simply type $ <Enter> at the prompt. <ctrl-shft> KeyPad * = toggle the "exempt CR" flag. Explanation: Microsoft Windows and Linux have slightly different conventions for representing the end of a text line in an ASCII "flat file." Microsoft uses the character combination carriage- return + line-feed (byte values 13 and 10); Linux and UNIX use only the line-feed byte (byte value 10). The user can expect to encounter both formats. Since Microsoft formatted files probably outnumber Linux formatted files, and since all Musedata amd Score files use the Microsoftformat, this is the default. However, it is possible for Dmuse to make an educated guess about the format for each file loaded into a window. If Dmuse thinks it is loading a file in the Linux format, the "exempt CR" flag is set in the top Red bar of the window. It looks like this in the bar: connect mode ─┐ exempt CR ─┐ │ ↓ ↓ +▒[*] 1446.065 ↑ ↑ ↑ insert mode ─┘ │ └─ row number └─ line number If the exempt CR flag is set and the contents of the window are stored in a file, Dmuse will leave off the CR at the end of each line and use only the single byte (10) to denote the end-of-line. <ctrl-shft> KeyPad * allows the user to toggle this flag and therefore to control the format of files stored from windows. ┌─────────────────────────────────┐ │ keystrokes for changing windows │ └─────────────────────────────────┘ The Dmuse editor consists of 30 independent super-imposed work windows numbered 0 through 29, and one HELP window. Windows 0 through 9 may be accessed by pressing the KeyPad numbers KeyPad 0 to KeyPad 9. Windows 10 through 19 may be accessed by holding down the <ctrl> key and pressing KeyPad 0 to KeyPad 9. Windows 20 through 29 may be accessed by holding down the <alt> key and pressing KeyPad 0 to KeyPad 9. The number lock must be OFF for these commands to work. KeyPad . acts as a toggle switch between the window you are currently in and the window you were previously in. This key is especially useful when you want to make a quick comparison between two windows whose contents are nearly the same. The HELP window can be loaded only by pressing F2 , moving the highlight to the Help tab on the top menu bar, then choosing one of the help subjects. (Presumably, you did this to see this very document.) Thereafter, you may use the <shft> F1 key to toggle between the HELP window and whatever work window you are currently using. ┌───────────────────┐ │ the function keys │ └───────────────────┘ 1. Function Key 1 (F1) F1 = elementry help <shft> F1 = toggle between the current window and the HELP window. The HELP window is loaded by pushing F2 and then selecting one of the subjects under help. <ctrl> F1 = explain the editor keystrokes. 2. Function Key 2 (F2) F2 = activate top panel. <shft> F2 = Save the current state of Dmuse in a default file and EXIT Dmuse. <ctrl> F2 = Save the current state of Dmuse in a file which you specify and EXIT Dmuse. <ctrl-shft> F2 = EXIT Dmuse without saving the current state. 3. Function Key 3 (F3) F3 = move the cursor to a specified line number. <ctrl> F3 = check window data structure. The Dmuse screen editor uses a virtual memory management system for storing the contents of the windows. On rare occasions, the data structure for a window becomes corrupted. If you suspect this has happened, push <ctrl> F3. This command will check the data structure, and if it is corrupted, try to rebuild it. After you have done this, it is a good idea to save any files you are working on and exit Dmuse using the <ctrl-alt> F2 command. The problem will be gone when you restart the program. 4. Function Key 4 (F4) F4 = activate the resident file manager. 5. Function Keys 5-8. (F5,F5,F7,F8) The following function keystrokes will change the character attributes (color combinations) for typed characters in the current window. (The colors shown are defaults; they can be changed by the user. See INIT file under Advanced Topics) F5 = White on Black F6 = Black on Red F7 = Red on Black F8 = Black on Brick <ctrl> F5 = Green on Black <ctrl> F6 = Black on Green <ctrl> F7 = White on Forest Green <ctrl> F8 = Black on Purple <shft> F5 = White on Tan <shft> F6 = Black on Orange <shft> F7 = Black on Goldenrod <shft> F8 = Black on Pink <ctrl-shft> F5 = White on Blue <ctrl-shft> F6 = Black on Turquise <ctrl-shft> F7 = White on Purple <ctrl-shft> F8 = White on Sea Green 6. Function Key 9 (F9) F9 = change global parameters. 7. Function Key 10 (F10) F10 = turn the margin and tabs display panel on and off. <ctrl> F10 = change display parameters for this window. 8. Function Key 11 (F11) F11 = search forward (to the left and then down) in the current window for the next occurance of the search string (see the section on keystrokes which produce large leaps of the cursor). 9. Function Key 12 (F12) F12 = search backward (to the right and then up) in the current window for the previous occurance of the search string (see the section on keystrokes which produce large leaps of the cursor). <shft> F12 = Save the current state of Dmuse in a default file. Do not exit. <ctrl> F12 = Save the current state of Dmuse in a file which you specify. Do not exit. ────────────────────────────────────────────────────────────────── ┌───────────────────────────────────────┐ │ T H E D A T A B U F F E R S │ └───────────────────────────────────────┘ The Dmuse editor maintains three separate data buffers to aid in the storage and transfer of text within a window and between windows: the box buffer, the line buffer, and the stream buffer. The box buffer is operational only when wordwrap is off; the stream buffer is operational only when wordwrap is on. The line buffer is operational all of the time. ┌────────────────┐ │ the box buffer │ └────────────────┘ The box buffer stores text data in a rectangular format, i.e., the data in the buffer represents a rectangular area with a specified number of rows and columns. The buffer can hold only one data pattern at a time, so whenever you put something into the buffer, whatever was there before is lost. To put something in the box buffer, you must first highlight it with a box highlight. To create a box highlight, put the cursor at a position which is the upper left-hand corner of the area you want highlight. Holding down the right <shft> key, move the cursor to the left with the ► cursor key. You will see a (white) highlight start to appear on the current line. Now, while continuing to hold down the right <shft> key, move the cursor down with the ▼ cursor key. The highlight will extend downward with the cursor. You may change the size of the highlight using any of the four arrow keys, while still holding down the right <shft> key. When you have highlighted an area of the window, there are two commands which will load this material into the box buffer. <ctrl> Insert = copy material in the box highlight to the box buffer. Contents of the window remains unchanged. <ctrl> Delete = copy material in the box highlight to the box buffer. Delete the highlighted material from the window. Data to the right of the highlight shifts left to fill the empty space. The contents of the box buffer may be copied to any window any number of times. The command to copy the box buffer is <shft> Insert . The top left-hand corner of the material in the box buffer will be copied to the window at the point of the cursor. If insert mode is on, material already at that point in the window will move to the right to make space for the buffered material; if insert mode is off, the contents of the box buffer will over write what was in the window at that point. ┌─────────────────┐ │ the line buffer │ └─────────────────┘ The line buffer differs from the box buffer in two fundamental ways. Whereas the box buffer can hold only one pattern at a time, the line buffer can hold virtually an unlimited number of lines. In fact, the line buffer is actually a line refuse heap; all lines deleted with various forms of the the Delete key end up stored in the line buffer. Secondly, whereas the contents of the box buffer cannot be removed, but only overwriten, lines in the line buffer can be taken out. Any lines deleted with a line delete command are automatically put in the line buffer. Lines can be deleted in two ways: 1. <alt> Delete will delete the line the cursor is on. 2. If you push the Delete key after highlighting a group of lines with the line highlight (purple). The group of lines will be deleted. To create a line highlight for a group of lines, put the cursor on the first line in the group and holding down the right <shft> key, move the cursor to the down with the ▼ cursor key. You will see a (purple) highlight appear on the current line. While continuing to hold down the right <shft> key, move the cursor down with the ▼ cursor key until you have highlighted your entire group. If your is group is large, you may want to use the right <shft> PageDown key, which adds 24 lines to the group at a time. If you overextend the highlight, the right <shft> ▲ and right <shft> PageUp keys will decrease the number of highlighted lines. Lines may be inserted into the line buffer without being deleted from the window. 1. <shft-alt> Delete adds the line the cursor is on to the line buffer without deleting the line from the window. 2. <shft-alt> ▼ does the same thing, but also scrolls the screen. This feature allows you to scroll through large sections of a window, adding lines to the line buffer as you go. 3. If you push the Insert key after highlighting a group of lines with the line highlight (purple). The group of lines will be added to the line buffer. The line buffer is a last-in, first-out buffer. When you retrieve lines from the buffer, the last line you put in will come out first. The command that retrieves lines from the buffer is <shft-alt> Insert. This command normally retrieves a single line at a time; however, in the case where the last line put in the buffer was part of a group, the command will retrieve the entire group. Repeating the command thereafter will retrieve one line at a time. Lines can be retrieved to any line location in any window. Simply put the cursor on the line where you want lines inserted and press <shft-alt> Insert. When you retrieve lines from the line buffer using the <shft-alt> Insert command, those lines are taken out of the buffer. If you want to copy lines from the line buffer to the screen without taking them out of the buffer, you must use the <ctrl-shft> Insert command. This command normally copies only the last line; however, in the case where the last line put in the buffer was part of a group, the command will copy the entire group. Repeating the command thereafter will also copy the entire group. ┌───────────────────┐ │ the stream buffer │ └───────────────────┘ The Dmuse editor includes a stream buffer for use when wordwrap is on. Essentially, the stream buffer treates text data as a simple sequence of characters, with no information about where line breaks might have been. In this way, streams of characters (sentences) can be added and deleted from paragraphs, irrespective of where the margins might be set. The stream buffer is discussed in the Advanced Topics help section under wordwrap. ────────────────────────────────────────────────────────────────── ┌────────────────────────────────────┐ │ T H E E N V I R O N M E N T │ └────────────────────────────────────┘ ┌───────────────────────────────┐ │ parameters of the environment │ └───────────────────────────────┘ The basic environment of the Dmuse editor consists of 20 independent windows. Parameters of the environment come in two types: those which are global and apply to all windows, and those which are specific to each window. Parameters specific to each window ────────────────────────────────── 1. the contents of the window (text in the window). 2. cursor position in the window 3. portion of the window shown by the screen 4. right and left margins. These are set using the right <shft-alt> and the left <shft-alt> together with the ► and the ◄ cursor keys. 5. tab markers. These are set using the <ctrl> Tab command 6. color attributes for typed characters. These are set by typing the various combinations of <ctrl>, <shft>, and one of the function keys: F5 , F6 , F7 , and F8 . 7. screen display mode. This is selected using the <ctrl> F10 command and specifying "d" to set the display mode. 8. insert mode. This is toggled with the Insert key. 9. Exempt_CR file. This flag determines which format to use when writing a window to a file. When the flag is set (on), the end-of-line marker is a single LF byte; when the flag is clear (off) the end-of-line marker is the two byte sequence CR + LF (Microsoft convention). This flag may be toggled with the <ctrl-shft> KeyPad * keystroke. 10. wordwrap. If wordwrap is enabled, this is toggled with the KeyPad * key. 11. Ibex connection. If the Ibex interpreter is enabled, this is toggled using the <shft> KeyPad * command. 12. current directory and current drive. These can be changed by the file manager ( F4 ). 13. read protect. This is turned on if a file is loaded in hex format, or if a directory is loaded into a window. Read protect can be toggled, using the <ctrl> F10 command and specifying the "r" option. Whne read-protect is ON, the word Window in the top Red bar is blue. 14. window modified flag (blue highlight of the colon after the window number in the top red bar). This flag comes on if the contents of a window is different from the file from which the window was loaded. Simply put, if you load a file into a window and then type in that window, the window modified flag flag comes on. If you write the contents of a window into a file, the window modified flag goes off. Parameters which apply to all windows ───────────────────────────────────── 1. the contents of the box, line, and stream buffers 2. the Caps Lock and Num Lock keys 3. the margin reformatting parameters. These are set using the <ctrl> F10 command and specifying "m" for margin reformatting options. 4. the current search string. This is set by the KeyPad / command. 5. the print-screen parameters. These are set by pressing the F9 key and selecting "p" for print parameters. 6. language dictionaries (advanced topic). ┌─────────────────────────────────────┐ │ saving the state of the environment │ └─────────────────────────────────────┘ The Dmuse program at any particular time is in a particular state of being, and is waiting for you to do something. There are two reasons why you might wish to preserve (record the parameters of) the current state: (1) you might want to save the state of things for archival or safety purposes, and/or (2) you might want to exit Dmuse right now (maybe even turn off your computer) and restart Dmuse later with everything the way you left it. Dmuse provides you with some commands for saving most of the parameters of the current state. There are two choices you need to make when you save the current state, which means there are four possible commands. The choices are: (1) exit Dmuse vs. don't exit Dmuse after saving the state, and (2) save the state in a default file vs. save the state in a file, the name of which you specify. The four commands are shown in the table below. ┌──────────► Commands for saving the state of Dmuse ◄──────────┐ │ │ │ Save the current state │ │ Save the current state of Dmuse in a file which │ │ of Dmuse in a default you specify. To return │ │ file. To return to this to this state, type │ │ state, type \"dmuse $\" \"dmuse <file name>\" │ │ at the DOS prompt. at the DOS prompt. │ │ ┌────────────────────────┬────────────────────────┐ │ │ EXIT │ │ │ │ │ Dmuse │ <shft> F2 │ <ctrl> F2 │ │ │ │ │ │ │ │ ├────────────────────────┼────────────────────────┤ │ │ Do not│ │ │ │ │ EXIT │ <shft> F12 │ <ctrl> F12 │ │ │ Dmuse │ │ │ │ │ └────────────────────────┴────────────────────────┘ │ └──────────────────────────────────────────────────────────────┘ Not all parameters are saved by these commands. Listed below are the state parameters of Dmuse together with a code telling you what is saved and what is not. = parameter or data saved = parameter or data not saved Parameters specific to each window ────────────────────────────────── 1. the contents of the window (text in the window). 2. cursor position in the window 3. portion of the window shown by the screen 4. right and left margins. 5. tab markers. 6. color attributes for typed characters. 7. screen display mode. 8. insert mode. 9. Exempt-CR flag. 10. state of wordwrap. 11. state of Ibex connection, and the state of any Ibex program that might be running at save time. 12. current directory and current drive. 13. read protect. 14. window modified flag. Parameters which apply to all windows ───────────────────────────────────── 1. the contents of the box, line, and stream buffers 2. the Caps Lock and Num Lock keys 3. the margin reformatting parameters. 4. the current search string. 5. the print-screen parameters. 6. language dictionaries settings (advanced topic). It is very handy that Dmuse allows you to save the state of the program. However, there is a dangerous pitfall that you need to be aware of. The process of saving the state of Dmuse does not store the contents of each window back to the file from which it came. The pitfall is this: Suppose Window 0 is loaded with the text of a file you are currently working on and you save the state of Dmuse and exit. Suppose later that you make changes to the text file, so that the version which is "state saved" in Window 0 is no longer current. Suppose that still later, you restart Dmuse using the saved state of the program and you forget that the contents of Window 0 is no longer current. There is nothing to warn you that Window 0 is no longer current, so if you store Window 0 back to the source text file, you will be over-writing a more recent version of the text file with an older version. There are two steps you can take to assure that this error never occurs. (1) Before you save the state of Dmuse, make sure that all windows containing current work-in-progress have been written back to their respective files. (2) If you restart Dmuse from a "saved state", be suspicious of the contents of any window with the blue "window modified" flag on. This flag means that the window was modified and not written back to its source at the time the state was saved. Even safer would be to reload every window containing a a file you consider important. ┌───────────────┐ │ exiting Dmuse │ └───────────────┘ The normal way to exit Dmuse is to type <ctrl-shft> F2 . If you want to save the state of Dmuse before you exit, you have two options: <shft> F2 will save the state of Dmuse in a default file and then exit; <ctrl> F2 will save the state of Dmuse in a file which you specify, and then exit. To restart Dmuse using the state saved in the default file, you would type "Dmuse $" at the Linux prompt; to restart Dmuse using the state saved in the file you specified, you would type "Dmuse <filename>" at the Linux prompt. ────────────────────────────────────────────────────────────────── ┌────────────────────────────────────────────────────────────┐ │ P R I N T I N G T E X T F R O M A W I N D O W │ └────────────────────────────────────────────────────────────┘ The Dmuse editor provides a means of printing the contents of a window. For this to work, the hardware and software need to be set up properly. ┌───────────────┐ │ printer setup │ └───────────────┘ Dmuse expects to find an HP LaserJet or similar printer connected to the parallel port, LPT1. On most PC's there is only one parallel port -- the 25 pin connector. In addition, if you want to print anything, you must make sure that you have permission to write to the device /dev/lp0. To get this permission, switch to superuser and type: chmod 666 /dev/lp0 at the Linux prompt. ┌────────────────────┐ │ printer parameters │ └────────────────────┘ As a default, the Dmuse editor is set up to print with the following parameters: topline: 5 number of lines: 54 lines per inch: 6 left margin: 80 / 100ths of an inch. number of copies: 1 orientation: normal page (top to bottom) font type: Courier size: 12 point You may change these parameters by pressing F9 and choosing "p" for print options. Follow the instructions to change these parameters as desired. You may print at 6 lines per inch (normal single space) or at 1, 2, 3 (double space), 4 or 8 lines per inch. The position of the left margin is measured in 100ths on an inch (100 = 1 inch). You may specify from 1 to 20 copies of each page. You may print in either normal page mode (page oriented up and down) or in sideways mode. Font types include 12 pt Courier, 10 pt Courier and 8.5 Line Printer. Printer parameters are global to all windows of Dmuse. ┌─────────────────────┐ │ the PrintScreen key │ └─────────────────────┘ To print the contents of a window, you must first format the contents of the window for the printer. Press <shft>PrintScreen to do this. You will be given the name of a temporary file. You must then (in connect mode) run the program printscr. If you printer is hooked up properly, this will print the temporary file. The temproary files are stored in the directory disp/print (on most computers in the path /usr/local/apps). ────────────────────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────┐ │ L O A D I N G A N D S T O R I N G F I L E S │ └─────────────────────────────────────────────────────────┘ ┌────────────────────────────┐ │ loading a file to a window │ └────────────────────────────┘ The first thing to remember when you decide to load a file to a window is that the loading will commence at the line the cursor is currently on. If the cursor is not at the top of the window (line 1), whatever lines are above cursor will not be affected by the loading of a new file. As a result, the contents of the window will not match the contents of the source file. If you want the contents of window to match the contents of the source file, you must put the cursor on line 1 before loading the file. The best way to do this is to press the Home key. Before loading a file into a window, the Dmuse editor automatically moves the cursor to column 1 and clears the window at and below the cursor. You do not need to clear the window. There are two ways to load a file into the current window. The KeyPad + command will cause a dialog box to appear, with a prompt for the name of the file to be loaded to the window. If you specify a valid file name, that file will be loaded to the window. The second way to load a file into the current window is to use the resident file manager ( F4 ). If you activate the resident file manager and then you type a number which references a file in the listing of the current directory, the file manager will load that file into the current window. It is possible to load a directory into a window. If you type KeyPad + and specify the name of a directory at the prompt, the directory listing will be loaded into the window. It is possible to load the current window with the contents of another window. Use the KeyPad + command, and type *<#> at the prompt, where <#> = the number of the window you want to load into the current window. When you select a file to load into a window, Dmuse inspects the first 80 bytes of the file to determine whether the file contains ASCII (readable) text. If Dmuse finds more than 10 non ASCII bytes in this group, it becomes suspicious that the file is non ASCII and asks you whether you really want to load the file. If you type "Y", it asks you if you would like to see the file in HEX format. If you type "Y" again, the window will be loaded with a hexideciaml representation of the bytes in the file. An ASCII translation will also appear at the right. In this case, the contents of the window describes but does not match the contents of the file. To prevent you from inadvertently trying to store the contents of the window back into the source file, Dmuse turns on the read-protect flag for this window. You may turn the flag off using the <ctrl> F10 command and chosing the "r" option. Even if a file is ASCII, it is possible to load the file in HEX format. Use the KeyPad + command, and type "$" at the prompt. Type the file name at the second prompt. It is possible to load several files sequentially into one window. Simply load the first file; press the End key to put the cursor at the bottom of the window; load the second file (the window above the cursor will remain unchanged by this); press the End key again; load the next file, etc. ┌────────────────────────────────────────────┐ │ storing the contents of a window to a file │ └────────────────────────────────────────────┘ The command for storing the contents of a window into a file is <shft> KeyPad +. You will be prompted for the name of the output file. If you type "$", the output file will be the file listed in the red title bar above the window. In most cases, this will be the source file from which the window was initially loaded. The "$" response lets you overwrite (update) the source file with the contents of the window. If you respond to the prompt by typing the name of a file, and a file by that name already exists, Dmuse will ask you specifically whether you want to overwrite the pre- existing file. If the file you specify does not already exist, Dmuse will create a new file. If the read protect flag is on for a particular window, that window cannot be written to a file or copied to another window. The read protect flag may be turned off using the <ctrl> F10 command and chosing the "r" option. ┌──────────────────────────────────┐ │ Microsoft vs. Linux file formats │ └──────────────────────────────────┘ They are actually slightly different. The Microsoft file format uses two characters (CR=carriage return, and NL=new line) at the end of each record or line. Linux uses only the single NL character. When a file is loaded, the terminators are stripped from each record; and when a file is stored, the terminators are added back. When a file is loaded, Dmuse makes a best guess determination of which format is in use. If the format is Linux, a flag is set at the top of the window. This way, Dmuse can keep track of the file's original format and can restore it thus. If a window is being stored for the first time, the default is the Microsoft format. The user may toggle the file format flag by pressing <ctrl><shft>KeyPad *. This way the user has control over which format is used when storing a file, irrespective of what format the file was in originally. There is one other aspect in how Dmuse uses the two formats. This regards the treatment of the Tab character in a line or record. Normally, Dmuse treats a Tab character (ascii 9) like any other character. Its display glyph is '┊'. However, there are times when the user may want the Tab character to actually "tab" to the right, to the next tab distance. Since we have two format types already, the decision was made to use the Linux format type to implement a tab feature; that is, any tabs encountered in a line will cause spaces to be added out to the next tab distance. The tab glyph, itself, appears in place of the last added space so that the user can see that the tab was present and was used to add spaces. Likewise, when a file is being stored in the Linux format, all spaces preceding a Tab character are removed (up to one less than the tab distance). In general, this feature works fine; but there needs to be a way for the user to store a file in Linux format, but also have full control of the position of Tabs and spaces. This is accomplished using the ascii 250 (the centered ·) character. If this character is used as a space before a Tab character, the <shft> KeyPad + command will recognize it as such and remove it along with any ascii 32 spaces it finds. But if this command is combined with the <ctrl> key, i.e. <ctrl><shft>KeyPad +, then only the ascii 250 (centered ·) characters are removed. Thus ascii 32 spaces before Tab characters can be preserved. If you want to load a Linux formatted file with tabs and you want all added space characters to be represented by ascii 250 (the centered ·), the command <ctrl>Keypad + will do this. In summary, then, using the <ctrl> key with the commands Keypad + and <shft>KeyPad + will cause the loading and storing of Linux formatted files to use and recognize only the ascii 250 character as added space; the ascii 32 characters are unaffected. Note that in the the Microsoft format, the Tab character is treated like any other character, and spaces are neither added nor removed when loading a file to a window or storing a window to a file. ──────────────────────────────────────────────────────────────────