home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume36 / ldb / part12 < prev    next >
Encoding:
Text File  |  1993-04-10  |  50.0 KB  |  1,282 lines

  1. Newsgroups: comp.sources.misc
  2. From: ross@teserv.den.mmc.com (Perry R. Ross)
  3. Subject: v36i109:  ldb - Play backgammon by e-mail, v1.3, Part12/12
  4. Message-ID: <1993Apr11.233309.19153@sparky.imd.sterling.com>
  5. X-Md4-Signature: d5573ad8c6b85a06c65d5a4e4f3a58c1
  6. Date: Sun, 11 Apr 1993 23:33:09 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: ross@teserv.den.mmc.com (Perry R. Ross)
  10. Posting-number: Volume 36, Issue 109
  11. Archive-name: ldb/part12
  12. Environment: UNIX, C, VMS, VAXC, CURSES, 32BIT
  13. Supersedes: ldb: Volume 28, Issue 93-97
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then unpack
  17. # it by saving it into a file and typing "sh file".  To overwrite existing
  18. # files, type "sh file -c".  You can also feed this as standard input via
  19. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  20. # will see the following message at the end:
  21. #        "End of archive 12 (of 12)."
  22. # Contents:  ldb-man.tex
  23. # Wrapped by ross@teserv.den.mmc.com on Tue Apr  6 14:52:26 1993
  24. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  25. if test -f 'ldb-man.tex' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'ldb-man.tex'\"
  27. else
  28. echo shar: Extracting \"'ldb-man.tex'\" \(48103 characters\)
  29. sed "s/^X//" >'ldb-man.tex' <<'END_OF_FILE'
  30. X% -*-LaTeX-*-
  31. X% Converted automatically from troff to LaTeX
  32. X% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
  33. X% on Thu Apr  1 14:54:57 1993
  34. X% tr2latex was written by Kamal Al-Yahya at Stanford University
  35. X% (Kamal%Hanauma@SU-SCORE.ARPA)
  36. X% and substantially enhanced by Christian Engel at RWTH Aachen
  37. X% (krischan@informatik.rwth-aachen.de).
  38. X%
  39. X% troff input file: ldb.man
  40. X
  41. X\documentstyle[troffman]{article}
  42. X\begin{document}
  43. X%--------------------------------------------------
  44. X% start of input file: ldb.man
  45. X%
  46. X% ldb.man        8/4/91
  47. X%
  48. X% Copyright 1991  Perry R. Ross
  49. X%
  50. X% Permission to use, copy, modify, and distribute this software and its
  51. X% documentation without fee is hereby granted, subject to the restrictions
  52. X% detailed in the README file, which is included here by reference.
  53. X% Any other use requires written permission from the author.  This software
  54. X% is distributed "as is" without any warranty, including any implied
  55. X% warranties of merchantability or fitness for a particular purpose.
  56. X% The author shall not be liable for any damages resulting from the
  57. X% use of this software.  By using this software, the user agrees
  58. X% to these terms.
  59. X%
  60. X% VMS bug fixes and additions by Earle F. Ake <ake@dayton.saic.com>
  61. X%
  62. X\phead{LDB}{1}{October 6, 1992}{}{}%.nh
  63. X%.nr si 5n
  64. X%.ie \nT .pl \nTv
  65. X\shead{NAME}
  66. Xldb -- Play backgammon by e--mail
  67. X\shead{SYNOPSIS}
  68. Xldb [options] [input files...]
  69. X\nwl
  70. X\shead{DESCRIPTION}
  71. X{\it Ldb}
  72. Xallows two people to play backgammon over a
  73. Xnetwork using electronic mail.  It runs on character--oriented
  74. Xterminals, or emulators thereof, using the
  75. X{\it curses}
  76. Xscreen package.  It will run on most UNIX dialects, as
  77. Xwell as VAX--C under VMS 5.0 and above.
  78. X{\it Ldb}
  79. Xhandles all aspects of starting, playing, checking,
  80. Xand scoring games.  It displays the board, rolls the dice, and
  81. Xprompts you for your move.  It enforces all normal game rules,
  82. Xas well as several optional rules, and will not let you make
  83. Xan illegal move.  When you have made your moves, ldb will automatically
  84. Xpackage your move and send them to your opponent.
  85. X\shead{FEATURES}
  86. X\begin{IPlist}
  87. X\IPitem{{Multiple\ Games}}
  88. X{\it Ldb}
  89. Xcan keep track of an unlimited number of games simultaneously,
  90. Xand will display them one at a time for you to play.
  91. XYou can exit from
  92. X{\it ldb}
  93. Xat any time; when you run ldb again, it will pick up
  94. Xyour games where you left off.
  95. X\IPitem{{Move\ Checking}}
  96. XBoth your moves and your opponent's moves are checked for legality.
  97. XThis includes:
  98. X\IPitem{{--}}
  99. XLanding on an occupied point.
  100. X\IPitem{{--}}
  101. XBearing off before your inner table is full.
  102. X\IPitem{{--}}
  103. XTrying to move pieces that are on the board when you
  104. Xhave a piece on the bar.
  105. X\IPitem{{--}}
  106. XTrying to bear off a piece
  107. Xwhen there is a piece on a higher point, and
  108. Xthe roll is not being used exactly.
  109. X\IPitem{{--}}
  110. XTrying to leave a usable move unused.
  111. X\IPitem{{--}}
  112. XTrying to leave a move unused when it is usable and has
  113. Xa higher roll than the move that is used.
  114. X\IPitem{{--}}
  115. XTrying to double when you doubled last.
  116. X\IPitem{{--}}
  117. XTrying to double in a Crawford rule game.
  118. X\IPitem{{Message\ Reliability}}
  119. X{\it Ldb}
  120. Xdetects (and rejects) duplicate messages, and can
  121. Xregenerate lost messages.
  122. X\IPitem{{Remote\ Start}}
  123. X{\it Ldb}
  124. Xcan start a game between two players on remote hosts.
  125. XThis is used to set up "game starter" hosts,
  126. Xwhere people interested in finding new opponents are
  127. Xmatched by some criteria (such as ability, or by a
  128. Xtournament schedule), and have their games started
  129. Xautomatically.  For a current listing of game
  130. Xstarter hosts, see the README file.
  131. X\IPitem{{Game\ Value}}
  132. X{\it Ldb}
  133. Xdetects the end of the game, gammons, and backgammons,
  134. Xand notifies both players of the game value when the
  135. Xgame is over.  The Jacoby rule may be enabled,
  136. Xas may European scoring, to calculate the game value
  137. Xas desired.
  138. X\IPitem{{Online\ Help\ Screen}}
  139. X{\it Ldb}
  140. Xhas an online, context sensitive help facility
  141. Xthat lists the available commands for the current screen.
  142. X\IPitem{{Match\ Play}}
  143. X{\it Ldb}
  144. Xcan support matches that play to any
  145. Xdesired point total, and will continue to
  146. Xstart games until one player reaches that total.
  147. X\end{IPlist}\par
  148. X\shead{OPTIONS}
  149. X\begin{IPlist}
  150. X\IPitem{{%
  151. X\bf -read\ \rm%
  152. X}}
  153. XMail is read, and the games are updated and saved.
  154. XThe user is not prompted for his moves.
  155. XIf neither --read nor --play are given,
  156. Xboth are assumed.
  157. X\IPitem{{%
  158. X\bf -play\ \rm%
  159. X}}
  160. XAny games that are waiting for local input are
  161. Xdisplayed for the user to process.  No mail is read.
  162. XIf neither --read nor --play are given,
  163. Xboth are enabled.
  164. X\IPitem{{%
  165. X\bf -color\ xy\rm%
  166. X}}
  167. XThe colors for the game started by this ldb run are set to x and y.
  168. XThe first color is played by the local user, and the
  169. Xother is played by the opponent.  Legal color
  170. Xcharacters are any printing character, except that x
  171. Xand y may not be the upper and lower case of the same
  172. Xcharacter.
  173. XThe default is "--color rw".
  174. X\IPitem{{%
  175. X\bf -direction\ up/down\rm%
  176. X}}
  177. XThis sets the
  178. Xdirection of play for the local user
  179. Xfor the game started by this ldb run.
  180. XThe default is "--direction up".
  181. X\IPitem{{%
  182. X\bf -myaddr\ addr\rm%
  183. X}}
  184. XYour mail address is set to
  185. X{\it addr}
  186. Xfor games started on this ldb run.
  187. XThis overrides the address
  188. Xspecified in
  189. X{\it .ldbrc.}
  190. X\IPitem{{%
  191. X\bf -start\ user\rm%
  192. X}}
  193. XA game is started with the specified user.
  194. XThe
  195. X{\it user}
  196. Xargument may be any e--mail address that is valid for
  197. Xyour host.  Some e--mail addresses will need to be quoted
  198. Xif they contain shell metacharacters.
  199. XThe
  200. X{\it user}
  201. Xargument may also be an
  202. X{\it alias}
  203. Xfor an opponent you have played before.
  204. XAliases are
  205. Xdefined in the people file,
  206. Xand are initialized to the first name of
  207. Xthe opponent, with all upper-case letters changed to lower.
  208. XThe --start option is deferred until all command line
  209. Xoptions have been scanned, so the position of the
  210. X--start option on the command line is not important.
  211. XOnly one --start may be used per ldb run.
  212. X\IPitem{{%
  213. X\bf -remotestart\ user1\ user2\rm%
  214. X}}
  215. XA game is started between user1 and user2.  The local
  216. Xhost sends a remote start message to user1 instructing
  217. Xit to start a game with user2.  The local host
  218. Xdoes not participate thereafter in the game.
  219. XFor the purposes of the --color and --direction options,
  220. Xuser1 is considered the local user.
  221. XThe --remotestart option is deferred until all command line
  222. Xoptions have been scanned, so the position of the
  223. X--remotestart option on the command line is not important.
  224. XOnly one --remotestart may be used per ldb run.
  225. X\IPitem{{%
  226. X\bf -newaddr\rm%
  227. X}}
  228. XThe --newaddr option tells ldb to notify all of your opponents
  229. Xthat your e--mail address has changed.  To use it, first put
  230. Xyour new address into the myaddr= line of your .ldbrc.  Then,
  231. Xrun "ldb -newaddr".  As you send moves to your opponents, they
  232. Xwill be notified of your new address.  If any of your opponents
  233. Xstill use older ldb versions, you will see a warning message.
  234. XThe --newaddr option will not work with older ldb versions, so
  235. Xthose opponents will have to change your e--mail address
  236. Xin .ldbdata and .ldbpeople with a text editor.
  237. X\IPitem{{}}
  238. XIf you have multiple e--mail addresses, you should put the most
  239. Xcommon address in .ldbrc, run "ldb -read -newaddr", then use
  240. Xa text editor to change the "myaddr=" lines in .ldbdata and .ldbpeople
  241. Xfor the games and opponents that need different addresses.
  242. XEverything will be automatic from there.
  243. X\IPitem{{%
  244. X\bf -notify\ addr\rm%
  245. X}}
  246. XThis option affects games started by either -start or
  247. X-remotestart on this ldb run.
  248. XA message is sent to the specified address when the game
  249. Xthat is started by the -start or -remotestart option ends.
  250. XThis message includes the termination code of the game,
  251. Xthe game value, and a gammon/backgammon flag.  This option
  252. Xis mainly for the use of game starters that wish to either
  253. Xkeep score or start new games when the old ones finish.
  254. XEven though -notify is only used by the player that starts
  255. Xthe game (or the game starter that uses -remotestart), both
  256. Xplayer's ldb will send a message when the game ends.
  257. X\IPitem{{%
  258. X\bf -jacoby\rm%
  259. X}}
  260. XThe Jacoby rule is enabled for the game started by this ldb run.
  261. XThis rule specifies that gammons
  262. Xand backgammons count as a single point if neither player
  263. Xdoubled during the game.  This option may only be enabled
  264. Xby the user starting the game, and may not be disabled by
  265. Xthe other player.  If the opponent's version of ldb does
  266. Xnot support the Jacoby rule, it is disabled and the game
  267. Xproceeds as if it were never enabled.
  268. X\IPitem{{%
  269. X\bf -crawford\rm%
  270. X}}
  271. XThe Crawford rule is enabled for the game started by this ldb run.
  272. XThis rule specifies that neither
  273. Xplayer may double for the first game of a match after
  274. Xeither player is within 1 point of
  275. Xwinning the match.  If match play is not enabled, this
  276. Xargument has no meaning.
  277. XThis option may only be enabled
  278. Xby the user starting the game, and may not be disabled by
  279. Xthe other player.  If the opponent's version of ldb does
  280. Xnot support the Crawford rule, it is disabled and the game
  281. Xproceeds as if it were never enabled.
  282. X\IPitem{{%
  283. X\bf -european\rm%
  284. X}}
  285. XThe European rule is enabled for the game started by this ldb run.
  286. XThis rule specifies that backgammons
  287. Xcount as double, rather than triple, the score shown on the cube.
  288. XThis option may only be enabled
  289. Xby the user starting the game, and may not be disabled by
  290. Xthe other player.  If the opponent's version of ldb does
  291. Xnot support the European rule, it is disabled and the game
  292. Xproceeds as if it were never enabled.
  293. X\IPitem{{%
  294. X\bf -permanent\rm%
  295. X}}
  296. XThe game started by this ldb run
  297. Xis marked permanent.  Permanent games
  298. Xare automatically restarted when they end.  This is for
  299. Xpeople you play with constantly, and it saves you the trouble
  300. Xof restarting the game when it is over.
  301. XThis option may only be enabled
  302. Xby the user starting the game, and may not be disabled by
  303. Xthe other player.  If the opponent's version of ldb does
  304. Xnot support permanent games, the permanent flag is disabled and the game
  305. Xproceeds as if it were never enabled.
  306. X\IPitem{{%
  307. X\bf -match\ points\rm%
  308. X}}
  309. XThis option enables match play and specifies the number of points
  310. Xthe match is to play to.  Games that are part of a match have additional
  311. Xinformation displayed above the board to show the current match score
  312. Xand the number of points being played to.  When a game that is part
  313. Xof a match ends, and the specified number of points has not been reached,
  314. Xthe game is restarted.
  315. XThis option may only be enabled
  316. Xby the user starting the game, and may not be disabled by
  317. Xthe other player.  If the opponent's version of ldb does
  318. Xnot support match play, the game
  319. Xproceeds as if it were a normal game.
  320. X\IPitem{{%
  321. X\bf -score\rm%
  322. X}}
  323. XThe cumulative score for all opponents is printed.  This consists
  324. Xof points, games, gammons, backgammons, and matches that have
  325. Xbeen won and lost
  326. Xfor each opponent.  A total over all opponents is also printed.
  327. X\IPitem{{%
  328. X\bf -broadcast\ [file]\rm%
  329. X}}
  330. XThe specified file is mailed to all current opponents.
  331. XThis is useful for announcing vacation absences, etc.
  332. XIf the file argument is not given, standard input is
  333. Xread and sent to all opponents.
  334. X\IPitem{{%
  335. X\bf -control\rm%
  336. X}}
  337. XThis option puts ldb into a special mode that does not allow
  338. Xgames to be played, but instead displays them one at a time
  339. Xand allows certain "overhead" functions to be performed.
  340. XThese are described fully in the section titled "CONTROLLING A GAME".
  341. X\IPitem{{%
  342. X\bf -reconstruct\ file\rm%
  343. X}}
  344. XThis option allows your game file to be reconstructed if you accidentally
  345. Xclobber it.  It does this by extracting the information from your
  346. Xopponent's data file and "reversing" it so you can use it.
  347. XTo use the reconstruct option, ask all of your opponents to send
  348. Xyou their .ldbdata files.  Extract these from your mail into files
  349. Xon your system, strip the mail headers, and feed them one at a time
  350. Xinto ldb.  For each game found listing you as the opponent, you will
  351. Xbe prompted to enter the opponent's e-mail address or alias
  352. X(and his name if he
  353. Xis not in your people file), and the game will be added to your
  354. Xgame file.
  355. X\IPitem{{}}
  356. XThe reconstruct function cannot recover games that were in the
  357. Xprocess of starting (i.e. in their initial roll stage), or that
  358. Xhave already completed (why bother?).  Your opponent should
  359. Xread any mail files you sent before your data file got clobbered,
  360. Xand should make his move and send it before sending you his data file.
  361. XYou will not need to process the move he sent, though, since all
  362. Xthat data is in his file anyway.  It won't hurt if you do,
  363. Xldb will just ignore it.
  364. X\IPitem{{%
  365. X\bf -help\rm%
  366. X}}
  367. XThis prints a one-line description of each option, in case you
  368. Xforget later on.
  369. X\end{IPlist}\par
  370. X\shead{SCREEN}
  371. XThe screen displays the following items of interest:
  372. X\begin{IPlist}
  373. X\IPitem{{%
  374. X\bf Opponent\rm%
  375. X}}
  376. XThe e--mail address and personal name of the opponent are displayed
  377. Xon the top line of the screen.  This can help identify the
  378. Xgame if you have many games in progress at once.
  379. X\IPitem{{%
  380. X\bf Board\ Label\rm%
  381. X}}
  382. X{\it Ldb}
  383. Xdisplays one of three possible board images at a time;
  384. Xthe name of the board currently displayed is shown on
  385. Xthe second line of the screen, near the left.
  386. XThe significance of these three boards is explained below.
  387. X\IPitem{{%
  388. X\bf Flags\rm%
  389. X}}
  390. XThis area displays any special rules in effect for
  391. Xthe game.  Each special rule causes one character to
  392. Xbe displayed.  These are:
  393. X\nofill
  394. X     J     Jacoby rule
  395. X     C     Crawford rule
  396. X     E     European rule
  397. X     P     Permanent game
  398. X\fill
  399. XIn addition, the Crawford rule indicator is shown in
  400. Xreverse video if the Crawford rule game is currently
  401. Xbeing played.
  402. X\IPitem{{%
  403. X\bf Match\ Score\rm%
  404. X}}
  405. XThe current match score is displayed next to the board label,
  406. Xas is the number of points the match plays to.
  407. XIf the game being displayed is not part of a match,
  408. Xthis area is blanked out.
  409. X\IPitem{{%
  410. X\bf Pip\ Count\rm%
  411. X}}
  412. XNear the right of the screen on the second line is the
  413. Xpip count for the board being displayed.
  414. X\IPitem{{%
  415. X\bf Board\rm%
  416. X}}
  417. XThe board is displayed near the left side of the screen, and takes
  418. Xup most of the screen area.  It consists of an outline, drawn
  419. Xwith ASCII characters, and 28 "points" where pieces can reside.
  420. XOf these, 24 are the normal points making up the main body of the
  421. Xboard (numbered 1--24),
  422. X2 are the "BAR" points, located between the left
  423. Xand right halves of the main board, and 2 are the "OFF"
  424. Xpoints (where pieces go when they are borne off), located to the
  425. Xleft of the board.  Pieces are represented by upper or lower case letters.
  426. XTo help you remember which direction you
  427. Xare playing, there are arrows drawn at the four corners of the
  428. Xboard indicating your direction of play.
  429. XThe bar is indicated by the word "BAR"; this changes to
  430. X"---" if neither player can hit.
  431. X\IPitem{{%
  432. X\bf Doubling\ Cube\rm%
  433. X}}
  434. XThe current value of the doubling cube is displayed in reverse
  435. Xvideo on the left side of the screen.  The cube will appear
  436. Xnext to the home board of the owner of the cube,
  437. Xor in the middle if neither player
  438. Xhas doubled.  For example, if the player whose home board is
  439. Xat the bottom of the screen doubled last, the cube will appear
  440. Xbeside the top of the board.
  441. X\IPitem{{%
  442. X\bf Move\ Blocks\rm%
  443. X}}
  444. XThe move blocks are located on the right of the screen.  There
  445. Xare two move blocks; one for you, and one for your opponent.
  446. XYou will use your move block to enter your moves, and you will
  447. Xsee your opponent's moves displayed in his move block.  A move
  448. Xblock consists of a header, which identifies the owner of the
  449. Xmove block, and two columns of either two or four lines.
  450. XEach line in a move block is one roll, and shows the value
  451. Xof the roll (in the range 1--6) and how that roll has been used.
  452. XIf doubles were rolled,
  453. Xthe third and fourth lines will also
  454. Xbe used to display the two additional rolls that may be used.
  455. X\IPitem{{%
  456. X\bf Command\ Box\rm%
  457. X}}
  458. XThe bottom right corner of the screen contains a small box
  459. Xthat displays the commands that are legal at any given time.
  460. XYou can execute a command by typing the first letter; you
  461. Xshould not hit return afterwards.  There may be legal commands
  462. Xother than those shown in the command box, depending on
  463. Xthe state the game is in.  Press "h" or "?" for a complete listing
  464. Xof legal commands.
  465. X\IPitem{{%
  466. X\bf Message\ Area\rm%
  467. X}}
  468. XThe bottom 6 lines of the screen are reserved for messages of
  469. Xvarious types.  The bottom line is used for error and informative
  470. Xmessages that occur as a game is played.  The top line in this
  471. Xarea displays messages pertaining to the status of a game, such as
  472. Xblots hit by an opponent's move.  The remaining 4 lines are used to
  473. Xenclose a message to your opponent with your move, and to display
  474. Xthe one your opponent sent to you.  These messages may be up to
  475. X2 lines of 56 characters.
  476. X\end{IPlist}\par
  477. X\shead{STARTUP FILE}
  478. XThe first time you run
  479. X{\it ldb,}
  480. Xit will ask you if you want to
  481. Xcreate a
  482. X{\it .ldbrc}
  483. Xfile.  You should answer "yes", unless you have a reason
  484. Xnot to.  If you want the ldb startup file to be named something
  485. Xother than
  486. X{\it .ldbrc,}
  487. Xyou should set the environment variable LDBRC to the
  488. Xname you want before
  489. Xrunning ldb for the first time.
  490. XIf you do this, the LDBRC variable must be set
  491. Xevery time you run ldb.
  492. X{\it Ldb}
  493. Xmoves to the directory in the HOME environment variable,
  494. Xif it is set, before accessing any files.
  495. XThis makes all files (including .ldbrc) relative
  496. Xto \$HOME.
  497. X\par
  498. XThe
  499. X{\it .ldbrc}
  500. Xis organized as a sequence of name/value pairs, one per line,
  501. Xin the format
  502. X{\it name=value .}
  503. XThere should be no spaces before
  504. X{\it name}
  505. Xor before or after the equals sign.  Comments are indicated
  506. Xby a pound sign (\#) in column 1, and extend to the end of the line.
  507. XThe following names are defined:
  508. X\begin{IPlist}
  509. X\IPitem{{myname}}
  510. XThis line is where you enter your (human) name.
  511. XIt is sent to your opponent when a game is started, to
  512. Xmake things a little more personal.  You can put anything
  513. Xyou like here, of course, but I highly recommend you just
  514. Xstick to your name.
  515. XThe
  516. X{\it myname}
  517. Xline is mandatory; if you don't want your name
  518. Xsent to people, you can just put your email address instead,
  519. Xbut you must have something.
  520. X\IPitem{{myaddr}}
  521. XThis line defines your e--mail address.  This is sent to your
  522. Xopponent when you start a game so they know how to send
  523. Xmail back to you.  For people with multiple mail paths, put
  524. Xthe one here you use the most (e.g. the Internet domain--style
  525. Xpath), and for games that need to use a different address,
  526. Xuse the
  527. X{\it --myaddr}
  528. Xcommand line argument to override the path in
  529. X{\it .ldbrc. Note that the first time you start a game}
  530. Xwith someone, the address you use is saved in your
  531. Xpeople file.  Subsequent games you start with this person
  532. Xautomatically use this same address, so the
  533. X{\it --myaddr}
  534. Xoption will be unnecessary.
  535. XThe
  536. X{\it myaddr}
  537. Xline is mandatory.
  538. X\IPitem{{peoplefile}}
  539. XThis line sets the file name that is used to store information
  540. Xabout your opponents.  In addition to storing your opponents'
  541. Xnames, addresses, and aliases, it records the number of
  542. Xgames, points, gammons, backgammons, and matches you have
  543. Xwon or lost to that opponent.  It also stores something
  544. Xcalled the
  545. X{\it fence,}
  546. Xwhich is the start time of the most recently finished game.
  547. XThis allows start messages from old games to be discarded.
  548. XThe peoplefile line is optional, and if it is not given,
  549. Xthe people file defaults to
  550. X{\it .ldbpeople.}
  551. X\IPitem{{gamefile}}
  552. XThis line sets the file name that is used to store games
  553. Xin progress.  It is optional, and if it is not given, the
  554. Xgame file defaults to
  555. X{\it .ldbdata.}
  556. XMy advice, if you care, is that you should avoid
  557. Xusing a file name containing the string
  558. X{\it games}
  559. Xor any other giveaway string that would let your boss, sysadmin,
  560. Xor other local Nazi--type know that you're using
  561. Xa very expensive piece of high--tech equipment to goof off,
  562. Xwhen you could do that with nothing more exotic than
  563. Xa rubber band and some spitballs.
  564. X\IPitem{{backupfile}}
  565. XThis is the file your old
  566. X{\it gamefile}
  567. Xwill be moved to just before a new
  568. Xone is created.  It defaults to
  569. X{\it .oldldbdata.}
  570. X\IPitem{{mailfile}}
  571. XThis line is where you tell ldb how to find the mail messages
  572. Xyour opponents have sent.  There are several ways to do this.
  573. XThe simplest one is to just put
  574. Xsome file name here (the default is ldb.rcv) and, when you receive
  575. Xmail containing an
  576. Xldb
  577. Xmove, just save it to this file.  When you are done reading your mail,
  578. Xrun ldb, and it will scan this file and extract all your incoming
  579. Xmoves.  If your mail program is like most, it will
  580. Xappend messages if the file you are saving to already exists,
  581. Xwhich is just what you want.
  582. X{\it Ldb}
  583. Xwill silently ignore moves that it has already seen for games in
  584. Xprogress, so you don't have to clean them out of your mailfile
  585. Xif you don't want to.
  586. XNote however that if anything happens to your people file,
  587. Xand you have old start messages in your input file,
  588. Xldb could start a spurious game (i.e. one your opponent's ldb
  589. Xknows nothing about).  Also, if your input file gets really long,
  590. Xldb will take a while to start up.
  591. XSo the best course is to delete all messages
  592. Xafter ldb has read them.
  593. X\IPitem{{}}
  594. XFor UNIX users, a much easier way
  595. Xis to set the mailfile to point to your
  596. Xactual mail file (e.g. /usr/spool/mail/\$USER), and let ldb
  597. Xscan your mail directly.  This will only work if your system
  598. Xkeeps mail in ASCII format, but many do.  Ldb will not
  599. Xdelete these messages from your mail
  600. Xso you will have to.
  601. X\IPitem{{}}
  602. XThe third option is to set the mailfile to a pattern instead
  603. Xof a filename.  Ldb will scan all matching files for moves.
  604. XThis is good for mailers that don't append on save, and
  605. Xdon't store in ascii format, such as on VMS.  Note that
  606. Xon VMS, if no version number is defined, mailfile defaults
  607. Xto scanning all versions.
  608. XVMS users should read the section entitled "VMS NOTES"
  609. Xfor more information on extracting mail.
  610. X\IPitem{{delmail}}
  611. XThis option causes any mail files scanned by ldb to be removed after
  612. Xthey have been scanned.  This is a hideously dangerous option,
  613. Xso I recommend you try it in a friend's account first.
  614. XIt will delete ANY file that matches the pattern specified in
  615. Xthe mailfile line, with the exception that, under UNIX,
  616. Xit will refuse to delete any file starting with "/".
  617. XUse it with great care.  This option defaults to no;
  618. Xto enable it, set it to "yes".
  619. X\IPitem{{lockfile}}
  620. XThis line sets the name of the ldb lock file.
  621. XIt defaults to
  622. X".ldb\_lock",
  623. Xand there's no
  624. Xreal reason to change it unless by some chance it conflicts
  625. Xwith a file name you might use.
  626. XWhen ldb starts, it checks to see if this file exists;
  627. Xif it does, ldb exits.  Otherwise, it creates it and goes on.
  628. XThis prevents more than one ldb from running in the same
  629. Xaccount at the same time, and thereby garbling the data files.
  630. X\IPitem{{sendcmd}}
  631. XThis tells ldb how to send a file with your particular
  632. Xmail command.  This string is passed to the system, after making the
  633. Xfollowing substitutions:
  634. X\IPitem{{\ \ \ \ \ \$a}}
  635. Xis substituted with the address to mail to.
  636. X\IPitem{{\ \ \ \ \ \$f}}
  637. Xis substituted with the file containing the message.
  638. X\IPitem{{\ \ \ \ \ \$s}}
  639. Xis substituted with the subject of the message.
  640. X\IPitem{{}}
  641. XMost mail systems will work fine with the default, which is
  642. X\nofill
  643. X     mail --s '\$s' \$a $<$ \$f
  644. X\fill
  645. X\IPitem{{}}
  646. Xor, on VMS,
  647. X\nofill
  648. X     MAIL/SUBJECT="\$s" \$f IN\%"""$<$\$a$>$"""
  649. X\fill
  650. X\IPitem{{}}
  651. XNote that the \$ substitutions are
  652. Xmade by ldb, not by a shell, and thus are not subject to
  653. Xany quoting.  If you need a \$ in the string, use \$\$.
  654. XVMS users may need to change the name of the SMTP mailer;
  655. Xfor example, to send mail using Wollongong TCP/IP, you would
  656. Xuse the string
  657. X\IPitem{{}}
  658. X\nofill
  659. X     MAIL/SUBJECT="\$s" \$f WINS\%"""$<$\$a$>$"""
  660. X\fill
  661. X\IPitem{{tempfile}}
  662. XThis line specifies a temporary file that ldb can use to compose
  663. Xmail messages.  The file will be created in your home directory,
  664. Xthus avoiding file name conflicts in /tmp.  It defaults to ldb.tmp.
  665. X\IPitem{{colors}}
  666. XThis is a string of two upper or lower case
  667. Xletters,
  668. Xand defines
  669. Xyour preferred colors for any games you start.  The first character
  670. Xin the string is the color you will play, and the second is the
  671. Xone your opponent will play.  It defaults to "rw", and is
  672. Xoverridden by the
  673. X{\it --color}
  674. Xcommand line argument.
  675. X\IPitem{{direction}}
  676. XThis is either "up" or "down", and defines your preferred direction
  677. Xof play for games you start.  The direction of play only refers to
  678. Xwhether you play toward increasing or decreasing numbered points.
  679. XAlthough by default upward play goes toward the top of the screen,
  680. Xthis can be reversed (for your screen only) by the "Invert"
  681. Xcommand in the Control menu,
  682. Xaccessible via the
  683. X{\it --control}
  684. Xcommand line argument.  The default for this line is "up",
  685. Xand is overridden by the
  686. X{\it --direction}
  687. Xcommand line argument.
  688. X\IPitem{{initialboard}}
  689. XAs was alluded to earlier, your screen shows one of
  690. Xthree possible board images at any time.  Although
  691. Xthe purpose for this
  692. Xwill be explained later, this line allows you to select
  693. Xwhich of these three boards should be displayed initially.
  694. XThe legal values are "before", "after", and "current".
  695. XThe default is "current".
  696. X\IPitem{{autoroll}}
  697. XIf you were the last to double, you have no option
  698. Xbut to roll the dice when it is your turn.  If
  699. Xautoroll is enabled, ldb will roll the dice for you automatically
  700. Xin this case.  For those that prefer consistency, autoroll
  701. Xmay be disabled, although attempting to double when you
  702. Xdoubled last will cause an
  703. Xerror message.  Possible values for autoroll are "yes" and "no",
  704. Xwith "yes" being the default.
  705. X\IPitem{{automove}}
  706. XEach time you roll the dice, ldb determines how many
  707. Xlegal ways there are for you to use your rolls.  In the
  708. Xrelatively unusual case where there is only one way
  709. Xfor you to use your rolls, ldb can automatically apply
  710. Xthis move to your board before displaying it.  Automove
  711. Xis disabled by default because quite frankly it's
  712. Xpretty annoying.  Possible values for automove are "yes"
  713. Xand "no", with "no" being the default.
  714. X\IPitem{{autodouble}}
  715. XOne of the official rules of backgammon allows for
  716. Xautomatically doubling the game value when the opening
  717. Xroll is a tie.  The rules go on to state that automatic
  718. Xdoubling is only to be used when the players agree beforehand
  719. Xon its use and limitations.  The method ldb uses to implement
  720. Xthis somewhat vague rule is to allow each player to specify
  721. Xa maximum number of autodoubles they are willing to accept in
  722. X{\it .ldbrc,}
  723. Xand for the maximum number of autodoubles applied to any game
  724. Xto be the lesser of the two players' specified limits.
  725. XFor example, if you set
  726. X{\it autodouble=4}
  727. Xin your .ldbrc, no game you play will ever be autodoubled
  728. Xmore than 4 times, although the number of tied opening rolls
  729. Xis obviously not limited.  However, if you were to start a game
  730. Xwith someone who had set
  731. X{\it autodouble=2 ,}
  732. Xthat game would be limited to at most 2 autodoubles.  If you don't
  733. Xwant to play automatic doubles, set
  734. Xautodouble=0, which is also the default.
  735. X\IPitem{{superkey}}
  736. XIf you live in fear of roving supervisors (or other
  737. Xfun-impaired individuals) running across you playing an
  738. Xinnocent game of backgammon,
  739. Xyou may want to enable the superkey function.
  740. XJust pick a key on the keyboard you never use in ldb, such as the
  741. Xbackquote, and put a line in
  742. X{\it .ldbrc}
  743. Xsetting superkey to the
  744. X{\it decimal\ ASCII\ code}
  745. Xof the key you want; for example, to use the backquote key,
  746. Xuse "superkey=96".
  747. XOnly single--character keys are allowed, and
  748. Xthe key you select will not be usable for normal purposes
  749. Xwithin ldb.  Make it one you can hit in a hurry.
  750. X\IPitem{{supercmd}}
  751. XIf you'd rather have a program of your choice come up
  752. Xinstead of the shell when the superkey is pressed,
  753. Xput it on this line.  It will be passed
  754. Xunchanged to a shell via the system() function.
  755. XVMS users should read the note in the section titled
  756. X"VMS NOTES" on supercmd functionality.
  757. X\IPitem{{checkpoint}}
  758. XThis option keeps the gamefile up to date by writing it out
  759. Xwhenever the dice are rolled or a message is sent.  This
  760. Xprevents game information from being lost if ldb crashes,
  761. Xyour machine goes down, or what have you.  This option is
  762. Xenabled by default, and I highly recommend you leave it
  763. Xthat way.  If you just can't stand the thought of a few extra
  764. Xwrites to disk, you can disable it with "checkpoint=no".
  765. XOn your own head be it.
  766. X\IPitem{{timeout}}
  767. XThis option sets the number of days ldb will wait for a reply
  768. Xfrom your opponent.  After this number of days passes, ldb
  769. Xwill assume your last message was lost and automatically resend it.
  770. XThis prevents the situation where both players think they are
  771. Xwaiting on the other, and eventually both players forget they
  772. Xeven have a game going.  This option defaults to 7 days; 
  773. Xyou can disable automatic resends by setting it to 0.
  774. X\IPitem{{keepold}}
  775. XThis option sets the number of days ldb will keep a game after
  776. Xit is over.  This can be handy in case you need to resend the last
  777. Xmove of a game.  This option defaults to 7 days; if you set
  778. Xit to 0, finished games are deleted immediately.
  779. X\IPitem{{debug}}
  780. XThis option enables various debug messages.  It is a bitmap,
  781. Xwith each set bit enabling debug messages from a different part
  782. Xof ldb.  Most people will want to leave it at 0, which is
  783. Xthe default.  If you want debug messages, look for the
  784. Xdefinitions of DB\_* in ldb.h.
  785. X\end{IPlist}\par
  786. X\shead{PEOPLE FILE}
  787. XLdb maintains a list of all of the people you
  788. Xhave ever played.  This file is used for several purposes:
  789. X\begin{IPlist}
  790. X\IPitem{{1}}
  791. XIt stores the number of games, points, gammons, backgammons,
  792. Xand matches you have won and lost to that person.
  793. X\IPitem{{2}}
  794. XIt stores the address for that person, and the
  795. Xaddress that person should use to get to you.
  796. XIt also allows you to assign an alias to that person,
  797. Xand to use that alias when starting a game instead
  798. Xof the full e--mail address.
  799. X\IPitem{{3}}
  800. XIt stores information that allows ldb to reject
  801. Xstart messages from defunct games.
  802. X\end{IPlist}\par
  803. XNormally, you should never have to edit the
  804. Xpeople file, but it is described here in case
  805. Xyou need to for some reason.  It is in the same
  806. Xoverall format as .ldbrc (name/value pairs).
  807. X\begin{IPlist}
  808. X\IPitem{{addr}}
  809. XThis is the address of the opponent.  This is what
  810. Xuniquely defines the record, in case you are playing
  811. Xtwo people with the same name.
  812. X\IPitem{{name}}
  813. XThis is the name of the opponent.
  814. X\IPitem{{alias}}
  815. XThis is a "nickname" you can assign to
  816. Xan opponent.  When a new opponent is found,
  817. Xthe alias is initialized to the first word of
  818. Xthe opponent's name, with all upper case letters
  819. Xchanged to lower.  You can change the alias to
  820. Xany desired string with a text editor (just make sure
  821. Xldb isn't running at the time, or your changes will
  822. Xbe lost).
  823. X\IPitem{{myaddr}}
  824. XThis is the address that this opponent should use to
  825. Xmail to you.  This saves you from having to specify
  826. Xthe -myaddr argument when starting a game, and is
  827. Xespecially important with permanent games, since
  828. Xthese games are started automatically without giving
  829. Xyou a chance to change your address.  If you only
  830. Xhave one e--mail path, you can ignore this.
  831. XThis field is initialized to the value of the
  832. X{\it --myaddr}
  833. Xoption at the time the first game with
  834. Xthis opponent is started, or to
  835. Xthe value of myaddr from .ldbrc if no
  836. X{\it --myaddr}
  837. Xoption was used.
  838. X\IPitem{{equiv}}
  839. XThe presence of this field flags this as an "equiv"
  840. Xrecord.  Equiv records allow one opponent to have multiple
  841. Xe--mail addresses, but to cause all of them to refer to
  842. Xone people record.  Equiv records have no valid fields
  843. Xexcept
  844. X{\it addr}
  845. Xand
  846. X{\it equiv,}
  847. Xand must be preceded by the record they refer to in the people file.
  848. X\IPitem{{fence}}
  849. XThe fence is defined as the start time of the most
  850. Xrecently started game that has finished.  If that makes
  851. Xno sense, don't worry, you should never have to mess
  852. Xwith it.  It is used to discard old start messages that
  853. Xyou forgot to clean out of your mail.
  854. X\IPitem{{score}}
  855. XThis is an array of 10 numbers that represent, in order:
  856. X\IPitem{{}}
  857. X\nofill
  858. X     - Games won
  859. X     - Games lost
  860. X     - Points won
  861. X     - Points lost
  862. X     - Gammons won
  863. X     - Gammons lost
  864. X     - Backgammons won
  865. X     - Backgammons lost
  866. X     - Matches won
  867. X     - Matches lost
  868. X\fill
  869. X\IPitem{{}}
  870. XThis information is stored purely for whatever purposes you
  871. Xcan think of.
  872. X\IPitem{{end}}
  873. XThis line is required to separate people records.  If you
  874. Xhand enter a record, you must be sure to put an end marker
  875. Xor your record will merge with the next one, which is
  876. Xnot what you want.
  877. X\end{IPlist}\par
  878. X\shead{STARTING A GAME}
  879. XTo start a game, you must use the
  880. X{\it --start}
  881. Xcommand line argument, along with the e--mail address of
  882. Xthe person you wish to play with.
  883. XFor example,
  884. X\nofill
  885. X     ldb --start mybuddy@back.gammon.com
  886. X\fill
  887. XIf you want to play 'w', and make your opponent play
  888. X'b', use the command
  889. X\nofill
  890. X     ldb --color wb --start black@blah.blah.blah
  891. X\fill
  892. XSee the
  893. XOPTIONS section for more details on the available
  894. Xcommand line arguments.
  895. X{\it Ldb}
  896. Xwill not allow you to play with yourself, but
  897. Xthat's ok because you'd probably lose.
  898. X\par
  899. XWhen you start a game, ldb sends your e--mail address
  900. Xto your opponent, along with
  901. Xyour opening roll.  When your opponent receives
  902. Xyour message, his ldb will roll his opening roll, and
  903. Xdecide who won.  If you won, his ldb will send your ldb
  904. Xa message to that effect, and the board will come up
  905. Xon your screen with that roll in your move block.  If he
  906. Xwon, he will use the opening roll and his ldb will send
  907. Xyour ldb
  908. Xa message telling you how he moved.  Either way, the game is off
  909. Xand running.
  910. X\par
  911. XIf, by unfortunate chance, the opening roll is a tie,
  912. Xyour opponent's ldb will send
  913. Xyour ldb a message to that effect.
  914. XThis will cause a new opening roll sequence as
  915. Xdescribed above.
  916. XA message will be printed telling you
  917. Xwhat's going on;
  918. Xjust keep feeding the incoming messages to ldb, and
  919. Xit will take care of everything.
  920. X\par
  921. X\shead{PLAYING A GAME}
  922. XWhen it is your turn, the game will be displayed on your screen,
  923. Xand you will be
  924. Xfaced with three options: Roll, Double, or Concede.
  925. XUnless you are very cocky, I would not suggest doubling
  926. Xat this point.  You could always concede, but I really
  927. Xthink that would be selling yourself short.
  928. XSo you should choose "Roll".
  929. XJust press "r", and watch your roll appear on
  930. Xyour move block (along the right side of the screen, under the
  931. Xword "You").  You should see two numbers appear (four if you
  932. Xrolled doubles), and the word UNUSED beside them.
  933. XDecide which of the rolls you want to use first, and press
  934. Xthe number of that roll.  For example, say you rolled
  935. X1 6, and you want to move the obvious 8--7, 13--7 to
  936. Xmake your bar point.
  937. XJust hit "6".  Notice the cursor jump up to your move block, beside
  938. Xthe "6" roll?  It is waiting for you to enter the point you want
  939. Xto move from.  Press "1" "3" (don't hit return).  You should see
  940. Xa piece move from 13 to 7, and this fact will be reflected in
  941. Xyour move block as well.  Now, press "1".  Again the cursor
  942. Xjumps to the move block, and you type "8".
  943. XThe second entry in the move block
  944. Xreflects this move, as does the board.  Happy?  If not, press
  945. X"r"; this will reset your rolls to UNUSED and put
  946. Xthe board back to how it was before you moved,
  947. Xand then you can enter some different moves.  Otherwise, hit "s"
  948. X(not "q"!)
  949. Xto send the move.  The cursor will jump down to the message area,
  950. Xwhere you get a chance to enclose a message to your opponent,
  951. Xperhaps to gloat over the great move you just made.
  952. XYou only get 2 lines of 56 characters, so keep it short.  When
  953. Xyou are done, press $<$return$>$.  Your move is on its way!
  954. X\par
  955. XThere are three shortcuts you can use
  956. Xafter you have entered your first move:
  957. X\begin{IPlist}
  958. X\IPitem{{1.}}
  959. XYou can press $<$return$>$, which will "repeat" your last move.
  960. XThat is, your next remaining roll will move from the same
  961. Xpoint as your last one moved from.  This is handy when
  962. Xusing doubles to move more than one piece from the same point.
  963. X\IPitem{{2.}}
  964. XYou can press $<$space$>$, which will "continue" your last move.
  965. XThat is, your next remaining roll will move from the
  966. Xpoint your last move ended on.
  967. X\IPitem{{3.}}
  968. XYou can press "p", which will attempt to make the point your
  969. Xlast move ended on.  In our 1 6 example above, you could have
  970. Xjust hit "p" after you moved 13--7, and ldb would have figured
  971. Xout that to make the 7 point with the remaining roll of 1,
  972. Xit would have to move a piece from the 8 point.
  973. X\end{IPlist}\par
  974. XIn addition, there is one more shortcut that may be used
  975. Xwith any roll.  If you want to use a roll to bear off
  976. Xa piece, you can just hit "o".  Ldb will locate the
  977. Xpoint (if any) from which pieces may be legally borne off
  978. Xby the next unused roll, and make that move automatically.
  979. XYou can also select a roll, then hit "o".
  980. X\par
  981. XIf you use your moves, hit "Send", and start to enter your
  982. Xmessage, then realize you made a mistake, you can press
  983. XESC to get out of send and back into the game, where
  984. Xyou can use "Reset" and re--enter your moves.
  985. X\par
  986. X\shead{DOUBLING}
  987. XIf you decide to double, just choose "Double" instead of
  988. X"Roll".  You will get to enclose a message, just like when
  989. Xyou send a move, then your message gets sent.  Once you have
  990. Xdoubled, you cannot double again until your opponent does so,
  991. Xso ldb automatically selects "Roll" and sends you to the
  992. Xnext menu.  If you don't like this, you can disable it by
  993. Xsetting
  994. X{\it autoroll=no}
  995. Xin .ldbrc.
  996. X\par
  997. XIf your opponent doubles, you will see a message just under
  998. Xthe board to that effect, and a menu will come up
  999. Xallowing you to Accept or Decline the double.
  1000. XDeclining the double means you lose the game for the
  1001. Xcurrent game value.  Accepting means that the game
  1002. Xcontinues, but its value is doubled.  The current
  1003. Xgame value is shown to the left of the board.  After
  1004. Xyou accept, you should see this display move next to your
  1005. Xhome board, indicating that you own the doubling cube.
  1006. X\par
  1007. XIf the Crawford rule game is being played,
  1008. Xdoubling is illegal, and will result in an error message.
  1009. X\par
  1010. X\shead{BOARDS}
  1011. X{\it Ldb}
  1012. Xmaintains three board images at all times.  These are:
  1013. X\begin{IPlist}
  1014. X\IPitem{{1}}
  1015. XThe board before your opponent's last move.
  1016. XIt is for display purposes only, so you can see your
  1017. Xopponent's move "before and after".  The pieces your opponent
  1018. Xis going to move are highlighted.
  1019. X\IPitem{{2}}
  1020. XThe board after your opponent's last move.
  1021. XIt shows the condition of the
  1022. Xboard after your opponent's last move, with the pieces he
  1023. Xmoved highlighted.
  1024. X\IPitem{{3}}
  1025. XThe current board.  This is the "real" board that shows the
  1026. Xcurrent state of the game.
  1027. XNothing is highlighted.
  1028. X\end{IPlist}\par
  1029. XBy default, ldb displays the Current board at all times.  If
  1030. Xyou want to see the other boards, use the Board command
  1031. X(provided it is in the current menu).  This will cycle through
  1032. Xthe three boards in the order they are listed above.  The second
  1033. Xline of the screen tells you which board is displayed (near the left).  When
  1034. Xyou roll, ldb automatically switches to the current board if
  1035. Xit is not already up.  You can set which of these three boards
  1036. Xis initially displayed via the
  1037. X{\it initialboard}
  1038. Xsetting in .ldbrc.
  1039. X\par
  1040. X\shead{ENTERING COMMENTS}
  1041. XWhenever you send a move to your opponent, you are
  1042. Xgiven the opportunity to enclose a two line comment.
  1043. XWhile entering your comment, certain keys have special meaning.
  1044. XThese are:
  1045. X\begin{IPlist}
  1046. X\IPitem{{BS/DEL}}
  1047. XThe backspace and delete (or rubout) keys both erase the
  1048. Xlast character typed.  You can backspace from one line to
  1049. Xthe previous one.
  1050. X\IPitem{{\^{}W/\^{}B}}
  1051. XThe \^{}W and \^{}B (control-W and control-B) keys both erase the
  1052. Xlast word typed.  Words are delimited by spaces.
  1053. X\IPitem{{\^{}X/\^{}U}}
  1054. XThe \^{}X and \^{}U (control-X and control-U) keys erase the
  1055. Xcurrent line and move to the end of the previous line,
  1056. Xor to the beginning of the first line if used on the
  1057. Xfirst line.
  1058. X\IPitem{{RETURN}}
  1059. XIf you press return on an empty line, or on the last line,
  1060. Xthe comment is finished.  Otherwise, the cursor moves to the
  1061. Xnext line.
  1062. X\IPitem{{ESC}}
  1063. XThe escape key aborts the operation (e.g. Send), restores
  1064. Xthe previous comment, and returns to the previous menu.
  1065. XThis allows you to change your mind and back out of
  1066. Xan operation.
  1067. X\end{IPlist}\par
  1068. XAll other keys are entered into the comment.  When you reach
  1069. Xthe end of a line, ldb word-wraps to the next line, or beeps
  1070. Xif you are at the end of the last line.  Note that the
  1071. Xsuperkey is still active while entering comments, and
  1072. Xcannot be entered into a comment.
  1073. X\par
  1074. X\shead{CONTROLLING A GAME}
  1075. XThe
  1076. X{\it --control}
  1077. Xoption permits you to control your games in
  1078. Xcertain ways.  Each of your current games are
  1079. Xdisplayed, one at a time, just as they are when you
  1080. Xare playing, allowing you to perform any of the
  1081. Xfunctions on the control menu.
  1082. XThe control menu has the following commands:
  1083. X\begin{IPlist}
  1084. X\IPitem{{Invert}}
  1085. XThis allows you to invert the board for this game.  The
  1086. Xboard will invert immediately on your screen, so you can
  1087. Xsee if you like it.  Pressing
  1088. X{\it Invert}
  1089. Xagain will put it back to normal.  Inverting the board does
  1090. Xnot affect the point numbering or the color you play,
  1091. Xit merely draws the board with the low-numbered points at
  1092. Xthe top of the screen rather than the bottom.  You may find
  1093. Xit easier to make all of your games play a certain direction.
  1094. X\IPitem{{Resend}}
  1095. XFrom time to time, messages may be lost due to faulty mailers
  1096. Xor human error.  If your last message gets lost, you can
  1097. Xregenerate it with the
  1098. X{\it Resend}
  1099. Xcommand.  There is no harm in regenerating messages, as
  1100. Xldb will ignore duplicate messages.  If you and your opponent
  1101. Xhave forgotten whose move it is, the easiest way to get going
  1102. Xagain is for both of you to resend your last message.  The one
  1103. Xthat got lost will be accepted, and the game will be off
  1104. Xand running again.  So that you can resend the last move
  1105. Xof a game, completed games are kept in your .ldbdata for
  1106. X1 week, after which they are deleted.  They may be deleted
  1107. Xsooner with the Delete Game command.  Note also that
  1108. Xgames that have been waiting for your opponent for more than
  1109. X1 week have an automatic resend performed whenever you run ldb.
  1110. XResend is disabled if it is your turn.
  1111. X\IPitem{{Get\ Resend}}
  1112. XThis allows you to send a message to your opponent's
  1113. Xldb requesting a resend.  This saves your opponent the
  1114. Xtrouble of getting into
  1115. X{\it --control,}
  1116. Xfinding which game you're talking about, and resending.
  1117. XInstead, he can just feed your resend request message into
  1118. Xldb like it was a regular move.  Version 1.0 of ldb
  1119. Xnot only does not support this feature, but will crash
  1120. Xif a resend request packet is sent to it, so
  1121. X{\it --control}
  1122. Xwill check to make sure your opponent is running
  1123. Xthe proper version
  1124. Xbefore sending the message.
  1125. X"Get Resend" is disabled for games that are over.
  1126. X\IPitem{{Screen\ Dump}}
  1127. XThis command makes an exact copy of the screen in the
  1128. Xfile "ldb\_screen.dmp".  This could be useful if you
  1129. Xwant to mail the board to someone or print it out.
  1130. X\IPitem{{Delete\ Game}}
  1131. XThis command marks a game for deletion.  The game is not deleted
  1132. Xuntil you quit, and you can undelete it by pressing D again.
  1133. XNormally, you should not delete a game in this manner, 
  1134. Xyou should play until someone wins or concedes.  The
  1135. X{\it Delete\ Game}
  1136. Xcommand can be used to get rid of games where your opponent
  1137. Xdoesn't answer his mail, or doesn't want to play, etc.
  1138. X\IPitem{{Next\ Game}}
  1139. XThe next game is displayed.  If there is no next game,
  1140. Xthis choice is equivalent to
  1141. X{\it Quit.}
  1142. X\IPitem{{Quit}}
  1143. XThis allows you to exit from
  1144. X{\it --control .}
  1145. XIf you made any changes to your games, you will be given the opportunity
  1146. Xto save these changes, then ldb will exit.
  1147. X\end{IPlist}\shead{VMS NOTES}
  1148. X\par
  1149. XVMS users have a few unique considerations:
  1150. X\par
  1151. XOn VMS, the default file names are changed from .ldb* to ldb.*.  This
  1152. Xgroups all ldb files together.
  1153. X\par
  1154. XVMS mail doesn't append
  1155. Xmessages to an existing file, it creates new versions.
  1156. XTo accommodate this, vms-compiled executables will search all versions
  1157. Xof a file by default.  This applies to files specified on the command
  1158. Xline as well as the file specified in your ldb.rc.  You can disable
  1159. Xthis in either case by specifying a version number, or by specifying
  1160. Xversion number 0 to get the most current version.  The default setting
  1161. Xin ldb.rc is to scan sys\$login:ldb.rcv;*.  You might want to change
  1162. Xthis to ldb.txt;*, since that is the default extension added by
  1163. Xmail when you extract a file.  If you use multiple versions, you
  1164. Xshould be careful not to PURGE until after you have run ldb.
  1165. X\par
  1166. XIf you have the Eunice package, ldb will compile and run under it fine,
  1167. Xbut any files created by the Eunice--compiled version
  1168. X(most notably the games file)
  1169. Xwill be incompatible with the VAX C--compiled version.  Use the
  1170. Xunixtovms command to convert.
  1171. X\par
  1172. XLdb is available in vms\_share format with the manual preformatted.
  1173. XIf you have MMS, you can use the makefile.vms provided by entering:
  1174. X\nofill
  1175. X     \$ rename makefile.vms makefile.
  1176. X     \$ make
  1177. X\fill
  1178. XIf you don't have a make available, you can compile with:
  1179. X\nofill
  1180. X     \$ @makeldb
  1181. X\fill
  1182. XAfter ldb is compiled, you'll probably want
  1183. Xto define a symbol such as:
  1184. X\nofill
  1185. X     \$ ldb :== \$dua0:[me.ldb]ldb
  1186. X\fill
  1187. Xso you can run it.
  1188. X\par
  1189. XThe VMS implementation spawns a subprocess with no command when the
  1190. Xsuperkey is pressed.  You can enter LOGOUT or EOJ to return to the
  1191. Xgame.  If you define a command to run when the superkey is pressed,
  1192. Xthe command will be run, but you will still need to logout of
  1193. Xthe subprocess to return to ldb.
  1194. X\par
  1195. X\shead{BUGS}
  1196. X\par
  1197. XA game file created by ldb under Eunice must be run through
  1198. X"unixtovms" before the VAX--C ldb can read it.
  1199. X\par
  1200. XThe superkey function only works when ldb is waiting for a key.
  1201. XIf ldb is doing something time-consuming, such as calculating
  1202. Xlegal moves, the superkey will not work until the calculation
  1203. Xis complete.
  1204. X\par
  1205. XThere should be a way to play interactively (using socket connections,
  1206. Xfor example), rather than via e--mail.
  1207. X\par
  1208. XUnder Eunice, there is a bug when delmail is enabled,
  1209. Xreceived mail is in a file with multiple versions,
  1210. Xand these versions are entered on the command line
  1211. X(as opposed to being specified by a pattern in .ldbrc).
  1212. XEunice handles multiple versions by appending a dot and the version
  1213. Xnumber to all versions of the file but the newest version,
  1214. Xto which it appends nothing.  When the most recent version is deleted,
  1215. Xthe next older
  1216. Xversion becomes the most recent, and has no version suffix
  1217. Xattached.  This file will be skipped, since its name changed
  1218. Xbetween the time the file list was created and the file is opened.
  1219. XAll other files will be scanned properly.  The work-around for this
  1220. Xis to not use a pattern like 'ldb ldb.txt*' on the command line
  1221. Xto specify all versions of the file, but rather use 'ldb ldb.txt.* ldb.txt'
  1222. Xso that the most recent version is scanned (and thus deleted) last.
  1223. XAlternatively, the pattern can be quoted so that ldb interprets
  1224. Xit instead of the shell.
  1225. X\par
  1226. XThe
  1227. X{\it --myaddr}
  1228. Xcommand line option should override the
  1229. Xmyaddr line in the people file.
  1230. X\par
  1231. XVersion 1.0 of ldb only allowed the colors red,
  1232. Xwhite, and black, represented by r, w, and b,
  1233. Xrespectively.  Although ldb 1.0 will allow games
  1234. Xto be started and played correctly with different
  1235. Xcolors, the move blocks will have the string "*BAD COLOR*"
  1236. Xdisplayed where the color should be, making it difficult
  1237. Xto figure out which color you are playing.  Upgrading
  1238. Xto a newer ldb will fix this.  Nevertheless, if you
  1239. Xare playing someone who is using ldb 1.0, you may want
  1240. Xto restrict your color choices to r, w, and b.
  1241. X\par
  1242. XOccasionally, ldb will print a spurious message telling
  1243. Xyou that you only have one legal move.  Usually when it prints
  1244. Xthis, it is right, but in the special case where you have one
  1245. Xpiece left to bear off, one of your rolls is less than
  1246. Xyou need to bear it off, and the other roll is big enough
  1247. Xto bear off by itself, ldb will want you to use the smaller
  1248. Xdie first, then bear off with the bigger one.  This is consistent
  1249. Xwith the rules that say you must use both dice if you can,
  1250. Xbut is not correct in this case.  Note that you can either
  1251. Xuse both dice like ldb wants, or ignore the message and bear
  1252. Xoff with the larger die.  Your move will be accepted either way.
  1253. X%
  1254. X% end of input file: ldb.man
  1255. X%--------------------------------------------------
  1256. X\end{document}
  1257. END_OF_FILE
  1258. if test 48103 -ne `wc -c <'ldb-man.tex'`; then
  1259.     echo shar: \"'ldb-man.tex'\" unpacked with wrong size!
  1260. fi
  1261. # end of 'ldb-man.tex'
  1262. fi
  1263. echo shar: End of archive 12 \(of 12\).
  1264. cp /dev/null ark12isdone
  1265. MISSING=""
  1266. for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
  1267.     if test ! -f ark${I}isdone ; then
  1268.     MISSING="${MISSING} ${I}"
  1269.     fi
  1270. done
  1271. if test "${MISSING}" = "" ; then
  1272.     echo You have unpacked all 12 archives.
  1273.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1274. else
  1275.     echo You still need to unpack the following archives:
  1276.     echo "        " ${MISSING}
  1277. fi
  1278. ##  End of shell archive.
  1279. exit 0
  1280.  
  1281. exit 0 # Just in case...
  1282.