File:  [Qemu by Fabrice Bellard] / qemu / roms / SLOF / board-js2x / slof / serial.fs
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:59:09 2018 UTC (8 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1101, qemu1001, qemu1000, qemu0151, HEAD
qemu 0.15.1

\ *****************************************************************************
\ * Copyright (c) 2004, 2008 IBM Corporation
\ * All rights reserved.
\ * This program and the accompanying materials
\ * are made available under the terms of the BSD License
\ * which accompanies this distribution, and is available at
\ * http://www.opensource.org/licenses/bsd-license.php
\ *
\ * Contributors:
\ *     IBM Corporation - initial implementation
\ ****************************************************************************/


\ Serial console.  Enabled very early.
\ remember last console used
CREATE lastser 4 allot  0 lastser l!

\ On JS21, use serial port 2.  Detect Maui by looking at the SIO version.
20 siocfg@ f2 = IF 2f8 ELSE 3f8 THEN

: >serial  LITERAL + ;
: js21?	   -2f8 >serial 0= ;
: serial!  js21? IF 2dup 2f8 + io-c! THEN 3f8 + io-c! ;
: serial1@ 3f8 + io-c@ ;
: serial2@ 2f8 + io-c@ ;

: serial-init  0 1 serial!  0 2 serial!
               80 3 serial! d# 115200 swap / 0 serial!  0 1 serial!
               3 3 serial!  3 4 serial! ;
: serial-emit  BEGIN 5 serial1@ 20 and UNTIL  
 	       js21? IF BEGIN 5 serial2@ 20 and UNTIL THEN 0 serial! ;
: serial1-key? 5 serial1@ 1 and 0<> ;
: serial2-key? 5 serial2@ 1 and 0<> ;
: serial1-key  serial1-key? dup IF 0 serial1@ swap 0 lastser l! THEN ;
: serial2-key  serial2-key? dup IF 0 serial2@ swap 1 lastser l! THEN ;
: serial-key   BEGIN serial1-key dup IF ELSE js21? IF drop serial2-key THEN THEN UNTIL ;
: serial-key?  serial1-key? js21? IF serial2-key? or THEN ;

\ : serial-key   BEGIN 5 serial2@ 1 and UNTIL  0 serial2@ ;
\ : serial-key?  5 serial2@  1 and 0<> ;

d# 19200 serial-init
' serial-emit to emit
' serial-key  to key
' serial-key? to key?

( .( SLOF)
\ .(  has started execution, serial console @ ) 0 >serial .

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.