Esempio n. 1
0
 def __init__(self,
              skoolfile,
              elements='abtdrmscn',
              write_hex=0,
              preserve_base=False,
              min_address=0,
              max_address=65536,
              keep_lines=0):
     self.keep_lines = keep_lines > 0
     self.assembler = get_assembler()
     self.parser = SkoolParser(skoolfile, preserve_base, self.assembler,
                               min_address, max_address, self.keep_lines)
     self.elements = elements
     self.write_asm_dirs = ASM_DIRECTIVES in elements
     self.address_fmt = get_address_format(write_hex, write_hex == 1)
Esempio n. 2
0
 def __init__(self, skoolfile, asm_mode=0, fix_mode=0):
     self.asm_mode = asm_mode
     self.fix_mode = fix_mode
     self.weights = {
         'isub': int(asm_mode > 0),
         'ssub': 2 * int(asm_mode > 1),
         'ofix': 3 * int(fix_mode > 0),
         'bfix': 4 * int(fix_mode > 1)
     }
     self.fields = {'asm': asm_mode, 'fix': fix_mode}
     self.snapshot = [0] * 65536
     self.base_address = len(self.snapshot)
     self.end_address = 0
     self.subs = defaultdict(list, {0: []})
     self.assembler = get_assembler()
     self._parse_skool(skoolfile)
Esempio n. 3
0
 def __init__(self,
              skoolfile,
              asm_mode=0,
              fix_mode=0,
              start=-1,
              end=65537,
              data=False,
              verbose=False,
              warn=True):
     if fix_mode > 2:
         asm_mode = 3
     elif asm_mode > 2:
         fix_mode = max(fix_mode, 1)
     self.asm_mode = asm_mode
     self.fix_mode = fix_mode
     self.start = start
     self.end = end
     self.verbose = verbose
     self.warn = warn
     self.weights = {
         'isub': int(asm_mode > 0),
         'ssub': 2 * int(asm_mode > 1),
         'rsub': 3 * int(asm_mode > 2),
         'ofix': 4 * int(fix_mode > 0),
         'bfix': 5 * int(fix_mode > 1),
         'rfix': 6 * int(fix_mode > 2)
     }
     self.fields = {'asm': asm_mode, 'fix': fix_mode}
     self.snapshot = [0] * 65536
     self.base_address = len(self.snapshot)
     self.end_address = 0
     self._reset(data)
     self.entry_ctl = None
     self.entries = []
     self.remote_entries = []
     self.instructions = []
     self.address_map = {}
     self.assembler = get_assembler()
     self._parse_skool(skoolfile)
     self._relocate()