A large commit.
[pdp8.git] / sw / chekmo / CHEKMO.WU
diff --git a/sw/chekmo/CHEKMO.WU b/sw/chekmo/CHEKMO.WU
new file mode 100644 (file)
index 0000000..b37227e
--- /dev/null
@@ -0,0 +1,316 @@
+
+
+
+
+
+        ABSTRACT
+        --------
+
+        CHEKMO-II is a chess playing program which will run on any PDP-8
+        computer.  The program will play either the White pieces or the Black
+        pieces and will play and accept all classes of legal moves, including,
+        castling both short and long, en-passant pawn captures, and pawn pro-
+        moting moves to any legal promotion piece.  The program prints out its
+        moves in Algebraic Notation, and accepts moves using this Notation.
+
+        Included in the command structure of the program are commands which
+        allow you to input board positions using Forsyth Notation, and get a
+        printout of the board at your terminal.
+
+        EQUIPMENT
+        ---------
+
+        CHEKMO-II will run on any PDP-8 family computer with a minimum of 4K
+        of memory and an ASR33 Teletype (1), or equivalent terminal.
+
+        EXECUTION TIME
+        --------------
+
+        The time that CHEKMO-II takes to calculate a move is highly dependent
+        upon the position of the pieces, but it is generally within the range
+        of 20 seconds to 2 minutes per move.  In "blitz mode"  (see the "BM"
+        command), CHEKMO-II makes its moves much more quickly, but at the cost
+        of reduced playing strength.
+
+        Note:  All times quoted are assuming that CHEKMO-II is being run on
+        a PDP-8/e (1.2 us cycle time).
+
+        LOADING AND STARTING CHEKMO-II
+        ------- --- -------- ---------
+
+        The CHEKMO-II binary tape is a standard binary tape and can be loaded
+        using the BIN Loader program (DEC-08-LBAA-PM), or the OS/8 "ABSLDR"
+        program.  The starting address for CHEKMO-II is 0200.  CHEKMO-II can
+        be halted and restarted at location 0200 at any time.
+
+
+        (Note for OS/8 users:  A short patch to the input routine is available
+        which allows CHEKMO-II to respond to CTRL/C (^C) by returning to the
+        monitor system.  Play may be resumed simply by typing ".ST" followed
+        by a carriage return.  Specify '/S' to ABSLDR to include this patch.)
+
+
+
+
+        (1) Teletype is a registered trademark of the Teletype Corporation.
+\f
+
+        CHEKMO-II  Chess Program for the PDP-8               Page 2
+
+
+
+
+        ON LINE OPERATION
+        -- ---- ---------
+
+        Before continuing please note that all lines of input to CHEKMO-II
+        must be terminated with a carriage return.  Typing a CTRL/U character.
+        echos "^U" and erases anything typed so far on a line.  Typing a RUBOUT
+        character deletes the last character typed and prints a "\" character
+        to indicate the deletion.  CHEKMO-II has an input buffer with room for
+        24 characters.  If more than 24 characters are typed on a line (exclud-
+        ing rubouts and the "rubbed out" characters), a "^U" is printed and the
+        entire line is deleted.
+
+        When CHEKMO-II is started at location 0200 it will print. . .
+
+        CHEKMO-II
+
+        To identify itself and setup the pieces on its internal board to their
+        original squares.  Then it will ask. . .
+
+        W.  YOUR MOVE?
+
+        The "W. " at the beginning of the line is to indicate that it is whites
+        move.  The "YOUR MOVE?" indicates that CHEKMO-II is waiting for you to
+        input a move for white, using modified Algebraic Notation (described on
+        P. 6).  If the move that you type in is illegal or impossible CHEKMO-II
+        responds with. . .
+
+        ?
+        W.  YOUR MOVE?
+
+        asking again for you to type in a legal move.  If a legal move is typed
+        CHEKMO-II will make the move on its internal board, then ask. . .
+
+        B.  YOUR MOVE?
+
+        CHEKMO-II is now waiting for you to type in a move for black (note the
+        "B.").  As before, typing in an impossible move causes CHEKMO-II to...
+
+        ?
+        B.  YOUR MOVE?
+
+        ask again for a legal move.  A legal move causes CHEKMO-II to make that
+        move on its internal board, then ask for a move for white.
+\f
+
+        CHEKMO-II  Chess Program for the PDP-8               Page 3
+
+
+
+        Play continues in this manner until a move is made that checkmates or
+        stalemates.  At that time CHEKMO-II will print. . .
+
+
+        CHECKMATE
+
+        or
+
+        STALEMATE
+
+
+        In either case the final position is then printed
+
+                    -- ** -- BK -- ** -- **
+                    ** -- ** WQ ** -- ** --
+                    -- ** -- ** WK ** -- **
+                    ** -- ** -- ** -- ** --
+                    -- ** -- ** -- ** -- **
+                    ** -- ** -- ** -- ** --
+                    -- ** -- ** -- ** -- **
+                    ** -- ** -- ** -- ** --
+
+        CHEKMO-II now restarts itself at location 0200 and is ready to play
+        another game.
+
+
+
+        Codes:    B-  BLACK
+                  W-  WHITE
+                  P-  PAWN
+                  B-  BISHOP
+                  R-  ROOK
+                  Q-  QUEEN
+                  K-  KING
+                  N-  KNIGHT
+                  S-  ALSO A KNIGHT
+\f
+
+        CHEKMO-II      Chess Program for the PDP-8            Page 4
+
+        SPECIAL COMMANDS
+        ------- --------
+
+        Whenever CHEKMO-II is waiting for you to type in a move, you may
+        instead type in one of the 10 special commands currently implemented.
+        Each special command consists of 2 characters and is described below:
+
+        PW -- CHEKMO-II is instructed to play the white peices.  Whenever it
+              is whites turn to move CHEKMO-II will printout and make a move
+              for white instead of asking "YOUR MOVE?"
+
+        PB -- Same as "PW" except that CHEKMO-II makes a move for the black
+              pieces every time it is blacks turn to move.
+
+        PN -- CHECKMO-II plays neither white nor black.  This cancels previous
+              "PW" and "PB" commands.
+
+        BD -- CHEKMO-II will print out the current board position.
+
+        MV -- Causes CHEKMO-II to printout and make the next move for the side
+              whose turn it is.
+
+        SK -- Skip the move that CHEKMO-II is asking for, and make it the other
+              sides move.
+
+              Note:  According to the laws of chess, "The 2 players must alter-
+              nate in making 1 move at a time".  The SK command is included be-
+              cause it can sometimes be fun to use in "non-serious" games.
+
+        RE -- Stands for "Reset" (or "Resign").  It resets CHEKMO-II's internal
+              board to the initial starting position and begins a new game.
+
+        BM -- Puts CHEKMO-II into "Blitz mode".  In Blitz mode, CHEKMO-II does
+              not think very deeply about its moves, but instead, makes them in
+              3 seconds each on the average.
+
+        TM -- Resets CHEKMO-II to its regular "thoughtful" mode of play.
+
+        IP -- Instructs CHEKMO-II to accept the input of a position using For-
+              syth notation (described on Pg. 6)  CHEKMO-II prints a ">" to in-
+              dicate that it is ready for you to enter a line.  If you violate
+              the rules of Forsyth notation, an error message is printed, and
+              CHEKMO-II waits for you to enter the error line again. If you en-
+              ter in a good line, CHEKMO-II prints a ">" and waits for the next
+              line.  When all 8 ranks are entered successfully, the board posi-
+              tion just input gets printed out.  Possible error messages and
+              their causes are described below:
+
+              Message               Cause
+
+                 1?        More than 8 squares specified
+                 2?        Less than 8 squares specified
+                 3?        Piece color not "W" or "B"
+                 4?        Unknown piece letter
+\f
+
+        CHEKMO-II     Chess Program for the PDP-8          Page 5
+
+        ALGEBRAIC NOTATION
+        ---------- -------
+
+        Algebraic Notation is the system recommended by the International
+        Chess Federation (F.I.D.E), for the recording of chess moves.  Since
+        in regular Algebraic Notation, both upper and lower case letters are
+        used, and since most teleprinters output only upper case letters,
+        CHEKMO-II uses a modified form of algebraic notation to accept moves,
+        and to print out its own moves.  This modified Algebraic Notation is
+        described here.
+
+        The ranks (horizontal rows of squares) are numbered from 1 to 8 start-
+        ing from whites side of the board. The files (vertical rows of squares)
+        are numbered from A to H starting at the left (blacks right) hand side
+        of the board.  The intersection of the file letter and rank number
+        gives each square a unique name, for example, in the initial position,
+        whites king occupies square E1, blacks king occupies square E8, and
+        the pawn in front of blacks queen occupies square D7.  Whites Knight
+        is on square B1 and can move to squares A3 and C3.
+            A8 B8 C8 D8 E8 F8 G8 H8    BR BN BB BQ BK BB BN BR
+            A7 B7 C7 D7 E7 F7 G7 H7    BP BP BP BP BP BP BP BP
+            A6 B6 C6 D6 E6 F6 G6 H6    -- ** -- ** -- ** -- **
+            A5 B5 C5 D5 E5 F5 G5 H5    ** -- ** -- ** -- ** --
+            A4 B4 C4 D4 E4 F4 G4 H4    -- ** -- ** -- ** -- **
+            A3 B3 C3 D3 E3 F3 G3 H3    ** -- ** -- ** -- ** --
+            A2 B2 C2 D2 E2 F2 G2 H2    WP WP WP WP WP WP WP WP
+            A1 B1 C1 D1 E1 F1 G1 H1    WR WN WB WQ WK WB WN WR
+
+        A move is specified by the square number of the piece that is moving,
+        an optional "-" or ":", and the square number that the piece is moving
+        to.  Using this notation, the 2 possible moves for Whites Knight on
+        square B1 would be: B1-C3 and B1-A3.  The symbol "O-O" is used to spec-
+        ify king side castling and the symbol "O-O-O" is used to specify queens
+        side castling.  Pawn promotion moves are printed out in the same manner
+        as any other pawn move, except that they are followed by a "=" and
+        the initial of the piece the pawn is promoting to.  For example, on
+        an empty board, a pawn on A7 would have 4 possible moves:
+
+            A7-A8=N    A7-A8=B    A7-A8=R    A7-A8=Q
+
+        On input, if no equal sign and initial are specified, the promotion
+        is assumed to be to a queen.
+
+
+
+        (Note: CHEKMO-II uses the ':' symbol to indicate that a piece was taken
+        by that move.  You may wish to type your moves in the same way.)
+
+\f
+
+        CHEKMO-II      Chess Program for the PDP-8          Page 6
+
+
+        FORSYTHE NOTATION
+        -------- --------
+
+        Forsythe Notation uses the 2-letter codes shown on page 3 (and used
+        throughout this discussion) to specify the pieces and numbers to in-
+        dicate how many spaces occur between pieces.  When entering a board
+        configuration each position in every row must be accounted for -
+        see the error message summary on page 4.
+
+        Example:  BR4BK2 looks like:  BR ** -- ** -- BK -- **
+
+
+        ERROR HALTS
+        ----- -----
+
+        There are 2 legitimate error halts possible with CHEKMO-II
+
+        Address               Explanation
+
+        5004    An unexplained interrupt has occurred.  Press the CLEAR
+                and CONTINUE keys (START on a non-PDP-8/e).  If the error
+                persists, try to find its cause and eliminate it.  A likely
+                cause is a DF32 Disk Unit set to the OFF position.
+
+        1761    The position has gotten too complex and CHEKMO-II's push
+                down list has overflowed.  You Win!!  Just before halting,
+                CHEKMO-II will print out. . .
+
+                I RESIGN
+
+
+                This error can probably only occur if one or both sides has
+                queened several pawns.
+
+        Halting at any other address is extremely unlikely, and is caused
+        either by a hardware failure, or an as yet unknown program bug.
+
+        KNOWN BUGS
+        ----- ----
+
+        There are no known "bugs" in CHEKMO-II Rev #62.
+
+        KNOWN DEFICIENCIES
+        ----- ------------
+
+        CHEKMO-II as of Rev. #62 does not recognize the value of passed pawns
+        until they reach the 6th or 7th rank.
+
+        CHEKMO-II has been programmed to use the same strategy throughout
+        the game.  This strategy has been optimized for good play in the
+        Middlegame and Opening.  As a result, CHEKMO-II plays poor moves
+        in some Endgame positions.
+\f