-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathstation.zap
2426 lines (2190 loc) · 78.7 KB
/
station.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 DOCKING-BAY-2-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a tall, narrow bay. Your "
PRINTD SPACETRUCK-OBJECT
PRINTI " is docked here. Its hatch is "
CALL OPEN-CLOSED,SPACETRUCK-HATCH
PRINTI ". To the east is the huge door into the station."
RTRUE
.FUNCT LEVEL-FIVE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are in the central lobby of the middle level of the space station. The elevator "
EQUAL? ELEVATOR-LEVEL,5 /?CND4
PRINTI "shaft "
?CND4: PRINTI "and call button lie to the east, and the corridor heads around the shaft to the northeast and southeast. Doors lead north and west"
PRINT LADDER-LEADS
RTRUE
.FUNCT JAMMER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "The jammer is a black box with a short antenna. It has "
IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?CCL6
PRINTI "a "
PRINTD TWENTY-PRONG-FROMITZ-BOARD
PRINTI " plugged into it"
JUMP ?CND4
?CCL6: PRINTI "twenty tiny sockets on one side"
?CND4: PRINTI ". The jammer, which is o"
FSET? JAMMER,ACTIVEBIT \?CCL9
PRINTC 110
JUMP ?CND7
?CCL9: PRINTI "ff"
?CND7: PRINTI ", looks as if it can be set to any frequency between 0 and 1400; it is currently set to "
PRINTN JAMMER-SETTING
PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL11
PRINT HUH
RTRUE
?CCL11: EQUAL? PRSA,V?PUT \?CCL13
EQUAL? PRSI,JAMMER \?CCL13
EQUAL? PRSO,TWENTY-PRONG-FROMITZ-BOARD /?CCL13
CALL DOESNT-FIT,STR?236
RSTACK
?CCL13: EQUAL? PRSA,V?CONNECT \?CCL18
EQUAL? TWENTY-PRONG-FROMITZ-BOARD,PRSO,PRSI \?CCL18
CALL PERFORM,V?PUT,TWENTY-PRONG-FROMITZ-BOARD,JAMMER
RTRUE
?CCL18: EQUAL? PRSA,V?CONNECT \?CCL22
EQUAL? TWELVE-PRONG-FROMITZ-BOARD,PRSO,PRSI \?CCL22
CALL PERFORM,V?PUT,TWELVE-PRONG-FROMITZ-BOARD,JAMMER
RTRUE
?CCL22: EQUAL? PRSA,V?SET \?CCL26
EQUAL? PRSO,JAMMER \?CCL26
ZERO? PRSI \?CCL31
PRINT NEXT-TIME
RTRUE
?CCL31: EQUAL? PRSI,INTNUM /?CCL33
PRINT HUH
RTRUE
?CCL33: EQUAL? P-NUMBER,JAMMER-SETTING \?CCL35
PRINT SENILITY-STRIKES
RTRUE
?CCL35: LESS? P-NUMBER,0 /?CTR36
GRTR? P-NUMBER,1400 \?CCL37
?CTR36: PRINTR "The jammer's range is 0 to 1400."
?CCL37: SET 'JAMMER-SETTING,P-NUMBER
PRINTI "You set the jammer to "
PRINTN JAMMER-SETTING
IN? FORKLIFT,HERE \?CCL42
PRINTI ". "
CALL PERFORM,V?OFF,JAMMER
RTRUE
?CCL42: PRINT PERIOD-CR
RTRUE
?CCL26: EQUAL? PRSA,V?COUNT \?CCL44
CALL NOUN-USED,W?SOCKETS,JAMMER
ZERO? STACK /?CCL44
PRINTR "20."
?CCL44: EQUAL? PRSA,V?OFF \FALSE
IN? FORKLIFT,HERE \FALSE
FCLEAR JAMMER,ACTIVEBIT
REMOVE FORKLIFT
REMOVE EXERCISE-MACHINE
CALL DEQUEUE,I-FORKLIFT
PRINTI "The "
PRINTD EXERCISE-MACHINE
PRINTR " springs to life, its powerful arms clamping shut on the forklift. The vehicle belches exhaust as it tries to free itself. The two machines tumble over in a death grip and then explode! When the smoke clears, there's not a trace of either machine."
.FUNCT DISPENSER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
GETP DISPENSER,P?FDESC
PRINT STACK
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?PUT \?CCL5
EQUAL? PRSI,DISPENSER \?CCL5
EQUAL? PRSO,COIN \?CCL10
REMOVE COIN
FSET DISPENSER,TOUCHBIT
PRINTR """Clink!"" The coin drops into the slot."
?CCL10: CALL DOESNT-FIT,STR?241
RSTACK
?CCL5: EQUAL? PRSA,V?DRILL \?CCL12
PRINTI "We quote from the Stellar Patrol Demolitions Training Manual, Edition 3754-GS108. ""Why You Should Never Drill Into Active Machinery: Reason #7. You may"
PRINT STRIKE-POWER-SOURCE
PRINTI """
As you drill into the dispenser, you"
PRINT STRIKE-POWER-SOURCE
CALL JIGS-UP,STR?242
RSTACK
?CCL12: EQUAL? PRSA,V?SHOOT \?CCL14
REMOVE DISPENSER
PRINTR "Okay, but you'll have to answer to the Stellar Patrol Dispensing Machine Company... BLAM! The dispenser is dispensed."
?CCL14: EQUAL? PRSA,V?MUNG,V?KILL,V?KICK /?PRD18
EQUAL? PRSA,V?PUSH,V?SHAKE \?CCL16
?PRD18: FIRST? DISPENSER \?CCL16
PRINTI "This fails to dislodge the "
FIRST? DISPENSER /?KLU23
?KLU23: PRINTD STACK
PRINTR ", but it does help relieve some of your aggressive feelings toward the stupid dispenser."
?CCL16: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS
RTRUE
.FUNCT COIN-SLOT-F
IN? DISPENSER,HERE /?CCL3
CALL CANT-SEE,PSEUDO-OBJECT
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL5
PRINT ONLY-BLACKNESS
RTRUE
?CCL5: EQUAL? PRSA,V?SHOOT \?CCL7
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
RTRUE
?CCL7: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
CALL PERFORM,V?PUT,PRSO,DISPENSER
RTRUE
.FUNCT DISPENSER-SCREEN-F
IN? DISPENSER,HERE /?CCL3
CALL CANT-SEE,PSEUDO-OBJECT
RSTACK
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL5
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
RTRUE
?CCL5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
PRINTR """--- STELLAR PATROL VENDO-MATIC ---
all items: 1 galakmid
1. Patrol Songbook (SOLD OUT)
2. Set of Postcards (SOLD OUT)
3. ID Card Polish (SOLD OUT)
4. Pilot's Compass (SOLD OUT)
5. Patrol Pen & Pencil Set (SOLD OUT)
6. All-Purpose Timer
7. Pocket Computer (SOLD OUT)
8. Birth Control Pills (SOLD OUT)
9. Large Drill Bit"""
.FUNCT DISPENSER-HOLE-F
IN? DISPENSER,HERE /?CCL3
CALL CANT-SEE,PSEUDO-OBJECT
RSTACK
?CCL3: EQUAL? PRSA,V?REACH-IN \?CCL5
IN? TIMER,DISPENSER /?CTR7
IN? LARGE-BIT,DISPENSER \?CCL8
?CTR7: PRINTR "You can just feel something with your fingertips, but you can't get a grip on it!"
?CCL8: PRINTR "You reach as far into the dispenser as you can, but feel nothing."
?CCL5: EQUAL? PRSA,V?SHOOT \?CCL12
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
RTRUE
?CCL12: EQUAL? PRSA,V?LOOK-INSIDE \?CCL14
PRINT ONLY-BLACKNESS
RTRUE
?CCL14: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
PRINTI "You shove"
CALL TPRINT-PRSO
PRINTI " up into the hole."
EQUAL? PRSO,OSTRICH-NIP \?CCL21
IN? OSTRICH,HERE \?CCL21
PRINTI " The ostrich squawks and sticks its head up the hole after the nip."
CALL OSTRICH-INTO-DISPENSER
PRINTI " A moment later, the nip falls to the deck. "
CALL PERFORM,V?GIVE,OSTRICH-NIP,OSTRICH
RTRUE
?CCL21: MOVE PRSO,HERE
PRINTI " A moment later, it drops out"
PRINT LANDS-ON-FLOOR
CRLF
RTRUE
.FUNCT OSTRICH-INTO-DISPENSER
FIRST? DISPENSER \FALSE
INC 'ROBOT-EVILNESS
ADD SCORE,6 >SCORE
PRINTI " It jerks its head back out, squawking even more loudly, and a moment later a "
FIRST? DISPENSER /?KLU4
?KLU4: PRINTD STACK
PRINTI " falls out of the hole"
PRINT LANDS-ON-FLOOR
FIRST? DISPENSER /?KLU5
?KLU5: MOVE STACK,HERE
RTRUE
.FUNCT TIMER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "As advertised, it is a standard, all-purpose timer. It can be set to any number up to 100, and is currently set to "
PRINTN TIMER-SETTING
PRINTI ". The timer "
ZERO? TIMER-CONNECTED /?CCL6
PRINTI "is connected to a detonator"
JUMP ?CND4
?CCL6: PRINTI "has one connection point"
?CND4: CALL QUEUED?,I-TIMER
ZERO? STACK /?CND7
PRINTI ", and is ticking loudly"
?CND7: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?SET \?CCL10
ZERO? PRSI \?CCL13
PRINT NEXT-TIME
RTRUE
?CCL13: EQUAL? PRSI,INTNUM /?CCL15
PRINTR "You can set the timer only to a number!"
?CCL15: GRTR? P-NUMBER,100 \?CCL17
PRINTR "The timer has settings up to only 100."
?CCL17: SET 'TIMER-SETTING,P-NUMBER
PRINTI "You set the timer to "
PRINTN TIMER-SETTING
GRTR? TIMER-SETTING,0 \?CCL20
ADD C-ELAPSED,2
CALL QUEUE,I-TIMER,STACK
PRINTI ". Instantly, it begins ticking loudly"
JUMP ?CND18
?CCL20: CALL DEQUEUE,I-TIMER
?CND18: PRINT PERIOD-CR
RTRUE
?CCL10: EQUAL? PRSA,V?DISCONNECT \?CCL22
ZERO? PRSI \?CCL22
ZERO? TIMER-CONNECTED /?CCL22
CALL PERFORM,PRSA,TIMER,DETONATOR
RTRUE
?CCL22: EQUAL? PRSA,V?CONNECT \?CCL27
EQUAL? EXPLOSIVE,PRSO,PRSI \?CCL27
PRINT YOU-CANT
PRINTR "connect the timer directly to the explosive."
?CCL27: EQUAL? PRSA,V?OFF \?CCL31
CALL QUEUED?,I-TIMER
ZERO? STACK /?CCL31
SET 'P-NUMBER,0
CALL PERFORM,V?SET,TIMER,INTNUM
RTRUE
?CCL31: EQUAL? PRSA,V?LISTEN \FALSE
CALL QUEUED?,I-TIMER
ZERO? STACK /FALSE
PRINTR """Tick, tick..."""
.FUNCT DESTROY-EXPLOSIVE-CONT,L,X
LOC EXPLOSIVE >L
?PRG1: IN? L,ROOMS /TRUE
FSET? L,VEHBIT /TRUE
LOC L >X
EQUAL? L,PEDESTAL /?CND7
REMOVE L
?CND7: SET 'L,X
JUMP ?PRG1
.FUNCT CELL-F
EQUAL? PRSA,V?OPEN,V?WALK-TO,V?ENTER /?CTR2
EQUAL? PRSA,V?UNLOCK \?CCL3
?CTR2: PRINTR "The cells are all locked with high-security locks."
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "The cells are all empty."
.FUNCT BRIG-LOCK-F
EQUAL? PRSA,V?PICK,V?UNLOCK,V?OPEN \?CCL3
EQUAL? PRSI,KEY \?CCL6
SET 'PRSO,KEY
CALL DOESNT-FIT,STR?246
RSTACK
?CCL6: CALL YUKS
RSTACK
?CCL3: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,KEY \FALSE
CALL DOESNT-FIT,STR?246
RSTACK
.FUNCT EAST-CONNECTION-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "The corridor widens to the east, the connection point for a Military Sub-Module. An iris hatch at the connection point is "
FSET? IRIS-HATCH,OPENBIT \?CCL6
PRINTI "frozen open, revealing not a sub-module connector but a small, grimy connector"
JUMP ?CND4
?CCL6: PRINTI "shut tight"
?CND4: PRINTI ". Next to the hatch is a slot. There is a door northwest of here, and doorways to the south and southwest. There's a junction in the corridor west of you."
RTRUE
.FUNCT STATION-CONTROL-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is the nerve center of the space station, where every system can be monitored. "
LESS? DAY,3 \?CND4
EQUAL? DAY,1 \?CCL8
PRINTI "A couple"
JUMP ?CND6
?CCL8: EQUAL? DAY,2 \?CND6
PRINTI "Several"
?CND6: PRINTI " of the monitors are blinking red. "
?CND4: PRINTI "The exits are south, northeast and west."
RTRUE
.FUNCT SYSTEM-MONITORS-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
GET 0,8
BOR STACK,2
PUT 0,8,STACK
PRINTI "System: Status:
COMMUNICATION "
GRTR? DAY,2 \?CCL6
PRINTI "GREEN"
JUMP ?CND4
?CCL6: PRINTI "RED"
?CND4: PRINTI "
LIFE SUPPORT "
EQUAL? DAY,2 \?CCL9
LESS? INTERNAL-MOVES,6500 \?CCL12
PRINTI "YELLOW"
JUMP ?CND7
?CCL12: PRINTI "RED"
JUMP ?CND7
?CCL9: PRINTI "GREEN"
?CND7: PRINTI "
FOOD PRODUCTION "
GRTR? DAY,2 \?CCL15
PRINTI "GREEN"
JUMP ?CND13
?CCL15: PRINTI "RED"
?CND13: PRINTI "
GRAVITY "
EQUAL? DAY,2 \?CCL18
PRINTI "YELLOW"
JUMP ?CND16
?CCL18: PRINTI "GREEN"
?CND16: PRINTI "
COMPUTER GREEN
POWER "
EQUAL? DAY,2 \?CCL21
LESS? INTERNAL-MOVES,4300 \?CCL24
PRINTI "YELLOW"
JUMP ?CND19
?CCL24: PRINTI "RED"
JUMP ?CND19
?CCL21: PRINTI "GREEN"
?CND19: PRINTI "
PRINTING "
EQUAL? DAY,1 \?CCL27
PRINTI "YELLOW"
JUMP ?CND25
?CCL27: GRTR? DAY,3 \?CCL29
PRINTI "GREEN"
JUMP ?CND25
?CCL29: PRINTI "RED"
?CND25: CRLF
GET 0,8
BAND STACK,-3
PUT 0,8,STACK
RTRUE
.FUNCT COMM-CENTER-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is the Deep-Space Communication Center, which keeps the station in touch with the Stellar Patrol Command and the rest of the Third Galactic Union. Although regulations state that the Comm Center must be monitored around the clock, ten chrons per day, there's no one on duty.
Most of the equipment here is too complicated for anyone without Deep-Space Communication Training to use. However, the red button of the wide-band emergency beacon is well-marked. Next to the button is a large screen for displaying incoming messages. "
CALL SCREEN-F,TRUE-VALUE
PRINTI " The only exit is north."
RTRUE
.FUNCT COMM-BUTTON-F
CALL TOUCHING?,PSEUDO-OBJECT
ZERO? STACK /FALSE
PRINTI "The instant you touch the button, a powerful electric shock makes you jerk back."
GRTR? ROBOT-EVILNESS,14 \?CCL6
CALL JIGS-UP,STR?249
JUMP ?CND4
?CCL6: GRTR? ROBOT-EVILNESS,7 \?CND4
CALL CCOUNT,PROTAGONIST
GRTR? STACK,0 \?CND4
CALL ROB,PROTAGONIST,HERE
PRINTR " The shock causes you to drop everything, and leaves your limbs twitching all over."
?CND4: CRLF
RTRUE
.FUNCT SCREEN-F,DESCRIBE-SCREEN=0
EQUAL? PRSA,V?EXAMINE /?CTR2
ZERO? DESCRIBE-SCREEN /?CCL3
?CTR2: PRINTI "At the moment, the screen is "
ZERO? MESSAGE-RECEIVED /?CCL8
PRINTI "displaying a message."
JUMP ?CND6
?CCL8: PRINTI "blank."
?CND6: ZERO? DESCRIBE-SCREEN \TRUE
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?READ \FALSE
ZERO? MESSAGE-RECEIVED /?CCL15
PRINTI """From: Forms Control Officer, S.P.S. Duffy
To: "
PRINT LFC
PRINTI " 1451-352-716
Re: Current assignment
Msg: Two thousand reams of "
PRINT FORM-NAME
PRINTR " found in mislabelled pallet. No additional supplies needed. Abort assignment and return to Duffy."""
?CCL15: CALL PERFORM,V?EXAMINE,PSEUDO-OBJECT
RTRUE
.FUNCT I-MESSAGE
SET 'MESSAGE-RECEIVED,TRUE-VALUE
FCLEAR COMM-CENTER,TOUCHBIT
PRINTI " "
FSET? SPACESUIT,WORNBIT \?CCL3
PRINTI "The space suit picks up a message from"
JUMP ?CND1
?CCL3: PRINTI "You hear a message over"
?CND1: PRINTR " the station's P.A. system: ""Deep-space communication received at Comm Center. No operator on duty. This is a recording."""
.FUNCT FILES-F
EQUAL? PRSA,V?READ,V?EXAMINE \?CCL3
PRINTR "The word ""boring"" does not BEGIN to describe them."
?CCL3: EQUAL? PRSA,V?MUNG,V?CRUMPLE \FALSE
PRINT VIOLATION-OF-ACT
RTRUE
.FUNCT COMMANDERS-OFFICE-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
CALL ULTIMATELY-IN?,EXPLOSIVE
ZERO? STACK /?CCL3
FSET EXERCISE-MACHINE,TOUCHBIT
MOVE EXERCISE-MACHINE,COMPUTER-CONTROL
CALL ROB,EXERCISE-MACHINE,GYM
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is the Station Commander's H.Q., with doors to the south and east, and doorways to the north and northwest."
IN? LOG-READER,HERE /TRUE
PRINTI " There's a black scar where the "
PRINTD LOG-READER
PRINTI " once sat."
RTRUE
.FUNCT LOG-READER-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINT HUH
RTRUE
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
PRINTI "This simple device is for recording and reading log entries. It includes a tiny red button and a microphone/speaker. "
FSET? LOG-READER,ACTIVEBIT \?CND6
IN? LOG-TAPE,LOG-READER \?CND6
PRINTI "The red button is glowing. "
?CND6: PRINTI "At the moment, the "
PRINTD LOG-READER
PRINTI " is o"
FSET? LOG-READER,ACTIVEBIT \?CCL12
PRINTC 110
JUMP ?CND10
?CCL12: PRINTI "ff"
?CND10: PRINTI ", and there is "
IN? LOG-TAPE,LOG-READER \?CCL15
PRINTC 97
JUMP ?CND13
?CCL15: PRINTI "no"
?CND13: PRINTR " log tape in it."
?CCL5: EQUAL? PRSA,V?PUT \?CCL17
EQUAL? PRSO,LOG-TAPE /?CCL20
CALL DOESNT-FIT,STR?251
RSTACK
?CCL20: FSET? LOG-READER,ACTIVEBIT \FALSE
MOVE LOG-TAPE,LOG-READER
SET 'LOG-COUNTER,0
CALL READ-LOG
RSTACK
?CCL17: EQUAL? PRSA,V?ON \?CCL24
FSET? LOG-READER,ACTIVEBIT /?CCL24
CALL QUEUE,I-LOG-READER,-1
IN? LOG-TAPE,LOG-READER \FALSE
FSET LOG-READER,ACTIVEBIT
SET 'LOG-COUNTER,0
CALL READ-LOG
RSTACK
?CCL24: EQUAL? PRSA,V?LISTEN \?CCL31
GRTR? LOG-READER-COUNTER,11 \?CCL31
PRINTR """Whine."""
?CCL31: EQUAL? PRSA,V?TAKE \?CCL35
PRINT WONT-BUDGE
RTRUE
?CCL35: EQUAL? PRSA,V?SHOOT \FALSE
CALL DEQUEUE,I-LOG-READER
RFALSE
.FUNCT LOG-READER-BUTTON-F
IN? LOG-READER,HERE /?CCL3
CALL CANT-SEE,PSEUDO-OBJECT
RSTACK
?CCL3: EQUAL? PRSA,V?PUSH \FALSE
IN? LOG-TAPE,LOG-READER \?CCL8
FSET? LOG-READER,ACTIVEBIT \?CCL8
EQUAL? LOG-COUNTER,10 \?CCL13
PRINTI "A mechanized voice from the "
PRINTD LOG-READER
PRINTR " says, ""End of Log."""
?CCL13: CALL READ-LOG
RSTACK
?CCL8: PRINT NOTHING-HAPPENS
RTRUE
.FUNCT READ-LOG
INC 'LOG-COUNTER
EQUAL? LOG-COUNTER,1 \?CND1
PRINTI "A gravelly voice comes from the "
PRINTD LOG-READER
PRINTI ": "
?CND1: PRINTI """11349.12."
EQUAL? LOG-COUNTER,1 \?CCL5
PRINTI "2.3800: Some kripping jokers have been pilfering the station's fuel cells to go out on joyrides! I have hidden the fuel cells up in the Dome's "
PRINTD HOUSING
PRINTI ", slapped a lock on the bin, and deposited the key in my safe! There will be no joyriding in my command!"
JUMP ?CND3
?CCL5: EQUAL? LOG-COUNTER,2 \?CCL7
PRINTI "2.5100: Reproductions Officer Hausberg reports that collater #22 is off-line for routine service. Estimates one or two days downtime. Also, unidentified craft detected in sector. No response to hailings. Sending Finsterwald to intercept."
JUMP ?CND3
?CCL7: EQUAL? LOG-COUNTER,3 \?CCL9
PRINTI "2.6750: Unidentified craft towed to Docking Bay #1. It is a single-cabin vessel of unfamiliar alien origin. The only things aboard were the remains of one of the aliens, and a featureless pyramid. I'll leave it to the eggheads; I've got a problem of my own: a report that a used-spaceship dealer in the village named Shady Dan is selling modified Patrol ID cards. Liaison Officer Bumblewitz is investigating."
JUMP ?CND3
?CCL9: EQUAL? LOG-COUNTER,4 \?CCL11
PRINTI "3.1900: Professor Schmidt has back-plotted the course of the alien vessel. There are no star systems along the course; he theorizes that it may be of extra-galactic origin."
JUMP ?CND3
?CCL11: EQUAL? LOG-COUNTER,5 \?CCL13
PRINTI "3.5100: No cooperation from Shady Dan, so I'm putting the village off-limits to station personnel. No more village entry forms will be validated."
JUMP ?CND3
?CCL13: EQUAL? LOG-COUNTER,6 \?CCL15
PRINTI "3.5250: Some kripping joker snuck into my office and validated a whole batch of village entry forms! I won't take that kind of trot aboard my station! I'll hide the stamp under my bed until I find out who's responsible. Also, I gave Schmidt permission to move the alien pyramid to the "
PRINTD HOLDING-TANK
PRINTI " in the Sci Sub-Module for further study; the "
PRINTD SKELETON
PRINTI " is too brittle to move, they say. Hmmm... This "
PRINTD LOG-READER
PRINTI " is overheating. I'll have to dig out the spare."
JUMP ?CND3
?CCL15: EQUAL? LOG-COUNTER,7 \?CCL17
PRINTI "3.7700: Equipment Officer Mertzhoffer informs me that there have been several unexplainable breakdowns in the Gymnastic Equipment and the Laundering Machinery. All very simple equipment; could it be sabotage? If so, how? Who? Why?"
JUMP ?CND3
?CCL17: EQUAL? LOG-COUNTER,8 \?CCL19
PRINTI "4.1650: Emergency communication from the S.P.S. Duffy. They are critically low on "
PRINT FORM-NAME
PRINTI ", and are sending someone over to pick up a truckload of them. Reproductions Officer Hausberg says that the #22 collater should be available to prepare the forms."
JUMP ?CND3
?CCL19: EQUAL? LOG-COUNTER,9 \?CCL21
PRINTI "4.1850: Hausberg reports an unexpected shutdown of web-feeder #17. No apparent reason for the shutdown, and no warning, either. He says that one of his personnel almost lost an arm when it shut down. We may have to halt the entire plant to investigate. No telling how long... What the... Trot! Now the spare "
PRINTD LOG-READER
PRINTI " is overheating, also!"
JUMP ?CND3
?CCL21: PRINTI "4.1900: One of the ensigns in the filing division was seriously injured when one of the "
PRINTD WELDER
PRINTI "s malfunctioned. She's in Sick Bay now; Doc says she should pull through. I've been in space for 32 years and I've never heard of a "
PRINTD WELDER
PRINTI " malfun... What the krip!..."
?CND3: PRINTC 34
EQUAL? LOG-COUNTER,10 /?CND22
CRLF
PRINTI " A mechanized voice from the "
PRINTD LOG-READER
PRINTR " intones the single word ""More,"" and the red button on the reader lights up."
?CND22: CRLF
RTRUE
.FUNCT DIAL-F
FSET? SAFE,OPENBIT \?CCL3
PRINTR "There's not much left of the dial."
?CCL3: EQUAL? PRSA,V?SET \?CCL5
EQUAL? PRSO,PSEUDO-OBJECT \?CCL5
ZERO? PRSI \?CCL10
PRINT NEXT-TIME
RTRUE
?CCL10: EQUAL? PRSI,INTNUM /?CCL12
PRINT HUH
RTRUE
?CCL12: CALL PERFORM,V?SET,INTNUM
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The dial is set to "
PRINTN DIAL-SETTING
PRINT PERIOD-CR
RTRUE
.FUNCT SAFE-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It's a top-of-the-line HyperSecurity Safe, featuring a dial with 8000 settings. There are probably between twelve and twenty numbers in the combination"
IN? DRILLED-HOLE,HERE \?CND4
PRINTI ". There is a hole in the safe"
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
?CND4: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?DRILL \?CCL7
CALL MAKE-HOLE-WITH-DRILL,SAFE
RSTACK
?CCL7: EQUAL? PRSA,V?PICK,V?UNLOCK \FALSE
PRINTR "The galaxy's craftiest safecrackers would be stumped by this baby."
.FUNCT DESCRIBE-BIT-SIZE,BIT-SIZE
PRINTI " approximately the diameter of a "
EQUAL? BIT-SIZE,SMALL-BIT \?CCL3
PRINTI "toothpick"
RTRUE
?CCL3: EQUAL? BIT-SIZE,MEDIUM-BIT \?CCL5
PRINTI "pencil"
RTRUE
?CCL5: PRINTI "cigar"
RTRUE
.FUNCT DRILLED-HOLE-F,OBJ
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL3
SET 'OBJ,SAFE
JUMP ?CND1
?CCL3: EQUAL? HERE,LOAN-SHARK \?CCL5
SET 'OBJ,STRONG-BOX
JUMP ?CND1
?CCL5: SET 'OBJ,HOUSING
?CND1: EQUAL? PRSA,V?PUT \?CCL8
EQUAL? PRSI,DRILLED-HOLE \?CCL8
EQUAL? PRSO,EXPLOSIVE \?CTR12
EQUAL? HOLE-SIZE,SMALL-BIT \?CCL13
?CTR12: CALL DOESNT-FIT,STR?257
RSTACK
?CCL13: EQUAL? HERE,DOME \?CCL17
PRINTI "As the explosive touches the warm bin, it "
PRINT SUBLIMES-INTO-FREZONE
CALL DEQUEUE,I-EXPLOSIVE-MELT
CALL REMOVE-CAREFULLY,EXPLOSIVE
CRLF
RTRUE
?CCL17: ZERO? SAFE-HOLE-SCORE \FALSE
EQUAL? HERE,COMMANDERS-QUARTERS \FALSE
INC 'ROBOT-EVILNESS
ADD SCORE,3 >SCORE
SET 'SAFE-HOLE-SCORE,TRUE-VALUE
RFALSE
?CCL8: EQUAL? PRSA,V?DRILL \?CCL23
CALL PERFORM,PRSA,OBJ
RTRUE
?CCL23: EQUAL? PRSA,V?SHOOT \?CCL25
CALL PERFORM,PRSA,OBJ,ZAPGUN
RTRUE
?CCL25: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS
RTRUE
.FUNCT MAKE-HOLE-WITH-DRILL,OBJ
ZERO? DRILL-DEAD /?CCL3
CALL PERFORM,V?ON,DRILL
RTRUE
?CCL3: ZERO? HOLE-SIZE /?CCL5
IN? DRILLED-HOLE,HERE /?CCL5
SET 'DRILL-DEAD,TRUE-VALUE
PRINTR "As you begin drilling, the drill sparks and stops running."
?CCL5: ZERO? HOLE-SIZE \?CCL9
MOVE DRILLED-HOLE,HERE
FIRST? DRILL >HOLE-SIZE /?KLU16
?KLU16: SET 'C-ELAPSED,30
PRINTI "You drill a hole in"
CALL TPRINT,OBJ
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
PRINT PERIOD-CR
RTRUE
?CCL9: FIRST? DRILL /?KLU17
?KLU17: EQUAL? HOLE-SIZE,STACK \?CCL11
PRINT SENILITY-STRIKES
RTRUE
?CCL11: EQUAL? HOLE-SIZE,LARGE-BIT /?CTR12
IN? SMALL-BIT,DRILL \?CCL13
?CTR12: PRINTR "The hole in the safe is already larger than the bit in the drill."
?CCL13: FIRST? DRILL >HOLE-SIZE /?KLU18
?KLU18: PRINTI "You enlarge the hole in"
CALL TPRINT,OBJ
PRINTI ". It's now"
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
PRINT PERIOD-CR
RTRUE
.FUNCT STAMP-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "It's a fairly standard self-inking rubber stamp."
.FUNCT ZAPGUN-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The zapgun is a nasty-looking weapon. Mounted near its ugly maw is an indicator which reads """
PRINTN ZAPGUN-SHOTS
PRINTR "."""
.FUNCT SOUTH-CONNECTION-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "The corridor widens as it reaches the hull of the station. To the south, where a Sub-Module connection would be in a station with a Diplomatic Sub-Module, an iris hatch is "
FSET? IRIS-HATCH,OPENBIT \?CCL6
PRINTI "open, leading to a dark corridor which is quite obviously not a connecting tube for a Diplomatic Sub-Module"
JUMP ?CND4
?CCL6: PRINTI "closed"
?CND4: PRINTI ". There's a slot next to the hatch. Other doors lead east and west, and a junction with another corridor is visible to the north."
RTRUE
.FUNCT LEVEL-FOUR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are now on the primary bunk level of the station, with barracks to the north and south. To the east is the elevator "
EQUAL? ELEVATOR-LEVEL,4 /?CND4
PRINTI "shaft "
?CND4: PRINTI "and the elevator call button. Docking Bay #3 can be entered to the west"
PRINT LADDER-LEADS
RTRUE
.FUNCT LEVEL-THREE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "From this lobby you can choose doors that lie to the north, south, or northwest. An additional doorway leads southwest. The elevator "
EQUAL? ELEVATOR-LEVEL,3 /?CND4
PRINTI "shaft "
?CND4: PRINTI "and button are just to the east"
PRINT LADDER-LEADS
RTRUE
.FUNCT GYM-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a huge room where station personnel keep in shape via exercise and recreational sports. "
IN? EXERCISE-MACHINE,HERE /?CND4
PRINTI "There's a sign on one wall. "
?CND4: PRINTI "The sole exit is south."
RTRUE
.FUNCT EXERCISE-MACHINE-F,OARG
ZERO? OARG \FALSE
EQUAL? PRSA,V?ENTER \?CCL5
CALL RUNNING?,I-EXERCISE-MACHINE
ZERO? STACK /?CCL8
PRINTI "The "
PRINTD EXERCISE-MACHINE
CALL JIGS-UP,STR?267
RSTACK
?CCL8: EQUAL? HERE,COMPUTER-CONTROL \FALSE
PRINTR "The forklift is in the way."
?CCL5: EQUAL? PRSA,V?OFF,V?ON \?CCL12
PRINTR "It's permanently on."
?CCL12: EQUAL? PRSA,V?EXAMINE \?CCL14
IN? PROTAGONIST,EXERCISE-MACHINE /?CCL14
PRINTI "There's no one in"
CALL TRPRINT,EXERCISE-MACHINE
RSTACK
?CCL14: EQUAL? PRSA,V?MUNG,V?KILL \?CCL18
PRINTI "The "
PRINTD EXERCISE-MACHINE
PRINTR " is made of zynoid-reinforced hyper-steel."
?CCL18: EQUAL? PRSA,V?USE \FALSE
IN? PROTAGONIST,EXERCISE-MACHINE \?CCL23
CALL V-EXERCISE
RSTACK
?CCL23: PRINTR "You're not even in it!"
.FUNCT LAUNDRY-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "All laundry rooms, planetside as well as in space, tend to look alike. This one is no exception."
FSET? DRYER,ACTIVEBIT \?CND4
PRINTC 32
CALL DESCRIBE-DRYER-HEAT
?CND4: PRINTI " The door lies on the east side."
RTRUE
?CCL3: EQUAL? RARG,M-ENTER \?CCL7
FSET? PRESSER,ACTIVEBIT \?CCL7
CALL QUEUE,I-PRESSER,40
RSTACK
?CCL7: EQUAL? RARG,M-END \FALSE
GRTR? DRYER-COUNTER,15 \FALSE
PRINTI " The heat from the dryer is too much to stand! You stumble mindlessly out into the corridor"
PRINT ELLIPSIS
CALL GOTO,LEVEL-THREE
RSTACK
.FUNCT DRYER-F
EQUAL? PRSA,V?LOOK-BEHIND \?CCL3
PRINTR "You see a huge pile of Patrol-issue socks, hundreds of them, all mismatched."
?CCL3: EQUAL? PRSA,V?ON \?CCL5
FSET? DRYER,ACTIVEBIT /?CCL5
FSET DRYER,ACTIVEBIT
CALL QUEUE,I-DRYER,-1
PRINTR "An abnormal amount of hot air blasts out from all sides of the dryer."
?CCL5: EQUAL? PRSA,V?OFF \?CCL9
FSET? DRYER,ACTIVEBIT \?CCL9
FCLEAR DRYER,ACTIVEBIT
CALL DEQUEUE,I-DRYER
SET 'DRYER-COUNTER,0
PRINTR "With the dryer off, the station's ventilation system quickly returns the room to a comfy twenty-three degrees Celsius."
?CCL9: EQUAL? PRSA,V?OPEN \?CCL13
FSET? DRYER,ACTIVEBIT \?CCL13
PRINTI "Opening the dryer automatically shuts it off. "
FSET DRYER,OPENBIT
CALL PERFORM,V?OFF,DRYER
RTRUE
?CCL13: EQUAL? PRSA,V?SHOOT \FALSE
FCLEAR DRYER,ACTIVEBIT
CALL DEQUEUE,I-DRYER
SET 'DRYER-COUNTER,0
RFALSE
.FUNCT DESCRIBE-DRYER-HEAT
GRTR? DRYER-COUNTER,14 \?CCL3
PRINTI "Searing blasts of air from the dryer have made the room unbearably hot."
RTRUE
?CCL3: GRTR? DRYER-COUNTER,9 \?CCL5
PRINTI "Thanks to the dryer, the laundry room is now incredibly toasty."
RTRUE
?CCL5: PRINTI "The dryer is making the room uncomfortably hot."
RTRUE
.FUNCT PRESSER-F,OARG=0
ZERO? OARG /?CCL3
FSET? PRESSER,ACTIVEBIT \FALSE
EQUAL? OARG,M-OBJDESC? /TRUE
PRINTI " "
CALL DESCRIBE-PRESSER
RSTACK
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL10
FSET? PRESSER,ACTIVEBIT \?CND11
CALL DESCRIBE-PRESSER
PRINTC 32
?CND11: PRINTI "The presser is currently o"
FSET? PRESSER,ACTIVEBIT \?CCL15
PRINTC 110
JUMP ?CND13
?CCL15: PRINTI "ff"
?CND13: PRINTI ". "
RFALSE
?CCL10: EQUAL? PRSA,V?PUT-ON \?CCL17
EQUAL? PRSI,PRESSER \?CCL17
CALL PERFORM,V?PUT,PRSO,PRSI
RTRUE
?CCL17: EQUAL? PRSA,V?CLOSE \?CCL21
FSET? PRESSER,ACTIVEBIT \?CCL21
IN? CRUMPLED-FORM,PRESSER \?CND24
REMOVE CRUMPLED-FORM
MOVE VILLAGE-FORM,PRESSER
?CND24: IN? PATROL-UNIFORM,PRESSER \FALSE
SET 'SUIT-PRESSED,TRUE-VALUE
RFALSE
?CCL21: EQUAL? PRSA,V?ON \?CCL29
FSET? PRESSER,ACTIVEBIT /?CCL29
SET 'PRESSER-STEAMING,FALSE-VALUE
FSET PRESSER,ACTIVEBIT
CALL QUEUE,I-PRESSER,25
FSET? PRESSER,OPENBIT /?CND32
IN? CRUMPLED-FORM,PRESSER \?CND34
REMOVE CRUMPLED-FORM
MOVE VILLAGE-FORM,PRESSER
?CND34: IN? PATROL-UNIFORM,PRESSER \?CND32
SET 'SUIT-PRESSED,TRUE-VALUE
?CND32: PRINTR "A trickle of steam begins leaking from the presser."
?CCL29: EQUAL? PRSA,V?SHOOT \FALSE
CALL DEQUEUE,I-PRESSER
RFALSE
.FUNCT DESCRIBE-PRESSER
PRINTI "A "
ZERO? PRESSER-STEAMING /?CCL3
PRINTI "huge amount"
JUMP ?CND1
?CCL3: PRINTI "trickle"
?CND1: PRINTI " of steam is coming from the laundry room's presser."
RTRUE
.FUNCT I-PRESSER
FSET? PRESSER,ACTIVEBIT \FALSE
EQUAL? HERE,LAUNDRY \FALSE
PRINTI " "
ZERO? PRESSER-STEAMING /?CCL8
PRINTI "The presser suddenly "
FSET? PRESSER,OPENBIT /?CND9
PRINTI "opens, "
?CND9: CALL JIGS-UP,STR?269
RSTACK
?CCL8: SET 'PRESSER-STEAMING,TRUE-VALUE
CALL QUEUE,I-PRESSER,25
PRINTR "The presser shudders, and clouds of steam begin billowing out of it."
.FUNCT CHAPEL-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a modest, nondenominational chapel. Hanging high above the "
IN? PULPIT,HERE \?CCL6
PRINTI "beautiful wooden pulpit "
JUMP ?CND4
?CCL6: PRINTI "floor "
?CND4: FSET? STAR,TOUCHBIT /?CCL9
PRINTI "are the two"
JUMP ?CND7
?CCL9: PRINTI "is one of the"
?CND7: PRINTI " universal symbols of every major galactic religion: an "
PRINTD ETERNAL-FLAME
FSET? STAR,TOUCHBIT /?CND10
PRINTI " and a "
PRINTD STAR
?CND10: PRINTI ". "
FSET? ETERNAL-FLAME,ONBIT \?CCL14
PRINTI "The flame flickers in the air currents. "
JUMP ?CND12
?CCL14: PRINT FLAME-EXTINGUISHED
PRINTC 32
?CND12: PRINTI "A doorway occupies the center of the east wall."
FSET? STAR,TOUCHBIT /TRUE
CRLF
PRINTI " The star is blinking."
RTRUE
.FUNCT STAR-F
CALL TOUCHING?,STAR
ZERO? STACK /?CCL3
FSET? STAR,TRYTAKEBIT \?CCL3
ZERO? HANGING-IN-AIR \?CCL3
PRINTR "The star is above you, beyond your reach."
?CCL3: EQUAL? PRSA,V?TAKE \?CCL8
FSET? STAR,TRYTAKEBIT \?CCL8
ZERO? HANGING-IN-AIR /?CCL8
FCLEAR STAR,TRYTAKEBIT
FCLEAR STAR,NDESCBIT
FSET STAR,TOUCHBIT
MOVE STAR,PROTAGONIST
INC 'ROBOT-EVILNESS
GETP DIODE-M,P?VALUE
ADD SCORE,STACK >SCORE
PUTP DIODE-M,P?VALUE,0
PRINTR "Taken."
?CCL8: EQUAL? PRSA,V?EXAMINE \?CCL13
IN? DIODE-M,STAR \?CND14
PRINTI "It's blinking with a gentle, rhythmic light. "
?CND14: FSET? STAR,TRYTAKEBIT \?CCL18
ZERO? HANGING-IN-AIR \?CCL18
CALL PERFORM,V?TOUCH,STAR
RTRUE
?CCL18: PRINTI "The back of the star "
FSET? STAR,OPENBIT \?CCL23
PRINTI "is open"
JUMP ?CND21
?CCL23: PRINTI "looks openable"
?CND21: PRINT PERIOD-CR
RTRUE
?CCL13: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,DIODE-J \FALSE
REMOVE DIODE-J
PRINTR "Once the diode is in place, the star begins blinking rapidly and erratically. Suddenly the diode bursts and the star goes dead."
.FUNCT ETERNAL-FLAME-F
EQUAL? PRSA,V?EXAMINE \?CCL3
FSET? ETERNAL-FLAME,ONBIT \?CCL6
PRINTI "The "