diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-20 16:55:14 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-20 16:56:09 +0200 |
| commit | 549901c85044b6ccd912688d6be007c2fdacc6c6 (patch) | |
| tree | 15d1123eedb4347472e4b47fec880e2e5b79927e /asm/ext_string_io.py | |
| parent | abf0594c78087434bced59054896f7f411e18faf (diff) | |
Refactor dir structure
Diffstat (limited to 'asm/ext_string_io.py')
| -rw-r--r-- | asm/ext_string_io.py | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/asm/ext_string_io.py b/asm/ext_string_io.py deleted file mode 100644 index 519077d..0000000 --- a/asm/ext_string_io.py +++ /dev/null @@ -1,56 +0,0 @@ -from asm_ops import * -from ext_std import * - -def to_char_code(c: str): - return ord(c) - -_counter = 0 -def get_unique_name(prefix: str): - global _counter - ret = f"{prefix}_{_counter}" - _counter += 1 - return ret - -def expand_put_char(cursor_reg: str, scratch_reg: str, c: str) -> ExpandResult: - c = c.strip("\"") - return [ - ["ldi", str(to_char_code(c)), scratch_reg], - ["str", scratch_reg, cursor_reg], - *expand_addi(cursor_reg, "1", cursor_reg), - ] - -def expand_put_string(cursor_reg: str, scratch_reg: str, *rest: str) -> ExpandResult: - string = " ".join(rest) - string = string.strip("\"") - result: ExpandResult = [] - for c in string: - result += expand_put_char(cursor_reg, scratch_reg, c) - - return result - -def expand_cursor_to_line(cursor_reg: str, line: int) -> ExpandResult: - lbl_data = get_unique_name("cursor_to_line_data") - lbl_jmpover = get_unique_name("cursor_to_line_jmpover") - line_width = 64 - return [ - ["jpi", lbl_jmpover], - ["@label", lbl_data], - [f"text_mem + {line} * {line_width}"], - ["@label", lbl_jmpover], - ["ldi", lbl_data, cursor_reg], - ["ldr", cursor_reg, cursor_reg], - ] - -def expand_new_line(cursor_reg: str) -> ExpandResult: - return [ - *expand_slri(cursor_reg, "6", cursor_reg), - *expand_addi(cursor_reg, "1", cursor_reg), - *expand_slli(cursor_reg, "6", cursor_reg), - ] - -expansions: OpExpansionDict = { - "put_char": expand_put_char, - "cursor_to_line": expand_cursor_to_line, - "put_string": expand_put_string, - "new_line": expand_new_line, -} |
