A large commit.
[pdp8.git] / sw / chekmo / CHEKMO.WU
1
2
3
4
5
6 ABSTRACT
7 --------
8
9 CHEKMO-II is a chess playing program which will run on any PDP-8
10 computer. The program will play either the White pieces or the Black
11 pieces and will play and accept all classes of legal moves, including,
12 castling both short and long, en-passant pawn captures, and pawn pro-
13 moting moves to any legal promotion piece. The program prints out its
14 moves in Algebraic Notation, and accepts moves using this Notation.
15
16 Included in the command structure of the program are commands which
17 allow you to input board positions using Forsyth Notation, and get a
18 printout of the board at your terminal.
19
20 EQUIPMENT
21 ---------
22
23 CHEKMO-II will run on any PDP-8 family computer with a minimum of 4K
24 of memory and an ASR33 Teletype (1), or equivalent terminal.
25
26 EXECUTION TIME
27 --------------
28
29 The time that CHEKMO-II takes to calculate a move is highly dependent
30 upon the position of the pieces, but it is generally within the range
31 of 20 seconds to 2 minutes per move. In "blitz mode" (see the "BM"
32 command), CHEKMO-II makes its moves much more quickly, but at the cost
33 of reduced playing strength.
34
35 Note: All times quoted are assuming that CHEKMO-II is being run on
36 a PDP-8/e (1.2 us cycle time).
37
38 LOADING AND STARTING CHEKMO-II
39 ------- --- -------- ---------
40
41 The CHEKMO-II binary tape is a standard binary tape and can be loaded
42 using the BIN Loader program (DEC-08-LBAA-PM), or the OS/8 "ABSLDR"
43 program. The starting address for CHEKMO-II is 0200. CHEKMO-II can
44 be halted and restarted at location 0200 at any time.
45
46
47 (Note for OS/8 users: A short patch to the input routine is available
48 which allows CHEKMO-II to respond to CTRL/C (^C) by returning to the
49 monitor system. Play may be resumed simply by typing ".ST" followed
50 by a carriage return. Specify '/S' to ABSLDR to include this patch.)
51
52
53
54
55 (1) Teletype is a registered trademark of the Teletype Corporation.
56 \f
57
58 CHEKMO-II Chess Program for the PDP-8 Page 2
59
60
61
62
63 ON LINE OPERATION
64 -- ---- ---------
65
66 Before continuing please note that all lines of input to CHEKMO-II
67 must be terminated with a carriage return. Typing a CTRL/U character.
68 echos "^U" and erases anything typed so far on a line. Typing a RUBOUT
69 character deletes the last character typed and prints a "\" character
70 to indicate the deletion. CHEKMO-II has an input buffer with room for
71 24 characters. If more than 24 characters are typed on a line (exclud-
72 ing rubouts and the "rubbed out" characters), a "^U" is printed and the
73 entire line is deleted.
74
75 When CHEKMO-II is started at location 0200 it will print. . .
76
77 CHEKMO-II
78
79 To identify itself and setup the pieces on its internal board to their
80 original squares. Then it will ask. . .
81
82 W. YOUR MOVE?
83
84 The "W. " at the beginning of the line is to indicate that it is whites
85 move. The "YOUR MOVE?" indicates that CHEKMO-II is waiting for you to
86 input a move for white, using modified Algebraic Notation (described on
87 P. 6). If the move that you type in is illegal or impossible CHEKMO-II
88 responds with. . .
89
90 ?
91 W. YOUR MOVE?
92
93 asking again for you to type in a legal move. If a legal move is typed
94 CHEKMO-II will make the move on its internal board, then ask. . .
95
96 B. YOUR MOVE?
97
98 CHEKMO-II is now waiting for you to type in a move for black (note the
99 "B."). As before, typing in an impossible move causes CHEKMO-II to...
100
101 ?
102 B. YOUR MOVE?
103
104 ask again for a legal move. A legal move causes CHEKMO-II to make that
105 move on its internal board, then ask for a move for white.
106 \f
107
108 CHEKMO-II Chess Program for the PDP-8 Page 3
109
110
111
112 Play continues in this manner until a move is made that checkmates or
113 stalemates. At that time CHEKMO-II will print. . .
114
115
116 CHECKMATE
117
118 or
119
120 STALEMATE
121
122
123 In either case the final position is then printed
124
125 -- ** -- BK -- ** -- **
126 ** -- ** WQ ** -- ** --
127 -- ** -- ** WK ** -- **
128 ** -- ** -- ** -- ** --
129 -- ** -- ** -- ** -- **
130 ** -- ** -- ** -- ** --
131 -- ** -- ** -- ** -- **
132 ** -- ** -- ** -- ** --
133
134 CHEKMO-II now restarts itself at location 0200 and is ready to play
135 another game.
136
137
138
139 Codes: B- BLACK
140 W- WHITE
141 P- PAWN
142 B- BISHOP
143 R- ROOK
144 Q- QUEEN
145 K- KING
146 N- KNIGHT
147 S- ALSO A KNIGHT
148 \f
149
150 CHEKMO-II Chess Program for the PDP-8 Page 4
151
152 SPECIAL COMMANDS
153 ------- --------
154
155 Whenever CHEKMO-II is waiting for you to type in a move, you may
156 instead type in one of the 10 special commands currently implemented.
157 Each special command consists of 2 characters and is described below:
158
159 PW -- CHEKMO-II is instructed to play the white peices. Whenever it
160 is whites turn to move CHEKMO-II will printout and make a move
161 for white instead of asking "YOUR MOVE?"
162
163 PB -- Same as "PW" except that CHEKMO-II makes a move for the black
164 pieces every time it is blacks turn to move.
165
166 PN -- CHECKMO-II plays neither white nor black. This cancels previous
167 "PW" and "PB" commands.
168
169 BD -- CHEKMO-II will print out the current board position.
170
171 MV -- Causes CHEKMO-II to printout and make the next move for the side
172 whose turn it is.
173
174 SK -- Skip the move that CHEKMO-II is asking for, and make it the other
175 sides move.
176
177 Note: According to the laws of chess, "The 2 players must alter-
178 nate in making 1 move at a time". The SK command is included be-
179 cause it can sometimes be fun to use in "non-serious" games.
180
181 RE -- Stands for "Reset" (or "Resign"). It resets CHEKMO-II's internal
182 board to the initial starting position and begins a new game.
183
184 BM -- Puts CHEKMO-II into "Blitz mode". In Blitz mode, CHEKMO-II does
185 not think very deeply about its moves, but instead, makes them in
186 3 seconds each on the average.
187
188 TM -- Resets CHEKMO-II to its regular "thoughtful" mode of play.
189
190 IP -- Instructs CHEKMO-II to accept the input of a position using For-
191 syth notation (described on Pg. 6) CHEKMO-II prints a ">" to in-
192 dicate that it is ready for you to enter a line. If you violate
193 the rules of Forsyth notation, an error message is printed, and
194 CHEKMO-II waits for you to enter the error line again. If you en-
195 ter in a good line, CHEKMO-II prints a ">" and waits for the next
196 line. When all 8 ranks are entered successfully, the board posi-
197 tion just input gets printed out. Possible error messages and
198 their causes are described below:
199
200 Message Cause
201
202 1? More than 8 squares specified
203 2? Less than 8 squares specified
204 3? Piece color not "W" or "B"
205 4? Unknown piece letter
206 \f
207
208 CHEKMO-II Chess Program for the PDP-8 Page 5
209
210 ALGEBRAIC NOTATION
211 ---------- -------
212
213 Algebraic Notation is the system recommended by the International
214 Chess Federation (F.I.D.E), for the recording of chess moves. Since
215 in regular Algebraic Notation, both upper and lower case letters are
216 used, and since most teleprinters output only upper case letters,
217 CHEKMO-II uses a modified form of algebraic notation to accept moves,
218 and to print out its own moves. This modified Algebraic Notation is
219 described here.
220
221 The ranks (horizontal rows of squares) are numbered from 1 to 8 start-
222 ing from whites side of the board. The files (vertical rows of squares)
223 are numbered from A to H starting at the left (blacks right) hand side
224 of the board. The intersection of the file letter and rank number
225 gives each square a unique name, for example, in the initial position,
226 whites king occupies square E1, blacks king occupies square E8, and
227 the pawn in front of blacks queen occupies square D7. Whites Knight
228 is on square B1 and can move to squares A3 and C3.
229
230 A8 B8 C8 D8 E8 F8 G8 H8 BR BN BB BQ BK BB BN BR
231 A7 B7 C7 D7 E7 F7 G7 H7 BP BP BP BP BP BP BP BP
232 A6 B6 C6 D6 E6 F6 G6 H6 -- ** -- ** -- ** -- **
233 A5 B5 C5 D5 E5 F5 G5 H5 ** -- ** -- ** -- ** --
234 A4 B4 C4 D4 E4 F4 G4 H4 -- ** -- ** -- ** -- **
235 A3 B3 C3 D3 E3 F3 G3 H3 ** -- ** -- ** -- ** --
236 A2 B2 C2 D2 E2 F2 G2 H2 WP WP WP WP WP WP WP WP
237 A1 B1 C1 D1 E1 F1 G1 H1 WR WN WB WQ WK WB WN WR
238
239 A move is specified by the square number of the piece that is moving,
240 an optional "-" or ":", and the square number that the piece is moving
241 to. Using this notation, the 2 possible moves for Whites Knight on
242 square B1 would be: B1-C3 and B1-A3. The symbol "O-O" is used to spec-
243 ify king side castling and the symbol "O-O-O" is used to specify queens
244 side castling. Pawn promotion moves are printed out in the same manner
245 as any other pawn move, except that they are followed by a "=" and
246 the initial of the piece the pawn is promoting to. For example, on
247 an empty board, a pawn on A7 would have 4 possible moves:
248
249 A7-A8=N A7-A8=B A7-A8=R A7-A8=Q
250
251 On input, if no equal sign and initial are specified, the promotion
252 is assumed to be to a queen.
253
254
255
256 (Note: CHEKMO-II uses the ':' symbol to indicate that a piece was taken
257 by that move. You may wish to type your moves in the same way.)
258
259 \f
260
261 CHEKMO-II Chess Program for the PDP-8 Page 6
262
263
264 FORSYTHE NOTATION
265 -------- --------
266
267 Forsythe Notation uses the 2-letter codes shown on page 3 (and used
268 throughout this discussion) to specify the pieces and numbers to in-
269 dicate how many spaces occur between pieces. When entering a board
270 configuration each position in every row must be accounted for -
271 see the error message summary on page 4.
272
273 Example: BR4BK2 looks like: BR ** -- ** -- BK -- **
274
275
276 ERROR HALTS
277 ----- -----
278
279 There are 2 legitimate error halts possible with CHEKMO-II
280
281 Address Explanation
282
283 5004 An unexplained interrupt has occurred. Press the CLEAR
284 and CONTINUE keys (START on a non-PDP-8/e). If the error
285 persists, try to find its cause and eliminate it. A likely
286 cause is a DF32 Disk Unit set to the OFF position.
287
288 1761 The position has gotten too complex and CHEKMO-II's push
289 down list has overflowed. You Win!! Just before halting,
290 CHEKMO-II will print out. . .
291
292 I RESIGN
293
294
295 This error can probably only occur if one or both sides has
296 queened several pawns.
297
298 Halting at any other address is extremely unlikely, and is caused
299 either by a hardware failure, or an as yet unknown program bug.
300
301 KNOWN BUGS
302 ----- ----
303
304 There are no known "bugs" in CHEKMO-II Rev #62.
305
306 KNOWN DEFICIENCIES
307 ----- ------------
308
309 CHEKMO-II as of Rev. #62 does not recognize the value of passed pawns
310 until they reach the 6th or 7th rank.
311
312 CHEKMO-II has been programmed to use the same strategy throughout
313 the game. This strategy has been optimized for good play in the
314 Middlegame and Opening. As a result, CHEKMO-II plays poor moves
315 in some Endgame positions.
316 \f