;
                                    XOX.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
              12k (93)   C026  1.0k       Rob Friefeld 2/91        Z3COM17

  1- Syntax  2- Installation  3- Operation  4- Datespecs  5- Examples of Use  

   XOX is a versatile text file viewer with additional functions for abstract-
ing and merging files.   Its strengths are its smooth display, its very strong
datestamp support, and the additional I/O features included:   it is very easy
to send parts of the file on view to the printer or to other disk files, or to
combine a list of small files for easier viewing.  XOX does not compress files
or access libraries.

   XOX is a  follow-on to  VIEW,  originally released in 1983.   It runs under
ZCPR3.3 and Z3PLUS and requires an extended TCAP supporting insert/delete line
functions.   Cursor on/off support is  also very nice.   XOX is assembled with
VLIB4D and associated NZTCAPD.
:1
 Syntax    XOX [dir:]afn     ...or,
           XOX [dir:][afn] [/][options][<, =, or >dd.mm.yy time]

   The file specification is automatically wildcarded.   If there is more than
one match,  a file list is displayed.   Move the cursor to the one you want to
start with, or just  press <RET> to read the first item.   Non-text file types
(e.g. COM, LBR)  are  ignored.   The  Datespec command line,  discussed below,
provides further control over selection and sorting of the file list.

   Once XOX is running, press "?" or "/" to see a command summary.


   TECHNICAL NOTE: 

   XOX reads and writes files without any filtering.   Therefore,  WordStar or
other specially formatted files may be read and  WRITTEN  without  corruption.
XOX does require that each line be terminated  by a  CR  at least  (except the
very last line). LF's, if present, are ignored.  Files with lines separated by
LF's only will not be displayed or printed properly.
 Available Functions 

   Here is a list of  XOX  functions,  most of which are described below.  You
can assign them to keys you find convenient.


MOVING THROUGH TEXT

  End of File                Start of File           Find
  Next Screen                Previous Screen         Repeat Find
  Next Line                  Previous Line
  Scan Forward               Scan Backward
  Hop 10 Lines Forward       Set Horizontal Scroll

  Set Place Marker           Go to Page or Line #
  Go to Next Marker          Go to Marker #
  Clear Markers


FILE INPUT/OUTPUT          BLOCK OPERATIONS

  Read More of File          Set Block Marker         Go to Block
  Merge File                 Print Block
  Log New Files              Delete Block
  File Ring                  Write Block
                             Repeat Write Block
                             Cursor - Block Operation

MISCELLANEOUS

  Delete Top Line            Initialize Printer
  Clear <chr> Lines          Type to Printer   
  Display Ctrl Chars         Exit XOX
  Show File Size
:2
 Installation 

   Since XOX is  not  an  editor,  there is no  need  to  use  control keys as
commands.   It is highly recommended to use single alpha keys.   For those who
prefer a more complex command structure, perhaps to reduce learning time,  XOX
will accept 2 different meta-keys, e.g. ^K and ^Q.

   XOXINST is  a screen-oriented installation program for patching the control
key set and various default initial states.  
:3
                           MOVING THROUGH TEXT 

   As distributed, XOX uses a  functionally simple but not mnemonic layout for
most basic commands.   You don't have to move your fingers from the home row.

               LEFT HAND                           RIGHT HAND

      F  Next screen (also CR)            J  Previous screen.
      D  Next line.                       K  Previous line.
      S  Scroll forward until key press.  L  Reverse scroll.
      A  End of text.                     ;  Start of text.
      G  Find a string.                   H  Repeat find.

      THUMB <SP>  Hop forward 10 lines

      A more traditional                   - Next, previous screen
        keyset would be ->            >  < - Next, previous line
                                      Z  W - Forward, back continuous scroll
                                      B  T - End, start of text
                                      F  R - Find, repeat find
 Find String 

- The string is limited to 16 characters.
- The search is forward.
- If any of the characters are upper case,  the  search  is automatically case
  sensitive.  Otherwise, it is case insensitive, unless the string is preceded
  by "/c/".
- Wild card character "_" matches anything.  (May be installed.)
- If found, the string is highlighted on line 10.   Hop  <SP> makes it the top
  line.

 # - GO TO PAGE or LINE #: 

Prompt:  Go to Page (L) >
     Give a page number you want to go to.  Page number calculations are based
on the Z3ENV data for the printer along with the installed  single- or double-
spacing calculation base.  Page calculation is simple minded and does not take
account of form feeds, WordStar dot commands, etc.   To go to a  LINE  number,
preceed the number with "L".
                                 MARKING TEXT 

   Ten numbered place markers are available.   Marker #0 is  used as the start
for block operations, described below. 


 O - MARK: 

   Set special Marker #0 to the current screen.   This is the  beginning  mark
for the four block operations.   The marker is initialized to the beginning of
the text if you don't specifically set it.


 Q - QUICK MARK: 

   Set the next available place marker (1-9) to this screen.  


 0..9 - GO TO MARKER: 

   Return display to marker 0..9.  Markers are set with Q or O.
 Z - NEXT MARK: 

   Go to next marker in the order set.  Cycles through markers without need to
use or remember their numbers.


 E - ERASE MARKERS: 

   Re-initialize markers 1-9 to start of text.

 
   NOTE:   Markers inside a deleted block are reset to the end of the block.
                              BLOCK COMMANDS 


   "Blocks" consist of the text between Marker #0,  which is set at the TOP of
a screen by  pressing "O",  and the BOTTOM of the current screen.   If you are 
doing a lot of block operations,  it may  be  advisable to set  a  mark at the 
present position with "Q", check the position of Marker #0,  and return before 
doing anything.


 P - PRINT BLOCK: 

   Send text in block to the printer.   <ESC> or  <^C>  will  halt the listing
High bits and control characters other than CR,  LF and  TAB are filtered out.
On first call, you will be prompted to initialize the printer
 W - WRITE BLOCK: 

   You will be prompted for a file specification, then the block is written to
it.  If the file already exists, you can  APPEND the block to it,  REPLACE the
file, or just cancel the operation.


 V - WRITE BLOCK TO FILE: 

   Skip file name prompt and append  block to  file  opened in  the last Write
command.  Once an output file has been opened, V keeps adding to it.


 U - DELETE BLOCK: 

   The block is removed from XOX's buffer.   This has no effect on the file on
disk!  Deletion is used to eliminate sections before  a printout or disk write
or just to make room in memory to intensively examine the interesting parts of
a large file. 
 B - SHOW CURSOR BLOCK OPERATION: 

   The block operations  are intended to work  as  simply  as  possible.   For
example, to send the current screen to the printer, just press "OP".  To print
a partial screen,  move the text of interest to  the top  and  press "O", then 
move the end of the block to the bottom of the screen and press "P".   This is
almost always the most convenient  way to do  a block op,  especially when you 
get good with the scan up/down commands.

   It may not be possible to position the  text the  way  you  want  it on the
first or last screen of the file.   The  "B" command displays a cursor on line
10, the same line a  Find  command  goes  to.   Move the cursor to the desired
line with your arrow keys.   Now press  a block  command  key - "O" to set, or
"P-U-W-V" to execute.  To cancel the cursor , press <RET>.

   If you set the block marker with  O  and continue to  move the cursor down,
the defined block is highlighted.
                               FILE INPUT/OUTPUT 


 R - READ: 

   XOX will read as much of a file as available memory allows at one time.  If
the file is too big,  a  "memory full" message will appear.   The Read command 
gets more of the file into memory in one of two ways:

   1)  If the text buffer is still full,  another  memory-sized section of the 
text will be read in with one screen of overlap.

   2)  If some memory is available because you have done block deletions, more
of the text will be appended until the buffer is full again.   By  getting rid
of stuff you  aren't interested  in,  a large  file  can  be  condensed to the
portion you wish to examine. 


 ^L -  RELOG: 

     Start XOX on a new file list.
 TAB - FILE RING: 

   All the file names  matched by the initial  callup  are  stored in a sorted
list.  The RING command shows them as a drop down list with the current selec-
tion highlighted.   Move through  the  list to  your next selection  and press
<RET>.   You  then  see  the  prompt:  (R)ead  (m)erge (q)uit?   READ  is  the
default choice, or you may add the file to the text buffer or cancel the whole
thing. 

   Arrow key definitions are loaded  from the TCAP.  The  WordStar  diamond is
also active.  Ring controls are:

     Move up list        up,^E                (with wrap to end)
     Move down           dn,^X,<SP>,<TAB>   (with wrap to start)
     Next screen         rt,^D,^F,^C     (if none, to last file)
     Previous screen     lt,^S,^A,^R    (if none, to first file)
     Login new list      L
     Exit XOX            X

   Any unrecognized key cancels,  e.g.  Q,  <ESC>.  If you are viewing a file,
cancellation just resumes viewing.  If you have just logged in a new file set,
cancellation terminates XOX.
 M - MERGE: 

   Append the specified file to the  text  buffer.  The  FILE  RING  can  also
merge files,  but  MERGE  allows you to get a file from a different directory.
The display moves to the merged text and a place  marker is  automatically set
to its start.
                                MISCELLANEOUS 


 / or ? - HELP SCREEN: 

   Display of command keys.   Changing the command keys  automatically changes
the HELP display.


 Y - DELETE LINE: 

   Deletes the line at the top of the screen.   More convenient than marking a
block for deleting a few lines.


 I - INITIALIZE PRINTER: 

   Send optional init string to printer.
 T - TYPE: 

   Type a line to be sent to printer.   Terminate  with <CR>.   Edit with DEL, 
BSP, ^X.  Can send ^L line feed or other control characters directly.  To send
^X, ^M or ^P, type ^P^X etc.  The string input routine does NOT call BDOS read
string function.


 "+" or "=", "-"  - SCAN SPEED: 

   While continuous scrolling is running,  the speed may be adjusted faster or
slower.


 C - CLEAR <chr> LINES: 

   CLEAR automatically deletes all lines  starting with the  specified charac-
ter from memory.  Using "[" will clean up a BBS capture file.  Using "." would
clear dot commands from a  WordStar file.   CLEAR prompts for the character to
look for.   Pressing <CR>  uses the default character  ("[")  or the character
entered the last time the command was used.   To get out of CLEAR, press ^C or
<ESC>.
 ^ - SHOW CONTROLS: 

     XOX ignores most control characters. It can display them  in 
"^N"  format if you want to see them, e.g. to see how a  WordStar 
or HLP file is marked.


 \ - SET HORIZONTAL SCROLL: 

   Pressing "+" or "=" continuously increases the horizontal scroll.  Pressing
"-" decreases it.  Any other key exits.   FIND will still match a string which
has scrolled off the screen.   XOX  checks the TCAP for  screen  width,  so  I
recommend that those with terminals capable of 135  col display use it  rather
than horizontal scrolling.

 = - SHOW FILE SIZE TO EOS: 

   Number of bytes from start of text  buffer to  end  of  current  screen  is
displayed.  Intended to assist file chopping operations. 
:4
 Datespec File Selection - 1/5 

   Carson Wilson  suggested  adding a  datestamp  filter to  XOX  and was kind
enough to show me how  he did it  with  FILEDATE.   I  have  closely  followed
Carson's method and wish to gratefully acknowlege his permission to do so.

   [FILEDATE is a powerful directory utility distributed with ZSDOS.  Refer to
Section 4.4 of the  ZSDOS User's Manual  for more  information on it.  If  you
know how to use FD, you know how to use XOX.]

   The Datespec function tells XOX how to build its file list.  XOX can select
files created, modified, or accessed on, before or after an ambiguously speci-
fied date.   Once selected,  the list can  be sorted alphabetically by name or
type or sorted by date.  Phew!  

 Datespec File Selection - 2/5 


 Syntax:  XOX [dir:][afn] [/][options][<, =, or >dd.mm.yy time]
                 (1)         (2)          (3)


Options:

  A  use Access date  {Modify date is default}
  C  use Create date
  T  sort alphabetically by Type
  S  include System files
+ -  sort by date

Time:
  hh:mm for real time clock
  +dddd for relative clock with DateStamper
 Datespec File Selection - 3/5 

(1) - Filespec
   If the filespec is omitted, it is automatically wildcarded.   In that case,
the  "/"  delimiter is  required  before any  selecting or sorting options are
given.  A blank command line matches everything. 
     Example:
     XOX *.* =    All files modified today.
     XOX /=       Same
     XOX /-       Sort from newest to oldest, very useful.


(2) - Options
   By default, any date  specification is  compared to the file's Modify date.
If the file doesn't have a Modify date, the Create date is used.   The options
"A" or "C" force the use of that particular date.
 Datespec File Selection - 4/5 

(3) - Datespec
   The mandatory date signifier  "<",  "=",  or  ">" tells XOX to select files
from before, at, or after the date which follows.

The full syntax for the date specification is:

     [day[.month[.year[ hour[:minute]]]]]

   Omitted date fields are  filled in with the current date.   An omitted time
spec is taken to mean any time.   The wildcard character  "*"  may be  used to
match any date or time.

     Examples:
     Datespec       Meaning
     =              Files modified today, any time
     a>1.7          Files accessed after 1 July this year
     c=..87         Files created any time in 1987
     <.. 12:30      Files modified before 12:30pm today
     a-=            Today's accessed files, most recent first
 Datespec Dile Selection - 5/5 

   Files which don't have a date  stamp  will  fail all tests.   If the option
datespec parser is unable to resolve a command line, it just gives up  (with a
beep) and uses the larger set of files matching the Filespec alone.

   The "European" date style used here seems  logical and  convenient in  that
date specification proceeds from high to low resolution.   You may install XOX
(with XOXINST) to use the "American" style mm/dd/yy if you prefer it.

   The RELOG command also calls the  full  command  line  parser,  so  you can
reselect from within XOX the same way you did at callup.   RELOG  can  also be
called while viewing the file ring list.  Press the command you have installed
for RELOG.  Or, if it conflicts with an arrow key definition, just press "L".
:5
 Examples of Use - 1/2 

   a. USING XOX TO PROCESS A BBS CAPTURE FILE

There are several commands intended for this purpose:

C - Clear prompt lines.  All those useless lines that start  with      
    "[" are deleted, e.g. [More...], [Read (Y/N/Q)?].
Y - Delete line.  Get rid of lines you send to the BBS.
O - Set block marker to top of current screen.
W - Write from block  marker to bottom of current  screen  to   a
    file.  You can store  messages in log files by subject, month
    BBS, etc.
V - Write  current  block to  same file  as  last  "W"   command.  
    Repeated use of O and V keeps appending messages you want to
    save to the previously designated log file.
 Examples of Use - 2/2 

   b. USING XOX TO CHOP A FILE

The file is too large (e.g. 100k) for a memory resident text editor.

O - Set block marker.  Start of a chop file.
W - Write a convenient size block to a file.  
U - Delete block (from memory only - doesn't affect original disk     
    file).
R - Read more of file.  You can keep  reading more in after  each     
    deletion.
