diff options
Diffstat (limited to 'qemu/roms/SLOF/slof/fs/terminal.fs')
-rw-r--r-- | qemu/roms/SLOF/slof/fs/terminal.fs | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/qemu/roms/SLOF/slof/fs/terminal.fs b/qemu/roms/SLOF/slof/fs/terminal.fs deleted file mode 100644 index dc82e7bf4..000000000 --- a/qemu/roms/SLOF/slof/fs/terminal.fs +++ /dev/null @@ -1,213 +0,0 @@ -\ ***************************************************************************** -\ * 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 -\ ****************************************************************************/ - -\ \\\\\\\\\\\\\\ Global Data - -0 VALUE line# -0 VALUE column# -false VALUE inverse? -false VALUE inverse-screen? -18 VALUE #lines -50 VALUE #columns - -false VALUE cursor -false VALUE saved-cursor - - -\ \\\\\\\\\\\\\\ Structure/Implementation Dependent Methods - -defer draw-character \ 2B inited by display driver -defer reset-screen \ 2B inited by display driver -defer toggle-cursor \ 2B inited by display driver -defer erase-screen \ 2B inited by display driver -defer blink-screen \ 2B inited by display driver -defer invert-screen \ 2B inited by display driver -defer insert-characters \ 2B inited by display driver -defer delete-characters \ 2B inited by display driver -defer insert-lines \ 2B inited by display driver -defer delete-lines \ 2B inited by display driver -defer draw-logo \ 2B inited by display driver - -: nop-toggle-cursor ( nop ) ; -' nop-toggle-cursor to toggle-cursor - -\ \\\\\\\\\\\\\\ Implementation Independent Methods (Depend on Previous) -\ * -\ * -: (cursor-off) ( -- ) cursor dup to saved-cursor - IF toggle-cursor false to cursor THEN ; -: (cursor-on) ( -- ) cursor dup to saved-cursor - 0= IF toggle-cursor true to cursor THEN ; -: restore-cursor ( -- ) saved-cursor dup cursor - <> IF toggle-cursor to cursor ELSE drop THEN ; - -' (cursor-off) to cursor-off -' (cursor-on) to cursor-on - -\ \\\\\\\\\\\\\\ Exported Interface: -\ * -\ Generic device methods: -\ * - - -\ \\\\\\\\\\\\\\ Exported Interface: -\ * -\ * - -false VALUE esc-on -false VALUE csi-on -defer esc-process -0 VALUE esc-num-parm -0 VALUE esc-num-parm2 -0 VALUE saved-line# -0 VALUE saved-column# - -: get-esc-parm ( default -- value ) - esc-num-parm dup 0> IF nip ELSE drop THEN 0 to esc-num-parm ; -: get-esc-parm2 ( default -- value ) - esc-num-parm2 dup 0> IF nip ELSE drop THEN 0 to esc-num-parm2 ; -: set-esc-parm ( newdigit -- ) [char] 0 - esc-num-parm a * + to esc-num-parm ; - -: reverse-cursor ( oldpos -- newpos) dup IF 1 get-esc-parm - THEN ; -: advance-cursor ( bound oldpos -- newpos) tuck > IF 1 get-esc-parm + THEN ; -: erase-in-line #columns column# - dup 0> IF delete-characters ELSE drop THEN ; - -: terminal-line++ ( -- ) - line# 1+ dup #lines = IF 1- 0 to line# 1 delete-lines THEN - to line# -; - -0 VALUE dang -0 VALUE blipp -false VALUE stopcsi -0 VALUE term-background -7 VALUE term-foreground - -: set-term-color - dup d# 30 d# 39 between IF dup d# 30 - to term-foreground THEN - dup d# 40 d# 49 between IF dup d# 40 - to term-background THEN - 0 = IF - 0 to term-background - 7 to term-foreground - THEN - term-foreground term-background <= to inverse? -; - -: ansi-esc ( char -- ) - csi-on IF - dup [char] 0 [char] 9 between IF set-esc-parm - ELSE true to stopcsi CASE - [char] A OF line# reverse-cursor to line# ENDOF - [char] B OF #lines line# advance-cursor to line# ENDOF - [char] C OF #columns column# advance-cursor to column# ENDOF - [char] D OF column# reverse-cursor to column# ENDOF - [char] E OF ( FIXME: Cursor Next Line - No idea what does it mean ) - #lines line# advance-cursor to line# - ENDOF - [char] f OF - 1 get-esc-parm2 to line# column# get-esc-parm to column# - ENDOF - [char] H OF - 1 get-esc-parm2 to line# column# get-esc-parm to column# - ENDOF - ( second parameter delimiter for f and H commands ) - [char] ; OF false to stopcsi 0 get-esc-parm to esc-num-parm2 ENDOF - [char] ? OF false to stopcsi ENDOF ( FIXME: Ignore that for now ) - [char] l OF ENDOF ( FIXME: ?25l should hide cursor ) - [char] h OF ENDOF ( FIXME: ?25h should show cursor ) - [char] J OF - #lines line# - dup 0> IF - line# 1+ to line# delete-lines line# 1- to line# - ELSE drop THEN - erase-in-line - ENDOF - [char] K OF erase-in-line ENDOF - [char] L OF 1 get-esc-parm insert-lines ENDOF - [char] M OF 1 get-esc-parm delete-lines ENDOF - [char] @ OF 1 get-esc-parm insert-characters ENDOF - [char] P OF 1 get-esc-parm delete-characters ENDOF - [char] m OF 0 get-esc-parm set-term-color ENDOF - ( These are non-ANSI commands recommended by OpenBoot ) - [char] p OF inverse-screen? IF false to inverse-screen? - inverse? 0= to inverse? invert-screen - THEN - ENDOF - [char] q OF inverse-screen? 0= IF true to inverse-screen? - inverse? 0= to inverse? invert-screen - THEN - ENDOF -\ [char] s OF reset-screen ENDOF ( FIXME: this conflicts w. ANSI ) -\ [char] s OF line# to saved-line# column# to saved-column# ENDOF - [char] u OF saved-line# to line# saved-column# to column# ENDOF - dup dup to dang OF blink-screen ENDOF - ENDCASE stopcsi IF false to csi-on - false to esc-on 0 to esc-num-parm 0 to esc-num-parm2 THEN - THEN - ELSE CASE - ( DEV VT compatibility stuff used by accept.fs ) - [char] 7 OF line# to saved-line# column# to saved-column# ENDOF - [char] 8 OF saved-line# to line# saved-column# to column# ENDOF - [char] [ OF true to csi-on ENDOF - dup dup OF false to esc-on to blipp ENDOF - ENDCASE - csi-on 0= IF false to esc-on THEN 0 to esc-num-parm 0 to esc-num-parm2 - THEN -; - -' ansi-esc to esc-process -CREATE twtracebuf 4000 allot twtracebuf 4000 erase -twtracebuf VALUE twbp -0 VALUE twbc -0 VALUE twtrace-enabled? - -: twtrace - twbc 4000 = IF 0 to twbc twtracebuf to twbp THEN - dup twbp c! twbp 1+ to twbp twbc 1+ to twbc -; - -: terminal-write ( addr len -- actual-len ) - cursor-off - tuck bounds ?DO i c@ - twtrace-enabled? IF twtrace THEN - esc-on IF esc-process - ELSE CASE - 1B OF true to esc-on ENDOF - carret OF 0 to column# ENDOF - linefeed OF terminal-line++ ENDOF - bell OF blink-screen ENDOF - 9 ( TAB ) OF column# 7 + -8 and dup #columns < IF - to column# - ELSE drop THEN - ENDOF - B ( VT ) OF line# ?dup IF 1- to line# THEN ENDOF - C ( FF ) OF 0 to line# 0 to column# erase-screen ENDOF - bs OF column# 1- dup 0< IF - line# IF - line# 1- to line# - drop #columns 1- - ELSE drop column# - THEN - THEN - to column# ( bl draw-character ) - ENDOF - dup OF - i c@ draw-character - column# 1+ dup #columns >= IF - drop 0 terminal-line++ - THEN - to column# - ENDOF - ENDCASE - THEN - LOOP - restore-cursor -; |