home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / ldb / part15 < prev    next >
Encoding:
Internet Message Format  |  1993-04-07  |  48.2 KB

  1. Path: uunet!zaphod.mps.ohio-state.edu!usc!news.service.uci.edu!unogate!mvb.saic.com!dayton.saic.com!dayvd.dayton.saic.com!ake
  2. From: ake@dayvd.dayton.saic.com (Earle Ake)
  3. Newsgroups: vmsnet.sources.games
  4. Subject: ldb - Long Distance Backgammon [15/16]
  5. Date: 8 Apr 93 11:06:38 EST
  6. Organization: Science Applications Intl Corp - Dayton, OH
  7. Lines: 1149
  8. Message-ID: <1993Apr8.110638.1@dayvd.dayton.saic.com>
  9. NNTP-Posting-Host: dayvd.dayton.saic.com
  10. Xref: uunet vmsnet.sources.games:676
  11.  
  12. -+-+-+-+-+-+-+-+ START OF PART 15 -+-+-+-+-+-+-+-+
  13. X`09char`09opdir;`09`09`09/*`201/-1`20direction`20opponent`20is`20moving`20*/
  14. X`09int`09gameval;`09`09/*`20current`20value`20of`20game`20*/
  15. X`09int`09adcnt;`09`09`09/*`20current`20number`20of`20autodoubles`20*/
  16. X`09int`09admax;`09`09`09/*`20max`20autodoubles`20allowed`20*/
  17. X`09int`09flags;`09`09`09/*`20various`20flags`20(F_*)`20*/
  18. X`09int`09opver;`09`09`09/*`20opponent's`20ldb`20version`20*/
  19. X`09char`09state;`09`09`09/*`20my`20current`20state`20(ST_*)`20*/
  20. X`09char`09term;`09`09`09/*`20if`20game`20over,`20why`20(T_*)`20*/
  21. X`09int`09seq;`09`09`09/*`20sequence`20number`20of`20next`20pkt`20*/
  22. X`09int`09lastop;`09`09`09/*`20last`20opcode`20sent`20(for`20resends)`20*/
  23. X`09char`09*mycmt;`09`09`09/*`20comment`20I`20sent`20with`20last`20move`20*/
  24. X`09char`09*mycmt2;`09`09/*`20second`20line`20of`20mycmt`20*/
  25. X`09char`09*opcmt;`09`09`09/*`20comment`20I`20received`20with`20last`20move`20*
  26. V/
  27. X`09char`09*opcmt2;`09`09/*`20second`20line`20of`20opcmt`20*/
  28. X`09char`09*dispmsg;`09`09/*`20msg`20to`20display`20when`20game`20drawn`20*/
  29. X`09struct`20mv`20opmvs`5B4`5D;`09`09/*`20opponent's`20last`20move`20*/
  30. X`09char`09blot`5B4`5D;`09`09/*`20my`20blots`20that`20were`20hit`20*/
  31. X`09struct`20mv`20mvs`5B4`5D;`09`09/*`20my`20move,`20holds`20roll`20until`20I
  32. V`20move`20*/
  33. X`09int`09maxused;`09`09/*`20#`20of`20rolls`20in`20mvs`20that`20can`20be`20used
  34. V*/
  35. X`09int`09hiused;`09`09`09/*`20highest`20roll`20that`20can`20be`20used`20*/
  36. X`09board`09opbd;`09`09`09/*`20board`20image`20before`20opmvs`20applied`20*/
  37. X`09board`09mybd;`09`09`09/*`20board`20before`20mvs`20(for`20Reset)`20*/
  38. X`09board`09board;`09`09`09/*`20current`20board`20image`20*/
  39. X`09char`09curbd;`09`09`09/*`20which`20brd`20is`20currently`20displayed`20*/
  40. X`09int`09rolls`5B6`5D;`09`09/*`20how`20many`20of`20each`20roll`20we`20get`20*/
  41. V
  42. X`09int`09doubles`5B6`5D;`09`09/*`20how`20many`20of`20each`20double`20we`20get
  43. V`20*/
  44. X`09int`09oprolls`5B6`5D;`09`09/*`20how`20many`20of`20each`20roll`20op`20gets
  45. V`20*/
  46. X`09int`09opdoubles`5B6`5D;`09`09/*`20how`20many`20of`20each`20double`20op`20ge
  47. Vts`20*/
  48. X`09long`09starttime;`09`09/*`20time`20START`20packet`20was`20sent`20*/
  49. X`09long`09lastacc;`09`09/*`20last`20time`20game`20was`20accessed`20*/
  50. X`09int`09mcurrent`5B2`5D;`09`09/*`20current`20match`20scores`20for`20me`20`26
  51. V`20op`20*/
  52. X`09int`09mtotal;`09`09`09/*`20match`20score`20we`20are`20playing`20to`20*/
  53. X`09char`09*notify;`09`09/*`20address`20to`20mail`20to`20when`20game`20over`20*
  54. V/
  55. X`09struct`20people`20*ppl;`09`09/*`20side`20pointer`20to`20people`20record`20*
  56. V/
  57. X`09struct`20game`20*prev;`09`09/*`20back`20link`20in`20game`20list`20*/
  58. X`09struct`20game`20*next;`09`09/*`20forward`20link`20in`20game`20list`20*/
  59. X`09`7D;
  60. X
  61. Xstruct`20packet`20`7B
  62. X`09int`09version;`09`09/*`20ldb`20version`20*/
  63. X`09long`09timestamp;`09`09/*`20time`20packet`20was`20sent`20*/
  64. X`09char`09*gameid;`09`09/*`20the`20gameid`20string`20*/
  65. X`09int`09opcode;`09`09`09/*`20operation`20being`20performed`20*/
  66. X`09char`09*name;`09`09`09/*`20name`20*/
  67. X`09char`09*addr;`09`09`09/*`20mail`20address`20*/
  68. X`09char`09*comment;`09`09/*`20comment`20received`20*/
  69. X`09char`09*comment2;`09`09/*`20second`20line`20of`20comment`20*/
  70. X`09int`09seq;`09`09`09/*`20sequence`20number`20*/
  71. X`09char`09*colors;`09`09/*`20colors`20of`20new`20game`20*/
  72. X`09char`09*dir;`09`09`09/*`20direction`20of`20game`20starter`20*/
  73. X`09char`09*autodbl;`09`09/*`20autodouble`20count`20(sprintf'ed)`20*/
  74. X`09struct`20mv`20mvs`5B4`5D;`09`09/*`20moves`20(if`20opcode`20==`20MOVE)`20*/
  75. X`09char`09*jacoby;`09`09/*`20yes=jacoby`20rule`20in`20effect`20*/
  76. X`09char`09*crawford;`09`09/*`20yes=crawford`20rule`20in`20effect`20*/
  77. X`09char`09*european;`09`09/*`20yes=european`20rule`20in`20effect`20*/
  78. X`09char`09*perm;`09`09`09/*`20yes=permanent`20game`20*/
  79. X`09char`09*match;`09`09`09/*`20number`20of`20points`20in`20match`20*/
  80. X`09char`09*notify;`09`09/*`20address`20to`20notify`20when`20game`20ends`20*/
  81. X`09struct`20game`20*gameptr;`09`09/*`20not`20a`20pkt`20field,`20set`20by`20get
  82. Vpkt()`20*/
  83. X`09`7D;
  84. X
  85. Xstruct`20people`20`7B`09`09`09`09/*`20people`20we`20play`20with`20*/
  86. X`09char`09*name;`09`09`09/*`20person's`20name`20*/
  87. X`09char`09*addr;`09`09`09/*`20person's`20mail`20address`20*/
  88. X`09char`09*alias;`09`09`09/*`20person's`20nickname`20*/
  89. X`09char`09*myaddr;`09`09/*`20my`20addr`20for`20this`20person`20*/
  90. X`09char`09*equiv;`09`09`09/*`20equiv`20name`20for`20ppl`20w/`20mult`20addr`20*
  91. V/
  92. X`09long`09fence;`09`09`09/*`20start`20time`20of`20newest`20finished`20game*/
  93. X`09int`09score`5B10`5D;`09`09/*`20won/lost`20record,`20see`20SC_*`20*/
  94. X`09struct`20people`20*next;`09`09/*`20forward`20link`20*/
  95. X`09`7D;
  96. X
  97. Xstruct`20legal`20`7B`09`09`09`09/*`20list`20of`20legal`20moves`20*/
  98. X`09int`20nmove;`09`09`09/*`20number`20of`20moves`20in`20this`20entry`20*/
  99. X`09int`20himove;`09`09`09/*`20highest`20roll`20used`20in`20this`20entry`20*/
  100. X`09struct`20mv`20mvs`5B4`5D;`09`09/*`20the`20rolls`20and`20moves`20*/
  101. X`09struct`20legal`20*prev;`09`09/*`20pointer`20to`20the`20previous`20entry`20*
  102. V/
  103. X`09struct`20legal`20*next;`09`09/*`20pointer`20to`20the`20previous`20entry`20*
  104. V/
  105. X`09`7D;
  106. X
  107. Xextern`20int`20Pflag;`09`09`09/*`20should`20I`20process`20local`20input?`20*/
  108. Xextern`20int`20Rflag;`09`09`09/*`20should`20I`20look`20for`20mail?`20*/
  109. Xextern`20struct`20game`20*ghead;`09`09/*`20head`20of`20linked`20list`20of`20ga
  110. Vmes`20*/
  111. Xextern`20struct`20game`20*gtail;`09`09/*`20tail`20of`20linked`20list`20of`20ga
  112. Vmes`20*/
  113. Xextern`20struct`20legal`20*lhead;`09`09/*`20head`20of`20list`20of`20legal`20mo
  114. Vves`20*/
  115. Xextern`20struct`20legal`20*ltail;`09`09/*`20tail`20of`20list`20of`20legal`20mo
  116. Vves`20*/
  117. Xextern`20int`20(*func`5BOPSTATES`5D`5BNOP`5D)();`09/*`20receive`20state`20mach
  118. Vine`20*/
  119. Xstruct`20ldbrc`20rc;`09`09`09/*`20stuff`20from`20.ldbrc`20*/
  120. Xextern`20struct`20opt`20options`5B`5D;`09`09/*`20command`20line`20options`20*/
  121. V
  122. Xextern`20char`20*rejlcl`5B`5D;`09`09`09/*`20error`20messages`20for`20local`20p
  123. Vlayer`20*/
  124. Xextern`20char`20*rejmsg`5B`5D;`09`09`09/*`20error`20messages`20for`20received
  125. V`20moves`20*/
  126. Xextern`20char`20*opcodes`5B`5D;
  127. Xextern`20char`20blk76`5B`5D;`09`09`09/*`2076`20blanks`20*/
  128. Xextern`20struct`20packet`20P;`09`09`09/*`20last`20packet`20read`20*/
  129. Xextern`20char`20cr_mycolor;`09`09`09/*`20my`20color`20when`20game`20is`20creat
  130. Ved`20*/
  131. Xextern`20char`20cr_opcolor;`09`09`09/*`20opponent's`20color`20for`20new`20game
  132. Vs`20*/
  133. Xextern`20char`20cr_mydir;`09`09`09/*`20my`20direction`20for`20new`20games`20*/
  134. V
  135. Xextern`20char`20*notify;`09`09`09/*`20address`20to`20notify`20when`20game`20en
  136. Vds`20*/
  137. Xextern`20char`20*states`5B`5D;`09`09`09/*`20description`20of`20the`20states
  138. V`20*/
  139. X
  140. Xextern`20char`20FeIsActive;`09`09`09/*`20front-end`20been`20initialized?`20*/
  141. Xextern`20char`20FeWaitInit;`09`09`09/*`20non-0`20if`20message()`20called`20*/
  142. Xextern`20int`20GameState;`09`09`09/*`20Current`20game`20state`20for`20help`20*
  143. V/
  144. Xextern`20int`20boardnums`5B3`5D;`09`09/*`20board`20name`20->`20board`20number
  145. V`20*/
  146. X
  147. Xextern`20struct`20people`20*phead;`09`09/*`20head`20pointer`20of`20people`20li
  148. Vst`20*/
  149. X
  150. Xextern`20struct`20namevalue`20nv_rcfile`5B`5D,`20nv_gfile`5B`5D,`20nv_packet
  151. V`5B`5D,`20nv_pfile`5B`5D;
  152. Xextern`20struct`20namevalue`20nv_pequiv`5B`5D;
  153. X
  154. Xchar`20*tgetstr();
  155. Xchar`20*save(),`20*makeid(),`20*calloc();
  156. Xchar`20*nvscan(),`20*strchr(),`20*boardstr();
  157. Xchar`20*strchr(),`20*strrchr();
  158. Xstruct`20game`20*startgame(),`20*addgame(),`20*findgame();
  159. X
  160. Xstruct`20people`20*addppl(),`20*findppl(),`20*newppl();
  161. X
  162. Xint`20start(),`20istart(),`20tie(),`20restart(),`20mstart();
  163. Xint`20opmove(),`20opofr(),`20opconc(),`20opacpt(),`20opdec();
  164. Xint`20smerr();
  165. X
  166. Xlong`20rnd_ri();
  167. X
  168. Xchar`20FeMenu();
  169. X
  170. Xstruct`20flist`20*filelist();
  171. $ call unpack LDB.H;1 1090934642 ""
  172. $!
  173. $ create 'f'
  174. X/*`09patchlevel.h`099/9/91
  175. X`20*
  176. X`20*`20adapted`20from`20the`20file`20"patchlevel",`20which`20is`20part`20of
  177. V`20the
  178. X`20*`20"xloadimage"`20package`20by`20Jim`20Frost,`20and`20used`20within`20the
  179. V`20terms
  180. X`20*`20of`20the`20original`20copyright`20notice,`20which`20appears`20below.
  181. X`20*`20Please`20note`20that`20the`20copyright`20notice`20below`20applies`20onl
  182. Vy`20to
  183. X`20*`20this`20file.
  184. X`20*/
  185. X
  186. X/*
  187. X`20*`20Copyright`201989,`201990,`201991`20Jim`20Frost
  188. X`20*
  189. X`20*`20Permission`20to`20use,`20copy,`20modify,`20distribute,`20and`20sell`20t
  190. Vhis`20software
  191. X`20*`20and`20its`20documentation`20for`20any`20purpose`20is`20hereby`20granted
  192. V`20without`20fee,
  193. X`20*`20provided`20that`20the`20above`20copyright`20notice`20appear`20in`20all
  194. V`20copies`20and
  195. X`20*`20that`20both`20that`20copyright`20notice`20and`20this`20permission`20not
  196. Vice`20appear
  197. X`20*`20in`20supporting`20documentation.`20`20The`20author`20makes`20no`20repre
  198. Vsentations
  199. X`20*`20about`20the`20suitability`20of`20this`20software`20for`20any`20purpose.
  200. V`20`20It`20is
  201. X`20*`20provided`20"as`20is"`20without`20express`20or`20implied`20warranty.
  202. X`20*
  203. X`20*`20THE`20AUTHOR`20DISCLAIMS`20ALL`20WARRANTIES`20WITH`20REGARD`20TO`20THIS
  204. V`20SOFTWARE,
  205. X`20*`20INCLUDING`20ALL`20IMPLIED`20WARRANTIES`20OF`20MERCHANTABILITY`20AND`20F
  206. VITNESS,`20IN
  207. X`20*`20NO`20EVENT`20SHALL`20THE`20AUTHOR`20BE`20LIABLE`20FOR`20ANY`20SPECIAL,
  208. V`20INDIRECT`20OR
  209. X`20*`20CONSEQUENTIAL`20DAMAGES`20OR`20ANY`20DAMAGES`20WHATSOEVER`20RESULTING
  210. V`20FROM`20LOSS
  211. X`20*`20OF`20USE,`20DATA`20OR`20PROFITS,`20WHETHER`20IN`20AN`20ACTION`20OF`20CO
  212. VNTRACT,`20NEGLIGENCE
  213. X`20*`20OR`20OTHER`20TORTIOUS`20ACTION,`20ARISING`20OUT`20OF`20OR`20IN`20CONNEC
  214. VTION`20WITH`20THE
  215. X`20*`20USE`20OR`20PERFORMANCE`20OF`20THIS`20SOFTWARE.
  216. X`20*/
  217. X
  218. X`09/*`20REVISION`20and`20PATCHLEVEL`20can't`20be`20more`20than`209`09`09`09*/
  219. X`09/*`20due`20to`20the`20way`20the`20version`20field`20is`20coded`20in`20outgo
  220. Ving`09*/
  221. X`09/*`20messages`20(i.e.`20only`201`20digit`20each).`20`20I`20would`20suggest
  222. V`09`09*/
  223. X`09/*`20rolling`20REVISION`20if`20PATCHLEVEL`20gets`20to`209,`20and`20similarl
  224. Vy`09*/
  225. X`09/*`20rolling`20VERSION`20if`20REVISION`20gets`20to`209.`20`20VERSION`20is
  226. V`09`09*/
  227. X`09/*`20essentially`20unlimited.`09`09`09`09`09*/
  228. X
  229. X#define`20VERSION`09`091
  230. X#define`20REVISION`093`09`09/*`20no`20more`20than`209`20*/
  231. X#define`20PATCHLEVEL`090`09`09/*`20no`20more`20than`209`20*/
  232. X#define`20AUTHOR_EMAIL`09"ross@emf780.den.mmc.com"
  233. $ call unpack PATCHLEVEL.H;1 1611664587 ""
  234. $!
  235. $ create 'f'
  236. X#!`20/bin/csh`20-x
  237. Xset`20host=cs.umb.edu`20home=/u/ra/ugrad/mrubin/ldb`20user=mrubin
  238. Xsource`20/usr/local/lib/.cshrc
  239. Xset`20nonomatch`20fld='`5EFrom`20`7C`5EReturn-Path:'`20edscr=(-e`20's/<//g'
  240. V`20-e`20's/>//g')
  241. Xcd`20$home
  242. Xsetenv`20LDBRC`20$home/starter.ldbrc
  243. Xsetenv`20HOME`20$home
  244. X#`20first`20handle`20bad`20addresses.
  245. Xcd`20badaddr
  246. Xset`20f=(*)
  247. Xif`20("$f"`20==`20"*")`20set`20f=""
  248. Xforeach`20x`20($f)
  249. X`09set`20rptmp=(`60egrep`20"($fld)"`20$x`20`7C`20awk`20'`7Bprint`20$2;`7D'`20
  250. V`7C`20tail`20-1`20`7C`20sed`20$edscr`60)
  251. X`09set`20rp=$rptmp`5B$#rptmp`5D
  252. X`09set`20to=(`60fgrep`20To:`20$x`20`7C`20tail`20-1`20`7C`20sed`20's/To://g'
  253. V`60)
  254. X`09echo`20"`60date`60`20`20badaddr`09`09$rp`09$to"`20>>`20../ldbstarter.log
  255. X`09mail`20-s`20"Mail`20to`20invalid`20ldb`20address"`20$rp:q`20<<EOF
  256. X
  257. X----------------------------------------------------------------------
  258. X`09The`20following`20is`20an`20automatic`20reply`20from
  259. X`09the`20ldb`20game`20starter`20at`20$host.
  260. X
  261. X`09The`20address`20you`20sent`20to:
  262. X`09`09$to
  263. X`09is`20not`20a`20valid`20ldb`20starter`20address.`20`20For`20more`20informati
  264. Von,
  265. X`09send`20a`20message`20to`20ldb-help@$host.
  266. X----------------------------------------------------------------------
  267. X
  268. XEOF
  269. X`09rm`20$x
  270. Xend
  271. X#`20Now`20handle`20all`20requests`20for`20more`20information.
  272. Xcd`20$home/help
  273. Xset`20f=(*)
  274. Xif`20("$f"`20==`20"*")`20set`20f=""
  275. Xforeach`20x`20($f)
  276. X`09set`20rptmp=(`60egrep`20"($fld)"`20$x`20`7C`20awk`20'`7Bprint`20$2;`7D'`20
  277. V`7C`20tail`20-1`20`7C`20sed`20$edscr`60)
  278. X`09set`20rp=$rptmp`5B$#rptmp`5D
  279. X`09echo`20"`60date`60`20`20help`09`09$rp"`20>>`20../ldbstarter.log
  280. X`09mail`20-s`20"Information`20on`20automatic`20ldb`20game`20starter"`20$rp:q
  281. V`20<<EOF
  282. X
  283. X----------------------------------------------------------------------
  284. X`09The`20following`20is`20an`20automatic`20reply`20from
  285. X`09the`20ldb`20game`20starter`20at`20$host.
  286. X
  287. XWelcome`20to`20the`20automatic`20ldb`20game`20starter`20system.`20`20Ldb`20is
  288. V`20a`20program`20that
  289. Xallows`20two`20people`20to`20easily`20play`20backgammon`20by`20e-mail.`20`20Th
  290. Vis`20system
  291. Xuses`20the`20remote`20start`20capability`20of`20ldb`20to`20automatically`20sta
  292. Vrt`20a
  293. Xgame`20between`20two`20people`20of`20similar`20ability.`20`20Before`20you`20ca
  294. Vn`20use
  295. Xthe`20ldb`20starter,`20you`20will`20need`20to`20get`20and`20compile`20ldb`20on
  296. V`20your`20system.
  297. XLdb`20is`20accessible`20via`20anonymous`20ftp`20from`20ftp.uu.net`20or`20any
  298. V`20other`20host`20that
  299. Xarchives`20the`20comp.sources.misc`20newsgroup.`20`20Retrieve`20all`20parts,
  300. V`20uncompress
  301. Xthem,`20un-tar`20them,`20and`20read`20the`20file`20README`20for`20compilation
  302. V`20and
  303. Xinstallation`20instructions.`20`20Ldb`20runs`20on`20most`2032-bit`20UNIX`20sys
  304. Vtems
  305. Xand`20on`20VAXes`20under`20VMS`205.0`20or`20higher.
  306. X
  307. XTo`20use`20the`20ldb`20starter,`20simply`20send`20a`20mail`20message`20to`20on
  308. Ve`20of`20the
  309. Xfollowing`20addresses:
  310. X`09ldb-novice@$host
  311. X`09ldb-intermediate@$host
  312. X`09ldb-expert@$host
  313. Xdepending`20on`20what`20level`20of`20ability`20you`20are`20at.`20`20You`20choo
  314. Vse`20your`20level
  315. Xof`20play`20for`20yourself,`20there`20are`20no`20restrictions`20on`20which`20l
  316. Vevel`20you
  317. Xplay`20at.`20`20The`20game`20starter`20system`20does`20not`20keep`20any`20reco
  318. Vrd`20of`20your
  319. Xlevel,`20or`20whether`20you`20win`20or`20lose.`20`20It`20is`20merely`20a`20con
  320. Vvenient`20way
  321. Xto`20meet`20new`20backgammon`20players`20that`20are`20at`20more`20or`20less
  322. V`20the`20same
  323. Xlevel`20of`20ability`20as`20you`20are.`20`20It`20doesn't`20matter`20what`20you
  324. V`20put`20in
  325. Xthe`20message,`20the`20game`20starter`20only`20uses`20your`20return`20address.
  326. V
  327. XThe`20message`20can`20be`20empty`20as`20far`20as`20the`20game`20starter`20is
  328. V`20concerned,
  329. Xbut`20your`20local`20mail`20program`20may`20complain`20about`20empty`20message
  330. Vs.
  331. X
  332. XEach`20time`20you`20send`20a`20message`20to`20one`20of`20the`20above`20address
  333. Ves,`20you`20are
  334. Xmatched`20at`20random`20with`20another`20person`20who`20sent`20to`20the`20same
  335. V`20address.
  336. XEach`20message`20you`20send`20only`20starts`20one`20game.`20`20When`20you`20ar
  337. Ve`20ready`20for
  338. Xanother`20game,`20you`20must`20send`20another`20message.
  339. X
  340. XThe`20game`20starter`20will`20try`20to`20avoid`20having`20you`20play`20yoursel
  341. Vf,
  342. Xbut`20it`20cannot`20guarantee`20this`20will`20not`20happen`20if`20you`20send
  343. Xmultiple`20requests`20to`20the`20same`20address`20within`20a`20short`20time.
  344. XTo`20avoid`20this`20problem,`20only`20send`20one`20request`20at`20a`20time,
  345. V`20and
  346. Xdo`20not`20send`20another`20one`20until`20the`20first`20game`20has`20been`20st
  347. Varted.
  348. X
  349. XNote`20that`20there`20could`20be`20an`20arbitrary`20delay`20between`20when`20y
  350. Vou
  351. Xsend`20the`20message`20and`20when`20the`20game`20is`20started.`20`20The`20game
  352. V`20starter
  353. Xdoes`20not`20currently`20send`20acknowledgements`20other`20than`20the
  354. Xactual`20start`20command.`20`20This`20is`20sent`20to`20one`20of`20the`20two
  355. V`20opponents
  356. Xat`20random,`20and`20will`20not`20reach`20the`20other`20one`20until`20the`20fi
  357. Vrst
  358. Xprocesses`20it`20through`20ldb.
  359. X
  360. XThis`20system`20will`20work`20best`20with`20"pure"`20domain-style`20e-mail`20a
  361. Vddresses.
  362. XIt`20*should*`20work`20with`20UUCP`20addresses`20too,`20but`20there`20could
  363. V`20be`20problems
  364. Xwith`20this,`20since`20the`20path`20messages`20take`20to`20get`20to`20the`20ga
  365. Vme`20starter
  366. Xmay`20not`20be`20the`20same`20path`20they`20should`20take`20to`20get`20to`20yo
  367. Vur`20opponent.
  368. XIf`20you`20want`20ldb`20to`20use`20an`20address`20for`20you`20other`20than`20t
  369. Vhe`20return
  370. Xaddress`20from`20your`20message,`20put`20the`20following`20line`20in`20your
  371. V`20message:
  372. X
  373. XReturn-Path:`20address@you.wanna.use.instead
  374. X
  375. XThe`20Return-Path:`20must`20be`20at`20the`20beginning`20of`20the`20line,`20and
  376. V`20must`20be
  377. Xexactly`20as`20shown`20(case`20*is*`20significant).
  378. X
  379. XPlease`20note`20that`20this`20system`20is`20still`20experimental.`20`20If`20yo
  380. Vu`20have`20a
  381. Xproblem`20using`20it,`20or`20if`20you`20have`20questions`20about`20ldb`20or
  382. V`20the
  383. Xautomatic`20game`20starter,`20contact`20Perry`20Ross`20by`20e-mail`20at
  384. Xross@emf780.den.mmc.com`20or`20Mark`20Rubin`20by`20e-mail`20at`20mrubin@cs.umb
  385. V.edu.
  386. X
  387. XGood`20Luck!
  388. X----------------------------------------------------------------------
  389. X
  390. XEOF
  391. X`09rm`20$x
  392. Xend
  393. Xforeach`20x`20(novice`20intermediate`20expert)
  394. X`09cd`20$home/$x
  395. X`09set`20z=$x
  396. X`09if`20($x`20!=`20intermediate)`20set`20z="$x`09"
  397. X`09set`20y=(`60ls`20`7C`20head`20-2`60)
  398. X`09while`20($#y`20>`201)
  399. X`09`09set`20u1tmp=(`60egrep`20"($fld)"`20$y`5B1`5D`20`7C`20awk`20'`7Bprint`20$
  400. V2;`7D'`20`7C`20tail`20-1`20`7C`20sed`20$edscr`60)
  401. X`09`09set`20u1=$u1tmp`5B$#u1tmp`5D
  402. X`09`09set`20u2tmp=(`60egrep`20"($fld)"`20$y`5B2`5D`20`7C`20awk`20'`7Bprint`20$
  403. V2;`7D'`20`7C`20tail`20-1`20`7C`20sed`20$edscr`60)
  404. X`09`09set`20u2=$u2tmp`5B$#u2tmp`5D
  405. X`09`09if`20("$u1"`20==`20"$u2")`20then`09#`20duplicate
  406. X`09`09`09rm`20$y`5B1`5D`09`09#`20eliminate`20one`20of`20them
  407. X`09`09`09set`20y=(`60ls`20`7C`20head`20-2`60)`09#`20and`20try`20again
  408. X`09`09`09continue
  409. X`09`09endif
  410. X`09`09/u/ra/ugrad/mrubin/bin/sun4/ldb`20-remotestart`20$u1:q`20$u2:q
  411. X`09`09rm`20$y
  412. X`09`09echo`20"`60date`60`20`20$z`09$u1:q`20$u2:q"`20>>`20../ldbstarter.log
  413. X`09`09set`20y=(`60ls`20`7C`20head`20-2`60)
  414. X`09end
  415. Xend
  416. Xexit
  417. $ call unpack LDBSTARTER.CSH;1 1042688351 ""
  418. $!
  419. $ create 'f'
  420. X%`20-*-LaTeX-*-
  421. X%`20Converted`20automatically`20from`20troff`20to`20LaTeX
  422. X%`20by`20tr2latex`20($Revision:`202.2`20$$Date:`201992/04/27`2015:13:26`20$
  423. V`20by`20C.`20Engel)
  424. X%`20on`20Thu`20Jun`2011`2012:30:31`201992
  425. X%`20tr2latex`20was`20written`20by`20Kamal`20Al-Yahya`20at`20Stanford`20Univers
  426. Vity
  427. X%`20(Kamal%Hanauma@SU-SCORE.ARPA)
  428. X%`20and`20substantially`20enhanced`20by`20Christian`20Engel`20at`20RWTH`20Aach
  429. Ven
  430. X%`20(krischan@informatik.rwth-aachen.de).
  431. X%
  432. X%`20troff`20input`20file:`20ldb.man
  433. X
  434. X`5Cdocumentstyle`5Btroffman,twoside`5D`7Barticle`7D
  435. X`5Cbegin`7Bdocument`7D
  436. X%--------------------------------------------------
  437. X%`20start`20of`20input`20file:`20ldb.man
  438. X%
  439. X%`20ldb.man`09`098/4/91
  440. X%
  441. X%`20Copyright`201991`20`20Perry`20R.`20Ross
  442. X%
  443. X%`20Permission`20to`20use,`20copy,`20modify,`20and`20distribute`20this`20softw
  444. Vare`20and`20its
  445. X%`20documentation`20without`20fee`20is`20hereby`20granted,`20subject`20to`20th
  446. Ve`20restrictions
  447. X%`20detailed`20in`20the`20README`20file,`20which`20is`20included`20here`20by
  448. V`20reference.
  449. X%`20Any`20other`20use`20requires`20written`20permission`20from`20the`20author.
  450. V`20`20This`20software
  451. X%`20is`20distributed`20"as`20is"`20without`20any`20warranty,`20including`20any
  452. V`20implied
  453. X%`20warranties`20of`20merchantability`20or`20fitness`20for`20a`20particular
  454. V`20purpose.
  455. X%`20The`20author`20shall`20not`20be`20liable`20for`20any`20damages`20resulting
  456. V`20from`20the
  457. X%`20use`20of`20this`20software.`20`20By`20using`20this`20software,`20the`20use
  458. Vr`20agrees
  459. X%`20to`20these`20terms.
  460. X%
  461. X%`20VMS`20bug`20fixes`20and`20additions`20by`20Earle`20F.`20Ake`20<ake@dayton.
  462. Vsaic.com>
  463. X%
  464. X`5Cphead`7BLDB`7D`7B1`7D`7BMay`204,`201992`7D`7B`7D`7B`7D%.nh
  465. X%.nr`20si`205n
  466. X%.ie`20`5CnT`20.pl`20`5CnTv
  467. X`5Cshead`7BNAME`7D
  468. Xldb`20--`20Play`20backgammon`20by`20e--mail
  469. X`5Cshead`7BSYNOPSIS`7D
  470. Xldb`20`5Boptions`5D`20`5Binput`20files...`5D
  471. X`5Cnwl
  472. X`5Cshead`7BDESCRIPTION`7D
  473. X`7B`5Cit`20Ldb`7D
  474. Xallows`20two`20people`20to`20play`20backgammon`20over`20a
  475. Xnetwork`20using`20electronic`20mail.`20`20It`20runs`20on`20character--oriented
  476. V
  477. Xterminals,`20or`20emulators`20thereof,`20using`20the
  478. X`7B`5Cit`20curses`7D
  479. Xscreen`20package.`20`20It`20will`20run`20on`20most`20UNIX`20dialects,`20as
  480. Xwell`20as`20VAX--C`20under`20VMS`205.0`20and`20above.
  481. X`7B`5Cit`20Ldb`7D
  482. Xwill`20display`20a`20picture`20of`20the`20board,`20prompt`20the`20user`20to
  483. Xenter`20a`20move,`20check`20the`20move`20for`20legality,
  484. Xand`20send`20the`20move`20to`20the`20opponent.
  485. XWhen`20it`20arrives,`20it`20will`20be`20displayed`20on`20the`20opponent's`20sc
  486. Vreen,
  487. Xafter`20which`20the`20opponent`20will`20be`20prompted`20for`20a`20move`20to
  488. Xbe`20sent`20back.
  489. X`5Cshead`7BFEATURES`7D
  490. X`5Cbegin`7BIPlist`7D
  491. X`5CIPitem`7B`7BMultiple`5C`20Games`7D`7D
  492. X`7B`5Cit`20Ldb`7D
  493. Xcan`20keep`20track`20of`20an`20arbitrary`20number`20of`20games`20simultaneousl
  494. Vy,
  495. Xand`20will`20display`20them`20one`20at`20a`20time`20for`20you`20to`20play.
  496. XYou`20can`20exit`20from
  497. X`7B`5Cit`20ldb`7D
  498. Xat`20any`20time;`20when`20you`20run`20ldb`20again,`20it`20will`20pick`20up
  499. Xyour`20games`20where`20you`20left`20off.
  500. X`5CIPitem`7B`7BMove`5C`20Checking`7D`7D
  501. XBoth`20your`20moves`20and`20your`20opponent's`20moves`20are`20checked`20for
  502. V`20legality.
  503. XThis`20includes:
  504. X`5CIPitem`7B`7B--`7D`7D
  505. XLanding`20on`20an`20occupied`20point.
  506. X`5CIPitem`7B`7B--`7D`7D
  507. XBearing`20off`20before`20your`20inner`20table`20is`20full.
  508. X`5CIPitem`7B`7B--`7D`7D
  509. XTrying`20to`20move`20pieces`20that`20are`20on`20the`20board`20when`20you
  510. Xhave`20a`20piece`20on`20the`20bar.
  511. X`5CIPitem`7B`7B--`7D`7D
  512. XTrying`20to`20bear`20off`20a`20piece
  513. Xwhen`20there`20is`20a`20piece`20on`20a`20higher`20point,`20and
  514. Xthe`20roll`20is`20not`20being`20used`20exactly.
  515. X`5CIPitem`7B`7B--`7D`7D
  516. XTrying`20to`20leave`20a`20usable`20move`20unused.
  517. X`5CIPitem`7B`7B--`7D`7D
  518. XTrying`20to`20leave`20a`20move`20unused`20when`20it`20is`20usable`20and`20has
  519. Xa`20higher`20roll`20than`20the`20move`20that`20is`20used.
  520. X`5CIPitem`7B`7B--`7D`7D
  521. XTrying`20to`20double`20when`20you`20doubled`20last.
  522. X`5CIPitem`7B`7B--`7D`7D
  523. XTrying`20to`20double`20when`20either`20player`20is`20within`201`20point`20of
  524. Xwinning`20the`20match,`20and`20the`20Crawford`20rule`20is`20in`20effect.
  525. X`5CIPitem`7B`7BMessage`5C`20Reliability`7D`7D
  526. X`7B`5Cit`20Ldb`7D
  527. Xdetects`20(and`20rejects)`20duplicate`20messages,`20and`20can
  528. Xregenerate`20lost`20messages.
  529. X`5CIPitem`7B`7BRemote`5C`20Start`7D`7D
  530. X`7B`5Cit`20Ldb`7D
  531. Xcan`20start`20a`20game`20between`20two`20players`20on`20remote`20hosts.
  532. XThis`20is`20used`20to`20set`20up`20"game`20starter"`20hosts,
  533. Xwhere`20people`20interested`20in`20finding`20new`20opponents`20are
  534. Xmatched`20by`20some`20criteria`20(such`20as`20ability,`20or`20by`20a
  535. Xtournament`20schedule),`20and`20have`20their`20games`20started
  536. Xautomatically.`20`20For`20a`20current`20listing`20of`20game
  537. Xstarter`20hosts,`20see`20the`20README`20file.
  538. X`5CIPitem`7B`7BGame`5C`20Value`7D`7D
  539. X`7B`5Cit`20Ldb`7D
  540. Xdetects`20the`20end`20of`20the`20game,`20gammons,`20and`20backgammons,
  541. Xand`20notifies`20both`20players`20of`20the`20game`20value`20when`20the
  542. Xgame`20is`20over.`20`20The`20Jacoby`20rule`20may`20be`20enabled,
  543. Xas`20may`20European`20scoring,`20to`20calculate`20the`20game`20value
  544. Xas`20desired.
  545. X`5CIPitem`7B`7BOnline`5C`20Help`5C`20Screen`7D`7D
  546. X`7B`5Cit`20Ldb`7D
  547. Xhas`20an`20online,`20context`20sensitive`20help`20facility
  548. Xthat`20lists`20the`20available`20commands`20for`20the`20current`20screen.
  549. X`5CIPitem`7B`7BMatch`5C`20Play`7D`7D
  550. X`7B`5Cit`20Ldb`7D
  551. Xcan`20support`20matches`20that`20play`20to`20any
  552. Xdesired`20point`20total,`20and`20will`20continue`20to
  553. Xstart`20games`20until`20one`20player`20reaches`20that`20total.
  554. X`5Cend`7BIPlist`7D`5Cpar
  555. X`5Cshead`7BOPTIONS`7D
  556. X`5Cbegin`7BIPlist`7D
  557. X`5CIPitem`7B`7B%
  558. X`5Cbf`20-read`5C`20`5Crm%
  559. X`7D`7D
  560. XMail`20is`20read,`20and`20the`20games`20are`20updated`20and`20saved.
  561. XThe`20user`20is`20not`20prompted`20for`20his`20moves.
  562. X`5CIPitem`7B`7B%
  563. X`5Cbf`20-play`5C`20`5Crm%
  564. X`7D`7D
  565. XAny`20games`20that`20are`20waiting`20for`20local`20input`20are
  566. Xdisplayed`20for`20the`20user`20to`20process.`20`20No`20mail`20is`20read.
  567. X`5CIPitem`7B`7B%
  568. X`5Cbf`20-color`5C`20xy`5Crm%
  569. X`7D`7D
  570. XThe`20colors`20for`20any`20games`20started`20are`20set`20to`20x`20and`20y.
  571. XThe`20first`20color`20is`20played`20by`20the`20local`20user,`20and`20the
  572. Xother`20is`20played`20by`20the`20opponent.`20`20Legal`20color
  573. Xcharacters`20are`20any`20upper`20or`20lower`20case`20letters.
  574. XThe`20default`20is`20"--color`20rw".`20`20This`20argument`20is`20positional,
  575. Xand`20only`20affects`20games`20started`20after`20it`20has`20been`20scanned.
  576. X`5CIPitem`7B`7B%
  577. X`5Cbf`20-direction`5C`20up/down`5Crm%
  578. X`7D`7D
  579. XThe`20direction`20of`20play`20for`20any`20games`20started`20by`20the`20local
  580. V`20user
  581. Xis`20set`20to`20the`20specified`20value.
  582. XThe`20default`20is`20"--direction`20up".`20`20This`20argument`20is`20positiona
  583. Vl,
  584. Xand`20only`20affects`20games`20started`20after`20it`20has`20been`20scanned.
  585. X`5CIPitem`7B`7B%
  586. X`5Cbf`20-myaddr`5C`20addr`5Crm%
  587. X`7D`7D
  588. XYour`20mail`20address`20is`20set`20to
  589. X`7B`5Cit`20addr`7D
  590. Xfor`20games`20started`20after`20the
  591. X`7B`5Cit`20--myaddr`7D
  592. Xoption`20is`20scanned.`20`20This`20overrides`20the`20address
  593. Xspecified`20in
  594. X`7B`5Cit`20.ldbrc.`7D
  595. X`5CIPitem`7B`7B%
  596. X`5Cbf`20-start`5C`20user`5Crm%
  597. X`7D`7D
  598. XA`20game`20is`20started`20with`20the`20specified`20user.
  599. XThe
  600. X`7B`5Cit`20user`7D
  601. Xargument`20may`20be`20any`20e--mail`20address`20that`20is`20valid`20for
  602. Xyour`20host.`20`20Some`20e--mail`20addresses`20will`20need`20to`20be`20quoted
  603. Xif`20they`20contain`20shell`20metacharacters.
  604. XThe
  605. X`7B`5Cit`20user`7D
  606. Xargument`20may`20also`20be`20an
  607. X`7B`5Cit`20alias`7D
  608. Xfor`20an`20opponent`20you`20have`20played`20before.
  609. XAliases`20are
  610. Xdefined`20in`20the`20people`20file,
  611. Xand`20are`20initialized`20to`20the`20first`20name`20of
  612. Xthe`20opponent,`20with`20all`20upper-case`20letters`20changed`20to`20lower.
  613. X`5CIPitem`7B`7B%
  614. X`5Cbf`20-remotestart`5C`20user1`5C`20user2`5Crm%
  615. X`7D`7D
  616. XA`20game`20is`20started`20between`20user1`20and`20user2.`20`20The`20local
  617. Xhost`20sends`20a`20remote`20start`20message`20to`20user1`20instructing
  618. Xit`20to`20start`20a`20game`20with`20user2.`20`20The`20local`20host
  619. Xdoes`20not`20participate`20thereafter`20in`20the`20game.
  620. XFor`20the`20purposes`20of`20the`20--color`20and`20--direction`20options,
  621. Xuser1`20is`20considered`20the`20local`20user.
  622. X`5CIPitem`7B`7B%
  623. X`5Cbf`20-jacoby`5Crm%
  624. X`7D`7D
  625. XThe`20Jacoby`20rule`20is`20enabled`20for`20all`20games`20started`20after`20the
  626. V
  627. X`7B`5Cit`20--jacoby`7D
  628. Xargument`20is`20scanned.`20`20This`20rule`20specifies`20that`20gammons
  629. Xand`20backgammons`20count`20as`20single`20games`20if`20neither`20player
  630. Xdoubled`20during`20the`20game.`20`20This`20option`20may`20only`20be`20enabled
  631. Xby`20the`20user`20starting`20the`20game,`20and`20may`20not`20be`20disabled`20b
  632. Vy
  633. Xthe`20other`20player.`20`20If`20the`20opponent's`20version`20of`20ldb`20does
  634. Xnot`20support`20the`20Jacoby`20rule,`20it`20is`20disabled`20and`20the`20game
  635. Xproceeds`20as`20if`20it`20were`20never`20enabled.
  636. X`5CIPitem`7B`7B%
  637. X`5Cbf`20-crawford`5Crm%
  638. X`7D`7D
  639. XThe`20Crawford`20rule`20is`20enabled`20for`20all`20games`20started`20after`20t
  640. Vhe
  641. X`7B`5Cit`20--crawford`7D
  642. Xargument`20is`20scanned.`20`20This`20rule`20specifies`20that`20neither
  643. Xplayer`20may`20double`20if`20either`20player`20is`20within`201`20point`20of
  644. Xwinning`20the`20match.`20`20If`20match`20play`20is`20not`20enabled,`20this
  645. Xargument`20has`20no`20meaning.
  646. XThis`20option`20may`20only`20be`20enabled
  647. Xby`20the`20user`20starting`20the`20game,`20and`20may`20not`20be`20disabled`20b
  648. Vy
  649. Xthe`20other`20player.`20`20If`20the`20opponent's`20version`20of`20ldb`20does
  650. Xnot`20support`20the`20Crawford`20rule,`20it`20is`20disabled`20and`20the`20game
  651. V
  652. Xproceeds`20as`20if`20it`20were`20never`20enabled.
  653. X`5CIPitem`7B`7B%
  654. X`5Cbf`20-european`5Crm%
  655. X`7D`7D
  656. XThe`20European`20rule`20is`20enabled`20for`20all`20games`20started`20after`20t
  657. Vhe
  658. X`7B`5Cit`20--european`7D
  659. Xargument`20is`20scanned.`20`20This`20rule`20specifies`20that`20backgammons
  660. Xcount`20as`20double,`20rather`20than`20triple,`20the`20score`20shown`20on`20th
  661. Ve`20cube.
  662. XThis`20option`20may`20only`20be`20enabled
  663. Xby`20the`20user`20starting`20the`20game,`20and`20may`20not`20be`20disabled`20b
  664. Vy
  665. Xthe`20other`20player.`20`20If`20the`20opponent's`20version`20of`20ldb`20does
  666. Xnot`20support`20the`20European`20rule,`20it`20is`20disabled`20and`20the`20game
  667. V
  668. Xproceeds`20as`20if`20it`20were`20never`20enabled.
  669. X`5CIPitem`7B`7B%
  670. X`5Cbf`20-permanent`5Crm%
  671. X`7D`7D
  672. XAny`20games`20started`20after`20the
  673. X`7B`5Cit`20--european`7D
  674. Xargument`20is`20scanned`20are`20marked`20permanent.`20`20Permanent`20games
  675. Xare`20automatically`20restarted`20when`20they`20end.`20`20This`20is`20for
  676. Xpeople`20you`20play`20with`20constantly,`20and`20it`20saves`20you`20the`20trou
  677. Vble
  678. Xof`20restarting`20the`20game`20when`20it`20is`20over.
  679. XThis`20option`20may`20only`20be`20enabled
  680. Xby`20the`20user`20starting`20the`20game,`20and`20may`20not`20be`20disabled`20b
  681. Vy
  682. Xthe`20other`20player.`20`20If`20the`20opponent's`20version`20of`20ldb`20does
  683. Xnot`20support`20permanent`20games,`20the`20permanent`20flag`20is`20disabled
  684. V`20and`20the`20game
  685. Xproceeds`20as`20if`20it`20were`20never`20enabled.
  686. X`5CIPitem`7B`7B%
  687. X`5Cbf`20-match`5C`20points`5Crm%
  688. X`7D`7D
  689. XThis`20option`20enables`20match`20play`20and`20specifies`20the`20number`20of
  690. V`20points
  691. Xthe`20match`20is`20to`20play`20to.`20`20Games`20that`20are`20part`20of`20a`20m
  692. Vatch`20have`20additional
  693. Xinformation`20displayed`20above`20the`20board`20to`20show`20the`20current`20ma
  694. Vtch`20score
  695. Xand`20the`20number`20of`20points`20being`20played`20to.`20`20When`20a`20game
  696. V`20that`20is`20part
  697. Xof`20a`20match`20ends,`20and`20the`20specified`20number`20of`20points`20has
  698. V`20not`20been`20reached,
  699. Xthe`20game`20is`20restarted.
  700. XThis`20option`20may`20only`20be`20enabled
  701. Xby`20the`20user`20starting`20the`20game,`20and`20may`20not`20be`20disabled`20b
  702. Vy
  703. Xthe`20other`20player.`20`20If`20the`20opponent's`20version`20of`20ldb`20does
  704. Xnot`20support`20match`20play,`20the`20game
  705. Xproceeds`20as`20if`20it`20were`20a`20normal`20game.
  706. X`5CIPitem`7B`7B%
  707. X`5Cbf`20-broadcast`5C`20file`5Crm%
  708. X`7D`7D
  709. XThe`20specified`20file`20is`20mailed`20to`20all`20current`20opponents.
  710. XThis`20is`20useful`20for`20announcing`20vacation`20absences,`20etc.
  711. X`5Cend`7BIPlist`7D`5Cpar
  712. XThe`20default`20mode`20for`20the`20--read`20and`20--play`20options
  713. Xis`20to`20do`20both.`20`20This`20is`20also`20what`20happens`20if`20both
  714. X--read`20and`20--play`20are`20given.`20`20Any`20arguments`20not`20beginning
  715. Xwith`20--`20are`20treated`20as`20input`20files`20and`20are`20searched`20for
  716. Xincoming`20moves`20from`20opponents.`20`20It`20is`20not`20an`20error`20for
  717. Xany`20of`20these`20files`20to`20not`20exist.
  718. X`5Cbegin`7BIPlist`7D
  719. X`5CIPitem`7B`7B%
  720. X`5Cbf`20-control`5Crm%
  721. X`7D`7D
  722. XThis`20option`20puts`20ldb`20into`20a`20special`20mode`20that`20does`20not`20a
  723. Vllow
  724. Xgames`20to`20be`20played,`20but`20instead`20displays`20them`20one`20at`20a`20t
  725. Vime
  726. Xand`20allows`20certain`20"overhead"`20functions`20to`20be`20performed.
  727. XThese`20are`20described`20fully`20in`20the`20section`20titled`20"CONTROLLING
  728. V`20A`20GAME".
  729. X`5CIPitem`7B`7B%
  730. X`5Cbf`20-reconstruct`5C`20file`5Crm%
  731. X`7D`7D
  732. XThis`20option`20allows`20your`20game`20file`20to`20be`20reconstructed`20if`20y
  733. Vou`20accidentally
  734. Xclobber`20it.`20`20It`20does`20this`20by`20extracting`20the`20information`20fr
  735. Vom`20your
  736. Xopponent's`20data`20file`20and`20"reversing"`20it`20so`20you`20can`20use`20it.
  737. V
  738. XTo`20use`20the`20reconstruct`20option,`20ask`20all`20of`20your`20opponents`20t
  739. Vo`20send
  740. Xyou`20their`20.ldbdata`20files.`20`20Extract`20these`20from`20your`20mail`20in
  741. Vto`20files
  742. Xon`20your`20system,`20strip`20the`20mail`20headers,`20and`20feed`20them`20one
  743. V`20at`20a`20time
  744. Xinto`20ldb.`20`20For`20each`20game`20found`20listing`20you`20as`20the`20oppone
  745. Vnt,`20you`20will
  746. Xbe`20prompted`20to`20enter`20the`20opponent's`20e-mail`20address`20or`20alias
  747. X(and`20his`20name`20if`20he
  748. Xis`20not`20in`20your`20people`20file),`20and`20the`20game`20will`20be`20added
  749. V`20to`20your
  750. Xgame`20file.
  751. X`5CIPitem`7B`7B`7D`7D
  752. XThe`20reconstruct`20function`20cannot`20recover`20games`20that`20were`20in`20t
  753. Vhe
  754. Xprocess`20of`20starting`20(i.e.`20in`20their`20initial`20roll`20stage),`20or
  755. V`20that
  756. Xhave`20already`20completed`20(why`20bother?).`20`20Your`20opponent`20should
  757. Xread`20any`20mail`20files`20you`20sent`20before`20your`20data`20file`20got`20c
  758. Vlobbered,
  759. Xand`20should`20make`20his`20move`20and`20send`20it`20before`20sending`20you
  760. V`20his`20data`20file.
  761. XYou`20will`20not`20need`20to`20process`20the`20move`20he`20sent,`20though,`20s
  762. Vince`20all
  763. Xthat`20data`20is`20in`20his`20file`20anyway.`20`20It`20won't`20hurt`20if`20you
  764. V`20do,
  765. Xldb`20will`20just`20ignore`20it.
  766. X`5CIPitem`7B`7B%
  767. X`5Cbf`20-help`5Crm%
  768. X`7D`7D
  769. XThis`20prints`20a`20one-line`20description`20of`20each`20option,`20in`20case
  770. V`20you
  771. Xforget`20later`20on.
  772. X`5Cend`7BIPlist`7D`5Cpar
  773. X`5Cshead`7BSCREEN`7D
  774. XThe`20screen`20displays`20the`20following`20items`20of`20interest:
  775. X`5Cbegin`7BIPlist`7D
  776. X`5CIPitem`7B`7B%
  777. X`5Cbf`20Opponent`5Crm%
  778. X`7D`7D
  779. XThe`20e--mail`20address`20and`20personal`20name`20of`20the`20opponent`20are
  780. V`20displayed
  781. Xon`20the`20top`20line`20of`20the`20screen.`20`20This`20can`20help`20identify
  782. V`20the
  783. Xgame`20if`20you`20have`20many`20games`20in`20progress`20at`20once.
  784. X`5CIPitem`7B`7B%
  785. X`5Cbf`20Board`5C`20Label`5Crm%
  786. X`7D`7D
  787. X`7B`5Cit`20Ldb`7D
  788. Xdisplays`20one`20of`20three`20possible`20board`20images`20at`20a`20time;
  789. Xthe`20name`20of`20the`20board`20currently`20displayed`20is`20shown`20on
  790. Xthe`20second`20line`20of`20the`20screen,`20near`20the`20left.
  791. XThe`20significance`20of`20these`20three`20boards`20is`20explained`20below.
  792. X`5CIPitem`7B`7B%
  793. X`5Cbf`20Flags`5Crm%
  794. X`7D`7D
  795. XThis`20area`20displays`20any`20special`20rules`20in`20effect`20for
  796. Xthe`20game.`20`20Each`20special`20rule`20causes`20one`20character`20to
  797. Xbe`20displayed.`20`20These`20are:
  798. X`5Cnofill
  799. X`20`20`20`20`20J`20`20`20`20`20Jacoby`20rule
  800. X`20`20`20`20`20C`20`20`20`20`20Crawford`20rule
  801. X`20`20`20`20`20E`20`20`20`20`20European`20rule
  802. X`20`20`20`20`20P`20`20`20`20`20Permanent`20game
  803. X`5Cfill
  804. X`5CIPitem`7B`7B%
  805. X`5Cbf`20Match`5C`20Score`5Crm%
  806. X`7D`7D
  807. XThe`20current`20match`20score`20is`20displayed`20next`20to`20the`20board`20lab
  808. Vel,
  809. Xas`20is`20the`20number`20of`20points`20the`20match`20plays`20to.
  810. XIf`20the`20game`20being`20displayed`20is`20not`20part`20of`20a`20match,
  811. Xthis`20area`20is`20blanked`20out.
  812. X`5CIPitem`7B`7B%
  813. X`5Cbf`20Pip`5C`20Count`5Crm%
  814. X`7D`7D
  815. XNear`20the`20right`20of`20the`20screen`20on`20the`20second`20line`20is`20the
  816. Xpip`20count`20for`20the`20board`20being`20displayed.
  817. X`5CIPitem`7B`7B%
  818. X`5Cbf`20Board`5Crm%
  819. X`7D`7D
  820. XThe`20board`20is`20displayed`20near`20the`20left`20side`20of`20the`20screen,
  821. V`20and`20takes
  822. Xup`20most`20of`20the`20screen`20area.`20`20It`20consists`20of`20an`20outline,
  823. V`20drawn
  824. Xwith`20ASCII`20characters,`20and`2028`20"points"`20where`20pieces`20can`20resi
  825. Vde.
  826. XOf`20these,`2024`20are`20the`20normal`20points`20making`20up`20the`20main`20bo
  827. Vdy`20of`20the
  828. Xboard`20(numbered`201--24),
  829. X2`20are`20the`20"BAR"`20points,`20located`20between`20the`20left
  830. Xand`20right`20halves`20of`20the`20main`20board,`20and`202`20are`20the`20"OFF"
  831. Xpoints`20(where`20pieces`20go`20when`20they`20are`20borne`20off),`20located
  832. V`20to`20the
  833. Xleft`20of`20the`20board.`20`20Pieces`20are`20represented`20by`20upper`20or`20l
  834. Vower`20case`20letters.
  835. XTo`20help`20you`20remember`20which`20direction`20you
  836. Xare`20playing,`20there`20are`20arrows`20drawn`20at`20the`20four`20corners`20of
  837. V`20the
  838. Xboard`20indicating`20your`20direction`20of`20play.
  839. X`5CIPitem`7B`7B%
  840. X`5Cbf`20Doubling`5C`20Cube`5Crm%
  841. X`7D`7D
  842. XThe`20current`20value`20of`20the`20doubling`20cube`20is`20displayed`20in`20rev
  843. Verse
  844. Xvideo`20on`20the`20left`20side`20of`20the`20screen.`20`20The`20cube`20will`20a
  845. Vppear
  846. Xnext`20to`20the`20home`20board`20of`20the`20owner`20of`20the`20cube,
  847. Xor`20in`20the`20middle`20if`20neither`20player
  848. Xhas`20doubled.`20`20For`20example,`20if`20the`20player`20whose`20home`20board
  849. V`20is
  850. Xat`20the`20bottom`20of`20the`20screen`20doubled`20last,`20the`20cube`20will
  851. V`20appear
  852. Xbeside`20the`20top`20of`20the`20board.
  853. X`5CIPitem`7B`7B%
  854. X`5Cbf`20Move`5C`20Blocks`5Crm%
  855. X`7D`7D
  856. XThe`20move`20blocks`20are`20located`20on`20the`20right`20of`20the`20screen.
  857. V`20`20There
  858. Xare`20two`20move`20blocks;`20one`20for`20you,`20and`20one`20for`20your`20oppon
  859. Vent.
  860. XYou`20will`20use`20your`20move`20block`20to`20enter`20your`20moves,`20and`20yo
  861. Vu`20will
  862. Xsee`20your`20opponent's`20moves`20displayed`20in`20his`20move`20block.`20`20A
  863. V`20move
  864. Xblock`20consists`20of`20a`20header,`20which`20identifies`20the`20owner`20of
  865. V`20the
  866. Xmove`20block,`20and`20two`20columns`20of`20either`20two`20or`20four`20lines.
  867. XEach`20line`20in`20a`20move`20block`20is`20one`20roll,`20and`20shows`20the`20v
  868. Value
  869. Xof`20the`20roll`20(in`20the`20range`201--6)`20and`20how`20that`20roll`20has
  870. V`20been`20used.
  871. XIf`20doubles`20were`20rolled,
  872. Xthe`20third`20and`20fourth`20lines`20will`20also
  873. Xbe`20used`20to`20display`20the`20two`20additional`20rolls`20that`20may`20be
  874. V`20used.
  875. X`5CIPitem`7B`7B%
  876. X`5Cbf`20Command`5C`20Box`5Crm%
  877. X`7D`7D
  878. XThe`20bottom`20right`20corner`20of`20the`20screen`20contains`20a`20small`20box
  879. V
  880. Xthat`20displays`20the`20commands`20that`20are`20legal`20at`20any`20given`20tim
  881. Ve.
  882. XYou`20can`20execute`20a`20command`20by`20typing`20the`20first`20letter;`20you
  883. Xshould`20not`20hit`20return`20afterwards.`20`20There`20may`20be`20legal`20comm
  884. Vands
  885. Xother`20than`20those`20shown`20in`20the`20command`20box,`20depending`20on
  886. Xthe`20state`20the`20game`20is`20in.`20`20Press`20"h"`20or`20"?"`20for`20a`20co
  887. Vmplete`20listing
  888. Xof`20legal`20commands.
  889. X`5CIPitem`7B`7B%
  890. X`5Cbf`20Message`5C`20Area`5Crm%
  891. X`7D`7D
  892. XThe`20bottom`206`20lines`20of`20the`20screen`20are`20reserved`20for`20messages
  893. V`20of
  894. Xvarious`20types.`20`20The`20bottom`20line`20is`20used`20for`20error`20and`20in
  895. Vformative
  896. Xmessages`20that`20occur`20as`20a`20game`20is`20played.`20`20The`20top`20line
  897. V`20in`20this
  898. Xarea`20displays`20messages`20pertaining`20to`20the`20status`20of`20a`20game,
  899. V`20such`20as
  900. Xblots`20hit`20by`20an`20opponent's`20move.`20`20The`20remaining`204`20lines
  901. V`20are`20used`20to
  902. Xenclose`20a`20message`20to`20your`20opponent`20with`20your`20move,`20and`20to
  903. V`20display
  904. Xthe`20one`20your`20opponent`20sent`20to`20you.`20`20These`20messages`20may`20b
  905. Ve`20up`20to
  906. X2`20lines`20of`2056`20characters.
  907. X`5Cend`7BIPlist`7D`5Cpar
  908. X`5Cshead`7BSTARTUP`20FILE`7D
  909. XThe`20first`20time`20you`20run
  910. X`7B`5Cit`20ldb,`7D
  911. Xit`20will`20ask`20you`20if`20you`20want`20to
  912. Xcreate`20a
  913. X`7B`5Cit`20.ldbrc`7D
  914. Xfile.`20`20You`20should`20answer`20"yes",`20unless`20you`20have`20a`20reason
  915. Xnot`20to.`20`20If`20you`20want`20the`20ldb`20startup`20file`20to`20be`20named
  916. V`20something
  917. Xother`20than
  918. X`7B`5Cit`20.ldbrc,`7D
  919. Xyou`20should`20set`20the`20environment`20variable`20LDBRC`20to`20the
  920. Xname`20you`20want`20before
  921. Xrunning`20ldb`20for`20the`20first`20time.
  922. XIf`20you`20do`20this,`20the`20LDBRC`20variable`20must`20be`20set
  923. Xevery`20time`20you`20run`20ldb.
  924. X`7B`5Cit`20Ldb`7D
  925. Xmoves`20to`20the`20directory`20in`20the`20HOME`20environment`20variable,
  926. Xif`20it`20is`20set,`20before`20accessing`20any`20files.
  927. XThis`20makes`20all`20files`20(including`20.ldbrc)`20relative
  928. Xto`20`5C$HOME.
  929. X`5Cpar
  930. XThe
  931. X`7B`5Cit`20.ldbrc`7D
  932. Xis`20organized`20as`20a`20sequence`20of`20name/value`20pairs,`20one`20per`20li
  933. Vne,
  934. Xin`20the`20format
  935. X`7B`5Cit`20name=value`20.`7D
  936. XThere`20should`20be`20no`20spaces`20before
  937. X`7B`5Cit`20name`7D
  938. Xor`20before`20or`20after`20the`20equals`20sign.`20`20Comments`20are`20indicate
  939. Vd
  940. Xby`20a`20pound`20sign`20(`5C#)`20in`20column`201,`20and`20extend`20to`20the
  941. V`20end`20of`20the`20line.
  942. XThe`20following`20names`20are`20defined:
  943. X`5Cbegin`7BIPlist`7D
  944. X`5CIPitem`7B`7Bmyname`7D`7D
  945. XThis`20line`20is`20where`20you`20enter`20your`20(human)`20name.
  946. XIt`20is`20sent`20to`20your`20opponent`20when`20a`20game`20is`20started,`20to
  947. Xmake`20things`20a`20little`20more`20personal.`20`20You`20can`20put`20anything
  948. Xyou`20like`20here,`20of`20course,`20but`20I`20highly`20recommend`20you`20just
  949. Xstick`20to`20your`20name.
  950. XThe
  951. X`7B`5Cit`20myname`7D
  952. Xline`20is`20mandatory;`20if`20you`20don't`20want`20your`20name
  953. Xsent`20to`20people,`20you`20can`20just`20put`20your`20email`20address`20instea
  954. Vd,
  955. Xbut`20you`20must`20have`20something.
  956. X`5CIPitem`7B`7Bmyaddr`7D`7D
  957. XThis`20line`20defines`20your`20e--mail`20address.`20`20This`20is`20sent`20to
  958. V`20your
  959. Xopponent`20when`20you`20start`20a`20game`20so`20they`20know`20how`20to`20send
  960. Xmail`20back`20to`20you.`20`20For`20people`20with`20multiple`20mail`20paths,
  961. V`20put
  962. Xthe`20one`20here`20you`20use`20the`20most`20(e.g.`20the`20Internet`20domain--s
  963. Vtyle
  964. Xpath),`20and`20for`20games`20that`20need`20to`20use`20a`20different`20address,
  965. V
  966. Xuse`20the
  967. X`7B`5Cit`20--myaddr`7D
  968. Xcommand`20line`20argument`20to`20override`20the`20path`20in
  969. X`7B`5Cit`20.ldbrc.`20Note`20that`20the`20first`20time`20you`20start`20a`20game
  970. V`7D
  971. Xwith`20someone,`20the`20address`20you`20use`20is`20saved`20in`20your
  972. Xpeople`20file.`20`20Subsequent`20games`20you`20start`20with`20this`20person
  973. Xautomatically`20use`20this`20same`20address,`20so`20the
  974. X`7B`5Cit`20--myaddr`7D
  975. Xoption`20will`20be`20unnecessary.
  976. XThe
  977. X`7B`5Cit`20myaddr`7D
  978. Xline`20is`20mandatory.
  979. X`5CIPitem`7B`7Bpeoplefile`7D`7D
  980. XThis`20line`20sets`20the`20file`20name`20that`20is`20used`20to`20store`20infor
  981. Vmation
  982. Xabout`20your`20opponents.`20`20In`20addition`20to`20storing`20your`20opponents
  983. V'
  984. Xnames,`20addresses,`20and`20aliases,`20it`20records`20the`20number`20of
  985. Xgames,`20points,`20gammons,`20backgammons,`20and`20matches`20you`20have
  986. Xwon`20or`20lost`20to`20that`20opponent.`20`20It`20also`20stores`20something
  987. Xcalled`20the
  988. X`7B`5Cit`20fence,`7D
  989. Xwhich`20is`20the`20start`20time`20of`20the`20most`20recently`20finished`20game
  990. V.
  991. XThis`20allows`20start`20messages`20from`20old`20games`20to`20be`20discarded.
  992. XThe`20peoplefile`20line`20is`20optional,`20and`20if`20it`20is`20not`20given,
  993. Xthe`20people`20file`20defaults`20to
  994. X`7B`5Cit`20.ldbpeople.`7D
  995. X`5CIPitem`7B`7Bgamefile`7D`7D
  996. XThis`20line`20sets`20the`20file`20name`20that`20is`20used`20to`20store`20games
  997. V
  998. Xin`20progress.`20`20It`20is`20optional,`20and`20if`20it`20is`20not`20given,
  999. V`20the
  1000. Xgame`20file`20defaults`20to
  1001. X`7B`5Cit`20.ldbdata.`7D
  1002. XMy`20advice,`20if`20you`20care,`20is`20that`20you`20should`20avoid
  1003. Xusing`20a`20file`20name`20containing`20the`20string
  1004. X`7B`5Cit`20games`7D
  1005. Xor`20any`20other`20giveaway`20string`20that`20would`20let`20your`20boss,`20sys
  1006. Vadmin,
  1007. Xor`20other`20local`20Nazi--type`20know`20that`20you're`20using
  1008. Xa`20very`20expensive`20piece`20of`20high--tech`20equipment`20to`20goof`20off,
  1009. Xwhen`20you`20could`20do`20that`20with`20nothing`20more`20exotic`20than
  1010. Xa`20rubber`20band`20and`20some`20spitballs.
  1011. X`5CIPitem`7B`7Bbackupfile`7D`7D
  1012. XThis`20is`20the`20file`20your`20old
  1013. X`7B`5Cit`20gamefile`7D
  1014. Xwill`20be`20moved`20to`20just`20before`20a`20new
  1015. Xone`20is`20created.`20`20It`20defaults`20to
  1016. X`7B`5Cit`20.oldldbdata.`7D
  1017. X`5CIPitem`7B`7Bmailfile`7D`7D
  1018. XThis`20line`20is`20where`20you`20tell`20ldb`20how`20to`20find`20the`20mail`20m
  1019. Vessages
  1020. Xyour`20opponents`20have`20sent.`20`20There`20are`20several`20ways`20to`20do
  1021. V`20this.
  1022. XThe`20simplest`20one`20is`20to`20just`20put
  1023. Xsome`20file`20name`20here`20(the`20default`20is`20ldb.rcv)`20and,`20when`20you
  1024. V`20receive
  1025. Xmail`20containing`20an
  1026. Xldb
  1027. Xmove,`20just`20save`20it`20to`20this`20file.`20`20When`20you`20are`20done`20re
  1028. Vading`20your`20mail,
  1029. Xrun`20ldb,`20and`20it`20will`20scan`20this`20file`20and`20extract`20all`20your
  1030. V`20incoming
  1031. Xmoves.`20`20If`20your`20mail`20program`20is`20like`20most,`20it`20will
  1032. Xappend`20messages`20if`20the`20file`20you`20are`20saving`20to`20already`20exis
  1033. Vts,
  1034. Xwhich`20is`20just`20what`20you`20want.
  1035. X`7B`5Cit`20Ldb`7D
  1036. Xwill`20silently`20ignore`20moves`20that`20it`20has`20already`20seen`20for`20ga
  1037. Vmes`20in
  1038. Xprogress,`20so`20you`20don't`20have`20to`20clean`20them`20out`20of`20your`20ma
  1039. Vilfile
  1040. Xif`20you`20don't`20want`20to.
  1041. XNote`20however`20that`20if`20anything`20happens`20to`20your`20people`20file,
  1042. Xand`20you`20have`20old`20start`20messages`20in`20your`20input`20file,
  1043. Xldb`20could`20start`20a`20spurious`20game`20(i.e.`20one`20your`20opponent's
  1044. V`20ldb
  1045. Xknows`20nothing`20about).`20`20Also,`20if`20your`20input`20file`20gets`20reall
  1046. Vy`20long,
  1047. Xldb`20will`20take`20a`20while`20to`20start`20up.
  1048. XSo`20the`20best`20course`20is`20to`20delete`20all`20messages
  1049. Xafter`20ldb`20has`20read`20them.
  1050. X`5CIPitem`7B`7B`7D`7D
  1051. XFor`20UNIX`20users,`20a`20much`20easier`20way
  1052. Xis`20to`20set`20the`20mailfile`20to`20point`20to`20your
  1053. Xactual`20mail`20file`20(e.g.`20/usr/spool/mail/`5C$USER),`20and`20let`20ldb
  1054. Xscan`20your`20mail`20directly.`20`20This`20will`20only`20work`20if`20your`20sy
  1055. Vstem
  1056. Xkeeps`20mail`20in`20ASCII`20format,`20but`20many`20do.`20`20Ldb`20will`20not
  1057. Xdelete`20these`20messages`20from`20your`20mail
  1058. Xso`20you`20will`20have`20to.
  1059. X`5CIPitem`7B`7B`7D`7D
  1060. XThe`20third`20option`20is`20to`20set`20the`20mailfile`20to`20a`20pattern`20ins
  1061. Vtead
  1062. Xof`20a`20filename.`20`20Ldb`20will`20scan`20all`20matching`20files`20for`20mov
  1063. Ves.
  1064. XThis`20is`20good`20for`20mailers`20that`20don't`20append`20on`20save,`20and
  1065. Xdon't`20store`20in`20ascii`20format,`20such`20as`20on`20VMS.`20`20Note`20that
  1066. Xon`20VMS,`20if`20no`20version`20number`20is`20defined,`20mailfile`20defaults
  1067. Xto`20scanning`20all`20versions.
  1068. XVMS`20users`20should`20read`20the`20section`20entitled`20"VMS`20NOTES"
  1069. Xfor`20more`20information`20on`20extracting`20mail.
  1070. X`5CIPitem`7B`7Bdelmail`7D`7D
  1071. XThis`20option`20causes`20any`20mail`20files`20scanned`20by`20ldb`20to`20be`20r
  1072. Vemoved`20after
  1073. Xthey`20have`20been`20scanned.`20`20This`20is`20a`20hideously`20dangerous`20opt
  1074. Vion,
  1075. Xso`20I`20recommend`20you`20try`20it`20in`20a`20friend's`20account`20first.
  1076. XIt`20will`20delete`20ANY`20file`20that`20matches`20the`20pattern`20specified
  1077. V`20in
  1078. Xthe`20mailfile`20line,`20with`20the`20exception`20that,`20under`20UNIX,
  1079. Xit`20will`20refuse`20to`20delete`20any`20file`20starting`20with`20"/".
  1080. XUse`20it`20with`20great`20care.`20`20This`20option`20defaults`20to`20no;
  1081. Xto`20enable`20it,`20set`20it`20to`20"yes".
  1082. X`5CIPitem`7B`7Blockfile`7D`7D
  1083. XThis`20line`20sets`20the`20name`20of`20the`20ldb`20lock`20file.
  1084. XIt`20defaults`20to
  1085. X".ldb`5C_lock",
  1086. Xand`20there's`20no
  1087. Xreal`20reason`20to`20change`20it`20unless`20by`20some`20chance`20it`20conflict
  1088. Vs
  1089. Xwith`20a`20file`20name`20you`20might`20use.
  1090. XWhen`20ldb`20starts,`20it`20checks`20to`20see`20if`20this`20file`20exists;
  1091. Xif`20it`20does,`20ldb`20exits.`20`20Otherwise,`20it`20creates`20it`20and`20goe
  1092. Vs`20on.
  1093. XThis`20prevents`20more`20than`20one`20ldb`20from`20running`20in`20the`20same
  1094. Xaccount`20at`20the`20same`20time,`20and`20thereby`20garbling`20the`20data`20fi
  1095. Vles.
  1096. X`5CIPitem`7B`7Bsendcmd`7D`7D
  1097. XThis`20tells`20ldb`20how`20to`20send`20a`20file`20with`20your`20particular
  1098. Xmail`20command.`20`20This`20string`20is`20passed`20to`20the`20system,`20after
  1099. V`20making`20the
  1100. Xfollowing`20substitutions:
  1101. X`5CIPitem`7B`7B`5C`20`5C`20`5C`20`5C`20`5C`20`5C$a`7D`7D
  1102. Xis`20substituted`20with`20the`20address`20to`20mail`20to.
  1103. X`5CIPitem`7B`7B`5C`20`5C`20`5C`20`5C`20`5C`20`5C$f`7D`7D
  1104. Xis`20substituted`20with`20the`20file`20containing`20the`20message.
  1105. X`5CIPitem`7B`7B`5C`20`5C`20`5C`20`5C`20`5C`20`5C$s`7D`7D
  1106. Xis`20substituted`20with`20the`20subject`20of`20the`20message.
  1107. X`5CIPitem`7B`7B`7D`7D
  1108. XMost`20mail`20systems`20will`20work`20fine`20with`20the`20default,`20which`20i
  1109. Vs
  1110. X`5Cnofill
  1111. X`20`20`20`20`20mail`20--s`20'`5C$s'`20`5C$a`20$<$`20`5C$f
  1112. X`5Cfill
  1113. X`5CIPitem`7B`7B`7D`7D
  1114. Xor,`20on`20VMS,
  1115. X`5Cnofill
  1116. X`20`20`20`20`20MAIL/SUBJECT="`5C$s"`20`5C$f`20IN`5C%"""$<$`5C$a$>$"""
  1117. X`5Cfill
  1118. X`5CIPitem`7B`7B`7D`7D
  1119. XNote`20that`20the`20`5C$`20substitutions`20are
  1120. Xmade`20by`20ldb,`20not`20by`20a`20shell,`20and`20thus`20are`20not`20subject
  1121. V`20to
  1122. Xany`20quoting.`20`20If`20you`20need`20a`20`5C$`20in`20the`20string,`20use`20
  1123. V`5C$`5C$.
  1124. XVMS`20users`20may`20need`20to`20change`20the`20name`20of`20the`20SMTP`20mailer
  1125. V;
  1126. Xfor`20example,`20to`20send`20mail`20using`20Wollongong`20TCP/IP,`20you`20would
  1127. V
  1128. Xuse`20the`20string
  1129. X`5CIPitem`7B`7B`7D`7D
  1130. X`5Cnofill
  1131. X`20`20`20`20`20MAIL/SUBJECT="`5C$s"`20`5C$f`20WINS`5C%"""$<$`5C$a$>$"""
  1132. X`5Cfill
  1133. X`5CIPitem`7B`7Btempfile`7D`7D
  1134. XThis`20line`20specifies`20a`20temporary`20file`20that`20ldb`20can`20use`20to
  1135. V`20compose
  1136. Xmail`20messages.`20`20The`20file`20will`20be`20created`20in`20your`20home`20di
  1137. Vrectory,
  1138. Xthus`20avoiding`20file`20name`20conflicts`20in`20/tmp.`20`20It`20defaults`20to
  1139. V`20ldb.tmp.
  1140. X`5CIPitem`7B`7Bcolors`7D`7D
  1141. XThis`20is`20a`20string`20of`20two`20upper`20or`20lower`20case
  1142. Xletters,
  1143. Xand`20defines
  1144. Xyour`20preferred`20colors`20for`20any`20games`20you`20start.`20`20The`20first
  1145. V`20character
  1146. Xin`20the`20string`20is`20the`20color`20you`20will`20play,`20and`20the`20second
  1147. V`20is`20the
  1148. Xone`20your`20opponent`20will`20play.`20`20It`20defaults`20to`20"rw",`20and`20i
  1149. Vs
  1150. Xoverridden`20by`20the
  1151. X`7B`5Cit`20--color`7D
  1152. Xcommand`20line`20argument.
  1153. X`5CIPitem`7B`7Bdirection`7D`7D
  1154. XThis`20is`20either`20"up"`20or`20"down",`20and`20defines`20your`20preferred
  1155. V`20direction
  1156. Xof`20play`20for`20games`20you`20start.`20`20The`20direction`20of`20play`20only
  1157. V`20refers`20to
  1158. Xwhether`20you`20play`20toward`20increasing`20or`20decreasing`20numbered`20poin
  1159. Vts.
  1160. +-+-+-+-+-+-+-+-  END  OF PART 15 +-+-+-+-+-+-+-+-
  1161.