changeset 2559:df7a31c0f085

Updated
author boisy
date Thu, 09 Sep 2010 14:08:24 +0000
parents 5b465ca3ba67
children 51ce94850ca0
files 3rdparty/packages/raakatu/raakatu.asm
diffstat 1 files changed, 778 insertions(+), 718 deletions(-) [+]
line wrap: on
line diff
--- a/3rdparty/packages/raakatu/raakatu.asm	Thu Sep 09 12:04:43 2010 +0000
+++ b/3rdparty/packages/raakatu/raakatu.asm	Thu Sep 09 14:08:24 2010 +0000
@@ -129,6 +129,66 @@
 ; $01E4     inputTokens           input token buffer
 ; $03FF     stack                 top of stack (just below screen memory)
 
+	  rmb   $01A7
+u01A7 rmb 1 ..  tmp1A7                used in decoding the input                   
+u01A8 rmb 1 ..  tmp1A7                used in decoding the input                   
+u01A9 rmb 1    tmp1A9                used in comparing X to Y                     
+u01AA rmb 1    not1AA                never used
+u01AB rmb 1    tmp1AB                used in lots of places                       
+u01AC rmb 1    not1AC                never used
+u01AD rmb 1    tmp1AD                used in the phrase decoding                  
+u01AE rmb 1    not1AE                never used
+u01AF rmb 1    not1AF                never used
+u01B0 rmb 1    not1B0                never used
+u01B1 rmb 1    not1B1                never used
+u01B2 rmb 1    tmp1B2                used in word decoding                        
+u01B3 rmb 1    verbWord              input verb word number                       
+u01B4 rmb 1    perpWord              preposition word number                      
+u01B5 rmb 1    prepGiven             preposition given flag                       
+u01B6 rmb 1    phrasePrep            used in phrase decoding                      
+u01B7 rmb 1    adjWord               adjective word number                        
+u01B8 rmb 1    commandTarg           target object of input command               
+u01B9 rmb 1    not1B9                cleared before decode but never used        
+u01BA rmb 1    lsbAdj1               screen LSB of 1st adjective                  
+u01BB rmb 1    lsbVerb               screen LSB of verb                           
+u01BC rmb 1    lsbCursor             screen lsb used in decoding the input line   
+u01BD rmb 1    lsbError              screen lsb used for flashing error messages  
+u01BE rmb 1    lastChar              last character printed to screen             
+u01BF rmb 1      VAR_OBJ_NUMBER      variable object number                       
+u01C0 rmb 2 ..    VAR_OBJ_DATA        variable object data                         
+u01C2 rmb 1    not1C2                never used
+u01C3 rmb 1      FIRST_NOUN_NUM      first input noun number                      
+u01C4 rmb 1    firstNounAdj          first input noun adjective word number
+u01C5 rmb 1    firstNounLSB          first input noun screen LSB                  
+u01C6 rmb 2 ..    FIRST_NOUN_DATA     first input noun object data                
+u01C8 rmb 1    firstNounParams       first input noun parameter bits             
+u01C9 rmb 1      SECOND_NOUN_NUM     second input noun number                     
+u01CA rmb 1    secondNounAdj         second input noun adjective word number
+u01CB rmb 1    secondNounLSB         second input noun noun screen LSB           
+u01CC rmb 2 ..    SECOND_NOUN_DATA    second input noun object data                
+u01CE rmb 1    secondNounParams      second input noun parameter bits             
+u01CF rmb 1    tmp1CF                another screen pointer used in decode       
+u01D0 rmb 1    tmp1DO                used in making index of data fields         
+u01D1 rmb 1      PHRASE_FORM         decoded phrase form                          
+u01D2 rmb 1      ACTIVE_OBJ_NUM      active object                                
+u01D3 rmb 2 ..    ACTIVE_OBJ_DATA     active object data                          
+u01D5 rmb 1      CUR_ROOM            current room number                         
+u01D6 rmb 2 ..    CUR_ROOM_DATA       current room data                          
+u01D8 rmb 2 ..  nextToken             used in decoding input                      
+u01DA rmb 1    tmp1DA                used in unpacking bytes                      
+u01DB rmb 1    tmp1DB                used in unpacking bytes                    
+u01DC rmb 1    tmp1DC                used in unpacking bytes                     
+u01DD rmb 1    tmp1DD                used in unpacking bytes                     
+u01DE rmb 1    tmp1DE                used in unpacking bytes                      
+u01DF rmb 1    tmp1DF                used in unpacking bytes                     
+u01E0 rmb 1    tmp1EO                used in unpacking bytes                      
+u01E1 rmb 1    tmp1E1                used in making index of data fields         
+u01E2 rmb 1    tmp1E2                used in input processing                    
+u01E3 rmb 1    tillMORE              rows left until MORE prompt (not used here)               
+;
+u01E4 rmb 1     inputTokens           input token buffer
+u03FF equ .    stack                 top of stack (just below screen memory)
+
 ;##Start
 L0600          clra                          ; 256 word (512 bytes on screen)
 L0601          ldx       #$0400              ; Start of screen
@@ -136,91 +196,91 @@
 L0607          stu       ,X++                ; Clear ...
 L0609          deca                          ; ... text ...
 
-L060A          bne       L0607                ; ... screen
+L060A          bne       L0607               ; ... screen
 
 L060C          lds       #$03FF              ; Stack starts just below screen
 L0610          lda       #$1D                ; Player object ...
-L0612          sta       $01D2               ; ... is the active object number
+L0612          sta       u01D2               ; ... is the active object number
 L0615          ldx       #$05E0              ; Set cursor to ...
 L0618          stx       >$88                ; ... bottom row of screen
 L061A          ldb       #$96                ; Starting ...
-L061C          stb       $01D5               ; ... room
+L061C          stb       u01D5               ; ... room
 L061F          ldx       #$1523              ; Room descriptions
-L0622          jsr       $0A1F               ; Find room data
-L0625          stx       $01D6               ; Store current room data
-L0628          jsr       $0D4A               ; Print room description
+L0622          lbsr      L0A1F               ; Find room data
+L0625          stx       u01D6               ; Store current room data
+L0628          lbsr      L0D4A               ; Print room description
 L062B          lda       #$0D                ; Print ...
-L062D          jsr       $1184               ; ... CR
+L062D          lbsr      L1184               ; ... CR
 
 ;##MainLoop
 L0630          lds       #$03FF              ; Initialize stack
-L0634          jsr       $0ACC               ; Get user input
-
-L0637          clr       $01B7               ; Adjective word number
-L063A          clr       $01BA               ; LSB of 1st adjective in buffer (not used)
-L063D          clr       $01BB               ; LSB of verb
-L0640          clr       $01B2               ; Misc
-L0643          clr       $01B3               ; Verb word number
-L0646          clr       $01B9               ; Never used again
-L0649          clr       $01B8               ; Target object of command (not used)
-L064C          clr       $01B4               ; Preposition number
-L064F          clr       $01B5               ; Preposition given flag (not 0 if given)
-L0652          clr       $01BF               ; VAR object number
-L0655          clr       $01C3               ; 1st noun word number
-L0658          clr       $01C9               ; 2nd noun word number
+L0634          lbsr      L0ACC               ; Get user input
+
+L0637          clr       u01B7               ; Adjective word number
+L063A          clr       u01BA               ; LSB of 1st adjective in buffer (not used)
+L063D          clr       u01BB               ; LSB of verb
+L0640          clr       u01B2               ; Misc
+L0643          clr       u01B3               ; Verb word number
+L0646          clr       u01B9               ; Never used again
+L0649          clr       u01B8               ; Target object of command (not used)
+L064C          clr       u01B4               ; Preposition number
+L064F          clr       u01B5               ; Preposition given flag (not 0 if given)
+L0652          clr       u01BF               ; VAR object number
+L0655          clr       u01C3               ; 1st noun word number
+L0658          clr       u01C9               ; 2nd noun word number
 
 L065B          ldb       #$1D                ; Player object ...
-L065D          stb       $01D2               ; ... is active object
-L0660          jsr       $1133               ; Get player object data
-L0663          stx       $01D3               ; Active object's data
-L0666          jsr       $0A42               ; Skip length
+L065D          stb       u01D2               ; ... is active object
+L0660          lbsr      L1133               ; Get player object data
+L0663          stx       u01D3               ; Active object's data
+L0666          lbsr      L0A42               ; Skip length
 L0669          ldb       ,X                  ; Get player location
-L066B          stb       $01D5               ; Current room
+L066B          stb       u01D5               ; Current room
 L066E          ldx       #$1523              ; Room scripts
-L0671          jsr       $0A1F               ; Find sublist ... script for room
-L0674          stx       $01D6               ; Script for current room
-L0677          ldx       #$01E3              ; Input token list area
-L067A          stx       $01D8               ; Where decoder fills in
+L0671          lbsr      L0A1F               ; Find sublist ... script for room
+L0674          stx       u01D6               ; Script for current room
+L0677          ldx       #u01E3              ; Input token list area
+L067A          stx       u01D8               ; Where decoder fills in
 L067D          clr       ,X                  ; Empty token ... clear the list
 L067F          ldx       #$05E0              ; Bottom row is input buffer
-L0682          jsr       $0B42               ; Decode input word
-
-L0685          beq       L0692                ; All words done
+L0682          lbsr      L0B42               ; Decode input word
+
+L0685          beq       L0692               ; All words done
 L0687          lda       ,X+                 ; Next character
 L0689          cmpa      #$60                ; A space?
 
-L068B          beq       L0682                ; Yes ... decode next
+L068B          beq       L0682               ; Yes ... decode next
 L068D          cmpx      #$0600              ; End of input buffer?
 
-L0690          bne       L0687                ; No ... look for next word
+L0690          bne       L0687               ; No ... look for next word
 L0692          cmpx      #$0600              ; End of input buffer?
 
-L0695          bne       L0682                ; No ... keep looking
-L0697          clr       [$01D8]             ; Terminate token list
-L069B          ldx       #$01E3              ; Input buffer
+L0695          bne       L0682               ; No ... keep looking
+L0697          clr       [u01D8]             ; Terminate token list
+L069B          ldx       #u01E3              ; Input buffer
 L069E          lda       ,X                  ; List number of first word
 L06A0          lbeq      $0736               ; Nothing entered
 L06A4          cmpa      #$02                ; First word a noun?
 
-L06A6          bne       L06B7                ; No ... move on
+L06A6          bne       L06B7               ; No ... move on
 L06A8          leax      1,X                 ; Point to word number
 L06AA          lda       ,X                  ; Get word number
 L06AC          leax      -1,X                ; Back to list number
 L06AE          cmpa      #$06                ; Living things (people, dogs, etc) are <6
 
-L06B0          bcc       L06B7                ; Not a living thing
-L06B2          sta       $01B8               ; Remember living thing. We are giving them a command so process normally
+L06B0          bcc       L06B7               ; Not a living thing
+L06B2          sta       u01B8               ; Remember living thing. We are giving them a command so process normally
 L06B5          leax      3,X                 ; Next word
 
 L06B7          lda       ,X+                 ; Word list
 
-L06B9          beq       L0736                ; End of list ... go process
+L06B9          beq       L0736               ; End of list ... go process
 L06BB          ldb       ,X                  ; Word number to B
 L06BD          ldu       ,X++                ; LSB to LSB of U
 L06BF          pshs      X                   ; Hold token buffer
 L06C1          deca                          ; List 1? Verbs?
 
-L06C2          bne       L06E5                ; No ... continue
+L06C2          bne       L06E5               ; No ... continue
 
 ; I believe the goal here was to allow multiple verbs given on an input line
 ; to be translated to a single verb. The code finds a replacement list for the
@@ -231,150 +291,150 @@
 ; list for BEDLAM and RAAKATU is empty so the code is never used anyway.
 ;
 L06C4          ldx       #$1332              ;  Multi verb translation list (empty list for BEDLAM and RAAKATU)
-L06C7          jsr       $0A1F               ;  Look for an entry for the given verb
-
-L06CA          bcc       L06DF                ;  No entry ... use the word as-is
-L06CC          jsr       $0A42               ;  Skip length of entry
-L06CF          jsr       $0A58               ;  End of list?
+L06C7          lbsr      L0A1F               ;  Look for an entry for the given verb
+
+L06CA          bcc       L06DF               ;  No entry ... use the word as-is
+L06CC          lbsr      L0A42               ;  Skip length of entry
+L06CF          lbsr      L0A58               ;  End of list?
 L06D2          tfr       B,A                 ;  ?? Held in A but ...
 
-L06D4          bcc       L06DF                ;  Reached end of list. This input is the verb.
+L06D4          bcc       L06DF               ;  Reached end of list. This input is the verb.
 L06D6          ldb       ,X+                 ;  ??
 L06D8          lda       ,X+                 ;  ?? ... A is mangled here?
-L06DA          cmpb      $01B3               ;  ?? Compare to 01B3 ...
-
-L06DD          bne       L06CF                ;  Continue running list
-L06DF          stb       $01B3               ;  ?? ... then store if equal?
+L06DA          cmpb      u01B3               ;  ?? Compare to 01B3 ...
+
+L06DD          bne       L06CF               ;  Continue running list
+L06DF          stb       u01B3               ;  ?? ... then store if equal?
 L06E2          jmp       $0731               ;  Continue with next word
 
 L06E5          deca                          ;  List 2 Noun
 
-L06E6          bne       L071E                ;  Not a noun
-L06E8          tst       $01B5               ;  Has prepostion been given?
-
-L06EB          beq       L070D                ;  No ... this is first noun
-L06ED          ldx       #$01C9              ;  2nd noun area
+L06E6          bne       L071E               ;  Not a noun
+L06E8          tst       u01B5               ;  Has prepostion been given?
+
+L06EB          beq       L070D               ;  No ... this is first noun
+L06ED          ldx       #u01C9              ;  2nd noun area
 L06F0          stb       ,X+                 ;  Store word number
-L06F2          lda       $01B7               ;  Last adjective
+L06F2          lda       u01B7               ;  Last adjective
 L06F5          sta       ,X+                 ;  Keep with noun
-L06F7          lda       $01BA               ;  LSB of adjective
+L06F7          lda       u01BA               ;  LSB of adjective
 L06FA          sta       ,X                  ;  Keep with noun
 
-L06FC          bne       L0702                ;  There was one ... go on
+L06FC          bne       L0702               ;  There was one ... go on
 L06FE          tfr       U,D                 ;  Use LSB of ...
 L0700          stb       ,X                  ;  ... noun if no adjective
-L0702          clr       $01B7               ;  Adjective moved
-L0705          clr       $01B5               ;  Preposition moved
-L0708          clr       $01BA               ;  LSB moved
-
-L070B          bra       L0731                ;  Continue with next word
-
-L070D          ldx       $01C3               ;  Copy ...
-L0710          stx       $01C9               ;  ... any ...
-L0713          ldx       $01C5               ;  ... first noun ...
-L0716          stx       $01CB               ;  ... to second
-L0719          ldx       #$01C3              ;  First word area
-
-L071C          bra       L06F0                ;  Go fill out first word
+L0702          clr       u01B7               ;  Adjective moved
+L0705          clr       u01B5               ;  Preposition moved
+L0708          clr       u01BA               ;  LSB moved
+
+L070B          bra       L0731               ;  Continue with next word
+
+L070D          ldx       u01C3               ;  Copy ...
+L0710          stx       u01C9               ;  ... any ...
+L0713          ldx       u01C5               ;  ... first noun ...
+L0716          stx       u01CB               ;  ... to second
+L0719          ldx       #u01C3              ;  First word area
+
+L071C          bra       L06F0               ;  Go fill out first word
 
 L071E          deca                          ;  List 3 Adjective
 
-L071F          bne       L072B                ;  Not a proposition
-L0721          stb       $01B7               ;  Store adjective number
+L071F          bne       L072B               ;  Not a proposition
+L0721          stb       u01B7               ;  Store adjective number
 L0724          tfr       U,D                 ;  Store ...
-L0726          stb       $01BA               ;  ... adjective LSB in buffer
-
-L0729          bra       L0731                ;  Continue with next word
-
-L072B          stb       $01B4               ;  Preposition
-L072E          stb       $01B5               ;  Preoposition given (noun should follow)
+L0726          stb       u01BA               ;  ... adjective LSB in buffer
+
+L0729          bra       L0731               ;  Continue with next word
+
+L072B          stb       u01B4               ;  Preposition
+L072E          stb       u01B5               ;  Preoposition given (noun should follow)
 L0731          puls      X                   ;  Restore token pointer
 L0733          jmp       $06B7               ;  Next word
 
 
-L0736          tst       $01B3               ;  Verb given?
+L0736          tst       u01B3               ;  Verb given?
 L0739          lbeq      $0995               ;  No ... ?VERB? error
-L073D          ldx       #$01C9              ;  Second noun
-L0740          jsr       $0822               ;  Decode it (only returns if OK)
-L0743          sta       $01C9               ;  Hold target object index
-L0746          stx       $01CC               ;  Hold target object pointer
-L0749          ldx       #$01C3              ;  First noun
-L074C          jsr       $0822               ;  Decode it (only returns if OK)
-L074F          sta       $01C3               ;  Hold target object index
-L0752          stx       $01C6               ;  Hold target object pointer
-L0755          clr       $01B5               ;  Clear preposition flag
-
-L0758          ldx       $01C6               ;  Pointer to first noun object data
-L075B          lda       $01C3               ;  First noun index
-
-L075E          beq       L0767                ;  No first noun ... store a 0
-L0760          jsr       $0A42               ;  Skip ID and load end
+L073D          ldx       #u01C9              ;  Second noun
+L0740          lbsr      L0822               ;  Decode it (only returns if OK)
+L0743          sta       u01C9               ;  Hold target object index
+L0746          stx       u01CC               ;  Hold target object pointer
+L0749          ldx       #u01C3              ;  First noun
+L074C          lbsr      L0822               ;  Decode it (only returns if OK)
+L074F          sta       u01C3               ;  Hold target object index
+L0752          stx       u01C6               ;  Hold target object pointer
+L0755          clr       u01B5               ;  Clear preposition flag
+
+L0758          ldx       u01C6               ;  Pointer to first noun object data
+L075B          lda       u01C3               ;  First noun index
+
+L075E          beq       L0767               ;  No first noun ... store a 0
+L0760          lbsr      L0A42               ;  Skip ID and load end
 L0763          leax      2,X                 ;  Skip 2 bytes
 L0765          lda       ,X                  ;  Object parameter bits
-L0767          sta       $01C8               ;  Hold first noun's parameter bits
-
-L076A          ldx       $01CC               ;  Pointer to second noun object data
-L076D          lda       $01C9               ;  Second noun number
-
-L0770          beq       L0779                ;  No second noun ... store 0
-L0772          jsr       $0A42               ;  Skip ID and load end
+L0767          sta       u01C8               ;  Hold first noun's parameter bits
+
+L076A          ldx       u01CC               ;  Pointer to second noun object data
+L076D          lda       u01C9               ;  Second noun number
+
+L0770          beq       L0779               ;  No second noun ... store 0
+L0772          lbsr      L0A42               ;  Skip ID and load end
 L0775          leax      2,X                 ;  Skip 2 bytes
 L0777          lda       ,X                  ;  Object parameter bits
-L0779          sta       $01CE               ;  Hold second noun's parameter bits
+L0779          sta       u01CE               ;  Hold second noun's parameter bits
 
 L077C          ldx       #$135B              ;  Syntax list
 L077F          lda       ,X                  ;  End of list?
 L0781          lbeq      $0951               ;  Yes ... "?PHRASE?"
-L0785          lda       $01B3               ;  Verb ...
+L0785          lda       u01B3               ;  Verb ...
 L0788          cmpa      ,X+                 ;  ... matches?
 
-L078A          bne       L07E7                ;  No ... move to next entry
+L078A          bne       L07E7               ;  No ... move to next entry
 L078C          lda       ,X                  ;  Phrase's proposition
-L078E          sta       $01B6               ;  Hold it
-L0791          lda       $01B4               ;  Preposition word number
-
-L0794          beq       L079A                ;  None given ... skip prep check
+L078E          sta       u01B6               ;  Hold it
+L0791          lda       u01B4               ;  Preposition word number
+
+L0794          beq       L079A               ;  None given ... skip prep check
 L0796          cmpa      ,X                  ;  Given prep matches?
 
-L0798          bne       L07E7                ;  No ... move to next phrase
+L0798          bne       L07E7               ;  No ... move to next phrase
 L079A          leax      1,X                 ;  Skip to next phrase component
 L079C          lda       ,X                  ;  First noun required by phrase
 
-L079E          beq       L07B4                ;  Not given in phrase ... skip check
-L07A0          lda       $01C3               ;  1st noun index
-
-L07A3          bne       L07BB                ;  Requested by phrase but not given by user ... next phrase
-L07A5          lda       $01BB               ;  LSB of verb ...
-L07A8          sta       $01BD               ;  ... to location of error
-L07AB          ldy       #$01C3              ;  Descriptor for 1st noun
-L07AF          jsr       $08D2               ;  Decode 1st noun as per phrase
-
-L07B2          bra       L07BB                ;  We just processed a first one. We know it is there.
-L07B4          lda       $01C3               ;  Is there a 1st noun?
+L079E          beq       L07B4               ;  Not given in phrase ... skip check
+L07A0          lda       u01C3               ;  1st noun index
+
+L07A3          bne       L07BB               ;  Requested by phrase but not given by user ... next phrase
+L07A5          lda       u01BB               ;  LSB of verb ...
+L07A8          sta       u01BD               ;  ... to location of error
+L07AB          ldy       #u01C3              ;  Descriptor for 1st noun
+L07AF          lbsr      L08D2               ;  Decode 1st noun as per phrase
+
+L07B2          bra       L07BB               ;  We just processed a first one. We know it is there.
+L07B4          lda       u01C3               ;  Is there a 1st noun?
 
 L07B7          lbne      $0951               ; No ... next entry
 L07BB          leax      1,X                 ; Next in phrase
 L07BD          lda       ,X                  ; Phrase wants a second noun?
 
-L07BF          beq       L07DA                ; No ... skip
-L07C1          lda       $01C9               ; User given 2nd noun
-
-L07C4          bne       L07E1                ; Yes ... use this phrase
-L07C6          lda       $01BC               ; Location of ...
-L07C9          sta       $01BD               ; ... error on screen
+L07BF          beq       L07DA               ; No ... skip
+L07C1          lda       u01C9               ; User given 2nd noun
+
+L07C4          bne       L07E1               ; Yes ... use this phrase
+L07C6          lda       u01BC               ; Location of ...
+L07C9          sta       u01BD               ; ... error on screen
 L07CC          lda       #$01                ; Set preposition ...
-L07CE          sta       $01B5               ; ... flag to YES
-L07D1          ldy       #$01C9              ; 2nd noun index
-L07D5          jsr       $08D2               ; Decode 2nd noun as per phrase
-
-L07D8          bra       L07E1                ; Use this
-
-L07DA          lda       $01C9               ; Is there a second noun?
+L07CE          sta       u01B5               ; ... flag to YES
+L07D1          ldy       #u01C9              ; 2nd noun index
+L07D5          lbsr      L08D2               ; Decode 2nd noun as per phrase
+
+L07D8          bra       L07E1               ; Use this
+
+L07DA          lda       u01C9               ; Is there a second noun?
 L07DD          lbne      $0951               ; No ... phrase error
 L07E1          leax      1,X                 ; Get matched ...
 L07E3          lda       ,X                  ; ... phrase number
 
-L07E5          bra       L07F0                ; Store and continue
+L07E5          bra       L07F0               ; Store and continue
 L07E7          leax      1,X                 ; Skip ...
 L07E9          leax      1,X                 ; ... to ...
 L07EB          leax      2,X                 ; ... next entry
@@ -383,24 +443,24 @@
 ; Unlike BEDLAM, there is no giving a command to something else. Just
 ; ignore any commanded object and give the phrase to the user.
 
-L07F0          sta       $01D1               ; Store the phrase number
+L07F0          sta       u01D1               ; Store the phrase number
 L07F3          ldx       #$05FF              ; Move cursor to ...
 L07F6          stx       >$88                ; ... end of line
 L07F8          lda       #$0D                ; Print ...
-L07FA          jsr       $1184               ; ... CR
-L07FD          lda       $01C3               ; First noun given?
-
-L0800          bne       L080E                ; Yes ... keep what we have
-L0802          ldx       $01CC               ; Move 2nd ...
-L0805          stx       $01C6               ; ... noun to ...
-L0808          lda       $01C9               ; ... first ...
-L080B          sta       $01C3               ; ... descriptor
+L07FA          lbsr      L1184               ; ... CR
+L07FD          lda       u01C3               ; First noun given?
+
+L0800          bne       L080E               ; Yes ... keep what we have
+L0802          ldx       u01CC               ; Move 2nd ...
+L0805          stx       u01C6               ; ... noun to ...
+L0808          lda       u01C9               ; ... first ...
+L080B          sta       u01C3               ; ... descriptor
 L080E          ldx       #$323C              ; General command scripts
-L0811          jsr       $0A42               ; Skip over end delta
-L0814          jsr       $0C03               ; Execute script
-L0817          jsr       $0F66               ; Allow objects to move
+L0811          lbsr      L0A42               ; Skip over end delta
+L0814          lbsr      L0C03               ; Execute script
+L0817          lbsr      L0F66               ; Allow objects to move
 L081A          lda       #$0D                ; Print ...
-L081C          jsr       $1184               ; ... CR
+L081C          lbsr      L1184               ; ... CR
 L081F          jmp       $0630               ; Top of game loop
 
 
@@ -415,71 +475,71 @@
 ; @return A index of target object
 ; @return X pointer to target object data
 ;
-L0822          clr       $01BF               ; Input object number
+L0822          clr       u01BF               ; Input object number
 L0825          ldb       ,X+                 ; Word number of noun
-L0827          stb       $01B2               ; Hold it
-
-L082A          bne       L082E                ; Real object ... go decode
+L0827          stb       u01B2               ; Hold it
+
+L082A          bne       L082E               ; Real object ... go decode
 L082C          clra                          ; Not found
 L082D          rts                           ; Out
 L082E          lda       ,X+                 ; Noun's adjective
-L0830          sta       $01B7               ; Hold it
+L0830          sta       u01B7               ; Hold it
 L0833          lda       ,X                  ; LSB of word in buffer
-L0835          sta       $01CF               ; Hold it
+L0835          sta       u01CF               ; Hold it
 L0838          ldx       #$20FF              ; Object data
-L083B          jsr       $0A1F               ; Get pointer to next object that matches word
-
-L083E          bcc       L089A                ; Not found
+L083B          lbsr      L0A1F               ; Get pointer to next object that matches word
+
+L083E          bcc       L089A               ; Not found
 L0840          pshs      Y                   ; Hold end of object data
 L0842          pshs      X                   ; Hold pointer to noun descriptor
-L0844          lda       $01E1               ; Index of object in the object list
-L0847          sta       $01E2               ; Remember this
-L084A          jsr       $08AA               ; Is object in this room or on player?
-
-L084D          bne       L08A6                ; No ... can't be target ... out
-L084F          lda       $01B7               ; Noun's adjective
-
-L0852          beq       L0873                ; No adjective ... skip this
+L0844          lda       u01E1               ; Index of object in the object list
+L0847          sta       u01E2               ; Remember this
+L084A          lbsr      L08AA               ; Is object in this room or on player?
+
+L084D          bne       L08A6               ; No ... can't be target ... out
+L084F          lda       u01B7               ; Noun's adjective
+
+L0852          beq       L0873               ; No adjective ... skip this
 L0854          puls      X                   ; Restore pointer to noun descriptor
 L0856          pshs      X                   ; Hold it again
-L0858          jsr       $0A42               ; Skip the id and end
+L0858          lbsr      L0A42               ; Skip the id and end
 L085B          leax      3,X                 ; Skip the object data
 L085D          ldb       #$01                ; Look up adjective ...
-L085F          jsr       $0A27               ; ... list for object
-
-L0862          bcc       L0873                ; No adjective ... ignore
-L0864          jsr       $0A42               ; Skip the id and length
-L0867          jsr       $0A58               ; End of adjective list?
-
-L086A          bcc       L08A6                ; Yes ... no match ... next object
-L086C          lda       $01B7               ; Adjective
+L085F          lbsr      L0A27               ; ... list for object
+
+L0862          bcc       L0873               ; No adjective ... ignore
+L0864          lbsr      L0A42               ; Skip the id and length
+L0867          lbsr      L0A58               ; End of adjective list?
+
+L086A          bcc       L08A6               ; Yes ... no match ... next object
+L086C          lda       u01B7               ; Adjective
 L086F          cmpa      ,X+                 ; In this list?
 
-L0871          bne       L0867                ; No ... keep searching list
+L0871          bne       L0867               ; No ... keep searching list
 L0873          puls      X                   ; Restore object pointer
-L0875          lda       $01BF               ; Last object index that matched
+L0875          lda       u01BF               ; Last object index that matched
 L0878          lbne      $098C               ; Multiple matches ... do "?WHICH?"
-L087C          lda       $01E2               ; Object index
-L087F          sta       $01BF               ; Current guess at matching object index
-L0882          stx       $01C0               ; Input object data
-L0885          jsr       $0A42               ; Skip id and end
+L087C          lda       u01E2               ; Object index
+L087F          sta       u01BF               ; Current guess at matching object index
+L0882          stx       u01C0               ; Input object data
+L0885          lbsr      L0A42               ; Skip id and end
 L0888          tfr       Y,X                 ; Next object
 L088A          puls      Y                   ; End of object data
-L088C          ldb       $01B2               ; Restore word number of noun
-L088F          lda       $01E2               ; Current object index
-L0892          sta       $01E1               ; Start count for next pass
-L0895          jsr       $0A27               ; Find next matching object
-
-L0898          bcs       L0840                ; Got one ... go test it
-L089A          ldx       $01C0               ; Object data to X
-L089D          lda       $01BF               ; Object found?
-
-L08A0          bne       L08A5                ; Yes ...  out
+L088C          ldb       u01B2               ; Restore word number of noun
+L088F          lda       u01E2               ; Current object index
+L0892          sta       u01E1               ; Start count for next pass
+L0895          lbsr      L0A27               ; Find next matching object
+
+L0898          bcs       L0840               ; Got one ... go test it
+L089A          ldx       u01C0               ; Object data to X
+L089D          lda       u01BF               ; Object found?
+
+L08A0          bne       L08A5               ; Yes ...  out
 L08A2          jmp       $0948               ; No ... "?WHAT?"
 L08A5          rts                           ; Done
 L08A6          puls      X                   ; Restore object pointer
 
-L08A8          bra       L0885                ; Do next object
+L08A8          bra       L0885               ; Do next object
 
 ; This function checks if the target object is in the current room or being
 ; held by the active object.
@@ -487,28 +547,28 @@
 ; @param X pointer to target object
 ; @return Z=1 for yes or Z=0 for no
 ;
-L08AA          jsr       $0A42               ; Skip size
-L08AD          lda       $01D5               ; Current room number
+L08AA          lbsr      L0A42               ; Skip size
+L08AD          lda       u01D5               ; Current room number
 L08B0          cmpa      ,X                  ; Is object in room?
 
-L08B2          beq       L08A5                ; Yes ... return OK
+L08B2          beq       L08A5               ; Yes ... return OK
 L08B4          lda       ,X                  ; Get object's room number
 
-L08B6          beq       L08CF                ; 0 ... fail
+L08B6          beq       L08CF               ; 0 ... fail
 L08B8          cmpa      #$FF                ; FF ...
 
-L08BA          beq       L08A5                ; ... return OK
+L08BA          beq       L08A5               ; ... return OK
 L08BC          bita      #$80                ; Upper bit of object location set ...
 
-L08BE          bne       L08CF                ; ... then fail
+L08BE          bne       L08CF               ; ... then fail
 L08C0          ldb       ,X                  ; Location again
-L08C2          cmpb      $01D2               ; Being held by the active object?
-
-L08C5          beq       L08A5                ; Yes ... return OK
+L08C2          cmpb      u01D2               ; Being held by the active object?
+
+L08C5          beq       L08A5               ; Yes ... return OK
 L08C7          ldx       #$20FF              ; Strange. 117D does this too.
-L08CA          jsr       $1133               ; Get object's container object (if any)
-
-L08CD          bra       L08AA                ; Repeat check
+L08CA          lbsr      L1133               ; Get object's container object (if any)
+
+L08CD          bra       L08AA               ; Repeat check
 L08CF          ora       #$01                ; Mark failure
 L08D1          rts                           ; Out
 
@@ -523,172 +583,172 @@
 ; @return descriptor filled out with object
 ;
 L08D2          pshs      X                   ; Hold phrase data pointer
-L08D4          clr       $01B2               ; Found word flag
-L08D7          clr       $01E1               ; Object index starts at 0
+L08D4          clr       u01B2               ; Found word flag
+L08D7          clr       u01E1               ; Object index starts at 0
 L08DA          pshs      Y                   ; Hold noun descriptor
 L08DC          lda       ,X                  ; Object parameter mask bits
-L08DE          sta       $01AB               ; Hold
+L08DE          sta       u01AB               ; Hold
 L08E1          ldx       #$20FF              ; Object data
-L08E4          jsr       $0A42               ; Skip ID and load end
-L08E7          jsr       $0A58               ; At end of object data?
-
-L08EA          bcc       L092C                ; Yes ... done
-L08EC          inc       $01E1               ; Bump object index
+L08E4          lbsr      L0A42               ; Skip ID and load end
+L08E7          lbsr      L0A58               ; At end of object data?
+
+L08EA          bcc       L092C               ; Yes ... done
+L08EC          inc       u01E1               ; Bump object index
 L08EF          pshs      Y                   ; Hold end of object
 L08F1          pshs      X                   ; Hold pointer to object
-L08F3          jsr       $08AA               ; Is object in room or on player?
+L08F3          lbsr      L08AA               ; Is object in room or on player?
 L08F6          puls      X                   ; Restore pointer to object
 
-L08F8          bne       L0927                ; No ... next object
+L08F8          bne       L0927               ; No ... next object
 L08FA          ldb       ,X                  ; Object word number
-L08FC          stx       $01D8               ; Pointer to object data
-L08FF          jsr       $0A42               ; Skip ID and load end
+L08FC          stx       u01D8               ; Pointer to object data
+L08FF          lbsr      L0A42               ; Skip ID and load end
 L0902          leax      2,X                 ; Point to object parameters
 L0904          lda       ,X                  ; Get parameters
-L0906          anda      $01AB               ; Compare to phrase data ...
-L0909          cmpa      $01AB               ; ... this is a strange way to do it
-
-L090C          bne       L0921                ; Not a match ... next word
-L090E          lda       $01B2               ; Already got a word number?
-
-L0911          bne       L095A                ; Yes ... error
-L0913          stb       $01B2               ; Found word number
+L0906          anda      u01AB               ; Compare to phrase data ...
+L0909          cmpa      u01AB               ; ... this is a strange way to do it
+
+L090C          bne       L0921               ; Not a match ... next word
+L090E          lda       u01B2               ; Already got a word number?
+
+L0911          bne       L095A               ; Yes ... error
+L0913          stb       u01B2               ; Found word number
 L0916          lda       ,X                  ; Remember ...
-L0918          sta       $01B7               ; ... object parameters
-L091B          ldx       $01D8               ; Remember ...
-L091E          stx       $01AD               ; ... object pointer
+L0918          sta       u01B7               ; ... object parameters
+L091B          ldx       u01D8               ; Remember ...
+L091E          stx       u01AD               ; ... object pointer
 L0921          exg       X,Y                 ; Start of next object to X
 L0923          puls      Y                   ; Restore end of object pointer
 
-L0925          bra       L08E7                ; Continue with next object
-L0927          jsr       $0A42               ; Skip ID and load end
-
-L092A          bra       L0921                ; Try next object
-L092C          lda       $01B2               ; Did we find an object word?
-
-L092F          beq       L095A                ; No .... error
+L0925          bra       L08E7               ; Continue with next object
+L0927          lbsr      L0A42               ; Skip ID and load end
+
+L092A          bra       L0921               ; Try next object
+L092C          lda       u01B2               ; Did we find an object word?
+
+L092F          beq       L095A               ; No .... error
 L0931          puls      Y                   ; Noun descriptor
-L0933          ldx       $01AD               ; Object data pointer
-L0936          lda       $01E1               ; New ...
+L0933          ldx       u01AD               ; Object data pointer
+L0936          lda       u01E1               ; New ...
 L0939          sta       ,Y                  ; ... object number
 L093B          leay      3,Y                 ; New ...
 L093D          stx       ,Y++                ; ... pointer to object data
-L093F          lda       $01B7               ; New ...
+L093F          lda       u01B7               ; New ...
 L0942          sta       ,Y                  ; ... object parameters
 L0944          puls      X                   ; Restore phrase data pointer
 L0946          clra                          ; Set Z=1
 L0947          rts                           ; Done
 
 L0948          ldy       #$1343              ; "?WHAT?"
-L094C          lda       $01CF               ; LSB of screen location
-
-L094F          bra       L099B                ; Go flash error and try again
+L094C          lda       u01CF               ; LSB of screen location
+
+L094F          bra       L099B               ; Go flash error and try again
 
 L0951          ldy       #$1352              ; "?PHRASE?"
-L0955          lda       $01BC               ; LSB of screen location
-
-L0958          bra       L099B                ; Go flash error and try again
-
-L095A          lda       $01B5               ; Preposition given?
-
-L095D          beq       L0983                ; No ... just plain "?WHAT?"
-L095F          lda       $01B4               ; Preposition word number?
-
-L0962          bne       L0983                ; No word ... just plain "?WHAT?"
+L0955          lda       u01BC               ; LSB of screen location
+
+L0958          bra       L099B               ; Go flash error and try again
+
+L095A          lda       u01B5               ; Preposition given?
+
+L095D          beq       L0983               ; No ... just plain "?WHAT?"
+L095F          lda       u01B4               ; Preposition word number?
+
+L0962          bne       L0983               ; No word ... just plain "?WHAT?"
 L0964          ldx       #$3ECF              ; Prepositions list
 L0967          ldb       ,X                  ; Length of word
 
-L0969          beq       L0983                ; Reached the end ... do "?WHAT?"
+L0969          beq       L0983               ; Reached the end ... do "?WHAT?"
 L096B          pshs      X                   ; Hold start of word
 L096D          ldb       ,X+                 ; Get length again
 L096F          abx                           ; Point to end of word
-L0970          lda       $01B6               ; Target preposition
+L0970          lda       u01B6               ; Target preposition
 L0973          cmpa      ,X+                 ; Matches?
 
-L0975          beq       L097B                ; Yes ... error includes this word
+L0975          beq       L097B               ; Yes ... error includes this word
 L0977          puls      A,B                 ; Restore stack
 
-L0979          bra       L0967                ; Next word
+L0979          bra       L0967               ; Next word
 L097B          puls      Y                   ; Word text to Y
-L097D          lda       $01BD               ; LSB of error message
-L0980          jsr       $09E1               ; Push preposition word
+L097D          lda       u01BD               ; LSB of error message
+L0980          lbsr      L09E1               ; Push preposition word
 L0983          ldy       #$1343              ; "?WHAT?"
-L0987          lda       $01BD               ; LSB of screen location
-
-L098A          bra       L099B                ; Go flash error and try again
+L0987          lda       u01BD               ; LSB of screen location
+
+L098A          bra       L099B               ; Go flash error and try again
 L098C          ldy       #$134A              ; "?WHICH"?
-L0990          lda       $01CF               ; LSB of screen location
-
-L0993          bra       L099B                ; Go flash error and try again
+L0990          lda       u01CF               ; LSB of screen location
+
+L0993          bra       L099B               ; Go flash error and try again
 L0995          ldy       #$133C              ; "?VERB?"
 
 L0999          lda       #$E0                ; LSB of start of input line
 L099B          lds       #$03FF              ; Reset the stack (we jump back into the main loop)
 L099F          ldx       #$05E0              ; Error goes at start of line
-L09A2          jsr       $09E1               ; Push error message on and pause
+L09A2          lbsr      L09E1               ; Push error message on and pause
 L09A5          lda       ,Y                  ; Get length
-L09A7          sta       $01AB               ; Hold in counter
+L09A7          sta       u01AB               ; Hold in counter
 L09AA          pshs      X                   ; Hold X
 L09AC          lda       #$60                ; SPACE
 L09AE          sta       ,X+                 ; Flash off ...
-L09B0          dec       $01AB               ; ... error ...
-
-L09B3          bne       L09AC                ; ... word
-L09B5          jsr       $09D6               ; Long delay
+L09B0          dec       u01AB               ; ... error ...
+
+L09B3          bne       L09AC               ; ... word
+L09B5          lbsr      L09D6               ; Long delay
 L09B8          puls      X                   ; Restore insertion point
 L09BA          decb                          ; All flashes done?
 
-L09BB          bne       L09D1                ; No ... keep flashing error word
+L09BB          bne       L09D1               ; No ... keep flashing error word
 L09BD          lda       ,Y                  ; Size of error word
 L09BF          inca                          ; Plus the extra space
-L09C0          sta       $01AB               ; Hold counter
-L09C3          jsr       $0ADB               ; Close up the ...
-L09C6          dec       $01AB               ; ... error ...
-
-L09C9          bne       L09C3                ; ... word
-L09CB          jsr       $0A63               ; Get input line
+L09C0          sta       u01AB               ; Hold counter
+L09C3          lbsr      L0ADB               ; Close up the ...
+L09C6          dec       u01AB               ; ... error ...
+
+L09C9          bne       L09C3               ; ... word
+L09CB          lbsr      L0A63               ; Get input line
 L09CE          jmp       $0637               ; Continue processing
-L09D1          jsr       $0A00               ; Flash message and pause
-
-L09D4          bra       L09A5                ; Continue flashing and read new line
+L09D1          lbsr      L0A00               ; Flash message and pause
+
+L09D4          bra       L09A5               ; Continue flashing and read new line
 
 ;Long delay
 L09D6          lda       #$32                ; Outer loop counts
-L09D8          dec       $01AB               ; Decrease inner count (doesn't matter what's there)
-
-L09DB          bne       L09D8                ; Kill inner time
+L09D8          dec       u01AB               ; Decrease inner count (doesn't matter what's there)
+
+L09DB          bne       L09D8               ; Kill inner time
 L09DD          deca                          ; All 256 loops done?
 
-L09DE          bne       L09D8                ; No ... keep pausing
+L09DE          bne       L09D8               ; No ... keep pausing
 L09E0          rts                           ; Done
 
-L09E1          sta       $01AB               ; Hold LSB of cursor
+L09E1          sta       u01AB               ; Hold LSB of cursor
 L09E4          ldd       #$05E0              ; Start of input line
-L09E7          ldb       $01AB               ; Replace LSB
+L09E7          ldb       u01AB               ; Replace LSB
 L09EA          tfr       D,X                 ; Place for error word in X
 L09EC          lda       ,Y                  ; Get length of message
 L09EE          inca                          ; Plus a space after
-L09EF          sta       $01AB               ; Store length
+L09EF          sta       u01AB               ; Store length
 L09F2          pshs      Y                   ; Hold message
-L09F4          jsr       $0B06               ; Slide right past insertion point
-L09F7          dec       $01AB               ; Space opened up?
-
-L09FA          bne       L09F4                ; No ... open all the spaces for the error word
+L09F4          lbsr      L0B06               ; Slide right past insertion point
+L09F7          dec       u01AB               ; Space opened up?
+
+L09FA          bne       L09F4               ; No ... open all the spaces for the error word
 L09FC          puls      Y                   ; Restore pointer
 L09FE          ldb       #$08                ; 8 flashes
 L0A00          lda       ,Y                  ; Count again
-L0A02          sta       $01AB               ; Size of word
+L0A02          sta       u01AB               ; Size of word
 L0A05          pshs      Y,X,B               ; Hold all
 L0A07          leay      1,Y                 ; Skip size
 L0A09          lda       ,Y+                 ; Copy error word ...
 L0A0B          sta       ,X+                 ; ... to screen
-L0A0D          dec       $01AB               ; All done?
-
-L0A10          bne       L0A09                ; No ... go back and do all
+L0A0D          dec       u01AB               ; All done?
+
+L0A10          bne       L0A09               ; No ... go back and do all
 L0A12          leax      1,X                 ; Bump ...
 L0A14          tfr       X,D                 ; ... LSB ...
-L0A16          stb       $01BD               ; ... of screen pointer
-L0A19          jsr       $09D6               ; Long pause
+L0A16          stb       u01BD               ; ... of screen pointer
+L0A19          lbsr      L09D6               ; Long pause
 L0A1C          puls      B,X,Y               ; Restore
 L0A1E          rts                           ; Done
 
@@ -699,22 +759,22 @@
 ; Return sublist pointer in X
 ; Return C=0 if not found, C=1 if found
 L0A1F          leax      1,X                 ; Skip list ID
-L0A21          jsr       $0A44               ; Read end of list to Y
-L0A24          clr       $01E1               ; Clear index of sublist
-L0A27          jsr       $0A58               ; Compare X to Y
-
-L0A2A          bcs       L0A2D                ; X is smaller ... keep going
+L0A21          lbsr      L0A44               ; Read end of list to Y
+L0A24          clr       u01E1               ; Clear index of sublist
+L0A27          lbsr      L0A58               ; Compare X to Y
+
+L0A2A          bcs       L0A2D               ; X is smaller ... keep going
 L0A2C          rts                           ; Done (C=0 not found)
-L0A2D          inc       $01E1               ; Keep up with index of sublist
+L0A2D          inc       u01E1               ; Keep up with index of sublist
 L0A30          cmpb      ,X                  ; Is this the sublist we want?
 
-L0A32          beq       L0A3F                ; Found ... C=1 and out
+L0A32          beq       L0A3F               ; Found ... C=1 and out
 L0A34          pshs      Y                   ; Hold the end
-L0A36          jsr       $0A42               ; Skip ID and read end of list to Y
+L0A36          lbsr      L0A42               ; Skip ID and read end of list to Y
 L0A39          tfr       Y,X                 ; Jump to the end of this list
 L0A3B          puls      Y                   ; Restore the end of the master lsit
 
-L0A3D          bra       L0A27                ; Keep looking for the sublist
+L0A3D          bra       L0A27               ; Keep looking for the sublist
 ;
 L0A3F          orcc      #$01                ; C=1
 L0A41          rts                           ; Done
@@ -730,7 +790,7 @@
 L0A47          ldb       ,X+                 ; Get lower
 L0A49          bitb      #$80                ; One or two byte value?
 
-L0A4B          beq       L0A53                ; Just a one byte ... use it
+L0A4B          beq       L0A53               ; Just a one byte ... use it
 L0A4D          andb      #$7F                ; This is the ...
 L0A4F          tfr       B,A                 ; ... MSB
 L0A51          ldb       ,X+                 ; Now get 2nd byte (LSB)
@@ -740,43 +800,43 @@
 
 ;##CompareXY
 ; Compare X to Y (flags = X - Y)
-L0A58          sty       $01A9               ; Do compare ...
-L0A5C          cmpx      $01A9               ; X - Y
+L0A58          sty       u01A9               ; Do compare ...
+L0A5C          cmpx      u01A9               ; X - Y
 L0A5F          rts                           ; Done
 
 ;##GetInputLine
 L0A60          ldx       #$05E0              ; Start of bottom row
-L0A63          jsr       $0B23               ; Slide bottom row to right after cursor and draw cursor
-L0A66          jsr       $0B2B               ; Get a key from the keyboard
+L0A63          lbsr      L0B23               ; Slide bottom row to right after cursor and draw cursor
+L0A66          lbsr      L0B2B               ; Get a key from the keyboard
 L0A69          cmpa      #$15                ;
 
-L0A6B          beq       L0A8D                ; Swap cursor and character to left
+L0A6B          beq       L0A8D               ; Swap cursor and character to left
 L0A6D          cmpa      #$5D                ; ']' ?
 
-L0A6F          beq       L0AA0                ; Swap cursor and character to right
+L0A6F          beq       L0AA0               ; Swap cursor and character to right
 L0A71          cmpa      #$09                ; Backspace
 
-L0A73          beq       L0AB3                ; Go handle backspace
+L0A73          beq       L0AB3               ; Go handle backspace
 L0A75          cmpa      #$0D                ; CR?
 
-L0A77          beq       L0AC8                ; Handle it and out
+L0A77          beq       L0AC8               ; Handle it and out
 L0A79          cmpa      #$0C                ; BREAK?
 
-L0A7B          beq       L0ACC                ; Yes ... clear the row
+L0A7B          beq       L0ACC               ; Yes ... clear the row
 L0A7D          cmpa      #$08                ; Backspace?
 
-L0A7F          beq       L0ABC                ; Yes go handle
+L0A7F          beq       L0ABC               ; Yes go handle
 L0A81          cmpx      #$05FF              ; At the end of the screen?
 
-L0A84          beq       L0A66                ; Yes ... ignore and get another
-L0A86          jsr       $0B06               ; Slide bottom row beyond insertion
+L0A84          beq       L0A66               ; Yes ... ignore and get another
+L0A86          lbsr      L0B06               ; Slide bottom row beyond insertion
 L0A89          sta       ,X+                 ; Store character
 
-L0A8B          bra       L0A66                ; Go get another character
+L0A8B          bra       L0A66               ; Go get another character
 
 L0A8D          cmpx      #$05E0              ; Nothing typed?
 
-L0A90          beq       L0A66                ; Yes ... ignore and get another
+L0A90          beq       L0A66               ; Yes ... ignore and get another
 L0A92          leax      -1,X                ; Swap ...
 L0A94          lda       ,X+                 ; ... cursor ...
 L0A96          sta       ,X                  ; ... and ...
@@ -784,11 +844,11 @@
 L0A9A          lda       #$CF                ; ... to the ...
 L0A9C          sta       ,X                  ; ... left
 
-L0A9E          bra       L0A66                ; Go get another character
+L0A9E          bra       L0A66               ; Go get another character
 
 L0AA0          cmpx      #$05FF              ; End of screen?
 
-L0AA3          beq       L0A66                ; Yes ... go get another key
+L0AA3          beq       L0A66               ; Yes ... go get another key
 L0AA5          leax      1,X                 ; Swap ...
 L0AA7          lda       ,X                  ; ... cursor ...
 L0AA9          leax      -1,X                ; ... and ...
@@ -796,23 +856,23 @@
 L0AAD          lda       #$CF                ; ... to the ...
 L0AAF          sta       ,X                  ; ... right
 
-L0AB1          bra       L0A66                ; Go get another key
+L0AB1          bra       L0A66               ; Go get another key
 ;
-L0AB3          jsr       $0ADB               ; Back off trailing cursor block
+L0AB3          lbsr      L0ADB               ; Back off trailing cursor block
 L0AB6          lda       #$CF                ; Store ...
 L0AB8          sta       ,X                  ; ... cursor block
 
-L0ABA          bra       L0A66                ; Go get another key
+L0ABA          bra       L0A66               ; Go get another key
 ;
 L0ABC          cmpx      #$05E0              ; At the start of the row?
 
-L0ABF          beq       L0A66                ; Yes ... go get another key
+L0ABF          beq       L0A66               ; Yes ... go get another key
 L0AC1          leax      -1,X                ; Back up one character
-L0AC3          jsr       $0ADB               ; Erase the end
-
-L0AC6          bra       L0A66                ; Go get another key
+L0AC3          lbsr      L0ADB               ; Erase the end
+
+L0AC6          bra       L0A66               ; Go get another key
 ;
-L0AC8          jsr       $0ADB               ; Back off cursor character
+L0AC8          lbsr      L0ADB               ; Back off cursor character
 L0ACB          rts                           ; Done
 ;
 L0ACC          ldx       #$05E0              ; Start of bottom row
@@ -821,7 +881,7 @@
 L0AD3          sta       ,X+                 ; Clear ...
 L0AD5          decb                          ; ... the ...
 
-L0AD6          bne       L0AD3                ; ... bottom row
+L0AD6          bne       L0AD3               ; ... bottom row
 L0AD8          jmp       $0A60               ; Go get another key
 ;
 L0ADB          tfr       X,U                 ; Hold X
@@ -831,18 +891,18 @@
 ;
 L0AE3          cmpy      #$0600              ; End of screen?
 
-L0AE7          beq       L0ACB                ; Yes out
+L0AE7          beq       L0ACB               ; Yes out
 L0AE9          cmpy      #$0601              ; End of screen?
 
-L0AED          beq       L0ACB                ; Yes out
+L0AED          beq       L0ACB               ; Yes out
 L0AEF          cmpy      #$0602              ; End of screen?
 
-L0AF3          beq       L0ACB                ; Yes out
+L0AF3          beq       L0ACB               ; Yes out
 L0AF5          lda       ,Y+                 ; Back ...
 L0AF7          sta       ,X+                 ; ... up ...
 L0AF9          cmpy      #$0600              ; ... row ...
 
-L0AFD          bne       L0AF5                ; ... over cursor
+L0AFD          bne       L0AF5               ; ... over cursor
 L0AFF          lda       #$60                ; Clear last ...
 L0B01          sta       ,X                  ; ... character
 L0B03          tfr       U,X                 ; Restore X
@@ -850,36 +910,36 @@
 ;
 L0B06          cmpx      #$0600              ; Past end of screen?
 
-L0B09          beq       L0B22                ; Yes ... out
-L0B0B          stx       $01A7               ; Hold insertion point
+L0B09          beq       L0B22               ; Yes ... out
+L0B0B          stx       u01A7               ; Hold insertion point
 L0B0E          ldx       #$0600              ; End+1
 L0B11          ldy       #$05FF              ; End
 L0B15          ldb       ,-Y                 ; Slide bottom row ...
 L0B17          stb       ,-X                 ; ... to the right
-L0B19          cmpx      $01A7               ; At the insertion point?
-
-L0B1C          bne       L0B15                ; No ... slide all
+L0B19          cmpx      u01A7               ; At the insertion point?
+
+L0B1C          bne       L0B15               ; No ... slide all
 L0B1E          ldb       #$60                ; SPACE
 L0B20          stb       ,X                  ; Clear first character
 L0B22          rts                           ; Done
 ;
-L0B23          jsr       $0B06               ; Slide row over from cursor
+L0B23          lbsr      L0B06               ; Slide row over from cursor
 L0B26          lda       #$CF                ; Cursor character (white block)
 L0B28          sta       ,X                  ; Cursor to screen
 L0B2A          rts                           ; Done
 
 ;##-GetKey
-L0B2B          jsr       $12A8               ; Get random number every key
+L0B2B          lbsr      L12A8               ; Get random number every key
 L0B2E          jsr       [$A000]             ; Get key from user
 L0B32          tsta                          ; Anything pressed?
 
-L0B33          beq       L0B2B                ; No ... keep waiting
+L0B33          beq       L0B2B               ; No ... keep waiting
 L0B35          cmpa      #$41                ; Letter 'A'
 
-L0B37          bcc       L0B3F                ; Greater or equal ... use it
+L0B37          bcc       L0B3F               ; Greater or equal ... use it
 L0B39          cmpa      #$20                ; Space
 
-L0B3B          bcs       L0B3F                ; Lower .... use it
+L0B3B          bcs       L0B3F               ; Lower .... use it
 L0B3D          adda      #$40                ; Not really sure why. '!' becomes 'a'.
 L0B3F          rts                           ; Done
 
@@ -898,43 +958,43 @@
 L0B40          leax      1,X                 ; Next in buffer
 ;
 L0B42          tfr       X,D                 ; Hold ...
-L0B44          stb       $01CF               ; ... LSB of first word (could be ignored)
+L0B44          stb       u01CF               ; ... LSB of first word (could be ignored)
 L0B47          cmpx      #$0600              ; End of buffer?
 
-L0B4A          beq       L0B3F                ; Yes ... out
+L0B4A          beq       L0B3F               ; Yes ... out
 L0B4C          lda       ,X                  ; Next in input
 L0B4E          cmpa      #$60                ; Valid character?
 
-L0B50          bcc       L0B40                ; No ... skip till we find one
+L0B50          bcc       L0B40               ; No ... skip till we find one
 L0B52          ldy       #$3C29              ; Word token table
-L0B56          jsr       $0B8B               ; Try first list
-
-L0B59          beq       L0B42                ; Found a match ... ignore it
+L0B56          lbsr      L0B8B               ; Try first list
+
+L0B59          beq       L0B42               ; Found a match ... ignore it
 L0B5B          ldb       #$01                ; Staring list number
 L0B5D          leay      1,Y                 ; Next list of words
-L0B5F          jsr       $0B8B               ; Try and match
-
-L0B62          beq       L0B6C                ; Found a match ... record it
+L0B5F          lbsr      L0B8B               ; Try and match
+
+L0B62          beq       L0B6C               ; Found a match ... record it
 L0B64          incb                          ; Next list of words
 L0B65          cmpb      #$05                ; All tried?
 
-L0B67          bne       L0B5D                ; No ... go back and try all
+L0B67          bne       L0B5D               ; No ... go back and try all
 L0B69          ora       #$01                ; Not-zero ... error
 L0B6B          rts                           ; Done
 
 L0B6C          exg       X,Y                 ; X to Y
-L0B6E          ldx       $01D8               ; Current result token pointer
+L0B6E          ldx       u01D8               ; Current result token pointer
 L0B71          stb       ,X+                 ; Store list number
 L0B73          sta       ,X+                 ; Store word number
-L0B75          lda       $01CF               ; Start of word
+L0B75          lda       u01CF               ; Start of word
 L0B78          sta       ,X+                 ; Store word start
-L0B7A          stx       $01D8               ; Bump result token pointer
+L0B7A          stx       u01D8               ; Bump result token pointer
 L0B7D          exg       X,Y                 ; Restore X
 L0B7F          cmpb      #$01                ; Is this the first (VERB) list?
 
-L0B81          bne       L0B89                ; No ... skip marking
-L0B83          lda       $01BC               ; Mark the input buffer location ...
-L0B86          sta       $01BB               ; ... of the verb
+L0B81          bne       L0B89               ; No ... skip marking
+L0B83          lda       u01BC               ; Mark the input buffer location ...
+L0B86          sta       u01BB               ; ... of the verb
 L0B89          clra                          ; OK
 L0B8A          rts                           ; Return
 
@@ -952,68 +1012,68 @@
 ;
 L0B8B          lda       ,Y                  ; Length of word
 
-L0B8D          bne       L0B92                ; It is a word ... go check it
+L0B8D          bne       L0B92               ; It is a word ... go check it
 L0B8F          ora       #$01                ; End of list ...
 L0B91          rts                           ; ... return not-zero
-L0B92          sta       $01AB               ; Temporary
-L0B95          sta       $01D0               ; Temporary
+L0B92          sta       u01AB               ; Temporary
+L0B95          sta       u01D0               ; Temporary
 L0B98          pshs      X                   ; Hold pointer to input word
 L0B9A          leay      1,Y                 ; Skip over word length in table
 L0B9C          lda       ,X                  ; Character from input (from screen)
 L0B9E          cmpa      #$60                ; Space?
 
-L0BA0          beq       L0BF5                ; Yes. Didn't match the target word. Next.
+L0BA0          beq       L0BF5               ; Yes. Didn't match the target word. Next.
 L0BA2          cmpx      #$0600              ; Past screen (end of buffer)?
 
-L0BA5          beq       L0BF5                ; Yes. Didn't match the target word. next
+L0BA5          beq       L0BF5               ; Yes. Didn't match the target word. next
 L0BA7          cmpa      #$60                ; Valid character?
 
-L0BA9          bcs       L0BAF                ; Yes ... do compare
+L0BA9          bcs       L0BAF               ; Yes ... do compare
 L0BAB          leax      1,X                 ; No ... skip this
 
-L0BAD          bra       L0B9C                ; Look for valid character
+L0BAD          bra       L0B9C               ; Look for valid character
 L0BAF          cmpa      ,Y                  ; Matches target word?
 
-L0BB1          bne       L0BF5                ; No ... next word
+L0BB1          bne       L0BF5               ; No ... next word
 L0BB3          leax      1,X                 ; Next in input
 L0BB5          leay      1,Y                 ; Next in match
-L0BB7          dec       $01AB               ; All done?
-
-L0BBA          bne       L0B9C                ; No ... keep looking
-L0BBC          lda       $01D0               ; Original length
+L0BB7          dec       u01AB               ; All done?
+
+L0BBA          bne       L0B9C               ; No ... keep looking
+L0BBC          lda       u01D0               ; Original length
 L0BBF          cmpa      #$06                ; Six letter input?
 
-L0BC1          beq       L0BC9                ; Yes ... could be truncated. That's enough of a match.
+L0BC1          beq       L0BC9               ; Yes ... could be truncated. That's enough of a match.
 L0BC3          lda       ,X                  ; Next from screen
 L0BC5          cmpa      #$60                ; Space? End of word?
 
-L0BC7          bcs       L0BFC                ; No. Try next word
+L0BC7          bcs       L0BFC               ; No. Try next word
 L0BC9          lda       ,Y                  ; Get the word data
 L0BCB          puls      Y                   ; Drop the input buffer pointer
-L0BCD          sta       $01AB               ; Hold the word data
+L0BCD          sta       u01AB               ; Hold the word data
 L0BD0          lda       ,X                  ; Next in input buffer?
 L0BD2          cmpa      #$60                ; Is it a space?
 
-L0BD4          beq       L0BE2                ; Yes ... ready for next word
-L0BD6          stx       $01A7               ; Start of next word (in case end of buffer)
+L0BD4          beq       L0BE2               ; Yes ... ready for next word
+L0BD6          stx       u01A7               ; Start of next word (in case end of buffer)
 L0BD9          cmpx      #$0600              ; Is this the end of the input buffer?
 
-L0BDC          beq       L0BE8                ; Yes. Done
+L0BDC          beq       L0BE8               ; Yes. Done
 L0BDE          leax      1,X                 ; Skip to next input word
 
-L0BE0          bra       L0BD0                ; Keep looking for input
-L0BE2          stx       $01A7               ; Pointer to ending space
-L0BE5          inc       $01A8               ; Point to next character past space (start of next word)
-L0BE8          lda       $01A8               ; Keep ...
-L0BEB          sta       $01BC               ; ... only LSB
-L0BEE          lda       $01AB               ; Return word data in A
-L0BF1          clr       $01A7               ; return is-zero for found
+L0BE0          bra       L0BD0               ; Keep looking for input
+L0BE2          stx       u01A7               ; Pointer to ending space
+L0BE5          inc       u01A8               ; Point to next character past space (start of next word)
+L0BE8          lda       u01A8               ; Keep ...
+L0BEB          sta       u01BC               ; ... only LSB
+L0BEE          lda       u01AB               ; Return word data in A
+L0BF1          clr       u01A7               ; return is-zero for found
 L0BF4          rts                           ; Done
 ;
 L0BF5          leay      1,Y                 ; Skip next in word data
-L0BF7          dec       $01AB               ; All skipped
-
-L0BFA          bne       L0BF5                ; No ... skip all
+L0BF7          dec       u01AB               ; All skipped
+
+L0BFA          bne       L0BF5               ; No ... skip all
 L0BFC          puls      X                   ; Restore pointer to word
 L0BFE          leay      1,Y                 ; Skip word data
 L0C00          jmp       $0B8B               ; Keep trying
@@ -1024,14 +1084,14 @@
 L0C05          tfr       A,B                 ; Hold original command
 L0C07          bita      #$80                ; Upper bit set?
 
-L0C09          beq       L0C1E                ; No ... do commands
+L0C09          beq       L0C1E               ; No ... do commands
 L0C0B          pshs      Y,X                 ; Hold
 L0C0D          ldx       #$37FA              ; Common commands
-L0C10          jsr       $0A1F               ; Find common command
-
-L0C13          bcc       L0C1B                ; Not found ... skip
-L0C15          jsr       $0A42               ; Skip length of command
-L0C18          jsr       $0C03               ; Execute command
+L0C10          lbsr      L0A1F               ; Find common command
+
+L0C13          bcc       L0C1B               ; Not found ... skip
+L0C15          lbsr      L0A42               ; Skip length of command
+L0C18          lbsr      L0C03               ; Execute command
 L0C1B          puls      X,Y                 ; Restore
 L0C1D          rts                           ; Out
 
@@ -1044,15 +1104,15 @@
 ; Execute a list of commands as long as they pass. Either way end pointing one
 ; past end.
 ; Data: LENGTH + list of command
-L0C27          jsr       $0A44               ; Read length of command
-L0C2A          jsr       $0A58               ; Are we past the end?
-
-L0C2D          bcc       L0C3B                ; Yes ... end successfully
+L0C27          lbsr      L0A44               ; Read length of command
+L0C2A          lbsr      L0A58               ; Are we past the end?
+
+L0C2D          bcc       L0C3B               ; Yes ... end successfully
 L0C2F          pshs      Y                   ; Hold the end
-L0C31          jsr       $0C03               ; Execute the command
+L0C31          lbsr      L0C03               ; Execute the command
 L0C34          puls      Y                   ; Restore the end
 
-L0C36          beq       L0C2A                ; Command successful? Yes ... keep processing
+L0C36          beq       L0C2A               ; Command successful? Yes ... keep processing
 L0C38          exg       X,Y                 ; Fail ... put us at the end
 L0C3A          rts                           ; Done
 L0C3B          exg       X,Y                 ; Point to end of list
@@ -1060,15 +1120,15 @@
 L0C3E          rts                           ; Done
 
 ;##Com0E_ExecuteFailingList
-L0C3F          jsr       $0A44               ; Load the end
-L0C42          jsr       $0A58               ; Reached end of list?
-
-L0C45          bcc       L0C53                ; Yes ... error
+L0C3F          lbsr      L0A44               ; Load the end
+L0C42          lbsr      L0A58               ; Reached end of list?
+
+L0C45          bcc       L0C53               ; Yes ... error
 L0C47          pshs      Y                   ; Hold end of command
-L0C49          jsr       $0C03               ; Execute command
+L0C49          lbsr      L0C03               ; Execute command
 L0C4C          puls      Y                   ; Restore end
 
-L0C4E          bne       L0C42                ; Command failed ... try next
+L0C4E          bne       L0C42               ; Command failed ... try next
 L0C50          exg       X,Y                 ; Set script pointer to end of list
 L0C52          rts                           ; Out
 ; 
@@ -1077,32 +1137,32 @@
 L0C57          rts                           ; Done
 
 ;##Com0B_Switch
-L0C58          jsr       $0A44               ; Get size of switch list
+L0C58          lbsr      L0A44               ; Get size of switch list
 L0C5B          ldb       ,X+                 ; Get function to call
-L0C5D          jsr       $0A58               ; End of options?
-
-L0C60          bcc       L0C53                ; Yes ... out with error
+L0C5D          lbsr      L0A58               ; End of options?
+
+L0C60          bcc       L0C53               ; Yes ... out with error
 L0C62          pshs      Y                   ; Hold total switch size
 L0C64          pshs      B                   ; Hold function to call
 L0C66          tfr       B,A                 ; Call the ...
-L0C68          jsr       $0C20               ; ... target function
+L0C68          lbsr      L0C20               ; ... target function
 L0C6B          puls      B                   ; Restore function to call
 
-L0C6D          beq       L0C78                ; Got our script ... go do it
-L0C6F          jsr       $0A44               ; Size of pass script
+L0C6D          beq       L0C78               ; Got our script ... go do it
+L0C6F          lbsr      L0A44               ; Size of pass script
 L0C72          exg       X,Y                 ; Skip over this option
 L0C74          puls      Y                   ; End of script
 
-L0C76          bra       L0C5D                ; Keep looking
-L0C78          jsr       $0A44               ; Skip length
-L0C7B          jsr       $0C03               ; Execute
+L0C76          bra       L0C5D               ; Keep looking
+L0C78          lbsr      L0A44               ; Skip length
+L0C7B          lbsr      L0C03               ; Execute
 L0C7E          puls      X                   ; Restore script
 L0C80          rts                           ; Done
 
 ;##Com00_MoveActiveObjectToRoomAndLook
-L0C81          jsr       $0C8D               ; Move active object to new room
+L0C81          lbsr      L0C8D               ; Move active object to new room
 L0C84          pshs      X                   ; Hold script
-L0C86          jsr       $0D4A               ; Print room description and objects
+L0C86          lbsr      L0D4A               ; Print room description and objects
 L0C89          puls      X                   ; Restore script
 L0C8B          clra                          ; OK
 L0C8C          rts                           ; Done
@@ -1110,145 +1170,145 @@
 ;##Com19_MoveActiveObjectToRoom
 L0C8D          lda       ,X+                 ; New room number
 L0C8F          pshs      X                   ; Hold script
-L0C91          sta       $01D5               ; Store new actvie room number
+L0C91          sta       u01D5               ; Store new actvie room number
 L0C94          tfr       A,B                 ; Store ...
 L0C96          ldx       #$1523              ; ... pointer ...
-L0C99          jsr       $0A1F               ; ... to ...
-L0C9C          stx       $01D6               ; ... new room
-L0C9F          ldx       $01D3               ; Active object
-L0CA2          jsr       $0A42               ; Skip size
-L0CA5          lda       $01D5               ; New location
+L0C99          lbsr      L0A1F               ; ... to ...
+L0C9C          stx       u01D6               ; ... new room
+L0C9F          ldx       u01D3               ; Active object
+L0CA2          lbsr      L0A42               ; Skip size
+L0CA5          lda       u01D5               ; New location
 L0CA8          sta       ,X                  ; Move object to active room
 L0CAA          puls      X                   ; Restore script
 L0CAC          clra                          ; OK
 L0CAD          rts                           ; Done
 
 ;##Com1A_SetVarObjectTo1stNoun
-L0CAE          ldu       $01C6               ; Copy 1st noun ...
-L0CB1          stu       $01C0               ; ... data pointer
-L0CB4          lda       $01C3               ; Copy 1st noun ...
-L0CB7          sta       $01BF               ; ... object number
+L0CAE          ldu       u01C6               ; Copy 1st noun ...
+L0CB1          stu       u01C0               ; ... data pointer
+L0CB4          lda       u01C3               ; Copy 1st noun ...
+L0CB7          sta       u01BF               ; ... object number
 L0CBA          clra                          ; Z=1 for OK
 L0CBB          rts                           ; Done
 
 ;##Com1B_SetVarObjectTo2ndNoun
-L0CBC          ldu       $01CC               ; Copy 2nd noun ...
-L0CBF          stu       $01C0               ; ... data pointer
-L0CC2          lda       $01C9               ; Copy 2nd noun ...
-L0CC5          sta       $01BF               ; ... object number
+L0CBC          ldu       u01CC               ; Copy 2nd noun ...
+L0CBF          stu       u01C0               ; ... data pointer
+L0CC2          lda       u01C9               ; Copy 2nd noun ...
+L0CC5          sta       u01BF               ; ... object number
 L0CC8          clra                          ; Z=1 for OK
 L0CC9          rts                           ; Done
 
 ;##Com1C_SetVarObject
 L0CCA          ldb       ,X+                 ; Get object number from script
 L0CCC          pshs      X                   ; Hold script pointer
-L0CCE          stb       $01BF               ; Store target object number
-
-L0CD1          beq       L0CD9                ; 0 ... no-object
-L0CD3          jsr       $1133               ; Find object data
-L0CD6          stx       $01C0               ; Store target object data
+L0CCE          stb       u01BF               ; Store target object number
+
+L0CD1          beq       L0CD9               ; 0 ... no-object
+L0CD3          lbsr      L1133               ; Find object data
+L0CD6          stx       u01C0               ; Store target object data
 L0CD9          puls      X                   ; Restore script
 L0CDB          clra                          ; Return OK
 L0CDC          rts                           ; Done
 
 ;##Com21_RunGeneralWithTempPhrase
-L0CDD          ldu       $01C6               ; 1st noun data ...
+L0CDD          ldu       u01C6               ; 1st noun data ...
 L0CE0          pshs      U                   ; ... on stack
-L0CE2          ldu       $01CC               ; 2nd noun data ...
+L0CE2          ldu       u01CC               ; 2nd noun data ...
 L0CE5          pshs      U                   ; ... on stack
-L0CE7          lda       $01C9               ; 2nd noun number
-L0CEA          ldb       $01C3               ; 1st noun number
+L0CE7          lda       u01C9               ; 2nd noun number
+L0CEA          ldb       u01C3               ; 1st noun number
 L0CED          pshs      B,A                 ; Hold these
-L0CEF          lda       $01D1               ; Phrase number
+L0CEF          lda       u01D1               ; Phrase number
 L0CF2          pshs      A                   ; Hold it
 L0CF4          lda       ,X+                 ; New temporary ...
-L0CF6          sta       $01D1               ; ... phrase number
+L0CF6          sta       u01D1               ; ... phrase number
 L0CF9          ldd       ,X++                ; Temporary 1st and 2nd noun numbers
-L0CFB          stb       $01AB               ; Hold 2nd noun for now
+L0CFB          stb       u01AB               ; Hold 2nd noun for now
 L0CFE          pshs      X                   ; Hold script
-L0D00          sta       $01C3               ; Temporary 1st noun
+L0D00          sta       u01C3               ; Temporary 1st noun
 L0D03          tfr       A,B                 ; To B (for lookup)
 
-L0D05          beq       L0D0D                ; Not one ... skip
-L0D07          jsr       $1133               ; Lookup object in B
-L0D0A          stx       $01C6               ; Temporary 1st noun data
-L0D0D          ldb       $01AB               ; Temporary 2nd noun ...
-L0D10          stb       $01C9               ; ... index
-
-L0D13          beq       L0D1B                ; There isn't one ... skip
-L0D15          jsr       $1133               ; Lookup object in B
-L0D18          stx       $01CC               ; Temporary 2nd noun
+L0D05          beq       L0D0D               ; Not one ... skip
+L0D07          lbsr      L1133               ; Lookup object in B
+L0D0A          stx       u01C6               ; Temporary 1st noun data
+L0D0D          ldb       u01AB               ; Temporary 2nd noun ...
+L0D10          stb       u01C9               ; ... index
+
+L0D13          beq       L0D1B               ; There isn't one ... skip
+L0D15          lbsr      L1133               ; Lookup object in B
+L0D18          stx       u01CC               ; Temporary 2nd noun
 L0D1B          ldx       #$323C              ; General commands
-L0D1E          jsr       $0A42               ; Skip ID and length
-L0D21          jsr       $0C03               ; Execute general script
+L0D1E          lbsr      L0A42               ; Skip ID and length
+L0D21          lbsr      L0C03               ; Execute general script
 L0D24          tfr       CC,A                ; Hold the result ...
-L0D26          sta       $01AB               ; ... for a moment
+L0D26          sta       u01AB               ; ... for a moment
 L0D29          puls      Y                   ;
 L0D2B          puls      A                   ;
-L0D2D          sta       $01D1               ; Restore ...
+L0D2D          sta       u01D1               ; Restore ...
 L0D30          puls      A,B                 ; ... phrase ...
-L0D32          stb       $01C3               ; ... and ...
-L0D35          sta       $01C9               ; ... nouns
+L0D32          stb       u01C3               ; ... and ...
+L0D35          sta       u01C9               ; ... nouns
 L0D38          puls      U                   ;
-L0D3A          stu       $01CC               ;
+L0D3A          stu       u01CC               ;
 L0D3D          puls      U                   ;
-L0D3F          stu       $01C6               ;
+L0D3F          stu       u01C6               ;
 L0D42          exg       X,Y                 ;
-L0D44          lda       $01AB               ;
+L0D44          lda       u01AB               ;
 L0D47          tfr       A,CC                ; Restore result
 L0D49          rts                           ; Done
 
 ; Print room description
-L0D4A          lda       $01D2               ; Actiuve object number
+L0D4A          lda       u01D2               ; Actiuve object number
 L0D4D          cmpa      #$1D                ; Is this the SYSTEM object?
 
-L0D4F          bne       L0D49                ; No ... return
-L0D51          ldx       $01D6               ; Current room script
-L0D54          jsr       $0A42               ; Skip length
+L0D4F          bne       L0D49               ; No ... return
+L0D51          ldx       u01D6               ; Current room script
+L0D54          lbsr      L0A42               ; Skip length
 L0D57          leax      1,X                 ;
 L0D59          ldb       #$03                ; You are in DESCRIPTION script
-L0D5B          jsr       $0A27               ; Get room description
-
-L0D5E          bcc       L0D65                ; No room description ... print objects in room
+L0D5B          lbsr      L0A27               ; Get room description
+
+L0D5E          bcc       L0D65               ; No room description ... print objects in room
 L0D60          leax      1,X                 ; Assume length is one byte
-L0D62          jsr       $114C               ; Print the packed message
+L0D62          lbsr      L114C               ; Print the packed message
 ;
 ; Print object descriptions
 ;
 L0D65          ldx       #$20FF              ; Object data
-L0D68          jsr       $0A42               ; Skip length
+L0D68          lbsr      L0A42               ; Skip length
 L0D6B          pshs      Y                   ; Hold end
-L0D6D          jsr       $0A42               ; Skip this object's length
-L0D70          lda       $01D5               ; Current room
+L0D6D          lbsr      L0A42               ; Skip this object's length
+L0D70          lda       u01D5               ; Current room
 L0D73          cmpa      ,X                  ; Object in room?
 
-L0D75          bne       L0D89                ; No ... next object
+L0D75          bne       L0D89               ; No ... next object
 L0D77          leax      3,X                 ; Skip data
 L0D79          ldb       #$03                ; Get description ...
-L0D7B          jsr       $0A27               ; ... field
-
-L0D7E          bcc       L0D89                ; No description ... next object
+L0D7B          lbsr      L0A27               ; ... field
+
+L0D7E          bcc       L0D89               ; No description ... next object
 L0D80          leax      1,X                 ; Skip length
 L0D82          pshs      Y                   ; Hold end of object
-L0D84          jsr       $114C               ; Print description
+L0D84          lbsr      L114C               ; Print description
 L0D87          puls      Y                   ; Restore length
 L0D89          exg       X,Y                 ; Next object
 L0D8B          puls      Y                   ; End of objects
-L0D8D          jsr       $0A58               ; All done?
-
-L0D90          bcs       L0D6B                ; No ... keep printing
+L0D8D          lbsr      L0A58               ; All done?
+
+L0D90          bcs       L0D6B               ; No ... keep printing
 L0D92          rts                           ; Done
 
 ;##Com01_IsObjectInPackOrRoom
 L0D93          ldb       ,X+                 ; Get object number from script
 L0D95          pshs      X                   ; Hold script pointer
-L0D97          jsr       $1133               ; Get object data
-L0D9A          jsr       $08AA               ; See if it is in pack or room
+L0D97          lbsr      L1133               ; Get object data
+L0D9A          lbsr      L08AA               ; See if it is in pack or room
 L0D9D          puls      X                   ; Restore script
 L0D9F          rts                           ; Out
 
 ;##Com20_CheckActiveObject
-L0DA0          lda       $01D2               ; Active object
+L0DA0          lda       u01D2               ; Active object
 L0DA3          cmpa      ,X+                 ; Matches target?
 L0DA5          rts                           ; Done
 
@@ -1260,11 +1320,11 @@
 ; Check to see if an object is at a target location.
 L0DAB          ldd       ,X++                ; Room and object
 L0DAD          pshs      X                   ; Hold script
-L0DAF          sta       $01AB               ; Remember the room
-L0DB2          jsr       $1133               ; Locate the object
-L0DB5          jsr       $0A42               ; Skip the length
+L0DAF          sta       u01AB               ; Remember the room
+L0DB2          lbsr      L1133               ; Locate the object
+L0DB5          lbsr      L0A42               ; Skip the length
 L0DB8          ldd       ,X++                ; Get the room to A
-L0DBA          cmpa      $01AB               ; Is this object in the target place?
+L0DBA          cmpa      u01AB               ; Is this object in the target place?
 L0DBD          puls      X                   ; Restore script
 L0DBF          rts                           ; Out
 
@@ -1274,101 +1334,101 @@
 L0DC2          rts                           ; Done
 
 ;##Com04_PrintSYSTEMOrPlayerMessage
-L0DC3          lda       $01D2               ; Active object
+L0DC3          lda       u01D2               ; Active object
 L0DC6          cmpa      #$1D                ; Is this the player?
 
 
-L0DC8          bne       L0DD8                ; No ... must be system
+L0DC8          bne       L0DD8               ; No ... must be system
 
 ;##Com1F_PrintMessage
 L0DCA          ldb       #$1D                ; Player number
 L0DCC          pshs      X                   ; Hold script
-L0DCE          jsr       $1133               ; Look up Player
-L0DD1          jsr       $08AA               ; Is Player in current room?
+L0DCE          lbsr      L1133               ; Look up Player
+L0DD1          lbsr      L08AA               ; Is Player in current room?
 L0DD4          puls      X                   ; Restore
 
-L0DD6          beq       L0DDF                ; Yes ... do printing
-L0DD8          jsr       $0A44               ; Skip to ...
+L0DD6          beq       L0DDF               ; Yes ... do printing
+L0DD8          lbsr      L0A44               ; Skip to ...
 L0DDB          exg       X,Y                 ; ... end of packed message.
 
-L0DDD          bra       L0DE2                ; Return OK but no printing
-L0DDF          jsr       $114C               ; Print packed message at X
+L0DDD          bra       L0DE2               ; Return OK but no printing
+L0DDF          lbsr      L114C               ; Print packed message at X
 L0DE2          clra                          ; OK
 L0DE3          rts                           ; Done
 
 ;##Com07_Look
-L0DE4          jsr       $0D4A               ; Print room description
+L0DE4          lbsr      L0D4A               ; Print room description
 L0DE7          clra                          ; OK
 L0DE8          rts                           ; Done
 
 ;##Com06_Inventory
 L0DE9          pshs      X                   ; Hold script pointer
 L0DEB          lda       #$0D                ; Print ...
-L0DED          jsr       $1184               ; ... CR
+L0DED          lbsr      L1184               ; ... CR
 L0DF0          ldx       #$20FF              ; Objects
-L0DF3          jsr       $0A42               ; Skip size of objects
+L0DF3          lbsr      L0A42               ; Skip size of objects
 ;
-L0DF6          jsr       $0A58               ; CompareXY
-
-L0DF9          bcc       L0E1F                ; End of list ... out
+L0DF6          lbsr      L0A58               ; CompareXY
+
+L0DF9          bcc       L0E1F               ; End of list ... out
 L0DFB          pshs      Y                   ; Hold end of master list of objects
-L0DFD          jsr       $0A42               ; Get pointer to next object
+L0DFD          lbsr      L0A42               ; Get pointer to next object
 L0E00          ldb       ,X                  ; Object location
-L0E02          cmpb      $01D2               ; Active object?
-
-L0E05          bne       L0E19                ; No ... skip this object
+L0E02          cmpb      u01D2               ; Active object?
+
+L0E05          bne       L0E19               ; No ... skip this object
 L0E07          leax      3,X                 ; Skip data
 L0E09          ldb       #$02                ; Find short name ...
-L0E0B          jsr       $0A27               ; ... string
-
-L0E0E          bcc       L0E19                ; No short name ... skip
+L0E0B          lbsr      L0A27               ; ... string
+
+L0E0E          bcc       L0E19               ; No short name ... skip
 L0E10          leax      1,X                 ; Skip the 02 data id
 L0E12          pshs      Y                   ; Hold next-object
-L0E14          jsr       $1143               ; Print packed message and CR
+L0E14          lbsr      L1143               ; Print packed message and CR
 L0E17          puls      Y                   ; Restore next-object
 L0E19          exg       X,Y                 ; Move to next object
 L0E1B          puls      Y                   ; End of master list
 
-L0E1D          bra       L0DF6                ; Do all objects
+L0E1D          bra       L0DF6               ; Do all objects
 L0E1F          clra                          ; Success
 L0E20          puls      X                   ; Restore script pointer
 L0E22          rts                           ; Done
 
 ;##Com08_CompareObjectToFirstNoun
-L0E23          ldu       $01C6               ; 1st noun data
-L0E26          lda       $01C3               ; 1st noun number
+L0E23          ldu       u01C6               ; 1st noun data
+L0E26          lda       u01C3               ; 1st noun number
 ;
-L0E29          stu       $01D8               ; Hold
+L0E29          stu       u01D8               ; Hold
 L0E2C          tsta                          ; Is there an object?
 
-L0E2D          beq       L0E3F                ; No ... error
+L0E2D          beq       L0E3F               ; No ... error
 L0E2F          ldb       ,X+                 ; Object number from script
 L0E31          pshs      X                   ; Hold script
-L0E33          jsr       $1133               ; Find object
+L0E33          lbsr      L1133               ; Find object
 L0E36          exg       X,Y                 ; Pointer of found object to Y
 L0E38          puls      X                   ; Restore script pointer
-L0E3A          cmpy      $01D8               ; Object the same?
+L0E3A          cmpy      u01D8               ; Object the same?
 L0E3E          rts                           ; Done
 L0E3F          tstb                          ; B can't be 0 ... Z=0 error
 L0E40          rts                           ; Done
 
 ;##Com09_CompareObjectToSecondNoun
-L0E41          ldu       $01CC               ; 2nd noun data
-L0E44          lda       $01C9               ; 2nd noun number
-
-L0E47          bra       L0E29                ; Do compare
+L0E41          ldu       u01CC               ; 2nd noun data
+L0E44          lda       u01C9               ; 2nd noun number
+
+L0E47          bra       L0E29               ; Do compare
 
 ;##Com0A_CompareToPhraseForm
 L0E49          ldb       ,X+                 ; Compare from script ...
-L0E4B          cmpb      $01D1               ; ... to phrase form
+L0E4B          cmpb      u01D1               ; ... to phrase form
 L0E4E          rts                           ; Done
 
 ;##Com0F_PickUpObject
 ; Move noun object to pack.
 L0E4F          pshs      X                   ; Hold script
-L0E51          ldx       $01C0               ; Pointer to noun object
-L0E54          jsr       $0A42               ; Skip length
-L0E57          lda       $01D2               ; Back pack "location" value
+L0E51          ldx       u01C0               ; Pointer to noun object
+L0E54          lbsr      L0A42               ; Skip length
+L0E57          lda       u01D2               ; Back pack "location" value
 L0E5A          sta       ,X                  ; Move object to pack
 L0E5C          clra                          ; OK
 L0E5D          puls      X                   ; Restore script
@@ -1377,9 +1437,9 @@
 ;##Com10_DropObject
 ; Move noun object to current room.
 L0E60          pshs      X                   ; Hold script
-L0E62          ldx       $01C0               ; Pointer to noun object
-L0E65          jsr       $0A42               ; Skip length
-L0E68          lda       $01D5               ; Current room
+L0E62          ldx       u01C0               ; Pointer to noun object
+L0E65          lbsr      L0A42               ; Skip length
+L0E68          lda       u01D5               ; Current room
 L0E6B          sta       ,X                  ; Move object to room
 L0E6D          puls      X                   ; Restore script
 L0E6F          clra                          ; Done
@@ -1387,97 +1447,97 @@
 
 ;##Com13_PhraseWithRoom1st2nd
 L0E71          pshs      X                   ; Save script
-L0E73          ldx       $01D6               ; Current room script
-L0E76          jsr       $0A42               ; Skip id and length
+L0E73          ldx       u01D6               ; Current room script
+L0E76          lbsr      L0A42               ; Skip id and length
 L0E79          leax      1,X                 ; Skip
 L0E7B          ldb       #$04                ; Get ...
-L0E7D          jsr       $0A27               ; ... phrase script
-
-L0E80          bcc       L0E8A                ; No phrase script ... skip
-L0E82          jsr       $0A42               ; Skip id and length
-L0E85          jsr       $0C03               ; Execute
-
-L0E88          beq       L0EC5                ; Move passed ... OK and out
-L0E8A          lda       $01C9               ; Is there a 2nd noun?
-
-L0E8D          beq       L0EA6                ; No ... skip
-L0E8F          ldx       $01CC               ; Second noun data
-L0E92          jsr       $0A42               ; Skip ...
+L0E7D          lbsr      L0A27               ; ... phrase script
+
+L0E80          bcc       L0E8A               ; No phrase script ... skip
+L0E82          lbsr      L0A42               ; Skip id and length
+L0E85          lbsr      L0C03               ; Execute
+
+L0E88          beq       L0EC5               ; Move passed ... OK and out
+L0E8A          lda       u01C9               ; Is there a 2nd noun?
+
+L0E8D          beq       L0EA6               ; No ... skip
+L0E8F          ldx       u01CC               ; Second noun data
+L0E92          lbsr      L0A42               ; Skip ...
 L0E95          leax      3,X                 ; ... object header
 L0E97          ldb       #$06                ; Get "noun is second" ...
-L0E99          jsr       $0A27               ; ... phrase script
-
-L0E9C          bcc       L0EA6                ; None ... move on
-L0E9E          jsr       $0A42               ; Skip header
-L0EA1          jsr       $0C03               ; Execute script
-
-L0EA4          beq       L0EC5                ; Script passed ... OK and out
-L0EA6          lda       $01C3               ; Is there a 1st noun?
-
-L0EA9          bne       L0EB0                ; Yes ... go do it
+L0E99          lbsr      L0A27               ; ... phrase script
+
+L0E9C          bcc       L0EA6               ; None ... move on
+L0E9E          lbsr      L0A42               ; Skip header
+L0EA1          lbsr      L0C03               ; Execute script
+
+L0EA4          beq       L0EC5               ; Script passed ... OK and out
+L0EA6          lda       u01C3               ; Is there a 1st noun?
+
+L0EA9          bne       L0EB0               ; Yes ... go do it
 L0EAB          puls      X                   ; Restore script
 L0EAD          ora       #$01                ; Nobody took the phrase ..
 L0EAF          rts                           ; .. error and and out
-L0EB0          ldx       $01C6               ; First noun data
-L0EB3          jsr       $0A42               ; Skip ...
+L0EB0          ldx       u01C6               ; First noun data
+L0EB3          lbsr      L0A42               ; Skip ...
 L0EB6          leax      3,X                 ; ... object header
 L0EB8          ldb       #$07                ; Get "noun is first" ...
-L0EBA          jsr       $0A27               ; ... phrase script
-
-L0EBD          bcc       L0EAB                ; None ... error and out
-L0EBF          jsr       $0A42               ; Skip the id and length
-L0EC2          jsr       $0C03               ; Execute script (use return)
+L0EBA          lbsr      L0A27               ; ... phrase script
+
+L0EBD          bcc       L0EAB               ; None ... error and out
+L0EBF          lbsr      L0A42               ; Skip the id and length
+L0EC2          lbsr      L0C03               ; Execute script (use return)
 L0EC5          puls      X                   ; Restore script pointer
 L0EC7          rts                           ; Done
 
 ;##Com16_PrintVarShortName
 L0EC8          pshs      X                   ; Save script pointer
-L0ECA          ldx       $01C0               ; Var noun data
-L0ECD          lda       $01BF               ; Var noun index
-
-L0ED0          bra       L0EDA                ; Print short name
+L0ECA          ldx       u01C0               ; Var noun data
+L0ECD          lda       u01BF               ; Var noun index
+
+L0ED0          bra       L0EDA               ; Print short name
 
 ;##Com11_Print1stNounShortName
 L0ED2          pshs      X                   ; Save script pointer
-L0ED4          ldx       $01C6               ; 1st noun data
-L0ED7          lda       $01C3               ; 1st noun index
+L0ED4          ldx       u01C6               ; 1st noun data
+L0ED7          lda       u01C3               ; 1st noun index
 ;
 
-L0EDA          beq       L0EC5                ; Return Z=1 return
+L0EDA          beq       L0EC5               ; Return Z=1 return
 L0EDC          ldb       #$1D                ; User object
 L0EDE          pshs      X                   ; Hold noun data
-L0EE0          jsr       $1133               ; Lookup user object
-L0EE3          jsr       $08AA               ; User in current room?
+L0EE0          lbsr      L1133               ; Lookup user object
+L0EE3          lbsr      L08AA               ; User in current room?
 L0EE6          puls      X                   ; Restore noun data
 
-L0EE8          bne       L0EFB                ; Not in current room ... skip print
-L0EEA          jsr       $0A42               ; Skip object ...
+L0EE8          bne       L0EFB               ; Not in current room ... skip print
+L0EEA          lbsr      L0A42               ; Skip object ...
 L0EED          leax      3,X                 ; ... header
 L0EEF          ldb       #$02                ; Get object ...
-L0EF1          jsr       $0A27               ; ... short name
-
-L0EF4          bcc       L0EFB                ; No short name ... out with OK
+L0EF1          lbsr      L0A27               ; ... short name
+
+L0EF4          bcc       L0EFB               ; No short name ... out with OK
 L0EF6          leax      1,X                 ; Skip the 2
-L0EF8          jsr       $114C               ; Print packed message at X
+L0EF8          lbsr      L114C               ; Print packed message at X
 L0EFB          puls      X                   ; Restore script
 L0EFD          clra                          ; Return ...
 L0EFE          rts                           ; ... OK
 
 ;##Com12_Print2ndNounShortName
 L0EFF          pshs      X                   ; Save script pointer
-L0F01          ldx       $01CC               ; 2nd noun data
-L0F04          lda       $01C9               ; 2nd noun index
-
-L0F07          bra       L0EDA                ; Print short name
+L0F01          ldx       u01CC               ; 2nd noun data
+L0F04          lda       u01C9               ; 2nd noun index
+
+L0F07          bra       L0EDA               ; Print short name
 
 ;##Com15_CheckObjBits
 ; Check target bits in an object.
 L0F09          pshs      X                   ; Hold script pointer
-L0F0B          ldx       $01C0               ; Input object pointer
-L0F0E          lda       $01BF               ; Var object number
-
-L0F11          beq       L0F21                ; No object ... return error
-L0F13          jsr       $0A42               ; Skip the pointer-to-next object
+L0F0B          ldx       u01C0               ; Input object pointer
+L0F0E          lda       u01BF               ; Var object number
+
+L0F11          beq       L0F21               ; No object ... return error
+L0F13          lbsr      L0A42               ; Skip the pointer-to-next object
 L0F16          leax      2,X                 ; Skip to data byte
 L0F18          lda       ,X                  ; Get the object data
 L0F1A          puls      X                   ; Restore the script
@@ -1491,9 +1551,9 @@
 L0F27          rts                           ; Return
 
 ;##Com14_ExecuteCommandAndReverseReturn
-L0F28          jsr       $0C03               ; Execute command
-
-L0F2B          bne       L0F30                ; Command returned a non-zero ... return zero
+L0F28          lbsr      L0C03               ; Execute command
+
+L0F2B          bne       L0F30               ; Command returned a non-zero ... return zero
 L0F2D          ora       #$01                ; Command returned a zero ... return non-zerio
 L0F2F          rts                           ; Done
 L0F30          clra                          ; Zero
@@ -1502,8 +1562,8 @@
 ;##Com17_MoveObjectXToLocationY
 L0F32          ldb       ,X+                 ; Get object number
 L0F34          pshs      X                   ; Hold script
-L0F36          jsr       $1133               ; Find object
-L0F39          jsr       $0A42               ; Skip over length
+L0F36          lbsr      L1133               ; Find object
+L0F39          lbsr      L0A42               ; Skip over length
 L0F3C          puls      Y                   ; Script to Y
 L0F3E          lda       ,Y+                 ; Get new location
 L0F40          sta       ,X                  ; Set object's new location
@@ -1513,81 +1573,81 @@
 
 ;##Com18_CheckVarOwnedByActiveObject
 L0F46          pshs      X                   ; Save script pointer
-L0F48          ldx       $01C0               ; Var object data
-L0F4B          jsr       $0A42               ; Skip length
+L0F48          ldx       u01C0               ; Var object data
+L0F4B          lbsr      L0A42               ; Skip length
 L0F4E          ldb       ,X                  ; Location
 L0F50          puls      X                   ; Restore script
 L0F52          lbeq      $08CF               ; Out-of-game ... error and out
-L0F56          cmpb      $01D2               ; Is this the active object?
-
-L0F59          beq       L0F45                ; Yes ... return OK
+L0F56          cmpb      u01D2               ; Is this the active object?
+
+L0F59          beq       L0F45               ; Yes ... return OK
 L0F5B          bitb      #$80                ; Test upper bit
 
-L0F5D          bne       L0F45                ; It is in a room ... error and out
+L0F5D          bne       L0F45               ; It is in a room ... error and out
 ;
 L0F5F          pshs      X                   ; Hold script
-L0F61          jsr       $1133               ; Look up owner object
-
-L0F64          bra       L0F4B                ; Check again
+L0F61          lbsr      L1133               ; Look up owner object
+
+L0F64          bra       L0F4B               ; Check again
 
 ; Execute any turn-scripts on the objects
 L0F66          ldx       #$20FF              ; Start of object data
-L0F69          clr       $01D0               ; Object number
-L0F6C          jsr       $0A42               ; Skip length
-L0F6F          jsr       $0A58               ; End of objects?
-
-L0F72          bcc       L0F45                ; Yes ... out
-L0F74          inc       $01D0               ; Next object number
+L0F69          clr       u01D0               ; Object number
+L0F6C          lbsr      L0A42               ; Skip length
+L0F6F          lbsr      L0A58               ; End of objects?
+
+L0F72          bcc       L0F45               ; Yes ... out
+L0F74          inc       u01D0               ; Next object number
 L0F77          pshs      Y                   ; Hold end-of-objects
-L0F79          jsr       $0A42               ; Skip length
+L0F79          lbsr      L0A42               ; Skip length
 L0F7C          lda       ,X                  ; Location
-L0F7E          sta       $01AB               ; Hold
+L0F7E          sta       u01AB               ; Hold
 L0F81          pshs      Y                   ; End of object
 L0F83          lda       ,X                  ; Location
 
-L0F85          beq       L0FC9                ; If it is out-of-game it doesn't get a turn
+L0F85          beq       L0FC9               ; If it is out-of-game it doesn't get a turn
 L0F87          leax      3,X                 ; Skip data
 L0F89          ldb       #$08                ; Turn-script
-L0F8B          jsr       $0A27               ; Find turn script
-
-L0F8E          bcc       L0FC9                ; Nothing to do ... next object
-L0F90          jsr       $0A42               ; Skip length
+L0F8B          lbsr      L0A27               ; Find turn script
+
+L0F8E          bcc       L0FC9               ; Nothing to do ... next object
+L0F90          lbsr      L0A42               ; Skip length
 L0F93          pshs      X                   ; Hold pointer
-L0F95          jsr       $12A8               ; Generate random number
-L0F98          ldb       $01D0               ; Current object number ...
-L0F9B          stb       $01D2               ; ... is now the active object
-L0F9E          jsr       $1133               ; Get its data pointer
-L0FA1          stx       $01D3               ; Hold pointer to active object data
-L0FA4          ldb       $01AB               ; Object's location
+L0F95          lbsr      L12A8               ; Generate random number
+L0F98          ldb       u01D0               ; Current object number ...
+L0F9B          stb       u01D2               ; ... is now the active object
+L0F9E          lbsr      L1133               ; Get its data pointer
+L0FA1          stx       u01D3               ; Hold pointer to active object data
+L0FA4          ldb       u01AB               ; Object's location
 L0FA7          tstb                          ; Check upper bit
 
-L0FA8          bmi       L0FB8                ; If in a room ... go handle
-L0FAA          jsr       $1133               ; Get object's owner
-L0FAD          jsr       $0A42               ; Skip length
+L0FA8          bmi       L0FB8               ; If in a room ... go handle
+L0FAA          lbsr      L1133               ; Get object's owner
+L0FAD          lbsr      L0A42               ; Skip length
 L0FB0          ldb       ,X                  ; Get owner location
 
-L0FB2          bne       L0FA7                ; Still in game ... find room location of owner chain
+L0FB2          bne       L0FA7               ; Still in game ... find room location of owner chain
 L0FB4          puls      X                   ; Restore pointer
 
-L0FB6          bra       L0FC9                ; Next object
-L0FB8          stb       $01D5               ; Objects location
+L0FB6          bra       L0FC9               ; Next object
+L0FB8          stb       u01D5               ; Objects location
 L0FBB          ldx       #$1523              ; Get room ...
-L0FBE          jsr       $0A1F               ; ... scripts for object
-L0FC1          stx       $01D6               ; Hold
+L0FBE          lbsr      L0A1F               ; ... scripts for object
+L0FC1          stx       u01D6               ; Hold
 L0FC4          puls      X                   ; Restore turn-script
-L0FC6          jsr       $0C03               ; Execute turn-script
+L0FC6          lbsr      L0C03               ; Execute turn-script
 L0FC9          puls      X                   ; Restore
 L0FCB          puls      Y                   ; Restore
 
-L0FCD          bra       L0F6F                ; Next object
+L0FCD          bra       L0F6F               ; Next object
 
 ;##Com05_IsRandomLessOrEqual
 L0FCF          lda       $1338               ; Random value
 L0FD2          cmpa      ,X+                 ; Compare random value to script
 
-L0FD4          bcs       L0FDB                ; If less than ... OK
-
-L0FD6          beq       L0FDB                ; If the same ... OK
+L0FD4          bcs       L0FDB               ; If less than ... OK
+
+L0FD6          beq       L0FDB               ; If the same ... OK
 L0FD8          ora       #$01                ; Greater than ... FAIL
 L0FDA          rts                           ; Done
 L0FDB          clra                          ; Less than or equal ... OK
@@ -1595,21 +1655,21 @@
 
 ;##Com1D_AttackObject
 L0FDD          lda       ,X+                 ; Get attack value
-L0FDF          sta       $01AB               ; Hold attack value
+L0FDF          sta       u01AB               ; Hold attack value
 L0FE2          pshs      X                   ; Hold script
-L0FE4          ldx       $01C0               ; Target object data
-L0FE7          jsr       $0A42               ; Skip length
+L0FE4          ldx       u01C0               ; Target object data
+L0FE7          lbsr      L0A42               ; Skip length
 L0FEA          leax      3,X                 ; Skip object data
 L0FEC          pshs      X                   ; Hold X ...
 L0FEE          pshs      Y                   ; ... and Y
 L0FF0          ldb       #$09                ; Get target's ...
-L0FF2          jsr       $0A27               ; ... combat info
+L0FF2          lbsr      L0A27               ; ... combat info
 
 L0FF5          bcc       L1020               ; Not found. Do nothing (return OK)
-L0FF7          jsr       $0A42               ; Skip length
+L0FF7          lbsr      L0A42               ; Skip length
 L0FFA          leax      1,X                 ; Hit points
 L0FFC          lda       ,X                  ; Hit points
-L0FFE          suba      $01AB               ; Subtract attack from hit points
+L0FFE          suba      u01AB               ; Subtract attack from hit points
 
 L1001          bcc       L1004               ; Not negative ... keep it
 L1003          clra                          ; Floor the hit points
@@ -1625,11 +1685,11 @@
 
 ;Handle object being killed
 L1011          ldb       #$0A                ; Object being killed script
-L1013          jsr       $0A27               ; Find a script for handling being killed
+L1013          lbsr      L0A27               ; Find a script for handling being killed
 
 L1016          bcc       L100D               ; Not found ... nothing happens (return OK)
-L1018          jsr       $0A42               ; Skip id and length
-L101B          jsr       $0C03               ; Execute "being killed" script
+L1018          lbsr      L0A42               ; Skip id and length
+L101B          lbsr      L0C03               ; Execute "being killed" script
 
 L101E          bra       L100D               ; Done (return OK)
 
@@ -1641,14 +1701,14 @@
 ;##Com1E_SwapObjects
 L1026          ldb       ,X+                 ; 1st object number
 L1028          lda       ,X+                 ; 2nd object
-L102A          sta       $01AB               ; Hold second object
+L102A          sta       u01AB               ; Hold second object
 L102D          pshs      X                   ; Hold script
-L102F          jsr       $1133               ; Look up object
-L1032          jsr       $0A42               ; Skip length
+L102F          lbsr      L1133               ; Look up object
+L1032          lbsr      L0A42               ; Skip length
 L1035          tfr       X,U                 ; 1st object pointer to U
-L1037          ldb       $01AB               ; 2nd object
-L103A          jsr       $1133               ; Look up object
-L103D          jsr       $0A42               ; Skip length
+L1037          ldb       u01AB               ; 2nd object
+L103A          lbsr      L1133               ; Look up object
+L103D          lbsr      L0A42               ; Skip length
 L1040          lda       ,X                  ; Swap ...
 L1042          ldb       ,U                  ; ... location ...
 L1044          sta       ,U                  ; ... of ...
@@ -1661,18 +1721,18 @@
 ;##Com22_CompareHealthToValue
 L104C          lda       ,X+                 ; Get value
 L104E          pshs      X                   ; Hold script pointer
-L1050          sta       $01AB               ; Hold value
-L1053          ldx       $01C0               ; Var object data
-L1056          jsr       $0A42               ; Skip length
+L1050          sta       u01AB               ; Hold value
+L1053          ldx       u01C0               ; Var object data
+L1056          lbsr      L0A42               ; Skip length
 L1059          leax      3,X                 ; Skip data
 L105B          ldb       #$09                ; Get object ...
-L105D          jsr       $0A27               ; ... hit points
+L105D          lbsr      L0A27               ; ... hit points
 
 L1060          bcc       L1070               ; Doesn't have any ... error and out
-L1062          jsr       $0A42               ; Skip length
+L1062          lbsr      L0A42               ; Skip length
 L1065          leax      1,X                 ; Get current ...
 L1067          lda       ,X                  ; ... hit points
-L1069          cmpa      $01AB               ; Compare hit points to value
+L1069          cmpa      u01AB               ; Compare hit points to value
 
 L106C          bcs       L1075               ; Less than ..
 
@@ -1686,23 +1746,23 @@
 
 ;##Com23_HealVarObject
 L1079          lda       ,X+                 ; Get healing value
-L107B          sta       $01AB               ; Hold it
+L107B          sta       u01AB               ; Hold it
 L107E          pshs      X                   ; Hold script
-L1080          ldx       $01C0               ; Var object data
-L1083          jsr       $0A42               ; Skip length
+L1080          ldx       u01C0               ; Var object data
+L1083          lbsr      L0A42               ; Skip length
 L1086          leax      3,X                 ; Skip data
 L1088          ldb       #$09                ; Get object ...
-L108A          jsr       $0A27               ; ... hit points
+L108A          lbsr      L0A27               ; ... hit points
 
 L108D          bcc       L1075               ; No entry ... do nothing (but OK)
-L108F          jsr       $0A42               ; Skip length
+L108F          lbsr      L0A42               ; Skip length
 L1092          ldd       ,X                  ; Get HP info
-L1094          addb      $01AB               ; Add to health
-L1097          sta       $01AB               ; Max value
-L109A          cmpb      $01AB               ; Over the max?
+L1094          addb      u01AB               ; Add to health
+L1097          sta       u01AB               ; Max value
+L109A          cmpb      u01AB               ; Over the max?
 
 L109D          bcs       L10A2               ; No ... keep it
-L109F          ldb       $01AB               ; Use max value
+L109F          ldb       u01AB               ; Use max value
 L10A2          leax      1,X                 ; Store ...
 L10A4          stb       ,X                  ; ... new health
 
@@ -1711,9 +1771,9 @@
 ;##Com25_RestartGame
 ; No return to script
 L10A8          lda       #$0D                ; Print first ...
-L10AA          jsr       $1184               ; ... CR
+L10AA          lbsr      L1184               ; ... CR
 L10AD          lda       #$0D                ; Print second ...
-L10AF          jsr       $1184               ; ... CR
+L10AF          lbsr      L1184               ; ... CR
 L10B2          jmp       $060C               ; Restart game
 
 ;##Com24_EndlessLoop
@@ -1728,7 +1788,7 @@
 
 L10B9          beq       L10C4               ; Null means done
 L10BB          pshs      Y                   ; Hold Y
-L10BD          jsr       $1184               ; Print character
+L10BD          lbsr      L1184               ; Print character
 L10C0          puls      Y                   ; Restore Y
 
 L10C2          bra       L10B7               ; Keep going
@@ -1738,20 +1798,20 @@
 ; Second byte of object data is points. If the object is in the
 ; treasure room (dropped or carried) it counts double.
 L10C5          pshs      X
-L10C7          clr       $01AF               ; Score tally
-L10CA          clr       $01B0
-L10CD          lda       $01D5               ; Player location
+L10C7          clr       u01AF               ; Score tally
+L10CA          clr       u01B0
+L10CD          lda       u01D5               ; Player location
 L10D0          cmpa      #$96                ; Player in the treasure room?
 
 L10D2          bne       L10D7               ; No ... regular score
-L10D4          inc       $01B0               ; Yes ... carried objects count double
+L10D4          inc       u01B0               ; Yes ... carried objects count double
 L10D7          ldx       #$20FF              ; Object data
-L10DA          jsr       $0A42               ; Skip header
-L10DD          jsr       $0A58               ; Reached end?
+L10DA          lbsr      L0A42               ; Skip header
+L10DD          lbsr      L0A58               ; Reached end?
 
 L10E0          bcc       L110F               ; Yes ... move on
 L10E2          pshs      Y                   ; Hold end
-L10E4          jsr       $0A42               ; Skip object length
+L10E4          lbsr      L0A42               ; Skip object length
 L10E7          ldb       ,X+                 ; Get owner
 L10E9          cmpb      #$96                ; Treasure room?
 
@@ -1759,58 +1819,58 @@
 L10ED          cmpb      #$1D                ; Carried by user?
 
 L10EF          bne       L1109               ; No ... next object
-L10F1          lda       $01AF               ; Score tally
+L10F1          lda       u01AF               ; Score tally
 L10F4          adda      ,X                  ; Add to score value
 L10F6          daa                           ; Decimal adjust
-L10F7          sta       $01AF               ; New score
+L10F7          sta       u01AF               ; New score
 L10FA          cmpb      #$96                ; Treasure room?
 
 L10FC          beq       L1103               ; Yes ... counts double
-L10FE          tst       $01B0               ; Player in treasure room?
+L10FE          tst       u01B0               ; Player in treasure room?
 
 L1101          beq       L1109               ; No ... just count once
 L1103          adda      ,X                  ; Double ...
 L1105          daa                           ; ... the ...
-L1106          sta       $01AF               ; ... score value
+L1106          sta       u01AF               ; ... score value
 L1109          tfr       Y,X                 ; Next object
 L110B          puls      Y                   ; Restore end of list
 
 L110D          bra       L10DD               ; Do all objects
 ;        
-L110F          lda       $01AF               ; Score value
+L110F          lda       u01AF               ; Score value
 L1112          asra                          ; Left ...
 L1113          asra                          ; ... most ...
 L1114          asra                          ; ... digit ...
 L1115          asra                          ; ... value
 L1116          adda      #$30                ; Convert to ASCII
-L1118          jsr       $1184               ; Print the left digit
-L111B          lda       $01AF               ; Score value
+L1118          lbsr      L1184               ; Print the left digit
+L111B          lda       u01AF               ; Score value
 L111E          anda      #$0F                ; Mask off the right digit
 L1120          adda      #$30                ; Convert ot ASCII
-L1122          jsr       $1184               ; Print the right digit
+L1122          lbsr      L1184               ; Print the right digit
 L1125          lda       #$2E                ; Print ...
-L1127          jsr       $1184               ; ... "."
+L1127          lbsr      L1184               ; ... "."
 L112A          lda       #$20                ; Print ...
-L112C          jsr       $1184               ; ... SPACE
+L112C          lbsr      L1184               ; ... SPACE
 L112F          puls      X                   ; Restore script
 L1131          clra                          ; OK
 L1132          rts                           ; Done
 
 ; Find object index in B
 L1133          ldx       #$20FF              ; Start of objects
-L1136          jsr       $0A42               ; Skip end
+L1136          lbsr      L0A42               ; Skip end
 L1139          decb                          ; Found desired object?
 
 L113A          beq       L10C4               ; Yes ... out OK
-L113C          jsr       $0A42               ; Length of object
+L113C          lbsr      L0A42               ; Length of object
 L113F          exg       X,Y                 ; Next object
 
 L1141          bra       L1139               ; Keep looking
 
 ; Print packed message and CR
-L1143          jsr       $114C               ; Print packed message at X
+L1143          lbsr      L114C               ; Print packed message at X
 L1146          lda       #$0D                ; Print ...
-L1148          jsr       $1184               ; ... CR
+L1148          lbsr      L1184               ; ... CR
 L114B          rts                           ; Done
 
 ;##PrintPackedMessage
@@ -1823,27 +1883,27 @@
 L1153          lda       ,X+                 ; Get the ...
 L1155          anda      #$7F                ; ... MSB and ...
 L1157          ldb       ,X+                 ; ... LSB
-L1159          std       $01AB               ; Store byte count
-L115C          ldd       $01AB               ; Number of bytes left in message
+L1159          std       u01AB               ; Store byte count
+L115C          ldd       u01AB               ; Number of bytes left in message
 L115F          cmpd      #$0002              ; Less than 2?
 
 L1163          bcs       L1173               ; Yes ... these aren't compressed
-L1165          jsr       $11EC               ; Decompress and print two bytes pointed to by X
-L1168          ldd       $01AB               ; Get byte count
+L1165          lbsr      L11EC               ; Decompress and print two bytes pointed to by X
+L1168          ldd       u01AB               ; Get byte count
 L116B          subd      #$0002              ; Handled 2
-L116E          std       $01AB               ; Store count
+L116E          std       u01AB               ; Store count
 
 L1171          bra       L115C               ; Keep decompressing
 L1173          tstb                          ; Any characters on the end to print?
 
 L1174          beq       L117E               ; No ... skip
 L1176          lda       ,X+                 ; Get character
-L1178          jsr       $1184               ; Print the character
+L1178          lbsr      L1184               ; Print the character
 L117B          decb                          ; Decrement count
 
 L117C          bra       L1173               ; Keeop going
 L117E          lda       #$20                ; Print ...
-L1180          jsr       $1184               ; ... space on end
+L1180          lbsr      L1184               ; ... space on end
 L1183          rts                           ; Done
 
 ;##PrintCharacterAutoWrap
@@ -1851,7 +1911,7 @@
 ; auto MORE prompting.
 ;
 L1184          pshs      B,A                 ; Hold B and A
-L1186          lda       $01BE               ; Last printed character
+L1186          lda       u01BE               ; Last printed character
 L1189          cmpa      #$20                ; Last printed a space?
 
 L118B          bne       L11A7               ; No ... print this
@@ -1874,7 +1934,7 @@
 
 L11A5          bra       L11A9               ; Store and print
 L11A7          puls      A,B                 ; Restore A and B
-L11A9          sta       $01BE               ; Last printed character
+L11A9          sta       u01BE               ; Last printed character
 L11AC          jsr       [$A002]             ; Output character
 L11B0          lda       >$89                ; LSB of screen position
 L11B2          cmpa      #$FE                ; Reached end of screen?
@@ -1904,7 +1964,7 @@
 
 L11DD          bcs       L11E1               ; ... upper ...
 L11DF          suba      #$40                ; ... case
-L11E1          sta       $01BE               ; Last printed character
+L11E1          sta       u01BE               ; Last printed character
 L11E4          jsr       [$A002]             ; Output to screen
 
 L11E8          bra       L11CB               ; Move overhang to next line
@@ -1920,40 +1980,40 @@
 L11F0          ldb       #$03                ;
 L11F2          stb       $12A1               ;
 L11F5          lda       ,X+                 ;
-L11F7          sta       $01DE               ;
+L11F7          sta       u01DE               ;
 L11FA          lda       ,X+                 ;
-L11FC          sta       $01DD               ;
+L11FC          sta       u01DD               ;
 L11FF          leay      3,Y                 ;
 L1201          ldu       #$0028              ;
 L1204          stu       $12A2               ;
 L1207          lda       #$11                ;
-L1209          sta       $01DA               ;
-L120C          clr       $01DB               ;
-L120F          clr       $01DC               ;
-L1212          rol       $01DE               ;
-L1215          rol       $01DD               ;
-L1218          dec       $01DA               ;
+L1209          sta       u01DA               ;
+L120C          clr       u01DB               ;
+L120F          clr       u01DC               ;
+L1212          rol       u01DE               ;
+L1215          rol       u01DD               ;
+L1218          dec       u01DA               ;
 
 L121B          beq       L1256               ;
 L121D          lda       #$00                ;
 L121F          adca      #$00                ; This algorithm is identical to the decompression
-L1221          asl       $01DC               ; used in Pyramid2000. Check the comments there for
-L1224          rol       $01DB               ; more detail.
-L1227          adda      $01DC               ;
+L1221          asl       u01DC               ; used in Pyramid2000. Check the comments there for
+L1224          rol       u01DB               ; more detail.
+L1227          adda      u01DC               ;
 L122A          suba      $12A3               ;
-L122D          sta       $01E0               ;
-L1230          lda       $01DB               ;
+L122D          sta       u01E0               ;
+L1230          lda       u01DB               ;
 L1233          sbca      $12A2               ;
-L1236          sta       $01DF               ;
+L1236          sta       u01DF               ;
 
 L1239          bcc       L1246               ;
-L123B          ldd       $01DF               ;
+L123B          ldd       u01DF               ;
 L123E          addd      $12A2               ;
-L1241          std       $01DB               ;
+L1241          std       u01DB               ;
 
 L1244          bra       L124C               ;
-L1246          ldd       $01DF               ;
-L1249          std       $01DB               ;
+L1246          ldd       u01DF               ;
+L1249          std       u01DB               ;
 ; Compliment C flag and continue
 
 L124C          bcs       L1252               ;
@@ -1964,7 +2024,7 @@
 
 L1254          bra       L1212               ;
 ; Process the result of the division
-L1256          ldd       $01DB               ;
+L1256          ldd       u01DB               ;
 L1259          addd      #$1279              ;
 L125C          tfr       D,U                 ;
 L125E          lda       ,U                  ;
@@ -1975,11 +2035,11 @@
 L1267          ldy       #$12A4              ;
 L126B          ldb       #$03                ;
 L126D          lda       ,Y+                 ;
-L126F          jsr       $1184               ; Print character
+L126F          lbsr      L1184               ; Print character
 L1272          decb                          ;
 
 L1273          bne       L126D               ;
-L1275          ldd       $01AB               ;
+L1275          ldd       u01AB               ;
 L1278          rts                           ;
 
 ; Character translation table
@@ -4993,4 +5053,4 @@
 L3F03          fcb       $06,$42,$45,$48,$49,$4E,$44,$0A ; BEHIND   10
 L3F0B          fcb       $06,$41,$52,$4F,$55,$4E,$44,$0B ; AROUND   11
 L3F13          fcb       $02,$4F,$4E,$0C     ; ON       12
-L3F17          fcb       $00,$,$F            ,$4E,$0C ; ON       12
+L3F17          fcb       $00