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

  1. Path: uunet!spool.mu.edu!howland.reston.ans.net!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 [01/16]
  5. Date: 8 Apr 93 10:42:10 EST
  6. Organization: Science Applications Intl Corp - Dayton, OH
  7. Lines: 1225
  8. Message-ID: <1993Apr8.104211.1@dayvd.dayton.saic.com>
  9. NNTP-Posting-Host: dayvd.dayton.saic.com
  10. Xref: uunet vmsnet.sources.games:662
  11.  
  12.         Long Distance Backgammon
  13.         ------------------------
  14.  
  15.     This is a program that lets two people easily play backgammon
  16. by e-mail.  It currently runs only on character-oriented terminals
  17. (or emulators thereof) under the curses package.  It runs on most
  18. flavors of UNIX, as well as VMS version 5.0 and above.
  19.  
  20.         New Features
  21.         ------------
  22.  
  23.     A complete listing of the changes for rev 1.1, 1.2, and 1.3 is in
  24. the comments at the top of main.c.  Briefly, they are:
  25.     - Ldb has a context-sensitive help function that is activated
  26.       whenever you press ? or h.
  27.     - Match play is now supported.
  28.     - The Crawford and Jacoby rules are supported, as is the european
  29.       scoring of backgammons as double rather than triple games.
  30.     - You can now declare a game to be "permanent", meaning that it
  31.       will be automatically restarted when it ends.  This is for
  32.       people you play continuously.
  33.     - The current pip count for you and your opponent is displayed
  34.       above the board.
  35.     - You can obtain detailed statistics about the rolls you and
  36.       your opponent have received, including a histogram of
  37.       relative frequency, by pressing the % or # keys.
  38.     - You can use the -score option to print a summary of games
  39.       won/lost by opponent.
  40.     - You can press ESC while entering a message to get back to
  41.       your game and abort the operation.
  42.     - Ldb will not ask for the second digit of a 1-digit point number
  43.       unless it needs to (e.g. to tell the difference between 1 and 12)
  44.     - Comments are rot13'd before they are sent.  That way you won't
  45.       accidentally read the comment while extracting your mail and
  46.       ruin the surprise.  If ldb sees that your opponent is running
  47.       an old version of ldb, comments work like they used to.
  48.     - Concede now scores gammons/backgammons, so a player cannot
  49.       concede to avoid a gammon or backgammon.
  50.     - A lock file is used to prevent more than one ldb from running
  51.       at the same time in any account.
  52.     - The name, mail address, and an alias for all your opponents are
  53.       stored in a new file.  This file also keeps track of games
  54.       won and lost to that opponent.
  55.     - If you clobber your data file, ldb can reconstruct it from your
  56.       opponents' data files.
  57.     - Reverse video now works on VMS, as does the screen redraw and
  58.       the supervisor key.
  59.     - Any printing characters may be used to draw the game pieces.
  60.     - You can dump the screen to a file from the -control menu.
  61.  
  62.  
  63.  
  64. Perry R. Ross
  65. ross@emf780.den.mmc.com
  66.  
  67. VMS modifications by Earle Ake
  68. ake@dayton.saic.com
  69.  
  70.  
  71. $! ------------------ CUT HERE -----------------------
  72. $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
  73. $!
  74. $! This archive created by VMS_SHARE Version 8.3
  75. $!   On  7-APR-1993 22:25:30.21   By user AKE (Earle Ake <ake@dayton.saic.com>)
  76. $!
  77. $! The VMS_SHARE software that created this archive
  78. $!    was written by  Andy Harper, Kings College London UK
  79. $!    -- December 1992
  80. $!
  81. $! Credit is due to these people for their original ideas:
  82. $!    James Gray, Michael Bednarek 
  83. $!
  84. $!+ THIS PACKAGE DISTRIBUTED IN 16 PARTS, TO KEEP EACH PART
  85. $!  BELOW 100 BLOCKS
  86. $!
  87. $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
  88. $! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
  89. $!
  90. $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
  91. $!       1. README.;1
  92. $!       2. TODO.;1
  93. $!       3. LDB.DOC;1
  94. $!       4. LDB.MAN;1
  95. $!       5. LDB.PS;1
  96. $!       6. MAKEFILE.;10
  97. $!       7. MAKEFILE.UNIX;1
  98. $!       8. MAKEFILE.VMS;4
  99. $!       9. LDB.OPT;1
  100. $!      10. MAKELDB.COM;1
  101. $!      11. BOARD.C;1
  102. $!      12. CHECK.C;1
  103. $!      13. CONTROL.C;1
  104. $!      14. DOHELP.C;1
  105. $!      15. DOSTATS.C;1
  106. $!      16. FE_CURSES.C;1
  107. $!      17. FLIST_NONE.C;1
  108. $!      18. FLIST_UNIX.C;1
  109. $!      19. FLIST_VMS.C;1
  110. $!      20. GAME.C;1
  111. $!      21. LOCK.C;1
  112. $!      22. MAIN.C;1
  113. $!      23. MISC.C;1
  114. $!      24. MOVE.C;1
  115. $!      25. PROCESS.C;1
  116. $!      26. RCVOP.C;1
  117. $!      27. READMAIL.C;1
  118. $!      28. RENAME.C;1
  119. $!      29. R_XRAND.C;1
  120. $!      30. SAVE.C;1
  121. $!      31. T_EMAIL.C;1
  122. $!      32. VARS.C;1
  123. $!      33. LDB.H;1
  124. $!      34. PATCHLEVEL.H;1
  125. $!      35. LDBSTARTER.CSH;1
  126. $!      36. LDB.TEX;1
  127. $!
  128. $set="set"
  129. $set symbol/scope=(nolocal,noglobal)
  130. $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
  131. $e="write sys$error  ""%UNPACK"", "
  132. $w="write sys$output ""%UNPACK"", "
  133. $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
  134. $ if f$getsyi("CPU") .gt. 127 then $ goto start
  135. $ ve=f$getsyi("version")
  136. $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
  137. $ e "-E-OLDVER, Must run at least VMS 4.4"
  138. $ v=f$verify(v)
  139. $ exit 44
  140. $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes
  141. $ if f$parse(P1) .nes. "" then $ goto dirok
  142. $ dn=f$parse(P1,,,"DIRECTORY")
  143. $ w "-I-CREDIR, Creating directory ''dn'"
  144. $ create/dir 'dn'
  145. $ if $status then $ goto dirok
  146. $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped"
  147. $ delete 'f'*
  148. $ exit
  149. $dirok:
  150. $ x=f$search(P1)
  151. $ if x .eqs. "" then $ goto file_absent
  152. $ e "-W-EXISTS, File ''P1' exists. Skipped"
  153. $ delete 'f'*
  154. $ exit
  155. $file_absent:
  156. $ w "-I-UNPACK, Unpacking file ", P1
  157. $ n=P1
  158. $ if P3 .nes. "" then $ n=f
  159. $ if .not. f$verify() then $ define/user sys$output nl:
  160. $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n'
  161. PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t,
  162. SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;
  163. PROCEDURE SkipPartsep LOOP EXITIF MARK(NONE)=END_OF(b);EXITIF INDEX(ERASE_LINE,
  164. "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b,
  165. n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF;
  166. MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1);
  167. p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[
  168. ' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE;
  169. PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=END_OF(b);
  170. IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine;
  171. MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET(
  172. SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO(
  173. COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,GET_INFO(
  174. COMMAND_LINE,"output_file"));QUIT;
  175. $ if p3 .eqs. "" then $ goto dl
  176. $ open/write fdl &f
  177. $ write fdl "RECORD"
  178. $ write fdl P3
  179. $ close fdl
  180. $ w "-I-CONVRFM, Converting record format to ", P3
  181. $ convert/fdl=&f &f-1 &P1
  182. $dl: delete 'f'*
  183. $ checksum 'P1'
  184. $ if checksum$checksum .nes. P2 then $ -
  185.   e "-E-CHKSMFAIL, Checksum of ''P1' failed."
  186. $ exit
  187. $ endsubroutine
  188. $start:
  189. $!
  190. $ create 'f'
  191. X`09`09Long`20Distance`20Backgammon
  192. X`09`09------------------------
  193. X
  194. X`09This`20is`20a`20program`20that`20lets`20two`20people`20easily`20play`20back
  195. Vgammon
  196. Xby`20e-mail.`20`20It`20currently`20runs`20only`20on`20character-oriented`20ter
  197. Vminals
  198. X(or`20emulators`20thereof)`20under`20the`20curses`20package.`20`20It`20runs
  199. V`20on`20most
  200. Xflavors`20of`20UNIX,`20as`20well`20as`20VMS`20version`205.0`20and`20above.
  201. X
  202. X`09To`20build`20ldb,`20create`20a`20directory,`20copy`20all`20the`20parts`20in
  203. Vto
  204. Xthat`20directory,`20strip`20the`20usenet`20or`20mail`20headers`20with`20a`20te
  205. Vxt`20editor,
  206. Xand`20execute`20them`20with`20a`20shell`20(e.g.`20sh`20Part1;`20sh`20Part2;
  207. V`20...).
  208. XThe`20installation`20options`20are`20documented`20in`20the`20Makefile.
  209. X
  210. X`09Suggestions`20and`20problems`20are`20cheerfully`20accepted,`20all`20the`20m
  211. Vore
  212. Xso`20when`20accompanied`20by`20appropriate`20patches,`20in`20any`20format`20th
  213. Ve`20patch
  214. Xprogram`20understands`20(e.g.`20context`20diff).`20`20E-mail`20to`20ross@emf78
  215. V0.den.mmc.com.
  216. X
  217. X`09This`20file`20is`20for`20version`201.3`20of`20ldb.`20`20For`20those`20upgra
  218. Vding`20from
  219. X1.0`20who`20are`20wondering`20what`20happened`20to`201.1,`20it`20was`20only
  220. V`20released`20on
  221. Xthe`20DECUS`20tape.`20`20Because`20of`20time`20constraints,`20it`20had`20to
  222. V`20be`20released
  223. Xwithout`20some`20of`20the`20planned`20features,`20so`20it`20was`20assigned`20a
  224. V`20unique`20rev`20number.
  225. X1.2`20was`20to`20be`20the`20next`20version,`20but`20it`20was`20released`20so
  226. V`20widely`20for`20beta
  227. Xtest`20that`20there`20were`20countless`20different`20"versions"`20of`20version
  228. V`201.2.
  229. X
  230. X`09`09New`20Features
  231. X`09`09------------
  232. X
  233. X`09A`20complete`20listing`20of`20the`20changes`20for`20rev`201.1,`201.2,`20and
  234. V`201.3`20is`20in
  235. Xthe`20comments`20at`20the`20top`20of`20main.c.`20`20Briefly,`20they`20are:
  236. X`09-`20Ldb`20has`20a`20context-sensitive`20help`20function`20that`20is`20activ
  237. Vated
  238. X`09`20`20whenever`20you`20press`20?`20or`20h.
  239. X`09-`20Match`20play`20is`20now`20supported.
  240. X`09-`20The`20Crawford`20and`20Jacoby`20rules`20are`20supported,`20as`20is`20th
  241. Ve`20european
  242. X`09`20`20scoring`20of`20backgammons`20as`20double`20rather`20than`20triple`20g
  243. Vames.
  244. X`09-`20You`20can`20now`20declare`20a`20game`20to`20be`20"permanent",`20meaning
  245. V`20that`20it
  246. X`09`20`20will`20be`20automatically`20restarted`20when`20it`20ends.`20`20This
  247. V`20is`20for
  248. X`09`20`20people`20you`20play`20continuously.
  249. X`09-`20The`20current`20pip`20count`20for`20you`20and`20your`20opponent`20is
  250. V`20displayed
  251. X`09`20`20above`20the`20board.
  252. X`09-`20You`20can`20obtain`20detailed`20statistics`20about`20the`20rolls`20you
  253. V`20and
  254. X`09`20`20your`20opponent`20have`20received,`20including`20a`20histogram`20of
  255. X`09`20`20relative`20frequency,`20by`20pressing`20the`20%`20or`20#`20keys.
  256. X`09-`20You`20can`20use`20the`20-score`20option`20to`20print`20a`20summary`20of
  257. V`20games
  258. X`09`20`20won/lost`20by`20opponent.
  259. X`09-`20You`20can`20press`20ESC`20while`20entering`20a`20message`20to`20get`20b
  260. Vack`20to
  261. X`09`20`20your`20game`20and`20abort`20the`20operation.
  262. X`09-`20Ldb`20will`20not`20ask`20for`20the`20second`20digit`20of`20a`201-digit
  263. V`20point`20number
  264. X`09`20`20unless`20it`20needs`20to`20(e.g.`20to`20tell`20the`20difference`20bet
  265. Vween`201`20and`2012)
  266. X`09-`20Comments`20are`20rot13'd`20before`20they`20are`20sent.`20`20That`20way
  267. V`20you`20won't
  268. X`09`20`20accidentally`20read`20the`20comment`20while`20extracting`20your`20mai
  269. Vl`20and
  270. X`09`20`20ruin`20the`20surprise.`20`20If`20ldb`20sees`20that`20your`20opponent
  271. V`20is`20running
  272. X`09`20`20an`20old`20version`20of`20ldb,`20comments`20work`20like`20they`20used
  273. V`20to.
  274. X`09-`20Concede`20now`20scores`20gammons/backgammons,`20so`20a`20player`20canno
  275. Vt
  276. X`09`20`20concede`20to`20avoid`20a`20gammon`20or`20backgammon.
  277. X`09-`20A`20lock`20file`20is`20used`20to`20prevent`20more`20than`20one`20ldb
  278. V`20from`20running
  279. X`09`20`20at`20the`20same`20time`20in`20any`20account.
  280. X`09-`20The`20name,`20mail`20address,`20and`20an`20alias`20for`20all`20your`20o
  281. Vpponents`20are
  282. X`09`20`20stored`20in`20a`20new`20file.`20`20This`20file`20also`20keeps`20track
  283. V`20of`20games
  284. X`09`20`20won`20and`20lost`20to`20that`20opponent.
  285. X`09-`20If`20you`20clobber`20your`20data`20file,`20ldb`20can`20reconstruct`20it
  286. V`20from`20your
  287. X`09`20`20opponents'`20data`20files.
  288. X`09-`20Reverse`20video`20now`20works`20on`20VMS,`20as`20does`20the`20screen
  289. V`20redraw`20and
  290. X`09`20`20the`20supervisor`20key.
  291. X`09-`20Any`20printing`20characters`20may`20be`20used`20to`20draw`20the`20game
  292. V`20pieces.
  293. X`09-`20You`20can`20dump`20the`20screen`20to`20a`20file`20from`20the`20-control
  294. V`20menu.
  295. X
  296. X
  297. X`09`09Automatic`20Game`20Starters
  298. X`09`09-----------------------
  299. X
  300. X`09An`20automatic`20game`20starter`20has`20been`20set`20up`20by`20Mark`20Rubin
  301. V`20on
  302. Xcs.umb.edu.`20`20This`20matches`20people`20by`20ability`20and`20automatically
  303. V`20starts`20a
  304. Xgame`20between`20them.`20`20The`20ability`20categories`20are`20novice,`20inter
  305. Vmediate,`20and
  306. Xexpert.`20`20For`20example,`20if`20you`20consider`20yourself`20an`20expert,
  307. V`20you`20would
  308. Xmail`20to:
  309. X
  310. X`09`09ldb-expert@cs.umb.edu
  311. X
  312. Xwhereupon`20you`20will`20be`20matched`20at`20random`20with`20someone`20else
  313. V`20who`20mailed`20to`20the
  314. Xsame`20address,`20and`20your`20game`20will`20be`20started`20using`20the`20remo
  315. Vtestart
  316. Xfunction`20of`20ldb.
  317. X
  318. X`09For`20more`20information,`20mail`20to:
  319. X
  320. X`09`09ldb-help@cs.umb.edu
  321. X
  322. XYou`20will`20receive`20an`20automated`20reply`20by`20return`20mail.
  323. X
  324. XFor`20those`20wishing`20to`20set`20up`20their`20own`20game`20starter,`20the
  325. V`20shellscript`20used
  326. Xto`20do`20it`20is`20included`20in`20this`20distribution`20as`20ldbstarter.csh.
  327. V
  328. XGetting`20it`20to`20work`20on`20your`20system`20may`20take`20a`20little`20work
  329. V.
  330. X
  331. X
  332. X`09`09Running`20Ldb
  333. X`09`09-----------
  334. X
  335. X`09The`20first`20time`20ldb`20is`20run,`20it`20will`20create`20a`20file`20in
  336. V`20your`20home
  337. Xdirectory`20called`20".ldbrc".`20`20If`20this`20name`20is`20inconvenient,`20de
  338. Vfine`20the
  339. Xenvironment`20variable`20LDBRC`20to`20be`20the`20name`20you`20want`20before
  340. V`20running`20it
  341. Xthe`20first`20time`20(and`20all`20times`20after`20that).`20`20Ldb`20will`20ask
  342. V`20for`20your
  343. Xpersonal,`20human-type`20name`20and`20your`20e-mail`20address.`20`20All`20othe
  344. Vr`20options
  345. Xwill`20be`20set`20to`20their`20defaults,`20as`20explained`20in`20the`20manual.
  346. V`20`20The`20"sendcmd"
  347. Xoption`20in`20.ldbrc`20may`20need`20to`20be`20modified`20to`20work`20with`20th
  348. Ve`20mail`20program
  349. Xon`20your`20system.`20`20This`20option`20tells`20ldb`20how`20to`20send`20mail
  350. V`20to`20your`20opponent,
  351. Xand`20must`20be`20correctly`20set`20for`20ldb`20to`20work.`20`20This`20string
  352. V`20after`20"sendcmd="
  353. Xis`20executed`20by`20ldb`20after`20making`20the`20following`20substitutions:
  354. X`09$a`09is`20replaced`20by`20the`20address`20to`20mail`20to.
  355. X`09$f`09is`20replaced`20by`20the`20file`20containing`20the`20message.
  356. X`09$s`09is`20replaced`20by`20the`20subject`20line`20of`20the`20message.
  357. X`09$$`09is`20replaced`20by`20a`20single`20$.
  358. XThe`20default,`20which`20should`20work`20with`20most`20UNIX`20systems,`20is:
  359. X`09mail`20-s`20'$s'`20$a`20<`20$f
  360. XNote`20that`20ldb`20performs`20the`20substitutions,`20not`20the`20shell,`20so
  361. V`20the`20substitutions
  362. Xare`20not`20subject`20to`20any`20quoting.`20`20All`20other`20characters,`20inc
  363. Vluding`20shell
  364. Xmetacharacters,`20are`20passed`20to`20the`20system`20unchanged.
  365. X
  366. XVMS`20users`20will`20have`20the`20following`20default`20sendcmd`20set:
  367. X
  368. X`09sendcmd=MAIL/SUBJECT="$s"`20$f`20IN%"""$a"""
  369. X
  370. XThis`20is`20correct`20if`20you`20are`20using`20the`20IN%`20SMTP`20mailer.`20
  371. V`20If`20not,
  372. Xyou`20may`20need`20to`20change`20the`20sendcmd=`20line`20as`20follows:
  373. X
  374. XIf`20you`20are`20using`20VMS`20mail`20only,`20use`20the`20line:
  375. X
  376. X`09sendcmd=MAIL/SUBJECT="$s"`20$f`20$a
  377. X
  378. XDepending`20on`20which`20SMTP`20mailer`20you`20have,`20the`20IN%`20may`20need
  379. V`20to`20be
  380. Xchanged`20to`20WINS%`20(for`20Wollongong),`20etc.
  381. X
  382. X
  383. X`09`09Starting`20A`20Game
  384. X`09`09---------------
  385. X
  386. X`09To`20start`20a`20game,`20type:
  387. X`09`09ldb`20-start`20opponent's-email-address
  388. Xand`20everything`20is`20automatic`20from`20there.`20`20You`20may`20have`20to
  389. V`20exchange
  390. Xseveral`20mail`20messages`20before`20you`20are`20ready`20to`20play,`20since
  391. V`20your`20ldb`20has`20to
  392. Xdo`20the`20initial`20roll`20with`20the`20remote`20ldb,`20and`20if`20there`20is
  393. V`20a`20tie,`20the
  394. Xinitial`20roll`20is`20repeated.`20`20Eventually,`20you`20will`20see`20a`20boar
  395. Vd`20drawn`20on
  396. Xthe`20screen.`20`20The`20commands`20are`20in`20the`20bottom`20right`20corner.
  397. V`20`20The`20moves`20by
  398. Xyou`20and`20your`20opponent`20are`20above`20that,`20on`20the`20right`20side
  399. V`20of`20the`20screen,`20and
  400. Xthe`20bottom`20of`20the`20screen`20contains`20a`20place`20for`20you`20to`20enc
  401. Vlose`20a`202-line
  402. Xmessage`20with`20each`20move.`20`20This`20is`20useful`20for`20taunting,`20plea
  403. Vding,`20etc.
  404. XYou`20will`20need`20to`20press`20'r'`20to`20roll`20the`20dice,`20then`20press
  405. V`20the`20number`20of`20the`20roll
  406. Xyou`20want`20to`20use`20followed`20by`20the`20point`20you`20want`20to`20move
  407. V`20from.`20`20For`20example,
  408. Xif`20you`20roll`205`202,`20and`20you`20want`20to`20move`20the`20piece`20on`20t
  409. Vhe`2011`20point`205,`20press
  410. X5`201`201.`20`20You`20don't`20need`20to`20hit`20return.`20`20After`20you`20hav
  411. Ve`20used`20one`20of`20your`20rolls,
  412. Xthere`20are`203`20shortcuts`20you`20can`20use`20for`20the`20remainder`20of`20y
  413. Vour`20roll:
  414. X`09<space`20bar>`09Continues`20the`20last`20move.`20`20The`20piece`20you`20las
  415. Vt`20moved
  416. X`09`09`09is`20moved`20by`20the`20amount`20of`20the`20other/next`20roll.
  417. X`09<return>`09Repeat`20the`20last`20move.`20`20The`20other/next`20roll`20is
  418. V`20applied
  419. X`09`09`09to`20the`20same`20point`20you`20moved`20from`20last`20time.
  420. X`09p`09`09Make`20point.`20`20This`20gets`20a`20little`20tricky.`20`20Ldb`20att
  421. Vempts
  422. X`09`09`09to`20use`20the`20other/next`20roll`20to`20move`20one`20of`20your`20pi
  423. Veces
  424. X`09`09`09so`20that`20it`20ends`20up`20on`20the`20same`20point`20as`20your`20la
  425. Vst`20move
  426. X`09`09`09ended`20on.`20`20That`20is,`20if`20you`20roll`205`202`20and`20use`20t
  427. Vhe`205
  428. X`09`09`09to`20move`20from`20the`206`20point`20to`20the`2011`20point,`20and`20h
  429. Vit`20"p",
  430. X`09`09`09ldb`20will`20move`20one`20of`20your`20pieces`20from`20the`209`20point
  431. V`20to
  432. X`09`09`09the`2011`20point`20to`20make`20the`2011`20point.`20`20This`20assumes,
  433. V
  434. X`09`09`09of`20course,`20that`20you`20have`20a`20piece`20on`20the`209`20point.
  435. X
  436. X`09Ldb`20checks`20your`20moves`20for`20all`20conceivable`20errors.`20`20These
  437. Xare`20listed`20in`20the`20manual.
  438. X
  439. X`09To`20move`20off`20the`20bar,`20merely`20select`20a`20roll.`20`20That`20roll
  440. V`20will
  441. Xautomatically`20bring`20you`20off`20the`20bar,`20since`20you`20have`20no`20oth
  442. Ver`20legal
  443. Xmove`20anyway.`20`20To`20bear`20pieces`20off,`20you`20can`20either`20enter`20t
  444. Vhe`20point
  445. Xnumber`20like`20normal,`20or`20press`20"o"`20to`20have`20it`20bear`20off`20for
  446. V`20you`20automatically.
  447. X
  448. X`09When`20a`20move`20arrives`20in`20your`20mail,`20go`20into`20mail`20and`20sa
  449. Vve`20the`20message
  450. Xinto`20a`20file.`20`20Delete`20the`20message`20from`20your`20mail,`20exit`20ma
  451. Vil,`20and`20run
  452. Xldb`20with`20the`20name`20of`20the`20file`20as`20an`20argument.`20`20There`20a
  453. Vre`20easier`20ways
  454. Xto`20feed`20incoming`20mail`20to`20ldb;`20these`20are`20discussed`20in`20the
  455. V`20manual.
  456. X
  457. X`09For`20more`20options,`20read`20the`20manual`20and`20the`20comments`20at`20t
  458. Vhe`20top
  459. Xof`20main.c.
  460. X
  461. X`09Good`20luck!
  462. X
  463. X`09`09`09`09`09`09Perry`20R.`20Ross
  464. X`09`09`09`09`09`09ross@emf780.den.mmc.com
  465. X
  466. X-----------------------------------------------------------------------------
  467. X
  468. X`09Really`20Scary`20and`20Hopefully`20Bulletproof`20Legal`20Statement:
  469. X
  470. XThis`20software`20is`20copyright`201991`20by`20Perry`20R.`20Ross.`20`20Permiss
  471. Vion`20to`20use,
  472. Xcopy,`20modify,`20and`20redistribute`20it`20is`20granted`20provided:
  473. X`09(1)`20It`20is`20not`20sold.
  474. X`09(2)`20This`20notice`20accompanies`20all`20copies,`20and`20is`20kept`20intac
  475. Vt.
  476. X`09(3)`20Users`20do`20not`20cheat`20by`20any`20method,`20including`20but`20not
  477. V`20limited`20to:
  478. X`09`09A.`20modifying`20the`20roll`20generated`20by`20the`20random`20number`20g
  479. Venerator,
  480. X`09`09B.`20modifying`20the`20code`20to`20provide`20any`20roll`20other`20than
  481. V`20that
  482. X`09`09`20`20`20generated`20by`20a`20bona-fide`20random`20number`20generator,
  483. X`09`09C.`20taking`20advantage`20of`20any`20non-randomness`20in`20a`20random
  484. X`09`09`20`20`20number`20generator`20to`20predict`20upcoming`20rolls,
  485. X`09`09D.`20changing`20the`20contents`20of`20an`20incoming`20message`20or`20of
  486. V`20the
  487. X`09`09`20`20`20.ldbdata`20file`20to`20modify`20the`20normal`20progression`20of
  488. V`20a
  489. X`09`09`20`20`20game`20in`20any`20way,`20or
  490. X`09`09E.`20generating`20a`20roll`20before`20offering`20to`20double.
  491. X`09`20`20`20Persons`20guilty`20of`20cheating`20in`20any`20way`20while`20using
  492. V`20this`20software
  493. X`09`20`20`20are`20denied`20permission`20to`20use`20or`20distribute`20this`20so
  494. Vftware
  495. X`09`20`20`20in`20perpetuity.`20`20Excluded`20from`20the`20definition`20of`20ch
  496. Veating`20is
  497. X`09`20`20`20any`20action`20whose`20intention`20is`20to`20test`20or`20debug`20t
  498. Vhis`20software,
  499. X`09`20`20`20as`20long`20as`20the`20opponent`20is`20aware`20that`20these`20acti
  500. Vons`20are`20being
  501. X`09`20`20`20performed,`20and`20the`20game`20is`20considered`20"unofficial".
  502. XThe`20above`20restrictions`20are`20made`20in`20all`20seriousness,`20and`20with
  503. V`20every
  504. Xintention`20of`20enforcement`20by`20any`20and`20all`20legal`20means`20where
  505. V`20practical.
  506. X
  507. X(Sounds`20almost`20as`20good`20as`20the`20real`20thing,`20doesn't`20it?)
  508. $ call unpack README.;1 1649131628 ""
  509. $!
  510. $ create 'f'
  511. Xdelmail`20option`20should`20work`20on`20system`20mail`20file.
  512. X
  513. XMake`20superkey`20work`20instantly,`20instead`20of`20only`20when`20waiting`20f
  514. Vor`20a`20character.
  515. X
  516. XWay`20of`20changing`20local`20colors`20for`20a`20game,`20or`20for`20setting
  517. V`20local`20colors
  518. Xindependent`20of`20colors`20specified`20in`20START.
  519. X
  520. XIndication`20of`20last`20access`20time`20for`20a`20game`20in`20-control.
  521. X
  522. XInstead`20of`20keeping`203`20board`20images`20Bef,`20Aft,`20Cur,`20keep`20log
  523. V`20file`20of
  524. Xall`20prior`20moves,`20with`20board`20image,`20player,`20`26`20move`20made.
  525. V`20`20Use`20`5E`20and`20v
  526. Xcommands`20(or`20ku`20`26`20kd`20from`20termcap?)`20to`20scroll`20backward`20a
  527. Vnd`20forward`20through
  528. Xlog`20file,`20displaying`20board`20`26`20pieces`20moved`20at`20each`20step.
  529. V`20`20Delete`20log`20file
  530. Xwhen`20game`20is`20deleted?`20`20Use`20name`20like`20.ldblogXXXXX`20for`20log
  531. V`20file,
  532. Xput`20log`20file`20name`20into`20game`20structure.`20`20Scan`20directory`20for
  533. V`20unused
  534. Xlog`20files`20when`20games`20are`20read,`20so`20they`20can`20be`20deleted?`20
  535. V`20Maybe,`20each
  536. Xscroll`20back`20is`20in`20two`20steps,`20before`20move`20was`20made`20`26`20af
  537. Vter.`20`20That`20is,
  538. XCur,`20-1`20After,`20-1`20Before,`20-2`20After,`20-2`20Before,`20...
  539. X
  540. XWay`20of`20specifying`20that`20board`20should`20invert`20if`20necessary`20auto
  541. Vmatically
  542. Xso`20that`20play`20is`20always`20in`20the`20desired`20direction.
  543. X
  544. XWay`20of`20informing`20your`20opponents`20of`20a`20change`20in`20your`20e-mail
  545. V`20address.
  546. XUse`20new`20opcode?`20`20Check`20opponent's`20version`20to`20avoid`20killing
  547. V`20opponent's
  548. Xldb`20with`20invalid`20opcode.`20`20If`20in`20OPSTATE,`20also`20request`20rese
  549. Vnd?
  550. XSend`20one`20packet`20per`20game?`20`20Be`20sure`20to`20update`20people`20file
  551. V`20too.
  552. XEliminate`20old`20address`20when`20no`20more`20games`20point`20to`20it.`20`20M
  553. Vaybe`20better
  554. Xto`20send`20one`20packet`20per`20opponent`20(scan`20people`20file),`20so`20it
  555. V`20can
  556. Xjust`20change`20the`20people`20record`20in`20place.`20`20What`20to`20do`20with
  557. V`20equiv's?
  558. X
  559. Xallow`20unlimited`20length`20comments,`20scroll`20window.
  560. X
  561. XWay`20to`20print`20board`20to`20file,`20load`20board`20from`20file.`20`20Allow
  562. V`20board
  563. Xto`20be`20set`20up`20in`20any`20desired`20configuration.
  564. X
  565. XSecurity`20from`20(1)`20advance`20knowledge`20of`20rolls,`20(2)`20generating
  566. V`20false`20rolls.
  567. X
  568. XMultiple`20language`20support.
  569. X
  570. Xregister`20vars
  571. X
  572. XFlip`20board`20left/right.
  573. X
  574. XFlush`20input`20before`20reading.
  575. X
  576. XSocket`20transport.
  577. X
  578. XMotif`20front-end.`20`20Open`20Look?`20`20Xlib?
  579. X
  580. XVMS`20command`20line`20interface.`20`20Maybe,`20separate`20out`20all`20host-sp
  581. Vecific
  582. Xstuff`20into`20a`20separate`20file,`20`26`20only`20compile`20in`20the`20one
  583. V`20you`20need.
  584. X
  585. XOption`20to`20display`20"scratch"`20screen,`20move`20any`20piece.`20`20Don't
  586. V`20save.
  587. XInitial`20setup?
  588. X
  589. XProtect`20critical`20sections`20from`20SIGINT.`20`20Catch`20more`20signals?
  590. XCatch`20SIGSTOP/SIGTSTP/SIGCONT`20`26`20reset`20tty`20modes.
  591. X
  592. XAllow`20multiple`20rolls`20without`20sending`20packet`20when`20opponent`20is
  593. V`20closed`20out.
  594. XAllow`20opponent's`20roll`20to`20be`20generated`20locally`20when`20piece`20is
  595. V`20on`20the`20bar,
  596. X`26`20skip`20if`20he`20cannot`20move.`20`20Conflicts`20with`20secure`20dice
  597. V`20roller?`20`20How
  598. Xto`20send`20multiple`20moves`20in`20one`20packet?
  599. X
  600. XProcess`20id`20in`20lock`20file,`20look`20to`20see`20if`20process`20still`20ex
  601. Vists.
  602. XPortability?`20`20How`20in`20VMS?
  603. X
  604. XPlug`20memory`20leaks.
  605. X
  606. XFaster`20start`20protocol,`20have`20starting`20host`20perform`20entire`20openi
  607. Vng`20roll
  608. Xand`20reroll`20ties`20immediately.`20`20Conflicts`20with:`201)`20backward`20co
  609. Vmpatibility,
  610. X2)`20autodoubling,`203)`20secure`20roller.
  611. X
  612. XCatch`20failure`20in`20sending`20mail,`20return`20to`20move`20state.
  613. X
  614. Xhandle`20failed`20write`20better.`20`20""`20in`20writegames.
  615. $ call unpack TODO.;1 1651455370 ""
  616. $!
  617. $ create 'f'
  618. X
  619. X
  620. X
  621. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  622. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  623. X
  624. X
  625. X
  626. XNAME
  627. X`20`20`20`20`20ldb`20-`20Play`20backgammon`20by`20e-mail
  628. X
  629. XSYNOPSIS
  630. X`20`20`20`20`20ldb`20`5Boptions`5D`20`5Binput`20files...`5D
  631. X
  632. XDESCRIPTION
  633. X`20`20`20`20`20_`08L_`08d_`08b`20allows`20two`20people`20to`20`20play`20`20bac
  634. Vkgammon`20`20over`20`20a`20`20network
  635. X`20`20`20`20`20using`20`20`20electronic`20`20mail.`20`20`20It`20`20runs`20`20o
  636. Vn`20`20character-oriented
  637. X`20`20`20`20`20terminals,`20or`20emulators`20thereof,`20`20using`20`20the`20
  638. V`20_`08c_`08u_`08r_`08s_`08e_`08s`20`20screen
  639. X`20`20`20`20`20package.`20`20`20It`20`20will`20`20run`20`20on`20`20most`20UNIX
  640. V`20dialects,`20as`20well`20as
  641. X`20`20`20`20`20VAX-C`20under`20VMS`205.0`20and`20above.`20`20_`08L_`08d_`08b
  642. V`20will`20display`20`20a`20`20picture
  643. X`20`20`20`20`20of`20`20the`20`20board,`20`20prompt`20`20the`20user`20to`20ente
  644. Vr`20a`20move,`20check`20the
  645. X`20`20`20`20`20move`20for`20legality,`20and`20send`20the`20move`20to`20the`20o
  646. Vpponent.`20`20`20When
  647. X`20`20`20`20`20it`20`20arrives,`20`20it`20will`20be`20displayed`20on`20the`20o
  648. Vpponent's`20screen,
  649. X`20`20`20`20`20after`20which`20the`20opponent`20will`20be`20prompted`20for`20a
  650. V`20move`20`20to`20`20be
  651. X`20`20`20`20`20sent`20back.
  652. X
  653. XFEATURES
  654. X`20`20`20`20`20Multiple`20Games
  655. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20keep`20track`20of`20`20a
  656. Vn`20`20arbitrary`20`20number`20`20of`20`20games
  657. X`20`20`20`20`20`20`20`20`20`20simultaneously,`20and`20will`20display`20them
  658. V`20one`20at`20a`20time`20for
  659. X`20`20`20`20`20`20`20`20`20`20you`20to`20play.`20`20You`20can`20exit`20from
  660. V`20_`08l_`08d_`08b`20at`20any`20`20time;`20`20when
  661. X`20`20`20`20`20`20`20`20`20`20you`20run`20ldb`20again,`20it`20will`20pick`20up
  662. V`20your`20games`20where`20you
  663. X`20`20`20`20`20`20`20`20`20`20left`20off.
  664. X
  665. X`20`20`20`20`20Move`20Checking
  666. X`20`20`20`20`20`20`20`20`20`20Both`20your`20moves`20and`20your`20opponent's
  667. V`20moves`20`20are`20`20checked
  668. X`20`20`20`20`20`20`20`20`20`20for`20legality.`20`20This`20includes:
  669. X
  670. X`20`20`20`20`20-`20`20`20`20Landing`20on`20an`20occupied`20point.
  671. X
  672. X`20`20`20`20`20-`20`20`20`20Bearing`20off`20before`20your`20inner`20table`20is
  673. V`20full.
  674. X
  675. X`20`20`20`20`20-`20`20`20`20Trying`20to`20move`20pieces`20that`20are`20on`20th
  676. Ve`20`20board`20`20when`20`20you
  677. X`20`20`20`20`20`20`20`20`20`20have`20a`20piece`20on`20the`20bar.
  678. X
  679. X`20`20`20`20`20-`20`20`20`20Trying`20to`20bear`20off`20a`20piece`20when`20ther
  680. Ve`20is`20a`20piece`20`20on`20`20a
  681. X`20`20`20`20`20`20`20`20`20`20higher`20point,`20and`20the`20roll`20is`20not
  682. V`20being`20used`20exactly.
  683. X
  684. X`20`20`20`20`20-`20`20`20`20Trying`20to`20leave`20a`20usable`20move`20unused.
  685. X
  686. X`20`20`20`20`20-`20`20`20`20Trying`20to`20leave`20a`20move`20unused`20when`20i
  687. Vt`20is`20usable`20and`20has
  688. X`20`20`20`20`20`20`20`20`20`20a`20higher`20roll`20than`20the`20move`20that`20i
  689. Vs`20used.
  690. X
  691. X`20`20`20`20`20-`20`20`20`20Trying`20to`20double`20when`20you`20doubled`20last
  692. V.
  693. X
  694. X`20`20`20`20`20-`20`20`20`20Trying`20to`20double`20in`20a`20Crawford`20rule
  695. V`20game.
  696. X
  697. X`20`20`20`20`20Message`20Reliability
  698. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20detects`20(and`20rejects)`20du
  699. Vplicate`20messages,`20`20and`20`20can
  700. X`20`20`20`20`20`20`20`20`20`20regenerate`20lost`20messages.
  701. X
  702. X
  703. X
  704. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  705. V`20`20`20`20`20`20`20`20`20`20`20`20`20`201
  706. X
  707. X
  708. X
  709. X
  710. X
  711. X
  712. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  713. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  714. X
  715. X
  716. X
  717. X`20`20`20`20`20Remote`20Start
  718. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20start`20a`20game`20`20be
  719. Vtween`20`20two`20`20players`20`20on`20`20remote
  720. X`20`20`20`20`20`20`20`20`20`20hosts.`20`20`20This`20`20is`20`20used`20to`20set
  721. V`20up`20"game`20starter"`20hosts,
  722. X`20`20`20`20`20`20`20`20`20`20where`20people`20interested`20in`20finding`20
  723. V`20new`20`20opponents`20`20are
  724. X`20`20`20`20`20`20`20`20`20`20matched`20`20by`20`20some`20`20criteria`20`20(su
  725. Vch`20`20as`20ability,`20or`20by`20a
  726. X`20`20`20`20`20`20`20`20`20`20tournament`20schedule),`20`20and`20`20have`20
  727. V`20their`20`20games`20`20started
  728. X`20`20`20`20`20`20`20`20`20`20automatically.`20`20`20For`20`20a`20current`20li
  729. Vsting`20of`20game`20starter
  730. X`20`20`20`20`20`20`20`20`20`20hosts,`20see`20the`20README`20file.
  731. X
  732. X`20`20`20`20`20Game`20Value
  733. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20`20detects`20`20the`20`20end
  734. V`20`20of`20`20the`20`20game,`20`20`20gammons,`20`20`20and
  735. X`20`20`20`20`20`20`20`20`20`20backgammons,`20`20and`20`20notifies`20`20both
  736. V`20`20players`20`20of`20the`20game
  737. X`20`20`20`20`20`20`20`20`20`20value`20when`20the`20game`20is`20over.`20`20The
  738. V`20Jacoby`20`20rule`20`20may`20`20be
  739. X`20`20`20`20`20`20`20`20`20`20enabled,`20as`20may`20European`20scoring,`20to
  740. V`20calculate`20the`20game
  741. X`20`20`20`20`20`20`20`20`20`20value`20as`20desired.
  742. X
  743. X`20`20`20`20`20Online`20Help`20Screen
  744. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20has`20an`20online,`20context
  745. V`20sensitive`20help`20facility`20that
  746. X`20`20`20`20`20`20`20`20`20`20lists`20the`20available`20commands`20for`20the
  747. V`20current`20screen.
  748. X
  749. X`20`20`20`20`20Match`20Play
  750. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20support`20matches`20that
  751. V`20play`20to`20any`20desired`20`20point
  752. X`20`20`20`20`20`20`20`20`20`20total,`20`20and`20`20will`20`20continue`20`20to
  753. V`20`20start`20`20games`20until`20one
  754. X`20`20`20`20`20`20`20`20`20`20player`20reaches`20that`20total.
  755. X
  756. XOPTIONS
  757. X`20`20`20`20`20-read
  758. X`20`20`20`20`20`20`20`20`20`20Mail`20is`20read,`20and`20the`20games`20are`20up
  759. Vdated`20and`20saved.`20`20The
  760. X`20`20`20`20`20`20`20`20`20`20user`20`20is`20`20not`20prompted`20for`20his`20m
  761. Voves.`20`20If`20neither`20-read
  762. X`20`20`20`20`20`20`20`20`20`20nor`20-play`20are`20given,`20both`20are`20assume
  763. Vd.
  764. X
  765. X`20`20`20`20`20-play
  766. X`20`20`20`20`20`20`20`20`20`20Any`20`20games`20`20that`20`20are`20`20waiting
  767. V`20`20for`20`20local`20`20input`20`20`20are
  768. X`20`20`20`20`20`20`20`20`20`20displayed`20`20for`20`20the`20`20user`20to`20pro
  769. Vcess.`20`20No`20mail`20is`20read.
  770. X`20`20`20`20`20`20`20`20`20`20If`20neither`20-read`20nor`20-play`20are`20given
  771. V,`20both`20are`20assumed.
  772. X
  773. X`20`20`20`20`20-color`20xy
  774. X`20`20`20`20`20`20`20`20`20`20The`20colors`20for`20the`20game`20started`20by
  775. V`20this`20ldb`20run`20are`20set
  776. X`20`20`20`20`20`20`20`20`20`20to`20`20x`20`20and`20`20y.`20`20`20The`20first
  777. V`20color`20is`20played`20by`20the`20local
  778. X`20`20`20`20`20`20`20`20`20`20user,`20and`20the`20other`20is`20played`20by`20t
  779. Vhe`20`20opponent.`20`20`20Legal
  780. X`20`20`20`20`20`20`20`20`20`20color`20`20characters`20`20are`20`20any`20`20pri
  781. Vnting`20character,`20except
  782. X`20`20`20`20`20`20`20`20`20`20that`20x`20and`20y`20may`20not`20be`20the`20uppe
  783. Vr`20and`20lower`20case`20of`20the
  784. X`20`20`20`20`20`20`20`20`20`20same`20character.`20`20The`20default`20is`20"-co
  785. Vlor`20rw".
  786. X
  787. X`20`20`20`20`20-direction`20up/down
  788. X`20`20`20`20`20`20`20`20`20`20This`20sets`20the`20direction`20of`20play`20for
  789. V`20the`20local`20user`20`20for
  790. X`20`20`20`20`20`20`20`20`20`20the`20`20game`20`20started`20`20by`20`20this`20
  791. V`20ldb`20`20run.`20`20The`20default`20is
  792. X`20`20`20`20`20`20`20`20`20`20"-direction`20up".
  793. X
  794. X`20`20`20`20`20-myaddr`20addr
  795. X`20`20`20`20`20`20`20`20`20`20Your`20mail`20address`20is`20set`20to`20_`08a_
  796. V`08d_`08d_`08r`20for`20games`20`20started`20`20on
  797. X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20run.`20`20This`20overrides`20the
  798. V`20address`20specified`20in
  799. X
  800. X
  801. X
  802. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  803. V`20`20`20`20`20`20`20`20`20`20`20`20`20`202
  804. X
  805. X
  806. X
  807. X
  808. X
  809. X
  810. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  811. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  812. X
  813. X
  814. X
  815. X`20`20`20`20`20`20`20`20`20`20._`08l_`08d_`08b_`08r_`08c.
  816. X
  817. X`20`20`20`20`20-start`20user
  818. X`20`20`20`20`20`20`20`20`20`20A`20game`20is`20started`20with`20the`20specified
  819. V`20`20user.`20`20`20The`20`20_`08u_`08s_`08e_`08r
  820. X`20`20`20`20`20`20`20`20`20`20argument`20`20may`20`20be`20`20any`20e-mail`20ad
  821. Vdress`20that`20is`20valid`20for
  822. X`20`20`20`20`20`20`20`20`20`20your`20host.`20`20Some`20`20e-mail`20`20addresse
  823. Vs`20`20will`20`20need`20`20to`20`20be
  824. X`20`20`20`20`20`20`20`20`20`20quoted`20`20if`20they`20contain`20shell`20metach
  825. Varacters.`20`20The`20_`08u_`08s_`08e_`08r
  826. X`20`20`20`20`20`20`20`20`20`20argument`20may`20also`20be`20an`20_`08a_`08l_
  827. V`08i_`08a_`08s`20for`20an`20opponent`20you`20`20have
  828. X`20`20`20`20`20`20`20`20`20`20played`20before.`20`20Aliases`20are`20defined
  829. V`20in`20the`20people`20file,
  830. X`20`20`20`20`20`20`20`20`20`20and`20are`20initialized`20to`20the`20first`20nam
  831. Ve`20of`20the`20`20opponent,
  832. X`20`20`20`20`20`20`20`20`20`20with`20`20all`20`20upper-case`20`20letters`20
  833. V`20changed`20`20to`20lower.`20`20The
  834. X`20`20`20`20`20`20`20`20`20`20-start`20`20option`20`20is`20`20deferred`20`20un
  835. Vtil`20`20all`20`20command`20`20line
  836. X`20`20`20`20`20`20`20`20`20`20options`20`20have`20`20been`20`20scanned,`20`20s
  837. Vo`20`20the`20`20position`20of`20the
  838. X`20`20`20`20`20`20`20`20`20`20-start`20option`20on`20the`20command`20`20line
  839. V`20`20is`20`20not`20`20important.
  840. X`20`20`20`20`20`20`20`20`20`20Only`20one`20-start`20may`20be`20used`20per`20ld
  841. Vb`20run.
  842. X
  843. X`20`20`20`20`20-remotestart`20user1`20user2
  844. X`20`20`20`20`20`20`20`20`20`20A`20game`20is`20started`20between`20user1`20and
  845. V`20user2.`20`20`20The`20`20local
  846. X`20`20`20`20`20`20`20`20`20`20host`20`20sends`20a`20remote`20start`20message
  847. V`20to`20user1`20instructing
  848. X`20`20`20`20`20`20`20`20`20`20it`20to`20start`20a`20game`20with`20user2.`20
  849. V`20The`20local`20host`20does`20not
  850. X`20`20`20`20`20`20`20`20`20`20participate`20`20thereafter`20`20in`20the`20game
  851. V.`20`20For`20the`20purposes
  852. X`20`20`20`20`20`20`20`20`20`20of`20`20the`20`20-color`20`20and`20`20-direction
  853. V`20`20options,`20`20`20user1`20`20`20is
  854. X`20`20`20`20`20`20`20`20`20`20considered`20`20the`20local`20user.`20`20The`20-
  855. Vremotestart`20option`20is
  856. X`20`20`20`20`20`20`20`20`20`20deferred`20until`20`20all`20`20command`20`20line
  857. V`20`20options`20`20have`20`20been
  858. X`20`20`20`20`20`20`20`20`20`20scanned,`20`20so`20the`20position`20of`20the`20-
  859. Vremotestart`20option`20on
  860. X`20`20`20`20`20`20`20`20`20`20the`20`20command`20`20line`20`20is`20`20`20not
  861. V`20`20`20important.`20`20`20`20Only`20`20`20one
  862. X`20`20`20`20`20`20`20`20`20`20-remotestart`20may`20be`20used`20per`20ldb`20run
  863. V.
  864. X
  865. X`20`20`20`20`20-notify`20addr
  866. X`20`20`20`20`20`20`20`20`20`20This`20option`20affects`20games`20started`20by
  867. V`20either`20`20-start`20`20or
  868. X`20`20`20`20`20`20`20`20`20`20-remotestart`20on`20this`20ldb`20run.`20`20A`20m
  869. Vessage`20is`20sent`20to`20the
  870. X`20`20`20`20`20`20`20`20`20`20specified`20address`20when`20the`20game`20that
  871. V`20is`20started`20by`20`20the
  872. X`20`20`20`20`20`20`20`20`20`20-start`20`20or`20`20-remotestart`20`20option`20
  873. V`20ends.`20`20`20This`20`20message
  874. X`20`20`20`20`20`20`20`20`20`20includes`20the`20termination`20code`20of`20`20th
  875. Ve`20`20game,`20`20the`20`20game
  876. X`20`20`20`20`20`20`20`20`20`20value,`20`20and`20`20a`20`20gammon/backgammon
  877. V`20flag.`20`20This`20option`20is
  878. X`20`20`20`20`20`20`20`20`20`20mainly`20for`20the`20use`20of`20game`20starters
  879. V`20that`20wish`20to`20either
  880. X`20`20`20`20`20`20`20`20`20`20keep`20score`20or`20start`20new`20games`20when
  881. V`20the`20old`20ones`20finish.
  882. X`20`20`20`20`20`20`20`20`20`20Even`20though`20-notify`20is`20only`20used`20
  883. V`20by`20`20the`20`20player`20`20that
  884. X`20`20`20`20`20`20`20`20`20`20starts`20`20`20the`20`20game`20`20(or`20`20the
  885. V`20`20game`20`20starter`20`20that`20`20uses
  886. X`20`20`20`20`20`20`20`20`20`20-remotestart),`20both`20player's`20ldb`20will
  887. V`20`20send`20`20a`20`20message
  888. X`20`20`20`20`20`20`20`20`20`20when`20the`20game`20ends.
  889. X
  890. X`20`20`20`20`20-jacoby
  891. X`20`20`20`20`20`20`20`20`20`20The`20Jacoby`20rule`20is`20enabled`20for`20the
  892. V`20game`20started`20by`20this
  893. X`20`20`20`20`20`20`20`20`20`20ldb`20`20`20run.`20`20`20`20This`20`20rule`20
  894. V`20specifies`20`20that`20`20gammons`20`20and
  895. X`20`20`20`20`20`20`20`20`20`20backgammons`20count`20as`20a`20single`20point
  896. V`20if`20`20neither`20`20player
  897. X`20`20`20`20`20`20`20`20`20`20doubled`20`20during`20`20the`20`20game.`20`20
  898. V`20This`20`20option`20`20may`20only`20be
  899. X`20`20`20`20`20`20`20`20`20`20enabled`20by`20the`20user`20starting`20the`20gam
  900. Ve,`20and`20may`20`20not`20`20be
  901. X`20`20`20`20`20`20`20`20`20`20disabled`20`20by`20`20the`20`20other`20`20player
  902. V.`20`20`20If`20`20the`20`20opponent's
  903. X`20`20`20`20`20`20`20`20`20`20version`20of`20ldb`20does`20not`20support`20the
  904. V`20Jacoby`20rule,`20it`20`20is
  905. X`20`20`20`20`20`20`20`20`20`20disabled`20`20and`20`20the`20`20game`20`20procee
  906. Vds`20`20as`20if`20it`20were`20never
  907. X`20`20`20`20`20`20`20`20`20`20enabled.
  908. X
  909. X
  910. X
  911. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  912. V`20`20`20`20`20`20`20`20`20`20`20`20`20`203
  913. X
  914. X
  915. X
  916. X
  917. X
  918. X
  919. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  920. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  921. X
  922. X
  923. X
  924. X`20`20`20`20`20-crawford
  925. X`20`20`20`20`20`20`20`20`20`20The`20Crawford`20rule`20is`20enabled`20for`20the
  926. V`20`20game`20`20started`20`20by
  927. X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20run.`20`20This`20rule`20specifie
  928. Vs`20that`20neither`20player
  929. X`20`20`20`20`20`20`20`20`20`20may`20double`20for`20the`20first`20game`20of`20a
  930. V`20match`20`20after`20`20either
  931. X`20`20`20`20`20`20`20`20`20`20player`20`20is`20`20within`20`201`20`20point`20
  932. V`20of`20winning`20the`20match.`20`20If
  933. X`20`20`20`20`20`20`20`20`20`20match`20`20play`20`20is`20`20not`20`20enabled,
  934. V`20`20this`20`20argument`20`20has`20`20no
  935. X`20`20`20`20`20`20`20`20`20`20meaning.`20`20`20This`20`20option`20may`20only
  936. V`20be`20enabled`20by`20the`20user
  937. X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
  938. V`20disabled`20by`20the`20other
  939. X`20`20`20`20`20`20`20`20`20`20player.`20`20`20If`20`20the`20`20opponent's`20
  940. V`20version`20`20of`20ldb`20does`20not
  941. X`20`20`20`20`20`20`20`20`20`20support`20the`20Crawford`20rule,`20it`20is`20dis
  942. Vabled`20and`20the`20`20game
  943. X`20`20`20`20`20`20`20`20`20`20proceeds`20as`20if`20it`20were`20never`20enabled
  944. V.
  945. X
  946. X`20`20`20`20`20-european
  947. X`20`20`20`20`20`20`20`20`20`20The`20European`20rule`20is`20enabled`20for`20the
  948. V`20`20game`20`20started`20`20by
  949. X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20`20run.`20`20`20This`20`20rule
  950. V`20specifies`20that`20backgammons
  951. X`20`20`20`20`20`20`20`20`20`20count`20as`20double,`20rather`20than`20triple,
  952. V`20the`20score`20shown`20on
  953. X`20`20`20`20`20`20`20`20`20`20the`20`20cube.`20`20This`20option`20may`20only
  954. V`20be`20enabled`20by`20the`20user
  955. X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
  956. V`20disabled`20by`20the`20other
  957. X`20`20`20`20`20`20`20`20`20`20player.`20`20`20If`20`20the`20`20opponent's`20
  958. V`20version`20`20of`20ldb`20does`20not
  959. X`20`20`20`20`20`20`20`20`20`20support`20the`20European`20rule,`20it`20is`20dis
  960. Vabled`20and`20the`20`20game
  961. X`20`20`20`20`20`20`20`20`20`20proceeds`20as`20if`20it`20were`20never`20enabled
  962. V.
  963. X
  964. X`20`20`20`20`20-permanent
  965. X`20`20`20`20`20`20`20`20`20`20The`20game`20started`20by`20this`20ldb`20run`20i
  966. Vs`20`20marked`20`20permanent.
  967. X`20`20`20`20`20`20`20`20`20`20Permanent`20`20games`20`20are`20automatically
  968. V`20restarted`20when`20they
  969. X`20`20`20`20`20`20`20`20`20`20end.`20`20This`20is`20for`20people`20you`20play
  970. V`20with`20constantly,`20`20and
  971. X`20`20`20`20`20`20`20`20`20`20it`20saves`20you`20the`20trouble`20of`20restarti
  972. Vng`20the`20game`20when`20it
  973. X`20`20`20`20`20`20`20`20`20`20is`20over.`20`20This`20option`20may`20only`20be
  974. V`20enabled`20by`20`20the`20`20user
  975. X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
  976. V`20disabled`20by`20the`20other
  977. X`20`20`20`20`20`20`20`20`20`20player.`20`20If`20the`20opponent's`20`20version
  978. V`20`20of`20`20ldb`20`20does`20`20not
  979. X`20`20`20`20`20`20`20`20`20`20support`20permanent`20games,`20the`20permanent
  980. V`20flag`20is`20disabled
  981. X`20`20`20`20`20`20`20`20`20`20and`20the`20game`20proceeds`20as`20if`20it`20wer
  982. Ve`20never`20enabled.
  983. X
  984. X`20`20`20`20`20-match`20points
  985. X`20`20`20`20`20`20`20`20`20`20This`20option`20enables`20match`20play`20and`20s
  986. Vpecifies`20the`20number
  987. X`20`20`20`20`20`20`20`20`20`20of`20points`20the`20match`20is`20to`20play`20to.
  988. V`20`20Games`20that`20are`20part
  989. X`20`20`20`20`20`20`20`20`20`20of`20a`20match`20have`20additional`20information
  990. V`20displayed`20`20above
  991. X`20`20`20`20`20`20`20`20`20`20the`20`20board`20`20to`20`20show`20`20the`20`20c
  992. Vurrent`20`20match`20score`20and`20the
  993. X`20`20`20`20`20`20`20`20`20`20number`20of`20points`20being`20played`20to.`20
  994. V`20When`20a`20game`20that`20`20is
  995. X`20`20`20`20`20`20`20`20`20`20part`20`20of`20`20a`20`20match`20`20ends,`20`20a
  996. Vnd`20`20the`20specified`20number`20of
  997. X`20`20`20`20`20`20`20`20`20`20points`20has`20not`20been`20reached,`20`20the
  998. V`20`20game`20`20is`20`20restarted.
  999. X`20`20`20`20`20`20`20`20`20`20This`20`20option`20`20may`20`20only`20be`20enabl
  1000. Ved`20by`20the`20user`20starting
  1001. X`20`20`20`20`20`20`20`20`20`20the`20game,`20and`20may`20not`20be`20disabled
  1002. V`20by`20the`20other`20`20player.
  1003. X`20`20`20`20`20`20`20`20`20`20If`20the`20opponent's`20version`20of`20ldb`20doe
  1004. Vs`20not`20support`20match
  1005. X`20`20`20`20`20`20`20`20`20`20play,`20the`20game`20proceeds`20as`20if`20it`20w
  1006. Vere`20a`20normal`20game.
  1007. X
  1008. X`20`20`20`20`20-score
  1009. X`20`20`20`20`20`20`20`20`20`20The`20cumulative`20score`20`20for`20`20all`20
  1010. V`20opponents`20`20is`20`20printed.
  1011. X`20`20`20`20`20`20`20`20`20`20This`20`20consists`20`20of`20points,`20games,
  1012. V`20gammons,`20backgammons,
  1013. X`20`20`20`20`20`20`20`20`20`20and`20matches`20that`20`20have`20`20been`20`20wo
  1014. Vn`20`20and`20`20lost`20`20for`20`20each
  1015. X`20`20`20`20`20`20`20`20`20`20opponent.`20`20A`20total`20over`20all`20opponent
  1016. Vs`20is`20also`20printed.
  1017. X
  1018. X
  1019. X
  1020. X
  1021. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  1022. V`20`20`20`20`20`20`20`20`20`20`20`20`20`204
  1023. X
  1024. X
  1025. X
  1026. X
  1027. X
  1028. X
  1029. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  1030. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  1031. X
  1032. X
  1033. X
  1034. X`20`20`20`20`20-broadcast`20`5Bfile`5D
  1035. X`20`20`20`20`20`20`20`20`20`20The`20specified`20file`20is`20mailed`20to`20all
  1036. V`20current`20`20opponents.
  1037. X`20`20`20`20`20`20`20`20`20`20This`20`20is`20`20useful`20for`20announcing`20va
  1038. Vcation`20absences,`20etc.
  1039. X`20`20`20`20`20`20`20`20`20`20If`20the`20file`20argument`20is`20not`20given,
  1040. V`20`20standard`20`20input`20`20is
  1041. X`20`20`20`20`20`20`20`20`20`20read`20and`20sent`20to`20all`20opponents.
  1042. X
  1043. X`20`20`20`20`20-control
  1044. X`20`20`20`20`20`20`20`20`20`20This`20option`20puts`20ldb`20into`20a`20special
  1045. V`20mode`20that`20does`20`20not
  1046. X`20`20`20`20`20`20`20`20`20`20allow`20games`20to`20be`20played,`20but`20instea
  1047. Vd`20displays`20them`20one
  1048. X`20`20`20`20`20`20`20`20`20`20at`20a`20time`20and`20allows`20certain`20"overhe
  1049. Vad"`20functions`20to`20be
  1050. X`20`20`20`20`20`20`20`20`20`20performed.`20`20`20These`20`20are`20`20described
  1051. V`20fully`20in`20the`20section
  1052. X`20`20`20`20`20`20`20`20`20`20titled`20"CONTROLLING`20A`20GAME".
  1053. X
  1054. X`20`20`20`20`20-reconstruct`20file
  1055. X`20`20`20`20`20`20`20`20`20`20This`20option`20allows`20your`20game`20file`20to
  1056. V`20`20be`20`20reconstructed
  1057. X`20`20`20`20`20`20`20`20`20`20if`20`20you`20`20accidentally`20`20clobber`20
  1058. V`20it.`20`20`20It`20`20does`20`20this`20by
  1059. X`20`20`20`20`20`20`20`20`20`20extracting`20the`20information`20from`20`20your
  1060. V`20`20opponent's`20`20data
  1061. X`20`20`20`20`20`20`20`20`20`20file`20`20and`20"reversing"`20it`20so`20you`20ca
  1062. Vn`20use`20it.`20`20To`20use`20the
  1063. X`20`20`20`20`20`20`20`20`20`20reconstruct`20option,`20ask`20all`20of`20your
  1064. V`20opponents`20`20to`20`20send
  1065. X`20`20`20`20`20`20`20`20`20`20you`20their`20.ldbdata`20files.`20`20Extract`20t
  1066. Vhese`20from`20your`20mail
  1067. X`20`20`20`20`20`20`20`20`20`20into`20files`20on`20your`20system,`20strip`20the
  1068. V`20mail`20headers,`20`20and
  1069. X`20`20`20`20`20`20`20`20`20`20feed`20`20them`20one`20at`20a`20time`20into`20ld
  1070. Vb.`20`20For`20each`20game`20found
  1071. X`20`20`20`20`20`20`20`20`20`20listing`20you`20as`20the`20opponent,`20you`20wil
  1072. Vl`20`20be`20`20prompted`20`20to
  1073. X`20`20`20`20`20`20`20`20`20`20enter`20`20the`20`20opponent's`20e-mail`20addres
  1074. Vs`20or`20alias`20(and`20his
  1075. X`20`20`20`20`20`20`20`20`20`20name`20if`20he`20is`20not`20in`20your`20people
  1076. V`20file),`20`20and`20`20the`20`20game
  1077. X`20`20`20`20`20`20`20`20`20`20will`20be`20added`20to`20your`20game`20file.
  1078. X
  1079. X`20`20`20`20`20`20`20`20`20`20The`20reconstruct`20function`20cannot`20recover
  1080. V`20games`20that`20were
  1081. X`20`20`20`20`20`20`20`20`20`20in`20`20the`20process`20of`20starting`20(i.e.
  1082. V`20in`20their`20initial`20roll
  1083. X`20`20`20`20`20`20`20`20`20`20stage),`20or`20that`20have`20already`20completed
  1084. V`20`20(why`20`20bother?).
  1085. X`20`20`20`20`20`20`20`20`20`20Your`20`20opponent`20`20should`20`20read`20`20an
  1086. Vy`20`20mail`20`20files`20you`20sent
  1087. X`20`20`20`20`20`20`20`20`20`20before`20your`20data`20file`20got`20clobbered,
  1088. V`20`20and`20`20should`20`20make
  1089. X`20`20`20`20`20`20`20`20`20`20his`20`20move`20and`20send`20it`20before`20sendi
  1090. Vng`20you`20his`20data`20file.
  1091. X`20`20`20`20`20`20`20`20`20`20You`20will`20not`20need`20to`20process`20the`20m
  1092. Vove`20he`20sent,`20`20though,
  1093. X`20`20`20`20`20`20`20`20`20`20since`20`20all`20`20that`20`20data`20is`20in`20h
  1094. Vis`20file`20anyway.`20`20It`20won't
  1095. X`20`20`20`20`20`20`20`20`20`20hurt`20if`20you`20do,`20ldb`20will`20just`20igno
  1096. Vre`20it.
  1097. X
  1098. X`20`20`20`20`20-help
  1099. X`20`20`20`20`20`20`20`20`20`20This`20prints`20a`20one-line`20description`20of
  1100. V`20each`20`20option,`20`20in
  1101. X`20`20`20`20`20`20`20`20`20`20case`20you`20forget`20later`20on.
  1102. X
  1103. XSCREEN
  1104. X`20`20`20`20`20The`20screen`20displays`20the`20following`20items`20of`20intere
  1105. Vst:
  1106. X
  1107. X`20`20`20`20`20Opponent
  1108. X`20`20`20`20`20`20`20`20`20`20The`20e-mail`20address`20and`20personal`20name
  1109. V`20`20of`20`20the`20`20opponent
  1110. X`20`20`20`20`20`20`20`20`20`20are`20`20displayed`20on`20the`20top`20line`20of
  1111. V`20the`20screen.`20`20This`20can
  1112. X`20`20`20`20`20`20`20`20`20`20help`20identify`20the`20`20game`20`20if`20`20you
  1113. V`20`20have`20`20many`20`20games`20`20in
  1114. X`20`20`20`20`20`20`20`20`20`20progress`20at`20once.
  1115. X
  1116. X`20`20`20`20`20Board`20Label
  1117. X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20displays`20one`20of`20three
  1118. V`20possible`20board`20`20images`20`20at`20`20a
  1119. X
  1120. X
  1121. X
  1122. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  1123. V`20`20`20`20`20`20`20`20`20`20`20`20`20`205
  1124. X
  1125. X
  1126. X
  1127. X
  1128. X
  1129. X
  1130. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  1131. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  1132. X
  1133. X
  1134. X
  1135. X`20`20`20`20`20`20`20`20`20`20time;`20`20the`20`20name`20`20of`20`20the`20`20b
  1136. Voard`20currently`20displayed`20is
  1137. X`20`20`20`20`20`20`20`20`20`20shown`20on`20the`20second`20line`20of`20the`20sc
  1138. Vreen,`20near`20the`20`20left.
  1139. X`20`20`20`20`20`20`20`20`20`20The`20`20significance`20`20of`20`20these`20`20th
  1140. Vree`20boards`20is`20explained
  1141. X`20`20`20`20`20`20`20`20`20`20below.
  1142. X
  1143. X`20`20`20`20`20Flags
  1144. X`20`20`20`20`20`20`20`20`20`20This`20area`20displays`20any`20special`20rules
  1145. V`20in`20effect`20for`20`20the
  1146. X`20`20`20`20`20`20`20`20`20`20game.`20`20`20Each`20`20special`20`20rule`20`20c
  1147. Vauses`20one`20character`20to`20be
  1148. X`20`20`20`20`20`20`20`20`20`20displayed.`20`20These`20are:
  1149. X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20J`20`20`20`20`20Jacoby`20rule
  1150. X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20C`20`20`20`20`20Crawford`20rule
  1151. X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20E`20`20`20`20`20European`20rule
  1152. X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20P`20`20`20`20`20Permanent`20game
  1153. X`20`20`20`20`20`20`20`20`20`20In`20addition,`20the`20Crawford`20rule`20indicat
  1154. Vor`20`20is`20`20shown`20`20in
  1155. X`20`20`20`20`20`20`20`20`20`20reverse`20`20video`20`20if`20`20the`20Crawford
  1156. V`20rule`20game`20is`20currently
  1157. X`20`20`20`20`20`20`20`20`20`20being`20played.
  1158. X
  1159. X`20`20`20`20`20Match`20Score
  1160. X`20`20`20`20`20`20`20`20`20`20The`20current`20match`20score`20is`20displayed
  1161. V`20next`20to`20the`20`20board
  1162. X`20`20`20`20`20`20`20`20`20`20label,`20`20as`20`20is`20the`20number`20of`20poi
  1163. Vnts`20the`20match`20plays`20to.
  1164. X`20`20`20`20`20`20`20`20`20`20If`20the`20game`20being`20displayed`20is`20not
  1165. V`20`20part`20`20of`20`20a`20`20match,
  1166. X`20`20`20`20`20`20`20`20`20`20this`20area`20is`20blanked`20out.
  1167. X
  1168. X`20`20`20`20`20Pip`20Count
  1169. X`20`20`20`20`20`20`20`20`20`20Near`20the`20right`20of`20the`20screen`20on`20th
  1170. Ve`20second`20line`20is`20`20the
  1171. X`20`20`20`20`20`20`20`20`20`20pip`20count`20for`20the`20board`20being`20displa
  1172. Vyed.
  1173. X
  1174. X`20`20`20`20`20Board
  1175. X`20`20`20`20`20`20`20`20`20`20The`20board`20is`20`20displayed`20`20near`20`20t
  1176. Vhe`20`20left`20`20side`20`20of`20`20the
  1177. X`20`20`20`20`20`20`20`20`20`20screen,`20`20and`20`20takes`20`20up`20`20most
  1178. V`20`20of`20`20the`20screen`20area.`20`20It
  1179. X`20`20`20`20`20`20`20`20`20`20consists`20of`20an`20outline,`20drawn`20`20with
  1180. V`20`20ASCII`20`20characters,
  1181. X`20`20`20`20`20`20`20`20`20`20and`20`2028`20"points"`20where`20pieces`20can
  1182. V`20reside.`20`20Of`20these,`2024
  1183. X`20`20`20`20`20`20`20`20`20`20are`20the`20normal`20points`20making`20up`20the
  1184. V`20main`20`20body`20`20of`20`20the
  1185. X`20`20`20`20`20`20`20`20`20`20board`20`20(numbered`201-24),`202`20are`20the
  1186. V`20"BAR"`20points,`20located
  1187. X`20`20`20`20`20`20`20`20`20`20between`20the`20left`20and`20right`20halves`20of
  1188. V`20`20the`20`20main`20`20board,
  1189. X`20`20`20`20`20`20`20`20`20`20and`20`202`20`20are`20the`20"OFF"`20points`20(wh
  1190. Vere`20pieces`20go`20when`20they
  1191. X`20`20`20`20`20`20`20`20`20`20are`20borne`20off),`20located`20`20to`20`20the
  1192. V`20`20left`20`20of`20`20the`20`20board.
  1193. X`20`20`20`20`20`20`20`20`20`20Pieces`20`20are`20represented`20by`20upper`20or
  1194. V`20lower`20case`20letters.
  1195. X`20`20`20`20`20`20`20`20`20`20To`20help`20you`20remember`20which`20direction
  1196. V`20you`20`20are`20`20playing,
  1197. X`20`20`20`20`20`20`20`20`20`20there`20are`20arrows`20drawn`20at`20the`20four
  1198. V`20corners`20of`20the`20board
  1199. X`20`20`20`20`20`20`20`20`20`20indicating`20`20your`20`20direction`20`20of`20
  1200. V`20play.`20`20`20The`20`20`20bar`20`20`20is
  1201. X`20`20`20`20`20`20`20`20`20`20indicated`20`20by`20`20the`20word`20"BAR";`20thi
  1202. Vs`20changes`20to`20"---"`20if
  1203. X`20`20`20`20`20`20`20`20`20`20neither`20player`20can`20hit.
  1204. X
  1205. X`20`20`20`20`20Doubling`20Cube
  1206. X`20`20`20`20`20`20`20`20`20`20The`20current`20value`20of`20the`20doubling`20cu
  1207. Vbe`20is`20displayed`20`20in
  1208. X`20`20`20`20`20`20`20`20`20`20reverse`20video`20on`20the`20left`20side`20of
  1209. V`20the`20screen.`20`20The`20cube
  1210. X`20`20`20`20`20`20`20`20`20`20will`20appear`20next`20to`20the`20home`20board
  1211. V`20of`20the`20owner`20of`20`20the
  1212. X`20`20`20`20`20`20`20`20`20`20cube,`20`20or`20`20in`20the`20middle`20if`20neit
  1213. Vher`20player`20has`20doubled.
  1214. X`20`20`20`20`20`20`20`20`20`20For`20example,`20if`20the`20player`20whose`20hom
  1215. Ve`20board`20is`20`20at`20`20the
  1216. X`20`20`20`20`20`20`20`20`20`20bottom`20of`20the`20screen`20doubled`20last,`20t
  1217. Vhe`20cube`20will`20appear
  1218. X`20`20`20`20`20`20`20`20`20`20beside`20the`20top`20of`20the`20board.
  1219. X
  1220. X
  1221. X
  1222. XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
  1223. V`20`20`20`20`20`20`20`20`20`20`20`20`20`206
  1224. X
  1225. X
  1226. X
  1227. X
  1228. X
  1229. X
  1230. XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
  1231. V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
  1232. X
  1233. X
  1234. X
  1235. X`20`20`20`20`20Move`20Blocks
  1236. +-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
  1237.