glenda.party
term% ls -F
term% cat index.txt
CHDB(7)                Miscellaneous Information Manual                CHDB(7)

NAME
       chdb - chess database browser

SYNOPSIS
       chdb [ file ...  ]

DESCRIPTION
       Chdb reads the given files of chess games (hist by default) and accepts
       commands to search, play through, and display the games in these files.
       If  x  is  the  name  of  the file, it is looked for under the names x,
       x.m.out, and /lib/chess/x.m.out.

       After reading the files, chdb displays a chess  board,  a  text  window
       with  a command line, and vertical and horizontal scroll bars along the
       edges of the board.  The text window holds 6 lines of information about
       the game and position and, at the bottom, a command line  in  which  to
       type.  The displayed text contains chess symbols—use a suitable font.

       The  vertical  scroll bar scans through the games to select a game; the
       horizontal bar then scans through the moves of the selected game.  Both
       scroll bars use button 1 to scan backwards, button 3 to scan  forwards,
       and  button  2  to jump to an absolute position.  With buttons 1 and 3,
       the scroll bars are calibrated in units of 1 through 8 corresponding to
       the ranks and files of the board.  The units measure games on the  ver‐
       tical  scroll  bar, ply (half-moves) on the horizontal scroll bar.  For
       example, clicking button 3 on the horizontal scroll  bar  under  the  d
       file steps through the game two full moves.

       Moves  may be made on the chess board by pointing with button 1.  There
       are two methods to point at moves.  For the first method, point at  the
       piece  to  be  moved,  press  button 1, point to the place to move that
       piece, and release button 1.  In the second method, point at the  place
       where  a  piece is to move and press button 1.  The smallest/least-cen‐
       tral piece that can move there  is  highlighted.   Releasing  button  1
       without  moving  the  mouse will make the highlighted move.  Moving the
       mouse to the desired piece and releasing the button will move  the  se‐
       lected piece.

       Typed  lines  of text are echoed in the command line and executed.  The
       available commands are:

       f n n  Set the format for display of moves in  the  text  window.   The
              first  number is the verbosity, with 0 minimal.  The second num‐
              ber is 0 for algebraic, 1 for English, and 2 for  figurine  (de‐
              fault).

       g n    Go  to  the game with ordinal number n in the input files.  If n
              is prefixed with a + or -, it is interpreted as a relative posi‐
              tion in the current set of games (see below).  N defaults to +1.

       p n    Go to whole move n in the current game.  If n is prefixed with a
              + or -, it is interpreted as an offset in ply from  the  current
              position.  N defaults to +1.

       k n    Mark the current set of games with tag n (see patterns, below).

       w type file
              Write the current set of games to file.  Type is either a (write
              the  games as text) or m (write the games in binary format suit‐
              able for chdb).

       Patterns select subsets of the games.  A pattern is one of the  follow‐
       ing,  in  decreasing  precedence  order.   Parentheses  can be used for
       grouping.

       .      The current game.

       *      All games originally read.

       'n     The games previously marked with a k command with the same n.

       []

       [number]
              All games in * that contain the positions that can be reached in
              the specified number of plies  from  the  current  position.   A
              missing number is the same as zero, meaning just the current po‐
              sition.  Positions are matched with black/white transpositions.

       /regular expression/fields
              This  pattern matches the regular expression against the various
              text windows.  Fields is a list of characters from the set abde‐
              foprw.  A is for all, b for black, d for date, e  for  event,  f
              for  file,  o for opening, p for person (white and black), r for
              result, and w for white.  If multiple fields are given, the  ex‐
              pression is matched on the union of the specified fields.  If no
              field is given, p is assumed.

       !pattern
              The set subtraction of * and the given pattern.

       pattern-pattern
              The set subtraction of the given patterns.

       pattern+pattern

       pattern|pattern
              The set union of the given patterns.

       pattern pattern

       pattern&pattern
              The set intersection of the given patterns.

       +pattern

       -pattern

       &pattern

       |pattern
              These patterns have the current set of games as an implied first
              operand.

EXAMPLE
       Select games that Botvinnik lost:

              (/Botv/w/0-1/r)|(/Botv/b/1-0/r)

FILES
       /lib/chess
              directory of databases.

SOURCE
       /sys/src/cmd/chdb

SEE ALSO
       regexp(6).

BUGS
       The browser is only a prototype.

       Most of the databases are protected by copyright and not distributed.

                                                                       CHDB(7)