PROS & CONS OF ZCPR3 by Mark Motley, Lakewood/Long Beach, May & June 1987 (A look at ZCPR3) Probably one of the most popular questions people ask me about the CP/M Kaypro is, "What are the advantages of having ZCPR installed?" This is a very difficult question to answer. In actuality, ZCPR3 has many features to offer the CP/M user, but the question still remains: Will the average CP/M user ever use the full potential of ZCPR3? The answer to this question is no. Not even the advanced user uses the full potential of ZCPR3. But, just knowing that the power is there to do a lot more than normal CP/M is enough. Now, what kind of advantages does ZCPR3 offer you? Many, many, many! I will discuss them in detail. Of course, I will probably omit some nice tricks that veteran ZCPR3 users know, but that can't be stopped. 1. Easier drive/user support. Kaypro 10 users will love this one. Instead of typing "B:" then "USER 3" to get to drive B, user area, the ZCPR3 user just types "B3:". Saves a ton of time. Also, you can get to user area 0 on the currently logged disk by simply typing a colon (":"). 2. Named directories. A named directory resembles the MS-DOS subdirectories, except a tree is not made. A named directory is no more than a user area with a name. You could name drive B, user 3, "WORDSTAR", for example. So, if you forgot where your WordStar stuff was, you could just type "WORDSTAR:" and ZCPR3 would take you there. It also shows the name of the directory on the prompt, so instead of "B>" or "B3>" you get "B3:WORDSTAR>". Kind of a nice touch. 3. Path support. ZCPR3 will allow you to put all your system utilities (such as FLPYFMT, SYSGEN, NSWP, etc.) on any drive/user. You can then set up a "path" for ZCPR3 to follow if the command you typed is not found on the current drive/user. An example: if you are on B3:, and you want to use NSWP (which is on AO:), you could set up a path to tell ZCPR3 to look for it on the current D/U (D/U is short for "driver/user"), then to look for it on AO:. You can make long paths, such as "current D/U, user 15 of current drive, user 15 of A: drive, then user 0 of drive A". 4. Extended resident commands. Normal CP/M comes with five resident commands: ERA, REN, DIR, USER, and SAVE. With ZCPR3, you can have these (excluding USER), plus a copy resident, and PEEK command (which lets you look into memory, much like the D command of DDT), an excellent POKE command (which allows you to put bytes in memory), and a REG command (which will be discussed later). 5. Multiple commands on a line. This is a feature of ZCPR3 that dates back to the original ZCPR. With ZCPR3, you can type "B3:;DIR" and it will whisk you to B3: and then do a DIR. Actually, you can string many commands on a single line, separated by a semicolon (":"). This is a VERY nice feature indeed. 6. ALIAS support. This is one of my favorite features. You can set up a .COM file which will execute a series of commands. Here's an example: Let's say that you get sick of typing "B3:" then typing "WS". So, you set up an ALIAS that will do this for you. You fire up ALIAS (a utility that comes with ZCPR3) and type in "B3:;WS", which is the command line you want to "pass" to ZCPR3. You name it WORDSTAR.COM. So now all you have to do is type "WORDSTAR" followed by a RETURN (no quotes) and it will do those series of commands. When you combine this with the many utilities that come with ZCPR3, as well as flow-control commands (which will be discussed later), ALIAS can actually become a programming language!! 7. Terminal definition. This is another "high-point" of ZCPR3. Your specific terminal is defined within your system, which means ZCPR3 utilities that do things like clear the screen, position the cursor, turn inverse on/off, etc. will work without modification. All that you need to do is run the utility through an automatic installation program. It's as easy as typing "Z3INS SYS.ENV PROGRAM.COM" (SYS.ENV is a ZCPR3 file that describes your terminal attributes, such as positioning the cursor, inverse on/off, etc). This is very advantageous, since "generic" utilities run with some pizzaz! 8. Extended utilities. Because of the intensity of ZCPR3, as well as the environment descriptor (explained in step 7 above), ZCPR3 has some excellently written utilities. There is a sorted directory program, a program that allows you to make ALIASes (described in step 6 from last issue), a menu program where you create your own menu, a NSWP-type program that uses cursor addressing to give you a little arrow to point at files, and many more. 9. Flow Command processing. This is of interest to ALIAS users. Using IF statements, the ALIAS programmer can test for such things as existence of a file, wheel byte status (on or off), arguments, and many more. Without this, ALIAS would not be near as powerful as it is. 10. Error routing. This is more of an "extra" that something that is actually useful. When the user inputs an invalid command (i.e. no COM file exists), ZCPR3 will execute a program called CMDRUN.COM. This program can be anything you desire, from a small file to print "Invalid command" on the screen to a visual editor where you can re-edit and change your error. Many times it is faster to re-enter the command rather than go through the details of an editor, so this serves little purpose. 11. I/O drivers. ZCPR3 will allow you to write some complicated input/output drivers for various peripherals, but nobody I personally know of has gotten the thing to work. It's really not worth discussing, but I thought I'd mention it. Well, that about covers ZCPR3. As you can see, the CCP replacement has a ton of things to offer. Would you ever use it? It all depends on how deep you wish to go. My advice to anybody considering the switch to ZCPR3: "Go for it!"