-
Notifications
You must be signed in to change notification settings - Fork 18
/
ship.zap
1064 lines (985 loc) · 31.5 KB
/
ship.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 FAKE-DOOR-ENTER-F
PRINTI "The door is closed."
CRLF
RFALSE
.FUNCT FAKE-DOOR-F
EQUAL? PRSA,V?OPEN \?CCL3
CALL RECORDING,STR?170
RSTACK
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
PRINTR "There's a slot next to the closed door."
?CCL5: EQUAL? PRSA,V?ENTER \FALSE
CALL DO-WALK,P?WEST
RSTACK
.FUNCT FORM-F
EQUAL? PRSA,V?EXAMINE,V?READ \?CCL3
PRINTI "[This form can be found in your STATIONFALL package.]"
EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CND4
PRINTI " You notice that it has "
ZERO? ASSIGNMENT-FORM-VALIDATED \?CND6
PRINTI "not "
?CND6: PRINTR "been validated."
?CND4: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?VALIDATE \?CCL9
ZERO? ASSIGNMENT-FORM-VALIDATED /?CCL12
PRINT SENILITY-STRIKES
RTRUE
?CCL12: SET 'ASSIGNMENT-FORM-VALIDATED,TRUE-VALUE
PRINTR "Done."
?CCL9: EQUAL? PRSA,V?MUNG,V?CRUMPLE \FALSE
PRINT VIOLATION-OF-ACT
RTRUE
.FUNCT CHRONOMETER-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
GRTR? DAY,2 \?CCL6
PRINTI "You glance at your "
PRINTD CHRONOMETER
PRINTR ", and realize with annoyance that it has stopped. You can't recall doing anything that might have broken it."
?CCL6: PRINTI "It is a standard wrist "
PRINTD CHRONOMETER
PRINTI " with a digital display. "
CALL V-TIME,TRUE-VALUE
PRINTR " The back is engraved with the message ""Good luck in the Patrol! Love, Mom and Dad."""
.FUNCT PATROL-UNIFORM-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It is a standard-issue one-pocket Stellar "
PRINTD PATROL-UNIFORM
PRINTI ", a miracle of modern technology. It will keep its owner warm in cold climates and cool in warm locales. It provides protection against mild radiation, repels all insects, absorbs sweat, promotes healthy skin tone, and on top of everything else, it is super-comfy"
ZERO? SUIT-PRESSED /?CND4
PRINTI ". The uniform has been recently pressed"
?CND4: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
PRINTI "There's no way to open or close the pocket of the "
PRINTD PRSO
PRINT PERIOD-CR
RTRUE
.FUNCT I-BLATHER
EQUAL? HERE,SPACETRUCK \?CCL3
CALL DEQUEUE,I-BLATHER
RSTACK
?CCL3: RANDOM 100
LESS? BLATHER-PROB,STACK /?CCL5
CALL DEQUEUE,I-BLATHER
PRINTR " Ensign Twelfth Class Blather walks by, lugging his toilet scrubbing supplies. He spots you, whimpers, and slouches away (Footnote 2)."
?CCL5: ADD BLATHER-PROB,10 >BLATHER-PROB
RETURN BLATHER-PROB
.FUNCT BOXED-FORMS-F
EQUAL? PRSA,V?EXAMINE /?CTR2
CALL TOUCHING?,PSEUDO-OBJECT
ZERO? STACK /?CCL3
?CTR2: PRINTR "The forms are sealed inside the boxes."
?CCL3: EQUAL? PRSA,V?MUNG,V?CRUMPLE \FALSE
PRINT VIOLATION-OF-ACT
RTRUE
.FUNCT PALLETS-F,CNT
EQUAL? PRSA,V?READ \?CCL3
EQUAL? HERE,FORM-STORAGE-ROOM \?CCL6
PRINTR "There are numerous boxes; some of the nearer ones read: ""Form Pallet Disbursal Form,"" ""Loss of Form Pallet Label Report Form,"" and ""Loss of Form Pallet Label Report Form Release Form."""
?CCL6: PRINTC 34
PRINT FORM-NAME
PRINTR "."""
?CCL3: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?OPEN \?CCL8
PRINTI "Forms"
SET 'CNT,0
?PRG9: EQUAL? CNT,50 /?REP10
PRINTI " and forms"
INC 'CNT
JUMP ?PRG9
?REP10: PRINTR ". Horrified, you reseal the box."
?CCL8: EQUAL? PRSA,V?CLOSE \?CCL14
PRINTR "They already are."
?CCL14: EQUAL? PRSA,V?TAKE \?CCL16
PRINTR "You'll need a forklift."
?CCL16: EQUAL? PRSA,V?MUNG,V?STAND-ON,V?CLIMB-ON /?CTR17
EQUAL? PRSA,V?SHOOT \?CCL18
?CTR17: PRINT VIOLATION-OF-ACT
RTRUE
?CCL18: EQUAL? PRSA,V?COUNT \FALSE
EQUAL? HERE,FORM-STORAGE-ROOM \?CCL25
PRINTR "Countless."
?CCL25: CALL NOUN-USED,W?PALLET,PALLETS
ZERO? STACK /?CCL27
PRINTR "24."
?CCL27: CALL NOUN-USED,W?BOXES,PALLETS
ZERO? STACK /FALSE
SET 'C-ELAPSED,30
PRINTR "1920."
.FUNCT ROBOT-POOL-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
ADD C-ELAPSED,2
CALL QUEUE,I-FLOYD,STACK
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \?CCL5
PRINTI "This is where a "
PRINT LFC
PRINTI " would come to obtain a robot for use on an important assignment. Also for a trivial assignment like yours. "
PRINT ROBOT-POOL-EQUIPMENT-DESC
PRINTI " You can exit aft."
RTRUE
?CCL5: EQUAL? RARG,M-EXIT \FALSE
EQUAL? ROBOT-PICKED,FLOYD /FALSE
CALL DEQUEUE,I-FLOYD
RSTACK
.FUNCT BIN-F
GET P-ADJW,0
EQUAL? STACK,FALSE-VALUE \?PRD5
EQUAL? PRSO,PSEUDO-OBJECT /?CTR2
?PRD5: GET P-ADJW,1
EQUAL? STACK,FALSE-VALUE \?CCL3
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
?CTR2: PRINT REFER-TO-BIN
RTRUE
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL11
CALL ADJ-USED,A?FIRST,PSEUDO-OBJECT
ZERO? STACK /?CCL14
EQUAL? ROBOT-PICKED,REX /?CCL14
GETP REX,P?FDESC
PRINT STACK
CRLF
RTRUE
?CCL14: CALL ADJ-USED,A?SECOND,PSEUDO-OBJECT
ZERO? STACK /?CCL18
EQUAL? ROBOT-PICKED,HELEN /?CCL18
GETP HELEN,P?FDESC
PRINT STACK
CRLF
RTRUE
?CCL18: CALL ADJ-USED,A?THIRD,PSEUDO-OBJECT
ZERO? STACK /?CCL22
EQUAL? ROBOT-PICKED,FLOYD /?CCL22
CALL PERFORM,V?EXAMINE,FLOYD
RTRUE
?CCL22: PRINTR "The bin is empty."
?CCL11: EQUAL? PRSA,V?PUT,V?WALK-TO,V?ENTER \FALSE
PRINTR "The bin is only for robots."
.FUNCT FLOYD-F,OARG=0,X,N,TXT,?TMP1
ZERO? OARG /?CCL3
EQUAL? OARG,M-OBJDESC? /TRUE
PRINTI " "
CALL DESCRIBE-FLOYD
RSTACK
?CCL3: EQUAL? FLOYD,WINNER \?CCL7
SET 'FLOYD-SPOKE,TRUE-VALUE
ZERO? ROBOT-PICKED /?CCL10
EQUAL? ROBOT-PICKED,FLOYD /?CCL10
SET 'WINNER,PROTAGONIST
CALL PERFORM,V?COMFORT,FLOYD
CALL STOP
RSTACK
?CCL10: ZERO? FLOYD-ANGUISHED /?CCL14
PRINT FLOYD-SNIFFS
CALL STOP
RSTACK
?CCL14: EQUAL? PRSA,V?TELL-ABOUT \?CCL16
EQUAL? PRSO,ME \?CCL16
GETP PRSI,P?FLOYD-ASK-ABOUT >TXT
GRTR? ROBOT-EVILNESS,12 \?CCL21
PRINTR """Oh, quit jabbering already."""
?CCL21: ZERO? TXT /?CTR22
EQUAL? PRSI,OLIVER \?CCL23
FSET? OLIVER,TOUCHBIT /?CCL23
?CTR22: PRINTI "Floyd shrugs. ""Beats me."
IN? PLATO,HERE \?CND28
PRINTI " Ask Plato. He knows everything!"
?CND28: PRINTR """"
?CCL23: PRINTC 34
PRINT TXT
PRINTR """"
?CCL16: ZERO? STUNNED /?CCL31
EQUAL? PRSA,V?HELP /?CTR33
EQUAL? PRSA,V?SAVE-SOMETHING \?PRD37
EQUAL? PRSO,ME /?CTR33
?PRD37: EQUAL? PRSA,V?KILL,V?OFF \?PRD40
EQUAL? PRSO,PLATO /?CTR33
?PRD40: EQUAL? PRSA,V?TAKE \?CCL34
EQUAL? PRSO,STUN-GUN \?CCL34
?CTR33: SET 'FLOYD-TOLD,TRUE-VALUE
PRINTR "Floyd waves his hands helplessly. ""Yes... I mean no... I mean oh no oh help me please. Floyd in quandry..."""
?CCL34: PRINTI "Floyd just looks at you with confusion and panic in his eyes."
CRLF
CALL STOP
RSTACK
?CCL31: EQUAL? HERE,FACTORY \?CCL46
ZERO? FLOYD-SHOT /?CCL49
PRINTR "Floyd is hurt and doesn't respond."
?CCL49: PRINTR """Shut up!"" orders Floyd."
?CCL46: EQUAL? PRSA,V?LAUNCH \?CCL51
EQUAL? PRSO,SPACETRUCK-OBJECT \?CCL51
SET 'AWAITING-REPLY,2
CALL V-YES
SET 'AWAITING-REPLY,FALSE-VALUE
RTRUE
?CCL51: EQUAL? PRSA,V?TAKE \?CCL55
EQUAL? PRSO,LEASH \?CCL55
FSET? HERE,WEIGHTLESSBIT /?CCL55
CALL FLOYD-TAKE-LEASH
RSTACK
?CCL55: EQUAL? PRSA,V?TAKE \?CCL60
EQUAL? PRSO,STAR \?CCL60
FSET? STAR,TRYTAKEBIT \?CCL60
PRINTR """Huh? Floyd shorter even than you!"""
?CCL60: EQUAL? PRSA,V?YES \?CCL65
ZERO? AWAITING-REPLY /?CCL65
CALL V-YES
RSTACK
?CCL65: EQUAL? PRSA,V?NO \?CCL69
ZERO? AWAITING-REPLY /?CCL69
CALL V-NO
RSTACK
?CCL69: EQUAL? PRSA,V?CLIMB-ON,V?ENTER \?CCL73
EQUAL? PRSO,COPILOT-SEAT,PILOT-SEAT \?CCL73
IN? FLOYD,PRSO \?CCL78
PRINTR """Where is Floyd now, huh?"""
?CCL78: PRINTR "Floyd looks suspicious. ""You first."""
?CCL73: EQUAL? PRSA,V?TAKE \?CCL80
IN? PRSO,HEATING-CHAMBER \?CCL80
MOVE PRSO,HERE
PRINTI """Okay!"" Floyd reaches into the "
PRINTD HEATING-CHAMBER
PRINTI " and grabs"
CALL TPRINT-PRSO
PRINTR ". ""Yikes, it's hot!"" He drops it to the deck, where it quickly cools."
?CCL80: EQUAL? PRSA,V?MUNG,V?UNLOCK,V?OPEN \?CCL84
EQUAL? PRSO,STRONG-BOX,SAFE \?CCL84
PRINTR """Floyd's a robot, not a locksmith!"""
?CCL84: EQUAL? PRSA,V?UNLOCK,V?OPEN \?CCL88
EQUAL? PRSO,SECURITY-DOOR \?CCL88
PRINTR """Put your ID in the ID reader, dumbo!"""
?CCL88: EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL92
EQUAL? PRSO,WELDER \?CCL92
PRINTR """Sure! Floyd not scared!"" He walks bravely up to the welder, which spits some electric fire in his direction. From his new position (quivering behind your legs) Floyd says, ""Floyd changed his mind, okay?"""
?CCL92: EQUAL? PRSA,V?ENTER \?CCL96
EQUAL? PRSO,EXERCISE-MACHINE \?CCL96
PRINTR """Floyd doesn't need exercise! Not a gram of flab on Floyd!"" He pokes you in the stomach and grins. ""Can't say the same about you, though!"""
?CCL96: EQUAL? PRSA,V?REACH-IN \?CCL100
EQUAL? PRSO,PSEUDO-OBJECT,DISPENSER \?CCL100
EQUAL? HERE,PX \?CCL100
PRINTR "Floyd happily reaches into the dispenser hole, and then withdraws his hand, looking glum. ""Nope, not even a ball."""
?CCL100: EQUAL? PRSA,V?WEAR \?CCL105
FSET? PRSO,WEARBIT \?CCL105
PRINTR """Too big for Floyd! Also, it would clash with Floyd's boron-titanium alloy finish!"""
?CCL105: EQUAL? PRSA,V?GIVE \?CCL109
EQUAL? PRSI,ME \?CCL109
IN? PRSO,FLOYD \?CCL114
MOVE PRSO,PROTAGONIST
PRINTI """Okay,"" says Floyd, handing you the "
PRINTD PRSO
PRINTR ", ""but only because you're Floyd's best friend."""
?CCL114: PRINT FLOYD-NOT-HAVE
RTRUE
?CCL109: EQUAL? PRSA,V?SGIVE \?CCL116
EQUAL? PRSO,ME \?CCL116
CALL PERFORM,V?GIVE,PRSI,ME
RTRUE
?CCL116: EQUAL? PRSA,V?WALK \?CCL120
PRINTR "Floyd looks slightly embarrassed. ""You know Floyd and his sense of direction."" Then he looks up at you with wide, trusting eyes. ""Tell Floyd a story?"""
?CCL120: EQUAL? PRSA,V?FOLLOW \?CCL122
EQUAL? PRSO,ME \?CCL122
PRINTR """Okay!"""
?CCL122: EQUAL? PRSA,V?HELLO \?CCL126
GRTR? ROBOT-EVILNESS,13 \?CCL129
PRINTR """Enough with the stupid 'FLOYD, HELLO' all the time, okay?"""
?CCL129: PRINTR """Hi!"" Floyd grins and bounces up and down."
?CCL126: EQUAL? PRSA,V?DROP \?CCL131
IN? PRSO,FLOYD \?CCL134
RANDOM 100
LESS? 50,STACK /?CCL137
MOVE PRSO,HERE
PRINTI "Floyd shrugs and drops the "
PRINTD PRSO
PRINT PERIOD-CR
RTRUE
?CCL137: PRINTI "Floyd clutches the "
PRINTD PRSO
PRINTR " even more tightly. ""Floyd won't,"" he says defiantly."
?CCL134: PRINT FLOYD-NOT-HAVE
RTRUE
?CCL131: PRINTI "Floyd whines, ""Enough talking! Let's play Hider-and-Seeker."""
CRLF
CALL STOP
RSTACK
?CCL7: FSET? FLOYD,TOUCHBIT /?CCL139
CALL NOUN-USED,W?FLOYD,FLOYD
ZERO? STACK /?CCL139
PRINTI "You don't see anyone by that name here."
CRLF
RETURN 8
?CCL139: EQUAL? ROBOT-PICKED,FLOYD /?CCL145
CALL TOUCHING?,FLOYD
ZERO? STACK /?CCL145
CALL CANT-REACH,FLOYD
RSTACK
?CCL145: EQUAL? PRSA,V?COMFORT \?CCL149
ZERO? ROBOT-PICKED /?CCL149
EQUAL? ROBOT-PICKED,FLOYD /?CCL149
PRINTR "Floyd gives you a hurt look and turns away."
?CCL149: ZERO? FLOYD-ANGUISHED /?CCL154
CALL TOUCHING?,FLOYD
ZERO? STACK \?CTR153
EQUAL? PRSA,V?COMFORT \?CCL154
?CTR153: PRINT FLOYD-SNIFFS
RTRUE
?CCL154: MUL ROBOT-EVILNESS,10
SUB STACK,70 >?TMP1
RANDOM 100
LESS? ?TMP1,STACK /?CCL160
CALL TOUCHING?,FLOYD
ZERO? STACK /?CCL160
EQUAL? PRSA,V?SHAKE,V?KICK,V?OFF /?CCL160
FSET? FLOYD,ACTIVEBIT \?CCL160
EQUAL? HERE,FACTORY /?CCL167
PRINTR """Hey, will you just leave Floyd alone!"" He shoves you away."
?CCL167: ZERO? FLOYD-SHOT /?CCL169
PRINTI "Before you can..."
CRLF
CALL I-LAUNCH
RSTACK
?CCL169: CALL BACK-OFF,STR?177
RSTACK
?CCL160: EQUAL? PRSA,V?EXAMINE \?CCL171
CALL DESCRIBE-FLOYD,TRUE-VALUE
FIRST? FLOYD \?CCL174
PRINTC 32
CALL V-LOOK-INSIDE
RSTACK
?CCL174: CRLF
RTRUE
?CCL171: EQUAL? PRSA,V?PUT \?CCL176
EQUAL? PRSI,FLOYD \?CCL176
FSET? FLOYD,ACTIVEBIT \?CCL181
PRINTR """Hey, Floyd's a robot, not a garbage pail!"" Floyd giggles uncontrollably at his own joke."
?CCL181: CALL NOUN-USED,W?COMPAR,FLOYD
ZERO? STACK /?CCL183
PRINTR "There's no room."
?CCL183: PRINT HUH
RTRUE
?CCL176: EQUAL? PRSA,V?KILL \?CCL185
EQUAL? PRSO,FLOYD \?CCL185
ZERO? FLOYD-SHOT /?CCL185
CALL PERFORM,V?SHOOT,FLOYD,ZAPGUN
RTRUE
?CCL185: EQUAL? PRSA,V?SHOOT \?CCL190
ZERO? FLOYD-SHOT /?CCL193
INC 'ZAPGUN-SHOTS
PRINTR "Floyd is already fatally wounded, so that would accomplish nothing, except perhaps fulfilling some sadistic impulse on your part."
?CCL193: EQUAL? HERE,FACTORY \?CCL195
CALL ROB,FLOYD,HERE
CALL DEQUEUE,I-FACTORY
FSET STUN-GUN,TAKEBIT
FCLEAR FLOYD,ACTIVEBIT
SET 'FLOYD-SHOT,TRUE-VALUE
PRINTR "The bolt hits Floyd squarely in the chest. He is blown backwards, against the pedestal, and slumps to the deck."
?CCL195: INC 'ZAPGUN-SHOTS
PRINTR "[The author of this story is totally shocked, and won't even dignify such an input with a response.]"
?CCL190: EQUAL? PRSA,V?PICK \?CCL197
CALL PICK-ROBOT
RSTACK
?CCL197: EQUAL? PRSA,V?CLOSE \?CCL199
PRINT HUH
RTRUE
?CCL199: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?CCL201
CALL PERFORM,V?OPEN,FLOYD
RTRUE
?CCL201: FSET? FLOYD,ACTIVEBIT \?CCL203
SET 'FLOYD-SPOKE,TRUE-VALUE
EQUAL? PRSA,V?ON \?CCL206
PRINTR "He's already been activated."
?CCL206: EQUAL? PRSA,V?OFF \?CCL208
GRTR? PLATO-ATTACK-COUNTER,0 \?CCL211
PRINTR "Floyd jerks away as you touch his on-off switch. ""Hey, you know how much Floyd hates that! And after Floyd just saved your life, you kripping ingrate."""
?CCL211: FCLEAR FLOYD,ACTIVEBIT
FCLEAR FLOYD,ACTORBIT
ZERO? SPACETRUCK-COUNTER \?CND212
CALL DEQUEUE,I-FLOYD
?CND212: PRINTI "Floyd, shocked by this betrayal from his old friend, whimpers and keels over"
FIRST? FLOYD \?CND214
CALL ROB,FLOYD,HERE
PRINTI ", dropping what he was carrying"
?CND214: PRINT PERIOD-CR
RTRUE
?CCL208: EQUAL? HERE,FACTORY /FALSE
EQUAL? PRSA,V?KISS \?CCL219
PRINTR "You receive a painful electric shock."
?CCL219: EQUAL? PRSA,V?SCOLD \?CCL221
PRINTR "Floyd looks defensive. ""What did Floyd do wrong?"""
?CCL221: EQUAL? PRSA,V?PLAY-WITH \?CCL223
ZERO? FLOYD-ANGUISHED /?CCL226
CALL PERFORM,V?TOUCH,FLOYD
RTRUE
?CCL226: CALL UNTOUCHABLE?,FLOYD
ZERO? STACK /?CND224
CALL CANT-REACH,FLOYD
RTRUE
?CND224: SET 'C-ELAPSED,30
CALL QUEUE,I-FLOYD,1
PRINTI "You play with Floyd for several centichrons until you"
MUL ROBOT-EVILNESS,15
SUB STACK,135 >?TMP1
RANDOM 100
LESS? ?TMP1,STACK /?CCL230
PRINTR " win a game. Floyd gets angry, accuses you of cheating, and kicks you painfully in the shin."
?CCL230: PRINTR "'re completely winded. Floyd pokes at you gleefully. ""C'mon! Let's play some more!"""
?CCL223: EQUAL? PRSA,V?LISTEN \?CCL232
PRINTR "Floyd is babbling about this and that."
?CCL232: EQUAL? PRSA,V?TAKE \?CCL234
EQUAL? PRSO,FLOYD \?CCL234
FSET? HERE,WEIGHTLESSBIT \?CCL239
PRINTR "Sans gravity, you easily pick up Floyd. ""Oh, boy! Zero-Gee Polo,"" he yells, wriggling away and bounding off several walls."
?CCL239: FSET? FLOYD,TOUCHBIT \FALSE
SET 'FLOYD-TRYTAKEN,TRUE-VALUE
PRINTR "You manage to lift Floyd a few centimeters, but he's too heavy and you drop him suddenly. Floyd gives a surprised squeal and moves a respectable distance away."
?CCL234: EQUAL? PRSA,V?MUNG,V?KILL \?CCL243
PRINTR "Floyd starts dashing around the room. ""Oh boy oh boy oh boy! I haven't played Chase and Tag for years! You be It! Nah, nah!"""
?CCL243: EQUAL? PRSA,V?SHAKE,V?KICK \?CCL245
GRTR? ROBOT-EVILNESS,13 \?CCL248
PRINTR """What the krip do you think you're doing? How you'd like it if Floyd treated you that way, you stupid trot-brain."""
?CCL248: PRINTR """Why you do that?"" Floyd whines. ""I think a wire now shaken loose."" He goes off into a corner and sulks."
?CCL245: EQUAL? PRSA,V?OPEN,V?CLEAN,V?SEARCH /?CTR249
EQUAL? PRSA,V?TICKLE \?CCL250
?CTR249: PRINTR "Floyd giggles and pushes you away. ""You're tickling Floyd!"" He clutches at his side panels, laughing hysterically. Oil drops stream from his eyes."
?CCL250: EQUAL? PRSA,V?PUT,V?GIVE \?CCL254
EQUAL? PRSI,FLOYD \?CCL254
EQUAL? PRSO,TAFFY,GRAY-GOO,ORANGE-GOO /?CTR258
EQUAL? PRSO,NECTAR,SOUP \?CCL259
?CTR258: PRINTR "Floyd looks at the goo. ""Yech! Got any Number Seven Heavy Grease?"""
?CCL259: EQUAL? PRSO,LEASH \?CCL263
CALL FLOYD-TAKE-LEASH
RSTACK
?CCL263: EQUAL? PRSO,OSTRICH-NIP \?CCL265
PRINTR """Phew!"" says Floyd, holding his nose and handing it back."
?CCL265: CALL CCOUNT,FLOYD
GRTR? STACK,3 /?CTR266
EQUAL? PRSO,SPACESUIT,OSTRICH-NIP /?CTR266
EQUAL? PRSO,EXPLOSIVE,TIMER,DETONATOR /?CTR266
FSET? PRSO,CONTBIT /?CTR266
RANDOM 100
LESS? 35,STACK /?CCL267
?CTR266: MOVE PRSO,HERE
PRINTI "Floyd examines the "
PRINTD PRSO
PRINTR ", shrugs, and drops it."
?CCL267: MOVE PRSO,FLOYD
PRINTR """Neat!"" exclaims Floyd. He thanks you profusely."
?CCL254: EQUAL? PRSA,V?SHOW \?CCL274
EQUAL? FLOYD,PRSI \?CCL274
SET 'AWAITING-REPLY,3
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTI "Floyd looks over"
CALL TPRINT-PRSO
PRINTR ". ""Can you play any games with it?"" he asks."
?CCL274: EQUAL? PRSA,V?HUG,V?TOUCH \?CCL278
PRINTR "Floyd gives a contented sigh."
?CCL278: EQUAL? PRSA,V?SMELL \FALSE
PRINTR "Floyd smells faintly of ozone and light machine oil."
?CCL203: EQUAL? PRSA,V?OFF,V?ON \?CCL282
ZERO? FLOYD-SHOT /?CCL282
PRINTR "The switch crumbles in your hand; it looks like Floyd's headed for that big Robot Pool in the sky..."
?CCL282: EQUAL? PRSA,V?ON \?CCL286
CALL QUEUE,I-FLOYD,-1
SET 'FLOYD-SPOKE,TRUE-VALUE
FSET FLOYD,ACTORBIT
FSET FLOYD,ACTIVEBIT
FSET FLOYD,TOUCHBIT
PRINTI "Floyd jumps to his feet"
PRINT HOPPING-MAD
CRLF
RTRUE
?CCL286: EQUAL? PRSA,V?OFF \?CCL288
PRINTR "Floyd isn't on."
?CCL288: EQUAL? PRSA,V?TELL \?CCL290
ZERO? FLOYD-SHOT \?CCL290
PRINTI "Floyd isn't that great a listener even when he's on..."
CRLF
CALL STOP
RSTACK
?CCL290: EQUAL? PRSA,V?OPEN,V?SEARCH \FALSE
PRINTR "You search the robot's compartments and discover a crayon, a paddle ball set, and finally, a photo of yourself. On the back, in crayon, in Floyd's childish scrawl, is the inscription, ""Floyds frend."" Touched, you return everything to the compartments where you found them."
.FUNCT DESCRIBE-FLOYD,EXAMINING=0
FSET? FLOYD,TOUCHBIT /?CCL3
PRINT YOU-CANT
PRINTI "see the robot in the third bin very well, because he's crouched in the corner. He's a short robot, and he seems to be playing marbles."
RTRUE
?CCL3: EQUAL? HERE,ROBOT-POOL \?CCL5
ZERO? ROBOT-PICKED \?CCL5
PRINTI "With unconcealed excitement, Floyd is hopping around in bin number three."
RTRUE
?CCL5: EQUAL? HERE,ROBOT-POOL \?CCL9
EQUAL? ROBOT-PICKED,FLOYD /?CCL9
PRINTI "Floyd sits dejectedly in bin three."
RTRUE
?CCL9: IN? PLATO,HERE \?CCL13
ZERO? EXAMINING \?CCL13
PRINTI "Plato and Floyd are both here."
FSET? FLOYD,ACTIVEBIT /TRUE
PRINTC 32
PRINT FLOYD-OFF-DESC
RTRUE
?CCL13: EQUAL? HERE,FACTORY \?CCL19
PRINTI "Floyd is "
ZERO? FLOYD-SHOT /?CCL22
PRINTI "ly"
JUMP ?CND20
?CCL22: PRINTI "stand"
?CND20: PRINTI "ing between you and the pyramid, "
ZERO? FLOYD-SHOT /?CCL25
PRINTI "seriously damaged by zapgun fire."
RTRUE
?CCL25: PRINTI "his face so contorted by hate as to be almost unrecognizable. You also wonder where he picked up that black eye patch."
RTRUE
?CCL19: FSET? FLOYD,ACTIVEBIT /?CCL27
PRINT FLOYD-OFF-DESC
RTRUE
?CCL27: ZERO? FLOYD-ANGUISHED /?CCL29
PRINTI "Floyd is lying on the floor, sobbing."
RTRUE
?CCL29: ZERO? EXAMINING /?CCL31
PRINTI "Floyd is a multi-purpose robot with slightly-crossed eyes and a lopsided grin."
RTRUE
?CCL31: PRINTI "Floyd is here, also looking around the room."
RTRUE
.FUNCT FLOYD-TAKE-LEASH
ZERO? HANGING-IN-AIR /?CCL3
PRINTR """Floyd can't until you let go!"""
?CCL3: PRINTR "Floyd grabs the leash and gets pulled up into the air. ""Wheee!"" Then his grip slips and he clatters to the deck. ""Oops! More dents!"""
.FUNCT MOVE-FLOYD-TO-FACTORY
MOVE FLOYD,FACTORY
EQUAL? HERE,EAST-JUNCTION,LEVEL-FIVE \?CCL3
PUSH SOUTH-CONNECTION
JUMP ?CND1
?CCL3: EQUAL? HERE,SOUTH-JUNCTION,NORTH-JUNCTION \?CCL5
PUSH EAST-CONNECTION
JUMP ?CND1
?CCL5: RANDOM 100
LESS? 25,STACK /?CCL7
PUSH SOUTH-JUNCTION
JUMP ?CND1
?CCL7: RANDOM 100
LESS? 33,STACK /?CCL9
PUSH EAST-JUNCTION
JUMP ?CND1
?CCL9: RANDOM 100
LESS? 50,STACK /?CCL11
PUSH NORTH-JUNCTION
JUMP ?CND1
?CCL11: PUSH LEVEL-FIVE
?CND1: CALL ROB,FLOYD,STACK
MOVE STUN-GUN,FLOYD
CALL DEQUEUE,I-FLOYD
CALL DEQUEUE,I-ROBOT-EVILNESS
RSTACK
.FUNCT HELEN-F
EQUAL? HELEN,WINNER \?CCL3
EQUAL? PRSA,V?HELLO \?CCL6
PRINTR """Mutual, I'm sure."""
?CCL6: EQUAL? PRSA,V?FOLLOW,V?WALK \?CCL8
PRINTR """I'm supposta stay with any human I'm assigned to."""
?CCL8: PRINTI "You've strayed too far from simple form-sorting to interest Helen."
CRLF
CALL STOP
RSTACK
?CCL3: EQUAL? ROBOT-PICKED,HELEN /?CCL10
CALL TOUCHING?,HELEN
ZERO? STACK /?CCL10
CALL CANT-REACH,HELEN
RSTACK
?CCL10: EQUAL? PRSA,V?GIVE \?CCL14
EQUAL? PRSO,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM,ASSIGNMENT-COMPLETION-FORM \?CCL14
CALL CONFETTI,PRSO
RSTACK
?CCL14: EQUAL? PRSA,V?OPEN,V?ON,V?OFF \?CCL18
CALL PERFORM,PRSA,PLATO
RTRUE
?CCL18: EQUAL? PRSA,V?PICK \FALSE
CALL PICK-ROBOT
RSTACK
.FUNCT REX-F
EQUAL? REX,WINNER \?CCL3
EQUAL? PRSA,V?HELLO \?CCL6
PRINTR """Yo."""
?CCL6: EQUAL? PRSA,V?FOLLOW,V?WALK \?CCL8
PRINTI """I'll follow youse "
EQUAL? REX,ROBOT-PICKED \?CCL11
PRINTI "since I been"
JUMP ?CND9
?CCL11: PRINTI "if I gets"
?CND9: PRINTR " assigned ta youse."""
?CCL8: PRINTI "Rex merely looks confused."
CRLF
CALL STOP
RSTACK
?CCL3: EQUAL? ROBOT-PICKED,REX /?CCL13
CALL TOUCHING?,REX
ZERO? STACK /?CCL13
CALL CANT-REACH,REX
RSTACK
?CCL13: EQUAL? PRSA,V?OPEN,V?ON,V?OFF \?CCL17
CALL PERFORM,PRSA,PLATO
RTRUE
?CCL17: EQUAL? PRSA,V?PICK \FALSE
CALL PICK-ROBOT
RSTACK
.FUNCT I-OTHER-ROBOT
IN? ROBOT-PICKED,HERE /FALSE
MOVE ROBOT-PICKED,HERE
EQUAL? HERE,CARGO-BAY-ENTRANCE \?CCL6
EQUAL? ROBOT-PICKED,REX \?CCL6
CALL JIGS-UP,STR?214
RSTACK
?CCL6: PRINTR " Helen obediently follows you."
.FUNCT CONFETTI,FORM-NAME
REMOVE FORM-NAME
PRINTI "In a spasm of vocational enthusiasm, Helen tries to burst and decollate your "
PRINTD FORM-NAME
PRINTR ", leaving nothing but some useless confetti."
.FUNCT PICK-ROBOT
EQUAL? PRSO,ROBOT-PICKED \?CCL3
PRINT SENILITY-STRIKES
RTRUE
?CCL3: ZERO? ROBOT-PICKED /?CCL5
PRINTI "You already picked "
PRINTD ROBOT-PICKED
PRINT PERIOD-CR
RTRUE
?CCL5: PRINTR "Use the automated robot selection equipment."
.FUNCT CARGO-BAY-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This huge airlock is essentially a giant loading dock, where truckloads of forms arrive from various printing planets throughout the sector and are immediately distributed throughout the administrative deck. The only exit on foot is back the way you came. A "
PRINTD SPACETRUCK-OBJECT
PRINTI ", its hatch "
CALL OPEN-CLOSED,SPACETRUCK-HATCH
PRINTI ", waits in the cargo bay."
RTRUE
.FUNCT SPACETRUCK-OBJECT-F
EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL3
EQUAL? HERE,SPACETRUCK \?CCL6
PRINT LOOK-AROUND
RTRUE
?CCL6: CALL DO-WALK,P?IN
RSTACK
?CCL3: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL8
EQUAL? HERE,SPACETRUCK \?CCL11
CALL DO-WALK,P?OUT
RSTACK
?CCL11: PRINT LOOK-AROUND
RTRUE
?CCL8: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL13
CALL PERFORM,PRSA,SPACETRUCK-HATCH
RTRUE
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL15
EQUAL? HERE,SPACETRUCK \?CCL18
CALL V-LOOK
RSTACK
?CCL18: CALL PERFORM,V?EXAMINE,SPACETRUCK-HATCH
RTRUE
?CCL15: EQUAL? PRSA,V?LOOK-INSIDE \?CCL20
EQUAL? HERE,CARGO-BAY,DOCKING-BAY-2 \?CCL20
CALL PERFORM,V?LOOK-INSIDE,WINDOW
RTRUE
?CCL20: EQUAL? PRSA,V?ON,V?LAUNCH \?CCL24
EQUAL? HERE,SPACETRUCK /?CCL27
PRINTR "You're not even in it!"
?CCL27: GRTR? SPACETRUCK-COUNTER,0 \?CCL29
PRINT SENILITY-STRIKES
RTRUE
?CCL29: PRINTR "That's what the slot and keypad are for!"
?CCL24: EQUAL? PRSA,V?SEARCH \FALSE
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
RTRUE
.FUNCT SPACETRUCK-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
FSET? SPACETRUCK,TOUCHBIT /?CCL3
CALL QUEUE,I-THERMOS,100
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \?CCL7
PRINTI "This is a twelve-meter rig, the largest Class Three spacecraft made, with seats for a pilot and copilot. Below the viewport is a space band radio, a red button for activating the emergency beacon, plus a slot and keypad for controlling the autopilot. The hatch is "
CALL OPEN-CLOSED,SPACETRUCK-HATCH
PRINTI " and the rear of the truck is empty of cargo."
RTRUE
?CCL7: EQUAL? RARG,M-END \FALSE
IN? HELEN,HERE \FALSE
CALL VISIBLE?,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM
ZERO? STACK /FALSE
PRINTI " "
CALL CONFETTI,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM
RSTACK
.FUNCT SPACETRUCK-EXIT-F
FSET? SPACETRUCK-HATCH,OPENBIT /?CCL3
CALL THIS-IS-IT,SPACETRUCK-HATCH
CALL DO-FIRST,STR?215
RFALSE
?CCL3: EQUAL? SPACETRUCK-COUNTER,-1 \?CCL5
RETURN CARGO-BAY
?CCL5: EQUAL? SPACETRUCK-COUNTER,5 \FALSE
EQUAL? COURSE-PICKED,RIGHT-COURSE \FALSE
RETURN DOCKING-BAY-2
.FUNCT SPACETRUCK-HATCH-F
EQUAL? PRSA,V?OPEN \FALSE
GRTR? SPACETRUCK-COUNTER,-1 \FALSE
EQUAL? SPACETRUCK-COUNTER,5 \?CND6
EQUAL? COURSE-PICKED,RIGHT-COURSE /FALSE
?CND6: PRINT YOU-CANT
PRINTR "open the hatch in deep space!"
.FUNCT PILOT-SEAT-F,VARG=0
EQUAL? VARG,M-ENTER \FALSE
IN? FLOYD,HERE \FALSE
FSET? FLOYD,ACTIVEBIT \FALSE
PRINTI " Floyd clambers into the "
IN? PROTAGONIST,PILOT-SEAT \?CCL9
MOVE FLOYD,COPILOT-SEAT
PRINTI "co"
JUMP ?CND7
?CCL9: MOVE FLOYD,PILOT-SEAT
?CND7: PRINTD PILOT-SEAT
LOC FLOYD
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \?CND10
PRINTI ", his feet dangling a few centimeters short of the floor"
?CND10: PRINTC 46
EQUAL? SPACETRUCK-COUNTER,-1 \TRUE
SET 'FLOYD-SPOKE,TRUE-VALUE
SET 'AWAITING-REPLY,2
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTI " ""Let Floyd launch the "
PRINTD SPACETRUCK-OBJECT
PRINTI "? Please? Floyd has not crashed a truck in over two weeks!"""
RTRUE
.FUNCT GENERIC-SEAT-F
EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \FALSE
LOC PROTAGONIST
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \FALSE
LOC PROTAGONIST
RSTACK
.FUNCT RADIO-F
EQUAL? PRSA,V?LISTEN \?CCL3
FSET? RADIO,ACTIVEBIT \?CCL6
PRINTR """Hiss. Crackle."""
?CCL6: PRINTR "The radio isn't on!"
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
PRINTI "The radio seems to be damaged, because the microphone is missing. "
RFALSE
?CCL8: EQUAL? PRSA,V?ON \?CCL10
CALL QUEUE,I-RADIO,-1
RFALSE
?CCL10: EQUAL? PRSA,V?OFF \FALSE
CALL DEQUEUE,I-RADIO
RFALSE
.FUNCT RED-BUTTON-F
EQUAL? PRSA,V?PUSH \FALSE
EQUAL? SPACETRUCK-COUNTER,5 \?CCL6
CALL RECORDING,STR?219
RSTACK
?CCL6: PRINTR "You're not in trouble! Misuse of the emergency message beacon is a court-martial offense!"
.FUNCT I-SPACETRUCK
CALL QUEUE,I-SPACETRUCK,-1
INC 'SPACETRUCK-COUNTER
PRINTI " "
ZERO? SPACETRUCK-COUNTER \?CCL3
PRINTI "The truck roars out of the cargo bay"
EQUAL? HERE,CARGO-BAY \?CCL6
CALL JIGS-UP,STR?220
RSTACK
?CCL6: FSET? SPACETRUCK-HATCH,OPENBIT \?CCL8
CALL JIGS-UP,STR?221
RSTACK
?CCL8: LOC PROTAGONIST
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \?CCL10
FSET SPACETRUCK,WEIGHTLESSBIT
PRINTR ", slowly picking up speed. You settle back for the long trip."
?CCL10: CALL JIGS-UP,STR?222
RSTACK
?CCL3: EQUAL? SPACETRUCK-COUNTER,1 \?CCL12
CALL RECORDING,STR?223
RSTACK
?CCL12: EQUAL? SPACETRUCK-COUNTER,2 \?CCL14
PRINTR "There is a moment of stillness as the rear engines cut out. The moment ends as the braking rockets in front roar to life."
?CCL14: EQUAL? SPACETRUCK-COUNTER,3 \?CCL16
CALL RECORDING,STR?224
RSTACK
?CCL16: EQUAL? SPACETRUCK-COUNTER,4 \?CCL18
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL21
PRINTI "A tiny star directly ahead grows brighter and resolves itself into a distant space station. The station grows rapidly larger as you hurtle towards it."
CRLF
CALL PERFORM,V?LOOK-INSIDE,WINDOW
PRINTR " With a final burst, the braking rockets bring you to a halt a few thousand meters from the station."
?CCL21: PRINTI "The forward braking rockets sputter off as the "
PRINTD SPACETRUCK-OBJECT
PRINTR " comes to a dead stop in space. There is no space station, or any other sign of human civilization, in sight."
?CCL18: EQUAL? SPACETRUCK-COUNTER,5 \FALSE
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL26
FCLEAR SPACETRUCK,WEIGHTLESSBIT
CALL QUEUE,I-WELDER,-1
CALL QUEUE,I-FLOYD,-1
CALL QUEUE,I-PLATO,750
CALL QUEUE,I-ROBOT-EVILNESS,1000
MOVE PALLETS,SHIPPING-ROOM
ADD SCORE,5 >SCORE
PRINTI "The maneuvering thrusters kick on, nudging you toward the station. "
CALL RECORDING,STR?225
PRINTI " The truck glides into the docking bay, and your stomach flips as the bay's arti-grav field comes on. The truck settles the last few centimeters to the floor, the bay floods with air, and a voice whispers, ""Stationfall."" Through the viewport, you see no one to meet you. Odd."
CRLF
JUMP ?CND24
?CCL26: CALL RECORDING,STR?226
CALL QUEUE,I-SUFFOCATE,1970
?CND24: CALL DEQUEUE,I-SPACETRUCK
RSTACK
.FUNCT I-SUFFOCATE
CALL JIGS-UP,STR?227
RSTACK
.FUNCT FOOD-KIT-F,?TMP1
EQUAL? PRSA,V?EMPTY \?CCL3
FSET? FOOD-KIT,OPENBIT \?CCL3
LOC GRAY-GOO >?TMP1
LOC ORANGE-GOO
EQUAL? FOOD-KIT,?TMP1,STACK \?CCL3
CALL PERFORM,V?REMOVE,GRAY-GOO
RTRUE
?CCL3: EQUAL? PRSA,V?OPEN \FALSE
CALL IN-VACUUM?
ZERO? STACK /FALSE
LOC GRAY-GOO >?TMP1
LOC ORANGE-GOO
EQUAL? FOOD-KIT,?TMP1,STACK \FALSE
FSET FOOD-KIT,OPENBIT
CALL SPACE-FOOD
RSTACK
.FUNCT IN-VACUUM?
EQUAL? HERE,VACUUM-STORAGE /TRUE
EQUAL? HERE,AIRLOCK \FALSE
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /TRUE
RFALSE
.FUNCT SPACE-LIQUID,OBJ
CALL VISIBLE?,OBJ
ZERO? STACK /FALSE
PRINTI " The "
EQUAL? OBJ,SOUP \?CCL6
PRINTI "soup"
JUMP ?CND4
?CCL6: EQUAL? OBJ,COFFEE \?CCL8
PRINTI "coffee"
JUMP ?CND4
?CCL8: PRINTI "nectar"
?CND4: PRINTI " boils away into the vacuum"
EQUAL? OBJ,SOUP \?CCL11
REMOVE SOUP
PRINT PERIOD-CR
RTRUE
?CCL11: CALL ANTI-LITTER,OBJ
RSTACK
.FUNCT SPACE-FOOD
REMOVE ORANGE-GOO
REMOVE GRAY-GOO
PRINTI "The food in the "
PRINTD FOOD-KIT
PRINTR " instantly crystallizes and drifts away."
.FUNCT THERMOS-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It's your basic insulated bottle, which hasn't changed much over the centuries. This one is plaid, with pictures of little robots all over it. "
RFALSE
?CCL3: EQUAL? PRSA,V?EMPTY,V?POUR \?CCL5
EQUAL? PRSO,THERMOS \?CCL5
IN? SOUP,THERMOS \?CCL5
CALL PERFORM,PRSA,SOUP,PRSI
RTRUE
?CCL5: EQUAL? PRSA,V?PUT \?CCL10
EQUAL? PRSI,THERMOS \?CCL10
EQUAL? PRSO,LARGE-BIT,SMALL-BIT,EXPLOSIVE /?CCL10
EQUAL? PRSO,MEDIUM-BIT /?CCL10
PRINTI "The neck of the Thermos is too narrow for"
CALL TRPRINT,PRSO
RSTACK
?CCL10: EQUAL? PRSA,V?OPEN \?CCL17
CALL IN-VACUUM?
ZERO? STACK /?CCL20
IN? SOUP,THERMOS \?CCL20
FSET THERMOS,OPENBIT
CALL SPACE-LIQUID,SOUP
RSTACK
?CCL20: ZERO? THERMOS-FILLED-WITH-GAS /FALSE
FSET THERMOS,OPENBIT
PRINTR "You open the thermos, releasing a puff of FREZONE (tm) gas."
?CCL17: EQUAL? PRSA,V?REACH-IN \FALSE
IN? SOUP,THERMOS \FALSE
CALL PERFORM,V?EXAMINE,SOUP
RTRUE
.FUNCT I-THERMOS
IN? SOUP,THERMOS /?CCL3
SET 'SOUP-WARMTH,0
RETURN SOUP-WARMTH
?CCL3: LESS? SOUP-WARMTH,0 \?CCL5
SET 'SOUP-WARMTH,0
RETURN SOUP-WARMTH
?CCL5: FSET? THERMOS,OPENBIT \?CCL8
PUSH 4
JUMP ?CND6
?CCL8: PUSH 1
?CND6: SUB SOUP-WARMTH,STACK >SOUP-WARMTH
CALL QUEUE,I-THERMOS,100
RSTACK
.FUNCT SOUP-F
EQUAL? PRSA,V?FIND \?CCL3
GET P-NAMW,0
EQUAL? STACK,W?FOOD \?CCL3
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
RTRUE