on c19bc7a help sign in
28 lines 1.2 kB history raw
1:- :~ navhome/'/docs/'
2 navuptwo/'true'
3 next/'true'
4 sort/'4'
5 title/'Dill'
6 ==
7;>
9# Dill
11Our terminal driver.
13Unix sends keyboard events to `%dill` from either the console or telnet,
14and `%dill` produces terminal output. The only app that should directly
15talk to `%dill` is the terminal app. Command-line apps are run by,
16receive input from, and produce output to, the `%shell` app, which is
17controlled by `%terminal`, which talks to `%dill`, which talks to unix.
18Clay also uses `%dill` directly to print out the filesystem change
19events, but this is questionable behavior.
21`%dill` has two main components. First, it controls the terminal on a
22very basic, event-by-event level. This includes keeping track of things
23like the dimensions of the terminal, the prompt type (plain text or
24password), which duct to produce effects on, and so forth. Second, it
25handles terminal events, keystroke by keystroke. Most characters are
26simply pushed onto the buffer and blitted to the screen, but some
27characters, including control-modified keys, arrow keys, etc. require
28special handling. Most of the readline functionality is in `%dill`.