summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorPhilippe Simons <loki_666@fastmail.fm>2005-07-07 22:07:11 +0000
committerPhilippe Simons <loki_666@fastmail.fm>2005-07-07 22:07:11 +0000
commit4bc22a6d7529aeac7c75eb785cf0f9f68df01d8c (patch)
tree5a5f77fe0a92b49449ecae8725d31659b8a462a0 /c
parent2005-07-07 Philippe Simons <loki_666@fastmail.fm> (diff)
downloadrtems-4bc22a6d7529aeac7c75eb785cf0f9f68df01d8c.tar.bz2
2005-07-07 Philippe Simons <loki_666@fastmail.fm>
* Makefile.am: Remove lcd.rel, added console/uart.c, removed conio stuffs. * console/conio.c, console/console.c, console/defaultfont.c, include/conio.h : files removed. * console/uart.c: New file. * include/bsp.h: lcd.c prototypes removed. * startup/bspstart.c: bsp_reset() cause gp32 to reset to bios, added a bsp_idle_task which put s3c2400 in a "wait for IRQ" state.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/arm/gp32/ChangeLog11
-rw-r--r--c/src/lib/libbsp/arm/gp32/Makefile.am10
-rw-r--r--c/src/lib/libbsp/arm/gp32/console/conio.c360
-rw-r--r--c/src/lib/libbsp/arm/gp32/console/console.c176
-rw-r--r--c/src/lib/libbsp/arm/gp32/console/defaultfont.c600
-rw-r--r--c/src/lib/libbsp/arm/gp32/console/uart.c249
-rw-r--r--c/src/lib/libbsp/arm/gp32/include/bsp.h3
-rw-r--r--c/src/lib/libbsp/arm/gp32/include/conio.h82
-rw-r--r--c/src/lib/libbsp/arm/gp32/startup/bspstart.c44
9 files changed, 295 insertions, 1240 deletions
diff --git a/c/src/lib/libbsp/arm/gp32/ChangeLog b/c/src/lib/libbsp/arm/gp32/ChangeLog
index d0eceb6667..a89adf75aa 100644
--- a/c/src/lib/libbsp/arm/gp32/ChangeLog
+++ b/c/src/lib/libbsp/arm/gp32/ChangeLog
@@ -1,3 +1,14 @@
+2005-07-07 Philippe Simons <loki_666@fastmail.fm>
+
+ * Makefile.am: Remove lcd.rel, added console/uart.c,
+ removed conio stuffs.
+ * console/conio.c, console/console.c, console/defaultfont.c,
+ include/conio.h : files removed.
+ * console/uart.c: New file.
+ * include/bsp.h: lcd.c prototypes removed.
+ * startup/bspstart.c: bsp_reset() cause gp32 to reset to bios,
+ added a bsp_idle_task which put s3c2400 in a "wait for IRQ" state.
+
2005-06-06 Philippe Simons <loki_666@fastmail.fm>
* Makefile.am: Include lcd.rel.
diff --git a/c/src/lib/libbsp/arm/gp32/Makefile.am b/c/src/lib/libbsp/arm/gp32/Makefile.am
index 1136343cf9..a6a69868a0 100644
--- a/c/src/lib/libbsp/arm/gp32/Makefile.am
+++ b/c/src/lib/libbsp/arm/gp32/Makefile.am
@@ -10,7 +10,6 @@ include $(top_srcdir)/../../bsp.am
dist_project_lib_DATA = bsp_specs
include_HEADERS = include/bsp.h
-include_HEADERS += include/conio.h
include_HEADERS += include/tm27.h
nodist_include_HEADERS = include/bspopts.h
@@ -36,7 +35,7 @@ startup_rel_CPPFLAGS = $(AM_CPPFLAGS)
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += console.rel
-console_rel_SOURCES = console/conio.c console/defaultfont.c console/console.c
+console_rel_SOURCES = console/uart.c ../../shared/console.c
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
@@ -46,8 +45,7 @@ libbsp_a_LIBADD = startup.rel console.rel
libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/shared/arm920.rel \
../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/clock.rel \
../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/timer.rel \
- ../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/irq.rel \
- ../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/lcd.rel
+ ../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/irq.rel
all-local: $(PREINSTALL_FILES) $(TMPINSTALL_FILES)
@@ -73,10 +71,6 @@ $(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
-$(PROJECT_INCLUDE)/conio.h: include/conio.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/conio.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/conio.h
-
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
diff --git a/c/src/lib/libbsp/arm/gp32/console/conio.c b/c/src/lib/libbsp/arm/gp32/console/conio.c
deleted file mode 100644
index d85e8a8234..0000000000
--- a/c/src/lib/libbsp/arm/gp32/console/conio.c
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * conio.c : ARM GBA BSP
- *
- * This file contains the GBA conio I/O package.
- *
- *
- * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net>
- *
- * This source file is based on work by Rafael Vuijk (aka Dark Fader)
- * MyLib by Rafael Vuijk (aka Dark Fader)
- *
- * The license and distribution terms for this file may be
- * found in found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
-*/
-
-
-/*---------------------------------------------------------------------------*
- * Includes *
- *---------------------------------------------------------------------------*/
-#include <rtems/score/types.h>
-#include <s3c2400.h>
-#include <bsp.h>
-#include <conio.h>
-#include <stdio.h>
-#include <stdarg.h>
-
-#define gp_initButtons() {rPBCON=0x0;}
-#define gp_getButtons() ((((~rPEDAT >> 6) & 0x3) << 8) | \
- ((~rPBDAT >> 8) & 0xFF))
-
-/*---------------------------------------------------------------------------*
- * Defines *
- *---------------------------------------------------------------------------*/
-#define DEFAULT_FONT_WIDTH 4
-#define DEFAULT_FONT_HEIGHT 6
-#define W (LCD_WIDTH/DEFAULT_FONT_WIDTH)
-#define H (LCD_HEIGHT/DEFAULT_FONT_HEIGHT)
-
-typedef unsigned char Bitmap[LCD_HEIGHT][LCD_WIDTH];
-#define GP32_CONIO_VRAM 0x0c7ed000
-#define bg_bitmap (*(Bitmap *)GP32_CONIO_VRAM)
-
-/* color conversion */
-#define RGB(r,g,b) ( (r)<<11 | (g)<<6 | (b)<<1 )
-
-int _wherex;
-int _wherey;
-int _textattr;
-
-
-/*---------------------------------------------------------------------------*
- * Defaultfont *
- *---------------------------------------------------------------------------*/
-#include "defaultfont.c"
-
-/*---------------------------------------------------------------------------*
- * gp32_gotoxy *
- *---------------------------------------------------------------------------*/
-void gpconio_gotoxy(int _x, int _y)
-{
- _wherex = _x;
- _wherey = _y;
-}
-
-
-/*---------------------------------------------------------------------------*
- * PutChar *
- *---------------------------------------------------------------------------*/
-void PutChar(char c, int textattr, int x, int y)
-{
- int f = textattr & 0x0F;
- int b = textattr >> 4;
- uint32_t fmask = f | (f << 8) | (f << 16) | (f << 24);
- uint32_t bmask = b | (b << 8) | (b << 16) | (b << 24);
- uint32_t *dest = (uint32_t *)&bg_bitmap[((y << 1) + y) << 1][x << 2];
- const uint32_t *src = (uint32_t *)&(font3x5[(int)c]);
- uint32_t s;
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += LCD_WIDTH / sizeof(uint32_t);
-}
-
-
-/*---------------------------------------------------------------------------*
- * gp32_textattr *
- *---------------------------------------------------------------------------*/
-void gpconio_textattr(int _attr)
-{
- _textattr = _attr;
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_textbackground *
- *---------------------------------------------------------------------------*/
-void gpconio_textbackground(int _color)
-{
- _textattr = (_textattr & 0x0F) | (_color << 4);
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_textcolor *
- *---------------------------------------------------------------------------*/
-void gpconio_textcolor(int _color)
-{
- _textattr = (_textattr & 0xF0) | (_color);
-}
-
-
-/*---------------------------------------------------------------------------*
- * ClrLine *
- *---------------------------------------------------------------------------*/
-void ClrLine(int y)
-{
- int x;
-
- for(x=0 ; x<=W ; x++) PutChar(0, _textattr, x, y);
-}
-
-/*---------------------------------------------------------------------------*
- * NextLine *
- *---------------------------------------------------------------------------*/
-void NextLine()
-{
- _wherex = 0;
-
- if (++_wherey >= H) {
- _wherey = 0;
- }
-
- ClrLine(_wherey);
-}
-
-/*---------------------------------------------------------------------------*
- * clrscr *
- *---------------------------------------------------------------------------*/
-void gpconio_clrscr()
-{
- int y;
-
- for(y=0 ; y<=H ; y++) {
- ClrLine(y);
- }
-
- gpconio_gotoxy(0,0);
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_put *
- *---------------------------------------------------------------------------*/
-void gpconio_put(char _c)
-{
- /* We have save some memory with fonts */
- _c = _c & 0x7F; /* no extened chars */
- _c = _c - 0x20; /* no cntr chars */
- PutChar(_c, _textattr, _wherex, _wherey);
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_putch *
- *---------------------------------------------------------------------------*/
-void gpconio_putch(char _c)
-{
- switch (_c) {
- case ASCII_LF:
- NextLine();
- break;
- case ASCII_CR:
- gpconio_gotoxy(0, _wherey);
- break;
- default:
- gpconio_put(_c);
- if (++_wherex >= W) {
- NextLine();
- }
- break;
- }
- return;
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_puts *
- *---------------------------------------------------------------------------*/
-void gpconio_puts(const char *_str)
-{
- while (*_str) {
- gpconio_putch(*_str++);
- }
- return;
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_printf *
- *---------------------------------------------------------------------------*/
-int gpconio_printf(const char *_format, ...)
-{
- char s[256];
- va_list marker;
- va_start(marker, _format);
- int r = vsprintf(s, _format, marker);
-
- va_end(marker);
- gpconio_puts(s);
- return r;
-}
-
-void ShowConIO()
-{
- unsigned short BPPMODE = 11;
- unsigned short CLKVAL = (get_HCLK()/(83385*2*60))-1;
- uint32_t LCDBANK = GP32_CONIO_VRAM >> 22;
- uint32_t LCDBASEU = (GP32_CONIO_VRAM & 0x3FFFFF) >> 1;
- uint32_t LCDBASEL;
- unsigned short OFFSIZE = 0;
- unsigned short PAGEWIDTH;
-
- rLCDCON1 = (CLKVAL<<8) | (0<<7) | (3<<5) | (BPPMODE<<1) | (1<<0) ;
- rLCDCON2 = 0;
- rLCDCON2 = (1<<24) | (319<<14) | (2<<6) | (1<<0) ;
- rLCDCON3 = 0;
- rLCDCON3 = (6<<19) | (239<<8) | (2<<0) ;
- rLCDCON4 = 0;
- rLCDCON4 = (0<<24) | (0<<16) | (0<<8) | (4<<0) ;
- rLCDCON5 = 0;
- rLCDCON5 = ((1<<10) | (1<<9) | (1<<8) | (0<<7) |
- (0<<6) | (0<<4) | (0<<2) | (1<<1) | (0<<0)) ;
-
- LCDBASEL = LCDBASEU + 320*120;
- PAGEWIDTH = 120;
-
- rLCDSADDR1 = (LCDBANK<<21) | (LCDBASEU<<0) ;
- rLCDSADDR2 = (LCDBASEL<<0) ;
- rLCDSADDR3 = (OFFSIZE<<11) | (PAGEWIDTH<<0) ;
-}
-
-
-/*---------------------------------------------------------------------------*
- * InitConIO *
- *---------------------------------------------------------------------------*/
-void InitConIO()
-{
- ShowConIO();
-
- gp_initButtons();
- gpconio_textattr(0);
- gpconio_textcolor(DEF_TEXTCOLOR);
- gpconio_textbackground(DEF_TEXTBACKGROUND);
- gpconio_clrscr();
-}
-
-
-static void delay_loop(unsigned int count)
-{
- int i;
-
- for(i = 0; i < count; i++) {
- i = i;
- }
-
-}
-
-/*---------------------------------------------------------------------------*
- * gp32_getch *
- *---------------------------------------------------------------------------*/
-static unsigned char inputch = ASCII_CR;
-char gpconio_getch(void)
-{
- int keyx;
- int key = 0;
-
- while(1) {
- key = gp_getButtons();
-
- do {
- keyx = gp_getButtons();
- } while (keyx == key);
-
- switch (key) {
- case GP32_KEY_SELECT:
- gpconio_put(inputch);
- return inputch;
- break;
-
- case GP32_KEY_START:
- gpconio_put(' ');
- inputch = ASCII_CR;
- return inputch;
- break;
-
- case GP32_KEY_A:
- inputch = 'A';
- break;
-
- case GP32_KEY_B:
- inputch = 'Z';
- break;
-
- case GP32_KEY_UP:
- if ((inputch-1) >= 0x20) {
- inputch--;
- }
- break;
-
- case GP32_KEY_DOWN:
- if ((inputch+1) <= 0x7E) {
- inputch++;
- }
- break;
-
- case GP32_KEY_LEFT:
- if ((inputch - 0x20) >= 0x20) {
- inputch -= 0x20;
- }
- break;
-
- case GP32_KEY_RIGHT:
- if ((inputch + 0x20) <= 0x7E) {
- inputch += 0x20;
- }
- break;
-
- case GP32_KEY_R:
- inputch = '1';
- break;
-
- case GP32_KEY_L:
- inputch = '9';
- break;
-
- default:
- break;
- }
-
- gpconio_put(inputch);
- delay_loop(10000);
- }
-}
diff --git a/c/src/lib/libbsp/arm/gp32/console/console.c b/c/src/lib/libbsp/arm/gp32/console/console.c
deleted file mode 100644
index d0fc3fef30..0000000000
--- a/c/src/lib/libbsp/arm/gp32/console/console.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * console.c : ARM GBA BSP
- *
- * This file contains the GBA console I/O package.
- *
- *
- * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <unistd.h>
-
-#include <bsp.h>
-#include <rtems/bspIo.h>
-#include <rtems/libio.h>
-#include <rtems/termiostypes.h>
-#include <termios.h>
-#include <irq.h>
-#include <s3c2400.h>
-#include <conio.h>
-
-/*
- * BSP initialization
- */
-
-static int gp32_pollRead(int minor)
-{
- return(gpconio_getch());
-}
-
-static int gp32_write(int minor, const char *buf, int len)
-{
- int i;
-
- for(i = 0; i < len; i++) {
- gpconio_putch((unsigned short)buf[i]);
- }
-
- return len;
-}
-
-
-/* for printk support */
-BSP_output_char_function_type BSP_output_char = (BSP_output_char_function_type) gpconio_putch;
-BSP_polling_getchar_function_type BSP_poll_char = (BSP_polling_getchar_function_type) gpconio_getch;
-
-/*-------------------------------------------------------------------------+
-| Console device driver INITIALIZE entry point.
-+--------------------------------------------------------------------------+
-| Initilizes the I/O console (keyboard + VGA display) driver.
-+--------------------------------------------------------------------------*/
-rtems_device_driver
-console_initialize(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
-{
- rtems_status_code status;
-
- /*
- * Set up TERMIOS
- */
- rtems_termios_initialize ();
-
- /*
- * Do device-specific initialization
- */
- InitConIO();
-
- /*
- * Register the device
- */
- status = rtems_io_register_name ("/dev/console", major, 0);
- if (status != RTEMS_SUCCESSFUL) {
- printk("Error registering console device!\n");
- rtems_fatal_error_occurred (status);
- }
-
- return RTEMS_SUCCESSFUL;
-}
-
-
-/*-------------------------------------------------------------------------+
-| Console device driver OPEN entry point
-+--------------------------------------------------------------------------*/
-rtems_device_driver
-console_open(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
-{
- rtems_status_code status;
- static rtems_termios_callbacks cb =
- {
- NULL, /* firstOpen */
- NULL, /* lastClose */
- gp32_pollRead, /* pollRead */
- gp32_write, /* write */
- NULL, /* setAttributes */
- NULL, /* stopRemoteTx */
- NULL, /* startRemoteTx */
- TERMIOS_POLLED /* 1 = outputUsesInterrupts */
- };
-
- status = rtems_termios_open (major, minor, arg, &cb);
-
- if(status != RTEMS_SUCCESSFUL) {
- printk("Error openning console device\n");
- return status;
- }
-
- return RTEMS_SUCCESSFUL;
-}
-
-/*-------------------------------------------------------------------------+
-| Console device driver CLOSE entry point
-+--------------------------------------------------------------------------*/
-rtems_device_driver
-console_close(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
-{
- rtems_device_driver res = RTEMS_SUCCESSFUL;
-
- res = rtems_termios_close (arg);
- return res;
-}
-
-
-/*-------------------------------------------------------------------------+
-| Console device driver READ entry point.
-+--------------------------------------------------------------------------+
-| Read characters from the I/O console. We only have stdin.
-+--------------------------------------------------------------------------*/
-rtems_device_driver
-console_read(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
-{
- return rtems_termios_read (arg);
-
-}
-
-
-/*-------------------------------------------------------------------------+
-| Console device driver WRITE entry point.
-+--------------------------------------------------------------------------+
-| Write characters to the I/O console. Stderr and stdout are the same.
-+--------------------------------------------------------------------------*/
-rtems_device_driver
-console_write(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
-{
- return rtems_termios_write (arg);
-}
-
-
-
-/*
- * Handle ioctl request.
- */
-rtems_device_driver
-console_control(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_ioctl (arg);
-}
diff --git a/c/src/lib/libbsp/arm/gp32/console/defaultfont.c b/c/src/lib/libbsp/arm/gp32/console/defaultfont.c
deleted file mode 100644
index a4a5082e03..0000000000
--- a/c/src/lib/libbsp/arm/gp32/console/defaultfont.c
+++ /dev/null
@@ -1,600 +0,0 @@
-/*
- * defaultfont.c : ARM GBA BSP
- *
- * This file contains default font definitions
- *
- *
- * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
-*/
-
-#define X 255
-#define GEN_FONT_DATA(a,b,c,d) ( ((d) << 24) | \
- ((c) << 16) | \
- ((b) << 8) | \
- ((a) << 0) )
-
-static const unsigned long font3x5[256][6] = {
- { /* ' ' - ascii:0x20 font:0x00 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '!' - ascii:0x21 font:0x01 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '"' - ascii:0x22 font:0x02 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '#' - ascii:0x23 font:0x03 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* '$' - ascii:0x24 font:0x04 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '%' - ascii:0x25 font:0x05 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '&' - ascii:0x26 font:0x06 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* ''' - ascii:0x27 font:0x07 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '(' - ascii:0x28 font:0x08 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* ')' - ascii:0x29 font:0x09 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '*' - ascii:0x2A font:0x0A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '+' - ascii:0x2B font:0x0B */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '´' - ascii:0x2C font:0x0C */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '-' - ascii:0x2D font:0x0D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '.' - ascii:0x2E font:0x0E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* '/' - ascii:0x2F font:0x0F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( X,0,0,0 )
- },{ /* '0' - ascii:0x30 font:0x10 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '1' - ascii:0x31 font:0x11 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '2' - ascii:0x32 font:0x12 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '3' - ascii:0x33 font:0x13 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '4' - ascii:0x34 font:0x14 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* '5' - ascii:0x35 font:0x15 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '6' - ascii:0x36 font:0x16 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '7' - ascii:0x37 font:0x17 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '8' - ascii:0x38 font:0x18 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '9' - ascii:0x39 font:0x19 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* ':' - ascii:0x3A font:0x1A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- },{ /* ';' - ascii:0x3B font:0x1B */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* '<' - ascii:0x3C font:0x1C */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* '=' - ascii:0x3D font:0x1D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '>' - ascii:0x3E font:0x1E */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '?' - ascii:0x3F font:0x1F */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '@' - ascii:0x40 font:0x20 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'A' - ascii:0x41 font:0x21 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'B' - ascii:0x42 font:0x22 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'C' - ascii:0x43 font:0x23 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'D' - ascii:0x44 font:0x24 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- },{ /* 'E' - ascii:0x45 font:0x25 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'F' - ascii:0x46 font:0x26 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'G' - ascii:0x47 font:0x27 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'H' - ascii:0x48 font:0x28 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'I' - ascii:0x49 font:0x29 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'J' - ascii:0x4A font:0x2A */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'K' - ascii:0x4B font:0x2B */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'L' - ascii:0x4C font:0x2C */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'M' - ascii:0x4D font:0x2D */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'N' - ascii:0x4E font:0x2E */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'O' - ascii:0x4F font:0x2F */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'P' - ascii:0x50 font:0x30 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'Q' - ascii:0x51 font:0x31 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'R' - ascii:0x52 font:0x33 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'S' - ascii:0x53 font:0x33 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'T' - ascii:0x54 font:0x34 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'U' - ascii:0x55 font:0x35 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'V' - ascii:0x56 font:0x36 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'W' - ascii:0x57 font:0x37 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- },{ /* 'X' - ascii:0x58 font:0x38 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'Y' - ascii:0x59 font:0x39 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'Z' - ascii:0x5A font:0x3A */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '[' - ascii:0x5B font:0x3B */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '\' - ascii:0x5C font:0x3C */
- GEN_FONT_DATA( X,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* ']' - ascii:0x5D font:0x3D */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '^' - ascii:0x5E font:0x3E */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '_' - ascii:0x5F font:0x3F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '´' - ascii:0x60 font:0x30 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* 'a' - ascii:0x31 font:0x31 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'b' - ascii:0x62 font:0x32 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'c' - ascii:0x63 font:0x33 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'd' - ascii:0x64 font:0x34 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- },{ /* 'e' - ascii:0x65 font:0x35 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'f' - ascii:0x66 font:0x36 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'g' - ascii:0x67 font:0x37 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'h' - ascii:0x68 font:0x38 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'i' - ascii:0x69 font:0x39 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'j' - ascii:0x6A font:0x3A */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'k' - ascii:0x6B font:0x3B */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'l' - ascii:0x6C font:0x3C */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'm' - ascii:0x6D font:0x3D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'n' - ascii:0x6E font:0x3E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'o' - ascii:0x6F font:0x6F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'p' - ascii:0x70 font:0x40 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'q' - ascii:0x71 font:0x41 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* 'r' - ascii:0x72 font:0x43 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* 's' - ascii:0x73 font:0x43 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 't' - ascii:0x74 font:0x44 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- },{ /* 'u' - ascii:0x75 font:0x45 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'v' - ascii:0x76 font:0x46 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'w' - ascii:0x77 font:0x47 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- },{ /* 'x' - ascii:0x78 font:0x48 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'y' - ascii:0x79 font:0x49 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'z' - ascii:0x7A font:0x4A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '{' - ascii:0x7B font:0x4B */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* '\' - ascii:0x7C font:0x4C */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '}' - ascii:0x7D font:0x4D */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* '~' - ascii:0x7E font:0x4E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* DEL - ascii:0x7F font:0x4F */
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X )
- }
-};
diff --git a/c/src/lib/libbsp/arm/gp32/console/uart.c b/c/src/lib/libbsp/arm/gp32/console/uart.c
new file mode 100644
index 0000000000..6ca578265d
--- /dev/null
+++ b/c/src/lib/libbsp/arm/gp32/console/uart.c
@@ -0,0 +1,249 @@
+/*
+ * console driver for S3C2400 UARTs
+ *
+ * This driver uses the shared console driver in
+ * ...../libbsp/shared/console.c
+ *
+ * If you want the driver to be interrupt driven, you
+ * need to write the ISR, and in the ISR insert the
+ * chars into termios's queue.
+ *
+ * Copyright (c) 2004 Cogent Computer Systems
+ * Written by Jay Monkman <jtm@lopingdog.com>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ *
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ *
+ * $Id$
+*/
+#include <bsp.h> /* Must be before libio.h */
+#include <rtems/libio.h>
+#include <termios.h>
+#include <rtems/bspIo.h>
+
+/* Put the CPU (or UART) specific header file #include here */
+#include <s3c2400.h>
+#include <libchip/serial.h>
+#include <libchip/sersupp.h>
+
+/* How many serial ports? */
+#define NUM_DEVS 1
+
+int uart_poll_read(int minor);
+
+int dbg_dly;
+
+/* static function prototypes */
+static int uart_first_open(int major, int minor, void *arg);
+static int uart_last_close(int major, int minor, void *arg);
+static int uart_read(int minor);
+static int uart_write(int minor, const char *buf, int len);
+static void uart_init(int minor);
+static void uart_write_polled(int minor, char c);
+static int uart_set_attributes(int minor, const struct termios *t);
+
+/* These are used by code in console.c */
+unsigned long Console_Port_Count = NUM_DEVS;
+console_data Console_Port_Data[NUM_DEVS];
+
+/* rtems console uses the following minor number */
+rtems_device_minor_number Console_Port_Minor = 0;
+
+/* Pointers to functions for handling the UART. */
+console_fns uart_fns =
+{
+ libchip_serial_default_probe,
+ uart_first_open,
+ uart_last_close,
+ uart_read,
+ uart_write,
+ uart_init,
+ uart_write_polled, /* not used in this driver */
+ uart_set_attributes,
+ FALSE /* TRUE if interrupt driven, FALSE if not. */
+};
+
+/*
+ * There's one item in array for each UART.
+ *
+ * Some of these fields are marked "NOT USED". They are not used
+ * by console.c, but may be used by drivers in libchip
+ *
+ */
+console_tbl Console_Port_Tbl[] = {
+ {
+ "/dev/com0", /* sDeviceName */
+ SERIAL_CUSTOM, /* deviceType */
+ &uart_fns, /* pDeviceFns */
+ NULL, /* deviceProbe */
+ NULL, /* pDeviceFlow */
+ 0, /* ulMargin - NOT USED */
+ 0, /* ulHysteresis - NOT USED */
+ NULL, /* pDeviceParams */
+ 0, /* ulCtrlPort1 - NOT USED */
+ 0, /* ulCtrlPort2 - NOT USED */
+ 0, /* ulDataPort - NOT USED */
+ NULL, /* getRegister - NOT USED */
+ NULL, /* setRegister - NOT USED */
+ NULL, /* getData - NOT USED */
+ NULL, /* setData - NOT USED */
+ 0, /* ulClock - NOT USED */
+ 0 /* ulIntVector - NOT USED */
+ }
+};
+
+/*********************************************************************/
+/* Functions called via termios callbacks (i.e. the ones in uart_fns */
+/*********************************************************************/
+
+/*
+ * This is called the first time each device is opened. If the driver
+ * is interrupt driven, you should enable interrupts here. Otherwise,
+ * it's probably safe to do nothing.
+ *
+ * Since micromonitor already set up the UART, we do nothing.
+ */
+static int uart_first_open(int major, int minor, void *arg)
+{
+ return 0;
+}
+
+
+/*
+ * This is called the last time each device is closed. If the driver
+ * is interrupt driven, you should disable interrupts here. Otherwise,
+ * it's probably safe to do nothing.
+ */
+static int uart_last_close(int major, int minor, void *arg)
+{
+ return 0;
+}
+
+
+/*
+ * Read one character from UART.
+ *
+ * Return -1 if there's no data, otherwise return
+ * the character in lowest 8 bits of returned int.
+ */
+static int uart_read(int minor)
+{
+ char c;
+
+ if (minor == 0) {
+ if (rUTRSTAT0 & 0x1) {
+ c = rURXH0 & 0xff;
+ return c;
+ } else {
+ return -1;
+ }
+ } else {
+ printk("Unknown console minor number: %d\n", minor);
+ return -1;
+ }
+
+}
+
+
+/*
+ * Write buffer to UART
+ *
+ * return 1 on success, -1 on error
+ */
+static int uart_write(int minor, const char *buf, int len)
+{
+ int i;
+
+ if (minor == 0) {
+ for (i = 0; i < len; i++) {
+ /* Wait for fifo to have room */
+ while(!(rUTRSTAT0 & 0x2)) {
+ continue;
+ }
+
+ rUTXH0 = (char) buf[i];
+ }
+ } else {
+ printk("Unknown console minor number: %d\n", minor);
+ return -1;
+ }
+
+ return 1;
+}
+
+
+/* Set up the UART. */
+static void uart_init(int minor)
+{
+ int i;
+ unsigned int reg = 0;
+
+ /* enable UART0 */
+ rCLKCON|=0x100;
+
+ /* value is calculated so : (int)(PCLK/16./baudrate) -1 */
+ reg = get_PCLK() / (16 * 115200) - 1;
+
+ /* FIFO enable, Tx/Rx FIFO clear */
+ rUFCON0 = 0x07;
+ rUMCON0 = 0x0;
+ /* Normal,No parity,1 stop,8 bit */
+ rULCON0 = 0x3;
+ /*
+ * tx=level,rx=edge,disable timeout int.,enable rx error int.,
+ * normal,interrupt or polling
+ */
+ rUCON0 = 0x245;
+ rUBRDIV0 = reg;
+
+ for (i = 0; i < 100; i++);
+
+}
+
+/* I'm not sure this is needed for the shared console driver. */
+static void uart_write_polled(int minor, char c)
+{
+ uart_write(minor, &c, 1);
+}
+
+/* This is for setting baud rate, bits, etc. */
+static int uart_set_attributes(int minor, const struct termios *t)
+{
+ return 0;
+}
+
+/***********************************************************************/
+/*
+ * The following functions are not used by TERMIOS, but other RTEMS
+ * functions use them instead.
+ */
+/***********************************************************************/
+/*
+ * Read from UART. This is used in the exit code, and can't
+ * rely on interrupts.
+*/
+int uart_poll_read(int minor)
+{
+ return uart_read(minor);
+}
+
+
+/*
+ * Write a character to the console. This is used by printk() and
+ * maybe other low level functions. It should not use interrupts or any
+ * RTEMS system calls. It needs to be very simple
+ */
+static void _BSP_put_char( char c ) {
+ uart_write_polled(0, c);
+ if (c == '\n') {
+ uart_write_polled(0, '\r');
+ }
+}
+
+BSP_output_char_function_type BSP_output_char = _BSP_put_char;
+
+
+
diff --git a/c/src/lib/libbsp/arm/gp32/include/bsp.h b/c/src/lib/libbsp/arm/gp32/include/bsp.h
index d62e4c3fbe..b9b50d8bae 100644
--- a/c/src/lib/libbsp/arm/gp32/include/bsp.h
+++ b/c/src/lib/libbsp/arm/gp32/include/bsp.h
@@ -32,9 +32,6 @@ extern "C" {
extern rtems_configuration_table BSP_Configuration;
-void gp32_setFramebuffer(void *add);
-short gp32_initFramebufferN(void *add, uint32_t bitmode, uint32_t refreshrate);
-short gp32_initFramebufferBP(void *add, uint32_t bitmode, uint32_t refreshrate);
#define gp32_initButtons() {rPBCON=0x0;}
#define gp32_getButtons() ( (((~rPEDAT >> 6) & 0x3 )<<8) | (((~rPBDAT >> 8) & 0xFF)<<0) )
diff --git a/c/src/lib/libbsp/arm/gp32/include/conio.h b/c/src/lib/libbsp/arm/gp32/include/conio.h
deleted file mode 100644
index bafdf87ede..0000000000
--- a/c/src/lib/libbsp/arm/gp32/include/conio.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * conio.h : ARM GP32 BSP
- *
- * This file contains the GP32 conio I/O package.
- *
- *
- * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
- */
-
-#ifndef _CONIO_H
-#define _CONIO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*---------------------------------------------------------------------------*
- * Defines *
- *---------------------------------------------------------------------------*/
-#define ASCII_BEL 0x07 /* bell */
-#define ASCII_BS 0x08 /* backspace */
-#define ASCII_TAB 0x09 /* horizontal tab */
-#define ASCII_LF 0x0A /* line feed */
-#define ASCII_CR 0x0D /* carriage return */
-#define ASCII_XON 0x11 /* control-Q */
-#define ASCII_XOFF 0x13 /* control-S */
-#define ASCII_ESC 0x1B /* escape */
-
-enum COLORS
-{
- BLACK,
- BLUE,
- GREEN,
- CYAN,
- RED,
- MAGENTA,
- BROWN,
- LIGHTGRAY,
- DARKGRAY,
- LIGHTBLUE,
- LIGHTGREEN,
- LIGHTCYAN,
- LIGHTRED,
- LIGHTMAGENTA,
- YELLOW,
- WHITE,
- MAXCOLORS
-};
-
-#define DEF_TEXTCOLOR BLACK
-#define DEF_TEXTBACKGROUND WHITE
-
-/*---------------------------------------------------------------------------*
- * Prototypes *
- *---------------------------------------------------------------------------*/
-void gpconio_clrscr();
-void gpconio_textattr(int _attr);
-void gpconio_textbackground(int _color);
-void gpconio_textcolor(int _color);
-void gpconio_putch(char _c);
-void gpconio_puts(const char *_str);
-int gpconio_printf(const char *_format, ...);
-void gpconio_gotoxy(int _x, int _y);
-
-char gpconio_getch(void);
-char gpconio_getch_noblock(void);
-
-void InitConIO();
-void ShowConIO();
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // _CONIO_H
diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
index bc264cad79..f4876443f7 100644
--- a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
@@ -19,7 +19,6 @@
#include <rtems/libio.h>
#include <rtems/bspIo.h>
#include <s3c2400.h>
-#include <conio.h>
/*-------------------------------------------------------------------------+
| Global Variables
@@ -79,6 +78,13 @@ void bsp_pretasking_hook(void)
#endif /* RTEMS_DEBUG */
} /* bsp_pretasking_hook */
+
+void bsp_idle_task(void)
+{
+ while(1){
+ asm volatile ("MCR p15,0,r0,c7,c0,4 \n");
+ }
+}
/*-------------------------------------------------------------------------+
| Function: bsp_start
@@ -98,16 +104,12 @@ void bsp_start_default( void )
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.predriver_hook = NULL; /* use system's */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
- Cpu_table.idle_task = NULL;
+ Cpu_table.idle_task = bsp_idle_task;
Cpu_table.do_zero_of_workspace = TRUE;
Cpu_table.interrupt_stack_size = 4096;
Cpu_table.extra_mpci_receive_server_stack = 0;
- /* setup rCLKCON */
- /* disable all but IIS,IIC,PWMTIMER and LCD */
- rCLKCON=0x6048;
-
/* stop RTC */
rTICINT=0x0;
@@ -119,9 +121,8 @@ void bsp_start_default( void )
/* disable interrupts */
rINTMOD=0x0;
rINTMSK=BIT_ALLMSK; /* unmasked by drivers */
- /*rSRCPND=BIT_ALLMSK;
- rINTMSK=BIT_ALLMSK;
- rINTPND=BIT_ALLMSK;*/
+
+ last=0;
for(i=0; i<4; i++) {
pend=rSRCPND;
if(pend == 0 || pend == last)
@@ -200,6 +201,27 @@ void bsp_reset(void)
rtems_interrupt_level level;
_CPU_ISR_Disable(level);
printk("bsp_reset.....\n");
- ShowConIO();
- while(1);
+ /* disable mmu, invalide i-cache and call swi #4 */
+ asm volatile(""
+ "mrc p15,0,r0,c1,c0,0 \n"
+ "bic r0,r0,#1 \n"
+ "mcr p15,0,r0,c1,c0,0 \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "mov r0,#0 \n"
+ "MCR p15,0,r0,c7,c5,0 \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "nop \n"
+ "swi #4 "
+ :
+ :
+ : "r0"
+ );
+ /* we should be back in bios now */
}