
List Readme

Sales Pitch:
A quick & dirty listing program for protect mode OS/2.	It uses multiple
threads for reading ahead in the file.	The first screen comes up after the
first read!  You don't have to wait for the file to be read in.  (The read-
ahead buffer is configurable from 50K on up (default is 200K)).  The colors
are configurable through an INI file.  Goes straight to physical screen if
possible. (otherwise the virtual is used).  Also provides search and copy
features from the files being listed.

Command Line:
    list [-s:string] [-g:line#] fname, ...

    -s:x    - Search for 1st occurance of string x when displaying first file.
    -g:#    - Goto line # when fisplaying first file
    fname   - A list of filenames to be listed

Keyboard:
    ?	    - Calls up quick help
    PgUp    - Goes up one page. (determined by the current screen hieght)
    PgDn    - Goes down one page
    Home    - Move to the top of the current file
    End     - Move to the end of the current file
    Arrows  - Moves up, down one line. Or left, right one tabs stop.
	      Note: The key repeat rate determines the speed of the scrolling.

    Alt E   - Toggle EGA mode.	Goes from 80 x 43, to 80 x 25.
    Alt V   - Toggle VGA mode.	Goes from 80 x 60 (or 50), to 80 x 25.
	      Note: EGA/VGA mode toggling will be ingored if the display
	      does not support that mode.

    W	    - Toggles word wrap from 254 to the current screeen width
    ^L	    - Will refresh the display
    Q,ESC   - Quit


Searching:

    /	    - Searchs for a string.
    \ 	    - Searchs for a string in any case.
	      Note: There is no speed difference in these searches.

    F4	    - Toggles multifile search
    n,F3    - Will search for the next occurance of the string
    N	    - Will serach for the previsous occurance of the string
	      Note: This is from the current marked text. If no
	      text is mark (it has been cleared), then the next
	      occurance will be from the current position of the display.

    C	    - Clears the marked area.
    J	    - Jumps to the marked text
    G	    - Goto line number
    M	    - Marks the center line on the current display.
	      (This will clear the current marked location, if there
	      is one).

    s Up    - Pull the copy buffer up one line
    s Down  - Pull the copy buffer down one line
    s PgUp  - Pull copy buffer up one page
    s PgDn  - Pull copy buffer down one page
    s Home  - Slide the copy buffer up one line
    s End   - Slide the copy buffer down one line
    P	    - Will paste the buffer to a file
	      Note: By using these keys you can mark an area. (where
	      the search only marks a line). Then the highlighted
	      lines can be copied to a file. In the file, each line
	      will be terminated with a CR/LF (this is the default
	      for OS/2).  When listing a file, list will work with
	      either CR's, LF's or both.


    ^ PgUp  - Go back to the Previous file being displayed
    ^ PgDn  - Go to the next file to be displayed
    F	    - Prompts for a new filename to list
	    Note: Wild cards are exapnded, and then sorted. The
	    new file(s) is added after the current file. (Ie, ^ PgUp
	    will take you back to the file you were on when you
	    spefied "f").


List INI file parameters:

If you have an enviroment varible "INIT", list will look
in this directory for TOOLS.INI. For the
best performance you should put the list section near the
top of your INI file (or use the list.ini file).  You
are encouraged to at least put "[list]" in your tools.ini
file; otherwise, list.exe will scan the complete tools.ini
before displaying any part of the file being listed.

    Note: while the INI file is being searched for, and read,
    list will go ahead and read up to the first 50K of the
    first file to list... This way, once the list.INI section
    has been read, the first screen will be displayed right away.


The following keywords are allowed in the ini file:
Dafault is used for any value not specifed.

    tcolor  - Color of the title line
	      (all colors are hex values)
	      Default: 07   (white)

    lcolor  - Color of the listing
	      Default: 03   (cyan)

    hcolor  - Color of highlighted text
	      Default: 70   (Black chars, on white background)

    bcolor  - Color of the scroll bar
	      Default: 05   (green)

    ccolor  - Color of the command line
	      Default: 05   (magenta)

    kcolor  - Color of keyed input
	      Default: 02   (green)


    width   - Specifies the width you would like to see your listings in.
    height  - Specifies the hight you would like to see your listings in.
	      Default: The current video mode.
	      Note: The current video mode is also used if these settings
	      are illegal for the current monitor.

    buffer  - Amount of memory (in K) to use for reading ahead.
	      The min amount which can be specified is: 50
	      Default: 200K
	      Note: List will automatically try to keep ahead
	      of the user whom is listing a file. The program will
	      not allocate more then the specified amount of memory
	      for reading ahead of the user. Also note, the read ahead
	      is only for the current file.

	      For optimal performance, the read ahead is performed
	      asynchronously to the displaying.  The first screen of
	      the listing will occur after a small amount of the file
	      has been read.

	      Also in the intrest of speed, list will attempt to use
	      the physical display addresses to perform it's updates
	      to the screen.  If, for some reason, addressability can
	      not be obtained to the physical display, it will still
	      work by using normal Vio calls.  (A 'v' will be displayed
	      on the top status line).


    tabamt  - The tab stop amount per tab char.
	      Default is 8.
	      Note: Very rarely needs adjusted.  However, sometimes
	      someone changes there editor to save tabs out for an
	      abnormal amount.

    nobeep  - Disables list from beeping


Status line information:

  FileName   Line WW of XX   Col YY-ZZ	      [flags]	  Date	  Time

    FileName- The name of the file currently being displayed

    WW	    - The line number of the top line on the display
    XX	    - The line number of the last line in the file.
	      Note: This will not appear until the last line is known.
	      (If the read ahead has read to the end of the file).

    YY - ZZ - The columns which are being displayed.
	      Note: This will only appear if the dispaly is not showing
	      column 1.

    flags:
	*   - Multi file search has been selected
	N   - The file is on the network
	M   - The file has been totaly read into memory, and closed
	R   - The file is flagged as read only
	H   - The file is hidden
	S   - The file is flagged as a system file
	v   - List is using VioCalls


    Date & Time
	    - Last modifcation Date/Time os the file.


--------------------------------------------------------------------------


Changes...


    Read ahead thread dynamicly adjusts it's priority
    for better performance.

    hex values are now used for colors in tools.ini
    no longer supports list.ini... must be tools.ini

    searching can now be accross multiple files, toggle = f4

    changed read sizes to 4K (from 5K), for better IO performance

    Added 'G' for goto line number in listing.

    'wait' now displays more sensible

    abort is now possible wheneven 'wait' is being displayed

    Alloc read memory is faster.  Used to free it in places, and
    then re-allocate it.  Now it's put into a free list, and re-used.

    Added logic to alloc_block for read caching. This is different then
    read-ahead.

    Modified caching for multi-files. (although file must still be opened
    before info is displayed. this is required to validate the old info)

    added hack for Doug to slime the real TOF for a file.
    requires keyword HACK in ini file.	alt-o.

    Modified header to only display the root of the filename.

---------

    Fixed bug introduce from above.  Filenames now appear with the file
    being displayed.

    Fixed "/" to always search as case sensative.

    Added support for long filenames... now maps names > 20 chars, into
    20 chars.

    Altered the order of trying to 'guess' at the monitor resolution
    in order to get around a bug in 1.06 dealing with 2 monitors.

    Fixed GP_FAULT in multi file search

    Added logic to not call DosChgFilePtr when reading sequentially.
    (Performance improvement when accessing a file over the net).

    Fixed GP_FAULT in jumping to highlighted in small file

    Added keyword NOBEEP to list ini section

    /// add nobeep into help screen ///

---------

    Fixed bug in highlighting text when "jumping" around

    Moved filenames list (and related info) into far memory.
    (list *.*, can now explode out beyond 300 files (tested
    to 300 filenames)).

----------

    Move copy buffer to shift key.  To allow shift/PgUp & PgDn.
    Added compile time switch to enable or disable call to DosSetSmTitle

----------

    Added shift & ctrl keys for copy buffer.  (fits better into alternate
    keyboards).. Mapped in all combinations of shift/control arrow keys.
    Fixed scroll bar for files over 15Mb in size.
    Put code into to lessen "out of memory" errors.

----------

    Changed keyboard logic to find more keys regarudless of shift/ctrl
    state.

----------

    Fixed VioSetMode to find more mode.  Noticed when trying to support
    60 line mode on 1.2. (now works)

----------

    Added 2 command line switches. (-s & -g)
