1
0
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:
Lars Brinkhoff
2018-02-02 08:18:39 +01:00
committed by Eric Swenson
parent 1b555896eb
commit 93879ee82f
4 changed files with 74 additions and 34 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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."

View File

@@ -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 <>>)