Really make it work on both architectures.
[bertos.git] / mware / text.c
index a68b7bbbadc846ce8185fc2f9174f08a5bbb9943..5def533fa011ee6ad51089fb9ee5ecf607043354 100755 (executable)
@@ -6,21 +6,32 @@
  * This file is part of DevLib - See devlib/README for information.
  * -->
  *
- * \version $Id$
+ * \brief Text graphic routines
  *
+ * \version $Id$
  * \author Bernardo Innocenti <bernie@develer.com>
  * \author Stefano Fedrigo <aleph@develer.com>
- *
- * \brief Text graphic routines
  */
 
 /*#*
  *#* $Log$
- *#* Revision 1.4  2004/08/29 22:04:53  bernie
- *#* Fix Doxygen markup and indentation.
+ *#* Revision 1.10  2005/01/08 09:20:12  bernie
+ *#* Really make it work on both architectures.
+ *#*
+ *#* Revision 1.9  2004/12/31 16:44:29  bernie
+ *#* Sanitize for non-Harvard processors.
+ *#*
+ *#* Revision 1.8  2004/11/16 21:16:28  bernie
+ *#* Update to new naming scheme in mware/gfx.c.
+ *#*
+ *#* Revision 1.7  2004/09/20 03:28:28  bernie
+ *#* Fix header.
+ *#*
+ *#* Revision 1.6  2004/09/14 20:57:15  bernie
+ *#* Use debug.h instead of kdebug.h.
  *#*
- *#* Revision 1.3  2004/08/25 14:12:09  rasky
- *#* Aggiornato il comment block dei log RCS
+ *#* Revision 1.5  2004/09/06 21:51:26  bernie
+ *#* Extend interface to allow any algorithmic style.
  *#*
  *#* Revision 1.2  2004/06/03 11:27:09  bernie
  *#* Add dual-license information.
@@ -53,7 +64,9 @@
 #include "gfx.h"
 #include "font.h"
 #include "text.h"
-#include <drv/kdebug.h>
+
+#include <debug.h>
+
 
 /*!
  * Flags degli stili algoritmici
@@ -143,7 +156,11 @@ static int text_putglyph(char c, struct Bitmap *bm)
                /* Per ogni colonna di dot del glyph... */
                for (i = 0; i < glyph_width; ++i)
                {
-                       dots = pgm_read_byte(glyph);
+                       #if CPU_HARVARD
+                               dots = PGM_READ_CHAR(glyph);
+                       #else
+                               dots = *glyph;
+                       #endif
 
                        /* Advance to next column in glyph.
                         * Expand: advances only once every two columns
@@ -181,7 +198,13 @@ static int text_putglyph(char c, struct Bitmap *bm)
        }
        else /* No style: fast vanilla copy of glyph to line buffer */
                while (glyph_width--)
-                       *buf++ = pgm_read_byte(glyph++);
+               {
+                       #if CPU_HARVARD
+                               *buf++ = PGM_READ_CHAR(glyph++);
+                       #else
+                               *buf++ = *glyph++;
+                       #endif
+               }
 
        return c;
 }
@@ -199,7 +222,7 @@ int text_putchar(char c, struct Bitmap *bm)
                switch (c)
                {
                case ANSI_ESC_CLEARSCREEN:
-                       gfx_ClearBitmap(bm);
+                       gfx_bitmapClear(bm);
                        bm->penX = 0;
                        bm->penY = 0;
                        text_style(0, STYLEF_MASK);
@@ -239,6 +262,12 @@ void text_clear(struct Bitmap *bmp)
 }
 
 
+void text_clearLine(struct Bitmap *bmp, int line)
+{
+       gfx_rectClear(bmp, 0, line * FONT_HEIGHT, bmp->width, (line + 1) * FONT_HEIGHT);
+}
+
+
 /*!
  * Set/clear algorithmic font style bits.
  *