🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sources.apple2
1 messages
1 total messages Started by Jonathan A. Chandross Sat, 01 Jun 1991 02:44
v001SRC054: Inmate Parser -- ATN Based, Part04/05
#55
Author: Jonathan A. Chandross
Date: Sat, 01 Jun 1991 02:44
1613 lines
45430 bytes
Submitted-by: Phil Goetz (goetz@cs.buffalo.EDU)
Posting-number: Volume 1, Source:54
Archive-name: util/parser/inmate/part04
Architecture: ANY_2
Version-number: 1.00


=transit
-*
-SAVETRANSIT28
-OBJ    .EQ 1
-DEST   .EQ 2
-INSTR  .EQ 3
-EXCE   .EQ 4
-* TRANSITION ACTIONS
-* CAN USE SUB FOR MULT IF OBJS ALSO HAVE 6 BYTES
-TV     LDY #0
-       STY MISC+1
-       STY TEMP+1
-       LDA WVERB    MISC,+1=WVERB*6
-       STA TEMP
-       ASL
-       BCC .0
-       INC TEMP+1
-.0     STA TEMP
-       ROL MISC+1
-       ASL
-       ROL MISC+1
-       ADC TEMP     C=0
-       BCC .1
-       INC MISC+1
-       CLC
-.1     ADC #VERBS
-       STA MISC
-       LDA /VERBS
-       ADC MISC+1
-       ADC TEMP+1
-       STA MISC+1
-.2     LDA (MISC),Y
-       STA CASEFRAME,Y
-       INY
-       CPY #6
-       BNE .2
-RESVDAT LDY #1
-.1     LDA CASEFRAME+4,Y
-       STA VDAT+1,Y
-       DEY
-       BPL .1
-TRTS   RTS
-TPLACE LDA WNOUN-1,X  USED ONLY FOR NON-NOUN PLACES (NSEW..)
-       STA SPLACE
-       RTS
-TPOBJ  LDX NPSP
-       LDA #TLPOBJ
-       STA NPSTACK,X
-       INX
-       LDA /TLPOBJ
-       JMP TNP
-TLPOBJ JSR COMBINE
-       LDA NOUNLIST+1
-       BNE .2       >1 PLACE
-       LDA NOUNLIST
-       BNE .1
-       JMP DNS      0 PLACE
-.1     CMP #LP+1
-       BCS NAP      NOT A PLACE
-       STA SDEST
-       LDA #7
-       JMP OUTOFNP
-.4     .US /GIVE ONLY ONE PLACE.@=/
-.2     LDY /.4
-       LDA #.4
-       JMP PS
-NAP    LDY /.6
-       LDA #.6
-       BCS NAP-3    ALWAYS
-.6     .US /THAT'S NOT A PLACE!@=/
-* TADV, T9.10, T9.E UNUSED
-TADV   LDA WNOUN-1,X
-       STA SADV
-       RTS
-T9.10  JSR LOADNUM
-       STA SPT
-       STY SPT+1
-       RTS
-T9.E   JSR LOADNUM
-       STA STIME
-       STY STIME+1
-       RTS
-TEXC   LDA #EXCE
-       STA NTYPE
-       LDX NPSP
-       LDA #TLEXC
-       STA NPSTACK,X
-       INX
-       LDA /TLEXC
-       JMP TNP
-       RTS
-TLEXC  JSR EXCL
-       LDA #5
-       JMP OUTOFNP
-EXCL   LDY #0
-.1     LDA NOUNLIST,Y
-       BEQ .3       NO MORE
-       JSR RFO
-       INY
-       CPY #20
-       BNE .1
-.3     RTS
-* REMOVE A FROM OBJLIST
-* FIND & ZERO IT IN OBJLIST
-RFO    LDX #21
-.1     DEX
-       BEQ .3
-       CMP OBJLIST-1,X
-       BNE .1
-       LDA #0
-       STA OBJLIST-1,X
-       STX TEMP
-* MOVE LAST OBJ INTO EMPTY SPACE
-       LDX #21
-.2     DEX
-       CPX TEMP
-       BCC .3       LAST OBJ WAS ZEROED
-       LDA OBJLIST-1,X   SEARCH FOR LAST OBJ
-       BEQ .2
-       PHA
-       LDA #0
-       STA OBJLIST-1,X   REMOVE FROM END
-       PLA
-       LDX TEMP
-       STA OBJLIST-1,X   & PUT IT IN PLACE OF REMOVED OBJ
-.3     RTS
-* VERB PART:GET NEW VERB#,DELETE VERB PART,JMP ATN
-TPRT   STX TEMP
-       LDA #$D0     BNE
-       JSR SKP2     POINT TO VERB PARTS
-       LDX TEMP
-.1     JSR VDAT
-       TAY
-       BEQ BEJF     PART NOT FOUND
-       CMP WVERB-1,X     PART#
-       PHP
-       JSR VDAT     NEW VERB#
-       PLP
-       BNE .1
-       STA WVERB
-       STA PFND
-       TXA
-       TAY
-       DEX
-.2     JSR TMOVE
-       INX
-       INY
-       CPY WORDS
-       BCC .2
-       DEC WORDS
-       PLA
-       PLA
-       JMP ATN
-PFND   .BS 1        >0=PART FOUND
-TPM    LDA CASEFRAME+1  DEST ALLOWED WI THIS VERB?
-       AND #2
-BEJF   BEQ JMPFAIL  NO
-       LDA WNOUN-1,X
-       TAX
-       JSR CLCPNT   REVERSE
-       STA SPM
-       RTS
-T6.7   LDA #DEST
-       STA NTYPE
-       LDX NPSP
-       LDA #TLDEST
-       STA NPSTACK,X
-       INX
-       LDA /TLDEST
-       JMP TNP
-TLDEST JSR COMBINE
-       LDA NOUNLIST+1
-       BNE .4       >1 DEST
-       LDA NOUNLIST
-       BEQ .0
-       STA SDEST
-       JSR CHECKLOC
-       BCC .1
-.0     JMP DNS
-*.1     LDX WTFIN    VERB
-*      CPX #VP
-*      BNE .2
-*      CMP #LP+1
-*      BCS NAP      NOT A PLACE
-.1     LDA #7
-       JMP OUTOFNP
-.4     JMP OD
-T7.8   LDA CASEFRAME+1  INSTR ALLOWED?
-       AND #8
-       BEQ JMPFAIL  NO
-       JSR LOADNUM
-       STA SPI
-       STY SPI+1
-T7RTS  RTS
-*--------------------------------
-* JUMPED TO IF A JUMP TRANSITION'S REQUIREMENTS AREN'T MET
-JMPFAIL PLA
-       PLA
-       LDX CURWORD
-       JMP A4
-*--------------------------------
-LOADNUM DEX
-       LDA WLO,X
-       LDY WHI,X
-       RTS
-*--------------------------------
-* ON ENTERING NP:
-*      STORE ADDRESS OF LEAVE ROUTINE ON NPSTACK
-*      ZERO SPN
-*      INC WORDS
-*      ZERO ADJLIST
-* ON EXITING:
-*      DEC WORDS
-TNUM   LDA SPN
-       BNE JMPFAIL  NUM CAN'T BE USED FOR SOURCE OR DEST
-       LDA WLO-1,X
-       CMP #ALLNUM  MAKE ALL=0
-       BNE .1
-       LDA WHI-1,X  CONT CMP ALLNUM
-       BEQ .2
-.1     LDA WNOUN-1,X  GET VALUE
-.2     STA SNUM
-       RTS
-TPRN   LDA CNTOBJ
-       BNE TN2
-       LDA LSTOBJ
-       BNE TN2
-       PLA
-       PLA
-       LDY /.1
-       LDA #.1
-       JMP PS
-.1     .US /I DON'T KNOW WHAT YOU MEAN BY "IT".@=/
-CNTOBJ .BS 1        CONTEXT OBJ
-TADJ   LDA WNOUN-1,X  GET ADJ#
-       LDY #$FF
-.1     INY
-       LDX ADJLIST,Y
-       BNE .1
-       STA ADJLIST,Y
-TARTS  RTS
-TNOUN  LDA WNOUN-1,X
-TN2    PHA
-       JSR COMBINE
-       STA UALL
-.0     STA LNL,Y    ERASE LNL
-       STA SOURCELIST,Y  AND SOURCELIST
-       DEY
-       BPL .0
-       PLA
-       STA TEMP3
-* SEE IF OBJ HAS SUBOBJS, I.E. "DOOR" CAN REFER TO MANY DOORS
-* ENTER WI OBJ IN A
-* ON EXIT, X=#SUBOBJS,WHICH ARE ON STACK
-* NO MORE THAN 256 BYTES IN SUBTAB DATA
-       LDY #0
-.1     LDX SUBTAB,Y
-       BEQ TN1      NOT FOUND
-       CMP SUBTAB,Y
-       BNE .3
-       LDX #0
-.2     INY
-       LDA SUBTAB,Y
-       BEQ TN1      END OF LIST
-       PHA
-       INX
-       BNE .2       ALWAYS
-.3     INY
-       LDX SUBTAB,Y
-       BNE .3       FIND END OF THIS LIST
-       INY
-       BNE .1       ALWAYS
-TN1    TXA
-       BNE .1
-       LDA TEMP3
-       JSR CHECKADJ
-       BCS TARTS    ELIMINATED BY ADJ
-       STA SOURCELIST
-       CMP #ALL
-       BEQ .0
-       JMP .3
-.0     DEC UALL     FF FOR BIT
-       LDX #HOLDS
-       BIT CASEFRAME
-       BVC .12      OBJS IN LOC FORBIDDEN
-       LDA LIGHT
-       BEQ .12      USES OBJS IN ME IF NO LIGHT
-       LDA LOC
-       JSR GETOBJ   NOTE THAT THIS DOESN'T INCLUDE LOC WITH OBJS IN LOC
-       JMP .1
-.12    LDA #ME      OBJS IN ME
-       JSR GETOBJ
-.1     LDY #0
-       STY INLOC    NO OBJS YET IN LOC
-       STY TEMP+3   SUB POINTER
-.2     DEX
-       BMI .26
-       PLA
-       JSR CHECKADJ
-       BCS .2
-       JSR CHECKLOC WHEN DEALING WI SUBSETS,ONLY INCLUDE OBJS IN LOC
-       STY TEMP+2
-       LDY TEMP+3
-       STA LNL,Y    SAVE IN CASE WE MUST RESTORE
-       INC TEMP+3
-       LDY TEMP+2
-       BCS .2       NOT LOC
-       INC INLOC    1 OBJ IN LOC
-.23    JSR FF4A
-       LDA $45
-       JSR PNTOBJ
-       LDY #5
-       LDA (MISC),Y
-       PHP
-       JSR FF3F
-       PLP
-       BPL .25
-       BIT UALL     INVISIBLE^(0/FF)
-       BNE .2       DON'T INCLUDE INVISIBLE IN ALL
-.25    STA SOURCELIST,Y
-       INY
-       BNE .2       ALWAYS
-*IF NO OBJ IS IN LOC & ABS OBJS ALLOWED,RESTORE OBJS NOT IN LOC
-.26    LDY TEMP+3
-       LDA INLOC
-       BNE .28      AT LEAST 1 WAS IN LOC
-       BIT CASEFRAME
-       BPL .28
-.27    DEY
-       BMI .99
-       LDA LNL,Y
-       STA SOURCELIST,Y
-       JMP .27
-.99    LDY TEMP+3
-.28    LDA #0
-.29    DEY
-       BMI .3
-       STA LNL,Y    CLEAR FOR SOURCES
-       BPL .29
-* NOUNS IN SOURCELIST, LAST IN NL, LNL EMPTY
-.3     LDX SPN
-       BNE .6       PRECEDING PREP
-       LDY #19      1ST NOUN
-.4     LDA SOURCELIST,Y  MOVE SOURCELIST INTO NL & LNL
-       STA NOUNLIST,Y    FOR POSSIBLE COMBINE AFTER PREP NOUN
-       STA LNL,Y
-       DEY
-       BPL .4
-.45    RTS
-.6     CPX #NOTIN
-       BCS .8       SPECIAL PN
-       LDY #0
-       STY TEMPIND
-       STY TEMPIND+1
-.65    LDY TEMPIND
-       LDA SOURCELIST,Y
-       BEQ .45      NONE LEFT
-       INC TEMPIND
-       LDX SPN
-       JSR GETOBJ   A=OBJ,X=EDGE WE'RE LOOKING FOR
-       LDY TEMPIND+1
-.7     DEX
-       BMI .65
-       PLA
-       STA LNL,Y
-       INY
-       INC TEMPIND+1
-       BNE .7       ALWAYS
-.8
-TNRTS  RTS          IMPLEMENT .8 LATER
-TEMP3  .BS 3
-TEMPIND .BS 2
-UALL   .BS 1        1=OBJ IS ALL
-INLOC  .BS 1
-TPN    LDA WTYPE-1,X  USED IN TNOUN TO SEE IF THIS PN CAN BE A PM
-*THUS PM MUST BE 1ST TYPE
-       STA PTYPE
-       LDA WNOUN-1,X
-TP2    JMP CLRADJ   NEXT LINE STA SPN
-PTYPE  .BS 1
-TCONJ  LDA NTYPE
-       CMP #INSTR
-       BNE .1
-       PLA
-       PLA
-       JMP POI
-.1     CMP #DEST
-       BNE .2
-       PLA
-       PLA
-       JMP OD
-.2     CMP #EXCE
-       BNE .3
-       JSR EXCL
-       JMP .4
-.3     LDA #$FF
-       STA UCONJ    MARK CONJ USED
-       STA JUCONJ   JUST USED CONJ
-       JSR COMBINE
-       JSR CHECKOBJ
-       JSR NL.OL
-.4     LDA #0
-       BEQ TP2
-UCONJ  .BS 1        1=CONJ USED
-JUCONJ .BS 1
-TOBJ   LDA #OBJ
-       STA NTYPE
-       LDX NPSP
-       LDA #TLOBJ
-       STA NPSTACK,X
-       INX
-       LDA /TLOBJ
-       JMP TNP
-TLOBJ  JSR CHECKOBJ
-       JSR NL.OL
-       JSR COMBINE
-       STA JUCONJ
-* IF NOTHING LEFT AND A PN WAS GIVEN,LNL -> DEST IF ALLOWED
-       LDA NOUNLIST
-       BNE .9
-       LDA SPN
-       BNE .2       IF THERE WERE NO PN,COULDN'T BE A DEST
-.9     LDX TEMP3+1
-       LDA #0
-.0     STA OBJLIST,X  DELETE LAST NL.OL RESULTS
-       INX
-       CPX #20
-       BNE .0
-       JSR NL.OL
-       LDA OBJLIST
-       BEQ .24      RTS
-.1     LDA #3       JMP TO NODE 3
-       JMP OUTOFNP
-.2     LDA CASEFRAME+1  SEE IF DEST ALLOWED
-       AND #2
-       BEQ .23      NO
-       LDA SOURCELIST+1
-       BNE OD       MORE THAN 1 DEST
-       LDA OBJLIST
-       BNE .25      OBJLIST NOT EMPTY
-.23    LDA OBJS     WERE ALL OBJS ELIMINATED BEFORE COMBINE?
-.24    BEQ CARTS    YES,NO MORE MSG
-       LDY /NOBJ
-       LDA #NOBJ
-       JMP PS
-.25    LDA SOURCELIST
-       BEQ .5
-       JSR CHECKLOC
-       BCS .5
-       LDX PTYPE    SAVED BY TPN
-       CPX #PM
-       BNE .6       PN CAN'T BE PM
-       STA SDEST    MAKE LAST SOURCE THE DEST
-       LDX SPN
-       JSR CLCPNT   DEST POINTER IS OPPOSITE OF SOURCE POINTER
-       STA SPM
-       JMP .1
-.5     JMP DNS
-.6     JMP SENTFAIL
-OD     LDY /ODEST   >1 DEST
-       LDA #ODEST
-       JMP PS
-TINSTR LDA #INSTR
-       STA NTYPE
-       LDX NPSP
-       LDA #TLINSTR
-       STA NPSTACK,X
-       INX
-       LDA /TLINSTR
-TNP    STA NPSTACK,X
-       INX
-       STX NPSP
-       LDX #39
-       LDA #0
-.2     STA NOUNLIST,X  CLEAR NL & LNL
-       DEX
-       BPL .2
-       INC WORDS    MAKE SURE ATN COMES OUT OF NP
-CLRADJ STA SPN
-       LDA #0
-       STA SNUM
-       LDX #7
-.1     STA ADJLIST,X  ERASE OLD ADJS
-       DEX
-       BPL .1
-CARTS  RTS
-TLEAVENP PLA
-       PLA
-TLNP2  LDX NPSP     USED FROM ATN
-       DEX
-       LDA NPSTACK,X
-       STA .1+2
-       DEX
-       LDA NPSTACK,X
-       STA .1+1
-       STX NPSP
-       DEC WORDS    MAKE UP FOR INC ON WAY IN
-.1     JMP 0        JMP TO PROPER EXIT ROUTINE
-NTYPE  .BS 1
-TLINSTR JSR COMBINE
-       LDA NOUNLIST  SHOULD BE 1 INSTR
-       BEQ PALI
-       STA SINSTR
-       LDY NOUNLIST+1
-       BNE POI      BUT ONLY ONE
-       JSR CHECKLOC
-       BCC .3
-       LDA #.1
-       LDY /.1
-       BNE PPS
-.1     .US /I DON'T SEE ANY+/
-       .DA PRINS
-       .US / HERE!@=/
-.3     LDA #9       JMP TO NODE 9
-OUTOFNP LDX CURWORD
-       STA WORDNODE,X    JUMPING TO NODE Z, SO RETURN TO Z RATHER THAN NODE JUST LEFT (F)
-       JSR GETNODE
-       JMP A8
-PALI   LDA #PA2
-       LDY /PA2
-PPS    JMP PS
-PA2    .DA #"$,PLSP
-       .US /AN INSTRUMENT.@=/
-POI    LDA #.1
-       LDY /.1
-       BNE PPS
-.1     .DA #"$,PLSP
-       .US /ONLY ONE INSTRUMENT.@=/
-ODEST  .US /YOU CAN ONLY$/
-       .DA SP
-       .US /ONE DESTINATION.@=/
-NOBJ   .US /I SEE NO SUCH OBJECT.@=/
-SP     .US / SPECIFY =/
-PLSP   .US /PLEASE$/
-       .DA SP,#"=
=tsub
-*
-SAVETSUB16,S6,D1
-* TRANSITION SUBS
-* SEE IF ADJS ELIMINATE ANY NOUNS
-CHECKADJ STX TEMP3+2
-       CLC          IN CASE OF IMMEDIATE EXIT
-       LDX ADJLIST
-       BEQ .4
-       STY TEMP3
-       STA TEMP3+1
-       LDX #ADJEC
-       JSR GETOBJ   FIND ADJS
-       LDY #7
-.7     LDA ADJLIST,Y
-       BEQ .8
-       ORA #$80     SET HIBIT TO MARK AS UNMATCHED
-       STA ADJLIST,Y
-.8     DEY
-       BPL .7
-.0     DEX
-       BMI .3
-       PLA
-       ORA #$80
-       LDY #8
-.1     DEY
-       BMI .0
-       CMP ADJLIST,Y
-       BNE .1
-       AND #$7F     MARK AS MATCHED
-       STA ADJLIST,Y
-       JMP .0
-.3     LDY #8
-.35    DEY
-       BMI .38     ALL ADJS DELETED, NONE ELIMINATED NOUN
-       LDA ADJLIST,Y  NO ADJS SHOULD BE LEFT UNLESS NOT ATTACHED TO NOUN
-       BPL .35      MATCHED
-       SEC          NOUN ELIMINATED
-       .HS 90       BCC
-.38    CLC
-       LDY TEMP3
-       LDA TEMP3+1
-.4     LDX TEMP3+2
-       RTS
-*ELIMINATE SUBSET OBJS NOT IN ROOM
-*ENDLESS LOOP IF A IS IN B IS IN A
-* USED BY TRANSIT & CNDACT
-CHECKLOC STX TEMP3+1
-       STY TEMP3
-       PHA          SAVE OBJ
-.1     CMP ACLOC
-       BEQ .2
-       LDX #IN
-       JSR GETOBJ
-       DEX
-       BMI .3       NOT IN LOC
-       PLA          OBJ LAST OBJ IS IN
-       JMP .1       FIND OBJ THIS ONE IS IN
-.2     STA ILOC     LOC OBJ IS IN
-       CLC
-       .HS B0       BCS
-.3     SEC          NOT HERE,ELIM
-       PLA
-       LDX TEMP3+1
-       LDY TEMP3
-       RTS
-ILOC   .BS 1
-*-------------------------------
-* NL -> OBJLIST
-* WITHOUT ERASING OR DUPLICATING WHAT'S THERE
-NL.OL  LDY #0
-       LDX #$FF
-.1     INX
-       LDA OBJLIST,X  SEARCH FOR 1ST OPEN BYTE
-       BNE .1
-       STX TEMP3    INDEX TO NEXT FREE BYTE IN OBJLIST
-       STX TEMP3+1  IN CASE WE NEED TO DELETE NEW ADDITIONS
-* BECAUSE A COMBINE IN TLOBJ ELIMINATES THEM
-.2     LDA NOUNLIST,Y
-       BEQ .6       DONE
-       LDX TEMP3
-       BEQ .4       NO OBJS IN OBJLIST YET
-       DEX
-.3     CMP OBJLIST,X
-       BEQ .5       SKIP IF ALREADY IN OBJLIST
-       DEX
-       BPL .3
-       LDX TEMP3
-.4     STA OBJLIST,X
-       INC TEMP3
-.5     INY
-       CPY #20
-       BNE .2
-.6     RTS
-*-------------------------------
-* COMBINE NOUNLIST & LNL INTO NOUNLIST
-* DELETING OBJS NOT IN BOTH
-* USED TO ELIMINATE OBJS NOT IN SOURCE
-* ON EXIT A=0
-COMBINE LDA #2       2 PASSES
-       STA PASS
-.1     LDY #0
-.2     LDX LNL,Y
-       BNE .3       OBJECT FOUND
-.25    INY          SKIP BLANK
-       CPY #20
-       BNE .2
-       LDY #19
-       LDA #0
-       DEC PASS
-       BEQ CORTS
-.26    STA NOUNLIST,Y  ZERO NL TO MOVE LNL INTO IT
-       DEY
-       BPL .26
-       BMI .1
-.3     LDA PASS
-       LSR          LOW BIT -> C
-       TXA
-       BCS .5       2ND PASS
-       LDX #19      1ST PASS
-.4     CMP NOUNLIST,X
-       BEQ .25      LEAVE IT ALONE CAUSE IT'S IN BOTH LISTS
-       DEX
-       BPL .4
-       LDA #0
-       STA LNL,Y  DELETE
-       BEQ .25      ALWAYS
-.5     LDX #$FF
-       PHA
-.6     INX
-       LDA NOUNLIST,X
-       BNE .6
-       PLA
-       STA NOUNLIST,X
-       BNE .25      ALWAYS
-CORTS  RTS
-PASS   .BS 1
-*--------------------------------
-* CHECK OBJS FOR LOC & NUM
-* HAVE ALREADY BEEN CHECKED WI SOURCE
-* ELIMINATE UNQUALIFIED WI MESSAGE
-*SEE IF 0,1,OR MORE OBJS
-CHECKOBJ TSX
-       STX STEMP
-       LDA NOUNLIST
-       BNE CH2
-       LDA JUCONJ   DON'T PRINT ERRMSG TILL LAST CHECK OF NOUNLIST
-       ORA OBJLIST  OBJ LEFT FROM BEFORE CONJ?
-       BNE CORTS
-PLADNS PLA
-       PLA
-DNS    LDY /DONSEE
-       LDA #DONSEE
-       BIT CASEFRAME
-       BVS .53      OBJS IN ROOM PRMITTED?
-       LDY /NOTCAR  OBJS NOT IN ROOM,BUT SINCE VERB DOESN'T PERMIT
-       LDA #NOTCAR  OBJS IN ROOM,PRINT NOTCAR
-.53    JMP PS
-CH2    LDA NOUNLIST+1
-       ORA UCONJ    2 OBJS IF 2 IN NL OR ANOTHER TO COME AFT CONJ
-       STA TWOOBJ
-       JSR STNL
-       LDY #20
-       LDA #0
-.05    STA LOCLIST-1,Y
-       DEY
-       BNE .05
-* FOR EACH OBJ,RECURSIVELY FIND OBJ WHICH IT'S IN
-.10    STY NOTDONE
-.15    STY TEMPIND
-       LDA (TEMP+2),Y
-       BEQ .25
-       CMP ACLOC    DOESN'T MATTER IF LOC I'M IN IS IN SOMETHING ELSE
-       BEQ .20
-       CMP ACTOR    STOP RECURSION AT ME,THO ME IS IN (LOC)
-       BNE .19
-       LDA NOUNLIST,Y
-       CMP ACTOR    IS IT ME?
-       BEQ .16
-       LDA ACTOR    NO,LOC IS ME
-       BNE .20
-.16    LDA ACLOC    YES,LOC IS (LOC)
-       JMP .20
-.19    LDX #IN
-       JSR GETOBJ   FIND WHAT CURRENT OBJ IS IN
-       LDY TEMPIND
-       DEX
-       BMI .22      OBJ ISN'T IN ANYTHING
-       PLA
-       INC NOTDONE  FLAG:FOUND A PAPA OBJ
-.20    STA LOCLIST,Y  REP OBJ WITH OBJ IT'S IN
-.22    INY
-       CPY #20
-       BNE .15
-.25    LDA NOTDONE
-       BEQ CH30
-       LDA #LOCLIST
-       STA TEMP+2   ALL SUBSEQUENT TIMES THRU,READ FROM LOCLIST INSTEAD
-       LDA /LOCLIST
-       STA TEMP+3
-       LDY #0
-       BEQ .10
-*ELIMINATE OBJS NOT IN ALLOWED LOCATIONS (ABSENT,LOC, OR ACTOR)
-CH30   STY OBJS     #OBJS
-       DEY          HIGHEST INDEXED OBJ
-       STY TEMPIND
-       LDA CASEFRAME
-       BMI .60      ABSENT OBJS ALLOWED
-       LDA #9
-       STA ERRMSG   BLANK
-       LDA #0
-.35    LDX LOCLIST,Y
-       CPX ACLOC    IN LOC?
-       BEQ .40
-       CPX ACTOR    IN ME?
-       BEQ .40
-       JSR ELIM
-.37    STA NOUNLIST,Y  DELETE
-.40    DEY
-       BPL .35
-       LDA UALL
-       BEQ .60
-       LDX OBJS
-       DEX
-       BNE .60
-       LDA UCONJ
-       STA TWOOBJ   CHANGE IF OBJS FROM ALL HAVE BEEN ELIMINATED
-.60    BIT CASEFRAME
-       BVS .65      OBJS IN ROOM ALLOWED
-       LDA ACLOC
-       STA TEMPIND+1  SEE IF OBJS ARE IN (LOC)
-       LDA #1       NOTCAR
-       STA ERRMSG
-       JSR CLOC
-.65    LDA CASEFRAME
-       AND #$20
-       BNE .70      OBJS IN ME ALLOWED
-       LDA ACTOR
-       STA TEMPIND+1  SEE IF OBJS ARE IN ACTOR
-       LDA #0       CARR
-       STA ERRMSG
-       JSR CLOC
-.70    JSR COMP
-       LDY SNUM
-       BEQ CHL
-       CPY #21      MAX+1
-       BCC .83
-.95    LDY /NSM
-       LDA #NSM
-       JMP PS
-.83    DEY          INDEX STARTS AT 0
-       JSR STNL
-       LDA (TEMP+2),Y
-       BEQ .95      ?"I DON'T SEE THAT MANY" & CONT
-       LDA #0
-.85    INY
-       CPY #20
-       BCS CHL
-       STA (TEMP+2),Y
-       BCC .85      ALWAYS:FILLS IN REST OF NOUNLIST WI 00s
-       LDY #0
-CHL    LDA NOUNLIST,Y
-       BEQ COMP
-       JSR CHPROP
-       INY
-       CPY #20
-       BNE CHL
-*COMPRESS NOUNLIST:REMOVE 0'S
-COMP   LDY #0
-       LDX #0
-.1     LDA NOUNLIST,Y
-       STA NOUNLIST,X
-       BEQ .2       IF BLANK,DON'T INX,THUS REMOVING BYTE
-       INX
-.2     INY
-       CPY #20
-       BNE .1
-.3     INX
-       STA NOUNLIST,X
-       CPX #19
-       BNE .3
-       RTS
-* CHECK PROPERTIES OF 1 OBJ AGAINST VERB'S REQUIREMENTS
-CHPROP STY TEMP+3
-       STA TEMP+2
-       JSR PNTOBJ
-       JSR RESVDAT  RESET POINTER TO VERB DATA
-       LDA #2
-       STA ERRMSG
-       LDA CASEFRAME
-       ASL
-       ASL
-       ASL
-       ASL          BIT 4 -> C
-       BCC .10      NO LIST OF ALLOWED OBJS
-       PHA
-.3     JSR VDAT
-       TAY
-       BEQ .64      CAME TO END OF LIST WIOUT FINDINT IT
-       CMP TEMP+2
-       BNE .3
-.7     JSR VDAT
-       TAY
-       BNE .7       MOVE POINTER TO NEXT ITEM
-       PLA
-.10    ASL
-       BCC .20      NO LIST OF FORBIDDEN OBJS
-       PHA
-.13    JSR VDAT
-       CMP TEMP+2
-       BEQ .64      FORBIDDEN OBJ
-       TAY
-       BNE .13      NOT EOL
-       PLA
-.20    INC ERRMSG
-       ASL
-       BCS .30      HUMAN OBJ ALLOWED
-       PHA
-       LDY #5       PROP3
-       LDA (MISC),Y
-       AND #8
-       BNE .64      HUMAN,FORBIDDEN
-       PLA
-.30    INC ERRMSG
-       ASL
-       BCS .40      ANIMATE OBJ ALLOWED
-       PHA
-       LDY #5
-       LDA (MISC),Y
-       AND #$10
-       BNE .64      ANIMATE,FORBIDDEN
-       PLA
-.40    INC ERRMSG
-       ASL
-       BCS .50      INANIMATE OBJ ALLOWED
-       PHA
-       LDY #5
-       LDA (MISC),Y
-       AND #$10
-       BEQ .64      INANIMATE,FORBIDDEN
-       PLA
-.50    INC ERRMSG
-       LDA CASEFRAME+1
-       ASL
-       BCC .60
-       PHA
-       JSR VDAT     X
-       LDY #0       SIZE
-       CMP (MISC),Y
-       BCC .64      SIZE>X
-       PLA
-.60    INC ERRMSG
-       ASL
-       BCC .70
-       PHA
-       JSR VDAT     Y
-       LDY #0
-       CMP (MISC),Y
-       BCC .67
-.64    PLA          A WAS SAVED
-.65    JMP PELIM
-.67    PLA
-.70    ASL
-       BCC .80
-       PHA
-       JSR TBIT
-       BNE .64
-       PLA
-.80    ASL
-       BCS .90      BURNT/BROKEN PERMITTED
-       LDA #8
-       STA ERRMSG
-       LDY #5
-       LDA (MISC),Y
-       AND #$60
-       BNE .65
-.90    LDY TEMP+3
-       RTS
-* TEST BIT: ON EXIT Z=1 IFF ANY OF BITS ARE SET
-TBIT   LDY #2
-       STY ERRMSG
-.1     INY
-       JSR VDAT
-       TAX
-       BEQ .2
-       AND (MISC),Y
-       BNE .4       OR:SUCCESS IF ANY OF BITS IS SET
-.2     CPY #5
-       BNE .1
-       INY          Z<=0:3 BYTES WIOUT MATCHED PROP. FAILURE IF 3 00s.
-       RTS
-.3     INY
-       JSR VDAT     ADVANCE VDAT
-.4     CPY #5
-       BNE .3
-       RTS          Z=1
-*GET VERB DATA
-VDAT   LDA $FFFF    VERB DATA
-       INC VDAT+1
-       BNE .1
-       INC VDAT+2
-.1     RTS
-STNL   LDA #NOUNLIST
-       STA TEMP+2
-       LDX /NOUNLIST
-       STX TEMP+3
-       RTS
-* DELETE OBJS IN FORBIDDEN LOCS
-CLOC   LDY TEMPIND
-       LDA #0
-.1     LDX LOCLIST,Y
-       CPX TEMPIND+1     FORBIDDEN LOC?
-       BNE .2
-       JSR ELIM     ? MESSAGE
-.2     DEY
-       BPL .1
-       RTS
-NOTDONE .BS 1       1=STILL FINDING PAPA OBJECTS
-TWOOBJ .BS 1        0=1 OBJ IN NL
-OBJS   .BS 1        #OBJS
-DONSEE .US /I DON'T SEE ANY HERE.@=/
-NSM    .US /YOU DON'T SEE THAT MANY.@=/
-STEMP  .BS 1        TEMP STORAGE FOR STACK POINTER
-* SKIP OBJ DATA
-* 0-7F SKIP THAT MANY BYTES
-* 80+  LIST
-SKPOBJ LDA #$10     BPL
-SKP2   STA .7
-       JSR RESVDAT
-       LDY #18      19 BITS
-       LDA CASEFRAME+2
-       STA TEMP+3
-       LDA CASEFRAME+1
-       STA TEMP+2
-       LDA CASEFRAME
-.1     ASL TEMP+3
-       ROL TEMP+2
-       ROL
-       BCC .2
-       LDX SKPTAB,Y
-       BEQ .2       NO DATA
-       PHA
-       BMI .15
-.12    JSR VDAT
-       DEX
-       BNE .12
-       JMP .17
-.15    JSR VDAT     LIST
-       TAX
-       BNE .15
-.17    PLA
-.2     DEY
-.7     BPL .1       BNE POINTS VDAT AT VERB PARTS
-       RTS
-SKPTAB .HS FFFFFF000000FF00030101000000FFFF000000
-* ELIMINATE A NOUN FROM NLIST
-* IF MORE THAN 1 NOUN OR BEFORE CONJ,PRINT NAME OF NOUN BEFORE MESSAGE
-* & GO BACK FOR MORE. ELSE PRINT & QUIT.
-* ON ENTRY: Y POINTS TO OBJ IN NOUNLIST
-* SAVES Y,SCRAMBLES A&X
-PELIM  LDY TEMP+3   CALLED FROM CHPROP
-ELIM   STY TEMP+3
-       DEC OBJS     1 MORE GONE
-       LDA NMSG
-       BNE .17
-       LDA TWOOBJ
-       BEQ .1
-       LDA UALL
-       BEQ .12
-       LDA OBJS
-       BNE .17      ONLY PRINT LAST REJECT IN CASE OF ALL
-       BEQ .1
-.12    LDA NOUNLIST,Y    CAN'T LOAD FROM TEMP+2 SINCE CH30 CALLS ELIM
-       JSR OBJCOL
-.1     LDX ERRMSG
-       CPX #9
-       BNE .15
-       JSR DNS
-       JMP .17
-.15    LDY MSGS+9,X
-       LDA MSGS,X
-       JSR PS
-* WOULD SAVE BYTES HERE BY PRINTING CR, BUT NOTCAR IS USED BY ANOTHER
-.17    LDA OBJS     ANY LEFT?
-       ORA JUCONJ   MORE COMING?
-       BNE .3
-       LDX STEMP    ONLY 1 OBJ & IT WAS BLOWN. BACK TO CALLER.
-       TXS
-.3     LDY TEMP+3   MULT OBJS,RTS
-       LDA #0
-       STA NOUNLIST,Y  DELETE OBJ
-ELRTS  RTS
-ERRMSG .BS 1        MSG#
-NMSG   .BS 1        0=PRINT MSG
-* CHANGE MSGS+9 IF YOU CHANGE # MSGS
-MSGS   .DA #CAR,#NOTCAR,#.3,#.4,#.5,#.6,#.7,#.8,#IR
-       .DA /CAR,/NOTCAR,/.3,/.4,/.5,/.6,/.7,/.8,/IR
-.3     .DA #"$,.10,#"+,.9
-       .US /<.@=/  SKIPPED IF UALL
-.4     .DA #"$,.10
-       .US /A PERSON!@=/
-.5     .DA #"$,.10
-       .US /AN ANIMAL!@=/
-.6     .DA #"$,.10
-       .US /SOMETHING THAT'S NOT ALIVE!@=/
-.7     .DA #"$,.11
-       .US /BIG!@=/
-.8     .DA #"$,.11
-       .US /SMALL.@=/
-.9     LDA UALL
-       BEQ .20
-       LDA #.12-1   FOR ALL,DON'T PRINT LAST OBJ
-       LDX /.12-1
-       JMP SWPR
-.20    LDX TEMP+3
-       LDA NOUNLIST,X
-       STA $10
-       RTS
-.10    .US /YOU CAN'T +/
-       .DA PRVERB,#" ,#"=
-.11    .US /IT'S TOO =/
-.12    .US /ANYTHING HERE.@=/
-IR     .US /YOU CAN'T. IT'S RUINED.@=/
-CAR    .US /YOU'RE$/
-       .DA CI,#"=
-NOTCAR .US /YOU'RE NOT$/
-       .DA CI,#"=
-CI     .US / CARRYING IT.@=/
-*--------------------------------
-CHKLST LDY #40      NL & LNL
-       LDA #0
-.1     STA NOUNLIST-1,Y
-       DEY
-       BNE .1
-.2     JSR VDAT
-       TAX
-       BEQ .3       EOL
-       STA LNL,Y    PUT PERMITTED LIST IN LNL
-       INY
-       BNE .2       ALWAYS
-.3     RTS
-*CHECK SENT FOR REQRD PARTS
-CHECKSENT LDA CASEFRAME+1
-       LSR          DEST REQD?
-       BCC .1       NO
-       LDY SDEST    GIVEN?
-       BNE .1       YES
-       LDA #74      GIVE DEST!
-       JMP PMSG
-.1     AND #2       (4 BEFORE LSR) INSTR REQD?
-       ORA SINSTR   GIVEN?
-       BNE .8       YES
-       JMP CDEST
-.8     JSR CHKLST
-       LDA SINSTR
-       BEQ .40
-* CHECK INSTR
-       STA NOUNLIST
-       STA $10
-       JSR COMBINE
-       LDA NOUNLIST
-       BNE .32
-       LDY /.30
-       LDA #.30
-       JMP PS
-.32    JSR CINME
-       BEQ .55      IN ME
-       LDA SINSTR
-       JSR PNTOBJ   INEFFICIENT
-       LDY #3
-       LDA (MISC),Y
-       AND #$20
-       BNE .55      CAN'T CARRY LIQUID
-       LDA SINSTR
-       LDX #PARTOF
-       JSR GETOBJ
-       PLA
-       DEX
-       BPL .55      CAN USE INSTR WHICH IS PART WIOUT CARRYING IT
-* IE HANDS,HOSE,TEETH
-* USED TO PICK UP INSTRUMENT.  BUT THIS CAUSED PROBLEMS WITH
-* RESTRICTIONS (IE OWNERSHIP).
-       PHA
-       LDA #131     YOU DON'T HAVE >
-       JMP PMSG
-* INSTR REQD, NOT GIVEN
-* PUT OBJS IN ME IN NL & INSTRLIST IN LNL, THEN COMBINE
-.40    LDA #ME
-       LDX #HOLDS
-       JSR GETOBJ
-.45    DEX
-       BMI .50
-       PLA
-       STA NOUNLIST,X
-       BNE .45      ALWAYS
-.50    JSR COMBINE
-       LDA NOUNLIST+1
-       BEQ .51
-.60    LDA #73      WITH WHAT?
-       JMP PMSG
-.51    LDA NOUNLIST
-       BEQ .60
-       STA SINSTR
-       LDY /.70
-       LDA #.70
-.54    JSR PRINT
-.55    LDA SINSTR
-       JSR PNTOBJ
-       LDY #5
-       LDA (MISC),Y
-       AND #$60     BURNT OR BROKEN?
-.58    BEQ CDEST
-       LDA #IR
-       LDY /IR
-       JMP PS
-.30    .US /YOU CAN'T +/
-       .DA PRVERB
-       .US / WITH <!@=/
-.70    .US /(WITH+/
-       .DA PRINS,#"),#"@,#"=
-PRINS  LDA SINSTR
-PIT    PHA
-       STY $24
-       LDA #$A0
-       JSR FDF0     SPACE LEFT OUT OF STRING SO A COULD BE IN ANYTHING
-       LDA $1A
-       STA $50
-       LDA $1B
-       STA $51
-       PLA
-       JSR PROBJ
-       LDA $50
-       LDX $51
-SWPR   STA $1A
-       STX $1B
-       RTS
-CDEST  LDA CASEFRAME+2
-       BPL .10      NO DESTLIST
-       JSR CHKLST   ADVANCE VDAT
-       LDA SDEST
-       BEQ .10      NO DEST
-       STA NOUNLIST
-       JSR COMBINE
-       LDA NOUNLIST DEST IN DESTLIST?
-       BNE .10      Y
-       LDA #108     USE A DIFFERENT DEST
-.8     JMP PMSG
-.10    LDA CASEFRAME+2
-       ASL
-       BPL .20      NO PREPLIST
-       JSR CHKLST
-       LDA SPM
-       BEQ .20      NO PREP (UNLIKELY)
-       STA NOUNLIST
-       JSR COMBINE
-       LDA #109     TRY A DIF PREP
-       LDX NOUNLIST PREP IN PREPLIST?
-       BEQ .8       N
-.20    LDA CASEFRAME+2
-       AND #$10
-       BEQ HANDLER  VERB PART N/R
-       LDA #113     THAT VERB NEEDS TWO PARTS
-       LDX PFND
-       BEQ .8
-* FALL THRU TO HANDLER
=verbs
-*
-SAVEVERBS33.1,S6,D2
-TATT   .DA FBULB,CAMERA,TO,#FBULB,#ON,#CAMERA
-TBRE   .DA #71,#$80,0,#BAR,#GUN,#HANDS,#HOSE,TEETH,#OBJIS,#BULB1,#$80,#OBJIS,#BULB2,#AMSG,#147,#SKIP,#$80,#JSR+$40,.1,#AMSG,#94,#SKIP,#$80,#NULL,#AZBIT,#VOBJ,#$FF,$FFBF,#0,#VOBJ,#ADJEC,#BROKEN,0,#$40
-.1     LDA SINSTR
-       STA $10
-       JSR PNTOBJ
-       LDY #0       SIZE
-       LDA (MISC),Y
-       PHA
-       LDA CUROBJ
-       JSR PNTOBJ
-       LDY #0       SIZE
-       PLA
-       LSR          DIV BY 2
-       CMP (MISC),Y
-       TYA          Z=1
-       BCS .2       INSTRSIZE/2>=OBJSIZE
-       DEY
-.2     RTS
-TBRU   .DA #TEETH,CAV,TBRUSH,#ZERO,CAVFORM,#0,#ZERO,CAVFORM+1,#AMSG,#19,#ELSE,#POKE,CAVFORM+1,/18*60,#UPSCR,#2,#AMSG,20
-TBUR   .DA #$40,0,TC,#VOBJ,#ADJEC,#BURNT,0,#$20  WAS MATCHES
-TCHEC  .DA #BOOK1,#BOOK2,#BOOK3,BOOK4,#OUT,CHEOUT
-TCHEOUT .DA #BOOK1,#BOOK2,#BOOK3,BOOK4,#BITSET,VOBJ,$40,#AMSG,#79,#SKIP,#$80,#LOCIS+$40,#LIBR1,#AMSG,#95,#SKIP,#$80,#PEEK,BCNT,#2,#AMSG,#80,#SKIP,#ELSE,#AINC,BCNT,#$80,#OBJIS,#BOOK2,#AMSG,81,#0,$40
-TCHEW  .DA #$10,0,#PRIMED,#AMSG,#6,#$80,#NULL,#AMSG,22
-TCLE   .DA #CLOTH,#HANDS,ME,#71,#SOAP1,#SOAP2,#WATER,#WATER+1,#WATER+2,#WATER+3,WATER+4,#VOBJ,#ADJEC,#CLEAN
-TCLI   .DA #IN,ON,#SLOTIS,#VDEST,#SHELF,#UPSCR,3,#VACT,#IN,#VDEST
-TCLOS  .DA #4,0,OC,$DFFF,#$FF
-TCLOT  .DA CLOTH,#OBJIS,#ME,#DO,#ME,#WEA,#VINSTR,0,0,#ELSE,#AMSG,76
-TCOM   .DA COMB,#OBJIS,#VACT,#AMSG,#36,#ELSE,#AMSG,76
-TCUT   .DA ID,TC,#VOBJ,#ADJEC,#BROKEN,0,#$40  LEFTOVER
-TD     .DA HD
-TDAM   .DA ME,#NULL,#AMSG,#250,#AINC,.2,#$80,#PEEK,.2,#3,#AINC,GAMOVR,#AJSR,.5,#0
-.2     .BS 1        # OF CUSSES (NOT SAVED)
-* SCARE FOUL-MOUTHED PLAYER
-.5     LDY #0
-       STY .2
-       STY BUF
-       STY MISC
-       STY CMND     SEEK
-       STY SECT
-       LDA #2
-       STA BUF+1
-.7     LDA .10,Y
-       STA TRACK
-       JSR RWTS
-       INC MISC
-       LDY MISC
-       CPY #6
-       BCC .7
-       RTS
-.10    .DA #0,#15,#30,#10,#11,#12
-TDEB   .DA HDEB
-TDEV   .DA FILM,#NULL,#AMSG,23
-TDIE   .DA #NULL,#AMSG,24
-TDRIB  .DA BALL
-TDRI   .DA #$20,0,#BITSET,#VOBJ,#$10,0,#GOTO,TEA2
-TDR2   .DA #$80,#PRIMED,#AMSG,#6,#POKE,POISON,#7,#$80,#OBJIS+$40,#RUM,#GOTO,.2,#$80,ACTME,#ZERO+$40,AD,#AMSG,#2,#GOTO,SLP,#ELSE,#AMSG,#137,#POKE,FLACT,#VACT,#POKE,FL,#14,#AREP,#VACT,#ADJEC,#DRUNK,#AZBIT,#VACT,$FFFF,#$FE
-.2     .DA #0,HSWA
-TDRO   .DA #NULL,#AREP,#VOBJ,#IN,#VLOC,#$80,#ZERO+$40,SDEST,#DO,#VACT,#PUT,#VOBJ,#VPM,#VDEST,0,#$80,#OBJIS,#BALL,#ASBIT,#BALL,0,1
-TDRY   .DA #WATER,#WATER+1,#WATER+2,#WATER+3,WATER+4,#90,TOWEL,#ISEDG+$40,#VOBJ,#ADJEC,#WET,#AMSG,25,#VOBJ,#ADJEC,#WET
-TDUM   .DA #MGET+1,#BITSET,#VOBJ,4,0,#BITSET+$40,VOBJ,$20,#AMSG,#1,#SKIP,#$80,#ISEDG+$40,#VOBJ,#HOLDS,#VX,#AMSG,#92,#SKIP
-.1     .DA #$80,#BITSET,#VX,$20,#0,#POKE,$10,#VX,#AMSG,#105,#DELIT,#VX,#ELSE,#AREP,#VX,#IN,#VLOC,#$80,#ISEDG,#VX,#IN,#VOBJ,#SKIP,#ELSE,#UNBIND,#$80,#ISEDG,#VOBJ,#HOLDS,#VX,#GOTO,.1,#0
-TDUN   .DA BALL,#14,#HOOP1,HOOP2,IN,#LOCIS,#GYM1,#$80,#LOCIS,#GYM2,#AMSG,#27,#ELSE,#AMSG,26
-TE     .DA HE
-* PRIMED=POISON
-TEAT   .DA #$10,0,#NULL,#NOTH
-TEA2   .DA #$80,#PRIMED,#AMSG,#6,#POKE,POISON,#7,#$80,#OBJIS,#POWDER,#GOTO,.1,#$80,#OBJIS+$40,#FOOD2,#GOTO,.2,#$80,#PEEK,INP,#SALT,#AMSG,#144,#SKIP,#$80,#PEEK,INP,#SUGAR,#AMSG,#145,#ELSE
-.1     .DA #POKE,TIRED,#7,#POKE,TIRED+1,#0,#AINC,AD
-.2     .DA #0,HEAT
-TELL   .DA #NULL,#POKE,ELOP,$EA
-TEND   .DA GAME,#NULL,#AINC,GAMOVR,#0
-TERA   .DA ARR,#NULL,#DELIT,ARR
-TEXA   .DA #BITSET,VOBJ,$800,#DO,#VOBJ,IV,0,0,#$80,#OBJIS,#FBULB,#AJSR,.1,#$80,#OBJIS,PAN1,#BITSET,#PAN1,0,#$80,#AMSG,#28,#$80,#OBJIS,TC,#BITSET,TC,$20,#AMSG,218,HEXA
-.1     LDA #FBULB
-       JSR PNTOBJ
-       LDY #4
-       LDA (MISC),Y
-       AND #7
-       STA $50
-       LDA #0
-       STA $51
-       RTS          MSG PRINTED BY HEXA
-TEXI   .DA HEXI
-TEXT   .DA #WATER,#WATER+1,#WATER+2,#WATER+3,WATER+4,#BITSET,#VOBJ,0,#$20,#AMSG,#19,#ELSE,#AMSG,33
-* JSR GTIME 2* AS OFTEN
-TFAS   .DA .1
-.1     ASL TR       TR=TR*2
-       BNE .2
-       ROR TR       DON'T SHIFT 1 BIT OUT & GET 0
-.2     RTS
-TFIL   .DA #0,8,#WATER,#WATER+1,#WATER+2,#WATER+3,WATER+4,#VINSTR,#IN,#VOBJ
-* CAN'T USE BIT REP SINCE ME MUST THEN PICK LIQUID UP
-TFIN   .DA #INME,#VOBJ,#AMSG,#124,#SKIP,#$80,#INROOM,#VOBJ,#AMSG,#125,#ELSE,#AMSG,126
-TFLU   .DA #TOILET1,TOILET2,#NULL,#AMSG,#110
-.1     .DA #UNBIND,#$80,#ISEDG,#VOBJ,#HOLDS,#VX,#DELIT,#VX,#GOTO,.1,#0,#$FF,$FFBF
-TFOL   .DA #ACTME,#AMSG,#185,#SKIP,#$80,#OBJIS+$40,#ME,#$80,#SLOTIS,#VACT,#LIB,#$80,#SLOTIS,#VACT,#MARK,#POKE,$10,#VACT,#AMSG,#154,#SKIP
-       .DA #$80,#ZERO+$40,SCRIM,#GOTO,.5,#$80,#SLOTIS,#VACT,#PROF,#$80,#SLOTIS,#VACT,#PRIS1,#AMSG,#188,#ELSE
-.5     .DA #POKE,SFL,#2,#SPAWN,#VACT,#PFOL,VOBJ
-MGET   .EQ 22
-TGET   .DA #MGET,#OFF,REM,#OBJWASIN,#VACT,#AMSG,#124,#$80,#ACTME+$40,#ADEL,#VACT,#OWNS,#VOBJ,#AMAK,#VACT,#OWNS,#VOBJ,#$80,#ISEDG,#VACT,#ON,#VOBJ,#AMSG,#35,#AREP,#VOBJ,#IN,#VLOC,SKIP,$FFFF,#$FE  ASSUMES OBJ YOU'RE SITTING IN WAS IN ROOM
-* SIMULATES REJECTION FOR CARRYING OBJ
-* SEPARATE HANDLING BECAUSE YOU CAN GET AN OBJ IN AN OBJ IN ME
-TGIV   .DA #MGET,TO,#VACT,#OWNS,#VOBJ,#VOBJ,#IN,#VDEST
-TGO    .DA #71,IN,HGO,#VACT,#IN,#VDEST
-THEA   .DA #OBJIS,#TAPE1,#$80,#OBJIS,#TAPE2,#GOTO,.1,#0,.2
-.1     .DA #$80,#OBJIN+$40,#RECOR,#AMSG,#63,#SKIP,#$80,#BITSET+$40,#VOBJ,#0,$40,#AMSG,#37,#SKIP,#ELSE,#AZBIT,#VOBJ,#$FF,$FFBF,#$80,#OBJIS,#TAPE1,#AMSG,#38,#$80,#OBJIS,#TAPE2,#UPSCR,#7,#AMSG,39,TRTS
-.3     .US /I'LL TELL YOU IF IT SAYS ANYTHING.@=/
-.2     LDY /.3
-       LDA #.3
-PSNOK  JSR PS
-       JMP NOK
-THEL   .DA ME,#POWDER,TAPE2,.1
-.1     LDA SCORE
-       BNE .3
-       LDA #.2
-       LDY /.2
-       BNE PSNOK
-.2     .US /TALK TO %MARK. HE WANTS TO HELP YOU.@=/
-.3     LDA HOUR
-       CMP #9+12
-       BNE .5
-       LDA #.4
-       LDY /.4
-       JSR PS
-.5     LDA DAY
-       CMP #21
-       BEQ .6
-       LDA KSC+4    PUSHED PANEL?
-       BNE .6       YES
-       LDA #.7
-       LDY /.7
-       JSR PS
-.6     JSR INLINE
-       .DA TRTS,#SLOTIS,#VINSTR,#POWDER,#AMSG,#173,#$80,#SLOTIS,#VINSTR,#TAPE2,#AMSG,#63,#$80,#LOCIS,#SHELF,#AMSG,#174,#$80,#LOCIS,#CRAWL1,#AMSG,#175,#$80,#LOCIS,#BATH1,#$80,#LOCIS,#BATH2,#AMSG,#181,#SKIP
-       .DA #$80,#INME,BOARD,#ISEDG,#MAG,#PARTOF,#BOARD,#AMSG,#219,#$80,#LOCIS,STAIR4,#ISEDG+$40,#MAG,#ON,#TC,#AMSG,#217,#$80,#LOCIS,#OPER,#AMSG,#182,#$80,#LOCIS,#RECR,#AMSG,#210,#$80,#LOCIS,MACH,#ZERO+$40,SCREAM,#AMSG,#176
-       .DA #$80,#LOCIS,OFFI,#ZERO+$40,KSC+6,#AMSG,#177,#$80,#LOCIS+$40,#CELL,#AMSG,#180,#SKIP,#$80,#INROOM,#GUN,#AMSG,#178,#ELSE,#AMSG,179
-.4     .US /YOU'D BETTER GET TO BED.@=/
-.7     .US /YOU'D BEST START LOOKING HIGH AND LOW FOR A WAY OUT.@=/
-THIT   .DA #BAR,#GUN,#HOSE,HANDS,#BITSET,#VOBJ,0,#$10,#DO,#VACT,#KIL,#VOBJ,0,VINSTR,#ELSE,#DO,#VACT,#BRE,#VOBJ,0,VINSTR,#0
-TI     .DA HI
-TJUM   .DA #LOCIS,#STAIR1,#$80,#LOCIS,#STAIR2,#$80,#LOCIS,#STAIR4,#AMSG,#43,#AINC,GAMOVR,#ELSE,#AMSG,120
-TKIL   .DA #BAR,#GUN,#HOSE,#HANDS
-.1     .DA #0,#SLOTIS,#VINSTR,#GUN,#DO,#VACT,#SHOO,#VOBJ,0,VINSTR,#GOTO,.1,#$80,#OBJIS,#PRIS1,#$80,#OBJIS,#PRIS2,#$80,#OBJIS,#PRIS3,#$80,#OBJIS,#PROF,#DESTR,#VOBJ,#AMSG,#46,#SKIP
-       .DA #$80,#JSR,IMP,#AMSG,#204,#SKIP,#$80,#LOCIS+$40,#OFFI,#AMSG,#44,#GOTO,NABBED,#ELSE,#AMSG,#162
-SLP    .DA #POKE,TIRED,#0,#POKE,TIRED+1,#0,#SPAWN,#ME,PDRM,#DO,#ME,SLE,0,0,#POKE,TREP,1  CLOCK CAN'T REACH 10 BEFORE DO IS EXECUTED
-       .DA HSWA     SO TEA2 CAN GOTO SLP
-NABBED .DA #$80,#ZERO+$40,SINSTR,#0,#SLOTIS+$40,#VINSTR,#HANDS,#AREP,#VINSTR,#IN,#GUARD,#$80,#LOCIS+$40,#OFFI,#MOVETO,#OFFI,#AREP,#MARK,#IN,OFFI
-TLIG   .DA #8,0,#BITSET,VOBJ,$20,#AMSG,#47,#SKIP,#$80,#ITIN+$40,#BATT1,FLASH,#ITIN+$40,#BATT2,#FLASH,#AMSG,#100,#SKIP,#$80,#ISEDG,#FLASH,#HOLDS,VX,#BITSET+$40,VX,$40,#AMSG,#101,SKIP,#VOBJ,#ADJEC,#LIT,#0,$40
-TLOA   .DA GAME,HLOA
-TLOC   .DA #BOTT,#BOX,#CAMERA,#FAUC1,#FAUC2,#FAUC3,#FLASH,#TOILET1,TOILET2,#4,0,#KEY1,#KEY2,KEY3,#BITSET,#VOBJ,#0,$20,#AJSR,.1,#AZBIT,#VOBJ,$DFFF,#$FF,#$80,#ISEDG+$40,#VINSTR,#UNLOCKS,#VOBJ,#AMSG,#48,SKIP,$EFFF,#$FF
-.1     LDA #12      (CLOSED)
-       JMP PADJ
-TLOO   .DA #IN,#ON,#UNDER,THRU,.1
-.1     JSR NOK
-.12    LDA LIGHT
-       BNE .15
-       JMP PLOC     IT'S DARK!
-.15    LDA WTFIN    CAN'T DO THIS IN SPCACT SINCE PRLOC USES VDAT
-       CMP #VI
-       BNE .2
-       JMP PRLOC
-.2     LDX SPM
-       BNE .21
-       LDA #61      HUH? (LOOK N)
-       JMP PMSG
-.21    LDA SDEST
-       CMP LOC      ONLY I LOOK
-       BEQ .25      CAN SEE IN LOC EVEN IF CLOSED (IE CLOSET)
-       CPX #IN
-       BNE .23
-       PHA
-       JSR PNTOBJ
-       LDY #3
-       LDA (MISC),Y
-       AND #4       OPENABLE?
-       BEQ .24      NO
-       INY
-       LDA (MISC),Y
-       BMI .24      TRANSPARENT
-       AND #$20
-       BNE .24      OPEN
-       PLA
-       JMP IC
-.24    PLA
-.23    PHA
-       JSR FINDO
-       PLA
-       BCC .25      CAN REACH IT
-       RTS
-.25    LDX SPM
-       CPX #THRU
-       BEQ .8
-       PHA
-       JSR CLCPNT   INVERT PREP
-       TAX
-       PLA
-       JSR GETOBJ
-       DEX
-       BPL .4
-.3     LDX SPM
-       CPX #IN
-       BNE .37
-       LDA SDEST
-       CMP #TOILET1
-       BEQ .34
-       CMP #TOILET2
-       BNE .37
-.34    JSR PNTOBJ
-       LDY #4
-       LDA (MISC),Y
-       AND #$40
-       BEQ .37
-       LDA #111     IT'S BEEN USED.
-       .HS 2C       BIT
-.37    LDA #92      THERE'S NOTHING THERE
-       JMP PMSG
-.4     LDA #0
-       STA TEMP+2
-       STX TEMP+1   PROBJ USES TEMP
-.5     PLA
-       STA $10
-       LDY SPM
-       CPY #IN
-       BNE .55      ONLY IN CAN'T DISPLAY INVISIBLE OBJS
-       JSR PNTOBJ
-       LDY #5
-       LDA (MISC),Y
-       BMI .7       INVISIBLE
-.55    CLC
-       LDA TEMP+2   0 OR 1
-       BNE .6
-       INC TEMP+2
-.6     ADC #29      YOU SEE A,AND A
-       JSR PADJ
-.7     DEC TEMP+1
-       BPL .5
-       LDA TEMP+2
-       BEQ .3       ALL INVISIBLE
-       JMP PR       .<CR>
-*8     CMP #WINDOW
-*      BNE .9
-.8     LDA #93      YOU CAN'T LOOK THRU THAT!  (NOTHING IN INMATE)
-       JMP PMSG
-TLOW   .DA #NULL,#ADEC,LWC,#0
-TMOV   .DA #MPUS,#ZERO+$40,SDEST,#0,#ZERO,OBJLIST+1,#DO,#VACT,#PUT,#VOBJ,#SPM,#SDEST,0,#$80,#ITIN,#VOBJ,#VX,#AREP,#VOBJ,#IN,#GYM1,#AREP,#VOBJ,#IN,#VX,#$80
-       .DA #OBJIS,PAN1,#ZERO,SC,#UPSCR,#4,#AMSG,#49,#MAKVIS,#PAN1,#CHMAP,#SHELF,#UP,#CRAWL1,#AREP,#PAN1,#IN,#CRAWL1,#$80,#OBJIS,#BAR,#AINC,BARREM,#UPSCR,5
-TN     .DA HN
-TNOD   .DA HNOD
-TNOE   .DA #NULL,#POKE,ELOP,$88  DEY
-TOPE   .DA #4,0,#KEY1,#KEY2,KEY3,#ZERO+$40,SINSTR,#0,#ISEDG,#VINSTR,#UNLOCKS,#VOBJ,#ASBIT,#VOBJ,#0,$10,#$80,#BITSET+$40,#VOBJ,#0,$10,#AMSG,#50,#SKIP
-       .DA #$80,#OBJIS,DOOR1,#ZERO,BARREM,#AMSG,#91,#SKIP,#$80,#OBJIS,#DOOR1,#UPSCR,#5,#$80,#OBJIS,#FLASH,#DO,#VACT,#UNLI,FLASH,0,#0
-       .DA #$80,#OBJIS+$40,#TC,#GOTO,.0,#$80,#ISEDG,#MAG,#ON,#TC,#UPSCR,#18,#ELSE,#AMSG,#216,#POKE,MT,#3
-.0     .DA #0,.1,$2000,#0
-* OBJS WHICH CONNECT LOCS WHEN OPEN
-.1     LDA #$FF     OPEN
-       .HS 2C       BIT
-OC     LDA #0       CLOSE
-       STA .7
-* CHECK TIME DOORS LEFT OPEN
-       LDY #3
-       LDA CUROBJ
-.12    DEY
-       BMI .18
-.15    CMP .8,Y
-       BNE .12
-       TYA
-       ASL          2 BYTES/TIMER
-       TAY
-       LDA .7
-       BEQ .16      CLOSE
-       LDA #30
-.16    STA DT,Y
-.18    LDY #6       #"DOORS"-1
-       LDA CUROBJ
-.2     CMP .5,Y
-       BEQ .3
-       DEY
-       BPL .2
-       RTS
-.3     TYA
-       ASL
-       ASL
-       TAY
-       LDA .6+3,Y
-       PHA
-       AND .7       0 IF CLOSING
-       TAX
-       LDA .6+2,Y   DIR FOR NEXT CHM
-       PHA
-       LDA .6,Y
-       PHA
-       LDA .6+1,Y
-       TAY
-       PLA
-       PHA
-       JSR CHM
-       PLA
-       AND .7
-       TAX
-       PLA
-       TAY
-       PLA
-       JMP CHM
-.7     .BS 1        0=CLOSE,FF=OPEN
-.8     .DA #DOOR3,#DOOR5,#DOOR6
-.5     .DA #CLOSET,#DOOR1,#DOOR2,#DOOR3,#DOOR5,#DOOR6,#DOOR7  DOOR4 CAN ONLY BE BROKEN
-.6     .DA #CLOSET,#EAST,#WEST,#RECR,#STAIR1,#UP,#DOWN,#STAIR3,#HALL2,#WEST,#EAST,#HALL4,#HALL2,#SOUTH,#NORTH,#STAIR4,#CAFE,#NORTH,#SOUTH,#KITCH,#STAIR3,#NORTH,#SOUTH,#FR,#CELL,#SOUTH,#NORTH,#HALL12
-TPHO   .DA CAMERA,#ISEDG+$40,#FBULB,#ON,#CAMERA,#$80,#BITSET,#FBULB,0,#$40,#AMSG,#89,#SKIP,#$80,#CZ,#FBULB,#AMSG,#90,#SKIP,#$80
-       .DA #ZERO,LIGHT,#ASBIT,#FBULB,#8,$40,#AJSR,DISPLAY,#AZBIT,#FBULB,#$F7,$FFBF,#$80,#NULL,#DECC,#FBULB,#$80,#BITSET,#VOBJ,0,#$10,#AMSG,#128,#POKE,FLACT,#VOBJ,#POKE,FL,#5,#$80,#OBJIS,#MARK,#UPSCR,6
-TPIC   .DA #UV,GET
-TPLA   .DA #TAPE1,#TAPE2,#BALL,PONG,#RECOR,#ED,MRS,RECOR,IN,#OBJIS,#TAPE1,#$80,#OBJIS,#TAPE2,#AJSR,NOK,#DO,#VACT,#HEA,#VOBJ,0,0
-       .DA #$80,#OBJIS,BALL,#LOCIS+$40,GYM1,#LOCIS+$40,#GYM2,#AJSR,CVH,#$80,#OBJIS,#BALL,#AMSG,#51,#$80,#OBJIS,PONG,#ZERO+$40,SINSTR,#AMSG,52
-CVH    LDY /.1
-       LDA #.1
-       JMP PSNOK
-.1     .US /YOU CAN'T +/
-       .DA PRVERB
-       .US / HERE!@=/
-TPOK   .DA HANDS,#OBJIS+$40,#ME,#AJSR,.1,#0
-.1     LDY /.2
-       LDA #.2
-       JMP PS
-.2     .DA #">,#" ,#"+,PRVERB
-       .US /S YOU BACK.@=/
-TPOU   .DA $20,#0,#IN,ON,#ZERO,SDEST,#AMSG,#105,#DELIT,#VOBJ,#SKIP,#ELSE,#AREP,#VOBJ,#VPM,VDEST
-TPRY   .DA MAG,#COMB,#KEY1,SCREW,#OFF,#PRY,#OUT,PRY,#VOBJ,PARTOF,$FFFF,#$7F
-MPUS   .EQ 25
-TPUS   .DA #MPUS,#OBJIS,#PAN1,#$80,#OBJIS,#RUG,#DO,#VACT,#MOV,#VOBJ,0,0,#$80,#OBJIS,#DBUT,#ASBIT,DOOR1,$10,#AMSG,#53,#$80,#OBJIS,#WBUT,#AJSR,.5,#$80,#BITSET,VOBJ,$40,#AMSG,76
-.5     LDA WB
-       EOR #$FF
-       STA WB
-       RTS
-TPUT   .DA #MPUS,#DV,#DRO,#OUT,UNLI,#SLOTIS+$40,#VDEST,VENT1,#SLOTIS+$40,#VDEST,#VENT2,#NOTH,#ELSE,#DO,#VACT,#PV,#VOBJ,#VPM,VDEST,0,#VOBJ,#VPM,#VDEST
-TPV    .DA #SLOTIS+$40,#VPM,#IN,#SKIP,#$80,#ISEDG,#VDEST,#PART,VX,#JSR+$40,.1,#AMSG,#104,#AREP,#VOBJ,#IN,#ME,#SKIP,#$80,#SLOTIS,#VDEST,#VENT2,#GOTO,.0
-       .DA #$80,#OBJIS,#TOWEL,#$80,#ITIN,#TOWEL,#VENT2,#AREP,#VOBJ,#IN,#VENT2,#AMSG,#214,#UPSCR,#19,#ELSE,#AMSG,#103,#DELIT,#VOBJ,#AINC,GT
-.0     .DA #0
-.1     LDA CUROBJ
-       JSR PNTOBJ
-       LDY #0       SIZE
-       LDA (MISC),Y
-       TAY
-       DEY
-TPRTS  RTS          Z=1 IF SIZE=1
-TREA   .DA #2,0,#JSR,.30,#SKIP,#$80,#OBJIS,#CLOCK,#AJSR,.1,#SKIP,#$80,#OBJIS,#WATCH,#AJSR,.0,#ELSE,#AJSR,.50,#$80,#OBJIS,ID,#INROOM,#PRIS1,#UPSCR,#10,#AMSG,#85,#ADEL,#PRIS1,#ADJEC,#OLD,#ASWI,#PRIS1,PROF
-.30    JSR NOK
-       LDA LIGHT
-       BNE .40
-       JSR PLOC     IT'S DARK
-       LDA #0       SUCCEED (TO FAIL)
-.40    RTS
-.50    LDY #$FF
-.55    INY
-       LDA .80,Y    OBJ
-       BEQ TPRTS    NO MSG FOR OBJ
-       CMP CUROBJ
-       BNE .55
-       LDA .90,Y    MSG#
-       BNE PMNOK    ALWAYS
-.80    .DA #BOOK1,#BOOK2,#BOOK3,#BOOK4,#DB,#FILE1,#FILE2,#FILE3,#FILE4,#GRAF,ID
-.90    .DA #57,#58,#59,#60,#87,#164,#165,#166,#167,#252,#84
-.0     LDA WB
-       BNE PDAT
-.1     LDA #27
-       JSR PADJ     THE
-       LDA CUROBJ
-       JSR POBJ
-       LDA #0
-       STA $51
-       LDA HOUR
-       BNE .2
-       LDA #12      0=AFTER MIDNIGHT
-.2     CMP #13
-       BCC .3
-       SBC #12
-.3     STA $50
-       LDA #0       SAYS IT IS /:
-       JSR POBJ     NO CAPS
-       LDA MINUTE
-       STA $50
-       CMP #10
-       BCS WP35
-       LDA #"0
-       JSR COUT
-       INC $24
-WP35   LDA #54
-PMNOK  JSR PMSG
-       JMP NOK
-PDAT   LDA #0
-       STA $51
-       LDA MONTH
-       STA $50
-       LDA #28      THE WATCH SAYS /
-       JSR PADJ
-       LDA DAY
-       STA $50
-       BNE WP35     ALWAYS
-TREC   .DA #TAPE1,TAPE2,ON,#NULL,#AMSG,62
-TREM   .DA #MGET,#ISEDG+$40,#VOBJ,#ON,VACT,#ITIN,#VOBJ,VX,#ITIN,#VX,#VY,#AREP,#VOBJ,#IN,#VY,SKIP,#VOBJ,#IN,#VACT
-* NOTE REMOVE PUTS OBJS IN ROOM IN ME - THAT'S NOT A BUG, IT'S A FEATURE!
-TRET   .DA #BOOK1,#BOOK2,#BOOK3,BOOK4,#LOCIS+$40,#LIBR1,#AMSG,#95,#SKIP,#ELSE,#AMSG,#98,#$80,#BITSET,#VOBJ,#0,$40,#ADEC,BCNT,#$80,#OBJIS,#BOOK2,#DELIT,#BOOK2,#ELSE,#AREP,#VOBJ,#IN,SHELF,#$FF,$FFBF
-TREW   .DA #TAPE1,TAPE2,RECOR,#ISEDG+$40,#VOBJ,#IN,#RECOR,#AMSG,#63,SKIP,#0,$40
-TRIP   .DA #FILE1,#FILE2,#FILE3,FILE4,#UV,RIP,#VOBJ,IN
+ END OF ARCHIVE
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads