File: AMAIN.LS of Disk: V50/Source/Source-Listing-FORTRAN-2
(Source file text) 


RALF V50A   24-JUL-20    PAGE 1

                    EXTERN  SAVEGM
                    EXTERN  RSTRGM
                    EXTERN  A5TOA1
                    SECT    AMAIN
                    EXTERN  BITSET
                    EXTERN  BUG
                    EXTERN  CARRY
                    EXTERN  DROP
                    EXTERN  DSTROY
                    EXTERN  GETIN
                    EXTERN  IABS
                    EXTERN  JUGGLE
                    EXTERN  MAX0
                    EXTERN  MIN0
                    EXTERN  MOD
                    EXTERN  MOVE
                    EXTERN  SPEAK
                    EXTERN  PSPEAK
                    EXTERN  PUT
                    EXTERN  RND
                    EXTERN  RSPEAK
                    EXTERN  SPEAK
                    EXTERN  VOCAB
                    EXTERN  YES
                    EXTERN  #FIX
                    EXTERN  #WRITO
                    EXTERN  #RENDO
                    EXTERN  #RSVO
                    EXTERN  #UE
                    EXTERN  #EQ
                    EXTERN  #NE
                    EXTERN  PCT
                    EXTERN  GETWRD
                    EXTERN  PUTWRD
                    EXTERN  SIXOUT
00000 1030          JA      #ST
00001 0606  
            #XR,    ORG     .+10
00012 0115          TEXT    +AMAIN +
00013 0111  
00014 1640  
00015 1100  #RET,   SETX    #XR
00016 0002  
00017 1110          SETB    #BASE
00020 0023  
00021 1030          JA      .+3
00022 0024  
            #BASE,  ORG     .+6
                    ORG     #BASE+30
00053 0040          FNOP
00054 1030          JA      #RET
00055 0015  
00056 0040          FNOP
00057 0000  #GOBAK, 0;0
00060 0000  
            HINT,   ORG     .+3
RALF V50A   24-JUL-20    PAGE 1-1

            KENT,   ORG     .+3
            KQ,     ORG     .+3
            K2,     ORG     .+3
            LL,     ORG     .+3
            N,      ORG     .+3
            PBOTL,  ORG     .+3
            SPK,    ORG     .+3
            WD1,    ORG     .+3
            WD1X,   ORG     .+3
            WD2,    ORG     .+3
            WD2X,   ORG     .+3
            YEA,    ORG     .+3
            #TMP,   ORG     .+30
            
00160 0000  ZERO,   F 0
00161 0000  
00162 0000  
00163 0001  ONE,    F 1
00164 2000  
00165 0000  
00166 0002  TWO,    F 2
00167 2000  
00170 0000  
00171 0002  THREE,  F 3
00172 3000  
00173 0000  
00174 0003  #LIT,   F 4             / Literals. Too many cause ST overflow
00175 2000  
00176 0000  
00177 0003          F 5     /3
00200 2400  
00201 0000  
00202 0003          F 6     /6
00203 3000  
00204 0000  
00205 0004          F 8     /11
00206 2000  
00207 0000  
00210 0004          F 9     /14
00211 2200  
00212 0000  
00213 0004          F 10    /17
00214 2400  
00215 0000  
00216 0004          F 12    /22
00217 3000  
00220 0000  
00221 0004          F 15    /25
00222 3600  
00223 0000  
00224 0005          F 16    /30
00225 2000  
00226 0000  
00227 0005          F 17    /33
00230 2100  
00231 0000  
RALF V50A   24-JUL-20    PAGE 1-2

00232 0005          F 20    /36
00233 2400  
00234 0000  
00235 0005          F 22    /41
00236 2600  
00237 0000  
00240 0005          F 23    /44
00241 2700  
00242 0000  
00243 0005          F 24    /47
00244 3000  
00245 0000  
00246 0005          F 25    /52
00247 3100  
00250 0000  
00251 0005          F 26    /55
00252 3200  
00253 0000  
00254 0005          F 27    /60
00255 3300  
00256 0000  
00257 0005          F 30    /63
00260 3600  
00261 0000  
00262 0006          F 35    /66
00263 2140  
00264 0000  
00265 0006          F 37    /71
00266 2240  
00267 0000  
00270 0006          F 39    /74
00271 2340  
00272 0000  
00273 0006          F 40    /77
00274 2400  
00275 0000  
00276 0006          F 45    /102
00277 2640  
00300 0000  
00301 0006          F 49    /105
00302 3040  
00303 0000  
00304 0006          F 50    /110
00305 3100  
00306 0000  
00307 0006          F 54    /113
00310 3300  
00311 0000  
00312 0006          F 57    /116
00313 3440  
00314 0000  
00315 0006          F 58    /121
00316 3500  
00317 0000  
00320 0006          F 62    /124
00321 3700  
RALF V50A   24-JUL-20    PAGE 1-3

00322 0000  
00323 0007          F 65    /127
00324 2020  
00325 0000  
00326 0007          F 81    /132
00327 2420  
00330 0000  
00331 0010          F 202   /135
00332 3120  
00333 0000  
00334 0007          F 91    /140
00335 2660  
00336 0000  
00337 0007          F 92    /143
00340 2700  
00341 0000  
00342 0007          F 95    /146
00343 2760  
00344 0000  
00345 0007          F 99    /151
00346 3060  
00347 0000  
00350 0007          F 100   /154
00351 3100  
00352 0000  
00353 0007          F 105   /157
00354 3220  
00355 0000  
00356 0007          F 110   /162
00357 3340  
00360 0000  
00361 0007          F 115   /165
00362 3460  
00363 0000  
00364 0007          F 116   /170
00365 3500  
00366 0000  
00367 0007          F 117   /173
00370 3520  
00371 0000  
00372 0007          F 127   /176
00373 3760  
00374 0000  
00375 0010          F 128   /201
00376 2000  
00377 0000  
00400 0010          F 129   /204
00401 2010  
00402 0000  
00403 0010          F 130   /207
00404 2020  
00405 0000  
00406 0010          F 131   /212
00407 2030  
00410 0000  
00411 0010          F 132   /215
RALF V50A   24-JUL-20    PAGE 1-4

00412 2040  
00413 0000  
00414 0010          F 136   /220
00415 2100  
00416 0000  
00417 0010          F 140   /223
00420 2140  
00421 0000  
00422 0010          F 141   /226
00423 2150  
00424 0000  
00425 0010          F 143   /231
00426 2170  
00427 0000  
00430 0010          F 145   /234
00431 2210  
00432 0000  
00433 0010          F 162   /237
00434 2420  
00435 0000  
00436 0010          F 163   /242
00437 2430  
00440 0000  
00441 0010          F 165   /245
00442 2450  
00443 0000  
00444 0010          F 175   /250
00445 2570  
00446 0000  
00447 0010          F 184   /253
00450 2700  
00451 0000  
00452 0010          F 185   /256
00453 2710  
00454 0000  
00455 0010          F 186   /261
00456 2720  
00457 0000  
00460 0010          F 188   /264
00461 2740  
00462 0000  
00463 0010          F 192   /267
00464 3000  
00465 0000  
00466 0010          F 193   /272
00467 3010  
00470 0000  
00471 0010          F 197   /275
00472 3050  
00473 0000  
00474 0010          F 199   /300
00475 3070  
00476 0000  
00477 0010          F 201   /303
00500 3110  
00501 0000  
RALF V50A   24-JUL-20    PAGE 1-5

00502 0011          F 300   /306
00503 2260  
00504 0000  
00505 0011          F 500   /311
00506 3720  
00507 0000  
00510 0012          F 1000  /314
00511 3720  
00512 0000  
00513 0014          F 2500  /317
00514 2342  
00515 0000  
00516 0016          F 10000 /322
00517 2342  
00520 0000  
00521 0000  PCOND,  0                       /325
00522 1030          JA      COND-3
00523 2362  
00524 0000  PFIXD,  0                       /330
00525 1030          JA      FIXD-3
00526 1535  
00527 0000  PHINTS, 0                       /333
00530 1030          JA      HINTS-77
00531 3170  
00532 0000  PABB,   0                       /336
00533 1037          JA      ABB-3
00534 7775  
00535 0000  PPLAC,  0                       /341
00536 1030          JA      PLAC-3
00537 1061  
00540 0516  TENTE,  TEXT +ENTE  +           /344
00541 2405  
00542 4040  
00543 2017  TPOUR,  TEXT +POUR  +           /347
00544 2522  
00545 4040  
00546 2705  TWEST,  TEXT +WEST  +           /352
00547 2324  
00550 4040  
00551 7700  TQUES,  TEXT +?@    +           /355
00552 4040  
00553 4040  
00554 4256  TQDOT,  TEXT +".@   +           /360
00555 0040  
00556 4040  
00557 3105  TYES,   TEXT +YES   +           /363
00560 2340  
00561 4040  
00562 3105  TYE,    TEXT +YE    +           /366
00563 4040  
00564 4040  
00565 3140  TY,     TEXT +Y     +           /371
00566 4040  
00567 4040  
00570 0010          F 154                   /374
00571 2320  
RALF V50A   24-JUL-20    PAGE 1-6

00572 0000  
00573 0006          F 60                    /377
00574 3600  
00575 0000  
00576 0005          F 29                    /402
00577 3500  
00600 0000  
00601 0001  MINUS1, F -1.0
00602 6000  
00603 0000  
                    #LBL=.
                    COMMON  ABBCOM
            ABB,    ORG     .+702
                    COMMON  MISCOM
            LINUSE, ORG     .+3
            TRVS,   ORG     .+3
            CLSSES, ORG     .+3
            OLDLOC, ORG     .+3
            LOC,    ORG     .+3
            CVAL,   ORG     .+44
            TK,     ORG     .+74
            NEWLOC, ORG     .+3
            KEY,    ORG     .+702
            PLAC,   ORG     .+454
            FIXD,   ORG     .+454
            ACTSPK, ORG     .+151
            COND,   ORG     .+702
            HINTS,  ORG     .+360
            HNTMAX, ORG     .+3
            PROP,   ORG     .+454
            TALLY,  ORG     .+3
            TALLY2, ORG     .+3
            HINTLC, ORG     .+74
            CHLOC,  ORG     .+3
            CHLOC2, ORG     .+3
            DSEEN,  ORG     .+22
            DFLAG,  ORG     .+3
            DLOC,   ORG     .+22
            DALTLC, ORG     .+3
            KEYS,   ORG     .+3
            LAMP,   ORG     .+3
            GRATE,  ORG     .+3
            CAGE,   ORG     .+3
            ROD,    ORG     .+3
            ROD2,   ORG     .+3
            STEPS,  ORG     .+3
            BIRD,   ORG     .+3
            DOOR,   ORG     .+3
            PILLOW, ORG     .+3
            SNAKE,  ORG     .+3
            FISSUR, ORG     .+3
            TABLET, ORG     .+3
            CLAM,   ORG     .+3
            OYSTER, ORG     .+3
            MAGZIN, ORG     .+3
            DWARF,  ORG     .+3
RALF V50A   24-JUL-20    PAGE 1-7

            KNIFE,  ORG     .+3
            FOOD,   ORG     .+3
            BOTTLE, ORG     .+3
            WATER,  ORG     .+3
            OIL,    ORG     .+3
            PLANT,  ORG     .+3
            PLANT2, ORG     .+3
            AXE,    ORG     .+3
            MIRROR, ORG     .+3
            DRAGON, ORG     .+3
            CHASM,  ORG     .+3
            TROLL,  ORG     .+3
            TROLL2, ORG     .+3
            BEAR,   ORG     .+3
            MESSAG, ORG     .+3
            VEND,   ORG     .+3
            BATTER, ORG     .+3
            NUGGET, ORG     .+3
            COINS,  ORG     .+3
            CHEST,  ORG     .+3
            EGGS,   ORG     .+3
            TRIDNT, ORG     .+3
            VASE,   ORG     .+3
            EMRALD, ORG     .+3
            PYRAM,  ORG     .+3
            PEARL,  ORG     .+3
            RUG,    ORG     .+3
            CHAIN,  ORG     .+3
            BACK,   ORG     .+3
            LOOK,   ORG     .+3
            CAVE,   ORG     .+3
            NULL,   ORG     .+3
            ENTRNC, ORG     .+3
            DPRSSN, ORG     .+3
            SAY,    ORG     .+3
            LOCK,   ORG     .+3
            THROW,  ORG     .+3
            FIND,   ORG     .+3
            INVENT, ORG     .+3
            TURNS,  ORG     .+3
            LMWARN, ORG     .+3
            KNFLOC, ORG     .+3
            DETAIL, ORG     .+3
            ABBNUM, ORG     .+3
            NUMDIE, ORG     .+3
            MAXDIE, ORG     .+3
            DKILL,  ORG     .+3
            FOOBAR, ORG     .+3
            BONUS,  ORG     .+3
            CLOCK1, ORG     .+3
            CLOCK2, ORG     .+3
            CLOSNG, ORG     .+3
            PANIC,  ORG     .+3
            CLOSED, ORG     .+3
            GAVEUP, ORG     .+3
            SCORNG, ORG     .+3
RALF V50A   24-JUL-20    PAGE 1-8

            ODLOC,  ORG     .+22
            STREAM, ORG     .+3
            SPICES, ORG     .+3
            
                    COMMON  MISC2
            I,      ORG     .+3
                    ORG     .+3     /RTXSIZ
                    ORG     .+3     /CLSMAX
                    ORG     .+3     /LOCSIZ
            CTEXT,  ORG     .+44
            STEXT,  ORG     .+702
            LTEXT,  ORG     .+702
                    ORG     .+3     /SECT
            TRAVEL, ORG     .+1356
            TRVCON, ORG     .+1356
            TRVLOC, ORG     .+1356
            TRVSIZ, ORG     .+3
                    ORG     .+3     /TABNDX
            OBJ,    ORG     .+3
            J,      ORG     .+3
            K,      ORG     .+3
            VERB,   ORG     .+3
            HNTSIZ, ORG     .+3
            MAXTRS, ORG     .+3
            HINTED, ORG     .+74
                    ORG     .+3     /HNTLOC
            KK,     ORG     .+3
                    COMMON  PLACOM
            ATLOC,  ORG     .+702
            LINK,   ORG     .+1130
            PLACE,  ORG     .+454
            FIXED,  ORG     .+454
            HOLDNG, ORG     .+3
                    COMMON  PTXCOM
            PTEXT,  ORG     .+454
                    COMMON  TXTCOM
            RTEXT,  ORG     .+1147
                    ORG     .+44    /LINES
                    ORG     .+3     /ASCVAR
                    ORG     .+3     /TXTLOC
                    ORG     .+234   /DATA
                    COMMON  MISC3
            ATTACK, ORG     .+3
            DTOTAL, ORG     .+3
            OLDLC2, ORG     .+3
            LIMIT,  ORG     .+3
            MXSCOR, ORG     .+3
            SCORE,  ORG     .+3
            STICK,  ORG     .+3
            WZDARK, ORG     .+3
RALF V50A   24-JUL-20    PAGE 2

                    ORG     #LBL
            #25000,
            #RTN,   BASE    #BASE
00604 1030          JA      #GOBAK
00605 0057  
00606 0006  #ST,    STARTD
00607 0210          0210
00610 6400          FSTA    #GOBAK,0
00611 0057  
00612 0200          0200
00613 1100          SETX    #XR
00614 0002  
00615 1110          SETB    #BASE
00616 0023  
00617 0005          STARTF
00620 1030          JA      #STRT    /#G0001
00621 1077  
            /
            / Statement functions - called with JSA to save space
            /
            /       TOTING(OBJ)=PLACE(OBJ).EQ.-1
00622 0000  TOTING, 0;0
00623 0000  
00624 0023          ATX     3
00625 0430          FLDA    PLACE-3,3
00626 2027  
00627 1240          FADD    ONE
00630 1120          JSA     #EQ
00631 0000  
00632 1030          JA      TOTING
00633 0622  
            
            /       AT(OBJ)=PLACE(OBJ).EQ.LOC.OR.FIXED(OBJ).EQ.LOC
00634 0000  AT,     0;0
00635 0000  
00636 0023          ATX     3
00637 0430          FLDA    PLACE-3,3
00640 2027  
00641 2400          FSUB    LOC
00642 0014  
00643 1000          JEQ     ISAT
00644 0651  
00645 0430          FLDA    FIXED-3,3
00646 2503  
00647 2400          FSUB    LOC
00650 0014  
00651 1120  ISAT,   JSA     #EQ
00652 0000  
00653 1030          JA      AT
00654 0634  
            
            /       FORCED(LOC)=COND(LOC).EQ.2
00655 0000  FORCED, 0;0
00656 0000  
00657 0023          ATX     3
00660 0430          FLDA    COND-3,3
RALF V50A   24-JUL-20    PAGE 2-1

00661 2362  
00662 2241          FSUB    TWO
00663 1120          JSA     #EQ
00664 0000  
00665 1030          JA      FORCED
00666 0655  
            
            /       HERE(OBJ) = PLACE(OBJ).EQ.LOC .OR. TOTING(OBJ)
00667 0000  HERE,   0;0
00670 0000  
00671 1120          JSA     TOTING
00672 0622  
00673 1040          JNE     ISHERE
00674 0706  
00675 0400          FLDA    LOC
00676 0014  
00677 2430          FSUB    PLACE-3,3
00700 2027  
00701 1000          JEQ     ISHERE
00702 0706  
00703 0002          FCLA
00704 1030          JA      HERE
00705 0667  
00706 0240  ISHERE, FLDA    ONE
00707 1030          JA      HERE
00710 0667  
            
            / DARK(DUMMY)=MOD(COND(LOC),2).EQ.0.AND.(PROP(LAMP).EQ.0.OR.
            / 1     .NOT.HERE(LAMP))
            
00711 0000  DARK,   0;0
00712 0000  
            / .OR. .NOT. HERE(LAMP)
00713 0400          FLDA    LAMP
00714 4513  
00715 1120          JSA     HERE
00716 0667  
00717 1000          JEQ     NOTHR
00720 0730  
            / .OR. PROP(LAMP) EQ 0
00721 0400          FLDA    LAMP
00722 4513  
00723 0024          ATX     4
00724 0440          FLDA    PROP-3,4
00725 3647  
00726 1040          JNE     NOTDRK
00727 0752  
            / MOD(COND(LOC),2) .EQ. 0
00730 0400  NOTHR,  FLDA    LOC             / Either prop or not here
00731 0014  
00732 0024          ATX     4
00733 0440          FLDA    COND-3,4        / COND(LOC)
00734 2362  
00735 3241          FDIV    TWO             / Divided by two
00736 1120          JSA     #FIX
00737 0000  
RALF V50A   24-JUL-20    PAGE 2-2

00740 4241          FMUL    TWO
00741 6233          FSTA    #TMP+14
00742 0440          FLDA    COND-3,4        / Get back COND(LOC)
00743 2362  
00744 2233          FSUB    #TMP+14         / Now have mod
00745 1040          JNE     NOTDRK          / If not zero, not dark
00746 0752  
00747 0240          FLDA    ONE
00750 1030          JA      DARK
00751 0711  
00752 0002  NOTDRK, FCLA
00753 1030          JA      DARK
00754 0711  
            
            /       LIQ2(PBOTL)=(1-PBOTL)*WATER+(PBOTL/2)*(WATER+OIL)
00755 0000  LIQ2,   0;0
00756 0000  
00757 0240          FLDA    ONE
00760 2220          FSUB    PBOTL           / 1 - PBOTL
00761 4400          FMUL    WATER           / (1-PBOTL)*WATER
00762 4604  
00763 6233          FSTA    #TMP+14         / Store first term
00764 0220          FLDA    PBOTL
00765 3241          FDIV    TWO             / PBOTL/2
00766 1120          JSA     #FIX
00767 0000  
00770 6231          FSTA    #TMP+6
00771 0400          FLDA    WATER
00772 4604  
00773 1400          FADD    OIL             / WATER+OIL
00774 4607  
00775 4231          FMUL    #TMP+6          / (PBOTL/2)*(WATER+OIL)
00776 1233          FADD    #TMP+14
00777 1030          JA      LIQ2            / Done
01000 0755  
            
            /       LIQ(DUMMY)=LIQ2(MAX0(PROP(BOTTLE),-1-PROP(BOTTLE)))
01001 0000  LIQ,    0;0
01002 0000  
            /PROP(BOTTLE)
01003 0400          FLDA    BOTTLE
01004 4601  
01005 0025          ATX     5
01006 0450          FLDA    PROP-3,5        / PROP(BOTTLE)
01007 3647  
01010 6220          FSTA    PBOTL   
01011 0372          FLDA    MINUS1
01012 2220          FSUB    PBOTL           /-1-PROP(BOTTLE)
01013 6232          FSTA    #TMP+11
01014 0220          FLDA    PBOTL           / Find larger
01015 2232          FSUB    #TMP+11
01016 1060          JGT     .+4             / already larger, now PBOTL
01017 1022  
01020 0232          FLDA    #TMP+11
01021 6220          FSTA    PBOTL           / This is PBOTL
01022 1120          JSA     LIQ2            / Call LIQ2 with this
RALF V50A   24-JUL-20    PAGE 2-3

01023 0755  
01024 1030          JA      LIQ             / And return
01025 1001  
            
            /       LIQLOC(LOC)=LIQ2((MOD(COND(LOC)/2*2,8)-5)*MOD(COND(LOC)/4,2)+1)
01026 0000  LIQLOC, 0;0
01027 0000  
01030 0400          FLDA    LOC             / Always called with LOC as arg
01031 0014  
01032 0022          ATX     2
01033 0420          FLDA    COND-3,2        / COND(LOC)
01034 2362  
01035 6232          FSTA    #TMP+11         / Save that
01036 3241          FDIV    TWO
01037 1120          JSA     #FIX            / COND(LOC)/2
01040 0000  
01041 4241          FMUL    TWO             / COND(LOC)/2*2
01042 6234          FSTA    #TMP+17
01043 3246          FDIV    #LIT+11         / Modulo 8
01044 1120          JSA     #FIX
01045 0000  
01046 4246          FMUL    #LIT+11
01047 6235          FSTA    #TMP+22
01050 0234          FLDA    #TMP+17
01051 2235          FSUB    #TMP+22         / MOD(...)
01052 2244          FSUB    #LIT+3          / -5.
01053 6236          FSTA    #TMP+25         / First Term
01054 0232          FLDA    #TMP+11         / COND(LOC)
01055 3243          FDIV    #LIT            / COND(LOC)/4
01056 1120          JSA     #FIX
01057 0000  
01060 6234          FSTA    #TMP+17
01061 3241          FDIV    TWO             / Mod 2
01062 1120          JSA     #FIX
01063 0000  
01064 4241          FMUL    TWO
01065 6235          FSTA    #TMP+22
01066 0234          FLDA    #TMP+17
01067 2235          FSUB    #TMP+22
01070 4236          FMUL    #TMP+25         / Multiply
01071 1240          FADD    ONE             / +1
01072 6220          FSTA    PBOTL           / Finally got the term
01073 1120          JSA     LIQ2            / Send to LIQ2
01074 0755  
01075 1030          JA      LIQLOC
01076 1026  
RALF V50A   24-JUL-20    PAGE 3

            /
            / Main routine entry point
            /
            #STRT,  
            /1       I=RND(1)
01077 1130  #1,     JSR     RND
01100 0000  
01101 1030          JA      .+4
01102 1105  
01103 1030          JA      ONE
01104 0163  
01105 6400          FSTA    I
01106 0000  
            /       HINTED(3)=YES(65,1,0)
01107 0107          LDX     3,7
01110 0003  
01111 1130          JSR     YES
01112 0000  
01113 1030          JA      .+10
01114 1123  
01115 1030          JA      #LIT+127
01116 0323  
01117 1030          JA      ONE
01120 0163  
01121 1030          JA      ZERO
01122 0160  
01123 6470          FSTA    HINTED-3,7
01124 6226  
            /       NEWLOC=1
01125 0240          FLDA    ONE
01126 6400          FSTA    NEWLOC
01127 0157  
            /       LOC = NEWLOC
01130 6400          FSTA    LOC
01131 0014  
            /       LIMIT=330
01132 0100          LDX     512,0   /330
01133 0512  
01134 0030          XTA     0
01135 6400          FSTA    LIMIT
01136 0011  
            /       IF(HINTED(3))LIMIT=1000
01137 0470          FLDA    HINTED-3,7
01140 6226  
01141 1000          JEQ     #2
01142 1146  
01143 0347          FLDA    #LIT+314
01144 6400          FSTA    LIMIT
01145 0011  
            /2       IF(NEWLOC.GE.9.OR.NEWLOC.EQ.0.OR..NOT.CLOSNG)GOTO 71
01146 0400  #2,     FLDA    NEWLOC
01147 0157  
01150 2247          FSUB    #LIT+14
01151 1010          JGE     #71
01152 1207  
01153 0400          FLDA    NEWLOC
RALF V50A   24-JUL-20    PAGE 3-1

01154 0157  
01155 1000          JEQ     #71
01156 1207  
01157 0400          FLDA    CLOSNG
01160 5024  
01161 1000          JEQ     #71
01162 1207  
            /       CALL RSPEAK(130)
01163 1130          JSR     RSPEAK
01164 0000  
01165 1030          JA      .+4
01166 1171  
01167 1030          JA      #LIT+207
01170 0403  
            /       NEWLOC=LOC
01171 0400          FLDA    LOC
01172 0014  
01173 6400          FSTA    NEWLOC
01174 0157  
            /       IF(.NOT.PANIC)CLOCK2=15
01175 0400          FLDA    PANIC
01176 5027  
01177 1040          JNE     .+5
01200 1204  
01201 0252          FLDA    #LIT+25
01202 6400          FSTA    CLOCK2
01203 5021  
            /       PANIC=.TRUE.
01204 0240          FLDA    ONE
01205 6400          FSTA    PANIC
01206 5027  
            /C
            /C SEE IF A DWARF HAS SEEN HIM AND HAS COME FROM WHERE HE WANTS TO GO. IF SO,
            /C THE DWARF'S BLOCKING HIS WAY. IF COMING FROM PLACE FORBIDDEN TO PIRATE
            /C (DWARVES ROOTED IN PLACE) LET HIM GET OUT (AND ATTACKED).
            /C
            /71      IF(NEWLOC.EQ.LOC.OR.FORCED(LOC).OR.BITSET(LOC,3))GOTO 74
01207 0400  #71,    FLDA    NEWLOC
01210 0157  
01211 2400          FSUB    LOC
01212 0014  
01213 1000          JEQ     #74
01214 1301  
01215 0400          FLDA    LOC
01216 0014  
01217 1120          JSA     FORCED
01220 0655  
01221 1040          JNE     #74
01222 1301  
01223 1130          JSR     BITSET
01224 0000  
01225 1030          JA      .+6
01226 1233  
01227 1030          JA      LOC
01230 0014  
01231 1030          JA      THREE
RALF V50A   24-JUL-20    PAGE 3-2

01232 0171  
01233 1040          JNE     #74
01234 1301  
            /       DO 73 I=1,5
01235 0240          FLDA    ONE
01236 6400          FSTA    I
01237 0000  
            
            /       IF(ODLOC(I).NE.NEWLOC.OR..NOT.DSEEN(I))GOTO 73
01240 0400  #G0047, FLDA    I
01241 0000  
01242 0027          ATX     7
01243 0470          FLDA    ODLOC-3,7
01244 5040  
01245 2400          FSUB    NEWLOC
01246 0157  
01247 1040          JNE     #73
01250 1271  
01251 0470          FLDA    DSEEN-3,7
01252 4433  
01253 1000          JEQ     #73
01254 1271  
            /       NEWLOC=LOC
01255 0400          FLDA    LOC
01256 0014  
01257 6400          FSTA    NEWLOC
01260 0157  
            /       CALL RSPEAK(2)
01261 1130          JSR     RSPEAK
01262 0000  
01263 1030          JA      .+4
01264 1267  
01265 1030          JA      TWO
01266 0166  
            /       GOTO 74
01267 1030          JA      #74
01270 1301  
            /73      CONTINUE
01271 0400  #73,    FLDA    I
01272 0000  
01273 1240          FADD    ONE
01274 6400          FSTA    I
01275 0000  
01276 2244          FSUB    #LIT+3
01277 1020          JLE     #G0047
01300 1240  
            
01301 0400  #74,    FLDA    NEWLOC
01302 0157  
01303 6400          FSTA    LOC
01304 0014  
            /C
            /C DWARF STUFF. SEE EARLIER COMMENTS FOR DESCRIPTION OF VARIABLES. REMEMBER
            /C SIXTH DWARF IS PIRATE AND IS THUS VERY DIFFERENT EXCEPT FOR MOTION RULES.
            /C
            /C FIRST OFF, DON'T LET THE DWARVES FOLLOW HIM INTO A PIT OR A WALL. ACTIVATE
RALF V50A   24-JUL-20    PAGE 3-3

            /C THE WHOLE MESS THE FIRST TIME HE GETS AS FAR AS THE HALL OF MISTS (LOC 15).
            /C IF NEWLOC IS FORBIDDEN TO PIRATE (IN PARTICULAR, IF IT'S BEYOND THE TROLL
            /C BRIDGE), BYPASS DWARF STUFF. THAT WAY PIRATE CAN'T STEAL RETURN TOLL, AND
            /C DWARVES CAN'T MEET THE BEAR. ALSO MEANS DWARVES WON'T FOLLOW HIM INTO DEAD
            /C END IN MAZE, BUT C'EST LA VIE. THEY'LL WAIT FOR HIM OUTSIDE THE DEAD END.
            /C
            /       IF(LOC.EQ.0.OR.FORCED(LOC).OR.BITSET(NEWLOC,3))GOTO 2000
01305 1000          JEQ     #2000
01306 2760  
01307 0400          FLDA    LOC
01310 0014  
01311 1120          JSA     FORCED
01312 0655  
01313 1040          JNE     #2000
01314 2760  
01315 1130          JSR     BITSET
01316 0000  
01317 1030          JA      .+6
01320 1325  
01321 1030          JA      NEWLOC
01322 0157  
01323 1030          JA      THREE
01324 0171  
01325 1040          JNE     #2000
01326 2760  
            /       IF(DFLAG.NE.0)GOTO 6000
01327 0400          FLDA    DFLAG
01330 4460  
01331 1040          JNE     #6000
01332 1345  
            /       IF(LOC.GE.15)DFLAG=1
01333 0400          FLDA    LOC
01334 0014  
01335 2252          FSUB    #LIT+25
01336 1050          JLT     #2000
01337 2760  
01340 0240          FLDA    ONE
01341 6400          FSTA    DFLAG
01342 4460  
            /       GOTO 2000
01343 1030          JA      #2000
01344 2760  
            
            /C
            /C WHEN WE ENCOUNTER THE FIRST DWARF, WE KILL 0, 1, OR 2 OF THE 5 DWARVES. IF
            /C ANY OF THE SURVIVORS IS AT LOC, REPLACE HIM WITH THE ALTERNATE.
            /C
            /6000    IF(DFLAG.NE.1)GOTO 6010
01345 0400  #6000,  FLDA    DFLAG
01346 4460  
01347 2240          FSUB    ONE
01350 1040          JNE     #6010
01351 1511  
            /       IF(LOC.LT.15.OR.PCT(95))GOTO 2000
01352 0400          FLDA    LOC
01353 0014  
RALF V50A   24-JUL-20    PAGE 3-4

01354 2252          FSUB    #LIT+25
01355 1050          JLT     #2000
01356 2760  
01357 1130          JSR     PCT
01360 0000  
01361 1030          JA      .+4
01362 1365  
01363 1030          JA      #LIT+146
01364 0342  
01365 1040          JNE     #2000
01366 2760  
            /       DFLAG=2
01367 0241          FLDA    TWO
01370 6400          FSTA    DFLAG
01371 4460  
            /       DO 6001 I=1,2
01372 0240          FLDA    ONE
01373 6400          FSTA    I
01374 0000  
            
            /       J=1+RND(5)
01375 1130  #G0051, JSR     RND
01376 0000  
01377 1030          JA      .+4
01400 1403  
01401 1030          JA      #LIT+3
01402 0177  
01403 1240          FADD    ONE
01404 6400          FSTA    J
01405 6212  
            
            /6001    IF(PCT(50))DLOC(J)=0
01406 1130  #6001,  JSR     PCT
01407 0000  
01410 1030          JA      .+4
01411 1414  
01412 1030          JA      #LIT+110
01413 0304  
01414 1000          JEQ     .+10
01415 1424  
01416 0400          FLDA    J
01417 6212  
01420 0027          ATX     7
01421 0002          FCLA
01422 6470          FSTA    DLOC-3,7
01423 4460  
01424 0400          FLDA    I
01425 0000  
01426 1240          FADD    ONE
01427 6400          FSTA    I
01430 0000  
01431 2241          FSUB    TWO
01432 1020          JLE     #G0051
01433 1375  
            /       DO 6002 I=1,5
01434 0240          FLDA    ONE
RALF V50A   24-JUL-20    PAGE 3-5

01435 6400          FSTA    I
01436 0000  
            
            /       IF(DLOC(I).EQ.LOC)DLOC(I)=DALTLC
01437 0400  #G0053, FLDA    I
01440 0000  
01441 0027          ATX     7
01442 0470          FLDA    DLOC-3,7
01443 4460  
01444 2400          FSUB    LOC
01445 0014  
01446 1040          JNE     #6002
01447 1454  
01450 0400          FLDA    DALTLC
01451 4505  
01452 6470          FSTA    DLOC-3,7
01453 4460  
            /6002    ODLOC(I)=DLOC(I)
01454 0400  #6002,  FLDA    I
01455 0000  
01456 0027          ATX     7
01457 0470          FLDA    DLOC-3,7
01460 4460  
01461 6470          FSTA    ODLOC-3,7
01462 5040  
01463 0400          FLDA    I
01464 0000  
01465 1240          FADD    ONE
01466 6400          FSTA    I
01467 0000  
01470 2244          FSUB    #LIT+3
01471 1020          JLE     #G0053
01472 1437  
            /       CALL RSPEAK(3)
01473 1130          JSR     RSPEAK
01474 0000  
01475 1030          JA      .+4
01476 1501  
01477 1030          JA      THREE
01500 0171  
            /       CALL DROP(AXE,LOC)
01501 1130          JSR     DROP
01502 0000  
            /       GOTO 2000
01503 1030          JA      #2000
01504 2760  
01505 1030          JA      AXE
01506 4620  
01507 1030          JA      LOC
01510 0014  
            
            /C
            /C THINGS ARE IN FULL SWING. MOVE EACH DWARF AT RANDOM, EXCEPT IF HE'S SEEN US
            /C HE STICKS WITH US. DWARVES NEVER GO TO LOCS <15. IF WANDERING AT RANDOM,
            /C THEY DON'T BACK UP UNLESS THERE'S NO ALTERNATIVE. IF THEY DON'T HAVE TO
            /C MOVE, THEY ATTACK. AND, OF COURSE, DEAD DWARVES DON'T DO MUCH OF ANYTHING.
RALF V50A   24-JUL-20    PAGE 3-6

            /C
            /6010    DTOTAL=0
01511 0002  #6010,  FCLA
01512 6400          FSTA    DTOTAL
01513 0003  
            /       ATTACK=0
01514 6400          FSTA    ATTACK
01515 0000  
            /       STICK=0
01516 6400          FSTA    STICK
01517 0022  
            /       DO 6030 I=1,6
01520 0240          FLDA    ONE
01521 6400          FSTA    I
01522 0000  
            /        IF (DLOC(I).EQ.0)GOTO 6030
01523 0400  #G0055, FLDA    I
01524 0000  
01525 0027          ATX     7
01526 0470          FLDA    DLOC-3,7
01527 4460  
01530 1000          JEQ     #6030
01531 2522  
            /       J=1
01532 0240          FLDA    ONE
01533 6400          FSTA    J
01534 6212  
            /       KK=DLOC(I)
01535 0470          FLDA    DLOC-3,7
01536 4460  
01537 6400          FSTA    KK
01540 6330  
            /       KK=KEY(KK)
01541 0027          ATX     7
01542 0470          FLDA    KEY-3,7
01543 0157  
01544 6400          FSTA    KK
01545 6330  
            /       IF(KK.EQ.0)GOTO 6016
01546 1000          JEQ     #6016
01547 1736  
            
            /6012    NEWLOC=TRVLOC(KK)
01550 1130  #6012,  JSR     GETWRD
01551 0000  
01552 1030          JA      .+10
01553 1562  
01554 1030          JA      TRVLOC
01555 4623  
01556 1030          JA      KK
01557 6330  
01560 1030          JA      ZERO
01561 0160  
01562 6400          FSTA    NEWLOC
01563 0157  
            /       IF(NEWLOC.GT.300.OR.NEWLOC.LT.15.OR.NEWLOC.EQ.ODLOC(I)
RALF V50A   24-JUL-20    PAGE 3-7

            /       1       .OR.(J.GT.1.AND.NEWLOC.EQ.TK(J-1)).OR.J.GE.20
            /       2       .OR.NEWLOC.EQ.DLOC(I).OR.FORCED(NEWLOC)
            /       3       .OR.(I.EQ.6.AND.BITSET(NEWLOC,3))
            /       4       .OR.TRVCON(KK).EQ.100)GOTO 6014
01564 2345          FSUB    #LIT+306
01565 1060          JGT     #6014
01566 1713  
01567 0400          FLDA    NEWLOC
01570 0157  
01571 2252          FSUB    #LIT+25
01572 1050          JLT     #6014
01573 1713  
01574 0400          FLDA    I
01575 0000  
01576 0027          ATX     7
01577 0400          FLDA    NEWLOC
01600 0157  
01601 2470          FSUB    ODLOC-3,7
01602 5040  
01603 1000          JEQ     #6014
01604 1713  
01605 0400          FLDA    J
01606 6212  
01607 2240          FSUB    ONE
01610 1020          JLE     .+11
01611 1621  
01612 0026          ATX     6
01613 0400          FLDA    NEWLOC
01614 0157  
01615 2460          FSUB    TK-3,6
01616 0060  
01617 1000          JEQ     #6014
01620 1713  
01621 0400          FLDA    J
01622 6212  
01623 2255          FSUB    #LIT+36
01624 1010          JGE     #6014
01625 1713  
01626 0400          FLDA    I
01627 0000  
01630 0027          ATX     7
01631 0400          FLDA    NEWLOC
01632 0157  
01633 2470          FSUB    DLOC-3,7
01634 4460  
01635 1000          JEQ     #6014
01636 1713  
01637 0400          FLDA    NEWLOC
01640 0157  
01641 1120          JSA     FORCED
01642 0655  
01643 1040          JNE     #6014
01644 1713  
01645 0400          FLDA    I
01646 0000  
01647 2245          FSUB    #LIT+6
RALF V50A   24-JUL-20    PAGE 3-8

01650 1040          JNE     .+14
01651 1664  
01652 1130          JSR     BITSET
01653 0000  
01654 1030          JA      .+6
01655 1662  
01656 1030          JA      NEWLOC
01657 0157  
01660 1030          JA      THREE
01661 0171  
01662 1040          JNE     #6014
01663 1713  
01664 1130          JSR     GETWRD
01665 0000  
01666 1030          JA      .+10
01667 1676  
01670 1030          JA      TRVCON
01671 3245  
01672 1030          JA      KK
01673 6330  
01674 1030          JA      ZERO
01675 0160  
01676 2307          FSUB    #LIT+154
01677 1000          JEQ     #6014
01700 1713  
            /       TK(J)=NEWLOC
01701 0400          FLDA    J
01702 6212  
01703 0027          ATX     7
01704 0400          FLDA    NEWLOC
01705 0157  
01706 6470          FSTA    TK-3,7
01707 0060  
            /       J=J+1
01710 0240          FLDA    ONE
01711 5400          FADDM   J
01712 6212  
            
            /6014    KK=KK+1
01713 0400  #6014,  FLDA    KK
01714 6330  
01715 1240          FADD    ONE
01716 6400          FSTA    KK
01717 6330  
            /       IF(TRAVEL(KK-1).GE.0)GOTO 6012
01720 2240          FSUB    ONE
01721 6227          FSTA    #TMP
01722 1130          JSR     GETWRD
01723 0000  
01724 1030          JA      .+10
01725 1734  
01726 1030          JA      TRAVEL
01727 1667  
01730 1030          JA      #TMP
01731 0130  
01732 1030          JA      ZERO
RALF V50A   24-JUL-20    PAGE 3-9

01733 0160  
01734 1010          JGE     #6012
01735 1550  
            /6016    TK(J)=ODLOC(I)
01736 0400  #6016,  FLDA    J
01737 6212  
01740 0026          ATX     6
01741 0400          FLDA    I
01742 0000  
01743 0027          ATX     7
01744 0470          FLDA    ODLOC-3,7
01745 5040  
01746 6460          FSTA    TK-3,6
01747 0060  
            /       IF(J.GE.2)J=J-1
01750 0400          FLDA    J
01751 6212  
01752 2241          FSUB    TWO
01753 1050          JLT     .+5
01754 1760  
01755 0372          FLDA    MINUS1
01756 5400          FADDM   J
01757 6212  
            /       J=1+RND(J)
01760 1130          JSR     RND
01761 0000  
01762 1030          JA      .+4
01763 1766  
01764 1030          JA      J
01765 6212  
01766 1240          FADD    ONE
01767 6400          FSTA    J
01770 6212  
            /       ODLOC(I)=DLOC(I)
01771 0470          FLDA    DLOC-3,7
01772 4460  
01773 6470          FSTA    ODLOC-3,7
01774 5040  
            /       DLOC(I)=TK(J)
01775 0400          FLDA    J
01776 6212  
01777 0026          ATX     6
02000 0460          FLDA    TK-3,6
02001 0060  
02002 6470          FSTA    DLOC-3,7
02003 4460  
            /       DSEEN(I)=(DSEEN(I).AND.LOC.GE.15)
            /       1       .OR.(DLOC(I).EQ.LOC.OR.ODLOC(I).EQ.LOC)
02004 0400          FLDA    LOC
02005 0014  
02006 2252          FSUB    #LIT+25
02007 1050          JLT     .+6
02010 2015  
02011 0470          FLDA    DSEEN-3,7
02012 4433  
02013 1040          JNE     .+21
RALF V50A   24-JUL-20    PAGE 3-10

02014 2034  
02015 0470          FLDA    DLOC-3,7
02016 4460  
02017 2400          FSUB    LOC
02020 0014  
02021 1000          JEQ     .+13
02022 2034  
02023 0470          FLDA    ODLOC-3,7
02024 5040  
02025 2400          FSUB    LOC
02026 0014  
02027 1000          JEQ     .+5
02030 2034  
02031 0002          FCLA
02032 1030          JA      .+3
02033 2035  
02034 0240          FLDA    ONE
02035 6470          FSTA    DSEEN-3,7
02036 4433  
            /       IF(.NOT.DSEEN(I))GOTO 6030
02037 1000          JEQ     #6030
02040 2522  
            /       DLOC(I)=LOC
02041 0400          FLDA    LOC
02042 0014  
02043 6470          FSTA    DLOC-3,7
02044 4460  
            /       IF(I.NE.6)GOTO 6027
02045 0400          FLDA    I
02046 0000  
02047 2245          FSUB    #LIT+6
02050 1040          JNE     #6027
02051 2452  
            /C
            /C THE PIRATE'S SPOTTED HIM. HE LEAVES HIM ALONE ONCE WE'VE FOUND CHEST.
            /C K COUNTS IF A TREASURE IS HERE. IF NOT, AND TALLY=TALLY2 PLUS ONE FOR
            /C AN UNSEEN CHEST, LET THE PIRATE BE SPOTTED.
            /C
            /       IF(LOC.EQ.CHLOC.OR.PROP(CHEST).GE.0)GOTO 6030
            
02052 0400          FLDA    LOC
02053 0014  
02054 2400          FSUB    CHLOC
02055 4430  
02056 1000          JEQ     #6030
02057 2522  
02060 0400          FLDA    CHEST
02061 4664  
02062 0027          ATX     7
02063 0470          FLDA    PROP-3,7
02064 3647  
02065 1010          JGE     #6030
02066 2522  
            /       K=0
02067 0002          FCLA
02070 6400          FSTA    K
RALF V50A   24-JUL-20    PAGE 3-11

02071 6215  
            /       DO 6020 J=50,MAXTRS
02072 0273          FLDA    #LIT+110
02073 6400          FSTA    J
02074 6212  
            /C
            /C PIRATE WON'T TAKE PYRAMID FROM PLOVER ROOM OR DARK ROOM (TOO EASY!).
            /C
            /       IF(J.EQ.PYRAM.AND.(LOC.EQ.PLAC(PYRAM)
            /       1       .OR.LOC.EQ.PLAC(EMRALD)))GOTO 6020
02075 0400  #G0057, FLDA    J
02076 6212  
02077 2400          FSUB    PYRAM
02100 4703  
02101 1040          JNE     .+13
02102 2114  
02103 0400          FLDA    PYRAM
02104 4703  
02105 0027          ATX     7
02106 0400          FLDA    LOC
02107 0014  
02110 2470          FSUB    PLAC-3,7
02111 1061  
02112 1000          JEQ     #6020
02113 2133  
02114 0400          FLDA    EMRALD
02115 4700  
02116 0026          ATX     6
02117 0400          FLDA    LOC
02120 0014  
02121 2460          FSUB    PLAC-3,6
02122 1061  
02123 1000          JEQ     #6020
02124 2133  
            /       IF(TOTING(J))GOTO 6022
02125 0400          FLDA    J
02126 6212  
02127 1120          JSA     TOTING
02130 0622  
02131 1040          JNE     #6022
02132 2243  
            
            /6020    IF(HERE(J))K=1
02133 0400  #6020,  FLDA    J
02134 6212  
02135 1120          JSA     HERE
02136 0667  
02137 1000          JEQ     .+5
02140 2144  
02141 0240          FLDA    ONE
02142 6400          FSTA    K
02143 6215  
02144 0400          FLDA    J
02145 6212  
02146 1240          FADD    ONE
02147 6400          FSTA    J
RALF V50A   24-JUL-20    PAGE 3-12

02150 6212  
02151 2400          FSUB    MAXTRS
02152 6226  
02153 1020          JLE     #G0057
02154 2075  
            /       IF(TALLY.EQ.TALLY2+1.AND.K.EQ.0.AND.PLACE(CHEST).EQ.0
            /       1       .AND.HERE(LAMP).AND.PROP(LAMP).EQ.1)GOTO 6025
02155 0400          FLDA    TALLY2
02156 4331  
02157 1240          FADD    ONE
02160 2400          FSUB    TALLY
02161 4326  
02162 1040          JNE     #M4
02163 2215  
02164 0400          FLDA    K
02165 6215  
02166 1040          JNE     #M4
02167 2215  
02170 0400          FLDA    CHEST
02171 4664  
02172 0027          ATX     7
02173 0470          FLDA    PLACE-3,7
02174 2027  
02175 1040          JNE     #M4
02176 2215  
02177 0400          FLDA    LAMP
02200 4513  
02201 1120          JSA     HERE
02202 0667  
02203 1000          JEQ     #M4
02204 2215  
02205 0400          FLDA    LAMP
02206 4513  
02207 0026          ATX     6
02210 0460          FLDA    PROP-3,6
02211 3647  
02212 2240          FSUB    ONE
02213 1000          JEQ     #6025
02214 2424  
            /       IF(ODLOC(6).NE.DLOC(6).AND.PCT(20))CALL RSPEAK(127)
02215 0245  #M4,    FLDA    #LIT+6
02216 0027          ATX     7
02217 0470          FLDA    ODLOC-3,7
02220 5040  
02221 2470          FSUB    DLOC-3,7
02222 4460  
02223 1000          JEQ     #6030
02224 2522  
02225 1130          JSR     PCT
02226 0000  
02227 1030          JA      .+4
02230 2233  
02231 1030          JA      #LIT+36
02232 0232  
02233 1000          JEQ     #6030
02234 2522  
RALF V50A   24-JUL-20    PAGE 3-13

02235 1130          JSR     RSPEAK
02236 0000  
            /       GOTO 6030
02237 1030          JA      #6030
02240 2522  
02241 1030          JA      #LIT+176
02242 0372  
            /C
            /6022    CALL RSPEAK(128)
02243 1130  #6022,  JSR     RSPEAK
02244 0000  
02245 1030          JA      .+4
02246 2251  
02247 1030          JA      #LIT+201
02250 0375  
            /C
            /C DON'T STEAL CHEST BACK FROM TROLL!
            /C
            /       IF(PLACE(MESSAG).EQ.0)CALL MOVE(CHEST,CHLOC)
02251 0400          FLDA    MESSAG
02252 4645  
02253 0027          ATX     7
02254 0470          FLDA    PLACE-3,7
02255 2027  
02256 1040          JNE     .+12
02257 2270  
02260 1130          JSR     MOVE
02261 0000  
02262 1030          JA      .+6
02263 2270  
02264 1030          JA      CHEST
02265 4664  
02266 1030          JA      CHLOC
02267 4430  
            /       CALL MOVE(MESSAG,CHLOC2)
02270 1130          JSR     MOVE
02271 0000  
02272 1030          JA      .+6
02273 2300  
02274 1030          JA      MESSAG
02275 4645  
02276 1030          JA      CHLOC2
02277 4433  
            /       DO 6023 J=50,MAXTRS
02300 0273          FLDA    #LIT+110
02301 6400          FSTA    J
02302 6212  
            
            /       IF(J.EQ.PYRAM.AND.(LOC.EQ.PLAC(PYRAM)
            /       1       .OR.LOC.EQ.PLAC(EMRALD)))GOTO 6023
02303 0400  #G0063, FLDA    J
02304 6212  
02305 2400          FSUB    PYRAM
02306 4703  
02307 1040          JNE     .+13
02310 2322  
RALF V50A   24-JUL-20    PAGE 3-14

02311 0400          FLDA    PYRAM
02312 4703  
02313 0027          ATX     7
02314 0400          FLDA    LOC
02315 0014  
02316 2470          FSUB    PLAC-3,7
02317 1061  
02320 1000          JEQ     #6023
02321 2376  
02322 0400          FLDA    EMRALD
02323 4700  
02324 0026          ATX     6
02325 0400          FLDA    LOC
02326 0014  
02327 2460          FSUB    PLAC-3,6
02330 1061  
02331 1000          JEQ     #6023
02332 2376  
            /       IF(AT(J).AND.FIXED(J).EQ.0)CALL CARRY(J,LOC)
02333 0400          FLDA    J
02334 6212  
02335 1120          JSA     AT
02336 0634  
02337 1000          JEQ     .+21
02340 2360  
02341 0400          FLDA    J
02342 6212  
02343 0027          ATX     7
02344 0470          FLDA    FIXED-3,7
02345 2503  
02346 1040          JNE     .+12
02347 2360  
02350 1130          JSR     CARRY
02351 0000  
02352 1030          JA      .+6
02353 2360  
02354 1030          JA      J
02355 6212  
02356 1030          JA      LOC
02357 0014  
            /       IF(TOTING(J))CALL DROP(J,CHLOC)
02360 0400          FLDA    J
02361 6212  
02362 1120          JSA     TOTING
02363 0622  
02364 1000          JEQ     #6023
02365 2376  
02366 1130          JSR     DROP
02367 0000  
02370 1030          JA      .+6
02371 2376  
02372 1030          JA      J
02373 6212  
02374 1030          JA      CHLOC
02375 4430  
            /6023    CONTINUE
RALF V50A   24-JUL-20    PAGE 3-15

02376 0400  #6023,  FLDA    J
02377 6212  
02400 1240          FADD    ONE
02401 6400          FSTA    J
02402 6212  
02403 2400          FSUB    MAXTRS
02404 6226  
02405 1020          JLE     #G0063
02406 2303  
            
            /6024    DLOC(6)=CHLOC
02407 0245  #6024,  FLDA    #LIT+6
02410 0027          ATX     7
02411 0400          FLDA    CHLOC
02412 4430  
02413 6470          FSTA    DLOC-3,7
02414 4460  
            /       ODLOC(6)=CHLOC
02415 6470          FSTA    ODLOC-3,7
02416 5040  
            /       DSEEN(6)=.FALSE.
02417 0002          FCLA
02420 6470          FSTA    DSEEN-3,7
02421 4433  
            /       GOTO 6030
02422 1030          JA      #6030
02423 2522  
            
            /C
            /6025    CALL RSPEAK(186)
            
02424 1130  #6025,  JSR     RSPEAK
02425 0000  
02426 1030          JA      .+4
02427 2432  
02430 1030          JA      #LIT+261
02431 0455  
            /       CALL MOVE(CHEST,CHLOC)
02432 1130          JSR     MOVE
02433 0000  
02434 1030          JA      .+6
02435 2442  
02436 1030          JA      CHEST
02437 4664  
02440 1030          JA      CHLOC
02441 4430  
            /       CALL MOVE(MESSAG,CHLOC2)
02442 1130          JSR     MOVE
02443 0000  
            /       GOTO 6024
02444 1030          JA      #6024
02445 2407  
02446 1030          JA      MESSAG
02447 4645  
02450 1030          JA      CHLOC2
02451 4433  
RALF V50A   24-JUL-20    PAGE 3-16

            
            /C
            /C THIS THREATENING LITTLE DWARF IS IN THE ROOM WITH HIM!
            /C
            /6027    DTOTAL=DTOTAL+1
02452 0240  #6027,  FLDA    ONE
02453 5400          FADDM   DTOTAL
02454 0003  
            /       IF(ODLOC(I).NE.DLOC(I))GOTO 6030
02455 0400          FLDA    I
02456 0000  
02457 0027          ATX     7
02460 0470          FLDA    ODLOC-3,7
02461 5040  
02462 2470          FSUB    DLOC-3,7
02463 4460  
02464 1040          JNE     #6030
02465 2522  
            /       ATTACK=ATTACK+1
02466 0240          FLDA    ONE
02467 5400          FADDM   ATTACK
02470 0000  
            /       IF(KNFLOC.GE.0)KNFLOC=LOC
02471 0400          FLDA    KNFLOC
02472 4766  
02473 1050          JLT     .+6
02474 2501  
02475 0400          FLDA    LOC
02476 0014  
02477 6400          FSTA    KNFLOC
02500 4766  
            /       IF(RND(1000).LT.95*(DFLAG-2))STICK=STICK+1
02501 1130          JSR     RND
02502 0000  
02503 1030          JA      .+4
02504 2507  
02505 1030          JA      #LIT+314
02506 0510  
02507 6227          FSTA    #TMP
02510 0400          FLDA    DFLAG
02511 4460  
02512 2241          FSUB    TWO
02513 4305          FMUL    #LIT+146
02514 2227          FSUB    #TMP
02515 1050          JLT     #6030
02516 2522  
02517 0240          FLDA    ONE
02520 5400          FADDM   STICK
02521 0022  
            /6030    CONTINUE
02522 0400  #6030,  FLDA    I
02523 0000  
02524 1240          FADD    ONE
02525 6400          FSTA    I
02526 0000  
02527 2245          FSUB    #LIT+6
RALF V50A   24-JUL-20    PAGE 3-17

02530 1020          JLE     #G0055
02531 1523  
            /C
            /C NOW WE KNOW WHAT'S HAPPENING. LET'S TELL THE POOR SUCKER ABOUT IT.
            /C
            /       IF(DTOTAL.EQ.0)GOTO 2000
02532 0400          FLDA    DTOTAL
02533 0003  
02534 1000          JEQ     #2000
02535 2760  
            /       IF(DTOTAL.EQ.1)GOTO 75
02536 2240          FSUB    ONE
02537 1000          JEQ     #75
02540 2601  
            /       TYPE 67,DTOTAL
            /67      FORMAT(' There are ',I1,' threatening little dwarves in the'
            /       1       ,' room with you.')
            
02541 1130          JSR     SIXOUT
02542 0000  
02543 1030          JA      .+10
02544 2553  
02545 1031          JA      #67A
02546 7676  
02547 1030          JA      ZERO
02550 0160  
02551 1030          JA      TWO
02552 0166  
            
02553 3000          TRAP3   #WRITO
02554 0000  
02555 1030          JA      #LIT
02556 0174  
02557 1031          JA      #67
02560 7704  
02561 0400          FLDA    DTOTAL
02562 0003  
02563 3000          TRAP3   #RSVO
02564 0000  
02565 3000          TRAP3   #RENDO
02566 0000  
            
02567 1130          JSR     SIXOUT
02570 0000  
            /        GOTO 77
02571 1030          JA      #77
02572 2607  
            
02573 1031          JA      #67B
02574 7711  
02575 1030          JA      ZERO
02576 0160  
02577 1030          JA      ONE
02600 0163  
            
            /75      CALL RSPEAK(4)
RALF V50A   24-JUL-20    PAGE 3-18

02601 1130  #75,    JSR     RSPEAK
02602 0000  
02603 1030          JA      .+4
02604 2607  
02605 1030          JA      #LIT
02606 0174  
            
            /77      IF(ATTACK.EQ.0)GOTO 2000
02607 0400  #77,    FLDA    ATTACK
02610 0000  
02611 1000          JEQ     #2000
02612 2760  
            /       IF(DFLAG.EQ.2)DFLAG=3
02613 0400          FLDA    DFLAG
02614 4460  
02615 2241          FSUB    TWO
02616 1040          JNE     .+5
02617 2623  
02620 0242          FLDA    THREE
02621 6400          FSTA    DFLAG
02622 4460  
            /       IF(ATTACK.EQ.1)GOTO 79
02623 0400          FLDA    ATTACK
02624 0000  
02625 2240          FSUB    ONE
02626 1000          JEQ     #79
02627 2743  
            /       TYPE 78,ATTACK
            /78      FORMAT(' ',I1,' of them throw knives at you!')
02630 3000          TRAP3   #WRITO
02631 0000  
02632 1030          JA      #LIT
02633 0174  
02634 1031          JA      #78
02635 7743  
02636 0400          FLDA    ATTACK
02637 0000  
02640 3000          TRAP3   #RSVO
02641 0000  
02642 3000          TRAP3   #RENDO
02643 0000  
02644 1130          JSR     SIXOUT
02645 0000  
02646 1030          JA      .+10
02647 2656  
02650 1031          JA      #78B
02651 7750  
02652 1030          JA      ZERO
02653 0160  
02654 1030          JA      ONE
02655 0163  
            /       K=6
02656 0245          FLDA    #LIT+6
02657 6400          FSTA    K
02660 6215  
            
RALF V50A   24-JUL-20    PAGE 3-19

            /82      IF(STICK.GT.1)GOTO 83
02661 0400  #82,    FLDA    STICK
02662 0022  
02663 2240          FSUB    ONE
02664 1060          JGT     #83
02665 2707  
            /       CALL RSPEAK(K+STICK)
02666 0400          FLDA    K
02667 6215  
02670 1400          FADD    STICK
02671 0022  
02672 6227          FSTA    #TMP
02673 1130          JSR     RSPEAK
02674 0000  
02675 1030          JA      .+4
02676 2701  
02677 1030          JA      #TMP
02700 0130  
            /       IF(STICK.EQ.0)GOTO 2000
02701 0400          FLDA    STICK
02702 0022  
02703 1000          JEQ     #2000
02704 2760  
            /       GOTO 84
02705 1030          JA      #84
02706 2735  
            
            /83      TYPE 68,STICK
02707 3000  #83,    TRAP3   #WRITO
02710 0000  
02711 1030          JA      #LIT
02712 0174  
02713 1031          JA      #68
02714 7743  
02715 0400          FLDA    STICK
02716 0022  
02717 3000          TRAP3   #RSVO
02720 0000  
02721 3000          TRAP3   #RENDO
02722 0000  
            
            /68      FORMAT(' ',I1,' of them get you!')
02723 1130          JSR     SIXOUT
02724 0000  
02725 1030          JA      .+10
02726 2735  
02727 1031          JA      #68B
02730 7770  
02731 1030          JA      ZERO
02732 0160  
02733 1030          JA      ONE
02734 0163  
            /84      OLDLC2=LOC
02735 0400  #84,    FLDA    LOC
02736 0014  
02737 6400          FSTA    OLDLC2
RALF V50A   24-JUL-20    PAGE 3-20

02740 0006  
            /       GOTO 99
02741 1030          JA      #99
02742 6617  
            
            /C
            /79      CALL RSPEAK(5)
02743 1130  #79,    JSR     RSPEAK
02744 0000  
02745 1030          JA      .+4
02746 2751  
02747 1030          JA      #LIT+3
02750 0177  
            /       K=52
02751 0100          LDX     64,0    /52
02752 0064  
02753 0030          XTA     0
02754 6400          FSTA    K
02755 6215  
            /       GOTO 82
02756 1030          JA      #82
02757 2661  
            
            /C DESCRIBE THE CURRENT LOCATION AND (MAYBE) GET NEXT COMMAND.
            /C
            /C PRINT TEXT FOR CURRENT LOC.
            /C
            /2000    IF(LOC.EQ.0)GOTO 99
02760 0400  #2000,  FLDA    LOC
02761 0014  
02762 1000          JEQ     #99
02763 6617  
            /       KK=STEXT(LOC)
02764 0400          FLDA    LOC
02765 0014  
02766 0027          ATX     7
02767 0470          FLDA    STEXT-3,7
02770 0055  
02771 6400          FSTA    KK
02772 6330  
            /       KENT=0
02773 0002          FCLA
02774 6213          FSTA    KENT
            /       IF (ABBNUM.NE.0) KENT=MOD(ABB(LOC),ABBNUM)
02775 0400          FLDA    ABBNUM
02776 4774  
02777 1000          JEQ     .+26
03000 3025  
03001 0400          FLDA    LOC
03002 0014  
03003 0027          ATX     7
03004 0037          XTA     7
03005 4242          FMUL    THREE
03006 0010          ALN     0
03007 0006          STARTD
03010 1355          FADD    PABB
RALF V50A   24-JUL-20    PAGE 3-21

03011 6400          FSTA    .+7
03012 3020  
03013 0005          STARTF
03014 1130          JSR     MOD
03015 0000  
03016 1030          JA      .+6
03017 3024  
03020 1030          JA      .
03021 3020  
03022 1030          JA      ABBNUM
03023 4774  
03024 6213          FSTA    KENT
            /       IF (KENT.EQ.0.OR.KK.EQ.0) KK=LTEXT(LOC)
03025 0213  NOMOD,  FLDA    KENT
03026 1000          JEQ     .+6
03027 3034  
03030 0400          FLDA    KK
03031 6330  
03032 1040          JNE     .+11
03033 3043  
03034 0400          FLDA    LOC
03035 0014  
03036 0027          ATX     7
03037 0470          FLDA    LTEXT-3,7
03040 0757  
03041 6400          FSTA    KK
03042 6330  
            /       IF(FORCED(LOC).OR..NOT.DARK(0))GOTO 2001
03043 0400          FLDA    LOC
03044 0014  
03045 1120          JSA     FORCED
03046 0655  
03047 1040          JNE     #2001
03050 3075  
03051 1120          JSA     DARK
03052 0711  
03053 1000          JEQ     #2001
03054 3075  
            /       IF(WZDARK.AND.PCT(35))GOTO 90
03055 0400          FLDA    WZDARK
03056 0025  
03057 1000          JEQ     .+12
03060 3071  
03061 1130          JSR     PCT
03062 0000  
03063 1030          JA      .+4
03064 3067  
03065 1030          JA      #LIT+66
03066 0262  
03067 1040          JNE     #90
03070 6605  
            /       KK=RTEXT(16)
03071 0400          FLDA    RTEXT+55
03072 0055  
03073 6400          FSTA    KK
03074 6330  
RALF V50A   24-JUL-20    PAGE 3-22

            
            /2001    IF(TOTING(BEAR))CALL RSPEAK(141)
03075 0400  #2001,  FLDA    BEAR
03076 4642  
03077 1120          JSA     TOTING
03100 0622  
03101 1000          JEQ     .+10
03102 3111  
03103 1130          JSR     RSPEAK
03104 0000  
03105 1030          JA      .+4
03106 3111  
03107 1030          JA      #LIT+226
03110 0422  
            /       CALL SPEAK(KK)
03111 1130          JSR     SPEAK
03112 0000  
03113 1030          JA      .+4
03114 3117  
03115 1030          JA      KK
03116 6330  
            /       K=1
03117 0240          FLDA    ONE
03120 6400          FSTA    K
03121 6215  
            /       IF(FORCED(LOC))GOTO 8
03122 0400          FLDA    LOC
03123 0014  
03124 1120          JSA     FORCED
03125 0655  
03126 1040          JNE     #8
03127 5146  
            /       IF(LOC.EQ.33.AND.PCT(25).AND..NOT.CLOSNG)CALL RSPEAK(8)
03130 0100          LDX     41,0    /33
03131 0041  
03132 0030          XTA     0
03133 2400          FSUB    LOC
03134 0014  
03135 1040          JNE     .+24
03136 3161  
03137 1130          JSR     PCT
03140 0000  
03141 1030          JA      .+4
03142 3145  
03143 1030          JA      #LIT+52
03144 0246  
03145 1000          JEQ     .+14
03146 3161  
03147 0400          FLDA    CLOSNG
03150 5024  
03151 1040          JNE     .+10
03152 3161  
03153 1130          JSR     RSPEAK
03154 0000  
03155 1030          JA      .+4
03156 3161  
RALF V50A   24-JUL-20    PAGE 3-23

03157 1030          JA      #LIT+11
03160 0205  
            /C
            /C PRINT OUT DESCRIPTIONS OF OBJECTS AT THIS LOCATION. IF NOT CLOSING AND
            /C PROPERTY VALUE IS NEGATIVE, TALLY OFF ANOTHER TREASURE. RUG IS SPECIAL
            /C CASE; ONCE SEEN, ITS PROP IS 1 (DRAGON ON IT) TILL DRAGON IS KILLED.
            /C SIMILARLY FOR CHAIN; PROP IS INITIALLY 1 (LOCKED TO BEAR). THESE HACKS
            /C ARE BECAUSE PROP=0 IS NEEDED TO GET FULL SCORE.
            /C
            /       IF(DARK(0))GOTO 2012
03161 1120          JSA     DARK
03162 0711  
03163 1040          JNE     #2012
03164 3400  
            /       ABB(LOC)=ABB(LOC)+1
03165 0400          FLDA    LOC
03166 0014  
03167 0027          ATX     7
03170 0477          FLDA    ABB-3,7
03171 7775  
03172 1240          FADD    ONE
03173 6477          FSTA    ABB-3,7
03174 7775  
            /       I=ATLOC(LOC)
03175 0477          FLDA    ATLOC-3,7
03176 7775  
03177 6400          FSTA    I
03200 0000  
            
            /2004    IF(I.EQ.0)GOTO 2012
03201 0400  #2004,  FLDA    I
03202 0000  
03203 1000          JEQ     #2012
03204 3400  
            /       OBJ=I
03205 6400          FSTA    OBJ
03206 6207  
            /       IF(OBJ.GT.100)OBJ=OBJ-100
03207 2307          FSUB    #LIT+154
03210 1020          JLE     .+4
03211 3214  
            /       FLDA    OBJ
            /       FSUB    #LIT+154
03212 6400          FSTA    OBJ
03213 6207  
            /       IF(OBJ.EQ.STEPS.AND.TOTING(NUGGET))GOTO 2008
03214 0400          FLDA    OBJ
03215 6207  
03216 2400          FSUB    STEPS
03217 4532  
03220 1040          JNE     .+10
03221 3230  
03222 0400          FLDA    NUGGET
03223 4656  
03224 1120          JSA     TOTING
03225 0622  
RALF V50A   24-JUL-20    PAGE 3-24

03226 1040          JNE     #2008
03227 3353  
            /       IF(PROP(OBJ).GE.0)GOTO 2006
03230 0400          FLDA    OBJ
03231 6207  
03232 0027          ATX     7
03233 0470          FLDA    PROP-3,7
03234 3647  
03235 1010          JGE     #2006
03236 3312  
            /       IF(CLOSED)GOTO 2008
03237 0400          FLDA    CLOSED
03240 5032  
03241 1040          JNE     #2008
03242 3353  
            /       PROP(OBJ)=0
03243 0002          FCLA
03244 6470          FSTA    PROP-3,7
03245 3647  
            /       IF(OBJ.EQ.RUG.OR.OBJ.EQ.CHAIN)PROP(OBJ)=1
03246 0400          FLDA    OBJ
03247 6207  
03250 2400          FSUB    RUG
03251 4711  
03252 1000          JEQ     .+10
03253 3262  
03254 0400          FLDA    OBJ
03255 6207  
03256 2400          FSUB    CHAIN
03257 4714  
03260 1040          JNE     .+5
03261 3265  
03262 0240          FLDA    ONE
03263 6470          FSTA    PROP-3,7
03264 3647  
            /       TALLY=TALLY-1
03265 0400          FLDA    TALLY
03266 4326  
03267 1372          FADD    MINUS1
03270 6400          FSTA    TALLY
03271 4326  
            /C IF REMAINING TREASURES TOO ELUSIVE, ZAP HIS LAMP.
            /       IF(TALLY.EQ.TALLY2.AND.TALLY.NE.0)LIMIT=MIN0(35,LIMIT)
03272 1000          JEQ     #2006
03273 3312  
03274 2400          FSUB    TALLY2
03275 4331  
03276 1040          JNE     #2006
03277 3312  
03300 1130          JSR     MIN0
03301 0000  
03302 1030          JA      .+6
03303 3310  
03304 1030          JA      #LIT+66
03305 0262  
03306 1030          JA      LIMIT
RALF V50A   24-JUL-20    PAGE 3-25

03307 0011  
03310 6400          FSTA    LIMIT
03311 0011  
            /2006    KK=PROP(OBJ)
03312 0400  #2006,  FLDA    OBJ
03313 6207  
03314 0027          ATX     7
03315 0470          FLDA    PROP-3,7
03316 3647  
03317 6400          FSTA    KK
03320 6330  
            /       IF(OBJ.EQ.STEPS.AND.LOC.EQ.FIXED(STEPS))KK=1
03321 0400          FLDA    OBJ
03322 6207  
03323 2400          FSUB    STEPS
03324 4532  
03325 1040          JNE     .+16
03326 3343  
03327 0400          FLDA    STEPS
03330 4532  
03331 0027          ATX     7
03332 0400          FLDA    LOC
03333 0014  
03334 2470          FSUB    FIXED-3,7
03335 2503  
03336 1040          JNE     .+5
03337 3343  
03340 0240          FLDA    ONE
03341 6400          FSTA    KK
03342 6330  
            /       CALL PSPEAK(OBJ,KK)
03343 1130          JSR     PSPEAK
03344 0000  
03345 1030          JA      .+6
03346 3353  
03347 1030          JA      OBJ
03350 6207  
03351 1030          JA      KK
03352 6330  
            
            /2008    I=LINK(I)
03353 0400  #2008,  FLDA    I
03354 0000  
03355 0027          ATX     7
03356 0470          FLDA    LINK-3,7
03357 0677  
03360 6400          FSTA    I
03361 0000  
            /       GOTO 2004
03362 1030          JA      #2004
03363 3201  
            
            /2009    K=54
03364 0274  #2009,  FLDA    #LIT+113
03365 6400          FSTA    K
03366 6215  
RALF V50A   24-JUL-20    PAGE 3-26

            /2010    SPK=K
03367 0400  #2010,  FLDA    K
03370 6215  
03371 6221          FSTA    SPK
            
            /2011    CALL RSPEAK(SPK)
03372 1130  #2011,  JSR     RSPEAK
03373 0000  
03374 1030          JA      .+4
03375 3400  
03376 1030          JA      SPK
03377 0106  
            
            /2012    VERB=0
03400 0002  #2012,  FCLA
03401 6400          FSTA    VERB
03402 6220  
            /       OBJ=0
03403 6400          FSTA    OBJ
03404 6207  
            
            /C
            /C CHECK IF THIS LOC IS ELIGIBLE FOR ANY HINTS. IF BEEN HERE LONG ENOUGH,
            /C BRANCH TO HELP SECTION (ON LATER PAGE). HINTS ALL COME BACK HERE EVENTUALLY
            /C TO FINISH THE LOOP. IGNORE "HINTS" < 4 (SPECIAL STUFF, SEE DATABASE NOTES).
            /C
            /2600    DO 2602 HINT=4,HNTMAX
03405 0243  #2600,  FLDA    #LIT
03406 6212          FSTA    HINT
            
            /       IF(HINTED(HINT))GOTO 2602
03407 0212  #G0102, FLDA    HINT
03410 0027          ATX     7
03411 0470          FLDA    HINTED-3,7
03412 6226  
03413 1040          JNE     #2602
03414 3446  
            /       IF(.NOT.BITSET(LOC,HINT))HINTLC(HINT)=-1
03415 1130          JSR     BITSET
03416 0000  
03417 1030          JA      .+6
03420 3425  
03421 1030          JA      LOC
03422 0014  
03423 1030          JA      HINT
03424 0061  
03425 1040          JNE     .+6
03426 3433  
03427 0372          FLDA    MINUS1
03430 6470          FSTA    HINTLC-3,7
03431 4331  
            /       HINTLC(HINT)=HINTLC(HINT)+1
03432 0240          FLDA    ONE
03433 5470          FADDM   HINTLC-3,7
03434 4331  
            /       IF(HINTLC(HINT).GE.HINTS(HINT,1))GOTO 40000
RALF V50A   24-JUL-20    PAGE 3-27

03435 0255          FLDA    #LIT+36
03436 1212          FADD    HINT
03437 0026          ATX     6
03440 0470          FLDA    HINTLC-3,7
03441 4331  
03442 2460          FSUB    HINTS-0077,6
03443 3170  
03444 1011          JGE     #40000
03445 5466  
            
            /2602    CONTINUE
03446 0212  #2602,  FLDA    HINT
03447 1240          FADD    ONE
03450 6212          FSTA    HINT
03451 2400          FSUB    HNTMAX
03452 3647  
03453 1020          JLE     #G0102
03454 3407  
            /C
            /C KICK THE RANDOM NUMBER GENERATOR JUST TO ADD VARIETY TO THE CHASE. ALSO,
            /C IF CLOSING TIME, CHECK FOR ANY OBJECTS BEING TOTED WITH PROP < 0 AND SET
            /C THE PROP TO -1-PROP. THIS WAY OBJECTS WON'T BE DESCRIBED UNTIL THEY'VE
            /C BEEN PICKED UP AND PUT DOWN SEPARATE FROM THEIR RESPECTIVE PILES. DON'T
            /C TICK CLOCK1 UNLESS WELL INTO CAVE (AND NOT AT Y2).
            /C
            /       IF(.NOT.CLOSED)GOTO 2605
03455 0400          FLDA    CLOSED
03456 5032  
03457 1000          JEQ     #2605
03460 3541  
            /       IF(PROP(OYSTER).LT.0.AND.TOTING(OYSTER))
            /       1       CALL PSPEAK(OYSTER,1)
            
03461 0400          FLDA    OYSTER
03462 4562  
03463 0027          ATX     7
03464 0470          FLDA    PROP-3,7
03465 3647  
03466 1010          JGE     .+20
03467 3506  
03470 0400          FLDA    OYSTER
03471 4562  
03472 1120          JSA     TOTING
03473 0622  
03474 1000          JEQ     .+12
03475 3506  
03476 1130          JSR     PSPEAK
03477 0000  
03500 1030          JA      .+6
03501 3506  
03502 1030          JA      OYSTER
03503 4562  
03504 1030          JA      ONE
03505 0163  
            /       DO 2604 I=1,100
03506 0240          FLDA    ONE
RALF V50A   24-JUL-20    PAGE 3-28

03507 6400          FSTA    I
03510 0000  
            
            /2604    IF(TOTING(I).AND.PROP(I).LT.0)PROP(I)=-1-PROP(I)
03511 0400  #2604,  FLDA    I
03512 0000  
03513 0027          ATX     7
03514 1120          JSA     TOTING
03515 0622  
03516 1000          JEQ     .+13
03517 3531  
03520 0470          FLDA    PROP-3,7
03521 3647  
03522 1010          JGE     .+7
03523 3531  
03524 0372          FLDA    MINUS1
03525 2470          FSUB    PROP-3,7
03526 3647  
03527 6470          FSTA    PROP-3,7
03530 3647  
03531 0400          FLDA    I
03532 0000  
03533 1240          FADD    ONE
03534 6400          FSTA    I
03535 0000  
03536 2307          FSUB    #LIT+154
03537 1020          JLE     #2604
03540 3511  
            
            /2605    WZDARK=DARK(0)
03541 1120  #2605,  JSA     DARK
03542 0711  
03543 6400          FSTA    WZDARK
03544 0025  
            /       IF(KNFLOC.GT.0.AND.KNFLOC.NE.LOC)KNFLOC=0
03545 0400          FLDA    KNFLOC
03546 4766  
03547 1020          JLE     .+11
03550 3560  
03551 2400          FSUB    LOC
03552 0014  
03553 1000          JEQ     .+5
03554 3560  
03555 0002          FCLA
03556 6400          FSTA    KNFLOC
03557 4766  
            /       I=RND(1)
03560 1130          JSR     RND
03561 0000  
03562 1030          JA      .+4
03563 3566  
03564 1030          JA      ONE
03565 0163  
            /       CALL GETIN(WD1,WD1X,WD2,WD2X)
03566 1130          JSR     GETIN
03567 0000  
RALF V50A   24-JUL-20    PAGE 3-29

03570 1030          JA      .+12
03571 3602  
03572 1030          JA      WD1
03573 0111  
03574 1030          JA      WD1X
03575 0114  
03576 1030          JA      WD2
03577 0117  
03600 1030          JA      WD2X
03601 0122  
            
            /C
            /C EVERY INPUT, CHECK "FOOBAR" FLAG. IF ZERO, NOTHING'S GOING ON. IF POS,
            /C MAKE NEG. IF NEG, HE SKIPPED A WORD, SO MAKE IT ZERO.
            /C
            /2608    FOOBAR=MIN0(0,-FOOBAR)
03602 0400  #2608,  FLDA    FOOBAR
03603 5010  
03604 0003          FNEG
03605 6227          FSTA    #TMP
03606 1130          JSR     MIN0
03607 0000  
03610 1030          JA      .+6
03611 3616  
03612 1030          JA      ZERO
03613 0160  
03614 1030          JA      #TMP
03615 0130  
03616 6400          FSTA    FOOBAR
03617 5010  
            /       TURNS=TURNS+1
03620 0240          FLDA    ONE
03621 5400          FADDM   TURNS
03622 4760  
            /C       IF(VERB.EQ.SAY.AND.WD2.NE.0)VERB=0
            /C       IF(VERB.EQ.SAY)GOTO 4090
            /       IF(TALLY.EQ.0.AND.LOC.GE.15.AND.LOC.NE.33)CLOCK1=CLOCK1-1
03623 0400          FLDA    TALLY
03624 4326  
03625 1040          JNE     .+23
03626 3650  
03627 0400          FLDA    LOC
03630 0014  
03631 2252          FSUB    #LIT+25
03632 1050          JLT     .+16
03633 3650  
03634 0100          LDX     41,0    /33
03635 0041  
03636 0030          XTA     0
03637 2400          FSUB    LOC
03640 0014  
03641 1000          JEQ     .+7
03642 3650  
03643 0400          FLDA    CLOCK1
03644 5016  
03645 2240          FSUB    ONE
RALF V50A   24-JUL-20    PAGE 3-30

03646 6400          FSTA    CLOCK1
03647 5016  
            /       IF(CLOCK1.EQ.0)GOTO 10000
03650 0400          FLDA    CLOCK1
03651 5016  
03652 1001          JEQ     #10000
03653 6044  
            /       IF(CLOCK1.LT.0)CLOCK2=CLOCK2-1
03654 1010          JGE     .+7
03655 3663  
03656 0400          FLDA    CLOCK2
03657 5021  
03660 2240          FSUB    ONE
03661 6400          FSTA    CLOCK2
03662 5021  
            /       IF(CLOCK2.EQ.0)GOTO 11000
03663 0400          FLDA    CLOCK2
03664 5021  
03665 1001          JEQ     #11000
03666 6261  
            /       IF(PROP(LAMP).EQ.1)LIMIT=LIMIT-1
03667 0400          FLDA    LAMP
03670 4513  
03671 0027          ATX     7
03672 0470          FLDA    PROP-3,7
03673 3647  
03674 2240          FSUB    ONE
03675 1040          JNE     .+5
03676 3702  
03677 0372          FLDA    MINUS1
03700 5400          FADDM   LIMIT
03701 0011  
            /       IF(LIMIT.LE.30.AND.HERE(BATTER).AND.PROP(BATTER).EQ.0
            /       1       .AND.HERE(LAMP))GOTO 12000
03702 0400          FLDA    LIMIT
03703 0011  
03704 2264          FSUB    #LIT+63
03705 1060          JGT     .+25
03706 3732  
03707 0400          FLDA    BATTER
03710 4653  
03711 1120          JSA     HERE
03712 0667  
03713 1000          JEQ     .+17
03714 3732  
03715 0400          FLDA    BATTER
03716 4653  
03717 0027          ATX     7
03720 0470          FLDA    PROP-3,7
03721 3647  
03722 1040          JNE     .+10
03723 3732  
03724 0400          FLDA    LAMP
03725 4513  
03726 1120          JSA     HERE
03727 0667  
RALF V50A   24-JUL-20    PAGE 3-31

03730 1041          JNE     #12000
03731 6635  
            /       IF(LIMIT.EQ.0)GOTO 12400
03732 0400          FLDA    LIMIT
03733 0011  
03734 1001          JEQ     #12400
03735 6752  
            /       IF(LIMIT.LT.0.AND.LOC.LE.8)GOTO 12600
03736 0400          FLDA    LIMIT
03737 0011  
03740 1010          JGE     .+7
03741 3747  
03742 0400          FLDA    LOC
03743 0014  
03744 2246          FSUB    #LIT+11
03745 1021          JLE     #12600
03746 6777  
            /       IF(LIMIT.LE.30)GOTO 12200
03747 0400          FLDA    LIMIT
03750 0011  
03751 2264          FSUB    #LIT+63
03752 1021          JLE     #12200
03753 6677  
            
            /19999   K=43
03754 0100  #19999, LDX     53,0    /43
03755 0053  
03756 0030          XTA     0
03757 6400          FSTA    K
03760 6215  
            /       IF(LIQLOC(LOC).EQ.WATER)K=70
03761 1120          JSA     LIQLOC
03762 1026  
03763 2400          FSUB    WATER
03764 4604  
03765 1040          JNE     .+7
03766 3774  
03767 0100          LDX     106,0   /70
03770 0106  
03771 0030          XTA     0
03772 6400          FSTA    K
03773 6215  
            /C
            /C DO PRELIMINARY ANALYSIS OF SENTENCE TO FIND CERTAIN SPECIAL
            /C CASES, VIZ,
            /C
            /C ENTER <WATER,STREAM>
            /C ENTER <LOCATION>
            /C <WATER,OIL> <PLANT,DOOR>
            /C
            /       CALL VOCAB(WD1,WD1A,-1,I)
03774 1130          JSR     VOCAB
03775 0000  
03776 1030          JA      .+6
03777 4004  
04000 1030          JA      WD1
RALF V50A   24-JUL-20    PAGE 3-32

04001 0111  
04002 1030          JA      MINUS1
04003 0601  
04004 6400          FSTA    I
04005 0000  
            /       CALL VOCAB(WD2,WD2A,-1,J)
04006 1130          JSR     VOCAB
04007 0000  
04010 1030          JA      .+6
04011 4016  
04012 1030          JA      WD2
04013 0117  
04014 1030          JA      MINUS1
04015 0601  
04016 6400          FSTA    J
04017 6212  
            /       IF(WD1.NE.'ENTE') GO TO 2609
04020 0222          FLDA    WD1
04021 2357          FSUB    TENTE
04022 1040          JNE     #2609
04023 4044  
            /       IF(J .EQ. (WATER+1000)
            /       1       .OR. J .EQ. STREAM) GO TO 2010
04024 0400          FLDA    WATER
04025 4604  
04026 1347          FADD    #LIT+314
04027 2400          FSUB    J
04030 6212  
04031 1000          JEQ     #2010
04032 3367  
04033 0400          FLDA    J
04034 6212  
04035 2400          FSUB    STREAM
04036 5065  
04037 1000          JEQ     #2010
04040 3367  
            /       IF(WD2 .NE. 0) GO TO 2800
04041 0224          FLDA    WD2
04042 1040          JNE     #2800
04043 4207  
            
            /2609    IF((I .NE. (WATER+1000) .AND. I .NE. (OIL+1000))
            /       1       .OR. (J .NE. (PLANT+1000) .AND. J .NE. (DOOR+1000)))
            /       2       GO TO 2610
04044 0400  #2609,  FLDA    WATER
04045 4604  
04046 1347          FADD    #LIT+314
04047 2400          FSUB    I
04050 0000  
04051 1000          JEQ     .+11
04052 4062  
04053 0400          FLDA    OIL
04054 4607  
04055 1347          FADD    #LIT+314
04056 2400          FSUB    I
04057 0000  
RALF V50A   24-JUL-20    PAGE 3-33

04060 1040          JNE     #2610
04061 4102  
04062 0400          FLDA    PLANT
04063 4612  
04064 1347          FADD    #LIT+314
04065 2400          FSUB    J
04066 6212  
04067 1000          JEQ     .+11
04070 4100  
04071 0400          FLDA    DOOR
04072 4540  
04073 1347          FADD    #LIT+314
04074 2400          FSUB    J
04075 6212  
04076 1040          JNE     #2610
04077 4102  
            /       WD2="POUR"
04100 0360          FLDA    TPOUR
04101 6224          FSTA    WD2
            
            /2610    IF(WD1 .EQ. 'WEST' .AND. PCT(10))
            /       1       CALL RSPEAK(17)
            
04102 0222  #2610,  FLDA    WD1
04103 2361          FSUB    TWEST
04104 1040          JNE     #2630
04105 4124  
04106 1130          JSR     PCT
04107 0000  
04110 1030          JA      .+4
04111 4114  
04112 1030          JA      #LIT+17
04113 0213  
04114 1000          JEQ     #2630
04115 4124  
04116 1130          JSR     RSPEAK
04117 0000  
04120 1030          JA      .+4
04121 4124  
04122 1030          JA      #LIT+33
04123 0227  
            /2630    CALL VOCAB(WD1,-1,I)
04124 1130  #2630,  JSR     VOCAB
04125 0000  
04126 1030          JA      .+6
04127 4134  
04130 1030          JA      WD1
04131 0111  
04132 1030          JA      MINUS1
04133 0601  
04134 6400          FSTA    I
04135 0000  
            /       IF(I.EQ.-1)GOTO 3000
04136 1240          FADD    ONE
04137 1000          JEQ     #3000
04140 4217  
RALF V50A   24-JUL-20    PAGE 3-34

            /       K=MOD(I,1000)
04141 1130          JSR     MOD
04142 0000  
04143 1030          JA      .+6
04144 4151  
04145 1030          JA      I
04146 0000  
04147 1030          JA      #LIT+314
04150 0510  
04151 6400          FSTA    K
04152 6215  
            /       KQ=I/1000+1
04153 0400          FLDA    I
04154 0000  
04155 3347          FDIV    #LIT+314
04156 1120          JSA     #FIX
04157 0000  
04160 1240          FADD    ONE
04161 6214          FSTA    KQ
            /       GOTO (8,5000,4000,2010)KQ
04162 0214          FLDA    KQ
04163 0021          ATX     1
04164 0006          STARTD
04165 0410          FLDA    .+2,1
04166 4167  
04167 0005          STARTF
04170 0007          JAC
04171 1030          JA      #8
04172 5146  
04173 1030          JA      #5000
04174 4560  
04175 1030          JA      #4000
04176 4263  
04177 1030          JA      #2010
04200 3367  
            /       CALL BUG(22)
04201 1130          JSR     BUG
04202 0000  
04203 1030          JA      .+4
04204 4207  
04205 1030          JA      #LIT+41
04206 0235  
            
            /C
            /C GET SECOND WORD FOR ANALYSIS.
            /C
            /2800    WD1=WD2
            /       WD1A=WD2A
            
04207 0224  #2800,  FLDA    WD2
04210 6222          FSTA    WD1
            /       WD1X=WD2X
04211 0225          FLDA    WD2X
04212 6223          FSTA    WD1X
            /       WD2=0
04213 0002          FCLA
RALF V50A   24-JUL-20    PAGE 3-35

04214 6224          FSTA    WD2
            /       GOTO 2610
04215 1030          JA      #2610
04216 4102  
            
            /C
            /C GEE, I DON'T UNDERSTAND.
            /C
            /3000    SPK=60
04217 0100  #3000,  LDX     74,0    /60
04220 0074  
04221 0030          XTA     0
04222 6221          FSTA    SPK
            /       IF(PCT(20))SPK=61
04223 1130          JSR     PCT
04224 0000  
04225 1030          JA      .+4
04226 4231  
04227 1030          JA      #LIT+36
04230 0232  
04231 1000          JEQ     .+6
04232 4237  
04233 0100          LDX     75,0    /61
04234 0075  
04235 0030          XTA     0
04236 6221          FSTA    SPK
            /       IF(PCT(20))SPK=13
04237 1130          JSR     PCT
04240 0000  
04241 1030          JA      .+4
04242 4245  
04243 1030          JA      #LIT+36
04244 0232  
04245 1000          JEQ     .+6
04246 4253  
04247 0100          LDX     15,0    /13
04250 0015  
04251 0030          XTA     0
04252 6221          FSTA    SPK
            /       CALL RSPEAK(SPK)
04253 1130          JSR     RSPEAK
04254 0000  
04255 1030          JA      .+4
04256 4261  
04257 1030          JA      SPK
04260 0106  
            /       GOTO 2600
04261 1030          JA      #2600
04262 3405  
            
            /C
            /C ANALYSE A VERB. REMEMBER WHAT IT WAS, GO BACK FOR OBJECT IF SECOND WORD
            /C UNLESS VERB IS "SAY", WHICH SNARFS ARBITRARY SECOND WORD.
            /C
            /4000    VERB=K
04263 0400  #4000,  FLDA    K
RALF V50A   24-JUL-20    PAGE 3-36

04264 6215  
04265 6400          FSTA    VERB
04266 6220  
            /       SPK=ACTSPK(VERB)
04267 0027          ATX     7
04270 0470          FLDA    ACTSPK-3,7
04271 2211  
04272 6221          FSTA    SPK
            /       IF(WD2.NE.0.AND.VERB.NE.SAY)GOTO 2800
04273 0224          FLDA    WD2
04274 1000          JEQ     .+10
04275 4304  
04276 0400          FLDA    VERB
04277 6220  
04300 2400          FSUB    SAY
04301 4741  
04302 1040          JNE     #2800
04303 4207  
            /       IF(VERB.EQ.SAY)OBJ=WD2
04304 0400          FLDA    VERB
04305 6220  
04306 2400          FSUB    SAY
04307 4741  
04310 1040          JNE     .+5
04311 4315  
04312 0224          FLDA    WD2
04313 6400          FSTA    OBJ
04314 6207  
            /       IF(OBJ.NE.0)GOTO 4090
04315 0400          FLDA    OBJ
04316 6207  
04317 2237          FSUB    ZERO
04320 1040          JNE     #4090
04321 4440  
            
            /C
            /C ANALYSE AN INTRANSITIVE VERB (IE, NO OBJECT GIVEN YET).
            /C
            /4080    GOTO(8010,8000,8000,8040,2009,8040,9070,9080,8000,8000,
            /       1    2011,9120,9130,8140,9150,8000,8000,8180,8000,8200,
            /       2    8000,9220,9230,8240,8250,8260,8270,8000,8000,8300,
            /       3    8310,8320)VERB
            /C            TAKE DROP  SAY OPEN NOTH LOCK   ON  OFF WAVE CALM
            /C            WALK KILL POUR  EAT DRNK  RUB TOSS QUIT FIND INVN
            /C            FEED FILL BLST SCOR  FOO  BRF READ BREK WAKE SUSP
            /C            HOUR RESU
04322 0400  #4080,  FLDA    VERB
04323 6220  
04324 0021          ATX     1
04325 0006          STARTD
04326 0410          FLDA    .+2,1
04327 4330  
04330 0005          STARTF
04331 0007          JAC
04332 1030          JA      #8010
04333 7051  
RALF V50A   24-JUL-20    PAGE 3-37

04334 1030          JA      #8000
04335 7010  
04336 1030          JA      #8000
04337 7010  
04340 1031          JA      #8040
04341 0410  
04342 1030          JA      #2009
04343 3364  
04344 1031          JA      #8040
04345 0410  
04346 1031          JA      #9070
04347 1245  
04350 1031          JA      #9080
04351 1303  
04352 1030          JA      #8000
04353 7010  
04354 1030          JA      #8000
04355 7010  
04356 1030          JA      #2011
04357 3372  
04360 1031          JA      #9120
04361 1440  
04362 1031          JA      #9130
04363 2345  
04364 1031          JA      #8140
04365 2611  
04366 1031          JA      #9150
04367 2727  
04370 1030          JA      #8000
04371 7010  
04372 1030          JA      #8000
04373 7010  
04374 1031          JA      #8180
04375 3520  
04376 1030          JA      #8000
04377 7010  
04400 1031          JA      #8200
04401 3663  
04402 1030          JA      #8000
04403 7010  
04404 1031          JA      #9220
04405 4236  
04406 1031          JA      #9230
04407 4457  
04410 1031          JA      #8240
04411 4534  
04412 1031          JA      #8250
04413 4650  
04414 1031          JA      #8260
04415 5047  
04416 1031          JA      #8270
04417 5063  
04420 1030          JA      #8000
04421 7010  
04422 1030          JA      #8000
04423 7010  
RALF V50A   24-JUL-20    PAGE 3-38

04424 1031          JA      #8300
04425 5440  
04426 1031          JA      #8310
04427 5450  
04430 1031          JA      #8320
04431 5456  
            /       CALL BUG(23)
04432 1130          JSR     BUG
04433 0000  
04434 1030          JA      .+4
04435 4440  
04436 1030          JA      #LIT+44
04437 0240  
            
            /C
            /C ANALYSE A TRANSITIVE VERB.
            /C
            /4090    GOTO(9010,9020,9030,9040,2009,9040,9070,9080,9090,2011,
            /       1    2011,9120,9130,9140,9150,9160,9170,2011,9190,9190,
            /       2    9210,9220,9230,2011,2011,2011,9270,9280,9290,2011,
            /       3    2011,2011)VERB
            /C            TAKE DROP  SAY OPEN NOTH LOCK   ON  OFF WAVE CALM
            /C            WALK KILL POUR  EAT DRNK  RUB TOSS QUIT FIND INVN
            /C            FEED FILL BLST SCOR  FOO  BRF READ BREK WAKE SUSP
            /C            HOUR RESU
04440 0400  #4090,  FLDA    VERB
04441 6220  
04442 0021          ATX     1
04443 0006          STARTD
04444 0410          FLDA    .+2,1
04445 4446  
04446 0005          STARTF
04447 0007          JAC
04450 1030          JA      #9010
04451 7125  
04452 1030          JA      #9020
04453 7523  
04454 1031          JA      #9030
04455 0315  
04456 1031          JA      #9040
04457 0514  
04460 1030          JA      #2009
04461 3364  
04462 1031          JA      #9040
04463 0514  
04464 1031          JA      #9070
04465 1245  
04466 1031          JA      #9080
04467 1303  
04470 1031          JA      #9090
04471 1337  
04472 1030          JA      #2011
04473 3372  
04474 1030          JA      #2011
04475 3372  
04476 1031          JA      #9120
RALF V50A   24-JUL-20    PAGE 3-39

04477 1440  
04500 1031          JA      #9130
04501 2345  
04502 1031          JA      #9140
04503 2633  
04504 1031          JA      #9150
04505 2727  
04506 1031          JA      #9160
04507 3033  
04510 1031          JA      #9170
04511 3047  
04512 1030          JA      #2011
04513 3372  
04514 1031          JA      #9190
04515 3542  
04516 1031          JA      #9190
04517 3542  
04520 1031          JA      #9210
04521 3756  
04522 1031          JA      #9220
04523 4236  
04524 1031          JA      #9230
04525 4457  
04526 1030          JA      #2011
04527 3372  
04530 1030          JA      #2011
04531 3372  
04532 1030          JA      #2011
04533 3372  
04534 1031          JA      #9270
04535 5160  
04536 1031          JA      #9280
04537 5314  
04540 1031          JA      #9290
04541 5420  
04542 1030          JA      #2011
04543 3372  
04544 1030          JA      #2011
04545 3372  
04546 1030          JA      #2011
04547 3372  
04550 1030          JA      #2011
04551 3372  
            /       CALL BUG(24)
04552 1130          JSR     BUG
04553 0000  
04554 1030          JA      .+4
04555 4560  
04556 1030          JA      #LIT+47
04557 0243  
            
            /C
            /C ANALYSE AN OBJECT WORD. SEE IF THE THING IS HERE, WHETHER WE'VE GOT A VERB
            /C YET, AND SO ON. OBJECT MUST BE HERE UNLESS VERB IS "FIND" OR "INVENT(ORY)"
            /C (AND NO NEW VERB YET TO BE ANALYSED). WATER AND OIL ARE ALSO FUNNY, SINCE
            /C THEY ARE NEVER ACTUALLY DROPPED AT ANY LOCATION, BUT MIGHT BE HERE INSIDE
RALF V50A   24-JUL-20    PAGE 3-40

            /C THE BOTTLE OR AS A FEATURE OF THE LOCATION.
            /C
            /5000    OBJ=K
04560 0400  #5000,  FLDA    K
04561 6215  
04562 6400          FSTA    OBJ
04563 6207  
            /       IF(FIXED(K).NE.LOC.AND..NOT.HERE(K))GOTO 5100
04564 0400          FLDA    K
04565 6215  
04566 0027          ATX     7
04567 0470          FLDA    FIXED-3,7
04570 2503  
04571 2400          FSUB    LOC
04572 0014  
04573 1000          JEQ     #5010
04574 4603  
04575 0400          FLDA    K
04576 6215  
04577 1120          JSA     HERE
04600 0667  
04601 1000          JEQ     #5100
04602 4653  
            
            /5010    IF(WD2.NE.0)GOTO 2800
04603 0224  #5010,  FLDA    WD2
04604 1040          JNE     #2800
04605 4207  
            /       IF(VERB.NE.0)GOTO 4090
04606 0400          FLDA    VERB
04607 6220  
04610 1040          JNE     #4090
04611 4440  
            /       TYPE 5015
            /5015    FORMAT(' What do you want to do with the ',$)
04612 1130          JSR     SIXOUT
04613 0000  
04614 1030          JA      .+10
04615 4624  
04616 1032          JA      #5015
04617 0002  
04620 1030          JA      ZERO
04621 0160  
04622 1030          JA      TWO
04623 0166  
            
            /       CALL A5TOA1(WD1,WD1A,WD1X,'?')
04624 1130          JSR     A5TOA1
04625 0000  
04626 1030          JA      .+10
04627 4636  
04630 1030          JA      WD1
04631 0111  
04632 1030          JA      WD1X
04633 0114  
04634 1030          JA      TQUES
RALF V50A   24-JUL-20    PAGE 3-41

04635 0551  
04636 3000          TRAP3   #WRITO
04637 0000  
04640 1030          JA      #LIT
04641 0174  
04642 1030          JA      #LINEF+2
04643 4650  
04644 3000          TRAP3   #RENDO
04645 0000  
            /       GOTO 2600
04646 1030  #LINEF, JA      #2600
04647 3405  
04650 5047          TEXT    +(' ')+
04651 4047  
04652 5100  
            
            /C
            /5100    IF(K.NE.GRATE)GOTO 5110
04653 0400  #5100,  FLDA    K
04654 6215  
04655 2400          FSUB    GRATE
04656 4516  
04657 1040          JNE     #5110
04660 4724  
            /       IF(LOC.EQ.1.OR.LOC.EQ.4.OR.LOC.EQ.7)K=DPRSSN
04661 0400          FLDA    LOC
04662 0014  
04663 2240          FSUB    ONE
04664 1000          JEQ     .+10
04665 4674  
04666 2242          FSUB    THREE
04667 1000          JEQ     .+5
04670 4674  
04671 2242          FSUB    THREE
04672 1040          JNE     .+6
04673 4700  
04674 0400          FLDA    DPRSSN
04675 4736  
04676 6400          FSTA    K
04677 6215  
            /       IF(LOC.GT.9.AND.LOC.LT.15)K=ENTRNC
04700 0400          FLDA    LOC
04701 0014  
04702 2247          FSUB    #LIT+14
04703 1020          JLE     .+13
04704 4716  
04705 0400          FLDA    LOC
04706 0014  
04707 2252          FSUB    #LIT+25
04710 1010          JGE     .+6
04711 4716  
04712 0400          FLDA    ENTRNC
04713 4733  
04714 6400          FSTA    K
04715 6215  
            /       IF(K.NE.GRATE)GOTO 8
RALF V50A   24-JUL-20    PAGE 3-42

04716 0400          FLDA    K
04717 6215  
04720 2400          FSUB    GRATE
04721 4516  
04722 1040          JNE     #8
04723 5146  
            
            /5110    IF(K.NE.DWARF)GOTO 5120
04724 0400  #5110,  FLDA    K
04725 6215  
04726 2400          FSUB    DWARF
04727 4570  
04730 1040          JNE     #5120
04731 4763  
            /       DO 5112 I=1,5
04732 0240          FLDA    ONE
04733 6400          FSTA    I
04734 0000  
            
            /       IF(DLOC(I).EQ.LOC.AND.DFLAG.GE.2)GOTO 5010
04735 0400  #G0122, FLDA    I
04736 0000  
04737 0027          ATX     7
04740 0470          FLDA    DLOC-3,7
04741 4460  
04742 2400          FSUB    LOC
04743 0014  
04744 1040          JNE     #5112
04745 4753  
04746 0400          FLDA    DFLAG
04747 4460  
04750 2241          FSUB    TWO
04751 1010          JGE     #5010
04752 4603  
            /5112    CONTINUE
04753 0400  #5112,  FLDA    I
04754 0000  
04755 1240          FADD    ONE
04756 6400          FSTA    I
04757 0000  
04760 2244          FSUB    #LIT+3
04761 1020          JLE     #G0122
04762 4735  
            
            /5120    IF((LIQ(0).EQ.K.AND.HERE(BOTTLE)).OR.K.EQ.LIQLOC(LOC))GOTO 5010
04763 1120  #5120,  JSA     LIQ
04764 1001  
04765 2400          FSUB    K
04766 6215  
04767 1040          JNE     .+10
04770 4777  
04771 0400          FLDA    BOTTLE
04772 4601  
04773 1120          JSA     HERE
04774 0667  
04775 1040          JNE     #5010
RALF V50A   24-JUL-20    PAGE 3-43

04776 4603  
04777 1120          JSA     LIQLOC
05000 1026  
05001 2400          FSUB    K
05002 6215  
05003 1000          JEQ     #5010
05004 4603  
            /       IF(OBJ.NE.PLANT.OR..NOT.AT(PLANT2).OR.PROP(PLANT2).EQ.0)GOTO 5130
05005 0400          FLDA    OBJ
05006 6207  
05007 2400          FSUB    PLANT
05010 4612  
05011 1040          JNE     #5130
05012 5036  
05013 0400          FLDA    PLANT2
05014 4615  
05015 1120          JSA     AT
05016 0634  
05017 1000          JEQ     #5130
05020 5036  
05021 0400          FLDA    PLANT2
05022 4615  
05023 0027          ATX     7
05024 0470          FLDA    PROP-3,7
05025 3647  
05026 1000          JEQ     #5130
05027 5036  
            /       OBJ=PLANT2
05030 0400          FLDA    PLANT2
05031 4615  
05032 6400          FSTA    OBJ
05033 6207  
            /       GOTO 5010
05034 1030          JA      #5010
05035 4603  
            
            /5130    IF(OBJ.NE.KNIFE.OR.KNFLOC.NE.LOC)GOTO 5140
05036 0400  #5130,  FLDA    OBJ
05037 6207  
05040 2400          FSUB    KNIFE
05041 4573  
05042 1040          JNE     #5140
05043 5061  
05044 0400          FLDA    KNFLOC
05045 4766  
05046 2400          FSUB    LOC
05047 0014  
05050 1040          JNE     #5140
05051 5061  
            /       KNFLOC=-1
05052 0372          FLDA    MINUS1
05053 6400          FSTA    KNFLOC
05054 4766  
            /       SPK=116
05055 0313          FLDA    #LIT+170
05056 6221          FSTA    SPK
RALF V50A   24-JUL-20    PAGE 3-44

            /       GOTO 2011
05057 1030          JA      #2011
05060 3372  
            
            /5140    IF(OBJ.NE.ROD.OR..NOT.HERE(ROD2))GOTO 5190
05061 0400  #5140,  FLDA    OBJ
05062 6207  
05063 2400          FSUB    ROD
05064 4524  
05065 1040          JNE     #5190
05066 5103  
05067 0400          FLDA    ROD2
05070 4527  
05071 1120          JSA     HERE
05072 0667  
05073 1000          JEQ     #5190
05074 5103  
            /       OBJ=ROD2
05075 0400          FLDA    ROD2
05076 4527  
05077 6400          FSTA    OBJ
05100 6207  
            /       GOTO 5010
05101 1030          JA      #5010
05102 4603  
            
            /5190    IF((VERB.EQ.FIND.OR.VERB.EQ.INVENT).AND.WD2.EQ.0)GOTO 5010
05103 0400  #5190,  FLDA    VERB
05104 6220  
05105 2400          FSUB    INVENT
05106 4755  
05107 1000          JEQ     .+10
05110 5117  
05111 0400          FLDA    VERB
05112 6220  
05113 2400          FSUB    FIND
05114 4752  
05115 1040          JNE     .+5
05116 5122  
05117 0224          FLDA    WD2
05120 1000          JEQ     #5010
05121 4603  
            /       TYPE 5199
05122 1130          JSR     SIXOUT
05123 0000  
05124 1030          JA      .+10
05125 5134  
05126 1032          JA      #5199
05127 0023  
05130 1030          JA      ZERO
05131 0160  
05132 1030          JA      TWO
05133 0166  
            
            /5199    FORMAT(' I don''t see any ',$)
            
RALF V50A   24-JUL-20    PAGE 3-45

            /       CALL A5TOA1(WD1,WD1A,WD1X,'.')
            /       GOTO 2012
05134 1130          JSR     A5TOA1
05135 0000  
05136 1030          JA      #2012
05137 3400  
05140 1030          JA      WD1
05141 0111  
05142 1030          JA      WD1X
05143 0114  
05144 1030          JA      TQDOT
05145 0554  
            
            /C FIGURE OUT THE NEW LOCATION
            /C
            /C GIVEN THE CURRENT LOCATION IN "LOC", AND A MOTION VERB NUMBER IN "K", PUT
            /C THE NEW LOCATION IN "NEWLOC". THE CURRENT LOC IS SAVED IN "OLDLOC" IN CASE
            /C HE WANTS TO RETREAT. THE CURRENT OLDLOC IS SAVED IN OLDLC2, IN CASE HE
            /C DIES. (IF HE DOES, NEWLOC WILL BE LIMBO, AND OLDLOC WILL BE WHAT KILLED
            /C HIM, SO WE NEED OLDLC2, WHICH IS THE LAST PLACE HE WAS SAFE.)
            /C
            /8       KK=KEY(LOC)
05146 0400  #8,     FLDA    LOC
05147 0014  
05150 0027          ATX     7
05151 0470          FLDA    KEY-3,7
05152 0157  
05153 6400          FSTA    KK
05154 6330  
            /       NEWLOC=LOC
05155 0400          FLDA    LOC
05156 0014  
05157 6400          FSTA    NEWLOC
05160 0157  
            /       IF(KK.EQ.0)CALL BUG(26)
05161 0400          FLDA    KK
05162 6330  
05163 1040          JNE     .+10
05164 5173  
05165 1130          JSR     BUG
05166 0000  
05167 1030          JA      .+4
05170 5173  
05171 1030          JA      #LIT+55
05172 0251  
            /       IF(K.EQ.NULL)GOTO 2
05173 0400          FLDA    K
05174 6215  
05175 2400          FSUB    NULL
05176 4730  
05177 1000          JEQ     #2
05200 1146  
            /       IF(K.EQ.BACK)GOTO 20
05201 0400          FLDA    K
05202 6215  
05203 2400          FSUB    BACK
RALF V50A   24-JUL-20    PAGE 3-46

05204 4717  
05205 1000          JEQ     #20
05206 6142  
            /       IF(K.EQ.LOOK)GOTO 30
05207 0400          FLDA    K
05210 6215  
05211 2400          FSUB    LOOK
05212 4722  
05213 1000          JEQ     #30
05214 6353  
            /       IF(K.EQ.CAVE)GOTO 40
05215 0400          FLDA    K
05216 6215  
05217 2400          FSUB    CAVE
05220 4725  
05221 1000          JEQ     #40
05222 6404  
            /       OLDLC2=OLDLOC
05223 0400          FLDA    OLDLOC
05224 0011  
05225 6400          FSTA    OLDLC2
05226 0006  
            /       OLDLOC=LOC
05227 0400          FLDA    LOC
05230 0014  
05231 6400          FSTA    OLDLOC
05232 0011  
            /C
            /9       LL=IABS(TRAVEL(KK))
05233 1130  #9,     JSR     GETWRD
05234 0000  
05235 1030          JA      .+10
05236 5245  
05237 1030          JA      TRAVEL
05240 1667  
05241 1030          JA      KK
05242 6330  
05243 1030          JA      ZERO
05244 0160  
05245 6227          FSTA    #TMP
05246 1130          JSR     IABS
05247 0000  
05250 1030          JA      .+4
05251 5254  
05252 1030          JA      #TMP
05253 0130  
05254 6216          FSTA    LL
            /       IF(LL.EQ.1 .OR. LL.EQ.K)GOTO 10
05255 2240          FSUB    ONE
05256 1000          JEQ     #10
05257 5306  
05260 0216          FLDA    LL
05261 2400          FSUB    K
05262 6215  
05263 1000          JEQ     #10
05264 5306  
RALF V50A   24-JUL-20    PAGE 3-47

            /       IF(TRAVEL(KK).LT.0)GOTO 50
05265 1130          JSR     GETWRD
05266 0000  
05267 1030          JA      .+10
05270 5277  
05271 1030          JA      TRAVEL
05272 1667  
05273 1030          JA      KK
05274 6330  
05275 1030          JA      ZERO
05276 0160  
05277 1050          JLT     #50
05300 6425  
            /       KK=KK+1
05301 0240          FLDA    ONE
05302 5400          FADDM   KK
05303 6330  
            /       GOTO 9
05304 1030          JA      #9
05305 5233  
            
            /C
            /10      NEWLOC=TRVCON(KK)
05306 1130  #10,    JSR     GETWRD
05307 0000  
05310 1030          JA      .+10
05311 5320  
05312 1030          JA      TRVCON
05313 3245  
05314 1030          JA      KK
05315 6330  
05316 1030          JA      ZERO
05317 0160  
05320 6400          FSTA    NEWLOC
05321 0157  
            /       K=MOD(NEWLOC,100)
05322 1130          JSR     MOD
05323 0000  
05324 1030          JA      .+6
05325 5332  
05326 1030          JA      NEWLOC
05327 0157  
05330 1030          JA      #LIT+154
05331 0350  
05332 6400          FSTA    K
05333 6215  
            /       IF(NEWLOC.LE.300)GOTO 13
05334 0400          FLDA    NEWLOC
05335 0157  
05336 2345          FSUB    #LIT+306
05337 1020          JLE     #13
05340 5466  
            /       IF(PROP(K).NE.NEWLOC/100-3)GOTO 16
05341 0400          FLDA    K
05342 6215  
05343 0027          ATX     7
RALF V50A   24-JUL-20    PAGE 3-48

05344 0400          FLDA    NEWLOC
05345 0157  
05346 3307          FDIV    #LIT+154
05347 1120          JSA     #FIX
05350 0000  
05351 2242          FSUB    THREE
05352 2470          FSUB    PROP-3,7
05353 3647  
05354 1040          JNE     #16
05355 5534  
            /C
            /C TRY NEXT ENTRY IN TRAVEL TABLE
            /C
            /12      IF(TRAVEL(KK).LT.0)CALL BUG(25)
05356 1130  #12,    JSR     GETWRD
05357 0000  
05360 1030          JA      .+10
05361 5370  
05362 1030          JA      TRAVEL
05363 1667  
05364 1030          JA      KK
05365 6330  
05366 1030          JA      ZERO
05367 0160  
05370 1010          JGE     .+10
05371 5400  
05372 1130          JSR     BUG
05373 0000  
05374 1030          JA      .+4
05375 5400  
05376 1030          JA      #LIT+52
05377 0246  
            /       KK=KK+1
05400 0400          FLDA    KK
05401 6330  
05402 6227          FSTA    #TMP
05403 1240          FADD    ONE
05404 6400          FSTA    KK
05405 6330  
            
            /C MAKE SURE HE DOESN'T GO THROUGH SAME TEST AGAIN
            /C
            /       IF(TRVCON(KK-1).EQ.TRVCON(KK) .AND. TRVLOC(KK-1).EQ.TRVLOC(KK))
            /       1       GOTO 12
05406 1130          JSR     GETWRD
05407 0000  
05410 1030          JA      .+10
05411 5420  
05412 1030          JA      TRVCON
05413 3245  
05414 1030          JA      #TMP
05415 0130  
05416 1030          JA      ZERO
05417 0160  
05420 6230          FSTA    #TMP+3
05421 1130          JSR     GETWRD
RALF V50A   24-JUL-20    PAGE 3-49

05422 0000  
05423 1030          JA      .+10
05424 5433  
05425 1030          JA      TRVCON
05426 3245  
05427 1030          JA      KK
05430 6330  
05431 1030          JA      ZERO
05432 0160  
05433 2230          FSUB    #TMP+3
05434 1040          JNE     #10
05435 5306  
            
05436 1130          JSR     GETWRD
05437 0000  
05440 1030          JA      .+10
05441 5450  
05442 1030          JA      TRVLOC
05443 4623  
05444 1030          JA      #TMP
05445 0130  
05446 1030          JA      ZERO
05447 0160  
05450 6230          FSTA    #TMP+3
            
05451 1130          JSR     GETWRD
05452 0000  
05453 1030          JA      .+10
05454 5463  
05455 1030          JA      TRVLOC
05456 4623  
05457 1030          JA      #TMP
05460 0130  
05461 2230          FSUB    #TMP+3
05462 1000          JEQ     #12
05463 5356  
            /       GO TO 10
05464 1030          JA      #10
05465 5306  
            /C
            /13      IF(NEWLOC.LE.100)GOTO 14
05466 0400  #13,    FLDA    NEWLOC
05467 0157  
05470 2307          FSUB    #LIT+154
05471 1020          JLE     #14
05472 5520  
            /       IF(TOTING(K).OR.(NEWLOC.GT.200.AND.AT(K)))GOTO 16
05473 0400          FLDA    K
05474 6215  
05475 1120          JSA     TOTING
05476 0622  
05477 1040          JNE     #16
05500 5534  
05501 0100          LDX     310,0   /200
05502 0310  
05503 0030          XTA     0
RALF V50A   24-JUL-20    PAGE 3-50

05504 2400          FSUB    NEWLOC
05505 0157  
05506 1060          JGT     #12
05507 5356  
05510 0400          FLDA    K
05511 6215  
05512 1120          JSA     AT
05513 0634  
05514 1040          JNE     #16
05515 5534  
            /       GOTO 12
05516 1030          JA      #12
05517 5356  
            
            /C
            /14      IF(NEWLOC.NE.0.AND..NOT.PCT(NEWLOC))GOTO 12
05520 0400  #14,    FLDA    NEWLOC
05521 0157  
05522 1000          JEQ     #16
05523 5534  
05524 1130          JSR     PCT
05525 0000  
05526 1030          JA      .+4
05527 5532  
05530 1030          JA      NEWLOC
05531 0157  
05532 1000          JEQ     #12
05533 5356  
            
            /16      NEWLOC=TRVLOC(KK)
05534 1130  #16,    JSR     GETWRD
05535 0000  
05536 1030          JA      .+10
05537 5546  
05540 1030          JA      TRVLOC
05541 4623  
05542 1030          JA      KK
05543 6330  
05544 1030          JA      ZERO
05545 0160  
05546 6400          FSTA    NEWLOC
05547 0157  
            /       IF(NEWLOC.LE.300)GOTO 2
05550 2345          FSUB    #LIT+306
05551 1020          JLE     #2
05552 1146  
            /       IF(NEWLOC.LE.500)GOTO 30000
05553 0400          FLDA    NEWLOC
05554 0157  
05555 2346          FSUB    #LIT+311
05556 1020          JLE     #30000
05557 5575  
            /       CALL RSPEAK(NEWLOC-500)
            /       FLDA    NEWLOC
            /       FSUB    #LIT+311
05560 6227          FSTA    #TMP
RALF V50A   24-JUL-20    PAGE 3-51

05561 1130          JSR     RSPEAK
05562 0000  
05563 1030          JA      .+4
05564 5567  
05565 1030          JA      #TMP
05566 0130  
            /       NEWLOC=LOC
05567 0400          FLDA    LOC
05570 0014  
05571 6400          FSTA    NEWLOC
05572 0157  
            /       GOTO 2
05573 1030          JA      #2
05574 1146  
            
            /C
            /C SPECIAL MOTIONS COME HERE. LABELLING CONVENTION: STATEMENT NUMBERS NNNXX
            /C (XX=00-99) ARE USED FOR SPECIAL CASE NUMBER NNN (NNN=301-500).
            /C
            /30000   NEWLOC=NEWLOC-300
05575 0400  #30000, FLDA    NEWLOC
05576 0157  
05577 2345          FSUB    #LIT+306
05600 6400          FSTA    NEWLOC
05601 0157  
            /       GOTO (30100,30200,30300)NEWLOC
            /       FLDA    NEWLOC
05602 0021          ATX     1
05603 0006          STARTD
05604 0410          FLDA    .+2,1
05605 5606  
05606 0005          STARTF
05607 0007          JAC
05610 1030          JA      #30100
05611 5624  
05612 1030          JA      #30200
05613 5660  
05614 1030          JA      #30300
05615 5670  
            /       CALL BUG(20)
05616 1130          JSR     BUG
05617 0000  
05620 1030          JA      .+4
05621 5624  
05622 1030          JA      #LIT+36
05623 0232  
            
            /C
            /C TRAVEL 301. PLOVER-ALCOVE PASSAGE. CAN CARRY ONLY EMERALD. NOTE: TRAVEL
            /C TABLE MUST INCLUDE "USELESS" ENTRIES GOING THROUGH PASSAGE, WHICH CAN NEVER
            /C BE USED FOR ACTUAL MOTION, BUT CAN BE SPOTTED BY "GO BACK".
            /C
            /30100   NEWLOC=99+100-LOC
05624 0343  #30100, FLDA    #LIT+300        /199
05625 2400          FSUB    LOC
05626 0014  
RALF V50A   24-JUL-20    PAGE 3-52

05627 6400          FSTA    NEWLOC
05630 0157  
            /       IF(HOLDNG.EQ.0.OR.(HOLDNG.EQ.1.AND.TOTING(EMRALD)))GOTO 2
05631 0400          FLDA    HOLDNG
05632 3162  
05633 1000          JEQ     #2
05634 1146  
05635 2240          FSUB    ONE
05636 1040          JNE     #M27
05637 5646  
05640 0400          FLDA    EMRALD
05641 4700  
05642 1120          JSA     TOTING
05643 0622  
05644 1040          JNE     #2
05645 1146  
            /       NEWLOC=LOC
05646 0400  #M27,   FLDA    LOC
05647 0014  
05650 6400          FSTA    NEWLOC
05651 0157  
            /       CALL RSPEAK(117)
            /       GOTO 2
05652 1130          JSR     RSPEAK
05653 0000  
05654 1030          JA      #2
05655 1146  
05656 1030          JA      #LIT+173
05657 0367  
            
            /C
            /C TRAVEL 302. PLOVER TRANSPORT. DROP THE EMERALD (ONLY USE SPECIAL TRAVEL IF
            /C TOTING IT), SO HE'S FORCED TO USE THE PLOVER-PASSAGE TO GET IT OUT. HAVING
            /C DROPPED IT, GO BACK AND PRETEND HE WASN'T CARRYING IT AFTER ALL.
            /C
            /30200   CALL DROP(EMRALD,LOC)
            /GOTO 12
05660 1130  #30200, JSR     DROP
05661 0000  
05662 1030          JA      #12
05663 5356  
05664 1030          JA      EMRALD
05665 4700  
05666 1030          JA      LOC
05667 0014  
            
            /C
            /C TRAVEL 303. TROLL BRIDGE. MUST BE DONE ONLY AS SPECIAL MOTION SO THAT
            /C DWARVES WON'T WANDER ACROSS AND ENCOUNTER THE BEAR. (THEY WON'T FOLLOW THE
            /C PLAYER THERE BECAUSE THAT REGION IS FORBIDDEN TO THE PIRATE.) IF
            /C PROP(TROLL)=1, HE'S CROSSED SINCE PAYING, SO STEP OUT AND BLOCK HIM.
            /C (STANDARD TRAVEL ENTRIES CHECK FOR PROP(TROLL)=0.) SPECIAL STUFF FOR BEAR.
            /C
            /30300   IF(PROP(TROLL).NE.1)GOTO 30310
05670 0400  #30300, FLDA    TROLL
05671 4634  
RALF V50A   24-JUL-20    PAGE 3-53

05672 0027          ATX     7
05673 0470          FLDA    PROP-3,7
05674 3647  
05675 2240          FSUB    ONE
05676 1040          JNE     #30310
05677 6025  
            /       CALL PSPEAK(TROLL,1)
05700 1130          JSR     PSPEAK
05701 0000  
05702 1030          JA      .+6
05703 5710  
05704 1030          JA      TROLL
05705 4634  
05706 1030          JA      ONE
05707 0163  
            /       PROP(TROLL)=0
05710 0002          FCLA
05711 6470          FSTA    PROP-3,7
05712 3647  
            /       CALL MOVE(TROLL2,0)
05713 1130          JSR     MOVE
05714 0000  
05715 1030          JA      .+6
05716 5723  
05717 1030          JA      TROLL2
05720 4637  
05721 1030          JA      ZERO
05722 0160  
            /       CALL MOVE(TROLL2+100,0)
05723 0400          FLDA    TROLL2
05724 4637  
05725 1307          FADD    #LIT+154
05726 6227          FSTA    #TMP
05727 1130          JSR     MOVE
05730 0000  
05731 1030          JA      .+6
05732 5737  
05733 1030          JA      #TMP
05734 0130  
05735 1030          JA      ZERO
05736 0160  
            /       CALL MOVE(TROLL,PLAC(TROLL))
05737 0400          FLDA    TROLL
05740 4634  
05741 0027          ATX     7
05742 0037          XTA     7
05743 4242          FMUL    THREE
05744 0010          ALN     0
05745 0006          STARTD
05746 1356          FADD    PPLAC
05747 6400          FSTA    .+11
05750 5760  
05751 0005          STARTF
05752 1130          JSR     MOVE
05753 0000  
05754 1030          JA      .+6
RALF V50A   24-JUL-20    PAGE 3-54

05755 5762  
05756 1030          JA      TROLL
05757 4634  
05760 1030          JA      .
05761 5760  
            /       CALL MOVE(TROLL+100,FIXD(TROLL))
05762 0400          FLDA    TROLL
05763 4634  
05764 1307          FADD    #LIT+154
05765 6227          FSTA    #TMP
05766 0400          FLDA    TROLL
05767 4634  
05770 0027          ATX     7
05771 0037          XTA     7
05772 4242          FMUL    THREE
05773 0010          ALN     0
05774 0006          STARTD
05775 1353          FADD    PFIXD
05776 6400          FSTA    .+11
05777 6007  
06000 0005          STARTF
06001 1130          JSR     MOVE
06002 0000  
06003 1030          JA      .+6
06004 6011  
06005 1030          JA      #TMP
06006 0130  
06007 1030          JA      .
06010 6007  
            /       CALL JUGGLE(CHASM)
06011 1130          JSR     JUGGLE
06012 0000  
06013 1030          JA      .+4
06014 6017  
06015 1030          JA      CHASM
06016 4631  
            /       NEWLOC=LOC
06017 0400          FLDA    LOC
06020 0014  
06021 6400          FSTA    NEWLOC
06022 0157  
            /       GOTO 2
06023 1030          JA      #2
06024 1146  
            
            /C
            /30310   NEWLOC=PLAC(TROLL)+FIXD(TROLL)-LOC
06025 0400  #30310, FLDA    TROLL
06026 4634  
06027 0027          ATX     7
06030 0470          FLDA    PLAC-3,7
06031 1061  
06032 1470          FADD    FIXD-3,7
06033 1535  
06034 2400          FSUB    LOC
06035 0014  
RALF V50A   24-JUL-20    PAGE 3-55

06036 6400          FSTA    NEWLOC
06037 0157  
            /       IF(PROP(TROLL).EQ.0)PROP(TROLL)=1
06040 0470          FLDA    PROP-3,7
06041 3647  
06042 1040          JNE     .+5
06043 6047  
06044 0240          FLDA    ONE
06045 6470          FSTA    PROP-3,7
06046 3647  
            /       IF(.NOT.TOTING(BEAR))GOTO 2
06047 0400          FLDA    BEAR
06050 4642  
06051 1120          JSA     TOTING
06052 0622  
06053 1000          JEQ     #2
06054 1146  
            /       CALL RSPEAK(162)
06055 1130          JSR     RSPEAK
06056 0000  
06057 1030          JA      .+4
06060 6063  
06061 1030          JA      #LIT+237
06062 0433  
            /       PROP(CHASM)=1
06063 0400          FLDA    CHASM
06064 4631  
06065 0027          ATX     7
06066 0240          FLDA    ONE
            /       PROP(TROLL)=2
06067 6470          FSTA    PROP-3,7
06070 3647  
06071 0400          FLDA    TROLL
06072 4634  
06073 0027          ATX     7
06074 0241          FLDA    TWO
06075 6470          FSTA    PROP-3,7
06076 3647  
            /       CALL DROP(BEAR,NEWLOC)
06077 1130          JSR     DROP
06100 0000  
06101 1030          JA      .+6
06102 6107  
06103 1030          JA      BEAR
06104 4642  
06105 1030          JA      NEWLOC
06106 0157  
            /       FIXED(BEAR)=-1
06107 0400          FLDA    BEAR
06110 4642  
06111 0027          ATX     7
06112 0372          FLDA    MINUS1
06113 6470          FSTA    FIXED-3,7
06114 2503  
            /       PROP(BEAR)=3
06115 0242          FLDA    THREE
RALF V50A   24-JUL-20    PAGE 3-56

06116 6470          FSTA    PROP-3,7
06117 3647  
            /       IF(PROP(SPICES).LT.0)TALLY2=TALLY2+1
06120 0400          FLDA    SPICES
06121 5070  
06122 0027          ATX     7
06123 0470          FLDA    PROP-3,7
06124 3647  
06125 1010          JGE     .+7
06126 6134  
06127 0400          FLDA    TALLY2
06130 4331  
06131 1240          FADD    ONE
06132 6400          FSTA    TALLY2
06133 4331  
            /       OLDLC2=NEWLOC
06134 0400          FLDA    NEWLOC
06135 0157  
06136 6400          FSTA    OLDLC2
06137 0006  
            /       GOTO 99
06140 1030          JA      #99
06141 6617  
            
            /C
            /C END OF SPECIALS.
            /C
            /C HANDLE "GO BACK". LOOK FOR VERB WHICH GOES FROM LOC TO OLDLOC, OR TO OLDLC2
            /C IF OLDLOC HAS FORCED-MOTION. K2 SAVES ENTRY -> FORCED LOC -> PREVIOUS LOC.
            /C
            /20      K=OLDLOC
06142 0400  #20,    FLDA    OLDLOC
06143 0011  
06144 6400          FSTA    K
06145 6215  
            /       IF(FORCED(K))K=OLDLC2
            /       FLDA    K
06146 1120          JSA     FORCED
06147 0655  
06150 1000          JEQ     .+6
06151 6156  
06152 0400          FLDA    OLDLC2
06153 0006  
06154 6400          FSTA    K
06155 6215  
            /       OLDLC2=OLDLOC
06156 0400          FLDA    OLDLOC
06157 0011  
06160 6400          FSTA    OLDLC2
06161 0006  
            /       OLDLOC=LOC
06162 0400          FLDA    LOC
06163 0014  
06164 6400          FSTA    OLDLOC
06165 0011  
            /       K2=0
RALF V50A   24-JUL-20    PAGE 3-57

06166 0002          FCLA
06167 6215          FSTA    K2
            /       IF(K.NE.LOC)GOTO 21
06170 0400          FLDA    K
06171 6215  
06172 2400          FSUB    LOC
06173 0014  
06174 1040          JNE     #21
06175 6204  
            /       CALL RSPEAK(91)
            /       GOTO 2
06176 1130          JSR     RSPEAK
06177 0000  
06200 1030          JA      #2
06201 1146  
06202 1030          JA      #LIT+140
06203 0334  
            
            /C
            /21      LL=TRVLOC(KK)
06204 1130  #21,    JSR     GETWRD
06205 0000  
06206 1030          JA      .+10
06207 6216  
06210 1030          JA      TRVLOC
06211 4623  
06212 1030          JA      KK
06213 6330  
06214 1030          JA      ZERO
06215 0160  
06216 6216          FSTA    LL
            /       IF(LL.EQ.K)GOTO 25
06217 2400          FSUB    K
06220 6215  
06221 1000          JEQ     #25
06222 6317  
            /       IF(LL.GT.300)GOTO 22
06223 0216          FLDA    LL
06224 2345          FSUB    #LIT+306
06225 1060          JGT     #22
06226 6263  
            /       J=KEY(LL)
06227 0216          FLDA    LL
06230 0027          ATX     7
06231 0470          FLDA    KEY-3,7
06232 0157  
06233 6400          FSTA    J
06234 6212  
            /       IF(FORCED(LL).AND.TRVLOC(KK).EQ.K)K2=KK
06235 0216          FLDA    LL
06236 1120          JSA     FORCED
06237 0655  
06240 1000          JEQ     #22
06241 6263  
06242 1130          JSR     GETWRD
06243 0000  
RALF V50A   24-JUL-20    PAGE 3-58

06244 1030          JA      .+10
06245 6254  
06246 1030          JA      TRVLOC
06247 4623  
06250 1030          JA      KK
06251 6330  
06252 1030          JA      ZERO
06253 0160  
06254 2400          FSUB    K
06255 6215  
06256 1040          JNE     #22
06257 6263  
06260 0400          FLDA    KK
06261 6330  
06262 6215          FSTA    K2
            /22      IF(TRAVEL(KK).LT.0)GOTO 23
06263 1130  #22,    JSR     GETWRD
06264 0000  
06265 1030          JA      .+10
06266 6275  
06267 1030          JA      TRAVEL
06270 1667  
06271 1030          JA      KK
06272 6330  
06273 1030          JA      ZERO
06274 0160  
06275 1050          JLT     #23
06276 6304  
            /       KK=KK+1
06277 0240          FLDA    ONE
06300 5400          FADDM   KK
06301 6330  
            /       GOTO 21
06302 1030          JA      #21
06303 6204  
            
            /C
            /23      KK=K2
06304 0215  #23,    FLDA    K2
06305 6400          FSTA    KK
06306 6330  
            /       IF(KK.NE.0)GOTO 25
06307 1040          JNE     #25
06310 6317  
            /       CALL RSPEAK(140)
            /       GOTO 2
06311 1130          JSR     RSPEAK
06312 0000  
06313 1030          JA      #2
06314 1146  
06315 1030          JA      #LIT+223
06316 0417  
            
            /C
            /25      K=IABS(TRAVEL(KK))
06317 1130  #25,    JSR     GETWRD
RALF V50A   24-JUL-20    PAGE 3-59

06320 0000  
06321 1030          JA      .+10
06322 6331  
06323 1030          JA      TRAVEL
06324 1667  
06325 1030          JA      KK
06326 6330  
06327 1030          JA      ZERO
06330 0160  
06331 6227          FSTA    #TMP
06332 1130          JSR     IABS
06333 0000  
06334 1030          JA      .+4
06335 6340  
06336 1030          JA      #TMP
06337 0130  
06340 6400          FSTA    K
06341 6215  
            /       KK=KEY(LOC)
06342 0400          FLDA    LOC
06343 0014  
06344 0027          ATX     7
06345 0470          FLDA    KEY-3,7
06346 0157  
06347 6400          FSTA    KK
06350 6330  
            /       GOTO 9
06351 1030          JA      #9
06352 5233  
            
            /C
            /C LOOK. CAN'T GIVE MORE DETAIL. PRETEND IT WASN'T DARK (THOUGH IT MAY "NOW"
            /C BE DARK) SO HE WON'T FALL INTO A PIT WHILE STARING INTO THE GLOOM.
            /C
            /30      IF(DETAIL.LT.3)CALL RSPEAK(15)
06353 0400  #30,    FLDA    DETAIL
06354 4771  
06355 2242          FSUB    THREE
06356 1010          JGE     .+10
06357 6366  
06360 1130          JSR     RSPEAK
06361 0000  
06362 1030          JA      .+4
06363 6366  
06364 1030          JA      #LIT+25
06365 0221  
            /       DETAIL=DETAIL+1
06366 0240          FLDA    ONE
06367 5400          FADDM   DETAIL
06370 4771  
            /       WZDARK=.FALSE.
06371 0002          FCLA
06372 6400          FSTA    WZDARK
06373 0025  
            /       ABB(LOC)=0
06374 0400          FLDA    LOC
RALF V50A   24-JUL-20    PAGE 3-60

06375 0014  
06376 0027          ATX     7
06377 0002          FCLA
06400 6477          FSTA    ABB-3,7
06401 7775  
            /       GOTO 2
06402 1030          JA      #2
06403 1146  
            
            /C
            /C CAVE. DIFFERENT MESSAGES DEPENDING ON WHETHER ABOVE GROUND.
            /C
            /40      IF(LOC.LT.8)CALL RSPEAK(57)
06404 0400  #40,    FLDA    LOC
06405 0014  
06406 2246          FSUB    #LIT+11
06407 1010          JGE     .+10
06410 6417  
06411 1130          JSR     RSPEAK
06412 0000  
06413 1030          JA      #2
06414 1146  
06415 1030          JA      #LIT+116
06416 0312  
            /       IF(LOC.GE.8)CALL RSPEAK(58)
            /       GOTO 2
06417 1130          JSR     RSPEAK
06420 0000  
06421 1030          JA      #2
06422 1146  
06423 1030          JA      #LIT+121
06424 0315  
            
            /C
            /C NON-APPLICABLE MOTION. VARIOUS MESSAGES DEPENDING ON WORD GIVEN.
            /C
            /50      SPK=12
06425 0251  #50,    FLDA    #LIT+22
06426 6221          FSTA    SPK
            /       IF(K.GE.43.AND.K.LE.50)SPK=9
06427 0100          LDX     53,0    /43
06430 0053  
06431 0030          XTA     0
06432 2400          FSUB    K
06433 6215  
06434 1010          JGE     .+7
06435 6443  
06436 0400          FLDA    K
06437 6215  
06440 2273          FSUB    #LIT+110
06441 1020          JLE     #M31
06442 6457  
            /       IF(K.EQ.29.OR.K.EQ.30)SPK=9
06443 0100          LDX     35,0    /29
06444 0035  
06445 0030          XTA     0
RALF V50A   24-JUL-20    PAGE 3-61

06446 2400          FSUB    K
06447 6215  
06450 1000          JEQ     #M31
06451 6457  
06452 1240          FADD    ONE
06453 1000          JEQ     #M31
06454 6457  
06455 1030          JA      #M33
06456 6577  
06457 0247  #M31,   FLDA    #LIT+14
06460 6221          FSTA    SPK
06461 1030          JA      #M32
06462 6532  
            /       IF(K.EQ.7.OR.K.EQ.36.OR.K.EQ.37)SPK=10
06463 0100          LDX     7,0
06464 0007  
06465 0030          XTA     0
06466 2400          FSUB    K
06467 6215  
06470 1000          JEQ     #M34
06471 6504  
06472 0100          LDX     44,0
06473 0044  
06474 0030          XTA     0
06475 2400          FSUB    K
06476 6215  
06477 1000          JEQ     #M34
06500 6504  
06501 1240          FADD    ONE
06502 1040          JNE     #M35
06503 6510  
06504 0250  #M34,   FLDA    #LIT+17
06505 6221          FSTA    SPK
06506 1030          JA      #M32
06507 6532  
            /       IF(K.EQ.11.OR.K.EQ.19)SPK=11
06510 0100  #M35,   LDX     13,0    /11
06511 0013  
06512 0030          XTA     0
06513 2400          FSUB    K
06514 6215  
06515 1000          JEQ     #M36
06516 6526  
06517 0100          LDX     23,0    /19
06520 0023  
06521 0030          XTA     0
06522 2400          FSUB    K
06523 6215  
06524 1040          JNE     #M32
06525 6532  
06526 0100  #M36,   LDX     13,0
06527 0013  
06530 0030          XTA     0
06531 6221          FSTA    SPK
            /       IF(VERB.EQ.FIND.OR.VERB.EQ.INVENT)SPK=59
06532 0400  #M32,   FLDA    VERB
RALF V50A   24-JUL-20    PAGE 3-62

06533 6220  
06534 2400          FSUB    INVENT
06535 4755  
06536 1000          JEQ     #M37
06537 6546  
06540 0400          FLDA    VERB
06541 6220  
06542 2400          FSUB    FIND
06543 4752  
06544 1040          JNE     #M38
06545 6552  
06546 0100  #M37,   LDX     73,0    /59
06547 0073  
06550 0030          XTA     0
06551 6221          FSTA    SPK
            /       IF(K.EQ.62.OR.K.EQ.65)SPK=42
06552 0400  #M38,   FLDA    K
06553 6215  
06554 2277          FSUB    #LIT+124
06555 1000          JEQ     #M39
06556 6562  
06557 2242          FSUB    THREE
06560 1040          JNE     #M40
06561 6566  
06562 0100  #M39,   LDX     52,0    /42
06563 0052  
06564 0030          XTA     0
06565 6221          FSTA    SPK
            /       IF(K.EQ.17)SPK=80
06566 0400  #M40,   FLDA    K
06567 6215  
06570 2254          FSUB    #LIT+33
06571 1040          JNE     #M33
06572 6577  
06573 0100          LDX     120,0   /80
06574 0120  
06575 0030          XTA     0
06576 6221          FSTA    SPK
            /       CALL RSPEAK(SPK)
            /       GOTO 2
06577 1130  #M33,   JSR     RSPEAK
06600 0000  
06601 1030          JA      #2
06602 1146  
06603 1030          JA      SPK
06604 0106  
            
            /C "YOU'RE DEAD, JIM."
            /C
            /C IF THE CURRENT LOC IS ZERO, IT MEANS THE CLOWN GOT HIMSELF KILLED. WE'LL
            /C ALLOW THIS MAXDIE TIMES. MAXDIE IS AUTOMATICALLY SET BASED ON THE NUMBER OF
            /C SNIDE MESSAGES AVAILABLE. EACH DEATH RESULTS IN A MESSAGE (81, 83, ETC.)
            /C WHICH OFFERS REINCARNATION; IF ACCEPTED, THIS RESULTS IN MESSAGE 82, 84,
            /C ETC. THE LAST TIME, IF HE WANTS ANOTHER CHANCE, HE GETS A SNIDE REMARK AS
            /C WE EXIT. WHEN REINCARNATED, ALL OBJECTS BEING CARRIED GET DROPPED AT OLDLC2
            /C (PRESUMABLY THE LAST PLACE PRIOR TO BEING KILLED) WITHOUT CHANGE OF PROPS.
RALF V50A   24-JUL-20    PAGE 3-63

            /C THE LOOP RUNS BACKWARDS TO ASSURE THAT THE BIRD IS DROPPED BEFORE THE CAGE.
            /C (THIS KLUGE COULD BE CHANGED ONCE WE'RE SURE ALL REFERENCES TO BIRD AND CAGE
            /C ARE DONE BY KEYWORDS.) THE LAMP IS A SPECIAL CASE (IT WOULDN'T DO TO LEAVE
            /C IT IN THE CAVE). IT IS TURNED OFF AND LEFT OUTSIDE THE BUILDING (ONLY IF HE
            /C WAS CARRYING IT, OF COURSE). HE HIMSELF IS LEFT INSIDE THE BUILDING (AND
            /C HEAVEN HELP HIM IF HE TRIES TO XYZZY BACK INTO THE CAVE WITHOUT THE LAMP!).
            /C OLDLOC IS ZAPPED SO HE CAN'T JUST "RETREAT".
            /C
            /C THE EASIEST WAY TO GET KILLED IS TO FALL INTO A PIT IN PITCH DARKNESS.
            /C
            /90      CALL RSPEAK(23)
06605 1130  #90,    JSR     RSPEAK
06606 0000  
06607 1030          JA      .+4
06610 6613  
06611 1030          JA      #LIT+44
06612 0240  
            /       OLDLC2=LOC
06613 0400          FLDA    LOC
06614 0014  
06615 6400          FSTA    OLDLC2
06616 0006  
            /C
            /C OKAY, HE'S DEAD. LET'S GET ON WITH IT.
            /C
            /99      IF(CLOSNG)GOTO 95
06617 0400  #99,    FLDA    CLOSNG
06620 5024  
06621 1040          JNE     #95
06622 6775  
            /       YEA=YES(81+NUMDIE*2,82+NUMDIE*2,54)
06623 0400          FLDA    NUMDIE
06624 4777  
06625 1400          FADD    NUMDIE
06626 4777  
06627 1301          FADD    #LIT+132
06630 6227          FSTA    #TMP
06631 0227          FLDA    #TMP
06632 1240          FADD    ONE
06633 6230          FSTA    #TMP+3
06634 1130          JSR     YES
06635 0000  
06636 1030          JA      .+10
06637 6646  
06640 1030          JA      #TMP
06641 0130  
06642 1030          JA      #TMP+3
06643 0133  
06644 1030          JA      #LIT+113
06645 0307  
06646 6226          FSTA    YEA
            /       NUMDIE=NUMDIE+1
06647 0400          FLDA    NUMDIE
06650 4777  
06651 1240          FADD    ONE
06652 6400          FSTA    NUMDIE
RALF V50A   24-JUL-20    PAGE 3-64

06653 4777  
            /       IF(NUMDIE.EQ.MAXDIE.OR..NOT.YEA)GOTO 20000
06654 2400          FSUB    MAXDIE
06655 5002  
06656 1001          JEQ     #20000
06657 7020  
06660 0226          FLDA    YEA
06661 1001          JEQ     #20000
06662 7020  
            /       PLACE(WATER)=0
06663 0400          FLDA    WATER
06664 4604  
06665 0027          ATX     7
06666 0002          FCLA
06667 6470          FSTA    PLACE-3,7
06670 2027  
            /       PLACE(OIL)=0
06671 0400          FLDA    OIL
06672 4607  
06673 0027          ATX     7
06674 0002          FCLA
06675 6470          FSTA    PLACE-3,7
06676 2027  
            /       IF(TOTING(LAMP))PROP(LAMP)=0
06677 0400          FLDA    LAMP
06700 4513  
06701 1120          JSA     TOTING
06702 0622  
06703 1000          JEQ     .+10
06704 6713  
06705 0400          FLDA    LAMP
06706 4513  
06707 0027          ATX     7
06710 0002          FCLA
06711 6470          FSTA    PROP-3,7
06712 3647  
            /       DO 98 J=1,100
06713 0240          FLDA    ONE
06714 6400          FSTA    J
06715 6212  
            
            /       I=101-J
06716 0100  #G0150, LDX     145,0   /101
06717 0145  
06720 0030          XTA     0
06721 2400          FSUB    J
06722 6212  
06723 6400          FSTA    I
06724 0000  
            /       IF(.NOT.TOTING(I))GOTO 98
06725 1120          JSA     TOTING
06726 0622  
06727 1000          JEQ     #98
06730 6756  
            /       K=OLDLC2
06731 0400          FLDA    OLDLC2
RALF V50A   24-JUL-20    PAGE 3-65

06732 0006  
06733 6400          FSTA    K
06734 6215  
            /       IF(I.EQ.LAMP)K=1
06735 0400          FLDA    I
06736 0000  
06737 2400          FSUB    LAMP
06740 4513  
06741 1040          JNE     .+5
06742 6746  
06743 0240          FLDA    ONE
06744 6400          FSTA    K
06745 6215  
            /       CALL DROP(I,K)
06746 1130          JSR     DROP
06747 0000  
06750 1030          JA      .+6
06751 6756  
06752 1030          JA      I
06753 0000  
06754 1030          JA      K
06755 6215  
            
            /98      CONTINUE
06756 0400  #98,    FLDA    J
06757 6212  
06760 1240          FADD    ONE
06761 6400          FSTA    J
06762 6212  
06763 2307          FSUB    #LIT+154
06764 1020          JLE     #G0150
06765 6716  
            /       LOC=3
06766 0242          FLDA    THREE
            /       OLDLOC=LOC
06767 6400          FSTA    LOC
06770 0014  
06771 6400          FSTA    OLDLOC
06772 0011  
            /       GOTO 2000
06773 1030          JA      #2000
06774 2760  
            
            /C
            /C HE DIED DURING CLOSING TIME. NO RESURRECTION. TALLY UP A DEATH AND EXIT.
            /C
            /95      CALL RSPEAK(131)
06775 1130  #95,    JSR     RSPEAK
06776 0000  
06777 1030          JA      .+4
07000 7003  
07001 1030          JA      #LIT+212
07002 0406  
            /       NUMDIE=NUMDIE+1
07003 0240          FLDA    ONE
07004 5400          FADDM   NUMDIE
RALF V50A   24-JUL-20    PAGE 3-66

07005 4777  
            /       GOTO 20000
07006 1031          JA      #20000
07007 7020  
            
            /C ROUTINES FOR PERFORMING THE VARIOUS ACTION VERBS
            /C
            /C STATEMENT NUMBERS IN THIS SECTION ARE 8000 FOR INTRANSITIVE VERBS, 9000 FOR
            /C TRANSITIVE, PLUS TEN TIMES THE VERB NUMBER. MANY INTRANSITIVE VERBS USE THE
            /C TRANSITIVE CODE, AND SOME VERBS USE CODE FOR OTHER VERBS, AS NOTED BELOW.
            /C
            /C RANDOM INTRANSITIVE VERBS COME HERE. CLEAR OBJ JUST IN CASE (SEE "ATTACK").
            /C
            /8000    TYPE 8002
07010 1130  #8000,  JSR     SIXOUT
07011 0000  
07012 1030          JA      .+10
07013 7022  
07014 1032          JA      #8002
07015 0035  
07016 1030          JA      ZERO
07017 0160  
07020 1030          JA      TWO
07021 0166  
            
            /8002    FORMAT(' I don''t understand "',$)
            /       CALL A5TOA1(WD1,WD1A,WD1X,'".')
07022 1130          JSR     A5TOA1
07023 0000  
07024 1030          JA      .+10
07025 7034  
07026 1030          JA      WD1
07027 0111  
07030 1030          JA      WD1X
07031 0114  
07032 1030          JA      TQDOT
07033 0554  
            /       OBJ=0
07034 0002          FCLA
07035 6400          FSTA    OBJ
07036 6207  
07037 3000          TRAP3   #WRITO
07040 0000  
07041 1030          JA      #LIT
07042 0174  
07043 1030          JA      #LINEF+2
07044 4650  
07045 3000          TRAP3   #RENDO
07046 0000  
            /       GOTO 2600
07047 1030          JA      #2600
07050 3405  
            
            /C
            /C CARRY, NO OBJECT GIVEN YET. OK IF ONLY ONE OBJECT PRESENT.
            /C
RALF V50A   24-JUL-20    PAGE 3-67

            /8010    IF(ATLOC(LOC).EQ.0.OR.LINK(ATLOC(LOC)).NE.0)GOTO 8000
07051 0400  #8010,  FLDA    LOC
07052 0014  
07053 0027          ATX     7
07054 0477          FLDA    ATLOC-3,7
07055 7775  
07056 1000          JEQ     #8000
07057 7010  
07060 0026          ATX     6
07061 0460          FLDA    LINK-3,6
07062 0677  
07063 1040          JNE     #8000
07064 7010  
            /       DO 8012 I=1,5
07065 0240          FLDA    ONE
07066 6400          FSTA    I
07067 0000  
            
            /       IF(DLOC(I).EQ.LOC.AND.DFLAG.GE.2)GOTO 8000
07070 0400  #G0152, FLDA    I
07071 0000  
07072 0027          ATX     7
07073 0470          FLDA    DLOC-3,7
07074 4460  
07075 2400          FSUB    LOC
07076 0014  
07077 1040          JNE     #8012
07100 7106  
07101 0400          FLDA    DFLAG
07102 4460  
07103 2241          FSUB    TWO
07104 1010          JGE     #8000
07105 7010  
            
            /8012    CONTINUE
07106 0400  #8012,  FLDA    I
07107 0000  
07110 1240          FADD    ONE
07111 6400          FSTA    I
07112 0000  
07113 2244          FSUB    #LIT+3
07114 1020          JLE     #G0152
07115 7070  
            /       OBJ=ATLOC(LOC)
07116 0400          FLDA    LOC
07117 0014  
07120 0027          ATX     7
07121 0477          FLDA    ATLOC-3,7
07122 7775  
07123 6400          FSTA    OBJ
07124 6207  
            
            /C
            /C CARRY AN OBJECT. SPECIAL CASES FOR BIRD AND CAGE (IF BIRD IN CAGE, CAN'T
            /C TAKE ONE WITHOUT THE OTHER. LIQUIDS ALSO SPECIAL, SINCE THEY DEPEND ON
            /C STATUS OF BOTTLE. ALSO VARIOUS SIDE EFFECTS, ETC.
RALF V50A   24-JUL-20    PAGE 3-68

            /C
            /9010    IF(TOTING(OBJ))GOTO 2011
07125 0400  #9010,  FLDA    OBJ
07126 6207  
07127 1120          JSA     TOTING
07130 0622  
07131 1040          JNE     #2011
07132 3372  
            /       SPK=25
07133 0261          FLDA    #LIT+52
07134 6221          FSTA    SPK
            /       IF(OBJ.EQ.PLANT.AND.PROP(PLANT).LE.0)SPK=115
07135 0400          FLDA    OBJ
07136 6207  
07137 2400          FSUB    PLANT
07140 4612  
07141 1040          JNE     .+13
07142 7154  
07143 0400          FLDA    PLANT
07144 4612  
07145 0027          ATX     7
07146 0470          FLDA    PROP-3,7
07147 3647  
07150 1060          JGT     .+4
07151 7154  
07152 0312          FLDA    #LIT+165
07153 6221          FSTA    SPK
            /       IF(OBJ.EQ.BEAR.AND.PROP(BEAR).EQ.1)SPK=169
07154 0400          FLDA    OBJ
07155 6207  
07156 2400          FSUB    BEAR
07157 4642  
07160 1040          JNE     .+16
07161 7176  
07162 0400          FLDA    BEAR
07163 4642  
07164 0027          ATX     7
07165 0470          FLDA    PROP-3,7
07166 3647  
07167 2240          FSUB    ONE
07170 1040          JNE     .+6
07171 7176  
07172 0100          LDX     251,0   /169
07173 0251  
07174 0030          XTA     0
07175 6221          FSTA    SPK
            /       IF(OBJ.EQ.CHAIN.AND.PROP(BEAR).NE.0)SPK=170
07176 0400          FLDA    OBJ
07177 6207  
07200 2400          FSUB    CHAIN
07201 4714  
07202 1040          JNE     .+15
07203 7217  
07204 0400          FLDA    BEAR
07205 4642  
07206 0027          ATX     7
RALF V50A   24-JUL-20    PAGE 3-69

07207 0470          FLDA    PROP-3,7
07210 3647  
07211 1000          JEQ     .+6
07212 7217  
07213 0100          LDX     252,0   /170
07214 0252  
07215 0030          XTA     0
07216 6221          FSTA    SPK
            /       IF(FIXED(OBJ).NE.0)GOTO 2011
07217 0400          FLDA    OBJ
07220 6207  
07221 0027          ATX     7
07222 0470          FLDA    FIXED-3,7
07223 2503  
07224 1040          JNE     #2011
07225 3372  
            /       IF(OBJ.NE.WATER.AND.OBJ.NE.OIL)GOTO 9017
07226 0400          FLDA    OBJ
07227 6207  
07230 2400          FSUB    WATER
07231 4604  
07232 1000          JEQ     .+10
07233 7242  
07234 0400          FLDA    OBJ
07235 6207  
07236 2400          FSUB    OIL
07237 4607  
07240 1040          JNE     #9017
07241 7332  
            /       IF(HERE(BOTTLE).AND.LIQ(0).EQ.OBJ)GOTO 9018
07242 0400          FLDA    BOTTLE
07243 4601  
07244 1120          JSA     HERE
07245 0667  
07246 1000          JEQ     .+10
07247 7256  
07250 1120          JSA     LIQ
07251 1001  
07252 2400          FSUB    OBJ
07253 6207  
07254 1000          JEQ     #9018
07255 7326  
            /       OBJ=BOTTLE
07256 0400          FLDA    BOTTLE
07257 4601  
07260 6400          FSTA    OBJ
07261 6207  
            /       IF(TOTING(BOTTLE).AND.PROP(BOTTLE).EQ.1)GOTO 9220
07262 0400          FLDA    BOTTLE
07263 4601  
07264 1120          JSA     TOTING
07265 0622  
07266 1000          JEQ     #M222
07267 7300  
07270 0400          FLDA    BOTTLE
07271 4601  
RALF V50A   24-JUL-20    PAGE 3-70

07272 0027          ATX     7
07273 0470          FLDA    PROP-3,7
07274 3647  
07275 2240          FSUB    ONE
07276 1001          JEQ     #9220
07277 4236  
            
            /       IF(PROP(BOTTLE).NE.1)SPK=105
07300 0400  #M222,  FLDA    BOTTLE
07301 4601  
07302 0027          ATX     7
07303 0470          FLDA    PROP-3,7
07304 3647  
07305 2240          FSUB    ONE
07306 1000          JEQ     .+4
07307 7312  
07310 0310          FLDA    #LIT+157
07311 6221          FSTA    SPK
            /       IF(.NOT.TOTING(BOTTLE))SPK=104
07312 0400          FLDA    BOTTLE
07313 4601  
07314 1120          JSA     TOTING
07315 0622  
07316 1040          JNE     #2011
07317 3372  
07320 0100          LDX     150,0   / 104
07321 0150  
07322 0030          XTA     0
07323 6221          FSTA    SPK
            /       GOTO 2011
07324 1030          JA      #2011
07325 3372  
            
            /9018    OBJ=BOTTLE
07326 0400  #9018,  FLDA    BOTTLE
07327 4601  
07330 6400          FSTA    OBJ
07331 6207  
            
            /9017    IF(HOLDNG.LT.7)GOTO 9016
07332 0100  #9017,  LDX     7,0
07333 0007  
07334 0030          XTA     0
07335 2400          FSUB    HOLDNG
07336 3162  
07337 1010          JGE     #9016
07340 7347  
            /       CALL RSPEAK(92)
07341 1130          JSR     RSPEAK
07342 0000  
07343 1030          JA      #2012
07344 3400  
07345 1030          JA      #LIT+143
07346 0337  
            /       GOTO 2012
            
RALF V50A   24-JUL-20    PAGE 3-71

            /9016    IF(OBJ.NE.BIRD)GOTO 9014
07347 0400  #9016,  FLDA    OBJ
07350 6207  
07351 2400          FSUB    BIRD
07352 4535  
07353 1040          JNE     #9014
07354 7422  
            /       IF(PROP(BIRD).NE.0)GOTO 9014
07355 0400          FLDA    BIRD
07356 4535  
07357 0027          ATX     7
07360 0470          FLDA    PROP-3,7
07361 3647  
07362 1040          JNE     #9014
07363 7422  
            /       IF(.NOT.TOTING(ROD))GOTO 9013
07364 0400          FLDA    ROD
07365 4524  
07366 1120          JSA     TOTING
07367 0622  
07370 1000          JEQ     #9013
07371 7400  
            /       CALL RSPEAK(26)
07372 1130          JSR     RSPEAK
07373 0000  
07374 1030          JA      #2012
07375 3400  
07376 1030          JA      #LIT+55
07377 0251  
            /       GOTO 2012
            
            /9013    IF(TOTING(CAGE))GOTO 9015
07400 0400  #9013,  FLDA    CAGE
07401 4521  
07402 1120          JSA     TOTING
07403 0622  
07404 1040          JNE     #9015
07405 7414  
            /       CALL RSPEAK(27)
07406 1130          JSR     RSPEAK
07407 0000  
07410 1030          JA      #2012
07411 3400  
07412 1030          JA      #LIT+60
07413 0254  
            /       GOTO 2012
            
            /9015    PROP(BIRD)=1
07414 0400  #9015,  FLDA    BIRD
07415 4535  
07416 0027          ATX     7
07417 0240          FLDA    ONE
07420 6470          FSTA    PROP-3,7
07421 3647  
            
            /9014    IF((OBJ.EQ.BIRD.OR.OBJ.EQ.CAGE).AND.PROP(BIRD).NE.0)
RALF V50A   24-JUL-20    PAGE 3-72

            /       1       CALL CARRY(BIRD+CAGE-OBJ,LOC)
07422 0400  #9014,  FLDA    OBJ
07423 6207  
07424 2400          FSUB    BIRD
07425 4535  
07426 1000          JEQ     .+10
07427 7436  
07430 0400          FLDA    OBJ
07431 6207  
07432 2400          FSUB    CAGE
07433 4521  
07434 1040          JNE     .+30
07435 7464  
07436 0400          FLDA    BIRD
07437 4535  
07440 0027          ATX     7
07441 0470          FLDA    PROP-3,7
07442 3647  
07443 1000          JEQ     .+21
07444 7464  
07445 0400          FLDA    BIRD
07446 4535  
07447 1400          FADD    CAGE
07450 4521  
07451 2400          FSUB    OBJ
07452 6207  
07453 6227          FSTA    #TMP
07454 1130          JSR     CARRY
07455 0000  
07456 1030          JA      .+6
07457 7464  
07460 1030          JA      #TMP
07461 0130  
07462 1030          JA      LOC
07463 0014  
            /       CALL CARRY(OBJ,LOC)
07464 1130          JSR     CARRY
07465 0000  
07466 1030          JA      .+6
07467 7474  
07470 1030          JA      OBJ
07471 6207  
07472 1030          JA      LOC
07473 0014  
            /       K=LIQ(0)
07474 1120          JSA     LIQ
07475 1001  
07476 6400          FSTA    K
07477 6215  
            /       IF(OBJ.EQ.BOTTLE.AND.K.NE.0)PLACE(K)=-1
07500 0400          FLDA    OBJ
07501 6207  
07502 2400          FSUB    BOTTLE
07503 4601  
07504 1040          JNE     #2009A
07505 7516  
RALF V50A   24-JUL-20    PAGE 3-73

07506 0400          FLDA    K
07507 6215  
07510 1000          JEQ     #2009A
07511 7516  
07512 0027          ATX     7
07513 0372          FLDA    MINUS1
07514 6470          FSTA    PLACE-3,7
07515 2027  
            /       GOTO 2009
07516 0302  #2009A, FLDA    #LIT+135        /RHM - "Taken" message
07517 6400          FSTA    K
07520 6215  
07521 1030          JA      #2010
07522 3367  
            
            /C
            /C DISCARD OBJECT. "THROW" ALSO COMES HERE FOR MOST OBJECTS. SPECIAL CASES FOR
            /C BIRD (MIGHT ATTACK SNAKE OR DRAGON) AND CAGE (MIGHT CONTAIN BIRD) AND VASE.
            /C DROP COINS AT VENDING MACHINE FOR EXTRA BATTERIES.
            /C
            /9020    IF(TOTING(ROD2).AND.OBJ.EQ.ROD.AND..NOT.TOTING(ROD))OBJ=ROD2
07523 0400  #9020,  FLDA    ROD2
07524 4527  
07525 1120          JSA     TOTING
07526 0622  
07527 1000          JEQ     .+22
07530 7551  
07531 0400          FLDA    OBJ
07532 6207  
07533 2400          FSUB    ROD
07534 4524  
07535 1040          JNE     .+14
07536 7551  
07537 0400          FLDA    ROD
07540 4524  
07541 1120          JSA     TOTING
07542 0622  
07543 1040          JNE     .+6
07544 7551  
07545 0400          FLDA    ROD2
07546 4527  
07547 6400          FSTA    OBJ
07550 6207  
            /       IF(.NOT.TOTING(OBJ))GOTO 2011
07551 0400          FLDA    OBJ
07552 6207  
07553 1120          JSA     TOTING
07554 0622  
07555 1000          JEQ     #2011
07556 3372  
            /       IF(OBJ.NE.BIRD.OR..NOT.HERE(SNAKE))GOTO 9024
07557 0400          FLDA    OBJ
07560 6207  
07561 2400          FSUB    BIRD
07562 4535  
07563 1040          JNE     #9024
RALF V50A   24-JUL-20    PAGE 3-74

07564 7724  
07565 0400          FLDA    SNAKE
07566 4546  
07567 1120          JSA     HERE
07570 0667  
07571 1000          JEQ     #9024
07572 7724  
            /       CALL RSPEAK(30)
07573 1130          JSR     RSPEAK
07574 0000  
07575 1030          JA      .+4
07576 7601  
07577 1030          JA      #LIT+63
07600 0257  
            /       IF(CLOSED)GOTO 19000
07601 0400          FLDA    CLOSED
07602 5032  
07603 1041          JNE     #19000
07604 7012  
            /       CALL DSTROY(SNAKE)
07605 1130          JSR     DSTROY
07606 0000  
07607 1030          JA      .+4
07610 7613  
07611 1030          JA      SNAKE
07612 4546  
            /C
            /C SET PROP FOR USE BY TRAVEL OPTIONS
            /C
            /       PROP(SNAKE)=1
07613 0400          FLDA    SNAKE
07614 4546  
07615 0027          ATX     7
07616 0240          FLDA    ONE
07617 6470          FSTA    PROP-3,7
07620 3647  
            
            /9021    K=LIQ(0)
07621 1120  #9021,  JSA     LIQ
07622 1001  
07623 6400          FSTA    K
07624 6215  
            /       IF(K.EQ.OBJ)OBJ=BOTTLE
07625 2400          FSUB    OBJ
07626 6207  
07627 1040          JNE     .+6
07630 7635  
07631 0400          FLDA    BOTTLE
07632 4601  
07633 6400          FSTA    OBJ
07634 6207  
            /       IF(OBJ.EQ.BOTTLE.AND.K.NE.0)PLACE(K)=0
07635 0400          FLDA    OBJ
07636 6207  
07637 2400          FSUB    BOTTLE
07640 4601  
RALF V50A   24-JUL-20    PAGE 3-75

07641 1040          JNE     .+12
07642 7653  
07643 0400          FLDA    K
07644 6215  
07645 1000          JEQ     .+6
07646 7653  
07647 0027          ATX     7
07650 0002          FCLA
07651 6470          FSTA    PLACE-3,7
07652 2027  
            /       IF(OBJ.EQ.CAGE.AND.PROP(BIRD).NE.0)CALL DROP(BIRD,LOC)
07653 0400          FLDA    OBJ
07654 6207  
07655 2400          FSUB    CAGE
07656 4521  
07657 1040          JNE     .+21
07660 7700  
07661 0400          FLDA    BIRD
07662 4535  
07663 0027          ATX     7
07664 0470          FLDA    PROP-3,7
07665 3647  
07666 1000          JEQ     .+12
07667 7700  
07670 1130          JSR     DROP
07671 0000  
07672 1030          JA      .+6
07673 7700  
07674 1030          JA      BIRD
07675 4535  
07676 1030          JA      LOC
07677 0014  
            /       IF(OBJ.EQ.BIRD)PROP(BIRD)=0
07700 0400          FLDA    OBJ
07701 6207  
07702 2400          FSUB    BIRD
07703 4535  
07704 1040          JNE     .+10
07705 7714  
07706 0400          FLDA    BIRD
07707 4535  
07710 0027          ATX     7
07711 0002          FCLA
07712 6470          FSTA    PROP-3,7
07713 3647  
            /       CALL DROP(OBJ,LOC)
07714 1130          JSR     DROP
07715 0000  
            /       GO TO 2012
07716 1030          JA      #2012
07717 3400  
            /
07720 1030          JA      OBJ
07721 6207  
07722 1030          JA      LOC
07723 0014  
RALF V50A   24-JUL-20    PAGE 3-76

            
            /C
            /9024    IF(OBJ.NE.COINS.OR..NOT.HERE(VEND))GOTO 9025
07724 0400  #9024,  FLDA    OBJ
07725 6207  
07726 2400          FSUB    COINS
07727 4661  
07730 1040          JNE     #9025
07731 7770  
07732 0400          FLDA    VEND
07733 4650  
07734 1120          JSA     HERE
07735 0667  
07736 1000          JEQ     #9025
07737 7770  
            /       CALL DSTROY(COINS)
07740 1130          JSR     DSTROY
07741 0000  
07742 1030          JA      .+4
07743 7746  
07744 1030          JA      COINS
07745 4661  
            /       CALL DROP(BATTER,LOC)
07746 1130          JSR     DROP
07747 0000  
07750 1030          JA      .+6
07751 7756  
07752 1030          JA      BATTER
07753 4653  
07754 1030          JA      LOC
07755 0014  
            /       CALL PSPEAK(BATTER,0)
07756 1130          JSR     PSPEAK
07757 0000  
07760 1030          JA      .+6
07761 7766  
07762 1030          JA      BATTER
07763 4653  
07764 1030          JA      ZERO
07765 0160  
            /       GOTO 2012
07766 1030          JA      #2012
07767 3400  
            
RALF V50A   24-JUL-20    PAGE 4

            /C
            /9025    IF(OBJ.NE.BIRD.OR..NOT.AT(DRAGON).OR.PROP(DRAGON).NE.0)GOTO 9026
07770 0400  #9025,  FLDA    OBJ
07771 6207  
07772 2400          FSUB    BIRD
07773 4535  
07774 1041          JNE     #9026
07775 0055  
07776 0400          FLDA    DRAGON
07777 4626  
10000 1120          JSA     AT
10001 0634  
10002 1001          JEQ     #9026
10003 0055  
10004 0400          FLDA    DRAGON
10005 4626  
10006 0027          ATX     7
10007 0470          FLDA    PROP-3,7
10010 3647  
10011 1041          JNE     #9026
10012 0055  
            /       CALL RSPEAK(154)
10013 1130          JSR     RSPEAK
10014 0000  
10015 1031          JA      .+4
10016 0021  
10017 1030          JA      #LIT+374
10020 0570  
            /       CALL DSTROY(BIRD)
10021 1130          JSR     DSTROY
10022 0000  
10023 1031          JA      .+4
10024 0027  
10025 1030          JA      BIRD
10026 4535  
            /       PROP(BIRD)=0
10027 0400          FLDA    BIRD
10030 4535  
10031 0027          ATX     7
10032 0002          FCLA
10033 6470          FSTA    PROP-3,7
10034 3647  
            /       IF(PLACE(SNAKE).EQ.PLAC(SNAKE))TALLY2=TALLY2+1
10035 0400          FLDA    SNAKE
10036 4546  
10037 0027          ATX     7
10040 0470          FLDA    PLACE-3,7
10041 2027  
10042 2470          FSUB    PLAC-3,7
10043 1061  
10044 1040          JNE     #2012
10045 3400  
10046 0400          FLDA    TALLY2
10047 4331  
10050 1240          FADD    ONE
10051 6400          FSTA    TALLY2
RALF V50A   24-JUL-20    PAGE 4-1

10052 4331  
            /       GOTO 2012
10053 1030          JA      #2012
10054 3400  
            
            /C
            /9026    IF(OBJ.NE.BEAR.OR..NOT.AT(TROLL))GOTO 9027
10055 0400  #9026,  FLDA    OBJ
10056 6207  
10057 2400          FSUB    BEAR
10060 4642  
10061 1041          JNE     #9027
10062 0213  
10063 0400          FLDA    TROLL
10064 4634  
10065 1120          JSA     AT
10066 0634  
10067 1001          JEQ     #9027
10070 0213  
            /       CALL RSPEAK(163)
10071 1130          JSR     RSPEAK
10072 0000  
10073 1031          JA      .+4
10074 0077  
10075 1030          JA      #LIT+242
10076 0436  
            /       CALL MOVE(TROLL,0)
10077 1130          JSR     MOVE
10100 0000  
10101 1031          JA      .+6
10102 0107  
10103 1030          JA      TROLL
10104 4634  
10105 1030          JA      ZERO
10106 0160  
            /       CALL MOVE(TROLL+100,0)
10107 0400          FLDA    TROLL
10110 4634  
10111 1307          FADD    #LIT+154
10112 6227          FSTA    #TMP
10113 1130          JSR     MOVE
10114 0000  
10115 1031          JA      .+6
10116 0123  
10117 1030          JA      #TMP
10120 0130  
10121 1030          JA      ZERO
10122 0160  
            /       CALL MOVE(TROLL2,PLAC(TROLL))
10123 0400          FLDA    TROLL
10124 4634  
10125 0027          ATX     7
10126 0037          XTA     7
10127 4242          FMUL    THREE
10130 0010          ALN     0
10131 0006          STARTD
RALF V50A   24-JUL-20    PAGE 4-2

10132 1356          FADD    PPLAC
10133 6401          FSTA    .+11
10134 0144  
10135 0005          STARTF
10136 1130          JSR     MOVE
10137 0000  
10140 1031          JA      .+6
10141 0146  
10142 1030          JA      TROLL2
10143 4637  
10144 1031          JA      .
10145 0144  
            /       CALL MOVE(TROLL2+100,FIXD(TROLL))
10146 0400          FLDA    TROLL2
10147 4637  
10150 1307          FADD    #LIT+154
10151 6227          FSTA    #TMP
10152 0400          FLDA    TROLL
10153 4634  
10154 0027          ATX     7
10155 0037          XTA     7
10156 4242          FMUL    THREE
10157 0010          ALN     0
10160 0006          STARTD
10161 1353          FADD    PFIXD
10162 6401          FSTA    .+11
10163 0173  
10164 0005          STARTF
10165 1130          JSR     MOVE
10166 0000  
10167 1031          JA      .+6
10170 0175  
10171 1030          JA      #TMP
10172 0130  
10173 1031          JA      .
10174 0173  
            /       CALL JUGGLE(CHASM)
10175 1130          JSR     JUGGLE
10176 0000  
10177 1031          JA      .+4
10200 0203  
10201 1030          JA      CHASM
10202 4631  
10203 0400          FLDA    TROLL
10204 4634  
10205 0027          ATX     7
            /       PROP(TROLL)=2
10206 0241          FLDA    TWO
10207 6470          FSTA    PROP-3,7
10210 3647  
            /       GOTO 9021
10211 1030          JA      #9021
10212 7621  
            
            /C
            /9027    IF(OBJ.EQ.VASE.AND.LOC.NE.PLAC(PILLOW))GOTO 9028
RALF V50A   24-JUL-20    PAGE 4-3

10213 0400  #9027,  FLDA    OBJ
10214 6207  
10215 2400          FSUB    VASE
10216 4675  
10217 1041          JNE     .+13
10220 0232  
10221 0400          FLDA    PILLOW
10222 4543  
10223 0027          ATX     7
10224 0400          FLDA    LOC
10225 0014  
10226 2470          FSUB    PLAC-3,7
10227 1061  
10230 1041          JNE     #9028
10231 0240  
            /       CALL RSPEAK(54)
10232 1130          JSR     RSPEAK
10233 0000  
10234 1030          JA      #9021
10235 7621  
10236 1030          JA      #LIT+113
10237 0307  
            /       GOTO 9021
            
            /C
            /9028    PROP(VASE)=2
10240 0400  #9028,  FLDA    VASE
10241 4675  
10242 0027          ATX     7
10243 0241          FLDA    TWO
10244 6470          FSTA    PROP-3,7
10245 3647  
            /       IF(AT(PILLOW))PROP(VASE)=0
10246 0400          FLDA    PILLOW
10247 4543  
10250 1120          JSA     AT
10251 0634  
10252 1001          JEQ     .+10
10253 0262  
10254 0400          FLDA    VASE
10255 4675  
10256 0027          ATX     7
10257 0002          FCLA
10260 6470          FSTA    PROP-3,7
10261 3647  
            /       CALL PSPEAK(VASE,PROP(VASE)+1)
10262 0400          FLDA    VASE
10263 4675  
10264 0027          ATX     7
10265 0470          FLDA    PROP-3,7
10266 3647  
10267 1240          FADD    ONE
10270 6227          FSTA    #TMP
10271 1130          JSR     PSPEAK
10272 0000  
10273 1031          JA      .+6
RALF V50A   24-JUL-20    PAGE 4-4

10274 0301  
10275 1030          JA      VASE
10276 4675  
10277 1030          JA      #TMP
10300 0130  
            /       IF(PROP(VASE).NE.0)FIXED(VASE)=-1
10301 0400          FLDA    VASE
10302 4675  
10303 0027          ATX     7
10304 0470          FLDA    PROP-3,7
10305 3647  
10306 1000          JEQ     #9021
10307 7621  
10310 0372          FLDA    MINUS1
10311 6470          FSTA    FIXED-3,7
10312 2503  
            /       GOTO 9021
10313 1030          JA      #9021
10314 7621  
            
            /C
            /C SAY. ECHO WD2 (OR WD1 IF NO WD2 (SAY WHAT?, ETC.).) MAGIC WORDS OVERRIDE.
            /C
            /9030    IF(WD2.EQ.0)GOTO 9031
10315 0224  #9030,  FLDA    WD2
10316 1001          JEQ     #9031
10317 0324  
            /       WD1=WD2 WD1A=WD2A
10320 0224          FLDA    WD2
10321 6222          FSTA    WD1
            /       WD1X=WD2X
10322 0225          FLDA    WD2X
10323 6223          FSTA    WD1X
            
            /9031    CALL VOCAB(WD1,WD1A,-1,I)
10324 1130  #9031,  JSR     VOCAB
10325 0000  
10326 1031          JA      .+6
10327 0334  
10330 1030          JA      WD1
10331 0111  
10332 1030          JA      MINUS1
10333 0601  
10334 6400          FSTA    I
10335 0000  
            /       IF(I.EQ.62.OR.I.EQ.65.OR.I.EQ.71.OR.I.EQ.2025)GOTO 9035
10336 2277          FSUB    #LIT+124
10337 1001          JEQ     #9035
10340 0402  
10341 2242          FSUB    THREE
10342 1001          JEQ     #9035
10343 0402  
10344 2244          FSUB    #LIT+3
10345 1001          JEQ     #9035
10346 0402  
10347 0100          LDX     3751,0  /2025
RALF V50A   24-JUL-20    PAGE 4-5

10350 3751  
10351 0030          XTA     0
10352 2400          FSUB    I
10353 0000  
10354 1001          JEQ     #9035
10355 0402  
            /       TYPE 9032
10356 1130          JSR     SIXOUT
10357 0000  
10360 1031          JA      .+10
10361 0370  
10362 1032          JA      #9032
10363 0050  
10364 1030          JA      ZERO
10365 0160  
10366 1030          JA      TWO
10367 0166  
            /9032    FORMAT(' Okay, "',$)
            /       CALL A5TOA1(WD1,WD1A,WD1X,'".')
10370 1130          JSR     A5TOA1
10371 0000  
10372 1030          JA      #2012
10373 3400  
10374 1030          JA      WD1
10375 0111  
10376 1030          JA      WD1X
10377 0114  
10400 1030          JA      TQDOT
10401 0554  
            /       GOTO 2012
            
            /C
            /9035    WD2=0
10402 0002  #9035,  FCLA
10403 6224          FSTA    WD2
            /       OBJ=0
10404 6400          FSTA    OBJ
10405 6207  
            /       GOTO 2630
10406 1030          JA      #2630
10407 4124  
            
            /C
            /C LOCK, UNLOCK, NO OBJECT GIVEN. ASSUME VARIOUS THINGS IF PRESENT.
            /C
            /8040    SPK=28
10410 0100  #8040,  LDX     34,0    /28
10411 0034  
10412 0030          XTA     0
10413 6221          FSTA    SPK
            /       IF(HERE(CLAM))OBJ=CLAM
10414 0400          FLDA    CLAM
10415 4557  
10416 1120          JSA     HERE
10417 0667  
10420 1001          JEQ     .+6
RALF V50A   24-JUL-20    PAGE 4-6

10421 0426  
10422 0400          FLDA    CLAM
10423 4557  
10424 6400          FSTA    OBJ
10425 6207  
            /       IF(HERE(OYSTER))OBJ=OYSTER
10426 0400          FLDA    OYSTER
10427 4562  
10430 1120          JSA     HERE
10431 0667  
10432 1001          JEQ     .+6
10433 0440  
10434 0400          FLDA    OYSTER
10435 4562  
10436 6400          FSTA    OBJ
10437 6207  
            /       IF(AT(DOOR))OBJ=DOOR
10440 0400          FLDA    DOOR
10441 4540  
10442 1120          JSA     AT
10443 0634  
10444 1001          JEQ     .+6
10445 0452  
10446 0400          FLDA    DOOR
10447 4540  
10450 6400          FSTA    OBJ
10451 6207  
            /       IF(AT(GRATE))OBJ=GRATE
10452 0400          FLDA    GRATE
10453 4516  
10454 1120          JSA     AT
10455 0634  
10456 1001          JEQ     .+6
10457 0464  
10460 0400          FLDA    GRATE
10461 4516  
10462 6400          FSTA    OBJ
10463 6207  
            /       IF(OBJ.NE.0.AND.HERE(CHAIN))GOTO 8000
10464 0400          FLDA    OBJ
10465 6207  
10466 1001          JEQ     .+10
10467 0476  
10470 0400          FLDA    CHAIN
10471 4714  
10472 1120          JSA     HERE
10473 0667  
10474 1040          JNE     #8000
10475 7010  
            /       IF(HERE(CHAIN))OBJ=CHAIN
10476 0400          FLDA    CHAIN
10477 4714  
10500 1120          JSA     HERE
10501 0667  
10502 1001          JEQ     .+6
10503 0510  
RALF V50A   24-JUL-20    PAGE 4-7

10504 0400          FLDA    CHAIN
10505 4714  
10506 6400          FSTA    OBJ
10507 6207  
            /       IF(OBJ.EQ.0)GOTO 2011
10510 0400          FLDA    OBJ
10511 6207  
10512 1000          JEQ     #2011
10513 3372  
            
            /C
            /C LOCK, UNLOCK OBJECT. SPECIAL STUFF FOR OPENING CLAM/OYSTER AND FOR CHAIN.
            /C
            /9040    IF(OBJ.EQ.CLAM.OR.OBJ.EQ.OYSTER)GOTO 9046
10514 0400  #9040,  FLDA    OBJ
10515 6207  
10516 2400          FSUB    CLAM
10517 4557  
10520 1001          JEQ     #9046
10521 0745  
10522 0400          FLDA    OBJ
10523 6207  
10524 2400          FSUB    OYSTER
10525 4562  
10526 1001          JEQ     #9046
10527 0745  
            /       IF(OBJ.EQ.DOOR)SPK=111
10530 0400          FLDA    OBJ
10531 6207  
10532 2400          FSUB    DOOR
10533 4540  
10534 1041          JNE     #9040A
10535 0542  
10536 0100          LDX     157,0   /111
10537 0157  
10540 0030          XTA     0
10541 6221          FSTA    SPK
            /       IF(OBJ.EQ.DOOR.AND.PROP(DOOR).EQ.1)SPK=54
10542 0400  #9040A, FLDA    OBJ
10543 6207  
10544 2400          FSUB    DOOR
10545 4540  
10546 1041          JNE     .+16
10547 0564  
10550 0400          FLDA    DOOR
10551 4540  
10552 0027          ATX     7
10553 0470          FLDA    PROP-3,7
10554 3647  
10555 2240          FSUB    ONE
10556 1001          JEQ     .+6
10557 0564  
10560 0100          LDX     74,0    /60
10561 0074  
10562 0030          XTA     0
10563 6221          FSTA    SPK
RALF V50A   24-JUL-20    PAGE 4-8

            /       IF(OBJ.EQ.CAGE)SPK=32
10564 0400          FLDA    OBJ
10565 6207  
10566 2400          FSUB    CAGE
10567 4521  
10570 1041          JNE     .+6
10571 0576  
10572 0100          LDX     40,0    /32
10573 0040  
10574 0030          XTA     0
10575 6221          FSTA    SPK
            /       IF(OBJ.EQ.KEYS)SPK=55
10576 0400          FLDA    OBJ
10577 6207  
10600 2400          FSUB    KEYS
10601 4510  
10602 1041          JNE     .+6
10603 0610  
10604 0100          LDX     67,0    /55
10605 0067  
10606 0030          XTA     0
10607 6221          FSTA    SPK
            /       IF(OBJ.EQ.GRATE.OR.OBJ.EQ.CHAIN)SPK=31
10610 0400          FLDA    OBJ
10611 6207  
10612 2400          FSUB    GRATE
10613 4516  
10614 1001          JEQ     .+10
10615 0624  
10616 0400          FLDA    OBJ
10617 6207  
10620 2400          FSUB    CHAIN
10621 4714  
10622 1041          JNE     .+6
10623 0630  
10624 0100          LDX     37,0    /31
10625 0037  
10626 0030          XTA     0
10627 6221          FSTA    SPK
            /       IF(SPK.NE.31.OR..NOT.HERE(KEYS))GOTO 2011
10630 0100          LDX     37,0    /31
10631 0037  
10632 0030          XTA     0
10633 2221          FSUB    SPK
10634 1040          JNE     #2011
10635 3372  
10636 0400          FLDA    KEYS
10637 4510  
10640 1120          JSA     HERE
10641 0667  
10642 1000          JEQ     #2011
10643 3372  
            /       IF(OBJ.EQ.CHAIN)GOTO 9048
10644 0400          FLDA    OBJ
10645 6207  
10646 2400          FSUB    CHAIN
RALF V50A   24-JUL-20    PAGE 4-9

10647 4714  
10650 1001          JEQ     #9048
10651 1065  
            /       IF(.NOT.CLOSNG)GOTO 9043
10652 0400          FLDA    CLOSNG
10653 5024  
10654 1001          JEQ     #9043
10655 0675  
            /       K=130
10656 0320          FLDA    #LIT+207
10657 6400          FSTA    K
10660 6215  
            /       IF(.NOT.PANIC)CLOCK2=15
10661 0400          FLDA    PANIC
10662 5027  
10663 1041          JNE     .+5
10664 0670  
10665 0252          FLDA    #LIT+25
10666 6400          FSTA    CLOCK2
10667 5021  
            /       PANIC=.TRUE.
10670 0240          FLDA    ONE
10671 6400          FSTA    PANIC
10672 5027  
            /       GOTO 2010
10673 1030          JA      #2010
10674 3367  
            
            /C
            /9043    K=34+PROP(GRATE)
10675 0400  #9043,  FLDA    GRATE
10676 4516  
10677 0027          ATX     7
10700 0100          LDX     42,0    /34
10701 0042  
10702 0030          XTA     0
10703 1470          FADD    PROP-3,7
10704 3647  
10705 6400          FSTA    K
10706 6215  
            /       IF(VERB.EQ.LOCK)PROP(GRATE)=0
10707 0400          FLDA    GRATE
10710 4516  
10711 0027          ATX     7
10712 0240          FLDA    ONE
10713 6470          FSTA    PROP-3,7
10714 3647  
10715 0400          FLDA    VERB
10716 6220  
10717 2400          FSUB    LOCK
10720 4744  
10721 1041          JNE     .+10
10722 0731  
10723 0400          FLDA    GRATE
10724 4516  
10725 0027          ATX     7
RALF V50A   24-JUL-20    PAGE 4-10

10726 0002          FCLA
10727 6470          FSTA    PROP-3,7
10730 3647  
            /       K=K+2*PROP(GRATE)
10731 0400          FLDA    GRATE
10732 4516  
10733 0027          ATX     7
10734 0241          FLDA    TWO
10735 4470          FMUL    PROP-3,7
10736 3647  
10737 1400          FADD    K
10740 6215  
10741 6400          FSTA    K
10742 6215  
            /       GOTO 2010
10743 1030          JA      #2010
10744 3367  
            
            /C
            /C CLAM/OYSTER.
            /C
            /9046    K=0
10745 0002  #9046,  FCLA
10746 6400          FSTA    K
10747 6215  
            /       IF(OBJ.EQ.OYSTER)K=1
10750 0400          FLDA    OBJ
10751 6207  
10752 2400          FSUB    OYSTER
10753 4562  
10754 1041          JNE     .+5
10755 0761  
10756 0240          FLDA    ONE
10757 6400          FSTA    K
10760 6215  
            /       SPK=124+K
10761 0100          LDX     174,0
10762 0174  
10763 0030          XTA     0
10764 1400          FADD    K
10765 6215  
10766 6221          FSTA    SPK
            /       IF(TOTING(OBJ))SPK=120+K
10767 0400          FLDA    OBJ
10770 6207  
10771 1120          JSA     TOTING
10772 0622  
10773 1001          JEQ     #9046A
10774 1003  
10775 0100          LDX     170,0   /120
10776 0170  
10777 0030          XTA     0
11000 1400          FADD    K
11001 6215  
11002 6221          FSTA    SPK
            /       IF(.NOT.TOTING(TRIDNT))SPK=122+K
RALF V50A   24-JUL-20    PAGE 4-11

11003 0400  #9046A, FLDA    TRIDNT
11004 4672  
11005 1120          JSA     TOTING
11006 0622  
11007 1041          JNE     .+10
11010 1017  
11011 0100          LDX     172,0   /122
11012 0172  
11013 0030          XTA     0
11014 1400          FADD    K
11015 6215  
11016 6221          FSTA    SPK
            /       IF(VERB.EQ.LOCK)SPK=61
11017 0400          FLDA    VERB
11020 6220  
11021 2400          FSUB    LOCK
11022 4744  
11023 1041          JNE     .+6
11024 1031  
11025 0100          LDX     75,0    /61
11026 0075  
11027 0030          XTA     0
11030 6221          FSTA    SPK
            /       IF(SPK.NE.124)GOTO 2011
11031 0100          LDX     174,0 /124
11032 0174  
11033 0030          XTA     0
11034 2221          FSUB    SPK
11035 1040          JNE     #2011
11036 3372  
            /       CALL DSTROY(CLAM)
11037 1130          JSR     DSTROY
11040 0000  
11041 1031          JA      .+4
11042 1045  
11043 1030          JA      CLAM
11044 4557  
            /       CALL DROP(OYSTER,LOC)
11045 1130          JSR     DROP
11046 0000  
11047 1031          JA      .+6
11050 1055  
11051 1030          JA      OYSTER
11052 4562  
11053 1030          JA      LOC
11054 0014  
            /       CALL DROP(PEARL,105)
11055 1130          JSR     DROP
11056 0000  
11057 1030          JA      #2011
11060 3372  
11061 1030          JA      PEARL
11062 4706  
11063 1030          JA      #LIT+157
11064 0353  
            /       GOTO 2011
RALF V50A   24-JUL-20    PAGE 4-12

            
            /C
            /C CHAIN.
            /C
            /9048    IF(VERB.EQ.LOCK)GOTO 9049
11065 0400  #9048,  FLDA    VERB
11066 6220  
11067 2400          FSUB    LOCK
11070 4744  
11071 1001          JEQ     #9049
11072 1160  
            /       SPK=171
11073 0100          LDX     253,0   /171
11074 0253  
11075 0030          XTA     0
11076 6221          FSTA    SPK
            /       IF(PROP(BEAR).EQ.0)SPK=41
11077 0400          FLDA    BEAR
11100 4642  
11101 0027          ATX     7
11102 0470          FLDA    PROP-3,7
11103 3647  
11104 1041          JNE     .+6
11105 1112  
11106 0100          LDX     51,0    /41
11107 0051  
11110 0030          XTA     0
11111 6221          FSTA    SPK
            /       IF(PROP(CHAIN).EQ.0)SPK=37
11112 0400          FLDA    CHAIN
11113 4714  
11114 0027          ATX     7
11115 0470          FLDA    PROP-3,7
11116 3647  
11117 1041          JNE     .+4
11120 1123  
11121 0266          FLDA    #LIT+71
11122 6221          FSTA    SPK
            /       IF(SPK.NE.171)GOTO 2011
11123 0100          LDX     253,0   /171
11124 0253  
11125 0030          XTA     0
11126 2221          FSUB    SPK
11127 1040          JNE     #2011
11130 3372  
            /       PROP(CHAIN)=0
11131 0002          FCLA
11132 6470          FSTA    PROP-3,7
11133 3647  
            /       FIXED(CHAIN)=0
11134 6470          FSTA    FIXED-3,7
11135 2503  
            /       IF(PROP(BEAR).NE.3)PROP(BEAR)=2
11136 0400          FLDA    BEAR
11137 4642  
11140 0027          ATX     7
RALF V50A   24-JUL-20    PAGE 4-13

11141 0470          FLDA    PROP-3,7
11142 3647  
11143 2242          FSUB    THREE
11144 1001          JEQ     .+5
11145 1151  
11146 0241          FLDA    TWO
11147 6470          FSTA    PROP-3,7
11150 3647  
            /       FIXED(BEAR)=2-PROP(BEAR)
11151 0241          FLDA    TWO
11152 2470          FSUB    PROP-3,7
11153 3647  
11154 6470          FSTA    FIXED-3,7
11155 2503  
            /       GOTO 2011
11156 1030          JA      #2011
11157 3372  
            
            /C
            /9049    SPK=172
11160 0100  #9049,  LDX     254,0   /172
11161 0254  
11162 0030          XTA     0
11163 6221          FSTA    SPK
            /       IF(PROP(CHAIN).NE.0)SPK=34
11164 0400          FLDA    CHAIN
11165 4714  
11166 0027          ATX     7
11167 0470          FLDA    PROP-3,7
11170 3647  
11171 1001          JEQ     .+6
11172 1177  
11173 0100          LDX     42,0    /34
11174 0042  
11175 0030          XTA     0
11176 6221          FSTA    SPK
            /       IF(LOC.NE.PLAC(CHAIN))SPK=173
11177 0400          FLDA    LOC
11200 0014  
11201 2470          FSUB    PLAC-3,7
11202 1061  
11203 1001          JEQ     .+6
11204 1211  
11205 0100          LDX     255,0   /173
11206 0255  
11207 0030          XTA     0
11210 6221          FSTA    SPK
            /       IF(SPK.NE.172)GOTO 2011
11211 0100          LDX     254,0   /172
11212 0254  
11213 0030          XTA     0
11214 2221          FSUB    SPK
11215 1040          JNE     #2011
11216 3372  
            /       PROP(CHAIN)=2
11217 0241          FLDA    TWO
RALF V50A   24-JUL-20    PAGE 4-14

11220 6470          FSTA    PROP-3,7
11221 3647  
            /       IF(TOTING(CHAIN))CALL DROP(CHAIN,LOC)
11222 0400          FLDA    CHAIN
11223 4714  
11224 1120          JSA     TOTING
11225 0622  
11226 1001          JEQ     .+12
11227 1240  
11230 1130          JSR     DROP
11231 0000  
11232 1031          JA      .+6
11233 1240  
11234 1030          JA      CHAIN
11235 4714  
11236 1030          JA      LOC
11237 0014  
            /       FIXED(CHAIN)=-1
11240 0372          FLDA    MINUS1
11241 6470          FSTA    FIXED-3,7
11242 2503  
            /       GOTO 2011
11243 1030          JA      #2011
11244 3372  
            
            /C
            /C LIGHT LAMP
            /C
            /9070    IF(.NOT.HERE(LAMP))GOTO 2011
11245 0400  #9070,  FLDA    LAMP
11246 4513  
11247 1120          JSA     HERE
11250 0667  
11251 1000          JEQ     #2011
11252 3372  
            /       SPK=184
11253 0334          FLDA    #LIT+253
11254 6221          FSTA    SPK
            /       IF(LIMIT.LT.0)GOTO 2011
11255 0400          FLDA    LIMIT
11256 0011  
11257 1050          JLT     #2011
11260 3372  
            /       PROP(LAMP)=1
11261 0400          FLDA    LAMP
11262 4513  
11263 0027          ATX     7
11264 0240          FLDA    ONE
11265 6470          FSTA    PROP-3,7
11266 3647  
            /       CALL RSPEAK(39)
11267 1130          JSR     RSPEAK
11270 0000  
11271 1031          JA      .+4
11272 1275  
11273 1030          JA      #LIT+74
RALF V50A   24-JUL-20    PAGE 4-15

11274 0270  
            /       IF(WZDARK)GOTO 2000
11275 0400          FLDA    WZDARK
11276 0025  
11277 1040          JNE     #2000
11300 2760  
            /       GOTO 2012
11301 1030          JA      #2012
11302 3400  
            
            /C
            /C LAMP OFF
            /C
            /9080    IF(.NOT.HERE(LAMP))GOTO 2011
11303 0400  #9080,  FLDA    LAMP
11304 4513  
11305 1120          JSA     HERE
11306 0667  
11307 1000          JEQ     #2011
11310 3372  
            /       PROP(LAMP)=0
11311 0400          FLDA    LAMP
11312 4513  
11313 0027          ATX     7
11314 0002          FCLA
11315 6470          FSTA    PROP-3,7
11316 3647  
            /       CALL RSPEAK(40)
11317 1130          JSR     RSPEAK
11320 0000  
11321 1031          JA      .+4
11322 1325  
11323 1030          JA      #LIT+77
11324 0273  
            /       IF(DARK(0))CALL RSPEAK(16)
11325 1120          JSA     DARK
11326 0711  
11327 1000          JEQ     #2012
11330 3400  
11331 1130          JSR     RSPEAK
11332 0000  
11333 1030          JA      #2012
11334 3400  
11335 1030          JA      #LIT+30
11336 0224  
            /       GOTO 2012
            
            /C
            /C WAVE. NO EFFECT UNLESS WAVING ROD AT FISSURE.
            /C
            /9090    IF((.NOT.TOTING(OBJ)).AND.(OBJ.NE.ROD.OR..NOT.TOTING(ROD2)))
            /       1        SPK=29
11337 0400  #9090,  FLDA    OBJ
11340 6207  
11341 1120          JSA     TOTING
11342 0622  
RALF V50A   24-JUL-20    PAGE 4-16

11343 1041          JNE     .+20
11344 1363  
11345 0400          FLDA    OBJ
11346 6207  
11347 2400          FSUB    ROD
11350 4524  
11351 1041          JNE     .+12
11352 1363  
11353 0400          FLDA    ROD2
11354 4527  
11355 1120          JSA     TOTING
11356 0622  
11357 1041          JNE     .+4
11360 1363  
11361 0371          FLDA    #LIT+402
11362 6221          FSTA    SPK
            /       IF(OBJ.NE.ROD.OR..NOT.AT(FISSUR).OR..NOT.TOTING(OBJ)
            /       1       .OR.CLOSNG)GOTO 2011
11363 0400          FLDA    OBJ
11364 6207  
11365 2400          FSUB    ROD
11366 4524  
11367 1040          JNE     #2011
11370 3372  
11371 0400          FLDA    FISSUR
11372 4551  
11373 1120          JSA     AT
11374 0634  
11375 1000          JEQ     #2011
11376 3372  
11377 0400          FLDA    OBJ
11400 6207  
11401 1120          JSA     TOTING
11402 0622  
11403 1000          JEQ     #2011
11404 3372  
11405 0400          FLDA    CLOSNG
11406 5024  
11407 1040          JNE     #2011
11410 3372  
            /       PROP(FISSUR)=1-PROP(FISSUR)
11411 0400          FLDA    FISSUR
11412 4551  
11413 0027          ATX     7
11414 0240          FLDA    ONE
11415 2470          FSUB    PROP-3,7
11416 3647  
11417 6470          FSTA    PROP-3,7
11420 3647  
            /       CALL PSPEAK(FISSUR,2-PROP(FISSUR))
11421 0400          FLDA    FISSUR
11422 4551  
11423 0027          ATX     7
11424 0241          FLDA    TWO
11425 2470          FSUB    PROP-3,7
11426 3647  
RALF V50A   24-JUL-20    PAGE 4-17

11427 6227          FSTA    #TMP
11430 1130          JSR     PSPEAK
11431 0000  
11432 1030          JA      #2012
11433 3400  
11434 1030          JA      FISSUR
11435 4551  
11436 1030          JA      #TMP
11437 0130  
            /       GOTO 2012
            
            /C
            /C ATTACK. ASSUME TARGET IF UNAMBIGUOUS. "THROW" ALSO LINKS HERE. ATTACKABLE
            /C OBJECTS FALL INTO TWO CATEGORIES: ENEMIES (SNAKE, DWARF, ETC.) AND OTHERS
            /C (BIRD, CLAM). AMBIGUOUS IF TWO ENEMIES, OR IF NO ENEMIES BUT TWO OTHERS.
            /C
            /9120    DO 9121 I=1,5
11440 0240  #9120,  FLDA    ONE
11441 6400          FSTA    I
11442 0000  
            
11443 0400  #H0102, FLDA    I
11444 0000  
11445 0027          ATX     7
            /       IF(DLOC(I).EQ.LOC.AND.DFLAG.GE.2)GOTO 9122
11446 0470          FLDA    DLOC-3,7
11447 4460  
11450 2400          FSUB    LOC
11451 0014  
11452 1041          JNE     #9121
11453 1461  
11454 0400          FLDA    DFLAG
11455 4460  
11456 2241          FSUB    TWO
11457 1011          JGE     #9122
11460 1474  
            
            /9121    CONTINUE
11461 0400  #9121,  FLDA    I
11462 0000  
11463 1240          FADD    ONE
11464 6400          FSTA    I
11465 0000  
11466 2244          FSUB    #LIT+3
11467 1021          JLE     #H0102
11470 1443  
            /       I=0
11471 0002          FCLA
11472 6400          FSTA    I
11473 0000  
            
            /9122    IF(OBJ.NE.0)GOTO 9124
11474 0400  #9122,  FLDA    OBJ
11475 6207  
11476 1041          JNE     #9124
11477 1673  
RALF V50A   24-JUL-20    PAGE 4-18

            /       IF(I.NE.0)OBJ=DWARF
11500 0400          FLDA    I
11501 0000  
11502 1001          JEQ     .+6
11503 1510  
11504 0400          FLDA    DWARF
11505 4570  
11506 6400          FSTA    OBJ
11507 6207  
            /       IF(HERE(SNAKE))OBJ=OBJ*100+SNAKE
11510 0400          FLDA    SNAKE
11511 4546  
11512 1120          JSA     HERE
11513 0667  
11514 1001          JEQ     .+11
11515 1525  
11516 0400          FLDA    OBJ
11517 6207  
11520 4307          FMUL    #LIT+154
11521 1400          FADD    SNAKE
11522 4546  
11523 6400          FSTA    OBJ
11524 6207  
            /       IF(AT(DRAGON).AND.PROP(DRAGON).EQ.0)OBJ=OBJ*100+DRAGON
11525 0400          FLDA    DRAGON
11526 4626  
11527 1120          JSA     AT
11530 0634  
11531 1001          JEQ     .+20
11532 1551  
11533 0400          FLDA    DRAGON
11534 4626  
11535 0027          ATX     7
11536 0470          FLDA    PROP-3,7
11537 3647  
11540 1041          JNE     .+11
11541 1551  
11542 0400          FLDA    OBJ
11543 6207  
11544 4307          FMUL    #LIT+154
11545 1400          FADD    DRAGON
11546 4626  
11547 6400          FSTA    OBJ
11550 6207  
            /       IF(AT(TROLL))OBJ=OBJ*100+TROLL
11551 0400          FLDA    TROLL
11552 4634  
11553 1120          JSA     AT
11554 0634  
11555 1001          JEQ     .+11
11556 1566  
11557 0400          FLDA    OBJ
11560 6207  
11561 4307          FMUL    #LIT+154
11562 1400          FADD    TROLL
11563 4634  
RALF V50A   24-JUL-20    PAGE 4-19

11564 6400          FSTA    OBJ
11565 6207  
            /       IF(HERE(BEAR).AND.PROP(BEAR).EQ.0)OBJ=OBJ*100+BEAR
11566 0400          FLDA    BEAR
11567 4642  
11570 1120          JSA     HERE
11571 0667  
11572 1001          JEQ     .+20
11573 1612  
11574 0400          FLDA    BEAR
11575 4642  
11576 0027          ATX     7
11577 0470          FLDA    PROP-3,7
11600 3647  
11601 1041          JNE     .+11
11602 1612  
11603 0400          FLDA    OBJ
11604 6207  
11605 4307          FMUL    #LIT+154
11606 1400          FADD    BEAR
11607 4642  
11610 6400          FSTA    OBJ
11611 6207  
            /       IF(OBJ.GT.100)GOTO 8000
11612 0400          FLDA    OBJ
11613 6207  
11614 2307          FSUB    #LIT+154
11615 1060          JGT     #8000
11616 7010  
            /       IF(OBJ.NE.0)GOTO 9124
11617 0400          FLDA    OBJ
11620 6207  
11621 1041          JNE     #9124
11622 1673  
            /C
            /C CAN'T ATTACK BIRD BY THROWING AXE.
            /C
            /       IF(HERE(BIRD).AND.VERB.NE.THROW)OBJ=BIRD
11623 0400          FLDA    BEAR
11624 4642  
11625 1120          JSA     HERE
11626 0667  
11627 1001          JEQ     .+14
11630 1643  
11631 0400          FLDA    VERB
11632 6220  
11633 2400          FSUB    THROW
11634 4747  
11635 1041          JNE     .+6
11636 1643  
11637 0400          FLDA    BIRD
11640 4535  
11641 6400          FSTA    OBJ
11642 6207  
            /C
            /C CLAM AND OYSTER BOTH TREATED AS CLAM FOR INTRANSITIVE CASE; NO HARM DONE.
RALF V50A   24-JUL-20    PAGE 4-20

            /C
            /       IF(HERE(CLAM).OR.HERE(OYSTER))OBJ=100*OBJ+CLAM
11643 0400          FLDA    CLAM
11644 4557  
11645 1120          JSA     HERE
11646 0667  
11647 1041          JNE     .+10
11650 1657  
11651 0400          FLDA    OYSTER
11652 4562  
11653 1120          JSA     HERE
11654 0667  
11655 1001          JEQ     .+11
11656 1666  
11657 0307          FLDA    #LIT+154
11660 4400          FMUL    OBJ
11661 6207  
11662 1400          FADD    CLAM
11663 4557  
11664 6400          FSTA    OBJ
11665 6207  
            /       IF(OBJ.GT.100)GOTO 8000
11666 0400          FLDA    OBJ
11667 6207  
11670 2307          FSUB    #LIT+154
11671 1060          JGT     #8000
11672 7010  
            
            /9124    IF(OBJ.NE.BIRD)GOTO 9125
11673 0400  #9124,  FLDA    OBJ
11674 6207  
11675 2400          FSUB    BIRD
11676 4535  
11677 1041          JNE     #9125
11700 1745  
            /       SPK=137
11701 0100          LDX     211,0   /137
11702 0211  
11703 0030          XTA     0
11704 6221          FSTA    SPK
            /       IF(CLOSED)GOTO 2011
11705 0400          FLDA    CLOSED
11706 5032  
11707 1040          JNE     #2011
11710 3372  
            /       CALL DSTROY(BIRD)
11711 1130          JSR     DSTROY
11712 0000  
11713 1031          JA      .+4
11714 1717  
11715 1030          JA      BIRD
11716 4535  
            /       PROP(BIRD)=0
11717 0400          FLDA    BIRD
11720 4535  
11721 0027          ATX     7
RALF V50A   24-JUL-20    PAGE 4-21

11722 0002          FCLA
11723 6470          FSTA    PROP-3,7
11724 3647  
            /       IF(PLACE(SNAKE).EQ.PLAC(SNAKE))TALLY2=TALLY2+1
11725 0400          FLDA    SNAKE
11726 4546  
11727 0027          ATX     7
11730 0470          FLDA    PLACE-3,7
11731 2027  
11732 2470          FSUB    PLAC-3,7
11733 1061  
11734 1041          JNE     .+7
11735 1743  
11736 0400          FLDA    TALLY2
11737 4331  
11740 1240          FADD    ONE
11741 6400          FSTA    TALLY2
11742 4331  
            /       SPK=45
11743 0271          FLDA    #LIT+102
11744 6221          FSTA    SPK
            
            /9125    IF(OBJ.EQ.0)SPK=44
11745 0400  #9125,  FLDA    OBJ
11746 6207  
11747 1041          JNE     .+6
11750 1755  
11751 0100          LDX     54,0    /44
11752 0054  
11753 0030          XTA     0
11754 6221          FSTA    SPK
            /       IF(OBJ.EQ.CLAM.OR.OBJ.EQ.OYSTER)SPK=150
11755 0400          FLDA    OBJ
11756 6207  
11757 2400          FSUB    CLAM
11760 4557  
11761 1001          JEQ     .+10
11762 1771  
11763 0400          FLDA    OBJ
11764 6207  
11765 2400          FSUB    OYSTER
11766 4562  
11767 1041          JNE     .+6
11770 1775  
11771 0100          LDX     226,0   /150
11772 0226  
11773 0030          XTA     0
11774 6221          FSTA    SPK
            /       IF(OBJ.EQ.SNAKE)SPK=46
11775 0400          FLDA    OBJ
11776 6207  
11777 2400          FSUB    SNAKE
12000 4546  
12001 1041          JNE     .+6
12002 2007  
12003 0100          LDX     56,0    /46
RALF V50A   24-JUL-20    PAGE 4-22

12004 0056  
12005 0030          XTA     0
12006 6221          FSTA    SPK
            /       IF(OBJ.EQ.DWARF)SPK=49
12007 0400          FLDA    OBJ
12010 6207  
12011 2400          FSUB    DWARF
12012 4570  
12013 1041          JNE     .+4
12014 2017  
12015 0272          FLDA    #LIT+105
12016 6221          FSTA    SPK
            /       IF(OBJ.EQ.DWARF.AND.CLOSED)GOTO 19000
12017 0400          FLDA    OBJ
12020 6207  
12021 2400          FSUB    DWARF
12022 4570  
12023 1041          JNE     .+6
12024 2031  
12025 0400          FLDA    CLOSED
12026 5032  
12027 1041          JNE     #19000
12030 7012  
            /       IF(OBJ.EQ.DRAGON)SPK=167
12031 0400          FLDA    OBJ
12032 6207  
12033 2400          FSUB    DRAGON
12034 4626  
12035 1041          JNE     .+6
12036 2043  
12037 0100          LDX     247,0   /167
12040 0247  
12041 0030          XTA     0
12042 6221          FSTA    SPK
            /       IF(OBJ.EQ.TROLL)SPK=157
12043 0400          FLDA    OBJ
12044 6207  
12045 2400          FSUB    TROLL
12046 4634  
12047 1041          JNE     .+6
12050 2055  
12051 0100          LDX     235,0   /157
12052 0235  
12053 0030          XTA     0
12054 6221          FSTA    SPK
            /       IF(OBJ.EQ.BEAR)SPK=165+(PROP(BEAR)+1)/2
12055 0400          FLDA    OBJ
12056 6207  
12057 2400          FSUB    BEAR
12060 4642  
12061 1041          JNE     .+15
12062 2076  
12063 0400          FLDA    BEAR
12064 4642  
12065 0027          ATX     7
12066 0470          FLDA    PROP-3,7
RALF V50A   24-JUL-20    PAGE 4-23

12067 3647  
12070 1240          FADD    ONE
12071 3241          FDIV    TWO
12072 1120          JSA     #FIX
12073 0000  
12074 1332          FADD    #LIT+245
12075 6221          FSTA    SPK
            /       IF(OBJ.NE.DRAGON.OR.PROP(DRAGON).NE.0)GOTO 2011
12076 0400          FLDA    OBJ
12077 6207  
12100 2400          FSUB    DRAGON
12101 4626  
12102 1040          JNE     #2011
12103 3372  
12104 0400          FLDA    DRAGON
12105 4626  
12106 0027          ATX     7
12107 0470          FLDA    PROP-3,7
12110 3647  
12111 1040          JNE     #2011
12112 3372  
            /C
            /C FUN STUFF FOR DRAGON. IF HE INSISTS ON ATTACKING IT, WIN! SET PROP TO DEAD,
            /C MOVE DRAGON TO CENTRAL LOC (STILL FIXED), MOVE RUG THERE (NOT FIXED), AND
            /C MOVE HIM THERE, TOO. THEN DO A NULL MOTION TO GET NEW DESCRIPTION.
            /C
            /       CALL RSPEAK(49)
12113 1130          JSR     RSPEAK
12114 0000  
12115 1031          JA      .+4
12116 2121  
12117 1030          JA      #LIT+105
12120 0301  
            /       VERB=0
12121 0002          FCLA
12122 6400          FSTA    VERB
12123 6220  
            /       OBJ=0
12124 6400          FSTA    OBJ
12125 6207  
            /       CALL GETIN(WD1,WD1A,WD1X,WD2,WD2A,WD2X)
12126 1130          JSR     GETIN
12127 0000  
12130 1031          JA      .+12
12131 2142  
12132 1030          JA      WD1
12133 0111  
12134 1030          JA      WD1X
12135 0114  
12136 1030          JA      WD2
12137 0117  
12140 1030          JA      WD2X
12141 0122  
            /       IF(WD1.NE.'YE'.AND.WD1.NE.'Y')GOTO 2608
12142 0222          FLDA    WD1
12143 2364          FSUB    TYES
RALF V50A   24-JUL-20    PAGE 4-24

12144 1001          JEQ     OKKILL
12145 2156  
12146 0222          FLDA    WD1
12147 2365          FSUB    TYE
12150 1001          JEQ     OKKILL
12151 2156  
12152 0222          FLDA    WD1
12153 2366          FSUB    TY
12154 1040          JNE     #2608
12155 3602  
            /       CALL PSPEAK(DRAGON,1)
12156 1130  OKKILL, JSR     PSPEAK
12157 0000  
12160 1031          JA      .+6
12161 2166  
12162 1030          JA      DRAGON
12163 4626  
12164 1030          JA      ONE
12165 0163  
            /       PROP(DRAGON)=2
12166 0400          FLDA    DRAGON
12167 4626  
12170 0027          ATX     7
12171 0241          FLDA    TWO
12172 6470          FSTA    PROP-3,7
12173 3647  
            /       PROP(RUG)=0
12174 0400          FLDA    RUG
12175 4711  
12176 0027          ATX     7
12177 0002          FCLA
12200 6470          FSTA    PROP-3,7
12201 3647  
            /       K=(PLAC(DRAGON)+FIXD(DRAGON))/2
12202 0400          FLDA    DRAGON
12203 4626  
12204 0027          ATX     7
12205 0470          FLDA    PLAC-3,7
12206 1061  
12207 1470          FADD    FIXD-3,7
12210 1535  
12211 3241          FDIV    TWO
12212 1120          JSA     #FIX
12213 0000  
12214 6400          FSTA    K
12215 6215  
            /       CALL MOVE(DRAGON+100,-1)
12216 0400          FLDA    DRAGON
12217 4626  
12220 1307          FADD    #LIT+154
12221 6227          FSTA    #TMP
12222 1130          JSR     MOVE
12223 0000  
12224 1031          JA      .+6
12225 2232  
12226 1030          JA      #TMP
RALF V50A   24-JUL-20    PAGE 4-25

12227 0130  
12230 1030          JA      MINUS1
12231 0601  
            /       CALL MOVE(RUG+100,0)
12232 0400          FLDA    RUG
12233 4711  
12234 1307          FADD    #LIT+154
12235 6227          FSTA    #TMP
12236 1130          JSR     MOVE
12237 0000  
12240 1031          JA      .+6
12241 2246  
12242 1030          JA      #TMP
12243 0130  
12244 1030          JA      ZERO
12245 0160  
            /       CALL MOVE(DRAGON,K)
12246 1130          JSR     MOVE
12247 0000  
12250 1031          JA      .+6
12251 2256  
12252 1030          JA      DRAGON
12253 4626  
12254 1030          JA      K
12255 6215  
            /       CALL MOVE(RUG,K)
12256 1130          JSR     MOVE
12257 0000  
12260 1031          JA      .+6
12261 2266  
12262 1030          JA      RUG
12263 4711  
12264 1030          JA      K
12265 6215  
            /       DO 9126 OBJ=1,100
12266 0240          FLDA    ONE
12267 6400          FSTA    OBJ
12270 6207  
            
            /       IF(PLACE(OBJ).EQ.PLAC(DRAGON).OR.PLACE(OBJ).EQ.FIXD(DRAGON))
            /       1       CALL MOVE(OBJ,K)
12271 0400  #H0122, FLDA    OBJ
12272 6207  
12273 0027          ATX     7
12274 0400          FLDA    DRAGON
12275 4626  
12276 0026          ATX     6
12277 0470          FLDA    PLACE-3,7
12300 2027  
12301 2460          FSUB    PLAC-3,6
12302 1061  
12303 1001          JEQ     .+10
12304 2313  
12305 0470          FLDA    PLACE-3,7
12306 2027  
12307 2460          FSUB    FIXD-3,6
RALF V50A   24-JUL-20    PAGE 4-26

12310 1535  
12311 1041          JNE     #9126
12312 2323  
12313 1130          JSR     MOVE
12314 0000  
12315 1031          JA      .+6
12316 2323  
12317 1030          JA      OBJ
12320 6207  
12321 1030          JA      K
12322 6215  
            /9126    CONTINUE
12323 0400  #9126,  FLDA    OBJ
12324 6207  
12325 1240          FADD    ONE
12326 6400          FSTA    OBJ
12327 6207  
12330 2307          FSUB    #LIT+154
12331 1021          JLE     #H0122
12332 2271  
            /       LOC=K
12333 0400          FLDA    K
12334 6215  
12335 6400          FSTA    LOC
12336 0014  
            /       K=NULL
12337 0400          FLDA    NULL
12340 4730  
12341 6400          FSTA    K
12342 6215  
            /       GOTO 8
12343 1030          JA      #8
12344 5146  
            
            /C
            /C POUR. IF NO OBJECT, OR OBJECT IS BOTTLE, ASSUME CONTENTS OF BOTTLE.
            /C SPECIAL TESTS FOR POURING WATER OR OIL ON PLANT OR RUSTY DOOR.
            /C
            /9130    IF(OBJ.EQ.BOTTLE.OR.OBJ.EQ.0)OBJ=LIQ(0)
12345 0400  #9130,  FLDA    OBJ
12346 6207  
12347 2400          FSUB    BOTTLE
12350 4601  
12351 1001          JEQ     .+6
12352 2357  
12353 0400          FLDA    OBJ
12354 6207  
12355 1041          JNE     .+6
12356 2363  
12357 1120          JSA     LIQ
12360 1001  
12361 6400          FSTA    OBJ
12362 6207  
            /       IF(OBJ.EQ.0)GOTO 8000
12363 0400          FLDA    OBJ
12364 6207  
RALF V50A   24-JUL-20    PAGE 4-27

12365 1000          JEQ     #8000
12366 7010  
            /       IF(.NOT.TOTING(OBJ))GOTO 2011
12367 0400          FLDA    OBJ
12370 6207  
12371 1120          JSA     TOTING
12372 0622  
12373 1000          JEQ     #2011
12374 3372  
            /       SPK=78
12375 0100          LDX     116,0   /78
12376 0116  
12377 0030          XTA     0
12400 6221          FSTA    SPK
            /       IF(OBJ.NE.OIL.AND.OBJ.NE.WATER)GOTO 2011
12401 0400          FLDA    OBJ
12402 6207  
12403 2400          FSUB    OIL
12404 4607  
12405 1001          JEQ     .+10
12406 2415  
12407 0400          FLDA    OBJ
12410 6207  
12411 2400          FSUB    WATER
12412 4604  
12413 1040          JNE     #2011
12414 3372  
            /       PROP(BOTTLE)=1
12415 0400          FLDA    BOTTLE
12416 4601  
12417 0027          ATX     7
12420 0240          FLDA    ONE
12421 6470          FSTA    PROP-3,7
12422 3647  
            /       PLACE(OBJ)=0
12423 0400          FLDA    OBJ
12424 6207  
12425 0027          ATX     7
12426 0002          FCLA
12427 6470          FSTA    PLACE-3,7
12430 2027  
            /       SPK=77
12431 0100          LDX     115,0   /77
12432 0115  
12433 0030          XTA     0
12434 6221          FSTA    SPK
            /       IF(.NOT.(AT(PLANT).OR.AT(DOOR)))GOTO 2011
12435 0400          FLDA    PLANT
12436 4612  
12437 1120          JSA     AT
12440 0634  
12441 1041          JNE     .+10
12442 2451  
12443 0400          FLDA    DOOR
12444 4540  
12445 1120          JSA     AT
RALF V50A   24-JUL-20    PAGE 4-28

12446 0634  
12447 1000          JEQ     #2011
12450 3372  
            /C
            /       IF(AT(DOOR))GOTO 9132
12451 0400          FLDA    DOOR
12452 4540  
12453 1120          JSA     AT
12454 0634  
12455 1041          JNE     #9132
12456 2554  
            /       SPK=112
12457 0100          LDX     160,0   /112
12460 0160  
12461 0030          XTA     0
12462 6221          FSTA    SPK
            /       IF(OBJ.NE.WATER)GOTO 2011
12463 0400          FLDA    OBJ
12464 6207  
12465 2400          FSUB    WATER
12466 4604  
12467 1040          JNE     #2011
12470 3372  
            /       CALL PSPEAK(PLANT,PROP(PLANT)+1)
12471 0400          FLDA    PLANT
12472 4612  
12473 0027          ATX     7
12474 0470          FLDA    PROP-3,7
12475 3647  
12476 1240          FADD    ONE
12477 6227          FSTA    #TMP
12500 1130          JSR     PSPEAK
12501 0000  
12502 1031          JA      .+6
12503 2510  
12504 1030          JA      PLANT
12505 4612  
12506 1030          JA      #TMP
12507 0130  
            /       PROP(PLANT)=MOD(PROP(PLANT)+2,6)
12510 0400          FLDA    PLANT
12511 4612  
12512 0027          ATX     7
12513 0470          FLDA    PROP-3,7
12514 3647  
12515 1241          FADD    TWO
12516 6227          FSTA    #TMP
12517 1130          JSR     MOD
12520 0000  
12521 1031          JA      .+6
12522 2527  
12523 1030          JA      #TMP
12524 0130  
12525 1030          JA      #LIT+6
12526 0202  
12527 6470          FSTA    PROP-3,7
RALF V50A   24-JUL-20    PAGE 4-29

12530 3647  
            /       PROP(PLANT2)=PROP(PLANT)/2
12531 0400          FLDA    PLANT2
12532 4615  
12533 0027          ATX     7
12534 0400          FLDA    PLANT
12535 4612  
12536 0026          ATX     6
12537 0460          FLDA    PROP-3,6
12540 3647  
12541 3241          FDIV    TWO
12542 1120          JSA     #FIX
12543 0000  
12544 6470          FSTA    PROP-3,7
12545 3647  
            /       K=NULL
12546 0400          FLDA    NULL
12547 4730  
12550 6400          FSTA    K
12551 6215  
            /       GOTO 8
12552 1030          JA      #8
12553 5146  
            
            /C
            /9132    PROP(DOOR)=0
12554 0400  #9132,  FLDA    DOOR
12555 4540  
12556 0027          ATX     7
12557 0002          FCLA
12560 6470          FSTA    PROP-3,7
12561 3647  
            /       IF(OBJ.EQ.OIL)PROP(DOOR)=1
12562 0400          FLDA    OBJ
12563 6207  
12564 2400          FSUB    OIL
12565 4607  
12566 1041          JNE     .+10
12567 2576  
12570 0400          FLDA    DOOR
12571 4540  
12572 0027          ATX     7
12573 0240          FLDA    ONE
12574 6470          FSTA    PROP-3,7
12575 3647  
            /       SPK=113+PROP(DOOR)
12576 0400          FLDA    DOOR
12577 4540  
12600 0027          ATX     7
12601 0100          LDX     161,0   /113
12602 0161  
12603 0030          XTA     0
12604 1470          FADD    PROP-3,7
12605 3647  
12606 6221          FSTA    SPK
            /       GOTO 2011
RALF V50A   24-JUL-20    PAGE 4-30

12607 1030          JA      #2011
12610 3372  
            
            /C
            /C EAT. INTRANSITIVE: ASSUME FOOD IF PRESENT, ELSE ASK WHAT. TRANSITIVE: FOOD
            /C OK, SOME THINGS LOSE APPETITE, REST ARE RIDICULOUS.
            /C
            /8140    IF(.NOT.HERE(FOOD))GOTO 8000
12611 0400  #8140,  FLDA    FOOD
12612 4576  
12613 1120          JSA     HERE
12614 0667  
12615 1000          JEQ     #8000
12616 7010  
            
            /8142    CALL DSTROY(FOOD)
12617 1130  #8142,  JSR     DSTROY
12620 0000  
12621 1031          JA      .+4
12622 2625  
12623 1030          JA      FOOD
12624 4576  
            /       SPK=72
12625 0100          LDX     110,0   /72
12626 0110  
12627 0030          XTA     0
12630 6221          FSTA    SPK
            /       GOTO 2011
12631 1030          JA      #2011
12632 3372  
            /C
            /9140    IF(OBJ.EQ.FOOD)GOTO 8142
12633 0400  #9140,  FLDA    OBJ
12634 6207  
12635 2400          FSUB    FOOD
12636 4576  
12637 1001          JEQ     #8142
12640 2617  
            /       IF(OBJ.EQ.BIRD.OR.OBJ.EQ.SNAKE.OR.OBJ.EQ.CLAM.OR.OBJ.EQ.OYSTER
            /       1       .OR.OBJ.EQ.DWARF.OR.OBJ.EQ.DRAGON.OR.OBJ.EQ.TROLL
            /       2       .OR.OBJ.EQ.BEAR)SPK=71
12641 0400          FLDA    OBJ
12642 6207  
12643 2400          FSUB    BIRD
12644 4535  
12645 1001          JEQ     #M78
12646 2721  
12647 0400          FLDA    OBJ
12650 6207  
12651 2400          FSUB    SNAKE
12652 4546  
12653 1001          JEQ     #M78
12654 2721  
12655 0400          FLDA    OBJ
12656 6207  
12657 2400          FSUB    CLAM
RALF V50A   24-JUL-20    PAGE 4-31

12660 4557  
12661 1001          JEQ     #M78
12662 2721  
12663 0400          FLDA    OBJ
12664 6207  
12665 2400          FSUB    OYSTER
12666 4562  
12667 1001          JEQ     #M78
12670 2721  
12671 0400          FLDA    OBJ
12672 6207  
12673 2400          FSUB    DWARF
12674 4570  
12675 1001          JEQ     #M78
12676 2721  
12677 0400          FLDA    OBJ
12700 6207  
12701 2400          FSUB    DRAGON
12702 4626  
12703 1001          JEQ     #M78
12704 2721  
12705 0400          FLDA    OBJ
12706 6207  
12707 2400          FSUB    TROLL
12710 4634  
12711 1001          JEQ     #M78
12712 2721  
12713 0400          FLDA    OBJ
12714 6207  
12715 2400          FSUB    BEAR
12716 4642  
12717 1040          JNE     #2011
12720 3372  
12721 0100  #M78,   LDX     107,0   /71
12722 0107  
12723 0030          XTA     0
12724 6221          FSTA    SPK
            /       GOTO 2011
12725 1030          JA      #2011
12726 3372  
            
            /C
            /C DRINK. IF NO OBJECT, ASSUME WATER AND LOOK FOR IT HERE. IF WATER IS IN
            /C THE BOTTLE, DRINK THAT, ELSE MUST BE AT A WATER LOC, SO DRINK STREAM.
            /C
            /9150    IF(OBJ.EQ.0.AND.LIQLOC(LOC).NE.WATER.AND.(LIQ(0).NE.WATER
            /       1       .OR..NOT.HERE(BOTTLE)))GOTO 8000
12727 0400  #9150,  FLDA    OBJ
12730 6207  
12731 1041          JNE     #M79
12732 2755  
12733 1120          JSA     LIQLOC
12734 1026  
12735 2400          FSUB    WATER
12736 4604  
12737 1001          JEQ     #M79
RALF V50A   24-JUL-20    PAGE 4-32

12740 2755  
12741 1120          JSA     LIQ
12742 1001  
12743 2400          FSUB    WATER
12744 4604  
12745 1040          JNE     #8000
12746 7010  
12747 0400          FLDA    BOTTLE
12750 4601  
12751 1120          JSA     HERE
12752 0667  
12753 1000          JEQ     #8000
12754 7010  
            /       IF(OBJ.NE.0.AND.OBJ.NE.WATER)SPK=110
12755 0400  #M79,   FLDA    OBJ
12756 6207  
12757 1001          JEQ     .+12
12760 2771  
12761 0400          FLDA    OBJ
12762 6207  
12763 2400          FSUB    WATER
12764 4604  
12765 1001          JEQ     .+4
12766 2771  
12767 0311          FLDA    #LIT+162
12770 6221          FSTA    SPK
            /       IF(SPK.EQ.110.OR.LIQ(0).NE.WATER.OR..NOT.HERE(BOTTLE))GOTO 2011
12771 0221          FLDA    SPK
12772 2311          FSUB    #LIT+162
12773 1000          JEQ     #2011
12774 3372  
12775 1120          JSA     LIQ
12776 1001  
12777 2400          FSUB    WATER
13000 4604  
13001 1040          JNE     #2011
13002 3372  
13003 0400          FLDA    BOTTLE
13004 4601  
13005 1120          JSA     HERE
13006 0667  
13007 1000          JEQ     #2011
13010 3372  
            /       PROP(BOTTLE)=1
13011 0400          FLDA    BOTTLE
13012 4601  
13013 0027          ATX     7
13014 0240          FLDA    ONE
13015 6470          FSTA    PROP-3,7
13016 3647  
            /       PLACE(WATER)=0
13017 0400          FLDA    WATER
13020 4604  
13021 0027          ATX     7
13022 0002          FCLA
13023 6470          FSTA    PLACE-3,7
RALF V50A   24-JUL-20    PAGE 4-33

13024 2027  
            /       SPK=74
13025 0100          LDX     112,0   /74
13026 0112  
13027 0030          XTA     0
13030 6221          FSTA    SPK
            /       GOTO 2011
13031 1030          JA      #2011
13032 3372  
            
            /C
            /C RUB. YIELDS VARIOUS SNIDE REMARKS.
            /C
            /9160    IF(OBJ.NE.LAMP)SPK=76
13033 0400  #9160,  FLDA    OBJ
13034 6207  
13035 2400          FSUB    LAMP
13036 4513  
13037 1000          JEQ     #2011
13040 3372  
13041 0100          LDX     114,0   /76
13042 0114  
13043 0030          XTA     0
13044 6221          FSTA    SPK
            /       GOTO 2011
13045 1030          JA      #2011
13046 3372  
            
            /C
            /C THROW. SAME AS DISCARD UNLESS AXE. THEN SAME AS ATTACK EXCEPT IGNORE BIRD,
            /C AND IF DWARF IS PRESENT THEN ONE MIGHT BE KILLED. (ONLY WAY TO DO SO!)
            /C AXE ALSO SPECIAL FOR DRAGON, BEAR, AND TROLL. TREASURES SPECIAL FOR TROLL.
            /C
            /9170    IF(TOTING(ROD2).AND.OBJ.EQ.ROD.AND..NOT.TOTING(ROD))OBJ=ROD2
13047 0400  #9170,  FLDA    ROD2
13050 4527  
13051 1120          JSA     TOTING
13052 0622  
13053 1001          JEQ     #M81
13054 3075  
13055 0400          FLDA    OBJ
13056 6207  
13057 2400          FSUB    ROD
13060 4524  
13061 1041          JNE     #M81
13062 3075  
13063 0400          FLDA    ROD
13064 4524  
13065 1120          JSA     TOTING
13066 0622  
13067 1041          JNE     #M81
13070 3075  
13071 0400          FLDA    ROD2
13072 4527  
13073 6400          FSTA    OBJ
13074 6207  
RALF V50A   24-JUL-20    PAGE 4-34

            /       IF(.NOT.TOTING(OBJ))GOTO 2011
13075 0400  #M81,   FLDA    OBJ
13076 6207  
13077 1120          JSA     TOTING
13100 0622  
13101 1000          JEQ     #2011
13102 3372  
            /       IF(OBJ.GE.50.AND.OBJ.LE.MAXTRS.AND.AT(TROLL))GOTO 9178
13103 0400          FLDA    OBJ
13104 6207  
13105 2273          FSUB    #LIT+110
13106 1051          JLT     #M82
13107 3124  
13110 0400          FLDA    OBJ
13111 6207  
13112 2400          FSUB    MAXTRS
13113 6226  
13114 1061          JGT     #M82
13115 3124  
13116 0400          FLDA    TROLL
13117 4634  
13120 1120          JSA     AT
13121 0634  
13122 1041          JNE     #9178
13123 3376  
            /       IF(OBJ.EQ.FOOD.AND.HERE(BEAR))GOTO 9177
13124 0400  #M82,   FLDA    OBJ
13125 6207  
13126 2400          FSUB    FOOD
13127 4576  
13130 1041          JNE     #M83
13131 3140  
13132 0400          FLDA    BEAR
13133 4642  
13134 1120          JSA     HERE
13135 0667  
13136 1041          JNE     #9177
13137 3370  
            /       IF(OBJ.NE.AXE)GOTO 9020
13140 0400  #M83,   FLDA    OBJ
13141 6207  
13142 2400          FSUB    AXE
13143 4620  
13144 1040          JNE     #9020
13145 7523  
            /       DO 9171 I=1,5
13146 0240          FLDA    ONE
13147 6400          FSTA    I
13150 0000  
            
            /C
            /C NEEDN'T CHECK DFLAG IF AXE IS HERE.
            /C
            /       IF(DLOC(I).EQ.LOC)GOTO 9172
13151 0400  #H0132, FLDA    I
13152 0000  
RALF V50A   24-JUL-20    PAGE 4-35

13153 0027          ATX     7
13154 0470          FLDA    DLOC-3,7
13155 4460  
13156 2400          FSUB    LOC
13157 0014  
13160 1001          JEQ     #9172
13161 3247  
            
            /9171    CONTINUE
13162 0400  #9171,  FLDA    I
13163 0000  
13164 1240          FADD    ONE
13165 6400          FSTA    I
13166 0000  
13167 2244          FSUB    #LIT+3
13170 1021          JLE     #H0132
13171 3151  
            /       SPK=152
13172 0100          LDX     230,0   /152
13173 0230  
13174 0030          XTA     0
13175 6221          FSTA    SPK
            /       IF(AT(DRAGON).AND.PROP(DRAGON).EQ.0)GOTO 9175
13176 0400          FLDA    DRAGON
13177 4626  
13200 1120          JSA     AT
13201 0634  
13202 1001          JEQ     #M84
13203 3213  
13204 0400          FLDA    DRAGON
13205 4626  
13206 0027          ATX     7
13207 0470          FLDA    PROP-3,7
13210 3647  
13211 1001          JEQ     #9175
13212 3311  
            /       SPK=158
13213 0100  #M84,   LDX     236,0   /158
13214 0236  
13215 0030          XTA     0
13216 6221          FSTA    SPK
            /       IF(AT(TROLL))GOTO 9175
13217 0400          FLDA    TROLL
13220 4634  
13221 1120          JSA     AT
13222 0634  
13223 1041          JNE     #9175
13224 3311  
            /       IF(HERE(BEAR).AND.PROP(BEAR).EQ.0)GOTO 9176
13225 0400          FLDA    BEAR
13226 4642  
13227 1120          JSA     HERE
13230 0667  
13231 1001          JEQ     #M85
13232 3242  
13233 0400          FLDA    BEAR
RALF V50A   24-JUL-20    PAGE 4-36

13234 4642  
13235 0027          ATX     7
13236 0470          FLDA    PROP-3,7
13237 3647  
13240 1001          JEQ     #9176
13241 3335  
            /       OBJ=0
13242 0002  #M85,   FCLA
13243 6400          FSTA    OBJ
13244 6207  
            /       GOTO 9120
13245 1031          JA      #9120
13246 1440  
            
            /C
            /9172    SPK=48
13247 0100  #9172,  LDX     60,0    /48
13250 0060  
13251 0030          XTA     0
13252 6221          FSTA    SPK
            /       IF(RND(3).EQ.0)GOTO 9175
13253 1130          JSR     RND
13254 0000  
13255 1031          JA      .+4
13256 3261  
13257 1030          JA      THREE
13260 0171  
13261 1001          JEQ     #9175
13262 3311  
            /       DSEEN(I)=.FALSE.
13263 0400          FLDA    I
13264 0000  
13265 0027          ATX     7
13266 0002          FCLA
13267 6470          FSTA    DSEEN-3,7
13270 4433  
            /       DLOC(I)=0
13271 6470          FSTA    DLOC-3,7
13272 4460  
            /       SPK=47
13273 0100          LDX     57,0    /47
13274 0057  
13275 0030          XTA     0
13276 6221          FSTA    SPK
            /       DKILL=DKILL+1
13277 0240          FLDA    ONE
13300 5400          FADDM   DKILL
13301 5005  
            /       IF(DKILL.EQ.1)SPK=149
13302 2240          FSUB    ONE
13303 1041          JNE     #9175
13304 3311  
13305 0100          LDX     225,0 /149
13306 0225  
13307 0030          XTA     0
13310 6221          FSTA    SPK
RALF V50A   24-JUL-20    PAGE 4-37

            /9175    CALL RSPEAK(SPK)
13311 1130  #9175,  JSR     RSPEAK
13312 0000  
13313 1031          JA      .+4
13314 3317  
13315 1030          JA      SPK
13316 0106  
            /       CALL DROP(AXE,LOC)
13317 1130          JSR     DROP
13320 0000  
13321 1031          JA      .+6
13322 3327  
13323 1030          JA      AXE
13324 4620  
13325 1030          JA      LOC
13326 0014  
            /       K=NULL
13327 0400          FLDA    NULL
13330 4730  
13331 6400          FSTA    K
13332 6215  
            /       GOTO 8
13333 1030          JA      #8
13334 5146  
            
            /C
            /C THIS'LL TEACH HIM TO THROW THE AXE AT THE BEAR!
            /C
            /9176    SPK=164
13335 0100  #9176,  LDX     244,0   /164
13336 0244  
13337 0030          XTA     0
13340 6221          FSTA    SPK
            /       CALL DROP(AXE,LOC)
13341 1130          JSR     DROP
13342 0000  
13343 1031          JA      .+6
13344 3351  
13345 1030          JA      AXE
13346 4620  
13347 1030          JA      LOC
13350 0014  
            /       FIXED(AXE)=-1
13351 0400          FLDA    AXE
13352 4620  
13353 0027          ATX     7
13354 0372          FLDA    MINUS1
13355 6470          FSTA    FIXED-3,7
13356 2503  
            /       PROP(AXE)=1
13357 0240          FLDA    ONE
13360 6470          FSTA    PROP-3,7
13361 3647  
            /       CALL JUGGLE(BEAR)
13362 1130          JSR     JUGGLE
13363 0000  
RALF V50A   24-JUL-20    PAGE 4-38

            /       GOTO 2011
13364 1030          JA      #2011
13365 3372  
13366 1030          JA      BEAR
13367 4642  
            
            /C
            /C BUT THROWING FOOD IS ANOTHER STORY.
            /C
            /9177    OBJ=BEAR
13370 0400  #9177,  FLDA    BEAR
13371 4642  
13372 6400          FSTA    OBJ
13373 6207  
            /       GOTO 9210
13374 1031          JA      #9210
13375 3756  
            
            /C
            /C SNARF A TREASURE FOR THE TROLL.
            /C
            /9178    SPK=159
13376 0100  #9178,  LDX     237,0   /159
13377 0237  
13400 0030          XTA     0
13401 6221          FSTA    SPK
            /       CALL DROP(OBJ,0)
13402 1130          JSR     DROP
13403 0000  
13404 1031          JA      .+6
13405 3412  
13406 1030          JA      OBJ
13407 6207  
13410 1030          JA      ZERO
13411 0160  
            /       CALL MOVE(TROLL,0)
13412 1130          JSR     MOVE
13413 0000  
13414 1031          JA      .+6
13415 3422  
13416 1030          JA      TROLL
13417 4634  
13420 1030          JA      ZERO
13421 0160  
            /       CALL MOVE(TROLL+100,0)
13422 0400          FLDA    TROLL
13423 4634  
13424 1307          FADD    #LIT+154
13425 6227          FSTA    #TMP
13426 1130          JSR     MOVE
13427 0000  
13430 1031          JA      .+6
13431 3436  
13432 1030          JA      #TMP
13433 0130  
13434 1030          JA      ZERO
RALF V50A   24-JUL-20    PAGE 4-39

13435 0160  
            /       CALL DROP(TROLL2,PLAC(TROLL))
13436 0400          FLDA    TROLL
13437 4634  
13440 0027          ATX     7
13441 0037          XTA     7
13442 4242          FMUL    THREE
13443 0010          ALN     0
13444 0006          STARTD
13445 1356          FADD    PPLAC
13446 6401          FSTA    .+11
13447 3457  
13450 0005          STARTF
13451 1130          JSR     DROP
13452 0000  
13453 1031          JA      .+6
13454 3461  
13455 1030          JA      TROLL2
13456 4637  
13457 1031          JA      .
13460 3457  
            /       CALL DROP(TROLL2+100,FIXD(TROLL))
13461 0400          FLDA    TROLL2
13462 4637  
13463 1307          FADD    #LIT+154
13464 6227          FSTA    #TMP
13465 0400          FLDA    TROLL
13466 4634  
13467 0027          ATX     7
13470 0037          XTA     7
13471 4242          FMUL    THREE
13472 0010          ALN     0
13473 0006          STARTD
13474 1353          FADD    PFIXD
13475 6401          FSTA    .+11
13476 3506  
13477 0005          STARTF
13500 1130          JSR     DROP
13501 0000  
13502 1031          JA      .+6
13503 3510  
13504 1030          JA      #TMP
13505 0130  
13506 1031          JA      .
13507 3506  
            /       CALL JUGGLE(CHASM)
13510 1130          JSR     JUGGLE
13511 0000  
13512 1031          JA      .+4
13513 3516  
13514 1030          JA      CHASM
13515 4631  
            /       GOTO 2011
13516 1030          JA      #2011
13517 3372  
            
RALF V50A   24-JUL-20    PAGE 4-40

            /C
            /C QUIT. INTRANSITIVE ONLY. VERIFY INTENT AND EXIT IF THAT'S WHAT HE WANTS.
            /C
            /8180    GAVEUP=YES(22,54,54)
13520 1130  #8180,  JSR     YES
13521 0000  
13522 1031          JA      .+10
13523 3532  
13524 1030          JA      #LIT+41
13525 0235  
13526 1030          JA      #LIT+113
13527 0307  
13530 1030          JA      #LIT+113
13531 0307  
13532 6400          FSTA    GAVEUP
13533 5035  
            
            /8185    IF(GAVEUP)GOTO 20000
13534 0400  #8185,  FLDA    GAVEUP
13535 5035  
13536 1041          JNE     #20000
13537 7020  
            /       GOTO 2012
13540 1030          JA      #2012
13541 3400  
            /C
            /C FIND. MIGHT BE CARRYING IT, OR IT MIGHT BE HERE. ELSE GIVE CAVEAT.
            /C
            /9190    IF(AT(OBJ).OR.(LIQ(0).EQ.OBJ.AND.AT(BOTTLE))
            /       1       .OR.K.EQ.LIQLOC(LOC))SPK=94
13542 0400  #9190,  FLDA    OBJ
13543 6207  
13544 1120          JSA     AT
13545 0634  
13546 1041          JNE     #M86
13547 3572  
13550 1120          JSA     LIQ
13551 1001  
13552 2400          FSUB    OBJ
13553 6207  
13554 1041          JNE     #M87
13555 3564  
13556 0400          FLDA    BOTTLE
13557 4601  
13560 1120          JSA     AT
13561 0634  
13562 1041          JNE     #M86
13563 3572  
13564 1120  #M87,   JSA     LIQLOC
13565 1026  
13566 2400          FSUB    K
13567 6215  
13570 1041          JNE     .+6
13571 3576  
13572 0100  #M86,   LDX     136,0   /94
13573 0136  
RALF V50A   24-JUL-20    PAGE 4-41

13574 0030          XTA     0
13575 6221          FSTA    SPK
            /       DO 9192 I=1,5
13576 0240          FLDA    ONE
13577 6400          FSTA    I
13600 0000  
            /9192    IF(DLOC(I).EQ.LOC.AND.DFLAG.GE.2.AND.OBJ.EQ.DWARF)SPK=94
13601 0400  #9192,  FLDA    I
13602 0000  
13603 0027          ATX     7
13604 0470          FLDA    DLOC-3,7
13605 4460  
13606 2400          FSUB    LOC
13607 0014  
13610 1041          JNE     #M88
13611 3631  
13612 0400          FLDA    DFLAG
13613 4460  
13614 2241          FSUB    TWO
13615 1051          JLT     #M88
13616 3631  
13617 0400          FLDA    OBJ
13620 6207  
13621 2400          FSUB    DWARF
13622 4570  
13623 1041          JNE     #M88
13624 3631  
13625 0100          LDX     136,0   /94
13626 0136  
13627 0030          XTA     0
13630 6221          FSTA    SPK
13631 0400  #M88,   FLDA    I
13632 0000  
13633 1240          FADD    ONE
13634 6400          FSTA    I
13635 0000  
13636 2244          FSUB    #LIT+3
13637 1021          JLE     #9192
13640 3601  
            /       IF(CLOSED)SPK=138
13641 0400          FLDA    CLOSED
13642 5032  
13643 1001          JEQ     .+6
13644 3651  
13645 0100          LDX     212,0   /138
13646 0212  
13647 0030          XTA     0
13650 6221          FSTA    SPK
            /       IF(TOTING(OBJ))SPK=24
13651 0400          FLDA    OBJ
13652 6207  
13653 1120          JSA     TOTING
13654 0622  
13655 1000          JEQ     #2011
13656 3372  
13657 0260          FLDA    #LIT+47
RALF V50A   24-JUL-20    PAGE 4-42

13660 6221          FSTA    SPK
            /       GOTO 2011
13661 1030          JA      #2011
13662 3372  
            
            /C
            /C INVENTORY. IF OBJECT, TREAT SAME AS FIND. ELSE REPORT ON CURRENT BURDEN.
            /C
            /8200    SPK=98
13663 0100  #8200,  LDX     142,0   /98
13664 0142  
13665 0030          XTA     0
13666 6221          FSTA    SPK
            /       DO 8201 I=1,100
13667 0240          FLDA    ONE
13670 6400          FSTA    I
13671 0000  
            
            /       IF(I.EQ.BEAR.OR..NOT.TOTING(I))GOTO 8201
13672 0400  #H0143, FLDA    I
13673 0000  
13674 2400          FSUB    BEAR
13675 4642  
13676 1001          JEQ     #8201
13677 3734  
13700 0400          FLDA    I
13701 0000  
13702 1120          JSA     TOTING
13703 0622  
13704 1001          JEQ     #8201
13705 3734  
            /       IF(SPK.EQ.98)CALL RSPEAK(99)
13706 0100          LDX     142,0   /98
13707 0142  
13710 0030          XTA     0
13711 2221          FSUB    SPK
13712 1041          JNE     .+10
13713 3722  
13714 1130          JSR     RSPEAK
13715 0000  
13716 1031          JA      .+4
13717 3722  
13720 1030          JA      #LIT+151
13721 0345  
            /       CALL PSPEAK(I,-1)
13722 1130          JSR     PSPEAK
13723 0000  
13724 1031          JA      .+6
13725 3732  
13726 1030          JA      I
13727 0000  
13730 1030          JA      MINUS1
13731 0601  
            /       SPK=0
13732 0002          FCLA
13733 6221          FSTA    SPK
RALF V50A   24-JUL-20    PAGE 4-43

            
            /8201    CONTINUE
13734 0400  #8201,  FLDA    I
13735 0000  
13736 1240          FADD    ONE
13737 6400          FSTA    I
13740 0000  
13741 2307          FSUB    #LIT+154
13742 1021          JLE     #H0143
13743 3672  
            /       IF(TOTING(BEAR))SPK=141
13744 0400          FLDA    BEAR
13745 4642  
13746 1120          JSA     TOTING
13747 0622  
13750 1000          JEQ     #2011
13751 3372  
13752 0325          FLDA    #LIT+226
13753 6221          FSTA    SPK
            /       GOTO 2011
13754 1030          JA      #2011
13755 3372  
            
            /C
            /C FEED. IF BIRD, NO SEED. SNAKE, DRAGON, TROLL: QUIP. IF DWARF, MAKE HIM
            /C MAD. BEAR, SPECIAL.
            /C
            /9210    IF(OBJ.NE.BIRD)GOTO 9212
13756 0400  #9210,  FLDA    OBJ
13757 6207  
13760 2400          FSUB    BIRD
13761 4535  
13762 1041          JNE     #9212
13763 3770  
            /       SPK=100
13764 0307          FLDA    #LIT+154
13765 6221          FSTA    SPK
            /       GOTO 2011
13766 1030          JA      #2011
13767 3372  
            
            /C
            /9212    IF(OBJ.NE.SNAKE.AND.OBJ.NE.DRAGON.AND.OBJ.NE.TROLL)GOTO 9213
13770 0400  #9212,  FLDA    OBJ
13771 6207  
13772 2400          FSUB    SNAKE
13773 4546  
13774 1001          JEQ     #M89
13775 4012  
13776 0400          FLDA    OBJ
13777 6207  
14000 2400          FSUB    DRAGON
14001 4626  
14002 1001          JEQ     #M89
14003 4012  
14004 0400          FLDA    OBJ
RALF V50A   24-JUL-20    PAGE 4-44

14005 6207  
14006 2400          FSUB    TROLL
14007 4634  
14010 1041          JNE     #9213
14011 4116  
            /       SPK=102
14012 0100  #M89,   LDX     146,0   /102
14013 0146  
14014 0030          XTA     0
14015 6221          FSTA    SPK
            /       IF(OBJ.EQ.DRAGON.AND.PROP(DRAGON).NE.0)SPK=110
14016 0400          FLDA    OBJ
14017 6207  
14020 2400          FSUB    DRAGON
14021 4626  
14022 1041          JNE     #M90
14023 4035  
14024 0400          FLDA    DRAGON
14025 4626  
14026 0027          ATX     7
14027 0470          FLDA    PROP-3,7
14030 3647  
14031 1001          JEQ     .+4
14032 4035  
14033 0311          FLDA    #LIT+162
14034 6221          FSTA    SPK
            /       IF(OBJ.EQ.TROLL)SPK=182
14035 0400  #M90,   FLDA    OBJ
14036 6207  
14037 2400          FSUB    TROLL
14040 4634  
14041 1041          JNE     .+6
14042 4047  
14043 0100          LDX     266,0   /182
14044 0266  
14045 0030          XTA     0
14046 6221          FSTA    SPK
            /       IF(OBJ.NE.SNAKE.OR.CLOSED.OR..NOT.HERE(BIRD))GOTO 2011
14047 0400          FLDA    OBJ
14050 6207  
14051 2400          FSUB    SNAKE
14052 4546  
14053 1040          JNE     #2011
14054 3372  
14055 0400          FLDA    CLOSED
14056 5032  
14057 1040          JNE     #2011
14060 3372  
14061 0400          FLDA    BIRD
14062 4535  
14063 1120          JSA     HERE
14064 0667  
14065 1000          JEQ     #2011
14066 3372  
            /       SPK=101
14067 0100          LDX     145,0   /101
RALF V50A   24-JUL-20    PAGE 4-45

14070 0145  
14071 0030          XTA     0
14072 6221          FSTA    SPK
            /       CALL DSTROY(BIRD)
14073 1130          JSR     DSTROY
14074 0000  
14075 1031          JA      .+4
14076 4101  
14077 1030          JA      BIRD
14100 4535  
            /       PROP(BIRD)=0
14101 0400          FLDA    BIRD
14102 4535  
14103 0027          ATX     7
14104 0002          FCLA
14105 6470          FSTA    PROP-3,7
14106 3647  
            /       TALLY2=TALLY2+1
14107 0400          FLDA    TALLY2
14110 4331  
14111 1240          FADD    ONE
14112 6400          FSTA    TALLY2
14113 4331  
            /       GOTO 2011
14114 1030          JA      #2011
14115 3372  
            
            /C
            /9213    IF(OBJ.NE.DWARF)GOTO 9214
14116 0400  #9213,  FLDA    OBJ
14117 6207  
14120 2400          FSUB    DWARF
14121 4570  
14122 1041          JNE     #9214
14123 4143  
            /       IF(.NOT.HERE(FOOD))GOTO 2011
14124 0400          FLDA    FOOD
14125 4576  
14126 1120          JSA     HERE
14127 0667  
14130 1000          JEQ     #2011
14131 3372  
            /       SPK=103
14132 0100          LDX     147,0   / 103
14133 0147  
14134 0030          XTA     0
14135 6221          FSTA    SPK
            /       DFLAG=DFLAG+1
14136 0240          FLDA    ONE
14137 5400          FADDM   DFLAG
14140 4460  
            /       GOTO 2011
14141 1030          JA      #2011
14142 3372  
            
            /C
RALF V50A   24-JUL-20    PAGE 4-46

            /9214    IF(OBJ.NE.BEAR)GOTO 9215
14143 0400  #9214,  FLDA    OBJ
14144 6207  
14145 2400          FSUB    BEAR
14146 4642  
14147 1041          JNE     #9215
14150 4230  
            /       IF(PROP(BEAR).EQ.0)SPK=102
14151 0400          FLDA    BEAR
14152 4642  
14153 0027          ATX     7
14154 0470          FLDA    PROP-3,7
14155 3647  
14156 1041          JNE     .+6
14157 4164  
14160 0100          LDX     146,0   /102
14161 0146  
14162 0030          XTA     0
14163 6221          FSTA    SPK
            /       IF(PROP(BEAR).EQ.3)SPK=110
14164 0470          FLDA    PROP-3,7
14165 3647  
14166 2242          FSUB    THREE
14167 1041          JNE     .+4
14170 4173  
14171 0311          FLDA    #LIT+162
14172 6221          FSTA    SPK
            /       IF(.NOT.HERE(FOOD))GOTO 2011
14173 0400          FLDA    FOOD
14174 4576  
14175 1120          JSA     HERE
14176 0667  
14177 1000          JEQ     #2011
14200 3372  
            /       CALL DSTROY(FOOD)
14201 1130          JSR     DSTROY
14202 0000  
14203 1031          JA      .+4
14204 4207  
14205 1030          JA      FOOD
14206 4576  
            /       PROP(BEAR)=1
14207 0240          FLDA    ONE
14210 6470          FSTA    PROP-3,7
14211 3647  
            /       FIXED(AXE)=0
14212 0400          FLDA    AXE
14213 4620  
14214 0027          ATX     7
14215 0002          FCLA
14216 6470          FSTA    FIXED-3,7
14217 2503  
            /       PROP(AXE)=0
14220 6470          FSTA    PROP-3,7
14221 3647  
            /       SPK=168
RALF V50A   24-JUL-20    PAGE 4-47

14222 0100          LDX     250,0   /168
14223 0250  
14224 0030          XTA     0
14225 6221          FSTA    SPK
            /       GOTO 2011
14226 1030          JA      #2011
14227 3372  
            
            /C
            /9215    SPK=14
14230 0100  #9215,  LDX     16,0    /14
14231 0016  
14232 0030          XTA     0
14233 6221          FSTA    SPK
            /       GOTO 2011
14234 1030          JA      #2011
14235 3372  
            
            /C
            /C FILL. BOTTLE MUST BE EMPTY, AND SOME LIQUID AVAILABLE. (VASE IS NASTY.)
            /C
            /9220    IF(OBJ.EQ.VASE)GOTO 9222
14236 0400  #9220,  FLDA    OBJ
14237 6207  
14240 2400          FSUB    VASE
14241 4675  
14242 1001          JEQ     #9222
14243 4410  
            /       IF(OBJ.NE.0.AND.OBJ.NE.BOTTLE)GOTO 2011
14244 0400          FLDA    OBJ
14245 6207  
14246 1001          JEQ     #M91
14247 4256  
14250 0400          FLDA    OBJ
14251 6207  
14252 2400          FSUB    BOTTLE
14253 4601  
14254 1040          JNE     #2011
14255 3372  
            /       IF(OBJ.EQ.0.AND..NOT.HERE(BOTTLE))GOTO 8000
14256 0400  #M91,   FLDA    OBJ
14257 6207  
14260 1041          JNE     #M92
14261 4270  
14262 0400          FLDA    BOTTLE
14263 4601  
14264 1120          JSA     HERE
14265 0667  
14266 1000          JEQ     #8000
14267 7010  
            /       SPK=107
14270 0100  #M92,   LDX     153,0   /107
14271 0153  
14272 0030          XTA     0
14273 6221          FSTA    SPK
            /       IF(LIQLOC(LOC).EQ.0)SPK=106
RALF V50A   24-JUL-20    PAGE 4-48

14274 1120          JSA     LIQLOC
14275 1026  
14276 1041          JNE     #M92A
14277 4304  
14300 0100          LDX     152,0   /106
14301 0152  
14302 0030          XTA     0
14303 6221          FSTA    SPK
            /       IF(LIQ(0).NE.0)SPK=105
14304 1120  #M92A,  JSA     LIQ
14305 1001  
14306 1001          JEQ     .+4
14307 4312  
14310 0310          FLDA    #LIT+157
14311 6221          FSTA    SPK
            /       IF(SPK.NE.107)GOTO 2011
14312 0100          LDX     153,0   /107
14313 0153  
14314 0030          XTA     0
14315 2221          FSUB    SPK
14316 1040          JNE     #2011
14317 3372  
            /        PROP(BOTTLE)=MOD(COND(LOC),4)/2*2
14320 0400          FLDA    BOTTLE
14321 4601  
14322 0027          ATX     7
14323 0400          FLDA    LOC
14324 0014  
14325 0026          ATX     6
14326 0036          XTA     6
14327 4242          FMUL    THREE
14330 0010          ALN     0
14331 0006          STARTD
14332 1352          FADD    PCOND
14333 6401          FSTA    .+7
14334 4342  
14335 0005          STARTF
14336 1130          JSR     MOD
14337 0000  
14340 1031          JA      .+6
14341 4346  
14342 1031          JA      .
14343 4342  
14344 1030          JA      #LIT
14345 0174  
14346 3241          FDIV    TWO
14347 1120          JSA     #FIX
14350 0000  
14351 4241          FMUL    TWO
14352 6470          FSTA    PROP-3,7
14353 3647  
            /       K=LIQ(0)
14354 1120          JSA     LIQ
14355 1001  
14356 6400          FSTA    K
14357 6215  
RALF V50A   24-JUL-20    PAGE 4-49

            /       IF(TOTING(BOTTLE))PLACE(K)=-1
14360 0400          FLDA    BOTTLE
14361 4601  
14362 1120          JSA     TOTING
14363 0622  
14364 1001          JEQ     .+11
14365 4375  
14366 0400          FLDA    K
14367 6215  
14370 0027          ATX     7
14371 0372          FLDA    MINUS1
14372 6470          FSTA    PLACE-3,7
14373 2027  
            /       IF(K.EQ.OIL)SPK=108
14374 0400          FLDA    K
14375 6215  
14376 2400          FSUB    OIL
14377 4607  
14400 1040          JNE     #2011
14401 3372  
14402 0100          LDX     154,0   /108
14403 0154  
14404 0030          XTA     0
14405 6221          FSTA    SPK
            /       GOTO 2011
14406 1030          JA      #2011
14407 3372  
            
            /C
            /9222    SPK=29
14410 0100  #9222,  LDX     35,0    /29
14411 0035  
14412 0030          XTA     0
14413 6221          FSTA    SPK
            /       IF(LIQLOC(LOC).EQ.0)SPK=144
14414 1120          JSA     LIQLOC
14415 1026  
14416 1041          JNE     .+6
14417 4424  
14420 0100          LDX     220,0   /144
14421 0220  
14422 0030          XTA     0
14423 6221          FSTA    SPK
            /       IF(LIQLOC(LOC).EQ.0.OR..NOT.TOTING(VASE))GOTO 2011
14424 1120          JSA     LIQLOC
14425 1026  
14426 1000          JEQ     #2011
14427 3372  
14430 0400          FLDA    VASE
14431 4675  
14432 1120          JSA     TOTING
14433 0622  
14434 1000          JEQ     #2011
14435 3372  
            /       CALL RSPEAK(145)
14436 1130          JSR     RSPEAK
RALF V50A   24-JUL-20    PAGE 4-50

14437 0000  
14440 1031          JA      .+4
14441 4444  
14442 1030          JA      #LIT+234
14443 0430  
            /       PROP(VASE)=2
14444 0400          FLDA    VASE
14445 4675  
14446 0027          ATX     7
14447 0241          FLDA    TWO
14450 6470          FSTA    PROP-3,7
14451 3647  
            /       FIXED(VASE)=-1
14452 0372          FLDA    MINUS1
14453 6470          FSTA    FIXED-3,7
14454 2503  
            /       GOTO 9024
14455 1030          JA      #9024
14456 7724  
            
            /C
            /C BLAST. NO EFFECT UNLESS YOU'VE GOT DYNAMITE, WHICH IS A NEAT TRICK!
            /C
            /9230    IF(PROP(ROD2).LT.0.OR..NOT.CLOSED)GOTO 2011
14457 0400  #9230,  FLDA    ROD2
14460 4527  
14461 0027          ATX     7
14462 0470          FLDA    PROP-3,7
14463 3647  
14464 1050          JLT     #2011
14465 3372  
14466 0400          FLDA    CLOSED
14467 5032  
14470 1000          JEQ     #2011
14471 3372  
            /       BONUS=133
14472 0100          LDX     205,0   /133
14473 0205  
14474 0030          XTA     0
14475 6400          FSTA    BONUS
14476 5013  
            /       IF(LOC.EQ.115)BONUS=134
14477 0400          FLDA    LOC
14500 0014  
14501 2312          FSUB    #LIT+165
14502 1041          JNE     .+7
14503 4511  
14504 0100          LDX     206,0   /134
14505 0206  
14506 0030          XTA     0
14507 6400          FSTA    BONUS
14510 5013  
            /       IF(HERE(ROD2))BONUS=135
14511 0400          FLDA    ROD2
14512 4527  
14513 1120          JSA     HERE
RALF V50A   24-JUL-20    PAGE 4-51

14514 0667  
14515 1001          JEQ     .+7
14516 4524  
14517 0100          LDX     207,0   /135
14520 0207  
14521 0030          XTA     0
14522 6400          FSTA    BONUS
14523 5013  
            /       CALL RSPEAK(BONUS)
14524 1130          JSR     RSPEAK
14525 0000  
14526 1031          JA      .+4
14527 4532  
14530 1030          JA      BONUS
14531 5013  
            /       GOTO 20000
14532 1031          JA      #20000
14533 7020  
            
            /C
            /C SCORE. GO TO SCORING SECTION, WHICH WILL RETURN TO 8241 IF SCORNG IS TRUE.
            /C
            /8240    SCORNG=.TRUE.
14534 0240  #8240,  FLDA    ONE
14535 6400          FSTA    SCORNG
14536 5040  
            /       GOTO 20000
14537 1031          JA      #20000
14540 7020  
            
            /C
            /8241    SCORNG=.FALSE.
14541 0002  #8241,  FCLA
14542 6400          FSTA    SCORNG
14543 5040  
            /       TYPE 8243,SCORE,MXSCOR
14544 1130          JSR     SIXOUT
14545 0000  
14546 1031          JA      .+10
14547 4556  
14550 1032          JA      #8243
14551 0055  
14552 1030          JA      ZERO
14553 0160  
14554 1030          JA      TWO
14555 0166  
                    
14556 3000          TRAP3   #WRITO
14557 0000  
14560 1030          JA      #LIT
14561 0174  
14562 1032          JA      #8243A
14563 0103  
14564 0400          FLDA    SCORE
14565 0017  
14566 3000          TRAP3   #RSVO
RALF V50A   24-JUL-20    PAGE 4-52

14567 0000  
14570 3000          TRAP3   #RENDO
14571 0000  
            
14572 1130          JSR     SIXOUT
14573 0000  
14574 1031          JA      .+10
14575 4604  
14576 1032          JA      #8243B
14577 0110  
14600 1030          JA      ZERO
14601 0160  
14602 1030          JA      THREE
14603 0171  
            
14604 3000          TRAP3   #WRITO
14605 0000  
14606 1030          JA      #LIT
14607 0174  
14610 1032          JA      #8243A
14611 0103  
14612 0400          FLDA    MXSCOR
14613 0014  
14614 3000          TRAP3   #RSVO
14615 0000  
14616 3000          TRAP3   #RENDO
14617 0000  
            
14620 1130          JSR     SIXOUT
14621 0000  
14622 1031          JA      .+10
14623 4632  
14624 1032          JA      #8243C
14625 0123  
14626 1030          JA      ZERO
14627 0160  
14630 1030          JA      ONE
14631 0163  
            
            /8243    FORMAT(' If you were to quit now, you would score',I4
            /       1       ,' out of a possible',I4,'.')
            /       GAVEUP=YES(143,54,54)
14632 1130          JSR     YES
14633 0000  
14634 1031          JA      .+10
14635 4644  
14636 1030          JA      #LIT+231
14637 0425  
14640 1030          JA      #LIT+113
14641 0307  
14642 1030          JA      #LIT+113
14643 0307  
14644 6400          FSTA    GAVEUP
14645 5035  
            /       GOTO 8185
14646 1031          JA      #8185
RALF V50A   24-JUL-20    PAGE 4-53

14647 3534  
            
            /C
            /C FEE FIE FOE FOO (AND FUM). ADVANCE TO NEXT STATE IF GIVEN IN PROPER ORDER.
            /C LOOK UP WD1 IN SECTION 3 OF VOCAB TO DETERMINE WHICH WORD WE'VE GOT. LAST
            /C WORD ZIPS THE EGGS BACK TO THE GIANT ROOM (UNLESS ALREADY THERE).
            /C
            /8250    CALL VOCAB(WD1,WD1A,3,K)
14650 1130  #8250,  JSR     VOCAB
14651 0000  
14652 1031          JA      .+6
14653 4660  
14654 1030          JA      WD1
14655 0111  
14656 1030          JA      THREE
14657 0171  
14660 6400          FSTA    K
14661 6215  
            /       SPK=42
14662 0100          LDX     52,0    /42
14663 0052  
14664 0030          XTA     0
14665 6221          FSTA    SPK
            /       IF(FOOBAR.EQ.1-K)GOTO 8252
14666 0240          FLDA    ONE
14667 2400          FSUB    K
14670 6215  
14671 2400          FSUB    FOOBAR
14672 5010  
14673 1001          JEQ     #8252
14674 4707  
            /       IF(FOOBAR.NE.0)SPK=151
14675 0400          FLDA    FOOBAR
14676 5010  
14677 1000          JEQ     #2011
14700 3372  
14701 0100          LDX     227,0   /151
14702 0227  
14703 0030          XTA     0
14704 6221          FSTA    SPK
            /       GOTO 2011
14705 1030          JA      #2011
14706 3372  
            
            /C
            /8252    FOOBAR=K
14707 0400  #8252,  FLDA    K
14710 6215  
14711 6400          FSTA    FOOBAR
14712 5010  
            /       IF(K.NE.4)GOTO 2009
14713 2243          FSUB    #LIT
14714 1040          JNE     #2009
14715 3364  
            /       FOOBAR=0
14716 0002          FCLA
RALF V50A   24-JUL-20    PAGE 4-54

14717 6400          FSTA    FOOBAR
14720 5010  
            /       IF(PLACE(EGGS).EQ.PLAC(EGGS)
            /       1       .OR.(TOTING(EGGS).AND.LOC.EQ.PLAC(EGGS)))GOTO 2011
14721 0400          FLDA    EGGS
14722 4667  
14723 0027          ATX     7
14724 0470          FLDA    PLACE-3,7
14725 2027  
14726 2470          FSUB    PLAC-3,7
14727 1061  
14730 1000          JEQ     #2011
14731 3372  
14732 0400          FLDA    EGGS
14733 4667  
14734 1120          JSA     TOTING
14735 0622  
14736 1001          JEQ     #M93
14737 4746  
14740 0400          FLDA    LOC
14741 0014  
14742 2470          FSUB    PLAC-3,7
14743 1061  
14744 1000          JEQ     #2011
14745 3372  
            /C
            /C BRING BACK TROLL IF WE STEAL THE EGGS BACK FROM HIM BEFORE CROSSING.
            /C
            /       IF(PLACE(EGGS).EQ.0.AND.PLACE(TROLL).EQ.0.AND.PROP(TROLL).EQ.0)
            /       1       PROP(TROLL)=1
14746 0470  #M93,   FLDA    PLACE-3,7
14747 2027  
14750 1041          JNE     #M94
14751 4770  
14752 0400          FLDA    TROLL
14753 4634  
14754 0026          ATX     6
14755 0460          FLDA    PLACE-3,6
14756 2027  
14757 1041          JNE     #M94
14760 4770  
14761 0460          FLDA    PROP-3,6
14762 3647  
14763 1041          JNE     #M94
14764 4770  
14765 0240          FLDA    ONE
14766 6460          FSTA    PROP-3,6
14767 3647  
            /       K=2
14770 0241  #M94,   FLDA    TWO
14771 6400          FSTA    K
14772 6215  
            /       IF(HERE(EGGS))K=1
14773 0400          FLDA    EGGS
14774 4667  
14775 1120          JSA     HERE
RALF V50A   24-JUL-20    PAGE 4-55

14776 0667  
14777 1001          JEQ     .+5
15000 5004  
15001 0240          FLDA    ONE
15002 6400          FSTA    K
15003 6215  
            /       IF(LOC.EQ.PLAC(EGGS))K=0
15004 0400          FLDA    LOC
15005 0014  
15006 2470          FSUB    PLAC-3,7
15007 1061  
15010 1041          JNE     .+5
15011 5015  
15012 0002          FCLA
15013 6400          FSTA    K
15014 6215  
            /       CALL MOVE(EGGS,PLAC(EGGS))
15015 0037          XTA     7
15016 4242          FMUL    THREE
15017 0010          ALN     0
15020 0006          STARTD
15021 1356          FADD    PPLAC
15022 6401          FSTA    .+11
15023 5033  
15024 0005          STARTF
15025 1130          JSR     MOVE
15026 0000  
15027 1031          JA      .+6
15030 5035  
15031 1030          JA      EGGS
15032 4667  
15033 1031          JA      .
15034 5033  
            /       CALL PSPEAK(EGGS,K)
15035 1130          JSR     PSPEAK
15036 0000  
15037 1031          JA      .+6
15040 5045  
15041 1030          JA      EGGS
15042 4667  
15043 1030          JA      K
15044 6215  
            /       GOTO 2012
15045 1030          JA      #2012
15046 3400  
            
            /C
            /C BRIEF. INTRANSITIVE ONLY. SUPPRESS LONG DESCRIPTIONS AFTER FIRST TIME.
            /C
            /8260    SPK=156
15047 0100  #8260,  LDX     234,0   /156
15050 0234  
15051 0030          XTA     0
15052 6221          FSTA    SPK
            /       ABBNUM=10000
15053 0351          FLDA    #LIT+322
RALF V50A   24-JUL-20    PAGE 4-56

15054 6400          FSTA    ABBNUM
15055 4774  
            /       DETAIL=3
15056 0242          FLDA    THREE
15057 6400          FSTA    DETAIL
15060 4771  
            /       GOTO 2011
15061 1030          JA      #2011
15062 3372  
            
            /C
            /C READ. MAGAZINES IN DWARVISH, MESSAGE WE'VE SEEN, AND . . . OYSTER?
            /C
            /8270    IF(HERE(MAGZIN))OBJ=MAGZIN
15063 0400  #8270,  FLDA    MAGZIN
15064 4565  
15065 1120          JSA     HERE
15066 0667  
15067 1001          JEQ     .+6
15070 5075  
15071 0400          FLDA    MAGZIN
15072 4565  
15073 6400          FSTA    OBJ
15074 6207  
            /       IF(HERE(TABLET))OBJ=OBJ*100+TABLET
15075 0400          FLDA    TABLET
15076 4554  
15077 1120          JSA     HERE
15100 0667  
15101 1001          JEQ     .+11
15102 5112  
15103 0400          FLDA    OBJ
15104 6207  
15105 4307          FMUL    #LIT+154
15106 1400          FADD    TABLET
15107 4554  
15110 6400          FSTA    OBJ
15111 6207  
            /       IF(HERE(MESSAG))OBJ=OBJ*100+MESSAG
15112 0400          FLDA    MESSAGE
15113 4645  
15114 1120          JSA     HERE
15115 0667  
15116 1001          JEQ     .+11
15117 5127  
15120 0400          FLDA    OBJ
15121 6207  
15122 4307          FMUL    #LIT+154
15123 1400          FADD    MESSAG
15124 4645  
15125 6400          FSTA    OBJ
15126 6207  
            /       IF(CLOSED.AND.TOTING(OYSTER))OBJ=OYSTER
15127 0400          FLDA    OYSTER
15130 4562  
15131 1120          JSA     TOTING
RALF V50A   24-JUL-20    PAGE 4-57

15132 0622  
15133 4400          FMUL    CLOSED
15134 5032  
15135 1001          JEQ     .+6
15136 5143  
15137 0400          FLDA    OYSTER
15140 4562  
15141 6400          FSTA    OBJ
15142 6207  
            /       IF(OBJ.GT.100.OR.OBJ.EQ.0.OR.DARK(0))GOTO 8000
15143 0400          FLDA    OBJ
15144 6207  
15145 2307          FSUB    #LIT+154
15146 1060          JGT     #8000
15147 7010  
15150 0400          FLDA    OBJ
15151 6207  
15152 1000          JEQ     #8000
15153 7010  
15154 1120          JSA     DARK
15155 0711  
15156 1040          JNE     #8000
15157 7010  
            
            /C
            /9270    IF(DARK(0))GOTO 5190
15160 1120  #9270,  JSA     DARK
15161 0711  
15162 1040          JNE     #5190
15163 5103  
            /       IF(OBJ.EQ.MAGZIN)SPK=190
15164 0400          FLDA    OBJ
15165 6207  
15166 2400          FSUB    MAGZIN
15167 4565  
15170 1041          JNE     .+6
15171 5176  
15172 0100          LDX     276,0   /190
15173 0276  
15174 0030          XTA     0
15175 6221          FSTA    SPK
            /       IF(OBJ.EQ.TABLET)SPK=196
15176 0400          FLDA    OBJ
15177 6207  
15200 2400          FSUB    TABLET
15201 4554  
15202 1041          JNE     .+6
15203 5210  
15204 0100          LDX     304,0   /196
15205 0304  
15206 0030          XTA     0
15207 6221          FSTA    SPK
            /       IF(OBJ.EQ.MESSAG)SPK=191
15210 0400          FLDA    OBJ
15211 6207  
15212 2400          FSUB    MESSAG
RALF V50A   24-JUL-20    PAGE 4-58

15213 4645  
15214 1041          JNE     .+6
15215 5222  
15216 0100          LDX     277,0   /191
15217 0277  
15220 0030          XTA     0
15221 6221          FSTA    SPK
            /       IF(OBJ.EQ.OYSTER.AND.HINTED(2).AND.TOTING(OYSTER))SPK=194
15222 0400          FLDA    OBJ
15223 6207  
15224 2400          FSUB    OYSTER
15225 4562  
15226 1041          JNE     #M95
15227 5250  
15230 0241          FLDA    TWO
15231 0027          ATX     7
15232 0470          FLDA    HINTED-3,7
15233 6226  
15234 1001          JEQ     #M95
15235 5250  
15236 0400          FLDA    OYSTER
15237 4562  
15240 1120          JSA     TOTING
15241 0622  
15242 1001          JEQ     .+6
15243 5250  
15244 0100          LDX     302,0   /194
15245 0302  
15246 0030          XTA     0
15247 6221          FSTA    SPK
            /       IF(OBJ.NE.OYSTER.OR.HINTED(2).OR..NOT.TOTING(OYSTER)
            /       1       .OR..NOT.CLOSED)GOTO 2011
15250 0400  #M95,   FLDA    OBJ
15251 6207  
15252 2400          FSUB    OYSTER
15253 4562  
15254 1040          JNE     #2011
15255 3372  
15256 0470          FLDA    HINTED-3,7
15257 6226  
15260 1040          JNE     #2011
15261 3372  
15262 0400          FLDA    OYSTER
15263 4562  
15264 1120          JSA     TOTING
15265 0622  
15266 1000          JEQ     #2011
15267 3372  
15270 0400          FLDA    CLOSED
15271 5032  
15272 1000          JEQ     #2011
15273 3372  
            /       HINTED(2)=YES(192,193,54)
15274 0241          FLDA    TWO
15275 0027          ATX     7
15276 1130          JSR     YES
RALF V50A   24-JUL-20    PAGE 4-59

15277 0000  
15300 1031          JA      .+10
15301 5310  
15302 1030          JA      #LIT+267
15303 0463  
15304 1030          JA      #LIT+272
15305 0466  
15306 1030          JA      #LIT+113
15307 0307  
15310 6470          FSTA    HINTED-3,7
15311 6226  
            /       GOTO 2012
15312 1030          JA      #2012
15313 3400  
            
            /C
            /C BREAK. ONLY WORKS FOR MIRROR IN REPOSITORY AND, OF COURSE, THE VASE.
            /C
            /9280    IF(OBJ.EQ.MIRROR)SPK=148
15314 0400  #9280,  FLDA    OBJ
15315 6207  
15316 2400          FSUB    MIRROR
15317 4623  
15320 1041          JNE     .+6
15321 5326  
15322 0100          LDX     224,0   /148
15323 0224  
15324 0030          XTA     0
15325 6221          FSTA    SPK
            /       IF(OBJ.EQ.VASE.AND.PROP(VASE).EQ.0)GOTO 9282
15326 0400          FLDA    OBJ
15327 6207  
15330 2400          FSUB    VASE
15331 4675  
15332 1041          JNE     #M96
15333 5343  
15334 0400          FLDA    VASE
15335 4675  
15336 0027          ATX     7
15337 0470          FLDA    PROP-3,7
15340 3647  
15341 1001          JEQ     #9282
15342 5363  
            /       IF(OBJ.NE.MIRROR.OR..NOT.CLOSED)GOTO 2011
15343 0400  #M96,   FLDA    OBJ
15344 6207  
15345 2400          FSUB    MIRROR
15346 4623  
15347 1040          JNE     #2011
15350 3372  
15351 0400          FLDA    CLOSED
15352 5032  
15353 1000          JEQ     #2011
15354 3372  
            /       CALL RSPEAK(197)
15355 1130          JSR     RSPEAK
RALF V50A   24-JUL-20    PAGE 4-60

15356 0000  
            /       GOTO 19000
15357 1031          JA      #19000
15360 7012  
15361 1030          JA      #LIT+275
15362 0471  
            
            /C
            /9282    SPK=198
15363 0100  #9282,  LDX     306,0   /198
15364 0306  
15365 0030          XTA     0
15366 6221          FSTA    SPK
            /       IF(TOTING(VASE))CALL DROP(VASE,LOC)
15367 0400          FLDA    VASE
15370 4675  
15371 1120          JSA     TOTING
15372 0622  
15373 1001          JEQ     .+12
15374 5405  
15375 1130          JSR     DROP
15376 0000  
15377 1031          JA      .+6
15400 5405  
15401 1030          JA      VASE
15402 4675  
15403 1030          JA      LOC
15404 0014  
            /       PROP(VASE)=2
15405 0400          FLDA    VASE
15406 4675  
15407 0027          ATX     7
15410 0241          FLDA    TWO
15411 6470          FSTA    PROP-3,7
15412 3647  
            /       FIXED(VASE)=-1
15413 0372          FLDA    MINUS1
15414 6470          FSTA    FIXED-3,7
15415 2503  
            /       GOTO 2011
15416 1030          JA      #2011
15417 3372  
            
            /C
            /C WAKE. ONLY USE IS TO DISTURB THE DWARVES.
            /C
            /9290    IF(OBJ.NE.DWARF.OR..NOT.CLOSED)GOTO 2011
15420 0400  #9290,  FLDA    OBJ
15421 6207  
15422 2400          FSUB    DWARF
15423 4570  
15424 1040          JNE     #2011
15425 3372  
15426 0400          FLDA    CLOSED
15427 5032  
15430 1000          JEQ     #2011
RALF V50A   24-JUL-20    PAGE 4-61

15431 3372  
            /       CALL RSPEAK(199)
15432 1130          JSR     RSPEAK
15433 0000  
            /       GOTO 19000
15434 1031          JA      #19000
15435 7012  
15436 1030          JA      #LIT+300
15437 0474  
            
            /C
            /C SUSPEND. SAVE THE WORLD.
            /C
            /8300    CALL SAVEGM(.TRUE.,I)
            /       GOTO 2012
15440 1130  #8300,  JSR     SAVEGM
15441 0000  
15442 1030          JA      #2012
15443 3400  
15444 1030          JA      ONE
15445 0163  
15446 1030          JA      I
15447 0000  
            
            /C
            /C HOURS. JUST A JOKE.
            /C
            /8310    CALL RSPEAK(201)
15450 1130  #8310,  JSR     RSPEAK
15451 0000  
            /       GOTO 2012
15452 1030          JA      #2012
15453 3400  
15454 1030          JA      #LIT+303
15455 0477  
            
            /C
            /C RESUME. RESTORE THE WORLD.
            /C
            /8320    CALL RSTRGM(.TRUE.,I)
            /       GO TO 2012
            
15456 1130  #8320,  JSR RSTRGM
15457 0000  
15460 1030          JA      #2012
15461 3400  
15462 1030          JA      ONE
15463 0163  
15464 1030          JA      I
15465 0000  
            
            
            /C HINTS
            /C
            /C COME HERE IF HE'S BEEN LONG ENOUGH AT REQUIRED LOC(S) FOR SOME UNUSED HINT.
            /C HINT NUMBER IS IN VARIABLE "HINT". BRANCH TO QUICK TEST FOR ADDITIONAL
RALF V50A   24-JUL-20    PAGE 4-62

            /C CONDITIONS, THEN COME BACK TO DO NEAT STUFF. GOTO 40010 IF CONDITIONS ARE
            /C MET AND WE WANT TO OFFER THE HINT. GOTO 40020 TO CLEAR HINTLC BACK TO ZERO,
            /C 40030 TO TAKE NO ACTION YET.
            /C
            /40000   GOTO (40400,40500,40600,40700,40800,40900)(HINT-3)
            /C             CAVE  BIRD  SNAKE MAZE  DARK  WITT
15466 0212  #40000, FLDA    HINT
15467 2242          FSUB    THREE
15470 0021          ATX     1
15471 0006          STARTD
15472 0411          FLDA    .+2,1
15473 5474  
15474 0005          STARTF
15475 0007          JAC
15476 1031          JA      #40400
15477 5703  
15500 1031          JA      #40500
15501 5722  
15502 1031          JA      #40600
15503 5750  
15504 1031          JA      #40700
15505 5766  
15506 1031          JA      #40800
15507 6022  
15510 1031          JA      #40010
15511 5520  
            /       CALL BUG(27)
15512 1130          JSR     BUG
15513 0000  
15514 1031          JA      .+4
15515 5520  
15516 1030          JA      #LIT+60
15517 0254  
            /C
            /40010   HINTLC(HINT)=0
15520 0212  #40010, FLDA    HINT
15521 0027          ATX     7
15522 0002          FCLA
15523 6470          FSTA    HINTLC-3,7
15524 4331  
            /       IF(.NOT.YES(HINTS(HINT,3),0,54))GOTO 2602
15525 0370          FLDA    #LIT+377
15526 1212          FADD    HINT
15527 0027          ATX     7
15530 0037          XTA     7
15531 4242          FMUL    THREE
15532 0010          ALN     0
15533 0006          STARTD
15534 1354          FADD    PHINTS
15535 6401          FSTA    .+7
15536 5544  
15537 0005          STARTF
15540 1130          JSR     YES
15541 0000  
15542 1031          JA      .+10
15543 5552  
RALF V50A   24-JUL-20    PAGE 4-63

15544 1031          JA      .
15545 5544  
15546 1030          JA      ZERO
15547 0160  
15550 1030          JA      #LIT+113
15551 0307  
15552 1000          JEQ     #2602
15553 3446  
            /       TYPE 40012,HINTS(HINT,2)
15554 1130          JSR     SIXOUT
15555 0000  
15556 1031          JA      .+10
15557 5566  
15560 1032          JA      #40012
15561 0124  
15562 1030          JA      ZERO
15563 0160  
15564 1030          JA      TWO
15565 0166  
            
15566 3000          TRAP3   #WRITO
15567 0000  
15570 1030          JA      #LIT
15571 0174  
15572 1032          JA      #4001A
15573 0161  
15574 0241          FLDA    TWO
15575 4255          FMUL    #LIT+36
15576 1212          FADD    HINT
15577 0027          ATX     7
15600 0470          FLDA    HINTS-0077,7
15601 3170  
15602 3000          TRAP3   #RSVO
15603 0000  
15604 3000          TRAP3   #RENDO
15605 0000  
            
15606 1130          JSR     SIXOUT
15607 0000  
15610 1031          JA      .+10
15611 5620  
15612 1032          JA      #4001B
15613 0166  
15614 1030          JA      ZERO
15615 0160  
15616 1030          JA      ONE
15617 0163  
            /40012   FORMAT(' I am prepared to give you a hint, but it will cost you',
            /       1       I2,' points.')
            
            /       HINTED(HINT)=YES(175,HINTS(HINT,4),54)
15620 0212          FLDA    HINT
15621 0027          ATX     7
15622 0243          FLDA    #LIT
15623 4255          FMUL    #LIT+36
15624 1212          FADD    HINT
RALF V50A   24-JUL-20    PAGE 4-64

15625 0026          ATX     6
15626 0036          XTA     6
15627 4242          FMUL    THREE
15630 0010          ALN     0
15631 0006          STARTD
15632 1354          FADD    PHINTS
15633 6401          FSTA    .+11
15634 5644  
15635 0005          STARTF
15636 1130          JSR     YES
15637 0000  
15640 1031          JA      .+10
15641 5650  
15642 1030          JA      #LIT+250
15643 0444  
15644 1031          JA      .
15645 5644  
15646 1030          JA      #LIT+113
15647 0307  
15650 6470          FSTA    HINTED-3,7
15651 6226  
            /       IF(HINTED(HINT).AND.LIMIT.GT.30)LIMIT=LIMIT+30*HINTS(HINT,2)
15652 1001          JEQ     #40020
15653 5674  
15654 0400          FLDA    LIMIT
15655 0011  
15656 2264          FSUB    #LIT+63
15657 1021          JLE     #40020
15660 5674  
15661 0241          FLDA    TWO
15662 4255          FMUL    #LIT+36
15663 1212          FADD    HINT
15664 0026          ATX     6
15665 0264          FLDA    #LIT+63
15666 4460          FMUL    HINTS-0077,6
15667 3170  
15670 1400          FADD    LIMIT
15671 0011  
15672 6400          FSTA    LIMIT
15673 0011  
            /40020   HINTLC(HINT)=0
15674 0212  #40020, FLDA    HINT
15675 0027          ATX     7
15676 0002          FCLA
15677 6470          FSTA    HINTLC-3,7
15700 4331  
            /40030   GOTO 2602
15701 1030  #40030, JA      #2602
15702 3446  
            
            /C
            /C NOW FOR THE QUICK TESTS. SEE DATABASE DESCRIPTION FOR ONE-LINE NOTES.
            /C
            /40400   IF(PROP(GRATE).EQ.0.AND..NOT.HERE(KEYS))GOTO 40010
15703 0400  #40400, FLDA    GRATE
15704 4516  
RALF V50A   24-JUL-20    PAGE 4-65

15705 0027          ATX     7
15706 0470          FLDA    PROP-3,7
15707 3647  
15710 1041          JNE     #40020
15711 5674  
15712 0400          FLDA    KEYS
15713 4510  
15714 1120          JSA     HERE
15715 0667  
15716 1001          JEQ     #40010
15717 5520  
            /       GOTO 40020
15720 1031          JA      #40020
15721 5674  
            
            /40500   IF(HERE(BIRD).AND.TOTING(ROD).AND.OBJ.EQ.BIRD)GOTO 40010
15722 0400  #40500, FLDA    BIRD
15723 4535  
15724 1120          JSA     HERE
15725 0667  
15726 1000          JEQ     #2602
15727 3446  
15730 0400          FLDA    ROD
15731 4524  
15732 1120          JSA     TOTING
15733 0622  
15734 1000          JEQ     #2602
15735 3446  
15736 0400          FLDA    OBJ
15737 6207  
15740 1001          JEQ     #40010
15741 5520  
15742 2400          FSUB    BIRD
15743 4535  
15744 1001          JEQ     #40010
15745 5520  
            /       GOTO 40030
15746 1030          JA      #2602
15747 3446  
            
            /C
            /40600   IF(HERE(SNAKE).AND..NOT.HERE(BIRD))GOTO 40010
15750 0400  #40600, FLDA    SNAKE
15751 4546  
15752 1120          JSA     HERE
15753 0667  
15754 1001          JEQ     #40020
15755 5674  
15756 0400          FLDA    BIRD
15757 4535  
15760 1120          JSA     HERE
15761 0667  
15762 1001          JEQ     #40010
15763 5520  
            /       GOTO 40020
15764 1031          JA      #40020
RALF V50A   24-JUL-20    PAGE 4-66

15765 5674  
            
            /C
            /40700   IF(ATLOC(LOC).EQ.0.AND.ATLOC(OLDLOC).EQ.0
            /       1       .AND.ATLOC(OLDLC2).EQ.0.AND.HOLDNG.GT.1)GOTO 40010
15766 0400  #40700, FLDA    LOC
15767 0014  
15770 0027          ATX     7
15771 0477          FLDA    ATLOC-3,7
15772 7775  
15773 1041          JNE     #40020
15774 5674  
15775 0400          FLDA    OLDLOC
15776 0011  
15777 0026          ATX     6
16000 0467          FLDA    ATLOC-3,6
16001 7775  
16002 1041          JNE     #40020
16003 5674  
16004 0400          FLDA    OLDLC2
16005 0006  
16006 0025          ATX     5
16007 0457          FLDA    ATLOC-3,5
16010 7775  
16011 1041          JNE     #40020
16012 5674  
16013 0400          FLDA    HOLDNG
16014 3162  
16015 2240          FSUB    ONE
16016 1061          JGT     #40010
16017 5520  
            /       GOTO 40020
16020 1031          JA      #40020
16021 5674  
            
            /C
            /40800   IF(PROP(EMRALD).NE.-1.AND.PROP(PYRAM).EQ.-1)GOTO 40010
            /       GOTO 40020
16022 0400  #40800, FLDA    EMRALD
16023 4700  
16024 0027          ATX     7
16025 0372          FLDA    MINUS1
16026 2470          FSUB    PROP-3,7
16027 3647  
16030 1001          JEQ     #40020
16031 5674  
16032 0400          FLDA    PYRAM
16033 4703  
16034 0026          ATX     6
16035 0372          FLDA    MINUS1
16036 2460          FSUB    PROP-3,6
16037 3647  
16040 1001          JEQ     #40010
16041 5520  
            /       GOTO 40020
16042 1031          JA      #40020
RALF V50A   24-JUL-20    PAGE 4-67

16043 5674  
            /C
            /40900  JA      #40010
            /#40900 JA      40010
            
            /C CAVE CLOSING AND SCORING
            /C
            /C
            /C THESE SECTIONS HANDLE THE CLOSING OF THE CAVE. THE CAVE CLOSES "CLOCK1"
            /C TURNS AFTER THE LAST TREASURE HAS BEEN LOCATED (INCLUDING THE PIRATE'S
            /C CHEST, WHICH MAY OF COURSE NEVER SHOW UP). NOTE THAT THE TREASURES NEED NOT
            /C HAVE BEEN TAKEN YET, JUST LOCATED. HENCE CLOCK1 MUST BE LARGE ENOUGH TO GET
            /C OUT OF THE CAVE (IT ONLY TICKS WHILE INSIDE THE CAVE). WHEN IT HITS ZERO,
            /C WE BRANCH TO 10000 TO START CLOSING THE CAVE, AND THEN SIT BACK AND WAIT FOR
            /C HIM TO TRY TO GET OUT. IF HE DOESN'T WITHIN CLOCK2 TURNS, WE CLOSE THE
            /C CAVE; IF HE DOES TRY, WE ASSUME HE PANICS, AND GIVE HIM A FEW ADDITIONAL
            /C TURNS TO GET FRANTIC BEFORE WE CLOSE. WHEN CLOCK2 HITS ZERO, WE BRANCH TO
            /C 11000 TO TRANSPORT HIM INTO THE FINAL PUZZLE. NOTE THAT THE PUZZLE DEPENDS
            /C UPON ALL SORTS OF RANDOM THINGS. FOR INSTANCE, THERE MUST BE NO WATER OR
            /C OIL, SINCE THERE ARE BEANSTALKS WHICH WE DON'T WANT TO BE ABLE TO WATER,
            /C SINCE THE CODE CAN'T HANDLE IT. ALSO, WE CAN HAVE NO KEYS, SINCE THERE IS A
            /C GRATE (HAVING MOVED THE FIXED OBJECT!) THERE SEPARATING HIM FROM ALL THE
            /C TREASURES. MOST OF THESE PROBLEMS ARISE FROM THE USE OF NEGATIVE PROP
            /C NUMBERS TO SUPPRESS THE OBJECT DESCRIPTIONS UNTIL HE'S ACTUALLY MOVED THE
            /C OBJECTS.
            /C
            /C WHEN THE FIRST WARNING COMES, WE LOCK THE GRATE, DESTROY THE BRIDGE, KILL
            /C ALL THE DWARVES (AND THE PIRATE), REMOVE THE TROLL AND BEAR (UNLESS DEAD),
            /C AND SET "CLOSNG" TO TRUE. LEAVE THE DRAGON; TOO MUCH TROUBLE TO MOVE IT.
            /C FROM NOW UNTIL CLOCK2 RUNS OUT, HE CANNOT UNLOCK THE GRATE, MOVE TO ANY
            /C LOCATION OUTSIDE THE CAVE (LOC<9), OR CREATE THE BRIDGE. NOR CAN HE BE
            /C RESURRECTED IF HE DIES. NOTE THAT THE SNAKE IS ALREADY GONE, SINCE HE GOT
            /C TO THE TREASURE ACCESSIBLE ONLY VIA THE HALL OF THE MT. KING. ALSO, HE'S
            /C BEEN IN GIANT ROOM (TO GET EGGS), SO WE CAN REFER TO IT. ALSO ALSO, HE'S
            /C GOTTEN THE PEARL, SO WE KNOW THE BIVALVE IS AN OYSTER. *AND*, THE DWARVES
            /C MUST HAVE BEEN ACTIVATED, SINCE WE'VE FOUND CHEST.
            /C
            /10000   PROP(GRATE)=0
16044 0400  #10000, FLDA    GRATE
16045 4516  
16046 0027          ATX     7
16047 0002          FCLA
16050 6470          FSTA    PROP-3,7
16051 3647  
            /       PROP(FISSUR)=0
16052 0400          FLDA    FISSUR
16053 4551  
16054 0027          ATX     7
16055 0002          FCLA
16056 6470          FSTA    PROP-3,7
16057 3647  
            /       DO 10010 I=1,6
16060 0240          FLDA    ONE
16061 6400          FSTA    I
16062 0000  
            
RALF V50A   24-JUL-20    PAGE 4-68

            /       DSEEN(I)=.FALSE.
16063 0400  #H0204, FLDA    I
16064 0000  
16065 0027          ATX     7
16066 0002          FCLA
16067 6470          FSTA    DSEEN-3,7
16070 4433  
            /10010   DLOC(I)=0
            /#10010,        FLDA    I
            /       ATX     7
            /       FCLA
16071 6470          FSTA    DLOC-3,7
16072 4460  
16073 0400          FLDA    I
16074 0000  
16075 1240          FADD    ONE
16076 6400          FSTA    I
16077 0000  
16100 2245          FSUB    #LIT+6
16101 1021          JLE     #H0204
16102 6063  
            /       CALL MOVE(TROLL,0)
16103 1130          JSR     MOVE
16104 0000  
16105 1031          JA      .+6
16106 6113  
16107 1030          JA      TROLL
16110 4634  
16111 1030          JA      ZERO
16112 0160  
            /       CALL MOVE(TROLL+100,0)
16113 0400          FLDA    TROLL
16114 4634  
16115 1307          FADD    #LIT+154
16116 6227          FSTA    #TMP
16117 1130          JSR     MOVE
16120 0000  
16121 1031          JA      .+6
16122 6127  
16123 1030          JA      #TMP
16124 0130  
16125 1030          JA      ZERO
16126 0160  
            /       CALL MOVE(TROLL2,PLAC(TROLL))
16127 0400          FLDA    TROLL
16130 4634  
16131 0027          ATX     7
16132 0037          XTA     7
16133 4242          FMUL    THREE
16134 0010          ALN     0
16135 0006          STARTD
16136 1356          FADD    PPLAC
16137 6401          FSTA    .+11
16140 6150  
16141 0005          STARTF
16142 1130          JSR     MOVE
RALF V50A   24-JUL-20    PAGE 4-69

16143 0000  
16144 1031          JA      .+6
16145 6152  
16146 1030          JA      TROLL2
16147 4637  
16150 1031          JA      .
16151 6150  
            /       CALL MOVE(TROLL2+100,FIXD(TROLL))
16152 0400          FLDA    TROLL2
16153 4637  
16154 1307          FADD    #LIT+154
16155 6227          FSTA    #TMP
16156 0400          FLDA    TROLL
16157 4634  
16160 0027          ATX     7
16161 0037          XTA     7
16162 4242          FMUL    THREE
16163 0010          ALN     0
16164 0006          STARTD
16165 1353          FADD    PFIXD
16166 6401          FSTA    .+11
16167 6177  
16170 0005          STARTF
16171 1130          JSR     MOVE
16172 0000  
16173 1031          JA      .+6
16174 6201  
16175 1030          JA      #TMP
16176 0130  
16177 1031          JA      .
16200 6177  
            /       CALL JUGGLE(CHASM)
16201 1130          JSR     JUGGLE
16202 0000  
16203 1031          JA      .+4
16204 6207  
16205 1030          JA      CHASM
16206 4631  
            /       IF(PROP(BEAR).NE.3)CALL DSTROY(BEAR)
16207 0400          FLDA    BEAR
16210 4642  
16211 0027          ATX     7
16212 0470          FLDA    PROP-3,7
16213 3647  
16214 2242          FSUB    THREE
16215 1001          JEQ     .+10
16216 6225  
16217 1130          JSR     DSTROY
16220 0000  
16221 1031          JA      .+4
16222 6225  
16223 1030          JA      BEAR
16224 4642  
            /       PROP(CHAIN)=0
16225 0400          FLDA    CHAIN
16226 4714  
RALF V50A   24-JUL-20    PAGE 4-70

16227 0027          ATX     7
16230 0002          FCLA
16231 6470          FSTA    PROP-3,7
16232 3647  
            /       FIXED(CHAIN)=0
            /       PROP(AXE)=0
16233 0400          FLDA    AXE
16234 4620  
16235 0027          ATX     7
16236 0002          FCLA
16237 6470          FSTA    PROP-3,7
16240 3647  
            /       FIXED(AXE)=0
16241 6470          FSTA    FIXED-3,7
16242 2503  
            /       CALL RSPEAK(129)
16243 1130          JSR     RSPEAK
16244 0000  
16245 1031          JA      .+4
16246 6251  
16247 1030          JA      #LIT+204
16250 0400  
            /       CLOCK1=-1
16251 0372          FLDA    MINUS1
16252 6400          FSTA    CLOCK1
16253 5016  
            /       CLOSNG=.TRUE.
16254 0240          FLDA    ONE
16255 6400          FSTA    CLOSNG
16256 5024  
            /       GOTO 19999
16257 1030          JA      #19999
16260 3754  
            
            /C
            /C ONCE HE'S PANICKED, AND CLOCK2 HAS RUN OUT, WE COME HERE TO SET UP THE
            /C STORAGE ROOM. THE ROOM HAS TWO LOCS, HARDWIRED AS 115 (NE) AND 116 (SW).
            /C AT THE NE END, WE PLACE EMPTY BOTTLES, A NURSERY OF PLANTS, A BED OF
            /C OYSTERS, A PILE OF LAMPS, RODS WITH STARS, SLEEPING DWARVES, AND HIM. AND
            /C THE SW END WE PLACE GRATE OVER TREASURES, SNAKE PIT, COVEY OF CAGED BIRDS,
            /C MORE RODS, AND PILLOWS. A MIRROR STRETCHES ACROSS ONE WALL. MANY OF THE
            /C OBJECTS COME FROM KNOWN LOCATIONS AND/OR STATES (E.G. THE SNAKE IS KNOWN TO
            /C HAVE BEEN DESTROYED AND NEEDN'T BE CARRIED AWAY FROM ITS OLD "PLACE"),
            /C MAKING THE VARIOUS OBJECTS BE HANDLED DIFFERENTLY. WE ALSO DROP ALL OTHER
            /C OBJECTS HE MIGHT BE CARRYING (LEST HE HAVE SOME WHICH COULD CAUSE TROUBLE,
            /C SUCH AS THE KEYS). WE DESCRIBE THE FLASH OF LIGHT AND TRUNDLE BACK.
            /C
            /11000   PROP(BOTTLE)=PUT(BOTTLE,115,1)
16261 0400  #11000, FLDA    BOTTLE
16262 4601  
16263 0027          ATX     7
16264 1130          JSR     PUT
16265 0000  
16266 1031          JA      .+10
16267 6276  
16270 1030          JA      BOTTLE
RALF V50A   24-JUL-20    PAGE 4-71

16271 4601  
16272 1030          JA      #LIT+165
16273 0361  
16274 1030          JA      ONE
16275 0163  
16276 6470          FSTA    PROP-3,7
16277 3647  
            /       PROP(PLANT)=PUT(PLANT,115,0)
16300 0400          FLDA    PLANT
16301 4612  
16302 0027          ATX     7
16303 1130          JSR     PUT
16304 0000  
16305 1031          JA      .+10
16306 6315  
16307 1030          JA      PLANT
16310 4612  
16311 1030          JA      #LIT+165
16312 0361  
16313 1030          JA      ZERO
16314 0160  
16315 6470          FSTA    PROP-3,7
16316 3647  
            /       PROP(OYSTER)=PUT(OYSTER,115,0)
16317 0400          FLDA    OYSTER
16320 4562  
16321 0027          ATX     7
16322 1130          JSR     PUT
16323 0000  
16324 1031          JA      .+10
16325 6334  
16326 1030          JA      OYSTER
16327 4562  
16330 1030          JA      #LIT+165
16331 0361  
16332 1030          JA      ZERO
16333 0160  
16334 6470          FSTA    PROP-3,7
16335 3647  
            /       PROP(LAMP)=PUT(LAMP,115,0)
16336 0400          FLDA    LAMP
16337 4513  
16340 0027          ATX     7
16341 1130          JSR     PUT
16342 0000  
16343 1031          JA      .+10
16344 6353  
16345 1030          JA      LAMP
16346 4513  
16347 1030          JA      #LIT+165
16350 0361  
16351 1030          JA      ZERO
16352 0160  
16353 6470          FSTA    PROP-3,7
16354 3647  
            /       PROP(ROD)=PUT(ROD,115,0)
RALF V50A   24-JUL-20    PAGE 4-72

16355 0400          FLDA    ROD
16356 4524  
16357 0027          ATX     7
16360 1130          JSR     PUT
16361 0000  
16362 1031          JA      .+10
16363 6372  
16364 1030          JA      ROD
16365 4524  
16366 1030          JA      #LIT+165
16367 0361  
16370 1030          JA      ZERO
16371 0160  
16372 6470          FSTA    PROP-3,7
16373 3647  
            /       PROP(DWARF)=PUT(DWARF,115,0)
16374 0400          FLDA    DWARF
16375 4570  
16376 0027          ATX     7
16377 1130          JSR     PUT
16400 0000  
16401 1031          JA      .+10
16402 6411  
16403 1030          JA      DWARF
16404 4570  
16405 1030          JA      #LIT+165
16406 0361  
16407 1030          JA      ZERO
16410 0160  
16411 6470          FSTA    PROP-3,7
16412 3647  
            /       LOC=115
            /       OLDLOC=115
            /       NEWLOC=115
16413 0312          FLDA    #LIT+165
16414 6400          FSTA    LOC
16415 0014  
16416 6400          FSTA    OLDLOC
16417 0011  
16420 6400          FSTA    NEWLOC
16421 0157  
            /C
            /C LEAVE THE GRATE WITH NORMAL (NON-NEGATIVE PROPERTY).
            /C
            /       I=PUT(GRATE,116,0)
16422 1130          JSR     PUT
16423 0000  
16424 1031          JA      .+10
16425 6434  
16426 1030          JA      GRATE
16427 4516  
16430 1030          JA      #LIT+170
16431 0364  
16432 1030          JA      ZERO
16433 0160  
16434 6400          FSTA    I
RALF V50A   24-JUL-20    PAGE 4-73

16435 0000  
            /       PROP(SNAKE)=PUT(SNAKE,116,1)
16436 0400          FLDA    SNAKE
16437 4546  
16440 0027          ATX     7
16441 1130          JSR     PUT
16442 0000  
16443 1031          JA      .+10
16444 6453  
16445 1030          JA      SNAKE
16446 4546  
16447 1030          JA      #LIT+170
16450 0364  
16451 1030          JA      ONE
16452 0163  
16453 6470          FSTA    PROP-3,7
16454 3647  
            /       PROP(BIRD)=PUT(BIRD,116,1)
16455 0400          FLDA    BIRD
16456 4535  
16457 0027          ATX     7
16460 1130          JSR     PUT
16461 0000  
16462 1031          JA      .+10
16463 6472  
16464 1030          JA      BIRD
16465 4535  
16466 1030          JA      #LIT+170
16467 0364  
16470 1030          JA      ONE
16471 0163  
16472 6470          FSTA    PROP-3,7
16473 3647  
            /       PROP(CAGE)=PUT(CAGE,116,0)
16474 0400          FLDA    CAGE
16475 4521  
16476 0027          ATX     7
16477 1130          JSR     PUT
16500 0000  
16501 1031          JA      .+10
16502 6511  
16503 1030          JA      CAGE
16504 4521  
16505 1030          JA      #LIT+170
16506 0364  
16507 1030          JA      ZERO
16510 0160  
16511 6470          FSTA    PROP-3,7
16512 3647  
            /       PROP(ROD2)=PUT(ROD2,116,0)
16513 0400          FLDA    ROD2
16514 4527  
16515 0027          ATX     7
16516 1130          JSR     PUT
16517 0000  
16520 1031          JA      .+10
RALF V50A   24-JUL-20    PAGE 4-74

16521 6530  
16522 1030          JA      ROD2
16523 4527  
16524 1030          JA      #LIT+170
16525 0364  
16526 1030          JA      MINUS1
16527 0601  
16530 6470          FSTA    PROP-3,7
16531 3647  
            /       PROP(PILLOW)=PUT(PILLOW,116,0)
16532 0400          FLDA    PILLOW
16533 4543  
16534 0027          ATX     7
16535 1130          JSR     PUT
16536 0000  
16537 1031          JA      .+10
16540 6547  
16541 1030          JA      PILLOW
16542 4543  
16543 1030          JA      #LIT+170
16544 0364  
16545 1030          JA      ZERO
16546 0160  
16547 6470          FSTA    PROP-3,7
16550 3647  
            /C
            /       PROP(MIRROR)=PUT(MIRROR,115,0)
16551 0400          FLDA    MIRROR
16552 4623  
16553 0027          ATX     7
16554 1130          JSR     PUT
16555 0000  
16556 1031          JA      .+10
16557 6566  
16560 1030          JA      MIRROR
16561 4623  
16562 1030          JA      #LIT+165
16563 0361  
16564 1030          JA      ZERO
16565 0160  
16566 6470          FSTA    PROP-3,7
16567 3647  
            /       FIXED(MIRROR)=116
16570 0313          FLDA    #LIT+170
16571 6470          FSTA    FIXED-3,7
16572 2503  
            /C
            /       DO 11010 I=1,100
16573 0240          FLDA    ONE
16574 6400          FSTA    I
16575 0000  
            
            /11010   IF(TOTING(I))CALL DSTROY(I)
16576 0400  #11010, FLDA    I
16577 0000  
16600 1120          JSA     TOTING
RALF V50A   24-JUL-20    PAGE 4-75

16601 0622  
16602 1001          JEQ     .+10
16603 6612  
16604 1130          JSR     DSTROY
16605 0000  
16606 1031          JA      .+4
16607 6612  
16610 1030          JA      I
16611 0000  
16612 0400          FLDA    I
16613 0000  
16614 1240          FADD    ONE
16615 6400          FSTA    I
16616 0000  
16617 2307          FSUB    #LIT+154
16620 1021          JLE     #11010
16621 6576  
            /C
            /       CALL RSPEAK(132)
16622 1130          JSR     RSPEAK
16623 0000  
16624 1031          JA      .+4
16625 6630  
16626 1030          JA      #LIT+215
16627 0411  
            /       CLOSED=.TRUE.
16630 0240          FLDA    ONE
16631 6400          FSTA    CLOSED
16632 5032  
            /       GOTO 2
16633 1030          JA      #2
16634 1146  
            
            /C
            /C ANOTHER WAY WE CAN FORCE AN END TO THINGS IS BY HAVING THE LAMP GIVE OUT.
            /C WHEN IT GETS CLOSE, WE COME HERE TO WARN HIM. WE GO TO 12000 IF THE LAMP
            /C AND FRESH BATTERIES ARE HERE, IN WHICH CASE WE REPLACE THE BATTERIES AND
            /C CONTINUE. 12200 IS FOR OTHER CASES OF LAMP DYING.12400 IS WHEN IT GOES
            /C OUT, AND 12600 IS IF HE'S WANDERED OUTSIDE AND THE LAMP IS USED UP, IN WHICH
            /C CASE WE FORCE HIM TO GIVE UP.
            /C
            /12000   CALL RSPEAK(188)
16635 1130  #12000, JSR     RSPEAK
16636 0000  
16637 1031          JA      .+4
16640 6643  
16641 1030          JA      #LIT+264
16642 0460  
            /       PROP(BATTER)=1
16643 0400          FLDA    BATTER
16644 4653  
16645 0027          ATX     7
16646 0240          FLDA    ONE
16647 6470          FSTA    PROP-3,7
16650 3647  
            /       IF(TOTING(BATTER))CALL DROP(BATTER,LOC)
RALF V50A   24-JUL-20    PAGE 4-76

16651 0400          FLDA    BATTER
16652 4653  
16653 1120          JSA     TOTING
16654 0622  
16655 1001          JEQ     .+12
16656 6667  
16657 1130          JSR     DROP
16660 0000  
16661 1031          JA      .+6
16662 6667  
16663 1030          JA      BATTER
16664 4653  
16665 1030          JA      LOC
16666 0014  
            /       LIMIT=LIMIT+2500
16667 0350          FLDA    #LIT+317
16670 5400          FADDM   LIMIT
16671 0011  
            /       LMWARN=.FALSE.
16672 0002          FCLA
16673 6400          FSTA    LMWARN
16674 4763  
            /       GOTO 19999
16675 1030          JA      #19999
16676 3754  
            
            /C
            /12200   IF(LMWARN.OR..NOT.HERE(LAMP))GOTO 19999
16677 0400  #12200, FLDA    LAMP
16700 4513  
16701 1120          JSA     HERE
16702 0667  
16703 1000          JEQ     #19999
16704 3754  
16705 0400          FLDA    LMWARN
16706 4763  
16707 1040          JNE     #19999
16710 3754  
            /       LMWARN=.TRUE.
16711 0240          FLDA    ONE
16712 6400          FSTA    LMWARN
16713 4763  
            /       SPK=187
16714 0100          LDX     273,0   /187
16715 0273  
16716 0030          XTA     0
16717 6221          FSTA    SPK
            /       IF(PLACE(BATTER).EQ.0)SPK=183
16720 0400          FLDA    BATTER
16721 4653  
16722 0027          ATX     7
16723 0470          FLDA    PLACE-3,7
16724 2027  
16725 1041          JNE     .+6
16726 6733  
16727 0100          LDX     267,0   /183
RALF V50A   24-JUL-20    PAGE 4-77

16730 0267  
16731 0030          XTA     0
16732 6221          FSTA    SPK
            /       IF(PROP(BATTER).EQ.1)SPK=189
16733 0470          FLDA    PROP-3,7
16734 3647  
16735 2240          FSUB    ONE
16736 1041          JNE     .+6
16737 6744  
16740 0100          LDX     275,0   /189
16741 0275  
16742 0030          XTA     0
16743 6221          FSTA    SPK
            /       CALL RSPEAK(SPK)
16744 1130  #H0214, JSR     RSPEAK
16745 0000  
16746 1030          JA      #19999
16747 3754  
16750 1030          JA      SPK
16751 0106  
            /       GOTO 19999
            
            /C
            /12400   LIMIT=-1
16752 0372  #12400, FLDA    MINUS1
16753 6400          FSTA    LIMIT
16754 0011  
            /       PROP(LAMP)=0
16755 0400          FLDA    LAMP
16756 4513  
16757 0027          ATX     7
16760 0002          FCLA
16761 6470          FSTA    PROP-3,7
16762 3647  
            /       IF(HERE(LAMP))CALL RSPEAK(184)
16763 0400          FLDA    LAMP
16764 4513  
16765 1120          JSA     HERE
16766 0667  
            /       GOTO 19999
16767 1000          JEQ     #19999
16770 3754  
16771 1130          JSR     RSPEAK
16772 0000  
16773 1030          JA      #19999
16774 3754  
16775 1030          JA      #LIT+253
16776 0447  
            
            /C
            /12600   CALL RSPEAK(185)
16777 1130  #12600, JSR     RSPEAK
17000 0000  
17001 1031          JA      .+4
17002 7005  
17003 1030          JA      #LIT+256
RALF V50A   24-JUL-20    PAGE 4-78

17004 0452  
            /       GAVEUP=.TRUE.
17005 0240          FLDA    ONE
17006 6400          FSTA    GAVEUP
17007 5035  
            /       GOTO 20000
17010 1031          JA      #20000
17011 7020  
            
            /C
            /C
            /C OH DEAR, HE'S DISTURBED THE DWARVES.
            /C
            /19000   CALL RSPEAK(136)
17012 1130  #19000, JSR     RSPEAK
17013 0000  
17014 1031          JA      .+4
17015 7020  
17016 1030          JA      #LIT+220
17017 0414  
            
            /C
            /C EXIT CODE. WILL EVENTUALLY INCLUDE SCORING. FOR NOW, HOWEVER, ...
            /C
            /C THE PRESENT SCORING ALGORITHM IS AS FOLLOWS:
            /C     OBJECTIVE:          POINTS:        PRESENT TOTAL POSSIBLE:
            /C  GETTING WELL INTO CAVE   25                    25
            /C  EACH TREASURE < CHEST    12                    60
            /C  TREASURE CHEST ITSELF    14                    14
            /C  EACH TREASURE > CHEST    16                   144
            /C  SURVIVING             (MAX-NUM)*10             30
            /C  NOT QUITTING              4                     4
            /C  REACHING "CLOSNG"        25                    25
            /C  "CLOSED": QUIT/KILLED    10
            /C            KLUTZED        25
            /C            WRONG WAY      30
            /C            SUCCESS        45                    45
            /C  CAME TO WITT'S END        1                     1
            /C  ROUND OUT THE TOTAL       2                     2
            /C                                       TOTAL:   350
            /20000   SCORE=0
17020 0002  #20000, FCLA
17021 6400          FSTA    SCORE
17022 0017  
            /       MXSCOR=0
17023 6400          FSTA    MXSCOR
17024 0014  
            /C
            /C FIRST TALLY UP THE TREASURES. MUST BE IN BUILDING AND NOT BROKEN.
            /C GIVE THE POOR GUY 2 POINTS JUST FOR FINDING EACH TREASURE.
            /C
            /       DO 20010 I=50,MAXTRS
17025 0273          FLDA    #LIT+110
17026 6400          FSTA    I
17027 0000  
            
RALF V50A   24-JUL-20    PAGE 4-79

            /       IF(PTEXT(I).EQ.0)GOTO 20010
17030 0400  #H0216, FLDA    I
17031 0000  
17032 0027          ATX     7
17033 0477          FLDA    PTEXT-3,7
17034 7775  
17035 1001          JEQ     #20010
17036 7121  
            /       K=12
17037 0251          FLDA    #LIT+22
17040 6400          FSTA    K
17041 6215  
            /       IF(I.EQ.CHEST)K=14
17042 0400          FLDA    I
17043 0000  
17044 2400          FSUB    CHEST
17045 4664  
17046 1041          JNE     .+7
17047 7055  
17050 0100          LDX     16,0    /14
17051 0016  
17052 0030          XTA     0
17053 6400          FSTA    K
17054 6215  
            /       IF(I.GT.CHEST)K=16
17055 0400          FLDA    I
17056 0000  
17057 2400          FSUB    CHEST
17060 4664  
17061 1021          JLE     .+5
17062 7066  
17063 0253          FLDA    #LIT+30
17064 6400          FSTA    K
17065 6215  
            /       IF(PROP(I).GE.0)SCORE=SCORE+2
17066 0470          FLDA    PROP-3,7
17067 3647  
17070 1051          JLT     .+5
17071 7075  
17072 0241          FLDA    TWO
17073 5400          FADDM   SCORE
17074 0017  
            /       IF(PLACE(I).EQ.3.AND.PROP(I).EQ.0)SCORE=SCORE+K-2
17075 0470          FLDA    PLACE-3,7
17076 2027  
17077 2242          FSUB    THREE
17100 1041          JNE     #M100
17101 7115  
17102 0470          FLDA    PROP-3,7
17103 3647  
17104 1041          JNE     #M100
17105 7115  
17106 0400          FLDA    SCORE
17107 0017  
17110 1400          FADD    K
17111 6215  
RALF V50A   24-JUL-20    PAGE 4-80

17112 2241          FSUB    TWO
17113 6400          FSTA    SCORE
17114 0017  
            /       MXSCOR=MXSCOR+K
17115 0400  #M100,  FLDA    K
17116 6215  
17117 5400          FADDM   MXSCOR
17120 0014  
            
            /20010   CONTINUE
17121 0400  #20010, FLDA    I
17122 0000  
17123 1240          FADD    ONE
17124 6400          FSTA    I
17125 0000  
17126 2400          FSUB    MAXTRS
17127 6226  
17130 1021          JLE     #H0216
17131 7030  
            /C
            /C NOW LOOK AT HOW HE FINISHED AND HOW FAR HE GOT. MAXDIE AND NUMDIE TELL US
            /C HOW WELL HE SURVIVED. GAVEUP SAYS WHETHER HE EXITED VIA QUIT. DFLAG WILL
            /C TELL US IF HE EVER GOT SUITABLY DEEP INTO THE CAVE. CLOSNG STILL INDICATES
            /C WHETHER HE REACHED THE ENDGAME. AND IF HE GOT AS FAR AS "CAVE CLOSED"
            /C (INDICATED BY "CLOSED"), THEN BONUS IS ZERO FOR MUNDANE EXITS OR 133, 134,
            /C 135 IF HE BLEW IT (SO TO SPEAK).
            /C
            /       SCORE=SCORE+(MAXDIE-NUMDIE)*10
17132 0400          FLDA    MAXDIE
17133 5002  
17134 2400          FSUB    NUMDIE
17135 4777  
17136 4250          FMUL    #LIT+17
17137 5400          FADDM   SCORE
17140 0017  
            /       MXSCOR=MXSCOR+MAXDIE*10
17141 0400          FLDA    MAXDIE
17142 5002  
17143 4250          FMUL    #LIT+17
17144 5400          FADDM   MXSCOR
17145 0014  
            /       IF(.NOT.(SCORNG.OR.GAVEUP))SCORE=SCORE+4
17146 0400          FLDA    SCORNG
17147 5040  
17150 1400          FADD    GAVEUP
17151 5035  
17152 1041          JNE     .+5
17153 7157  
17154 0243          FLDA    #LIT
17155 5400          FADDM   SCORE
17156 0017  
            /       MXSCOR=MXSCOR+4
17157 0243          FLDA    #LIT
17160 5400          FADDM   MXSCOR
17161 0014  
RALF V50A   24-JUL-20    PAGE 5

            
            /       IF(DFLAG.NE.0)SCORE=SCORE+25
17162 0400          FLDA    DFLAG
17163 4460  
17164 1001          JEQ     .+5
17165 7171  
17166 0261          FLDA    #LIT+52
17167 5400          FADDM   SCORE
17170 0017  
            /       MXSCOR=MXSCOR+25
17171 0261          FLDA    #LIT+52
17172 5400          FADDM   MXSCOR
17173 0014  
            /       IF(CLOSNG)SCORE=SCORE+25
17174 0400          FLDA    CLOSNG
17175 5024  
17176 1001          JEQ     .+5
17177 7203  
17200 0261          FLDA    #LIT+52
17201 5400          FADDM   SCORE
17202 0017  
            /       MXSCOR=MXSCOR+25
17203 0261          FLDA    #LIT+52
17204 5400          FADDM   MXSCOR
17205 0014  
            /       IF(.NOT.CLOSED)GOTO 20020
17206 0400          FLDA    CLOSED
17207 5032  
17210 1001          JEQ     #20020
17211 7257  
            /       IF(BONUS.EQ.0)SCORE=SCORE+10
17212 0400          FLDA    BONUS
17213 5013  
17214 1041          JNE     .+5
17215 7221  
17216 0250          FLDA    #LIT+17
17217 5400          FADDM   SCORE
17220 0017  
            /       IF(BONUS.EQ.135)SCORE=SCORE+25
17221 0100          LDX     207,0   /135
17222 0207  
17223 0030          XTA     0
17224 2400          FSUB    BONUS
17225 5013  
17226 1041          JNE     .+5
17227 7233  
17230 0261          FLDA    #LIT+52
17231 5400          FADDM   SCORE
17232 0017  
            /       IF(BONUS.EQ.134)SCORE=SCORE+30
17233 0100          LDX     206,0   /134
17234 0206  
17235 0030          XTA     0
17236 2400          FSUB    BONUS 
17237 5013  
17240 1041          JNE     .+5
RALF V50A   24-JUL-20    PAGE 5-1

17241 7245  
17242 0264          FLDA    #LIT+63
17243 5400          FADDM   SCORE
17244 0017  
            /       IF(BONUS.EQ.133)SCORE=SCORE+45
17245 0100          LDX     205,0   /133
17246 0205  
17247 0030          XTA     0
17250 2400          FSUB    BONUS
17251 5013  
17252 1041          JNE     #20020
17253 7257  
17254 0271          FLDA    #LIT+102
17255 5400          FADDM   SCORE
17256 0017  
            /20020   MXSCOR=MXSCOR+45
17257 0271  #20020, FLDA    #LIT+102
17260 5400          FADDM   MXSCOR
17261 0014  
            /C
            /C DID HE COME TO WITT'S END AS HE SHOULD?
            /C
            /       IF(PLACE(MAGZIN).EQ.108)SCORE=SCORE+1
17262 0400          FLDA    MAGZIN
17263 4565  
17264 0027          ATX     7
17265 0100          LDX     154,0   /108
17266 0154  
17267 0030          XTA     0
17270 2470          FSUB    PLACE-3,7
17271 2027  
17272 1041          JNE     .+5
17273 7277  
17274 0240          FLDA    ONE
17275 5400          FADDM   SCORE
17276 0017  
            /       MXSCOR=MXSCOR+1
17277 0240          FLDA    ONE
17300 5400          FADDM   MXSCOR
17301 0014  
            /C
            /C ROUND IT OFF.
            /C
            /       SCORE=SCORE+2
17302 0241          FLDA    TWO
17303 5400          FADDM   SCORE
17304 0017  
            /       MXSCOR=MXSCOR+2
17305 5400          FADDM   MXSCOR
17306 0014  
            /C
            /C DEDUCT POINTS FOR HINTS. HINTS < 4 ARE SPECIAL; SEE DATABASE DESCRIPTION.
            /C
            /       DO 20030 I=1,HNTMAX
17307 0240          FLDA    ONE
17310 6400          FSTA    I
RALF V50A   24-JUL-20    PAGE 5-2

17311 0000  
            
            /20030   IF(HINTED(I))SCORE=SCORE-HINTS(I,2)
17312 0400  #20030, FLDA    I
17313 0000  
17314 0027          ATX     7
17315 0470          FLDA    HINTED-3,7
17316 6226  
17317 1001          JEQ     .+15
17320 7334  
17321 0241          FLDA    TWO
17322 4255          FMUL    #LIT+36
17323 1400          FADD    I
17324 0000  
17325 0026          ATX     6
17326 0400          FLDA    SCORE
17327 0017  
17330 2460          FSUB    HINTS-0077,6
17331 3170  
17332 6400          FSTA    SCORE
17333 0017  
            
17334 0400          FLDA    I
17335 0000  
17336 1240          FADD    ONE
17337 6400          FSTA    I
17340 0000  
17341 2400          FSUB    HNTMAX
17342 3647  
17343 1021          JLE     #20030
17344 7312  
            /C
            /C RETURN TO SCORE COMMAND IF THAT'S WHERE WE CAME FROM.
            /C
            /       IF(SCORNG)GOTO 8241
17345 0400          FLDA    SCORNG
17346 5040  
17347 1041          JNE     #8241
17350 4541  
            /C
            /C THAT SHOULD BE GOOD ENOUGH. LET'S TELL HIM ALL ABOUT IT.
            /C
            /       TYPE 20100,SCORE,MXSCOR,TURNS
17351 1130          JSR     SIXOUT
17352 0000  
17353 1031          JA      .+10
17354 7363  
17355 1032          JA      #20100
17356 0173  
17357 1030          JA      ZERO
17360 0160  
17361 1030          JA      TWO
17362 0166  
            
17363 3000          TRAP3   #WRITO
17364 0000  
RALF V50A   24-JUL-20    PAGE 5-3

17365 1030          JA      #LIT
17366 0174  
17367 1032          JA      #2010A
17370 0103  
17371 0400          FLDA    SCORE
17372 0017  
17373 3000          TRAP3   #RSVO
17374 0000  
17375 3000          TRAP3   #RENDO
17376 0000  
            
17377 1130          JSR     SIXOUT
17400 0000  
17401 1031          JA      .+10
17402 7411  
17403 1032          JA      #2010B
17404 0202  
17405 1030          JA      ZERO
17406 0160  
17407 1030          JA      THREE
17410 0171  
            
17411 3000          TRAP3   #WRITO
17412 0000  
17413 1030          JA      #LIT
17414 0174  
17415 1032          JA      #2010A
17416 0103  
17417 0400          FLDA    MXSCOR
17420 0014  
17421 3000          TRAP3   #RSVO
17422 0000  
17423 3000          TRAP3   #RENDO
17424 0000  
            
17425 1130          JSR     SIXOUT
17426 0000  
17427 1031          JA      .+10
17430 7437  
17431 1032          JA      #2010C
17432 0215  
17433 1030          JA      ZERO
17434 0160  
17435 1030          JA      THREE
17436 0171  
            
17437 3000          TRAP3   #WRITO
17440 0000  
17441 1030          JA      #LIT
17442 0174  
17443 1032          JA      #2010D
17444 0222  
            
17445 0400          FLDA    TURNS
17446 4760  
17447 3000          TRAP3   #RSVO
RALF V50A   24-JUL-20    PAGE 5-4

17450 0000  
17451 3000          TRAP3   #RENDO
17452 0000  
            
17453 1130          JSR     SIXOUT
17454 0000  
17455 1031          JA      .+10
17456 7465  
17457 1032          JA      #2010E
17460 0227  
17461 1030          JA      ZERO
17462 0160  
17463 1030          JA      ONE
17464 0163  
            
            /20100   FORMAT(/' You scored',I4,' out of a possible',I4,
            /       1       ', using',I5,' turns.')
            /C
            /       DO 20200 I=1,CLSSES
17465 0240          FLDA    ONE
17466 6400          FSTA    I
17467 0000  
            
            /       IF(CVAL(I).GE.SCORE)GOTO 20210
17470 0400  #I0064, FLDA    I
17471 0000  
17472 0027          ATX     7
17473 0470          FLDA    CVAL-3,7
17474 0014  
17475 2400          FSUB    SCORE
17476 0017  
17477 1011          JGE     #20210
17500 7524  
            
            /20200   CONTINUE
17501 0400  #20200, FLDA    I
17502 0000  
17503 1240          FADD    ONE
17504 6400          FSTA    I
17505 0000  
17506 2400          FSUB    CLSSES
17507 0006  
17510 1021          JLE     #I0064
17511 7470  
            /       TYPE 20202
17512 1130          JSR     SIXOUT
17513 0000  
17514 1030          JA      #25000
17515 0604  
17516 1032          JA      #20202
17517 0234  
17520 1030          JA      ZERO
17521 0160  
17522 1030          JA      ZERO
17523 0160  
            
RALF V50A   24-JUL-20    PAGE 5-5

            /20202   FORMAT(' You just went off my scale!!'/)
            /       GOTO 25000
            
            /C
            /20210   CALL SPEAK(CTEXT(I))
17524 0400  #20210, FLDA    I
17525 0000  
17526 0027          ATX     7
17527 0470          FLDA    CTEXT-3,7       /GET CLASS MESSAGE
17530 0011  
17531 6230          FSTA    #TMP+3
17532 1130          JSR     SPEAK
17533 0000  
17534 1031          JA      .+4
17535 7540  
17536 1030          JA      #TMP+3
17537 0133  
            /       IF(I.EQ.CLSSES-1)GOTO 20220
17540 0400          FLDA    CLSSES
17541 0006  
17542 2240          FSUB    ONE
17543 2400          FSUB    I
17544 0000  
17545 1001          JEQ     #20220
17546 7652  
            /       K=CVAL(I)+1-SCORE
17547 0400          FLDA    I
17550 0000  
17551 0027          ATX     7
17552 0470          FLDA    CVAL-3,7
17553 0014  
17554 1240          FADD    ONE
17555 2400          FSUB    SCORE
17556 0017  
17557 6400          FSTA    K
17560 6215  
            /       TYPE 20212,K
17561 1130          JSR     SIXOUT
17562 0000  
17563 1031          JA      .+10
17564 7573  
17565 1032          JA      #20212
17566 0253  
17567 1030          JA      ZERO
17570 0160  
17571 1030          JA      TWO
17572 0166  
            
17573 3000          TRAP3   #WRITO
17574 0000  
17575 1030          JA      #LIT
17576 0174  
17577 1032          JA      #2021A
17600 0302  
17601 0400          FLDA    K
17602 6215  
RALF V50A   24-JUL-20    PAGE 5-6

17603 3000          TRAP3   #RSVO
17604 0000  
17605 3000          TRAP3   #RENDO
17606 0000  
            
17607 1130          JSR     SIXOUT
17610 0000  
17611 1031          JA      .+10
17612 7621  
17613 1032          JA      #2021B
17614 0307  
17615 1030          JA      ZERO
17616 0160  
17617 1030          JA      THREE
17620 0171  
                    
            /20212   FORMAT(' To achieve the next higher rating, you need',I3,
            /       1       ' more point',$)
            /       IF(K.EQ.1) TYPE 20213
17621 0400          FLDA    K
17622 6215  
17623 2240          FSUB    ONE
17624 1041          JNE     .+14
17625 7640  
17626 1130          JSR     SIXOUT
17627 0000  
17630 1030          JA      #25000
17631 0604  
17632 1032          JA      #20213
17633 0123  
17634 1030          JA      ZERO
17635 0160  
17636 1030          JA      ONE
17637 0163  
            
            /       IF(K.NE.1) TYPE 20214
17640 1130          JSR     SIXOUT
17641 0000  
17642 1030          JA      #25000
17643 0604  
17644 1032          JA      #20214
17645 0316  
17646 1030          JA      ZERO
17647 0160  
17650 1030          JA      ONE
17651 0163  
            /20213   FORMAT('+.'/)
            
            /20214   FORMAT('+s.'/)
            /       GOTO 25000
            
            /C
            /20220   TYPE 20222
17652 1130  #20220, JSR     SIXOUT
17653 0000  
17654 1031          JA      .+10
RALF V50A   24-JUL-20    PAGE 5-7

17655 7664  
17656 1032          JA      #20222
17657 0320  
17660 1030          JA      ZERO
17661 0160  
17662 1030          JA      ZERO
17663 0160  
17664 1130          JSR     SIXOUT
17665 0000  
17666 1030          JA      #GOBAK
17667 0057  
17670 1032          JA      #20223
17671 0355  
17672 1030          JA      ZERO
17673 0160  
17674 1030          JA      ZERO
17675 0160  
            
            /20222   FORMAT(' To achieve the next higher rating ',
            /       1       'would be a neat trick!'/' Congratulations!!'/)
            /       RETURN
            /       END
            /
            / Fortran Formats:
            /
17676 2435  #67A,   TEXT    %T]HERE ARE @%
17677 1005  
17700 2205  
17701 4001  
17702 2205  
17703 4000  
17704 5047  #67,    TEXT    %('+',I1,$)%
17705 5347  
17706 5411  
17707 6154  
17710 4451  
17711 4024  #67B,   TEXT    % T]HREATENING LITTLE DWARVES IN THE ROOM WITH YOU.@%
17712 3510  
17713 2205  
17714 0124  
17715 0516  
17716 1116  
17717 0740  
17720 1411  
17721 2424  
17722 1405  
17723 4004  
17724 2701  
17725 2226  
17726 0523  
17727 4011  
17730 1640  
17731 2410  
17732 0540  
17733 2217  
17734 1715  
RALF V50A   24-JUL-20    PAGE 5-8

17735 4027  
17736 1124  
17737 1040  
17740 3117  
17741 2556  
17742 0000  
            #68,
17743 5061  #78,    TEXT    %(1X,I1,$)%
17744 3054  
17745 1161  
17746 5444  
17747 5100  
17750 4035  #78B,   TEXT    % ]OF THEM THROW KNIVES AT YOU!@%
17751 1706  
17752 4024  
17753 1005  
17754 1540  
17755 2410  
17756 2217  
17757 2740  
17760 1316  
17761 1126  
17762 0523  
17763 4001  
17764 2440  
17765 3117  
17766 2541  
17767 0000  
17770 4035  #68B,   TEXT    % ]OF THEM GET YOU!@%
17771 1706  
17772 4024  
17773 1005  
17774 1540  
17775 0705  
17776 2440  
17777 3117  
20000 2541  
20001 0000  
20002 2735  #5015,  TEXT    %W]HAT DO YOU WANT TO DO WITH THE @%
20003 1001  
20004 2440  
20005 0417  
20006 4031  
20007 1725  
20010 4027  
20011 0116  
20012 2440  
20013 2417  
20014 4004  
20015 1740  
20016 2711  
20017 2410  
20020 4024  
20021 1005  
20022 4000  
20023 1135  #5199,  TEXT    %I] DON'T SEE ANY "@%
RALF V50A   24-JUL-20    PAGE 5-9

20024 4004  
20025 1716  
20026 4724  
20027 4023  
20030 0505  
20031 4001  
20032 1631  
20033 4042  
20034 0000  
20035 1140  #8002,  TEXT    %I ]DON'T UNDERSTAND "@%
20036 3504  
20037 1716  
20040 4724  
20041 4025  
20042 1604  
20043 0522  
20044 2324  
20045 0116  
20046 0440  
20047 4200  
20050 1735  #9032,  TEXT    %O]KAY, "@%
20051 1301  
20052 3154  
20053 4042  
20054 0000  
20055 1135  #8243,  TEXT    %I]F YOU WERE TO QUIT NOW, YOU WOULD SCORE @%
20056 0640  
20057 3117  
20060 2540  
20061 2705  
20062 2205  
20063 4024  
20064 1740  
20065 2125  
20066 1124  
20067 4016  
20070 1727  
20071 5440  
20072 3117  
20073 2540  
20074 2717  
20075 2514  
20076 0440  
20077 2303  
20100 1722  
20101 0540  
20102 0000  
            #2010A,
20103 5047  #8243A, TEXT    %('+',I4,$)%
20104 5347  
20105 5411  
20106 6454  
20107 4451  
20110 4035  #8243B, TEXT    % ]OUT OF A POSSIBLE @%
20111 1725  
20112 2440  
RALF V50A   24-JUL-20    PAGE 5-10

20113 1706  
20114 4001  
20115 4020  
20116 1723  
20117 2311  
20120 0214  
20121 0540  
20122 0000  
            #20213, 
20123 5600  #8243C, TEXT    %.@%
20124 1135  #40012, TEXT    %I] AM PREPARED TO GIVE YOU A HINT, BUT IT WILL COST YOU @%
20125 4001  
20126 1540  
20127 2022  
20130 0520  
20131 0122  
20132 0504  
20133 4024  
20134 1740  
20135 0711  
20136 2605  
20137 4031  
20140 1725  
20141 4001  
20142 4010  
20143 1116  
20144 2454  
20145 4002  
20146 2524  
20147 4011  
20150 2440  
20151 2711  
20152 1414  
20153 4003  
20154 1723  
20155 2440  
20156 3117  
20157 2540  
20160 0000  
20161 5047  #4001A, TEXT    %('+',I2,$)%
20162 5347  
20163 5411  
20164 6254  
20165 4451  
20166 4035  #4001B, TEXT    % ]POINTS.@%
20167 2017  
20170 1116  
20171 2423  
20172 5600  
20173 3135  #20100, TEXT    %Y]OU SCORED @%
20174 1725  
20175 4023  
20176 0317  
20177 2205  
20200 0440  
20201 0000  
RALF V50A   24-JUL-20    PAGE 5-11

20202 4035  #2010B, TEXT    % ]OUT OF A POSSIBLE @%
20203 1725  
20204 2440  
20205 1706  
20206 4001  
20207 4020  
20210 1723  
20211 2311  
20212 0214  
20213 0540  
20214 0000  
20215 4035  #2010C, TEXT    % ]USING @%
20216 2523  
20217 1116  
20220 0740  
20221 0000  
20222 5047  #2010D, TEXT    %('+',I5,$)%
20223 5347  
20224 5411  
20225 6554  
20226 4451  
20227 4035  #2010E, TEXT    % ]TURNS.@%
20230 2425  
20231 2216  
20232 2356  
20233 0000  
20234 3135  #20202, TEXT    %Y]OU JUST WENT OFF MY SCALE!!@%
20235 1725  
20236 4012  
20237 2523  
20240 2440  
20241 2705  
20242 1624  
20243 4017  
20244 0606  
20245 4015  
20246 3140  
20247 2303  
20250 0114  
20251 0541  
20252 4100  
20253 2435  #20212, TEXT    %T]O ACHIEVE THE NEXT HIGHER RATING, YOU NEED @%
20254 1740  
20255 0103  
20256 1011  
20257 0526  
20260 0540  
20261 2410  
20262 0540  
20263 1605  
20264 3024  
20265 4010  
20266 1107  
20267 1005  
20270 2240  
20271 2201  
RALF V50A   24-JUL-20    PAGE 5-12

20272 2411  
20273 1607  
20274 5440  
20275 3117  
20276 2540  
20277 1605  
20300 0504  
20301 4000  
20302 5047  #2021A, TEXT    %('+',I3,$)%
20303 5347  
20304 5411  
20305 6354  
20306 4451  
20307 4035  #2021B, TEXT    % ]MORE POINT@%
20310 1517  
20311 2205  
20312 4020  
20313 1711  
20314 1624  
20315 0000  
20316 3523  #20214, TEXT    %]S.@%
20317 5600  
20320 2435  #20222, TEXT    %T]O ACHIEVE THE NEXT HIGHER RATING WOULD BE A NEAT TRICK!@%
20321 1740  
20322 0103  
20323 1011  
20324 0526  
20325 0540  
20326 2410  
20327 0540  
20330 1605  
20331 3024  
20332 4010  
20333 1107  
20334 1005  
20335 2240  
20336 2201  
20337 2411  
20340 1607  
20341 4027  
20342 1725  
20343 1404  
20344 4002  
20345 0540  
20346 0140  
20347 1605  
20350 0124  
20351 4024  
20352 2211  
20353 0313  
20354 4100  
20355 0335  #20223, TEXT    %C]ONGRATULATIONS!!@%
20356 1716  
20357 0722  
20360 0124  
20361 2514  
RALF V50A   24-JUL-20    PAGE 5-13

20362 0124  
20363 1117  
20364 1623  
20365 4141  
20366 0000  
RALF V50A   24-JUL-20    PAGE 5-14

NO ERRORS 
498 SYMBOLS, NO ABS REFS 

 #      C 00000   #BASE    00023   #EQ    X 00000   #FIX   X 00000  
 #GOBAK   00057   #G0047   01240   #G0051   01375   #G0053   01437  
 #G0055   01523   #G0057   02075   #G0063   02303   #G0102   03407  
 #G0122   04735   #G0150   06716   #G0152   07070   #H0102   11443  
 #H0122   12271   #H0132   13151   #H0143   13672   #H0204   16063  
 #H0214   16744   #H0216   17030   #I0064   17470   #LBL     00604  
 #LINEF   04646   #LIT     00174   #MAIN  S 00000   #M100    17115  
 #M222    07300   #M27     05646   #M31     06457   #M32     06532  
 #M33     06577   #M34     06504   #M35     06510   #M36     06526  
 #M37     06546   #M38     06552   #M39     06562   #M4      02215  
 #M40     06566   #M78     12721   #M79     12755   #M81     13075  
 #M82     13124   #M83     13140   #M84     13213   #M85     13242  
 #M86     13572   #M87     13564   #M88     13631   #M89     14012  
 #M90     14035   #M91     14256   #M92     14270   #M92A    14304  
 #M93     14746   #M94     14770   #M95     15250   #M96     15343  
 #NE    X 00000   #RENDO X 00000   #RET     00015   #RSVO  X 00000  
 #RTN     00604   #ST      00606   #STRT    01077   #TMP     00130  
 #UE    X 00000   #WRITO X 00000   #XR      00002   #1       01077  
 #10      05306   #10000   16044   #11000   16261   #11010   16576  
 #12      05356   #12000   16635   #12200   16677   #12400   16752  
 #12600   16777   #13      05466   #14      05520   #16      05534  
 #19000   17012   #19999   03754   #2       01146   #20      06142  
 #2000    02760   #20000   17020   #2001    03075   #20010   17121  
 #20020   17257   #20030   17312   #2004    03201   #2006    03312  
 #2008    03353   #2009    03364   #2009A   07516   #2010    03367  
 #2010A   20103   #2010B   20202   #2010C   20215   #2010D   20222  
 #2010E   20227   #20100   20173   #2011    03372   #2012    03400  
 #20200   17501   #20202   20234   #2021A   20302   #2021B   20307  
 #20210   17524   #20212   20253   #20213   20123   #20214   20316  
 #20220   17652   #20222   20320   #20223   20355   #21      06204  
 #22      06263   #23      06304   #25      06317   #25000   00604  
 #2600    03405   #2602    03446   #2604    03511   #2605    03541  
 #2608    03602   #2609    04044   #2610    04102   #2630    04124  
 #2800    04207   #30      06353   #3000    04217   #30000   05575  
 #30100   05624   #30200   05660   #30300   05670   #30310   06025  
 #40      06404   #4000    04263   #40000   15466   #4001A   20161  
 #4001B   20166   #40010   15520   #40012   20124   #40020   15674  
 #40030   15701   #40400   15703   #40500   15722   #40600   15750  
 #40700   15766   #4080    04322   #40800   16022   #4090    04440  
 #50      06425   #5000    04560   #5010    04603   #5015    20002  
 #5100    04653   #5110    04724   #5112    04753   #5120    04763  
 #5130    05036   #5140    05061   #5190    05103   #5199    20023  
 #6000    01345   #6001    01406   #6002    01454   #6010    01511  
 #6012    01550   #6014    01713   #6016    01736   #6020    02133  
 #6022    02243   #6023    02376   #6024    02407   #6025    02424  
 #6027    02452   #6030    02522   #67      17704   #67A     17676  
 #67B     17711   #68      17743   #68B     17770   #71      01207  
 #73      01271   #74      01301   #75      02601   #77      02607  
 #78      17743   #78B     17750   #79      02743   #8       05146  
 #8000    07010   #8002    20035   #8010    07051   #8012    07106  
 #8040    10410   #8140    12611   #8142    12617   #8180    13520  
 #8185    13534   #82      02661   #8200    13663   #8201    13734  
 #8240    14534   #8241    14541   #8243    20055   #8243A   20103  
RALF V50A   24-JUL-20    PAGE 5-15

 #8243B   20110   #8243C   20123   #8250    14650   #8252    14707  
 #8260    15047   #8270    15063   #83      02707   #8300    15440  
 #8310    15450   #8320    15456   #84      02735   #9       05233  
 #90      06605   #9010    07125   #9013    07400   #9014    07422  
 #9015    07414   #9016    07347   #9017    07332   #9018    07326  
 #9020    07523   #9021    07621   #9024    07724   #9025    07770  
 #9026    10055   #9027    10213   #9028    10240   #9030    10315  
 #9031    10324   #9032    20050   #9035    10402   #9040    10514  
 #9040A   10542   #9043    10675   #9046    10745   #9046A   11003  
 #9048    11065   #9049    11160   #9070    11245   #9080    11303  
 #9090    11337   #9120    11440   #9121    11461   #9122    11474  
 #9124    11673   #9125    11745   #9126    12323   #9130    12345  
 #9132    12554   #9140    12633   #9150    12727   #9160    13033  
 #9170    13047   #9171    13162   #9172    13247   #9175    13311  
 #9176    13335   #9177    13370   #9178    13376   #9190    13542  
 #9192    13601   #9210    13756   #9212    13770   #9213    14116  
 #9214    14143   #9215    14230   #9220    14236   #9222    14410  
 #9230    14457   #9270    15160   #9280    15314   #9282    15363  
 #9290    15420   #95      06775   #98      06756   #99      06617  
 ABB      00000   ABBCOM C 00702   ABBNUM   04774   ACTSPK   02214  
 AMAIN  S 20367   AT       00634   ATLOC    00000   ATTACK   00000  
 AXE      04620   A5TOA1 X 00000   BACK     04717   BATTER   04653  
 BEAR     04642   BIRD     04535   BITSET X 00000   BONUS    05013  
 BOTTLE   04601   BUG    X 00000   CAGE     04521   CARRY  X 00000  
 CAVE     04725   CHAIN    04714   CHASM    04631   CHEST    04664  
 CHLOC    04430   CHLOC2   04433   CLAM     04557   CLOCK1   05016  
 CLOCK2   05021   CLOSED   05032   CLOSNG   05024   CLSSES   00006  
 COINS    04661   COND     02365   CTEXT    00014   CVAL     00017  
 DALTLC   04505   DARK     00711   DETAIL   04771   DFLAG    04460  
 DKILL    05005   DLOC     04463   DOOR     04540   DPRSSN   04736  
 DRAGON   04626   DROP   X 00000   DSEEN    04436   DSTROY X 00000  
 DTOTAL   00003   DWARF    04570   EGGS     04667   EMRALD   04700  
 ENTRNC   04733   FIND     04752   FISSUR   04551   FIXD     01540  
 FIXED    02506   FOOBAR   05010   FOOD     04576   FORCED   00655  
 GAVEUP   05035   GETIN  X 00000   GETWRD X 00000   GRATE    04516  
 HERE     00667   HINT     00061   HINTED   06231   HINTLC   04334  
 HINTS    03267   HNTMAX   03647   HNTSIZ   06223   HOLDNG   03162  
 I        00000   IABS   X 00000   INVENT   04755   ISAT     00651  
 ISHERE   00706   J        06212   JUGGLE X 00000   K        06215  
 KENT     00064   KEY      00162   KEYS     04510   KK       06330  
 KNFLOC   04766   KNIFE    04573   KQ       00067   K2       00072  
 LAMP     04513   LIMIT    00011   LINK     00702   LINUSE   00000  
 LIQ      01001   LIQLOC   01026   LIQ2     00755   LL       00075  
 LMWARN   04763   LOC      00014   LOCK     04744   LOOK     04722  
 LTEXT    00762   MAGZIN   04565   MAXDIE   05002   MAXTRS   06226  
 MAX0   X 00000   MESSAG   04645   MINUS1   00601   MIN0   X 00000  
 MIRROR   04623   MISCOM C 05073   MISC2  C 06333   MISC3  C 00030  
 MOD    X 00000   MOVE   X 00000   MXSCOR   00014   N        00100  
 NEWLOC   00157   NOMOD    03025   NOTDRK   00752   NOTHR    00730  
 NUGGET   04656   NULL     04730   NUMDIE   04777   OBJ      06207  
 ODLOC    05043   OIL      04607   OKKILL   12156   OLDLC2   00006  
 OLDLOC   00011   ONE      00163   OYSTER   04562   PABB     00532  
 PANIC    05027   PBOTL    00103   PCOND    00521   PCT    X 00000  
 PEARL    04706   PFIXD    00524   PHINTS   00527   PILLOW   04543  
 PLAC     01064   PLACE    02032   PLACOM C 03165   PLANT    04612  
 PLANT2   04615   PPLAC    00535   PROP     03652   PSPEAK X 00000  
RALF V50A   24-JUL-20    PAGE 5-16

 PTEXT    00000   PTXCOM C 00454   PUT    X 00000   PUTWRD X 00000  
 PYRAM    04703   RND    X 00000   ROD      04524   ROD2     04527  
 RSPEAK X 00000   RSTRGM X 00000   RTEXT    00000   RUG      04711  
 SAVEGM X 00000   SAY      04741   SCORE    00017   SCORNG   05040  
 SIXOUT X 00000   SNAKE    04546   SPEAK  X 00000   SPICES   05070  
 SPK      00106   STEPS    04532   STEXT    00060   STICK    00022  
 STREAM   05065   TABLET   04554   TALLY    04326   TALLY2   04331  
 TENTE    00540   THREE    00171   THROW    04747   TK       00063  
 TOTING   00622   TPOUR    00543   TQDOT    00554   TQUES    00551  
 TRAVEL   01667   TRIDNT   04672   TROLL    04634   TROLL2   04637  
 TRVCON   03245   TRVLOC   04623   TRVS     00003   TRVSIZ   06201  
 TURNS    04760   TWEST    00546   TWO      00166   TXTCOM C 01455  
 TY       00565   TYE      00562   TYES     00557   VASE     04675  
 VEND     04650   VERB     06220   VOCAB  X 00000   WATER    04604  
 WD1      00111   WD1X     00114   WD2      00117   WD2X     00122  
 WZDARK   00025   YEA      00125   YES    X 00000   ZERO     00160