-+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+
X`09`09`09`09   *************************
XInstallation Docs and Manifest for ** BOSS : Beyond Moria **
X`09`09`09`09   *************************
X
X`09`09`09`09        (Version 2.0)
X
XMANIFEST:
X--------
X`20
XBOSS.PAS     - The main Pascal source program to the game
X
X*.INC        - These files are all of the include files used
X`09       when compiling BOSS.PAS.  They have been created
X`09       to ease finding certain sections of code.  These
X`09       34 files require about 1 megabyte of storage.
X
X*.MAR        - These are the MACRO source files for some subroutines which
X               are needed by BOSS.PAS.  Note that these are identical to the
X               macro files from MORIA.  These 11 files require about 30k of
X               storage`20
X
X*.DAT        - A set of data files that the program uses when it runs.
X`09       All data files must have appropriate world
X`09       protections set.
X            `20
XMONSTERS.DAT - Monster list.   `09`09`09     `5BWorld Read`5D
X
XOBJECTS.DAT  - Dungeon items.`09`09`09     `5BWorld Read`5D
X
XINVENT.DAT   - Store items.`09`09`09     `5BWorld Read`5D`20
X
XSKILLS.DAT   - Skill list`09`09`09     `5BWorld Read`5D`20
X
XHOURS.DAT    - A file containing the valid hours     `5BWorld Read`5D
X`09       for playing BOSS.`20
X
XMESSAGE.DAT  - This file is displayed as the opening `5BWorld Read`5D
X`09       page of Boss when it is executed. `20
X`09       Messages can be changed, but please`20
X`09       don't change the credits. `20
X
XBOSSCHR.DAT   - This file contains the database of   `5BWorld Read,Write,Exe
Vcute`5D
X`09`09valid Boss saved characters.  It is`20
X`09`09an encrypted file and so editing it`20
X`09`09may corrupt it. `20
X
XBOSSTOP.DAT   - The high score file for Boss.        `5BWorld Read,Write`5D
X
XWIZARD.DAT    - This is a datafile containing the    `5BWorld Read`5D
X`09        usernames of all valid wizards.`20
X
X`09`09A 'wizard' is a person that has
X`09`09special game functions available for
X`09`09bug testing and administrative needs.
X
X`09`09Note that people in this file do not need
X`09`09to enter the wizard password in
X`09`09order to enter wizard mode.
X
X`09`09The password is used in cases where
X`09`09a non-wizard is playing and needs help
X`09`09in fixing something. `20
X
X
XQUOTES.DAT    - File of random quotes.`09             `5BWorld Read`5D
X
XUSERS.DAT     - List of everyone who has ever`09     `5BWorld Read,Write`5D
X`09        played your version of BOSS.`20
X
XLOSER.DAT     - File full of usernames that you      `5BWorld Read`5D
X`09        don't want to play your version of`20
X`09`09BOSS.  These users get mysteriously
X                disconnected.              `20
X
XPUTZS.DAT     - File of usernames that you may wish  `5BWorld Read`5D
X`09        to discourage from playing.  These`20
X`09`09people get triple the usual random`20
X`09`09wierdnesses. (See mess_with_mind()`20
X`09`09in MISC.INC.)
X
XBUS.DAT       - A silly picture of a bus that        `5BWorld Read`5D
X`09        appears when the player changes `20
X`09`09towns.
X
XBOSSLOG.DAT   - Playlog. CLEANLOG.COM can set this   `5BWorld Write`5D`20
X`09`09file up for you.
X
XNEWUSER.TXT   - File that gets displayed to first    `5BWorld Read`5D
X`09        time players. `20
X`20
XBOSSHLP.HLB   - The online help library.             `5BWorld Read`5D
X`20
XBOSSHLP.HLP   - The source code for the online`20
X`09        help libray. `20
X
XWISH.LIST     - A text file containing some ideas`20
X`09        for further modifications to boss`20
X`09`09that we finally added or never got`20
X`09`09around to.
X
XBUGS.TXT      - Known bugs in BOSS.
X
XBUILD.COM     - a DCL com file that handles the nastiness of compiling this
X                monster, moving it into the right directory, and setting
X                appropriate protections on it.  Also handles other matters
X                such as maintaining the help files, etc.
X`20
X*.DOC`09      - A bunch of support docs that help explain the
X`09        monster and item files.  If you can figure out
X`09`09how to customize your creatures and objects,`20
X`09`09go for it!
X
X
XInstallation:
X-------------
X
XOk.  Now that you know what everything is, here's what you do next:
X
X1) Move to the `5B.boss.dat`5D directory and run the CLEANLOG.COM
X   file to create a blank playlog.  Type "@cleanlog"
X
X2) Move back to your `5B.boss`5D directory and type "@build macros" to creat
Ve
X   the macro library (the machine language patches to BOSS).
X
X3) Type "@build" to compile the entire program.  Sit back and wait.  This
X   takes a while.  There should be one warning from the compiler that you
X   can ignore, and one from the linker as well.  Don't sweat it, we don't.
X
X4) Edit STARTUP.COM to correctly define "datadir" and "bossdir" up at the to
Vp.
X
X5) Run the program once and it will create several other data
X   files that you need.  Just type "@startup" and let it go!
X
X6) Now you need to set the protections on all the files as listed above.
X   If you don't know how to do this, type "help set protection" and learn.
X   Another method of setting protections is by using acl's.  SETACLS.COM is
X   an example of how protections could be set up.  Type "help set/acl"
X   for more information.
X
X7) Inform your users of what you've done.  Have them put the line:
X
X     $ boss :== @your_disk:`5Byour_directory.boss`5Dstartup.com
X
X   in their LOGIN.COM files.  Obviously, you have to replace "your_disk"
X   and "your_directory" with the appropriate values which you can find by
X   typing "show default".  This way, they'll be able to just type "boss"
X   at the command line to run the program.  If they have a save file, they
X   just type its name in after: "boss cool_wrestler.sav"
X
X8) If you have any major problems with the above or suggestions
X   on how to improve this system, feel free to mail us.
X
X`09`09`09`09`09    raoul@u.washington.edu
X`09`09`09`09`09    cloister@u.washington.edu
X
X9) Number nine...number nine...number nine...
X
X
$ CALL UNPACK INSTALL.DOC;1 1683505033
$ create 'f'
X$! keep this file around.  you need it to make '@build lock'
X$! and '@build unlock' work.
X$!
X$ write sys$output " "
X$ write sys$output " "
X$ write sys$output "                  The BOSS is taking a vacation."
X$ write sys$output "                Let him rest and enjoy himself without"
X$ write sys$output "                worrying about you ruining his"
X$ write sys$output "                stay in pago-pago."
X$ write sys$output " "
X$ write sys$output " "
X$ write sys$output "                  No, actually changes are being made.."
X$ write sys$output "                BOSS should be back online in a day or s
Vo."
X$ exit
$ CALL UNPACK LOCK.COM;1 1014392199
$ create 'f'
X$ set verify  ! so you can see what's going on as it happens.
X$!
X$! let's have some directories.
X$ create/dir `5B.boss`5D    `20
X$ create/dir `5B.boss.etc`5D
X$ create/dir `5B.boss.inc`5D
X$ create/dir `5B.boss.dat`5D
X$ create/dir `5B.boss.mar`5D
X$!
X$! move files into the main boss directory
X$ if f$search("mailinstruct.txt") .nes. "" ! this file might not exist, so
X$ then                                     ! don't freak if it's not there.
X$   rename MAILINSTRUCT.TXT `5B.boss`5DMAILINSTRUCT.TXT
X$ endif
X$ rename BOSS.PAS `5B.boss`5DBOSS.PAS`20
X$ rename BUILD.COM `5B.boss`5DBUILD.COM`20
X$ rename INSTALL.DOC `5B.boss`5DINSTALL.DOC`20
X$ rename STARTUP.COM `5B.boss`5DSTARTUP.COM`20
X$ rename LOCK.COM `5B.boss`5DLOCK.COM
X$!
X$! dat directory:`20
X$ rename SETACLS.COM `5B.boss.dat`5DSETACLS.COM
X$ rename BOSSHLP.HLP `5B.boss.dat`5DBOSSHLP.HLP`20
X$ rename BOSSTOP.DAT `5B.boss.dat`5DBOSSTOP.DAT`20
X$ rename BUS.DAT `5B.boss.dat`5DBUS.DAT`20
X$ rename CLEANLOG.COM `5B.boss.dat`5DCLEANLOG.COM`20
X$ rename HOURS.DAT `5B.boss.dat`5DHOURS.DAT`20
X$ rename LOSER.DAT `5B.boss.dat`5DLOSER.DAT`20
X$ rename MONSTERS.DAT `5B.boss.dat`5DMONSTERS.DAT`20
X$ rename NEWUSER.TXT `5B.boss.dat`5DNEWUSER.TXT`20
X$ rename PUTZS.DAT `5B.boss.dat`5DPUTZS.DAT`20
X$ rename USERS.DAT `5B.boss.dat`5DUSERS.DAT`20
X$ rename MESSAGE.DAT `5B.boss.dat`5DMESSAGE.DAT`20
X$ rename WIZARD.DAT `5B.boss.dat`5DWIZARD.DAT`20
X$ rename OBJECTS.DAT `5B.boss.dat`5DOBJECTS.DAT
X$ rename INVENT.DAT `5B.boss.dat`5DINVENT.DAT
X$ rename QUOTES.DAT `5B.boss.dat`5DQUOTES.DAT
X$ rename SKILLS.DAT `5B.boss.dat`5DSKILLS.DAT
X$!
X$! etc directory:`20
X$ rename BUGS.TXT `5B.boss.etc`5DBUGS.TXT`20
X$ rename CREATURE.DOC `5B.boss.etc`5DCREATURE.DOC`20
X$ rename ITEMFLAGS.DOC `5B.boss.etc`5DITEMFLAGS.DOC`20
X$ rename OBJECT.DOC `5B.boss.etc`5DOBJECT.DOC`20
X$ rename WISH.LIST `5B.boss.etc`5DWISH.LIST`20
X$!
X$! inc directory:`20
X$ rename CONSTANTS.INC `5B.boss.inc`5DCONSTANTS.INC`20
X$ rename CREATE.INC `5B.boss.inc`5DCREATE.INC`20
X$ rename CREATURE.INC `5B.boss.inc`5DCREATURE.INC`20
X$ rename DATAFILES.INC `5B.boss.inc`5DDATAFILES.INC`20
X$ rename DEATH.INC `5B.boss.inc`5DDEATH.INC`20
X$ rename DESC.INC `5B.boss.inc`5DDESC.INC`20
X$ rename DEVICE.INC `5B.boss.inc`5DDEVICE.INC`20
X$ rename DISPLAY.INC `5B.boss.inc`5DDISPLAY.INC`20
X$ rename EAT.INC `5B.boss.inc`5DEAT.INC`20
X$ rename FILES.INC `5B.boss.inc`5DFILES.INC`20
X$ rename FLOPPY.INC `5B.boss.inc`5DFLOPPY.INC`20
X$ rename GENERATE.INC `5B.boss.inc`5DGENERATE.INC`20
X$ rename HELP.INC `5B.boss.inc`5DHELP.INC`20
X$ rename IO.INC `5B.boss.inc`5DIO.INC`20
X$ rename MAIN.INC `5B.boss.inc`5DMAIN.INC`20
X$ rename MISC.INC `5B.boss.inc`5DMISC.INC`20
X$ rename OBJECTS.INC `5B.boss.inc`5DOBJECTS.INC`20
X$ rename POTIONS.INC `5B.boss.inc`5DPOTIONS.INC`20
X$ rename PRAYER.INC `5B.boss.inc`5DPRAYER.INC`20
X$ rename RAYGUN.INC `5B.boss.inc`5DRAYGUN.INC`20
X$ rename SAVE.INC `5B.boss.inc`5DSAVE.INC`20
X$ rename SKILLS.INC `5B.boss.inc`5DSKILLS.INC`20
X$ rename STORE1.INC `5B.boss.inc`5DSTORE1.INC`20
X$ rename STORE2.INC `5B.boss.inc`5DSTORE2.INC`20
X$ rename TECH.INC `5B.boss.inc`5DTECH.INC`20
X$ rename TERMDEF.INC `5B.boss.inc`5DTERMDEF.INC`20
X$ rename TRAIN.INC `5B.boss.inc`5DTRAIN.INC`20
X$ rename TREASURE.INC `5B.boss.inc`5DTREASURE.INC`20
X$ rename TRICK.INC `5B.boss.inc`5DTRICK.INC`20
X$ rename TYPES.INC `5B.boss.inc`5DTYPES.INC`20
X$ rename VALUES.INC `5B.boss.inc`5DVALUES.INC`20
X$ rename VARIABLES.INC `5B.boss.inc`5DVARIABLES.INC`20
X$ rename WIERD.INC `5B.boss.inc`5DWIERD.INC`20
X$ rename WIZARD.INC `5B.boss.inc`5DWIZARD.INC`20
X$!
X$! mar directory:`20
X$ rename BITPOS.MAR `5B.boss.mar`5DBITPOS.MAR`20
X$ rename DISTANCE.MAR `5B.boss.mar`5DDISTANCE.MAR`20
X$ rename INSERT.MAR `5B.boss.mar`5DINSERT.MAR`20
X$ rename MAXMIN.MAR `5B.boss.mar`5DMAXMIN.MAR`20
X$ rename MINMAX.MAR `5B.boss.mar`5DMINMAX.MAR`20
X$ rename PUTQIO.MAR `5B.boss.mar`5DPUTQIO.MAR`20
X$ rename RANDINT.MAR `5B.boss.mar`5DRANDINT.MAR`20
X$ rename RANDREP.MAR `5B.boss.mar`5DRANDREP.MAR`20
X$ set noverify
X$ write sys$output "Ok.  Now move into your new `5B.boss`5D subdirectory "
X$ write sys$output "and follow the instructions in install.doc"
$ CALL UNPACK ORGANIZE.COM;1 894019592
$ create 'f'
X$!
X$ define datadir disk$a:`5Bcloister.foo.boss.dat`5D
X$ define bossdir disk$a:`5Bcloister.foo.boss`5D
X$
X$ if p1 .eqs. "SCORE" then goto score
X$ if p1 .eqs. "HELP" then goto help
X$
X$ normal:
X$! set mess/nof/nos/noi/not
X$
X$ !update playlog
X$ open/append file datadir:bosslog.dat
X$ string = "New Character"
X$ if p1 .nes. "" then string = p1
X$ usernam = f$getjpi("","username")
X$ line = f$edit(f$getsyi("nodename"),"trim") + "::" + usernam
X$ line = line + "  started at:"+f$time()+" : "+string
X$ write file line
X$ close file
X$
X$ !check user file.
X$ open/read/write/share userfile datadir:users.dat
X$
X$ userloop:
X$ read/end=newuser userfile line
X$ if line .eqs. usernam
X$ then
X$   close userfile
X$   goto start
X$ endif
X$ goto userloop
X$
X$ newuser:
X$ write userfile usernam
X$ close userfile
X$ type/page datadir:newuser.txt
X$ inquire hitpage "`09`09`09Press <return> to play."
X$
X$
X$ !---start the game---
X$ start:
X$ commandline = f$trnlnm ("MAS$DRVCOM")
X$ define /nolog sys$input tt
X$ define /nolog/user sys$command tt
X$ write sys$output commandline
X$ mcr bossdir:boss.exe 'commandline 'p1
X$
X$
X$ !update the playlog and exit
X$ open/append file datadir:bosslog.dat
X$ line = f$edit(f$getsyi("nodename"),"trim")+"::"+usernam
X$ if f$extract(0,4,line) .eqs. "MAX:" then line = line + "  "
X$ if f$extract(0,4,line) .eqs. "VAX1" then line = line + " "
X$ line = line + " finished at:"+f$time()+" : "+string
X$ write file line
X$ close file
X$ set mess/s/f/i/t
X$ goto exiting
X
X$ score:
X$ n = 0
X$ write sys$output "Username      Points  Character              Level    Qu
Vality       Class"
X$ open/read scorefile datadir:bosstop.dat
X$ scoreloop:
X$ read/end=done scorefile line
X$ write sys$output line
X$ n = n + 1
X$ if n .eq. 20 then goto pause
X$ goto scoreloop
X
X$ pause:
X$ n = 0
X$ inquire line "press enter to continue"
X$ if line .eqs. " " then goto done
X$ goto scoreloop
X
X$ done:
X$ close scorefile
X$ goto exiting
X`20
X$ help:
X$ spawn/nowait help/prompt/page/noliblist/library=datadir:bosshlp.hlb
X$
X$ exiting:
X$ deassign datadir
X$ deassign bossdir
X$ exit
X
$ CALL UNPACK STARTUP.COM;1 1142783574
$ create 'f'
X1 ADVENTURING
X`20
X2 Armor-Class
X     Armor class is a number that describes the  amount  and  the
Xquality of armor begin worn.  Armor class will generally run from
Xabout 0 to 100, but could become negative or greater  than 100 in
Xsome cases.                                           `20
X`20
X     The larger your armor class, the more protective it  is.   A
Xnegative  armor  class  would  actually  help get you hit.  Armor
Xprotects you in three manners.  One, it makes you  harder  to  be
Xhit for damage.  A hit for no damage is the same as a miss.  Two,
Xgood armor will absorb some of the  damage  that  your  character
Xwould  have taken.  An armor class of 100 would absorb 25% of any
Xdamage meant for him.  Three, fire and acid damage are reduced by
Xwearing  body  armor.  It is obvious that a high armor class is a
Xmust for surviving the lower levels of the Boss's realm.
X`20
X     Each piece of armor has an armor  class  adjustment,  and  a
Xspecial  bonus.   Armor  bought  in  town  will have these values
Xdisplayed with their description.  Armor that is found within the
Xrealm must be identified before these values will be displayed.
+-+-+-+-+-+-+-+-  END  OF PART 2 +-+-+-+-+-+-+-+-
