aboutsummaryrefslogtreecommitdiff
path: root/src/core/Print.cpp
diff options
context:
space:
mode:
authorAtsushi Saitoh <lynxeyed@xj9.so-net.ne.jp>2012-03-18 10:32:43 +0900
committerAtsushi Saitoh <lynxeyed@xj9.so-net.ne.jp>2012-03-18 10:32:43 +0900
commit70026dd0fafb340dc6b9522324c880c9fc427b62 (patch)
tree7f85bb0a9c9d81ce8c1111cdd2ba3445b2e65c77 /src/core/Print.cpp
parentbbc1578f7b58b58b9299b8a46a2d363161cd0055 (diff)
parent7f6b217b9f31953e40edbb6a9177d69f604a2a23 (diff)
Merge https://github.com/lynxeyed-atsu/eXodusino
Diffstat (limited to 'src/core/Print.cpp')
-rw-r--r--src/core/Print.cpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/core/Print.cpp b/src/core/Print.cpp
new file mode 100644
index 0000000..ab58b9f
--- /dev/null
+++ b/src/core/Print.cpp
@@ -0,0 +1,109 @@
+#include "Print.h"
+
+void Print::print(const char *s) //uart_puts
+{
+ int n;
+ for (n = 0; *s; s++, n++) {
+ write(*s);
+ }
+ //return n;
+ return;
+}
+
+void Print::print(int val, RADIX_FORMAT format)
+{
+ if(format == BYTE)
+ {
+ write((char)(val & 0xff));
+ return;
+ }
+ char s[32];
+ int i,j;
+ i=j=0; // header of strings
+ if (val<0)
+ { //minus value
+ s[i]='-';
+ val=~val+1;
+ i++;
+ j++;
+ }
+ switch(format)
+ {
+ case BIN:
+ while (val>0)
+ { // do until zero
+ s[i++]=radix_bin[val%format];
+ val/=format;
+ }
+ break;
+
+ case OCT:
+ while (val>0)
+ { // do until zero
+ s[i++]=radix_oct[val%format];
+ val/=format;
+ }
+ break;
+
+ case DEC: //RADIX = Decimal
+ while (val>0)
+ { // do until zero
+ s[i++]=radix_dec[val%format];
+ val/=format;
+ }
+ break;
+
+ case HEX: //RADIX = Hexadecimal
+ while (val>0)
+ { // do until zero
+ s[i++]=radix_hex[val%format];
+ val/=format;
+ }
+ break;
+ default:
+ break;
+ }
+ s[i--]='\0'; // EOF
+ while (j<i)
+ { // reverse strings array
+ char t;
+ t=s[j]; s[j]=s[i]; s[i]=t;
+ j++; i--;
+ }
+ print(s);
+
+ return ;
+}
+
+void Print::write(const char *s, int length)
+{
+ int n;
+ for(n=0;n<length;s++,n++)
+ {
+ write(*s);
+ }
+ return;
+}
+
+void Print::println(const char *s)
+{
+ print(s);
+ println();
+ return;
+}
+
+
+void Print::println(int val, RADIX_FORMAT format)
+{
+ print(val,format);
+ println();
+ return;
+}
+
+void Print::println(void)
+{
+ write ('\r');
+ write ('\n');
+ return;
+}
+