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

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