+TUI 0.on_black.
+TUI 1.on_black.
+TUI 2.on_black.
+TUI 3.on_black.
+TUI 4.on_black.
+TUI 5.on_black.
+TUI 6.on_black.
+TUI 7.on_black.
+TUI 8.on_black.
+TUI 9.on_black.
+TUI 10.on_black.
+TUI 11.on_black.
+TUI 12.on_black.
+TUI 13.on_black.
+TUI 14.on_black.
+TUI 15.on_black.
+TUI 16.on_black.
+TUI 17.on_black.
+TUI 18.on_black.
+TUI 19.on_black.
+TUI 20.on_black.
+TUI 21.on_black.
+TUI 22..:start)=====================================================================([0]
+
+TUI 23,0..>
+TUI 23,2.reverse.
+TUI 23,3..
+# nothing happening on empty command input
+>
+TUI 0.on_black.
+TUI 21.on_black.
+TUI 22..:start)=====================================================================([0]
+
+TUI 23,2.reverse.
+
+# non-empty command input starts log at bottom, with date above it
+> foo
+0 .!# invalid prompt command: not prefixed by /
+
+TUI 0.on_black.
+TUI 20,0.on_black.20
+TUI 20,4.on_black.-
+TUI 20,7.on_black.-
+TUI 20,10.on_black.
+TUI 21,0.on_black,bold,bright_red,bright_cyan..!#
+TUI 21,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: not prefixed by /
+TUI 22..:start)=====================================================================([0]
+TUI 23,0..>
+TUI 23,2.reverse.
+TUI 23,3..
+
+# further inputs grow log upwards
+> /foo
+0 .!# invalid prompt command: /foo unknown
+> /foo
+0 .!# invalid prompt command: /foo unknown
+
+TUI 17.on_black.
+TUI 18,0.on_black.20
+TUI 19,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: not prefixed by /
+TUI 20,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: /foo unknown
+TUI 21,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: /foo unknown
+
+# check wrapping
+> /foo_0123456789_0123456789_01234567
+0 .!# invalid prompt command: /foo_0123456789_0123456789_01234567 unknown
+TUI 21,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: /foo_0123456789_0123456789_01234567 unknown
+> /foo_0123456789_0123456789_012345678
+0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+TUI 20,13.on_black,bold,bright_red,bright_cyan.invalid prompt command: /foo_0123456789_0123456789_012345678
+TUI 21,0.on_black,bold,bright_red,bright_cyan. unknown
+# # check scrolling
+# > /window.prompt.scroll up
+# > /foo_0123456789_0123456789_012345678
+# 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # TUI 21.on_black.
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+# # > /foo_0123456789_0123456789_012345678
+# # TUI 0.on_black.
+> /quit
+0 ..<