Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / SLOF / board-qemu / slof / hvterm.fs
diff --git a/qemu/roms/SLOF/board-qemu/slof/hvterm.fs b/qemu/roms/SLOF/board-qemu/slof/hvterm.fs
new file mode 100644 (file)
index 0000000..98c1445
--- /dev/null
@@ -0,0 +1,43 @@
+\ *****************************************************************************
+\ * Copyright (c) 2011 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
+\ ****************************************************************************/
+
+\ PAPR hvterm console.  Enabled very early.
+
+0 CONSTANT default-hvtermno
+\ Buffer for pre-display
+4096 CONSTANT disp-size
+CREATE prevga-disp-buf 4096 allot
+0 value disp-ptr
+true value store-prevga?
+
+: store-to-disp-buffer         ( ch  --  )
+    prevga-disp-buf disp-ptr disp-size MOD + c!
+    disp-ptr 1 + to disp-ptr
+;
+
+: hvterm-emit
+    store-prevga? IF
+       dup store-to-disp-buffer
+    THEN
+    default-hvtermno SWAP hv-putchar
+;
+: hvterm-key?  default-hvtermno hv-haschar ;
+: hvterm-key   BEGIN hvterm-key? UNTIL default-hvtermno hv-getchar ;
+
+' hvterm-emit to emit
+' hvterm-key  to key
+' hvterm-key? to key?
+
+\ Override serial methods to make term-io.fs happy
+: serial-emit hvterm-emit ;
+: serial-key? hvterm-key? ;
+: serial-key  hvterm-key  ;