-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathglobals.zap
1218 lines (1113 loc) · 32.5 KB
/
globals.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 INTDIR-F
EQUAL? PRSA,V?SET \FALSE
PRINTR "Okay, you're now facing in that direction, but you don't see anything you didn't see before."
.FUNCT INTNUM-F
CALL ADJ-USED,A?BIN,INTNUM
ZERO? STACK /?CCL3
EQUAL? HERE,ROBOT-POOL /?CCL6
PRINT YOU-CANT
PRINTR "see any bin here!]"
?CCL6: GRTR? P-NUMBER,3 \?CCL8
PRINTR "There are only three bins!"
?CCL8: PRINT REFER-TO-BIN
RTRUE
?CCL3: GET P-NAMW,0
EQUAL? STACK,W?ONE,W?TWO,W?THREE \?CCL10
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL10
EQUAL? PRSA,V?TYPE,V?PUSH \?CCL10
PRINTR "[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]"
?CCL10: EQUAL? PRSA,V?ON,V?SHOOT,V?EXAMINE /?PRD17
EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL15
?PRD17: GET WELDER-TABLE,WELDER-TABLE-POINTER
EQUAL? STACK,P-NUMBER \?CCL15
IN? WELDER,HERE \?CCL15
EQUAL? PRSO,INTNUM \?CCL23
CALL PERFORM,PRSA,WELDER,PRSI
RTRUE
?CCL23: CALL PERFORM,PRSA,PRSO,WELDER
RTRUE
?CCL15: EQUAL? PRSA,V?ENTER \?PRD27
EQUAL? P-PRSA-WORD,W?ENTER \?PRD27
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK \?CTR24
?PRD27: EQUAL? PRSA,V?PUSH \?CCL25
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL25
?CTR24: CALL PERFORM,V?TYPE,INTNUM
RTRUE
?CCL25: EQUAL? PRSA,V?SET \?CCL34
ZERO? PRSI \?CCL34
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL34
EQUAL? P-NUMBER,DIAL-SETTING \?CCL40
PRINT SENILITY-STRIKES
RTRUE
?CCL40: GRTR? P-NUMBER,8000 \?CCL42
PRINTR "The dial goes up to only 8000."
?CCL42: SET 'DIAL-SETTING,P-NUMBER
PRINTR """Click."""
?CCL34: EQUAL? PRSA,V?WAIT-FOR \?CCL44
GRTR? P-NUMBER,40 \?CCL47
PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL47: CALL V-WAIT
RSTACK
?CCL44: EQUAL? PRSA,V?WAIT-UNTIL \?CCL49
GRTR? P-NUMBER,INTERNAL-MOVES \?CCL52
SUB P-NUMBER,INTERNAL-MOVES
LESS? STACK,41 \?CCL52
CALL V-WAIT
RSTACK
?CCL52: PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL49: CALL TOUCHING?,INTNUM
ZERO? STACK \?CCL56
EQUAL? PRSA,V?SHOOT \FALSE
?CCL56: PRINT HUH
RTRUE
.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? PRSO,NOT-HERE-OBJECT \?CCL7
SET 'TBL,P-PRSO
JUMP ?CND1
?CCL7: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: ZERO? PRSO? /?CCL10
CALL PRSO-MOBY-VERB?
ZERO? STACK /?CCL10
SET 'X,TRUE-VALUE
JUMP ?CND8
?CCL10: ZERO? PRSO? \?CND8
CALL PRSI-MOBY-VERB?
ZERO? STACK /?CND8
SET 'X,TRUE-VALUE
?CND8: ZERO? X /?CCL18
CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
ZERO? OBJ /FALSE
EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?CCL26
CALL V-WALK-AROUND
JUMP ?CND16
?CCL26: PRINTC 91
PRINT YOULL-HAVE-TO
PRINTI "be more specific.]"
CRLF
JUMP ?CND16
?CCL18: EQUAL? WINNER,PROTAGONIST \?CCL29
PRINTI "You"
JUMP ?CND27
?CCL29: PRINTI "Looking confused,"
CALL TPRINT,WINNER
PRINTI " says, ""I"
?CND27: PRINTI " can't see"
CALL NAME?,P-XNAM
ZERO? STACK \?CND30
PRINTI " any"
?CND30: CALL NOT-HERE-PRINT,PRSO?
PRINTI " here!"
EQUAL? WINNER,PROTAGONIST /?CND32
PRINTC 34
?CND32: CRLF
?CND16: CALL STOP
RSTACK
.FUNCT PRSO-MOBY-VERB?
EQUAL? PRSA,V?WHAT,V?WHERE,V?WAIT-FOR /TRUE
EQUAL? PRSA,V?WALK-TO,V?CALL,V?SAY /TRUE
EQUAL? PRSA,V?FIND,V?FOLLOW /TRUE
RFALSE
.FUNCT PRSI-MOBY-VERB?
EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT /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
GET 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 GROUND-F
EQUAL? PRSA,V?ENTER,V?CLIMB-ON \?CCL3
ZERO? STUNNED /?CCL6
PRINT LOOK-AROUND
RTRUE
?CCL6: SET 'C-ELAPSED,31
PRINTR "After a brief squat on the floor, you stand again."
?CCL3: EQUAL? PRSA,V?CLEAN \?CCL8
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Do you also do windows?"
?CCL8: EQUAL? PRSA,V?LOOK-UNDER \?CCL10
CALL IMPOSSIBLES
RSTACK
?CCL10: EQUAL? PRSA,V?OPEN \?CCL12
EQUAL? HERE,BOTTOM-OF-AIR-SHAFT \?CCL12
CALL PERFORM,V?OPEN,GRATING
RTRUE
?CCL12: EQUAL? PRSA,V?LEAVE \FALSE
CALL DO-WALK,P?UP
RSTACK
.FUNCT WALLS-F
EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,HOLDING-TANK-LEVEL \FALSE
PRINT BLASTED-OPEN
PRINT PERIOD-CR
RTRUE
.FUNCT CEILING-F
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL3
EQUAL? HERE,PET-STORE \?CCL3
IN? PANEL,HERE \?CCL8
PRINTI "There's a panel mounted in the ceiling. "
CALL PERFORM,V?EXAMINE,PANEL
RTRUE
?CCL8: IN? PANEL,LOCAL-GLOBALS \FALSE
MOVE PANEL,HERE
CALL THIS-IS-IT,PANEL
PRINTR "As you look carefully, you notice something that a casual inspection of the Pet Store would never have uncovered: a panel mounted in the ceiling."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL12
EQUAL? HERE,DOME \?CCL12
PRINT DOME-DESC
CRLF
RTRUE
?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL PERFORM,V?LOOK
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?WALK-AROUND \?CCL9
EQUAL? HERE,BARBERSHOP \?CCL9
ZERO? MIRROR-BROKEN \?CCL9
CALL ULTIMATELY-IN?,PLATINUM-DETECTOR
ZERO? STACK /?CCL9
FSET? PLATINUM-DETECTOR,ACTIVEBIT \?CCL9
CALL PERFORM,V?FOLLOW,PLATINUM-DETECTOR
RTRUE
?CCL9: EQUAL? PRSA,V?SEARCH \?CCL16
ZERO? LIT \?CCL19
PRINT TOO-DARK
CRLF
RTRUE
?CCL19: EQUAL? HERE,GREASY-STRAW \?CCL21
FSET? NECTAR,TOUCHBIT /?CCL21
MOVE NECTAR,HERE
CALL THIS-IS-IT,NECTAR
PRINTR "You spot a cup of Ramosian Fire Nectar behind the counter!"
?CCL21: PRINTR "A cursory search of the room reveals nothing new."
?CCL16: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,GLOBAL-ROOM \FALSE
EQUAL? P-PRSA-WORD,W?THROW \?CCL30
CALL PERFORM,V?THROW,PRSO
RTRUE
?CCL30: CALL PERFORM,V?DROP,PRSO
RTRUE
.FUNCT WINDOW-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
EQUAL? HERE,SHADY-DANS \?CCL6
PRINT DANS-LOT-DESC
CRLF
RTRUE
?CCL6: EQUAL? HERE,DOCKING-BAY-2,CARGO-BAY \?CCL8
PRINTI "You see the interior of"
CALL TRPRINT,SPACETRUCK-OBJECT
RSTACK
?CCL8: EQUAL? SPACETRUCK-COUNTER,5 \?CCL10
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL10
PRINTR "You see an empty docking bay."
?CCL10: EQUAL? SPACETRUCK-COUNTER,-1 \?CCL14
PRINTR "You see a large cargo bay."
?CCL14: EQUAL? SPACETRUCK-COUNTER,4 \?CCL16
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL16
PRINTI " You are approaching the station from slightly above it (on the galactic plane), thus offering a good view of the station's layout. In the center is the large, spherical Command Module. Jutting ""north"" from it is a smaller Sub-Module. Joining the Command Module, at its two other connection points,"
PRINT TANGLE-OF-TUBES
PRINTR " These form a ""village,"" the sort of seedy, unauthorized village that frequently collects around a space station."
?CCL16: PRINTR "You see nothing but the majestic sweep of the galaxy."
?CCL3: EQUAL? PRSA,V?CLEAN \FALSE
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Do you also do floors?"
.FUNCT SIGN-F
EQUAL? HERE,DOME \?CCL3
IN? HOUSING,DOME /?CCL3
CALL CANT-SEE,SIGN
RSTACK
?CCL3: EQUAL? PRSA,V?READ \FALSE
EQUAL? HERE,DOME \?CCL10
CALL PERFORM,V?READ,HOUSING
RTRUE
?CCL10: EQUAL? HERE,GYM \?CCL12
PRINTI """IMPORTANT! The "
PRINTD EXERCISE-MACHINE
PRINTI " has diagnostic frequencies which communicate with each other on frequency 710. Do not bring anything which broadcasts on that frequency within range of the machine!"""
IN? EXERCISE-MACHINE,GYM /?CND13
PRINTI " Strangely, you don't see any "
PRINTD EXERCISE-MACHINE
PRINTR " anywhere in the gym."
?CND13: CRLF
RTRUE
?CCL12: EQUAL? HERE,SHIPPING-ROOM \?CCL16
PRINTR """Always return the forklift to the shipping room when it's not in use! THIS MEANS YOU!"""
?CCL16: EQUAL? HERE,GREASY-STRAW \?CCL18
PRINT RESTAURANT-SIGN-TEXT
CRLF
RTRUE
?CCL18: EQUAL? HERE,TRADING-POST \?CCL20
PRINTR """!!!BEST PRICES IN TOWN!!!
IF YOU DON'T SEE IT ASK FOR IT!
Illegal wares shown by appointment only.
FREZONE (tm) explosive available."""
?CCL20: EQUAL? HERE,PET-STORE \?CCL22
PRINTI """SPECIAL!!! The best pet a lonely spacer could ever hope for!
"
PRINTD BALLOON
PRINTI "s are fascinating critters. Filled with hydrogen, they float freely through the air like small dirigibles.
With their translucent bodies and iridescent skin, they're a beautiful addition to the decor of any living bubble. Docile and friendly, "
PRINTD BALLOON
PRINTI "s are easy to care for, feeding on airborne spores!
Limited supply!! Order yours today!!""
You recall one fact about "
PRINTD BALLOON
PRINTR "s which the sign fails to mention: they propel themselves around by ejecting digestive gasses. This makes them one of the smelliest pets imaginable."
?CCL22: EQUAL? HERE,OPIUM-DEN \?CCL24
PRINTR "The sign is from the government's latest anti-drug crusade. It depicts the president of the Third Galactic Union, her hands crossed across her chest in a defiant pose, with the caption, ""Drugs are a no-no!"" You notice that someone has drawn a mustache on her."
?CCL24: PRINTR """TRADING POST VACUUM STORAGE AREA
Trespassers will be spaced!"""
.FUNCT EQUIPMENT-F
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? HERE,ROBOT-POOL \?CCL6
PRINT ROBOT-POOL-EQUIPMENT-DESC
CRLF
RTRUE
?CCL6: PRINTR "Since this equipment has nothing to do with the filling out or filing of multi-part forms, it's far outside your area of expertise."
?CCL3: EQUAL? PRSA,V?USE \?CCL8
EQUAL? HERE,ROBOT-POOL \?CCL8
PRINTR "Put the form in the slot, you dolt!"
?CCL8: EQUAL? PRSA,V?OFF,V?ON \FALSE
CALL PERFORM,V?EXAMINE,EQUIPMENT
RTRUE
.FUNCT FIXTURES-F
EQUAL? PRSA,V?USE,V?WALK-TO,V?ENTER \?CCL3
PRINTR "This story doesn't go into that sort of detail."
?CCL3: EQUAL? PRSA,V?ON,V?TAKE \FALSE
CALL NOUN-USED,W?SHOWER,FIXTURES
ZERO? STACK /FALSE
CALL PERFORM,V?USE,FIXTURES
RTRUE
.FUNCT HOLE-F
EQUAL? PRSA,V?DRILL-HOLE \?CCL3
EQUAL? PRSO,HOLE /FALSE
?CCL3: EQUAL? PRSA,V?DRILL \?CCL7
EQUAL? PRSO,HOLE \?CCL7
CALL PERFORM,V?DRILL-HOLE,HOLE,WALLS
RTRUE
?CCL7: CALL PRSO-MOBY-VERB?
ZERO? STACK \FALSE
CALL PRSI-MOBY-VERB?
ZERO? STACK \FALSE
CALL CANT-SEE,HOLE
RSTACK
.FUNCT LADDER-F
EQUAL? PRSA,V?CLIMB-UP \?CCL3
CALL DO-WALK,P?UP
RSTACK
?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \FALSE
CALL DO-WALK,P?DOWN
RSTACK
.FUNCT HANDS-F,ACTOR
EQUAL? PRSA,V?APPLAUD \?CCL3
SET 'PRSO,FALSE-VALUE
RFALSE
?CCL3: EQUAL? PRSA,V?SHAKE \?CCL5
CALL FIND-IN,HERE,ACTORBIT,STR?89 >ACTOR
ZERO? ACTOR /?CCL8
CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR
RTRUE
?CCL8: PRINTR "Pleased to meet you."
?CCL5: EQUAL? PRSA,V?COUNT \?CCL10
CALL NOUN-USED,W?FINGER,HANDS
ZERO? STACK /?CCL13
PRINTI "Ten"
JUMP ?CND11
?CCL13: PRINTI "Two"
?CND11: PRINTR ", as usual."
?CCL10: EQUAL? PRSA,V?CLEAN \?CCL15
PRINTR "Done."
?CCL15: EQUAL? PRSA,V?SHOOT \?CCL17
CALL JIGS-UP,STR?90
RSTACK
?CCL17: EQUAL? PRSA,V?DRILL \?CCL19
PRINTI "Hmmm. Are you trying for a hole in "
PRINTD PRSO
PRINTR " to match the hole in your head?"
?CCL19: EQUAL? PRSA,V?TAKE-WITH \FALSE
EQUAL? PRSI,HANDS \FALSE
CALL PERFORM,V?TAKE,PRSO
RTRUE
.FUNCT TONGUE-F
EQUAL? PRSA,V?RUN-OVER,V?PUT-ON \?CCL3
EQUAL? PRSO,TONGUE \?CCL3
CALL PERFORM,V?TASTE,PRSI
RTRUE
?CCL3: EQUAL? PRSA,V?DRILL \FALSE
CALL HANDS-F
RSTACK
.FUNCT ME-F
EQUAL? PRSA,V?TELL \?CCL3
PRINTI "Talking to yourself is a sign of impending mental collapse."
CRLF
CALL STOP
RSTACK
?CCL3: EQUAL? PRSA,V?DRILL \?CCL5
PRINTR "Why bother? Based on that input, you already have holes in your head!"
?CCL5: EQUAL? PRSA,V?GIVE \?CCL7
EQUAL? PRSI,ME \?CCL7
CALL PERFORM,V?TAKE,PRSO
RTRUE
?CCL7: EQUAL? PRSA,V?SHOW \?CCL11
EQUAL? PRSI,ME \?CCL11
CALL PERFORM,V?EXAMINE,PRSO
RTRUE
?CCL11: EQUAL? PRSA,V?MOVE \?CCL15
CALL V-WALK-AROUND
RSTACK
?CCL15: EQUAL? PRSA,V?SEARCH \?CCL17
CALL V-INVENTORY
RSTACK
?CCL17: EQUAL? PRSA,V?MUNG,V?KILL \?CCL19
EQUAL? PRSO,ME \?CCL19
CALL JIGS-UP,STR?91
RSTACK
?CCL19: EQUAL? PRSA,V?SHOOT \?CCL23
CALL JIGS-UP,STR?92
RSTACK
?CCL23: EQUAL? PRSA,V?WHERE,V?FIND \?CCL25
PRINTI "You're in"
CALL TRPRINT,HERE
RSTACK
?CCL25: EQUAL? PRSA,V?FOLLOW \?CCL27
PRINTR "It would be hard not to."
?CCL27: EQUAL? PRSA,V?EXAMINE \?CCL29
CALL V-DIAGNOSE
RSTACK
?CCL29: EQUAL? PRSA,V?ALARM \?CCL31
PRINTR "You are!"
?CCL31: EQUAL? PRSA,V?TAKE \FALSE
PRINTR "How romantic!"
.FUNCT GRUE-F
EQUAL? PRSA,V?WHAT \?CCL3
PRINTR "Grues are vicious, carnivorous beasts first introduced to Earth by an alien spaceship during the 22nd century. Grues spread throughout the galaxy alongside man. Now extinct on all civilized planets, they still exist in some backwater corners of the galaxy. Their favorite diet is Lieutenants First Class, but their insatiable appetite is tempered by their fear of light."
?CCL3: CALL TOUCHING?,GRUE
ZERO? STACK \?CCL5
EQUAL? PRSA,V?WALK-TO,V?EXAMINE \FALSE
?CCL5: PRINTR "There's no grue in sight, fortunately."
.FUNCT FORM-SLOT-F
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
EQUAL? PRSO,CRUMPLED-FORM \?CCL8
PRINTR "The form's crumpledness prevents it from sliding into the slot."
?CCL8: EQUAL? PRSO,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM \?CCL10
EQUAL? HERE,SPACETRUCK \?CCL10
EQUAL? HERE,SPACETRUCK \?CCL15
CALL BOTH-SEATS-NOT-OCCUPIED
ZERO? STACK /?CCL15
PRINTI "The form is spit back out. "
CALL RECORDING,STR?95
RSTACK
?CCL15: REMOVE PRSO
FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED
CALL RECORDING,STR?96
RSTACK
?CCL10: EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?CCL19
EQUAL? HERE,ROBOT-POOL \?CCL19
REMOVE PRSO
FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED
CALL RECORDING,STR?97
RSTACK
?CCL19: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CCL23
EQUAL? HERE,DECK-TWELVE \?CCL23
PRINT FORM-REJECTED
CALL RECORDING,STR?98
RSTACK
?CCL23: EQUAL? PRSO,VILLAGE-FORM \?CCL27
EQUAL? HERE,SOUTH-CONNECTION,EAST-CONNECTION \?CCL27
ZERO? VILLAGE-FORM-VALIDATED \?CCL32
PRINT FORM-REJECTED
CALL RECORDING,STR?98
RSTACK
?CCL32: ADD SCORE,6 >SCORE
INC 'ROBOT-EVILNESS
FSET IRIS-HATCH,OPENBIT
REMOVE PRSO
FSET PRSO,NDESCBIT
PRINTR "The hatch begins irising open, then sparks and smokes and grinds to a halt. However, it's about half dilated, wide enough to pass through. Beyond, you can see a small, dingy connecting tube, rather than the clean and brightly-lit Sub-Module connector you might have expected."
?CCL27: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM /?CTR33
EQUAL? PRSO,VILLAGE-FORM \?CCL34
?CTR33: PRINT FORM-REJECTED
CALL RECORDING,STR?99
RSTACK
?CCL34: GETP P?SIZE,PRSO
LESS? STACK,3 \?CCL38
PRINTI "The slot swallows"
CALL TPRINT-PRSO
PRINTR " and then spits it back."
?CCL38: CALL DOESNT-FIT,STR?100
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS
RTRUE
.FUNCT BOTH-SEATS-NOT-OCCUPIED
IN? PROTAGONIST,PILOT-SEAT \?CCL3
IN? FLOYD,COPILOT-SEAT /FALSE
?CCL3: IN? PROTAGONIST,COPILOT-SEAT \TRUE
IN? FLOYD,PILOT-SEAT /FALSE
RTRUE
.FUNCT KEYPAD-F
EQUAL? PRSA,V?PUSH \FALSE
RANDOM 10
SUB STACK,1 >P-NUMBER
PRINTI "Randomly, you hit "
PRINTN P-NUMBER
PRINTI ". "
CALL PERFORM,V?TYPE,INTNUM
RTRUE
.FUNCT FURNISHING-F
EQUAL? PRSA,V?SEARCH,V?OPEN,V?ENTER /?CTR2
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL3
?CTR2: PRINTR "You merely find a few personal items of little interest."
?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
PRINTI "The "
PRINTD PRSI
PRINTI " is such a mess that you can't find a good spot to put"
CALL TRPRINT,PRSO
RSTACK
.FUNCT VILLAGE-F
EQUAL? HERE,SPACETRUCK \?CCL3
EQUAL? SPACETRUCK-COUNTER,4 \?CTR2
EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL3
?CTR2: CALL CANT-SEE,VILLAGE
RSTACK
?CCL3: EQUAL? PRSA,V?EXIT,V?WALK-TO,V?ENTER /?CTR8
EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?CCL9
?CTR8: CALL V-WALK-AROUND
RSTACK
?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,SPACETRUCK \FALSE
PRINTI "The village"
PRINT TANGLE-OF-TUBES
CRLF
RTRUE
.FUNCT BED-F
EQUAL? PRSA,V?WALK-TO \?CCL3
CALL GLOBAL-IN?,BED,HERE
ZERO? STACK \?CCL3
PRINTR "There's no bed here!"
?CCL3: EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL7
ZERO? STUNNED /?CCL10
CALL YOURE-STUNNED
RSTACK
?CCL10: GRTR? SLEEPY-LEVEL,0 \?CCL12
MOVE PROTAGONIST,BED
CALL QUEUE,I-FALL-ASLEEP,22
CALL DEQUEUE,I-SLEEP-WARNINGS
PRINTR "Ahhh...the bed is soft and comfortable. You should be asleep in short order."
?CCL12: MOVE PROTAGONIST,BED
PRINTR "You are now in bed."
?CCL7: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD16
EQUAL? PRSA,V?DROP \?CCL14
?PRD16: CALL QUEUED?,I-FALL-ASLEEP
ZERO? STACK /?CCL14
PRINTR "But you're so tired and this bed is so comfy!"
?CCL14: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?CCL20
CALL PERFORM,V?DISEMBARK,BED
RTRUE
?CCL20: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL22
EQUAL? PRSI,BED \?CCL22
MOVE PRSO,HERE
PRINTI "The "
PRINTD PRSO
PRINTI " bounces off the bed"
PRINT LANDS-ON-FLOOR
CRLF
RTRUE
?CCL22: EQUAL? PRSA,V?LOOK-UNDER \?CCL26
IN? PROTAGONIST,BED \?CCL26
PRINTR "You're IN the bed, so unless you have X-ray vision..."
?CCL26: EQUAL? PRSA,V?LOOK-UNDER \?CCL30
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL30
FSET? VALIDATION-STAMP,TOUCHBIT /?CCL30
FSET VALIDATION-STAMP,TOUCHBIT
MOVE VALIDATION-STAMP,HERE
CALL THIS-IS-IT,VALIDATION-STAMP
PRINTI "You discover a "
PRINTD VALIDATION-STAMP
PRINTR "!"
?CCL30: EQUAL? PRSA,V?SHOOT,V?KILL,V?DRILL \FALSE
PRINTR "That would be a clear case of mattresscide!"
.FUNCT SLEEP-F
EQUAL? PRSA,V?TAKE,V?WALK-TO \FALSE
CALL V-SLEEP
RSTACK
.FUNCT I-SLEEP-WARNINGS
IN? WELDER,HERE \?PRD4
GRTR? SLEEPY-LEVEL,3 /?CCL2
?PRD4: ZERO? STUNNED /?CND1
?CCL2: CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'SLEEPY-LEVEL
PRINTI " "
IN? PROTAGONIST,BED \?CCL9
CALL DEQUEUE,I-SLEEP-WARNINGS
CALL QUEUE,I-FALL-ASLEEP,16
PRINTI "You suddenly realize how tired you were and how comfortable the bed is. You should be asleep in no time."
CRLF
JUMP ?CND7
?CCL9: EQUAL? SLEEPY-LEVEL,1 \?CCL11
CALL QUEUE,I-SLEEP-WARNINGS,320
PRINTI "You begin to feel weary. It might be time to think about finding a nice safe place to sleep."
CRLF
JUMP ?CND7
?CCL11: EQUAL? SLEEPY-LEVEL,2 \?CCL13
CALL QUEUE,I-SLEEP-WARNINGS,160
PRINTI "You're really tired now. You'd better find a place to sleep real soon."
CRLF
JUMP ?CND7
?CCL13: EQUAL? SLEEPY-LEVEL,3 \?CCL15
CALL QUEUE,I-SLEEP-WARNINGS,80
PRINTI "If you don't get some sleep soon you'll probably drop."
CRLF
JUMP ?CND7
?CCL15: EQUAL? SLEEPY-LEVEL,4 \?CCL17
CALL QUEUE,I-SLEEP-WARNINGS,40
PRINTI "You can barely keep your eyes open."
CRLF
JUMP ?CND7
?CCL17: EQUAL? HERE,BED \?CCL20
PRINTI "You slowly sink into a deep and blissful sleep."
JUMP ?CND18
?CCL20: CALL GLOBAL-IN?,BED,HERE
ZERO? STACK /?CCL22
MOVE PROTAGONIST,BED
PRINTI "You climb into one of the beds and immediately fall asleep."
JUMP ?CND18
?CCL22: PRINT YOU-CANT
PRINTI "stay awake a moment longer. You drop "
IN? PROTAGONIST,HERE \?CND23
FSET? HERE,WEIGHTLESSBIT /?CND23
PRINTI "to the deck and fall "
?CND23: PRINTI "into a deep but fitful sleep."
?CND18: CALL WAKING-UP
?CND7: IN? PROTAGONIST,BED /FALSE
CALL STOP
RSTACK
.FUNCT I-FALL-ASLEEP
IN? WELDER,HERE \?CND1
CALL QUEUE,I-FALL-ASLEEP,2
?CND1: PRINTI " You slowly sink into a deep sleep."
CALL DEQUEUE,I-FALL-ASLEEP
CALL WAKING-UP
RSTACK
.FUNCT WAKING-UP,X,N,?TMP1
CRLF
CRLF
IN? PROTAGONIST,BED /?CND1
MOVE PROTAGONIST,HERE
?CND1: FSET? SPACESUIT,WORNBIT \?CCL5
CALL JIGS-UP,STR?107
JUMP ?CND3
?CCL5: EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL7
EQUAL? HERE,SPACETRUCK \?CCL7
PRINTI "You wake up gasping for air! The "
PRINTD SPACETRUCK-OBJECT
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CCL12
PRINTI " is dead in uncharted space and it"
JUMP ?CND10
?CCL12: PRINTC 39
?CND10: PRINTI "s oxygen is running out!"
CRLF
CALL I-SUFFOCATE
JUMP ?CND3
?CCL7: EQUAL? SPACETRUCK-COUNTER,-1 \?CCL14
PRINTI "A clanging noise wakes you up, and you slowly become aware that you are in the Duffy's brig, and furthermore, you are wearing the uniform of an Ensign Ninth Class! You trace the clanging noise to a pipe in your cell.
Placing your ear against the pipe, you hear, ""Psst! Grapevine news! Some dumb kripping "
PRINT LFC
PRINTI " fell asleep on Deck Twelve in the middle of some big assignment! The poor trot-head's been broken to Ensign Ninth, and there's talk of a court-martial!""
Sure enough, the next morning you are led in front of a firing squad. Moral: don't screw up vital assignments like picking up "
PRINT FORM-NAME
CALL JIGS-UP,STR?9
JUMP ?CND3
?CCL14: IN? PROTAGONIST,HERE \?PRD18
FSET? DOCKING-BAY-2,TOUCHBIT \?PRD18
MUL DAY,40 >?TMP1
RANDOM 100
LESS? ?TMP1,STACK \?CTR15
?PRD18: CALL ULTIMATELY-IN?,OSTRICH-NIP
ZERO? STACK /?PRD22
IN? OSTRICH,HERE /?CTR15
?PRD22: IN? EXPLOSIVE,DRILLED-HOLE \?CCL16
?CTR15: CALL JIGS-UP,STR?108
JUMP ?CND3
?CCL16: ZERO? EXPLOSIVE-CONNECTED /?CCL26
ZERO? TIMER-CONNECTED /?CCL26
IN? DIODE-M,DETONATOR \?CCL26
GRTR? TIMER-SETTING,0 \?CCL26
CALL META-LOC,EXPLOSIVE
EQUAL? STACK,HERE \?CCL33
CALL JIGS-UP,STR?109
JUMP ?CND3
?CCL33: CALL DESTROY-EXPLOSIVE-CONT
REMOVE TIMER
REMOVE EXPLOSIVE
REMOVE DETONATOR
JUMP ?CND3
?CCL26: RANDOM 100
LESS? 60,STACK /?CND3
PRINTI "..."
CALL PICK-ONE,DREAMS
PRINT STACK
PRINT ELLIPSIS
?CND3: INC 'DAY
INC 'ROBOT-EVILNESS
CALL I-ROBOT-EVILNESS
SET 'TIMER-SETTING,0
CALL DEQUEUE,I-TIMER
SET 'SLEEPY-LEVEL,0
SET 'SUIT-PRESSED,FALSE-VALUE
SET 'FLOYD-ANGUISHED,FALSE-VALUE
RANDOM 80
ADD 1600,STACK >INTERNAL-MOVES
GRTR? DAY,2 \?CCL37
SET 'MOVES,9947
JUMP ?CND35
?CCL37: CALL QUEUE,I-MESSAGE,943
ADD SCORE,3 >SCORE
SET 'MOVES,INTERNAL-MOVES
?CND35: FCLEAR AUTO-DOOR,TOUCHBIT
CALL QUEUE,I-SLEEP-WARNINGS,5900
CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE
ZERO? STACK \?CND38
MOVE EXPLOSIVE,DECK-TWELVE
CALL REMOVE-CAREFULLY,EXPLOSIVE
CALL DEQUEUE,I-EXPLOSIVE-MELT
?CND38: FSET? HEADLAMP,ONBIT \?CND40
FCLEAR HEADLAMP,ACTIVEBIT
FCLEAR HEADLAMP,ONBIT
SET 'HEADLAMP-COUNTER,0
?CND40: CALL RUNNING?,I-LOG-READER
ZERO? STACK /?CND42
REMOVE LOG-READER
CALL DEQUEUE,I-LOG-READER
FCLEAR COMMANDERS-OFFICE,TOUCHBIT
?CND42: GRTR? SOUP-WARMTH,0 \?CND44
FSET? THERMOS,OPENBIT \?CCL48
SET 'SOUP-WARMTH,0
JUMP ?CND44
?CCL48: SUB SOUP-WARMTH,30 >SOUP-WARMTH
?CND44: FSET OSTRICH,TOUCHBIT
CALL ROB,PROTAGONIST,HERE
USL
PRINTI "***** NOVEM "
ADD DAY,3
PRINTN STACK
PRINTI ", 11349 *****"
CRLF
CRLF
PRINTI "You awake "
ZERO? LIT \?CCL51
PRINTI "in darkness."
JUMP ?CND49
?CCL51: CALL QUEUED?,I-LIGHTS-OUT
ZERO? STACK /?CCL53
CALL DEQUEUE,I-LIGHTS-OUT
CALL I-LIGHTS-OUT,TRUE-VALUE
PRINTI "slowly, aware that something has changed. Aha! The lights have all gone out while you slept!"
JUMP ?CND49
?CCL53: LOC PROTAGONIST
EQUAL? STACK,BED,PILOT-SEAT,COPILOT-SEAT \?CCL55
PRINTI "feeling refreshed and ready to face anything this new day might care to throw at you."
JUMP ?CND49
?CCL55: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep."
?CND49: EQUAL? DAY,4 \?CND56
FSET? SAFE,OPENBIT /?CCL60
CALL QUEUE,I-LIGHTS-OUT,177
JUMP ?CND56
?CCL60: CALL QUEUED?,I-ANNOUNCEMENT
ZERO? STACK \?CND56
CALL QUEUE,I-ANNOUNCEMENT,383
?CND56: GRTR? HUNGER-LEVEL,0 \?CCL64
SET 'HUNGER-LEVEL,3
CALL QUEUE,I-HUNGER-WARNINGS,200
PRINTI " You're also incredibly famished. Better get some breakfast!"
JUMP ?CND62
?CCL64: CALL QUEUE,I-HUNGER-WARNINGS,400
?CND62: CRLF
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND65
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND65
CALL QUEUE,I-WELDER,-1
CALL DEQUEUE,I-SPACETRUCK
FCLEAR SPACETRUCK,WEIGHTLESSBIT
ADD SCORE,5 >SCORE
SET 'SPACETRUCK-COUNTER,5
PRINTI " You notice that, while you slept, the truck has docked itself in one of the space station's docking bays."
CRLF
?CND65: EQUAL? DAY,3 \?CND69
FCLEAR ELEVATOR,WEIGHTLESSBIT
FSET EXERCISE-MACHINE,TOUCHBIT
MOVE EXERCISE-MACHINE,COMPUTER-CONTROL
CALL ROB,EXERCISE-MACHINE,GYM
FSET? CHRONOMETER,WORNBIT \?CND69
PRINTI " "
CALL PERFORM,V?EXAMINE,CHRONOMETER
?CND69: FSET? FLOYD,ACTIVEBIT \?CND73
IN? FLOYD,FACTORY /?CND73
EQUAL? HERE,AIRLOCK /?CND73
SET 'FLOYD-SPOKE,TRUE-VALUE
PRINTI " Floyd "
GRTR? ROBOT-EVILNESS,13 \?CCL80
PRINTI "is rudely kicking you"
IN? PROTAGONIST,BED \?CND81
PRINTI "r mattress"
?CND81: PRINTI ". ""Trot it! Will you kripping wake up already? Floyd getting bored!"""
CRLF
JUMP ?CND78
?CCL80: PRINTI "bounces impatiently at "
IN? PROTAGONIST,BED \?CCL85
PRINTI "the foot of the bed"
JUMP ?CND83
?CCL85: PRINTI "your side"
?CND83: ZERO? PLATO-INTRODUCED /?CND86
ZERO? PLATO-ATTACK-COUNTER \?CND86
MOVE PLATO,HERE
PRINTI ". Plato is nearby, leafing through his book"
?CND86: ZERO? PLATO-INTRODUCED \?CCL92
PRINTI ", along with a slightly older-looking robot. ""Wake up and meet Floyd's new friend,"" says Floyd with unbounded exuberance and a wide grin."
CRLF
CALL I-PLATO,TRUE-VALUE
JUMP ?CND78
?CCL92: PRINTI ". ""About time you woke up, you lazy "
GRTR? ROBOT-EVILNESS,9 \?CCL95
PRINTI "slob!"" says Floyd. ""It's getting pretty trotting dull around he"
JUMP ?CND93
?CCL95: PRINTI "bones!"" says Floyd. ""Let's explore around some mo"
?CND93: PRINTI "re!"""
CRLF
?CND78: MOVE FLOYD,HERE
?CND73: ZERO? LIT /?CND96
CRLF
CALL V-LOOK
?CND96: CALL STOP
RSTACK
.FUNCT I-HUNGER-WARNINGS
ZERO? STUNNED /?CND1
CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'HUNGER-LEVEL
PRINTI " "
EQUAL? HUNGER-LEVEL,1 \?CCL5
CALL QUEUE,I-HUNGER-WARNINGS,450
PRINTI "A growl from your stomach warns that you're getting pretty hungry and thirsty."
CRLF
JUMP ?CND3
?CCL5: EQUAL? HUNGER-LEVEL,2 \?CCL7
CALL QUEUE,I-HUNGER-WARNINGS,300
PRINTI "You're now really ravenous and your lips are quite parched."
CRLF
JUMP ?CND3
?CCL7: EQUAL? HUNGER-LEVEL,3 \?CCL9
CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTI "You're starting to feel faint from lack of food and liquid."
CRLF
JUMP ?CND3
?CCL9: EQUAL? HUNGER-LEVEL,4 \?CCL11
CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTI "If you don't eat or drink something in a few millichrons, you'll probably pass out."
CRLF
JUMP ?CND3
?CCL11: EQUAL? HUNGER-LEVEL,5 \?CND3
CALL JIGS-UP,STR?110
?CND3: CALL STOP
RSTACK
.FUNCT WELDER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? WELDER-COUNTER,1 \?CCL6
PRINTI "This welder, which is marked ""Welder Number "
GET WELDER-TABLE,WELDER-TABLE-POINTER
PRINTN STACK
PRINTR ","" seems to be moving purposefully toward you, its welding extensions quivering with...excitement?"
?CCL6: EQUAL? WELDER-COUNTER,2 \?CCL8
PRINTR "There definitely seems to be something menacing about its behavior."
?CCL8: PRINTR "The welder is now almost upon you!"
?CCL3: EQUAL? PRSA,V?WHAT \?CCL10
PRINTI "A "
PRINTD WELDER
PRINTI " is a very simple machine which repairs any leaks or holes in the hull of any sort of space habitat. Because of the potentially catastrophic effects of a break in the integrity of a hull on the habitat's air supply, "
PRINTD WELDER
PRINTR "s are kept active at all times, roaming around with their sensing devices alert for the tiniest leak."
?CCL10: EQUAL? PRSA,V?SHOOT \?CCL12
REMOVE WELDER
GET WELDER-TABLE,NUMBER-OF-WELDERS
PUT WELDER-TABLE,WELDER-TABLE-POINTER,STACK
DEC 'NUMBER-OF-WELDERS
SET 'WELDER-COUNTER,0
ZERO? NUMBER-OF-WELDERS \?CND13
CALL DEQUEUE,I-WELDER
?CND13: PRINTI "The welder is enveloped by red-hot plasma rays. It glows ever brighter in the heat of the rays, seems to shimmer like a mirage, and then suddenly vanishes! A wave of hot vapor pushes you backwards."
CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /?CND15
PRINTI " As the heat wave hits the explosive, it "
PRINT SUBLIMES-INTO-FREZONE
CALL DEQUEUE,I-EXPLOSIVE-MELT
CALL REMOVE-CAREFULLY,EXPLOSIVE
?CND15: IN? OSTRICH,HERE \?CCL19
FSET? OSTRICH,TOUCHBIT \?CCL19
PRINTC 32
CALL PERFORM,V?SCARE,OSTRICH
RSTACK
?CCL19: CRLF
RTRUE
?CCL12: EQUAL? PRSA,V?OFF \?CCL23
PRINTR "There's no apparent on-off switch."
?CCL23: EQUAL? PRSA,V?ON \?CCL25
PRINTR "It is!"
?CCL25: EQUAL? PRSA,V?MUNG,V?KILL \FALSE
PRINTR "It's doubtful that you could even make a dent in the welder."
.FUNCT TOUCHING?,THING
EQUAL? PRSO,THING \?CCL3
EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE
EQUAL? PRSA,V?CLEAN,V?KISS,V?ENTER /TRUE
EQUAL? PRSA,V?PUSH,V?CLOSE,V?LOOK-UNDER /TRUE
EQUAL? PRSA,V?MOVE,V?OPEN,V?KNOCK /TRUE
EQUAL? PRSA,V?SET,V?SHAKE,V?RAISE /TRUE
EQUAL? PRSA,V?UNLOCK,V?LOCK,V?HUG /TRUE
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-DOWN,V?CLIMB-ON /TRUE
EQUAL? PRSA,V?ON,V?OFF,V?THROW /TRUE
EQUAL? PRSA,V?TASTE,V?BITE,V?TICKLE /TRUE
EQUAL? PRSA,V?LOOK-INSIDE,V?STAND-ON,V?TIE /TRUE
EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /TRUE