-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathvenus.zap
1319 lines (1212 loc) · 35.6 KB
/
venus.zap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.FUNCT VENUS-F
EQUAL? PRSA,V?EXAMINE \?ELS5
CALL V-LOOK
RSTACK
?ELS5: EQUAL? PRSA,V?EXIT,V?DISEMBARK,V?LEAVE \FALSE
PRINTR "How?"
.FUNCT JUNGLE-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
IN? FLYTRAP,HERE \?ELS5
CALL QUEUE,I-FLYTRAP,-1
RSTACK
?ELS5: EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are surrounded by hot, steamy, primitive rain forest. Judging by the overpowering heat, the excessive humidity, and "
IN? FLYTRAP,HERE \?ELS12
PRINTI "especially by the gigantic "
PRINTD FLYTRAP
PRINTI " sidling your way, "
JUMP ?CND10
?ELS12: PRINTI "the odd flora, "
?CND10: PRINTI "you must be in the death-clogged jungles of Venus.
A path runs east-west through the jungle"
IN? FLYTRAP,HERE \?CND15
PRINTI ", but don't even think about going west unless you love wading into four tons of "
ZERO? MALE \?CND18
PRINTI "wo"
?CND18: PRINTI "man-eating lettuce"
?CND15: PRINTI "."
RTRUE
.FUNCT PASS-FLYTRAP-F
IN? FLYTRAP,HERE \?ELS5
PRINTI "Despite being warned, you walk right into the orifice of the "
PRINTD FLYTRAP
PRINTI ". "
CALL FLYTRAP-DEATH
RSTACK
?ELS5: EQUAL? HERE,JUNGLE \?ELS7
RETURN SPAWNING-GROUND
?ELS7: RETURN JUNGLE
.FUNCT FLYTRAP-DEATH
PRINTI "A little known fact about "
PRINTD FLYTRAP
PRINTI "s: they secrete an enzyme which stimulates the pleasure centers of their victim. Hence, you experience "
ZERO? NAUGHTY-LEVEL \?ELS3
PRINTI "a feeling similar to eating a really good hot fudge sundae"
JUMP ?CND1
?ELS3: PRINTI "multiple orgasms"
?CND1: CALL JIGS-UP,STR?342
RSTACK
.FUNCT FLYTRAP-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTI "It looks just like the Terrestrial variety -- except that "
PRINTD FLYTRAP
PRINTI "s on Earth"
PRINT EVOLVED
PRINTI "n ounce, and Venusian "
PRINTD FLYTRAP
PRINTI "s"
PRINT EVOLVED
PRINTI " ton. Oh, one other thing. Terrestrial "
PRINTD FLYTRAP
PRINTR "s don't usually stalk their prey."
?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS7
EQUAL? FOLLOW-FLAG,9 \?ELS12
CALL DO-WALK,P?WEST
RSTACK
?ELS12: EQUAL? FOLLOW-FLAG,10 \?ELS14
CALL PERFORM,V?DISEMBARK,TREE-HOLE
RTRUE
?ELS14: EQUAL? FOLLOW-FLAG,11 \FALSE
CALL PERFORM,V?ENTER,TREE-HOLE
RTRUE
?ELS7: CALL TOUCHING?,FLYTRAP
ZERO? STACK /FALSE
PRINTR "You don't want to get that close to the flytrap -- and it has nothing to do with its breath."
.FUNCT I-FLYTRAP
INC 'FLYTRAP-COUNTER
PRINTI " "
IN? FLYTRAP,HERE /?ELS5
SET 'FLYTRAP-COUNTER,0
EQUAL? HERE,CLEARING \?ELS10
ZERO? LEAVES-PLACED /?ELS13
ZERO? TOO-LATE \?ELS13
CALL TRAP-FLYTRAP
PRINTI "You hear a crash from the west"
JUMP ?CND11
?ELS13: MOVE FLYTRAP,JUNGLE
SET 'TOO-LATE,FALSE-VALUE
CALL DEQUEUE,I-FLYTRAP
SET 'FOLLOW-FLAG,9
CALL QUEUE,I-FOLLOW,2
PRINTI "Holy tropism! The "
PRINTD FLYTRAP
PRINTI " loses interest in you and crawls away"
?CND11: PRINT PERIOD-CR
RTRUE
?ELS10: MOVE FLYTRAP,HERE
ZERO? LEAVES-PLACED \?CND20
SET 'TOO-LATE,TRUE-VALUE
?CND20: PRINTI "As"
CALL TPRINT,FLYTRAP
PRINTR " scurries along, you dash to the eastern side of the hole in order to be as far from it as possible."
?ELS5: IN? PROTAGONIST,TREE-HOLE \?ELS24
MOVE FLYTRAP,JUNGLE
SET 'FOLLOW-FLAG,10
CALL QUEUE,I-FOLLOW,2
SET 'TOO-LATE,FALSE-VALUE
SET 'FLYTRAP-COUNTER,0
CALL DEQUEUE,I-FLYTRAP
PRINTI "The "
PRINTD FLYTRAP
PRINTR " peers down, decides that it's not worth getting trapped for such a measly scrap of meat, and shuffles away."
?ELS24: EQUAL? FLYTRAP-COUNTER,1 \?ELS26
FSET? FLYTRAP,TOUCHBIT \?ELS26
EQUAL? HERE,JUNGLE \?ELS26
PRINTI "Flies must be in short supply, because the "
PRINTD FLYTRAP
PRINTR " nearby expectantly rustles a few stalks and begins creeping in your direction."
?ELS26: LESS? FLYTRAP-COUNTER,4 \?ELS30
FSET FLYTRAP,TOUCHBIT
PRINTI "The "
PRINTD FLYTRAP
PRINTI " sidles "
EQUAL? HERE,FORK-OF-SORTS \?ELS35
ZERO? LEAVES-PLACED /?THN38
ZERO? TOO-LATE /?ELS35
?THN38: PRINTR "around the hole toward you."
?ELS35: PRINTR "closer."
?ELS30: EQUAL? HERE,FORK-OF-SORTS \?ELS43
ZERO? LEAVES-PLACED /?ELS43
ZERO? TOO-LATE \?ELS43
CALL TRAP-FLYTRAP
PRINTR "Never before has splintering wood sounded so sweet or tossed salad looked so lovely. The amazing flying flytrap tumbles into your flytrap trap, covered with leaves and bits of shattered trellis, giving the plant the amusing appearance of a tar-and-feather victim."
?ELS43: CALL FLYTRAP-DEATH
RSTACK
.FUNCT TRAP-FLYTRAP
FSET FLYTRAP,MUNGBIT
CALL INCREMENT-SCORE,2,15
MOVE FLYTRAP,TREE-HOLE
SET 'FOLLOW-FLAG,11
CALL QUEUE,I-FOLLOW,2
CALL ROB,TRELLIS,TREE-HOLE
REMOVE TRELLIS
FCLEAR FLYTRAP,NDESCBIT
CALL UNDO-TRAP
CALL DEQUEUE,I-FLYTRAP
RSTACK
.FUNCT SPAWNING-GROUND-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "As if this hasn't already been a rough enough day, you have stumbled upon a spawning ground for Venusian slime beasts. "
PRINT OOZY-WITH-SLIME
PRINTI " Fortunately, these beasts are still in the earliest (and least deadly) stage. Only one spot is free of slime:"
CALL TPRINT,HOLE
PRINTI " near the path to the east."
RTRUE
.FUNCT CREAM-F
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5
CALL EXAMINE-CREAM-AND-STAIN
RSTACK
?ELS5: EQUAL? PRSA,V?READ \?ELS7
PRINTI "The jar is marked ""Un"
FSET? CREAM,UNTEEDBIT /?CND8
PRINTI "t"
?CND8: PRINTR "angling cream."""
?ELS7: EQUAL? PRSA,V?EMPTY \?ELS12
EQUAL? PRSO,CREAM \?ELS12
ZERO? PRSI \?CND15
PUT P-NAMW,1,FALSE-VALUE
SET 'PRSI,GROUND
?CND15: FSET? CREAM,MUNGBIT \?ELS22
PRINT ALREADY-IS
RTRUE
?ELS22: PUT P-NAMW,0,W?CREAM
CALL PERFORM,V?PUT-ON,CREAM,PRSI
RTRUE
?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS26
CALL NO-LID
RSTACK
?ELS26: EQUAL? PRSA,V?EAT \?ELS28
PRINT YECHH
RTRUE
?ELS28: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE
EQUAL? PRSO,CREAM \FALSE
GET P-NAMW,0
EQUAL? STACK,W?JAR,FALSE-VALUE /FALSE
FSET? CREAM,MUNGBIT \?CND33
CALL EXAMINE-CREAM-AND-STAIN
RTRUE
?CND33: MOVE CREAM,PROTAGONIST
FSET CREAM,MUNGBIT
PRINTI "As the lotion soaks in,"
FSET? CREAM,UNTEEDBIT \?ELS40
EQUAL? PRSI,THETA \?ELS40
MOVE EIGHTY-TWO-DEGREE-ANGLE,THRONE-ROOM
FCLEAR THETA,MUNGBIT
FCLEAR THETA,NDESCBIT
FSET THETA,ACTORBIT
FSET THETA,FEMALEBIT
FSET THETA,NARTICLEBIT
PUTP THETA,P?SDESC,STR?346
CALL INCREMENT-SCORE,16,10,TRUE-VALUE
PRINTI " the angle slowly transforms into a beautiful princess. Mitre, gushing tears of happiness, cries, ""You have restored my beloved Theta to me!"" He reveals a perfect "
CALL DPRINT,EIGHTY-TWO-DEGREE-ANGLE
PRINTI ". ""I only brushed against it,"" explains the King. ""Please accept it, along with my thanks."" He reaches out to shake "
PRINTD HANDS
PRINT PERIOD-CR
RTRUE
?ELS40: EQUAL? PRSI,PILE-OF-ANGLES \?ELS44
FSET? CREAM,UNTEEDBIT \?ELS44
CALL JIGS-UP,STR?347
RSTACK
?ELS44: EQUAL? PRSI,ME \?ELS48
PRINTR " your skin tingles a bit."
?ELS48: CALL TPRINT-PRSI
PRINTI " seem"
FSET? PRSI,PLURALBIT /?CND51
PRINTI "s"
?CND51: PRINTI " unchanged. "
EQUAL? PRSI,MITRE \?ELS58
FSET? CREAM,UNTEEDBIT \?ELS58
PRINTR "(Like fighting a forest fire with a water pistol.)"
?ELS58: PRINTI "I guess "
FSET? PRSI,PLURALBIT \?ELS65
PRINTI "they were"
JUMP ?CND63
?ELS65: FSET? PRSI,FEMALEBIT \?ELS70
PRINTI "she"
JUMP ?CND68
?ELS70: FSET? PRSI,ACTORBIT \?ELS72
PRINTI "he"
JUMP ?CND68
?ELS72: PRINTI "it"
?CND68: PRINTI " was"
?CND63: PRINTI "n't very "
FSET? CREAM,UNTEEDBIT /?CND75
PRINTI "t"
?CND75: PRINTR "angled."
.FUNCT FORK-OF-SORTS-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
FSET? HERE,TOUCHBIT /?ELS5
ZERO? VERBOSITY /?ELS5
PRINTI "A mighty tree rises before you in the center of the path. Suddenly and without warning (as is the nature of the jungle) it dies. Within seconds, the tree is consumed by Venusian hypertermites, which then move off in search of other dead trees, leaving a massive hole in the ground."
CRLF
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-LOOK \FALSE
PRINTI "This jungle path once split here, went around a mighty tree, and rejoined off to the east. Now, it splits here, goes around a "
ZERO? LEAVES-PLACED /?ELS12
PRINTD LEAVES
JUMP ?CND10
?ELS12: PRINTI "mighty hole"
?CND10: PRINTI ", and rejoins off to the east."
RTRUE
.FUNCT TREE-HOLE-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
PRINT HUH
RTRUE
?ELS5: EQUAL? PRSA,V?DISEMBARK \?ELS7
IN? PROTAGONIST,TREE-HOLE \?ELS7
PRINT YOU-CANT
PRINTR "climb out. You're trapped."
?ELS7: EQUAL? PRSA,V?REACH-IN \?ELS11
IN? FLYTRAP,TREE-HOLE \?ELS11
PRINTI "The "
PRINTD FLYTRAP
PRINTI " pulls you in. "
CALL FLYTRAP-DEATH
RSTACK
?ELS11: EQUAL? PRSA,V?BOARD \?ELS15
FSET? TRELLIS,MUNGBIT \?ELS20
PRINTR "The hole's covered."
?ELS20: CALL ULTIMATELY-IN?,TRELLIS
ZERO? STACK /?ELS22
PRINT TRELLIS-TOO-WIDE
RTRUE
?ELS22: IN? FLYTRAP,TREE-HOLE \FALSE
PRINTI "Hey! There's a big, hungry, angry "
PRINTD FLYTRAP
CALL JIGS-UP,STR?348
RSTACK
?ELS15: EQUAL? PRSA,V?MEASURE \?ELS26
PRINTR "The hole is about six feet across."
?ELS26: EQUAL? PRSA,V?WALK-AROUND \?ELS28
IN? FLYTRAP,HERE \?ELS33
PRINTI "You circle the hole completely, with"
CALL TPRINT,FLYTRAP
PRINTR " in hot pursuit."
?ELS33: CALL WEE
RSTACK
?ELS28: EQUAL? PRSA,V?LOOK-INSIDE \?ELS37
ZERO? LEAVES-PLACED /?ELS37
CALL PERFORM,V?BOARD,TREE-HOLE
RTRUE
?ELS37: EQUAL? PRSA,V?PUT-ON \?ELS41
EQUAL? PRSO,LEAVES \?ELS41
FSET? TRELLIS,MUNGBIT \?ELS41
CALL PERFORM-PRSA,LEAVES,TRELLIS
RTRUE
?ELS41: EQUAL? PRSA,V?EXAMINE \?ELS45
FSET? TRELLIS,MUNGBIT \?ELS45
CALL DESCRIBE-TRELLIS-ON-HOLE
CRLF
RTRUE
?ELS45: EQUAL? PRSA,V?UNCOVER \?ELS49
FSET? TRELLIS,MUNGBIT \?ELS49
CALL PERFORM,V?MOVE,TRELLIS
RTRUE
?ELS49: EQUAL? PRSA,V?HIDE \FALSE
IN? FLYTRAP,HERE \FALSE
CALL PERFORM,V?WALK-AROUND,TREE-HOLE
RTRUE
.FUNCT CLEARING-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a tiny anti-oasis of barrenness amidst the teeming Venusian jungle. Winding paths enter the jungle in most directions."
RTRUE
.FUNCT CLEARING-EXIT-F
PRINTI "You walk swiftly down the trail! It turns! It twists! It narrows! Vines grab at your ankles and bird-sized insects close in for a kill! Suddenly"
PRINT ELLIPSIS
EQUAL? PRSO,P?NE \?ELS5
RETURN FRONT-DOOR
?ELS5: EQUAL? PRSO,P?NW \?ELS7
RETURN BACK-DOOR
?ELS7: CALL DESCRIBE-ROOM
IN? SIDEKICK,HERE \FALSE
CALL NORMAL-SIDEKICK-FOLLOW
RFALSE
.FUNCT STAIN-F
FSET? STAIN,UNTEEDBIT /FALSE
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS7
CALL EXAMINE-CREAM-AND-STAIN
RSTACK
?ELS7: EQUAL? PRSA,V?APPLY \?ELS9
CALL GLOBAL-IN?,HOLE,HERE
ZERO? STACK /?ELS9
CALL APPLY-STAIN,HOLE
RSTACK
?ELS9: EQUAL? PRSA,V?EMPTY \?ELS13
EQUAL? PRSO,STAIN \?ELS13
FSET? STAIN,MUNGBIT \?ELS20
CALL EXAMINE-CREAM-AND-STAIN
RSTACK
?ELS20: ZERO? PRSI /?THN23
EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN23
EQUAL? PRSI,TREE-HOLE \?ELS22
?THN23: FSET STAIN,MUNGBIT
PRINTR "Done. What a waste of good stain!"
?ELS22: CALL APPLY-STAIN,PRSI
RSTACK
?ELS13: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS28
CALL NO-LID
RSTACK
?ELS28: EQUAL? PRSA,V?DRINK \?ELS30
PRINT YECHH
RTRUE
?ELS30: EQUAL? PRSA,V?POUR \?ELS32
EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN35
EQUAL? PRSI,TREE-HOLE \?ELS32
?THN35: CALL PERFORM,V?EMPTY,STAIN,GROUND
RTRUE
?ELS32: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE
EQUAL? PRSO,STAIN \FALSE
CALL NOUN-USED,W?STAIN,STAIN
ZERO? STACK /FALSE
CALL APPLY-STAIN,PRSI
RSTACK
.FUNCT APPLY-STAIN,OBJ
FSET? STAIN,MUNGBIT \?ELS5
SET 'PRSO,STAIN
CALL EXAMINE-CREAM-AND-STAIN
RSTACK
?ELS5: EQUAL? OBJ,HOLE \?ELS7
CALL THIS-IS-IT,HOLE
PRINTI "The circle is "
CALL CIRCLE-ISNT-BLACK
ZERO? STACK /?ELS10
SET 'CIRCLE-BLACK,TRUE-VALUE
FSET STAIN,MUNGBIT
PUT P-ADJW,0,FALSE-VALUE
PUT P-ADJW,1,FALSE-VALUE
PUTP HOLE,P?SDESC,STR?132
PRINTI "once again"
JUMP ?CND8
?ELS10: PRINTI "already"
?CND8: PRINTR " black!"
?ELS7: EQUAL? OBJ,FLYTRAP \?ELS14
CALL PERFORM,V?TOUCH,FLYTRAP
RTRUE
?ELS14: PRINTI "You apply a tiny dab to"
CALL TPRINT,OBJ
PRINTR " but it doesn't stick."
.FUNCT EXAMINE-CREAM-AND-STAIN
PRINTI "The "
CALL DPRINT,PRSO
PRINTI " is "
FSET? PRSO,MUNGBIT \?ELS3
PRINTI "empty"
JUMP ?CND1
?ELS3: PRINTI "full"
?CND1: EQUAL? PRSA,V?EXAMINE \?CND6
PRINTI ", and has some writing on it"
?CND6: PRINT PERIOD-CR
RTRUE
.FUNCT BACK-DOOR-F,RARG
EQUAL? RARG,M-ENTER \FALSE
CALL QUEUE,I-SALESMAN,-1
RSTACK
.FUNCT SALESMAN-F
EQUAL? SALESMAN,WINNER \?ELS5
CALL QUEUE,I-SALESMAN,2
EQUAL? PRSA,V?WHAT \?ELS14
EQUAL? PRSO,LGOP /?THN11
?ELS14: EQUAL? PRSA,V?TELL-ABOUT \?ELS10
EQUAL? PRSO,ME \?ELS10
EQUAL? PRSI,LGOP \?ELS10
?THN11: PRINTR """I know the ones you mean. Made a fortune in interplanetary shoe and briefcase peddling. They really know the territory."""
?ELS10: PRINTI """Let's cut the gab and cut a deal instead!"""
CRLF
CALL STOP
RSTACK
?ELS5: EQUAL? PRSA,V?GIVE \?ELS20
EQUAL? PRSI,SALESMAN \?ELS20
EQUAL? PRSO,FLASHLIGHT \?ELS27
REMOVE FLASHLIGHT
MOVE ODD-MACHINE,HERE
FCLEAR ODD-MACHINE,TRYTAKEBIT
REMOVE SALESMAN
SET 'FOLLOW-FLAG,8
CALL QUEUE,I-FOLLOW,2
CALL INCREMENT-SCORE,3,7
CALL EAGERLY-ACCEPTS
PRINTI ", mentioning that he knows a Plutonian plutocrat who'll trade his life fortune for one, and drops"
CALL APRINT,ODD-MACHINE
PRINTI " at your feet. ""It's a TEE remover,"" he explains. You ponder what it removes -- tea stains, hallway T-intersections -- even TV star Mr. T crosses your mind, until you recall that it's only 1936. But before you have a chance to ask the salesman, he "
FSET? FLASHLIGHT,ONBIT \?ELS30
PRINTI "points"
CALL TPRINT,FLASHLIGHT
PRINTI " upwards"
JUMP ?CND28
?ELS30: PRINTI "turns on"
CALL TPRINT,FLASHLIGHT
?CND28: PRINTI " and a giant Venusian MegaMoth swoops down and carries him off. The other salesmen scatter like frightened salesmen."
CRLF
RETURN 8
?ELS27: CALL QUEUE,I-SALESMAN,2
EQUAL? PRSO,ONE-MARSMID-COIN,TEN-MARSMID-COIN \?ELS39
CALL PERFORM,V?BUY,ODD-MACHINE
RTRUE
?ELS39: CALL PICK-ONE,SALESMAN-REFUSALS
PRINT STACK
?CND37: PRINTR " Offer me something else."""
?ELS20: EQUAL? PRSA,V?SHOW \?ELS47
EQUAL? PRSO,FLASHLIGHT /?THN44
?ELS47: EQUAL? PRSA,V?ASK-ABOUT \?ELS43
EQUAL? PRSI,FLASHLIGHT \?ELS43
?THN44: PRINTR "The salesman tries to look disinterested."
?ELS43: EQUAL? PRSA,V?FOLLOW \?ELS51
EQUAL? FOLLOW-FLAG,8 \?ELS51
PRINT DONT-WANT-TO
RTRUE
?ELS51: EQUAL? PRSA,V?BARTER-WITH \?ELS55
PRINTR "Just give him something!"
?ELS55: EQUAL? PRSA,V?COUNT \FALSE
PRINTR "Lots."
.FUNCT I-SALESMAN
CALL QUEUE,I-SALESMAN,-1
IN? SALESMAN,HERE /?CND1
FCLEAR SALESMAN,TOUCHBIT
CALL DEQUEUE,I-SALESMAN
RFALSE
?CND1: PRINTI " "
FSET? SALESMAN,TOUCHBIT \?ELS8
CALL PICK-ONE,SALESMANISMS
PRINT STACK
CRLF
RTRUE
?ELS8: FSET SALESMAN,TOUCHBIT
FCLEAR ODD-MACHINE,NDESCBIT
CALL THIS-IS-IT,SALESMAN
PRINTI "A salesman approaches you. ""You look like a "
ZERO? MALE /?ELS13
PRINTI "fella"
JUMP ?CND11
?ELS13: PRINTI "doll"
?CND11: PRINTR " who can spot a good deal. One of my machines could change your life! Let's barter; offer me something as an even-up trade."""
.FUNCT ODD-MACHINE-F,OBJ-IN-MACHINE
FIRST? ODD-MACHINE >OBJ-IN-MACHINE /?KLU81
?KLU81: EQUAL? PRSA,V?BUY \?ELS5
IN? ODD-MACHINE,SALESMAN \?ELS5
CALL QUEUE,I-SALESMAN,2
PRINTR """I wouldn't part with this baby for a hundred marsmids!"""
?ELS5: EQUAL? PRSA,V?PUT \?ELS9
FSET? ODD-MACHINE,OPENBIT \?ELS9
EQUAL? PRSI,ODD-MACHINE \?ELS9
ZERO? OBJ-IN-MACHINE /?ELS16
EQUAL? PRSO,OBJ-IN-MACHINE /?ELS16
PRINT ONLY-ONE-THING-IN-COMPARTMENT
RTRUE
?ELS16: EQUAL? PRSO,BABY \?ELS20
PRINTR "The baby cries so ferociously, you reconsider."
?ELS20: FIRST? PRSO \FALSE
PRINT YOULL-HAVE-TO
PRINTI "empty"
CALL TPRINT-PRSO
PRINTI " first. "
PRINT ONLY-ONE-THING-IN-COMPARTMENT
RTRUE
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS24
PRINTI "The "
PRINTD ODD-MACHINE
PRINTI " is off, and has a small, "
CALL OPEN-CLOSED,ODD-MACHINE
PRINTI " compartment"
ZERO? OBJ-IN-MACHINE /?CND25
FSET? ODD-MACHINE,OPENBIT \?CND25
PRINTI " containing"
CALL APRINT,OBJ-IN-MACHINE
?CND25: PRINT PERIOD-CR
RTRUE
?ELS24: EQUAL? PRSA,V?ON,V?OPEN,V?TAKE \?ELS31
FSET? ODD-MACHINE,TRYTAKEBIT \?ELS31
CALL QUEUE,I-SALESMAN,2
PRINTR """Hey!"" The salesman jumps back. ""No deal, no merchandise."""
?ELS31: EQUAL? PRSA,V?BARTER-FOR \?ELS35
EQUAL? PRSI,ODD-MACHINE \?ELS40
CALL PERFORM,V?GIVE,PRSO,SALESMAN
RTRUE
?ELS40: CALL PERFORM,V?BARTER-WITH,SALESMAN
RTRUE
?ELS35: EQUAL? PRSA,V?OFF \?ELS44
PRINT ALREADY-IS
RTRUE
?ELS44: EQUAL? PRSA,V?ON \?ELS46
FSET? ODD-MACHINE,OPENBIT \?ELS51
PRINT NOTHING-HAPPENS
RTRUE
?ELS51: ZERO? OBJ-IN-MACHINE /?ELS56
GETP OBJ-IN-MACHINE,P?NO-T-DESC
ZERO? STACK /?ELS56
EQUAL? OBJ-IN-MACHINE,TUBE,TORCH \?CND59
FSET OBJ-IN-MACHINE,VOWELBIT
?CND59: EQUAL? OBJ-IN-MACHINE,TORCH \?CND62
CALL DEQUEUE,I-TORCH
?CND62: FCLEAR OBJ-IN-MACHINE,CONTBIT
FCLEAR OBJ-IN-MACHINE,SEARCHBIT
FCLEAR OBJ-IN-MACHINE,OPENBIT
FCLEAR OBJ-IN-MACHINE,READBIT
FCLEAR OBJ-IN-MACHINE,VEHBIT
FCLEAR OBJ-IN-MACHINE,WEARBIT
FCLEAR OBJ-IN-MACHINE,ONBIT
FCLEAR OBJ-IN-MACHINE,SURFACEBIT
FSET OBJ-IN-MACHINE,UNTEEDBIT
JUMP ?CND54
?ELS56: EQUAL? OBJ-IN-MACHINE,RABBIT \?CND54
FSET RABBIT,UNTEEDBIT
?CND54: EQUAL? OBJ-IN-MACHINE,CHOCOLATE \?CND67
FSET? CHOCOLATE,SMELLEDBIT /?CND67
FCLEAR CHOCOLATE,UNTEEDBIT
?CND67: PRINTR "Sparks! Explosions! ""Pockita pockita pockita FEEP!"" exclaims the machine."
?ELS46: EQUAL? PRSA,V?OPEN \FALSE
IN? RABBIT,ODD-MACHINE \FALSE
FSET? RABBIT,UNTEEDBIT \FALSE
FSET ODD-MACHINE,OPENBIT
REMOVE RABBIT
PRINTI "A bearded rabbi wearing a prayer shawl leaps out of the machine, recites a Torah blessing, and "
EQUAL? HERE,CANAL,IN-SPACE \?ELS78
PRINTI "swim"
JUMP ?CND76
?ELS78: PRINTI "dashe"
?CND76: PRINTR "s off in search of a minyan."
.FUNCT MAD-SCIENTIST-DOOR-F
EQUAL? PRSA,V?KNOCK \FALSE
EQUAL? HERE,LOOKS-CAN-BE-DECEIVING /FALSE
FSET? CAGE,MUNGBIT /FALSE
FSET PRSO,OPENBIT
PRINTI "The door is thrown open by a wild-eyed "
PRINTD MAD-SCIENTIST
PRINTI ". """
FSET? LOOKS-CAN-BE-DECEIVING,TOUCHBIT \?ELS10
PRINTI "Ach! You haf returned! Ve can continue der experiment!"
JUMP ?CND8
?ELS10: PRINTI "Nein! Nein! Nein! I don't need any!"" Then, taking a closer look at you through spectacles thick enough to stop gamma rays, he says, ""Oh! Not ein salesman! In fact, just der type I need for mein experiment."
?CND8: CALL ULTIMATELY-IN?,FLEXIBLE-HOLE
ZERO? STACK /?CND13
PRINTI " But leaf your "
IN? FLEXIBLE-HOLE,TUBE \?ELS18
PRINTD TUBE
MOVE TUBE,HERE
JUMP ?CND16
?ELS18: PRINTD FLEXIBLE-HOLE
MOVE FLEXIBLE-HOLE,HERE
?CND16: PRINTI " outsite,"" he says, knocking it to the ground, ""I'm allergic."
?CND13: PRINTI """ He grips your wrist with surprising strength and drags you inside."
CRLF
CRLF
MOVE MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING
CALL GOTO,LOOKS-CAN-BE-DECEIVING
RSTACK
.FUNCT LOOKS-CAN-BE-DECEIVING-F,RARG,OPEN-DOOR=0
FSET? FRONT-DOOR-OBJECT,OPENBIT \?ELS3
SET 'OPEN-DOOR,FRONT-DOOR-OBJECT
JUMP ?CND1
?ELS3: FSET? BACK-DOOR-OBJECT,OPENBIT \?CND1
SET 'OPEN-DOOR,BACK-DOOR-OBJECT
?CND1: EQUAL? RARG,M-LOOK \?ELS10
PRINTI "From the innocent appearance of this quiet living area, you'd never guess that all sorts of twisted, maniacal, perverted experiments are in progress a short flight of stairs below. There are doors to the north"
EQUAL? OPEN-DOOR,BACK-DOOR-OBJECT \?CND11
PRINTI " (open)"
?CND11: PRINTI " and south"
EQUAL? OPEN-DOOR,FRONT-DOOR-OBJECT \?CND14
PRINTI " (open)"
?CND14: ZERO? OPEN-DOOR \?CND17
PRINTI ", both closed"
?CND17: PRINTI "."
RTRUE
?ELS10: EQUAL? RARG,M-END \FALSE
ZERO? OPEN-DOOR /FALSE
CALL QUEUE,I-MAD-SCIENTIST,2
FCLEAR OPEN-DOOR,OPENBIT
PRINTI " You feel uneasy as"
CALL TPRINT,MAD-SCIENTIST
PRINTR " locks the door behind you and dissolves the key in a vat of acid."
.FUNCT MAD-SCIENTIST-F,OARG=0
ZERO? OARG /?ELS5
ZERO? IMPATIENCE-COUNTER /FALSE
EQUAL? OARG,M-OBJDESC? /TRUE
PRINTI " The wild-eyed "
PRINTD MAD-SCIENTIST
PRINTI " is "
GET MAD-SCIENTIST-DESCS,MAD-SCIENTIST-COUNTER
PRINT STACK
RTRUE
?ELS5: EQUAL? MAD-SCIENTIST,WINNER \?ELS13
EQUAL? PRSA,V?WHAT \?ELS22
EQUAL? PRSO,LGOP /?THN19
?ELS22: EQUAL? PRSA,V?TELL-ABOUT \?ELS18
EQUAL? PRSO,ME \?ELS18
EQUAL? PRSI,LGOP \?ELS18
?THN19: PRINTI """Eh?"" yells"
CALL TPRINT,MAD-SCIENTIST
PRINTR ", cupping his ear. ""Heather bodices of no-doze? Vat in heck are you jabbering about?"""
?ELS18: PRINTI "The "
PRINTD MAD-SCIENTIST
PRINTI " ignores you, cackling with inner glee."
CRLF
CALL STOP
RSTACK
?ELS13: EQUAL? PRSA,V?FOLLOW \FALSE
EQUAL? FOLLOW-FLAG,17 \FALSE
CALL DO-WALK,P?NORTH
RSTACK
.FUNCT I-MAD-SCIENTIST
PRINTI " "
ZERO? MAD-SCIENTIST-COUNTER \?ELS5
INC 'IMPATIENCE-COUNTER
CALL QUEUE,I-MAD-SCIENTIST,2
EQUAL? IMPATIENCE-COUNTER,1 \?ELS10
PRINTI """Let us retire to der laboratory,"" suggests"
CALL TRPRINT,MAD-SCIENTIST
RSTACK
?ELS10: EQUAL? IMPATIENCE-COUNTER,2 \?ELS12
PRINTI """Downstairs, please,"" says"
CALL TPRINT,MAD-SCIENTIST
PRINTR ", impatiently."
?ELS12: EQUAL? IMPATIENCE-COUNTER,3 \?ELS14
PRINTI "The "
PRINTD MAD-SCIENTIST
PRINTR ", fidgeting himself into a frenzy, motions toward the stairs."
?ELS14: PRINTI "The "
PRINTD MAD-SCIENTIST
PRINTI " loses his patience and opens the trapdoor, dumping you"
CALL AND-SIDEKICK,LABORATORY
PRINTI " down a chute"
PRINT ELLIPSIS
CALL GOTO,LABORATORY
CALL LABORATORY-F,M-END
RTRUE
?ELS5: EQUAL? MAD-SCIENTIST-COUNTER,1 \?ELS18
MOVE PROTAGONIST,FIRST-SLAB
CALL QUEUE,I-MAD-SCIENTIST,3
SET 'MAD-SCIENTIST-COUNTER,2
SET 'BODY-TIED-TO-SLAB,TRUE-VALUE
PRINTI "Again exhibiting extraordinary strength,"
CALL TPRINT,MAD-SCIENTIST
PRINTI " straps you down on"
CALL TPRINT,FIRST-SLAB
CALL VISIBLE?,SIDEKICK
ZERO? STACK /?CND19
MOVE SIDEKICK,SECOND-SLAB
SET 'SIDEKICKS-BODY-TIED-TO-SLAB,TRUE-VALUE
PRINTI " and "
CALL DPRINT-SIDEKICK
PRINTI " onto"
CALL TPRINT,SECOND-SLAB
?CND19: PRINT PERIOD-CR
RTRUE
?ELS18: EQUAL? MAD-SCIENTIST-COUNTER,2 \?ELS23
CALL QUEUE,I-MAD-SCIENTIST,6
SET 'MAD-SCIENTIST-COUNTER,3
CALL IDENTITY-TRANSFER
PRINTI "The "
PRINTD MAD-SCIENTIST
PRINTI " flips"
CALL TPRINT,POWER-SWITCH
PRINTI ", and you suddenly find yourself within the cage. Oddly, you can also see yourself still strapped to"
CALL TPRINT,FIRST-SLAB
PRINTR ". As you swing across the cage to get a better look, you realize that you're now inside the body of a gorilla."
?ELS23: EQUAL? MAD-SCIENTIST-COUNTER,3 \FALSE
CALL MINE-THEORY
RSTACK
.FUNCT LABORATORY-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
CALL QUEUED?,I-ION-DEATH
ZERO? STACK /?ELS5
FSET POWER-TRANSMITTER,MUNGBIT
CALL QUEUE,I-ION-DEATH,1
RSTACK
?ELS5: EQUAL? RARG,M-LOOK \?ELS9
PRINTI "The scientist's madness is finally evident by his lab, filled with many expressions of insane genius, such as the "
FSET? MALE-GORILLA,NDESCBIT \?ELS12
FSET? FEMALE-GORILLA,NDESCBIT \?ELS12
PRINTI "two caged gorillas, one male and one female"
JUMP ?CND10
?ELS12: PRINTI "cage"
?CND10: PRINTI ", the two slabs for strapping down human victims, and"
CALL TPRINT,POWER-SWITCH
PRINTI ". A closed door leads north; at the foot of the winding stone stairs is"
CALL APRINT,HOLE
PRINTI "."
RTRUE
?ELS9: EQUAL? RARG,M-END \FALSE
IN? MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING \FALSE
FCLEAR MALE-GORILLA,NDESCBIT
FCLEAR FEMALE-GORILLA,NDESCBIT
MOVE MAD-SCIENTIST,HERE
CALL QUEUE,I-MAD-SCIENTIST,5
SET 'MAD-SCIENTIST-COUNTER,1
PRINTI " The "
PRINTD MAD-SCIENTIST
PRINTR " bounds down from the first floor, activating a (guaranteed 100% effective) Vaporo-Zap Energy Barrier across the foot of the stairs."
.FUNCT LAB-DOOR-ENTER-F
CALL DO-FIRST,STR?364
RFALSE
.FUNCT LAB-DOOR-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
CALL PERFORM-PRSA,BACK-DOOR-OBJECT
RTRUE
?ELS5: EQUAL? PRSA,V?KNOCK \FALSE
CALL PERFORM-PRSA,WIDE-CELL-DOOR
RTRUE
.FUNCT STRAP-F
EQUAL? PRSA,V?OPEN,V?UNTIE \FALSE
CALL PERFORM,V?UNTIE,ME
RTRUE
.FUNCT POWER-SWITCH-F
CALL TOUCHING?,POWER-SWITCH
ZERO? STACK /?ELS5
IN? PROTAGONIST,HERE /?ELS5
CALL CANT-REACH,POWER-SWITCH
RSTACK
?ELS5: EQUAL? PRSA,V?OFF,V?ON,V?SET /?THN12
EQUAL? PRSA,V?PUSH,V?MOVE,V?THROW /?THN12
EQUAL? PRSA,V?OPEN,V?LOWER,V?RAISE /?THN12
EQUAL? PRSA,V?CLOSE \FALSE
?THN12: EQUAL? PRSO,POWER-SWITCH \FALSE
IN? MAD-SCIENTIST,HERE \?ELS18
PRINTI "The "
PRINTD MAD-SCIENTIST
PRINTR " stops you."
?ELS18: CALL IDENTITY-TRANSFER
PRINTI "Zap! You're back in "
ZERO? GONE-APE /?ELS23
PRINTI "the body of the "
ZERO? MALE \?CND25
PRINTI "fe"
?CND25: PRINTD MALE-GORILLA
PRINTI "."
JUMP ?CND21
?ELS23: FSET? RUBBER-HOSE,MUNGBIT /?CND30
FSET RUBBER-HOSE,MUNGBIT
CALL INCREMENT-SCORE,19,24,TRUE-VALUE
?CND30: MOVE MALE-GORILLA,CAGE
MOVE FEMALE-GORILLA,CAGE
PRINTI "your own body! The gorilla looks confused and slinks back into the comfortingly familiar environment of the cage."
?CND21: ZERO? BODY-TIED-TO-SLAB /?CND33
ZERO? SIDEKICKS-BODY-TIED-TO-SLAB \?CND33
CALL VISIBLE?,SIDEKICK
ZERO? STACK /?CND33
SET 'BODY-TIED-TO-SLAB,FALSE-VALUE
MOVE SIDEKICK,HERE
PRINTI " "
CALL DPRINT-SIDEKICK
PRINTI " rushes over and unties you."
?CND33: CRLF
RTRUE
.FUNCT IDENTITY-TRANSFER
CALL OPEN-EYES-AND-REMOVE-HANDS
ZERO? GONE-APE /?ELS5
ZERO? MALE /?ELS9
CALL ROB,PROTAGONIST,MALE-GORILLA
LOC PROTAGONIST
MOVE MALE-GORILLA,STACK
FCLEAR MALE-GORILLA,NDESCBIT
JUMP ?CND7
?ELS9: CALL ROB,PROTAGONIST,FEMALE-GORILLA
LOC PROTAGONIST
MOVE FEMALE-GORILLA,STACK
FCLEAR FEMALE-GORILLA,NDESCBIT
?CND7: CALL VISIBLE?,SIDEKICKS-BODY
ZERO? STACK /?CND13
LOC SIDEKICKS-BODY
MOVE SIDEKICK,STACK
REMOVE SIDEKICKS-BODY
?CND13: LOC YOUR-BODY
MOVE PROTAGONIST,STACK
CALL ROB,YOUR-BODY,PROTAGONIST
REMOVE YOUR-BODY
SET 'GONE-APE,FALSE-VALUE
RETURN GONE-APE
?ELS5: SET 'GONE-APE,TRUE-VALUE
LOC PROTAGONIST
MOVE YOUR-BODY,STACK
CALL ROB,PROTAGONIST,YOUR-BODY
ZERO? MALE /?ELS20
LOC MALE-GORILLA
MOVE PROTAGONIST,STACK
FSET MALE-GORILLA,NDESCBIT
CALL ROB,MALE-GORILLA,PROTAGONIST
JUMP ?CND18
?ELS20: LOC FEMALE-GORILLA
MOVE PROTAGONIST,STACK
FSET FEMALE-GORILLA,NDESCBIT
CALL ROB,FEMALE-GORILLA,PROTAGONIST
?CND18: CALL VISIBLE?,SIDEKICK
ZERO? STACK /FALSE
LOC SIDEKICK
MOVE SIDEKICKS-BODY,STACK
REMOVE SIDEKICK
RTRUE
.FUNCT LABORATORY-EXIT-F
CALL JIGS-UP,STR?365
RSTACK
.FUNCT CAGE-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTI "The bars "
FSET? CAGE,MUNGBIT \?ELS8
PRINTI "have been"
PRINT SPREAD-APART
JUMP ?CND6
?ELS8: PRINTI "seem sturdy"
?CND6: PRINT PERIOD-CR
RTRUE
?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER /?THN15
EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \?ELS12
?THN15: EQUAL? HERE,LABORATORY \?ELS12
FSET? CAGE,MUNGBIT /?ELS12
PRINTR "You don't fit between the bars."
?ELS12: EQUAL? PRSA,V?BEND,V?MUNG,V?OPEN /?THN19
EQUAL? PRSA,V?MOVE \?ELS18
CALL NOUN-USED,W?CAGE,CAGE
ZERO? STACK \?ELS18
?THN19: FSET? CAGE,MUNGBIT \?ELS27
PRINT SENILITY-STRIKES
RTRUE
?ELS27: ZERO? GONE-APE \?ELS29
PRINTR "This cage was built to hold an ape! Mere human strength is nothing against these bars!"
?ELS29: PRINTI "Bellowing madly, you pull at the bars! "
EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE \?ELS36
FSET CAGE,MUNGBIT
PRINTI "Slowly, they"
PRINT SPREAD-APART
PRINTI "."
IN? MAD-SCIENTIST,HERE \?ELS41
PRINTI " The "
PRINTD MAD-SCIENTIST
CALL JIGS-UP,STR?366
RSTACK
?ELS41: CRLF
RTRUE
?ELS36: PRINTR "They almost give, but you haven't got quite enough strength."
?ELS18: EQUAL? PRSA,V?PUT \?ELS47
EQUAL? PRSI,CAGE \?ELS47
LOC PROTAGONIST
EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS47
CALL CANT-REACH,CAGE
RSTACK
?ELS47: EQUAL? PRSA,V?REACH-IN \FALSE
IN? PROTAGONIST,CAGE \?ELS56
PRINT LOOK-AROUND
RTRUE
?ELS56: IN? RUBBER-HOSE,CAGE \FALSE
CALL CANT-REACH,RUBBER-HOSE
RSTACK
.FUNCT GORILLA-F
ZERO? GONE-APE /?ELS5
ZERO? MALE /?ELS5
EQUAL? PRSO,MALE-GORILLA \?ELS5
CALL PERFORM-PRSA,ME,PRSI
RTRUE
?ELS5: ZERO? GONE-APE /?ELS9
ZERO? MALE /?ELS9
EQUAL? PRSI,MALE-GORILLA \?ELS9
CALL PERFORM-PRSA,PRSO,ME
RTRUE
?ELS9: ZERO? GONE-APE /?ELS13
ZERO? MALE \?ELS13
EQUAL? PRSO,FEMALE-GORILLA \?ELS13
CALL PERFORM-PRSA,ME,PRSI
RTRUE
?ELS13: ZERO? GONE-APE /?ELS17
ZERO? MALE \?ELS17
EQUAL? PRSI,FEMALE-GORILLA \?ELS17
CALL PERFORM-PRSA,PRSO,ME
RTRUE
?ELS17: EQUAL? PRSA,V?TELL \?ELS21
PRINTI """Ooo oo ee ee ee!"""
CRLF
CALL STOP
RSTACK
?ELS21: EQUAL? PRSA,V?GIVE \?ELS23
EQUAL? PRSI,FEMALE-GORILLA,MALE-GORILLA \?ELS23
LOC PROTAGONIST
EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS30
CALL CANT-REACH,PRSI
RSTACK
?ELS30: CALL EAGERLY-ACCEPTS
PRINT PERIOD-CR
RTRUE
?ELS23: EQUAL? PRSA,V?EXAMINE \?ELS34
ZERO? GONE-APE /?ELS37
SET 'GORILLA-EXAMINED,TRUE-VALUE
CALL NOT-BAD-LOOKING
JUMP ?CND35
?ELS37: PRINTI "An uglier beast cannot possibly exist."
?CND35: FIRST? PRSO \?ELS45
PRINTI " "