Copyright 1984 by ABComputing ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Editor's Review ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Reviewed by Bill Salkin ³ ³ ³ ³ Product Name Personal Editor ³ ³ Description Full screen text editor ³ ³ ³ ³ Overall Rating Excellent ³ ³ ³ ³ Company Name IBM ³ ³ ³ ³ Version 1.0 ³ ³ Price $100 ³ ³ Copy Protected No ³ ³ RAM Needed Manual states 64K ³ ³ DOS Level 1.0, 1.1, or 2.0 ³ ³ Monitor(s) Monochrome or Color ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Editor's Review ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Manual Printed in green and black. Readable ³ ³ and thorough. ³ ³ ³ ³ Problems Display of file fragments when a large file ³ ³ ( > 3000 lines ) is scrolled. ³ ³ ³ ³ Unusual 1. Max of 20 files in memory for editing, ³ ³ Features 2. Non-alphabetic keys are user definable, ³ ³ 3. Disk directory can be called up in a file, ³ ³ 4. When file size exceeds RAM size, a spill file ³ ³ ( 128K max ) is created to hold the file. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Editor's Review ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ Omissions DOS 2.0 tree structured directories, not ³ ³ supported at this time. ³ ³ ³ ³ Right justification not supported ³ ³ ³ ³ Inadequate print function. No method provided ³ ³ to immediately print any portion of a file. ³ ³ The part to be printed must be copied to an ³ ³ empty file, and this file printed. ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Introduction ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The Personal Editor ( abbreviated PE ) is a well thought out and implemented full screen text editor. Horizontal scrolling is supported, all the available RAM in your PC can be used, line and character operations are supported, the function of non-alphabetic keys is user- definable, and a maximum of 20 files can be in memory for editing. PE provides so many features that this review will only attempt to capture the "flavor" of the approaches used. When PE is invoked, and the IBM copyright page passed, the screen appears as in Figure 1. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÍÍÍ Top of file ÍÍÍ ³ ³ - ³ ³ ÍÍÍ Bottom of file ÍÍÍ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ³ ³ 1 1 Replace ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Figure # 1 In Figure 1, the reverse video line at the bottom of the screen is called the command line. The area between the "Top of file" and "Bottom of file" markers is the text area. The cursor is initially placed on the command line, and pressing the "Esc" key alternates the cursor position between the text area and the command line. The dash shown in the text area in Figure 1 will be the position of the cursor when Esc is pressed. While editing a file, pressing the Esc key causes the cursor position to be saved and the cursor to move to the command line. Pressing Esc again restores the cursor position in the text area. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Function Key Redefinition ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PE allows all function keys and function key combinations to be user-defined. This should be regarded as a necessary item for any quality text editor. I have reassigned the function keys and saved these assignments in the file PE.PRO. When PE is invoked it uses the contents of this file to configure the function keys and function key combinations. My PE.PRO file defines the "Home" key as: def home = [top edge][left edge] where def home = "define the Home key to be the concatenation of" [top edge ] = move the cursor to the top line of the screen [left edge ] = move the cursor to the leftmost column When the Home key is pressed, the cursor moves to the top line of the screen ( maintaining its original column ), and then moves to the leftmost edge of the screen. This is the typical, if not wordy, function of the Home key. This approach to defining function keys is used throughout PE. Can you guess the function of the following keys? def end = [bottom edge][left edge] def enter = [begin line] [down] To define the Ctrl-Left, Shift-F4, and Alt-R keys I use: def c-left = [left40] def s-f4 = [split] def a-r = [redraw] ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Command Line Usage ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Simple DOS commands such as "erase all.*" are accepted by PE but more complicated forms such as "copy a:all.* b:" are not. Further examples of commands that can be keyed on the command line are shown in Table 1. Table 1 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Example ³ Function ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ change /this/that/ * * ³ change all occurrences of "this" to ³ ³ ³ "that" from the cursor line to the ³ ³ ³ end of the file. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ def c-f1 = ³ redefine the Ctrl F1 functions key ³ ³ ³ for the current edit session. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ dir [d:] ³ display the directory of the ³ ³ ³ current or requested drive. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ name ³ assigns, or changes, the name of ³ ³ ³ the file being edited. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ? tabs ³ display tab settings on the command ³ ³ ³ line ( They can then be modified.) ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ? margins ³ display current margin settings ³ ³ ³ (They can then be modified.) ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ? key ³ display current key definition ³ ³ ³ (The key can then be redefined.) ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ? memory ³ displays available memory in bytes. ³ ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ set display ³ changes the display of the current ³ ³ ³ file. Examples: ³ ³ ³ ³ ³ ³ s display mono ³ ³ ³ s display color 40 ³ ³ ³ s display color 80 ³ ³ ³ s display b/w 40 ³ ³ ³ s display b/w 80 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Character Block Marking ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Most text editors allow a block or group of lines to be deleted, copied, or moved. PE has refined this type of operation to the CHARACTER level. The "artwork" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Print Hello ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ can be produced by character block-marking the string Print Hello and overlaying it in the box ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ as described next. Move the cursor to the "P" in print, and press the Alt and B ( block mark ) keys. The character "P" is highlighted in reverse video. Now move the cursor to the "o" in Hello and press Alt - B, again. The entire phrase "Print Hello" is highlighted in reverse video. Next move the cursor inside the box. Pressing Alt-O (overlay) will copy the block-marked string as follows. The character in the upper left-hand corner of the block-marked area ( the "P" ) is positioned at the cursor location. The next character ( the "r" ) is positioned one column to the right of the cursor location. This pattern is continued and the entire string is copied. This feature was used to create the artwork in PCFL. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Line Block Marking ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ To copy or move a block of lines on the screen the first and last lines of the block are marked. A marked line is shown visually with a reverse video bar extending the length of the line. A block of marked lines has the entire area between the first and last lines in reverse video. (This causes my display to "blush" and can be annoying when large areas are involved.) When an area is marked, it can be block-deleted, block-copied, block-moved, etc. In my PE.PRO file the F1 key is set to mark the line the cursor is on: def F1 = [mark line] To copy a marked line to another location I use the F2 function key: def f2 = [copy mark][unmark] ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Error Handling ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PE is marvelously impervious to system errors. It intercepts them. If you attempt to print a file and the printer is off, or read a diskette while the disk drive door is open, PE displays an error message. This is good programming and not included in many software packages. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Criticisms ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ I have two criticisms. They are not errors in PE though. For no apparent reason, PE has difficulty in dealing with extremely large files. ( The problem may be related to "garbage collection." ) For reasonable size files, (<3000 lines) the screen scrolling is very fast. But editing extremely large files can cause visual fragmentation of the file being edited. (Scrolling speed slows to a gasping crawl, also.) The bottom portion of the old screen remains while the new top portion is in place. A short time later, the correct bottom part of the display appears. The problem is not specific to a single large file. Twenty files may be in memory simultaneously for editing ( a powerful feature of PE ). The combined size of all files may aggravate the situation and induce visual fragmentation in the file being edited. The benefit becomes a burden. BUT for reasonable file sizes the scrolling is extremely fast. My other complaint relates to the deletion of lines from a file. To illustrate, suppose we are editing a file with 200 lines. Block-mark lines 1 through 50, and position line 50 at the top of the screen. When these lines are group-deleted the original line 51 is NOT displayed at the top of the screen. The original file's line 100 is. ( 50 lines past the new first line of the file.) After deleting a large number of lines, the user is greeted with a screen having no relationship to the screen prior to the deletion. This aspect of PE is confusing and should be redesigned. I am not aware of other difficulties with PE. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Conclusion ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ A superb editor. Extremely flexible and error free.... .... ..... but before rushing to buy PE, you may want to read my future reviews on text editors. There are "many fish in the sea" and it will be my pleasure to examine the "catch of the day" for you. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ File Name: ÛÛ pe.txt ÛÛ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ In summary, MetaBASIC is an interesting and useful