From 954c0f55a4471b974bae4fe8aab3600e6dac7ed3 Mon Sep 17 00:00:00 2001
From: "Israel B. Sant'Anna" <ibsa14@inf.ufpr.br>
Date: Tue, 2 Jun 2015 23:43:44 -0300
Subject: [PATCH] =?UTF-8?q?Implementada=20parte=20de=20recep=C3=A7=C3=A3o?=
 =?UTF-8?q?=20do=20handler=20(incompleto)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Israel B. Sant'Anna <ibsa14@inf.ufpr.br>
---
 cMIPS/tests/handlerUART.s | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/cMIPS/tests/handlerUART.s b/cMIPS/tests/handlerUART.s
index eef98d2..f9ad569 100644
--- a/cMIPS/tests/handlerUART.s
+++ b/cMIPS/tests/handlerUART.s
@@ -8,11 +8,25 @@ RX:
     lui   $a0, %hi(HW_uart_addr)
     ori   $a0, $a0, %lo(HW_uart_addr)
     lw    $a1, 4($a0)           # Read data
-    nop                         #   and store it to UART's buffer
-    sw    $a1, 4($k0)           #   and return from interrupt
-    addiu $a1, $zero, 1
-    sw    $a1, 8($k0)           # Signal new arrival 
-    # TODO: Read data, store it to buffer and decrement nrx (we're reading a char)
+
+    lui   $a0, %hi(rx_queue)    
+    ori   $a0, $a0, %lo(rx_queue)
+    sw    $a1, 0($a0)           # Put data on RX_queue
+
+    lui   $a0, %hi(rx_tl)    
+    ori   $a0, $a0, %lo(rx_tl)
+    lw    $a1, 0($a0)           # Read rx_tl
+    nop
+    addiu $a1, $a1, 1           # Increment rx_tl (shouldn't it be (rx_tl+1)%16 ?) 
+    sw    $a1, 0($a0)           # Save rx_tl
+
+    lui   $a0, %hi(nrx)    
+    ori   $a0, $a0, %lo(nrx)
+    lw    $a1, 0($a0)           # Read nrx
+    nop
+    addiu $a1, $a1, 1           # Increment nrx 
+    sw    $a1, 0($a0)           # Save incremented nrx
+
 TX:
     andi $a0, $k1, UART_tx_irq  # Is this transmission?
     beq  $a0, $zero, END        #   no, end handler
-- 
GitLab