---
software/libhpdmc/libhpdmc.S | 37 ++++++++++++++++++-------------------
1 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/software/libhpdmc/libhpdmc.S b/software/libhpdmc/libhpdmc.S
index 86c1771..802f89d 100644
--- a/software/libhpdmc/libhpdmc.S
+++ b/software/libhpdmc/libhpdmc.S
@@ -342,16 +342,16 @@ boot:
*
* inputs: none
* outputs: r1 - character
- * clobbers: r1
+ * clobbers: r1, r2
*/
getkey:
- rcsr r1, IP
- andi r1, r1, IRQ_UARTRX
- be r1, r0, getkey
- wcsr IP, r1
- mvhi r1, hi(CSR_UART_RXTX)
- ori r1, r1, lo(CSR_UART_RXTX)
- lw r1, (r1+0)
+ mvhi r2, hi(CSR_UART_RXTX)
+ ori r2, r2, lo(CSR_UART_RXTX)
+getkeywait:
+ lw r1, (r2+8)
+ andi r1, r1, UART_STAT_DR
+ be r1, r0, getkeywait
+ lw r1, (r2+0)
ret
#endif /* FEAT_MANUAL_CALIBRATION */
@@ -416,8 +416,8 @@ printint:
mvu r3, '-'
sw (r2+0), r3
writeintwait0:
- rcsr r3, IP
- andi r3, r3, IRQ_UARTTX
+ lw r3, (r2+8)
+ andi r3, r3, UART_STAT_THRE
be r3, r0, writeintwait0
wcsr IP, r3
@@ -428,8 +428,8 @@ positive:
addi r3, r3, '0'
sw (r2+0), r3
writeintwait1:
- rcsr r3, IP
- andi r3, r3, IRQ_UARTTX
+ lw r3, (r2+8)
+ andi r3, r3, UART_STAT_THRE
be r3, r0, writeintwait1
wcsr IP, r3
@@ -439,16 +439,16 @@ writeintwait1:
addi r3, r3, '0'
sw (r2+0), r3
writeintwait2:
- rcsr r3, IP
- andi r3, r3, IRQ_UARTTX
+ lw r3, (r2+8)
+ andi r3, r3, UART_STAT_THRE
be r3, r0, writeintwait2
wcsr IP, r3
addi r3, r1, '0'
sw (r2+0), r3
writeintwait3:
- rcsr r3, IP
- andi r3, r3, IRQ_UARTTX
+ lw r3, (r2+8)
+ andi r3, r3, UART_STAT_THRE
be r3, r0, writeintwait3
wcsr IP, r3
@@ -468,10 +468,9 @@ writeloop:
be r3, r0, print_endloop
sw (r2+0), r3
writewait:
- rcsr r3, IP
- andi r3, r3, IRQ_UARTTX
+ lw r3, (r2+8)
+ andi r3, r3, UART_STAT_THRE
be r3, r0, writewait
- wcsr IP, r3
addi r1, r1, 1
bi writeloop
print_endloop:
--
1.7.2.5
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode
Twitter: www.twitter.com/milkymistvj
Ideas? http://milkymist.uservoice.com