Revision 26 (Original Source)
authorhistoricalsource <historicalsoftware@textfiles.com>
Sun, 14 Apr 2019 04:37:50 +0000 (00:37 -0400)
committerhistoricalsource <historicalsoftware@textfiles.com>
Sun, 14 Apr 2019 04:37:50 +0000 (00:37 -0400)
28 files changed:
README.md [new file with mode: 0644]
clothes.zap [new file with mode: 0644]
clothes.zil [new file with mode: 0644]
extras.zap [new file with mode: 0644]
extras.zil [new file with mode: 0644]
globals.zap [new file with mode: 0644]
globals.zil [new file with mode: 0644]
hero.zap [new file with mode: 0644]
hero.zil [new file with mode: 0644]
island.zap [new file with mode: 0644]
island.zil [new file with mode: 0644]
misc.zap [new file with mode: 0644]
misc.zil [new file with mode: 0644]
parser.zap [new file with mode: 0644]
parser.zil [new file with mode: 0644]
r1.errors [new file with mode: 0644]
r1.zap [new file with mode: 0644]
r1.zil [new file with mode: 0644]
r1.zip [new file with mode: 0644]
r1dat.zap [new file with mode: 0644]
r1freq.xzap [new file with mode: 0644]
r1pur.zap [new file with mode: 0644]
r1str.zap [new file with mode: 0644]
ship.zap [new file with mode: 0644]
ship.zil [new file with mode: 0644]
syntax.zil [new file with mode: 0644]
verbs.zap [new file with mode: 0644]
verbs.zil [new file with mode: 0644]

diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..dc6e6a9
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# plunderedhearts
diff --git a/clothes.zap b/clothes.zap
new file mode 100644 (file)
index 0000000..79e7008
--- /dev/null
@@ -0,0 +1,788 @@
+
+
+       .FUNCT  PILE-OF-CLOTHES-F
+       EQUAL?  PRSA,V?PUT-ON,V?EXAMINE,V?TAKE /?CCL3
+       EQUAL?  PRSA,V?WEAR \FALSE
+?CCL3: EQUAL?  HERE,LANDING,CAPT-QUARTERS \?CCL8
+       CALL    CANT-REACH,PRSO
+       RSTACK  
+?CCL8: CALL    ITAKE,FALSE-VALUE
+       EQUAL?  STACK,M-FATAL,FALSE-VALUE /FALSE
+       REMOVE  PILE-OF-CLOTHES
+       FSET    PILE-OF-CLOTHES,TOUCHBIT
+       MOVE    SHIRT,PROTAGONIST
+       MOVE    PANTS,PROTAGONIST
+       FCLEAR  SHIRT,NDESCBIT
+       FCLEAR  PANTS,NDESCBIT
+       FSET    SHIRT,TOUCHBIT
+       FSET    PANTS,TOUCHBIT
+       INC     'SCORE
+       EQUAL?  PRSA,V?EXAMINE \?CCL13
+       PRINTI  "To get a better look, y"
+       JUMP    ?CND11
+?CCL13:        PRINTC  89
+?CND11:        PRINTI  "ou pick up"
+       CALL    TPRINT,PILE-OF-CLOTHES
+       PRINTI  ". It separates into a pair of "
+       PRINTD  PANTS
+       PRINTI  " and"
+       CALL    ARPRINT,SHIRT
+       RSTACK  
+
+
+       .FUNCT  GEN-CLOTHES,?TMP1
+       GET     P-NAMW,0 >?TMP1
+       GET     P-NAMW,1
+       EQUAL?  W?CLOTHES,?TMP1,STACK \?CCL3
+       EQUAL?  HERE,SLEEPING-CUPBOARD \?CCL6
+       FSET?   SHIRT,TOUCHBIT /?CCL6
+       FSET?   PANTS,TOUCHBIT /?CCL6
+       RETURN  PILE-OF-CLOTHES
+?CCL6: EQUAL?  PRSA,V?TAKE-OFF,V?REMOVE \FALSE
+       CALL    PRE-DOFF
+       ZERO?   STACK /?CCL14
+       RETURN  NOT-HERE-OBJECT
+?CCL14:        CALL    REMOVE-CLOTHES,TRUE-VALUE
+       RETURN  NOT-HERE-OBJECT
+?CCL3: GET     P-NAMW,0 >?TMP1
+       GET     P-NAMW,1
+       EQUAL?  W?DRESS,?TMP1,STACK \FALSE
+       EQUAL?  PRSA,V?TAKE-OFF,V?REMOVE \?CCL19
+       CALL    PRE-DOFF
+       ZERO?   STACK /?CCL22
+       RETURN  NOT-HERE-OBJECT
+?CCL22:        CALL    REMOVE-CLOTHES,TRUE-VALUE
+       RETURN  NOT-HERE-OBJECT
+?CCL19:        EQUAL?  PRSA,V?DROP \FALSE
+       FSET?   GOWN,WORNBIT \?CCL27
+       CALL    HELD?,DRESS
+       ZERO?   STACK /?CCL27
+       PRINTC  91
+       PRINTD  DRESS
+       PRINTC  93
+       CRLF    
+       RETURN  DRESS
+?CCL27:        FSET?   DRESS,WORNBIT \?CCL31
+       CALL    HELD?,GOWN
+       ZERO?   STACK /?CCL31
+       PRINTC  91
+       PRINTD  GOWN
+       PRINTC  93
+       CRLF    
+       RETURN  GOWN
+?CCL31:        CALL    DO-FIRST,STR?296
+       RETURN  NOT-HERE-OBJECT
+
+
+       .FUNCT  GARMENT-F
+       EQUAL?  PRSA,V?EXAMINE \?CCL3
+       EQUAL?  PRSO,DRESS \?CCL6
+       ZERO?   WET-DRESS /?CCL9
+       CALL    WET-DESC,DRESS
+       RTRUE   
+?CCL9: PRINTI  "It is your favorite old frock, looking rather bedraggled without its hoops"
+       FSET?   DRESS,EVERYBIT /?CND10
+       FSET    DRESS,EVERYBIT
+       PRINTI  ", which you hadn't time to put on during the pirate attack"
+?CND10:        PRINTI  ". "
+       FSET?   DRESS,MUNGBIT \?CCL14
+       PRINTI  "There is a tear out of the skirt"
+       JUMP    ?CND12
+?CCL14:        PRINTI  "The worn fabric of the skirt often catches on things, tearing"
+?CND12:        PRINT   PCR
+       RTRUE   
+?CCL6: EQUAL?  PRSO,GOWN \?CCL16
+       PRINTI  "Of cream silk, heavily embroidered on the stiffened skirt and stomacher,"
+       CALL    TPRINT,GOWN
+       PRINTI  " is a work of art"
+       PRINT   PCR
+       RTRUE   
+?CCL16:        EQUAL?  PRSO,SHIRT \?CCL18
+       CALL    CTPRINT,SHIRT
+       PRINTI  " is clean and not too big"
+       FSET?   SHIRT,MUNGBIT \?CND19
+       PRINT   TEAR
+?CND19:        PRINT   PCR
+       RTRUE   
+?CCL18:        CALL    CTPRINT,PANTS
+       PRINTR  " are about your size."
+?CCL3: EQUAL?  PRSA,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL22
+       FSET?   PRSO,WORNBIT \?CCL22
+       PRINTI  "Just"
+       CALL    APRINT,CHEMISE
+       PRINTI  ", and a couple fleas"
+       PRINT   PCR
+       RTRUE   
+?CCL22:        EQUAL?  PRSA,V?WEAR \?CCL26
+       EQUAL?  PRSO,GOWN,DRESS \?PRD31
+       FSET?   SHIRT,WORNBIT /?CTR28
+       FSET?   PANTS,WORNBIT /?CTR28
+?PRD31:        EQUAL?  PRSO,PANTS,SHIRT \?CCL29
+       FSET?   DRESS,WORNBIT /?CTR28
+       FSET?   GOWN,WORNBIT \?CCL29
+?CTR28:        CALL    CTPRINT,PRSO
+       PRINTI  " doesn't fit over what you are already wearing"
+       PRINT   PCR
+       RTRUE   
+?CCL29:        ZERO?   WET-DRESS /?CCL41
+       EQUAL?  PRSO,DRESS \?CCL41
+       PRINTR  "The clammy cotton makes it too uncomfortable to wear."
+?CCL41:        FSET    PRSO,WORNBIT
+       MOVE    PRSO,PROTAGONIST
+       EQUAL?  PRSO,SHIRT,PANTS \?CND44
+       IN?     PILE-OF-CLOTHES,SLEEPING-CUPBOARD \?CND44
+       FSET    PILE-OF-CLOTHES,TOUCHBIT
+       REMOVE  PILE-OF-CLOTHES
+       INC     'SCORE
+?CND44:        EQUAL?  PRSO,PANTS \?CCL50
+       PRINTI  "You tuck"
+       CALL    TPRINT,CHEMISE
+       FSET?   SHIRT,WORNBIT \?CND51
+       SET     'BOY-DRESS?,TRUE-VALUE
+       FSET    CHEMISE,EVERYBIT
+       PRINTI  " and"
+       CALL    TPRINT,SHIRT
+?CND51:        PRINTI  " into the pants. You look a little fat, but now you can move freely"
+       PRINT   PCR
+       RTRUE   
+?CCL50:        EQUAL?  PRSO,SHIRT \?CCL54
+       FSET?   PANTS,WORNBIT \?CND55
+       FSET    CHEMISE,EVERYBIT
+       SET     'BOY-DRESS?,TRUE-VALUE
+?CND55:        PRINTI  "It fits loosely, masking your figure"
+       PRINT   PCR
+       RTRUE   
+?CCL54:        FSET    CHEMISE,EVERYBIT
+       ZERO?   GOWN-POINT \?CCL59
+       EQUAL?  PRSO,GOWN \?CCL59
+       SET     'GOWN-POINT,TRUE-VALUE
+       INC     'SCORE
+       CALL    CTPRINT,GOWN
+       PRINTI  " fits perfectly, the creamy silk bringing a glow to your cheeks. You comb your hair with your fingers and bite your lips to make them red"
+       PRINT   PCR
+       RTRUE   
+?CCL59:        PRINTI  "You don"
+       CALL    TRPRINT,PRSO
+       RSTACK  
+?CCL26:        EQUAL?  PRSA,V?REMOVE,V?TAKE-OFF \?CCL63
+       FSET?   PRSO,WORNBIT \?CCL63
+       EQUAL?  PRSO,DRESS \?CCL68
+       FCLEAR  PRSO,WORNBIT
+       FCLEAR  CHEMISE,EVERYBIT
+       PRINTI  "You take off"
+       CALL    TPRINT,DRESS
+       PRINT   PCR
+       RTRUE   
+?CCL68:        EQUAL?  PRSO,PANTS,SHIRT \?CND69
+       SET     'BOY-DRESS?,FALSE-VALUE
+?CND69:        FCLEAR  PRSO,WORNBIT
+       FCLEAR  CHEMISE,EVERYBIT
+       PRINTI  "You remove"
+       CALL    TPRINT-PRSO
+       PRINTI  ", exposing your "
+       EQUAL?  PRSO,PANTS \?CCL73
+       PRINTI  "ankles"
+       JUMP    ?CND71
+?CCL73:        EQUAL?  PRSO,SHIRT \?CCL75
+       PRINTI  "elbows"
+       JUMP    ?CND71
+?CCL75:        PRINTD  CHEMISE
+?CND71:        PRINT   PCR
+       RTRUE   
+?CCL63:        EQUAL?  PRSA,V?RIP /?CTR76
+       EQUAL?  PRSA,V?CUT \?CCL77
+       CALL    HELD?,DAGGER
+       ZERO?   STACK /?CCL77
+?CTR76:        EQUAL?  PRSO,DRESS \?CCL84
+       LOC     RAG
+       ZERO?   STACK \?CCL87
+       MOVE    RAG,PROTAGONIST
+       EQUAL?  WET-DRESS,WATER \?CCL90
+       SET     'WET-RAG,WATER
+       JUMP    ?CND88
+?CCL90:        EQUAL?  WET-DRESS,RUM \?CCL92
+       SET     'WET-RAG,RUM
+       JUMP    ?CND88
+?CCL92:        SET     'WET-RAG,FALSE-VALUE
+?CND88:        FSET    RAG,TOUCHBIT
+       FSET?   DRESS,MUNGBIT /?CND93
+       FSET    DRESS,MUNGBIT
+?CND93:        PRINTI  "You "
+       EQUAL?  PRSA,V?CUT \?CCL97
+       MOVE    DAGGER,PROTAGONIST
+       PRINTI  "cut"
+       JUMP    ?CND95
+?CCL97:        PRINTI  "rip"
+?CND95:        PRINTI  " a large rag out of"
+       CALL    TRPRINT,DRESS
+       RSTACK  
+?CCL87:        CALL    HELD?,RAG
+       ZERO?   STACK \?CCL99
+       PRINTI  "There already is a rag around here somewhere"
+       PRINT   PCR
+       RTRUE   
+?CCL99:        PRINT   YOU-HAVE-ALREADY
+       CALL    ARPRINT,RAG
+       RSTACK  
+?CCL84:        EQUAL?  PRSO,GOWN \?CCL101
+       CALL    CTPRINT,GOWN
+       PRINTI  " is too fine to ruin"
+       PRINT   PCR
+       RTRUE   
+?CCL101:       PRINTI  "The fabric is too tightly woven"
+       PRINT   PCR
+       RTRUE   
+?CCL77:        EQUAL?  PRSA,V?TAKE \FALSE
+       EQUAL?  PRSO,PANTS,SHIRT \FALSE
+       IN?     PILE-OF-CLOTHES,HERE \FALSE
+       CALL    PERFORM,V?TAKE,PILE-OF-CLOTHES
+       RTRUE   
+
+
+       .FUNCT  RAG-F
+       EQUAL?  PRSA,V?SOAK \?CCL3
+       EQUAL?  HERE,BY-SHIP,LAGOON,SHALLOWS /?CTR5
+       EQUAL?  HERE,BEACH,MAIN-DECK \?CCL6
+?CTR5: CALL    DIP-DRESS
+       RSTACK  
+?CCL6: CALL    PROPOSE
+       RSTACK  
+?CCL3: CALL    ADJ-USED,A?WET
+       ZERO?   STACK /?CCL10
+       ZERO?   WET-RAG \?CCL10
+       PRINT   YOU-CANT-SEE-ANY
+       PRINTI  "wet rag here"
+       PRINT   PCR
+       RTRUE   
+?CCL10:        EQUAL?  PRSA,V?EXAMINE \?CCL14
+       ZERO?   WET-RAG \?CCL17
+       PRINTI  "It is a fairly hefty scrap of fabric"
+       PRINT   PCR
+       RTRUE   
+?CCL17:        CALL    WET-DESC,RAG
+       RSTACK  
+?CCL14:        EQUAL?  PRSA,V?RIP \?CCL19
+       CALL    WASTES
+       RSTACK  
+?CCL19:        EQUAL?  PRSA,V?TIE \?CCL21
+       PRINTI  "It won't stay tied"
+       PRINT   PCR
+       RTRUE   
+?CCL21:        EQUAL?  PRSA,V?PUT \?CCL23
+       EQUAL?  PRSI,GATE,FENCE \?CCL26
+       CALL    WASTES
+       RSTACK  
+?CCL26:        EQUAL?  PRSI,FUSE \FALSE
+       CALL    PROPOSE
+       RSTACK  
+?CCL23:        EQUAL?  PRSA,V?THROW \FALSE
+       EQUAL?  PRSI,FUSE \FALSE
+       CALL    PERFORM,V?THROW-OVER,RAG,FENCE
+       RTRUE   
+
+
+       .FUNCT  WET-DESC,OBJ
+       PRINTI  "The "
+       PRINTD  OBJ
+       PRINTI  " is soaked and dripping with "
+       EQUAL?  OBJ,RAG \?PRD5
+       EQUAL?  WET-RAG,RUM /?CTR2
+?PRD5: EQUAL?  OBJ,DRESS \?CCL3
+       EQUAL?  WET-DRESS,RUM \?CCL3
+?CTR2: PRINTI  "rum"
+       JUMP    ?CND1
+?CCL3: EQUAL?  OBJ,RAG \?PRD12
+       EQUAL?  WET-RAG,WATER /?CCL10
+?PRD12:        EQUAL?  OBJ,DRESS \?CND1
+       EQUAL?  WET-DRESS,WATER \?CND1
+?CCL10:        PRINTI  "water"
+?CND1: PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  CHEMISE-F
+       EQUAL?  PRSA,V?EXAMINE \?CCL3
+       EQUAL?  PRSO,CHEMISE \?CCL6
+       FSET?   CHEMISE,EVERYBIT \?CCL9
+       PRINTI  "It's covered by other clothes"
+       PRINT   PCR
+       RTRUE   
+?CCL9: CALL    CTPRINT,CHEMISE
+       PRINTI  ", kneelength and sleeveless, clings damply to your legs and torso"
+       FSET?   CHEMISE,MUNGBIT \?CND10
+       PRINT   TEAR
+?CND10:        PRINT   PCR
+       RTRUE   
+?CCL6: EQUAL?  PRSO,SHOES \FALSE
+       PRINTI  "They are dainty yet practical kidskin shoes"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL15
+       EQUAL?  PRSO,CHEMISE \?CCL18
+       PRINTI  "Just you and your "
+       PRINTD  UNMENTIONABLES
+       PRINT   PCR
+       RTRUE   
+?CCL18:        PRINTI  "Your feet are in"
+       CALL    TRPRINT,SHOES
+       RSTACK  
+?CCL15:        EQUAL?  PRSA,V?REMOVE,V?TAKE-OFF \?CCL20
+       PRINTI  "But"
+       EQUAL?  PRSO,SHOES \?CCL23
+       CALL    TPRINT-PRSO
+       PRINTI  " are so comfortable"
+       JUMP    ?CND21
+?CCL23:        PRINTI  " that wouldn't be decent"
+?CND21:        PRINTR  "!"
+?CCL20:        EQUAL?  PRSA,V?CUT,V?RIP \FALSE
+       PRINT   YOU-CANT
+       PRINTI  "bring yourself to ruin"
+       CALL    TRPRINT,CHEMISE
+       RSTACK  
+
+
+       .FUNCT  GARTER-F
+       EQUAL?  PRSA,V?WEAR \?CCL3
+       ZERO?   MUZZLED /?CCL6
+       CALL    PERFORM,V?TAKE,GARTER
+       RTRUE   
+?CCL6: FSET?   PANTS,WORNBIT \?CCL8
+       PRINTI  "One doesn't wear"
+       CALL    APRINT,GARTER
+       PRINTI  " over "
+       PRINTD  PANTS
+       PRINTR  "!"
+?CCL8: FSET    GARTER,WORNBIT
+       MOVE    GARTER,PROTAGONIST
+       PRINTI  "You slide"
+       CALL    TPRINT,GARTER
+       PRINTI  " up around your thigh"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?TAKE,V?REMOVE \?CCL10
+       ZERO?   MUZZLED /?CCL10
+       ZERO?   CROC-SLEEP \?CCL15
+       PRINTI  "The reptile surges forward as you remove"
+       CALL    TPRINT,GARTER
+       CALL    JIGS-UP,STR?329
+       RSTACK  
+?CCL15:        SET     'MUZZLED,FALSE-VALUE
+       FCLEAR  GARTER,TRYTAKEBIT
+       FSET    GARTER,TAKEBIT
+       MOVE    GARTER,PROTAGONIST
+       PRINTR  "You slip it off the scaly snout."
+?CCL10:        EQUAL?  PRSA,V?TAKE \?CCL17
+       FSET?   GARTER,TOUCHBIT /?CCL20
+       EQUAL?  HERE,KITCHEN \?CCL20
+       CALL    ITAKE,FALSE-VALUE
+       EQUAL?  STACK,M-FATAL,FALSE-VALUE /?CCL20
+       PRINTI  "Taken.
+   Lucy kisses "
+       PRINTD  HEAD
+       PRINTI  " and returns to the fire, humming"
+       PRINT   PCR
+       RTRUE   
+?CCL20:        IN?     GARTER,DAD \FALSE
+       MOVE    GARTER,PROTAGONIST
+       PRINTR  """Take it, dear,"" Papa says."
+?CCL17:        EQUAL?  PRSA,V?PUT-ON,V?PUT \?CCL27
+       EQUAL?  PRSI,GARTER \?CCL27
+       IN?     GARTER,PROTAGONIST /?CCL32
+       PRINT   YNH
+       CALL    TRPRINT,GARTER
+       RSTACK  
+?CCL32:        EQUAL?  P-PRSA-WORD,W?THROW \?CCL34
+       EQUAL?  PRSO,STONE \?CCL34
+       CALL    PERFORM,V?THROW,STONE,GARTER
+       RTRUE   
+?CCL34:        EQUAL?  PRSO,STONE \?CCL38
+       FSET?   GARTER,WORNBIT \?CCL41
+       PRINTI  "Not while you're wearing"
+       CALL    TRPRINT,GARTER
+       RSTACK  
+?CCL41:        MOVE    STONE,GARTER
+       ZERO?   PENULTIM-POINT \?CND42
+       SET     'PENULTIM-POINT,TRUE-VALUE
+       INC     'SCORE
+?CND42:        PRINTI  "You slip"
+       CALL    TPRINT,STONE
+       PRINTI  " into"
+       CALL    TRPRINT,GARTER
+       RSTACK  
+?CCL38:        PRINTI  "It falls through"
+       CALL    TRPRINT,GARTER
+       RSTACK  
+?CCL27:        EQUAL?  PRSA,V?KILL \?CCL45
+       FSET?   PRSO,ACTORBIT /?CTR44
+       EQUAL?  PRSO,CROC \?CCL45
+?CTR44:        CALL    PROPOSE
+       RSTACK  
+?CCL45:        EQUAL?  PRSA,V?SHOOT,V?THROW \?CCL51
+       IN?     STONE,GARTER \?CCL54
+       ZERO?   PRSI \?CCL57
+       CALL    PERFORM,V?SHOOT,STONE
+       RTRUE   
+?CCL57:        CALL    WASTES
+       RSTACK  
+?CCL54:        ZERO?   PRSI \?CCL60
+       EQUAL?  PRSA,V?THROW \?CCL60
+       MOVE    GARTER,HERE
+       PRINTR  "Thrown."
+?CCL60:        EQUAL?  PRSO,STONE \FALSE
+       CALL    DO-FIRST,STR?330,GARTER
+       RSTACK  
+?CCL51:        EQUAL?  PRSA,V?SSHOOT \?CCL66
+       EQUAL?  PRSO,GARTER \?CCL66
+       CALL    HELD?,STONE
+       ZERO?   STACK /?CCL66
+       CALL    PERFORM,V?SHOOT,PRSI,STONE
+       RTRUE   
+?CCL66:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       CALL    CTPRINT,GARTER
+       PRINTI  " is "
+       ZERO?   MUZZLED /?CCL74
+       PRINTI  "stretched taut around the jaws of"
+       CALL    TPRINT,CROC
+       PRINT   PCR
+       RTRUE   
+?CCL74:        PRINTI  "made of abnormally strong, red, stretchy lace"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  UNMENTIONABLES-F
+       PRINTI  "Shh! Why do you think they're called "
+       PRINTD  UNMENTIONABLES
+       PRINTR  "?"
+
+
+       .FUNCT  RETICULE-F
+       EQUAL?  PRSA,V?PUT,V?REMOVE,V?DROP /?PRD5
+       EQUAL?  PRSA,V?PUT-UNDER,V?PUT-THROUGH,V?PUT-ON /?PRD5
+       EQUAL?  PRSA,V?THROW-TO,V?THROW-AT,V?THROW /?PRD5
+       EQUAL?  PRSA,V?GIVE \?CCL3
+?PRD5: EQUAL?  PRSO,RETICULE \?CCL3
+       PRINTI  "A lady is never without her reticule"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?PUT \?CCL11
+       EQUAL?  PRSO,RAPIER,COFFER \?CCL11
+       CALL    CTPRINT,PRSO
+       PRINTI  " won't fit in"
+       CALL    TRPRINT,RETICULE
+       RSTACK  
+?CCL11:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       PRINTI  "You and Mama made the little drawstring bag a few months before she passed on. It's amazing how much it can hold"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  BANKNOTE-F
+       EQUAL?  PRSA,V?EXAMINE \?CCL3
+       PRINTI  "This is"
+       CALL    TPRINT,BANKNOTE
+       CALL    IN-PACKAGE
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?POINT,V?WAVE \FALSE
+       IN?     BUTLER,HERE \FALSE
+       FSET?   BUTLER,DEADBIT /FALSE
+       CALL    BRIBE-BUTLER,PRSO
+       RSTACK  
+
+
+       .FUNCT  SALTS-F,PER=0
+       EQUAL?  PRSA,V?SMELL \?CCL3
+       PRINTI  "You jerk"
+       CALL    TPRINT,SALTS
+       PRINTI  " away from your nose after one brief ammoniac whiff. Your burning nostrils make you feel more alert"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?WAVE \?CCL5
+       EQUAL?  HERE,DUNGEON \?CCL8
+       FSET?   HERO,DEADBIT \?CCL8
+       CALL    PERFORM,V?ALARM,HERO,SALTS
+       RTRUE   
+?CCL8: CALL    PERFORM,V?SMELL,SALTS
+       RTRUE   
+?CCL5: EQUAL?  PRSA,V?USE \?CCL12
+       ZERO?   PRSI \?CCL15
+       CALL    FIND-IN,HERE,ACTORBIT,STR?331 >PER
+       ZERO?   PER /?CCL18
+       EQUAL?  PER,CRULLEY /?CCL18
+       CALL    PERFORM,V?ALARM,PER,SALTS
+       RTRUE   
+?CCL18:        CALL    PERFORM,V?SMELL,SALTS
+       RTRUE   
+?CCL15:        FSET?   PRSI,ACTORBIT \?CCL22
+       CALL    PERFORM,V?ALARM,PRSI,SALTS
+       RTRUE   
+?CCL22:        PRINT   HUH
+       RTRUE   
+?CCL12:        EQUAL?  PRSA,V?PUT-ON,V?PUT-UNDER \?CCL24
+       FSET?   PRSI,ACTORBIT \?CCL24
+       CALL    PERFORM,V?ALARM,PRSI,SALTS
+       RTRUE   
+?CCL24:        EQUAL?  PRSA,V?GIVE \?CCL28
+       CALL    PERFORM,V?ALARM,PRSI,SALTS
+       RTRUE   
+?CCL28:        EQUAL?  PRSA,V?SGIVE,V?ALARM \?CCL30
+       EQUAL?  PRSO,HERO \?CCL33
+       CALL    REVIVE-HERO
+       RSTACK  
+?CCL33:        EQUAL?  PRSO,ME \?CCL35
+       CALL    PERFORM,V?SMELL,SALTS
+       RTRUE   
+?CCL35:        EQUAL?  PRSO,BUTLER \?CCL37
+       FSET?   BUTLER,DEADBIT \?CCL37
+       PRINT   YOU-CANT
+       PRINTI  "wake him"
+       PRINT   PCR
+       RTRUE   
+?CCL37:        EQUAL?  PRSO,CRULLEY \?CCL41
+       FSET?   CRULLEY,DEADBIT \?CCL41
+       SET     'AWAITING-REPLY,2
+       CALL    QUEUE,I-REPLY,2
+       PRINTR  "Are you sure that's really wise?"
+?CCL41:        CALL    PRONOUN
+       PRINTI  " doesn't need reviving"
+       PRINT   PCR
+       RTRUE   
+?CCL30:        EQUAL?  PRSA,V?EXAMINE \?CCL45
+       PRINTI  "You always carry your "
+       PRINTD  SALTS
+       PRINTI  ", for emergencies. There is a small tag on one side of them"
+       PRINT   PCR
+       RTRUE   
+?CCL45:        EQUAL?  PRSA,V?READ \FALSE
+       PRINTR  "It says, ""For cases of vapors, hysteria or collapse, revive persons with the smelling salts."""
+
+
+       .FUNCT  REVIVE-HERO
+       FSET?   HERO,DEADBIT \?CCL3
+       INC     'SCORE
+       FCLEAR  HERO,DEADBIT
+       PRINTI  "You wave"
+       CALL    TPRINT,SALTS
+       PRINTI  " under Nicholas's nose. He stirs, sneezes and looks at you blearily. ""How --?"" he says, bewildered. ""Lafond, did he --?"" He "
+       FSET?   CHEMISE,EVERYBIT /?CND4
+       PRINTI  "looks at you in growing horror, glancing from your chemise to your face, and "
+?CND4: PRINTI  "straightens. ""Darling, you are an angel, to have gone through all this and then rescue me. Your ravisher will not go unpunished."" He squares his shoulders. ""For my brother, his wife, and your honor, I will kill Jean Lafond."""
+       CRLF    
+       IN?     HERO,MANACLES \?CCL8
+       SET     'AWAITING-REPLY,13
+       CALL    QUEUE,I-REPLY,2
+       PRINT   INDENT
+       PRINTR  "He tugs at his chains with a wry smile. ""But I must get free first. Have you the key?"""
+?CCL8: CALL    NICK-RUNS-OFF
+       RSTACK  
+?CCL3: PRINTR  "Jamison brushes you away, ""Thank you, but I'm not having the vapors."""
+
+
+       .FUNCT  BOTTLE-F
+       EQUAL?  PRSA,V?CLOSE,V?OPEN \?CCL3
+       PRINTI  "This is a squeezable bottle. You don't need to open or close it"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?TAKE \?CCL5
+       FSET?   BOTTLE,TOUCHBIT /?CCL5
+       CALL    ITAKE,FALSE-VALUE
+       EQUAL?  STACK,M-FATAL,FALSE-VALUE /?CCL5
+       INC     'SCORE
+       PRINTR  "Taken."
+?CCL5: EQUAL?  PRSA,V?PUT,V?POUR \?CCL10
+       EQUAL?  PRSI,BOTTLE \?CCL10
+       CALL    PERFORM,V?FILL,BOTTLE,PRSO
+       RTRUE   
+?CCL10:        EQUAL?  PRSA,V?WRING,V?DRINK-FROM \?CCL14
+       EQUAL?  PRSO,BOTTLE \?CCL14
+       CALL    SQUEEZE-BOTTLE
+       RSTACK  
+?CCL14:        EQUAL?  PRSA,V?WRING,V?POUR-FROM \?CCL18
+       EQUAL?  PRSO,LAUD \?CCL18
+       CALL    SPECIFY-WHAT,STR?332,LAUD
+       RSTACK  
+?CCL18:        EQUAL?  PRSA,V?DRINK-FROM \?CCL22
+       CALL    PERFORM,V?WRING,LAUD,MOUTH
+       RTRUE   
+?CCL22:        EQUAL?  PRSA,V?FILL \?CCL24
+       EQUAL?  PRSI,BOTTLE \?CCL27
+       CALL    PERFORM,V?POUR,PRSI,PRSO
+       RTRUE   
+?CCL27:        PRINT   YOU-CANT
+       PRINTI  "get anything into"
+       CALL    TRPRINT,BOTTLE
+       RSTACK  
+?CCL24:        EQUAL?  PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL29
+       PRINTI  "It's a small leather bottle, with a tiny label on one side"
+       GRTR?   LAUD-LEFT,0 \?CND30
+       PRINTI  ". It appears to be almost empty"
+?CND30:        PRINT   PCR
+       RTRUE   
+?CCL29:        EQUAL?  PRSA,V?READ \FALSE
+       PRINTR  "The label reads, ""Laudanum drops. Squeeze into a glass of wine to sleep free of pain and mental anguish."""
+
+
+       .FUNCT  LAUD-F
+       EQUAL?  PRSA,V?WRING,V?PUT,V?POUR /?PRD5
+       EQUAL?  PRSA,V?PUT-ON \?CCL3
+?PRD5: EQUAL?  PRSO,LAUD \?CCL3
+       CALL    SQUEEZE-BOTTLE
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?TAKE \?CCL9
+       PRINTI  "If you intend to drink"
+       CALL    TPRINT,LAUD
+       PRINTR  ", say so."
+?CCL9: EQUAL?  PRSA,V?DRINK,V?EAT \?CCL11
+       CALL    PERFORM,V?WRING,BOTTLE,ME
+       RTRUE   
+?CCL11:        EQUAL?  PRSO,LAUD \?CCL13
+       CALL    PERFORM-PRSA,BOTTLE,PRSI
+       RTRUE   
+?CCL13:        EQUAL?  PRSI,LAUD \FALSE
+       CALL    PERFORM-PRSA,PRSO,BOTTLE
+       RTRUE   
+
+
+       .FUNCT  SQUEEZE-BOTTLE
+       EQUAL?  PRSI,BOTTLE \?CCL3
+       CALL    IMPOSSIBLES
+       RSTACK  
+?CCL3: FSET?   PRSI,ACTORBIT \?CCL5
+       PRINT   POLITE
+       RTRUE   
+?CCL5: EQUAL?  PRSI,CROC \?CCL7
+       CALL    PERFORM,V?PUT,BOTTLE,CROC
+       RTRUE   
+?CCL7: LESS?   LAUD-LEFT,3 \?CCL9
+       EQUAL?  HERE,LAFS-ROOM /?CCL9
+       PRINTR  "You stop, deciding you might need some later."
+?CCL9: DEC     'LAUD-LEFT
+       GRTR?   LAUD-LEFT,0 \FALSE
+       MOVE    BOTTLE,PROTAGONIST
+       EQUAL?  PRSI,ME \?CCL16
+       CALL    QUEUE,I-SLEEP,2
+       PUTP    ME,P?CONTENTS,POISONED
+       PRINT   SQUEEZE-DROPS
+       PRINTI  "into"
+       CALL    TPRINT,MOUTH
+       PRINTC  46
+       JUMP    ?CND14
+?CCL16:        EQUAL?  PRSI,FLAGON \?CCL19
+       PUTP    FLAGON,P?CONTENTS,POISONED
+       CALL    DOPE-WINE
+       JUMP    ?CND14
+?CCL19:        EQUAL?  PRSI,PORK \?CCL21
+       SET     'PORK-DOPED,TRUE-VALUE
+       PRINT   SQUEEZE-DROPS
+       PRINTI  "onto"
+       CALL    TPRINT,PORK
+       PRINTI  ". A patch of salt dissolves as"
+       CALL    TPRINT,LAUD
+       PRINTI  " absorbs into the meat."
+       JUMP    ?CND14
+?CCL21:        EQUAL?  PRSI,GREEN-GLASS,BLUE-GLASS \?CCL23
+       GETP    PRSI,P?CONTENTS
+       ADD     STACK,POISONED
+       PUTP    PRSI,P?CONTENTS,STACK
+       CALL    DOPE-WINE
+       JUMP    ?CND14
+?CCL23:        PRINT   SQUEEZE-DROPS
+       PRINTI  "into"
+       CALL    TPRINT-PRSI
+       PRINTC  46
+       FSET?   PRSI,WEARBIT \?CND14
+       PRINTI  " It evaporates quickly."
+?CND14:        ZERO?   LAUD-LEFT \?CND26
+       PRINTR  " From the feel of it, the bottle is now empty."
+?CND26:        CRLF    
+       RTRUE   
+
+
+       .FUNCT  DOPE-WINE
+       SET     'USED-LAUD,TRUE-VALUE
+       PRINT   SQUEEZE-DROPS
+       PRINTI  "into"
+       CALL    TPRINT-PRSI
+       PRINTC  46
+       IN?     LAFOND,HERE \TRUE
+       PRINTI  " You sense Lafond hesitate, then continue primping."
+       RTRUE   
+
+
+       .FUNCT  JEWEL-F
+       EQUAL?  PRSA,V?WEAR /?CTR2
+       EQUAL?  PRSA,V?PUT-ON \?CCL3
+       EQUAL?  PRSI,ME \?CCL3
+?CTR2: CALL    CTPRINT,JEWEL
+       PRINTI  " won't stay clasped"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?EXAMINE \?CCL9
+       PRINTI  "All diamonds winking fire, tears of sapphire and crushed rubies in an oval setting, it is a pity that the clasp of"
+       CALL    TPRINT,JEWEL
+       PRINTI  " has broken. The gold pin at the back swings about uselessly"
+       PRINT   PCR
+       RTRUE   
+?CCL9: EQUAL?  PRSA,V?FIX \FALSE
+       PRINTR  "That will have to be done by a goldsmith."
+
+
+       .FUNCT  HAT-F,OARG=0
+       ZERO?   OARG /?CCL3
+       FSET?   HAT,EVERYBIT \FALSE
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       PRINTI  "An expensive hat is hanging on"
+       CALL    APRINT,KNOB
+       PRINTC  46
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?EXAMINE \?CCL10
+       CALL    NOUN-USED,W?QUILL,HAT
+       ZERO?   STACK /?CCL13
+       PRINTR  "It's a curling ostrich plume."
+?CCL13:        PRINTR  "It is a crimson tricorne with a curling ostrich plume stuck in the crown."
+?CCL10:        EQUAL?  PRSA,V?WEAR,V?TAKE \?CCL15
+       CALL    NOUN-USED,W?QUILL,HAT
+       ZERO?   STACK /?CCL18
+       CALL    CTPRINT,HAT
+       PRINTR  " looks so drab without its plume that you cannot bear to."
+?CCL18:        FSET?   HAT,EVERYBIT \FALSE
+       FCLEAR  KNOB,DEADBIT
+       FSET    KNOB,EVERYBIT
+       FCLEAR  HAT,EVERYBIT
+       MOVE    HAT,PROTAGONIST
+       FSET    HAT,TOUCHBIT
+       EQUAL?  PRSA,V?WEAR \?CND21
+       FSET    HAT,WORNBIT
+?CND21:        CALL    KNOB-CAUSES-TINGLE,STR?333
+       RSTACK  
+?CCL15:        EQUAL?  PRSA,V?TAKE-OFF,V?REMOVE \?CCL24
+       FSET?   HAT,WORNBIT \?CCL24
+       FCLEAR  HAT,WORNBIT
+       PRINTI  "Doffed"
+       PRINT   PCR
+       RTRUE   
+?CCL24:        EQUAL?  PRSA,V?PUT-ON \FALSE
+       EQUAL?  PRSO,HAT \FALSE
+       EQUAL?  PRSI,HEAD,ME \?CCL33
+       CALL    PERFORM,V?WEAR,HAT
+       RTRUE   
+?CCL33:        FSET?   PRSI,ACTORBIT \?CCL35
+       FSET?   PRSI,DEADBIT \?CCL38
+       PRINTR  "It slides off."
+?CCL38:        CALL    CTPRINT,HAT
+       PRINTI  " doesn't go with what "
+       EQUAL?  PRSI,LUCY \?CND39
+       PRINTC  115
+?CND39:        PRINTR  "he's wearing."
+?CCL35:        CALL    WASTES
+       RSTACK  
+
+
+       .FUNCT  KNOB-CAUSES-TINGLE,STRING
+       PRINT   STRING
+       PRINTI  " knob on the wall, a low vibration tingles up your legs from the floor"
+       PRINT   PCR
+       RTRUE   
+
+       .ENDI
diff --git a/clothes.zil b/clothes.zil
new file mode 100644 (file)
index 0000000..cd359f2
--- /dev/null
@@ -0,0 +1,1079 @@
+"CLOTHES for
+                     PLUNDERED HEARTS
+       (c) Copyright 1987 Infocom, Inc.  All Rights Reserved."
+
+<OBJECT PANTS
+       (IN SLEEPING-CUPBOARD)
+       (DESC "breeches")
+       (SYNONYM BREECHES PANTS CLOTHES BRITCHES)
+       (ADJECTIVE BREEKS)
+       (FLAGS TAKEBIT WEARBIT PLURALBIT ;BURNBIT NDESCBIT)
+       (GENERIC GEN-CLOTHES)
+       (ACTION GARMENT-F)>
+
+<OBJECT SHIRT
+       (IN SLEEPING-CUPBOARD)
+       (DESC "shirt")
+       (SYNONYM SHIRT CLOTHES)
+       (ADJECTIVE WHITE)
+       (FLAGS TAKEBIT WEARBIT ;BURNBIT NDESCBIT)
+       (GENERIC GEN-CLOTHES)
+       (ACTION GARMENT-F)>
+
+<OBJECT PILE-OF-CLOTHES
+       (IN CUPBOARD-OBJECT)
+       (DESC "pile of clothes")
+       (FDESC "Kicked into a far corner is a pile of clothes.")
+       (SYNONYM CLOTHES)
+       (ADJECTIVE PILE)
+       (SIZE 10)
+       (FLAGS TRYTAKEBIT TAKEBIT WEARBIT)
+       (GENERIC GEN-CLOTHES)
+       (ACTION PILE-OF-CLOTHES-F)>
+
+<ROUTINE PILE-OF-CLOTHES-F ()
+        <COND (<VERB? TAKE EXAMINE PUT-ON WEAR>
+               <COND (<EQUAL? ,HERE ,LANDING ,CAPT-QUARTERS>
+                      <CANT-REACH ,PRSO>
+                      ;<TELL ,YOU-CANT "quite reach them from here." CR>)
+                     (<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>
+                      <REMOVE ,PILE-OF-CLOTHES>
+                      <FSET ,PILE-OF-CLOTHES ,TOUCHBIT>
+                      <MOVE ,SHIRT ,PROTAGONIST>
+                      <MOVE ,PANTS ,PROTAGONIST>
+                      <FCLEAR ,SHIRT ,NDESCBIT>
+                      <FCLEAR ,PANTS ,NDESCBIT>
+                      <FSET ,SHIRT ,TOUCHBIT>
+                      <FSET ,PANTS ,TOUCHBIT>
+                      <SETG SCORE <+ ,SCORE 1>>
+                      <COND (<VERB? EXAMINE>
+                             <TELL "To get a better look, y">)
+                            (T
+                             <TELL "Y">)>
+                      <TELL
+"ou pick up" T ,PILE-OF-CLOTHES ". It separates into a
+pair of " D ,PANTS " and" AR ,SHIRT>)>)>>
+
+<ROUTINE GEN-CLOTHES ()
+        <COND (<EQUAL? ,W?CLOTHES <GET ,P-NAMW 0> <GET ,P-NAMW 1>>
+               <COND (<AND <EQUAL? ,HERE ,SLEEPING-CUPBOARD>
+                           <NOT <FSET? ,SHIRT ,TOUCHBIT>>
+                           <NOT <FSET? ,PANTS ,TOUCHBIT>>>
+                      ,PILE-OF-CLOTHES)
+                     (<VERB? REMOVE TAKE-OFF>
+                      <COND (<PRE-DOFF>
+                             <RETURN ,NOT-HERE-OBJECT>)
+                            (T
+                             <REMOVE-CLOTHES T>
+                             <RETURN ,NOT-HERE-OBJECT>)>
+                      ;<COND (<NOT <PRE-DOFF>>
+                             <REMOVE-CLOTHES T>
+                             <RETURN ,NOT-HERE-OBJECT>)
+                            (T
+                             <RFALSE>)>)>)
+              (<EQUAL? ,W?DRESS <GET ,P-NAMW 0> <GET ,P-NAMW 1>>
+               <COND (<VERB? REMOVE TAKE-OFF>
+                      <COND (<PRE-DOFF>
+                             <RETURN ,NOT-HERE-OBJECT>)
+                            (T
+                             <REMOVE-CLOTHES T>
+                             <RETURN ,NOT-HERE-OBJECT>)>
+                      ;<COND (<NOT <PRE-DOFF>>
+                             <REMOVE-CLOTHES T>
+                             <RETURN ,NOT-HERE-OBJECT>)
+                            (T
+                             <RFALSE>)>)
+                     (<VERB? DROP>
+                      <COND (<AND <FSET? ,GOWN ,WORNBIT>
+                                  <HELD? ,DRESS>>
+                             <TELL "[" D ,DRESS "]" CR>
+                             <RETURN ,DRESS>)
+                            (<AND <FSET? ,DRESS ,WORNBIT>
+                                  <HELD? ,GOWN>>
+                             <TELL "[" D ,GOWN "]" CR>
+                             <RETURN ,GOWN>)
+                            (T
+                             <DO-FIRST "remove">
+                             <RETURN ,NOT-HERE-OBJECT>)>)
+                     
+                     (T
+                      <RFALSE>)>)
+              (T
+               <RFALSE>)>>
+
+<OBJECT DRESS                      ;"MUNGBIT = rip dress the first time"
+       (IN PROTAGONIST)
+       (DESC "cotton frock")
+       (SYNONYM CLOTHES DRESS FROCK)
+       (ADJECTIVE COTTON)
+       (FLAGS TAKEBIT WEARBIT WORNBIT ;BURNBIT)
+       (SIZE 5)
+       (GENERIC GEN-CLOTHES)
+       (ACTION GARMENT-F)>
+
+<OBJECT GOWN
+       (IN BEDROOM) 
+       (DESC "beautiful ball gown")
+       (FDESC "Draped across the bed is a lovely cream colored watered silk
+gown. It looks about your size.")
+       (SYNONYM GOWN DRESS CLOTHES)
+       (ADJECTIVE BALL SILK)
+       (FLAGS TAKEBIT WEARBIT ;BURNBIT)
+       (GENERIC GEN-CLOTHES)
+       (ACTION GARMENT-F)>
+
+<GLOBAL WET-RAG <>>
+<GLOBAL WET-DRESS <>>
+<GLOBAL BOY-DRESS? <>>
+<GLOBAL GOWN-POINT <>>
+
+<ROUTINE GARMENT-F ()         ;"For all clothes but chemise,shoes,hoops."
+        <COND (<VERB? EXAMINE>
+               <COND (<PRSO? ,DRESS>
+                      <COND (,WET-DRESS
+                             <WET-DESC ,DRESS>
+                             <RTRUE>)
+                            (T 
+                             <TELL
+"It is your favorite old frock, looking rather bedraggled without its hoops">
+                             <COND (<NOT <FSET? ,DRESS ,EVERYBIT>>
+                                    <FSET ,DRESS ,EVERYBIT>
+                                    <TELL
+", which you hadn't time to put on during the pirate attack">)>
+                             <TELL ". ">
+                             <COND (<FSET? ,DRESS ,MUNGBIT>
+                                    <TELL
+"There is a tear out of the skirt">)
+                                   (T
+                                    <TELL
+"The worn fabric of the skirt often catches on things, tearing">)>
+                             <TELL ,PCR>)>)
+                     (<PRSO? ,GOWN>
+                      <TELL
+"Of cream silk, heavily embroidered on the stiffened skirt and stomacher,"
+T ,GOWN " is a work of art" ,PCR>)
+                     (<PRSO? ,SHIRT>
+                      <TELL CTHE ,SHIRT " is clean and not too big">
+                      <COND (<FSET? ,SHIRT ,MUNGBIT>
+                             <TELL ,TEAR>)>
+                      <TELL ,PCR>)
+                     (T
+                      <TELL CTHE ,PANTS " are about your size." CR>)>)
+              (<AND <VERB? LOOK-INSIDE LOOK-UNDER>
+                    <FSET? ,PRSO ,WORNBIT>>
+               <TELL "Just" A ,CHEMISE ", and a couple fleas" ,PCR>)
+              (<VERB? WEAR>
+               <COND (<OR <AND <PRSO? ,DRESS ,GOWN>
+                               <OR <FSET? ,SHIRT ,WORNBIT>
+                                   <FSET? ,PANTS ,WORNBIT>>>
+                          <AND <PRSO? ,SHIRT ,PANTS>
+                               <OR <FSET? ,DRESS ,WORNBIT>
+                                   <FSET? ,GOWN ,WORNBIT>>>>
+                      <TELL
+CTHE ,PRSO " doesn't fit over what you are already wearing" ,PCR>)
+                     (<AND ,WET-DRESS
+                           <PRSO? ,DRESS>>
+                      <TELL
+"The clammy cotton makes it too uncomfortable to wear." CR>) 
+                     (T
+                      <FSET ,PRSO ,WORNBIT>
+                      <MOVE ,PRSO ,PROTAGONIST>
+                      <COND (<AND <PRSO? ,PANTS ,SHIRT>
+                                  <IN? ,PILE-OF-CLOTHES ,SLEEPING-CUPBOARD>>
+                             <FSET ,PILE-OF-CLOTHES ,TOUCHBIT>
+                             <REMOVE ,PILE-OF-CLOTHES>
+                             <SETG SCORE <+ ,SCORE 1>>)>
+                      <COND (<PRSO? ,PANTS>
+                             <TELL "You tuck" T ,CHEMISE>
+                             <COND (<FSET? ,SHIRT ,WORNBIT>
+                                    <SETG BOY-DRESS? T>
+                                    <FSET ,CHEMISE ,EVERYBIT>
+                                    <TELL " and" T ,SHIRT>)>
+                             <TELL
+" into the pants. You look a little fat, but now you can move freely" ,PCR>)
+                            (<PRSO? ,SHIRT>
+                             <COND (<FSET? ,PANTS ,WORNBIT>
+                                    <FSET ,CHEMISE ,EVERYBIT>
+                                    <SETG BOY-DRESS? T>)>
+                             <TELL
+"It fits loosely, masking your figure" ,PCR>)
+                            (T
+                             <FSET ,CHEMISE ,EVERYBIT>
+                             <COND (<AND <NOT ,GOWN-POINT>
+                                         <PRSO? ,GOWN>>
+                                    <SETG GOWN-POINT T>
+                                    <SETG SCORE <+ ,SCORE 1>>
+                                    <TELL
+CTHE ,GOWN " fits perfectly, the creamy silk bringing a
+glow to your cheeks. You comb your hair with your fingers and
+bite your lips to make them red" ,PCR>)
+                                   (T
+                                    <TELL "You don" TR ,PRSO>)>)>)>)
+              (<AND <VERB? TAKE-OFF REMOVE>
+                    <FSET? ,PRSO ,WORNBIT>>
+               <COND ;(<CHECK-STRIP>
+                      <RTRUE>)
+                     (<EQUAL? ,PRSO ,DRESS>
+                      <FCLEAR ,PRSO ,WORNBIT>
+                      <FCLEAR ,CHEMISE ,EVERYBIT>
+                      <TELL "You take off" T ,DRESS>
+                      ;<COND (<FSET? ,HOOPS ,WORNBIT>
+                             <TELL
+", but are inclined to giggle at the sight of"
+T ,HOOPS " swinging nakedly over your chemise">)>
+                      <TELL ,PCR>)
+                     (T
+                      <COND (<PRSO? ,SHIRT ,PANTS>
+                             <SETG BOY-DRESS? <>>)>
+                      <FCLEAR ,PRSO ,WORNBIT>
+                      <FCLEAR ,CHEMISE ,EVERYBIT>
+                      <TELL
+"You remove" T ,PRSO ", exposing your ">
+                      <COND (<PRSO? ,PANTS>
+                             <TELL "ankles">)
+                            (<PRSO? ,SHIRT>
+                             <TELL "elbows">)
+                            (T
+                             <TELL D ,CHEMISE>)>
+                      <TELL ,PCR>)>)
+              (<OR <VERB? RIP>
+                   <AND <VERB? CUT>
+                        <HELD? ,DAGGER>>>
+               <COND (<PRSO? ,DRESS>
+                      <COND (<NOT <LOC ,RAG>>
+                                      
+                               ;"returns <> when REMOVEd."
+
+                             <MOVE ,RAG ,PROTAGONIST>
+                             <COND (<EQUAL? ,WET-DRESS ,WATER>
+                                    <SETG WET-RAG ,WATER>)
+                                   (<EQUAL? ,WET-DRESS ,RUM>
+                                    <SETG WET-RAG ,RUM>)
+                                   (T
+                                    <SETG WET-RAG <>>)>
+                             <FSET ,RAG ,TOUCHBIT>
+                             <COND (<NOT <FSET? ,DRESS ,MUNGBIT>>
+                                    <FSET ,DRESS ,MUNGBIT>
+                                    
+                                    ;"Can be ripped automatically now"
+                                    ;<SETG SCORE <+ ,SCORE 1>>)>
+                             
+                             <TELL "You ">
+                             <COND (<VERB? CUT>
+                                    <MOVE ,DAGGER ,PROTAGONIST>
+                                    <TELL "cut">)
+                                   (T
+                                    <TELL "rip">)>
+                             <TELL " a large rag out of" TR ,DRESS>)
+                            (<NOT <HELD? ,RAG>>
+                             <TELL
+"There already is a rag around here somewhere" ,PCR>)
+                            (T 
+                             <TELL ,YOU-HAVE-ALREADY AR ,RAG>)>)
+                     (<PRSO? ,GOWN>
+                      <TELL CTHE ,GOWN " is too fine to ruin" ,PCR>)
+                     (T
+                      <TELL "The fabric is too tightly woven" ,PCR>)>)
+              ;(<old-VERB? RIP CUT>
+               <COND (<PRSO? ,DRESS>
+                      <COND (<NOT <LOC ,RAG>>
+                                      
+                               ;"returns <> when REMOVEd."
+
+                             <MOVE ,RAG ,PROTAGONIST>
+                             <COND (<EQUAL? ,WET-DRESS ,WATER>
+                                    <SETG WET-RAG ,WATER>)
+                                   (<EQUAL? ,WET-DRESS ,RUM>
+                                    <SETG WET-RAG ,RUM>)
+                                   (T
+                                    <SETG WET-RAG <>>)>
+                             <FSET ,RAG ,TOUCHBIT>
+                             <COND (<NOT <FSET? ,DRESS ,MUNGBIT>>
+                                    <FSET ,DRESS ,MUNGBIT>
+                                    <SETG SCORE <+ ,SCORE 1>>)>
+                             <TELL "You ">
+                             <COND (<VERB? CUT>
+                                    <TELL "cut">)
+                                   (T
+                                    <TELL "rip">)>
+                             <TELL " a large rag out of" TR ,DRESS>)
+                            (<NOT <HELD? ,RAG>>
+                             <TELL
+"There already is a rag around here somewhere" ,PCR>)
+                            (T 
+                             <TELL ,YOU-HAVE-ALREADY AR ,RAG>)>)
+                     (<PRSO? ,GOWN>
+                      <TELL CTHE ,GOWN " is too fine to ruin" ,PCR>)
+                     (T
+                      <TELL "The fabric is too tightly woven" ,PCR>)>)
+              (<AND <VERB? TAKE>
+                    <PRSO? ,SHIRT ,PANTS>
+                    <IN? ,PILE-OF-CLOTHES ,HERE>>
+               <PERFORM ,V?TAKE ,PILE-OF-CLOTHES>
+               <RTRUE>)>>
+
+<OBJECT RAG
+       (DESC "rag")
+       (SYNONYM RAG CLOTH)
+       (ADJECTIVE WET SCRAP PIECE)
+       (FLAGS TAKEBIT)
+       (ACTION RAG-F)>
+
+<ROUTINE RAG-F ()
+        <COND (<VERB? SOAK>
+               <COND (<EQUAL? ,HERE ,BY-SHIP ,LAGOON ,SHALLOWS 
+                              ,BEACH ,MAIN-DECK>
+                      <DIP-DRESS>)
+                     (T
+                      <PROPOSE>)>)
+              (<AND <ADJ-USED ,A?WET>
+                    <NOT ,WET-RAG>>
+               <TELL ,YOU-CANT-SEE-ANY "wet rag here" ,PCR>)
+              (<VERB? EXAMINE>
+               <COND (<NOT ,WET-RAG>
+                      <TELL
+"It is a fairly hefty scrap of fabric" ,PCR>)
+                     (T
+                      <WET-DESC ,RAG>)>) 
+              (<VERB? RIP>
+               <WASTES>)
+              (<VERB? TIE>
+               <TELL "It won't stay tied" ,PCR>)
+              (<VERB? PUT>
+               <COND (<PRSI? ,FENCE ,GATE>
+                      <WASTES>)
+                     (<PRSI? ,FUSE>
+                      <PROPOSE>)>)
+              (<AND <VERB? THROW>
+                    <PRSI? ,FUSE>>
+               <PERFORM ,V?THROW-OVER ,RAG ,FENCE>
+               <RTRUE>)>>
+
+; "The rag, or alternately, the dress, is set to SEA if it is dipped in water
+of any kind (easier to type). Then it is described as wet. If the dress is
+wet and THEN the rag is ripped out, the rag will still be wet. You can get as
+many rags as you like, with access to only one at a time. If it works." 
+
+<ROUTINE WET-DESC (OBJ)
+        <TELL
+"The " D .OBJ " is soaked and dripping with ">
+        <COND (<OR <AND <EQUAL? .OBJ ,RAG>
+                        <EQUAL? ,WET-RAG ,RUM>>
+                   <AND <EQUAL? .OBJ ,DRESS>
+                        <EQUAL? ,WET-DRESS ,RUM>>>
+               <TELL "rum">)
+              (<OR <AND <EQUAL? .OBJ ,RAG>
+                        <EQUAL? ,WET-RAG ,WATER>>
+                   <AND <EQUAL? .OBJ ,DRESS>
+                        <EQUAL? ,WET-DRESS ,WATER>>>
+               <TELL "water">)>
+        <TELL ,PCR>>
+
+;<OBJECT HOOPS
+       (IN PROTAGONIST)
+       (DESC "your hoops")
+       (SYNONYM HOOPS)
+       (FLAGS TAKEBIT WEARBIT WORNBIT PLURALBIT VOWELBIT NARTICLEBIT)
+       (ACTION HOOPS-F)>
+
+;<GLOBAL HEAVY " heavy and uncomfortable">
+
+;<ROUTINE HOOPS-F ()
+        <COND (<VERB? EXAMINE>
+               <TELL "The whalebone hoops">
+               <COND (<FSET? ,PRSO ,WORNBIT>
+                      <TELL "," ,HEAVY ", are tied around your waist">
+                      <COND (<FSET? ,DRESS ,WORNBIT>
+                             <TELL " under" T ,DRESS>)>)
+                     (T
+                      <TELL " are" ,HEAVY>)>
+               <TELL ,PCR>)
+              (<AND <VERB? LOOK-INSIDE LOOK-UNDER>
+                    <FSET? ,PRSO ,WORNBIT>>
+               <TELL ,YOU-SEE " your stockinged legs, and" TR ,SHOES>)
+              (<VERB? WEAR>
+               <COND ;(<OR <FIND-IN ,HERE ,ACTORBIT "in front of">
+                          <EQUAL? ,HERE ,ORCHESTRA ;,SUPPER-ROOM>>
+                      <TELL ,POLITE-SOCIETY>)
+                     ;(<EQUAL? ,HERE ,ON-LADDER ,RIGGING-ROOM>
+                      <TELL ,YOU-CANT "get dressed here!" CR>)
+                     (T
+                      <FSET ,HOOPS ,WORNBIT>
+                      <MOVE ,HOOPS ,PROTAGONIST>
+                      <TELL "You tie on" T ,HOOPS>
+                      <COND (<FSET? ,PANTS ,WORNBIT>
+                             <TELL " over" TR ,PANTS>)
+                            (<OR <FSET? ,DRESS ,WORNBIT>
+                                 <FSET? ,GOWN ,WORNBIT>>
+                             <TELL " under your skirts" ,PCR>)
+                            (T
+                             <TELL " around your waist" ,PCR>)>)>)
+              (<AND <VERB? PUT PUT-THROUGH THROW>
+                    <PRSI? ,RETICULE ,WATER-BARREL ,RUM-BARREL ,CASK
+                           ,LIB-WINDOW ,HOLE ,GATE ,LEDGE ,WINDOW>>
+               <TELL "Your hoops are too wide to fit into" TR ,PRSI>)
+              (<VERB? UNTIE>
+               <PERFORM ,V?REMOVE ,HOOPS>
+               <RTRUE>)>>
+
+<CONSTANT TEAR ". There is a tear at the bottom">
+
+<OBJECT CHEMISE                    ;"EVERYBIT = covered by other clothes"
+       (IN PROTAGONIST)           ;"MUNGBIT = rag automatically torn from it"
+       (DESC "linen chemise")
+       (SYNONYM CLOTHES CHEMISE SLIP PETTICOAT)
+       (ADJECTIVE LINEN)
+       (FLAGS TAKEBIT WEARBIT WORNBIT EVERYBIT)
+       (GENERIC GEN-CLOTHES)
+       (ACTION CHEMISE-F)>
+
+<OBJECT SHOES
+       (IN PROTAGONIST)
+       (DESC "your kid slippers")
+       (SYNONYM SHOES SLIPPERS)
+       (ADJECTIVE KID)
+       (FLAGS WEARBIT WORNBIT PLURALBIT NARTICLEBIT)
+       (ACTION CHEMISE-F)>
+
+<ROUTINE CHEMISE-F ()
+        <COND (<VERB? EXAMINE>
+               <COND (<PRSO? ,CHEMISE>
+                      <COND (<FSET? ,CHEMISE ,EVERYBIT>
+                             <TELL "It's covered by other clothes" ,PCR>)
+                            (T
+                             <TELL
+CTHE ,CHEMISE ", kneelength and sleeveless,
+clings damply to your legs and torso">
+                             <COND (<FSET? ,CHEMISE ,MUNGBIT>
+                                    <TELL ,TEAR>)>
+                             <TELL ,PCR>)>)
+                     (<PRSO? ,SHOES>
+                      <TELL
+"They are dainty yet practical kidskin shoes" ,PCR>)>)
+              (<VERB? LOOK-INSIDE LOOK-UNDER>
+               <COND (<PRSO? ,CHEMISE>
+                      <TELL "Just you and your " D ,UNMENTIONABLES ,PCR>)
+                     (T
+                      <TELL "Your feet are in" TR ,SHOES>)>)
+              (<VERB? TAKE-OFF REMOVE>
+               <TELL "But">
+               <COND (<PRSO? ,SHOES>
+                      <TELL T ,PRSO " are so comfortable">)
+                     (T <TELL " that wouldn't be decent">)>
+               <TELL "!" CR>)
+              (<VERB? RIP CUT>
+               <TELL ,YOU-CANT "bring yourself to ruin" TR ,CHEMISE>)>>
+
+<GLOBAL PENULTIM-POINT <>>
+
+<OBJECT GARTER
+       (IN LUCY)
+       (DESC "garter")
+       (SYNONYM GARTER SLING SLINGSHOT)
+       (ADJECTIVE RED)
+       (FLAGS TAKEBIT WEARBIT ;BURNBIT INVISIBLE CONTBIT 
+                      TRANSBIT SEARCHBIT INBIT OPENBIT)
+       (CAPACITY 1)
+       (SIZE 2)
+       (ACTION GARTER-F)>
+
+<ROUTINE GARTER-F ()
+        <COND (<VERB? WEAR>
+               <COND (,MUZZLED
+                      <PERFORM ,V?TAKE ,GARTER>
+                      <RTRUE>)
+                     (<FSET? ,PANTS ,WORNBIT>
+                      <TELL
+"One doesn't wear" A ,GARTER " over " D ,PANTS "!" CR>)
+                     (T
+                      <FSET ,GARTER ,WORNBIT>
+                      <MOVE ,GARTER ,PROTAGONIST>
+                      <TELL
+"You slide" T ,GARTER " up around your thigh" ,PCR>)>)
+              (<AND <VERB? REMOVE TAKE>
+                    ,MUZZLED>
+               <COND (<NOT ,CROC-SLEEP>
+                      <TELL
+"The reptile surges forward as you remove" T ,GARTER>
+;<TELL "As you remove" T ,GARTER ", the reptile surges forward.">
+                      <JIGS-UP ". You are pulled struggling into the pool.">)
+                     (T
+                      <SETG MUZZLED <>>
+                      <FCLEAR ,GARTER ,TRYTAKEBIT> ;"stop implicit take"
+                      <FSET ,GARTER ,TAKEBIT>
+                      <MOVE ,GARTER ,PROTAGONIST>
+                      <TELL "You slip it off the scaly snout." CR>)>)
+              (<VERB? TAKE>
+               <COND (<AND <NOT <FSET? ,GARTER ,TOUCHBIT>>
+                           <EQUAL? ,HERE ,KITCHEN>
+                           <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+               
+               ;"It's poss to finish w/o garter!"
+               ;<SETG SCORE <+ ,SCORE 1>>
+  
+                           <TELL
+"Taken.|
+   Lucy kisses " D ,HEAD " and returns to the fire, humming" ,PCR>)
+                     (<IN? ,GARTER ,DAD>
+                      <MOVE ,GARTER ,PROTAGONIST>
+                      <TELL "\"Take it, dear,\" Papa says." CR>)
+                     (T
+                      <RFALSE>)>)
+              (<AND <VERB? PUT PUT-ON>
+                    <PRSI? ,GARTER>>
+               <COND (<NOT <IN? ,GARTER ,PROTAGONIST>>
+                      <TELL ,YNH TR ,GARTER>)
+                     (<AND <EQUAL? ,P-PRSA-WORD ,W?THROW>
+                           <PRSO? ,STONE>>
+                      <PERFORM ,V?THROW ,STONE ,GARTER>
+                      <RTRUE>)
+                     (<PRSO? ,STONE>
+                      <COND (<FSET? ,GARTER ,WORNBIT>
+                             <TELL "Not while you're wearing" TR ,GARTER>)
+                            (T
+                             <MOVE ,STONE ,GARTER>
+                             
+                              ;"LOAD GUN/PUT STONE IN GARTER"
+                             <COND (<NOT ,PENULTIM-POINT>
+                                    <SETG PENULTIM-POINT T>
+                                    <SETG SCORE <+ ,SCORE 1>>)>
+                             <TELL "You slip" T ,STONE " into" TR ,GARTER>)>)
+                     (T
+                      <TELL "It falls through" TR ,GARTER>)>)
+              (<AND <VERB? KILL>
+                    <OR <FSET? ,PRSO ,ACTORBIT>
+                        <PRSO? ,CROC>>>
+               <PROPOSE>)
+              (<VERB? THROW SHOOT>
+               <COND (<IN? ,STONE ,GARTER>
+                      <COND (<NOT ,PRSI>
+                             <PERFORM ,V?SHOOT ,STONE>
+                             <RTRUE>)
+                            (T
+                             <WASTES>)>)
+                     (T
+                      <COND (<AND <NOT ,PRSI>
+                                  <VERB? THROW>>
+                             <MOVE ,GARTER ,HERE>
+                             <TELL "Thrown." CR>)
+                            (<PRSO? ,STONE>
+                             <DO-FIRST "put the stone in" ,GARTER>)
+                            (T
+                             <RFALSE>)>)>)
+              (<AND <VERB? SSHOOT>
+                    <PRSO? ,GARTER>
+                    <HELD? ,STONE>>
+               <PERFORM ,V?SHOOT ,PRSI ,STONE>
+               <RTRUE>)
+              (<VERB? EXAMINE>
+               <TELL CTHE ,GARTER " is ">
+               <COND (,MUZZLED
+                      <TELL
+"stretched taut around the jaws of" T ,CROC ,PCR>)
+                     (T
+                      <TELL
+"made of abnormally strong, red, stretchy lace" ,PCR>)>)>>
+
+<OBJECT UNMENTIONABLES
+       (IN GLOBAL-OBJECTS)
+       (DESC "unmentionables")
+       (SYNONYM UNMENTIONABLES SMALLS)
+       (FLAGS NARTICLEBIT NDESCBIT)
+       (ACTION UNMENTIONABLES-F)>
+
+<ROUTINE UNMENTIONABLES-F ()
+        <TELL
+"Shh! Why do you think they're called " D ,UNMENTIONABLES "?" CR>>
+
+<OBJECT RETICULE
+       (IN PROTAGONIST)
+       (DESC "your reticule")
+       (SYNONYM RETICULE)
+       (ADJECTIVE YOUR MY)
+       (FLAGS NARTICLEBIT CONTBIT OPENBIT SEARCHBIT ;BURNBIT WEARBIT)
+       (CAPACITY 50)
+       (ACTION RETICULE-F)>
+
+<ROUTINE RETICULE-F ()
+        <COND (<AND <VERB? DROP REMOVE PUT PUT-ON PUT-THROUGH PUT-UNDER
+                           THROW THROW-AT THROW-TO GIVE>
+                    <PRSO? ,RETICULE>>
+               <TELL "A lady is never without her reticule" ,PCR>)
+              ;(<AND <VERB? KILL>
+                    <PRSO? ,CRULLEY>
+                    <IN? ,COFFER ,RETICULE>>
+               <PERFORM ,V?KILL ,CRULLEY ,RETICULE>
+               <RTRUE>)
+              (<AND <VERB? PUT>
+                    <PRSO? ,COFFER ,RAPIER>>
+               <TELL CTHE ,PRSO " won't fit in" TR ,RETICULE>)
+              (<VERB? EXAMINE>
+               <TELL
+"You and Mama made the little drawstring bag a few months before
+she passed on. It's amazing how much it can hold" ,PCR>)>>
+
+<OBJECT BANKNOTE
+       (IN RETICULE)
+       (DESC "banknote")
+       (SYNONYM MONEY NOTE BANKNOTE)
+       (ADJECTIVE FIFTY GUINEA FRONT BACK)
+       (FLAGS TAKEBIT)
+       (SIZE 1)
+       (ACTION BANKNOTE-F)>
+
+<ROUTINE BANKNOTE-F ()
+        <COND (<VERB? EXAMINE>
+               <TELL "This is" T ,BANKNOTE>
+               <IN-PACKAGE>
+               ;<TELL 
+"The banknote pictures a fashionably dressed man, his eyes shadowed by
+the brim of a flamboyant feathered hat. He is standing at ease in front
+of an artist's drapery, holding a book, \"Treatise of Power.\" His other
+hand rests on, or rather, grips a world globe; in fact, his thumb is on
+the tiny golden crescent that represents " D ,ISLAND  ". The man's smile
+closely resembles a sneer, and you don't feel quite comfortable in his
+painted gaze. At the base of the painting is a scroll reading
+\"Jean Lafond, King of the Caribbean.\"" CR>
+               ;<TELL "[This will be in the game package.]" CR>)
+              (<AND <VERB? WAVE POINT>
+                    <IN? ,BUTLER ,HERE>         ;"In case of WAVE MONEY"
+                    <NOT <FSET? ,BUTLER ,DEADBIT>>>
+               <BRIBE-BUTLER ,PRSO>)>>
+
+<OBJECT SALTS
+       (IN RETICULE)
+       (DESC "smelling salts")
+       (SYNONYM SALTS CARBONATE TAG)
+       (ADJECTIVE SMELLING AMMONIA)
+       (FLAGS PLURALBIT TAKEBIT)
+       (SIZE 3)
+       (ACTION SALTS-F)>
+
+<ROUTINE SALTS-F ("AUX" (PER <>))
+        <COND (<VERB? SMELL>
+               <TELL
+"You jerk" T ,SALTS " away from your nose after one brief ammoniac whiff.
+Your burning nostrils make you feel more alert" ,PCR>)
+              (<VERB? WAVE>
+               <COND (<AND <EQUAL? ,HERE ,DUNGEON>
+                           <FSET? ,HERO ,DEADBIT>>
+                      <PERFORM ,V?ALARM ,HERO ,SALTS>
+                      <RTRUE>)
+                     (T
+                      <PERFORM ,V?SMELL ,SALTS>
+                      <RTRUE>)>)
+              (<VERB? USE>
+               <COND (<NOT ,PRSI>
+                      <COND (<AND <SET PER <FIND-IN ,HERE ,ACTORBIT "on">>
+                                  <NOT <EQUAL? .PER ,CRULLEY>>>
+                             <PERFORM ,V?ALARM .PER ,SALTS>
+                             <RTRUE>)
+                            (T
+                             <PERFORM ,V?SMELL ,SALTS>
+                             <RTRUE>)>)
+                     (<FSET? ,PRSI ,ACTORBIT>
+                      <PERFORM ,V?ALARM ,PRSI ,SALTS>
+                      <RTRUE>)
+                     (T
+                      <TELL ,HUH>)>)
+              (<AND <VERB? PUT-UNDER PUT-ON>
+                    <FSET? ,PRSI ,ACTORBIT>>
+               <PERFORM ,V?ALARM ,PRSI ,SALTS>
+               <RTRUE>)
+              (<VERB? GIVE>
+               <PERFORM ,V?ALARM ,PRSI ,SALTS>
+               <RTRUE>)
+              (<VERB? ALARM SGIVE>
+               <COND (<PRSO? ,HERO>
+                      <REVIVE-HERO>)
+                     (<PRSO? ,ME>
+                      <PERFORM ,V?SMELL ,SALTS>
+                      <RTRUE>)
+                     (<AND <PRSO? ,BUTLER>
+                           <FSET? ,BUTLER ,DEADBIT>>
+                      <TELL ,YOU-CANT "wake him" ,PCR>)
+                     (<AND <PRSO? ,CRULLEY>
+                           <FSET? ,CRULLEY ,DEADBIT>>
+                      <SETG AWAITING-REPLY 2>
+                      <QUEUE I-REPLY 2>
+                      <TELL "Are you sure that's really wise?" CR>)
+                     (T
+                      <PRONOUN>
+                      ;<COND (<PRSO? ,LUCY>
+                             <TELL "She">)
+                            (<FSET? ,PRSO ,ACTORBIT>
+                             <TELL "He">)
+                            (T
+                             <TELL CTHE ,PRSO>)>
+                      <TELL " doesn't need reviving" ,PCR>)>)
+              (<VERB? EXAMINE>
+               <TELL
+"You always carry your " D ,SALTS ", for emergencies. There is a small tag
+on one side of them" ,PCR>)
+              (<VERB? READ>
+               <TELL
+"It says, \"For cases of vapors, hysteria or collapse,
+revive persons with the smelling salts.\"" CR>)>>
+
+<ROUTINE REVIVE-HERO ()
+        <COND (<FSET? ,HERO ,DEADBIT>
+               <SETG SCORE <+ ,SCORE 1>>
+               <FCLEAR ,HERO ,DEADBIT>
+               <TELL
+"You wave" T ,SALTS " under Nicholas's nose. He stirs, sneezes and looks
+at you blearily. \"How --?\" he says, bewildered. \"Lafond, did he --?\" He ">
+               <COND (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+                      <TELL
+"looks at you in growing horror,
+glancing from your chemise to your face, and ">)>
+               <TELL
+"straightens. \"Darling, you are an angel, to have gone through all this
+and then rescue me. Your ravisher will not go unpunished.\" He squares
+his shoulders. \"For my brother, his wife, and your honor, I will
+kill Jean Lafond.\"" CR>
+               <COND (<IN? ,HERO ,MANACLES>
+                      <SETG AWAITING-REPLY 13>
+                      <QUEUE I-REPLY 2>
+                      <TELL ,INDENT
+"He tugs at his chains with a wry smile.
+\"But I must get free first. Have you the key?\"" CR>)
+                     (T
+                      <NICK-RUNS-OFF>)>)
+              (T
+               <TELL
+"Jamison brushes you away, \"Thank you,
+but I'm not having the vapors.\"" CR>)>>
+
+<OBJECT BOTTLE
+       (IN CREWS-QUARTERS)
+       (DESC "leather bottle")
+       (FDESC "A small bottle has been dropped nearby.")
+       (SYNONYM BOTTLE LABEL)
+       (ADJECTIVE BROWN SMALL LEATHER)
+       (FLAGS TAKEBIT CONTBIT ;OPENBIT SEARCHBIT TRANSBIT)
+       (ACTION BOTTLE-F)>
+
+<GLOBAL LAUD-LEFT 5>  ;"Now you have five squeezes on the bottle." 
+;<GLOBAL BOTTLE-EMPTY "The bottle is empty.|">
+
+<ROUTINE BOTTLE-F ()
+        <COND (<VERB? OPEN CLOSE>
+               <TELL 
+"This is a squeezable bottle. You don't need to open or close it" ,PCR>)
+              (<AND <VERB? TAKE>
+                    <NOT <FSET? ,BOTTLE ,TOUCHBIT>>
+                    <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+               <SETG SCORE <+ ,SCORE 1>>
+               <TELL "Taken." CR>)
+              (<AND <VERB? POUR PUT>
+                    <PRSI? ,BOTTLE>>
+               <PERFORM ,V?FILL ,BOTTLE ,PRSO>
+               <RTRUE>)
+              (<AND <VERB? DRINK-FROM WRING ;TASTE>
+                    <PRSO? ,BOTTLE>>
+               <SQUEEZE-BOTTLE>
+               ;<COND (<NOT ,PRSI>
+                      <MOVE ,BOTTLE ,PROTAGONIST>
+                      <COND (,LAUD-LEFT
+                             <TELL
+"A bubble of " D ,LAUD " forms on the tip of"
+T ,BOTTLE " then slurps back in." CR>)
+                            ;(T
+                             <TELL ,BOTTLE-EMPTY>)>)
+                     (<PRSI? ,BOTTLE>
+                      <IMPOSSIBLES>)
+                     (<FSET? ,PRSI ,ACTORBIT>
+                      <TELL ,POLITE>)
+                     (<PRSI? ,CROC>
+                      <PERFORM ,V?PUT ,BOTTLE ,CROC>
+                      <RTRUE>)
+                     (<AND <L? ,LAUD-LEFT 3>
+                           <NOT <EQUAL? ,HERE ,LAFS-ROOM>>>
+                      <TELL
+"You stop, deciding you might need some later." CR>)
+                     (<EQUAL? ,LAUD-LEFT 0>
+                      <TELL "There's no " D ,LAUD " left." CR>)
+                     (<G? <SETG LAUD-LEFT <- ,LAUD-LEFT 1>> 0>
+                      <MOVE ,BOTTLE ,PROTAGONIST>
+                      <COND (<PRSI? ,MOUTH ,ME>
+                             <QUEUE I-SLEEP 2>
+                             <TELL ,SQUEEZE-DROPS "into" T ,MOUTH ".">)
+                            (<PRSI? ,FLAGON>
+                             <SETG FLAGON-POISONED T>
+;"*********** CUT"            <DOPE-WINE>)
+                            (<PRSI? ,PORK>
+                             <SETG PORK-DOPED T>
+                             <TELL ,SQUEEZE-DROPS "onto" T ,PORK
+". A patch of salt dissolves as" T ,LAUD " absorbs into the meat.">) 
+                            (<PRSI? ,BLUE-GLASS ,GREEN-GLASS>
+                             <PUTP ,PRSI ,P?CONTENTS 
+                                   <+ <GETP ,PRSI ,P?CONTENTS> ,POISONED>>
+                             <DOPE-WINE>)
+                            (T
+                             <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+                             <COND (<FSET? ,PRSI ,WEARBIT>
+                                    <TELL  " It evaporates quickly.">)>)>
+                      <COND (<ZERO? ,LAUD-LEFT>
+                             <TELL
+" From the feel of it, the bottle is now empty.">)>
+                      <CRLF>
+                      <RTRUE>)>)
+              (<AND <VERB? POUR-FROM WRING>
+                    <PRSO? ,LAUD>>
+               <SPECIFY-WHAT "put" ,LAUD>
+               ;<TELL
+,YOULL-HAVE-TO "specify what you want to put" T ,LAUD " into" ,PCR>)
+              (<VERB? DRINK-FROM>              ;"BOTTLE is prsi"
+               <PERFORM ,V?WRING ,LAUD ,MOUTH>
+               <RTRUE>)
+              (<VERB? FILL>
+               <COND (<PRSI? ,BOTTLE>
+                      <PERFORM ,V?POUR ,PRSI ,PRSO>
+                      <RTRUE>)
+                     (T
+                      <TELL ,YOU-CANT "get anything into" TR ,BOTTLE>)>)
+              (<VERB? EXAMINE LOOK-INSIDE>
+               <TELL
+"It's a small leather bottle, with a tiny label on one side">
+               <COND (<G? ,LAUD-LEFT 0>
+                      <TELL ". It appears to be almost empty">)>
+               <TELL ,PCR>)
+              (<VERB? READ>
+               <TELL 
+"The label reads, \"Laudanum drops. Squeeze into a glass of wine
+to sleep free of pain and mental anguish.\"" CR>)>>
+
+
+<OBJECT LAUD                      ;"LAUDanum"
+       (IN BOTTLE)
+       (DESC "laudanum")
+       (SYNONYM LAUDANUM LIQUID DRUG DROPS)
+       (ADJECTIVE LAUD)
+       (FLAGS TRYTAKEBIT NDESCBIT)
+       (SIZE 1)
+       (ACTION LAUD-F)>
+
+<ROUTINE LAUD-F ()
+        <COND (<AND <VERB? POUR PUT WRING PUT-ON>
+                    <PRSO? ,LAUD>>
+               <SQUEEZE-BOTTLE>)
+              (<VERB? TAKE>
+               <TELL "If you intend to drink" T ,LAUD ", say so." CR>)
+              (<VERB? EAT DRINK ;TASTE>
+               <PERFORM ,V?WRING ,BOTTLE ,ME>
+               <RTRUE>)
+              (<PRSO? ,LAUD>
+               <PERFORM-PRSA ,BOTTLE ,PRSI>
+               <RTRUE>)
+              (<PRSI? ,LAUD>
+               <PERFORM-PRSA ,PRSO ,BOTTLE>
+               <RTRUE>)
+              ;(<VERB? POUR PUT>
+               <PERFORM ,V?POUR ,BOTTLE ,PRSI>
+               <RTRUE>)>>
+
+<ROUTINE SQUEEZE-BOTTLE ()
+        <COND ;(<NOT ,PRSI>             ;"checks for LAUD-LEFT in pre-action"
+               <MOVE ,BOTTLE ,PROTAGONIST>
+               <TELL
+"A bubble of " D ,LAUD " forms on the tip of"
+T ,BOTTLE " then slurps back in." CR>)
+              (<PRSI? ,BOTTLE>
+               <IMPOSSIBLES>)
+              (<FSET? ,PRSI ,ACTORBIT>
+               <TELL ,POLITE>)
+              (<PRSI? ,CROC>
+               <PERFORM ,V?PUT ,BOTTLE ,CROC>
+               <RTRUE>)
+              (<AND <L? ,LAUD-LEFT 3>
+                    <NOT <EQUAL? ,HERE ,LAFS-ROOM>>>
+               <TELL
+"You stop, deciding you might need some later." CR>)
+              ;(<EQUAL? ,LAUD-LEFT 0>           ;"checked in pre-action"
+               <TELL "There's no " D ,LAUD " left." CR>)
+              (<G? <SETG LAUD-LEFT <- ,LAUD-LEFT 1>> 0>
+               <MOVE ,BOTTLE ,PROTAGONIST>
+               <COND (<PRSI? ;,MOUTH ,ME>
+                      <COND ;(<QUEUED? ,I-SLEEP>   ;"checked in PRE-POUR"
+                             <TELL ,YOU-HAVE-ALREADY
+" taken some. Any more might be dangerous!" CR>)
+                            (T
+                             <QUEUE I-SLEEP 2>
+                             <PUTP ,ME ,P?CONTENTS ,POISONED>
+                             <TELL ,SQUEEZE-DROPS "into" T ,MOUTH ".">)>)
+                     (<PRSI? ,FLAGON>
+                      <PUTP ,FLAGON ,P?CONTENTS ,POISONED>
+                      <DOPE-WINE>)
+                     (<PRSI? ,PORK>
+                      <SETG PORK-DOPED T>
+                      <TELL ,SQUEEZE-DROPS "onto" T ,PORK
+". A patch of salt dissolves as" T ,LAUD " absorbs into the meat.">)
+                     (<PRSI? ,BLUE-GLASS ,GREEN-GLASS>
+                      <PUTP ,PRSI ,P?CONTENTS
+                            <+ <GETP ,PRSI ,P?CONTENTS> ,POISONED>>
+                      <DOPE-WINE>)
+                     (T
+                      <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+                      <COND (<FSET? ,PRSI ,WEARBIT>
+                             <TELL  " It evaporates quickly.">)>)>
+               <COND (<ZERO? ,LAUD-LEFT>
+                      <TELL
+" From the feel of it, the bottle is now empty.">)>
+               <CRLF>
+               <RTRUE>)>>
+
+<ROUTINE DOPE-WINE ()
+        <SETG USED-LAUD T>
+        <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+        <COND (<IN? ,LAFOND ,HERE>
+               <TELL " You sense Lafond hesitate, then continue primping.">)>
+        <RTRUE>>
+
+<GLOBAL SQUEEZE-DROPS "You squeeze three colorless drops ">
+
+<OBJECT JEWEL
+        (DESC "jewelled brooch")
+       (SYNONYM BROOCH PIN CLASP)
+       (ADJECTIVE JEWELLED DIAMOND SAPPHI RUBY)
+       (FLAGS WEARBIT TAKEBIT)
+       (ACTION JEWEL-F)>
+
+<ROUTINE JEWEL-F ()
+        <COND (<OR <VERB? WEAR>
+                   <AND <VERB? PUT-ON>
+                        <PRSI? ,ME>>>
+               <TELL CTHE ,JEWEL " won't stay clasped" ,PCR>)
+              (<VERB? EXAMINE>
+               <TELL
+"All diamonds winking fire, tears of sapphire and crushed rubies in an oval
+setting, it is a pity that the clasp of" T ,JEWEL " has broken. The gold pin
+at the back swings about uselessly" ,PCR>)
+              (<VERB? FIX>
+               <TELL "That will have to be done by a goldsmith." CR>)
+              ;(<AND <VERB? TAKE WEAR>
+                    <FSET? ,MANACLES ,MUNGBIT>>
+               <CANT-REACH ,JEWEL>)>>
+
+<OBJECT HAT
+       (IN LIBRARY)     ;"EVERYBIT means it is on the knob."
+       (DESC "hat")
+       (DESCFCN HAT-F)
+        (SYNONYM HAT TRICORNE QUILL)
+       (ADJECTIVE PLUMED WHITE)
+       (FLAGS WEARBIT TAKEBIT SEARCHBIT EVERYBIT)
+       (CAPACITY 2)
+       (ACTION HAT-F)>
+
+<ROUTINE HAT-F ("OPTIONAL" (OARG <>))
+        <COND (.OARG
+               <COND (<FSET? ,HAT ,EVERYBIT>
+                      <COND (<EQUAL? .OARG ,M-DESC?>
+                             <RTRUE>)>
+                      <TELL ,INDENT
+"An expensive hat is hanging on" A ,KNOB ".">)
+                     (T
+                      <RFALSE>)>)
+              (<VERB? EXAMINE>
+               <COND (<NOUN-USED ,W?QUILL ,HAT>
+                      <TELL "It's a curling ostrich plume." CR>)
+                     (T
+                      <TELL
+"It is a crimson tricorne with a
+curling ostrich plume stuck in the crown." CR>)>)
+              (<VERB? TAKE WEAR>
+               <COND (<NOUN-USED ,W?QUILL ,HAT>
+                      <TELL
+CTHE ,HAT " looks so drab without its plume that you cannot bear to." CR>)
+                     (<FSET? ,HAT ,EVERYBIT>
+                      <FCLEAR ,KNOB ,DEADBIT>
+                      <FSET ,KNOB ,EVERYBIT>
+                      <FCLEAR ,HAT ,EVERYBIT>
+                      <MOVE ,HAT ,PROTAGONIST>
+                      <FSET ,HAT ,TOUCHBIT>
+                      <COND (<VERB? WEAR>
+                             <FSET ,HAT ,WORNBIT>)>
+                      <KNOB-CAUSES-TINGLE "As you lift the hat from its">)
+                     (T
+                      <RFALSE>)>)
+              ;(<AND <VERB? PUT>
+                    <PRSO? ,QUILL>>
+               <MOVE ,QUILL ,HAT>
+               <TELL
+CTHE ,QUILL " adds just that extra spark of style to" TR ,HAT>)
+              (<AND <VERB? REMOVE TAKE-OFF>
+                    <FSET? ,HAT ,WORNBIT>>
+               <FCLEAR ,HAT ,WORNBIT>
+               <TELL "Doffed" ,PCR>)
+              (<AND <VERB? PUT-ON>
+                    <PRSO? ,HAT>>
+               <COND (<PRSI? ,ME ,HEAD>
+                      <PERFORM ,V?WEAR ,HAT>
+                      <RTRUE>)
+                     (<FSET? ,PRSI ,ACTORBIT>
+                      <COND (<FSET? ,PRSI ,DEADBIT>
+                             <TELL "It slides off." CR>)
+                            (T
+                             <TELL CTHE ,HAT " doesn't go with what ">
+                             <COND (<PRSI? ,LUCY>
+                                    <TELL "s">)>
+                             <TELL "he's wearing." CR>)>)
+                     (T
+                      <WASTES>)>)>>
+
+<ROUTINE KNOB-CAUSES-TINGLE (STRING)
+        <TELL .STRING " knob on the wall, a low vibration tingles up your
+legs from the floor" ,PCR>>
+
+;<OBJECT QUILL
+       (IN HAT)
+       (DESC "feather plume")
+       (SYNONYM FEATHER QUILL PLUME SMOKE)
+       (ADJECTIVE OSTRICH)
+       (FLAGS TAKEBIT NDESCBIT ;BURNBIT)
+       (SIZE 2)
+       (ACTION QUILL-F)>
+
+;<ROUTINE QUILL-F ()
+        <COND (<AND <VERB? TAKE REMOVE>
+                    <IN? ,QUILL ,HAT>
+                    <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+               <TELL CTHE ,HAT " looks quite drab without" TR ,QUILL>)
+              ;(<VERB? WEAR>
+               <TELL
+"Sally Bowes won't be born for 200 years: you'd best wait" ,PCR>)
+              ;(<VERB? BURN>
+               <COND (<NOT <EQUAL? <LOC ,QUILL> ,PROTAGONIST>>
+                      <TELL "You'd best be holding it" ,PCR>)
+                     (T
+                      <FSET ,QUILL ,MUNGBIT>
+                      <QUEUE I-QUILL-BURNING 2>
+                      <COND (<GLOBAL-IN? ,TORCH ,HERE>
+                             <TELL
+"Standing on tiptoe to reach" T ,TORCH ", y">)
+                            (<EQUAL? ,HERE ,KITCHEN>
+                             <TELL "Y">)
+                            (T
+                             <CANT-REACH "any fire">
+                             <RTRUE>)>  
+                      <TELL
+"ou set fire to" T ,QUILL ". It shrivels into
+a wallop of dusky, evil-smelling smoke" ,PCR>)>)
+              (<VERB? ALARM>
+               <COND (<PRSO? ,HERO>
+                      <COND (<FSET? ,QUILL ,MUNGBIT>
+                             <REVIVE-HERO ,QUILL>)
+                            (T
+                             <TELL
+"You tickle Jamison under his nose with" T ,QUILL ". ">
+                             <COND (<FSET? ,HERO ,DEADBIT>
+                                    <TELL ,DOESNT-RESPOND>)
+                                   (T
+                                    <TELL "He sneezes" ,PCR>)>)>)
+                     (T
+                      <WASTES>)>)>>
+
+;<ROUTINE I-QUILL-BURNING ()
+        <REMOVE ,QUILL>
+        <TELL ,INDENT
+"With a soft curse you let go of" T ,QUILL " as it burns down to your
+fingers. The fine black ashes swirl away" ,PCR>>
\ No newline at end of file
diff --git a/extras.zap b/extras.zap
new file mode 100644 (file)
index 0000000..5274c46
--- /dev/null
@@ -0,0 +1,1966 @@
+
+
+       .FUNCT  CRULLEY-F,OARG=0,X
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       EQUAL?  HERE,BEACH \?CCL8
+       PRINTD  CRULLEY
+       PRINTI  " stands"
+       GRTR?   LAFOND-CTR,6 \?CCL11
+       PRINTI  ", pistol ready,"
+       PRINT   HALFWAY
+       RTRUE   
+?CCL11:        PRINTI  " with the dragoons."
+       RTRUE   
+?CCL8: EQUAL?  HERE,CABIN \FALSE
+       PRINTD  CRULLEY
+       PRINTI  " the pirate"
+       FSET?   CRULLEY,DEADBIT \?CCL16
+       PRINTI  " lies unconscious on the floor."
+       RTRUE   
+?CCL16:        PRINTI  ", hook raised, leering, comes toward you."
+       RTRUE   
+?CCL3: EQUAL?  CRULLEY,WINNER \?CCL18
+       FSET?   CRULLEY,DEADBIT \?CCL21
+       PRINT   DOESNT-RESPOND
+       RTRUE   
+?CCL21:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL23
+       EQUAL?  PRSO,ME \?CCL23
+       CALL    NOUN-USED,W?HOOK,CRULLEY
+       ZERO?   STACK /?CCL28
+       PRINTI  "He snarls at the memory, ""'Twere bit off by a monster crocodile."""
+       CRLF    
+       JUMP    ?CND26
+?CCL28:        EQUAL?  PRSI,LAFOND \?CCL30
+       PRINTI  """'E's a hard 'un, who won't take no guff. But 'e pays well"
+       FSET?   BEACH,TOUCHBIT /?CND31
+       PRINTI  " -- er, so I hear"
+?CND31:        PRINTI  "."""
+       CRLF    
+       JUMP    ?CND26
+?CCL30:        PRINTD  CRULLEY
+       PRINTI  " ignores you"
+       PRINT   PCR
+?CND26:        CALL    STOP
+       RSTACK  
+?CCL23:        EQUAL?  PRSA,V?HELLO \?CCL34
+       PRINTR  """Har-har."""
+?CCL34:        EQUAL?  PRSA,V?KISS \?CCL36
+       EQUAL?  PRSO,ME \?CCL36
+       PRINTR  """Wi' a wannion! I likes me ladies forward!"""
+?CCL36:        CALL    COM-CHECK,CRULLEY >X
+       ZERO?   X /FALSE
+       EQUAL?  X,M-FATAL /FALSE
+       RTRUE   
+?CCL18:        EQUAL?  PRSA,V?CUT,V?KILL \?CCL45
+       FSET?   CRULLEY,DEADBIT \?CCL48
+       CALL    MAN-IS-DOWN
+       RSTACK  
+?CCL48:        ZERO?   PRSI /?CTR49
+       EQUAL?  PRSI,HANDS \?CCL50
+?CTR49:        EQUAL?  P-PRSA-WORD,W?SLAP \?CCL55
+       PRINTI  "Slap! The pirate fingers the red welt left by"
+       CALL    TPRINT,HANDS
+       PRINTR  ", and laughs."
+?CCL55:        IN?     COFFER,PROTAGONIST \?CCL57
+       ZERO?   PRSI \?CCL57
+       CALL    PERFORM,V?KILL,CRULLEY,COFFER
+       RTRUE   
+?CCL57:        IN?     RAPIER,PROTAGONIST \?CCL61
+       ZERO?   PRSI \?CCL61
+       CALL    PERFORM,V?KILL,CRULLEY,RAPIER
+       RTRUE   
+?CCL61:        CALL    CANT-HURT,STR?334
+       RSTACK  
+?CCL50:        EQUAL?  PRSI,COFFER \?CCL65
+       INC     'ATTACK-C
+       SET     'CRULLEY-HIT,TRUE-VALUE
+       PRINTI  "With all your strength you whack the pirate"
+       PRINT   OVER-HEAD
+       CALL    TRPRINT,PRSI
+       MOVE    PROTAGONIST,HERE
+       CALL    DEQUEUE,I-CRULLEY
+       CALL    I-CRULLEY
+       RSTACK  
+?CCL65:        EQUAL?  PRSI,RAPIER \?CCL67
+       FSET?   CRULLEY,EVERYBIT \?CCL70
+       FSET?   CRULLEY,MUNGBIT \?CCL73
+       PRINT   YOU-CANT
+       PRINTI  "very well reach"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " when he's down in"
+       CALL    TRPRINT,WELL
+       RSTACK  
+?CCL73:        CALL    DEQUEUE,I-CDUNG
+       INC     'SCORE
+       SET     'CRULLEY-CTR,1
+       CALL    QUEUE,I-CCLIMBS-UP,2
+       FSET    CRULLEY,MUNGBIT
+       FSET    CRULLEY,NDESCBIT
+       MOVE    CRULLEY,TRAP
+       REMOVE  WHIP
+       PRINTI  "You flick"
+       CALL    TPRINT,RAPIER
+       PRINTI  " across his chest, barely scratching him. He cries, ""Avast me! Pricked by a woman!"" and trips into"
+       CALL    TRPRINT,TRAP
+       PRINT   INDENT
+       PRINTI  "You peer down the hole to find "
+       PRINTD  CRULLEY
+       PRINTI  " hanging in midair, his hook caught in the rocks a few yards down. He curses and starts to climb up the sheer slimy walls of"
+       CALL    TRPRINT,WELL
+       RSTACK  
+?CCL70:        FSET    CRULLEY,EVERYBIT
+       PRINTD  CRULLEY
+       PRINTI  " seems more amazed than frightened of your attack, guessing correctly that you hardly know the tip from the hilt of"
+       CALL    TPRINT,RAPIER
+       PRINTI  ". He steps sideways in surprise, so he stands at"
+       PRINT   THE-EDGE
+       CALL    TRPRINT,TRAP
+       RSTACK  
+?CCL67:        PRINTI  "You slap"
+       CALL    TPRINT,CRULLEY
+       PRINT   OVER-HEAD
+       CALL    TPRINT-PRSI
+       PRINTI  ", to no effect"
+       PRINT   PCR
+       RTRUE   
+?CCL45:        EQUAL?  PRSA,V?KISS \?CCL75
+       SET     'WINNER,CRULLEY
+       CALL    PERFORM,V?KISS,ME
+       SET     'WINNER,PROTAGONIST
+       RTRUE   
+?CCL75:        EQUAL?  PRSA,V?KICK \?CCL77
+       CALL    CANT-HURT,STR?335
+       RSTACK  
+?CCL77:        EQUAL?  PRSA,V?PUT-ON,V?PUT,V?THROW /?CTR78
+       EQUAL?  PRSA,V?THROW-AT \?CCL79
+?CTR78:        FSET?   CRULLEY,MUNGBIT \?CCL84
+       EQUAL?  PRSO,RAPIER \?CCL87
+       CALL    PERFORM,V?PUT,RAPIER,TRAP
+       RTRUE   
+?CCL87:        EQUAL?  PRSO,RETICULE /FALSE
+       REMOVE  PRSO
+       PRINTD  CRULLEY
+       PRINTI  " curses as"
+       CALL    TPRINT-PRSO
+       PRINTI  " sails past him down into"
+       CALL    TRPRINT,WELL
+       RSTACK  
+?CCL84:        EQUAL?  PRSO,COFFER \FALSE
+       CALL    PERFORM,V?KILL,CRULLEY,PRSO
+       RSTACK  
+?CCL79:        EQUAL?  PRSA,V?SEARCH \?CCL93
+       FSET?   CRULLEY,DEADBIT \?CCL96
+       PRINTR  "And dirty your lily hands? Never!"
+?CCL96:        FSET?   CRULLEY,MUNGBIT \?CCL98
+       CALL    CANT-REACH,CRULLEY
+       RSTACK  
+?CCL98:        PRINTR  "You are uncomfortably sure he would love to have you frisk him."
+?CCL93:        EQUAL?  PRSA,V?GIVE \?CCL100
+       EQUAL?  PRSO,BANKNOTE \?CCL100
+       EQUAL?  HERE,BEACH /?CCL100
+       PRINTI  "He takes it, smiling blackly"
+       PRINT   PCR
+       RTRUE   
+?CCL100:       EQUAL?  PRSA,V?EXAMINE \FALSE
+       CALL    NOUN-USED,W?HOOK,CRULLEY
+       ZERO?   STACK /?CCL108
+       PRINTR  "The hook replaces one of his hands."
+?CCL108:       PRINTI  "The pirate's unsavory face is crisscrossed with scars, and those not from shaving nicks, to judge by his scruffy beard. A hook replaces one of his hands at the end of a torn black sleeve"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-CRULLEY
+       PRINT   INDENT
+       ZERO?   ATTACK-C \?CCL3
+       FSET?   CRULLEY,TOUCHBIT /?CCL3
+       CALL    QUEUE,I-MEET-HERO,2
+       FSET    CRULLEY,TOUCHBIT
+       MOVE    CRULLEY,CABIN
+       CALL    QUEUE,I-CRULLEY,-1
+       FSET    DOOR,MUNGBIT
+       PRINTI  "Crash! You whirl around to see"
+       CALL    TPRINT,DOOR
+       PRINTI  " shatter, kicked by a hulking man, his twisted visage blackened with soot and blood. "
+       JUMP    ?CND1
+?CCL3: EQUAL?  ATTACK-C,1 \?CND1
+       PRINTI  "The pirate stumbles, dizzy. "
+?CND1: EQUAL?  ATTACK-C,2 \?CCL9
+       FSET    CRULLEY,DEADBIT
+       PRINT   STUNNED-THE-SAILOR
+       PRINT   PCR
+       JUMP    ?CND7
+?CCL9: CALL    CRULLEY-SAYS
+?CND7: INC     'CRULLEY-CTR
+       RETURN  CRULLEY-CTR
+
+
+       .FUNCT  CRULLEY-SAYS
+       PRINTC  34
+       GET     MENACES,CRULLEY-CTR
+       PRINT   STACK
+       PRINTI  ","" "
+       EQUAL?  ATTACK-C,1 \?CCL3
+       PRINTI  "slurs"
+       JUMP    ?CND1
+?CCL3: PRINTI  "sniggers"
+?CND1: PRINTI  " the pirate"
+       EQUAL?  CRULLEY-CTR,1 \?CCL6
+       PRINTI  ". His breath is heavy with rum"
+       JUMP    ?CND4
+?CCL6: RANDOM  100
+       LESS?   60,STACK /?CND4
+       PRINTI  ", advancing toward you"
+?CND4: PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-OVERHEAR-CRULLEY
+       EQUAL?  HERE,CREWS-QUARTERS \FALSE
+       SET     'HEARD-CRULLEY,TRUE-VALUE
+       FSET    ANCHOR,MUNGBIT
+       FSET    LEVER,MUNGBIT
+       CALL    QUEUE,I-SEE-CRULLEY-ESCAPE,20
+       CALL    QUEUE,I-LOOK-SEA,10
+       PRINT   INDENT
+       PRINTI  """I gotta let"
+       CALL    TPRINT,LAFOND
+       PRINTI  " know 'e's comin'."""
+       CALL    TPRINT,CRULLEY
+       PRINTI  " stands on deck above, talking to himself, his voice floating down through"
+       CALL    APRINT,GRATE
+       PRINTI  " in"
+       CALL    TPRINT,CEILING
+       PRINTI  ". ""First, I do in the mates aboard-ship, with this and t'other mischief,"" he grunts, and you hear a snapping noise, like a taut rope being cut. ""Now to warn the boss and collect me pay. Off I go, har."" He dives into"
+       CALL    TRPRINT,SEA
+       RSTACK  
+
+
+       .FUNCT  I-SEE-CRULLEY-ESCAPE
+       CALL    SHIP-BOARD,HERE
+       ZERO?   STACK /?CCL3
+       CALL    INNER-DECK,HERE
+       ZERO?   STACK \?CCL3
+       PRINT   INDENT
+       PRINTI  "Your eyes are drawn to a flicker of light off the sea. Squinting, you see a man swimming to shore, moonlight flashing off his hook."
+       EQUAL?  HERE,POOP,QUARTERDECK,MAIN-DECK /?CCL7
+       EQUAL?  HERE,FOCSLE \?CND6
+?CCL7: PRINTR  " A wisp of breeze brings an odor of onions and rum, and the occasional gargling chuckle, ""...mischief, har...reefs."""
+?CND6: CRLF    
+       RTRUE   
+?CCL3: CALL    QUEUE,I-SEE-CRULLEY-ESCAPE,3
+       RSTACK  
+
+
+       .FUNCT  I-CDUNG
+       LESS?   CRULLEY-CTR,7 \?CCL3
+       PRINT   INDENT
+       PRINTD  CRULLEY
+       EQUAL?  CRULLEY-CTR,1 \?CND4
+       PRINTI  " steps leering out of the shadows and"
+?CND4: PRINTI  " cracks"
+       CALL    TPRINT,WHIP
+       PRINTI  " near you, hopping you towards the open "
+       PRINTD  TRAP
+       PRINTI  ". """
+       ZERO?   CRULLEY-HIT /?CCL8
+       EQUAL?  CRULLEY-CTR,1 \?CCL8
+       CALL    QUEUE,I-REPLY,2
+       SET     'AWAITING-REPLY,17
+       PRINTI  "Come to hit me agin, are ye?"
+       JUMP    ?CND6
+?CCL8: SET     'AWAITING-REPLY,2
+       CALL    QUEUE,I-REPLY,2
+       CALL    PICK-ONE,ABUSES
+       PRINT   STACK
+?CND6: PRINTC  34
+       CRLF    
+       JUMP    ?CND1
+?CCL3: PRINT   INDENT
+       PRINTD  CRULLEY
+       PRINTI  " snaps"
+       CALL    TPRINT,WHIP
+       PRINTI  " around your neck, jerking you sideways and down through"
+       CALL    TPRINT,TRAP
+       PRINTC  46
+       CALL    JIGS-UP,FALL-TO-BOTTOM
+?CND1: INC     'CRULLEY-CTR
+       RETURN  CRULLEY-CTR
+
+
+       .FUNCT  I-CCLIMBS-UP
+       CALL    QUEUE,I-CCLIMBS-UP,-1
+       INC     'CRULLEY-CTR
+       EQUAL?  CRULLEY-CTR,10 \?CCL3
+       SET     'CRULLEY-BACK,TRUE-VALUE
+       FCLEAR  CRULLEY,NDESCBIT
+       CALL    DEQUEUE,I-CCLIMBS-UP
+       EQUAL?  HERE,DUNGEON /?CCL6
+       FCLEAR  CRULLEY,MUNGBIT
+       MOVE    CRULLEY,DUNGEON
+       RFALSE  
+?CCL6: FSET?   TRAP,OPENBIT /?CCL8
+       PRINT   INDENT
+       PRINTI  "Roaring with anger,"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " slaps"
+       CALL    TPRINT,TRAP
+       PRINTI  " back on its hinges and"
+       JUMP    ?CND4
+?CCL8: PRINT   INDENT
+       PRINTD  CRULLEY
+?CND4: PRINTI  " leaps out of"
+       CALL    TPRINT,WELL
+       PRINTI  ", seizing you."
+       CALL    JIGS-UP,FALL-TO-BOTTOM
+       RSTACK  
+?CCL3: RANDOM  100
+       LESS?   50,STACK /FALSE
+       EQUAL?  HERE,DUNGEON \FALSE
+       PRINT   INDENT
+       PRINTI  "Sounds of scraping hook against stone and curses echo out of"
+       CALL    TPRINT,WELL
+       FSET?   TRAP,OPENBIT /?CND13
+       PRINTI  ", muffled by"
+       CALL    TPRINT,TRAP
+?CND13:        PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  WHIP-F
+       EQUAL?  PRSA,V?TAKE \FALSE
+       PRINTD  CRULLEY
+       PRINTI  " snaps"
+       CALL    TPRINT,WHIP
+       PRINTR  " near you. ""Get away wit' ye."""
+
+
+       .FUNCT  DAVIS-F
+       EQUAL?  PRSA,V?MUNG,V?KICK,V?KILL /?CTR2
+       EQUAL?  PRSA,V?KISS \?CCL3
+?CTR2: PRINTD  DAVIS
+       PRINTR  " dodges."
+?CCL3: EQUAL?  PRSA,V?EXAMINE \?CCL7
+       PRINTD  DAVIS
+       PRINTR  " is ugly with fear."
+?CCL7: EQUAL?  DAVIS,WINNER \FALSE
+       CALL    FAILS-TO-NOTICE
+       RSTACK  
+
+
+       .FUNCT  COOKIE-F,OARG=0,X
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       EQUAL?  HERE,GALLEY \?CCL8
+       PRINTI  "An entirely bald man sits here, carving into his peg leg"
+       JUMP    ?CND6
+?CCL8: ZERO?   COOKIE-FIGHTING-CROC /?CCL10
+       PRINTI  "The pool is roily with the writhing bodies of"
+       CALL    TPRINT,COOKIE
+       PRINTI  " and"
+       CALL    TPRINT,CROC
+       JUMP    ?CND6
+?CCL10:        CALL    QUEUED?,I-ENDGAME
+       ZERO?   STACK /?CCL12
+       EQUAL?  HERE,BEACH \?CCL12
+       FSET?   COOKIE,DEADBIT \?CCL17
+       PRINTI  "Lucy cleans the sand from Quick's quiescent face, as Papa "
+       FSET?   LAFOND,DEADBIT \?CCL20
+       PRINTI  "sneaks up the cliff stairs"
+       JUMP    ?CND6
+?CCL20:        PRINTI  "stands nearby"
+       IN?     GARTER,DAD \?CND6
+       PRINTI  ", holding"
+       CALL    TPRINT,GARTER
+       JUMP    ?CND6
+?CCL17:        PRINTD  COOKIE
+       PRINTI  ", Lucy and your father are moving towards"
+       CALL    TPRINT,SKIFF
+       JUMP    ?CND6
+?CCL12:        PRINTD  COOKIE
+       PRINTI  " chews anxiously at a cheroot"
+?CND6: PRINTC  46
+       RTRUE   
+?CCL3: EQUAL?  COOKIE,WINNER \?CCL24
+       FSET?   COOKIE,DEADBIT \?CCL27
+       PRINT   DOESNT-RESPOND
+       RTRUE   
+?CCL27:        EQUAL?  PRSA,V?READ \?CCL29
+       PRINTR  """I can't read! I'm a cook, not a gentleman!"""
+?CCL29:        EQUAL?  PRSA,V?HELLO \?CCL31
+       PRINTI  """Hullo -- boy!"" He winks at you"
+       PRINT   PCR
+       RTRUE   
+?CCL31:        EQUAL?  PRSA,V?SAVE-SOMETHING,V?HELP \?CCL33
+       EQUAL?  HERE,GALLEY \?CCL36
+       PRINTI  """Eh? Don't be panicking. We'll be fine."" He carves a smile into his leg"
+       PRINT   PCR
+       RTRUE   
+?CCL36:        PRINTD  COOKIE
+       PRINTR  " grumbles, ""What d'ye think I'm trying to do!"""
+?CCL33:        EQUAL?  PRSA,V?FIX \?CCL38
+       EQUAL?  PRSO,DAGGER \?CCL38
+       PRINTR  """I never was able to sharpen that dagger."""
+?CCL38:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL42
+       EQUAL?  PRSO,ME \?CCL42
+       EQUAL?  PRSI,HERO \?CCL47
+       IN?     HERO,MANACLES \?CCL50
+       PRINTI  """I'm tryin' to find him!"""
+       CRLF    
+       JUMP    ?CND45
+?CCL50:        PRINTI  """The Cap'n? I been with him since the war. Then came Lafond."""
+       CRLF    
+       JUMP    ?CND45
+?CCL47:        EQUAL?  PRSI,COOKIE \?CCL52
+       PRINTI  """'Rodney Quick's me name, cookin's me game.
+Lost me leg in sixty-eight, 'tis why I bake.
+Losin' me hearin' in every fight, but I've got me sight --
+And come our Good Lord's 1701, I'll lose me life to a ruffian's gun.'
+-- Old dame told me that. Leastways, I've several years left."""
+       CRLF    
+       JUMP    ?CND45
+?CCL52:        EQUAL?  PRSI,LAFOND \?CCL54
+       PRINTI  """He murdered Cap'n's brother and family these three year'n past. Cap'n's been searching for a time to avenge the dead ones, and now he's found it."""
+       CRLF    
+       JUMP    ?CND45
+?CCL54:        EQUAL?  PRSI,CRULLEY \?CCL56
+       PRINTI  """Don't trust 'im. Never 'ave."""
+       CRLF    
+       JUMP    ?CND45
+?CCL56:        PRINTD  COOKIE
+       PRINTI  " cocks an ear, ""Eh, what's that?"""
+       CRLF    
+?CND45:        CALL    STOP
+       RSTACK  
+?CCL42:        EQUAL?  PRSA,V?GIVE \?CCL58
+       EQUAL?  PRSO,ME \?CCL58
+       IN?     RAPIER,COOKIE \?CCL58
+       CALL    PERFORM,V?TAKE,RAPIER
+       RTRUE   
+?CCL58:        EQUAL?  PRSA,V?FOLLOW \?CCL63
+       EQUAL?  PRSO,ME \?CCL63
+       PRINTI  """Foller you?"
+       EQUAL?  HERE,GALLEY /?CND66
+       PRINTI  " Anywheres"
+?CND66:        PRINTR  "!"""
+?CCL63:        EQUAL?  PRSA,V?TAKE \?CCL69
+       EQUAL?  PRSO,PAIR \?CCL69
+       EQUAL?  HERE,X-ROOM \?CCL69
+       PRINTR  """No, lass. A lady don't use guns, and I've no need for one."""
+?CCL69:        CALL    COM-CHECK,COOKIE >X
+       ZERO?   X /FALSE
+       EQUAL?  X,M-FATAL /FALSE
+       RTRUE   
+?CCL24:        EQUAL?  PRSA,V?EXAMINE \?CCL79
+       PRINTD  COOKIE
+       PRINTR  " is a grizzled old man with a peg-leg."
+?CCL79:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL81
+       CALL    NOUN-USED,W?GUNPOW,SUPPLIES
+       ZERO?   STACK /?CCL84
+       PRINTR  """Clam chowder? Never make it -- too fancy."""
+?CCL84:        EQUAL?  PRSI,REEFS \?CCL86
+       PRINTR  """We dropped the sea anchor -- no need to fear."""
+?CCL86:        EQUAL?  PRSI,SUPPLIES \?CCL88
+       PRINTR  """Aye, you must mean the supplies in the hold. Yep, that's where we store them."""
+?CCL88:        EQUAL?  PRSI,FIRE,HOLD \?CCL90
+       PRINTR  """Fire for the cold? I think it be too warm..."""
+?CCL90:        EQUAL?  PRSI,FUSE \?CCL92
+       PRINTR  """Lose sommat? I be always losing things. Think there be thieves aboard."""
+?CCL92:        EQUAL?  PRSI,HERO \FALSE
+       ZERO?   COOKIE-FIGHTING-CROC /?CCL97
+       CALL    FAILS-TO-NOTICE
+       RSTACK  
+?CCL97:        CALL    HELD?,HERO,DUNGEON
+       ZERO?   STACK /?CCL99
+       PRINTI  """Well, show me, lass!"" he grumbles"
+       PRINT   PCR
+       RTRUE   
+?CCL99:        PRINTI  """He's a fine man, is Cap'n,"" he smiles"
+       PRINT   PCR
+       RTRUE   
+?CCL81:        EQUAL?  PRSA,V?KISS \?CCL101
+       PRINTR  """Nah, me pretty, ye belong to Cap'n."""
+?CCL101:       EQUAL?  PRSA,V?GIVE \?CCL103
+       EQUAL?  PRSO,BANKNOTE \?CCL103
+       PRINTI  """I hain't no need fer that kind of money,"" he waves away your offer"
+       PRINT   PCR
+       RTRUE   
+?CCL103:       EQUAL?  PRSA,V?CUT,V?MUNG,V?KILL \FALSE
+       FSET?   COOKIE,DEADBIT \?CCL110
+       CALL    MAN-IS-DOWN
+       RSTACK  
+?CCL110:       PRINTR  "He holds you off, ""'Ere now, there's no call for that!"""
+
+
+       .FUNCT  I-COOKIE,FIRST-MOVE=0
+       ZERO?   FIRST-MOVE /?CCL3
+       SET     'COOKIE-LOOKING,FALSE-VALUE
+       SET     'QUESTIONER,COOKIE
+       SET     'AWAITING-REPLY,10
+       CALL    QUEUE,I-REPLY,2
+       ZERO?   CLOCK-WAIT /?CCL6
+       PUSH    1
+       JUMP    ?CND4
+?CCL6: PUSH    2
+?CND4: CALL    QUEUE,I-COOKIE,STACK
+       MOVE    COOKIE,HERE
+       FSET    COOKIE,MUNGBIT
+       SET     'CRULLEY-CTR,0
+       PRINT   INDENT
+       PRINTD  COOKIE
+       PRINTI  " rushes up to you, looking worried. ""Miss, we must find the Cap'n. Have ye any idea where to look?"""
+       CRLF    
+       JUMP    ?CND1
+?CCL3: IN?     COOKIE,HERE /?CCL8
+       CALL    DEQUEUE,I-COOKIE
+       JUMP    ?CND1
+?CCL8: EQUAL?  REACTION,REACTION-POSITIVE /?CTR9
+       EQUAL?  PRSA,V?WALK \?CCL10
+?CTR9: PRINT   INDENT
+       PRINTD  COOKIE
+       PRINTI  " grins broadly, ""I knew we could depend on you, lass. Lead on!"""
+       CRLF    
+       JUMP    ?CND1
+?CCL10:        EQUAL?  CRULLEY-CTR,2 \?CCL14
+       MOVE    COOKIE,LIBRARY
+       EQUAL?  REACTION,REACTION-NEGATIVE \?CCL17
+       PRINT   INDENT
+       PRINTI  """Hell and damnation, I was afraid of that"
+       JUMP    ?CND15
+?CCL17:        PRINT   INDENT
+       PRINTI  "He harrumphs. ""So ye do not care fer him after all"
+?CND15:        PRINTI  "!"" "
+       PRINTD  COOKIE
+       PRINTI  " orders the men to search, moving off himself.
+"
+       JUMP    ?CND1
+?CCL14:        SET     'QUESTIONER,COOKIE
+       SET     'AWAITING-REPLY,10
+       CALL    QUEUE,I-REPLY,2
+       CALL    QUEUE,I-COOKIE,1
+       PRINT   INDENT
+       PRINTD  COOKIE
+       PRINTI  " urges you, ""Think agin. Any idea?"""
+       CRLF    
+?CND1: INC     'CRULLEY-CTR
+       RETURN  CRULLEY-CTR
+
+
+       .FUNCT  CREW-F
+       EQUAL?  CREW,WINNER \?CCL3
+       EQUAL?  PRSA,V?HELLO \?CCL6
+       PRINTI  "He grins at you toothlessly"
+       PRINT   PCR
+       JUMP    ?CND4
+?CCL6: ZERO?   ENDGAME /?CCL8
+       EQUAL?  PRSA,V?FIND,V?WHERE \?CCL8
+       EQUAL?  PRSO,HERO,COOKIE \?CCL8
+       CALL    PERFORM,V?TELL-ABOUT,ME,PRSO
+       RTRUE   
+?CCL8: EQUAL?  PRSA,V?TELL-ABOUT \?CCL13
+       EQUAL?  PRSO,ME \?CCL13
+       ZERO?   ENDGAME /?CCL18
+       EQUAL?  PRSI,HERO,COOKIE \?CCL18
+       EQUAL?  PRSI,COOKIE \?CCL23
+       PRINTI  """'E went"
+       JUMP    ?CND21
+?CCL23:        PRINTI  """Cookie be"
+?CND21:        PRINTI  " a-lookin' for Cap'n."""
+       CRLF    
+       JUMP    ?CND4
+?CCL18:        EQUAL?  PRSI,LAFOND \?CCL25
+       PRINTI  """'E be an evil man, I do hear."""
+       CRLF    
+       JUMP    ?CND4
+?CCL25:        CALL    FAILS-TO-NOTICE
+       JUMP    ?CND4
+?CCL13:        PRINTI  """I'm busy. Do it yerself, boy."" He cuffs you aside."
+       CRLF    
+?CND4: CALL    STOP
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?EXAMINE \FALSE
+       PRINTD  HERO
+       PRINTI  "'s crew are a ragged, toothless bunch, all sporting jagged scars. Despite their abhorrent appearances, they call friendlily to each other"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  LUCY-F,OARG=0
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       EQUAL?  HERE,KITCHEN \FALSE
+       PRINT   INDENT
+       FSET?   LUCY,TOUCHBIT \?CCL11
+       PRINTD  LUCY
+       JUMP    ?CND9
+?CCL11:        PRINTI  "A blond woman"
+?CND9: CALL    RUNNING?,I-LUCY
+       ZERO?   STACK /?CCL14
+       PRINTI  " stands talking to you"
+       JUMP    ?CND12
+?CCL14:        PRINTI  " huddles alone by the fire, as if cold"
+?CND12:        PRINTC  46
+       RTRUE   
+?CCL3: EQUAL?  LUCY,WINNER \?CCL16
+       EQUAL?  PRSA,V?TELL-ABOUT \?CCL19
+       EQUAL?  PRSO,ME \?CCL19
+       CALL    NOUN-USED,W?LIBRARY,HOUSE
+       ZERO?   STACK /?CCL24
+       PRINTI  """I ain't allowed in that wing of"
+       CALL    TRPRINT,HOUSE
+       JUMP    ?CND22
+?CCL24:        EQUAL?  PRSI,LAFOND \?CCL26
+       PRINTI  """He's a regular lout who don't like my cooking."""
+       CRLF    
+       JUMP    ?CND22
+?CCL26:        CALL    FAILS-TO-NOTICE
+?CND22:        CALL    STOP
+       RSTACK  
+?CCL19:        EQUAL?  PRSA,V?HELLO \?CCL28
+       PRINTI  "She smiles"
+       PRINT   PCR
+       RTRUE   
+?CCL28:        EQUAL?  PRSA,V?KISS \?CCL30
+       EQUAL?  PRSO,ME \?CCL30
+       PRINTR  """I hardly know you!"" she gasps."
+?CCL30:        CALL    COM-CHECK,LUCY >OARG
+       ZERO?   OARG /FALSE
+       EQUAL?  OARG,M-FATAL /FALSE
+       RTRUE   
+?CCL16:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL39
+       EQUAL?  PRSI,DAD \?CCL39
+       FSET?   DAD,TOUCHBIT \?CCL44
+       PRINTR  """Yes, he told me."""
+?CCL44:        SET     'AWAITING-REPLY,2
+       CALL    QUEUE,I-REPLY,2
+       PRINTR  "She yelps, ""Dear Dimsy, how can I save him?"""
+?CCL39:        EQUAL?  PRSA,V?GIVE \?CCL46
+       EQUAL?  PRSO,GARTER \?CCL49
+       FSET?   GARTER,INVISIBLE /?CCL49
+       PRINTD  LUCY
+       PRINTR  " frowns. ""No, you silly boy! Give that to Dimsford!"""
+?CCL49:        EQUAL?  PRSO,BANKNOTE \FALSE
+       PRINTD  LUCY
+       PRINTR  " slaps you hard across the face. ""I'm not that sort of girl!"""
+?CCL46:        EQUAL?  PRSA,V?LISTEN \?CCL55
+       CALL    RUNNING?,I-LUCY
+       ZERO?   STACK /?CCL58
+       PRINTR  "You are listening to her!"
+?CCL58:        PRINTI  "She talks a lot, but doesn't say much"
+       PRINT   PCR
+       RTRUE   
+?CCL55:        EQUAL?  PRSA,V?ASK-FOR \?CCL60
+       EQUAL?  PRSI,GARTER \?CCL60
+       CALL    PERFORM,V?TAKE,GARTER
+       RTRUE   
+?CCL60:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       PRINTI  "Lucy is a very pretty woman, a few years your senior, her yellow hair neatly arranged. She wears a cook's apron"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-LUCY
+       FCLEAR  GARTER,INVISIBLE
+       CALL    THIS-IS-IT,GARTER
+       PRINT   INDENT
+       PRINTI  """I haven't found Lafond's papers, I'm watched too closely. Tell Dimsford that I -- I'm scared, and I want him to come get me. Give this to him -- he'll recognize it."" Lucy slides"
+       CALL    APRINT,GARTER
+       PRINTI  " down her leg and holds it out to you"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-CATCH-KISS
+       FCLEAR  FOREST,EVERYBIT
+       RTRUE   
+
+
+       .FUNCT  BUTLER-F,OARG=0,CONTENTS=0
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       CALL    CTPRINT,BUTLER
+       FSET?   BUTLER,DEADBIT /?CCL8
+       PRINTI  " stands near the entrance to "
+       EQUAL?  HERE,FOYER \?CCL11
+       PRINTI  "the ballroom"
+       JUMP    ?CND6
+?CCL11:        PRINTI  "the hallway"
+       JUMP    ?CND6
+?CCL8: PRINTI  " lies on the floor, prone and snoring loudly"
+?CND6: PRINTC  46
+       RTRUE   
+?CCL3: EQUAL?  BUTLER,WINNER \?CCL13
+       FSET?   BUTLER,DEADBIT \?CCL16
+       PRINT   DOESNT-RESPOND
+       RTRUE   
+?CCL16:        EQUAL?  PRSA,V?HELLO \?CCL18
+       PRINTI  "He bows"
+       PRINT   PCR
+       RTRUE   
+?CCL18:        EQUAL?  PRSA,V?TAKE \?CCL20
+       EQUAL?  PRSO,BLUE-GLASS,BANKNOTE,INVITE /?CTR19
+       EQUAL?  PRSO,GREEN-GLASS \?CCL20
+?CTR19:        SET     'WINNER,PROTAGONIST
+       CALL    PERFORM,V?GIVE,PRSO,BUTLER
+       SET     'WINNER,BUTLER
+       RTRUE   
+?CCL20:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL26
+       EQUAL?  PRSO,ME \?CCL26
+       EQUAL?  PRSI,LAFOND \?CCL26
+       CALL    QUEUED?,I-SUMMONS
+       ZERO?   STACK \?CTR31
+       FSET?   LDOOR,LOCKEDBIT /?CCL32
+?CTR31:        EQUAL?  HERE,LAFS-ROOM \?CCL37
+       PRINTR  """He's gone for water, Miss."""
+?CCL37:        PRINTI  """He's awaiting you now, Miss. In his room."""
+       CRLF    
+       MOVE    LAFOND,LAFS-ROOM
+       RTRUE   
+?CCL32:        EQUAL?  DANCED-WITH,LAFOND \?CCL39
+       PRINTR  """He has retired to his room, and requests not to be disturbed."""
+?CCL39:        PRINTR  """The governor is in the ballroom, Miss."""
+?CCL26:        CALL    COM-CHECK,BUTLER >OARG
+       ZERO?   OARG /FALSE
+       EQUAL?  OARG,M-FATAL /FALSE
+       RTRUE   
+?CCL13:        EQUAL?  PRSA,V?EXAMINE \?CCL46
+       CALL    CTPRINT,BUTLER
+       PRINTI  ", scarred and burly, looks uncomfortable in his formal blacks, as if he'd prefer the rags of a pirate"
+       FSET?   BUTLER,DEADBIT \?CND47
+       PRINTI  ". He lies snoring on the floor"
+?CND47:        PRINT   PCR
+       RTRUE   
+?CCL46:        FSET?   BUTLER,DEADBIT \?CCL50
+       EQUAL?  PRSA,V?SEARCH \?CCL53
+       PRINT   NOTHING-NEW
+       RTRUE   
+?CCL53:        EQUAL?  PRSA,V?HELLO,V?ASK-ABOUT,V?TELL /FALSE
+       PRINT   DOESNT-RESPOND
+       RTRUE   
+?CCL50:        EQUAL?  PRSA,V?SHOW,V?GIVE \?CCL57
+       EQUAL?  PRSO,BANKNOTE,INVITE \?CCL60
+       CALL    BRIBE-BUTLER,PRSO
+       RSTACK  
+?CCL60:        EQUAL?  PRSO,GREEN-GLASS,BLUE-GLASS \FALSE
+       PRINTI  "He looks pleased"
+       GETP    PRSO,P?CONTENTS
+       EQUAL?  STACK,0,POISONED \?CCL65
+       PRINTR  ", then disappointed. ""There's no wine in that glass, Ma'am."""
+?CCL65:        GETP    PRSO,P?CONTENTS
+       EQUAL?  STACK,W-P \?CND63
+       SET     'DRUGGEE,BUTLER
+       CALL    QUEUE,I-WATCH-SLEEP,2
+?CND63:        MOVE    PRSO,BUTLER
+       PUTP    PRSO,P?CONTENTS,0
+       PRINTI  ". ""I am rather parched, Ma'am,"" he says, taking and emptying"
+       CALL    TRPRINT,PRSO
+       RSTACK  
+?CCL57:        EQUAL?  P-PRSA-WORD,W?TIP \FALSE
+       CALL    HELD?,BANKNOTE
+       ZERO?   STACK /?CCL71
+       CALL    BRIBE-BUTLER,BANKNOTE
+       RSTACK  
+?CCL71:        PRINTR  "You have nothing to do that with."
+
+
+       .FUNCT  I-BUTLER,CALLED-BY-BUTLER-F=0
+       INC     'BUTLER-CTR
+       ZERO?   CALLED-BY-BUTLER-F /?CCL3
+       CALL    QUEUE,I-BUTLER,2
+       JUMP    ?CND1
+?CCL3: CALL    QUEUE,I-BUTLER,-1
+?CND1: EQUAL?  HERE,FOYER /?CCL6
+       SET     'AWAITING-FAKE-ORPHAN,FALSE-VALUE
+       CALL    DEQUEUE,I-BUTLER
+       RFALSE  
+?CCL6: FSET?   GOWN,WORNBIT \FALSE
+       ZERO?   CALLED-BY-BUTLER-F \?CND8
+       PRINT   INDENT
+       PRINTC  34
+?CND8: EQUAL?  BUTLER-CTR,3 \?CCL13
+       CALL    DEQUEUE,I-BUTLER
+       FSET    BUTLER,MUNGBIT
+       PRINT   YOULL-HAVE-TO
+       PRINTI  "hope to be invited to the next party,"" smirks"
+       CALL    TPRINT,BUTLER
+       PRINT   PUSHING-YOU-OUT
+       CRLF    
+       CALL    GOTO,MAIN-ENTRANCE
+       RSTACK  
+?CCL13:        PRINTI  "Your invitation, Miss?"" says"
+       CALL    TPRINT,BUTLER
+       EQUAL?  BUTLER-CTR,4 \?CCL16
+       PRINTI  " snapping his fingers"
+       JUMP    ?CND14
+?CCL16:        PRINTI  " bowing"
+?CND14:        PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  BRIBE-BUTLER,GRAFT
+       MOVE    GRAFT,BUTLER
+       FSET?   BUTLER,INDOORSBIT \?CCL3
+       PRINTI  "He takes"
+       CALL    TPRINT,GRAFT
+       PRINTI  " and bows. ""Thank you, Miss"
+       EQUAL?  GRAFT,INVITE \?CND4
+       PRINTI  " Davis"
+?CND4: PRINTR  "."""
+?CCL3: FSET    BUTLER,INDOORSBIT
+       FCLEAR  BUTLER,MUNGBIT
+       CALL    DEQUEUE,I-BUTLER
+       INC     'SCORE
+       CALL    CTPRINT,BUTLER
+       PRINTI  " takes"
+       CALL    TPRINT,GRAFT
+       EQUAL?  GRAFT,BANKNOTE \?CND6
+       PRINTI  " and secrets it away"
+?CND6: PRINTI  ". ""Enjoy the dance, Miss"
+       EQUAL?  GRAFT,INVITE \?CND8
+       PRINTI  " Davis"
+?CND8: PRINTR  "."""
+
+
+       .FUNCT  DANCERS-F
+       EQUAL?  DANCERS,WINNER \?CCL3
+       ZERO?   ENDGAME /?CCL6
+       CALL    CTPRINT,DANCERS
+       PRINTR  " looks away, terrified."
+?CCL6: EQUAL?  PRSA,V?HELLO \?CCL8
+       PRINTI  "A dancer smiles nervously and looks away"
+       PRINT   PCR
+       RTRUE   
+?CCL8: EQUAL?  PRSA,V?TELL-ABOUT \FALSE
+       EQUAL?  PRSO,ME \FALSE
+       EQUAL?  PRSI,LAFOND \?CCL15
+       PRINTI  """He's such a good host! I've never been to such a fine party! I'm so glad he is our governor."" You have never seen anyone so nervous before"
+       PRINT   PCR
+       JUMP    ?CND13
+?CCL15:        PRINTI  "Nobody seems inclined to chat with you"
+       PRINT   PCR
+?CND13:        CALL    STOP
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?DANCE /?CTR16
+       EQUAL?  PRSA,V?ASK-FOR \?CCL17
+       EQUAL?  PRSI,BALLROOM \?CCL17
+?CTR16:        PRINTR  "A man regretfully shakes his head. ""We haven't been introduced by the governor."""
+?CCL17:        EQUAL?  PRSA,V?ASK-FOR \?CCL23
+       EQUAL?  PRSI,BALLROOM \?CCL23
+       CALL    PERFORM,V?DANCE,DANCERS
+       RTRUE   
+?CCL23:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       CALL    CTPRINT,DANCERS
+       PRINTI  "s are dressed in powdered wigs and heavy jewels. All seem paler than fashion and the tropics would decree, and rather nervous"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  DAD-F,OARG=0
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       PRINTI  "Your father calmly stands nearby."
+       RTRUE   
+?CCL3: EQUAL?  DAD,WINNER \?CCL7
+       EQUAL?  PRSA,V?TELL-ABOUT \?CCL10
+       EQUAL?  PRSO,ME \?CCL10
+       EQUAL?  PRSI,GARTER \?CCL15
+       PRINTI  """That belongs to -- a friend."""
+       CRLF    
+       JUMP    ?CND13
+?CCL15:        PRINTI  """My dear,"" he says rather impatiently, ""There are people waiting for our help -- I haven't time to answer your questions just now."""
+       CRLF    
+?CND13:        CALL    STOP
+       RSTACK  
+?CCL10:        EQUAL?  PRSA,V?I-LOVE-YOU \?CCL17
+       EQUAL?  PRSI,EYES \?CCL20
+       PRINT   DAD-KISS
+       RTRUE   
+?CCL20:        EQUAL?  PRSI,HERO \?CCL22
+       PRINTR  """I hoped you would,"" he smiles."
+?CCL22:        EQUAL?  PRSI,LAFOND \?CCL24
+       PRINTR  """My poor doomed daughter!"""
+?CCL24:        CALL    FAILS-TO-NOTICE
+       RSTACK  
+?CCL17:        EQUAL?  PRSA,V?FOLLOW \?CCL26
+       EQUAL?  PRSO,ME \?CCL26
+       PRINTR  """Lead on, daughter!"""
+?CCL26:        EQUAL?  PRSA,V?HELLO \?CCL30
+       PRINT   DAD-KISS
+       RTRUE   
+?CCL30:        CALL    COM-CHECK,DAD >OARG
+       ZERO?   OARG /FALSE
+       EQUAL?  OARG,M-FATAL /FALSE
+       RTRUE   
+?CCL7: EQUAL?  PRSA,V?ASK-FOR \?CCL37
+       EQUAL?  PRSI,GARTER \?CCL37
+       CALL    PERFORM,V?TAKE,GARTER
+       RTRUE   
+?CCL37:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL41
+       EQUAL?  PRSI,LUCY \?CCL44
+       PRINTR  "He listens intently, and laughs, ""What a delightful girl she is, to be sure!"""
+?CCL44:        EQUAL?  PRSI,HERO \FALSE
+       CALL    RUNNING?,I-DAD
+       ZERO?   STACK /?CCL49
+       CALL    DEQUEUE,I-DAD
+       CALL    I-DAD,TRUE-VALUE
+       RSTACK  
+?CCL49:        SET     'AWAITING-REPLY,16
+       CALL    QUEUE,I-REPLY,2
+       PRINTI  """So you like him?"" he asks, smiling"
+       PRINT   PCR
+       RTRUE   
+?CCL41:        EQUAL?  PRSA,V?SHOW,V?GIVE \?CCL51
+       EQUAL?  PRSO,BANKNOTE \?CCL54
+       REMOVE  BANKNOTE
+       PRINTI  """Do not stain yourself with that dirty money,"" he takes"
+       CALL    TPRINT,BANKNOTE
+       PRINTI  " and rips it up"
+       PRINT   PCR
+       RTRUE   
+?CCL54:        EQUAL?  PRSO,GARTER \FALSE
+       PRINTR  "He smiles dreamily at a memory."
+?CCL51:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       PRINTI  "Prison has only added a peppery beard to your father's handsome features. His green eyes still twinkle, his wrists still poke bonily out of his shirt cuffs"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-DAD,CALLED-BY-DAD-F=0
+       ZERO?   CALLED-BY-DAD-F \?CND1
+       PRINT   INDENT
+?CND1: PRINTR  "You briefly explain the current situation to your father.
+   ""I knew Falcon would do his best to rescue me, once you were safe,"" he responds. ""Now to rescue Lucy -- Nicholas will have told you about her. You get him while I get Lucy, and the four of us will meet down at the beach. Just show me the way out of this maze, and we'll get started."""
+
+
+       .FUNCT  LAFOND-F,OARG=0
+       ZERO?   OARG /?CCL3
+       EQUAL?  OARG,M-DESC? /TRUE
+       PRINT   INDENT
+       PRINTD  LAFOND
+       FSET?   LAFOND,MUNGBIT \?CCL8
+       PRINT   LAF-MUNGED
+       RTRUE   
+?CCL8: FSET?   LAFOND,DEADBIT \?CCL10
+       PRINTI  " is slumped in the sand, dead."
+       RTRUE   
+?CCL10:        EQUAL?  HERE,BEACH \?CCL12
+       PRINTI  " stands"
+       PRINT   HALFWAY
+       RTRUE   
+?CCL12:        PRINTI  " is leering, lip curled."
+       RTRUE   
+?CCL3: EQUAL?  LAFOND,WINNER \?CCL14
+       CALL    RUNNING?,I-DUEL
+       ZERO?   STACK \?PRD19
+       CALL    RUNNING?,I-ENDGAME
+       ZERO?   STACK /?CCL17
+?PRD19:        FSET?   LAFOND,DEADBIT /?CCL17
+       PRINTR  "He ignores you."
+?CCL17:        EQUAL?  PRSA,V?TELL-ABOUT \?CCL23
+       EQUAL?  PRSO,ME \?CCL23
+       EQUAL?  PRSI,LRING \?CCL23
+       SET     'WINNER,PROTAGONIST
+       CALL    PERFORM,V?TAKE,LRING
+       SET     'WINNER,LAFOND
+       RTRUE   
+?CCL23:        CALL    COM-CHECK,LAFOND >OARG
+       ZERO?   OARG /FALSE
+       EQUAL?  OARG,M-FATAL /FALSE
+       RTRUE   
+?CCL14:        EQUAL?  PRSA,V?POUR \?CCL33
+       EQUAL?  PRSO,WINE \?CCL33
+       FSET?   LAFOND,DEADBIT /?CCL33
+       CALL    FWTD,SMACK-YOUR-FACE
+       RSTACK  
+?CCL33:        EQUAL?  PRSA,V?DANCE \?CCL38
+       EQUAL?  HERE,BALLROOM \?CCL38
+       EQUAL?  PARTNER,LAFOND \?CCL43
+       PRINT   PACE
+       RTRUE   
+?CCL43:        CALL    RUNNING?,I-LDANCE
+       ZERO?   STACK /FALSE
+       PRINTI  "You curtsey and walk to"
+       PRINT   DANCE-FLOOR
+       PRINT   PCR
+       SET     'REACTION,REACTION-POSITIVE
+       RETURN  REACTION
+?CCL38:        EQUAL?  PRSA,V?KICK,V?BITE,V?KILL \?CCL47
+       FSET?   LAFOND,MUNGBIT \?CCL50
+       CALL    MAN-IS-DOWN
+       RSTACK  
+?CCL50:        EQUAL?  HERE,BALLROOM \?CCL52
+       SET     'AWAITING-REPLY,2
+       CALL    QUEUE,I-REPLY,2
+       PRINT   LAF-GRABS
+       PRINT   THE-BALLROOM
+       PRINTR  "whirling blur through your tears as he leads you around the floor. ""Ma petite, a ball is not the right place to kill me. What would my guests think?!"""
+?CCL52:        ZERO?   KILL-L \?CCL54
+       SET     'KILL-L,TRUE-VALUE
+       PRINT   LAF-GRABS
+       PRINTI  "Twisting your wrist, pain stabbing down your arm, he forces his mouth on yours, hard, thrusting, cutting your lips. He releases you"
+       ZERO?   PRSI /?CND55
+       EQUAL?  PRSI,RETICULE /?CND55
+       FSET?   PRSI,WORNBIT /?CND55
+       MOVE    PRSI,LAFOND
+       PRINTI  ", taking"
+       CALL    TPRINT-PRSI
+?CND55:        PRINTR  ". ""Let that be a warning to you, my love."""
+?CCL54:        CALL    JIGS-UP,STR?336
+       RSTACK  
+?CCL47:        EQUAL?  PRSA,V?TOUCH \?CCL61
+       FSET?   LAFOND,DEADBIT /?CCL61
+       PRINTR  "He smiles."
+?CCL61:        EQUAL?  PRSA,V?GIVE \?CCL65
+       EQUAL?  PRSO,GREEN-GLASS,BLUE-GLASS \?CCL65
+       IN?     BLUE-GLASS,LAFOND /?CTR69
+       IN?     GREEN-GLASS,LAFOND \?CCL70
+?CTR69:        PRINTR  """I already have a glass, thank you."""
+?CCL70:        MOVE    PRSO,LAFOND
+       PRINTI  "He takes"
+       CALL    TRPRINT,PRSO
+       RSTACK  
+?CCL65:        EQUAL?  PRSA,V?KISS \?CCL74
+       EQUAL?  HERE,LAFS-ROOM \?CCL77
+       GRTR?   LAFOND-CTR,HORNY \?CCL80
+       PRINTR  "Queasy, you turn up your face to be kissed. His lips are cold, dry."
+?CCL80:        PRINTR  "He laughs. ""Not yet, petite."""
+?CCL77:        PRINTI  "You shudder at the thought"
+       PRINT   PCR
+       RTRUE   
+?CCL74:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       CALL    RUNNING?,I-LSED
+       ZERO?   STACK /?CCL85
+       GRTR?   LAFOND-CTR,11 \?CCL85
+       PRINTI  "You turn away in modesty after a brief glimpse of pasty pink flesh"
+       PRINT   PCR
+       RTRUE   
+?CCL85:        FSET?   LAFOND,MUNGBIT \?CCL89
+       PRINTD  LAFOND
+       PRINT   LAF-MUNGED
+       CRLF    
+       RTRUE   
+?CCL89:        ZERO?   ENDGAME \?CTR90
+       CALL    RUNNING?,I-LSED
+       ZERO?   STACK /?CCL91
+       GRTR?   LAFOND-CTR,4 \?CCL91
+?CTR90:        PRINTI  "Lafond is dressed in a rich brocade robe"
+       PRINT   PCR
+       RTRUE   
+?CCL91:        PRINTI  "Wigged in dark brown curls, dressed in velvets and brocade, he is warmly attractive. Until you meet his eyes, stone gray and cold"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  RING-F
+       CALL    NOUN-USED,W?LATIN,LRING
+       ZERO?   STACK \?CTR2
+       CALL    NOUN-USED,W?LATIN,HRING
+       ZERO?   STACK \?CTR2
+       EQUAL?  PRSA,V?READ \?CCL3
+?CTR2: CALL    REPERTOIRE,STR?337
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?EXAMINE \?CCL8
+       EQUAL?  PRSO,LRING \?CCL11
+       PRINTI  "It's an ancient gold band, with"
+       JUMP    ?CND9
+?CCL11:        PRINTI  "Made of copper,"
+       CALL    TPRINT,HRING
+       PRINTI  " has"
+?CND9: PRINTI  " a curious design of gargoyles, curled tongues extended, on its flat face, with ""Sal Sapit Omnia"" engraved at the bottom"
+       PRINT   PCR
+       RTRUE   
+?CCL8: EQUAL?  PRSA,V?TAKE \FALSE
+       EQUAL?  PRSO,LRING \?CCL16
+       IN?     LRING,LAFOND \?CCL16
+       FSET?   LAFOND,MUNGBIT \?CCL21
+       PRINTD  LAFOND
+       PRINTI  "'s fingers are curled tight in a fist. You cannot get it"
+       PRINT   PCR
+       RTRUE   
+?CCL21:        PRINTR  """It is an impressive crest, no? I've thought of making it my own."""
+?CCL16:        FSET?   HERO,DEADBIT \?CCL24
+       CALL    NO-TIME-FOR,STR?338
+       RSTACK  
+?CCL24:        PRINTD  HERO
+       PRINTI  " curls his fist around it. ""This is "
+       IN?     HRING,HERO \?CND25
+       PRINTI  "a copy of "
+?CND25:        PRINTR  "the family ring lost with my brother."""
+
+
+       .FUNCT  GEN-RING
+       RETURN  HRING
+
+
+       .FUNCT  COM-CHECK,PER
+       EQUAL?  PRSA,V?HELP \?CCL3
+       EQUAL?  PER,LAFOND \?CCL6
+       PRINTR  "He snickers, ""So I shall, petite."""
+?CCL6: EQUAL?  PER,CRULLEY \?CCL8
+       PRINTR  """An' what'll I get fer it?"" he says, eying your body."
+?CCL8: PRINTR  """I'm doing all I can."""
+?CCL3: EQUAL?  PRSA,V?KISS \?CCL10
+       EQUAL?  PRSO,ME \?CCL10
+       SET     'WINNER,PROTAGONIST
+       CALL    PERFORM,V?KISS,PER
+       SET     'WINNER,PER
+       RTRUE   
+?CCL10:        EQUAL?  PRSA,V?WALK \?CCL14
+       PRINTR  """After you!"""
+?CCL14:        EQUAL?  PRSA,V?FOLLOW \?CCL16
+       EQUAL?  PRSO,ME \?CCL16
+       PRINTR  """Anywhere!"""
+?CCL16:        EQUAL?  PRSA,V?HELLO \?CCL20
+       PRINTR  """Hello!"""
+?CCL20:        EQUAL?  PRSA,V?WHAT \?CCL22
+       CALL    PERFORM,V?TELL-ABOUT,ME,PRSO
+       RTRUE   
+?CCL22:        EQUAL?  PRSA,V?GIVE \?CCL24
+       EQUAL?  PRSI,ME \?CCL24
+       SET     'WINNER,PROTAGONIST
+       CALL    PERFORM,V?ASK-FOR,PER,PRSO
+       SET     'WINNER,PER
+       RTRUE   
+?CCL24:        EQUAL?  PRSA,V?SGIVE \?CCL28
+       RETURN  8
+?CCL28:        EQUAL?  PRSA,V?NO,V?YES \?CCL32
+       SET     'WINNER,PROTAGONIST
+       CALL    PERFORM-PRSA
+       SET     'WINNER,PER
+       RTRUE   
+?CCL32:        CALL    FAILS-TO-NOTICE
+       EQUAL?  PRSA,V?DRINK \?CND33
+       SET     'REACTION,REACTION-NEGATIVE
+?CND33:        CALL    STOP
+       RTRUE   
+
+
+       .FUNCT  I-LDANCE
+       EQUAL?  HERE,BALLROOM /?CCL3
+       CALL    DEQUEUE,I-LDANCE
+       RSTACK  
+?CCL3: EQUAL?  LAFOND-CTR,1 \?CCL6
+       MOVE    LAFOND,HERE
+       CALL    QUEUE,I-LDANCE,-1
+       SET     'AWAITING-REPLY,11
+       CALL    QUEUE,I-REPLY,2
+       SET     'QUESTIONER,LAFOND
+       SET     'DANCED-WITH,LAFOND
+       PRINT   INDENT
+       PRINTI  "A fashionably bewigged man stalks up to you and bows deeply. ""Will you dance?"" he asks, with a light French accent. ""Not that you have much choice. If you turn me down,"
+       CALL    TPRINT,DAD
+       PRINTI  " dies."""
+       CRLF    
+       JUMP    ?CND4
+?CCL6: EQUAL?  LAFOND-CTR,2 \?CCL8
+       EQUAL?  REACTION,REACTION-POSITIVE \?CCL11
+       SET     'PARTNER,LAFOND
+       INC     'LAFOND-CTR
+       PRINT   INDENT
+       PRINTI  """I am, of course, Lafond."" "
+       PRINT   LAUGHS
+       JUMP    ?CND4
+?CCL11:        SET     'QUESTIONER,LAFOND
+       SET     'AWAITING-REPLY,11
+       CALL    QUEUE,I-REPLY,2
+       PRINT   INDENT
+       PRINTI  "The man's smile hardens. ""You have"
+       CALL    TPRINT,DAD
+       PRINTI  "'s eyes. I am Lafond --  I have recently become intimate with that gentleman."" He slightly stresses the word ""intimate.""
+   ""Now, tell me 'yes.' And remember, I am a man of my word."""
+       CRLF    
+       JUMP    ?CND4
+?CCL8: EQUAL?  LAFOND-CTR,3 \?CCL13
+       EQUAL?  REACTION,REACTION-NEGATIVE,REACTION-NEUTRAL \?CCL16
+       CALL    DEQUEUE,I-LDANCE
+       CALL    QUEUE,I-CKILLS-DAD,2
+       PRINT   INDENT
+       PRINTI  """A mistake, ma petite."" Lafond gestures to a shadowy figure, who disappears into the east wing. ""Say adieu to your dear Papa."""
+       CRLF    
+       JUMP    ?CND4
+?CCL16:        SET     'PARTNER,LAFOND
+       PRINT   LAUGHS
+       JUMP    ?CND4
+?CCL13:        EQUAL?  LAFOND-CTR,4 \?CCL18
+       CALL    QUEUE,I-LDANCE,-1
+       PRINT   INDENT
+       PRINTI  """So you know I am not your father's friend,"" Lafond says, offering a hand for the promenade. ""Unfortunately, you are in my power, "
+       ZERO?   HERO-ARRESTED /?CCL21
+       PRINTI  "the Falcon is with my dragoons"
+       JUMP    ?CND19
+?CCL21:        PRINTI  "he is in my dungeon"
+?CND19:        PRINTI  " and I am still King of these waters."" A gold ring flashes on his hand. It seems vaguely familiar"
+       PRINT   PCR
+       JUMP    ?CND4
+?CCL18:        EQUAL?  LAFOND-CTR,5 \FALSE
+       FSET?   DAD,TOUCHBIT \?CND24
+       ZERO?   HERO-ARRESTED \?CND26
+       CALL    QUEUE,I-HARRESTED,3
+?CND26:        CALL    QUEUE,I-SUMMONS,5
+?CND24:        INC     'SCORE
+       CALL    DEQUEUE,I-LDANCE
+       REMOVE  LAFOND
+       SET     'PARTNER,FALSE-VALUE
+       PRINT   INDENT
+       PRINTD  LAFOND
+       PRINTI  "'s eyes rake your body. ""When I am ready,"
+       CALL    TPRINT,BUTLER
+       PRINTI  " will summon you to sup with me in my room"
+       FSET?   DAD,TOUCHBIT /?CND28
+       PRINTI  "; it may be some time"
+?CND28:        PRINTI  ". We will find much in common before dawn, I am sure. Then I may free your "
+       ZERO?   HERO-ARRESTED /?CCL32
+       PRINTI  "lover"
+       JUMP    ?CND30
+?CCL32:        PRINTI  "father"
+?CND30:        PRINTI  "."""
+       CALL    TPRINT,LAFOND
+       PRINTI  " bows as the dance ends, and kisses "
+       PRINTD  HANDS
+       PRINTI  ". "
+       FSET?   DAD,TOUCHBIT /?CND33
+       PRINTI  "He cocks his head, curious, ""You have far less spirit than"
+       CALL    TPRINT,DAD
+       PRINTI  " credited you. He swore you would have him freed in no time at all. A pity, I prefer doyennes with mettle."" "
+?CND33:        PRINTI  "He moves to speak with"
+       CALL    TPRINT,BUTLER
+       PRINTI  ", then "
+       CALL    QUEUED?,I-SUMMONS
+       ZERO?   STACK /?CCL37
+       PRINTI  "heads upstairs."
+       JUMP    ?CND35
+?CCL37:        PRINTI  "drifts into the crowd."
+?CND35:        CRLF    
+?CND4: INC     'LAFOND-CTR
+       RETURN  LAFOND-CTR
+
+
+       .FUNCT  I-LSED
+       SET     'AWAITING-REPLY,12
+       CALL    QUEUE,I-REPLY,1
+       PRINT   INDENT
+       EQUAL?  LAFOND-CTR,1 \?CCL3
+       MOVE    LAFOND,HERE
+       MOVE    BLUE-GLASS,PROTAGONIST
+       PUTP    BLUE-GLASS,P?CONTENTS,WINED
+       MOVE    GREEN-GLASS,LAFOND
+       MOVE    FLAGON,TABLE
+       FCLEAR  LDOOR,OPENBIT
+       CALL    QUEUE,I-WONT-DRINK,1
+       PRINTI  """Have some wine."" Lafond pours wine into two glasses, giving a blue one to you. ""Drink this down. We have a long night ahead of us."" He drains his own"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL3: EQUAL?  LAFOND-CTR,2 \?CCL5
+       MOVE    GREEN-GLASS,TABLE
+       MOVE    BUTLER,UPPER-HALL-E
+       MOVE    HERO,MANACLES
+       FSET    HERO,DEADBIT
+       FSET    HERO,NDESCBIT
+       FSET    TRAP,OPENBIT
+       FCLEAR  PORTRAIT,OPENBIT
+       FCLEAR  KNOB,EVERYBIT
+       FCLEAR  POWER,EVERYBIT
+       MOVE    RAPIER,DUNGEON
+       FCLEAR  RAPIER,NDESCBIT
+       FCLEAR  MANACLES,OPENBIT
+       FSET    MANACLES,LOCKEDBIT
+       FSET    CRULLEY,NDESCBIT
+       MOVE    CRULLEY,DUNGEON
+       MOVE    WHIP,CRULLEY
+       CALL    QUEUE,I-LSED,-1
+       FCLEAR  FLAGON,TRYTAKEBIT
+       SET     'LAFOND-LOOKING,FALSE-VALUE
+       PRINTI  "Suddenly, the door slams open. It is Jamison, coatless, sword bared, his shirt ripped. ""Thank God I am not too late. Leave, darling, before I skewer this dog to his bedposts,"" he cries. The scar on his cheek gleams coldly.
+   With a yell,"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " and"
+       CALL    TPRINT,BUTLER
+       PRINTI  " jump out of the darkness behind him. Nicholas struggles, but soon lies unconscious on the floor.
+   ""Take him to the dungeon,"" Lafond says, setting down his glass. ""You, butler, stay nearby. I do not wish to be disturbed again.
+   ""Now that we are rid of that intrusion, cherie, I will change into something more comfortable. Pour me more wine."" He crosses to the wardrobe removing his coat and vest, turned slightly away from you"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL5: EQUAL?  LAFOND-CTR,3 \?CCL7
+       PRINTI  """In private, call me Jean, or whatever endearment you choose, once I have approved it."" Lafond is looking into the wardrobe"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL7: EQUAL?  LAFOND-CTR,4 \?CCL9
+       MOVE    TRAY,TABLE
+       CALL    CTPRINT,BUTLER
+       PRINTI  " enters, laying"
+       CALL    APRINT,TRAY
+       PRINTI  " of "
+       PRINTD  CHICKEN
+       PRINTI  " on"
+       CALL    TPRINT,TABLE
+       PRINTI  ". ""The kitchen wench has gone, your grace. I took the liberty of fetching these myself."" He bows and leaves the room.
+   ""Sprinkle some spices on the fowl, ma petite,"" Lafond says, donning a long brocade robe, his back to you. ""They are hot, but delicious."""
+       CRLF    
+       JUMP    ?CND1
+?CCL9: EQUAL?  LAFOND-CTR,5 \?CCL11
+       PRINTI  """Tsk. The cook has gone too far. She shall be 'leaving us' tomorrow."" Lafond adjusts the lace at his neck"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL11:        EQUAL?  LAFOND-CTR,6 \?CCL13
+       SET     'QUESTIONER,LAFOND
+       SET     'LAFOND-LOOKING,TRUE-VALUE
+       PRINTD  LAFOND
+       PRINTI  " strolls to"
+       LOC     GREEN-GLASS
+       EQUAL?  STACK,TABLE \?CCL16
+       CALL    TPRINT,TABLE
+       JUMP    ?CND14
+?CCL16:        PRINTI  " you,"
+?CND14:        PRINTI  " smiling slyly"
+       GETP    BLUE-GLASS,P?CONTENTS
+       EQUAL?  STACK,2,0 /?CCL18
+       GETP    GREEN-GLASS,P?CONTENTS
+       EQUAL?  STACK,2,0 \?CND17
+?CCL18:        PRINTI  ". ""But you haven't finished pouring the wine."" He tops off both glasses"
+       GETP    BLUE-GLASS,P?CONTENTS
+       EQUAL?  STACK,2,0 \?CND21
+       CALL    POUR-WINE,BLUE-GLASS,TRUE-VALUE
+?CND21:        GETP    GREEN-GLASS,P?CONTENTS
+       EQUAL?  STACK,2,0 \?CND17
+       CALL    POUR-WINE,GREEN-GLASS,TRUE-VALUE
+?CND17:        ZERO?   USED-LAUD /?CCL27
+       PRINTI  ". ""Which glass was mine? I seem to have forgotten."" He points at"
+       CALL    TPRINT,GREEN-GLASS
+       PRINTI  " and smiles in a way that does not grant you confidence. ""Is this it?"""
+       CRLF    
+       JUMP    ?CND1
+?CCL27:        INC     'LAFOND-CTR
+       PRINTI  ".
+   Lafond takes"
+       CALL    TPRINT,GREEN-GLASS
+       PRINTI  " and salutes you, gulping down the contents"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL13:        EQUAL?  LAFOND-CTR,7 \?CCL29
+       SET     'QUESTIONER,LAFOND
+       PRINTI  """Ah yes, of course."" Lafond obligingly takes"
+       ZERO?   USED-LAUD /?CND30
+       EQUAL?  REACTION,REACTION-POSITIVE \?CCL34
+       CALL    SWITCH-GLASSES,GREEN-GLASS
+       JUMP    ?CND30
+?CCL34:        EQUAL?  REACTION,REACTION-NEGATIVE \?CCL36
+       CALL    SWITCH-GLASSES,BLUE-GLASS
+       JUMP    ?CND30
+?CCL36:        GETP    BLUE-GLASS,P?CONTENTS
+       GRTR?   STACK,WINED \?CCL39
+       GETP    GREEN-GLASS,P?CONTENTS
+       EQUAL?  STACK,WINED \?CCL39
+       CALL    SWITCH-GLASSES,BLUE-GLASS
+       JUMP    ?CND37
+?CCL39:        CALL    SWITCH-GLASSES,GREEN-GLASS
+?CND37:        PRINT   AFTER-HESITATING
+?CND30:        PRINT   PCR
+       PRINT   INDENT
+       CALL    DEQUEUE,I-LSED
+       CALL    QUEUE,I-WONT-DRINK,1
+       PRINTI  "He inhales deeply of the bouquet of his wine, then turns to you. ""You must think me very naive to fall for such a trick. I saw you pour something into one of these glasses -- although "
+       ZERO?   SPICED-WINE /?CCL44
+       PRINTI  "you have tried to cover the scent with"
+       CALL    TPRINT,SPICES
+       JUMP    ?CND42
+?CCL44:        PRINTI  "I cannot smell it"
+?CND42:        PRINTI  "."" He switches goblets, setting"
+       CALL    TPRINT,YOUR-GLASS
+       PRINTI  " into your nerveless grasp and taking up the other, smiling evilly. ""Now you will drink from the cup intended for me."""
+       CRLF    
+       JUMP    ?CND1
+?CCL29:        EQUAL?  LAFOND-CTR,8 \?CCL46
+       CALL    QUEUE,I-LSED,-1
+       PRINTD  LAFOND
+       PRINTI  " draws near, whispering indecencies. He caresses your lily white neck, his fingers ice-cold despite the tropic heat"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL46:        EQUAL?  LAFOND-CTR,9 \?CCL48
+       CALL    ROB,PROTAGONIST,LAFS-ROOM
+       PRINTD  LAFOND
+       PRINTI  " slides his hand up your neck and into your hair, letting it fall down your back in thick waves and tresses. He lays everything you carry on the floor"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL48:        EQUAL?  LAFOND-CTR,HORNY \?CCL50
+       PRINTI  "One by one Lafond undoes your buttons. He pulls open your "
+       FSET?   SHIRT,WORNBIT \?CCL53
+       PRINTI  "shirt"
+       JUMP    ?CND51
+?CCL53:        FSET?   GOWN,WORNBIT /?CTR54
+       FSET?   DRESS,WORNBIT \?CCL55
+?CTR54:        PRINTI  "bodice"
+       JUMP    ?CND51
+?CCL55:        PRINTI  "chemise"
+?CND51:        CALL    REMOVE-CLOTHES
+       FCLEAR  CHEMISE,WORNBIT
+       FSET    CHEMISE,EVERYBIT
+       FCLEAR  SHOES,WORNBIT
+       CALL    ROB,PROTAGONIST,LAFS-ROOM
+       MOVE    RETICULE,LAFS-ROOM
+       CALL    ROB,LAFOND,LAFS-ROOM
+       PRINTI  ". Your clothes float to the floor"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL50:        EQUAL?  LAFOND-CTR,11 \?CCL59
+       PRINTD  LAFOND
+       PRINTI  " runs his fingers down your naked spine, and compliments your body. He removes his dressing gown"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL59:        EQUAL?  LAFOND-CTR,12 \?CCL61
+       PRINTD  LAFOND
+       PRINTI  " kisses your shoulder, your neck, your ear. ""Close your eyes, if you will,"" he taunts, ""and pretend I am your dearest"
+       CALL    TPRINT,HERO
+       PRINTI  ". But I am greater than he will ever be."" He kisses you, his lips thin and cold"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL61:        EQUAL?  LAFOND-CTR,13 \?CCL63
+       IN?     PROTAGONIST,LAFS-BED \?CCL66
+       SET     'LAFOND-CTR,14
+       CALL    I-LSED
+       JUMP    ?CND1
+?CCL66:        MOVE    LAFOND,LAFS-BED
+       MOVE    PROTAGONIST,LAFS-BED
+       PRINTD  LAFOND
+       PRINTI  " leads you over to the bed"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL63:        EQUAL?  LAFOND-CTR,14 \?CND1
+       CALL    FWTD,STR?339
+?CND1: INC     'LAFOND-CTR
+       RETURN  LAFOND-CTR
+
+
+       .FUNCT  SWITCH-GLASSES,GLASS
+       EQUAL?  GLASS,GREEN-GLASS \?CCL3
+       SET     'LAF-GLASS,BLUE-GLASS
+       SET     'YOUR-GLASS,GREEN-GLASS
+       JUMP    ?CND1
+?CCL3: SET     'LAF-GLASS,GREEN-GLASS
+       SET     'YOUR-GLASS,BLUE-GLASS
+?CND1: MOVE    YOUR-GLASS,PROTAGONIST
+       MOVE    LAF-GLASS,LAFOND
+       CALL    TPRINT,GLASS
+       RSTACK  
+
+
+       .FUNCT  I-WONT-DRINK,POISON-SCENE=0
+       GRTR?   LAFOND-CTR,7 \?CND1
+       SET     'POISON-SCENE,TRUE-VALUE
+?CND1: INC     'ANGER-CTR
+       SET     'QUESTIONER,LAFOND
+       SET     'AWAITING-REPLY,12
+       CALL    QUEUE,I-REPLY,2
+       PRINT   INDENT
+       EQUAL?  REACTION,REACTION-NEGATIVE /?CCL5
+       EQUAL?  PRSO,YOUR-GLASS \?PRD9
+       EQUAL?  PRSA,V?DRINK-FROM /?CTR4
+?PRD9: EQUAL?  PRSO,WINE \?CCL5
+       EQUAL?  PRSA,V?DRINK-FROM,V?DRINK,V?EAT /?CTR4
+       EQUAL?  PRSA,V?POUR \?CCL5
+       EQUAL?  PRSI,ME,MOUTH \?CCL5
+?CTR4: PUTP    YOUR-GLASS,P?CONTENTS,0
+       PRINTI  """Good girl,"" he says"
+       ZERO?   POISON-SCENE /?CCL20
+       PRINTI  ". "
+       CALL    CALL-IN-BUTLER
+       RSTACK  
+?CCL20:        PRINTI  ", ""Let's see more cooperation of this sort."""
+       CRLF    
+       CALL    I-LSED
+       RSTACK  
+?CCL5: GRTR?   ANGER-CTR,2 \?CCL23
+       CALL    QUEUE,I-LSED,1
+       ZERO?   POISON-SCENE /?CCL26
+       PRINTI  "Lafond grows suddenly violent. ""I will not have insubordination. You shall cooperate, minx."" He forces"
+       CALL    TPRINT,WINE
+       PRINTI  " down your throat"
+       PRINT   PCR
+       GETP    YOUR-GLASS,P?CONTENTS
+       GRTR?   STACK,WINED \?CND27
+       CALL    QUEUED?,I-SLEEP
+       ZERO?   STACK \?CND27
+       CALL    QUEUE,I-SLEEP,2
+?CND27:        PUTP    YOUR-GLASS,P?CONTENTS,0
+       PRINT   INDENT
+       CALL    CALL-IN-BUTLER
+       RSTACK  
+?CCL26:        MOVE    YOUR-GLASS,TABLE
+       PUTP    YOUR-GLASS,P?CONTENTS,0
+       PRINTI  "He angrily takes"
+       CALL    TPRINT,YOUR-GLASS
+       PRINTI  " and sets it on"
+       CALL    TPRINT,TABLE
+       PRINTI  ". "
+       CALL    CTPRINT,WINE
+       PRINTR  " slops a dark stain across the lace. ""Do not try my patience, little one. I have those you love, remember."""
+?CCL23:        CALL    QUEUE,I-WONT-DRINK,1
+       EQUAL?  ANGER-CTR,1 \?CCL33
+       PRINTD  LAFOND
+       PRINTI  " waits impatiently for you to drink"
+       PRINT   PCR
+       RTRUE   
+?CCL33:        EQUAL?  ANGER-CTR,2 \FALSE
+       PRINTI  """Drink. We must not waste all night."""
+       CALL    TPRINT,LAFOND
+       PRINTI  " pushes the glass toward "
+       PRINTD  MOUTH
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  CALL-IN-BUTLER
+       GETP    LAF-GLASS,P?CONTENTS
+       GRTR?   STACK,WINED \?CND1
+       SET     'DRUGGEE,BUTLER
+       CALL    QUEUE,I-WATCH-SLEEP,1
+?CND1: PUTP    LAF-GLASS,P?CONTENTS,0
+       SET     'LAUD-LEFT,0
+       CALL    QUEUE,I-LSED,1
+       CALL    META-LOC,BOTTLE
+       EQUAL?  STACK,HERE \?CND3
+       REMOVE  BOTTLE
+       PRINTI  "Lafond takes"
+       CALL    TPRINT,BOTTLE
+       PRINTI  " and drops it out the window. ""You shall not need this. You may suffer no headaches in my employ."""
+       CRLF    
+       PRINT   INDENT
+?CND3: PRINTI  "He lifts his glass to drink, but stops. ""Your father, for all his idiotic meddling in other people's business, is not a fool. I doubt you are, either."" He calls in"
+       CALL    TPRINT,BUTLER
+       PRINTI  ", ordering him to empty"
+       CALL    TPRINT,LAF-GLASS
+       PRINTI  ". The man reports no odd taste and returns to his post"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-SUMMONS
+       FCLEAR  LDOOR,LOCKEDBIT
+       MOVE    LAFOND,LAFS-ROOM
+       EQUAL?  HERE,LIBRARY \?CCL3
+       IN?     DAD,HERE \?CND4
+       CALL    QUEUE,I-SUMMONS,2
+       RTRUE   
+?CND4: PRINT   INDENT
+       CALL    CTPRINT,BUTLER
+       PRINTI  " enters the room"
+       FSET?   PORTRAIT,OPENBIT \?CCL8
+       PRINTI  ", sees the open "
+       PRINTD  PORTRAIT
+       PRINTI  ", and seizes your arms, pinning them behind your back. "
+       CALL    FWTD,SOMETHING-HITS-YOU
+       RSTACK  
+?CCL8: REMOVE  BUTLER
+       PRINTI  ". ""Excuse me for interrupting, Miss, but the master requests your company in his room."" He "
+       FSET?   KNOB,EVERYBIT /?CCL10
+       FSET?   POWER,EVERYBIT \?CND9
+?CCL10:        FCLEAR  KNOB,EVERYBIT
+       FCLEAR  POWER,EVERYBIT
+       PRINTI  "moves around the room, straightening things, then "
+?CND9: PRINTI  "guides you back to the foyer. ""The governor's "
+       PRINTD  OBJ-QUARTERS
+       PRINTI  " are in the east wing."
+       PRINT   BUTLER-POINTS
+       CRLF    
+       CALL    GOTO,FOYER
+       RSTACK  
+?CCL3: EQUAL?  HERE,BALLROOM,SUPPER-ROOM,ORCHESTRA /?CTR13
+       EQUAL?  HERE,HALL-W,FOYER,HALL-E /?CTR13
+       EQUAL?  HERE,BEDROOM,GALLERY,X-ROOM /?CTR13
+       EQUAL?  HERE,MAIN-ENTRANCE,VERANDA,KITCHEN /?CTR13
+       EQUAL?  HERE,STAIRTOP,UPPER-HALL-W,UPPER-HALL-E \?CCL14
+?CTR13:        FSET?   GOWN,WORNBIT \?CCL22
+       REMOVE  BUTLER
+       PRINT   INDENT
+       CALL    CTPRINT,BUTLER
+       PRINT   BUTLER-SUMMONS
+       EQUAL?  HERE,UPPER-HALL-E \?CCL25
+       PRINTI  "to"
+       CALL    TPRINT,LDOOR
+       PRINTI  ", unlocks it"
+       JUMP    ?CND23
+?CCL25:        EQUAL?  HERE,STAIRTOP,UPPER-HALL-W,X-ROOM /?CTR26
+       EQUAL?  HERE,BEDROOM \?CCL27
+?CTR26:        PRINTI  "to the east"
+       JUMP    ?CND23
+?CCL27:        EQUAL?  HERE,GALLERY \?CCL31
+       PRINTI  "to the north"
+       JUMP    ?CND23
+?CCL31:        PRINTI  "up"
+       CALL    TPRINT,STAIRS
+       PRINTC  115
+?CND23:        PRINTR  ", bows, and leaves."
+?CCL22:        FSET    FOYER,EVERYBIT
+       PRINT   INDENT
+       CALL    CTPRINT,BUTLER
+       PRINTI  ", who looks like he is seeking someone, grabs your collar, ""Who invited beggars? Get back to the village where you belong."""
+       EQUAL?  HERE,MAIN-ENTRANCE /?CCL34
+       PRINTI  " He escorts you out of the house"
+       PRINT   PCR
+       CRLF    
+       CALL    GOTO,MAIN-ENTRANCE
+       RSTACK  
+?CCL34:        CRLF    
+       RTRUE   
+?CCL14:        FSET    FOYER,EVERYBIT
+       RTRUE   
+
+
+       .FUNCT  I-CKILLS-DAD
+       EQUAL?  HERE,BALLROOM,FOYER /?CTR2
+       EQUAL?  HERE,SUPPER-ROOM,ORCHESTRA \FALSE
+?CTR2: PRINT   INDENT
+       PRINTI  "You see"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " come in from the east wing and beckon to Lafond. ""'E's gone"
+       FSET?   DAD,TOUCHBIT \?CCL8
+       CALL    QUEUE,I-LDANCE,2
+       REMOVE  HERO
+       PRINTI  "! The cocky crupper 'as disappeared!"" Lafond looks around angrily, eyes narrowed, ""Then get his compatriot. Take Falcon."""
+       CALL    TPRINT,CRULLEY
+       PRINTI  " runs out the front door, reappearing a moment later with help"
+       PRINT   PCR
+       CALL    I-HARRESTED,TRUE-VALUE
+       JUMP    ?CND1
+?CCL8: CALL    H-JIGS-UP,STR?340,TRUE-VALUE
+?CND1: INC     'CRULLEY-CTR
+       RETURN  CRULLEY-CTR
+
+
+       .FUNCT  I-DUEL
+       CALL    CANT-HEAR-DUEL
+       ZERO?   STACK /?CCL3
+       LESS?   HERO-CTR,16 /?CND1
+?CCL3: LESS?   HERO-CTR,12 \?CCL7
+       PRINT   INDENT
+       EQUAL?  HERE,GALLERY \?CND8
+       PRINTI  "Nicholas and Lafond circle each other intently, the one breathing hard, the other casual, sword tips almost touching. Jamison has lost copious amounts of blood and is no match for Lafond, cool and competent."
+       CRLF    
+?CND8: CALL    PICK-ONE,DUEL-SOUNDS
+       PRINT   STACK
+       CRLF    
+       JUMP    ?CND1
+?CCL7: EQUAL?  HERO-CTR,12 \?CCL11
+       PRINT   INDENT
+       PRINTI  "Someone calls out, ""We've got the Dimsford girl, Governor"" -- lying, of course, since you're obviously free"
+       EQUAL?  HERE,GALLERY \?CND12
+       PRINTI  ". But Nick glances towards the voice, missteps, and slips in his own blood, falling backwards to the floor, his rapier skittering aside"
+?CND12:        PRINT   PCR
+       JUMP    ?CND1
+?CCL11:        EQUAL?  HERO-CTR,13 \?CCL15
+       PRINT   INDENT
+       EQUAL?  HERE,GALLERY \?CCL18
+       PRINTD  LAFOND
+       PRINTI  " leaps to Jamison's side, placing one heeled boot on the prostrate man's throat, the tip of his sword over Nick's heart. He sneers then, one eyebrow tilted, and moves to plunge in the sword. Nicholas cannot move."
+       JUMP    ?CND16
+?CCL18:        SET     'HERO-CTR,15
+       PRINTI  "One of the duellists falls heavily to the floor, his sword skittering away. All is silence for a moment, broken once by a low chuckle. Then a woman screams, someone gasps, and Jean Lafond's wicked laugh blasts your ears, ""Who else cares to taste my blade?"""
+?CND16:        CRLF    
+       JUMP    ?CND1
+?CCL15:        EQUAL?  HERO-CTR,14 \?CCL20
+       EQUAL?  HERE,GALLERY \?CND1
+       PRINT   INDENT
+       PRINTI  "The sword plunges down into Jamison's heart, a red stain flowing up to meet it on his breast. Nicholas draws his last breath, his tortured gaze drawn heavenwards, to your face. He reaches for you, his hand dripping his own blood, and breathes your name...
+   Nicholas's hand falls limply to the swelling pool of wine red blood and silence pounds on your ears"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL20:        EQUAL?  HERO-CTR,15 \?CCL24
+       EQUAL?  HERE,GALLERY \?CCL27
+       PRINT   INDENT
+       PRINTI  "Lafond wipes his sword on your lover's inert body, ordering someone to drag away the corpse. Suddenly there are sounds of fighting all about, and you realize dragoons surround the house"
+       PRINT   PCR
+       JUMP    ?CND1
+?CCL27:        PRINTI  "Time has stopped. Silence reigns."
+       CRLF    
+       JUMP    ?CND1
+?CCL24:        EQUAL?  HERO-CTR,16 \?CND1
+       CALL    CANT-HEAR-DUEL
+       ZERO?   STACK \?CND29
+       PRINT   INDENT
+       PRINTI  """Find the girl and bring her to me,"" Lafond orders."
+       CRLF    
+?CND29:        PRINT   INDENT
+       PRINT   DRAGOONS-SURROUND
+       CALL    FWTD,SOMETHING-HITS-YOU
+?CND1: INC     'HERO-CTR
+       RETURN  HERO-CTR
+
+
+       .FUNCT  CANT-HEAR-DUEL
+       EQUAL?  HERE,UPPER-HALL-E,STAIRTOP,HALL-W /FALSE
+       EQUAL?  HERE,FOYER,LIBRARY,HALL-E /FALSE
+       EQUAL?  HERE,VERANDA,GALLERY /FALSE
+       RTRUE   
+
+
+       .FUNCT  PISTOL-F
+       EQUAL?  PRSA,V?FILL \?CCL3
+       ZERO?   PRSI \?CCL6
+       EQUAL?  P-PRSA-WORD,W?LOAD \?CCL6
+       CALL    HELD?,POWDER
+       ZERO?   STACK /?CCL11
+       CALL    PERFORM,V?FILL,PISTOL,POWDER
+       RTRUE   
+?CCL11:        PRINT   YNH
+       PRINTI  " any "
+       PRINTD  POWDER
+       PRINT   PCR
+       RTRUE   
+?CCL6: EQUAL?  PRSI,POWDER \?CCL13
+       ZERO?   PRIMED /?CCL16
+       PRINT   YOU-HAVE-ALREADY
+       PRINTI  " loaded"
+       CALL    TRPRINT,PISTOL
+       RSTACK  
+?CCL16:        SET     'PRIMED,TRUE-VALUE
+       MOVE    HORN,PROTAGONIST
+       ZERO?   PENULTIM-POINT \?CND17
+       SET     'PENULTIM-POINT,TRUE-VALUE
+       INC     'SCORE
+?CND17:        PRINTI  "You pour a lumpy stream of"
+       CALL    TPRINT,POWDER
+       PRINTI  " mixture into the barrel of"
+       CALL    TPRINT,PISTOL
+       PRINTI  " tamping it as best you can"
+       PRINT   PCR
+       RTRUE   
+?CCL13:        EQUAL?  PRSO,PISTOL \FALSE
+       PRINT   YOU-CANT
+       PRINTI  "put that into"
+       CALL    ARPRINT,PISTOL
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?POUR,V?PUT \?CCL22
+       EQUAL?  PRSI,PISTOL \?CCL22
+       EQUAL?  PRSO,POWDER \?CCL27
+       CALL    PERFORM,V?FILL,PISTOL,PRSO
+       RTRUE   
+?CCL27:        PRINT   HUH
+       RTRUE   
+?CCL22:        EQUAL?  PRSA,V?EXAMINE \?CCL29
+       PRINTI  "One of"
+       CALL    APRINT,PAIR
+       PRINTI  ", the gun is "
+       ZERO?   PRIMED /?CCL32
+       PRINTR  "primed and ready to fire."
+?CCL32:        PRINTR  "not loaded."
+?CCL29:        EQUAL?  PRSA,V?KILL \?CCL34
+       CALL    PERFORM,V?SHOOT,PRSO,PRSI
+       RTRUE   
+?CCL34:        EQUAL?  PRSA,V?SHOOT \?CCL36
+       ZERO?   PRIMED \?CCL39
+       PRINTI  "But"
+       CALL    TPRINT,PISTOL
+       PRINTR  " is not loaded."
+?CCL39:        ZERO?   PRSI /?CTR40
+       EQUAL?  PRSO,AIR \?CCL41
+?CTR40:        INC     'SCORE
+       PRINTI  "You fire"
+       CALL    TPRINT,PISTOL
+       PRINTI  " into the air. Startled by the loud report,"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " jerks his pistol and fires, aiming not at Nicholas, but at you. You hear a distant scream, your own, and watch, as through from afar,"
+       CALL    TPRINT,DAD
+       PRINTI  " wrestle"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " to"
+       CALL    TPRINT,GROUND
+       PRINTI  ". You feel only numbness as loving arms take you up, and Nicholas kisses you into death, his tears damp on your cheek."
+       PRINT   YOU-DIED
+       SET     'FINAL-RANK,2
+       CALL    FINISH
+       RSTACK  
+?CCL41:        EQUAL?  PRSO,BUSHES,PATROL \?CCL45
+       PRINTR  "They are out of range."
+?CCL45:        EQUAL?  PRSO,CRULLEY \?CCL47
+       INC     'SCORE
+       PRINTI  "Trembling, you fire the heavy pistol. You hear its loud report over roaring surf. Crulley staggers, hit, and falls from the cliff. The gun falls from your nerveless hands.
+   Time stops as you and Nicholas gaze at one another, adoring and amazed. Slowly he bows and offers his hand.
+   "
+       PRINT   NUTBROWN
+       PRINTI  "His eyes, twin seas of blue, devour you with a love deep and true-hearted, and you are pulled into his embrace, your mouth on his, lips parted, thirsting, arching into his kiss..."
+       CRLF    
+       CALL    FINALE
+       RSTACK  
+?CCL47:        EQUAL?  PRSO,PISTOL \?CCL49
+       CALL    IMPOSSIBLES
+       RSTACK  
+?CCL49:        FSET?   PRSO,DEADBIT \?CCL51
+       CALL    MAN-IS-DOWN
+       RSTACK  
+?CCL51:        FSET?   PRSO,ACTORBIT \?CCL53
+       PRINTI  "You wouldn't kill"
+       CALL    TPRINT-PRSO
+       PRINTR  "!"
+?CCL53:        IN?     PRSO,HERE /?CCL55
+       CALL    CTPRINT,PISTOL
+       PRINTI  " can't fire that far"
+       PRINT   PCR
+       RTRUE   
+?CCL55:        CALL    WASTES
+       RSTACK  
+?CCL36:        EQUAL?  PRSO,STONE \FALSE
+       EQUAL?  PRSA,V?SSHOOT \FALSE
+       CALL    WASTES
+       RSTACK  
+
+
+       .FUNCT  I-ENDGAME
+       EQUAL?  HERE,LAGOON,BY-SHIP \?CND1
+       GRTR?   LAFOND-CTR,1 \?CND1
+       SET     'SCORE,25
+       PRINT   INDENT
+       PRINTI  "You hear distant shots and screams, and gaze back across the restless waves to the massacre on the beach. The sight blurs with your tears of shame, tears for the father and the lover you left behind."
+       CRLF    
+       CALL    CLEAR-SCREEN,15
+       PRINT   INDENT
+       PRINTI  "The tale you tell Jamison's crew, of rapine and blood, of your heroic attempt to save their captain, and of your own escape after his death in your arms, is not so far from the truth that you cannot appear sincere. Cannily, you take advantage of their temporary grief, select a private guard, and teach the rest the discipline of the whip."
+       SET     'FINAL-RANK,3
+       LESS?   LAFOND-CTR,DEAD \?CND5
+       PRINTI  " You have started on the ruthless road to revenge. You intend to meet Lafond again, and that time, you intend to win."
+?CND5: CRLF    
+       CALL    FINISH
+       RFALSE  
+?CND1: PRINT   INDENT
+       EQUAL?  LAFOND-CTR,1 \?CCL9
+       EQUAL?  HERE,BEACH,SHALLOWS,LAGOON /?CCL12
+       CALL    FWTD,STR?341
+       JUMP    ?CND7
+?CCL12:        CALL    QUEUE,I-ENDGAME,-1
+       MOVE    LAFOND,BEACH
+       FCLEAR  LAFOND,MUNGBIT
+       MOVE    CRULLEY,BEACH
+       FCLEAR  CRULLEY,MUNGBIT
+       PRINTI  "A shot rings out over the roar of the surf. Turning, you see that Lafond stands at the top of the cliff, a pistol in each hand. ""Trying to sneak out the back, cowards? You will die like your brother, Falcon. Snivelling for mercy."" He hands one gun to "
+       PRINTD  CRULLEY
+       PRINTI  ", standing nearby, and levels the other at Jamison"
+       PRINT   PCR
+       JUMP    ?CND7
+?CCL9: EQUAL?  LAFOND-CTR,2 \?CCL14
+       FSET    COOKIE,DEADBIT
+       SET     'QUESTIONER,HERO
+       SET     'AWAITING-REPLY,9
+       CALL    QUEUE,I-REPLY,2
+       PRINTI  "As the gun fires, Cookie throws himself before his captain. He cries out, blood blossoming on his shoulder, and falls face first into the sand. Lucy runs to him.
+   Jamison yells up the cliff, brandishing his sword. ""Fight like a man, Lafond. You have drawn my blood once tonight -- let me draw yours.""
+   Lafond sneers. ""On one condition. If I win, your lady comes to me. You will have no need of her when you are dead.""
+   Nicholas stiffens, glances at the dragoons on the cliff above, and turns slowly to you. He says nothing, his face hard, but his eyes tell you what you want to know. ""Answer, my darling. Yes or no?"""
+       CRLF    
+       JUMP    ?CND7
+?CCL14:        EQUAL?  LAFOND-CTR,3,4 \?CCL16
+       SET     'QUESTIONER,HERO
+       SET     'AWAITING-REPLY,9
+       CALL    QUEUE,I-REPLY,2
+       CALL    AFFIRMATIVE-ANSWER
+       ZERO?   STACK \?CTR18
+       EQUAL?  PRSA,V?YES \?CCL19
+?CTR18:        FSET    RAPIER,NDESCBIT
+       FSET    LAFOND,NDESCBIT
+       FCLEAR  CRULLEY,NDESCBIT
+       MOVE    PISTOL,BEACH
+       SET     'LAFOND-CTR,4
+       PRINTI  "Nicholas looks determined. ""I accept. So long as my people go free if I win. Order your dragoons to obey us, then."" In answer, Lafond jumps off the cliff like a huge brocaded bat to land in front of"
+       CALL    TPRINT,HERO
+       PRINTI  ". ""Die then, fool!""
+   "
+       CALL    CTPRINT,PISTOL
+       PRINTI  ", spinning from Lafond's grip, drops to the sand "
+       EQUAL?  HERE,BEACH \?CCL24
+       PRINTI  "nearby."
+       CRLF    
+       JUMP    ?CND7
+?CCL24:        PRINTI  "of the beach."
+       CRLF    
+       JUMP    ?CND7
+?CCL19:        ZERO?   REACTION \?CCL26
+       EQUAL?  LAFOND-CTR,3 \?CCL26
+       PRINTI  "Lafond calls down to you, ""My pretty doxy, do make up your mind. Yes or no?"""
+       CRLF    
+       JUMP    ?CND7
+?CCL26:        CALL    JIGS-UP,STR?342
+       JUMP    ?CND7
+?CCL16:        EQUAL?  LAFOND-CTR,FIGHTING \?CCL30
+       PRINTD  LAFOND
+       PRINTI  " immediately takes the advantage, forcing Nicholas in a retreat towards the foaming surf. But Nicholas fights hard, jaw set, ignoring his wounds. Lafond finally loses his smile.
+   Behind the duellists, far away atop the cliff, you notice "
+       PRINTD  CRULLEY
+       PRINTI  " madly reloading the pistol"
+       PRINT   PCR
+       JUMP    ?CND7
+?CCL30:        EQUAL?  LAFOND-CTR,6 \?CCL32
+       FCLEAR  LAFOND,NDESCBIT
+       REMOVE  HRING
+       MOVE    LRING,HERO
+       FCLEAR  RAPIER,NDESCBIT
+       FSET    LAFOND,DEADBIT
+       PRINTI  "Suddenly the force of the duel turns, Nicholas advancing against Lafond's retreat. Their blades silently flash in the moonlight. Lafond is pressed back into the shadow of the cliff, sweat beading on his forehead. Abruptly, Jamison leaps forward, metal scrapes, and his rapier licks neatly into Lafond's ribs, like a snake slipping into its burrow. The body of the governor of St. Sinistra convulses, as in amazement, then sags dead on the sword.
+   Nicholas removes"
+       CALL    APRINT,LRING
+       PRINTI  " from the dead man's finger, throwing his own cheap copy into the surf.
+   Far above him,"
+       CALL    TPRINT,CRULLEY
+       PRINTI  " moves down the stairs."
+       CRLF    
+       JUMP    ?CND7
+?CCL32:        EQUAL?  LAFOND-CTR,DEAD \?CCL34
+       PRINTD  CRULLEY
+       PRINTI  " is levelling"
+       CALL    TPRINT,PISTOL
+       PRINTI  ", feet apart, braced by the cliff wall."
+       CRLF    
+       JUMP    ?CND7
+?CCL34:        EQUAL?  LAFOND-CTR,8 \?CCL36
+       PRINTD  CRULLEY
+       PRINTI  " carefully aims"
+       CALL    TPRINT,PISTOL
+       PRINTI  ", a triumphal grin benighting his face. Nicholas turns and walks smiling towards you, oblivious to his danger"
+       PRINT   PCR
+       JUMP    ?CND7
+?CCL36:        EQUAL?  LAFOND-CTR,9 \?CND7
+       CALL    JIGS-UP,STR?343
+?CND7: INC     'LAFOND-CTR
+       RETURN  LAFOND-CTR
+
+
+       .FUNCT  FINALE
+       MOVE    HERO,FOCSLE
+       CALL    CLEAR-SCREEN,15
+       SET     'VERBOSITY,0
+       CALL    GOTO,FOCSLE
+       PRINT   INDENT
+       PRINTI  "As dawn breaks over the eastern seas, you stand with Nicholas on his ship, looking north. ""I have nothing left in England,"" he says. ""There I am but a destitute gentleman, wanted for piracy. Here -- this isle holds too many memories"
+       FSET?   DAD,DEADBIT \?CCL3
+       SET     'FINAL-RANK,1
+       PRINTI  " --"" he pauses, gazing into your tear-filled eyes with compassion. """
+       JUMP    ?CND1
+?CCL3: SET     'FINAL-RANK,4
+       PRINTI  "; your father may have it. "
+?CND1: PRINTI  "Mayhap my brother's wife yet lives. I must try to find her, either way."" He takes you into his arms. ""Come with me, my love? To America -- they tell of endless fertile fields and strange beasts in that wild land. It won't be easy, but we will have each other. Together, shall we carve a kingdom blessed with fair children and freedom?""
+   You wrap your arms about his waist and lean into him, and smile at the rising sun"
+       PRINT   PCR
+       CALL    FINISH
+       RSTACK  
+
+
+       .FUNCT  PATROL-F
+       EQUAL?  PATROL,WINNER \?CCL3
+       PRINTR  "A rough voice yells to leave them alone."
+?CCL3: CALL    TOUCHING?,PATROL
+       ZERO?   STACK /FALSE
+       CALL    CANT-REACH,PATROL
+       RSTACK  
+
+
+       .FUNCT  FAILS-TO-NOTICE
+       EQUAL?  WINNER,LUCY \?CCL3
+       PRINTI  "Sh"
+       JUMP    ?CND1
+?CCL3: PRINTC  72
+?CND1: PRINTI  "e fails to notice you've spoken"
+       PRINT   PCR
+       RTRUE   
+
+       .ENDI
diff --git a/extras.zil b/extras.zil
new file mode 100644 (file)
index 0000000..dad4102
--- /dev/null
@@ -0,0 +1,2303 @@
+"EXTRAS for
+                       PLUNDERED HEARTS
+       (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+
+<OBJECT CRULLEY                       ;"EVERYBIT = 1/2 fight in dungeon."
+       (DESC "Crulley")                    ;"DEADBIT = unconscious"
+       (DESCFCN CRULLEY-F)                        ;"MUNGBIT = down well"
+       (SYNONYM PIRATE CRULLEY HOOK)
+       (ADJECTIVE ANDREW ANDY)
+       (SIZE 10)
+       (FLAGS ACTORBIT NARTICLEBIT OPENBIT CONTBIT TRANSBIT)
+       (GENERIC GEN-PIRATE)
+       (ACTION CRULLEY-F)>
+
+<ROUTINE CRULLEY-F ("OPTIONAL" (OARG <>) "AUX" X)
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <TELL ,INDENT>
+               <COND (<EQUAL? ,HERE ,BEACH>
+                      <TELL D ,CRULLEY " stands">
+                      <COND (<G? ,LAFOND-CTR <- ,DEAD 1>>
+                             <TELL ", pistol ready," ,HALFWAY>)
+                            (T
+                             ;<G? ,LAFOND-CTR 4>
+                             <TELL " with the dragoons.">)>)
+
+               ;"Less than 4, in ENDGAME, Crulley handled in LAFOND-F"
+
+                     (<EQUAL? ,HERE ,CABIN>
+                      <TELL D ,CRULLEY " the pirate">
+                      <COND (<FSET? ,CRULLEY ,DEADBIT>
+                             <TELL " lies unconscious on the floor.">)
+                            (T
+                      <TELL ", hook raised, leering, comes toward you.">)>)>)
+              (<EQUAL? ,CRULLEY ,WINNER>
+               <COND (<FSET? ,CRULLEY ,DEADBIT>
+                      <TELL ,DOESNT-RESPOND>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<NOUN-USED ,W?HOOK ,CRULLEY>
+                             <TELL
+"He snarls at the memory, \"'Twere bit off by a monster crocodile.\"" CR>)
+                            (<PRSI? ,LAFOND>
+                             <TELL
+"\"'E's a hard 'un, who won't take no guff. But 'e pays well">
+                             <COND (<NOT <FSET? ,BEACH ,TOUCHBIT>>
+                                    <TELL " -- er, so I hear">)>
+                             <TELL ".\"" CR>)
+                            (T
+                             <TELL D ,CRULLEY " ignores you" ,PCR>)>
+                      <STOP>)
+                     (<VERB? HELLO>
+                      <TELL "\"Har-har.\"" CR>)
+                     (<AND <VERB? KISS>
+                           <PRSO? ,ME>>
+                      <TELL
+"\"Wi' a wannion! I likes me ladies forward!\"" CR>)
+                     (<SET X <COM-CHECK ,CRULLEY>>
+                      <COND (<==? .X ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <TELL D ,CRULLEY
+" cackles, his breath hot and pungent." CR>
+                      <STOP>)>)
+              (<VERB? KILL CUT>
+               <COND (<FSET? ,CRULLEY ,DEADBIT>
+                      <MAN-IS-DOWN>)
+                     (<OR <NOT ,PRSI>
+                          <PRSI? ,HANDS>>
+                      <COND (<EQUAL? ,P-PRSA-WORD ,W?SLAP>
+                             <TELL
+"Slap! The pirate fingers the red welt left by" T ,HANDS ", and laughs." CR>)
+                            (<AND <IN? ,COFFER ,PROTAGONIST>
+                                  <NOT ,PRSI>>
+                             <PERFORM ,V?KILL ,CRULLEY ,COFFER>
+                             <RTRUE>)
+                            (<AND <IN? ,RAPIER ,PROTAGONIST>
+                                  <NOT ,PRSI>>
+                             <PERFORM ,V?KILL ,CRULLEY ,RAPIER>
+                             <RTRUE>)
+                            (T
+                             <CANT-HURT "dainty fists">)>)
+                     (<PRSI? ,COFFER>
+                      <SETG ATTACK-C <+ ,ATTACK-C 1>>
+                      <SETG CRULLEY-HIT T>
+                      <TELL
+"With all your strength you whack the pirate" ,OVER-HEAD TR ,PRSI>
+                      <MOVE ,PROTAGONIST ,HERE> ;"in case you're in bed"
+                      <DEQUEUE I-CRULLEY>
+                      <I-CRULLEY>)
+                     (<PRSI? ,RAPIER>
+                      <COND (<FSET? ,CRULLEY ,EVERYBIT>
+                             <COND (<FSET? ,CRULLEY ,MUNGBIT>
+                                    <TELL
+,YOU-CANT "very well reach" T ,CRULLEY " when he's down in" TR ,WELL>)
+                                   (T
+                                    <DEQUEUE I-CDUNG>
+                                    <SETG SCORE <+ ,SCORE 1>>
+                                    <SETG CRULLEY-CTR 1>
+                                    <QUEUE I-CCLIMBS-UP 2>
+                                    <FSET ,CRULLEY ,MUNGBIT>
+                                    <FSET ,CRULLEY ,NDESCBIT>
+                                    <MOVE ,CRULLEY ,TRAP>
+                                    <REMOVE ,WHIP>
+                                    <TELL
+"You flick" T ,RAPIER " across his chest, barely scratching him. He cries,
+\"Avast me! Pricked by a woman!\" and trips into" TR ,TRAP
+,INDENT "You peer down the hole to find " D ,CRULLEY " hanging in midair,
+his hook caught in the rocks a few yards down. He curses and starts to
+climb up the sheer slimy walls of" TR ,WELL>)>)
+                            (T
+                             <FSET ,CRULLEY ,EVERYBIT>
+                             <TELL
+D ,CRULLEY " seems more amazed than frightened of your attack, guessing
+correctly that you hardly know the tip from the hilt of" T ,RAPIER
+". He steps sideways in surprise, so he stands at" ,THE-EDGE TR ,TRAP>)>)
+                     (T
+                      <TELL
+"You slap" T ,CRULLEY ,OVER-HEAD T ,PRSI ", to no effect" ,PCR>)>)
+              (<VERB? KISS>
+               <SETG WINNER ,CRULLEY>
+               <PERFORM ,V?KISS ,ME>
+               <SETG WINNER ,PROTAGONIST>
+               <RTRUE>)
+              (<VERB? KICK>
+               <CANT-HURT "slippered toes">)
+              (<VERB? THROW PUT PUT-ON THROW-AT>
+               <COND (<FSET? ,CRULLEY ,MUNGBIT>
+                      <COND (<PRSO? ,RAPIER>
+                             <PERFORM ,V?PUT ,RAPIER ,TRAP>
+                             <RTRUE>)
+                            (<PRSO? ,RETICULE>
+                             <RFALSE>)
+                            (T
+                             <REMOVE ,PRSO>
+                             <TELL
+D ,CRULLEY " curses as" T ,PRSO " sails past him down into" TR ,WELL>)>)
+                     (<PRSO? ,COFFER>
+                      <PERFORM ,V?KILL ,CRULLEY ,PRSO>)
+                     (T
+                      <RFALSE>)>)
+              ;(<AND <VERB? THROW>
+                    <NOT <EQUAL? ,HERE ,DUNGEON>>>
+               <PERFORM ,V?KILL ,CRULLEY ,PRSO>
+               <RTRUE>)
+              (<VERB? SEARCH>
+               <COND (<FSET? ,CRULLEY ,DEADBIT>
+                      <TELL "And dirty your lily hands? Never!" CR>)
+                     (<FSET? ,CRULLEY ,MUNGBIT>
+                      <CANT-REACH ,CRULLEY>)
+                     (T
+                      <TELL
+"You are uncomfortably sure he would love to have you frisk him." CR>)>) 
+              (<AND <VERB? GIVE>
+                    <PRSO? ,BANKNOTE>
+                    <NOT <EQUAL? ,HERE ,BEACH>>>
+               <TELL "He takes it, smiling blackly" ,PCR>)
+              (<VERB? EXAMINE>
+               <COND (<NOUN-USED ,W?HOOK ,CRULLEY>
+                      <TELL "The hook replaces one of his hands." CR>)
+                     (T 
+                      <TELL
+"The pirate's unsavory face is crisscrossed with scars, and those not
+from shaving nicks, to judge by his scruffy beard. A hook
+replaces one of his hands at the end of a torn black sleeve" ,PCR>)>)>>
+
+
+<GLOBAL CRULLEY-CTR 0>
+<GLOBAL CRULLEY-HIT <>>
+<GLOBAL ATTACK-C 0>                ;"ATTACK-C, HEARD-CRULLEY, CRULLEY-BACK" 
+<GLOBAL HEARD-CRULLEY <>>          ;"could, in emergencies, be made into one"
+<GLOBAL CRULLEY-BACK 0>            ;"wild-card global, set <> at intervals"
+
+<ROUTINE I-CRULLEY ()
+        <TELL ,INDENT>
+        <COND (<AND <EQUAL? ,ATTACK-C 0>
+                    <NOT <FSET? ,CRULLEY ,TOUCHBIT>>>
+               <QUEUE I-MEET-HERO 2>
+               <FSET ,CRULLEY ,TOUCHBIT>
+               <MOVE ,CRULLEY ,CABIN>
+               <QUEUE I-CRULLEY -1>
+               <FSET ,DOOR ,MUNGBIT>
+               <TELL
+"Crash! You whirl around to see" T ,DOOR " shatter,
+kicked by a hulking man, his twisted visage blackened with soot and blood. ">)
+              (<EQUAL? ,ATTACK-C 1>
+               ;<QUEUE I-CRULLEY 1>       ;"to fix ZIP20 Warning 15/7"
+               <TELL "The pirate stumbles, dizzy. ">)>
+        <COND (<EQUAL? ,ATTACK-C 2>
+               <FSET ,CRULLEY ,DEADBIT>
+               <TELL ,STUNNED-THE-SAILOR ,PCR>)
+              (T
+               <CRULLEY-SAYS>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+<GLOBAL STUNNED-THE-SAILOR "Stunned, Crulley collapses at your feet,
+his eyes rolling">
+
+<ROUTINE CRULLEY-SAYS ()
+        <TELL "\"" <GET ,MENACES ,CRULLEY-CTR> ",\" ">
+        <COND (<EQUAL? ,ATTACK-C 1>
+               <TELL "slurs">)
+              (T
+               <TELL "sniggers">)>
+        <TELL " the pirate">
+        <COND (<EQUAL? ,CRULLEY-CTR 1>
+               <TELL ". His breath is heavy with rum">)
+              (<PROB 60>
+               <TELL ", advancing toward you">)>
+        <TELL ,PCR>>
+
+<GLOBAL MENACES
+       <TABLE
+        "Me name's Andy Crulley, and ladies learn to love me"
+        "Avast me, but ain't ye a beauty"
+        "They calls me Andy, but I'm really randy">>
+
+;<ROUTINE old-CRULLEY-SAYS ("AUX" STRING)
+        <COND (<EQUAL? ,ATTACK-C 0>
+               <SET STRING "sniggers">)
+              (<EQUAL? ,ATTACK-C 1>
+               <SET STRING "slurs">)
+              ;(T
+               <SET STRING "mumbles">)>
+        <TELL "\"" <GET ,MENACES ,CRULLEY-CTR> ",\" " .STRING " the pirate">
+                  ;<PICK-ONE ,MENACES>
+        <COND (<EQUAL? ,ATTACK-C 1>
+               <TELL ". His breath is heavy with rum">)
+              (<PROB 60>
+               <TELL ", advancing toward you">)>
+        <TELL ,PCR>>
+
+<ROUTINE I-OVERHEAR-CRULLEY ()
+        <COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
+               <SETG HEARD-CRULLEY T>
+               <FSET ,ANCHOR ,MUNGBIT>
+               <FSET ,LEVER ,MUNGBIT>
+               <QUEUE I-SEE-CRULLEY-ESCAPE 20>
+               <QUEUE I-LOOK-SEA 10>
+               <TELL ,INDENT 
+"\"I gotta let" T ,LAFOND " know 'e's comin'.\"" T ,CRULLEY " stands on deck
+above, talking to himself, his voice floating down through" A ,GRATE " in"
+T ,CEILING ". \"First, I do in the mates aboard-ship, with this and t'other
+mischief,\" he grunts, and you hear a snapping noise, like a taut rope being
+cut. \"Now to warn the boss and collect me pay. Off I go, har.\"
+He dives into" TR ,SEA>)>>
+
+;<ROUTINE old-I-OVERHEAR-CRULLEY ()
+        <COND (<NOT <EQUAL? ,HERE ,CREWS-QUARTERS>>
+               <RFALSE>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>
+        <COND (<EQUAL? ,CRULLEY-CTR 1>
+               <SETG HEARD-CRULLEY T>
+               <QUEUE I-OVERHEAR-CRULLEY 1>
+               <FSET ,ANCHOR ,MUNGBIT>
+               <FSET ,LEVER ,MUNGBIT>
+               <QUEUE I-SEE-CRULLEY-ESCAPE 20>
+               <QUEUE I-LOOK-SEA 10>
+               <TELL ,INDENT 
+"\"So now to let" T ,LAFOND " know 'e's comin'.\"" T ,CRULLEY "'s whisper
+floats down through the grate in the ceiling. \"I do in the mates
+aboard-ship, and warn the boss; then we'll see who's doin' the flogging,
+Falcon, on you 'n the old man down in the dungeon.\"" CR>)
+              (<AND <EQUAL? ,CRULLEY-CTR 2>
+                    <EQUAL? ,HERE ,CREWS-QUARTERS>>
+               <TELL ,INDENT
+D ,CRULLEY " seems to be alone, muttering to himself. \"" D ,LAFOND 
+" pays me more for spying than Falcon pays me to get flogged.\"
+You hear a snapping noise, like a taut rope being cut. \"One last mischief
+to keep 'em busy! And off I go, har.\" He splashes quietly into" TR ,SEA>)
+              (T
+               <RFALSE>)>>
+
+<ROUTINE I-SEE-CRULLEY-ESCAPE ()
+        <COND (<AND <SHIP-BOARD ,HERE>
+                    <NOT <INNER-DECK ,HERE>>>
+               <TELL ,INDENT
+"Your eyes are drawn to a flicker of light off the sea. Squinting,
+you see a man swimming to shore, moonlight flashing off his hook.">
+               <COND (<EQUAL? ,HERE ,POOP ,QUARTERDECK ,MAIN-DECK ,FOCSLE>
+                      <TELL
+" A wisp of breeze brings an odor of onions and rum, and the occasional
+gargling chuckle, \"...mischief, har...reefs.\"">)>
+               <CRLF>)
+              (T
+               <QUEUE I-SEE-CRULLEY-ESCAPE 3>)>>
+
+<ROUTINE I-CDUNG ()
+        <COND (<L? ,CRULLEY-CTR 7>
+               <TELL ,INDENT D ,CRULLEY>
+               <COND (<EQUAL? ,CRULLEY-CTR 1>
+                      <TELL " steps leering out of the shadows and">)> 
+               <TELL
+" cracks" T ,WHIP " near you, hopping you towards the open " D ,TRAP ". \"">
+               <COND (<AND ,CRULLEY-HIT
+                           <EQUAL? ,CRULLEY-CTR 1>>
+                      <QUEUE I-REPLY 2>
+                      <SETG AWAITING-REPLY 17>
+                      <TELL "Come to hit me agin, are ye?">)
+                     (T
+                      <SETG AWAITING-REPLY 2>
+                      <QUEUE I-REPLY 2>
+                      <TELL <PICK-ONE ,ABUSES>>)>
+               <TELL "\"" CR>) 
+              (T
+               <TELL ,INDENT
+D ,CRULLEY " snaps" T ,WHIP " around your neck,
+jerking you sideways and down through" T ,TRAP "."> 
+               <JIGS-UP ,FALL-TO-BOTTOM>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+<GLOBAL ABUSES
+       <LTABLE
+        0
+        "Would yer like a taste o' water?"
+        "What, afrighted of a lick o' the whip?"
+        "Leave yer honey be, wench. He'll join ye anon."
+        "Ye're a tasty doxy to let slip, but no 'elp fer it.">>
+
+<ROUTINE I-CCLIMBS-UP ()
+        <QUEUE I-CCLIMBS-UP -1>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>
+        <COND (<EQUAL? ,CRULLEY-CTR 10>
+               <SETG CRULLEY-BACK T>
+               <FCLEAR ,CRULLEY ,NDESCBIT>
+               <DEQUEUE I-CCLIMBS-UP>
+               <COND (<NOT <EQUAL? ,HERE ,DUNGEON>>
+                      <FCLEAR ,CRULLEY ,MUNGBIT>
+                      <MOVE ,CRULLEY ,DUNGEON>
+                      <RFALSE>)
+                     (<NOT <FSET? ,TRAP ,OPENBIT>>
+                      <TELL ,INDENT
+"Roaring with anger," T ,CRULLEY " slaps" T ,TRAP " back on its hinges and">)
+                     (T
+                      <TELL ,INDENT D ,CRULLEY>)>
+               <TELL " leaps out of" T ,WELL ", seizing you.">
+               <JIGS-UP ,FALL-TO-BOTTOM>)
+              (<AND <PROB 50>
+                    <EQUAL? ,HERE ,DUNGEON>>
+               <TELL ,INDENT
+"Sounds of scraping hook against stone and curses echo out of" T ,WELL>
+               <COND (<NOT <FSET? ,TRAP ,OPENBIT>>
+                      <TELL ", muffled by" T ,TRAP>)>
+               <TELL ,PCR>)>>
+
+<OBJECT WHIP
+       (DESC "whip")
+       (SYNONYM WHIP)
+       (FLAGS TRYTAKEBIT)
+       (ACTION WHIP-F)>
+
+<ROUTINE WHIP-F ()
+        <COND (<VERB? TAKE>
+               <TELL
+D ,CRULLEY " snaps" T ,WHIP " near you. \"Get away wit' ye.\"" CR>)>>
+
+<OBJECT DAVIS
+       (IN DEUX-DECK)
+       (DESC "Davis")
+       (LDESC
+"Out of the smoke staggers Davis, tugging a bloodied knife from
+the back of a pirate. Davis's eyes gleam white from a face blackened and
+bloody, his lips dark red as if he has been drinking blood. He turns to
+face you.")
+       (SYNONYM DAVIS)
+       (FLAGS ACTORBIT NARTICLEBIT)
+       (ACTION DAVIS-F)>
+
+<ROUTINE DAVIS-F ()
+        <COND (<VERB? KILL KICK MUNG KISS>
+               <TELL D ,DAVIS " dodges." CR>)
+              (<VERB? EXAMINE>
+               <TELL D ,DAVIS " is ugly with fear." CR>)
+              (<EQUAL? ,DAVIS ,WINNER>
+               <FAILS-TO-NOTICE>)>>
+
+<OBJECT COOKIE                        ;"MUNGBIT has asked you about hero"
+       (IN GALLEY)                   ;"DEADBIT in I-ENDGAME -- dead"
+       (DESC "Cookie")               ;"EVERYBIT = Cookie searching library"
+       (DESCFCN COOKIE-F)
+       (SYNONYM COOKIE QUICK COOK RODNEY)
+       (ADJECTIVE RODNEY)
+       (SIZE 10)
+       (FLAGS NARTICLEBIT ACTORBIT CONTBIT OPENBIT TRANSBIT SEARCHBIT)
+       (ACTION COOKIE-F)>
+
+<GLOBAL COOKIE-FIGHTING-CROC <>>
+
+<ROUTINE COOKIE-F ("OPTIONAL" (OARG <>) "AUX" X) 
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <TELL ,INDENT>
+               <COND (<EQUAL? ,HERE ,GALLEY>
+                      <TELL 
+"An entirely bald man sits here, carving into his peg leg">)
+                     (,COOKIE-FIGHTING-CROC
+                      <TELL
+"The pool is roily with the writhing bodies of" T ,COOKIE " and" T ,CROC>)
+                     (<AND <QUEUED? ,I-ENDGAME>
+                           <EQUAL? ,HERE ,BEACH>>
+                      <COND (<FSET? ,COOKIE ,DEADBIT>
+                             <TELL
+"Lucy cleans the sand from Quick's quiescent face, as Papa ">
+                             <COND (<FSET? ,LAFOND ,DEADBIT>
+                                    <TELL "sneaks up the cliff stairs">)
+                                   (T
+                                    <TELL "stands nearby">
+                                    <COND (<IN? ,GARTER ,DAD>
+                                           <TELL ", holding" T ,GARTER>)>)>)
+                            (T
+                             <TELL
+D, COOKIE ", Lucy and your father are moving towards" T ,SKIFF>)>)
+                     (T
+                      <TELL D ,COOKIE " chews anxiously at a cheroot">)>
+               <TELL ".">)
+              (<EQUAL? ,COOKIE ,WINNER>
+               <COND (<FSET? ,COOKIE ,DEADBIT>
+                      <TELL ,DOESNT-RESPOND>)
+                     (<VERB? READ>
+                      <TELL
+"\"I can't read! I'm a cook, not a gentleman!\"" CR>
+                      <RTRUE>)
+                     (<VERB? HELLO>
+                      <TELL "\"Hullo -- boy!\" He winks at you" ,PCR>)
+                     (<VERB? HELP SAVE-SOMETHING>
+                      <COND (<EQUAL? ,HERE ,GALLEY>
+                             <TELL
+"\"Eh? Don't be panicking. We'll be fine.\"
+He carves a smile into his leg" ,PCR>)
+                            (T
+                             <TELL
+D ,COOKIE " grumbles, \"What d'ye think I'm trying to do!\"" CR>)>)
+                     (<AND <VERB? FIX>
+                           <PRSO? ,DAGGER>>
+                      <TELL
+"\"I never was able to sharpen that dagger.\"" CR>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<PRSI? ,HERO>
+                             <COND (<IN? ,HERO ,MANACLES>
+                                    <TELL "\"I'm tryin' to find him!\"" CR>)
+                                   (T
+                                    <TELL
+"\"The Cap'n? I been with him since the war. Then came Lafond.\"" CR>)>)
+                            (<PRSI? ,COOKIE>
+                             <TELL
+"\"'Rodney Quick's me name, cookin's me game.|
+Lost me leg in sixty-eight, 'tis why I bake.|
+Losin' me hearin' in every fight, but I've got me sight --|
+And come our Good Lord's 1701, I'll lose me life to a ruffian's gun.'|
+-- Old dame told me that. Leastways, I've several years left.\"" CR>)
+                            (<PRSI? ,LAFOND>
+                             <TELL
+"\"He murdered Cap'n's brother and family these
+three year'n past. Cap'n's been searching for a
+time to avenge the dead ones, and now he's found it.\"" CR>)
+                            (<PRSI? ,CRULLEY>
+                             <TELL "\"Don't trust 'im. Never 'ave.\"" CR>)
+                            (T
+                             <TELL
+D ,COOKIE " cocks an ear, \"Eh, what's that?\"" CR>)>
+                      <STOP>)
+                     (<AND <VERB? GIVE>
+                           <PRSO? ME>
+                           <IN? ,RAPIER ,COOKIE>>
+                      <PERFORM ,V?TAKE ,RAPIER>
+                      <RTRUE>)
+                     (<AND <VERB? FOLLOW>
+                           <PRSO? ,ME>>
+                      <TELL "\"Foller you?">
+                      <COND (<NOT <EQUAL? ,HERE ,GALLEY>>
+                             <TELL " Anywheres">)>
+                      <TELL "!\"" CR>)
+                     (<AND <VERB? TAKE>
+                           <PRSO? ,PAIR>
+                           <EQUAL? ,HERE ,X-ROOM>>
+                      <TELL
+"\"No, lass. A lady don't use guns, and I've no need for one.\"" CR>) 
+                     (<SET X <COM-CHECK ,COOKIE>>
+                      <COND (<==? .X ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <FAILS-TO-NOTICE>
+                      <STOP>)>)
+              (<VERB? EXAMINE>
+               <TELL
+D ,COOKIE " is a grizzled old man with a peg-leg." CR>
+               ;<COND (<FIRST? ,COOKIE>
+                      <TELL " ">
+                      <RFALSE>)
+                     (T
+                      <CRLF>)>)
+              ;(<AND <VERB? ASK-FOR>
+                    <PRSO? ,COOKIE>>
+               <COND (<HELD? ,PRSI ,COOKIE>
+                      <MOVE ,PRSI ,PROTAGONIST>
+                      <TELL "\"Take anything ye like.\"" CR>)
+                     (T
+                      <TELL "\"I hain't got none o' that!\"" CR>)>)
+              (<VERB? TELL-ABOUT>
+               <COND (<NOUN-USED ,W?GUNPOW ,SUPPLIES>
+                      <TELL
+"\"Clam chowder? Never make it -- too fancy.\"" CR>)
+                     (<PRSI? ,REEFS>
+                      <TELL
+"\"We dropped the sea anchor -- no need to fear.\"" CR>)
+                     (<PRSI? ,SUPPLIES>
+                      <TELL
+"\"Aye, you must mean the supplies in the hold.
+Yep, that's where we store them.\"" CR>)
+                     (<PRSI? ,HOLD ,FIRE>
+                      <TELL
+"\"Fire for the cold? I think it be too warm...\"" CR>)
+                     (<PRSI? ,FUSE>
+                      <TELL 
+"\"Lose sommat? I be always losing things.
+Think there be thieves aboard.\"" CR>)
+                     (<PRSI? ,HERO>
+                      <COND (,COOKIE-FIGHTING-CROC
+                             <FAILS-TO-NOTICE>)
+                            (<HELD? ,HERO ,DUNGEON> ;<IN? ,HERO ,MANACLES>
+                             <TELL
+"\"Well, show me, lass!\" he grumbles" ,PCR>)
+                            (T
+                             <TELL
+"\"He's a fine man, is Cap'n,\" he smiles" ,PCR>)>)
+                     (T
+                      <RFALSE>)>)  
+              (<VERB? KISS>
+               <TELL "\"Nah, me pretty, ye belong to Cap'n.\"" CR>)
+              (<AND <VERB? GIVE>
+                    <PRSO? ,BANKNOTE>>
+               <TELL
+"\"I hain't no need fer that kind of money,\"
+he waves away your offer" ,PCR>)
+              (<VERB? KILL MUNG CUT>
+               <COND (<FSET? ,COOKIE ,DEADBIT>
+                      <MAN-IS-DOWN>)
+                     (T
+                      <TELL
+"He holds you off, \"'Ere now, there's no call for that!\"" CR>)>)>>
+
+;"Crulley-ctr serves for Cookie in this one instance."
+<ROUTINE I-COOKIE ("OPTIONAL" (FIRST-MOVE <>))
+        <COND (.FIRST-MOVE
+               <SETG COOKIE-LOOKING <>>
+               <SETG QUESTIONER ,COOKIE>
+               <SETG AWAITING-REPLY 10>
+               <QUEUE I-REPLY 2>
+               <QUEUE I-COOKIE <COND (,CLOCK-WAIT 1) (T 2)>>
+               <MOVE ,COOKIE ,HERE>
+               <FSET ,COOKIE ,MUNGBIT>
+               <SETG CRULLEY-CTR 0>
+               <TELL ,INDENT
+D ,COOKIE " rushes up to you, looking worried.
+\"Miss, we must find the Cap'n. Have ye any idea where to look?\"" CR>)
+              (<NOT <IN? ,COOKIE ,HERE>>
+               <DEQUEUE I-COOKIE>)
+              (<OR <EQUAL? ,REACTION ,REACTION-POSITIVE>
+                   <VERB? WALK>>
+               <TELL ,INDENT D ,COOKIE
+" grins broadly, \"I knew we could depend on you, lass. Lead on!\"" CR>)
+              (<EQUAL? ,CRULLEY-CTR 2>     ;"gives you a couple chances"
+               <MOVE ,COOKIE ,LIBRARY>     ;" to say no."
+               <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+                      <TELL ,INDENT
+"\"Hell and damnation, I was afraid of that">)
+                     (T
+                      <TELL ,INDENT
+"He harrumphs. \"So ye do not care fer him after all">)>
+               <TELL
+"!\" " D ,COOKIE " orders the men to search, moving off himself.|">)
+              (T
+               <SETG QUESTIONER ,COOKIE>
+               <SETG AWAITING-REPLY 10>
+               <QUEUE I-REPLY 2>
+               <QUEUE I-COOKIE 1>
+               <TELL ,INDENT D ,COOKIE
+" urges you, \"Think agin. Any idea?\"" CR>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<ROUTINE I-MOVE-GROUP ("AUX" GROUP-HERE NEW-HERE)
+       <SET GROUP-HERE <LOC ,COOKIE>>
+       <COND ;(<EQUAL? .GROUP-HERE ,BALLROOM>
+             <FSET ,VER-DOOR ,OPENBIT>
+             <SET NEW-HERE ,VERANDA>)
+            (<EQUAL? .GROUP-HERE ,VERANDA>
+             <SET NEW-HERE ,LAWN>)
+            (<EQUAL? .GROUP-HERE ,LAWN>
+             <SET NEW-HERE ,BEACH>
+             <DEQUEUE I-MOVE-GROUP>)
+            (T
+             <RFALSE>)>
+       <TELL ,INDENT>
+       <COND (<NOT <EQUAL? ,HERE .GROUP-HERE>>
+             <TELL
+"Nicholas calls your name distantly and is shushed, as t">)
+            (T
+             <TELL "T">)>
+       <TELL "he group straggles on towards the beach">
+       <MOVE ,COOKIE .NEW-HERE>
+       <MOVE ,DAD .NEW-HERE>
+       <MOVE ,LUCY .NEW-HERE>
+       <MOVE ,HERO .NEW-HERE>
+       <TELL ,PCR>>
+
+<OBJECT CREW
+       (IN LOCAL-GLOBALS)
+       (DESC "pirate")
+       (SYNONYM SAILOR PIRATE SEAMAN)
+       (SIZE 10)
+       (FLAGS ACTORBIT PLURALBIT ;NARTICLEBIT NDESCBIT)
+       (ACTION CREW-F)>
+
+<ROUTINE CREW-F ()
+        <COND (<EQUAL? ,CREW ,WINNER>
+               <COND (<VERB? HELLO>
+                      <TELL "He grins at you toothlessly" ,PCR>)
+                     (<AND ,ENDGAME
+                           <VERB? WHERE FIND>
+                           <PRSO? ,COOKIE ,HERO>>
+                      <PERFORM ,V?TELL-ABOUT ,ME ,PRSO>
+                      <RTRUE>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<AND ,ENDGAME
+                                  <PRSI? ,COOKIE ,HERO>>
+                             <COND (<PRSI? ,COOKIE>
+                                    <TELL "\"'E went">)
+                                   (T
+                                    <TELL "\"Cookie be">)>
+                             <TELL " a-lookin' for Cap'n.\"" CR>)
+                            (<PRSI? ,LAFOND>
+                             <TELL "\"'E be an evil man, I do hear.\"" CR>)
+                            (T
+                             <FAILS-TO-NOTICE>)>)
+                     (T
+                      <TELL
+"\"I'm busy. Do it yerself, boy.\" He cuffs you aside." CR>)>
+                      <STOP>)
+              (<VERB? EXAMINE>
+               <TELL D ,HERO "'s crew are a ragged, toothless bunch,
+all sporting jagged scars. Despite their abhorrent appearances, they call
+friendlily to each other" ,PCR>)>>
+
+<OBJECT LUCY
+       (IN KITCHEN)
+       (DESC "Lucy")
+       (DESCFCN LUCY-F)
+       (SYNONYM WOMAN COOK LUCY)
+       (ADJECTIVE BLOND)
+       (SIZE 10)
+       (FLAGS ACTORBIT CONTBIT OPENBIT FEMALEBIT NARTICLEBIT)
+       (ACTION LUCY-F)>
+
+<ROUTINE LUCY-F ("OPTIONAL" (OARG <>))
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <COND (<EQUAL? ,HERE ,KITCHEN>
+                      <TELL ,INDENT>
+                      <COND (<FSET? ,LUCY ,TOUCHBIT>
+                             <TELL D ,LUCY>)
+                            (T
+                             <TELL "A blond woman">)>
+                      <COND (<RUNNING? ,I-LUCY>
+                             <TELL " stands talking to you">)
+                            (T
+                             <TELL
+" huddles alone by the fire, as if cold">)>
+                      <TELL ".">)>)
+              (<EQUAL? ,LUCY ,WINNER>
+               <COND (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<NOUN-USED ,W?LIBRARY ,HOUSE>
+                             <TELL
+"\"I ain't allowed in that wing of" TR ,HOUSE>)
+                            (<PRSI? ,LAFOND>
+                             <TELL
+"\"He's a regular lout who don't like my cooking.\"" CR>)
+                            (T
+                             <FAILS-TO-NOTICE>)
+                            ;(T
+                             <TELL "\"Blusteration! I dunno!\"" CR>)>
+                      <STOP>)
+                     (<VERB? HELLO>
+                      <TELL "She smiles" ,PCR>)
+                     (<AND <VERB? KISS>
+                           <PRSO? ,ME>>
+                      <TELL "\"I hardly know you!\" she gasps." CR>)
+                     (<SET OARG <COM-CHECK ,LUCY>>
+                      <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <FAILS-TO-NOTICE>
+                      <STOP>)>)
+              (<AND <VERB? TELL-ABOUT>
+                    <PRSI? ,DAD>>
+               <COND (<FSET? ,DAD ,TOUCHBIT>
+                      <TELL "\"Yes, he told me.\"" CR>)
+                     (T
+                      <SETG AWAITING-REPLY 2>
+                      <QUEUE I-REPLY 2>
+                      <TELL
+"She yelps, \"Dear Dimsy, how can I save him?\"" CR>)>)
+              (<VERB? GIVE>
+               <COND (<AND <PRSO? ,GARTER>
+                           <NOT <FSET? ,GARTER ,INVISIBLE>>>
+                      <TELL
+ D ,LUCY " frowns. \"No, you silly boy! Give that to Dimsford!\"" CR>)
+                     (<PRSO? ,BANKNOTE>
+                      <TELL D ,LUCY
+" slaps you hard across the face. \"I'm not that sort of girl!\"" CR>)>)
+              (<VERB? LISTEN>
+               <COND (<RUNNING? ,I-LUCY>
+                      <TELL "You are listening to her!" CR>)
+                     (T
+                      <TELL "She talks a lot, but doesn't say much" ,PCR>)>) 
+              (<AND <VERB? ASK-FOR>
+                    <PRSI? ,GARTER>>
+               <PERFORM ,V?TAKE ,GARTER>
+               <RTRUE>)
+              (<VERB? EXAMINE>
+               <TELL
+"Lucy is a very pretty woman, a few years your senior,
+her yellow hair neatly arranged. She wears a cook's apron" ,PCR>)>>
+
+<ROUTINE I-LUCY ()
+        <FCLEAR ,GARTER ,INVISIBLE>
+        <THIS-IS-IT ,GARTER>
+        <TELL ,INDENT 
+"\"I haven't found Lafond's papers, I'm watched too closely.
+Tell Dimsford that I -- I'm scared, and I want him to come get me. Give this
+to him -- he'll recognize it.\" Lucy slides" A ,GARTER " down her leg and
+holds it out to you" ,PCR>>
+
+<ROUTINE I-CATCH-KISS ()
+        <FCLEAR ,FOREST ,EVERYBIT>>
+
+<OBJECT BUTLER               ;"EVERYBIT means the butler is looking for you"
+       (IN FOYER)           ;"MUNGBIT -- you didn't give bribe or invite"
+       (DESC "butler")      ;"DEADBIT -- need I say anything?"
+       (DESCFCN BUTLER-F)   ;"INDOORSBIT -- he's been bribed/invited"
+       (SYNONYM BUTLER)
+       (SIZE 10)
+       (FLAGS ACTORBIT OPENBIT SEARCHBIT)
+       (ACTION BUTLER-F)>
+
+<ROUTINE BUTLER-F ("OPTIONAL" (OARG <>) "AUX" (CONTENTS 0))
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <TELL ,INDENT CTHE ,BUTLER>
+               <COND (<NOT <FSET? ,BUTLER ,DEADBIT>>
+                      <TELL " stands near the entrance to ">
+                      <COND (<EQUAL? ,HERE ,FOYER>
+                             <TELL "the ballroom">)
+                            ;(<EQUAL? ,HERE ,UPPER-HALL-E>
+                             <TELL "Lafond's bedroom">)
+                            (T
+                             <TELL "the hallway">)>)
+                     (T
+                      <TELL " lies on the floor, prone and snoring loudly">)>
+               <TELL ".">) 
+              (<EQUAL? ,BUTLER ,WINNER>
+               <COND (<FSET? ,BUTLER ,DEADBIT>
+                      <TELL ,DOESNT-RESPOND>)
+                     (<VERB? HELLO>
+                      <TELL "He bows" ,PCR>)
+                     (<AND <VERB? TAKE>
+                           <PRSO? ,INVITE ,BANKNOTE
+                                  ,BLUE-GLASS ,GREEN-GLASS>>
+                      <SETG WINNER ,PROTAGONIST>
+                      <PERFORM ,V?GIVE ,PRSO ,BUTLER>
+                      <SETG WINNER ,BUTLER>
+                      <RTRUE>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>
+                           <PRSI? ,LAFOND>>
+                      <COND (<OR <QUEUED? ,I-SUMMONS>
+                                 <NOT <FSET? ,LDOOR ,LOCKEDBIT>>>
+                             <COND (<EQUAL? ,HERE ,LAFS-ROOM>
+                                  <TELL "\"He's gone for water, Miss.\"" CR>)
+                                   (T
+                                    <TELL
+"\"He's awaiting you now, Miss. In his room.\"" CR>
+                                    <MOVE ,LAFOND ,LAFS-ROOM>)>)
+                            (<EQUAL? ,DANCED-WITH ,LAFOND>
+                                           ;<NOT <IN? ,DAD ,CELL-4>>
+                             <TELL
+"\"He has retired to his room, and requests not to be disturbed.\"" CR>)
+                            (T
+                             <TELL
+"\"The governor is in the ballroom, Miss.\"" CR>)>)
+                     ;(<IN? ,INVITE ,BUTLER>
+                      <TELL CTHE ,BUTLER " affects not to hear you." CR>
+                      <STOP>)
+                     (<SET OARG <COM-CHECK ,BUTLER>>
+                      <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <I-BUTLER T>)>)
+              (<VERB? EXAMINE>
+               <TELL CTHE ,BUTLER
+", scarred and burly, looks uncomfortable in his formal blacks,
+as if he'd prefer the rags of a pirate">
+               <COND (<FSET? ,BUTLER ,DEADBIT>
+                      <TELL ". He lies snoring on the floor">)>
+               <TELL ,PCR>)
+              (<FSET? ,BUTLER ,DEADBIT>
+               <COND (<VERB? SEARCH>
+                      <TELL ,NOTHING-NEW>)
+                     (<NOT <VERB? TELL ASK-ABOUT HELLO>>
+                      <TELL ,DOESNT-RESPOND>
+                      <RTRUE>)>)
+              (<VERB? GIVE SHOW>
+               <COND (<PRSO? ,INVITE ,BANKNOTE>
+                      <BRIBE-BUTLER ,PRSO>)
+                     (<PRSO? ,BLUE-GLASS ,GREEN-GLASS>
+                      <TELL "He looks pleased">
+                      <COND (<EQUAL? <GETP ,PRSO ,P?CONTENTS> 0 ,POISONED>
+                             <TELL
+", then disappointed. \"There's no wine in that glass, Ma'am.\"" CR>
+                             <RTRUE>)
+                            (<EQUAL? <GETP ,PRSO ,P?CONTENTS> ,W-P>
+                             <SETG DRUGGEE ,BUTLER>
+                             <QUEUE I-WATCH-SLEEP 2>)>
+                      <MOVE ,PRSO ,BUTLER>
+                      <PUTP ,PRSO ,P?CONTENTS 0>
+                      <TELL
+". \"I am rather parched, Ma'am,\" he says, taking and emptying" TR ,PRSO>)
+                     (T
+                      <RFALSE>)>)
+              (<EQUAL? ,P-PRSA-WORD ,W?TIP>
+               <COND (<HELD? ,BANKNOTE>
+                      <BRIBE-BUTLER ,BANKNOTE>)
+                     (T
+                      <TELL "You have nothing to do that with." CR>)>)>>
+
+<GLOBAL BUTLER-CTR 0>
+
+<ROUTINE I-BUTLER ("OPTIONAL" (CALLED-BY-BUTLER-F <>))
+        <SETG BUTLER-CTR <+ ,BUTLER-CTR 1>>
+        <COND (.CALLED-BY-BUTLER-F
+               <QUEUE I-BUTLER 2>)
+              (T
+               <QUEUE I-BUTLER -1>)>
+        <COND (<NOT <EQUAL? ,HERE ,FOYER>>      ;"You can only bother him"
+               <SETG AWAITING-FAKE-ORPHAN <>>   ;"X times. And if you enter,"
+               <DEQUEUE I-BUTLER>             ;"then leave, dequeue, but N+1"
+               <RFALSE>)
+              (<NOT <FSET? ,GOWN ,WORNBIT>>   ;"added so you won't get"
+               <RFALSE>)>                  ;"Your invite? ... kicks you out"
+        <COND (<NOT .CALLED-BY-BUTLER-F>
+               <TELL ,INDENT>
+               <TELL "\"">)>
+        <COND ;(<FSET? ,BUTLER ,MUNGBIT>
+               <TELL ,NO-LOITERING ,PUSHING-YOU-OUT CR>
+               <GOTO ,MAIN-ENTRANCE>)
+              (T
+               <COND (<EQUAL? ,BUTLER-CTR 3 ;5>
+                      <DEQUEUE I-BUTLER>
+                      <FSET ,BUTLER ,MUNGBIT>
+                      <TELL ,YOULL-HAVE-TO
+"hope to be invited to the next party,\" smirks"
+T ,BUTLER ,PUSHING-YOU-OUT CR>
+                      <GOTO ,MAIN-ENTRANCE>)
+                     (T
+                      <TELL
+"Your invitation, Miss?\" says" T ,BUTLER>
+                      <COND (<EQUAL? ,BUTLER-CTR 4>
+                             <TELL " snapping his fingers">)
+                            (T
+                             <TELL " bowing">)>
+                      <TELL ,PCR>)>)>>
+
+<ROUTINE BRIBE-BUTLER (GRAFT)
+        <MOVE .GRAFT ,BUTLER>
+        <COND (<FSET? ,BUTLER ,INDOORSBIT> ;"he's been bribed/invite already"
+               <TELL
+"He takes" T .GRAFT " and bows. \"Thank you, Miss">
+               <COND (<EQUAL? .GRAFT ,INVITE>
+                      <TELL " Davis">)>
+               <TELL ".\"" CR>)
+              (T
+               <FSET ,BUTLER ,INDOORSBIT>
+               <FCLEAR ,BUTLER ,MUNGBIT>     ;"Stop 'No Loitering' interrupt"
+               <DEQUEUE I-BUTLER>
+               <SETG SCORE <+ ,SCORE 1>>
+               <TELL CTHE ,BUTLER " takes" T .GRAFT>
+               <COND (<EQUAL? .GRAFT ,BANKNOTE>
+                      <TELL " and secrets it away">)>
+               <TELL ". \"Enjoy the dance, Miss">
+               <COND (<EQUAL? .GRAFT ,INVITE>
+                      <TELL " Davis">)>
+               <TELL ".\"" CR>)>>
+                     
+                      
+
+<OBJECT DANCERS
+       (IN LOCAL-GLOBALS)
+       (DESC "dancer")
+       ;(DESCFCN DANCERS-F)
+       (SYNONYM WOMAN MEN LADY LADIES)
+       (ADJECTIVE DANCER)
+       (SIZE 10)
+       (FLAGS ACTORBIT)
+       (ACTION DANCERS-F)>
+
+<ROUTINE DANCERS-F ()
+        <COND (<EQUAL? ,DANCERS ,WINNER>
+               <COND (,ENDGAME
+                      <TELL CTHE ,DANCERS " looks away, terrified." CR>)
+                     (<VERB? HELLO>
+                      <TELL
+"A dancer smiles nervously and looks away" ,PCR>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<PRSI? ,LAFOND>
+                             <TELL
+"\"He's such a good host! I've never been to such a fine party! I'm so glad
+he is our governor.\" You have never seen anyone so nervous before" ,PCR>)
+                            (T
+                             <TELL
+"Nobody seems inclined to chat with you" ,PCR>)>
+                      <STOP>)>)
+              (<OR <VERB? DANCE>
+                   <AND <VERB? ASK-FOR>
+                        <PRSI? ,BALLROOM>>>
+               <TELL
+"A man regretfully shakes his head.
+\"We haven't been introduced by the governor.\"" CR>)
+              (<AND <VERB? ASK-FOR>
+                    <PRSI? ,BALLROOM>>
+               <PERFORM ,V?DANCE ,DANCERS>
+               <RTRUE>)
+               (<VERB? EXAMINE>
+                <TELL
+CTHE ,DANCERS "s are dressed in powdered wigs and heavy jewels.
+All seem paler than fashion and the tropics would decree,
+and rather nervous" ,PCR>)>>
+
+<GLOBAL DAD-KISS "He kisses your forehead.|">
+
+<OBJECT DAD
+       (IN CELL-4)
+       (DESC "your father")
+       (DESCFCN DAD-F)
+       (SYNONYM DAD PAPA FATHER DIMSFORD)
+       (ADJECTIVE ERNEST RYALL MY)
+       (SIZE 10)
+       (FLAGS ACTORBIT NARTICLEBIT CONTBIT OPENBIT NDESCBIT)
+       (ACTION DAD-F)>
+
+<ROUTINE DAD-F ("OPTIONAL" (OARG <>))
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <TELL ,INDENT "Your father calmly stands nearby.">)
+              (<EQUAL? ,DAD ,WINNER>
+               <COND ;(<AND <VERB? READ>
+                            <PRSO? ,SCRAP-OF-PAPER>>
+                       <PERFORM ,V?TELL-ABOUT ,ME ,SCRAP-OF-PAPER>
+                       <RTRUE>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>>
+                      <COND (<PRSI? ,GARTER>
+                             <TELL "\"That belongs to -- a friend.\"" CR>)
+                            (T
+                             <TELL
+"\"My dear,\" he says rather impatiently, \"There are people waiting for our
+help -- I haven't time to answer your questions just now.\"" CR>)>
+                      <STOP>)
+                     (<VERB? I-LOVE-YOU>
+                      <COND (<PRSI? ,EYES>
+                             <TELL ,DAD-KISS>)
+                            (<PRSI? ,HERO>
+                             <TELL "\"I hoped you would,\" he smiles." CR>)
+                            (<PRSI? ,LAFOND>
+                             <TELL "\"My poor doomed daughter!\"" CR>)
+                            (T
+                             <FAILS-TO-NOTICE>)>)
+                     (<AND <VERB? FOLLOW>
+                           <PRSO? ,ME>>
+                      <TELL "\"Lead on, daughter!\"" CR>)
+                     (<VERB? HELLO>
+                      <TELL ,DAD-KISS>)
+                     (<SET OARG <COM-CHECK ,DAD>>
+                      <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <FAILS-TO-NOTICE>
+                      <STOP>)>)
+              (<AND <VERB? ASK-FOR>
+                    <PRSI? ,GARTER>>
+               <PERFORM ,V?TAKE ,GARTER>
+               <RTRUE>)
+              (<VERB? TELL-ABOUT>
+               <COND (<PRSI? ,LUCY>
+                      <TELL
+"He listens intently, and laughs,
+\"What a delightful girl she is, to be sure!\"" CR>)
+                     (<PRSI? ,HERO>
+                      <COND (<RUNNING? ,I-DAD>
+                             <DEQUEUE I-DAD>
+                             <I-DAD T>)
+                            (T
+                             <SETG AWAITING-REPLY 16>
+                             <QUEUE I-REPLY 2>
+                             <TELL 
+"\"So you like him?\" he asks, smiling" ,PCR>)>)
+                     (T
+                      <RFALSE>)>)
+              (<VERB? GIVE SHOW>
+               <COND (<PRSO? ,BANKNOTE>
+                      <REMOVE ,BANKNOTE>
+                      <TELL
+"\"Do not stain yourself with that dirty money,\" he takes"
+T ,BANKNOTE " and rips it up" ,PCR>)
+                     (<PRSO? ,GARTER>
+                      <TELL "He smiles dreamily at a memory." CR>)
+                     (T
+                      <RFALSE>)>)
+              (<VERB? EXAMINE>
+               <TELL
+"Prison has only added a peppery beard to your father's handsome features.
+His green eyes still twinkle, his wrists still poke bonily out of his shirt
+cuffs" ,PCR>)>>
+
+<ROUTINE I-DAD ("OPTIONAL" (CALLED-BY-DAD-F <>))
+        <COND (<NOT .CALLED-BY-DAD-F>
+               <TELL ,INDENT>)>
+        <TELL "You briefly explain the current situation to your father.|
+   \"I knew Falcon would do his best to rescue me, once you were safe,\" he
+responds. \"Now to rescue Lucy -- Nicholas will have told you about her.
+You get him while I get Lucy, and the four of us will meet down at the beach.
+Just show me the way out of this maze, and we'll get started.\"" CR>>
+
+<OBJECT LAFOND
+       (IN LAFS-ROOM)
+       (DESC "Lafond")
+       (DESCFCN LAFOND-F)
+       (SYNONYM LAFOND VILLAIN GOVERNOR)
+       (ADJECTIVE JEAN)
+       (SIZE 10)
+       (FLAGS ACTORBIT NARTICLEBIT CONTBIT OPENBIT)
+       (ACTION LAFOND-F)>
+
+<GLOBAL LAF-GRABS "Lafond grabs your hair and pulls your head
+sharply back, clinching your arms to your sides. ">
+
+<GLOBAL KILL-L <>>
+
+<CONSTANT LAF-MUNGED ", his wig awry, sprawls across the parquet floor.">
+
+<ROUTINE LAFOND-F ("OPTIONAL" (OARG <>))
+        <COND (.OARG
+               <COND (<EQUAL? .OARG ,M-DESC?>
+                      <RTRUE>)>
+               <TELL ,INDENT D ,LAFOND>
+               <COND (<FSET? ,LAFOND ,MUNGBIT>
+                      <TELL ,LAF-MUNGED>)
+                     (<FSET? ,LAFOND ,DEADBIT>
+                      <TELL " is slumped in the sand, dead.">)
+                     (<EQUAL? ,HERE ,BEACH>
+                      <TELL " stands" ,HALFWAY>)
+
+           ;"Lafond is described in HERO-F during fighting on beach."
+
+                     (T
+                      <TELL " is leering, lip curled.">)>)
+              (<EQUAL? ,LAFOND ,WINNER>
+               <COND (<AND <OR <RUNNING? ,I-DUEL>
+                               <RUNNING? ,I-ENDGAME>>
+                           <NOT <FSET? ,LAFOND ,DEADBIT>>>
+                      <TELL "He ignores you." CR>)
+                     (<AND <VERB? TELL-ABOUT>
+                           <PRSO? ,ME>
+                           <PRSI? ,LRING>>
+                      <SETG WINNER ,PROTAGONIST>
+                      <PERFORM ,V?TAKE ,LRING>
+                      <SETG WINNER ,LAFOND>
+                      <RTRUE>)
+                     (<SET OARG <COM-CHECK ,LAFOND>>
+                      <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+                            (T <RTRUE>)>)
+                     ;(T
+                      <FAILS-TO-NOTICE>
+                      <COND (<VERB? DRINK>
+                             <SETG REACTION ,REACTION-NEGATIVE>)>
+                      <STOP>)>)
+              (<AND <VERB? POUR>
+                    <PRSO? ,WINE>
+                    <NOT <FSET? ,LAFOND ,DEADBIT>>>
+               <FWTD ,SMACK-YOUR-FACE>)
+              (<AND <VERB? DANCE>
+                    <EQUAL? ,HERE ,BALLROOM>>
+               <COND (<EQUAL? ,PARTNER ,LAFOND>
+                      <TELL ,PACE>)
+                     (<RUNNING? ,I-LDANCE>
+                      <TELL "You curtsey and walk to" ,DANCE-FLOOR ,PCR>
+                      <SETG REACTION ,REACTION-POSITIVE>)>)
+              (<VERB? KILL BITE KICK>
+               <COND (<FSET? ,LAFOND ,MUNGBIT>
+                      <MAN-IS-DOWN>)
+                     (<EQUAL? ,HERE ,BALLROOM>
+                      <SETG AWAITING-REPLY 2>
+                      <QUEUE I-REPLY 2>
+                      <TELL
+,LAF-GRABS ,THE-BALLROOM "whirling blur through your tears as he
+leads you around the floor.  \"Ma petite, a ball is not the right
+place to kill me. What would my guests think?!\"" CR>)
+                     (<NOT ,KILL-L>
+                      <SETG KILL-L T>
+                      <TELL ,LAF-GRABS
+"Twisting your wrist, pain stabbing down your arm, he forces his mouth on
+yours, hard, thrusting, cutting your lips. He releases you">
+                      <COND (<AND ,PRSI
+                                  <NOT <PRSI? ,RETICULE>>
+                                  <NOT <FSET? ,PRSI ,WORNBIT>>>
+                             <MOVE ,PRSI ,LAFOND>
+                             <TELL ", taking" T ,PRSI>)>
+                      <TELL
+". \"Let that be a warning to you, my love.\"" CR>)
+                     (T
+                      <JIGS-UP
+"Lafond hits you back. The end is not sweet and not fast.">)>)
+              (<AND <VERB? TOUCH>
+                    <NOT <FSET? ,LAFOND ,DEADBIT>>>
+               <TELL "He smiles." CR>)
+              (<AND <VERB? GIVE>
+                    <PRSO? ,BLUE-GLASS ,GREEN-GLASS>>
+               <COND (<OR <IN? ,BLUE-GLASS ,LAFOND>
+                          <IN? ,GREEN-GLASS ,LAFOND>>
+                      <TELL "\"I already have a glass, thank you.\"" CR>)
+                     (T
+                      <MOVE ,PRSO ,LAFOND>
+                      <TELL "He takes" TR ,PRSO>)>)
+              (<VERB? KISS>
+               <COND (<EQUAL? ,HERE ,LAFS-ROOM>
+                      <COND (<G? ,LAFOND-CTR ,HORNY>
+                             <TELL
+"Queasy, you turn up your face to be kissed. His lips are cold, dry." CR>)
+                            (T 
+                             <TELL "He laughs. \"Not yet, petite.\"" CR>)>)
+                     (T
+                      <TELL "You shudder at the thought" ,PCR>)>)
+              (<VERB? EXAMINE>
+               <COND (<AND <RUNNING? ,I-LSED>
+                           <G? ,LAFOND-CTR 11>>
+                      <TELL
+"You turn away in modesty after a
+brief glimpse of pasty pink flesh" ,PCR>)
+                     (<FSET? ,LAFOND ,MUNGBIT>
+                      <TELL D ,LAFOND ,LAF-MUNGED CR>)
+                     (<OR ,ENDGAME
+                          <AND <RUNNING? ,I-LSED>
+                               <G? ,LAFOND-CTR 4>>>
+                      <TELL
+"Lafond is dressed in a rich brocade robe" ,PCR>)
+                     
+                     (T
+                      <TELL
+"Wigged in dark brown curls, dressed in velvets and brocade,
+he is warmly attractive. Until you meet his eyes,
+stone gray and cold" ,PCR>)>)>>
+
+<OBJECT LRING
+       (IN LAFOND)
+       (DESC "gold ring")
+       (SYNONYM RING LATIN)
+       (ADJECTIVE GOLD)
+       (FLAGS NDESCBIT ;TRYTAKEBIT)
+       (GENERIC GEN-RING)
+       (ACTION RING-F)>
+
+<OBJECT HRING
+       (IN HERO)
+       (DESC "new ring")
+       (SYNONYM RING LATIN)
+       (ADJECTIVE NEW)
+       (FLAGS ;TRYTAKEBIT NDESCBIT)
+       (GENERIC GEN-RING)
+       (ACTION RING-F)>
+
+<ROUTINE RING-F ()
+        <COND (<OR <NOUN-USED ,W?LATIN ,LRING>
+                   <NOUN-USED ,W?LATIN ,HRING>
+                   <VERB? READ>>
+               <REPERTOIRE "The study of Latin">)
+              (<VERB? EXAMINE>
+               <COND (<PRSO? ,LRING>
+                      <TELL "It's an ancient gold band, with">)
+                     (T
+                      <TELL "Made of copper," T ,HRING " has">)>
+               <TELL
+" a curious design of gargoyles, curled tongues extended, on its flat face,
+with \"Sal Sapit Omnia\" engraved at the bottom" ,PCR>)
+              (<VERB? TAKE>
+               <COND (<AND <PRSO? ,LRING>
+                           <IN? ,LRING ,LAFOND>>
+                      <COND (<FSET? ,LAFOND ,MUNGBIT>
+                             <TELL
+D ,LAFOND "'s fingers are curled tight in a fist. You cannot get it" ,PCR>)
+                            (T
+                             <TELL
+"\"It is an impressive crest, no? I've
+thought of making it my own.\"" CR>)>)
+                     (T
+                      <COND (<FSET? ,HERO ,DEADBIT>
+                             <NO-TIME-FOR "steal jewelry">
+                      ;<TELL "This is no time to be stealing jewelry!" CR>)
+                            (T 
+                             <TELL
+D ,HERO " curls his fist around it. \"This is ">
+                             <COND (<IN? ,HRING ,HERO>
+                                    <TELL "a copy of ">)>
+                             <TELL
+"the family ring lost with my brother.\"" CR>)>)>)>>
+
+<ROUTINE GEN-RING ()
+        <RETURN ,HRING>>
+
+<ROUTINE COM-CHECK (PER)
+        <COND (<VERB? HELP>
+               <COND (<EQUAL? .PER ,LAFOND>
+                      <TELL
+"He snickers, \"So I shall, petite.\"" CR>)
+                     (<EQUAL? .PER ,CRULLEY>
+                      <TELL
+"\"An' what'll I get fer it?\" he says, eying your body." CR>)
+                     (T  
+                      <TELL "\"I'm doing all I can.\"" CR>)
+                     ;(<EQUAL? ,WINNER ,PROTAGONIST>
+                      <PROPOSE>)
+                     ;(<OR <FSET? .PER ,MUNGBIT>
+                          <FSET? .PER ,DEADBIT>>
+                      <TELL
+"This isn't a good time to ask him for help." CR>)>)
+              (<AND <VERB? KISS>
+                    <PRSO? ,ME>>
+               <SETG WINNER ,PROTAGONIST>
+               <PERFORM ,V?KISS .PER>
+               <SETG WINNER .PER>
+               <RTRUE>)
+              (<VERB? WALK>
+               <TELL "\"After you!\"" CR>)
+              (<AND <VERB? FOLLOW>
+                    <PRSO? ,ME>>
+               <TELL "\"Anywhere!\"" CR>)
+              (<VERB? HELLO>
+               <TELL "\"Hello!\"" CR>)
+              (<VERB? WHAT>
+               <PERFORM ,V?TELL-ABOUT ,ME ,PRSO>
+               <RTRUE>)
+              (<AND <VERB? GIVE>
+                    <PRSI? ,ME>>
+               <SETG WINNER ,PROTAGONIST>
+               <PERFORM ,V?ASK-FOR .PER ,PRSO>
+               <SETG WINNER .PER>
+               <RTRUE>)
+              (<VERB? SGIVE>
+               <RFATAL>)
+              (<VERB? YES NO>
+               <SETG WINNER ,PROTAGONIST>
+               <PERFORM-PRSA>
+               <SETG WINNER .PER>
+               <RTRUE>)
+              (T
+               <FAILS-TO-NOTICE>
+               <COND (<VERB? DRINK>
+                      <SETG REACTION ,REACTION-NEGATIVE>)>
+               ;<COND (<EQUAL? .PER ,BUTLER>
+                      <I-BUTLER T>)
+                     (T
+                      <FAILS-TO-NOTICE>
+                      <COND (<VERB? DRINK>
+                             <SETG REACTION ,REACTION-NEGATIVE>)>)>
+               <STOP>
+               <RTRUE>)>>
+
+<GLOBAL LAFOND-CTR 0>
+<GLOBAL HERO-ARRESTED <>>    ;"Hero arrested: NO to Lafond, Dad free already"
+
+<ROUTINE I-LDANCE ()
+        <COND (<NOT <EQUAL? ,HERE ,BALLROOM>>
+               <DEQUEUE I-LDANCE>)
+              (T
+               <COND (<EQUAL? ,LAFOND-CTR 1>
+                      <MOVE ,LAFOND ,HERE>
+                      <QUEUE I-LDANCE -1>
+                      <SETG AWAITING-REPLY 11>
+                      <QUEUE I-REPLY 2>
+                      <SETG QUESTIONER ,LAFOND>
+                      <SETG DANCED-WITH ,LAFOND>
+                      <TELL ,INDENT
+"A fashionably bewigged man stalks up to you and bows deeply. \"Will you
+dance?\" he asks, with a light French accent. \"Not that you have much
+choice. If you turn me down," T ,DAD " dies.\"" CR>)
+                     (<EQUAL? ,LAFOND-CTR 2>
+                      <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+                             <SETG PARTNER ,LAFOND>
+;"So to skip the next turn"   <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>  
+                             <TELL
+,INDENT "\"I am, of course, Lafond.\" " ,LAUGHS>)
+                            (T
+                             <SETG QUESTIONER ,LAFOND>
+                             <SETG AWAITING-REPLY 11>
+                             <QUEUE I-REPLY 2>
+                             <TELL ,INDENT
+"The man's smile hardens. \"You have" T ,DAD "'s eyes. I am Lafond -- 
+I have recently become intimate with that gentleman.\" He slightly
+stresses the word \"intimate.\"|
+   \"Now, tell me 'yes.' And remember, I am a man of my word.\"" CR>)>)
+                     (<EQUAL? ,LAFOND-CTR 3>
+                      <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE
+                                               ,REACTION-NEUTRAL>
+                             <DEQUEUE I-LDANCE>
+                             <QUEUE I-CKILLS-DAD 2>
+                             <TELL ,INDENT
+"\"A mistake, ma petite.\" Lafond gestures to a
+shadowy figure, who disappears into the east wing.
+\"Say adieu to your dear Papa.\"" CR>)
+                            (T
+                             <SETG PARTNER ,LAFOND>
+                             <TELL ,LAUGHS>)>)
+                     (<EQUAL? ,LAFOND-CTR 4>
+                      <QUEUE I-LDANCE -1>
+                      <TELL ,INDENT
+"\"So you know I am not your father's friend,\" Lafond says, offering a
+hand for the promenade. \"Unfortunately, you are in my power, ">
+                      <COND (,HERO-ARRESTED
+                             <TELL "the Falcon is with my dragoons">)
+                            (T
+                             <TELL "he is in my dungeon">)>
+                      <TELL 
+" and I am still King of these waters.\" A gold ring flashes
+on his hand. It seems vaguely familiar" ,PCR>)
+                     (<EQUAL? ,LAFOND-CTR 5>
+                      <COND (<FSET? ,DAD ,TOUCHBIT>
+                             <COND (<NOT ,HERO-ARRESTED>
+                                    <QUEUE I-HARRESTED 3>)>
+                             <QUEUE I-SUMMONS 5>)>
+                      <SETG SCORE <+ ,SCORE 1>>
+                      <DEQUEUE I-LDANCE>
+                      <REMOVE ,LAFOND>
+                      <SETG PARTNER <>>
+                      <TELL ,INDENT D ,LAFOND
+"'s eyes rake your body. \"When I am ready," T ,BUTLER " will
+summon you to sup with me in my room">
+                      <COND (<NOT <FSET? ,DAD ,TOUCHBIT>>
+                             <TELL "; it may be some time">)>
+                      <TELL
+". We will find much in common before dawn, I am sure. Then I may free your ">
+                      <COND (,HERO-ARRESTED
+                             <TELL "lover">)
+                            (T
+                             <TELL "father">)>
+                      <TELL
+".\"" T ,LAFOND " bows as the dance ends, and kisses " D ,HANDS ". ">
+                      <COND (<NOT <FSET? ,DAD ,TOUCHBIT>>
+                             <TELL
+"He cocks his head, curious, \"You have far less spirit than" T ,DAD
+" credited you. He swore you would have him freed in no time at all.
+A pity, I prefer doyennes with mettle.\" ">)>
+                      <TELL "He moves to speak with" T ,BUTLER ", then ">
+                      <COND (<QUEUED? ,I-SUMMONS>
+                             <TELL "heads upstairs.">)
+                            (T
+                             <TELL "drifts into the crowd.">)>
+                      <CRLF>)
+                     (T
+                      <RFALSE>)>
+               <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>)>>
+
+<GLOBAL LAFOND-LOOKING T>
+
+<GLOBAL AFTER-HESITATING ", shrugging off your lack of cooperation">
+
+<CONSTANT HORNY 10>   ;"Lafond at 11, no, 10 -- he removes your clothes"
+
+;"LSED = Lafond's Seduction"
+<ROUTINE I-LSED () 
+        <SETG AWAITING-REPLY 12>
+        <QUEUE I-REPLY 1>
+        <TELL ,INDENT>
+        <COND (<EQUAL? ,LAFOND-CTR 1>
+               <MOVE ,LAFOND ,HERE>
+               <MOVE ,BLUE-GLASS ,PROTAGONIST>
+               <PUTP ,BLUE-GLASS ,P?CONTENTS ,WINED>
+               <MOVE ,GREEN-GLASS ,LAFOND>
+               <MOVE ,FLAGON ,TABLE>
+               <FCLEAR ,LDOOR ,OPENBIT>
+               <QUEUE I-WONT-DRINK 1>
+               <TELL "\"Have some wine.\" Lafond pours wine into two
+glasses, giving a blue one to you. \"Drink this down. We have a long
+night ahead of us.\" He drains his own" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 2>
+               <MOVE ,GREEN-GLASS ,TABLE>
+               <MOVE ,BUTLER ,UPPER-HALL-E>
+               <MOVE ,HERO ,MANACLES>
+               <FSET ,HERO ,DEADBIT>
+               <FSET ,HERO ,NDESCBIT>
+               <FSET ,TRAP ,OPENBIT>
+               <FCLEAR ,PORTRAIT ,OPENBIT>
+               <FCLEAR ,KNOB ,EVERYBIT>
+               <FCLEAR ,POWER ,EVERYBIT>
+               <MOVE ,RAPIER ,DUNGEON>
+               <FCLEAR ,RAPIER ,NDESCBIT>
+               <FCLEAR ,MANACLES ,OPENBIT>
+               <FSET ,MANACLES ,LOCKEDBIT>
+               <FSET ,CRULLEY ,NDESCBIT>
+               <MOVE ,CRULLEY ,DUNGEON>
+               <MOVE ,WHIP ,CRULLEY>
+               <QUEUE I-LSED -1>
+               <FCLEAR ,FLAGON ,TRYTAKEBIT>  ;"so you can take it"
+               <SETG LAFOND-LOOKING <>>
+               <TELL
+"Suddenly, the door slams open. It is Jamison, coatless, sword bared,
+his shirt ripped. \"Thank God I am not too late. Leave, darling,
+before I skewer this dog to his bedposts,\" he cries. The scar on his cheek
+gleams coldly.|
+   With a yell," T ,CRULLEY " and" T ,BUTLER " jump out of the darkness
+behind him. Nicholas struggles, but soon lies unconscious on the floor.|
+   \"Take him to the dungeon,\" Lafond says, setting down his glass. \"You,
+butler, stay nearby. I do not wish to be disturbed again.|
+   \"Now that we are rid of that intrusion, cherie, I will change into
+something more comfortable. Pour me more wine.\" He crosses to the wardrobe
+removing his coat and vest, turned slightly away from you" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 3>
+               <TELL
+"\"In private, call me Jean, or whatever endearment you choose, once
+I have approved it.\" Lafond is looking into the wardrobe" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 4>
+               <MOVE ,TRAY ,TABLE>
+               <TELL CTHE ,BUTLER
+" enters, laying" A ,TRAY " of " D ,CHICKEN " on" T ,TABLE ". \"The kitchen
+wench has gone, your grace. I took the liberty of fetching these myself.\"
+He bows and leaves the room.|
+   \"Sprinkle some spices on the fowl, ma petite,\" Lafond says, donning a
+long brocade robe, his back to you. \"They are hot, but delicious.\"" CR>)
+              (<EQUAL? ,LAFOND-CTR 5>
+               <TELL
+"\"Tsk. The cook has gone too far. She shall be 'leaving us'
+tomorrow.\" Lafond adjusts the lace at his neck" ,PCR>)
+              ;(<EQUAL? ,LAFOND-CTR 6>
+               <TELL D ,LAFOND
+" has stopped talking momentarily.
+His attention seems devoted entirely to preening himself" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 6>
+               <SETG QUESTIONER ,LAFOND>
+               <SETG LAFOND-LOOKING T>
+               <TELL D ,LAFOND " strolls to">
+               <COND (<EQUAL? <LOC ,GREEN-GLASS> ,TABLE>
+                      <TELL T ,TABLE>)
+                     (T
+                      <TELL " you,">)>
+               <TELL " smiling slyly">
+               <COND (<OR <EQUAL? <GETP ,BLUE-GLASS ,P?CONTENTS> 2 0>
+                          <EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS> 2 0>>
+                      <TELL
+". \"But you haven't finished pouring the wine.\" He tops off both glasses">
+                      <COND (<EQUAL? <GETP ,BLUE-GLASS ,P?CONTENTS> 2 0>
+                             <POUR-WINE ,BLUE-GLASS T>
+                             ;<PUTP ,BLUE-GLASS ,P?CONTENTS
+                                   <+ <GETP ,BLUE-GLASS ,P?CONTENTS> 1>>)>
+                      <COND (<EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS> 2 0>
+                             <POUR-WINE ,GREEN-GLASS T>
+                             ;<PUTP ,GREEN-GLASS ,P?CONTENTS
+                                   <+ <GETP ,GREEN-GLASS ,P?CONTENTS> 1>>)>)>
+               <COND (,USED-LAUD
+                      <TELL
+". \"Which glass was mine? I seem to have forgotten.\" He points at"
+T ,GREEN-GLASS " and smiles in a way that does not grant you confidence.
+\"Is this it?\"" CR>)
+                     (T
+                      <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>> ;"skip next turn"
+                      <TELL ".|
+   Lafond takes" T ,GREEN-GLASS " and salutes you,
+gulping down the contents" ,PCR>)>)    
+              (<EQUAL? ,LAFOND-CTR 7>
+               <SETG QUESTIONER ,LAFOND>
+               <TELL "\"Ah yes, of course.\" Lafond obligingly takes">
+               <COND (,USED-LAUD
+                      <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+                             <SWITCH-GLASSES ,GREEN-GLASS>)
+                            (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+                             <SWITCH-GLASSES ,BLUE-GLASS>)
+                            (T
+                             <COND (<AND <G? <GETP ,BLUE-GLASS ,P?CONTENTS>
+                                              ,WINED>
+                                      <EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS>
+                                             ,WINED>>
+                                    <SWITCH-GLASSES ,BLUE-GLASS>)
+                                   (T
+                                    <SWITCH-GLASSES ,GREEN-GLASS>)>
+                             <TELL ,AFTER-HESITATING>)>)
+                     ;(T
+                      <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+                             <MOVE ,BLUE-GLASS ,LAFOND>
+                             <TELL T ,GREEN-GLASS>)
+                            (T
+                             <MOVE ,GREEN-GLASS ,LAFOND>
+                             <TELL T ,GREEN-GLASS>
+                             <COND (<EQUAL? ,REACTION ,REACTION-NEUTRAL>
+                                    <TELL ,AFTER-HESITATING>)>)>)>
+               <TELL ,PCR ,INDENT>
+               <DEQUEUE I-LSED>
+               <QUEUE I-WONT-DRINK 1>
+               <TELL
+"He inhales deeply of the bouquet of his wine, then turns to you.
+\"You must think me very naive to fall for such a trick. I saw you
+pour something into one of these glasses -- although ">
+               <COND (,SPICED-WINE
+                      <TELL 
+"you have tried to cover the scent with" T ,SPICES>)
+                     (T
+                      <TELL "I cannot smell it">)>
+               <TELL ".\" He switches goblets, setting" T ,YOUR-GLASS>
+               <TELL
+" into your nerveless grasp and taking up the other, smiling evilly.
+\"Now you will drink from the cup intended for me.\"" CR> 
+               ;<COND (<NOT ,USED-LAUD>
+                      <SET-CONTENTS ,LAFOND 0>
+                      <TELL "He gulps down" TR ,WINE>)
+                     (T
+                      <DEQUEUE I-LSED>
+                      <QUEUE I-WONT-DRINK 1>
+                      <TELL
+"He inhales deeply of the bouquet of his wine, then turns to you.
+\"You must think me very naive to fall for such a trick. I saw you
+pour something -- although I cannot smell it -- into
+one of these glasses.\" He switches goblets, setting">
+                      <COND (<HELD? ,BLUE-GLASS>
+                             <TELL T ,BLUE-GLASS>)
+                            (T
+                             <TELL T ,GREEN-GLASS>)>
+                      <TELL
+" into your nerveless grasp and taking up the other, smiling evilly.
+\"Now you will drink from the cup intended for me.\"" CR>)>)
+              (<EQUAL? ,LAFOND-CTR 8>
+               <QUEUE I-LSED -1>
+               <TELL D ,LAFOND
+" draws near, whispering indecencies. He caresses your lily white
+neck, his fingers ice-cold despite the tropic heat" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 9>
+               <ROB ,PROTAGONIST ,LAFS-ROOM>
+               ;<COND (<IN? ,HAT ,PROTAGONIST>
+                      <MOVE ,HAT ,HERE>
+                      <FCLEAR ,HAT ,WORNBIT>)> 
+               <TELL D ,LAFOND
+" slides his hand up your neck and into your hair, letting it fall down
+your back in thick waves and tresses. He lays everything you carry on the
+floor" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR ,HORNY>
+               <TELL
+"One by one Lafond undoes your buttons. He pulls open your ">
+               <COND (<FSET? ,SHIRT ,WORNBIT>
+                      <TELL "shirt">)
+                     (<OR <FSET? ,GOWN ,WORNBIT>
+                          <FSET? ,DRESS ,WORNBIT>>
+                      <TELL "bodice">)
+                     (T
+                      <TELL "chemise">)>
+               <REMOVE-CLOTHES>
+               <FCLEAR ,CHEMISE ,WORNBIT>
+               <FSET ,CHEMISE ,EVERYBIT>  ;"desc: covered by other clothes"
+               <FCLEAR ,SHOES ,WORNBIT>
+               <ROB ,PROTAGONIST ,LAFS-ROOM>  ;"get rid of clothes, shoes"
+               ;<FCLEAR ,RETICULE ,WORNBIT>  ;"not needed. no wornbit"
+               <MOVE ,RETICULE ,LAFS-ROOM>
+               <ROB ,LAFOND ,LAFS-ROOM>
+               <TELL ". Your clothes float to the floor" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 11>
+               <TELL D ,LAFOND
+" runs his fingers down your naked spine, and
+compliments your body. He removes his dressing gown" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 12>
+               <TELL D ,LAFOND
+" kisses your shoulder, your neck, your ear. \"Close your eyes, if you
+will,\" he taunts, \"and pretend I am your dearest" T ,HERO ". But I am
+greater than he will ever be.\" He kisses you, his lips thin and cold" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 13>
+               <COND (<IN? ,PROTAGONIST ,LAFS-BED>
+                      <SETG LAFOND-CTR 14>
+                      <I-LSED>)
+                     (T
+                      <MOVE ,LAFOND ,LAFS-BED>
+                      <MOVE ,PROTAGONIST ,LAFS-BED>
+                      <TELL D ,LAFOND " leads you over to the bed" ,PCR>)>)
+              (<EQUAL? ,LAFOND-CTR 14>
+               <FWTD
+"Lafond pulls the sheets up to cover you both, pressing his long flaccid body
+against yours. Waves crash against the base of the cliff.">)>
+        <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>>
+
+
+;"moves appropriate glass to appropriate character,
+  then TELLS the other one (lies)."
+
+<ROUTINE SWITCH-GLASSES (GLASS)
+        <COND (<EQUAL? .GLASS ,GREEN-GLASS>
+               <SETG LAF-GLASS ,BLUE-GLASS>
+               <SETG YOUR-GLASS ,GREEN-GLASS>)
+              (T
+               <SETG LAF-GLASS ,GREEN-GLASS>
+               <SETG YOUR-GLASS ,BLUE-GLASS>)>
+        <MOVE ,YOUR-GLASS ,PROTAGONIST>
+        <MOVE ,LAF-GLASS ,LAFOND>
+        <TELL T .GLASS>>
+
+;<ROUTINE ;I-WONT-DRINK ("AUX" (POISON-SCENE <>) OTHER-WINE YOUR-WINE)
+        <COND (<G? ,LAFOND-CTR 7>
+               <SET POISON-SCENE T>)>
+        <COND (<HELD? ,BLUE-GLASS>
+               <SET OTHER-WINE ,CONTENTS-GREEN>
+               <SET YOUR-WINE ,CONTENTS-BLUE>)
+              (<HELD? ,GREEN-GLASS>
+               <SET OTHER-WINE ,CONTENTS-BLUE>
+               <SET YOUR-WINE ,CONTENTS-GREEN>)>
+        <SETG ANGER-CTR <+ ,ANGER-CTR 1>>
+        ;<QUEUE I-LSED 1>
+        <TELL ,INDENT>
+        <SETG QUESTIONER ,LAFOND>
+        <SETG AWAITING-REPLY 12>
+        <QUEUE I-REPLY 2>  
+        <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+               <SET-CONTENTS ,PROTAGONIST 0>
+               <TELL "\"Good girl,\" he says. ">
+               <COND (.POISON-SCENE
+                      <COND (<G? .OTHER-WINE ,WINED>
+                             <SETG DRUGGEE ,BUTLER>
+                             <QUEUE I-WATCH-SLEEP 1>)>
+                      <SET-CONTENTS ,LAFOND 0>
+                      <SET LAUD-LEFT 0>
+                      <REMOVE ,BOTTLE>
+                      <TELL
+"Lafond takes" T ,BOTTLE " and throws it out the window. \"You shall
+need no more of this, my dear. Certainly you will suffer no headaches in
+my employ.\"|
+   He lifts his glass to drink, but stops. \"Your father, for all
+his idiotic meddling in other people's business, is not a fool. I doubt
+you are, either.\" He calls in" T ,BUTLER ", ordering him to empty">
+                      <COND (<EQUAL? .OTHER-WINE ,CONTENTS-BLUE>
+                             <TELL T ,BLUE-GLASS>)
+                            (T
+                             <TELL T ,GREEN-GLASS>)>
+                      <TELL ".
+The man reports no odd taste and dutifully returns to his post" ,PCR>)
+                     (T
+                      <TELL
+"\"Let's see more cooperation of this sort.\"" CR>)>)
+              (T
+               <COND (<G? ,ANGER-CTR 2>
+                      <COND (.POISON-SCENE
+                             <TELL
+"Lafond grows suddenly violent. \"I will not have
+insubordination. You shall cooperate, my pretty miss.\"
+He forces the wine down your throat" ,PCR>
+                             <COND (<AND <G? .YOUR-WINE ,WINED>
+                                         <NOT <QUEUED? ,I-SLEEP>>> 
+                                    <QUEUE I-SLEEP 2>)>
+                             <SET-CONTENTS ,PROTAGONIST 0>)
+                            (T
+                             <MOVE ,BLUE-GLASS ,TABLE>
+                             <SETG CONTENTS-BLUE 0>
+                             <TELL
+"He angrily takes" T ,BLUE-GLASS " and sets it on" T ,TABLE ", slopping the
+wine in a dark red stain across the lace. \"Do not try my patience, little
+one. I have those you love, remember.\"" CR>)>)
+                     (T
+                      <DEQUEUE I-LSED>      ;"To stop what is queued above"
+                      <QUEUE I-WONT-DRINK 1>
+                      <COND (<EQUAL? ,ANGER-CTR 1>
+                             <TELL
+"Lafond taps his foot impatiently, waiting for you to drink" ,PCR>)
+                            (<EQUAL? ,ANGER-CTR 2>
+                             <TELL
+"\"Come, milady, drink. We must not waste all night.\"
+Lafond pushes the glass toward " D ,MOUTH ,PCR>)>)>)>>
+
+<ROUTINE I-WONT-DRINK ("AUX" (POISON-SCENE <>))
+        <COND (<G? ,LAFOND-CTR 7>
+               <SET POISON-SCENE T>)>
+        <SETG ANGER-CTR <+ ,ANGER-CTR 1>>
+        ;<QUEUE I-LSED 1>
+        <SETG QUESTIONER ,LAFOND>
+        <SETG AWAITING-REPLY 12>
+        <QUEUE I-REPLY 2>
+        <TELL ,INDENT>  
+        <COND (<AND <NOT <EQUAL? ,REACTION ,REACTION-NEGATIVE>>
+                    <OR <AND <PRSO? ,YOUR-GLASS>
+                             <VERB? DRINK-FROM>>
+                        <AND <PRSO? ,WINE>
+                             <OR <VERB? EAT DRINK DRINK-FROM>
+                                 <AND <VERB? POUR>
+                                      <PRSI? ,MOUTH ,ME>>>>>>
+               <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+               ;<SET-CONTENTS ,PROTAGONIST 0>
+               <TELL "\"Good girl,\" he says">
+               <COND (.POISON-SCENE
+                      <TELL ". ">
+                      <CALL-IN-BUTLER>)
+                     (T
+                      <TELL
+", \"Let's see more cooperation of this sort.\"" CR>
+                      <I-LSED>)>)
+              (T
+               <COND (<G? ,ANGER-CTR 2>
+                      <QUEUE I-LSED 1>
+                      <COND (.POISON-SCENE
+                             <TELL
+"Lafond grows suddenly violent. \"I will not have
+insubordination. You shall cooperate, minx.\"
+He forces" T ,WINE " down your throat" ,PCR>
+                             <COND (<AND <G? <GETP ,YOUR-GLASS ,P?CONTENTS>
+                                             ,WINED>
+                                         <NOT <QUEUED? ,I-SLEEP>>> 
+                                    <QUEUE I-SLEEP 2>)>
+                             <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+                             <TELL ,INDENT>
+                             <CALL-IN-BUTLER>
+                             ;<SET-CONTENTS ,PROTAGONIST 0>)
+                            (T
+                             <MOVE ,YOUR-GLASS ,TABLE>
+                             <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+                             <TELL
+"He angrily takes" T ,YOUR-GLASS " and sets it on" T ,TABLE ". " CTHE ,WINE
+" slops a dark stain across the lace. \"Do not try my patience, little one.
+I have those you love, remember.\"" CR>)>)
+                     (T
+                      <QUEUE I-WONT-DRINK 1>
+                      <COND (<EQUAL? ,ANGER-CTR 1>
+                             <TELL D ,LAFOND
+" waits impatiently for you to drink" ,PCR>)
+                            (<EQUAL? ,ANGER-CTR 2>
+                             <TELL
+"\"Drink. We must not waste all night.\"" T ,LAFOND
+" pushes the glass toward " D ,MOUTH ,PCR>)>)>)>>
+
+<ROUTINE CALL-IN-BUTLER ()
+        <COND (<G? <GETP ,LAF-GLASS ,P?CONTENTS> ,WINED>
+               <SETG DRUGGEE ,BUTLER>
+               <QUEUE I-WATCH-SLEEP 1>)>
+        <PUTP ,LAF-GLASS ,P?CONTENTS 0>
+        ;<SET-CONTENTS ,LAFOND 0>
+        <SET LAUD-LEFT 0>
+        <QUEUE I-LSED 1>
+        <COND (<EQUAL? <META-LOC ,BOTTLE> ,HERE>
+               <REMOVE ,BOTTLE>
+               <TELL
+"Lafond takes" T ,BOTTLE " and drops it out the window. \"You shall not need
+this. You may suffer no headaches in my employ.\"" CR ,INDENT>)>
+        <TELL
+"He lifts his glass to drink, but stops. \"Your father, for all his
+idiotic meddling in other people's business, is not a fool. I doubt you
+are, either.\" He calls in" T ,BUTLER ", ordering him to empty" T ,LAF-GLASS
+". The man reports no odd taste and returns to his post" ,PCR>>
+
+<GLOBAL ANGER-CTR 0>
+
+;<ROUTINE SET-CONTENTS (WHO WHAT)
+        <COND (<IN? ,BLUE-GLASS .WHO>
+               <PUTP ,BLUE-GLASS ,P?CONTENTS .WHAT>
+               ;<SETG CONTENTS-BLUE .WHAT>)
+              (<IN? ,GREEN-GLASS .WHO>
+               <PUTP ,GREEN-GLASS ,P?CONTENTS .WHAT>
+               ;<SETG CONTENTS-GREEN .WHAT>)
+              (T
+               <RFALSE>)>>
+
+<ROUTINE I-SUMMONS ()
+        <FCLEAR ,LDOOR ,LOCKEDBIT>
+        <MOVE ,LAFOND ,LAFS-ROOM>
+        <COND (<EQUAL? ,HERE ,LIBRARY>
+               <COND (<IN? ,DAD ,HERE>
+                      <QUEUE I-SUMMONS 2>
+                      <RTRUE>)>
+               <TELL ,INDENT CTHE ,BUTLER " enters the room">
+               <COND (<FSET? ,PORTRAIT ,OPENBIT>
+                      <TELL
+", sees the open " D ,PORTRAIT ", and seizes your arms,
+pinning them behind your back. ">
+                      <FWTD ,SOMETHING-HITS-YOU>)
+                     (T
+                      <REMOVE ,BUTLER>
+                      <TELL
+". \"Excuse me for interrupting, Miss, but the master requests your company
+in his room.\" He ">
+                      <COND (<OR <FSET? ,KNOB ,EVERYBIT>
+                                 <FSET? ,POWER ,EVERYBIT>>
+                             <FCLEAR ,KNOB ,EVERYBIT>
+                             <FCLEAR ,POWER ,EVERYBIT>
+                             <TELL
+"moves around the room, straightening things, then ">)>
+                      <TELL
+"guides you back to the foyer. \"The governor's "
+D ,OBJ-QUARTERS " are in the east wing." ,BUTLER-POINTS CR>
+                      <GOTO ,FOYER>)>)
+              ;(<BELOW-GROUND <LOC ,PROTAGONIST>>
+                <FSET ,LIBRARY ,EVERYBIT>)
+              (<OR <EQUAL? ,HERE ,BALLROOM ,SUPPER-ROOM ,ORCHESTRA>
+                   <EQUAL? ,HERE ,HALL-W ,FOYER ,HALL-E>
+                   <EQUAL? ,HERE ,BEDROOM ,GALLERY ,X-ROOM>
+                   <EQUAL? ,HERE ,MAIN-ENTRANCE ,VERANDA ,KITCHEN>
+                   <EQUAL? ,HERE ,STAIRTOP ,UPPER-HALL-W ,UPPER-HALL-E>>
+               <COND (<FSET? ,GOWN ,WORNBIT>
+                      <REMOVE ,BUTLER>
+                      <TELL ,INDENT CTHE ,BUTLER ,BUTLER-SUMMONS>
+                      <COND (<EQUAL? ,HERE ,UPPER-HALL-E>
+                             <TELL "to" T ,LDOOR ", unlocks it">)
+                            (<EQUAL? ,HERE ,STAIRTOP ,UPPER-HALL-W 
+                                     ,X-ROOM ,BEDROOM>
+                             <TELL "to the east">)
+                            (<EQUAL? ,HERE ,GALLERY>
+                             <TELL "to the north">) 
+                            (T
+                             <TELL "up" T ,STAIRS "s">)>
+                      <TELL ", bows, and leaves." CR>)
+                     (T
+                      <FSET ,FOYER ,EVERYBIT>
+                      <TELL ,INDENT CTHE ,BUTLER
+", who looks like he is seeking someone, grabs your collar, \"Who invited
+beggars? Get back to the village where you belong.\"">
+                      <COND (<NOT <EQUAL? ,HERE ,MAIN-ENTRANCE>>
+                             <TELL
+" He escorts you out of the house" ,PCR CR>
+                             <GOTO ,MAIN-ENTRANCE>)
+                            (T
+                             <CRLF>)>)>)
+              (T
+               <FSET ,FOYER ,EVERYBIT>)>>
+
+<ROUTINE I-CKILLS-DAD ()
+        ;<COND (<IN? ,DAD ,CELL-4>
+               <FSET ,DAD ,DEADBIT>
+               <FSET ,IRON-CELL-DOOR ,OPENBIT>
+               <COND (<NOT <FSET? ,LARGE-KEY ,TOUCHBIT>>
+                      <MOVE ,LARGE-KEY ,DUNGEON>
+                      <FSET ,LARGE-KEY ,TOUCHBIT>)>
+               <REMOVE ,DAD>)>
+        <COND (<OR <EQUAL? ,HERE ,BALLROOM ,FOYER>
+                   <EQUAL? ,HERE ,SUPPER-ROOM ,ORCHESTRA>>
+               <TELL ,INDENT
+"You see" T ,CRULLEY " come in from the east wing and beckon to Lafond.
+\"'E's gone">
+               <COND (<FSET? ,DAD ,TOUCHBIT>
+                      <QUEUE I-LDANCE 2>
+                      <REMOVE ,HERO>
+                      ;<TELL " urgently" ,PCR ,INDENT>
+                      <TELL
+"! The cocky crupper 'as disappeared!\" Lafond looks around angrily, eyes
+narrowed, \"Then get his compatriot. Take Falcon.\"" T ,CRULLEY
+" runs out the front door, reappearing a moment later with help" ,PCR>
+                      <I-HARRESTED T>)
+                     (T
+                      <H-JIGS-UP
+". Visiting that Neptune you tol' me about. Gone to sea, poor
+man,\" he laughs, and returns to lurking around the doorway." T>)>)
+              (T
+               <RFALSE>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<ROUTINE old-I-CKILLS-DAD ()
+        <COND (<EQUAL? ,CRULLEY-CTR 1>
+               ;<QUEUE I-CKILLS-DAD 2>
+               <COND (<IN? ,DAD ,CELL-4>
+                      <FSET ,DAD ,DEADBIT>
+                      <FSET ,IRON-CELL-DOOR ,OPENBIT>
+                      <COND (<NOT <FSET? ,LARGE-KEY ,TOUCHBIT>>
+                             <MOVE ,LARGE-KEY ,DUNGEON>
+                             <FSET ,LARGE-KEY ,TOUCHBIT>)>
+                      <REMOVE ,DAD>)>)
+              (<EQUAL? ,CRULLEY-CTR 2>
+               <COND (<OR <EQUAL? ,HERE ,BALLROOM ,FOYER>
+                          <EQUAL? ,HERE ,SUPPER-ROOM ,ORCHESTRA>>
+                      <TELL ,INDENT
+"You see " D ,CRULLEY " come in from the east wing and beckon to" T ,LAFOND>
+                      <COND (<FSET? ,DAD ,TOUCHBIT>
+                             <QUEUE I-LDANCE 2>
+                             <REMOVE ,HERO>
+                             <TELL " urgently" ,PCR ,INDENT>
+                             <TELL
+"\"'E's gone! The cocky crupper 'as disappeared!\" Lafond looks around
+angrily, eyes narrowed, \"Then get his compatriot. Take Falcon.\"" T ,CRULLEY
+" runs out the front door, reappearing a moment later with help" ,PCR>
+                             <I-HARRESTED T>)
+                            (T
+                             ;<SETG DANCED-WITH ;,BLOWN>
+                             <TELL
+". \"'E's gone. Visiting that Neptune you told me about. Gone to sea, poor
+man,\" he laughs, and returns to lurking around the doorway" ,PCR>)>)
+                     (T
+                      <RFALSE>)>)
+              (T
+               <RFALSE>)>
+        <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<TELL "Swords clash in anger as the duel rages on" ,PCR>
+
+;<GLOBAL CAN-SEE-DUEL <>>
+;<GLOBAL CAN-HEAR-DUEL <>>
+
+;(<AND <NOT ,CAN-HEAR-DUEL>
+       <NOT ,CAN-SEE-DUEL>>
+  <RFALSE>)
+
+<ROUTINE I-DUEL ()
+        <COND (<AND <CANT-HEAR-DUEL>
+                    <L? ,HERO-CTR 16>> T)
+              (<L? ,HERO-CTR 12>
+               <TELL ,INDENT>
+               <COND (<EQUAL? ,HERE ,GALLERY>             ;,CAN-SEE-DUEL
+                      <TELL
+"Nicholas and Lafond circle each other intently, the one breathing hard, the
+other casual, sword tips almost touching. Jamison has lost copious amounts
+of blood and is no match for Lafond, cool and competent." CR>)>
+               <TELL <PICK-ONE ,DUEL-SOUNDS> CR>)
+              (<EQUAL? ,HERO-CTR 12>
+               <TELL ,INDENT 
+"Someone calls out, \"We've got the Dimsford girl, Governor\" -- lying, of
+course, since you're obviously free">
+               <COND (<EQUAL? ,HERE ,GALLERY>              ;,CAN-SEE-DUEL
+                      <TELL
+". But Nick glances towards the voice, missteps, and slips in his own blood,
+falling backwards to the floor, his rapier skittering aside">)>
+               <TELL ,PCR>)
+              (<EQUAL? ,HERO-CTR 13>
+               <TELL ,INDENT>
+               <COND (<EQUAL? ,HERE ,GALLERY>               ;,CAN-SEE-DUEL
+                      <TELL D ,LAFOND
+" leaps to Jamison's side, placing one heeled boot on the prostrate man's
+throat, the tip of his sword over Nick's heart. He sneers then, one eyebrow
+tilted, and moves to plunge in the sword. Nicholas cannot move.">)
+                     (T
+                      <SETG HERO-CTR 15>   ;"skip to last move I-DUEL"
+                      <TELL 
+"One of the duellists falls heavily to the floor, his sword skittering away.
+All is silence for a moment, broken once by a low chuckle. Then a woman
+screams, someone gasps, and Jean Lafond's wicked laugh blasts your ears,
+\"Who else cares to taste my blade?\"">
+                      ;<TELL
+"A duellist leaps forward, but no sound of sword scraping sword,
+as the lunge is parried, follows. Instead, one labored breath whispers from
+the ballroom and a body thuds dully the floor. A woman screams then, someone
+faints, and from the frightened silence comes Jean Lafond's wicked laugh,
+\"Who else cares to taste my blade?\"">)>
+               <CRLF>)
+              (<EQUAL? ,HERO-CTR 14>
+               <COND (<EQUAL? ,HERE ,GALLERY>               ;,CAN-SEE-DUEL
+                      <TELL ,INDENT
+"The sword plunges down into Jamison's heart, a red stain flowing up to meet
+it on his breast. Nicholas draws his last breath, his tortured gaze drawn
+heavenwards, to your face. He reaches for you, his hand dripping his own
+blood, and breathes your name...|
+   Nicholas's hand falls limply to the swelling pool of wine red blood and
+silence pounds on your ears" ,PCR>)>)
+              (<EQUAL? ,HERO-CTR 15>
+               <COND (<EQUAL? ,HERE ,GALLERY>                 ;,CAN-SEE-DUEL
+                      <TELL ,INDENT
+"Lafond wipes his sword on your lover's inert body, ordering someone to drag
+away the corpse. Suddenly there are sounds of fighting all about, and you
+realize dragoons surround the house" ,PCR>)
+                     (T
+                      <TELL "Time has stopped. Silence reigns." CR>)>)
+              (<EQUAL? ,HERO-CTR 16>
+               <COND (<NOT <CANT-HEAR-DUEL>>
+                      ;<OR <EQUAL? ,HERE ,GALLERY ,STAIRTOP ,FOYER>
+                          <EQUAL? ,HERE ,SUPPER-ROOM ,VERANDA ,HALL-E>>
+                      <TELL ,INDENT
+"\"Find the girl and bring her to me,\" Lafond orders." CR>)>
+               <TELL ,INDENT ,DRAGOONS-SURROUND>
+               <FWTD ,SOMETHING-HITS-YOU>)>
+        <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<GLOBAL DUEL-SOUNDS
+       <LTABLE
+        0
+        "Swords engage and disengage."
+        "You hear metal scrape metal. A woman gasps."
+        "Lafond's voice is cold, lazy, \"You will die, you know, Jamison.\""
+        "You hear a piece of furniture being knocked over."
+        "\"You must ... pay ... for your actions!\" Nicholas gasps."
+        "Rapiers click and slide. \"Bad parry, Captain,\" Lafond says."
+         "You hear a duellist leap forward, and swords clash, parrying.">>
+
+<ROUTINE CANT-HEAR-DUEL ()
+        <COND (<EQUAL? ,HERE ,UPPER-HALL-E ,STAIRTOP ,HALL-W ,FOYER
+                             ,LIBRARY ,HALL-E ,VERANDA ,GALLERY>
+               <RFALSE>)
+              (T
+               <RTRUE>)>>
+
+<CONSTANT DEAD 7>     ;"Lafond by 7 -- skewered by Nicholas"
+<CONSTANT FIGHTING 5>  ;"Lafond by 5 -- fighting Nicholas"
+
+<OBJECT AIR
+       (IN GLOBAL-OBJECTS)
+       (DESC "air")
+       (SYNONYM AIR)>
+
+<OBJECT PISTOL
+       (DESC "pistol")
+       (SYNONYM PISTOL GUN)
+       (FLAGS TAKEBIT)
+       (SIZE 3)
+       (ACTION PISTOL-F)>
+
+<ROUTINE PISTOL-F ()
+        <COND (<VERB? FILL>
+               <COND (<AND <NOT ,PRSI>
+                           <EQUAL? ,P-PRSA-WORD ,W?LOAD>>
+                      <COND (<HELD? ,POWDER>
+                             <PERFORM ,V?FILL ,PISTOL ,POWDER>
+                             <RTRUE>)
+                            (T
+                             <TELL ,YNH " any " D ,POWDER ,PCR>)>)
+                     (<PRSI? ,POWDER>
+                      <COND (,PRIMED
+                             <TELL ,YOU-HAVE-ALREADY " loaded" TR ,PISTOL>)
+                            (T
+                             <SETG PRIMED T>
+                             <MOVE ,HORN ,PROTAGONIST>
+                             
+                             ;"LOAD GUN/PUT STONE IN GARTER"
+
+                             <COND (<NOT ,PENULTIM-POINT>   
+                                    <SETG PENULTIM-POINT T>
+                                    <SETG SCORE <+ ,SCORE 1>>)>
+                             <TELL
+"You pour a lumpy stream of" T ,POWDER " mixture into the barrel of"
+T ,PISTOL " tamping it as best you can" ,PCR>)>)
+                     (<PRSO? ,PISTOL>
+                      <TELL ,YOU-CANT "put that into" AR ,PISTOL>)
+                     (T
+                      <RFALSE>)>)
+              (<AND <VERB? PUT POUR>
+                    <PRSI? ,PISTOL>>
+               <COND (<PRSO? ,POWDER>
+                      <PERFORM ,V?FILL ,PISTOL ,PRSO>
+                      <RTRUE>)
+                     (T
+                      <TELL ,HUH>)>)
+              (<VERB? EXAMINE>
+               <TELL "One of" A ,PAIR ", the gun is ">
+               <COND (,PRIMED
+                      <TELL "primed and ready to fire.">)
+                     (T
+                      <TELL "not loaded.">)>
+               <CRLF>)
+              (<VERB? KILL>
+               <PERFORM ,V?SHOOT ,PRSO ,PRSI>
+               <RTRUE>)
+              (<VERB? SHOOT>
+               <COND (<NOT ,PRIMED>
+                      <TELL "But" T ,PISTOL " is not loaded." CR>)
+                     ;(<L? ,LAFOND-CTR ,DEAD>
+                      <TELL CR "BUG #32 (&c.)" CR>)
+                     (<OR <NOT ,PRSI>
+                          <PRSO? ,AIR>>        ;" FIRE PISTOL/ SHOOT GUN "
+                      <SETG SCORE <+ ,SCORE 1>>   ;"WIN 3"
+                      <TELL
+"You fire" T ,PISTOL " into the air. Startled by the loud report," T ,CRULLEY
+" jerks his pistol and fires, aiming not at Nicholas, but at you. You hear a
+distant scream, your own, and watch, as through from afar," T ,DAD " wrestle"
+T ,CRULLEY " to" T ,GROUND ". You feel only numbness as loving arms take you
+up, and Nicholas kisses you into death, his tears damp on your cheek."
+,YOU-DIED>
+                      ;<CLEAR-SCREEN 5>
+                      <SETG FINAL-RANK 2>
+                      ;<FINISH T>
+                      <FINISH>)
+                     (<PRSO? ,PATROL ,BUSHES>
+                      <TELL "They are out of range." CR>)
+                     (<PRSO? ,CRULLEY>
+                      <SETG SCORE <+ ,SCORE 1>>    ;"WIN 5"
+                      <TELL
+"Trembling, you fire the heavy pistol. You hear its loud report over
+roaring surf. Crulley staggers, hit, and falls from the cliff.
+The gun falls from your nerveless hands.|
+   Time stops as you and Nicholas gaze at one another, adoring and amazed.
+Slowly he bows and offers his hand.|
+   " ,NUTBROWN "His eyes, twin seas of blue, devour you with a love
+deep and true-hearted, and you are pulled into his embrace, your mouth
+on his, lips parted, thirsting, arching into his kiss..." CR>
+                      <FINALE>)
+                     (<PRSO? ,PISTOL>
+                      <IMPOSSIBLES>)
+                     (<FSET? ,PRSO ,DEADBIT>
+                      <MAN-IS-DOWN>)
+                     (<FSET? ,PRSO ,ACTORBIT>
+                      <TELL "You wouldn't kill" T ,PRSO "!" CR>)
+                     (<NOT <IN? ,PRSO ,HERE>>
+                      <TELL CTHE ,PISTOL " can't fire that far" ,PCR>)
+                     (T
+                      <WASTES>)>)
+              (<AND <PRSO? ,STONE>
+                    <VERB? SSHOOT>>
+               <WASTES>)
+              ;(<PRSI? ,GUN>
+                <PERFORM ,V?SSHOOT ,GUN ,PRSO>
+                <RTRUE>)
+              (T
+               <RFALSE>)>>
+
+<ROUTINE I-ENDGAME ()
+        <COND (<AND <EQUAL? ,HERE ,LAGOON ,BY-SHIP>
+                    <G? ,LAFOND-CTR 1>>
+               <SETG SCORE 25>  ;<+ ,SCORE 1>
+               <TELL ,INDENT
+"You hear distant shots and screams, and gaze back across the restless waves
+to the massacre on the beach. The sight blurs with your tears of
+shame, tears for the father and the lover you left behind." CR>
+               <CLEAR-SCREEN 15>
+               <TELL ,INDENT
+"The tale you tell Jamison's crew, of rapine and blood, of your heroic
+attempt to save their captain, and of your own escape after his death in
+your arms, is not so far from the truth that you cannot appear sincere.
+Cannily, you take advantage of their temporary grief, select a private
+guard, and teach the rest the discipline of the whip.">
+               <SETG FINAL-RANK 3>
+               <COND (<L? ,LAFOND-CTR ,DEAD>
+                      ;<NOT <FSET? ,LAFOND ,DEADBIT>>
+                      <TELL
+" You have started on the ruthless road to revenge. You intend to meet
+Lafond again, and that time, you intend to win.">)>
+               ;<SETG FINAL-RANK <COND (<FSET? ,LAFOND ,DEADBIT> 3 ;6)
+                                      (T <TELL
+"You have started on the ruthless road to revenge. You intend to meet
+Lafond again, and next time, you intend to win."> 4 ;1)>>
+               <CRLF>
+               ;<FINISH T>
+               <FINISH>
+               <RFALSE>)>
+        <TELL ,INDENT>
+        <COND (<EQUAL? ,LAFOND-CTR 1>
+               <COND (<NOT <EQUAL? ,HERE ,BEACH ,SHALLOWS ,LAGOON>>
+                      <FWTD
+"Dragoons surround you, appearing from nowhere.
+They show you no mercy, though they let you survive.">)
+                     (T
+                      <QUEUE I-ENDGAME -1>
+                      <MOVE ,LAFOND ,BEACH>
+                      <FCLEAR ,LAFOND ,MUNGBIT>
+                      <MOVE ,CRULLEY ,BEACH>
+                      <FCLEAR ,CRULLEY ,MUNGBIT>
+                      <TELL
+"A shot rings out over the roar of the surf. Turning, you see that Lafond
+stands at the top of the cliff, a pistol in each hand. \"Trying to sneak
+out the back, cowards? You will die like your brother, Falcon. Snivelling
+for mercy.\" He hands one gun to " D ,CRULLEY ", standing nearby, and levels
+the other at Jamison" ,PCR>)>)
+              (<EQUAL? ,LAFOND-CTR 2>
+               <FSET ,COOKIE ,DEADBIT>
+               <SETG QUESTIONER ,HERO>
+               <SETG AWAITING-REPLY 9>
+               <QUEUE I-REPLY 2>
+               <TELL
+"As the gun fires, Cookie throws himself before his captain. He cries out,
+blood blossoming on his shoulder, and falls face first into the sand.
+Lucy runs to him.|
+   Jamison yells up the cliff, brandishing his sword. \"Fight like a man,
+Lafond. You have drawn my blood once tonight -- let me draw yours.\"|
+   Lafond sneers. \"On one condition. If I win, your lady comes to me.
+You will have no need of her when you are dead.\"|
+   Nicholas stiffens, glances at the dragoons on the cliff above, and turns
+slowly to you. He says nothing, his face hard, but his eyes tell you what
+you want to know. \"Answer, my darling. Yes or no?\"" CR>)
+              (<EQUAL? ,LAFOND-CTR 3 4>
+               <SETG QUESTIONER ,HERO>
+               <SETG AWAITING-REPLY 9>
+               <QUEUE I-REPLY 2>
+               <COND (<OR <AFFIRMATIVE-ANSWER>
+                          <VERB? YES>>
+                              ;<EQUAL? ,REACTION ,REACTION-POSITIVE>
+                      <FSET ,RAPIER ,NDESCBIT>
+                      <FSET ,LAFOND ,NDESCBIT>
+                      <FCLEAR ,CRULLEY ,NDESCBIT>
+                      <MOVE ,PISTOL ,BEACH>
+                                  ;"then skip to FIGHTING next turn"
+                      <SETG LAFOND-CTR <- ,FIGHTING 1>> 
+                      <TELL
+"Nicholas looks determined. \"I accept. So long as my people go free
+if I win. Order your dragoons to obey us, then.\" In answer, Lafond jumps
+off the cliff like a huge brocaded bat to land in front of" T ,HERO ".
+\"Die then, fool!\"|
+   " CTHE ,PISTOL ", spinning from Lafond's grip, drops to the sand ">
+                      <COND (<EQUAL? ,HERE ,BEACH>
+                             <TELL "nearby." CR>)
+                            (T
+                             <TELL "of the beach." CR>)>)
+                     (<AND <EQUAL? ,REACTION ,REACTION-NEUTRAL>
+                           <EQUAL? ,LAFOND-CTR 3>>
+                      <TELL
+"Lafond calls down to you, \"My pretty doxy,
+do make up your mind. Yes or no?\"" CR>)
+                     (T
+                      <JIGS-UP
+"Lafond cries, \"No deal then. Take them, men!\"
+The dragoons pour down the cliff.">)>)
+              (<EQUAL? ,LAFOND-CTR ,FIGHTING>
+               <TELL
+D ,LAFOND " immediately takes the advantage, forcing Nicholas in a
+retreat towards the foaming surf. But Nicholas fights hard, jaw set, ignoring
+his wounds. Lafond finally loses his smile.|
+   Behind the duellists, far away atop the cliff, you notice "
+D ,CRULLEY " madly reloading the pistol" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR 6>
+               <FCLEAR ,LAFOND ,NDESCBIT>
+               <REMOVE ,HRING>
+               <MOVE ,LRING ,HERO>
+               <FCLEAR ,RAPIER ,NDESCBIT>
+               <FSET ,LAFOND ,DEADBIT>
+               <TELL 
+"Suddenly the force of the duel turns, Nicholas advancing against Lafond's
+retreat. Their blades silently flash in the moonlight. Lafond is pressed
+back into the shadow of the cliff, sweat beading on his forehead. Abruptly,
+Jamison leaps forward, metal scrapes, and his rapier licks neatly into
+Lafond's ribs, like a snake slipping into its burrow. The body of the governor
+of St. Sinistra convulses, as in amazement, then sags dead on the sword.|
+   Nicholas removes" A ,LRING " from the dead man's finger, throwing his own
+cheap copy into the surf.|
+   Far above him," T ,CRULLEY " moves down the stairs." CR>)
+              (<EQUAL? ,LAFOND-CTR ,DEAD>
+               <TELL D ,CRULLEY
+" is levelling" T ,PISTOL ", feet apart, braced by the cliff wall." CR>)
+              (<EQUAL? ,LAFOND-CTR <+ ,DEAD 1>>
+               <TELL
+D ,CRULLEY " carefully aims" T ,PISTOL ", a triumphal grin benighting his
+face. Nicholas turns and walks smiling towards you, oblivious to his
+danger" ,PCR>)
+              (<EQUAL? ,LAFOND-CTR <+ ,DEAD 2>>
+               ;<SETG FINAL-RANK 0 ;2>
+               ;<SETG SCORE <+ ,SCORE 1>> 
+               <JIGS-UP
+"The pistol fires with a deafening roar, spraying shot into Nicholas.
+Time stops as he falls, reaching for you, your name his last breath.|
+   The battle afterwards is short and bloody. Spurred by grief, you fight
+hard, yet greet benumbing death thankfully.">
+               ;<FINISH T>
+               ;<FINISH>)>  
+        <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>>
+
+;(<EQUAL? ,LAFOND-CTR ,DEAD>
+  <TELL
+"For a moment, all eyes are on you in surprise.
+Crulley lifts the pistol to aim it at Nicholas.">)
+
+<ROUTINE FINALE ()
+        <MOVE ,HERO ,FOCSLE>
+        <CLEAR-SCREEN 15>
+        <SET VERBOSITY 0>
+        <GOTO ,FOCSLE>
+        <TELL ,INDENT
+"As dawn breaks over the eastern seas, you stand with Nicholas on his ship,
+looking north. \"I have nothing left in England,\" he says. \"There I am but a
+destitute gentleman, wanted for piracy. Here -- this isle holds too many
+memories">
+        <COND (<FSET? ,DAD ,DEADBIT>
+               <SETG FINAL-RANK 1 ;4>
+               <TELL
+" --\" he pauses, gazing into your tear-filled eyes with compassion. \"">)
+              (T
+               <SETG FINAL-RANK 4 ;5>
+               <TELL "; your father may have it. ">)>
+        <TELL
+"Mayhap my brother's wife yet lives. I must try to find her, either way.\"
+He takes you into his arms. \"Come with me, my love? To America -- they tell
+of endless fertile fields and strange beasts in that wild land. It won't be
+easy, but we will have each other. Together, shall we carve a kingdom blessed
+with fair children and freedom?\"|
+   You wrap your arms about his waist and lean into him, and smile at the
+rising sun" ,PCR>
+        ;<FINISH T>
+        <FINISH>>
+
+
+<OBJECT PATROL
+       (IN FRONT-DRIVE)
+       (DESC "patrol")
+       (LDESC
+"Dragoons, conversing quietly, patrol the other side of the gate.")
+       (SYNONYM DRAGOO PATROL)
+       (ADJECTIVE DRAGOO)
+       (FLAGS ACTORBIT)
+       (ACTION PATROL-F)>
+
+<ROUTINE PATROL-F ()
+        <COND (<EQUAL? ,PATROL ,WINNER>
+               <TELL "A rough voice yells to leave them alone." CR>)
+              (<TOUCHING? ,PATROL>
+               <CANT-REACH ,PATROL>)>>
+
+
+<ROUTINE FAILS-TO-NOTICE ()     ;("OPTIONAL" (WOMAN? <>))
+        <COND (<EQUAL? ,WINNER ,LUCY>
+               <TELL "Sh">)
+              (T
+               <TELL "H">)>
+        <TELL "e fails to notice you've spoken" ,PCR>>
\ No newline at end of file
diff --git a/globals.zap b/globals.zap
new file mode 100644 (file)
index 0000000..ae9de72
--- /dev/null
@@ -0,0 +1,1807 @@
+
+
+       .FUNCT  INTDIR-F,?TMP1
+       EQUAL?  PRSA,V?ROW-TO,V?ROW,V?ROW-DIR \FALSE
+       IN?     PROTAGONIST,SKIFF \FALSE
+       EQUAL?  P-DIRECTION,P?EAST \?CCL8
+       EQUAL?  HERE,BY-SHIP \?CND9
+       PRINTI  "That would take you past"
+       CALL    TPRINT,SHIP
+       PRINTR  " into the open sea!"
+?CND9: SET     'ROWING,ROWEAST
+       PRINT   DIPPING-OARS
+       PRINTD  SKIFF
+       PRINTI  " plows through the lagoon."
+       EQUAL?  HERE,SHALLOWS \?CCL13
+       CALL    QUEUE,I-CURRENT,-1
+       SET     'ROWING,1
+       MOVE    SKIFF,LAGOON
+       CRLF    
+       CALL    GOTO,SKIFF
+       RSTACK  
+?CCL13:        ADD     SKIFF-LOC,ROWING >?TMP1
+       ADD     SHIP-LOC,1
+       EQUAL?  ?TMP1,SHIP-LOC,STACK \?CCL15
+       FSET?   SHIP,MUNGBIT \?CCL18
+       CALL    JIGS-UP,STR?297
+       RSTACK  
+?CCL18:        PRINTI  " You glide into the shadow of"
+       CALL    TRPRINT,SHIP
+       CRLF    
+       SET     'SKIFF-LOC,SHIP-LOC
+       SET     'ROWING,0
+       MOVE    SKIFF,BY-SHIP
+       CALL    GOTO,SKIFF
+       RSTACK  
+?CCL15:        CRLF    
+       RTRUE   
+?CCL8: EQUAL?  P-DIRECTION,P?WEST \?CCL20
+       SET     'ROWING,ROWWEST
+       EQUAL?  HERE,SHALLOWS \?CCL23
+       PRINTI  "You can row"
+       CALL    TPRINT,SKIFF
+       PRINTI  " no farther west"
+       PRINT   PCR
+       RTRUE   
+?CCL23:        ADD     SKIFF-LOC,ROWING
+       LESS?   STACK,2 \?CCL25
+       PRINT   DIPPING-OARS
+       PRINTD  SKIFF
+       PRINTI  " noses into the sand of the shallows. You get out"
+       PRINT   PCR
+       CRLF    
+       CALL    DEQUEUE,I-CURRENT
+       SET     'SKIFF-LOC,1
+       MOVE    SKIFF,SHALLOWS
+       CALL    GOTO,SHALLOWS
+       RTRUE   
+?CCL25:        PRINT   DIPPING-OARS
+       PRINTD  SKIFF
+       PRINTI  " shoots over the waves"
+       PRINT   PCR
+       EQUAL?  HERE,BY-SHIP \TRUE
+       MOVE    SKIFF,LAGOON
+       CALL    GOTO,SKIFF
+       RTRUE   
+?CCL20:        EQUAL?  P-DIRECTION,P?NORTH,P?NW,P?NE /?CCL29
+       EQUAL?  P-DIRECTION,P?SOUTH,P?SW,P?SE \FALSE
+?CCL29:        PRINTR  "You can barely row back and forth, much less side to side!"
+
+
+       .FUNCT  MAN-F,PERSON
+       EQUAL?  PRSO,ME \?CCL3
+       EQUAL?  PRSA,V?TAKE-WITH \?CCL3
+       CALL    RECOGNIZE
+       RSTACK  
+?CCL3: CALL    NOUN-USED,W?SAILOR,MAN
+       ZERO?   STACK /?CCL7
+       EQUAL?  PRSA,V?HELLO \?CCL7
+       CALL    GLOBAL-IN?,CREW,HERE
+       ZERO?   STACK /?CCL12
+       CALL    PERFORM,V?HELLO,CREW
+       RTRUE   
+?CCL12:        PRINTR  "Nothing happens here."
+?CCL7: GET     P-NAMW,0
+       EQUAL?  STACK,W?MAN \?CCL14
+       EQUAL?  PRSO,MAN \?CCL14
+       CALL    ADJ-USED,A?BEWIGGED
+       ZERO?   STACK /?CCL19
+       CALL    PERFORM-PRSA,LAFOND,PRSI
+       RSTACK  
+?CCL19:        CALL    NOUN-USED,W?MEN,MAN
+       ZERO?   STACK /?CCL21
+       EQUAL?  HERE,BALLROOM,ORCHESTRA,SUPPER-ROOM /?CCL21
+       CALL    MORE-SPECIFIC
+       RSTACK  
+?CCL21:        CALL    FIND-MAN >PERSON
+       ZERO?   PERSON /?CCL25
+       CALL    PERFORM-PRSA,PERSON,PRSI
+       RTRUE   
+?CCL25:        CALL    CANT-SEE,MAN
+       RSTACK  
+?CCL14:        GET     P-NAMW,1
+       EQUAL?  STACK,W?MAN \FALSE
+       EQUAL?  PRSI,MAN \FALSE
+       CALL    ADJ-USED,A?BEWIGGED
+       ZERO?   STACK /?CCL32
+       CALL    PERFORM-PRSA,PRSO,LAFOND
+       RSTACK  
+?CCL32:        CALL    NOUN-USED,W?MEN,MAN
+       ZERO?   STACK /?CCL34
+       EQUAL?  HERE,BALLROOM,ORCHESTRA,SUPPER-ROOM /?CCL34
+       CALL    MORE-SPECIFIC
+       RSTACK  
+?CCL34:        CALL    FIND-MAN >PERSON
+       ZERO?   PERSON /?CCL38
+       CALL    PERFORM-PRSA,PRSO,PERSON
+       RTRUE   
+?CCL38:        CALL    CANT-SEE,MAN
+       RSTACK  
+
+
+       .FUNCT  FIND-MAN
+       IN?     HERO,HERE \?CCL3
+       RETURN  HERO
+?CCL3: IN?     LAFOND,HERE \?CCL5
+       RETURN  LAFOND
+?CCL5: IN?     DAD,HERE \?CCL7
+       RETURN  DAD
+?CCL7: IN?     CRULLEY,HERE \?CCL9
+       RETURN  CRULLEY
+?CCL9: IN?     COOKIE,HERE \?CCL11
+       RETURN  COOKIE
+?CCL11:        IN?     BUTLER,HERE \?CCL13
+       RETURN  BUTLER
+?CCL13:        CALL    GLOBAL-IN?,DANCERS,HERE
+       ZERO?   STACK /?CCL15
+       RETURN  DANCERS
+?CCL15:        CALL    GLOBAL-IN?,CREW,HERE
+       ZERO?   STACK /?CCL17
+       RETURN  CREW
+?CCL17:        IN?     CROC,HERE \FALSE
+       RETURN  CROC
+
+
+       .FUNCT  NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0
+       EQUAL?  PRSO,NOT-HERE-OBJECT \?CCL3
+       EQUAL?  PRSI,NOT-HERE-OBJECT \?CCL3
+       PRINTR  "Those things aren't here!"
+?CCL3: EQUAL?  P-XNAM,W?MOUTH,W?EYES \?CCL7
+       EQUAL?  P-XADJN,W?LAFOND,FALSE-VALUE \?CCL7
+       EQUAL?  PRSO,NOT-HERE-OBJECT \?CCL12
+       SET     'PRSO,LAFOND
+       RFALSE  
+?CCL12:        SET     'PRSI,LAFOND
+       RFALSE  
+?CCL7: EQUAL?  P-XADJN,W?POWDER \?CCL14
+       CALL    HELD?,HORN
+       ZERO?   STACK /?CCL14
+       EQUAL?  PRSO,NOT-HERE-OBJECT \?CCL19
+       SET     'PRSO,POWDER
+       JUMP    ?CND1
+?CCL19:        SET     'PRSI,POWDER
+       JUMP    ?CND1
+?CCL14:        EQUAL?  P-XNAM,W?HANDS,W?HAND /?PRD23
+       EQUAL?  P-XNAM,W?FINGER,W?EYE,W?EYES /?PRD23
+       EQUAL?  P-XNAM,W?HEAD,W?JAMISON /?PRD23
+       EQUAL?  P-XNAM,W?LIP,W?LIPS,W?MOUTH \?CCL21
+?PRD23:        EQUAL?  P-XADJN,W?NICK,W?NICHOLAS,W?CROC'S /?CTR20
+       EQUAL?  P-XADJN,W?DAD,W?FATHER,W?PAPA /?CTR20
+       EQUAL?  P-XADJN,W?WOMAN,W?LUCY /?CTR20
+       EQUAL?  P-XADJN,W?JEAN,W?LAFOND \?CCL21
+?CTR20:        PRINTR  "[Sadly, we haven't the space to handle everything. Try to refer only to characters in the story, not individual body parts or possessions. For example, you can EXAMINE PIRATE but you can't EXAMINE PIRATE'S EYEPATCH.]"
+?CCL21:        EQUAL?  PRSO,NOT-HERE-OBJECT \?CCL33
+       SET     'TBL,P-PRSO
+       JUMP    ?CND1
+?CCL33:        SET     'TBL,P-PRSI
+       SET     'PRSO?,FALSE-VALUE
+?CND1: ZERO?   PRSO? /?CCL36
+       CALL    PRSO-MOBY-VERB?
+       ZERO?   STACK /?CCL36
+       SET     'X,TRUE-VALUE
+       JUMP    ?CND34
+?CCL36:        ZERO?   PRSO? \?CND34
+       CALL    PRSI-MOBY-VERB?
+       ZERO?   STACK /?CND34
+       SET     'X,TRUE-VALUE
+?CND34:        ZERO?   X /?CCL44
+       CALL    FIND-NOT-HERE,TBL,PRSO? >OBJ
+       ZERO?   OBJ /FALSE
+       EQUAL?  OBJ,NOT-HERE-OBJECT \TRUE
+       EQUAL?  PRSA,V?FOLLOW,V?WALK-TO \?CCL52
+       CALL    V-WALK-AROUND
+       JUMP    ?CND42
+?CCL52:        CALL    MORE-SPECIFIC
+       JUMP    ?CND42
+?CCL44:        EQUAL?  WINNER,PROTAGONIST \?CCL55
+       PRINTI  "You"
+       JUMP    ?CND53
+?CCL55:        FSET?   WINNER,DEADBIT \?CCL57
+       PRINT   DOESNT-RESPOND
+       RETURN  8
+?CCL57:        PRINTI  "Looking confused,"
+       CALL    TPRINT,WINNER
+       PRINTI  " says, ""I"
+?CND53:        PRINTI  " can't see"
+       CALL    ADJNAME?,P-XADJ
+       ZERO?   STACK \?CND60
+       CALL    NAME?,P-XNAM
+       ZERO?   STACK \?CND60
+       PRINTI  " any"
+?CND60:        CALL    NOT-HERE-PRINT,PRSO?
+       PRINTI  " here!"
+       EQUAL?  WINNER,PROTAGONIST /?CND64
+       PRINTC  34
+?CND64:        CRLF    
+?CND42:        CALL    STOP
+       RSTACK  
+
+
+       .FUNCT  PRSO-MOBY-VERB?
+       EQUAL?  PRSA,V?WHAT,V?WHERE,V?SHOOT /TRUE
+       EQUAL?  PRSA,V?SSHOOT /TRUE
+       EQUAL?  PRSA,V?WALK-TO /TRUE
+       EQUAL?  PRSA,V?I-LOVE-YOU /TRUE
+       EQUAL?  PRSA,V?FIND,V?FOLLOW,V?SAVE-SOMETHING /TRUE
+       EQUAL?  PRSA,V?ANSWER-KLUDGE /TRUE
+       RFALSE  
+
+
+       .FUNCT  PRSI-MOBY-VERB?
+       EQUAL?  PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT /TRUE
+       EQUAL?  PRSA,V?I-LOVE-YOU /TRUE
+       RFALSE  
+
+
+       .FUNCT  FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
+       CALL    MOBY-FIND,TBL >M-F
+       EQUAL?  1,M-F \?CCL3
+       ZERO?   PRSO? /?CCL6
+       SET     'PRSO,P-MOBY-FOUND
+       CALL    THIS-IS-IT,PRSO
+       RFALSE  
+?CCL6: SET     'PRSI,P-MOBY-FOUND
+       RFALSE  
+?CCL3: LESS?   1,M-F \?CCL8
+       GETB    TBL,1 >OBJ
+       GETP    OBJ,P?GENERIC
+       CALL    STACK >OBJ
+       ZERO?   OBJ /?CCL8
+       EQUAL?  OBJ,NOT-HERE-OBJECT /TRUE
+       ZERO?   PRSO? /?CCL15
+       SET     'PRSO,OBJ
+       CALL    THIS-IS-IT,PRSO
+       RFALSE  
+?CCL15:        SET     'PRSI,OBJ
+       RFALSE  
+?CCL8: RETURN  NOT-HERE-OBJECT
+
+
+       .FUNCT  NOT-HERE-PRINT,PRSO?,?TMP1
+       ZERO?   P-OFLAG /?CCL3
+       ZERO?   P-XADJ /?CND4
+       PRINTC  32
+       PRINTB  P-XADJN
+?CND4: ZERO?   P-XNAM /FALSE
+       PRINTC  32
+       PRINTB  P-XNAM
+       RTRUE   
+?CCL3: ZERO?   PRSO? /?CCL10
+       GET     P-ITBL,P-NC1 >?TMP1
+       GET     P-ITBL,P-NC1L
+       CALL    BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
+       RSTACK  
+?CCL10:        GET     P-ITBL,P-NC2 >?TMP1
+       GET     P-ITBL,P-NC2L
+       CALL    BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
+       RSTACK  
+
+
+       .FUNCT  LADDER-F
+       ZERO?   LADDER-HANGING \?CCL3
+       CALL    CANT-SEE,LADDER
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?BOARD,V?CLIMB,V?TAKE \?CCL5
+       LOC     PROTAGONIST
+       EQUAL?  STACK,CAPT-QUARTERS \?CCL8
+       FSET?   LEDGE,MUNGBIT \?CCL11
+       PRINTI  "You lean over"
+       CALL    TPRINT,LEDGE
+       PRINTI  ", but"
+       CALL    TPRINT,LADDER
+       PRINTI  " is too far out to reach"
+       PRINT   PCR
+       RTRUE   
+?CCL11:        PRINTI  "It's on the other side of the window"
+       PRINT   PCR
+       RTRUE   
+?CCL8: LOC     PROTAGONIST
+       EQUAL?  STACK,LEDGE \?CCL13
+       PRINTI  "You "
+       CALL    ANYTHING-HELD
+       ZERO?   STACK /?CND14
+       CALL    ROB,PROTAGONIST,RETICULE
+       PRINTI  "put everything in"
+       CALL    TPRINT,RETICULE
+       PRINTI  " and "
+?CND14:        FSET?   POOP,TOUCHBIT \?CCL18
+       PRINTI  "hop out, catching the"
+       JUMP    ?CND16
+?CCL18:        CALL    QUEUE,I-LADDER-BLOWS,-1
+       PRINTI  "reach out for"
+       CALL    TPRINT,LADDER
+       PRINTI  " and over-balance, tumbling from your perch. Your hand closes on a slimy hemp rung as you fly out over the waves, clinging tenuously, feet free, to the"
+?CND16:        CALL    PRSO-PRINT
+       PRINT   PCR
+       CRLF    
+       CALL    GOTO,ON-LADDER
+       RSTACK  
+?CCL13:        EQUAL?  HERE,ON-LADDER \?CCL20
+       EQUAL?  PRSA,V?TAKE \?CCL20
+       PRINT   HOLDING-IT
+       RTRUE   
+?CCL20:        LOC     PROTAGONIST
+       EQUAL?  STACK,SKIFF \?CCL24
+       CALL    DEBARK-SKIFF
+       RSTACK  
+?CCL24:        EQUAL?  HERE,POOP \?CCL26
+       PRINTI  "If you wish to climb down"
+       CALL    TPRINT,LADDER
+       PRINTI  ", say so"
+       PRINT   PCR
+       RTRUE   
+?CCL26:        CALL    DO-WALK,P?UP
+       RSTACK  
+?CCL5: EQUAL?  PRSA,V?CUT \?CCL28
+       CALL    HELD?,DAGGER
+       ZERO?   STACK /?CCL31
+       CALL    CTPRINT,DAGGER
+       PRINTI  " isn't sharp enough to cut through"
+       CALL    TRPRINT,LADDER
+       RSTACK  
+?CCL31:        CALL    PROPOSE
+       RSTACK  
+?CCL28:        EQUAL?  PRSA,V?UNTIE \?CCL33
+       CALL    CTPRINT,ROPE
+       PRINTI  " is tied in too complex a knot"
+       PRINT   PCR
+       RTRUE   
+?CCL33:        EQUAL?  PRSA,V?CLIMB-DOWN \?CCL35
+       EQUAL?  HERE,CAPT-QUARTERS \?CCL38
+       CALL    DO-FIRST,STR?298,LADDER
+       RSTACK  
+?CCL38:        CALL    DO-WALK,P?DOWN
+       RTRUE   
+?CCL35:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       EQUAL?  HERE,CAPT-QUARTERS,ON-LADDER,POOP \FALSE
+       PRINT   COMMON-LOOKING
+       PRINTI  "rope "
+       PRINTD  LADDER
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  I-END-PROLOGUE
+       PRINT   INDENT
+       PRINTI  "Davis leaps across the deck to your side, ""Free me or she dies!"" he yells, jabbing a knife up to your throat. In one smooth motion,"
+       CALL    TPRINT,HERO
+       PRINTI  " draws his rapier, pulls you free and stabs. Davis slumps into a bloody heap.
+   Swooning, you fall into the Falcon's arms. You are dimly aware of being carried to the other ship, down a short flight of stairs, and laid gently on a soft bed. When you gather strength to look around, the Falcon has left you in peace.
+   You remain confined to this room, a large cupboard blocking the door. Meals are brought by a peg-legged old man and eaten in silence. Of your handsome rescuer you see nothing. Slowly the days pass.
+"
+       CRLF    
+       PRINT   HIT-RETURN
+       PRINTI  "continue.]"
+       CRLF    
+       READ    P-INBUF,P-LEXV
+       CALL    CLEAR-SCREEN,10
+       CALL    GOTO,CAPT-QUARTERS
+       FCLEAR  CRULLEY,DEADBIT
+       FCLEAR  DOOR,MUNGBIT
+       MOVE    HERO,CAPT-QUARTERS
+       FCLEAR  HERO,NDESCBIT
+       REMOVE  COFFER
+       FSET    COFFER,MUNGBIT
+       FCLEAR  COFFER,LOCKEDBIT
+       FSET    RAPIER,NDESCBIT
+       FCLEAR  DOOR,OPENBIT
+       RTRUE   
+
+
+       .FUNCT  GLOBAL-SLEEP-F
+       EQUAL?  PRSA,V?TAKE,V?WALK-TO \FALSE
+       CALL    PERFORM,V?SLEEP
+       RTRUE   
+
+
+       .FUNCT  GROUND-F
+       EQUAL?  PRSA,V?EXAMINE \?CCL3
+       EQUAL?  HERE,RIGGING-ROOM,CROWS-NEST \?CCL6
+       PRINTI  "Looking down at the distant deck is a mistake. Your stomach flips over"
+       JUMP    ?CND4
+?CCL6: CALL    SHIP-BOARD,HERE
+       ZERO?   STACK /?CCL8
+       PRINTI  "Well scrubbed and smoothed floorboards make up the deck"
+       JUMP    ?CND4
+?CCL8: EQUAL?  HERE,BY-SHIP,LAGOON,SHALLOWS \?CCL10
+       PRINTI  "A sandy bottom shifts under the waves"
+       JUMP    ?CND4
+?CCL10:        EQUAL?  HERE,CELL-1,CELL-4 \?CCL12
+       PRINTI  "Like the walls and ceiling, rock"
+       JUMP    ?CND4
+?CCL12:        EQUAL?  HERE,CELL-2 \?CCL14
+       PRINTI  "The floor is ankle deep in mud"
+       JUMP    ?CND4
+?CCL14:        CALL    NOTHING-INTERESTING
+       PRINTI  "about "
+       FSET?   HERE,INDOORSBIT \?CCL17
+       PRINTI  "the floor"
+       JUMP    ?CND4
+?CCL17:        CALL    TPRINT,GROUND
+?CND4: PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?BOARD,V?CLIMB,V?CLIMB-ON \?CCL19
+       CALL    WASTES
+       RSTACK  
+?CCL19:        EQUAL?  PRSA,V?LOOK-UNDER \?CCL21
+       CALL    IMPOSSIBLES
+       RSTACK  
+?CCL21:        EQUAL?  PRSA,V?LEAVE \?CCL23
+       CALL    DO-WALK,P?UP
+       RSTACK  
+?CCL23:        EQUAL?  PRSA,V?WALK-TO \FALSE
+       CALL    NOUN-USED,W?DECK,GROUND
+       ZERO?   STACK /FALSE
+       EQUAL?  HERE,CABIN,LANDING,HOLD /?CTR29
+       EQUAL?  HERE,GALLEY \?CCL30
+?CTR29:        CALL    DO-WALK,P?OUT
+       RSTACK  
+?CCL30:        EQUAL?  HERE,DEUX-DECK,POOP,QUARTERDECK /?CTR33
+       EQUAL?  HERE,MAIN-DECK,FOCSLE \?CCL34
+?CTR33:        PRINT   LOOK-AROUND
+       RTRUE   
+?CCL34:        EQUAL?  HERE,CROWS-NEST,RIGGING-ROOM \?CCL38
+       CALL    DO-WALK,P?DOWN
+       RSTACK  
+?CCL38:        CALL    SHIP-BOARD,HERE
+       ZERO?   STACK /?CCL40
+       CALL    V-WALK-AROUND
+       RSTACK  
+?CCL40:        CALL    WASTES
+       RSTACK  
+
+
+       .FUNCT  KEY-F
+       EQUAL?  PRSA,V?TAKE \FALSE
+       FSET?   LARGE-KEY,TRYTAKEBIT \FALSE
+       MOVE    LARGE-KEY,PROTAGONIST
+       FCLEAR  LARGE-KEY,TRYTAKEBIT
+       INC     'SCORE
+       PRINTR  "Taken."
+
+
+       .FUNCT  GEN-LOCK
+       FSET?   COFFER,NDESCBIT /FALSE
+       RETURN  DOOR
+
+
+       .FUNCT  DOOR-F
+       EQUAL?  HERE,CAPT-QUARTERS \?CCL3
+       CALL    PERFORM-PRSA,CURTAIN
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL5
+       CALL    NOUN-USED,W?LOCK,LDOOR
+       ZERO?   STACK /?CCL8
+       PRINTI  "Ladies do not look through keyholes!"
+       CRLF    
+       JUMP    ?CND6
+?CCL8: FSET?   PRSO,OPENBIT \?CCL10
+       PRINTI  "It is open"
+       JUMP    ?CND6
+?CCL10:        PRINTI  "It"
+       PRINT   IS-CLOSED
+       EQUAL?  HERE,QUARTERDECK \?CCL13
+       PRINTI  " and barred"
+       JUMP    ?CND6
+?CCL13:        FSET?   DOOR,MUNGBIT \?CND6
+       PRINTI  ". Or, what remains of it is"
+?CND6: CALL    THIS-IS-IT,PRSO
+       PRINT   PCR
+       RTRUE   
+?CCL5: EQUAL?  PRSA,V?PICK \?CCL16
+       EQUAL?  PRSO,LDOOR \?CCL16
+       PRINTR  "The mechanism is too complex to pick."
+?CCL16:        EQUAL?  PRSA,V?UNLOCK \?CCL20
+       EQUAL?  HERE,UPPER-HALL-E \?CCL23
+       PRINTI  "Only one man has the key to this room: Jean Lafond"
+       PRINT   PCR
+       RTRUE   
+?CCL23:        EQUAL?  HERE,QUARTERDECK \?CCL25
+       CALL    PERFORM,V?OPEN,DOOR
+       RTRUE   
+?CCL25:        EQUAL?  PRSO,WOOD-CELL-DOOR \?CCL27
+       PRINTI  "But"
+       CALL    TPRINT,DOOR
+       PRINTI  " isn't locked"
+       PRINT   PCR
+       RTRUE   
+?CCL27:        EQUAL?  PRSI,LARGE-KEY \?CCL29
+       EQUAL?  PRSO,IRON-CELL-DOOR \?CCL32
+       FCLEAR  PRSO,LOCKEDBIT
+       PRINTI  "Unlocked"
+       PRINT   PCR
+       RTRUE   
+?CCL32:        PRINTI  "That key does not unlock this door"
+       PRINT   PCR
+       RTRUE   
+?CCL29:        PRINTI  "You are unable to unlock"
+       CALL    TRPRINT,DOOR
+       RSTACK  
+?CCL20:        EQUAL?  PRSA,V?LOCK \?CCL34
+       EQUAL?  PRSO,IRON-CELL-DOOR \?CCL37
+       EQUAL?  PRSI,LARGE-KEY \?CCL37
+       FSET    PRSO,LOCKEDBIT
+       PRINTI  "You "
+       FSET?   PRSO,OPENBIT \?CND40
+       FCLEAR  PRSO,OPENBIT
+       PRINTI  "close and "
+?CND40:        PRINTI  "lock"
+       CALL    TRPRINT,DOOR
+       RSTACK  
+?CCL37:        EQUAL?  PRSI,LARGE-KEY \?CCL43
+       PRINTI  "That key won't work here"
+       PRINT   PCR
+       RTRUE   
+?CCL43:        EQUAL?  PRSO,VER-DOOR \?CCL45
+       PRINT   YOU-CANT
+       PRINTI  "lock that"
+       PRINT   PCR
+       RTRUE   
+?CCL45:        CALL    PROPOSE
+       RSTACK  
+?CCL34:        EQUAL?  PRSA,V?KNOCK \?CCL47
+       EQUAL?  HERE,UPPER-HALL-E \?CCL50
+       FSET?   LDOOR,LOCKEDBIT /?CCL50
+       IN?     LAFOND,LAFS-ROOM \?CCL50
+       PRINTD  LAFOND
+       PRINTR  " calls, ""Come."""
+?CCL50:        PRINTR  "Silence answers back."
+?CCL47:        EQUAL?  PRSA,V?OPEN \FALSE
+       EQUAL?  HERE,CABIN \?CCL58
+       PRINTR  "It appears to be locked."
+?CCL58:        EQUAL?  HERE,LANDING \?CCL60
+       CALL    CTPRINT,DOOR
+       PRINTI  " won't open"
+       PRINT   PCR
+       RTRUE   
+?CCL60:        EQUAL?  HERE,QUARTERDECK \?CCL62
+       PRINTI  "Someone yells from ahead, ""Cap'n 'll have your hide if you go down there!"" You haven't the strength to lift the bar anyway"
+       PRINT   PCR
+       RTRUE   
+?CCL62:        EQUAL?  HERE,VERANDA \FALSE
+       FSET?   DOOR,OPENBIT /FALSE
+       PRINT   YOU-CANT-SEE-ANY
+       PRINT   WAY-TO-DO-THAT
+       RTRUE   
+
+
+       .FUNCT  CEILING-F
+       EQUAL?  PRSA,V?EXAMINE \FALSE
+       EQUAL?  HERE,CREWS-QUARTERS \?CCL6
+       PRINT   YOU-SEE
+       PRINTI  " a sail rippling against the night sky through"
+       CALL    TRPRINT,GRATE
+       RSTACK  
+?CCL6: FSET?   HERE,INDOORSBIT /FALSE
+       CALL    CANT-SEE,CEILING
+       RSTACK  
+
+
+       .FUNCT  WATER-F
+       EQUAL?  HERE,LAFS-ROOM,RIGGING-ROOM /?PRD5
+       EQUAL?  HERE,BOWSPRIT,CROWS-NEST \?CCL3
+?PRD5: EQUAL?  PRSA,V?PUT-ON,V?PUT,V?THROW /?CCL3
+       EQUAL?  PRSA,V?ENTER \?CCL10
+       PRINT   SUICIDE
+       RTRUE   
+?CCL10:        CALL    CANT-REACH,SEA
+       RSTACK  
+?CCL3: CALL    GLOBAL-IN?,SEA,HERE
+       ZERO?   STACK \?CCL12
+       CALL    HELD?,WATER,HERE
+       ZERO?   STACK \?CCL12
+       PRINTR  "There's no water here."
+?CCL12:        EQUAL?  PRSA,V?EXAMINE,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL16
+       PRINTI  "The water is sparkling clear"
+       PRINT   PCR
+       RTRUE   
+?CCL16:        EQUAL?  PRSA,V?REACH-IN \?CCL18
+       PRINTI  "Water"
+       PRINT   DRIPS-OFF
+       RTRUE   
+?CCL18:        EQUAL?  PRSA,V?DRINK-FROM,V?DRINK \?CCL20
+       EQUAL?  PRSO,WATER \?CCL23
+       PRINTI  "You take a long draft. It is quite refreshing"
+       PRINT   PCR
+       RTRUE   
+?CCL23:        PRINTI  "This water is much too salty to drink"
+       PRINT   PCR
+       RTRUE   
+?CCL20:        EQUAL?  PRSA,V?PUT-ON \?CCL25
+       EQUAL?  PRSI,SEA \?CCL25
+       CALL    PERFORM,V?PUT,PRSO,SEA
+       RTRUE   
+?CCL25:        EQUAL?  PRSA,V?THROW \?CCL29
+       EQUAL?  HERE,CAPT-QUARTERS \?CCL32
+       FSET?   LEDGE,MUNGBIT /?CCL32
+       PRINTI  "But"
+       CALL    TPRINT,WINDOW
+       PRINT   IS-CLOSED
+       PRINTR  "!"
+?CCL32:        REMOVE  PRSO
+       PRINTI  "You toss"
+       CALL    TPRINT-PRSO
+       PRINTI  " into"
+       CALL    TRPRINT,SEA
+       RSTACK  
+?CCL29:        EQUAL?  PRSA,V?SOAK,V?PUT \?CCL36
+       EQUAL?  PRSO,LETTER,INVITE \?CCL39
+       REMOVE  PRSO
+       PRINTI  "It disintegrates quickly into nothing"
+       PRINT   PCR
+       RTRUE   
+?CCL39:        EQUAL?  HERE,POOP,QUARTERDECK,FOCSLE /?CTR40
+       EQUAL?  HERE,BOWSPRIT,CAPT-QUARTERS \?CCL41
+?CTR40:        CALL    PERFORM,V?THROW,PRSO,SEA
+       RTRUE   
+?CCL41:        EQUAL?  HERE,MAIN-DECK \?CCL45
+       EQUAL?  PRSI,SEA \?CCL48
+       CALL    PERFORM,V?THROW,PRSO,SEA
+       RTRUE   
+?CCL48:        CALL    PERFORM,V?PUT,PRSO,WATER-BARREL
+       RTRUE   
+?CCL45:        EQUAL?  HERE,BEACH,SHALLOWS,LAGOON /?CTR49
+       EQUAL?  HERE,BY-SHIP \?CCL50
+?CTR49:        EQUAL?  PRSO,RAG,DRESS \?CCL55
+       CALL    DIP-DRESS
+       RSTACK  
+?CCL55:        PRINTI  "You dip"
+       CALL    TPRINT-PRSO
+       PRINTI  " into the water"
+       PRINT   PCR
+       RTRUE   
+?CCL50:        PRINT   YOU-CANT
+       PRINTI  "reach any water"
+       PRINT   PCR
+       RTRUE   
+?CCL36:        EQUAL?  PRSA,V?SWIM,V?ENTER,V?BOARD \?CCL57
+       EQUAL?  HERE,BEACH \?CCL60
+       CALL    DO-WALK,P?EAST
+       RSTACK  
+?CCL60:        CALL    V-SWIM
+       RSTACK  
+?CCL57:        CALL    TOUCHING?,SEA
+       ZERO?   STACK /FALSE
+       PRINTI  "The cool water runs through your fingers"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  SKY-F
+       FSET?   HERE,INDOORSBIT \FALSE
+       CALL    CANT-SEE,SKY
+       RSTACK  
+
+
+       .FUNCT  MOON-F
+       FSET?   HERE,INDOORSBIT \?CCL3
+       EQUAL?  HERE,CREWS-QUARTERS,CAPT-QUARTERS,BEDROOM /?CCL3
+       EQUAL?  HERE,LAFS-ROOM /?CCL3
+       EQUAL?  PRSA,V?TELL-ABOUT,V?ASK-ABOUT /?CCL3
+       PRINT   YOU-CANT
+       PRINTI  "see the moon from here"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?EXAMINE \FALSE
+       PRINTR  "A dusty moonbeam swirls down from the sky."
+
+
+       .FUNCT  HANDS-F,ACTOR
+       EQUAL?  PRSA,V?APPLAUD \?CCL3
+       SET     'PRSO,FALSE-VALUE
+       CALL    V-APPLAUD
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?SHAKE \?CCL5
+       CALL    FIND-IN,HERE,ACTORBIT,STR?267 >ACTOR
+       ZERO?   ACTOR /?CCL8
+       CALL    PERFORM,V?SHAKE-WITH,HANDS,ACTOR
+       RTRUE   
+?CCL8: PRINTR  "Pleased to meet you."
+?CCL5: EQUAL?  PRSA,V?CLEAN \?CCL10
+       PRINTR  "Done."
+?CCL10:        EQUAL?  PRSA,V?TAKE-WITH \FALSE
+       EQUAL?  PRSI,HANDS \FALSE
+       CALL    PERFORM,V?TAKE,PRSO
+       RTRUE   
+
+
+       .FUNCT  EYES-F
+       EQUAL?  PRSA,V?CLOSE \?CCL3
+       PRINTI  "You blink"
+       PRINT   PCR
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?OPEN \?CCL5
+       PRINTR  "They are open!"
+?CCL5: EQUAL?  PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
+       CALL    ADJ-USED,A?HIS
+       ZERO?   STACK /FALSE
+       IN?     HERO,HERE \FALSE
+       GET     MANNERISMS,3
+       PRINT   STACK
+       CRLF    
+       RTRUE   
+
+
+       .FUNCT  MOUTH-F
+       EQUAL?  PRSA,V?OPEN,V?ENTER,V?PUT-ON /?CTR2
+       EQUAL?  PRSA,V?EXAMINE,V?POUR,V?WRING /?CTR2
+       EQUAL?  PRSA,V?PUT \?CCL3
+?CTR2: CALL    ADJ-USED,A?CROC'S
+       ZERO?   STACK \?CTR8
+       CALL    ADJ-USED,A?CROCOD
+       ZERO?   STACK \?CTR8
+       CALL    NOUN-USED,W?SNOUT,MOUTH
+       ZERO?   STACK /?CCL9
+?CTR8: CALL    PERFORM-PRSA,PRSO,CROC
+       RTRUE   
+?CCL9: CALL    ADJ-USED,A?LAFOND
+       ZERO?   STACK /?CCL14
+       CALL    PERFORM-PRSA,PRSO,LAFOND
+       RSTACK  
+?CCL14:        EQUAL?  PRSI,MOUTH \FALSE
+       CALL    PERFORM,V?EAT,PRSO
+       RTRUE   
+?CCL3: EQUAL?  PRSA,V?OPEN \FALSE
+       CALL    RUNNING?,I-HFOLLY
+       ZERO?   STACK /?CCL21
+       PRINTR  "Jamison will do that for you."
+?CCL21:        PRINTR  "You fail to stifle a yawn."
+
+
+       .FUNCT  PROTAGONIST-F
+       ZERO?   QUESTIONER /FALSE
+       CALL    GAME-COMMANDS
+       ZERO?   STACK \FALSE
+       EQUAL?  PRSA,V?NO /?CTR6
+       CALL    NEGATIVE-ANSWER
+       ZERO?   STACK /?CCL7
+       EQUAL?  QUESTIONER,PRSO,PRSI \?CCL7
+?CTR6: SET     'REACTION,REACTION-NEGATIVE
+       JUMP    ?CND3
+?CCL7: EQUAL?  PRSA,V?YES /?CTR12
+       CALL    AFFIRMATIVE-ANSWER
+       ZERO?   STACK /?CCL13
+?CTR12:        SET     'REACTION,REACTION-POSITIVE
+       JUMP    ?CND3
+?CCL13:        SET     'REACTION,REACTION-NEUTRAL
+?CND3: SET     'QUESTIONER,FALSE-VALUE
+       RFALSE  
+
+
+       .FUNCT  AFFIRMATIVE-ANSWER
+       EQUAL?  PRSA,V?CLIMB-ON,V?APPLAUD /TRUE
+       EQUAL?  PRSA,V?GIVE,V?FOLLOW,V?DANCE /TRUE
+       EQUAL?  PRSA,V?SGIVE /TRUE
+       EQUAL?  PRSA,V?CURTSEY,V?KISS,V?HELLO /TRUE
+       EQUAL?  PRSA,V?LAUGH /TRUE
+       EQUAL?  PRSA,V?MARRY,V?I-LOVE-YOU,V?EMBRACE /TRUE
+       EQUAL?  PRSA,V?TOUCH /TRUE
+       EQUAL?  PRSA,V?SAVE-SOMETHING,V?WALK-TO,V?THANK /TRUE
+       EQUAL?  PRSA,V?SSHOW,V?SHOW /TRUE
+       EQUAL?  PRSA,V?MAKE-OUT,V?MAKE-LOVE /TRUE
+       EQUAL?  PRSA,V?TELL \FALSE
+       GET     P-LEXV,P-CONT
+       CALL    YES-WORD,STACK
+       ZERO?   STACK /FALSE
+       RTRUE   
+
+
+       .FUNCT  NEGATIVE-ANSWER
+       EQUAL?  PRSA,V?BURN,V?BITE,V?KILL /TRUE
+       EQUAL?  PRSA,V?RAPE,V?KICK,V?MUNG /TRUE
+       EQUAL?  PRSA,V?YELL,V?SWING,V?SHAKE /TRUE
+       EQUAL?  PRSA,V?TELL \FALSE
+       GET     P-LEXV,P-CONT
+       CALL    NO-WORD,STACK
+       ZERO?   STACK /FALSE
+       RTRUE   
+
+
+       .FUNCT  GAME-COMMANDS
+       EQUAL?  PRSA,V?QUIT,V?RESTORE,V?SAVE /TRUE
+       EQUAL?  PRSA,V?SUPER-BRIEF,V?BRIEF,V?VERBOSE /TRUE
+       EQUAL?  PRSA,V?VERSION,V?UNSCRIPT,V?SCRIPT /TRUE
+       EQUAL?  PRSA,V?$RECORD,V?$COMMAND,V?$RANDOM /TRUE
+       EQUAL?  PRSA,V?$UNRECORD /TRUE
+       EQUAL?  PRSA,V?$VERIFY /TRUE
+       EQUAL?  PRSA,V?SCORE,V?HELP /TRUE
+       RFALSE  
+
+
+       .FUNCT  ME-F
+       EQUAL?  PRSA,V?TELL \?CCL3
+       PRINTI  "You'll end up in Bedlam, talking to "
+       PRINTD  ME
+       PRINTI  " that way."
+       CRLF    
+       CALL    STOP
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?GIVE \?CCL5
+       EQUAL?  PRSI,ME \?CCL5
+       CALL    PERFORM,V?TAKE,PRSO
+       RTRUE   
+?CCL5: EQUAL?  PRSA,V?TAKE-WITH \?CCL9
+       EQUAL?  PRSI,MAN \?CCL9
+       CALL    RECOGNIZE
+       RSTACK  
+?CCL9: EQUAL?  PRSA,V?SHOW \?CCL13
+       EQUAL?  PRSI,ME \?CCL13
+       CALL    PERFORM,V?EXAMINE,PRSO
+       RTRUE   
+?CCL13:        EQUAL?  PRSA,V?MOVE \?CCL17
+       CALL    V-WALK-AROUND
+       RSTACK  
+?CCL17:        EQUAL?  PRSA,V?SEARCH \?CCL19
+       CALL    V-INVENTORY
+       RTRUE   
+?CCL19:        EQUAL?  PRSA,V?ALARM \?CCL21
+       CALL    HELD?,SALTS
+       ZERO?   STACK /?CCL21
+       CALL    PERFORM,V?SMELL,SALTS
+       RTRUE   
+?CCL21:        EQUAL?  PRSA,V?DRESS \?CCL25
+       CALL    PERFORM,V?GET-DRESSED,ROOMS
+       RTRUE   
+?CCL25:        EQUAL?  PRSA,V?EXAMINE \?CCL27
+       CALL    RUNNING?,I-LSED
+       ZERO?   STACK /?CCL30
+       GRTR?   LAFOND-CTR,HORNY \?CCL30
+       CALL    V-INVENTORY
+       RSTACK  
+?CCL30:        PRINTI  "You are wearing"
+       ZERO?   BOY-DRESS? /?CCL35
+       CALL    APRINT,SHIRT
+       PRINTI  " and "
+       PRINTD  PANTS
+       PRINTR  ". Mama herself would think you a plump boy."
+?CCL35:        FSET?   DRESS,WORNBIT \?CCL37
+       CALL    APRINT,DRESS
+       PRINTR  ", very pretty, if a tad outmoded for today's fashions."
+?CCL37:        FSET?   GOWN,WORNBIT \?CCL39
+       CALL    APRINT,GOWN
+       PRINTR  " of creamy watered silk."
+?CCL39:        FSET?   SHIRT,WORNBIT \?CCL41
+       CALL    APRINT,SHIRT
+       PRINT   BROTHEL
+       RTRUE   
+?CCL41:        FSET?   PANTS,WORNBIT \?CCL43
+       CALL    APRINT,PANTS
+       PRINT   BROTHEL
+       RTRUE   
+?CCL43:        FSET?   CHEMISE,EVERYBIT /FALSE
+       PRINTI  " absolutely nothing besides"
+       CALL    APRINT,CHEMISE
+       PRINTI  ", "
+       PRINTD  SHOES
+       PRINTI  " and a few layers of "
+       PRINTD  UNMENTIONABLES
+       PRINTI  ". "
+       PRINT   MOTHER
+       RTRUE   
+?CCL27:        EQUAL?  PRSA,V?SHOOT,V?MUNG,V?KILL /?CTR46
+       EQUAL?  PRSA,V?SSHOOT \?CCL47
+?CTR46:        PRINT   SUICIDE
+       RTRUE   
+?CCL47:        EQUAL?  PRSA,V?WHERE,V?FIND \?CCL51
+       PRINTI  "You're in"
+       CALL    TRPRINT,HERE
+       RSTACK  
+?CCL51:        EQUAL?  PRSA,V?FOLLOW \?CCL53
+       PRINTR  "Next time, please specify who you wish to follow."
+?CCL53:        EQUAL?  PRSA,V?EMBRACE,V?KISS \FALSE
+       PRINTI  "Mama warned you of the dangers of onanism"
+       PRINT   PCR
+       RTRUE   
+
+
+       .FUNCT  GLOBAL-ROOM-F
+       EQUAL?  PRSA,V?EXAMINE,V?LOOK-INSIDE,V?LOOK \?CCL3
+       CALL    V-LOOK
+       RSTACK  
+?CCL3: EQUAL?  PRSA,V?WALK-TO,V?ENTER \?CCL5
+       CALL    V-WALK-AROUND
+       RSTACK  
+?CCL5: EQUAL?  PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL7
+       CALL    DO-WALK,P?OUT
+       RSTACK  
+?CCL7: EQUAL?  PRSA,V?SEARCH \?CCL9
+       EQUAL?  HERE,CABIN \?CCL12
+       CALL    RUNNING?,I-COFFER
+       ZERO?   STACK \?CCL12
+       CALL    HELD?,COFFER
+       ZERO?   STACK \?CCL12
+       CALL    PERFORM,V?LOOK-UNDER,CABIN-BED
+       RTRUE   
+?CCL12:        PRINT   NOTHING-NEW
+       RTRUE   
+?CCL9: EQUAL?  PRSA,V?PUT \FALSE
+       EQUAL?  PRSI,GLOBAL-ROOM \FALSE
+       EQUAL?  P-PRSA-WORD,W?THROW \?CCL22
+       CALL    PERFORM,V?THROW,PRSO
+       RTRUE   
+?CCL22:        CALL    PERFORM,V?DROP,PRSO
+       RTRUE   
+
+
+       .FUNCT  HOUSE-F
+       EQUAL?  PRSA,V?BOARD,V?WALK-TO,V?ENTER \?CCL3
+       EQUAL?  HERE,MAIN-ENTRANCE \?CCL6
+       CALL    DO-WALK,P?SOUTH
+       RSTACK  
+?CCL6: EQUAL?  HERE,TRADE-ENTRANCE \?CCL8
+       CALL    DO-WALK,P?EAST
+       RSTACK  
+?CCL8: EQUAL?  HERE,VERANDA,LAWN \?CCL10
+       CALL    DO-WALK,P?NORTH
+       RSTACK  
+?CCL10:        EQUAL?  HERE,BY-HOUSE \?CCL12
+       CALL    DO-WALK,P?WEST
+       RSTACK  
+?CCL12:        PRINT   YOU-CANT
+       PRINTR  "do that from here."
+?CCL3: EQUAL?  PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?CCL14
+       EQUAL?  HERE,KITCHEN \?CCL17
+       CALL    DO-WALK,P?WEST
+       RSTACK  
+?CCL17:        EQUAL?  HERE,FOYER \?CCL19
+       CALL    DO-WALK,P?NORTH
+       RSTACK  
+?CCL19:        EQUAL?  HERE,BALLROOM \?CCL21
+       CALL    DO-WALK,P?SOUTH
+       RSTACK  
+?CCL21:        EQUAL?  HERE,LIBRARY \?CCL23
+       CALL    DO-WALK,P?EAST
+       RSTACK  
+?CCL23:        EQUAL?  HERE,BEDROOM \?CCL25
+       CALL    DO-WALK,P?DOWN
+       RSTACK  
+?CCL25:        PRINT   LOOK-AROUND
+       RTRUE   
+?CCL14:        EQUAL?  PRSA,V?LOOK-INSIDE \?CCL27
+       EQUAL?  HERE,MAIN-ENTRANCE,TRADE-ENTRANCE,LAWN /?CTR29
+       EQUAL?  HERE,BY-HOUSE \?CCL30
+?CTR29:        PRINT   CANT-FROM-HERE
+       RTRUE   
+?CCL30:        CALL    V-LOOK
+       RSTACK  
+?CCL27:        EQUAL?  PRSA,V?EXAMINE \FALSE
+       EQUAL?  HERE,CREWS-QUARTERS \?CCL37
+       PRINTI  "Bathed in moonbeams and candlelight, the house squats at the crest of a cliff. The upstairs window is dark"
+       PRINT   PCR
+       RTRUE   
+?CCL37:        CALL    SHIP-BOARD,HERE
+       ZERO?   STACK /?PRD41
+       CALL    INNER-DECK,HERE
+       ZERO?   STACK /?CTR38
+?PRD41:        EQUAL?  HERE,BEACH \?CCL39
+?CTR38:        PRINT   YOU-CANT
+       PRINTI  "make out much of the house from this angle"
+       PRINT   PCR
+    &nbs