home *** CD-ROM | disk | FTP | other *** search
- 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
- From: ake@dayvd.dayton.saic.com (Earle Ake)
- Newsgroups: vmsnet.sources.games
- Subject: ldb - Long Distance Backgammon [01/16]
- Date: 8 Apr 93 10:42:10 EST
- Organization: Science Applications Intl Corp - Dayton, OH
- Lines: 1225
- Message-ID: <1993Apr8.104211.1@dayvd.dayton.saic.com>
- NNTP-Posting-Host: dayvd.dayton.saic.com
- Xref: uunet vmsnet.sources.games:662
-
- Long Distance Backgammon
- ------------------------
-
- This is a program that lets two people easily play backgammon
- by e-mail. It currently runs only on character-oriented terminals
- (or emulators thereof) under the curses package. It runs on most
- flavors of UNIX, as well as VMS version 5.0 and above.
-
- New Features
- ------------
-
- A complete listing of the changes for rev 1.1, 1.2, and 1.3 is in
- the comments at the top of main.c. Briefly, they are:
- - Ldb has a context-sensitive help function that is activated
- whenever you press ? or h.
- - Match play is now supported.
- - The Crawford and Jacoby rules are supported, as is the european
- scoring of backgammons as double rather than triple games.
- - You can now declare a game to be "permanent", meaning that it
- will be automatically restarted when it ends. This is for
- people you play continuously.
- - The current pip count for you and your opponent is displayed
- above the board.
- - You can obtain detailed statistics about the rolls you and
- your opponent have received, including a histogram of
- relative frequency, by pressing the % or # keys.
- - You can use the -score option to print a summary of games
- won/lost by opponent.
- - You can press ESC while entering a message to get back to
- your game and abort the operation.
- - Ldb will not ask for the second digit of a 1-digit point number
- unless it needs to (e.g. to tell the difference between 1 and 12)
- - Comments are rot13'd before they are sent. That way you won't
- accidentally read the comment while extracting your mail and
- ruin the surprise. If ldb sees that your opponent is running
- an old version of ldb, comments work like they used to.
- - Concede now scores gammons/backgammons, so a player cannot
- concede to avoid a gammon or backgammon.
- - A lock file is used to prevent more than one ldb from running
- at the same time in any account.
- - The name, mail address, and an alias for all your opponents are
- stored in a new file. This file also keeps track of games
- won and lost to that opponent.
- - If you clobber your data file, ldb can reconstruct it from your
- opponents' data files.
- - Reverse video now works on VMS, as does the screen redraw and
- the supervisor key.
- - Any printing characters may be used to draw the game pieces.
- - You can dump the screen to a file from the -control menu.
-
-
-
- Perry R. Ross
- ross@emf780.den.mmc.com
-
- VMS modifications by Earle Ake
- ake@dayton.saic.com
-
-
- $! ------------------ CUT HERE -----------------------
- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
- $!
- $! This archive created by VMS_SHARE Version 8.3
- $! On 7-APR-1993 22:25:30.21 By user AKE (Earle Ake <ake@dayton.saic.com>)
- $!
- $! The VMS_SHARE software that created this archive
- $! was written by Andy Harper, Kings College London UK
- $! -- December 1992
- $!
- $! Credit is due to these people for their original ideas:
- $! James Gray, Michael Bednarek
- $!
- $!+ THIS PACKAGE DISTRIBUTED IN 16 PARTS, TO KEEP EACH PART
- $! BELOW 100 BLOCKS
- $!
- $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
- $! AND EXECUTE AS A COMMAND PROCEDURE ( @name )
- $!
- $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
- $! 1. README.;1
- $! 2. TODO.;1
- $! 3. LDB.DOC;1
- $! 4. LDB.MAN;1
- $! 5. LDB.PS;1
- $! 6. MAKEFILE.;10
- $! 7. MAKEFILE.UNIX;1
- $! 8. MAKEFILE.VMS;4
- $! 9. LDB.OPT;1
- $! 10. MAKELDB.COM;1
- $! 11. BOARD.C;1
- $! 12. CHECK.C;1
- $! 13. CONTROL.C;1
- $! 14. DOHELP.C;1
- $! 15. DOSTATS.C;1
- $! 16. FE_CURSES.C;1
- $! 17. FLIST_NONE.C;1
- $! 18. FLIST_UNIX.C;1
- $! 19. FLIST_VMS.C;1
- $! 20. GAME.C;1
- $! 21. LOCK.C;1
- $! 22. MAIN.C;1
- $! 23. MISC.C;1
- $! 24. MOVE.C;1
- $! 25. PROCESS.C;1
- $! 26. RCVOP.C;1
- $! 27. READMAIL.C;1
- $! 28. RENAME.C;1
- $! 29. R_XRAND.C;1
- $! 30. SAVE.C;1
- $! 31. T_EMAIL.C;1
- $! 32. VARS.C;1
- $! 33. LDB.H;1
- $! 34. PATCHLEVEL.H;1
- $! 35. LDBSTARTER.CSH;1
- $! 36. LDB.TEX;1
- $!
- $set="set"
- $set symbol/scope=(nolocal,noglobal)
- $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
- $e="write sys$error ""%UNPACK"", "
- $w="write sys$output ""%UNPACK"", "
- $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
- $ if f$getsyi("CPU") .gt. 127 then $ goto start
- $ ve=f$getsyi("version")
- $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
- $ e "-E-OLDVER, Must run at least VMS 4.4"
- $ v=f$verify(v)
- $ exit 44
- $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes
- $ if f$parse(P1) .nes. "" then $ goto dirok
- $ dn=f$parse(P1,,,"DIRECTORY")
- $ w "-I-CREDIR, Creating directory ''dn'"
- $ create/dir 'dn'
- $ if $status then $ goto dirok
- $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped"
- $ delete 'f'*
- $ exit
- $dirok:
- $ x=f$search(P1)
- $ if x .eqs. "" then $ goto file_absent
- $ e "-W-EXISTS, File ''P1' exists. Skipped"
- $ delete 'f'*
- $ exit
- $file_absent:
- $ w "-I-UNPACK, Unpacking file ", P1
- $ n=P1
- $ if P3 .nes. "" then $ n=f
- $ if .not. f$verify() then $ define/user sys$output nl:
- $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n'
- PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t,
- SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;
- PROCEDURE SkipPartsep LOOP EXITIF MARK(NONE)=END_OF(b);EXITIF INDEX(ERASE_LINE,
- "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b,
- n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF;
- MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1);
- p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[
- ' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE;
- PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=END_OF(b);
- IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine;
- MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET(
- SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO(
- COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,GET_INFO(
- COMMAND_LINE,"output_file"));QUIT;
- $ if p3 .eqs. "" then $ goto dl
- $ open/write fdl &f
- $ write fdl "RECORD"
- $ write fdl P3
- $ close fdl
- $ w "-I-CONVRFM, Converting record format to ", P3
- $ convert/fdl=&f &f-1 &P1
- $dl: delete 'f'*
- $ checksum 'P1'
- $ if checksum$checksum .nes. P2 then $ -
- e "-E-CHKSMFAIL, Checksum of ''P1' failed."
- $ exit
- $ endsubroutine
- $start:
- $!
- $ create 'f'
- X`09`09Long`20Distance`20Backgammon
- X`09`09------------------------
- X
- X`09This`20is`20a`20program`20that`20lets`20two`20people`20easily`20play`20back
- Vgammon
- Xby`20e-mail.`20`20It`20currently`20runs`20only`20on`20character-oriented`20ter
- Vminals
- X(or`20emulators`20thereof)`20under`20the`20curses`20package.`20`20It`20runs
- V`20on`20most
- Xflavors`20of`20UNIX,`20as`20well`20as`20VMS`20version`205.0`20and`20above.
- X
- X`09To`20build`20ldb,`20create`20a`20directory,`20copy`20all`20the`20parts`20in
- Vto
- Xthat`20directory,`20strip`20the`20usenet`20or`20mail`20headers`20with`20a`20te
- Vxt`20editor,
- Xand`20execute`20them`20with`20a`20shell`20(e.g.`20sh`20Part1;`20sh`20Part2;
- V`20...).
- XThe`20installation`20options`20are`20documented`20in`20the`20Makefile.
- X
- X`09Suggestions`20and`20problems`20are`20cheerfully`20accepted,`20all`20the`20m
- Vore
- Xso`20when`20accompanied`20by`20appropriate`20patches,`20in`20any`20format`20th
- Ve`20patch
- Xprogram`20understands`20(e.g.`20context`20diff).`20`20E-mail`20to`20ross@emf78
- V0.den.mmc.com.
- X
- X`09This`20file`20is`20for`20version`201.3`20of`20ldb.`20`20For`20those`20upgra
- Vding`20from
- X1.0`20who`20are`20wondering`20what`20happened`20to`201.1,`20it`20was`20only
- V`20released`20on
- Xthe`20DECUS`20tape.`20`20Because`20of`20time`20constraints,`20it`20had`20to
- V`20be`20released
- Xwithout`20some`20of`20the`20planned`20features,`20so`20it`20was`20assigned`20a
- V`20unique`20rev`20number.
- X1.2`20was`20to`20be`20the`20next`20version,`20but`20it`20was`20released`20so
- V`20widely`20for`20beta
- Xtest`20that`20there`20were`20countless`20different`20"versions"`20of`20version
- V`201.2.
- X
- X`09`09New`20Features
- X`09`09------------
- X
- X`09A`20complete`20listing`20of`20the`20changes`20for`20rev`201.1,`201.2,`20and
- V`201.3`20is`20in
- Xthe`20comments`20at`20the`20top`20of`20main.c.`20`20Briefly,`20they`20are:
- X`09-`20Ldb`20has`20a`20context-sensitive`20help`20function`20that`20is`20activ
- Vated
- X`09`20`20whenever`20you`20press`20?`20or`20h.
- X`09-`20Match`20play`20is`20now`20supported.
- X`09-`20The`20Crawford`20and`20Jacoby`20rules`20are`20supported,`20as`20is`20th
- Ve`20european
- X`09`20`20scoring`20of`20backgammons`20as`20double`20rather`20than`20triple`20g
- Vames.
- X`09-`20You`20can`20now`20declare`20a`20game`20to`20be`20"permanent",`20meaning
- V`20that`20it
- X`09`20`20will`20be`20automatically`20restarted`20when`20it`20ends.`20`20This
- V`20is`20for
- X`09`20`20people`20you`20play`20continuously.
- X`09-`20The`20current`20pip`20count`20for`20you`20and`20your`20opponent`20is
- V`20displayed
- X`09`20`20above`20the`20board.
- X`09-`20You`20can`20obtain`20detailed`20statistics`20about`20the`20rolls`20you
- V`20and
- X`09`20`20your`20opponent`20have`20received,`20including`20a`20histogram`20of
- X`09`20`20relative`20frequency,`20by`20pressing`20the`20%`20or`20#`20keys.
- X`09-`20You`20can`20use`20the`20-score`20option`20to`20print`20a`20summary`20of
- V`20games
- X`09`20`20won/lost`20by`20opponent.
- X`09-`20You`20can`20press`20ESC`20while`20entering`20a`20message`20to`20get`20b
- Vack`20to
- X`09`20`20your`20game`20and`20abort`20the`20operation.
- X`09-`20Ldb`20will`20not`20ask`20for`20the`20second`20digit`20of`20a`201-digit
- V`20point`20number
- X`09`20`20unless`20it`20needs`20to`20(e.g.`20to`20tell`20the`20difference`20bet
- Vween`201`20and`2012)
- X`09-`20Comments`20are`20rot13'd`20before`20they`20are`20sent.`20`20That`20way
- V`20you`20won't
- X`09`20`20accidentally`20read`20the`20comment`20while`20extracting`20your`20mai
- Vl`20and
- X`09`20`20ruin`20the`20surprise.`20`20If`20ldb`20sees`20that`20your`20opponent
- V`20is`20running
- X`09`20`20an`20old`20version`20of`20ldb,`20comments`20work`20like`20they`20used
- V`20to.
- X`09-`20Concede`20now`20scores`20gammons/backgammons,`20so`20a`20player`20canno
- Vt
- X`09`20`20concede`20to`20avoid`20a`20gammon`20or`20backgammon.
- X`09-`20A`20lock`20file`20is`20used`20to`20prevent`20more`20than`20one`20ldb
- V`20from`20running
- X`09`20`20at`20the`20same`20time`20in`20any`20account.
- X`09-`20The`20name,`20mail`20address,`20and`20an`20alias`20for`20all`20your`20o
- Vpponents`20are
- X`09`20`20stored`20in`20a`20new`20file.`20`20This`20file`20also`20keeps`20track
- V`20of`20games
- X`09`20`20won`20and`20lost`20to`20that`20opponent.
- X`09-`20If`20you`20clobber`20your`20data`20file,`20ldb`20can`20reconstruct`20it
- V`20from`20your
- X`09`20`20opponents'`20data`20files.
- X`09-`20Reverse`20video`20now`20works`20on`20VMS,`20as`20does`20the`20screen
- V`20redraw`20and
- X`09`20`20the`20supervisor`20key.
- X`09-`20Any`20printing`20characters`20may`20be`20used`20to`20draw`20the`20game
- V`20pieces.
- X`09-`20You`20can`20dump`20the`20screen`20to`20a`20file`20from`20the`20-control
- V`20menu.
- X
- X
- X`09`09Automatic`20Game`20Starters
- X`09`09-----------------------
- X
- X`09An`20automatic`20game`20starter`20has`20been`20set`20up`20by`20Mark`20Rubin
- V`20on
- Xcs.umb.edu.`20`20This`20matches`20people`20by`20ability`20and`20automatically
- V`20starts`20a
- Xgame`20between`20them.`20`20The`20ability`20categories`20are`20novice,`20inter
- Vmediate,`20and
- Xexpert.`20`20For`20example,`20if`20you`20consider`20yourself`20an`20expert,
- V`20you`20would
- Xmail`20to:
- X
- X`09`09ldb-expert@cs.umb.edu
- X
- Xwhereupon`20you`20will`20be`20matched`20at`20random`20with`20someone`20else
- V`20who`20mailed`20to`20the
- Xsame`20address,`20and`20your`20game`20will`20be`20started`20using`20the`20remo
- Vtestart
- Xfunction`20of`20ldb.
- X
- X`09For`20more`20information,`20mail`20to:
- X
- X`09`09ldb-help@cs.umb.edu
- X
- XYou`20will`20receive`20an`20automated`20reply`20by`20return`20mail.
- X
- XFor`20those`20wishing`20to`20set`20up`20their`20own`20game`20starter,`20the
- V`20shellscript`20used
- Xto`20do`20it`20is`20included`20in`20this`20distribution`20as`20ldbstarter.csh.
- V
- XGetting`20it`20to`20work`20on`20your`20system`20may`20take`20a`20little`20work
- V.
- X
- X
- X`09`09Running`20Ldb
- X`09`09-----------
- X
- X`09The`20first`20time`20ldb`20is`20run,`20it`20will`20create`20a`20file`20in
- V`20your`20home
- Xdirectory`20called`20".ldbrc".`20`20If`20this`20name`20is`20inconvenient,`20de
- Vfine`20the
- Xenvironment`20variable`20LDBRC`20to`20be`20the`20name`20you`20want`20before
- V`20running`20it
- Xthe`20first`20time`20(and`20all`20times`20after`20that).`20`20Ldb`20will`20ask
- V`20for`20your
- Xpersonal,`20human-type`20name`20and`20your`20e-mail`20address.`20`20All`20othe
- Vr`20options
- Xwill`20be`20set`20to`20their`20defaults,`20as`20explained`20in`20the`20manual.
- V`20`20The`20"sendcmd"
- Xoption`20in`20.ldbrc`20may`20need`20to`20be`20modified`20to`20work`20with`20th
- Ve`20mail`20program
- Xon`20your`20system.`20`20This`20option`20tells`20ldb`20how`20to`20send`20mail
- V`20to`20your`20opponent,
- Xand`20must`20be`20correctly`20set`20for`20ldb`20to`20work.`20`20This`20string
- V`20after`20"sendcmd="
- Xis`20executed`20by`20ldb`20after`20making`20the`20following`20substitutions:
- X`09$a`09is`20replaced`20by`20the`20address`20to`20mail`20to.
- X`09$f`09is`20replaced`20by`20the`20file`20containing`20the`20message.
- X`09$s`09is`20replaced`20by`20the`20subject`20line`20of`20the`20message.
- X`09$$`09is`20replaced`20by`20a`20single`20$.
- XThe`20default,`20which`20should`20work`20with`20most`20UNIX`20systems,`20is:
- X`09mail`20-s`20'$s'`20$a`20<`20$f
- XNote`20that`20ldb`20performs`20the`20substitutions,`20not`20the`20shell,`20so
- V`20the`20substitutions
- Xare`20not`20subject`20to`20any`20quoting.`20`20All`20other`20characters,`20inc
- Vluding`20shell
- Xmetacharacters,`20are`20passed`20to`20the`20system`20unchanged.
- X
- XVMS`20users`20will`20have`20the`20following`20default`20sendcmd`20set:
- X
- X`09sendcmd=MAIL/SUBJECT="$s"`20$f`20IN%"""$a"""
- X
- XThis`20is`20correct`20if`20you`20are`20using`20the`20IN%`20SMTP`20mailer.`20
- V`20If`20not,
- Xyou`20may`20need`20to`20change`20the`20sendcmd=`20line`20as`20follows:
- X
- XIf`20you`20are`20using`20VMS`20mail`20only,`20use`20the`20line:
- X
- X`09sendcmd=MAIL/SUBJECT="$s"`20$f`20$a
- X
- XDepending`20on`20which`20SMTP`20mailer`20you`20have,`20the`20IN%`20may`20need
- V`20to`20be
- Xchanged`20to`20WINS%`20(for`20Wollongong),`20etc.
- X
- X
- X`09`09Starting`20A`20Game
- X`09`09---------------
- X
- X`09To`20start`20a`20game,`20type:
- X`09`09ldb`20-start`20opponent's-email-address
- Xand`20everything`20is`20automatic`20from`20there.`20`20You`20may`20have`20to
- V`20exchange
- Xseveral`20mail`20messages`20before`20you`20are`20ready`20to`20play,`20since
- V`20your`20ldb`20has`20to
- Xdo`20the`20initial`20roll`20with`20the`20remote`20ldb,`20and`20if`20there`20is
- V`20a`20tie,`20the
- Xinitial`20roll`20is`20repeated.`20`20Eventually,`20you`20will`20see`20a`20boar
- Vd`20drawn`20on
- Xthe`20screen.`20`20The`20commands`20are`20in`20the`20bottom`20right`20corner.
- V`20`20The`20moves`20by
- Xyou`20and`20your`20opponent`20are`20above`20that,`20on`20the`20right`20side
- V`20of`20the`20screen,`20and
- Xthe`20bottom`20of`20the`20screen`20contains`20a`20place`20for`20you`20to`20enc
- Vlose`20a`202-line
- Xmessage`20with`20each`20move.`20`20This`20is`20useful`20for`20taunting,`20plea
- Vding,`20etc.
- XYou`20will`20need`20to`20press`20'r'`20to`20roll`20the`20dice,`20then`20press
- V`20the`20number`20of`20the`20roll
- Xyou`20want`20to`20use`20followed`20by`20the`20point`20you`20want`20to`20move
- V`20from.`20`20For`20example,
- Xif`20you`20roll`205`202,`20and`20you`20want`20to`20move`20the`20piece`20on`20t
- Vhe`2011`20point`205,`20press
- X5`201`201.`20`20You`20don't`20need`20to`20hit`20return.`20`20After`20you`20hav
- Ve`20used`20one`20of`20your`20rolls,
- Xthere`20are`203`20shortcuts`20you`20can`20use`20for`20the`20remainder`20of`20y
- Vour`20roll:
- X`09<space`20bar>`09Continues`20the`20last`20move.`20`20The`20piece`20you`20las
- Vt`20moved
- X`09`09`09is`20moved`20by`20the`20amount`20of`20the`20other/next`20roll.
- X`09<return>`09Repeat`20the`20last`20move.`20`20The`20other/next`20roll`20is
- V`20applied
- X`09`09`09to`20the`20same`20point`20you`20moved`20from`20last`20time.
- X`09p`09`09Make`20point.`20`20This`20gets`20a`20little`20tricky.`20`20Ldb`20att
- Vempts
- X`09`09`09to`20use`20the`20other/next`20roll`20to`20move`20one`20of`20your`20pi
- Veces
- X`09`09`09so`20that`20it`20ends`20up`20on`20the`20same`20point`20as`20your`20la
- Vst`20move
- X`09`09`09ended`20on.`20`20That`20is,`20if`20you`20roll`205`202`20and`20use`20t
- Vhe`205
- X`09`09`09to`20move`20from`20the`206`20point`20to`20the`2011`20point,`20and`20h
- Vit`20"p",
- X`09`09`09ldb`20will`20move`20one`20of`20your`20pieces`20from`20the`209`20point
- V`20to
- X`09`09`09the`2011`20point`20to`20make`20the`2011`20point.`20`20This`20assumes,
- V
- X`09`09`09of`20course,`20that`20you`20have`20a`20piece`20on`20the`209`20point.
- X
- X`09Ldb`20checks`20your`20moves`20for`20all`20conceivable`20errors.`20`20These
- Xare`20listed`20in`20the`20manual.
- X
- X`09To`20move`20off`20the`20bar,`20merely`20select`20a`20roll.`20`20That`20roll
- V`20will
- Xautomatically`20bring`20you`20off`20the`20bar,`20since`20you`20have`20no`20oth
- Ver`20legal
- Xmove`20anyway.`20`20To`20bear`20pieces`20off,`20you`20can`20either`20enter`20t
- Vhe`20point
- Xnumber`20like`20normal,`20or`20press`20"o"`20to`20have`20it`20bear`20off`20for
- V`20you`20automatically.
- X
- X`09When`20a`20move`20arrives`20in`20your`20mail,`20go`20into`20mail`20and`20sa
- Vve`20the`20message
- Xinto`20a`20file.`20`20Delete`20the`20message`20from`20your`20mail,`20exit`20ma
- Vil,`20and`20run
- Xldb`20with`20the`20name`20of`20the`20file`20as`20an`20argument.`20`20There`20a
- Vre`20easier`20ways
- Xto`20feed`20incoming`20mail`20to`20ldb;`20these`20are`20discussed`20in`20the
- V`20manual.
- X
- X`09For`20more`20options,`20read`20the`20manual`20and`20the`20comments`20at`20t
- Vhe`20top
- Xof`20main.c.
- X
- X`09Good`20luck!
- X
- X`09`09`09`09`09`09Perry`20R.`20Ross
- X`09`09`09`09`09`09ross@emf780.den.mmc.com
- X
- X-----------------------------------------------------------------------------
- X
- X`09Really`20Scary`20and`20Hopefully`20Bulletproof`20Legal`20Statement:
- X
- XThis`20software`20is`20copyright`201991`20by`20Perry`20R.`20Ross.`20`20Permiss
- Vion`20to`20use,
- Xcopy,`20modify,`20and`20redistribute`20it`20is`20granted`20provided:
- X`09(1)`20It`20is`20not`20sold.
- X`09(2)`20This`20notice`20accompanies`20all`20copies,`20and`20is`20kept`20intac
- Vt.
- X`09(3)`20Users`20do`20not`20cheat`20by`20any`20method,`20including`20but`20not
- V`20limited`20to:
- X`09`09A.`20modifying`20the`20roll`20generated`20by`20the`20random`20number`20g
- Venerator,
- X`09`09B.`20modifying`20the`20code`20to`20provide`20any`20roll`20other`20than
- V`20that
- X`09`09`20`20`20generated`20by`20a`20bona-fide`20random`20number`20generator,
- X`09`09C.`20taking`20advantage`20of`20any`20non-randomness`20in`20a`20random
- X`09`09`20`20`20number`20generator`20to`20predict`20upcoming`20rolls,
- X`09`09D.`20changing`20the`20contents`20of`20an`20incoming`20message`20or`20of
- V`20the
- X`09`09`20`20`20.ldbdata`20file`20to`20modify`20the`20normal`20progression`20of
- V`20a
- X`09`09`20`20`20game`20in`20any`20way,`20or
- X`09`09E.`20generating`20a`20roll`20before`20offering`20to`20double.
- X`09`20`20`20Persons`20guilty`20of`20cheating`20in`20any`20way`20while`20using
- V`20this`20software
- X`09`20`20`20are`20denied`20permission`20to`20use`20or`20distribute`20this`20so
- Vftware
- X`09`20`20`20in`20perpetuity.`20`20Excluded`20from`20the`20definition`20of`20ch
- Veating`20is
- X`09`20`20`20any`20action`20whose`20intention`20is`20to`20test`20or`20debug`20t
- Vhis`20software,
- X`09`20`20`20as`20long`20as`20the`20opponent`20is`20aware`20that`20these`20acti
- Vons`20are`20being
- X`09`20`20`20performed,`20and`20the`20game`20is`20considered`20"unofficial".
- XThe`20above`20restrictions`20are`20made`20in`20all`20seriousness,`20and`20with
- V`20every
- Xintention`20of`20enforcement`20by`20any`20and`20all`20legal`20means`20where
- V`20practical.
- X
- X(Sounds`20almost`20as`20good`20as`20the`20real`20thing,`20doesn't`20it?)
- $ call unpack README.;1 1649131628 ""
- $!
- $ create 'f'
- Xdelmail`20option`20should`20work`20on`20system`20mail`20file.
- X
- XMake`20superkey`20work`20instantly,`20instead`20of`20only`20when`20waiting`20f
- Vor`20a`20character.
- X
- XWay`20of`20changing`20local`20colors`20for`20a`20game,`20or`20for`20setting
- V`20local`20colors
- Xindependent`20of`20colors`20specified`20in`20START.
- X
- XIndication`20of`20last`20access`20time`20for`20a`20game`20in`20-control.
- X
- XInstead`20of`20keeping`203`20board`20images`20Bef,`20Aft,`20Cur,`20keep`20log
- V`20file`20of
- Xall`20prior`20moves,`20with`20board`20image,`20player,`20`26`20move`20made.
- V`20`20Use`20`5E`20and`20v
- Xcommands`20(or`20ku`20`26`20kd`20from`20termcap?)`20to`20scroll`20backward`20a
- Vnd`20forward`20through
- Xlog`20file,`20displaying`20board`20`26`20pieces`20moved`20at`20each`20step.
- V`20`20Delete`20log`20file
- Xwhen`20game`20is`20deleted?`20`20Use`20name`20like`20.ldblogXXXXX`20for`20log
- V`20file,
- Xput`20log`20file`20name`20into`20game`20structure.`20`20Scan`20directory`20for
- V`20unused
- Xlog`20files`20when`20games`20are`20read,`20so`20they`20can`20be`20deleted?`20
- V`20Maybe,`20each
- Xscroll`20back`20is`20in`20two`20steps,`20before`20move`20was`20made`20`26`20af
- Vter.`20`20That`20is,
- XCur,`20-1`20After,`20-1`20Before,`20-2`20After,`20-2`20Before,`20...
- X
- XWay`20of`20specifying`20that`20board`20should`20invert`20if`20necessary`20auto
- Vmatically
- Xso`20that`20play`20is`20always`20in`20the`20desired`20direction.
- X
- XWay`20of`20informing`20your`20opponents`20of`20a`20change`20in`20your`20e-mail
- V`20address.
- XUse`20new`20opcode?`20`20Check`20opponent's`20version`20to`20avoid`20killing
- V`20opponent's
- Xldb`20with`20invalid`20opcode.`20`20If`20in`20OPSTATE,`20also`20request`20rese
- Vnd?
- XSend`20one`20packet`20per`20game?`20`20Be`20sure`20to`20update`20people`20file
- V`20too.
- XEliminate`20old`20address`20when`20no`20more`20games`20point`20to`20it.`20`20M
- Vaybe`20better
- Xto`20send`20one`20packet`20per`20opponent`20(scan`20people`20file),`20so`20it
- V`20can
- Xjust`20change`20the`20people`20record`20in`20place.`20`20What`20to`20do`20with
- V`20equiv's?
- X
- Xallow`20unlimited`20length`20comments,`20scroll`20window.
- X
- XWay`20to`20print`20board`20to`20file,`20load`20board`20from`20file.`20`20Allow
- V`20board
- Xto`20be`20set`20up`20in`20any`20desired`20configuration.
- X
- XSecurity`20from`20(1)`20advance`20knowledge`20of`20rolls,`20(2)`20generating
- V`20false`20rolls.
- X
- XMultiple`20language`20support.
- X
- Xregister`20vars
- X
- XFlip`20board`20left/right.
- X
- XFlush`20input`20before`20reading.
- X
- XSocket`20transport.
- X
- XMotif`20front-end.`20`20Open`20Look?`20`20Xlib?
- X
- XVMS`20command`20line`20interface.`20`20Maybe,`20separate`20out`20all`20host-sp
- Vecific
- Xstuff`20into`20a`20separate`20file,`20`26`20only`20compile`20in`20the`20one
- V`20you`20need.
- X
- XOption`20to`20display`20"scratch"`20screen,`20move`20any`20piece.`20`20Don't
- V`20save.
- XInitial`20setup?
- X
- XProtect`20critical`20sections`20from`20SIGINT.`20`20Catch`20more`20signals?
- XCatch`20SIGSTOP/SIGTSTP/SIGCONT`20`26`20reset`20tty`20modes.
- X
- XAllow`20multiple`20rolls`20without`20sending`20packet`20when`20opponent`20is
- V`20closed`20out.
- XAllow`20opponent's`20roll`20to`20be`20generated`20locally`20when`20piece`20is
- V`20on`20the`20bar,
- X`26`20skip`20if`20he`20cannot`20move.`20`20Conflicts`20with`20secure`20dice
- V`20roller?`20`20How
- Xto`20send`20multiple`20moves`20in`20one`20packet?
- X
- XProcess`20id`20in`20lock`20file,`20look`20to`20see`20if`20process`20still`20ex
- Vists.
- XPortability?`20`20How`20in`20VMS?
- X
- XPlug`20memory`20leaks.
- X
- XFaster`20start`20protocol,`20have`20starting`20host`20perform`20entire`20openi
- Vng`20roll
- Xand`20reroll`20ties`20immediately.`20`20Conflicts`20with:`201)`20backward`20co
- Vmpatibility,
- X2)`20autodoubling,`203)`20secure`20roller.
- X
- XCatch`20failure`20in`20sending`20mail,`20return`20to`20move`20state.
- X
- Xhandle`20failed`20write`20better.`20`20""`20in`20writegames.
- $ call unpack TODO.;1 1651455370 ""
- $!
- $ create 'f'
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- XNAME
- X`20`20`20`20`20ldb`20-`20Play`20backgammon`20by`20e-mail
- X
- XSYNOPSIS
- X`20`20`20`20`20ldb`20`5Boptions`5D`20`5Binput`20files...`5D
- X
- XDESCRIPTION
- X`20`20`20`20`20_`08L_`08d_`08b`20allows`20two`20people`20to`20`20play`20`20bac
- Vkgammon`20`20over`20`20a`20`20network
- X`20`20`20`20`20using`20`20`20electronic`20`20mail.`20`20`20It`20`20runs`20`20o
- Vn`20`20character-oriented
- X`20`20`20`20`20terminals,`20or`20emulators`20thereof,`20`20using`20`20the`20
- V`20_`08c_`08u_`08r_`08s_`08e_`08s`20`20screen
- X`20`20`20`20`20package.`20`20`20It`20`20will`20`20run`20`20on`20`20most`20UNIX
- V`20dialects,`20as`20well`20as
- X`20`20`20`20`20VAX-C`20under`20VMS`205.0`20and`20above.`20`20_`08L_`08d_`08b
- V`20will`20display`20`20a`20`20picture
- X`20`20`20`20`20of`20`20the`20`20board,`20`20prompt`20`20the`20user`20to`20ente
- Vr`20a`20move,`20check`20the
- X`20`20`20`20`20move`20for`20legality,`20and`20send`20the`20move`20to`20the`20o
- Vpponent.`20`20`20When
- X`20`20`20`20`20it`20`20arrives,`20`20it`20will`20be`20displayed`20on`20the`20o
- Vpponent's`20screen,
- X`20`20`20`20`20after`20which`20the`20opponent`20will`20be`20prompted`20for`20a
- V`20move`20`20to`20`20be
- X`20`20`20`20`20sent`20back.
- X
- XFEATURES
- X`20`20`20`20`20Multiple`20Games
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20keep`20track`20of`20`20a
- Vn`20`20arbitrary`20`20number`20`20of`20`20games
- X`20`20`20`20`20`20`20`20`20`20simultaneously,`20and`20will`20display`20them
- V`20one`20at`20a`20time`20for
- X`20`20`20`20`20`20`20`20`20`20you`20to`20play.`20`20You`20can`20exit`20from
- V`20_`08l_`08d_`08b`20at`20any`20`20time;`20`20when
- X`20`20`20`20`20`20`20`20`20`20you`20run`20ldb`20again,`20it`20will`20pick`20up
- V`20your`20games`20where`20you
- X`20`20`20`20`20`20`20`20`20`20left`20off.
- X
- X`20`20`20`20`20Move`20Checking
- X`20`20`20`20`20`20`20`20`20`20Both`20your`20moves`20and`20your`20opponent's
- V`20moves`20`20are`20`20checked
- X`20`20`20`20`20`20`20`20`20`20for`20legality.`20`20This`20includes:
- X
- X`20`20`20`20`20-`20`20`20`20Landing`20on`20an`20occupied`20point.
- X
- X`20`20`20`20`20-`20`20`20`20Bearing`20off`20before`20your`20inner`20table`20is
- V`20full.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20move`20pieces`20that`20are`20on`20th
- Ve`20`20board`20`20when`20`20you
- X`20`20`20`20`20`20`20`20`20`20have`20a`20piece`20on`20the`20bar.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20bear`20off`20a`20piece`20when`20ther
- Ve`20is`20a`20piece`20`20on`20`20a
- X`20`20`20`20`20`20`20`20`20`20higher`20point,`20and`20the`20roll`20is`20not
- V`20being`20used`20exactly.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20leave`20a`20usable`20move`20unused.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20leave`20a`20move`20unused`20when`20i
- Vt`20is`20usable`20and`20has
- X`20`20`20`20`20`20`20`20`20`20a`20higher`20roll`20than`20the`20move`20that`20i
- Vs`20used.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20double`20when`20you`20doubled`20last
- V.
- X
- X`20`20`20`20`20-`20`20`20`20Trying`20to`20double`20in`20a`20Crawford`20rule
- V`20game.
- X
- X`20`20`20`20`20Message`20Reliability
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20detects`20(and`20rejects)`20du
- Vplicate`20messages,`20`20and`20`20can
- X`20`20`20`20`20`20`20`20`20`20regenerate`20lost`20messages.
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`201
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20Remote`20Start
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20start`20a`20game`20`20be
- Vtween`20`20two`20`20players`20`20on`20`20remote
- X`20`20`20`20`20`20`20`20`20`20hosts.`20`20`20This`20`20is`20`20used`20to`20set
- V`20up`20"game`20starter"`20hosts,
- X`20`20`20`20`20`20`20`20`20`20where`20people`20interested`20in`20finding`20
- V`20new`20`20opponents`20`20are
- X`20`20`20`20`20`20`20`20`20`20matched`20`20by`20`20some`20`20criteria`20`20(su
- Vch`20`20as`20ability,`20or`20by`20a
- X`20`20`20`20`20`20`20`20`20`20tournament`20schedule),`20`20and`20`20have`20
- V`20their`20`20games`20`20started
- X`20`20`20`20`20`20`20`20`20`20automatically.`20`20`20For`20`20a`20current`20li
- Vsting`20of`20game`20starter
- X`20`20`20`20`20`20`20`20`20`20hosts,`20see`20the`20README`20file.
- X
- X`20`20`20`20`20Game`20Value
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20`20detects`20`20the`20`20end
- V`20`20of`20`20the`20`20game,`20`20`20gammons,`20`20`20and
- X`20`20`20`20`20`20`20`20`20`20backgammons,`20`20and`20`20notifies`20`20both
- V`20`20players`20`20of`20the`20game
- X`20`20`20`20`20`20`20`20`20`20value`20when`20the`20game`20is`20over.`20`20The
- V`20Jacoby`20`20rule`20`20may`20`20be
- X`20`20`20`20`20`20`20`20`20`20enabled,`20as`20may`20European`20scoring,`20to
- V`20calculate`20the`20game
- X`20`20`20`20`20`20`20`20`20`20value`20as`20desired.
- X
- X`20`20`20`20`20Online`20Help`20Screen
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20has`20an`20online,`20context
- V`20sensitive`20help`20facility`20that
- X`20`20`20`20`20`20`20`20`20`20lists`20the`20available`20commands`20for`20the
- V`20current`20screen.
- X
- X`20`20`20`20`20Match`20Play
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20can`20support`20matches`20that
- V`20play`20to`20any`20desired`20`20point
- X`20`20`20`20`20`20`20`20`20`20total,`20`20and`20`20will`20`20continue`20`20to
- V`20`20start`20`20games`20until`20one
- X`20`20`20`20`20`20`20`20`20`20player`20reaches`20that`20total.
- X
- XOPTIONS
- X`20`20`20`20`20-read
- X`20`20`20`20`20`20`20`20`20`20Mail`20is`20read,`20and`20the`20games`20are`20up
- Vdated`20and`20saved.`20`20The
- X`20`20`20`20`20`20`20`20`20`20user`20`20is`20`20not`20prompted`20for`20his`20m
- Voves.`20`20If`20neither`20-read
- X`20`20`20`20`20`20`20`20`20`20nor`20-play`20are`20given,`20both`20are`20assume
- Vd.
- X
- X`20`20`20`20`20-play
- X`20`20`20`20`20`20`20`20`20`20Any`20`20games`20`20that`20`20are`20`20waiting
- V`20`20for`20`20local`20`20input`20`20`20are
- X`20`20`20`20`20`20`20`20`20`20displayed`20`20for`20`20the`20`20user`20to`20pro
- Vcess.`20`20No`20mail`20is`20read.
- X`20`20`20`20`20`20`20`20`20`20If`20neither`20-read`20nor`20-play`20are`20given
- V,`20both`20are`20assumed.
- X
- X`20`20`20`20`20-color`20xy
- X`20`20`20`20`20`20`20`20`20`20The`20colors`20for`20the`20game`20started`20by
- V`20this`20ldb`20run`20are`20set
- X`20`20`20`20`20`20`20`20`20`20to`20`20x`20`20and`20`20y.`20`20`20The`20first
- V`20color`20is`20played`20by`20the`20local
- X`20`20`20`20`20`20`20`20`20`20user,`20and`20the`20other`20is`20played`20by`20t
- Vhe`20`20opponent.`20`20`20Legal
- X`20`20`20`20`20`20`20`20`20`20color`20`20characters`20`20are`20`20any`20`20pri
- Vnting`20character,`20except
- X`20`20`20`20`20`20`20`20`20`20that`20x`20and`20y`20may`20not`20be`20the`20uppe
- Vr`20and`20lower`20case`20of`20the
- X`20`20`20`20`20`20`20`20`20`20same`20character.`20`20The`20default`20is`20"-co
- Vlor`20rw".
- X
- X`20`20`20`20`20-direction`20up/down
- X`20`20`20`20`20`20`20`20`20`20This`20sets`20the`20direction`20of`20play`20for
- V`20the`20local`20user`20`20for
- X`20`20`20`20`20`20`20`20`20`20the`20`20game`20`20started`20`20by`20`20this`20
- V`20ldb`20`20run.`20`20The`20default`20is
- X`20`20`20`20`20`20`20`20`20`20"-direction`20up".
- X
- X`20`20`20`20`20-myaddr`20addr
- X`20`20`20`20`20`20`20`20`20`20Your`20mail`20address`20is`20set`20to`20_`08a_
- V`08d_`08d_`08r`20for`20games`20`20started`20`20on
- X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20run.`20`20This`20overrides`20the
- V`20address`20specified`20in
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`202
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20`20`20`20`20`20._`08l_`08d_`08b_`08r_`08c.
- X
- X`20`20`20`20`20-start`20user
- X`20`20`20`20`20`20`20`20`20`20A`20game`20is`20started`20with`20the`20specified
- V`20`20user.`20`20`20The`20`20_`08u_`08s_`08e_`08r
- X`20`20`20`20`20`20`20`20`20`20argument`20`20may`20`20be`20`20any`20e-mail`20ad
- Vdress`20that`20is`20valid`20for
- X`20`20`20`20`20`20`20`20`20`20your`20host.`20`20Some`20`20e-mail`20`20addresse
- Vs`20`20will`20`20need`20`20to`20`20be
- X`20`20`20`20`20`20`20`20`20`20quoted`20`20if`20they`20contain`20shell`20metach
- Varacters.`20`20The`20_`08u_`08s_`08e_`08r
- X`20`20`20`20`20`20`20`20`20`20argument`20may`20also`20be`20an`20_`08a_`08l_
- V`08i_`08a_`08s`20for`20an`20opponent`20you`20`20have
- X`20`20`20`20`20`20`20`20`20`20played`20before.`20`20Aliases`20are`20defined
- V`20in`20the`20people`20file,
- X`20`20`20`20`20`20`20`20`20`20and`20are`20initialized`20to`20the`20first`20nam
- Ve`20of`20the`20`20opponent,
- X`20`20`20`20`20`20`20`20`20`20with`20`20all`20`20upper-case`20`20letters`20
- V`20changed`20`20to`20lower.`20`20The
- X`20`20`20`20`20`20`20`20`20`20-start`20`20option`20`20is`20`20deferred`20`20un
- Vtil`20`20all`20`20command`20`20line
- X`20`20`20`20`20`20`20`20`20`20options`20`20have`20`20been`20`20scanned,`20`20s
- Vo`20`20the`20`20position`20of`20the
- X`20`20`20`20`20`20`20`20`20`20-start`20option`20on`20the`20command`20`20line
- V`20`20is`20`20not`20`20important.
- X`20`20`20`20`20`20`20`20`20`20Only`20one`20-start`20may`20be`20used`20per`20ld
- Vb`20run.
- X
- X`20`20`20`20`20-remotestart`20user1`20user2
- X`20`20`20`20`20`20`20`20`20`20A`20game`20is`20started`20between`20user1`20and
- V`20user2.`20`20`20The`20`20local
- X`20`20`20`20`20`20`20`20`20`20host`20`20sends`20a`20remote`20start`20message
- V`20to`20user1`20instructing
- X`20`20`20`20`20`20`20`20`20`20it`20to`20start`20a`20game`20with`20user2.`20
- V`20The`20local`20host`20does`20not
- X`20`20`20`20`20`20`20`20`20`20participate`20`20thereafter`20`20in`20the`20game
- V.`20`20For`20the`20purposes
- X`20`20`20`20`20`20`20`20`20`20of`20`20the`20`20-color`20`20and`20`20-direction
- V`20`20options,`20`20`20user1`20`20`20is
- X`20`20`20`20`20`20`20`20`20`20considered`20`20the`20local`20user.`20`20The`20-
- Vremotestart`20option`20is
- X`20`20`20`20`20`20`20`20`20`20deferred`20until`20`20all`20`20command`20`20line
- V`20`20options`20`20have`20`20been
- X`20`20`20`20`20`20`20`20`20`20scanned,`20`20so`20the`20position`20of`20the`20-
- Vremotestart`20option`20on
- X`20`20`20`20`20`20`20`20`20`20the`20`20command`20`20line`20`20is`20`20`20not
- V`20`20`20important.`20`20`20`20Only`20`20`20one
- X`20`20`20`20`20`20`20`20`20`20-remotestart`20may`20be`20used`20per`20ldb`20run
- V.
- X
- X`20`20`20`20`20-notify`20addr
- X`20`20`20`20`20`20`20`20`20`20This`20option`20affects`20games`20started`20by
- V`20either`20`20-start`20`20or
- X`20`20`20`20`20`20`20`20`20`20-remotestart`20on`20this`20ldb`20run.`20`20A`20m
- Vessage`20is`20sent`20to`20the
- X`20`20`20`20`20`20`20`20`20`20specified`20address`20when`20the`20game`20that
- V`20is`20started`20by`20`20the
- X`20`20`20`20`20`20`20`20`20`20-start`20`20or`20`20-remotestart`20`20option`20
- V`20ends.`20`20`20This`20`20message
- X`20`20`20`20`20`20`20`20`20`20includes`20the`20termination`20code`20of`20`20th
- Ve`20`20game,`20`20the`20`20game
- X`20`20`20`20`20`20`20`20`20`20value,`20`20and`20`20a`20`20gammon/backgammon
- V`20flag.`20`20This`20option`20is
- X`20`20`20`20`20`20`20`20`20`20mainly`20for`20the`20use`20of`20game`20starters
- V`20that`20wish`20to`20either
- X`20`20`20`20`20`20`20`20`20`20keep`20score`20or`20start`20new`20games`20when
- V`20the`20old`20ones`20finish.
- X`20`20`20`20`20`20`20`20`20`20Even`20though`20-notify`20is`20only`20used`20
- V`20by`20`20the`20`20player`20`20that
- X`20`20`20`20`20`20`20`20`20`20starts`20`20`20the`20`20game`20`20(or`20`20the
- V`20`20game`20`20starter`20`20that`20`20uses
- X`20`20`20`20`20`20`20`20`20`20-remotestart),`20both`20player's`20ldb`20will
- V`20`20send`20`20a`20`20message
- X`20`20`20`20`20`20`20`20`20`20when`20the`20game`20ends.
- X
- X`20`20`20`20`20-jacoby
- X`20`20`20`20`20`20`20`20`20`20The`20Jacoby`20rule`20is`20enabled`20for`20the
- V`20game`20started`20by`20this
- X`20`20`20`20`20`20`20`20`20`20ldb`20`20`20run.`20`20`20`20This`20`20rule`20
- V`20specifies`20`20that`20`20gammons`20`20and
- X`20`20`20`20`20`20`20`20`20`20backgammons`20count`20as`20a`20single`20point
- V`20if`20`20neither`20`20player
- X`20`20`20`20`20`20`20`20`20`20doubled`20`20during`20`20the`20`20game.`20`20
- V`20This`20`20option`20`20may`20only`20be
- X`20`20`20`20`20`20`20`20`20`20enabled`20by`20the`20user`20starting`20the`20gam
- Ve,`20and`20may`20`20not`20`20be
- X`20`20`20`20`20`20`20`20`20`20disabled`20`20by`20`20the`20`20other`20`20player
- V.`20`20`20If`20`20the`20`20opponent's
- X`20`20`20`20`20`20`20`20`20`20version`20of`20ldb`20does`20not`20support`20the
- V`20Jacoby`20rule,`20it`20`20is
- X`20`20`20`20`20`20`20`20`20`20disabled`20`20and`20`20the`20`20game`20`20procee
- Vds`20`20as`20if`20it`20were`20never
- X`20`20`20`20`20`20`20`20`20`20enabled.
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`203
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20-crawford
- X`20`20`20`20`20`20`20`20`20`20The`20Crawford`20rule`20is`20enabled`20for`20the
- V`20`20game`20`20started`20`20by
- X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20run.`20`20This`20rule`20specifie
- Vs`20that`20neither`20player
- X`20`20`20`20`20`20`20`20`20`20may`20double`20for`20the`20first`20game`20of`20a
- V`20match`20`20after`20`20either
- X`20`20`20`20`20`20`20`20`20`20player`20`20is`20`20within`20`201`20`20point`20
- V`20of`20winning`20the`20match.`20`20If
- X`20`20`20`20`20`20`20`20`20`20match`20`20play`20`20is`20`20not`20`20enabled,
- V`20`20this`20`20argument`20`20has`20`20no
- X`20`20`20`20`20`20`20`20`20`20meaning.`20`20`20This`20`20option`20may`20only
- V`20be`20enabled`20by`20the`20user
- X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
- V`20disabled`20by`20the`20other
- X`20`20`20`20`20`20`20`20`20`20player.`20`20`20If`20`20the`20`20opponent's`20
- V`20version`20`20of`20ldb`20does`20not
- X`20`20`20`20`20`20`20`20`20`20support`20the`20Crawford`20rule,`20it`20is`20dis
- Vabled`20and`20the`20`20game
- X`20`20`20`20`20`20`20`20`20`20proceeds`20as`20if`20it`20were`20never`20enabled
- V.
- X
- X`20`20`20`20`20-european
- X`20`20`20`20`20`20`20`20`20`20The`20European`20rule`20is`20enabled`20for`20the
- V`20`20game`20`20started`20`20by
- X`20`20`20`20`20`20`20`20`20`20this`20`20ldb`20`20run.`20`20`20This`20`20rule
- V`20specifies`20that`20backgammons
- X`20`20`20`20`20`20`20`20`20`20count`20as`20double,`20rather`20than`20triple,
- V`20the`20score`20shown`20on
- X`20`20`20`20`20`20`20`20`20`20the`20`20cube.`20`20This`20option`20may`20only
- V`20be`20enabled`20by`20the`20user
- X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
- V`20disabled`20by`20the`20other
- X`20`20`20`20`20`20`20`20`20`20player.`20`20`20If`20`20the`20`20opponent's`20
- V`20version`20`20of`20ldb`20does`20not
- X`20`20`20`20`20`20`20`20`20`20support`20the`20European`20rule,`20it`20is`20dis
- Vabled`20and`20the`20`20game
- X`20`20`20`20`20`20`20`20`20`20proceeds`20as`20if`20it`20were`20never`20enabled
- V.
- X
- X`20`20`20`20`20-permanent
- X`20`20`20`20`20`20`20`20`20`20The`20game`20started`20by`20this`20ldb`20run`20i
- Vs`20`20marked`20`20permanent.
- X`20`20`20`20`20`20`20`20`20`20Permanent`20`20games`20`20are`20automatically
- V`20restarted`20when`20they
- X`20`20`20`20`20`20`20`20`20`20end.`20`20This`20is`20for`20people`20you`20play
- V`20with`20constantly,`20`20and
- X`20`20`20`20`20`20`20`20`20`20it`20saves`20you`20the`20trouble`20of`20restarti
- Vng`20the`20game`20when`20it
- X`20`20`20`20`20`20`20`20`20`20is`20over.`20`20This`20option`20may`20only`20be
- V`20enabled`20by`20`20the`20`20user
- X`20`20`20`20`20`20`20`20`20`20starting`20the`20game,`20and`20may`20not`20be
- V`20disabled`20by`20the`20other
- X`20`20`20`20`20`20`20`20`20`20player.`20`20If`20the`20opponent's`20`20version
- V`20`20of`20`20ldb`20`20does`20`20not
- X`20`20`20`20`20`20`20`20`20`20support`20permanent`20games,`20the`20permanent
- V`20flag`20is`20disabled
- X`20`20`20`20`20`20`20`20`20`20and`20the`20game`20proceeds`20as`20if`20it`20wer
- Ve`20never`20enabled.
- X
- X`20`20`20`20`20-match`20points
- X`20`20`20`20`20`20`20`20`20`20This`20option`20enables`20match`20play`20and`20s
- Vpecifies`20the`20number
- X`20`20`20`20`20`20`20`20`20`20of`20points`20the`20match`20is`20to`20play`20to.
- V`20`20Games`20that`20are`20part
- X`20`20`20`20`20`20`20`20`20`20of`20a`20match`20have`20additional`20information
- V`20displayed`20`20above
- X`20`20`20`20`20`20`20`20`20`20the`20`20board`20`20to`20`20show`20`20the`20`20c
- Vurrent`20`20match`20score`20and`20the
- X`20`20`20`20`20`20`20`20`20`20number`20of`20points`20being`20played`20to.`20
- V`20When`20a`20game`20that`20`20is
- X`20`20`20`20`20`20`20`20`20`20part`20`20of`20`20a`20`20match`20`20ends,`20`20a
- Vnd`20`20the`20specified`20number`20of
- X`20`20`20`20`20`20`20`20`20`20points`20has`20not`20been`20reached,`20`20the
- V`20`20game`20`20is`20`20restarted.
- X`20`20`20`20`20`20`20`20`20`20This`20`20option`20`20may`20`20only`20be`20enabl
- Ved`20by`20the`20user`20starting
- X`20`20`20`20`20`20`20`20`20`20the`20game,`20and`20may`20not`20be`20disabled
- V`20by`20the`20other`20`20player.
- X`20`20`20`20`20`20`20`20`20`20If`20the`20opponent's`20version`20of`20ldb`20doe
- Vs`20not`20support`20match
- X`20`20`20`20`20`20`20`20`20`20play,`20the`20game`20proceeds`20as`20if`20it`20w
- Vere`20a`20normal`20game.
- X
- X`20`20`20`20`20-score
- X`20`20`20`20`20`20`20`20`20`20The`20cumulative`20score`20`20for`20`20all`20
- V`20opponents`20`20is`20`20printed.
- X`20`20`20`20`20`20`20`20`20`20This`20`20consists`20`20of`20points,`20games,
- V`20gammons,`20backgammons,
- X`20`20`20`20`20`20`20`20`20`20and`20matches`20that`20`20have`20`20been`20`20wo
- Vn`20`20and`20`20lost`20`20for`20`20each
- X`20`20`20`20`20`20`20`20`20`20opponent.`20`20A`20total`20over`20all`20opponent
- Vs`20is`20also`20printed.
- X
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`204
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20-broadcast`20`5Bfile`5D
- X`20`20`20`20`20`20`20`20`20`20The`20specified`20file`20is`20mailed`20to`20all
- V`20current`20`20opponents.
- X`20`20`20`20`20`20`20`20`20`20This`20`20is`20`20useful`20for`20announcing`20va
- Vcation`20absences,`20etc.
- X`20`20`20`20`20`20`20`20`20`20If`20the`20file`20argument`20is`20not`20given,
- V`20`20standard`20`20input`20`20is
- X`20`20`20`20`20`20`20`20`20`20read`20and`20sent`20to`20all`20opponents.
- X
- X`20`20`20`20`20-control
- X`20`20`20`20`20`20`20`20`20`20This`20option`20puts`20ldb`20into`20a`20special
- V`20mode`20that`20does`20`20not
- X`20`20`20`20`20`20`20`20`20`20allow`20games`20to`20be`20played,`20but`20instea
- Vd`20displays`20them`20one
- X`20`20`20`20`20`20`20`20`20`20at`20a`20time`20and`20allows`20certain`20"overhe
- Vad"`20functions`20to`20be
- X`20`20`20`20`20`20`20`20`20`20performed.`20`20`20These`20`20are`20`20described
- V`20fully`20in`20the`20section
- X`20`20`20`20`20`20`20`20`20`20titled`20"CONTROLLING`20A`20GAME".
- X
- X`20`20`20`20`20-reconstruct`20file
- X`20`20`20`20`20`20`20`20`20`20This`20option`20allows`20your`20game`20file`20to
- V`20`20be`20`20reconstructed
- X`20`20`20`20`20`20`20`20`20`20if`20`20you`20`20accidentally`20`20clobber`20
- V`20it.`20`20`20It`20`20does`20`20this`20by
- X`20`20`20`20`20`20`20`20`20`20extracting`20the`20information`20from`20`20your
- V`20`20opponent's`20`20data
- X`20`20`20`20`20`20`20`20`20`20file`20`20and`20"reversing"`20it`20so`20you`20ca
- Vn`20use`20it.`20`20To`20use`20the
- X`20`20`20`20`20`20`20`20`20`20reconstruct`20option,`20ask`20all`20of`20your
- V`20opponents`20`20to`20`20send
- X`20`20`20`20`20`20`20`20`20`20you`20their`20.ldbdata`20files.`20`20Extract`20t
- Vhese`20from`20your`20mail
- X`20`20`20`20`20`20`20`20`20`20into`20files`20on`20your`20system,`20strip`20the
- V`20mail`20headers,`20`20and
- X`20`20`20`20`20`20`20`20`20`20feed`20`20them`20one`20at`20a`20time`20into`20ld
- Vb.`20`20For`20each`20game`20found
- X`20`20`20`20`20`20`20`20`20`20listing`20you`20as`20the`20opponent,`20you`20wil
- Vl`20`20be`20`20prompted`20`20to
- X`20`20`20`20`20`20`20`20`20`20enter`20`20the`20`20opponent's`20e-mail`20addres
- Vs`20or`20alias`20(and`20his
- X`20`20`20`20`20`20`20`20`20`20name`20if`20he`20is`20not`20in`20your`20people
- V`20file),`20`20and`20`20the`20`20game
- X`20`20`20`20`20`20`20`20`20`20will`20be`20added`20to`20your`20game`20file.
- X
- X`20`20`20`20`20`20`20`20`20`20The`20reconstruct`20function`20cannot`20recover
- V`20games`20that`20were
- X`20`20`20`20`20`20`20`20`20`20in`20`20the`20process`20of`20starting`20(i.e.
- V`20in`20their`20initial`20roll
- X`20`20`20`20`20`20`20`20`20`20stage),`20or`20that`20have`20already`20completed
- V`20`20(why`20`20bother?).
- X`20`20`20`20`20`20`20`20`20`20Your`20`20opponent`20`20should`20`20read`20`20an
- Vy`20`20mail`20`20files`20you`20sent
- X`20`20`20`20`20`20`20`20`20`20before`20your`20data`20file`20got`20clobbered,
- V`20`20and`20`20should`20`20make
- X`20`20`20`20`20`20`20`20`20`20his`20`20move`20and`20send`20it`20before`20sendi
- Vng`20you`20his`20data`20file.
- X`20`20`20`20`20`20`20`20`20`20You`20will`20not`20need`20to`20process`20the`20m
- Vove`20he`20sent,`20`20though,
- X`20`20`20`20`20`20`20`20`20`20since`20`20all`20`20that`20`20data`20is`20in`20h
- Vis`20file`20anyway.`20`20It`20won't
- X`20`20`20`20`20`20`20`20`20`20hurt`20if`20you`20do,`20ldb`20will`20just`20igno
- Vre`20it.
- X
- X`20`20`20`20`20-help
- X`20`20`20`20`20`20`20`20`20`20This`20prints`20a`20one-line`20description`20of
- V`20each`20`20option,`20`20in
- X`20`20`20`20`20`20`20`20`20`20case`20you`20forget`20later`20on.
- X
- XSCREEN
- X`20`20`20`20`20The`20screen`20displays`20the`20following`20items`20of`20intere
- Vst:
- X
- X`20`20`20`20`20Opponent
- X`20`20`20`20`20`20`20`20`20`20The`20e-mail`20address`20and`20personal`20name
- V`20`20of`20`20the`20`20opponent
- X`20`20`20`20`20`20`20`20`20`20are`20`20displayed`20on`20the`20top`20line`20of
- V`20the`20screen.`20`20This`20can
- X`20`20`20`20`20`20`20`20`20`20help`20identify`20the`20`20game`20`20if`20`20you
- V`20`20have`20`20many`20`20games`20`20in
- X`20`20`20`20`20`20`20`20`20`20progress`20at`20once.
- X
- X`20`20`20`20`20Board`20Label
- X`20`20`20`20`20`20`20`20`20`20_`08L_`08d_`08b`20displays`20one`20of`20three
- V`20possible`20board`20`20images`20`20at`20`20a
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`205
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20`20`20`20`20`20time;`20`20the`20`20name`20`20of`20`20the`20`20b
- Voard`20currently`20displayed`20is
- X`20`20`20`20`20`20`20`20`20`20shown`20on`20the`20second`20line`20of`20the`20sc
- Vreen,`20near`20the`20`20left.
- X`20`20`20`20`20`20`20`20`20`20The`20`20significance`20`20of`20`20these`20`20th
- Vree`20boards`20is`20explained
- X`20`20`20`20`20`20`20`20`20`20below.
- X
- X`20`20`20`20`20Flags
- X`20`20`20`20`20`20`20`20`20`20This`20area`20displays`20any`20special`20rules
- V`20in`20effect`20for`20`20the
- X`20`20`20`20`20`20`20`20`20`20game.`20`20`20Each`20`20special`20`20rule`20`20c
- Vauses`20one`20character`20to`20be
- X`20`20`20`20`20`20`20`20`20`20displayed.`20`20These`20are:
- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20J`20`20`20`20`20Jacoby`20rule
- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20C`20`20`20`20`20Crawford`20rule
- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20E`20`20`20`20`20European`20rule
- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20P`20`20`20`20`20Permanent`20game
- X`20`20`20`20`20`20`20`20`20`20In`20addition,`20the`20Crawford`20rule`20indicat
- Vor`20`20is`20`20shown`20`20in
- X`20`20`20`20`20`20`20`20`20`20reverse`20`20video`20`20if`20`20the`20Crawford
- V`20rule`20game`20is`20currently
- X`20`20`20`20`20`20`20`20`20`20being`20played.
- X
- X`20`20`20`20`20Match`20Score
- X`20`20`20`20`20`20`20`20`20`20The`20current`20match`20score`20is`20displayed
- V`20next`20to`20the`20`20board
- X`20`20`20`20`20`20`20`20`20`20label,`20`20as`20`20is`20the`20number`20of`20poi
- Vnts`20the`20match`20plays`20to.
- X`20`20`20`20`20`20`20`20`20`20If`20the`20game`20being`20displayed`20is`20not
- V`20`20part`20`20of`20`20a`20`20match,
- X`20`20`20`20`20`20`20`20`20`20this`20area`20is`20blanked`20out.
- X
- X`20`20`20`20`20Pip`20Count
- X`20`20`20`20`20`20`20`20`20`20Near`20the`20right`20of`20the`20screen`20on`20th
- Ve`20second`20line`20is`20`20the
- X`20`20`20`20`20`20`20`20`20`20pip`20count`20for`20the`20board`20being`20displa
- Vyed.
- X
- X`20`20`20`20`20Board
- X`20`20`20`20`20`20`20`20`20`20The`20board`20is`20`20displayed`20`20near`20`20t
- Vhe`20`20left`20`20side`20`20of`20`20the
- X`20`20`20`20`20`20`20`20`20`20screen,`20`20and`20`20takes`20`20up`20`20most
- V`20`20of`20`20the`20screen`20area.`20`20It
- X`20`20`20`20`20`20`20`20`20`20consists`20of`20an`20outline,`20drawn`20`20with
- V`20`20ASCII`20`20characters,
- X`20`20`20`20`20`20`20`20`20`20and`20`2028`20"points"`20where`20pieces`20can
- V`20reside.`20`20Of`20these,`2024
- X`20`20`20`20`20`20`20`20`20`20are`20the`20normal`20points`20making`20up`20the
- V`20main`20`20body`20`20of`20`20the
- X`20`20`20`20`20`20`20`20`20`20board`20`20(numbered`201-24),`202`20are`20the
- V`20"BAR"`20points,`20located
- X`20`20`20`20`20`20`20`20`20`20between`20the`20left`20and`20right`20halves`20of
- V`20`20the`20`20main`20`20board,
- X`20`20`20`20`20`20`20`20`20`20and`20`202`20`20are`20the`20"OFF"`20points`20(wh
- Vere`20pieces`20go`20when`20they
- X`20`20`20`20`20`20`20`20`20`20are`20borne`20off),`20located`20`20to`20`20the
- V`20`20left`20`20of`20`20the`20`20board.
- X`20`20`20`20`20`20`20`20`20`20Pieces`20`20are`20represented`20by`20upper`20or
- V`20lower`20case`20letters.
- X`20`20`20`20`20`20`20`20`20`20To`20help`20you`20remember`20which`20direction
- V`20you`20`20are`20`20playing,
- X`20`20`20`20`20`20`20`20`20`20there`20are`20arrows`20drawn`20at`20the`20four
- V`20corners`20of`20the`20board
- X`20`20`20`20`20`20`20`20`20`20indicating`20`20your`20`20direction`20`20of`20
- V`20play.`20`20`20The`20`20`20bar`20`20`20is
- X`20`20`20`20`20`20`20`20`20`20indicated`20`20by`20`20the`20word`20"BAR";`20thi
- Vs`20changes`20to`20"---"`20if
- X`20`20`20`20`20`20`20`20`20`20neither`20player`20can`20hit.
- X
- X`20`20`20`20`20Doubling`20Cube
- X`20`20`20`20`20`20`20`20`20`20The`20current`20value`20of`20the`20doubling`20cu
- Vbe`20is`20displayed`20`20in
- X`20`20`20`20`20`20`20`20`20`20reverse`20video`20on`20the`20left`20side`20of
- V`20the`20screen.`20`20The`20cube
- X`20`20`20`20`20`20`20`20`20`20will`20appear`20next`20to`20the`20home`20board
- V`20of`20the`20owner`20of`20`20the
- X`20`20`20`20`20`20`20`20`20`20cube,`20`20or`20`20in`20the`20middle`20if`20neit
- Vher`20player`20has`20doubled.
- X`20`20`20`20`20`20`20`20`20`20For`20example,`20if`20the`20player`20whose`20hom
- Ve`20board`20is`20`20at`20`20the
- X`20`20`20`20`20`20`20`20`20`20bottom`20of`20the`20screen`20doubled`20last,`20t
- Vhe`20cube`20will`20appear
- X`20`20`20`20`20`20`20`20`20`20beside`20the`20top`20of`20the`20board.
- X
- X
- X
- XSun`20Release`204.1`20`20`20Last`20change:`20October`206,`201992`20`20`20`20
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`206
- X
- X
- X
- X
- X
- X
- XLDB(1)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20USER`20COMMANDS
- V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20LDB(1)
- X
- X
- X
- X`20`20`20`20`20Move`20Blocks
- +-+-+-+-+-+-+-+- END OF PART 1 +-+-+-+-+-+-+-+-
-