annotate packages/hal/arm/sa11x0/assabet/current/misc/lcd_test.c @ 126:518f42066aba ecos-sw-2000-09-19

Merge from eCos master repository on 2000-09-19-06:25:26-BST
author jlarmour
date Tue, 19 Sep 2000 05:53:51 +0000
parents 0ec04793409a
children 0c2b7be0d798
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
1 //==========================================================================
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
2 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
3 // lcd_test.c
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
4 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
5 // SA1110/Assabet - Compact Flash test
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
6 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
7 //==========================================================================
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
9 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
10 // -------------------------------------------
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Red Hat eCos Public License
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
12 // Version 1.1 (the "License"); you may not use this file except in
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
14 // http://www.redhat.com/
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
15 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
19 // the License.
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
20 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
21 // The Original Code is eCos - Embedded Configurable Operating System,
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
22 // released September 30, 1998.
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
23 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
24 // The Initial Developer of the Original Code is Red Hat.
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
25 // Portions created by Red Hat are
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
26 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
27 // All Rights Reserved.
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
28 // -------------------------------------------
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
29 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
30 //####COPYRIGHTEND####
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
31 //==========================================================================
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
32 //#####DESCRIPTIONBEGIN####
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
33 //
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
34 // Author(s): gthomas
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
35 // Contributors: gthomas
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
36 // Date: 2000-06-05
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
37 // Description: Tool used to test LCD stuff
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
38 //####DESCRIPTIONEND####
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
39
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
40 #include <pkgconf/kernel.h> // Configuration header
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
41 #include <cyg/kernel/kapi.h>
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
42 #include <cyg/infra/diag.h>
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
43
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
44 #include <cyg/hal/hal_io.h> // IO macros
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
45 #include <cyg/hal/hal_arch.h> // Register state info
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
46 #include <cyg/hal/hal_intr.h> // HAL interrupt macros
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
47
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
48 #include <cyg/hal/hal_sa11x0.h> // Board definitions
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
49 #include <cyg/hal/assabet.h>
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
50 #include <cyg/hal/hal_cache.h>
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
51
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
52 #include "eCos.xpm"
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
53 #include "redhat.xpm"
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
54 #include "redboot.xpm"
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
55 #include "escw.xpm"
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
56
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
57 #ifndef FALSE
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
58 #define FALSE 0
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
59 #define TRUE 1
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
60 #endif
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
61
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
62 #define STACK_SIZE 4096
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
63 static char stack[STACK_SIZE];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
64 static cyg_thread thread_data;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
65 static cyg_handle_t thread_handle;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
66
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
67 static struct lcd_frame {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
68 unsigned short palette[16];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
69 unsigned short pixels[240][320];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
70 unsigned char pad[256];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
71 } lcd_frame_buffer;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
72
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
73 #define RGB_RED(x) (((x)&0x1F)<<11)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
74 #define RGB_GREEN(x) (((x)&0x3F)<<5)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
75 #define RGB_BLUE(x) ((x)&0x1F)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
76
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
77 static volatile struct lcd_frame *fp;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
78
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
79 // FUNCTIONS
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
80
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
81 static void
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
82 cyg_test_exit(void)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
83 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
84 while (TRUE) ;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
85 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
86
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
87 static int
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
88 _hexdigit(char c)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
89 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
90 if ((c >= '0') && (c <= '9')) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
91 return c - '0';
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
92 } else
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
93 if ((c >= 'A') && (c <= 'F')) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
94 return (c - 'A') + 0x0A;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
95 } else
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
96 if ((c >= 'a') && (c <= 'f')) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
97 return (c - 'a') + 0x0a;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
98 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
99 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
100
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
101 static int
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
102 _hex(char *cp)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
103 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
104 return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
105 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
106
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
107 static unsigned short
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
108 parse_color(char *cp)
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
109 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
110 int red, green, blue;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
111
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
112 if (*cp == '#') {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
113 red = _hex(cp+1);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
114 green = _hex(cp+3);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
115 blue = _hex(cp+5);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
116 return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
117 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
118 // Should be "None"
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
119 return 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
120 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
121 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
122
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
123 static void
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
124 show_xpm(char *xpm[])
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
125 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
126 int i, row, col;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
127 char *cp;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
128 int nrows, ncols, nclrs;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
129 unsigned short colors[256]; // Mapped by character index
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
130
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
131 cp = xpm[0];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
132 if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
133 diag_printf("Can't parse XPM data, sorry\n");
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
134 return;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
135 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
136 diag_printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
137
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
138 for (i = 0; i < 256; i++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
139 colors[i] = 0x0000;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
140 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
141 for (i = 0; i < nclrs; i++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
142 cp = xpm[i+1];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
143 colors[(unsigned int)*cp] = parse_color(&cp[4]);
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
144 // printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
145 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
146
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
147 for (row = 0; row < nrows; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
148 cp = xpm[nclrs+1+row];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
149 for (col = 0; col < ncols; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
150 fp->pixels[row][col] = colors[(unsigned int)*cp++];
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
151 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
152 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
153 cyg_thread_delay(100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
154 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
155
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
156
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
157 // 8x8 Font - from Helios
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
158
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
159 #define FIRST_CHAR 0x20
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
160 #define LAST_CHAR 0x7E
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
161 #define FONT_HEIGHT 8
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
162 #define FONT_WIDTH 8
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
163 #define CURSOR_ON 0x5F
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
164 #define CURSOR_OFF 0x20
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
165 static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
166 {
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
167 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
168 { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
169 { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
170 { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
171 { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
172 { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
173 { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
174 { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
175 { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
176 { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
177 { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
178 { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
179 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
180 { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
181 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
182 { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
183 { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
184 { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
185 { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
186 { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
187 { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
188 { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
189 { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
190 { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
191 { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
192 { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
193 { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
194 { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
195 { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
196 { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
197 { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
198 { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
199 { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
200 { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
201 { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
202 { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
203 { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
204 { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
205 { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
206 { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
207 { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
208 { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
209 { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
210 { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
211 { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
212 { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
213 { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
214 { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
215 { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
216 { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
217 { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
218 { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
219 { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
220 { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
221 { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
222 { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
223 { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
224 { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
225 { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
226 { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
227 { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
228 { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
229 { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
230 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
231 { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
232 { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
233 { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
234 { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
235 { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
236 { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
237 { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
238 { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
239 { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
240 { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
241 { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
242 { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
243 { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
244 { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
245 { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
246 { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
247 { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
248 { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
249 { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
250 { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
251 { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
252 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
253 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
254 { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
255 { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
256 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
257 { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
258 { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
259 { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
260 { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
261 { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 } /* ~ */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
262 };
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
263
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
264 #define LCD_WIDTH 320
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
265 #define LCD_HEIGHT 240
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
266 #define LCD_DEPTH 16
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
267
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
268 // This can be 1 or 2
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
269 #define SCREEN_SCALE 2
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
270 #define NIBBLES_PER_PIXEL (1*SCREEN_SCALE)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
271 #define PIXELS_PER_BYTE (2/NIBBLES_PER_PIXEL)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
272 #define PIXEL_MASK ((1<<PIXELS_PER_BYTE)-1)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
273
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
274 // Physical screen info
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
275 static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
276 static int lcd_width = LCD_WIDTH;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
277 static int lcd_height = LCD_HEIGHT;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
278
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
279 // Virtual screen info
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
280 static int curX = 0; // Last used position
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
281 static int curY = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
282 static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
283 static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
284 static int fg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(0);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
285 static int bg = RGB_RED(31) | RGB_GREEN(63) | RGB_BLUE(31);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
286 #define SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
287 #define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
288 static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
289
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
290 // Functions
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
291 static void lcd_drawc(cyg_int8 c, int x, int y);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
292
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
293 void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
294 lcd_init(int depth)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
295 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
296 // Currently only color/16bpp supported
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
297
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
298 unsigned long _fp;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
299
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
300 // Frame buffer must be aligned on a 16 byte boundary
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
301 _fp = (((unsigned long)&lcd_frame_buffer) + 15) & ~15;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
302 fp = (struct lcd_frame *)(_fp + SA11X0_RAM_BANK0_BASE);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
303 // Enable LCD in 320x240 16bpp
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
304 *SA1110_DBAR1 = (unsigned long)&(fp->palette);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
305 *SA1110_LCCR1 = 0x1D1D0930;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
306 *SA1110_LCCR2 = 0xEF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
307 *SA1110_LCCR3 = 0x0c;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
308 fp->palette[0] = 0x2000; // Tell controller 16 bits
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
309 // *SA1110_LCCR0 = 0xBB; // B&W
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
310 *SA1110_LCCR0 = 0xB9; // Color
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
311 // assabet_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_12BPP);
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
312 assabet_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_16BPP);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
313 assabet_BCR(SA1110_BCR_LCD, SA1110_BCR_LCD_ON);
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
314 assabet_BCR(SA1110_BCR_BACKLIGHT, SA1110_BCR_BACKLIGHT);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
315 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
316
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
317 // Clear screen
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
318 void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
319 lcd_clear(void)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
320 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
321 int row, col;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
322 for (row = 0; row < lcd_height; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
323 for (col = 0; col < lcd_width; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
324 fp->pixels[row][col] = bg;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
325 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
326 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
327 for (row = 0; row < SCREEN_HEIGHT; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
328 for (col = 0; col < SCREEN_WIDTH; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
329 screen[row][col] = ' ';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
330 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
331 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
332 // Note: Row 0 seems to wrap incorrectly
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
333 curX = 0; curY = 1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
334 lcd_drawc(CURSOR_ON, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
335 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
336
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
337 // Position cursor
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
338 void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
339 lcd_moveto(int X, int Y)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
340 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
341 lcd_drawc(CURSOR_OFF, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
342 if (X < 0) X = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
343 if (X >= SCREEN_WIDTH) X = SCREEN_WIDTH-1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
344 curX = X;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
345 // if (Y < 0) Y = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
346 if (Y < 1) Y = 1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
347 if (Y >= SCREEN_HEIGHT) Y = SCREEN_HEIGHT-1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
348 curY = Y;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
349 lcd_drawc(CURSOR_ON, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
350 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
351
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
352 // Render a character at position (X,Y) with current background/foreground
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
353 static void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
354 lcd_drawc(cyg_int8 c, int x, int y)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
355 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
356 // Currently hard-coded for 16bpp
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
357 cyg_uint8 bits;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
358 cyg_uint16 *pixels;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
359 int l, p, w;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
360
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
361 screen[curY][curX] = c;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
362 for (l = 0; l < FONT_HEIGHT; l++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
363 bits = font_table[c-FIRST_CHAR][l];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
364 pixels = &fp->pixels[curY*FONT_HEIGHT+l][curX*FONT_WIDTH];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
365 for (p = 0; p < 8; p++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
366 if (bits & 0x01) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
367 *pixels++ = fg;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
368 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
369 *pixels++ = bg;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
370 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
371 bits >>= 1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
372 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
373 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
374 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
375
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
376 static void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
377 lcd_scroll(void)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
378 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
379 int row, col;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
380 cyg_uint8 *c1, *c2;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
381 cyg_uint16 *p1, *p2;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
382
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
383 // First scroll up the virtual screen
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
384 for (row = 1; row < SCREEN_HEIGHT; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
385 c1 = &screen[row-1][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
386 c2 = &screen[row][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
387 for (col = 0; col < SCREEN_WIDTH; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
388 *c1++ = *c2++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
389 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
390 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
391 c1 = &screen[SCREEN_HEIGHT-1][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
392 for (col = 0; col < SCREEN_WIDTH; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
393 *c1++ = 0x20;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
394 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
395 // Now the physical screen
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
396 for (row = FONT_HEIGHT*2; row < LCD_HEIGHT; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
397 p1 = &fp->pixels[row-FONT_HEIGHT][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
398 p2 = &fp->pixels[row][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
399 for (col = 0; col < LCD_WIDTH; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
400 *p1++ = *p2++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
401 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
402 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
403 for (row = LCD_HEIGHT-FONT_HEIGHT; row < LCD_HEIGHT; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
404 p1 = &fp->pixels[row][0];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
405 for (col = 0; col < LCD_WIDTH; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
406 *p1++ = bg;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
407 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
408 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
409 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
410
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
411 // Draw one character at the current position
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
412 void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
413 lcd_putc(cyg_int8 c)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
414 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
415 lcd_drawc(CURSOR_OFF, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
416 switch (c) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
417 case '\r':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
418 curX = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
419 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
420 case '\n':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
421 curY++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
422 if (curY == SCREEN_HEIGHT) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
423 lcd_scroll();
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
424 curY--;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
425 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
426 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
427 case '\b':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
428 curX--;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
429 if (curX < 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
430 curY--;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
431 if (curY < 0) curY = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
432 curX = SCREEN_WIDTH-1;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
433 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
434 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
435 default:
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
436 lcd_drawc(c, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
437 curX++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
438 if (curX == SCREEN_WIDTH) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
439 curY++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
440 curX = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
441 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
442 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
443 lcd_drawc(CURSOR_ON, curX, curY);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
444 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
445
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
446 // Basic LCD 'printf()' support
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
447
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
448 #ifndef FALSE
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
449 #define FALSE 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
450 #define TRUE 1
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
451 #endif
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
452
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
453 #include <stdarg.h>
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
454
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
455 #define is_digit(c) ((c >= '0') && (c <= '9'))
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
456
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
457 static int
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
458 _cvt(unsigned long val, char *buf, long radix, char *digits)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
459 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
460 char temp[80];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
461 char *cp = temp;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
462 int length = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
463 if (val == 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
464 /* Special case */
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
465 *cp++ = '0';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
466 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
467 while (val) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
468 *cp++ = digits[val % radix];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
469 val /= radix;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
470 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
471 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
472 while (cp != temp) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
473 *buf++ = *--cp;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
474 length++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
475 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
476 *buf = '\0';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
477 return (length);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
478 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
479
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
480 int
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
481 lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
482 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
483 char c, sign, *cp;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
484 int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
485 char buf[32];
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
486 long val;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
487 while ((c = *fmt0++)) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
488 cp = buf;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
489 length = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
490 if (c == '%') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
491 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
492 left_prec = right_prec = pad_on_right = 0;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
493 if (c == '-') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
494 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
495 pad_on_right++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
496 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
497 if (c == '0') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
498 zero_fill = TRUE;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
499 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
500 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
501 zero_fill = FALSE;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
502 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
503 while (is_digit(c)) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
504 left_prec = (left_prec * 10) + (c - '0');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
505 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
506 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
507 if (c == '.') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
508 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
509 zero_fill++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
510 while (is_digit(c)) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
511 right_prec = (right_prec * 10) + (c - '0');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
512 c = *fmt0++;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
513 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
514 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
515 right_prec = left_prec;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
516 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
517 sign = '\0';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
518 switch (c) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
519 case 'd':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
520 case 'x':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
521 case 'X':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
522 val = va_arg(ap, long);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
523 switch (c) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
524 case 'd':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
525 if (val < 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
526 sign = '-';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
527 val = -val;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
528 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
529 length = _cvt(val, buf, 10, "0123456789");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
530 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
531 case 'x':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
532 length = _cvt(val, buf, 16, "0123456789abcdef");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
533 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
534 case 'X':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
535 length = _cvt(val, buf, 16, "0123456789ABCDEF");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
536 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
537 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
538 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
539 case 's':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
540 cp = va_arg(ap, char *);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
541 length = strlen(cp);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
542 break;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
543 case 'c':
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
544 c = va_arg(ap, long /*char*/);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
545 (*putc)(c);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
546 continue;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
547 default:
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
548 (*putc)('?');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
549 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
550 pad = left_prec - length;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
551 if (sign != '\0') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
552 pad--;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
553 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
554 if (zero_fill) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
555 c = '0';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
556 if (sign != '\0') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
557 (*putc)(sign);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
558 sign = '\0';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
559 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
560 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
561 c = ' ';
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
562 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
563 if (!pad_on_right) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
564 while (pad-- > 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
565 (*putc)(c);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
566 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
567 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
568 if (sign != '\0') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
569 (*putc)(sign);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
570 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
571 while (length-- > 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
572 (*putc)(c = *cp++);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
573 if (c == '\n') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
574 (*putc)('\r');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
575 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
576 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
577 if (pad_on_right) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
578 while (pad-- > 0) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
579 (*putc)(' ');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
580 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
581 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
582 } else {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
583 (*putc)(c);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
584 if (c == '\n') {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
585 (*putc)('\r');
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
586 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
587 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
588 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
589 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
590
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
591 int
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
592 lcd_printf(char const *fmt, ...)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
593 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
594 int ret;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
595 va_list ap;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
596
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
597 va_start(ap, fmt);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
598 ret = lcd_vprintf(lcd_putc, fmt, ap);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
599 va_end(ap);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
600 return (ret);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
601 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
602
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
603 static void
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
604 lcd_test(cyg_addrword_t p)
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
605 {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
606 int i, pix, row, col;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
607 int on;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
608
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
609 diag_printf("LCD test here\n");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
610
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
611 lcd_init(16);
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
612 #if 0
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
613 for (i = 0; i < 16; i++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
614 on = true;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
615 diag_printf("Fill with 0x%x\n", i);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
616 for (row = 0; row < 240; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
617 for (col = 0; col < 320/2; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
618 if (on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
619 fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
620 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
621 fp->pixels[row][col] = 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
622 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
623 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
624 for (col = 320/2; col < 320; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
625 if (!on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
626 fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
627 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
628 fp->pixels[row][col] = 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
629 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
630 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
631 if ((row & 0x0F) == 0x0F) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
632 if (on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
633 on = false;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
634 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
635 on = true;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
636 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
637 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
638 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
639 cyg_thread_delay(100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
640 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
641 #endif
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
642 #if 0
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
643 for (i = 0; i < 4; i++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
644 for (row = 0; row < 240; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
645 for (col = 0; col < 320; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
646 switch (row/40) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
647 case 0:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
648 pix = col / 20; // 0..15
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
649 fp->pixels[row][col] = RGB_RED(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
650 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
651 case 1:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
652 pix = col / 10; // 0..31
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
653 fp->pixels[row][col] = RGB_GREEN(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
654 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
655 case 2:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
656 pix = col / 20; // 0..15
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
657 fp->pixels[row][col] = RGB_BLUE(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
658 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
659 case 3:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
660 pix = col / 20; // 0..15
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
661 fp->pixels[row][col] = RGB_BLUE(pix) | RGB_GREEN(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
662 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
663 case 4:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
664 pix = col / 20; // 0..15
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
665 fp->pixels[row][col] = RGB_BLUE(15) | RGB_GREEN(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
666 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
667 case 5:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
668 fp->pixels[row][col] = 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
669 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
670 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
671 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
672 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
673 cyg_thread_delay(100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
674 #if 0
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
675 for (row = 0; row < 240; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
676 for (col = 0; col < 320; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
677 pix = col / 20; // 0..15
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
678 switch (row/60) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
679 case 0:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
680 fp->pixels[row][col] = RGB_RED(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
681 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
682 case 1:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
683 fp->pixels[row][col] = RGB_GREEN(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
684 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
685 case 2:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
686 fp->pixels[row][col] = RGB_BLUE(pix);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
687 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
688 case 3:
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
689 fp->pixels[row][col] = 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
690 break;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
691 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
692 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
693 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
694 cyg_thread_delay(100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
695 #endif
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
696 #if 0
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
697 on = true;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
698 for (row = 0; row < 240; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
699 for (col = 0; col < 320/2; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
700 if (on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
701 fp->pixels[row][col] = RGB_GREEN(15);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
702 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
703 fp->pixels[row][col] = RGB_BLUE(8);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
704 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
705 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
706 for (col = 320/2; col < 320; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
707 if (!on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
708 fp->pixels[row][col] = RGB_GREEN(15);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
709 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
710 fp->pixels[row][col] = RGB_BLUE(8);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
711 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
712 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
713 if ((row & 0x0F) == 0x0F) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
714 if (on) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
715 on = false;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
716 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
717 on = true;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
718 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
719 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
720 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
721 #endif
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
722 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
723 #endif
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
724 #if 0
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
725 for (row = 0; row < 240; row++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
726 for (col = 0; col < 320; col++) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
727 if (col == 59) {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
728 fp->pixels[row][col] = 0x0000;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
729 } else {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
730 fp->pixels[row][col] = 0xFFFF;
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
731 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
732 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
733 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
734 cyg_thread_delay(100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
735 #endif
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
736 #if 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
737 for (i = 0; i < 16; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
738 diag_printf("Value 0x%04x\n", (1<<i));
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
739 for (row = 0; row < 240; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
740 for (col = 0; col < 320; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
741 fp->pixels[row][col] = (1<<i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
742 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
743 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
744 cyg_thread_delay(500);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
745 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
746 #endif
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
747 #if 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
748 for (i = 0; i < 32; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
749 diag_printf("Red at %d\n", i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
750 for (row = 0; row < 240; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
751 for (col = 0; col < 320; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
752 fp->pixels[row][col] = RGB_RED(i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
753 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
754 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
755 cyg_thread_delay(100);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
756 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
757 #endif
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
758 #if 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
759 for (i = 0; i < 64; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
760 diag_printf("Green at %d\n", i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
761 for (row = 0; row < 240; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
762 for (col = 0; col < 320; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
763 fp->pixels[row][col] = RGB_GREEN(i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
764 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
765 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
766 cyg_thread_delay(100);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
767 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
768 #endif
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
769 #if 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
770 for (i = 0; i < 32; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
771 diag_printf("BLUE at %d\n", i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
772 for (row = 0; row < 240; row++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
773 for (col = 0; col < 320; col++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
774 fp->pixels[row][col] = RGB_BLUE(i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
775 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
776 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
777 cyg_thread_delay(100);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
778 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
779 #endif
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
780
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
781 for (i = 0; i < 1; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
782 show_xpm(eCos_xpm);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
783 show_xpm(redhat_xpm);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
784 show_xpm(redboot_xpm);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
785 show_xpm(escw_xpm);
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
786 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
787
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
788 #if 0
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
789 // This doesn't seem to do anything on my unit
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
790 assabet_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_ON);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
791 cyg_thread_delay(2*100);
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
792 assabet_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_OFF);
126
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
793 #endif
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
794
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
795 lcd_clear();
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
796 lcd_printf("\n\n**** Hello world!\n");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
797 cyg_thread_delay(200);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
798 for (i = 0; i < 132; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
799 lcd_printf("... testing line #%d\n", i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
800 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
801 cyg_thread_delay(200);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
802 bg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(0);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
803 fg = RGB_RED(31) | RGB_GREEN(63) | RGB_BLUE(0);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
804 for (i = 0; i < 132; i++) {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
805 lcd_printf("... testing line #%d\n", i);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
806 }
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
807 cyg_thread_delay(200);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
808 lcd_clear();
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
809 lcd_printf("*****");
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
810 cyg_thread_delay(200);
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
811
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
812 cyg_test_exit();
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
813 }
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
814
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
815 externC void
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
816 cyg_start( void )
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
817 {
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
818 // Create a main thread, so we can run the scheduler and have time 'pass'
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
819 cyg_thread_create(10, // Priority - just a number
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
820 lcd_test, // entry
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
821 0, // entry parameter
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
822 "LCD test", // Name
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
823 &stack[0], // Stack
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
824 STACK_SIZE, // Size
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
825 &thread_handle, // Handle
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
826 &thread_data // Thread data structure
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
827 );
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
828 cyg_thread_resume(thread_handle); // Start it
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
829 cyg_scheduler_start();
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff changeset
830 } // cyg_package_start()