From ef6e803369c757908cc80420e4f5c87364a0fa9b Mon Sep 17 00:00:00 2001 From: historicalsource Date: Sat, 13 Apr 2019 21:59:32 -0400 Subject: [PATCH] Revision 53 (Original Source) --- README.md | 1 + a.zil | 1768 ++++++++++++++++++++++++++++++++ actions.zil | 1770 ++++++++++++++++++++++++++++++++ csampler.zil | 48 + dungeon.zil | 1515 +++++++++++++++++++++++++++ globals.zil | 279 +++++ infidel.zil | 2515 +++++++++++++++++++++++++++++++++++++++++++++ misc.zil | 572 +++++++++++ parser.zil | 1528 +++++++++++++++++++++++++++ planetfall.zil | 2414 +++++++++++++++++++++++++++++++++++++++++++ quit.zil | 13 + sampler.zil | 48 + syntax.zil | 634 ++++++++++++ tutorial.zil | 864 ++++++++++++++++ verbs.zil | 2668 ++++++++++++++++++++++++++++++++++++++++++++++++ 15 files changed, 16637 insertions(+) create mode 100644 README.md create mode 100644 a.zil create mode 100644 actions.zil create mode 100644 csampler.zil create mode 100644 dungeon.zil create mode 100644 globals.zil create mode 100644 infidel.zil create mode 100644 misc.zil create mode 100644 parser.zil create mode 100644 planetfall.zil create mode 100644 quit.zil create mode 100644 sampler.zil create mode 100644 syntax.zil create mode 100644 tutorial.zil create mode 100644 verbs.zil diff --git a/README.md b/README.md new file mode 100644 index 0000000..b17862a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# infocom-sampler diff --git a/a.zil b/a.zil new file mode 100644 index 0000000..698dea9 --- /dev/null +++ b/a.zil @@ -0,0 +1,1768 @@ +"ACTIONS for + SAMPLER + (c) Copyright 1984 Infocom, Inc. All Rights Reserved." + + + + + ) + (T )> + )>> + + + + >) + (T + + )> + ) + ( + + + + T) + (T >)> + )>> + + + )>> + + + > + + ) + (T + )>)>> + +;> + + + ) + ( + ) + ( + ) + (T + )>> + + + + ) + ( + + T)>) + ( + >> + + + ) + (T + )>) + (T )>) + ( + ) + ( + + T) + ( + ) + ( + + + ) + (T + + )>) + (T + )>) + ( + )>> + + + ) + ( + ) + ( + ) + ( + )>> + + + )>> + + + + ) + ( + > + CR> + ) + ( + > + ) + ( + + ) + ( ;"fill bottle with water =>" + ;"put water in bottle" + + + + >) + ( + > + + >) + ( + )> + + + )>)> + ) + (T )> + > + > >)> + > + + + >>>> + + + ) + (>> + + ) + ( + > + + ) + (> + + ) + (T + + )>) + ( + + > + ) + (T + )>) + (.PI? ) + ( + + + ) + (T + + )>) + ( + + )>> + +> + + + + ) + ( + > + ) + ( + + ) + (T + )> + ) + ( + + + ) + (T + )>)>> + + + ) + ( + )>> + + + )>> + + + )>> + + + + + ) + (T + )>) + (<==? .RARG ,M-BEG> + > + ) + ( > + )>)>> + +\ + + > + )>> + +> + + + + + > + ) + (.RUG? + ) + ( + ) + (T + )> + + T) + ( + + + >> + + )> + >> + + )>)>> + +> + ) + (T + + )>)> + >>> + +> + )> + >> + )> + >>> + + + + ) + ( + > + ) + ( > + + ) + (T )>) + ( + + >> + ) + ( >> + + + ) + ( + CR>)>)>> + + + ) + ( + + >> + + + )>)>> + + + + + ) + (T )> + )>> + +>> + + ) + (>> + >> + > + > + )> + ) + (T + + )>> + + + ) + (T + + + )>) + (T + + )>> + + + ) + (T + )>) + ( + ) + (T + + + + )>) + ( + ) + ( + + >> + ) + ( + + >> + ) + (ELSE + )>)>> + +\ + +"SUBTITLE TROLL" + +) + (T )>> + +> ) + ( + + ) + (T + )> + T)>> + +)) + + + >) + ( + <>) + ( > + + + + + + > + T) + ( + + + T)>) + ( + + ) + ( + + + > + T)>) + ( + + CR>) + ( + ,PRSO + > + > + + + + > + + + + ) + ( + + )> + + ) + (T + )> + + > + + + + ,F-DEAD> + ) + ( + + + ) + (T + + )>) + ( + ) + ( + )>) + ( + ) + (> + )>)>> + +\ + +"SUBTITLE GRATING/MAZE" + +;> ;"not referenced, removed 2/27/85 by SEM" +;> ;"not referenced, removed 2/27/85 by SEM" +> + +> + > + + ) + (T )> + + )> + <>> + + + ) + ( + + + + ) + (T + )>) + ( + + + ) + ( + + )> + )> + + ) + (T )>) + ( + > + )>> + + + + )>) + ( + + + + ) + (,GRATE-REVEALED + + )> + )>> + + + + )>) + ( > + ) + ( + ) + ( + ) + ( > + 20> + ) + (T + + )>)>> + + + + )>> + + + +;> + +)) + + + + ) + ( + + + ) + ( + > + )>)> + > + + + T) + (.E? )>> + +;> ;"not referenced, removed 2/27/85 by SEM" + +; +> + )> + > + + + >)>> + + + ) + ( + ) + ( + CR>) + ( + )>> + +> + + + + + )>> + +> + + + + > + + ) + ( + + ) + (T + > + <>)>) + ( + + ) + (T + > + <>)>) + ( + + + ) + ( + ) + (T + )> + )>> + + + )>> + +)) + >>> + + > + >)>> + + + + )> + > + + ) + (T + CR>)>)>> + +; .N1) + (T .N2)>> + + > + > + <>) + ( + > 1> + ) + ( + )>)>> + + + + + )> + ) + ( + )>> + + + + + ) + ( + + ) + (T + + )>)>) + ( + )>> + +;> + + + + > + > + + + )>) + ( + > + ) + ( + > + ) + ( + > ) + ( > + + + ) + ( + + + + ) + (> + + ) + ( + )>)>) + ( >)>> + + > + + ) + ( + ) + ( + ) + ( + + > + + + ) + ( + ) + (T + + )>) + ( + + + ) + ( + )> + + + )>> + + + >) + (T )> + > + + > + +;> ;"not referenced, removed 2/27/85 by SEM" + + + )>> + + + >> + +> + > + ) + ( + )>> + + >) + ( + + > + )>)>> + + + + > + )>> + + + )>> + +;> + + + + >> + + ) + ( + )>> + + + + ) + (T + )>) + (T CR>)>> + + + >> + ) + ( + + + )>)>> + + + > + )>> + +"MORE RANDOMNESS" + + + ) + ( + )>> + + + )>> + +"SUBTITLE MELEE" + +"melee actions (object functions for villains called with these" + + ;"busy recovering weapon?" + ;"mistah kurtz, he dead." + ;"into dreamland" + ;"rise and shine" + ;"strike first?" + +\ + +"blow results" + + ;"attacker misses" + ;"defender unconscious" + ;"defender dead" + ;"defender lightly wounded" + ;"defender seriously wounded" + ;"defender staggered (miss turn)" + ;"defender loses weapon" + ;"hesitates (miss on free swing)" + ;"sitting duck (crunch!)" + +"tables of melee results" + +> + +> + +> + +> + +> + +> + + + 0 ;>> + + + 0; >> + + + DEF3B + 0 ; + DEF3C>> + +\ + +"useful constants" + + + + + +\ + +"I-FIGHT moved to DEMONS" + +)) + + > + + + )> + > + > + >) + ( + ,F-BUSY?>) + (>> + > + ) + ( + >>)>> + ) + (T + > + )>)>) + (T )>>> + +\ + +"takes a remark, defender, and good-guy's weapon" + +) (CNT 0) STR) + > .LEN> )> + > + ) + ( ) + (T )>> + > + +"Strength of the player is a basic value (S) adjusted by his P?STRENGTH +property, which is normally 0" + +>>>> + >)(T .S)>> + +) + OD TMP) + > + > + + ,PRSI>> + >> + )> + )>)> + .OD> + +"find a weapon (if any) in possession of argument" + +> + + )> + + ) + (>> )>>> + +\ + +) + (REMARKS ) + DWEAPON ATT DEF OA OD TBL RES NWEAPON) + + + + + )> + >> + > 0>> )> + >> + > + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + + .DWEAPON + >> + )> + >> + ,WINNER + .DWEAPON>)> + >) + () + ( + > + ) + ( + > + )> + + >)>) + ( + > + )> + + >)>) + ( ) + (T + .DWEAPON> + + > + )>)> + > + +) DWEAPON ATT DEF (CNT 0) + OA OD TBL RES NWEAPON (LEN )) + > + )> + > + ,PRSO> + )>> + + + + + )> + > + )> + + > + >>> + + >)> + + )> + > + > + + ) + (T )> + + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + .DWEAPON > + )> + >> + ,PRSO + ,PRSI>)> + >) + ( >) + ( > + ) + ( + > + )>) + ( + > + )>) + ( ) + (T + .DWEAPON> + + + + )> + > + +\ + + -10000)(T <- .DEF .OD>)>> + 0> + >)> + 0>> + >>>> + + <>) + (T .RES)>> + + + + + + + ,F-DEAD> + .RES) + ( + ,F-UNCONSCIOUS> + .RES) + (T .RES)>> + +\ + +;> + >> + ) + ( ) + (<0? .PS> ) + ( ) + (T )>> + +)) + ) + ( > )> + + + >)> + >) + (T + + >)>> + +"FIGHTS" + +"messages for winner" + + ;"means print weapon name" + ;"means print defender name (villain, e.g.)" + + + + + + + > + + + + + > + + + > + + + + > + + + + > + + + + + > + + >>> + +"messages for troll" + + + + + > + > + + + > + + + + > + + + > + + + + > + + + > + + > + >>> + +"each table entry is:" + + ;"villain" + ;"best weapon" + ;"advantage it confers" + ;"prob of waking if unconscious" + ;"messages for that villain" + +"This table must be after TROLL-MELEE, defined!" + +>> + +"DEMONS" + +"Fighting demon" + +) (LEN ) + CNT OO O P) + )> + + > + )> + > + > ,HERE> + >> + 0> + > + > > + + ) + (T + >)>) + ( + ,F-FIRST?>> + )>) + (T + + ,F-BUSY?>)> + + + + )>> + )> + > + +)) + + > + ,F-CONSCIOUS>)> + T> + +"SWORD demon" + +) (G ) + (NG 0) P T L) + + ) + (T + + >> + ) + (> + > + > + + > + + )>)>)>>)> + ) + ( + ) + (<1? .NG> + ) + (<0? .NG> + )> + + ) + (T + + )>> + +)) + ) + ( >> + ) + (>> )>>> + +>) + (WD ) (RS <+ .MS .WD>)) + #DECL ((MS WD RS) FIX) + + + + ) + (T + + + ) + ( + ) + ( + ) + (T + )> + )> + + ) + (T + + + ) + ( + ) + (T + )> + )> + + ) + (T + + + ) + ( + ) + (T + )> + )> + ) + ( + + )> + ,C-ENABLED?>> ) + (ELSE >)> + ) + (<1? .WD> ) + ( ) + ( ) + ( )> + > + + > + ,C-TICK>>> + )> + + ) + (<1? .RS> ) + ( ) + ( ) + ( + )> + + > + + ) + (T )> + )>> + + + +) + + + ) + ( + ) + ( + ) + ( + )> + + + + + ) + (T + )> + ) + (T + + + + ) + (T + )>)> + + ,SCORE> + +)) + + + )> + + + + ,VEHBIT> + )> + > + + ) + (T + > + + + + + > + + )>>) + ( + + + > + )> + + + ) + (T + )>>) + ( + + > + >> + + > + + > + )>)> + > + )> + )> + ;this will never work-DA + + ) + (T + )>)>> + +) F N L) + + )> + + > + > + + )> + > + 0> + >)> + + > + > + + ) + (ELSE >)>>) + (ELSE + >>)>>> + +> + > + > + > + +; + ) + ( + ) + ( > + )>> + +; + ) + ( + )>> + + + + )>> + + + > + )>> + + + >> + ) + ( + ) + ( > + + )>> \ No newline at end of file diff --git a/actions.zil b/actions.zil new file mode 100644 index 0000000..80c7128 --- /dev/null +++ b/actions.zil @@ -0,0 +1,1770 @@ +"ACTIONS for + SAMPLER + (c) Copyright 1984 Infocom, Inc. All Rights Reserved." + + + + + ) + (T )> + )>> + + + + >) + (T + + )> + ) + ( + + + + T) + (T >)> + )>> + + + )>> + + + > + + ) + (T + )>)>> + +;> + + + ) + ( + ) + ( + ) + (T + )>> + + + + ) + ( + + T)>) + ( + >> + + + ) + (T + )>) + (T )>) + ( + ) + ( + + T) + ( + ) + ( + + + ) + (T + + )>) + (T + )>) + ( + )>> + + + ) + ( + ) + ( + ) + ( + )>> + + + )>> + + + + ) + ( + > + CR> + ) + ( + > + ) + ( + + ) + ( ;"fill bottle with water =>" + ;"put water in bottle" + + + + >) + ( + > + + >) + ( + )> + + + )>)> + ) + (T )> + > + > >)> + > + + + >>>> + + + ) + (>> + + ) + ( + > + + ) + (> + + ) + (T + + )>) + ( + + > + ) + (T + )>) + (.PI? ) + ( + + + ) + (T + + )>) + ( + + )>> + +> + + + + ) + ( + > + ) + ( + + ) + (T + )> + ) + ( + + + ) + (T + )>)>> + + + ) + ( + )>> + + + )>> + + + )>> + + + + + ) + (T + )>) + (<==? .RARG ,M-BEG> + > + ) + ( > + )>)>> + +\ + + > + )>> + +> + + + + + > + ) + (.RUG? + ) + ( + ) + (T + )> + + T) + ( + + + >> + + )> + >> + + )>)>> + +> + ) + (T + + )>)> + >>> + +> + )> + >> + )> + >>> + + + + ) + ( + > + ) + ( > + + ) + (T )>) + ( + + >> + ) + ( >> + + + ) + ( + CR>)>)>> + + + ) + ( + + >> + + + )>)>> + + + + + ) + (T )> + )>> + +>> + + ) + (>> + >> + > + > + )> + ) + (T + + )>> + + + ) + (T + + + )>) + (T + + )>> + + + ) + (T + )>) + ( + ) + (T + + + + )>) + ( + ) + ( + + >> + ) + ( + + >> + ) + (ELSE + )>)>> + +\ + +"SUBTITLE TROLL" + +) + (T )>> + +> ) + ( + + ) + (T + )> + T)>> + +)) + + + >) + ( + <>) + ( > + + + + + + > + T) + ( + + + T)>) + ( + + ) + ( + + + > + T)>) + ( + + CR>) + ( + ,PRSO + > + > + + + + > + + + + ) + ( + + )> + + ) + (T + )> + + > + + + + ,F-DEAD> + ) + ( + + + ) + (T + + )>) + ( + ) + ( + )>) + ( + ) + (> + )>)>> + +\ + +"SUBTITLE GRATING/MAZE" + +;> ;"not referenced, removed 2/27/85 by SEM" +;> ;"not referenced, removed 2/27/85 by SEM" +> + +> + > + + ) + (T )> + + )> + <>> + + + ) + ( + + + + ) + (T + )>) + ( + + + ) + ( + + )> + )> + + ) + (T )>) + ( + > + )>> + + + + )>) + ( + + + + ) + (,GRATE-REVEALED + + )> + )>> + + + + )>) + ( > + ) + ( + ) + ( + ) + ( > + 20> + ) + (T + + )>)>> + + + + )>> + + + +;> + +)) + + + + ) + ( + + + ) + ( + > + )>)> + > + + + T) + (.E? )>> + +;> ;"not referenced, removed 2/27/85 by SEM" + +; +> + )> + > + + + >)>> + + + ) + ( + ) + ( + CR>) + ( + )>> + +> + + + + + )>> + +> + + + + > + + ) + ( + + ) + (T + > + <>)>) + ( + + ) + (T + > + <>)>) + ( + + + ) + ( + ) + (T + )> + )>> + + + )>> + +)) + >>> + + > + >)>> + + + + )> + > + + ) + (T + CR>)>)>> + +; .N1) + (T .N2)>> + + > + > + <>) + ( + > 1> + ) + ( + )>)>> + + + + + )> + ) + ( + )>> + + + + + ) + ( + + ) + (T + + )>)>) + ( + )>> + +;> + + + + > + > + + + )>) + ( + > + ) + ( + > + ) + ( + > ) + ( > + + + ) + ( + + + + ) + (> + + ) + ( + )>)>) + ( >)>> + + > + + ) + ( + ) + ( + ) + ( + + > + + + ) + ( + ) + (T + + )>) + ( + + + ) + ( + )> + + + )>> + + + >) + (T )> + > + + > + +;> ;"not referenced, removed 2/27/85 by SEM" + + + )>> + + + >> + +> + > + ) + ( + )>> + + >) + ( + + > + )>)>> + + + + > + )>> + + + )>> + +;> + + + + >> + + ) + ( + )>> + + + + ) + (T + )>) + (T CR>)>> + + + >> + ) + ( + + + )>)>> + + + > + )>> + +"MORE RANDOMNESS" + + + ) + ( + )>> + + + )>> + +"SUBTITLE MELEE" + +"melee actions (object functions for villains called with these" + + ;"busy recovering weapon?" + ;"mistah kurtz, he dead." + ;"into dreamland" + ;"rise and shine" + ;"strike first?" + +\ + +"blow results" + + ;"attacker misses" + ;"defender unconscious" + ;"defender dead" + ;"defender lightly wounded" + ;"defender seriously wounded" + ;"defender staggered (miss turn)" + ;"defender loses weapon" + ;"hesitates (miss on free swing)" + ;"sitting duck (crunch!)" + +"tables of melee results" + +> + +> + +> + +> + +> + +> + + + 0 ;>> + + + 0; >> + + + DEF3B + 0 ; + DEF3C>> + +\ + +"useful constants" + + + + + +\ + +"I-FIGHT moved to DEMONS" + +)) + + > + + + )> + > + > + >) + ( + ,F-BUSY?>) + (>> + > + ) + ( + >>)>> + ) + (T + > + )>)>) + (T )>>> + +\ + +"takes a remark, defender, and good-guy's weapon" + +) (CNT 0) STR) + > .LEN> )> + > + ) + ( ) + (T )>> + > + +"Strength of the player is a basic value (S) adjusted by his P?STRENGTH +property, which is normally 0" + +>>>> + >)(T .S)>> + +) + OD TMP) + > + > + + ,PRSI>> + >> + )> + )>)> + .OD> + +"find a weapon (if any) in possession of argument" + +> + + )> + + ) + (>> )>>> + +\ + +) + (REMARKS ) + DWEAPON ATT DEF OA OD TBL RES NWEAPON) + + + + + )> + >> + > 0>> )> + >> + > + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + + .DWEAPON + >> + )> + >> + ,WINNER + .DWEAPON>)> + >) + () + ( + > + ) + ( + > + )> + + >)>) + ( + > + )> + + >)>) + ( ) + (T + .DWEAPON> + + > + )>)> + > + +) DWEAPON ATT DEF (CNT 0) + OA OD TBL RES NWEAPON (LEN )) + > + )> + > + ,PRSO> + )>> + + + + + )> + > + )> + + > + >>> + + >)> + + )> + > + > + + ) + (T )> + + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + .DWEAPON > + )> + >> + ,PRSO + ,PRSI>)> + >) + ( >) + ( > + ) + ( + > + )>) + ( + > + )>) + ( ) + (T + .DWEAPON> + + + + )> + > + +\ + + -10000)(T <- .DEF .OD>)>> + 0> + >)> + 0>> + >>>> + + <>) + (T .RES)>> + + + + + + + ,F-DEAD> + .RES) + ( + ,F-UNCONSCIOUS> + .RES) + (T .RES)>> + +\ + +;> + >> + ) + ( ) + (<0? .PS> ) + ( ) + (T )>> + +)) + ) + ( > )> + + + >)> + >) + (T + + >)>> + +"FIGHTS" + +"messages for winner" + + ;"means print weapon name" + ;"means print defender name (villain, e.g.)" + + + + + + + > + + + + + > + + + > + + + + > + + + + > + + + + + > + + >>> + +"messages for troll" + + + + + > + > + + + > + + + + > + + + > + + + + > + + + > + + > + >>> + +"each table entry is:" + + ;"villain" + ;"best weapon" + ;"advantage it confers" + ;"prob of waking if unconscious" + ;"messages for that villain" + +"This table must be after TROLL-MELEE, defined!" + +>> + +"DEMONS" + +"Fighting demon" + +) (LEN ) + CNT OO O P) + )> + + > + )> + > + > ,HERE> + >> + 0> + > + > > + + ) + (T + >)>) + ( + ,F-FIRST?>> + )>) + (T + + ,F-BUSY?>)> + + + + )>> + )> + > + +)) + + > + ,F-CONSCIOUS>)> + T> + +"SWORD demon" + +) (G ) + (NG 0) P T L) + + ) + (T + + >> + ) + (> + > + > + + > + + )>)>)>>)> + ) + ( + ) + (<1? .NG> + ) + (<0? .NG> + )> + + ) + (T + + )>> + +)) + ) + ( >> + ) + (>> )>>> + +>) + (WD ) (RS <+ .MS .WD>)) + #DECL ((MS WD RS) FIX) + + + + ) + (T + + + ) + ( + ) + ( + ) + (T + )> + )> + + ) + (T + + + ) + ( + ) + (T + )> + )> + + ) + (T + + + ) + ( + ) + (T + )> + )> + ) + ( + + )> + ,C-ENABLED?>> ) + (ELSE >)> + ) + (<1? .WD> ) + ( ) + ( ) + ( )> + > + + > + ,C-TICK>>> + )> + + ) + (<1? .RS> ) + ( ) + ( ) + ( + )> + + > + + ) + (T )> + )>> + + + +) + + + ) + ( + ) + ( + ) + ( + )> + + + + + ) + (T + )> + ) + (T + + + + ) + (T + )>)> + + ,SCORE> + +)) + + + )> + + + + ,VEHBIT> + )> + > + + ) + (T + > + + + + + > + + )>>) + ( + + + > + )> + + ; + + ; + ) + (T + )>>) + ( + + > + >> + + > + + > + )>)> + > + )> + )> + + ; + ; + ) + (T + )>)>> + +) F N L) + + )> + + > + > + + )> + > + 0> + >)> + + > + > + + ) + (ELSE >)>>) + (ELSE + >>)>>> + +> + > + > + > + +; + ) + ( + ) + ( > + )>> + +; + ) + ( + )>> + + + + )>> + + + > + )>> + + + >> + ) + ( + ) + ( > + + )>> \ No newline at end of file diff --git a/csampler.zil b/csampler.zil new file mode 100644 index 0000000..7fd80ea --- /dev/null +++ b/csampler.zil @@ -0,0 +1,48 @@ +"DEMO for + SAMPLER + (c) Copyright 1984 Infocom, Inc. All Rights Reserved." + + + +; + + + >> + +) "AUX" (TIM