From 28d2aca1c0b0aab4f5413e476fc9852fbc32ae39 Mon Sep 17 00:00:00 2001
From: Jedian <jmb15@c3sl.ufpr.br>
Date: Tue, 7 Jun 2016 17:51:52 -0300
Subject: [PATCH] dafu

Signed-off-by: Jedian <jmb15@c3sl.ufpr.br>
---
 cMIPS/serial.inp       |  9 ++++-----
 cMIPS/tests/jedidafu.c | 40 ++++++++++++++++++++++------------------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/cMIPS/serial.inp b/cMIPS/serial.inp
index 4c217f3..ef91149 100644
--- a/cMIPS/serial.inp
+++ b/cMIPS/serial.inp
@@ -1,8 +1,7 @@
 
-1
-2
-3
-4
-5
+1a
+2a
+2a
+2a
 2a
 
diff --git a/cMIPS/tests/jedidafu.c b/cMIPS/tests/jedidafu.c
index 876f38a..bc9f517 100644
--- a/cMIPS/tests/jedidafu.c
+++ b/cMIPS/tests/jedidafu.c
@@ -164,7 +164,7 @@ int main(void) { // receive a string through the UART serial interface
   int hdona=0;
   int tlona=0;
   int filonx = 0;
-  int valfib, qt;
+  int valfib, qt, rxz;
   char p[15];
   Tcontrol ctrl;
 
@@ -193,38 +193,42 @@ int main(void) { // receive a string through the UART serial interface
     while(!proberx()) to_stdout('-');//i = 1 - i;
     to_stdout('\0');    
     while((c=Getc()) != -1){
-       filona[tlona] = c;
+        filona[tlona] = c;
         tlona++;
-        if(c=='\n')
+        tlona%=145;
+        if(c=='\n'){
             filonx++;
-        /*if(c=='\n'){
-            print(hex2int((filona+hdona)));
-            hdona = tlona;
-        }*/
+            filona[tlona] = 0;
+        }
     }
     while(filonx > 0){
         qt = Strlen(filona+hdona);
         valfib = hex2int((filona+hdona));
-        print(valfib);
         valfib = buf[valfib];
+        hdona += qt+1;
+        hdona %= 145;
         print(valfib);
-        hdona += qt-1;
         qt = int2hex(p, valfib);
         j = -1;
         do {
             j++;
-            while(!Putc(p[j]));
+            while(((rxz = proberx())<16) && !Putc(p[j]));
+                if(rxz >= 2){
+                     while((c=Getc()) != -1){
+                        filona[tlona] = c;
+                         tlona++;
+                         tlona%=145;
+                         if(c=='\n'){
+                             filonx++;
+                             filona[tlona] = 0;
+                         }
+                    }                 
+                    j--;
+                }
+            
         } while (p[j] != 0);
         filonx--;
     }
-    /*for(j=0; j<145; j++) //isso aqui buga porque ele invalida os char quando hex2inteia
-        if(filona[j]==0 || filona[j]==10)
-            to_stdout('_');
-        else
-            to_stdout(filona[j]);
-    to_stdout('\0');
-    hdona = tlona; 
-    print(hex2int((filona+hdona)));*/
     
   } while (i<5);
 
-- 
GitLab