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 !!
Back to the game