bullshit commit, sync for travel (to zn00H!) :)
[my-code/arm.git] / betty / display.h
index b458887..a4919c5 100644 (file)
 #include "types.h"
 
 /* defines */
-#define DISPLY_BANK1                   0x81000000
+#define DISPLAY_BANK1                  0x81000000
 
-#define DISPLAY_CMD                    (*((volatile u8 *)DISPLY_BANK1))
-#define DISPLAY_DATA                   (*((volatile u8 *)DISPLY_BANK1+1))
+#define DISPLAY_CMD                    (*((volatile u8 *)DISPLAY_BANK1))
+#define DISPLAY_DATA                   (*((volatile u8 *)DISPLAY_BANK1+1))
 
 #define DISPLAY_DIMX                   128
 #define DISPLAY_DIMY                   160
@@ -23,7 +23,8 @@
 #define DISPLAY_COL_MAX                        DISPLAY_DIMX
 #define DISPLAY_RAM_CONTENT            (DISPLAY_PAGE_MAX*DISPLAY_COL_MAX*2)
 
-#define DISPLAY_SET_C_ADDR(c)          DISPLAY_CMD=(0x00|((c)&0x0f)); \
+/* display cmds */
+#define DISPLAY_SET_COL_ADDR(c)                DISPLAY_CMD=(0x00|((c)&0x0f)); \
                                        DISPLAY_CMD=(0x10|(((c)&0x70)>>4))
 #define DISPLAY_SET_MASTER             DISPLAY_CMD=0x18
 #define DISPLAY_SET_SLAVE              DISPLAY_CMD=0x19
 #define DISPLAY_SET_NINV(n)            DISPLAY_CMD=0x4c; \
                                        DISPLAY_CMD=(n)
 #define DISPLAY_SET_BIAS(b)            DISPLAY_CMD=(0x50|((b)&0x07))
-#define DISPLAY_SET_UW_CORNER_X(x)     DISPLAY_CMD=0x60; \
-                                       DISPLAY_CMD=((x)&0x7f)
-#define DISPLAY_SET_UW_CORNER_Y(y)     DISPLAY_CMD=0x61; \
+#define DISPLAY_SET_UW_CORNER(x,y)     DISPLAY_CMD=0x60; \
+                                       DISPLAY_CMD=((x)&0x7f); \
+                                       DISPLAY_CMD=0x61; \
                                        DISPLAY_CMD=(y)
-#define DISPLAY_SET_LW_CORNER_X(x)     DISPLAY_CMD=0x62; \
-                                       DISPLAY_CMD=((x)&0x7f)
-#define DISPLAY_SET_LW_CORNER_Y(y)     DISPLAY_CMD=0x63; \
+#define DISPLAY_SET_LW_CORNER(x,y)     DISPLAY_CMD=0x62; \
+                                       DISPLAY_CMD=((x)&0x7f); \
+                                       DISPLAY_CMD=0x63; \
                                        DISPLAY_CMD=(y)
 #define DISPLAY_SET_CONV_FACTOR(c)     DISPLAY_CMD=(0x64|((c)&0x03))
 #define DISPLAY_SET_CONTRAST(c)                DISPLAY_CMD=0x81; \
                                        DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
                                        DISPLAY_CMD=0x8d; \
                                        DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
-#define DISPLAY_SET_BLACK(a,b,c,d)     DISPLAY_CMD=0x88; \
+#define DISPLAY_SET_BLACK(a,b,c,d)     DISPLAY_CMD=0x8e; \
                                        DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
-                                       DISPLAY_CMD=0x89; \
+                                       DISPLAY_CMD=0x8f; \
                                        DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
-#define DISPLAY_SET_PWM_FRC(p,f)       DISPLAY_CMD=(0x90|(((f&0x01)<<2)|p&0x03))
+#define DISPLAY_SET_PWM_FRC(p,f)       DISPLAY_CMD=(0x90| \
+                                                    (((f&0x01)<<2)|(p&0x03)))
 #define DISPLAY_SET_SEGMENT_REMAP_00H  DISPLAY_CMD=0xa0
 #define DISPLAY_SET_SEGMENT_REMAP_7fH  DISPLAY_CMD=0xa1
 #define DISPLAY_RAM_CONTENTS_ON                DISPLAY_CMD=0xa4
                                        DISPLAY_CMD=(c)
 #define DISPLAY_EXTENDED_FEATURES      DISPLAY_CMD=0xf0
 
+/* experimental cmds */
+#define DISPLAY_SET_READ_MODIFY_WRITE  DISPLAY_CMD=0xe0;
+#define DISPLAY_UNSET_READ_MODIFY_WRITE        DISPLAY_CMD=0xee;
+
+/* display api specific defines */
+#define DISPLAY_FILL_W                 0x00
+#define DISPLAY_FILL_LG                        0x01
+#define DISPLAY_FILL_DG                        0x02
+#define DISPLAY_FILL_B                 0x03
+
+
 /* function prototypes */
+void display_fill_screen(u8 fill);
+void display_clear_screen(void);
+void display_init(void);
+void display_logo(u8 *src);
+void display_rectangle_page(u8 x,u8 p,u8 w,u8 h,u8 fill,u8 alpha);
+void display_draw_rectangle(u8 x,u8 y,u8 w,u8 h,u8 fill,u8 alpha);
+void display_font_page(u8 x,u8 page,u8 *font,u8 fill);
+void display_draw_font(u8 x,u8 y,u8 *font,u8 fill,u8 alpha);
 void display_bl_init(void);
 void display_bl_toggle(void);
 void display_bl_on(void);