The following is the text of a review of BackGrounder II that I wrote for the KUGEL, the newsletter of the Boston Computer Society Kaypro Users Group. ------------------------------ Backgrounder II Jay Sage I would like to describe here what I think is the most impressive and¨ exciting piece of software ever introduced for CP/M (Z80-compatible)¨ computers -- Backgrounder II from Plu*Perfect Systems. This program offers¨ what one might perhaps expect to find on a 16-bit computer with megabytes of¨ memory but would dismiss as utterly impossible on a little 8-bit computer¨ with only 64 kilobytes of memory. Kaypro owners might remember an earlier¨ product called Backgrounder, but this version -- which runs on any CP/M2.2¨ computer, not just Kaypros -- goes way beyond the original. Let's learn about it with an example. It's morning, and you sit down¨ at your computer to start work on a letter. After turning on the computer,¨ you get the familiar CP/M prompt "A>". To invoke BGii you enter the command¨ "LOADBG", initiating a process in which BGii automatically configures itself¨ for your system and installs itself, even running a set of startup commands¨ of your choice. The BG system prompt now appears: 09:12 A0:BASE> There are two striking differences. First, BGii offers alternative¨ named directories for the drive and user number areas in CP/M. Part of your¨ startup command sequence involved the automatic loading of a named directory¨ file, so BGii now knows that you want to associate the name BASE with drive¨ A user 0, the name TEXT with drive B user 0, and so on. The second thing you notice about the system prompt is that the current¨ time of day appears in it. You are also using Plu*Perfect Systems superb¨ DateStamper (DS) program, which automatically maintains time/date stamps on¨ your files (and not just 'last update' as in MS-DOS but creation time, last¨ modification time, and last access time). BGii works hand-in-hand with DS,¨ so it always knows the date and time. Now you want to go to your TEXT directory and run your wordprocessor. ¨ You used to enter the command "B:" first, and then "A:WS" to get WordStar¨ running. With BGii you can enter the single command line: TEXT:;WS First of all, with BGii you can move to B0:, the text directory, by name¨ ("B:", of course, would work also). Second, you can put many commands in¨ the same line, so you don't have to wait for one to finish before you can¨ enter the next. Just separate them by semicolons. Third, you didn't have¨ to tell the computer that WordStar is on the A drive. With BGii the¨ computer is smart enough to find your programs for you, automatically. You¨ have set up a command search path that includes A0: (drive A user 0), so¨ when BGii didn't find WS.COM on drive B user 0, it automatically looked for¨ it (and found it) in A0:. Once inside WordStar you begin to work on the letter. You enter the¨ address header at the top and position yourself to where the date goes. ¨ You've been working very hard and have lost track of the date, but it¨ doesn't matter. You just hit the BGii function key sequence "\D" (backslash¨ then 'D') and the date appears, just as if you had typed it. The BGii¨ function key facility, coupled with DateStamper, got the date from the¨ system clock and put it into the text. Now, well into the text of the letter, you are writing that you are¨ buying a certain item from Japan at a cost of 83,650 yen, which at the¨ present exchange rate of 163 yen to the dollar will cost....let's see, how¨ much is that in dollars? Your little pocket calculator must be around here¨ somewhere. Oh well, no matter. You press the function key sequence "\C"¨ and the BGii calculator pops up on the screen. You enter "83650/163=" and¨ there is the answer. You don't even bother writing it down; you just exit¨ from the BGii calculator by pressing "Q". Now you are back in WordStar,¨ with the screen just as you left it. You press the function key sequence¨ "\A" (A for answer) and what appears in the text but "513.19018404" (I just¨ used BGii while writing this article!), the answer to your calculation. You¨ don't need all those figures, so you backspace leaving just "513.19". That¨ was handy! A little farther into the letter, you're getting into some serious¨ financial discussion and need data from the spreadsheet you developed last¨ night. Before you had BGii you would have had to exit from the word¨ processor, load and run the spreadsheet program, write down the data, exit¨ from the spreadsheet, rerun the wordprocessor, find your place in the¨ document, and put in the information. But with BGii that is a thing of the¨ past. Now you press the function key sequence "\S" (for swap), and task¨ swapping begins. After a short delay, a new system prompt appears: 09:52 b0:text> Your word processing task has been suspended, and from the new system¨ prompt you can run any other program you wish. The prompt appears in lower¨ case to remind you that you are in Backgrounder's lower task, the main task¨ being called the upper task. First you change to the DATA directory, where¨ you keep all your spread sheets, by entering the command "DATA:". Now the¨ prompt is: 09:53 b1:data> While you were working late last night on the spreadsheet, you created¨ several versions of the data file. You were sure you would remember which¨ was the last one, but that was yesterday. Now you're not so sure. ¨ Fortunately you have DateStamper, and you run its directory program SDD,¨ which lists the files with the times/dates of creation, modification, and¨ access. You quickly identify the most recent version, invoke your spread¨ sheet program, and read in the data file. To make the operation of the spread sheet program easier, weeks ago you¨ created a special set of 'keystroke macros' using BGii's built-in¨ capability. And you really appreciate the way BGii has automatically loaded¨ those key definitions as it loaded the spread sheet program. Even when you¨ swap tasks, BGii makes sure the right set of 'macros' is always there with¨ each task. It is also very easy to add new definitions while you are¨ running a program. You are now adjusting the data on the screen to get it into the right¨ format for inclusion in the letter. Unfortunately, there is one spread¨ sheet function you always forget how to use, and it is not covered¨ adequately by the built-in help information. The last time this happened¨ and you finally figured out what to do, you added an information screen to¨ the custom help file you have been preparing on your spread sheet program. ¨ Wouldn't it be handy if you could look at it now, without leaving the spread¨ sheet? Of course, with BGii you can! You press the BGii suspend key¨ (control-caret), and still another prompt appears: 10:03 b0:text} You are now in background mode, 'behind' the lower task (the curly brace¨ tells you that this is background mode, and the lower case text indicates¨ the lower task). From this prompt you cannot run COM-file programs, but¨ many powerful BGii background functions are at your disposal. You enter the command "HELP SPRSHEET", and your help file appears on¨ the screen. (By the way, BGii found it automatically on drive A user 10,¨ the designated help directory.) It offers a menu of topics, and you quickly¨ identify the one with the information you need. After pressing the key¨ corresponding to that menu choice, the screen appears. Your memory¨ refreshed, you exit the help system with control-c and press the suspend key¨ again to reactivate the spread sheet. Its screen reappears on your terminal¨ just as you had left it. The spread-sheet editing process is a little involved (no wonder you¨ have a hard time remembering it), and you are going to have to repeat an¨ operation quite a few times. Before you do it the first time, you press¨ your function key sequence "\R". The terminal bell rings twice, reminding¨ you that the BGii key-recording mode has been initiated. You go through the¨ process the first time and then enter the sequence "\R" again. A prompt¨ appears on the screen asking which key you want that series of key strokes¨ to be assigned to. You enter "\1", and from now on when you press "\1" the¨ entire sequence you entered before will be executed again. Amazing! In no¨ time you have the spread sheet screen just the way you want it. Now if you¨ could just get it into the letter in the word processor. Would BGii make¨ you do that manually? Of course not! After pressing the suspend key again to get the background prompt, you¨ enter the command "SCREEN TEXT:DATA.DOC". Your whole spread sheet screen is¨ saved in a file called DATA.DOC in the directory TEXT: (B0:) where your word¨ processing files are. The background prompt reappears. Just in case you¨ need to make any changes in the spread sheet, you decide to leave that task¨ active. From the background prompt, you enter the command "SWAP" to return¨ to WordStar. Its screen reappears just as you left it. You read in the¨ DATA.DOC file and continue your work. (I just described moving an entire¨ screen between tasks. With BGii it is also possible, using the CUT and¨ PASTE commands, to move designated sections of screens. Those 'CUT'¨ sections can even be assigned to function keys and made part of permanent¨ 'keystroke macro' files.) Suddenly you have a flash of inspiration about another project you are¨ working on, and you'd like to make a couple of notes before the ideas¨ evaporate from your mind. You are tempted to scribble them down on a scrap¨ of paper, but you know how those little scraps tend to get lost. So again¨ you call on BGii. A press of function key sequence "\J" invokes the JOT¨ function. A little notepad file appears on the screen. To enter the time¨ and date of your brainstorm, you type "\T\D". The line "11:35:25 January¨ 19, 1987" (I just did it) appears in the text. You continue by typing in¨ the idea, close the file, and return to your main task. Finally the letter is done. You send it off to the printer using the¨ BGii print spooling capability. While the file is printing (this is the¨ only case in which BGii performs true concurrent multitasking -- two tasks¨ running apparently simultaneously), you return to the spread sheet to do¨ some final cleanup. You spool the spread sheet output to the printer (you¨ don't have to wait for the other file to be finished), exit from the spread¨ sheet program, and begin some other tasks (consult your jotpad for all those¨ great ideas you had earlier). So much for this example. There are thousands more. One of the things¨ that impressed me so much with Backgrounder during its development (I served¨ as a test site) is that there is no end to the possibilities is offers. New¨ uses were constantly springing to mind, uses that had not occurred even to¨ the author, Bridger Mitchell, when he conceived the program. The hardest thing I have found about using Backgrounder is breaking old¨ habits. I am so used to the limitations of the old system that I still¨ often forget to take advantage of BGii capabilities. I close files and¨ leave a program before I remember that this is no longer necessary. I enter¨ lengthy command sequences repeatedly, forgetting that the BGii keystroke¨ macro capability is so accessible and easy to use. Now for the technical and financial details. What do you need to run¨ BGii? If you have a Kaypro CP/M computer, you are all set and need not read¨ the next few paragraphs except out of curiousity; BGii is fully functional¨ on the Kaypro machines. For people with other computers, here are the¨ requirements. First, your computer must use a Zilog Z80-compatible chip (this¨ includes the National NSC800 and the Hitachi HD64180 but not the Intel 8080¨ and 8085 chips). Your disk operating system must be Digital Research's¨ standard version 2.2 BDOS (BGii will not work with CP/M-Plus) or the ZRDOS¨ replacement disk operating system from Echelon, versions 1.1, 1.2, 1.3, or¨ 1.7. A few, but not all, of the common BDOS patches are acceptable. Second, your terminal must, at the least, support direct cursor¨ addressing, clear-screen, clear-to-end-of-line, and clear-to-end-of-screen¨ functions. Some of the features of BGii (the SCREEN, JOT, CUT, and PASTE¨ functions described above, among others) require a special screen driver¨ that demands additional terminal features. Such drivers are already¨ available for Kaypro computers and Heath/Zenith model 19 (and compatible)¨ terminals. Drivers for other popular terminals, such as those from¨ Televideo and Wyse, are nearly ready for release now. But please note: BGii¨ is an extremely powerful and useful program even without the functions that¨ require a screen driver. I use an odd-ball terminal and am using BGii¨ without a screen driver. As I'm sure you can tell, I love it anyway! BGii does use up some memory and disk space. Obviously it can't do all¨ the things it does without availing itself of some system resources. The¨ memory requirement is 4.75K, 2K of which is the standard command processor. ¨ If some program of yours won't run with the reduced memory, however, you can¨ always issue the "BG OFF" command. This instantly restores your system to¨ its normal state. You can run your memory-hungry program and then reload BG¨ with "LOADBG". BGii is completely compatible with ZCPR3 systems. (That is the subject¨ for another whole KUGEL article. I am very active in the development of the¨ ZCPR3 advanced operating system replacement for CP/M 2.2 and made sure that¨ BGii works with it flawlessly. In fact, the BGii command processor is even¨ more advanced than the standard one in ZCPR3.) In a ZCPR3 system, BGii can¨ reuse space normally allocated to ZCPR3 buffers that are no longer needed by¨ ZCPR3. The memory requirement can then be reduced to 2.75K or even 0.75K. BGii is a virtual memory system, frequently swapping data between¨ system memory and disk memory. For full-featured operation, BGii requires a¨ swap file of about 100K. This swap file should be kept on a harddisk or¨ ramdisk, so that swapping will take place quickly. BGii will run on a¨ floppy-disk system, but operation will be much slower. Plu*Perfect Systems¨ does not recommend BGii for floppy-only systems, but if you make use only of¨ the background mode and not task switching, operation on a floppy system is¨ often acceptable. In any case, you don't have to leave to chance any questions about how¨ well BGii will run on your system. There is a demo version that is¨ available free of charge. It is identical to the full-fledged version¨ except that you will be restricted to drive A. If BGii works properly on¨ your system, there is no doubt that you will eagerly spend the money for the¨ unfettered version. You can get the demo version from Compuserve and from¨ other remote access computer systems (mine can be reached at 617-965-7259,¨ password "DDT"). You can also send me a diskette or diskettes (with total¨ capacity for at least 220K). These diskettes should be formatted, sent in a¨ suitable, reusable mailer, and accompanied by return postage and a return-address sticker. They will then be returned to you with the demo version of¨ the program. We can handle almost all 5" formats (but not odd-ball hard-sectored formats) and standard 8" formats, so I will not try to list them¨ here. This brings us neatly to the money question. BGii costs only $75 and¨ comes with a neat manual in an IBM-style three-ring binder. Shipping &¨ handling charges are typically $4 per order (no matter how many items in the¨ order), and, if you are in the same state as the dealer, that state's sales¨ tax must be added. Currently, BGii is available from four sources. My favorite, not¨ surprisingly, is Sage Microsystems East. The similarity in name is no¨ accident; this is my wife's company (you don't think I would let her pass up¨ offering a great program like BGii). See her ad in this issue of the KUGEL¨ for more information. A second source is NAOG, Bruce Morgen's North¨ American One-Eighty Group, an organization supporting computers based on the¨ sensational Hitachi HD64180 8-bit microprocessor with on-chip advanced¨ memory management capability. Bruce also helped in the BGii testing, and he¨ can be reached in Warminster, PA, at 215-443-9031. Third is the Lillipute¨ Z-Node in Chicago (312-649-1730, modem only). Finally, you can get BGii¨ directly from its developer, Plu*Perfect Systems (P.O. Box 1494, Idyllwild,¨ CA 92349). DateStamper is $49. It will work on almost any CP/M-type computer,¨ including those with Intel 8080 or 8085 microprocessors. You don't even¨ have to have a real-time clock in your computer. In that case you will have¨ to enter the date manually each day when DateStamper is loaded, and the time¨ stamps will not be in wall-clock time but in index time. The index will¨ start at +0000 and increase by 1 for each disk access. You won't be able to¨ tell the actual time a file was created or accessed, but you will be able to¨ tell the order in which they were created or accessed. ---------- Jay Sage is well known to those who attend BOSKUG meetings, at which he has¨ presented several programs and conducted training sessions in ZCPR3,¨ telecommunications, and Z80 assembly-language programming. In addition, he¨ is the Director of the BCS CP/M Computers Group, sysop of Z-Node #3, and¨ software librarian of ZSIG, the SIG/M of the ZCPR3 world. In his spare time¨ he enjoys playing with computers!