billr@saab.CNA.TEK.COM (Bill Randle) (12/19/90)
Submitted-by: routley@tle.ENET.DEC.COM (Kevin Routley)
Posting-number: Volume 11, Issue 89
Archive-name: larn/Part06
Environment: Unix, VMS, MS-DOS, termcap
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 6 (of 11)."
# Contents: larn.maz larn122.doc tgetstr.c
# Wrapped by billr@saab on Tue Dec 18 10:14:19 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'larn.maz' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'larn.maz'\"
else
echo shar: Extracting \"'larn.maz'\" \(27769 characters\)
sed "s/^X//" >'larn.maz' <<'END_OF_FILE'
XD###################################################################
X# # . # # # # # . #
X# D D . . D . #
X###D########################################## # # ###D###
X# -# #. # # ################ . .#
X# ####### ######## ############ D #### # # #
X# ... #.# # # # . # # # #### # ############ # ###D###
X# #.# # # ## # # # ############ #### # #- # # # #. #
X# . # # # # ## #- # # # - D #### # # . D # #.# # ... #
X# # #.# # # # # # . . # # # # # # #-# # ~.! #
X###D### ### #######D## # ############ ###### ########## ### #######
X# # @ .# # ..... ...#
X###D###########################################################D###
X# . #.....# # # # -# # # # # #
X# ..... . D D D D. #
X# #.....# # # # # # .# # # #
X###################################################################
X
X###################################################################
X#.. . D # . # #- #
X############# ######### # ## ### ##### ## #### ###### ####### ### #
X#.#!#~# # # .-# # #- # # # # -# # # #
X# # #.# . # ####### # # # # # # # # # #####
X# # ..# ##### # # # #### # ## ## ## # ###### ####### # #
X# - ..D # D # . D # # # #.##### ## ## # #. #.# #..# # ### #
X####### ####### ### # # # # # # D # D D #..D # #
X#- # # # #### # ###### # ## # #. # #..# #####
X### #######################- # # # ###################### # #
X# ... # . #..# ### # - .. . #. ### #
X# # # # ### #################### # # #
X# ### #
X################################################################# #
X#- D ### # # # #
X# . # # # D #
X###################################################################
X
X###################################################################
X# .. #
X# ############## ############################################## # #
X# # # # # .. # # #
X# #D## # # ############D################# ########### # # #
X######### #- # # # #- D # # ~ # # # # # # #
X# # # # # # # ### # # # D - # # ####### # # # #
X# .... # #### # # # #!# # # ###### .. #.# # # # # # #
X# .... # # # # ### # # # # #########D#### # ### # # # # #
X# .... ######## # # D # #- # #.. # ...#.# # #.# # # # # #
X# # # ### # #### #.- D - #.# #.#.# # # # # #
X#####DD## ######## # # D D. # # # #...# # # # # #
X# # ..# # # # ############################## # ##### # # # # #
X# ......# # # # # # # # # #
X# ####### ###### ################################ ######### # ### #
X# .D. # #
X###################################################################
X
X###################################################################
X# ## ## ### ## #
X# ##### ## ..- ## ##.## ## #
X# # ! ## ## . ## ## .## .. ## #
X# #....###### ## ## ## . ## ## #
X# # - # ## ##D# ## . ## ## #
X# #####D ~ ####### ###........ ## ... ## ## #
X# # # ## ## .... ## . ## ## #
X# #. ######## ## ## . - ####D#### - #
X# #.- #...## ## ... ## ### ...... ## ## #
X# #. #..## ## ######### ## ... ## ### ## .. #
X# #.. #.## ## ## - ## . #### ## ## ##### ## #
X# #####D## ## ## ###### ## ## ####### ## #
X# D -.## #### ######## ##DD## ######## #D #
X# ###### ... ## ########## ## #
X#### . . ###
X###################################################################
X
X###################################################################
X# #
X# ####.########################################## ## ##########
X# # #.#.#.# #.. #. # # #
X####### # # # # # ##### #! # ########### # ### #
X# # # # # # # ##...## # # # # # #-# #
X# ..- D # # # # # ## . ## ####D##### .. ### # # # #
X# # # # ##. ~ .## # # ### # # ##### # #
X############ # # # # ## . . .## #...# .. #.# # # # #
X# .. .# # # # # ## - ## # # D.D # ######### #
X# . D # # # # ##.......## ####D#####.# # #
X# - . # # # # # ## ## # . # ### ########### #
X############ #.#.# # ###D### # . #....# # #
X# # #-# D .. # .# ###....## ##-### #
X#### ########################################## ###### ### #
X# . #
X###################################################################
X
X###################################################################
X# #
X# ###########################D####### ## #
X# ####################### # ##...... ## ## #
X# ########D###### # # !##.... ## ## #
X# ############ ## ## ... # # #...## ~ ## ###### #
X# # # # # ...... # # # .. ##### ## #
X# # - .. # # # ########### # # . ######### ## #
X# ##### ##### # # # # #... ## ## #
X# # # ########## ######## ########DD#### ####### #
X# # # .... # # # # # ## ## #
X# ##### # # ....# # ######### # # ##### ## #
X# #- ######D##########..# # ######### # - #.. ## ## #
X# ##### # # # #... #.....## #
X# # ################### ###############... #### # ######
X# # #
X###################################################################
X
X###################################################################
X# #
X########### ##### ##### #####D#### ##### ###### #
X#.. # #-..D ###### ## # ## # ## ..## ### #### #
X# #### ### ##### # ## # ##### # ## ### ## # # #
X# # # # # # ##### # ## # # #### # #..##### - ### #
X# # # ####### ### #...# # ######## # # #~. .... # #
X# # # # #...# # # ######### ############## #
X# # ###### ####### # ### ### # .. # #
X# # # - # #-#####!# # # #### ## #### # #
X# ###### # ########## #.. ....# # ######## # # # ## ## #
X# -.# ##### ####...## # . .# #..# # ## # #
X# #### ###### #.### #####.#### #### ### ## # #
X# #- #######....#### ...... #.# . # ## # #
X# ####### ##### ###########.############### ### #
X# . #
X###################################################################
X
X###################################################################
X# # #- . # # # # # # # # #
X# # # #####.##### # # # # # # # # # # ###########D########### #
X# # ##### # # ### # # # # # # # # # ### #.... # # # #
X# # # # # # # # # # # # # # #.!. -.. #.##.# # #
X# # . - # # ####### # # # # # # # # # ########## ## # #
X#.####### # # D # . # # #
X#. -# ################################################### #
X# ##### D. . #
X# # ### ###D### ### ### ###D### ### ### ###D### ###.### #
X# # ###### ### .# .# #. # # # # # # # # . # #
X# ### # -# ### .#. - .# # # #...- # # .. # # -..# # . # #
X# # # ### #. ~ .# # # # # # # # .. .# # # #
X#.###### # ### # # #.....# # # # # # # # # #
X# # ####### ####### ####### ####### ####### ####### ####### #
X# # ... .. #
X###################################################################
X
X###################################################################
X# # . # ### # # # # . #
X# D D . # . D . #
X############################################### # # ###D###
X# -# #. # # ################ . .#
X# #######D######## ############ # #### # # #
X# ... #. # #!~ . # # # #--# # ############ #####D###
X# #.# # # ## # # # ############ #--# # #- # # # #. #
X# . # #-# # ## #- # # # - D ## # # # . D #### #.# # ... #
X# # #-# # # # # # . . # # # # # # #-# # -.- #
X###D### ### ####### ## # ############ ###### ########## ### ###D###
X# # @ . ..... ...#
X##################################### ###############D###
X# . #.....# # # # -# # # # #
X# ..... . D D D D. #
X# #.....# # # # # .# # # #
X###################################################################
X
X###################################################################
X#.. . # D . #- #
X### ######### ######### # ## ### ##### ## ########### ####### ### #
X#.# # # # .-# # #- # # # # -# # # #
X# # #.# . # ####### # # # # # # # # # #####
X# # ..####### # # # #### # ## ## ##!# ###### ####### # #
X# - ..D # D # . D # # # #.##### ## ## # #. #.# #..# # ### #
X####### ####### ### # # # # # # D # D D #..D # #
X#- # # # #### # ###### # ## # #. # #..# #####
X### #######################- # # # ###################### # #
X# ... # . #..# ### # - .. . #. ### #
X# # # # #-# #################### # # #
X# # -# #
X################################-################################ #
X#-..... # ####D ### # # # #
X#~..... # # # # D #
X###################################################################
X
X###################################################################
X# .. #
X# ############## ############################################## # #
X# # # # # .. # # #
X# #D## # # ############D################# ########### # # #
X######### #- # # # #- D # #.!..# # # # # # #
X# # # # # # # # ### ## # #....D - # # ####### # # # #
X# .... # #### # # # #~# # # ###### .. #.# # # # # # #
X###....## # # # ###.# # # #########D## # # ### # # # # #
X# .... ######## # # D .# #- # .. # ...#.# # #.# # # # # #
X# # ## # ### .# #### .- D - #.# #.#.# # # # # #
X#####DD## ######## #... .# . # # # #.#. # # # # #
X# # ..# # # ############################## # # ##### # # # #
X# ......# # # # # # # # # # #
X# ####### ###### ################################D# ######### ### #
X# .D. #-.-#
X###################################################################
X
X###################################################################
X# ## ## ## ## ## #
X# ############## ## ..- ## ## . ## ## #
X# # # ## ## . ## ## . ##.. ## #
X# #....###### ## ## ######## ####### . ## ## #
X# # - # ## ## ##D# ## . ## ## #
X# # D###### ###........ ## ... ## ###### #
X# # # ## ## .... ## . ## ## - # #
X# #. ######## ## ## . - ####D####.. D #
X# #.- #...## ## ... ## ### ...... ## ##### #
X# #. #..## ## ######### ## ... ## ### ## .. #
X# #.. #.## ## ## - ## . #### ## ## ##### ## #
X# #####D####### # ## ## ##..## ## ## ## ## ## #
X# D -.## # # #### ##.-.-## ##DD## ### #### ## #
X# ######. ...# #### ## #### ##### ## ##D#
X####~!.... D . . #
X###################################################################
X
X###################################################################
X# #
X# ####.########################################## ## ##########
X# # #.#.#.# #.. . # # #
X####### # # # # # ############# # ########### # ### #
X# # # # # # # --##...##-- # # # # #-# #
X# ..- D # # # # # #-## . ##-# ####D##### .. ### # # # #
X# # # # ###. .### # ~ # ### ### ##### # #
X############ # # # # ## . . .## #...# .. #.# # #
X# .. .# # # # # ## - ## # # D. # ######### #
X# . D # # # # ###.......### ####D#####.# # #
X# - . # # # # # -## ##- # . ### ########### #
X############ #.#.# # ######D###### # . ....# # #
X# #!#-# # .. # . ###....## ##-### #
X#### ############################## ########## ###### ### #
X# D . #
X###################################################################
X
X###################################################################
X# #
X# ###############D####################D# #
X# ####################### # ##...... # #
X# ########D###### # # ##.... # #
X# ############### ## ## ... # # #...## ##### #
X# # ~ # # #!...... # # # .. ##### # #
X# # - .. # # # ########### # # . ######### # #
X# ##### ######## # # # # # #... ## # #
X# # # # ########## ######## ########D #### ###### #
X# # # ....# # # # # # ## # #
X# ##### # ###### # ....# # ######### # # #####D# #
X# #- ## # #######..# # ######### # - #.. #
X# ##### # # # #... #..... #
X# # ################### ###############... #### ######
X# # #
X###################################################################
X
X###################################################################
X# # #
X########### ##### # #####D#### ##### ###### #
X#.. # #~..D ###### ## # ## # ## ..## ### #### #
X# #### ### ##### # ## # ##### # ## ### ## # # #
X# # # # # # ##### # ## # # #### # #..##### - ### #
X# # # ####### ### #...# # ######## # # #!. .... # #
X# # # # #...# # # ######### ############## #
X# # ###### ####### # ### ### # .. # #
X# # # - # #- # # # ######## #### # #
X# # # ########## #.. ....# # ######## # ## ## #
X# # -. ##### ####...## # . .# .. # # #
X# # ###### ##### #####.#### ####### # #
X# # - #######....#### ...... #.# . # ## # #
X# ######### ##### ###########.############### ### #
X# . #
X###################################################################
X
X###################################################################
X# D D #-..........# # # # # #
X#D#D# #####.#####.# # # # # # #############D########### #
X# # ##### #.#~###.# # # # # # ### .... # # # #
X#D# # #.......# # # # # # # . . -.. #. #.# # #
X# # . - # #.####### # # # # # ################## # #
X#D####### #. # D # . # # #
X#. D D -# ################################################### #
X# ###### . . #
X# # D ### ###D### ####### ###D### ####### ###D### ####### #
X# # ###### # # .# .# #. # # # # # # # # . # #
X# ### -# # # .#. - .# # # #...- # # .. # # -..# # . # #
X#DD# # # # #. .# # # # # # # # .. .# # # #
X#.###### # # # # #.....# # # # # # ! # # # #
X# # ####### ####### ### ### ####### ### ### ####### ### ### #
X# # ... .. #
X###################################################################
X
X###################################################################
X# D ## ## ## ## # # #
X# - . # ####### ## -.- ## ## ## #### D #
X#### # #.#-#.# .#. # .## ## # ####### . ### # #
X# # - ##-#.#D ### # ..## ## ##D ### ### ### ##### #
X# . # # # #.# .#. #- ##...##..###### # # # # # #
X# #### ####### ### -## ##--## ##### #### # -.D #
X# # # # ######D############# ########### # #
X#####D# ########### D D # # # .##D## #
X# # # # # #### # #####D############ ###- D ## ####
X# ##### ####### # #!.#-# # # . D ## # # .# #~.#
X# # # # # #..#####.# # ### # ## ##D###### #..#
X##### # D #.# # - # # # ### ##### # # .# # ##.##..#
X# . # # # # #D## # ####### . # .## .D ## # #
X##### # ####### # # # ### # # ## # -# # D #
X# # # ########### # ### ##### # #
X###################################################################
X
X###################################################################
X# # # # #
X# # D # ######### #########################.#### #
X#####.# # # ####D#### # #.#.#.# # #
X# # # # # ##### # # # # # #D# # # # # # #######
X# # ##### # #...# # . # - # # ## ## # # # # # # . #
X# # ## # - # D.#~#-# # # # ##...## # # # # # D..! #
X# #### ### ###.. #.####D#### # ## ## # # # # # # . #
X# # # # #####.# # # # #. - .# D D D D ############
X# ## # ## # # . # # ## ## # # # # #. .. #
X# ######.### # ## ## # # # ## ## # # # # D . #
X# ## # ## ##..##D#### # ## ## # # # # # . - #
X# #. # #D## ## ## # # #. ### # #.#.# # ############
X# ### ### #### # #-. # #-# # D #
X# # #. # ### # # - # ########D#################### . ####
X# # # # # # # # D #
X###################################################################
X
X###################################################################
X# # - # ## ### # #
X# ## # ################## # ## #### # ##### #D### #
X# . # # # ##### D # # - # .. # # #
X# #### # # ###D### - # -- . D D # ### # # # #
X# ### # ## ## # ###### #### # # # # # # #
X### #### ## ##### # #### # ### # # # # #
X# # ########- ## ## # # ############################## #
X# # ### ## ## ### D . #
X# # ## #### ## ##!# # ###D### ####### ###D### ####### ###D### #
X# # ## ## .###..##### # # #..~..# # # # # # . # #
X###D#D### ##..#..## # # .- .# # . # # .. # # -..# # . # #
X# # # ##...## - # # . .# # # # # # .. .# # # #
X# . # .. ###### # # .# #. # # # # # # # #
X# D ######### # ####### ###D### ####### ###D### ####### #
X# # # D # #
X###################################################################
X
X###################################################################
X# # # # ## ## ## ## D #
X# #. # -# # # # # ####### D##...## ####### ### ###### ###### #
X# # # ## ## #! .##.# ## ## D.# # #~.. D #
X####D###### # # .####...## ## # #######D### #######. # # .### ##
X# # # ## ####D## ## # # ## .. # #### # ##
X# ######## # ## ### ### ## ## #### ### # ## # # #
X# ######## ###### # . ## ### # # ######D############# #
X# . ## - ####### # # #
X# ####### # . ## ### ## D. #####D###########D###
X#####D##### # # ###. ### ##### ### - ## ### # # # # #
X#. -# #.# # ####### ## # # ## # # . - . D #
X#####D##### # # # ## # # ###### # # # # # #
X#- .# # # #####D###### # # . # # #### ######D###########
X##### ##### # # D # # D # # # # #### #
X# D # D # # D # # .. #
X###################################################################
X
X###################################################################
X# D ## ## ## ## # # #
X# - . # ####### ## -.- ## ## ## #### D #
X#### # #.#-#.# .#. # .## ## # ####### . ### # #
X# # - ##-#.#D ### # ..## ## ##D ### ### ### ##### #
X# . # # # #.# .#. #- ##...##..###### # # # # # #
X# #### ####### # ### -## ##--## ## ## ### # -.D #
X# # # # ## ######D###### ##### ####D###### # #
X#####D# ########### D D # # ..##D## #
X# # # # # #### # #####D############ ###- D ## ####
X# ##### ####### # # .#-# # # . D ## # # .!# # #
X# # # .. # # #. #####.# # ### # ## ######### . # #
X##### # D #.#~# - # # # ### ##### # # .# # ##D##..#
X# . # # .. # # #D## # ####### . # .## .D ## # #
X##### # ####### # # # ### # # ## # -# # D #
X# # # # # # ### ##### # #
X###################################################################
X
X###################################################################
X# # . # # #
X# # D .!# ######### #########################.#### #
X#####.# . # # ####D#### # #.#.#.# # #
X# # #.. # # ##### # # # # ## #D# ## # # # # # ###D###
X# # ##### # #. # # . # - # # #- ## ## -# # # # # # # . #
X# # ## # - # D.# #-# # # # ##...## # # # # # #..! #
X# #### ### ###. #.######### # ## ## # # # # # # . #
X# # # #~#####.# # # D #. - .# # D D D ############
X# ## # .## # # . # # ## ## # # # # #. .. #
X# ######.### #...## #.. # # # ## ## # # # # D . #
X# ## #..## #####D#### # # ## ## # # # # # # . - #
X# #. # #D## # # # #.## ### ## #.#.# # ############
X# ### ### #### # #-. # #-# # D #
X# # #. # ### # # - # ############################# . ####
X# # # # # # # # D #
X###################################################################
X
X###################################################################
X# # - # # # ### # #
X# ## # ################## # # # #### # ##### #D### #
X# . # # # ##### D # - # .. # # #
X# #### # # ###D##### - # -- . D D # ### # # # #
X# ### # ## ## D # ##### #### # # # # # # #
X### #### ## ##### # ##### ### # # # # #
X# # ########- ## ## # # ############################## #
X# # ###~.## ## ### D . #
X# # ##..#### ## ## # # ###D### ####### ###D### ####### ###D### #
X# #. ## ## .###. ##### # # #. .# # # # # #.....# #
X##D##D### ##. #. ## # # .- .# # . # # .. # # -..# #.....# #
X# # # ##. ## - # # . .# # # # # # .. .# # # #
X# . # .. ###### .. # # .# #. # # # # # # ! # #
X# D #########D## ####### ### ### ####### ### ### ####### #
X# # # D # #
X###################################################################
X
X###################################################################
X# # # # ## ## # # D #
X# #. # -# # # # # ####### D##...## ####### ### ###### ###### #
X# # # # # # ## ## # .. ##.# ## ## D.# # # . D #
X# . # # # .#### ### # # #######D### #######. # # .### ##
X####D###### # ## ####D## # # # # # ##. # #### # ##
X# # # ## ### #### # ## #### ### # # . # # #
X# ##### # ###### # . ## ### # # ######D############# #
X# ##### # . ## - ####### # #
X# ####### # . ## ## # D. ##D###################
X#####D##### # # ###. ### ### # # - ## # # # # # ...#
X#. -# #.# # ####### ## # # ## # . - . D ..!#
X########### # # # ## # ########### # # # # ...#
X#- .# # # #####D###### # # . # # ##D###################
X##### ##### # # D #..# D # # # # # # #
X# D # D #.~# D # # # .. #
X###################################################################
X
END_OF_FILE
if test 27769 -ne `wc -c <'larn.maz'`; then
echo shar: \"'larn.maz'\" unpacked with wrong size!
fi
# end of 'larn.maz'
fi
if test -f 'larn122.doc' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'larn122.doc'\"
else
echo shar: Extracting \"'larn122.doc'\" \(18526 characters\)
sed "s/^X//" >'larn122.doc' <<'END_OF_FILE'
X
X
X PC LARN version 12.2 for IBM PC Compatibles
X -------------------------------------------
X
X
X Table of contents
X -----------------
X
X
X 1. Introduction
X 2. System requirements
X 3. Files Supplied
X 4. Installation
X 5. Configuration
X 6. Command line options
X 7. TERMCAP
X 8. WIZARD mode
X 9. History and other Information
X
X
X
X
X 1. Introduction
X ---------------
X
X LARN is a dungeon type adventure game similar in concept to HACK, ROGUE
X or MORIA, but with a different feel and winning criteria. LARN was
X released for the UNIX environment in 1986 by Noah Morgan. It was
X subsequently ported to the MS-DOS environment by Don Kneller. Kevin
X Routley has been working on enhancements to LARN on and off for the
X past year.
X
X
X 2. System requirements
X ----------------------
X
X PC LARN requires:
X
X - MS-DOS or PC-DOS 2.x or above.
X
X - at least 256K of RAM.
X
X - disk storage capacity of at least 360K, although twice that much is
X preferred if you want to "checkpoint" your game to prevent
X accidental lose due to a system failure.
X
X - the ANSI.SYS device driver must be installed (although the NANSI.SYS
X driver is *strongly* preferred and has been included in this
X distribution). You should install either ANSI.SYS or NANSI.SYS, but
X not both. To install NANSI.SYS, put the line "device=NANSI.SYS" in
X your CONFIG.SYS file. See the TERMCAP section for further details.
X
X
X 3. Files supplied
X -----------------
X
X The following files should be included in this LARN122.ZIP file:
X
X LARN122.DOC This documentation.
X
X LARN122.FIX Changes made between LARN V12.0 and V12.2.
X
X LARN122.EXE The executable file.
X
X LARN.FTN Fortune cookie messages.
X
X LARN.HLP A help file, which can be read with the "?"
X command in LARN.
X
X LARN.MAZ Some maze levels are pre-calculated and
X stored here.
X
X LARN.OPT An example LARN.OPT file (see the CONFIGURATION
X section).
X
X TERMCAP A file describing the escape sequences to send
X to the terminal. The supplied TERMCAP file is
X for monochrome systems. See the TERMCAP section
X for details on changing TERMCAP.
X
X NANSI.DOC The documentation for NANSI.SYS.
X
X NANSI.SYS A new ANSI.SYS that is *much* faster than
X ANSI.SYS and supports the line insert and line
X delete escape sequence that LARN uses. This
X excellent product is written by Daniel Kegel.
X See the TERMCAP section and NANSI.DOC for more
X details.
X
X
X 4. Installation
X ---------------
X
X NANSI.SYS or ANSI.SYS must be installed as a device driver on your
X system in order for LARN to work (see System Requirements above).
X
X For a hard disk system I suggest creating a \GAMES\LARN directory and
X placing LARN and the provided support files in that directory. Following
X that, you would place \GAMES\LARN in your PATH.
X
X LARN will create several other files (LARN.SCR, LARN.PID, LARN.LOG)
X in that directory. Also, save files (LARN.SAV) and checkpoint files
X (LARN.CKP) will go in there by default. You will want to set the
X 'larndir:' option in your LARN.OPT file (see the Configuration section
X below) to point to this directory.
X
X For two-floppy systems, I would suggest the following:
X
X o place LARN122.EXE, LARN.OPT and TERMCAP. on disk one.
X
X o place LARN.FTN, LARN.MAZ, and LARN.HLP on disk two. This will
X be the 'larndir:' disk (see the Configuration section below).
X LARN.SCR, LARN.PID, LARN.LOG, save files, and checkpoint files
X will go on this disk.
X
X
X 5. Configuration
X ----------------
X
X PC LARN is configured by options placed in the file LARN.OPT.
X When PC LARN starts up, it looks in the current directory for
X this file, then in directories along your PATH. Here are the
X options that can be put in LARN.OPT.
X
X Options that are followed with a colon, ":", take at least one
X argument. Options without a colon are boolean, meaning you select
X that option merely by mentioning it.
X
X
X These options are only in PC LARN:
X
X cursor: start-line end-line
X Normally, LARN uses the standard DOS cursor (the flashing
X underscore) to show where your player is located. This can be
X difficult to see. This option results in a *BIOS* call to change
X the cursor size. For a monochrome display, the normal value of
X start-line and end-line is 11 and 12. Values of 4 and 9 give a
X larger cursor which is not too obtrusive.
X
X If "cursor" is not specified, no BIOS call is made.
X
X DECRainbow
X Put this in LARN.OPT if your computer is a DEC Rainbow and you
X want to use graphics characters for drawing the maze. You can
X use any characters from the ASCII character set and from the
X "line-drawing" character set. To use line-drawing characters,
X take the decimal value of the character and add 128 to it. This
X makes the values of line-drawing characters lie between decimal
X 128 and 255 and tells PC LARN you want a line-drawing character.
X
X Every attempt has been made with PC LARN V12.2 to maintain
X DECRainbow compatibility as provided by Don Kneller.
X Unfortunately, since I do not have access to a Rainbow, I cannot
X make any guarentees.
X
X graphics: wallc floorc
X In UNIX LARN, the wall character is a # and the floor character
X is a blank (which makes it almost impossible to tell where you've
X been). In PC LARN, the default wall character is also a # but
X the default floor character is a period.
X
X This option allows you to change these characters to something
X you like. Suggested characters are 176 (a graphic block) and
X 249 (a central dot).
X
X Almost all ASCII (non-graphics) characters already represent
X objects in LARN, so you should only choose numbers that are
X in the graphics character set (i.e. those with decimal values
X greater than 128).
X
X keypad
X This enables the keypad for use with LARN. A *BIOS* call is used
X to read the keypad. The correspondance between keypad and game
X command is:
X
X Keypad Command
X 7 8 9 u+l(y) up(k) u+r(u)
X \ | / \ | /
X 4 -5- 6 left(h) nothing right(l)
X / | \ / | \
X 1 2 3 d+l(b) down(j) d+r(n)
X Ins inventory(i)
X
X The letter in () is the game command letter. "u+l" means up and
X left. The keypad "7" is translated to the command for moving one
X space up and left. With shift the commands are the same as the
X uppercase letters.
X
X larndir: directory
X Sets "directory" to be the place LARN looks for files. For hard
X disks set this to be \GAMES\LARN. For 2-floppy systems, use B:
X
X If "larndir" is not specified, the current directory is assumed.
X
X ramlevels: number
X This number is the maximum number of levels PC LARN will keep in
X memory. The number can be between 1 and 14. Normally, PC LARN
X will use as much memory as available, but you may want to use
X less so there will be enough memory to start up a second copy of
X COMMAND.COM with the LARN command `!'. If there isn't enough
X memory for COMMAND.COM, LARN will clear the screen and prompt
X with "A>" until return is struck, then go back to the game.
X
X If "ramlevels" is not specified, a value of 14 is used. If
X "number" is less than 14, LARN will use a swapfile to store the
X oldest levels. Note that a level takes about 8K of memory.
X
X rawio
X This option causes the input and output of your computer to be
X switched to "raw" mode. The advantage of this is faster output
X and better handling of special characters ^S and ^P.
X
X =========== WARNING ==========
X Some computers (eg. DEC Rainbows) hang if rawio is attempted.
X ==============================
X
X swapfile: filename
X This is the name of the swap file that will be used if ramlevels
X is less than 14. If all the levels fit in memory, no swap file
X will be used. You may want to put the swapfile on a RAMdisk.
X If "swapfile" is not specified, LARN.SWP in directory larndir
X will be used.
X
X
X
X The following are options found in UNIX LARN as well:
X
X auto-pickup
X Starts you out in 'automatic pickup' mode. Whenever the player
X moves onto an object, it will be picked up. This mode can be
X toggled with the '@' command while in the game.
X
X bold-objects
X By specifying this option, all objects in the game will be
X highlighted. The 'highlight-objects' and 'inverse-objects'
X specify which highlighting method will be used.
X
X The default is non-bold objects, except if the 'original-objects'
X option is specified, when it is *forced* on (to distinguish
X monsters and objects that are represented by the same
X character).
X
X enable-checkpointing
X With this option, the game is saved every 400 moves. If your
X system crashes it is possible to recover from the last checkpoint
X file (LARN.CPK in the LARN directory) with the command "larn ++".
X
X highlight-objects
X If the 'bold-objects' option is specified, this option causes
X objects to be highlighted with bolding.
X
X inverse-objects
X If the 'bold-objects' option is specified, this option causes
X objects to be highlighted with inverse video. The default is
X 'highlight-objects'.
X
X monster: name
X Sets the name of a monster. If the name has a space in it,
X enclose it in double quotes (eg "tooth fairy"). The leading
X character determines which monster the name goes with (e.g.
X "monster: bee" and "monster: Buzzbomb" change the names of
X bugbears and Bats, respectively).
X
X name: yourname
X Sets the name of the player. If you want a space in your name,
X enclose it in double quotes (eg "Mad Max").
X
X no-introduction
X Skip displaying the opening messages.
X
X no-beep
X Disable sound from the speaker.
X
X original-objects
X Like 'prompting' mode, this mode is provided for compatibility
X with LARN V12.0. By specifying this option, the characters
X used to show objects in the game are the same as in 12.0. The
X default is to use characters that are closer to those used with
X HACK, ROGUE and MORIA.
X
X prompt-on-objects
X By specifying this option, you enable 'prompting' mode. In this
X mode, the player is prompted for the action to perform when
X encountering an object (e.g. 'Eat, pick up, or ignore?').
X Prompting mode is provided for compatibility with LARN V12.0, and
X is off by default.
X
X savefile: filename
X The filename to use for saving the game. The default is LARN.SAV
X in the LARN directory. For a 2-floppy system you might try
X B:LARN.SAV if the LARN directory is on the A disk drive.
X
X
X 6. Command line options
X -----------------------
X
X There are several command line options that can modify the behavior of
X LARN. These are:
X
X -o optionfile Use this as the option file rather than LARN.OPT. As
X with LARN.OPT, the current directory then directories
X along your path are searched for this file which
X supplies configuration information.
X
X -s Show scores.
X
X -l Show log file. You have to know the Wizard's password
X to do this.
X
X -i Show all scores including the inventories of dead
X players.
X
X -c Create a new score file. You have to know the Wizard's
X password to do this. Erasing LARN.SCR has the same
X effect.
X
X -n No welcoming message. Prevents printing of the short
X introduction to LARN. Putting the "no-introduction"
X configuration option in LARN.OPT has the same effect.
X
X -# Where # is a number from 0 to 9. This sets the
X difficulty of LARN to this level. Normally, LARN
X starts out with difficulty 0 and increases in
X difficulty by 1 when you win at the current level.
X Thus the game automatically gets more difficult.
X
X -h A help screen that shows the command line arguments.
X
X -p Prompt for actions on objects. Specifying the
X 'prompt-on-objects' option in LARN.OPT has the same
X affect.
X
X ++ Restore a game from a checkpoint file. If you have
X checkpointing enabled (with the "enable-checkpointing"
X configuration option in LARN.OPT) then LARN writes a
X checkpoint file every 400 moves. Should your system
X crash you can recover the game from the checkpoint file
X with this command line option
X
X For example: "larn -n -o bobslarn.opt" starts up LARN with no
X introductory message and uses bobslarn.opt file for configuration
X options. "larn ++" tries to restore LARN from a checkpoint file.
X
X
X 7. TERMCAP
X ----------
X
X LARN uses the UNIX "termcap" to select escape sequences to be sent to
X the terminal driver (either ANSI.SYS or NANSI.SYS) to change video modes.
X When LARN starts up, it checks in the environment for the variable called
X "TERM". The DOS command:
X set TERM ibmpc-ega
X will give the environment variable "TERM" the value "ibmpc-ega". By
X default, LARN assumes the value of TERM is "ibmpc-mono".
X
X Then LARN looks in the file called "TERMCAP" for a termininiefinition
X with the same name as the value of TERM. LARN first looks for TERMCAP in
X the current directory, then in directory "\ETC" (the normal UNIX place),
X then in directories along your PATH.
X
X The TERMCAP file uses 2 letter codes to describe each escape sequence
X and \E to mean ESC (the escape character is decimal 27). Each entry is
X enclosed in colons. For example, to start underscore mode on a monochrome
X display, we want to send the sequence "ESC[4m". This looks like
X ":us=\E4m:" as a termcap entry.
X
X The following sequences are used by LARN:
X
X ti terminal initialization. You could have something like:
X :ti=\E44;37m:
X which would mean to select blue background and white foreground.
X
X te terminal end. To reset your terminal to white on black:
X :te=\E0m:
X
X so stand out. Select red forground, keeping the blue background:
X :so=\E31m:
X
X se standout end. Back to white on blue:
X :se=\E44;37m:
X
X al insert line. This is *not* available in ANSI.SYS, so remove this
X entry if you're using ANSI.
X
X dl delete line. This is *not* available in ANSI.SYS, so remove this
X entry if you're using ANSI.
X
X If you want to make your own TERMCAP entry, copy the "ibmpc-mono"
X entry, replace the name (eg use "ibmpc-color" or "ibmpc-ega" or whatever),
X then replace the sequences with whatever you please. The possible escape
X sequences are generally listed in the DOS manual in the description of
X ANSI.SYS, as well as in the NANSI.DOC file.
X
X Remember to change the environment variable "TERM" to reflect which
X TERMCAP entry you want! You should probably put a "set TERM=..." line in
X your AUTOEXEC.BAT file.
X
X
X 8. WIZARD mode
X --------------
X
X There is a WIZARD mode for testing features of the game. To get into
X WIZARD mode, type in an underscore "_" and answer the prompt for the
X password with "pvnert(x)". Wizards are non-scoring characters that get
X enlightenment, everlasting expanded awareness and one of every object in
X the game.
X
X
X 9. History and Other Information
X --------------------------------
X
X Noah Morgan originally created LARN 12.0 and released the UNIX
X version to the USENET in 1986. Don Kneller ported the UNIX
X version to MSDOS (both IBM PCs and DEC Rainbows).
X
X Kevin Routley has been working on LARN enhancements on and off for
X the past two years. Version 12.1 had a limited distribution.
X Version 12.2 is the last version from Kevin that will maintain
X savefile compatibility with version 12.0 savefiles. Future
X versions (if any) will be released as Shareware.
X
X Other editions of Larn have been distributed by others, namely
X LARN13 and Ultra-Larn. For better or for worse, neither of these
X versions were as 'true' to the original concepts and feel of Larn
X 12.0.
X
X I hope you enjoy this version of LARN. Please send any questions,
X suggestions, requests, or comments regarding LARN and LARN V12.2
X in particular to:
X
X Kevin Routley
X 421 Midhurst Road
X Nashua, NH 03062
X
X July 1, 1990
END_OF_FILE
if test 18526 -ne `wc -c <'larn122.doc'`; then
echo shar: \"'larn122.doc'\" unpacked with wrong size!
fi
# end of 'larn122.doc'
fi
if test -f 'tgetstr.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'tgetstr.c'\"
else
echo shar: Extracting \"'tgetstr.c'\" \(6347 characters\)
sed "s/^X//" >'tgetstr.c' <<'END_OF_FILE'
X/************************************************************************
X * *
X * Copyright (c) 1982, Fred Fish *
X * All Rights Reserved *
X * *
X * This software and/or documentation is released for public *
X * distribution for personal, non-commercial use only. *
X * Limited rights to use, modify, and redistribute are hereby *
X * granted for non-commercial purposes, provided that all *
X * copyright notices remain intact and all changes are clearly *
X * documented. The author makes no warranty of any kind with *
X * respect to this product and explicitly disclaims any implied *
X * warranties of merchantability or fitness for any particular *
X * purpose. *
X * *
X ************************************************************************
X */
X
X
X/*
X * LIBRARY FUNCTION
X *
X * tgetstr extract string capability from termcap entry
X *
X * KEY WORDS
X *
X * termcap
X *
X * SYNOPSIS
X *
X * char *tgetstr(id,area)
X * char *id;
X * char **area;
X *
X * DESCRIPTION
X *
X * Gets the string capability for <id>, placing it in
X * the buffer at *area, and advancing *area to point
X * to next available storage.
X *
X * For example, if the following capabilities are
X * in the termcap file:
X *
X * ZZ=zzzz
X * YY=yyyyyy
X * WW=www
X *
X * then successive calls using YY, ZZ, and WW will
X * build the following buffer:
X *
X * yyyyyy0zzzz0www0
X *
X * The first call will return a pointer to yyyyyy, the
X * second will return a pointer to zzzz and the third
X * will return a pointer to www. Note that each
X * string is null terminated, as are all C strings.
X *
X * Characters preceded by the carot character (\136)
X * are mapped into the corresponding control character.
X * For example, the two character sequence ^A becomes
X * a single control-A (\001) character.
X *
X * The escape character is the normal C backslash and
X * the normal C escape sequences are recognized, along
X * with a special sequence for the ASCII escape character
X * (\033). The recognized sequences are:
X *
X * \E => '\033' (ASCII escape character)
X * \b => '\010' (ASCII backspace character)
X * \f => '\014' (ASCII form feed character)
X * \n => '\012' (ASCII newline/linefeed char)
X * \r => '\015' (ASCII carriage return char)
X * \t => '\011' (ASCII tab character)
X * \ddd => '\ddd' (arbitrary ASCII digit)
X * \x => 'x' (ordinary ASCII character)
X *
X */
X
X#include <stdio.h>
X#include <ctype.h>
X#ifdef VMS
X# define index strchr
X#endif VMS
X
X#ifdef ULTRIX
X# include <strings.h>
X
X#endif
X
Xextern char *_tcpbuf; /* Termcap entry buffer pointer */
X
X/*
X * PSEUDO CODE
X *
X * Begin tgetstr
X * Initialize pointer to the termcap entry buffer.
X * While there is a field to process
X * Skip over the field separator character.
X * If this is the entry we want then
X * If the entry is not a string then
X * Return NULL.
X * Else
X * Transfer string and rtn pointer.
X * End if
X * End if
X * End while
X * Return NULL
X * End tgetstr
X *
X */
X
Xchar *tgetstr(id,area)
Xchar *id;
Xchar **area;
X{
X char *bp;
X#ifdef MSDOS
X extern char *index();
X#endif
X char *decode();
X
X bp = _tcpbuf;
X while ((bp = (char *)index(bp,':')) != NULL) {
X bp++;
X if (*bp++ == id[0] && *bp != NULL && *bp++ == id[1]) {
X if (*bp != NULL && *bp++ != '=') {
X return(NULL);
X } else {
X return(decode(bp,area));
X }
X }
X }
X return(NULL);
X}
X
X/*
X * INTERNAL FUNCTION
X *
X * decode transfer string capability, decoding escapes
X *
X * SYNOPSIS
X *
X * static char *decode(bp,area)
X * char *bp;
X * char **area;
X *
X * DESCRIPTION
X *
X * Transfers the string capability, up to the next ':'
X * character, or null, to the buffer pointed to by
X * the pointer in *area. Note that the initial
X * value of *area and *area is updated to point
X * to the next available location after the null
X * terminating the transfered string.
X *
X * BUGS
X *
X * There is no overflow checking done on the destination
X * buffer, so it better be large enough to hold
X * all expected strings.
X *
X */
X
X/*
X * PSEUDO CODE
X *
X * Begin decode
X * Initialize the transfer pointer.
X * While there is an input character left to process
X * Switch on input character
X * Case ESCAPE:
X * Decode and xfer the escaped sequence.
X * Break
X * Case CONTROLIFY:
X * Controlify and xfer the next character.
X * Advance the buffer pointer.
X * Break
X * Default:
X * Xfer a normal character.
X * End switch
X * End while
X * Null terminate the output string.
X * Remember where the output string starts.
X * Update the output buffer pointer.
X * Return pointer to the output string.
X * End decode
X *
X */
X
Xstatic char *decode(bp,area)
Xchar *bp;
Xchar **area;
X{
X char *cp, *bgn;
X char *do_esc();
X
X cp = *area;
X while (*bp != NULL && *bp != ':') {
X switch(*bp) {
X case '\\':
X bp = do_esc(cp++,++bp);
X break;
X case '^':
X *cp++ = *++bp & 037;
X bp++;
X break;
X default:
X *cp++ = *bp++;
X break;
X }
X }
X *cp++ = (char) NULL;
X bgn = *area;
X *area = cp;
X return(bgn);
X}
X
X/*
X * INTERNAL FUNCTION
X *
X * do_esc process an escaped sequence
X *
X * SYNOPSIS
X *
X * char *do_esc(out,in);
X * char *out;
X * char *in;
X *
X * DESCRIPTION
X *
X * Processes an escape sequence pointed to by
X * in, transfering it to location pointed to
X * by out, and updating the pointer to in.
X *
X */
X
X/*
X * PSEUDO CODE
X *
X * Begin do_esc
X * If the first character is not a NULL then
X * If is a digit then
X * Set value to zero.
X * For up to 3 digits
X * Accumulate the sum.
X * End for
X * Transfer the sum.
X * Else if character is in remap list then
X * Transfer the remapped character.
X * Advance the input pointer once.
X * Else
X * Simply transfer the character.
X * End if
X * End if
X * Return updated input pointer.
X * End do_esc
X *
X */
X
Xstatic char *maplist = {
X "E\033b\bf\fn\nr\rt\t"
X};
X
Xchar *do_esc(out,in)
Xchar *out;
Xchar *in;
X{
X int count;
X char ch;
X char *cp;
X
X if (*in != NULL) {
X if (isdigit(*in)) {
X ch = 0;
X for (count = 0; count < 3 && isdigit(*in); in++) {
X ch <<= 3;
X ch |= (*in - '0');
X }
X *out++ = ch;
X } else if ((cp = (char *)index(maplist,*in)) != NULL) {
X *out++ = *++cp;
X in++;
X } else {
X *out++ = *in++;
X }
X }
X return(in);
X}
END_OF_FILE
if test 6347 -ne `wc -c <'tgetstr.c'`; then
echo shar: \"'tgetstr.c'\" unpacked with wrong size!
fi
# end of 'tgetstr.c'
fi
echo shar: End of archive 6 \(of 11\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 11 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0