============================================================================== [ THE KAY*FOG RBBS | CPM-CC06.ART | posted 01/18/86 | 261 lines 14k ] The CP/M Connection Originally published in by Computer Currents Ted Silveira 2550 9th Street (copyright and all rights reserved) Berkeley, CA 94710 June 4, 1985 KEYS AND OUTLINES If you own a CP/M computer, it's easy to feel left out. When you read most major computer magazines, you get the impression that no one bothers to write software for anything except IBM and Apple anymore. Well, take heart. Two hot items currently are key-redefinition programs (SuperKey, ProKey, etc.) and outline processors (ThinkTank, MaxThink, etc.), and CP/M users can get them free from the public domain. QK21 QK21 (QwikKey version 2.1), by Anton Fleig, is a public domain key- redefinition program. It lets you redefine a key to be any string of characters you want, either plain text (your name, address, and phone number) or a program command (like ^K^S^Q^P in WordStar). You can then run another program, like WordStar, and everything will go normally, until you hit the redefined key. At that point, the key-redefinition program will spit out the stored string of characters just as if you'd typed it at the keyboard, only faster. Key-redefinition programs are meant to work with other programs, and they work especially well with word processors. WordStar, for example, has no command to move forward or backward by pages (only by screens). But by using a key-redefinition program, I can create my own page-forward command--I set one key to send out the sequence [^C^C^C^X^X^X^X^Z^Z^Z^Z^Z]. This sequence would be too clumsy if I had to type it in each time. But with the key-redefinition program, I just hit one key, and the program does the work, fast. I've become so addicted to this trick that I now have a set of 20 "new" WordStar commands, including ones to move to the beginning or end of a sentence or paragraph and to delete a sentence or paragraph. QK21 isn't quite as versatile as the commercial key-redefinition programs, but it's very useful. It can redefine any key on your keyboard, including special function keys. It can redefine up to 31 different keys, and each definition can be approximately 30 characters long (31 minus the number of characters originally sent by the key). QK21 lets you save and load sets of key definitions, so you can have one set for your word processor, another for your spreadsheet, and so on. It also lets you make new definitions "on-the-fly," in the middle of using another program. For example, about one paragraph into this article, I set one of my keys to send the characters [QK21], without leaving WordStar. QK21 handles special function keys well. My Televideo 925 terminal has function keys that send out a three character sequence, starting with ^A and ending with ^M (so one key sends out ^AA^M, the next ^AB^M, and so on). QK21 handles this sequence perfectly, recognizing the ^A as the lead- in character, redefining the following character, and ignoring the trailing ^M. It can also distinguish between the sequence ^AB^M sent by a function key, which it translates, and the same sequence typed in at the keyboard, which it ignores. Without this feature, I wouldn't be able to use my function keys with WordStar, which uses ^A as one of its major commands. The QK21 documentation also tells you how to send characters that aren't on your keyboard, if you're handy with DDT.COM or a disk editor like DU. You could use the same method to make QK21 distinguish between keypad and keyboard characters, if your computer sets the high bit on keypad characters (as Kaypros do, for example). All key-redefinition programs have a few drawbacks in common, because of the way they work. First, all steal part of your computer's upper memory for themselves and the key definitions. With QK21, you lose close to 4K, so if you have a very large spreadsheet or BASIC program, for example, that just fits in memory under normal circumstances, it may not fit with QK21 running. (You can easily remove QK21 when you need to and reload it later.) Second, all key-redefinition programs change certain addresses in CP/M in order to intercept characters from the keyboard before they go to CP/M or another program. This interception can cause conflicts with a few other programs, mostly those that also want to intercept these characters. Again, the solution is to remove QK21 temporarily. QK21 also has a few weaknesses of its own. It accepts only a limited number of definitions, though enough for most purposes. It won't let one definition call another definition. And it gives you no way to control the speed at which it sends out its stored strings. With most programs, like WordStar, that's no problem, but a few, like dBase II, will gag if they get characters too quickly. Most important, QK21 has no "supershift" key. You can redefine function keys easily, if you have them. But if you don't, you can only redefine your regular keyboard keys, which means that you won't be able to use those keys in their usual way. Most people can find half a dozen keyboard keys they don't use, but after that, it's a problem. Commercial programs get around this problem by defining a supershift key, usually the backslash (\). With the supershift, you can redefine the two-key sequence [\A] however you want and still be able to use your normal [A] when you need it. Though QK21 has some limitations, its good points more than make up for them. And if you've never used a key-redefinition program, you have a treat in store. TOUR20 TOUR20's author, Ed Taychert, calls it a "document hierarchy editor," but most people will call it an "outline processor." Briefly, TOUR20 is a tool for handling ideas rather than for writing text. You jot down ideas in one-line headings, shuffle the headings around and arrange them hierarchically, with indentations: 0. Contents 1. What are the TOUR20 commands? 1.1 For adding new headings 1.1.1 APPEND 1.1.2 INSERT 1.2 For moving around 1.2.1 UP and DOWN 1.2.2 NEXT and BACK 1.2.3 1.2.4 TOP 1.3 For editing outlines 1.3.1 CUT and PASTE 1.3.2 CHANGE 1.3.3 DELETE 1.4 For viewing outlines 1.4.1 VIEW and LIST 1.4.2 SUBTREES 1.4.3 ENTIRE 1.5 For adding text 1.5.1 INTRO 1.5.2 SUMMARY 1.6 For reading and writing files 1.6.1 WRITE 1.6.2 READ 1.6.3 TYPE The basic unit in TOUR20 is the heading, a one-line (or slightly longer) piece of text. These can be entered one at a time or in an automatic append mode that lets you dash off a string of headings and worry about exactly where they belong later. A heading can also be inserted into an existing outline at any point, causing all following headings to be renumbered. You move through the outline you've created by using UP and DOWN (which move you up or down a level), NEXT and BACK (which move you forward or backward one item, regardless of level), or . is the address of a particular heading, specified by its levels; in the outline above, the index 0.1.3.1 would take you to the heading "CUT and PASTE." When it's time to edit, you can CHANGE any heading (rewrite it, in other words). You can also DELETE any heading, which also deletes any subordinate headings so that deleting heading 1.5 above would also delete 1.5.1, 1.5.2, and 1.5.3. The most important editing tools are CUT and PASTE. CUT removes a heading and stores it in a buffer; PASTE takes the heading out of the buffer and places wherever you want. You can cut 20 headings before pasting, but you must be careful about the order--the last heading cut is the first heading pasted. While you're working, you see only a small part of your outline--the current heading and its immediate subheadings. If your current heading were 1.4 above, you'd see only subheadings 1.4.1, 1.4.2, and 1.4.3. This "information hiding" is meant to help you concentrate on parts of your problem or project. You can use VIEW (or LIST) to see other parts of the outline, SUBTREES to see everything below any particular heading (its subheadings, their sub-subheadings, and so on), and ENTIRE to see the complete outline. TOUR20 has only two commands for adding text to the outline. INTRO will place a block of text before a group of subheadings, and SUMMARIZE will place one after; both are very limited. TOUR20 can also WRITE all or part of your outline into a disk file, READ another TOUR20 file into your current outline, and TYPE a text file on the screen without inserting it into the outline. What's TOUR20 like to use? It has a strong personality; you could even say it has a theory about life. TOUR20 believes you'll do best if you work with a top-down, divide-and-conquer approach, gradually breaking your project or problem into smaller and smaller pieces. It also believes you should concentrate on one section at a time. You don't have to play along, but that's the way TOUR20 "wants" to work. In practice, you'll probably use TOUR20 one of two ways. You can use the top-down method by stating your subject in a general form ("What are the TOUR20 commands?"). You divide that into smaller pieces (movement commands, editing commands, etc.), and those pieces into still smaller ones, refining and extending your outline, focusing on each small section, until you have everything worked out in detail. As you work, you use the viewing commands to see how your current section fits into the general scheme, and you use the editing commands to rearrange things as new ideas crop up. This approach suits TOUR20 very well and can turn huge projects into a series of manageable steps. You can also use the brainstorming approach. Here you put TOUR20 into APPEND mode and bang in a series of ideas, without regard to their relationship to each other or their level of generality. In the process, you create a list of ideas, questions, and odd bits of information. Then you sort through your list, using CUT, PASTE, and other editing commands to discard the junk and to group related details under more general ideas. Your structure and your controlling idea grow out of the details as you fight to get them in order. This approach also works but doesn't go as smoothly as the top-down approach, largely because it's inherently messier, partly because TOUR20 makes it easier to work with small sections than with the whole outline. With either method, your final steps will be adding any necessary text with INTRODUCE and SUMMARIZE, and then creating a paper printout (formatted with indentations) or a disk file (no indentations, unfortunately) for reference. All the output is done through a separate program, ROFFTOUR-- not an easy program to make friends with and not up to the quality of TOUR itself. TOUR20 has at least three weak spots in its generally solid user interface: 1) You can enter a very long heading--TOUR20 will simply wrap the line when you hit the edge of the screen--but at about 130 characters, TOUR20 starts putting your text in the next heading, without any warning. You don't find out what's happened until you hit . 2) If you accidentally hit ^C during a session, you drop straight out of TOUR20 into CP/M, without any chance to save your work. 3) If you hit ^Z accidentally, TOUR20 goes into an infinite loop (at least on my machine). You're warned against these last two in the documentation, but that's no protection against accidents. All three of these problems need to be fixed. Is TOUR20 worth having? Absolutely yes--it's an interesting new program and easy to use, once you're familiar with it. TOUR20 lets you do things you can't do with a word processor, and because it works entirely in memory, it's fast. You have to get a feel for how the program works and understand its limits. At first, TOUR20 and I circled each other two stray cats. But now it's settled in to a regular space on my working disks. TOUR20 was originally released as "shareware" (free distribution, $30 suggested contribution), but Ed Taychert has now generously released it completely into the public domain and plans to remove the shareware notice for TOUR21. Next issue, some odds and ends--a batch of miscellaneous programs useful for people who work with words. ------------------------------------------------------------------------------ Ted Silveira is a freelance writer and contributing editor to several computer-oriented publications. He appreciates suggestions or feedback and can be reached through the KAY*FOG RBBS (415)285-2687 and CompuServe (72135,1447) or by mail to 2756 Mattison Lane, Santa Cruz, CA 95065. ------------------------- End of CPM-CC06.ART Text -------------------------