aboutsummaryrefslogtreecommitdiffstats
path: root/asm
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-11-04 10:40:11 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2023-11-04 10:40:11 +0200
commit97bf5a802262bb47675fb6f4cd9d1e1522eaef5d (patch)
treec50a38c39190f43233ceb4e8b2c05e9eddea77ae /asm
parent49327432b456c3110064556ac4613b49be54b925 (diff)
Add new_line macro
Diffstat (limited to 'asm')
-rw-r--r--asm/ext_string_io.py12
-rw-r--r--asm/text_mode.atk168
2 files changed, 14 insertions, 6 deletions
diff --git a/asm/ext_string_io.py b/asm/ext_string_io.py
index dd17123..519077d 100644
--- a/asm/ext_string_io.py
+++ b/asm/ext_string_io.py
@@ -1,5 +1,5 @@
from asm_ops import *
-from ext_std import expand_addi
+from ext_std import *
def to_char_code(c: str):
return ord(c)
@@ -41,8 +41,16 @@ def expand_cursor_to_line(cursor_reg: str, line: int) -> ExpandResult:
["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,
-} \ No newline at end of file
+ "new_line": expand_new_line,
+}
diff --git a/asm/text_mode.atk16 b/asm/text_mode.atk16
index 7ec9fef..335f71c 100644
--- a/asm/text_mode.atk16
+++ b/asm/text_mode.atk16
@@ -10,9 +10,10 @@
@label main
cursor_to_line RC 1
put_string RC RB " HELLO CORECAMP"
- cursor_to_line RC 2
+ new_line RC
put_string RC RB " BY JAN"
- cursor_to_line RC 4
+ new_line RC
+ new_line RC
put_string RC RB " > "
set_graphics_mode gr_text_mode
@@ -29,7 +30,6 @@
ldr RB RB ; RB := Terminal peripheral address deref
str RA RC
- mov RA RD
addi RC 1 RC
subi RA 5 RA
@@ -39,7 +39,7 @@
@label keyboard_isr_clear
; cursor_to_line RC 4
; put_string RC RB " "
- cursor_to_line RC 4
+ new_line RC
put_string RC RB " > "
@label keyboard_isr_end
stack_restore RA RB