Description of Stowe Keller's ProDOS8 LIST utility -------------------------------------------------- Version 2.5 updated: 03/08/93 mon LIST is a $15 shareware machine language program for ProDOS8 which is designed to allow viewing the contents of any ProDOS file (except GS/OS forked files, which are not supported by ProDOS8). I find it particularly useful for examining text files which are too big to fit into any word processor. LIST is an evolving program so send in your comments, suggestions and bug reports so that I can continue to improve LIST in future versions. LIST is designed to handle file sizes up to the full 16 Megabyte limit of ProDOS8, and provides several different display modes, allows scrolling up and down through a file by line, by screen or by half a screen, has commands for searching, and can print all or parts of a file to printer or disk. LIST has a configuration screen with save-to-disk capability; LIST will automatically load this file (if it exists) at startup. There is onscreen disk/file selection for choosing which file you wish to view, or you may explicitly type in the pathname. This version of LIST requires an Apple //GS, or //c or //c+, or //e with 80-columns and 128K of RAM (versions of LIST prior to 2.0 could run on a 64K system). There are known problems with LIST running on the Laser 128 which I have not yet been able to fix, but some Laser users report that the program is still 98% usable. Because LIST is oriented to an 80-column display, I have made no effort to make it run on the ][+ or 40-column //e. One Franklin user reports that LIST works without problems on the Franklin 500 and 2000 models, but does not work on the Franklin 1000 nor the 1200 models. As far as I know it has not yet been tested on the AppleShare network, but neither have I had any reports of incompatibilities. LIST was written according to Apple's specifications for avoiding AppleShare incompatibility and should work fine. If it does not, please let me know so that I can fix it. Because of the size of this program (over 36K), it cannot be launched directly from BASIC.SYSTEM (you'll get the "NO BUFFERS AVAILABLE" error message). Certain other program launchers are also unable to handle SYS files as large as LIST, so if you find that LIST will not directly launch from your usual program launcher, try using my LIST.LAUNCH program, which should be placed in the same directory as LIST.SYSTEM. LIST.LAUNCH is a short SYS file which cleans up the ProDOS8 environment (in case any previously executed application did not follow Apple's protocols), looks for the SYS file LIST.SYSTEM, and then launches it if found. LIST is a copyrighted program which is $15 shareware, with commercial rights reserved. This means that you, as an individual, may copy and distribute the program for free and try it out to see if it is useful to you. You are not allowed to sell this program, in whole or in part (other than the cost of duplication), nor are you allowed to make it part of your commercial package, unless you obtain prior written licensing from me. If you, as an individual, decide to use or keep the program, you are expected to send me $15 (or more, if you like) so that I can pay some bills and so that I can continue expanding and updating this program. So far, I have been working on LIST for about three years now. Send me your suggestions, bug reports and comments, and I'll do my best to work them into future versions of LIST. And don't forget to send in your shareware checks, too! My US MAIL address is: Stowe Keller 101 Viewmont Court Charlottesville, VA USA 22901 I can be reached electronically on the following systems: Compuserve: [71540,725] GEnie: SKELLER LIST FEATURES ------------- -Viewing modes: LIST currently offers support for viewing files in the following formats: -All modes have a "Zoom" and "non-Zoom" mode for hiding or displaying control (or other special) characters. When control characters are displayed, they appear in inverse text. -Compressed text: 80 characters across a line, no attempt to interpret line terminators (i.e., end of line characters). -ProDOS mode: Looks for Carriage Return as line terminator; if found, move to next line, else wrap at 80th character position. -MS-DOS and Unix modes: look for Linefeed as line terminator, else wrap at 80th character position. -Hex mode: display file in Hexadecimal and ASCII format, 16 bytes per line. Displays byte offset at beginning of each line. -AppleWorks Word Processor (AWP) mode: will interpret the internal format of an AWP file, and display it onscreen as if you were viewing from within AppleWorks. In this case, Zoom will display or suppress printer options etc, just like Appleworks. -Specified by user: given a 7-bit value specified by the user, use this as the line terminator character. A status line is presented at the bottom of the screen and displays the following: the file offsets for the beginning and end of the section of the file which is onscreen; the file length; whether or not Zoom mode is active ("[Z]" is displayed if Zoom active); and a percentage representing your relative position within the file. -ProDOS parameter passing: LIST will accept a filename as a parameter at startup (just like BASIC.SYSTEM), provided that the launching program follows Apple's guidelines for doing so. If no filename is provided, LIST will prompt the user to either explicitly enter the filename to be viewed, or the user may perform onscreen selection of disk volume, subdirectories etc, ending with the selection of the file to view. This onscreen selection can be performed solely with arrow keys and the return key. If the user wishes to view the bytes within a DIR file, that too is possible by highlighting the DIR file entry and pressing Open-Apple-Return instead of Return. (Pressing Return on a DIR file moves you into that subdirectory and displays the file entries therein.) -Arrow keys can be used to scroll up and down through a file by line or by page. The Space key will advance forward by one half screen, and Open-Apple-Space will move backward by one half screen. Open-Apple-1 through Open-Apple-9 can be used to proportionally jump through a file, like Appleworks. (These keys can also be used during onscreen file selection to move through long directories.) -Appleworks-style prompts: to facilitate ease of use LIST uses Appleworks-style prompts. The user can answer through the use of arrow keys and Return, or (with only a few exceptions) by pressing the first letter of the desired command, or the user can press ESCAPE to exit out of the prompt. -A help screen is available displaying brief descriptions of the commands. (If the command keys are reconfigured, the help screen will change accordingly.) -An Information screen provides details on the current file being viewed (such as filename, file type and auxiliary type, file size, access bits and date/time of modification and creation of file), current display modes, line terminators, etc. -Find command: allows searching for a string of text characters (case sensitive or insensitive) or hex bytes, or repeat the previous Find command. The search will start from the second line on the screen, and if the string is found, the file position will change to display that line at the top of the screen, with subsequent lines following it. Currently, while viewing a text file and using a string search (NOT a hex search), LIST will automatically interpret any Control-H's in the file as destructive backspaces. This means that LIST will successfully find strings entered in an interactive terminal session, even if the middle of the search string was edited with Control-H and partially re-typed. I know of no other utility which will do this for you. (I'm considering making Control-H processing an option, because there are obscure circumstances in which you want it turned off.) When in AWP mode, the 300-byte header of the file is always skipped during searching. Hex searches in AWP files are not recommended. Currently, there is no practical way to search for printer commands in AWP files. Also, this version of Find does not support searching for strings which contain the line terminator (i.e., end of line) character. This may get fixed in a future version. -Jump command: allows jumping to a specified file offset or to a specified line number. Lines are interpreted according to the current display mode; for example, compressed mode will treat every 80 characters as a line, Unix mode and MS-DOS mode will search for linefeeds as end-of-line markers, Hex mode will count every 16 bytes as a line, etc. -Line mode: LIST makes a simple attempt to determine what display mode to use for this file. If it is not correct, the user can easily change it. Warning: treating non-AWP files as if they were AWP or examining a corrupted AWP file can result in a huge mess on the screen. Other problems can arise, too, so I recommend against trying to force a file into AWP unless you are certain that it really is an AWP file. LIST versions 1.9 and above are designed to support the new AWP printer commands in Appleworks 3.0. -Mark a section: The user can mark the beginning and end of a section by specifying the file offsets (very clumsy, I know; eventually I hope to support an onscreen cursor for marking the start and end). This marked section can later be printed to a disk file or to the printer. -Print commands: Print the screen, the entire file or a marked section to printer or disk. NOTE: output can be affected by whether or not you are in Zoom mode and upon the printer/disk configuration settings that you have set up. FOR MOST SITUATIONS, KEEP ZOOM MODE OFF WHILE PRINTING! If you don't, you may end up with lines that are double-spaced vertically because there are two sets of line terminators (i.e., end of line characters) being output for every line of text. Printing to disk within LIST offers the ability to change the line terminator (that is, the end of line character(s)) such that you can translate a text file from one operating system format to another. For example, if you have received a text file from an MS-DOS machine it will have lines which are terminated by Carriage Return and Linefeed, but the Apple // normally expects to have only Carriage Return at the end of a line. To remove the unwanted Linefeeds, you can use LIST to view the MS-DOS file in MS-DOS line mode with Zoom turned off, and with the Configuration set up so that the disk line terminator is Carriage Return (which is what ProDOS expects), you may then print the file to disk and the output file will contain the text of the file but without any Linefeeds. (MS-DOS line mode tells LIST to look for Linefeed as a line terminator on the file being viewed; with Zoom off, control characters such as Linefeeds will be hidden from view and will not get printed to disk [except that tab characters will be expanded to spaces according to the tab width configuration], and with the configuration option for disk line terminator set to Carriage Return the output file will have Carriage Returns at the end of each line.) There are many utilities for the Apple // that will do this (they are often called "Linefeed Strippers" or "LF Removers"), but LIST offers additional flexibility by allowing translation of either the entire file or just a part of it, plus the fact that other translations can be performed too: LIST can be set up to convert a ProDOS text file to MS-DOS or Unix format, or to convert an AWP file to a text file in ProDOS or other format, or a file can be output with no line terminators at all. -Range mode: specify whether to display status line ranges in hex or decimal. Use the configuration screen to specify default for program startup. -Zoom mode: toggle displaying/hiding of control characters (or special commands in AWP files). Control characters will appear onscreen as inverse text. -Extract: this feature is intended for the extraction of a section of a file and storing that section to disk in unmodified form. Because of the way the Print to disk commands work, it is not possible to extract 8-bit data: the various routines are currently geared towards 7-bit ASCII. With the Extract feature, you can pull out 8-bit data (such as a machine language subroutine) from one file and save it as a new file. Extract will make NO attempt to read the file in line-oriented fashion, and no line terminators will be generated in the output file. -ESCAPE: This gives you the option to exit the program, or to view another file. If you choose to view another file, LIST attempts to return you to the same directory from which you chose the previous file and will highlight that file entry. You may then use the arrow keys and Return keys to perform onscreen file selection. -Configuration file: at startup, LIST looks for a file (in the same directory from which LIST.SYSTEM was launched) for a file called LIST.CONFIG. This file contains user parameters such as printer initialization string, printer width, tab width, and defaults for hex or decimal range display at startup, where printouts should go (to printer, to disk, or prompt user, etc). When you exit the configuration screen (by pressing ESCAPE), you have the option of saving it to disk. If you choose not to save the configuration file to disk then your changes will stay active only for your current session. I have plans for removing the configuration screen from LIST and making it a separate file, and then adding features like command key redefinition. (Some users HATE Open-Apple keys, and determined users can change the keys by using a disk zap program to patch the command key table in the LIST.CONFIG file.) LIST checks the command key definitions at startup and will default them if there is a serious problem with it (such as duplicate keys). CONFIGURATION OPTIONS: ---------------------- The configuration screens within LIST give you control over many parameters affecting the operation of the program. Output device: This parameter controls to which device printouts should be sent during the print command. By default, when you tell LIST to print you will be prompted for which device to use. If you prefer, use this configuration option to change the default to always printing to the printer or always printing to a disk file. This saves you the trouble of repeatedly answering the prompts when making a large number of printouts from LIST. After you've made your selection, press ESCAPE. Printer device information: "Printer slot": this parameter controls which slot will be used for printer output. USE OF SLOT 3 (THE SCREEN) IS NOT RECOMMENDED!! "Printer initialization string": You are responsible for determining what printer initialization string is appropriate for the printer interface card and the printer of your system. LIST does not provide the fancy, easy-to-use printer options that Appleworks does, but through use of the printer initialization string it is possible to accomplish almost as much. The printer initialization string consists of characters which will be sent to the printer device in the specified slot when you tell LIST to print to the printer. This printer initialization string should contain all the characters, control codes, escape codes, interface commands, printer commands etc needed to set up your interface card and set up your printer as desired. (The initialization string is sent once at the beginning of a Print command and will not be sent again until the next Print command.) Unfortunately, with the wide variety of interfaces and printers available for the Apple // series, it is impossible for me to know exactly what printer initialization string will work best for you. Some users will find that they can leave the string empty and get precisely the type of printouts they want, while others may find that a string such as Ctrl-I80N is needed to tell their interface card to disable screen echoing and to disable automatic carriage returns at the 40th column. If you wish to set your printer to a print mode other than its default setting(s), you must place the appropriate control and/or escape codes in the printer initialization string after any interface card codes. For example, on my system I have defined my printer initialization string to tell the multi-function interface card to use the parallel port (as opposed to the serial port or voice synthesizer), followed by the codes to tell my printer to go into the modes for 15 characters per inch horizontally and 8 lines per inch vertically. And when the printer ribbon gets worn and low on ink, I append a code to the end of the printer initialization string to tell the printer to use double-strike mode to make the printouts darker. "Printer termination string": This is similar in concept to the initialization string except that it is sent after all other text has been printed from LIST during the most recent print command. You may leave the printer termination string empty or, if you wish to have a page eject at the end of every printout, you can define the string to be Ctrl-L (which is a formfeed on most printers) to cause the printer to advance to the top of the next page. You can use the printer termination string to send control and escape codes to the interface card and/or to the printer to restore the interface card and/or printer back to its default values. Thus you can undo any settings that may have been set up in the printer initialization string. "End of line": This parameter controls what characters will be output at the end of each line that gets sent to the printer. The default is Carriage Return, which is sufficient for most printers, but some printers may need the two-byte sequence Carriage Return and Linefeed to be sent. "Bit 7 of chrs": The status of the high bit (also called "bit 7") of characters which are sent to the printer can be very important on some systems. Certain interface cards, such as the Grappler, will NOT recognize control codes like Ctrl-I unless the high bit is set. Versions 1.8 and 1.9 of LIST defaulted to having the high bit CLEAR when printing, which caused a variety of problems on some systems. Some users reported seeing inverse text or other characters on the screen and/or having the screen switch to 40 column mode while printing; other people found that their printer would indent several spaces on the very first line of text because the Ctrl-I intended for the interface card would not get intercepted and instead the printer would receive it and interpret it as a tab command. So if you are experiencing problems printing from within LIST, first check to see that the printer bit 7 is set, then check your printer initialization string and if necessary examine the manuals for your printer interface card and your printer. Some printer interface cards work much better with sequences like: Ctrl-I80N or Ctrl-I0N for the printer initialization string. Ideally, there should not be any "echoing" of printed characters to the screen when printing from within LIST, but some interface cards may require additional control or escape codes to suppress screen echo. Also, be aware that it is possible to explicitly enter a Carriage Return (Ctrl-M) into the printer initialization (and termination) strings. Doing so unintentionally can result in what appear to be extraneous blank lines at the beginning (or end) of printouts. A page header or page footer consists of the page number, the filename, and the date/time according to ProDOS, all centered within the current device width. (Sorry, this version of LIST completely ignores AWP page headers and footers.) You are responsible for determining how many lines of text there are per page given your printer's specifications, the actual page length, and the number of lines per vertical inch. For example, most printer paper is 11 inches long, and if all of it is used for printing text at 6 lines per inch, then there you should specify 66 lines per page. If your printer initialization string configures your printer to use 8 lines per inch vertically then there would be 88 lines per page. If your printer initialization string configures your printer to have top and bottom margins, then you must take those into account when you calculate the number of lines per page. The formfeed option is useful for causing printer page breaks, particularly if you wish to leave some vertical white space at the bottom of each page: specify a page length in lines less than the actual number of lines per page, and then enable formfeeds; a formfeed will be output after the specified page length. If you are like most users you will use all available lines on the paper when printing and you should not need to enable formfeeds. FOR MOST SITUATIONS, KEEP FORMFEED OPTION OFF. If you do not use page headers or page footers or formfeeds then it is not necessary to specify the lines per page -- it will not affect the printed output. After you've made your selection, press ESCAPE. Disk file information: These parameters affect printouts which go to a disk file. "Filename": You can choose to be prompted for the filename every time you issue a printout request or you can specify the filename in advance. (Specifying a filename in advance can be very useful when you are making repeated printouts to disk to the same filename and you wish to avoid having to answer the prompt every time.) "When file exists...": When you print to a file which already exists there is a choice as to whether to overwrite the file, append to the file or stop and specify another filename instead. The default is to prompt the user at the time of printing as to which course of action to take. You can change this by specifying that printouts should always overwrite existing files or that printouts should always be appended to existing files. "End of line": When printing to disk, lines are read in from the file being viewed according to the current line mode and any end of line control characters are removed (unless you are in Zoom mode), and the lines which are printed to the output file will be followed by the end of line (or "line terminator") character(s) specified by this parameter. The current choices are to output a Carriage Return (the default), or the two byte sequence Carriage Return and Linefeed (suitable for MS-DOS), or just a Linefeed (suitable for Unix), or None. "Bit 7 status": Some applications are sensitive to whether the most significant bit (also called "high bit" or "bit 7") of ASCII text files is a zero (clear) or one (set). Most operating systems including ProDOS prefer to have bit 7 of characters clear, but this gives you a way to change that. Characters which are printed to disk will have bit 7 set or cleared according to this parameter. (Sorry, you must choose one or the other -- there is no way with this version of LIST to preserve the original bit 7 value while printing to disk. The Extract command will preserve all 8 bits of each byte, though.) After you've made your selection, press ESCAPE. Miscellaneous: These parameters control miscellaneous aspects of LIST that didn't fit under other categories. "Default range display": This parameter controls whether the status line during file viewing will display range values in decimal or hexadecimal number format. Default is hexadecimal. (While viewing a file, pressing Open-Apple-R will toggle the range display mode between decimal and hexadecimal; this parameter merely controls which range display mode is active at program startup.) "Column width of device": When printing to the printer or to a disk file, this parameter controls how many characters will be output before LIST automatically outputs the line terminator (i.e., end of line) characters. This parameter is also used to determine the centering of page headers and page footers when they are printed. Default value is 80 characters. "Tab width": This parameter controls the expansion of tabs to spaces within a file being viewed (it has no effect when viewing AWP files). The default value is 8, which means that tabs (Ctrl-I's) within the file, when viewed in non-Zoom mode, will be expanded such that tab stops occur ever 8th character position. A value of 0 means that tabs will not be expanded. "Skip disk slot": When LIST scans the system at program startup for available disks it must scan every disk drive. This can be quite slow if you have 5.25" drives that are empty because ProDOS must waste a few seconds determining that there is no disk in that device. If you don't use 5.25" disks much and you wish to save time within LIST you can set this parameter to the slot number of the 5.25" drive controller and any drives in that slot will NOT be scanned by LIST. (It is still possible, though, to view a file on a 5.25" disk by explicitly specifying its pathname instead of using the onscreen file selection.) The default value is 0 which tells LIST to scan all slots to find all online disks. After you've made your selection, press ESCAPE. When you are finished with your configuration changes, press ESCAPE again. You will be asked if you wish to save your settings to disk, and if you answer yes, LIST will try to save off your parameters in the same directory from which LIST.SYSTEM was launched, using the filename LIST.CONFIG. If you do not save off this file, your selections will stay active only for your current session. KNOWN BUGS AND LIMITATIONS: --------------------------- -Limitation: LIST cannot display GS/OS forked files (such as CDEVS) because ProDOS8 is not yet capable of handling the forked file storage format. (You'll get the "Incompatible Storage Type" error from LIST.) -Limitation: LIST version 2.0 and later now require 128K of RAM (previous versions could run on 64K systems). Also, it is best to use ProDOS8 version 1.8 or higher to avoid incompatibilities that can arise when trying to view directory file entries which contain lowercase characters in the filename (you may get the "Incompatible version" error from LIST in such situations). -Limitation: Because of all the new configuration parameters, LIST version 2.0 is not compatible with LIST.CONFIG files which were saved off with previous versions. You will have to save off a new LIST.CONFIG file from version 2.0 in order to avoid an error message at program startup. -Limitation: Handling the representation of control characters when outputting a Zoomed file to the printer is not as clean as it could be. One idea I have for future versions is to allow the user to choose a special printer sequence, such as underlining, which would cause control characters to be underlined when they appear on the printer. Currently, control characters going to the printer get converted to visible ASCII, which is thoroughly confusing, particularly if you forgot to turn off Zoom mode before printing. When printing to disk, those characters are left as control characters, which can cause unexpected results (such as vertically double-spaced text) if you are not careful in choosing your line terminators. -Bug: Viewing a corrupted AWP file, or viewing a non-AWP file in AWP mode can result in alot of junk onscreen, and the find commands can fail with internal memory overflows. In some instances LIST will display only one line of text at the top of the screen and will waste its time scanning to the end of the file looking for the next legal AWP line when there is none to be found. Moral: Don't force a non-AWP file into AWP display mode! -Bug(s): I am still having trouble fixing some strange and nasty bugs that occur when printing certain AWP files to the printer. These problems seem to have started with version 2.0 and I hope that version 2.5 is less susceptible to them, but I regretfully acknowledge that the problem seems to linger on. If you do encounter a problem with printing AWP files directly to your printer, you should be able to get around this (for now) by restarting ProDOS8 LIST and printing the AWP file first to a text file and then printing that file to the printer. Then please contact me with the details of what happened and if possible send me the AWP file so that I can duplicate and hopefully fix this bug. -Bugs: LIST does not display all text and menus properly on Laser 128's. I'm still trying to fix this. -Limitation: as evidenced by the need for the Extract command, LIST is oriented towards 7-bit values, not 8-bit values. The algorithms do not allow for a line terminator (i.e., end of line character) with a value greater than $7F. -Limitation: there is no support for displaying Mousetext characters that occur within the file you are viewing. -Limitation/bug: there is no word-wrapping implemented. LIST does not care if it splits a word across the right-hand edge of the screen (or printer) and spills the remaining characters onto the next line. I admit that this is very annoying. -Limitation: when printing out AWP files, any imbedded printer control codes (other than carriage return) are COMPLETELY ignored. If you are in Zoom mode when you print, these printer codes will be printed in ASCII text, just like you see them on the screen. Some users will obviously expect LIST to be able to print an AWP file just the way the Appleworks would, but implementing all Appleworks printer commands would involve an enormous, if not prohibitive, amount of work, and I do not foresee attempting such features. -Limitation: Since I do not yet have Appleworks GS I have not yet attempted to support displaying files saved by AWGS. TROUBLESHOOTING COMMON PROBLEMS AND REPORTING BUGS -------------------------------------------------- Many changes have taken place since version 1.9 and I sincerely hope that I have caught all the major bugs in this release, but with any program of this size some are bound to slip through. If possible, try to see if the problem occurs after a cold boot on the system or try using a different disk device to store LIST when it is launched. I am aware that some ill-behaved programs like DB Master can leave ProDOS8 in an "unclean" condition that will prevent LIST version 2.0 and later from launching directly, but a cold boot of the system after using DB Master will circumvent the problem. (DB Master, contrary to Apple's protocol, disconnects /RAM at slot 3, drive 2 and does not reconnect it upon exit.) I have also had reports that LIST will not launch from certain types of disk devices (the description is that the disk spins and before LIST executes the computer will crash into the firmware monitor), but I have not yet been able to duplicate this or fix this. Certain type RAM disks for the //e and //c might have compatibility problems with LIST versions 2.0 and higher. If you have a RAM disk that is larger than 64K and it maps into Slot 3, drive 2 (where ProDOS normally places its own /RAM disk volume), you may discover that you cannot access this RAM disk from within LIST and that upon exiting LIST this RAM disk is wiped clean of any previous files which it may have had. If this is unacceptable to you, try checking the manual and installation software for your RAM disk. It should be possible to reconfigure your RAM disk so that it will appear to reside in a location other than slot 3, drive 2, and you should also make certain that Bank 0 of the expanded memory is "locked out" from use so that there will always be 128K of RAM directly available for use by LIST. Remember, LIST is too large to be launched directly from BASIC.SYSTEM, so in that situation you must execute LIST.LAUNCH instead. If you are using a program launcher that has trouble launching LIST, try executing LIST.LAUNCH . If that still doesn't work, please report the problem to me. If you are getting "Incompatible version" errors when trying to access files on certain disks or subdirectories, this may be due to using an older version of ProDOS8 than version 1.8. Apple Computer changed the way GS/OS and ProDOS8 treats certain directory entry information on files in order to support lowercase characters in filenames; the older versions of ProDOS8 do not know how to handle this new format for directory entries and will mistakenly return an "incompatible version" error when you try to view the contents of a directory which has filenames containing lowercase characters. To avoid this problem, upgrade your system software to the latest versions of ProDOS8 (and GS/OS, if you have a //GS). When you find a problem and you are sure that LIST is at fault, please send me a description of the problem and a description of the following: the version number of LIST, any configuration information that is different from the LIST defaults, information on what model Apple // system you are using, what type disk devices (e.g., Unidisk 3.5" or 5.25" drives or particular hard disk and its interface card), what version of ProDOS is being used and what program launcher (if any) you are using. Does the problem occur only on one disk device? Does the problem occur only after running a particular program? Did a problem arise right after installing a new piece of hardware? The more information I have about the problem, the more likely I will be able to duplicate it and fix it in the next version of LIST. VERSION HISTORY --------------- 1.8: April 1989. This was the first shareware release. 1.9: Sept 1989. Bug fixes and AWks 3.0 support: Several bugs were fixed. A memory conflict on certain hardware configurations caused a "$40 Bad Pathname" error when the user stopped viewing one file and went to select another file for viewing. Another memory conflict would crash the system if the user went to select a file from a subdirectory containing more than about 130 files. Some new filetype abbreviations were added to the directory display. The AWP line display mode was expanded to support displaying the new AWP printer codes which are available in Appleworks 3.0. 2.0: May 1990. Major upgrade with new features and many bug fixes, including: -LIST now requires 128K of RAM; an error will occur if /RAM is not found at slot 3, drive 2. If you run an application like DB Master which removes /RAM and does not reconnect it, you will either have to reboot ProDOS8 or you may use LIST.LAUNCH to reinstall /RAM at slot 3, drive 2 -LIST.LAUNCH, a short SYS file for launching LIST, is available for users of BASIC.SYSTEM and program launchers which cannot handle launching SYS files as large as LIST; place LIST.LAUNCH in the same directory as LIST.SYSTEM and use '-LIST.LAUNCH' from BASIC -Faster scrolling when moving up/down one line (two to three times faster on many files!) -Improved error trapping when printing to disk -Printing to disk now supports the device width as specified in the configuration screens -Fixed bug when printing out a marked section that starts and/or ends in the middle of an AWP line -During onscreen file selection, moving up one directory will highlight that directory's entry in parent directory -Fixed problem with displaying or printing AWP file with header command -Fixed bug with using config to set tab stops to value other than 8 and saving to disk (next session would not use new value) -While printing to disk and appending onto a previously existing file, that file will be forced to be filetype TXT -Fixed AWKs-style prompts so that making a selection via alphanumeric key will highlight appropriate option -Fixed bug with user specifying an explicit filename that is not found, now goes to that directory (if possible) to let user try again -Fixed bug with improperly rejecting LIST.CONFIG file at startup if previously configured to have disk or printer line terminator of 'None' -The number of file entries displayed during onscreen file selection has been increased to well over 500 (previous version of LIST supported less than 100) -Fixed bug when printing to disk in non-Zoom mode with failing to output final disk line terminator -Fixed bug with failing to find search string if last byte of target string was the last byte of the file -Changed the configuration default setting of the high bit of characters printed to disk to 'Set' to minimize incompatibilities with certain printer interface cards (like the Grappler) which didn't recognize Ctrl-I sequences that had the high bit clear New Features: ------------- -Onscreen file selection now displays filenames in lowercase when their file entries mark them as such (the most recent version of GS/OS supports lowercase characters in filenames) -During onscreen file viewing you may use Open-Apple-E to allow entering a pathname of a directory or a file that you wish to view. This can be much faster than having to "walk" up and down directories and disk volumes in order to reach the desired file. -While viewing a file, there are two new command keys for moving up and down through a file by half a screen (Space and Open-Apple-Space); these keys also work for scrolling during onscreen file selection -Information screen on file now displays status of file's access bits -Added a pop-up text box of information during marking of beginning and end of sections and during extract command -New configuration options: -Page length, page headers and page footers and formfeed options: when printing to the printer or to a disk file, it is now possible to have a simple page header and/or page footer printed with it. A formfeed option is available for forcing page breaks after a certain number of lines -Allow skipping a disk slot when scanning for online volumes: this is particularly useful for those people who have empty 5.25" drives and don't like the long delay while ProDOS scans those drives looking for non-existent disks 2.1: July 1990. A couple of bug fixes in both LIST.LAUNCH and LIST.SYSTEM . -Some bugs were fixed in the OA-E command during onscreen file selection -Removed requirement that /RAM be online and LIST.LAUNCH will no longer attempt to create /RAM if it does not exist (although LIST still does require that 128K of RAM be available). If /RAM is disconnected at entry to LIST.SYSTEM, it will stay disconnected at program exit. This should now match Apple's protocol, as described in their technotes, for use of the auxiliary 64K RAM. -LIST.LAUNCH also modified to display textual error messages for "File not found" and "I/O Error" when attempting to launch LIST.SYSTEM 2.2 thru 2.5: Fall 1990 thru February 1993. These versions do not have formal release dates the way previous versions did because only a few copies were sent out to update certain registered users. Unfortunately, during this time I have not been able to devote as much time and effort to debugging and updating LIST as I had originally hoped. Although I have been able to fix some bugs along the way, version 2.5 still seems to have some lingering bugs that elude my attempts to eliminate them. When I do finally get rid of them in a future version I plan to do another mass release of LIST. Some of the changes since 2.1 are: -Fixed problems with string search feature sometimes hanging instead of giving 'Not Found' when end of file reached. -Attempted to minimize severity of program crash when printing certain AWP files directly to the printer; attempts to completely fix this problem were not successful. ----EOF