⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iocontrol.fs

📁 open source bios with linux platform, very good and can be reused.
💻 FS
字号:
\ tag: stdin/stdout handling\ \ Copyright (C) 2003 Samuel Rydh\ \ See the file "COPYING" for further information about\ the copyright and warranty status of this work.\ \ 7.4.5    I/O controlvariable stdoutvariable stdin: input    ( dev-str dev-len -- )  2dup find-dev 0= if    ." Input device " type ."  not found." cr exit  then  " read" rot find-method 0= if    type ."  has no read method." cr exit  then  drop    \ open stdin device  2dup open-dev ?dup 0= if    ." Opening " type ."  failed." cr exit  then  -rot 2drop  \ call install-abort if present  dup " install-abort" rot ['] $call-method catch if 3drop then  \ close old stdin  stdin @ ?dup if    dup " remove-abort" rot ['] $call-method catch if 3drop then    close-dev  then  stdin !;: output    ( dev-str dev-len -- )  2dup find-dev 0= if    ." Output device " type ."  not found." cr exit  then  " write" rot find-method 0= if    type ."  has no write method." cr exit  then  drop    \ open stdin device  2dup open-dev ?dup 0= if    ." Opening " type ."  failed." cr exit  then  -rot 2drop  \ close old stdout  stdout @ ?dup if close-dev then  stdout !;: io    ( dev-str dev-len -- )  2dup input output;\ key?, key and emit implementationvariable io-charvariable io-out-char: io-key? ( -- available? )  io-char @ -1 <> if true exit then  io-char 1 " read" stdin @ $call-method  1 =;: io-key ( -- key )  \ poll for key  begin io-key? until  io-char c@ -1 to io-char;: io-emit ( char -- )  io-out-char c!  io-out-char 1 " write" stdout @ $call-method drop;variable CONSOLE-IN-listvariable CONSOLE-OUT-list: CONSOLE-IN-initializer ( xt -- )  CONSOLE-IN-list list-add , ;: CONSOLE-OUT-initializer ( xt -- )  CONSOLE-OUT-list list-add , ;: install-console    ( -- )    \ create screen alias  " /aliases" find-package if    >r    " screen" find-package if drop else      \ bad (or missing) screen alias      0 " display" iterate-device-type ?dup if        ( display-ph R: alias-ph )        get-package-path encode-string " screen" r@ (property)      then    then    r> drop  then  output-device output  input-device input  \ let arch determine a useful output device  CONSOLE-OUT-list begin list-get while    stdout @ if drop else @ execute then  repeat  \ let arch determine a useful input device  CONSOLE-IN-list begin list-get while    stdin @ if drop else @ execute then  repeat  \ activate console  stdout @ if    ['] io-emit to emit  then  stdin @ if    -1 to io-char    ['] io-key? to key?    ['] io-key to key    then;:noname  " screen" output; CONSOLE-OUT-initializer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -