VINST15.DOC ----------- [Supplement to VDE15.DOC] Instructions for Macros and VINSTALL utility (c)1987-89 Eric Meyer ================================ CONTENTS ================================== (continued) 6. MACROS. Explanation and examples of: Function keys, Key redefinition files, Macros, Macro keys, Macro programming, Recording macros. 7. RUNNING VINSTALL. How to use VINST.COM to modify VDE.COM.: A. INSTALLATION. Installing for different computer hardware: ============ Screen size; IBM compatibility; Colors; Fonts; Snow. B. USER OPTIONS. Customization of many initial VDE settings. C. PRINTER INSTALLATION. Using special printer features: print modes, graphics, etc. D. DEFAULT MACRO KEYS. Installing a default set of macro keys. E. DEFAULT FUNCTION KEYS. Installing the function keys. F. GRAPHICS. Modifying the default set of graphics characters. G. RESTORE DEFAULTS. Undoing previous modifications. ================================ 6. MACROS ================================= (Command mode only) Macros are a sophisticated and powerful tool for automating repetitive tasks. A "macro" is a string of VDE commands and/or text that you can type in once and then have repeated automatically. (Note: for large pieces of boiler- plate text, read in disk files with ^KR instead.) A "function key" is a macro assigned to one of the [F1]...[F40] keys, while a "macro key" is a macro assigned to a key Esc0...9 or EscA...Z; these can all be defined either while editing, or with VINSTALL. "Macro programming" involves the use of special commands allowing a macro to perform more complex operations including loops and conditional execution, much like a programming language. VDE's 76 user-definable macros allow you to customize it for any task, such as the formatting requirements of specialized professional writing, or many programming languages. Many examples are given below. To create a macro, while editing, you can: (1) use the Esc[ command, and type the necessary keystrokes at the prompt. You may want to plan or compose the macro first, using pen and paper. Certain keystrokes, like [Ret] or ^X, are line editing commands, and must be preceded by a ^P to enter them into the macro; the input line has a 65-key limit. See MACROS, PROMPTS. (2) use the Esc" command. Type the desired keystrokes, exactly as you would while editing: no ^P prefixes are required, and you will see the results as you type. There is a 128-key limit. See RECORDING MACROS. Macros execute EXACTLY as though you had typed the given keys yourself. EXAMPLE: to read in a letterhead file called LETTER.HDR at the top of your file, you would type: ^QR to get to the top of the file ^KR to read in a file LETTER.HDR to specify filename at the "Read file:" prompt [Ret] to end the filename input So this is exactly what you need to enter in your macro. Note that ALL the input -- every keystroke, including answers to prompts, [Ret] keystrokes, and so on -- MUST be included. For further details see MACROS. Once again, ordinarily macros are completely self-contained, and NEVER request input from the keyboard while running. There are two exceptions: (1) If a reformat (^B) operation is in progress and dehyphenation is required, the "Remove?" prompt will appear in the header and a "Y/N" answer will be necessary to continue. (This is a decision the macro can't make.) See REFORMAT. (2) Using the AltR command in macros is tricky: input while running a program must come from the keyboard. (At that point VDE is no longer in control.) See RUN COMMAND. USING MACROS FUNCTION KEYS ([F1]...[F40]) - Up to 40 macros can be assigned to function keys; they can then be recalled and used with one keystroke. Each of the 10 function keys can be used with Shift, Ctrl, or Alt, to produce: Shift-[F1]...[F10] = [F11]...[F20] Ctrl-[F1]...[F10] = [F21]...[F30] Alt-[F1]...[F10] = [F31]...[F40] The new Extended (101-key) keyboards actually have extra keys labeled [F11] and [F12]; VDE will not recognize these keys. Otherwise, function keys are defined (with the Esc] command, or with VINSTALL) and used exactly like macro keys. See MACRO KEYS. KEY DEFINITION FILES (AltU) - These files save sets of macro key or function key definitions, and should be given file types of ".VDK" and ".VDF", respectively. You can load any key file, along with your text file to edit, from the command line (see SYNTAX). In addition, they can be loaded or saved with the AltU command while editing in VDE, and can also be created or installed as defaults in your copy of VDE with the VINSTALL program (see below). The AltU command will ask whether you want to "L"oad or "S"ave such a file, then prompt for the name of the file. The filetype MUST be ".VDK" or ".VDF", and will determine whether MACRO or FUNCTION keys are affected. If you load such a file, those definitions will replace any previous ones. If you save, the current definitions will be written to the file. MACROS (Esc[) - When you are in the middle of doing something in VDE, and find that you need to do something many times, it may be less tedious to have it repeated automatically. If you type Esc[ you will be asked for the string to execute, then a "Repeat count". Usually you will simply type a number for the repeat count (0-254, or "*" for indefinite). You will see the results as the macro executes, and you can abort it at any time by pressing Esc. (You can speed up macro execution by specifying "Quiet" mode: type "^Q" before the repeat count. Only the header will be updated as the macro runs. Don't do this if the macro concludes by requesting user input -- the necessary prompts would not display!) Macros also stop any time an error occurs; the error message will be visible, and can be cleared by pressing Esc. Many commands (like Find or Reformat) are designed to generate errors at the end of the file so that an indefinite ("*") macro containing them will halt there. Other indef- inite macros may need to be aborted manually. VDE turns INSERT OFF before running a macro, so that the same sequence will always have the same effect. The INSERT status is restored when the macro terminates. (To insert text with a macro, use ^V.) In order to include any input line editing characters (BS (^H), [Ret] (^M), ^J, ^X, ^U, ^P) in a macro, you must prefix them with ^P. (NOTE: To make them easier to read and understand, macro listings will be given here as they function, not as they are typed in. ^P prefixes as needed are NOT shown: remember that you need to add them! Keystrokes are often separated by spaces for clarity; the "_" symbol is used to represent an actual space character typed. Here are some sample macros: 1. Reformat an entire file (Wordstar ^QQB): after Esc[, just enter ^B Specify quiet and indefinite repeat as options ("Q*"). 2. View a file by scrolling slowly through it: Esc; ^C This will pause, then scroll down. (Use a repeat count of "*".) 3. Enter a long graphics border for a box. (This can get tedious by hand.) Assuming graphic "Y" is the horizontal bar, AltG Y will enter one character. You can get a line 40 characters long by giving a repeat count of "^Q40" (the "^Q"uiet option avoids unnecessarily displaying the menu). 4. Can you figure out what this one does, if entered with a repeat count of "*"? (Answer: .elif eht fo dne eht ta meht fo tsil a gnikam elif a fo tuo sesehtnerap ni stnemmoc ekat lliw tI) ^QR ^QF(^J ^G ^KB ^QF)^J ^G ^KK ^QC [Ret] ^KV VDE macros are very powerful tools, particularly given their program ability and storage on macro Keys. MACRO KEYS (Esc],0...Z) - Up to 36 macros can be stored (0...9,A...Z), by entering them with the Esc[ command, then using Esc] to save them. They can then be recalled and used with two keystrokes. Example: typing Esc]3 will store the last macro used as key 3, and it can be recalled and reused at any future time simply by typing Esc3. Ordinarily, macro keys operate just like the original macro: they will ask for a "Repeat count" when executed. In many cases, you will want a key to execute only once when invoked; you can make a key "No-repeat" by typing ^N before the keycode. Example: Esc]^N3 stores a macro to key 3 as a non-repeating sequence. If you want the key to run in Quiet mode as well (to increase speed and minimize display activity), you can instead type ^Q: Esc]^Q3 stores a quiet, non-repeating sequence. Using a defined key brings its definition into the macro buffer (whence it can be stored again, if desired). Trying to use an undefined key results in an error. You can delete a key definition by entering an empty macro string (Esc[, return) and storing it to the key. There is a total of 982 bytes available for all 36 keys, and a 128 byte limit for any one key. (VDE's own input line will only accept 65 bytes, but VINSTALL can handle up to the full 128.) EXAMPLES: Besides simply storing any macro, these Keys are useful for storing a frequently repeated phrase; "EscW" is much more convenient than "World Wide Widgets Ltd. (N.A.)". You might also define one as a common command like ^PS, for underlining; or a set of margins, like ^OR60[Ret] ^OL5[Ret]. A key defined as ^QR ^N AltD ^OF would place the current date at the top right of a letter. Keys defined with Esc] are of course temporary. (VINSTALL allows you to install them permanently; see DEFAULT FUNCTION KEYS.) MACRO PROGRAMMING (Esc0...Z,!,=,~,(),+,-,&,;) - VDE has several commands that operate only in a macro string, and give you conditional control over the execution of a macro, allowing real programming. Esc0...Z, when in a macro, function simply as "labels" 0...Z. They have no effect, but can be "jumped" to by other commands. Esc! followed by 0...Z is a simple "jump" instruction, causing macro execution to resume with the command following the label Esc0...Z. Example: Esc!2 jumps to label 2. As two special cases, Esc![ jumps to the beginning of the macro, and Esc!] jumps to the end (aborts). Esc= and Esc~, followed by a character and then a label 0...Z (or "[","]"), are conditional jumps: they jump to that label IF the character at the cursor position does (or for "~", doesn't) match that specified. Example: Esc~^M2 jumps to label 2 if the current character is NOT a CR. Esc= and Esc~, followed by a character and then ">" or "<", are search loops. They will continue to move the cursor right (or for "<", left) as long as the character at the cursor does (or for "~", doesn't) match, or until the beginning or end of the file. Example: Esc=_> moves right as long as the current character is a space. Several commands allow the use of a counter variable. Esc() sets the value: for example, Esc(0) initializes it to zero. The Esc+ command simply increments the value; Esc- (that's Esc,minus) decrements the value, then jumps if it is zero to a specified label. (In addition to a number, you may use "[" or "]" for the start or end of the macro, or "@" to avoid jumping entirely.) Example: Esc-] decrements the counter, jumping to the end (exiting) if it reaches zero. Esc&, followed by 0...Z, is used to "chain" to another macro key. In this way you can build up strings longer than the 65/128-byte limit on any one key. It does not "call" the key; there is no returning. Example: Esc&M chains to key M. Esc; (semicolon) gives a brief pause before execution continues, presumably so the user can see what's happening on screen. Macro programs are stored just like any other macro string (usually as No-repeat). If you program an endless loop, you will at some point have to abort by pressing Esc. Don't make macro programs Quiet until you're sure they work. EXAMPLE 1: here is a good macro program (best stored as a Quiet key) to move the cursor to the start of the current sentence: Esc~.1 ^S Esc1 Esc~.< Esc2 ^D Esc=_2 Esc=^M2 You could write this out in programmer's pseudo-code as: If not "." goto label1 Move left ;move left if already on period label1: While not "." move left ;move left to previous period label2: Move right ;now move back right If " " goto label2 ; as long as you see a space If "^M" goto label2 ; or a Return (all done) EXAMPLE 2: a macro to move to the start of the current paragraph: ^QS ^S^S Esc=_[ ^D^D EXAMPLE 3: a macro to delete a word to the LEFT of the cursor: ^S Esc~_2 Esc1 ^G^S Esc=_1 Esc2 ^G^S Esc~_2 ^D EXAMPLE 4: a macro to match parentheses. Many programming languages use nested sets of parentheses, for example "{}" in C. This program, when the cursor is placed on an open bracket, will move ahead to find the closed bracket that matches it: Esc~{] Esc(0) Esc1 Esc~{2 Esc+ Esc!3 Esc2 Esc~}3 Esc-] Esc3 ^D Esc!1 EXERCISE: suppose you have a file captured from an online session with a remote system. You corrected a lot of "misteaks" as you typed, using the Backspace key -- and now that's all in the file: I hardly ever make misteak^H^H^Hakes! Write a macro program to go through the file and neaten those all up, deleting the erased characters along with the ^H's. RECORDING MACROS (Esc") - As an alternative to composing macros and using the Esc[ command to type them in, you can simply record a macro from a sequence of keystrokes as you go about a task. Press Esc" to activate recording; type away; then press Esc" again to conclude. You will then be asked for the repeat count, etc (see MACROS). No confusing ^P prefixes are needed, and you can take advantage of the full 128-key length limit. While recording, a quote mark (") will be visible in the upper right (prefix) area of the header, if the header is displayed. Note: function and macro key commands will not work while macro recording is in progress. ========================== 7. RUNNING VINSTALL ============================= VINSTALL is a utility that lets you customize your copy of the VDE editor. Most of this involves options that you need not concern yourself with at first: in the course of using VDE, you will discover how you want these things set. However, there are important changes you will need to make to VDE before using it, if you have a computer that: * Is not fully IBM compatible (BIOS, video). * Experiences "snow" problems with programs that write directly to video memory (older style CGA adapters). An uninstalled copy of VDE will ask you whether it is running on an IBM compatible computer. Once you have used VINSTALL this message will disappear. Your copies of the program files will have names like VINST13.COM and VDE13.COM. Feel free to rename these to VINSTALL and VDE, as will be assumed here (or to VI and V, as I do). To run VINSTALL simply type: name of a copy of VDE to modify: C>vinstall if your copy is called "VDE.COM" or C>vinstall FILENAME if it's called something else. Notes: VINSTALL modifies the file VDE.COM; always keep an unmodified original copy of all VDE files in case problems arise! The version numbers of VINSTALL and VDE (and any auxiliary key or printer files, see below) must agree, or you will get an error. VINSTALL is fully menu-driven; it will present you with a set of categories that corresponds to each section below, starting with Installation; you select the values you want to change. The program is largely self- documenting, and steps you through each item individually. If this is your first time, take advantage of its "Help" option before you start in, for some basic instructions. You may also find a good ASCII chart helpful. VINSTALL uses several different types of data entry: TEXT - Just type in the character(s). LOGICAL - Yes/No. Just type "Y" or "N". DECIMAL - Enter a number from 0 to 255. HEX - Enter a two-digit hex byte value 00-FF. (Don't omit lead zeros.) BYTE STRINGS - fixed length: enter the required number of hex bytes. variable: enter the (hex) count for the number of bytes, followed by the bytes themselves. Example: (02)1B3D. The max- imum length is given in square brackets [#]. This format is referred to below as "(#),bytes". VINSTALL can't check for illegal values; be careful what you enter! At most points in VINSTALL, you can press Esc to return immediately to the Main Menu, or ^C to abort the program. ----------------------------- A. INSTALLATION ------------------------------ When you run VINSTALL on an uninstalled copy of VDE, this selection will be made automatically. You must describe the computer you are using: whether 100% IBM PC compatible, or not. (The HP Portable Plus is also supported.) The IBM PC installation gives the best performance, but requires an IBM standard BIOS and a supported video adapter (MDA,CGA,EGA,VGA). You can customize the display (colors, fonts etc) to your preferences. The non-IBM installation will run on any system that supports ANSI standard screen control sequences (eg, the ANSI.SYS screen driver -- you must have the statement DEVICE=ANSI.SYS or equivalent in your CONFIG.SYS file). You must also specify the size of your screen. This installation can of course be used on IBM compatibles, in the event that direct video access is undesirable. It will even work in "remote" applications, such as high-speed modem connections, with appropriate terminal software on the user's end. COMMON PARAMETERS: Clock speed in MHz - Set this decimal value to reflect your CPU clock speed. Common values are 5 (for 4.77), 8, 10, 12, etc. Adjust the value if desired to change the length of delays in VDE. (At present this involves only the "Esc;" macro command.) IBM PC PARAMETERS: Screen colors - you can select six video attribute bytes: one for normal text; one for block text; one for soft CR markers; one for the header; one for menus and prompts; and one for highlights (prompts, etc). Each is two hex digits, for a background and foreground color. You will see a color palette displayed on screen; the color digits are: *0 = BLACK 4 = red *8 = GREY C = lt red 1 = blue 5 = magenta 9 = lt blue D = lt magenta 2 = green 6 = brown A = lt green E = yellow 3 = cyan *7 = WHITE B = lt cyan *F = BRIGHT WHITE (* - All monochrome screens can display BLACK, WHITE, and BRIGHT WHITE; in some cases, GREY may also be visible.) Any digit may be used for the the foreground, but only 0-7 for background (8-F produce blinking video... ugh). You will probably want the header and highlight attributes to have the same background. Use VDE font in EGA mode (Y/N) - When the AltE command is used to display 43 lines on an EGA (or 50 on VGA), you can choose one of two fonts. VDE's own font is thinner than the ROM font, and you may find it more readable. "Y" selects this font; "N" selects the standard (fat) ROM font. Make cursor "D"efault,"B"lock,"U"nderline (D/B/U) - You can choose the cursor type you want during editing. Choose "D"efault to leave it whatever it was before VDE was run. Snow removal (Y/N) - Normally No. Some older CGA cards experience ugly "snow" when programs write directly to video memory. If this happens to you, set this option to "Y", and VDE will time its video access according to horizontal retrace intervals. (Display speed will be slightly reduced.) NON-IBM PC PARAMETERS: (automatically set for IBM PC) Terminal init - enter an optional string of code (#),bytes to be sent to the screen after clearing the screen, whenever (re)entering VDE. Terminal uninit - enter an optional string of code (#),bytes to be sent to the screen upon exiting from VDE back to DOS. Viewable columns (80-255) - normally 80; set to the column width of your display, if different. Viewable lines (16-255) - normally 25; if you have a shorter or longer default display (on entry to VDE), enter the length here. Enable fast scroll (Y/N) - Does your computer respond to the ANSI sequences for insert/delete line (Esc-[-L,M)? If so, set this to "Y" for a faster display. (Default is "N", as MSDOS ANSI.SYS does not support these codes; some enhanced console drivers, such as NANSI.SYS, do. The display will not work properly if you select "Y" with the standard ANSI.SYS.) Horizontal scroll delay (01-FF) - This hex parameter creates a delay between scrolling the cursor line and the rest of the screen, when the screen shifts horizontally (past column 80). A moderate delay is useful if your screen display is slow, as it minimizes interference with typing. The default value is 40; you can adjust this to suit your taste. (01=minimal; FF=very long, almost suppressing full redisplay.) ----------------------------- B. USER OPTIONS ------------------------------ You can change a variety of default settings in your copy of VDE, according to your taste. "Default" means the state assumed when VDE is first run, or in the absence of any user commands. Use COMMAND mode (Y/N) - Do you want VDE to use its WordStar-compatible command set? If not, MenuBar mode is used. See OPERATING MODES. Autosave interval (min.) - Do you want VDE to save your work to disk auto- matically at intervals? If so, enter the interval in minutes. A value of 0 turns this feature off. Preserve BAKup files (Y/N) - Should a backup file (*.BAK) be kept when you save over an existing file? Choose "Y" to play safe, "N" to save disk space. Use ^Z as EOF mark (Y/N) - Should an EOF marker (^Z, 1Ah) be considered the end of a file? MSDOS software should not require this, but some early programs (like their CP/M predecessors) did use this convention. Normally set this to No: VDE will ignore ^Z on input, and will not add ^Z on output. If set to Yes, VDE will consider a ^Z encountered on input as the end of the file, and will put ^Z at the end of each file on output. Exclude COM/EXE files (Y/N) - Normally "Y": executable programs (files with types of .COM or .EXE) will not show in the ^KF directory display (unless the filetype is specified explicitly), and cannot be edited. This is a protection feature; you can damage such files by trying to edit them. To disable, set to "N". File mode (W/A/N) - Which of the three file modes "A","W","N" described in VDE.DOC do you want as the default? (Originally "A".) Auto mode select filetypes - You can specify four filetypes (or type masks, using "?" wildcards) as exceptions to the above default: for example, you could declare all ".ASM" files to default automatically to "N" mode, or all files ".89?" to "W" mode. Header on (Y/N) - Do you want the header (^OQ) to start out ON? (Normally Yes) Ruler on (Y/N) - Do you want the Ruler (^OT) to start out ON? (Normally No) Insert on (Y/N) - Do you want the INSERT (^V) toggle to start out ON? HCR display on (Y/N) - Do you want Hard CR display (^OB) to start out ON when editing a Document ("W,A" modes) with VDE? Hyphenation on (Y/N) - Do you want hyphenation (^OH) to start out ON? Case-insensitive search (Y/N) - Do you want string searches (^QF) to be case insensitive by default? Normally, No; if Yes, specifying the "U"ppercase option will force a case SENSITIVE search. Left and Right margin columns (1-255) - Default margin settings for "W/A" modes. Set both to 1 to disable wordwrap and reformatting entirely. Reserve status line (Y/N) - Do you want VDE to reserve the bottom (normally 25th) screen line for use as a status or function key line by special software? (Normally No, VDE uses this line for text.) Scroll overlap (0-255) - This is the number of lines overlap between screens when scrolling: the smaller, the larger the scroll. Originally set to 2, for a nearly full scroll. Keep this smaller than your screen size! Ring bell on error (Y/N) - Do you want the bell to ring when a VDE error message displays? [BkSp] (^H) deletes to left (Y/N) - Do you want the [BackSpace] (^H) key to delete characters? Originally No - it just moves the cursor left. [Del] deletes to right (Y/N) - Do you want the [Delete] key to remove the char- acter to the right? Originally No - it deletes to the left, as in WordStar. (NOTE: whichever you choose, Ctrl-[Del] will do the opposite.) [Home,End] move left/right on line (Y/N) - Do you want the [Home] and [End] keys to move to the start or end of the line? Originally No -- they move to the top or bottom of the screen, as in WordStar 4. Variable tab stops - Enter up to 8 variable tab stop columns, in ascending order. Fill unused values with 0. Defaults: 6, 15, 35, 55. (Note: hard tabs are set at intervals of 8 columns, and cannot be adjusted.) Show time as AM/PM, not 24 hr (Y/N) - Do you want the Time stamp to display in 12 hour format (eg 1:21 PM)? Originally Yes. If No, the time shows in 24 hour format (eg 13:21). European date format (day,month,yr) (Y/N) - Do you want the Date stamp to display in European format (eg 15.1.88 or 15 January 1988)? Originally No, meaning US Format (eg 1/15/88 or January 15, 1988). Show date numerically (Y/N) - Do you want the Date stamp to display numerically (eg 1/15/88)? Originally No, meaning verbose (eg January 15, 1988). ------------------------- C. PRINTER INSTALLATION -------------------------- Printers vary enormously. VDE can accomodate two printer drivers, each of which can be installed to take advantage of your printer's special features. (Within VDE, the AltV command can be used to select the driver to use when printing.) The defaults installed in VDE are a standard "IBM/Epson FX" driver, and a "Simple" driver that can send plain text to any printer, but does not support any print controls other than underline and strikeout. These and several other drivers can be selected from a menu within VINSTALL. In addition, you can create a driver to your printer manual's specifications. (To modify the Alternate driver, you must temporarily make it the selected one.) NOTE: if you have a common printer that is not included in the menu, please send me the necessary data so that I can add it. VINSTALL can use special Printer Installation files to store and retrieve other printer definitions. These should have a file type of ".VDP". You have the option to read in or write out such a file, as well as editing the following values individually. This makes it easy to save your installation and to pass it along to others. Printer ID - Identify the printer you are installing. (16 characters) IBM graphics printer (Y/N) - Normally No; if you can print the IBM extended ASCII characters, set this to Yes. If No, VDE will "emulate" graphics on printing, choosing standard character overstrikes that come close. Send LF after CR (Y/N) - Normally Yes. But with some printers, which manufac- ture their own LF on receiving a CR, you will want No here. Page length (0-255) - Set the number of text lines to print on a page. (Does not include another 3 lines for a header or page number, if used.) Top margin (0-255) - Set the number of blank lines to skip as a top margin before printing each page. This value (not included in the page length) can be used to position the paper properly. Default is 0. Reserve space for header (Y/N) - Default is Yes; when printing without header or page number, 3 blank lines will be kept clear of text on each page, so that the physical page layout is the same. If No, an additional 3 lines of text will print. Left margin (0-255) - Set the number of blank columns to skip as a left margin before printing each line. Useful if you can't set the margin on your printer with an initialization string. Default is 0. Printer initialization - Enter an optional string of code (#),bytes to send to the printer before each print job, to set default margins, print modes etc. (NOTE: the ^KP command has an option to specify additional codes at print time. See PRINTING.) Printer deinitialization - Enter another string (#),bytes to send to the printer after each print job, to restore printer to desired state on exit. Proportional printing - Enter the codes needed to set your printer for proportional printing, when ^OJ is engaged, and then to turn this off. Both strings are entered as (#),bytes. Codes for toggles (on/off) - For six of the seven printer toggles (not ^X), you need to tell VDE the codes to send to your printer to produce the desired effect, then turn it off again. The conventional meanings of the toggles are: ^B boldface ^Y italic/ribbon ^D doublestrike ^T superscript ^S underline ^V subscript but you can use them for anything you want. Example: IBM/Epson printers require three-byte sequences to turn continuous underlining on and off: Underline on Esc - 1 hex 1B 2D 31 dec 27 45 49 off Esc - 0 1B 2D 30 27 45 48 You would enter the hex data, starting with the byte count: Underline (^PS) on [07]: (03)1B2D31 ...and off [07]: (03)1B2D30 You should find the necessary ASCII hex codes in your printer manual. (NOTES: ^PS will underline text by overstriking with "_" if you do not install printer codes for it. The ^PX toggle, for strikeout, requires no installation at all.) Codes for switches - The same idea, but for switches, which send the same codes every time they are used. WordStar calls the switches: ^P^Q user1 \ ^W user2 \ (no standard ^A alternate pitch ^E user3 / meaning) ^N normal pitch ^R user4 / but once again, you can use them for anything you want: fonts, etc. -------------------------- D. DEFAULT MACRO KEYS --------------------------- VDE has a set of 36 Macro Keys (available in command mode only!), corres- ponding to the commands Esc0...9 and EscA...Z. The default macro definitions are those attached to these commands when VDE is first entered. By changing them you can configure VDE to suit your own specialized writing requirements. (Any Keys defined with Esc] while using VDE override these defaults.) VINSTALL can use Key Definition files to store macro key sets. These should have a file type of ".VDK", for ease of identification. You have the option to read in or write out such a file, as well as editing the keys individually. (VDK files can also be read or saved with VDE's AltU command, but only VINSTALL can display the definitions.) VINSTALL gives you a display much like this: Macro Keys: (___ bytes free) <---- note room (up to 982) [Esc0]<> [Esc1]<> <---- "<>" flag means empty [Esc2]<> [Esc3]^[;^C <---- normal macro key [Esc4]<> [Esc5]World Wide Widgets Inc. <---- "" flag means no-rpt key [Esc6]<> [Esc7]^QR^KB^QC^KK^KC <---- "" flag means quiet key [Esc8]<> [Esc9]<> Just select the number of the Key you want to redefine, then type in the new definition, much as you would in VDE. All the same rules apply (but VINSTALL will accept longer keys, up to 128 bytes). If the new definition is too long to fit it will be rejected. There are several different ranges of keys, which can be displayed and modified in a range of 10 at a time (for example, keys 0-9, or A-J). VDE.ARC comes with a macro key file EXAMPLES.VDK, containing these example macros taken from the VDE manual: [Esc1]^QR^NAltD^OF [Esc2]^[~.1^S^[1^[~.<^[2^D^[= 2^[=^M2 [Esc3]^QS^X^[=^M]^S^V ^V^D^[![ [Esc4]^S^[~ 2^[1^G^S^[= 1^[2^G^S^[~ 2^D These are: Put date at top right of file; Move to start of current sentence; Soften a hard-CR paragraph; Delete word left. (Note "Esc" displays "^[".) ------------------------- E. DEFAULT FUNCTION KEYS ------------------------- VDE also has a set of 40 Function Keys (available in command mode only!), corresponding to the [F1]...[F10] keys in their normal, Shift-, Ctrl-, and Alt- usage (sometimes referred to collectively as [F1]...[F40]). These are identical in features and functions to the Macro Keys discussed above. You can easily configure these to match the standard function-key configuration for Wordstar's key overlay, to correspond to Word Perfect function-key usage, or in any other way you like. VINSTALL can use Function Key Definition files to store function-key sets. These should have a file type of ".VDF", for ease of identification. You have the option to read in or write out such a file, as well as editing the keys individually. (VDF files can also be read or written with VDE's AltU command, but only VINSTALL can display the definitions.) VINSTALL gives you a display much like this: Function keys 1-10: (___ bytes free) <---- note room (up to 982) [F1]<> [F2]<> <---- "<>" flag means empty [F3]<> [F4]^OL5^M^OR60^M <---- normal function key [F5]<> [F6]<> [F7]<> [F8]<> [F9]^PS [F0]^PY This works just like the macro keys above, with four sets of 10 keys to define (Normal, Shift, Ctrl, Alt). VDE.ARC includes sample function-key files which you can read in to define the function keys according to the usage of WordStar or Word Perfect. The WordStar 4 default definitions in WS4.VDF are: WS4.VDF NORMAL SHIFT CTRL ALT [F1] ^J ^OB ^QF Vertical bar graphic [F2] ^U ^OC ^QA Horizontal bar [F3] ^V^PS^V ^L Upper-left corner [F4] ^V^PB^V ^QI Upper-right corner [F5] ^Y ^KY ^OL Lower-left corner [F6] ^T ^KU ^OR Lower-right corner [F7] ^KV Upper T graphic [F8] ^KC Lower T [F9] ^KS ^KB ^QS Left T [F0] ^KD ^KK ^QD Right T The WP.VDF file will not "turn VDE into Word Perfect", but it does provide a considerable degree of keystroke compatibility. You can assign any other functions desired to unused keys (eg, [F9]). WP.VDF NORMAL SHIFT CTRL ALT [F1] ^U Esc?Y AltR [F2] ^QF ^QA [F3] ^J Esc?C ^OD [F4] ^I^OL^M Esc?B Esc?B [F5] ^KF AltD ^PZ [F6] ^V^PB^V ^OC ^OF [F7] Esc?E Esc?P [F8] ^V^PS^V Esc?T Esc?S Esc?S [F9] [F0] ^KS Esc?F Esc[ -------------------------- F. GRAPHICS CHARACTERS -------------------------- VDE's handling of graphics assumes an IBM compatible PC. However, it may work usefully for other MSDOS computers, if your video system supports a set of extra characters for ASCII codes with the high bit set. VDE allows text to contain a limited, but variable, set of 32 IBM graphics characters in the range 80-FFh (see GRAPHICS). VINSTALL lets you specify your own default graphics set. Keep a fair amount of space free in it if you frequently work with files with different graphics characters, in order to avoid overflowing the table. You will be shown the current definitions, in the same format as the VDE Graphics command. Here, however, you can select any entry to redefine (A-Z, 1-5) whether vacant or not; furthermore, you may type "-" to clear them all. (Graphic 6 cannot be changed; it always remains a fuzzy blob.) In VINSTALL, new graphic codes must be entered by hex value, from 80 to FF; a full list of graphics characters can be displayed for your selection if you need it, by typing "?". An entry of 00 (or simply pressing [Ret]) means "free" or undefined. Note that your Printer Installation determines how graphics will print. --------------------------- G. RESTORE DEFAULTS ---------------------------- This option on the VINSTALL menu is provided in the event that you want to undo any changes that you (or someone else) has made to your copy of VDE. This should return VDE to the state it was distributed in: installation for IBM PC, all User Options restored to their defaults, printer driver set to Simple, no Macro or Function Keys, original Graphics characters. -----------------------------------[end]-------------------------------------- --- Eric Meyer, 401 12th Ave SE #139, Norman OK 73071 --- ==============================================================================