CHEKMO-II     Chess Program for the PDP-8           PAGE   1

 ABSTRACT

   CHEKMO-II is a chess playing program which  will  run  on
 any  PDP-8  family  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
 promoting  moves to any legal promotion piece.  The program
 prints out its moves in  Algebraic  Notation,  and  accepts
 moves using Algebraic 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
 equivelent terminal.


 EXECUTION TIME
   The time that CHEKMO-II takes to calculate its moves,  is
 highly  dependent  upon  the position of the pieces.  It is
 generaly 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 stand alone 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 OS8 "ABSLDR"  program.   The  starting  address  for
 CHEKMO-II  is  0200.   At any time, CHEKMO-II can be halted
 and restarted at location 0200.
                       -- -- -- -- --
 (1) Teletype is a  registered  trademark  of  the  Teletype
 Corporation.

CHEKMO-II     Chess Program for the PDP-8           PAGE   2

 ON LINE OPERATION
   Before continuing be advised 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(not counting 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 thier original squares.  Then it will ask...

 W.  YOUR MOVE? 

   The "W.  " at the begining 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 Pg 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.  Play continues in this manner  until
 a move is made that checkmates or stalemates.  At that time
 CHEKMO-II will print...

 CHECKMATE

CHEKMO-II     Chess Program for the PDP-8           PAGE   3

 Or

 STALEMATE

   In either case the final position is then printed

                  -- ** -- BK -- ** -- **
                  ** -- ** WQ ** -- ** --
                  -- ** -- ** WK ** -- **
                  ** -- ** -- ** -- ** --
                  -- ** -- ** -- ** -- **
                  ** -- ** -- ** -- ** -- 
                  -- ** -- ** -- ** -- **
                  ** -- ** -- ** -- ** --

   CHEKMO-II now restarts itsef at  location  0200,  and  is
 ready to play another game.

CHEKMO-II     Chess Program for the PDP-8           PAGE   4

 SPECIAL COMMANDS
 At any time when CHEKMO-II is waiting for you to type in  a
 move,  you  may  instead  type  in  one  of  the 10 special
 commands  currently  implimented.   Each  special   command
 consists of 2 characters and is described below.

  PW  --  CHEKMO-II is instructed to play the white  pieces.
          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  --  CHEKMO-II plays niether  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  alternate  in  making  1  move at a
          time".  The SK command is included because it  can
          somtimes 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 Forsyth notation(Described on Pg 7)
          CHEKMO-II prints a ">"  to  indicate  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 enter in  a  good  line,
          CHEKMO-II  prints  a  ">"  and  waits for the next
          line.  When all 8 ranks are entered  successfully,

CHEKMO-II     Chess Program for the PDP-8           PAGE   5

          the  board position just inputed gets printed out.
          Possible  error  messages  and  thier  causes  are
          discribed 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

CHEKMO-II     Chess Program for the PDP-8           PAGE   6

 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 leters, 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  starting  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 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.   If  the  move  gives
 check,  an optional "+" character after the move is used to
 signify that.  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 specify 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
 posible 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.

CHEKMO-II     Chess Program for the PDP-8           PAGE   7

 FORSYTH NOTATION
   Forsyth notation is a shorthand method  of  recording  or
 describing chess positions.  Since regular Forsyth notation
 uses both lower and upper case letters, and most telletypes
 have  only  upper  case  letters, CHEKMO-II uses a modified
 form of Forsyth notation, a description of which follows.
   Using Forsyth notation the board  position  is  described
 rank by rank, starting with rank 8.  Each rank is described
 from left to right in the following manner.  If a square is
 occupied,  the  initial  for  the  pieces  color(W  or  B),
 followed by the initial for the piece (R,B,K,Q,P or N), are
 used  to describe that square.  Empty squares are indicated
 by a number from 1 to 8,  equal  to  the  number  of  empty
 squares  adjacent  to  one another.  Every square on a rank
 must be accounted for in this manner, and  thus  each  rank
 must total 8 pieces and/or empty squares.
   Here is a position accompanied by its  representation  in
 Forsyth notation...

     BR BN BB ** BK ** BN BR    BRBNBB1BK1BNBR
     BP BP BP -- ** BP BP BP    BPBPBP2BPBPBP
     -- ** -- ** -- ** -- **    8
     ** -- BB -- WP -- ** --    2BB1WP3
     -- ** -- ** -- ** -- BQ    7BQ
     ** -- WN WP ** -- BN --    2WNWP2BN1
     WP WP WP ** -- ** -- WP    WPWPWP4WP
     WR -- WB WQ WK WB WN WR    WR1WBWQWKWBWNWR

CHEKMO-II     Chess Program for the PDP-8           PAGE   8

 ERROR HALTS
   There  are  2  legitimate  error  halts   possible   with
 CHEKMO-II

 Address            Explanation

  5004    An unexplaned interrupt has occured.  To  recover,
          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 likley cause is a
          DF32 Disk  unit  select  switch  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
          printout...

          I RESIGN

          This error can probably only occur if one or  both
          sides  has  queened  several  pawns.   Restart  at
          location 0200 to start a new game.

   Halting at any other address is extremly unlikley, 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#63.

 KNOWN DEFICIENCIES
   CHEKMO-II does not recognize the value  of  passed  pawns
 until they reach the 6th or 7th rank.

   CHEKMO-II has been programed to  use  the  same  strategy
 throughout  the game.  This strategy has been optimized for
 good play in the Middle-game, and  Opening.   As  a  result
 CHEKMO-II plays poor moves in some Endgame positions.

   If either the  white  side  or  the  black  side  becomes
 signifigantly more powerfull than the other(about 4 queens)
 CHEKMO-II may play some strange, but legal moves.  This  is
 caused by overflow in an internal evaluator routine.