Added device/lib/serial_io.c: Default putchar() and getchar() for mcs51 uses serial...
authorjesusc <jesusc@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 24 Oct 2006 08:20:54 +0000 (08:20 +0000)
committerjesusc <jesusc@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 24 Oct 2006 08:20:54 +0000 (08:20 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4433 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
device/lib/Makefile.in
device/lib/libsdcc.lib
device/lib/serial_io.c [new file with mode: 0644]

index 9612f9afe5df782002a8ebea66dd6a7cc2401dc1..776b37285a471b6c0f2945dde7605523199a7af6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/lib/serial_io.c: Default putchar() and getchar() for
+         mcs51 uses serial port.
+
 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
index a41c7d178ca02975328293b3b34aae9cbd15feee..6a0ab9c18364c4f01f5a2bc52290045a42679af8 100644 (file)
@@ -69,7 +69,7 @@ OPT_DISABLE_Z80   = @OPT_DISABLE_Z80@
 SOURCES =      _autobaud.c _bp.c _decdptr.c \
                _gptrget.c _gptrgetc.c _gptrput.c \
                _ser.c _setjmp.c \
-               serial.c ser_ir.c \
+               serial.c serial_io.c ser_ir.c \
                _atof.c _atoi.c _atol.c _itoa.c _ltoa.c \
                _schar2fs.c _sint2fs.c _slong2fs.c \
                _uchar2fs.c _uint2fs.c _ulong2fs.c \
index eaad6ac5276107a6e23dab5bbcb6926e2e49c280..fc6cf87978587a8f9494fc63edfec0c00d5803ad 100644 (file)
@@ -44,6 +44,7 @@ malloc
 realloc
 free
 serial
+serial_io
 _autobaud
 _startup
 _ser
diff --git a/device/lib/serial_io.c b/device/lib/serial_io.c
new file mode 100644 (file)
index 0000000..29ad746
--- /dev/null
@@ -0,0 +1,61 @@
+/* Default putchar and getchar to the serial port\r
+\r
+   Written By -  Jesus Calvino-Fraga (October/2006)\r
+\r
+   This library is free software; you can redistribute it and/or\r
+   modify it under the terms of the GNU Lesser General Public\r
+   License as published by the Free Software Foundation; either\r
+   version 2.1 of the License, or (at your option) any later version.\r
+\r
+   This library is distributed in the hope that it will be useful,\r
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+   Lesser General Public License for more details.\r
+\r
+   You should have received a copy of the GNU Lesser General Public\r
+   License along with this library; if not, write to the Free Software\r
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+*/\r
+\r
+#ifdef SDCC_mcs51\r
+#include <8051.h>\r
+\r
+bit serial_init_flag=0;\r
+\r
+void init_serial (void)\r
+{\r
+       TR1=0;\r
+       TMOD=(TMOD&0x0f)|0x20;\r
+       PCON|=0x80;\r
+       TH1=TL1=0xff; //115200 baud with a 22MHz crystal \r
+       TR1=1;\r
+       SCON=0x52;\r
+       serial_init_flag=1;\r
+}\r
+\r
+void putchar (char c)\r
+{\r
+       if(!serial_init_flag) init_serial();\r
+       if (c=='\n')\r
+       {\r
+               while (!TI);\r
+               TI=0;\r
+               SBUF='\r';\r
+       }\r
+       while (!TI);\r
+       TI=0;\r
+       SBUF=c;\r
+}\r
+\r
+char getchar (void)\r
+{\r
+       char c;\r
+       \r
+       if(!serial_init_flag) init_serial();\r
+\r
+       while (!RI);\r
+       RI=0;\r
+       c=SBUF;\r
+       return c;\r
+}\r
+#endif\r