Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site tesla.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!houxm!houxz!vax135!cornell!tesla!mac
From: mac@tesla.UUCP
Newsgroups: net.games.rogue
Subject: ROGUE SAVE BUG FIX (Second posting)
Message-ID: <381@tesla.UUCP>
Date: Sat, 9-Jun-84 10:35:11 EDT
Article-I.D.: tesla.381
Posted: Sat Jun  9 10:35:11 1984
Date-Received: Sun, 10-Jun-84 01:15:20 EDT
Sender: mac@tesla.UUCP
Organization: Cornell Electrical Eng.
Lines: 67

From: mac (Michael Mc Namara)
	Rogue 5.3 uses various control keys for "running" to various
directions.  These control characters are, as you know, ^H, ^Y, ^K, 
^U, ^L, ^N, ^J & ^B.  Now in 4.2 BSD, ^Y is dsusp, which is a delayed
{nice} suspend to the cshell. See stty for more on this.  So, if a ^Y
gets through the rogue program to the shell, it will begin suspending
the game.  To avoid this, I wrote a shell script, put it in /usr/local,
which does a `stty dsusp u` then calls /usr/games/rogue. After the
game it does a `stty dsusp ^Y`.  The shell script I wrote also keeps
track of who plays rogue, how often etc :-)
        We also have a number of Data General terminals, which use
^M in their hardware cursor movements.  Therefore, if your stty standard
is stty -nl, curses will not work for these terminals.  This affects all
curses based games.  `stty nl` before the game *fixes* this.
        I include a brief shell script to perform these fixes:

################################################################
# Allows rogue to work on DG terminals Plus other enhancements # 
################################################################
 onintr QUIT
# fix for rogue bug: ^Y is up left, and also dsusp; so unset dsusp & susp 
 stty dsusp u susp u
# set up for dg450 & dg200 
  if ($term == "dg450") then
    stty nl
    endif
  else if ($term == "dg200") then
    stty nl
    endif
 endif
set in = ""
while ( $in == "" )
# run rogue
PLAY:
 /usr/games/rogue $*
 switch ($1)
  case "-r":
     set argv[1] = ""
    breaksw
  case "":     
    breaksw
  case "-d":
    breaksw
  case "-s":
    goto QUIT
    breaksw
  default  :
    set argv[1] = ""
    breaksw
 endsw
 echo -n "Again? [y]"
 set in = ( $< )
 if ( $in == "y") set in = ""
end  
QUIT:
 stty dsusp `^Y` susp `^Z`   /* actually type control Y and control Z */
 stty -nl


######################################      -----
                    #                #      |..,|
                    #                ######@+MAC|
           #########%                       |...|
                                            -----


Level: 26  Gold: 7578          Hp: 76(80)  Str: 20(20)  Arm: 10  Exp:12/15640