Modifying Beyond The Titanic to compile with the Free Pascal compiler and run on...
[beyond-the-titanic.git] / src / BEYOND.PAS
index bd2b4f79aa69c70963325a06fd45f9a5f1dbbda6..6908e195f4d9ccb0d878e49e7815419537c30751 100644 (file)
-{//-------------------------------------------------------------------------}\r
-{/*                                                                         }\r
-{Copyright (C) 1990, 2009 - Apogee Software, Ltd.                           }\r
-{                                                                           }\r
-{This file is part of Supernova.  Supernova is free software; you can       }\r
-{redistribute it and/or modify it under the terms of the GNU General Public }\r
-{License as published by the Free Software Foundation; either version 3     }\r
-{of the License, or (at your option) any later version.                     }\r
-{                                                                           }\r
-{This program is distributed in the hope that it will be useful,            }\r
-{but WITHOUT ANY WARRANTY; without even the implied warranty of             }\r
-{MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                       }\r
-{                                                                           }\r
-{See the GNU General Public License for more details.                       }\r
-{                                                                           }\r
-{You should have received a copy of the GNU General Public License          }\r
-{along with this program; if not, write to the Free Software                }\r
-{Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.}\r
-{                                                                           }\r
-{Original Source: 1990 Scott Miller                                         }\r
-{Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }\r
-{*/                                                                         }\r
-{//-------------------------------------------------------------------------}\r
-{****************************************************************************}\r
-{*                          BEYOND THE TITANIC                              *}\r
-{*    Written by Scott Miller with Turbo Pascal V.2.  Began May 12, '84.    *}\r
-{*                           Shareware Version                              *}\r
-{*                             Copyright 1987                               *}\r
-{$C-,K-,V-,R-****************************************************************}\r
-\r
-{ Last modified: July 23, 1987 }\r
-\r
-const\r
-     Q        = '#';\r
-     VMax     = 65;\r
-     NMax     = 89;\r
-     RMax     = 76;\r
-     Null     = -1;\r
-\r
-type\r
-     ComSet         = set of 0..VMax;\r
-     CharSet        = set of Char;\r
-     PlayersObjects = set of 0..NMax;\r
-     Str14          = string[14];\r
-     Str80          = string[80];\r
-     Str240         = string[240];\r
-     SaveGame       = record\r
-       aInven,\r
-       aKitSet,\r
-       aCabiSet  :PlayersObjects;\r
-       aPanelCon,\r
-       aSlotCon,\r
-       aCompCon,\r
-       aRopeCon,\r
-       aTic,\r
-       aYearDial,\r
-       aPrm,\r
-       aMnRm,\r
-       aSc,\r
-       aShots,\r
-       aShRm,\r
-       aRx       :integer;\r
-       aEv       :CharSet;\r
-       aCode,\r
-       aLoc      :Str14;\r
-       aKeyHole  :boolean;\r
-      end;\r
-\r
-var\r
-     WordList       : file of Str14;\r
-     Things         : file of integer;\r
-     Objects        : file of PlayersObjects;\r
-     GameSave       : file of SaveGame;\r
-     DiskSave       : SaveGame;\r
-     Input,\r
-     Again,\r
-     Line           : Str80;\r
-     V{erb}         : array [0..VMax,1..5] of Str14;\r
-     N{oun}         : array [0..NMax,1..5] of Str14;\r
-     R{oom}         : array [0..NMax] of integer;\r
-     P{lace}        : array [0..RMax] of PlayersObjects;\r
-     RmSh           : set of 0..14;\r
-     OneWordCommands: Comset;\r
-     Mov{able},\r
-     Inven{tory},\r
-     KitSet,\r
-     CabiSet        : PlayersObjects;\r
-     Word,\r
-     LastNoun,\r
-     Drive,\r
-     Code,\r
-     Loc{ation},\r
-     SepWord        : Str14;\r
-     Rooms1, Rooms2,\r
-     Special1, Special2 : file of Str240;\r
-     Text1, Text2   : Str240;\r
-     Line1          : file of Str80;\r
-     Verb,\r
-     Noun, Noun2,\r
-     PanelCon,\r
-     RopeCon,\r
-     CompCon,\r
-     SlotCon,\r
-     RopeOld,\r
-     Tic,\r
-     YearDial,\r
-     DayDial,\r
-     Prm,  {Player Room}\r
-     MnRm, {Monster Room}\r
-     Sc{ore},\r
-     Shots,\r
-     DialNum,\r
-     Stuff,\r
-     ShRm, {Shuttle Room}\r
-     m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,\r
-     Rx, {deserted road}\r
-     Ox, {ocean bottom}\r
-     x, y, o        : integer;\r
-     Flag,\r
-     FlagSA         : char;\r
-     Ev{ent}        : CharSet;\r
-     Attack,\r
-     Skip,\r
-     Back,\r
-     KeyHole,\r
-     Verbose        : boolean;\r
-\r
-\r
-\r
-{$Ia:AdParser.PAS}{  <--- Loads in sentence logic.    <*********************}\r
-\r
-\r
-{$Ia:Commands.PAS}{  <--- Loads in misc. procedures.  <*********************}\r
-\r
-\r
-{$Ia:WordList.PAS }{  <----- CALLS UP THE VERBS & NOUNS <*******************}\r
-\r
-\r
-{$Ia:Objects.PAS }{   <----- CALLS UP THE VERBS & NOUNS <*******************}\r
-\r
-\r
-{===================}\r
-overlay procedure DefaultAnswers1;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-22        :begin if(Prm in[59..68])then\r
-                  begin RmSh:=RmSh-[ShRm];RS(84)end;\r
-            if flasoff and (Prm in [6..24])then RL(54) else\r
-             if Verbose then DescribeRm\r
-              else begin Verbose:=true;DescribeRm;Verbose:=false;end;\r
-            if(23 in p[Prm])and(MnRm=Prm)then RL(357);\r
-            if Back then begin Attack:=False; Back:=False;end\r
-           end;\r
-\r
-18        :if inven=[] then RL(116)\r
-             else\r
-               begin\r
-                 writeln('You have in your possession...');\r
-                   for o:= 0 to NMax do\r
-                    begin\r
-                     if(o in inven)then\r
-                      if(o=74)then\r
-                       writeln('an ',n[o,1])else writeln('a ',n[o,1]);\r
-                     if(ropecon in inven)and(o=ropecon)then\r
-                      writeln('  The rope is tied to the ',n[o,1],'.');\r
-                     if(o=74)and(en('p'))then RL(174);\r
-                     if(o=89)and(en('i'))then RL(321);\r
-                    end;\r
-               end;\r
-\r
-11     :case noun of\r
-       60:Diagnose;\r
-       2:if(en('b'))then RL(198) else RL(199);\r
-       29:begin RL(89);if(en('a'))then RL(200) else RL(201);end;\r
-       57:if(ropecon<>Null)then\r
-            writeln('The rope is tied to the ',n[ropecon,1],'.')\r
-          else RL(133);\r
-       65:if(Prm in[59..68])then RS(84)else Line:='l';\r
-       8:RL(202);\r
-       7:RL(163);\r
-       70:RL(164);\r
-       52:RL(165);\r
-       74:RL(166);\r
-       23:RS(70);\r
-       32:RL(253);\r
-       13:RL(167);\r
-       22:RL(226);\r
-       1:if(Prm=42)and(13 in p[42])then RL(167);\r
-       21:RL(227);\r
-       9:if(Prm=49)then RL(228)else if(Prm>62)then RS(68)else RL(229);\r
-       69:RL(355);\r
-       77:RL(403);\r
-       37:RL(295);\r
-       27:RL(394);\r
-       89:RL(338);\r
-       18:if(Prm in[63..70])then RS(68)else RL(348);\r
-       46,66:If(Prm in[58,59,63,69])then begin\r
-       TextColor(12);RS(83);TextColor(m2)end;\r
-       87:RL(230);\r
-       84:RL(231);\r
-       34:begin RL(189);\r
-           if(Shots>0)then writeln('is about ',Shots*10,' percent full.')\r
-           else Writeln('is empty.')end;\r
-       15:if(84 in p[Prm])then RL(180)else If(71 in p[Prm])then RL(182)\r
-          else RL(181);\r
-    56,44:if(en('r'))then RL(51) else RL(52)\r
-       else if not(noun in[1,12,14,15,17,18,19,22,31,36,50,\r
-             54,67,69,73,79,80,84,87,88])and(random(3)=1)then\r
-            case random(3) of\r
-             0  :RL(407);\r
-             1  :writeln('Yea, it''s definitely a ',n[noun,1],'!');\r
-             2  :writeln('It looks like any other ',n[noun,1],'.');\r
-            end\r
-            else writeln('You see nothing special about the ',n[noun,1],'.')\r
-       end;\r
-\r
-41         :begin writeln('Time passes');y:=wherey;for o:=1 to 6 do\r
-              begin gotoxy(11+o,y-1);writeln('.');sound(o*99);delay(30)end;\r
-              if(Prm in[59..68])then sound(20)else nosound end;\r
-\r
-43..52     :if(Prm in[6..24])and(FlasOff)then RL(14)else\r
-             if(Prm=69)then RL(358)else RL(144);\r
-\r
-57,58      :begin Attack:=False;\r
-             if(Prm in[6..24])and(FlasOff)then RL(14)else RL(190);end;\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers1}\r
-{-------------------}\r
-overlay procedure DefaultAnswers2;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-29    :if(noun in Mov)then\r
-        if(noun in inven)then\r
-         begin FlagSA:='r';\r
-          case Noun2 of\r
-        39:if(en('o'))then begin RL(186);Vanish(noun);\r
-            kitset:=kitset+[noun];r[noun]:=Prm;end\r
-           else RL(185);\r
-        68:if(Prm=34)then\r
-            if(SlotCon=Null)then begin RL(186);Vanish(noun);\r
-             SlotCon:=Noun;r[noun]:=Prm;end\r
-            else Say(68,'being used')\r
-           else\r
-            if(noun=63)and(Prm=58)then\r
-             begin RL(337);KeyHole:=True;r[63]:=Prm;inven:=inven-[63];end\r
-            else RL(327);\r
-        88:begin RL(293);vanish(noun);r[noun]:=random(4)+51;end;\r
-        47,53,73:if(Prm in[0..6,9,10,13,41..43])then\r
-           begin RL(307);vanish(noun);end;\r
-        11:if(en('k'))then begin RL(186);Vanish(noun);\r
-            CabiSet:=CabiSet+[noun];r[noun]:=Prm;end\r
-           else RL(187);\r
-        26:if(Prm=76)and(noun=57)then begin RL(409);Vanish(57)end;\r
-        49:if(PanelCon=Null)and(noun in[2,7,8,13,27,32,51,52,63,77])then\r
-            begin RL(186);Vanish(noun);PanelCon:=Noun;r[noun]:=Prm;end\r
-           else RL(188);\r
-        30:if(noun=70)then\r
-            if not(en('d'))then\r
-             begin Ev:=Ev+['d'];RL(69);Vanish(70);r[70]:=Prm;end\r
-            else Say(70,'in the dirt')\r
-           else Crazy\r
-          end;{of case}\r
-\r
-          if(FlagSA<>'s')then\r
-           begin\r
-            if(SepWord='to')then\r
-             if(noun2 in[4,6,9,11,14,16,22,30,50,59,61,64,65,69,75])then\r
-              begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
-             else RL(197);\r
-            if(SepWord='at')or(SepWord='near')or(SepWord='behind')then\r
-             if(noun2 in[0,4,6,9,11,12,14,16,17,20..23,26,28,30,35,39,43,\r
-                         50,53,54,59,61,62,64..69,72,73,75,78..80])then\r
-              begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
-             else RL(197);\r
-            if(SepWord='under')then\r
-             if(noun2 in[4,15,16,20,23,59,60,61,75])then\r
-              begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
-             else RL(197);\r
-            if(SepWord='in')then\r
-             if(noun2 in[6,16,43,47,30,50,59,64,65,72,78,80,84])then\r
-              begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
-             else RL(197);\r
-            if(FlagSA<>'s')then Crazy;\r
-           end\r
-          end\r
-         else writeln('First you must have the ',n[noun,1],'.')\r
-        else Crazy;\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers2}\r
-{-------------------}\r
-overlay procedure DefaultAnswers3;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-31,63      :if(Verb=63)and(Prm<>MnRm)then RL(395)\r
-            else\r
-             if(Prm=MnRm)then\r
-              begin Attack:=False;\r
-               if(input='hi')or(input='hello')or(input='bye')then RL(396)else\r
-               if(copy(input,1,6)='follow')then RL(397)else\r
-                case random(5) of\r
-                 0:RL(365);1:RL(398);2:RL(399);3:RL(400);4:RL(401)\r
-                end\r
-              end\r
-             else RL(123);\r
-\r
-33         :RL(124);\r
-\r
-38         :case noun of\r
-             83:RL(262);\r
-             23:begin RL(366);DropAll;Ev:=Ev+['r'];Attack:=False end\r
-             else RL(125);\r
-            end;\r
-\r
-16         :if(MnRm=Prm)then begin Attack:=False;RL(372)end else\r
-            if(en('r'))then RL(373)else\r
-            if(Prm<15)and(70 in p[12])then RL(374)else  RL(371);\r
-\r
-19         :if(noun=Null)then RL(136)else Crazy;\r
-24         :if(noun=7)then RL(422)else\r
-            if(noun in[26,6,7,22,36,17,50,65,73,74,80,79,30,84])then RL(126)\r
-            else Crazy;\r
-21         :RL(127);\r
-40         :Crazy;\r
-\r
-8          :if(noun in[73,80])or(noun=Null)then\r
-             if(noun<>Null)then RL(36)\r
-             else if(here(73))or(here(80))then RL(36)else RL(37)\r
-            else RL(53);\r
-\r
-12         :RL(38);\r
-2          :if(noun in[4,35,39,8,11,12,14,20,21,30,57,43,59,67,70,75])then\r
-              RL(43)else RL(44);\r
-\r
-15         :if(noun in mov)then\r
-             if(sepword='to')then\r
-              if(noun2=23)then\r
-               begin RL(62);Vanish(noun);Attack:=False end\r
-              else Crazy\r
-             else RL(60)\r
-            else RL(61);\r
-\r
-1          :if(verbose)then\r
-              begin verbose:=false;RL(134);end\r
-             else begin verbose:=true;RL(135);end;\r
-\r
-13         :RL(77);\r
-23         :RL(78);\r
-\r
-60         :case noun of\r
-            43,12:RL(252);\r
-            35:RL(288)\r
-            else RL(78);\r
-            end;\r
-\r
-25         :if(Prm>62)and(Noun in[9,18,19,41])then RL(350)else RL(78);\r
-34         :RL(79);\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers3}\r
-{-------------------}\r
-overlay procedure DefaultAnswers4;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-20         :RL(81);\r
-35         :RL(82);\r
-\r
-6          :if(noun=23)and(here(40))then begin vanish(40);RL(84);end\r
-             else\r
-              if here(40)then\r
-               if(noun2=Null)or(noun2=40)then\r
-                case noun of\r
-                 57:RL(259);\r
-                 60:RL(260)\r
-                 else writeln('At the last moment you decide to spare',\r
-                       ' the ',n[noun,1],'''s life!')\r
-                end\r
-               else Crazy\r
-              else RL(83);\r
-\r
-30         :if(noun in [39,43,12,26,6,22,47,49,68,78,17,11,\r
-               50,65,73,74,80,79,30])then RL(93) else RL(94);\r
-\r
-54         :begin write('Would you like to SAVE your game first (Y or N)?  ');\r
-             read(kbd,flag);if(upcase(flag)<>'N')then SAVE else writeln('No.');\r
-             write('Are you still sure you want to quit? ');\r
-             read(kbd,flag);if(upcase(flag)='Y')then\r
-              begin RL(367);delay(999);window(1,1,80,25);clrscr;close(rooms1);\r
-               close(rooms2);close(special1);close(special2);close(line1);\r
-              HALT end else RL(264)end;\r
-53         :if(Prm in[27,30])then RL(123) else RL(145);\r
-59         :If(noun=23)then RL(368)else Diagnose;\r
-\r
-55         :if(noun=74)then\r
-              if(en('p'))then\r
-                begin Ev:=Ev-['p'];RL(169);end\r
-              else RL(168)\r
-            else\r
-            if(noun=89)then\r
-              if(en('i'))then\r
-                begin\r
-                 Ev:=Ev-['i'];RL(322);\r
-                 if(Prm in[59,63..68])then begin RS(66);DEAD;end;\r
-                end\r
-              else RL(323)\r
-            else Crazy;\r
-\r
-56     :if(noun=Null)or(noun in[60,23])or(noun in Mov)then\r
-         case noun of\r
-          23:RL(369);\r
-          60,Null:RL(193);\r
-          7:RL(194)\r
-          else RL(195);\r
-         end\r
-        else RL(196);\r
-\r
-3       :case noun of\r
-         7:RL(235);\r
-         2:if(en('b'))then RL(236)else RL(237);\r
-         62:RL(238);\r
-         65:RL(239);\r
-         74:RL(240);\r
-         78:RL(241);\r
-         84,40,50,68,85:RL(242)\r
-         else Crazy;\r
-        end;\r
-\r
-7      :begin if(noun=Null)then noun:=30;\r
-         if(noun in[30,36,47,50,71,72,79])then\r
-          case noun of\r
-           30,47,50,71:if(Prm in[5..22,44..49])then RL(247) else RL(248);\r
-           36:RL(249);\r
-           72:RL(250);\r
-           79:RL(251);\r
-          end\r
-         else Crazy;\r
-        end;\r
-\r
-\r
-  end   {of CASE.}\r
-end;    {of DefaultAnswers4}\r
-{-------------------}\r
-overlay procedure DefaultAnswers5;\r
-var o: integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-9         :if noun<>1 then\r
-             if(noun in Inven)then\r
-               if(noun=74)and(en('p'))then RL(170)\r
-          else if(noun=89)and(en('i'))then RL(335)\r
-          else begin\r
-                 inven:=inven-[noun];writeln(n[noun,1],': Dropped.');\r
-                 R[noun]:=Prm;\r
-               end\r
-             else\r
-               writeln('You don''t have the ',n[noun,1],'.')\r
-           else\r
-             begin\r
-              if(74 in inven)and(en('p'))then RL(170)else\r
-              if(89 in inven)and(en('i'))then RL(335)else\r
-              DropAll;\r
-            end;\r
-\r
-26        :case noun of\r
-         2:if not(en('b'))then\r
-              begin\r
-                Ev:=Ev+['b'];\r
-                RL(3);end\r
-            else Say(noun,'peeled');\r
-         7:RL(162);\r
-        57:if(ropecon<>Null)then\r
-              begin\r
-                ropecon:=Null;\r
-                RL(117);end\r
-            else Say(noun,'untied');\r
-        62:RL(238)\r
-         else Crazy;\r
-         end; {end of OPEN }\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers5}\r
-{-------------------}\r
-overlay procedure DefaultAnswers6;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-28,27     :case noun of\r
-           23:RL(369);\r
-           29:if not(en('a'))then\r
-                begin Ev:=Ev+['a'];\r
-                RL(120);end\r
-              else begin Ev:=Ev-['a'];\r
-                RL(121);end;\r
-           57:if(ropecon<>Null)and not(ropecon in inven)\r
-                    and(r[ropecon]<>Prm)then\r
-                  if(ropecon in mov)then begin\r
-                    RL(57);writeln('...it''s a ',n[ropecon,1],'!');\r
-                    r[ropecon]:=Prm;Ev:=Ev-['u'];\r
-                    if(ropecon=29)and not(flasoff)then DescribeRm;end\r
-                  else RL(56)\r
-               else RL(122);\r
-           8:begin RL(243);RL(244);play(9999,3500,0);play(3499,2000,1);\r
-              play(1999,1000,2);play(999,200,5);play(199,8,16);Ev:=Ev+['e'];\r
-              n[36,5]:=Q;n[78,5]:='glass';n[68,1]:='slot';n[66,4]:=Q;\r
-              Ev:=Ev-['j'];\r
-              moveto(30);\r
-              if(MnRm=Prm)then RS(73);\r
-             end;\r
-           81:if not(en('j'))then\r
-               if KeyHole then\r
-                begin Ev:=Ev+['j'];RL(326);play(2000,2001,200);end\r
-               else RL(123)\r
-              else\r
-               begin Ev:=Ev-['j'];\r
-                if Keyhole then begin RL(326);play(2001,2000,200)end\r
-                else RL(123);\r
-                if(Prm in[59..68])then begin nosound;RS(62);DEAD;end;\r
-               end;\r
-           36:begin\r
-               if(Prm > 57)then if(Prm = 58)then RL(123)else\r
-                begin RS(63);DEAD;end;\r
-              end\r
-             else RL(122);\r
-           end; {of case}\r
-\r
-62         :begin write('You have ',Sc,' of 1000 points',\r
-                        ', giving you the rank of ');Tic:=Tic-1;\r
-              case Sc of\r
-              0..99:writeln('beginner.');\r
-              100..249:writeln('novice adventurer.');\r
-              250..399:writeln('adventurer third class.');\r
-              400..549:writeln('adventurer second class.');\r
-              550..699:writeln('adventurer first class.');\r
-              700..849:writeln('expert adventurer.');\r
-              850..999:writeln('master adventurer.')\r
-              else writeln('dead adventurer!')\r
-              end;\r
-            Attack:=False;\r
-            if(MnRm=Prm)then RL(370)\r
-            end;\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers6}\r
-{-------------------}\r
-overlay procedure DefaultAnswers7;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-14      :if(noun<>1)then\r
-          if(noun in Mov)then\r
-           if not(noun in inven)then\r
-            begin\r
-            Stuff:=0;\r
-            for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;\r
-            if(Stuff < 6)then\r
-             if(en('r'))and(inven<>[])then RL(87)\r
-             else begin\r
-                   Vanish(Noun);inven:=inven+[noun];\r
-                   writeln(n[noun,1],': Taken.');\r
-                   if(noun=70)then Ev:=Ev-['d'];\r
-                  end\r
-            else RL(234)\r
-            end\r
-           else writeln('You already have the ',n[noun,1],'.')\r
-          else Crazy\r
-         else if(en('r'))then RL(88) else\r
-            begin flag:='0';Stuff:=0;\r
-             for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;\r
-             if(Stuff < 7)then\r
-              for o:=0 to NMax do\r
-               begin\r
-                if r[o]=Prm then\r
-                 if(Stuff+1 < 7)then\r
-                  begin\r
-                   vanish(o);inven:=inven+[o];Stuff:=Stuff+1;\r
-                   writeln(n[o,1],':  Taken.');flag:='1';\r
-                   if(o=70)then Ev:=Ev-['d'];\r
-                  end\r
-                 else\r
-                  begin flag:='1';\r
-                  writeln(n[o,1],': You have too many objects already!');end\r
-               end\r
-             else RL(234);\r
-             if(flag='0')then RL(49)\r
-            end; {of 14}\r
-\r
-4,5       :RL(420);\r
-\r
-64        :SAVE;\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers7}\r
-{-------------------}\r
-overlay procedure DefaultAnswers8;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-10         :if(noun in [2,52])then\r
-              if(noun=2)then\r
-                if(en('b'))then begin\r
-                  RL(45); Ev:=Ev+['c'];inven:=inven+[51];\r
-                  Vanish(2);Sc:=Sc+10;end\r
-                else RL(46)\r
-              else begin RL(47);Ev:=Ev+['n'];Sc:=Sc+15;Vanish(52);end\r
-            else writeln('I don''t think the ',n[noun,1],\r
-                         ' would do much for your digestive system!');\r
-\r
-42         :case noun of\r
-            74:if not(en('p'))then\r
-                if not(en('i'))then\r
-                 begin RL(20);inven:=inven+[74];r[74]:=Null;Ev:=Ev+['p'];end\r
-                else RL(320)\r
-               else Say(74,'on');\r
-            89:if not(en('i'))then\r
-                if not(en('p'))then\r
-                 begin RL(319);vanish(89);inven:=inven+[89];Ev:=Ev+['i'];end\r
-                else RL(318)\r
-               else Say(89,'on your head')\r
-            else RL(128);\r
-            end;\r
-\r
-17,0       :if(noun2=Noun)then Crazy else\r
-            if(noun2 in Mov)or(Noun2=Null)then\r
-            case Noun of\r
-             2:begin RL(21);Vanish(2);Sc:=Sc+25;r[51]:=Prm;end;\r
-             60:begin RL(22);DEAD;end;\r
-             52:begin RL(34);Vanish(52);end;\r
-             23:if(noun2=null)then RL(369)\r
-                else begin Vanish(noun2);Attack:=False;\r
-                 writeln('The monster grabs the ',n[noun2,1],' and eats it!');\r
-                     end;\r
-             7:begin RL(35);Vanish(7);r[52]:=Prm;Ev:=Ev+['I'];end\r
-             else if(verb=0)then writeln('At the last moment you decide to',\r
-                 ' spare the ',n[noun,1],'''s life!')\r
-                  else RL(216);\r
-             end{of case}\r
-             else Crazy;\r
-\r
-39         :if((SepWord='to')or(SepWord='off'))and(Noun2=Null)then\r
-             case Noun of\r
-              29:if(SepWord='to')then begin Ev:=Ev+['a'];RL(120);end\r
-                 else begin Ev:=Ev-['a'];RL(121);end;\r
-              13:RL(148);\r
-              20:RL(149);\r
-              65:RL(150)\r
-             else Crazy end\r
-            else RL(80);\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers8}\r
-{-------------------}\r
-overlay procedure DefaultAnswers9;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-32    :if(34 in inven)then\r
-        if(shots>0)then\r
-         begin\r
-         Shots:=Shots-1;\r
-         for x:=1 to (26-(4*(6-Shots))) do\r
-            begin play(300,350,11-Shots*2);play(320,370,11-Shots*2);end;\r
-          if(noun=34)and(noun2<>34)and(noun2<>Null)and(SepWord='at')then\r
-             begin noun:=noun2; noun2:=34; SepWord:='with';end;\r
-          if((noun2=34)and(noun<>34)and(SepWord='with'))or\r
-            ((noun<>34)and(SepWord='s'))then\r
-      case noun of\r
-       1:begin;Crazy;Shots:=Shots+1;end;\r
-       2,7,8,13,27,29,32,40,51,52,63,74,77,89:begin vanish(noun);\r
-          writeln('The ',n[noun,1],' vanishes in an explosion of light!');\r
-            if(noun=74)and(en('p'))then begin RL(232);DEAD;end;\r
-         end;\r
-       48:begin RL(222);RL(223);Ev:=Ev+['g'];p[40]:=p[40]-[48];\r
-           if not(en('P'))then begin Ev:=Ev+['P'];Sc:=Sc+25;end;end;\r
-       12,26:RL(224);\r
-       23:begin case random(4)of 0:RL(375);1:RL(376);2:RL(377);3:RL(378)end;\r
-           Attack:=False;\r
-          end;\r
-       45:RL(315);\r
-       60,56,44:begin RL(233);DEAD;end\r
-       else writeln('A blinding ray strikes the ',n[noun,1],', but it is',\r
-                      ' only slightly blackened.');\r
-      end {of shoot case}\r
-          else if(noun=34)and(noun2=Null)then RL(213)\r
-          else begin;Crazy;Shots:=Shots+1;end;\r
-         end\r
-        else begin writeln('...click!');play(25,32,9);end\r
-       else RL(208);\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers9}\r
-{-------------------}\r
-overlay procedure DefaultAnswers10;\r
-var o : integer;\r
-begin\r
-\r
-CASE VERB OF\r
-\r
-36         :if(noun in mov)then\r
-             if(noun in inven)then\r
-              if((noun in[2,7,52,29])or\r
-                 (noun2 in[2,7,23,29,47,52,53,73,88]))and(noun<>noun2)then\r
-               begin\r
-                if(noun=2)or(noun2=2)then begin RL(95);vanish(2);\r
-                  r[51]:=Prm;end;\r
-                if(noun=7)or(noun2=7)then begin RL(35);vanish(7);\r
-                  Ev:=Ev+['I'];r[52]:=Prm;end;\r
-                if(noun=29)or(noun2=29)then begin RL(96);vanish(29);end;\r
-                if(noun=52)or(noun2=52)then begin RL(34);vanish(52);end;\r
-                if(noun2=88)then begin RL(293);vanish(noun);\r
-                  if(noun=2)then noun:=51;if(noun=7)then noun:=52;\r
-                  r[noun]:=random(4)+51;end;\r
-                if(Prm in[0..6,9,10,13,41..43])and(noun2 in[73,53,47])then\r
-                  begin RL(306);vanish(noun);end;\r
-                if(noun2=23)then begin Attack:=False;Vanish(noun);RL(379);\r
-                  writeln(n[noun,1],' out of mid-flight and eats it',\r
-                        ' in one giant gulp!')end;\r
-               end\r
-              else begin writeln('The ',n[noun,1],' collides with the ',\r
-                n[noun2,1],' but nothing interesting happens.');\r
-                Vanish(noun);r[noun]:=Prm;end\r
-             else writeln('First you must have the ',n[noun,1],'.')\r
-            else Crazy;\r
-\r
-37         :if(noun=57)then\r
-             if(sepword='to')then\r
-              if not(noun2 in[1,15,17,22,30,46,47,50,52,72,73,79,80,83])then\r
-               if(ropecon=Null)then begin\r
-                ropecon:=noun2;\r
-                writeln('The rope is firmly tied to the ',n[noun2,1],'.');\r
-                if(noun2=57)then RL(48);end\r
-               else writeln('It is already tied to the ',n[ropecon,1],'.')\r
-              else RL(50)\r
-             else Crazy\r
-            else Crazy;\r
-\r
-61         :begin RL(245);read(kbd,flag);\r
-             if(upcase(flag)<>'N')then\r
-              begin RL(380);delay(999);window(1,1,80,25);clrscr;close(rooms1);\r
-               close(rooms2);close(special1);close(special2);close(line1);\r
-               assign(rooms1,'BEYOND.com');execute(rooms1)end\r
-             else RL(264)\r
-            end;\r
-\r
-65        :RESTORE;\r
-\r
-  end {of case}\r
-end;  {of DefaultAnswers10}\r
-{===================}\r
-overlay procedure SpecialAnswers1;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-CASE Prm OF\r
-\r
-3       :case verb of\r
-  44,58 :moveto(1);\r
-  20,52 :if(noun=6)then RL(40);\r
-    14  :if(noun=57)and not(en('o'))then RL(419);\r
-   6    :if(noun=57)and(here(40))and((noun2=Null)or(noun2=40))then\r
-             begin\r
-               RS(4); tic:=15; moveto(4); Ev:=Ev+['A']; Sc:=Sc+25;\r
-               if(en('o'))then\r
-                 for o:= 0 to 57 do begin\r
-                   if(o in kitset)then r[o]:=Prm;\r
-                   if(r[o]=3)then r[o]:=Prm;end\r
-             end;\r
-   26   :if(noun=39)then\r
-             if not(en('o'))then\r
-               begin Ev:=Ev+['o'];RL(328); for o:=2 to 57 do\r
-                 if(o in kitset)then r[o]:=Prm;end\r
-             else Say(noun,'opened');\r
-   3  :if(noun=39)then\r
-             if(en('o'))then\r
-               begin Ev:=Ev-['o'];RL(186); for o:=2 to 57 do\r
-                 if(o in kitset)then r[o]:=Null;end\r
-             else Say(noun,'shut');\r
-  17,28,27 :if(noun in [6,57,39,59])then RL(29);\r
-  24,11   :case noun of\r
-       39  :if(en('o'))then\r
-               if kitset=[] then begin RL(329);end\r
-               else begin RL(330);for o:= 0 to 57 do\r
-                   if(o in kitset)then writeln(' a ',n[o,1]);end\r
-             else RL(331);\r
-       57 :RL(10);\r
-       73 :RL(19);\r
-       6 :DescribeRm;\r
-           end;\r
-         end; {of 3}\r
-\r
-4      :case verb of\r
-   43..52,20:RL(7);\r
-    55  :if(noun=35)then begin RL(332);Ev:=Ev-['B'];end;\r
-  42,3:if noun=35 then begin RL(8); Ev:=Ev+['B'];end\r
-           else if(noun=39)then\r
-             if(en('o'))then\r
-               begin Ev:=Ev-['o'];RL(186); for o:=0 to 57 do\r
-                 if(o in kitset)then r[o]:=Null;end\r
-             else Say(noun,'shut');\r
-  29,37 :if(noun=35)and(noun2=60)then begin\r
-             RL(8);Ev:=Ev+['B'];end;\r
-   26   :if(noun=35)and(en('B'))then begin RL(332);Ev:=Ev-['B'];end\r
-           else if(noun=39)then\r
-             if not(en('o'))then\r
-               begin Ev:=Ev+['o'];RL(328); for o:=0 to 57 do\r
-                 if(o in kitset)then r[o]:=Prm;end\r
-             else Say(noun,'opened');\r
-   19,2:if(noun in[6,64])or(noun=Null)then\r
-             if(en('B'))then RL(9)\r
-             else begin RL(0);DEAD;end;\r
-    24,11:case noun of\r
-       39  :if(en('o'))then\r
-               if kitset=[] then begin RL(329);end\r
-               else begin RL(330);for o:= 0 to 57 do\r
-                   if(o in kitset)then writeln(' a ',n[o,1]);end\r
-             else RL(331);\r
-       35 :RL(12);\r
-       73 :RL(19);\r
-       6 :DescribeRm;\r
-           end;  {of case}\r
-         end; {of 4}\r
-\r
-end {of case}\r
-else SA\r
-end; {of SP1}\r
-{-------------------}\r
-overlay procedure SpecialAnswers2;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-5       :case verb of\r
-   45   :moveto(6);\r
-   2    :if(noun=79)then RL(263);\r
-           end;\r
-\r
-6       :case verb of\r
-   46   :moveto(5);\r
-  43..52:if FlasOff then RL(14)\r
-         else case verb of\r
-           43:begin Ox:=0;RL(286);moveto(7);end;\r
-           45:moveto(9); 49:moveto(8);\r
-              end;\r
-             end; {of 6}\r
-\r
-7       :case verb of\r
-  23..25,11:if(noun in[6,36,73,0,15,64,67])then RS(9);\r
-  43..50 :if FlasOff then RL(14)\r
-          else\r
-           begin\r
-            If(Verb in[43,47,48])then Ox:=Ox+1;\r
-            If(Verb in[44,49,50])then Ox:=Ox-1;\r
-            if(Ox<1)then begin RL(286);moveto(6)end\r
-            else\r
-             begin\r
-              RL(333);\r
-              if(random(20)=2)then begin writeln;RS(9);\r
-               if not(en('K'))then begin Ev:=Ev+['K'];Sc:=Sc+15;end;end;\r
-             end;\r
-           end;\r
-  28,17,6:if(noun=36)or(noun=15)then begin RS(10);DEAD;end;\r
-  31   :if(input='help')then begin RL(334);moveto(6)end;\r
-         end;  {of 7}\r
-\r
-8       :case verb of\r
-   48,58:if FlasOff then RL(14) else moveto(6);\r
-  43..52:if FlasOff then RL(14);\r
-  11:if(noun in [46,79])then RS(12)\r
-         else if(noun in [15,30])then RL(28);\r
-   38 :if(noun=46)then begin SA;writeln('It feels jagged.');end;\r
-         end; {of 8}\r
-\r
-9         :case verb of\r
-   43..52 :if FlasOff then RL(14)\r
-         else case verb of\r
-           46:moveto(6);47:moveto(10);49:moveto(11);\r
-              end;\r
-           end; {of 9}\r
-\r
-10        :case verb of\r
-   50,58 :if FlasOff then RL(14)\r
-         else moveto(9);\r
-   43..52:if FlasOff then RL(14);\r
-  19,2:if(noun in[17,80])then begin RL(0);DEAD;end;\r
-           end; {of 10}\r
-\r
-end {of case}\r
-else SA\r
-end; {of SP2}\r
-{-------------------}\r
-overlay procedure SpecialAnswers3;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-14       :case verb of\r
-   46,48 :if FlasOff then RL(14)\r
-          else if(verb=46)then moveto(11) else moveto(15);\r
-  43..52 :if FlasOff then RL(14);\r
-          end; {of 14}\r
-\r
-15     :case Verb of\r
-   52,2 :if(en('d'))and(en('t'))then\r
-           begin RL(63);moveto(16);end else RL(64);\r
-  19   :RL(64);\r
-  7    :RL(65);\r
-  14    :if(noun in[57,70])then begin inven:=inven+[noun];r[noun]:=Null;\r
-           if(noun=70)then Ev:=Ev-['d']\r
-           else Ev:=Ev-['t'];SA;writeln(n[noun,1],':  Taken.');end;\r
-  45,49  :if(flasoff)then RL(14) else moveto(14);\r
-   44    :RL(73);\r
-  24,11:if(noun=17)and not(en('u'))then RL(74)\r
-           else if(noun=17)and(en('a'))then RL(75);\r
-  17,36,29,9:case noun of\r
-   70:if((noun2 in[30,42])or(noun2=Null))and(verb<>9)then\r
-         if not(en('d'))then\r
-          begin RL(69);Ev:=Ev+['d'];r[70]:=Prm;inven:=inven-[70];end\r
-         else RL(67)\r
-        else if(verb=9)then begin end else RL(66);\r
-   57:if(noun2=17)and(verb<>17)then begin\r
-          if(here(ropecon))and(ropecon<>57)then begin\r
-            RL(71);inven:=inven-[57];r[57]:=Prm;\r
-            if(ropecon=70)then Ev:=Ev+['t'];end\r
-          else begin RL(70);vanish(57); end;\r
-         end else begin end\r
-   else if(verb in[9,29,36])and(noun2=17)and(noun in mov)then\r
-         if(here(ropecon))and(noun=ropecon)then begin RL(76);\r
-          inven:=inven-[noun];r[noun]:=Null;\r
-          if(ropecon=29)then Ev:=Ev+['u'];end\r
-         else begin RL(72);inven:=inven-[noun];r[noun]:=17;end\r
-      end;{of noun case}\r
-         end;{of 15}\r
-\r
-16       :case verb of\r
-   51,2   :moveto(15);\r
-   52    :RL(85);\r
-  0,3..18,20..21,26..40,42,53,55,56,60:RL(86);\r
-   19,61:begin RS(18);Ev:=Ev-['a'];Ev:=Ev+['r'];Sc:=Sc+60;\r
-          moveto(17);dropall;if(here(2))then begin r[2]:=Null;\r
-          r[51]:=Prm;end;r[57]:=Null;end;\r
-         end;{of 57}\r
-\r
-end  {of Case}\r
-else SA\r
-end; {of SP3}\r
-{-------------------}\r
-overlay procedure SpecialAnswers4;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-19      :case verb of\r
-   48,51,58:if(flasoff)then RL(14)else begin RL(311);moveto(18);end;\r
-   47,52,57:if(flasoff)then RL(14)else begin RL(309);moveto(20);end;\r
-         end;{of stairs}\r
-\r
-20      :case verb of\r
-   50,51,58:if(flasoff)then RL(14)else begin RL(310);moveto(19);end;\r
-   11,24,25,23:if(noun=67)then RL(90)\r
-     else if(noun in[12,43])and not(en('E'))then begin RL(92);\r
-            r[32]:=20;Sc:=Sc+15;Ev:=Ev+['E'];end;\r
-  14,38:if(noun in[67,12])then RL(91);\r
-  43..49,57:if(noun=Null)or(noun in[12,43])then RL(215);\r
-        end;{of 20}\r
-\r
-21       :case verb of\r
-    50   :if(flasoff)then RL(14)else moveto(18);\r
-    47   :if(flasoff)then RL(14)else moveto(22);\r
-   2,51:if(flasoff)then RL(14)else\r
-            if(noun=64)or(noun=Null)then moveto(23);\r
-    45   :RL(97);\r
-    49,44,43:RL(258);\r
-  11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
-        end;\r
-\r
-22       :case verb of\r
-    50   :if(flasoff)then RL(14)else moveto(21);\r
-    2,51 :if(flasoff)then RL(14)else\r
-            if(noun=64)or(noun=Null)then moveto(23);\r
-    44   :RL(97);\r
-    47,45,49:RL(258);\r
-    11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
-        end; {of 22}\r
-\r
-23      :case verb of\r
-   46,50 :if(flasoff)then RL(14)else moveto(21);\r
-   43,48 :if(flasoff)then RL(14)else moveto(22);\r
-   44..49:RL(258);\r
-   26,27 :if(noun=26)then\r
-           if(en('l'))then Say(26,'open')\r
-           else begin RL(98);Ev:=Ev+['l'];p[23]:=p[23]+[69];end;\r
-    3    :if(noun=26)then\r
-           if(en('l'))then begin RL(171);Ev:=Ev-['l'];p[23]:=p[23]-[69];end\r
-           else Say(26,'closed');\r
-  2,52,57:if(en('l'))and((noun=69)or(noun=Null))then moveto(24)else RL(99);\r
-  24,25  :if(noun=26)then RL(151);\r
-   11    :if(noun=26)then if(en('l'))then RL(217)else RL(218)\r
-          else if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
-        end; {of 23}\r
-\r
-24      :case verb of\r
-   51,58:if(en('l'))then moveto(23) else RL(99);\r
-   52,57:moveto(25);\r
-  24,25 :if(noun=26)then RL(151);\r
-   3    :if(noun=26)then begin RL(171);Ev:=Ev-['l'];end else\r
-         if(noun=55)then RL(411);\r
-   2    :if(noun=69)then Moveto(25);\r
-   26   :if(noun=26)then begin RL(98);Ev:=Ev+['l'];end else\r
-         if(noun=55)then RL(412);\r
-   11   :if(noun=26)then if(en('l'))then RL(217)else RL(218)else\r
-         if(noun=55)then RL(410);\r
-   27,28:If(noun=55)then RL(411);\r
-       end;\r
-\r
-end   {of case}\r
-else SA\r
-end;  {of SP4}\r
-{-------------------}\r
-overlay procedure SpecialAnswers5;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-25     :case verb of\r
-     43:begin writeln('The door slides open...');play(55,70,40);moveto(27);\r
-         writeln('The door slides shut behind you.');play(70,55,40);\r
-         if not(en('Y'))then begin Ev:=Ev+['Y'];Sc:=Sc+30 end end;\r
-     44:moveto(32); 45:moveto(30);\r
-     46:moveto(34); 47:moveto(28); 49:moveto(31);\r
-     48:if(en('v')and not(en('p')))then begin Verbose:=False;moveto(35);\r
-          RS(25);DEAD; end else moveto(35);\r
-     50:moveto(33); 51,58:moveto(24);\r
-     52,2:if(noun=69)or(noun=Null)then moveto(26);\r
-     17,27,28,38:if(noun=26)then\r
-          begin RL(413);play(55,70,45);play(69,54,45)end;\r
-   26,40:if(noun=26)then RL(414);\r
-        end;\r
-\r
-27      :case verb of\r
-   44,58:begin writeln('The door slides open...');play(55,70,40);moveto(25);\r
-          writeln('The door slides shut behind you.');delay(999);play(70,55,40)\r
-         end;\r
-     17,27,28,38:if(noun=26)then\r
-          begin RL(413);play(30,40,25);play(40,30,25)end;\r
-   26,40:if(noun=26)then RL(414);\r
-   11  :if(noun in[20,21])then RL(103)\r
-      else if(noun=58)then case compcon of\r
-        Null:RL(155); 1:RS(21); 2:RS(22); 3:RS(23);\r
-        4:begin RS(24);compcon:=Null;gotoxy(1,wherey-1);\r
-           writeln('. tim. chamb.r c.de: ',Code,'.. ..tel.port...  .  .',\r
-                   '... . .. ime .  p.n.l ....... ...');\r
-           RL(105);play(29,29,40);end;end;{of case}\r
-   53  :begin\r
-         if(input='1')or(input='one')then begin RL(104);compcon:=1;end;\r
-         if(input='2')or(input='two')then begin RL(104);compcon:=2;end;\r
-         if(input='3')or(input='three')then begin RL(104);compcon:=3;end;\r
-         if(input='4')or(input='four')then begin RL(104);compcon:=4;end;\r
-         for y:=1 to random(40)+9 do\r
-          begin x:=random(6000)+99;play(x,x,50);delay(9)end\r
-       end;\r
-   31   :if(compcon=null)then begin\r
-          play(9,999,0);sound(999);RS(20);play(999,9,0);if not(en('J'))then\r
-          begin Ev:=Ev+['J'];Sc:=Sc+40;end;end;\r
-       end;\r
-\r
-28     :case verb of\r
-   50,58:moveto(25);\r
-   45,57:moveto(29);\r
-   28   :if(noun in[33,10])then begin RL(137);play(31,31,450);end;\r
-       end;\r
-\r
-29    :case verb of\r
-   46,58:moveto(28);\r
-   36   :if(noun2 in[33,10])and(noun in Mov)then\r
-           if(en('M'))then\r
-             begin RS(27);Ev:=Ev-['M','r'];Vanish(noun);r[noun]:=28;\r
-               if not(en('N'))then begin Ev:=Ev+['N'];Sc:=Sc+55;end;\r
-             play(28,34,600)end\r
-           else begin Vanish(noun);r[noun]:=28;RL(179);\r
-             if(noun in[7,8,29,34,40,51])then Ev:=Ev+['M'];end;\r
-       end;\r
-\r
-33     :case verb of\r
-   47,58:moveto(25);\r
-    34  :RL(272);\r
-   28,38:if(noun=10)then begin RL(421);x:=random(9999);case random(3) of\r
-          0:play(x,random(9999),random(3));\r
-          1:for y:=1 to random(300)+60 do\r
-             begin x:=random(9999);play(x,x,2);delay(7)end;\r
-          2:begin y:=9999;o:=0;\r
-             repeat x:=random(9999);play(x,y,0);\r
-                    y:=random(9999);play(y,x,0);o:=o+1;\r
-             until o>7 end end end\r
-       end;\r
-\r
-end {of case}\r
-else SA\r
-end; {of SP5}\r
-{-------------------}\r
-overlay procedure SpecialAnswers6;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-30   :case verb of\r
-   46,58:if(en('e'))then RL(212) else moveto(25);\r
-   26,27,28,40:if(noun=49)then if(en('h'))then Say(49,'open') else RL(159)\r
-               else\r
-                if(noun in[10,76])and(verb=28)then\r
-                 begin\r
-                 if(MnRm=30)then begin RS(76);DEAD;end;\r
-                  if(en('e'))then\r
-                   begin RS(29);writeln;\r
-                    play(1,700,7);play(701,8000,1);Ev:=Ev-['e'];\r
-       case YearDial of\r
-              1933:begin Loc:='Civilization!';Sc:=Sc+80;RS(78);HOME;END;\r
-        2111..2679:begin\r
-                     Verbose:=False;moveto(41);RS(30);Verbose:=True;\r
-                     if not(en('O'))then begin Sc:=Sc+55;Ev:=Ev+['O'];end;\r
-               n[78,5]:=Q;n[37,5]:='glass';n[72,1]:='fence';\r
-               n[70,1]:='hooded figure';n[70,2]:='hooded';n[70,3]:='figure';\r
-               n[70,4]:='mutant';n[70,5]:=Q;n[3,1]:='footprints';\r
-               n[3,2]:='footpri';n[57,1]:='parachute';n[57,2]:='parachu';\r
-               n[35,1]:='boulder';n[35,2]:='rock';n[35,3]:='rocks';\r
-               n[66,4]:='red';\r
-                   end;\r
-        0..1111   :begin writeln;RS(31);DEAD;end;\r
-        1112..2110:begin writeln;RS(32);DEAD;end;\r
-        2680..3789:begin writeln;RS(33);DEAD;end\r
-             else  begin writeln;RS(34);DEAD;end;\r
-       end; {of YearDial case}\r
-                   end\r
-                  else begin RL(209);play(1,9999,0)end;\r
-                 end;\r
-   33   :if(noun in[16,59])or(noun=Null)then begin Ev:=Ev+['e'];RL(210);end;\r
-   35   :if(en('e'))then begin Ev:=Ev-['e'];RL(211);Attack:=False end;\r
-   17,0,6:if(noun=49)then RL(160);\r
-   53  :if(input=Code)then\r
-         If(en('h'))then Say(49,'open')\r
-         else\r
-          begin Ev:=Ev+['h'];RL(173);play(23,24,250);Sc:=Sc+30;\r
-            if(PanelCon<>Null)then begin r[PanelCon]:=30;Code:='R';\r
-             writeln('Sitting inside the panel compartment is a ',\r
-                      n[PanelCon,1],'.');end\r
-            else RL(183);\r
-          end\r
-        else RL(172);\r
-   3   :If(noun=49)then RL(159);\r
-   39  :if(noun=25)then RL(115) else\r
-        case noun of\r
-        24:if(DialNum>0)and(DialNum<377)then begin RL(176);DayDial:=DialNum;end\r
-           else RL(178);\r
-        82:if(DialNum>-1)and(DialNum<5000)then begin RL(177);\r
-             YearDial:=DialNum;end else RL(178);\r
-        end;\r
- 11,24:case noun of\r
-   49:begin SA;if(en('h'))then if(PanelCon=Null)then RL(183)\r
-                 else writeln('Inside the compartment is a ',n[PanelCon,1],'.')\r
-               else RL(184);end;\r
-   82:begin SA;writeln('The year dial is set to ',YearDial,'.');end;\r
-   24:begin SA;writeln('The day dial is set to ',DayDial,'.');end;\r
-   16:begin RL(203);RL(204)end;\r
-   25:RL(115);\r
-   38:RL(161);\r
-      end;\r
-       end; {of 30}\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP6}\r
-{-------------------}\r
-overlay procedure SpecialAnswers7;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-26     :case verb of\r
-  51,58,2:if(noun=69)or(noun=Null)then moveto(25);\r
-  43,48 :moveto(36); 44,49 :moveto(38); 45,47 :moveto(39); 46,50 :moveto(37);\r
-        end;\r
-\r
-35      :case verb of\r
-   49,58:moveto(25);\r
-  11:case noun of\r
-    54:RL(100);\r
-    62:if(en('v'))then RL(205)else RL(206);\r
-    end;\r
-  28  :if(noun in[55,10])then\r
-        if(en('v'))then begin RL(101);Ev:=Ev-['v'];play(40,65,80)end\r
-        else\r
-         begin RL(102); Ev:=Ev+['v'];play(65,40,80);\r
-          if not(en('p'))then begin RS(28);DEAD;end\r
-          else if(MnRm=35)then\r
-           begin n[23,1]:='melted monster';n[23,4]:='melted';MnRm:=Null;\r
-            RS(74);p[35]:=p[35]+[77];\r
-            if not(en('W'))then begin Sc:=Sc+65;Ev:=Ev+['W'] end\r
-           end\r
-         end;\r
-  14  :if(noun in[1,77])and(77 in p[35])then begin Sc:=Sc+10;noun:=77;end;\r
-  55  :if(noun=74)then\r
-        if(en('v'))then begin RS(26);DEAD end;\r
-  38 :RL(30);\r
-       end;\r
-\r
-36     :case verb of\r
-  44,49,58:moveto(26);\r
-    45  :moveto(39);\r
-    46  :moveto(37);\r
-    57  :if(noun=12)then RL(215);\r
-        end;\r
-\r
-37     :case verb of\r
-  45,47,58:moveto(26);\r
-    43  :moveto(36);\r
-    44  :moveto(38);\r
-    57  :if(noun=12)then RL(215);\r
-        end;\r
-\r
-38     :case verb of\r
-  43,48,58:moveto(26);\r
-    45  :moveto(39);\r
-    46  :moveto(37);\r
-    57  :if(noun=12)then RL(215);\r
-   0..99:if(noun=28)or(noun2=28)then\r
-          begin RS(35);RL(220);p[40]:=p[40]+[48];moveto(40);Ev:=Ev-['g'];\r
-           if(MnRm=Prm)then begin RS(79);DEAD end\r
-          end;\r
-        end;{of 38}\r
-\r
-39     :case verb of\r
-  46,50,58:moveto(26);\r
-    45  :if(en('g'))then moveto(40);\r
-    3   :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');\r
-    43  :moveto(36);\r
-    44  :moveto(38);\r
-    57  :if(noun=12)then RL(215);\r
-        end;\r
-\r
-40     :case verb of\r
-  46,58 :if(en('g'))then moveto(39) else RL(221);\r
-   26   :if(noun=26)then if(en('g'))then Say(26,'open') else RL(221);\r
-   3    :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');\r
-  11,14 :if(noun in[12,43,83])then RL(261);\r
-       end;\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP7}\r
-{-------------------}\r
-overlay procedure SpecialAnswers8;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-41     :case verb of\r
-    43  :moveto(42);\r
-    44  :moveto(43);\r
-  2,19  :if(noun in[53,73,87])then\r
-           begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
-       end;\r
-\r
-42     :case verb of\r
-    44  :moveto(41);\r
-    43  :RL(296);\r
-    14  :if(noun in[13,1])and(13 in p[42])then\r
-          begin Sc:=Sc+10;noun:=13;end;\r
-  2,19  :if(noun in[53,73,87])then\r
-           begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
-       end;\r
-\r
-43     :case verb of\r
-    43  :moveto(41);\r
-    44  :moveto(44);\r
-  2,19  :if(noun in[53,73,87])then\r
-           begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
-        end;\r
-\r
-44     :case verb of\r
-    43  :moveto(43);\r
-    46  :moveto(47);\r
-    45  :begin RL(274);Rx:=0;moveto(46);end;\r
-  43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
-       end;\r
-\r
-45     :case verb of\r
-    44  :moveto(49);\r
-    46  :begin RL(274);Rx:=8;moveto(46);end;\r
-    45  :begin Rx:=9;RL(274);moveto(46);end;\r
-  43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
-        end;\r
-\r
-46     :case verb of\r
-    45  :begin Rx:=Rx+1;RL(274);\r
-          if(Rx=9)then begin\r
-          if not(en('T'))then begin Ev:=Ev+['T'];Sc:=Sc+30;end;\r
-          moveto(45)end;\r
-          if(Rx>86)then begin RL(340);moveto(47)end\r
-         end;\r
-    46  :begin Rx:=Rx-1;RL(274);\r
-          if(Rx=8)then moveto(45);\r
-          if(Rx<1)then moveto(44);\r
-         end;\r
-  43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
-        end;\r
-\r
-47     :case verb of\r
-  46,52,2,19:begin if(random(2)=1)then begin RS(37);DropAll;moveto(48)end\r
-                   else begin RL(277);moveto(48)end;end;\r
-    45  :moveto(44);\r
-  43..50:RL(278);\r
-        end;\r
-\r
-48     :case verb of\r
-  45,51,2:if(random(3)=2)and(noun<>35)then begin RS(38);moveto(47)end\r
-          else if(noun<>35)then RL(279);\r
-   43..50:RL(279);\r
-     14  :if(noun in[27,1])and(27 in p[48])then\r
-           begin Sc:=Sc+20;noun:=27;end;\r
-     11 :if(noun=35)then RL(289)\r
-        end;\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP8}\r
-{-------------------}\r
-overlay procedure SpecialAnswers9;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-50     :case verb of\r
-  43,58 :begin RL(290);moveto(49);end;\r
-  44,57 :if(noun=Null)or(noun in[88,26,50])then\r
-          begin RS(41);if not(en('L'))then\r
-           begin Ev:=Ev+['L'];Sc:=Sc+25;end;moveto(51);end;\r
-    11  :case noun of\r
-          35,50:RL(292);\r
-          88,68:RS(42);\r
-          46,66:RS(43);\r
-         end;\r
-  30,28,38,17,14:if(noun=88)then RL(294);\r
-        end;\r
-\r
-51     :case verb of\r
-    44  :moveto(52);\r
-    46  :moveto(52);\r
-    48  :moveto(53);\r
-        end;\r
-\r
-52     :case verb of\r
-    43  :moveto(51);\r
-    47  :moveto(53);\r
-    46  :moveto(51);\r
-        end;\r
-\r
-53     :case verb of\r
-   52,2,57:if(noun=Null)or(noun=69)then begin if not(en('Q'))then\r
-            begin Ev:=Ev+['Q'];Sc:=Sc+30;end;moveto(55);end;\r
-    47  :moveto(52);\r
-    45  :moveto(53);\r
-    49  :moveto(54);\r
-        end;\r
-\r
-54     :case verb of\r
-    43  :moveto(52);\r
-    49  :moveto(53);\r
-    44  :moveto(51);\r
-    50  :begin if not(en('R'))then\r
-          begin Ev:=Ev+['R'];Sc:=Sc+20;end;moveto(56);end;\r
-        end; {verb case}\r
-\r
-55     :case verb of\r
-  51,2,58,44:if(noun=Null)or(noun=69)then moveto(53);\r
-   11   :if(noun in[11,45])then\r
-          begin RL(297);if(en('k'))then RL(298) else RL(299)end;\r
-   26,40:if(noun in[45,26,11,68])and(noun2=27)and(SepWord='with')then\r
-           if not(en('k'))then\r
-            begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do\r
-             if(o in cabiset)then r[o]:=55;\r
-             if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;\r
-            end\r
-           else Say(11,'open')\r
-          else if(SepWord='s')then RL(317);\r
-   29   :if(noun=27)and(noun2 in[45,26,11,68])and(SepWord='in')then\r
-          if not(en('k'))then\r
-           begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do\r
-            if(o in cabiset)then r[o]:=55;\r
-            if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;\r
-           end\r
-          else RL(216);\r
-   3    :if(noun in[45,26,11])then\r
-          if(en('k'))then\r
-           begin RL(314);play(30,32,30);Ev:=Ev-['k'];\r
-            for o:= 2 to NMax do if(o in cabiset)then r[o]:=Null;\r
-           end\r
-          else Say(11,'shut & locked');\r
-  24,30 :if(noun in[26,11])then\r
-          if(en('k'))then\r
-           begin RL(324);\r
-            if(cabiset=[])then RL(339)else\r
-             for o:=0 to NMax do if(o in Cabiset)then writeln('a ',n[o,1])\r
-           end\r
-          else RL(299);\r
-       end; {of 55}\r
-\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP9}\r
-{-------------------}\r
-overlay procedure SpecialAnswers10;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-56     :case verb of\r
-    47  :moveto(54);\r
-  2,51,58:if(noun=Null)or(noun=69)then moveto(57);\r
-        end;\r
-\r
-57     :case verb of\r
-   46,57,2,33:if(noun=Null)or(noun=65)then\r
-          begin n[68,1]:='keyhole';n[68,4]:='slot';moveto(58)end;\r
-   52   :moveto(56);\r
-        end;\r
-\r
-58     :case verb of\r
-   45,58:moveto(57);\r
-   43..51,20:if(en('i'))and(en('j'))and KeyHole then\r
-         begin sound(38);RS(61);ShRm:=2;moveto(59);sound(20);\r
-         for o:=0 to NMax do if(r[o]=58)then r[o]:=59;\r
-         if not(en('S'))then begin Ev:=Ev+['S'];Sc:=Sc+60 end end else RL(325);\r
-   28   :if(noun=10)then noun:=81;\r
-   11   :if(noun=68)then if KeyHole then RL(336)else RL(404);\r
-        end;\r
-\r
-65     :case verb of\r
-   43,47:moveto(66);\r
-   44,49:moveto(68);\r
-   45,57:begin if not(en('w'))then begin Ev:=Ev+['w'];RL(346);end\r
-               else begin RL(347);DEAD end end;\r
-   46..50:moveto(63);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end;\r
-\r
-66     :case verb of\r
-    43  :RL(343);\r
-  46,50 :moveto(65);\r
-  45,49 :moveto(67);\r
-    47  :moveto(64);\r
-    48  :moveto(63);\r
-  57,44 :begin sound(25);if not(en('V'))then begin Ev:=Ev+['V'];Sc:=Sc+30;end;\r
-          RS(67);writeln;moveto(69);nosound;\r
-         end;\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end; {of 66}\r
-\r
-67     :case verb of\r
-    46  :begin RL(347);DEAD;end;\r
-  43,48 :moveto(66);\r
-  44,50 :moveto(68);\r
-  45..49:moveto(64);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end; {of 67}\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP10}\r
-{-------------------}\r
-overlay procedure SpecialAnswers11;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-63     :case verb of\r
-   45   :moveto(65);\r
-   47   :moveto(66);\r
-   49   :moveto(68);\r
-  43..50:RL(343);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end;\r
-\r
-64     :case verb of\r
-   46   :moveto(67);\r
-   48   :moveto(66);\r
-   50   :moveto(68);\r
-  43..50:RL(343);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end;\r
-\r
-68     :case verb of\r
-    43  :begin RL(347);DEAD;end;\r
-    44  :RL(343);\r
-    50  :moveto(63);\r
-    49  :moveto(64);\r
-  46,48 :moveto(65);\r
-  45,47 :moveto(67);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(38);RL(344);delay(999);sound(20)end;\r
-    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end;\r
-\r
-69     :case verb of\r
-  28,27 :if(noun in[10,21,81,36])then RL(351);\r
-   11   :if(noun in[10,21,81,36,20,25])then RL(352)else\r
-         if(noun=65)then RL(353);\r
-  43,58 :moveto(70);\r
-        end;\r
-\r
-70     :case verb of\r
-  44,57,2,33:if(noun=Null)or(noun=65)then moveto(69)else\r
-         if(noun in[69,50])then moveto(71);\r
-  43,47,48:RL(354);\r
-  49,52 :moveto(71);\r
-    11  :if(noun=65)then RL(353)\r
-         else if(noun=68)then if KeyHole then RL(336)else RL(404);\r
-       end;\r
-\r
-71     :case verb of\r
-  48,51,58:moveto(70);\r
-    45  :moveto(72);\r
-    11  :if(noun=58)then RL(386)else\r
-         if(noun=25)then RL(418);\r
-   28,27:if(noun in[10,36])then begin RL(387);\r
-          for o:=1 to random(12)+4 do play(random(250),random(250),random(30))\r
-         end;\r
-    39  :if(noun=25)then begin RL(387);\r
-          for o:=1 to random(99)+75 do\r
-           begin x:=random(9999);play(x,x,random(19)+10);delay(5)end\r
-         end\r
-        end;{ of 71}\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP11}\r
-{-------------------}\r
-overlay procedure SpecialAnswers12;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-11      :case verb of\r
-   5,45,47,48,50:if FlasOff then RL(14)\r
-          else case verb of\r
-          48:moveto(9);47:moveto(13);\r
-          5:if(29 in inven)or(40 in inven)or(2 in inven)then\r
-                    RL(58)\r
-                  else begin RL(18); moveto(12);end;\r
-          50:RL(17);\r
-          45:if(en('C'))then moveto(14) else RL(144);\r
-            end;\r
-   31   :if(input='nepo egassap')and not(en('C'))then\r
-             begin Ev:=Ev+['C']; RS(11);Sc:=Sc+35;end;\r
-  11 :if(noun in [79,72])then if(en('C'))then RL(270)else RS(13);\r
-  27,28:if(noun in [79,72])then RL(26);\r
-  17,0,6:if(noun in [79,72])then RL(27);\r
-  38  :if(noun in [79,72])then RL(30);\r
-          end; {of 11}\r
-\r
-12     :case verb of\r
-  4,47 :if FlasOff then RL(14)\r
-           else case verb of\r
-             4:begin RL(18); moveto(11);end;\r
-               47   :RL(17);\r
-                end;\r
-  43..52  :if FlasOff then RL(14);\r
-   14  :if(noun in[70,1])and not(en('G'))then\r
-         begin noun:=70;Ev:=Ev+['G'];Sc:=Sc+40;end;\r
-   7   :if not(en('G'))then begin Ev:=Ev+['G'];RL(157);\r
-          FlagSA:='r';verb:=14;noun:=70;Sc:=Sc+40;end;\r
-          end; {of 12}\r
-\r
-13      :case verb of\r
-   50    :if flasoff then RL(14)\r
-            else begin moveto(11); Ev:=Ev-['q'];end;\r
-   43    :if(en('q'))then begin RL(24); DEAD;end\r
-            else begin RL(23); Ev:=Ev+['q'];end;\r
-   52,19,33:RL(42);\r
-  14    :if(noun=47)then RL(25);\r
-  9   :begin RL(68);vanish(noun);end;\r
-          end;{of 13}\r
-\r
-17       :case verb of\r
-   51,19,2:RL(15);\r
-   45    :if(flasoff)then RL(14)else moveto(18);\r
-          end;\r
-\r
-18      :case verb of\r
-   46    :if(flasoff)then RL(14)else moveto(17);\r
-  49,52  :if(flasoff)then RL(14)else begin RL(308);moveto(19);end;\r
-   47    :if(flasoff)then RL(14)else\r
-           if not(en('F'))then begin RS(19);writeln;moveto(21);\r
-            Ev:=Ev+['F'];Sc:=Sc+10;end\r
-           else moveto(21);\r
-  11     :if(noun in[79,50])then RL(254);\r
-         end;{of 18}\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP12}\r
-{-------------------}\r
-overlay procedure SpecialAnswers13;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-2         :case verb of\r
-   46     :moveto(1);\r
-   45, 44 :RL(1);\r
-   19,2   :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;\r
-  14,27 :if noun=14 then RL(2)else\r
-         if(noun in[1,40])and(40 in p[2])then\r
-            begin noun:=40;Sc:=Sc+10;Verb:=14;RL(417);FlagSA:='r' end;\r
-   11   :if(noun in[66,46])then RL(11);\r
-   26   :if noun=14then RL(13);\r
-         end;\r
-\r
-31     :case verb of\r
-   48,58:moveto(25);\r
-   14   :if not(en('I'))and(noun in[7,1])then\r
-           begin Ev:=Ev+['I'];noun:=7;Sc:=Sc+5 end;\r
- 23,24,11:if(noun=84)then RL(152)else\r
-          if(noun=22)then RL(415);\r
-       end;\r
-\r
-32     :case verb of\r
-   43,58:moveto(25);\r
- 11,23  :case Noun of\r
-          61:if(en('H'))then RL(153) else begin Ev:=Ev+['H'];r[34]:=32;\r
-               RL(154);Sc:=Sc+15;end;\r
-         end;{of Noun case}\r
-       end;\r
-\r
-34    :case verb of\r
-   45,58:moveto(25);\r
-   14   :if(noun=74)and(74 in P[34])then begin P[34]:=P[34]-[74];\r
-           inven:=inven+[74];RL(138);Sc:=Sc+25;end;\r
-   42   :if(noun=74)and(74 in P[34])then RL(175);\r
-   28,27:if(noun in[10,36])then begin RL(387);\r
-          for o:=1 to random(12)+4 do play(random(250),random(250),random(30))\r
-         end;\r
-   39   :if(noun=25)then begin RL(387);\r
-          for o:=1 to random(99)+75 do\r
-           begin x:=random(9999);play(x,x,random(19)+10);delay(5)end\r
-         end;\r
-   11   :case noun of\r
-          0:RL(139);\r
-          25:RL(418);\r
-          21:begin;RL(140);RL(141);end;\r
-          68:if(SlotCon=Null)then RL(143) else\r
-              begin SA;writeln('The slot contains a ',n[SlotCon,1],'.')end;\r
-          58:if(SlotCon=77)and not(en('x'))then\r
-              begin Ev:=Ev+['x'];Sc:=Sc+5;RS(75)end\r
-             else if(SlotCon=77)then RS(77)else RL(385)\r
-         end\r
-       end;\r
-\r
-0         :case verb of\r
-   45     :MoveTo(1);\r
-   44     :begin TextColor(m8);writeln('Casino Hall');TextColor(m2);RS(0)end;\r
-  19,2    :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;\r
-  11    :if(noun=73)then RL(19);\r
-         end;\r
-\r
-1        :case verb of\r
-   46     :moveto(0);\r
-   45     :moveto(2);\r
-   43,57  :moveto(3);\r
-   6,17   :if(noun=57)and(here(40))and((noun2=40)or(noun2=Null))then\r
-           begin RS(16);Sc:=-500;\r
-            Loc:='Locked Cabin';Verbose:=True;inven:=[];KitSet:=KitSet-[57];\r
-            n[57,1]:='plastic card';n[57,2]:='card';n[57,3]:='plastic';\r
-            n[57,4]:='elevato card';n[57,5]:='elevato';r[57]:=76;moveto(76)\r
-           end;\r
- 33,19,2  :if(noun in[6,53,64])then moveto(3)\r
-          end;\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP13}\r
-{-------------------}\r
-overlay procedure SpecialAnswers14;\r
-\r
-begin\r
-FlagSA:='r';\r
-if Present then\r
-Case Prm of\r
-\r
-49     :case verb of\r
-    43  :moveto(45);\r
-  44,57 :begin RL(290);moveto(50);n[36,1]:='lever';n[36,2]:='handle';end;\r
-  45..50:RL(291);\r
-    11  :if(noun in[26,50])then RL(292);\r
-    2   :if(noun=72)then RL(312);\r
-    11  :if(noun=72)then RL(313);\r
-        end;\r
-\r
-59     :case verb of\r
-   43..50:begin o:=random(8)+3;writeln('You travel about ',o,' miles...');\r
-           if(random(4)=2)then ShRm:=13 else ShRm:=Random(15);moveto(59)end;\r
-   52,57:RL(341);\r
-    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
-    51  :begin sound(30);\r
-          if not(en('U'))then begin RS(64);writeln;Ev:=Ev+['U'];Sc:=Sc+45;end\r
-          else RL(349);moveto(63);sound(20)end;\r
-    14  :if(noun=63)then begin RS(65);DEAD;end;\r
-    28  :if(noun=10)then noun:=81;\r
-        end; {of case 59}\r
-\r
-72     :case verb of\r
-    46  :moveto(71);\r
-  43,44,58:moveto(73);\r
-    45  :moveto(74);\r
-        end;\r
-\r
-73     :case verb of\r
-  43,45,58:moveto(72);\r
-    46  :moveto(73);\r
-    44  :begin moveto(74);if(MnRm=Null)then RL(356);end;\r
-        end;\r
-\r
-74     :case verb of\r
-  43,45 :moveto(73);\r
-  46,58 :moveto(74);\r
-    44  :if(MnRm=Null)then begin Verbose:=False;Moveto(75);Verbose:=True;\r
-          RS(69);MnRm:=75;Attack:=False end else moveto(75);\r
-        end;\r
-\r
-75     :case verb of\r
-  43,58 :moveto(74);\r
-   11   :if(noun in[14,61])then RL(364);\r
-        end;\r
-\r
-76     :case verb of\r
-   43   :RL(114);\r
-   11   :if(noun=26)then RL(271)else\r
-         if(noun=57)then RL(408);\r
-        end;\r
-\r
-end  {of case}\r
-else SA\r
-end; {of SP14}\r
-{===================}\r
-procedure ScreenDraw_PlayerInput;\r
-  begin\r
-   gotoxy(1,23);writeln;TextColor(m5);write(chr(175),' ');\r
-   Window(1,1,80,25);\r
-   gotoxy(1,1);textcolor(m4);TextBackGround(m6);\r
-   gotoxy(10,1); writeln(Tic,'  '); gotoxy(75,1); writeln(Sc,' ');\r
-   gotoxy(35-(length(Loc)div 2),1);writeln('     ',Loc,'     ');\r
-   gotoxy(3,25);TextBackGround(0);Window(1,2,80,25);\r
-   textcolor(m1);BufLen:=77;\r
-   if(Loc<>'Civilization!')then READLN(LINE)else repeat;until false;\r
-   if(Line='r')or(Line='repeat')then Line:=Again\r
-   else Again:=Line;\r
-   gotoxy(1,23);TextColor(m3);writeln(chr(175));TextColor(m2);\r
-  end;\r
-{-------------------}\r
-\r
-\r
-BEGIN\r
-clrscr;\r
-assign0;\r
-assign1;assign2;assign3;assign4;assign5;assign6;assign7;assign8;\r
-Initialize;\r
-\r
-                            {*****} repeat {*****}\r
-\r
-if Skip then Time; writeln;\r
-\r
-if(length(Line)=0)then begin\r
- ScreenDraw_PlayerInput;\r
- while pos(' then ',Line)>0 do\r
-  begin x:=pos('then ',Line);delete(Line,x,4);insert('.',Line,x)end;\r
- LowerCase(Line);\r
- Format(Line);\r
- Chop(Line);\r
-end;\r
-if(pos('.',Line)>0)then begin\r
-  Input:=copy(Line,1,pos('.',Line));\r
-  delete(Line,1,pos('.',Line));\r
-  delete(Input,pos('.',Input),1);\r
-end else\r
- begin\r
-  Input:=Line;\r
-  Line:=''\r
- end;\r
-Input:=Input+' ';\r
-while pos(' it ',Input)>0 do\r
- begin x:=pos(' it ',Input)+1;delete(Input,x,2);insert(LastNoun,Input,x);\r
- Format(Input);Chop(Input)end;\r
-if(Input[length(Input)]=' ')then delete(Input,length(Input),1);\r
-\r
-\r
-\r
-Check(SepWord);\r
-\r
-if Flag = 'g' then\r
-  begin\r
-    case Prm of\r
-      3..4                :SpecialAnswers1;\r
-      5..10               :SpecialAnswers2;\r
-      14..16              :SpecialAnswers3;\r
-      19..24              :SpecialAnswers4;\r
-      25,27..29,33        :SpecialAnswers5;\r
-      30                  :SpecialAnswers6;\r
-      26,35..40           :SpecialAnswers7;\r
-      41..48              :SpecialAnswers8;\r
-      50..55              :SpecialAnswers9;\r
-      56..58,60..62,65..67:SpecialAnswers10;\r
-      63,64,68..71        :SpecialAnswers11;\r
-      11..13,17,18        :SpecialAnswers12;\r
-      0..2,31,32,34       :SpecialAnswers13;\r
-      49,59,72..76        :SpecialAnswers14\r
-    end;\r
-\r
-    if FlagSA <> 's' then\r
-      case Verb of\r
-       11,18,22,41,43..52,57,58    :DefaultAnswers1;\r
-       29                          :DefaultAnswers2;\r
-       1,2,8,12,13,15,16,19,21,\r
-        23..25,31,33,34,38,40,60,63:DefaultAnswers3;\r
-       3,6,7,20,30,35,53..56,59    :DefaultAnswers4;\r
-       9,26                        :DefaultAnswers5;\r
-       27,28,62                    :DefaultAnswers6;\r
-       14,64,4,5                   :DefaultAnswers7;\r
-       0,10,17,42,39               :DefaultAnswers8;\r
-       32                          :DefaultAnswers9;\r
-       36,37,61,65                 :DefaultAnswers10;\r
-      end;\r
-  end;\r
-\r
-                         {*****} until False {*****}\r
-\r
-END. {of program}\r
-\1a\r
+{$mode objfpc}
+
+{//-------------------------------------------------------------------------}
+{/*                                                                         }
+{Copyright (C) 2014 Jason Self <j@jxself.org>                               }
+{                                                                           }
+{This file is free software: you may copy, redistribute and/or modify it    }
+{under the terms of the GNU Affero General Public License as published by   }
+{the Free Software Foundation, either version 3 of the License, or (at your }
+{option) any later version.                                                 }
+{                                                                           }
+{This file is distributed in the hope that it will be useful, but WITHOUT   }
+{ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      }
+{FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License}
+{for more details.                                                          }
+{                                                                           }
+{You should have received a copy of the GNU Affero General Public License   }
+{along with this program; if not, see https://gnu.org/licenses or write to: }
+{  Free Software Foundation, Inc.                                           }
+{  51 Franklin Street, Fifth Floor                                          }
+{  Boston, MA 02110-1301                                                    }
+{  USA                                                                      }
+{                                                                           }
+{This file incorporates work covered by the following copyright and         }
+{permission notice:                                                         }
+{                                                                           }
+{Copyright (C) 1990, 2009 - Apogee Software, Ltd.                           }
+{                                                                           }
+{This file is part of Beyond The Titanic. Beyond The Titanic is free        }
+{software; you can redistribute it and/or modify it under the terms of the  }
+{GNU General Public License as published by the Free Software Foundation;   }
+{either version 3 of the License, or (at your option) any later version.    }
+{                                                                           }
+{This program is distributed in the hope that it will be useful, but WITHOUT}
+{ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      }
+{FITNESS FOR A PARTICULAR PURPOSE.                                          }
+{                                                                           }
+{See the GNU General Public License for more details.                       }
+{                                                                           }
+{You should have received a copy of the GNU General Public License          }
+{along with this program; if not, write to:                                 }
+{  Free Software Foundation, Inc.                                           }
+{  51 Franklin Street, Fifth Floor                                          }
+{  Boston, MA 02110-1301                                                    }
+{  USA                                                                      }
+{                                                                           }
+{Original Source: 1990 Scott Miller                                         }
+{Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }
+{*/                                                                         }
+{//-------------------------------------------------------------------------}
+{****************************************************************************}
+{*                          BEYOND THE TITANIC                              *}
+{*    Written by Scott Miller with Turbo Pascal V.2.  Began May 12, '84.    *}
+{*                           Shareware Version                              *}
+{*                             Copyright 1987                               *}
+{$C-,K-,V-,R-****************************************************************}
+
+{ Last modified: July 23, 1987 }
+
+uses crt,sysutils;
+const
+     Q        = '#';
+     VMax     = 65;
+     NMax     = 89;
+     RMax     = 76;
+     Null     = -1;
+
+type
+     ComSet         = set of 0..VMax;
+     CharSet        = set of Char;
+     PlayersObjects = set of 0..NMax;
+     Str14          = string[14];
+     Str80          = string[80];
+     Str240         = string[240];
+     SaveGame       = record
+       aInven,
+       aKitSet,
+       aCabiSet  :PlayersObjects;
+       aPanelCon,
+       aSlotCon,
+       aCompCon,
+       aRopeCon,
+       aTic,
+       aYearDial,
+       aPrm,
+       aMnRm,
+       aSc,
+       aShots,
+       aShRm,
+       aRx       :integer;
+       aEv       :CharSet;
+       aCode,
+       aLoc      :Str14;
+       aKeyHole  :boolean;
+      end;
+
+var
+     WordList       : file of Str14;
+     Things         : file of integer;
+     Objects        : file of PlayersObjects;
+     GameSave       : file of SaveGame;
+     DiskSave       : SaveGame;
+     Input,
+     Again,
+     Line           : Str80;
+     V{erb}         : array [0..VMax,1..5] of Str14;
+     N{oun}         : array [0..NMax,1..5] of Str14;
+     R{oom}         : array [0..NMax] of integer;
+     P{lace}        : array [0..RMax] of PlayersObjects;
+     RmSh           : set of 0..14;
+     OneWordCommands: Comset;
+     Mov{able},
+     Inven{tory},
+     KitSet,
+     CabiSet        : PlayersObjects;
+     Word,
+     LastNoun,
+     Drive,
+     Code,
+     Loc{ation},
+     SepWord        : Str14;
+     Rooms1, Rooms2,
+     Special1, Special2 : file of Str240;
+     Text1, Text2   : Str240;
+     Line1          : file of Str80;
+     Verb,
+     Noun, Noun2,
+     PanelCon,
+     RopeCon,
+     CompCon,
+     SlotCon,
+     RopeOld,
+     Tic,
+     YearDial,
+     DayDial,
+     Prm,  {Player Room}
+     MnRm, {Monster Room}
+     Sc{ore},
+     Shots,
+     DialNum,
+     Stuff,
+     ShRm, {Shuttle Room}
+     m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,
+     Rx, {deserted road}
+     Ox, {ocean bottom}
+     x, y, o        : integer;
+     Flag,
+     FlagSA         : char;
+     Ev{ent}        : CharSet;
+     Attack,
+     Skip,
+     Back,
+     KeyHole,
+     Verbose        : boolean;
+
+
+
+{$I AdParser.PAS}{  <--- Loads in sentence logic.    <*********************}
+
+
+{$I Commands.PAS}{  <--- Loads in misc. procedures.  <*********************}
+
+
+{$I WordList.PAS }{  <----- CALLS UP THE VERBS & NOUNS <*******************}
+
+
+{$I Objects.PAS }{   <----- CALLS UP THE VERBS & NOUNS <*******************}
+
+
+{===================}
+procedure DefaultAnswers1;
+var o : integer;
+begin
+
+CASE VERB OF
+
+22        :begin if(Prm in[59..68])then
+                  begin RmSh:=RmSh-[ShRm];RS(84)end;
+            if flasoff and (Prm in [6..24])then RL(54) else
+             if Verbose then DescribeRm
+              else begin Verbose:=true;DescribeRm;Verbose:=false;end;
+            if(23 in p[Prm])and(MnRm=Prm)then RL(357);
+            if Back then begin Attack:=False; Back:=False;end
+           end;
+
+18        :if inven=[] then RL(116)
+             else
+               begin
+                 writeln('You have in your possession...');
+                   for o:= 0 to NMax do
+                    begin
+                     if(o in inven)then
+                      if(o=74)then
+                       writeln('an ',n[o,1])else writeln('a ',n[o,1]);
+                     if(ropecon in inven)and(o=ropecon)then
+                      writeln('  The rope is tied to the ',n[o,1],'.');
+                     if(o=74)and(en('p'))then RL(174);
+                     if(o=89)and(en('i'))then RL(321);
+                    end;
+               end;
+
+11     :case noun of
+       60:Diagnose;
+       2:if(en('b'))then RL(198) else RL(199);
+       29:begin RL(89);if(en('a'))then RL(200) else RL(201);end;
+       57:if(ropecon<>Null)then
+            writeln('The rope is tied to the ',n[ropecon,1],'.')
+          else RL(133);
+       65:if(Prm in[59..68])then RS(84)else Line:='l';
+       8:RL(202);
+       7:RL(163);
+       70:RL(164);
+       52:RL(165);
+       74:RL(166);
+       23:RS(70);
+       32:RL(253);
+       13:RL(167);
+       22:RL(226);
+       1:if(Prm=42)and(13 in p[42])then RL(167);
+       21:RL(227);
+       9:if(Prm=49)then RL(228)else if(Prm>62)then RS(68)else RL(229);
+       69:RL(355);
+       77:RL(403);
+       37:RL(295);
+       27:RL(394);
+       89:RL(338);
+       18:if(Prm in[63..70])then RS(68)else RL(348);
+       46,66:If(Prm in[58,59,63,69])then begin
+       TextColor(12);RS(83);TextColor(m2)end;
+       87:RL(230);
+       84:RL(231);
+       34:begin RL(189);
+           if(Shots>0)then writeln('is about ',Shots*10,' percent full.')
+           else Writeln('is empty.')end;
+       15:if(84 in p[Prm])then RL(180)else If(71 in p[Prm])then RL(182)
+          else RL(181);
+    56,44:if(en('r'))then RL(51) else RL(52)
+       else if not(noun in[1,12,14,15,17,18,19,22,31,36,50,
+             54,67,69,73,79,80,84,87,88])and(random(3)=1)then
+            case random(3) of
+             0  :RL(407);
+             1  :writeln('Yea, it''s definitely a ',n[noun,1],'!');
+             2  :writeln('It looks like any other ',n[noun,1],'.');
+            end
+            else writeln('You see nothing special about the ',n[noun,1],'.')
+       end;
+
+41         :begin writeln('Time passes');y:=wherey;for o:=1 to 6 do
+              begin gotoxy(11+o,y-1);writeln('.');sound(o*99);delay(30)end;
+              if(Prm in[59..68])then sound(20)else nosound end;
+
+43..52     :if(Prm in[6..24])and(FlasOff)then RL(14)else
+             if(Prm=69)then RL(358)else RL(144);
+
+57,58      :begin Attack:=False;
+             if(Prm in[6..24])and(FlasOff)then RL(14)else RL(190);end;
+
+  end {of case}
+end;  {of DefaultAnswers1}
+{-------------------}
+procedure DefaultAnswers2;
+var o : integer;
+begin
+
+CASE VERB OF
+
+29    :if(noun in Mov)then
+        if(noun in inven)then
+         begin FlagSA:='r';
+          case Noun2 of
+        39:if(en('o'))then begin RL(186);Vanish(noun);
+            kitset:=kitset+[noun];r[noun]:=Prm;end
+           else RL(185);
+        68:if(Prm=34)then
+            if(SlotCon=Null)then begin RL(186);Vanish(noun);
+             SlotCon:=Noun;r[noun]:=Prm;end
+            else Say(68,'being used')
+           else
+            if(noun=63)and(Prm=58)then
+             begin RL(337);KeyHole:=True;r[63]:=Prm;inven:=inven-[63];end
+            else RL(327);
+        88:begin RL(293);vanish(noun);r[noun]:=random(4)+51;end;
+        47,53,73:if(Prm in[0..6,9,10,13,41..43])then
+           begin RL(307);vanish(noun);end;
+        11:if(en('k'))then begin RL(186);Vanish(noun);
+            CabiSet:=CabiSet+[noun];r[noun]:=Prm;end
+           else RL(187);
+        26:if(Prm=76)and(noun=57)then begin RL(409);Vanish(57)end;
+        49:if(PanelCon=Null)and(noun in[2,7,8,13,27,32,51,52,63,77])then
+            begin RL(186);Vanish(noun);PanelCon:=Noun;r[noun]:=Prm;end
+           else RL(188);
+        30:if(noun=70)then
+            if not(en('d'))then
+             begin Ev:=Ev+['d'];RL(69);Vanish(70);r[70]:=Prm;end
+            else Say(70,'in the dirt')
+           else Crazy
+          end;{of case}
+
+          if(FlagSA<>'s')then
+           begin
+            if(SepWord='to')then
+             if(noun2 in[4,6,9,11,14,16,22,30,50,59,61,64,65,69,75])then
+              begin RL(186);Vanish(noun);r[noun]:=Prm;end
+             else RL(197);
+            if(SepWord='at')or(SepWord='near')or(SepWord='behind')then
+             if(noun2 in[0,4,6,9,11,12,14,16,17,20..23,26,28,30,35,39,43,
+                         50,53,54,59,61,62,64..69,72,73,75,78..80])then
+              begin RL(186);Vanish(noun);r[noun]:=Prm;end
+             else RL(197);
+            if(SepWord='under')then
+             if(noun2 in[4,15,16,20,23,59,60,61,75])then
+              begin RL(186);Vanish(noun);r[noun]:=Prm;end
+             else RL(197);
+            if(SepWord='in')then
+             if(noun2 in[6,16,43,47,30,50,59,64,65,72,78,80,84])then
+              begin RL(186);Vanish(noun);r[noun]:=Prm;end
+             else RL(197);
+            if(FlagSA<>'s')then Crazy;
+           end
+          end
+         else writeln('First you must have the ',n[noun,1],'.')
+        else Crazy;
+
+  end {of case}
+end;  {of DefaultAnswers2}
+{-------------------}
+  procedure DefaultAnswers3;
+var o : integer;
+begin
+
+CASE VERB OF
+
+31,63      :if(Verb=63)and(Prm<>MnRm)then RL(395)
+            else
+             if(Prm=MnRm)then
+              begin Attack:=False;
+               if(input='hi')or(input='hello')or(input='bye')then RL(396)else
+               if(copy(input,1,6)='follow')then RL(397)else
+                case random(5) of
+                 0:RL(365);1:RL(398);2:RL(399);3:RL(400);4:RL(401)
+                end
+              end
+             else RL(123);
+
+33         :RL(124);
+
+38         :case noun of
+             83:RL(262);
+             23:begin RL(366);DropAll;Ev:=Ev+['r'];Attack:=False end
+             else RL(125);
+            end;
+
+16         :if(MnRm=Prm)then begin Attack:=False;RL(372)end else
+            if(en('r'))then RL(373)else
+            if(Prm<15)and(70 in p[12])then RL(374)else  RL(371);
+
+19         :if(noun=Null)then RL(136)else Crazy;
+24         :if(noun=7)then RL(422)else
+            if(noun in[26,6,7,22,36,17,50,65,73,74,80,79,30,84])then RL(126)
+            else Crazy;
+21         :RL(127);
+40         :Crazy;
+
+8          :if(noun in[73,80])or(noun=Null)then
+             if(noun<>Null)then RL(36)
+             else if(here(73))or(here(80))then RL(36)else RL(37)
+            else RL(53);
+
+12         :RL(38);
+2          :if(noun in[4,35,39,8,11,12,14,20,21,30,57,43,59,67,70,75])then
+              RL(43)else RL(44);
+
+15         :if(noun in mov)then
+             if(sepword='to')then
+              if(noun2=23)then
+               begin RL(62);Vanish(noun);Attack:=False end
+              else Crazy
+             else RL(60)
+            else RL(61);
+
+1          :if(verbose)then
+              begin verbose:=false;RL(134);end
+             else begin verbose:=true;RL(135);end;
+
+13         :RL(77);
+23         :RL(78);
+
+60         :case noun of
+            43,12:RL(252);
+            35:RL(288)
+            else RL(78);
+            end;
+
+25         :if(Prm>62)and(Noun in[9,18,19,41])then RL(350)else RL(78);
+34         :RL(79);
+
+  end {of case}
+end;  {of DefaultAnswers3}
+{-------------------}
+  procedure DefaultAnswers4;
+var o : integer;
+begin
+
+CASE VERB OF
+
+20         :RL(81);
+35         :RL(82);
+
+6          :if(noun=23)and(here(40))then begin vanish(40);RL(84);end
+             else
+              if here(40)then
+               if(noun2=Null)or(noun2=40)then
+                case noun of
+                 57:RL(259);
+                 60:RL(260)
+                 else writeln('At the last moment you decide to spare',
+                       ' the ',n[noun,1],'''s life!')
+                end
+               else Crazy
+              else RL(83);
+
+30         :if(noun in [39,43,12,26,6,22,47,49,68,78,17,11,
+               50,65,73,74,80,79,30])then RL(93) else RL(94);
+
+54         :begin write('Would you like to SAVE your game first (Y or N)?  ');
+             flag:=ReadKey;if(upcase(flag)<>'N')then SAVE else writeln('No.');
+             write('Are you still sure you want to quit? ');
+             flag:=ReadKey;if(upcase(flag)='Y')then
+              begin RL(367);delay(999);window(1,1,80,25);clrscr;close(rooms1);
+               close(rooms2);close(special1);close(special2);close(line1);
+              HALT end else RL(264)end;
+53         :if(Prm in[27,30])then RL(123) else RL(145);
+59         :If(noun=23)then RL(368)else Diagnose;
+
+55         :if(noun=74)then
+              if(en('p'))then
+                begin Ev:=Ev-['p'];RL(169);end
+              else RL(168)
+            else
+            if(noun=89)then
+              if(en('i'))then
+                begin
+                 Ev:=Ev-['i'];RL(322);
+                 if(Prm in[59,63..68])then begin RS(66);DEAD;end;
+                end
+              else RL(323)
+            else Crazy;
+
+56     :if(noun=Null)or(noun in[60,23])or(noun in Mov)then
+         case noun of
+          23:RL(369);
+          60,Null:RL(193);
+          7:RL(194)
+          else RL(195);
+         end
+        else RL(196);
+
+3       :case noun of
+         7:RL(235);
+         2:if(en('b'))then RL(236)else RL(237);
+         62:RL(238);
+         65:RL(239);
+         74:RL(240);
+         78:RL(241);
+         84,40,50,68,85:RL(242)
+         else Crazy;
+        end;
+
+7      :begin if(noun=Null)then noun:=30;
+         if(noun in[30,36,47,50,71,72,79])then
+          case noun of
+           30,47,50,71:if(Prm in[5..22,44..49])then RL(247) else RL(248);
+           36:RL(249);
+           72:RL(250);
+           79:RL(251);
+          end
+         else Crazy;
+        end;
+
+
+  end   {of CASE.}
+end;    {of DefaultAnswers4}
+{-------------------}
+  procedure DefaultAnswers5;
+var o: integer;
+begin
+
+CASE VERB OF
+
+9         :if noun<>1 then
+             if(noun in Inven)then
+               if(noun=74)and(en('p'))then RL(170)
+          else if(noun=89)and(en('i'))then RL(335)
+          else begin
+                 inven:=inven-[noun];writeln(n[noun,1],': Dropped.');
+                 R[noun]:=Prm;
+               end
+             else
+               writeln('You don''t have the ',n[noun,1],'.')
+           else
+             begin
+              if(74 in inven)and(en('p'))then RL(170)else
+              if(89 in inven)and(en('i'))then RL(335)else
+              DropAll;
+            end;
+
+26        :case noun of
+         2:if not(en('b'))then
+              begin
+                Ev:=Ev+['b'];
+                RL(3);end
+            else Say(noun,'peeled');
+         7:RL(162);
+        57:if(ropecon<>Null)then
+              begin
+                ropecon:=Null;
+                RL(117);end
+            else Say(noun,'untied');
+        62:RL(238)
+         else Crazy;
+         end; {end of OPEN }
+
+  end {of case}
+end;  {of DefaultAnswers5}
+{-------------------}
+  procedure DefaultAnswers6;
+var o : integer;
+begin
+
+CASE VERB OF
+
+28,27     :case noun of
+           23:RL(369);
+           29:if not(en('a'))then
+                begin Ev:=Ev+['a'];
+                RL(120);end
+              else begin Ev:=Ev-['a'];
+                RL(121);end;
+           57:if(ropecon<>Null)and not(ropecon in inven)
+                    and(r[ropecon]<>Prm)then
+                  if(ropecon in mov)then begin
+                    RL(57);writeln('...it''s a ',n[ropecon,1],'!');
+                    r[ropecon]:=Prm;Ev:=Ev-['u'];
+                    if(ropecon=29)and not(flasoff)then DescribeRm;end
+                  else RL(56)
+               else RL(122);
+           8:begin RL(243);RL(244);play(9999,3500,0);play(3499,2000,1);
+              play(1999,1000,2);play(999,200,5);play(199,8,16);Ev:=Ev+['e'];
+              n[36,5]:=Q;n[78,5]:='glass';n[68,1]:='slot';n[66,4]:=Q;
+              Ev:=Ev-['j'];
+              moveto(30);
+              if(MnRm=Prm)then RS(73);
+             end;
+           81:if not(en('j'))then
+               if KeyHole then
+                begin Ev:=Ev+['j'];RL(326);play(2000,2001,200);end
+               else RL(123)
+              else
+               begin Ev:=Ev-['j'];
+                if Keyhole then begin RL(326);play(2001,2000,200)end
+                else RL(123);
+                if(Prm in[59..68])then begin nosound;RS(62);DEAD;end;
+               end;
+           36:begin
+               if(Prm > 57)then if(Prm = 58)then RL(123)else
+                begin RS(63);DEAD;end;
+              end
+             else RL(122);
+           end; {of case}
+
+62         :begin write('You have ',Sc,' of 1000 points',
+                        ', giving you the rank of ');Tic:=Tic-1;
+              case Sc of
+              0..99:writeln('beginner.');
+              100..249:writeln('novice adventurer.');
+              250..399:writeln('adventurer third class.');
+              400..549:writeln('adventurer second class.');
+              550..699:writeln('adventurer first class.');
+              700..849:writeln('expert adventurer.');
+              850..999:writeln('master adventurer.')
+              else writeln('dead adventurer!')
+              end;
+            Attack:=False;
+            if(MnRm=Prm)then RL(370)
+            end;
+
+  end {of case}
+end;  {of DefaultAnswers6}
+{-------------------}
+  procedure DefaultAnswers7;
+var o : integer;
+begin
+
+CASE VERB OF
+
+14      :if(noun<>1)then
+          if(noun in Mov)then
+           if not(noun in inven)then
+            begin
+            Stuff:=0;
+            for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
+            if(Stuff < 6)then
+             if(en('r'))and(inven<>[])then RL(87)
+             else begin
+                   Vanish(Noun);inven:=inven+[noun];
+                   writeln(n[noun,1],': Taken.');
+                   if(noun=70)then Ev:=Ev-['d'];
+                  end
+            else RL(234)
+            end
+           else writeln('You already have the ',n[noun,1],'.')
+          else Crazy
+         else if(en('r'))then RL(88) else
+            begin flag:='0';Stuff:=0;
+             for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
+             if(Stuff < 7)then
+              for o:=0 to NMax do
+               begin
+                if r[o]=Prm then
+                 if(Stuff+1 < 7)then
+                  begin
+                   vanish(o);inven:=inven+[o];Stuff:=Stuff+1;
+                   writeln(n[o,1],':  Taken.');flag:='1';
+                   if(o=70)then Ev:=Ev-['d'];
+                  end
+                 else
+                  begin flag:='1';
+                  writeln(n[o,1],': You have too many objects already!');end
+               end
+             else RL(234);
+             if(flag='0')then RL(49)
+            end; {of 14}
+
+4,5       :RL(420);
+
+64        :SAVE;
+
+  end {of case}
+end;  {of DefaultAnswers7}
+{-------------------}
+  procedure DefaultAnswers8;
+var o : integer;
+begin
+
+CASE VERB OF
+
+10         :if(noun in [2,52])then
+              if(noun=2)then
+                if(en('b'))then begin
+                  RL(45); Ev:=Ev+['c'];inven:=inven+[51];
+                  Vanish(2);Sc:=Sc+10;end
+                else RL(46)
+              else begin RL(47);Ev:=Ev+['n'];Sc:=Sc+15;Vanish(52);end
+            else writeln('I don''t think the ',n[noun,1],
+                         ' would do much for your digestive system!');
+
+42         :case noun of
+            74:if not(en('p'))then
+                if not(en('i'))then
+                 begin RL(20);inven:=inven+[74];r[74]:=Null;Ev:=Ev+['p'];end
+                else RL(320)
+               else Say(74,'on');
+            89:if not(en('i'))then
+                if not(en('p'))then
+                 begin RL(319);vanish(89);inven:=inven+[89];Ev:=Ev+['i'];end
+                else RL(318)
+               else Say(89,'on your head')
+            else RL(128);
+            end;
+
+17,0       :if(noun2=Noun)then Crazy else
+            if(noun2 in Mov)or(Noun2=Null)then
+            case Noun of
+             2:begin RL(21);Vanish(2);Sc:=Sc+25;r[51]:=Prm;end;
+             60:begin RL(22);DEAD;end;
+             52:begin RL(34);Vanish(52);end;
+             23:if(noun2=null)then RL(369)
+                else begin Vanish(noun2);Attack:=False;
+                 writeln('The monster grabs the ',n[noun2,1],' and eats it!');
+                     end;
+             7:begin RL(35);Vanish(7);r[52]:=Prm;Ev:=Ev+['I'];end
+             else if(verb=0)then writeln('At the last moment you decide to',
+                 ' spare the ',n[noun,1],'''s life!')
+                  else RL(216);
+             end{of case}
+             else Crazy;
+
+39         :if((SepWord='to')or(SepWord='off'))and(Noun2=Null)then
+             case Noun of
+              29:if(SepWord='to')then begin Ev:=Ev+['a'];RL(120);end
+                 else begin Ev:=Ev-['a'];RL(121);end;
+              13:RL(148);
+              20:RL(149);
+              65:RL(150)
+             else Crazy end
+            else RL(80);
+
+  end {of case}
+end;  {of DefaultAnswers8}
+{-------------------}
+  procedure DefaultAnswers9;
+var o : integer;
+begin
+
+CASE VERB OF
+
+32    :if(34 in inven)then
+        if(shots>0)then
+         begin
+         Shots:=Shots-1;
+         for x:=1 to (26-(4*(6-Shots))) do
+            begin play(300,350,11-Shots*2);play(320,370,11-Shots*2);end;
+          if(noun=34)and(noun2<>34)and(noun2<>Null)and(SepWord='at')then
+             begin noun:=noun2; noun2:=34; SepWord:='with';end;
+          if((noun2=34)and(noun<>34)and(SepWord='with'))or
+            ((noun<>34)and(SepWord='s'))then
+      case noun of
+       1:begin;Crazy;Shots:=Shots+1;end;
+       2,7,8,13,27,29,32,40,51,52,63,74,77,89:begin vanish(noun);
+          writeln('The ',n[noun,1],' vanishes in an explosion of light!');
+            if(noun=74)and(en('p'))then begin RL(232);DEAD;end;
+         end;
+       48:begin RL(222);RL(223);Ev:=Ev+['g'];p[40]:=p[40]-[48];
+           if not(en('P'))then begin Ev:=Ev+['P'];Sc:=Sc+25;end;end;
+       12,26:RL(224);
+       23:begin case random(4)of 0:RL(375);1:RL(376);2:RL(377);3:RL(378)end;
+           Attack:=False;
+          end;
+       45:RL(315);
+       60,56,44:begin RL(233);DEAD;end
+       else writeln('A blinding ray strikes the ',n[noun,1],', but it is',
+                      ' only slightly blackened.');
+      end {of shoot case}
+          else if(noun=34)and(noun2=Null)then RL(213)
+          else begin;Crazy;Shots:=Shots+1;end;
+         end
+        else begin writeln('...click!');play(25,32,9);end
+       else RL(208);
+
+  end {of case}
+end;  {of DefaultAnswers9}
+{-------------------}
+  procedure DefaultAnswers10;
+var o : integer;
+begin
+
+CASE VERB OF
+
+36         :if(noun in mov)then
+             if(noun in inven)then
+              if((noun in[2,7,52,29])or
+                 (noun2 in[2,7,23,29,47,52,53,73,88]))and(noun<>noun2)then
+               begin
+                if(noun=2)or(noun2=2)then begin RL(95);vanish(2);
+                  r[51]:=Prm;end;
+                if(noun=7)or(noun2=7)then begin RL(35);vanish(7);
+                  Ev:=Ev+['I'];r[52]:=Prm;end;
+                if(noun=29)or(noun2=29)then begin RL(96);vanish(29);end;
+                if(noun=52)or(noun2=52)then begin RL(34);vanish(52);end;
+                if(noun2=88)then begin RL(293);vanish(noun);
+                  if(noun=2)then noun:=51;if(noun=7)then noun:=52;
+                  r[noun]:=random(4)+51;end;
+                if(Prm in[0..6,9,10,13,41..43])and(noun2 in[73,53,47])then
+                  begin RL(306);vanish(noun);end;
+                if(noun2=23)then begin Attack:=False;Vanish(noun);RL(379);
+                  writeln(n[noun,1],' out of mid-flight and eats it',
+                        ' in one giant gulp!')end;
+               end
+              else begin writeln('The ',n[noun,1],' collides with the ',
+                n[noun2,1],' but nothing interesting happens.');
+                Vanish(noun);r[noun]:=Prm;end
+             else writeln('First you must have the ',n[noun,1],'.')
+            else Crazy;
+
+37         :if(noun=57)then
+             if(sepword='to')then
+              if not(noun2 in[1,15,17,22,30,46,47,50,52,72,73,79,80,83])then
+               if(ropecon=Null)then begin
+                ropecon:=noun2;
+                writeln('The rope is firmly tied to the ',n[noun2,1],'.');
+                if(noun2=57)then RL(48);end
+               else writeln('It is already tied to the ',n[ropecon,1],'.')
+              else RL(50)
+             else Crazy
+            else Crazy;
+
+61         :begin RL(245);flag:=ReadKey;
+             if(upcase(flag)<>'N')then
+              begin RL(380);delay(999);window(1,1,80,25);clrscr;close(rooms1);
+               close(rooms2);close(special1);close(special2);close(line1);
+               assign(rooms1,'BEYOND.com');
+               {execute(rooms1)}
+               end
+             else RL(264)
+            end;
+
+65        :RESTORE;
+
+  end {of case}
+end;  {of DefaultAnswers10}
+{===================}
+  procedure SpecialAnswers1;
+
+begin
+FlagSA:='r';
+if Present then
+CASE Prm OF
+
+3       :case verb of
+  44,58 :moveto(1);
+  20,52 :if(noun=6)then RL(40);
+    14  :if(noun=57)and not(en('o'))then RL(419);
+   6    :if(noun=57)and(here(40))and((noun2=Null)or(noun2=40))then
+             begin
+               RS(4); tic:=15; moveto(4); Ev:=Ev+['A']; Sc:=Sc+25;
+               if(en('o'))then
+                 for o:= 0 to 57 do begin
+                   if(o in kitset)then r[o]:=Prm;
+                   if(r[o]=3)then r[o]:=Prm;end
+             end;
+   26   :if(noun=39)then
+             if not(en('o'))then
+               begin Ev:=Ev+['o'];RL(328); for o:=2 to 57 do
+                 if(o in kitset)then r[o]:=Prm;end
+             else Say(noun,'opened');
+   3  :if(noun=39)then
+             if(en('o'))then
+               begin Ev:=Ev-['o'];RL(186); for o:=2 to 57 do
+                 if(o in kitset)then r[o]:=Null;end
+             else Say(noun,'shut');
+  17,28,27 :if(noun in [6,57,39,59])then RL(29);
+  24,11   :case noun of
+       39  :if(en('o'))then
+               if kitset=[] then begin RL(329);end
+               else begin RL(330);for o:= 0 to 57 do
+                   if(o in kitset)then writeln(' a ',n[o,1]);end
+             else RL(331);
+       57 :RL(10);
+       73 :RL(19);
+       6 :DescribeRm;
+           end;
+         end; {of 3}
+
+4      :case verb of
+   43..52,20:RL(7);
+    55  :if(noun=35)then begin RL(332);Ev:=Ev-['B'];end;
+  42,3:if noun=35 then begin RL(8); Ev:=Ev+['B'];end
+           else if(noun=39)then
+             if(en('o'))then
+               begin Ev:=Ev-['o'];RL(186); for o:=0 to 57 do
+                 if(o in kitset)then r[o]:=Null;end
+             else Say(noun,'shut');
+  29,37 :if(noun=35)and(noun2=60)then begin
+             RL(8);Ev:=Ev+['B'];end;
+   26   :if(noun=35)and(en('B'))then begin RL(332);Ev:=Ev-['B'];end
+           else if(noun=39)then
+             if not(en('o'))then
+               begin Ev:=Ev+['o'];RL(328); for o:=0 to 57 do
+                 if(o in kitset)then r[o]:=Prm;end
+             else Say(noun,'opened');
+   19,2:if(noun in[6,64])or(noun=Null)then
+             if(en('B'))then RL(9)
+             else begin RL(0);DEAD;end;
+    24,11:case noun of
+       39  :if(en('o'))then
+               if kitset=[] then begin RL(329);end
+               else begin RL(330);for o:= 0 to 57 do
+                   if(o in kitset)then writeln(' a ',n[o,1]);end
+             else RL(331);
+       35 :RL(12);
+       73 :RL(19);
+       6 :DescribeRm;
+           end;  {of case}
+         end; {of 4}
+
+end {of case}
+else SA
+end; {of SP1}
+{-------------------}
+  procedure SpecialAnswers2;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+5       :case verb of
+   45   :moveto(6);
+   2    :if(noun=79)then RL(263);
+           end;
+
+6       :case verb of
+   46   :moveto(5);
+  43,44,45,47..52:if FlasOff then RL(14)
+         else case verb of
+           43:begin Ox:=0;RL(286);moveto(7);end;
+           45:moveto(9); 49:moveto(8);
+              end;
+             end; {of 6}
+
+7       :case verb of
+  23..25,11:if(noun in[6,36,73,0,15,64,67])then RS(9);
+  43..50 :if FlasOff then RL(14)
+          else
+           begin
+            If(Verb in[43,47,48])then Ox:=Ox+1;
+            If(Verb in[44,49,50])then Ox:=Ox-1;
+            if(Ox<1)then begin RL(286);moveto(6)end
+            else
+             begin
+              RL(333);
+              if(random(20)=2)then begin writeln;RS(9);
+               if not(en('K'))then begin Ev:=Ev+['K'];Sc:=Sc+15;end;end;
+             end;
+           end;
+  28,17,6:if(noun=36)or(noun=15)then begin RS(10);DEAD;end;
+  31   :if(input='help')then begin RL(334);moveto(6)end;
+         end;  {of 7}
+
+8       :case verb of
+   48,58:if FlasOff then RL(14) else moveto(6);
+  43..47,49..52:if FlasOff then RL(14);
+  11:if(noun in [46,79])then RS(12)
+         else if(noun in [15,30])then RL(28);
+   38 :if(noun=46)then begin SA;writeln('It feels jagged.');end;
+         end; {of 8}
+
+9         :case verb of
+   43..52 :if FlasOff then RL(14)
+         else case verb of
+           46:moveto(6);47:moveto(10);49:moveto(11);
+              end;
+           end; {of 9}
+
+10        :case verb of
+   50,58 :if FlasOff then RL(14)
+         else moveto(9);
+   43..49,51..52:if FlasOff then RL(14);
+  19,2:if(noun in[17,80])then begin RL(0);DEAD;end;
+           end; {of 10}
+
+end {of case}
+else SA
+end; {of SP2}
+{-------------------}
+  procedure SpecialAnswers3;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+14       :case verb of
+   46,48 :if FlasOff then RL(14)
+          else if(verb=46)then moveto(11) else moveto(15);
+  43..45,47,49..52 :if FlasOff then RL(14);
+          end; {of 14}
+
+15     :case Verb of
+   52,2 :if(en('d'))and(en('t'))then
+           begin RL(63);moveto(16);end else RL(64);
+  19   :RL(64);
+  7    :RL(65);
+  14    :if(noun in[57,70])then begin inven:=inven+[noun];r[noun]:=Null;
+           if(noun=70)then Ev:=Ev-['d']
+           else Ev:=Ev-['t'];SA;writeln(n[noun,1],':  Taken.');end;
+  45,49  :if(flasoff)then RL(14) else moveto(14);
+   44    :RL(73);
+  24,11:if(noun=17)and not(en('u'))then RL(74)
+           else if(noun=17)and(en('a'))then RL(75);
+  17,36,29,9:case noun of
+   70:if((noun2 in[30,42])or(noun2=Null))and(verb<>9)then
+         if not(en('d'))then
+          begin RL(69);Ev:=Ev+['d'];r[70]:=Prm;inven:=inven-[70];end
+         else RL(67)
+        else if(verb=9)then begin end else RL(66);
+   57:if(noun2=17)and(verb<>17)then begin
+          if(here(ropecon))and(ropecon<>57)then begin
+            RL(71);inven:=inven-[57];r[57]:=Prm;
+            if(ropecon=70)then Ev:=Ev+['t'];end
+          else begin RL(70);vanish(57); end;
+         end else begin end
+   else if(verb in[9,29,36])and(noun2=17)and(noun in mov)then
+         if(here(ropecon))and(noun=ropecon)then begin RL(76);
+          inven:=inven-[noun];r[noun]:=Null;
+          if(ropecon=29)then Ev:=Ev+['u'];end
+         else begin RL(72);inven:=inven-[noun];r[noun]:=17;end
+      end;{of noun case}
+         end;{of 15}
+
+16       :case verb of
+   51,2   :moveto(15);
+   52    :RL(85);
+  0,3..18,20..21,26..40,42,53,55,56,60:RL(86);
+   19,61:begin RS(18);Ev:=Ev-['a'];Ev:=Ev+['r'];Sc:=Sc+60;
+          moveto(17);dropall;if(here(2))then begin r[2]:=Null;
+          r[51]:=Prm;end;r[57]:=Null;end;
+         end;{of 57}
+
+end  {of Case}
+else SA
+end; {of SP3}
+{-------------------}
+  procedure SpecialAnswers4;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+19      :case verb of
+   48,51,58:if(flasoff)then RL(14)else begin RL(311);moveto(18);end;
+   47,52,57:if(flasoff)then RL(14)else begin RL(309);moveto(20);end;
+         end;{of stairs}
+
+20      :case verb of
+   50,51,58:if(flasoff)then RL(14)else begin RL(310);moveto(19);end;
+   11,24,25,23:if(noun=67)then RL(90)
+     else if(noun in[12,43])and not(en('E'))then begin RL(92);
+            r[32]:=20;Sc:=Sc+15;Ev:=Ev+['E'];end;
+  14,38:if(noun in[67,12])then RL(91);
+  43..49,57:if(noun=Null)or(noun in[12,43])then RL(215);
+        end;{of 20}
+
+21       :case verb of
+    50   :if(flasoff)then RL(14)else moveto(18);
+    47   :if(flasoff)then RL(14)else moveto(22);
+   2,51:if(flasoff)then RL(14)else
+            if(noun=64)or(noun=Null)then moveto(23);
+    45   :RL(97);
+    49,44,43:RL(258);
+  11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
+        end;
+
+22       :case verb of
+    50   :if(flasoff)then RL(14)else moveto(21);
+    2,51 :if(flasoff)then RL(14)else
+            if(noun=64)or(noun=Null)then moveto(23);
+    44   :RL(97);
+    47,45,49:RL(258);
+    11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
+        end; {of 22}
+
+23      :case verb of
+   46,50 :if(flasoff)then RL(14)else moveto(21);
+   43,48 :if(flasoff)then RL(14)else moveto(22);
+   44,45,47,49:RL(258);
+   26,27 :if(noun=26)then
+           if(en('l'))then Say(26,'open')
+           else begin RL(98);Ev:=Ev+['l'];p[23]:=p[23]+[69];end;
+    3    :if(noun=26)then
+           if(en('l'))then begin RL(171);Ev:=Ev-['l'];p[23]:=p[23]-[69];end
+           else Say(26,'closed');
+  2,52,57:if(en('l'))and((noun=69)or(noun=Null))then moveto(24)else RL(99);
+  24,25  :if(noun=26)then RL(151);
+   11    :if(noun=26)then if(en('l'))then RL(217)else RL(218)
+          else if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
+        end; {of 23}
+
+24      :case verb of
+   51,58:if(en('l'))then moveto(23) else RL(99);
+   52,57:moveto(25);
+  24,25 :if(noun=26)then RL(151);
+   3    :if(noun=26)then begin RL(171);Ev:=Ev-['l'];end else
+         if(noun=55)then RL(411);
+   2    :if(noun=69)then Moveto(25);
+   26   :if(noun=26)then begin RL(98);Ev:=Ev+['l'];end else
+         if(noun=55)then RL(412);
+   11   :if(noun=26)then if(en('l'))then RL(217)else RL(218)else
+         if(noun=55)then RL(410);
+   27,28:If(noun=55)then RL(411);
+       end;
+
+end   {of case}
+else SA
+end;  {of SP4}
+{-------------------}
+  procedure SpecialAnswers5;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+25     :case verb of
+     43:begin writeln('The door slides open...');play(55,70,40);moveto(27);
+         writeln('The door slides shut behind you.');play(70,55,40);
+         if not(en('Y'))then begin Ev:=Ev+['Y'];Sc:=Sc+30 end end;
+     44:moveto(32); 45:moveto(30);
+     46:moveto(34); 47:moveto(28); 49:moveto(31);
+     48:if(en('v')and not(en('p')))then begin Verbose:=False;moveto(35);
+          RS(25);DEAD; end else moveto(35);
+     50:moveto(33); 51,58:moveto(24);
+     52,2:if(noun=69)or(noun=Null)then moveto(26);
+     17,27,28,38:if(noun=26)then
+          begin RL(413);play(55,70,45);play(69,54,45)end;
+   26,40:if(noun=26)then RL(414);
+        end;
+
+27      :case verb of
+   44,58:begin writeln('The door slides open...');play(55,70,40);moveto(25);
+          writeln('The door slides shut behind you.');delay(999);play(70,55,40)
+         end;
+     17,27,28,38:if(noun=26)then
+          begin RL(413);play(30,40,25);play(40,30,25)end;
+   26,40:if(noun=26)then RL(414);
+   11  :if(noun in[20,21])then RL(103)
+      else if(noun=58)then case compcon of
+        Null:RL(155); 1:RS(21); 2:RS(22); 3:RS(23);
+        4:begin RS(24);compcon:=Null;gotoxy(1,wherey-1);
+           writeln('. tim. chamb.r c.de: ',Code,'.. ..tel.port...  .  .',
+                   '... . .. ime .  p.n.l ....... ...');
+           RL(105);play(29,29,40);end;end;{of case}
+   53  :begin
+         if(input='1')or(input='one')then begin RL(104);compcon:=1;end;
+         if(input='2')or(input='two')then begin RL(104);compcon:=2;end;
+         if(input='3')or(input='three')then begin RL(104);compcon:=3;end;
+         if(input='4')or(input='four')then begin RL(104);compcon:=4;end;
+         for y:=1 to random(40)+9 do
+          begin x:=random(6000)+99;play(x,x,50);delay(9)end
+       end;
+   31   :if(compcon=null)then begin
+          play(9,999,0);sound(999);RS(20);play(999,9,0);if not(en('J'))then
+          begin Ev:=Ev+['J'];Sc:=Sc+40;end;end;
+       end;
+
+28     :case verb of
+   50,58:moveto(25);
+   45,57:moveto(29);
+   28   :if(noun in[33,10])then begin RL(137);play(31,31,450);end;
+       end;
+
+29    :case verb of
+   46,58:moveto(28);
+   36   :if(noun2 in[33,10])and(noun in Mov)then
+           if(en('M'))then
+             begin RS(27);Ev:=Ev-['M','r'];Vanish(noun);r[noun]:=28;
+               if not(en('N'))then begin Ev:=Ev+['N'];Sc:=Sc+55;end;
+             play(28,34,600)end
+           else begin Vanish(noun);r[noun]:=28;RL(179);
+             if(noun in[7,8,29,34,40,51])then Ev:=Ev+['M'];end;
+       end;
+
+33     :case verb of
+   47,58:moveto(25);
+    34  :RL(272);
+   28,38:if(noun=10)then begin RL(421);x:=random(9999);case random(3) of
+          0:play(x,random(9999),random(3));
+          1:for y:=1 to random(300)+60 do
+             begin x:=random(9999);play(x,x,2);delay(7)end;
+          2:begin y:=9999;o:=0;
+             repeat x:=random(9999);play(x,y,0);
+                    y:=random(9999);play(y,x,0);o:=o+1;
+             until o>7 end end end
+       end;
+
+end {of case}
+else SA
+end; {of SP5}
+{-------------------}
+  procedure SpecialAnswers6;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+30   :case verb of
+   46,58:if(en('e'))then RL(212) else moveto(25);
+   26,27,28,40:if(noun=49)then if(en('h'))then Say(49,'open') else RL(159)
+               else
+                if(noun in[10,76])and(verb=28)then
+                 begin
+                 if(MnRm=30)then begin RS(76);DEAD;end;
+                  if(en('e'))then
+                   begin RS(29);writeln;
+                    play(1,700,7);play(701,8000,1);Ev:=Ev-['e'];
+       case YearDial of
+              1933:begin Loc:='Civilization!';Sc:=Sc+80;RS(78);HOME;END;
+        2111..2679:begin
+                     Verbose:=False;moveto(41);RS(30);Verbose:=True;
+                     if not(en('O'))then begin Sc:=Sc+55;Ev:=Ev+['O'];end;
+               n[78,5]:=Q;n[37,5]:='glass';n[72,1]:='fence';
+               n[70,1]:='hooded figure';n[70,2]:='hooded';n[70,3]:='figure';
+               n[70,4]:='mutant';n[70,5]:=Q;n[3,1]:='footprints';
+               n[3,2]:='footpri';n[57,1]:='parachute';n[57,2]:='parachu';
+               n[35,1]:='boulder';n[35,2]:='rock';n[35,3]:='rocks';
+               n[66,4]:='red';
+                   end;
+        0..1111   :begin writeln;RS(31);DEAD;end;
+        1112..1932,1934..2110:begin writeln;RS(32);DEAD;end;
+        2680..3789:begin writeln;RS(33);DEAD;end
+             else  begin writeln;RS(34);DEAD;end;
+       end; {of YearDial case}
+                   end
+                  else begin RL(209);play(1,9999,0)end;
+                 end;
+   33   :if(noun in[16,59])or(noun=Null)then begin Ev:=Ev+['e'];RL(210);end;
+   35   :if(en('e'))then begin Ev:=Ev-['e'];RL(211);Attack:=False end;
+   17,0,6:if(noun=49)then RL(160);
+   53  :if(input=Code)then
+         If(en('h'))then Say(49,'open')
+         else
+          begin Ev:=Ev+['h'];RL(173);play(23,24,250);Sc:=Sc+30;
+            if(PanelCon<>Null)then begin r[PanelCon]:=30;Code:='R';
+             writeln('Sitting inside the panel compartment is a ',
+                      n[PanelCon,1],'.');end
+            else RL(183);
+          end
+        else RL(172);
+   3   :If(noun=49)then RL(159);
+   39  :if(noun=25)then RL(115) else
+        case noun of
+        24:if(DialNum>0)and(DialNum<377)then begin RL(176);DayDial:=DialNum;end
+           else RL(178);
+        82:if(DialNum>-1)and(DialNum<5000)then begin RL(177);
+             YearDial:=DialNum;end else RL(178);
+        end;
+ 11,24:case noun of
+   49:begin SA;if(en('h'))then if(PanelCon=Null)then RL(183)
+                 else writeln('Inside the compartment is a ',n[PanelCon,1],'.')
+               else RL(184);end;
+   82:begin SA;writeln('The year dial is set to ',YearDial,'.');end;
+   24:begin SA;writeln('The day dial is set to ',DayDial,'.');end;
+   16:begin RL(203);RL(204)end;
+   25:RL(115);
+   38:RL(161);
+      end;
+       end; {of 30}
+
+end  {of case}
+else SA
+end; {of SP6}
+{-------------------}
+  procedure SpecialAnswers7;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+26     :case verb of
+  51,58,2:if(noun=69)or(noun=Null)then moveto(25);
+  43,48 :moveto(36); 44,49 :moveto(38); 45,47 :moveto(39); 46,50 :moveto(37);
+        end;
+
+35      :case verb of
+   49,58:moveto(25);
+  11:case noun of
+    54:RL(100);
+    62:if(en('v'))then RL(205)else RL(206);
+    end;
+  28  :if(noun in[55,10])then
+        if(en('v'))then begin RL(101);Ev:=Ev-['v'];play(40,65,80)end
+        else
+         begin RL(102); Ev:=Ev+['v'];play(65,40,80);
+          if not(en('p'))then begin RS(28);DEAD;end
+          else if(MnRm=35)then
+           begin n[23,1]:='melted monster';n[23,4]:='melted';MnRm:=Null;
+            RS(74);p[35]:=p[35]+[77];
+            if not(en('W'))then begin Sc:=Sc+65;Ev:=Ev+['W'] end
+           end
+         end;
+  14  :if(noun in[1,77])and(77 in p[35])then begin Sc:=Sc+10;noun:=77;end;
+  55  :if(noun=74)then
+        if(en('v'))then begin RS(26);DEAD end;
+  38 :RL(30);
+       end;
+
+36     :case verb of
+  44,49,58:moveto(26);
+    45  :moveto(39);
+    46  :moveto(37);
+    57  :if(noun=12)then RL(215);
+        end;
+
+37     :case verb of
+  45,47,58:moveto(26);
+    43  :moveto(36);
+    44  :moveto(38);
+    57  :if(noun=12)then RL(215);
+        end;
+
+38     :case verb of
+  43,48,58:moveto(26);
+    45  :moveto(39);
+    46  :moveto(37);
+    57  :if(noun=12)then RL(215);
+   0..42,44,47,49,50-56,59..99:if(noun=28)or(noun2=28)then
+          begin RS(35);RL(220);p[40]:=p[40]+[48];moveto(40);Ev:=Ev-['g'];
+           if(MnRm=Prm)then begin RS(79);DEAD end
+          end;
+        end;{of 38}
+
+39     :case verb of
+  46,50,58:moveto(26);
+    45  :if(en('g'))then moveto(40);
+    3   :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');
+    43  :moveto(36);
+    44  :moveto(38);
+    57  :if(noun=12)then RL(215);
+        end;
+
+40     :case verb of
+  46,58 :if(en('g'))then moveto(39) else RL(221);
+   26   :if(noun=26)then if(en('g'))then Say(26,'open') else RL(221);
+   3    :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');
+  11,14 :if(noun in[12,43,83])then RL(261);
+       end;
+
+end  {of case}
+else SA
+end; {of SP7}
+{-------------------}
+  procedure SpecialAnswers8;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+41     :case verb of
+    43  :moveto(42);
+    44  :moveto(43);
+  2,19  :if(noun in[53,73,87])then
+           begin RS(39);RL(287);moveto(46);Rx:=4;end;
+       end;
+
+42     :case verb of
+    44  :moveto(41);
+    43  :RL(296);
+    14  :if(noun in[13,1])and(13 in p[42])then
+          begin Sc:=Sc+10;noun:=13;end;
+  2,19  :if(noun in[53,73,87])then
+           begin RS(39);RL(287);moveto(46);Rx:=4;end;
+       end;
+
+43     :case verb of
+    43  :moveto(41);
+    44  :moveto(44);
+  2,19  :if(noun in[53,73,87])then
+           begin RS(39);RL(287);moveto(46);Rx:=4;end;
+        end;
+
+44     :case verb of
+    43  :moveto(43);
+    46  :moveto(47);
+    45  :begin RL(274);Rx:=0;moveto(46);end;
+  44,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
+       end;
+
+45     :case verb of
+    44  :moveto(49);
+    46  :begin RL(274);Rx:=8;moveto(46);end;
+    45  :begin Rx:=9;RL(274);moveto(46);end;
+  43,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
+        end;
+
+46     :case verb of
+    45  :begin Rx:=Rx+1;RL(274);
+          if(Rx=9)then begin
+          if not(en('T'))then begin Ev:=Ev+['T'];Sc:=Sc+30;end;
+          moveto(45)end;
+          if(Rx>86)then begin RL(340);moveto(47)end
+         end;
+    46  :begin Rx:=Rx-1;RL(274);
+          if(Rx=8)then moveto(45);
+          if(Rx<1)then moveto(44);
+         end;
+  43,44,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
+        end;
+
+47     :case verb of
+  46,52,2,19:begin if(random(2)=1)then begin RS(37);DropAll;moveto(48)end
+                   else begin RL(277);moveto(48)end;end;
+    45  :moveto(44);
+  43,44,47..50:RL(278);
+        end;
+
+48     :case verb of
+  45,51,2:if(random(3)=2)and(noun<>35)then begin RS(38);moveto(47)end
+          else if(noun<>35)then RL(279);
+   43,44,46..50:RL(279);
+     14  :if(noun in[27,1])and(27 in p[48])then
+           begin Sc:=Sc+20;noun:=27;end;
+     11 :if(noun=35)then RL(289)
+        end;
+
+end  {of case}
+else SA
+end; {of SP8}
+{-------------------}
+  procedure SpecialAnswers9;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+50     :case verb of
+  43,58 :begin RL(290);moveto(49);end;
+  44,57 :if(noun=Null)or(noun in[88,26,50])then
+          begin RS(41);if not(en('L'))then
+           begin Ev:=Ev+['L'];Sc:=Sc+25;end;moveto(51);end;
+    11  :case noun of
+          35,50:RL(292);
+          88,68:RS(42);
+          46,66:RS(43);
+         end;
+  30,28,38,17,14:if(noun=88)then RL(294);
+        end;
+
+51     :case verb of
+    44  :moveto(52);
+    46  :moveto(52);
+    48  :moveto(53);
+        end;
+
+52     :case verb of
+    43  :moveto(51);
+    47  :moveto(53);
+    46  :moveto(51);
+        end;
+
+53     :case verb of
+   52,2,57:if(noun=Null)or(noun=69)then begin if not(en('Q'))then
+            begin Ev:=Ev+['Q'];Sc:=Sc+30;end;moveto(55);end;
+    47  :moveto(52);
+    45  :moveto(53);
+    49  :moveto(54);
+        end;
+
+54     :case verb of
+    43  :moveto(52);
+    49  :moveto(53);
+    44  :moveto(51);
+    50  :begin if not(en('R'))then
+          begin Ev:=Ev+['R'];Sc:=Sc+20;end;moveto(56);end;
+        end; {verb case}
+
+55     :case verb of
+  51,2,58,44:if(noun=Null)or(noun=69)then moveto(53);
+   11   :if(noun in[11,45])then
+          begin RL(297);if(en('k'))then RL(298) else RL(299)end;
+   26,40:if(noun in[45,26,11,68])and(noun2=27)and(SepWord='with')then
+           if not(en('k'))then
+            begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
+             if(o in cabiset)then r[o]:=55;
+             if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
+            end
+           else Say(11,'open')
+          else if(SepWord='s')then RL(317);
+   29   :if(noun=27)and(noun2 in[45,26,11,68])and(SepWord='in')then
+          if not(en('k'))then
+           begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
+            if(o in cabiset)then r[o]:=55;
+            if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
+           end
+          else RL(216);
+   3    :if(noun in[45,26,11])then
+          if(en('k'))then
+           begin RL(314);play(30,32,30);Ev:=Ev-['k'];
+            for o:= 2 to NMax do if(o in cabiset)then r[o]:=Null;
+           end
+          else Say(11,'shut & locked');
+  24,30 :if(noun in[26,11])then
+          if(en('k'))then
+           begin RL(324);
+            if(cabiset=[])then RL(339)else
+             for o:=0 to NMax do if(o in Cabiset)then writeln('a ',n[o,1])
+           end
+          else RL(299);
+       end; {of 55}
+
+
+end  {of case}
+else SA
+end; {of SP9}
+{-------------------}
+  procedure SpecialAnswers10;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+56     :case verb of
+    47  :moveto(54);
+  2,51,58:if(noun=Null)or(noun=69)then moveto(57);
+        end;
+
+57     :case verb of
+   46,57,2,33:if(noun=Null)or(noun=65)then
+          begin n[68,1]:='keyhole';n[68,4]:='slot';moveto(58)end;
+   52   :moveto(56);
+        end;
+
+58     :case verb of
+   45,58:moveto(57);
+   43,44,46..51,20:if(en('i'))and(en('j'))and KeyHole then
+         begin sound(38);RS(61);ShRm:=2;moveto(59);sound(20);
+         for o:=0 to NMax do if(r[o]=58)then r[o]:=59;
+         if not(en('S'))then begin Ev:=Ev+['S'];Sc:=Sc+60 end end else RL(325);
+   28   :if(noun=10)then noun:=81;
+   11   :if(noun=68)then if KeyHole then RL(336)else RL(404);
+        end;
+
+65     :case verb of
+   43,47:moveto(66);
+   44,49:moveto(68);
+   45,57:begin if not(en('w'))then begin Ev:=Ev+['w'];RL(346);end
+               else begin RL(347);DEAD end end;
+   46,48,50:moveto(63);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end;
+
+66     :case verb of
+    43  :RL(343);
+  46,50 :moveto(65);
+  45,49 :moveto(67);
+    47  :moveto(64);
+    48  :moveto(63);
+  57,44 :begin sound(25);if not(en('V'))then begin Ev:=Ev+['V'];Sc:=Sc+30;end;
+          RS(67);writeln;moveto(69);nosound;
+         end;
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end; {of 66}
+
+67     :case verb of
+    46  :begin RL(347);DEAD;end;
+  43,48 :moveto(66);
+  44,50 :moveto(68);
+  47,49:moveto(64);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end; {of 67}
+
+end  {of case}
+else SA
+end; {of SP10}
+{-------------------}
+  procedure SpecialAnswers11;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+63     :case verb of
+   45   :moveto(65);
+   47   :moveto(66);
+   49   :moveto(68);
+  43,44,46,48,50:RL(343);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end;
+
+64     :case verb of
+   46   :moveto(67);
+   48   :moveto(66);
+   50   :moveto(68);
+  43,44,45,47,49:RL(343);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end;
+
+68     :case verb of
+    43  :begin RL(347);DEAD;end;
+    44  :RL(343);
+    50  :moveto(63);
+    49  :moveto(64);
+  46,48 :moveto(65);
+  45,47 :moveto(67);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(38);RL(344);delay(999);sound(20)end;
+    52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end;
+
+69     :case verb of
+  28,27 :if(noun in[10,21,81,36])then RL(351);
+   11   :if(noun in[10,21,81,36,20,25])then RL(352)else
+         if(noun=65)then RL(353);
+  43,58 :moveto(70);
+        end;
+
+70     :case verb of
+  44,57,2,33:if(noun=Null)or(noun=65)then moveto(69)else
+         if(noun in[69,50])then moveto(71);
+  43,47,48:RL(354);
+  49,52 :moveto(71);
+    11  :if(noun=65)then RL(353)
+         else if(noun=68)then if KeyHole then RL(336)else RL(404);
+       end;
+
+71     :case verb of
+  48,51,58:moveto(70);
+    45  :moveto(72);
+    11  :if(noun=58)then RL(386)else
+         if(noun=25)then RL(418);
+   28,27:if(noun in[10,36])then begin RL(387);
+          for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
+         end;
+    39  :if(noun=25)then begin RL(387);
+          for o:=1 to random(99)+75 do
+           begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
+         end
+        end;{ of 71}
+
+end  {of case}
+else SA
+end; {of SP11}
+{-------------------}
+  procedure SpecialAnswers12;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+11      :case verb of
+   5,45,47,48,50:if FlasOff then RL(14)
+          else case verb of
+          48:moveto(9);47:moveto(13);
+          5:if(29 in inven)or(40 in inven)or(2 in inven)then
+                    RL(58)
+                  else begin RL(18); moveto(12);end;
+          50:RL(17);
+          45:if(en('C'))then moveto(14) else RL(144);
+            end;
+   31   :if(input='nepo egassap')and not(en('C'))then
+             begin Ev:=Ev+['C']; RS(11);Sc:=Sc+35;end;
+  11 :if(noun in [79,72])then if(en('C'))then RL(270)else RS(13);
+  27,28:if(noun in [79,72])then RL(26);
+  17,0,6:if(noun in [79,72])then RL(27);
+  38  :if(noun in [79,72])then RL(30);
+          end; {of 11}
+
+12     :case verb of
+  4,47 :if FlasOff then RL(14)
+           else case verb of
+             4:begin RL(18); moveto(11);end;
+               47   :RL(17);
+                end;
+  43..46,48..52  :if FlasOff then RL(14);
+   14  :if(noun in[70,1])and not(en('G'))then
+         begin noun:=70;Ev:=Ev+['G'];Sc:=Sc+40;end;
+   7   :if not(en('G'))then begin Ev:=Ev+['G'];RL(157);
+          FlagSA:='r';verb:=14;noun:=70;Sc:=Sc+40;end;
+          end; {of 12}
+
+13      :case verb of
+   50    :if flasoff then RL(14)
+            else begin moveto(11); Ev:=Ev-['q'];end;
+   43    :if(en('q'))then begin RL(24); DEAD;end
+            else begin RL(23); Ev:=Ev+['q'];end;
+   52,19,33:RL(42);
+  14    :if(noun=47)then RL(25);
+  9   :begin RL(68);vanish(noun);end;
+          end;{of 13}
+
+17       :case verb of
+   51,19,2:RL(15);
+   45    :if(flasoff)then RL(14)else moveto(18);
+          end;
+
+18      :case verb of
+   46    :if(flasoff)then RL(14)else moveto(17);
+  49,52  :if(flasoff)then RL(14)else begin RL(308);moveto(19);end;
+   47    :if(flasoff)then RL(14)else
+           if not(en('F'))then begin RS(19);writeln;moveto(21);
+            Ev:=Ev+['F'];Sc:=Sc+10;end
+           else moveto(21);
+  11     :if(noun in[79,50])then RL(254);
+         end;{of 18}
+
+end  {of case}
+else SA
+end; {of SP12}
+{-------------------}
+  procedure SpecialAnswers13;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+2         :case verb of
+   46     :moveto(1);
+   45, 44 :RL(1);
+   19,2   :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
+  14,27 :if noun=14 then RL(2)else
+         if(noun in[1,40])and(40 in p[2])then
+            begin noun:=40;Sc:=Sc+10;Verb:=14;RL(417);FlagSA:='r' end;
+   11   :if(noun in[66,46])then RL(11);
+   26   :if noun=14then RL(13);
+         end;
+
+31     :case verb of
+   48,58:moveto(25);
+   14   :if not(en('I'))and(noun in[7,1])then
+           begin Ev:=Ev+['I'];noun:=7;Sc:=Sc+5 end;
+ 23,24,11:if(noun=84)then RL(152)else
+          if(noun=22)then RL(415);
+       end;
+
+32     :case verb of
+   43,58:moveto(25);
+ 11,23  :case Noun of
+          61:if(en('H'))then RL(153) else begin Ev:=Ev+['H'];r[34]:=32;
+               RL(154);Sc:=Sc+15;end;
+         end;{of Noun case}
+       end;
+
+34    :case verb of
+   45,58:moveto(25);
+   14   :if(noun=74)and(74 in P[34])then begin P[34]:=P[34]-[74];
+           inven:=inven+[74];RL(138);Sc:=Sc+25;end;
+   42   :if(noun=74)and(74 in P[34])then RL(175);
+   28,27:if(noun in[10,36])then begin RL(387);
+          for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
+         end;
+   39   :if(noun=25)then begin RL(387);
+          for o:=1 to random(99)+75 do
+           begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
+         end;
+   11   :case noun of
+          0:RL(139);
+          25:RL(418);
+          21:begin;RL(140);RL(141);end;
+          68:if(SlotCon=Null)then RL(143) else
+              begin SA;writeln('The slot contains a ',n[SlotCon,1],'.')end;
+          58:if(SlotCon=77)and not(en('x'))then
+              begin Ev:=Ev+['x'];Sc:=Sc+5;RS(75)end
+             else if(SlotCon=77)then RS(77)else RL(385)
+         end
+       end;
+
+0         :case verb of
+   45     :MoveTo(1);
+   44     :begin TextColor(m8);writeln('Casino Hall');TextColor(m2);RS(0)end;
+  19,2    :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
+  11    :if(noun=73)then RL(19);
+         end;
+
+1        :case verb of
+   46     :moveto(0);
+   45     :moveto(2);
+   43,57  :moveto(3);
+   6,17   :if(noun=57)and(here(40))and((noun2=40)or(noun2=Null))then
+           begin RS(16);Sc:=-500;
+            Loc:='Locked Cabin';Verbose:=True;inven:=[];KitSet:=KitSet-[57];
+            n[57,1]:='plastic card';n[57,2]:='card';n[57,3]:='plastic';
+            n[57,4]:='elevato card';n[57,5]:='elevato';r[57]:=76;moveto(76)
+           end;
+ 33,19,2  :if(noun in[6,53,64])then moveto(3)
+          end;
+
+end  {of case}
+else SA
+end; {of SP13}
+{-------------------}
+  procedure SpecialAnswers14;
+
+begin
+FlagSA:='r';
+if Present then
+Case Prm of
+
+49     :case verb of
+    43  :moveto(45);
+  44,57 :begin RL(290);moveto(50);n[36,1]:='lever';n[36,2]:='handle';end;
+  45..50:RL(291);
+    11  :if(noun in[26,50])then RL(292);
+    2   :if(noun=72)then RL(312);
+    12  :if(noun=72)then RL(313);
+        end;
+
+59     :case verb of
+   43..50:begin o:=random(8)+3;writeln('You travel about ',o,' miles...');
+           if(random(4)=2)then ShRm:=13 else ShRm:=Random(15);moveto(59)end;
+   52,57:RL(341);
+    58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
+    51  :begin sound(30);
+          if not(en('U'))then begin RS(64);writeln;Ev:=Ev+['U'];Sc:=Sc+45;end
+          else RL(349);moveto(63);sound(20)end;
+    14  :if(noun=63)then begin RS(65);DEAD;end;
+    28  :if(noun=10)then noun:=81;
+        end; {of case 59}
+
+72     :case verb of
+    46  :moveto(71);
+  43,44,58:moveto(73);
+    45  :moveto(74);
+        end;
+
+73     :case verb of
+  43,45,58:moveto(72);
+    46  :moveto(73);
+    44  :begin moveto(74);if(MnRm=Null)then RL(356);end;
+        end;
+
+74     :case verb of
+  43,45 :moveto(73);
+  46,58 :moveto(74);
+    44  :if(MnRm=Null)then begin Verbose:=False;Moveto(75);Verbose:=True;
+          RS(69);MnRm:=75;Attack:=False end else moveto(75);
+        end;
+
+75     :case verb of
+  43,58 :moveto(74);
+   11   :if(noun in[14,61])then RL(364);
+        end;
+
+76     :case verb of
+   43   :RL(114);
+   11   :if(noun=26)then RL(271)else
+         if(noun=57)then RL(408);
+        end;
+
+end  {of case}
+else SA
+end; {of SP14}
+{===================}
+procedure ScreenDraw_PlayerInput;
+  begin
+   gotoxy(1,23);
+   writeln;
+   TextColor(m5);
+   write(chr(175),' ');
+
+   {Window(1,1,80,25);}
+
+   gotoxy(1,1);
+   textcolor(m4);
+   TextBackGround(m6);
+
+   gotoxy(10,1);
+   writeln(Tic,'  ');
+
+   gotoxy(20,1);
+   writeln(Sc,' ');
+
+   gotoxy(35-(length(Loc)div 2),1);
+   writeln('     ',Loc,'     ');
+
+
+   gotoxy(2,24);
+   TextBackGround(0);
+   Window(1,2,80,25);
+   textcolor(m1);
+
+   {BufLen:=77;}
+   if(Loc<>'Civilization!')then
+        READLN(LINE)
+        else repeat;
+        until false;
+   if(Line='r') or (Line='repeat') then Line:=Again
+   else Again:=Line;
+
+
+
+   TextColor(m3);
+   writeln(chr(175));
+   TextColor(m2);
+
+
+  end;
+{-------------------}
+
+
+BEGIN
+clrscr;
+assign0;
+assign1;
+assign2;
+assign3;
+assign4;
+assign5;
+assign6;
+assign7;
+assign8;
+Initialize;
+
+                            {*****} repeat {*****}
+
+if Skip then Time;
+{writeln;}
+
+if(length(Line)=0)then begin
+ ScreenDraw_PlayerInput;
+ while pos(' then ',Line)>0 do
+  begin
+   x:=pos('then ',Line);
+   delete(Line,x,4);
+   insert('.',Line,x)
+  end;
+ LowerCase(Line);
+ Format(Line);
+ Chop(Line);
+end;
+if(pos('.',Line)>0)then begin
+  Input:=copy(Line,1,pos('.',Line));
+  delete(Line,1,pos('.',Line));
+  delete(Input,pos('.',Input),1);
+end else
+ begin
+  Input:=Line;
+  Line:=''
+ end;
+Input:=Input+' ';
+while pos(' it ',Input)>0 do
+ begin
+ x:=pos(' it ',Input)+1;
+ delete(Input,x,2);
+ insert(LastNoun,Input,x);
+ Format(Input);Chop(Input);
+ end;
+if(Input[length(Input)]=' ')then delete(Input,length(Input),1);
+
+
+
+Check(SepWord);
+
+if Flag = 'g' then
+  begin
+    case Prm of
+      3..4                :SpecialAnswers1;
+      5..10               :SpecialAnswers2;
+      14..16              :SpecialAnswers3;
+      19..24              :SpecialAnswers4;
+      25,27..29,33        :SpecialAnswers5;
+      30                  :SpecialAnswers6;
+      26,35..40           :SpecialAnswers7;
+      41..48              :SpecialAnswers8;
+      50..55              :SpecialAnswers9;
+      56..58,60..62,65..67:SpecialAnswers10;
+      63,64,68..71        :SpecialAnswers11;
+      11..13,17,18        :SpecialAnswers12;
+      0..2,31,32,34       :SpecialAnswers13;
+      49,59,72..76        :SpecialAnswers14
+    end;
+
+    if FlagSA <> 's' then
+      case Verb of
+       11,18,22,41,43..52,57,58    :DefaultAnswers1;
+       29                          :DefaultAnswers2;
+       1,2,8,12,13,15,16,19,21,
+        23..25,31,33,34,38,40,60,63:DefaultAnswers3;
+       3,6,7,20,30,35,53..56,59    :DefaultAnswers4;
+       9,26                        :DefaultAnswers5;
+       27,28,62                    :DefaultAnswers6;
+       14,64,4,5                   :DefaultAnswers7;
+       0,10,17,42,39               :DefaultAnswers8;
+       32                          :DefaultAnswers9;
+       36,37,61,65                 :DefaultAnswers10;
+      end;
+  end;
+
+                         {*****} until False {*****}
+
+END. {of program}