code: def _addr(value):
      ''' Common subroutine for emitting array address
      '''
      output = []
  
      try:
          indirect = False
          if value[0] == '*':
              indirect = True
              value = value[1:]
  
          value = int(value) & 0xFFFF
          if indirect:
              output.append('ld hl, (%s)' % str(value))
          else:
              output.append('ld hl, %s' % str(value))
  
      except ValueError:
          if value[0] == '_':
              output.append('ld hl, %s' % str(value))
              if indirect:
                  output.append('ld c, (hl)')
                  output.append('inc hl')
                  output.append('ld h, (hl)')
                  output.append('ld l, c')
          else:
              output.append('pop hl')
              if indirect:
                  output.append('ld c, (hl)')
                  output.append('inc hl')
                  output.append('ld h, (hl)')
                  output.append('ld l, c')
  
      output.append('call __ARRAY')
      REQUIRES.add('array.asm')
  
      return outpuf _addr(value):
      ''' Common subroutine for emitting array address
      '''
      output = []
  
      try:
          indirect = False
          if value[0] == '*':
              indirect = True
              value = value[1:]
  
          value = int(value) & 0xFFFF
          if indirect:
              output.append('ld hl, (%s)' % str(value))
          else:
              output.append('ld hl, %s' % str(value))
  
      except ValueError:
          if value[0] == '_':
              output.append('ld hl, %s' % str(value))
              if indirect:
                  output.append('ld c, (hl)')
                  output.append('inc hl')
                  output.append('ld h, (hl)')
                  output.append('ld l, c')
          else:
              output.append('pop hl')
              if indirect:
                  output.append('ld c, (hl)')
                  output.append('inc hl')
                  output.append('ld h, (hl)')
                  output.append('ld l, c')
  
      output.append('call __ARRAY')
      REQUIRES.add('array.asm')
  
      return output
docs: Common subroutine for emitting array address