File:  [gforth] / gforth / engine / io-beagle.c
Revision 1.1: download - view: text, annotated - select for diffs
Fri Jan 8 19:38:19 2010 UTC (11 years, 5 months ago) by pazsan
Branches: MAIN
CVS tags: HEAD
Beagle board stuff (incomplete)

    1: /* serial IO for the beagle board
    2: 
    3:   Copyright (C) 2010 Free Software Foundation, Inc.
    4: 
    5:   This file is part of Gforth.
    6: 
    7:   Gforth is free software; you can redistribute it and/or
    8:   modify it under the terms of the GNU General Public License
    9:   as published by the Free Software Foundation, either version 3
   10:   of the License, or (at your option) any later version.
   11: 
   12:   This program is distributed in the hope that it will be useful,
   13:   but WITHOUT ANY WARRANTY; without even the implied warranty of
   14:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15:   GNU General Public License for more details.
   16: 
   17:   You should have received a copy of the GNU General Public License
   18:   along with this program; if not, see http://www.gnu.org/licenses/.
   19: */
   20: 
   21: /* This file is a stub for now */
   22: 
   23: int terminal_prepped = 0;
   24: 
   25: void prep_terminal ()
   26: {
   27:   serial_init();
   28: 
   29:   terminal_prepped = 1;
   30: }
   31: 
   32: void deprep_terminal ()
   33: {
   34:   terminal_prepped = 0;
   35: }
   36: 
   37: long key_avail ()
   38: {
   39:   if(!terminal_prepped) prep_terminal();
   40: 
   41:   return serial_tstc();
   42: }
   43: 
   44: long getkey()
   45: {
   46:   if(!terminal_prepped) prep_terminal();
   47: 
   48:   return key_avail() ? serial_getc() : 0;
   49: }
   50: 
   51: void emit_char(char x)
   52: {
   53:   if(!terminal_prepped) prep_terminal();
   54: 
   55:   serial_putc(x);
   56: }
   57: 
   58: void type_chars(char *addr, unsigned int l)
   59: {
   60:   if(!terminal_prepped) prep_terminal();
   61: 
   62:   while(l--) serial_putc(*addr++);
   63: }
   64: 
   65: /* Stubs for interrupts */
   66: 
   67: void do_undefined_instruction()
   68: {
   69: }
   70: 
   71: void do_software_interrupt()
   72: {
   73: }
   74: 
   75: void do_prefetch_abort()
   76: {
   77: }
   78: 
   79: void do_data_abort()
   80: {
   81: }
   82: 
   83: void do_not_used()
   84: {
   85: }
   86: 
   87: void do_irq()
   88: {
   89: }
   90: 
   91: void do_fiq()
   92: {
   93: }
   94: 
   95: #define ADDRLEN(x) x, strlen(x)
   96: 
   97: void start_armboot()
   98: {
   99:   char **argv = { "gforth-ec", 0L };
  100: 
  101:   // type_chars(ADDRLEN("Welcome to Gforth on Beagle Board\n"));
  102:   main(1, argv, 0L);
  103: }
  104: 
  105: void lowlevel_init()
  106: {
  107: }
  108: 
  109: void cpy_clk_code()
  110: {
  111: }
  112: 
  113: void *memset(char *s, int c, unsigned int n)
  114: {
  115:   while(n--) *s++ = c;
  116:   return s;
  117: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>