mirror of
https://github.com/PDP-10/its.git
synced 2026-03-25 17:58:40 +00:00
Zork source code from 1981. From Bob Supnik.
This commit is contained in:
committed by
Eric Swenson
parent
1b555896eb
commit
93879ee82f
@@ -1918,7 +1918,11 @@ artist's masterpieces, you have destroyed one.">)>>
|
||||
(<==? .C <PRSI>> <>)
|
||||
(ELSE
|
||||
<SET FOO <OLINT .C>>
|
||||
<COND (<VERB? "TRNON" "BURN" "LIGHT">
|
||||
<COND (<AND <VERB? "TAKE">
|
||||
<TRNN .C ,ONBIT>>
|
||||
<CLOCK-ENABLE <2 .FOO>>
|
||||
<>)
|
||||
(<VERB? "TRNON" "BURN" "LIGHT">
|
||||
<COND (<NOT <TRNN .C ,LIGHTBIT>>
|
||||
<TELL
|
||||
"Alas, there's not much left of the candles. Certainly not enough to
|
||||
@@ -1242,9 +1242,11 @@ hole after you, nearly cracking your skull.">
|
||||
<COND (<==? <PRSI> .COFFIN>
|
||||
<ODESC1 .COFFIN ,COFFIN-TIED>)
|
||||
(<ODESC1 .TIMBER ,TIMBER-TIED>)>
|
||||
<COND (<OR <==? .HERE <SFIND-ROOM "CPANT">>
|
||||
<==? .HERE .SROOM>>
|
||||
<TELL "The rope dangles down the slide.">)>
|
||||
<COND (<==? .HERE .SROOM>
|
||||
<TELL "The rope dangles down the slide.">)
|
||||
(<==? .HERE <SFIND-ROOM "CPANT">>
|
||||
<TELL
|
||||
"The rope dangles down into the darkness.">)>
|
||||
<COND (<==? .HERE .SROOM>
|
||||
<TRO <PRSI> ,NDESCBIT>)>
|
||||
T)
|
||||
@@ -5146,15 +5146,22 @@ you earn your MDL degree from MIT Tech your future will be brighter.
|
||||
<>
|
||||
()
|
||||
(ODESC1
|
||||
"There is an issue of US NEWS & DUNGEON REPORT dated 3/17/79 here."
|
||||
"There is an issue of US NEWS & DUNGEON REPORT dated 7/22/81 here."
|
||||
OSIZE 2
|
||||
OREAD
|
||||
" US NEWS & DUNGEON REPORT
|
||||
12/11/79 Late G.U.E. Edition
|
||||
Send correspondence to ZORK@DM
|
||||
7/22/81 Last G.U.E. Edition
|
||||
|
||||
Many bugs have been fixed in this version. There are probably no
|
||||
other changes.
|
||||
This version of ZORK is no longer being supported on this or any other
|
||||
machine. In particular, bugs and feature requests will, most likely, be
|
||||
read and ignored. There are updated versions of ZORK, including some
|
||||
altogether new problems, available for PDP-11s and various
|
||||
microcomputers (TRS-80, APPLE, maybe more later). For information, send
|
||||
a SASE to:
|
||||
|
||||
Infocom, Inc.
|
||||
P.O. Box 120, Kendall Station
|
||||
Cambridge, Ma. 02142
|
||||
")>
|
||||
|
||||
<OBJECT ["EIGHT" "8"]
|
||||
@@ -5493,7 +5500,7 @@ Zorkers were obscure." )>
|
||||
<OBJECT ["ROPE" "HEMP" "COIL"]
|
||||
["LARGE"]
|
||||
"rope"
|
||||
<+ ,OVISON ,TAKEBIT ,TIEBIT>
|
||||
<+ ,OVISON ,TAKEBIT ,TIEBIT ,SACREDBIT>
|
||||
ROPE-FUNCTION
|
||||
()
|
||||
(ODESCO "A large coil of rope is lying in the corner."
|
||||
@@ -367,7 +367,7 @@
|
||||
<FINISH <>>>
|
||||
<FINISH <>>>>
|
||||
|
||||
<DEFINE DO-SCRIPT ("AUX" CH (UNM ,XUNM) (MUDDLE ,MUDDLE))
|
||||
<DEFINE DO-SCRIPT ("AUX" (CH <>) (UNM ,XUNM) (MUDDLE ,MUDDLE))
|
||||
#DECL ((CH) <OR CHANNEL FALSE> (UNM) STRING (MUDDLE) FIX)
|
||||
<COND (,MY-SCRIPT
|
||||
<DO-UNSCRIPT <>>)>
|
||||
@@ -376,6 +376,7 @@
|
||||
(<AND
|
||||
<OR <G? .MUDDLE 100>
|
||||
<AND <SET CH <OPEN "READ" ".FILE." "(DIR)" "DSK" .UNM>>
|
||||
<=? <10 .CH> .UNM>
|
||||
<CLOSE .CH>>>
|
||||
<SET CH <OPEN "PRINT" "ZORK" "SCRIPT" "DSK" .UNM>>>
|
||||
<PUT <TOP ,INCHAN> 1 (.CH)>
|
||||
@@ -386,6 +387,7 @@
|
||||
(T
|
||||
<TELL "Scripting to <" ,POST-CRLF ,XUNM ">ZORK.SCRIPT">)>)
|
||||
(T
|
||||
<COND (.CH <CLOSE .CH>)>
|
||||
<TELL "I can't open the script channel.">)>>
|
||||
|
||||
<DEFINE DO-UNSCRIPT ("OPTIONAL" (VERBOSE T))
|
||||
@@ -400,8 +402,8 @@
|
||||
|
||||
<GDECL (THEN) FIX>
|
||||
|
||||
<DEFINE DO-SAVE ("OPTIONAL" (UNM ,XUNM) "AUX" (MUDDLE ,MUDDLE) CH)
|
||||
#DECL ((CH) <OR CHANNEL FALSE> (MUDDLE) FIX (UNM) STRING)
|
||||
<DEFINE DO-SAVE ("OPTIONAL" (UNM ,XUNM) "AUX" FNM (MUDDLE ,MUDDLE) (CH <>))
|
||||
#DECL ((FNM) STRING (CH) <OR CHANNEL FALSE> (MUDDLE) FIX (UNM) STRING)
|
||||
<COND (<RTRNN <SFIND-ROOM "TSTRS"> ,RSEENBIT>
|
||||
<TELL "Saves not permitted from end game.">)
|
||||
(T
|
||||
@@ -410,20 +412,33 @@
|
||||
<COND (<MEMBER .UNM ,WINNERS>)
|
||||
(ELSE
|
||||
<INT-LEVEL 100000>
|
||||
<OFF ,ZORK-HAND>
|
||||
<OFF "CHAR" ,INCHAN>)>
|
||||
<SETG THEN <CHTYPE <DSKDATE> FIX>>
|
||||
<SETG PLAYED-TIME <GET-TIME>>
|
||||
<COND (<SET CH <OPEN "PRINTB"
|
||||
<COND (<AND <SET CH <OPEN "PRINTB"
|
||||
<COND (<L? .MUDDLE 100>
|
||||
<STRING <GET-DEV> !\: .UNM ";ZORK SAVE">)
|
||||
<STRING <GET-DEV>
|
||||
!\: .UNM
|
||||
";ZORK SAVE">)
|
||||
(T
|
||||
<STRING "DSK:<" .UNM ">ZORK." ,SAVNM>)>>>
|
||||
<OR <G? .MUDDLE 100>
|
||||
<=? <10 .CH> .UNM>>>
|
||||
<SETG SRUNM .UNM>
|
||||
<SAVE-GAME .CH>
|
||||
<FINISH <CHTYPE '(". Saved.") FALSE>>)
|
||||
(<TELL "Save failed.">
|
||||
<TELL <1 .CH> ,POST-CRLF " " <2 .CH>>)>
|
||||
<HANDLER <EVENT "CHAR" 8 ,INCHAN> ,ZORK-HAND>
|
||||
(T
|
||||
<COND (.CH
|
||||
<CLOSE .CH>
|
||||
<RENAME <STRING <9 .CH> !\: <10 .CH> !\;
|
||||
<7 .CH> !\ <8 .CH>>>)>
|
||||
<TELL "Save failed.">
|
||||
<COND (<NOT .CH> <TELL <1 .CH> ,POST-CRLF " " <2 .CH>>)
|
||||
(T
|
||||
<TELL " " ,POST-CRLF>)>)>
|
||||
<COND (<NOT <MEMBER .UNM ,WINNERS>>
|
||||
<HANDLER <EVENT "CHAR" 8 ,INCHAN> ,ZORK-HAND>)>
|
||||
<INT-LEVEL 0>)>>
|
||||
|
||||
<SETG SAVNM "SAVE">
|
||||
@@ -928,7 +943,25 @@ WILL GO AWAY WHEN FINISHES."
|
||||
<PRINC ,VERS .CH>
|
||||
<RECOUT .CH <ASCORE ,WINNER> ,MOVES ,DEATHS #FALSE (". Griping.")
|
||||
,HERE>
|
||||
<COND (<NOT .FEECH?>
|
||||
<PRINC "
|
||||
Text:
|
||||
" .CH>
|
||||
<COND (<L? .MUDDLE 100>
|
||||
<PUT .CH 13 <CHTYPE <MIN> FIX>>
|
||||
<PRINC !\\\ .CH>
|
||||
<SET STR <SUBSTRUC .STR 0
|
||||
.CT
|
||||
<BACK <REST .STR
|
||||
<LENGTH .STR>>
|
||||
.CT>>>
|
||||
<REPEAT ((SS .STR))
|
||||
#DECL ((SS) <OR FALSE STRING>)
|
||||
<COND (<SET SS <MEMQ !\" .SS>>
|
||||
<PUT .SS 1 !\`>)
|
||||
(<RETURN>)>>
|
||||
<PRINC .STR .CH>)
|
||||
(<PRINTSTRING .STR .CH .CT>)>
|
||||
<COND (.DEATH?
|
||||
<CRLF .CH>
|
||||
<PRINC "Winner:" .CH>
|
||||
<PRINT ,WINNER .CH>
|
||||
@@ -965,23 +998,15 @@ WILL GO AWAY WHEN FINISHES."
|
||||
,RESTORE-HAPPENED>
|
||||
<CRLF .CH>
|
||||
<PRINC "Restore happened." .CH>)>)>
|
||||
<PRINC "
|
||||
Text:
|
||||
" .CH>
|
||||
<COND (<L? .MUDDLE 100>
|
||||
<PUT .CH 13 <CHTYPE <MIN> FIX>>
|
||||
<PRINC !\\\ .CH>
|
||||
<PRIN1 <SUBSTRUC .STR 0 .CT
|
||||
<BACK <REST .STR <LENGTH .STR>> .CT>>
|
||||
.CH>
|
||||
<RENAME .CH "COMSYS;M >">)
|
||||
(<PRINTSTRING .STR .CH .CT>)>
|
||||
<CRLF .CH>
|
||||
<COND (<L? .MUDDLE 100>
|
||||
<PRINC !\" .CH>
|
||||
<RENAME .CH "COMSYS;M >">)>
|
||||
<CLOSE .CH>
|
||||
<COND (.FEECH? <TELL "Feature recorded. Feel free.">)
|
||||
(<TELL "Bug recorded. Thank you.">)>)>>
|
||||
<AND .CH <NOT <0? <1 .CH>>> <CLOSE .CH>>>>
|
||||
|
||||
|
||||
<PSETG 10XERRS ![196687 196693 196696 196691 196675 196697 197210 197408!]>
|
||||
|
||||
<GDECL (10XERRS) <UVECTOR [REST FIX]>>
|
||||
@@ -1041,8 +1066,9 @@ Text:
|
||||
<CRLF .CH>
|
||||
<PLAY-TIME <>>
|
||||
<CRLF .CH>
|
||||
<PRIN1 .SCORE .CH>
|
||||
<COND (,END-GAME!-FLAG
|
||||
<COND (<NOT ,END-GAME!-FLAG>
|
||||
<PRIN1 .SCORE .CH>)
|
||||
(<PRIN1 ,EG-SCORE .CH>
|
||||
<PRINC " end game" .CH>)>
|
||||
<PRINC " points, " .CH>
|
||||
<PRIN1 .MOVES .CH>
|
||||
@@ -1134,7 +1160,8 @@ Text:
|
||||
"Normally I could attempt to rectify your condition, but I'm ashamed
|
||||
to say my abilities are not equal to dealing with your present state
|
||||
of disrepair. Permit me to express my profoundest regrets.">
|
||||
<FINISH <>>)
|
||||
<FINISH <>>
|
||||
<REPEAT () <QUIT>>)
|
||||
(<G=? .DEATHS 2>
|
||||
<TELL ,SUICIDAL ,LONG-TELL1>
|
||||
<FINISH <>>)
|
||||
Reference in New Issue
Block a user