summaryrefslogtreecommitdiff
path: root/misa.S
diff options
context:
space:
mode:
Diffstat (limited to 'misa.S')
-rw-r--r--misa.S112
1 files changed, 112 insertions, 0 deletions
diff --git a/misa.S b/misa.S
new file mode 100644
index 0000000..4bd93ef
--- /dev/null
+++ b/misa.S
@@ -0,0 +1,112 @@
+csrr t0,0x301 # Read misa
+
+li a7,11 # Print character
+li a0,'R'
+ecall
+li a0,'V'
+ecall
+li a0,'3'
+ecall
+li a0,'2'
+ecall
+
+bexti t1,t0,8
+li a7,11
+li a0,'I'
+czero.eqz a7,a7,t1 # Clear ecall function if bit isn't set
+ecall
+
+bexti t1,t0,4
+li a7,11
+li a0,'E'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,12
+li a7,11
+li a0,'M'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,0
+li a7,11
+li a0,'A'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,5
+li a7,11
+li a0,'F'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,3
+li a7,11
+li a0,'D'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,16
+li a7,11
+li a0,'Q'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,11
+li a7,11
+li a0,'L'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,2
+li a7,11
+li a0,'C'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,1
+li a7,11
+li a0,'B'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,9
+li a7,11
+li a0,'J'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,19
+li a7,11
+li a0,'T'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,15
+li a7,11
+li a0,'P'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,21
+li a7,11
+li a0,'V'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,7
+li a7,11
+li a0,'H'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,18
+li a7,11
+li a0,'S'
+czero.eqz a7,a7,t1
+ecall
+
+bexti t1,t0,2
+
+li a7,10
+ecall