summaryrefslogtreecommitdiff
path: root/c/rvcontroller-libraries/rvcontroller-ecalls.S
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2026-05-23 20:14:34 -0500
committercheapie <no-email-for-you@example.com>2026-05-23 20:14:34 -0500
commit85b5fde272be6ab543aa866baebabddc24566bdb (patch)
treeb4f2e3bb634effe51c2bdc5585ca4ea8b98d6dfa /c/rvcontroller-libraries/rvcontroller-ecalls.S
downloadrvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.gz
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.bz2
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.xz
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.zip
Add initial content
Diffstat (limited to 'c/rvcontroller-libraries/rvcontroller-ecalls.S')
-rw-r--r--c/rvcontroller-libraries/rvcontroller-ecalls.S108
1 files changed, 108 insertions, 0 deletions
diff --git a/c/rvcontroller-libraries/rvcontroller-ecalls.S b/c/rvcontroller-libraries/rvcontroller-ecalls.S
new file mode 100644
index 0000000..454bcb6
--- /dev/null
+++ b/c/rvcontroller-libraries/rvcontroller-ecalls.S
@@ -0,0 +1,108 @@
+#RVController ecall C Library - Assembly Portion
+#A product of Advanced Mesecons Devices, a Cheapie Systems company
+#This is free and unencumbered software released into the public domain.
+#See http://unlicense.org/ for more information
+
+printint:
+# Number to print is already in a0
+li a7,1 # Write number
+ecall
+ret
+
+printstr:
+# String address is already in a0
+li a7,4
+ecall
+ret
+
+printchar:
+# Character is already in a0
+li a7,11
+ecall
+ret
+
+digiline_send:
+# Channel pointer is already in a0, message pointer is already in a1
+li a7,129
+ecall
+ret
+
+digiline_bufferlevel:
+li a7,133
+ecall
+# Result is already in a0
+ret
+
+digiline_receive:
+# Arguments are already in a0-a3
+li a7,135
+ecall
+ret
+
+rdtime:
+rdtime a0
+ret
+
+rdcycle:
+rdcycle a0
+ret
+
+digiline_clearbuffer:
+li a7,134
+ecall
+ret
+
+lightweight_mode:
+andi a0,a0,1
+csrrs t0,0x800,x0
+bclri t0,t0,0
+or t0,t0,a0
+csrrw x0,0x800,t0
+ret
+
+readint:
+li a7,5
+ecall
+# Result is already in a0
+ret
+
+randomint:
+li a7,128
+# Arguments are already in a0 and a1
+ecall
+# Result is already in a0
+ret
+
+readstr:
+li a7,8
+# Arguments are already in a0 and a1
+ecall
+# Result is already in a0
+ret
+
+console_clearbuffer:
+li a7,131
+ecall
+ret
+
+console_readchar:
+li a7,132
+ecall
+# Result is already in a0
+ret
+
+.globl printint
+.globl printstr
+.globl printchar
+.globl digiline_send
+.globl digiline_bufferlevel
+.globl digiline_receive
+.globl rdtime
+.globl rdcycle
+.globl digiline_clearbuffer
+.globl lightweight_mode
+.globl readint
+.globl randomint
+.globl readstr
+.globl console_clearbuffer
+.globl console_readchar