💾 Archived View for mirrors.apple2.org.za › active › ftp.apple.asimov.net › images › disk_utils › LI… captured on 2023-05-24 at 22:45:40.

View Raw

More Information

-=-=-=-=-=-=-

             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