These files were graciously made available by Jon Lane, who did the original PC port of Rogue. The files were written for a very non-standard C compiler, and a number of them were written in assembler. Support is not currently available, nor is it expected to be in the near future. Questions about these sources should be addressed to or

Problems with the source pages

I have received several reports that some of the images listed here don't work.  Some were bad (now fixed, I think), some were not.  The reason seems to be that some browsers have trouble dealing with the images neatly.  If you can't get an image or if it's scrambled try this file list which should give you the file listing, which will let you download the images without viewing them first.

Getting the source in some other format

I have received numerous requests for the original source in ASCII. However, the program is not public domain.
If you want to port Rogue to some other platform, you will need to do lots more than just tweak the code!

The source image files

File Description
ARMOR.C Handles putting on and taking off armor
BEGIN.ASM Various environmental functions (?)
CHASE.C Code for one creature to chase another
COMMAND.C Handles reading & execution of user commands
CROOT.C Handles command-line parameter passing (?)
CSAV.ASM Unknown
CURSES.H Cursor motion header
CURSES.C More cursor motion stuff
DAEMON.C Contains functions for dealing with things that happen in the future
DAEMONS.C Contains daemon and fuse functions
DOS.ASM Header for C function calls
ENV.C Environment setup routines
EXTERN.C Initialisation of global variables
EXTERN.H Defines for things used in  MACH_DEP.C 
FAKEDOS.C Routines for fake DOS (Boss key)
FIGHT.C All routines for fighting
FIO.ASM DOS File I/O routines
INIT.C Initialisation of global variables (compare w/extern.c)
IO.C Various I/O functions
KEYPAD.H Define key assignments
LIST.C Functions for dealing with linked lists of goodies
LOAD.C Code for displaying the Rogue picture files
MACH_DEP.C Various installation-dependent routines
MAIN.C The main program
MAKEFILE The make file for building Rogue
MAZE.C Maze drawing routines
MISC.C All sorts of miscellaneous routines on all areas of gameplay
MONSTERS.C Various monster functions
MOVE.C Hero movement commands
NEW_LEVE.C New level creation routines & level change routines
OBJS List of objects used in the game
OPROTEC.ASM Copy protection check routine
PACK.C Routines for the pack (where you carry stuff)
PASSAGES.C Corridor drawing routines
POTIONS.C Functions for dealing with potions
PROTECT.C C copy protection functions
RINGS.C Routines for dealing with rings
RIP.C Everything having to do with death
ROGUE.OPT Rogue options
ROGUE.H Definitions and variable declarations
ROOMS.C Creating the layout of a new level
SAVE.C Game save & restore routines
SBRK.ASM Stack management functions
SCROLLS.C Functions for scrolls
SLIME.C Functions for slime (disabled in the release version?)
STICKS.C Functions for dealing with wands & staves
STRINGS.C Various character handling facilities
SWINT.H Unknown
TAGS Blank document
THINGS.C Various functions for dealing with things (physical items)
WEAPONS.C Functions for dealing with weapons
WIZARD.C Special Wizard commands (Wizard mode disabled in the release version)
ZOOM.ASM Fast screen I/O routines