The enclosed program is Freeware, i.e, you are free to use it or distribute it at no charge, but I retain all rights regarding the program. Specifically, you may not change it in any way, charge for it (beyond the cost of the media it is distributed on), or include it in a commercial program without my specific approval. Permission is granted to commercial online services to distribute this program so long as no extra charge is made for accessing it. Note that this program makes frequent accesses of its resource fork during operation, so it is best to run it from a hard drive or ram disk. It can be used in a system with only a 3.5 inch drive, but you will be in for a lot of disk-swapping. I may be contacted at any of the following e-mail addresses: dnapoli@freenet.columbus.oh.us r.napoli@genie.geis.com R.NAPOLI (GEnie mail name) This program is a general-purpose file reader and editor which can read text, source, and teach files. Note that the style and font information from teach files is not utilized. Files are saved as standard text files with no style or font info. regardless of the type of file from which the text was loaded. It runs under version 5.04 or greater of the System Software. File length is limited only by the amount of system memory available. Its unique feature is the ability to save, search for or print the portion of the text that is selected (hi-lited). Embedded linefeeds may be changed to carriage returns or spaces to correctly display Unix or MS-DOS text files. In addition, carriage returns can be changed to linefeeds. Menu Items Apple Menu: About Text Editor - Standard self-promotion. File Menu: New - Creates a new document window. Only one document can be open at a time. Open - Opens a standard file dialog showing TEXT, SRC, Teach and DIR files. If the file name ends in ".S" the high bit is cleared so that Merlin Assembler source files will be displayed correctly. If the Option Key is pressed while you select "Open" all files will be selectable. Save - Saves the document without presenting the save file dialog unless you are saving the current selection. Saving a portion of the file always requires you to supply a name so that you do not accidentally over-write the original file. Save As... - Opens a standard file dialog allowing you to change disks, change the default file name (Untitled.1), and save the file. If text is selected, only that portion of file will be saved and you will have to choose a name for the selected portion. Close - Closes the current window (file.) Delete - Opens a standard file dialog allowing you to delete any single file. Does not allow deletion of folders. Cycles through the dialog until you click 'Cancel.' Print - Prints the file by doing an ASCII text dump to your printer. Assumes printer is attached to slot or port 1. If text is selected when the printer is called, only that portion of the file will be printed. Otherwise prints the entire file. Pressing any key or the mouse button will cancel the printing, although it may take a while for your printer's buffer to empty. Launch - Opens a standard file dialog allowing you to change directories or launch a SYS16 or SYS file. Quit - Quits back to the launching program. Edit Menu: Select All -- Selects all text; use with Change Font. Change Font -- Although you _can_ change the text to any selectable font, it will still be printed in your printer's default font( and saved without the style or font information). You can, however, select a monospaced font so that you can line up columns correctly. If you select Monaco 9 BOLD the text window will hold exactly 80 columns. Find - Opens a dialog box asking for a word or phrase to find. Limited to 254 characters (3 lines). Any selected text will automatically become the target string for the search. If more than 254 characters are selected, the search will be aborted. The search always starts at the beginning of the text. Find Next - If you have just used Find, this item continues looking for instances of the chosen word or phrase starting just after the previous successful find. Change Linefeeds - Text files imported from other operating systems, such as MS-DOS or UNIX, may contain linefeeds. If you see a lot of inverse question marks in the text, and no sign of separate paragraphs, change the linefeeds to carriage returns. If there is an inverse question mark at the beginning of each line, change linefeeds to spaces. Change CRs - Substitutes linefeeds for carriage returns. Undo, Cut, Copy, Paste and Clear are explained in a later section. Within The Window Moving The Insertion Point: The insertion point -- indicated by a vertical bar -- can be moved with either the mouse or the arrow keys. Clicking the mouse button once places the insertion point at the point of the mouse cursor. Pressing an arrow key moves the point in the direction of the arrow. Holding down the Open Apple Key (OA) while pressing an arrow key extends the range of the move to an entire word (left or right arrows) or to the top or bottom of the window (up or down arrows.) Holding down the Option Key and pressing an arrow moves the point to the beginning or end of the current line (left or right arrows) or the beginning or end of the text (up or down arrows.) The Tab Key works but in fact only results in one space per tab in the textfile. Selecting Text: Selected text is hi-lited. Clicking the mouse button twice selects the word in which the insertion point is located. Clicking three times selects the entire line. Moving the mouse up or down without releasing the mouse button selects additional lines. Text can also be selected by pressing the shift key and an arrow key. Shift and arrow key alone move in units of one character or one line. Shift plus the OA and an arrow key amplify the movement in the same manner as discussed in 'Moving The Insertion Point.' Shift plus the Option Key and an arrow extends the selection also. For example, shift, Option Key and down arrow select to the end of text. Canceling The Selection: Pressing an arrow key after releasing the shift key will cancel the selection. Clicking the mouse in the window will do the same. Operating On Selected Text: Once text is selected you can perform the options in the Edit Menu either by choosing from the menu with the mouse, or by using the keyboard equivalents. UNDO is for use by Desk Accessories and does not work in this editor. CUT (OA-X) moves the selection to the Clipboard and deletes it from the text. COPY ( OA-C) stores the selection without deleting it from the text. PASTE ( OA-V) inserts the text that is on the Clipboard at the insertion point. If text is selected at the time the PASTE command is issued, it will be replaced by the pasted text. CLEAR deletes the selection completely. It is gone forever. As noted in the 'Menu' section, you can also save, print or find the selection with the appropriate menu item or keyboard equivalent keys. Action Of Other Keys: The Delete Key and control-D delete the character to the left of the insertion point, or any selected text. Control-F deletes the character to the right of the insertion point, or any selected text. Control Key-V, -C, or -X are 'aliases' of OA-V, -C, or -X. Control-U, -H, -J, or -K are 'aliases' of the right arrow, the left arrow, the down arrow and the up arrow respectively. ---------------------------------------------------------------------- NOTE: Almost any other key on the keyboard will first 'CLEAR' the selected text and replace it with the character you enter. ---------------------------------------------------------------------- TIPS "Find and Replace" is accomplished by cutting or copying the replacement to the Clipboard and using the 'Find' and 'Find Next' commands. That is, when the word or phrase is found and is hi-lited, press OA-V. The hi-lited text will be replaced by the text on the Clipboard. Continue with the 'Find Next' command and replace any subsequent instances of the target by again pressing OA-V. "Find and Delete" is just as easy. Just use 'Find' and press the "Delete" Key while the text to be deleted is hi-lited. To delete subsequent instances use the 'Find Next' command. Memory Problems Although file length is limited only by amount of available memory, you may find that limit reached sooner than you would expect. Loading a file when using the TextEdit toolset requires about 2.2 times the filelength of free memory since the toolset maintains its own copy of the file in a structure called a TextEdit Record. The same situation occurs when saving a file, searching for text, or printing the text. The program must request memory for TextEdit to make a copy of the text portion of the file, since the TextEdit Record is not directly available to the program. The result is that you will occasionally get an error message saying that memory could not be allocated for the operation you requested. This is most likely to occur if you search for text you have hi-lited within a very long file. On my 4 meg system this problem only shows up with a file of over 800K in length. Technical Information Written/assembled with Merlin 16+ with about 1700 lines of code. Resources written/edited with rEdit and Foundation. The source code contains routines written by members of DTS, Apple Computer, Inc -- copyright by Apple Computer, Inc. Specifically, the Find dialog box is adapted from DLog1 by Jim Mensch. The Main loop was adapted from routines in _Advanced Programming Techniques for the Apple IIgs Toolbox_ by Morgan Davis and Dan Gookin, published 1988 by Compute Publications. Acknowledgements Thanks to Dave Althoff and Geoff Pursell for beta testing this program. ---------------------------------------------------------------------- Document revised January 28, 1995. ---------------------------------------------------------------------- Brand and product names are registered trademarks of their respective holders.