New in ZDE Z-System Display Editor Version 1.6 02 Jun 90 ZDE is copyright 1990 by Carson Wilson, all rights reserved. You use ZDE at your own risk. The author accepts no liability for any damages resulting from its use or misuse. The files in this library may not be circulated in any incomplete or modified form without the written permission of Carson Wilson. Any commercial use of ZDE, defined as any situation where the duplicator receives revenue by duplicating or distributing ZDE by itself or in conjunction with any hardware or software product, is expressly prohibited unless authorized in writing by Carson Wilson. This file describes changes to ZDE since version 1.3. I have decided not to release document revisions while ZDE is still in active development. For now, please obtain ZDE10.DOC and ZDENSTAL.DOC from ZDE10.LBR, and ZDE13.NEW from ZDE13.LBR, available on Antelope Freeway and many other remote CP/M systems. Except for the changes detailed below, these text files provide a thorough explanation of how to use and install ZDE. Alternatively, send a contribution to support further work on ZDE, and I will mail you a high quality, up-to-date printed manual for ZDE version 1.6. See section 6.3 of this file for details. - CONTENTS - 1. FUNCTIONAL ENHANCEMENTS. 1.1. Proportional Formatting. 1.2. Last Entry Recall. 1.3. Enhanced Operation Under CP/M Plus and ZSDOS. 1.4. Control-U now Aborts "Delete To" Function. 1.5. Fully Operational Auto-Indent (^OA). 1.6. Chain to ZCPR Error Handler. 1.7. Return to Previous Position Command (^QP). 1.8. Global Find/Replace Option. 1.9. Semicolons are now Characters in Nondocuments. 2. BUGS FIXED. 2.1. More Robust Space Calculation. 2.2. ZCPR Line Queue Bug Fixed. 2.3. Other Minor Nuisances Corrected. 3. INSTALLATION. 3.1. New in ZDENSTAL Version 1.6. 4. USAGE HINTS. 4.1. Saving Macros. 4.2. Creating a Smaller ZDE. 4.3. Using GET and GO with ZDE. 5. DEVELOPMENT HISTORY. 6. FURTHER INFORMATION. 6.1. About Z System. 6.2. About the Author. 6.3. Pre-Printed Manuals. 1. FUNCTIONAL ENHANCEMENTS. 1.1. Proportional Formatting. ZDE can now format your text for use with proportional printer fonts! See the files ZDEPROP.DOC and ZDEPROP.Z80 (included in ZDE16.LBR) for full details. 1.2. Last Entry Recall. The following commands (among others) cause ZDE to prompt you for information: COMMAND PROMPT ^KD "Load:" ^KE "Erase:" ^KN "Name:" ^KL "Load:" ^KR "Read:" ^QF "Find:" ^QA "Find:" and "Change to:" ESC-M "Macro:" You can often save typing time and prevent errors by using control-R or your right arrow key [as installed] to Recall your last response to any of the above prompts. For example, to read in a file and then erase it, you could enter "^KR, , RETURN" followed by "^KE, ^R, RETURN". The ^R command will automatically recalls the filename you entered in response to the "Read:" prompt. The Find, Replace, and Macro prompts work in a similar manner. ^R Recalls your entire response; right arrow recalls your last response one character at a time to allow further editing. The Recall keys can also be used to recall the last used macro, even if it wasn't entered manually. 1.3. Enhanced Operation Under CP/M Plus and Z3PLUS. ZDE takes advantage of advanced BDOS error handling to provide slightly faster file output under CP/M Plus and Z3PLUS. In addition, file Create stamps are now preserved under CP/M Plus based systems as well as ZSDOS and ZDDOS systems. 1.4. Control-U now Aborts "Delete To" Function. Control-U can now be used to abort a "Delete To" (^QT) operation. Previously, ZDE would attempt to delete up to the next literal ^U character in the file, often causing frustration. 1.5. Fully Operational Auto-Indent (^OA). Auto-Indent is useful for typing outlines, structured program source code, and other text where the "left margin" varies. When the Insert (^V) toggle is on, Auto-Indent aligns the left margin with that of the previous line. When Insert is off, it causes the RETURN key to act differently: RETURN advances the cursor past any indentation when moving through a file. When a new line is begun either by wordwrap or reformat (see below) or by hitting RETURN with Insert on, Auto-Indent indents the following line or lines to equal the previous one. It does this by counting the number of spaces or Hard TABs (whichever came first) before the text of the previous line, and indenting, wrapping, or reformatting using this number of spaces or Hard TABs. This entails certain possible conflicts, most of which ZDE itself automatically prevents: First, if you mix Hard TABs and spaces when indenting a line, AI may give strange results, as it will count and use the first character only. For example, if your line is indented as , AI will indent the next line with only. To avoid conflicts, enabling AI sets the left margin to 1, and setting the left margin greater than 1 disables AI. Also, Double Spacing (^O S) is disabled by Auto-Indent, and Auto-Indent disables Double Spacing. Auto-indent status also now defaults to ON in Nondocument mode, and OFF otherwise. 1.6. Chain to ZCPR Error Handler. ZDE 1.6 will chain to the installed Error Handler under ZCPR 3.4 with error #12 (TPA overflow) if there was not enough memory for ZDE to edit the file you specified on the command line. ZDE does this because the flow of logic in a multiple command line sometimes dictates that the editor complete its task before succeeding commands are carried out. For example, I use the a multiple command alias similar to the following ZDE file;echo erase;if in;era file;else;mv file newdir:;fi to process modem capture files. After processing each file with ZDE I generally want either to erase it (if it contained nothing worth saving) or move it to another directory. But on occasion the capture file is too large to process with ZDE. If the script were allowed to proceed, it would force me either to erase the capture file or move it elsewhere, neither of which would be appropriate if I hadn't even looked at its contents yet. This is where Z System's error handler comes it handy: it provides a means of dealing with an offending command line before unwanted commands cause harm. When ZDE chains to the error handler, I can _edit_ commands beginning with ZDE's invocation, either removing unwanted commands or inserting further commands as the situation may dictate (it is also possible to abort the command or multiple command script altogether). In the above case, I would revise my command line to the following: NW file;echo erase;if in;era file;else;mv file newdir:;fi By substituting the ZDE command with NW I have invoked NewWord for this instance only of the command, which in turn will edit the larger file. Without question the finest ZCPR error handler now available is Rob Friefeld's ZERR. There are even provisions within ZERR for automatically editing LSH scripts and for automatically chaining to transient versions when resident (RCP, CCP) commands fail; all of this is described in ZERR13.LBR. 1.7. Return to Previous Position Command (^QP). This function is basically the same as the WordStar command: hitting ^Q-P takes you to the position the cursor was at before the previous command (including the ^QP command itself - try it!). For instance, the sequence "^B, ^Q-P" reformats beginning with the current line then restores the cursor to its original position within the paragraph. ^Q-P is also useful for moving long distances within a file without losing one's place: for example you can move to the top of the file with ^Q-R, then come back with ^Q-P. Within Macros, the previous cursor location is preserved: ^Q-P will always return you to your place in the text BEFORE you invoked the Macro. This not only allows you to resume editing at the same location after using Macros; you can also build one or more ^Q-P commands into the Macro itself. See SAMPKEY.* files for one example; I'm sure there are lots of other ways to use ^Q-P within a Macro. Thanks to Howard Schwartz for keeping on my case about this feature until I finally discovered an easy way to implement it. 1.8. Global Find/Replace Option. Besides "B" (backwards search) and "C" (case-sensitive search), ZDE now sports a THIRD find/replace option: "G" for Global search. ZDE normally begins your (backward or forward) search at the current cursor location. Specifying "G" causes ZDE to start at the BEGINNING of the file when searching forward for strings, or at the END when searching backwards. Otherwise, the search or replace command proceeds exactly as it does normally. The "G" option is used in the same way as the other options, by enclosing it in slashes as a prefix to the string being searched for (e.g., to find "Carson" globally, enter "/gc/Carson" in response to ^Q-F's "Find: " prompt). 1.9. Semicolons are now Characters in Nondocuments. ZDE now counts the ";" (semicolon) character as a normal character in "N" mode, whereas it counts the semicolon as a punctuation mark in the "W" and "A" modes. This is mainly of interest to assembly language programmers, as the semicolon is often used alone to mark the beginnings of comments in source code. Treating the semicolon as a normal character in "N" files simply makes it easier to manipulate assembly language comments. Thanks to Rob Friefeld for his thoughts on this. 2. BUGS FIXED. 2.1. More Robust Space Calculation. ZDE's calculation of memory space remaining is now more robust. In past versions of ZDE (and VDE), certain editing commands could cause a crash when only a few bytes of free memory were available (thanks to Rob Friefeld). 2.2. ZCPR Line Queue Bug Fixed. The ^QQ (go to next line in ZCPR queue) command of previous versions of ZDE failed if ZCPR's 16-byte user-defined buffer was filled. Version 1.6 fixes this problem, properly returning to the first line in the queue after the last value in has been reached. This allows Turbo Pascal-like interactive programming of Z80 assembly language when used under Z System with Al Hawley's ZMAC Z80 Macro Compiler ($50 including ZML and ZMLIB; contact Al Hawley at Ladera Z-Node, 213/670-9465 (modem), Ladera Heights, CA). 2.3. Other Minor Nuisances Corrected. ZDE now turns alternate video off when placing the cursor at the string to change during ^QA prompts. A bug which allowed an extra character or hyphen on the last line of a paragraph if the line's length was one character beyond the right margin has been fixed (thanks to Larry Schnitger for spotting these). A bug which occurred if you set the block end marker to the last byte in the file then did a block delete has been fixed (thanks to Ben Cohen for finding this). One or more bug(s) which occurred while printing have been cleared up. ZDE should now always give a correct left margin with or without a page header or top margin. The printout is also slightly faster when left and top margins are used together. ZDE now always finds strings located exactly at the end of a file. When searching with the /c/ option, erroneous results occurred if a non-matching string of the same length as the search string beginning with the same first character as the search string was located at the very end of a file. This has been fixed. Fixed minor bug in proportional formatting that caused repeated ^B commands to give inconsistent results under some circumstances. Fixed bug which set margins spuriously if an illegal number was entered. ZDE also now disallows setting margins to zero, which caused formatting problems. ^B (reformat) no longer absorbs following commands, allowing ^B to be embedded in key redefinitions with SmartKey, etc. 3. INSTALLATION. You MUST use ZDENSTAL 1.6 to install this version of ZDE. Older ZDK and .ZDP files will still work. Due to extra installation codes, .ZDE files created with version 1.0 of ZDE will not work with this version of ZDENSTAL. 3.1. New in ZDENSTAL Version 1.6. The proportional formatting (^OJ) toggle can be disabled with ZDENSTAL to allow use of ZDE's proportional spacing table as a patch area. When proportional spacing is disabled, an additional 96 bytes of space is released for custom user patching. ZDENSTAL also allows you to set the proportional formatting toggle to ON or OFF at startup [this can also be toggled while operating ZDE]. ZDENSTAL's "R" option now restores ZDE's proportional spacing table to its default (as distributed) values. ZDENSTAL's "F" option now gives the locations of all FIVE key definition tables (former versions left out the ESC- table). The "F" option also gives the location of ZDE's proportional spacing table for use when patching ZDE. The Osborne 1 and Vixen terminal definitions are now separate due to different screen width requirements (thanks to Ben Cohen for sorting this out). ZDENSTAL previously would overwrite .ZDK and .ZDP files with the wrong information if the .ZDK or .ZDP file had been archived (bit 7 of filetype character 3 set). This problem has been corrected in version 1.6. Some ZDENSTAL messages have been improved. 4. USAGE HINTS. The following are just some miscellania that I have picked up from using and working on ZDE. 4.1. Saving Macros to Disk. Under Z System version 3.4, it is possible to "save your work" after creating a working Macro. First, be sure to save your new Macros as Macro Keys using ZDE's ESC-# command (see ZDE Manual). Then exit ZDE and type POKE 310 02 50;ZSAVE 310-490 filename.ZDK You have just used Z System's type-4 SAVE program to create a new .ZDK file, which can now be examined and installed permanently into ZDE with ZDENSTAL, or further revised using ZDKCOM. [NOTE: the addresses and values given above will work for ZDE version 1.6, but may change with future versions of ZDE.] 4.2. Creating a Smaller ZDE. If you are SURE you will never want to enable the Help Menus, you can create a slightly smaller copy of ZDE. First use ZDENSTAL to disable ZDE's Help Menus. Then issue the Z System command, GET 100 ZDE.COM;ZSAVE 100-3E7F filename.COM This creates a copy of ZDE that is about 1 kilobyte smaller than the distributed package, and loads somewhat faster on slower systems. This procedure is specific to ZDE 1.6; do NOT assume that it will work on future versions. 4.3. Using GET and GO with ZDE. Some users have discovered that the Z System GET and GO commands can be used to extend ZDE's versatility or save disk space. Since the .ZDE, .ZDP, and .ZDK files used by ZDENSTAL are simply binary images of various portions of ZDE, you can achieve the versatility of having several copies of ZDE without the added disk overhead by using Z System commands that "install" one or more of ZDENSTAL's files on the fly. For example, if you used ZDE with a particular terminal most of the time, but occasionally switched to another terminal that was incompatible with the first one, you might want to create a Z System Alias which would overlay the default copy of ZDE with your second terminal's characteristics at startup. You could achieve this by first using ZDENSTAL to configure ZDE for your second terminal, saving the terminal's characteristics into a .ZDE file (see the ZDE Manual for details on this). You would then ZDE for your normal terminal, and write an Alias to auto-install this copy of ZDE for your occasional terminal on the fly: GET 100 ZDE.COM;GET 180 term2.ZDE;GO $* This command loads the file term2.ZDE over ZDE before proceeding, providing a temporary copy of ZDE that works with your second terminal. This approach can also be used to generate "virtual" copies of ZDE with different printer codes and Macro Key definitions. The addresses of the various overlays for ZDE version 1.6 are: 180 hex - Terminal codes (.ZDE files) 1F0 hex - Printer codes (.ZDP files) 310 hex - Macro Keys (.ZDK files) [These addresses may well change in future versions of ZDE.] Obviously, this involves some "homework:" if you get the addresses wrong or use an incompatible .ZDx file (from a previous version of ZDE, for example), you will likely cause yourself grief. For these reasons I generally recommend simply creating multiple copies of ZDE. But under some circumstances (e.g., laptop computer with limited disk or ROM space) this approach may be quite rewarding. 5. DEVELOPMENT HISTORY. ZDE is a descendant of Eric Meyer's famous VDE (Video Display Editor) program for CP/M. In 1988, Eric produced his final version of VDE for CP/M (2.66). Eric now maintains VDE for MS-DOS only; ZDE continues VDE's evolution on Z80 systems. ZDE removes many of the CP/M VDE's defects and adds such features as support for ZCPR, ZSDOS, and CP/M Plus, improved terminal and disk I/O performance, proportional formatting, file datestamp support, and improved installation. Meanwhile, the MS-DOS version of VDE has continued to evolve, now boasting multiple file buffers, auto-save, auto-number, and much more. VDE for MS-DOS is available on computer bulletin boards (including Antelope Freeway; see below) as VDE152.ZIP. 6. FURTHER INFORMATION. 6.1. About Z System. If you are using CP/M equipment, you have probably heard of Z System. Basically this is a downward compatible replacement for the system software distributed with Z80 CP/M equipment. By utilizing Z80 opcodes and advanced design techniques, the authors of Z System have expanded the versatility of the CP/M operating system far beyond its original limitations. To learn more about Z System, log into the bulletin board listed below, or contact one of the following: Plu*Perfect Systems Sage Microsystems East 410 23rd St. 1435 Centre St. Santa Monica, CA 90402 Newton Centre, MA 02159-2469 (213)-393-6105 (eves.) (617)-965-3552 (9am-11pm) 6.2. About the Author First, let me take this opportunity to thank the community of users without whose support this version of ZDE would not have been possible. You have made ZDE what it is through your generous contributions of time and/or money. Without those who appreciate (and criticize) my work I doubt I could justify the time and energy I've spent on ZDE. In addition, many of the improvements and bug fixes in version 1.6 result directly from specific comments and insights by users. Please continue to share your thoughts and experiences with ZDE; I'm listening. I am a doctoral student trying to keep from starving while working on my dissertation in Political Science at Loyola University of Chicago. I am a coauthor of ZSDOS, a commercial replacement for the BDOS portion of CP/M, and have authored numerous CP/M and Z System programs. My interests include computer programming, telecommunications, the Soviet Union, Political Theory, and bicycling (not necessarily in that order). I am also looking for part- or full-time work. To this end I am skilled in political analysis, know the Russian language and the Z80, C, BASIC, and Pascal computer languages, and have comprehensive knowledge of CP/M and Z System and working knowledge of Unix and MS-DOS. If you know of a gainful opening in the computer field, I would like to hear from you. Among other things I operate the Antelope Freeway Remote Access Systems for CFOG, Chicago's First Osborne Group. These dual remote systems are available at the same number, 312/764-5162, Chicago. Antelope 1 covers CP/M and Z System while Antelope 2 is dedicated to MS-DOS support. The best way to contact me is through this board. Registration is free. If you are not a registered member, you can leave me a note as part of your application. Alternatively, my mailing address is: 1359 W. Greenleaf, #1D Chicago, IL 60626 USA 6.3. Pre-Printed Manuals. As I mentioned above, I don't plan to reissue the ZDE manuals with the library while ZDE is still in development. For those who wish an updated manual and/or wish to support ZDE, I offer instead a pre-printed 40-page User's Manual and Installation Guide with Table of Contents and Index, postpaid, for those who make contributions of $6 or more to support further development of ZDE.