Annotation of gforth/engine/io-nxt.c, revision 1.2

1.1       pazsan      1: /* direct key io driver for NXT brick
                      2: 
                      3:   Copyright (C) 2007 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 2
                     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, write to the Free Software
                     19:   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
                     20: 
                     21:   The following is stolen from the readline library for bash
                     22: */
                     23: 
                     24: #include "config.h"
                     25: #include "forth.h"
                     26: #include "../arch/arm/nxt/AT91SAM7.h"
1.2     ! pazsan     27: #include "../arch/arm/nxt/bt.h"
1.1       pazsan     28: 
                     29: long key_avail ()
                     30: {
1.2     ! pazsan     31:   return bt_avail();
1.1       pazsan     32: }
                     33: 
                     34: Cell getkey()
                     35: {
1.2     ! pazsan     36:   return bt_getkey();
1.1       pazsan     37: }
                     38: 
                     39: int terminal_prepped = 0;
                     40: 
                     41: void prep_terminal ()
                     42: {
1.2     ! pazsan     43:   aic_initialise();
        !            44:   interrupts_enable();
        !            45:   systick_init();
        !            46:   display_init();
        !            47:   bt_init();
        !            48: 
1.1       pazsan     49:   terminal_prepped = 1;
                     50: }
                     51: 
                     52: void deprep_terminal ()
                     53: {
                     54:   terminal_prepped = 0;
                     55: }
                     56: 
                     57: void emit_char(char x)
                     58: {
1.2     ! pazsan     59:   bt_send(&x, 1);
        !            60:   display_char(x);
1.1       pazsan     61: }
                     62: 
                     63: void type_chars(char *addr, unsigned int l)
                     64: {
1.2     ! pazsan     65:   int i;
        !            66:   bt_send(addr, l);
        !            67:   for(i=0; i<l; i++)
        !            68:     display_char(addr[i]);
1.1       pazsan     69: }

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