commit 75ca0717335aa00add8c7c6801aca75ba632c09f Author: historicalsource Date: Sun Apr 14 02:06:26 2019 -0400 Revision 37 (Original Source) diff --git a/README.md b/README.md new file mode 100644 index 0000000..425c487 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# hollywoodhijinx diff --git a/anthill.chart b/anthill.chart new file mode 100644 index 0000000..d9ca102 --- /dev/null +++ b/anthill.chart @@ -0,0 +1,381 @@ +-date- -rel- -size- -pre- -obj- -glo- -voc- + 6/19 1 33030 10511 42 96 545 + 6/19 2 33040 10515 42 96 545 + 6/19 3 33040 10515 42 96 545 + 7/08 3 35058 11081 59 97 559 + 7/09 4 35052 11087 59 99 559 + 7/09 5 35012 11048 58 99 559 + 7/09 6 35086 11063 58 100 559 + 7/09 7 35136 11069 58 100 559 + 7/09 7 35140 11069 58 100 559 + 7/10 8 35124 11066 58 100 559 + 7/10 9 35124 11066 58 100 559 + 7/11 10 35204 11093 59 100 560 + 7/18 11 35246 11093 59 100 560 + 7/18 13 35398 11049 58 100 558 + 7/19 14 35472 11066 59 100 558 + 7/22 15 36406 11069 59 100 559 + 7/22 16 35550 11071 59 100 559 + 7/22 17 35440 11071 59 100 559 + 7/22 18 35476 11071 59 100 559 + 7/23 19 35452 11071 59 100 559 + 7/23 20 35452 11071 59 100 559 + 7/24 21 35460 11069 59 100 559 + 7/24 22 35928 11153 61 101 561 + 7/26 23 35964 11153 61 101 561 + 7/26 24 35988 11175 61 101 561 + 7/29 25 35972 11173 61 100 561 + 7/30 26 36886 11465 69 102 570 + 7/30 26 36876 11456 69 102 570 + 7/30 27 36874 11454 69 102 570 + 7/30 28 36870 11454 69 102 570 + 7/30 29 36870 11454 69 102 570 + 7/30 30 36872 11452 68 102 570 + 8/01 31 36872 11379 66 102 570 + 8/01 32 36910 11414 67 102 571 + 8/02 33 38230 11678 76 103 575 + 8/02 34 38318 11687 76 103 575 + 8/04 35 38326 11696 76 103 576 + 8/27 36 40798 12306 91 106 588 + 8/29 37 41138 12394 92 107 592 + 9/05 38 41210 12398 92 107 592 + 9/05 39 41182 12400 92 107 592 + 9/10 40 41366 12384 91 107 594 + 9/11 41 41636 12444 92 107 597 + 9/20 42 41986 12507 94 107 597 + 9/25 43 42904 12635 96 108 601 +10/16 44 43330 12675 97 108 602 +10/22 45 43134 12530 96 108 591 +10/24 46 43160 12530 96 108 591 +11/13 47 44596 12720 98 107 601 +11/13 48 44594 12720 98 107 601 +11/25 49 44800 12727 98 108 600 +11/26 50 44812 12727 98 108 600 +11/26 51 44864 12727 98 108 600 +12/23 52 46768 13246 109 114 620 +12/28 53 47218 13391 114 115 620 +12/28 54 47218 13391 114 115 620 +12/28 55 47300 13391 114 115 620 +12/28 56 47300 13391 114 115 620 +12/28 57 47300 13391 114 115 620 +12/29 58 47300 13391 114 115 620 +12/29 59 47300 13391 114 115 620 +12/29 60 47300 13391 114 115 620 +12/29 61 47306 13391 114 115 620 +12/29 62 47320 13398 114 115 621 + 1/09 63 48038 13520 116 116 626 + 1/14 64 48236 13520 116 116 626 + 1/15 65 48638 13520 116 116 626 + 1/20 66 48590 13558 117 116 628 + 1/20 67 48786 13562 117 116 628 + 1/21 68 48792 13570 117 116 628 + 1/21 69 48810 13570 117 116 628 + 1/21 70 48826 13570 117 116 628 + 1/22 71 48800 13570 117 116 628 + 1/23 72 48758 13532 116 116 626 + 1/23 73 48758 13532 116 116 626 + 1/27 74 49582 13760 120 118 629 + 1/27 75 49748 13774 120 118 629 + 1/27 -1 49736 13776 120 118 629 + 1/29 -1 49736 13776 120 118 629 + 1/29 -1 49740 13776 120 118 629 + 1/29 -1 50010 13896 122 118 636 + 1/29 -1 50044 13896 122 118 636 + 2/06 2 50894 13958 130 120 648 + 2/06 3 51140 14002 130 122 648 + 2/06 4 51160 14002 130 122 648 + 2/06 5 51152 14002 130 122 648 + 2/10 6 52192 14327 136 122 658 + 2/10 7 52162 14327 136 122 658 + 2/10 8 52150 14327 136 122 658 + 2/10 9 52164 14330 136 122 658 + 2/10 10 52166 14330 136 122 658 + 2/11 11 52170 14334 136 122 658 + 2/11 12 52486 14375 137 122 658 + 2/12 13 52586 14442 138 122 661 + 3/10 14 55950 15521 139 127 662 + 3/10 15 55938 15516 139 127 662 + 3/12 16 57588 15615 142 127 658 + 3/12 17 57584 15615 142 127 658 + 3/12 18 57588 15617 142 127 658 + 3/12 19 57690 15617 142 127 658 + 3/18 20 60178 15656 142 127 660 + 3/18 21 60324 15656 142 127 660 + 3/18 22 60862 15656 142 127 660 + 3/19 23 60734 15742 144 128 665 + 3/19 24 60738 15745 144 128 665 + 3/19 25 60738 15745 144 128 665 + 3/19 26 61276 15745 144 128 665 + 3/24 27 64 0 0 0 0 + 3/24 28 64 0 0 0 0 + 3/24 29 64 0 0 0 0 + 3/24 30 63752 16341 158 131 685 + 3/24 31 62894 16255 156 131 682 + 3/26 32 63132 16321 158 130 684 + 3/26 33 63044 16321 158 130 684 + 3/27 34 62906 16322 158 130 684 + 4/02 34 64998 16630 163 131 690 + 4/03 35 65302 16630 163 131 690 + 4/03 36 64890 16630 163 131 690 + 4/04 37 65256 16574 161 133 688 + 4/06 38 65298 16574 161 133 688 + 4/08 39 65730 16623 162 135 689 + 4/09 40 66738 16709 165 135 689 + 4/11 41 66728 16761 166 135 692 + 4/24 42 58708 15719 143 128 675 + 4/24 43 58700 15719 143 128 675 + 4/26 44 65708 16815 169 133 693 + 4/27 45 65660 16712 166 133 693 + 4/28 46 65664 16703 166 133 693 + 4/28 47 65766 16715 166 133 693 + 4/29 48 64 0 0 0 0 + 4/29 49 64866 15653 159 129 685 + 5/01 50 66290 16710 168 131 686 + 5/04 51 67014 16806 168 133 691 + 5/05 52 67310 16823 168 133 693 + 5/05 53 67466 16829 168 133 693 + 5/05 54 67468 16829 168 133 693 + 5/05 55 67490 16817 168 133 693 + 5/05 56 67730 16846 168 133 693 + 5/05 57 67626 16843 168 133 693 + 5/06 58 64 0 0 0 0 + 5/07 59 67626 16849 168 133 694 + 5/13 60 70518 17744 192 137 715 + 5/17 61 73154 18066 199 144 717 + 5/17 62 73154 18066 199 144 717 + 5/19 63 73154 18066 199 144 717 + 5/19 64 73240 18061 200 144 716 + 5/21 65 73664 18094 200 145 716 + 5/22 66 73670 18090 200 145 716 + 5/22 67 64 0 0 0 0 + 5/23 68 64 0 0 0 0 + 5/23 69 73792 18221 201 145 726 + 5/23 70 74038 18262 202 145 726 + 5/27 71 74966 18319 203 145 727 + 5/28 72 74966 18319 203 145 727 + 5/28 73 74966 18319 203 145 727 + 6/03 74 74934 18445 207 145 730 + 6/05 75 75170 18404 206 145 729 + 6/05 76 75404 18428 206 146 730 + 6/06 77 75518 18450 206 146 731 + 6/10 78 79606 18605 210 146 736 + 6/10 79 64 0 0 0 0 + 6/10 80 79968 18742 211 146 744 + 6/11 81 80216 18757 211 146 746 + 6/16 82 80494 18757 211 146 746 + 6/17 83 80854 18736 210 145 746 + 6/17 84 80854 18736 210 145 746 + 6/18 85 80846 18738 210 145 746 + 6/19 86 80938 18740 210 146 746 + 6/19 87 81026 18743 210 146 746 + 6/20 88 80806 18685 207 146 747 + 6/21 89 81274 18681 207 145 745 + 6/21 90 81338 18682 207 145 745 + 6/21 91 81304 18673 207 144 744 + 6/22 92 81696 18673 207 144 744 + 6/25 93 64 0 0 0 0 + 6/26 93 64 0 0 0 0 + 6/26 94 82624 18759 208 148 749 + 6/26 95 82704 18791 209 148 749 + 6/26 96 82740 18852 209 148 750 + 6/30 97 84332 19196 213 145 754 + 6/30 98 84334 19198 213 145 754 + 6/30 99 84334 19198 213 145 754 + 7/01 100 84456 19198 213 145 754 + 7/03 101 84250 19114 213 145 754 + 7/09 102 85798 19654 229 145 764 + 7/09 103 85798 19654 229 145 764 + 7/09 104 85870 19654 229 145 764 + 7/09 105 85862 19654 229 145 764 + 7/12 106 88288 19654 229 150 764 + 7/13 107 88500 19654 229 150 764 + 7/14 108 88514 19654 229 150 764 + 7/29 109 91168 19652 226 156 773 + 8/02 110 92976 19536 222 157 770 + 8/05 111 93494 19643 223 158 774 + 8/07 112 94118 19591 221 155 774 + 8/07 113 94126 19591 221 155 774 + 8/07 114 94126 19591 221 155 774 + 8/12 115 95274 19777 225 156 782 + 8/19 116 95494 19832 226 156 783 + 8/20 117 97676 19926 229 157 784 + 8/21 118 97724 19926 229 157 784 + 8/21 119 97780 19926 229 157 784 + 8/25 120 99074 20167 235 157 791 + 8/25 121 99060 20154 234 157 791 + 8/26 122 99044 20154 234 157 791 + 8/29 123 98826 19933 228 159 787 + 9/02 124 98976 19933 228 159 787 + 9/03 125 99696 19941 228 160 787 + 9/03 126 99696 19941 228 160 787 + 9/03 127 99696 19941 228 160 787 + 9/03 128 99778 19941 228 160 787 + 9/03 129 99966 19960 228 160 789 + 9/04 130 100558 20239 234 160 800 + 9/10 131 101850 20436 236 165 810 + 9/10 132 102010 20485 237 165 812 + 9/11 133 102234 20489 237 167 812 + 9/11 134 102642 20527 237 167 814 + 9/14 135 102642 20527 237 167 814 + 9/15 136 103616 20560 237 167 814 + 9/16 137 103494 20522 236 167 814 + 9/16 138 103712 20565 237 167 816 + 9/17 139 104280 20584 236 167 820 + 9/18 140 104188 20479 235 167 805 + 9/19 141 104368 20482 235 167 805 + 9/22 142 104502 20474 235 166 806 + 9/24 143 105582 20484 235 167 806 + 9/24 144 64 0 0 0 0 + 9/24 145 106918 20548 235 169 809 + 9/25 146 106974 20638 237 159 812 + 9/25 147 106972 20638 237 159 812 + 9/26 148 107934 20831 242 162 814 + 9/26 149 107922 20820 241 162 814 + 9/28 150 108134 20825 241 164 814 + 9/29 151 108340 20827 241 165 814 + 9/29 152 108874 20913 241 166 817 + 9/30 153 109050 20977 240 166 817 +10/01 154 108520 20901 238 166 815 +10/01 155 108494 20869 239 166 810 +10/01 156 108494 20869 239 166 810 +10/01 157 108478 20858 238 166 810 +10/01 158 108478 20858 238 166 810 +10/02 159 108478 20858 238 166 810 +10/03 160 108336 20820 237 167 808 +10/06 161 108334 20820 237 167 808 +10/08 162 110382 20946 240 167 818 +10/08 163 110390 20946 240 167 818 +10/08 164 110380 20935 239 167 818 +10/09 165 110400 20949 239 167 819 +10/09 166 110432 20952 239 167 819 +10/09 167 110468 20956 239 167 819 +10/09 168 110470 20956 239 167 819 +10/09 168 110470 20956 239 167 819 +10/10 169 110470 20956 239 167 819 +10/10 169 110470 20956 239 167 819 +10/10 170 110482 20956 239 167 819 +10/14 171 110846 20998 241 167 820 +10/15 172 110854 20998 241 167 820 +10/15 173 110854 20996 241 167 820 +10/19 174 111316 21081 241 167 825 +10/20 175 111490 21094 241 167 827 +10/20 176 111504 21101 241 167 828 +10/21 177 111756 21194 241 167 832 +10/22 178 111746 21194 241 167 832 +10/22 178 111744 21194 241 167 832 +10/23 178 112860 21357 242 168 833 +10/26 179 112882 21351 242 168 833 +10/26 180 112880 21351 242 168 833 +10/26 181 112872 21351 242 168 833 +10/26 182 112938 21353 242 168 833 +10/27 183 112942 21353 242 168 833 +10/27 184 113350 21393 242 168 834 +10/27 185 113318 21393 242 168 834 +10/28 186 113940 21393 242 168 834 +10/29 187 113928 21391 242 167 834 +10/29 188 114240 21408 242 167 835 +10/30 189 114704 21438 242 167 837 +10/30 190 114752 21438 242 167 837 +10/30 191 114790 21438 242 167 837 +10/30 192 115026 21440 242 167 837 +11/03 193 115122 21430 242 167 835 +11/03 194 115162 21430 242 167 835 +11/03 195 115324 21430 242 167 835 +11/05 196 115668 21382 241 166 835 +11/05 197 115542 21331 241 164 829 +11/05 198 115540 21331 241 164 829 +11/05 199 115544 21265 241 164 826 +11/05 200 115634 21265 241 164 826 +11/06 201 115706 21267 241 164 826 +11/06 202 115706 21267 241 164 826 +11/07 203 115728 21267 241 164 826 +11/11 204 115730 21267 241 164 826 +11/11 205 116044 21271 241 164 826 +11/12 206 115710 21269 241 163 826 +11/12 207 115702 21269 241 163 826 +11/12 208 115706 21269 241 163 826 +11/12 209 115868 21269 241 163 826 +11/12 210 115866 21269 241 163 826 +11/12 211 115862 21269 241 163 826 +11/12 212 115864 21269 241 163 826 +11/12 213 115884 21269 241 163 826 +11/12 214 115548 21233 240 163 824 +11/12 215 115874 21242 240 163 825 +11/13 216 116092 21240 240 163 825 +11/13 217 116092 21240 240 163 825 +11/13 218 116092 21240 240 163 825 +11/13 219 116044 21240 240 163 825 +11/13 220 116044 21240 240 163 825 +11/13 221 116184 21195 239 163 826 +11/14 222 116448 21195 239 163 827 +11/14 223 116450 21199 239 163 827 +11/14 224 116450 21199 239 163 827 +11/14 225 116454 21199 239 163 827 +11/15 226 117152 21218 239 163 828 +11/17 227 117176 21218 239 163 828 +11/17 228 117410 21316 239 163 828 +11/17 229 117510 21316 239 163 827 +11/17 230 117506 21309 239 163 826 +11/17 231 117488 21309 239 163 826 +11/17 232 117486 21309 239 163 826 +11/17 233 118562 21311 239 163 826 +11/18 234 118626 21311 239 163 826 +11/18 235 118626 21311 239 163 826 +11/18 236 118828 21357 240 163 829 +11/19 237 118832 21357 240 163 829 +11/19 238 118844 21384 240 163 832 +11/25 239 118848 21384 240 163 832 +11/27 240 118838 21381 240 163 832 +11/27 241 118880 21339 240 163 831 +11/27 242 118880 21339 240 163 831 +11/28 243 118878 21348 240 163 831 +11/28 244 118874 21348 240 163 831 +11/28 245 119168 21349 240 163 831 +11/28 246 119294 21348 240 163 831 +11/29 247 119292 21348 240 163 831 +11/29 248 119292 21348 240 163 831 +11/29 249 119332 21357 240 163 832 +12/01 250 119330 21357 240 163 832 +12/01 251 119884 21408 240 163 832 +12/01 252 119870 21408 240 163 832 +12/01 253 119846 21408 240 163 832 +12/02 254 120094 21421 240 164 832 +12/02 255 120206 21423 240 164 832 +12/03 256 120536 21475 240 164 836 +12/03 1 120530 21475 240 164 836 +12/03 2 120528 21475 240 164 836 +12/04 3 120528 21475 240 164 836 +12/04 4 120652 21486 240 164 835 +12/04 5 120656 21486 240 164 835 +12/04 6 120726 21495 240 164 836 +12/04 7 120744 21493 240 164 836 +12/05 8 120888 21496 240 164 836 +12/05 9 120864 21494 240 164 836 +12/05 10 121084 21494 240 164 836 +12/05 11 121102 21494 240 164 836 +12/06 12 121278 21517 240 165 838 +12/06 13 121928 21727 242 165 857 +12/07 14 121932 21727 242 165 857 +12/07 15 122540 21727 242 167 857 +12/08 16 122702 21746 242 167 857 +12/08 17 123208 21843 243 167 862 +12/08 18 123218 21847 243 167 862 +12/09 19 123214 21847 243 167 862 +12/09 20 123200 21838 243 167 861 +12/09 21 123214 21843 243 167 861 +12/09 22 111398 22299 243 167 861 +12/09 23 111426 22299 243 167 861 +12/09 24 111576 22300 243 167 861 +12/10 25 111584 22308 243 167 861 +12/10 26 111730 22310 243 168 861 +12/10 27 111810 22351 244 168 862 +12/10 28 111826 22351 244 168 862 +12/10 29 111864 22350 244 168 862 +12/10 30 111858 22358 244 168 863 +12/11 31 111864 22358 244 168 863 +12/12 32 111908 22361 244 168 863 +12/12 33 110044 22315 244 167 861 +12/14 34 110044 22315 244 167 861 +12/15 35 109646 22148 244 167 854 +12/15 36 109648 22148 244 167 854 +12/15 37 109650 22148 244 167 854 diff --git a/anthill.errors b/anthill.errors new file mode 100644 index 0000000..2fe2d3c --- /dev/null +++ b/anthill.errors @@ -0,0 +1,35 @@ +Assembling ANTHILL.ZAP.447 on Monday, December 15, 1986 15:25:36 +Release: 37 + (2 bytes) + 66 Inserting ANTHILLFREQ.XZAP.1 (644 bytes) + 710 Inserting ANTHILLDAT.ZAP.282 (21438 bytes) + 22148 Inserting ANTHILLPUR.ZAP.96 (228 bytes) + 22376 Inserting MISC.ZAP.514 (2267 bytes) + 24643 Inserting PARSER.ZAP.406 (9944 bytes) + 34587 Inserting GLOBALS.ZAP.403 (1358 bytes) + 35945 Inserting SYNTAX.ZAP.404 (43 bytes) + 35988 Inserting VERBS.ZAP.396 (11680 bytes) + 47668 Inserting PARLOR.ZAP.391 (5161 bytes) + 52829 Inserting FIRST-FLOOR.ZAP.339 (10608 bytes) + 63437 Inserting SECOND-FLOOR.ZAP.331 (5867 bytes) + 69304 Inserting BSHELTER.ZAP.364 (6571 bytes) + 75875 Inserting OUTSIDE.ZAP.338 (5945 bytes) + 81820 Inserting ELEVATOR.ZAP.200 (7944 bytes) + 89764 Inserting HEDGEMAZE.ZAP.320 (9113 bytes) + 98877 Inserting MAP.ZAP.315 (0 bytes) + 98877 Inserting POINTS.ZAP.180 (0 bytes) + 98877 Inserting ANTHILLSTR.ZAP.281 (10773 bytes) + +Symbols unused: +V-$DEBUG +HEDGE-NUM + +244 objects. +167 globals. +854 word vocabulary. + +109650 bytes (108K). + 22148 bytes of preload. + 12142 bytes of impure. + +Outputting symbol tables diff --git a/anthill.record b/anthill.record new file mode 100644 index 0000000..b7b0f65 --- /dev/null +++ b/anthill.record @@ -0,0 +1,1129 @@ + +Combined ZIL Compiler Ver 2.0 (MIM) +----------------------------------- +Input file: PS:ANTHILL.ZIL.118 +Input file: PS:MISC.ZIL.175 +Compiling routine: APRINT +Compiling routine: TPRINT +Compiling routine: ARPRINT +Compiling routine: TRPRINT +Compiling routine: DPRINT +Compiling routine: ULTIMATELY-IN? +Compiling routine: GO +Compiling routine: RESET-THEM +Compiling routine: PCLEAR +Compiling routine: DO-MAIN-LOOP +Compiling routine: MAIN-LOOP +Compiling routine: DONT-ALL? +Compiling routine: GAME-VERB? +Compiling routine: QCONTEXT-CHECK +Compiling routine: SAID-TO +Compiling routine: SPOKEN-TO +Compiling routine: QCONTEXT-GOOD? +Compiling routine: ACCESSIBLE? +Compiling routine: VISIBLE? +Compiling routine: SEE-INSIDE? +Compiling routine: META-LOC +Compiling routine: DEQUEUE +Compiling routine: QUEUE +Compiling routine: QUEUED? +Compiling routine: CLOCKER +Compiling routine: FIXED-FONT-ON +Compiling routine: FIXED-FONT-OFF +Input file: PS:PARSER.ZIL.252 +Compiling routine: PARSER +Compiling routine: CHANGE-LEXV +Compiling routine: WAY-TO-TALK +Compiling routine: WT? +Compiling routine: CLAUSE +Compiling routine: THIS-IS-IT +Compiling routine: REFERRING +Compiling routine: FAKE-ORPHAN +Compiling routine: SEE-VERB? +Compiling routine: PERFORM +Compiling routine: BUZZER-WORD? +Compiling routine: NUMBER-WORD? +Compiling routine: NAUGHTY-WORD? +Compiling routine: VERB-DIR-ONLY? +Compiling routine: STUFF +Compiling routine: INBUF-STUFF +Compiling routine: INBUF-ADD +Compiling routine: NUMBER? +Compiling routine: ORPHAN-MERGE +Compiling routine: CLAUSE-WIN +Compiling routine: WORD-PRINT +Compiling routine: UNKNOWN-WORD +Compiling routine: SYNTAX-CHECK +Compiling routine: VERB-PRINT +Compiling routine: ORPHAN +Compiling routine: CLAUSE-PRINT +Compiling routine: BUFFER-PRINT +Compiling routine: NAME? +Compiling routine: CAPITALIZE +Compiling routine: PREP-PRINT +Compiling routine: CLAUSE-COPY +Compiling routine: CLAUSE-ADD +Compiling routine: PREP-FIND +Compiling routine: SYNTAX-FOUND +Compiling routine: GWIM +Compiling routine: SNARF-OBJECTS +Compiling routine: BUT-MERGE +Compiling routine: SNARFEM +Compiling routine: ADJ-CHECK +Compiling routine: GET-OBJECT +Compiling routine: SPEAKING-VERB? +Compiling routine: MOBY-FIND +Compiling routine: WHICH-PRINT +Compiling routine: GLOBAL-CHECK +Compiling routine: DO-SL +Compiling routine: SEARCH-LIST +Compiling routine: THIS-IT? +Compiling routine: OBJ-FOUND +Compiling routine: TAKE-CHECK +Compiling routine: ITAKE-CHECK +Compiling routine: MANY-CHECK +Compiling routine: ZMEMQ +Compiling routine: ZMEMQB +Compiling routine: LIT? +Compiling routine: PICK-ONE +Compiling routine: PICK-REMOVE +Compiling routine: DONT-HAVE? +Compiling routine: NOT-HOLDING +Compiling routine: ASKING? +Compiling routine: TALKING-TO? +Compiling routine: TOUCHING? +Compiling routine: HURT? +Compiling routine: ANYONE-HERE? +Compiling routine: GETTING-INTO? +Compiling routine: SAY-THE +Compiling routine: BUT-THE +Compiling routine: MOVING? +Compiling routine: NOT-HERE-OBJECT-F +Compiling routine: FIND-NOT-HERE +Compiling routine: NOT-HERE-PRINT +Compiling routine: MOVE-ALL +Compiling routine: GLOBAL-IN? +Compiling routine: WHAT-A-CONCEPT +Compiling routine: YOU-DONT-NEED +Compiling routine: ITS-CLOSED +Compiling routine: IS-CLOSED +Input file: PS:GLOBALS.ZIL.122 +Compiling routine: CANT-USE +Compiling routine: DONT-UNDERSTAND +Compiling routine: NOT-IN-SENTENCE +Compiling routine: LIGHTS-F +Compiling routine: GROUND-F +Compiling routine: MAZE-HOLE-F +Compiling routine: WALLS-F +Compiling routine: CEILING-F +Compiling routine: HANDS-F +Compiling routine: YOUR-FEET-F +Compiling routine: ME-F +Compiling routine: TALK-TO-SELF +Compiling routine: SIGN-OF-COLLAPSE +Compiling routine: GLOBAL-ROOM-F +Compiling routine: CANT-SEE-ANY +Compiling routine: YOU-CANT-SEE +Compiling routine: YOU-ALREADY +Compiling routine: HOW? +Compiling routine: PRESUMABLY-YOU-WANT-TO +Compiling routine: NOT-LIKELY +Compiling routine: YOUD-HAVE-TO +Compiling routine: WINDOW-F +Input file: PS:SYNTAX.ZIL.262 +Compiling routine: V-FLUSH +Input file: PS:VERBS.ZIL.653 +Compiling routine: DESCRIBE-ROOM +Compiling routine: DESCRIBE-OBJECTS +Compiling routine: DESCRIBE-CONTENTS +Compiling routine: DESCRIBABLE? +Compiling routine: SIMPLE-DESC? +Compiling routine: DESCRIBE-NOTHING +Compiling routine: V-ALARM +Compiling routine: ALREADY-OPEN +Compiling routine: ALREADY-CLOSED +Compiling routine: V-ASK-ABOUT +Compiling routine: V-ASK-FOR +Compiling routine: V-BITE +Compiling routine: V-BLOW-INTO +Compiling routine: PRE-BOARD +Compiling routine: V-BOARD +Compiling routine: V-BURN +Compiling routine: V-BUY +Compiling routine: CANT-CLOSE-THAT +Compiling routine: CANT-GO +Compiling routine: CANT-LOCK +Compiling routine: V-CHASTISE +Compiling routine: V-CLEAN +Compiling routine: V-CLIMB +Compiling routine: V-CLIMB-DOWN +Compiling routine: V-CLIMB-ON +Compiling routine: V-CLIMB-OVER +Compiling routine: V-CLIMB-UP +Compiling routine: V-CLOSE +Compiling routine: V-COMPARE +Compiling routine: V-COUNT +Compiling routine: V-COVER +Compiling routine: V-CROSS +Compiling routine: V-CUT +Compiling routine: V-$DEBUG +Compiling routine: V-DIAGNOSE +Compiling routine: V-DIG-WITH +Compiling routine: V-DIG +Compiling routine: V-DISEMBARK +Compiling routine: V-DRINK +Compiling routine: V-DRINK-FROM +Compiling routine: SPECIAL-DROP +Compiling routine: V-DROP +Compiling routine: IDROP +Compiling routine: V-EAT +Compiling routine: V-EMPTY +Compiling routine: V-ENTER +Compiling routine: PRE-EXAMINE +Compiling routine: V-EXAMINE +Compiling routine: V-EXIT +Compiling routine: FAILED +Compiling routine: V-FILL +Compiling routine: V-FIND +Compiling routine: FIND-IN +Compiling routine: FINISH +Compiling routine: V-FLY +Compiling routine: V-FOCUS +Compiling routine: V-FOLLOW +Compiling routine: PRE-GIVE +Compiling routine: V-GIVE +Compiling routine: V-SGIVE +Compiling routine: GOTO +Compiling routine: HACK-HACK +Compiling routine: PRE-HANG-UP +Compiling routine: V-HANG-UP +Compiling routine: V-HELLO +Compiling routine: V-HELP +Compiling routine: V-HIDE +Compiling routine: V-INVENTORY +Compiling routine: ITS-ALREADY +Compiling routine: JIGS-UP +Compiling routine: V-KICK +Compiling routine: V-KILL +Compiling routine: KILL-INTERRUPTS +Compiling routine: V-KISS +Compiling routine: V-KNOCK +Compiling routine: V-LAMP-OFF +Compiling routine: V-LAMP-ON +Compiling routine: CANT-TURN +Compiling routine: V-LEAP +Compiling routine: V-LEAVE +Compiling routine: V-LET-GO +Compiling routine: V-LIE-DOWN +Compiling routine: V-LISTEN +Compiling routine: V-LOCK +Compiling routine: THING-WONT-LOCK +Compiling routine: V-LOOK +Compiling routine: V-LOOK-BEHIND +Compiling routine: V-LOOK-DOWN +Compiling routine: V-LOOK-INSIDE +Compiling routine: V-LOOK-ON +Compiling routine: V-LOOK-THRU +Compiling routine: V-LOOK-UNDER +Compiling routine: V-LOOK-UP +Compiling routine: V-LOWER +Compiling routine: V-MOVE +Compiling routine: V-MUNG +Compiling routine: NO-ANSWER +Compiling routine: NOT-A +Compiling routine: NOTHING-INTERESTING +Compiling routine: NOW-BLACK +Compiling routine: NOW-CLOSED-OR-OPEN +Compiling routine: V-OPEN +Compiling routine: CANT-OPEN-CLOSE +Compiling routine: OTHER-SIDE +Compiling routine: V-PICK +Compiling routine: V-PLAY +Compiling routine: OPEN-CRAWL-SPACE-DOOR? +Compiling routine: V-POUR +Compiling routine: V-PULL +Compiling routine: V-PUSH +Compiling routine: V-PUSH-DOWN +Compiling routine: V-PUSH-TO +Compiling routine: V-PUSH-UP +Compiling routine: PRE-PUT +Compiling routine: V-PUT +Compiling routine: V-PUT-BEHIND +Compiling routine: V-PUT-ON +Compiling routine: V-PUT-UNDER +Compiling routine: V-QUESTION +Compiling routine: V-QUIT +Compiling routine: V-RAPE +Compiling routine: V-RAISE +Compiling routine: V-REACH-IN +Compiling routine: V-READ +Compiling routine: CANT-VERB-A-PRSO +Compiling routine: V-READ-TO +Compiling routine: HOW-READ +Compiling routine: V-REMOVE +Compiling routine: V-REMOVE-FROM +Compiling routine: V-REPLACE +Compiling routine: V-REPLY +Compiling routine: V-RESCUE +Compiling routine: V-RESET +Compiling routine: V-RESTART +Compiling routine: V-RESTORE +Compiling routine: V-RIDE +Compiling routine: ROB +Compiling routine: V-ROLL-UP +Compiling routine: V-RUB +Compiling routine: V-SAVE +Compiling routine: V-SAY +Compiling routine: SAY-IF-NOT-LIT +Compiling routine: SAY-OKAY +Compiling routine: SAY-SURE +Compiling routine: V-SCORE +Compiling routine: V-SCRAPE-OFF +Compiling routine: V-SCRIPT +Compiling routine: V-UNSCRIPT +Compiling routine: TRANSCRIPT +Compiling routine: V-SEARCH +Compiling routine: V-SHAKE +Compiling routine: V-SHOOT +Compiling routine: V-SSHOOT +Compiling routine: V-SHOW +Compiling routine: V-SSHOW +Compiling routine: V-SIT +Compiling routine: PRE-SKI +Compiling routine: V-SKI +Compiling routine: V-SLEEP +Compiling routine: V-SMELL +Compiling routine: V-SPLICE +Compiling routine: V-SQUEEZE +Compiling routine: V-STAND +Compiling routine: V-STAND-ON +Compiling routine: V-STAND-UNDER +Compiling routine: V-SWING +Compiling routine: V-SWIM +Compiling routine: V-SWIM-UP +Compiling routine: V-SWIM-DOWN +Compiling routine: PRE-TAKE +Compiling routine: V-TAKE +Compiling routine: ITAKE +Compiling routine: BOKS-BIG-ONE +Compiling routine: V-TAKE-OFF +Compiling routine: TAKE-OFF-PRSO-FIRST +Compiling routine: V-TASTE +Compiling routine: V-TELL +Compiling routine: TELL-TIME +Compiling routine: V-TIME +Compiling routine: V-THROW +Compiling routine: V-THROW-OFF +Compiling routine: V-TIE +Compiling routine: V-TIE-UP +Compiling routine: TOO-DARK +Compiling routine: TOO-MUCH-JUNK? +Compiling routine: V-TURN +Compiling routine: V-TURN-LEFT +Compiling routine: V-TURN-RIGHT +Compiling routine: V-USE +Compiling routine: V-VERBOSE +Compiling routine: V-BRIEF +Compiling routine: V-SUPER-BRIEF +Compiling routine: V-VERSION +Compiling routine: V-$VERIFY +Compiling routine: V-$COMMAND +Compiling routine: V-$RANDOM +Compiling routine: V-$RECORD +Compiling routine: V-$UNRECORD +Compiling routine: V-UNLOCK +Compiling routine: V-UNROLL +Compiling routine: V-UNTIE +Compiling routine: DO-WALK +Compiling routine: V-WALK +Compiling routine: V-WALK-AROUND +Compiling routine: V-WALK-TO +Compiling routine: V-WAIT +Compiling routine: V-$WAIT +Compiling routine: V-WAIT-FOR +Compiling routine: PRE-WATER +Compiling routine: V-WATER +Compiling routine: V-WAVE-AT +Compiling routine: V-WEAR +Compiling routine: WEIGHT +Compiling routine: V-YELL +Compiling routine: YES? +Compiling routine: NOW-LIT? +Compiling routine: WASTE-OF-TIME +Input file: PS:PARLOR.ZIL.650 +Compiling routine: FILM-F +Compiling routine: SLIDE-F +Compiling routine: FILM-SLIDE-DESC +Compiling routine: FILM-PROJECTOR-F +Compiling routine: CORPSE-LINE-DEATH +Compiling routine: I-FILM-DROP +Compiling routine: PROJECTORS-DESC +Compiling routine: SLIDE-PROJECTOR-F +Compiling routine: PROJECTED-IMAGE-F +Compiling routine: PROJECTION-SCREEN-F +Compiling routine: LENS-CAP-F +Compiling routine: FILM-PROJECTOR-LENS-F +Compiling routine: SLIDE-PROJECTOR-LENS-F + ** Note: Unknown value - SCREENING-ROOM-PSEUDO-F +Compiling routine: PROJECTION-BOOTH-F +Compiling routine: SCREENING-ROOM-PSEUDO-F +Compiling routine: OUTSIDE-PARLOR-F + ** Note: Unknown value - CASTERS-PSEUDO +Compiling routine: PARLOR-F +Compiling routine: TO-CRAWL-SPACE-NORTH +Compiling routine: CRAWL-SPACE-DOOR-F + ** Note: Unknown value - BEAM-PSEUDO + ** Note: Unknown value - BEAM-PSEUDO +Compiling routine: CRAWL-SPACE-NORTH-F +Compiling routine: TO-CRAWL-SPACE-SOUTH +Compiling routine: TO-FIRST-SECRET-ROOM +Compiling routine: PARKING-METER-F +Compiling routine: DESCRIBE-NICHE +Compiling routine: BEAM-PSEUDO +Compiling routine: DESCRIBE-CRAWL-SPACE-BEAM + ** Note: Unknown value - BEAM-PSEUDO + ** Note: Unknown value - BEAM-PSEUDO +Compiling routine: CRAWL-SPACE-SOUTH-F +Compiling routine: POST-F +Compiling routine: PIANO-F +Compiling routine: CASTERS-PSEUDO +Compiling routine: NICHE-F +Compiling routine: I-NOISE +Compiling routine: OUT-OF-P-DEBUG +Input file: PS:FIRST-FLOOR.ZIL.794 +Compiling routine: LETTER-F +Compiling routine: PHOTO-F +Compiling routine: BUCK-F +Compiling routine: SAY-BUCK-DIR +Compiling routine: FLASHLIGHT-F +Compiling routine: STAIRS-F +Compiling routine: FOYER-F +Compiling routine: FOYER-CD-F +Compiling routine: FOYER-STAIRS-F +Compiling routine: TO-UPSTAIRS-HALL-MIDDLE +Compiling routine: NEWEL-F +Compiling routine: FOYER-CLOSET-ENTER-F + ** Note: Unknown value - CELLAR-PSEUDO +Compiling routine: CELLAR-F +Compiling routine: CELLAR-PSEUDO +Compiling routine: CELLAR-CD-F +Compiling routine: CELLAR-CLOSET-ENTER-F +Compiling routine: DISPLAY-LIGHTS-F +Compiling routine: COMPUTER-F +Compiling routine: RESET-COMPUTER +Compiling routine: RESET-BUTTON-F +Compiling routine: TOUPEE-F +Compiling routine: PUNCH-CARD-F +Compiling routine: PERSIAN-RUG-F +Compiling routine: BLUE-CANDLE-F +Compiling routine: WHITE-CANDLE-F +Compiling routine: RED-CANDLE-F +Compiling routine: GENERIC-CANDLE-F +Compiling routine: CANDLE-F +Compiling routine: CANDLE-BURN +Compiling routine: I-RED-ALMOST-OUT +Compiling routine: I-WHITE-ALMOST-OUT +Compiling routine: I-BLUE-ALMOST-OUT +Compiling routine: I-RED-NEARLY-OUT +Compiling routine: I-WHITE-NEARLY-OUT +Compiling routine: I-BLUE-NEARLY-OUT +Compiling routine: I-RED-CANDLE-BURN +Compiling routine: I-WHITE-CANDLE-BURN +Compiling routine: I-BLUE-CANDLE-BURN +Compiling routine: FEET-F +Compiling routine: BLOW-OUT-CANDLE +Compiling routine: WAX-FEET +Compiling routine: STOP-RED-BURNING +Compiling routine: STOP-WHITE-BURNING +Compiling routine: STOP-BLUE-BURNING +Compiling routine: GENERIC-WAX-F +Compiling routine: WAX-F +Compiling routine: PORTRAIT-F +Compiling routine: WALL-SAFE-F +Compiling routine: GRATER-F +Compiling routine: FIREPLACE-GLOBAL-F +Compiling routine: FIREPLACE-F +Compiling routine: BRICK-HOLE-F +Compiling routine: BRICK-HOLE-GLOBAL-F +Compiling routine: BRICK-F +Compiling routine: UP-CHIMNEY +Compiling routine: DOWN-CHIMNEY +Compiling routine: PENGUIN-F +Compiling routine: MASK-F +Compiling routine: CHIMNEY-F +Compiling routine: ROOF-TO-CHIMNEY +Compiling routine: VERTICAL-MAP-F +Compiling routine: LOOK-AT-MAP +Compiling routine: WET-PAPER +Compiling routine: HORIZONTAL-MAP-F +Compiling routine: WHOLE-MAP +Compiling routine: TO-CELLAR +Input file: PS:SECOND-FLOOR.ZIL.290 +Compiling routine: UPSTAIRS-HALL-MIDDLE-F +Compiling routine: UPSTAIRS-HALL-EAST-F +Compiling routine: UPSTAIRS-HALL-EAST-EXIT-F +Compiling routine: FINCH-F +Compiling routine: BREAK-FINCH +Compiling routine: SACK-F +Compiling routine: SACK-WINDOW-F +Compiling routine: UPSTAIRS-HALL-F +Compiling routine: BEDROOM-2-F +Compiling routine: HANDLES-F + ** Note: Unknown value - BATH-PSEUDO + ** Note: Unknown value - BATH-PSEUDO +Compiling routine: UPSTAIRS-BATHROOM-F +Compiling routine: BATH-PSEUDO +Compiling routine: BATH-MAT-F +Compiling routine: UPSTAIRS-CD-F +Compiling routine: OPEN-DOOR-TO-SHAFT +Compiling routine: TO-FOYER-F +Compiling routine: UPSTAIRS-CLOSET-ENTER-F +Compiling routine: PHONE-F +Compiling routine: THERE-DOESNT-SEEM +Compiling routine: V-PHONE +Compiling routine: TOILET-F +Compiling routine: SEAT-F +Compiling routine: BED-F +Compiling routine: I-SANDS-OF-TIME + ** Note: Unknown value - CORPSE-LINE + ** Note: Unknown value - RUBBER-STAMP + ** Note: Unknown value - RING + ** Note: Unknown value - FIRE-HYDRANT +Compiling routine: MICKEY-MOUSE +Input file: PS:BSHELTER.ZIL.951 +Compiling routine: MATCHBOX-F +Compiling routine: WAX-COAT-F +Compiling routine: MATCH-F +Compiling routine: I-MATCH-BURN +Compiling routine: MATCH-BURN +Compiling routine: BLOW-OUT-MATCH +Compiling routine: BOAT-DOCK-F +Compiling routine: PORTABLE-WATER-F +Compiling routine: WATER-F +Compiling routine: ALL-WET +Compiling routine: TO-BOAT-DOCK +Compiling routine: UNDER-WATER-F +Compiling routine: I-BREATH +Compiling routine: OUT-OF-WATER-F +Compiling routine: TO-UNDERPASS-EAST +Compiling routine: TO-UNDERPASS-WEST +Compiling routine: IN-POOL-2-F +Compiling routine: ON-POOL-2-F + ** Note: Unknown value - PULLEY-PSEUDO +Compiling routine: BOMB-SHELTER-F +Compiling routine: HATCH-F +Compiling routine: CHAIN-F +Compiling routine: ENDS-F +Compiling routine: IN-AIR +Compiling routine: GENERIC-PLANK-F +Compiling routine: PLANK-F +Compiling routine: SLIDES-OFF +Compiling routine: PULLEY-PSEUDO +Compiling routine: PIPE-F +Compiling routine: BS-SAFE-F +Compiling routine: PLAQUE-F +Compiling routine: CORPSE-LINE-F +Compiling routine: RUBBER-STAMP-F +Compiling routine: ROPE-F +Compiling routine: I-ROPE-BURN +Compiling routine: BURN-THROUGH-ROPE +Compiling routine: I-SUNRISE +Input file: PS:OUTSIDE.ZIL.484 +Compiling routine: HOUSE-F + ** Note: Unknown value - COMPASS-ROSE-PSEUDO +Compiling routine: SOUTH-JUNCTION-F +Compiling routine: TO-FRONT-PORCH +Compiling routine: COMPASS-ROSE-PSEUDO +Compiling routine: BAZOOKA-F +Compiling routine: TO-&-FROM-SOUTH-JUNCTION +Compiling routine: TO-&-FROM-TOP-LANDING +Compiling routine: PATIO-F +Compiling routine: GARDEN-F +Compiling routine: GARDEN-WALLS-F + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - ROSE-BUSH-PSEUDO + ** Note: Unknown value - ROSE-BUSH-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO +Compiling routine: ROSE-BUSH-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO + ** Note: Unknown value - FLORAL-PSEUDO +Compiling routine: FLORAL-PSEUDO +Compiling routine: POND-F +Compiling routine: BLOW-OUT-ALL-IN +Compiling routine: TO-&-FROM-CANNON +Compiling routine: CANNON-EMPLACEMENT-F +Compiling routine: TO-CLIFF + ** Note: Unknown value - CLIFF-PSEUDO +Compiling routine: CLIFF-F +Compiling routine: CLIFF-PSEUDO +Compiling routine: TO-CANNON-EMPLACEMENT +Compiling routine: TO-&-FROM-BOMB-SHELTER +Compiling routine: LADDER-F +Compiling routine: HOOKS-F +Compiling routine: HATCH-HOLE-F +Compiling routine: PILE-OF-BALLS-F +Compiling routine: GENERIC-BALL-F +Compiling routine: FUSE-F +Compiling routine: CLOSE-ALL-IN +Compiling routine: SET-FLAME-SOURCE +Compiling routine: CANNON-F +Compiling routine: COMPARTMENT-F +Compiling routine: MOVE-OBJ-DOWN +Compiling routine: DOOR-BELL-F +Compiling routine: SKIS-F +Compiling routine: TOP-LANDING-F +Compiling routine: TO-BEACH +Compiling routine: GAP-F +Compiling routine: SKI-DOWN-STAIRS +Compiling routine: FROM-LOWER-STAIRS +Compiling routine: WALKWAY-TO-BOAT-DOCK +Compiling routine: FIRE-F +Compiling routine: SAND-F +Input file: PS:ELEVATOR.ZIL.320 + ** Note: Unknown value - CLOSET-HOLE-PSEUDO +Compiling routine: CLOSET-HOLE-PSEUDO +Compiling routine: CLOSET-F +Compiling routine: PEG-5-F +Compiling routine: CLOSET-EXIT-F +Compiling routine: WHICH-DOOR? +Compiling routine: PROP-VAULT-F +Compiling routine: CHUTE-F +Compiling routine: TO-CHUTE +Compiling routine: CLOSET-REF-F +Compiling routine: PEGS-F +Compiling routine: PEG-F +Compiling routine: PEG-0-F +Compiling routine: ELEVATOR-OPERATOR +Compiling routine: BUCKET-F +Compiling routine: DESCRIBE-WATER-LEVEL +Compiling routine: I-DRIP +Compiling routine: EMPTY-BUCKET +Compiling routine: NOT-HOLDING-WATER? +Compiling routine: SHAFT-BOTTOM-F +Compiling routine: CLOSET-TOP-F +Compiling routine: CLOSET-TOP-EXIT +Compiling routine: ATTIC-CD-F +Compiling routine: ATTIC-F +Compiling routine: TO-&-FROM-ATTIC +Compiling routine: ATTIC-CLOSET-ENTER-F +Compiling routine: TRUNK-F +Compiling routine: FIRE-HYDRANT-F +Compiling routine: ATTIC-DOOR-F +Compiling routine: AUNT-F +Compiling routine: HERMAN-F +Compiling routine: PROP-F +Compiling routine: I-AUNT +Compiling routine: SAW-F +Compiling routine: I-HERMAN-ATTACK +Input file: PS:HEDGEMAZE.ZIL.467 + ** Note: Unknown value - PARK-PSEUDO + ** Note: Unknown value - DOME-PSEUDO + ** Note: Unknown value - TRUCK-PSEUDO + ** Note: Unknown value - ROCKET-PSEUDO + ** Note: Unknown value - DOME-HOLE-PSEUDO + ** Note: Unknown value - DOME-HOLE-PSEUDO +Compiling routine: PARK-PSEUDO +Compiling routine: DOME-PSEUDO +Compiling routine: DOME-HOLE-PSEUDO +Compiling routine: TRUCK-PSEUDO +Compiling routine: ROCKET-PSEUDO +Compiling routine: TOKYO-F +Compiling routine: MONUMENT-F +Compiling routine: RING-F +Compiling routine: TANK-F +Compiling routine: PLANE-F +Compiling routine: DOG-F +Compiling routine: RED-BUTTON-F +Compiling routine: WHITE-BUTTON-F +Compiling routine: DOG-DEAD? +Compiling routine: GREEN-BUTTON-F +Compiling routine: I-TANK-ATTACK +Compiling routine: I-ROCKET-ATTACK +Compiling routine: BLUE-BUTTON-F +Compiling routine: BLACK-BUTTON-F +Compiling routine: MENS-ROOM-F +Compiling routine: DESCRIBE-BATHROOM +Compiling routine: LADIES-ROOM-F +Compiling routine: ENTER-HM +Compiling routine: I-HEDGE-FOOTSTEPS +Compiling routine: HEDGE-MAZE-OBJ-F +Compiling routine: HEDGE-MAZE-F +Compiling routine: OUT-OF-HEART-OF-MAZE +Compiling routine: HEART-OF-MAZE-HOLE-F +Compiling routine: PUNCTUATION +Compiling routine: HEDGE-WALK +Compiling routine: OBJECTS-TO-TABLE +Compiling routine: OBJECTS-TO-ROOM +Input file: PS:MAP.ZIL.55 +Input file: PS:POINTS.ZIL.11 + ** Note: OBJECT has no properties: DUMMY-OBJECT +Vocabulary: 854 +Prepositions: 21 + IN + TO + OVER + GO + DOWN + UP + OUT + LOOSE + UNDER + FROM + ABOUT + LEFT + WITH + THROUGH + ON + AROUND + FOR + BEHIND + AT + OFF +Objects: 244 + NORTHWEST-JUNCTION + HEDGE-MAZE-OBJ + NORTHEAST-JUNCTION + CANNON-EMPLACEMENT + CLIFF + LADDER + HOOKS + CANNON-BALL + PILE-OF-BALLS + FUSE + CANNON + FRONT-PORCH + DOOR-BELL + SKIS + CLOSET + TOP-LANDING + UPPER-BEACH-STAIRS + GAP + LOWER-BEACH-STAIRS + BOTTOM-LANDING + SAND + FIRE + INLET + PEG-5 + PROP-VAULT + CHUTE + PEGS + PEG-3 + PEG-2 + PEG-1 + PEG-0 + NOTE + BUCKET + CLOSET-TOP + ATTIC-CD + ATTIC + TRUNK + FIRE-HYDRANT + AUNT + HERMAN + CLUB + STICK + GUN + MOP + BAG + CLIPPERS + SHEARS + SWORD + SAW + GAME-ROOM + TOKYO + MONUMENT + RING + TANK + PLANE + DOG + RED-BUTTON + WHITE-BUTTON + GREEN-BUTTON + BLUE-BUTTON + BLACK-BUTTON + SHORT-HALL + MENS-ROOM + LADIES-ROOM + ENTRANCE-TO-MAZE + HEDGE-MAZE + HEART-OF-MAZE + HEART-OF-MAZE-HOLE + RUBBER-STAMP + SHOVEL + UPSTAIRS-BATHROOM + BUCK + PSEUDO-OBJECT + GARDEN + WHITE-WAX + BOAT-DOCK + SCREENING-ROOM + ORANGE-CARD + LETTER + UPSTAIRS-HALL-MIDDLE + OUTSIDE-PARLOR + SLIDE + MAILBOX + PROJECTED-IMAGE + FIREPLACE + PIANO + TOILET + BRICK + HOPPER + SOUTH-NICHE + DINING-ROOM-TABLE + FILM + BEDROOM-2 + WALL-SAFE + FIRST-SECRET-ROOM + SACK + SLIDE-PROJECTOR-LENS + DUMMY-OBJECT + FILM-PROJECTOR-LENS + PHONE + MANTLE + CEILING + CRAWL-SPACE-NORTH + FILM-PROJECTOR + ROUND-POST + BEDROOM-3 + INTNUM + RED-CANDLE + NOT-HERE-OBJECT + NEWSLETTER + PROJECTION-SCREEN + GROUND + WATER + ATTIC-DOOR + DISPLAY-LIGHTS + RED-WAX + GREEN-MATCH + PERSIAN-RUG + HORIZONTAL-MAP + YOUR-FEET + SEAT + STAIRS + UPSTAIRS-CD + FOYER-CD + THEM + BEDROOM-1 + PORTABLE-WATER + SACK-WINDOW + GRATER + RED-CARD + TOUPEE + CELLAR-CD + HIM + COMPARTMENT + FINCH + LENS-CAP + SLIDE-PROJECTOR + GLOBAL-ROOM + MAZE-HOLE + BED + FIREPLACE-GLOBAL + FLASHLIGHT + FOYER + ROOF-2 + UPSTAIRS-HALL-WEST + OAK-DOOR + CRAWL-SPACE-DOOR + VERTICAL-MAP + FOYER-STAIRS + MATCHBOX + VIOLET-CARD + NORTH-NICHE + CRAWL-SPACE-SOUTH + COMPUTER + RESET-BUTTON + HANDLES + BRICK-HOLE + CHIMNEY-1 + BEACH + MASK + BRICK-HOLE-GLOBAL + BLUE-CANDLE + BLUE-CARD + LIVING-ROOM + WAX-COAT-2 + WAX-COAT-1 + BLUE-FEET + WALLS + IT + PROJECTION-BOOTH + GLOBAL-OBJECTS + PHOTO + PORTRAIT + YELLOW-CARD + CARD + PATIO + BATH-MAT + UPSTAIRS-HALL-EAST + WHITE-FEET + HER + LOCAL-GLOBALS + PLAYER + CHIMNEY-3 + SQUARE-POST + ROOF-1 + GREEN-CARD + CHIMNEY + ROOMS + INTDIR + P-DEBUG + CELLAR + DINING-ROOM + LIGHTS + KITCHEN + PENGUIN + CHIMNEY-2 + RED-FEET + INDIGO-CARD + ME + RED-MATCH + BLUE-WAX + SHAFT-BOTTOM + SOFA + WINDOW + NEWEL + WHITE-CANDLE + PARKING-METER + CLOSET-REF + PARLOR + HANDS + SOUTH-JUNCTION + ON-POOL-1 + IN-POOL-1 + UNDERPASS-1 + UNDERPASS-2 + IN-POOL-2 + ON-POOL-2 + LEDGE + TUNNEL + ROPE + BOMB-SHELTER + HATCH + PLANK + HATCH-HOLE + SAWHORSE + CHAIN + LEFT-END + RIGHT-END + PIPE + BS-SAFE + PLAQUE + CORPSE-LINE + HOUSE + BAZOOKA + SOUTHEAST-JUNCTION + SOUTHWEST-JUNCTION + PATIO-DOOR + GARDEN-WALLS + SOUTH-GARDEN + EAST-GARDEN + WEST-GARDEN + NORTH-GARDEN + ORCHIDS + POND +Properties: 31 + P?GLOBAL + P?SYNONYM + P?ADJECTIVE + P?PSEUDO + P?OUT + P?WEST + P?SW + P?ACTION + P?VALUE + P?CARD-NUM + P?SIZE + P?DESCFCN + P?SDESC + P?TEXT + P?NE + P?GENERIC + P?CAPACITY + P?CONTFCN + P?LDESC + P?FDESC + P?ADVFCN + P?THINGS + P?IN + P?DOWN + P?UP + P?NW + P?SOUTH + P?SE + P?EAST + P?NORTH +Globals: 160 + DOOR-BELL-TUNES + AMOUNT-OF-WATER + BUCKET-PEG + AUNT-COUNT + AUNT-DISTANCE + HERMAN-DOWN + HERMAN-HITS + PROPS + RING-UNDER-DOME + BURN-DOME + DOG-BREATH + PLANES-LEFT + TANKS-LEFT + ROCKET-LOC + HIT-POINTS + DOG-LOC + TANK-LOC + PLANE-LOC + DOG-IN-PAIN + TRUCK-LOC + ROCKET-LIFE + HM-ROOM + HM-BITS + HEDGE-OBJECTS-TABLE + HM-TABLE + HEDGE-CRASH + BITS-&-PIECES + P-HER-OBJECT + P-NCN + WHERE-TO-PRINT + I-ASSUME + P-SENTENCE + SACK-IN-WINDOW + BUCK-DIR + USELESSNESS + OOPS-TABLE + OFFENDED + P-PRSI + PEG-IN-WAY + DOG-PADDLE + DOOR-NOISES + P-MERGE + C-TABLE + INDOOR-NOISE + RIDICULOUS + SNOWPLOW + UNKNOWN-MSGS + YES-INBUF + PYRO + P-OVTBL + YOU-CANT + P-PRSO + AGAIN-LEXV + P-BUTS + P-OCL1 + P-OCL2 + OUT-OF-NOWHERE + YES-LEXV + COMPUTER-LIGHTS + YOU-SEE + LIKELIES + SPINACH + P-VTBL + OOPS-INBUF + HO-HUM + OKAY + NUMWORDS + TREASURE-TABLE + WASHED-OUT-BITS + WHITE-LIGHT + LENS-ATTACHED + P-ITBL + CANDLE-DESC + P-CCTBL + DISPLAY-TABLE + SONGS + P-OTBL + CARD-TABLE + YAWNS + P-INBUF + P-LEXV + OUTDOOR-NOISE + NO-DATA + RESERVE-LEXV + YUKS + TIPPED + RESERVE-PTR + PRSI + SAYING? + P-IT-OBJECT + BLUE-MID-BURN + SOUTH-JUNCTION-VISITS + TREASURES-FOUND + P-ADJN + QCONTEXT-ROOM + WINNER + P-OFLAG + HEDGE-NUM + P-NUMBER + BUCK-TURNED? + P-GETFLAGS + P-TABLE + QUOTE-FLAG + P-NMERGE + CLOSET-FLOOR + LAST-PLAYER-LOC + QCONTEXT + STEPS-THROUGH-WALL-SAFE + SONG-NUMBER + P-WON + DIAL-NUMBER + P-VMERGE + P-AND + SONG-PLAYED + CARD-COUNT + P-EXCHANGE + P-PRSA-WORD + PRSA + P-AADJ + ITAKE-LOC + PIANO-LOC + P-XADJ + P-SYNTAX + P-GWIMBIT + P-MERGED + PRSO + DEBUG + C-INTS + P-LEN + P-ADJ + PROJECTOR-POINTS + P-MOBY-FLAG + P-XADJN + LIT + P-THEM-OBJECT + P-DIRECTION + VERBOSITY + MYSTERY-GUEST + P-CONT + LAST-PSEUDO-LOC + CLOCK-HAND + P-ANAM + WHITE-MID-BURN + P-WALK-DIR + P-MOBY-FOUND + P-XNAM + P-NAM + CLOCK-WAIT + RED-MID-BURN + P-ADVERB + P-SLOCBITS + P-ACLAUSE + P-HIM-OBJECT + STEPS-THROUGH-BUCK + P-END-ON-PREP + BREATH + WHICH-END-IS-UP + STEPS-THROUGH-BS-SAFE + BS-SAFE-DIAL-NUMBER + ROPE-LIFE \ No newline at end of file diff --git a/anthill.serial b/anthill.serial new file mode 100644 index 0000000..74fa38c --- /dev/null +++ b/anthill.serial @@ -0,0 +1 @@ +407 diff --git a/anthill.zap b/anthill.zap new file mode 100644 index 0000000..206fcce --- /dev/null +++ b/anthill.zap @@ -0,0 +1,21 @@ + .INSERT "PS:ANTHILLFREQ" ; Frequent word table + .INSERT "PS:ANTHILLDAT" ; Data file + .INSERT "PS:ANTHILLPUR" + .INSERT "PS:MISC" + .INSERT "PS:PARSER" + .INSERT "PS:GLOBALS" + .INSERT "PS:SYNTAX" + .INSERT "PS:VERBS" + .INSERT "PS:PARLOR" + .INSERT "PS:FIRST-FLOOR" + .INSERT "PS:SECOND-FLOOR" + .INSERT "PS:BSHELTER" + .INSERT "PS:OUTSIDE" + .INSERT "PS:ELEVATOR" + .INSERT "PS:HEDGEMAZE" + .INSERT "PS:MAP" + .INSERT "PS:POINTS" + + .INSERT "PS:ANTHILLSTR" + + .END diff --git a/anthill.zil b/anthill.zil new file mode 100644 index 0000000..aa3fc96 --- /dev/null +++ b/anthill.zil @@ -0,0 +1,67 @@ +"ANTHILL.ZIL LOAD FILE for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + + + +; "" > + "F" > + "P" > + "H" > + "B" > + "S" > + "O" > + "E" > + "V" > + + + + + + + + + BYTE>> ;"temp hack for maze until compiler fix" + +ON!-INITIAL +OFF!-INITIAL + +; + + + + + >> + + ;"should be zilch? should be cut?" + > + )> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anthill.zip b/anthill.zip new file mode 100644 index 0000000..9652a64 Binary files /dev/null and b/anthill.zip differ diff --git a/anthilldat.zap b/anthilldat.zap new file mode 100644 index 0000000..1ddb4a5 --- /dev/null +++ b/anthilldat.zap @@ -0,0 +1,14809 @@ + + +; TOP LEVEL DEFINITIONS + + TRUE-VALUE=1 + FALSE-VALUE=0 + FATAL-VALUE=2 + + O?ANY=1 + + PS?OBJECT=128 + PS?VERB=64 + PS?ADJECTIVE=32 + PS?DIRECTION=16 + PS?PREPOSITION=8 + PS?BUZZ-WORD=4 + + P1?NONE=0 + P1?OBJECT=0 + P1?VERB=1 + P1?ADJECTIVE=2 + P1?DIRECTION=3 + + +; OBJECT FLAGS ARE DEFINED HERE + + + TRYTAKE=1 + FX?TRYTAKE=16384 + + BURNBIT=2 + FX?BURNBIT=8192 + + LIGHTBIT=3 + FX?LIGHTBIT=4096 + + CONTBIT=4 + FX?CONTBIT=2048 + + READBIT=5 + FX?READBIT=1024 + + CAVEBIT=6 + FX?CAVEBIT=512 + + OUTDOORSBIT=7 + FX?OUTDOORSBIT=256 + + VEHBIT=8 + FX?VEHBIT=128 + + FLAMEBIT=9 + FX?FLAMEBIT=64 + + DOORBIT=10 + FX?DOORBIT=32 + + WETBIT=11 + FX?WETBIT=16 + + TOOLBIT=12 + FX?TOOLBIT=8 + + INDOORSBIT=13 + FX?INDOORSBIT=4 + + WORNBIT=14 + FX?WORNBIT=2 + + LOCKEDBIT=15 + FX?LOCKEDBIT=1 + + NDESCBIT=16 + FX?NDESCBIT=32768 + + TAKEBIT=17 + FX?TAKEBIT=16384 + + ACTORBIT=18 + FX?ACTORBIT=8192 + + RLANDBIT=19 + FX?RLANDBIT=4096 + + ONBIT=20 + FX?ONBIT=2048 + + VOWELBIT=21 + FX?VOWELBIT=1024 + + WEARBIT=22 + FX?WEARBIT=512 + + TRANSBIT=23 + FX?TRANSBIT=256 + + SEARCHBIT=24 + FX?SEARCHBIT=128 + + OPENBIT=25 + FX?OPENBIT=64 + + TRYTAKEBIT=26 + FX?TRYTAKEBIT=32 + + SURFACEBIT=27 + FX?SURFACEBIT=16 + + TOUCHBIT=28 + FX?TOUCHBIT=8 + + INVISIBLE=29 + FX?INVISIBLE=4 + + NARTICLEBIT=30 + FX?NARTICLEBIT=2 + + CANT-MOVE-POST-BIT=31 + FX?CANT-MOVE-POST-BIT=1 + + PHONE-DEAD-BIT=31 + FX?PHONE-DEAD-BIT=1 + + FOCUS-BIT=31 + FX?FOCUS-BIT=1 + + TRUNK-LOCKED-BIT=31 + FX?TRUNK-LOCKED-BIT=1 + + ON-MONUMENT-BIT=31 + FX?ON-MONUMENT-BIT=1 + + CARDS-RIGHT-BIT=31 + FX?CARDS-RIGHT-BIT=1 + + TRASHED-BIT=31 + FX?TRASHED-BIT=1 + + CLUTCHING-BIT=31 + FX?CLUTCHING-BIT=1 + + BROKEN-BIT=31 + FX?BROKEN-BIT=1 + + BRICK-REMOVED-BIT=31 + FX?BRICK-REMOVED-BIT=1 + + EVERYBIT=31 + FX?EVERYBIT=1 + + HAND-ON-SACK-BIT=31 + FX?HAND-ON-SACK-BIT=1 + + BLACK-CAT-BIT=31 + FX?BLACK-CAT-BIT=1 + + WINDOW-OPEN-BIT=31 + FX?WINDOW-OPEN-BIT=1 + + WAXED-BIT=31 + FX?WAXED-BIT=1 + + CANNON-MOVED-BIT=31 + FX?CANNON-MOVED-BIT=1 + + HUNG-BIT=31 + FX?HUNG-BIT=1 + + BUCKET-PEG-DOWN-BIT=31 + FX?BUCKET-PEG-DOWN-BIT=1 + + LENS-CAP-OFF-BIT=31 + FX?LENS-CAP-OFF-BIT=1 + + NEWEL-TURNED-BIT=31 + FX?NEWEL-TURNED-BIT=1 + + ON-GROUND-BIT=31 + FX?ON-GROUND-BIT=1 + +; ACTION IDENTIFIERS ARE ASSIGNED HERE + + V?VERBOSE=0 + V?BRIEF=1 + V?SUPER-BRIEF=2 + V?DIAGNOSE=3 + V?INVENTORY=4 + V?QUIT=5 + V?RESTART=6 + V?RESTORE=7 + V?SAVE=8 + V?RESCUE=9 + V?SCORE=10 + V?SCRIPT=11 + V?TIME=12 + V?UNSCRIPT=13 + V?VERSION=14 + V?$VERIFY=15 + V?$RANDOM=16 + V?$COMMAND=17 + V?$RECORD=18 + V?$UNRECORD=19 + V?REPLY=20 + V?QUESTION=21 + V?ASK-ABOUT=22 + V?ASK-FOR=23 + V?CLIMB-UP=24 + V?WALK-AROUND=25 + V?BITE=26 + V?BLOW-INTO=27 + V?MUNG=28 + V?LAMP-OFF=29 + V?BOARD=30 + V?BURN=31 + V?BUY=32 + V?PHONE=33 + V?CLEAN=34 + V?CLIMB=35 + V?CLIMB-ON=36 + V?CLIMB-DOWN=37 + V?CLIMB-OVER=38 + V?ENTER=39 + V?EXIT=40 + V?CLOSE=41 + V?COMPARE=42 + V?COUNT=43 + V?COVER=44 + V?CROSS=45 + V?CUT=46 + V?DIG=47 + V?DIG-WITH=48 + V?DISEMBARK=49 + V?DRINK=50 + V?DRINK-FROM=51 + V?DROP=52 + V?PUT=53 + V?PUT-ON=54 + V?EAT=55 + V?EMPTY=56 + V?TAKE=57 + V?EXAMINE=58 + V?LOOK-INSIDE=59 + V?LOOK-ON=60 + V?FIND=61 + V?LOOK-THRU=62 + V?FILL=63 + V?FLUSH=64 + V?FLY=65 + V?FOCUS=66 + V?FOLLOW=67 + V?GIVE=68 + V?SGIVE=69 + V?WALK=70 + V?WALK-TO=71 + V?HANG-UP=72 + V?LISTEN=73 + V?HELLO=74 + V?HELP=75 + V?HIDE=76 + V?LEAP=77 + V?STAND-ON=78 + V?KICK=79 + V?KILL=80 + V?KISS=81 + V?KNOCK=82 + V?LEAVE=83 + V?LET-GO=84 + V?LIE-DOWN=85 + V?LAMP-ON=86 + V?LOCK=87 + V?LOOK=88 + V?LOOK-DOWN=89 + V?LOOK-UP=90 + V?CHASTISE=91 + V?LOOK-UNDER=92 + V?LOOK-BEHIND=93 + V?LOWER=94 + V?MOVE=95 + V?PUSH-TO=96 + V?PUSH-DOWN=97 + V?ROLL-UP=98 + V?OPEN=99 + V?PICK=100 + V?PLAY=101 + V?POUR=102 + V?PULL=103 + V?RAISE=104 + V?PUSH=105 + V?PUSH-UP=106 + V?PUT-UNDER=107 + V?WEAR=108 + V?PUT-BEHIND=109 + V?RAPE=110 + V?REACH-IN=111 + V?READ=112 + V?READ-TO=113 + V?REMOVE=114 + V?REMOVE-FROM=115 + V?REPLACE=116 + V?RESET=117 + V?RIDE=118 + V?SAY=119 + V?SCRAPE-OFF=120 + V?SEARCH=121 + V?SHAKE=122 + V?SHOOT=123 + V?SSHOOT=124 + V?SHOW=125 + V?SSHOW=126 + V?SIT=127 + V?SKI=128 + V?SLEEP=129 + V?SMELL=130 + V?SPLICE=131 + V?SQUEEZE=132 + V?STAND=133 + V?STAND-UNDER=134 + V?SWIM=135 + V?SWIM-DOWN=136 + V?SWIM-UP=137 + V?SWING=138 + V?TAKE-OFF=139 + V?TASTE=140 + V?TELL=141 + V?THROW=142 + V?THROW-OFF=143 + V?TIE=144 + V?TIE-UP=145 + V?RUB=146 + V?TURN=147 + V?TURN-LEFT=148 + V?TURN-RIGHT=149 + V?UNLOCK=150 + V?UNROLL=151 + V?UNTIE=152 + V?USE=153 + V?WAIT=154 + V?$WAIT=155 + V?WAIT-FOR=156 + V?ALARM=157 + V?WATER=158 + V?WAVE-AT=159 + V?YELL=160 + +; PROPERTIES ARE DEFINED HERE + + P?ACTION=31 + P?NORTH=30 + P?NE=29 + P?EAST=28 + P?SE=27 + P?SOUTH=26 + P?SW=25 + P?WEST=24 + P?NW=23 + P?UP=22 + P?DOWN=21 + P?IN=20 + P?OUT=19 + P?THINGS=18 + P?SYNONYM=17 + P?DESCFCN=16 + P?GLOBAL=15 + P?ADVFCN=14 + P?FDESC=13 + P?LDESC=12 + P?PSEUDO=11 + P?CONTFCN=10 + P?SIZE=9 + P?CAPACITY=8 + P?ADJECTIVE=7 + P?VALUE=6 + P?GENERIC=5 + P?TEXT=4 + P?CARD-NUM=3 + P?SDESC=2 + P?MATCH-LIFE=1 + +; ADJECTIVES ARE DEFINED HERE + + A?GROUND=255 + A?MY=254 + A?BARE=253 + A?NORTH=252 + A?EAST=251 + A?SOUTH=250 + A?WEST=249 + A?NE=248 + A?NW=247 + A?SE=246 + A?SW=245 + A?FILM=244 + A?SIMPLEX=243 + A?SLIDE=242 + A?BLURRED=241 + A?WASHED=240 + A?VIEWING=239 + A?MOVIE=238 + A?LENS=237 + A?PROJEC=236 + A?SCREEN=235 + A?PIANO=234 + A?CRAWL=233 + A?SPACE=232 + A?WOODEN=231 + A?THICK=230 + A?PARKING=229 + A?DIRTY=228 + A?DUSTY=227 + A?AUNT=226 + A?HILDEG=225 + A?UNCLE=224 + A?BUCK=223 + A?LETTER=222 + A?FIGHTING=221 + A?FLASH=220 + A?STEEP=219 + A?CLOSET=218 + A?FOYER=217 + A?COMPUTER=216 + A?RESET=215 + A?BUSINESS=214 + A?CARD=213 + A?PUNCH=212 + A?BUDDY=211 + A?BURBAN=210 + A?HAIR=209 + A?INDIGO=208 + A?YELLOW=207 + A?CARDS=206 + A?GREEN=205 + A?RED=204 + A?BLUE=203 + A?ORANGE=202 + A?VIOLET=201 + A?PERSIAN=200 + A?WAX=199 + A?WHITE=198 + A?PAIR=197 + A?CANDLE=196 + A?MELTED=195 + A?OIL=194 + A?WALL=193 + A?MAGGIO=192 + A?CHEESE=191 + A?MAMA=190 + A?MAMA'S=189 + A?FOOT=188 + A?HAND=187 + A?LOOSE=186 + A?STUFFED=185 + A?CATCHER=184 + A?PIECE=183 + A?THIN=182 + A?WALNUT=181 + A?MALTESE=180 + A?CLOTH=179 + A?VELVET=178 + A?BRASS=177 + A?BATH=176 + A?JACK=175 + A?VALENTI=174 + A?NEW=173 + A?ZORK=172 + A?STATUS=171 + A?COPY=170 + A?ARM=169 + A?PLUSH=168 + A?ROUND=167 + A?TOP=166 + A?BOTTOM=165 + A?BUNK=164 + A?BIG=163 + A?FLUFFY=162 + A?LARGE=161 + A?FESTIVE=160 + A?CHRISTMAS=159 + A?STICK=158 + A?SALT=157 + A?SEA=156 + A?HEAVY=155 + A?STEEL=154 + A?LONG=153 + A?GREASY=152 + A?LEFT=151 + A?RIGHT=150 + A?REEL=149 + A?CORPSE=148 + A?COMPASS=147 + A?PATIO=146 + A?STONE=145 + A?GARDEN=144 + A?ROSE=143 + A?SMALL=142 + A?METAL=141 + A?CANNON=140 + A?PILE=139 + A?STACK=138 + A?DOOR=137 + A?MAIL=136 + A?OAK=135 + A?FRONT=134 + A?DOWNHILL=133 + A?WIDE=132 + A?SMOLDERING=131 + A?SAWED=130 + A?OFF=129 + A?FOURTH=128 + A?COAT=127 + A?THIRD=126 + A?WORN=125 + A?SECOND=124 + A?FIRST=123 + A?CHIPPED=122 + A?RUSTY=121 + A?LEAKY=120 + A?RUSTED=119 + A?FIRE=118 + A?FOLDING=117 + A?ATTIC=116 + A?COUSIN=115 + A?HAIRY=114 + A?WHIP=113 + A?WHIPPED=112 + A?CREAM=111 + A?GLOWING=110 + A?BOOMERANG=109 + A?GIANT=108 + A?NAIL=107 + A?SALAVATING=106 + A?HEDGE=105 + A?ELVISH=104 + A?SAW=103 + A?BUZZ=102 + A?CONVEYOR=101 + A?CENTRAL=100 + A?PLASTIC=99 + A?TINY=98 + A?SCALE=97 + A?DOWNTO=96 + A?DIAMOND=95 + A?PUNY=94 + A?ATOMIC=93 + A?BLACK=92 + A?RUBBER=91 + A?POSTAL=90 + +; BUZZ WORDS ARE DEFINED HERE + + B?AM=255 + B?ANY=254 + B?ARE=253 + B?DO=252 + B?HAS=251 + B?HAVE=250 + B?HE'S=249 + B?IS=248 + B?IT'S=247 + B?I'LL=246 + B?I'M=245 + B?I'VE=244 + B?LET'S=243 + B?SHALL=242 + B?SHE'S=241 + B?THAT'S=240 + B?THEY'RE=239 + B?WERE=238 + B?WE'RE=237 + B?YOU'RE=236 + B?ZERO=235 + B?ONE=234 + B?TWO=233 + B?THREE=232 + B?FOUR=231 + B?FIVE=230 + B?SIX=229 + B?SEVEN=228 + B?EIGHT=227 + B?NINE=226 + B?TEN=225 + B?ELEVEN=224 + B?TWELVE=223 + B?THIRTE=222 + B?FOURTE=221 + B?FIFTEE=220 + B?SIXTEE=219 + B?SEVENT=218 + B?EIGHTE=217 + B?NINETE=216 + B?TWENTY=215 + B?THIRTY=214 + B?FORTY=213 + B?FIFTY=212 + B?SIXTY=211 + B?EIGHTY=210 + B?NINETY=209 + B?HUNDRE=208 + B?THOUSA=207 + B?MILLIO=206 + B?BILLIO=205 + B?FUCK=204 + B?FUCKED=203 + B?CURSE=202 + B?GODDAMNED=201 + B?CUSS=200 + B?DAMN=199 + B?SHIT=198 + B?ASSHOLE=197 + B?CUNT=196 + B?SHITHEAD=195 + B?PISS=194 + B?SUCK=193 + B?BASTARD=192 + B?SCREW=191 + B?FUCKING=190 + B?DAMNED=189 + B?PEE=188 + B?COCKSUCKER=187 + B?BITCH=186 + B?AGAIN=185 + B?G=184 + B?OOPS=183 + B?A=182 + B?AN=181 + B?THE=180 + B?AND=179 + B?OF=178 + B?THEN=177 + B?ALL=176 + B?BUT=175 + B?EXCEPT=174 + B?PERIOD=173 + B?COMMA=172 + B?QUOTE=171 + B?HERE=170 + B?SOME=169 + B?MR=168 + B?MISS=167 + B?MRS=166 + B?MONEY=165 + B?YESTER=164 + B?GREENS=163 + B?CAMELO=162 + B?STARDU=161 + B?MISTY=160 + B?PEOPLE=159 + B?FEELIN=158 + B?TOMORR=157 + B?OKLAHO=156 + B?TONIGH=155 + +; PREPOSITIONS ARE DEFINED HERE + + PR?TO=255 + PR?ABOUT=254 + PR?FOR=253 + PR?IN=252 + PR?THROUGH=251 + PR?UP=250 + PR?OUT=249 + PR?WITH=248 + PR?OFF=247 + PR?DOWN=246 + PR?ON=245 + PR?OVER=244 + PR?UNDER=243 + PR?LOOSE=242 + PR?AT=241 + PR?FROM=240 + PR?AROUND=239 + PR?BEHIND=238 + PR?GO=237 + PR?LEFT=236 + PR?RIGHT=235 + +; DIRECTIONS ARE DEFINED HERE + + +; ACTIONS ARE DEFINED HERE + + ACT?KISS=255 + ACT?I=254 + ACT?PULL=253 + ACT?PUT=252 + ACT?RAPE=251 + ACT?VERBOSE=250 + ACT?WALK=249 + ACT?QUIT=248 + ACT?FIND=247 + ACT?HEAR=246 + ACT?YES=245 + ACT?STOP=244 + ACT?UNLOCK=243 + ACT?READ=242 + ACT?SAY=241 + ACT?BREAK=240 + ACT?JUMP=239 + ACT?POUR=238 + ACT?WAIT=237 + ACT?TAKE=236 + ACT?COUNT=235 + ACT?RAISE=234 + ACT?CALL=233 + ACT?FOLLOW=232 + ACT?FLY=231 + ACT?VERSION=230 + ACT?#UNRECORD=229 + ACT?LIGHT=228 + ACT?LIE=227 + ACT?MOVE=226 + ACT?LET=225 + ACT?PLAY=224 + ACT?OPEN=223 + ACT?TASTE=222 + ACT?BUY=221 + ACT?TOUCH=220 + ACT?#COMMAND=219 + ACT?BLOW=218 + ACT?SHOOT=217 + ACT?$WAIT=216 + ACT?KNOCK=215 + ACT?PICK=214 + ACT?RIDE=213 + ACT?BOARD=212 + ACT?#RANDOM=211 + ACT?PRAY=210 + ACT?STAND=209 + ACT?LISTEN=208 + ACT?TIE=207 + ACT?SHOW=206 + ACT?SAVE=205 + ACT?HELP=204 + ACT?TELL=203 + ACT?THROW=202 + ACT?LOWER=201 + ACT?USE=200 + ACT?HIDE=199 + ACT?SHAKE=198 + ACT?KILL=197 + ACT?RESTOR=196 + ACT?ENTER=195 + ACT?SEARCH=194 + ACT?WEAR=193 + ACT?DISEMBARK=192 + ACT?SKI=191 + ACT?SWIM=190 + ACT?UNTIE=189 + ACT?CUT=188 + ACT?ASCEND=187 + ACT?SPLICE=186 + ACT?UNSCRIPT=185 + ACT?HANG=184 + ACT?PUSH=183 + ACT?SUPER=182 + ACT?SIT=181 + ACT?RESTAR=180 + ACT?HINT=179 + ACT?REACH=178 + ACT?DIG=177 + ACT?REPLACE=176 + ACT?SCORE=175 + ACT?RESET=174 + ACT?COVER=173 + ACT?LOOK=172 + ACT?EMPTY=171 + ACT?DROP=170 + ACT?COMPAR=169 + ACT?BACK=168 + ACT?TIME=167 + ACT?LEAVE=166 + ACT?SCRAPE=165 + ACT?WATER=164 + ACT?SCRIPT=163 + ACT?$VERIFY=162 + ACT?DESCEND=161 + ACT?EXTINGUISH=160 + ACT?SWING=159 + ACT?POKE=158 + ACT?SMELL=157 + ACT?BRIEF=156 + ACT?DIAGNOSE=155 + ACT?GIVE=154 + ACT?SLEEP=153 + ACT?WAKE=152 + ACT?DRINK=151 + ACT?REMOVE=150 + ACT?ANSWER=149 + ACT?YELL=148 + ACT?LOCK=147 + ACT?BURN=146 + ACT?KICK=145 + ACT?BITE=144 + ACT?TURN=143 + ACT?#RECORD=142 + ACT?CROSS=141 + ACT?CLEAN=140 + ACT?CLOSE=139 + ACT?GO=138 + ACT?WAVE=137 + ACT?EXIT=136 + ACT?EXAMINE=135 + ACT?RELEASE=134 + ACT?EAT=133 + ACT?FILL=132 + ACT?SQUEEZE=131 + ACT?CLIMB=130 + ACT?FLUSH=129 + ACT?FOCUS=128 + ACT?UNROLL=127 + ACT?ASK=126 + ACT?HELLO=125 + +; USER DEFINED CONSTANTS ARE INITIALIZED HERE + + SOG=16 + SIR=32 + DEXITSTR=1 + XEQUAL?=4 + P-ITBLLEN=9 + P-SYNLEN=8 + P-SRCTOP=0 + C-INTLEN=4 + P-MATCHLEN=0 + O-START=1 + DEXITOBJ=1 + X-N=1 + P-P1OFF=5 + M-OBJDESC?=9 + O-PTR=0 + O-LENGTH=2 + C-TABLELEN=52 + P-NC2=8 + P-NC1=6 + P-WORDLEN=4 + P-VERBN=1 + SERIAL=0 + P-P1BITS=3 + FEXIT=3 + CC-SEPTR=1 + ZORKID=1 + P-SPREP1=1 + CC-SBPTR=0 + P-PREP1=2 + M-BEG=1 + SCORE-MAX=150 + LOAD-ALLOWED=100 + XDIV=3 + P-PLAYER=68 + M-FATAL=2 + XGRTR?=5 + NEXITSTR=0 + NEXIT=2 + P-SLOC2=6 + SC=64 + P-PREP1N=3 + P-PSOFF=4 + P-WINNER=65 + XLESS?=6 + P-VERB=0 + X-E=2 + M-ENTER=2 + DEXIT=5 + SHAVE=2 + P-SRCBOT=2 + M-OBJDESC=5 + SMANY=4 + STAKE=8 + P-SPREP2=2 + XSUB=1 + XADD=0 + CEXIT=4 + P-LEXSTART=1 + M-LOOK=3 + UEXIT=1 + D-RECORD-ON=4 + O-END=3 + P-LEXELEN=2 + P-LEXWORDS=1 + P-ALL=1 + XMUL=2 + P-SFWIM1=3 + CC-OCLAUSE=2 + X-H=16 + M-EXIT=4 + P-INHIBIT=4 + CEXITFLAG=1 + D-RECORD-OFF=-4 + FEXITFCN=0 + X-W=4 + P-SBITS=0 + CEXITSTR=1 + P-SRCALL=1 + X-S=8 + P-SLOC1=5 + M-END=6 + HEDGE-OBJECT-TABLE-LENGTH=70 + P-PREP2=4 + LOW-DIRECTION=19 + P-SONUMS=3 + D-PARA?=2 + C-TICK=1 + P-NC2L=9 + P-NC1L=7 + M-CONT=7 + P-ONE=2 + CURRENCY-SYMBOL=36 + P-SACTION=7 + P-SFWIM2=4 + D-ALL?=1 + REXIT=0 + SH=128 + C-RTN=0 + +; PROPERTY DEFAULTS AND OBJECTS ARE DEFINED HERE + +OBJECT::.TABLE + 0 ;(P?MATCH-LIFE) + 0 ;(P?SDESC) + 0 ;(P?CARD-NUM) + 0 ;(P?TEXT) + 0 ;(P?GENERIC) + 0 ;(P?VALUE) + 0 ;(P?ADJECTIVE) + 0 ;(P?CAPACITY) + 5 ;(P?SIZE) + 0 ;(P?CONTFCN) + 0 ;(P?PSEUDO) + 0 ;(P?LDESC) + 0 ;(P?FDESC) + 0 ;(P?ADVFCN) + 0 ;(P?GLOBAL) + 0 ;(P?DESCFCN) + 0 ;(P?SYNONYM) + 0 ;(P?THINGS) + 0 ;(P?OUT) + 0 ;(P?IN) + 0 ;(P?DOWN) + 0 ;(P?UP) + 0 ;(P?NW) + 0 ;(P?WEST) + 0 ;(P?SW) + 0 ;(P?SOUTH) + 0 ;(P?SE) + 0 ;(P?EAST) + 0 ;(P?NE) + 0 ;(P?NORTH) + 0 ;(P?ACTION) + .OBJECT SAWHORSE,0,FX?NDESCBIT,BOMB-SHELTER,0,0,T?SAWHORSE + .OBJECT SOUTH-JUNCTION,FX?OUTDOORSBIT,FX?BLACK-CAT-BIT+FX?ONBIT+FX?RLANDBIT,ROOMS,BOMB-SHELTER,BAZOOKA,T?SOUTH-JUNCTION + .OBJECT CORPSE-LINE,0,FX?TAKEBIT,BS-SAFE,0,0,T?CORPSE-LINE + .OBJECT HANDS,FX?TOOLBIT,FX?NARTICLEBIT+FX?TOUCHBIT,GLOBAL-OBJECTS,CEILING,0,T?HANDS + .OBJECT PARLOR,0,FX?RLANDBIT,ROOMS,OUTSIDE-PARLOR,PIANO,T?PARLOR + .OBJECT CLOSET-REF,0,0,LOCAL-GLOBALS,SAND,0,T?CLOSET-REF + .OBJECT PARKING-METER,0,FX?TAKEBIT,FIRST-SECRET-ROOM,0,0,T?PARKING-METER + .OBJECT LEFT-END,FX?CONTBIT+FX?VEHBIT,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,BOMB-SHELTER,CHAIN,0,T?LEFT-END + .OBJECT WHITE-CANDLE,FX?BURNBIT+FX?CONTBIT,FX?OPENBIT+FX?SURFACEBIT+FX?SEARCHBIT+FX?TAKEBIT,MANTLE,BLUE-CANDLE,WHITE-WAX,T?WHITE-CANDLE + .OBJECT INLET,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BEACH,0,T?INLET + .OBJECT NEWEL,0,FX?NDESCBIT,UPSTAIRS-HALL-MIDDLE,0,0,T?NEWEL + .OBJECT TOKYO,0,FX?NDESCBIT,GAME-ROOM,0,0,T?TOKYO + .OBJECT WINDOW,0,FX?NDESCBIT,LOCAL-GLOBALS,PSEUDO-OBJECT,0,T?WINDOW + .OBJECT POND,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT+FX?OPENBIT,NORTH-GARDEN,ORCHIDS,0,T?POND + .OBJECT PROP-VAULT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CLOSET,SAW,T?PROP-VAULT + .OBJECT STICK,0,FX?TAKEBIT,PROP-VAULT,CLUB,0,T?STICK + .OBJECT SOFA,0,FX?TAKEBIT+FX?TRYTAKEBIT,LOCAL-GLOBALS,BED,0,T?SOFA + .OBJECT SHAFT-BOTTOM,0,FX?RLANDBIT,ROOMS,PROP-VAULT,BLUE-CARD,T?SHAFT-BOTTOM + .OBJECT BLUE-WAX,0,FX?NDESCBIT,BLUE-CANDLE,0,0,T?BLUE-WAX + .OBJECT RED-MATCH,FX?CONTBIT+FX?BURNBIT,FX?SEARCHBIT+FX?OPENBIT+FX?TAKEBIT,MATCHBOX,0,0,T?RED-MATCH + .OBJECT ME,0,FX?NARTICLEBIT+FX?TOUCHBIT+FX?ACTORBIT,GLOBAL-OBJECTS,YOUR-FEET,0,T?ME + .OBJECT INDIGO-CARD,0,FX?INVISIBLE+FX?VOWELBIT+FX?TAKEBIT,FIREPLACE,0,0,T?INDIGO-CARD + .OBJECT RED-FEET,0,FX?TAKEBIT,0,0,0,T?RED-FEET + .OBJECT CHIMNEY-2,0,FX?RLANDBIT,ROOMS,CHIMNEY-1,0,T?CHIMNEY-2 + .OBJECT PATIO-DOOR,FX?LOCKEDBIT+FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,HOUSE,0,T?PATIO-DOOR + .OBJECT GARDEN-WALLS,0,FX?NDESCBIT,LOCAL-GLOBALS,GARDEN,0,T?GARDEN-WALLS + .OBJECT BLACK-BUTTON,0,FX?NDESCBIT,GAME-ROOM,BLUE-BUTTON,0,T?BLACK-BUTTON + .OBJECT PENGUIN,0,FX?TAKEBIT,CHIMNEY-3,0,0,T?PENGUIN + .OBJECT SHEARS,0,FX?NARTICLEBIT+FX?TAKEBIT,PROP-VAULT,CLIPPERS,0,T?SHEARS + .OBJECT KITCHEN,0,FX?RLANDBIT,ROOMS,ROOF-2,MATCHBOX,T?KITCHEN + .OBJECT SOUTHWEST-JUNCTION,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTHEAST-JUNCTION,0,T?SOUTHWEST-JUNCTION + .OBJECT CANNON-BALL,0,FX?NDESCBIT+FX?TAKEBIT,PILE-OF-BALLS,0,0,T?CANNON-BALL + .OBJECT LIGHTS,0,FX?NDESCBIT,GLOBAL-OBJECTS,IT,0,T?LIGHTS + .OBJECT HEDGE-MAZE-OBJ,0,FX?NDESCBIT,LOCAL-GLOBALS,ATTIC-DOOR,0,T?HEDGE-MAZE-OBJ + .OBJECT DINING-ROOM,0,FX?RLANDBIT,ROOMS,KITCHEN,DINING-ROOM-TABLE,T?DINING-ROOM + .OBJECT CELLAR,0,FX?RLANDBIT,ROOMS,FOYER,HOPPER,T?CELLAR + .OBJECT PEG-5,0,FX?NDESCBIT,CLOSET,SKIS,0,T?PEG-5 + .OBJECT P-DEBUG,0,FX?TOUCHBIT+FX?ONBIT+FX?RLANDBIT,ROOMS,CRAWL-SPACE-SOUTH,0,T?P-DEBUG + .OBJECT LEDGE,FX?CAVEBIT,FX?RLANDBIT,ROOMS,ON-POOL-2,0,T?LEDGE + .OBJECT INTDIR,0,0,GLOBAL-OBJECTS,THEM,0,T?INTDIR + .OBJECT ROOMS,0,0,0,0,HEART-OF-MAZE,T?ROOMS + .OBJECT PEG-3,0,FX?NDESCBIT,CLOSET,PEGS,0,T?PEG-3 + .OBJECT PEG-2,0,FX?NDESCBIT,CLOSET,PEG-3,0,T?PEG-2 + .OBJECT CHIMNEY,0,FX?NDESCBIT,LOCAL-GLOBALS,BRICK-HOLE-GLOBAL,0,T?CHIMNEY + .OBJECT UNDERPASS-1,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,IN-POOL-1,0,T?UNDERPASS-1 + .OBJECT GREEN-CARD,0,FX?INVISIBLE+FX?TAKEBIT,OUTSIDE-PARLOR,0,0,T?GREEN-CARD + .OBJECT ROOF-1,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CHIMNEY-3,0,T?ROOF-1 + .OBJECT PEG-1,0,FX?NDESCBIT,CLOSET,PEG-2,0,T?PEG-1 + .OBJECT SQUARE-POST,0,FX?CANT-MOVE-POST-BIT+FX?TRYTAKEBIT+FX?TAKEBIT+FX?NDESCBIT,SOUTH-NICHE,0,0,T?SQUARE-POST + .OBJECT CHIMNEY-3,0,FX?RLANDBIT,ROOMS,CHIMNEY-2,PENGUIN,T?CHIMNEY-3 + .OBJECT PEG-0,0,FX?TAKEBIT,0,0,0,T?PEG-0 + .OBJECT PLAYER,0,FX?ACTORBIT+FX?INVISIBLE+FX?NARTICLEBIT+FX?NDESCBIT,0,0,FLASHLIGHT,T?PLAYER + .OBJECT CHUTE,0,FX?NDESCBIT,PROP-VAULT,0,0,T?CHUTE + .OBJECT LOCAL-GLOBALS,0,0,GLOBAL-OBJECTS,0,HEDGE-MAZE-OBJ,T?LOCAL-GLOBALS + .OBJECT HER,0,FX?NARTICLEBIT,GLOBAL-OBJECTS,GLOBAL-ROOM,0,T?HER + .OBJECT WHITE-FEET,0,FX?TAKEBIT,0,0,0,T?WHITE-FEET + .OBJECT HATCH-HOLE,0,FX?INVISIBLE+FX?NDESCBIT,LOCAL-GLOBALS,GARDEN-WALLS,0,T?HATCH-HOLE + .OBJECT UPSTAIRS-HALL-EAST,0,FX?RLANDBIT,ROOMS,UPSTAIRS-HALL-MIDDLE,SACK-WINDOW,T?UPSTAIRS-HALL-EAST + .OBJECT BATH-MAT,FX?TRYTAKE,FX?NDESCBIT+FX?TAKEBIT,UPSTAIRS-BATHROOM,RED-CARD,0,T?BATH-MAT + .OBJECT PATIO,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTHWEST-JUNCTION,ORANGE-CARD,T?PATIO + .OBJECT CHAIN,0,FX?TRYTAKEBIT+FX?NDESCBIT,BOMB-SHELTER,SAWHORSE,0,T?CHAIN + .OBJECT BUCKET,FX?CONTBIT,FX?TRYTAKEBIT+FX?SEARCHBIT+FX?OPENBIT+FX?TAKEBIT,CLOSET,PEG-1,0,T?BUCKET + .OBJECT CARD,FX?READBIT,FX?TAKEBIT,MAILBOX,0,0,T?CARD + .OBJECT YELLOW-CARD,0,FX?TAKEBIT,SCREENING-ROOM,0,0,T?YELLOW-CARD + .OBJECT PORTRAIT,0,FX?NDESCBIT,OUTSIDE-PARLOR,GREEN-CARD,0,T?PORTRAIT + .OBJECT ROPE,FX?BURNBIT,FX?NDESCBIT+FX?TRYTAKEBIT,BOMB-SHELTER,PLAQUE,0,T?ROPE + .OBJECT PHOTO,FX?BURNBIT,FX?TAKEBIT,PLAYER,LETTER,0,T?PHOTO + .OBJECT RIGHT-END,FX?CONTBIT+FX?VEHBIT,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,BOMB-SHELTER,LEFT-END,0,T?RIGHT-END + .OBJECT GLOBAL-OBJECTS,FX?LIGHTBIT+FX?CONTBIT+FX?READBIT+FX?CAVEBIT+FX?OUTDOORSBIT+FX?VEHBIT+FX?FLAMEBIT+FX?DOORBIT+FX?WETBIT+FX?TOOLBIT+FX?INDOORSBIT+FX?WORNBIT+FX?LOCKEDBIT,FX?NDESCBIT+FX?NARTICLEBIT+FX?TAKEBIT+FX?ACTORBIT+FX?RLANDBIT+FX?ONBIT+FX?VOWELBIT+FX?WEARBIT+FX?TRANSBIT+FX?SEARCHBIT+FX?OPENBIT+FX?TRYTAKEBIT+FX?SURFACEBIT+FX?TOUCHBIT+FX?INVISIBLE+FX?EVERYBIT,0,0,INTDIR,T?GLOBAL-OBJECTS + .OBJECT PROJECTION-BOOTH,0,FX?RLANDBIT,ROOMS,0,SLIDE-PROJECTOR-LENS,T?PROJECTION-BOOTH + .OBJECT IT,0,FX?TOUCHBIT+FX?NDESCBIT+FX?NARTICLEBIT+FX?VOWELBIT,GLOBAL-OBJECTS,INTNUM,0,T?IT + .OBJECT WALLS,0,FX?TOUCHBIT+FX?NDESCBIT,GLOBAL-OBJECTS,GROUND,0,T?WALLS + .OBJECT EAST-GARDEN,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTH-GARDEN,0,T?EAST-GARDEN + .OBJECT BLUE-FEET,0,FX?TAKEBIT,0,0,0,T?BLUE-FEET + .OBJECT WAX-COAT-1,0,FX?NDESCBIT,0,0,0,T?WAX-COAT-1 + .OBJECT CLUB,0,FX?TAKEBIT,PROP-VAULT,HERMAN,0,T?CLUB + .OBJECT WAX-COAT-2,0,FX?NDESCBIT,0,0,0,T?WAX-COAT-2 + .OBJECT TOP-LANDING,FX?OUTDOORSBIT,FX?EVERYBIT+FX?ONBIT+FX?RLANDBIT,ROOMS,FRONT-PORCH,0,T?TOP-LANDING + .OBJECT UPPER-BEACH-STAIRS,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,TOP-LANDING,0,T?UPPER-BEACH-STAIRS + .OBJECT LIVING-ROOM,0,FX?RLANDBIT,ROOMS,CELLAR,MANTLE,T?LIVING-ROOM + .OBJECT BLUE-CARD,0,FX?TAKEBIT,SHAFT-BOTTOM,0,0,T?BLUE-CARD + .OBJECT BLUE-CANDLE,FX?BURNBIT+FX?CONTBIT,FX?OPENBIT+FX?SURFACEBIT+FX?SEARCHBIT+FX?TAKEBIT,MANTLE,0,BLUE-WAX,T?BLUE-CANDLE + .OBJECT BRICK-HOLE-GLOBAL,0,FX?NDESCBIT,LOCAL-GLOBALS,FIREPLACE-GLOBAL,0,T?BRICK-HOLE-GLOBAL + .OBJECT LADIES-ROOM,0,FX?RLANDBIT,ROOMS,MENS-ROOM,0,T?LADIES-ROOM + .OBJECT MASK,0,FX?WEARBIT+FX?TAKEBIT,COMPARTMENT,0,0,T?MASK + .OBJECT NORTH-GARDEN,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,WEST-GARDEN,POND,T?NORTH-GARDEN + .OBJECT MOP,0,FX?TAKEBIT,PROP-VAULT,GUN,0,T?MOP + .OBJECT BEACH,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BOTTOM-LANDING,FIRE,T?BEACH + .OBJECT HOUSE,0,FX?NARTICLEBIT,LOCAL-GLOBALS,PLANK,0,T?HOUSE + .OBJECT BOMB-SHELTER,FX?LOCKEDBIT+FX?CAVEBIT,FX?RLANDBIT,ROOMS,TUNNEL,HOOKS,T?BOMB-SHELTER + .OBJECT CHIMNEY-1,0,FX?EVERYBIT+FX?RLANDBIT,ROOMS,FIREPLACE,0,T?CHIMNEY-1 + .OBJECT BRICK-HOLE,FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT+FX?INVISIBLE,FIREPLACE,INDIGO-CARD,0,T?BRICK-HOLE + .OBJECT NORTHWEST-JUNCTION,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,NORTH-GARDEN,0,T?NORTHWEST-JUNCTION + .OBJECT HANDLES,0,FX?TRYTAKEBIT+FX?NDESCBIT,BEDROOM-3,0,0,T?HANDLES + .OBJECT WEST-GARDEN,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,EAST-GARDEN,SHOVEL,T?WEST-GARDEN + .OBJECT LADDER,0,FX?TAKEBIT,CLIFF,0,0,T?LADDER + .OBJECT GAME-ROOM,FX?LOCKEDBIT,FX?RLANDBIT,ROOMS,ATTIC,BLACK-BUTTON,T?GAME-ROOM + .OBJECT PIPE,0,FX?NDESCBIT,BOMB-SHELTER,RIGHT-END,0,T?PIPE + .OBJECT NORTHEAST-JUNCTION,FX?OUTDOORSBIT,FX?EVERYBIT+FX?ONBIT+FX?RLANDBIT,ROOMS,NORTHWEST-JUNCTION,0,T?NORTHEAST-JUNCTION + .OBJECT MONUMENT,0,FX?NDESCBIT,GAME-ROOM,TOKYO,0,T?MONUMENT + .OBJECT LOWER-BEACH-STAIRS,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,UPPER-BEACH-STAIRS,0,T?LOWER-BEACH-STAIRS + .OBJECT RESET-BUTTON,0,FX?NDESCBIT,CELLAR,COMPUTER,TOUPEE,T?RESET-BUTTON + .OBJECT COMPUTER,FX?LIGHTBIT,FX?NDESCBIT,CELLAR,DISPLAY-LIGHTS,0,T?COMPUTER + .OBJECT ORCHIDS,0,FX?NDESCBIT,NORTH-GARDEN,0,0,T?ORCHIDS + .OBJECT CRAWL-SPACE-SOUTH,0,FX?RLANDBIT,ROOMS,FIRST-SECRET-ROOM,SOUTH-NICHE,T?CRAWL-SPACE-SOUTH + .OBJECT HOOKS,0,FX?NDESCBIT,BOMB-SHELTER,ROPE,0,T?HOOKS + .OBJECT ATTIC-CD,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,CLOSET-REF,0,T?ATTIC-CD + .OBJECT HEDGE-MAZE,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ENTRANCE-TO-MAZE,0,T?HEDGE-MAZE + .OBJECT NORTH-NICHE,FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,CRAWL-SPACE-NORTH,0,ROUND-POST,T?NORTH-NICHE + .OBJECT VIOLET-CARD,0,FX?TAKEBIT,PIANO,0,0,T?VIOLET-CARD + .OBJECT MATCHBOX,FX?BURNBIT+FX?CONTBIT,FX?SEARCHBIT+FX?TAKEBIT,KITCHEN,0,RED-MATCH,T?MATCHBOX + .OBJECT FOYER-STAIRS,0,FX?NDESCBIT,LOCAL-GLOBALS,FOYER-CD,0,T?FOYER-STAIRS + .OBJECT VERTICAL-MAP,FX?BURNBIT+FX?READBIT,FX?TAKEBIT,MAILBOX,CARD,0,T?VERTICAL-MAP + .OBJECT BAZOOKA,0,FX?NDESCBIT,SOUTH-JUNCTION,BUCK,0,T?BAZOOKA + .OBJECT PLANK,0,FX?TRYTAKEBIT+FX?NDESCBIT,LOCAL-GLOBALS,HATCH,0,T?PLANK + .OBJECT CRAWL-SPACE-DOOR,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,PROJECTION-SCREEN,0,T?CRAWL-SPACE-DOOR + .OBJECT OAK-DOOR,FX?LOCKEDBIT+FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,HATCH-HOLE,0,T?OAK-DOOR + .OBJECT UPSTAIRS-HALL-WEST,0,FX?EVERYBIT+FX?RLANDBIT,ROOMS,UPSTAIRS-HALL-EAST,0,T?UPSTAIRS-HALL-WEST + .OBJECT CLIFF,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CANNON-EMPLACEMENT,LADDER,T?CLIFF + .OBJECT FIRE-HYDRANT,0,FX?TAKEBIT,TRUNK,0,0,T?FIRE-HYDRANT + .OBJECT ROOF-2,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ROOF-1,0,T?ROOF-2 + .OBJECT FOYER,FX?LOCKEDBIT,FX?RLANDBIT,ROOMS,P-DEBUG,0,T?FOYER + .OBJECT FLASHLIGHT,FX?LIGHTBIT,FX?TAKEBIT,PLAYER,PHOTO,0,T?FLASHLIGHT + .OBJECT FIREPLACE-GLOBAL,0,FX?NDESCBIT,LOCAL-GLOBALS,CELLAR-CD,0,T?FIREPLACE-GLOBAL + .OBJECT ON-POOL-2,FX?CAVEBIT,FX?RLANDBIT,ROOMS,IN-POOL-2,0,T?ON-POOL-2 + .OBJECT AUNT,0,FX?NARTICLEBIT+FX?NDESCBIT+FX?ACTORBIT,PROP-VAULT,CHUTE,0,T?AUNT + .OBJECT RING,0,FX?ON-MONUMENT-BIT+FX?TAKEBIT+FX?TRYTAKEBIT+FX?NDESCBIT+FX?WEARBIT,GAME-ROOM,MONUMENT,0,T?RING + .OBJECT BED,FX?CONTBIT,FX?TRYTAKEBIT+FX?SURFACEBIT+FX?OPENBIT+FX?SEARCHBIT,LOCAL-GLOBALS,SEAT,0,T?BED + .OBJECT SAND,0,FX?NARTICLEBIT+FX?NDESCBIT,LOCAL-GLOBALS,GAP,0,T?SAND + .OBJECT SHOVEL,0,FX?TAKEBIT,WEST-GARDEN,0,0,T?SHOVEL + .OBJECT MAZE-HOLE,0,FX?NDESCBIT,0,0,0,T?MAZE-HOLE + .OBJECT GLOBAL-ROOM,0,0,GLOBAL-OBJECTS,ME,0,T?GLOBAL-ROOM + .OBJECT SLIDE-PROJECTOR,FX?LIGHTBIT+FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT,PROJECTION-BOOTH,FILM-PROJECTOR,0,T?SLIDE-PROJECTOR + .OBJECT PLANE,0,FX?TRYTAKEBIT+FX?NDESCBIT,GAME-ROOM,TANK,0,T?PLANE + .OBJECT LENS-CAP,0,FX?NDESCBIT+FX?TAKEBIT+FX?TRYTAKEBIT,FILM-PROJECTOR,0,0,T?LENS-CAP + .OBJECT FINCH,0,FX?TAKEBIT,SACK,0,0,T?FINCH + .OBJECT PEGS,0,FX?NDESCBIT,CLOSET,PEG-5,0,T?PEGS + .OBJECT COMPARTMENT,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT,CANNON-EMPLACEMENT,CANNON,MASK,T?COMPARTMENT + .OBJECT HIM,0,FX?NARTICLEBIT,GLOBAL-OBJECTS,HER,0,T?HIM + .OBJECT CELLAR-CD,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,FOYER-STAIRS,0,T?CELLAR-CD + .OBJECT GREEN-BUTTON,0,FX?NDESCBIT,GAME-ROOM,WHITE-BUTTON,0,T?GREEN-BUTTON + .OBJECT TOUPEE,0,FX?NARTICLEBIT+FX?WEARBIT+FX?TAKEBIT,RESET-BUTTON,0,0,T?TOUPEE + .OBJECT HEART-OF-MAZE,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,HEDGE-MAZE,0,T?HEART-OF-MAZE + .OBJECT RED-CARD,0,FX?INVISIBLE+FX?TAKEBIT,UPSTAIRS-BATHROOM,0,0,T?RED-CARD + .OBJECT GUN,0,FX?TAKEBIT,PROP-VAULT,STICK,0,T?GUN + .OBJECT GRATER,0,FX?NARTICLEBIT+FX?TAKEBIT,WALL-SAFE,0,0,T?GRATER + .OBJECT ON-POOL-1,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BOAT-DOCK,0,T?ON-POOL-1 + .OBJECT SACK-WINDOW,0,FX?NDESCBIT,UPSTAIRS-HALL-EAST,SACK,0,T?SACK-WINDOW + .OBJECT PLAQUE,FX?READBIT,FX?NDESCBIT,BOMB-SHELTER,BS-SAFE,0,T?PLAQUE + .OBJECT HEART-OF-MAZE-HOLE,FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT,0,0,RUBBER-STAMP,T?HEART-OF-MAZE-HOLE + .OBJECT PORTABLE-WATER,0,FX?NARTICLEBIT,0,0,0,T?PORTABLE-WATER + .OBJECT SAW,0,FX?NDESCBIT,PROP-VAULT,SWORD,0,T?SAW + .OBJECT BEDROOM-1,0,FX?RLANDBIT,ROOMS,UPSTAIRS-HALL-WEST,0,T?BEDROOM-1 + .OBJECT NOTE,FX?BURNBIT+FX?READBIT,FX?TAKEBIT,0,0,0,T?NOTE + .OBJECT HATCH,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,WATER,0,T?HATCH + .OBJECT SOUTHEAST-JUNCTION,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTH-JUNCTION,0,T?SOUTHEAST-JUNCTION + .OBJECT THEM,0,FX?NARTICLEBIT,GLOBAL-OBJECTS,HIM,0,T?THEM + .OBJECT FOYER-CD,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,STAIRS,0,T?FOYER-CD + .OBJECT DOG,0,FX?VOWELBIT+FX?NDESCBIT,GAME-ROOM,PLANE,0,T?DOG + .OBJECT ENTRANCE-TO-MAZE,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LADIES-ROOM,0,T?ENTRANCE-TO-MAZE + .OBJECT BAG,0,FX?TAKEBIT,PROP-VAULT,MOP,0,T?BAG + .OBJECT UPSTAIRS-CD,FX?DOORBIT,FX?NDESCBIT,LOCAL-GLOBALS,CHIMNEY,0,T?UPSTAIRS-CD + .OBJECT HERMAN,0,FX?NARTICLEBIT+FX?NDESCBIT+FX?ACTORBIT,PROP-VAULT,AUNT,0,T?HERMAN + .OBJECT STAIRS,0,FX?NDESCBIT,LOCAL-GLOBALS,CRAWL-SPACE-DOOR,0,T?STAIRS + .OBJECT SEAT,0,FX?TAKEBIT+FX?TRYTAKEBIT,LOCAL-GLOBALS,TOILET,0,T?SEAT + .OBJECT CLOSET,0,FX?RLANDBIT,ROOMS,INLET,BUCKET,T?CLOSET + .OBJECT YOUR-FEET,0,FX?NARTICLEBIT,GLOBAL-OBJECTS,HANDS,0,T?YOUR-FEET + .OBJECT HORIZONTAL-MAP,FX?BURNBIT+FX?READBIT,FX?TAKEBIT,DINING-ROOM,0,0,T?HORIZONTAL-MAP + .OBJECT MENS-ROOM,0,FX?RLANDBIT,ROOMS,SHORT-HALL,0,T?MENS-ROOM + .OBJECT PERSIAN-RUG,0,FX?NDESCBIT+FX?TRYTAKEBIT,LIVING-ROOM,0,0,T?PERSIAN-RUG + .OBJECT GREEN-MATCH,FX?CONTBIT+FX?BURNBIT,FX?OPENBIT+FX?SEARCHBIT+FX?TAKEBIT,BEACH,0,0,T?GREEN-MATCH + .OBJECT CANNON,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT+FX?TRYTAKEBIT+FX?OPENBIT,CANNON-EMPLACEMENT,FUSE,0,T?CANNON + .OBJECT RED-WAX,0,FX?NDESCBIT,RED-CANDLE,0,0,T?RED-WAX + .OBJECT DISPLAY-LIGHTS,0,FX?NDESCBIT,CELLAR,0,0,T?DISPLAY-LIGHTS + .OBJECT ATTIC-DOOR,FX?DOORBIT+FX?LOCKEDBIT,FX?NDESCBIT,LOCAL-GLOBALS,ATTIC-CD,0,T?ATTIC-DOOR + .OBJECT WHITE-BUTTON,0,FX?NDESCBIT,GAME-ROOM,RED-BUTTON,0,T?WHITE-BUTTON + .OBJECT WATER,0,FX?NARTICLEBIT,LOCAL-GLOBALS,SOFA,0,T?WATER + .OBJECT ATTIC,FX?LOCKEDBIT,FX?RLANDBIT,ROOMS,CLOSET-TOP,TRUNK,T?ATTIC + .OBJECT GROUND,0,FX?TOUCHBIT+FX?NDESCBIT,GLOBAL-OBJECTS,LIGHTS,0,T?GROUND + .OBJECT PROJECTION-SCREEN,0,FX?NDESCBIT,LOCAL-GLOBALS,PROJECTED-IMAGE,0,T?PROJECTION-SCREEN + .OBJECT NEWSLETTER,FX?BURNBIT+FX?READBIT,FX?TAKEBIT,MAILBOX,VERTICAL-MAP,0,T?NEWSLETTER + .OBJECT SOUTH-GARDEN,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PATIO,0,T?SOUTH-GARDEN + .OBJECT NOT-HERE-OBJECT,0,FX?NARTICLEBIT,0,0,0,T?NOT-HERE-OBJECT + .OBJECT RED-CANDLE,FX?BURNBIT+FX?CONTBIT,FX?OPENBIT+FX?SURFACEBIT+FX?SEARCHBIT+FX?TAKEBIT,MANTLE,WHITE-CANDLE,RED-WAX,T?RED-CANDLE + .OBJECT FRONT-PORCH,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CLIFF,MAILBOX,T?FRONT-PORCH + .OBJECT GAP,0,0,LOCAL-GLOBALS,OAK-DOOR,0,T?GAP + .OBJECT INTNUM,0,0,GLOBAL-OBJECTS,LOCAL-GLOBALS,0,T?INTNUM + .OBJECT SKIS,0,FX?WEARBIT+FX?TAKEBIT,CLOSET,0,0,T?SKIS + .OBJECT BEDROOM-3,0,FX?RLANDBIT,ROOMS,BEDROOM-2,HANDLES,T?BEDROOM-3 + .OBJECT ROUND-POST,0,FX?CANT-MOVE-POST-BIT+FX?TRYTAKEBIT+FX?NDESCBIT+FX?TAKEBIT,NORTH-NICHE,0,0,T?ROUND-POST + .OBJECT FILM-PROJECTOR,FX?LIGHTBIT+FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT,PROJECTION-BOOTH,SLIDE,LENS-CAP,T?FILM-PROJECTOR + .OBJECT CRAWL-SPACE-NORTH,0,FX?RLANDBIT,ROOMS,PARLOR,NORTH-NICHE,T?CRAWL-SPACE-NORTH + .OBJECT CEILING,0,FX?TOUCHBIT+FX?NDESCBIT,GLOBAL-OBJECTS,WALLS,0,T?CEILING + .OBJECT MANTLE,FX?CONTBIT,FX?NDESCBIT+FX?SURFACEBIT+FX?OPENBIT+FX?SEARCHBIT,LIVING-ROOM,PERSIAN-RUG,RED-CANDLE,T?MANTLE + .OBJECT PHONE,0,FX?NDESCBIT,LOCAL-GLOBALS,UPSTAIRS-CD,0,T?PHONE + .OBJECT FILM-PROJECTOR-LENS,0,FX?NDESCBIT,PROJECTION-BOOTH,SLIDE-PROJECTOR,0,T?FILM-PROJECTOR-LENS + .OBJECT DUMMY-OBJECT,0,0,0,0,0,T?DUMMY-OBJECT + .OBJECT SLIDE-PROJECTOR-LENS,0,FX?NDESCBIT,PROJECTION-BOOTH,FILM-PROJECTOR-LENS,0,T?SLIDE-PROJECTOR-LENS + .OBJECT SACK,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT+FX?TRYTAKEBIT+FX?TAKEBIT,UPSTAIRS-HALL-EAST,0,FINCH,T?SACK + .OBJECT UNDERPASS-2,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,UNDERPASS-1,0,T?UNDERPASS-2 + .OBJECT RED-BUTTON,0,FX?NDESCBIT,GAME-ROOM,DOG,0,T?RED-BUTTON + .OBJECT FIRST-SECRET-ROOM,0,FX?RLANDBIT,ROOMS,CRAWL-SPACE-NORTH,PARKING-METER,T?FIRST-SECRET-ROOM + .OBJECT WALL-SAFE,FX?LOCKEDBIT+FX?CONTBIT,FX?INVISIBLE+FX?SEARCHBIT+FX?NDESCBIT,OUTSIDE-PARLOR,PORTRAIT,GRATER,T?WALL-SAFE + .OBJECT IN-POOL-2,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,UNDERPASS-2,0,T?IN-POOL-2 + .OBJECT BOTTOM-LANDING,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LOWER-BEACH-STAIRS,0,T?BOTTOM-LANDING + .OBJECT TANK,0,FX?NDESCBIT,GAME-ROOM,RING,0,T?TANK + .OBJECT PILE-OF-BALLS,FX?CONTBIT,FX?OPENBIT+FX?SEARCHBIT+FX?SURFACEBIT+FX?NDESCBIT,CANNON-EMPLACEMENT,0,CANNON-BALL,T?PILE-OF-BALLS + .OBJECT FUSE,FX?BURNBIT,FX?NDESCBIT,CANNON-EMPLACEMENT,PILE-OF-BALLS,0,T?FUSE + .OBJECT BEDROOM-2,0,FX?RLANDBIT,ROOMS,BEDROOM-1,0,T?BEDROOM-2 + .OBJECT FILM,0,FX?TAKEBIT,PROJECTION-BOOTH,0,0,T?FILM + .OBJECT DINING-ROOM-TABLE,FX?CONTBIT,FX?SURFACEBIT+FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,DINING-ROOM,HORIZONTAL-MAP,0,T?DINING-ROOM-TABLE + .OBJECT SOUTH-NICHE,FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,CRAWL-SPACE-SOUTH,0,SQUARE-POST,T?SOUTH-NICHE + .OBJECT TUNNEL,FX?CAVEBIT,FX?RLANDBIT,ROOMS,LEDGE,0,T?TUNNEL + .OBJECT BLUE-BUTTON,0,FX?NDESCBIT,GAME-ROOM,GREEN-BUTTON,0,T?BLUE-BUTTON + .OBJECT SWORD,0,FX?VOWELBIT+FX?TAKEBIT,PROP-VAULT,SHEARS,0,T?SWORD + .OBJECT HOPPER,FX?CONTBIT,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,CELLAR,RESET-BUTTON,0,T?HOPPER + .OBJECT BRICK,0,FX?NDESCBIT+FX?TAKEBIT,FIREPLACE,BRICK-HOLE,0,T?BRICK + .OBJECT TOILET,0,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,LOCAL-GLOBALS,PHONE,0,T?TOILET + .OBJECT CANNON-EMPLACEMENT,FX?OUTDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,NORTHEAST-JUNCTION,COMPARTMENT,T?CANNON-EMPLACEMENT + .OBJECT TRUNK,FX?CONTBIT,FX?TRUNK-LOCKED-BIT+FX?SEARCHBIT+FX?NDESCBIT,ATTIC,0,FIRE-HYDRANT,T?TRUNK + .OBJECT CLIPPERS,0,FX?NARTICLEBIT+FX?TAKEBIT,PROP-VAULT,BAG,0,T?CLIPPERS + .OBJECT PIANO,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT,PARLOR,0,VIOLET-CARD,T?PIANO + .OBJECT FIREPLACE,0,FX?RLANDBIT,ROOMS,LIVING-ROOM,BRICK,T?FIREPLACE + .OBJECT PROJECTED-IMAGE,0,FX?NDESCBIT,LOCAL-GLOBALS,WINDOW,0,T?PROJECTED-IMAGE + .OBJECT MAILBOX,FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT,FRONT-PORCH,DOOR-BELL,NEWSLETTER,T?MAILBOX + .OBJECT SLIDE,0,FX?TRANSBIT+FX?TAKEBIT,PROJECTION-BOOTH,FILM,0,T?SLIDE + .OBJECT BS-SAFE,FX?LOCKEDBIT+FX?CONTBIT,FX?SEARCHBIT+FX?NDESCBIT+FX?TRYTAKEBIT,BOMB-SHELTER,PIPE,CORPSE-LINE,T?BS-SAFE + .OBJECT DOOR-BELL,0,FX?NDESCBIT,FRONT-PORCH,0,0,T?DOOR-BELL + .OBJECT RUBBER-STAMP,0,FX?NARTICLEBIT+FX?TAKEBIT,HEART-OF-MAZE-HOLE,0,0,T?RUBBER-STAMP + .OBJECT CLOSET-TOP,0,FX?RLANDBIT,ROOMS,SHAFT-BOTTOM,0,T?CLOSET-TOP + .OBJECT OUTSIDE-PARLOR,FX?LOCKEDBIT,FX?RLANDBIT,ROOMS,SCREENING-ROOM,WALL-SAFE,T?OUTSIDE-PARLOR + .OBJECT UPSTAIRS-HALL-MIDDLE,0,FX?RLANDBIT,ROOMS,DINING-ROOM,NEWEL,T?UPSTAIRS-HALL-MIDDLE + .OBJECT IN-POOL-1,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ON-POOL-1,0,T?IN-POOL-1 + .OBJECT SHORT-HALL,0,FX?RLANDBIT,ROOMS,GAME-ROOM,0,T?SHORT-HALL + .OBJECT LETTER,FX?READBIT+FX?BURNBIT,FX?NARTICLEBIT+FX?TAKEBIT,PLAYER,0,0,T?LETTER + .OBJECT ORANGE-CARD,0,FX?VOWELBIT+FX?TAKEBIT,PATIO,0,0,T?ORANGE-CARD + .OBJECT FIRE,FX?FLAMEBIT,FX?OPENBIT+FX?SEARCHBIT,BEACH,GREEN-MATCH,0,T?FIRE + .OBJECT SCREENING-ROOM,0,FX?RLANDBIT,ROOMS,PROJECTION-BOOTH,YELLOW-CARD,T?SCREENING-ROOM + .OBJECT BOAT-DOCK,FX?CAVEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,UPSTAIRS-BATHROOM,0,T?BOAT-DOCK + .OBJECT WHITE-WAX,0,FX?NDESCBIT,WHITE-CANDLE,0,0,T?WHITE-WAX + .OBJECT GARDEN,0,FX?NARTICLEBIT,LOCAL-GLOBALS,PATIO-DOOR,0,T?GARDEN + .OBJECT PSEUDO-OBJECT,0,0,LOCAL-GLOBALS,0,0,T?PSEUDO-OBJECT + .OBJECT BUCK,0,0,SOUTH-JUNCTION,0,0,T?BUCK + .OBJECT UPSTAIRS-BATHROOM,0,FX?RLANDBIT,ROOMS,BEDROOM-3,BATH-MAT,T?UPSTAIRS-BATHROOM + .ENDT + +; OBJECT PROPERTY TABLES ARE DEFINED HERE + +OBJPRP:: + +T?SAWHORSE:: .TABLE ; TABLE FOR OBJECT SAWHORSE + .STRL "sawhorse" + .PROP 2,P?SYNONYM + W?SAWHORSE + .PROP 1,P?ADJECTIVE + .BYTE A?HEAVY + .BYTE 0 + .ENDT + +T?SOUTH-JUNCTION:: .TABLE ; TABLE FOR OBJECT SOUTH-JUNCTION + .STRL "South Junction" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SOUTH-JUNCTION-F + .PROP 3,P?NORTH + .WORD TO-FRONT-PORCH + .BYTE 0 + .PROP 3,P?EAST + .WORD TO-&-FROM-SOUTH-JUNCTION + .BYTE 0 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?179 + .PROP 3,P?WEST + .WORD TO-&-FROM-SOUTH-JUNCTION + .BYTE 0 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?12 + .PROP 3,P?GLOBAL + .BYTE STAIRS + .BYTE HOUSE + .BYTE CHIMNEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?178 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?CORPSE-LINE:: .TABLE ; TABLE FOR OBJECT CORPSE-LINE + .STRL "copy of the film ""A Corpse Line""" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CORPSE-LINE-F + .PROP 8,P?SYNONYM + W?CORPSE + W?LINE + W?FILM + W?MOVIE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 3,P?ADJECTIVE + .BYTE A?REEL + .BYTE A?COPY + .BYTE A?CORPSE + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?HANDS:: .TABLE ; TABLE FOR OBJECT HANDS + .STRL "your hand" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HANDS-F + .PROP 4,P?SYNONYM + W?HAND + W?HANDS + .PROP 2,P?ADJECTIVE + .BYTE A?MY + .BYTE A?BARE + .BYTE 0 + .ENDT + +T?PARLOR:: .TABLE ; TABLE FOR OBJECT PARLOR + .STRL "Parlor" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PARLOR-F + .PROP 1,P?WEST + .BYTE OUTSIDE-PARLOR + .PROP 3,P?DOWN + .WORD TO-CRAWL-SPACE-NORTH + .BYTE 0 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?6 + .PROP 2,P?GLOBAL + .BYTE CRAWL-SPACE-DOOR + .BYTE SEAT + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?CLOSET-REF:: .TABLE ; TABLE FOR OBJECT CLOSET-REF + .STRL "closet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLOSET-REF-F + .PROP 2,P?SYNONYM + W?CLOSET + .PROP 1,P?ADJECTIVE + .BYTE A?COAT + .BYTE 0 + .ENDT + +T?PARKING-METER:: .TABLE ; TABLE FOR OBJECT PARKING-METER + .STRL "parking meter" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PARKING-METER-F + .PROP 2,P?SYNONYM + W?METER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?PARKING + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?LEFT-END:: .TABLE ; TABLE FOR OBJECT LEFT-END + .STRL "left end of the plank" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ENDS-F + .PROP 6,P?SYNONYM + W?END + W?PLANK + W?BOARD + .PROP 1,P?ADJECTIVE + .BYTE A?LEFT + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-PLANK-F + .BYTE 0 + .ENDT + +T?WHITE-CANDLE:: .TABLE ; TABLE FOR OBJECT WHITE-CANDLE + .STRL "white wax statuette" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WHITE-CANDLE-F + .PROP 6,P?SYNONYM + W?CANDLE + W?STATUE + W?WICK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?WAX + .BYTE A?WHITE + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-CANDLE-F + .BYTE 0 + .ENDT + +T?INLET:: .TABLE ; TABLE FOR OBJECT INLET + .STRL "Inlet" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?213 + .PROP 1,P?EAST + .BYTE BEACH + .PROP 1,P?SOUTH + .BYTE ON-POOL-1 + .PROP 2,P?DOWN ; STRING PROPERTY + STR?214 + .PROP 1,P?OUT + .BYTE BEACH + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?212 + .BYTE 0 + .ENDT + +T?NEWEL:: .TABLE ; TABLE FOR OBJECT NEWEL + .STRL "newel in the shape of Roger Corman's head" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NEWEL-F + .PROP 8,P?SYNONYM + W?NEWEL + W?HEAD + W?ROGER + W?CORMAN + .BYTE 0 + .ENDT + +T?TOKYO:: .TABLE ; TABLE FOR OBJECT TOKYO + .STRL "scale model of downtown Tokyo" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOKYO-F + .PROP 8,P?SYNONYM + W?TOKYO + W?CITY + W?DOWNTO + W?MODEL + .PROP 2,P?ADJECTIVE + .BYTE A?SCALE + .BYTE A?DOWNTO + .BYTE 0 + .ENDT + +T?WINDOW:: .TABLE ; TABLE FOR OBJECT WINDOW + .STRL "window" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WINDOW-F + .PROP 4,P?SYNONYM + W?WINDOW + W?GLASS + .BYTE 0 + .ENDT + +T?POND:: .TABLE ; TABLE FOR OBJECT POND + .STRL "small pond" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POND-F + .PROP 2,P?SYNONYM + W?POND + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 200 + .PROP 1,P?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 + .ENDT + +T?PROP-VAULT:: .TABLE ; TABLE FOR OBJECT PROP-VAULT + .STRL "Prop Vault" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-VAULT-F + .PROP 3,P?EAST + .WORD TO-CHUTE + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-CHUTE + .BYTE 0 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?STICK:: .TABLE ; TABLE FOR OBJECT STICK + .STRL "big stick" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?STICK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?BIG + .BYTE 0 + .ENDT + +T?SOFA:: .TABLE ; TABLE FOR OBJECT SOFA + .STRL "sofa" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SEAT-F + .PROP 4,P?SYNONYM + W?COUCH + W?SOFA + .PROP 1,P?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 + .ENDT + +T?SHAFT-BOTTOM:: .TABLE ; TABLE FOR OBJECT SHAFT-BOTTOM + .STRL "Shaft Bottom" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SHAFT-BOTTOM-F + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE CELLAR ; ROOM NAME + .BYTE CELLAR-CD ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?OUT ; DOOR EXIT + .BYTE CELLAR ; ROOM NAME + .BYTE CELLAR-CD ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?GLOBAL + .BYTE CELLAR-CD + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?BLUE-WAX:: .TABLE ; TABLE FOR OBJECT BLUE-WAX + .STRL "blue candle wax" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAX-F + .PROP 2,P?SYNONYM + W?WAX + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?BLUE + .BYTE A?CANDLE + .BYTE A?MELTED + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-WAX-F + .BYTE 0 + .ENDT + +T?RED-MATCH:: .TABLE ; TABLE FOR OBJECT RED-MATCH + .STRL "red match" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MATCH-F + .PROP 4,P?SYNONYM + W?MATCH + W?MATCHES + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?RED + .BYTE A?WOODEN + .BYTE A?STICK + .PROP 2,P?MATCH-LIFE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?ME:: .TABLE ; TABLE FOR OBJECT ME + .STRL "yourself" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ME-F + .PROP 6,P?SYNONYM + W?I + W?ME + W?MYSELF + .BYTE 0 + .ENDT + +T?INDIGO-CARD:: .TABLE ; TABLE FOR OBJECT INDIGO-CARD + .STRL "indigo punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?INDIGO + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 5 + .BYTE 0 + .ENDT + +T?RED-FEET:: .TABLE ; TABLE FOR OBJECT RED-FEET + .STRL "pair of red wax feet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FEET-F + .PROP 4,P?SYNONYM + W?FEET + W?CANDLE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 3,P?ADJECTIVE + .BYTE A?RED + .BYTE A?WAX + .BYTE A?PAIR + .BYTE 0 + .ENDT + +T?CHIMNEY-2:: .TABLE ; TABLE FOR OBJECT CHIMNEY-2 + .STRL "In the Chimney" + .PROP 3,P?UP + .WORD UP-CHIMNEY + .BYTE 0 + .PROP 3,P?DOWN + .WORD DOWN-CHIMNEY + .BYTE 0 + .PROP 2,P?GLOBAL + .BYTE CHIMNEY + .BYTE BRICK-HOLE-GLOBAL + .PROP 2,P?LDESC ; STRING PROPERTY + STR?130 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?PATIO-DOOR:: .TABLE ; TABLE FOR OBJECT PATIO-DOOR + .STRL "patio door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?PATIO + .BYTE 0 + .ENDT + +T?GARDEN-WALLS:: .TABLE ; TABLE FOR OBJECT GARDEN-WALLS + .STRL "stone wall" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GARDEN-WALLS-F + .PROP 2,P?SYNONYM + W?WALL + .PROP 2,P?ADJECTIVE + .BYTE A?STONE + .BYTE A?GARDEN + .BYTE 0 + .ENDT + +T?BLACK-BUTTON:: .TABLE ; TABLE FOR OBJECT BLACK-BUTTON + .STRL "black button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLACK-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?BLACK + .BYTE 0 + .ENDT + +T?PENGUIN:: .TABLE ; TABLE FOR OBJECT PENGUIN + .STRL "stuffed penguin" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PENGUIN-F + .PROP 4,P?SYNONYM + W?PENGUIN + W?BIRD + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 15 + .PROP 1,P?ADJECTIVE + .BYTE A?STUFFED + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?SHEARS:: .TABLE ; TABLE FOR OBJECT SHEARS + .STRL "salivating hedge shears" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?SHEARS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?SALAVATING + .BYTE A?HEDGE + .BYTE 0 + .ENDT + +T?KITCHEN:: .TABLE ; TABLE FOR OBJECT KITCHEN + .STRL "Kitchen" + .PROP 1,P?EAST + .BYTE DINING-ROOM + .PROP 3,P?DOWN + .WORD TO-CELLAR + .BYTE 0 + .PROP 3,P?GLOBAL + .BYTE STAIRS + .BYTE WINDOW + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?135 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?SOUTHWEST-JUNCTION:: .TABLE ; TABLE FOR OBJECT SOUTHWEST-JUNCTION + .STRL "Southwest Junction" + .PROP 1,P?NORTH + .BYTE NORTHWEST-JUNCTION + .PROP 1,P?EAST + .BYTE PATIO + .PROP 3,P?SOUTH + .WORD TO-&-FROM-SOUTH-JUNCTION + .BYTE 0 + .PROP 3,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .PROP 2,P?LDESC ; STRING PROPERTY + STR?181 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?CANNON-BALL:: .TABLE ; TABLE FOR OBJECT CANNON-BALL + .STRL "cannon ball" + .PROP 2,P?SYNONYM + W?BALL + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?CANNON + .BYTE A?TOP + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-BALL-F + .BYTE 0 + .ENDT + +T?LIGHTS:: .TABLE ; TABLE FOR OBJECT LIGHTS + .STRL "lights" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LIGHTS-F + .PROP 4,P?SYNONYM + W?LIGHT + W?LIGHTS + .BYTE 0 + .ENDT + +T?HEDGE-MAZE-OBJ:: .TABLE ; TABLE FOR OBJECT HEDGE-MAZE-OBJ + .STRL "hedge maze" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEDGE-MAZE-OBJ-F + .PROP 4,P?SYNONYM + W?MAZE + W?LABYRINTYH + .PROP 1,P?ADJECTIVE + .BYTE A?HEDGE + .BYTE 0 + .ENDT + +T?DINING-ROOM:: .TABLE ; TABLE FOR OBJECT DINING-ROOM + .STRL "Dining Room" + .PROP 1,P?EAST + .BYTE GAME-ROOM + .PROP 1,P?SOUTH + .BYTE LIVING-ROOM + .PROP 1,P?WEST + .BYTE KITCHEN + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE SEAT + .BYTE GARDEN + .PROP 2,P?LDESC ; STRING PROPERTY + STR?136 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?CELLAR:: .TABLE ; TABLE FOR OBJECT CELLAR + .STRL "Cellar" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CELLAR-F + .PROP 3,P?SOUTH + .WORD CELLAR-CLOSET-ENTER-F + .BYTE 0 + .PROP 1,P?UP + .BYTE KITCHEN + .PROP 3,P?IN + .WORD CELLAR-CLOSET-ENTER-F + .BYTE 0 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?9 + .PROP 3,P?GLOBAL + .BYTE STAIRS + .BYTE CELLAR-CD + .BYTE CLOSET-REF + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?PEG-5:: .TABLE ; TABLE FOR OBJECT PEG-5 + .STRL "sawed-off peg" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEG-5-F + .PROP 2,P?SYNONYM + W?PEG + .PROP 5,P?ADJECTIVE + .BYTE A?SAWED + .BYTE A?OFF + .BYTE A?FOURTH + .BYTE A?COAT + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?P-DEBUG:: .TABLE ; TABLE FOR OBJECT P-DEBUG + .STRL "Work Room" + .PROP 3,P?NORTH + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?NE + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?EAST + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?SE + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?SOUTH + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?SW + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?WEST + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?NW + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 3,P?UP + .WORD OUT-OF-P-DEBUG + .BYTE 0 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?107 + .BYTE 0 + .ENDT + +T?LEDGE:: .TABLE ; TABLE FOR OBJECT LEDGE + .STRL "Ledge" + .PROP 1,P?NORTH + .BYTE TUNNEL + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?159 + .PROP 2,P?DOWN ; STRING PROPERTY + STR?159 + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?171 + .BYTE 0 + .ENDT + +T?INTDIR:: .TABLE ; TABLE FOR OBJECT INTDIR + .STRL "direction" + .PROP 2,P?SYNONYM + W?DIRECTION + .PROP 8,P?ADJECTIVE + .BYTE A?NORTH + .BYTE A?EAST + .BYTE A?SOUTH + .BYTE A?WEST + .BYTE A?NE + .BYTE A?NW + .BYTE A?SE + .BYTE A?SW + .BYTE 0 + .ENDT + +T?ROOMS:: .TABLE ; TABLE FOR OBJECT ROOMS + .STRL "" + .PROP 1,P?IN + .BYTE ROOMS + .BYTE 0 + .ENDT + +T?PEG-3:: .TABLE ; TABLE FOR OBJECT PEG-3 + .STRL "third coat peg" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEG-F + .PROP 2,P?SYNONYM + W?PEG + .PROP 4,P?ADJECTIVE + .BYTE A?THIRD + .BYTE A?COAT + .BYTE A?WORN + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?PEG-2:: .TABLE ; TABLE FOR OBJECT PEG-2 + .STRL "second coat peg" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEG-F + .PROP 2,P?SYNONYM + W?PEG + .PROP 4,P?ADJECTIVE + .BYTE A?SECOND + .BYTE A?COAT + .BYTE A?WORN + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?CHIMNEY:: .TABLE ; TABLE FOR OBJECT CHIMNEY + .STRL "brick chimney" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHIMNEY-F + .PROP 2,P?SYNONYM + W?CHIMNEY + .BYTE 0 + .ENDT + +T?UNDERPASS-1:: .TABLE ; TABLE FOR OBJECT UNDERPASS-1 + .STRL "Underwater Passage" + .PROP 3,P?WEST + .WORD TO-UNDERPASS-WEST + .BYTE 0 + .PROP 1,P?UP + .BYTE IN-POOL-1 + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?165 + .BYTE 0 + .ENDT + +T?GREEN-CARD:: .TABLE ; TABLE FOR OBJECT GREEN-CARD + .STRL "green punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?GREEN + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?ROOF-1:: .TABLE ; TABLE FOR OBJECT ROOF-1 + .STRL "West End of Roof" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?133 + .PROP 2,P?NE ; STRING PROPERTY + STR?133 + .PROP 1,P?EAST + .BYTE ROOF-2 + .PROP 2,P?SE ; STRING PROPERTY + STR?133 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?133 + .PROP 2,P?SW ; STRING PROPERTY + STR?133 + .PROP 2,P?WEST ; STRING PROPERTY + STR?133 + .PROP 2,P?NW ; STRING PROPERTY + STR?133 + .PROP 3,P?DOWN + .WORD ROOF-TO-CHIMNEY + .BYTE 0 + .PROP 3,P?IN + .WORD ROOF-TO-CHIMNEY + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE CHIMNEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?132 + .BYTE 0 + .ENDT + +T?PEG-1:: .TABLE ; TABLE FOR OBJECT PEG-1 + .STRL "first coat peg" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEG-F + .PROP 2,P?SYNONYM + W?PEG + .PROP 4,P?ADJECTIVE + .BYTE A?FIRST + .BYTE A?COAT + .BYTE A?WORN + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?SQUARE-POST:: .TABLE ; TABLE FOR OBJECT SQUARE-POST + .STRL "dirty pillar" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POST-F + .PROP 2,P?SYNONYM + W?PILLAR + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?DIRTY + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?CHIMNEY-3:: .TABLE ; TABLE FOR OBJECT CHIMNEY-3 + .STRL "In the Chimney" + .PROP 3,P?UP + .WORD UP-CHIMNEY + .BYTE 0 + .PROP 2,P?GLOBAL + .BYTE CHIMNEY + .BYTE BRICK-HOLE-GLOBAL + .PROP 2,P?LDESC ; STRING PROPERTY + STR?131 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?PEG-0:: .TABLE ; TABLE FOR OBJECT PEG-0 + .STRL "chipped peg" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEG-0-F + .PROP 2,P?SYNONYM + W?PEG + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 4,P?ADJECTIVE + .BYTE A?COAT + .BYTE A?CHIPPED + .BYTE A?WORN + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?PLAYER:: .TABLE ; TABLE FOR OBJECT PLAYER + .STRL "yourself" + .PROP 2,P?ACTION ; INTEGER/CONSTANT PROPERTY + + 0 + .PROP 2,P?SYNONYM + W?PLAYER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 0 + .BYTE 0 + .ENDT + +T?CHUTE:: .TABLE ; TABLE FOR OBJECT CHUTE + .STRL "chute" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHUTE-F + .PROP 2,P?SYNONYM + W?CHUTE + .BYTE 0 + .ENDT + +T?LOCAL-GLOBALS:: .TABLE ; TABLE FOR OBJECT LOCAL-GLOBALS + .STRL "" + .PROP 2,P?SYNONYM + W?ZZZP + .PROP 2,P?DESCFCN ; INTEGER/CONSTANT PROPERTY + + 0 + .PROP 1,P?GLOBAL + .BYTE GLOBAL-OBJECTS + .PROP 2,P?ADVFCN ; INTEGER/CONSTANT PROPERTY + + 0 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?13 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?14 + .PROP 4,P?PSEUDO + W?FOOBAR + V-WALK + .PROP 2,P?CONTFCN ; INTEGER/CONSTANT PROPERTY + + 0 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 0 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 0 + .BYTE 0 + .ENDT + +T?HER:: .TABLE ; TABLE FOR OBJECT HER + .STRL "her" + .PROP 4,P?SYNONYM + W?SHE + W?HER + .BYTE 0 + .ENDT + +T?WHITE-FEET:: .TABLE ; TABLE FOR OBJECT WHITE-FEET + .STRL "pair of white wax feet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FEET-F + .PROP 4,P?SYNONYM + W?FEET + W?CANDLE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 3,P?ADJECTIVE + .BYTE A?WHITE + .BYTE A?WAX + .BYTE A?PAIR + .BYTE 0 + .ENDT + +T?HATCH-HOLE:: .TABLE ; TABLE FOR OBJECT HATCH-HOLE + .STRL "hole" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HATCH-HOLE-F + .PROP 2,P?SYNONYM + W?HOLE + .BYTE 0 + .ENDT + +T?UPSTAIRS-HALL-EAST:: .TABLE ; TABLE FOR OBJECT UPSTAIRS-HALL-EAST + .STRL "Upstairs Hall, East" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + UPSTAIRS-HALL-EAST-F + .PROP 3,P?NORTH + .WORD UPSTAIRS-HALL-EAST-EXIT-F + .BYTE 0 + .PROP 3,P?SOUTH + .WORD UPSTAIRS-HALL-EAST-EXIT-F + .BYTE 0 + .PROP 3,P?WEST + .WORD UPSTAIRS-HALL-EAST-EXIT-F + .BYTE 0 + .BYTE 0 + .ENDT + +T?BATH-MAT:: .TABLE ; TABLE FOR OBJECT BATH-MAT + .STRL "Jack Valenti bath mat" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BATH-MAT-F + .PROP 2,P?SYNONYM + W?MAT + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 3,P?ADJECTIVE + .BYTE A?BATH + .BYTE A?JACK + .BYTE A?VALENTI + .BYTE 0 + .ENDT + +T?PATIO:: .TABLE ; TABLE FOR OBJECT PATIO + .STRL "Patio" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PATIO-F + .PROP 1,P?NORTH + .BYTE SOUTH-GARDEN + .PROP 1,P?EAST + .BYTE SOUTHEAST-JUNCTION + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE GAME-ROOM ; ROOM NAME + .BYTE PATIO-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?WEST + .BYTE SOUTHWEST-JUNCTION + .PROP 4,P?GLOBAL + .BYTE PATIO-DOOR + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE 0 + .ENDT + +T?CHAIN:: .TABLE ; TABLE FOR OBJECT CHAIN + .STRL "long, greasy chain" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHAIN-F + .PROP 2,P?SYNONYM + W?CHAIN + .PROP 2,P?ADJECTIVE + .BYTE A?LONG + .BYTE A?GREASY + .BYTE 0 + .ENDT + +T?BUCKET:: .TABLE ; TABLE FOR OBJECT BUCKET + .STRL "rusty bucket" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BUCKET-F + .PROP 6,P?SYNONYM + W?BUCKET + W?HANDLE + W?PAIL + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + BUCKET-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 16 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .PROP 4,P?ADJECTIVE + .BYTE A?RUSTY + .BYTE A?LEAKY + .BYTE A?METAL + .BYTE A?RUSTED + .BYTE 0 + .ENDT + +T?CARD:: .TABLE ; TABLE FOR OBJECT CARD + .STRL "business card" + .PROP 2,P?SYNONYM + W?CARD + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?BUSINESS + .PROP 2,P?TEXT ; STRING PROPERTY + STR?110 + .BYTE 0 + .ENDT + +T?YELLOW-CARD:: .TABLE ; TABLE FOR OBJECT YELLOW-CARD + .STRL "yellow punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?YELLOW + .BYTE A?CARDS + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?PORTRAIT:: .TABLE ; TABLE FOR OBJECT PORTRAIT + .STRL "portrait of Aunt Hildegarde and Uncle Buddy" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PORTRAIT-F + .PROP 6,P?SYNONYM + W?PORTRAIT + W?PAINTING + W?PICTURE + .PROP 1,P?ADJECTIVE + .BYTE A?OIL + .BYTE 0 + .ENDT + +T?ROPE:: .TABLE ; TABLE FOR OBJECT ROPE + .STRL "rope" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROPE-F + .PROP 2,P?SYNONYM + W?ROPE + .BYTE 0 + .ENDT + +T?PHOTO:: .TABLE ; TABLE FOR OBJECT PHOTO + .STRL "photo of Uncle Buddy" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PHOTO-F + .PROP 6,P?SYNONYM + W?PHOTO + W?BUDDY + W?UNCLE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?UNCLE + .BYTE 0 + .ENDT + +T?RIGHT-END:: .TABLE ; TABLE FOR OBJECT RIGHT-END + .STRL "right end of the plank" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ENDS-F + .PROP 6,P?SYNONYM + W?END + W?PLANK + W?BOARD + .PROP 1,P?ADJECTIVE + .BYTE A?RIGHT + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-PLANK-F + .BYTE 0 + .ENDT + +T?GLOBAL-OBJECTS:: .TABLE ; TABLE FOR OBJECT GLOBAL-OBJECTS + .STRL "" + .PROP 2,P?THINGS ; INTEGER/CONSTANT PROPERTY + + 0 + .BYTE 0 + .ENDT + +T?PROJECTION-BOOTH:: .TABLE ; TABLE FOR OBJECT PROJECTION-BOOTH + .STRL "Projection Booth" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROJECTION-BOOTH-F + .PROP 1,P?NORTH + .BYTE SCREENING-ROOM + .PROP 2,P?THINGS ; STRING PROPERTY + PT?5 + .PROP 3,P?GLOBAL + .BYTE PROJECTION-SCREEN + .BYTE PROJECTED-IMAGE + .BYTE WINDOW + .PROP 2,P?LDESC ; STRING PROPERTY + STR?85 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?IT:: .TABLE ; TABLE FOR OBJECT IT + .STRL "it" + .PROP 4,P?SYNONYM + W?IT + W?THAT + .BYTE 0 + .ENDT + +T?WALLS:: .TABLE ; TABLE FOR OBJECT WALLS + .STRL "wall" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WALLS-F + .PROP 4,P?SYNONYM + W?WALL + W?WALLS + .BYTE 0 + .ENDT + +T?EAST-GARDEN:: .TABLE ; TABLE FOR OBJECT EAST-GARDEN + .STRL "Garden, East" + .PROP 2,P?EAST ; STRING PROPERTY + STR?185 + .PROP 1,P?SW + .BYTE SOUTH-GARDEN + .PROP 2,P?WEST ; STRING PROPERTY + STR?185 + .PROP 1,P?NW + .BYTE NORTH-GARDEN + .PROP 2,P?THINGS ; STRING PROPERTY + PT?14 + .PROP 4,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?184 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?BLUE-FEET:: .TABLE ; TABLE FOR OBJECT BLUE-FEET + .STRL "pair of blue wax feet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FEET-F + .PROP 4,P?SYNONYM + W?FEET + W?CANDLE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 3,P?ADJECTIVE + .BYTE A?BLUE + .BYTE A?WAX + .BYTE A?PAIR + .BYTE 0 + .ENDT + +T?WAX-COAT-1:: .TABLE ; TABLE FOR OBJECT WAX-COAT-1 + .STRL "wax coating" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAX-COAT-F + .PROP 4,P?SYNONYM + W?WAX + W?COATING + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?WAX + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-WAX-F + .BYTE 0 + .ENDT + +T?CLUB:: .TABLE ; TABLE FOR OBJECT CLUB + .STRL "hairy club" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?CLUB + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?HAIRY + .BYTE 0 + .ENDT + +T?WAX-COAT-2:: .TABLE ; TABLE FOR OBJECT WAX-COAT-2 + .STRL "wax coating" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAX-COAT-F + .PROP 4,P?SYNONYM + W?WAX + W?COATING + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?WAX + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-WAX-F + .BYTE 0 + .ENDT + +T?TOP-LANDING:: .TABLE ; TABLE FOR OBJECT TOP-LANDING + .STRL "Top Landing" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOP-LANDING-F + .PROP 3,P?NORTH + .WORD TO-BEACH + .BYTE 0 + .PROP 3,P?WEST + .WORD TO-&-FROM-TOP-LANDING + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-BEACH + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE STAIRS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?201 + .BYTE 0 + .ENDT + +T?UPPER-BEACH-STAIRS:: .TABLE ; TABLE FOR OBJECT UPPER-BEACH-STAIRS + .STRL "Middle of Beach Stairs" + .PROP 3,P?NORTH + .WORD TO-BEACH + .BYTE 0 + .PROP 1,P?SOUTH + .BYTE TOP-LANDING + .PROP 1,P?UP + .BYTE TOP-LANDING + .PROP 3,P?DOWN + .WORD TO-BEACH + .BYTE 0 + .PROP 2,P?GLOBAL + .BYTE STAIRS + .BYTE GAP + .PROP 2,P?LDESC ; STRING PROPERTY + STR?202 + .BYTE 0 + .ENDT + +T?LIVING-ROOM:: .TABLE ; TABLE FOR OBJECT LIVING-ROOM + .STRL "Living Room" + .PROP 1,P?NORTH + .BYTE DINING-ROOM + .PROP 1,P?EAST + .BYTE FOYER + .PROP 2,P?WEST ; STRING PROPERTY + STR?118 + .PROP 1,P?IN + .BYTE FIREPLACE + .PROP 5,P?GLOBAL + .BYTE PHONE + .BYTE FIREPLACE-GLOBAL + .BYTE SEAT + .BYTE WINDOW + .BYTE SOFA + .PROP 2,P?LDESC ; STRING PROPERTY + STR?117 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?BLUE-CARD:: .TABLE ; TABLE FOR OBJECT BLUE-CARD + .STRL "blue punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?BLUE + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 4 + .BYTE 0 + .ENDT + +T?BLUE-CANDLE:: .TABLE ; TABLE FOR OBJECT BLUE-CANDLE + .STRL "blue wax statuette" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLUE-CANDLE-F + .PROP 6,P?SYNONYM + W?CANDLE + W?STATUE + W?WICK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?WAX + .BYTE A?BLUE + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-CANDLE-F + .BYTE 0 + .ENDT + +T?BRICK-HOLE-GLOBAL:: .TABLE ; TABLE FOR OBJECT BRICK-HOLE-GLOBAL + .STRL "hole" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BRICK-HOLE-GLOBAL-F + .PROP 4,P?SYNONYM + W?HOLE + W?HOLD + .PROP 2,P?ADJECTIVE + .BYTE A?FOOT + .BYTE A?HAND + .BYTE 0 + .ENDT + +T?LADIES-ROOM:: .TABLE ; TABLE FOR OBJECT LADIES-ROOM + .STRL "Ladies' Room" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LADIES-ROOM-F + .PROP 1,P?SOUTH + .BYTE SHORT-HALL + .PROP 2,P?GLOBAL + .BYTE TOILET + .BYTE WATER + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?MASK:: .TABLE ; TABLE FOR OBJECT MASK + .STRL "catcher's mask" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MASK-F + .PROP 2,P?SYNONYM + W?MASK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 1,P?ADJECTIVE + .BYTE A?CATCHER + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?NORTH-GARDEN:: .TABLE ; TABLE FOR OBJECT NORTH-GARDEN + .STRL "Garden, North" + .PROP 1,P?NORTH + .BYTE ENTRANCE-TO-MAZE + .PROP 1,P?SE + .BYTE EAST-GARDEN + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?183 + .PROP 1,P?SW + .BYTE WEST-GARDEN + .PROP 2,P?THINGS ; STRING PROPERTY + PT?16 + .PROP 5,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE WATER + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?188 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?MOP:: .TABLE ; TABLE FOR OBJECT MOP + .STRL "glowing mop" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?MOP + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?GLOWING + .BYTE 0 + .ENDT + +T?BEACH:: .TABLE ; TABLE FOR OBJECT BEACH + .STRL "Beach" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?210 + .PROP 2,P?EAST ; STRING PROPERTY + STR?211 + .PROP 1,P?SOUTH + .BYTE BOTTOM-LANDING + .PROP 2,P?WEST ; STRING PROPERTY + STR?159 + .PROP 2,P?GLOBAL + .BYTE WATER + .BYTE SAND + .PROP 2,P?LDESC ; STRING PROPERTY + STR?209 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?HOUSE:: .TABLE ; TABLE FOR OBJECT HOUSE + .STRL "Aunt Hildegarde's house" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOUSE-F + .PROP 4,P?SYNONYM + W?HOUSE + W?HILDEBUD + .PROP 2,P?ADJECTIVE + .BYTE A?AUNT + .BYTE A?HILDEG + .BYTE 0 + .ENDT + +T?BOMB-SHELTER:: .TABLE ; TABLE FOR OBJECT BOMB-SHELTER + .STRL "Bomb Shelter" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOMB-SHELTER-F + .PROP 1,P?SOUTH + .BYTE TUNNEL + .PROP 3,P?UP + .WORD TO-&-FROM-BOMB-SHELTER + .BYTE 0 + .PROP 1,P?DOWN + .BYTE TUNNEL + .PROP 2,P?THINGS ; STRING PROPERTY + PT?11 + .PROP 3,P?GLOBAL + .BYTE HATCH + .BYTE PLANK + .BYTE HATCH-HOLE + .BYTE 0 + .ENDT + +T?CHIMNEY-1:: .TABLE ; TABLE FOR OBJECT CHIMNEY-1 + .STRL "In the Chimney" + .PROP 3,P?UP + .WORD UP-CHIMNEY + .BYTE 0 + .PROP 3,P?DOWN + .WORD DOWN-CHIMNEY + .BYTE 0 + .PROP 2,P?GLOBAL + .BYTE CHIMNEY + .BYTE BRICK-HOLE-GLOBAL + .PROP 2,P?LDESC ; STRING PROPERTY + STR?129 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?BRICK-HOLE:: .TABLE ; TABLE FOR OBJECT BRICK-HOLE + .STRL "hole" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BRICK-HOLE-F + .PROP 4,P?SYNONYM + W?HOLE + W?HOLD + .PROP 2,P?LDESC ; STRING PROPERTY + STR?128 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 6 + .PROP 2,P?ADJECTIVE + .BYTE A?FOOT + .BYTE A?HAND + .BYTE 0 + .ENDT + +T?NORTHWEST-JUNCTION:: .TABLE ; TABLE FOR OBJECT NORTHWEST-JUNCTION + .STRL "Northwest Junction" + .PROP 3,P?NORTH + .WORD TO-&-FROM-CANNON + .BYTE 0 + .PROP 1,P?EAST + .BYTE ENTRANCE-TO-MAZE + .PROP 1,P?SOUTH + .BYTE SOUTHWEST-JUNCTION + .PROP 5,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE HEDGE-MAZE-OBJ + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?190 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?HANDLES:: .TABLE ; TABLE FOR OBJECT HANDLES + .STRL "brass handles" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HANDLES-F + .PROP 2,P?SYNONYM + W?HANDLE + .PROP 1,P?ADJECTIVE + .BYTE A?BRASS + .BYTE 0 + .ENDT + +T?WEST-GARDEN:: .TABLE ; TABLE FOR OBJECT WEST-GARDEN + .STRL "Garden, West" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?187 + .PROP 1,P?NE + .BYTE NORTH-GARDEN + .PROP 2,P?EAST ; STRING PROPERTY + STR?187 + .PROP 1,P?SE + .BYTE SOUTH-GARDEN + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?187 + .PROP 2,P?WEST ; STRING PROPERTY + STR?187 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?15 + .PROP 4,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?186 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?LADDER:: .TABLE ; TABLE FOR OBJECT LADDER + .STRL "ladder" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LADDER-F + .PROP 2,P?SYNONYM + W?LADDER + .PROP 2,P?FDESC ; STRING PROPERTY + STR?194 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 90 + .PROP 2,P?ADJECTIVE + .BYTE A?HEAVY + .BYTE A?METAL + .BYTE 0 + .ENDT + +T?GAME-ROOM:: .TABLE ; TABLE FOR OBJECT GAME-ROOM + .STRL "Game Room" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE PATIO ; ROOM NAME + .BYTE PATIO-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?EAST + .BYTE SHORT-HALL + .PROP 1,P?SOUTH + .BYTE FOYER + .PROP 1,P?WEST + .BYTE DINING-ROOM + .PROP 2,P?THINGS ; STRING PROPERTY + PT?19 + .PROP 2,P?GLOBAL + .BYTE PATIO-DOOR + .BYTE WINDOW + .PROP 2,P?LDESC ; STRING PROPERTY + STR?224 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?PIPE:: .TABLE ; TABLE FOR OBJECT PIPE + .STRL "pipe" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PIPE-F + .PROP 2,P?SYNONYM + W?PIPE + .BYTE 0 + .ENDT + +T?NORTHEAST-JUNCTION:: .TABLE ; TABLE FOR OBJECT NORTHEAST-JUNCTION + .STRL "Northeast Junction" + .PROP 3,P?NORTH + .WORD TO-&-FROM-CANNON + .BYTE 0 + .PROP 3,P?EAST + .WORD TO-&-FROM-TOP-LANDING + .BYTE 0 + .PROP 1,P?SOUTH + .BYTE SOUTHEAST-JUNCTION + .PROP 1,P?WEST + .BYTE ENTRANCE-TO-MAZE + .PROP 5,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE HEDGE-MAZE-OBJ + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?191 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?MONUMENT:: .TABLE ; TABLE FOR OBJECT MONUMENT + .STRL "monument" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MONUMENT-F + .PROP 2,P?SYNONYM + W?MONUMENT + .BYTE 0 + .ENDT + +T?LOWER-BEACH-STAIRS:: .TABLE ; TABLE FOR OBJECT LOWER-BEACH-STAIRS + .STRL "Middle of Beach Stairs" + .PROP 3,P?UP + .WORD FROM-LOWER-STAIRS + .BYTE 0 + .PROP 1,P?DOWN + .BYTE BOTTOM-LANDING + .PROP 2,P?GLOBAL + .BYTE STAIRS + .BYTE GAP + .PROP 2,P?LDESC ; STRING PROPERTY + STR?205 + .BYTE 0 + .ENDT + +T?RESET-BUTTON:: .TABLE ; TABLE FOR OBJECT RESET-BUTTON + .STRL "reset button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RESET-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?RESET + .BYTE 0 + .ENDT + +T?COMPUTER:: .TABLE ; TABLE FOR OBJECT COMPUTER + .STRL "computer" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COMPUTER-F + .PROP 4,P?SYNONYM + W?COMPUTER + W?SLOT + .BYTE 0 + .ENDT + +T?ORCHIDS:: .TABLE ; TABLE FOR OBJECT ORCHIDS + .STRL "orchids" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLORAL-PSEUDO + .PROP 2,P?SYNONYM + W?ORCHID + .BYTE 0 + .ENDT + +T?CRAWL-SPACE-SOUTH:: .TABLE ; TABLE FOR OBJECT CRAWL-SPACE-SOUTH + .STRL "Crawl Space, South" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CRAWL-SPACE-SOUTH-F + .PROP 1,P?NORTH + .BYTE CRAWL-SPACE-NORTH + .PROP 2,P?THINGS ; STRING PROPERTY + PT?8 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?HOOKS:: .TABLE ; TABLE FOR OBJECT HOOKS + .STRL "pair of metal hooks" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOOKS-F + .PROP 4,P?SYNONYM + W?HOOK + W?HOOKS + .PROP 3,P?ADJECTIVE + .BYTE A?METAL + .BYTE A?PAIR + .BYTE A?HEAVY + .BYTE 0 + .ENDT + +T?ATTIC-CD:: .TABLE ; TABLE FOR OBJECT ATTIC-CD + .STRL "closet door" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ATTIC-CD-F + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?CLOSET + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + WHICH-DOOR? + .BYTE 0 + .ENDT + +T?HEDGE-MAZE:: .TABLE ; TABLE FOR OBJECT HEDGE-MAZE + .STRL "Hedge Maze" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEDGE-MAZE-F + .PROP 1,P?GLOBAL + .BYTE HEDGE-MAZE-OBJ + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?NORTH-NICHE:: .TABLE ; TABLE FOR OBJECT NORTH-NICHE + .STRL "niche" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NICHE-F + .PROP 2,P?SYNONYM + W?NICHE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?VIOLET-CARD:: .TABLE ; TABLE FOR OBJECT VIOLET-CARD + .STRL "violet punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?VIOLET + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 6 + .BYTE 0 + .ENDT + +T?MATCHBOX:: .TABLE ; TABLE FOR OBJECT MATCHBOX + .STRL "matchbox" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MATCHBOX-F + .PROP 4,P?SYNONYM + W?BOX + W?MATCHBOX + .PROP 2,P?FDESC ; STRING PROPERTY + STR?157 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 4 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?ADJECTIVE + .BYTE A?FESTIVE + .BYTE A?CHRISTMAS + .BYTE 0 + .ENDT + +T?FOYER-STAIRS:: .TABLE ; TABLE FOR OBJECT FOYER-STAIRS + .STRL "stairs" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FOYER-STAIRS-F + .PROP 6,P?SYNONYM + W?STAIRS + W?STAIRCASE + W?STEPS + .PROP 1,P?ADJECTIVE + .BYTE A?FOYER + .BYTE 0 + .ENDT + +T?VERTICAL-MAP:: .TABLE ; TABLE FOR OBJECT VERTICAL-MAP + .STRL "yellowed piece of paper" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VERTICAL-MAP-F + .PROP 4,P?SYNONYM + W?MAP + W?PAPER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?YELLOW + .BYTE A?PIECE + .BYTE 0 + .ENDT + +T?BAZOOKA:: .TABLE ; TABLE FOR OBJECT BAZOOKA + .STRL "bazooka" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BAZOOKA-F + .PROP 2,P?SYNONYM + W?BAZOOKA + .BYTE 0 + .ENDT + +T?PLANK:: .TABLE ; TABLE FOR OBJECT PLANK + .STRL "heavy wooden plank" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLANK-F + .PROP 4,P?SYNONYM + W?PLANK + W?BOARD + .PROP 2,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE A?HEAVY + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-PLANK-F + .BYTE 0 + .ENDT + +T?CRAWL-SPACE-DOOR:: .TABLE ; TABLE FOR OBJECT CRAWL-SPACE-DOOR + .STRL "crawl space door" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CRAWL-SPACE-DOOR-F + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ADJECTIVE + .BYTE A?CRAWL + .BYTE A?SPACE + .BYTE 0 + .ENDT + +T?OAK-DOOR:: .TABLE ; TABLE FOR OBJECT OAK-DOOR + .STRL "oak door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ADJECTIVE + .BYTE A?OAK + .BYTE A?FRONT + .BYTE 0 + .ENDT + +T?UPSTAIRS-HALL-WEST:: .TABLE ; TABLE FOR OBJECT UPSTAIRS-HALL-WEST + .STRL "Upstairs Hall, West" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + UPSTAIRS-HALL-F + .PROP 1,P?NORTH + .BYTE BEDROOM-1 + .PROP 1,P?EAST + .BYTE UPSTAIRS-HALL-MIDDLE + .PROP 1,P?SOUTH + .BYTE UPSTAIRS-BATHROOM + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?CLIFF:: .TABLE ; TABLE FOR OBJECT CLIFF + .STRL "Cliff" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLIFF-F + .PROP 3,P?SOUTH + .WORD TO-CANNON-EMPLACEMENT + .BYTE 0 + .PROP 3,P?UP + .WORD TO-CANNON-EMPLACEMENT + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-&-FROM-BOMB-SHELTER + .BYTE 0 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?17 + .PROP 2,P?GLOBAL + .BYTE HATCH + .BYTE HATCH-HOLE + .BYTE 0 + .ENDT + +T?FIRE-HYDRANT:: .TABLE ; TABLE FOR OBJECT FIRE-HYDRANT + .STRL "fire hydrant" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIRE-HYDRANT-F + .PROP 2,P?SYNONYM + W?HYDRANT + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 20 + .PROP 1,P?ADJECTIVE + .BYTE A?FIRE + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?ROOF-2:: .TABLE ; TABLE FOR OBJECT ROOF-2 + .STRL "East End of Roof" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?133 + .PROP 2,P?NE ; STRING PROPERTY + STR?133 + .PROP 2,P?EAST ; STRING PROPERTY + STR?133 + .PROP 2,P?SE ; STRING PROPERTY + STR?133 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?133 + .PROP 2,P?SW ; STRING PROPERTY + STR?133 + .PROP 1,P?WEST + .BYTE ROOF-1 + .PROP 2,P?NW ; STRING PROPERTY + STR?133 + .PROP 3,P?DOWN + .WORD ROOF-TO-CHIMNEY + .BYTE 0 + .PROP 3,P?IN + .WORD ROOF-TO-CHIMNEY + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE CHIMNEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?134 + .BYTE 0 + .ENDT + +T?FOYER:: .TABLE ; TABLE FOR OBJECT FOYER + .STRL "Foyer" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FOYER-F + .PROP 1,P?NORTH + .BYTE GAME-ROOM + .PROP 1,P?EAST + .BYTE OUTSIDE-PARLOR + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE FRONT-PORCH ; ROOM NAME + .BYTE OAK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?WEST + .BYTE LIVING-ROOM + .PROP 3,P?UP + .WORD TO-UPSTAIRS-HALL-MIDDLE + .BYTE 0 + .PROP 3,P?IN + .WORD FOYER-CLOSET-ENTER-F + .BYTE 0 + .PROP 5,P?GLOBAL + .BYTE OAK-DOOR + .BYTE FOYER-CD + .BYTE CLOSET-REF + .BYTE FOYER-STAIRS + .BYTE WINDOW + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?FLASHLIGHT:: .TABLE ; TABLE FOR OBJECT FLASHLIGHT + .STRL "flashlight" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLASHLIGHT-F + .PROP 8,P?SYNONYM + W?FLASHLIGHT + W?LIGHT + W?TORCH + W?LAMP + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 1,P?ADJECTIVE + .BYTE A?FLASH + .BYTE 0 + .ENDT + +T?FIREPLACE-GLOBAL:: .TABLE ; TABLE FOR OBJECT FIREPLACE-GLOBAL + .STRL "fireplace" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIREPLACE-GLOBAL-F + .PROP 4,P?SYNONYM + W?FIREPLACE + W?MORTAR + .BYTE 0 + .ENDT + +T?ON-POOL-2:: .TABLE ; TABLE FOR OBJECT ON-POOL-2 + .STRL "Surface of Pool" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ON-POOL-2-F + .PROP 1,P?NORTH + .BYTE LEDGE + .PROP 2,P?EAST ; STRING PROPERTY + STR?169 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?168 + .PROP 2,P?WEST ; STRING PROPERTY + STR?170 + .PROP 3,P?DOWN + .WORD UNDER-WATER-F + .BYTE 0 + .PROP 2,P?OUT ; STRING PROPERTY + STR?167 + .PROP 1,P?GLOBAL + .BYTE WATER + .BYTE 0 + .ENDT + +T?AUNT:: .TABLE ; TABLE FOR OBJECT AUNT + .STRL "Aunt Hildegarde" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AUNT-F + .PROP 6,P?SYNONYM + W?AUNT + W?HILDEG + W?BURBAN + .PROP 1,P?ADJECTIVE + .BYTE A?AUNT + .BYTE 0 + .ENDT + +T?RING:: .TABLE ; TABLE FOR OBJECT RING + .STRL "Big Diamond Ring" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RING-F + .PROP 2,P?SYNONYM + W?RING + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?ADJECTIVE + .BYTE A?DIAMOND + .BYTE A?BIG + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?BED:: .TABLE ; TABLE FOR OBJECT BED + .STRL "bed" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BED-F + .PROP 6,P?SYNONYM + W?BED + W?BUNK + W?BUNKS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 100 + .PROP 6,P?ADJECTIVE + .BYTE A?ROUND + .BYTE A?TOP + .BYTE A?BOTTOM + .BYTE A?BUNK + .BYTE A?BIG + .BYTE A?FLUFFY + .BYTE 0 + .ENDT + +T?SAND:: .TABLE ; TABLE FOR OBJECT SAND + .STRL "sand" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SAND-F + .PROP 2,P?SYNONYM + W?SAND + .BYTE 0 + .ENDT + +T?SHOVEL:: .TABLE ; TABLE FOR OBJECT SHOVEL + .STRL "shovel" + .PROP 4,P?SYNONYM + W?SHOVEL + W?SPADE + .PROP 2,P?FDESC ; STRING PROPERTY + STR?242 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?MAZE-HOLE:: .TABLE ; TABLE FOR OBJECT MAZE-HOLE + .STRL "hole" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAZE-HOLE-F + .PROP 2,P?SYNONYM + W?HOLE + .PROP 1,P?ADJECTIVE + .BYTE A?GROUND + .BYTE 0 + .ENDT + +T?GLOBAL-ROOM:: .TABLE ; TABLE FOR OBJECT GLOBAL-ROOM + .STRL "room" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GLOBAL-ROOM-F + .PROP 6,P?SYNONYM + W?ROOM + W?AREA + W?PLACE + .BYTE 0 + .ENDT + +T?SLIDE-PROJECTOR:: .TABLE ; TABLE FOR OBJECT SLIDE-PROJECTOR + .STRL "slide projector" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SLIDE-PROJECTOR-F + .PROP 2,P?SYNONYM + W?PROJEC + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?SLIDE + .BYTE 0 + .ENDT + +T?PLANE:: .TABLE ; TABLE FOR OBJECT PLANE + .STRL "" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLANE-F + .PROP 6,P?SYNONYM + W?PLANE + W?AIRPLANE + W?PLANES + .PROP 1,P?ADJECTIVE + .BYTE A?PUNY + .PROP 2,P?SDESC ; STRING PROPERTY + STR?226 + .BYTE 0 + .ENDT + +T?LENS-CAP:: .TABLE ; TABLE FOR OBJECT LENS-CAP + .STRL "lens cap" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LENS-CAP-F + .PROP 4,P?SYNONYM + W?CAP + W?COVER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 3,P?ADJECTIVE + .BYTE A?LENS + .BYTE A?FILM + .BYTE A?PROJEC + .BYTE 0 + .ENDT + +T?FINCH:: .TABLE ; TABLE FOR OBJECT FINCH + .STRL "" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FINCH-F + .PROP 6,P?SYNONYM + W?PIECES + W?FINCH + W?BIRD + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 15 + .PROP 1,P?ADJECTIVE + .BYTE A?MALTESE + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?SDESC ; STRING PROPERTY + STR?137 + .BYTE 0 + .ENDT + +T?PEGS:: .TABLE ; TABLE FOR OBJECT PEGS + .STRL "set of coat pegs" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEGS-F + .PROP 2,P?SYNONYM + W?PEGS + .PROP 2,P?ADJECTIVE + .BYTE A?COAT + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?COMPARTMENT:: .TABLE ; TABLE FOR OBJECT COMPARTMENT + .STRL "small compartment" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COMPARTMENT-F + .PROP 2,P?SYNONYM + W?COMPAR + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 11 + .PROP 1,P?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 + .ENDT + +T?HIM:: .TABLE ; TABLE FOR OBJECT HIM + .STRL "him" + .PROP 4,P?SYNONYM + W?HE + W?HIM + .BYTE 0 + .ENDT + +T?CELLAR-CD:: .TABLE ; TABLE FOR OBJECT CELLAR-CD + .STRL "closet door" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CELLAR-CD-F + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?CLOSET + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + WHICH-DOOR? + .BYTE 0 + .ENDT + +T?GREEN-BUTTON:: .TABLE ; TABLE FOR OBJECT GREEN-BUTTON + .STRL "green button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GREEN-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?GREEN + .BYTE 0 + .ENDT + +T?TOUPEE:: .TABLE ; TABLE FOR OBJECT TOUPEE + .STRL "Uncle Buddy's toupee" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOUPEE-F + .PROP 8,P?SYNONYM + W?TOUPEE + W?RUG + W?HAIR + W?PIECE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 3,P?ADJECTIVE + .BYTE A?BUDDY + .BYTE A?BURBAN + .BYTE A?HAIR + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?HEART-OF-MAZE:: .TABLE ; TABLE FOR OBJECT HEART-OF-MAZE + .STRL "Hedge Maze" + .PROP 3,P?NORTH + .WORD OUT-OF-HEART-OF-MAZE + .BYTE 0 + .PROP 2,P?NE ; STRING PROPERTY + STR?240 + .PROP 2,P?EAST ; STRING PROPERTY + STR?240 + .PROP 2,P?SE ; STRING PROPERTY + STR?240 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?240 + .PROP 2,P?SW ; STRING PROPERTY + STR?240 + .PROP 2,P?WEST ; STRING PROPERTY + STR?240 + .PROP 2,P?NW ; STRING PROPERTY + STR?240 + .PROP 2,P?DOWN ; STRING PROPERTY + STR?241 + .PROP 1,P?GLOBAL + .BYTE HEDGE-MAZE-OBJ + .PROP 2,P?LDESC ; STRING PROPERTY + STR?239 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?RED-CARD:: .TABLE ; TABLE FOR OBJECT RED-CARD + .STRL "red punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?RED + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 0 + .BYTE 0 + .ENDT + +T?GUN:: .TABLE ; TABLE FOR OBJECT GUN + .STRL "gun" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?GUN + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 3,P?ADJECTIVE + .BYTE A?WHIP + .BYTE A?WHIPPED + .BYTE A?CREAM + .BYTE 0 + .ENDT + +T?GRATER:: .TABLE ; TABLE FOR OBJECT GRATER + .STRL "Mama Maggio's cheese grater" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GRATER-F + .PROP 4,P?SYNONYM + W?GRATER + W?SHREDDER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 4,P?ADJECTIVE + .BYTE A?MAGGIO + .BYTE A?CHEESE + .BYTE A?MAMA + .BYTE A?MAMA'S + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?ON-POOL-1:: .TABLE ; TABLE FOR OBJECT ON-POOL-1 + .STRL "Surface of Grotto Pool" + .PROP 1,P?NORTH + .BYTE INLET + .PROP 3,P?EAST + .WORD TO-BOAT-DOCK + .BYTE 0 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?163 + .PROP 2,P?WEST ; STRING PROPERTY + STR?162 + .PROP 3,P?UP + .WORD TO-BOAT-DOCK + .BYTE 0 + .PROP 3,P?DOWN + .WORD UNDER-WATER-F + .BYTE 0 + .PROP 3,P?OUT + .WORD TO-BOAT-DOCK + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?161 + .BYTE 0 + .ENDT + +T?SACK-WINDOW:: .TABLE ; TABLE FOR OBJECT SACK-WINDOW + .STRL "window" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SACK-WINDOW-F + .PROP 2,P?SYNONYM + W?WINDOW + .BYTE 0 + .ENDT + +T?PLAQUE:: .TABLE ; TABLE FOR OBJECT PLAQUE + .STRL "plaque" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLAQUE-F + .PROP 2,P?SYNONYM + W?PLAQUE + .BYTE 0 + .ENDT + +T?HEART-OF-MAZE-HOLE:: .TABLE ; TABLE FOR OBJECT HEART-OF-MAZE-HOLE + .STRL "hole" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEART-OF-MAZE-HOLE-F + .PROP 2,P?SYNONYM + W?HOLE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 11 + .BYTE 0 + .ENDT + +T?PORTABLE-WATER:: .TABLE ; TABLE FOR OBJECT PORTABLE-WATER + .STRL "water" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PORTABLE-WATER-F + .PROP 2,P?SYNONYM + W?WATER + .BYTE 0 + .ENDT + +T?SAW:: .TABLE ; TABLE FOR OBJECT SAW + .STRL "buzz saw" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SAW-F + .PROP 6,P?SYNONYM + W?SAW + W?BLADE + W?BELT + .PROP 5,P?ADJECTIVE + .BYTE A?SAW + .BYTE A?BUZZ + .BYTE A?LARGE + .BYTE A?STEEL + .BYTE A?CONVEYOR + .BYTE 0 + .ENDT + +T?BEDROOM-1:: .TABLE ; TABLE FOR OBJECT BEDROOM-1 + .STRL "Master Bedroom" + .PROP 1,P?SOUTH + .BYTE UPSTAIRS-HALL-WEST + .PROP 4,P?GLOBAL + .BYTE WINDOW + .BYTE SEAT + .BYTE BED + .BYTE PHONE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?139 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?NOTE:: .TABLE ; TABLE FOR OBJECT NOTE + .STRL "note" + .PROP 4,P?SYNONYM + W?NOTE + W?PAPER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?215 + .BYTE 0 + .ENDT + +T?HATCH:: .TABLE ; TABLE FOR OBJECT HATCH + .STRL "hatch" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HATCH-F + .PROP 2,P?SYNONYM + W?HATCH + .PROP 1,P?ADJECTIVE + .BYTE A?STEEL + .BYTE 0 + .ENDT + +T?SOUTHEAST-JUNCTION:: .TABLE ; TABLE FOR OBJECT SOUTHEAST-JUNCTION + .STRL "Southeast Junction" + .PROP 1,P?NORTH + .BYTE NORTHEAST-JUNCTION + .PROP 3,P?SOUTH + .WORD TO-&-FROM-SOUTH-JUNCTION + .BYTE 0 + .PROP 1,P?WEST + .BYTE PATIO + .PROP 3,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .PROP 2,P?LDESC ; STRING PROPERTY + STR?180 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?THEM:: .TABLE ; TABLE FOR OBJECT THEM + .STRL "them" + .PROP 4,P?SYNONYM + W?THEY + W?THEM + .BYTE 0 + .ENDT + +T?FOYER-CD:: .TABLE ; TABLE FOR OBJECT FOYER-CD + .STRL "closet door" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FOYER-CD-F + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?CLOSET + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + WHICH-DOOR? + .BYTE 0 + .ENDT + +T?DOG:: .TABLE ; TABLE FOR OBJECT DOG + .STRL "Atomic Chihuahua" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOG-F + .PROP 6,P?SYNONYM + W?CHIHUAHUA + W?DOG + W?MONSTER + .PROP 1,P?ADJECTIVE + .BYTE A?ATOMIC + .BYTE 0 + .ENDT + +T?ENTRANCE-TO-MAZE:: .TABLE ; TABLE FOR OBJECT ENTRANCE-TO-MAZE + .STRL "Entrance to Hedge Maze" + .PROP 3,P?NORTH + .WORD ENTER-HM + .BYTE 0 + .PROP 1,P?EAST + .BYTE NORTHEAST-JUNCTION + .PROP 1,P?SOUTH + .BYTE NORTH-GARDEN + .PROP 1,P?WEST + .BYTE NORTHWEST-JUNCTION + .PROP 1,P?GLOBAL + .BYTE HEDGE-MAZE-OBJ + .PROP 2,P?LDESC ; STRING PROPERTY + STR?236 + .BYTE 0 + .ENDT + +T?BAG:: .TABLE ; TABLE FOR OBJECT BAG + .STRL "boomerang mail bag" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 4,P?SYNONYM + W?BAG + W?MAILBAG + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?BOOMERANG + .BYTE A?MAIL + .BYTE 0 + .ENDT + +T?UPSTAIRS-CD:: .TABLE ; TABLE FOR OBJECT UPSTAIRS-CD + .STRL "closet door" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + UPSTAIRS-CD-F + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?CLOSET + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + WHICH-DOOR? + .BYTE 0 + .ENDT + +T?HERMAN:: .TABLE ; TABLE FOR OBJECT HERMAN + .STRL "Cousin Herman" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HERMAN-F + .PROP 4,P?SYNONYM + W?HERMAN + W?BEAUMONT + .PROP 1,P?ADJECTIVE + .BYTE A?COUSIN + .BYTE 0 + .ENDT + +T?STAIRS:: .TABLE ; TABLE FOR OBJECT STAIRS + .STRL "stairs" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STAIRS-F + .PROP 6,P?SYNONYM + W?STAIRS + W?STAIRCASE + W?STEPS + .PROP 1,P?ADJECTIVE + .BYTE A?STEEP + .BYTE 0 + .ENDT + +T?SEAT:: .TABLE ; TABLE FOR OBJECT SEAT + .STRL "seat" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SEAT-F + .PROP 8,P?SYNONYM + W?SEAT + W?SEATS + W?CHAIR + W?CHAIRS + .PROP 2,P?ADJECTIVE + .BYTE A?ARM + .BYTE A?PLUSH + .BYTE 0 + .ENDT + +T?CLOSET:: .TABLE ; TABLE FOR OBJECT CLOSET + .STRL "Closet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLOSET-F + .PROP 3,P?NORTH + .WORD CLOSET-EXIT-F + .BYTE 0 + .PROP 3,P?OUT + .WORD CLOSET-EXIT-F + .BYTE 0 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?18 + .PROP 4,P?GLOBAL + .BYTE CLOSET-REF + .BYTE FOYER-CD + .BYTE CELLAR-CD + .BYTE UPSTAIRS-CD + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?YOUR-FEET:: .TABLE ; TABLE FOR OBJECT YOUR-FEET + .STRL "your feet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + YOUR-FEET-F + .PROP 4,P?SYNONYM + W?FOOT + W?FEET + .PROP 1,P?ADJECTIVE + .BYTE A?MY + .BYTE 0 + .ENDT + +T?HORIZONTAL-MAP:: .TABLE ; TABLE FOR OBJECT HORIZONTAL-MAP + .STRL "thin piece of paper" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HORIZONTAL-MAP-F + .PROP 4,P?SYNONYM + W?MAP + W?PAPER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?THIN + .BYTE A?PIECE + .BYTE 0 + .ENDT + +T?MENS-ROOM:: .TABLE ; TABLE FOR OBJECT MENS-ROOM + .STRL "Men's Room" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MENS-ROOM-F + .PROP 1,P?NORTH + .BYTE SHORT-HALL + .PROP 2,P?GLOBAL + .BYTE TOILET + .BYTE WATER + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?PERSIAN-RUG:: .TABLE ; TABLE FOR OBJECT PERSIAN-RUG + .STRL "Persian rug" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PERSIAN-RUG-F + .PROP 4,P?SYNONYM + W?RUG + W?CARPET + .PROP 1,P?ADJECTIVE + .BYTE A?PERSIAN + .BYTE 0 + .ENDT + +T?GREEN-MATCH:: .TABLE ; TABLE FOR OBJECT GREEN-MATCH + .STRL "green match" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MATCH-F + .PROP 4,P?SYNONYM + W?MATCH + W?MATCHES + .PROP 2,P?FDESC ; STRING PROPERTY + STR?158 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?GREEN + .BYTE A?WOODEN + .BYTE A?STICK + .PROP 2,P?MATCH-LIFE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?CANNON:: .TABLE ; TABLE FOR OBJECT CANNON + .STRL "cannon" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CANNON-F + .PROP 4,P?SYNONYM + W?CANNON + W?WHEEL + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .BYTE 0 + .ENDT + +T?RED-WAX:: .TABLE ; TABLE FOR OBJECT RED-WAX + .STRL "red candle wax" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAX-F + .PROP 2,P?SYNONYM + W?WAX + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?RED + .BYTE A?CANDLE + .BYTE A?MELTED + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-WAX-F + .BYTE 0 + .ENDT + +T?DISPLAY-LIGHTS:: .TABLE ; TABLE FOR OBJECT DISPLAY-LIGHTS + .STRL "display lights" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DISPLAY-LIGHTS-F + .PROP 4,P?SYNONYM + W?LIGHTS + W?DISPLAY + .PROP 1,P?ADJECTIVE + .BYTE A?COMPUTER + .BYTE 0 + .ENDT + +T?ATTIC-DOOR:: .TABLE ; TABLE FOR OBJECT ATTIC-DOOR + .STRL "panel" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ATTIC-DOOR-F + .PROP 4,P?SYNONYM + W?PANEL + W?LADDER + .PROP 2,P?ADJECTIVE + .BYTE A?FOLDING + .BYTE A?ATTIC + .BYTE 0 + .ENDT + +T?WHITE-BUTTON:: .TABLE ; TABLE FOR OBJECT WHITE-BUTTON + .STRL "white button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WHITE-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?WHITE + .BYTE 0 + .ENDT + +T?WATER:: .TABLE ; TABLE FOR OBJECT WATER + .STRL "water" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WATER-F + .PROP 8,P?SYNONYM + W?WATER + W?OCEAN + W?SEA + W?POOL + .PROP 2,P?ADJECTIVE + .BYTE A?SALT + .BYTE A?SEA + .BYTE 0 + .ENDT + +T?ATTIC:: .TABLE ; TABLE FOR OBJECT ATTIC + .STRL "Attic" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ATTIC-F + .PROP 3,P?SOUTH + .WORD ATTIC-CLOSET-ENTER-F + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-&-FROM-ATTIC + .BYTE 0 + .PROP 2,P?GLOBAL + .BYTE ATTIC-DOOR + .BYTE ATTIC-CD + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?GROUND:: .TABLE ; TABLE FOR OBJECT GROUND + .STRL "ground" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GROUND-F + .PROP 4,P?SYNONYM + W?GROUND + W?FLOOR + .BYTE 0 + .ENDT + +T?PROJECTION-SCREEN:: .TABLE ; TABLE FOR OBJECT PROJECTION-SCREEN + .STRL "viewing screen" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROJECTION-SCREEN-F + .PROP 2,P?SYNONYM + W?SCREEN + .PROP 2,P?ADJECTIVE + .BYTE A?VIEWING + .BYTE A?MOVIE + .BYTE 0 + .ENDT + +T?NEWSLETTER:: .TABLE ; TABLE FOR OBJECT NEWSLETTER + .STRL "copy of The Status Line" + .PROP 8,P?SYNONYM + W?NEWSLETTER + W?LINE + W?TIMES + W?PAPER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 4,P?ADJECTIVE + .BYTE A?NEW + .BYTE A?ZORK + .BYTE A?STATUS + .BYTE A?COPY + .PROP 2,P?TEXT ; STRING PROPERTY + STR?141 + .BYTE 0 + .ENDT + +T?SOUTH-GARDEN:: .TABLE ; TABLE FOR OBJECT SOUTH-GARDEN + .STRL "Garden, South" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?183 + .PROP 1,P?NE + .BYTE EAST-GARDEN + .PROP 1,P?SOUTH + .BYTE PATIO + .PROP 1,P?NW + .BYTE WEST-GARDEN + .PROP 2,P?THINGS ; STRING PROPERTY + PT?13 + .PROP 4,P?GLOBAL + .BYTE HOUSE + .BYTE CHIMNEY + .BYTE GARDEN + .BYTE GARDEN-WALLS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?182 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?NOT-HERE-OBJECT:: .TABLE ; TABLE FOR OBJECT NOT-HERE-OBJECT + .STRL "that" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NOT-HERE-OBJECT-F + .BYTE 0 + .ENDT + +T?RED-CANDLE:: .TABLE ; TABLE FOR OBJECT RED-CANDLE + .STRL "red wax statuette" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RED-CANDLE-F + .PROP 6,P?SYNONYM + W?CANDLE + W?STATUE + W?WICK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?WAX + .BYTE A?RED + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-CANDLE-F + .BYTE 0 + .ENDT + +T?FRONT-PORCH:: .TABLE ; TABLE FOR OBJECT FRONT-PORCH + .STRL "Front Porch" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE FOYER ; ROOM NAME + .BYTE OAK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?SOUTH + .BYTE SOUTH-JUNCTION + .PROP 5,P?IN ; DOOR EXIT + .BYTE FOYER ; ROOM NAME + .BYTE OAK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 3,P?GLOBAL + .BYTE OAK-DOOR + .BYTE HOUSE + .BYTE CHIMNEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?195 + .BYTE 0 + .ENDT + +T?GAP:: .TABLE ; TABLE FOR OBJECT GAP + .STRL "gap" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GAP-F + .PROP 2,P?SYNONYM + W?GAP + .PROP 1,P?ADJECTIVE + .BYTE A?WIDE + .BYTE 0 + .ENDT + +T?INTNUM:: .TABLE ; TABLE FOR OBJECT INTNUM + .STRL "number" + .PROP 2,P?SYNONYM + W?INTNUM + .BYTE 0 + .ENDT + +T?SKIS:: .TABLE ; TABLE FOR OBJECT SKIS + .STRL "pair of skis" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SKIS-F + .PROP 2,P?SYNONYM + W?SKIS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 25 + .PROP 2,P?ADJECTIVE + .BYTE A?PAIR + .BYTE A?DOWNHILL + .BYTE 0 + .ENDT + +T?BEDROOM-3:: .TABLE ; TABLE FOR OBJECT BEDROOM-3 + .STRL "Guest Room" + .PROP 1,P?NORTH + .BYTE UPSTAIRS-HALL-EAST + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE SEAT + .BYTE BED + .PROP 2,P?LDESC ; STRING PROPERTY + STR?140 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?ROUND-POST:: .TABLE ; TABLE FOR OBJECT ROUND-POST + .STRL "dusty pillar" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POST-F + .PROP 2,P?SYNONYM + W?PILLAR + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?DUSTY + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?FILM-PROJECTOR:: .TABLE ; TABLE FOR OBJECT FILM-PROJECTOR + .STRL "film projector" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FILM-PROJECTOR-F + .PROP 2,P?SYNONYM + W?PROJEC + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 13 + .PROP 2,P?ADJECTIVE + .BYTE A?FILM + .BYTE A?SIMPLEX + .BYTE 0 + .ENDT + +T?CRAWL-SPACE-NORTH:: .TABLE ; TABLE FOR OBJECT CRAWL-SPACE-NORTH + .STRL "Crawl Space, North" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CRAWL-SPACE-NORTH-F + .PROP 3,P?NORTH + .WORD TO-FIRST-SECRET-ROOM + .BYTE 0 + .PROP 3,P?SOUTH + .WORD TO-CRAWL-SPACE-SOUTH + .BYTE 0 + .PROP 5,P?UP ; DOOR EXIT + .BYTE PARLOR ; ROOM NAME + .BYTE CRAWL-SPACE-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?THINGS ; STRING PROPERTY + PT?7 + .PROP 1,P?GLOBAL + .BYTE CRAWL-SPACE-DOOR + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?CEILING:: .TABLE ; TABLE FOR OBJECT CEILING + .STRL "ceiling" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CEILING-F + .PROP 2,P?SYNONYM + W?CEILING + .BYTE 0 + .ENDT + +T?MANTLE:: .TABLE ; TABLE FOR OBJECT MANTLE + .STRL "mantle" + .PROP 2,P?SYNONYM + W?MANTLE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 60 + .BYTE 0 + .ENDT + +T?PHONE:: .TABLE ; TABLE FOR OBJECT PHONE + .STRL "telephone" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PHONE-F + .PROP 6,P?SYNONYM + W?PHONE + W?TELEPHONE + W?RECEIVER + .BYTE 0 + .ENDT + +T?FILM-PROJECTOR-LENS:: .TABLE ; TABLE FOR OBJECT FILM-PROJECTOR-LENS + .STRL "film projector lens" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FILM-PROJECTOR-LENS-F + .PROP 2,P?SYNONYM + W?LENS + .PROP 2,P?ADJECTIVE + .BYTE A?FILM + .BYTE A?PROJEC + .BYTE 0 + .ENDT + +T?DUMMY-OBJECT:: .TABLE ; TABLE FOR OBJECT DUMMY-OBJECT + .STRL "" + .BYTE 0 + .ENDT + +T?SLIDE-PROJECTOR-LENS:: .TABLE ; TABLE FOR OBJECT SLIDE-PROJECTOR-LENS + .STRL "slide projector lens" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SLIDE-PROJECTOR-LENS-F + .PROP 2,P?SYNONYM + W?LENS + .PROP 2,P?ADJECTIVE + .BYTE A?SLIDE + .BYTE A?PROJEC + .BYTE 0 + .ENDT + +T?SACK:: .TABLE ; TABLE FOR OBJECT SACK + .STRL "cloth sack" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SACK-F + .PROP 4,P?SYNONYM + W?SACK + W?BAG + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 15 + .PROP 3,P?ADJECTIVE + .BYTE A?CLOTH + .BYTE A?BLUE + .BYTE A?VELVET + .BYTE 0 + .ENDT + +T?UNDERPASS-2:: .TABLE ; TABLE FOR OBJECT UNDERPASS-2 + .STRL "Underwater Passage" + .PROP 3,P?EAST + .WORD TO-UNDERPASS-EAST + .BYTE 0 + .PROP 1,P?UP + .BYTE IN-POOL-2 + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?166 + .BYTE 0 + .ENDT + +T?RED-BUTTON:: .TABLE ; TABLE FOR OBJECT RED-BUTTON + .STRL "red button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RED-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?RED + .BYTE 0 + .ENDT + +T?FIRST-SECRET-ROOM:: .TABLE ; TABLE FOR OBJECT FIRST-SECRET-ROOM + .STRL "Small Passage" + .PROP 1,P?SOUTH + .BYTE CRAWL-SPACE-NORTH + .PROP 2,P?LDESC ; STRING PROPERTY + STR?98 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?WALL-SAFE:: .TABLE ; TABLE FOR OBJECT WALL-SAFE + .STRL "wall safe" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WALL-SAFE-F + .PROP 4,P?SYNONYM + W?DIAL + W?SAFE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 21 + .PROP 1,P?ADJECTIVE + .BYTE A?WALL + .BYTE 0 + .ENDT + +T?IN-POOL-2:: .TABLE ; TABLE FOR OBJECT IN-POOL-2 + .STRL "Underwater" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + IN-POOL-2-F + .PROP 3,P?UP + .WORD OUT-OF-WATER-F + .BYTE 0 + .PROP 1,P?DOWN + .BYTE UNDERPASS-2 + .PROP 1,P?GLOBAL + .BYTE WATER + .BYTE 0 + .ENDT + +T?BOTTOM-LANDING:: .TABLE ; TABLE FOR OBJECT BOTTOM-LANDING + .STRL "Bottom Landing" + .PROP 1,P?NORTH + .BYTE BEACH + .PROP 2,P?EAST ; STRING PROPERTY + STR?208 + .PROP 3,P?WEST + .WORD WALKWAY-TO-BOAT-DOCK + .BYTE 0 + .PROP 1,P?UP + .BYTE LOWER-BEACH-STAIRS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?207 + .BYTE 0 + .ENDT + +T?TANK:: .TABLE ; TABLE FOR OBJECT TANK + .STRL "" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TANK-F + .PROP 4,P?SYNONYM + W?TANK + W?TANKS + .PROP 1,P?ADJECTIVE + .BYTE A?TINY + .PROP 2,P?SDESC ; STRING PROPERTY + STR?225 + .BYTE 0 + .ENDT + +T?PILE-OF-BALLS:: .TABLE ; TABLE FOR OBJECT PILE-OF-BALLS + .STRL "pile of cannon balls" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PILE-OF-BALLS-F + .PROP 6,P?SYNONYM + W?BALL + W?BALLS + W?PILE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 3,P?ADJECTIVE + .BYTE A?CANNON + .BYTE A?PILE + .BYTE A?STACK + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-BALL-F + .BYTE 0 + .ENDT + +T?FUSE:: .TABLE ; TABLE FOR OBJECT FUSE + .STRL "fuse" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FUSE-F + .PROP 2,P?SYNONYM + W?FUSE + .PROP 1,P?ADJECTIVE + .BYTE A?CANNON + .BYTE 0 + .ENDT + +T?BEDROOM-2:: .TABLE ; TABLE FOR OBJECT BEDROOM-2 + .STRL "Bedroom" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BEDROOM-2-F + .PROP 1,P?SOUTH + .BYTE UPSTAIRS-HALL-EAST + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE SEAT + .BYTE BED + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?FILM:: .TABLE ; TABLE FOR OBJECT FILM + .STRL "strip of film" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FILM-F + .PROP 4,P?SYNONYM + W?FILM + W?STRIP + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?FILM + .BYTE 0 + .ENDT + +T?DINING-ROOM-TABLE:: .TABLE ; TABLE FOR OBJECT DINING-ROOM-TABLE + .STRL "table" + .PROP 2,P?SYNONYM + W?TABLE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .PROP 1,P?ADJECTIVE + .BYTE A?WALNUT + .BYTE 0 + .ENDT + +T?SOUTH-NICHE:: .TABLE ; TABLE FOR OBJECT SOUTH-NICHE + .STRL "niche" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NICHE-F + .PROP 2,P?SYNONYM + W?NICHE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?TUNNEL:: .TABLE ; TABLE FOR OBJECT TUNNEL + .STRL "Tunnel" + .PROP 1,P?SOUTH + .BYTE LEDGE + .PROP 1,P?UP + .BYTE BOMB-SHELTER + .PROP 1,P?GLOBAL + .BYTE ROPE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?172 + .BYTE 0 + .ENDT + +T?BLUE-BUTTON:: .TABLE ; TABLE FOR OBJECT BLUE-BUTTON + .STRL "blue button" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLUE-BUTTON-F + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 1,P?ADJECTIVE + .BYTE A?BLUE + .BYTE 0 + .ENDT + +T?SWORD:: .TABLE ; TABLE FOR OBJECT SWORD + .STRL "elvish sword of great antiquity" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?SWORD + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?ELVISH + .BYTE 0 + .ENDT + +T?HOPPER:: .TABLE ; TABLE FOR OBJECT HOPPER + .STRL "hopper" + .PROP 2,P?SYNONYM + W?HOPPER + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 8 + .PROP 2,P?ADJECTIVE + .BYTE A?CARD + .BYTE A?PUNCH + .BYTE 0 + .ENDT + +T?BRICK:: .TABLE ; TABLE FOR OBJECT BRICK + .STRL "brick" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BRICK-F + .PROP 2,P?SYNONYM + W?BRICK + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 1,P?ADJECTIVE + .BYTE A?LOOSE + .BYTE 0 + .ENDT + +T?TOILET:: .TABLE ; TABLE FOR OBJECT TOILET + .STRL "toilet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOILET-F + .PROP 8,P?SYNONYM + W?TOILET + W?JOHN + W?SEAT + W?POT + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .BYTE 0 + .ENDT + +T?CANNON-EMPLACEMENT:: .TABLE ; TABLE FOR OBJECT CANNON-EMPLACEMENT + .STRL "Cannon Emplacement" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CANNON-EMPLACEMENT-F + .PROP 3,P?NORTH + .WORD TO-CLIFF + .BYTE 0 + .PROP 3,P?EAST + .WORD TO-&-FROM-CANNON + .BYTE 0 + .PROP 3,P?WEST + .WORD TO-&-FROM-CANNON + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-CLIFF + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE WATER + .BYTE 0 + .ENDT + +T?TRUNK:: .TABLE ; TABLE FOR OBJECT TRUNK + .STRL "dusty trunk" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TRUNK-F + .PROP 2,P?SYNONYM + W?TRUNK + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .PROP 1,P?ADJECTIVE + .BYTE A?DUSTY + .BYTE 0 + .ENDT + +T?CLIPPERS:: .TABLE ; TABLE FOR OBJECT CLIPPERS + .STRL "giant nail clippers" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROP-F + .PROP 2,P?SYNONYM + W?CLIPPERS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?GIANT + .BYTE A?NAIL + .BYTE 0 + .ENDT + +T?PIANO:: .TABLE ; TABLE FOR OBJECT PIANO + .STRL "piano" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PIANO-F + .PROP 4,P?SYNONYM + W?PIANO + W?LID + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 75 + .BYTE 0 + .ENDT + +T?FIREPLACE:: .TABLE ; TABLE FOR OBJECT FIREPLACE + .STRL "Fireplace" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIREPLACE-F + .PROP 1,P?EAST + .BYTE LIVING-ROOM + .PROP 3,P?UP + .WORD UP-CHIMNEY + .BYTE 0 + .PROP 1,P?OUT + .BYTE LIVING-ROOM + .PROP 2,P?GLOBAL + .BYTE FIREPLACE-GLOBAL + .BYTE CHIMNEY + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?PROJECTED-IMAGE:: .TABLE ; TABLE FOR OBJECT PROJECTED-IMAGE + .STRL "image" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROJECTED-IMAGE-F + .PROP 8,P?SYNONYM + W?IMAGE + W?WORDS + W?BITS + W?PIECES + .PROP 2,P?ADJECTIVE + .BYTE A?BLURRED + .BYTE A?WASHED + .BYTE 0 + .ENDT + +T?MAILBOX:: .TABLE ; TABLE FOR OBJECT MAILBOX + .STRL "Buck Palace-endorsed, regulation mailbox" + .PROP 4,P?SYNONYM + W?BOX + W?MAILBOX + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 11 + .PROP 1,P?ADJECTIVE + .BYTE A?MAIL + .BYTE 0 + .ENDT + +T?SLIDE:: .TABLE ; TABLE FOR OBJECT SLIDE + .STRL "slide" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SLIDE-F + .PROP 4,P?SYNONYM + W?SLIDE + W?TRANSPARENCY + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?BS-SAFE:: .TABLE ; TABLE FOR OBJECT BS-SAFE + .STRL "safe" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BS-SAFE-F + .PROP 4,P?SYNONYM + W?DIAL + W?SAFE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 33 + .PROP 1,P?ADJECTIVE + .BYTE A?BIG + .BYTE 0 + .ENDT + +T?DOOR-BELL:: .TABLE ; TABLE FOR OBJECT DOOR-BELL + .STRL "doorbell" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOOR-BELL-F + .PROP 8,P?SYNONYM + W?BELL + W?CHIME + W?BUZZER + W?DOORBELL + .PROP 1,P?ADJECTIVE + .BYTE A?DOOR + .BYTE 0 + .ENDT + +T?RUBBER-STAMP:: .TABLE ; TABLE FOR OBJECT RUBBER-STAMP + .STRL "Buck Palace's large rubber stamp" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RUBBER-STAMP-F + .PROP 2,P?SYNONYM + W?STAMP + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?RUBBER + .BYTE A?POSTAL + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?CLOSET-TOP:: .TABLE ; TABLE FOR OBJECT CLOSET-TOP + .STRL "Top of Closet" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLOSET-TOP-F + .PROP 3,P?NORTH + .WORD CLOSET-TOP-EXIT + .BYTE 0 + .PROP 3,P?OUT + .WORD CLOSET-TOP-EXIT + .BYTE 0 + .PROP 4,P?GLOBAL + .BYTE FOYER-CD + .BYTE UPSTAIRS-CD + .BYTE ATTIC-CD + .BYTE CLOSET-REF + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?OUTSIDE-PARLOR:: .TABLE ; TABLE FOR OBJECT OUTSIDE-PARLOR + .STRL "Hallway" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OUTSIDE-PARLOR-F + .PROP 1,P?EAST + .BYTE PARLOR + .PROP 1,P?WEST + .BYTE FOYER + .PROP 1,P?GLOBAL + .BYTE WINDOW + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?UPSTAIRS-HALL-MIDDLE:: .TABLE ; TABLE FOR OBJECT UPSTAIRS-HALL-MIDDLE + .STRL "Upstairs Hall, Middle" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + UPSTAIRS-HALL-MIDDLE-F + .PROP 1,P?EAST + .BYTE UPSTAIRS-HALL-EAST + .PROP 3,P?SOUTH + .WORD UPSTAIRS-CLOSET-ENTER-F + .BYTE 0 + .PROP 1,P?WEST + .BYTE UPSTAIRS-HALL-WEST + .PROP 3,P?UP + .WORD TO-&-FROM-ATTIC + .BYTE 0 + .PROP 3,P?DOWN + .WORD TO-FOYER-F + .BYTE 0 + .PROP 3,P?IN + .WORD UPSTAIRS-CLOSET-ENTER-F + .BYTE 0 + .PROP 4,P?GLOBAL + .BYTE FOYER-STAIRS + .BYTE ATTIC-DOOR + .BYTE UPSTAIRS-CD + .BYTE CLOSET-REF + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?IN-POOL-1:: .TABLE ; TABLE FOR OBJECT IN-POOL-1 + .STRL "Grotto, Underwater" + .PROP 3,P?UP + .WORD OUT-OF-WATER-F + .BYTE 0 + .PROP 1,P?DOWN + .BYTE UNDERPASS-1 + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?164 + .BYTE 0 + .ENDT + +T?SHORT-HALL:: .TABLE ; TABLE FOR OBJECT SHORT-HALL + .STRL "Short Hall" + .PROP 1,P?NORTH + .BYTE LADIES-ROOM + .PROP 1,P?EAST + .BYTE SCREENING-ROOM + .PROP 1,P?SOUTH + .BYTE MENS-ROOM + .PROP 1,P?WEST + .BYTE GAME-ROOM + .PROP 1,P?GLOBAL + .BYTE WINDOW + .PROP 2,P?LDESC ; STRING PROPERTY + STR?233 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?LETTER:: .TABLE ; TABLE FOR OBJECT LETTER + .STRL "Aunt Hildegarde's letter" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LETTER-F + .PROP 2,P?SYNONYM + W?LETTER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?AUNT + .BYTE A?HILDEG + .BYTE 0 + .ENDT + +T?ORANGE-CARD:: .TABLE ; TABLE FOR OBJECT ORANGE-CARD + .STRL "orange punch card" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PUNCH-CARD-F + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?PUNCH + .BYTE A?ORANGE + .BYTE A?CARDS + .PROP 2,P?CARD-NUM ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?FIRE:: .TABLE ; TABLE FOR OBJECT FIRE + .STRL "small, smoldering fire" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIRE-F + .PROP 4,P?SYNONYM + W?FIRE + W?PIT + .PROP 1,P?ADJECTIVE + .BYTE A?SMOLDERING + .BYTE 0 + .ENDT + +T?SCREENING-ROOM:: .TABLE ; TABLE FOR OBJECT SCREENING-ROOM + .STRL "Screening Room" + .PROP 1,P?SOUTH + .BYTE PROJECTION-BOOTH + .PROP 1,P?WEST + .BYTE SHORT-HALL + .PROP 4,P?GLOBAL + .BYTE SEAT + .BYTE PROJECTION-SCREEN + .BYTE PROJECTED-IMAGE + .BYTE WINDOW + .PROP 2,P?LDESC ; STRING PROPERTY + STR?96 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?BOAT-DOCK:: .TABLE ; TABLE FOR OBJECT BOAT-DOCK + .STRL "Grotto" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOAT-DOCK-F + .PROP 3,P?NORTH + .WORD WALKWAY-TO-BOAT-DOCK + .BYTE 0 + .PROP 2,P?EAST ; STRING PROPERTY + STR?160 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?160 + .PROP 2,P?WEST ; STRING PROPERTY + STR?159 + .PROP 2,P?DOWN ; STRING PROPERTY + STR?159 + .PROP 1,P?GLOBAL + .BYTE WATER + .BYTE 0 + .ENDT + +T?WHITE-WAX:: .TABLE ; TABLE FOR OBJECT WHITE-WAX + .STRL "white candle wax" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAX-F + .PROP 2,P?SYNONYM + W?WAX + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .PROP 3,P?ADJECTIVE + .BYTE A?WHITE + .BYTE A?CANDLE + .BYTE A?MELTED + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-WAX-F + .BYTE 0 + .ENDT + +T?GARDEN:: .TABLE ; TABLE FOR OBJECT GARDEN + .STRL "Aunt Hildegarde's garden" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GARDEN-F + .PROP 2,P?SYNONYM + W?GARDEN + .BYTE 0 + .ENDT + +T?PSEUDO-OBJECT:: .TABLE ; TABLE FOR OBJECT PSEUDO-OBJECT + .STRL "pseudo" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ME-F + .BYTE 0 + .ENDT + +T?BUCK:: .TABLE ; TABLE FOR OBJECT BUCK + .STRL "statue of Buck Palace, the fighting letter carrier" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BUCK-F + .PROP 8,P?SYNONYM + W?BUCK + W?PALACE + W?CARRIER + W?STATUE + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + BUCK-F + .PROP 3,P?ADJECTIVE + .BYTE A?BUCK + .BYTE A?LETTER + .BYTE A?FIGHTING + .BYTE 0 + .ENDT + +T?UPSTAIRS-BATHROOM:: .TABLE ; TABLE FOR OBJECT UPSTAIRS-BATHROOM + .STRL "Upstairs Bathroom" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + UPSTAIRS-BATHROOM-F + .PROP 1,P?NORTH + .BYTE UPSTAIRS-HALL-WEST + .PROP 2,P?THINGS ; STRING PROPERTY + PT?10 + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE WATER + .BYTE TOILET + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + + +; THE GLOBAL VARIABLES ARE ALL LOCATED HERE + +GLOBAL::.TABLE + .GVAR HERE=0 + .GVAR SCORE=0 + .GVAR MOVES=0 + .GVAR YAWNS=T?23,TABLE + .GVAR P-END-ON-PREP=0 + .GVAR RING-UNDER-DOME=1 + .GVAR ROCKET-LIFE=4 + .GVAR UNKNOWN-MSGS=T?13,TABLE + .GVAR INDOOR-NOISE=T?30,TABLE + .GVAR PLANE-LOC=33 + .GVAR STEPS-THROUGH-BUCK=0 + .GVAR P-BUTS=T?17,TABLE + .GVAR P-HIM-OBJECT=0 + .GVAR P-ACLAUSE=0 + .GVAR CANDLE-DESC=T?34,TABLE + .GVAR P-SLOCBITS=0 + .GVAR STEPS-THROUGH-BS-SAFE=0 + .GVAR PLANES-LEFT=2 + .GVAR P-ADVERB=0 + .GVAR RED-MID-BURN=0 + .GVAR CLOCK-WAIT=0 + .GVAR OUT-OF-NOWHERE=STR?147,STRING + .GVAR P-OTBL=T?5,TABLE + .GVAR P-NAM=0 + .GVAR BREATH=6 + .GVAR C-TABLE=T?1,TABLE + .GVAR DOG-LOC=1 + .GVAR P-XNAM=0 + .GVAR P-MOBY-FOUND=0 + .GVAR P-WALK-DIR=0 + .GVAR OOPS-TABLE=T?11,TABLE + .GVAR WHITE-MID-BURN=0 + .GVAR P-ANAM=0 + .GVAR LIKELIES=T?21,TABLE + .GVAR CLOCK-HAND=0 + .GVAR SNOWPLOW=STR?142,STRING + .GVAR NUMWORDS=T?35,TABLE + .GVAR LAST-PSEUDO-LOC=0 + .GVAR P-CONT=0 + .GVAR P-PRSI=T?16,TABLE + .GVAR HM-ROOM=439 + .GVAR AGAIN-LEXV=T?8,TABLE + .GVAR MYSTERY-GUEST=1 + .GVAR VERBOSITY=1 + .GVAR P-DIRECTION=0 + .GVAR WASHED-OUT-BITS=STR?83,STRING + .GVAR BUCKET-PEG=PEG-2 + .GVAR P-THEM-OBJECT=0 + .GVAR PEG-IN-WAY=STR?71,STRING + .GVAR PYRO=STR?30,STRING + .GVAR LIT=1 + .GVAR YES-LEXV=T?27,TABLE + .GVAR P-VTBL=T?6,TABLE + .GVAR P-XADJN=0 + .GVAR YES-INBUF=T?26,TABLE + .GVAR RESERVE-LEXV=T?9,TABLE + .GVAR P-MOBY-FLAG=0 + .GVAR PROJECTOR-POINTS=0 + .GVAR P-ADJ=0 + .GVAR DOG-IN-PAIN=T?40,TABLE + .GVAR P-LEN=0 + .GVAR C-INTS=52 + .GVAR P-LEXV=T?2,TABLE + .GVAR P-CCTBL=T?14,TABLE + .GVAR BURN-DOME=3 + .GVAR DOG-PADDLE=STR?70,STRING + .GVAR WHITE-LIGHT=STR?81,STRING + .GVAR DOG-BREATH=3 + .GVAR DEBUG=0 + .GVAR PRSO=0 + .GVAR P-MERGED=0 + .GVAR P-GWIMBIT=0 + .GVAR YOU-CANT=STR?49,STRING + .GVAR TANKS-LEFT=2 + .GVAR P-SYNTAX=0 + .GVAR AMOUNT-OF-WATER=0 + .GVAR ROCKET-LOC=33 + .GVAR P-XADJ=0 + .GVAR PIANO-LOC=2 + .GVAR ITAKE-LOC=0 + .GVAR P-AADJ=0 + .GVAR PRSA=0 + .GVAR P-PRSA-WORD=0 + .GVAR YOU-SEE=STR?12,STRING + .GVAR P-EXCHANGE=0 + .GVAR RIDICULOUS=STR?143,STRING + .GVAR CARD-COUNT=0 + .GVAR HERMAN-DOWN=0 + .GVAR P-PRSO=T?15,TABLE + .GVAR SONG-PLAYED=0 + .GVAR P-AND=0 + .GVAR NO-DATA=STR?109,STRING + .GVAR BS-SAFE-DIAL-NUMBER=3 + .GVAR P-VMERGE=0 + .GVAR P-INBUF=T?3,TABLE + .GVAR OFFENDED=T?12,TABLE + .GVAR DIAL-NUMBER=6 + .GVAR P-MERGE=T?18,TABLE + .GVAR P-WON=0 + .GVAR ROPE-LIFE=3 + .GVAR SONG-NUMBER=10 + .GVAR COMPUTER-LIGHTS=STR?111,STRING + .GVAR STEPS-THROUGH-WALL-SAFE=0 + .GVAR PROPS=T?39,TABLE + .GVAR QCONTEXT=0 + .GVAR P-OVTBL=T?7,TABLE + .GVAR LAST-PLAYER-LOC=0 + .GVAR HM-BITS=15 + .GVAR CLOSET-FLOOR=FOYER + .GVAR SPINACH=STR?22,STRING + .GVAR P-ITBL=T?4,TABLE + .GVAR HIT-POINTS=0 + .GVAR P-NMERGE=0 + .GVAR QUOTE-FLAG=0 + .GVAR P-TABLE=0 + .GVAR DISPLAY-TABLE=T?33,TABLE + .GVAR P-GETFLAGS=0 + .GVAR DOOR-NOISES=T?25,TABLE + .GVAR LENS-ATTACHED=STR?84,STRING + .GVAR BUCK-TURNED?=0 + .GVAR HEDGE-CRASH=T?43,TABLE + .GVAR YUKS=T?22,TABLE + .GVAR TREASURE-TABLE=T?36,TABLE + .GVAR P-OCL2=T?20,TABLE + .GVAR OUTDOOR-NOISE=T?31,TABLE + .GVAR TRUCK-LOC=33 + .GVAR OOPS-INBUF=T?10,TABLE + .GVAR AUNT-DISTANCE=T?38,TABLE + .GVAR P-NUMBER=-1 + .GVAR HEDGE-NUM=0 + .GVAR CARD-TABLE=T?32,TABLE + .GVAR P-OFLAG=0 + .GVAR TANK-LOC=33 + .GVAR SONGS=T?29,TABLE + .GVAR WHICH-END-IS-UP=RIGHT-END + .GVAR WINNER=0 + .GVAR DOOR-BELL-TUNES=T?37,TABLE + .GVAR HEDGE-OBJECTS-TABLE=T?41,TABLE + .GVAR QCONTEXT-ROOM=0 + .GVAR P-ADJN=0 + .GVAR TREASURES-FOUND=0 + .GVAR SOUTH-JUNCTION-VISITS=1 + .GVAR BLUE-MID-BURN=0 + .GVAR OKAY=STR?45,STRING + .GVAR P-IT-OBJECT=0 + .GVAR HO-HUM=T?24,TABLE + .GVAR P-OCL1=T?19,TABLE + .GVAR SAYING?=0 + .GVAR PRSI=0 + .GVAR RESERVE-PTR=0 + .GVAR TIPPED=0 + .GVAR USELESSNESS=T?28,TABLE + .GVAR BUCK-DIR=0 + .GVAR SACK-IN-WINDOW=1 + .GVAR HM-TABLE=T?42,TABLE + .GVAR HERMAN-HITS=0 + .GVAR P-SENTENCE=0 + .GVAR I-ASSUME=STR?15,STRING + .GVAR WHERE-TO-PRINT=0 + .GVAR P-NCN=0 + .GVAR P-HER-OBJECT=0 + .GVAR BITS-&-PIECES=STR?82,STRING + .GVAR AUNT-COUNT=0 + .GVAR PREPOSITIONS=PRTBL,TABLE + .GVAR ACTIONS=ATBL,TABLE + .GVAR PREACTIONS=PATBL,TABLE + .GVAR VERBS=VTBL,TABLE + .ENDT + +GLOEND:: + + +; IMPURE TABLES ARE DEFINED HERE + +IMPTBL:: + +T?1:: +T?C-TABLE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?2:: +T?P-LEXV:: .TABLE + 30720 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?3:: +T?P-INBUF:: .TABLE + 25600 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?4:: +T?P-ITBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?5:: +T?P-OTBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?6:: +T?P-VTBL:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?7:: +T?P-OVTBL:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?8:: +T?AGAIN-LEXV:: .TABLE + 30720 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?9:: +T?RESERVE-LEXV:: .TABLE + 30720 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?10:: +T?OOPS-INBUF:: .TABLE + 15360 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?11:: +T?OOPS-TABLE:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?12:: +T?OFFENDED:: .TABLE + 3 + 0 + STR?1 + STR?2 + .ENDT + +T?13:: +T?UNKNOWN-MSGS:: .TABLE + 5 + 0 + PT?1 + PT?2 + PT?3 + PT?4 + .ENDT + +T?14:: +T?P-CCTBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?15:: +T?P-PRSO:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?16:: +T?P-PRSI:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?17:: +T?P-BUTS:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?18:: +T?P-MERGE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?19:: +T?P-OCL1:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?20:: +T?P-OCL2:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?21:: +T?LIKELIES:: .TABLE + 7 + 0 + STR?16 + STR?17 + STR?18 + STR?19 + STR?20 + STR?21 + .ENDT + +T?22:: +T?YUKS:: .TABLE + 3 + 0 + STR?28 + STR?29 + .ENDT + +T?23:: +T?YAWNS:: .TABLE + 5 + 0 + STR?37 + STR?38 + STR?39 + STR?40 + .ENDT + +T?24:: +T?HO-HUM:: .TABLE + 4 + 0 + STR?41 + STR?42 + STR?43 + .ENDT + +T?25:: +T?DOOR-NOISES:: .TABLE + 7 + 0 + STR?50 + STR?51 + STR?52 + STR?53 + STR?54 + STR?55 + .ENDT + +T?26:: +T?YES-INBUF:: .TABLE + 3072 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?27:: +T?YES-LEXV:: .TABLE + 2560 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?28:: +T?USELESSNESS:: .TABLE + 5 + 0 + STR?74 + STR?75 + STR?76 + STR?77 + .ENDT + +T?29:: +T?SONGS:: .TABLE + STR?86 + STR?87 + STR?88 + STR?89 + STR?90 + STR?91 + STR?92 + STR?93 + STR?94 + STR?95 + .ENDT + +T?30:: +T?INDOOR-NOISE:: .TABLE + 4 + 0 + STR?100 + STR?101 + STR?102 + .ENDT + +T?31:: +T?OUTDOOR-NOISE:: .TABLE + 5 + 0 + STR?103 + STR?104 + STR?105 + STR?106 + .ENDT + +T?32:: +T?CARD-TABLE:: .TABLE + STR?112 + STR?113 + STR?113 + STR?114 + STR?115 + STR?115 + STR?116 + .ENDT + +T?33:: +T?DISPLAY-TABLE:: .TABLE + STR?111 + STR?111 + STR?111 + STR?111 + STR?111 + STR?111 + STR?111 + .ENDT + +T?34:: +T?CANDLE-DESC:: .TABLE + 0 + STR?119 + STR?120 + STR?121 + STR?122 + STR?123 + STR?124 + STR?125 + STR?126 + STR?127 + .ENDT + +T?35:: +T?NUMWORDS:: .TABLE + 9 + STR?148 + STR?149 + STR?150 + STR?151 + STR?152 + STR?153 + STR?154 + STR?155 + STR?156 + .ENDT + +T?36:: +T?TREASURE-TABLE:: .TABLE + 10 + PARKING-METER + CORPSE-LINE + RUBBER-STAMP + GRATER + MASK + TOUPEE + RING + FINCH + FIRE-HYDRANT + PENGUIN + .ENDT + +T?37:: +T?DOOR-BELL-TUNES:: .TABLE + 5 + 0 + STR?196 + STR?197 + STR?198 + STR?199 + .ENDT + +T?38:: +T?AUNT-DISTANCE:: .TABLE + STR?218 + STR?218 + STR?219 + STR?220 + STR?221 + STR?222 + STR?223 + .ENDT + +T?39:: +T?PROPS:: .TABLE + 9 + 0 + CLUB + STICK + GUN + MOP + BAG + CLIPPERS + SHEARS + SWORD + .ENDT + +T?40:: +T?DOG-IN-PAIN:: .TABLE + 5 + 0 + STR?228 + STR?229 + STR?230 + STR?231 + .ENDT + +T?41:: +T?HEDGE-OBJECTS-TABLE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?42:: +T?HM-TABLE:: .TABLE + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 10 + .BYTE 3 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 1 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 4 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 4 + .BYTE 10 + .BYTE 11 + .BYTE 7 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 7 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 10 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 8 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 8 + .BYTE 3 + .BYTE 12 + .BYTE 13 + .BYTE 7 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 8 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 2 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 1 + .BYTE 14 + .BYTE 7 + .BYTE 10 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 8 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 13 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 10 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 7 + .BYTE 0 + .BYTE 0 + .BYTE 4 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 1 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 12 + .BYTE 7 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 12 + .BYTE 0 + .BYTE 3 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 3 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 1 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 5 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 7 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 12 + .BYTE 0 + .BYTE 13 + .BYTE 7 + .BYTE 10 + .BYTE 1 + .BYTE 14 + .BYTE 15 + .BYTE 0 + .BYTE 4 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 14 + .BYTE 0 + .BYTE 13 + .BYTE 11 + .BYTE 0 + .BYTE 5 + .BYTE 8 + .BYTE 3 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 14 + .BYTE 13 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 2 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 4 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 3 + .BYTE 0 + .BYTE 2 + .BYTE 10 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 13 + .BYTE 13 + .BYTE 0 + .BYTE 11 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 12 + .BYTE 5 + .BYTE 4 + .BYTE 12 + .BYTE 13 + .BYTE 5 + .BYTE 4 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 7 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 11 + .BYTE 3 + .BYTE 14 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 1 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 10 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 2 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 13 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 7 + .BYTE 0 + .BYTE 12 + .BYTE 13 + .BYTE 5 + .BYTE 4 + .BYTE 0 + .BYTE 12 + .BYTE 5 + .BYTE 12 + .BYTE 5 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 0 + .BYTE 10 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 13 + .BYTE 11 + .BYTE 0 + .BYTE 0 + .BYTE 3 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 12 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 13 + .BYTE 5 + .BYTE 8 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 5 + .BYTE 8 + .BYTE 0 + .BYTE 5 + .ENDT + +T?43:: +T?HEDGE-CRASH:: .TABLE + 3 + 0 + STR?243 + STR?244 + .ENDT + + +; END OF IMPURENESS + +IMPURE:: + + + +; VERB TABLE IS DEFINED HERE + +VTBL:: .TABLE + ST?KISS + ST?I + ST?PULL + ST?PUT + ST?RAPE + ST?VERBOSE + ST?WALK + ST?QUIT + ST?FIND + ST?HEAR + ST?YES + ST?STOP + ST?UNLOCK + ST?READ + ST?SAY + ST?BREAK + ST?JUMP + ST?POUR + ST?WAIT + ST?TAKE + ST?COUNT + ST?RAISE + ST?CALL + ST?FOLLOW + ST?FLY + ST?VERSION + ST?#UNRECORD + ST?LIGHT + ST?LIE + ST?MOVE + ST?LET + ST?PLAY + ST?OPEN + ST?TASTE + ST?BUY + ST?TOUCH + ST?#COMMAND + ST?BLOW + ST?SHOOT + ST?$WAIT + ST?KNOCK + ST?PICK + ST?RIDE + ST?BOARD + ST?#RANDOM + ST?PRAY + ST?STAND + ST?LISTEN + ST?TIE + ST?SHOW + ST?SAVE + ST?HELP + ST?TELL + ST?THROW + ST?LOWER + ST?USE + ST?HIDE + ST?SHAKE + ST?KILL + ST?RESTOR + ST?ENTER + ST?SEARCH + ST?WEAR + ST?DISEMBARK + ST?SKI + ST?SWIM + ST?UNTIE + ST?CUT + ST?ASCEND + ST?SPLICE + ST?UNSCRIPT + ST?HANG + ST?PUSH + ST?SUPER + ST?SIT + ST?RESTAR + ST?HINT + ST?REACH + ST?DIG + ST?REPLACE + ST?SCORE + ST?RESET + ST?COVER + ST?LOOK + ST?EMPTY + ST?DROP + ST?COMPAR + ST?BACK + ST?TIME + ST?LEAVE + ST?SCRAPE + ST?WATER + ST?SCRIPT + ST?$VERIFY + ST?DESCEND + ST?EXTINGUISH + ST?SWING + ST?POKE + ST?SMELL + ST?BRIEF + ST?DIAGNOSE + ST?GIVE + ST?SLEEP + ST?WAKE + ST?DRINK + ST?REMOVE + ST?ANSWER + ST?YELL + ST?LOCK + ST?BURN + ST?KICK + ST?BITE + ST?TURN + ST?#RECORD + ST?CROSS + ST?CLEAN + ST?CLOSE + ST?GO + ST?WAVE + ST?EXIT + ST?EXAMINE + ST?RELEASE + ST?EAT + ST?FILL + ST?SQUEEZE + ST?CLIMB + ST?FLUSH + ST?FOCUS + ST?UNROLL + ST?ASK + ST?HELLO + .ENDT + +; SYNTAX DEFINITION TABLES ARE DEFINED HERE + +ST?KISS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KISS + .ENDT + +ST?I:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INVENTORY + .ENDT + +ST?PULL:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE TAKEBIT + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE V?LOWER + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOWER + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?RAISE + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?PULL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?PULL + .ENDT + +ST?PUT:: .TABLE + .BYTE 9 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SC+SH + .BYTE 0 + .BYTE V?LAMP-OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SMANY+SHAVE + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT-BEHIND + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE 0 + .BYTE V?WEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SHAVE+SC + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE 0 + .BYTE V?DROP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SH+SC + .BYTE V?PUT + .ENDT + +ST?RAPE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAPE + .ENDT + +ST?VERBOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VERBOSE + .ENDT + +ST?WALK:: .TABLE + .BYTE 14 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-TO + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CROSS + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?QUIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?QUIT + .ENDT + +ST?FIND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .ENDT + +ST?HEAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LISTEN + .ENDT + +ST?YES:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .ENDT + +ST?STOP:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAMP-OFF + .ENDT + +ST?UNLOCK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE TOOLBIT + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?UNLOCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?UNLOCK + .ENDT + +ST?READ:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE READBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?READ-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE READBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-THRU + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE READBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?READ + .ENDT + +ST?SAY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAY + .ENDT + +ST?BREAK:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?THROUGH + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SHAVE+SH+SC + .BYTE V?MUNG + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MUNG + .BYTE 2 ;OBJECTS + .BYTE PR?IN + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SHAVE+SH+SC + .BYTE V?MUNG + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MUNG + .BYTE 2 ;OBJECTS + .BYTE PR?DOWN + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE SHAVE+SH+SC + .BYTE V?MUNG + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SOG+SIR + .BYTE V?MUNG + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE SHAVE+SH+SC + .BYTE V?MUNG + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MUNG + .ENDT + +ST?JUMP:: .TABLE + .BYTE 7 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .ENDT + +ST?POUR:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?OUT + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .ENDT + +ST?WAIT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAIT-FOR + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAIT + .ENDT + +ST?TAKE:: .TABLE + .BYTE 11 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE-OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OFF + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-ON + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE TAKEBIT + .BYTE 0 + .BYTE SOG+SIR+SMANY + .BYTE 0 + .BYTE V?TAKE + .ENDT + +ST?COUNT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COUNT + .ENDT + +ST?RAISE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .ENDT + +ST?CALL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PHONE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PHONE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PHONE + .ENDT + +ST?FOLLOW:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOLLOW + .ENDT + +ST?FLY:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLY + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLY + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLY + .ENDT + +ST?VERSION:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VERSION + .ENDT + +ST?#UNRECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$UNRECORD + .ENDT + +ST?LIGHT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE SH+SC + .BYTE V?BURN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE 0 + .BYTE V?LAMP-ON + .ENDT + +ST?LIE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .ENDT + +ST?MOVE:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ROLL-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?PUSH-DOWN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?PUSH-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?PUSH-TO + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MOVE + .ENDT + +ST?LET:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?GO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?LET-GO + .ENDT + +ST?PLAY:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PLAY + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PLAY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PLAY + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PLAY + .ENDT + +ST?OPEN:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE SOG+SIR+SH+SC+SHAVE + .BYTE V?OPEN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?OPEN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?OPEN + .ENDT + +ST?TASTE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TASTE + .ENDT + +ST?BUY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SHAVE + .BYTE V?BUY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BUY + .ENDT + +ST?TOUCH:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RUB + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RUB + .ENDT + +ST?#COMMAND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$COMMAND + .ENDT + +ST?BLOW:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAMP-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MUNG + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BLOW-INTO + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BLOW-INTO + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BLOW-INTO + .ENDT + +ST?SHOOT:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE V?SSHOOT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?SHOOT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?SHOOT + .ENDT + +ST?$WAIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$WAIT + .ENDT + +ST?KNOCK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KILL + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNOCK + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNOCK + .ENDT + +ST?PICK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE TAKEBIT + .BYTE 0 + .BYTE SOG+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PICK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PICK + .ENDT + +ST?RIDE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIDE + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIDE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIDE + .ENDT + +ST?BOARD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?BOARD + .ENDT + +ST?#RANDOM:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$RANDOM + .ENDT + +ST?PRAY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELP + .ENDT + +ST?STAND:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND + .ENDT + +ST?LISTEN:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LISTEN + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LISTEN + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LISTEN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LISTEN + .ENDT + +ST?TIE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?UP + .BYTE PR?WITH + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE SOG+SIR+SH+SC+SHAVE + .BYTE V?TIE-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?TIE + .ENDT + +ST?SHOW:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SSHOW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE V?SHOW + .ENDT + +ST?SAVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESCUE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAVE + .ENDT + +ST?HELP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESCUE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELP + .ENDT + +ST?TELL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ABOUT + .BYTE ACTORBIT + .BYTE 0 + .BYTE SIR + .BYTE 0 + .BYTE V?TELL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SIR + .BYTE 0 + .BYTE V?TELL + .ENDT + +ST?THROW:: .TABLE + .BYTE 10 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?PUSH-DOWN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE 0 + .BYTE V?THROW-OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE 0 + .BYTE V?THROW-OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?THROW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?THROW + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SC+SHAVE + .BYTE 0 + .BYTE V?THROW + .ENDT + +ST?LOWER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOWER + .ENDT + +ST?USE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?USE + .ENDT + +ST?HIDE:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE SH+SHAVE + .BYTE 0 + .BYTE V?HIDE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE SH+SHAVE + .BYTE 0 + .BYTE V?HIDE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SH+SHAVE + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .ENDT + +ST?SHAKE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHAKE + .ENDT + +ST?KILL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+SHAVE + .BYTE V?KILL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KILL + .ENDT + +ST?RESTOR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESTORE + .ENDT + +ST?ENTER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .ENDT + +ST?SEARCH:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SEARCH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SEARCH + .ENDT + +ST?WEAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WEAR + .ENDT + +ST?DISEMBARK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?DISEMBARK + .ENDT + +ST?SKI:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SKI + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SKI + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?SWIM:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM-UP + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .ENDT + +ST?UNTIE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE 0 + .BYTE V?UNTIE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE 0 + .BYTE V?UNTIE + .ENDT + +ST?CUT:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?LOOSE + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .BYTE 2 ;OBJECTS + .BYTE PR?LOOSE + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .BYTE 2 ;OBJECTS + .BYTE PR?THROUGH + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .ENDT + +ST?ASCEND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .ENDT + +ST?SPLICE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SPLICE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SPLICE + .ENDT + +ST?UNSCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNSCRIPT + .ENDT + +ST?HANG:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?UP + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .BYTE 2 ;OBJECTS + .BYTE PR?UP + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HANG-UP + .ENDT + +ST?PUSH:: .TABLE + .BYTE 9 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-UNDER + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH-TO + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH-DOWN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SIR+SOG + .BYTE V?PUSH-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SIR+SOG + .BYTE V?PUSH-TO + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH + .ENDT + +ST?SUPER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUPER-BRIEF + .ENDT + +ST?SIT:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SIT + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?SIT + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?SIT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?SIT + .ENDT + +ST?RESTAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESTART + .ENDT + +ST?HINT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELP + .ENDT + +ST?REACH:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?REACH-IN + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?REACH-IN + .ENDT + +ST?DIG:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?DIG + .BYTE 2 ;OBJECTS + .BYTE PR?IN + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+SHAVE + .BYTE V?DIG + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+SHAVE + .BYTE V?DIG + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG-WITH + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .ENDT + +ST?REPLACE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REPLACE + .ENDT + +ST?SCORE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCORE + .ENDT + +ST?RESET:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESET + .ENDT + +ST?COVER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE STAKE + .BYTE V?COVER + .ENDT + +ST?LOOK:: .TABLE + .BYTE 14 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 2 ;OBJECTS + .BYTE PR?AT + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-THRU + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-ON + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-BEHIND + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EXAMINE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?CHASTISE + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-UP + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK + .ENDT + +ST?EMPTY:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?EMPTY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?EMPTY + .ENDT + +ST?DROP:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?DROP + .ENDT + +ST?COMPAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COMPARE + .ENDT + +ST?BACK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?TIME:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TIME + .ENDT + +ST?LEAVE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SC + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE+SMANY + .BYTE SOG+SIR+SC + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAVE + .ENDT + +ST?SCRAPE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCRAPE-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCRAPE-OFF + .ENDT + +ST?WATER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?WATER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WATER + .ENDT + +ST?SCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCRIPT + .ENDT + +ST?$VERIFY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$VERIFY + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$VERIFY + .ENDT + +ST?DESCEND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .ENDT + +ST?EXTINGUISH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE FLAMEBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAMP-OFF + .ENDT + +ST?SWING:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLIMB-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE ACTORBIT + .BYTE SH+SC+SHAVE + .BYTE SOG+SIR + .BYTE V?SWING + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWING + .ENDT + +ST?POKE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+SHAVE + .BYTE V?MUNG + .ENDT + +ST?SMELL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SMELL + .ENDT + +ST?BRIEF:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BRIEF + .ENDT + +ST?DIAGNOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIAGNOSE + .ENDT + +ST?GIVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH + .BYTE V?SGIVE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SH + .BYTE SIR+SOG + .BYTE V?GIVE + .ENDT + +ST?SLEEP:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SLEEP + .ENDT + +ST?WAKE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ALARM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ALARM + .ENDT + +ST?DRINK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?DRINK-FROM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?DRINK + .ENDT + +ST?REMOVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REMOVE-FROM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE WORNBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REMOVE + .ENDT + +ST?ANSWER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REPLY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REPLY + .ENDT + +ST?YELL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .ENDT + +ST?LOCK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SHAVE + .BYTE V?LOCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?LOCK + .ENDT + +ST?BURN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?DOWN + .BYTE PR?WITH + .BYTE 0 + .BYTE FLAMEBIT + .BYTE SH+SC+SOG+SIR + .BYTE SH+SC + .BYTE V?BURN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE FLAMEBIT + .BYTE SH+SC+SOG+SIR + .BYTE SH+SC + .BYTE V?BURN + .ENDT + +ST?KICK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KICK + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KICK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KICK + .ENDT + +ST?BITE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BITE + .ENDT + +ST?TURN:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LAMP-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LAMP-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?TURN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?RIGHT + .BYTE 0 + .BYTE RLANDBIT + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?TURN-RIGHT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?LEFT + .BYTE 0 + .BYTE RLANDBIT + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?TURN-LEFT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?TURN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?TURN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TURN + .ENDT + +ST?#RECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$RECORD + .ENDT + +ST?CROSS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CROSS + .ENDT + +ST?CLEAN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLEAN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLEAN + .ENDT + +ST?CLOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE CONTBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?CLOSE + .ENDT + +ST?GO:: .TABLE + .BYTE 11 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-TO + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CROSS + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK + .ENDT + +ST?WAVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAVE-AT + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAVE-AT + .ENDT + +ST?EXIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .ENDT + +ST?EXAMINE:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE SH+SC+SOG+SIR + .BYTE V?LOOK-THRU + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE SH+SC+SOG+SIR + .BYTE V?LOOK-THRU + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SIR+SOG + .BYTE 0 + .BYTE V?LOOK-ON + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SIR+SOG + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EXAMINE + .ENDT + +ST?RELEASE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SMANY+SH + .BYTE 0 + .BYTE V?LET-GO + .ENDT + +ST?EAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EAT + .ENDT + +ST?FILL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE CONTBIT + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?FILL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE CONTBIT + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?FILL + .ENDT + +ST?SQUEEZE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH + .BYTE 0 + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SQUEEZE + .ENDT + +ST?CLIMB:: .TABLE + .BYTE 9 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-OVER + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-ON + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB + .ENDT + +ST?FLUSH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLUSH + .ENDT + +ST?FOCUS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOCUS + .ENDT + +ST?UNROLL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE 0 + .BYTE V?UNROLL + .ENDT + +ST?ASK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FOR + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-FOR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ABOUT + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-ABOUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?QUESTION + .ENDT + +ST?HELLO:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .ENDT + + +; THE ACTION CALLING TABLE IS DEFINED HERE + +ATBL:: .TABLE + V-VERBOSE + V-BRIEF + V-SUPER-BRIEF + V-DIAGNOSE + V-INVENTORY + V-QUIT + V-RESTART + V-RESTORE + V-SAVE + V-RESCUE + V-SCORE + V-SCRIPT + V-TIME + V-UNSCRIPT + V-VERSION + V-$VERIFY + V-$RANDOM + V-$COMMAND + V-$RECORD + V-$UNRECORD + V-REPLY + V-QUESTION + V-ASK-ABOUT + V-ASK-FOR + V-CLIMB-UP + V-WALK-AROUND + V-BITE + V-BLOW-INTO + V-MUNG + V-LAMP-OFF + V-BOARD + V-BURN + V-BUY + V-PHONE + V-CLEAN + V-CLIMB + V-CLIMB-ON + V-CLIMB-DOWN + V-CLIMB-OVER + V-ENTER + V-EXIT + V-CLOSE + V-COMPARE + V-COUNT + V-COVER + V-CROSS + V-CUT + V-DIG + V-DIG-WITH + V-DISEMBARK + V-DRINK + V-DRINK-FROM + V-DROP + V-PUT + V-PUT-ON + V-EAT + V-EMPTY + V-TAKE + V-EXAMINE + V-LOOK-INSIDE + V-LOOK-ON + V-FIND + V-LOOK-THRU + V-FILL + V-FLUSH + V-FLY + V-FOCUS + V-FOLLOW + V-GIVE + V-SGIVE + V-WALK + V-WALK-TO + V-HANG-UP + V-LISTEN + V-HELLO + V-HELP + V-HIDE + V-LEAP + V-STAND-ON + V-KICK + V-KILL + V-KISS + V-KNOCK + V-LEAVE + V-LET-GO + V-LIE-DOWN + V-LAMP-ON + V-LOCK + V-LOOK + V-LOOK-DOWN + V-LOOK-UP + V-CHASTISE + V-LOOK-UNDER + V-LOOK-BEHIND + V-LOWER + V-MOVE + V-PUSH-TO + V-PUSH-DOWN + V-ROLL-UP + V-OPEN + V-PICK + V-PLAY + V-POUR + V-PULL + V-RAISE + V-PUSH + V-PUSH-UP + V-PUT-UNDER + V-WEAR + V-PUT-BEHIND + V-RAPE + V-REACH-IN + V-READ + V-READ-TO + V-REMOVE + V-REMOVE-FROM + V-REPLACE + V-RESET + V-RIDE + V-SAY + V-SCRAPE-OFF + V-SEARCH + V-SHAKE + V-SHOOT + V-SSHOOT + V-SHOW + V-SSHOW + V-SIT + V-SKI + V-SLEEP + V-SMELL + V-SPLICE + V-SQUEEZE + V-STAND + V-STAND-UNDER + V-SWIM + V-SWIM-DOWN + V-SWIM-UP + V-SWING + V-TAKE-OFF + V-TASTE + V-TELL + V-THROW + V-THROW-OFF + V-TIE + V-TIE-UP + V-RUB + V-TURN + V-TURN-LEFT + V-TURN-RIGHT + V-UNLOCK + V-UNROLL + V-UNTIE + V-USE + V-WAIT + V-$WAIT + V-WAIT-FOR + V-ALARM + V-WATER + V-WAVE-AT + V-YELL + .ENDT + +; THE PREACTION CALLING TABLE IS DEFINED HERE + +PATBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-BOARD + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-PUT + PRE-PUT + 0 + 0 + PRE-TAKE + PRE-EXAMINE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-GIVE + 0 + 0 + 0 + PRE-HANG-UP + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-SKI + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-PUT + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-WATER + 0 + 0 + .ENDT + + +; PREPOSITION TABLE IS DEFINED HERE + +PRTBL:: .TABLE + .WORD 21 + W?RIGHT + PR?RIGHT + W?LEFT + PR?LEFT + W?GO + PR?GO + W?BEHIND + PR?BEHIND + W?AROUND + PR?AROUND + W?FROM + PR?FROM + W?AT + PR?AT + W?LOOSE + PR?LOOSE + W?UNDER + PR?UNDER + W?OVER + PR?OVER + W?ON + PR?ON + W?DOWN + PR?DOWN + W?OFF + PR?OFF + W?WITH + PR?WITH + W?OUT + PR?OUT + W?UP + PR?UP + W?THROUGH + PR?THROUGH + W?IN + PR?IN + W?FOR + PR?FOR + W?ABOUT + PR?ABOUT + W?TO + PR?TO + .ENDT + + +; VOCABULARY TABLE IS HERE + +VOCAB:: .TABLE + .BYTE 5 + .BYTE 46 + .BYTE 44 + .BYTE 34 + .BYTE 33 + .BYTE 63 + .BYTE 7 + 854 +W?$VERIFY:: .ZWORD "$verif" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$VERIFY + .BYTE 0 +W?$WAIT:: .ZWORD "$wait" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$WAIT + .BYTE 0 +W?PERIOD:: .ZWORD "." + .BYTE PS?BUZZ-WORD + .BYTE B?PERIOD + .BYTE 0 +W?COMMA:: .ZWORD "," + .BYTE PS?BUZZ-WORD + .BYTE B?COMMA + .BYTE 0 +W?#COMMAND:: .ZWORD "#comma" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#COMMAND + .BYTE 0 +W?#RANDOM:: .ZWORD "#rando" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RANDOM + .BYTE 0 +W?#RECORD:: .ZWORD "#recor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RECORD + .BYTE 0 +W?#UNRECORD:: .ZWORD "#unrec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#UNRECORD + .BYTE 0 +W?QUOTE:: .ZWORD """" + .BYTE PS?BUZZ-WORD + .BYTE B?QUOTE + .BYTE 0 +W?A:: .ZWORD "a" + .BYTE PS?BUZZ-WORD + .BYTE B?A + .BYTE 0 +W?ABOUT:: .ZWORD "about" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ABOUT + .BYTE 0 +W?ACROSS:: .ZWORD "across" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OVER + .BYTE 0 +W?ADVANC:: .ZWORD "advanc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?AFFIRM:: .ZWORD "affirm" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?AFTERNOON:: .ZWORD "aftern" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?AGAIN:: .ZWORD "again" + .BYTE PS?BUZZ-WORD + .BYTE B?AGAIN + .BYTE 0 +W?AID:: .ZWORD "aid" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?AIRPLANE:: .ZWORD "airpla" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ALL:: .ZWORD "all" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?ALONG:: .ZWORD "along" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?AM:: .ZWORD "am" + .BYTE PS?BUZZ-WORD + .BYTE B?AM + .BYTE 0 +W?AN:: .ZWORD "an" + .BYTE PS?BUZZ-WORD + .BYTE B?AN + .BYTE 0 +W?AND:: .ZWORD "and" + .BYTE PS?BUZZ-WORD + .BYTE B?AND + .BYTE 0 +W?ANSWER:: .ZWORD "answer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?ANY:: .ZWORD "any" + .BYTE PS?BUZZ-WORD + .BYTE B?ANY + .BYTE 0 +W?ARE:: .ZWORD "are" + .BYTE PS?BUZZ-WORD + .BYTE B?ARE + .BYTE 0 +W?AREA:: .ZWORD "area" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ARM:: .ZWORD "arm" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ARM + .BYTE 0 +W?AROUND:: .ZWORD "around" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?ASCEND:: .ZWORD "ascend" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASCEND + .BYTE 0 +W?ASK:: .ZWORD "ask" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?ASSAULT:: .ZWORD "assaul" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?ASSHOLE:: .ZWORD "asshol" + .BYTE PS?BUZZ-WORD + .BYTE B?ASSHOLE + .BYTE 0 +W?AT:: .ZWORD "at" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AT + .BYTE 0 +W?ATOMIC:: .ZWORD "atomic" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ATOMIC + .BYTE 0 +W?ATTACH:: .ZWORD "attach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?ATTACK:: .ZWORD "attack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?ATTIC:: .ZWORD "attic" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ATTIC + .BYTE 0 +W?AUNT:: .ZWORD "aunt" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AUNT + .BYTE 0 +W?AWAKE:: .ZWORD "awake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?AWAKEN:: .ZWORD "awaken" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?AYE:: .ZWORD "aye" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?BACK:: .ZWORD "back" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BACK + .BYTE 0 +W?BAG:: .ZWORD "bag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALL:: .ZWORD "ball" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALLS:: .ZWORD "balls" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BARE:: .ZWORD "bare" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARE + .BYTE 0 +W?BASTARD:: .ZWORD "bastar" + .BYTE PS?BUZZ-WORD + .BYTE B?BASTARD + .BYTE 0 +W?BATH:: .ZWORD "bath" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BATH + .BYTE 0 +W?BATHE:: .ZWORD "bathe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWIM + .BYTE 0 +W?BAZOOKA:: .ZWORD "bazook" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEAM:: .ZWORD "beam" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEAUMONT:: .ZWORD "beaumo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BED:: .ZWORD "bed" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEHIND:: .ZWORD "behind" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BEHIND + .BYTE 0 +W?BELL:: .ZWORD "bell" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BELOW:: .ZWORD "below" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?BELT:: .ZWORD "belt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BENEATH:: .ZWORD "beneat" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?BESTOW:: .ZWORD "bestow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?BETWEEN:: .ZWORD "betwee" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?BEYOND:: .ZWORD "beyond" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?BIG:: .ZWORD "big" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BIG + .BYTE 0 +W?BILLIO:: .ZWORD "billio" + .BYTE PS?BUZZ-WORD + .BYTE B?BILLIO + .BYTE 0 +W?BIRD:: .ZWORD "bird" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BITCH:: .ZWORD "bitch" + .BYTE PS?BUZZ-WORD + .BYTE B?BITCH + .BYTE 0 +W?BITE:: .ZWORD "bite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BITE + .BYTE 0 +W?BITS:: .ZWORD "bits" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLACK:: .ZWORD "black" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLACK + .BYTE 0 +W?BLADE:: .ZWORD "blade" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLIND:: .ZWORD "blind" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POKE + .BYTE 0 +W?BLOW:: .ZWORD "blow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLOW + .BYTE 0 +W?BLUE:: .ZWORD "blue" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLUE + .BYTE 0 +W?BLURRED:: .ZWORD "blurre" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLURRED + .BYTE 0 +W?BOARD:: .ZWORD "board" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?BOOMERANG:: .ZWORD "boomer" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BOOMERANG + .BYTE 0 +W?BOTH:: .ZWORD "both" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?BOTTOM:: .ZWORD "bottom" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BOTTOM + .BYTE 0 +W?BOX:: .ZWORD "box" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRASS:: .ZWORD "brass" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BRASS + .BYTE 0 +W?BREAK:: .ZWORD "break" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?BRICK:: .ZWORD "brick" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRIEF:: .ZWORD "brief" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BRIEF + .BYTE 0 +W?BRUSH:: .ZWORD "brush" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLEAN + .BYTE 0 +W?BUCK:: .ZWORD "buck" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUCK + .BYTE 0 +W?BUCKET:: .ZWORD "bucket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BUDDY:: .ZWORD "buddy" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUDDY + .BYTE 0 +W?BUNK:: .ZWORD "bunk" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUNK + .BYTE 0 +W?BUNKS:: .ZWORD "bunks" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BURBAN:: .ZWORD "burban" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BURBAN + .BYTE 0 +W?BURN:: .ZWORD "burn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BURN + .BYTE 0 +W?BUSH:: .ZWORD "bush" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BUSINESS:: .ZWORD "busine" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUSINESS + .BYTE 0 +W?BUT:: .ZWORD "but" + .BYTE PS?BUZZ-WORD + .BYTE B?BUT + .BYTE 0 +W?BUTTON:: .ZWORD "button" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BUY:: .ZWORD "buy" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BUY + .BYTE 0 +W?BUZZ:: .ZWORD "buzz" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUZZ + .BYTE 0 +W?BUZZER:: .ZWORD "buzzer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BYE:: .ZWORD "bye" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?CALL:: .ZWORD "call" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CALL + .BYTE 0 +W?CAMELO:: .ZWORD "camelo" + .BYTE PS?BUZZ-WORD + .BYTE B?CAMELO + .BYTE 0 +W?CANDLE:: .ZWORD "candle" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CANDLE + .BYTE 0 +W?CANNON:: .ZWORD "cannon" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CANNON + .BYTE 0 +W?CAP:: .ZWORD "cap" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARD:: .ZWORD "card" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CARD + .BYTE 0 +W?CARDS:: .ZWORD "cards" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CARDS + .BYTE 0 +W?CARPET:: .ZWORD "carpet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARRIER:: .ZWORD "carrie" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARRY:: .ZWORD "carry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CASTERS:: .ZWORD "caster" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CATCH:: .ZWORD "catch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CATCHER:: .ZWORD "catche" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CATCHER + .BYTE 0 +W?CEILING:: .ZWORD "ceilin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CELLAR:: .ZWORD "cellar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CENTRAL:: .ZWORD "centra" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CENTRAL + .BYTE 0 +W?CHAIN:: .ZWORD "chain" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHAIR:: .ZWORD "chair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHAIRS:: .ZWORD "chairs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHASE:: .ZWORD "chase" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?CHECK:: .ZWORD "check" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?CHEESE:: .ZWORD "cheese" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CHEESE + .BYTE 0 +W?CHIHUAHUA:: .ZWORD "chihua" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHIME:: .ZWORD "chime" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHIMNEY:: .ZWORD "chimne" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHIPPED:: .ZWORD "chippe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CHIPPED + .BYTE 0 +W?CHRISTMAS:: .ZWORD "christ" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CHRISTMAS + .BYTE 0 +W?CHUCK:: .ZWORD "chuck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?CHUTE:: .ZWORD "chute" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CITY:: .ZWORD "city" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CLEAN:: .ZWORD "clean" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLEAN + .BYTE 0 +W?CLIFF:: .ZWORD "cliff" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CLIMB:: .ZWORD "climb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?CLIP:: .ZWORD "clip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CUT + .BYTE 0 +W?CLIPPERS:: .ZWORD "clippe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CLOCKWISE:: .ZWORD "clockw" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?RIGHT + .BYTE 0 +W?CLOSE:: .ZWORD "close" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?CLOSET:: .ZWORD "closet" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOSET + .BYTE 0 +W?CLOTH:: .ZWORD "cloth" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOTH + .BYTE 0 +W?CLUB:: .ZWORD "club" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COAT:: .ZWORD "coat" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COAT + .BYTE 0 +W?COATING:: .ZWORD "coatin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COCKSUCKER:: .ZWORD "cocksu" + .BYTE PS?BUZZ-WORD + .BYTE B?COCKSUCKER + .BYTE 0 +W?COMPAR:: .ZWORD "compar" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?COMPAR + .BYTE 0 +W?COMPASS:: .ZWORD "compas" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMPASS + .BYTE 0 +W?COMPUTER:: .ZWORD "comput" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMPUTER + .BYTE 0 +W?CONCEAL:: .ZWORD "concea" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HIDE + .BYTE 0 +W?CONFISCATE:: .ZWORD "confis" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CONSUME:: .ZWORD "consum" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?CONVEYOR:: .ZWORD "convey" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CONVEYOR + .BYTE 0 +W?COPY:: .ZWORD "copy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COPY + .BYTE 0 +W?CORMAN:: .ZWORD "corman" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CORPSE:: .ZWORD "corpse" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CORPSE + .BYTE 0 +W?COUCH:: .ZWORD "couch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COUNT:: .ZWORD "count" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COUNT + .BYTE 0 +W?COUNTERCLOCKWISE:: .ZWORD "counte" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?LEFT + .BYTE 0 +W?COUSIN:: .ZWORD "cousin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COUSIN + .BYTE 0 +W?COVER:: .ZWORD "cover" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?COVER + .BYTE 0 +W?CRACK:: .ZWORD "crack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?CRAWL:: .ZWORD "crawl" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CRAWL + .BYTE ACT?WALK +W?CREAM:: .ZWORD "cream" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CREAM + .BYTE 0 +W?CROSS:: .ZWORD "cross" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?CRUSH:: .ZWORD "crush" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SQUEEZE + .BYTE 0 +W?CUNT:: .ZWORD "cunt" + .BYTE PS?BUZZ-WORD + .BYTE B?CUNT + .BYTE 0 +W?CURSE:: .ZWORD "curse" + .BYTE PS?BUZZ-WORD + .BYTE B?CURSE + .BYTE 0 +W?CUSS:: .ZWORD "cuss" + .BYTE PS?BUZZ-WORD + .BYTE B?CUSS + .BYTE 0 +W?CUT:: .ZWORD "cut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CUT + .BYTE 0 +W?D:: .ZWORD "d" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 21 + .BYTE PR?DOWN +W?DAMAGE:: .ZWORD "damage" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?DAMN:: .ZWORD "damn" + .BYTE PS?BUZZ-WORD + .BYTE B?DAMN + .BYTE 0 +W?DAMNED:: .ZWORD "damned" + .BYTE PS?BUZZ-WORD + .BYTE B?DAMNED + .BYTE 0 +W?DEBARK:: .ZWORD "debark" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DEFILE:: .ZWORD "defile" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAPE + .BYTE 0 +W?DELIVER:: .ZWORD "delive" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?DEMOLISH:: .ZWORD "demoli" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?DEPART:: .ZWORD "depart" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?DESCEND:: .ZWORD "descen" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DESCEND + .BYTE 0 +W?DESCRIBE:: .ZWORD "descri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?DESTROY:: .ZWORD "destro" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?DETACH:: .ZWORD "detach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?DEVOUR:: .ZWORD "devour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?DIAGNOSE:: .ZWORD "diagno" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIAGNOSE + .BYTE 0 +W?DIAL:: .ZWORD "dial" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?CALL + .BYTE 0 +W?DIAMOND:: .ZWORD "diamon" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIAMOND + .BYTE 0 +W?DIG:: .ZWORD "dig" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIG + .BYTE 0 +W?DIP:: .ZWORD "dip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?DIRECTION:: .ZWORD "direct" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIRTY:: .ZWORD "dirty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIRTY + .BYTE 0 +W?DISEMBARK:: .ZWORD "disemb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DISPLAY:: .ZWORD "displa" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DISTURB:: .ZWORD "distur" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?DIVE:: .ZWORD "dive" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?DO:: .ZWORD "do" + .BYTE PS?BUZZ-WORD + .BYTE B?DO + .BYTE 0 +W?DOFF:: .ZWORD "doff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?DOG:: .ZWORD "dog" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOME:: .ZWORD "dome" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DON:: .ZWORD "don" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WEAR + .BYTE 0 +W?DONATE:: .ZWORD "donate" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?DOOR:: .ZWORD "door" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DOOR + .BYTE 0 +W?DOORBELL:: .ZWORD "doorbe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOUSE:: .ZWORD "douse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?DOWN:: .ZWORD "down" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 21 + .BYTE PR?DOWN +W?DOWNHILL:: .ZWORD "downhi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DOWNHILL + .BYTE 0 +W?DOWNTO:: .ZWORD "downto" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DOWNTO + .BYTE 0 +W?DRAG:: .ZWORD "drag" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?DRINK:: .ZWORD "drink" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?DRIP:: .ZWORD "drip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?DROP:: .ZWORD "drop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DUMP:: .ZWORD "dump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DUSTY:: .ZWORD "dusty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DUSTY + .BYTE 0 +W?E:: .ZWORD "e" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?EAST +W?EAST:: .ZWORD "east" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?EAST +W?EAT:: .ZWORD "eat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?EIGHT:: .ZWORD "eight" + .BYTE PS?BUZZ-WORD + .BYTE B?EIGHT + .BYTE 0 +W?EIGHTE:: .ZWORD "eighte" + .BYTE PS?BUZZ-WORD + .BYTE B?EIGHTE + .BYTE 0 +W?EIGHTY:: .ZWORD "eighty" + .BYTE PS?BUZZ-WORD + .BYTE B?EIGHTY + .BYTE 0 +W?ELEVATE:: .ZWORD "elevat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?ELEVEN:: .ZWORD "eleven" + .BYTE PS?BUZZ-WORD + .BYTE B?ELEVEN + .BYTE 0 +W?ELVISH:: .ZWORD "elvish" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ELVISH + .BYTE 0 +W?EMBARK:: .ZWORD "embark" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?EMPLOY:: .ZWORD "employ" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?USE + .BYTE 0 +W?EMPTY:: .ZWORD "empty" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EMPTY + .BYTE 0 +W?END:: .ZWORD "end" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ENTER:: .ZWORD "enter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENTER + .BYTE 0 +W?ERASE:: .ZWORD "erase" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?EVERYTHING:: .ZWORD "everyt" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?EXAMINE:: .ZWORD "examin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?EXCAVATE:: .ZWORD "excava" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIG + .BYTE 0 +W?EXCEPT:: .ZWORD "except" + .BYTE PS?BUZZ-WORD + .BYTE B?EXCEPT + .BYTE 0 +W?EXIT:: .ZWORD "exit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?EXPLOIT:: .ZWORD "exploi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?USE + .BYTE 0 +W?EXTINGUISH:: .ZWORD "exting" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?FACE:: .ZWORD "face" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?FAREWELL:: .ZWORD "farewe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?FASTEN:: .ZWORD "fasten" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?FEEL:: .ZWORD "feel" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?FEELIN:: .ZWORD "feelin" + .BYTE PS?BUZZ-WORD + .BYTE B?FEELIN + .BYTE 0 +W?FEET:: .ZWORD "feet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FESTIVE:: .ZWORD "festiv" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FESTIVE + .BYTE 0 +W?FIFTEE:: .ZWORD "fiftee" + .BYTE PS?BUZZ-WORD + .BYTE B?FIFTEE + .BYTE 0 +W?FIFTY:: .ZWORD "fifty" + .BYTE PS?BUZZ-WORD + .BYTE B?FIFTY + .BYTE 0 +W?FIGHT:: .ZWORD "fight" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?FIGHTING:: .ZWORD "fighti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIGHTING + .BYTE 0 +W?FILL:: .ZWORD "fill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FILL + .BYTE 0 +W?FILM:: .ZWORD "film" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FILM + .BYTE 0 +W?FINCH:: .ZWORD "finch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FIND:: .ZWORD "find" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?FIRE:: .ZWORD "fire" + .BYTE PS?OBJECT+PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIRE + .BYTE ACT?SHOOT +W?FIREPLACE:: .ZWORD "firepl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FIRST:: .ZWORD "first" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIRST + .BYTE 0 +W?FIVE:: .ZWORD "five" + .BYTE PS?BUZZ-WORD + .BYTE B?FIVE + .BYTE 0 +W?FLASH:: .ZWORD "flash" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLASH + .BYTE 0 +W?FLASHLIGHT:: .ZWORD "flashl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLING:: .ZWORD "fling" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?FLIP:: .ZWORD "flip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?FLOOR:: .ZWORD "floor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLOWER:: .ZWORD "flower" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLUFFY:: .ZWORD "fluffy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLUFFY + .BYTE 0 +W?FLUSH:: .ZWORD "flush" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUSH + .BYTE 0 +W?FLY:: .ZWORD "fly" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLY + .BYTE 0 +W?FOCUS:: .ZWORD "focus" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOCUS + .BYTE 0 +W?FOLDING:: .ZWORD "foldin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOLDING + .BYTE 0 +W?FOLLOW:: .ZWORD "follow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?FOOBAR:: .ZWORD "foobar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FOOT:: .ZWORD "foot" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOOT + .BYTE 0 +W?FOR:: .ZWORD "for" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FOR + .BYTE 0 +W?FORCE:: .ZWORD "force" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?FORTY:: .ZWORD "forty" + .BYTE PS?BUZZ-WORD + .BYTE B?FORTY + .BYTE 0 +W?FOUR:: .ZWORD "four" + .BYTE PS?BUZZ-WORD + .BYTE B?FOUR + .BYTE 0 +W?FOURTE:: .ZWORD "fourte" + .BYTE PS?BUZZ-WORD + .BYTE B?FOURTE + .BYTE 0 +W?FOURTH:: .ZWORD "fourth" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOURTH + .BYTE 0 +W?FOYER:: .ZWORD "foyer" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOYER + .BYTE 0 +W?FREE:: .ZWORD "free" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?FRISK:: .ZWORD "frisk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?FROM:: .ZWORD "from" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FROM + .BYTE 0 +W?FRONT:: .ZWORD "front" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FRONT + .BYTE 0 +W?FUCK:: .ZWORD "fuck" + .BYTE PS?BUZZ-WORD + .BYTE B?FUCK + .BYTE 0 +W?FUCKED:: .ZWORD "fucked" + .BYTE PS?BUZZ-WORD + .BYTE B?FUCKED + .BYTE 0 +W?FUCKING:: .ZWORD "fuckin" + .BYTE PS?BUZZ-WORD + .BYTE B?FUCKING + .BYTE 0 +W?FUSE:: .ZWORD "fuse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?G:: .ZWORD "g" + .BYTE PS?BUZZ-WORD + .BYTE B?G + .BYTE 0 +W?GAP:: .ZWORD "gap" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GARDEN:: .ZWORD "garden" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GARDEN + .BYTE 0 +W?GAZE:: .ZWORD "gaze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?GET:: .ZWORD "get" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GIANT:: .ZWORD "giant" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GIANT + .BYTE 0 +W?GIVE:: .ZWORD "give" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?GLASS:: .ZWORD "glass" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GLOWING:: .ZWORD "glowin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GLOWING + .BYTE 0 +W?GO:: .ZWORD "go" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?GO + .BYTE ACT?GO +W?GOBBLE:: .ZWORD "gobble" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?GODDAMNED:: .ZWORD "goddam" + .BYTE PS?BUZZ-WORD + .BYTE B?GODDAMNED + .BYTE 0 +W?GOODBYE:: .ZWORD "goodby" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?GRAB:: .ZWORD "grab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GRATER:: .ZWORD "grater" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GREASY:: .ZWORD "greasy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREASY + .BYTE 0 +W?GREEN:: .ZWORD "green" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREEN + .BYTE 0 +W?GREENS:: .ZWORD "greens" + .BYTE PS?BUZZ-WORD + .BYTE B?GREENS + .BYTE 0 +W?GREET:: .ZWORD "greet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?GREETINGS:: .ZWORD "greeti" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?GRIN:: .ZWORD "grin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?GROUND:: .ZWORD "ground" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GROUND + .BYTE 0 +W?GUN:: .ZWORD "gun" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GUZZLE:: .ZWORD "guzzle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?HAIR:: .ZWORD "hair" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HAIR + .BYTE 0 +W?HAIRY:: .ZWORD "hairy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HAIRY + .BYTE 0 +W?HAND:: .ZWORD "hand" + .BYTE PS?OBJECT+PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HAND + .BYTE ACT?GIVE +W?HANDLE:: .ZWORD "handle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HANDS:: .ZWORD "hands" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HANG:: .ZWORD "hang" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HANG + .BYTE 0 +W?HAS:: .ZWORD "has" + .BYTE PS?BUZZ-WORD + .BYTE B?HAS + .BYTE 0 +W?HATCH:: .ZWORD "hatch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HAVE:: .ZWORD "have" + .BYTE PS?BUZZ-WORD + .BYTE B?HAVE + .BYTE 0 +W?HE:: .ZWORD "he" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HE'S:: .ZWORD "he's" + .BYTE PS?BUZZ-WORD + .BYTE B?HE'S + .BYTE 0 +W?HEAD:: .ZWORD "head" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HEAR:: .ZWORD "hear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HEAR + .BYTE 0 +W?HEAVY:: .ZWORD "heavy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEAVY + .BYTE 0 +W?HEDGE:: .ZWORD "hedge" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEDGE + .BYTE 0 +W?HELLO:: .ZWORD "hello" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HELP:: .ZWORD "help" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?HER:: .ZWORD "her" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HERE:: .ZWORD "here" + .BYTE PS?BUZZ-WORD + .BYTE B?HERE + .BYTE 0 +W?HERMAN:: .ZWORD "herman" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HI:: .ZWORD "hi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HIDE:: .ZWORD "hide" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HIDE + .BYTE 0 +W?HIKE:: .ZWORD "hike" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?HILDEBUD:: .ZWORD "hildeb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HILDEG:: .ZWORD "hildeg" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HILDEG + .BYTE 0 +W?HIM:: .ZWORD "him" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HINT:: .ZWORD "hint" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HINT + .BYTE 0 +W?HINTS:: .ZWORD "hints" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HINT + .BYTE 0 +W?HIT:: .ZWORD "hit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?HOIST:: .ZWORD "hoist" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?HOLD:: .ZWORD "hold" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?HOLE:: .ZWORD "hole" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOOK:: .ZWORD "hook" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?HOOKS:: .ZWORD "hooks" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOP:: .ZWORD "hop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?HOPPER:: .ZWORD "hopper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOUSE:: .ZWORD "house" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOWL:: .ZWORD "howl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?HUNDRE:: .ZWORD "hundre" + .BYTE PS?BUZZ-WORD + .BYTE B?HUNDRE + .BYTE 0 +W?HURL:: .ZWORD "hurl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?HURT:: .ZWORD "hurt" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?HYDRANT:: .ZWORD "hydran" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?I:: .ZWORD "i" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?I + .BYTE 0 +W?I'LL:: .ZWORD "i'll" + .BYTE PS?BUZZ-WORD + .BYTE B?I'LL + .BYTE 0 +W?I'M:: .ZWORD "i'm" + .BYTE PS?BUZZ-WORD + .BYTE B?I'M + .BYTE 0 +W?I'VE:: .ZWORD "i've" + .BYTE PS?BUZZ-WORD + .BYTE B?I'VE + .BYTE 0 +W?IGNITE:: .ZWORD "ignite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIGHT + .BYTE 0 +W?IMAGE:: .ZWORD "image" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?IN:: .ZWORD "in" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 20 + .BYTE PR?IN +W?INDIGO:: .ZWORD "indigo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?INDIGO + .BYTE 0 +W?INJURE:: .ZWORD "injure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?INSERT:: .ZWORD "insert" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?INSIDE:: .ZWORD "inside" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?INSPECT:: .ZWORD "inspec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?INTERROGATE:: .ZWORD "interr" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?INTNUM:: .ZWORD "intnum" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?INTO:: .ZWORD "into" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?INVENTORY:: .ZWORD "invent" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?I + .BYTE 0 +W?IS:: .ZWORD "is" + .BYTE PS?BUZZ-WORD + .BYTE B?IS + .BYTE 0 +W?IT:: .ZWORD "it" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?IT'S:: .ZWORD "it's" + .BYTE PS?BUZZ-WORD + .BYTE B?IT'S + .BYTE 0 +W?JAB:: .ZWORD "jab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POKE + .BYTE 0 +W?JACK:: .ZWORD "jack" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?JACK + .BYTE 0 +W?JOHN:: .ZWORD "john" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JOSTLE:: .ZWORD "jostle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?JUMP:: .ZWORD "jump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?KICK:: .ZWORD "kick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KICK + .BYTE 0 +W?KILL:: .ZWORD "kill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?KISS:: .ZWORD "kiss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KISS + .BYTE 0 +W?KNOCK:: .ZWORD "knock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?L:: .ZWORD "l" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LABYRINTYH:: .ZWORD "labyri" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LADDER:: .ZWORD "ladder" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LAMP:: .ZWORD "lamp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LARGE:: .ZWORD "large" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?LAUGH:: .ZWORD "laugh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?LAY:: .ZWORD "lay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?LEAKY:: .ZWORD "leaky" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LEAKY + .BYTE 0 +W?LEAP:: .ZWORD "leap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?LEAVE:: .ZWORD "leave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEAVE + .BYTE 0 +W?LEFT:: .ZWORD "left" + .BYTE PS?ADJECTIVE+PS?PREPOSITION+P1?OBJECT + .BYTE PR?LEFT + .BYTE A?LEFT +W?LENS:: .ZWORD "lens" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LENS + .BYTE 0 +W?LET:: .ZWORD "let" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LET + .BYTE 0 +W?LET'S:: .ZWORD "let's" + .BYTE PS?BUZZ-WORD + .BYTE B?LET'S + .BYTE 0 +W?LETTER:: .ZWORD "letter" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LETTER + .BYTE 0 +W?LID:: .ZWORD "lid" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LIE:: .ZWORD "lie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIE + .BYTE 0 +W?LIFT:: .ZWORD "lift" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?LIGHT:: .ZWORD "light" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LIGHT + .BYTE 0 +W?LIGHTS:: .ZWORD "lights" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LINE:: .ZWORD "line" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LISTEN:: .ZWORD "listen" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LISTEN + .BYTE 0 +W?LOAD:: .ZWORD "load" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?LOCK:: .ZWORD "lock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOCK + .BYTE 0 +W?LOITER:: .ZWORD "loiter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?LONG:: .ZWORD "long" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LONG + .BYTE 0 +W?LOOK:: .ZWORD "look" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LOOSE:: .ZWORD "loose" + .BYTE PS?ADJECTIVE+PS?PREPOSITION+P1?OBJECT + .BYTE PR?LOOSE + .BYTE A?LOOSE +W?LOWER:: .ZWORD "lower" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOWER + .BYTE 0 +W?MAGGIO:: .ZWORD "maggio" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAGGIO + .BYTE 0 +W?MAIL:: .ZWORD "mail" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAIL + .BYTE 0 +W?MAILBAG:: .ZWORD "mailba" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAILBOX:: .ZWORD "mailbo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MALTESE:: .ZWORD "maltes" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MALTESE + .BYTE 0 +W?MAMA:: .ZWORD "mama" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAMA + .BYTE 0 +W?MAMA'S:: .ZWORD "mama's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAMA'S + .BYTE 0 +W?MANTLE:: .ZWORD "mantle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAP:: .ZWORD "map" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MASK:: .ZWORD "mask" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAT:: .ZWORD "mat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MATCH:: .ZWORD "match" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MATCHBOX:: .ZWORD "matchb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MATCHES:: .ZWORD "matche" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAZE:: .ZWORD "maze" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ME:: .ZWORD "me" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MELTED:: .ZWORD "melted" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MELTED + .BYTE 0 +W?METAL:: .ZWORD "metal" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?METAL + .BYTE 0 +W?METER:: .ZWORD "meter" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MILLIO:: .ZWORD "millio" + .BYTE PS?BUZZ-WORD + .BYTE B?MILLIO + .BYTE 0 +W?MISS:: .ZWORD "miss" + .BYTE PS?BUZZ-WORD + .BYTE B?MISS + .BYTE 0 +W?MISTY:: .ZWORD "misty" + .BYTE PS?BUZZ-WORD + .BYTE B?MISTY + .BYTE 0 +W?MODEL:: .ZWORD "model" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOLEST:: .ZWORD "molest" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAPE + .BYTE 0 +W?MONEY:: .ZWORD "money" + .BYTE PS?BUZZ-WORD + .BYTE B?MONEY + .BYTE 0 +W?MONSTER:: .ZWORD "monste" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MONUMENT:: .ZWORD "monume" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOP:: .ZWORD "mop" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MORTAR:: .ZWORD "mortar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOVE:: .ZWORD "move" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?MOVIE:: .ZWORD "movie" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MOVIE + .BYTE 0 +W?MR:: .ZWORD "mr" + .BYTE PS?BUZZ-WORD + .BYTE B?MR + .BYTE 0 +W?MRS:: .ZWORD "mrs" + .BYTE PS?BUZZ-WORD + .BYTE B?MRS + .BYTE 0 +W?MURDER:: .ZWORD "murder" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?MY:: .ZWORD "my" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MY + .BYTE 0 +W?MYSELF:: .ZWORD "myself" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?N:: .ZWORD "n" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?NORTH +W?NAIL:: .ZWORD "nail" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NAIL + .BYTE 0 +W?NAP:: .ZWORD "nap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?NAW:: .ZWORD "naw" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?NAY:: .ZWORD "nay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?NE:: .ZWORD "ne" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?NE +W?NEGATIVE:: .ZWORD "negati" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?NEW:: .ZWORD "new" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NEW + .BYTE 0 +W?NEWEL:: .ZWORD "newel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NEWSLETTER:: .ZWORD "newsle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NIBBLE:: .ZWORD "nibble" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?NICHE:: .ZWORD "niche" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NINE:: .ZWORD "nine" + .BYTE PS?BUZZ-WORD + .BYTE B?NINE + .BYTE 0 +W?NINETE:: .ZWORD "ninete" + .BYTE PS?BUZZ-WORD + .BYTE B?NINETE + .BYTE 0 +W?NINETY:: .ZWORD "ninety" + .BYTE PS?BUZZ-WORD + .BYTE B?NINETY + .BYTE 0 +W?NO:: .ZWORD "no" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?NOD:: .ZWORD "nod" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?NOPE:: .ZWORD "nope" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?NORTH:: .ZWORD "north" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?NORTH +W?NORTHE:: .ZWORD "northe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?NE +W?NORTHW:: .ZWORD "northw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 23 + .BYTE A?NW +W?NOTE:: .ZWORD "note" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NUDGE:: .ZWORD "nudge" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?NW:: .ZWORD "nw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 23 + .BYTE A?NW +W?OAK:: .ZWORD "oak" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OAK + .BYTE 0 +W?OBSERVE:: .ZWORD "observ" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?OCEAN:: .ZWORD "ocean" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OF:: .ZWORD "of" + .BYTE PS?BUZZ-WORD + .BYTE B?OF + .BYTE 0 +W?OFF:: .ZWORD "off" + .BYTE PS?ADJECTIVE+PS?PREPOSITION+P1?OBJECT + .BYTE PR?OFF + .BYTE A?OFF +W?OFFER:: .ZWORD "offer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?OIL:: .ZWORD "oil" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OIL + .BYTE 0 +W?OK:: .ZWORD "ok" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?OKAY:: .ZWORD "okay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?OKLAHO:: .ZWORD "oklaho" + .BYTE PS?BUZZ-WORD + .BYTE B?OKLAHO + .BYTE 0 +W?ON:: .ZWORD "on" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?ONE:: .ZWORD "one" + .BYTE PS?BUZZ-WORD + .BYTE B?ONE + .BYTE 0 +W?ONTO:: .ZWORD "onto" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?OOPS:: .ZWORD "oops" + .BYTE PS?BUZZ-WORD + .BYTE B?OOPS + .BYTE 0 +W?OPEN:: .ZWORD "open" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OPEN + .BYTE 0 +W?ORANGE:: .ZWORD "orange" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ORANGE + .BYTE 0 +W?ORCHID:: .ZWORD "orchid" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OUT:: .ZWORD "out" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 19 + .BYTE PR?OUT +W?OUTSIDE:: .ZWORD "outsid" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OUT + .BYTE 0 +W?OVER:: .ZWORD "over" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OVER + .BYTE 0 +W?PAIL:: .ZWORD "pail" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAINTING:: .ZWORD "painti" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAIR:: .ZWORD "pair" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PAIR + .BYTE 0 +W?PALACE:: .ZWORD "palace" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PANEL:: .ZWORD "panel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAPER:: .ZWORD "paper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PARK:: .ZWORD "park" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PARKING:: .ZWORD "parkin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PARKING + .BYTE 0 +W?PAT:: .ZWORD "pat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PATIO:: .ZWORD "patio" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PATIO + .BYTE 0 +W?PEE:: .ZWORD "pee" + .BYTE PS?BUZZ-WORD + .BYTE B?PEE + .BYTE 0 +W?PEEK:: .ZWORD "peek" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?PEER:: .ZWORD "peer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?PEG:: .ZWORD "peg" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PEGS:: .ZWORD "pegs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PENGUIN:: .ZWORD "pengui" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PEOPLE:: .ZWORD "people" + .BYTE PS?BUZZ-WORD + .BYTE B?PEOPLE + .BYTE 0 +W?PERSIAN:: .ZWORD "persia" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PERSIAN + .BYTE 0 +W?PET:: .ZWORD "pet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PHONE:: .ZWORD "phone" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?CALL + .BYTE 0 +W?PHOTO:: .ZWORD "photo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIANO:: .ZWORD "piano" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PIANO + .BYTE 0 +W?PICK:: .ZWORD "pick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PICK + .BYTE 0 +W?PICTURE:: .ZWORD "pictur" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIECE:: .ZWORD "piece" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PIECE + .BYTE 0 +W?PIECES:: .ZWORD "pieces" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PILE:: .ZWORD "pile" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PILE + .BYTE 0 +W?PILLAR:: .ZWORD "pillar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIPE:: .ZWORD "pipe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PISS:: .ZWORD "piss" + .BYTE PS?BUZZ-WORD + .BYTE B?PISS + .BYTE 0 +W?PIT:: .ZWORD "pit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PITCH:: .ZWORD "pitch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?PLACE:: .ZWORD "place" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?PLANE:: .ZWORD "plane" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLANES:: .ZWORD "planes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLANK:: .ZWORD "plank" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLAQUE:: .ZWORD "plaque" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLASTIC:: .ZWORD "plasti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLASTIC + .BYTE 0 +W?PLAY:: .ZWORD "play" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PLAY + .BYTE 0 +W?PLAYER:: .ZWORD "player" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLUSH:: .ZWORD "plush" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLUSH + .BYTE 0 +W?POKE:: .ZWORD "poke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POKE + .BYTE 0 +W?POND:: .ZWORD "pond" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POOL:: .ZWORD "pool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PORTRAIT:: .ZWORD "portra" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POSITI:: .ZWORD "positi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?POSTAL:: .ZWORD "postal" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?POSTAL + .BYTE 0 +W?POT:: .ZWORD "pot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POUND:: .ZWORD "pound" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?POUR:: .ZWORD "pour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?PRAY:: .ZWORD "pray" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PRAY + .BYTE 0 +W?PRESENT:: .ZWORD "presen" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?PRESS:: .ZWORD "press" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PROCEED:: .ZWORD "procee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?PROJEC:: .ZWORD "projec" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PROJEC + .BYTE 0 +W?PRY:: .ZWORD "pry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OPEN + .BYTE 0 +W?PULL:: .ZWORD "pull" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?PULLEY:: .ZWORD "pulley" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PUNCH:: .ZWORD "punch" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PUNCH + .BYTE ACT?KILL +W?PUNY:: .ZWORD "puny" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PUNY + .BYTE 0 +W?PURSUE:: .ZWORD "pursue" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?PUSH:: .ZWORD "push" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PUT:: .ZWORD "put" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?Q:: .ZWORD "q" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?QUIT + .BYTE 0 +W?QUENCH:: .ZWORD "quench" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?QUERY:: .ZWORD "query" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?QUESTION:: .ZWORD "questi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?QUIT:: .ZWORD "quit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?QUIT + .BYTE 0 +W?QUIZ:: .ZWORD "quiz" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?RAISE:: .ZWORD "raise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?RANSACK:: .ZWORD "ransac" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?RAP:: .ZWORD "rap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?RAPE:: .ZWORD "rape" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAPE + .BYTE 0 +W?RATTLE:: .ZWORD "rattle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?REACH:: .ZWORD "reach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REACH + .BYTE 0 +W?READ:: .ZWORD "read" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?RECEIVER:: .ZWORD "receiv" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RECLINE:: .ZWORD "reclin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIE + .BYTE 0 +W?RED:: .ZWORD "red" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RED + .BYTE 0 +W?REEL:: .ZWORD "reel" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REEL + .BYTE 0 +W?RELEASE:: .ZWORD "releas" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RELEASE + .BYTE 0 +W?REMOVE:: .ZWORD "remove" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?REPLACE:: .ZWORD "replac" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REPLACE + .BYTE 0 +W?REPLY:: .ZWORD "reply" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?RESCUE:: .ZWORD "rescue" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?RESET:: .ZWORD "reset" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RESET + .BYTE ACT?RESET +W?RESPOND:: .ZWORD "respon" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?REST:: .ZWORD "rest" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?RESTAR:: .ZWORD "restar" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTAR + .BYTE 0 +W?RESTOR:: .ZWORD "restor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTOR + .BYTE 0 +W?RIDE:: .ZWORD "ride" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RIDE + .BYTE 0 +W?RIGHT:: .ZWORD "right" + .BYTE PS?ADJECTIVE+PS?PREPOSITION+P1?OBJECT + .BYTE PR?RIGHT + .BYTE A?RIGHT +W?RING:: .ZWORD "ring" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?RISE:: .ZWORD "rise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STAND + .BYTE 0 +W?ROCKET:: .ZWORD "rocket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROGER:: .ZWORD "roger" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROLL:: .ZWORD "roll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?ROOM:: .ZWORD "room" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROPE:: .ZWORD "rope" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROSE:: .ZWORD "rose" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROSE + .BYTE 0 +W?ROSES:: .ZWORD "roses" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROTATE:: .ZWORD "rotate" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?ROUND:: .ZWORD "round" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROUND + .BYTE 0 +W?ROUSE:: .ZWORD "rouse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?RUB:: .ZWORD "rub" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?RUBBER:: .ZWORD "rubber" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUBBER + .BYTE 0 +W?RUG:: .ZWORD "rug" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RUMMAGE:: .ZWORD "rummag" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?RUN:: .ZWORD "run" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?RUSTED:: .ZWORD "rusted" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUSTED + .BYTE 0 +W?RUSTY:: .ZWORD "rusty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUSTY + .BYTE 0 +W?S:: .ZWORD "s" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE A?SOUTH +W?SACK:: .ZWORD "sack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAFE:: .ZWORD "safe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SALAVATING:: .ZWORD "salava" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SALAVATING + .BYTE 0 +W?SALT:: .ZWORD "salt" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SALT + .BYTE 0 +W?SALUTE:: .ZWORD "salute" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?SAND:: .ZWORD "sand" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAVE:: .ZWORD "save" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAVE + .BYTE 0 +W?SAW:: .ZWORD "saw" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SAW + .BYTE 0 +W?SAWED:: .ZWORD "sawed" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SAWED + .BYTE 0 +W?SAWHORSE:: .ZWORD "sawhor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAY:: .ZWORD "say" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?SCALE:: .ZWORD "scale" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SCALE + .BYTE ACT?CLIMB +W?SCORE:: .ZWORD "score" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCORE + .BYTE 0 +W?SCRAM:: .ZWORD "scram" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?SCRAPE:: .ZWORD "scrape" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCRAPE + .BYTE 0 +W?SCREAM:: .ZWORD "scream" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SCREEN:: .ZWORD "screen" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SCREEN + .BYTE 0 +W?SCREW:: .ZWORD "screw" + .BYTE PS?BUZZ-WORD + .BYTE B?SCREW + .BYTE 0 +W?SCRIPT:: .ZWORD "script" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCRIPT + .BYTE 0 +W?SE:: .ZWORD "se" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE A?SE +W?SEA:: .ZWORD "sea" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SEA + .BYTE 0 +W?SEARCH:: .ZWORD "search" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?SEAT:: .ZWORD "seat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SEATS:: .ZWORD "seats" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SECOND:: .ZWORD "second" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECOND + .BYTE 0 +W?SECURE:: .ZWORD "secure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?SEE:: .ZWORD "see" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?SEEK:: .ZWORD "seek" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?SEIZE:: .ZWORD "seize" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?SET:: .ZWORD "set" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SEVEN:: .ZWORD "seven" + .BYTE PS?BUZZ-WORD + .BYTE B?SEVEN + .BYTE 0 +W?SEVENT:: .ZWORD "sevent" + .BYTE PS?BUZZ-WORD + .BYTE B?SEVENT + .BYTE 0 +W?SHAKE:: .ZWORD "shake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?SHALL:: .ZWORD "shall" + .BYTE PS?BUZZ-WORD + .BYTE B?SHALL + .BYTE 0 +W?SHE:: .ZWORD "she" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHE'S:: .ZWORD "she's" + .BYTE PS?BUZZ-WORD + .BYTE B?SHE'S + .BYTE 0 +W?SHEARS:: .ZWORD "shears" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHED:: .ZWORD "shed" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?SHIFT:: .ZWORD "shift" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?SHIT:: .ZWORD "shit" + .BYTE PS?BUZZ-WORD + .BYTE B?SHIT + .BYTE 0 +W?SHITHEAD:: .ZWORD "shithe" + .BYTE PS?BUZZ-WORD + .BYTE B?SHITHEAD + .BYTE 0 +W?SHOOT:: .ZWORD "shoot" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOOT + .BYTE 0 +W?SHOUT:: .ZWORD "shout" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SHOVE:: .ZWORD "shove" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?SHOVEL:: .ZWORD "shovel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHOW:: .ZWORD "show" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOW + .BYTE 0 +W?SHOWER:: .ZWORD "shower" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHREDDER:: .ZWORD "shredd" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHUT:: .ZWORD "shut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?SIMPLEX:: .ZWORD "simple" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SIMPLEX + .BYTE 0 +W?SIP:: .ZWORD "sip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?SIT:: .ZWORD "sit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SIT + .BYTE 0 +W?SIX:: .ZWORD "six" + .BYTE PS?BUZZ-WORD + .BYTE B?SIX + .BYTE 0 +W?SIXTEE:: .ZWORD "sixtee" + .BYTE PS?BUZZ-WORD + .BYTE B?SIXTEE + .BYTE 0 +W?SIXTY:: .ZWORD "sixty" + .BYTE PS?BUZZ-WORD + .BYTE B?SIXTY + .BYTE 0 +W?SKI:: .ZWORD "ski" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SKI + .BYTE 0 +W?SKIM:: .ZWORD "skim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?SKIP:: .ZWORD "skip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?SKIS:: .ZWORD "skis" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SLAM:: .ZWORD "slam" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?SLAP:: .ZWORD "slap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?SLASH:: .ZWORD "slash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CUT + .BYTE 0 +W?SLAY:: .ZWORD "slay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?SLEEP:: .ZWORD "sleep" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?SLIDE:: .ZWORD "slide" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SLIDE + .BYTE 0 +W?SLOT:: .ZWORD "slot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SMALL:: .ZWORD "small" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?SMASH:: .ZWORD "smash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?SMELL:: .ZWORD "smell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SMILE:: .ZWORD "smile" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?SMOLDERING:: .ZWORD "smolde" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMOLDERING + .BYTE 0 +W?SMOOCH:: .ZWORD "smooch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KISS + .BYTE 0 +W?SNATCH:: .ZWORD "snatch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?SNEER:: .ZWORD "sneer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?SNIFF:: .ZWORD "sniff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SNOOZE:: .ZWORD "snooze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?SNUFF:: .ZWORD "snuff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?SOFA:: .ZWORD "sofa" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SOME:: .ZWORD "some" + .BYTE PS?BUZZ-WORD + .BYTE B?SOME + .BYTE 0 +W?SOUTH:: .ZWORD "south" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE A?SOUTH +W?SOUTHE:: .ZWORD "southe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE A?SE +W?SOUTHW:: .ZWORD "southw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE A?SW +W?SPACE:: .ZWORD "space" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPACE + .BYTE 0 +W?SPADE:: .ZWORD "spade" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPEAK:: .ZWORD "speak" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?SPILL:: .ZWORD "spill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?SPIN:: .ZWORD "spin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SPLICE:: .ZWORD "splice" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SPLICE + .BYTE 0 +W?SPOT:: .ZWORD "spot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPRINKLE:: .ZWORD "sprink" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?SQUASH:: .ZWORD "squash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SQUEEZE + .BYTE 0 +W?SQUAT:: .ZWORD "squat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SIT + .BYTE 0 +W?SQUEEZE:: .ZWORD "squeez" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SQUEEZE + .BYTE 0 +W?STAB:: .ZWORD "stab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?STACK:: .ZWORD "stack" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STACK + .BYTE 0 +W?STAIRCASE:: .ZWORD "stairc" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAIRS:: .ZWORD "stairs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAMP:: .ZWORD "stamp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAND:: .ZWORD "stand" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STAND + .BYTE 0 +W?STARDU:: .ZWORD "stardu" + .BYTE PS?BUZZ-WORD + .BYTE B?STARDU + .BYTE 0 +W?STARE:: .ZWORD "stare" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?STARTLE:: .ZWORD "startl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?STASH:: .ZWORD "stash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?STATUE:: .ZWORD "statue" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STATUS:: .ZWORD "status" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STATUS + .BYTE 0 +W?STEAL:: .ZWORD "steal" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?STEEL:: .ZWORD "steel" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STEEL + .BYTE 0 +W?STEEP:: .ZWORD "steep" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STEEP + .BYTE 0 +W?STEP:: .ZWORD "step" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?STEPS:: .ZWORD "steps" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STICK:: .ZWORD "stick" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STICK + .BYTE 0 +W?STONE:: .ZWORD "stone" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STONE + .BYTE 0 +W?STOP:: .ZWORD "stop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STOP + .BYTE 0 +W?STRIKE:: .ZWORD "strike" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?STRIP:: .ZWORD "strip" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STUDY:: .ZWORD "study" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?STUFF:: .ZWORD "stuff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?STUFFED:: .ZWORD "stuffe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STUFFED + .BYTE 0 +W?SUCK:: .ZWORD "suck" + .BYTE PS?BUZZ-WORD + .BYTE B?SUCK + .BYTE 0 +W?SUPER:: .ZWORD "super" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SUPERBRIEF:: .ZWORD "superb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SURE:: .ZWORD "sure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?SURPRISE:: .ZWORD "surpri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?SURVEY:: .ZWORD "survey" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?SW:: .ZWORD "sw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE A?SW +W?SWALLOW:: .ZWORD "swallo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?SWEEP:: .ZWORD "sweep" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLEAN + .BYTE 0 +W?SWIM:: .ZWORD "swim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWIM + .BYTE 0 +W?SWING:: .ZWORD "swing" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWING + .BYTE 0 +W?SWORD:: .ZWORD "sword" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?T:: .ZWORD "t" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIME + .BYTE 0 +W?TABLE:: .ZWORD "table" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TAKE:: .ZWORD "take" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?TALK:: .ZWORD "talk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?TALLY:: .ZWORD "tally" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COUNT + .BYTE 0 +W?TANK:: .ZWORD "tank" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TANKS:: .ZWORD "tanks" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TASTE:: .ZWORD "taste" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?TELEPHONE:: .ZWORD "teleph" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TELL:: .ZWORD "tell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TELL + .BYTE 0 +W?TEN:: .ZWORD "ten" + .BYTE PS?BUZZ-WORD + .BYTE B?TEN + .BYTE 0 +W?THAT:: .ZWORD "that" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?THAT'S:: .ZWORD "that's" + .BYTE PS?BUZZ-WORD + .BYTE B?THAT'S + .BYTE 0 +W?THE:: .ZWORD "the" + .BYTE PS?BUZZ-WORD + .BYTE B?THE + .BYTE 0 +W?THEM:: .ZWORD "them" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?THEN:: .ZWORD "then" + .BYTE PS?BUZZ-WORD + .BYTE B?THEN + .BYTE 0 +W?THEY:: .ZWORD "they" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?THEY'RE:: .ZWORD "they'r" + .BYTE PS?BUZZ-WORD + .BYTE B?THEY'RE + .BYTE 0 +W?THICK:: .ZWORD "thick" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THICK + .BYTE 0 +W?THIN:: .ZWORD "thin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THIN + .BYTE 0 +W?THIRD:: .ZWORD "third" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THIRD + .BYTE 0 +W?THIRTE:: .ZWORD "thirte" + .BYTE PS?BUZZ-WORD + .BYTE B?THIRTE + .BYTE 0 +W?THIRTY:: .ZWORD "thirty" + .BYTE PS?BUZZ-WORD + .BYTE B?THIRTY + .BYTE 0 +W?THOUSA:: .ZWORD "thousa" + .BYTE PS?BUZZ-WORD + .BYTE B?THOUSA + .BYTE 0 +W?THREAD:: .ZWORD "thread" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?THREE:: .ZWORD "three" + .BYTE PS?BUZZ-WORD + .BYTE B?THREE + .BYTE 0 +W?THROUGH:: .ZWORD "throug" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?THROUGH + .BYTE 0 +W?THROW:: .ZWORD "throw" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?THRU:: .ZWORD "thru" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?THROUGH + .BYTE 0 +W?THRUST:: .ZWORD "thrust" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?TIE:: .ZWORD "tie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?TIME:: .ZWORD "time" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIME + .BYTE 0 +W?TIMES:: .ZWORD "times" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TINY:: .ZWORD "tiny" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TINY + .BYTE 0 +W?TO:: .ZWORD "to" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TOILET:: .ZWORD "toilet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TOKYO:: .ZWORD "tokyo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TOMORR:: .ZWORD "tomorr" + .BYTE PS?BUZZ-WORD + .BYTE B?TOMORR + .BYTE 0 +W?TONIGH:: .ZWORD "tonigh" + .BYTE PS?BUZZ-WORD + .BYTE B?TONIGH + .BYTE 0 +W?TOP:: .ZWORD "top" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TOP + .BYTE 0 +W?TORCH:: .ZWORD "torch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TOSS:: .ZWORD "toss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?TOUCH:: .ZWORD "touch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?TOUPEE:: .ZWORD "toupee" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TOWARD:: .ZWORD "toward" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TRAMP:: .ZWORD "tramp" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?TRANSPARENCY:: .ZWORD "transp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TRASH:: .ZWORD "trash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?TRAVERSE:: .ZWORD "traver" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?TREE:: .ZWORD "tree" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREES:: .ZWORD "trees" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TRUCK:: .ZWORD "truck" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TRUDGE:: .ZWORD "trudge" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?TRUNK:: .ZWORD "trunk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TUG:: .ZWORD "tug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?TULIP:: .ZWORD "tulip" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TULIPS:: .ZWORD "tulips" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TURN:: .ZWORD "turn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?TWELVE:: .ZWORD "twelve" + .BYTE PS?BUZZ-WORD + .BYTE B?TWELVE + .BYTE 0 +W?TWENTY:: .ZWORD "twenty" + .BYTE PS?BUZZ-WORD + .BYTE B?TWENTY + .BYTE 0 +W?TWIST:: .ZWORD "twist" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?TWO:: .ZWORD "two" + .BYTE PS?BUZZ-WORD + .BYTE B?TWO + .BYTE 0 +W?U:: .ZWORD "u" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 22 + .BYTE PR?UP +W?UNATTACH:: .ZWORD "unatta" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNCLE:: .ZWORD "uncle" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?UNCLE + .BYTE 0 +W?UNDER:: .ZWORD "under" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?UNDERNEATH:: .ZWORD "undern" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?UNDO:: .ZWORD "undo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNFASTEN:: .ZWORD "unfast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNHOOK:: .ZWORD "unhook" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNLOCK:: .ZWORD "unlock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNLOCK + .BYTE 0 +W?UNROLL:: .ZWORD "unroll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNROLL + .BYTE 0 +W?UNSCRIPT:: .ZWORD "unscri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNSCRIPT + .BYTE 0 +W?UNSEAL:: .ZWORD "unseal" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OPEN + .BYTE 0 +W?UNTIE:: .ZWORD "untie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UP:: .ZWORD "up" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 22 + .BYTE PR?UP +W?USE:: .ZWORD "use" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?USE + .BYTE 0 +W?USING:: .ZWORD "using" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?UTTER:: .ZWORD "utter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?VALENTI:: .ZWORD "valent" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VALENTI + .BYTE 0 +W?VELVET:: .ZWORD "velvet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VELVET + .BYTE 0 +W?VERBOSE:: .ZWORD "verbos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERBOSE + .BYTE 0 +W?VERSION:: .ZWORD "versio" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERSION + .BYTE 0 +W?VIEWING:: .ZWORD "viewin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VIEWING + .BYTE 0 +W?VIOLET:: .ZWORD "violet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VIOLET + .BYTE 0 +W?W:: .ZWORD "w" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE A?WEST +W?WAIT:: .ZWORD "wait" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?WAKE:: .ZWORD "wake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?WALK:: .ZWORD "walk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?WALL:: .ZWORD "wall" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WALL + .BYTE 0 +W?WALLS:: .ZWORD "walls" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WALNUT:: .ZWORD "walnut" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WALNUT + .BYTE 0 +W?WASHED:: .ZWORD "washed" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WASHED + .BYTE 0 +W?WATCH:: .ZWORD "watch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?WATER:: .ZWORD "water" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?WATER + .BYTE 0 +W?WAVE:: .ZWORD "wave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?WAX:: .ZWORD "wax" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WAX + .BYTE 0 +W?WE'RE:: .ZWORD "we're" + .BYTE PS?BUZZ-WORD + .BYTE B?WE'RE + .BYTE 0 +W?WEAR:: .ZWORD "wear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WEAR + .BYTE 0 +W?WEDGE:: .ZWORD "wedge" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?WERE:: .ZWORD "were" + .BYTE PS?BUZZ-WORD + .BYTE B?WERE + .BYTE 0 +W?WEST:: .ZWORD "west" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE A?WEST +W?WHACK:: .ZWORD "whack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?WHEEL:: .ZWORD "wheel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WHIP:: .ZWORD "whip" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHIP + .BYTE 0 +W?WHIPPED:: .ZWORD "whippe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHIPPED + .BYTE 0 +W?WHIRL:: .ZWORD "whirl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?WHITE:: .ZWORD "white" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHITE + .BYTE 0 +W?WICK:: .ZWORD "wick" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WIDE:: .ZWORD "wide" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WIDE + .BYTE 0 +W?WINDOW:: .ZWORD "window" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WITH:: .ZWORD "with" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?WITHDRAW:: .ZWORD "withdr" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?WOODEN:: .ZWORD "wooden" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 +W?WORDS:: .ZWORD "words" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WORN:: .ZWORD "worn" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WORN + .BYTE 0 +W?WOUND:: .ZWORD "wound" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KILL + .BYTE 0 +W?WRECK:: .ZWORD "wreck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREAK + .BYTE 0 +W?Y:: .ZWORD "y" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YANK:: .ZWORD "yank" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?YELL:: .ZWORD "yell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?YELLOW:: .ZWORD "yellow" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?YELLOW + .BYTE 0 +W?YES:: .ZWORD "yes" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YESTER:: .ZWORD "yester" + .BYTE PS?BUZZ-WORD + .BYTE B?YESTER + .BYTE 0 +W?YOU'RE:: .ZWORD "you're" + .BYTE PS?BUZZ-WORD + .BYTE B?YOU'RE + .BYTE 0 +W?YUP:: .ZWORD "yup" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?Z:: .ZWORD "z" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?ZERO:: .ZWORD "zero" + .BYTE PS?BUZZ-WORD + .BYTE B?ZERO + .BYTE 0 +W?ZORK:: .ZWORD "zork" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ZORK + .BYTE 0 +W?ZZZP:: .ZWORD "zzzp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 + .ENDT + + +; END LOAD + +ENDLOD:: + + + .ENDI diff --git a/anthillfreq.xzap b/anthillfreq.xzap new file mode 100644 index 0000000..43a45a8 --- /dev/null +++ b/anthillfreq.xzap @@ -0,0 +1,200 @@ + .FSTR FSTR?1,"the " ;2224 1113 + .FSTR FSTR?2,"You " ;1047 350 + .FSTR FSTR?3,"The " ;759 254 + .FSTR FSTR?4,"and " ;598 300 + .FSTR FSTR?5,"you " ;512 257 + .FSTR FSTR?6,". " ;464 465 + .FSTR FSTR?7,", " ;455 456 + .FSTR FSTR?8,"of " ;412 413 + .FSTR FSTR?9,"to " ;403 404 + .FSTR FSTR?10,"It's " ;390 79 + .FSTR FSTR?11,"your " ;345 116 + .FSTR FSTR?12,"can't " ;345 70 + .FSTR FSTR?13,"is " ;278 279 + .FSTR FSTR?14,"Hildegarde " ;270 28 + .FSTR FSTR?15,"with " ;261 88 + .FSTR FSTR?16,"You're " ;252 37 + .FSTR FSTR?17,"from " ;231 78 + .FSTR FSTR?18,"Aunt " ;224 57 + .FSTR FSTR?19,"Uncle " ;220 45 + .FSTR FSTR?20,"in " ;218 219 + .FSTR FSTR?21,"There " ;215 44 + .FSTR FSTR?22,"Buddy's " ;184 24 + .FSTR FSTR?23,"This " ;168 43 + .FSTR FSTR?24,"through " ;168 29 + .FSTR FSTR?25,"down " ;165 56 + .FSTR FSTR?26,"have " ;162 55 + .FSTR FSTR?27,"already " ;162 28 + .FSTR FSTR?28,"Hildegarde's " ;156 13 + .FSTR FSTR?29,"into " ;150 51 + .FSTR FSTR?30,"would " ;148 38 + .FSTR FSTR?31,"closet " ;145 30 + .FSTR FSTR?32,"nothing " ;144 25 + .FSTR FSTR?33,"Herman " ;138 24 + .FSTR FSTR?34,"standing " ;133 20 + .FSTR FSTR?35,"that " ;132 45 + .FSTR FSTR?36,"There's " ;128 17 + .FSTR FSTR?37,"Cousin " ;126 22 + .FSTR FSTR?38,"this " ;117 40 + .FSTR FSTR?39,"Hildegarde" ;117 14 + .FSTR FSTR?40,"on " ;115 116 + .FSTR FSTR?41,"walkway " ;114 20 + .FSTR FSTR?42,"out " ;112 57 + .FSTR FSTR?43,"then " ;111 38 + .FSTR FSTR?44,"here" ;110 56 + .FSTR FSTR?45,"about " ;108 28 + .FSTR FSTR?46,"for " ;106 54 + .FSTR FSTR?47,"small " ;104 27 + .FSTR FSTR?48,"leads " ;104 27 + .FSTR FSTR?49,"floor " ;104 27 + .FSTR FSTR?50,"are " ;100 51 + .FSTR FSTR?51,"It " ;100 51 + .FSTR FSTR?52,"see " ;96 49 + .FSTR FSTR?53,"which " ;96 25 + .FSTR FSTR?54,"several " ;96 17 + .FSTR FSTR?55,"that" ;94 48 + .FSTR FSTR?56,"north " ;92 24 + .FSTR FSTR?57,"doesn't " ;91 14 + .FSTR FSTR?58,"You'll " ;91 14 + .FSTR FSTR?59,"hear " ;90 31 + .FSTR FSTR?60,"rocket " ;90 19 + .FSTR FSTR?61,"Buddy " ;90 19 + .FSTR FSTR?62,"plastic " ;90 16 + .FSTR FSTR?63,"closed" ;88 23 + .FSTR FSTR?64,"it " ;86 87 + .FSTR FSTR?65,"but " ;86 44 + .FSTR FSTR?66,"won't " ;85 18 + .FSTR FSTR?67,"stairs " ;85 18 + .FSTR FSTR?68,"isn't " ;85 18 + .FSTR FSTR?69,"around " ;85 18 + .FSTR FSTR?70,"it's " ;84 22 + .FSTR FSTR?71,"garden" ;84 22 + .FSTR FSTR?72,"don't " ;80 17 + .FSTR FSTR?73,"treasures" ;77 12 + .FSTR FSTR?74,"only " ;75 26 + .FSTR FSTR?75,"east " ;75 26 + .FSTR FSTR?76,"ladder " ;75 16 + .FSTR FSTR?77,"begins " ;75 16 + .FSTR FSTR?78,"A " ;74 75 + .FSTR FSTR?79,"can " ;74 38 + .FSTR FSTR?80,"room " ;72 25 + .FSTR FSTR?81,"like " ;72 25 + .FSTR FSTR?82,"under " ;72 19 + .FSTR FSTR?83,"right " ;72 19 + .FSTR FSTR?84,"front " ;72 19 + .FSTR FSTR?85,"you're " ;72 13 + .FSTR FSTR?86,"chimney " ;72 13 + .FSTR FSTR?87,"Hollywood " ;72 9 + .FSTR FSTR?88,"south" ;69 24 + .FSTR FSTR?89,"as " ;68 69 + .FSTR FSTR?90,"not " ;68 35 + .FSTR FSTR?91,"where " ;68 18 + .FSTR FSTR?92,"there " ;68 18 + .FSTR FSTR?93,"south " ;68 18 + .FSTR FSTR?94,"find " ;66 23 + .FSTR FSTR?95,"didn't " ;66 12 + .FSTR FSTR?96,"pieces " ;65 14 + + +;word frequency table of 96 most common words + +WORDS:: .TABLE + FSTR?1 + FSTR?2 + FSTR?3 + FSTR?4 + FSTR?5 + FSTR?6 + FSTR?7 + FSTR?8 + FSTR?9 + FSTR?10 + FSTR?11 + FSTR?12 + FSTR?13 + FSTR?14 + FSTR?15 + FSTR?16 + FSTR?17 + FSTR?18 + FSTR?19 + FSTR?20 + FSTR?21 + FSTR?22 + FSTR?23 + FSTR?24 + FSTR?25 + FSTR?26 + FSTR?27 + FSTR?28 + FSTR?29 + FSTR?30 + FSTR?31 + FSTR?32 + FSTR?33 + FSTR?34 + FSTR?35 + FSTR?36 + FSTR?37 + FSTR?38 + FSTR?39 + FSTR?40 + FSTR?41 + FSTR?42 + FSTR?43 + FSTR?44 + FSTR?45 + FSTR?46 + FSTR?47 + FSTR?48 + FSTR?49 + FSTR?50 + FSTR?51 + FSTR?52 + FSTR?53 + FSTR?54 + FSTR?55 + FSTR?56 + FSTR?57 + FSTR?58 + FSTR?59 + FSTR?60 + FSTR?61 + FSTR?62 + FSTR?63 + FSTR?64 + FSTR?65 + FSTR?66 + FSTR?67 + FSTR?68 + FSTR?69 + FSTR?70 + FSTR?71 + FSTR?72 + FSTR?73 + FSTR?74 + FSTR?75 + FSTR?76 + FSTR?77 + FSTR?78 + FSTR?79 + FSTR?80 + FSTR?81 + FSTR?82 + FSTR?83 + FSTR?84 + FSTR?85 + FSTR?86 + FSTR?87 + FSTR?88 + FSTR?89 + FSTR?90 + FSTR?91 + FSTR?92 + FSTR?93 + FSTR?94 + FSTR?95 + FSTR?96 + .ENDT + + .ENDI diff --git a/anthillpur.zap b/anthillpur.zap new file mode 100644 index 0000000..b3d5abf --- /dev/null +++ b/anthillpur.zap @@ -0,0 +1,175 @@ + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + +PT?1:: .TABLE + STR?3 + STR?4 + .ENDT + +PT?2:: .TABLE + STR?5 + STR?6 + .ENDT + +PT?3:: .TABLE + STR?7 + STR?8 + .ENDT + +PT?4:: .TABLE + STR?9 + STR?4 + .ENDT + +PT?5:: .TABLE + 3 + W?ROOM + W?SCREEN + SCREENING-ROOM-PSEUDO-F + .ENDT + +PT?6:: .TABLE + 3 + W?CASTERS + W?PIANO + CASTERS-PSEUDO + .ENDT + +PT?7:: +PT?8:: .TABLE + 6 + W?BEAM + W?WOODEN + BEAM-PSEUDO + W?BEAM + W?THICK + BEAM-PSEUDO + .ENDT + +PT?9:: .TABLE + 3 + W?CELLAR + 0 + CELLAR-PSEUDO + .ENDT + +PT?10:: .TABLE + 6 + W?BATH + 0 + BATH-PSEUDO + W?SHOWER + 0 + BATH-PSEUDO + .ENDT + +PT?11:: .TABLE + 3 + W?PULLEY + 0 + PULLEY-PSEUDO + .ENDT + +PT?12:: .TABLE + 3 + W?ROSE + W?COMPASS + COMPASS-ROSE-PSEUDO + .ENDT + +PT?13:: +PT?16:: .TABLE + 9 + W?TREES + 0 + FLORAL-PSEUDO + W?TREE + 0 + FLORAL-PSEUDO + W?FLOWER + 0 + FLORAL-PSEUDO + .ENDT + +PT?14:: .TABLE + 18 + W?BUSH + W?ROSE + ROSE-BUSH-PSEUDO + W?ROSE + 0 + ROSE-BUSH-PSEUDO + W?ROSES + 0 + FLORAL-PSEUDO + W?TREES + 0 + FLORAL-PSEUDO + W?TREE + 0 + FLORAL-PSEUDO + W?FLOWER + 0 + FLORAL-PSEUDO + .ENDT + +PT?15:: .TABLE + 15 + W?TULIP + 0 + FLORAL-PSEUDO + W?TULIPS + 0 + FLORAL-PSEUDO + W?TREES + 0 + FLORAL-PSEUDO + W?TREE + 0 + FLORAL-PSEUDO + W?FLOWER + 0 + FLORAL-PSEUDO + .ENDT + +PT?17:: .TABLE + 3 + W?CLIFF + 0 + CLIFF-PSEUDO + .ENDT + +PT?18:: .TABLE + 3 + W?HOLE + 0 + CLOSET-HOLE-PSEUDO + .ENDT + +PT?19:: .TABLE + 18 + W?PARK + W?CENTRAL + PARK-PSEUDO + W?DOME + W?PLASTIC + DOME-PSEUDO + W?TRUCK + W?TINY + TRUCK-PSEUDO + W?ROCKET + 0 + ROCKET-PSEUDO + W?HOLE + 0 + DOME-HOLE-PSEUDO + W?SPOT + W?MELTED + DOME-HOLE-PSEUDO + .ENDT + +PURTND:: + .ENDI diff --git a/anthillstr.zap b/anthillstr.zap new file mode 100644 index 0000000..c76e7e6 --- /dev/null +++ b/anthillstr.zap @@ -0,0 +1,281 @@ + + +; STRINGS ARE DEFINED HERE + +STRBEG:: + + .GSTR STR?1,"You've earned an 'R' rating." + .GSTR STR?2,"You can almost feel Aunt Hildegarde washing out your mouth with soap." + .GSTR STR?3,"This story doesn't know the word """ + .GSTR STR?4,".""" + .GSTR STR?5,"Sorry, but the word """ + .GSTR STR?6,""" is not in the vocabulary you can use." + .GSTR STR?7,"You don't need to use the word """ + .GSTR STR?8,""" to finish this story." + .GSTR STR?9,"Sorry, but this story doesn't recognize the word """ + .GSTR STR?10,"any verbs" + .GSTR STR?11,"enough nouns" + .GSTR STR?12,"You can see" + .GSTR STR?13,"F" + .GSTR STR?14,"L" + .GSTR STR?15,"[Presumably, you mean" + .GSTR STR?16," isn't likely" + .GSTR STR?17," seems doubtful" + .GSTR STR?18," seems unlikely" + .GSTR STR?19,"'s unlikely" + .GSTR STR?20,"'s not likely" + .GSTR STR?21,"'s doubtful" + .GSTR STR?22,"It's too heavy. Maybe if you'd eaten your spinach as Aunt Hildegarde told you." + .GSTR STR?23,"open" + .GSTR STR?24,"closed" + .GSTR STR?25,"would respond" + .GSTR STR?26,"Biting" + .GSTR STR?27,"Blowing" + .GSTR STR?28,"You can't be serious." + .GSTR STR?29,"Don't be silly." + .GSTR STR?30,"This isn't a scene from Uncle Buddy's movie ""Pyromaniac."" +" + .GSTR STR?31,"would buy that" + .GSTR STR?32,"janitor" + .GSTR STR?33,"surgeon" + .GSTR STR?34,"could cut anything" + .GSTR STR?35,"would agree with you" + .GSTR STR?36,"wear" + .GSTR STR?37,"unusual" + .GSTR STR?38,"interesting" + .GSTR STR?39,"extraordinary" + .GSTR STR?40,"special" + .GSTR STR?41,"doesn't do anything" + .GSTR STR?42,"accomplishes nothing" + .GSTR STR?43,"has no effect" + .GSTR STR?44,"Kicking" + .GSTR STR?45,"Okay, " + .GSTR STR?46,"ff" + .GSTR STR?47,"on" + .GSTR STR?48,"n" + .GSTR STR?49,"You can't " + .GSTR STR?50,"squeaks" + .GSTR STR?51,"squeals" + .GSTR STR?52,"whines" + .GSTR STR?53,"creaks" + .GSTR STR?54,"whinnies" + .GSTR STR?55,"breaks into its nightclub act" + .GSTR STR?56,"locksmith" + .GSTR STR?57,"Pulling on" + .GSTR STR?58,"Pushing around" + .GSTR STR?59,"Pushing down" + .GSTR STR?60,"Pushing up" + .GSTR STR?61,"Toying in this way with" + .GSTR STR?62,"read" + .GSTR STR?63,"would appreciate your reading" + .GSTR STR?64,"is interested" + .GSTR STR?65,"wants to play piggyback" + .GSTR STR?66,"Fiddling with" + .GSTR STR?67,"begin" + .GSTR STR?68,"end" + .GSTR STR?69,"Shaking" + .GSTR STR?70,"You wouldn't even be able to dog paddle wearing a pair of skis." + .GSTR STR?71,"You'd better take the bucket off the peg first. +" + .GSTR STR?72,"Turning" + .GSTR STR?73,"walk to" + .GSTR STR?74,"That's not in the script" + .GSTR STR?75,"That would be a waste of time" + .GSTR STR?76,"That would be a pointless thing to do" + .GSTR STR?77,"That would be useless effort" + .GSTR STR?78,"six-foot long " + .GSTR STR?79," quickly realize why ""A Corpse Line"" could never be released: From the back of a large theatre the camera slowly pans in. The camera moves forward and you are able to make out a dozen or more figures lying side-by-side on the stage in glittering top hats. Then the music starts and the figures rise to their feet. The camera is now close enough to see more detail. The figures are corpses, some badly decayed, clad in top hats. They begin to dance in unison as the music swells. For a moment you forget they are corpses and begin to enjoy their mastery of the art. + +Then the horror begins, just as it must have for Uncle Buddy. The line does a kick, and several legs fly into the audience. You feel your heart pounding as never before. The corpses, gripping each other's shoulders, turn at the same time and a half-dozen arms are pulled from their sockets. You can't seem to catch your breath. It's as if a pile of bricks were stacked on your chest. As the number ends, the corpses (what's left of them) remove their hats to take a bow. The camera moves in close as they bend over and you see the tops of their heads have been removed. You begin to shake uncontrollably, then you feel what seems like an explosion in your chest. The last thing you see is the corpses' brains plop onto the stage as they take their bow. You collapse." + .GSTR STR?80," with a lens" + .GSTR STR?81,"filled with white light" + .GSTR STR?82,"filled with bits and pieces of colored words" + .GSTR STR?83,"filled with washed-out bits of colored words" + .GSTR STR?84,"The lens is firmly attached to the projector." + .GSTR STR?85,"This cramped area is just big enough for one person and all the equipment. A thick glass window overlooks the screening room to the north." + .GSTR STR?86,"Yesterday" + .GSTR STR?87,"Greensleeves" + .GSTR STR?88,"Camelot" + .GSTR STR?89,"Stardust" + .GSTR STR?90,"Misty" + .GSTR STR?91,"People" + .GSTR STR?92,"Feelings" + .GSTR STR?93,"Tomorrow" + .GSTR STR?94,"Tonight" + .GSTR STR?95,"Oklahoma" + .GSTR STR?96,"This is the screening room where Uncle Buddy died. He had a massive heart attack while viewing the final cut of his first horror musical, ""A Corpse Line."" The film was never released and no one knows what happened to the only full-length version, worth a fortune today. Rumor has it that as he was dying he proclaimed ""A Corpse Line"" to be his masterwork of horror. Other rumors say the film was so bad that, if it had been released and he hadn't died, someone would have killed him. Several rows of plush theatre-like seats face a movie screen. Doorways lead south and west." + .GSTR STR?97,"south" + .GSTR STR?98,"This is a small passage which ends here. It looks as if the construction of this room was never completed." + .GSTR STR?99,"north" + .GSTR STR?100,"Somewhere in the house you hear the thud of something falling on the floor." + .GSTR STR?101,"You hear the eerie whistling of wind coming down the chimney." + .GSTR STR?102,"Somewhere in the house you hear the creaking of floorboards." + .GSTR STR?103,"You can hear dogs howling in the distance." + .GSTR STR?104,"Somewhere nearby several of Morgan Fairchild's cats begin crying." + .GSTR STR?105,"From the ocean there is the distant ringing of warning buoys." + .GSTR STR?106,"Shadows pour over you as grey clouds sweep past the night's full moon." + .GSTR STR?107," + Cellar + Cannon | Crawl Space North + Emplacement | / + ____|___/ + | | + Boat Dock ----| Work |----Heart of Maze + | Room | + |_______| + / | . + / | . + Attic Upstairs Bomb Shelter + Hall Middle +" + .GSTR STR?108,"turned that way" + .GSTR STR?109,"You can't feed data to a computer that isn't turned on! +" + .GSTR STR?110," + For fast service, call + + ROY G. BIV + COMPUTER SERVICE & REPAIR + 576-1851" + .GSTR STR?111,"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO" + .GSTR STR?112,"OOOO OOOO O OOOO O OOOO OOOO" + .GSTR STR?113,"O O O O O O O O O" + .GSTR STR?114,"OOOO O OOOO OOO OOOO O OOOO O O" + .GSTR STR?115," O O O O O O O O O" + .GSTR STR?116,"OOOO O OOOO OOOO O O OOOO" + .GSTR STR?117,"This is the living room where Uncle Buddy and Aunt Hildegarde used to spend their evenings. Most of the west wall is covered by a grand stone fireplace with a mantle over it. A long sofa, several cushy chairs and a telephone fill the room. Most of the hardwood floor is covered by a monstrous Persian rug. A doorway leads north and an archway exits to the east." + .GSTR STR?118,"If you want to go in the fireplace, say so." + .GSTR STR?119,"ankle" + .GSTR STR?120,"shins" + .GSTR STR?121,"knees" + .GSTR STR?122,"thighs" + .GSTR STR?123,"waist" + .GSTR STR?124,"stomach" + .GSTR STR?125,"chest" + .GSTR STR?126,"shoulders" + .GSTR STR?127,"forehead" + .GSTR STR?128,"There is a hole in the fireplace about waist high here." + .GSTR STR?129,"You're in the chimney, above the fireplace. You can see a couple of holes here in the chimney where bricks used to be. The chimney continues upward and the fireplace is below." + .GSTR STR?130,"You're inside the chimney. You can see a couple of holes here in the chimney where bricks used to be. The chimney continues upward and downward." + .GSTR STR?131,"You're standing in the chimney. There are a couple of holes here in the chimney where bricks used to be. This chimney doesn't lead any further down, only up." + .GSTR STR?132,"You're doing your best to keep your balance here on the roof. During a fierce storm you can see Linda Ronstadt's house wash into the ocean from here. A chimney juts up from the roof here and there is another chimney to the east, near the end of the roof." + .GSTR STR?133,"You'd fall off the roof!" + .GSTR STR?134,"This is the east end of the roof. A chimney juts up from the roof here and there is another chimney off to the west, near the end of the roof." + .GSTR STR?135,"This is Aunt Hildegarde's kitchen. It is a fairly large, sterile area with several pieces of commercial-grade equipment to handle the vast amount of food needed for Hollywood parties. It is not exactly the kind of homey kitchen most people's aunts have. The whole family remembers the Christmas everyone received fruit cakes with serial numbers on them. A doorway leads to the east and stairs lead down from here." + .GSTR STR?136,"This is the dining room with a long, walnut table and seating for twelve. You remember more than one evening falling asleep at the table while Uncle Buddy rambled on about the way Hollywood used to be. A large picture window looks out on the garden. Doorways lead east, west and south." + .GSTR STR?137,"Maltese finch" + .GSTR STR?138,"pieces of the Maltese finch" + .GSTR STR?139,"This is Aunt Hildegarde and Uncle Buddy's bedroom. There is a thick, round bed here, typical of Uncle Buddy trying to be a Hollywood type. Next to the bed is a chair and a phone. A doorway leads south." + .GSTR STR?140,"This is a spare bedroom where guests would stay if they couldn't drive home after one of the parties. The bed is big and fluffy and all the furniture is padded well. Uncle Buddy put two brass handles on the floor so guests would have something to hang onto when the room began to spin. A doorway leads north." + .GSTR STR?141,"It's a copy of Infocom's newsletter ""The Status Line"" (formerly ""The New Zork Times""). It's addressed to Aunt Hildegarde and features a story about a game called ""Hollywood Hijinx."" In the article, author ""Hollywood"" Dave Anderson thanks his fellow imps for their enormous help and patience." + .GSTR STR?142,"You ski down the stairs then snowplow to a stop in the..." + .GSTR STR?143,"Believe it or not, Aunt Hildegarde paid a lot of money for a professional to decorate this house. Let's leave the furniture arrangement to professionals." + .GSTR STR?144,"hours" + .GSTR STR?145,"hour" + .GSTR STR?146,"minutes" + .GSTR STR?147,"The lawyer seems to appear out of nowhere. " + .GSTR STR?148,"one" + .GSTR STR?149,"two" + .GSTR STR?150,"three" + .GSTR STR?151,"four" + .GSTR STR?152,"five" + .GSTR STR?153,"six" + .GSTR STR?154,"seven" + .GSTR STR?155,"eight" + .GSTR STR?156,"nine" + .GSTR STR?157,"Next to the sink is a matchbox." + .GSTR STR?158,"Lying near the fire is a green match." + .GSTR STR?159,"If you want to swim, say so." + .GSTR STR?160,"You bump into the wall of the cave." + .GSTR STR?161,"You are swimming on the surface of the pool. The water sparkles, reflecting the light coming in from an opening to the north. To the east is a boat dock." + .GSTR STR?162,"You lose your footing and plunge back into the water." + .GSTR STR?163,"The walls are too steep to climb." + .GSTR STR?164,"As you swim underwater you can see faint light above you and darkness below." + .GSTR STR?165,"You feel a mild current flowing east. You have to grit your teeth to keep them from chattering in the cold water." + .GSTR STR?166,"You feel a current coming from above and flowing east through the passage." + .GSTR STR?167,"That's for you to figure out." + .GSTR STR?168,"Feeling the wall with your hands you find there's no way out in this direction." + .GSTR STR?169,"With your hands you feel the eastern wall of the cave. You can't get out to the east." + .GSTR STR?170,"The cave wall prevents any further westward movement." + .GSTR STR?171,"You're on a wet, narrow ledge in a dripping underground cave. There is a pool of blackness to the south and a tunnel leads north." + .GSTR STR?172,"Your soggy footsteps echo through the long, slimy corridor which runs up, towards a dry area, and south, toward dripping noises." + .GSTR STR?173,"down" + .GSTR STR?174,"in the air" + .GSTR STR?175,"burning" + .GSTR STR?176,". Unfortunately the hatch was closed. Your body crumples like an empty beer can at a frat party as you smash into the closed hatch. You black out as your body hits the ground with a plop!" + .GSTR STR?177,". Unfortunately you were standing on the left end of the plank." + .GSTR STR?178,"You're standing in front of the house where you spent many of your summers as a youngster. The old place is not as big as it seemed to you then, but it is still quite large. Stone pathways wind east and west around the house, and a larger main walkway leads north." + .GSTR STR?179,"It's a long way back to town." + .GSTR STR?180,"This is the southeastern corner of a large backyard whose main feature is an elaborate garden. The stone walkway splits in three directions here: north, along the perimeter of the garden; south, around the side of the house; and west, where the walkway ends at a couple of steps leading up." + .GSTR STR?181,"This is the southwestern corner of a large backyard whose main feature is an elaborate garden. The stone walkway splits in three directions here: north, along the perimeter of the garden; south, around the side of the house; and east, where the walkway ends at the foot of a couple of steps." + .GSTR STR?182,"You're standing on a stone walkway in Aunt Hildegarde's much envied garden where she would spend hours tending to her flowers, bushes and trees. The garden was off limits to you as a child because of an incident one summer when you and Cousin Herman were playing in the garden. You suggested pretending to be wild African animals and climbed a tree and began to screech as if a baboon while Cousin Herman ran off toward the roses shouting something about being a rhinoceros. + +After howling until your throat felt like you had puffed on one of Uncle Buddy's Hollywood cigars, you went to find Cousin Herman. When you arrived you couldn't believe your eyes -- Cousin Herman had pulled all the thorns off of all of Aunt Hildegarde's rose bushes in a quest to find the biggest thorn possible so he could be a rhino. Of course when Aunt Hildegarde saw her naked rose bushes, Cousin Herman blamed it all on you. The walkway leads south, northeast and northwest." + .GSTR STR?183,"You bounce off a dwarf fig tree." + .GSTR STR?184,"You are in the overpoweringly fragrant rose bush section of the garden. As you admire the roses you notice one somewhat sickly rose bush. Something about the sight of this particular rose bush makes you feel a bit queasy. The stone walkway leads northwest and southwest." + .GSTR STR?185,"After a brief altercation with a large rose bush you turn back." + .GSTR STR?186,"You're standing on a stone walkway in the tulip section of the garden. The walkway leads northeast and southeast." + .GSTR STR?187,"You couldn't bear to step on the tulips." + .GSTR STR?188,"You are in the orchid section of the garden. Tender orchid petals of every color surround a small pond here. The stone walkway leads north, southeast and southwest." + .GSTR STR?189,", as it hits the water" + .GSTR STR?190,"In this corner of the backyard you can make out the enormous hedge, which is part of the estate's hedge maze. The stone walkway splits in three directions here: north, along the dark and towering hedge; south, past the fragrant and inviting garden; and east, where the walkway cuts a straight and narrow path between the hedge and the garden." + .GSTR STR?191,"In this corner of the backyard you can make out the enormous hedge, which is part of the estate's hedge maze. The stone walkway splits in three directions here: north, along the dark and towering hedge; south, past the fragrant and inviting garden; and west, where the walkway cuts a straight and narrow path between the hedge and the garden. A slightly worn path in the grass heads east." + .GSTR STR?192,"You ski down the steep path, unable to stop at the cliff. You sail off the cliff into the air, catching a very brief glimpse of Linda Ronstadt's beach house, then plummet to the rocks below." + .GSTR STR?193,"You jump off the cliff and fall to your death, just as you would expect from an Infocom story." + .GSTR STR?194,"There is an unusual ladder lying on the ground here." + .GSTR STR?195,"You're standing on the front porch of the house. Next to the front door is a regulation mailbox endorsed by Buck Palace. Beneath the mailbox is a doorbell once rung by Sonny Tufts. To the south is a walkway." + .GSTR STR?196,"love theme from ""Chainsaw Chop Suey" + .GSTR STR?197,"title song from ""10 1/2 Little Indians" + .GSTR STR?198,"song from ""It Came From the Neighbor's House" + .GSTR STR?199,"title track from ""Buddy Burbank's Three Minute Hollywood Workout" + .GSTR STR?200,"You slip the skis on, then slip off the roof." + .GSTR STR?201,"This is a rickety landing at the top of a long flight of old, wooden stairs leading down to the beach far below. You and Cousin Herman would race down these stairs in the summertime to see who would get to the water first. Usually Cousin Herman would trip you and win. A path in the grass leads west." + .GSTR STR?202,"You're about halfway down the steep staircase, which creaks under your weight. There are several steps missing here. It's quite a gap: probably more than you could jump across. On the other side of the gap, the stairs continue down. Climbing up the stairs returns to the landing." + .GSTR STR?203,"You step into the gap and plunge down onto the sharp rocks below." + .GSTR STR?204," plunge to the rocks below in a spectacular fall worthy of Hollywood's best stuntmen. Your body smashes onto the rocks. Too bad you didn't have a stunt double." + .GSTR STR?205,"You're about halfway up the steep stairs. There are several steps of the stairs missing here. It's quite a gap: probably more than you could jump across. On the other side of the gap stairs continue up. Climbing down the stairs returns to the beach." + .GSTR STR?206,"You step into the gap and plunge to the rocks below in a spectacular fall worthy of Hollywood's best stuntmen. Your body smashes onto the rocks. Too bad you didn't have a stunt double." + .GSTR STR?207,"This is the bottom landing. A rickety wooden walkway leads west. To the north is a sandy beach, and steep stairs lead up a rocky cliff." + .GSTR STR?208,"There's nothing interesting down on that part of the beach. Just a few nude beach parties." + .GSTR STR?209,"This is the end of a beach which stretches to the east. The fine white sand underfoot reflects the light. A slight breeze blows off the ocean to the north. A wooden landing is south of here, and an inlet lies west." + .GSTR STR?210,"Just as you start to enter the water you notice a buoy just offshore. A sign on it reads: Hawaii - 2,000 miles. You turn back." + .GSTR STR?211,"You stroll down the beach, declining several invitations to nude hot tub parties, then return to the end of the beach." + .GSTR STR?212,"You are swimming in a shallow inlet, whose waters are much calmer than in the open ocean to the north. A sandy beach lies to the east and the mouth of a dark cave gapes open to the south." + .GSTR STR?213,"Just as you start to swim out to sea you notice a buoy just offshore. A sign on it reads: Hawaii - 2,000 miles. You turn back." + .GSTR STR?214,"You start to go down, but feeling a strong undertow, you decide against it." + .GSTR STR?215,"Congratulations Pumpkin! You've found all the ""treasures."" Now come on down for a big surprise. + Aunt Hildegarde" + .GSTR STR?216," +Before you can get out of the shaft, the closet descends, assuring you a closed-casket service." + .GSTR STR?217,"You step into a shaft and plunge down, slowing ever so slightly as your body crashes through the top of the closet then abruptly comes to a stop on the floor of the closet." + .GSTR STR?218,"about a foot from" + .GSTR STR?219,"slowly moving closer to" + .GSTR STR?220,"now only about half a foot from" + .GSTR STR?221,"slowly approaching" + .GSTR STR?222,"about three or four inches away from" + .GSTR STR?223,"less than an inch away from" + .GSTR STR?224,"This was your favorite room as a child. Each summer Uncle Buddy would have props and models from his various movies brought here for the amusement of his numerous guests. There is a scale model of downtown Tokyo here. Doorways lead south, east and west. There is a door to the north." + .GSTR STR?225,"tiny tanks" + .GSTR STR?226,"puny plane" + .GSTR STR?227,"puny planes" + .GSTR STR?228,"The Atomic Chihuahua's bulging eyes wince with pain as several rounds fire into its chest." + .GSTR STR?229,"As the gunfire strikes the Atomic Chihuahua, its heavy reptilian tail pounds the street's pavement angrily." + .GSTR STR?230,"As bullets pierce the dazed dog's scales he pauses momentarily, remembering his younger days with Xavier Cugat." + .GSTR STR?231,"The Atomic Chihuahua takes two rounds in the throat and gasps. (Two rounds to you and me, but that's 14 rounds to little scale-face!)" + .GSTR STR?232,"tiny tank" + .GSTR STR?233,"This is a short hall stretching east and west. Doorways lead north to the ladies' room and south to the men's room." + .GSTR STR?234,"men's" + .GSTR STR?235,"ladies'" + .GSTR STR?236,"This is the entrance to the hedge maze. Aunt Hildegarde told you never to go into the maze without the map, and of course you would go in anyway and she would have to come in and find you. + +Guests were forever getting lost in the maze at parties. Sometimes you wished Cousin Herman would go in and never come out. But you always had the feeling he was thinking the same about you, only more seriously. Tall hedges, thick and green, stretch along paths leading to the east and west and a grass path north enters the maze. A stone walkway leads south." + .GSTR STR?237,"east" + .GSTR STR?238,"west" + .GSTR STR?239,"You are in a hedge maze of astonishing complexity. A path leads north." + .GSTR STR?240,"You walk face first into the hedge." + .GSTR STR?241,"You burrow furiously to no avail." + .GSTR STR?242,"A small shovel is lying amongst the flower beds." + .GSTR STR?243,"You walk right into a thick hedge" + .GSTR STR?244,"You march face first into a hedge" + + .ENDI diff --git a/bshelter.zap b/bshelter.zap new file mode 100644 index 0000000..48840d1 --- /dev/null +++ b/bshelter.zap @@ -0,0 +1,937 @@ + + + .FUNCT MATCHBOX-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "You see a picture of Santa Claus in his sleigh. The sleigh is filled with computer games from Infocom, and the reindeer pulling it look strained." +?ELS5: EQUAL? PRSA,V?TAKE \FALSE + FCLEAR MATCHBOX,NDESCBIT + RFALSE + + + .FUNCT WAX-COAT-F + EQUAL? PRSA,V?SCRAPE-OFF \FALSE + EQUAL? PRSI,GREEN-MATCH,RED-MATCH \FALSE + FSET? PRSI,WAXED-BIT \FALSE + FCLEAR PRSI,WAXED-BIT + IN? PRSO,PRSI \?ELS13 + REMOVE PRSO + JUMP ?CND8 +?ELS13: REMOVE WAX-COAT-2 +?CND8: PRINTI "You scrape the wax coating off" + CALL TRPRINT,PRSI + RSTACK + + + .FUNCT MATCH-F,WAXED + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's the wooden, self-lighting variety of match. The " + CALL DPRINT,PRSO + FSET? PRSO,WAXED-BIT \?ELS8 + PRINTI " head is coated with a thin layer of wax" + JUMP ?CND6 +?ELS8: FSET? PRSO,WETBIT \?ELS10 + PRINTI " is wet" + JUMP ?CND6 +?ELS10: PRINTI " is " + FSET? PRSO,ONBIT /?CND13 + PRINTI "not " +?CND13: PRINTI "lit" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?KILL,V?LAMP-ON \?ELS17 + IN? PRSO,PLAYER /?ELS22 + PRINTI "You're not holding" + CALL TRPRINT,PRSO + RSTACK +?ELS22: FSET? PRSO,FLAMEBIT \?ELS24 + PRINTR "It's already lit." +?ELS24: GETP PRSO,P?MATCH-LIFE + ZERO? STACK \?ELS26 + PRINTR "You can't. It's all used up." +?ELS26: FSET? PRSO,WETBIT \?ELS28 + PRINTR "It's wet. It won't light now." +?ELS28: EQUAL? HERE,IN-POOL-1,IN-POOL-2,UNDERPASS-1 /?THN31 + EQUAL? HERE,UNDERPASS-2 \?ELS30 +?THN31: PRINTR "Not even Uncle Buddy's best special effects men could light a match under water!" +?ELS30: EQUAL? HERE,ON-POOL-1,ON-POOL-2,INLET \?ELS34 + PRINTR "You'd better find some dry land first." +?ELS34: CALL QUEUE,I-MATCH-BURN,-1 + FSET PRSO,ONBIT + IN? WAX-COAT-1,PRSO \?ELS39 + REMOVE WAX-COAT-1 + JUMP ?CND37 +?ELS39: IN? WAX-COAT-2,PRSO \?CND37 + REMOVE WAX-COAT-2 +?CND37: FSET PRSO,FLAMEBIT + FSET? PRSO,WAXED-BIT \?ELS44 + FCLEAR PRSO,WAXED-BIT + PRINTI "The wax coating melts away as you light" + CALL TRPRINT,PRSO + JUMP ?CND42 +?ELS44: PRINTI "Okay," + CALL TPRINT,PRSO + PRINTI " is now lit." + CRLF +?CND42: CALL NOW-LIT? + RTRUE +?ELS17: EQUAL? PRSA,V?LAMP-OFF \?ELS48 + FSET? PRSO,ONBIT \?ELS53 + CALL BLOW-OUT-MATCH,PRSO + RSTACK +?ELS53: PRINTR "It's not lit." +?ELS48: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT I-MATCH-BURN + FSET? RED-MATCH,ONBIT \?CND1 + CALL MATCH-BURN,RED-MATCH +?CND1: FSET? GREEN-MATCH,ONBIT \FALSE + CALL MATCH-BURN,GREEN-MATCH + RSTACK + + + .FUNCT MATCH-BURN,OBJ + GETP OBJ,P?MATCH-LIFE + ZERO? STACK \?ELS5 + CALL BLOW-OUT-MATCH,OBJ,TRUE-VALUE + RSTACK +?ELS5: GETP OBJ,P?MATCH-LIFE + SUB STACK,1 + PUTP OBJ,P?MATCH-LIFE,STACK + RTRUE + + + .FUNCT BLOW-OUT-MATCH,OBJ,ADD-CR=0 + FCLEAR OBJ,ONBIT + FCLEAR OBJ,FLAMEBIT + FSET? RED-MATCH,ONBIT /?CND1 + FSET? GREEN-MATCH,ONBIT /?CND1 + CALL DEQUEUE,I-MATCH-BURN +?CND1: CALL VISIBLE?,OBJ + ZERO? STACK /FALSE + ZERO? ADD-CR /?CND11 + CRLF +?CND11: PRINTI "The " + CALL DPRINT,OBJ + PRINTI " goes out, turns to ashes, falls to the ground and disappears." + CRLF + CALL SAY-IF-NOT-LIT + REMOVE OBJ + RTRUE + + + .FUNCT BOAT-DOCK-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are in a large grotto standing on a boat dock. Moonlight trickling through the grotto's opening to the north reflects off the water, dimly illuminating this area. A wooden walkway leads north out of the grotto. A pool of sea water covers the bottom of the grotto." + RTRUE + + + .FUNCT PORTABLE-WATER-F + EQUAL? PRSA,V?ENTER,V?SWIM \?ELS5 + CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS10 + CALL PERFORM,PRSA,WATER + RTRUE +?ELS10: PRINTI "You'd never fit into" + LOC PORTABLE-WATER + CALL TPRINT,STACK + PRINTR "!" +?ELS5: EQUAL? PRSA,V?TASTE,V?DRINK-FROM,V?DRINK \?ELS14 + CALL NOT-HOLDING-WATER? + ZERO? STACK \TRUE + PRINTR "You take a sip." +?ELS14: EQUAL? PRSA,V?EMPTY,V?DROP,V?THROW /?THN26 + EQUAL? PRSA,V?POUR,V?PUT,V?PUT-ON \?ELS23 +?THN26: EQUAL? PRSO,PORTABLE-WATER \?ELS23 + CALL NOT-HOLDING-WATER? + ZERO? STACK \TRUE + REMOVE PORTABLE-WATER + FCLEAR PORTABLE-WATER,NDESCBIT + SET 'AMOUNT-OF-WATER,0 + CALL DEQUEUE,I-DRIP + EQUAL? PRSA,V?EMPTY \?CND35 + PRINTR "You pour the water out of the bucket." +?CND35: ZERO? PRSI /?ELS42 + FSET PRSI,WETBIT + FSET? PRSI,FLAMEBIT \?CND44 + FCLEAR PRSI,FLAMEBIT + FCLEAR PRSI,ONBIT + EQUAL? PRSI,RED-CANDLE \?ELS49 + CALL STOP-RED-BURNING + JUMP ?CND47 +?ELS49: EQUAL? PRSI,WHITE-CANDLE \?ELS51 + CALL STOP-WHITE-BURNING + JUMP ?CND47 +?ELS51: EQUAL? PRSI,BLUE-CANDLE \?ELS53 + CALL STOP-BLUE-BURNING + JUMP ?CND47 +?ELS53: EQUAL? PRSI,GREEN-MATCH,RED-MATCH \?CND47 + CALL DEQUEUE,I-MATCH-BURN +?CND47: PRINTR "You douse the flame with water." +?CND44: PRINTR "You pour water over it, making a mess." +?ELS42: REMOVE PORTABLE-WATER + PRINTR "The water pours out, making a mess." +?ELS23: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS59 + EQUAL? PRSI,PORTABLE-WATER \?ELS59 + IN? PORTABLE-WATER,BUCKET \?ELS59 + CALL PERFORM,V?PUT,PRSO,BUCKET + RTRUE +?ELS59: EQUAL? PRSA,V?GIVE \?ELS63 + EQUAL? PRSO,PORTABLE-WATER \?ELS63 + FSET? PRSI,ACTORBIT \?ELS63 + CALL PERFORM,V?POUR,PORTABLE-WATER + RTRUE +?ELS63: EQUAL? PRSA,V?EXAMINE,V?SEARCH,V?LOOK-INSIDE \FALSE + LOC PORTABLE-WATER + CALL PERFORM,PRSA,STACK + RTRUE + + + .FUNCT WATER-F + EQUAL? HERE,UPSTAIRS-BATHROOM,KITCHEN,LADIES-ROOM /?THN6 + EQUAL? HERE,MENS-ROOM \?ELS5 +?THN6: PRINTR "Hmmm. It seems the water has been turned off." +?ELS5: EQUAL? PRSA,V?DISEMBARK \?ELS9 + CALL DO-WALK,P?OUT + RTRUE +?ELS9: EQUAL? PRSA,V?ENTER,V?SWIM \?ELS11 + EQUAL? HERE,NORTH-GARDEN \?ELS14 + PRINTR "The pond's too shallow for swimming." +?ELS14: FSET? SKIS,WORNBIT \?ELS16 + PRINT DOG-PADDLE + CRLF + RTRUE +?ELS16: CALL ULTIMATELY-IN?,LADDER + ZERO? STACK /?ELS18 + PRINTI "You won't be able to swim carrying" + CALL TRPRINT,LADDER + RTRUE +?ELS18: EQUAL? HERE,INLET,ON-POOL-1,IN-POOL-1 /?THN21 + EQUAL? HERE,UNDERPASS-1,UNDERPASS-2,IN-POOL-2 /?THN21 + EQUAL? HERE,ON-POOL-2 \?CND12 +?THN21: PRINTR "You swim a few yards." +?CND12: CALL ALL-WET,PLAYER + PRINTI "As you enter the chilly water, goose bumps cover your body and your teeth chatter a bit." + CRLF + CRLF + IN? BUCKET,PLAYER \?CND23 + MOVE PORTABLE-WATER,BUCKET + CALL QUEUE,I-DRIP,1 +?CND23: EQUAL? HERE,BOAT-DOCK \?ELS28 + CALL GOTO,ON-POOL-1 + JUMP ?CND26 +?ELS28: EQUAL? HERE,LEDGE \?ELS30 + CALL GOTO,ON-POOL-2 + JUMP ?CND26 +?ELS30: CALL GOTO,INLET +?CND26: CALL ULTIMATELY-IN?,FLASHLIGHT + ZERO? STACK /?CND33 + FSET? FLASHLIGHT,ONBIT \?CND33 + FCLEAR FLASHLIGHT,ONBIT + CRLF + PRINTI "Oops! Your flashlight went out. The water ruined it." + CRLF +?CND33: CALL ULTIMATELY-IN?,RED-CANDLE + ZERO? STACK /?CND38 + FSET? RED-CANDLE,ONBIT \?CND38 + CALL BLOW-OUT-CANDLE,RED-CANDLE +?CND38: CALL ULTIMATELY-IN?,WHITE-CANDLE + ZERO? STACK /?CND43 + FSET? WHITE-CANDLE,ONBIT \?CND43 + CALL BLOW-OUT-CANDLE,WHITE-CANDLE +?CND43: CALL ULTIMATELY-IN?,BLUE-CANDLE + ZERO? STACK /?CND48 + FSET? BLUE-CANDLE,ONBIT \?CND48 + CALL BLOW-OUT-CANDLE,BLUE-CANDLE +?CND48: CALL ULTIMATELY-IN?,GREEN-MATCH + ZERO? STACK /?CND53 + FSET? GREEN-MATCH,FLAMEBIT \?CND53 + CALL ULTIMATELY-IN?,RED-MATCH + ZERO? STACK /?CND53 + FSET? RED-MATCH,FLAMEBIT \?CND53 + FCLEAR RED-MATCH,ONBIT + FCLEAR RED-MATCH,FLAMEBIT + REMOVE RED-MATCH + FCLEAR GREEN-MATCH,ONBIT + FCLEAR GREEN-MATCH,FLAMEBIT + REMOVE GREEN-MATCH + PRINTI "You drop the lit " + CALL DPRINT,GREEN-MATCH + PRINTI " and the lit " + CALL DPRINT,RED-MATCH + PRINTC 46 + CRLF +?CND53: CALL ULTIMATELY-IN?,RED-MATCH + ZERO? STACK /?CND58 + FSET? RED-MATCH,FLAMEBIT \?CND58 + FCLEAR RED-MATCH,ONBIT + FCLEAR RED-MATCH,FLAMEBIT + REMOVE RED-MATCH + PRINTI "You drop the lit " + CALL DPRINT,RED-MATCH + PRINTC 46 + CRLF +?CND58: CALL ULTIMATELY-IN?,GREEN-MATCH + ZERO? STACK /TRUE + FSET? GREEN-MATCH,FLAMEBIT \TRUE + FCLEAR GREEN-MATCH,ONBIT + FCLEAR GREEN-MATCH,FLAMEBIT + REMOVE GREEN-MATCH + PRINTI "You drop the lit " + CALL DPRINT,GREEN-MATCH + PRINTR "." +?ELS11: EQUAL? PRSA,V?TAKE \?ELS69 + EQUAL? PRSO,WATER \?ELS69 + IN? BUCKET,PLAYER \?ELS69 + CALL PERFORM,V?FILL,BUCKET,WATER + RTRUE +?ELS69: EQUAL? PRSA,V?PUT \?ELS73 + EQUAL? PRSI,WATER \?ELS73 + EQUAL? HERE,NORTH-GARDEN \?ELS80 + CALL PERFORM,V?PUT,PRSO,POND + RTRUE +?ELS80: REMOVE PRSO + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " disappears into the ocean water." +?ELS73: EQUAL? PRSA,V?LOOK-INSIDE \?ELS84 + EQUAL? HERE,NORTH-GARDEN \?ELS89 + CALL PERFORM,V?LOOK-INSIDE,POND + RTRUE +?ELS89: PRINTR "You see nothing unusual about sea water." +?ELS84: EQUAL? PRSA,V?DRINK \FALSE + EQUAL? PRSO,WATER \FALSE + PRINTR "You take a sip." + + + .FUNCT ALL-WET,THING,OBJ + FSET THING,WETBIT + FIRST? THING >OBJ /?KLU17 +?KLU17: +?PRG1: ZERO? OBJ /?REP2 + FSET OBJ,WETBIT + FIRST? OBJ \?CND6 + CALL ALL-WET,OBJ +?CND6: NEXT? OBJ >OBJ /?PRG1 + JUMP ?PRG1 +?REP2: FSET? RED-MATCH,WAXED-BIT \?CND9 + FCLEAR RED-MATCH,WETBIT +?CND9: FSET? GREEN-MATCH,WAXED-BIT \FALSE + FCLEAR GREEN-MATCH,WETBIT + RTRUE + + + .FUNCT TO-BOAT-DOCK + EQUAL? HERE,ON-POOL-1 \FALSE + PRINTI "You climb out of the pool and onto the boat dock. The night air makes you shiver." + CRLF + CRLF + RETURN BOAT-DOCK + + + .FUNCT UNDER-WATER-F + PRINTI "You take a deep breath then plunge down." + CRLF + CRLF + EQUAL? HERE,ON-POOL-1 \?ELS3 + CALL GOTO,IN-POOL-1 + JUMP ?CND1 +?ELS3: CALL GOTO,IN-POOL-2 +?CND1: SET 'BREATH,6 + CALL QUEUE,I-BREATH,-1 + RFALSE + + + .FUNCT I-BREATH + DEC 'BREATH + EQUAL? BREATH,3 \?ELS5 + CRLF + PRINTR "You feel pressure building in your chest. You won't be able to hold your breath much longer." +?ELS5: EQUAL? BREATH,2 \?ELS7 + CRLF + PRINTR "The pressure is increasing. Your feel as if your lungs are going to rupture!" +?ELS7: EQUAL? BREATH,1 \?ELS9 + CRLF + PRINTR "You can't hold the air in your lungs any longer. You open your mouth and the air bursts out." +?ELS9: ZERO? BREATH \FALSE + CRLF + PRINTI "As you gasp for your next breath, you suck in a mouthful of cold sea water. You swim frantically a short distance then pass out. Later you awake to find yourself on the beach." + CRLF + CRLF + CALL GOTO,BEACH + RSTACK + + + .FUNCT OUT-OF-WATER-F + CALL DEQUEUE,I-BREATH + PRINTI "You come to the surface and catch your breath." + CRLF + CRLF + EQUAL? HERE,IN-POOL-1 \?ELS5 + RETURN ON-POOL-1 +?ELS5: EQUAL? HERE,IN-POOL-2 \FALSE + RETURN ON-POOL-2 + + + .FUNCT TO-UNDERPASS-EAST + PRINTI "You swim east through a narrow, jagged passage." + CRLF + CRLF + RETURN UNDERPASS-1 + + + .FUNCT TO-UNDERPASS-WEST + PRINTI "You swim west through a narrow, jagged passage." + CRLF + CRLF + RETURN UNDERPASS-2 + + + .FUNCT IN-POOL-2-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are swimming underwater. In the darkness, you can't make out your surroundings here." + CALL LIT?,ON-POOL-2 + ZERO? STACK /TRUE + PRINTI " However you do notice a faint light above you." + RTRUE + + + .FUNCT ON-POOL-2-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are swimming on the surface of a pool " + CALL LIT?,HERE + ZERO? STACK /?ELS10 + PRINTI "inside a small grotto. To the north is a small ledge." + RTRUE +?ELS10: PRINTI "in the dark. From the sound of your breathing you can tell this is a fairly small area." + RTRUE + + + .FUNCT BOMB-SHELTER-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "With its concrete walls and floor this room looks as if it might be a bomb shelter. A heavy-duty sawhorse has" + CALL APRINT,PLANK + PRINTI " across it. " + FSET? BS-SAFE,ON-GROUND-BIT \?ELS8 + PRINTI "A " + CALL DPRINT,BS-SAFE + PRINTI " is on" + CALL TPRINT,LEFT-END + JUMP ?CND6 +?ELS8: PRINTI "Suspended above the left end of the plank by" + CALL APRINT,ROPE + EQUAL? ROPE-LIFE,1,2 \?CND11 + PRINTI ", which is burning," +?CND11: PRINTI " is" + CALL APRINT,BS-SAFE + PRINTI ". The rope stretches from the safe, through a pulley in the ceiling, to the floor where it is tied to a pipe running along the wall" +?CND6: PRINTI ". In the ceiling above" + CALL TPRINT,RIGHT-END + PRINTI " there is a" + FSET? HATCH,OPENBIT \?ELS16 + PRINTI "n open" + JUMP ?CND14 +?ELS16: PRINTI " closed" +?CND14: PRINTI " hatch. A long chain hangs down from" + CALL TPRINT,HATCH + PRINTI ". Just beneath" + CALL TPRINT,HATCH + PRINTI " there is a " + FSET? LADDER,HUNG-BIT \?CND19 + CALL DPRINT,LADDER + PRINTI " hanging from a " +?CND19: PRINTI "pair of heavy-duty metal hooks protruding from the wall. There is a doorway leading south." + RTRUE +?ELS5: EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?HANG-UP \FALSE + ZERO? PRSI \FALSE + CALL PERFORM,V?HANG-UP,PRSO,HOOKS + RTRUE + + + .FUNCT HATCH-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,HATCH \?ELS5 + FSET? HATCH,OPENBIT \?ELS12 + CALL PERFORM,V?PUT,PRSO,HATCH-HOLE + RTRUE +?ELS12: PRINTR "The hatch is closed!" +?ELS5: EQUAL? PRSA,V?OPEN \?ELS16 + FSET? HATCH,OPENBIT /?ELS16 + EQUAL? HERE,BOMB-SHELTER \?ELS23 + PRINTR "That's for you to figure out." +?ELS23: PRINTR "There doesn't seem to be any way to open it from this side." +?ELS16: EQUAL? PRSA,V?EXAMINE \?ELS27 + FSET? HATCH,OPENBIT \?ELS27 + PRINTI "The " + CALL DPRINT,HATCH + PRINTR " is open, revealing a hole about the size of a manhole." +?ELS27: EQUAL? PRSA,V?CLOSE \?ELS31 + FSET? HATCH,OPENBIT \?ELS31 + EQUAL? HERE,BOMB-SHELTER \?ELS38 + PRINTR "That's for you to figure out." +?ELS38: FCLEAR HATCH,OPENBIT + FSET HATCH-HOLE,INVISIBLE + PRINTR "With a show of strength which would make Aunt Hildegarde proud, you manage to close the heavy hatch." +?ELS31: EQUAL? PRSA,V?ENTER \FALSE + EQUAL? HERE,CLIFF \?ELS47 + CALL DO-WALK,P?DOWN + RSTACK +?ELS47: CALL DO-WALK,P?UP + RSTACK + + + .FUNCT CHAIN-F + EQUAL? PRSA,V?CLIMB-UP,V?PULL \?ELS5 + PRINTI "You pull on the " + CALL DPRINT,CHAIN + EQUAL? PRSA,V?CLIMB-UP \?CND6 + PRINTI " as you attempt to climb" +?CND6: PRINTI " and" + CALL TPRINT,HATCH + FSET? HATCH,OPENBIT \?ELS11 + PRINTI " drops, covering the" + FCLEAR HATCH,OPENBIT + FSET HATCH-HOLE,INVISIBLE + JUMP ?CND9 +?ELS11: PRINTI " pops up, revealing a" + FSET HATCH,OPENBIT + FCLEAR HATCH-HOLE,INVISIBLE +?CND9: PRINTI " hole in the ceiling." + EQUAL? PRSA,V?CLIMB-UP \?CND14 + PRINTI " The chain is too slippery to climb." +?CND14: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS18 + PRINTI "The " + CALL DPRINT,CHAIN + PRINTR " hangs down to about eye-level from the hatch above." +?ELS18: EQUAL? PRSA,V?TAKE \FALSE + PRINTR "You can't take the chain; it's attached to the hatch." + + + .FUNCT ENDS-F,RARG=0 + EQUAL? RARG,M-BEG \?ELS5 + CALL TOUCHING?,PRSO + ZERO? STACK /?ELS5 + LOC PLAYER + CALL ULTIMATELY-IN?,PRSO,STACK + ZERO? STACK \?ELS5 + PRINT YOU-CANT + PRINTI "reach it from here. You'll have to step off" + LOC PLAYER + CALL TPRINT,STACK + PRINTR " first." +?ELS5: ZERO? RARG \FALSE + EQUAL? PRSA,V?EXAMINE \?ELS12 + PRINTI "The " + CALL DPRINT,PRSO + PRINTI " is " + EQUAL? PRSO,RIGHT-END \?ELS19 + EQUAL? WHICH-END-IS-UP,RIGHT-END /?THN16 +?ELS19: EQUAL? PRSO,LEFT-END \?ELS15 + EQUAL? WHICH-END-IS-UP,LEFT-END \?ELS15 +?THN16: PRINTI "in the air" + JUMP ?CND13 +?ELS15: PRINTI "on the ground" +?CND13: PRINTR "." +?ELS12: EQUAL? PRSA,V?LOWER,V?PUSH-DOWN \?ELS25 + ZERO? PRSI \?ELS25 + EQUAL? PRSO,WHICH-END-IS-UP /?ELS32 + CALL ITS-ALREADY,STR?173 + RSTACK +?ELS32: FSET? BS-SAFE,ON-GROUND-BIT \?ELS34 + PRINTR "It won't budge. The safe is on the other end. You should have eaten more carrots as Aunt Hildegarde told you to, instead of feeding them to the dog. It might have improved your eyesight." +?ELS34: LOC PLAYER + EQUAL? PRSO,STACK \?ELS36 + PRINTI "How can you do that to" + CALL TPRINT,PRSO + PRINTR " when you're standing on it?" +?ELS36: EQUAL? PRSO,WHICH-END-IS-UP \?ELS38 + IN? PLAYER,LEFT-END /?THN41 + IN? PLAYER,RIGHT-END \?ELS38 +?THN41: PRINTI "You can't lower" + CALL TPRINT,PRSO + PRINTI " when you're standing on" + LOC PLAYER + CALL TRPRINT,STACK + RSTACK +?ELS38: PRINTI "You push down the " + EQUAL? WHICH-END-IS-UP,RIGHT-END \?ELS47 + SET 'WHICH-END-IS-UP,LEFT-END + PRINTI "right" + JUMP ?CND45 +?ELS47: SET 'WHICH-END-IS-UP,RIGHT-END + PRINTI "left" +?CND45: PRINTR " end of the plank and the other end goes up." +?ELS25: EQUAL? PRSA,V?RAISE \?ELS51 + ZERO? PRSI \?ELS51 + EQUAL? PRSO,WHICH-END-IS-UP \?ELS58 + CALL ITS-ALREADY,STR?174 + RSTACK +?ELS58: LOC PLAYER + EQUAL? PRSO,STACK \?ELS60 + PRINTI "How can you raise" + CALL TPRINT,PRSO + PRINTR " when you're standing on it?" +?ELS60: EQUAL? PRSO,LEFT-END \?ELS62 + FSET? BS-SAFE,ON-GROUND-BIT \?ELS62 + PRINTR "You can't raise the left end when the safe is on it." +?ELS62: PRINTI "You raise the " + EQUAL? WHICH-END-IS-UP,RIGHT-END \?ELS69 + SET 'WHICH-END-IS-UP,LEFT-END + PRINTI "left" + JUMP ?CND67 +?ELS69: SET 'WHICH-END-IS-UP,RIGHT-END + PRINTI "right" +?CND67: PRINTR " end of the plank and the other end goes down." +?ELS51: EQUAL? PRSA,V?CLIMB-ON,V?STAND-ON \?ELS73 + EQUAL? WHICH-END-IS-UP,PRSO \?ELS78 + CALL IN-AIR + RSTACK +?ELS78: FSET? BS-SAFE,ON-GROUND-BIT \?ELS80 + PRINT YOU-CANT + PRINTI "do that. The " + CALL DPRINT,BS-SAFE + PRINTR " is already there." +?ELS80: FSET? SKIS,WORNBIT \?ELS82 + PRINTI "You step onto" + CALL TPRINT,PLANK + PRINTR " but ski right off." +?ELS82: CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS73: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + CALL SLIDES-OFF + RSTACK + + + .FUNCT IN-AIR + PRINTR "It's in the air. How can you stand on it?" + + + .FUNCT GENERIC-PLANK-F + EQUAL? PRSA,V?CLIMB-ON,V?STAND-ON /FALSE + RETURN PLANK + + + .FUNCT PLANK-F + EQUAL? PRSA,V?CLIMB-ON,V?STAND-ON \?ELS5 + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + PRINTI "The " + CALL DPRINT,PLANK + PRINTI " is about 12 feet long and several inches thick. The right end of the plank is " + EQUAL? WHICH-END-IS-UP,RIGHT-END \?ELS12 + PRINTI "in the air " + JUMP ?CND10 +?ELS12: PRINTI "on the ground " +?CND10: PRINTI "and the left end is " + EQUAL? WHICH-END-IS-UP,RIGHT-END \?ELS17 + PRINTI "on the ground" + FSET? BS-SAFE,ON-GROUND-BIT \?CND15 + PRINTI " with" + CALL APRINT,BS-SAFE + PRINTI " sitting on it" + JUMP ?CND15 +?ELS17: PRINTI "in the air" +?CND15: PRINTR "." +?ELS9: EQUAL? PRSA,V?DISEMBARK \?ELS24 + IN? PLAYER,RIGHT-END /?THN27 + IN? PLAYER,LEFT-END \?ELS24 +?THN27: LOC PLAYER + CALL PERFORM,V?DISEMBARK,STACK + RTRUE +?ELS24: EQUAL? PRSA,V?PUSH-DOWN \?ELS30 + ZERO? PRSI \?ELS30 + CALL ENDS-F + RSTACK +?ELS30: EQUAL? PRSA,V?TAKE \?ELS34 + PRINT SPINACH + CRLF + RTRUE +?ELS34: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + CALL SLIDES-OFF + RSTACK + + + .FUNCT SLIDES-OFF + PRINTI "The " + CALL DPRINT,PRSO + PRINTI " slides off onto the ground." + CRLF + MOVE PRSO,HERE + RTRUE + + + .FUNCT PULLEY-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "The pulley is firmly attached to the ceiling." + + + .FUNCT PIPE-F + EQUAL? PRSA,V?UNTIE \?ELS5 + PRINTR "You can't even loosen the knot because of the weight of the safe." +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The " + CALL DPRINT,PIPE + PRINTI " runs along a wall of the bomb shelter" + ZERO? ROPE-LIFE /?CND8 + PRINTI ". There is a rope tied to it" +?CND8: PRINTR "." + + + .FUNCT BS-SAFE-F + EQUAL? PRSA,V?TURN-RIGHT,V?TURN-LEFT \?ELS5 + EQUAL? PRSI,INTNUM \?ELS5 + FSET? BS-SAFE,ON-GROUND-BIT /?ELS12 + PRINTR "You can't reach the safe from here." +?ELS12: GRTR? P-NUMBER,10 \?ELS19 + PRINTR "The dial only goes to 10." +?ELS19: SET 'BS-SAFE-DIAL-NUMBER,P-NUMBER + PRINTI "You turn the dial to " + PRINTN BS-SAFE-DIAL-NUMBER + PRINTC 46 + FSET? BS-SAFE,OPENBIT /?ELS24 + ZERO? STEPS-THROUGH-BS-SAFE \?ELS24 + EQUAL? PRSA,V?TURN-LEFT \?ELS24 + EQUAL? BS-SAFE-DIAL-NUMBER,4 \?ELS24 + SET 'STEPS-THROUGH-BS-SAFE,1 + JUMP ?CND22 +?ELS24: FSET? BS-SAFE,OPENBIT /?ELS28 + EQUAL? STEPS-THROUGH-BS-SAFE,1 \?ELS28 + EQUAL? PRSA,V?TURN-RIGHT \?ELS28 + EQUAL? BS-SAFE-DIAL-NUMBER,5 \?ELS28 + SET 'STEPS-THROUGH-BS-SAFE,2 + JUMP ?CND22 +?ELS28: FSET? BS-SAFE,OPENBIT /?ELS32 + EQUAL? STEPS-THROUGH-BS-SAFE,2 \?ELS32 + EQUAL? PRSA,V?TURN-LEFT \?ELS32 + EQUAL? BS-SAFE-DIAL-NUMBER,7 \?ELS32 + SET 'STEPS-THROUGH-BS-SAFE,3 + FCLEAR BS-SAFE,LOCKEDBIT + PRINTI " You hear a faint click." + JUMP ?CND22 +?ELS32: SET 'STEPS-THROUGH-BS-SAFE,0 +?CND22: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?TURN-LEFT,V?TURN-RIGHT,V?TURN \?ELS38 + FSET? BS-SAFE,ON-GROUND-BIT /?ELS43 + PRINTR "You can't reach the safe from here." +?ELS43: EQUAL? PRSI,FALSE-VALUE,ROOMS \?ELS50 + PRINTR "You didn't say what number you wanted to turn the dial to, or the direction." +?ELS50: EQUAL? PRSI,INTNUM \?ELS52 + PRINTI "You didn't say whether you wanted to turn the dial RIGHT to " + PRINTN P-NUMBER + PRINTI " or LEFT to " + PRINTN P-NUMBER + PRINTR "." +?ELS52: PRINTR "Huh?" +?ELS38: EQUAL? PRSA,V?EXAMINE \?ELS56 + PRINTI "The " + CALL DPRINT,BS-SAFE + PRINTI " is " + FSET? BS-SAFE,ON-GROUND-BIT \?ELS59 + PRINTI "sitting on" + CALL TPRINT,LEFT-END + PRINTI ". There is a dial on the safe which can be set to any number between 0 and 10. The dial is set to " + PRINTN BS-SAFE-DIAL-NUMBER + JUMP ?CND57 +?ELS59: PRINTI "suspended overhead by" + CALL APRINT,ROPE +?CND57: PRINTI ". There is a small plaque on the front of" + CALL TPRINT,BS-SAFE + PRINTI ". " + RFALSE +?ELS56: EQUAL? PRSA,V?CLOSE \FALSE + FSET? BS-SAFE,OPENBIT \FALSE + FSET BS-SAFE,LOCKEDBIT + RFALSE + + + .FUNCT PLAQUE-F + FSET? BS-SAFE,ON-GROUND-BIT /?ELS5 + PRINTI "It's up too high. " + PRINT YOU-CANT + PRINTR "read it from here." +?ELS5: EQUAL? PRSA,V?READ \FALSE + CALL FIXED-FONT-ON + PRINTI " LEVY, REGAN, LEBLING + SAFE COMPANY + UPPER SANDUSKY, OHIO + 1936" + CALL FIXED-FONT-OFF + RSTACK + + + .FUNCT CORPSE-LINE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + IN? CORPSE-LINE,FILM-PROJECTOR \?ELS10 + FSET? FILM-PROJECTOR,ONBIT \?ELS10 + CALL PERFORM,V?EXAMINE,PROJECTION-SCREEN + RTRUE +?ELS10: PRINTR "It's a copy of the film ""A Corpse Line,"" on a large film reel." +?ELS5: EQUAL? PRSA,V?TAKE \?ELS16 + IN? CORPSE-LINE,FILM-PROJECTOR \FALSE + FSET? FILM-PROJECTOR,ONBIT \FALSE + PRINTI "Even a nonunion projectionist like yourself should know how dangerous it is to try to take film from" + CALL APRINT,FILM-PROJECTOR + PRINTR " while it's running." +?ELS16: EQUAL? PRSA,V?PUT \?ELS25 + FSET? FILM-PROJECTOR,ONBIT \?ELS25 + EQUAL? PRSI,FILM-PROJECTOR \?ELS25 + PRINTI "You start to put" + CALL TPRINT,CORPSE-LINE + PRINTI " in" + CALL TPRINT,FILM-PROJECTOR + PRINTI ", but glance up at a sign on the wall. The sign states: Remember, Perry Projectionist sez, ""Never try to put film in" + CALL APRINT,FILM-PROJECTOR + PRINTR " that's turned on.""" +?ELS25: EQUAL? PRSA,V?SHOW \FALSE + PRINTR "It is a little more complicated than that." + + + .FUNCT RUBBER-STAMP-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's the large rubber stamp Buck Palace used to mail the POW's to the Pentagon in Uncle Buddy's ""Address Unknown.""" + + + .FUNCT ROPE-F + EQUAL? PRSA,V?UNTIE,V?TIE,V?TAKE \?ELS5 + EQUAL? ROPE-LIFE,1,2 \?ELS10 + PRINTR "You'd burn your hand. It's on fire!" +?ELS10: PRINTI "You can't even loosen the knot because of the weight of" + CALL TRPRINT,BS-SAFE + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS14 + EQUAL? ROPE-LIFE,2 \?ELS19 + PRINTI "One end of" + CALL TPRINT,ROPE + PRINTI " is tied around" + CALL TPRINT,BS-SAFE + PRINTR " and the other end is tied to a pipe running along the wall." +?ELS19: EQUAL? ROPE-LIFE,1 \FALSE + PRINTI "The rope is burning and is tied to" + CALL TRPRINT,BS-SAFE + RSTACK +?ELS14: EQUAL? PRSA,V?PUT-UNDER \?ELS23 + EQUAL? PRSO,WHITE-CANDLE,BLUE-CANDLE,RED-CANDLE \?ELS23 + FSET? PRSO,FLAMEBIT \?ELS23 + CALL PERFORM,V?BURN,ROPE,PRSO + RTRUE +?ELS23: EQUAL? PRSA,V?BURN \?ELS27 + CALL SET-FLAME-SOURCE + ZERO? STACK \TRUE + FSET? PRSI,FLAMEBIT /?ELS34 + PRINTR "Huh?" +?ELS34: LESS? ROPE-LIFE,3 \?ELS36 + CALL ITS-ALREADY,STR?175 + RSTACK +?ELS36: EQUAL? ROPE-LIFE,3 \FALSE + PRINTI "You touch the flame to the rope then pull it back. The rope catches fire and begins to burn." + CRLF + SET 'ROPE-LIFE,2 + FSET ROPE,ONBIT + CALL QUEUE,I-ROPE-BURN,2 + RSTACK +?ELS27: EQUAL? PRSA,V?PULL \?ELS40 + FSET? BS-SAFE,ON-GROUND-BIT /?ELS40 + PRINTI "You pull on" + CALL TPRINT,ROPE + PRINTR " but nothing happens." +?ELS40: EQUAL? PRSA,V?TIE \?ELS44 + PRINT YOU-CANT + PRINTI " do that. The " + CALL DPRINT,ROPE + PRINTI " is already tied to" + CALL TRPRINT,BS-SAFE + RSTACK +?ELS44: EQUAL? PRSA,V?CLIMB-UP \FALSE + PRINTR "You climb the rope, almost reaching the safe, then lose your grip and drop to the ground." + + + .FUNCT I-ROPE-BURN + DEC 'ROPE-LIFE + ZERO? ROPE-LIFE \?ELS5 + CRLF + CALL DEQUEUE,I-ROPE-BURN + CALL BURN-THROUGH-ROPE + RSTACK +?ELS5: CRLF + PRINTI "The " + CALL DPRINT,ROPE + PRINTI " continues to burn." + CRLF + CALL QUEUE,I-ROPE-BURN,-1 + RTRUE + + + .FUNCT BURN-THROUGH-ROPE + EQUAL? HERE,TUNNEL /?THN4 + EQUAL? HERE,LEDGE \?ELS3 +?THN4: PRINTI "You hear a crash echo from the bomb shelter." + CRLF + JUMP ?CND1 +?ELS3: EQUAL? HERE,BOMB-SHELTER \?CND1 + PRINTI "As the flame burns through" + CALL TPRINT,ROPE + PRINTI " it snaps and" + CALL TPRINT,BS-SAFE + PRINTI " crashes down on" + CALL TPRINT,LEFT-END + LOC PLAYER + EQUAL? STACK,RIGHT-END \?ELS10 + PRINTI ". The " + CALL DPRINT,RIGHT-END + PRINTI " catapults you up" + FSET? HATCH,OPENBIT \?ELS13 + PRINTI " through the opening in the ceiling. The thrilling sensation of flying ends as you land on your feet on a cliff." + CRLF + CRLF + CALL GOTO,CLIFF + JUMP ?CND1 +?ELS13: CALL JIGS-UP,STR?176 + JUMP ?CND1 +?ELS10: LOC PLAYER + EQUAL? STACK,LEFT-END \?ELS17 + CALL JIGS-UP,STR?177 + JUMP ?CND1 +?ELS17: PRINTI ". The rope burns up and turns to ashes." + CRLF +?CND1: FSET BS-SAFE,ON-GROUND-BIT + SET 'ROPE-LIFE,0 + FCLEAR ROPE,ONBIT + REMOVE ROPE + SET 'WHICH-END-IS-UP,RIGHT-END + RETURN WHICH-END-IS-UP + + + .FUNCT I-SUNRISE + FSET? HERE,OUTDOORSBIT /?THN6 + GETP HERE,P?CAPACITY + EQUAL? STACK,20 \FALSE +?THN6: EQUAL? MOVES,547 \?ELS12 + CALL QUEUE,I-SUNRISE,10 + CALL DEQUEUE,I-NOISE + CRLF + PRINTR "The sun begins to rise over the colony." +?ELS12: EQUAL? MOVES,557 \FALSE + FSET GAME-ROOM,ONBIT + FSET SHORT-HALL,ONBIT + FSET OUTSIDE-PARLOR,ONBIT + FSET FOYER,ONBIT + FSET LIVING-ROOM,ONBIT + FSET KITCHEN,ONBIT + FSET DINING-ROOM,ONBIT + FSET BEDROOM-1,ONBIT + FSET BEDROOM-2,ONBIT + FSET BEDROOM-3,ONBIT + FSET UPSTAIRS-HALL-EAST,ONBIT + FSET UPSTAIRS-HALL-MIDDLE,ONBIT + FSET UPSTAIRS-HALL-WEST,ONBIT + CRLF + PRINTR "The sun rises in the sky, signalling a new day in Malibu." + + .ENDI diff --git a/bshelter.zil b/bshelter.zil new file mode 100644 index 0000000..78ddb26 --- /dev/null +++ b/bshelter.zil @@ -0,0 +1,1210 @@ +"BSHELTER for ANTHILL (C)1986 Infocom Inc. All rights reserved." + +"--- Matchbox ---" + + + + + + ;) + ( + + )>> + + + + + + + + > + + > + >> + + ) + (ELSE + )>)> + )>> + + + + + + + + + ) + ( + ) + (T + + > + )> + )> + ) + ( + > + ) + ( + ) + (> + ) + ( + ) + ( + ) + ( + ) + (T + + ; + + + ) + ( + )> + + + + ) + (T + )> + + )>) + ( + + ) + (T + )>) + ( + )>> + + + )> + + )>> + +> + ) + (T + 1>>)>> + +)) + + + > + >> + )> + + )> + + + )>> + + + + + )>> ;"grotto or cavern?" + + + + + + + ) + (ELSE + "!" CR>)>) + ( + + ) + (T + )>) + ( + > + ;"is port-water in bucket?" + ) + (T + + + + + + + )> + + + + + + ) + ( + ) + ( + ) + ( + )> + + )> + ) + (ELSE + + )>)>) + ( + + > + + ) + ( + + > + + ) + ( + > + )>> + + + + + ) + ( + + ) + ( + ;"put in pond-f?" + + ) + ( + + ) + ( + + ) + ;( 20> + + ) + ( + + )> + + + + + )> + + ) + ( + ) + (T + )> + + > + + )> + + > + )> + + > + )> + + > + )> + + + + > + + + + + + + )> + + > + + + + )> + + > + + + + )> + ) + ( + + > + + ) + ( + > + + + ) + (T + + )>) + ( + + + ) + (T + )>) + ( + > + )>> + + + > + + )> + + + )> + >> + + )> + + )>> + +;> + + )> + + + )> + >>> + + + + + + ,BOAT-DOCK)>> + + + + ) + (T + )> + ;"eventually will need a which-room routine here." + ; + + + > + + + +> + + ) + ( + ) + ( + ) + ( + + )>> + + + + ;"in pool desc mention less light, also mention more than just skeletons, too much of a give-away. also can you see the green of the water with just the full moon?" + +; + + > + ) + (T + )> + )>> + + + + + ) + ( + )>> + + + + + > + + + > + + + +; + + + + + + + )> + + ;)>> + + + + + + + ) + (T + )>)>> + + + + + + +"--- Bomb Shelter ---" + + PULLEY PULLEY-PSEUDO)>) + (ACTION BOMB-SHELTER-F)> + + + + + ) + (T + + + )> + )> + + + ) + (T + )> + + + )> + ) + ( + + > + + )>> + + + + + + + > + + + ) + (T + )>) + ( + >> + + ) + (T + )>) + ( + > + + ) + ( + > + + ) + (T + + + ; + )> + )>) + ( + + ) + (T + )>)>> + + + + + + + )> + + + + + ) + (T + + + )> + + + )> + ) + ( + ) + ( + )>> + +"--- Plank ends ---" + + ;"why contbit and no capacity?" + + + + + +)) + + + >>> + " first." CR> + ) + (.RARG + ) + ( + + + > + + >> + ) + (T + )> + ) + ( + > + > + ) + ( + ) + (> + ) + ( + + >> + >) + (T + + + + ) + (T + + )> + )>) + ( + > + + ) + (> + ) + ( + > + ) + (T + + + + ) + (T + + )> + )>) + ( + + ) + ( + ) + ( + ) + (T + + )>) + ( + )>> + +> + + +"--- Plank ---" + + + + + ) ;"asks which end you mean?" + (T + ,PLANK)>> + + + > + ) + ( + + + ) + (T + )> + + + + + )>) + (T + )> + + ) + ( + + >> + > + ) + ( ;"what does this do?" + > + ) + ( + ) + ( + )>> + + + > + + + )>> + + + + + ) + ( + + > + )> + )>> + + + + + + + +;"Safe combo- Left 4, Right 5, Left 7" + + + > + > + ) + (T + + ) + ( + ) + (T + + + > + + + > + ) + (> + + + > + ) + (> + + + > + + + ; + ) + (T + )> + )>)>) + ( + > + ) + (T + ,ROOMS> + ) + ( + ) + (T + )>)>) + ( + + + ) + (T + )> + + ) + ( + > + + )>> + + + +> + ) + ( + + + )>> + +; ;"SEM could I just use an ldesc here?" + +; + + ) + (T + )>)>> + + + + + + > + + ) + (T + )>) + ( + + > + )>) + ( + + > + ) + ( + )>> + + + )>> + + +"--- Rope ---" + + + + + + + + ) + (T + )>) + ( + + ) + ( + )>) + ( + + > + + ) + ( + + ) + (> + ) + ( + ) + ( + + + + )>) + ( + >> + ) + ( + ) + ( + ) + (T + )>> ;"why rfalse here?" + +> + + + + ) + (T + + + )>> + + + > + ) + ( + + ,RIGHT-END> + + + + ) + (T + )>) + ( ,LEFT-END> + ) + (T + ;"Not on either end of the plank" + )>)> + + + + + > + + + 20>> + ;"6:07 A.M." + + + ) + ( + + + + + + + + + + + + + + )>)>> + + diff --git a/elevator.zap b/elevator.zap new file mode 100644 index 0000000..030312d --- /dev/null +++ b/elevator.zap @@ -0,0 +1,885 @@ + + + .FUNCT CLOSET-HOLE-PSEUDO + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSO,PEG-0 \?ELS10 + ADD SCORE,10 >SCORE + CALL ROB,PLAYER,HEART-OF-MAZE + FSET? RING,WORNBIT \?CND11 + MOVE RING,PLAYER +?CND11: FSET? TOUPEE,WORNBIT \?CND14 + MOVE TOUPEE,PLAYER +?CND14: FSET? MASK,WORNBIT \?CND17 + MOVE MASK,PLAYER +?CND17: CALL DEQUEUE,I-SANDS-OF-TIME + CALL DEQUEUE,I-NOISE + CALL QUEUE,I-AUNT,2 + PRINTI "You put" + CALL TPRINT,PEG-0 + PRINTI " in the hole and the closet door slams shut. Without warning, the floor drops out from under you! You fall for several seconds then land with a bone-crunching thud, dropping everything you're holding. You slide down a twisting, slippery slide and are dumped into a room filled with props. + +You look around the room and can't believe what your eyes are seeing. There is Aunt Hildegarde! She's tied to the conveyor belt of a whirling buzz saw and a man is standing over her. Aunt Hildegarde sees you and screams. The man turns and you immediately recognize your childhood nemesis: Cousin Herman." + CRLF + CRLF + CALL QUEUE,I-HERMAN-ATTACK,2 + CALL GOTO,PROP-VAULT + RSTACK +?ELS10: PRINTI "The " + CALL DPRINT,PRSO + PRINTR " won't fit in the hole." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINTR "You see nothing but darkness." + + + .FUNCT CLOSET-F,RARG,DOOR + EQUAL? RARG,M-LOOK \FALSE + CALL WHICH-DOOR? >DOOR + PRINTI "You're in a small closet. Mounted at an angle on the back wall of the closet are three coat pegs. To the left of the first peg there is a hole the size of a peg. To the right of the third peg there is a peg which has been sawed-off, flush with the wall. The door to the north is " + FSET? DOOR,OPENBIT \?ELS8 + PRINTI "open" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTC 46 + RTRUE + + + .FUNCT PEG-5-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It's what's left of a coat peg. It looks as if someone sawed off the peg." +?ELS5: EQUAL? PRSA,V?PULL \FALSE + PRINTR "There's nothing to pull -- it's sawed-off." + + + .FUNCT CLOSET-EXIT-F,DOOR + CALL WHICH-DOOR? >DOOR + FSET? DOOR,OPENBIT /?ELS5 + CALL THIS-IS-IT,DOOR + CALL ITS-CLOSED,DOOR + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7 + RETURN CELLAR +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + RETURN FOYER +?ELS9: RETURN UPSTAIRS-HALL-MIDDLE + + + .FUNCT WHICH-DOOR? + EQUAL? HERE,CLOSET \?ELS5 + EQUAL? CLOSET-FLOOR,CELLAR \?ELS10 + RETURN CELLAR-CD +?ELS10: EQUAL? CLOSET-FLOOR,FOYER \?ELS12 + RETURN FOYER-CD +?ELS12: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS14 + RETURN UPSTAIRS-CD +?ELS14: RETURN ATTIC-CD +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS23 + RETURN FOYER-CD +?ELS23: EQUAL? CLOSET-FLOOR,FOYER \?ELS25 + RETURN UPSTAIRS-CD +?ELS25: RETURN ATTIC-CD + + + .FUNCT PROP-VAULT-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a vault filled with props. You can see Aunt Hildegarde tied to a buzz saw. Cousin Herman is here, thinking of something rotten to do to you. To the east there is a chute." + RTRUE + + + .FUNCT CHUTE-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5 + PRINTR "The chute leads down into darkness." +?ELS5: EQUAL? PRSA,V?ENTER \?ELS7 + CALL DO-WALK,P?DOWN + RSTACK +?ELS7: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,CHUTE \FALSE + REMOVE PRSO + PRINTI "You toss" + CALL TPRINT,PRSO + PRINTR " in the chute." + + + .FUNCT TO-CHUTE + ZERO? HERMAN-DOWN /?ELS5 + PRINTI "Haven't you forgotten something?" + CRLF + RFALSE +?ELS5: PRINTI "Cousin Herman jumps in front of the chute then punches you in the stomach." + CRLF + RFALSE + + + .FUNCT CLOSET-REF-F + EQUAL? PRSA,V?SEARCH,V?ENTER,V?LOOK-INSIDE \?ELS5 + EQUAL? HERE,CLOSET-TOP \?ELS5 + PRINTR "You can't enter the closet from here." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS9 + EQUAL? HERE,CLOSET \?ELS9 + CALL V-LOOK + RSTACK +?ELS9: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE \?ELS13 + EQUAL? HERE,CLOSET /?ELS13 + EQUAL? CLOSET-FLOOR,HERE \?ELS20 + PRINTR "You'll have to enter the closet first." +?ELS20: PRINTR "You see an empty shaft." +?ELS13: EQUAL? PRSA,V?SEARCH \?ELS24 + CALL PERFORM,V?SEARCH,GLOBAL-ROOM + RTRUE +?ELS24: EQUAL? PRSA,V?OPEN \?ELS26 + EQUAL? HERE,CLOSET \?ELS31 + CALL WHICH-DOOR? + JUMP ?CND27 +?ELS31: EQUAL? HERE,FOYER \?ELS33 + PUSH FOYER-CD + JUMP ?CND27 +?ELS33: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS35 + PUSH UPSTAIRS-CD + JUMP ?CND27 +?ELS35: EQUAL? HERE,CELLAR \?ELS37 + PUSH CELLAR-CD + JUMP ?CND27 +?ELS37: PUSH ATTIC-CD +?CND27: CALL PERFORM,V?OPEN,STACK + RTRUE +?ELS26: EQUAL? PRSA,V?CLOSE \?ELS41 + EQUAL? HERE,CLOSET \?ELS46 + CALL WHICH-DOOR? + JUMP ?CND42 +?ELS46: EQUAL? HERE,FOYER \?ELS48 + PUSH FOYER-CD + JUMP ?CND42 +?ELS48: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS50 + PUSH UPSTAIRS-CD + JUMP ?CND42 +?ELS50: EQUAL? HERE,CELLAR \?ELS52 + PUSH CELLAR-CD + JUMP ?CND42 +?ELS52: PUSH ATTIC-CD +?CND42: CALL PERFORM,V?CLOSE,STACK + RTRUE +?ELS41: EQUAL? PRSA,V?EXIT,V?DISEMBARK \?ELS56 + CALL DO-WALK,P?OUT + RSTACK +?ELS56: EQUAL? PRSA,V?ENTER \FALSE + EQUAL? HERE,CLOSET \?ELS63 + PRINTR "Look around." +?ELS63: CALL DO-WALK,P?IN + RSTACK + + + .FUNCT PEGS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "There are three pegs mounted at an angle to the wall. To the left of the first peg is a hole the size of a peg. To the right of the third peg you can see where a peg has been sawed-off, flush with the wall." +?ELS5: EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN8 + EQUAL? PRSA,V?PUSH-DOWN,V?LOWER \FALSE +?THN8: PRINTR "You try to pull down all three pegs at once. They won't budge, but the closet makes a grinding noise." + + + .FUNCT PEG-F + EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN6 + EQUAL? PRSA,V?PUSH-DOWN,V?LOWER \?ELS5 +?THN6: EQUAL? PRSO,BUCKET-PEG \?ELS12 + FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS12 + PRINTI "The bucket is already holding" + CALL TPRINT,PRSO + PRINTR " down." +?ELS12: PRINTI "You pull the peg down to a horizontal position." + FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?CND17 + PRINTI " You hear a grinding noise." +?CND17: CRLF + CRLF + PRINTI "As you release the peg, it pops back into its original 45-degree position." + FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS24 + CRLF + RTRUE +?ELS24: PRINTC 32 + CALL ELEVATOR-OPERATOR,PRSO + RSTACK +?ELS5: EQUAL? PRSA,V?HANG-UP \?ELS28 + EQUAL? PRSI,PEG-3,PEG-2,PEG-1 \?ELS28 + EQUAL? PRSO,BUCKET /?ELS28 + MOVE PRSO,HERE + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " slips off and falls to the floor." +?ELS28: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS35 + PRINTI "The " + CALL DPRINT,PRSO + PRINTI " is in a horizontal position with a bucket hanging on it." + JUMP ?CND33 +?ELS35: EQUAL? PRSO,BUCKET-PEG \?ELS37 + PRINTI "The " + CALL DPRINT,PRSO + PRINTI " is pointing up at an angle with a bucket hanging on it." + JUMP ?CND33 +?ELS37: PRINTI "You see a worn coat peg mounted at an angle." +?CND33: CRLF + RTRUE + + + .FUNCT PEG-0-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a worn coat peg." + + + .FUNCT ELEVATOR-OPERATOR,PEG + EQUAL? HERE,FOYER,CELLAR,UPSTAIRS-HALL-MIDDLE /?THN4 + EQUAL? HERE,ATTIC,SHAFT-BOTTOM \?CND1 +?THN4: PRINTI "The closet door swings shut by itself." + CRLF +?CND1: EQUAL? PEG,PEG-1 \?ELS12 + EQUAL? CLOSET-FLOOR,CELLAR /?THN9 +?ELS12: EQUAL? PEG,PEG-2 \?ELS14 + EQUAL? CLOSET-FLOOR,FOYER /?THN9 +?ELS14: EQUAL? PEG,PEG-3 \?ELS8 + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS8 +?THN9: EQUAL? HERE,CLOSET,CLOSET-TOP \?CND6 + EQUAL? HERE,CLOSET \?ELS22 + CALL WHICH-DOOR? + FSET? STACK,OPENBIT \?ELS25 + PRINTI "The closet door swings shut and you" + JUMP ?CND20 +?ELS25: PRINTI "You" + JUMP ?CND20 +?ELS22: CALL WHICH-DOOR? + FSET? STACK,OPENBIT \?ELS32 + PRINTI "The shaft door swings shut and you" + JUMP ?CND20 +?ELS32: PRINTI "You" +?CND20: PRINTI " feel the closet" + EQUAL? HERE,CLOSET /?CND35 + PRINTI " ceiling" +?CND35: PRINTI " vibrate, then stop." + CRLF + JUMP ?CND6 +?ELS8: EQUAL? HERE,CLOSET,CLOSET-TOP \?ELS42 + EQUAL? HERE,CLOSET /?CND43 + CRLF +?CND43: PRINTI "The closet " + EQUAL? HERE,CLOSET-TOP \?CND46 + PRINTI "ceiling " +?CND46: PRINTI "begins to shake and rattle a bit" + EQUAL? HERE,CLOSET,CLOSET-TOP \?CND49 + CALL WHICH-DOOR? + FSET? STACK,OPENBIT \?CND49 + PRINTI " as the door swings shut" +?CND49: PRINTI ". You feel your stomach " + EQUAL? PEG,PEG-3 \?ELS56 + PRINTI "drop to your knees as the closet " + EQUAL? HERE,CLOSET /?ELS59 + PRINTI "moves up. You enter the top of the shaft, then the closet stops." + CRLF + CRLF + CALL GOTO,CLOSET-TOP + JUMP ?CND6 +?ELS59: PRINTI "moves up, then stops." + CRLF + JUMP ?CND6 +?ELS56: EQUAL? PEG,PEG-2 \?ELS63 + EQUAL? CLOSET-FLOOR,CELLAR \?ELS63 + PRINTI "drop to your knees as the closet " + EQUAL? HERE,CLOSET /?CND66 + PRINTI "floor " +?CND66: PRINTI "moves up, then stops." + CRLF + EQUAL? HERE,CLOSET /?CND6 + CRLF + CALL GOTO,CLOSET-TOP + JUMP ?CND6 +?ELS63: EQUAL? PEG,PEG-2 \?ELS73 + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS73 + PRINTI "rising to your throat as the closet " + EQUAL? HERE,CLOSET /?CND76 + PRINTI "floor " +?CND76: PRINTI "moves down, then stops." + CRLF + EQUAL? HERE,CLOSET /?CND6 + CRLF + CALL GOTO,CLOSET-TOP + JUMP ?CND6 +?ELS73: PRINTI "rising to your throat as the closet " + EQUAL? HERE,CLOSET /?CND84 + PRINTI "floor " +?CND84: PRINTI "moves down, then stops." + CRLF + EQUAL? HERE,CLOSET /?CND6 + CRLF + CALL GOTO,CLOSET-TOP + JUMP ?CND6 +?ELS42: EQUAL? HERE,SHAFT-BOTTOM \?CND6 + EQUAL? PEG,PEG-1 \?CND6 + CALL JIGS-UP,STR?216 +?CND6: EQUAL? PEG,PEG-1 \?ELS96 + SET 'CLOSET-FLOOR,CELLAR + JUMP ?CND94 +?ELS96: EQUAL? PEG,PEG-2 \?ELS98 + SET 'CLOSET-FLOOR,FOYER + JUMP ?CND94 +?ELS98: SET 'CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE +?CND94: FCLEAR ATTIC-CD,OPENBIT + FCLEAR UPSTAIRS-CD,OPENBIT + FCLEAR FOYER-CD,OPENBIT + FCLEAR CELLAR-CD,OPENBIT + RTRUE + + + .FUNCT BUCKET-F,OARG=0,FULL?=0 + IN? PORTABLE-WATER,BUCKET /?PRD1 + PUSH 0 + JUMP ?PRD2 +?PRD1: PUSH 1 +?PRD2: SET 'FULL?,STACK + ZERO? OARG /?ELS7 + ZERO? BUCKET-PEG /FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + CRLF + PRINTI "A " + PRINTD BUCKET + PRINTI " is hanging from" + CALL TPRINT,BUCKET-PEG + IN? PORTABLE-WATER,BUCKET \?CND18 + PRINTI ". The bucket " + CALL DESCRIBE-WATER-LEVEL +?CND18: PRINTC 46 + RTRUE +?ELS7: EQUAL? PRSA,V?HANG-UP,V?PUT-ON \?ELS24 + EQUAL? PRSI,PEG-3,PEG-2,PEG-1 \?ELS24 + SET 'BUCKET-PEG,PRSI + FSET BUCKET,TRYTAKEBIT + MOVE BUCKET,HERE + IN? PORTABLE-WATER,BUCKET \?CND27 + FSET PORTABLE-WATER,NDESCBIT +?CND27: IN? PORTABLE-WATER,BUCKET \?ELS38 + GRTR? AMOUNT-OF-WATER,10 /?THN35 +?ELS38: CALL WEIGHT,BUCKET + GRTR? STACK,20 \?ELS34 +?THN35: FSET BUCKET,BUCKET-PEG-DOWN-BIT + PRINTI "As you hang" + CALL TPRINT,BUCKET + PRINTI " on" + CALL TPRINT,PRSI + PRINTR ", the peg lowers to a horizontal position and you feel the closet begin to vibrate." +?ELS34: PRINTI "You hang" + CALL TPRINT,BUCKET + PRINTR " on the peg." +?ELS24: EQUAL? PRSA,V?TAKE \?ELS42 + EQUAL? PRSO,BUCKET \?ELS42 + FSET? BUCKET,TRYTAKEBIT \?ELS42 + CALL ITAKE + ZERO? STACK /TRUE + FSET? BUCKET,WETBIT \?ELS51 + FCLEAR BUCKET,WETBIT + MOVE PORTABLE-WATER,BUCKET + SET 'AMOUNT-OF-WATER,26 + PRINTI "Taken." + CRLF + CALL QUEUE,I-DRIP,1 + RSTACK +?ELS51: FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS53 + FCLEAR BUCKET,TRYTAKEBIT + FCLEAR BUCKET,BUCKET-PEG-DOWN-BIT + FCLEAR PORTABLE-WATER,NDESCBIT + PRINTI "As you remove" + CALL TPRINT,BUCKET + PRINTC 44 + CALL TPRINT,BUCKET-PEG + PRINTI " pops back into its original 45-degree position. " + CALL ELEVATOR-OPERATOR,BUCKET-PEG + SET 'BUCKET-PEG,FALSE-VALUE + RTRUE +?ELS53: FCLEAR BUCKET,TRYTAKEBIT + FCLEAR PORTABLE-WATER,NDESCBIT + SET 'BUCKET-PEG,FALSE-VALUE + PRINTR "Taken." +?ELS42: EQUAL? PRSA,V?EXAMINE,V?SEARCH,V?LOOK-INSIDE \?ELS57 + PRINTI "It's an old metal bucket which is beginning to rust through on the bottom. It has a rusty handle and " + IN? PORTABLE-WATER,BUCKET \?ELS62 + CALL DESCRIBE-WATER-LEVEL + PRINTR "." +?ELS62: FIRST? BUCKET \?ELS64 + PRINTI "contains" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + RTRUE +?ELS64: PRINTR "it's empty." +?ELS57: ZERO? FULL? /?ELS71 + EQUAL? PRSA,V?THROW \?ELS71 + CALL PERFORM,V?DROP,PORTABLE-WATER + MOVE BUCKET,HERE + RTRUE +?ELS71: EQUAL? PRSA,V?STAND-ON \?ELS75 + PRINTR "It wouldn't be a very elevating experience." +?ELS75: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS77 + ZERO? FULL? /?ELS82 + CALL PERFORM,V?DRINK,WATER + RTRUE +?ELS82: CALL EMPTY-BUCKET + RSTACK +?ELS77: EQUAL? PRSA,V?EMPTY,V?POUR \?ELS87 + ZERO? FULL? /?ELS92 + CALL PERFORM,V?EMPTY,PORTABLE-WATER + RTRUE +?ELS92: CALL EMPTY-BUCKET + RSTACK +?ELS87: EQUAL? PRSA,V?PUT \?ELS97 + EQUAL? PRSI,BUCKET \?ELS97 + ZERO? BUCKET-PEG /?ELS104 + PRINT PEG-IN-WAY + RTRUE +?ELS104: EQUAL? PRSO,WATER,PORTABLE-WATER \?ELS107 + CALL PERFORM,V?FILL,BUCKET,WATER + RTRUE +?ELS107: ZERO? FULL? /FALSE + PRINTI "But" + CALL TPRINT,PRSO + PRINTR " would get all wet." +?ELS97: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT DESCRIBE-WATER-LEVEL + PRINTI "is " + GRTR? AMOUNT-OF-WATER,21 \?ELS3 + PRINTI "full" + JUMP ?CND1 +?ELS3: GRTR? AMOUNT-OF-WATER,13 \?ELS5 + PRINTI "more than half full" + JUMP ?CND1 +?ELS5: GRTR? AMOUNT-OF-WATER,11 \?ELS7 + PRINTI "about half full" + JUMP ?CND1 +?ELS7: GRTR? AMOUNT-OF-WATER,3 \?ELS9 + PRINTI "less than half full" + JUMP ?CND1 +?ELS9: PRINTI "nearly empty" +?CND1: PRINTI " of water" + RTRUE + + + .FUNCT I-DRIP + CALL QUEUE,I-DRIP,-1 + DEC 'AMOUNT-OF-WATER + IN? BUCKET,POND /?THN8 + IN? BUCKET,PLAYER \?ELS3 + EQUAL? HERE,INLET,ON-POOL-1,IN-POOL-1 /?THN8 + EQUAL? HERE,UNDERPASS-1,UNDERPASS-2,IN-POOL-2 /?THN8 + EQUAL? HERE,ON-POOL-2 \?ELS3 +?THN8: SET 'AMOUNT-OF-WATER,26 + RFALSE +?ELS3: ZERO? AMOUNT-OF-WATER \?CND1 + FCLEAR PORTABLE-WATER,NDESCBIT + REMOVE PORTABLE-WATER + CALL DEQUEUE,I-DRIP +?CND1: CALL VISIBLE?,BUCKET + ZERO? STACK /?CND12 + ZERO? LIT /?CND12 + CRLF + PRINTI "The water " + EQUAL? AMOUNT-OF-WATER,25 \?ELS19 + PRINTI "begin" + JUMP ?CND17 +?ELS19: PRINTI "continue" +?CND17: PRINTI "s to dribble out of" + CALL TPRINT,BUCKET + PRINTC 46 + ZERO? AMOUNT-OF-WATER \?ELS24 + PRINTI " The bucket is now pretty much empty." + JUMP ?CND22 +?ELS24: EQUAL? AMOUNT-OF-WATER,6,12,18 \?CND22 + PRINTI " The bucket is now around " + EQUAL? AMOUNT-OF-WATER,18 \?ELS29 + PRINTI "three-quarters" + JUMP ?CND27 +?ELS29: EQUAL? AMOUNT-OF-WATER,12 \?ELS31 + PRINTI "half" + JUMP ?CND27 +?ELS31: PRINTI "one-quarter" +?CND27: PRINTI " full." +?CND22: CRLF +?CND12: FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?CND34 + LESS? AMOUNT-OF-WATER,10 \?CND34 + CALL VISIBLE?,BUCKET + ZERO? STACK /?CND39 + PRINTI "Suddenly" + CALL TPRINT,BUCKET-PEG + PRINTI " pops back into its original 45-degree position. " +?CND39: CALL ELEVATOR-OPERATOR,BUCKET-PEG + FCLEAR BUCKET,BUCKET-PEG-DOWN-BIT + RTRUE +?CND34: CALL VISIBLE?,BUCKET + ZERO? STACK \TRUE + RFALSE + + + .FUNCT EMPTY-BUCKET,OBJ + FIRST? BUCKET >OBJ \?ELS5 + EQUAL? PRSA,V?DRINK-FROM \?ELS10 + CALL PERFORM,V?DRINK,OBJ + RTRUE +?ELS10: NEXT? OBJ \?ELS15 + PRINTI "The contents of the " + CALL DPRINT,BUCKET + PRINTI " fall" + JUMP ?CND13 +?ELS15: PRINTI "Okay," + CALL TPRINT,OBJ + PRINTI " falls" +?CND13: CALL ROB,BUCKET,HERE + PRINTR " out of it." +?ELS5: PRINTR "It's empty." + + + .FUNCT NOT-HOLDING-WATER? + IN? PORTABLE-WATER,BUCKET /FALSE + PRINTR "You're not carrying any water." + + + .FUNCT SHAFT-BOTTOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You're standing at the bottom of a shaft. The door to the north is " + FSET? CELLAR-CD,OPENBIT \?ELS8 + PRINTI "open" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTC 46 + RTRUE + + + .FUNCT CLOSET-TOP-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You're standing in a shaft on top of the closet. The door to the north is " + CALL WHICH-DOOR? + FSET? STACK,OPENBIT \?ELS8 + PRINTI "open" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTC 46 + RTRUE + + + .FUNCT CLOSET-TOP-EXIT,DOOR + CALL WHICH-DOOR? >DOOR + FSET? DOOR,OPENBIT /?ELS5 + CALL THIS-IS-IT,DOOR + CALL ITS-CLOSED,DOOR + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7 + RETURN FOYER +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + RETURN UPSTAIRS-HALL-MIDDLE +?ELS9: RETURN ATTIC + + + .FUNCT ATTIC-CD-F + EQUAL? PRSA,V?OPEN \FALSE + FSET? ATTIC-CD,OPENBIT /FALSE + EQUAL? CLOSET-FLOOR,ATTIC /FALSE + EQUAL? HERE,ATTIC \FALSE + CALL OPEN-DOOR-TO-SHAFT + FSET ATTIC-CD,OPENBIT + RTRUE + + + .FUNCT ATTIC-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a dusty old attic with cobwebs hanging from the ceiling rafters. The attic is empty except for" + CALL APRINT,TRUNK + FSET? ATTIC-DOOR,OPENBIT \?ELS8 + PRINTI ". A ladder leads down through an opening" + JUMP ?CND6 +?ELS8: PRINTI " and a folding ladder attached to a panel" +?CND6: PRINTI " in the floor. To the south there is a" + FSET? ATTIC-CD,OPENBIT \?ELS13 + PRINTI "n open" + JUMP ?CND11 +?ELS13: PRINTI " closed" +?CND11: PRINTI " door." + RTRUE + + + .FUNCT TO-&-FROM-ATTIC + FSET? ATTIC-DOOR,OPENBIT \?ELS5 + FSET? SKIS,WORNBIT \?ELS10 + PRINTI "You can't fit through the opening wearing the skis." + CRLF + RFALSE +?ELS10: EQUAL? HERE,ATTIC \?ELS17 + RETURN UPSTAIRS-HALL-MIDDLE +?ELS17: RETURN ATTIC +?ELS5: PRINTI "The " + CALL DPRINT,ATTIC-DOOR + PRINTI " is closed." + CRLF + RFALSE + + + .FUNCT ATTIC-CLOSET-ENTER-F + FSET? ATTIC-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,ATTIC-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS7 + RETURN CLOSET-TOP +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + PRINTI "You enter the shaft and plunge down a floor. A bit shaken, you find yourself at..." + CRLF + CRLF + RETURN CLOSET-TOP +?ELS9: CALL JIGS-UP,STR?217 + RSTACK + + + .FUNCT TRUNK-F + EQUAL? PRSA,V?OPEN \?ELS5 + FSET? TRUNK,TRUNK-LOCKED-BIT \?ELS5 + PRINTR "It won't budge." +?ELS5: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE + EQUAL? PRSO,TRUNK \FALSE + PRINT SPINACH + CRLF + RTRUE + + + .FUNCT FIRE-HYDRANT-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "Don't you recognize it? It's a prop " + CALL DPRINT,FIRE-HYDRANT + PRINTR " from ""Atomic Chihuahuas From Hell."" Uncle Buddy took a lot of heat for that film when two unlikely special interest groups, the Institute for Nuclear Power and the American Chihuahua Breeders Association, joined forces in an effort to have the film banned." + + + .FUNCT ATTIC-DOOR-F + EQUAL? PRSA,V?LOWER,V?OPEN,V?PUSH-DOWN /?THN8 + EQUAL? PRSA,V?PUSH,V?PULL \?ELS5 +?THN8: FSET? ATTIC-DOOR,OPENBIT /?ELS5 + EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS14 + PRINTR "It won't budge from this side." +?ELS14: FSET ATTIC-DOOR,OPENBIT + FCLEAR ATTIC-DOOR,LOCKEDBIT + PRINTI "The panel in the floor drops downward and the ladder unfolds as it swings down into the upstairs hallway." + FSET? TRUNK,OPENBIT /?CND17 + FCLEAR TRUNK,TRUNK-LOCKED-BIT + PRINTI " At the same time you hear a click from under" + CALL TPRINT,TRUNK + PRINTI "'s lid." +?CND17: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? ATTIC-DOOR,OPENBIT \?ELS26 + PRINTR "The ladder hangs from an open panel in the ceiling, extended to the floor of the upstairs hallway." +?ELS26: EQUAL? HERE,ATTIC \FALSE + PRINTR "The wooden ladder is folded in thirds, with the first third attached to a panel in the floor." + + + .FUNCT AUNT-F + EQUAL? AUNT,WINNER \?ELS5 + PRINTI """Shut up and get me off this buzz saw!""" + CRLF + CALL PCLEAR + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTR "She's strapped to the conveyor belt and moving closer to the buzz saw's spinning blade." +?ELS7: EQUAL? PRSA,V?CUT \?ELS9 + EQUAL? PRSI,SWORD \?ELS9 + CALL PERFORM,V?LAMP-OFF,SAW + RTRUE +?ELS9: EQUAL? PRSA,V?LET-GO,V?RESCUE,V?UNTIE \FALSE + EQUAL? PRSO,AUNT \FALSE + CALL PERFORM,V?LAMP-OFF,SAW + RTRUE + + + .FUNCT HERMAN-F + EQUAL? PRSA,V?TELL /?THN6 + EQUAL? PRSA,V?ASK-ABOUT \?ELS5 + EQUAL? PRSO,HERMAN \?ELS5 +?THN6: PRINTI "Herman never was the talkative type." + CRLF + CALL PCLEAR + RSTACK +?ELS5: EQUAL? PRSA,V?KILL \?ELS11 + ZERO? PRSI \?ELS11 + FIRST? PLAYER \?ELS18 + PRINTI "[with the " + FIRST? PLAYER /?KLU29 +?KLU29: CALL DPRINT,STACK + PRINTC 93 + CRLF + FIRST? PLAYER /?KLU30 +?KLU30: CALL PERFORM,V?KILL,HERMAN,STACK + RTRUE +?ELS18: PRINTR "You slug Herman in the gut. It feels good after all these years." +?ELS11: EQUAL? PRSA,V?PUSH \?ELS22 + EQUAL? PRSO,HERMAN \?ELS22 + PRINTR "He pushes you right back." +?ELS22: EQUAL? PRSA,V?EXAMINE \?ELS26 + PRINTR "It's Cousin Herman all right. A little older and a little chubbier. He still wears Batman slip-on tennis shoes." +?ELS26: EQUAL? PRSA,V?KICK,V?BITE \FALSE + PRINTR """%*&@#!,"" shouts Herman at the top of his lungs. You are aghast at Herman's profanity in the presence of your Aunt Hildegarde." + + + .FUNCT PROP-F,HERMAN-THING,PLAYER-THING + FIRST? HERMAN >HERMAN-THING /?KLU53 +?KLU53: FIRST? PLAYER >PLAYER-THING /?KLU54 +?KLU54: +?PRG1: ZERO? PLAYER-THING /?REP2 + EQUAL? PLAYER-THING,TOUPEE,MASK,RING \?REP2 + NEXT? PLAYER-THING >PLAYER-THING /?PRG1 + JUMP ?PRG1 +?REP2: EQUAL? PRSA,V?TAKE \?ELS14 + EQUAL? PRSO,HERMAN-THING \?ELS19 + PRINTI "You reach for" + CALL TPRINT,HERMAN-THING + PRINTI ", but " + CALL DPRINT,HERMAN + PRINTR " twists away from you." +?ELS19: ZERO? PLAYER-THING /?ELS21 + PRINTI "You're already armed with" + CALL ARPRINT,PLAYER-THING + RSTACK +?ELS21: CALL PICK-REMOVE,PRSO,PROPS + RFALSE +?ELS14: EQUAL? PRSA,V?THROW,V?SHOOT \?ELS26 + EQUAL? PRSI,HERMAN \?ELS26 + CALL PERFORM,V?KILL,HERMAN,PRSO + RTRUE +?ELS26: EQUAL? PRSA,V?CUT,V?KILL \FALSE + EQUAL? PRSO,HERMAN \FALSE + INC 'HERMAN-HITS + ZERO? HERMAN-DOWN /?ELS37 + CALL DEQUEUE,I-AUNT + PRINTI "With the hate of all those summers of his bullying built up, you let Herman have it with" + CALL TPRINT,PLAYER-THING + PRINTI ", killing him. At the same time you hear a scream not unlike one you would hear in an Uncle Buddy movie. As the tone of the saw blade changes you realize your Aunt Hildegarde has just taken her final bow. You stand and cry for a few minutes remembering the good times with your aunt and wishing you had done more to save her. + +Later you find your way out of the prop vault. You go next door to Johnny's and call the police. Unfortunately it never occurred to you that with two dead bodies involved they wouldn't believe your story." + CRLF + CALL FINISH + RSTACK +?ELS37: EQUAL? HERMAN-HITS,3 \?ELS40 + SET 'HERMAN-DOWN,TRUE-VALUE + SET 'AUNT-COUNT,6 + CALL QUEUE,I-AUNT,2 + CALL DEQUEUE,I-HERMAN-ATTACK + PRINTI "You " + EQUAL? PLAYER-THING,GUN \?ELS43 + PRINTI "fire" + CALL TPRINT,GUN + PRINTI " hitting him in the shoulder." + JUMP ?CND41 +?ELS43: PRINTI "give it your best, striking Herman." +?CND41: PRINTR " He drops to the ground. (Hmm, guess that wasn't a prop after all.) Slowly, he starts to come to his feet. The saw blade is less than an inch from the blue-gray hairs of Aunt Hildegarde's head!" +?ELS40: PRINTI "You " + EQUAL? PLAYER-THING,GUN \?ELS50 + PRINTI "fire" + CALL TPRINT,GUN + PRINTI ", blasting Herman with smooth and creamy whipped cream. You toss the gun away in disgust. It sails into the chute." + CRLF + JUMP ?CND48 +?ELS50: PRINTI "give it your best, striking Herman. The " + CALL DPRINT,PLAYER-THING + PRINTI " breaks into a hundred pieces. It was only a prop." + CRLF +?CND48: REMOVE PLAYER-THING + RTRUE + + + .FUNCT I-AUNT + CALL QUEUE,I-AUNT,1 + INC 'AUNT-COUNT + EQUAL? AUNT-COUNT,7 \?ELS5 + CRLF + PRINTI "You hear what sounds like an old woman being run through a buzz saw. Suddenly you realize -- that old woman was your Aunt Hildegarde. Cousin Herman stares at the saw blade in horror then turns and dives into the chute, disappearing. You stand there as the blade continues to cut, wishing you had done more to save her. + +Later you find your way out of the prop vault. You go next door to Johnny's and call the police. When they arrive they have a difficult time believing your story. You're advised to call a good lawyer." + CRLF + CALL FINISH + RSTACK +?ELS5: CRLF + PRINTI "Your Aunt Hildegarde, strapped to the conveyor belt, is " + GET AUNT-DISTANCE,AUNT-COUNT + PRINT STACK + PRINTI " the saw blade. " + ZERO? HERMAN-HITS /?ELS10 + EQUAL? AUNT-COUNT,1 \?ELS14 + PRINTI """Herman, dear, please turn off the buzz saw and untie me,"" says Aunt Hildegarde politely." + JUMP ?CND8 +?ELS14: EQUAL? AUNT-COUNT,2 \?ELS16 + PRINTI """Herman, that's no way to treat your cousin,"" admonishes Aunt Hildegarde." + JUMP ?CND8 +?ELS16: EQUAL? AUNT-COUNT,3 \?ELS18 + PRINTI """I'm just glad your Uncle Buddy isn't alive to see this,"" says Aunt Hildegarde with resignation." + JUMP ?CND8 +?ELS18: EQUAL? AUNT-COUNT,4 \?ELS20 + PRINTI """Herman, enough is enough. You are in big trouble, buster. Pumpkin, untie me then run and get your Uncle Buddy's belt,"" orders Aunt Hildegarde." + JUMP ?CND8 +?ELS20: EQUAL? AUNT-COUNT,5 \?ELS22 + PRINTI """Now you two stop that horseplay and get me off this contraption,"" demands Aunt Hildegarde." + JUMP ?CND8 +?ELS22: EQUAL? AUNT-COUNT,6 \?CND8 + PRINTI """Pumpkin! Help!"" screams Aunt Hildegarde over the roar of the buzz saw." + JUMP ?CND8 +?ELS10: PRINTI """Herman, stop this silly game this instant and untie me,"" demands Aunt Hildegarde." +?CND8: CRLF + RTRUE + + + .FUNCT SAW-F,HERMAN-THING + FIRST? HERMAN >HERMAN-THING /?KLU21 +?KLU21: EQUAL? PRSA,V?LAMP-OFF \?ELS5 + ZERO? HERMAN-DOWN /?ELS10 + ADD SCORE,20 >SCORE + PRINTI "The conveyor belt stops and the buzz saw's blade begins to slow. As you untie your Aunt Hildegarde, Herman races toward the chute and jumps inside, disappearing. You hear his squeaky laugh trail off in the distance. Aunt Hildegarde gets up from the buzz saw rubbing the back of her head. Though a bit shaken, she explains she had been watching you while you searched for the ""treasures."" + +""As I followed your progress I began to realize you and I were not the only ones on the estate. My suspicions were confirmed when I received a rap on the skull. The next thing I knew I was being tied to this buzz saw by your Cousin Herman,"" says Aunt Hildegarde. ""I guess he couldn't stand to see you inherit the family fortune. Well, it's all yours now. I knew you could do it,"" says Aunt Hildegarde with satisfaction. + +""I'm sorry I put you through all this, Pumpkin, but your Uncle Buddy and I had to be sure that whoever inherited the estate and the studio would be clever enough to handle it all. The only way I could be sure the stipulations in my will would be carried out would be to oversee it myself, so I faked my death,"" says Aunt Hildegarde, hugging you so tight she squeezes the air out of your lungs. ""Tomorrow we'll go see my lawyer and he'll take care of all the paper work. I know you'll take good care of Hildebud and the studio. As for me, I'm sure it won't be long before the press discovers I'm alive. I plan to go to the south of France for a rest while the story leaks out. It will be great publicity for the studio,"" says Aunt Hildegarde. Then she adds, ""And let's hope we've seen the last of your Cousin Herman.""" + CRLF + CALL FINISH + RSTACK +?ELS10: ZERO? HERMAN-THING /?ELS13 + REMOVE HERMAN-THING + PRINTI "Cousin Herman hits you with" + CALL TPRINT,HERMAN-THING + PRINTI ", driving you away from the buzz saw. The " + CALL DPRINT,HERMAN-THING + PRINTR " crumbles; it was only a prop." +?ELS13: PRINTR "Cousin Herman slugs you in the stomach, pushing you away from the buzz saw." +?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS18 + PRINTI "It's already turned on!" + RTRUE +?ELS18: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a large, steel blade that seems to spin faster as Aunt Hildegarde moves closer to it." + + + .FUNCT I-HERMAN-ATTACK,NEXT-PROP,FOO,HERMAN-THING + FIRST? HERMAN >HERMAN-THING /?KLU23 +?KLU23: CALL QUEUE,I-HERMAN-ATTACK,-1 + ZERO? HERMAN-THING /?ELS5 + REMOVE HERMAN-THING + CRLF + PRINTI "Cousin Herman " + EQUAL? HERMAN-THING,GUN \?ELS9 + PRINTI "fires" + JUMP ?CND7 +?ELS9: EQUAL? HERMAN-THING,BAG \?ELS11 + PRINTI "throws" + JUMP ?CND7 +?ELS11: PRINTI "swings" +?CND7: PRINTI " the " + CALL DPRINT,HERMAN-THING + PRINTI ", " + EQUAL? HERMAN-THING,GUN \?ELS18 + PRINTR "covering you with whipped cream. Herman tosses the gun in the chute." +?ELS18: PRINTI "striking you. The " + CALL DPRINT,HERMAN-THING + PRINTR " crumbles; it was only a prop." +?ELS5: CALL PICK-ONE,PROPS + MOVE STACK,HERMAN + FIRST? HERMAN >HERMAN-THING /?KLU24 +?KLU24: CRLF + PRINTI "Cousin Herman grabs the " + CALL DPRINT,HERMAN-THING + PRINTR "." + + .ENDI diff --git a/elevator.zil b/elevator.zil new file mode 100644 index 0000000..bd6e77a --- /dev/null +++ b/elevator.zil @@ -0,0 +1,1238 @@ +"ELEVATOR for ANTHILL (C)1986 Infocom Inc. All rights reserved." + + +"--- Closet Stuff ---" + + HOLE CLOSET-HOLE-PSEUDO)>)> + + + + > + ;"SEM" + + )> + + )> + + )> + + + + + + ) + (T + )>) + ( + )>> + + + > + + + ) + (T + )> + )>> + + + + + ) + ( + )>> + +> + > + + + ) + ( + ) + ( + ) + (T + )>> + + + + ) + ( + ) + ( + ) + (T + )>) + (T ;"Here is Closet Top" + + ) + ( + ) + (T + )>)>> + + + + + )>> + + + + + ) + ( + ) + ( + > + + )>> + + + ) + (T + + )>> + + + + + > + ) + ( + > + ) + ( + >> + + ) + (T + )>) + ( + + ) + ( + + ) + ( + ,FOYER-CD) + ( + ,UPSTAIRS-CD) + ( + ,CELLAR-CD) + (T + ,ATTIC-CD)>> + ) + ( + + ) + ( + ,FOYER-CD) + ( + ,UPSTAIRS-CD) + ( + ,CELLAR-CD) + (T + ,ATTIC-CD)>> + ) + ( + ) + ( + + ) + (T + )>)>> + + +"--- Peg Stuff ---" + + + + + + ) + ( + ) + (T + )>> ;"why rfalse??" + + + + + + + + + + > + ) + (T + + + ;"a peg's being held down" + )> + + + ) + (T + + )>)>) + ( + + >> + + ) + ( + + ) + ( + ) + (T + )> + )>> + + + + + )>> + + + + + )> + + > + + > + + >> + + + ,OPENBIT> + ) + (T + )>) + (T + ,OPENBIT> + ) + (T + )>)> + + > + )> + ) + ;(T + )>) + (T + + > + )> + + + )> + + + ,OPENBIT>> + )> + + + + > + + ) ;"CLOSET-TOP-4" + (T + )>) + + ( + > + + > + )> + + > + + )>) ;",CLOSET-TOP-3" + ( + > + + > + )> + + > + + )>) ;",CLOSET-TOP-3" + + (T ;"prso? peg-1" + + > + )> + + > + + )>)>) ;",CLOSET-TOP-2" + ( + > + )>)> + ) + ( + ) + (T + )> + + + + > + + + +) ;"for DESCFCN" "AUX" (FULL? <>)) + > + + )> + + + + )> + ) + (T + )>) + ( + > + + ;"so parser doesn't do a take" + + + ;"this prevents redundancy from a LOOK in the closet" + )> + + > + 20>> + + ) + (T + )>) + ( + + > + > + ) + ( + + + + + ) + ( + + + + + + > + ) + (T + + + > + )>) + ( + + + + ) + ( + + >)> + ) + (T + )> + ;) + ;( + > + + ) + (> + + + ) + ( + ) + ( + + ) + (T + )>) + ( + + ) + (T + )>) + ( + > + ) + ( + + ) + (.FULL? + )>) + ( + )>> + + + + ) + ( + ) + ( + ) + ( + ) + (T + )> + > + + + + + > + + + >> + + ) + ( + + + )> + + ,LIT> + + + ) + (T + )> + + + ) + ( + + + ) + ( + ) + (T + )> + )> + )> + + ;"on bucket peg, peg pulled down" + > + + )> + + + )> + + )>> ;"don't I want to return true no matter what?" + +> + + + ) + (T ;"verbs empty, pour" + + ) + (T + )> + + )>) + (T + )>> + +> + + ) + (T + )>> + + + +; + + ) + (T + )>) + (T + )> + > + +"--- Elevator Rooms ---" + + + + + + + ) + (T + )> + )>> + + + + + + ,OPENBIT> + ) + (T + )> + )>> + +; + ,FOYER-CD) + ( + ,UPSTAIRS-CD) + ( + ,ATTIC-CD)>> + +> + > + + + ) + ( + ,FOYER) + ( + ,UPSTAIRS-HALL-MIDDLE) + (T + ,ATTIC)>> + +; + +; + )>> + +; + +; + )>> + + + + + > + > + > + + )>> + + + + + + + ) + (T + )> + + + ) + (T + )> + )>> + + + + + ) + (T + + ,UPSTAIRS-HALL-MIDDLE) + (T + ,ATTIC)>)>) + (T + + )>> + +> + + ) + ( + ) + ( + + ) + (T + )>> + + ;"cleared when panel opens" + + + > + ) + ( + > ;"SEM" + )>> + + + + + )>> + + + + + >> + + ) + (T + + + + > + ; + + )> + )>) + ( + + ) + (T + + )>)>)>> + +;"end game" + + + + + + ) + ( + ) + ( + > + + ) + ( + > + + )>> + + + + + + >> + + ) + ( + > + + "]" CR> + > + ) + (T + )>) + ( + > + ) + ( + ) + ( + )>> + + + + + + + + + + + + + + + + + +> + > + + ) + ( + >) + (T + )>> + + + ) + (.PLAYER-THING + ) + (T + + )>) + ( + > + + ) + ( + > + > + + + ) + ( + + + ;"SEM?" + + + + ) + (T + )> + ) + (T + + + ) + (T + )> + )>)>> + + + + + > + + + ) + (T + " the saw blade. "> + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>) + (T + )> + )>> + +> + + + +> + + > + + ) + (.HERMAN-THING + + ) + (T + )>) + ( + ) + ( + )>> + +> + + + +> + + + + + ) + ( + ) + (T + )> + + + ) + (T + )>) + (T + ,HERMAN> + > + )>> + +;"rubber, paper mache, plaster? etc" + +> \ No newline at end of file diff --git a/first-floor.zap b/first-floor.zap new file mode 100644 index 0000000..c89fa71 --- /dev/null +++ b/first-floor.zap @@ -0,0 +1,1344 @@ + + + .FUNCT LETTER-F + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + FSET? LETTER,WETBIT \?ELS10 + CALL WET-PAPER + RTRUE +?ELS10: PRINTR "The letter looks exactly like the letter in your exquisitely designed game package." + + + .FUNCT PHOTO-F + EQUAL? PRSA,V?EXAMINE,V?READ \FALSE + FSET? PHOTO,WETBIT \?CND6 + CALL WET-PAPER + RTRUE +?CND6: FSET? PHOTO,READBIT /?CND9 + FSET PHOTO,READBIT +?CND9: PRINTR "The photo looks exactly like the one that came in your game package." + + + .FUNCT BUCK-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + ZERO? BUCK-TURNED? \?CND10 + EQUAL? SOUTH-JUNCTION-VISITS,2 \?CND10 + SET 'BUCK-DIR,P?SOUTH +?CND10: CRLF + PRINTI "A life-size statue of Buck Palace, one of the stars of Uncle Buddy's talent stables, stands here. He's holding a bazooka pointing " + CALL SAY-BUCK-DIR + PRINTC 46 + ZERO? BUCK-TURNED? \TRUE + EQUAL? SOUTH-JUNCTION-VISITS,2 \TRUE + PRINTI " Hmmm. It looks as if" + CALL TPRINT,BUCK + PRINTI ", has changed position." + RTRUE +?ELS5: EQUAL? PRSA,V?TURN \?ELS21 + ZERO? PRSI \?ELS26 + PRINTR "Next time, say which direction to turn it." +?ELS26: EQUAL? PRSI,INTDIR \FALSE + EQUAL? P-DIRECTION,BUCK-DIR \?ELS30 + CALL ITS-ALREADY,STR?108 + RSTACK +?ELS30: SET 'BUCK-DIR,P-DIRECTION + SET 'BUCK-TURNED?,TRUE-VALUE + ZERO? STEPS-THROUGH-BUCK \?ELS35 + EQUAL? P-DIRECTION,P?WEST \?ELS35 + SET 'STEPS-THROUGH-BUCK,1 + JUMP ?CND33 +?ELS35: EQUAL? STEPS-THROUGH-BUCK,1 \?ELS39 + EQUAL? P-DIRECTION,P?EAST \?ELS39 + SET 'STEPS-THROUGH-BUCK,2 + JUMP ?CND33 +?ELS39: EQUAL? STEPS-THROUGH-BUCK,2 \?ELS43 + EQUAL? P-DIRECTION,P?NORTH \?ELS43 + SET 'STEPS-THROUGH-BUCK,3 + JUMP ?CND33 +?ELS43: SET 'STEPS-THROUGH-BUCK,0 +?CND33: PRINTI "You turn" + CALL TPRINT,BUCK + PRINTI ", to the " + CALL SAY-BUCK-DIR + EQUAL? STEPS-THROUGH-BUCK,3 \?CND48 + PRINTI ", and hear a click from off to the north" + FCLEAR OAK-DOOR,LOCKEDBIT +?CND48: PRINTR "." +?ELS21: EQUAL? PRSA,V?EXAMINE \?ELS52 + PRINTI "It's pretty much what you would expect of a sculpture of Buck Palace. One hand is holding a pair of Uzi machine guns and his other hand is gripping a bazooka on his shoulder which he is pointing " + CALL SAY-BUCK-DIR + PRINTR ". Several belts of ammunition crisscross his half-naked chest. He's wearing a double belt of grenades around his waist, and has a high-powered rifle stuck in one of his combat boots and a bayonet between his teeth. Of course Buck Palace, the fighting letter carrier, would not be complete without his government-issue mailbag over his shoulder. The statue is on a round, rotating pedestal, encircled by a compass rose." +?ELS52: EQUAL? PRSA,V?MOVE,V?PUSH \FALSE + PRINTI "The " + CALL DPRINT,BUCK + PRINTI " turns slightly, then twists back with the bazooka pointing " + CALL SAY-BUCK-DIR + PRINTR "." + + + .FUNCT SAY-BUCK-DIR + EQUAL? BUCK-DIR,P?NORTH,FALSE-VALUE \?ELS5 + SET 'BUCK-DIR,P?NORTH + PRINTI "north" + RTRUE +?ELS5: EQUAL? BUCK-DIR,P?EAST \?ELS7 + PRINTI "east" + RTRUE +?ELS7: EQUAL? BUCK-DIR,P?SOUTH \?ELS9 + PRINTI "south" + RTRUE +?ELS9: EQUAL? BUCK-DIR,P?WEST \?ELS11 + PRINTI "west" + RTRUE +?ELS11: EQUAL? BUCK-DIR,P?NE \?ELS13 + PRINTI "northeast" + RTRUE +?ELS13: EQUAL? BUCK-DIR,P?NW \?ELS15 + PRINTI "northwest" + RTRUE +?ELS15: EQUAL? BUCK-DIR,P?SE \?ELS17 + PRINTI "southeast" + RTRUE +?ELS17: EQUAL? BUCK-DIR,P?SW \FALSE + PRINTI "southwest" + RTRUE + + + .FUNCT FLASHLIGHT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? FLASHLIGHT,WETBIT \?ELS10 + PRINTR "The soggy flashlight is switched on, but isn't working." +?ELS10: PRINTI "The rugged-looking " + CALL DPRINT,FLASHLIGHT + PRINTI " is turned " + FSET? FLASHLIGHT,ONBIT \?ELS15 + PRINTI "on" + JUMP ?CND13 +?ELS15: PRINTI "off" +?CND13: PRINTR "." +?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS19 + FSET? FLASHLIGHT,WETBIT \FALSE + PRINTR "You turn it on, but nothing happens!" +?ELS19: EQUAL? PRSA,V?OPEN \FALSE + PRINTR "I'll bet you were the kind of kid who always took their toys apart." + + + .FUNCT STAIRS-F + EQUAL? PRSA,V?PUSH-DOWN \?ELS5 + CALL MOVE-OBJ-DOWN + RSTACK +?ELS5: EQUAL? PRSA,V?SKI \?ELS7 + CALL DO-WALK,P?DOWN + RSTACK +?ELS7: EQUAL? PRSA,V?CLIMB-UP \?ELS9 + CALL DO-WALK,P?UP + RSTACK +?ELS9: EQUAL? PRSA,V?CLIMB-DOWN \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT FOYER-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the elegant foyer, covered in rich mahogany paneling. Your footsteps echo sharply in this large, hollow space. A broad, graceful staircase sweeps upstairs. Pillared archways beckon you east, west and north. The front door to the south is " + FSET? OAK-DOOR,OPENBIT \?ELS8 + PRINTI "open" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTI ". There is a coat closet by the front door. The door to the closet is " + FSET? FOYER-CD,OPENBIT \?ELS13 + PRINTI "open" + JUMP ?CND11 +?ELS13: PRINTI "closed" +?CND11: PRINTC 46 + RTRUE + + + .FUNCT FOYER-CD-F + EQUAL? PRSA,V?OPEN \FALSE + FSET? FOYER-CD,OPENBIT /FALSE + EQUAL? CLOSET-FLOOR,FOYER /FALSE + EQUAL? HERE,FOYER \FALSE + CALL OPEN-DOOR-TO-SHAFT + FSET FOYER-CD,OPENBIT + RTRUE + + + .FUNCT FOYER-STAIRS-F + EQUAL? PRSA,V?PUSH-DOWN \?ELS5 + CALL MOVE-OBJ-DOWN + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTI "The stairs are made of rich mahogany and lead " + EQUAL? HERE,FOYER \?ELS10 + PRINTI "up" + JUMP ?CND8 +?ELS10: PRINTI "down" +?CND8: PRINTR "." +?ELS7: EQUAL? PRSA,V?CLIMB-UP \?ELS14 + CALL DO-WALK,P?UP + RSTACK +?ELS14: EQUAL? PRSA,V?SKI,V?CLIMB-DOWN \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT TO-UPSTAIRS-HALL-MIDDLE + FSET? NEWEL,NEWEL-TURNED-BIT /?ELS5 + PRINTI "You start to go up, but suddenly the staircase flattens out. After you awkwardly slide back down, the flattened stairs return to normal." + CRLF + RFALSE +?ELS5: PRINTI "You climb up the stairs to the..." + CRLF + CRLF + RETURN UPSTAIRS-HALL-MIDDLE + + + .FUNCT NEWEL-F + EQUAL? PRSA,V?TURN \?ELS5 + FSET? NEWEL,NEWEL-TURNED-BIT \?ELS8 + FCLEAR NEWEL,NEWEL-TURNED-BIT + JUMP ?CND6 +?ELS8: FSET NEWEL,NEWEL-TURNED-BIT +?CND6: PRINTI "You turn" + CALL TPRINT,NEWEL + PRINTR " and hear a click from the staircase." +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a life-size, wooden replica of the head of one of Uncle Buddy's rivals, Roger Corman." + + + .FUNCT FOYER-CLOSET-ENTER-F + FSET? FOYER-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,FOYER-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,FOYER \?ELS7 + RETURN CLOSET +?ELS7: EQUAL? CLOSET-FLOOR,CELLAR \?ELS9 + RETURN CLOSET-TOP +?ELS9: PRINTI "You enter the shaft and plunge down a floor. A bit shaken, you find yourself at..." + CRLF + CRLF + RETURN SHAFT-BOTTOM + + + .FUNCT CELLAR-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are in a musty cellar. One of Uncle Buddy's old movie props, a huge, over-teched " + CALL DPRINT,COMPUTER + PRINTI " is here. There is a" + FSET? CELLAR-CD,OPENBIT \?ELS8 + PRINTI "n open" + JUMP ?CND6 +?ELS8: PRINTI " closed" +?CND6: PRINTI " closet door to the south. A staircase leads up." + RTRUE + + + .FUNCT CELLAR-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT CELLAR-CD-F + EQUAL? PRSA,V?OPEN \FALSE + FSET? CELLAR-CD,OPENBIT /FALSE + EQUAL? CLOSET-FLOOR,CELLAR /FALSE + EQUAL? HERE,CELLAR \FALSE + CALL OPEN-DOOR-TO-SHAFT + FSET CELLAR-CD,OPENBIT + RTRUE + + + .FUNCT CELLAR-CLOSET-ENTER-F + FSET? CELLAR-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,CELLAR-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7 + RETURN CLOSET +?ELS7: PRINTI "You step down a foot into the..." + CRLF + CRLF + RETURN SHAFT-BOTTOM + + + .FUNCT DISPLAY-LIGHTS-F + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + FSET? COMPUTER,ONBIT \?ELS10 + PRINTI "You study the display of lights and see:" + CRLF + CRLF + CALL FIXED-FONT-ON + GET DISPLAY-TABLE,0 + PRINT STACK + CRLF + GET DISPLAY-TABLE,1 + PRINT STACK + CRLF + GET DISPLAY-TABLE,2 + PRINT STACK + CRLF + GET DISPLAY-TABLE,3 + PRINT STACK + CRLF + GET DISPLAY-TABLE,4 + PRINT STACK + CRLF + GET DISPLAY-TABLE,5 + PRINT STACK + CRLF + GET DISPLAY-TABLE,6 + PRINT STACK + CRLF + CALL FIXED-FONT-OFF + RSTACK +?ELS10: PRINTI "The " + CALL DPRINT,DISPLAY-LIGHTS + PRINTR " are off." + + + .FUNCT COMPUTER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's the huge, massive, steel contraption of" + CALL APRINT,COMPUTER + PRINTI " that saved the earth from the maurading marketeers in ""Plan Nine from Marketing."" The front of" + CALL TPRINT,COMPUTER + PRINTI " is covered with rows of lights. Beneath the lights are a slot and a button. There is a hopper on one end of it. The " + CALL DPRINT,COMPUTER + PRINTI " is " + FSET? COMPUTER,ONBIT \?ELS8 + PRINTI "on" + JUMP ?CND6 +?ELS8: PRINTI "off" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?PUT \?ELS12 + EQUAL? PRSI,COMPUTER \?ELS12 + GETPT PRSO,P?CARD-NUM + ZERO? STACK /?ELS19 + FSET? COMPUTER,ONBIT /?ELS24 + PRINT NO-DATA + RTRUE +?ELS24: FSET? PRSO,WETBIT \?ELS26 + MOVE PRSO,HERE + PRINTI "The " + CALL DPRINT,COMPUTER + PRINTR " starts to suck in the wet punch card, then spits it back out at you." +?ELS26: PRINTI "The " + CALL DPRINT,COMPUTER + PRINTI " sucks in the card, making a slurping noise" + IN? TOUPEE,RESET-BUTTON \?CND29 + PRINTI ", then begins to rumble like something inside is trying to get out" +?CND29: PRINTI ". It pauses as if it were thinking about what to do next, then" + CALL TPRINT,DISPLAY-LIGHTS + PRINTI " change." + CRLF + GETP PRSO,P?CARD-NUM + GET CARD-TABLE,STACK + PUT DISPLAY-TABLE,WHERE-TO-PRINT,STACK + INC 'WHERE-TO-PRINT + INC 'CARD-COUNT + MOVE PRSO,COMPUTER + EQUAL? CARD-COUNT,7 \TRUE + FSET TOUPEE,CARDS-RIGHT-BIT + RTRUE +?ELS19: GETP PRSO,P?SIZE + EQUAL? STACK,1 \?ELS36 + FSET? COMPUTER,ONBIT \?ELS41 + PRINTI "The " + CALL DPRINT,COMPUTER + PRINTI " sucks in" + CALL TPRINT,PRSO + PRINTI ", pauses momentarily, then spits out" + CALL TPRINT,PRSO + PRINTI " with a whining noise." + CRLF + MOVE PRSO,HERE + RTRUE +?ELS41: PRINT NO-DATA + RTRUE +?ELS36: PRINTI "How are you going to fit" + CALL TPRINT,PRSO + PRINTI " in" + CALL TPRINT,COMPUTER + PRINTR "'s card slot?" +?ELS12: EQUAL? PRSA,V?LAMP-ON \?ELS47 + FSET? COMPUTER,ONBIT \?ELS52 + CALL ITS-ALREADY,STR?47 + RSTACK +?ELS52: PRINTI "The " + CALL DPRINT,COMPUTER + PRINTI "'s machinery begins to roar as you turn it on. The seven rows of display lights on the front of" + CALL TPRINT,COMPUTER + PRINTI " flash on and off in unison several times as it comes to life." + CRLF + FSET COMPUTER,ONBIT + FSET CELLAR,ONBIT + RTRUE +?ELS47: EQUAL? PRSA,V?LAMP-OFF \?ELS56 + FSET? COMPUTER,ONBIT \?ELS56 + PRINTI "The " + CALL DPRINT,COMPUTER + PRINTI " winds down slowly coming to a stop and the lights of the display dim and go out. " + CALL RESET-COMPUTER + FCLEAR CELLAR,ONBIT + FCLEAR COMPUTER,ONBIT + RTRUE +?ELS56: EQUAL? PRSA,V?RESET \FALSE + CALL PERFORM,V?PUSH,RESET-BUTTON + RTRUE + + + .FUNCT RESET-COMPUTER + FIRST? COMPUTER \?ELS3 + EQUAL? CARD-COUNT,1 \?ELS6 + PRINTI "A punch card drops" + JUMP ?CND4 +?ELS6: LESS? CARD-COUNT,3 \?ELS11 + PRINTI "A couple of" + JUMP ?CND9 +?ELS11: LESS? CARD-COUNT,4 \?ELS13 + PRINTI "A few" + JUMP ?CND9 +?ELS13: LESS? CARD-COUNT,8 \?CND9 + PRINTI "Some" +?CND9: PRINTI " punch cards drop" +?CND4: PRINTI " into" + CALL TPRINT,HOPPER + PRINTC 46 + CRLF + JUMP ?CND1 +?ELS3: CRLF +?CND1: SET 'WHERE-TO-PRINT,0 + CALL ROB,COMPUTER,HOPPER + SET 'CARD-COUNT,0 + PUT DISPLAY-TABLE,0,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,1,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,2,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,3,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,4,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,5,COMPUTER-LIGHTS + PUT DISPLAY-TABLE,6,COMPUTER-LIGHTS + RTRUE + + + .FUNCT RESET-BUTTON-F + EQUAL? PRSA,V?PUSH \?ELS5 + FSET? COMPUTER,ONBIT \?ELS10 + PRINTI "All" + CALL TPRINT,DISPLAY-LIGHTS + PRINTI " flash off and on several times. " + CALL RESET-COMPUTER + RSTACK +?ELS10: PRINTR "You hear a click, but that's all." +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a small button labeled ""Reset.""" + + + .FUNCT TOUPEE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "Ah, ahem, well, it looks like Uncle Buddy's toupee. One of the worst kept secrets in Hollywood." +?ELS5: EQUAL? PRSA,V?ROLL-UP \FALSE + PRINTR "Now come on, it's not that kind of a rug!" + + + .FUNCT PUNCH-CARD-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "The surface of" + CALL TPRINT,PRSO + PRINTI " is covered with holes" + FSET? PRSO,WETBIT \?CND6 + PRINTI " and it's rather soggy" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?READ \FALSE + PRINTR "Only a computer can read a punch card!" + + + .FUNCT PERSIAN-RUG-F + EQUAL? PRSA,V?TAKE \?ELS5 + PRINT SPINACH + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?PUT-ON \?ELS7 + EQUAL? PRSI,PERSIAN-RUG \?ELS7 + CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS7: EQUAL? PRSA,V?LOOK-UNDER,V?MOVE,V?ROLL-UP \FALSE + PRINTR "You move the rug but don't find any trap door. Amidst your sorrow you return the carpet to its original splendor." + + + .FUNCT BLUE-CANDLE-F + CALL CANDLE-F,BLUE-CANDLE + RSTACK + + + .FUNCT WHITE-CANDLE-F + CALL CANDLE-F,WHITE-CANDLE + RSTACK + + + .FUNCT RED-CANDLE-F + CALL CANDLE-F,RED-CANDLE + RSTACK + + + .FUNCT GENERIC-CANDLE-F,NUM,LIT-CANDLE + EQUAL? PRSA,V?LAMP-OFF \FALSE + SET 'NUM,0 + FSET? RED-CANDLE,FLAMEBIT \?ELS8 + CALL VISIBLE?,RED-CANDLE + ZERO? STACK /?ELS8 + INC 'NUM + SET 'LIT-CANDLE,RED-CANDLE + JUMP ?CND6 +?ELS8: FSET? WHITE-CANDLE,FLAMEBIT \?ELS12 + CALL VISIBLE?,WHITE-CANDLE + ZERO? STACK /?ELS12 + INC 'NUM + SET 'LIT-CANDLE,WHITE-CANDLE + JUMP ?CND6 +?ELS12: FSET? BLUE-CANDLE,FLAMEBIT \?CND6 + CALL VISIBLE?,BLUE-CANDLE + ZERO? STACK /?CND6 + INC 'NUM + SET 'LIT-CANDLE,BLUE-CANDLE +?CND6: EQUAL? NUM,1 \FALSE + RETURN LIT-CANDLE + + + .FUNCT CANDLE-F,CANDLE,SIZE,FEET,I-CANDLE,CANDLE-WAX + GETP PRSO,P?SIZE >SIZE + EQUAL? CANDLE,RED-CANDLE \?ELS3 + SET 'FEET,RED-FEET + SET 'I-CANDLE,I-RED-CANDLE-BURN + SET 'CANDLE-WAX,RED-WAX + JUMP ?CND1 +?ELS3: EQUAL? CANDLE,WHITE-CANDLE \?ELS5 + SET 'FEET,WHITE-FEET + SET 'I-CANDLE,I-WHITE-CANDLE-BURN + SET 'CANDLE-WAX,WHITE-WAX + JUMP ?CND1 +?ELS5: EQUAL? CANDLE,BLUE-CANDLE \?CND1 + SET 'FEET,BLUE-FEET + SET 'I-CANDLE,I-BLUE-CANDLE-BURN + SET 'CANDLE-WAX,BLUE-WAX +?CND1: EQUAL? PRSA,V?EXAMINE \?ELS12 + EQUAL? SIZE,1 \?CND13 + CALL WAX-FEET,FEET + RTRUE +?CND13: PRINTI "It's " + LESS? SIZE,10 \?CND16 + PRINTI "what's left of " +?CND16: PRINTI "a thin, wax statuette of a Hindu god, dressed in a long gown. " + GRTR? SIZE,7 \?CND19 + PRINTI "The foot-high god is holding up its " + EQUAL? PRSO,WHITE-CANDLE \?ELS24 + PRINTI "lef" + JUMP ?CND22 +?ELS24: PRINTI "righ" +?CND22: PRINTI "t hand, showing " + EQUAL? PRSO,RED-CANDLE \?ELS29 + PRINTI "three" + JUMP ?CND27 +?ELS29: EQUAL? PRSO,WHITE-CANDLE \?ELS31 + PRINTI "seven" + JUMP ?CND27 +?ELS31: PRINTI "five" +?CND27: PRINTI " fingers. " +?CND19: FSET? PRSO,ONBIT \?ELS36 + PRINTI "The wax statuette is lit, and a bit of wax is dripping down it" + JUMP ?CND34 +?ELS36: GRTR? SIZE,1 \?CND34 + PRINTI "A wick is sticking up from " + GRTR? SIZE,4 \?ELS44 + PRINTI "the top of the statuette" + JUMP ?CND34 +?ELS44: PRINTI "the little that remains of the statuette" +?CND34: LESS? SIZE,10 \?CND47 + GRTR? SIZE,1 \?CND47 + PRINTI ". The wax statuette has burned down to the god's " + GET CANDLE-DESC,SIZE + PRINT STACK +?CND47: PRINTR "." +?ELS12: EQUAL? PRSA,V?PUT \?ELS53 + EQUAL? PRSI,CANDLE \?ELS53 + PRINTR "You can't possibly do that." +?ELS53: EQUAL? PRSA,V?BURN,V?LAMP-ON \?ELS57 + EQUAL? PRSO,BLUE-CANDLE,WHITE-CANDLE,RED-CANDLE \?ELS57 + CALL SET-FLAME-SOURCE + ZERO? STACK \TRUE + FSET? PRSI,FLAMEBIT \?ELS67 + FSET? PRSO,FLAMEBIT \?ELS72 + PRINTR "It's already lit." +?ELS72: EQUAL? SIZE,1 \?ELS74 + PRINTI "It's all used up. " + CALL WAX-FEET,FEET + RSTACK +?ELS74: FSET PRSO,ONBIT + FSET PRSO,FLAMEBIT + FCLEAR PRSO,NDESCBIT + CALL QUEUE,I-CANDLE,-1 + MOVE CANDLE-WAX,CANDLE + PRINTI "You light" + CALL TPRINT,PRSO + PRINTR " and a bit of wax begins to dribble down the god." +?ELS67: EQUAL? PRSI,RED-CANDLE,GREEN-MATCH,RED-MATCH /?THN79 + EQUAL? PRSI,WHITE-CANDLE,BLUE-CANDLE \FALSE +?THN79: PRINTI "But" + CALL TPRINT,PRSI + PRINTR "'s not lit!" +?ELS57: EQUAL? PRSA,V?LAMP-OFF \?ELS82 + FSET? PRSO,ONBIT \?ELS87 + CALL BLOW-OUT-CANDLE,CANDLE + RSTACK +?ELS87: PRINTR "The wax god isn't lit." +?ELS82: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS91 + CALL CANT-OPEN-CLOSE + RSTACK +?ELS91: EQUAL? PRSA,V?TAKE \FALSE + FCLEAR PRSO,NDESCBIT + RFALSE + + + .FUNCT CANDLE-BURN,CANDLE,FEET,I-CANDLE,SIZE + GETP CANDLE,P?SIZE + SUB STACK,1 + PUTP CANDLE,P?SIZE,STACK + GETP CANDLE,P?SIZE >SIZE + EQUAL? SIZE,1 \?CND1 + CALL VISIBLE?,CANDLE + ZERO? STACK /?CND4 + CRLF +?CND4: LOC CANDLE + MOVE FEET,STACK + CALL BLOW-OUT-CANDLE,CANDLE + REMOVE CANDLE + CALL DEQUEUE,I-CANDLE +?CND1: EQUAL? SIZE,2 \?CND7 + EQUAL? CANDLE,RED-CANDLE \?ELS12 + CALL QUEUE,I-RED-ALMOST-OUT,5 + JUMP ?CND7 +?ELS12: EQUAL? CANDLE,WHITE-CANDLE \?ELS14 + CALL QUEUE,I-WHITE-ALMOST-OUT,5 + JUMP ?CND7 +?ELS14: EQUAL? CANDLE,BLUE-CANDLE \?CND7 + CALL QUEUE,I-BLUE-ALMOST-OUT,5 +?CND7: CALL ACCESSIBLE?,CANDLE + ZERO? STACK /FALSE + EQUAL? SIZE,8,6,4 /?THN24 + EQUAL? SIZE,2 \FALSE +?THN24: CRLF + PRINTI "The " + CALL DPRINT,CANDLE + PRINTI " has burned down to the god's " + GET CANDLE-DESC,SIZE + PRINT STACK + PRINTR "." + + + .FUNCT I-RED-ALMOST-OUT + CALL QUEUE,I-RED-NEARLY-OUT,2 + CALL ACCESSIBLE?,RED-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,RED-CANDLE + PRINTR " is almost out!" + + + .FUNCT I-WHITE-ALMOST-OUT + CALL QUEUE,I-WHITE-NEARLY-OUT,2 + CALL ACCESSIBLE?,WHITE-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,WHITE-CANDLE + PRINTR " is almost out!" + + + .FUNCT I-BLUE-ALMOST-OUT + CALL QUEUE,I-BLUE-NEARLY-OUT,2 + CALL ACCESSIBLE?,BLUE-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,BLUE-CANDLE + PRINTR " is almost out!" + + + .FUNCT I-RED-NEARLY-OUT + CALL ACCESSIBLE?,RED-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,RED-CANDLE + PRINTR " is nearly out!" + + + .FUNCT I-WHITE-NEARLY-OUT + CALL ACCESSIBLE?,WHITE-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,WHITE-CANDLE + PRINTR " is nearly out!" + + + .FUNCT I-BLUE-NEARLY-OUT + CALL ACCESSIBLE?,BLUE-CANDLE + ZERO? STACK /FALSE + CRLF + PRINTI "The " + CALL DPRINT,BLUE-CANDLE + PRINTR " is nearly out!" + + + .FUNCT I-RED-CANDLE-BURN + ZERO? RED-MID-BURN /?ELS5 + PUSH RED-MID-BURN + JUMP ?CND1 +?ELS5: PUSH 10 +?CND1: CALL QUEUE,I-RED-CANDLE-BURN,STACK + SET 'RED-MID-BURN,FALSE-VALUE + CALL CANDLE-BURN,RED-CANDLE,RED-FEET,I-RED-CANDLE-BURN + RSTACK + + + .FUNCT I-WHITE-CANDLE-BURN + ZERO? WHITE-MID-BURN /?ELS5 + PUSH WHITE-MID-BURN + JUMP ?CND1 +?ELS5: PUSH 10 +?CND1: CALL QUEUE,I-WHITE-CANDLE-BURN,STACK + SET 'WHITE-MID-BURN,FALSE-VALUE + CALL CANDLE-BURN,WHITE-CANDLE,WHITE-FEET,I-WHITE-CANDLE-BURN + RSTACK + + + .FUNCT I-BLUE-CANDLE-BURN + ZERO? BLUE-MID-BURN /?ELS5 + PUSH BLUE-MID-BURN + JUMP ?CND1 +?ELS5: PUSH 10 +?CND1: CALL QUEUE,I-BLUE-CANDLE-BURN,STACK + SET 'BLUE-MID-BURN,FALSE-VALUE + CALL CANDLE-BURN,BLUE-CANDLE,BLUE-FEET,I-BLUE-CANDLE-BURN + RSTACK + + + .FUNCT FEET-F + EQUAL? PRSA,V?BURN,V?LAMP-ON \FALSE + PRINTR "They're just wax. You can't light them." + + + .FUNCT BLOW-OUT-CANDLE,CANDLE,DONT-TELL=0,C,FEET + FCLEAR CANDLE,ONBIT + FCLEAR CANDLE,FLAMEBIT + EQUAL? CANDLE,RED-CANDLE \?ELS3 + SET 'FEET,RED-FEET + CALL QUEUED?,I-RED-CANDLE-BURN >C + ZERO? C /?ELS6 + GET C,C-TICK >RED-MID-BURN + JUMP ?CND4 +?ELS6: SET 'RED-MID-BURN,FALSE-VALUE +?CND4: CALL STOP-RED-BURNING + JUMP ?CND1 +?ELS3: EQUAL? CANDLE,WHITE-CANDLE \?ELS10 + SET 'FEET,WHITE-FEET + CALL QUEUED?,I-WHITE-CANDLE-BURN >C + ZERO? C /?ELS13 + GET C,C-TICK >WHITE-MID-BURN + JUMP ?CND11 +?ELS13: SET 'WHITE-MID-BURN,FALSE-VALUE +?CND11: CALL STOP-WHITE-BURNING + JUMP ?CND1 +?ELS10: EQUAL? CANDLE,BLUE-CANDLE \?CND1 + SET 'FEET,BLUE-FEET + CALL QUEUED?,I-BLUE-CANDLE-BURN >C + ZERO? C /?ELS20 + GET C,C-TICK >BLUE-MID-BURN + JUMP ?CND18 +?ELS20: SET 'BLUE-MID-BURN,FALSE-VALUE +?CND18: CALL STOP-BLUE-BURNING +?CND1: ZERO? DONT-TELL \?CND23 + CALL ACCESSIBLE?,CANDLE + ZERO? STACK /?CND23 + PRINTI "The " + CALL DPRINT,CANDLE + PRINTI " goes out." + GETP CANDLE,P?SIZE + EQUAL? STACK,1 \?ELS30 + PRINTC 32 + CALL WAX-FEET,FEET + JUMP ?CND23 +?ELS30: EQUAL? PRSI,POND /TRUE + CRLF +?CND23: CALL SAY-IF-NOT-LIT + RTRUE + + + .FUNCT WAX-FEET,FEET + CALL ACCESSIBLE?,FEET + ZERO? STACK /FALSE + PRINTI "There's nothing left but" + CALL APRINT,FEET + PRINTR "." + + + .FUNCT STOP-RED-BURNING + CALL DEQUEUE,I-RED-CANDLE-BURN + CALL DEQUEUE,I-RED-ALMOST-OUT + CALL DEQUEUE,I-RED-NEARLY-OUT + RSTACK + + + .FUNCT STOP-WHITE-BURNING + CALL DEQUEUE,I-WHITE-CANDLE-BURN + CALL DEQUEUE,I-WHITE-ALMOST-OUT + CALL DEQUEUE,I-WHITE-NEARLY-OUT + RSTACK + + + .FUNCT STOP-BLUE-BURNING + CALL DEQUEUE,I-BLUE-CANDLE-BURN + CALL DEQUEUE,I-BLUE-ALMOST-OUT + CALL DEQUEUE,I-BLUE-NEARLY-OUT + RSTACK + + + .FUNCT GENERIC-WAX-F,RED-HERE=0,BLUE-HERE=0,WHITE-HERE=0 + EQUAL? PRSA,V?SCRAPE-OFF \?CND1 + CALL VISIBLE?,WAX-COAT-1 + ZERO? STACK /?ELS8 + RETURN WAX-COAT-1 +?ELS8: CALL VISIBLE?,WAX-COAT-2 + ZERO? STACK /FALSE + RETURN WAX-COAT-2 +?CND1: FSET? RED-CANDLE,ONBIT \?ELS15 + CALL VISIBLE?,RED-CANDLE + ZERO? STACK /?ELS15 + SET 'RED-HERE,TRUE-VALUE + JUMP ?CND13 +?ELS15: FSET? WHITE-CANDLE,ONBIT \?ELS19 + CALL VISIBLE?,WHITE-CANDLE + ZERO? STACK /?ELS19 + SET 'WHITE-HERE,TRUE-VALUE + JUMP ?CND13 +?ELS19: FSET? BLUE-CANDLE,ONBIT \?CND13 + CALL VISIBLE?,BLUE-CANDLE + ZERO? STACK /?CND13 + SET 'BLUE-HERE,TRUE-VALUE +?CND13: ZERO? BLUE-HERE /?ELS30 + ZERO? RED-HERE \?ELS30 + ZERO? WHITE-HERE \?ELS30 + RETURN BLUE-WAX +?ELS30: ZERO? RED-HERE /?ELS34 + ZERO? BLUE-HERE \?ELS34 + ZERO? WHITE-HERE \?ELS34 + RETURN RED-WAX +?ELS34: ZERO? WHITE-HERE /FALSE + ZERO? BLUE-HERE \FALSE + ZERO? RED-HERE \FALSE + RETURN WHITE-WAX + + + .FUNCT WAX-F + EQUAL? PRSO,RED-WAX \?ELS5 + FSET? RED-CANDLE,FLAMEBIT /?ELS5 + EQUAL? PRSA,V?PUT-ON,V?POUR \?ELS12 + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " is not lit." +?ELS12: CALL PERFORM,PRSA,RED-CANDLE,PRSI + RTRUE +?ELS5: EQUAL? PRSI,RED-WAX \?ELS16 + FSET? RED-CANDLE,FLAMEBIT /?ELS16 + CALL PERFORM,PRSA,PRSO,RED-CANDLE + RTRUE +?ELS16: EQUAL? PRSO,WHITE-WAX \?ELS20 + FSET? WHITE-CANDLE,FLAMEBIT /?ELS20 + EQUAL? PRSA,V?PUT-ON,V?POUR \?ELS27 + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " is not lit." +?ELS27: CALL PERFORM,PRSA,WHITE-CANDLE,PRSI + RTRUE +?ELS20: EQUAL? PRSI,WHITE-WAX \?ELS31 + FSET? WHITE-CANDLE,FLAMEBIT /?ELS31 + CALL PERFORM,PRSA,PRSO,WHITE-CANDLE + RTRUE +?ELS31: EQUAL? PRSO,BLUE-WAX \?ELS35 + FSET? BLUE-CANDLE,FLAMEBIT /?ELS35 + EQUAL? PRSA,V?PUT-ON,V?POUR \?ELS42 + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " is not lit." +?ELS42: CALL PERFORM,PRSA,BLUE-CANDLE,PRSI + RTRUE +?ELS35: EQUAL? PRSI,BLUE-WAX \?ELS46 + FSET? BLUE-CANDLE,FLAMEBIT /?ELS46 + CALL PERFORM,PRSA,PRSO,BLUE-CANDLE + RTRUE +?ELS46: EQUAL? PRSA,V?RUB,V?TAKE \?ELS50 + PRINTR "You'd burn your fingers." +?ELS50: EQUAL? PRSA,V?PUT \?ELS52 + EQUAL? PRSI,BLUE-WAX,WHITE-WAX,RED-WAX \?ELS52 + CALL PERFORM,V?PUT-ON,PRSI,PRSO + RTRUE +?ELS52: EQUAL? PRSA,V?POUR \?ELS56 + EQUAL? PRSO,BLUE-WAX,WHITE-WAX,RED-WAX \?ELS56 + CALL PERFORM,V?PUT-ON,PRSO,PRSI + RTRUE +?ELS56: EQUAL? PRSA,V?DROP \?ELS60 + PRINTR "Huh?" +?ELS60: EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSO,BLUE-WAX,RED-WAX,WHITE-WAX \FALSE + FSET? PRSI,WAXED-BIT \?ELS69 + CALL YOU-ALREADY + RSTACK +?ELS69: FSET? PRSI,FLAMEBIT \?ELS71 + PRINT YOU-CANT + PRINTR "put wax on it while it's burning." +?ELS71: EQUAL? PRSI,GREEN-MATCH,RED-MATCH \?ELS73 + FSET PRSI,WAXED-BIT + LOC WAX-COAT-1 + ZERO? STACK /?ELS76 + MOVE WAX-COAT-2,PRSI + JUMP ?CND74 +?ELS76: MOVE WAX-COAT-1,PRSI +?CND74: PRINTR "The match head is now covered with a thin coating of candle wax." +?ELS73: PRINTI "You drip a bit of wax onto" + CALL TPRINT,PRSI + PRINTR ". Rather pointless, really." + + + .FUNCT PORTRAIT-F + EQUAL? PRSA,V?PULL,V?LOOK-BEHIND,V?MOVE /?THN6 + EQUAL? PRSA,V?SWING,V?RAISE \?ELS5 +?THN6: FSET? WALL-SAFE,INVISIBLE /?ELS12 + CALL YOU-ALREADY + RSTACK +?ELS12: FCLEAR WALL-SAFE,INVISIBLE + PRINTI "You swing" + CALL TPRINT,PORTRAIT + PRINTI " away from the wall and find" + CALL APRINT,WALL-SAFE + PRINTC 46 + FSET? GREEN-CARD,INVISIBLE \?ELS19 + FCLEAR GREEN-CARD,INVISIBLE + PRINTI " A " + CALL DPRINT,GREEN-CARD + PRINTR " flutters to the floor." +?ELS19: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \?ELS23 + PRINTR "It seems to be attached to the wall on one side." +?ELS23: EQUAL? PRSA,V?COVER \?ELS25 + EQUAL? PRSO,WALL-SAFE \?ELS25 + FSET WALL-SAFE,INVISIBLE + PRINTI "You cover" + CALL TPRINT,WALL-SAFE + PRINTI " with" + CALL TRPRINT,PORTRAIT + RSTACK +?ELS25: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a very conservative portrait of Aunt Hildegarde sitting in a Victorian-style chair with Uncle Buddy standing behind her, wearing a black-and-white checkered polyester leisure suit." + + + .FUNCT WALL-SAFE-F + EQUAL? PRSA,V?TURN-RIGHT,V?TURN-LEFT \?ELS5 + EQUAL? PRSI,INTNUM \?ELS5 + GRTR? P-NUMBER,10 \?ELS12 + PRINTR "The dial only goes to 10." +?ELS12: SET 'DIAL-NUMBER,P-NUMBER + PRINTI "You turn the dial to " + PRINTN DIAL-NUMBER + PRINTC 46 + FSET? WALL-SAFE,OPENBIT /?ELS17 + ZERO? STEPS-THROUGH-WALL-SAFE \?ELS17 + EQUAL? PRSA,V?TURN-RIGHT \?ELS17 + EQUAL? DIAL-NUMBER,3 \?ELS17 + SET 'STEPS-THROUGH-WALL-SAFE,1 + JUMP ?CND15 +?ELS17: FSET? WALL-SAFE,OPENBIT /?ELS21 + EQUAL? STEPS-THROUGH-WALL-SAFE,1 \?ELS21 + EQUAL? PRSA,V?TURN-LEFT \?ELS21 + EQUAL? DIAL-NUMBER,7 \?ELS21 + SET 'STEPS-THROUGH-WALL-SAFE,2 + JUMP ?CND15 +?ELS21: FSET? WALL-SAFE,OPENBIT /?ELS25 + EQUAL? STEPS-THROUGH-WALL-SAFE,2 \?ELS25 + EQUAL? PRSA,V?TURN-RIGHT \?ELS25 + EQUAL? DIAL-NUMBER,5 \?ELS25 + SET 'STEPS-THROUGH-WALL-SAFE,3 + FCLEAR WALL-SAFE,LOCKEDBIT + PRINTI " You hear a faint click." + JUMP ?CND15 +?ELS25: SET 'STEPS-THROUGH-WALL-SAFE,0 +?CND15: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?TURN-RIGHT,V?TURN-LEFT,V?TURN \?ELS31 + EQUAL? PRSI,FALSE-VALUE,ROOMS \?ELS36 + PRINTR "You didn't say what number you wanted to turn the dial to, or the direction." +?ELS36: EQUAL? PRSI,INTNUM \?ELS38 + PRINTI "You didn't say whether you wanted to turn the dial RIGHT to " + PRINTN P-NUMBER + PRINTI " or LEFT to " + PRINTN P-NUMBER + PRINTR "." +?ELS38: PRINTR "Huh?" +?ELS31: EQUAL? PRSA,V?EXAMINE \?ELS42 + PRINTI "It's a rather large safe with a dial which can be set to any number between 0 and 10. The dial is set to " + PRINTN DIAL-NUMBER + PRINTI ". " + RFALSE +?ELS42: EQUAL? PRSA,V?CLOSE \FALSE + FSET? WALL-SAFE,OPENBIT \FALSE + FSET WALL-SAFE,LOCKEDBIT + SET 'STEPS-THROUGH-WALL-SAFE,0 + RFALSE + + + .FUNCT GRATER-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's the cheese grater Mama Maggio used to paddle her nine sons and seven daughters with in the ""Maggio Boys and Girls"" serial. Uncle Buddy wrote the scripts for these mystery yarns about 16 teenage brothers and sisters who were junior detectives." + + + .FUNCT FIREPLACE-GLOBAL-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? HERE,FIREPLACE \?ELS10 + CALL V-LOOK + RSTACK +?ELS10: PRINTR "You see a large, finely crafted brick fireplace." +?ELS5: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE \?ELS14 + EQUAL? HERE,LIVING-ROOM \?ELS19 + PRINTR "You can't quite make out the inside of the fireplace from here." +?ELS19: PRINTR "Look around you!" +?ELS14: EQUAL? PRSA,V?BOARD,V?ENTER \?ELS23 + EQUAL? HERE,LIVING-ROOM \?ELS23 + CALL GOTO,FIREPLACE + RSTACK +?ELS23: EQUAL? PRSA,V?REACH-IN \?ELS27 + EQUAL? HERE,LIVING-ROOM \FALSE + PRINTR "You reach in the fireplace and imagine a warm glow." +?ELS27: EQUAL? PRSA,V?CLIMB-UP \?ELS34 + EQUAL? PRSI,FIREPLACE \?ELS34 + EQUAL? HERE,FIREPLACE \?ELS34 + CALL DO-WALK,P?UP + RSTACK +?ELS34: EQUAL? PRSA,V?PUT \FALSE + MOVE PRSO,FIREPLACE + PRINTR "Done." + + + .FUNCT FIREPLACE-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The fireplace is finely crafted masonry, but has long been neglected. The mortar is crumbling in a number of places." + FSET? BRICK-HOLE,INVISIBLE \?CND6 + PRINTI " One brick, about waist high, seems particularly loose." +?CND6: PRINTI " The fireplace opens to the east." + RTRUE + + + .FUNCT BRICK-HOLE-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,BRICK-HOLE \?ELS5 + EQUAL? PRSO,BRICK \?ELS12 + FCLEAR FIREPLACE,BRICK-REMOVED-BIT + FSET PRSO,NDESCBIT + FSET BRICK-HOLE,INVISIBLE + RFALSE +?ELS12: GETP PRSO,P?SIZE + LESS? STACK,5 \?ELS14 + FSET? FIREPLACE,BRICK-REMOVED-BIT \?ELS14 + REMOVE PRSO + PRINTR "You push it into the hole and it falls down into the space beyond the hole." +?ELS14: PRINTR "It doesn't fit into the hole." +?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT BRICK-HOLE-GLOBAL-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,BRICK-HOLE-GLOBAL \?ELS5 + EQUAL? PRSO,BRICK \?ELS12 + PRINTR "You wouldn't be able to climb the chimney if you did that." +?ELS12: GETP PRSO,P?SIZE + LESS? STACK,5 \?ELS14 + REMOVE PRSO + PRINTR "It falls down into the space beyond the hole." +?ELS14: PRINTR "It doesn't fit into the hole." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS18 + PRINTR "You can't see a thing. It's pitch black." +?ELS18: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT BRICK-F + EQUAL? PRSA,V?PULL,V?TAKE \FALSE + CALL ITAKE + ZERO? STACK /TRUE + FSET FIREPLACE,BRICK-REMOVED-BIT + FCLEAR BRICK-HOLE,INVISIBLE + FSET? INDIGO-CARD,INVISIBLE \FALSE + FCLEAR INDIGO-CARD,INVISIBLE + PRINTI "You pull the brick out of the hole, and along with it comes" + CALL APRINT,INDIGO-CARD + PRINTR ", which drops in a spiral to the ground." + + + .FUNCT UP-CHIMNEY + FSET? FIREPLACE,BRICK-REMOVED-BIT /?ELS5 + EQUAL? HERE,FIREPLACE \?ELS5 + PRINTI "You'll have to figure that out for yourself." + CRLF + RFALSE +?ELS5: CALL WEIGHT,PLAYER + GRTR? STACK,38 \?ELS9 + PRINTI "You're carrying too much to climb up" + CALL TRPRINT,CHIMNEY + RFALSE +?ELS9: FSET? SKIS,WORNBIT \?ELS11 + PRINTR "You can't climb up while you're wearing the skis." +?ELS11: PRINTI "Using the " + EQUAL? HERE,FIREPLACE \?ELS16 + PRINTI "hole where the brick was," + JUMP ?CND14 +?ELS16: PRINTI "holes" +?CND14: PRINTI " you climb up the chimney several feet" + EQUAL? HERE,FIREPLACE \?ELS23 + PRINTC 46 + CRLF + CRLF + RETURN CHIMNEY-1 +?ELS23: EQUAL? HERE,CHIMNEY-1 \?ELS25 + PRINTC 46 + CRLF + CRLF + RETURN CHIMNEY-2 +?ELS25: PRINTI " onto the..." + CRLF + CRLF + EQUAL? HERE,CHIMNEY-2 \?ELS32 + RETURN ROOF-1 +?ELS32: RETURN ROOF-2 + + + .FUNCT DOWN-CHIMNEY + PRINTI "Using the " + EQUAL? HERE,FIREPLACE \?ELS3 + PRINTI "hole where the brick was" + JUMP ?CND1 +?ELS3: PRINTI "holes" +?CND1: PRINTI ", you climb down the chimney several feet" + EQUAL? HERE,CHIMNEY-1 \?ELS10 + PRINTI " into the..." + CRLF + CRLF + RETURN FIREPLACE +?ELS10: EQUAL? HERE,CHIMNEY-2 \FALSE + PRINTC 46 + CRLF + CRLF + RETURN CHIMNEY-1 + + + .FUNCT PENGUIN-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a life-size stuffed penguin. It was probably used in the filming of ""Vampire Penguins of the North.""" + + + .FUNCT MASK-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "It looks like" + CALL TPRINT,MASK + PRINTR " from ""Friday the 15th.""" + + + .FUNCT CHIMNEY-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It is your average chimney, made of bricks." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS7 + EQUAL? HERE,ROOF-1 \?ELS12 + PRINTI "You see a few holes in the wall of" + CALL TRPRINT,CHIMNEY + RSTACK +?ELS12: PRINTR "You can't quite make out what's inside from here." +?ELS7: EQUAL? PRSA,V?PUT \?ELS16 + EQUAL? PRSI,CHIMNEY \?ELS16 + EQUAL? HERE,FIREPLACE \?ELS23 + PRINTR "You're at the bottom of the chimney!" +?ELS23: PRINTI "You drop" + CALL TPRINT,PRSO + PRINTI " down the chimney." + CRLF + EQUAL? HERE,ROOF-1,CHIMNEY-1,CHIMNEY-2 \?ELS30 + EQUAL? PRSO,BLUE-CANDLE,WHITE-CANDLE,RED-CANDLE \?ELS33 + FSET? PRSO,FLAMEBIT \?ELS33 + CALL BLOW-OUT-CANDLE,PRSO + JUMP ?CND31 +?ELS33: EQUAL? PRSO,FINCH /?THN38 + CALL ULTIMATELY-IN?,FINCH,PRSO + ZERO? STACK /?CND31 +?THN38: CALL BREAK-FINCH,TRUE-VALUE +?CND31: MOVE PRSO,FIREPLACE + RTRUE +?ELS30: MOVE PRSO,CHIMNEY-3 + RTRUE +?ELS16: EQUAL? PRSA,V?ENTER \?ELS43 + CALL DO-WALK,P?IN + RSTACK +?ELS43: EQUAL? PRSA,V?CLIMB-UP \?ELS45 + CALL DO-WALK,P?UP + RSTACK +?ELS45: EQUAL? PRSA,V?CLIMB-DOWN \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT ROOF-TO-CHIMNEY + PRINTI "You climb down into the chimney." + CRLF + CRLF + EQUAL? HERE,ROOF-1 \?ELS5 + RETURN CHIMNEY-2 +?ELS5: RETURN CHIMNEY-3 + + + .FUNCT VERTICAL-MAP-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + FSET? VERTICAL-MAP,WETBIT \?ELS10 + CALL WET-PAPER + RSTACK +?ELS10: CALL LOOK-AT-MAP + PRINTI " +| | | | | | | | | +| | | | | | | | | | +| | | | | | | | | | | | | | | +| | | | | | | | | | | | +| | | | | | | | | +| | | | | | | | | | | | | | | +| | | | | | | | | | | | | +| | | | | | | | | | | | | +| | | | | | |X| | | | | +| | | | | | | | | | | | | +| | | | | | | | | | | | | +| | | | | | | | | | | | +| | | | | | | | | | | | | | | | +| | | | | | | | | | | | | +| | | | | | | +| | | | | | | | | | +| | | | | | | | | | | | | | +| | | | | | | | | | | | | | | +| | | | | | | +" + CALL FIXED-FONT-OFF + RSTACK +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSO,HORIZONTAL-MAP /?THN20 + EQUAL? PRSI,HORIZONTAL-MAP \?ELS19 +?THN20: FSET? VERTICAL-MAP,WETBIT \?ELS26 + FSET? HORIZONTAL-MAP,WETBIT \?ELS26 + PRINTR "All you can make out on the soggy pieces of paper are some blurred lines." +?ELS26: FSET? PRSO,WETBIT \?ELS30 + PRINTR "You see blurred vertical lines through the soggy paper." +?ELS30: FSET? PRSI,WETBIT \?ELS32 + CALL PERFORM,V?READ,PRSO + RTRUE +?ELS32: CALL WHOLE-MAP + RSTACK +?ELS19: FSET? PRSI,SURFACEBIT /FALSE + PRINTR "That doesn't seem to accomplish much." + + + .FUNCT LOOK-AT-MAP + PRINTI "You see the following:" + CRLF + CALL FIXED-FONT-ON + RSTACK + + + .FUNCT WET-PAPER + PRINTR "All you see is a piece of wet paper with ink stains on it." + + + .FUNCT HORIZONTAL-MAP-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + FSET? HORIZONTAL-MAP,WETBIT \?ELS10 + CALL WET-PAPER + RSTACK +?ELS10: CALL LOOK-AT-MAP + PRINTI "____________________________________ + __ ____ ___ __ _____ + __ __ __ _ ___ + ___ __ _ + ______ _____ _ _ + __ ___ _ ____ __ + __ _____ __ + ___ __ ______ _ + ___ ___ ____ + ___ ___ X ___ ____ + _ _ ______ + _ _ _____ ____ __ + ____ ____ __ + _ _ _ + __ __ ____ __ __ + _________ __ ___ ____ + ____ _____ ___ __ + _ ___ + ___ __ __ _ + ___ _______ ___ ____ ____ ____ ___ +" + CALL FIXED-FONT-OFF + RSTACK +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSO,VERTICAL-MAP /?THN20 + EQUAL? PRSI,VERTICAL-MAP \?ELS19 +?THN20: FSET? HORIZONTAL-MAP,WETBIT \?ELS26 + FSET? VERTICAL-MAP,WETBIT \?ELS26 + PRINTR "You see blurred vertical lines through the soggy paper." +?ELS26: FSET? PRSI,WETBIT \?ELS30 + CALL PERFORM,V?READ,PRSO + RTRUE +?ELS30: CALL WHOLE-MAP + RSTACK +?ELS19: FSET? PRSI,SURFACEBIT /FALSE + PRINTR "That doesn't seem to accomplish much." + + + .FUNCT WHOLE-MAP + CALL LOOK-AT-MAP + PRINTI "____________________________________ +| __| | |____ | | ___|__ | _____ | +| | __|__ | | |__ _ ___| | | | +| | ___ | | | | | | __| | _| | | | | +|______ | | |_____| | |_ |_| | | | +| __ ___|_ ____ | | | __ | | | | +|__| | | | | | _____| | |__| | | | | +| ___| | | | |__| ______| _| | | | | +| | ___| | |___ | | | |____| | | | +| | | ___|___ | | |X| |___ | ____| | +| | | | | | | |_| | _| |______ | +|_| | | | | | |_|_____| | ____ | __| +| ____| | | |____ | | | | __ | | | +| | | |_| | | |_| | | | | _| | | +| | | |__ __| | |____ |__ | |__| | | +| | |_________|__ ___ | ____ | | +| |____ | _____ | | | | |___ | __| +| | | | | | | | |_| | ___| | | +| | | |___| | | | |__ __| | |_ | | | +|___|_______|___|____ ____|____|___| +" + CALL FIXED-FONT-OFF + RSTACK + + + .FUNCT TO-CELLAR + FSET? SKIS,WORNBIT \?CND1 + PRINT SNOWPLOW + CRLF + CRLF +?CND1: RETURN CELLAR + + .ENDI diff --git a/first-floor.zil b/first-floor.zil new file mode 100644 index 0000000..7c9bcb6 --- /dev/null +++ b/first-floor.zil @@ -0,0 +1,2203 @@ +"FIRST-FLOOR for ANTHILL (C)1986 Infocom Inc. All rights reserved." + +;"poster text: Melts in your mouth-- Scientists discover that people who +crave chocolate can actually get more pleasure from human flesh, but the +acne is much worse. Soon the word leaks out and one brave chocaholic +takes a bite out of her brother. The next ninety minutes are a frenzy of +munching while scientist and candy makers race to find a cure. +Morticians, sensing they are sitting on a gold mine, begin to market +bizzare products like . Soon the forces of good rally, +with the aid of chainmail armor, rounding up the mis-guided flesh eaters +along with anyone with a bad complexion." + +;"poster idea Grapefruit diet from planet 9" +;"some yuppie take off" +;"plan 9 from marketing" + + + + + + + ) + (T + )>)>> + + + + + + + )> + > + + ;>)> + + ; + ) + ;( ;"vocab word TEAR removed 8/1" + > + + )>> + +; + > + + >)> + ".\" +Love, Aunt Hildegard" CR> + )>> + + +;" Buck " + + + + +> +> + ;"since game opens in South Junction" + +)) + + )> + + > + )> + + + + + > + ; + )> + ) + ( + + ) + (> + ) + ( + ) + (T + + + + > + ) + ( + > + ) + ( + > + ) + (T + )> + + + + + )> + )>) + ( + + + ) + ( + + + )>> + +> + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>> + + + + + + ) + (T + + + ) + (T + )> + )>) + ( + + + )>) + ( + )>> + + + + + ) + ( + ) + ( + ) + ( + )>> + + +"--- Inside House ---" +"--- Foyer ---" + + + + + + + ) + (T + )> + + + ) + (T + )> + )>> + + + + + > + > + > + + )>> ;"SEM"? + + + + + ) + ( + + + ) + (T + )> + ) + ( + ) + ( + )>> + +> + + ) + (T + + )>> + + + + + + ) + (T + )>;"stairs don't flatten" + ) + ( + )>> + + ;"starts at foyer-2" + +> + + ) + ( + ) + ( + ) + (T + + )>> + +;;;"check for light or candle and blow it out" + +; + +;)) + + )> + ".">) + ( + + )>> + +; + +; + ) + (T + > + + )>)> + > + +;> + +"--- Cellar ---" + + CELLAR CELLAR-PSEUDO)>) + (FLAGS RLANDBIT) + (ACTION CELLAR-F)> + + + + + ) + (T + )> + )>> + + + )>> + + + + + > + > + > + + )>> + +> + + ) + ( + ) + (T + + )>> + +"--- Computer ---" + +; + + + + + + + + CR + CR + CR + CR + CR + CR + CR> + ) + (T + )>)>> + + + + + + + + + + ) + (T + )> + ) + ( + > + + > + ) + ( + + ) + (T + + + )> + + >> + > + > + + + ; + + > + + > + + > + + > + + > + + > + + >> + )> + )>) + ( 1> + + + ) + (T + )>) + (T + )>) + ( + + ) + (T ;> + + + )>) + ( + > + + + ;"SEM?" + ) + ( + + ) + ;( + )>> + + + + + + ) + (T + + ) + ( + ) + ( + )> + )> + ) + (T + )> + + + + + + + + + + > + + + + + + + ) + (T ;"meaning the computer isn't on" + )>) + ( + )>> + + + + + + + +; + + + + + + + + + > + +> + ;"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO" +> + + + + + ) + ;( + > + ) + (T + + )>) + ( + )>> + + + + + + + + + + + + + + + + + + + )> + ) + ( + )>> + + +"--- Living room ---" + + ;"Tell--sun coming up" + + + + + ) + ( + > + + ) + ( + )>> + + + +"--- Statuettes ---" + + + +> + + + +> + + + +> + + + + + > + > + ) + ( + > + > + ) + ( + > + > + )> + + ) + (T + )>) + (T + )>> + +> + + + + ) + ( + + + ) + ( + + + )> + + + + )> + + + )> + + + + + ) + (T + )> + + + ) + ( + ) + (T + )> + )> + + ) + (T + + + + ) + (T + )>)>)> + + > + >)> + + ) + ( + > + ) + ( + > + + )> + + + ) + ( + + ) + (T + + + ;"SEM?" + + + )>) + ( + )>) + ( + + ) + (T + + )>) + ( + ) + ( + + )>> + +; + +> + + 1>> + > + + + )> + > + + ; + + )> + + + ) + ( + ) + ( + )>)> + > + ) + ( + "." CR>)>> + + + + )>> + + + + )>> + + + + )>> + + + )>> + + + )>> + + + )>> + +> + > + > + +> + > + > + +> + > + > + + + + + + + + + )>> + +> +> +> + +) "AUX" C FEET) + + + + + > + >) + (ELSE >)> + ) ;"dequeues 3 interupts for candle" + ( + + > + >) + (ELSE >)> + ) ;"dequeues 3 interupts for candle" + ( + + > + >) + (ELSE >)> + )> ;"dequeues 3 interupts for candle" + + > + + 1> + + ) + ( + ) ;"so there it no cr from this routine" + (T + )>)> + + > + + + )>> + + + + > + + + + > + + + + > + + + + + + + +) (BLUE-HERE <>) (WHITE-HERE <>)) + + ;,PRSI ;"PRSI isn't set when GENERIC is called for PRSO!" + ;> + + ; + ) + ( + ; + ) + (T + )>)> + + > + ) + ( + > + ) + ( + > + )> + + > + ) + ( + > + ) + ( + > + ) + (T + )>> + + + >> + + ) + (ELSE + + )>) + ( + >> + + ) + ( + >> + + ) + (ELSE + + )>) + ( + >> + + ) + ( + >> + + ) + (ELSE + + )>) + ( + >> + + ) + ( + ) + ( + > + + ) + ( + > + + ) + ( + ) + ( + > + + ) + ( + ) + ( + + + ) + (T + )> + ) + (T + )>)>> + + + + + > + ) + (T + + + + + ) + (T + + )>)>) + ( + ) + ( + > + + ) + ( + )>> + + +"--- Wall Safe ---" + + + +;"Safe combination-- 3 to the right, 7 to the left, 5 to the right" + + + + + + + > + + ) + ( + ) + (T + + + > + + + > + ) + (> + + + > + ) + (> + + + > + + + ; + + ;) + (T + )> + )>) + ( + ,ROOMS> + ) + ( + ) + (T + )>) + ( + + ) + ( + > + + + )>> + + + + + )>> + + +"--- Chimney ---" + + + + + + ) + (T + )>) + ( + + ) + (T + )>) + ( + > + ) + ( + + )>) + ( + + > + ) + ( + + )>> + + + +; + +; + + + ) + (ELSE )> + ) + ( + >> + )> + )>> + + + + + )> + )>> + +; ;"don't light room when sun comes up" + + + +)) + + + )> + ) + (T + )>) + ( + > + + + + ; + + ) + ( 5> + > + + ) + (T + )>) + ( + )>> + + + + + > + + ) + ( 5> + + ) + (T + )>) + ( + ) + ( + )>> + + + + + + )> + ) + (T + )>) + ( + > + ) + (T + + + + + ) + (T ;"Let v-take do the rest" + )>)>)>> + +> + > + + ) + ( 38> + + ) + ( + ) + (T + + + ) + (T + )> + + + + ) + ( + + ) + (T + + + ) + (T + )>)>)>> + + + + ) + (T + )> + + + + ) + ( + + )>> + + + + + + + + + + + )>> + + + + + ) + ;( + > + ) + (T + + )>)>> + + + + + + + + + ) + ( + + ) + (T + )>) + ( + > + + ) + (T + + + + > + ) + ( + > + )> + ) + (T + )>)>) + ( + ) + ( + ) + ( + )>> + + + + ) + (T + )>> ;"is this safe?" + + +"--- Maps ---" + + + + + + ) + (T + + + + ; + + ;)>) + ( + + > + + > + ) + ( + ) + ( + + ) + (T + )>) + ( + ) + (T + )>)>> + + + > + +> + + + + + + ) + (T + + + ; + + ;)>) + ( + + > + + > + ) + ( + + ) + (T + )>) + ( + ) + (ELSE + )>)>> + +;"NEW OLD PUT-ON FOR MAPS" +;( + + + ) + ( ;"SEM say vert-map here?" + + ) + ( + > + ) + (T + )>) + (ELSE + )>) + + +;"OLD PUT-ON FOR MAPS" +;( + + ) + (ELSE + )>) + + + + + ; + ;% + ') + (T + ')>> + + +"--- Kitchen ---" + + + + + )> + ,CELLAR> + + + + + +"--- Junk Yard ---" + +; + ) + (T + + )>)> + > + +; + + > + + ) + (T + )>> diff --git a/globals.zap b/globals.zap new file mode 100644 index 0000000..4e1c374 --- /dev/null +++ b/globals.zap @@ -0,0 +1,263 @@ + + + .FUNCT CANT-USE,PTR,BUF,?TMP1 + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + PRINTI "[This story can't understand the word """ + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK + PRINTR """ when you use it that way.]" + + + .FUNCT DONT-UNDERSTAND + PRINTR "[That sentence didn't make sense. Please reword it or try something else.]" + + + .FUNCT NOT-IN-SENTENCE,STR + PRINTI "[There aren't " + PRINT STR + PRINTR " in that sentence!]" + + + .FUNCT LIGHTS-F + FSET? HERE,OUTDOORSBIT /?THN6 + FSET? HERE,CAVEBIT /?THN6 + EQUAL? HERE,CRAWL-SPACE-NORTH,CRAWL-SPACE-SOUTH,FIRST-SECRET-ROOM /?THN6 + EQUAL? HERE,FIREPLACE,CHIMNEY-1,CHIMNEY-2 /?THN6 + EQUAL? HERE,CHIMNEY-3 \?ELS5 +?THN6: CALL CANT-SEE-ANY,LIGHTS + RSTACK +?ELS5: EQUAL? PRSA,V?LAMP-ON \FALSE + PRINTR "You flip the switch but nothing happens. It seems the light bulbs are missing." + + + .FUNCT GROUND-F + CALL GETTING-INTO? + ZERO? STACK \?THN6 + EQUAL? PRSA,V?LOOK-BEHIND \?ELS5 +?THN6: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?LOOK-UNDER \?ELS9 + PRINTR "Nothing but dirt." +?ELS9: CALL HURT?,GROUND + ZERO? STACK \?THN12 + CALL MOVING?,GROUND + ZERO? STACK /?ELS11 +?THN12: CALL SAY-THE,GROUND + PRINTR " is not affected." +?ELS11: CALL TALKING-TO?,GROUND + ZERO? STACK \?THN16 + EQUAL? PRSA,V?YELL \FALSE +?THN16: PRINTI "Talking to" + CALL TPRINT,GROUND + CALL SIGN-OF-COLLAPSE + RETURN 2 + + + .FUNCT MAZE-HOLE-F + EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINTR "There's nothing but dirt in the hole." + + + .FUNCT WALLS-F + FSET? HERE,OUTDOORSBIT \?ELS5 + CALL CANT-SEE-ANY,WALLS + RETURN 2 +?ELS5: CALL GETTING-INTO? + ZERO? STACK \?THN10 + EQUAL? PRSA,V?LOOK-BEHIND \?ELS9 +?THN10: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS9: EQUAL? PRSA,V?LOOK-UNDER \?ELS13 + PRINTR "There's a floor there." +?ELS13: CALL HURT?,WALLS + ZERO? STACK \?THN16 + CALL MOVING?,WALLS + ZERO? STACK /?ELS15 +?THN16: EQUAL? PRSA,V?THROW \?CND18 + EQUAL? PRSO,FINCH /FALSE +?CND18: CALL SAY-THE,WALLS + PRINTR " is not affected." +?ELS15: CALL TALKING-TO?,WALLS + ZERO? STACK \?THN25 + EQUAL? PRSA,V?YELL \?ELS24 +?THN25: PRINTI "Talking to walls" + CALL SIGN-OF-COLLAPSE + RETURN 2 +?ELS24: EQUAL? PRSA,V?EXAMINE /FALSE + CALL YOU-DONT-NEED,WALLS + RETURN 2 + + + .FUNCT CEILING-F + FSET? HERE,OUTDOORSBIT \?ELS5 + CALL CANT-SEE-ANY,CEILING + RETURN 2 +?ELS5: EQUAL? PRSA,V?LOOK-UNDER \FALSE + CALL V-LOOK + RTRUE + + + .FUNCT HANDS-F + EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,HANDS \FALSE + CALL PERFORM,V?REACH-IN,PRSI + RTRUE + + + .FUNCT YOUR-FEET-F + EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,SKIS \FALSE + CALL PERFORM,V?WEAR,SKIS + RTRUE + + + .FUNCT ME-F,CONTEXT=0,OLIT + EQUAL? PRSA,V?ALARM \?ELS5 + PRINTR "You're already wide awake." +?ELS5: CALL TALKING-TO?,ME + ZERO? STACK \?THN8 + EQUAL? PRSA,V?YELL \?ELS7 +?THN8: CALL TALK-TO-SELF + RETURN 2 +?ELS7: EQUAL? PRSA,V?LISTEN \?ELS13 + PRINT YOU-CANT + PRINTR "help doing that." +?ELS13: EQUAL? PRSA,V?GIVE \?ELS15 + EQUAL? PRSI,ME \?ELS15 + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS20 + PRINTR "You already have it." +?ELS20: CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS15: EQUAL? PRSA,V?KILL \?ELS24 + PRINTR "Desperate? Call the Samaritans." +?ELS24: EQUAL? PRSA,V?FIND \?ELS26 + PRINTR "You're right here!" +?ELS26: CALL HURT?,ME + ZERO? STACK /FALSE + PRINTR "Punishing yourself that way won't help matters." + + + .FUNCT TALK-TO-SELF + PRINTI "Talking to yourself" + CALL SIGN-OF-COLLAPSE + CALL PCLEAR + RSTACK + + + .FUNCT SIGN-OF-COLLAPSE + PRINTR " is said to be a sign of impending mental collapse." + + + .FUNCT GLOBAL-ROOM-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?LOOK \?ELS5 + CALL V-LOOK + RTRUE +?ELS5: EQUAL? PRSA,V?EXIT,V?DROP,V?ENTER \?ELS7 + CALL V-WALK-AROUND + RSTACK +?ELS7: EQUAL? PRSA,V?SEARCH \?ELS9 + PRINTR "You find nothing new." +?ELS9: EQUAL? PRSA,V?WALK-AROUND \FALSE + PRINTR "Walking around the area reveals nothing new. + +(If you want to go somewhere, just type a direction.)" + + + .FUNCT CANT-SEE-ANY,THING=0,STRING?=0 + CALL YOU-CANT-SEE + ZERO? STRING? /?ELS3 + PRINT THING + JUMP ?CND1 +?ELS3: ZERO? THING /?ELS6 + FSET? THING,NARTICLEBIT /?CND8 + PRINTI "any " +?CND8: CALL DPRINT,THING + JUMP ?CND1 +?ELS6: PRINTI "that" +?CND1: PRINTR " here!" + + + .FUNCT YOU-CANT-SEE + SET 'CLOCK-WAIT,TRUE-VALUE + CALL PCLEAR + PRINT YOU-CANT + PRINTI "see " + RTRUE + + + .FUNCT YOU-ALREADY + PRINTR "You already did that." + + + .FUNCT HOW? + PRINTR "How do you intend to do that?" + + + .FUNCT PRESUMABLY-YOU-WANT-TO,STR,THING=0 + PRINT I-ASSUME + PRINTC 32 + PRINT STR + PRINTC 32 + ZERO? THING /?ELS3 + CALL DPRINT,THING + JUMP ?CND1 +?ELS3: PRINTI "it" +?CND1: PRINTR ".]" + + + .FUNCT NOT-LIKELY,THING,STR + PRINTI "It" + CALL PICK-ONE,LIKELIES + PRINT STACK + PRINTI " that" + CALL TPRINT,THING + PRINTC 32 + PRINT STR + PRINTR "." + + + .FUNCT YOUD-HAVE-TO,STR,THING + PRINTI "You'd have to " + PRINT STR + CALL TPRINT,THING + PRINTR " to do that." + + + .FUNCT WINDOW-F + EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 + EQUAL? HERE,PROJECTION-BOOTH \?ELS5 + PRINTR "Uncle Buddy's screening room isn't packing in much of a crowd tonight. A viewing screen dominates the room." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS9 + EQUAL? HERE,DINING-ROOM \?ELS9 + GRTR? MOVES,535 /?ELS14 + PRINTI "By the moonlight you can see the outline of" + JUMP ?CND12 +?ELS14: PRINTI "You can see" +?CND12: PRINTR " Aunt Hildegarde's lush garden." +?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \?ELS18 + PRINTI "You see the " + EQUAL? HERE,SCREENING-ROOM \?ELS21 + PRINTI "projection booth of" + JUMP ?CND19 +?ELS21: FSET? HERE,OUTDOORSBIT \?ELS23 + PRINTI "interior of" + JUMP ?CND19 +?ELS23: PRINTI "grounds outside" +?CND19: PRINTR " Uncle Buddy's house." +?ELS18: EQUAL? PRSA,V?OPEN \?ELS27 + EQUAL? HERE,PROJECTION-BOOTH,SCREENING-ROOM /?ELS27 + PRINTR "That would let in all the smog!" +?ELS27: EQUAL? PRSA,V?ENTER,V?CLOSE \FALSE + PRINTR "The window isn't open." + + .ENDI diff --git a/globals.zil b/globals.zil new file mode 100644 index 0000000..c3235f4 --- /dev/null +++ b/globals.zil @@ -0,0 +1,451 @@ +"GLOBALS for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + + + +> + + + + + + +; > + + + + + + + + + + + + + +;> + +> + > + + >> 2> + 3>> + > + +> + +> + + + + + + > + ) + ( + )>> + + + +> + + ) + ( + > + CR>) + ( + ) + ( + > + + ) + ( + > + + + ) + ;(T + + )>> + + + + + )>> + + + + + + ) + ( + > + CR>) + ( + ) + ( + > + + > + )> + + ) + ( + > + + + ) + (> + + )> + ;> + + + + + + ) + ( + + ) + (T + )>> + + + + + > + + )>> + + + + + > + + )>> + + + + + +) "AUX" OLIT) + + + ) + ( + > + + ) + ( + + ) + ( + > + + ) + (T + )> + ) + ( + + ) + ( + + ) + ( + + ) + (T + )>> + + + + > + +> + + + + + + ) + ( + ) + ( + ) + ( + + ) + (T + )>> + +; )) + + ) + (T + )> + > + +; > + +) (STRING? <>)) + + ) + (.THING + > + )> + ) + (T + )> + > + + + + > + +> + +; > + +> + + + +)) + + ) ;"space bug here i think" + (T + )> + > + +; )) + + + ) + (T + )> + > + + " that" T .THING " " .STR "." CR>> + +> + +> + +; > + +; > + ) + (> + >) + (T + >)>> + +; + + > )> + > + + + + + + + +; + + + + + + + > + ) + ( + > + > + ) + (T + )> + ) + ( + + + ) + ( + ) + (T + )> + ) + ( + >> + ) + ( + )>> + +;"default for things that are too heavy to carry" + \ No newline at end of file diff --git a/hedgemaze.zap b/hedgemaze.zap new file mode 100644 index 0000000..1e73cfd --- /dev/null +++ b/hedgemaze.zap @@ -0,0 +1,1084 @@ + + + .FUNCT PARK-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's Tokyo Central Park, filled with little plastic trees and shrubs, and little plastic people sitting on little plastic benches. Tokyo's Main Street stops on the west side of the park then continues on the east side of the park. " + EQUAL? DOG-LOC,6 \?ELS8 + PRINTI "In the western half of the park you can't help but notice the out-of-place " + CALL DPRINT,DOG + ZERO? ROCKET-LIFE /?ELS11 + PRINTI " with a small rocket buzzing around it." + JUMP ?CND9 +?ELS11: PRINTC 46 +?CND9: EQUAL? TRUCK-LOC,33 /?CND6 + EQUAL? TRUCK-LOC,30 /?CND6 + PRINTI " A tiny truck is near some plastic trees in the eastern half of the park." + JUMP ?CND6 +?ELS8: PRINTI "In the eastern half of the park there" + FSET? MONUMENT,TRASHED-BIT \?ELS23 + PRINTI " are bits and pieces of a smashed monument. " + FSET? DOG,CLUTCHING-BIT /?CND21 + ZERO? RING-UNDER-DOME /?CND21 + PRINTI "Lying near the remains of the monument is" + CALL APRINT,RING + PRINTI ". " + JUMP ?CND21 +?ELS23: PRINTI " is a monument. " +?CND21: FSET? RING,ON-MONUMENT-BIT \?CND31 + PRINTI "There is" + CALL APRINT,RING + PRINTI " perched on top of the monument. " +?CND31: EQUAL? DOG-LOC,7 \?ELS36 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " is standing in front of the monument and a " + EQUAL? TRUCK-LOC,30 \?CND37 + PRINTI "smashed " +?CND37: PRINTI "truck is at his feet." + ZERO? ROCKET-LIFE /?CND6 + PRINTI " There is a rocket flying around the dog." + JUMP ?CND6 +?ELS36: EQUAL? DOG-LOC,30 \?CND6 + PRINTI "Scattered on the west and east sides of the park are pieces of fur and scales, mixed with bits of wire and a couple of servomotors." + FSET? DOG,CLUTCHING-BIT \?CND6 + PRINTI " A " + CALL DPRINT,RING + PRINTI " is lying near the debris." +?CND6: CRLF + RTRUE +?ELS5: CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE + PRINTR "You can't touch the park. It's under the plastic dome." + + + .FUNCT DOME-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "The thick plastic dome covers the model of downtown Tokyo" + LESS? BURN-DOME,3 \?CND6 + PRINTI ". There is a " + EQUAL? BURN-DOME,2 \?ELS11 + PRINTI "slightly melted spot" + JUMP ?CND9 +?ELS11: EQUAL? BURN-DOME,1 \?ELS13 + PRINTI "melted spot, almost a hole" + JUMP ?CND9 +?ELS13: ZERO? BURN-DOME \?CND9 + PRINTI "small hole" +?CND9: PRINTI " on the dome's eastern side" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS17 + CALL PERFORM,V?EXAMINE,TOKYO + RTRUE +?ELS17: EQUAL? PRSA,V?PUT \FALSE + ZERO? BURN-DOME \FALSE + PRINTR "You don't want to ruin the delicate model." + + + .FUNCT DOME-HOLE-PSEUDO + EQUAL? BURN-DOME,3 \?ELS5 + CALL CANT-SEE-ANY + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + LESS? BURN-DOME,3 \?ELS7 + PRINTI "There is a " + EQUAL? BURN-DOME,2 \?ELS12 + PRINTI "slightly melted spot" + JUMP ?CND10 +?ELS12: EQUAL? BURN-DOME,1 \?ELS14 + PRINTI "melted spot, almost a hole," + JUMP ?CND10 +?ELS14: ZERO? BURN-DOME \?CND10 + PRINTI "hole about the size of an orange" +?CND10: PRINTR " on the dome's eastern side." +?ELS7: EQUAL? PRSA,V?REACH-IN \?ELS18 + FSET? DOG,CLUTCHING-BIT \?ELS18 + ZERO? BURN-DOME \?ELS18 + PRINTI "The " + CALL DPRINT,RING + PRINTI ": " + CALL PERFORM,V?TAKE,RING + RTRUE +?ELS18: EQUAL? PRSA,V?LOOK-INSIDE \?ELS22 + PRINTR "You see downtown Tokyo." +?ELS22: EQUAL? PRSA,V?PUT \FALSE + ZERO? BURN-DOME \FALSE + PRINTR "You don't want to ruin the delicate model." + + + .FUNCT TRUCK-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? TRUCK-LOC,33 \?ELS10 + PRINTR "You can't see any tiny truck here." +?ELS10: EQUAL? TRUCK-LOC,30 \?ELS12 + PRINTR "The tiny truck is smashed into tiny bits and pieces." +?ELS12: PRINTI "It's a tiny truck with a small radar dish which is pointing at" + CALL TRPRINT,DOG + RSTACK +?ELS5: CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE + PRINTR "You can't reach the tiny truck. It's under the plastic dome." + + + .FUNCT ROCKET-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? ROCKET-LOC,33 \?ELS10 + PRINTR "You can't see any rocket here." +?ELS10: EQUAL? ROCKET-LOC,30 \?ELS12 + PRINTR "You can't see any rocket here. It has been destroyed." +?ELS12: PRINTI "The rocket is circling around" + CALL TRPRINT,DOG + RSTACK +?ELS5: CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE + PRINTR "You can't reach the rocket. It's under the plastic dome." + + + .FUNCT TOKYO-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "It's the scale model of downtown Tokyo used in the movie ""Atomic Chihuahuas From Hell."" In the center of the model is Tokyo Central Park. " + PRINTI "In the eastern half of the park there " + FSET? MONUMENT,TRASHED-BIT \?ELS8 + PRINTI "are bits and pieces of a smashed monument." + FSET? DOG,CLUTCHING-BIT /?CND6 + ZERO? RING-UNDER-DOME /?CND6 + PRINTI " Lying near the remains of the monument is" + CALL APRINT,RING + PRINTC 46 + JUMP ?CND6 +?ELS8: PRINTI "is a monument." +?CND6: FSET? RING,ON-MONUMENT-BIT \?CND16 + PRINTI " There is" + CALL APRINT,RING + PRINTI " perched on top of the monument." +?CND16: PRINTI " Stretching east and west from the park is Tokyo's main street. " + EQUAL? DOG-LOC,30 \?ELS21 + PRINTI "Scattered throughout the park are pieces of fur and scales mixed with bits of wire and a couple of servomotors." + FSET? DOG,CLUTCHING-BIT \?CND19 + PRINTI " A " + CALL DPRINT,RING + PRINTI " is lying near the debris." + JUMP ?CND19 +?ELS21: EQUAL? DOG-LOC,20 \?ELS26 + PRINTI "West of the park," + CALL TPRINT,DOG + PRINTI " is lying in the street." + JUMP ?CND19 +?ELS26: EQUAL? DOG-LOC,40 \?ELS28 + PRINTI "Scattered in the street east of the park are pieces of fur and scales mixed with bits of wire and a couple of servomotors." + FSET? DOG,CLUTCHING-BIT \?CND19 + PRINTI " A " + CALL DPRINT,RING + PRINTI " is lying near the debris." + JUMP ?CND19 +?ELS28: LESS? DOG-LOC,6 \?ELS33 + GRTR? DOG-LOC,0 \?ELS33 + PRINTI "In the street west of the park there is an " + CALL DPRINT,DOG + SUB TANK-LOC,1 + EQUAL? DOG-LOC,TANK-LOC,STACK /?THN39 + SUB PLANE-LOC,1 + EQUAL? DOG-LOC,PLANE-LOC,STACK \?CND36 +?THN39: PRINTI " under attack" +?CND36: PRINTC 46 + JUMP ?CND19 +?ELS33: EQUAL? DOG-LOC,6,7 \?ELS42 + PRINTI "There is an " + CALL DPRINT,DOG + PRINTI " in the park" + ZERO? ROCKET-LIFE /?CND43 + PRINTI " with a rocket buzzing around it" +?CND43: PRINTC 46 + JUMP ?CND19 +?ELS42: GRTR? DOG-LOC,7 \?CND19 + PRINTI "There is an " + CALL DPRINT,DOG + PRINTI " in the street east of the park" + ZERO? ROCKET-LIFE /?CND48 + PRINTI " with a rocket buzzing around it" +?CND48: PRINTC 46 +?CND19: PRINTI " The entire model is covered by a thick plastic dome" + LESS? BURN-DOME,3 \?CND51 + PRINTI " which has a " + EQUAL? BURN-DOME,2 \?ELS56 + PRINTI "slightly melted spot" + JUMP ?CND54 +?ELS56: EQUAL? BURN-DOME,1 \?ELS58 + PRINTI "melted spot" + JUMP ?CND54 +?ELS58: ZERO? BURN-DOME \?CND54 + PRINTI "small hole" +?CND54: PRINTI " in it near the east end" +?CND51: PRINTR ". Outside the dome on the model there are five buttons: a blue button, a black button, a green button, a white button and a red button." + + + .FUNCT MONUMENT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's " + FSET? MONUMENT,TRASHED-BIT \?CND6 + PRINTI "what's left of " +?CND6: PRINTI "a memorial dedicated to the brave Japanese men and women who have died defending Tokyo against various monsters" + FSET? RING,ON-MONUMENT-BIT \?ELS11 + PRINTI ". A " + CALL DPRINT,RING + PRINTI " is sitting atop the monument" + JUMP ?CND9 +?ELS11: FSET? MONUMENT,TRASHED-BIT \?CND9 + FSET? DOG,CLUTCHING-BIT /?CND9 + PRINTI ". There is" + CALL APRINT,RING + PRINTI " lying next to the monument rubble" +?CND9: PRINTR "." +?ELS5: CALL TOUCHING?,MONUMENT + ZERO? STACK /FALSE + PRINTI "You can't reach" + CALL TPRINT,MONUMENT + PRINTR ". It's under the plastic dome." + + + .FUNCT RING-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's" + CALL TPRINT,RING + PRINTR " from Uncle Buddy's movie ""The Big Diamond Ring.""" +?ELS5: EQUAL? PRSA,V?TAKE \?ELS7 + FSET? RING,TRYTAKEBIT \?ELS7 + ZERO? BURN-DOME \?ELS14 + FSET? DOG,CLUTCHING-BIT \?ELS19 + FCLEAR RING,TRYTAKEBIT + FCLEAR DOG,CLUTCHING-BIT + FCLEAR RING,NDESCBIT + SET 'RING-UNDER-DOME,FALSE-VALUE + RFALSE +?ELS19: PRINTR "It's in the park in the middle of downtown Tokyo, the model that is. Despite the hole, you can't reach it from here." +?ELS14: PRINTR "It's under the plastic dome. You can't reach it." +?ELS7: EQUAL? PRSA,V?CUT \FALSE + EQUAL? PRSI,RING \FALSE + PRINTR "You don't think that's a real diamond, do you? Not in one of Uncle Buddy's movies." + + + .FUNCT TANK-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? TANK-LOC,33 \FALSE + PRINTI "You can't see any " + CALL DPRINT,TANK + PRINTR " here." +?ELS5: CALL TOUCHING?,TANK + ZERO? STACK /FALSE + PRINTI "You can't reach" + CALL TPRINT,TANK + PRINTR " under the plastic dome." + + + .FUNCT PLANE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? PLANE-LOC,33 \FALSE + PRINTI "You can't see any " + CALL DPRINT,PLANE + PRINTR " here." +?ELS5: CALL TOUCHING?,PLANE + ZERO? STACK /FALSE + PRINTI "You can't reach" + CALL TPRINT,PLANE + PRINTR " under the plastic dome." + + + .FUNCT DOG-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? DOG-LOC,30,40 \?ELS10 + PRINTR "There's nothing left but bits of fur and scales mixed with pieces of wire and a couple of servomotors." +?ELS10: PRINTI "Being atomic, it bears little resemblance to the prancing rats you're used to seeing, except for the bulging eyes, of course. It has a furry underbelly, but in most places scales have replaced hair, giving it a more reptilian look. Its front paws are now heavy, clawed appendages and it has fierce-looking fangs. " + EQUAL? DOG-LOC,20 \?ELS15 + PRINTI "It's lying on its side in the street, west of the park." + JUMP ?CND13 +?ELS15: PRINTI "It's standing on its hind legs balanced by its huge mutated spiny tail." +?CND13: GRTR? HIT-POINTS,29 \?ELS20 + LESS? HIT-POINTS,33 \?ELS20 + PRINTI " It seems near death." + JUMP ?CND18 +?ELS20: GRTR? HIT-POINTS,25 \?CND18 + LESS? HIT-POINTS,29 \?CND18 + PRINTI " The repeated attacks are taking their toll." +?CND18: FSET? DOG,CLUTCHING-BIT \?CND27 + PRINTI " It's clutching" + CALL APRINT,RING + PRINTI " with its claws." +?CND27: CRLF + RTRUE +?ELS5: CALL TOUCHING?,DOG + ZERO? STACK /FALSE + EQUAL? PRSA,V?TAKE \?CND32 + EQUAL? PRSI,DOG \?CND32 + EQUAL? PRSO,RING \?CND32 + ZERO? BURN-DOME \?CND32 + FSET? DOG,CLUTCHING-BIT /FALSE +?CND32: PRINTI "You can't reach" + CALL TPRINT,DOG + PRINTR ". It's under the plastic dome." + + + .FUNCT RED-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + CALL DOG-DEAD? + ZERO? STACK \TRUE + ZERO? DOG-BREATH \?ELS12 + PRINTI "You hear a faint gagging noise coming from" + CALL TPRINT,DOG + PRINTR ", then see a little smoke rise from his nostrils." +?ELS12: DEC 'DOG-BREATH + EQUAL? DOG-LOC,PLANE-LOC \?ELS19 + EQUAL? PLANES-LEFT,2 \?ELS24 + SET 'PLANES-LEFT,1 + PUTP PLANE,P?SDESC,STR?226 + PRINTR "A gout of flame from the maw of the plutonium puppy burns up one of the puny planes." +?ELS24: MOVE PLANE,P-NMERGE + SET 'PLANES-LEFT,0 + SET 'PLANE-LOC,30 + PRINTR "An eight-inch flame shoots from the dog's mouth, burning up the remaining puny plane." +?ELS19: EQUAL? DOG-LOC,6,7 \?ELS28 + ZERO? ROCKET-LIFE /?ELS28 + CALL DEQUEUE,I-ROCKET-ATTACK + SET 'ROCKET-LIFE,0 + SET 'ROCKET-LOC,30 + PRINTR "The dog barks a flame, which burns the rocket to a crisp. (Japanese taxpayers are bound to complain about this useless and expensive waste of military hardware.)" +?ELS28: EQUAL? DOG-LOC,10 \?ELS32 + ZERO? ROCKET-LIFE \?ELS32 + ZERO? BURN-DOME /?ELS32 + DEC 'BURN-DOME + PRINTI "The " + CALL DPRINT,DOG + PRINTI " breathes fire which " + EQUAL? BURN-DOME,2 \?ELS37 + PRINTI "slightly melts a spot" + JUMP ?CND35 +?ELS37: EQUAL? BURN-DOME,1 \?ELS39 + PRINTI "melts the spot even more. There is almost a hole" + JUMP ?CND35 +?ELS39: ZERO? BURN-DOME \?CND35 + PRINTI "burns a small hole" +?CND35: PRINTR " in the plastic dome." +?ELS32: PRINTR "A flame shoots from the dog's mouth into the air." + + + .FUNCT WHITE-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + CALL DOG-DEAD? + ZERO? STACK \TRUE + PRINTI "The " + CALL DPRINT,DOG + PRINTI " swipes at " + EQUAL? DOG-LOC,PLANE-LOC \?ELS11 + PRINTI "the " + CALL DPRINT,PLANE + PRINTI ", striking " + EQUAL? PLANES-LEFT,2 \?ELS14 + PRINTI "one" + JUMP ?CND12 +?ELS14: PRINTI "it" +?CND12: PRINTI ". A puff of black smoke begins to trail from the puny plane. " + EQUAL? PLANES-LEFT,2 \?ELS19 + PRINTI "It rolls to one side, then heads down, crashing in a Tokyo suburb" + JUMP ?CND17 +?ELS19: PRINTI "It tumbles out of control, crashing in the parking lot of the Tokyo Disneyland" +?CND17: DEC 'PLANES-LEFT + PUTP PLANE,P?SDESC,STR?226 + ZERO? PLANES-LEFT \?CND9 + MOVE PLANE,P-NMERGE + SET 'PLANES-LEFT,0 + SET 'PLANE-LOC,30 + JUMP ?CND9 +?ELS11: EQUAL? DOG-LOC,ROCKET-LOC \?ELS26 + EQUAL? ROCKET-LOC,30 /?ELS26 + PRINTI "the rocket, barely missing it" + JUMP ?CND9 +?ELS26: PRINTI "thin air" +?CND9: PRINTR "." + + + .FUNCT DOG-DEAD? + EQUAL? DOG-LOC,30,40 \?ELS5 + PRINTI "A servomotor " + EQUAL? DOG-LOC,40 \?ELS8 + PRINTI "east of " + JUMP ?CND6 +?ELS8: PRINTI "in " +?CND6: PRINTR "the park spins for a moment." +?ELS5: EQUAL? DOG-LOC,20 \FALSE + EQUAL? PRSI,RED-BUTTON \?ELS17 + PRINTI "A slight puff of smoke emerges slowly from" + CALL TPRINT,DOG + PRINTR "'s left nostril." +?ELS17: PRINTI "You press" + CALL TPRINT,PRSO + PRINTR " but nothing happens." + + + .FUNCT GREEN-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + CALL DOG-DEAD? + ZERO? STACK \TRUE + EQUAL? DOG-LOC,TANK-LOC,PLANE-LOC \?ELS10 + PRINTI "The gunfire prevents" + CALL TPRINT,DOG + PRINTI " from moving further forward." + CRLF + JUMP ?CND6 +?ELS10: EQUAL? DOG-LOC,10 \?ELS12 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " bumps its atomic snout into the plastic dome covering the model." + CRLF + JUMP ?CND6 +?ELS12: INC 'DOG-LOC + PRINTI "The " + CALL DPRINT,DOG + PRINTI ", in " + GRTR? HIT-POINTS,8 \?ELS17 + PRINTI "a wounded waddle," + JUMP ?CND15 +?ELS17: PRINTI "its best prehistoric prance," +?CND15: PRINTI " moves " + EQUAL? DOG-LOC,6 \?ELS22 + PRINTI "into the west end of the park, violating all leash laws." + CRLF + JUMP ?CND6 +?ELS22: EQUAL? DOG-LOC,7 \?ELS24 + PRINTI "to the east end of the park right in front of a monument, near the tiny truck." + ZERO? ROCKET-LIFE /?CND25 + SET 'ROCKET-LOC,7 + PRINTI " The rocket follows close behind." +?CND25: CRLF + JUMP ?CND6 +?ELS24: EQUAL? DOG-LOC,8 \?ELS29 + PRINTI "forward, crushing the monument. Dozens of local pigeons commence mourning. " + FSET MONUMENT,TRASHED-BIT + FSET? DOG,CLUTCHING-BIT /?CND30 + FCLEAR RING,ON-MONUMENT-BIT + PRINTI "The " + CALL DPRINT,RING + PRINTI " tumbles off the monument onto the ground. " +?CND30: PRINTI "The dog leaves the park and moves into the street" + EQUAL? DOG-LOC,ROCKET-LOC /?CND33 + EQUAL? ROCKET-LOC,30 /?CND33 + SET 'ROCKET-LOC,DOG-LOC + PRINTI ". The rocket follows close behind" +?CND33: PRINTC 46 + CRLF + JUMP ?CND6 +?ELS29: EQUAL? DOG-LOC,9 \?ELS39 + PRINTI "further east, then comes to a stop." + EQUAL? DOG-LOC,ROCKET-LOC /?CND40 + EQUAL? ROCKET-LOC,30 /?CND40 + SET 'ROCKET-LOC,DOG-LOC + PRINTI " The rocket follows close behind." +?CND40: CRLF + JUMP ?CND6 +?ELS39: EQUAL? DOG-LOC,2 \?ELS46 + PRINTI "east, then comes to a stop." + CRLF + JUMP ?CND6 +?ELS46: PRINTI "further east, then comes to a stop." + CRLF +?CND6: EQUAL? DOG-LOC,2 \?ELS51 + EQUAL? DOG-LOC,TANK-LOC,PLANE-LOC /?ELS51 + SET 'TANK-LOC,5 + SET 'PLANE-LOC,7 + CALL QUEUE,I-TANK-ATTACK,2 + CRLF + PRINTI "Suddenly, several blocks east of" + CALL TPRINT,DOG + PRINTI ", a pair of " + CALL DPRINT,TANK + PRINTI " turn a corner onto the main street. They're heading straight for" + CALL TPRINT,DOG + PRINTR ". Out of the corner of your eye you notice a puny plane flying over the park. The puny plane banks, turning towards the main street." +?ELS51: EQUAL? DOG-LOC,6 \TRUE + CALL QUEUE,I-ROCKET-ATTACK,2 + SET 'ROCKET-LOC,6 + SET 'TRUCK-LOC,7 + CRLF + PRINTI "Suddenly out from under a clump of trees at the east end of the park, a tiny truck with a rocket mounted on it rolls into view. (Apparently, violating Tokyo's leash laws is not taken lightly.) A small radar dish on the tiny truck spins furiously until it locks in on" + CALL TPRINT,DOG + PRINTR " and stops. A puff of smoke comes from the back of the rocket as it blasts off toward the dog." + + + .FUNCT I-TANK-ATTACK,HITS,TANK-IN-RANGE=0,PLANE-IN-RANGE=0 + ZERO? TANKS-LEFT \?CND1 + ZERO? PLANES-LEFT \?CND1 + CALL DEQUEUE,I-TANK-ATTACK + RFALSE +?CND1: CALL QUEUE,I-TANK-ATTACK,-1 + SET 'HITS,HIT-POINTS + EQUAL? HERE,GAME-ROOM \?CND6 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND6 + CRLF +?CND6: EQUAL? DOG-LOC,TANK-LOC \?ELS13 + EQUAL? DOG-LOC,PLANE-LOC \?ELS13 + EQUAL? HERE,GAME-ROOM \?CND16 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND16 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " continues to take fire from" + CALL TPRINT,TANK + PRINTI " and" + CALL TPRINT,PLANE + PRINTC 46 +?CND16: ADD PLANES-LEFT,TANKS-LEFT + ADD HIT-POINTS,STACK >HIT-POINTS + JUMP ?CND11 +?ELS13: EQUAL? TANK-LOC,DOG-LOC \?ELS25 + EQUAL? HERE,GAME-ROOM \?CND26 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND26 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " continues to take hits from" + CALL TPRINT,TANK + PRINTC 46 +?CND26: ADD HIT-POINTS,TANKS-LEFT >HIT-POINTS + JUMP ?CND23 +?ELS25: ZERO? TANKS-LEFT /?CND23 + DEC 'TANK-LOC + EQUAL? TANK-LOC,DOG-LOC \?ELS35 + EQUAL? HERE,GAME-ROOM \?CND36 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND36 + PRINTI "The tanks " + GRTR? HIT-POINTS,0 \?ELS43 + PRINTI "continue" + JUMP ?CND41 +?ELS43: PRINTI "begin" +?CND41: PRINTI " to fire as they roll to a stop at the foot of the mutant Mexican hairless." +?CND36: ADD HIT-POINTS,TANKS-LEFT >HIT-POINTS + JUMP ?CND23 +?ELS35: ADD DOG-LOC,1 + EQUAL? STACK,TANK-LOC \?ELS47 + EQUAL? HERE,GAME-ROOM \?CND48 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND48 + PRINTI "The tanks, only a block away, begin firing as they move within range." +?CND48: ADD HIT-POINTS,TANKS-LEFT >HIT-POINTS + JUMP ?CND23 +?ELS47: EQUAL? TANK-LOC,DOG-LOC /?CND23 + EQUAL? HERE,GAME-ROOM \?CND23 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND23 + PRINTI "The tanks, a few blocks away, continue to advance toward the radiated sewer rat." +?CND23: ZERO? TANKS-LEFT /?CND60 + EQUAL? HERE,GAME-ROOM \?CND60 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND60 + PRINTC 32 +?CND60: EQUAL? PLANE-LOC,DOG-LOC \?ELS70 + EQUAL? HERE,GAME-ROOM \?CND71 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND71 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " continues to take fire from" + CALL TPRINT,PLANE + PRINTC 46 +?CND71: ADD HIT-POINTS,PLANES-LEFT >HIT-POINTS + JUMP ?CND11 +?ELS70: ZERO? PLANES-LEFT /?CND11 + DEC 'PLANE-LOC + EQUAL? PLANE-LOC,DOG-LOC \?ELS80 + EQUAL? HERE,GAME-ROOM \?CND81 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND81 + PRINTI "The planes, spewing bullet-shaped death, reach the radioactive reptile and begin circling around it." +?CND81: ADD HIT-POINTS,PLANES-LEFT >HIT-POINTS + JUMP ?CND11 +?ELS80: ADD DOG-LOC,1 + EQUAL? STACK,PLANE-LOC \?ELS87 + EQUAL? HERE,GAME-ROOM \?CND88 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND88 + PRINTI "The planes, only a block away, begin firing as they move within range." +?CND88: ADD HIT-POINTS,PLANES-LEFT >HIT-POINTS + JUMP ?CND11 +?ELS87: EQUAL? PLANE-LOC,DOG-LOC /?CND11 + EQUAL? PLANE-LOC,6 \?ELS97 + EQUAL? HERE,GAME-ROOM \?CND98 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND98 + PRINTI "Over the park, a second puny plane joins the first one." +?CND98: PUTP PLANE,P?SDESC,STR?227 + JUMP ?CND11 +?ELS97: EQUAL? PLANE-LOC,5 \?ELS104 + EQUAL? HERE,GAME-ROOM \?CND105 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND105 + PRINTI "The puny planes swoop out of the park and down the street" +?CND105: EQUAL? DOG-LOC,4 \?CND110 + EQUAL? HERE,GAME-ROOM \?CND113 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND113 + PRINTI " firing at" + CALL TPRINT,DOG +?CND113: ADD HIT-POINTS,PLANES-LEFT >HIT-POINTS +?CND110: EQUAL? HERE,GAME-ROOM \?CND11 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND11 + PRINTC 46 + JUMP ?CND11 +?ELS104: EQUAL? HERE,GAME-ROOM \?CND11 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND11 + PRINTI "The planes, a few blocks away, continue to fly toward the radiated sewer rat." +?CND11: GRTR? HIT-POINTS,HITS \?CND130 + EQUAL? HERE,GAME-ROOM \?CND133 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND133 + EQUAL? PLANE-LOC,30 \?ELS140 + CALL PICK-ONE,DOG-IN-PAIN + PRINT STACK + JUMP ?CND133 +?ELS140: PRINTC 32 + CALL PICK-ONE,DOG-IN-PAIN + PRINT STACK +?CND133: GRTR? HIT-POINTS,19 \?ELS145 + CALL DEQUEUE,I-TANK-ATTACK + SET 'DOG-LOC,20 + SET 'TANK-LOC,33 + SET 'PLANE-LOC,33 + EQUAL? HERE,GAME-ROOM \?CND130 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND130 + PRINTI " The " + CALL DPRINT,DOG + PRINTI " starts to shake as if he has to go outside, then stumbles and falls to the ground. + +*** The " + CALL DPRINT,DOG + PRINTI " has died *** + + Tokyo is saved!" + CRLF + CRLF + PRINTI "The " + ZERO? TANKS-LEFT /?ELS153 + PRINTI "tiny tank" + EQUAL? TANKS-LEFT,2 \?ELS156 + PRINTI "s turn" + JUMP ?CND154 +?ELS156: PRINTI " turns" +?CND154: PRINTI " onto a side street and disappear" + EQUAL? TANKS-LEFT,1 \?CND159 + PRINTC 115 +?CND159: ZERO? PLANES-LEFT \?ELS164 + PRINTC 46 + JUMP ?CND130 +?ELS164: PRINTI " as the puny plane" + EQUAL? PLANES-LEFT,2 \?ELS169 + PRINTI "s tip their" + JUMP ?CND167 +?ELS169: PRINTI " tips its" +?CND167: PRINTI " wings and head" + EQUAL? PLANES-LEFT,1 \?CND172 + PRINTC 115 +?CND172: PRINTI " for home." + JUMP ?CND130 +?ELS153: PRINTI "puny plane" + EQUAL? PLANES-LEFT,2 \?ELS179 + PRINTI "s tip their" + JUMP ?CND177 +?ELS179: PRINTI " tips its" +?CND177: PRINTI " wings and head" + EQUAL? PLANES-LEFT,1 \?CND182 + PRINTC 115 +?CND182: PRINTI " for home." + JUMP ?CND130 +?ELS145: GRTR? HIT-POINTS,15 \?ELS186 + GRTR? HITS,15 /?ELS186 + EQUAL? HERE,GAME-ROOM \?CND130 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND130 + PRINTI " The repeated attacks weaken" + CALL TPRINT,DOG + PRINTI " and it seems near death." + JUMP ?CND130 +?ELS186: GRTR? HIT-POINTS,11 \?CND130 + GRTR? HITS,11 /?CND130 + EQUAL? HERE,GAME-ROOM \?CND130 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND130 + PRINTI " The repeated attacks begin to take their toll on" + CALL TPRINT,DOG + PRINTC 46 +?CND130: EQUAL? HERE,GAME-ROOM \TRUE + CALL LIT?,GAME-ROOM + ZERO? STACK /TRUE + CRLF + RTRUE + + + .FUNCT I-ROCKET-ATTACK + EQUAL? ROCKET-LOC,30 /FALSE + CALL QUEUE,I-ROCKET-ATTACK,-1 + DEC 'ROCKET-LIFE + ZERO? ROCKET-LIFE \?ELS8 + EQUAL? HERE,GAME-ROOM \?CND9 + CALL LIT?,GAME-ROOM + ZERO? STACK /?CND9 + CRLF + PRINTI "The rocket swoops down, striking" + CALL TPRINT,DOG + PRINTI " in the chest. The " + CALL DPRINT,DOG + PRINTI " explodes and pieces of fur and scales, mixed with bits of wire and a couple of servomotors, scatter throughout the area. + +*** The " + CALL DPRINT,DOG + PRINTI " has died *** + + Tokyo is saved!" + CRLF +?CND9: SET 'ROCKET-LOC,30 + CALL DEQUEUE,I-ROCKET-ATTACK + EQUAL? DOG-LOC,6,7 \?ELS18 + SET 'DOG-LOC,30 + RETURN DOG-LOC +?ELS18: SET 'DOG-LOC,40 + RETURN DOG-LOC +?ELS8: EQUAL? ROCKET-LIFE,3 \?ELS27 + EQUAL? HERE,GAME-ROOM \?ELS27 + CALL LIT?,HERE + ZERO? STACK /?ELS27 + CRLF + PRINTI "The rocket speeds toward" + CALL TPRINT,DOG + PRINTR " and begins circling as it nears." +?ELS27: EQUAL? ROCKET-LIFE,2 \?ELS31 + EQUAL? HERE,GAME-ROOM \?ELS31 + CALL LIT?,HERE + ZERO? STACK /?ELS31 + CRLF + PRINTI "The rocket begins bobbing up and down, sniffing for just the right spot as it circles" + CALL TRPRINT,DOG + RSTACK +?ELS31: EQUAL? ROCKET-LIFE,1 \FALSE + EQUAL? HERE,GAME-ROOM \FALSE + CALL LIT?,HERE + ZERO? STACK /FALSE + CRLF + PRINTI "Suddenly the rocket makes a wide turn out in front of" + CALL TPRINT,DOG + PRINTR ". It seems to have found the spot it was looking for. The rocket's speed increases as it heads right for the dog's heart!" + + + .FUNCT BLUE-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + CALL DOG-DEAD? + ZERO? STACK \TRUE + PRINTI "The " + CALL DPRINT,DOG + FSET? DOG,CLUTCHING-BIT \?ELS13 + PRINTI " clutches" + CALL TPRINT,RING + PRINTR " more tightly." +?ELS13: EQUAL? DOG-LOC,7 \?ELS15 + PRINTI " clutches" + CALL TPRINT,RING + PRINTI " in its front claws." + CRLF + FCLEAR RING,ON-MONUMENT-BIT + FSET DOG,CLUTCHING-BIT + RTRUE +?ELS15: PRINTR " grasps at thin air with its front claws." + + + .FUNCT BLACK-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + CALL DOG-DEAD? + ZERO? STACK \TRUE + EQUAL? DOG-LOC,TANK-LOC \?ELS11 + EQUAL? TANKS-LEFT,2 \?ELS14 + RANDOM 100 + LESS? 50,STACK /?ELS14 + PUTP TANK,P?SDESC,STR?232 + PRINTI "Just as" + CALL TPRINT,DOG + PRINTI " is about to raise its hind leg, one of the tiny tanks drives up onto its toenail. As" + CALL TPRINT,DOG + PRINTI " raises its hind leg, the tiny tank is lifted off the ground and hurled through the air into the middle of a nearby apartment building, demolishing a large portion of it. Hundreds of house plants fall to their deaths. The " + CALL DPRINT,DOG + PRINTI " stomps the street's pavement with its clawed foot." + SET 'TANKS-LEFT,1 + JUMP ?CND9 +?ELS14: PRINTI "The " + CALL DPRINT,DOG + PRINTI " lifts its hind leg and, just as you thought this game was going to become even more base, stomps its clawed foot down on " + EQUAL? TANKS-LEFT,2 \?ELS21 + PRINTI "one of the tiny tanks" + PUTP TANK,P?SDESC,STR?232 + SET 'TANKS-LEFT,1 + JUMP ?CND19 +?ELS21: PRINTI "the other tiny tank" + MOVE TANK,P-NMERGE + SET 'TANKS-LEFT,0 + SET 'TANK-LOC,30 +?CND19: PRINTI ", crushing it." + JUMP ?CND9 +?ELS11: EQUAL? TRUCK-LOC,7 \?ELS25 + EQUAL? DOG-LOC,7 \?ELS25 + PRINTI "The Chihuahua raises his hind leg and soundly stomps the tiny truck, smashing it to bits." + ZERO? ROCKET-LIFE /?CND28 + PRINTI " The rocket heads straight for the Atomic Chihuahua, then begins to swerve and dive erratically. It sails past the Atomic Chihuahua, colliding with Tokyo's tallest building, the Ginsu Building, corporate headquarters of the Ginsu Knife Company. Just as your mind pauses to consider the possibility of a Ginsu knife standing up to this kind of punishment, the rocket explodes and the entire building collapses. Tokyo isn't saved but millions of late-night TV viewers are." +?CND28: SET 'TRUCK-LOC,30 + SET 'ROCKET-LOC,30 + SET 'ROCKET-LIFE,0 + CALL DEQUEUE,I-ROCKET-ATTACK + JUMP ?CND9 +?ELS25: EQUAL? DOG-LOC,6,7 \?ELS32 + PRINTI "The " + CALL DPRINT,DOG + PRINTI " lifts its hind leg (no, not that!) and stomps its scaly claw down on the grass, creating a children's wading pool." + JUMP ?CND9 +?ELS32: PRINTI "The " + CALL DPRINT,DOG + PRINTI " lifts its hind leg and stomps its clawed foot down on the street's pavement." +?CND9: CRLF + RTRUE + + + .FUNCT MENS-ROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + CALL DESCRIBE-BATHROOM,STR?234 + RSTACK + + + .FUNCT DESCRIBE-BATHROOM,GENDER + PRINTI "This is an ordinary restroom which looks like a " + PRINT GENDER + PRINTI " room in a theatre." + RTRUE + + + .FUNCT LADIES-ROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + CALL DESCRIBE-BATHROOM,STR?235 + RSTACK + + + .FUNCT ENTER-HM + FCLEAR HEDGE-MAZE,TOUCHBIT + SET 'HM-ROOM,439 + CALL ULTIMATELY-IN?,VERTICAL-MAP + ZERO? STACK \?CND1 + CALL ULTIMATELY-IN?,HORIZONTAL-MAP + ZERO? STACK \?CND1 + PRINTI "You feel uneasy going into the hedge maze knowing Aunt Hildegarde isn't here to help you find your way out." + CRLF + CRLF +?CND1: RANDOM 20 + ADD 30,STACK + CALL QUEUE,I-HEDGE-FOOTSTEPS,STACK + RETURN HEDGE-MAZE + + + .FUNCT I-HEDGE-FOOTSTEPS + EQUAL? HERE,HEDGE-MAZE \FALSE + RANDOM 20 + ADD 30,STACK + CALL QUEUE,I-HEDGE-FOOTSTEPS,STACK + CRLF + PRINTR "You hear footsteps on the other side of the hedge." + + + .FUNCT HEDGE-MAZE-OBJ-F + EQUAL? PRSA,V?LEAVE,V?EXIT,V?ENTER /?THN6 + EQUAL? PRSA,V?DISEMBARK,V?WALK-TO \FALSE +?THN6: CALL V-WALK-AROUND + RSTACK + + + .FUNCT HEDGE-MAZE-F,RARG,PATHS=0,OLD,STEPS,DIR + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "You are in a hedge maze of astonishing complexity. " + BTST HM-BITS,X-N \?CND6 + INC 'PATHS +?CND6: BTST HM-BITS,X-E \?CND9 + INC 'PATHS +?CND9: BTST HM-BITS,X-W \?CND12 + INC 'PATHS +?CND12: BTST HM-BITS,X-S \?CND15 + INC 'PATHS +?CND15: GRTR? PATHS,1 \?ELS20 + PRINTI "Paths lead " + JUMP ?CND18 +?ELS20: PRINTI "A path leads " +?CND18: BTST HM-BITS,X-N \?CND23 + PRINTI "north" + CALL PUNCTUATION,PATHS >PATHS +?CND23: BTST HM-BITS,X-S \?CND26 + PRINTI "south" + CALL PUNCTUATION,PATHS >PATHS +?CND26: BTST HM-BITS,X-E \?CND29 + PRINTI "east" + CALL PUNCTUATION,PATHS >PATHS +?CND29: BTST HM-BITS,X-W \?CND32 + PRINTI "west" + CALL PUNCTUATION,PATHS >PATHS +?CND32: BTST HM-BITS,X-H \TRUE + CRLF + CRLF + PRINTI "There is a hole in the ground here from your previous excavations." + MOVE MAZE-HOLE,HERE + RTRUE +?ELS5: EQUAL? RARG,M-ENTER \?ELS39 + GETB HM-TABLE,HM-ROOM >HM-BITS + CALL OBJECTS-TO-ROOM,HM-ROOM + RSTACK +?ELS39: EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?WALK \FALSE + SET 'OLD,HM-ROOM + CALL OBJECTS-TO-TABLE,OLD + EQUAL? P-WALK-DIR,P?NORTH \?ELS49 + BTST HM-BITS,X-N \?ELS49 + SET 'DIR,STR?99 + CALL HEDGE-WALK,X-N >STEPS + JUMP ?CND47 +?ELS49: EQUAL? P-WALK-DIR,P?SOUTH \?ELS53 + BTST HM-BITS,X-S \?ELS53 + EQUAL? HM-ROOM,439 \?ELS58 + CALL GOTO,ENTRANCE-TO-MAZE + RTRUE +?ELS58: EQUAL? HM-ROOM,388 \?CND56 + PRINTI "You make your way 10 feet south along the path." + CRLF + CRLF + CALL GOTO,HEART-OF-MAZE + RTRUE +?CND56: SET 'DIR,STR?97 + CALL HEDGE-WALK,X-S >STEPS + JUMP ?CND47 +?ELS53: EQUAL? P-WALK-DIR,P?EAST \?ELS62 + BTST HM-BITS,X-E \?ELS62 + SET 'DIR,STR?237 + CALL HEDGE-WALK,X-E >STEPS + JUMP ?CND47 +?ELS62: EQUAL? P-WALK-DIR,P?WEST \?ELS66 + BTST HM-BITS,X-W \?ELS66 + SET 'DIR,STR?238 + CALL HEDGE-WALK,X-W >STEPS + JUMP ?CND47 +?ELS66: EQUAL? P-WALK-DIR,P?UP \?ELS70 + PRINTI "Please don't climb the hedges." + CRLF + RETURN 2 +?ELS70: EQUAL? P-WALK-DIR,P?DOWN \?ELS74 + PRINTI "You burrow furiously to no avail." + CRLF + RETURN 2 +?ELS74: CALL OBJECTS-TO-ROOM,OLD + CALL PICK-ONE,HEDGE-CRASH + PRINT STACK + PRINTC 46 + CRLF + RETURN 2 +?CND47: FCLEAR HEDGE-MAZE,TOUCHBIT + PRINTI "You make your way " + MUL 10,STEPS + PRINTN STACK + PRINTI " feet " + PRINT DIR + PRINTI " along the path." + CRLF + CRLF + CALL GOTO,HEDGE-MAZE + RSTACK + + + .FUNCT OUT-OF-HEART-OF-MAZE + FCLEAR HEDGE-MAZE,TOUCHBIT + PRINTI "You make your way 10 feet north along the path." + CRLF + CRLF + RETURN HEDGE-MAZE + + + .FUNCT HEART-OF-MAZE-HOLE-F + EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT PUNCTUATION,PATHS + EQUAL? PATHS,4 \?ELS3 + PRINTI ", " + JUMP ?CND1 +?ELS3: EQUAL? PATHS,3 \?ELS5 + PRINTI ", " + JUMP ?CND1 +?ELS5: EQUAL? PATHS,2 \?ELS7 + PRINTI " and " + JUMP ?CND1 +?ELS7: PRINTC 46 +?CND1: DEC 'PATHS + RETURN PATHS + + + .FUNCT HEDGE-WALK,BIT,STEPS=0,MBITS + SET 'MBITS,HM-BITS +?PRG1: EQUAL? BIT,X-N \?ELS5 + BTST MBITS,X-N \?ELS5 + DEC 'HM-ROOM + JUMP ?CND3 +?ELS5: EQUAL? BIT,X-S \?ELS9 + BTST MBITS,X-S \?ELS9 + INC 'HM-ROOM + JUMP ?CND3 +?ELS9: EQUAL? BIT,X-E \?ELS13 + BTST MBITS,X-E \?ELS13 + ADD HM-ROOM,20 >HM-ROOM + JUMP ?CND3 +?ELS13: EQUAL? BIT,X-W \?ELS17 + BTST MBITS,X-W \?ELS17 + SUB HM-ROOM,20 >HM-ROOM + JUMP ?CND3 +?ELS17: RETURN STEPS +?CND3: INC 'STEPS + GETB HM-TABLE,HM-ROOM + ZERO? STACK /?ELS24 + RETURN STEPS +?ELS24: SET 'MBITS,15 + JUMP ?PRG1 + + + .FUNCT OBJECTS-TO-TABLE,SLOC,TBL,CNT=0,F,N + FIRST? HEDGE-MAZE >F /?KLU21 +?KLU21: REMOVE MAZE-HOLE + SET 'TBL,HEDGE-OBJECTS-TABLE +?PRG1: ZERO? F /TRUE + NEXT? F >N /?CND3 +?CND3: EQUAL? F,WINNER /?CND9 + FSET? F,TAKEBIT \?CND9 +?PRG14: GET TBL,CNT + ZERO? STACK \?ELS18 + PUT TBL,CNT,SLOC + ADD CNT,1 + PUT TBL,STACK,F + ADD CNT,2 >CNT + REMOVE F + JUMP ?CND9 +?ELS18: ADD CNT,2 >CNT + JUMP ?PRG14 +?CND9: SET 'F,N + JUMP ?PRG1 + + + .FUNCT OBJECTS-TO-ROOM,SLOC,TBL,CNT=0 + SET 'TBL,HEDGE-OBJECTS-TABLE +?PRG1: LESS? CNT,HEDGE-OBJECT-TABLE-LENGTH \TRUE + GET TBL,CNT + EQUAL? STACK,SLOC \?CND3 + PUT TBL,CNT,0 + ADD CNT,1 + GET TBL,STACK + MOVE STACK,HEDGE-MAZE +?CND3: ADD CNT,2 >CNT + JUMP ?PRG1 + + .ENDI diff --git a/hedgemaze.zil b/hedgemaze.zil new file mode 100644 index 0000000..593c760 --- /dev/null +++ b/hedgemaze.zil @@ -0,0 +1,2001 @@ +"HEDGEMAZE for ANTHILL (C)1986 by Infocom Inc. All Rights Reserved." + + ROCKET ROCKET-PSEUDO) + (<> HOLE DOME-HOLE-PSEUDO) + (MELTED SPOT DOME-HOLE-PSEUDO)>)> + + + + + + >;"missile" + ) + (T + )> + > + >> + )> + ;) + (T + + + + > + ,RING-UNDER-DOME> + )>) + (T + )> + + )> + + + + )> + + > + )>) + ( + + + )>)>)> + + ) + ( + )>> + + + + + + + ) + ( + ) + ( + )> + )> + ) + ( + + ) + ( + > ;"hole burned in dome" + )>> + + + ) + ( + > ;"was ,dome-hole" + + + ) + ( + ) + ( + )> + ) + ( + + > + + + ) + ( + ) + ( + > ;"hole burned in dome" + )>> + + + ;"OFF STAGE" + ) + ( + ) + (T + )>) + ( + )>> + + + + ) + ( + ) + (T + )>) + ( + )>> + + + + + + + + + > + ,RING-UNDER-DOME> + )>) + (T + )> + + )> + + +;"mention dog" + + + )>) + ( + ) + ( + + + )>) + ( + > + + > + >> + )> + ) + ( + + > + )> + ) + ( + + > + )> + )> + + + + + ) + ( + ) + ( + )> + )> + )>> + + + + + + + )> + + + ) + ( + >> + )> + ) + ( + )>> + + + + + + + ) + ( + > + ;"hole burned in dome" + + + + + > + ) + (T + )>) + (T + )>) + ( + > + )>> + + + + + ;"OFF STAGE" + ) + (T + )>) + ( + )>> + + + + + ;"OFF STAGE" + ) + (T + )>) + ( + )>> + + + + + + + ) + (T + + + ) + (T + )> + + > ;"SEM" + ) + ( + > + )> + + )> + )>) + ( + + + + + > + )> + )>> + + + + + + + + + ) + ( + + ) + (T + > + + + + + ) + (T + ; + ;"SEM" ;"temp fix" + + + )>) + ( + >> + + + + ) + ( + + >> + > + + + ) + ( + ) + ( + )> + ) + (T + )>)>)>> + + + + + + )> + + ;"SEM COULD I CUT THIS COND" + + + ) + (T + )> + + + ) + (T + )> + > + + + ; + ;"temp fix" + + )>) + ( + >> + ) + (T + )> + )>> + + + + + ) + (T + )> + ) + ( + + ) + (T + )>)>> + + + + + + + + + + + ) + ( + ) + ( ;"last room" + ) + (T ;"walk the dog" + > + + + ) + (T + )> + + ;"Westside of Park" + ) + ( ;"Eastside of Park" + + > + + )> + ) + ( + + + > + + )> + + > + >> + + )> + ) + ( + + > + >> + + )> + ) + ( + ) + (T + )>)> + + >> + + + + ) + ( ;"Park" + + + + )> + ) + ;( + )>> + + + + ;"1-first room of downtown Tokyo" + ;"33-offstage" + ;"33-offstage" "7-east park" + +) (PLANE-IN-RANGE <>)) + + > + + )> + + + + > + )> + + > + + > + )> + >>) + (T +;"Tanks" + + > + )> + >) + (> + > + + + > + + + ) + (T + )> + )> + >) + ( ,TANK-LOC> + + > + )> + >) + (> + + > + )>)>)> + > + + > + )>)> +;"Planes" + + > + )> + >) + (> + > + + + > + )> + >) + ( ,PLANE-LOC> + + > + )> + >) + (> + + + > + )> + ) + ( + + > + )> + + + > + )> + >)> + + > + )>) + (T + + > + )>)>)>)>)> + + + > + + >) + (T + >)>)> + + ; + + ;"dead in street west of park" + ;"off stage" + ;"off stage" + + > + + + > + + + ) + (T + )> + + + )> + + ) + (T + + + ) + (T + )> + + + )> + )>) + (T + + + ) + (T + )> + + + )> + )>)>) + ( + >> + ; + >> + + > + )>) + ( + >> + + > + )>)>)> + + > + )> + > + + + )> + + > + + + > + )> + + + + ) + (T + )>);"dead east of park" + (T + + + > + ) + ( + + > + ) + ( + + > + )>)>> + +> + + + + + + )> + + + ) + ( + + + ) + (T + )>)>> + + + + + + + + + )> + + + > + + + ) + (T + + + + + ) + (T + + ;"temp fix" + + )> + )>) + ( ;"East Park" + > + + > + )> + ; + + + + ) + ( + ) + (T + )> + )>> + + + + + + + )>> + +> + + + + + )>> + + ;"these are temporary until compiler fix." + + + + + + + + + + + + + + + + > + >> + )> + >> + ,HEDGE-MAZE> + + + >> + ) + (T + )>> + + + + + )>> + + + + + + + + + +;"find out how many paths lead out of current room" + + >)> + + >)> + + >)> + + >)> + + ) + (T + )> +;"tell direction path(s) lead in" + + + >)> + + + >)> + + + >)> + + + >)> + ;"x-h checks for hole" + + )> + ) + ( + > + ) + ( + + + + + > + + >) + ( + > + + + ) + ( + + + )> + + >) + ( + > + + >) + ( + > + + >) + ( + + ) + ( + + ) + (ELSE + + "." CR> + )> + + " feet " .DIR " along the path." CR CR> + )>)>> + + + + + + ,HEDGE-MAZE> + + + + + )>> + + + + + + + ) + ( + ) + ( + ) + (T + )> + > + > + + + > + >) + ( > + >) + ( > + >) + ( > + >) + (ELSE + )> + > + >> + ) + (ELSE + >)>>> + +) N) + + + >) + (ELSE )> + ) + ( + 0> + + .F> + > + + ) + (ELSE + >)>>)> + >> + + + > + ) + ( .SLOC> + + > ,HEDGE-MAZE>)> + >>> + + ;"currently ? takeable objects" + +> + + + ;"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" >> + +> + diff --git a/map.zap b/map.zap new file mode 100644 index 0000000..a92e0b4 --- /dev/null +++ b/map.zap @@ -0,0 +1,2 @@ + + .ENDI diff --git a/map.zil b/map.zil new file mode 100644 index 0000000..acc4688 --- /dev/null +++ b/map.zil @@ -0,0 +1,346 @@ +"MAPS for ANTHILL (C)1986 by Infocom Inc. All Rights Reserved." + +;" THE NEW NEW COMPLETE MAP + 1 2 3 + 12345678901234567890123456789012345678 + 1____________________________________~ + 2| __| | |____ | | ___|__ | _____ |~ + 3| | __|__ | | |__ _ ___| | | |~ + 4| | ___ | | | | | | __| | _| | | | |~ + 5|______ | | |_____| | |_ |_| | | |~ + 6| __ ___|_ ____ | | | __ | | | |~ + 7|__| | | | | | _____| | |__| | | | |~ + 8| ___| | | | |__| ______| _| | | | |~ + 9| | ___| | |___ | | | |____| | | |~ +10| | | ___|___ | | |X| |___ | ____| |~ + 1| | | | | | | |_| | _| |______ |~ + 2|_| | | | | | |_|_____| | ____ | __|~ + 3| ____| | | |____ | | | | __ | | |~ + 4| | | |_| | | |_| | | | | | | |~ + 5| | | |__ __| | |____ |__ | |__| | |~ + 6| | |_________|__ ___ | ____ | |~ + 7| |____ | _____ | | | _ | |___ | __|~ + 8| | | | | | | | |_| | ___| | |~ + 9| | | |___| | | | |__ __| | |_ | | |~ +20|___|_______|___|____ ____|____|___|~ + 123456789112345678921234567893123456 + 0 0 0 " + + +;" THE NEW NEW HORIZONTAL MAP + + 1 2 3 + 123456789012345678901234567890123456 + 1___________________________________~ + 2 __ ____ ___ __ _____~ + 3 __ __ __ _ ___~ + 4 ___ __ _~ + 5 ______ _____ _ _~ + 6 __ ___ _ ____ __~ + 7 __ _____ __~ + 8 ___ __ ______ _~ + 9 ___ ___ ____~ +10 ___ ___ X ___ _____~ + 1 _ _ ______~ + 2 _ _ _____ ____ __~ + 3 ____ ____ __~ + 4 _ _~ + 5 __ __ ____ __ __~ + 6 _________ __ ___ ____~ + 7 ____ _____ _ ___ __~ + 8 _ ___~ + 9 ___ __ __ _~ +20 ___ _______ ___ ____ ____ ____ ___~ + 123456789112345678921234567893123456 + 0 0 0 " + + +;" THE NEW NEW COMPLETE MAP + 1 2 3 + 123456789012345678901234567890123456 + 1 + 2| | | | | | | | |~ + 3| | | | | | | | | |~ + 4| | | | | | | | | | | | | | |~ + 5| | | | | | | | | | | |~ + 6| | | | | | | | |~ + 7| | | | | | | | | | | | | | |~ + 8| | | | | | | | | | | | |~ + 9| | | | | | | | | | | | |~ +10| | | | | | |X| | | | |~ + 1| | | | | | | | | | | | |~ + 2| | | | | | | | | | | | |~ + 3| | | | | | | | | | | |~ + 4| | | | | | | | | | | | | | | |~ + 5| | | | | | | | | | | | |~ + 6| | | | | | |~ + 7| | | | | | | | | |~ + 8| | | | | | | | | | | | | |~ + 9| | | | | | | | | | | | | | |~ +20| | | | | | |~ + 123456789112345678921234567893123456 + 0 0 0 " + +;" THE NEW NEW COMPLETE MAP + + 123456789111111111122222222223333333 + 012345678901234567890123456 + + 02468111112222233333444445555566666 + 00000246802468024680246802468024680 + 0000000000000000000000000000000 + 0____________________________________~ + 1| __| | |____ | | ___|__ | _____ |~ + 2| | __|__ | | |__ _ ___| | | |~ + 3| | ___ | | | | | | __| | _| | | | |~ + 4|______ | | |_____| | |_ |_| | | |~ + 5| __ ___|_ ____ | | | __ | | | |~ + 6|__| | | | | | _____| | |__| | | | |~ + 7| ___| | | | |__| ______| _| | | | |~ + 8| | ___| | |___ | | | |____| | | |~ + 9| | | ___|___ | | |X| |___ | ____| |~ +10| | | | | | | |_| | _| |______ |~ +11|_| | | | | | |_|_____| | ____ | __|~ +12| ____| | | |____ | | | | __ | | |~ +13| | | |_| | | |_| | | | | | | |~ +14| | | |__ __| | |____ |__ | |__| | |~ +15| | |_________|__ ___ | ____ | |~ +16| |____ | _____ | | | _ | |___ | __|~ +17| | | | | | | | |_| | ___| | |~ +18| | | |___| | | | |__ __| | |_ | | |~ +19|___|_______|___|____ ____|____|___|~ + 13579135792222233333444445555666666 + 99999199991357913579135791357913579 + 999999999999999999999999999999" + +;" NEW COMPLETE MAP + 1 2 3 + 12345678901234567890123456789012345678 + 1______________________________________ + 2| __| | |____ | | ___|__ | _____ | + 3| | __|__ | | |__ _ ___| | | | | + 4| | ___ | | | | | | __| | _| | | | | | + 5|______ | | |_____| | |_ |_| | | | | + 6| __ ___|_ ____ | | | __ | | | |_| + 7|__| | | | | | _____| | |__| | | | | + 8| ___| | | | |__| ______| _| | | | | | + 9| | ___| | |___ | | | |____| | | | | +10| | | ___|___ | | |X| |___ | ____| | | + 1| | | | | | | |_| | _| |_______| | + 2|_| | | | | | |_|_____| | ____ | ___ | + 3| ____| | | |____ | | | | __ | | | | + 4| | | |_| | | |_| | | | | | | | | + 5| | | |__ __| | |____ |__ | |__| | | | + 6| | |_________|__ ___ | ____ | | | + 7| |____ | _____ | | | _ | |___ | ___ | + 8| | | | | | | | |_| | ___| | __| + 9| | | |___| | | | |__ __| | |_ | |__ | +20|___|_______|___|____ ____|____|_____| + 12345678911234567892123456789312345678 + 0 0 0 " + + +;" NEW HORIZONTAL MAP + + 1 2 3 + 12345678901234567890123456789012345678 + 1______________________________________~ + 2 __ ____ ___ __ _____~ + 3 __ __ __ _ ___~ + 4 ___ __ _~ + 5 ______ _____ _ _~ + 6 __ ___ _ ____ __ _~ + 7 __ _____ __~ + 8 ___ __ ______ _~ + 9 ___ ___ ____~ +10 ___ ___ X ___ ____ + 1 _ _ _______~ + 2 _ _ _____ ____ ___~ + 3 ____ ____ __~ + 4 _ _~ + 5 __ __ ____ __ __~ + 6 _________ __ ___ ____~ + 7 ____ _____ _ ___ ___~ + 8 _ ___ __~ + 9 ___ __ __ _ __~ +20 ___ _______ ___ ____ ____ ____ _____~ + 12345678911234567892123456789312345678 + 0 0 0 " + + +;" NEW COMPLETE MAP + 1 2 3 + 12345678901234567890123456789012345678 + 1 + 2| | | | | | | | |~ + 3| | | | | | | | | | |~ + 4| | | | | | | | | | | | | | | |~ + 5| | | | | | | | | | | | |~ + 6| | | | | | | | | |~ + 7| | | | | | | | | | | | | | |~ + 8| | | | | | | | | | | | | |~ + 9| | | | | | | | | | | | | |~ +10| | | | | | |X| | | | | |~ + 1| | | | | | | | | | | | | |~ + 2| | | | | | | | | | | | |~ + 3| | | | | | | | | | | | |~ + 4| | | | | | | | | | | | | | | | |~ + 5| | | | | | | | | | | | | |~ + 6| | | | | | | |~ + 7| | | | | | | | | |~ + 8| | | | | | | | | | | | | |~ + 9| | | | | | | | | | | | | | |~ +20| | | | | | |~ + 12345678911234567892123456789312345678 + 0 0 0 " + + + +;" OLD COMPLETE MAP + + 123456789012345678901234567890123456789 +1_______________________________________ +2| _____ | | | __ ___ | __ | | +3|____ | | | | | | | |__| |___|_ | | | | +4| ____| | |___|___| | _______ | |___| | +5|____ | | | ___ __| | ___ | | | | | +6| ____|_ _| | ___ | | | | | | | | | | | +7| | ________|__ ___ | | | | | | | | | +8| | | | ___ | | __| | | | | | | | | | +9| | | | |__ __| |_| __| |___| | | |___| +0| | | |_| _______ |x| |_______|______ | +1| |_____________|_|_| |______ ___ | | +2|____ | _____ | __|__ ___ __| | | | | +3| | | | | | | | | | | ___ | | | | | +4| | | | | | | | | | __| |_____|___| | | +5| | | | | | | | | ___ | __ _____| | +6| | | | | | |_| | |_| ___ | | | ____| +7| |___| | |_____| | ________| | |____ | +8| | | |_____ ___| | | | | | ____| +9| | | |_ | __| | _| | | | | | | |____ | +0|___|____|_________x__|___|___|_______| + + 1234567890123456789012345678901234567890 +" + + + + + + + + + + + +;" HORIZONTAL-MAP without x's " + +; + + + + + + + + + + +;" VERTICAL-MAP without x's " + +; + + + + + + + + + + + +;" WHOLE MAP " +; + + +;"add this info to the browsie" + +; \ No newline at end of file diff --git a/misc.zap b/misc.zap new file mode 100644 index 0000000..4dca369 --- /dev/null +++ b/misc.zap @@ -0,0 +1,511 @@ + + + .FUNCT APRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTC 32 + JUMP ?CND1 +?ELS3: FSET? OBJ,VOWELBIT \?ELS5 + PRINTI " an " + JUMP ?CND1 +?ELS5: PRINTI " a " +?CND1: CALL DPRINT,OBJ + RSTACK + + + .FUNCT TPRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTC 32 + JUMP ?CND1 +?ELS3: PRINTI " the " +?CND1: CALL DPRINT,OBJ + RSTACK + + + .FUNCT ARPRINT,OBJ + CALL APRINT,OBJ + PRINTR "." + + + .FUNCT TRPRINT,OBJ + CALL TPRINT,OBJ + PRINTR "." + + + .FUNCT DPRINT,OBJ + GETP OBJ,P?SDESC + ZERO? STACK /?ELS5 + GETP OBJ,P?SDESC + PRINT STACK + RTRUE +?ELS5: PRINTD OBJ + RTRUE + + + .FUNCT ULTIMATELY-IN?,OBJ,C=0 + ZERO? C \?CND1 + SET 'C,WINNER +?CND1: ZERO? OBJ /FALSE + IN? OBJ,C /TRUE + IN? OBJ,ROOMS /FALSE + LOC OBJ + CALL ULTIMATELY-IN?,STACK,C + RSTACK + + + .FUNCT GO +START:: + +?FCN: SET 'LIT,TRUE-VALUE + SET 'WINNER,PLAYER + GETB 0,56 + EQUAL? STACK,P-PLAYER \?ELS7 + GETB 0,57 + EQUAL? STACK,P-WINNER /?THN4 +?ELS7: GETB 0,56 + EQUAL? STACK,84 \?CND1 + GETB 0,57 + EQUAL? STACK,79 \?CND1 + GETB 0,58 + EQUAL? STACK,77 \?CND1 + GETB 0,59 + EQUAL? STACK,65 \?CND1 + GETB 0,60 + EQUAL? STACK,83 \?CND1 +?THN4: SET 'P-VMERGE,PLAYER +?CND1: CALL QUEUE,I-SANDS-OF-TIME,599 + CALL QUEUE,I-SUNRISE,547 + SET 'P-NMERGE,P-DEBUG + SET 'WHICH-END-IS-UP,RIGHT-END + SET 'CLOSET-FLOOR,FOYER + MOVE PLAYER,SOUTH-JUNCTION + SET 'HERE,SOUTH-JUNCTION + CALL QUEUE,I-NOISE,10 + CALL RESET-THEM + PRINTI "As night falls the black limousine turns off the highway. It has all happened so fast, you think to yourself. Your Aunt passing away without any warning, the funeral this afternoon, and now this unusual stipulation in her will. The limo pulls up to the front of the house. ""This is the end of the line,"" says the attorney, and you step out of the back of the limo. ""Remember, your Aunt Hildegarde's will stated you will inherit her entire fortune -- if you can find the ten 'treasures' in one night."" + +He hands you a photo of Uncle Buddy and a letter, saying, ""Her will instructed that I give you this photo, with the poem, to point you in the right direction. Also this letter, and here, you'll need this."" He gives you a flashlight. ""Meet me at 9 a.m. in the living room with all the 'treasures' and you'll inherit her entire estate,"" he says as the limo pulls away and disappears into the night's darkness." + CRLF + CALL V-VERSION + CRLF + CALL V-LOOK + CALL DO-MAIN-LOOP + JUMP ?FCN + + + .FUNCT RESET-THEM + CALL PCLEAR + SET 'P-HIM-OBJECT,NOT-HERE-OBJECT + SET 'P-HER-OBJECT,NOT-HERE-OBJECT + SET 'P-THEM-OBJECT,NOT-HERE-OBJECT + RETURN P-THEM-OBJECT + + + .FUNCT PCLEAR + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RETURN 2 + + + .FUNCT DO-MAIN-LOOP,X +?PRG1: CALL MAIN-LOOP >X + JUMP ?PRG1 + + + .FUNCT MAIN-LOOP,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,X,?TMP1 + SET 'CNT,0 + SET 'OBJ,FALSE-VALUE + SET 'PTBL,TRUE-VALUE + EQUAL? QCONTEXT-ROOM,HERE /?CND1 + SET 'QCONTEXT,FALSE-VALUE +?CND1: CALL PARSER >P-WON + ZERO? P-WON /?ELS6 + GET P-PRSI,P-MATCHLEN >ICNT + GET P-PRSO,P-MATCHLEN >OCNT + ZERO? P-IT-OBJECT /?CND7 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CND7 + SET 'TMP,FALSE-VALUE +?PRG12: IGRTR? 'CNT,ICNT /?REP13 + GET P-PRSI,CNT + EQUAL? STACK,IT \?PRG12 + PUT P-PRSI,CNT,P-IT-OBJECT + SET 'TMP,TRUE-VALUE +?REP13: ZERO? TMP \?CND22 + SET 'CNT,0 +?PRG25: IGRTR? 'CNT,OCNT /?CND22 + GET P-PRSO,CNT + EQUAL? STACK,IT \?PRG25 + PUT P-PRSO,CNT,P-IT-OBJECT +?CND22: SET 'CNT,0 +?CND7: ZERO? OCNT \?ELS39 + PUSH OCNT + JUMP ?CND35 +?ELS39: GRTR? OCNT,1 \?ELS41 + SET 'TBL,P-PRSO + ZERO? ICNT \?ELS44 + SET 'OBJ,FALSE-VALUE + JUMP ?CND42 +?ELS44: GET P-PRSI,1 >OBJ +?CND42: PUSH OCNT + JUMP ?CND35 +?ELS41: GRTR? ICNT,1 \?ELS48 + SET 'PTBL,FALSE-VALUE + SET 'TBL,P-PRSI + GET P-PRSO,1 >OBJ + PUSH ICNT + JUMP ?CND35 +?ELS48: PUSH 1 +?CND35: SET 'NUM,STACK + ZERO? OBJ \?CND51 + EQUAL? ICNT,1 \?CND51 + GET P-PRSI,1 >OBJ +?CND51: EQUAL? PRSA,V?WALK \?ELS58 + CALL PERFORM,PRSA,PRSO >V + JUMP ?CND56 +?ELS58: ZERO? NUM \?ELS60 + GETB P-SYNTAX,P-SBITS + BAND STACK,P-SONUMS + ZERO? STACK \?ELS63 + CALL PERFORM,PRSA >V + SET 'PRSO,FALSE-VALUE + JUMP ?CND56 +?ELS63: ZERO? LIT \?ELS65 + CALL PCLEAR + CALL TOO-DARK + JUMP ?CND56 +?ELS65: CALL PCLEAR + PRINTI "[There isn't anything to " + GET P-ITBL,P-VERBN >TMP + EQUAL? PRSA,V?TELL \?ELS70 + PRINTI "talk to" + JUMP ?CND68 +?ELS70: ZERO? P-MERGED \?THN73 + ZERO? P-OFLAG /?ELS72 +?THN73: GET TMP,0 + PRINTB STACK + JUMP ?CND68 +?ELS72: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK >V +?CND68: PRINTI "!]" + CRLF + SET 'V,FALSE-VALUE + JUMP ?CND56 +?ELS60: SET 'X,0 + SET 'TMP,FALSE-VALUE +?PRG79: IGRTR? 'CNT,NUM \?ELS83 + GRTR? X,0 \?ELS86 + PRINTI "[The " + EQUAL? X,NUM /?CND87 + PRINTI "other " +?CND87: PRINTI "object" + EQUAL? X,1 /?CND90 + PRINTC 115 +?CND90: PRINTI " that you mentioned " + EQUAL? X,1 /?ELS95 + PRINTI "are" + JUMP ?CND93 +?ELS95: PRINTI "is" +?CND93: PRINTI "n't here!]" + CRLF + JUMP ?CND56 +?ELS86: ZERO? TMP \?CND56 + CALL REFERRING + JUMP ?CND56 +?ELS83: ZERO? PTBL /?ELS104 + GET P-PRSO,CNT >OBJ1 + JUMP ?CND102 +?ELS104: GET P-PRSI,CNT >OBJ1 +?CND102: GRTR? NUM,1 /?THN111 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALL,W?EVERYTHING \?CND108 +?THN111: EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS115 + INC 'X + JUMP ?PRG79 +?ELS115: EQUAL? P-GETFLAGS,P-ALL \?ELS117 + CALL DONT-ALL?,OBJ1,OBJ + ZERO? STACK \?PRG79 +?ELS117: CALL ACCESSIBLE?,OBJ1 + ZERO? STACK /?PRG79 + EQUAL? OBJ1,PLAYER /?PRG79 + EQUAL? OBJ1,IT \?ELS128 + FSET? P-IT-OBJECT,NARTICLEBIT /?CND129 + PRINTI "The " +?CND129: CALL DPRINT,P-IT-OBJECT + JUMP ?CND126 +?ELS128: FSET? OBJ1,NARTICLEBIT /?CND134 + PRINTI "The " +?CND134: CALL DPRINT,OBJ1 +?CND126: PRINTI ": " +?CND108: SET 'TMP,TRUE-VALUE + ZERO? PTBL /?ELS141 + PUSH OBJ1 + JUMP ?CND137 +?ELS141: PUSH OBJ +?CND137: CALL QCONTEXT-CHECK,STACK >V + ZERO? PTBL /?ELS149 + PUSH OBJ1 + JUMP ?CND145 +?ELS149: PUSH OBJ +?CND145: SET 'PRSO,STACK + ZERO? PTBL /?ELS157 + PUSH OBJ + JUMP ?CND153 +?ELS157: PUSH OBJ1 +?CND153: SET 'PRSI,STACK + CALL PERFORM,PRSA,PRSO,PRSI >V + EQUAL? V,M-FATAL \?PRG79 +?CND56: EQUAL? V,M-FATAL \?CND4 + SET 'P-CONT,FALSE-VALUE + JUMP ?CND4 +?ELS6: SET 'P-CONT,FALSE-VALUE +?CND4: ZERO? P-WON /?CND169 + CALL GAME-VERB? + ZERO? STACK \?CND169 + CALL CLOCKER >V +?CND169: SET 'PRSA,FALSE-VALUE + SET 'PRSO,FALSE-VALUE + SET 'PRSI,FALSE-VALUE + RETURN PRSI + + + .FUNCT DONT-ALL?,O,I,L + LOC O >L + EQUAL? O,I /TRUE + EQUAL? PRSA,V?TAKE \?ELS7 + ZERO? I /?ELS12 + CALL ULTIMATELY-IN?,O,I + ZERO? STACK /TRUE +?ELS12: ZERO? I \?ELS16 + CALL ULTIMATELY-IN?,O + ZERO? STACK \TRUE +?ELS16: FSET? O,TAKEBIT /?ELS20 + FSET? O,TRYTAKEBIT \TRUE +?ELS20: ZERO? I /?ELS24 + EQUAL? L,I \TRUE + CALL SEE-INSIDE?,I + ZERO? STACK /TRUE + RFALSE +?ELS24: CALL META-LOC,O + EQUAL? STACK,PLAYER /FALSE + EQUAL? L,HERE /FALSE + FSET? L,SURFACEBIT /FALSE + FSET? L,ACTORBIT \TRUE + RFALSE +?ELS7: EQUAL? PRSA,V?PUT-ON,V?PUT,V?DROP /?THN47 + EQUAL? PRSA,V?THROW \FALSE +?THN47: FSET? O,TAKEBIT \TRUE + EQUAL? L,PLAYER,WINNER \TRUE + RFALSE + + + .FUNCT GAME-VERB?,V=0 + ZERO? V \?CND1 + SET 'V,PRSA +?CND1: EQUAL? V,V?BRIEF,V?SCORE,V?VERBOSE /TRUE + EQUAL? V,V?QUIT,V?RESTART,V?RESTORE /TRUE + EQUAL? V,V?SAVE,V?SCRIPT,V?SUPER-BRIEF /TRUE + EQUAL? V,V?TELL,V?UNSCRIPT,V?VERSION /TRUE + EQUAL? V,V?TIME \FALSE + RTRUE + + + .FUNCT QCONTEXT-CHECK,PRSO,OTHER,WHO=0,N=0 + EQUAL? PRSA,V?HELP /?THN6 + EQUAL? PRSA,V?TELL \FALSE + EQUAL? PRSO,PLAYER \FALSE +?THN6: FIRST? HERE >OTHER /?KLU31 +?KLU31: +?PRG10: ZERO? OTHER /?REP11 + FSET? OTHER,ACTORBIT \?CND12 + EQUAL? OTHER,PLAYER /?CND12 + INC 'N + SET 'WHO,OTHER +?CND12: NEXT? OTHER >OTHER /?PRG10 + JUMP ?PRG10 +?REP11: EQUAL? 1,N \?CND19 + ZERO? QCONTEXT \?CND19 + CALL SAID-TO,WHO +?CND19: CALL QCONTEXT-GOOD? + ZERO? STACK /FALSE + EQUAL? WINNER,PLAYER \FALSE + SET 'WINNER,QCONTEXT + CALL SPOKEN-TO,QCONTEXT + RSTACK + + + .FUNCT SAID-TO,WHO + SET 'QCONTEXT,WHO + LOC WHO >QCONTEXT-ROOM + RETURN QCONTEXT-ROOM + + + .FUNCT SPOKEN-TO,WHO + CALL PCLEAR + PRINTI "[spoken to" + CALL TPRINT,WHO + PRINTR "]" + + + .FUNCT QCONTEXT-GOOD? + ZERO? QCONTEXT /FALSE + FSET? QCONTEXT,ACTORBIT \FALSE + EQUAL? HERE,QCONTEXT-ROOM \FALSE + CALL META-LOC,QCONTEXT + EQUAL? HERE,STACK /TRUE + RFALSE + + + .FUNCT ACCESSIBLE?,OBJ + FSET? OBJ,INVISIBLE /FALSE + CALL META-LOC,OBJ + EQUAL? STACK,WINNER,HERE,GLOBAL-OBJECTS /TRUE + CALL VISIBLE?,OBJ + ZERO? STACK /FALSE + RTRUE + + + .FUNCT VISIBLE?,OBJ,L + LOC OBJ >L + ZERO? L /FALSE + FSET? OBJ,INVISIBLE /FALSE + EQUAL? L,GLOBAL-OBJECTS /FALSE + EQUAL? L,PLAYER,HERE,WINNER /TRUE + EQUAL? L,LOCAL-GLOBALS \?ELS13 + CALL GLOBAL-IN?,OBJ,HERE + ZERO? STACK \TRUE +?ELS13: CALL SEE-INSIDE?,L + ZERO? STACK /FALSE + CALL VISIBLE?,L + ZERO? STACK /FALSE + RTRUE + + + .FUNCT SEE-INSIDE?,CONTAINER + ZERO? P-MOBY-FLAG \TRUE + FSET? CONTAINER,SURFACEBIT /TRUE + FSET? CONTAINER,CONTBIT \?ELS10 + FSET? CONTAINER,OPENBIT /TRUE + FSET? CONTAINER,TRANSBIT \FALSE + RTRUE +?ELS10: FSET? CONTAINER,ACTORBIT \FALSE + EQUAL? CONTAINER,PLAYER /FALSE + RTRUE + + + .FUNCT META-LOC,OBJ +?PRG1: ZERO? OBJ /FALSE + IN? OBJ,GLOBAL-OBJECTS \?ELS7 + RETURN GLOBAL-OBJECTS +?ELS7: IN? OBJ,ROOMS \?ELS9 + RETURN OBJ +?ELS9: LOC OBJ >OBJ + JUMP ?PRG1 + + + .FUNCT DEQUEUE,RTN + CALL QUEUED?,RTN >RTN + ZERO? RTN /FALSE + PUT RTN,C-RTN,0 + RTRUE + + + .FUNCT QUEUE,RTN,TICK,C,E,INT=0 + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E \?ELS5 + ZERO? INT /?ELS8 + SET 'C,INT + JUMP ?CND6 +?ELS8: SUB C-INTS,C-INTLEN >C-INTS + ADD C-TABLE,C-INTS >INT +?CND6: PUT INT,C-RTN,RTN + JUMP ?REP2 +?ELS5: GET C,C-RTN + EQUAL? STACK,RTN \?ELS13 + SET 'INT,C + JUMP ?REP2 +?ELS13: GET C,C-RTN + ZERO? STACK \?CND3 + SET 'INT,C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 +?REP2: GRTR? INT,CLOCK-HAND \?CND16 + ADD TICK,3 + SUB 0,STACK >TICK +?CND16: PUT INT,C-TICK,TICK + RETURN INT + + + .FUNCT QUEUED?,RTN,C,E + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E /FALSE + GET C,C-RTN + EQUAL? STACK,RTN \?CND3 + GET C,C-TICK + ZERO? STACK /FALSE + RETURN C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 + + + .FUNCT CLOCKER,E,TICK,RTN,FLG=0,Q?=0,OWINNER + ZERO? CLOCK-WAIT /?CND1 + SET 'CLOCK-WAIT,FALSE-VALUE + RFALSE +?CND1: ADD C-TABLE,C-INTS >CLOCK-HAND + ADD C-TABLE,C-TABLELEN >E + SET 'OWINNER,WINNER + SET 'WINNER,PLAYER +?PRG5: EQUAL? CLOCK-HAND,E \?ELS9 + INC 'MOVES + SET 'WINNER,OWINNER + RETURN FLG +?ELS9: GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND7 + GET CLOCK-HAND,C-TICK >TICK + LESS? TICK,-1 \?ELS14 + SUB 0,TICK + SUB STACK,3 + PUT CLOCK-HAND,C-TICK,STACK + SET 'Q?,CLOCK-HAND + JUMP ?CND7 +?ELS14: ZERO? TICK /?CND7 + GRTR? TICK,0 \?CND17 + DEC 'TICK + PUT CLOCK-HAND,C-TICK,TICK +?CND17: ZERO? TICK /?CND20 + SET 'Q?,CLOCK-HAND +?CND20: GRTR? TICK,0 /?CND7 + GET CLOCK-HAND,C-RTN >RTN + ZERO? TICK \?CND26 + PUT CLOCK-HAND,C-RTN,0 +?CND26: CALL RTN + ZERO? STACK /?CND29 + SET 'FLG,TRUE-VALUE +?CND29: ZERO? Q? \?CND7 + GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND7 + SET 'Q?,TRUE-VALUE +?CND7: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND + ZERO? Q? \?PRG5 + ADD C-INTS,C-INTLEN >C-INTS + JUMP ?PRG5 + + + .FUNCT FIXED-FONT-ON + GET 0,8 + BOR STACK,2 + PUT 0,8,STACK + RTRUE + + + .FUNCT FIXED-FONT-OFF + GET 0,8 + BAND STACK,-3 + PUT 0,8,STACK + RTRUE + + .ENDI diff --git a/misc.zil b/misc.zil new file mode 100644 index 0000000..9d4357c --- /dev/null +++ b/misc.zil @@ -0,0 +1,934 @@ +"MISC for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + + + + + + + + + D * + A * + T * + AR * + TR * + N * + C * > + +; ) + (> + >)> + + > + "CRLF"> + <=? .P "CR">> + >) + ( + ) + (ELSE + > + > + > + "DESC"> + <=? .P "D"> + <=? .P "OBJ"> + <=? .P "O">> + >) + (<=? > "A"> + >) + (<=? > "T"> + >) + (<=? > "AR"> + >) + (<=? > "TR"> + >) + ( + <=? .P "N">> + >) + ( + <=? .P "CHR"> + <=? .P "C">> + >) + (ELSE + >>)>)>) + ( + >) + ( + >) + (ELSE )>>>>> + +> + +> + +> + +> + + + ) + ( ) + (ELSE )>>)> + )> + > + + + >>) + (ELSE .ATM)> GVAL>) + (ELSE .ATM)> + !.L)> + > + 3> )>> + !.L>)>>> + >> + +> + +> + +> + + + ) + (
) + (ELSE )>>)> + > + > + .ATM) + (ELSE )>> + !.O)>>> + + >> + +>>> + +; ) + (ELSE >)>> + + + >> + + ) + (T .NUM)>> + +"a bunch of plus-mode stuff" + ,PLUS-MODE> + ) + (T )>> + + ,PLUS-MODE> + ) + (T )>> + + ,PLUS-MODE> + ) + (T )>> + + ,PLUS-MODE> + 2> 1>) + (T 1>)>> + +; ,PLUS-MODE> + ) + (T + )>> + + + ) + ( + ) + (T + )> + > + + + ) + (T + )> + > + + + > + + + > + + + >) + (T + )>> + + 3> + )> + + > NOUN>)> + + > ADJECTIVE>)> + <3 .OBJ>>> + .V>> + +)) ;"formerly HELD?" + + )> + + ) + ( + ) + ( + ) + ;( + ) + (T + .C>)>> + +"*** ZCODE STARTS HERE ***" + +"NOTE: This object MUST be the FIRST one defined (for MOBY-FIND)!" + + + + + + ,PLUS-MODE> + ' + >) + (T ')> + + ,P-PLAYER> + ,P-WINNER>> + 84> + 79> + 77> + 65> + 83>>> + )> + % + ') ;"ZIP" + (T + ')> ;"ZIL" +;"setting globals here because of compilier weirdness" + ; + ; + % + ') ;"ZIP" + (T + ')> ;"ZIL" + + + + ; ;"a piece of something, what I don't know" + + + ; + ; + + + ; + + ; + + + + + > + + + + + > + +> + > + > + +; ;"so ZIL won't get confused between word GO and routine GO" + +>>> + + + > + + > + >)> + > + > + > + > + > + > .ICNT> + ) + (T + ,IT> + + + )>)>> + + + > .OCNT> + ) + (T + ,IT> + + )>)>>)> + )> + + .OCNT) + ( + + + >) + (T + >)> + .OCNT) + ( + > + + > + .ICNT) + (T + 1)>> + + <1? .ICNT>> + >)> + + >) + ( + ,P-SONUMS>> + > + >) + ( + + ) + (T + + + > + + ) + ( + >) + (T + + >>)> + + >)>) + ; ( > + >) + (T + + ;"> + )>" + > + > .NUM> + + + > + )> + + > + )> + + > + ) + (T )> + ) + ( + )> + ) + (T + >) + (T + >)> + + 0> ,W?ALL ,W?EVERYTHING>> + + > + ) + + ( + > + ) + + ; ( + > + ) + + ; ( + + ,WINNER ,HERE>> + ,SURFACEBIT>>> + + >>>> + ) + ; ( + + > + >> + ) + + (> + ) + ( + ) + (T + + > + )> + ) + (T + > + )> + )> + )>)> + + >> + > + > + > + + )>)>>)> + ;> + + T) + (T + ,P?ACTION> + ,M-END>>)>)> + ; + T) + ( + T) + (,P-OFLAG + T) + (T + + + )> + + >)>) + (T + >)> + + T) + ;( + > + T) + (T + >)>)> + > + > + >> + +> + + ) + ( + >> + ) + ( > + ) + (> + >> + ) + (.I + > + ) + ( + ) + (T + )>) + ( ,PLAYER> + ) + ( + ) + ( + ) + ( + ) + (T + )>) + ( + > + ) + ( + ) + ;( ,PLAYER ,WINNER>> + ) + (T + )>) + (T + )>> + +; > + > + ) + ( .RTN> + > ) + (T )>)> + >>> + +; > + > + ) + ( .RTN> + > + >> + ) + (T )>)> + >>> + +)) + + )> + + + + + > + ) + (T + )>> + +) (N 0)) + + + <==? .PRSO ,PLAYER>>> ;"? more?" + > + + ) + ( + ; > + >> + > + )> + >> + + > + )> + + <==? ,WINNER ,PLAYER>> ;"? more?" + ; + + ; + )>)>> + + + >> + + + > + +> + + ; > + <==? ,HERE ,QCONTEXT-ROOM> + <==? ,HERE >> + )>> + + + ) + ( ,WINNER ,HERE ,GLOBAL-OBJECTS> + ) + ( + ) + (T + )>> + +> + + ) + ( + ) + ( + ) + ( + ) + ( + > + ) + ( + > + ) + (T + )>> + +) + ( + ) + ( + + > + ) + (T + )>) + ( + >> + ) + (T + )>> + + + ) + ( + ) + ( + ) + ;( + ) ;"PDL SAID NO WAY" + (T + >)>>> + + +;"------ New Clock Stuff from Spellbreaker ------" + +;"former CLOCK.ZIL stuff" + +> + + + ') + (T + ')>> + + + +;> + + ;"length of an interrupt entry" + ;"offset of routine name" + ;"offset of count" + +> + )>> + +"this version of QUEUE automatically enables as well" + +)) + > + > + + ) + (ELSE + ; + )>> + > + ; + )>> + >)> + + ) + ( .RTN> + + ) + (> + )> + >> + + ') + (ELSE + ' >)> + >>)> + + .INT> + +> + > + ) + ( .RTN> + > + ) + (T )>)> + >>> + +> + +) (Q? <>) OWINNER) + > )> + > + > + + + + > + + ) + (>> + > + + 3>> + ) + (> + + > + )> + > + )> + > + + ') + (ELSE + ' + 1>>)>> + + )> + ) + (ELSE + ')> + )> + + >>> + )>)>)>)> + > + + >)>>> + + + +"-------- Old clocker stuff ------" + +; + +;"already semied" ; > + +; + ') + (T + ')>> + +; +; + +; +; +; +; + +;"already semied" ; ) + > ,C-TICK .TICK> + .CINT> + +;) + > ,C-TICK .TICK> + .CINT> + +;) E C INT) + > + > + + > + >> + > + + ) + ( .RTN> )> + >>> + +;> + +;)) + #DECL ((C E) (TICK) FIX (FLG) ) + > + )> + >> + > + + > + + + > + + )>)> + ) + (>> + > + ) + (T + > + > + >> + )>)>)> + >>> + +; > + > + >>> + ) + (T + )>> + +; + + > + + )>>> + + + ,PLUS-MODE> 2) (T 1)>> + ,PLUS-MODE> 3) (T 2)>> + ,PLUS-MODE> 4) (T 3)>> + ,PLUS-MODE> 5) (T 4)>> + ,PLUS-MODE> 6) (T 5)>> + + + + ,PLUS-MODE> 4) (T 1)>> + + + ,PLUS-MODE> 2) (T 1)>> + + 2>>> + + -3>>> + + ;"Char D" + ;"Char A" + + ;"Char T" + ;"Char O" + ;"Char M" + ;"Char A" + ;"Char S" + + + +>> \ No newline at end of file diff --git a/outside.zap b/outside.zap new file mode 100644 index 0000000..b6649ec --- /dev/null +++ b/outside.zap @@ -0,0 +1,775 @@ + + + .FUNCT HOUSE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It's dark, but you can make out a stately two-story home with chimneys near the east and west ends of the house. Hardly anything has changed since you were last here several years ago, though you always remember the house as full of life, and now it is deserted and silent." +?ELS5: EQUAL? PRSA,V?ENTER \FALSE + CALL DO-WALK,P?IN + RSTACK + + + .FUNCT SOUTH-JUNCTION-F,RARG + EQUAL? RARG,M-ENTER \FALSE + INC 'SOUTH-JUNCTION-VISITS + RETURN SOUTH-JUNCTION-VISITS + + + .FUNCT TO-FRONT-PORCH + FSET? SOUTH-JUNCTION,BLACK-CAT-BIT \?ELS5 + PRINTI "As you walk toward the house, a large black cat scurries across the path, heading toward Johnny Carson's house." + CRLF + CRLF + FCLEAR SOUTH-JUNCTION,BLACK-CAT-BIT + RETURN FRONT-PORCH +?ELS5: RETURN FRONT-PORCH + + + .FUNCT COMPASS-ROSE-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "The compass rose encircles the base of the statue." + + + .FUNCT BAZOOKA-F + EQUAL? PRSA,V?TURN,V?MOVE,V?PUSH \?ELS5 + CALL PERFORM,PRSA,BUCK,PRSI + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTI "The bazooka is pointing to the " + CALL SAY-BUCK-DIR + PRINTR "." +?ELS7: EQUAL? PRSA,V?SHOOT \FALSE + PRINTR "It's a stone gun, you geek." + + + .FUNCT TO-&-FROM-SOUTH-JUNCTION,NEW-ROOM + PRINTI "You follow the stone walkway as it turns " + EQUAL? HERE,SOUTHEAST-JUNCTION \?ELS3 + SET 'NEW-ROOM,SOUTH-JUNCTION + PRINTI "west" + JUMP ?CND1 +?ELS3: EQUAL? HERE,SOUTHWEST-JUNCTION \?ELS5 + SET 'NEW-ROOM,SOUTH-JUNCTION + PRINTI "east" + JUMP ?CND1 +?ELS5: PRINTI "north" + EQUAL? PRSO,P?WEST \?ELS10 + SET 'NEW-ROOM,SOUTHWEST-JUNCTION + JUMP ?CND1 +?ELS10: SET 'NEW-ROOM,SOUTHEAST-JUNCTION +?CND1: PRINTI " around the corner of the house, arriving at..." + CRLF + CRLF + RETURN NEW-ROOM + + + .FUNCT TO-&-FROM-TOP-LANDING + FSET? NORTHEAST-JUNCTION,EVERYBIT \?ELS3 + FCLEAR NORTHEAST-JUNCTION,EVERYBIT + PRINTI "As you walk along the path you hear footsteps running south along the stone walkway." + CRLF + CRLF + JUMP ?CND1 +?ELS3: PRINTI "You walk a short distance along the grass path, arriving at..." + CRLF + CRLF +?CND1: EQUAL? HERE,NORTHEAST-JUNCTION \?ELS10 + RETURN TOP-LANDING +?ELS10: EQUAL? HERE,TOP-LANDING \FALSE + RETURN NORTHEAST-JUNCTION + + + .FUNCT PATIO-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a large fieldstone patio spanning the entire width of the back of the house. In the daytime you can look out onto Aunt Hildegarde's beautiful garden, said to be the envy of the Malibu colony. This is where Uncle Buddy and Aunt Hildegarde would often entertain. + +Standing here you remember the time at one of their parties when you swiped one of Uncle Buddy's big Hollywood cigars and smoked it, then got sick on a rose bush in the garden. You snicker a little bit thinking about that poor rose bush now and the goofy things you did as a child. To the north a stone pathway leads to the garden. Steps lead down off to the east and west, and there is a" + FSET? PATIO-DOOR,OPENBIT \?ELS8 + PRINTI "n open" + JUMP ?CND6 +?ELS8: PRINTI " closed" +?CND6: PRINTI " door to the south." + RTRUE + + + .FUNCT GARDEN-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "This garden was Aunt Hildegarde's pride and joy. " + GRTR? MOVES,535 /?ELS8 + PRINTI "By the moonlight you can see the outline of" + JUMP ?CND6 +?ELS8: PRINTI "You can see" +?CND6: PRINTR " dozens of fancy varieties of flowers and shrubs. Several small trees dot the garden, giving shade during the day to the more delicate blossoms. Stone walkways lead through the garden. A stone wall surrounds the garden with entrances north and south." +?ELS5: EQUAL? PRSA,V?ENTER \FALSE + PRINTR "You can only enter the garden from the north or south of the garden." + + + .FUNCT GARDEN-WALLS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "The stone wall surrounds the entire garden, with entrances to the north and south of the garden." +?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-ON,V?CLIMB /?THN8 + EQUAL? PRSA,V?CLIMB-OVER \FALSE +?THN8: PRINTR "Aunt Hildegarde would paddle your fanny if she saw you do that." + + + .FUNCT ROSE-BUSH-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "You remember this rose bush from many summers ago. It's the one you got sick on after smoking one of Uncle Buddy's cigars." +?ELS5: EQUAL? PRSA,V?SMELL \?ELS7 + PRINTR "No doubt the fragrance would be sweeter had you not thrown-up on it many years ago." +?ELS7: EQUAL? PRSA,V?WATER \FALSE + PRINTR "Driven by guilt, you splash some water on the bush. It looks better already." + + + .FUNCT FLORAL-PSEUDO + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It's the lovely flora you would expect in Aunt Hildegarde's reknowned garden." +?ELS5: EQUAL? PRSA,V?SMELL \FALSE + PRINTR "Hmmm. What a lovely scent." + + + .FUNCT POND-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,POND \?ELS5 + PRINTI "You drop" + CALL TPRINT,PRSO + PRINTI " in" + CALL TPRINT,POND + GETP PRSO,P?SIZE + GRTR? STACK,5 \?CND8 + PRINTI " with a splash" +?CND8: PRINTC 46 + MOVE PRSO,POND + CALL ALL-WET,PRSO + CALL BLOW-OUT-ALL-IN,PRSO,STR?189 + EQUAL? PRSO,BUCKET \?CND11 + FIRST? PRSO \?CND11 + CALL ROB,BUCKET,POND + PRINTI " The contents of the bucket sink to the bottom of the shallow pond." +?CND11: EQUAL? PRSO,FLASHLIGHT \?CND16 + FSET? FLASHLIGHT,ONBIT \?CND16 + FCLEAR FLASHLIGHT,ONBIT + FSET FLASHLIGHT,WETBIT + PRINTI " The flashlight goes out." +?CND16: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?ENTER \?ELS22 + PRINTR "How soon they forget. Don't you remember the summer Aunt Hildegarde caught you wading in the pond and paddled your behind?" +?ELS22: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT BLOW-OUT-ALL-IN,OBJ,STR=0 + ZERO? STR \?CND1 + SET 'STR,STR?190 +?CND1: +?PRG4: ZERO? OBJ /TRUE + FSET? OBJ,FLAMEBIT \?CND11 + FCLEAR OBJ,FLAMEBIT + FCLEAR OBJ,ONBIT + PRINTI " The " + CALL DPRINT,OBJ + PRINTI " goes out" + PRINT STR + PRINTC 46 + EQUAL? OBJ,RED-CANDLE \?ELS16 + CALL STOP-RED-BURNING + JUMP ?CND11 +?ELS16: EQUAL? OBJ,WHITE-CANDLE \?ELS18 + CALL STOP-WHITE-BURNING + JUMP ?CND11 +?ELS18: EQUAL? OBJ,BLUE-CANDLE \?ELS20 + CALL STOP-BLUE-BURNING + JUMP ?CND11 +?ELS20: EQUAL? OBJ,GREEN-MATCH,RED-MATCH \?CND11 + CALL DEQUEUE,I-MATCH-BURN +?CND11: FIRST? OBJ \?CND23 + FIRST? OBJ /?KLU26 +?KLU26: CALL BLOW-OUT-ALL-IN,STACK,STR +?CND23: NEXT? OBJ >OBJ /?PRG4 + JUMP ?PRG4 + + + .FUNCT TO-&-FROM-CANNON,NEW-ROOM + PRINTI "You follow the walkway as it turns " + EQUAL? HERE,NORTHWEST-JUNCTION \?ELS3 + SET 'NEW-ROOM,CANNON-EMPLACEMENT + PRINTI "east" + JUMP ?CND1 +?ELS3: EQUAL? HERE,NORTHEAST-JUNCTION \?ELS5 + SET 'NEW-ROOM,CANNON-EMPLACEMENT + PRINTI "west" + JUMP ?CND1 +?ELS5: PRINTI "south" + EQUAL? PRSO,P?WEST \?ELS10 + SET 'NEW-ROOM,NORTHWEST-JUNCTION + JUMP ?CND1 +?ELS10: SET 'NEW-ROOM,NORTHEAST-JUNCTION +?CND1: PRINTI " around the hedge leading to..." + CRLF + CRLF + RETURN NEW-ROOM + + + .FUNCT CANNON-EMPLACEMENT-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a cannon emplacement complete with a Civil War-style cannon and a neatly stacked pyramid of cannon balls. During the day this area affords a spectacular view of the coastline. Stone walkways lead east and west, and a steep path leads down." + RTRUE + + + .FUNCT TO-CLIFF + FSET? SKIS,WORNBIT \?ELS5 + CALL JIGS-UP,STR?192 + RSTACK +?ELS5: PRINTI "You attempt to walk down, but end up sliding most of the way to a cliff below." + CRLF + CRLF + RETURN CLIFF + + + .FUNCT CLIFF-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This cliff affords the same spectacular view as from the cannon emplacement above. Far below you and stretching east, are the white sands of a beach" + GRTR? MOVES,535 /?CND6 + PRINTI ", illuminated by the moon's glow" +?CND6: PRINTI ". You can hear the faint sound of waves lapping at the shore. Nearby in the ground is a" + FSET? HATCH,OPENBIT \?ELS13 + PRINTI "n open hatch, forming a hole which leads down." + RTRUE +?ELS13: PRINTI " closed hatch." + RTRUE + + + .FUNCT CLIFF-PSEUDO + EQUAL? PRSA,V?LEAP \FALSE + CALL JIGS-UP,STR?193 + RSTACK + + + .FUNCT TO-CANNON-EMPLACEMENT + PRINTI "You slip and slide in the loose rock, " + CALL ULTIMATELY-IN?,LADDER + ZERO? STACK /?ELS5 + PRINTI "unable to climb up the cliff because of the weight of the ladder." + CRLF + RFALSE +?ELS5: PRINTI "but manage to make your way up to the cannon emplacement." + CRLF + CRLF + RETURN CANNON-EMPLACEMENT + + + .FUNCT TO-&-FROM-BOMB-SHELTER + FSET? HATCH,OPENBIT /?ELS5 + PRINT YOU-CANT + PRINTI "go through the closed hatch." + CRLF + RFALSE +?ELS5: FSET? HATCH,OPENBIT \?ELS7 + FSET? SKIS,WORNBIT \?ELS7 + PRINTI "You can't fit through the opening wearing the skis." + CRLF + RFALSE +?ELS7: FSET? LADDER,HUNG-BIT \?ELS11 + EQUAL? HERE,BOMB-SHELTER \?ELS16 + PRINTI "You climb up the ladder to the cliff." + CRLF + CRLF + MOVE LADDER,CLIFF + RETURN CLIFF +?ELS16: PRINTI "You climb down the ladder to the bomb shelter." + CRLF + CRLF + MOVE LADDER,BOMB-SHELTER + RETURN BOMB-SHELTER +?ELS11: EQUAL? HERE,BOMB-SHELTER \?ELS25 + PRINTI "You'll have to figure that out for yourself." + CRLF + RFALSE +?ELS25: PRINTI "You drop into the hole, managing to land on your feet." + CRLF + CRLF + RETURN BOMB-SHELTER + + + .FUNCT LADDER-F + EQUAL? HERE,CLIFF \?ELS5 + FSET? LADDER,HUNG-BIT \?ELS5 + FSET? HATCH,OPENBIT /?ELS5 + CALL CANT-SEE-ANY,LADDER + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + PRINTR "This straight ladder is made of heavy-duty steel bars. It resembles a ladder you might find on a fire escape." +?ELS9: EQUAL? PRSA,V?UNTIE,V?TAKE \?ELS11 + FSET? LADDER,HUNG-BIT \?ELS11 + EQUAL? HERE,CLIFF \?ELS18 + PRINTR "It's too heavy to lift out of the hole." +?ELS18: CALL ITAKE + ZERO? STACK /TRUE + FCLEAR LADDER,HUNG-BIT + PRINTR "Taken." +?ELS11: EQUAL? PRSA,V?HANG-UP \?ELS29 + EQUAL? HERE,BOMB-SHELTER \?ELS29 + ZERO? PRSI \?ELS29 + CALL PERFORM,V?HANG-UP,LADDER,HOOKS + RTRUE +?ELS29: EQUAL? PRSA,V?CLIMB-DOWN,V?CLIMB,V?CLIMB-UP \FALSE + FSET? LADDER,HUNG-BIT \?ELS38 + EQUAL? HERE,CLIFF \?ELS43 + EQUAL? PRSA,V?CLIMB-UP \?ELS48 + PRINTR "The ladder only leads down, through the open hatch." +?ELS48: CALL DO-WALK,P?DOWN + RSTACK +?ELS43: EQUAL? PRSA,V?CLIMB-DOWN \?ELS57 + PRINTR "The ladder only leads up, through the open hatch." +?ELS57: CALL DO-WALK,P?UP + RSTACK +?ELS38: CALL ULTIMATELY-IN?,LADDER + ZERO? STACK /?ELS61 + PRINTR "You're holding the ladder!" +?ELS61: PRINTR "You can't climb a ladder that's lying down." + + + .FUNCT HOOKS-F + EQUAL? PRSA,V?TIE,V?PUT-ON,V?HANG-UP \FALSE + EQUAL? PRSO,LADDER \?ELS10 + PRINTI "You hang the ladder from" + CALL TRPRINT,HOOKS + MOVE LADDER,HERE + FSET LADDER,NDESCBIT + FSET LADDER,HUNG-BIT + RTRUE +?ELS10: PRINTR "You can't reach the hooks." + + + .FUNCT HATCH-HOLE-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5 + PRINTI "The hole is about the size of a manhole" + EQUAL? HERE,CLIFF \?CND6 + PRINTI ". The " + CALL DPRINT,HATCH-HOLE + PRINTI " descends down into " + CALL LIT?,BOMB-SHELTER + ZERO? STACK /?ELS11 + PRINTI "the bomb shelter" + JUMP ?CND9 +?ELS11: PRINTI "darkness" +?CND9: FSET? LADDER,HUNG-BIT \?CND6 + PRINTI ". A " + CALL DPRINT,LADDER + PRINTI " in the hole leads down" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?ENTER \?ELS18 + EQUAL? HERE,CLIFF \?ELS23 + CALL DO-WALK,P?DOWN + RSTACK +?ELS23: PRINTR "You can't reach it." +?ELS18: EQUAL? PRSA,V?PUT \FALSE + EQUAL? HERE,CLIFF \FALSE + EQUAL? PRSI,HATCH-HOLE \FALSE + PRINTI "You drop" + CALL TPRINT,PRSO + PRINTI " in" + CALL TPRINT,HATCH-HOLE + PRINTI " and a second later hear it hit the ground." + CRLF + EQUAL? PRSO,BLUE-CANDLE,WHITE-CANDLE,RED-CANDLE \?CND30 + FSET? PRSO,FLAMEBIT \?CND30 + CALL BLOW-OUT-CANDLE,PRSO +?CND30: EQUAL? PRSO,FINCH \?ELS41 + FSET? FINCH,BROKEN-BIT \?THN38 +?ELS41: CALL ULTIMATELY-IN?,FINCH,PRSO + ZERO? STACK /?CND35 + FSET? FINCH,BROKEN-BIT /?CND35 +?THN38: CALL BREAK-FINCH,TRUE-VALUE +?CND35: MOVE PRSO,BOMB-SHELTER + RTRUE + + + .FUNCT PILE-OF-BALLS-F + EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5 + CALL CANT-OPEN-CLOSE + RSTACK +?ELS5: EQUAL? PRSA,V?TAKE,V?EXAMINE \?ELS7 + IN? CANNON-BALL,PILE-OF-BALLS /?THN13 + FIRST? PILE-OF-BALLS /FALSE +?THN13: PRINTI "The pile of cannon balls appears to be strictly ornamental. All of the balls are welded together" + IN? CANNON-BALL,PILE-OF-BALLS \?CND15 + PRINTI ", except for the ball on the top of the pile" +?CND15: PRINTR "." +?ELS7: EQUAL? PRSA,V?LOOK-UNDER \FALSE + PRINT YOU-CANT + PRINTI "look under" + CALL TRPRINT,PILE-OF-BALLS + RSTACK + + + .FUNCT GENERIC-BALL-F + RETURN CANNON-BALL + + + .FUNCT FUSE-F,OBJ,FLAME + EQUAL? PRSA,V?LAMP-ON,V?BURN \?ELS5 + CALL SET-FLAME-SOURCE + ZERO? STACK \TRUE + FSET? PRSI,FLAMEBIT /?ELS12 + FSET? PRSI,BURNBIT \?ELS17 + PRINTI "You'll have to light" + CALL TPRINT,PRSI + PRINTR " first." +?ELS17: PRINTI "You can't light" + CALL TPRINT,PRSO + PRINTI " with" + CALL ARPRINT,PRSI + RSTACK +?ELS12: REMOVE FUSE + FIRST? CANNON >OBJ /?KLU59 +?KLU59: PRINTI "You touch the flame to" + CALL TPRINT,FUSE + PRINTI " and it sizzles. A second later" + CALL TPRINT,CANNON + PRINTI " fires" + ZERO? OBJ \?ELS26 + PRINTR " with a bang." +?ELS26: IN? CANNON-BALL,CANNON \?CND29 + FSET CANNON,CANNON-MOVED-BIT + REMOVE CANNON-BALL + PRINTI ", pushing it back a couple of feet. " +?CND29: IN? FLASHLIGHT,CANNON \?CND32 + FCLEAR FLASHLIGHT,ONBIT +?CND32: IN? RED-CANDLE,CANNON \?CND35 + FCLEAR RED-CANDLE,FLAMEBIT + FCLEAR RED-CANDLE,ONBIT + CALL STOP-RED-BURNING +?CND35: IN? WHITE-CANDLE,CANNON \?CND38 + FCLEAR WHITE-CANDLE,FLAMEBIT + FCLEAR WHITE-CANDLE,ONBIT + CALL STOP-WHITE-BURNING +?CND38: IN? BLUE-CANDLE,CANNON \?CND41 + FCLEAR BLUE-CANDLE,FLAMEBIT + FCLEAR BLUE-CANDLE,ONBIT + CALL STOP-BLUE-BURNING +?CND41: FSET? CANNON,CANNON-MOVED-BIT \?ELS46 + PRINTI "The " + CALL DPRINT,CANNON-BALL + FIRST? CANNON \?CND44 + PRINTI " and pieces of" + CALL CLOSE-ALL-IN,CANNON + CALL DESCRIBE-CONTENTS,CANNON,-1 + JUMP ?CND44 +?ELS46: FIRST? CANNON \?CND44 + PRINTI " and pieces of" + CALL CLOSE-ALL-IN,CANNON + CALL DESCRIBE-CONTENTS,CANNON,-1 +?CND44: PRINTI " fl" + FIRST? CANNON \?ELS54 + PRINTC 121 + JUMP ?CND52 +?ELS54: PRINTI "ies" +?CND52: PRINTI " from" + CALL TPRINT,CANNON + PRINTI "'s barrel out to sea." + CRLF + CALL MOVE-ALL,CANNON + RSTACK +?ELS5: EQUAL? PRSA,V?TAKE \FALSE + PRINTR "It's stuck." + + + .FUNCT CLOSE-ALL-IN,CONT,OBJ + FIRST? CONT >OBJ /?KLU6 +?KLU6: +?PRG1: FCLEAR OBJ,OPENBIT + NEXT? OBJ >OBJ /?KLU7 +?KLU7: ZERO? OBJ \?PRG1 + RTRUE + + + .FUNCT SET-FLAME-SOURCE,FLAME + ZERO? PRSI \FALSE + CALL FIND-IN,PLAYER,FLAMEBIT >FLAME + ZERO? FLAME /?ELS8 + SET 'PRSI,FLAME + PRINTI "[with" + CALL TPRINT,FLAME + PRINTC 93 + CRLF + RFALSE +?ELS8: EQUAL? HERE,BEACH \?ELS10 + SET 'PRSI,FIRE + PRINTI "[with the fire]" + CRLF + RFALSE +?ELS10: PRINTI "You have nothing to light" + CALL TPRINT,PRSO + PRINTR " with." + + + .FUNCT CANNON-F + EQUAL? PRSA,V?PUSH-TO,V?PUSH,V?TAKE /?THN8 + EQUAL? PRSA,V?TURN,V?MOVE,V?PULL /?THN8 + EQUAL? PRSA,V?EMPTY,V?LOWER,V?RAISE \?ELS5 +?THN8: EQUAL? PRSO,CANNON \?ELS5 + PRINTR "The cannon is too heavy for you to move." +?ELS5: EQUAL? PRSA,V?SHOOT \?ELS11 + PRINTR "Try lighting the fuse!" +?ELS11: EQUAL? PRSA,V?EXAMINE \?ELS13 + PRINTI "It's a replica Civil War " + CALL DPRINT,CANNON + PRINTI " pointing out to sea. " + IN? FUSE,CANNON-EMPLACEMENT \?CND14 + PRINTI "There is" + CALL APRINT,FUSE + PRINTI " sticking up from the cannon. " +?CND14: FSET? CANNON,CANNON-MOVED-BIT /?ELS19 + PRINTI "One of" + CALL TPRINT,CANNON + PRINTI "'s wheels is on top of a small compartment." + JUMP ?CND17 +?ELS19: PRINTI "Right next to" + CALL TPRINT,CANNON + PRINTI " is" + CALL APRINT,COMPARTMENT + PRINTC 46 +?CND17: PRINTI " The " + CALL DPRINT,CANNON + PRINTR " was used in Uncle Buddy's production of ""Dracula Meets the Confederacy."" Uncle Buddy said he always kept it loaded in case those big Hollywood studio types came around." +?ELS13: EQUAL? PRSA,V?LAMP-ON,V?BURN \?ELS23 + CALL PERFORM,V?BURN,FUSE + RTRUE +?ELS23: EQUAL? PRSA,V?PUT \?ELS25 + EQUAL? PRSO,BUCKET \?ELS25 + PRINTR "It won't fit in the cannon." +?ELS25: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT COMPARTMENT-F + EQUAL? PRSA,V?OPEN \?ELS5 + FSET? CANNON,CANNON-MOVED-BIT /?ELS5 + CALL PERFORM,V?EXAMINE,COMPARTMENT + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? CANNON,CANNON-MOVED-BIT /FALSE + PRINTI "One of" + CALL TPRINT,CANNON + PRINTI "'s wheels is on" + CALL TRPRINT,COMPARTMENT + RSTACK + + + .FUNCT MOVE-OBJ-DOWN + FSET? PRSO,TAKEBIT \FALSE + PRINTI "You " + PRINTB P-PRSA-WORD + PRINTI " the " + CALL DPRINT,PRSO + PRINTI " and it tumbles down the stairs." + EQUAL? UPSTAIRS-HALL-MIDDLE,HERE \?ELS10 + MOVE PRSO,FOYER + RTRUE +?ELS10: EQUAL? FRONT-PORCH,HERE \?ELS12 + MOVE PRSO,SOUTH-JUNCTION + RTRUE +?ELS12: MOVE PRSO,CELLAR + RTRUE + + + .FUNCT DOOR-BELL-F + EQUAL? PRSA,V?PUSH \FALSE + PRINTI "The " + CALL DPRINT,DOOR-BELL + PRINTI " plays a tune from one of Uncle Buddy's films. You recognize the " + CALL PICK-ONE,DOOR-BELL-TUNES + PRINT STACK + PRINTR ".""" + + + .FUNCT SKIS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "They're a large pair of downhill snow skis." +?ELS5: EQUAL? PRSA,V?WEAR \FALSE + EQUAL? HERE,UPPER-BEACH-STAIRS /?THN13 + EQUAL? HERE,LOWER-BEACH-STAIRS \?ELS12 +?THN13: PRINTR "You can't put them on while standing on the stairs." +?ELS12: EQUAL? HERE,ROOF-1,ROOF-2 \?ELS16 + CALL JIGS-UP,STR?200 + RSTACK +?ELS16: EQUAL? HERE,INLET,ON-POOL-1,IN-POOL-1 /?THN19 + EQUAL? HERE,UNDERPASS-1,UNDERPASS-2,IN-POOL-2 /?THN19 + EQUAL? HERE,ON-POOL-2 \?ELS18 +?THN19: PRINT DOG-PADDLE + CRLF + RTRUE +?ELS18: EQUAL? HERE,CLOSET,SHAFT-BOTTOM,CLOSET-TOP /?THN23 + EQUAL? HERE,CHIMNEY-1,CHIMNEY-2,CHIMNEY-3 \?ELS22 +?THN23: PRINTI "The " + EQUAL? HERE,CLOSET \?ELS27 + PRINTI "closet" + JUMP ?CND25 +?ELS27: EQUAL? HERE,CLOSET-TOP,SHAFT-BOTTOM \?ELS29 + PRINTI "shaft" + JUMP ?CND25 +?ELS29: PRINTI "chimney" +?CND25: PRINTR " is too small for you to put on the skis." +?ELS22: EQUAL? HERE,CRAWL-SPACE-NORTH,CRAWL-SPACE-SOUTH,FIRST-SECRET-ROOM \?ELS33 + PRINT YOU-CANT + PRINTR "quite slip into them in this cramped space." +?ELS33: LOC PLAYER + EQUAL? STACK,RIGHT-END,LEFT-END \FALSE + PRINT YOU-CANT + PRINTI "seem to get them on while standing on" + CALL TRPRINT,PLANK + RSTACK + + + .FUNCT TOP-LANDING-F,ARG + EQUAL? ARG,M-BEG \FALSE + EQUAL? PRSA,V?WALK \FALSE + EQUAL? PRSO,P?NORTH \FALSE + SET 'PRSO,P?DOWN + RFALSE + + + .FUNCT TO-BEACH + FSET? SKIS,WORNBIT \?ELS5 + CALL SKI-DOWN-STAIRS + RETURN BEACH +?ELS5: EQUAL? HERE,UPPER-BEACH-STAIRS \?ELS12 + CALL JIGS-UP,STR?203 + RSTACK +?ELS12: PRINTI "You walk down the old, creaking stairs. You stop as you come to a wide gap of missing steps." + CRLF + CRLF + RETURN UPPER-BEACH-STAIRS + + + .FUNCT GAP-F + EQUAL? PRSA,V?CROSS,V?LEAP \?ELS5 + PRINTI "You leap across the gap " + RANDOM 100 + LESS? 50,STACK /?ELS8 + PRINTI "and just miss the first step on the other side. For a split second you admire a view of the coastline that few if any have seen before. You then" + JUMP ?CND6 +?ELS8: PRINTI "and land on the first step. Unfortunately your weight was a bit too much for the step. It squeals with pain then breaks in half, and you" +?CND6: CALL JIGS-UP,STR?204 + RSTACK +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS12 + PRINTR "Far below are sharp rocks." +?ELS12: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS14 + EQUAL? PRSI,GAP \?ELS14 + REMOVE PRSO + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " drops to the rocks below." +?ELS14: EQUAL? PRSA,V?ENTER \FALSE + CALL FROM-LOWER-STAIRS + RSTACK + + + .FUNCT SKI-DOWN-STAIRS,CANDLE=0,MATCH=0 + EQUAL? HERE,TOP-LANDING \FALSE + FSET? TOP-LANDING,EVERYBIT \?CND6 + FCLEAR TOP-LANDING,EVERYBIT + ADD SCORE,10 >SCORE +?CND6: PRINTI "You shuffle over the edge of the landing, and quickly gain momentum as you sail down the stairs." + CALL FIND-IN,PLAYER,FLAMEBIT + ZERO? STACK /?CND9 + IN? RED-CANDLE,PLAYER \?CND12 + FSET? RED-CANDLE,FLAMEBIT \?CND12 + INC 'CANDLE + CALL BLOW-OUT-CANDLE,RED-CANDLE,TRUE-VALUE +?CND12: IN? WHITE-CANDLE,PLAYER \?CND17 + FSET? WHITE-CANDLE,FLAMEBIT \?CND17 + INC 'CANDLE + CALL BLOW-OUT-CANDLE,WHITE-CANDLE,TRUE-VALUE +?CND17: IN? BLUE-CANDLE,PLAYER \?CND22 + FSET? BLUE-CANDLE,FLAMEBIT \?CND22 + INC 'CANDLE + CALL BLOW-OUT-CANDLE,BLUE-CANDLE,TRUE-VALUE +?CND22: EQUAL? CANDLE,1,2,3 \?CND27 + PRINTI " The candle" + EQUAL? CANDLE,2,3 \?CND30 + PRINTC 115 +?CND30: PRINTI " in your hand blow" + EQUAL? CANDLE,1 \?CND33 + PRINTC 115 +?CND33: PRINTI " out." +?CND27: IN? RED-MATCH,PLAYER \?CND36 + FSET? RED-MATCH,FLAMEBIT \?CND36 + INC 'MATCH + FCLEAR RED-MATCH,ONBIT + FCLEAR RED-MATCH,FLAMEBIT + REMOVE RED-MATCH + CALL DEQUEUE,I-MATCH-BURN +?CND36: IN? GREEN-MATCH,PLAYER \?CND41 + FSET? GREEN-MATCH,FLAMEBIT \?CND41 + INC 'MATCH + FCLEAR GREEN-MATCH,ONBIT + FCLEAR GREEN-MATCH,FLAMEBIT + REMOVE GREEN-MATCH + CALL DEQUEUE,I-MATCH-BURN +?CND41: EQUAL? MATCH,1,2 \?CND9 + PRINTI " The match" + EQUAL? MATCH,2 \?CND49 + PRINTC 115 +?CND49: PRINTI " in your hand blow" + EQUAL? MATCH,1 \?CND52 + PRINTC 115 +?CND52: PRINTI " out and you drop " + EQUAL? MATCH,1 \?ELS57 + PRINTI "it." + JUMP ?CND9 +?ELS57: PRINTI "them." +?CND9: PRINTI " Ahead of you is the gap in the stairs. Racing into the gap, your skis bow slightly, but your forward momentum pulls you across the gap. You hit the landing at the bottom of the stairs but don't stop. You continue down a short flight of stairs then sail onto the sandy beach. You quickly stop with the drag of the sand and a feeble attempt to snow plow." + CRLF + CRLF + RTRUE + + + .FUNCT FROM-LOWER-STAIRS + CALL JIGS-UP,STR?206 + RFALSE + + + .FUNCT WALKWAY-TO-BOAT-DOCK + PRINTI "You follow the wooden planking as it turns " + EQUAL? HERE,BOTTOM-LANDING \?ELS5 + PRINTI "left and enters a cave arriving at..." + CRLF + CRLF + RETURN BOAT-DOCK +?ELS5: PRINTI "right and exits the cave arriving at..." + CRLF + CRLF + RETURN BOTTOM-LANDING + + + .FUNCT FIRE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's" + CALL APRINT,FIRE + PRINTR " in a shallow pit in the sand, probably left here by Morgan Fairchild and a friend earlier in the evening." +?ELS5: EQUAL? PRSA,V?RUB,V?MOVE,V?TAKE /?THN8 + EQUAL? PRSA,V?LAMP-OFF \?ELS7 +?THN8: PRINTR "You'd burn your hands, and besides, it might upset Morgan." +?ELS7: EQUAL? PRSA,V?POUR \?ELS11 + REMOVE FIRE + PRINTR "With the skill of a seasoned firefighter, you extinguish the fire." +?ELS11: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS13 + CALL PERFORM,V?BURN,PRSO,FIRE + RTRUE +?ELS13: EQUAL? PRSA,V?ENTER \?ELS15 + PRINT PYRO + RTRUE +?ELS15: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT SAND-F + EQUAL? PRSA,V?TAKE \FALSE + PRINTR "It slips through your hands." + + .ENDI diff --git a/outside.zil b/outside.zil new file mode 100644 index 0000000..67fd25b --- /dev/null +++ b/outside.zil @@ -0,0 +1,1303 @@ +"OUTSIDE for ANTHILL (C)1986 by Infocom Inc. All Rights Reserved." + +"--- Outside House ---" + + + + + ) + ( + )>> + +;"mention by the light of the full moon, your anle to make out its features." +;"Add routine to mysteriously turn on sprinklers if you walk on grass." + +) + (ACTION SOUTH-JUNCTION-F)> + + + >)>> + + + + + ,FRONT-PORCH) + (T + ,FRONT-PORCH)>> + + + )>> + + + + + + ) + ( + + + ) + ( + )>> + + + + + ) + ( + + ) + (T + + + ) + (T + )>)> + + .NEW-ROOM> + + + + + + ) + (T + )> + + ,TOP-LANDING) + ( + ,NORTHEAST-JUNCTION)>> ;"SEM- 2 conds?" + + + + + + + + + ) + (T + )> + )>> + +;"ADD HACK FOR SOMEONE LOOKING AT GARDEN AT NIGHT" + + + + + + + + > + ) + (T + )> + ) + ( + )>> + + + + + ) + ( + )>> + + TREES FLORAL-PSEUDO) + (<> TREE FLORAL-PSEUDO) + (<> FLOWER FLORAL-PSEUDO)>)> + + ROSE ROSE-BUSH-PSEUDO) + (<> ROSES FLORAL-PSEUDO) + (<> TREES FLORAL-PSEUDO) + (<> TREE FLORAL-PSEUDO) + (<> FLOWER FLORAL-PSEUDO)>)> + + + ) + ( + ) + ( + )>> + + TULIP FLORAL-PSEUDO) + (<> TULIPS FLORAL-PSEUDO) + (<> TREES FLORAL-PSEUDO) + (<> TREE FLORAL-PSEUDO) + (<> FLOWER FLORAL-PSEUDO)>)> + + TREES FLORAL-PSEUDO) + (<> TREE FLORAL-PSEUDO) + (<> FLOWER FLORAL-PSEUDO)>)> + + + + + ) + ( + )>> + + + + + > + + 5> + )> + + + + + + > + + )> + + > + + + )> + + ; + + )> + ) + ( + ) + ( + )>> + +)) + + )> + ) + (T + + + + + + ) + ( + ) + ( + ) + ( + )>)> + + .STR>)> + >)>>> + + + + + + + + + ) + ( + + ) + (T + + + ) + (T + )>)> + + .NEW-ROOM> + + + + + )>> + + + ) + (T + + )>> + + CLIFF CLIFF-PSEUDO)>)> + + + + > + )> + + + ) + (T + )>)>> + + + )>> + + + + + ) + (T + + )>> + +> + + ) + ( + > + + ) + ( + + + + ) + (T + + + )>) +;" no ladder " (T + + + ) + (T + + )>)>> + + + + + >> + + ) + ( + ) + ;( ;"tie = attach, hook" + > + + + + ) + ( ;"unhook detach" + > + + ) + (T + > + ) + (T + + )>)>) + ( + + > + + ) + ( + + + + + ) + (T + )>) + (T + + + ) + (T + )>)>) + ( + ) + (T + )>)>> + + + + ;"tie = attach, hook" + + + + + ) + (T + )>)>> + + + + + + + + + ) + (T + )> + + )>)> + ) + ( + + ) + (T + )>) + ( + + > + + + > + )> + + >> + + >>> + )> + + )>> + +;"old hole" +; + + > + ) ;"underside" + (T + + + ) + (T + )> + + )>)> + )>> + +"--- Cannon ---" + + + +;> + + + + + ) + ( + + >> + + + )> + ) + (T + )>) + ( + ) + ;( + + + + ) + (T + )>)>> + + + + + + + + ) + (> + + ) + (ELSE + )>) + (T ;"prsi flamebit is set" + + > + + + ) + (T + ; + + + + )> + + )> + + + + )> + + + + )> + + + + )> + + + + + + )>) + ( + + + )> + + + ) + (T + )> + + )>)>) + ( + )>> + +> + + > + + )>>> + +) + (> + + + ) + ( + + + ) + (T + )>> + + + + + > + ) + ( + ) + ;( + > + ) + ( + + + )> + > + ) + (T + )> + ) + ( + + ) + ;( + +;"You see what might be a charge, after all Uncle Buddy did say he always kept it loaded in case those Hollywood types came round." + + + > + ) + (> + ) + (T + )>) + (T + )> + ) + ( + > + ) + ( + )>> + + + + + >> + + ) + ( + >> + )>> + + + + + + + ) + ( + ) + (T + )>)>> + + + + + + + ".\"" CR>)>> + +> + + + + + + +"--- Beach Stairs ---" + + + + + ) + ( + + > + ) + ( + ) + ( + ) + ( + + + ) + ( + ) + (T + )> + ) + ( + ) + ( ,RIGHT-END ,LEFT-END> + )>)>> + + + + + + > + + )>> + + + + + + ,BEACH) + (T + + ) + (T + + ;"randomly a step may give way or a rail breaks off etc." + ,UPPER-BEACH-STAIRS)>)>> + + + + + + + ) + (T + )> + ) + ( + ) + ( + > + + ) + ( + )>> + + + + ;"don't give ski points" + >)> ;"more than once" + + + + > + + )> + + > + + )> + + > + + )> + + + + )> + + + )> + )> + + > + + + + + )> + + > + + + + + )> + + + + )> + + + )> + + + ) + (T + )>)>)> + )>> + + + + + > + + + + + + + + ,BOAT-DOCK) + (T + + + ,BOTTOM-LANDING)>> + + + + + + + ) + ( + ) + ( + + ) + ( + + ) + ( + ) + ( + )>> + + + + + )>> + + diff --git a/parlor.zap b/parlor.zap new file mode 100644 index 0000000..d29cd09 --- /dev/null +++ b/parlor.zap @@ -0,0 +1,719 @@ + + + .FUNCT FILM-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + IN? FILM,FILM-PROJECTOR \?ELS10 + FSET? FILM-PROJECTOR,ONBIT \?ELS10 + CALL PERFORM,V?EXAMINE,PROJECTION-SCREEN + RTRUE +?ELS10: CALL FILM-SLIDE-DESC,FILM,STR?78 + RSTACK +?ELS5: EQUAL? PRSA,V?TAKE \?ELS16 + IN? FILM,FILM-PROJECTOR \FALSE + FSET? FILM-PROJECTOR,ONBIT \FALSE + PRINTI "Even a nonunion projectionist like yourself should know how dangerous it is to try to take film from" + CALL APRINT,FILM-PROJECTOR + PRINTR " while it's running." +?ELS16: EQUAL? PRSA,V?PUT \?ELS25 + FSET? FILM-PROJECTOR,ONBIT \?ELS25 + EQUAL? PRSI,FILM-PROJECTOR \?ELS25 + PRINTI "You start to put" + CALL TPRINT,FILM + PRINTI " in" + CALL TPRINT,FILM-PROJECTOR + PRINTI ", but glance up at a sign on the wall. The sign states: Remember, Perry Projectionist sez, ""Never try to put film in" + CALL APRINT,FILM-PROJECTOR + PRINTR " that's turned on.""" +?ELS25: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,SLIDE-PROJECTOR \FALSE + PRINTI "The " + CALL DPRINT,FILM + PRINTI " won't fit in" + CALL TRPRINT,PRSI + RSTACK + + + .FUNCT SLIDE-F + EQUAL? PRSA,V?EXAMINE \FALSE + CALL FILM-SLIDE-DESC,SLIDE + RSTACK + + + .FUNCT FILM-SLIDE-DESC,OBJ,STRING=0 + IN? OBJ,FILM-PROJECTOR /?THN6 + IN? OBJ,SLIDE-PROJECTOR \?ELS5 +?THN6: PRINTI "It's in" + LOC OBJ + CALL TPRINT,STACK + PRINTR "." +?ELS5: PRINTI "You examine the " + ZERO? STRING /?CND10 + PRINT STRING +?CND10: CALL DPRINT,OBJ + PRINTR " closely. Whatever is on it is too small for you to make out." + + + .FUNCT FILM-PROJECTOR-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a large, black, Simplex 70, 35mm " + CALL DPRINT,FILM-PROJECTOR + PRINTI ". In the front it has a short lens. " + IN? LENS-CAP,FILM-PROJECTOR \?CND6 + PRINTI "There's a lens cap on the lens. " +?CND6: PRINTI "The " + CALL DPRINT,FILM-PROJECTOR + IN? FILM,FILM-PROJECTOR \?ELS11 + PRINTI " has" + CALL APRINT,FILM + PRINTI " in it, and" + JUMP ?CND9 +?ELS11: IN? CORPSE-LINE,FILM-PROJECTOR \?CND9 + PRINTI " has" + CALL APRINT,CORPSE-LINE + PRINTI " in it, and" +?CND9: PRINTI " is turned o" + FSET? FILM-PROJECTOR,ONBIT \?ELS16 + PRINTC 110 + JUMP ?CND14 +?ELS16: PRINTI "ff" +?CND14: PRINTR "." +?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS20 + FSET? FILM-PROJECTOR,ONBIT /?ELS20 + PRINTI "Immediately the projector begins to roll" + FSET FILM-PROJECTOR,ONBIT + IN? FILM,FILM-PROJECTOR /?THN26 + IN? CORPSE-LINE,FILM-PROJECTOR \?ELS25 +?THN26: IN? FILM,FILM-PROJECTOR \?CND28 + CALL QUEUE,I-FILM-DROP,2 +?CND28: PRINTI ". The film starts to run through the projector" + FSET? LENS-CAP,LENS-CAP-OFF-BIT \?CND23 + FSET SCREENING-ROOM,ONBIT + PRINTI " and a stream of colored light shoots out of the lens onto the screen in the screening room" + IN? CORPSE-LINE,FILM-PROJECTOR \?CND23 + PRINTC 46 + CRLF + CALL CORPSE-LINE-DEATH + JUMP ?CND23 +?ELS25: FSET? LENS-CAP,LENS-CAP-OFF-BIT \?CND23 + FSET SCREENING-ROOM,ONBIT + PRINTI ". A stream of white light shoots out of the lens of" + CALL TPRINT,FILM-PROJECTOR + PRINTI " onto the screen in the screening room" +?CND23: PRINTR "." +?ELS20: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS43 + CALL CANT-OPEN-CLOSE + RSTACK +?ELS43: EQUAL? PRSA,V?LAMP-OFF \?ELS45 + FSET? FILM-PROJECTOR,ONBIT \?ELS45 + FCLEAR FILM-PROJECTOR,ONBIT + FSET? SLIDE-PROJECTOR,ONBIT /?CND48 + FCLEAR SCREENING-ROOM,ONBIT +?CND48: PRINTI "You hear" + CALL TPRINT,FILM-PROJECTOR + PRINTR "'s whining trail off as it rolls to a stop." +?ELS45: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + EQUAL? PRSI,FILM-PROJECTOR \FALSE + EQUAL? PRSO,FILM,CORPSE-LINE /?ELS59 + CALL WASTE-OF-TIME + RSTACK +?ELS59: IN? FILM,FILM-PROJECTOR /?THN62 + IN? CORPSE-LINE,FILM-PROJECTOR \FALSE +?THN62: PRINTI "You'll have to take" + FIRST? FILM-PROJECTOR /?KLU64 +?KLU64: CALL TPRINT,STACK + PRINTR " out first." + + + .FUNCT CORPSE-LINE-DEATH + CRLF + PRINTI "Your eyes are immediately drawn to the screen. " + FSET? SLIDE-PROJECTOR,ONBIT \?ELS3 + PRINTI "Although it's a little distorted by the slide projector, you" + JUMP ?CND1 +?ELS3: PRINTI "You" +?CND1: CALL JIGS-UP,STR?79 + RSTACK + + + .FUNCT I-FILM-DROP + MOVE FILM,PROJECTION-BOOTH + EQUAL? HERE,PROJECTION-BOOTH \FALSE + CRLF + PRINTI "The " + CALL DPRINT,FILM + PRINTI " runs out of" + CALL TPRINT,FILM-PROJECTOR + PRINTR " and onto the floor." + + + .FUNCT PROJECTORS-DESC,OBJ,STRING=0 + PRINTI "It's" + CALL APRINT,OBJ + ZERO? STRING /?CND1 + PRINT STRING +?CND1: PRINTI ". The " + CALL DPRINT,OBJ + PRINTC 32 + FIRST? OBJ \?ELS7 + PRINTI "has" + FIRST? OBJ /?KLU15 +?KLU15: CALL APRINT,STACK + PRINTI " in it" + JUMP ?CND5 +?ELS7: PRINTI "is empty" +?CND5: PRINTI " and is turned o" + FSET? OBJ,ONBIT \?ELS12 + PRINTC 110 + JUMP ?CND10 +?ELS12: PRINTI "ff" +?CND10: PRINTR "." + + + .FUNCT SLIDE-PROJECTOR-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + CALL PROJECTORS-DESC,SLIDE-PROJECTOR,STR?80 + RSTACK +?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS7 + FSET? SLIDE-PROJECTOR,ONBIT /?ELS7 + FSET SLIDE-PROJECTOR,ONBIT + FSET SCREENING-ROOM,ONBIT + PRINTI "A stream of " + IN? SLIDE,SLIDE-PROJECTOR \?ELS12 + PRINTI "colored" + JUMP ?CND10 +?ELS12: PRINTI "white" +?CND10: PRINTI " light shoots out of the lens of" + CALL TPRINT,SLIDE-PROJECTOR + PRINTR " onto the screen in the screening room." +?ELS7: EQUAL? PRSA,V?FOCUS \?ELS16 + CALL PERFORM,V?FOCUS,SLIDE-PROJECTOR-LENS + RTRUE +?ELS16: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS18 + CALL CANT-OPEN-CLOSE + RSTACK +?ELS18: EQUAL? PRSA,V?LAMP-OFF \FALSE + FSET? SLIDE-PROJECTOR,ONBIT \FALSE + FCLEAR SLIDE-PROJECTOR,ONBIT + FSET? FILM-PROJECTOR,ONBIT \?THN26 + FSET? LENS-CAP,LENS-CAP-OFF-BIT /?CND23 +?THN26: FCLEAR SCREENING-ROOM,ONBIT +?CND23: PRINTI "You turn off" + CALL TPRINT,SLIDE-PROJECTOR + PRINTR " and the light from the lens fades away." + + + .FUNCT PROJECTED-IMAGE-F + EQUAL? PRSI,PROJECTED-IMAGE \?ELS5 + CALL PERFORM,PRSA,PRSO,PROJECTION-SCREEN + RTRUE +?ELS5: EQUAL? PRSO,PROJECTED-IMAGE \FALSE + CALL PERFORM,PRSA,PROJECTION-SCREEN,PRSI + RTRUE + + + .FUNCT PROJECTION-SCREEN-F + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + PRINTI "The " + CALL DPRINT,PROJECTION-SCREEN + PRINTI " is " + FSET? FILM-PROJECTOR,ONBIT \?ELS8 + FSET? LENS-CAP,LENS-CAP-OFF-BIT \?ELS8 + IN? FILM,FILM-PROJECTOR \?ELS13 + FSET? SLIDE-PROJECTOR,ONBIT \?ELS16 + IN? SLIDE,SLIDE-PROJECTOR \?ELS19 + FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS22 + PRINTI "showing a message saying: + +PLAY """ + GET SONGS,SONG-NUMBER + PRINT STACK + PRINTI "."" + Love, + Aunt Hildegarde" + ZERO? PROJECTOR-POINTS \?CND6 + ADD SCORE,10 >SCORE + SET 'PROJECTOR-POINTS,TRUE-VALUE + JUMP ?CND6 +?ELS22: PRINTI "filled with bits of colored words and a blur of colored light" + JUMP ?CND6 +?ELS19: PRINT WASHED-OUT-BITS + JUMP ?CND6 +?ELS16: PRINT BITS-&-PIECES + JUMP ?CND6 +?ELS13: FSET? SLIDE-PROJECTOR,ONBIT \?ELS36 + IN? SLIDE,SLIDE-PROJECTOR \?ELS39 + FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS42 + PRINT WASHED-OUT-BITS + JUMP ?CND6 +?ELS42: PRINT WASHED-OUT-BITS + JUMP ?CND6 +?ELS39: PRINT WHITE-LIGHT + JUMP ?CND6 +?ELS36: PRINT WHITE-LIGHT + JUMP ?CND6 +?ELS8: FSET? SLIDE-PROJECTOR,ONBIT \?ELS53 + IN? SLIDE,SLIDE-PROJECTOR \?ELS56 + FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS59 + PRINT BITS-&-PIECES + JUMP ?CND6 +?ELS59: PRINTI "a blur of colored light" + JUMP ?CND6 +?ELS56: PRINT WHITE-LIGHT + JUMP ?CND6 +?ELS53: PRINTI "blank" +?CND6: PRINTR "." + + + .FUNCT LENS-CAP-F + EQUAL? PRSA,V?PUT-ON \?ELS5 + EQUAL? PRSI,FILM-PROJECTOR,FILM-PROJECTOR-LENS \?ELS5 + FCLEAR LENS-CAP,LENS-CAP-OFF-BIT + FSET LENS-CAP,NDESCBIT + FSET LENS-CAP,TRYTAKEBIT + MOVE LENS-CAP,FILM-PROJECTOR + FSET? SLIDE-PROJECTOR,ONBIT /?CND8 + FSET? FILM-PROJECTOR,ONBIT \?CND8 + FCLEAR SCREENING-ROOM,ONBIT +?CND8: PRINTI "You place" + CALL TPRINT,LENS-CAP + PRINTI " over" + CALL TRPRINT,FILM-PROJECTOR-LENS + RSTACK +?ELS5: EQUAL? PRSA,V?PUT-ON \?ELS14 + EQUAL? PRSI,SLIDE-PROJECTOR,SLIDE-PROJECTOR-LENS \?ELS14 + PRINTI "The " + CALL DPRINT,LENS-CAP + PRINTI " won't fit on" + CALL TRPRINT,PRSI + RSTACK +?ELS14: EQUAL? PRSA,V?UNTIE,V?TAKE-OFF \?ELS18 + FSET? LENS-CAP,LENS-CAP-OFF-BIT /?ELS18 + CALL PERFORM,V?TAKE,LENS-CAP + RTRUE +?ELS18: EQUAL? PRSA,V?TAKE \FALSE + EQUAL? PRSO,LENS-CAP \FALSE + FSET? LENS-CAP,LENS-CAP-OFF-BIT /FALSE + CALL ITAKE + ZERO? STACK /TRUE + FSET LENS-CAP,LENS-CAP-OFF-BIT + FCLEAR LENS-CAP,NDESCBIT + FCLEAR LENS-CAP,TRYTAKEBIT + FSET? FILM-PROJECTOR,ONBIT \FALSE + FSET SCREENING-ROOM,ONBIT + PRINTI "As you remove" + CALL TPRINT,LENS-CAP + PRINTI " a stream of " + IN? FILM,FILM-PROJECTOR /?THN36 + IN? CORPSE-LINE,FILM-PROJECTOR \?ELS35 +?THN36: PRINTI "colored" + JUMP ?CND33 +?ELS35: PRINTI "white" +?CND33: PRINTI " light shoots from" + CALL TPRINT,FILM-PROJECTOR + PRINTI "'s lens." + CRLF + IN? CORPSE-LINE,FILM-PROJECTOR \TRUE + CALL CORPSE-LINE-DEATH + RTRUE + + + .FUNCT FILM-PROJECTOR-LENS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a hand-ground, all-aluminum, Bierman 500 " + CALL DPRINT,FILM-PROJECTOR-LENS + FSET? LENS-CAP,LENS-CAP-OFF-BIT /?ELS8 + PRINTI " with" + CALL APRINT,LENS-CAP + PRINTI " on it" + JUMP ?CND6 +?ELS8: FSET? FILM-PROJECTOR,ONBIT \?CND6 + PRINTI ", with a spray of " + IN? FILM,FILM-PROJECTOR \?ELS16 + PRINTI "colored" + JUMP ?CND14 +?ELS16: PRINTI "white" +?CND14: PRINTI " light coming out of it" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?TURN,V?FOCUS \?ELS20 + PRINT YOU-CANT + PRINTI "adjust" + CALL TPRINT,FILM-PROJECTOR-LENS + PRINTR ". It's preset for Uncle Buddy's screening room." +?ELS20: EQUAL? PRSA,V?UNTIE,V?TAKE \FALSE + PRINT LENS-ATTACHED + CRLF + RTRUE + + + .FUNCT SLIDE-PROJECTOR-LENS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a fairly expensive, focusable " + CALL DPRINT,SLIDE-PROJECTOR-LENS + FSET? SLIDE-PROJECTOR,ONBIT \?CND6 + PRINTI ". A stream of " + IN? SLIDE,SLIDE-PROJECTOR \?ELS11 + PRINTI "colored" + JUMP ?CND9 +?ELS11: PRINTI "white" +?CND9: PRINTI " light sprays from the lens" +?CND6: PRINTR "." +?ELS5: EQUAL? PRSA,V?TURN,V?FOCUS \?ELS15 + FSET? SLIDE-PROJECTOR,ONBIT /?ELS20 + PRINTI "How can you focus" + CALL TPRINT,SLIDE-PROJECTOR + PRINTR " when it's not turned on?" +?ELS20: FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS22 + CALL YOU-ALREADY + RSTACK +?ELS22: IN? SLIDE,SLIDE-PROJECTOR /?ELS24 + PRINTI "How can you focus" + CALL TPRINT,SLIDE-PROJECTOR + PRINTR " when there's nothing in it?" +?ELS24: PRINTI "You twist" + CALL TRPRINT,SLIDE-PROJECTOR-LENS + FSET SLIDE-PROJECTOR-LENS,FOCUS-BIT + RTRUE +?ELS15: EQUAL? PRSA,V?TAKE \FALSE + PRINT LENS-ATTACHED + CRLF + RTRUE + + + .FUNCT PROJECTION-BOOTH-F,RARG + EQUAL? RARG,M-ENTER \FALSE + FSET? PROJECTION-BOOTH,EVERYBIT /FALSE + FSET PROJECTION-BOOTH,EVERYBIT + RANDOM 10 + SUB STACK,1 >SONG-NUMBER + RETURN SONG-NUMBER + + + .FUNCT SCREENING-ROOM-PSEUDO-F + EQUAL? PRSA,V?EXAMINE \FALSE + CALL PERFORM,V?LOOK-INSIDE,WINDOW + RTRUE + + + .FUNCT OUTSIDE-PARLOR-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a long hall stretching east and west." + FSET? WALL-SAFE,INVISIBLE \?ELS10 + PRINTI " There is a painting hanging here." + RTRUE +?ELS10: PRINTI " There is a painting swung away from the wall. Next to the painting is a" + FSET? WALL-SAFE,OPENBIT \?ELS15 + PRINTI "n open" + JUMP ?CND13 +?ELS15: PRINTI " closed" +?CND13: PRINTI " wall safe." + RTRUE + + + .FUNCT PARLOR-F,RARG + EQUAL? RARG,M-LOOK \FALSE + ZERO? TIPPED /?ELS8 + PRINTI "This room is askew with the floor tilting down in the " + EQUAL? TIPPED,CRAWL-SPACE-NORTH \?ELS12 + PRINTI "north and up in the south" + JUMP ?CND10 +?ELS12: PRINTI "south and up in the north" +?CND10: PRINTI ". The piano is " + JUMP ?CND6 +?ELS8: PRINTI "This is the parlor where Uncle Buddy would bring potential investors. He would break out his finest scotch and Cuban cigars. Once the ""guests"" were tight he would present his latest movie idea. (You've seen his movies, so you know anyone who would agree to invest in one of them had to have been drinking.) Strange, you notice all the furniture in this room is bolted to the floor, except for the piano " +?CND6: EQUAL? PIANO-LOC,1 \?ELS19 + PRINTI "against the northern wall" + JUMP ?CND17 +?ELS19: EQUAL? PIANO-LOC,2 \?ELS21 + PRINTI "in the middle of the room" + JUMP ?CND17 +?ELS21: PRINTI "against the southern wall" +?CND17: FSET? CRAWL-SPACE-DOOR,OPENBIT \?CND24 + PRINTI ". There is an open door in the floor" +?CND24: PRINTI ". A doorway leads west." + RTRUE + + + .FUNCT TO-CRAWL-SPACE-NORTH + FSET? CRAWL-SPACE-DOOR,OPENBIT \?ELS5 + FSET? SKIS,WORNBIT \?ELS10 + PRINTI "You can't fit through the opening wearing the skis." + CRLF + RFALSE +?ELS10: EQUAL? TIPPED,CRAWL-SPACE-NORTH \?ELS12 + PRINTI "Now that the parlor is tilted, you can't fit into the crawl space." + CRLF + RFALSE +?ELS12: RETURN CRAWL-SPACE-NORTH +?ELS5: PRINTI "You can't go that way." + CRLF + RFALSE + + + .FUNCT CRAWL-SPACE-DOOR-F + EQUAL? PRSA,V?OPEN \FALSE + EQUAL? HERE,PARLOR \FALSE + ZERO? SONG-PLAYED /?ELS15 + FSET? CRAWL-SPACE-DOOR,OPENBIT /?ELS15 + FSET CRAWL-SPACE-DOOR,OPENBIT + PRINTR "Opened." +?ELS15: PRINTR "You can't seem to open it." + + + .FUNCT CRAWL-SPACE-NORTH-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the northern half of an uncomfortably warm crawl space beneath the parlor. It appears as though this room is under construction." + CALL DESCRIBE-CRAWL-SPACE-BEAM,STR?97 + PRINTI " To the north, about a foot above the floor, you see an entrance to a passage." + ZERO? TIPPED \?CND6 + PRINTI " The entrance is partially blocked by the floor of the room above." +?CND6: CALL DESCRIBE-NICHE,NORTH-NICHE + PRINTI " There is a" + FSET? CRAWL-SPACE-DOOR,OPENBIT \?ELS11 + PRINTI "n open" + JUMP ?CND9 +?ELS11: PRINTI " closed" +?CND9: PRINTI " door above you." + RTRUE + + + .FUNCT TO-CRAWL-SPACE-SOUTH + EQUAL? TIPPED,CRAWL-SPACE-SOUTH \?ELS5 + PRINTI "You won't fit in the southern half of the crawl space. The ceiling shifted and now fills the space." + CRLF + RFALSE +?ELS5: RETURN CRAWL-SPACE-SOUTH + + + .FUNCT TO-FIRST-SECRET-ROOM + EQUAL? TIPPED,CRAWL-SPACE-SOUTH \?ELS5 + RETURN FIRST-SECRET-ROOM +?ELS5: PRINTI "You can't fit through the passage. It's partially blocked by the floor of the room above." + CRLF + RFALSE + + + .FUNCT PARKING-METER-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "This is the parking meter that was the final frustration for budding actor Alan Chaplin in Uncle Buddy's ""You Can't Fight City Hall, But You Can Blow It Up!""" + + + .FUNCT DESCRIBE-NICHE,NICHE + PRINTI " There is a niche in the ceiling here." + FIRST? NICHE \TRUE + PRINTI " In" + CALL TPRINT,NICHE + PRINTI " there is" + FIRST? NICHE /?KLU4 +?KLU4: CALL APRINT,STACK + PRINTI " supporting the ceiling." + RTRUE + + + .FUNCT BEAM-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "The thick, wooden beam runs across the ceiling of the crawl space." + + + .FUNCT DESCRIBE-CRAWL-SPACE-BEAM,STRING + PRINTI " A wooden beam runs east-west across the ceiling, forming the boundary between this side of the crawl space and the other half to the " + PRINT STRING + PRINTC 46 + RTRUE + + + .FUNCT CRAWL-SPACE-SOUTH-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the southern half of an uncomfortably warm crawl space beneath the parlor." + CALL DESCRIBE-CRAWL-SPACE-BEAM,STR?99 + CALL DESCRIBE-NICHE,SOUTH-NICHE + RSTACK + + + .FUNCT POST-F,OARG,POST-LOC + LOC PRSO >POST-LOC + EQUAL? PRSA,V?MOVE,V?TAKE \?ELS5 + FSET? PRSO,CANT-MOVE-POST-BIT \?ELS5 + PRINTR "The pillar won't budge from the niche." +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + EQUAL? POST-LOC,NORTH-NICHE,SOUTH-NICHE \?ELS14 + PRINTI "It's in" + LOC PRSO + CALL TRPRINT,STACK + RSTACK +?ELS14: PRINTI "The " + CALL DPRINT,PRSO + PRINTR " is made of wood and is about two feet tall." +?ELS9: EQUAL? PRSA,V?PUT \?ELS18 + EQUAL? PRSI,NORTH-NICHE,SOUTH-NICHE \?ELS18 + ZERO? TIPPED /?ELS25 + PRINTR "The post won't go in the niche now that the ceiling is tilted." +?ELS25: EQUAL? PRSI,NORTH-NICHE \?ELS32 + EQUAL? PIANO-LOC,1 /?THN37 +?ELS32: EQUAL? PRSI,SOUTH-NICHE \?ELS34 + EQUAL? PIANO-LOC,3 /?THN37 +?ELS34: EQUAL? PIANO-LOC,2 \FALSE + EQUAL? PRSI,NORTH-NICHE /?THN37 + EQUAL? PRSI,SOUTH-NICHE \FALSE +?THN37: PRINTR "Because of the weight from above you can't put the pillar back in the niche." +?ELS18: EQUAL? PRSA,V?BURN \FALSE + PRINT PYRO + RTRUE + + + .FUNCT PIANO-F + EQUAL? PRSA,V?PUSH-TO \?ELS5 + EQUAL? PRSI,INTDIR \?ELS5 + EQUAL? TIPPED,CRAWL-SPACE-NORTH,CRAWL-SPACE-SOUTH /?ELS12 + EQUAL? P-DIRECTION,P?NORTH \?ELS17 + EQUAL? PIANO-LOC,1 \?ELS17 + PRINTR "It's already up against the wall." +?ELS17: EQUAL? P-DIRECTION,P?NORTH \?ELS21 + EQUAL? PIANO-LOC,2 \?ELS21 + IN? ROUND-POST,NORTH-NICHE \?ELS28 + FCLEAR SQUARE-POST,CANT-MOVE-POST-BIT + SET 'PIANO-LOC,1 + PRINTR "The hearty breakfast you had this morning pays off as you push the piano north against the wall." +?ELS28: SET 'TIPPED,CRAWL-SPACE-NORTH + SET 'PIANO-LOC,1 + PRINTR "You push the piano north a couple of feet and the room begins to tip. As the north side of the parlor tips down, the piano rolls across the floor and against the north wall with an atonal banging of the keys. The south side of the floor tilts up." +?ELS21: EQUAL? P-DIRECTION,P?NORTH \?ELS32 + EQUAL? PIANO-LOC,3 \?ELS32 + IN? ROUND-POST,NORTH-NICHE \?CND35 + FSET ROUND-POST,CANT-MOVE-POST-BIT +?CND35: IN? SQUARE-POST,SOUTH-NICHE \?CND38 + FSET SQUARE-POST,CANT-MOVE-POST-BIT +?CND38: SET 'PIANO-LOC,2 + PRINTR "You push the piano north to the center of the room." +?ELS32: EQUAL? P-DIRECTION,P?SOUTH \?ELS42 + EQUAL? PIANO-LOC,1 \?ELS42 + IN? ROUND-POST,NORTH-NICHE \?CND45 + FSET ROUND-POST,CANT-MOVE-POST-BIT +?CND45: IN? SQUARE-POST,SOUTH-NICHE \?CND48 + FSET SQUARE-POST,CANT-MOVE-POST-BIT +?CND48: SET 'PIANO-LOC,2 + PRINTR "You push the piano south to the center of the room." +?ELS42: EQUAL? P-DIRECTION,P?SOUTH \?ELS52 + EQUAL? PIANO-LOC,2 \?ELS52 + IN? SQUARE-POST,SOUTH-NICHE \?ELS59 + FCLEAR ROUND-POST,CANT-MOVE-POST-BIT + SET 'PIANO-LOC,3 + PRINTR "The hearty breakfast you had this morning pays off as you push the piano south against the wall." +?ELS59: MOVE ROUND-POST,CRAWL-SPACE-NORTH + FCLEAR ROUND-POST,NDESCBIT + FCLEAR ROUND-POST,CANT-MOVE-POST-BIT + SET 'TIPPED,CRAWL-SPACE-SOUTH + SET 'PIANO-LOC,3 + PRINTR "You push the piano south a couple of feet and the room begins to tip. As the south side of the parlor tips down the piano rolls across the floor and slams against the south wall. The north side of the floor tilts up." +?ELS52: EQUAL? P-DIRECTION,P?SOUTH \?ELS63 + EQUAL? PIANO-LOC,3 \?ELS63 + PRINTR "It's already up against the wall." +?ELS63: EQUAL? P-DIRECTION,P?EAST,P?WEST,P?NE /?THN68 + EQUAL? P-DIRECTION,P?NW,P?SE,P?SW \FALSE +?THN68: PRINTI "You try pushing the piano " + EQUAL? P-DIRECTION,P?EAST \?ELS72 + PRINTI "east" + JUMP ?CND70 +?ELS72: EQUAL? P-DIRECTION,P?WEST \?ELS74 + PRINTI "west" + JUMP ?CND70 +?ELS74: EQUAL? P-DIRECTION,P?NE \?ELS76 + PRINTI "northeast" + JUMP ?CND70 +?ELS76: EQUAL? P-DIRECTION,P?NW \?ELS78 + PRINTI "northwest" + JUMP ?CND70 +?ELS78: EQUAL? P-DIRECTION,P?SE \?ELS80 + PRINTI "southeast" + JUMP ?CND70 +?ELS80: EQUAL? P-DIRECTION,P?SW \?CND70 + PRINTI "southwest" +?CND70: PRINTI " but the casters it rides on are old and worn. They're stuck, so" + CALL TPRINT,PIANO + PRINTR " will only move north and south." +?ELS12: PRINTR "Now that the room is tipped, the piano is too heavy to move." +?ELS5: EQUAL? PRSA,V?MOVE,V?PUSH \?ELS86 + PRINTR "Did you have a direction in mind?" +?ELS86: EQUAL? PRSA,V?RAISE \?ELS88 + CALL PERFORM,V?OPEN,PIANO + RTRUE +?ELS88: EQUAL? PRSA,V?LOWER \?ELS90 + CALL PERFORM,V?CLOSE,PIANO + RTRUE +?ELS90: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "It's the baby grand that Aunt Hildegarde bought for you and Herman. Though neither of you practiced as you should, you've managed to maintain a shaky repertoire of standards. The casters on the piano's legs have seen better days. The piano lid is " + FSET? PIANO,OPENBIT \?ELS95 + PRINTI "open" + JUMP ?CND93 +?ELS95: PRINTI "closed" +?CND93: PRINTR "." + + + .FUNCT CASTERS-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "The casters look old and worn, as if they have seen better days." + + + .FUNCT NICHE-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5 + PRINTI "You see" + FIRST? PRSO /?ELS8 + PRINTI " nothing" + JUMP ?CND6 +?ELS8: FIRST? PRSO /?KLU17 +?KLU17: CALL APRINT,STACK +?CND6: PRINTI " in" + CALL TRPRINT,PRSO + RSTACK +?ELS5: EQUAL? PRSA,V?PUT \?ELS12 + EQUAL? PRSI,SOUTH-NICHE,NORTH-NICHE \?ELS12 + EQUAL? PRSO,SQUARE-POST,ROUND-POST /?ELS12 + CALL WASTE-OF-TIME + RSTACK +?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + CALL CANT-OPEN-CLOSE + RSTACK + + + .FUNCT I-NOISE + FSET? HERE,CAVEBIT \?CND1 + CALL QUEUE,I-NOISE,5 + RFALSE +?CND1: CRLF + FSET? HERE,OUTDOORSBIT \?ELS6 + CALL PICK-ONE,OUTDOOR-NOISE + PRINT STACK + JUMP ?CND4 +?ELS6: CALL PICK-ONE,INDOOR-NOISE + PRINT STACK +?CND4: CRLF + RANDOM 20 + ADD 30,STACK + CALL QUEUE,I-NOISE,STACK + RFALSE + + + .FUNCT OUT-OF-P-DEBUG + FSET FLASHLIGHT,ONBIT + MOVE GREEN-MATCH,PLAYER + MOVE FLASHLIGHT,PLAYER + PRINTI "Your flashlight comes on and a green match appears in your hand as you exit the work room." + CRLF + CRLF + EQUAL? P-WALK-DIR,P?NORTH \?ELS5 + RETURN CELLAR +?ELS5: EQUAL? P-WALK-DIR,P?SW \?ELS7 + RETURN ATTIC +?ELS7: EQUAL? P-WALK-DIR,P?WEST \?ELS9 + RETURN BOAT-DOCK +?ELS9: EQUAL? P-WALK-DIR,P?EAST \?ELS11 + RETURN HEART-OF-MAZE +?ELS11: EQUAL? P-WALK-DIR,P?SOUTH \?ELS13 + RETURN UPSTAIRS-HALL-MIDDLE +?ELS13: EQUAL? P-WALK-DIR,P?SE \?ELS15 + RETURN BOMB-SHELTER +?ELS15: EQUAL? P-WALK-DIR,P?NE \?ELS17 + RETURN CRAWL-SPACE-NORTH +?ELS17: EQUAL? P-WALK-DIR,P?NW \FALSE + RETURN CANNON-EMPLACEMENT + + .ENDI diff --git a/parlor.zil b/parlor.zil new file mode 100644 index 0000000..7991f89 --- /dev/null +++ b/parlor.zil @@ -0,0 +1,1161 @@ +"PARLOR for ANTHILL (C)1986 Infocom Inc. All rights reserved." + + + +; + + + + > + + ) + (T + )>) + ;( + > + + + + ) + (T + )>) + (T + )>) + ( + + > + )>) + ( + + > + ) + ( + > + )>> + + + + + ) + ;( + + + ) + (T + )>)>> + +)) + + > + "." CR>) + (T + + )> + )>> + +; + +; + ) + ( + + ) + ( + + )>> + +; + +; + )>> + + + + + + + )> + + + ) + ( + )> + + + ) + (T + )> + ) + ( + >> + + + + > + + )> + + + + + + + )>)>) + (T ;"no film in projector" + + + ) +;"semied to fix period bug" ;(T ;"lens cap on" + )>)> + ) + ( + ) + ( + > + + > + )> + ) + ( + > + > + ) + ( + > + " out first." CR>)>)>> + + + + ) + (T + )> + > + + + + )>> + +)) + + )> + + + " in it">) + (T + )> + + + ) + (T + )> + > + + + + + ) + ( + >> + + + + + ) + (T + )> + ) + ( + + );"add unfocus here" + ( + ) + ( + > + + > + >> + )> + )>> + + + + + + ) + ( + + )>> + + + + + + + + + +> ;"true if you solved projector puzzle" + + + + + > + + + + + ".\"~ + Love,~ + Aunt Hildegarde"> + + > + )>) +;"slide projector lens not focused" (T + )>) +;"no slide in slide projector" (T + )>) +;"slide projector isn't turn on" (T + )>) +;"projector on but no film" (T + + + + ) + (T + )>) +;"both projectors on and empty" (T + )>) +;"film proj on but not slide proj" (T + )>)>) + (T ;"film projector is doing nothing to screen" + + + + ) + (T + )>) + (T + )>) + (T ;"neither projector doing anything to screen" + )>)> + )>> + + + + + > + + + + + > + > + )> + ) + ( + > + ) + ( ;"UNATTACH" + >> + + ) + ( + + >> + > + )> + + + + + + + + > + ) + (T + )> + + + )> + ) + (T + )>)>> + + + + + + > + ) + (T + + + + ) + (T + )> + )>)> + ) + ( + ) + ( ;"UNATTACH" + )>> + + + + + + + + + + + ) + (T + )> + )> + ) + ( + > + ) + ( + ) ;"pass a string- focused the prso?" + (> + ) + (T + + ;"say more here?" + )>) + ;( ;"say more here?" + + ) + ( + )>> + +) + (ACTION PROJECTION-BOOTH-F)> + + + >> + + 1>>)>> + + + + )>> + +; + + > + ) + (T + ,SCREENING-ROOM)>> + + + +> + + + + + + + + + ) + (T + + + ) + (T + )> + )>)>> + +) + (ACTION PARLOR-F)> + + + + + ) + (T + )> + ) + (T + )> + + ) + ( + ) + (T + )> + + )> + )>> + + + + + ) ;"ADDED 10-31" + ( + + ) + (T + ,CRAWL-SPACE-NORTH)>) + (T + + )>> + + +"--- Crawl Space ---" + + + +> + + + + >> + + ) + (T + )>)>)>> + +)> + + + + + + + )> + + + + ) + (T + )> + )>> + + + + ) + (T + ,CRAWL-SPACE-SOUTH)>> + + + ,FIRST-SECRET-ROOM) + (T + + )>> + + + + + + + )>> + + + + " supporting the ceiling.">)> + + ;> + + + )>> + +> + +)> + + + + + + ;)>> + + + + + +> + + + ) + (T + )>) + (T + )>) + ( + > + ) + ( + + >) ;"SEM" + (T + )>) + ( + > + ) + ( + > + + > + + + >>> + )>) + ( + )>> + + + +> + + + + + > + > + + > + ) + ( + > + + + + ) + (T + + + )>) + ( + > + + )> + + )> + + ) + ( + > + + )> + + )> + + ) + ( + > + + + + ) + (T + + + + + + )>) + ( + > + ) + ( + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )> + )>) + (T + )>) + ( + ) + ( + + ) + ( + + ) + ( + + + ) + (T + )> + )>> + +; + + + )>> + + + + + + + + > + ) + (T + >)> + ) + ( + + >> + ) + ;( ;"HUH? SEM" + + )> + ) + ( + )>> + + +"--- Noise ---" + + + + )> + + + >) + (T + >)> + + >> + > + +> + +> + + +"--- Leftovers ---" + +; + +; + )>> + +; + > + )>)>> + +; + > + + ; + ; + ) + (T + )>> + +; + > + )>)>> + +; + > + + + + ) + (T + )>> + + + + + + + + + ,CELLAR) + ( + ,ATTIC) + ( + ,BOAT-DOCK) + ( + ,HEART-OF-MAZE) + ( + ,UPSTAIRS-HALL-MIDDLE) + ( + ,BOMB-SHELTER) + ( + ,CRAWL-SPACE-NORTH) + ( + ,CANNON-EMPLACEMENT)>> diff --git a/parser.zap b/parser.zap new file mode 100644 index 0000000..35c0330 --- /dev/null +++ b/parser.zap @@ -0,0 +1,2416 @@ + + + .FUNCT PARSER,PTR=P-LEXSTART,WRD,VAL=0,VERB=0,OF-FLAG=0,LEN,DIR=0,NW=0,LW=0,CNT=-1,OWINNER,OMERGED,TEMP=0,?TMP2,?TMP1 +?PRG1: IGRTR? 'CNT,P-ITBLLEN /?REP2 + ZERO? P-OFLAG \?CND8 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK +?CND8: PUT P-ITBL,CNT,0 + JUMP ?PRG1 +?REP2: SET 'OMERGED,P-MERGED + SET 'P-MERGED,FALSE-VALUE + SET 'P-END-ON-PREP,FALSE-VALUE + PUT P-PRSO,P-MATCHLEN,0 + PUT P-PRSI,P-MATCHLEN,0 + PUT P-BUTS,P-MATCHLEN,0 + SET 'OWINNER,WINNER + ZERO? P-OFLAG \?CND11 + SET 'P-PRSA-WORD,FALSE-VALUE +?CND11: ZERO? QUOTE-FLAG \?CND14 + EQUAL? WINNER,PLAYER /?CND14 + SET 'WINNER,PLAYER + SET 'LAST-PLAYER-LOC,HERE + LOC WINNER + FSET? STACK,VEHBIT /?CND19 + SET 'LAST-PLAYER-LOC,HERE + LOC WINNER >HERE +?CND19: CALL LIT?,HERE >LIT +?CND14: ZERO? RESERVE-PTR /?ELS24 + SET 'PTR,RESERVE-PTR + CALL STUFF,P-LEXV,RESERVE-LEXV + ZERO? VERBOSITY /?CND26 + EQUAL? PLAYER,WINNER \?CND26 + CRLF +?CND26: SET 'RESERVE-PTR,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + JUMP ?CND22 +?ELS24: ZERO? P-CONT /?ELS32 + SET 'PTR,P-CONT + SET 'P-CONT,FALSE-VALUE + ZERO? SAYING? /?ELS36 + SET 'SAYING?,FALSE-VALUE + JUMP ?CND22 +?ELS36: ZERO? VERBOSITY /?CND22 + EQUAL? PLAYER,WINNER \?CND22 + CRLF + JUMP ?CND22 +?ELS32: SET 'SAYING?,FALSE-VALUE + SET 'WINNER,PLAYER + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'LAST-PLAYER-LOC,HERE + LOC WINNER + FSET? STACK,VEHBIT /?CND44 + SET 'LAST-PLAYER-LOC,HERE + LOC WINNER >HERE +?CND44: CALL LIT?,HERE >LIT + ZERO? VERBOSITY /?CND47 + CRLF +?CND47: PUTB P-LEXV,0,59 + PRINTC 62 + READ P-INBUF,P-LEXV +?CND22: GETB P-LEXV,P-LEXWORDS >P-LEN + GET P-LEXV,PTR + EQUAL? W?QUOTE,STACK \?CND50 + CALL QCONTEXT-GOOD? + ZERO? STACK /?CND50 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND50: GET P-LEXV,PTR + EQUAL? W?THEN,STACK \?CND55 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND55: LESS? 1,P-LEN \?CND58 + GET P-LEXV,PTR + EQUAL? W?GO,STACK \?CND58 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW + ZERO? NW /?CND58 + CALL WT?,NW,64 + ZERO? STACK /?CND58 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND58: ZERO? P-LEN \?ELS65 + PRINTI "[Beg pardon?]" + CRLF + RFALSE +?ELS65: GET P-LEXV,PTR + EQUAL? STACK,W?OOPS \?ELS67 + GRTR? P-LEN,1 /?ELS70 + PRINTI "[You can't use OOPS that way.]" + CRLF + RFALSE +?ELS70: GET OOPS-TABLE,O-PTR + ZERO? STACK /?ELS72 + GET OOPS-TABLE,O-PTR >?TMP1 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + PUT AGAIN-LEXV,?TMP1,STACK + SET 'WINNER,OWINNER + MUL PTR,P-LEXELEN + ADD STACK,6 + GETB P-LEXV,STACK >?TMP2 + MUL PTR,P-LEXELEN + ADD STACK,7 + GETB P-LEXV,STACK >?TMP1 + GET OOPS-TABLE,O-PTR + MUL STACK,P-LEXELEN + ADD STACK,3 + CALL INBUF-ADD,?TMP2,?TMP1,STACK + CALL STUFF,P-LEXV,AGAIN-LEXV + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >PTR + CALL INBUF-STUFF,P-INBUF,OOPS-INBUF + JUMP ?CND63 +?ELS72: PUT OOPS-TABLE,O-END,FALSE-VALUE + PRINTI "[There was no word to replace!]" + CRLF + RFALSE +?ELS67: PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND63: GET P-LEXV,PTR + EQUAL? STACK,W?AGAIN,W?G \?ELS79 + ZERO? P-OFLAG \?THN83 + ZERO? P-WON \?ELS82 +?THN83: PRINTI "[You can't use AGAIN that way.]" + CRLF + RFALSE +?ELS82: GRTR? P-LEN,1 \?ELS86 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA,W?THEN /?THN90 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?AND \?ELS89 +?THN90: ADD PTR,4 >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,2 + PUTB P-LEXV,P-LEXWORDS,STACK + JUMP ?CND80 +?ELS89: PRINTI "[I couldn't understand that sentence.]" + CRLF + RFALSE +?ELS86: ADD PTR,P-LEXELEN >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,1 + PUTB P-LEXV,P-LEXWORDS,STACK +?CND80: GETB P-LEXV,P-LEXWORDS + GRTR? STACK,0 \?ELS98 + CALL STUFF,RESERVE-LEXV,P-LEXV + SET 'RESERVE-PTR,PTR + JUMP ?CND96 +?ELS98: SET 'RESERVE-PTR,FALSE-VALUE +?CND96: SET 'WINNER,OWINNER + SET 'P-MERGED,OMERGED + CALL INBUF-STUFF,P-INBUF,OOPS-INBUF + CALL STUFF,P-LEXV,AGAIN-LEXV + SET 'CNT,-1 + SET 'DIR,P-WALK-DIR +?PRG101: IGRTR? 'CNT,P-ITBLLEN /?CND77 + GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG101 +?ELS79: SET 'P-NUMBER,-1 + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + SET 'P-ADVERB,FALSE-VALUE + CALL STUFF,AGAIN-LEXV,P-LEXV + CALL INBUF-STUFF,OOPS-INBUF,P-INBUF + PUT OOPS-TABLE,O-START,PTR + MUL 4,P-LEN + PUT OOPS-TABLE,O-LENGTH,STACK + SET 'RESERVE-PTR,FALSE-VALUE + SET 'LEN,P-LEN + SET 'P-NCN,0 + SET 'P-GETFLAGS,0 + PUT P-ITBL,P-VERBN,0 + SET 'P-SENTENCE,PTR +?PRG110: DLESS? 'P-LEN,0 \?ELS114 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND77 +?ELS114: GET P-LEXV,PTR >WRD + CALL BUZZER-WORD?,WRD + ZERO? STACK \FALSE + ZERO? WRD \?THN119 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?ELS118 +?THN119: ZERO? P-LEN \?ELS123 + SET 'NW,0 + JUMP ?CND121 +?ELS123: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND121: EQUAL? WRD,W?TO \?ELS128 + EQUAL? VERB,ACT?TELL,ACT?ASK \?ELS128 + PUT P-ITBL,P-VERB,ACT?TELL + SET 'WRD,W?QUOTE + JUMP ?CND126 +?ELS128: EQUAL? WRD,W?THEN \?CND126 + ZERO? VERB \?CND126 + ZERO? QUOTE-FLAG \?CND126 + GET P-ITBL,P-NC1 + ZERO? STACK /?CND126 + PUT P-ITBL,P-VERB,ACT?TELL + PUT P-ITBL,P-VERBN,0 + SET 'WRD,W?QUOTE +?CND126: EQUAL? WRD,W?PERIOD \?ELS137 + EQUAL? LW,W?MR,W?MISS,W?MRS \?ELS137 + SET 'LW,0 + JUMP ?CND112 +?ELS137: EQUAL? WRD,W?THEN,W?PERIOD,W?QUOTE \?ELS141 + EQUAL? WRD,W?QUOTE \?CND142 + ZERO? QUOTE-FLAG /?ELS147 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND142 +?ELS147: SET 'QUOTE-FLAG,TRUE-VALUE +?CND142: ZERO? P-LEN /?THN151 + ADD PTR,P-LEXELEN >P-CONT +?THN151: PUTB P-LEXV,P-LEXWORDS,P-LEN + JUMP ?CND77 +?ELS141: CALL WT?,WRD,16,3 >VAL + ZERO? VAL /?ELS154 + EQUAL? VERB,FALSE-VALUE,ACT?WALK,ACT?GO \?ELS154 + EQUAL? LEN,1 /?THN157 + EQUAL? LEN,2 \?ELS160 + EQUAL? VERB,ACT?WALK,ACT?GO /?THN157 +?ELS160: EQUAL? NW,W?THEN,W?PERIOD,W?QUOTE \?ELS162 + GRTR? LEN,1 /?THN157 +?ELS162: ZERO? QUOTE-FLAG /?ELS164 + EQUAL? LEN,2 \?ELS164 + EQUAL? NW,W?QUOTE /?THN157 +?ELS164: GRTR? LEN,2 \?ELS154 + EQUAL? NW,W?COMMA,W?AND \?ELS154 +?THN157: SET 'DIR,VAL + EQUAL? NW,W?COMMA,W?AND \?CND167 + ADD PTR,P-LEXELEN + CALL CHANGE-LEXV,STACK,W?THEN +?CND167: GRTR? LEN,2 /?CND112 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND77 +?ELS154: CALL WT?,WRD,64,1 >VAL + ZERO? VAL /?ELS174 + ZERO? VERB \?ELS174 + SET 'P-PRSA-WORD,WRD + SET 'VERB,VAL + PUT P-ITBL,P-VERB,VAL + PUT P-ITBL,P-VERBN,P-VTBL + PUT P-VTBL,0,WRD + MUL PTR,2 + ADD STACK,2 >TEMP + GETB P-LEXV,TEMP + PUTB P-VTBL,2,STACK + ADD TEMP,1 + GETB P-LEXV,STACK + PUTB P-VTBL,3,STACK + JUMP ?CND112 +?ELS174: CALL WT?,WRD,8,0 >VAL + ZERO? VAL \?THN179 + EQUAL? WRD,W?A /?THN183 + EQUAL? WRD,W?BOTH,W?ALL,W?EVERYTHING /?THN183 + CALL WT?,WRD,32 + ZERO? STACK \?THN183 + CALL WT?,WRD,128 + ZERO? STACK /?ELS178 +?THN183: SET 'VAL,0 \?ELS178 +?THN179: GRTR? P-LEN,1 \?ELS187 + EQUAL? NW,W?OF \?ELS187 + EQUAL? VERB,ACT?TAKE /?ELS187 + ZERO? VAL \?ELS187 + EQUAL? WRD,W?A /?ELS187 + EQUAL? WRD,W?ALL,W?BOTH,W?EVERYTHING /?ELS187 + SET 'OF-FLAG,TRUE-VALUE + JUMP ?CND112 +?ELS187: ZERO? VAL /?ELS191 + ZERO? P-LEN /?THN194 + EQUAL? NW,W?THEN,W?PERIOD \?ELS191 +?THN194: SET 'P-END-ON-PREP,TRUE-VALUE + LESS? P-NCN,2 \?CND112 + PUT P-ITBL,P-PREP1,VAL + PUT P-ITBL,P-PREP1N,WRD + JUMP ?CND112 +?ELS191: EQUAL? P-NCN,2 \?ELS200 + PRINTI "[There are too many nouns in that sentence!]" + CRLF + RFALSE +?ELS200: INC 'P-NCN + CALL CLAUSE,PTR,VAL,WRD >PTR + ZERO? PTR /FALSE + LESS? PTR,0 \?CND112 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND77 +?ELS178: EQUAL? WRD,W?OF \?ELS209 + ZERO? OF-FLAG /?THN213 + EQUAL? NW,W?PERIOD,W?THEN \?ELS212 +?THN213: CALL CANT-USE,PTR + RFALSE +?ELS212: SET 'OF-FLAG,FALSE-VALUE + JUMP ?CND112 +?ELS209: CALL WT?,WRD,4 + ZERO? STACK \?CND112 + EQUAL? VERB,ACT?TELL \?ELS220 + CALL WT?,WRD,64 + ZERO? STACK /?ELS220 + CALL WAY-TO-TALK + RFALSE +?ELS220: CALL CANT-USE,PTR + RFALSE +?ELS118: CALL UNKNOWN-WORD,PTR + RFALSE +?CND112: SET 'LW,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG110 +?CND77: PUT OOPS-TABLE,O-PTR,FALSE-VALUE + ZERO? DIR /?CND227 + SET 'PRSA,V?WALK + SET 'P-WALK-DIR,DIR + SET 'PRSO,DIR + SET 'P-OFLAG,FALSE-VALUE + RTRUE +?CND227: SET 'P-WALK-DIR,FALSE-VALUE + ZERO? P-OFLAG /?CND231 + CALL ORPHAN-MERGE + ZERO? STACK /?CND231 + SET 'WINNER,OWINNER +?CND231: ZERO? P-CONT /?CND236 + GET P-ITBL,P-VERB + ZERO? STACK \?CND236 + GET P-ITBL,P-NC1 + ZERO? STACK /?CND236 + PUT P-ITBL,P-VERB,ACT?TELL +?CND236: CALL SYNTAX-CHECK + ZERO? STACK /FALSE + CALL SNARF-OBJECTS + ZERO? STACK /FALSE + CALL MANY-CHECK + ZERO? STACK /FALSE + CALL TAKE-CHECK + ZERO? STACK /FALSE + RTRUE + + + .FUNCT CHANGE-LEXV,PTR,WRD + PUT P-LEXV,PTR,WRD + PUT AGAIN-LEXV,PTR,WRD + RTRUE + + + .FUNCT WAY-TO-TALK + PRINTR "[Refer to your HOLLYWOOD HIJINX manual for the correct way to talk to characters.]" + + + .FUNCT WT?,PTR,BIT,B1=5,OFFS=P-P1OFF,TYP + GETB PTR,P-PSOFF >TYP + BTST TYP,BIT \FALSE + GRTR? B1,4 /TRUE + BAND TYP,P-P1BITS >TYP + EQUAL? TYP,B1 /?CND13 + INC 'OFFS +?CND13: GETB PTR,OFFS + RSTACK + + + .FUNCT CLAUSE,PTR,VAL,WRD,OFF,NUM,ANDFLG=0,FIRST??=1,NW,LW=0,LEN,?TMP1 + SUB P-NCN,1 + MUL STACK,2 >OFF + ZERO? VAL /?ELS3 + GET P-LEXV,PTR + EQUAL? STACK,W?RIGHT,W?LEFT \?ELS3 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?END \?ELS3 + SET 'VAL,0 + INC 'P-LEN + JUMP ?CND1 +?ELS3: ZERO? VAL /?ELS7 + ADD P-PREP1,OFF >NUM + PUT P-ITBL,NUM,VAL + ADD NUM,1 + PUT P-ITBL,STACK,WRD + ADD PTR,P-LEXELEN >PTR + EQUAL? WRD,W?TO /?CND1 + SET 'LEN,P-LEN +?PRG11: DEC 'LEN + GET P-LEXV,PTR >WRD + EQUAL? WRD,W?LEFT,W?RIGHT \?CND1 + GRTR? LEN,0 \?CND1 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?END /?CND1 + CALL WT?,WRD,8,0 >VAL + PUT P-ITBL,NUM,VAL + ADD NUM,1 + PUT P-ITBL,STACK,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG11 +?ELS7: INC 'P-LEN +?CND1: ZERO? P-LEN \?CND22 + DEC 'P-NCN + RETURN -1 +?CND22: ADD P-NC1,OFF >NUM + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,NUM,STACK + GET P-LEXV,PTR + EQUAL? STACK,W?THE,W?A,W?AN \?CND25 + GET P-ITBL,NUM + ADD STACK,4 + PUT P-ITBL,NUM,STACK + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND25: +?PRG28: DLESS? 'P-LEN,0 \?CND30 + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN -1 +?CND30: GET P-LEXV,PTR >WRD + CALL BUZZER-WORD?,WRD + ZERO? STACK \FALSE + ZERO? WRD \?THN38 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?ELS37 +?THN38: ZERO? P-LEN \?ELS42 + SET 'NW,0 + JUMP ?CND40 +?ELS42: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND40: EQUAL? WRD,W?PERIOD \?ELS47 + EQUAL? LW,W?MR,W?MRS,W?MISS \?ELS47 + SET 'LW,0 + JUMP ?CND33 +?ELS47: EQUAL? WRD,W?AND,W?COMMA \?ELS51 + SET 'ANDFLG,TRUE-VALUE + JUMP ?CND33 +?ELS51: EQUAL? WRD,W?ALL,W?BOTH,W?EVERYTHING \?ELS53 + EQUAL? NW,W?OF \?CND33 + DEC 'P-LEN + ADD PTR,P-LEXELEN >PTR + JUMP ?CND33 +?ELS53: EQUAL? WRD,W?THEN,W?PERIOD /?THN59 + CALL WT?,WRD,8 + ZERO? STACK /?ELS58 + GET P-ITBL,P-VERB + ZERO? STACK /?ELS58 + ZERO? FIRST?? \?ELS58 +?THN59: INC 'P-LEN + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + SUB PTR,P-LEXELEN + RSTACK +?ELS58: ZERO? ANDFLG /?ELS64 + GET P-ITBL,P-VERBN + ZERO? STACK /?THN67 + CALL VERB-DIR-ONLY?,WRD + ZERO? STACK /?ELS64 +?THN67: SUB PTR,4 >PTR + ADD PTR,2 + CALL CHANGE-LEXV,STACK,W?THEN + ADD P-LEN,2 >P-LEN + JUMP ?CND33 +?ELS64: CALL WT?,WRD,128 + ZERO? STACK /?ELS70 + GRTR? P-LEN,0 \?ELS73 + EQUAL? NW,W?OF \?ELS73 + EQUAL? WRD,W?ALL,W?EVERYTHING \?CND33 +?ELS73: CALL WT?,WRD,32 + ZERO? STACK /?ELS77 + ZERO? NW /?ELS77 + CALL WT?,NW,128 + ZERO? STACK \?CND33 +?ELS77: ZERO? ANDFLG \?ELS81 + EQUAL? NW,W?BUT,W?EXCEPT /?ELS81 + EQUAL? NW,W?AND,W?COMMA /?ELS81 + ADD NUM,1 >?TMP1 + ADD PTR,2 + MUL STACK,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN PTR +?ELS81: SET 'ANDFLG,FALSE-VALUE + JUMP ?CND33 +?ELS70: CALL WT?,WRD,32 + ZERO? STACK \?CND33 + CALL WT?,WRD,4 + ZERO? STACK \?CND33 + ZERO? ANDFLG /?ELS91 + GET P-ITBL,P-VERB + ZERO? STACK \?ELS91 + SUB PTR,4 >PTR + ADD PTR,2 + CALL CHANGE-LEXV,STACK,W?THEN + ADD P-LEN,2 >P-LEN + JUMP ?CND33 +?ELS91: CALL WT?,WRD,8 + ZERO? STACK \?CND33 + CALL CANT-USE,PTR + RFALSE +?ELS37: CALL UNKNOWN-WORD,PTR + RFALSE +?CND33: SET 'LW,WRD + SET 'FIRST??,FALSE-VALUE + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG28 + + + .FUNCT THIS-IS-IT,OBJ + EQUAL? OBJ,FALSE-VALUE,PLAYER,NOT-HERE-OBJECT /TRUE + EQUAL? OBJ,INTDIR /TRUE + EQUAL? PRSA,V?WALK,V?WALK-TO \?ELS9 + EQUAL? OBJ,PRSO /TRUE +?ELS9: SET 'P-THEM-OBJECT,OBJ + SET 'P-IT-OBJECT,OBJ + RTRUE + + + .FUNCT REFERRING,WHO=0 + PRINTI "[I don't see wh" + ZERO? WHO /?ELS3 + PRINTI "om" + JUMP ?CND1 +?ELS3: PRINTI "at" +?CND1: PRINTR " you're referring to.]" + + + .FUNCT FAKE-ORPHAN,TMP,?TMP1 + CALL ORPHAN,P-SYNTAX,FALSE-VALUE + PRINTI "[Be specific: what object do you want to " + GET P-OTBL,P-VERBN >TMP + ZERO? TMP \?ELS3 + PRINTI "tell" + JUMP ?CND1 +?ELS3: GETB P-VTBL,2 + ZERO? STACK \?ELS5 + GET TMP,0 + PRINTB STACK + JUMP ?CND1 +?ELS5: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK + PUTB P-VTBL,2,0 +?CND1: SET 'P-OFLAG,TRUE-VALUE + SET 'P-WON,FALSE-VALUE + PRINTR "?]" + + + .FUNCT SEE-VERB? + EQUAL? PRSA,V?LOOK,V?EXAMINE,V?LOOK-INSIDE /TRUE + EQUAL? PRSA,V?SEARCH,V?FIND,V?LOOK-ON /TRUE + EQUAL? PRSA,V?OPEN /TRUE + EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND,V?READ /TRUE + EQUAL? PRSA,V?LOOK-THRU,V?LOOK-DOWN,V?COUNT /TRUE + EQUAL? PRSA,V?PLAY \FALSE + RTRUE + + + .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI + ZERO? DEBUG /?CND1 + PRINTI "[Perform: " + PRINTN A + ZERO? O /?CND5 + PRINTC 47 + EQUAL? A,V?WALK \?ELS11 + PRINTN O + JUMP ?CND5 +?ELS11: CALL DPRINT,O +?CND5: ZERO? I /?CND14 + PRINTC 47 + CALL DPRINT,I +?CND14: PRINTC 93 + CRLF +?CND1: SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + SET 'PRSA,A + ZERO? LIT \?ELS20 + CALL SEE-VERB? + ZERO? STACK /?ELS20 + CALL TOO-DARK + RETURN 2 +?ELS20: EQUAL? A,V?WALK /?CND18 + EQUAL? IT,I,O \?CND27 + ZERO? P-IT-OBJECT /?ELS32 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CND27 +?ELS32: ZERO? I \?ELS39 + CALL FAKE-ORPHAN + RETURN 2 +?ELS39: CALL REFERRING + RETURN 2 +?CND27: EQUAL? THEM,I,O \?CND44 + ZERO? P-THEM-OBJECT /?ELS49 + CALL VISIBLE?,P-THEM-OBJECT + ZERO? STACK /?ELS49 + ZERO? DEBUG /?CND52 + PRINTI "[them=" + CALL DPRINT,P-THEM-OBJECT + PRINTC 93 + CRLF +?CND52: EQUAL? THEM,O \?CND56 + SET 'O,P-THEM-OBJECT +?CND56: EQUAL? THEM,I \?CND44 + SET 'I,P-THEM-OBJECT + JUMP ?CND44 +?ELS49: ZERO? I \?ELS66 + CALL FAKE-ORPHAN + RETURN 2 +?ELS66: CALL REFERRING,TRUE-VALUE + RETURN 2 +?CND44: EQUAL? HER,I,O \?CND71 + ZERO? P-HER-OBJECT /?ELS76 + CALL VISIBLE?,P-HER-OBJECT + ZERO? STACK /?ELS76 + ZERO? DEBUG /?CND79 + PRINTI "[her=" + CALL DPRINT,P-HER-OBJECT + PRINTC 93 + CRLF +?CND79: EQUAL? HER,O \?CND83 + SET 'O,P-HER-OBJECT +?CND83: EQUAL? HER,I \?CND71 + SET 'I,P-HER-OBJECT + JUMP ?CND71 +?ELS76: ZERO? I \?ELS93 + CALL FAKE-ORPHAN + RETURN 2 +?ELS93: CALL REFERRING,TRUE-VALUE + RETURN 2 +?CND71: EQUAL? HIM,I,O \?CND98 + ZERO? P-HIM-OBJECT /?ELS103 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK /?ELS103 + ZERO? DEBUG /?CND106 + PRINTI "[him=" + CALL DPRINT,P-HIM-OBJECT + PRINTC 93 + CRLF +?CND106: EQUAL? HIM,O \?CND110 + SET 'O,P-HIM-OBJECT +?CND110: EQUAL? HIM,I \?CND98 + SET 'I,P-HIM-OBJECT + JUMP ?CND98 +?ELS103: ZERO? I \?ELS120 + CALL FAKE-ORPHAN + RETURN 2 +?ELS120: CALL REFERRING,TRUE-VALUE + RETURN 2 +?CND98: EQUAL? O,IT \?CND125 + SET 'O,P-IT-OBJECT + ZERO? DEBUG /?CND125 + PRINTI "[it=" + CALL DPRINT,O + PRINTC 93 + CRLF +?CND125: EQUAL? I,IT \?CND18 + SET 'I,P-IT-OBJECT + ZERO? DEBUG /?CND18 + PRINTI "[it=" + CALL DPRINT,O + PRINTC 93 + CRLF +?CND18: SET 'PRSI,I + SET 'PRSO,O + SET 'V,FALSE-VALUE + EQUAL? A,V?WALK /?CND139 + EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CND139 + CALL NOT-HERE-OBJECT-F >V + ZERO? V /?CND139 + SET 'P-WON,FALSE-VALUE +?CND139: CALL THIS-IS-IT,PRSI + CALL THIS-IS-IT,PRSO + SET 'O,PRSO + SET 'I,PRSI + ZERO? V \?CND148 + GETP WINNER,P?ACTION + CALL STACK >V +?CND148: ZERO? V \?CND151 + LOC WINNER + GETP STACK,P?ACTION + CALL STACK,M-BEG >V +?CND151: ZERO? V \?CND154 + GET PREACTIONS,A + CALL STACK >V +?CND154: ZERO? V \?CND157 + ZERO? I /?CND157 + EQUAL? A,V?WALK /?CND157 + LOC I + ZERO? STACK /?CND157 + LOC I + GETP STACK,P?CONTFCN >V + ZERO? V /?CND157 + CALL V,M-CONT >V +?CND157: ZERO? V \?CND166 + ZERO? I /?CND166 + GETP I,P?ACTION + CALL STACK >V +?CND166: ZERO? V \?CND171 + ZERO? O /?CND171 + EQUAL? A,V?WALK /?CND171 + LOC O + ZERO? STACK /?CND171 + LOC O + GETP STACK,P?CONTFCN >V + ZERO? V /?CND171 + CALL V,M-CONT >V +?CND171: ZERO? V \?CND180 + ZERO? O /?CND180 + EQUAL? A,V?WALK /?CND180 + GETP O,P?ACTION + CALL STACK >V + ZERO? V /?CND180 + CALL THIS-IS-IT,O +?CND180: ZERO? V \?CND189 + GET ACTIONS,A + CALL STACK >V +?CND189: EQUAL? V,M-FATAL /?CND192 + CALL GAME-VERB? + ZERO? STACK \?CND192 + GETP HERE,P?ACTION + CALL STACK,M-END >V +?CND192: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + + .FUNCT BUZZER-WORD?,WORD + CALL NUMBER-WORD?,WORD + ZERO? STACK \TRUE + CALL NAUGHTY-WORD?,WORD + ZERO? STACK /FALSE + RTRUE + + + .FUNCT NUMBER-WORD?,WRD + EQUAL? WRD,W?ONE /?THN6 + EQUAL? WRD,W?TWO,W?THREE,W?FOUR /?THN6 + EQUAL? WRD,W?FIVE,W?SIX,W?SEVEN /?THN6 + EQUAL? WRD,W?EIGHT,W?NINE,W?TEN /?THN6 + EQUAL? WRD,W?ELEVEN,W?TWELVE,W?THIRTE /?THN6 + EQUAL? WRD,W?FOURTE,W?FIFTEE,W?SIXTEE /?THN6 + EQUAL? WRD,W?SEVENT,W?EIGHTE,W?NINETE /?THN6 + EQUAL? WRD,W?TWENTY,W?THIRTY,W?FORTY /?THN6 + EQUAL? WRD,W?FIFTY,W?SIXTY,W?EIGHTY /?THN6 + EQUAL? WRD,W?NINETY,W?HUNDRE,W?THOUSA /?THN6 + EQUAL? WRD,W?MILLIO,W?BILLIO,W?ZERO \FALSE +?THN6: PRINTR "[Use numerals for numbers, for example ""10.""]" + + + .FUNCT NAUGHTY-WORD?,WORD + EQUAL? WORD,W?CURSE,W?GODDAMNED,W?CUSS /?THN6 + EQUAL? WORD,W?DAMN,W?SHIT,W?FUCK /?THN6 + EQUAL? WORD,W?SHITHEAD,W?PISS,W?SUCK /?THN6 + EQUAL? WORD,W?BASTARD,W?SCREW,W?FUCKING /?THN6 + EQUAL? WORD,W?DAMNED,W?PEE,W?COCKSUCKER /?THN6 + EQUAL? WORD,W?FUCKED,W?CUNT,W?ASSHOLE /?THN6 + EQUAL? WORD,W?BITCH \FALSE +?THN6: CALL PICK-ONE,OFFENDED + PRINT STACK + CRLF + RTRUE + + + .FUNCT VERB-DIR-ONLY?,WRD,?ORTMP + CALL WT?,WRD,128 + ZERO? STACK \FALSE + CALL WT?,WRD,32 + ZERO? STACK \FALSE + CALL WT?,WRD,16 + POP '?ORTMP + ZERO? ?ORTMP /?ORP6 + RETURN ?ORTMP +?ORP6: CALL WT?,WRD,64 + RSTACK + + + .FUNCT STUFF,DEST,SRC,MAX=29,PTR=P-LEXSTART,CTR=1,BPTR + GETB SRC,0 + PUTB DEST,0,STACK + GETB SRC,1 + PUTB DEST,1,STACK +?PRG1: GET SRC,PTR + PUT DEST,PTR,STACK + MUL PTR,2 + ADD STACK,2 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + MUL PTR,2 + ADD STACK,3 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + ADD PTR,P-LEXELEN >PTR + IGRTR? 'CTR,MAX \?PRG1 + RTRUE + + + .FUNCT INBUF-STUFF,DEST,SRC,CNT=-1 +?PRG1: IGRTR? 'CNT,59 /TRUE + GETB SRC,CNT + PUTB DEST,CNT,STACK + JUMP ?PRG1 + + + .FUNCT INBUF-ADD,LEN,BEG,SLOT,DBEG,CTR=0,TMP,?TMP1 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?ELS3 + SET 'DBEG,TMP + JUMP ?CND1 +?ELS3: GET OOPS-TABLE,O-LENGTH >TMP + GETB AGAIN-LEXV,TMP >?TMP1 + ADD TMP,1 + GETB AGAIN-LEXV,STACK + ADD ?TMP1,STACK >DBEG +?CND1: ADD DBEG,LEN + PUT OOPS-TABLE,O-END,STACK +?PRG6: ADD DBEG,CTR >?TMP1 + ADD BEG,CTR + GETB P-INBUF,STACK + PUTB OOPS-INBUF,?TMP1,STACK + INC 'CTR + EQUAL? CTR,LEN \?PRG6 + PUTB AGAIN-LEXV,SLOT,DBEG + SUB SLOT,1 + PUTB AGAIN-LEXV,STACK,LEN + RTRUE + + + .FUNCT NUMBER?,PTR,CNT,BPTR,CHR,SUM=0,TIM=0,EXC=0,NOHYP?=0,?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,2 >CNT + EQUAL? CNT,7 \?CND1 + SET 'NOHYP?,TRUE-VALUE +?CND1: MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,3 >BPTR +?PRG4: DLESS? 'CNT,0 /?REP5 + GETB P-INBUF,BPTR >CHR + ZERO? NOHYP? /?CND11 + EQUAL? CNT,3 \?CND11 + EQUAL? CHR,45 /?CND11 + ZERO? TIM \FALSE + SET 'EXC,SUM + SET 'SUM,0 +?CND11: EQUAL? CHR,58 \?ELS22 + ZERO? EXC \FALSE + SET 'TIM,SUM + SET 'SUM,0 + JUMP ?CND20 +?ELS22: EQUAL? CHR,45 \?ELS28 + SET 'NOHYP?,FALSE-VALUE + ZERO? TIM \FALSE + SET 'EXC,SUM + SET 'SUM,0 + JUMP ?CND20 +?ELS28: GRTR? SUM,9999 \?ELS34 + SET 'SUM,10000 + JUMP ?REP5 +?ELS34: LESS? CHR,58 \FALSE + GRTR? CHR,47 \FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM +?CND20: INC 'BPTR + JUMP ?PRG4 +?REP5: PUT P-LEXV,PTR,W?INTNUM + PUT AGAIN-LEXV,PTR,W?INTNUM + ZERO? EXC /?ELS43 + SET 'P-EXCHANGE,EXC + JUMP ?CND41 +?ELS43: ZERO? TIM /?ELS46 + SET 'P-EXCHANGE,0 + GRTR? TIM,23 /FALSE + GRTR? TIM,19 /?CND48 + GRTR? TIM,12 /FALSE + GRTR? TIM,7 /?CND48 + ADD 12,TIM >TIM +?CND48: MUL TIM,60 + ADD SUM,STACK >SUM + JUMP ?CND41 +?ELS46: SET 'P-EXCHANGE,0 +?CND41: SET 'P-NUMBER,SUM + RETURN W?INTNUM + + + .FUNCT ORPHAN-MERGE,CNT=-1,TEMP,VERB,BEG,END,ADJ=0,WRD,?TMP1 + SET 'P-OFLAG,FALSE-VALUE + GET P-ITBL,P-VERBN + GET STACK,0 >WRD + CALL WT?,WRD,64,1 >?TMP1 + GET P-OTBL,P-VERB + EQUAL? ?TMP1,STACK /?THN4 + CALL WT?,WRD,32 + ZERO? STACK /?ELS3 +?THN4: SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?ELS3: CALL WT?,WRD,128,0 + ZERO? STACK /?CND1 + ZERO? P-NCN \?CND1 + PUT P-ITBL,P-VERB,0 + PUT P-ITBL,P-VERBN,0 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK + SET 'P-NCN,1 +?CND1: GET P-ITBL,P-VERB >VERB + ZERO? VERB /?ELS12 + ZERO? ADJ \?ELS12 + GET P-OTBL,P-VERB + EQUAL? VERB,STACK \FALSE +?ELS12: EQUAL? P-NCN,2 /FALSE + GET P-OTBL,P-NC1 + EQUAL? STACK,1 \?ELS18 + GET P-ITBL,P-PREP1 >TEMP + ZERO? TEMP /?THN22 + GET P-OTBL,P-PREP1 + EQUAL? TEMP,STACK \FALSE +?THN22: ZERO? ADJ /?ELS26 + ADD P-LEXV,2 + PUT P-OTBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND28 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND28: ZERO? P-NCN \?CND24 + SET 'P-NCN,1 + JUMP ?CND24 +?ELS26: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC1,STACK +?CND24: GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC1L,STACK + JUMP ?CND10 +?ELS18: GET P-OTBL,P-NC2 + EQUAL? STACK,1 \?ELS39 + GET P-ITBL,P-PREP1 >TEMP + ZERO? TEMP /?THN43 + GET P-OTBL,P-PREP2 + EQUAL? TEMP,STACK \FALSE +?THN43: ZERO? ADJ /?CND45 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND45 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND45: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC2,STACK + GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC2L,STACK + SET 'P-NCN,2 + JUMP ?CND10 +?ELS39: ZERO? P-ACLAUSE /?CND10 + EQUAL? P-NCN,1 /?ELS59 + ZERO? ADJ \?ELS59 + SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS59: GET P-ITBL,P-NC1 >BEG + ZERO? ADJ /?CND64 + ADD P-LEXV,2 >BEG + SET 'ADJ,FALSE-VALUE +?CND64: GET P-ITBL,P-NC1L >END +?PRG68: GET BEG,0 >WRD + EQUAL? BEG,END \?ELS72 + ZERO? ADJ /?ELS75 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS75: SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS72: EQUAL? WRD,W?ALL,W?ONE /?THN81 + GETB WRD,P-PSOFF + BTST STACK,32 \?ELS80 + CALL ADJ-CHECK,WRD,ADJ + ZERO? STACK /?ELS80 +?THN81: SET 'ADJ,WRD + JUMP ?CND70 +?ELS80: EQUAL? WRD,W?ONE \?ELS86 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS86: GETB WRD,P-PSOFF + BTST STACK,128 \?CND70 + ADD BEG,P-WORDLEN + EQUAL? STACK,END \?CND70 + EQUAL? WRD,P-ANAM \?ELS93 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS93: CALL CLAUSE-WIN + JUMP ?CND10 +?CND70: ADD BEG,P-WORDLEN >BEG + ZERO? END \?PRG68 + SET 'END,BEG + SET 'P-NCN,1 + SUB BEG,4 + PUT P-ITBL,P-NC1,STACK + PUT P-ITBL,P-NC1L,BEG + JUMP ?PRG68 +?CND10: GET P-OVTBL,0 + PUT P-VTBL,0,STACK + GETB P-OVTBL,2 + PUTB P-VTBL,2,STACK + GETB P-OVTBL,3 + PUTB P-VTBL,3,STACK + PUT P-OTBL,P-VERBN,P-VTBL + PUTB P-VTBL,2,0 +?PRG99: IGRTR? 'CNT,P-ITBLLEN \?ELS103 + SET 'P-MERGED,TRUE-VALUE + RTRUE +?ELS103: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG99 + + + .FUNCT CLAUSE-WIN,ADJ=0 + ZERO? ADJ /?ELS3 + GET P-OTBL,P-VERB + PUT P-ITBL,P-VERB,STACK + JUMP ?CND1 +?ELS3: SET 'ADJ,TRUE-VALUE +?CND1: PUT P-CCTBL,CC-SBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-SEPTR,STACK + EQUAL? P-ACLAUSE,P-NC1 \?ELS9 + PUT P-CCTBL,CC-OCLAUSE,P-OCL1 + JUMP ?CND7 +?ELS9: PUT P-CCTBL,CC-OCLAUSE,P-OCL2 +?CND7: CALL CLAUSE-COPY,P-OTBL,P-OTBL,ADJ + GET P-OTBL,P-NC2 + ZERO? STACK /?ELS13 + SET 'P-NCN,2 +?ELS13: SET 'P-ACLAUSE,FALSE-VALUE + RTRUE + + + .FUNCT WORD-PRINT,CNT,BUF +?PRG1: DLESS? 'CNT,0 /TRUE + GETB P-INBUF,BUF + PRINTC STACK + INC 'BUF + JUMP ?PRG1 + + + .FUNCT UNKNOWN-WORD,PTR,BUF,MSG,?TMP1 + PUT OOPS-TABLE,O-PTR,PTR + CALL PICK-ONE,UNKNOWN-MSGS >MSG + PRINTC 91 + GET MSG,0 + PRINT STACK + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + GET MSG,1 + PRINT STACK + PRINTR "]" + + + .FUNCT SYNTAX-CHECK,SYN,LEN,NUM,OBJ,DRIVE1=0,DRIVE2=0,PREP,VERB,?TMP2,?TMP1 + GET P-ITBL,P-VERB >VERB + ZERO? VERB \?CND1 + CALL NOT-IN-SENTENCE,STR?10 + RFALSE +?CND1: SUB 255,VERB + GET VERBS,STACK >SYN + GETB SYN,0 >LEN + INC 'SYN +?PRG4: GETB SYN,P-SBITS + BAND STACK,P-SONUMS >NUM + GRTR? P-NCN,NUM /?CND6 + LESS? NUM,1 /?ELS10 + ZERO? P-NCN \?ELS10 + GET P-ITBL,P-PREP1 >PREP + ZERO? PREP /?THN13 + GETB SYN,P-SPREP1 + EQUAL? PREP,STACK \?ELS10 +?THN13: SET 'DRIVE1,SYN + JUMP ?CND6 +?ELS10: GETB SYN,P-SPREP1 >?TMP1 + GET P-ITBL,P-PREP1 + EQUAL? ?TMP1,STACK \?CND6 + EQUAL? NUM,2 \?ELS19 + EQUAL? P-NCN,1 \?ELS19 + SET 'DRIVE2,SYN + JUMP ?CND6 +?ELS19: GETB SYN,P-SPREP2 >?TMP1 + GET P-ITBL,P-PREP2 + EQUAL? ?TMP1,STACK \?CND6 + CALL SYNTAX-FOUND,SYN + RTRUE +?CND6: DLESS? 'LEN,1 \?ELS26 + ZERO? DRIVE1 \?REP5 + ZERO? DRIVE2 \?REP5 + CALL DONT-UNDERSTAND + RFALSE +?ELS26: ADD SYN,P-SYNLEN >SYN + JUMP ?PRG4 +?REP5: ZERO? DRIVE1 /?ELS40 + GETB DRIVE1,P-SFWIM1 >?TMP2 + GETB DRIVE1,P-SLOC1 >?TMP1 + GETB DRIVE1,P-SPREP1 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?ELS40 + PUT P-PRSO,P-MATCHLEN,1 + PUT P-PRSO,1,OBJ + CALL SYNTAX-FOUND,DRIVE1 + RSTACK +?ELS40: ZERO? DRIVE2 /?ELS44 + GETB DRIVE2,P-SFWIM2 >?TMP2 + GETB DRIVE2,P-SLOC2 >?TMP1 + GETB DRIVE2,P-SPREP2 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?ELS44 + PUT P-PRSI,P-MATCHLEN,1 + PUT P-PRSI,1,OBJ + CALL SYNTAX-FOUND,DRIVE2 + RSTACK +?ELS44: EQUAL? VERB,ACT?FIND \?ELS48 + PRINTI "That's your problem!" + CRLF + RFALSE +?ELS48: EQUAL? WINNER,PLAYER \?ELS53 + CALL ORPHAN,DRIVE1,DRIVE2 + PRINTI "[Wh" + JUMP ?CND51 +?ELS53: PRINTI "[Your command wasn't complete. Next time, type wh" +?CND51: EQUAL? VERB,ACT?WALK,ACT?GO \?ELS58 + PRINTI "ere" + JUMP ?CND56 +?ELS58: ZERO? DRIVE1 /?ELS64 + GETB DRIVE1,P-SFWIM1 + EQUAL? STACK,ACTORBIT /?THN61 +?ELS64: ZERO? DRIVE2 /?ELS60 + GETB DRIVE2,P-SFWIM2 + EQUAL? STACK,ACTORBIT \?ELS60 +?THN61: PRINTI "om" + JUMP ?CND56 +?ELS60: PRINTI "at" +?CND56: EQUAL? WINNER,PLAYER \?ELS71 + PRINTI " do you want to " + JUMP ?CND69 +?ELS71: PRINTI " you want" + CALL TPRINT,WINNER + PRINTI " to " +?CND69: CALL VERB-PRINT + ZERO? DRIVE2 /?CND74 + CALL CLAUSE-PRINT,P-NC1,P-NC1L +?CND74: SET 'P-END-ON-PREP,FALSE-VALUE + ZERO? DRIVE1 /?ELS82 + GETB DRIVE1,P-SPREP1 + JUMP ?CND78 +?ELS82: GETB DRIVE2,P-SPREP2 +?CND78: CALL PREP-PRINT,STACK + EQUAL? WINNER,PLAYER \?ELS88 + SET 'P-OFLAG,TRUE-VALUE + PRINTI "?]" + CRLF + RFALSE +?ELS88: SET 'P-OFLAG,FALSE-VALUE + PRINTI ".]" + CRLF + RFALSE + + + .FUNCT VERB-PRINT,TMP,?TMP1 + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?ELS5 + PRINTI "tell" + RTRUE +?ELS5: GETB P-VTBL,2 + ZERO? STACK \?ELS7 + GET TMP,0 + PRINTB STACK + RTRUE +?ELS7: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK + PUTB P-VTBL,2,0 + RTRUE + + + .FUNCT ORPHAN,D1,D2,CNT=-1 + ZERO? P-MERGED \?CND1 + PUT P-OCL1,P-MATCHLEN,0 + PUT P-OCL2,P-MATCHLEN,0 +?CND1: GET P-VTBL,0 + PUT P-OVTBL,0,STACK + GETB P-VTBL,2 + PUTB P-OVTBL,2,STACK + GETB P-VTBL,3 + PUTB P-OVTBL,3,STACK +?PRG4: IGRTR? 'CNT,P-ITBLLEN /?REP5 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK + JUMP ?PRG4 +?REP5: EQUAL? P-NCN,2 \?CND11 + PUT P-CCTBL,CC-SBPTR,P-NC2 + PUT P-CCTBL,CC-SEPTR,P-NC2L + PUT P-CCTBL,CC-OCLAUSE,P-OCL2 + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND11: LESS? P-NCN,1 /?CND14 + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-OCLAUSE,P-OCL1 + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND14: ZERO? D1 /?ELS21 + GETB D1,P-SPREP1 + PUT P-OTBL,P-PREP1,STACK + PUT P-OTBL,P-NC1,1 + RTRUE +?ELS21: ZERO? D2 /FALSE + GETB D2,P-SPREP2 + PUT P-OTBL,P-PREP2,STACK + PUT P-OTBL,P-NC2,1 + RTRUE + + + .FUNCT CLAUSE-PRINT,BPTR,EPTR,THE?=1,?TMP1 + GET P-ITBL,BPTR >?TMP1 + GET P-ITBL,EPTR + CALL BUFFER-PRINT,?TMP1,STACK,THE? + RSTACK + + + .FUNCT BUFFER-PRINT,BEG,END,CP,NOSP=0,WRD,FIRST??=1,PN=0,?TMP1 +?PRG1: EQUAL? BEG,END /TRUE + ZERO? NOSP /?ELS10 + SET 'NOSP,FALSE-VALUE + JUMP ?CND8 +?ELS10: PRINTC 32 +?CND8: GET BEG,0 >WRD + EQUAL? WRD,W?HIM \?ELS20 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK /?THN17 +?ELS20: EQUAL? WRD,W?HER \?ELS22 + CALL VISIBLE?,P-HER-OBJECT + ZERO? STACK /?THN17 +?ELS22: EQUAL? WRD,W?THEM \?CND14 + CALL VISIBLE?,P-THEM-OBJECT + ZERO? STACK \?CND14 +?THN17: SET 'PN,TRUE-VALUE +?CND14: EQUAL? WRD,W?PERIOD \?ELS27 + SET 'NOSP,TRUE-VALUE + JUMP ?CND3 +?ELS27: EQUAL? WRD,W?ALL \?ELS29 + PRINTI "all" + JUMP ?CND3 +?ELS29: CALL WT?,WRD,4 + ZERO? STACK \?THN34 + CALL WT?,WRD,8 + ZERO? STACK /?ELS31 +?THN34: CALL WT?,WRD,32 + ZERO? STACK \?ELS31 + CALL WT?,WRD,128 + ZERO? STACK \?ELS31 + SET 'NOSP,TRUE-VALUE + JUMP ?CND3 +?ELS31: EQUAL? WRD,W?ME \?ELS37 + CALL DPRINT,PLAYER + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?ELS37: CALL NAME?,WRD + ZERO? STACK /?ELS39 + CALL CAPITALIZE,BEG + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?ELS39: ZERO? FIRST?? /?CND42 + ZERO? PN \?CND42 + ZERO? CP /?CND42 + PRINTI "the " +?CND42: ZERO? P-OFLAG \?THN50 + ZERO? P-MERGED /?ELS49 +?THN50: PRINTB WRD + JUMP ?CND47 +?ELS49: EQUAL? WRD,W?IT \?ELS53 + CALL VISIBLE?,P-IT-OBJECT + ZERO? STACK /?ELS53 + CALL DPRINT,P-IT-OBJECT + JUMP ?CND47 +?ELS53: EQUAL? WRD,W?HER \?ELS57 + ZERO? PN \?ELS57 + CALL DPRINT,P-HER-OBJECT + JUMP ?CND47 +?ELS57: EQUAL? WRD,W?THEM \?ELS61 + ZERO? PN \?ELS61 + CALL DPRINT,P-THEM-OBJECT + JUMP ?CND47 +?ELS61: EQUAL? WRD,W?HIM \?ELS65 + ZERO? PN \?ELS65 + CALL DPRINT,P-HIM-OBJECT + JUMP ?CND47 +?ELS65: GETB BEG,2 >?TMP1 + GETB BEG,3 + CALL WORD-PRINT,?TMP1,STACK +?CND47: SET 'FIRST??,FALSE-VALUE +?CND3: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT NAME?,WRD + EQUAL? WRD,W?MR,W?MRS,W?MISS /TRUE + EQUAL? WRD,W?BUCK,W?PALACE,W?HERMAN /TRUE + EQUAL? WRD,W?HILDEG,W?BURBAN,W?AUNT /TRUE + EQUAL? WRD,W?COUSIN,W?UNCLE,W?BUDDY \FALSE + RTRUE + + + .FUNCT CAPITALIZE,PTR,?TMP1 + ZERO? P-OFLAG \?THN6 + ZERO? P-MERGED /?ELS5 +?THN6: GET PTR,0 + PRINTB STACK + RTRUE +?ELS5: GETB PTR,3 + GETB P-INBUF,STACK + SUB STACK,32 + PRINTC STACK + GETB PTR,2 + SUB STACK,1 >?TMP1 + GETB PTR,3 + ADD STACK,1 + CALL WORD-PRINT,?TMP1,STACK + RSTACK + + + .FUNCT PREP-PRINT,PREP,SP?=1,WRD + ZERO? PREP /FALSE + ZERO? P-END-ON-PREP \FALSE + ZERO? SP? /?CND8 + PRINTC 32 +?CND8: CALL PREP-FIND,PREP >WRD + EQUAL? WRD,W?THROUGH \?ELS14 + PRINTI "through" + JUMP ?CND12 +?ELS14: PRINTB WRD +?CND12: GET P-ITBL,P-VERBN + GET STACK,0 + EQUAL? W?SIT,STACK \?CND17 + EQUAL? W?DOWN,WRD \?CND17 + PRINTI " on" +?CND17: GET P-ITBL,P-VERBN + GET STACK,0 + EQUAL? W?GET,STACK \TRUE + EQUAL? W?OUT,WRD \TRUE + PRINTI " of" + RTRUE + + + .FUNCT CLAUSE-COPY,SRC,DEST,INSRT=0,OCL,BEG,END,BB,EE,OBEG,CNT,B,E + GET P-CCTBL,CC-SBPTR >BB + GET P-CCTBL,CC-SEPTR >EE + GET P-CCTBL,CC-OCLAUSE >OCL + GET SRC,BB >BEG + GET SRC,EE >END + GET OCL,P-MATCHLEN >OBEG +?PRG1: EQUAL? BEG,END /?REP2 + ZERO? INSRT /?ELS8 + GET BEG,0 + EQUAL? P-ANAM,STACK \?ELS8 + EQUAL? INSRT,TRUE-VALUE \?ELS13 + GET P-ITBL,P-NC1 >B + GET P-ITBL,P-NC1L >E +?PRG14: EQUAL? B,E /?CND6 + GET B,0 + CALL CLAUSE-ADD,STACK + ADD B,P-WORDLEN >B + JUMP ?PRG14 +?ELS13: GET OCL,1 + EQUAL? INSRT,STACK /?CND21 + CALL CLAUSE-ADD,INSRT +?CND21: CALL CLAUSE-ADD,P-ANAM + JUMP ?CND6 +?ELS8: GET BEG,0 + CALL CLAUSE-ADD,STACK +?CND6: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 +?REP2: EQUAL? SRC,DEST \?CND26 + GRTR? OBEG,0 \?CND26 + GET OCL,P-MATCHLEN + SUB STACK,OBEG >CNT + LESS? 0,CNT \?CND26 + PUT OCL,P-MATCHLEN,0 + INC 'OBEG +?PRG31: GET OCL,OBEG + CALL CLAUSE-ADD,STACK,TRUE-VALUE + SUB CNT,2 >CNT + ZERO? CNT /?REP32 + ADD OBEG,2 >OBEG + JUMP ?PRG31 +?REP32: SET 'OBEG,0 +?CND26: MUL OBEG,P-LEXELEN + ADD STACK,2 + ADD OCL,STACK + PUT DEST,BB,STACK + GET OCL,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD OCL,STACK + PUT DEST,EE,STACK + RTRUE + + + .FUNCT CLAUSE-ADD,WRD,CHECK?=0,OCL,PTR + GET P-CCTBL,CC-OCLAUSE >OCL + GET OCL,P-MATCHLEN >PTR + ZERO? CHECK? /?ELS5 + ZERO? PTR /?ELS5 + CALL ZMEMQ,WRD,OCL + ZERO? STACK \FALSE +?ELS5: ADD PTR,2 >PTR + SUB PTR,1 + PUT OCL,STACK,WRD + PUT OCL,PTR,0 + PUT OCL,P-MATCHLEN,PTR + RTRUE + + + .FUNCT PREP-FIND,PREP,CNT=0,SIZE + GET PREPOSITIONS,0 + MUL STACK,2 >SIZE +?PRG1: IGRTR? 'CNT,SIZE /FALSE + GET PREPOSITIONS,CNT + EQUAL? STACK,PREP \?PRG1 + SUB CNT,1 + GET PREPOSITIONS,STACK + RSTACK + + + .FUNCT SYNTAX-FOUND,SYN + SET 'P-SYNTAX,SYN + GETB SYN,P-SACTION >PRSA + RETURN PRSA + + + .FUNCT GWIM,GBIT,LBIT,PREP,OBJ + EQUAL? GBIT,RLANDBIT \?CND1 + RETURN ROOMS +?CND1: SET 'P-GWIMBIT,GBIT + SET 'P-SLOCBITS,LBIT + PUT P-MERGE,P-MATCHLEN,0 + CALL GET-OBJECT,P-MERGE,FALSE-VALUE + ZERO? STACK /?ELS8 + SET 'P-GWIMBIT,0 + GET P-MERGE,P-MATCHLEN + EQUAL? STACK,1 \FALSE + GET P-MERGE,1 >OBJ + PRINTC 91 + CALL PREP-PRINT,PREP,FALSE-VALUE + ZERO? STACK /?ELS16 + CALL TPRINT,OBJ + JUMP ?CND14 +?ELS16: CALL DPRINT,OBJ +?CND14: PRINTC 93 + CRLF + RETURN OBJ +?ELS8: SET 'P-GWIMBIT,0 + RFALSE + + + .FUNCT SNARF-OBJECTS,PTR + GET P-ITBL,P-NC1 >PTR + ZERO? PTR /?CND1 + GETB P-SYNTAX,P-SLOC1 >P-SLOCBITS + GET P-ITBL,P-NC1L + CALL SNARFEM,PTR,STACK,P-PRSO + ZERO? STACK /FALSE + GET P-BUTS,P-MATCHLEN + ZERO? STACK /?CND1 + CALL BUT-MERGE,P-PRSO >P-PRSO +?CND1: GET P-ITBL,P-NC2 >PTR + ZERO? PTR /TRUE + GETB P-SYNTAX,P-SLOC2 >P-SLOCBITS + GET P-ITBL,P-NC2L + CALL SNARFEM,PTR,STACK,P-PRSI + ZERO? STACK /FALSE + GET P-BUTS,P-MATCHLEN + ZERO? STACK /TRUE + GET P-PRSI,P-MATCHLEN + EQUAL? STACK,1 \?ELS18 + CALL BUT-MERGE,P-PRSO >P-PRSO + RTRUE +?ELS18: CALL BUT-MERGE,P-PRSI >P-PRSI + RTRUE + + + .FUNCT BUT-MERGE,TBL,LEN,BUTLEN,CNT=1,MATCHES=0,OBJ,NTBL + GET TBL,P-MATCHLEN >LEN + PUT P-MERGE,P-MATCHLEN,0 +?PRG1: DLESS? 'LEN,0 /?REP2 + GET TBL,CNT >OBJ + CALL ZMEMQ,OBJ,P-BUTS + ZERO? STACK \?CND3 + ADD MATCHES,1 + PUT P-MERGE,STACK,OBJ + INC 'MATCHES +?CND3: INC 'CNT + JUMP ?PRG1 +?REP2: PUT P-MERGE,P-MATCHLEN,MATCHES + SET 'NTBL,P-MERGE + SET 'P-MERGE,TBL + RETURN NTBL + + + .FUNCT SNARFEM,PTR,EPTR,TBL,BUT=0,LEN,WV,WRD,NW,WAS-ALL?=0,ONEOBJ + SET 'P-AND,FALSE-VALUE + EQUAL? P-GETFLAGS,P-ALL \?CND1 + SET 'WAS-ALL?,TRUE-VALUE +?CND1: SET 'P-GETFLAGS,0 + PUT P-BUTS,P-MATCHLEN,0 + PUT TBL,P-MATCHLEN,0 + GET PTR,0 >WRD +?PRG4: EQUAL? PTR,EPTR \?ELS8 + ZERO? BUT /?ORP12 + PUSH BUT + JUMP ?THN9 +?ORP12: PUSH TBL +?THN9: CALL GET-OBJECT,STACK >WV + ZERO? WAS-ALL? /?CND13 + SET 'P-GETFLAGS,P-ALL +?CND13: RETURN WV +?ELS8: ADD PTR,P-WORDLEN + EQUAL? EPTR,STACK \?ELS21 + SET 'NW,0 + JUMP ?CND19 +?ELS21: GET PTR,P-LEXELEN >NW +?CND19: EQUAL? WRD,W?ALL,W?BOTH,W?EVERYTHING \?ELS26 + SET 'P-GETFLAGS,P-ALL + EQUAL? NW,W?OF \?CND6 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND6 +?ELS26: EQUAL? WRD,W?BUT,W?EXCEPT \?ELS31 + ZERO? BUT /?ORP37 + PUSH BUT + JUMP ?THN34 +?ORP37: PUSH TBL +?THN34: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + SET 'BUT,P-BUTS + PUT BUT,P-MATCHLEN,0 + JUMP ?CND6 +?ELS31: CALL BUZZER-WORD?,WRD + ZERO? STACK \FALSE + EQUAL? WRD,W?A \?ELS41 + ZERO? P-ADJ \?ELS44 + SET 'P-GETFLAGS,P-ONE + EQUAL? NW,W?OF \?CND6 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND6 +?ELS44: SET 'P-NAM,ONEOBJ + ZERO? BUT /?ORP55 + PUSH BUT + JUMP ?THN52 +?ORP55: PUSH TBL +?THN52: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + ZERO? NW \?CND6 + RTRUE +?ELS41: EQUAL? WRD,W?AND,W?COMMA \?ELS59 + EQUAL? NW,W?AND,W?COMMA /?ELS59 + SET 'P-AND,TRUE-VALUE + ZERO? BUT /?ORP67 + PUSH BUT + JUMP ?THN64 +?ORP67: PUSH TBL +?THN64: CALL GET-OBJECT,STACK + ZERO? STACK \?CND6 + RFALSE +?ELS59: CALL WT?,WRD,4 + ZERO? STACK \?CND6 + EQUAL? WRD,W?AND,W?COMMA /?CND6 + EQUAL? WRD,W?OF \?ELS73 + ZERO? P-GETFLAGS \?CND6 + SET 'P-GETFLAGS,P-INHIBIT + JUMP ?CND6 +?ELS73: CALL WT?,WRD,32,2 >WV + ZERO? WV /?ELS78 + CALL ADJ-CHECK,WRD,P-ADJ + ZERO? STACK /?ELS78 + SET 'P-ADJ,WV + SET 'P-ADJN,WRD + JUMP ?CND6 +?ELS78: CALL WT?,WRD,128 + ZERO? STACK /?CND6 + SET 'P-NAM,WRD + SET 'ONEOBJ,WRD +?CND6: EQUAL? PTR,EPTR /?PRG4 + ADD PTR,P-WORDLEN >PTR + SET 'WRD,NW + JUMP ?PRG4 + + + .FUNCT ADJ-CHECK,WRD,ADJ + ZERO? ADJ /TRUE + EQUAL? WRD,W?COPY,W?FILM,W?SLIDE /TRUE + EQUAL? WRD,W?FIRST,W?SECOND,W?THIRD /TRUE + EQUAL? WRD,W?SAWED /TRUE + EQUAL? WRD,W?RED,W?WHITE,W?BLUE /TRUE + EQUAL? WRD,W?ORANGE,W?YELLOW,W?GREEN /TRUE + EQUAL? WRD,W?INDIGO,W?VIOLET \FALSE + RTRUE + + + .FUNCT GET-OBJECT,TBL,VRB=1,BTS,LEN,XBITS,TLEN,GCHECK=0,OLEN=0,OBJ,ADJ,X + SET 'XBITS,P-SLOCBITS + GET TBL,P-MATCHLEN >TLEN + BTST P-GETFLAGS,P-INHIBIT /TRUE + SET 'ADJ,P-ADJN + ZERO? P-NAM \?CND4 + ZERO? P-ADJ /?CND4 + CALL WT?,P-ADJN,128 + ZERO? STACK /?ELS11 + SET 'P-NAM,P-ADJN + SET 'P-ADJ,FALSE-VALUE + JUMP ?CND4 +?ELS11: CALL WT?,P-ADJN,16,3 >BTS + ZERO? BTS /?CND4 + SET 'P-ADJ,FALSE-VALUE + PUT TBL,P-MATCHLEN,1 + PUT TBL,1,INTDIR + SET 'P-DIRECTION,BTS + RTRUE +?CND4: ZERO? P-NAM \?CND14 + ZERO? P-ADJ \?CND14 + EQUAL? P-GETFLAGS,P-ALL /?CND14 + ZERO? P-GWIMBIT \?CND14 + ZERO? VRB /FALSE + CALL NOT-IN-SENTENCE,STR?11 + RFALSE +?CND14: EQUAL? P-GETFLAGS,P-ALL \?THN26 + ZERO? P-SLOCBITS \?CND23 +?THN26: SET 'P-SLOCBITS,-1 +?CND23: SET 'P-TABLE,TBL +?PRG28: ZERO? GCHECK /?ELS32 + CALL GLOBAL-CHECK,TBL + JUMP ?CND30 +?ELS32: ZERO? LIT /?CND36 + FCLEAR PLAYER,TRANSBIT + CALL DO-SL,HERE,SOG,SIR + FSET PLAYER,TRANSBIT +?CND36: CALL DO-SL,PLAYER,SH,SC +?CND30: GET TBL,P-MATCHLEN + SUB STACK,TLEN >LEN + BTST P-GETFLAGS,P-ALL /?CND40 + BTST P-GETFLAGS,P-ONE \?ELS44 + ZERO? LEN /?ELS44 + EQUAL? LEN,1 /?CND47 + RANDOM LEN + GET TBL,STACK + PUT TBL,1,STACK + PRINTI "[How about" + GET TBL,1 + CALL TPRINT,STACK + PRINTI "?]" + CRLF +?CND47: PUT TBL,P-MATCHLEN,1 + JUMP ?CND40 +?ELS44: GRTR? LEN,1 /?THN52 + ZERO? LEN \?ELS51 + EQUAL? P-SLOCBITS,-1 /?ELS51 +?THN52: EQUAL? P-SLOCBITS,-1 \?ELS58 + SET 'P-SLOCBITS,XBITS + SET 'OLEN,LEN + GET TBL,P-MATCHLEN + SUB STACK,LEN + PUT TBL,P-MATCHLEN,STACK + JUMP ?PRG28 +?ELS58: ZERO? LEN \?CND61 + SET 'LEN,OLEN +?CND61: ZERO? P-NAM /?ELS66 + ADD TLEN,1 + GET TBL,STACK >OBJ + ZERO? OBJ /?ELS66 + GETP OBJ,P?GENERIC + CALL STACK >OBJ + ZERO? OBJ /?ELS66 + EQUAL? OBJ,NOT-HERE-OBJECT /FALSE + PUT TBL,1,OBJ + PUT TBL,P-MATCHLEN,1 + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + SET 'P-ADJN,FALSE-VALUE + RTRUE +?ELS66: ZERO? VRB /?ELS75 + EQUAL? WINNER,PLAYER /?ELS75 + PRINTI "[Please try saying that another way.]" + CRLF + RFALSE +?ELS75: ZERO? VRB /?ELS79 + ZERO? P-NAM /?ELS79 + CALL WHICH-PRINT,TLEN,LEN,TBL + EQUAL? TBL,P-PRSO \?ELS86 + PUSH P-NC1 + JUMP ?CND82 +?ELS86: PUSH P-NC2 +?CND82: SET 'P-ACLAUSE,STACK + SET 'P-AADJ,P-ADJ + SET 'P-ANAM,P-NAM + CALL ORPHAN,FALSE-VALUE,FALSE-VALUE + SET 'P-OFLAG,TRUE-VALUE + JUMP ?CND64 +?ELS79: ZERO? VRB /?CND64 + CALL NOT-IN-SENTENCE,STR?11 +?CND64: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?ELS51: ZERO? LEN \?ELS93 + ZERO? GCHECK /?ELS93 + ZERO? VRB /?CND96 + SET 'P-SLOCBITS,XBITS + ZERO? LIT \?THN103 + CALL SPEAKING-VERB? + ZERO? STACK /?ELS102 +?THN103: CALL OBJ-FOUND,NOT-HERE-OBJECT,TBL + SET 'P-XNAM,P-NAM + SET 'P-NAM,FALSE-VALUE + SET 'P-XADJ,P-ADJ + SET 'P-XADJN,P-ADJN + SET 'P-ADJ,FALSE-VALUE + SET 'P-ADJN,FALSE-VALUE + RTRUE +?ELS102: CALL TOO-DARK +?CND96: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?ELS93: ZERO? LEN \?CND40 + SET 'GCHECK,TRUE-VALUE + JUMP ?PRG28 +?CND40: ADD TLEN,1 + GET TBL,STACK >X + SET 'P-SLOCBITS,XBITS + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE + + + .FUNCT SPEAKING-VERB?,V=0 + ZERO? V \?CND1 + SET 'V,PRSA +?CND1: EQUAL? V,V?ASK-ABOUT,V?ASK-FOR,V?HELLO /TRUE + EQUAL? V,V?TELL,V?QUESTION,V?REPLY \FALSE + RTRUE + + + .FUNCT MOBY-FIND,TBL,OBJ=1,LEN,FOO + SET 'P-NAM,P-XNAM + SET 'P-ADJ,P-XADJ + PUT TBL,P-MATCHLEN,0 + GETB 0,18 + ZERO? STACK /?ELS5 +?PRG6: CALL META-LOC,OBJ >FOO + ZERO? FOO /?CND8 + CALL THIS-IT?,OBJ >FOO + ZERO? FOO /?CND8 + CALL OBJ-FOUND,OBJ,TBL >FOO +?CND8: IGRTR? 'OBJ,DUMMY-OBJECT \?PRG6 + GET TBL,P-MATCHLEN >LEN + EQUAL? LEN,1 \?CND16 + GET TBL,1 >P-MOBY-FOUND +?CND16: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RETURN LEN +?ELS5: SET 'P-MOBY-FLAG,TRUE-VALUE + SET 'P-TABLE,TBL + SET 'P-SLOCBITS,-1 + FIRST? ROOMS >FOO /?KLU37 +?KLU37: +?PRG21: ZERO? FOO /?REP22 + CALL SEARCH-LIST,FOO,TBL,P-SRCALL + NEXT? FOO >FOO /?PRG21 + JUMP ?PRG21 +?REP22: GET TBL,P-MATCHLEN >LEN + ZERO? LEN \?CND28 + CALL DO-SL,LOCAL-GLOBALS,1,1 +?CND28: GET TBL,P-MATCHLEN >LEN + ZERO? LEN \?CND31 + CALL DO-SL,ROOMS,1,1 +?CND31: GET TBL,P-MATCHLEN >LEN + EQUAL? LEN,1 \?CND34 + GET TBL,1 >P-MOBY-FOUND +?CND34: SET 'P-MOBY-FLAG,FALSE-VALUE + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RETURN LEN + + + .FUNCT WHICH-PRINT,TLEN,LEN,TBL,OBJ,RLEN + SET 'RLEN,LEN + PRINTI "[Which" + EQUAL? P-NAM,W?PLANK \?ELS3 + PRINTI " end" + JUMP ?CND1 +?ELS3: ZERO? P-OFLAG \?THN6 + ZERO? P-MERGED \?THN6 + ZERO? P-AND /?ELS5 +?THN6: PRINTC 32 + PRINTB P-NAM + JUMP ?CND1 +?ELS5: EQUAL? TBL,P-PRSO \?ELS9 + CALL CLAUSE-PRINT,P-NC1,P-NC1L,FALSE-VALUE + JUMP ?CND1 +?ELS9: CALL CLAUSE-PRINT,P-NC2,P-NC2L,FALSE-VALUE +?CND1: PRINTI " do you mean," +?PRG12: INC 'TLEN + GET TBL,TLEN >OBJ + CALL TPRINT,OBJ + EQUAL? LEN,2 \?ELS16 + EQUAL? RLEN,2 /?CND17 + PRINTC 44 +?CND17: PRINTI " or" + JUMP ?CND14 +?ELS16: GRTR? LEN,2 \?CND14 + PRINTC 44 +?CND14: DLESS? 'LEN,1 \?PRG12 + PRINTR "?]" + + + .FUNCT GLOBAL-CHECK,TBL,LEN,RMG,RMGL,CNT=0,OBJ,OBITS,FOO + GET TBL,P-MATCHLEN >LEN + SET 'OBITS,P-SLOCBITS + GETPT HERE,P?GLOBAL >RMG + ZERO? RMG /?CND1 + PTSIZE RMG + SUB STACK,1 >RMGL +?PRG4: GETB RMG,CNT >OBJ + FIRST? OBJ \?CND6 + CALL SEARCH-LIST,OBJ,TBL,P-SRCALL +?CND6: CALL THIS-IT?,OBJ + ZERO? STACK /?CND9 + CALL OBJ-FOUND,OBJ,TBL +?CND9: IGRTR? 'CNT,RMGL \?PRG4 +?CND1: GETP HERE,P?THINGS >RMG + ZERO? RMG /?CND15 + GET RMG,0 >RMGL + SET 'CNT,0 +?PRG18: ZERO? P-NAM /?ELS22 + ADD CNT,1 + GET RMG,STACK + EQUAL? P-NAM,STACK \?CND20 +?ELS22: ZERO? P-ADJ /?ELS26 + ADD CNT,2 + GET RMG,STACK + EQUAL? P-ADJN,STACK \?CND20 +?ELS26: ZERO? P-NAM \?THN31 + ZERO? P-ADJ /?CND20 +?THN31: SET 'LAST-PSEUDO-LOC,HERE + ADD CNT,3 + GET RMG,STACK + PUTP PSEUDO-OBJECT,P?ACTION,STACK + GETPT PSEUDO-OBJECT,P?ACTION + SUB STACK,5 >FOO + ADD CNT,1 + GET RMG,STACK >RMG + GET RMG,0 + PUT FOO,0,STACK + GET RMG,1 + PUT FOO,1,STACK + CALL OBJ-FOUND,PSEUDO-OBJECT,TBL + JUMP ?CND15 +?CND20: ADD CNT,3 >CNT + LESS? CNT,RMGL /?PRG18 +?CND15: GET TBL,P-MATCHLEN + EQUAL? STACK,LEN \FALSE + SET 'P-SLOCBITS,-1 + SET 'P-TABLE,TBL + CALL DO-SL,GLOBAL-OBJECTS,1,1 + SET 'P-SLOCBITS,OBITS + GET TBL,P-MATCHLEN + ZERO? STACK \FALSE + EQUAL? PRSA,V?LOOK-INSIDE,V?CHASTISE,V?EXAMINE /?THN51 + EQUAL? PRSA,V?LEAVE,V?FOLLOW,V?FIND /?THN51 + EQUAL? PRSA,V?ENTER,V?SMELL,V?SEARCH /?THN51 + EQUAL? PRSA,V?LOOK-ON,V?WAIT-FOR,V?WALK-TO \FALSE +?THN51: CALL DO-SL,ROOMS,1,1 + RSTACK + + + .FUNCT DO-SL,OBJ,BIT1,BIT2,BITS + ADD BIT1,BIT2 + BTST P-SLOCBITS,STACK \?ELS5 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCALL + RSTACK +?ELS5: BTST P-SLOCBITS,BIT1 \?ELS12 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCTOP + RSTACK +?ELS12: BTST P-SLOCBITS,BIT2 \TRUE + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCBOT + RSTACK + + + .FUNCT SEARCH-LIST,OBJ,TBL,LVL + FIRST? OBJ >OBJ \FALSE +?PRG6: EQUAL? LVL,P-SRCBOT /?CND8 + GETPT OBJ,P?SYNONYM + ZERO? STACK /?CND8 + CALL THIS-IT?,OBJ + ZERO? STACK /?CND8 + CALL OBJ-FOUND,OBJ,TBL +?CND8: EQUAL? LVL,P-SRCTOP \?THN18 + FSET? OBJ,SEARCHBIT /?THN18 + FSET? OBJ,SURFACEBIT \?CND13 +?THN18: FIRST? OBJ \?CND13 + CALL SEE-INSIDE?,OBJ + ZERO? STACK /?CND13 + FSET? OBJ,SURFACEBIT \?ELS24 + PUSH P-SRCALL + JUMP ?CND20 +?ELS24: FSET? OBJ,SEARCHBIT \?ELS26 + PUSH P-SRCALL + JUMP ?CND20 +?ELS26: PUSH P-SRCTOP +?CND20: CALL SEARCH-LIST,OBJ,TBL,STACK +?CND13: NEXT? OBJ >OBJ /?PRG6 + RTRUE + + + .FUNCT THIS-IT?,OBJ,SYNS + FSET? OBJ,INVISIBLE /FALSE + ZERO? P-NAM /?ELS5 + GETPT OBJ,P?SYNONYM >SYNS + ZERO? SYNS /FALSE + PTSIZE SYNS + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,P-NAM,SYNS,STACK + ZERO? STACK /FALSE +?ELS5: ZERO? P-ADJ /?ELS11 + GETPT OBJ,P?ADJECTIVE >SYNS + ZERO? SYNS /FALSE + PTSIZE SYNS + SUB STACK,1 + CALL ZMEMQB,P-ADJ,SYNS,STACK + ZERO? STACK /FALSE +?ELS11: ZERO? P-GWIMBIT /TRUE + FSET? OBJ,P-GWIMBIT /TRUE + RFALSE + + + .FUNCT OBJ-FOUND,OBJ,TBL,PTR + GET TBL,P-MATCHLEN >PTR + ADD PTR,1 + PUT TBL,STACK,OBJ + ADD PTR,1 + PUT TBL,P-MATCHLEN,STACK + RTRUE + + + .FUNCT TAKE-CHECK + GETB P-SYNTAX,P-SLOC1 + CALL ITAKE-CHECK,P-PRSO,STACK + ZERO? STACK /FALSE + GETB P-SYNTAX,P-SLOC2 + CALL ITAKE-CHECK,P-PRSI,STACK + RSTACK + + + .FUNCT ITAKE-CHECK,TBL,BITS,PTR,OBJ,TAKEN + GET TBL,P-MATCHLEN >PTR + ZERO? PTR /TRUE + BTST BITS,SHAVE /?THN8 + BTST BITS,STAKE \TRUE +?THN8: +?PRG10: DLESS? 'PTR,0 /TRUE + ADD PTR,1 + GET TBL,STACK >OBJ + EQUAL? OBJ,IT \?ELS17 + ZERO? P-IT-OBJECT /?THN21 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?ELS20 +?THN21: CALL REFERRING + RFALSE +?ELS20: SET 'OBJ,P-IT-OBJECT + JUMP ?CND15 +?ELS17: EQUAL? OBJ,HER \?ELS26 + ZERO? P-HER-OBJECT /?THN30 + CALL ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK \?ELS29 +?THN30: CALL REFERRING + RFALSE +?ELS29: SET 'OBJ,P-HER-OBJECT + JUMP ?CND15 +?ELS26: EQUAL? OBJ,HIM \?ELS35 + ZERO? P-HIM-OBJECT /?THN39 + CALL ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK \?ELS38 +?THN39: CALL REFERRING + RFALSE +?ELS38: SET 'OBJ,P-HIM-OBJECT + JUMP ?CND15 +?ELS35: EQUAL? OBJ,THEM \?CND15 + ZERO? P-THEM-OBJECT /?THN48 + CALL ACCESSIBLE?,P-THEM-OBJECT + ZERO? STACK \?ELS47 +?THN48: CALL REFERRING + RFALSE +?ELS47: SET 'OBJ,P-THEM-OBJECT +?CND15: CALL ULTIMATELY-IN?,OBJ + ZERO? STACK \?PRG10 + EQUAL? OBJ,HANDS,YOUR-FEET /?PRG10 + SET 'PRSO,OBJ + FSET? OBJ,TRYTAKEBIT \?ELS59 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND57 +?ELS59: CALL ULTIMATELY-IN?,OBJ,BUCKET + ZERO? STACK /?ELS61 + ZERO? BUCKET-PEG /?ELS61 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND57 +?ELS61: EQUAL? WINNER,PLAYER /?ELS65 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND57 +?ELS65: BTST BITS,STAKE \?ELS67 + CALL ITAKE,FALSE-VALUE + EQUAL? STACK,TRUE-VALUE \?ELS67 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND57 +?ELS67: EQUAL? PRSA,V?PUT \?ELS71 + EQUAL? OBJ,WATER /TRUE +?ELS71: SET 'TAKEN,TRUE-VALUE +?CND57: ZERO? TAKEN /?ELS78 + BTST BITS,SHAVE \?ELS78 + PRINTI "[You don't seem to be holding" + GET TBL,P-MATCHLEN + LESS? 1,STACK \?ELS83 + PRINTI " all those things" + JUMP ?CND81 +?ELS83: EQUAL? OBJ,NOT-HERE-OBJECT \?ELS85 + PRINTI " that" + JUMP ?CND81 +?ELS85: CALL THIS-IS-IT,OBJ + CALL TPRINT,OBJ +?CND81: PRINTI "!]" + CRLF + RFALSE +?ELS78: ZERO? TAKEN \?PRG10 + EQUAL? WINNER,PLAYER \?PRG10 + PRINTI "[taking" + CALL TPRINT,PRSO + ZERO? ITAKE-LOC /?CND92 + PRINTI " from" + CALL TPRINT,ITAKE-LOC +?CND92: PRINTI " first]" + CRLF + JUMP ?PRG10 + + + .FUNCT MANY-CHECK,LOSS=0,TMP,?TMP1 + GET P-PRSO,P-MATCHLEN + GRTR? STACK,1 \?ELS3 + GETB P-SYNTAX,P-SLOC1 + BTST STACK,SMANY /?ELS3 + SET 'LOSS,1 + JUMP ?CND1 +?ELS3: GET P-PRSI,P-MATCHLEN + GRTR? STACK,1 \?CND1 + GETB P-SYNTAX,P-SLOC2 + BTST STACK,SMANY /?CND1 + SET 'LOSS,2 +?CND1: ZERO? LOSS /TRUE + PRINTC 91 + PRINT YOU-CANT + PRINTI "use more than one object at a time with """ + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?ELS18 + PRINTI "tell" + JUMP ?CND16 +?ELS18: ZERO? P-OFLAG \?THN21 + ZERO? P-MERGED /?ELS20 +?THN21: GET TMP,0 + PRINTB STACK + JUMP ?CND16 +?ELS20: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK +?CND16: PRINTI ".""]" + CRLF + RFALSE + + + .FUNCT ZMEMQ,ITM,TBL,SIZE=-1,CNT=1 + ZERO? TBL /FALSE + LESS? SIZE,0 /?ELS6 + SET 'CNT,0 + JUMP ?CND4 +?ELS6: GET TBL,0 >SIZE +?CND4: +?PRG9: GET TBL,CNT + EQUAL? ITM,STACK \?ELS13 + ADD CNT,1 + RSTACK +?ELS13: IGRTR? 'CNT,SIZE \?PRG9 + RFALSE + + + .FUNCT ZMEMQB,ITM,TBL,SIZE,CNT=0 +?PRG1: GETB TBL,CNT + EQUAL? ITM,STACK \?ELS5 + ZERO? CNT /TRUE + RETURN CNT +?ELS5: IGRTR? 'CNT,SIZE \?PRG1 + RFALSE + + + .FUNCT LIT?,RM,OHERE,LIT=0,OGWIM=0 + SET 'OHERE,HERE + SET 'HERE,RM + FSET? RM,ONBIT \?ELS3 + SET 'LIT,TRUE-VALUE + JUMP ?CND1 +?ELS3: EQUAL? RM,ON-POOL-1 \?ELS5 + CALL LIT?,BOAT-DOCK + ZERO? STACK /?ELS5 + SET 'LIT,TRUE-VALUE + JUMP ?CND1 +?ELS5: EQUAL? RM,ON-POOL-2 \?ELS9 + CALL LIT?,LEDGE + ZERO? STACK /?ELS9 + SET 'LIT,TRUE-VALUE + JUMP ?CND1 +?ELS9: SET 'OGWIM,P-GWIMBIT + SET 'P-GWIMBIT,ONBIT + PUT P-MERGE,P-MATCHLEN,0 + SET 'P-TABLE,P-MERGE + SET 'P-SLOCBITS,-1 + EQUAL? OHERE,RM \?CND14 + CALL DO-SL,WINNER,1,1 + EQUAL? WINNER,PLAYER /?CND14 + IN? PLAYER,RM \?CND14 + CALL DO-SL,PLAYER,1,1 +?CND14: CALL DO-SL,RM,1,1 + GET P-TABLE,P-MATCHLEN + GRTR? STACK,0 \?CND1 + SET 'LIT,TRUE-VALUE +?CND1: SET 'HERE,OHERE + SET 'P-GWIMBIT,OGWIM + RETURN LIT + + + .FUNCT PICK-ONE,FROB,THIS=0,L,CNT,RND,MSG,RFROB + GET FROB,0 >L + GET FROB,1 >CNT + DEC 'L + ADD FROB,2 >FROB + MUL CNT,2 + ADD FROB,STACK >RFROB + ZERO? THIS /?ELS3 + ZERO? CNT \?ELS3 + SET 'RND,THIS + JUMP ?CND1 +?ELS3: SUB L,CNT + RANDOM STACK >RND +?CND1: GET RFROB,RND >MSG + GET RFROB,1 + PUT RFROB,RND,STACK + PUT RFROB,1,MSG + INC 'CNT + EQUAL? CNT,L \?CND8 + SET 'CNT,0 +?CND8: PUT FROB,0,CNT + RETURN MSG + + + .FUNCT PICK-REMOVE,OBJ,FROB,L,CNT,RND,MSG,RFROB,ROBJ + GET FROB,0 >L + GET FROB,1 >CNT + DEC 'L + ADD FROB,2 >FROB + ADD CNT,1 + MUL STACK,2 + ADD FROB,STACK >RFROB + SUB L,CNT + CALL ZMEMQ,OBJ,RFROB,STACK >RND + ZERO? RND /FALSE + DEC 'RND + GET RFROB,RND >MSG + GET RFROB,0 + PUT RFROB,RND,STACK + PUT RFROB,0,MSG + INC 'CNT + EQUAL? CNT,L \?CND6 + SET 'CNT,0 +?CND6: PUT FROB,0,CNT + RETURN MSG + + + .FUNCT DONT-HAVE?,OBJ,WHERE + LOC OBJ >WHERE + EQUAL? WHERE,PLAYER /FALSE + IN? WHERE,PLAYER \?ELS7 + PRINTI "You'll have to take" + CALL TPRINT,OBJ + PRINTC 32 + FSET? WHERE,CONTBIT \?ELS10 + PRINTI "out" + JUMP ?CND8 +?ELS10: PRINTI "off" +?CND8: PRINTI " of" + CALL TPRINT,WHERE + PRINTR " first." +?ELS7: CALL NOT-HOLDING,OBJ + RTRUE + + + .FUNCT NOT-HOLDING,OBJ=0 + PRINTI "You're not holding" + ZERO? OBJ /?ELS3 + CALL TPRINT,OBJ + JUMP ?CND1 +?ELS3: PRINTI " that" +?CND1: PRINTR "." + + + .FUNCT ASKING?,ACTOR + EQUAL? PRSA,V?QUESTION,V?ASK-FOR,V?ASK-ABOUT \FALSE + EQUAL? PRSO,ACTOR \FALSE + RTRUE + + + .FUNCT TALKING-TO?,ACTOR + CALL ASKING?,ACTOR + ZERO? STACK \TRUE + EQUAL? PRSA,V?WAVE-AT,V?HELLO,V?TELL /?THN10 + EQUAL? PRSA,V?ALARM,V?REPLY \FALSE +?THN10: EQUAL? PRSO,ACTOR \FALSE + RTRUE + + + .FUNCT TOUCHING?,THING + EQUAL? PRSA,V?TAKE,V?RUB,V?SHAKE /TRUE + EQUAL? PRSA,V?SWING /TRUE + EQUAL? PRSA,V?CLEAN,V?PUT,V?PUT-ON /TRUE + EQUAL? PRSA,V?MOVE,V?PULL,V?PUSH /TRUE + EQUAL? PRSA,V?PUT-UNDER,V?PUT-BEHIND,V?SMELL /TRUE + EQUAL? PRSA,V?KISS,V?BURN /TRUE + CALL HURT?,THING + ZERO? STACK /FALSE + RTRUE + + + .FUNCT HURT?,THING + EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /?THN8 + EQUAL? PRSA,V?KNOCK,V?SQUEEZE,V?CUT /?THN8 + EQUAL? PRSA,V?BITE,V?RAPE,V?SHAKE \?ELS5 +?THN8: EQUAL? PRSO,THING /TRUE +?ELS5: EQUAL? PRSA,V?THROW \FALSE + EQUAL? PRSI,THING \FALSE + RTRUE + + + .FUNCT ANYONE-HERE?,OBJ + FIRST? HERE >OBJ /?KLU12 +?KLU12: +?PRG1: ZERO? OBJ \?ELS5 + RETURN OBJ +?ELS5: FSET? OBJ,ACTORBIT \?ELS7 + EQUAL? OBJ,PLAYER /?ELS7 + RETURN OBJ +?ELS7: NEXT? OBJ >OBJ /?PRG1 + JUMP ?PRG1 + + + .FUNCT GETTING-INTO? + EQUAL? PRSA,V?WALK-TO,V?ENTER /TRUE + EQUAL? PRSA,V?SIT,V?STAND-ON,V?LIE-DOWN /TRUE + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-ON,V?LEAP /TRUE + EQUAL? PRSA,V?SWIM,V?WEAR,V?WALK-AROUND \FALSE + RTRUE + + + .FUNCT SAY-THE,THING + PRINTI "The " + CALL DPRINT,THING + RSTACK + + + .FUNCT BUT-THE,THING + PRINTI "But" + CALL TPRINT,THING + PRINTC 32 + RTRUE + + + .FUNCT MOVING?,THING + EQUAL? PRSA,V?MOVE,V?PULL,V?PUSH /?THN8 + EQUAL? PRSA,V?TAKE,V?TURN,V?PUSH-TO /?THN8 + EQUAL? PRSA,V?RAISE,V?SHAKE \FALSE +?THN8: EQUAL? PRSO,THING \FALSE + RTRUE + + + .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ + EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3 + EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3 + PRINTR "Those things aren't here!" +?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS7 + SET 'TBL,P-PRSO + JUMP ?CND1 +?ELS7: SET 'TBL,P-PRSI + SET 'PRSO?,FALSE-VALUE +?CND1: ZERO? PRSO? /?ELS12 + EQUAL? PRSA,V?FIND,V?FOLLOW,V?BUY /?THN17 + EQUAL? PRSA,V?WAIT-FOR,V?WALK-TO /?THN17 + EQUAL? PRSA,V?TAKE \?CND10 + EQUAL? WINNER,PLAYER /?CND10 +?THN17: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ + ZERO? OBJ /FALSE + EQUAL? OBJ,NOT-HERE-OBJECT /?CND10 + RETURN 2 +?ELS12: EQUAL? PRSA,V?TELL,V?ASK-ABOUT,V?ASK-FOR /FALSE +?CND10: PRINT YOU-CANT + PRINTI "see" + CALL NAME?,P-XNAM + ZERO? STACK \?CND36 + PRINTI " any" +?CND36: CALL NOT-HERE-PRINT,PRSO? + PRINTI " here!" + CRLF + CALL PCLEAR + RETURN 2 + + + .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ + CALL MOBY-FIND,TBL >M-F + ZERO? DEBUG /?CND1 + PRINTI "[Found " + PRINTN M-F + PRINTI " obj]" + CRLF +?CND1: EQUAL? 1,M-F \?ELS9 + ZERO? DEBUG /?CND10 + PRINTI "[Namely:" + CALL DPRINT,P-MOBY-FOUND + PRINTC 93 + CRLF +?CND10: ZERO? PRSO? /?ELS16 + SET 'PRSO,P-MOBY-FOUND + RFALSE +?ELS16: SET 'PRSI,P-MOBY-FOUND + RFALSE +?ELS9: ZERO? PRSO? \?ELS21 + PRINTI "You wouldn't find any" + CALL NOT-HERE-PRINT,PRSO? + PRINTR " there." +?ELS21: RETURN NOT-HERE-OBJECT + + + .FUNCT NOT-HERE-PRINT,PRSO?=0,?TMP1 + ZERO? P-OFLAG \?THN6 + ZERO? P-MERGED /?ELS5 +?THN6: ZERO? P-XADJ /?CND8 + PRINTC 32 + PRINTB P-XADJN +?CND8: ZERO? P-XNAM /FALSE + PRINTC 32 + PRINTB P-XNAM + RTRUE +?ELS5: ZERO? PRSO? /?ELS19 + GET P-ITBL,P-NC1 >?TMP1 + GET P-ITBL,P-NC1L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK +?ELS19: GET P-ITBL,P-NC2 >?TMP1 + GET P-ITBL,P-NC2L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK + + + .FUNCT MOVE-ALL,FROM,TO=0,OBJ,NXT + FIRST? FROM >OBJ /?KLU18 +?KLU18: +?PRG1: ZERO? OBJ /TRUE + NEXT? OBJ >NXT /?KLU19 +?KLU19: FCLEAR OBJ,WORNBIT + EQUAL? OBJ,FUSE /?CND7 + ZERO? TO /?ELS12 + MOVE OBJ,TO + JUMP ?CND7 +?ELS12: REMOVE OBJ +?CND7: SET 'OBJ,NXT + JUMP ?PRG1 + + + .FUNCT GLOBAL-IN?,OBJ1,OBJ2,TBL + GETPT OBJ2,P?GLOBAL >TBL + ZERO? TBL /FALSE + PTSIZE TBL + SUB STACK,1 + CALL ZMEMQB,OBJ1,TBL,STACK + RSTACK + + + .FUNCT WHAT-A-CONCEPT + PRINTR "What a concept!" + + + .FUNCT YOU-DONT-NEED,THING,STRING?=0 + PRINTI "[You don't need to refer to" + ZERO? STRING? /?ELS3 + CALL TPRINT,THING + JUMP ?CND1 +?ELS3: CALL TPRINT,THING +?CND1: PRINTR " that way to finish this story.]" + + + .FUNCT ITS-CLOSED,OBJ + CALL THIS-IS-IT,OBJ + CALL SAY-THE,OBJ + CALL IS-CLOSED + CRLF + RTRUE + + + .FUNCT IS-CLOSED + PRINTI " is closed." + RTRUE + + .ENDI diff --git a/parser.zil b/parser.zil new file mode 100644 index 0000000..db6c200 --- /dev/null +++ b/parser.zil @@ -0,0 +1,2678 @@ +"PARSER for ANTHILL (C)1986 Infocom Inc. All rights reserved." + + + +;> + + + + + +; + + +; + + +> + +> +> +> +> + +> +> + +; > + +"INBUF - Input buffer for READ" + +> + +"Parse-cont variable" + +> ;"start of sentence" +> + +> +> +> +> + +"Orphan flag" + +> + +> +> +> +> + +"Parser variables and temporaries" + +; +; +; + +"Byte offset to # of entries in LEXV" + + + +"Word offset to start of LEXV entries" + + + +"Number of words per LEXV entry" + + + + +"Offset to parts of speech byte" + + ,PLUS-MODE> 6) (T 4)>> + +"Offset to first part of speech" + + ,PLUS-MODE> 7) (T 5)>> + +"First part of speech bit mask in PSOFF byte" + + + + +> +> +> +> + + + + + + + + +; + + + + + + +> +> + +;> + +> + + +; +;> + + + + + + + + + +> +> + +> +> +> + +> + +> + <> <> <>>> + + + + + +" Grovel down the input finding the verb, prepositions, and noun clauses. + If the input is or , fall out immediately + setting PRSA to ,V?WALK and PRSO to . Otherwise, perform + all required orphaning, syntax checking, and noun clause lookup." + +) (OF-FLAG <>) + LEN (DIR <>) (NW 0) (LW 0) (CNT -1) OWINNER + OMERGED (TEMP 0)) + > ,P-ITBLLEN> ) + (T + + >)> + )>> + + > + > + ;> + + + + + + >)> ;"CLEAR P-ADJW & P-NAMW IN THIS COND" + + > + ; + + + ,VEHBIT>> + + >)> + >)> + + + > + > + )> + ; + <==? ,PLAYER ,WINNER>> + )> + > + >) + (,P-CONT + + > + >) + (> + <==? ,PLAYER ,WINNER>> + )> + ; > + )>) + (T + > + ; + + > + + ,VEHBIT>> + + >)> + > + > + )> + ; > + + ) + ( + ) + (T + )> + )> + + % ,PLUS-MODE> + ' + ">>) + (T + '">)> + + ; >)> + > + > + > ;"Is quote first input token?" + > ;"If so, ignore it." + >)> + > ;"Is THEN first input word?" + > ;"If so, ignore it." + >)> + + <==? ,W?GO > ;"Is GO first input word?" + >> + ;" followed by verb?"> + > ;"If so, ignore it." + >)> + + + ) + ( ,W?OOPS> + > + + ) + ( + + >> + + 6>> + 7>> + <+ <* ,P-LEXELEN>3>> + + > + > + ) + (T + > + + )>) + (T >)> + ,W?AGAIN ,W?G> + > + + ) + ( + > + ,W?PERIOD ,W?COMMA ,W?THEN> + > + ,W?AND>> + >> + 2>>) + (T + + )>) + (T + > + 1>>)> + 0> + + ) + (T + >)> + ;> + + + + + + + ) + (T >)>>) + (T + + > + > + > + + + + > + > + + ;> + + + + + > 0> + > + ) + (>> + ) + (> + ;>> + ) + (T >>)> + + > + + ; + ) + ( + + + > + + + )> + + > + ) + ( + + >) + (T + )>)> + + >> + + ) + (> + ,ACT?WALK ,ACT?GO> + + + > + + > + ; + > + + > + + >>> + + + + ,W?THEN>)> + > + > + )>) + (> + + ; + >> + ; + )> + + + + + + 2>>>> + >>) + (> + + + + > + >> + ; "1 IN RETROFIX #34" + <==? .NW ,W?OF> + > + + > + >> + ; + )> + ) + (> + + >> + + + + )>) + (<==? ,P-NCN 2> + + ) + (T + > + > + > + + > + )>)>) + ;(<==? .WRD ,W?CLOSELY> + ) + ;( + > + ) + ( ; "RETROFIX #34" + + > + + ) + (T + >)>) + () + ( + > + + ) + (T + + )>) + (T + + )> + + >>)> + > + + + + > + )> + > + > + ) + ; (T + )> + 0> + > + )> + + + + > + T)>> + + + > + +> + +"Check whether word pointed at by PTR is the correct part of speech. + The second argument is the part of speech (,PS?). The + 3rd argument (,P1?), if given, causes the value + for that part of speech to be returned." + +> .BIT> + ) + (T + > + > >)> + )>)>> + +"Scan through a noun phrase, leaving a pointer to its starting location:" + +) (FIRST?? T) NW (LW 0) LEN) + ;#DECL ((PTR VAL OFF NUM) FIX (WRD NW) + (ANDFLG FIRST??) ) + 2>> + ,W?RIGHT ,W?LEFT> + > + ,W?END>> ;"kludge for 'right end' etc." + + >) + (> + > + + .WRD> + > + > + + > + > + ,W?LEFT ,W?RIGHT> + + ;"don't look if L/R was last!" + > + ,W?END>>> + > + + .WRD>) + (ELSE + )> + >>)>) + (T >)> + > )> + > >> + ,W?THE ,W?A ,W?AN> + 4>> + > + >)> + > 0> + >> + )> + >> + ) + (> + ;>> + ) + (T >>)> + ; + + ,ACT?MAKE ,ACT?TAKE>> + + )> + + > + ) + ( + ) + ( + ; + > + + > + >)>) + ( + + + >> + > + + >> + >) + ;"3/16/83: This clause used to be later." + ( 0> + ;"10/26/84: next stmt changed" + >> + > + ,W?THEN> + >) + ( + + + >> + T) + ( + > + >) + ( + > + >> + + 2>>> + ) + (T >)>) + ;"Next clause replaced by following one to enable + OLD WOMAN, HELLO" + ;( 0>>> + + >>) + ( + >) + ( 0>> + > + ,W?THEN> + >) + ( T) + (T + + )>) + (T )> + + > + >>> + + ,PLAYER ,NOT-HERE-OBJECT> + > + ) + ( + > + ) + (T + + + )>> + +)) + + ) + (T + )> + > + +> + + > + + ) + (> + >) + (T + > + )> + + > + > + +; > + +; > + > + ; )> + ; > + + ; >> + .P>>)> + + ; + >) + (T + )> + > + ; )> + )>> + + + + + > + ) + (T + )>> + +) (I <>) "AUX" V OA OO OI) + + % ') + (T ' 1>>>)> + + ) + (T )>)> + + )> + )> + + + + + + > + + ) + (> + + >) + (T + ) + (T )> + )>)> + + > + )> + + )> + + )>) + (T + + ) + (T + )> + )>)> + + > + )> + + )> + + )>) + (T + + ) + (T + )> + )>)> + + > + )> + + )> + + )>) + (T + + ) + (T + )> + )>)> + + + )>) + ;"(<==? .O ,THEM>) + (<==? .O ,HER> ) + (<==? .O ,HIM> )"> + + + )>) + ;"(<==? .I ,THEM>) + (<==? .I ,HER> ) + (<==? .I ,HIM> )">)> + + + > + > + > + > + >)>)> + + + + + + >>)> + + ,P?ACTION> ,M-BEG>>)> + + >>)> + + .I + > + > + ,P?CONTFCN>> + >)>)> + .I> + >>)> + + .O + > + > + ,P?CONTFCN>> + >)>)> + + .O + >> + >> + )>)> + + >>)> + > + > + ; ,P?ACTION> ,M-END>> + ,M-END>>)>)> + + + + .V> + + + ) + ( + ) + ( + ) + ; ( + + > + + + + ) + (T + )>> + + + +; + +;>> + ) + ( + + ) + + ( + + + > + + ) + + ( + + + + + + + > + + + + + ) + (T + )> + + ) + (T + )>> + + + + + + + + + + + + + + > + + ) + (T + )>> + + + + + + + + + + > + CR> + ) + (T + )>> + +> + +> + > + + >>> + + + +"For AGAIN purposes, put contents of one LEXV table into another:" + +> + > + > + 2>> + > + 3>> + > + > + + )>>> + +"Put contents of one INBUF into another:" + + ) + (T >)>>> + +"Put the word in the positions specified from P-INBUF to the end of +OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:" + +> + ) + (T + >> + >>>)> + > + >> + > + )>> + + .LEN>> + + +;"new number routine--from Suspect for handling phone numbers" + +) (EXC <>) + (NOHYP? <>)) + > 2>> + )> + > 3>> + > 0> ) + (T + > + + >> + )> + + )> + ;"Char :" + )> + + ) + (<==? .CHR 45> ;"Char -" + > + )> + + ) + ( + + ) + ( > + <- .CHR 48>>>) + (T )> + >)>> + + + ) + (.EXC + ) + (.TIM + + ) + ( T) + ( ) + ( T) + (T >)> + >>) + (T )> + + ,W?INTNUM> + + + + + +;"old numbers routine--doesn't handle phone numbers." + +;) (DOLLAR <>)) + > 2>> + > 3>> + ;> + > 0> ) + (T + > + > + + ) + ( ) + ( + ) + (> + >> + ) + (T + + <- .CHR %>>>)> + >)>> + + ) + (.TIM + >)" + ( ) + ;"( T) + ( ) + ( T) + (T >)"> + >>)> + + > + + ,W?MONEY + ; + ;) + (T + + > + ,W?INTNUM + ; + ;)>> + + +; +;> +> + + + +) WRD) + > + 0>> + ,PS?VERB ,P1?VERB> + > + > + ) + ( + > + + + > + > + )> + >>> + + >>> + ) + ( ) + ( 1> + >> + >> + > + > + >)> + )>) + (T + > + ;>)> + >) + (T )>) + ( 1> + >> + >> + > + > + >)>)> + > + > + ) + (T )>) + (,P-ACLAUSE + > > + > + ) + (T + > + > >)> + > + > + + ) + (T > )>) + ( + + ,PS?ADJECTIVE> ;"same as WT?" + >> + ) + ( + + ) + ( ,PS?OBJECT> + .END>> + + ) + (T + )> + )> + > + + + + > + )>>)>)> + > + > + > + + + ; 0>> > + > ,P-ITBLLEN> + + ) + (T >)>> + T> + +)) + >) + (ELSE )> + + > + + ) + (ELSE + )> + + 0>> > + > + > + +;> + > + % ,PLUS-MODE> + ') + (T + ' + + + + >)> + 0>> > + > + > + +; ,PLUS-MODE> + '>) + (T + ' + + + > + >)> + 0>> > + > + > + +"Print undefined word in input. PTR points to the unknown word in P-LEXV" + + )> + ) + (ELSE + > + >)>>> + + + + + >> + + + > + > + >> 2> + 3>> + > + > + "]" CR>> + +" Perform syntax matching operations, using P-ITBL as the source of + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + + + + + + + + + + + + + +) (DRIVE2 <>) + PREP VERB) + ;#DECL ((DRIVE1 DRIVE2) > + (SYN) (LEN NUM VERB PREP) FIX + (OBJ) ) + > + + + )> + >> + > + > + ,P-SONUMS>> + T) ;"Added 4/27/83" + (> + + >> + <==? .PREP >>> + ) + (<==? > + <==? ,P-NCN 1>> + ) + (<==? + > + + )>)> + + ) + (T + + )>) + (T >)>> + + + >>> + + + ) + ( + + >>> + + + ) + ( + + ) + (T + + + ) + (T + )> + + ) + ( ,ACTORBIT>> + ,ACTORBIT>>> + ) + (T )> + + ) + (T + )> + + )> + > + ) + (T )>> + + + ) + (T + > + )> + )>> + +> ;"? ,P-OTBL?" + ) + (> + >) + (T + > + )>> + + + + )> + > + > + > + ) + (T >)>> + + + + + )> + > + + + + )> + > + ) + (.D2 + > + )>> + + .THE?>> + +) WRD (FIRST?? T) (PN <>)) + ) + (T + >) + (T )> + > + + >> + + >> + + >>> + )> + + ) + ( + ) + ( + > + > + >> + ) + ( + + ) + ( + + ) + (T + .CP> + )> + ) + ( + > + ) + ( + ;"VISIBLE check above" + ;> + ) + ( + + ;> + ) + ( + + ;> + ) + (T + + >)> + >)>)> + >>> + +"Check for words to be capitalized here" + + + + + > + ) + (T + )>> + + + >) + (T + > 32>> + 1> <+ 1>>)>> + +> + > + )> + > + ) + (<==? .WRD ,W?THROUGH> ) + (T )> + 0>> + <==? ,W?DOWN .WRD>> + )> + 0>> + <==? ,W?OUT .WRD>> ;"Will it ever work? --SWG" + )> + )>> + + +"pointers used by CLAUSE-COPY (source/destination beginning/end pointers):" + + + + +> + +) + "AUX" OCL BEG END BB EE OBEG CNT B E) + > + > + > + > + > + > + )> + >> + + > + > + )> + > + >>) + (ELSE + >> + )> + )>) + (ELSE + >)> + >> + + + .OBEG>>>> + + > + T> + >> + )> + >> + )> + 2>>> + ,P-LEXELEN> 2>>>> + +) "AUX" OCL PTR) + > + > + > > + ) + (ELSE + > + .WRD> + + )>> + + 2>> + ) + (<==? .PREP> + >>)>>> + +) + + >> + + + + + )> + + + + > + + 1> + > + + > + ) + (ELSE + )> + + .OBJ)>) + (T + + )>> + +>) + > 0>> + > + ,P-PRSO> > + > + >>)> + > 0>> + > + ,P-PRSI> > + >> + 1> + >) + (T >)>)>)> + > + +> + + ) + (> ,P-BUTS>) + (T + .OBJ> + >)> + >> + + + + .NTBL> + +> + +> + +> + +> + +% ,PLUS-MODE>) + (T +'(> + >))> + +> + +> + +> + +> + +> +> + +;> + + + + + + + + + + + +> + +) LEN WV WRD NW (WAS-ALL? <>) + ONEOBJ) + ;"Next SETG 6/21/84 for WHICH retrofix" + > + + )> + + + + > + + >> + )> + ) + (T + > + ) + (T >)> + + + + >)>) + ( + > > + + ) + ( + ) + ( + + + + >)>) + (T + + > > + >)>) + ( + >> + ;"Next SETG 6/21/84 for WHICH retrofix" + + > > + T) + () + () + (<==? .WRD ,W?OF> + + )>) + % ,PLUS-MODE> + '( + > + )) + (T + '(> + > ;"DA" + + ))> + ( + + )>)> + > + > + )>>> + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + + + + + + + + +) (OLEN 0) OBJ ADJ X) + + > + ;)> + )> + ,PLUS-MODE> + ',P-ADJ) + (T + ',P-ADJN)>> + ,P-ADJ> + ,PLUS-MODE> + ',P-ADJ) + (T ',P-ADJN)> + ,PS?OBJECT> + ,PLUS-MODE> + ',P-ADJ) + (T ',P-ADJN)>> + >) + ( ,PLUS-MODE> + ',P-ADJ) + (T ',P-ADJN)> + ,PS?DIRECTION ,P1?DIRECTION>> + > + + + + )>)> + + + > + > + )> ;"[1]" + )> + > > + )> + + )> + )> + ) + (T + + + )> + )> + .TLEN>> + ;)> + ) + ( + >> + > + >> + "?]" CR>)> + ) + ( + >>> + + + + .LEN>> + ) + (T + )> + + >> + ;.TBL>>> + + )> + + + > + % ,PLUS-MODE> + '>) + (T + '> + >>)> + ) + (>> + + ) + ( + + ,P-NC1) + (T ,P-NC2)>> + + + <>> + ) + (.VRB + )> ;"[2]" + > + > + )>) + ( .GCHECK> + ; "RETROFIX #33" + > + + + > + % ,PLUS-MODE> + ' + >>) + (T + ' + + > + >>)> + ) + (T + )>)> + > + > + ) + ( + + ;)> + )> + >> + ; .X> + )> + + > + > + >> + +)) + + )> + + + ;> + ) + (T + )>> + +> + +> ; "Needed only for ZIL" + +; "This MOBY-FIND works in ZIP only!" + +; + + + > + >> + >)> + + )>> + > + + >)> + .LEN> + +"This MOBY-FIND works in both ZIL and ZIP." + + + + + >> ;"ZIP case" + > + >> + >)> + + )>> + > + + >)> + > + > + .LEN) + (T ;"ZIL case" + + + + > + + ) + (T + + >)>> + > 0> + )> + > 0> + )> + > 1> + >)> + > + > + > + .LEN)>> + + + + + ) + ( + + ) + (<==? .TBL ,P-PRSO> + >) + (T >)> + + > + > + + + > )> + ) + ( )> + > 1> + + )>>> + +> + + > + > + ;)> + > + + )> + + )> + )>>)> + > + > + + >>>>) + (>>>>) + ( + ; + ;) + (T + >)> + + >> + 5>> + >> + > + > + + )> + > + > + )>>)> + ;> + 4> 1>> + + ;)> + >> + + 1>>> + 5>> + > + > + + ) + ( )>>)> + .LEN> + + + + + > + + )>)>)>> + +> + ) + (T + + ) + ( + ) + (T )>)>> + + + + + + + + ) (T >)> + > + + )> + > + + > + )> + > + ;"Z0 deleted this" + > + + + ; + ; "ADDED 3/26/85" + + + ,P-MOBY-FLAG ; "Needed only for ZIL" + + >>> + ; >> + + ,P-SRCALL) + ( + ,P-SRCALL) ;"Z0 deleted this" + (T + ,P-SRCTOP)>>)> + >) (T )>>)>> + + + ) + (>> + 2> 1>>>>> + ) + (>> + 1>>>>> + ) + (> >> + )> + > + +> + .OBJ> + >> + +> + >>> + +) + > + + >> + > 0> )> + >> + + + >> + + ) + (T + )>) + (<==? .OBJ ,HER> + + >> + + ) + (T + )>) + (<==? .OBJ ,HIM> + + >> + + ) + (T + )>) + (<==? .OBJ ,THEM> + + >> + + ) + (T + )>)> + > + >> + + + ) + ( + ,BUCKET-PEG> + ) ;"you can't take from bucket on peg" + (> + >) + ( + <==? > T>> + >) + ( + > + ;"else PUT WATER IN BUCKET says YOU'RE NOT HOLDING..." + ) + (T + )> + > + + > + ) + ( + ) + (T + + )> + + ) + ( + <==? ,WINNER ,PLAYER>> + + )> + )>)>>) + (T)>> + +) TMP) + 1> + ,SMANY>>> + ) + ( 1> + ,SMANY>>> + )> + + ; + )> + ; + + > + + ) + ( + >) + (T + >)> + + ) + (T + )>> + + )> + > ) + (ELSE >)> + > + >) + ( )>>> + +; )> + > + ) + (<==? .ITM > + ) + (T )>) + (T )>>> + +> + ) + (T )>) + ( )>>> + +; > .ITM> ) + ( )>>> + +) (OGWIM <>)) + + + + ) + ( + > + ) + ( + > + ) + (T + + + + + + + + > + > + )>)> + + 0> + )>)> + + + .LIT> + +; >>> + +) "AUX" L CNT RND MSG RFROB) + > + > + > + > + >> + > + ) + (T + >>)> + > + > + + > + + )> + + .MSG> + +> + > + > + > + 2>>> + >> + > + > + > + + > + + )> + + .MSG)>> + +> + + ) + ( + + + ) + (T + )> + ) + (T + + )>> + +)) + + ) + (T + )> + > + + + > + ) + (T + )>> + + + ) + ( + > + ) + (T + )>> + + + + + + + + > + ) + (T + )>> + + + + > + > + ) + ( + > + ) + (T + )>> + +; ) (PLACE <>)) + + + ) + (> + ) + (T + )> + ) + (T + )>> + +; + + ) + (T + )> + ) + ( + + ) + (T + )> + ) + (T + )>> + +> + + ) + ( + >> + ) + (T + >)>> + > + + + + + > + ) + (T + )>> + +> + +> + + + + > + > + ) + (T + )>> + + + +)) + + > + + ) + ( + ) + (T + + >)> + + + + + >>> + > + > + )>) + (T + )>)>) + (T + + )>)> + + + > + )> + + + + > + +> + )> + + )> + ) + (T + )> + ) + ;( + ) + ( + + + + ) + (T + ,NOT-HERE-OBJECT)>> + +; + + ) + (T + )> + + > + )> + > + +)) + + + ,PLUS-MODE> + ',P-XADJ) + (T + ',P-XADJN)>>)> + + )>) + (.PRSO? + <>>) + (T + <>>)>> + +;"MOVE-ALL ,FOO removes obj. MOVE-ALL ,FOO ,HERE moves obj to here." + +) "AUX" OBJ NXT) + ;"doesn't move fuse from cannon" + > + > + + > + ) + (T + )>)> + ) + (T + )>>> + +;> + > + + + ) + (T + )>>> + +;> + + )> + > + + > + > + + ;"modify if necessary for games with other M-..." + +> + % ,PLUS-MODE> + '>) + (T + '>)>)>> + +;)) + + ) + (.THE + ) + ( + ) + (T + )>> + + + +; + ) + ( + ) + ( + ) + ;(> + ) + ( + ) + ( + ) + (T + >)>> + +> + +)) + + ) + (T + )> + > + + + + + > + +> + +; > + +; )) + + )> + ) + (T + )>> + +; +; + +; )) + > + > + +; + > + +;> + + ; + )> + + )>> \ No newline at end of file diff --git a/points.zap b/points.zap new file mode 100644 index 0000000..a92e0b4 --- /dev/null +++ b/points.zap @@ -0,0 +1,2 @@ + + .ENDI diff --git a/points.zil b/points.zil new file mode 100644 index 0000000..8807f01 --- /dev/null +++ b/points.zil @@ -0,0 +1,39 @@ +;" POINTS + + +NAME IN ROOM DESC +_______________________________________________________________________________ + +PENGUIN CHIMNEY-3 CHIMNEY-3 Stuffed Penguin + +RUBBER STAMP HEART-OF-MAZE-HOLE HEART-OF-MAZE Treasure Chest + +CORPSE LINE BS-SAFE BOMB-SHELTER Rubber Stamp + +GRATER WALL-SAFE LIVING-ROOM Cheese Grater + +MASK COMPARTMENT CANNON-EMPLACEMENT Catcher's Mask + +TOUPEE HOPPER CELLAR Buddy's Toupee + +FINCH SACK UPSTAIRS-HALL-EAST Maltese finch + +RING MONUMENT GAME-ROOM Big Diamond Ring + +PARKING-METER FIRST-SECRET ROOM FIRST-SECRET-ROOM Parking Meter + +FIRE HYDRANT TRUNK ATTIC Fire Hydrant + + +OTHER POINTS +______________________________________________________________________________ + +SKI DOWN STAIRS 10 + +PROJECTING MESSAGE 10 + +PUTTING MISSING PEG IN HOLE 10 + +SAVING 20 + +" \ No newline at end of file diff --git a/rmode.init b/rmode.init new file mode 100644 index 0000000..405879a Binary files /dev/null and b/rmode.init differ diff --git a/rooms.zap b/rooms.zap new file mode 100644 index 0000000..39d90c0 --- /dev/null +++ b/rooms.zap @@ -0,0 +1,925 @@ + + + .FUNCT NOTE-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?READ \FALSE + FSET? NOTE,READBIT /?CND6 + FSET NOTE,READBIT + CALL PICK-ONE,CUPID-COMBS >CUPID-KEY +?CND6: PRINTI "Dearie, The magic number is """ + GET CUPID-KEY,0 + PRINTN STACK + PRINTR "."" Love, Aunt Hildegard" + + + .FUNCT FLASHLIGHT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? FLASHLIGHT,WETBIT \?ELS10 + PRINTR "The soggy flashlight is switched on, but isn't working." +?ELS10: PRINTI "The " + CALL DPRINT,FLASHLIGHT + PRINTI " is turned " + FSET? FLASHLIGHT,ONBIT \?ELS21 + PRINTI "on" + RTRUE +?ELS21: PRINTI "off" + PRINTC 46 + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS31 + FSET? FLASHLIGHT,WETBIT \?ELS34 + PRINTR "You can't turn it on now, it's ruined. You took it in the water!" +?ELS34: FSET? FLASHLIGHT,ONBIT \?ELS38 + PRINTR "It's already on." +?ELS38: FSET FLASHLIGHT,ONBIT + PRINTI "Okay," + CALL TPRINT,FLASHLIGHT + PRINTI " is now on." + CRLF + ZERO? LIT \TRUE + SET 'LIT,TRUE-VALUE + CRLF + CALL V-LOOK + RTRUE +?ELS31: EQUAL? PRSA,V?LAMP-OFF \FALSE + FSET? FLASHLIGHT,WETBIT \?ELS52 + PRINTI "It's wet. It's ruined. Who cares if it's on or off?" + RTRUE +?ELS52: FSET? FLASHLIGHT,ONBIT \?ELS56 + FCLEAR FLASHLIGHT,ONBIT + PRINTI "Okay," + CALL TPRINT,FLASHLIGHT + PRINTR " is now off." +?ELS56: PRINTR "It's already off." + + + .FUNCT STAIRS-F + EQUAL? PRSA,V?PUSH-DOWN \?ELS5 + CALL MOVE-OBJ-DOWN + RSTACK +?ELS5: EQUAL? PRSA,V?SKI \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT FOYER-STAIRS-F + EQUAL? PRSA,V?PUSH-DOWN \?ELS5 + CALL MOVE-OBJ-DOWN + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The stairs" + ZERO? RAMP /?ELS12 + PRINTI ", or what used to be the stairs is now a ramp" + JUMP ?CND10 +?ELS12: PRINTI " look like stairs and need a better desc" +?CND10: PRINTC 46 + CRLF + RTRUE + + + .FUNCT TO-UPSTAIRS-HALL + FSET? KNUEL,TOUCHBIT /?ELS5 + PRINTI "You start to go up but suddenly the staircase flattens out and you slide back down the flatten stairs." + CRLF + SET 'RAMP,TRUE-VALUE + FSET KNUEL,TOUCHBIT + RFALSE +?ELS5: ZERO? RAMP /?ELS9 + PRINTI "You start to go up the flatten stairs but slide back down." + CRLF + RFALSE +?ELS9: RETURN UPSTAIRS-HALL + + + .FUNCT KNUEL-F + EQUAL? PRSA,V?TURN \FALSE + PRINTI "You turn" + CALL TPRINT,KNUEL + PRINTI " and the " + FSET KNUEL,TOUCHBIT + ZERO? RAMP /?ELS10 + PRINTI "ramp becomes stairs" + SET 'RAMP,FALSE-VALUE + JUMP ?CND8 +?ELS10: PRINTI "stairs become a ramp" + SET 'RAMP,TRUE-VALUE +?CND8: PRINTC 46 + CRLF + RTRUE + + + .FUNCT FOYER-CLOSET-ENTER-F + FSET? FOYER-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,FOYER-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,FOYER \?ELS7 + RETURN CLOSET +?ELS7: EQUAL? CLOSET-FLOOR,CELLAR \?ELS9 + RETURN CLOSET-TOP-2 +?ELS9: CALL JIGS-UP,STR?81 + RFALSE + + + .FUNCT ARMOR-F,OARG=0 + ZERO? OARG /?ELS5 + PRINTI "Standing demurely in the corner is a suit or armor, somewhat reminiscent of the suits of armor that once graced the castle of Winston Churchill. It is currrently in the position that Masters and Johnson described as " + GET ARMOR-DESCS,ARMOR-DESC-NUM + PRINT STACK + PRINTC 46 + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + CALL ARMOR-F,M-OBJDESC + RSTACK + + + .FUNCT I-ARMOR-MOVE + EQUAL? HERE,FOYER \?ELS3 + CALL QUEUE,I-ARMOR-MOVE,2 + RFALSE +?ELS3: INC 'ARMOR-DESC-NUM + EQUAL? ARMOR-DESC-NUM,7 \FALSE + SET 'ARMOR-DESC-NUM,0 + RFALSE + + + .FUNCT CELLAR-RAMP-F + EQUAL? PRSA,V?PUSH-DOWN \FALSE + CALL MOVE-OBJ-DOWN + RSTACK + + + .FUNCT CELLAR-CLOSET-ENTER-F + FSET? CELLAR-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,CELLAR-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7 + RETURN CLOSET +?ELS7: RETURN SHAFT-BOTTOM + + + .FUNCT TO-FOYER-F + ZERO? RAMP /?ELS5 + PRINTI "You slide down the flattened stairs." + CRLF + RETURN FOYER +?ELS5: RETURN FOYER + + + .FUNCT UPSTAIRS-CLOSET-ENTER-F + FSET? UPSTAIRS-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,UPSTAIRS-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL \?ELS7 + RETURN CLOSET +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + RETURN CLOSET-TOP-3 +?ELS9: CALL JIGS-UP,STR?91 + RSTACK + + + .FUNCT CLOSET-EXIT-F,DOOR + CALL WHICH-DOOR? >DOOR + FSET? DOOR,OPENBIT /?ELS5 + CALL ITS-CLOSED,CLOSET-DOOR + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7 + RETURN CELLAR +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + RETURN FOYER +?ELS9: RETURN UPSTAIRS-HALL + + + .FUNCT WHICH-DOOR? + EQUAL? CLOSET-FLOOR,CELLAR \?ELS5 + RETURN CELLAR-CD +?ELS5: EQUAL? CLOSET-FLOOR,FOYER \?ELS7 + RETURN FOYER-CD +?ELS7: RETURN UPSTAIRS-CD + + + .FUNCT CLOSET-REF-F + EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \FALSE + EQUAL? HERE,FOYER \?ELS8 + CALL LOOK-IN-CLOSET,FOYER-CD + RTRUE +?ELS8: EQUAL? HERE,UPSTAIRS-HALL \?ELS10 + CALL LOOK-IN-CLOSET,UPSTAIRS-CD + RTRUE +?ELS10: CALL LOOK-IN-CLOSET,CELLAR-CD + RTRUE + + + .FUNCT LOOK-IN-CLOSET,DOOR + FSET? DOOR,OPENBIT /?ELS5 + CALL ITS-CLOSED,DOOR + RSTACK +?ELS5: EQUAL? CLOSET-FLOOR,HERE \?ELS7 + PRINTI "You see " + CALL DESCRIBE-CONTENTS,CLOSET,-1 + PRINTC 46 + CRLF + RTRUE +?ELS7: PRINTR "You see a dark shaft." + + + .FUNCT PEGS-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "You see three rather worn coat pegs." + + + .FUNCT PEG-3-F + EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN6 + EQUAL? PRSA,V?RUB,V?LOWER,V?RAISE \FALSE +?THN6: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL \?ELS10 + CALL HUM + JUMP ?CND8 +?ELS10: PRINTI "The closet moves up " + EQUAL? CLOSET-FLOOR,FOYER \?ELS17 + PRINTI "a floor" + JUMP ?CND15 +?ELS17: PRINTI "two floors" +?CND15: PRINTI " to the upstairs hall." + CRLF + SET 'CLOSET-FLOOR,UPSTAIRS-HALL +?CND8: FSET? UPSTAIRS-CD,OPENBIT \?ELS28 + FSET CLOSET-DOOR,OPENBIT + RTRUE +?ELS28: FCLEAR CLOSET-DOOR,OPENBIT + RTRUE + + + .FUNCT PEG-2-F + EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN6 + EQUAL? PRSA,V?RUB,V?LOWER,V?RAISE \FALSE +?THN6: EQUAL? CLOSET-FLOOR,FOYER \?ELS10 + CALL HUM + JUMP ?CND8 +?ELS10: PRINTI "The closet moves " + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL \?ELS17 + PRINTI "down a floor" + JUMP ?CND15 +?ELS17: PRINTI "up a floor" +?CND15: PRINTI " to the front hall." + CRLF + SET 'CLOSET-FLOOR,FOYER +?CND8: FSET? FOYER-CD,OPENBIT \?ELS28 + FSET CLOSET-DOOR,OPENBIT + RTRUE +?ELS28: FCLEAR CLOSET-DOOR,OPENBIT + RTRUE + + + .FUNCT PEG-1-F + EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN6 + EQUAL? PRSA,V?RUB,V?LOWER,V?RAISE \FALSE +?THN6: EQUAL? CLOSET-FLOOR,CELLAR \?ELS10 + CALL HUM + JUMP ?CND8 +?ELS10: PRINTI "The closet moves down " + EQUAL? CLOSET-FLOOR,FOYER \?ELS17 + PRINTI "a floor" + JUMP ?CND15 +?ELS17: PRINTI "two floors" +?CND15: PRINTI " to the cellar." + CRLF + SET 'CLOSET-FLOOR,CELLAR +?CND8: FSET? CELLAR-CD,OPENBIT \?ELS28 + FSET CLOSET-DOOR,OPENBIT + RTRUE +?ELS28: FCLEAR CLOSET-DOOR,OPENBIT + RTRUE + + + .FUNCT HUM + PRINTR "You hear a humming noise." + + + .FUNCT VERTICAL-MAP-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTR "You see the following:~ + + + + + + +~ + + + + + + + + + + + + + + + +~ + + + + + + + + + + +~ + + + + + + + + + + +~ + + + + + + + + + + + + + + +~ + + + + + + + + + + + +~ + + + + + + + + + + + + + + + +~ + + + + + + + + + + + + + + +~ + + + + + + + + + +~ + + + + + + + +~ + + + + + + + + +~ + + + + + + + + + + + + + + + +~ + + + + + + + + + + + + + + + +~ + + + + + + + + + + + +~ + + + + + + + + + + + + + + +~ + + + + + + + + + + +~ + + + + + + + + + + +~ + + + + + + + + + + + + + + + +~ + + + + + + +~" +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + CALL WHOLE-MAP + RSTACK + + + .FUNCT HORIZONTAL-MAP-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTR "You see the following:~ _______________________________________~ _____ __ ___ __~ ____ __ ___ _~ ____ ___ ___ _______ ___~ ____ ___ __ ___~ ____ _ _ ___~ ________ __ ___~ ___ __~ __ __ _ __ ___ ___~ _ _______ x _______ ______~ _____________ _ _ ______ ___~ ____ _____ __ __ ___ __~ ___~ __ _____ ___~ ___ __ _____~ _ _ ___ ____~ ___ _____ ________ ____~ _____ ___ ____~ _ __ _ ____~ ___ ____ _________ __ ___ ___ _______~" +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + CALL WHOLE-MAP + RSTACK + + + .FUNCT WHOLE-MAP + PRINTI "You see the following:~ _______________________________________~ + _____ + + + __ ___ + __ + +~ +____ + + + + + + + +__ + +___ +_ + + + +~ + ____ + + +___ +___ + + _______ + +___ + +~ +____ + + + ___ __ + + ___ + + + + +~ + ____ +_ _ + + ___ + + + + + + + + + + +~ + + ________ +__ ___ + + + + + + + + +~ + + + + ___ + + __ + + + + + + + + + +~ + + + + +__ __ + +_ + __ + +___ + + + +___ +~ + + + +_ + _______ +x + +_______ +______ +~ + +_____________ +_ +_ + +______ ___ + +~ +____ + _____ + __ +__ ___ __ + + + + +~ + + + + + + + + + + + ___ + + + + +~ + + + + + + + + + + __ + +_____ +___ + + +~ + + + + + + + + + ___ + __ _____ + +~ + + + + + + +_ + + +_ + ___ + + + ____ +~ + +___ + + +_____ + + ________ + + +____ +~ + + + +_____ ___ + + + + + + ____ +~ + + + +_ + __ + + _ + + + + + + + +____ +~ +___ +____ +_________ __ +___ +___ +_______ +~" + RTRUE + + + .FUNCT BOWL-F + EQUAL? PRSA,V?EXAMINE \FALSE + CALL HELD?,FLASHLIGHT + ZERO? STACK /?ELS10 + FSET? FLASHLIGHT,ONBIT \?ELS10 + PRINTR "You shine your light on the bowl of the chandelier. Its thick, slick surface, covered with a rose-like pattern, reflects a rose colored light around the room. You can see a square shape in the bottom of the bowl." +?ELS10: PRINTR "The light from the flame reflects off the thick, slick surface of the chandelier's bowl. You can barely make out a rose-like pattern on the bowl." + + + .FUNCT 8-BALL-F + EQUAL? PRSA,V?TURN \FALSE + PRINTI "Looking into the bottom of the eight ball you the message" + PRINTC 34 + CALL PICK-ONE,EIGHTISMS + PRINT STACK + PRINTR ".""" + + + .FUNCT POOL-TABLE-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The pool table is made of the finest wood and on the table is" + CALL DESCRIBE-SENT,POOL-TABLE + CRLF + RTRUE + + + .FUNCT CUE-BALL-F + EQUAL? PRSA,V?SHOOT,V?DROP,V?PUT \FALSE + EQUAL? PRSI,POCKET \FALSE + EQUAL? PRSA,V?SHOOT \?ELS10 + CALL HELD?,POOL-CUE + ZERO? STACK \?ELS13 + PRINTI "You're not holding" + CALL TRPRINT,POOL-CUE + RTRUE +?ELS13: IN? CUE-BALL,POOL-TABLE /?ELS17 + PRINTI "The " + CALL DPRINT,CUE-BALL + PRINTI " isn't on" + CALL TRPRINT,POOL-TABLE + JUMP ?CND8 +?ELS17: PRINTI "The ball speeds across the smooth, green surface into" + CALL TPRINT,POCKET + PRINTI ". You" + JUMP ?CND8 +?ELS10: PRINTI "You " + PRINTB P-PRSA-WORD + CALL TPRINT,CUE-BALL + PRINTI " in" + CALL TPRINT,POCKET + PRINTI " and" +?CND8: PRINTI " hear it roll towards" + CALL TPRINT,BALL-RETURN + PRINTI ". As" + CALL TPRINT,CUE-BALL + PRINTI " drops into the return, a panel on the east wall swings open." + CRLF + MOVE CUE-BALL,BALL-RETURN + RTRUE + + + .FUNCT RACKED-BALLS-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "You see a set of pool balls " + CALL HELD?,RACKED-BALLS + ZERO? STACK /?CND8 + PRINTI "all glued to one another " +?CND8: PRINTR "in a triangle shape." + + + .FUNCT I-LIGHTS-DIM + FSET? HERE,OUTDOORSBIT \?ELS3 + PRINTI "The sun is rapidly sinking into west. It's getting dark out here." + CRLF + JUMP ?CND1 +?ELS3: FSET? HERE,ONBIT \?CND1 + PRINTI "The sun is going down. It's getting dark in here." + CRLF +?CND1: CALL QUEUE,I-LIGHTS-OUT,10 + RSTACK + + + .FUNCT I-LIGHTS-OUT + FCLEAR FOYER,ONBIT + FCLEAR CLOSET,ONBIT + FCLEAR CELLAR,ONBIT + PRINTI "The sun has set. " + CALL LIT?,HERE >LIT + ZERO? LIT \?ELS7 + CALL TOO-DARK + RSTACK +?ELS7: CRLF + RTRUE + + + .FUNCT WINDOW-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + ZERO? SACK-IN-WINDOW /?ELS10 + FSET? WINDOW,OPENBIT /?ELS10 + PRINTR "The window is closed on a cloth which is tied in a knot. " +?ELS10: PRINTI "The " + CALL DPRINT,WINDOW + PRINTI " is " + FSET? WINDOW,OPENBIT \?ELS21 + PRINTI "open." + JUMP ?CND19 +?ELS21: PRINTI "closed" +?CND19: PRINTC 46 + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?OPEN \?ELS31 + FSET? WINDOW,OPENBIT \?ELS36 + CALL ALREADY-OPEN + RSTACK +?ELS36: ZERO? SACK-IN-WINDOW /?ELS38 + PRINTI "As you lift up the window, the sack slides off the window ceil and falls to the ground with a decided thud." + CRLF + FSET WINDOW,OPENBIT + SET 'SACK-IN-WINDOW,FALSE-VALUE + RETURN SACK-IN-WINDOW +?ELS38: FSET? WINDOW,RMUNGBIT \?ELS43 + PRINTI "With one hand you lift the window and with the other you pull the sack inside. " + CRLF + MOVE SACK,PLAYER + FSET? WINDOW,OPENBIT + SET 'SACK-IN-WINDOW,FALSE-VALUE + RETURN SACK-IN-WINDOW +?ELS43: PRINTI "You open the window." + CRLF + FSET WINDOW,OPENBIT + SET 'SACK-IN-WINDOW,FALSE-VALUE + RETURN SACK-IN-WINDOW +?ELS31: EQUAL? PRSA,V?CLOSE \FALSE + FSET? WINDOW,OPENBIT /?ELS56 + CALL ALREADY-CLOSED + RSTACK +?ELS56: PRINTI "You close" + CALL TRPRINT,WINDOW + RSTACK + + .ENDI diff --git a/rooms.zil b/rooms.zil new file mode 100644 index 0000000..a9f79d6 --- /dev/null +++ b/rooms.zil @@ -0,0 +1,1107 @@ +"ROOMS for ANTHILL: (C)1986 Infocom, Inc. All rights reserved." + + + + + > + + >)> + ".\" +Love, Aunt Hildegard" CR> + )>> + + + + + + ) + (T + + + ) + (T + + )>)>) + ( + + ) + ( + ) + (T + + + + + + )>)> + ) + ( + + ) + ( + + ) + (T + )> + )>> + + + + + ) + ( + )>> + +"--- Inside House ---" +"--- Foyer ---" + + + + + + + + + ) + ( + ;"need to mention knuel here" + ) + (T + )> + )>> + +> + + + + ) + (,RAMP + + ) + (T + )>> + + + +> + + + + + + >) + (T + + )> + )>> + +> ;"starts at foyer-2" + +> + + ) + ( + ) + ( + ) + (T + ;"what if you don't have light?" + )>> + + + +)) + ".">) + ( + + ; "." CR>)>> + + + + + ) + (T + > + + )>)> + > + +> + +"--- Cellar ---" + + + + + + + + + + + )>> + +> + + ) + ( + ) + (T + )>> + + +"--- Upstairs Hall ---" + + + + + + ;"could be funnier" + ) + (T + )>> + +> + + ) + ( + ) + ( + ) + (T + )>> + + +"--- Closet Stuff ---" + + + + + +> + > + + ) + ( + ) + ( + ) + (T + )>> + + + ) + ( + ) + (T + )>> + +; + >> + + ) + ( + >> + + ) + ( + >> + + ) + ( + + ) + ( + ) + (T + + )>) + ( + + ) + ( + ) + (T + )>) + ( + + ) + ( + ;"what if you don't have light?" + ) + (T + )>)>> + + + + + + ) + ( + ) + (T + )> + ) + (T + )>> + +> + ) + ( + + + ) + (T + )>> ;"or elevator top" + + +"--- Peg Stuff ---" + + + + + + ) + (T + )>> + + + + + + ) + (T + + + ) + (T + )> + + )> + + ) + (T + )> + ) + (T + )>> + + + + + + ) + (T + + + ) + (T + )> + + )> + + ) + (T + )> + ) + (T + )>> + + + + + + ) + (T + + + ) + (T + )> + + )> + + ) + (T + )> + ) + (T + )>> + +> + + +"--- Elevator Rooms ---" + + + + + + + + +"--- Living room ---" + + + +; + +; + + + > + ) + (T + )> + + + > + ) + (T + )>)> + ;( + > + )> + +; + + ;> + + + +0 + % + ') + (T + )>) + ( + )>> + + + + + % + ') + (T + )>) + ( + )>> + +> + + + + + + + > + ) + (T + )>) + ;( + > + )>> + + +"--- Kitchen ---" + + + + + +"--- Game Room ---" + + + + + + + ".\"" CR> + )>> + +> + + +"--- Pool Table ---" + + + + + + + )>> + + + +;> + + + +; + + + + + > + + > + + ) + (> + ) + (T + )>) + (T + + + )> + + ; + )>> + + + + + + + )> + )>> + + + + + + +"--- Misc ---" + + + ) + (T + + )>)> + > + + + + + + > + + ) + (T + )>> + + + + +; + )>> + + + + + + + >> + ) +;"Underneath the closed D ,WINDOW you see the top of a cloth tied in a knot." +;"Beneath the sash of the closed D ,WINDOW is a cloth tied in a knot. The rest of the cloth is outside." + + (T + + + ) + (T + )> + )>) + ( + + ) + (,SACK-IN-WINDOW + + + >) + ( ;"rmung: you are holding sack" + + + + >) + (T + + + >)>) + ( + > + ) + (T + )>)>> + +"--- Junk Yard ---" + +; + +; + ) + ( + ) + ( + )>> + + + + + + + + diff --git a/second-floor.zap b/second-floor.zap new file mode 100644 index 0000000..478a35e --- /dev/null +++ b/second-floor.zap @@ -0,0 +1,590 @@ + + + .FUNCT UPSTAIRS-HALL-MIDDLE-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the middle of the upstairs hall. The hall stretches to the east and the west. To the south there is a" + FSET? UPSTAIRS-CD,OPENBIT \?ELS8 + PRINTI "n open" + JUMP ?CND6 +?ELS8: PRINTI " closed" +?CND6: PRINTI " closet door. " + FSET? ATTIC-DOOR,OPENBIT \?ELS13 + PRINTI "There is pull-down ladder extending from the floor into an open panel in the ceiling here." + JUMP ?CND11 +?ELS13: PRINTI "In the ceiling above you see the outline of a panel." +?CND11: PRINTI " You notice an unusual newel next to the stairs leading down." + RTRUE + + + .FUNCT UPSTAIRS-HALL-EAST-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the eastern end of the upstairs hall, which stretches west. Doorways lead north and south. There is a" + FSET? SACK-WINDOW,WINDOW-OPEN-BIT \?ELS8 + PRINTI "n open" + JUMP ?CND6 +?ELS8: PRINTI " closed" +?CND6: PRINTI " window here" + ZERO? SACK-IN-WINDOW /?CND11 + PRINTI ". A blue velvet sack is barely visible, sticking out from beneath the closed window" +?CND11: PRINTC 46 + RTRUE + + + .FUNCT UPSTAIRS-HALL-EAST-EXIT-F + FSET? SACK,HAND-ON-SACK-BIT \?ELS5 + ZERO? SACK-IN-WINDOW /?ELS5 + PRINTI "You'll have to let go of the sack first." + CRLF + RFALSE +?ELS5: EQUAL? PRSO,P?NORTH \?ELS14 + RETURN BEDROOM-2 +?ELS14: EQUAL? PRSO,P?SOUTH \?ELS16 + RETURN BEDROOM-3 +?ELS16: RETURN UPSTAIRS-HALL-MIDDLE + + + .FUNCT FINCH-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's the Maltese finch" + FSET? FINCH,BROKEN-BIT \?CND6 + PRINTI ", well, pieces of the Maltese finch" +?CND6: PRINTR " from Uncle Buddy's knockoff of ""The Maltese Falcon."" In Uncle Buddy's updated version, a Humphrey Bogart look-alike plays the part of a pet shop owner." +?ELS5: EQUAL? PRSA,V?MUNG,V?THROW \FALSE + FSET? FINCH,BROKEN-BIT /FALSE + CALL ULTIMATELY-IN?,FINCH + ZERO? STACK /FALSE + EQUAL? PRSO,FINCH \FALSE + CALL SPECIAL-DROP + ZERO? STACK \FALSE + MOVE FINCH,HERE + CALL BREAK-FINCH + RSTACK + + + .FUNCT BREAK-FINCH,DONT-TELL=0 + FSET? FINCH,BROKEN-BIT /FALSE + PUTP FINCH,P?VALUE,0 + FSET FINCH,BROKEN-BIT + ZERO? DONT-TELL \?CND4 + PRINTI "As your hand releases" + CALL TPRINT,PRSO + PRINTI ", the sound of it smashing onto" + CALL TPRINT,GROUND + PRINTI " is masked only slightly by the almost inaudible sound of someone rolling over in his grave. Uncle Buddy perhaps?" + CRLF +?CND4: FSET FINCH,NARTICLEBIT + PUTP FINCH,P?SDESC,STR?138 + RTRUE + + + .FUNCT SACK-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? SACK-WINDOW,WINDOW-OPEN-BIT /?ELS5 + ZERO? SACK-IN-WINDOW /?ELS5 + PRINTI "The " + CALL DPRINT,SACK + PRINTI " is just visible, stuck beneath the closed " + CALL DPRINT,SACK-WINDOW + PRINTR "." +?ELS5: EQUAL? PRSA,V?TAKE \?ELS9 + ZERO? SACK-IN-WINDOW /?ELS9 + FSET? SACK,HAND-ON-SACK-BIT /?ELS16 + FSET SACK,HAND-ON-SACK-BIT + PRINTR "You grab hold of the top of the sack, but the rest of it is still under the closed window." +?ELS16: PRINTR "You already have your hand on it." +?ELS9: EQUAL? PRSA,V?DROP \?ELS20 + FSET? SACK,HAND-ON-SACK-BIT \?ELS20 + CALL PERFORM,V?LET-GO,SACK + RTRUE +?ELS20: EQUAL? PRSA,V?LET-GO \?ELS24 + FSET? SACK,HAND-ON-SACK-BIT \?ELS24 + FCLEAR SACK,HAND-ON-SACK-BIT + PRINTR "You let go of the sack." +?ELS24: EQUAL? PRSA,V?OPEN \?ELS28 + ZERO? SACK-IN-WINDOW /?ELS33 + PRINTI "You can't open" + CALL TPRINT,SACK + PRINTI " when it's stuck in" + CALL TRPRINT,SACK-WINDOW + RSTACK +?ELS33: GETP FINCH,P?VALUE + ZERO? STACK /FALSE + FSET SACK,OPENBIT + CALL BOKS-BIG-ONE,FINCH + ZERO? STACK /?CND37 + EQUAL? TREASURES-FOUND,10 /TRUE +?CND37: PRINTI "Opening the sack reveals" + CALL APRINT,FINCH + PRINTR "." +?ELS28: EQUAL? PRSA,V?THROW \?ELS43 + IN? FINCH,SACK \?ELS43 + FSET? FINCH,BROKEN-BIT /?ELS43 + CALL BREAK-FINCH + EQUAL? HERE,ROOF-1,ROOF-2 \?ELS50 + MOVE SACK,PATIO + RTRUE +?ELS50: MOVE SACK,HERE + RTRUE +?ELS43: EQUAL? PRSA,V?PULL \?ELS54 + FSET? SACK-WINDOW,WINDOW-OPEN-BIT /?ELS54 + FSET? SACK,HAND-ON-SACK-BIT \?ELS61 + PRINTR "It's stuck under the window." +?ELS61: PRINTI "You pull on" + CALL TPRINT,SACK + PRINTR ", but it's stuck under the window sill." +?ELS54: EQUAL? PRSA,V?PUT \FALSE + FSET? PRSO,FLAMEBIT \FALSE + PRINTI "Shouldn't you put out" + CALL TPRINT,PRSO + PRINTR " first?" + + + .FUNCT SACK-WINDOW-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + ZERO? SACK-IN-WINDOW /?ELS10 + PRINTR "The window is closed on the top of a cloth sack." +?ELS10: PRINTI "The " + CALL DPRINT,SACK-WINDOW + PRINTI " is " + FSET? SACK-WINDOW,WINDOW-OPEN-BIT \?ELS16 + PRINTI "open" + JUMP ?CND14 +?ELS16: PRINTI "closed" +?CND14: PRINTR "." +?ELS5: EQUAL? PRSA,V?OPEN \?ELS20 + FSET? SACK-WINDOW,WINDOW-OPEN-BIT \?ELS23 + CALL ALREADY-OPEN + RTRUE +?ELS23: ZERO? SACK-IN-WINDOW /?ELS25 + FSET? SACK,HAND-ON-SACK-BIT \?ELS29 + FCLEAR SACK,HAND-ON-SACK-BIT + MOVE SACK,PLAYER + SET 'SACK-IN-WINDOW,FALSE-VALUE + FSET SACK-WINDOW,WINDOW-OPEN-BIT + PRINTI "With one hand you lift" + CALL TPRINT,SACK-WINDOW + PRINTI " and with the other you pull" + CALL TPRINT,SACK + PRINTI " inside." + CRLF + JUMP ?CND27 +?ELS29: MOVE SACK,SOUTHEAST-JUNCTION + CALL BREAK-FINCH,TRUE-VALUE + PRINTI "As you lift up" + CALL TPRINT,SACK-WINDOW + PRINTC 44 + CALL TPRINT,SACK + PRINTI " slides off" + CALL TPRINT,SACK-WINDOW + PRINTI " sill and falls to" + CALL TPRINT,GROUND + PRINTI " with a decided thud." + CRLF +?CND27: FSET SACK-WINDOW,WINDOW-OPEN-BIT + FCLEAR SACK,NDESCBIT + FCLEAR SACK,TRYTAKEBIT + SET 'SACK-IN-WINDOW,FALSE-VALUE + RTRUE +?ELS25: PRINTI "You open" + CALL TRPRINT,SACK-WINDOW + FSET SACK-WINDOW,WINDOW-OPEN-BIT + RTRUE +?ELS20: EQUAL? PRSA,V?CLOSE \?ELS35 + FSET? SACK-WINDOW,WINDOW-OPEN-BIT /?ELS40 + CALL ALREADY-CLOSED + RSTACK +?ELS40: PRINTI "You close" + CALL TRPRINT,SACK-WINDOW + FCLEAR SACK-WINDOW,WINDOW-OPEN-BIT + RTRUE +?ELS35: EQUAL? PRSA,V?PUT \?ELS44 + EQUAL? PRSI,SACK-WINDOW \?ELS44 + FSET? SACK-WINDOW,WINDOW-OPEN-BIT \?ELS51 + PRINTI "You toss" + CALL TPRINT,PRSO + PRINTI " out" + CALL TRPRINT,SACK-WINDOW + EQUAL? PRSO,BLUE-CANDLE,WHITE-CANDLE,RED-CANDLE \?CND52 + FSET? PRSO,FLAMEBIT \?CND52 + CALL BLOW-OUT-CANDLE,PRSO +?CND52: EQUAL? PRSO,FINCH \?ELS63 + FSET? FINCH,BROKEN-BIT \?THN60 +?ELS63: CALL ULTIMATELY-IN?,FINCH,SACK + ZERO? STACK /?CND57 + FSET? FINCH,BROKEN-BIT /?CND57 +?THN60: CALL BREAK-FINCH,TRUE-VALUE +?CND57: MOVE PRSO,SOUTHEAST-JUNCTION + RTRUE +?ELS51: PRINTR "But it's not open!" +?ELS44: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + CALL PERFORM,V?LOOK-INSIDE,WINDOW + RTRUE + + + .FUNCT UPSTAIRS-HALL-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the western end of the upstairs hall, which stretches east. There are doorways leading to the north and south." + FSET? UPSTAIRS-HALL-WEST,EVERYBIT \TRUE + RANDOM 100 + LESS? 50,STACK /TRUE + FCLEAR UPSTAIRS-HALL-WEST,EVERYBIT + PRINTI " Hmmm. You have the uneasy feeling that someone is watching you." + RTRUE + + + .FUNCT BEDROOM-2-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This was the guest room you shared with Cousin Herman during your summer visits. A quick glance at the bunk beds and you remember all too well the night in the bottom bunk when Cousin Herman got sick in the top bunk. " + RANDOM 100 + LESS? 50,STACK /?CND6 + PRINTI "You got even with him later. While he was asleep you squirted honey up his nose. When he ran and told Aunt Hildegarde what you had done, she didn't believe it was honey and told him he shouldn't be out of bed with such a bad cold. " +?CND6: PRINTI "A doorway leads south." + RTRUE + + + .FUNCT HANDLES-F + EQUAL? PRSA,V?TAKE \FALSE + PRINTR "You grip the handles firmly and imagine one of Uncle Buddy's guests clutching them in a drunken stupor. After a minute, you begin to feel a bit of nausea and let go of the handles." + + + .FUNCT UPSTAIRS-BATHROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "It's a Hollywood bathroom. Everything from the temperature-controlled marble toilet seat to the Oscars for hot and cold water is overdone. The shower has a gold curtain and you can't help but notice the bath mat with Jack Valenti's picture on it" + FSET? BATH-MAT,TOUCHBIT \?CND6 + PRINTI " has been moved" +?CND6: PRINTC 46 + RTRUE + + + .FUNCT BATH-PSEUDO + EQUAL? PRSA,V?WALK,V?LAMP-ON,V?TAKE /?THN6 + EQUAL? PRSA,V?USE,V?BOARD,V?ENTER \FALSE +?THN6: PRINTR "Sorry, the water has been turned off." + + + .FUNCT BATH-MAT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It's a rubber bath mat with a picture of the President of the Academy of Motion Picture Arts and Sciences, Jack Valenti, on it." +?ELS5: EQUAL? PRSA,V?PUT-ON \?ELS7 + EQUAL? PRSI,BATH-MAT \?ELS7 + PRINTR "Jack wouldn't like that." +?ELS7: EQUAL? PRSA,V?RAISE,V?MOVE,V?LOOK-UNDER \?ELS11 + FSET? RED-CARD,INVISIBLE \?ELS11 + FCLEAR RED-CARD,INVISIBLE + PRINTI "You move" + CALL TPRINT,BATH-MAT + PRINTI " and see" + CALL APRINT,RED-CARD + PRINTR " lying on the floor of the bathroom." +?ELS11: EQUAL? PRSA,V?TAKE \FALSE + FSET? RED-CARD,INVISIBLE \FALSE + CALL ITAKE + ZERO? STACK /TRUE + FCLEAR RED-CARD,INVISIBLE + PRINTI "As you take" + CALL TPRINT,BATH-MAT + PRINTI " you notice" + CALL APRINT,RED-CARD + PRINTR " lying on the floor of the bathroom." + + + .FUNCT UPSTAIRS-CD-F + EQUAL? PRSA,V?OPEN \FALSE + FSET? UPSTAIRS-CD,OPENBIT /FALSE + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE /FALSE + EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \FALSE + CALL OPEN-DOOR-TO-SHAFT + FSET UPSTAIRS-CD,OPENBIT + RTRUE + + + .FUNCT OPEN-DOOR-TO-SHAFT + PRINTI "You open the door and see the " + EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS9 + EQUAL? CLOSET-FLOOR,FOYER /?THN6 +?ELS9: EQUAL? HERE,FOYER \?ELS5 + EQUAL? CLOSET-FLOOR,CELLAR \?ELS5 +?THN6: PRINTR "top of the closet at floor level and the shaft continuing upwards." +?ELS5: EQUAL? HERE,CELLAR \?ELS17 + EQUAL? CLOSET-FLOOR,FOYER /?THN14 +?ELS17: EQUAL? HERE,FOYER \?ELS19 + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE /?THN14 +?ELS19: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS13 + EQUAL? CLOSET-FLOOR,ATTIC \?ELS13 +?THN14: PRINTI "bottom of the closet at ceiling level" + EQUAL? HERE,FOYER,UPSTAIRS-HALL-MIDDLE \?CND22 + PRINTI " and a shaft below" +?CND22: PRINTR "." +?ELS13: EQUAL? HERE,CELLAR \?ELS30 + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE /?THN27 +?ELS30: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS26 + EQUAL? CLOSET-FLOOR,CELLAR \?ELS26 +?THN27: EQUAL? HERE,CELLAR \?ELS35 + PRINTI "bottom of the closet far above" + JUMP ?CND33 +?ELS35: PRINTI "top of the closet far below" +?CND33: PRINTR "." +?ELS26: EQUAL? HERE,ATTIC \FALSE + PRINTI "top of the closet " + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS42 + PRINTI "at floor level" + JUMP ?CND40 +?ELS42: EQUAL? CLOSET-FLOOR,CELLAR \?ELS44 + PRINTI "far below" + JUMP ?CND40 +?ELS44: PRINTI "below" +?CND40: PRINTR "." + + + .FUNCT TO-FOYER-F + FSET? NEWEL,NEWEL-TURNED-BIT /?ELS5 + PRINTI "As you step onto the first step, the staircase flattens and you slide down the flattened stairs" + RANDOM 100 + LESS? 50,STACK /?CND6 + PRINTI ", experiencing for a split second the euphoria only an Olympic bobsledder can know" +?CND6: PRINTI ". After you slide into the foyer, the stairs return to normal." + CRLF + CRLF + RETURN FOYER +?ELS5: FSET? SKIS,WORNBIT \?ELS13 + PRINT SNOWPLOW + CRLF + CRLF + RETURN FOYER +?ELS13: PRINTI "You walk down the stairs to the..." + CRLF + CRLF + RETURN FOYER + + + .FUNCT UPSTAIRS-CLOSET-ENTER-F + FSET? UPSTAIRS-CD,OPENBIT /?ELS5 + CALL ITS-CLOSED,UPSTAIRS-CD + RFALSE +?ELS5: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS7 + RETURN CLOSET +?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9 + RETURN CLOSET-TOP +?ELS9: PRINTI "You enter the shaft and plunge down a floor. A bit shaken, you find yourself at..." + CRLF + CRLF + RETURN CLOSET-TOP + + + .FUNCT PHONE-F + EQUAL? PRSA,V?REPLY \?ELS5 + PRINTR "It wasn't ringing." +?ELS5: EQUAL? PRSA,V?TAKE \?ELS7 + FSET? PHONE,PHONE-DEAD-BIT \?ELS12 + PRINTR "You don't hear a dial tone. The line is dead." +?ELS12: PRINTR "You hear a dial tone." +?ELS7: EQUAL? PRSA,V?PHONE \?ELS16 + EQUAL? PRSO,PHONE \?ELS16 + PRINTR "You should dial a number, such as 911." +?ELS16: EQUAL? PRSA,V?HANG-UP \FALSE + PRINTR "You replace the receiver." + + + .FUNCT THERE-DOESNT-SEEM + PRINTI "There doesn't seem to be" + RTRUE + + + .FUNCT V-PHONE + CALL GLOBAL-IN?,PHONE,HERE + ZERO? STACK \?ELS5 + CALL THERE-DOESNT-SEEM + CALL APRINT,PHONE + PRINTR " here." +?ELS5: ZERO? PRSI /?ELS7 + EQUAL? PRSI,PHONE /?ELS7 + PRINTI "Too bad" + CALL TPRINT,PRSI + PRINTR " isn't a telephone." +?ELS7: FSET? PHONE,PHONE-DEAD-BIT \?ELS11 + PRINTR "You don't hear a dial tone. The line is dead." +?ELS11: EQUAL? PRSO,INTNUM \?ELS13 + GRTR? P-EXCHANGE,999 /?THN19 + GRTR? P-NUMBER,9999 \?ELS18 +?THN19: PRINTR "You dialed too many numbers. Remember what Aunt Hildegarde thought about guests making long distance calls!" +?ELS18: ZERO? P-EXCHANGE \?ELS26 + ZERO? P-NUMBER /?THN23 +?ELS26: EQUAL? P-EXCHANGE,555 \?ELS28 + EQUAL? P-NUMBER,1212 /?THN23 +?ELS28: ZERO? P-EXCHANGE \?ELS22 + EQUAL? P-NUMBER,411 \?ELS22 +?THN23: PRINTR "You hear a lazy voice come on the line. ""You have reached the Malibu phone company. Our operator is busy now. Mellow out and try your call again later.""" +?ELS22: ZERO? P-EXCHANGE \?ELS32 + EQUAL? P-NUMBER,911 \?ELS32 + PRINTR "A police officer answers the phone in mid-snore saying he'll send a car right over, then hangs up and goes back to sleep." +?ELS32: EQUAL? P-EXCHANGE,492 \?ELS36 + EQUAL? P-NUMBER,6000 \?ELS36 + PRINTR "You hear voice talking at a fast pace trying to announce all the information necessary in 30 seconds. The voice says, ""Thank you for calling Infocom. We are closed now. Please call back during regular business hours, Monday through Friday, 9 a.m. to 6 p.m., Eastern Standard Time."" Then the voice speeds up even more, giving information for technical problems and the special numbers to call. Finally you hear the voice take a deep breath and say, ""Have a nice (BEEP),"" and the message ends." +?ELS36: EQUAL? P-EXCHANGE,576 \?ELS40 + EQUAL? P-NUMBER,1851 \?ELS40 + PRINTI "A nerdish voice answers" + CALL TPRINT,PHONE + PRINTR " saying, ""Hello, this is Roy G. Biv, Computer Service and Repair. Our office is closed now. Please call back during our regular business hours.""" +?ELS40: EQUAL? P-EXCHANGE,576 \?ELS44 + EQUAL? P-NUMBER,3190 \?ELS44 + FSET? TOUPEE,CARDS-RIGHT-BIT \?ELS51 + FSET PHONE,PHONE-DEAD-BIT + MOVE TOUPEE,HOPPER + PRINTR "An answering machine comes on the line. It sounds like Aunt Hildegarde's voice saying, ""I can't come to the phone right now. I'm dead. Don't forget to look in the hopper."" Then the line goes dead." +?ELS51: PRINTR "You get a busy signal." +?ELS44: RANDOM 100 + LESS? 60,STACK /?ELS55 + PRINTI "The " + CALL DPRINT,PHONE + PRINTR " rings and rings, but no one answers." +?ELS55: PRINTI "The " + CALL DPRINT,PHONE + PRINTR " is answered, ""Hello? Hello? Hey, what is this, a crank call? You made my wife cry the last time you called, you pervert."" You hear the receiver slammed down." +?ELS13: PRINTI "There's no sense in phoning" + CALL ARPRINT,PRSO + RSTACK + + + .FUNCT TOILET-F + EQUAL? PRSO,TOILET \FALSE + EQUAL? PRSA,V?SIT,V?USE,V?WALK \?ELS10 + PRINTR "You'll have to hold it in. The water's been shut off, remember?" +?ELS10: EQUAL? PRSA,V?SMELL,V?LOOK-INSIDE \?ELS12 + PRINTR "The toilet is immaculate. Nosey, aren't you?" +?ELS12: EQUAL? PRSA,V?FLUSH \FALSE + PRINTR "You pull the handle, but nothing happens. The water has been shut off." + + + .FUNCT SEAT-F + EQUAL? PRSA,V?TAKE \?ELS5 + EQUAL? PRSO,SEAT \?ELS5 + PRINT RIDICULOUS + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?PUT \?ELS9 + EQUAL? PRSI,SEAT,SOFA \?ELS9 + FCLEAR PRSO,WEARBIT + MOVE PRSO,HERE + PRINTI "It seems a shame to mar" + CALL TPRINT,PRSI + PRINTI " with" + CALL APRINT,PRSO + PRINTR ", so you put it on the floor instead." +?ELS9: EQUAL? PRSA,V?SIT,V?BOARD,V?CLIMB-ON /?THN14 + EQUAL? PRSA,V?ENTER \FALSE +?THN14: PRINTR "You sit down and relax for a moment. Soon your mind begins to ponder your Aunt's wealth and you jump to your feet, ready to continue." + + + .FUNCT BED-F + EQUAL? PRSA,V?TAKE \?ELS5 + EQUAL? PRSO,BED \?ELS5 + PRINT RIDICULOUS + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?LIE-DOWN /?THN10 + EQUAL? PRSA,V?ENTER,V?SIT \?ELS9 +?THN10: PRINTR "You get into bed and relax for a moment. Soon your mind begins to ponder your Aunt's wealth and you jump to your feet, ready to continue." +?ELS9: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS13 + EQUAL? PRSI,BED \?ELS13 + MOVE PRSO,HERE + PRINTI "Rather than marring the bed's fine linen with" + CALL APRINT,PRSO + PRINTR ", you put it on the floor." +?ELS13: EQUAL? PRSA,V?PUSH-TO,V?PUSH \FALSE + PRINT RIDICULOUS + CRLF + RTRUE + + + .FUNCT I-SANDS-OF-TIME,X=0,MINUTES,CNT=0,TCNT=0,TNUM,FOLLOW-THE-LAWYER=0 + ADD MOVES,1260 >MINUTES + EQUAL? MINUTES,1859 \?ELS3 + SET 'X,60 + CALL MICKEY-MOUSE,2,STR?144 + JUMP ?CND1 +?ELS3: EQUAL? MINUTES,1919 \?ELS5 + SET 'X,30 + CALL MICKEY-MOUSE,1,STR?145 + JUMP ?CND1 +?ELS5: EQUAL? MINUTES,1949 \?ELS7 + SET 'X,30 + CALL MICKEY-MOUSE,30,STR?146 + JUMP ?CND1 +?ELS7: EQUAL? MINUTES,1979 \?CND1 + EQUAL? HERE,FOYER,FRONT-PORCH,SOUTH-JUNCTION \?CND10 + FSET LIVING-ROOM,ONBIT + SET 'FOLLOW-THE-LAWYER,TRUE-VALUE + CRLF + PRINT OUT-OF-NOWHERE + PRINTI """Ah, there you are. Let's go into the living room and talk,"" says the lawyer. You follow him to the living room." + CRLF + CRLF + CALL GOTO,LIVING-ROOM + CRLF +?CND10: IN? PLAYER,LIVING-ROOM \?ELS15 + ZERO? FOLLOW-THE-LAWYER \?CND16 + CRLF + PRINT OUT-OF-NOWHERE +?CND16: PRINTI """Well, let's wrap this up quickly, I've got to be in court for the LaFlank divorce this afternoon,"" the lawyer snaps. He pauses for a moment, glancing around the room" + GET TREASURE-TABLE,0 >TNUM +?PRG19: IGRTR? 'CNT,TNUM /?REP20 + GET TREASURE-TABLE,CNT >X + CALL VISIBLE?,X + ZERO? STACK /?PRG19 + INC 'TCNT + JUMP ?PRG19 +?REP20: ZERO? TCNT \?ELS29 + PRINTI ". ""Uhh, I don't see any 'treasures.'" + JUMP ?CND27 +?ELS29: EQUAL? TCNT,10 \?ELS31 + PRINTI " then at a small note pad in his hand. He congratulates you for finding all the ""treasures."" ""But you didn't follow your aunt's instructions in the note." + JUMP ?CND27 +?ELS31: PRINTI " then at a small note pad in his hand. ""Uhh, I only count " + GET NUMWORDS,TCNT + PRINT STACK + PRINTI " 'treasure" + EQUAL? TCNT,1 /?CND34 + PRINTC 115 +?CND34: PRINTI "' here." +?CND27: PRINTI " I'm sorry, but you won't be inheriting Mrs. Burbank's estate after all,"" says the lawyer. He turns and leaves as his words echo in your head. Then you feel a sharp pain in your backside, as you kick yourself for not having " + EQUAL? TCNT,10 \?ELS39 + PRINTI "followed the instructions in the note" + JUMP ?CND37 +?ELS39: EQUAL? TREASURES-FOUND,10 \?ELS41 + PRINTI "brought all the ""treasures"" you found to the living room" + JUMP ?CND37 +?ELS41: ZERO? TREASURES-FOUND \?ELS43 + PRINTI "found any of the ""treasures""" + JUMP ?CND37 +?ELS43: PRINTI "found all the ""treasures"" in time" +?CND37: PRINTC 46 + CRLF + JUMP ?CND13 +?ELS15: PRINTI "Your time is up! " + EQUAL? TREASURES-FOUND,10 \?ELS50 + PRINTI "You did a good job by finding all the ""treasures,"" but you didn't meet the lawyer at 9 a.m." + JUMP ?CND48 +?ELS50: GRTR? TREASURES-FOUND,0 \?ELS52 + PRINTI "You only found " + GET NUMWORDS,TREASURES-FOUND + PRINT STACK + PRINTI " of the ten ""treasures.""" + JUMP ?CND48 +?ELS52: PRINTI "What a bozo! You didn't find any ""treasures."" You're not fit to be fertilizer for the family tree! Are you sure you're a Burbank? I'd go on but there is only so much room on a disk." +?CND48: PRINTI " You can't help but think about how disappointed Aunt Hildegarde and Uncle Buddy would have been with you right now. Never mind your own disappointment of missing out on inheriting a fortune." +?CND13: SET 'MOVES,720 + USL + CALL FINISH +?CND1: CALL QUEUE,I-SANDS-OF-TIME,X + RSTACK + + + .FUNCT MICKEY-MOUSE,NUM,STRING + CRLF + PRINTI "[Hurry up, you only have " + PRINTN NUM + PRINTC 32 + PRINT STRING + PRINTR " left!]" + + .ENDI diff --git a/second-floor.zil b/second-floor.zil new file mode 100644 index 0000000..3f00cf7 --- /dev/null +++ b/second-floor.zil @@ -0,0 +1,1002 @@ +"SECOND-FLOOR for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + +"--- Upstairs Hall ---" + + + + + + + ) + (T + )> + + + ) + (T + )> + )>> + + + + + + + ) + (T + )> + + )> + )>> + + + ,SACK-IN-WINDOW> + + ) + (T + + ,BEDROOM-2) + ( + ,BEDROOM-3) + (T + ,UPSTAIRS-HALL-MIDDLE)>)>> + + + + + + + )> + ) + ( + > + + + >> + + )>> + +)) + + )> + + + + )> + + + > + + + + + > + ,SACK-IN-WINDOW> + ) + ( + ,SACK-IN-WINDOW + ;> + ;> + > + + ) + (T + )>) + ( + > + + ) + ( + > + + ) + ( + ) + ( 0>> + + + > + )> + )>) + ( + + >> + + + ) + (T + )>) + ( + >> + + ) + (T + )>) + ( + > + )>> + + + + + + + ) + (T + + + ) + (T + )> + )>) + ( + + ) + (,SACK-IN-WINDOW + + + + > + + ) + (T + + + )> + + + + >) + (T + + )> + ) + ( + > + ) + (T + + )>) + ( + > ;"SEM PUT THE RIGHT VERB HERE?" + + + + > + )> + + >> + + >>> + )> + ) + (T + )>) + ( + + )>> + + + + + + + + + )>)> + )>> + + + + + + + + + )> + )>> + + + + + + + )>> + + BATH BATH-PSEUDO) + (<> SHOWER BATH-PSEUDO)>)> + + + + ;"SEM" + )> + )>> + + + )>> + + + + + ) + ( + > + ) + ( + > + + ) + ( + > + > + ) + (T + + )>)>> + + + + + + + > + > + > + + )>> + + + +;"closet-top-3" > +;"closet-top-2" + >> + ) + ( + > + + > + + >> + + + )> + ) + ( + > + + >> + + ) + (T + )> + ) + ( + + + ) + ( + ) + (T + )> + )>> + +> + + + )> + + ) + (T + + ) + (T + )> + )>> + + + +> + + ) + ( + ) + ( + ) + (T + ;"CLOSET-FLOOR IS CELLAR" + + )>> + +; + +;"------------------ Suspect Telephone ----------------------" + +;"make suspect and witness numbers work" + + + + ) + ( + + ) + (T + )>) + ( + > + ) + ( + ;> + )>> + + +;"\"Costumes Unlimited| +312 Wisconsin Ave.| +Rockville, MD| +555-9009| +| +(1) Cowboy costume with lariat and gunbelt: $65\" + +" + +; + +; + + ) + (ELSE + + > + )>)>> + +; + + )>> + +; + +;> + ) + ( + > + ) + (ELSE + )>) + ( + + ) + ( > + + + + ) + (ELSE )>) + (<==? ,PRSI ,FAIRY-COSTUME> + + + ) + (ELSE )>) + (T + )>)>> + +; + + +;> + +; +; +> + +; + )>> + +> + + ) + (>> + ) + ( + ) + ( + ;> + + > + ) + ( + > + + > + + >> + ) + ( + > + + ) + ( + > + ) + ( + > + ) + ( + > + + + + ) + (T + )>) + ( + ) + (T + )>) + ;( + ) + ;(> + ) + (T + )>> + +;> + +;)) + + > + ) + ( + + ; + )>> + +; + +; + + + ) + (T + + )>)>> + + +;"----------------- FURNITURE ---------------------" + +; + +; + > + )>> + +; + +; + ) + ( + )>> + + + + + + ) + ( + ) + ( + )>)>> + + + + + > + ) + ( + > + + + ) + ( + )>> + + + + + +)) + ) + ( + > + ) + ( + ) + ( + > + + ) + ( + )>> + + + +)) + > + + + ) + ( ;"660" + + ) + ( ;"690" + + ) + ( ;"720" + + + + + + )> + + + )> + + > + + )> + > + + >)>> + + ) + ( + ) + (T + " 'treasure"> + > + )> + )> + + + ) + ( + ) + ( + ) + (T + )> + ) + (T ;"not in living room or didn't get dragged there" + + + ) + ( + " of the +ten \"treasures.\"">) + (T + )> + )> + ;"because CLOCKER hasn't done it yet" + + )> + ; ;"debug-if I started it in the middle" + )> ;"set X to a value so it won't be <>" + > + + + +> + +> + +> + +; OAKS OAKS-PSEUDO) + (RUSTLING LEAVES LEAVES-PSEUDO)>)> + +; + )>> + +; + +; + )>> + \ No newline at end of file diff --git a/syntax.zap b/syntax.zap new file mode 100644 index 0000000..ae0b93d --- /dev/null +++ b/syntax.zap @@ -0,0 +1,14 @@ + + + .FUNCT V-FLUSH + EQUAL? PRSO,INTNUM \?CND1 + EQUAL? P-NUMBER,33 \?CND1 + GETB 0,18 + ZERO? STACK /?THN6 + ZERO? P-VMERGE /?CND1 +?THN6: CALL GOTO,P-NMERGE + CALL V-LOOK + RTRUE +?CND1: PRINTR "You can't flush that." + + .ENDI diff --git a/syntax.zil b/syntax.zil new file mode 100644 index 0000000..0ede392 --- /dev/null +++ b/syntax.zil @@ -0,0 +1,877 @@ +"SYNTAX for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; +; +; +; +; +; +; +; +; + +;> + +; + + + + + + + + + + + + + ;"hole burned in dome" + + + > + +; + + + + + + + + + + > + +; + + > + +; CR> + > + +> + +;>) + (T + )>> + +; + +; + > + ) + (T + + + )>> + +; + + 1>> + CR> + > + +;> + + > + +;> + + + + + >>> + + + )> + + > + +;"OLD CLOCK" +; + >> + > + > + + ) + (>> + > + + > + )>)> + >> + > + + )> + + > + +" +" + + + + + +; + + + + + + +; + + + + + + + + + + + + + + + +; +; +; + + + + + + + + + + + + + + + + + +; +; +; + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"was V-THROUGH" + + +; + + + + + + + + + + + + + + +; +; +; + + + + + + + + + + + + + + + + +; + + + +; +; +; + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + +; + + + + + + + + + + + ;"ignite was formerly a synonym for BURN" + + + + + + + + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + + + +; +; + + + + + + +; +; + + + + + + + + + + +; +; + +; +; +; +; + + + + +; +; + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + +; + + + + +; +; + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + +; +; +; +; + + + + + + + + + + + + + + + + + + + +; +; + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + +; ;"SEM?" +; +; + + + + + + + + + + + + + + + + + +; +; + + + + + +; +; + + + + + + +; + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + +; + + + + + +; +; +; + +; +; + +; +; + +; +; + + + + + + + + + diff --git a/verbs.zap b/verbs.zap new file mode 100644 index 0000000..1e0367a --- /dev/null +++ b/verbs.zap @@ -0,0 +1,2790 @@ + + + .FUNCT DESCRIBE-ROOM,VERB-IS-LOOK=0,FIRST-VISIT=0 + ZERO? LIT \?CND1 + EQUAL? HERE,ON-POOL-2 /?CND1 + CALL NOW-BLACK + CRLF + RFALSE +?CND1: FSET? HERE,TOUCHBIT /?CND6 + FSET HERE,TOUCHBIT + SET 'FIRST-VISIT,TRUE-VALUE +?CND6: CALL DPRINT,HERE + LOC PLAYER + FSET? STACK,VEHBIT \?CND9 + PRINTI ", on" + LOC PLAYER + CALL TPRINT,STACK +?CND9: CRLF + ZERO? VERB-IS-LOOK \?THN15 + EQUAL? VERBOSITY,2 /?THN15 + ZERO? FIRST-VISIT /TRUE + EQUAL? VERBOSITY,1 \TRUE +?THN15: GETP HERE,P?ACTION + CALL STACK,M-LOOK + ZERO? STACK \?CND19 + GETP HERE,P?LDESC + PRINT STACK +?CND19: CRLF + RTRUE + + + .FUNCT DESCRIBE-OBJECTS,O,STR,1ST?=1,AV + LOC WINNER >AV + FIRST? HERE >O /?KLU48 +?KLU48: ZERO? O /FALSE +?PRG4: ZERO? O /?REP5 + CALL DESCRIBABLE?,O + ZERO? STACK /?CND6 + FSET? O,TOUCHBIT /?CND6 + GETP O,P?FDESC >STR + ZERO? STR /?CND6 + CRLF + PRINT STR + FSET? O,CONTBIT \?CND13 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND13: CRLF +?CND6: NEXT? O >O /?PRG4 + JUMP ?PRG4 +?REP5: FIRST? HERE >O /?KLU50 +?KLU50: SET '1ST?,TRUE-VALUE +?PRG16: ZERO? O /?REP17 + CALL DESCRIBABLE?,O + ZERO? STACK /?CND18 + GETP O,P?FDESC + ZERO? STACK /?ELS22 + FSET? O,TOUCHBIT \?CND18 +?ELS22: GETP O,P?DESCFCN >STR + ZERO? STR /?ELS28 + CALL STR,M-OBJDESC >STR + ZERO? STR /?ELS28 + FSET? O,CONTBIT \?CND31 + EQUAL? STR,M-FATAL /?CND31 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND31: CRLF + JUMP ?CND18 +?ELS28: GETP O,P?LDESC >STR + ZERO? STR /?CND18 + PRINT STR + FSET? O,CONTBIT \?CND38 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND38: CRLF +?CND18: NEXT? O >O /?PRG16 + JUMP ?PRG16 +?REP17: CALL DESCRIBE-CONTENTS,HERE,FALSE-VALUE,0 + ZERO? AV /FALSE + EQUAL? HERE,AV /FALSE + CALL DESCRIBE-CONTENTS,AV,FALSE-VALUE,0 + RSTACK + + + .FUNCT DESCRIBE-CONTENTS,OBJ,LEVEL=-1,ALL?=D-ALL?,F=0,N,1ST?=1,IT?=0,START?=0,TWO?=0,PARA?=0 + EQUAL? LEVEL,2 \?ELS3 + SET 'LEVEL,TRUE-VALUE + SET 'PARA?,TRUE-VALUE + SET 'START?,TRUE-VALUE + JUMP ?CND1 +?ELS3: BTST ALL?,D-PARA? \?CND1 + SET 'PARA?,TRUE-VALUE +?CND1: FIRST? OBJ >N /?KLU145 +?KLU145: ZERO? START? \?THN11 + IN? OBJ,ROOMS /?THN11 + FSET? OBJ,ACTORBIT /?THN11 + FSET? OBJ,CONTBIT \FALSE + FSET? OBJ,OPENBIT /?THN15 + FSET? OBJ,TRANSBIT \FALSE +?THN15: FSET? OBJ,SEARCHBIT \FALSE + ZERO? N /FALSE +?THN11: +?PRG17: ZERO? N /?THN26 + CALL DESCRIBABLE?,N + ZERO? STACK /?CND19 + BTST ALL?,D-ALL? /?THN26 + CALL SIMPLE-DESC?,N + ZERO? STACK /?CND19 +?THN26: ZERO? F /?CND28 + ZERO? 1ST? /?ELS34 + SET '1ST?,FALSE-VALUE + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?ELS38 + ZERO? START? \?CND32 + ZERO? PARA? \?ELS44 + EQUAL? OBJ,PLAYER /?CND45 + CRLF +?CND45: SET 'PARA?,TRUE-VALUE + JUMP ?CND42 +?ELS44: EQUAL? LEVEL,TRUE-VALUE \?CND42 + PRINTC 32 +?CND42: EQUAL? OBJ,HERE \?ELS52 + PRINT YOU-SEE + JUMP ?CND32 +?ELS52: EQUAL? OBJ,PLAYER \?ELS54 + PRINTI "You have" + JUMP ?CND32 +?ELS54: FSET? OBJ,SURFACEBIT \?ELS56 + PRINTI "Sitting on" + CALL TPRINT,OBJ + PRINTI " is" + JUMP ?CND32 +?ELS56: PRINTI "It looks as if" + CALL TPRINT,OBJ + FSET? OBJ,ACTORBIT \?ELS61 + PRINTI " has" + JUMP ?CND32 +?ELS61: PRINTI " contains" + JUMP ?CND32 +?ELS38: EQUAL? LEVEL,-1 /?CND32 + PRINT LEVEL + JUMP ?CND32 +?ELS34: ZERO? N /?ELS70 + PRINTC 44 + JUMP ?CND32 +?ELS70: PRINTI " and" +?CND32: CALL APRINT,F + FSET? F,WORNBIT \?ELS76 + PRINTI " (being worn)" + JUMP ?CND74 +?ELS76: FSET? F,ONBIT \?CND74 + PRINTI " (providing light)" +?CND74: ZERO? IT? \?ELS84 + ZERO? TWO? \?ELS84 + SET 'IT?,F + JUMP ?CND28 +?ELS84: SET 'TWO?,TRUE-VALUE + SET 'IT?,FALSE-VALUE +?CND28: SET 'F,N +?CND19: ZERO? N /?CND89 + NEXT? N >N /?CND89 +?CND89: ZERO? F \?PRG17 + ZERO? N \?PRG17 + ZERO? IT? /?CND98 + ZERO? TWO? \?CND98 + CALL THIS-IS-IT,IT? +?CND98: ZERO? 1ST? /?CND103 + ZERO? START? /?CND103 + PRINTI " nothing" + RFALSE +?CND103: ZERO? 1ST? \?REP18 + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?REP18 + EQUAL? OBJ,HERE \?CND113 + PRINTI " here" +?CND113: PRINTC 46 +?REP18: FIRST? OBJ >F /?KLU147 +?KLU147: +?PRG116: ZERO? F /?REP117 + FSET? F,CONTBIT \?CND118 + CALL DESCRIBABLE?,F,TRUE-VALUE + ZERO? STACK /?CND118 + BTST ALL?,D-ALL? /?THN125 + CALL SIMPLE-DESC?,F + ZERO? STACK /?CND118 +?THN125: ZERO? PARA? /?ELS134 + PUSH 3 + JUMP ?CND130 +?ELS134: PUSH D-ALL? +?CND130: CALL DESCRIBE-CONTENTS,F,TRUE-VALUE,STACK + ZERO? STACK /?CND118 + SET '1ST?,FALSE-VALUE + SET 'PARA?,TRUE-VALUE +?CND118: NEXT? F >F /?PRG116 + JUMP ?PRG116 +?REP117: ZERO? 1ST? \?CND138 + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND138 + LOC WINNER + EQUAL? OBJ,HERE,STACK \?CND138 + CRLF +?CND138: ZERO? 1ST? \FALSE + RTRUE + + + .FUNCT DESCRIBABLE?,OBJ,CONT?=0 + FSET? OBJ,INVISIBLE /FALSE + EQUAL? OBJ,WINNER /FALSE + LOC WINNER + EQUAL? OBJ,STACK \?ELS9 + LOC WINNER + EQUAL? HERE,STACK \FALSE +?ELS9: ZERO? CONT? \TRUE + FSET? OBJ,NDESCBIT \TRUE + RFALSE + + + .FUNCT SIMPLE-DESC?,OBJ,STR + GETP OBJ,P?FDESC + ZERO? STACK /?ELS5 + FSET? OBJ,TOUCHBIT \FALSE +?ELS5: GETP OBJ,P?DESCFCN >STR + ZERO? STR /?ELS9 + CALL STR,M-OBJDESC? + ZERO? STACK \FALSE +?ELS9: GETP OBJ,P?LDESC + ZERO? STACK /TRUE + RFALSE + + + .FUNCT DESCRIBE-NOTHING + CALL DESCRIBE-CONTENTS,PRSO,2 + ZERO? STACK /FALSE + IN? PLAYER,PRSO /TRUE + CRLF + RTRUE + + + .FUNCT V-ALARM + EQUAL? PRSO,ME,ROOMS \?ELS3 + PRINTI "But you're " + JUMP ?CND1 +?ELS3: FSET? PRSO,ACTORBIT \?ELS5 + CALL BUT-THE,PRSO + PRINTI "is " + JUMP ?CND1 +?ELS5: CALL WHAT-A-CONCEPT + RTRUE +?CND1: PRINTR "already wide awake!" + + + .FUNCT ALREADY-OPEN + CALL ITS-ALREADY,STR?23 + RSTACK + + + .FUNCT ALREADY-CLOSED + CALL ITS-ALREADY,STR?24 + RSTACK + + + .FUNCT V-ASK-ABOUT + FSET? PRSO,ACTORBIT \?ELS5 + SET 'WINNER,PRSO + CALL PERFORM,V?TELL,PRSO + SET 'WINNER,PLAYER + RTRUE +?ELS5: CALL V-ASK-FOR + RSTACK + + + .FUNCT V-ASK-FOR + EQUAL? PRSO,ME,ROOMS \?ELS3 + CALL PERFORM,V?TELL,ME + JUMP ?CND1 +?ELS3: CALL NOT-LIKELY,PRSO,STR?25 +?CND1: CALL PCLEAR + RETURN 2 + + + .FUNCT V-BITE + CALL HACK-HACK,STR?26 + RSTACK + + + .FUNCT V-BLOW-INTO + FSET? PRSO,ACTORBIT \?ELS5 + CALL PERFORM,V?USE,PRSO + RTRUE +?ELS5: CALL HACK-HACK,STR?27 + RSTACK + + + .FUNCT PRE-BOARD + LOC PLAYER + EQUAL? PRSO,STACK \?ELS5 + PRINTR "Look around you." +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /FALSE + PRINTR "You're holding it!" + + + .FUNCT V-BOARD + FSET? PRSO,VEHBIT \?ELS5 + MOVE PLAYER,PRSO + PRINTI "You are now on" + CALL TPRINT,PRSO + PRINTR "." +?ELS5: PRINTI "You can't get into" + CALL TPRINT,PRSO + PRINTR "!" + + + .FUNCT V-BURN + FSET? PRSI,FLAMEBIT \?ELS5 + FSET? PRSO,BURNBIT \?ELS10 + REMOVE PRSO + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " catches fire and is reduced to ashes." +?ELS10: PRINT PYRO + RTRUE +?ELS5: PRINTI "With" + CALL APRINT,PRSI + PRINTI "? " + CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-BUY + CALL VISIBLE?,PRSO + ZERO? STACK \?ELS5 + CALL CANT-SEE-ANY,PRSO + RTRUE +?ELS5: FSET? PRSO,TAKEBIT /?ELS7 + FSET? PRSO,TRYTAKEBIT /?ELS7 + PRINT YOU-CANT + PRINTR "buy that!" +?ELS7: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS11 + PRINTR "You already have one." +?ELS11: ZERO? PRSI /?ELS13 + CALL NOT-LIKELY,PRSI,STR?31 + RSTACK +?ELS13: PRINTR "You don't have any money." + + + .FUNCT CANT-CLOSE-THAT + PRINT YOU-CANT + PRINTR "close that!" + + + .FUNCT CANT-GO + PRINT YOU-CANT + PRINTR "go that way." + + + .FUNCT CANT-LOCK,UN?=0 + PRINT YOU-CANT + ZERO? UN? /?CND1 + PRINTI "un" +?CND1: PRINTI "lock" + CALL TPRINT,PRSO + PRINTR "!" + + + .FUNCT V-CHASTISE + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: EQUAL? PRSO,INTDIR \?ELS7 + PRINTR "You'll have to go in that direction to see what's there." +?ELS7: PRINTR "Use prepositions to indicate precisely what you want to do. For example, LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc." + + + .FUNCT V-CLEAN + CALL NOT-A,STR?32 + RSTACK + + + .FUNCT V-CLIMB + CALL PERFORM,V?CLIMB-UP,PRSO + RTRUE + + + .FUNCT V-CLIMB-DOWN + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?DOWN + RSTACK +?ELS5: CALL WHAT-A-CONCEPT + RSTACK + + + .FUNCT V-CLIMB-ON + EQUAL? P-PRSA-WORD,W?HOLD \?ELS5 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS5: PRINT YOU-CANT + PRINTR "climb onto that." + + + .FUNCT V-CLIMB-OVER + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-WALK-AROUND + RSTACK +?ELS5: PRINT YOU-CANT + PRINTR "climb over that." + + + .FUNCT V-CLIMB-UP + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?UP + RSTACK +?ELS5: CALL WHAT-A-CONCEPT + RSTACK + + + .FUNCT V-CLOSE + FSET? PRSO,ACTORBIT \?ELS5 + CALL NOT-A,STR?33 + RSTACK +?ELS5: FSET? PRSO,SURFACEBIT \?ELS7 + CALL CANT-CLOSE-THAT + RSTACK +?ELS7: FSET? PRSO,CONTBIT /?ELS9 + FSET? PRSO,DOORBIT /?ELS9 + CALL PERFORM,V?OPEN,PRSO + RTRUE +?ELS9: FSET? PRSO,SURFACEBIT /?ELS13 + GETP PRSO,P?CAPACITY + ZERO? STACK /?ELS13 + FSET? PRSO,OPENBIT \?ELS20 + CALL NOW-CLOSED-OR-OPEN,PRSO + CALL SAY-IF-NOT-LIT + RSTACK +?ELS20: CALL ALREADY-CLOSED + RSTACK +?ELS13: FSET? PRSO,DOORBIT \?ELS24 + FSET? PRSO,OPENBIT \?ELS29 + FCLEAR PRSO,OPENBIT + CALL SAY-THE,PRSO + PRINTC 32 + CALL PICK-ONE,DOOR-NOISES + PRINT STACK + PRINTR " as it closes." +?ELS29: CALL ALREADY-CLOSED + RSTACK +?ELS24: CALL CANT-CLOSE-THAT + RSTACK + + + .FUNCT V-COMPARE + PRINTR "You compare the two items and find nothing interesting." + + + .FUNCT V-COUNT + CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-COVER + CALL PERFORM,V?PUT-ON,PRSI,PRSO + RTRUE + + + .FUNCT V-CROSS + PRINT YOU-CANT + PRINTR "cross that!" + + + .FUNCT V-CUT + CALL NOT-LIKELY,PRSI,STR?34 + RSTACK + + + .FUNCT V-$DEBUG + ZERO? DEBUG /?ELS5 + SET 'DEBUG,FALSE-VALUE + PRINTR "Debug off." +?ELS5: SET 'DEBUG,TRUE-VALUE + PRINTR "Debug on." + + + .FUNCT V-DIAGNOSE + PRINTI "You're in good health" + RANDOM 100 + LESS? 50,STACK /?CND1 + PRINTI "... at the moment" +?CND1: PRINTR "." + + + .FUNCT V-DIG-WITH + CALL PERFORM,V?DIG,GROUND,PRSO + RTRUE + + + .FUNCT V-DIG + ZERO? PRSI \?CND1 + IN? SHOVEL,PLAYER \?ELS6 + SET 'PRSI,SHOVEL + PRINTI "[with the shovel]" + CRLF + JUMP ?CND1 +?ELS6: SET 'PRSI,HANDS + PRINTI "[with your hands]" + CRLF +?CND1: EQUAL? PRSO,SAND,GROUND \?ELS13 + EQUAL? PRSI,SHOVEL /?ELS18 + PRINTR "I suppose you also excavate tunnels with a teaspoon." +?ELS18: EQUAL? PRSO,SAND /?THN21 + EQUAL? HERE,BEACH \?ELS20 +?THN21: PRINTR "You find nothing, so you fill in the hole." +?ELS20: GETP HERE,P?CAPACITY + EQUAL? STACK,2 \?ELS24 + PRINTR "You attempt to dig in the stone path, but it proves too tough for your efforts." +?ELS24: GETP HERE,P?CAPACITY + ZERO? STACK \?ELS26 + PRINTR "The ground is too hard here." +?ELS26: GETP HERE,P?CAPACITY + EQUAL? STACK,10 /?THN29 + GETP HERE,P?CAPACITY + EQUAL? STACK,20 \?ELS28 +?THN29: PRINTR "You can't dig a hole here!" +?ELS28: EQUAL? HERE,HEART-OF-MAZE \?ELS37 + IN? HEART-OF-MAZE-HOLE,HEART-OF-MAZE \?ELS42 + PRINTR "You already dug a hole here." +?ELS42: PRINTI "You dig a hole and uncover" + CALL ARPRINT,RUBBER-STAMP + MOVE HEART-OF-MAZE-HOLE,HEART-OF-MAZE + RTRUE +?ELS37: GETP HERE,P?CAPACITY + EQUAL? STACK,1 \?ELS51 + GETB HM-TABLE,HM-ROOM + GRTR? STACK,15 \?ELS51 + PRINTR "You've already dug a hole here." +?ELS51: GETP HERE,P?CAPACITY + EQUAL? STACK,1 \FALSE + MOVE MAZE-HOLE,HERE + GETB HM-TABLE,HM-ROOM + BOR STACK,X-H + PUTB HM-TABLE,HM-ROOM,STACK + GETB HM-TABLE,HM-ROOM >HM-BITS + PRINTR "You dig a good sized hole, but find nothing." +?ELS13: CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-DISEMBARK + LOC PLAYER + EQUAL? STACK,PRSO /?ELS5 + PRINTI "Look around you." + CRLF + RETURN 2 +?ELS5: MOVE WINNER,HERE + PRINTI "You are no longer on" + CALL TPRINT,PRSO + PRINTR "." + + + .FUNCT V-DRINK + PRINT YOU-CANT + PRINTR "drink that!" + + + .FUNCT V-DRINK-FROM + CALL WHAT-A-CONCEPT + RSTACK + + + .FUNCT SPECIAL-DROP + EQUAL? HERE,ROOF-1,ROOF-2 \?ELS5 + EQUAL? PRSO,FINCH \?ELS12 + FSET? FINCH,BROKEN-BIT \?THN9 +?ELS12: CALL ULTIMATELY-IN?,FINCH,PRSO + ZERO? STACK /?CND6 + FSET? FINCH,BROKEN-BIT /?CND6 +?THN9: CALL BREAK-FINCH,TRUE-VALUE +?CND6: EQUAL? PRSO,BLUE-CANDLE,WHITE-CANDLE,RED-CANDLE \?CND15 + FSET? PRSO,FLAMEBIT \?CND15 + CALL BLOW-OUT-CANDLE,PRSO,TRUE-VALUE +?CND15: MOVE PRSO,PATIO + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " slides off the roof." +?ELS5: EQUAL? HERE,ON-POOL-1,ON-POOL-2,INLET /?THN22 + EQUAL? HERE,IN-POOL-1,IN-POOL-2 \?ELS21 +?THN22: CALL PERFORM,V?PUT,PRSO,WATER + RTRUE +?ELS21: EQUAL? HERE,CHIMNEY-2 /?THN26 + EQUAL? HERE,CHIMNEY-1 \FALSE +?THN26: CALL PERFORM,V?PUT,PRSO,CHIMNEY + RTRUE + + + .FUNCT V-DROP + CALL SPECIAL-DROP + ZERO? STACK \TRUE + CALL IDROP + ZERO? STACK /FALSE + PRINTR "Dropped." + + + .FUNCT IDROP + CALL DONT-HAVE?,PRSO + ZERO? STACK \FALSE + IN? PRSO,WINNER /?ELS5 + LOC PRSO + FSET? STACK,OPENBIT /?ELS5 + PRINT YOU-CANT + PRINTI "do that while" + CALL TPRINT,PRSO + CALL IS-CLOSED + CRLF + RFALSE +?ELS5: FSET? PRSO,WORNBIT \?ELS9 + PRINTI "You'll have to take off" + CALL TPRINT,PRSO + PRINTI " first." + CRLF + RFALSE +?ELS9: MOVE PRSO,HERE + RTRUE + + + .FUNCT V-EAT + CALL NOT-LIKELY,PRSO,STR?35 + RSTACK + + + .FUNCT V-EMPTY,OBJ,NXT + FSET? PRSO,CONTBIT \?ELS3 + FSET? PRSO,OPENBIT \?ELS6 + FIRST? PRSO >OBJ /?KLU28 +?KLU28: ZERO? OBJ /?ELS9 +?PRG11: ZERO? OBJ /TRUE + NEXT? OBJ >NXT /?KLU29 +?KLU29: FSET? OBJ,NARTICLEBIT /?CND17 + PRINTI "The " +?CND17: CALL DPRINT,OBJ + PRINTI ": " + CALL PERFORM,V?TAKE,OBJ,PRSO + SET 'OBJ,NXT + JUMP ?PRG11 +?ELS9: CALL BUT-THE,PRSO + PRINTR "is already empty!" +?ELS6: CALL ITS-CLOSED,PRSO + RTRUE +?ELS3: PRINT YOU-CANT + PRINTR "empty that!" + + + .FUNCT V-ENTER + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?IN + RSTACK +?ELS5: FSET? PRSO,DOORBIT \?ELS7 + CALL OTHER-SIDE,PRSO + CALL DO-WALK,STACK + RSTACK +?ELS7: IN? PRSO,WINNER \?ELS9 + PRINTR "That would involve quite a contortion!" +?ELS9: FSET? PRSO,WEARBIT \?ELS11 + CALL PRESUMABLY-YOU-WANT-TO,STR?36,PRSO + CALL PERFORM,V?WEAR,PRSO + RTRUE +?ELS11: FSET? PRSO,VEHBIT \?ELS13 + CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS13: PRINTI "You hit your head against" + CALL TPRINT,PRSO + PRINTR " as you attempt this feat." + + + .FUNCT PRE-EXAMINE + ZERO? LIT \FALSE + CALL TOO-DARK + RTRUE + + + .FUNCT V-EXAMINE + FSET? PRSO,DOORBIT \?ELS5 + PRINTI "It looks as if" + CALL TPRINT,PRSO + PRINTI " is " + FSET? PRSO,OPENBIT \?ELS8 + PRINTI "open" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTR "." +?ELS5: FSET? PRSO,SURFACEBIT \?ELS12 + CALL V-LOOK-ON + RSTACK +?ELS12: FSET? PRSO,CONTBIT \?ELS14 + FSET? PRSO,OPENBIT /?THN20 + FSET? PRSO,TRANSBIT \?ELS19 +?THN20: CALL V-LOOK-INSIDE + RSTACK +?ELS19: CALL ITS-CLOSED,PRSO + RSTACK +?ELS14: FSET? PRSO,READBIT \?ELS25 + CALL PERFORM,V?READ,PRSO + RSTACK +?ELS25: PRINTI "You see nothing " + CALL PICK-ONE,YAWNS + PRINT STACK + PRINTI " about" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-EXIT + CALL DO-WALK,P?OUT + RSTACK + + + .FUNCT FAILED + PRINTR "Failed." + + + .FUNCT V-FILL + ZERO? PRSI \?ELS5 + CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS10 + CALL PERFORM,V?FILL,PRSO,WATER + RTRUE +?ELS10: FSET? PRSO,CONTBIT \?ELS12 + PRINTR "There's nothing to fill it with." +?ELS12: CALL V-STAND-UNDER + RSTACK +?ELS5: EQUAL? PRSI,PORTABLE-WATER,WATER \?ELS16 + CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK \?ELS21 + CALL CANT-SEE-ANY,WATER + RSTACK +?ELS21: EQUAL? PRSO,BUCKET /?ELS23 + CALL V-STAND-UNDER + RSTACK +?ELS23: FIRST? BUCKET \?ELS25 + FIRST? BUCKET /?KLU34 +?KLU34: EQUAL? STACK,PORTABLE-WATER /?ELS25 + PRINTR "That would get the stuff in the bucket all wet." +?ELS25: MOVE PORTABLE-WATER,BUCKET + CALL QUEUE,I-DRIP,2 + SET 'AMOUNT-OF-WATER,26 + PRINTI "You fill" + CALL TPRINT,BUCKET + PRINTR ", which naturally leaks slowly." +?ELS16: EQUAL? PRSI,PORTABLE-WATER \?ELS31 + CALL PERFORM,V?POUR,PORTABLE-WATER,PRSO + CALL THIS-IS-IT,PRSO + RTRUE +?ELS31: CALL V-STAND-UNDER + RSTACK + + + .FUNCT V-FIND,L + LOC PRSO >L + EQUAL? PRSO,ME,HANDS \?ELS3 + PRINTI "You're right here" + JUMP ?CND1 +?ELS3: IN? PRSO,PLAYER \?ELS5 + PRINTI "You're holding it" + JUMP ?CND1 +?ELS5: IN? PRSO,HERE /?THN8 + EQUAL? PRSO,PSEUDO-OBJECT \?ELS7 +?THN8: CALL BUT-THE,PRSO + PRINTI "is right in front of you" + JUMP ?CND1 +?ELS7: IN? PRSO,LOCAL-GLOBALS \?ELS11 + CALL HOW? + RTRUE +?ELS11: FSET? L,ACTORBIT \?ELS13 + CALL VISIBLE?,L + ZERO? STACK /?ELS13 + PRINTI "It looks as if" + CALL TPRINT,L + PRINTI " has it" + JUMP ?CND1 +?ELS13: CALL SEE-INSIDE?,L + ZERO? STACK /?ELS17 + CALL VISIBLE?,L + ZERO? STACK /?ELS17 + PRINTI "It's " + FSET? L,SURFACEBIT \?ELS22 + PRINTI "on" + JUMP ?CND20 +?ELS22: PRINTI "in" +?CND20: CALL TPRINT,L + JUMP ?CND1 +?ELS17: PRINTI "You'll have to do that yourself" +?CND1: PRINTR "." + + + .FUNCT FIND-IN,WHERE,WHAT,W + FIRST? WHERE >W /?KLU11 +?KLU11: ZERO? W /FALSE +?PRG4: FSET? W,WHAT \?ELS8 + RETURN W +?ELS8: NEXT? W >W /?PRG4 + RFALSE + + + .FUNCT FINISH,REPEATING=0,WORD + CRLF + ZERO? REPEATING \?CND1 + CALL V-SCORE + CRLF +?CND1: PRINTI "Do you want to restart the story, restore a saved position, or quit? + +(Please type RESTART, RESTORE or QUIT.) >" + READ P-INBUF,P-LEXV + GET P-LEXV,1 >WORD + EQUAL? WORD,W?RESTAR \?ELS8 + RESTART + CALL FAILED + CALL FINISH,TRUE-VALUE + RSTACK +?ELS8: EQUAL? WORD,W?RESTOR \?ELS10 + RESTORE \?ELS15 + CALL SAY-OKAY + RSTACK +?ELS15: CALL FAILED + CALL FINISH,TRUE-VALUE + RSTACK +?ELS10: EQUAL? WORD,W?QUIT,W?Q \?ELS19 + QUIT + RTRUE +?ELS19: CALL FINISH,TRUE-VALUE + RSTACK + + + .FUNCT V-FLY + PRINTR "That's not in the script!" + + + .FUNCT V-FOCUS + PRINTR "It's your thinking that's out of focus." + + + .FUNCT V-FOLLOW,WHERE + LOC PRSO >WHERE + CALL BUT-THE,PRSO + PRINTI "is " + EQUAL? WHERE,HERE /?THN4 + CALL GLOBAL-IN?,PRSO,HERE + ZERO? STACK /?ELS3 +?THN4: PRINTI "right here in front of you" + JUMP ?CND1 +?ELS3: EQUAL? WHERE,PLAYER \?ELS7 + PRINTI "in" + CALL DPRINT,HANDS + PRINTC 115 + JUMP ?CND1 +?ELS7: IN? WHERE,PLAYER \?ELS9 + PRINTI "in" + CALL TPRINT,WHERE + JUMP ?CND1 +?ELS9: PRINTI "nowhere to be seen" +?CND1: PRINTR "!" + + + .FUNCT PRE-GIVE + ZERO? PRSO /?THN6 + ZERO? PRSI \?ELS5 +?THN6: CALL REFERRING + RTRUE +?ELS5: IN? PRSO,LOCAL-GLOBALS /?THN10 + IN? PRSO,PSEUDO-OBJECT \?ELS9 +?THN10: CALL NOT-HOLDING + RTRUE +?ELS9: CALL DONT-HAVE?,PRSO + ZERO? STACK \TRUE + FSET? PRSI,ACTORBIT /?ELS15 + PRINT YOU-CANT + PRINTR "give anything to that!" +?ELS15: FSET? PRSO,WORNBIT \FALSE + CALL TAKE-OFF-PRSO-FIRST + RSTACK + + + .FUNCT V-GIVE + FSET? PRSI,ACTORBIT \FALSE + PRINTI "Politely," + CALL TPRINT,PRSI + PRINTR " refuses your offer." + + + .FUNCT V-SGIVE + CALL PERFORM,V?GIVE,PRSI,PRSO + RTRUE + + + .FUNCT GOTO,RM,V?=1,OLIT,OHERE,X + GETP HERE,P?ACTION + CALL STACK,M-EXIT >X + SET 'OHERE,HERE + SET 'OLIT,LIT + MOVE WINNER,RM + SET 'HERE,RM + CALL LIT?,HERE >LIT + GETP HERE,P?ACTION + CALL STACK,M-ENTER + CALL DESCRIBE-ROOM + ZERO? STACK /TRUE + ZERO? VERBOSITY /TRUE + CALL DESCRIBE-OBJECTS + RTRUE + + + .FUNCT HACK-HACK,STR + PRINT STR + CALL TPRINT,PRSO + PRINTC 32 + CALL PICK-ONE,HO-HUM + PRINT STACK + PRINTR "." + + + .FUNCT PRE-HANG-UP + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK \FALSE + EQUAL? PRSO,PHONE /FALSE + CALL NOT-HOLDING,PRSO + RSTACK + + + .FUNCT V-HANG-UP + ZERO? PRSI \?ELS5 + EQUAL? HERE,CLOSET \?ELS10 + PRINTR "Next time, say which peg to hang it on." +?ELS10: PRINTR "There's no place to hang it up." +?ELS5: PRINTI "You can't hang something on" + CALL ARPRINT,PRSI + RSTACK + + + .FUNCT V-HELLO,WHO + ZERO? PRSO /?ELS3 + SET 'WHO,PRSO + JUMP ?CND1 +?ELS3: CALL ANYONE-HERE? >WHO + ZERO? WHO /?CND1 + CALL SPOKEN-TO,WHO + CALL PERFORM,V?HELLO,WHO + RTRUE +?CND1: ZERO? WHO /?ELS15 + FSET? WHO,ACTORBIT \?ELS21 + PRINTI "It's apparent that" + CALL TPRINT,WHO + PRINTR " didn't expect you to say that." +?ELS21: CALL NOT-LIKELY,WHO,STR?25 + RSTACK +?ELS15: CALL TALK-TO-SELF + RSTACK + + + .FUNCT V-HELP + PRINTR "[If you're really stuck, maps and InvisiClues (TM) hint booklets are available using the order form that came in your HOLLYWOOD HIJINX package.]" + + + .FUNCT V-HIDE + PRINTR "There aren't any good hiding places here." + + + .FUNCT V-INVENTORY + CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE + ZERO? STACK \?CND1 + PRINTI "You are empty-handed." +?CND1: CRLF + RTRUE + + + .FUNCT ITS-ALREADY,STR + PRINTI "It's already " + PRINT STR + PRINTR "." + + + .FUNCT JIGS-UP,REASON=0 + ZERO? REASON /?CND1 + PRINT REASON + CRLF +?CND1: CALL KILL-INTERRUPTS + CRLF + PRINTI "Fade to black: + + **** You have died ****" + CRLF + CALL FINISH + RSTACK + + + .FUNCT V-KICK + CALL HACK-HACK,STR?44 + RSTACK + + + .FUNCT V-KILL + FSET? PRSO,ACTORBIT /?ELS3 + PRINT YOU-CANT + PRINTI "attack" + CALL TPRINT,PRSO + PRINTC 33 + JUMP ?CND1 +?ELS3: PRINTI "Attacking" + CALL TPRINT,PRSO + ZERO? PRSI /?CND6 + PRINTI " with" + CALL TPRINT,PRSI +?CND6: PRINTI " isn't likely to help matters." +?CND1: CRLF + RTRUE + + + .FUNCT KILL-INTERRUPTS + RTRUE + + + .FUNCT V-KISS + PRINTR "Smack!" + + + .FUNCT V-KNOCK + FSET? PRSO,DOORBIT \?ELS5 + CALL NO-ANSWER + RSTACK +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + CALL PERFORM,V?USE,PRSO + RTRUE +?ELS7: CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-LAMP-OFF + EQUAL? P-PRSA-WORD,W?BLOW \?ELS5 + EQUAL? PRSO,FLASHLIGHT,COMPUTER,FILM-PROJECTOR /?THN8 + EQUAL? PRSO,SLIDE-PROJECTOR \?ELS5 +?THN8: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS5: FSET? PRSO,LIGHTBIT /?THN12 + FSET? PRSO,BURNBIT \?ELS11 +?THN12: FSET? PRSO,ONBIT \?ELS18 + FCLEAR PRSO,ONBIT + PRINTI "Okay," + CALL TPRINT,PRSO + PRINTI " is now off." + CRLF + CALL SAY-IF-NOT-LIT + RTRUE +?ELS18: PRINTR "It isn't on!" +?ELS11: CALL CANT-TURN,STR?46 + RSTACK + + + .FUNCT V-LAMP-ON + FSET? PRSO,LIGHTBIT \?ELS5 + FSET? PRSO,ONBIT \?ELS10 + CALL ITS-ALREADY,STR?47 + RSTACK +?ELS10: FSET PRSO,ONBIT + PRINTI "Okay," + CALL TPRINT,PRSO + PRINTI " is now on." + CRLF + CALL NOW-LIT? + RSTACK +?ELS5: FSET? PRSO,BURNBIT \?ELS14 + CALL SET-FLAME-SOURCE + ZERO? STACK \TRUE + CALL PERFORM,V?BURN,PRSO,PRSI + RTRUE +?ELS14: CALL CANT-TURN,STR?48 + RSTACK + + + .FUNCT CANT-TURN,STRING + PRINT YOU-CANT + PRINTI "turn that o" + PRINT STRING + PRINTR "." + + + .FUNCT V-LEAP + EQUAL? PRSO,ROOMS /?ELS5 + PRINTR "That'd be a cute trick." +?ELS5: EQUAL? HERE,IN-POOL-1,IN-POOL-2,ON-POOL-1 /?THN8 + EQUAL? HERE,ON-POOL-2,INLET,UNDERPASS-1 /?THN8 + EQUAL? HERE,UNDERPASS-2 \?ELS7 +?THN8: CALL DO-WALK,P?DOWN + RSTACK +?ELS7: CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS11 + CALL PERFORM,V?SWIM,WATER + RTRUE +?ELS11: CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-LEAVE + EQUAL? PRSO,ROOMS /?THN4 + FSET? PRSO,TAKEBIT /?ELS3 +?THN4: CALL DO-WALK,P?OUT + RTRUE +?ELS3: CALL DONT-HAVE?,PRSO + ZERO? STACK \TRUE + CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT V-LET-GO + CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT V-LIE-DOWN + PRINTR "This is no time for resting." + + + .FUNCT V-LISTEN + EQUAL? PRSO,ROOMS \?ELS5 + EQUAL? HERE,CLOSET \?ELS10 + ZERO? BUCKET-PEG /?ELS10 + PRINTR """Hummm.""" +?ELS10: PRINTR "You hear nothing special." +?ELS5: PRINTI "At the moment," + CALL TPRINT,PRSO + PRINTR " makes no sound." + + + .FUNCT V-LOCK + FSET? PRSO,DOORBIT /?THN6 + FSET? PRSO,CONTBIT \?ELS5 +?THN6: FSET? HERE,LOCKEDBIT /?ELS12 + PRINT YOU-CANT + PRINTR "lock it from here." +?ELS12: FSET? PRSO,OPENBIT \?ELS14 + PRINTI "You can't lock" + CALL TPRINT,PRSO + PRINTR " when it's open. You should have eaten more fish (brain food) as Aunt Hildegarde told you to." +?ELS14: FSET? PRSO,LOCKEDBIT \?ELS16 + PRINTI "You attempt to lock" + CALL TPRINT,PRSO + PRINTR " and find it's already locked." +?ELS16: ZERO? PRSI /?ELS18 + PRINTI "When was the last time you locked something with" + CALL ARPRINT,PRSI + RSTACK +?ELS18: FSET? HERE,LOCKEDBIT \?ELS21 + FSET PRSO,LOCKEDBIT + PRINTI "You lock" + CALL TRPRINT,PRSO + RSTACK +?ELS21: CALL THING-WONT-LOCK,PRSI,PRSO + RSTACK +?ELS5: CALL CANT-LOCK + RSTACK + + + .FUNCT THING-WONT-LOCK,THING,CLOSED-THING,UN?=0 + PRINTI "A quick test shows that" + CALL TPRINT,THING + PRINTI " won't " + ZERO? UN? /?CND1 + PRINTI "un" +?CND1: PRINTI "lock" + CALL TRPRINT,CLOSED-THING + RSTACK + + + .FUNCT V-LOOK + CALL DESCRIBE-ROOM,TRUE-VALUE + ZERO? STACK /TRUE + CALL DESCRIBE-OBJECTS + RTRUE + + + .FUNCT V-LOOK-BEHIND + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: PRINTI "There's nothing behind" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-DOWN + ZERO? LIT \?ELS3 + CALL TOO-DARK + RTRUE +?ELS3: EQUAL? HERE,UPPER-BEACH-STAIRS,LOWER-BEACH-STAIRS \?ELS5 + CALL PERFORM,V?LOOK-INSIDE,GAP + RTRUE +?ELS5: EQUAL? PRSO,ROOMS \?ELS7 + CALL PERFORM,V?EXAMINE,GROUND + RTRUE +?ELS7: CALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE + + + .FUNCT V-LOOK-INSIDE + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + CALL NOT-A,STR?33 + RSTACK +?ELS7: FSET? PRSO,DOORBIT \?ELS9 + EQUAL? PRSO,UPSTAIRS-CD,FOYER-CD,CELLAR-CD /?THN17 + EQUAL? PRSO,ATTIC-CD \?ELS14 +?THN17: EQUAL? HERE,CLOSET /?ELS14 + FSET? PRSO,OPENBIT \?ELS14 + CALL PERFORM,V?LOOK-INSIDE,CLOSET-REF + RTRUE +?ELS14: CALL PERFORM,V?EXAMINE,PRSO + RTRUE +?ELS9: FSET? PRSO,CONTBIT \?ELS22 + LOC WINNER + EQUAL? PRSO,STACK \?ELS27 + CALL V-LOOK + RSTACK +?ELS27: FSET? PRSO,OPENBIT /?ELS29 + FSET? PRSO,TRANSBIT /?ELS29 + CALL ITS-CLOSED,PRSO + RSTACK +?ELS29: PRINT YOU-SEE + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTI " in" + CALL TRPRINT,PRSO + RTRUE +?ELS22: PRINT YOU-CANT + PRINTI "look inside" + CALL ARPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-ON + ZERO? LIT \?CND1 + CALL TOO-DARK + RTRUE +?CND1: PRINT YOU-SEE + FSET? PRSO,SURFACEBIT \?ELS8 + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTI " on" + CALL TRPRINT,PRSO + RTRUE +?ELS8: PRINTI " nothing " + CALL PICK-ONE,YAWNS + PRINT STACK + PRINTI " on" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-THRU + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: ZERO? PRSI /?ELS7 + FSET? PRSI,TRANSBIT /?ELS7 + PRINT YOU-CANT + PRINTR "look through that!" +?ELS7: CALL NOTHING-INTERESTING,TRUE-VALUE + RSTACK + + + .FUNCT V-LOOK-UNDER + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: IN? PRSO,PLAYER \?ELS7 + PRINTI "You're already " + FSET? PRSO,WORNBIT \?ELS10 + PRINTI "wear" + JUMP ?CND8 +?ELS10: PRINTI "hold" +?CND8: PRINTR "ing that!" +?ELS7: CALL NOTHING-INTERESTING,TRUE-VALUE + RSTACK + + + .FUNCT V-LOOK-UP + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS7 + FSET? ATTIC-DOOR,OPENBIT \?ELS12 + PRINTR "You see an opening in the ceiling previously covered by the small panel. A ladder attached to the small door hangs down from the opening." +?ELS12: PRINTR "You see the outline of a small panel in the ceiling." +?ELS7: EQUAL? HERE,CLOSET-TOP \?ELS16 + PRINTR "The shaft continues upward." +?ELS16: EQUAL? HERE,SHAFT-BOTTOM \?ELS18 + PRINTI "You see the bottom of the closet " + EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE,ATTIC \?CND19 + PRINTI "far " +?CND19: PRINTR "above you." +?ELS18: EQUAL? HERE,FIREPLACE,CHIMNEY-1,CHIMNEY-2 /?THN24 + EQUAL? HERE,CHIMNEY-3 /?THN24 + FSET? HERE,OUTDOORSBIT \?ELS23 +?THN24: GRTR? MOVES,556 \?ELS30 + PRINTR "You see the blue sky of a new day." +?ELS30: PRINTR "You see the night's sky." +?ELS23: PRINTR "You begin to get a stiff neck." + + + .FUNCT V-LOWER + CALL V-RAISE + RSTACK + + + .FUNCT V-MOVE + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-WALK-AROUND + RSTACK +?ELS5: FSET? PRSO,TAKEBIT \?ELS7 + PRINTI "Moving" + CALL TPRINT,PRSO + PRINTI " reveals nothing " + CALL PICK-ONE,YAWNS + PRINT STACK + PRINTR "." +?ELS7: PRINT YOU-CANT + PRINTI "move" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-MUNG + PRINTR "Let's leave the violence to the movies." + + + .FUNCT NO-ANSWER + PRINTR "There's no answer." + + + .FUNCT NOT-A,STR + PRINTI "You're not a " + PRINT STR + PRINTR "!" + + + .FUNCT NOTHING-INTERESTING,SEE?=0 + PRINTI "You " + ZERO? SEE? /?ELS3 + PRINTI "see" + JUMP ?CND1 +?ELS3: PRINTI "find" +?CND1: PRINTI " nothing " + CALL PICK-ONE,YAWNS + PRINT STACK + PRINTR "." + + + .FUNCT NOW-BLACK + PRINTI "It is pitch black." + RTRUE + + + .FUNCT NOW-CLOSED-OR-OPEN,THING,OPEN?=0 + CALL THIS-IS-IT,THING + PRINT OKAY + PRINTI "the " + CALL DPRINT,PRSO + PRINTI " is now " + ZERO? OPEN? /?ELS3 + FSET THING,OPENBIT + PRINTI "open" + JUMP ?CND1 +?ELS3: FCLEAR THING,OPENBIT + PRINTI "closed" +?CND1: PRINTR "." + + + .FUNCT V-OPEN,F,STR + FSET? PRSO,ACTORBIT \?ELS5 + CALL NOT-A,STR?33 + RSTACK +?ELS5: FSET? PRSO,SURFACEBIT /?THN8 + FSET? PRSO,VEHBIT \?ELS7 +?THN8: PRINTR "Huh?" +?ELS7: FSET? PRSO,CONTBIT /?ELS11 + FSET? PRSO,DOORBIT /?ELS11 + PRINTI "How can you do that to" + CALL APRINT,PRSO + PRINTR "?" +?ELS11: FSET? PRSO,OPENBIT \?ELS15 + CALL ALREADY-OPEN + RSTACK +?ELS15: FSET? PRSO,LOCKEDBIT \?ELS17 + PRINTR "You'll have to unlock it first." +?ELS17: FSET? PRSO,CONTBIT \?ELS19 + FSET PRSO,OPENBIT + FSET PRSO,TOUCHBIT + FIRST? PRSO \?THN25 + FSET? PRSO,TRANSBIT \?ELS24 +?THN25: CALL NOW-CLOSED-OR-OPEN,PRSO,TRUE-VALUE + RSTACK +?ELS24: PRINTI "Opening" + CALL TPRINT,PRSO + PRINTI " reveals" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTR "." +?ELS19: FSET PRSO,OPENBIT + CALL SAY-THE,PRSO + ZERO? MYSTERY-GUEST /?ELS38 + EQUAL? PRSO,OAK-DOOR \?ELS38 + SET 'MYSTERY-GUEST,FALSE-VALUE + PRINTR " opens with a long squeal, and you hear hurried footsteps several rooms away." +?ELS38: PRINTC 32 + CALL PICK-ONE,DOOR-NOISES + PRINT STACK + PRINTR " as it opens." + + + .FUNCT CANT-OPEN-CLOSE + PRINTI "You can't " + EQUAL? PRSA,V?OPEN \?ELS3 + PRINTI "open" + JUMP ?CND1 +?ELS3: PRINTI "close" +?CND1: CALL APRINT,PRSO + PRINTR "!" + + + .FUNCT OTHER-SIDE,DOBJ,P=0,T +?PRG1: NEXTP HERE,P >P + LESS? P,LOW-DIRECTION /FALSE + GETPT HERE,P >T + PTSIZE T + EQUAL? STACK,DEXIT \?PRG1 + GETB T,DEXITOBJ + EQUAL? STACK,DOBJ \?PRG1 + RETURN P + + + .FUNCT V-PICK + FSET? PRSO,DOORBIT \?ELS5 + CALL NOT-A,STR?56 + RSTACK +?ELS5: CALL WHAT-A-CONCEPT + RSTACK + + + .FUNCT V-PLAY,WD,PTR + ADD P-SENTENCE,P-LEXELEN >PTR + GET P-LEXV,PTR >WD + EQUAL? WD,W?QUOTE \?CND1 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK >WD +?CND1: ZERO? PRSI /?ELS8 + EQUAL? PRSI,PIANO /?ELS8 + PRINTI "You can't play" + CALL ARPRINT,PRSI + RSTACK +?ELS8: ZERO? PRSO /?ELS12 + EQUAL? PRSO,PIANO /?ELS12 + PRINTI "You can't play" + CALL ARPRINT,PRSO + RSTACK +?ELS12: IN? PIANO,HERE /?ELS16 + PRINTI "There's not a musical instrument in sight." + CRLF + CALL PCLEAR + RSTACK +?ELS16: ZERO? SONG-NUMBER \?ELS18 + EQUAL? WD,W?YESTER \?ELS18 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS18: EQUAL? SONG-NUMBER,1 \?ELS22 + EQUAL? WD,W?GREENS \?ELS22 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS22: EQUAL? SONG-NUMBER,2 \?ELS26 + EQUAL? WD,W?CAMELO \?ELS26 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS26: EQUAL? SONG-NUMBER,3 \?ELS30 + EQUAL? WD,W?STARDU \?ELS30 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS30: EQUAL? SONG-NUMBER,4 \?ELS34 + EQUAL? WD,W?MISTY \?ELS34 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS34: EQUAL? SONG-NUMBER,5 \?ELS38 + EQUAL? WD,W?PEOPLE \?ELS38 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS38: EQUAL? SONG-NUMBER,6 \?ELS42 + EQUAL? WD,W?FEELIN \?ELS42 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS42: EQUAL? SONG-NUMBER,7 \?ELS46 + EQUAL? WD,W?TOMORR \?ELS46 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS46: EQUAL? SONG-NUMBER,8 \?ELS50 + EQUAL? WD,W?TONIGH \?ELS50 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS50: EQUAL? SONG-NUMBER,9 \?ELS54 + EQUAL? WD,W?OKLAHO \?ELS54 + CALL OPEN-CRAWL-SPACE-DOOR? + CALL PCLEAR + RSTACK +?ELS54: ZERO? PRSO \?CND59 + ZERO? PRSI \?CND59 + PRINTI "[on the piano]" + CRLF +?CND59: PRINTI "You play for a few moments. It's very beautiful and melodious." + CRLF + CALL PCLEAR + RSTACK + + + .FUNCT OPEN-CRAWL-SPACE-DOOR? + ZERO? SONG-PLAYED /?ELS5 + PRINTI "You play """ + GET SONGS,SONG-NUMBER + PRINT STACK + PRINTR """ again. You tell yourself you're getting better and promise to begin taking lessons again soon." +?ELS5: FSET CRAWL-SPACE-DOOR,OPENBIT + SET 'SONG-PLAYED,TRUE-VALUE + PRINTI "Although a little rusty, you begin to play """ + GET SONGS,SONG-NUMBER + PRINT STACK + PRINTR "."" Just as you start to seriously consider taking lessons again, a door in the floor opens." + + + .FUNCT V-POUR + PRINT YOU-CANT + PRINTR "pour that!" + + + .FUNCT V-PULL + CALL HACK-HACK,STR?57 + RSTACK + + + .FUNCT V-PUSH + CALL HACK-HACK,STR?58 + RSTACK + + + .FUNCT V-PUSH-DOWN + ZERO? PRSI /?ELS5 + PRINT YOU-CANT + PRINTR "push things down that." +?ELS5: CALL HACK-HACK,STR?59 + RSTACK + + + .FUNCT V-PUSH-TO + PRINT YOU-CANT + PRINTR "push things to that." + + + .FUNCT V-PUSH-UP + CALL HACK-HACK,STR?60 + RSTACK + + + .FUNCT PRE-PUT + EQUAL? PRSO,WHITE-WAX,RED-WAX,BLUE-WAX \?ELS5 + EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS5 + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK \FALSE +?ELS5: EQUAL? PRSO,YOUR-FEET \?ELS9 + EQUAL? PRSI,BRICK-HOLE \?ELS9 + PRINTR "If you want to climb up the chimney, say so." +?ELS9: EQUAL? PRSO,WATER,PORTABLE-WATER /FALSE + CALL ULTIMATELY-IN?,PRSI,PRSO + ZERO? STACK /?ELS15 + PRINT YOU-CANT + PRINTI "put" + CALL TPRINT,PRSO + GET P-ITBL,P-PREP2 + EQUAL? STACK,PR?ON \?ELS18 + PRINTI " on" + JUMP ?CND16 +?ELS18: PRINTI " in" +?CND16: CALL TPRINT,PRSI + PRINTI " when" + CALL TPRINT,PRSI + PRINTI " is already " + FSET? PRSO,SURFACEBIT \?ELS23 + PRINTI "on" + JUMP ?CND21 +?ELS23: PRINTI "in" +?CND21: CALL TPRINT,PRSO + PRINTR "!" +?ELS15: IN? PRSO,GLOBAL-OBJECTS /?THN28 + FSET? PRSO,TAKEBIT /?ELS27 +?THN28: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS27: CALL DONT-HAVE?,PRSO + ZERO? STACK \TRUE + EQUAL? PRSI,GROUND \?ELS33 + CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS33: ZERO? PRSI /?ELS35 + CALL ACCESSIBLE?,PRSI + ZERO? STACK \?ELS35 + CALL CANT-SEE-ANY,PRSI + RTRUE +?ELS35: FSET? PRSO,WORNBIT \FALSE + CALL TAKE-OFF-PRSO-FIRST + RSTACK + + + .FUNCT V-PUT,?TMP1,?TMP2,?TMP3 + EQUAL? PRSO,SKIS \?ELS5 + EQUAL? PRSI,BS-SAFE,WALL-SAFE,SACK /?THN8 + EQUAL? PRSI,COMPARTMENT \?ELS5 +?THN8: PRINTR "The skis can't possibly fit in there." +?ELS5: ZERO? PRSI /?ELS11 + FSET? PRSI,OPENBIT /?ELS11 + FSET? PRSI,DOORBIT /?ELS11 + FSET? PRSI,CONTBIT /?ELS11 + FSET? PRSI,SURFACEBIT /?ELS11 + PRINT YOU-CANT + PRINTR "possibly do that!" +?ELS11: FSET? PRSI,OPENBIT /?ELS15 + FSET? PRSI,SURFACEBIT /?ELS15 + CALL BUT-THE,PRSI + PRINTI "isn't open!" + CRLF + CALL THIS-IS-IT,PRSI + RSTACK +?ELS15: EQUAL? PRSI,PRSO \?ELS19 + CALL WHAT-A-CONCEPT + RSTACK +?ELS19: IN? PRSO,PRSI \?ELS21 + CALL BUT-THE,PRSO + PRINTI "is already " + FSET? PRSI,SURFACEBIT \?ELS24 + PRINTI "on " + JUMP ?CND22 +?ELS24: PRINTI "in " +?CND22: CALL TPRINT,PRSI + PRINTR "!" +?ELS21: FSET? PRSI,BURNBIT \?ELS28 + FSET? PRSO,FLAMEBIT \?ELS28 + CALL PERFORM,V?BURN,PRSI,PRSO + RTRUE +?ELS28: CALL WEIGHT,PRSI >?TMP3 + CALL WEIGHT,PRSO + ADD ?TMP3,STACK >?TMP2 + GETP PRSI,P?SIZE + SUB ?TMP2,STACK >?TMP1 + GETP PRSI,P?CAPACITY + GRTR? ?TMP1,STACK \?ELS32 + PRINTR "There's no room." +?ELS32: IN? PRSO,PLAYER /?ELS34 + CALL ITAKE + EQUAL? STACK,FALSE-VALUE,M-FATAL /TRUE +?ELS34: MOVE PRSO,PRSI + FSET PRSO,TOUCHBIT + PRINTR "Done." + + + .FUNCT V-PUT-BEHIND + PRINTR "That hiding place is too obvious." + + + .FUNCT V-PUT-ON + EQUAL? PRSI,ME \?ELS5 + CALL PERFORM,V?WEAR,PRSO + RTRUE +?ELS5: FSET? PRSI,SURFACEBIT \?ELS7 + CALL V-PUT + RSTACK +?ELS7: EQUAL? PRSI,FILM-PROJECTOR \?ELS9 + CALL V-PUT + RSTACK +?ELS9: PRINTI "There's no good surface on" + ZERO? PRSI /?ELS14 + CALL TPRINT,PRSI + JUMP ?CND12 +?ELS14: PRINTI " that" +?CND12: PRINTR "." + + + .FUNCT V-PUT-UNDER + PRINT YOU-CANT + PRINTR "put anything under that." + + + .FUNCT V-QUESTION + CALL V-ASK-FOR + RSTACK + + + .FUNCT V-QUIT,ASK?=1 + CALL V-SCORE + ZERO? ASK? /?ELS5 + CALL SAY-SURE + PRINTI "leave the story now?" + CALL YES? + ZERO? STACK /?ELS11 + CRLF + PRINTI "Cut! That's a take." + CRLF + QUIT + RTRUE +?ELS11: PRINT OKAY + PRINTR "continuing." +?ELS5: QUIT + RTRUE + + + .FUNCT V-RAPE + PRINTR "What a wholesome idea." + + + .FUNCT V-RAISE + EQUAL? PRSO,ROOMS \?ELS5 + CALL PERFORM,V?STAND,ROOMS + RTRUE +?ELS5: CALL HACK-HACK,STR?61 + RSTACK + + + .FUNCT V-REACH-IN,OBJ + FIRST? PRSO >OBJ /?KLU16 +?KLU16: FSET? PRSO,ACTORBIT \?ELS5 + CALL NOT-A,STR?33 + RSTACK +?ELS5: FSET? PRSO,CONTBIT /?ELS7 + CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS7: FSET? PRSO,OPENBIT /?ELS9 + PRINTR "It's not open." +?ELS9: ZERO? OBJ /?THN12 + FSET? OBJ,INVISIBLE /?THN12 + FSET? OBJ,TAKEBIT /?ELS11 +?THN12: PRINTR "It's empty." +?ELS11: PRINTI "You reach into" + CALL TPRINT,PRSO + PRINTR " and feel something." + + + .FUNCT V-READ + FSET? PRSO,READBIT \?ELS5 + GETP PRSO,P?TEXT + PRINT STACK + CRLF + RTRUE +?ELS5: CALL CANT-VERB-A-PRSO,STR?62 + RSTACK + + + .FUNCT CANT-VERB-A-PRSO,STRING + PRINT YOU-CANT + PRINT STRING + CALL APRINT,PRSO + PRINTR "!" + + + .FUNCT V-READ-TO + ZERO? LIT \?ELS5 + CALL TOO-DARK + RSTACK +?ELS5: FSET? PRSO,READBIT /?ELS7 + CALL HOW-READ + PRINTI " to" + CALL APRINT,PRSI + PRINTR "?" +?ELS7: CALL NOT-LIKELY,PRSI,STR?63 + RSTACK + + + .FUNCT HOW-READ + PRINTI "How can you read" + CALL APRINT,PRSO + RSTACK + + + .FUNCT V-REMOVE + FSET? PRSO,WORNBIT \?ELS5 + CALL PERFORM,V?TAKE-OFF,PRSO + RTRUE +?ELS5: CALL PERFORM,V?TAKE,PRSO + RTRUE + + + .FUNCT V-REMOVE-FROM + EQUAL? PRSO,WAX-COAT-2,WAX-COAT-1 \?ELS5 + EQUAL? PRSI,GREEN-MATCH,RED-MATCH \?ELS5 + CALL PERFORM,V?SCRAPE-OFF,PRSO,PRSI + RTRUE +?ELS5: CALL PERFORM,V?TAKE,PRSO,PRSI + RTRUE + + + .FUNCT V-REPLACE + EQUAL? PRSO,ME \?ELS3 + PRINTI "That's easy" + JUMP ?CND1 +?ELS3: CALL BUT-THE,PRSO + PRINTI "doesn't need replacement" +?CND1: PRINTR "." + + + .FUNCT V-REPLY + CALL NOT-LIKELY,PRSO,STR?64 + CALL PCLEAR + RETURN 2 + + + .FUNCT V-RESCUE + EQUAL? PRSO,ME \?ELS5 + CALL V-HELP + RSTACK +?ELS5: CALL BUT-THE,PRSO + PRINTR "doesn't need any help." + + + .FUNCT V-RESET + PRINTR "You don't need to reset that." + + + .FUNCT V-RESTART + CALL V-SCORE + CALL SAY-SURE + PRINTI "restart the story?" + CALL YES? + ZERO? STACK /FALSE + RESTART + CALL FAILED + RSTACK + + + .FUNCT V-RESTORE + RESTORE \?ELS5 + CALL SAY-OKAY + RSTACK +?ELS5: CALL FAILED + RSTACK + + + .FUNCT V-RIDE + FSET? PRSO,ACTORBIT \?ELS3 + CALL NOT-LIKELY,PRSO,STR?65 + JUMP ?CND1 +?ELS3: PRINT YOU-CANT + PRINTI "ride that!" + CRLF +?CND1: CRLF + RTRUE + + + .FUNCT ROB,WHO,WHERE,N,X + FIRST? WHO >X /?KLU12 +?KLU12: +?PRG1: ZERO? X /TRUE + NEXT? X >N /?KLU13 +?KLU13: FSET? X,TAKEBIT \?CND7 + MOVE X,WHERE +?CND7: SET 'X,N + JUMP ?PRG1 + + + .FUNCT V-ROLL-UP + PRINT YOU-CANT + PRINTI "roll up" + CALL APRINT,PRSO + PRINTR "." + + + .FUNCT V-RUB + CALL HACK-HACK,STR?66 + RSTACK + + + .FUNCT V-SAVE + PRINTI "You can almost hear Buck Palace saying, ""Wimp!""" + CRLF + CRLF + SAVE \?ELS5 + CALL SAY-OKAY + RSTACK +?ELS5: CALL FAILED + RSTACK + + + .FUNCT V-SAY + CALL ANYONE-HERE? + ZERO? STACK /?ELS5 + CALL WAY-TO-TALK + CALL PCLEAR + RETURN 2 +?ELS5: CALL TALK-TO-SELF + RSTACK + + + .FUNCT SAY-IF-NOT-LIT + CALL LIT?,HERE >LIT + ZERO? LIT \FALSE + CRLF + CALL NOW-BLACK + CRLF + RTRUE + + + .FUNCT SAY-OKAY + PRINT OKAY + PRINTR "done." + + + .FUNCT SAY-SURE + PRINTI "Are you sure you want to " + RTRUE + + + .FUNCT V-SCORE + PRINTI "Your score is " + PRINTN SCORE + PRINTI " point" + EQUAL? SCORE,1 /?CND1 + PRINTC 115 +?CND1: PRINTI " out of " + PRINTN SCORE-MAX + PRINTI ", in " + PRINTN MOVES + PRINTI " move" + EQUAL? MOVES,1 /?CND4 + PRINTC 115 +?CND4: PRINTR "." + + + .FUNCT V-SCRAPE-OFF + ZERO? PRSI /?ELS5 + PRINTI "You can't scrape" + CALL TPRINT,PRSO + PRINTI " off" + CALL TPRINT,PRSI + PRINTR "!" +?ELS5: PRINTI "There's nothing to scrape off" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-SCRIPT + GET 0,8 + BOR STACK,1 + PUT 0,8,STACK + CALL TRANSCRIPT,STR?67 + RTRUE + + + .FUNCT V-UNSCRIPT + CALL TRANSCRIPT,STR?68 + GET 0,8 + BAND STACK,-2 + PUT 0,8,STACK + RTRUE + + + .FUNCT TRANSCRIPT,STR + PRINTI "Here " + PRINT STR + PRINTI "s a transcript of interaction with" + CRLF + CALL V-VERSION + RSTACK + + + .FUNCT V-SEARCH + EQUAL? PRSO,ME \?ELS5 + CALL V-HELP + RSTACK +?ELS5: FSET? PRSO,CONTBIT \?ELS7 + FSET? PRSO,OPENBIT /?ELS12 + FSET? PRSO,TRANSBIT /?ELS12 + CALL YOUD-HAVE-TO,STR?23,PRSO + RSTACK +?ELS12: PRINTI "You find" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTR "." +?ELS7: FSET? PRSO,SURFACEBIT \?ELS21 + PRINTI "You find" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTR "." +?ELS21: FSET? PRSO,ACTORBIT \?ELS26 + CALL PERFORM,V?USE,PRSO + RTRUE +?ELS26: CALL NOTHING-INTERESTING + RSTACK + + + .FUNCT V-SHAKE,X + FSET? PRSO,ACTORBIT \?ELS5 + CALL PERFORM,V?ALARM,PRSO + RTRUE +?ELS5: FSET? PRSO,TAKEBIT /?ELS7 + FSET? PRSO,TRYTAKEBIT /?ELS7 + CALL HACK-HACK,STR?69 + RSTACK +?ELS7: CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-SHOOT + ZERO? PRSI \?ELS5 + CALL ULTIMATELY-IN?,GUN + ZERO? STACK /?ELS5 + CALL PERFORM,V?SHOOT,GUN,PRSO + RTRUE +?ELS5: FSET? PRSO,ACTORBIT \?ELS9 + PRINTR "You haven't got a gun." +?ELS9: PRINTR "You can't shoot that." + + + .FUNCT V-SSHOOT + CALL PERFORM,V?SHOOT,PRSI,PRSO + RTRUE + + + .FUNCT V-SHOW + PRINTI "It isn't likely that" + CALL TPRINT,PRSI + PRINTR " is interested." + + + .FUNCT V-SSHOW + CALL PERFORM,V?SHOW,PRSI,PRSO + RTRUE + + + .FUNCT V-SIT,VEHICLE + EQUAL? PRSO,ROOMS \?ELS5 + CALL GLOBAL-IN?,SEAT,HERE + ZERO? STACK /?ELS5 + CALL PERFORM,V?BOARD,SEAT + RTRUE +?ELS5: CALL WASTE-OF-TIME + RSTACK + + + .FUNCT PRE-SKI + FSET? SKIS,WORNBIT /FALSE + PRINTR "You're not wearing skis!" + + + .FUNCT V-SKI + EQUAL? PRSO,INTDIR \?ELS5 + EQUAL? P-DIRECTION,P?UP \?ELS10 + PRINTR "There's no tow rope here." +?ELS10: CALL DO-WALK,P-DIRECTION + RSTACK +?ELS5: PRINTR "You can't ski down that!" + + + .FUNCT V-SLEEP + PRINTR "Maybe you should've had a nap before the lawyer dropped you off." + + + .FUNCT V-SMELL + EQUAL? PRSO,ROOMS \?ELS3 + PRINTI "You smell nothing " + CALL PICK-ONE,YAWNS + PRINT STACK + JUMP ?CND1 +?ELS3: PRINTI "It smells just like" + CALL APRINT,PRSO +?CND1: PRINTR "." + + + .FUNCT V-SPLICE + PRINT YOU-CANT + PRINTR "splice that!" + + + .FUNCT V-SQUEEZE + CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-STAND + ZERO? PRSO /?THN6 + EQUAL? PRSO,ROOMS \?ELS5 +?THN6: PRINTR "You're already standing." +?ELS5: PRINT YOU-CANT + PRINTR "stand that up." + + + .FUNCT V-STAND-ON + CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-STAND-UNDER + CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-SWING + ZERO? PRSI \?ELS5 + PRINTR "Whoosh!" +?ELS5: CALL PERFORM,V?KILL,PRSI,PRSO + RTRUE + + + .FUNCT V-SWIM + ZERO? PRSO /?ELS5 + EQUAL? PRSO,INTDIR \?ELS11 + FSET? PLAYER,WETBIT \?ELS16 + CALL DO-WALK,P-DIRECTION + RSTACK +?ELS16: PRINTR "You'd be swimming in air." +?ELS11: PRINTI "You can't swim in" + CALL ARPRINT,PRSO + RSTACK +?ELS5: CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS22 + CALL PERFORM,V?SWIM,WATER + RTRUE +?ELS22: PRINT YOU-CANT + PRINTR "swim here!" + + + .FUNCT V-SWIM-UP + CALL DO-WALK,P?UP + RSTACK + + + .FUNCT V-SWIM-DOWN + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT PRE-TAKE,CONTAINER + LOC PRSO >CONTAINER + IN? PRSO,WINNER \?ELS5 + PRINTI "You're already " + FSET? PRSO,WORNBIT \?ELS8 + PRINTI "wear" + JUMP ?CND6 +?ELS8: PRINTI "hold" +?CND6: PRINTR "ing it." +?ELS5: ZERO? CONTAINER /?ELS12 + FSET? CONTAINER,CONTBIT \?ELS12 + FSET? CONTAINER,OPENBIT /?ELS12 + PRINT YOU-CANT + PRINTI "reach into" + CALL TPRINT,CONTAINER + PRINTR ". It's closed." +?ELS12: ZERO? PRSI /?ELS16 + EQUAL? PRSO,ME \?ELS20 + CALL PERFORM,V?DROP,PRSI + RTRUE +?ELS20: EQUAL? PRSO,WATER \?ELS22 + EQUAL? PRSI,POND /FALSE +?ELS22: IN? PRSO,PRSI /?ELS26 + EQUAL? PRSO,RING \?ELS29 + EQUAL? PRSI,DOG \?ELS29 + FSET? DOG,CLUTCHING-BIT /FALSE +?ELS29: EQUAL? PRSO,LADDER \?ELS33 + EQUAL? PRSI,HATCH-HOLE \?ELS33 + FSET? LADDER,HUNG-BIT /FALSE +?ELS33: EQUAL? PRSO,LENS-CAP \?CND27 + EQUAL? PRSI,FILM-PROJECTOR-LENS \?CND27 + FSET? LENS-CAP,NDESCBIT /FALSE +?CND27: FSET? PRSI,ACTORBIT /?THN43 + EQUAL? PRSI,DOG \?ELS42 +?THN43: CALL BUT-THE,PRSI + PRINTI "doesn't have" + CALL APRINT,PRSO + JUMP ?CND40 +?ELS42: CALL BUT-THE,PRSO + PRINTI "isn't in" + CALL TPRINT,PRSI +?CND40: PRINTR "." +?ELS26: CALL ULTIMATELY-IN?,PRSO,BUCKET + ZERO? STACK /FALSE + ZERO? BUCKET-PEG /FALSE + PRINT PEG-IN-WAY + RTRUE +?ELS16: CALL ULTIMATELY-IN?,PRSO,BUCKET + ZERO? STACK /?ELS54 + ZERO? BUCKET-PEG /?ELS54 + PRINT PEG-IN-WAY + RTRUE +?ELS54: LOC WINNER + EQUAL? PRSO,STACK \FALSE + PRINTR "You're in it!" + + + .FUNCT V-TAKE + CALL ITAKE + ZERO? STACK /FALSE + PRINTR "Taken." + + + .FUNCT ITAKE,VB=1 + CALL THIS-IS-IT,PRSO + FSET? PRSO,TAKEBIT /?ELS5 + ZERO? VB /FALSE + CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RFALSE +?ELS5: CALL TOO-MUCH-JUNK?,VB + ZERO? STACK \FALSE + CALL BOKS-BIG-ONE,PRSO + ZERO? STACK /?ELS13 + EQUAL? TREASURES-FOUND,10 /FALSE +?ELS13: MOVE PRSO,WINNER + FSET PRSO,TOUCHBIT + FCLEAR PRSO,NDESCBIT + RTRUE + + + .FUNCT BOKS-BIG-ONE,T-OBJ + GETP T-OBJ,P?VALUE + ZERO? STACK /FALSE + GETP T-OBJ,P?VALUE + ADD SCORE,STACK >SCORE + PUTP T-OBJ,P?VALUE,0 + INC 'TREASURES-FOUND + EQUAL? TREASURES-FOUND,10 \TRUE + LOC T-OBJ + MOVE PEG-0,STACK + LOC T-OBJ + MOVE NOTE,STACK + EQUAL? T-OBJ,FINCH /?CND9 + MOVE T-OBJ,WINNER +?CND9: FSET T-OBJ,TOUCHBIT + FCLEAR T-OBJ,NDESCBIT + EQUAL? T-OBJ,RING \?ELS14 + PRINTI "As you take" + CALL TPRINT,PRSO + PRINTI ", a small peg and a note drop out from under the model." + CRLF + MOVE PEG-0,HERE + MOVE NOTE,HERE + RTRUE +?ELS14: PRINTI "As you " + PRINTB P-PRSA-WORD + CALL TPRINT,PRSO + PRINTI " you notice a wooden peg and a note " + EQUAL? T-OBJ,CORPSE-LINE,GRATER,PARKING-METER \?ELS19 + PRINTI "behind" + JUMP ?CND17 +?ELS19: EQUAL? T-OBJ,FINCH \?ELS21 + PRINTI "next to" + CALL ARPRINT,FINCH + RTRUE +?ELS21: PRINTI "beneath" +?CND17: PRINTR " it." + + + .FUNCT V-TAKE-OFF,WHERE + EQUAL? P-PRSA-WORD,W?GET \?ELS5 + CALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?ELS5: IN? PRSO,PLAYER \?ELS7 + FSET? PRSO,WORNBIT \?ELS7 + FCLEAR PRSO,WORNBIT + PRINT OKAY + PRINTI "you're no longer wearing" + CALL TRPRINT,PRSO + RSTACK +?ELS7: PRINTR "You aren't wearing that!" + + + .FUNCT TAKE-OFF-PRSO-FIRST + PRINTI "You'll have to remove" + CALL TPRINT,PRSO + PRINTR " first." + + + .FUNCT V-TASTE + CALL PERFORM,V?EAT,PRSO + RTRUE + + + .FUNCT V-TELL + EQUAL? PRSO,ME,ROOMS \?ELS5 + CALL TALK-TO-SELF + RSTACK +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + ZERO? P-CONT /?ELS12 + SET 'WINNER,PRSO + LOC WINNER >HERE + RETURN HERE +?ELS12: CALL NO-ANSWER + RSTACK +?ELS7: PRINT YOU-CANT + PRINTI "talk to" + CALL APRINT,PRSO + PRINTC 33 + CRLF + CALL PCLEAR + RETURN 2 + + + .FUNCT TELL-TIME,MINUTES,HOURS,PM=0 + ADD MOVES,1260 >MINUTES + GRTR? MINUTES,1439 \?CND1 + SUB MINUTES,1440 >MINUTES +?CND1: DIV MINUTES,60 >HOURS + GRTR? HOURS,11 \?CND4 + SET 'PM,TRUE-VALUE + SUB HOURS,12 >HOURS +?CND4: ZERO? HOURS \?CND7 + SET 'HOURS,12 +?CND7: PRINTN HOURS + PRINTC 58 + MOD MINUTES,60 >MINUTES + LESS? MINUTES,10 \?CND10 + PRINTC 48 +?CND10: PRINTN MINUTES + ZERO? PM /?ELS17 + PRINTI " pm" + RTRUE +?ELS17: PRINTI " am" + RTRUE + + + .FUNCT V-TIME + PRINTI "It's " + CALL TELL-TIME + PRINTR "." + + + .FUNCT V-THROW + CALL IDROP + ZERO? STACK /FALSE + CALL SPECIAL-DROP + ZERO? STACK \TRUE + ZERO? PRSI /?ELS12 + PRINTR "You missed." +?ELS12: PRINTR "Thrown." + + + .FUNCT V-THROW-OFF + CALL WASTE-OF-TIME + RSTACK + + + .FUNCT V-TIE + PRINT YOU-CANT + PRINTI "tie" + CALL TPRINT,PRSO + PRINTR " to that." + + + .FUNCT V-TIE-UP + PRINT YOU-CANT + PRINTR "tie anything with that!" + + + .FUNCT TOO-DARK + PRINTR "It's too dark to see!" + + + .FUNCT TOO-MUCH-JUNK?,VB=1,?TMP1 + LOC PRSO + IN? STACK,WINNER /FALSE + CALL WEIGHT,PRSO >?TMP1 + CALL WEIGHT,WINNER + ADD ?TMP1,STACK + GRTR? STACK,LOAD-ALLOWED \FALSE + ZERO? VB /TRUE + FIRST? PLAYER \?ELS14 + PRINTI "Your load is" + JUMP ?CND12 +?ELS14: PRINTI "It's a little" +?CND12: PRINTR " too heavy." + + + .FUNCT V-TURN + FSET? PRSO,TAKEBIT /?ELS5 + FSET? PRSO,TRYTAKEBIT /?ELS5 + CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?ELS5: CALL HACK-HACK,STR?72 + RSTACK + + + .FUNCT V-TURN-LEFT + CALL V-TURN + RSTACK + + + .FUNCT V-TURN-RIGHT + CALL V-TURN + RSTACK + + + .FUNCT V-USE + FSET? PRSO,ACTORBIT \?ELS5 + CALL BUT-THE,PRSO + PRINTR "might resent that." +?ELS5: CALL HOW? + RSTACK + + + .FUNCT V-VERBOSE + SET 'VERBOSITY,2 + PRINTI "[Maximum verbosity.]" + CRLF + CRLF + CALL V-LOOK + RSTACK + + + .FUNCT V-BRIEF + SET 'VERBOSITY,1 + PRINTR "[Brief descriptions.]" + + + .FUNCT V-SUPER-BRIEF + SET 'VERBOSITY,0 + PRINTR "[Superbrief descriptions.]" + + + .FUNCT V-VERSION,CNT=17,V + GET 0,1 + BAND STACK,2047 >V + CRLF + PRINTI "HOLLYWOOD HIJINX +Infocom interactive fiction -- a zany treasure hunt +Copyright (C) 1986 Infocom, Inc. All rights reserved. +" + GETB 0,1 + BAND STACK,8 + ZERO? STACK /?CND1 + PRINTI "Licensed to Tandy Corporation. Version 00.00." + PRINTN V + CRLF +?CND1: PRINTI "HOLLYWOOD HIJINX is a trademark of Infocom, Inc. +Release " + PRINTN V + PRINTI " / Serial Number " +?PRG4: IGRTR? 'CNT,23 /?REP5 + GETB 0,CNT + PRINTC STACK + JUMP ?PRG4 +?REP5: CRLF + RTRUE + + + .FUNCT V-$VERIFY + ZERO? PRSO /?ELS5 + EQUAL? PRSO,INTNUM \?ELS11 + EQUAL? P-NUMBER,57 \?ELS11 + PRINTN SERIAL + CRLF + RTRUE +?ELS11: CALL DONT-UNDERSTAND + RSTACK +?ELS5: PRINTI "Verifying disk." + CRLF + VERIFY \?ELS22 + PRINTR "Correct." +?ELS22: CALL FAILED + RSTACK + + + .FUNCT V-$COMMAND + DIRIN 1 + RTRUE + + + .FUNCT V-$RANDOM + EQUAL? PRSO,INTNUM /?ELS5 + PRINTR "Illegal." +?ELS5: SUB 0,P-NUMBER + RANDOM STACK + RTRUE + + + .FUNCT V-$RECORD + DIROUT D-RECORD-ON + RTRUE + + + .FUNCT V-$UNRECORD + DIROUT D-RECORD-OFF + RTRUE + + + .FUNCT V-UNLOCK + FSET? PRSO,DOORBIT /?THN6 + FSET? PRSO,CONTBIT \?ELS5 +?THN6: FSET? PRSO,OPENBIT \?ELS12 + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " is already open. You should have eaten more carrots as Aunt Hildegarde always told you." +?ELS12: FSET? PRSO,LOCKEDBIT /?ELS14 + PRINTI "You attempt to unlock" + CALL TPRINT,PRSO + PRINTR " and find it isn't locked." +?ELS14: ZERO? PRSI /?ELS16 + PRINTI "When was the last time you unlocked something with" + CALL APRINT,PRSI + PRINTR "?" +?ELS16: FSET? PRSO,DOORBIT \?ELS19 + FSET? HERE,LOCKEDBIT /?ELS24 + PRINT YOU-CANT + PRINTR "unlock it from this side." +?ELS24: PRINTI "With a click you unlock" + CALL TRPRINT,PRSO + FCLEAR PRSO,LOCKEDBIT + RTRUE +?ELS19: FSET? PRSO,CONTBIT \?ELS28 + FSET? PRSO,LOCKEDBIT \?ELS28 + PRINTR "Perhaps if you had the combination..." +?ELS28: CALL THING-WONT-LOCK,PRSI,PRSO,TRUE-VALUE + RSTACK +?ELS5: CALL CANT-LOCK,TRUE-VALUE + RSTACK + + + .FUNCT V-UNROLL + PRINT YOU-CANT + PRINTI "unroll" + CALL ARPRINT,PRSO + RSTACK + + + .FUNCT V-UNTIE + PRINTR "You don't need to untie it. It's not tied to anything." + + + .FUNCT DO-WALK,DIR + SET 'P-WALK-DIR,DIR + CALL PERFORM,V?WALK,DIR + RTRUE + + + .FUNCT V-WALK,PT,PTS,STR,OBJ,RM + FSET? SKIS,WORNBIT \?ELS5 + EQUAL? PRSO,P?DOWN /?ELS5 + PRINTI "These are downhill skis, not cross-country skis!" + CRLF + RETURN 2 +?ELS5: ZERO? P-WALK-DIR \?ELS11 + ZERO? PRSO /?ELS14 + CALL PRESUMABLY-YOU-WANT-TO,STR?73,PRSO + CALL PERFORM,V?WALK-TO,PRSO + RTRUE +?ELS14: CALL V-WALK-AROUND + RTRUE +?ELS11: LOC PLAYER + EQUAL? STACK,HERE /?ELS19 + PRINTI "You're not going anywhere while you're on" + LOC PLAYER + CALL TRPRINT,STACK + RETURN 2 +?ELS19: GETPT HERE,PRSO >PT + ZERO? PT /?ELS23 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT \?ELS28 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS28: EQUAL? PTS,NEXIT \?ELS30 + GET PT,NEXITSTR + PRINT STACK + CRLF + RETURN 2 +?ELS30: EQUAL? PTS,FEXIT \?ELS34 + GET PT,FEXITFCN + CALL STACK >RM + ZERO? RM /?ELS39 + CALL GOTO,RM + RSTACK +?ELS39: RETURN 2 +?ELS34: EQUAL? PTS,CEXIT \?ELS45 + GETB PT,CEXITFLAG + VALUE STACK + ZERO? STACK /?ELS50 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS50: GET PT,CEXITSTR >STR + ZERO? STR /?ELS52 + PRINT STR + CRLF + RETURN 2 +?ELS52: CALL CANT-GO + RETURN 2 +?ELS45: EQUAL? PTS,DEXIT \FALSE + GETB PT,DEXITOBJ >OBJ + FSET? OBJ,OPENBIT \?ELS65 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS65: GET PT,DEXITSTR >STR + ZERO? STR /?ELS67 + PRINT STR + CRLF + CALL THIS-IS-IT,OBJ + RETURN 2 +?ELS67: CALL ITS-CLOSED,OBJ + RETURN 2 +?ELS23: EQUAL? P-WALK-DIR,P?IN,P?OUT \?ELS80 + PRINTR "Please use compass directions." +?ELS80: CALL CANT-GO + RETURN 2 + + + .FUNCT V-WALK-AROUND + PRINTR "[Do you have any particular direction in mind?]" + + + .FUNCT V-WALK-TO + EQUAL? PRSO,INTDIR \?ELS5 + CALL DO-WALK,P-DIRECTION + RSTACK +?ELS5: CALL V-WALK-AROUND + RSTACK + + + .FUNCT V-WAIT,NUM=3 + PRINTI "Time passes." + CRLF +?PRG1: DLESS? 'NUM,0 /?REP2 + CALL CLOCKER + ZERO? STACK /?PRG1 +?REP2: SET 'CLOCK-WAIT,TRUE-VALUE + RETURN CLOCK-WAIT + + + .FUNCT V-$WAIT,NUM + EQUAL? PRSO,INTNUM \?ELS5 + SET 'NUM,P-NUMBER + PRINTI "Time passes." + CRLF +?PRG6: DLESS? 'NUM,0 /?REP7 + CALL CLOCKER + ZERO? STACK /?PRG6 +?REP7: SET 'CLOCK-WAIT,TRUE-VALUE + RETURN CLOCK-WAIT +?ELS5: PRINTR "Youse should use a numba." + + + .FUNCT V-WAIT-FOR + LOC PRSO + EQUAL? STACK,HERE,WINNER \?ELS3 + CALL BUT-THE,PRSO + PRINTI "is already here!" + JUMP ?CND1 +?ELS3: PRINTI "You may be waiting quite a while." +?CND1: CRLF + RTRUE + + + .FUNCT PRE-WATER + ZERO? PRSI /?ELS5 + EQUAL? PRSI,PORTABLE-WATER /FALSE + EQUAL? PRSI,BUCKET \?ELS13 + IN? PORTABLE-WATER,BUCKET \?ELS13 + SET 'PRSI,PORTABLE-WATER + RFALSE +?ELS13: PRINTI "As the word implies, you can only water" + CALL APRINT,PRSO + PRINTR " with water." +?ELS5: CALL ULTIMATELY-IN?,PORTABLE-WATER + ZERO? STACK /?ELS24 + SET 'PRSI,PORTABLE-WATER + RFALSE +?ELS24: PRINTI "You don't have any water to water" + CALL TPRINT,PRSO + PRINTR " with!" + + + .FUNCT V-WATER + PRINTI "A nice thought, but" + CALL TPRINT,PRSO + PRINTR " doesn't need watering." + + + .FUNCT V-WAVE-AT + CALL V-ASK-FOR + RSTACK + + + .FUNCT V-WEAR + FSET? PRSO,WORNBIT \?ELS5 + PRINTI "You're already wearing" + CALL TRPRINT,PRSO + RSTACK +?ELS5: FSET? PRSO,WEARBIT /?ELS7 + PRINT YOU-CANT + PRINTI "wear" + CALL ARPRINT,PRSO + RSTACK +?ELS7: CALL DONT-HAVE?,PRSO + ZERO? STACK \TRUE + FSET PRSO,WORNBIT + EQUAL? PRSO,TOUPEE \?ELS16 + PRINTI "You put on " + CALL DPRINT,TOUPEE + PRINTR " in an attempt to cover that Burbank bald spot." +?ELS16: EQUAL? PRSO,MASK \?ELS18 + PRINTI "You slip on" + CALL TPRINT,MASK + PRINTR " and feel an unexplainable urge to go to summer camp." +?ELS18: PRINT OKAY + PRINTI "you're now wearing" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT WEIGHT,THING,OBJ,WT=0 + FIRST? THING >OBJ /?KLU16 +?KLU16: +?PRG1: ZERO? OBJ /?REP2 + EQUAL? THING,PLAYER \?ELS9 + FSET? OBJ,WORNBIT \?ELS9 + INC 'WT + JUMP ?CND7 +?ELS9: CALL WEIGHT,OBJ + ADD WT,STACK >WT +?CND7: NEXT? OBJ >OBJ /?PRG1 + JUMP ?PRG1 +?REP2: GETP THING,P?SIZE + ADD WT,STACK >WT + RETURN WT + + + .FUNCT V-YELL + CALL PCLEAR + CALL ANYONE-HERE? + ZERO? STACK /?ELS5 + CALL WAY-TO-TALK + RETURN 2 +?ELS5: PRINTR "You begin to get a sore throat." + + + .FUNCT YES?,WORD + CRLF +?PRG1: CRLF + PRINTI "(Please type YES or NO.) >" + PUTB YES-LEXV,0,4 + READ YES-INBUF,YES-LEXV + GET YES-LEXV,P-LEXSTART >WORD + GETB YES-LEXV,P-LEXWORDS + ZERO? STACK /?PRG1 + ZERO? WORD /?PRG1 + EQUAL? WORD,W?YES,W?Y,W?YUP /TRUE + EQUAL? WORD,W?OKAY,W?OK,W?AYE /TRUE + EQUAL? WORD,W?SURE,W?AFFIRM,W?POSITI /TRUE + EQUAL? WORD,W?NO,W?N,W?NOPE /FALSE + EQUAL? WORD,W?NAY,W?NAW,W?NEGATIVE \?PRG1 + RFALSE + + + .FUNCT NOW-LIT? + ZERO? LIT \FALSE + CALL LIT?,HERE + ZERO? STACK /FALSE + SET 'LIT,TRUE-VALUE + CRLF + CALL V-LOOK + RSTACK + + + .FUNCT WASTE-OF-TIME + CALL PICK-ONE,USELESSNESS + PRINT STACK + PRINTR "." + + .ENDI diff --git a/verbs.zil b/verbs.zil new file mode 100644 index 0000000..ce259de --- /dev/null +++ b/verbs.zil @@ -0,0 +1,3056 @@ +"VERBS for ANTHILL (C)1986 Infocom Inc. All Rights Reserved." + +;"subtitle describers: Mondo-tweked by Lebs for SEM from Leather" + +) + "AUX" (FIRST-VISIT <>)) + + >> + + + )> + > + + )> + + ,VEHBIT> + >)> + + + >> + ; ;"when you enter room or do a look" + ,M-LOOK>> + >)> + )> + > + +;"Print FDESCs, then DESCFCNs and LDESCs, then everything else. DESCFCNs +must handle M-OBJDESC? by RTRUEing (but not printing) if the DESCFCN would +like to handle printing the object's description. RFALSE otherwise. DESCFCNs +are responsible for doing the beginning-of-paragraph indentation." + +)) + > + + )> + + ) + ( + > + >> + + + >)> + )> + >> + > + + + ) + (> + + >>> + T) + (> + >> + + > + >)> + ) + (> + ;"don't forget to change this" + + >)> + )> + >> + 0> + >> + 0>)>> + + ;"print everything?" + ;"started paragraph?" + +"" + +) N (1ST? T) (IT? <>) + (START? <>) (TWO? <>) (PARA? <>)) + ;"what is level 2?" + + + ) + ( + )> + > + + + + + > + + .N>> + + + + >>> + > + T> + + + > + ; + +;"4--You can see a foo here or Sitting on the foo is a... ")> + ) + ( + )> + + ) + ( + ) + ( + ) + (T + + + ) + (T + )>)>)>) + (> + )>) + (T + ) + (T + )>)> + + + + ) + ;( + ) + ;( + ) + (T + )>) + ( + ) + ;( + )> + > + ) + (T + + >)>)> + )> + + >)> + + > + > + )> + + ;> + + )> + + T>> + + )> + )> + )>> + > + + ) + ( + + + >> + ) + (T + ,D-ALL?)>> + > + )>)> + >> + + T> + >> + )> + )>> + +)) + + ) + ( + ) + (> + >>> + ) + ( + > + ) + ;( + + > + > + >> + ) + (T + )>> + + + >> + ) + (> + > + ) + ( + ) + (T + )>> + +; + > + )> + > + + + > + )> + ) + (T ;"nothing" + )>> + + + ) + ( + + ) + (T + + )> + > + +> + +> + +; + + > + +; + > + +; + + ) + ; ( + + + )> + ) + (T + + )>> + + + + + + ) + (T + )>> + + + ) + (T + )> + + > + +; > + +> + + + + ) + (T + )>> + +; > + )> + > + + > + >> + +; > + + + + ;
+ ) + (T + )>) + (T + +
+ )> + > + +; + + ,M-ENTER> + > + +> + ) + ( + )>> + + + + + ; ,M-ENTER> + ;) + (T + )>> + +; > + +> + + + + + ) + (T + )>) + (T + CR>)>> + + + +> + + ) + (> + >> + ) + ( + ) + (,PRSI + ) + (T + )>> + +> + +; )) + + ) + (T + )> + > + +> + +)) + ; + )> + > + + + ) + ( + ) + (T + )>> + +> + +; + ) + (>> + ) + (T + )>> + +"climb" + + + > + + + ) + (T + )>> + +; + > + ) + (T + )>> + + + + ) + (T + )>> + + + ) + (T + )>> + + + ) + (T + )>> + + + ) + ( + ) + (> + >> + + ) + (> + 0>>> + + + ) + (T + )>) + ( + + + + " as it closes." CR>) + (T + )>) + (T + )>> + +; "Count # objects being carried by THING" + +;> + > + >)> + >) + (T + )>> + > + +> + +> + + + > + +> + +; > + +> + +> + +> + ) + (T + + )>> + +; > + + +; + + + + )> + > + + + > + + + + + ) + (T + + )>)> + + > + ) + ( + > + ) + ( 2> ;"walkway rooms" + ) + ( 0> + ) + ( 10> + 20>> + ) + (T + + + ) + (T + + )>) + (T + 1> + 15>> + ) + ( 1> + + ,X-H>> + > + )>)>)>) + + (T + )>> + + ,PRSO>> + + ) + (T + + + ; ,LEFT-END> + ,RIGHT-END>> + > + ">)>)>> + +> + +> + +"drop" + +; > + + )>> + + + + >> + + >>> + )> + + > + )> + + ) + ( + + ) + ( + > + + )>> + + + ) + ( + )>> + + + T) + (> + ,OPENBIT>>> + + + ) + ( + ) + (T + ;> + + ;"stuff dropped when on plank to room not plank" + )> + > + +> + + + + > + > + > + )> + + + ) + (T + )>>) + (T + + )>) + (T + )>) + (T + )> + > + + + ) + ( + >) + ( + ) + ( + + + ) + ( + + ) + (T + )>> + +; + + ) + (T + )>> + + + + )> + ; + + )>> + +> + + + + + ) + (T + )> + + ) + ( + ) + ( + + > + ) + (T + )>) + ( + ) + (T + " about" TR ,PRSO>)>> + +> + +; + + ) + (T + )>> + +; > + + ) + (T + )>> + +> + +; + ) + (T + )>> + +;> + +; + > + + + + + ) + ( + ) + (T + )>) + ( + > + ) + (> + ) + ( + ,PORTABLE-WATER>>> + ) + (T + + + + )>) + ( + + + ) + (T + )>> + +> + + ) + ( + ) + ( + > + + ) + ( + + ) + ( + > + ) + ( + > + + + ) + (T + )> + ) + (T + )> + > + +> + + )> + + ) + (>> + >)>>> + +) "AUX" WORD) + + + + )> + "> + + > + + + + ) + ( + + ) + (T + + )>) + ( + ) + (T + )>> + + + > + +> + +> + + + + > + ) + ( + ) + ( + ) + (T + )> + > + +"give" + + + > + + ) + ; ( + > + + ) + ; ( + > + ) + ( + > + + ) + ( + ) + (> + + ) + ( + ) + (T + )>> + + + )>> + + + > + +; > + )>> + +; + + + + > + ; + ; + + > + > + + ) + ( + ) + (> + )>)> + ; + + + > ;"change prob to 0 for now" + + )> + ,M-ENTER> + > + ) + (.V? + ;)> + > + + ,M-EXIT>> + + + + + > + ; + ; + + + > ;"change prob to 0 for now" + + )> + ,M-ENTER> + + >> + )> + ;> + ) + (.V? + ;)> + > + + +;"was part of routine goto" +; + + > + > + + ) + ( + ) + (> + )>)> + +> + + "." CR>> + +> + >> + )>> + + + + ) + (T + )>) + (T + )>> + +) + (T + > + + + )>)> + + ) + (T + )>) + (T + )>> + +> + +> + +; > + +; + >> + + +;"---- part of new describers ----" + +>> + )> + > + +;) (LEVEL 0) + "AUX" Y (1ST? T) (AV <>) STR (PV? <>) (INV? <>) (SC <>)) + >> + )> + ,VEHBIT> + >)> + > + ) + (T + + >) + ( + ) + () + (> + > + >> + > + )> + + ,P?DESCFCN>> + > + )>)> + >>)> + > + ; + > + + )> + + > + )> + >) + ( T) + ;(> T) + (> + + >>> + + + > + ) + (> + + + )>)> + > + >)> + ) + ( + > + )>)> + >>> + +; + ) + (T + )>> + +; + ) + (> + + >)> + + ) + ( + >> + +
+ ) + (T + +
+ )>)>> + +;"semied to allow for new describers" +; + + + ) + (T + )> + > + +> + +)) + )> + + + > + +> + +> + ) + (T + + )> + )> + > + +; > + ) + ( + > + ) + ;(> + ) + (T + )>> + +> + +> + + + ) + ( + + ) + (T + )>> + + + +; + > + ) + (T + + ; >)> + + )>) + (T + )> + > + +;> + + + > + CR>) + ( + > + + + + + ) + (T + )>) + (T + )>> + + + + ) + (T + + + )>) + ( + + ) + (ELSE + + )>) + (T + )>> + + + +> + +;)) + + ) + (T + )> + > + +; + ) + (T + )>> + +> + ) + ( + ) + ( + + ) + (T + )>> + +; ) + (T + )>> + + + >> + ) + (> + )> + > + + + > + + + > + + + + ,BUCKET-PEG> + ) + (T + )>) + (T + )>> + +; )) + #DECL ((ITM) ANY (TBL) TABLE (CNT LEN) FIX) + > .LEN> + ) + ( .ITM> + ) + (T + >>)>)>>> + +"lock" + + + > + > + ) + ( + ) + ( + ) + (,PRSI + ) + ( + + ) + (T + )>) + (T + )>> + +)) + + )> + > + + + )> + > + +; + > + )>)> + > + + + ) + (T + )>> + + + ) + ( + + ) + ( + + ; + ; + ; + ) + ( + > + ) + (T )> + ) + (T + + )> + > + + + ) + ( + ) + ( + + > + > + + ) + (T + + )>) + ( + > + ) + (> + >> + ) + (T + + > + )> + ;)>) + (T + )>> + + + + )> + + + > + )> + ) + (T + " on" TR ,PRSO>)>> + + + ) + (>> + ) + (T + )>> + + + ) + ( + + + ) + (T + )> + ) + (T + )>> + + + ) + ( + + ) + (T + )>) + ( + ) + ( + + + )> + ) + ( + > + + ) + (T + )>) + (T + )>> + +> + +; > + + + ) + ( + ) + ( + "." CR>) + (T + )>> + + + > + +> + +> + +; > + > + )> + >) + (T + )>>> + +)) + + ) + (T + )> + "." CR>> + +> + +)) + + + + ) + (T + + )> + > + + + ) + ( + > + ) + (> + >> + + ) + ( + ) + ;(>> + ) +; "Locked" ( + ) + +; "Container" ( + + + > + > + ) + ;(> + > + >> + ) + (T + + > + )> + + ; + ;)>) + +; "Door" (T + + + > + > + ) + (T + " as it opens." CR>)>)>> + + + + + + ) + (T + )> + > + +> + +> ,LOW-DIRECTION> + >) + (T > + ,DEXIT> + .DOBJ>> + )>)>>> + +; + > + + + ) + (T + )>> + + + >>>) + (ELSE + >)> + >>> + + >>)> + >> + ) + (>> + ) + (> + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + (T + > + )> + + )>> + + "\" again. You tell yourself +you're getting better and promise to begin taking lessons again soon." CR>) + (T + + + +".\" Just as you start to seriously consider taking lessons again, a door +in the floor opens." CR>)>> + +; > + +"pocket" + +; + > + +; > + +;> + +> + +> + +> + +) + (T + )>> + +> + +> + + + + > + ) + ( + > + ) + ( + ) + ( + + ,PR?ON> + ) + (T + )> + + + ) + (T + )> + ) + ( + >> + CR>) + ( + ) + ( + + ) + (>> + + ) + ( + ) + (T + )>> + + + > + ) + (> + > + > + > + ;>> + + ) + (> + >> + + + ) + ( + ) + ( + + + + ) + (T + )> + ) + ( + > + + ) + ( > + > + > + + ) + (> + <> ,M-FATAL>> + ) + (T + + + )>> + +;"leather v-put" +;> + > + > + >> + ) + ( + + >>> + ) + ( + ) + (> + >> + + ) + ( + ) + ( + > + ) + ( > + > + > + >> + + + ) + (T + )> + ) + (> + ,M-FATAL <>>> + ) + ( + > + + > + ) + ( + ) + (T + + + )>> + +> + + + + ) + ( + ) + ( + ) ;"SEM" + (T + + ) + (T + )> + )>> + +> + +> + +; + + ) + ( + ) + (T + )>> + + + + + + + ) + (T + )>) + (T + )>> + +; ) N) + > + + ) + (T + )>> + > + +> + + ;"input was GET UP" + + ) + (T + )>> + +> + + ) + (> + CR>) + (> + ) + ( + + >> + ) + (T + + )>> + + + CR>) + (T + )>> + +> + +; + ) + (> + + ) + (T + )>> + + + ) + (> + + ) + (T + )>> + +> + +;> ;"I HAVE TWO VERSIONS OF THIS" + ;"SEM" + + + + ) + (T + + )>> + + + > + + ) + (T + + )>> + + + ) + (T + + )> + > + + + + > + + + ) + ;( + ) + (T + + )>> + +> + + + + + + + )>> + + + ) + (T + )>> + + + ) + (T + )> + > + +; > + > + + > + ) + (T )> + )>> + +> + > + + )> + ) + (T + )>>> + +; ) (HIDE? <>) "AUX" N X (ROBBED? <>)) + > + + )> + > + + )> + )> + >> + +> + +> + + + + ) + (T + )>> + +> + + + + + ) + (T + )>> + +> + + + + )>> + +> + +> + + + > + )> + + > + )> + > + + + +) + (T + )>> + +"scripting" + + 1>> + + > + + + -2>> + > + + + > + + + ) + ( + > + >> + ) + (T + + > + )> + + ; + ; + ;)>) + ( + + > + )> + + ; + ; + ;) + ( + + ) + (T + )>> + +; + ) + (T + CR>)>> + + + + ) + (> + >> + ) + (T + )>> + +; > + + + > + + ) + ( + ) + (T + )>> + + + > + +> + + + > + + + > + + ) + ;( + >> + + ) + (T + )>> + +> + )>> + + + + ) + (T + ; + )>) + (T + )>> + +; > + +> + + + >) + (T + )> + > + +; > + + + ) + (T + )>> + +> + +> + + ,VEHBIT> + + ) + ( + > + ) + (T + )>> + +> + + CR>> + +; + > + + + ) + (T + + )>> + + + + ) + (T + )>) + (T + )>) + ( + + ) + (T + )>> + + + +> + +> + +"take" + +> + + + + ) + (T + )> + + ) + ( + >> + + ) + (,PRSI + + + ) + ( + > + ) + (> + + + > + ;"TAKE RING FROM DOG" + ) + ( + + > + ) + ( + + > + )> ;"for TAKE LENS CAP FROM LENS" + + > + + ) + (T + + )> + + ) + ( + ,BUCKET-PEG> + ) + (T + ;> + )> + ) + ( + ,BUCKET-PEG> + ) + (> + + ) + (T + )>> + + + + + )>> + + + +;(; + 0>>> + 0>> + >> + + > + + > + > + + + + + + + ) + (T + + + ) + ;"else PENGUIN RUBBER-STAMP MASK TOUPEE FINCH FIRE-HYDRANT" + (T + )> + )> + ;"don't print TAKEN for 10th treasure")> + ;"following is for all treasures except the tenth" + + + + ) + + + > + CR>)> + ) + ( + ) + ( + > + ) + (T ;"following is for all objects except the treasures" + + + + )>> + + 0>> + >> + + > + + > + > + > + )> + + + + + + ) + (T + + + + + ) + ( + + ) + ;"else PENGUIN RUBBER-STAMP MASK TOUPEE FIRE-HYDRANT" + (T + )> + )> + ;"don't print TAKEN for 10th treasure")> + + ;<;"following is for all treasures except the tenth" + + + > + ) + (T + )>> + + + + ) + ( + > + + ) + (T + )>> + +> + + + > + + + ) + ( + + >) + (T + )>) + (T + + + )>> + +)) + > + ;"11:59 pm." + >)> + > + ;"after noon" + + >)> + ;"between 12am and 1am, or 12pm and 1pm" + )> + + > ;"remainder" + + )> + + ) + (T + )>> + +; + ) + (T + )>> + + + + > + +; + ;> + +;> + + + + ) + (,PRSI + ) + (T + )>)>> + +> + +> + +> + +> + +; + + + ,WINNER>> + > ,LOAD-ALLOWED>> + + ) + (T + )> + )> + ) + ;( ,FUMBLE-NUMBER> + )> + ) + (T + )>> + +> + >> + CR>) + (T + )>> + +> + +> + + + + + ) + (T + )>> + + ;"0 = superbrief, 1 = brief, 2 = verbose" + + + + > + + + > + + + > + + *3777*>> + + % ,PLUS-MODE> + ') + (T + ' 8>>> + )>)> + + > 23> + ) + (T + >)>> + > + + + + > + ) + (T + )>) + (T + + + ) + (T + )>)>> + + + > + +> + ) + (T + > + )>> + + + + + ;"all READS and INPUTS get sent to command file" + > + + + > + +;"lockedbit for object and in rooms where you can lock the door" + + + > + + ) + (> + ) + (,PRSI + ) + ( + > + ) + (T + + )>) + ( ;"its one of the safes" + > + ) + (T + )>) + (T + )>> + +> + +> + +"walk" + + + + > + + + >> + + ) + ( + + ) + (T + )> + ) + ( ,HERE>> + > + ) + (> + > ,UEXIT> + >) + ( + CR> + ) + ( + >> + ) + (T + )>) + ( + > + >) + (> + + ) + (T + + )>) + ( + > ,OPENBIT> + >) + (> + + + ) + (T + + )>)>) + (T + + ) + (T + + )>)>> ;"rfatal in right place?" + +> + + + ) + (T + )>> + +; + >> + ) + (T + )>> + + + > 0> + ) + ( + )>> + > + + + + + > 0> + ) + ( + )>> + ) + (T + )>> + + ,HERE ,WINNER> + + ) + (T + )> + > + + + ) + ( + > + + ) + (T + )>) + (T + + + ) + (T + )>)>> + +> + +; > + +> + +; > + + + ) + (> + ) + ( + ) + (T + + + ) + ( + ) + (T + )>)>> + +; "Return total weight of objects in THING" + +> + + > + >) + (T + >>)> + >) + (T + )>> + >> + > + +; + ) + (T + )>> + +; + ) + (T + )>> + +; > + +; > + )> + + > + +; + )> + + + ) + (T + )> + + > + +; > + <- 2> 1>>> + + + + + ) + (T + )>> + +> +> + + + "> + + + > + > + T) + (> + + + > + ) + ( + > + )>)>>> + + + > + + + )>> + + "." CR>> + +> + +; "." CR>> + +;> + +"never called" + +; 2>> + + + ) + (T + )>> \ No newline at end of file