From 7acb987b0796ab0e93b5422de9b88a4eb7755443 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 3 Nov 2023 10:55:00 +0200 Subject: Start working on reading custom charset --- asm/ext_std.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'asm/ext_std.py') diff --git a/asm/ext_std.py b/asm/ext_std.py index de7cd43..3d87372 100644 --- a/asm/ext_std.py +++ b/asm/ext_std.py @@ -72,9 +72,34 @@ def expand_csi(addr_imm: str): *expand_spu("__CSR_SCRATCH"), ["jpi", addr_imm] ] + def expand_rsr(): return expand_spo("__CSR_SCRATCH") + [["jpr", "__CSR_SCRATCH"]] + +def stack_stash(*rs: str): + result: ExpandResult = [] + for r in rs: + result += expand_spu(r) + + return result + +def stack_restore(*rs: str): + result: ExpandResult = [] + for r in rs: + prefix = expand_spu(r) + result = prefix + result + + return result + +def set_graphics_mode(mode: str): + return [ + ["ldi", "vt_gr_mode_addr", "RA"], + ["ldr", "RA", "RA"], + ["ldi", mode, "RB"], + ["str", "RB", "RA"], + ] + expansions: OpExpansionDict = { "add": expand_add, "sub": expand_sub, @@ -98,4 +123,7 @@ expansions: OpExpansionDict = { "csr": expand_csr, "csi": expand_csi, "rsr": expand_rsr, + "stack_stash": stack_stash, + "stack_restore": stack_restore, + "set_graphics_mode": set_graphics_mode, } -- cgit v1.3