annotate packages/hal/arm/cl7211/current/misc/lcd_test.c @ 32:5af43b635655 ecos-sw-1999-08-18

Merge from eCos master repository on 1999-08-18-15:20:01-BST
author jlarmour
date Wed, 18 Aug 1999 15:33:44 +0000
parents
children e97d78785e2d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
1 //==========================================================================
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
2 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
3 // lcd_test.c
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
4 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
5 // Cirrus CL7211 eval board LCD test code
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
6 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
7 //==========================================================================
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
9 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
10 // -------------------------------------------
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Cygnus eCos Public License
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
12 // Version 1.0 (the "License"); you may not use this file except in
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
14 // http://sourceware.cygnus.com/ecos
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
15 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
19 // the License.
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
20 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
21 // The Original Code is eCos - Embedded Cygnus Operating System, released
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
22 // September 30, 1998.
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
23 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
24 // The Initial Developer of the Original Code is Cygnus. Portions created
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
25 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
26 // -------------------------------------------
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
27 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
28 //####COPYRIGHTEND####
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
29 //==========================================================================
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
30 //#####DESCRIPTIONBEGIN####
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
31 //
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
32 // Author(s): gthomas
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
33 // Contributors: gthomas
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
34 // Date: 1999-05-15
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
35 // Description: Tool used to test LCD controller
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
36 //####DESCRIPTIONEND####
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
37
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
38 #include <pkgconf/kernel.h> // Configuration header
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
39 #include <cyg/kernel/kapi.h>
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
40 #include <cyg/infra/diag.h>
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
41
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
42 #include <cyg/hal/hal_cl7211.h> // Board definitions
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
43
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
44 #ifndef FALSE
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
45 #define FALSE 0
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
46 #define TRUE 1
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
47 #endif
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
48
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
49 #define STACK_SIZE 4096
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
50 static char stack[STACK_SIZE];
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
51 static cyg_thread thread_data;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
52 static cyg_handle_t thread_handle;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
53
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
54 // 8x8 Font - from Helios
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
55
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
56 #define FIRST_CHAR 0x20
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
57 #define LAST_CHAR 0x7E
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
58 #define FONT_HEIGHT 8
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
59 #define FONT_WIDTH 8
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
60 static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
61 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
62 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
63 { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
64 { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
65 { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
66 { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
67 { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
68 { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
69 { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
70 { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
71 { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
72 { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
73 { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
74 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
75 { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
76 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
77 { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
78 { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
79 { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
80 { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
81 { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
82 { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
83 { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
84 { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
85 { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
86 { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
87 { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
88 { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
89 { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
90 { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
91 { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
92 { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
93 { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
94 { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
95 { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
96 { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
97 { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
98 { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
99 { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
100 { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
101 { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
102 { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
103 { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
104 { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
105 { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
106 { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
107 { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
108 { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
109 { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
110 { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
111 { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
112 { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
113 { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
114 { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
115 { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
116 { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
117 { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
118 { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
119 { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
120 { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
121 { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
122 { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
123 { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
124 { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
125 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
126 { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
127 { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
128 { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
129 { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
130 { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
131 { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
132 { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
133 { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
134 { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
135 { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
136 { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
137 { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
138 { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
139 { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
140 { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
141 { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
142 { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
143 { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
144 { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
145 { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
146 { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
147 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
148 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
149 { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
150 { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
151 { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
152 { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
153 { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
154 { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
155 { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
156 { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 } /* ~ */
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
157 };
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
158
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
159 // Physical screen info
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
160 int lcd_depth; // Should be 1, 2, or 4
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
161 int lcd_width = 320;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
162 int lcd_height = 240;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
163 cyg_uint8 *lcd_base = 0xC0000000;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
164
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
165 // Virtual screen info
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
166 int curX = 0; // Last used position
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
167 int curY = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
168 int width = 320 / FONT_WIDTH;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
169 int height = 240 / FONT_HEIGHT;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
170 int fg = 0x0F;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
171 int bg = 0x00;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
172
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
173 // FUNCTIONS
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
174
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
175 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
176 cyg_test_exit(void)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
177 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
178 while (TRUE) ;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
179 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
180
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
181 void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
182 lcd_on(int depth)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
183 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
184 cyg_int32 ctl_word;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
185 lcd_depth = depth;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
186 switch (depth) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
187 case 1:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
188 *(volatile cyg_int32 *)PALLSW = 0xF0F0F0F0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
189 *(volatile cyg_int32 *)PALMSW = 0xF0F0F0F0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
190 ctl_word = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
191 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
192 case 2:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
193 *(volatile cyg_int32 *)PALLSW = 0xFA50FA50;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
194 *(volatile cyg_int32 *)PALMSW = 0xFA50FA50;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
195 ctl_word = LCDCON_GSEN;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
196 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
197 case 4:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
198 *(volatile cyg_int32 *)PALLSW = 0x76543210;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
199 *(volatile cyg_int32 *)PALMSW = 0xFEDCBA98;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
200 ctl_word = LCDCON_GSEN | LCDCON_GSMD;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
201 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
202 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
203 // Video buffer size
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
204 ctl_word |= ((lcd_width * lcd_height * lcd_depth) / 128 - 1) << LCDCON_BUFSIZ_S;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
205 // Line length
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
206 ctl_word |= ((lcd_width / 16) - 1) << LCDCON_LINE_LENGTH_S;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
207 // Pixel prescale
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
208 ctl_word |= ((526628 / (lcd_height * lcd_width)) - 1) << LCDCON_PIX_PRESCALE_S;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
209 // AC frequency bias
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
210 ctl_word |= 0 << LCDCON_AC_PRESCALE_S;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
211 *(volatile cyg_int32 *)LCDCON = ctl_word;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
212 diag_printf("Depth: %d, ctl: %x\n", depth, ctl_word);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
213
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
214 *(volatile cyg_uint8 *)PDDR = 0x20; // Enable video
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
215 *(volatile cyg_uint8 *)PEDDR = 0x0F; // Register E data direction
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
216 *(volatile cyg_uint8 *)PEDR |= 0x01; // Enable PE2
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
217
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
218 *(volatile cyg_uint32 *)PMPCON = 0x500; // Enable DC-to-DC pump #1
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
219
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
220 *(volatile cyg_uint8 *)FRBADDR = 0x0C; // Highest order nibble of LCD frame address
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
221
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
222 *(volatile cyg_uint32 *)SYSCON1 |= SYSCON1_LCDEN;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
223 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
224
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
225 // Clear screen
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
226 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
227 lcd_clear(void)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
228 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
229 cyg_int8 *ptr = lcd_base;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
230 int i;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
231 for (i = 0; i < (lcd_width*lcd_height*lcd_depth)/8; i++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
232 *ptr++ = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
233 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
234 curX = 0; curY = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
235 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
236
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
237 // Render a character at position (X,Y) with current background/foreground
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
238 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
239 lcd_drawc(cyg_int8 c, int x, int y)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
240 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
241 // Note: this only works for fonts which are a multiple of 8 bits wide!
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
242 cyg_uint8 *bufptr, bits;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
243 int l, p;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
244 switch (lcd_depth) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
245 case 1:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
246 bufptr = lcd_base + ((y * FONT_HEIGHT * (lcd_width*lcd_depth)) + (x * FONT_WIDTH)) / 8;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
247 for (l = 0; l < FONT_HEIGHT; l++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
248 *bufptr = font_table[c][l];
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
249 bufptr += (lcd_width*lcd_depth)/8;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
250 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
251 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
252 case 2:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
253 diag_printf("Depth 2 not implemented\n");
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
254 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
255 case 4:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
256 bufptr = lcd_base + ((y * FONT_HEIGHT * (lcd_width*lcd_depth)) + (x * FONT_WIDTH * lcd_depth)) / 8;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
257 for (l = 0; l < FONT_HEIGHT; l++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
258 bits = font_table[c][l];
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
259 for (p = 0; p < 8; p += 2) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
260 // switch ((bits>>6) & 0x03) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
261 switch (bits & 0x03) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
262 case 0:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
263 *bufptr++ = (bg << 4) | bg;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
264 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
265 case 1:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
266 *bufptr++ = (bg << 4) | fg;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
267 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
268 case 2:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
269 *bufptr++ = (fg << 4) | bg;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
270 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
271 case 3:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
272 *bufptr++ = (fg << 4) | fg;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
273 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
274 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
275 bits >>= 2;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
276 // bits <<= 2;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
277 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
278 bufptr += (lcd_width*lcd_depth)/8 - 4;;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
279 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
280 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
281 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
282 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
283
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
284 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
285 lcd_putc(cyg_int8 c)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
286 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
287 switch (c) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
288 case '\r':
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
289 curX = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
290 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
291 case '\n':
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
292 curY++;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
293 break;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
294 case '\b':
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
295 curX--;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
296 if (curX < 0) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
297 curY--;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
298 if (curY < 0) curY = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
299 curX = width-1;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
300 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
301 default:
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
302 lcd_drawc(c, curX, curY);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
303 curX++;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
304 if (curX == width) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
305 curY++;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
306 curX = 0;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
307 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
308 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
309 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
310
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
311 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
312 lcd_test(int depth)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
313 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
314 int i, j;
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
315 diag_printf("Set depth %d\n", depth);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
316 lcd_on(depth);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
317 lcd_clear();
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
318 for (j = 0; j < 5; j++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
319 for (i = 0; i < width; i++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
320 lcd_putc('A');
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
321 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
322 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
323 lcd_putc('\n');
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
324 lcd_putc('\n');
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
325 cyg_thread_delay(5*100);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
326 for (j = 0; j < 5; j++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
327 for (i = FIRST_CHAR; i <= LAST_CHAR; i++) {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
328 lcd_putc(i);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
329 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
330 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
331 cyg_thread_delay(5*100);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
332 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
333
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
334 static void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
335 lcd_exercise(void)
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
336 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
337 diag_printf("LCD test here!\n");
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
338
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
339 lcd_test(1);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
340 // lcd_test(2);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
341 lcd_test(4);
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
342
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
343 diag_printf("All done!\n");
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
344 cyg_test_exit();
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
345 }
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
346
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
347 externC void
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
348 cyg_start( void )
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
349 {
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
350 // Create a main thread, so we can run the scheduler and have time 'pass'
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
351 cyg_thread_create(10, // Priority - just a number
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
352 lcd_exercise, // entry
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
353 1, // index
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
354 "LCD_test_thread", // Name
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
355 &stack[0], // Stack
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
356 STACK_SIZE, // Size
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
357 &thread_handle, // Handle
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
358 &thread_data // Thread data structure
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
359 );
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
360 cyg_thread_resume(thread_handle); // Start it
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
361 cyg_scheduler_start();
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
362 } // cyg_package_start()
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
diff changeset
363