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