1/* most of this is taken from the file */ 2/* hal/powerpc/cogent/current/src/hal_diag.c in the */ 3/* Cygnus eCos source. Here is the copyright notice: */ 4/* */ 5/*============================================================================= */ 6/* */ 7/* hal_diag.c */ 8/* */ 9/* HAL diagnostic output code */ 10/* */ 11/*============================================================================= */ 12/*####COPYRIGHTBEGIN#### */ 13/* */ 14/* ------------------------------------------- */ 15/* The contents of this file are subject to the Cygnus eCos Public License */ 16/* Version 1.0 (the "License"); you may not use this file except in */ 17/* compliance with the License. You may obtain a copy of the License at */ 18/* http://sourceware.cygnus.com/ecos */ 19/* */ 20/* Software distributed under the License is distributed on an "AS IS" */ 21/* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the */ 22/* License for the specific language governing rights and limitations under */ 23/* the License. */ 24/* */ 25/* The Original Code is eCos - Embedded Cygnus Operating System, released */ 26/* September 30, 1998. */ 27/* */ 28/* The Initial Developer of the Original Code is Cygnus. Portions created */ 29/* by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. */ 30/* ------------------------------------------- */ 31/* */ 32/*####COPYRIGHTEND#### */ 33/*============================================================================= */ 34/*#####DESCRIPTIONBEGIN#### */ 35/* */ 36/* Author(s): nickg, jskov */ 37/* Contributors: nickg, jskov */ 38/* Date: 1999-03-23 */ 39/* Purpose: HAL diagnostic output */ 40/* Description: Implementations of HAL diagnostic output support. */ 41/* */ 42/*####DESCRIPTIONEND#### */ 43/* */ 44/*============================================================================= */ 45 46/* FEMA 162B 16 character x 2 line LCD */ 47 48/* status register bit definitions */ 49#define LCD_STAT_BUSY 0x80 /* 1 = display busy */ 50#define LCD_STAT_ADD 0x7F /* bits 0-6 return current display address */ 51 52/* command register definitions */ 53#define LCD_CMD_RST 0x01 /* clear entire display and reset display addr */ 54#define LCD_CMD_HOME 0x02 /* reset display address and reset any shifting */ 55#define LCD_CMD_ECL 0x04 /* move cursor left one pos on next data write */ 56#define LCD_CMD_ESL 0x05 /* shift display left one pos on next data write */ 57#define LCD_CMD_ECR 0x06 /* move cursor right one pos on next data write */ 58#define LCD_CMD_ESR 0x07 /* shift disp right one pos on next data write */ 59#define LCD_CMD_DOFF 0x08 /* display off, cursor off, blinking off */ 60#define LCD_CMD_BL 0x09 /* blink character at current cursor position */ 61#define LCD_CMD_CUR 0x0A /* enable cursor on */ 62#define LCD_CMD_DON 0x0C /* turn display on */ 63#define LCD_CMD_CL 0x10 /* move cursor left one position */ 64#define LCD_CMD_SL 0x14 /* shift display left one position */ 65#define LCD_CMD_CR 0x18 /* move cursor right one position */ 66#define LCD_CMD_SR 0x1C /* shift display right one position */ 67#define LCD_CMD_MODE 0x38 /* sets 8 bits, 2 lines, 5x7 characters */ 68#define LCD_CMD_ACG 0x40 /* bits 0-5 sets character generator address */ 69#define LCD_CMD_ADD 0x80 /* bits 0-6 sets display data addr to line 1 + */ 70 71/* LCD status values */ 72#define LCD_OK 0x00 73#define LCD_ERR 0x01 74 75#define LCD_LINE0 0x00 76#define LCD_LINE1 0x40 77 78#define LCD_LINE_LENGTH 16 79 80extern void lcd_init(void); 81extern void lcd_write_char(const char); 82extern void lcd_flush(void); 83extern void lcd_write_string(const char *); 84extern void lcd_printf(const char *, ...); 85