Final Revision

This commit is contained in:
historicalsource 2019-04-13 23:58:43 -04:00
parent fa9390b02c
commit 5f9e044602
14 changed files with 2921 additions and 69 deletions

73
a1.zil Normal file
View file

@ -0,0 +1,73 @@
"
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<SNAME "INFIDEL">
<GC-MON <>>
;<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<GC 0 T 5>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
;<SETG SHORT-STRINGS 2>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "INFIDEL: Interlogic Adventure Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<IFILE "GLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "CLOCK" T>
<IFILE "MAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
<IFILE "INTERRUPTS" T>
<IFILE "RA" T>
<IFILE "ANTE" T>
<IFILE "DIAMOND" T>
<IFILE "BARGE" T>
<IFILE "CUBE" T>
<IFILE "CAMP" T>
<IFILE "TEMPLE" T>
<PRINC "INFIDEL: Interlogic Adventure Fiction
Get ready!">

View file

@ -783,14 +783,16 @@ into the walls, one on either side of the passageway.")
(DESC "plaster")
(SYNONYM PLASTE)
(SIZE 5)
(TEXT
"Some hieroglyphics on the plaster say:|
|
*-> # !!! :: ...> .-")
(ACTION PLASTER1-FCN)>
<ROUTINE PLASTER1-FCN ()
<COND (<VERB? TAKE MUNG ATTACK>
<COND (<VERB? EXAMINE READ>
<TELL
"Some hieroglyphics on the plaster say:|
">
<PLASTER1-GLYPHS>
<RTRUE>)
(<VERB? TAKE MUNG ATTACK>
<COND (<NOT ,PRSI>
<COND (<IN? ,PICK-AXE ,WINNER>
<SETG PRSI ,PICK-AXE>)
@ -1219,7 +1221,17 @@ far enough above the surface of the table to activate a mechanism. You hear it
click just before the ceiling comes down to meet the floor.">
<ROUTINE SCARAB-CHECK-FCN ("AUX" L-W R-W (L-OBJ <>) (R-OBJ <>))
<COND (<VERB? TAKE>
<COND (<VERB? EXAMINE READ>
<TELL
"Etched onto its back is the following:|
">
<FIXED-FONT-ON>
<TELL "|
>*>|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<VERB? TAKE>
<SETG CAN-TURN-STATUES <>>
<SET L-OBJ <FIRST? ,LEFT-DISC>>
<SET R-OBJ <FIRST? ,RIGHT-DISC>>
@ -1269,10 +1281,6 @@ the scarab within the smaller outlined area on the cover." CR>)>
(DESC "scarab")
(VALUE 10)
(SYNONYM SCARAB)
(TEXT
"Etched onto its back is the following:|
|
>*>")
(SIZE 8)
(MAP 3)
(ACTION SCARAB-CHECK-FCN)>
@ -1294,18 +1302,24 @@ the scarab within the smaller outlined area on the cover." CR>)>
(SYNONYM PAGE)
(FLAGS NDESCBIT READBIT BURNBIT TURNBIT DONTTAKE TRYTAKEBIT)
(ACTION PAGE-FCN)
(SIZE 1)
(TEXT
(SIZE 1)>
<ROUTINE PAGE-FCN ()
<COND (<VERB? EXAMINE READ>
<TELL
"Hieroglyphs can be seen as follows:|
|
">
<FIXED-FONT-ON>
<TELL "|
= . ! !|
<-* # = - # !@! !---!|
|
. ! !|
:: # >*> - # !@! !--!")>
<ROUTINE PAGE-FCN ()
<COND (<VERB? TURN>
:: # >*> - # !@! !--!|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<VERB? TURN>
<TELL "Unnecessary page turning may destroy the book." CR>
<RTRUE>)
(<VERB? BURN>
@ -1337,9 +1351,12 @@ referred to, it too has seen better days.")
<COND (<NOT <FSET? ,DEAD-BOOK ,OPENBIT>>
<TELL
"The book isn't open. On the cover is the following, though:|
|
">
<FIXED-FONT-ON>
<TELL "|
=|
=" CR>)
=" CR>
<FIXED-FONT-OFF>)
(T
<PERFORM ,V?READ ,PAGE>)>
<RTRUE>)

View file

@ -371,11 +371,6 @@ wood. Although only a few feet of it rise above the deck, it was probably used
at one time as a mast.")
(SYNONYM BEAM MAST)
(ADJECTIVE WOODEN STURDY)
(TEXT
"This wooden beam is made of an extremely hard wood. It's 10 feet long and has
a diameter of 12 inches. Scratched into it is the following symbol:|
|
/!\\")
(SIZE 10)
(VALUE 15)
(ACTION BEAM-FCN)
@ -598,7 +593,18 @@ the deck with a thud." CR>)>)
>>
<ROUTINE DESCRIBE-BEAM-FCN (RARG "AUX" STR)
<COND (<OR <NOT <EQUAL? .RARG ,M-OBJDESC>>
<COND (<VERB? EXAMINE READ>
<TELL
"This wooden beam is made of an extremely hard wood. It's 10 feet long and has
a diameter of 12 inches. Scratched into it is the following symbol:|
">
<FIXED-FONT-ON>
<TELL "|
/!\\|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<OR <NOT <EQUAL? .RARG ,M-OBJDESC>>
<NOT ,BEAM-PLACED>>
<RFALSE>)
(<EQUAL? ,BEAM-PLACED 4> ;"CASE: In N. Ante, beam wedged"
@ -647,10 +653,13 @@ beam." CR>
<RFALSE>)>
<TELL
"The scroll reads as follows:|
|
">
<FIXED-FONT-ON>
<TELL "|
*-> <.> <:.> ... <::.>|
|
:: : ** --->> -) (*)" CR>
<FIXED-FONT-OFF>
<RTRUE>>
;<ROUTINE CLEAR-THE-BEAM ("AUX" F N (FLG <>) STR)

View file

@ -846,18 +846,24 @@ crystal-clear lake glimmering on the horizon, just to the north.">>
(ADJECTIVE SQUARE)
(CAPACITY 5)
(MAP 3)
(TEXT
(ACTION ENTER-OPENING-FCN)>
<ROUTINE ENTER-OPENING-FCN ()
<COND (<VERB? EXAMINE READ>
<TELL
"The opening sits in the upper right-hand corner of the block. It's a small
square opening, about four inches square, far too small for you
to enter, and rather shallow. Some hieroglyphs travel across the block,
cut off by the opening:|
|
">
<FIXED-FONT-ON>
<TELL "|
!-! !-!|
-> #. ! ! - # ! ! /")
(ACTION ENTER-OPENING-FCN)>
<ROUTINE ENTER-OPENING-FCN ()
<COND (<VERB? OPEN CLOSE>
-> #. ! ! - # ! ! /|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>)
(<VERB? THROUGH>
<TELL
@ -1171,7 +1177,7 @@ the dotted line unless you want the manual shipped via alternate shipping.
Include your address unless your mailing address and shipping address differ
from your postal delivery route. If you are having the manual air-freighted,
fill in your airport's zip code unless you're within thirty miles of a large
corn field. After checking whether that box has been checked, check it.
corn field. After checking whether that box has been checked, check it.|
|
Before you mail this, be certain you've read the instructions and have filled
out all three sides of the form. In case of doubt, contact the Coupon
@ -1347,11 +1353,6 @@ personality, it has seen better days.")>
(IN MAP)
(FLAGS TAKEBIT READBIT)
(DESC "stone cube")
(TEXT
"This is a small stone cube, almost four inches on a side, with ancient
markings on it. The markings look like this:|
|
# !@! :: (()) !@! //\\\\")
(SYNONYM CUBE)
(MAP 3)
(ADJECTIVE SMALL STONE)
@ -1360,7 +1361,18 @@ markings on it. The markings look like this:|
<GLOBAL PYRAMID-OPENED <>>
<ROUTINE STONE-KEY-FCN ()
<COND (<AND <VERB? PUT>
<COND (<VERB? EXAMINE READ>
<TELL
"This is a small stone cube, almost four inches on a side, with ancient
markings on it. The markings look like this:|
">
<FIXED-FONT-ON>
<TELL "|
# !@! :: (()) !@! //\\\\|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,ROCK-LOCK>>
<TELL "The ancient stones beneath your feet shake and
tremble as they move the sands. You leap out of the way and manage to
@ -1545,7 +1557,7 @@ didn't hang you with it.")
(TEXT
"The note reads:|
|
Fi aman Allah!
Fi aman Allah!|
|
Hereafter you shall pursue your fool dream of the hidden pyramid and its riches
alone. May the jackals feed well on your bones. We have left you what you need
@ -1736,8 +1748,9 @@ face, blinding you for long enough to lose track of the " D ,PRSO "." CR>
656 EX3 706 EX6 751 P6 752 P7 753 P8
754 EX7 755 EX8 756 EX9>>
<ROUTINE DESERT-TO-TABLE (SLOC "AUX" (TBL ,DESERT-TABLE) (CNT 0)
<ROUTINE DESERT-TO-TABLE (SLOC "AUX" TBL (CNT 0)
(F <FIRST? ,ENDLESS-DESERT>) N)
<SET TBL ,DESERT-TABLE>
<REPEAT ()
<COND (.F <SET N <NEXT? .F>>)
(ELSE <RETURN>)>
@ -1755,7 +1768,8 @@ face, blinding you for long enough to lose track of the " D ,PRSO "." CR>
<SET F .N>>>
<ROUTINE TABLE-TO-DESERT (SLOC
"AUX" (TBL ,DESERT-TABLE) (CNT 0))
"AUX" TBL (CNT 0))
<SET TBL ,DESERT-TABLE>
<REPEAT ()
<COND (<NOT <L? .CNT 100>>
<RETURN>)

22
crufty.xzap Normal file
View file

@ -0,0 +1,22 @@
.FUNCT THIS-IT?,OBJ,TBL,SYNS,?TMP1
FSET? OBJ,INVISIBLE /FALSE
ZERO? P-NAM /?THN3
GETPT OBJ,P?SYNONYM >SYNS
PTSIZE SYNS
DIV STACK,2
SUB STACK,1
CALL ZMEMQ,P-NAM,SYNS,STACK
ZERO? STACK /FALSE
?THN3: ZERO? P-ADJ /?ELS8
GETPT OBJ,P?ADJECTIVE >SYNS
ZERO? SYNS /FALSE
PTSIZE SYNS
SUB STACK,1
CALL ZMEMQB,P-ADJ,SYNS,STACK
ZERO? STACK /FALSE
?ELS8: ZERO? P-GWIMBIT /TRUE
FSET? OBJ,P-GWIMBIT /TRUE
RFALSE
.ENDI

View file

@ -198,6 +198,7 @@ see one of the cube rooms.")
", three rows by three columns. These bricks look as if they could be easily
removed and are marked with numerical symbols." CR>)>
<CRLF>
<FIXED-FONT-ON>
<TELL ,DASH-STR CR>
<TELL ,EX-SP-EX-STR CR>
<TELL "! ">
@ -243,6 +244,7 @@ removed and are marked with numerical symbols." CR>)>
<TELL " !" CR>
<TELL ,EX-SP-EX-STR CR>
<TELL ,DASH-STR CR>
<FIXED-FONT-OFF>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PUNCH-PANEL>
@ -351,7 +353,12 @@ removed and are marked with numerical symbols." CR>)>
<GLOBAL WRONG-BRICK <>>
<ROUTINE TAKE-BRICK-FCN ()
<COND (<AND <VERB? PUT>
<COND (<VERB? EXAMINE READ>
<FIXED-FONT-ON>
<TELL <GETP ,PRSO ,P?TEXT> CR>
<FIXED-FONT-OFF>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,PUNCH-PANEL>>
<FSET ,PRSO ,NDESCBIT>
<SETG BRICKS-TAKEN <- ,BRICKS-TAKEN 1>>

View file

@ -565,31 +565,45 @@ will be too." CR>)
(ADJECTIVE STRANGE)
(ACTION HIERO-FCN)>
<ROUTINE FIXED-FONT-ON () <PUT 0 8 <BOR <GET 0 8> 2>>>
<ROUTINE FIXED-FONT-OFF() <PUT 0 8 <BAND <GET 0 8> -3>>>
<ROUTINE PLASTER1-GLYPHS ()
<FIXED-FONT-ON>
<TELL CR "*-> # !!! :: ...> .-" CR>
<FIXED-FONT-OFF>>
<ROUTINE HIERO-FCN ("AUX" TEMP (COUNTER 0) OFFSET)
<COND (<NOT <VERB? READ EXAMINE>>
<RFALSE>)>
<COND (<AND <IN? ,WINNER ,STAIRS-BOTTOM>
<IN? ,PLASTER1 ,STAIRS-BOTTOM>>
<TELL CR
"*-> # !!! :: ...> .-" CR>)
<PLASTER1-GLYPHS>
<RTRUE>)
(<IN? ,WINNER ,WEST-END-OF-PASSAGE>
<COND (<FSET? ,PIT ,INVISIBLE>
<FIXED-FONT-ON>
<TELL CR
" .|
<-* # /!\\ - # (= =)|
|
:: *-> # !!!" CR>)
:: *-> # !!!" CR>
<FIXED-FONT-OFF>)
(T
<TELL "They're gone with the plaster." CR>)>)
(<AND <ROOM? ,NORTH-ANTECHAMBER>
<NOT <FSET? ,BURIAL-CHAMBER ,RMUNGBIT>>>
<FIXED-FONT-ON>
<TELL CR
" - !=!|
<-* # /!\\ . # ! !|
|
:: *-> # !!!" CR>)
:: *-> # !!!" CR>
<FIXED-FONT-OFF>)
(<AND <ROOM? SOUTH-ANTECHAMBER>
<NOT <FSET? ,ANNEX-DOOR ,OPENBIT>>>
<FIXED-FONT-ON>
<TELL CR
" -|
<-* # /!\\ (.) # ! !|
@ -597,7 +611,8 @@ will be too." CR>)
|
-|
:: ( # ! !|
-" CR>)
-" CR>
<FIXED-FONT-OFF>)
(<ROOM? ,ROOM-OF-NEPHTHYS ,ROOM-OF-ISIS
,ROOM-OF-SELKIS ,ROOM-OF-NEITH>
<COND (<EQUAL? ,HERE ,ROOM-OF-NEPHTHYS>
@ -616,6 +631,7 @@ will be too." CR>)
<COND (<EQUAL? .TEMP
<GET ,ORDER-LTBL .COUNTER>>
<RETURN>)>>
<FIXED-FONT-ON>
<TELL CR " " <GET ,STAR-LTBL .COUNTER> CR>
<TELL CR
" " <GET ,COMPASS-POINTS-LTBL .OFFSET> CR>
@ -623,41 +639,52 @@ will be too." CR>)
")) / # " <GET ,COMPASS-TAILS-LTBL .OFFSET> " ::|
|
<-* "
<GET ,STAR-LTBL .COUNTER> " =!= / *" CR>)
<GET ,STAR-LTBL .COUNTER> " =!= / *" CR>
<FIXED-FONT-OFF>)
(<IN? ,WINNER ,BEND-HALL>
<FIXED-FONT-ON>
<TELL
"
. = - -|
!@! ...> - # * = :: <... ;|
|
# *|
=" CR>)
=" CR>
<FIXED-FONT-OFF>)
(<IN? ,WINNER ,CENTRAL-ROOM>
<TELL
"The hieroglyphs look like this:|
|
">
<FIXED-FONT-ON>
<TELL "|
!-!|
...> -. >... # ! ! !|
!-!|
|
/ ...> / # !@!" CR>)
/ ...> / # !@!" CR>
<FIXED-FONT-OFF>)
(<EQUAL? ,HERE ,SOUTH-CENTER>
<TELL
"The hieroglyphs look like this:
|
|
"The hieroglyphs look like this:|
">
<FIXED-FONT-ON>
<TELL "|
<.> <:> <:.>|
|
<::> <::.> <:::>|
|
<:::.> <::::> <::::.>" CR>)
<:::.> <::::> <::::.>" CR>
<FIXED-FONT-OFF>)
(<EQUAL? <LOC ,WINNER> ,SKELETON-ROOM ,SILVER-ROOM ,GOLDEN-ROOM>
<TELL
"The hieroglyphs look like this:|
|
">
<FIXED-FONT-ON>
<TELL "|
-!- # !* :: # *! ::|
|
*-> # !@! >*>" CR>)
*-> # !@! >*>" CR>
<FIXED-FONT-OFF>)
(T
<TELL "I don't see them here." CR>)>
<RTRUE>>

1980
infidel.str Normal file

File diff suppressed because it is too large Load diff

58
infidel.xzap Normal file
View file

@ -0,0 +1,58 @@
.INSERT "INFIDELFREQ"
.INSERT "INFIDELDAT" ; DATA IS IN THIS FILE
.INSERT "MACROS"
.INSERT "GLOBALS"
.INSERT "SYNTAX"
.INSERT "CLOCK"
.INSERT "MAIN"
.INSERT "PARSER"
.INSERT "CRUFTY"
.INSERT "VERBS"
.INSERT "INTERRUPTS"
.INSERT "RA"
.INSERT "ANTE"
.INSERT "DIAMOND"
.INSERT "BARGE"
.INSERT "CUBE"
.INSERT "CAMP"
.INSERT "TEMPLE"
.INSERT "INFIDELSTR"
.END

200
infidelfreq.xzap Normal file
View file

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;2234 1117
.FSTR FSTR?2,"You " ;819 273
.FSTR FSTR?3,"The " ;642 214
.FSTR FSTR?4,", " ;625 625
.FSTR FSTR?5,"you " ;520 260
.FSTR FSTR?6,"your " ;483 161
.FSTR FSTR?7,"and " ;446 223
.FSTR FSTR?8,". " ;409 409
.FSTR FSTR?9,"of " ;393 393
.FSTR FSTR?10,"to " ;385 385
.FSTR FSTR?11,"are " ;330 165
.FSTR FSTR?12,"There's " ;312 39
.FSTR FSTR?13,"can't " ;290 58
.FSTR FSTR?14,"is " ;262 262
.FSTR FSTR?15,"in " ;243 243
.FSTR FSTR?16,"It's " ;235 47
.FSTR FSTR?17,"through " ;234 39
.FSTR FSTR?18,"into " ;225 75
.FSTR FSTR?19,"with " ;219 73
.FSTR FSTR?20,"that " ;216 72
.FSTR FSTR?21,"from " ;192 64
.FSTR FSTR?22,"already " ;174 29
.FSTR FSTR?23,"There " ;170 34
.FSTR FSTR?24,"You're " ;161 23
.FSTR FSTR?25,"see " ;160 80
.FSTR FSTR?26,"small " ;160 40
.FSTR FSTR?27,"which " ;156 39
.FSTR FSTR?28,"nothing " ;150 25
.FSTR FSTR?29,"on " ;141 141
.FSTR FSTR?30,"this " ;141 47
.FSTR FSTR?31,"don't " ;140 28
.FSTR FSTR?32,"down " ;138 46
.FSTR FSTR?33,"can " ;136 68
.FSTR FSTR?34,"walls " ;132 33
.FSTR FSTR?35,"out " ;130 65
.FSTR FSTR?36,"room " ;129 43
.FSTR FSTR?37,"have " ;129 43
.FSTR FSTR?38,"doorway " ;126 21
.FSTR FSTR?39,"around " ;125 25
.FSTR FSTR?40,"Sitting " ;119 17
.FSTR FSTR?41,"would " ;112 28
.FSTR FSTR?42,"west " ;105 35
.FSTR FSTR?43,"enough " ;105 21
.FSTR FSTR?44,"It " ;104 52
.FSTR FSTR?45,"like " ;102 34
.FSTR FSTR?46,"Chamber" ;102 17
.FSTR FSTR?47,"This " ;100 25
.FSTR FSTR?48,"but " ;98 49
.FSTR FSTR?49,"yourself " ;98 14
.FSTR FSTR?50,"sand " ;96 32
.FSTR FSTR?51,"just " ;96 32
.FSTR FSTR?52,"about " ;96 24
.FSTR FSTR?53,"something " ;96 12
.FSTR FSTR?54,"encampment" ;96 12
.FSTR FSTR?55,"standing " ;91 13
.FSTR FSTR?56,"it " ;90 90
.FSTR FSTR?57,"before " ;90 18
.FSTR FSTR?58,"hieroglyphs " ;90 9
.FSTR FSTR?59,"seems " ;88 22
.FSTR FSTR?60,"isn't " ;85 17
.FSTR FSTR?61,"think " ;84 21
.FSTR FSTR?62,"light " ;84 21
.FSTR FSTR?63,"ancient " ;84 14
.FSTR FSTR?64,"You'd " ;84 14
.FSTR FSTR?65,"for " ;80 40
.FSTR FSTR?66,"that" ;78 39
.FSTR FSTR?67,"here" ;78 39
.FSTR FSTR?68,"pyramid " ;78 13
.FSTR FSTR?69,"staircase" ;77 11
.FSTR FSTR?70,"stone " ;76 19
.FSTR FSTR?71,"first" ;75 25
.FSTR FSTR?72,"door " ;75 25
.FSTR FSTR?73,"square " ;75 15
.FSTR FSTR?74,"better " ;75 15
.FSTR FSTR?75,"north" ;72 24
.FSTR FSTR?76,"floor" ;72 24
.FSTR FSTR?77,"Your " ;72 18
.FSTR FSTR?78,"you're " ;72 12
.FSTR FSTR?79,"plaster " ;72 12
.FSTR FSTR?80,"sarcophagus" ;72 8
.FSTR FSTR?81,"Chamber " ;70 10
.FSTR FSTR?82,"one " ;68 34
.FSTR FSTR?83,"its " ;68 34
.FSTR FSTR?84,"north " ;68 17
.FSTR FSTR?85,"quickly " ;66 11
.FSTR FSTR?86,"Hallway" ;66 11
.FSTR FSTR?87,"middle " ;65 13
.FSTR FSTR?88,"little " ;65 13
.FSTR FSTR?89,"I " ;64 64
.FSTR FSTR?90,"has " ;64 32
.FSTR FSTR?91,"while " ;64 16
.FSTR FSTR?92,"their " ;64 16
.FSTR FSTR?93,"back " ;63 21
.FSTR FSTR?94,"doorways " ;63 9
.FSTR FSTR?95,"hieroglyphs" ;63 7
.FSTR FSTR?96,"off " ;62 31
;word frequency table of 96 most common words
WORDS:: .TABLE
FSTR?1
FSTR?2
FSTR?3
FSTR?4
FSTR?5
FSTR?6
FSTR?7
FSTR?8
FSTR?9
FSTR?10
FSTR?11
FSTR?12
FSTR?13
FSTR?14
FSTR?15
FSTR?16
FSTR?17
FSTR?18
FSTR?19
FSTR?20
FSTR?21
FSTR?22
FSTR?23
FSTR?24
FSTR?25
FSTR?26
FSTR?27
FSTR?28
FSTR?29
FSTR?30
FSTR?31
FSTR?32
FSTR?33
FSTR?34
FSTR?35
FSTR?36
FSTR?37
FSTR?38
FSTR?39
FSTR?40
FSTR?41
FSTR?42
FSTR?43
FSTR?44
FSTR?45
FSTR?46
FSTR?47
FSTR?48
FSTR?49
FSTR?50
FSTR?51
FSTR?52
FSTR?53
FSTR?54
FSTR?55
FSTR?56
FSTR?57
FSTR?58
FSTR?59
FSTR?60
FSTR?61
FSTR?62
FSTR?63
FSTR?64
FSTR?65
FSTR?66
FSTR?67
FSTR?68
FSTR?69
FSTR?70
FSTR?71
FSTR?72
FSTR?73
FSTR?74
FSTR?75
FSTR?76
FSTR?77
FSTR?78
FSTR?79
FSTR?80
FSTR?81
FSTR?82
FSTR?83
FSTR?84
FSTR?85
FSTR?86
FSTR?87
FSTR?88
FSTR?89
FSTR?90
FSTR?91
FSTR?92
FSTR?93
FSTR?94
FSTR?95
FSTR?96
.ENDT
.ENDI

View file

@ -28,6 +28,7 @@
<CONSTANT M-OBJDESC 5>
<ROUTINE GO ()
<PUTB ,P-LEXV 0 59>
;"put interrupts on clock chain"
<RANDOMIZE-HOLES>
<ENABLE <QUEUE I-GINANDTONIC -1>>
@ -195,7 +196,9 @@
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION> T)
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE>
<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION> T)
(T <SET V <CLOCKER>>)>)>>>
<GLOBAL P-MULT <>>

View file

@ -285,8 +285,9 @@ long description (fdesc or ldesc), otherwise will print short."
<ROUTINE V-VERSION ("AUX" (CNT 17))
<TELL
"INFIDEL|
Copyright 1983 by Infocom, Inc. All rights reserved.|
INFIDEL is a trademark of Infocom, Inc.|
Infocom interactive fiction - an adventure story|
Copyright (c) 1983 by Infocom, Inc. All rights reserved.|
INFIDEL is a registered trademark of Infocom, Inc.|
Release ">
<PRINTN <BAND <GET 0 1> *3777*>>
<TELL " / Serial number ">
@ -785,7 +786,7 @@ your problem to the address provided in your documentation." CR>>
<GLOBAL COPR-NOTICE
" a transcript of interaction with INFIDEL.|
INFIDEL is a trademark of Infocom, Inc.|
INFIDEL is a registered trademark of Infocom, Inc.|
Copyright (c) 1983 Infocom, Inc. All rights reserved.|">
<ROUTINE V-SCRIPT ()
@ -1301,7 +1302,7 @@ a few moments." CR>
<ROUTINE V-LEAP ("AUX" T S) #DECL ((T) <OR FALSE TABLE>)
<COND (<AND ,PRSO
<NOT <PRSO? ,INTDIR>>>
<NOT <PRSO? ,INTDIR ,MAST-HOLE>>>
<PERFORM V?BOARD ,PRSO>
<RTRUE>)
(<SET T <GETPT ,HERE ,P?DOWN>>
@ -1342,10 +1343,11 @@ a few moments." CR>
"Wheeeeeeeeee!!!!!"
"Do you expect me to applaud?">>
<GLOBAL JUMPLOSS
<LTABLE "You should have looked before you leaped."
"I'm afraid that leap was a bit much for your weak frame."
"In the movies, your life would be passing in front of your eyes."
<GLOBAL JUMPLOSS <LTABLE "You should have looked before you leaped."
"I'm afraid that leap was a bit much for your weak
frame."
"In the movies, your life would be passing in front of
your eyes."
"Geronimo.....">>
<ROUTINE PRE-READ ()
@ -2571,7 +2573,10 @@ specify which preposition you'd like to use next time, like LOOK AT THE " D ,PRS
<COND (<NOT <EQUAL? ,PRSO ,WINNER>>
<TELL "The " D ,PRSO " doesn't need any help." CR>
<RTRUE>)>)>
<TELL "You got yourself into this -- now get yourself out of it." CR>>
<TELL
"You got yourself into this -- now get yourself out of it.|
[If you really need help, you can order an InvisiClues Hint Booklet
and a complete map by using the order form that came in your package.]" CR>>
<ROUTINE V-STAND-UNDER ()
<COND (<AND <EQUAL? ,PRSO ,CRATE ,PLANE ,PARACHUTE>

73
zload.zil Normal file
View file

@ -0,0 +1,73 @@
"
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<SNAME "INFIDEL">
<GC-MON <>>
;<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<GC 0 T 5>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
;<SETG SHORT-STRINGS 2>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "INFIDEL: Interlogic Adventure Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<IFILE "GLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "CLOCK" T>
<IFILE "ZMAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
;<IFILE "INTERRUPTS" T>
<IFILE "RA" T>
;<IFILE "ANTE" T>
;<IFILE "DIAMOND" T>
;<IFILE "BARGE" T>
;<IFILE "CUBE" T>
<IFILE "CAMP" T>
;<IFILE "TEMPLE" T>
<PRINC "INFIDEL: Interlogic Adventure Fiction
Get ready!">

364
zmain.zil Normal file
View file

@ -0,0 +1,364 @@
"MAIN for
INFIDEL
Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
<CONSTANT M-FATAL 2>
<CONSTANT M-HANDLED 1>
<CONSTANT M-NOT-HANDLED <>>
<CONSTANT M-OBJECT <>>
<CONSTANT M-BEG 1>
<CONSTANT M-END 6>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<ROUTINE GO ()
;"put interrupts on clock chain"
;<RANDOMIZE-HOLES>
;<ENABLE <QUEUE I-GINANDTONIC -1>>
;<ENABLE <QUEUE I-PARACHUTE -1>>
;<ENABLE <QUEUE I-GROWL -1>>
<REMOVE ,WATER>
;"set up and go"
<SETG LIT T>
<SETG WINNER ,ADVENTURER>
<SETG PLAYER ,WINNER>
<SETG HERE ,TENT>
<SETG P-IT-LOC ,HERE>
<SETG P-IT-OBJECT <>>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<TELL ,START-STR CR>
<CRLF>
<V-VERSION>
<CRLF>)>
<MOVE ,WINNER ,COT>
<V-LOOK>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
<REPEAT ()
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET NUM
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT> <SET OBJ <>>)
(T <SET OBJ <GET ,P-PRSI 1>>)>
.OCNT)
(<G? .ICNT 1>
<SET PTBL <>>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T 1)>>
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
<COND (<==? ,PRSA ,V?WALK> <SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM ,PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL "It's too dark to see." CR>)
(T
;"** M" <COND (.OBJ
<COND (<AND <FSET? .OBJ ,CONTBIT>
<NOT <FSET? .OBJ ,OPENBIT>>>
<TELL "Better open the " D .OBJ
" first." CR>
<THIS-IS-IT .OBJ>
<SET V <>>)
(<NOT <FSET? .OBJ ,CONTBIT>>
<TELL "There's nothing in that." CR>
<SET V <>>)
(T
<TELL "It's not in that." CR>
<SET V <>>)>)
(T
<TELL "There isn't anything to ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (,P-OFLAG
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2>
<GETB .TMP 3>>)>
<TELL "!" CR>
<SET V <>>)>)>)
(T
<SETG P-NOT-HERE 0>
<SETG P-MULT <>>
<COND (<G? .NUM 1> <SETG P-MULT T>)>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
<COND (<G? ,P-NOT-HERE 0>
<TELL "The ">
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
<TELL "other ">)>
<TELL "object">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "s">)>
<TELL " that you mentioned ">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "are">)
(T <TELL "is">)>
<TELL "n't here." CR>)
(<NOT .TMP>
<TELL
"I don't know what you're referring to." CR>)>
<RETURN>)
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<COND (<VERB? COMPARE> T)
(<G? .NUM 1>
<COND (<EQUAL? .OBJ1
,NOT-HERE-OBJECT>
<SETG P-NOT-HERE
<+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
,PRSI
<EQUAL? <GET <GET ,P-ITBL
,P-NC1>
0>
,W?ALL>
<NOT <IN? ,PRSO ,PRSI>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL?
<LOC .OBJ1>
,WINNER
,HERE>>
<NOT <FSET?
<LOC .OBJ1>
,TRANSBIT>>>
<FSET? .OBJ1
,DONTTAKE>
<EQUAL? .OBJ1
,PLASTER
,PLASTER1>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? DROP>
<NOT <IN? .OBJ1 ,WINNER>>
<NOT <IN? ,P-IT-OBJECT
,WINNER>>>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
<SET TMP T>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
<COND (<NOT <==? .V ,M-FATAL>>
;<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
;"Removing this code should fix the problem that AGAIN
loses when in a vehicle and it is the PRSO."
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION WAIT> T)
(T
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
<SETG L-PRSI ,PRSI>)>
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION> T)
(T <SET V <CLOCKER>>)>)>>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<GLOBAL L-PRSA <>>
<GLOBAL L-PRSO <>>
<GLOBAL L-PRSI <>>
%<COND (<GASSIGNED? PREDGEN>
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND
(<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<LOC .O>
<SET V <APPLY <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <APPLY <GETP .O ,P?ACTION>>>>
.V)
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>)>
<COND (<NOT <==? .V ,M-FATAL>>
<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>)
(T
'<PROG ()
<SETG PDEBUG <>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<COND (,PDEBUG
<TELL "** PERFORM: PRSA = ">
<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
<TELL " | PRSO = " D .O>)>
<COND (.I <TELL " | PRSI = " D .I>)>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND (<SET V <D-APPLY "Actor"
<GETP ,WINNER ,P?ACTION>>> .V)
(<SET V <D-APPLY "Room (M-BEG)"
<GETP <LOC ,WINNER> ,P?ACTION>
,M-BEG>> .V)
(<SET V <D-APPLY "Preaction"
<GET ,PREACTIONS .A>>> .V)
(<AND .I <SET V <D-APPLY "PRSI"
<GETP .I ,P?ACTION>>>> .V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<LOC .O>
<SET V <D-APPLY "Container"
<GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <D-APPLY "PRSO"
<GETP .O ,P?ACTION>>>>
.V)
(<SET V <D-APPLY <>
<GET ,ACTIONS .A>>> .V)>)>
<COND (<NOT <==? .V ,M-FATAL>>
<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <D-APPLY "Room (M-END)"
<GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<DEFINE D-APPLY (STR FCN "OPTIONAL" FOO "AUX" RES)
<COND (<NOT .FCN> <>)
(T
<COND (,PDEBUG
<COND (<NOT .STR>
<TELL CR " Default ->" CR>)
(T <TELL CR " " .STR " -> ">)>)>
<SET RES
<COND (<ASSIGNED? FOO>
<APPLY .FCN .FOO>)
(T <APPLY .FCN>)>>
<COND (<AND ,PDEBUG .STR>
<COND (<==? .RES 2>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
>)>
<GLOBAL START-STR
"You wake slowly, sit up in your bunk, look around the tent, and try to ignore
the pounding in your head, the cottony taste in your mouth, and the ache in
your stomach. The droning of a plane's engine breaks the stillness and you
realize that things outside are quiet -- too quiet. You know that this can
mean only one thing: your workmen have deserted you. They complained over the
last few weeks, grumbling about the small pay and lack of food, and your
inability to locate the pyramid. And after what you stupidly did yesterday,
trying to make them work on a holy day, their leaving is understandable.|
|
The Professor's map was just an ancient map -- as worthless as an ice cube in
the Arctic without an instrument fine enough to accurately measure longitude
and latitude. You knew that the site was nearby. You dug, and you ordered the
workers to dig, even without the box. As you listen to the plane and rub your
aching eyes, you pray they left you supplies enough to find the pyramid and to
survive, and that the plane's carrying the long-overdue box.">