DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T l

⟦0e8d25d2c⟧ TextFile

    Length: 27051 (0x69ab)
    Types: TextFile
    Names: »labels.d«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Adventure/adv_db/labels.d« 

TextFile

LABEL	GETSCORE
	IFEQ  QUITTING,0
	   OR
	IFGT  CLOSURE,2
	   SET   SCOREX,9
	ELSE
	   SET   SCOREX,0
	FIN
	SET   MAXSCORE,9
	ITOBJ I
	   BIT   I,VALUED
	      IFLOC I,BUILDING
		 OR
	      IFGT  CLOSURE,2
		 ADD   SCOREX,15
	      ELSE
		 BIT   I,SEEN
		    ADD   SCOREX,2
		 FIN
	      FIN
	      ADD   MAXSCORE,15
	   FIN
	EOI
*
	IFLOC MAGAZINES,WITTSEND
	   ADD   SCOREX,1
	FIN
	ADD   MAXSCORE,1
*
	BIT   DEBRIS,BEENHERE
	   OR
	BIT   Y2,BEENHERE
	   ADD   SCOREX,20
	   BIT   LAIR,SEEN
	      ADD   SCOREX,10
	   FIN
	   BIT   BEACH,SEEN
	      ADD   SCOREX,10
	   FIN
	   BIT   FACES,SEEN
	      ADD   SCOREX,10
	   FIN
	FIN
	ADD   MAXSCORE,50
*
	SET   I,CLOSURE
	MULT  I,20
	ADD   SCOREX,I
	ADD   MAXSCORE,100
*
	SET   L,DEATHS
	MULT  L,10
	SUB   SCOREX,L
*
	SUB   SCOREX,PENALTIES
*
	IFLT  SCOREX,0
	   SET   SCOREX,0
	FIN
*
LABEL	FINIS
	CALL  GETSCORE
	VALUE YOUSCORED,SCOREX
	VALUE TOPSCORE,MAXSCORE
	VALUE NMOVES,MOVES
	IFLT  SCOREX,20
	   LDA   I,FISH
	   SUB   SCOREX,20
	ELSE
	   IFLT  SCOREX,130
	      LDA   I,NOVICE
	      SUB   SCOREX,130
	   ELSE
	      IFLT  SCOREX,240
		 LDA   I,EXPERIENCED
		 SUB   SCOREX,240
	      ELSE
		 IFLT  SCOREX,350
		    LDA   I,SEASONED
		    SUB   SCOREX,350
		 ELSE
		    IFLT  SCOREX,470
			LDA   I,JUNIORMASTER
			SUB   SCOREX,470
		    ELSE
			IFLT  SCOREX,510
			  LDA   I,MASTER.C
			  SUB   SCOREX,510
			ELSE
			  IFLT  SCOREX,530
			     LDA   I,MASTER.B
			     SUB   SCOREX,530
			  ELSE
			     IFLT  SCOREX,550
				LDA   I,MASTER.A
				SUB   SCOREX,550
			     ELSE
				LDA   I,GRAND
				LDA   SCOREX,0
			     FIN
			  FIN
			FIN
		    FIN
		 FIN
	      FIN
	   FIN
	FIN
	SAY   I
	SAY   BLANK
	MULT  SCOREX,-1
	IFGT  SCOREX,0
	   IFEQ  SCOREX,1
	      SAY   NEED1
	   ELSE
	      VALUE NEED,SCOREX
	   FIN
	FIN
	SAY   BLANK
	STOP
LABEL	PHOG     {control fog and glow in fog}
	IFLT  FOG,8    {state 8 = invisible fog}
	   RANDOM   FOG,8    {change color of fog}
	FIN
	RANDOM   GLOW,8   {move the glow around}
	IFNEAR   LAMP
	   AND
	IFEQ  LAMP,1      {lamp here and glowing?}
	   APPORT   GLOW,LIMBO  {if so, masks out faint glow}
	ELSE
	   APPORT   GLOW,PLAIN.2   {if not, move glow into place}
	   IFAT  PLAIN.2        {is that where we are?}
	      AND
	      NOT
	   BIT   STATUS,MOVED
	      SAY   GLOW        {announce faint glimmer of light}
	   FIN
	FIN
LABEL	CORONER
	SET   QUITTING,0
	SAY   BLANK
	BIC   ADMIN,NOMAGIC     {reset magic-inhibit mode}
	BIC   ADMIN,TICKER      {clear once-per-move}
	SET   BLOB,0            {reset blob}
	APPORT   BLOB,LIMBO     {and get rid of him}
	APPORT   GOBLINS,LIMBO  {get rid of goblins, if around}
	IFEQ  BASILISK,1        {adjust the basilisk so that}
	   SET   BASILISK,0     {he gets viewed from the south}
	ELSE                    {as he should - whether he's}
	   IFEQ  BASILISK,3     {petrified or not...}
	      SET   BASILISK,2
	   FIN
	FIN
	APPORT   FOG,PLAIN.1    {move the fog back to its initial}
	SET   FOG,8             {position, and make it semi-visible}
	ADD   DEATHS,1
	IFGT  CLOSURE,1
	   IFEQ  CLOSURE,2
	      SAY   DEAD&CLOSED
	   ELSE
	      SUB   DEATHS,1 {don't charge for dying in repository}
	   FIN
	   CALL  FINIS
	FIN
	LDA   I,YOUAREDEAD-2
	ADD   I,DEATHS
	ADD   I,DEATHS
	SAY   I
	QUERY  SOK!
	   ADD   I,1
	   SAY   I
	   SAY   BLANK
	   LDA   J,SNIDELEY-1
	   IFLT  I,J
	      IFHAVE   VASE
		 APPORT   VASE,LIMBO
		 GET   POTTERY
	      FIN
	      ITOBJ I
		 IFHAVE I
		    DROP  I
		 FIN
	      EOI
	      APPORT   WATER,LIMBO
	      APPORT   OIL,LIMBO
	      SET   INVCT,0
	      SET   LAMP,0
	      APPORT   FOG,PLAIN.1
	      SET   FOG,8
	      CALL  PHOG     {chase glow into place}
	      GOTO  BUILDING
	      SET   THERE,0
	      APPORT   LAMP,ROAD
	      IFEQ  LAMPLIFE,0
		 BIT   LAMP,SPECIAL1
		    OR
		    NOT
		 BIT   LAIR,BEENHERE
		    LOCATE   I,BATTERIES
		    IFEQ  BATTERIES,1
			OR
			NOT
		    BIT   I,NOTINCAVE
			APPORT   LAMP,YLEM
		    FIN
		 FIN
	      FIN
	      APPORT   DWARF,LIMBO
	      SET   DWARROWS,0
	      BIC   PIRATE,SPECIAL1   {clear chasing mode}
	      QUIT
	   ELSE
	      CALL  FINIS
	   FIN
	ELSE
	   CALL  FINIS
	FIN
	STOP
LABEL	GETBIRD
	NEAR  BIRD
	IFHAVE   BIRD
	   SAY   YOUHAVEIT
	   QUIT
	FIN
	IFEQ  BIRD,1
	   GET   CAGE
	   GET   BIRD
	   SAY   OK
	ELSE
	   IFHAVE   CAGE
	      IFHAVE   ROD
		 SAY   BIRDISSCARED
	      ELSE
		 BIC   BIRDCHAMBER,HINTABLE
		 GET   BIRD
		 SET   BIRD,1
		 SAY   OK
	      FIN
	   ELSE
	      SAY   NEEDCAGE
	   FIN
	FIN
	QUIT
LABEL	GETCAGE
	NEAR  CAGE
	IFHAVE   CAGE
	   SAY   YOUHAVEIT
	   QUIT
	FIN
	GET   CAGE
	IFNEAR   BIRD
	   IFEQ  BIRD,1
	      GET   BIRD
	   FIN
	FIN
	SAY   OK
	QUIT
LABEL	GETKNIFE
	BIT   AXE,SEEN
	   SAY   NO..KNIVES
	   QUIT
	FIN
LABEL	DROPBIRD
	HAVE  BIRD
	DROP  BIRD
	SET   BIRD,0
	IFNEAR   SNAKE
	   SAY   BIRD..SNAKE
	   APPORT   SNAKE,LIMBO
	   BIC   MTKING,HINTABLE
	   QUIT
	ELSE
	   IFNEAR   DRAGON
	      IFEQ  DRAGON,0
		 APPORT   BIRD,LIMBO  {incinerate bird}
		 SAY   BIRD..DRAGON
		 QUIT
	      FIN
	   FIN
	FIN
	SAY   OK
	QUIT
LABEL	DROPCAGE
	HAVE  CAGE
	DROP  CAGE
	IFHAVE   BIRD
	   DROP  BIRD
	FIN
	SAY   OK
	QUIT
LABEL	DROPVASE
	HAVE  VASE
	DROP  VASE
	IFAT  SOFT
	   SAY   OK
	ELSE
	   IFHAVE   PILLOW
	      OR
	      NOT
	   IFNEAR   PILLOW
	      SET   VASE,2
	      SAY   VASE
	      APPORT   VASE,LIMBO
	      APPORT   POTTERY,HERE
	   ELSE
	      SET   VASE,1
	      SAY   VASE
	      SET   VASE,0
	   FIN
	FIN
	QUIT
LABEL	DROPLIQUID
	HAVE  ARG2
	APPORT   ARG2,LIMBO
	SET   BOTTLE,1
	IFNEAR   DWARF
	   AND
	IFKEY THROW    {throwing oil or water at dwarf - dangerous!}
	   IFEQ  DWARROWS,1
	      NAME  DOUSED.DWARF,ARG2
	   ELSE
	      NAME  DOUSED.DWARVES,ARG2
	   FIN
	   BIS   DWARF,SPECIAL2    {dwarf gets angry}
	ELSE
	   SAY   POURWATER
	FIN
	QUIT
LABEL	DROPBOTTLE
	HAVE  BOTTLE
	DROP  BOTTLE
	APPORT   OIL,LIMBO
	APPORT   WATER,LIMBO
	SAY   OK
	QUIT
LABEL	GETBOTTLE
	NEAR  BOTTLE
	IFHAVE   BOTTLE
	   SAY   YOUHAVEIT
	   QUIT
	FIN
	IFLT  INVCT,STRENGTH
	   GET   BOTTLE
	   IFEQ  BOTTLE,0
	      GET   WATER
	   ELSE
	      IFEQ  BOTTLE,2
		 GET OIL
	      FIN
	   FIN
	   SAY   OK
	ELSE
	   SAY   ARMSAREFULL
	FIN
	QUIT
LABEL	GETOIL
	AT    EASTPIT
	IFHAVE   BOTTLE
	   IFEQ  BOTTLE,1
	      SET   BOTTLE,2
	      GET   OIL
	      SAY   BOTTLE..OIL
	   ELSE
	      SAY   BOTTLEWASFULL
	   FIN
	ELSE
	   SAY   NOWAYTOCARRY
	FIN
	QUIT
LABEL	GETWATER
	BIT   HERE,H20HERE
	ELSE
	   PROCEED
	FIN
	IFHAVE   BOTTLE
	   IFEQ  BOTTLE,1
	      SET   BOTTLE,0
	      GET   WATER
	      SAY   BOTTLE..H20
	   ELSE
	      SAY   BOTTLEWASFULL
	   FIN
	ELSE
	   SAY   NOWAYTOCARRY
	FIN
	QUIT
LABEL	KILLTROLL
	SAY   TROLL.DATA
	QUIT
LABEL	KILLBEAR
	IFEQ  BEAR,0
	   SAY   KILL..BEAR
	ELSE
	   SAY   BEAR.PUZZLED
	FIN
	QUIT
LABEL	KILLSNAKE
	SAY   CANTKILLSNAKE
	QUIT
LABEL	KILLDRAGON
	IFGT  DRAGON,0
	   SAY   IT.IS.DEAD
	   QUIT
	FIN
	QUERY WITHWHAT?
	   SET   DRAGON,1
	   SAY   DRAGON
	   SET   DRAGON,2
	   APPORT   RUG,SECRETCYNNE1
	   APPORT   TEETH,SECRETCYNNE1
	   BIC   DRAGON,SCHIZOID
	   ITOBJ I
	      IFNEAR   I
		 IFHAVE   I
		 ELSE
		    APPORT   I,SECRETCYNNE1
		 FIN
	      FIN
	   EOI
	   GOTO  SECRETCYNNE1
	ELSE
	   SAY   OK
	FIN
	QUIT
LABEL	KILLBIRD
	IFLT  CLOSURE,3
	   APPORT   BIRD,LIMBO
	   SAY   BIRDISDEAD
	ELSE
	   SAY   LEAVE.BIRD
	FIN
	QUIT
LABEL	KILLBIVALVE
	SAY   KILL.OYSTER
	QUIT
LABEL	KILLDWARF
	QUERY WITHWHAT?
	   SET   I,STRENGTH
	   SUB   I,INVCT
	   ADD   I,2
	   MULT  I,10
	   CHANCE   I
	      SAY   KILLEDDWARF
	      SUB   DWARROWS,1
	      IFEQ  DWARROWS,0
		 APPORT   DWARF,LIMBO
	      FIN
	      SUB   DWARFCOUNT,1
	   ELSE
	      CHANCE   I
		 SAY   DWARFDODGES
	      ELSE
		 SAY   DWARFSTABS
		 CALL CORONER
	      FIN
	   FIN
	ELSE
	   SAY   OK
	FIN
	QUIT
LABEL	KILLOGRE
	QUERY WITHWHAT?
	   CHANCE   50
	      SAY   OGRE.TOO.TOUGH
	   ELSE
	      SAY   OGRE.RIPS.HEAD.OFF
	      CALL  CORONER
	   FIN
	ELSE
	   SAY   OK
	FIN
	QUIT
LABEL	KILLBLOB
	SAY   BOUNCE.BLOB
	QUIT
LABEL	KILLDJINN
	SAY   TOUGH.DJINN
	QUIT
LABEL	KILLGOBLINS
	SAY   KILL.GOBLINS
	CALL  CORONER
LABEL	KILLBASILISK
	IFLT  BASILISK,2
	   SAY   HIT.BASILISK
	   CALL  CORONER
	ELSE
	   SAY   IT.IS.DEAD
	   QUIT
	FIN
LABEL	HITGONG
	IFNEAR   TURTLE
	   SAY   GONG.RINGS
	ELSE
	   SAY   GONG.FETCH
	   APPORT   TURTLE,HERE
	FIN
	QUIT
LABEL	GETBEAR
	NEAR  BEAR
	IFHAVE   BEAR
	   SAY   I.C.A.BEAR
	ELSE
	   IFAT  BEARHERE
	      IFEQ  BEAR,2
		 SAY   OK
		 GET BEAR
	      ELSE
		 SAY   BEAR.IS.CHAINED
	      FIN
	   ELSE
	      SAY   OK
	      GET   BEAR
	   FIN
	FIN
	QUIT
LABEL	DROPBEAR
	HAVE  BEAR
	DROP  BEAR
	SAY   OK
	QUIT
LABEL	FREEDJINN
	NEAR  DJINN
	SAY   DJINN.ADVICE
	APPORT   DJINN,LIMBO
	BIS   DJINN,SPECIAL1
	QUIT
LABEL	GETCHAIN
	AT BEARHERE
	NEAR  CHAIN
	IFEQ  CHAIN,0
	   PROCEED
	ELSE
	   SAY   CHAIN.LOCKED
	FIN
	QUIT
LABEL	GETSWORD
	NEAR  SWORD
	IFEQ  SWORD,0
	   AND
	IFLT  INVCT,STRENGTH
	   AND
	   NOT
	IFHAVE   SWORD
	   IFEQ  MUSHROOM,2
	      SAY   GOT.THE.SWORD
	      SET   SWORD,1
	      GET   SWORD
	   ELSE
	      SAY   SWORD.IS.STUCK
	   FIN
	   QUIT
	FIN
LABEL	GETSCEPTRE
	NEAR  SCEPTRE
	IFEQ  SCEPTRE,0
	   AND
	IFLT  INVCT,STRENGTH
	   GET   SCEPTRE
	   SET   SCEPTRE,1
	   RANDOM   PASSWORD,5
	   IFEQ  PASSWORD,0
	      LDA   PASSWORD,BLERBI
	   ELSE
	      IFEQ  PASSWORD,1
		 LDA   PASSWORD,KLAETU
	      ELSE
		 IFEQ  PASSWORD,2
		    LDA   PASSWORD,KNERL
		 ELSE
		    IFEQ  PASSWORD,3
			LDA   PASSWORD,SNOEZE
		    ELSE
			LDA   PASSWORD,ZORTON
		    FIN
		 FIN
	      FIN
	   FIN
	   IFEQ  SAFE,0
	      NAME  WHISPER,PASSWORD
	   ELSE
	      SAY   BLEW.SAFE
	   FIN
	   APPORT   SKELETON,LIMBO
	   QUIT
	FIN
LABEL	SPLATTER
*
*        Label SPLATTER should be called any time it is desirable to have
*        the adventurer fall to a painful death.  One of a series of
*        text messages will be output, depending on how many times he
*        has been killed so far during this game.  Before calling SPLATTER,
*        the calling routine should GOTO the place that is at the bottom of
*        whatever the adventurer has jumped into - if that place isn't
*        well-defined (bottom of the chasm, volcanic gorge, etc.), then
*        go to Ylem.
*
	LDA   I,PLUMMET
	ADD   I,DEATHS
	SAY   I
	CALL  CORONER
LABEL	DO.CAMEO          {generate strange cameo appearances if possible}
	BIT   HERE,NOTINCAVE {cameos work only in the cave}
	   OR
	BIT   HERE,NODWARF   {and only in dwarf-accessable areas}
	   OR
	BIT   HERE,LIT       {and only in un-lit rooms}
	   OR
	BIT   HERE,ONE.EXIT  {and only where there are several exits}
	   OR
	   NOT
	IFHAVE   LAMP        {and only if you have your lamp}
	   OR
	IFEQ  LAMP,0         { (which must be turned on) }
	   OR
	BIT   PIRATE,SPECIAL1 {and not if the pirate is chasing you}
	   OR
	IFNEAR   DWARF       {and not if you're being plagued by dwarves}
	   OR
	IFNEAR   DRAGON      {or near the dragon (living or dead) }
	   OR
	IFNEAR   TROLL       {or argueing with the troll}
	   OR
	IFNEAR   SNAKE       {or trying to get past the snake}
	   OR
	IFNEAR   QUICKSAND   {or trying to cross the quicksand}
	   PROCEED
	FIN
	SET   CAMEO.TIME,0   {only one cameo per game, max}
	LDA   I,CAMEO
	RANDOM   J,LAST.CAMEO-CAMEO+1
	ADD   I,J
	SAY   BLANK
	SAY   I
	SAY   BLANK
LABEL	CLOSE.THE.CAVE
	SAY   GO.REPOSIT
	BIC   STATUS,FASTMODE
	BIC   STATUS,QUICKIE
	ITOBJ I
	   LOCATE   J,I
	   BIT   J,NOTINCAVE
	      OR
	   IFHAVE   I
	      AND
	   BIT   I,PORTABLE
	      APPORT   I,YLEM
	   FIN
	EOI
	ITPLACE  I
	   BIT   I,NOTINCAVE
	      BIC   I,BEENHERE
	   FIN
	EOI
	SET   CLOSURE,3   {in cylindrical chamber}
	SET   CLOCK,999
	GOTO  CYLINDRICAL
	SET   ESCAPE,0
	QUIT
LABEL	CLOCK4           { (Administrative clock has ticked) }
	IFEQ  CLOSURE,0
	   SET   CLOSURE,1
	   ITOBJ I
	      BIT   I,VALUED
		 AND
		 NOT
	      IFLOC I,BUILDING
		 SET   CLOSURE,0
	      FIN
	   EOI
	   IFEQ  CLOSURE,1
	      SET   CLOCK,35
	   ELSE
	      RANDOM   CLOCK,10
	      ADD   CLOCK,30
	   FIN
	   IFGT  SCULPTURE,0
	      RANDOM   SCULPTURE,@SCULPTURE-1    {skip the "on shelf" state}
	      ADD   SCULPTURE,1
	   FIN
	   IFGT  SWORD,0
	      RANDOM   SWORD,@SWORD-1      {skip the "in stone" state}
	      ADD   SWORD,1
	   FIN
	   IFEQ  DRAGON,2
	      SUB   DRAGTIME,LASTCLOCK
	      IFLT  DRAGTIME,0
		 SET   DRAGON,3
	      FIN
	   FIN
	   BIT   DJINN,SPECIAL1
	      AND
	      NOT
	   BIT   DJINN,SPECIAL2
	      AND
	      NOT
	   IFNEAR   DWARF
	      BIS   DJINN,SPECIAL2
	      SAY   PHUGGG.DATA
	      SET   CLOCK,5
	      PROCEED
	   FIN
	   IFGT  MUSHROOM,1
	      SUB   MUSHTIME,LASTCLOCK
	      IFLT  MUSHTIME,0
		 IFEQ  MUSHROOM,2
		    SET   MUSHROOM,3
		    SET   MUSHTIME,40
		    SAY   MUSHROOM
		    SET   STRENGTH,7
		    SET   CLOCK,8
		    PROCEED
		 ELSE
		    SET   MUSHROOM,0
		    APPORT   MUSHROOM,CUBICLE
		 FIN
	      FIN
	   FIN
	   IFGT  CAMEO.TIME,0
	      AND
	   IFLT  CAMEO.TIME,MOVES
	      RANDOM   CLOCK,10
	      ADD   CLOCK,10
	      CALL  DO.CAMEO
	      PROCEED
	   FIN
	   BIT   MISTS,BEENHERE
	      OR
	   BIT   Y2,BEENHERE
	      IFGT  MOVES,150
		 AND
		 NOT
	      BIT   CHEST,SEEN
		 BIS   PIRATE,SPECIAL1
	      FIN
	      BIT   HERE,NODWARF
		 OR
	      BIT   HERE,NOTINCAVE
		 BIC   PIRATE,SPECIAL1   {clear "chasing"}
		 RANDOM   CLOCK,10    {set short clock interval}
		 ADD   CLOCK,8
	      ELSE
		 SET   I,DWARFCOUNT
		 ADD   I,4
		 MULT  I,10
		 CHANCE   I
		    OR
		 BIT   PIRATE,SPECIAL1
		    RANDOM   I,10
		    ADD   I,DWARROWS
		    IFEQ  I,0
			OR
		    BIT   PIRATE,SPECIAL1
			BIT   CHEST,SEEN  {found treasure chest yet?}
			  OR
			BIT   HERE,LIT {don't pounce in lit rooms}
			  OR
			  NOT
			IFHAVE   LAMP  {don't pounce if lamp elsewhere}
			  OR
			IFEQ  LAMP,0   {or if it's dead}
*                             {do nothing in this case}
			ELSE
			  BIC   PIRATE,SPECIAL1      {clear "chasing"}
			  SET   J,0
			  BIC   RING,VALUED {so it doesn't get stolen}
			  ITOBJ I
			     BIT   I,VALUED
				AND
			     IFNEAR   I
				APPORT   I,MAZEA.114
				SET   J,1
			     FIN
			  EOI
			  BIS   RING,VALUED
			  IFEQ  J,0
			     IFLOC CHEST,LIMBO {first time thru?}
				SAY   PIRATE.RUNS
			     ELSE
				SAY   RUSTLING
				BIS   PIRATE,SPECIAL1    {set "following"}
				RANDOM   CLOCK,10
				ADD      CLOCK,4
			     FIN
			  ELSE
			     SAY   PIRATE..ZOTZ
			  FIN
			  IFLOC CHEST,LIMBO    {first time through?}
			     APPORT   CHEST,MAZEA.114
			     APPORT   MESSAGE,MAZED.140
			  FIN
			FIN
		    ELSE
			IFGT  DWARFCOUNT,0
			  BIT   AXE,SEEN {have we seen a dwarf yet?}
			     APPORT   DWARF,HERE
			     ADD   DWARROWS,1
			     IFEQ  DWARROWS,1
				BIS   DWARF,SPECIAL1 {knife not thrown yet}
				BIC   DWARF,SPECIAL2 {not angry}
			     FIN
			  ELSE  {nope - fetch axe, invoke scared dwarf}
			     APPORT   AXE,HERE
			     BIS   AXE,SEEN {special case}
			     SAY   FIRSTDWARF
			  FIN
			FIN
		    FIN
		 FIN
	      FIN
	   FIN
	ELSE
	   IFEQ  CLOSURE,1   {is it near closing time?}
	      SET   CLOSURE,2   {set "Closing soon"}
	      SET   GRATE,0     {lock the grate}
	      SAY   CLOSING.NOW {Sepulchral voice}
	      IFNEAR   DWARF
		 SAY   DWARF.QUITS {fades into the gloom}
	      FIN
	      APPORT   DWARF,LIMBO {get rid of him/them}
	      SET   DWARROWS,0  {zilch all present dwarves}
	      SET   DWARFCOUNT,0   {don't let him reappear}
	      SET   FISSURE,0      {destroy bridge}
	      SET   GORGE,0        {destroy wheatstone bridge}
	      APPORT   TROLL,LIMBO {remove troll}
	      APPORT   DRAGON,LIMBO {remove dragon}
	      SET   TROLL,5        {scared - inhibit return}
	      APPORT   TROLL2,SWOFCHASM {fetch fake troll}
	      BIS   FISSURE,INVISIBLE
	      BIS   GORGE,INVISIBLE
	      SET   CLOCK,25       {time to try to leave}
	   ELSE        {must be closing time!}
	      BIT   ADMIN,PANICED  {did he try to get out?}
		 BIC   ADMIN,PANICED {reset panic flag}
		 SET   CLOCK,15    {let him get frantic}
	      ELSE                 {if he was calm,}
		 CALL  CLOSE.THE.CAVE
	      FIN
	   FIN
	FIN
	SET   LASTCLOCK,CLOCK
LABEL	BAILOUT
	IFEQ  STATUS,1
	   NAME  CLARIFY,ARG1
	ELSE
	   IFEQ  STATUS,2
	      AND
	   BIT   ARG2,OBJECT
	      IFNEAR   ARG2
		 NAME  DUNNO.HAO,ARG1
	      ELSE
		 NAME  IDONTSEE,ARG2
	      FIN
	   ELSE
	      NAME  DUNNO.HAO,ARG1
	   FIN
	FIN
	QUIT
LABEL	LAMPREY           * Lamp getting dim or has gone out
	IFGT  LAMPLIFE,0
	   IFEQ  BATTERIES,1
	      SAY   LAMP.NOFUEL
	   ELSE
	      IFNEAR   BATTERIES
		 SAY   LAMP.REFUEL
		 SET   BATTERIES,1
		 ADD   LAMPLIFE,300
		 BIC   LAMP,SPECIAL1     {clear "recharged" flag}
	      ELSE
		 BIT   BATTERIES,SEEN
		    SAY   LAMP.BATTERIES
		 ELSE
		    SAY   LAMP.IS.DIM
		 FIN
	      FIN
	   FIN
	ELSE
	   IFEQ  CLOSURE,2
	      CALL  CLOSE.THE.CAVE
	   ELSE
	      IFNEAR   BATTERIES
		 AND
	      IFEQ  BATTERIES,0
		 SAY   LAMP.REFUEL
		 SET   BATTERIES,1
		 ADD   LAMPLIFE,300
	      ELSE
		 SAY   LAMP.IS.DEAD
		 SET   LAMP,0
		 BIS   ADMIN,RANOUT      {don't fall in a pit this move}
		 CALL  PHOG     {chase glow into place}
	      FIN
	   FIN
	FIN
LABEL	READ.MAGAZINES
	SAY   MAG.DWARVISH
	QUIT
LABEL	READ.TABLET
	SAY   DARK.ROOM
	QUIT
LABEL	READ.MESSAGE
	SAY   CHEST.ELSEWHERE
LABEL	READ.MACHINE
	SAY   MACHINE.SIGN
	QUIT
LABEL	HINT.LOGIC
	SET   HINT.TIME,0
	SET   I,0
	IFAT  DEPRESSION
	   IFEQ  GRATE,0
	      NOT
	      IFHAVE   KEYS
		 LDA   I,LOOKINGCAVE
	      FIN
	   FIN
	FIN
	IFAT  BIRDCHAMBER
	   IFNEAR   BIRD
	      IFEQ  BIRD,0
		 IFHAVE   ROD
		    LDA   I,BIRDHINT?
		 FIN
	      FIN
	   FIN
	FIN
	IFAT  MTKING
	   IFNEAR   SNAKE
	      NOT
	      IFNEAR   BIRD
		 LDA   I,GETPASTSNAKE
	      FIN
	   FIN
	FIN
	IFAT  WITTSEND
	   LDA   I,HINT.WITTS?
	FIN
	IFAT  PLOVER
	   OR
	IFAT  ALCOVE
	   OR
	IFAT  DARK
	   NOT
	   BIT   DARK,BEENHERE
	      LDA   I,HINT.PLOVER?
	   FIN
	FIN
	IFAT  PLAIN.2
	   LDA   I,PLAIN.HINT
	FIN
	BIT   HERE,INMAZE
	   LDA   I,HINT.MAZE?
	FIN
	LDA   J,SLIDE-1
	LDA   K,ICECAVE.30+1
	IFGT  HERE,J
	   AND
	IFLT  HERE,K
	   LDA   I,ICE.HINT?
	FIN
	IFGT  I,0
	   QUERY I
	      VALUE ILL.GIVE.HINT,HINT.COST
	      QUERY WANT.HINT?
		 ADD   I,1
		 SAY   I
		 ADD   PENALTIES,HINT.COST
		 BIC   HERE,HINTABLE
		 IFAT  PLOVER
		    OR
		 IFAT  ALCOVE
		    OR
		 IFAT  DARK
		    BIC   PLOVER,HINTABLE
		    BIC   DARK,HINTABLE
		    BIC   ALCOVE,HINTABLE
		 ELSE
		    BIT   HERE,INMAZE
			ITPLACE  I
			  BIT   I,INMAZE
			     BIC   I,HINTABLE
			  FIN
			EOI
		    FIN
		 FIN
	      FIN
	   FIN
	FIN
LABEL	NO.MOVE.POSSIBLE
	IFNEAR   LAMP
	   AND
	IFEQ     LAMP,1
	   OR
	BIT   HERE,LIT
	   SAY   NOCANGO
	ELSE
	   CHANCE   25
	      SAY   CRUNCH
	      CALL  CORONER
	   ELSE
	      SAY   OOF!
	   FIN
	FIN
	IFNEAR   LAMP
	   AND
	IFEQ  LAMP,1
	   SUB   LAMPLIFE,1
	   IFEQ  LAMPLIFE,0
	      OR
	   IFEQ  LAMPLIFE,40
	      CALL  LAMPREY
	   FIN
	FIN
	QUIT
LABEL	BREAK.VIAL
	APPORT   VIAL,LIMBO
	SAY   VIAL.BANG
	RANDOM   I,LAST.FUME-FIRST.FUME+1
	LDA   J,FIRST.FUME
	ADD   I,J
	SAY   I
	SAY   BLANK
	IFNEAR   DWARF
	   IFEQ  DWARROWS,1
	      SET   VIAL,1
	   ELSE
	      SET   VIAL,2
	   FIN
	   SAY   VIAL
	   APPORT   DWARF,LIMBO
	   SUB   DWARFCOUNT,DWARROWS
	   SET   DWARROWS,0
	FIN
	IFNEAR   TROLL
	   SET   VIAL,3
	   SAY   VIAL
	FIN
	IFNEAR   BEAR
	   SET   VIAL,4
	   IFGT  BEAR,0
	      SET   VIAL,5
	   FIN
	   SAY   VIAL
	FIN
	IFNEAR   SNAKE
	   SET   VIAL,6
	   SAY   VIAL
	FIN
	IFNEAR   BIRD
	   SET   VIAL,7
	   SAY   VIAL
	FIN
	IFNEAR   SLIME
	   SET   VIAL,8
	   SAY   VIAL
	   APPORT   SLIME,LIMBO
	FIN
	IFNEAR   DRAGON
	   AND
	IFEQ  DRAGON,0
	   SET   VIAL,9
	   SAY   VIAL
	FIN
	IFNEAR   DJINN
	   SET   VIAL,10
	   SAY   VIAL
	FIN
	IFNEAR   BASILISK
	   AND
	IFLT  BASILISK,2
	   SET   VIAL,11
	   SAY   VIAL
	FIN
	IFNEAR   GOBLINS
	   SET   VIAL,12
	   SAY   VIAL
	   APPORT   GOBLINS,LIMBO
	FIN
	QUIT
LABEL	DROPVIAL
	IFHAVE   VIAL
	   AND
	CHANCE   10
	   SAY   VIAL.EXPLODES
	   APPORT   VIAL,LIMBO
	   CALL  CORONER
	FIN
LABEL	WEAPONRY.2     {handle more attack stuff}
	IFNEAR   BASILISK
	   IFGT  BASILISK,1
	      SAY   IT.IS.DEAD
	      IFKEY THROW
		 GET   ARG2
	      FIN
	   ELSE
	      NAME  AXE.BASILISK,ARG2
	      CALL  CORONER
	   FIN
	ELSE
	   IFNEAR   DJINN
	      NAME  REBOUND,ARG2
	   ELSE
	      IFNEAR   GOBLINS
		 NAME   KILL.A.FEW,ARG2
		 CALL  CORONER
	      ELSE
		 IFKEY THROW {throwing weapon with no target}
		    GET   ARG2  {will cause us to wade into the}
		    PROCEED  {cause us to throw it to another place}
		 ELSE
		    SAY   OK
		 FIN
	      FIN
	   FIN
	FIN
	QUIT
LABEL	WEAPONRY    {Handle attacks with weapons}
	IFHAVE   ARG2
	   IFKEY THROW
	      DROP  ARG2
	   FIN
	   IFNEAR   DWARF
	      SET   I,STRENGTH
	      SUB   I,INVCT
	      MULT  I,5
	      SET   J,DWARROWS
	      ADD   J,2
	      MULT  J,15
	      ADD   I,J
	      IFKEY AXE
		 EOR
	      IFKEY SWING
		 ADD   I,15
	      FIN
	      CHANCE   I
		 SAY   DWARF.POOF
		 SUB   DWARROWS,1
		 IFEQ  DWARROWS,0
		    APPORT   DWARF,LIMBO
		 FIN
		 SUB   DWARFCOUNT,1
	      ELSE
		 SAY   DWARFDODGES
		 SET   J,DWARROWS
		 ADD   J,1
		 RANDOM   J,J   {how many knives thrown?}
		 IFGT  J,0      {at least 1?}
		    IFEQ  J,1
			SAY   KNIFETHROWN
		    ELSE
			VALUE KNIVESTHROWN,J
		    FIN
		    BIT   DWARF,SPECIAL2 { (is he mad?) }
			SUB   I,20
		    FIN
		    CHANCE   I
			OR
		    BIT   DWARF,SPECIAL1
			IFEQ  J,1
			  SAY   MISSES
			ELSE
			  SAY   KNIVESMISS
			FIN
			BIC   DWARF,SPECIAL1
		    ELSE
			SAY   GETSYOU
			CALL  CORONER
		    FIN
		 FIN
	      FIN
	   ELSE
	      IFNEAR   SNAKE
		 SAY   CANTKILLSNAKE
		 IFKEY THROW
		    GET   ARG2
		 FIN
	      ELSE
		 IFNEAR   DRAGON
		    NAME   KILL.DRAGON,ARG2
		 ELSE
		    IFNEAR   BEAR
			IFEQ  BEAR,0
			  IFKEY THROW
			     IFKEY AXE
				SAY   AXE..BEAR
				SET   AXE,1
			     ELSE
				SAY   SWORD.MISSES
			     FIN
			  ELSE
			     CHANCE   50
				SAY   BEAR.MISSES
			     ELSE
				SAY   BEAR.GETS.YOU
				CALL  CORONER
			     FIN
			  FIN
			ELSE
			  SAY   BEAR.PUZZLED
			FIN
			QUIT
		    ELSE
			IFNEAR   TROLL
			  SAY   TROLL.DATA
			ELSE
			  IFNEAR   OGRE
			     IFKEY SWING
				NAME  OGRE.REBUFF,ARG2
				CALL  CORONER
			     ELSE
				IFKEY AXE
				   NAME  OGRE.CATCH,ARG2
				   CALL  CORONER
				ELSE
				   SAY   OGRE.KILLED
				   APPORT   SWORD,LIMBO
				   APPORT   OGRE,LIMBO
				   APPORT   RING,HERE
				   QUIT
				FIN
			     FIN
			  ELSE
			     IFNEAR   BLOB
				NAME  SLICE.BLOB,ARG2
				QUIT
			     ELSE
				CALL WEAPONRY.2
				PROCEED  {if no attack, use normal}
			     FIN   {"THROW" logic (see UPCHUCK)}
			  FIN
			FIN
		    FIN
		 FIN
	      FIN
	   FIN
	ELSE
	   NAME  YOUDONTHAVE,ARG2
	FIN
	QUIT
LABEL	PASSPHRASE
	IFNEAR   SAFE
	   IFEQ  SAFE,0
	      IFEQ  STATUS,2
		 AND
	      IFEQ  ARG2,PASSWORD
		 OR
	      IFEQ  ARG1,PASSWORD
		 SAY   SAFE.OPENS
		 SET   SAFE,1
		 BIS   SAFE,SPECIAL1
		 QUIT
	      ELSE
		 NOT
		 BIT   SAFE,SPECIAL1
		    SAY   SAFE.FUSES
		    SET   SAFE,2            {melt the safe's door shut}
		    SET   BLOB,1            {wake up the blob}
		    BIS   ADMIN,TICKER      {BLOB is chasing us - quickly!}
		    BIS   ADMIN,NOMAGIC     {inhibit PLUGH etc.}
		    SET   GRATE,0           {lock him in the cave}
		    QUIT
		 FIN
	      FIN
	   FIN
	FIN
	SAY   NOTHING
	QUIT
LABEL	TICK     {once-per-input routine}
	IFGT  BLOB,0
	   IFEQ  BLOB,16     {special case for blob}
	      SET   BLOB,17
	      SAY   BLOB
	      CALL  CORONER
	   FIN
	   SAY   BLOB
	   ADD   BLOB,1
	FIN
LABEL	PRESAY
	IFGT  STATUS,1
	   NAME  SAID,ARG2
	FIN
LABEL	PLUNGE   {for plunging into a bottomless pit}
	GOTO YLEM
	IFEQ  LAMP,1
	   SET   LAMPLIFE,0
	   IFHAVE   LAMP
	      SAY   FALL&STARVE
	   ELSE
	      SAY   FALL&STARVED
	   FIN
	ELSE
	   SAY   FALL&STARVED
	FIN
	CALL  CORONER
LABEL	UPCHUCK
	SET   I,0
	IFAT PIT
	   LDA   I,THROW.PIT
	   LDA   J,MISTS
	FIN
	IFAT EASTOFFISSURE
	   LDA   I,THROW.FISSURE
	   LDA   J,CAVERN
	FIN
	IFAT WESTOFFISSURE
	   LDA   I,THROW.FISSURE
	   LDA   J,CAVERN
	FIN
	IFAT WEND2PIT
	   LDA   I,THROW.PIT
	   LDA   J,WESTPIT
	FIN
	IFAT EEND2PIT
	   LDA   I,THROW.PIT
	   LDA   J,EASTPIT
	FIN
	IFAT LOWNSPASSAGE
	   LDA   I,THROW.HOLE
	   LDA   J,DIRTY
	FIN
	IFAT WINDOW
	   LDA   I,THROW.PIT
	   LDA   J,MIRRORCNYN
	FIN
	IFAT WINDOW2
	   LDA   I,THROW.PIT
	   LDA   J,MIRRORCNYN
	FIN
	IFAT BRINK
	   LDA   I,THROW.PIT
	   LDA   J,STREAMPIT
	FIN
	IFAT DUSTY
	   LDA   I,THROW.HOLE
	   LDA   J,COMPLEX
	FIN
	IFAT MAZEA.57.PIT
	   LDA   I,THROW.PIT
	   LDA   J,BIRDCHAMBER
	FIN
	IFAT SECRETNSCYN
	   LDA   I,THROW.ROOM
	   LDA   J,SLAB
	FIN
	IFAT SECRETNSCPAS
	   LDA   I,THROW.ROOM
	   LDA   J,BEDQUILT
	FIN
	IFAT SECRETEW.TITE
	   LDA   I,THROW.CANYON
	   LDA   J,NSCANYONWIDE
	FIN
	IFAT INCLINE
	   LDA   I,THROW.ROOM
	   LDA   J,LOW
	FIN
	IFAT CAVERN
	   LDA   I,THROW.WHIRLPOOL
	   LDA   J,YLEM
	FIN
	IFAT MISTY
	   LDA   I,THROW.CAVERN
	   LDA   J,CAVERN
	FIN
	IFAT STALACT
	   LDA   I,THROW.ROOM
	   LDA   J,MAZEA.53
	FIN
	IFAT  RESERVOIR
	   OR
	IFAT  RESERVOIR.N
	   LDA   I,THROW.RESERVOIR
	   LDA   J,YLEM
	FIN
	IFAT BALCONY
	   LDA   I,THROW.ROOM
	   LDA   J,YLEM
	FIN
	IFAT SWOFCHASM
	   LDA   I,THROW.CHASM
	   LDA   J,YLEM
	FIN
	IFAT NEOFCHASM
	   LDA   I,THROW.CHASM
	   LDA   J,YLEM
	FIN
	IFAT BREATHTAKER
	   LDA   I,THROW.GORGE
	   LDA   J,YLEM
	FIN
	IFAT FACES
	   LDA   I,THROW.GORGE
	   LDA   J,YLEM
	FIN
	IFAT TUBE
	   LDA   I,THROW.CHIMNEY
	   LDA   J,CHIMNEY
	FIN
	IFAT TUBE.SLIDE
	   LDA   I,THROW.TUBE
	   LDA   J,PLAIN.1
	FIN
	IFAT BASQUE.FORK
	   LDA   I,THROW.STEPS
	   LDA   J,ON.STEPS
	FIN
	IFAT ON.STEPS
	   LDA   I,THROW.STEPS
	   LDA   J,STEPS.EXIT
	FIN
	IFAT STEPS.EXIT
	   LDA   I,THROW.STEPS
	   LDA   J,STORAGE
	FIN
	IFAT BRINK.1
	   LDA   I,THROW.PIT
	   LDA   J,YLEM
	FIN
	IFAT BRINK.2
	   LDA   I,THROW.PIT
	   LDA   J,YLEM
	FIN
	IFAT ICE
	   LDA   I,THROW.SLIDE
	   LDA   J,SLIDE
	FIN
	IFAT BRINK.3
	   LDA   I,THROW.PIT
	   LDA   J,YLEM
	FIN
	IFAT SHELF
	   LDA   I,THROW.BEACH
	   LDA   J,BEACH
	FIN
	IFAT PLATFORM
	   LDA   I,THROW.GORGE
	   LDA   J,YLEM
	FIN
	IFEQ  I,0   {"THROWER" bit set but can't find target}
	   OR
	IFKEY BEAR     {you can't throw bear into chasm!}
	   PROCEED
	FIN
	NAME  I,ARG2
	APPORT   ARG2,J
	IFKEY VASE
	   APPORT   VASE,YLEM
	   APPORT   SHARDS,J
	   LDA   I,YLEM
	   IFEQ  I,J
	   ELSE
	      SAY   SHATTERED.IT
	   FIN
	FIN
	IFKEY BOTTLE
	   APPORT   OIL,LIMBO
	   APPORT   WATER,LIMBO
	FIN
	IFKEY OIL
	   OR
	IFKEY WATER
	   SET   BOTTLE,1    {threw liquid away - drain bottle}
	   APPORT   ARG2,LIMBO
	FIN
	IFKEY CAGE
	   AND
	IFHAVE   BIRD
	   APPORT   BIRD,J
	FIN
	IFKEY LAMP
	   AND
	IFEQ  LAMP,1
	   AND
	   NOT
	BIT   HERE,LIT
	   SAY   ITISNOWDARK
	FIN
	IFKEY BIRD
	   SET   BIRD,0
	FIN
	QUIT
LABEL	GROPE.FOR.IT   {grope around in the dark for objects}
	IFEQ  STATUS,1 {did jhe say what to get?}
	   SAY   CANT.SEE.ANYTHING
	   QUIT
	FIN
	BIT   ARG2,OBJECT
	   IFHAVE   ARG2
	      OR
	      NOT
	   BIT   ARG2,PORTABLE
	      PROCEED
	   FIN
	   SET   I,INVCT
	   SUB   I,STRENGTH
	   MULT  I,5
	   ADD   I,60
	   CHANCE   I
	      NAME  GROPE.FALL,ARG2
	      CALL  CORONER
	   ELSE
	      CHANCE   50
		 OR
		 NOT
	      IFNEAR   ARG2
		 NAME  GROPE.MISS,ARG2
		 QUIT
	      ELSE
		 NAME  GROPE.FIND,ARG2
		 PROCEED
	      FIN
	   FIN
	FIN