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)
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)
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()