Hack manual
- Hack
- manual
PC HACK version 3.6 for MSDOS(tm) computers
-------------------------------------------
by Don Kneller
2 Panoramic Way #204
Berkeley, CA 94704
Oct 22, 1986
Introduction
------------
HACK is a display oriented dungeons and dragons type game. It is
similar in style to ROGUE played on UNIX(tm) systems but HACK is much
richer in character. HACK has many more monsters and highly varied magic.
The motivation in HACK is to descend through the dungeon to find the Amulet
of Yendor, then return to the surface. As you travel you will meet various
creatures (most of them nasty), find objects (some having magical proper-
ties), and experience many hazards in the dungeon itself.
PC HACK is the MSDOS version of UNIX HACK which was originally written
by Jay Fenlason (Jay the Hacker), then heavily modified by people at the
Stichting Mathematisch Centrum in Amsterdam. This MSDOS version is called
PC HACK 3.6. When you are playing PC HACK, the `v' command will display
the version number.
For those who have played HACK on UNIX, this is a complete version
1.03 with a few enhancements:
1) You can specify the characters used to draw the dungeon instead of
the -|+#. See the GRAPHICS variable below.
2) If your computer is IBM BIOS compatible, the numeric keypad can be
used for moving as well as the usual "yuhjklbn" keys. See the
option "IBMBIOS".
3) New options available through the 'O' command.
"confirm" If you try to hit tame or peaceful monsters (like
your dog) PC HACK asks for confirmation.
"silent" You can turn off the bell for a quieter game.
"sortpack" Your pack can be sorted by object class (ie. all
weapons will be displayed together).
"packorder" The order to sort your pack in.
"pickup" You can change the option "pickup" so you look at
what is below you rather than pick it up. Handy for
scare monster scrolls and avoiding picking up dead
cockatrices. Also handy for browsing in shops.
"rawio" If you can use this option on your computer you will
get faster screen output and better input control.
======== WARNING ========
This option may hang your computer !! If this option
causes your computer to hang, do not use it! It is
known that DEC Rainbows will hang with this option.
==========================
"IBMBIOS" If your computer is IBM BIOS compatible, you can use
the numeric keypad for moving.
"DECRainbow" If your computer is a DEC Rainbow, you *must*
specify this option for character graphics to work!!
4) Floppy, HardDisk and RAMdisk support. *Complete* (I hope)
protection from disk full problems. Version 3.6 is much smarter
about handling disks than previous PC HACK versions -- if your
RAMdisk gets filled, the old levels get swapped out.
5) Configuration comes from a file instead of environment variables.
See HACK.CNF below.
6) PC HACK uses the ANSI.SYS driver, making it quite portable between
MSDOS machines.
7) Save files are portable between MSDOS machines.
8) A few monsters have been changed slightly to test new features. A
few commands have been added.
System requirements
-------------------
To play PC HACK you need the following:
1) MSDOS computer running MSDOS (or PCDOS) 2.0 or newer.
2) The ANSI.SYS driver must be installed. Your CONFIG.SYS file must
have a line like:
DEVICE = ANSI.SYS
3) 320K ram or more. Extra memory can be used as a RAMdisk.
4) 2 or more 360K floppies or a HardDisk.
Changes from *all* previous versions of PC HACK:
------------------------------------------------
1) All PC HACK 3.6 bones and save files are incompatible with versions
older than 3.2 (this includes 1.01E, 1.03G and 3.0). You should
remove your old files.
2) PC HACK uses time and date information in the game. You should set
the time and date when you boot up MSDOS.
Changes from PC HACK 3.4
------------------------
Rest_on_space was restored. A bug in the object descriptions was
fixed. A copy of COMMAND.COM must always be available where COMSPEC says
it is so PC HACK can copy bones files and do the shell escape. A bug in
restoring the hell hound from save games was fixed. TERMCAP is now used so
it is possible to set your own colors and other character attributes.
TERMCAP
-------
HACK now uses the UNIX "termcap" to select escape sequences to be sent
to the terminal driver (either ANSI.SYS or NANSI.SYS) to change video
modes. When HACK starts up, it checks in the environment for the variable
called "TERM". The DOS command:
set TERM=ibmpc-ega
will give the environment variable "TERM" the value "ibmpc-ega". By
default, HACK assumes the value of TERM is "ibmpc-mono".
Then HACK looks in the file called "TERMCAP" for a terminal definition
with the same name as the value of TERM. HACK first looks for TERMCAP in
the current directory, then in directory "\ETC" (the normal UNIX place),
then in directories along your PATH.
The TERMCAP file uses 2 letter codes to describe each escape sequence
and \E to mean ESC (the escape character is decimal 27). Each entry is
enclosed in colons. For example, to start underscore mode on a monochrome
display, we want to send the sequence "ESC[4m". This looks like
":us=\E4m:" as a termcap entry.
The following sequences are used by HACK and can be changed:
ti terminal initialization. You could have something like:
:ti=\E44;37m:
which would mean to select blue background and white foreground.
te terminal end. To reset your terminal to white on black:
:te=\E0m:
so stand out. Select red forground, keeping the blue background:
:so=\E31m:
This is used for displaying highlighted text.
se standout end. Back to white on blue:
:se=\E44;37m:
us,ue underscore start; underscore end. Used for highlighting the
titles in the inventory.
HACK also uses some sequences which you should not change: ho (home),
cl (clear screen), bs (backspace), co (# of columns), li (# of lines), ce
(clear to end of line), cm (cursor motion), xd (cursor down), nd (cursor
forward), up (cursor up), bc (cursor back).
If you want to make your own TERMCAP entry, copy the "ibmpc-mono"
entry, replace the name (eg use "ibmpc-color" or "ibmpc-ega" or whatever),
then replace the sequences with whatever you please. The possible escape
sequences are listed in Chapter 13 of the DOS 2.0 manual. The NANSI.DOC
file has a table of character attributes that you can use with NANSI.SYS.
They are the same as used by ANSI.SYS.
Remember to change the environment variable "TERM" to reflect which
TERMCAP entry you want! You should probably put a "set TERM=..." line in
your AUTOEXEC.BAT file. Also, make sure you put the TERMCAP file somewhere
on your PATH.
Commands new to PC HACK 3.4
---------------------------
^A `abort'. Certain commands like waiting, searching, opening a tin,
and digging can now be aborted. Eg. if you do `20.' then see a
monster appear in the doorway, you can use ^A (control-A) to stop
your waiting.
a `again'. Do the previous command again. The apply command has
been moved to `A' to accommodate `again'.
gG `g' takes the place of `f' which will be "fight until wounded".
Similarily, `G' takes the place of `F' which will be "fight to the
death". Neither of the `fight' commands have been installed yet.
Commands new to PC HACK 3.0
---------------------------
e 'eat' now lets you eat something you're standing on; you no longer
have to be able to pick something up before you can eat it.
I selective inventories. For example I= shows which rings you have
in your inventory.
: look at what you're standing on without picking it up.
# lets you enter an extended command. The only ones are "dip" and
"pray". Dip lets you put objects in potions.
@ Toggles the "pickup" option so you don't have to do "O pickup" and
"O !pickup".
! Starts up another COMMAND.COM if you have enough memory.
Configuration of PC HACK for your MSDOS computer
------------------------------------------------
The configuration of PC HACK is controlled by a configuration file
HACK.CNF. This configuration file should be in the directory you are
playing from, or somewhere on the PATH. When PC HACK starts up, it uses
the PATH to find HACK.CNF. You must also put the TERMCAP file on the PATH.
The HACK.CNF file contains variables for configuring PC HACK to your
system. The variables are:
HACKDIR
-------
HACKDIR is the directory name of the place where all support files go.
example: HACKDIR=c:\games\hack
The support files are:
HELP - A description of commands and options.
HH - An abridged version of the above.
DATA - Information about monsters and objects in the game.
RECORD - The score file (it may start out empty, but it must
exist). The top score for each name and class are saved,
but only the top 100 scores are kept.
RUMORS - Fortune cookie hints (some are true, some are not).
Put all these files in the directory HACKDIR. If HACKDIR is not set,
the support files are assumed to be in the current directory. If you don't
have enough disk space, the only file you're required to have is RECORD,
but try to have RUMORS and DATA on your disk also.
LEVELS
------
If the RAMDISK variable is not set, this is where the temporary dungeon
levels get made. Also, this is the directory where some temporary dungeon
levels get left as bones files (a description of previous games).
example: LEVELS=C:\games\hack
default: the HACKDIR directory
This path can be absolute or relative to the HACKDIR directory.
SAVE
----
The directory where any saved games will be kept.
example: SAVE=save;n
default: the HACKDIR directory
If your player name is JOE, and the SAVE variable is save, then your saved
game will be in HACKDIR\save\joe.sav. Normally, HACK will prompt you to
put in the SAVE disk if it can't find a save file when you first start the
game. Appending ";n" to the save path results in *no* prompt for diskette
insertion. This is useful if you have a HardDisk (eg SAVE=;n means save
the game in the HACKDIR directory and don't prompt).
After restoring your saved game, HACK will prompt you to put the GAME disk
in only if it can't find RECORD and COMSPEC.
RAMDISK
-------
The drive and directory where your RAMdisk is. This is where PC HACK
creates its temporary dungeon files.
example: RAMDISK=D:
default: none
When PC HACK runs out of storage on the RAMdisk it swaps the oldest files
out to your LEVELS directory. A RAMdisk is very effective in speeding up
the game, especially for floppy-only systems. To override the RAMDISK
variable, use the -R command line option (see below).
GRAPHICS
--------
Rather than use -, |, +, # for drawing the dungeon you can use any
characters from the character set. The GRAPHICS variable has 9 arguments
that describe the the rooms and corridors. The arguments are all integers
in the range from 0 to 255 and correspond to the ASCII values of the
characters you want to use. The order of the variables is:
vertical wall, horizontal wall, top left corner, top right corner,
bottom left corner, bottom right corner, door, floor, corridor.
The HACK.CNF file has examples of the use of this variable for both IBM
graphics characters and DEC Rainbow line-drawing characters.
example: GRAPHICS = 179 196 218 191 192 217 206 250 176
default: decimal equivalents of: | - - - - - + . #
If you have a DEC Rainbow, you can use any characters from the ASCII
character set and from the "line-drawing character set". To use the line-
drawing characters, take the decimal value of the character and add 128 to
it. This makes the value of the line-drawing characters lie between
decimal 128 and 255 and tells PC HACK you want a line-drawing character.
See HACK.CNF for a GRAPHICS variable suitable for DECs.
DEC Rainbow users must also have the DECRainbow option (see below) in the
OPTIONS line or the graphics characters will not be drawn correctly.
OPTIONS
-------
Determines many smaller aspects of the game. Options can be set before the
game in the HACK.CNF file and most can be modified during the game with the
'O' command. You can change several options at a time by separating the
options with commas. Generally, 4 characters are sufficient to identify
the option, so 'O sort' is the same as 'O sortpack'.
There are two kinds of options:
1) BOOLEAN, which can be either TRUE or FALSE.
For example, "sortpack". To turn it ON, do 'O sortpack' while
playing or have an "OPTIONS=sortpack" line in your HACK.CNF file.
To turn it OFF, do 'O !sortpack' or have "OPTIONS=!sortpack" in
your HACK.CNF file.
2) COMPOUND, which have one or more values.
For example, "packorder". To change the displayed ordering of the
pack you might have an "OPTIONS=pack:%)!?" line in your HACK.CNF
file. The compound option "name" can only be set in HACK.CNF.
Also, "name" should only be made up of characters A-Z, 0-9, and _
and "name" will be truncated to 10 characters in the RECORD file.
When playing, type 'O help' to get a little help on these options.
The HELP file has a short description of all options.
Options new to PC HACK 3.0
--------------------------
confirm
Whether you want confirmation before hitting tame monsters. This
can be very helpful if you have the problem that you hit your dog
and the shopkeepers by accident. If you are blind or confused,
though, you don't get this protection! By default, TRUE.
silent
If TRUE, the bell is silent on input errors. By default, FALSE.
sortpack
Whether your pack should be ordered by object class when listed in
an inventory. Otherwise your pack is listed alphabetically by
inventory letter. By default, TRUE.
packorder
The order to display your inventory in. By default, ")[%?/=!(*0
To change the order, use 'O pack:' where is
a set of characters representing the various object types. If you
don't give a character for each object type, the unspecified object
classes are put at the end of the .
pickup
If FALSE, you look at things you step on without picking them up.
You always pick up gold if it is the only thing there. Pickup is
toggled between TRUE and FALSE with the '@' key. By default, TRUE.
rawio
========== WARNING ==========
Some computers (notably DEC Rainbows) will hang if rawio is TRUE.
If this happens to your computer, remove the OPTIONS=rawio line in
the HACK.CNF file. This option can only be set in HACK.CNF.
==============================
If TRUE, the input and output of your computer will be switched to
"raw" mode. The advantage of this is faster output and better
handling of the special characters ^S and ^P.
If FALSE, PC HACK will *not* put your terminal into "raw" mode.
This causes a problem with the ^P command. When ^P is held until
it repeats, MSDOS may see a ^P in the input buffer and toggle
`output to printer'. However, if the printer is not ready, you'll
get a DOS error about your printer. If you get this error, type a
^PrtSc, then `I' (ignore) the error. You may have to repeat this
several times then use ^R to redraw the screen. The "solution" is
not to hold down the ^P key.
By default, FALSE.
IBMBIOS (only for very IBM compatible computers)
As HACK had its origins as a ROGUE-like game, the keys for movement
are the same (keys yuhjklbn). Some people may prefer to use the
arrow keys on the numeric keypad. Setting the IBMBIOS option TRUE
tells PC HACK it can use BIOS calls to access the numeric keypad.
With Numlock *ENABLED* the translation from numeric pad keys to
game commands is:
Numeric Pad Command
7 8 9 - u+l(y) up(k) u+r(u) move(m)
\ | / \ | /
4 -5- 6 + left(h) go(g) right(l) pay(p)
/ | \ / | \
1 2 3 d+l(b) down(j) d+r(n)
Ins Del inventory(i) wait(.)
The letter in () is the corresponding game command letter. 'u+l'
means up and left. The numeric pad '7' is translated to the game
command for moving one space up and left. From the keyboard, you
would enter the command ^H (control-H) to run left until you see
something interesting. From the keypad, doing `gh' (the keys 5
then 4) has the same effect. With Shift the commands become:
u+l(Y) up(K) u+r(U) previous message(^P)
\ | /
left(H) nothing right(L) put on a ring (P)
/ | \
d+l(B) down(J) d+r(N)
selective inventory(I) look(;)
Capital `H' means run left until you hit something.
With NumLock *DISABLED*, shifted '5' does the go(g) and unshifted
'5' does nothing. All other keys are translated the same.
By default, FALSE.
DECRainbow
This option must be set if your computer is a DEC Rainbow and you
want to use characters from the line-drawing character set to draw
the dungeon. By default, FALSE.
Sample configurations
---------------------
Hard disk system:
# Lines that start with `#' are comments.
# HACKDIR is where all the support files go.
HACKDIR=c:\games\hack
# The `;n' means to not prompt for insertion of the save diskette.
SAVE=;n
RAMDISK=d:
OPTIONS=name:Bert-C, silent
Notice that in this example, no LEVELS variable was set. PC HACK will then
default to the same directory as HACKDIR. Bert-C means your name is "Bert"
and you'll play as a cave-person.
Two floppy systems:
Make a bootable GAME disk (by using format /s) and set up your disks as:
GAME DISK: COMMAND.COM, ANSI.SYS, CONFIG.SYS, HACK.EXE, HACK.CNF,
RECORD, TERMCAP
(optionally) RUMORS, DATA, HELP, HH, AUTOEXEC.BAT
LEVELS DISK: empty (or with previous bones files)
And your variables as:
LEVELS=b:\
SAVE=b:\
RAMDISK=c: (optional)
OPTIONS=name:Gerty-T, silent, time
Boot from the GAME disk in drive A whenever you want to play PC HACK. The
LEVELS disk will be on drive B. If there is no save file you will be
prompted to put in the disk with the save file on it. This is necessary
because the save file may get too large to store on the LEVELS disk. When
this happens you can give an alternative file name for the save file. For
this example, you could answer "A:GERTY.SAV" at the prompt and PC HACK will
look for "A:GERTY.SAV" rather than "B:\GERTY.SAV".
*IMPORTANT NOTES* In order to save a game, PC HACK must have access to the
save file and all the level files at the same time. When restoring, only
after your save file has been properly restored will PC HACK remove it. PC
HACK will prevent you from saving the game if there is insufficient room.
If you want to keep saved games on different floppies (perhaps for several
players), one method is to make a bootable GAME disk (by using format /s)
for each person and set up your diskettes as:
GAME DISK(S): COMMAND.COM, ANSI.SYS, CONFIG.SYS, HACK.EXE, TERMCAP
HACK.CNF (personalized for each player),
(optionally) AUTOEXEC.BAT
LEVELS DISK: RECORD,
(optionally) RUMORS, DATA, HELP, HH
previous bones files
SAVE DISK(S): COMMAND.COM, save games
And your variables as:
HACKDIR=b:\
# LEVELS defaults to the same directory as HACKDIR
SAVE=a:\
RAMDISK=c: (optional)
OPTIONS=name:Gerty-T, silent, time
Boot from the GAME disk in drive A whenever you want to play PC HACK. The
LEVELS disk will stay in drive B. You will be prompted to put in the SAVE
disk (into drive A). The copy of COMMAND.COM on the SAVE disks satisfies
the COMSPEC requirement, since COMSPEC is still A:\COMMAND.COM.
Command line options
--------------------
-u name or -uname
Specifies the name to use other than the value of the OPTIONS name.
If you wish, you can append -C, -W, -S, -F, -K, or -T to the name
to select the type of character you want to be.
or: A> hack -u Terminator-T
This means you will play as a Tourist with the name Terminator.
-C, -W, -S, -F, -K, or -T
Select the character you will be playing as. Choices are:
Cave-person, Wizard, Spelunker, Fighter, Knight, or Tourist.
This option can be lower or upper case (except for -S). Thus:
A> hack -T
means get your name from the OPTIONS line in the HACK.CNF file, and
play as a tourist. If PC HACK can't get your name from the
HACK.CNF file, you will be asked "Who are you?".
-s [name]
List the scores of the person with this name. If the name is not
given, uses the value of the OPTIONS name. If the name is "all",
list all scores in the record file. You can erase the contents of
the record file if you wish, but it should exist.
-R
This tells PC HACK to ignore the RAMDISK variable in HACK.CNF.
This command is a hold-over from a previous version.
Once you have started PC HACK, type a '?' to get help on the available
commands. Long help will show you the HELP file, short help will show you
the HH file. You can also print the HELP file and keep it as a reference.
Other useful commands are `/' to describe things you see on the screen
(uses the DATA file), and `\' to list the objects thus far discovered.
If the dungeon collapses ....
-----------------------------
On rare occasions PC HACK gets an error and quits with a collapsing
dungeon. This may be due to a disk error or lack of enough memory (or,
perhaps a program bug). Even though there may be "level.*" files left
behind, the game cannot be recovered because the information that was in
RAM is lost. You can delete the old level.* files before playing a new
game, or PC HACK will do it for you next game. However, if you do leave
the level.* files behind, PC HACK will void the next game you play, then
remove the old files. You will then be able to play again.
If you can find a way to consistently repeat the error, please let me
know so I fix it.
Finally
-------
You are encouraged to copy this program and give it to your friends
and post it to BBS's. If you repost PC HACK, please use the archiving
program `ARC' to put all the PC HACK files in an archive called
PCHACK36.ARC. If you want to report a bug in PC HACK, or you just want to
drop me a line with a suggestion, please let me know at any of the
following locations. Make sure you mention which version you are playing!
UUCP: ...ucbvax!ucsfcgl!kneller
ARPANET: kneller@ucsfcgl.ARPA
BITNET: kneller@ucsfcgl.BITNET
US MAIL: D. G. Kneller
2 Panoramic Way #204
Berkeley, CA 94704
Good Luck and Happy Hacking !!