-
-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathzork1-disassembly.txt
9056 lines (8146 loc) · 343 KB
/
zork1-disassembly.txt
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
Resident data ends at 4e37, program starts at 4f04, file ends at 14b8c
Starting analysis pass at address 4e37
End of analysis pass, low address = 4e38, high address = 10b04
[Start of code at 4e38]
Routine 4e38, 1 local (0000)
4e3b: PRINT "a "
4e3e: PRINT_OBJ L00
4e40: RTRUE
Routine 4e42, 1 local (0000)
4e45: JZ G3c [TRUE] 4e51
4e48: RANDOM #64 -> -(SP)
4e4c: JG L00,(SP)+ [TRUE] RTRUE
4e50: RFALSE
4e51: RANDOM #012c -> -(SP)
4e56: JG L00,(SP)+ [TRUE] RTRUE
4e5a: RFALSE
Routine 4e5c, 1 local (0000)
4e5f: LOADW L00,#00 -> -(SP)
4e63: RANDOM (SP)+ -> -(SP)
4e67: LOADW L00,(SP)+ -> -(SP)
4e6b: RET_POPPED
Routine 4e6c, 6 locals (0000, 0000, 0000, 0000, 0000, 0000)
4e79: LOADW L00,#00 -> L01
4e7d: LOADW L00,#01 -> L02
4e81: DEC L01
4e83: ADD L00,#02 -> L00
4e87: MUL L02,#02 -> -(SP)
4e8b: ADD L00,(SP)+ -> L05
4e8f: SUB L01,L02 -> -(SP)
4e93: RANDOM (SP)+ -> L03
4e97: LOADW L05,L03 -> L04
4e9b: LOADW L05,#01 -> -(SP)
4e9f: STOREW L05,L03,(SP)+
4ea4: STOREW L05,#01,L04
4ea9: INC L02
4eab: JE L02,L01 [FALSE] 4eb2
4eaf: STORE L02,#00
4eb2: STOREW L00,#00,L02
4eb7: RET L04
Routine 4eba, 0 locals ()
4ebb: JE G78,#2b [FALSE] RFALSE
4ebf: CALL 90ba (#a3) -> -(SP)
4ec5: RFALSE
Routine 4ec6, 0 locals ()
4ec7: JZ G2e [TRUE] 4ee1
4eca: TEST_ATTR "grating",#0b [FALSE] 4ed0
4ece: RET #39
4ed0: PRINT "The grating is closed!"
4ed9: NEW_LINE
4eda: CALL 9530 (#ae) -> -(SP)
4ee0: RFALSE
4ee1: PRINT "You can't go that way."
4eec: NEW_LINE
4eed: RFALSE
Routine 4eee, 1 local (0000)
4ef1: JE L00,#01 [FALSE] RFALSE
4ef5: JE G78,#45 [FALSE] RFALSE
4ef9: JZ G76 [FALSE] RFALSE
4efc: CALL 10666 (S148) -> -(SP)
4f03: RTRUE
Main routine 4f04, 0 locals ()
4f05: CALL 5472 (#8010,#ffff) -> -(SP)
4f0e: STOREW (SP)+,#00,#01
4f13: CALL 5472 (#807c,#ffff) -> -(SP)
4f1c: CALL 5472 (#80f0,#ffff) -> -(SP)
4f25: STOREW (SP)+,#00,#01
4f2a: CALL 5472 (#6f6a,#28) -> -(SP)
4f32: CALL 5472 (#6f55,#c8) -> -(SP)
4f3a: PUT_PROP "magic boat",#06,#04
4f3f: ADD G10,#02 -> -(SP)
4f43: STOREW G0a,#01,(SP)+
4f48: ADD G10,#04 -> -(SP)
4f4c: STOREW G0a,#02,(SP)+
4f51: ADD G0e,#02 -> -(SP)
4f55: STOREW G09,#02,(SP)+
4f5a: ADD G0e,#04 -> -(SP)
4f5e: STOREW G09,#03,(SP)+
4f63: ADD G0d,#02 -> -(SP)
4f67: STOREW G08,#01,(SP)+
4f6c: ADD G0c,#02 -> -(SP)
4f70: STOREW G08,#03,(SP)+
4f75: STORE G00,#b4
4f78: CALL 9530 (#a0) -> -(SP)
4f7e: TEST_ATTR G00,#03 [TRUE] 4f88
4f82: CALL 6ee0 -> -(SP)
4f87: NEW_LINE
4f88: STORE G42,#01
4f8b: STORE G6f,#04
4f8e: STORE G80,G6f
4f91: INSERT_OBJ G6f,G00
4f94: CALL 7e04 -> -(SP)
4f99: CALL 552a -> -(SP)
4f9e: JUMP 4f05
Routine 4fa2, 3 locals (0000, 0001, 0000)
4fa9: JE G76,#0b [FALSE] 4fc4
4fad: JE G77,#0b [FALSE] 4fc4
4fb1: PRINT_RET "Those things aren't here!"
4fc4: JE G76,#0b [FALSE] 4fce
4fc8: STORE L00,G56
4fcb: JUMP 4fd4
4fce: STORE L00,G55
4fd1: STORE L01,#00
4fd4: STORE G6c,#00
4fd7: STORE G60,#00
4fda: JE G6f,G80 [FALSE] 4ff2
4fde: PRINT "You can't see any"
4fe7: CALL 5092 (L01) -> -(SP)
4fed: PRINT_RET " here!"
4ff2: PRINT "The "
4ff5: PRINT_OBJ G6f
4ff7: PRINT " seems confused. "I don't see any"
500a: CALL 5092 (L01) -> -(SP)
5010: PRINT_RET " here!""
Routine 5018, 4 locals (0000, 0000, 0000, 0000)
5021: CALL 687c (L00) -> L02
5027: JG L02,#01 [FALSE] 503c
502b: LOADW L00,#01 -> -(SP)
502f: GET_PROP (SP)+,#05 -> L03
5033: JZ L03 [TRUE] 503c
5036: STORE L02,#01
5039: STORE G4c,L03
503c: JE #01,L02 [FALSE] 504b
5040: JZ L01 [TRUE] 5047
5043: STORE G76,G4c
5046: RFALSE
5047: STORE G77,G4c
504a: RFALSE
504b: JZ L01 [FALSE] 5068
504e: PRINT "You wouldn't find any"
505d: CALL 5092 (L01) -> -(SP)
5063: PRINT_RET " there."
5068: RET #0b
Routine 506a, 1 local (0000)
506d: STORE G6c,#00
5070: STORE G60,#00
5073: PRINT "You can't see any"
507c: JE L00,G76 [FALSE] 5088
5080: CALL 6ccc -> -(SP)
5085: JUMP 508d
5088: CALL 6cf4 -> -(SP)
508d: PRINT_RET " here."
Routine 5092, 2 locals (0000, 0000)
5097: JZ G69 [TRUE] 50ab
509a: JZ G4a [TRUE] 50a2
509d: PRINT " "
50a0: PRINT_ADDR G49
50a2: JZ G4b [TRUE] RFALSE
50a5: PRINT " "
50a8: PRINT_ADDR G4b
50aa: RTRUE
50ab: JZ L00 [TRUE] 50bf
50ae: LOADW G64,#06 -> L01
50b2: LOADW G64,#07 -> -(SP)
50b6: CALL 62ee (L01,(SP)+,#00) -> -(SP)
50be: RET_POPPED
50bf: LOADW G64,#08 -> L01
50c3: LOADW G64,#09 -> -(SP)
50c7: CALL 62ee (L01,(SP)+,#00) -> -(SP)
50cf: RET_POPPED
Routine 50d0, 2 locals (0000, 0000)
50d5: RFALSE
Routine 50d6, 0 locals ()
50d7: JE G78,#22 [FALSE] RFALSE
50db: PRINT_RET "You should say whether you want to go up or down."
Routine 50fa, 0 locals ()
50fb: JE G78,#42 [FALSE] RFALSE
50ff: INC G45
5101: CALL 50d0 -> -(SP)
5106: MOD G45,#14 -> -(SP)
510a: JZ (SP)+ [FALSE] 5124
510d: PRINT_RET "You seem to be repeating yourself."
5124: MOD G45,#0a -> -(SP)
5128: JZ (SP)+ [FALSE] 5146
512b: PRINT_RET "I think that phrase is getting a bit worn out."
5146: PRINT_RET "Nothing happens here."
Routine 5156, 0 locals ()
5157: JE G78,#32,#12 [FALSE] 5169
515d: JE G77,#08 [FALSE] 5169
5161: CALL 577c (#31,G76) -> -(SP)
5168: RTRUE
5169: JE G00,#7e [FALSE] 5173
516d: CALL edc6 -> -(SP)
5172: RET_POPPED
5173: JE G78,#2c [FALSE] RFALSE
5177: PRINT_RET "The ground is too hard for digging here."
Routine 518a, 0 locals ()
518b: JE G78,#38 [FALSE] 5239
5190: PRINT_RET "The grue is a sinister, lurking presence in the dark places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale."
5239: JE G78,#3c [FALSE] 528d
523e: PRINT_RET "There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. I wouldn't let my light go out if I were you!"
528d: JE G78,#4d [FALSE] RFALSE
5291: PRINT_RET "It makes no sound but is always lurking in the darkness nearby."
Routine 52b8, 1 local (0000)
52bb: JE G78,#6f [FALSE] 52f4
52bf: STORE G6c,#00
52c2: STORE G60,#00
52c5: PRINT_RET "Talking to yourself is said to be a sign of impending mental collapse."
52f4: JE G78,#3f [FALSE] 5304
52f8: JE G77,#05 [FALSE] 5304
52fc: CALL 577c (#5d,G76) -> -(SP)
5303: RTRUE
5304: JE G78,#56 [FALSE] 5315
5308: PRINT_RET "Only you can do that."
5315: JE G78,#2d [FALSE] 532e
5319: PRINT_RET "You'll have to do that on your own."
532e: JE G78,#33 [FALSE] 5349
5332: PRINT_RET "Auto-cannibalism is not the answer."
5349: JE G78,#2a,#13 [FALSE] 536f
534f: JZ G77 [TRUE] 535e
5352: TEST_ATTR G77,#1d [FALSE] 535e
5356: CALL 10666 (S164) -> -(SP)
535d: RET_POPPED
535e: PRINT_RET "Suicide is not the answer."
536f: JE G78,#5d [FALSE] 537e
5373: PRINT_RET "How romantic!"
537e: JE G78,#38 [FALSE] RFALSE
5382: GET_PARENT "mirror" -> L00
5385: GET_PARENT "mirror" -> -(SP)
5388: JE G00,L00,(SP)+ [FALSE] 53a5
538e: PRINT_RET "Your image in the mirror looks tired."
53a5: PRINT_RET "That's difficult unless your eyes are prehensile."
Routine 53c6, 0 locals ()
53c7: JE G78,#3d,#5d [FALSE] 53e4
53cd: PRINT_RET "You must specify a direction to go."
53e4: JE G78,#3c [FALSE] 53f9
53e8: PRINT_RET "I can't help you there...."
53f9: JE G78,#2c [FALSE] RFALSE
53fd: PRINT_RET "Not a chance."
Routine 5408, 0 locals ()
5409: JE G78,#38 [FALSE] 5434
540d: PRINT_RET "The zorkmid is the unit of currency of the Great Underground Empire."
5434: JE G78,#3c [FALSE] RFALSE
5438: PRINT_RET "The best way to find zorkmids is to go out and look for them."
Routine 545c, 3 locals (0000, 0000, 0000)
5463: CALL 5486 (L00,#01) -> L02
546a: STOREW L02,#01,L01
546f: RET L02
Routine 5472, 3 locals (0000, 0000, 0000)
5479: CALL 5486 (L00) -> L02
547f: STOREW L02,#01,L01
5484: RET L02
Routine 5486, 5 locals (0000, 0000, 0000, 0000, 0000)
5491: ADD G84,#b4 -> L02
5495: ADD G84,G82 -> L03
5499: JE L03,L02 [FALSE] 54b3
549d: SUB G82,#06 -> G82
54a1: JZ L01 [TRUE] 54a8
54a4: SUB G83,#06 -> G83
54a8: ADD G84,G82 -> L04
54ac: STOREW L04,#02,L00
54b1: RET L04
54b3: LOADW L03,#02 -> -(SP)
54b7: JE (SP)+,L00 [FALSE] 54bd
54bb: RET L03
54bd: ADD L03,#06 -> L03
54c1: JUMP 5499
Routine 54c4, 4 locals (0000, 0000, 0000, 0000)
54cd: JZ G81 [TRUE] 54d4
54d0: STORE G81,#00
54d3: RFALSE
54d4: JZ G7f [TRUE] 54dd
54d7: PUSH G82
54da: JUMP 54e0
54dd: PUSH G83
54e0: ADD G84,(SP)+ -> L00
54e4: ADD G84,#b4 -> L01
54e8: JE L00,L01 [FALSE] 54f7
54ec: INC_CHK G02,#03e7 [FALSE] 54f5
54f2: STORE G02,#00
54f5: RET L03
54f7: LOADW L00,#00 -> -(SP)
54fb: JZ (SP)+ [TRUE] 5523
54fe: LOADW L00,#01 -> L02
5502: JZ L02 [FALSE] 5508
5505: JUMP 5523
5508: SUB L02,#01 -> -(SP)
550c: STOREW L00,#01,(SP)+
5511: JG L02,#01 [TRUE] 5523
5515: LOADW L00,#02 -> -(SP)
5519: CALL (SP)+ -> -(SP)
551d: JZ (SP)+ [TRUE] 5523
5520: STORE L03,#01
5523: ADD L00,#06 -> L00
5527: JUMP 54e8
Routine 552a, 10 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000)
553f: STORE L03,#00
5542: STORE L04,#00
5545: STORE L07,#01
5548: CALL 5880 -> G7f
554d: JZ G7f [TRUE] 574b
5551: LOADW G55,G51 -> L00
5555: LOADW G56,G51 -> L01
5559: JZ L01 [FALSE] 5562
555c: PUSH L01
555f: JUMP 5593
5562: JG L01,#01 [FALSE] 557c
5566: STORE L05,G56
5569: JZ L00 [FALSE] 5572
556c: STORE L04,#00
556f: JUMP 5576
5572: LOADW G55,#01 -> L04
5576: PUSH L01
5579: JUMP 5593
557c: JG L00,#01 [FALSE] 5590
5580: STORE L07,#00
5583: STORE L05,G55
5586: LOADW G56,#01 -> L04
558a: PUSH L00
558d: JUMP 5593
5590: PUSH #01
5593: STORE L02,(SP)+
5596: JZ L04 [FALSE] 55a1
5599: JE L00,#01 [FALSE] 55a1
559d: LOADW G55,#01 -> L04
55a1: JE G78,#89 [FALSE] 55af
55a5: CALL 577c (G78,G76) -> L06
55ac: JUMP 5717
55af: JZ L02 [FALSE] 5600
55b3: LOADB G73,#00 -> -(SP)
55b7: AND (SP)+,#03 -> -(SP)
55bb: JZ (SP)+ [FALSE] 55ca
55be: CALL 577c (G78) -> L06
55c4: STORE G76,#00
55c7: JUMP 5717
55ca: JZ G42 [FALSE] 55de
55cd: PRINT "It's too dark to see."
55da: NEW_LINE
55db: JUMP 5717
55de: PRINT "It's not clear what you're referring to."
55f9: NEW_LINE
55fa: STORE L06,#00
55fd: JUMP 5717
5600: STORE G7a,#00
5603: STORE G7b,#00
5606: JG L02,#01 [FALSE] 560d
560a: STORE G7b,#01
560d: STORE L09,#00
5610: INC_CHK L03,L02 [FALSE] 566e
5615: JG G7a,#00 [FALSE] 5655
561a: PRINT "The "
561d: JE G7a,L02 [TRUE] 5624
5621: PRINT "other "
5624: PRINT "object"
5629: JE G7a,#01 [TRUE] 5630
562d: PRINT "s"
5630: PRINT " that you mentioned "
563d: JE G7a,#01 [TRUE] 5647
5641: PRINT "are"
5644: JUMP 564a
5647: PRINT "is"
564a: PRINT "n't here."
5651: NEW_LINE
5652: JUMP 5717
5655: JZ L09 [FALSE] 5717
5659: PRINT "There's nothing here you can take."
566a: NEW_LINE
566b: JUMP 5717
566e: JZ L07 [TRUE] 5678
5671: LOADW G56,L03 -> L08
5675: JUMP 567c
5678: LOADW G55,L03 -> L08
567c: JZ L07 [TRUE] 5685
567f: PUSH L08
5682: JUMP 5688
5685: PUSH L04
5688: STORE G76,(SP)+
568b: JZ L07 [TRUE] 5694
568e: PUSH L04
5691: JUMP 5697
5694: PUSH L08
5697: STORE G77,(SP)+
569a: JG L02,#01 [TRUE] 56ad
569e: LOADW G64,#06 -> -(SP)
56a2: LOADW (SP)+,#00 -> -(SP)
56a6: JE (SP)+,"all" [FALSE] 5704
56ad: JE L08,#0b [FALSE] 56b6
56b1: INC G7a
56b3: JUMP 5610
56b6: JE G78,#5d [FALSE] 56d2
56ba: JZ G77 [TRUE] 56d2
56bd: LOADW G64,#06 -> -(SP)
56c1: LOADW (SP)+,#00 -> -(SP)
56c5: JE (SP)+,"all" [FALSE] 56d2
56cb: JIN G76,G77 [TRUE] 56d2
56cf: JUMP 5610
56d2: JE G50,#01 [FALSE] 56f6
56d6: JE G78,#5d [FALSE] 56f6
56da: GET_PARENT L08 -> -(SP)
56dd: JE (SP)+,G6f,G00 [TRUE] 56eb
56e3: GET_PARENT L08 -> -(SP)
56e6: TEST_ATTR (SP)+,#0a [FALSE] 5610
56eb: TEST_ATTR L08,#11 [TRUE] 56f6
56ef: TEST_ATTR L08,#0d [TRUE] 56f6
56f3: JUMP 5610
56f6: JE L08,#0c [FALSE] 56ff
56fa: PRINT_OBJ G6b
56fc: JUMP 5701
56ff: PRINT_OBJ L08
5701: PRINT ": "
5704: STORE L09,#01
5707: CALL 577c (G78,G76,G77) -> L06
570f: JE L06,#02 [FALSE] 5610
5714: JUMP 5717
5717: JE L06,#02 [TRUE] 5727
571b: GET_PARENT G6f -> -(SP)
571e: GET_PROP (SP)+,#11 -> -(SP)
5722: CALL (SP)+ (#06) -> L06
5727: JE G78,#08,#89,#0f [TRUE] 5741
572e: JE G78,#0c,#09,#07 [FALSE] 5738
5735: JUMP 5741
5738: STORE G7e,G78
573b: STORE G7d,G76
573e: STORE G7c,G77
5741: JE L06,#02 [FALSE] 574e
5745: STORE G6c,#00
5748: JUMP 574e
574b: STORE G6c,#00
574e: JZ G7f [TRUE] 553f
5752: JE G78,#02,#01,#6f [TRUE] 553f
575a: JE G78,#0c,#08,#00 [TRUE] 553f
5762: JE G78,#09,#06,#05 [TRUE] 553f
576a: JE G78,#07,#0b,#0a [FALSE] 5774
5771: JUMP 553f
5774: CALL 54c4 -> L06
5779: JUMP 553f
Routine 577c, 7 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000)
578b: STORE L04,G78
578e: STORE L05,G76
5791: STORE L06,G77
5794: JE #0c,L02,L01 [FALSE] 57b8
579a: JE G6a,G00 [TRUE] 57b8
579e: PRINT "I don't see what you are referring to."
57b5: NEW_LINE
57b6: RET #02
57b8: JE L01,#0c [FALSE] 57bf
57bc: STORE L01,G6b
57bf: JE L02,#0c [FALSE] 57c6
57c3: STORE L02,G6b
57c6: STORE G78,L00
57c9: STORE G76,L01
57cc: JZ G76 [TRUE] 57dd
57cf: JE G77,#0c [TRUE] 57dd
57d3: JE G78,#89 [TRUE] 57dd
57d7: STORE G6b,G76
57da: STORE G6a,G00
57dd: STORE G77,L02
57e0: JE #0b,G76,G77 [FALSE] 57f1
57e6: CALL 4fa2 -> L03
57eb: JZ L03 [TRUE] 57f1
57ee: JUMP 5874
57f1: STORE L01,G76
57f4: STORE L02,G77
57f7: GET_PROP G6f,#11 -> -(SP)
57fb: CALL (SP)+ -> L03
57ff: JZ L03 [TRUE] 5805
5802: JUMP 5874
5805: GET_PARENT G6f -> -(SP)
5808: GET_PROP (SP)+,#11 -> -(SP)
580c: CALL (SP)+ (#01) -> L03
5811: JZ L03 [TRUE] 5817
5814: JUMP 5874
5817: LOADW G9c,L00 -> -(SP)
581b: CALL (SP)+ -> L03
581f: JZ L03 [TRUE] 5825
5822: JUMP 5874
5825: JZ L02 [TRUE] 5836
5828: GET_PROP L02,#11 -> -(SP)
582c: CALL (SP)+ -> L03
5830: JZ L03 [TRUE] 5836
5833: JUMP 5874
5836: JZ L01 [TRUE] 5854
5839: JE L00,#89 [TRUE] 5854
583d: GET_PARENT L01 -> -(SP)
5840: JZ (SP)+ [TRUE] 5854
5843: GET_PARENT L01 -> -(SP)
5846: GET_PROP (SP)+,#02 -> -(SP)
584a: CALL (SP)+ -> L03
584e: JZ L03 [TRUE] 5854
5851: JUMP 5874
5854: JZ L01 [TRUE] 5869
5857: JE L00,#89 [TRUE] 5869
585b: GET_PROP L01,#11 -> -(SP)
585f: CALL (SP)+ -> L03
5863: JZ L03 [TRUE] 5869
5866: JUMP 5874
5869: LOADW G9b,L00 -> -(SP)
586d: CALL (SP)+ -> L03
5871: JZ L03 [TRUE] 5874
5874: STORE G78,L04
5877: STORE G76,L05
587a: STORE G77,L06
587d: RET L03
Routine 5880, 11 locals (0001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, ffff)
5897: INC_CHK L0a,#09 [FALSE] 589e
589b: JUMP 58a6
589e: STOREW G64,L0a,#00
58a3: JUMP 5897
58a6: STORE G58,#00
58a9: STORE G68,#00
58ac: STOREW G56,G51,#00
58b1: STOREW G55,G51,#00
58b6: STOREW G54,G51,#00
58bb: JZ G60 [FALSE] 58d5
58be: JE G6f,G80 [TRUE] 58d5
58c2: STORE G6f,G80
58c5: GET_PARENT G6f -> -(SP)
58c8: TEST_ATTR (SP)+,#1b [TRUE] 58cf
58cc: GET_PARENT G6f -> G00
58cf: CALL 6c62 (G00) -> G42
58d5: JZ G6c [TRUE] 58ed
58d8: STORE L00,G6c
58db: JZ G46 [FALSE] 58e7
58de: JE G80,G6f [FALSE] 58e7
58e2: JE G78,#70 [TRUE] 58e7
58e6: NEW_LINE
58e7: STORE G6c,#00
58ea: JUMP 5910
58ed: STORE G6f,G80
58f0: STORE G60,#00
58f3: GET_PARENT G6f -> -(SP)
58f6: TEST_ATTR (SP)+,#1b [TRUE] 58fd
58fa: GET_PARENT G6f -> G00
58fd: CALL 6c62 (G00) -> G42
5903: JZ G46 [FALSE] 5907
5906: NEW_LINE
5907: PRINT ">"
590c: READ G6d,G6e
5910: LOADB G6e,#01 -> G71
5914: JZ G71 [FALSE] 5926
5917: PRINT "I beg your pardon?"
5924: NEW_LINE
5925: RFALSE
5926: STORE L04,G71
5929: STORE G70,#00
592c: STORE G61,#00
592f: STORE G50,#00
5932: DEC_CHK G71,#00 [FALSE] 593c
5936: STORE G60,#00
5939: JUMP 5b6f
593c: LOADW G6e,L00 -> L01
5940: JZ L01 [FALSE] 594d
5943: CALL 5db8 (L00) -> L01
5949: JZ L01 [TRUE] 5b5e
594d: JE L01,"to" [FALSE] 595f
5953: JE L03,#ef [FALSE] 595f
5957: STORE L01,"""
595c: JUMP 597a
595f: JE L01,"then" [FALSE] 597a
5965: JZ L03 [FALSE] 597a
5968: JZ G60 [FALSE] 597a
596b: STOREW G64,#00,#ef
5970: STOREW G64,#01,#00
5975: STORE L01,"""
597a: JE L01,"then","." [TRUE] 5988
5982: JE L01,""" [FALSE] 59a9
5988: JE L01,""" [FALSE] 599a
598e: JZ G60 [TRUE] 5997
5991: STORE G60,#00
5994: JUMP 599a
5997: STORE G60,#01
599a: JZ G71 [TRUE] 59a1
599d: ADD L00,#02 -> G6c
59a1: STOREB G6e,#01,G71
59a6: JUMP 5b6f
59a9: CALL 5baa (L01,#10,#03) -> L02
59b1: JZ L02 [TRUE] 5a18
59b5: JE L03,#00,#f8 [FALSE] 5a18
59bc: JE L04,#01 [TRUE] 59f8
59c1: JE L04,#02 [FALSE] 59c9
59c5: JE L03,#f8 [TRUE] 59f8
59c9: ADD L00,#02 -> -(SP)
59cd: LOADW G6e,(SP)+ -> L06
59d1: JE L06,"then",".",""" [FALSE] 59df
59db: JL L04,#02 [FALSE] 59f8
59df: JZ G60 [TRUE] 59ec
59e2: JE L04,#02 [FALSE] 59ec
59e6: JE L06,""" [TRUE] 59f8
59ec: JG L04,#02 [FALSE] 5a18
59f0: JE L06,",","and" [FALSE] 5a18
59f8: STORE L05,L02
59fb: JE L06,",","and" [FALSE] 5a0d
5a03: ADD L00,#02 -> -(SP)
5a07: STOREW G6e,(SP)+,"then"
5a0d: JG L04,#02 [TRUE] 5b65
5a12: STORE G60,#00
5a15: JUMP 5b6f
5a18: CALL 5baa (L01,#40,#01) -> L02
5a20: JZ L02 [TRUE] 5a59
5a23: JZ L03 [FALSE] 5a59
5a26: STORE L03,L02
5a29: STOREW G64,#00,L02
5a2e: STOREW G64,#01,G62
5a33: STOREW G62,#00,L01
5a38: MUL L00,#02 -> -(SP)
5a3c: ADD (SP)+,#02 -> L08
5a40: LOADB G6e,L08 -> -(SP)
5a44: STOREB G62,#02,(SP)+
5a49: ADD L08,#01 -> -(SP)
5a4d: LOADB G6e,(SP)+ -> -(SP)
5a51: STOREB G62,#03,(SP)+
5a56: JUMP 5b65
5a59: CALL 5baa (L01,#08,#00) -> L02
5a61: JZ L02 [FALSE] 5a84
5a64: JE L01,"all","one" [TRUE] 5a81
5a6c: CALL 5baa (L01,#20) -> -(SP)
5a73: JZ (SP)+ [FALSE] 5a81
5a76: CALL 5baa (L01,#80) -> -(SP)
5a7d: JZ (SP)+ [TRUE] 5b05
5a81: STORE L02,#00
5a84: JG G71,#00 [FALSE] 5aa6
5a88: ADD L00,#02 -> -(SP)
5a8c: LOADW G6e,(SP)+ -> -(SP)
5a90: JE (SP)+,"of" [FALSE] 5aa6
5a96: JZ L02 [FALSE] 5aa6
5a99: JE L01,"all","one","a" [TRUE] 5aa6
5aa3: JUMP 5b65
5aa6: JZ L02 [TRUE] 5ace
5aa9: JZ G71 [TRUE] 5abc
5aac: ADD L00,#02 -> -(SP)
5ab0: LOADW G6e,(SP)+ -> -(SP)
5ab4: JE (SP)+,"then","." [FALSE] 5ace
5abc: JL G61,#02 [FALSE] 5b65
5ac1: STOREW G64,#02,L02
5ac6: STOREW G64,#03,L01
5acb: JUMP 5b65
5ace: JE G61,#02 [FALSE] 5aed
5ad2: PRINT "There were too many nouns in that sentence."
5aeb: NEW_LINE
5aec: RFALSE
5aed: INC G61
5aef: CALL 5bd0 (L00,L02,L01) -> L00
5af7: JZ L00 [TRUE] RFALSE
5afa: JL L00,#00 [FALSE] 5b65
5aff: STORE G60,#00
5b02: JUMP 5b6f
5b05: CALL 5baa (L01,#04) -> -(SP)
5b0c: JZ (SP)+ [TRUE] 5b12
5b0f: JUMP 5b65
5b12: JE L03,#ef [FALSE] 5b57
5b17: CALL 5baa (L01,#40,#01) -> -(SP)
5b1f: JZ (SP)+ [TRUE] 5b57
5b22: PRINT "Please consult your manual for the correct way to talk to other people or creatures."
5b55: NEW_LINE
5b56: RFALSE
5b57: CALL 6040 (L00) -> -(SP)
5b5d: RFALSE
5b5e: CALL 5ff0 (L00) -> -(SP)
5b64: RFALSE
5b65: STORE L07,L01
5b68: ADD L00,#02 -> L00
5b6c: JUMP 5932
5b6f: JZ L05 [TRUE] 5b7d
5b72: STORE G78,#89
5b75: STORE G76,L05
5b78: STORE G5f,L05
5b7b: RET #01
5b7d: STORE G5f,#00
5b80: JZ G69 [TRUE] 5b88
5b83: CALL 5e42 -> -(SP)
5b88: CALL 60a0 -> -(SP)
5b8d: JZ (SP)+ [TRUE] RFALSE
5b90: CALL 64ca -> -(SP)
5b95: JZ (SP)+ [TRUE] RFALSE
5b98: CALL 6b98 -> -(SP)
5b9d: JZ (SP)+ [TRUE] RFALSE
5ba0: CALL 6ad8 -> -(SP)
5ba5: JZ (SP)+ [TRUE] RFALSE
5ba8: RTRUE
Routine 5baa, 5 locals (0000, 0000, 0005, 0005, 0000)
5bb5: LOADB L00,#04 -> L04
5bb9: TEST L04,L01 [FALSE] RFALSE
5bbd: JG L02,#04 [TRUE] RTRUE
5bc1: AND L04,#03 -> L04
5bc5: JE L04,L02 [TRUE] 5bcb
5bc9: INC L03
5bcb: LOADB L00,L03 -> -(SP)
5bcf: RET_POPPED
Routine 5bd0, 10 locals (0000, 0000, 0000, 0000, 0000, 0000, 0001, 0000, 0000, 0000)
5be5: SUB G61,#01 -> -(SP)
5be9: MUL (SP)+,#02 -> L03
5bed: JZ L01 [TRUE] 5c09
5bf0: ADD #02,L03 -> L04
5bf4: STOREW G64,L04,L01
5bf9: ADD L04,#01 -> -(SP)
5bfd: STOREW G64,(SP)+,L02
5c02: ADD L00,#02 -> L00
5c06: JUMP 5c0b
5c09: INC G71
5c0b: JZ G71 [FALSE] 5c13
5c0e: DEC G61
5c10: RET #ffff
5c13: ADD #06,L03 -> L04
5c17: MUL L00,#02 -> -(SP)
5c1b: ADD G6e,(SP)+ -> -(SP)
5c1f: STOREW G64,L04,(SP)+
5c24: LOADW G6e,L00 -> -(SP)
5c28: JE (SP)+,"the","a","an" [FALSE] 5c3f
5c32: LOADW G64,L04 -> -(SP)
5c36: ADD (SP)+,#04 -> -(SP)
5c3a: STOREW G64,L04,(SP)+
5c3f: DEC_CHK G71,#00 [FALSE] 5c57
5c43: ADD L04,#01 -> L09
5c47: MUL L00,#02 -> -(SP)
5c4b: ADD G6e,(SP)+ -> -(SP)
5c4f: STOREW G64,L09,(SP)+
5c54: RET #ffff
5c57: LOADW G6e,L00 -> L02
5c5b: JZ L02 [FALSE] 5c68
5c5e: CALL 5db8 (L00) -> L02
5c64: JZ L02 [TRUE] 5da4
5c68: JZ G71 [FALSE] 5c71
5c6b: STORE L07,#00
5c6e: JUMP 5c79
5c71: ADD L00,#02 -> -(SP)
5c75: LOADW G6e,(SP)+ -> L07
5c79: JE L02,"and","," [FALSE] 5c87
5c81: STORE L05,#01
5c84: JUMP 5dab
5c87: JE L02,"all","one" [FALSE] 5c9f
5c8f: JE L07,"of" [FALSE] 5dab
5c96: DEC G71
5c98: ADD L00,#02 -> L00
5c9c: JUMP 5dab
5c9f: JE L02,"then","." [TRUE] 5cbb
5ca7: CALL 5baa (L02,#08) -> -(SP)
5cae: JZ (SP)+ [TRUE] 5cd4
5cb1: LOADW G64,#00 -> -(SP)
5cb5: JZ (SP)+ [TRUE] 5cd4
5cb8: JZ L06 [FALSE] 5cd4
5cbb: INC G71
5cbd: ADD L04,#01 -> L09
5cc1: MUL L00,#02 -> -(SP)
5cc5: ADD G6e,(SP)+ -> -(SP)
5cc9: STOREW G64,L09,(SP)+
5cce: SUB L00,#02 -> -(SP)
5cd2: RET (SP)+
5cd4: CALL 5baa (L02,#80) -> -(SP)
5cdb: JZ (SP)+ [TRUE] 5d3f
5cdf: JG G71,#00 [FALSE] 5cf4
5ce3: JE L07,"of" [FALSE] 5cf4
5ce9: JE L02,"all","one" [TRUE] 5cf4
5cf1: JUMP 5dab
5cf4: CALL 5baa (L02,#20,#02) -> -(SP)
5cfc: JZ (SP)+ [TRUE] 5d0f
5cff: JZ L07 [TRUE] 5d0f
5d02: CALL 5baa (L07,#80) -> -(SP)
5d09: JZ (SP)+ [TRUE] 5d0f
5d0c: JUMP 5dab
5d0f: JZ L05 [FALSE] 5d39
5d12: JE L07,"but","except" [TRUE] 5d39
5d1a: JE L07,"and","," [TRUE] 5d39
5d22: ADD L04,#01 -> L09
5d26: ADD L00,#02 -> -(SP)
5d2a: MUL (SP)+,#02 -> -(SP)
5d2e: ADD G6e,(SP)+ -> -(SP)
5d32: STOREW G64,L09,(SP)+
5d37: RET L00
5d39: STORE L05,#00
5d3c: JUMP 5dab
5d3f: JZ G68 [FALSE] 5d4c
5d42: JZ G69 [FALSE] 5d4c
5d45: LOADW G64,#00 -> -(SP)
5d49: JZ (SP)+ [TRUE] 5d64
5d4c: CALL 5baa (L02,#20) -> -(SP)
5d53: JZ (SP)+ [FALSE] 5dab
5d57: CALL 5baa (L02,#04) -> -(SP)
5d5e: JZ (SP)+ [TRUE] 5d64
5d61: JUMP 5dab
5d64: JZ L05 [TRUE] 5d90
5d67: CALL 5baa (L02,#10) -> -(SP)
5d6e: JZ (SP)+ [FALSE] 5d7b
5d71: CALL 5baa (L02,#40) -> -(SP)
5d78: JZ (SP)+ [TRUE] 5d90
5d7b: SUB L00,#04 -> L00
5d7f: ADD L00,#02 -> -(SP)
5d83: STOREW G6e,(SP)+,"then"
5d89: ADD G71,#02 -> G71
5d8d: JUMP 5dab
5d90: CALL 5baa (L02,#08) -> -(SP)
5d97: JZ (SP)+ [TRUE] 5d9d
5d9a: JUMP 5dab
5d9d: CALL 6040 (L00) -> -(SP)
5da3: RFALSE
5da4: CALL 5ff0 (L00) -> -(SP)
5daa: RFALSE
5dab: STORE L08,L02
5dae: STORE L06,#00
5db1: ADD L00,#02 -> L00
5db5: JUMP 5c3f
Routine 5db8, 7 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000)
5dc7: MUL L00,#02 -> -(SP)
5dcb: ADD G6e,(SP)+ -> -(SP)
5dcf: LOADB (SP)+,#02 -> L01
5dd3: MUL L00,#02 -> -(SP)
5dd7: ADD G6e,(SP)+ -> -(SP)
5ddb: LOADB (SP)+,#03 -> L02
5ddf: DEC_CHK L01,#00 [FALSE] 5de6
5de3: JUMP 5e16
5de6: LOADB G6d,L02 -> L03
5dea: JE L03,#3a [FALSE] 5df7
5dee: STORE L05,L04
5df1: STORE L04,#00
5df4: JUMP 5e11
5df7: JG L04,#2710 [TRUE] RFALSE
5dfd: JL L03,#3a [FALSE] RFALSE
5e01: JG L03,#2f [FALSE] RFALSE
5e05: MUL L04,#0a -> L06
5e09: SUB L03,#30 -> -(SP)
5e0d: ADD L06,(SP)+ -> L04
5e11: INC L02
5e13: JUMP 5ddf
5e16: STOREW G6e,L00,"intnum"
5e1c: JG L04,#03e8 [TRUE] RFALSE
5e22: JZ L05 [TRUE] 5e3c
5e25: JL L05,#08 [FALSE] 5e30
5e29: ADD L05,#0c -> L05
5e2d: JUMP 5e34
5e30: JG L05,#17 [TRUE] RFALSE
5e34: MUL L05,#3c -> -(SP)
5e38: ADD L04,(SP)+ -> L04
5e3c: STORE G5e,L04
5e3f: RET "intnum"
Routine 5e42, 8 locals (ffff, 0000, 0000, 0000, 0000, 0000, 0000, 0000)
5e53: STORE G69,#00
5e56: LOADW G64,#01 -> -(SP)
5e5a: LOADW (SP)+,#00 -> -(SP)
5e5e: CALL 5baa ((SP)+,#20,#02) -> -(SP)
5e66: JZ (SP)+ [TRUE] 5e6c
5e69: STORE L05,#01
5e6c: LOADW G64,#00 -> L02
5e70: JZ L02 [TRUE] 5e7e
5e73: JZ L05 [FALSE] 5e7e
5e76: LOADW G63,#00 -> -(SP)
5e7a: JE L02,(SP)+ [FALSE] RFALSE
5e7e: JE G61,#02 [TRUE] RFALSE
5e82: LOADW G63,#06 -> -(SP)
5e86: JE (SP)+,#01 [FALSE] 5ec7
5e8b: LOADW G64,#02 -> L01
5e8f: LOADW G63,#02 -> -(SP)
5e93: JE L01,(SP)+ [TRUE] 5e9a
5e97: JZ L01 [FALSE] RFALSE
5e9a: JZ L05 [TRUE] 5eb2
5e9d: ADD G6e,#02 -> -(SP)
5ea1: STOREW G63,#06,(SP)+
5ea6: ADD G6e,#06 -> -(SP)
5eaa: STOREW G63,#07,(SP)+
5eaf: JUMP 5f9b
5eb2: LOADW G64,#06 -> -(SP)
5eb6: STOREW G63,#06,(SP)+
5ebb: LOADW G64,#07 -> -(SP)
5ebf: STOREW G63,#07,(SP)+
5ec4: JUMP 5f9b
5ec7: LOADW G63,#08 -> -(SP)
5ecb: JE (SP)+,#01 [FALSE] 5f0c
5ed0: LOADW G64,#02 -> L01
5ed4: LOADW G63,#04 -> -(SP)
5ed8: JE L01,(SP)+ [TRUE] 5edf
5edc: JZ L01 [FALSE] RFALSE
5edf: JZ L05 [TRUE] 5ef4
5ee2: ADD G6e,#02 -> -(SP)
5ee6: STOREW G64,#06,(SP)+
5eeb: ADD G6e,#06 -> -(SP)
5eef: STOREW G64,#07,(SP)+
5ef4: LOADW G64,#06 -> -(SP)
5ef8: STOREW G63,#08,(SP)+
5efd: LOADW G64,#07 -> -(SP)
5f01: STOREW G63,#09,(SP)+
5f06: STORE G61,#02
5f09: JUMP 5f9b
5f0c: JZ G67 [TRUE] 5f9b
5f10: JE G61,#01 [TRUE] 5f1b
5f14: JZ L05 [FALSE] 5f1b
5f17: STORE G67,#00
5f1a: RFALSE
5f1b: LOADW G64,#06 -> L03
5f1f: JZ L05 [TRUE] 5f29
5f22: ADD G6e,#02 -> L03
5f26: STORE L05,#00
5f29: LOADW G64,#07 -> L04
5f2d: LOADW L03,#00 -> L06
5f31: JE L03,L04 [FALSE] 5f45
5f35: JZ L05 [TRUE] 5f41
5f38: CALL 5fb0 (L05) -> -(SP)
5f3e: JUMP 5f9b
5f41: STORE G67,#00
5f44: RFALSE
5f45: JZ L05 [FALSE] 5f5e
5f48: LOADB L06,#04 -> -(SP)
5f4c: TEST (SP)+,#20 [TRUE] 5f58
5f50: JE L06,"all","one" [FALSE] 5f5e
5f58: STORE L05,L06
5f5b: JUMP 5f7c
5f5e: LOADB L06,#04 -> -(SP)
5f62: TEST (SP)+,#80 [TRUE] 5f6c
5f66: JE L06,"one" [FALSE] 5f7c
5f6c: JE L06,G66,"one" [FALSE] RFALSE
5f73: CALL 5fb0 (L05) -> -(SP)
5f79: JUMP 5f9b
5f7c: ADD L03,#04 -> L03
5f80: JZ L04 [FALSE] 5f2d
5f84: STORE L04,L03
5f87: STORE G61,#01
5f8a: SUB L03,#04 -> -(SP)
5f8e: STOREW G64,#06,(SP)+
5f93: STOREW G64,#07,L03
5f98: JUMP 5f2d
5f9b: INC_CHK L00,#09 [FALSE] 5fa3
5f9f: STORE G68,#01
5fa2: RTRUE
5fa3: LOADW G63,L00 -> -(SP)
5fa7: STOREW G64,L00,(SP)+
5fac: JUMP 5f9b
Routine 5fb0, 1 local (0000)
5fb3: LOADW G63,#00 -> -(SP)
5fb7: STOREW G64,#00,(SP)+
5fbc: STORE G72,G63
5fbf: ADD G67,#01 -> -(SP)
5fc3: CALL 639e (G67,(SP)+,L00) -> -(SP)
5fcb: LOADW G63,#08 -> -(SP)
5fcf: JZ (SP)+ [TRUE] 5fd5
5fd2: STORE G61,#02
5fd5: STORE G67,#00
5fd8: RTRUE
Routine 5fda, 2 locals (0000, 0000)
5fdf: DEC_CHK L00,#00 [TRUE] RTRUE
5fe3: LOADB G6d,L01 -> -(SP)
5fe7: PRINT_CHAR (SP)+
5fea: INC L01
5fec: JUMP 5fdf
Routine 5ff0, 3 locals (0000, 0000, 0000)