CCON: - a console handler with output scrollback for AmigaOS.
=================================================================
WHAT IT IS
A mounted console handler - what CON:, KingCON and ViNCEd are -
built around the one feature the stock 3.2 console cannot be
given from outside: output scrollback. 512 lines of history
behind every window by default (up to 5000), and a line editor
that brings the modern shell feel to the Amiga prompt.
FEATURES
- Output scrollback: Shift/Ctrl+arrows and the mouse wheel,
working in raw mode too for a client that isn't fullscreen
(More/Ed refuse it on their own alternate screen, xterm
manners); Ctrl+R searches it once you're scrolled back (same
key as history search, retargeted) - matches shown inverted
AND land on your prompt live, same as history search already
does; Return/Tab/typing hand the live prompt straight back
with the found line ready to edit or run, n/N re-walk the
same matches if you scroll back again later
- Fast: output renders model-first (at most one scroll blit per
write, none for a screenful), writes are answered ahead of the
pixels (a frame at most, the stock console's own bargain), and
rendering is plane-masked - plain text moves one bitplane in
four, the 3.2 console.device's own trick. Under render
barriers, the honest measure, the fastest of the three
consoles tested at both accelerated and stock-A1200 timing
(conbench, also in this collection)
- A window per open, stock CON: fashion; the full stock option
set (AUTO, WAIT, SCREEN, WINDOW0xADDR, NOBORDER, ...) per window
- Hosts real AmigaShells: NewShell CCON:
- Iconify to the Workbench: RightAmiga+I sends a window to a
desktop icon and a click brings it back exactly as you left
it - scrollback, a half-typed line and all; its own icon is
built into the handler. Works over a fullscreen client (Ed) too
- fish-style autosuggestions: history's continuation as grey
ghost text; Right accepts, Ctrl+Right/Tab take it word by word
- zsh-style Tab completion with a cycling candidate menu
- bash-style Ctrl+R incremental history search - the prompt
becomes an inverse (search: ...) banner and is restored
pixel-perfect from the scrollback model afterwards
- readline line surgery: Ctrl+W/U/K, and Ctrl+L clearing into
HISTORY (Shift+Up undoes the clear)
- Copy & paste with the stock console family, both directions
(IFF FTXT); drag, double-click word, triple-click line;
output freezes under a drag like stock; RAMIGA-V pastes
safely - one ordinary-looking line at a time, a grey hint
shows how many more are queued, Enter runs one and loads the
next, Esc cancels the rest (RAMIGA+SHIFT+V or PASTEEXEC for
the old instant-run way)
- SGR colour with the ANSI/Workbench pen separation: ls is
genuinely blue everywhere, Ed is never red - plus real
italic/underline/inverse soft styles
- FONT and LINES per window: pick your own font/size (loaded
from disk if needed) or scrollback depth; unset FONT follows
your Font Prefs default font instead of a hardcoded topaz 8
- Fullscreen programs work: Ed with working MENUS, block
cursor, resize re-measure, and proper whole-view scrolling
(ANSI Scroll Up/Down honoured, not just the one changed line);
More with real timed paging, and it restores your scrollback
transcript on exit exactly as xterm's alternate screen does -
paged content never enters your history
- xterm-style window titles (OSC) that survive scrollback
- CRAW: - the same handler as a raw-from-byte-one device
- Swedish (and other) dead-key composition survives raw mode
- can replace CON:/RAW: system-wide, KingCON style (Assign
DISMOUNT + Mount FROM the same mountlist) - experimental,
see ccon.doc section 15
LIMITATIONS
- ~120K of model per window at 80 columns and the default 512
lines (LINES=n scales it, up to 5000)
- Borrowed windows (WINDOW0xADDR) keep their owner's font
- CSI K erases to black under colour
- Completion: no quoted words, one menu page of 80
- Pasting into a fullscreen program (Ed) stops at ~2000 bytes
and beeps; cooked-mode paste has no limit
- 255 columns maximum; a window is at most that wide
- SMART/SIMPLE and ALT not implemented
- Tab completion and the history file have no filesystem
timeout; a wedged or spinning-up disk blocks the window
HISTORY
1.2.3
- Plane-masked rendering: text draws and scrolls only the
bitplanes its colours occupy (the 3.2 console.device trick),
widening instantly for colour, narrowing at page and window
boundaries. With render barriers on, the fastest console of
the three measured at both accelerated and stock timing -
and the one whose fast numbers ARE its honest numbers
1.2.2
- The speed release: rendering is model-first (at most one
scroll blit per write, none for a screenful), erasing the
prompt cursor costs one cell instead of a row repaint, and
writes are answered as soon as their bytes are copied so
bursts of output pool into batched blits. The benchmark
suite that took 1.2.1 288 seconds takes 2.4; with render
barriers on, 4x faster than stock CON:, 6x than ViNCEd
- conbench, written to measure all this, is its own tool in
the collection now
1.2.1
- An iconified window comes back at the size and place it
had, not the one it first opened with - and no longer
scrambles its own scrollback doing it
- A tall window with a small LINES no longer writes past its
scrollback buffer; the depth is raised to fit the window
- Faster output rendering
- Bug fixes: clipboard parsing bounded against malformed
data, a failed window restore can't strand a console,
pasting into Ed says so when it hits its size limit,
output during a scrollback search no longer snaps the view
back, diskfont.library released on unmount
1.2
- Iconify: RightAmiga+I sends a window to a Workbench icon,
a click restores it exactly as left; icon built in
- Full-screen paging like CON:: form feed clears and homes,
so More and any repainting program replace the page
instead of scrolling it
- Ed fixed: cursor keys navigate (raw keys back to 8-bit
$9B), and resizing the window re-measures and repaints
- Bug fixes: a narrowed window now re-wraps the transcript
instead of losing it, paste can't overflow the clipboard
buffer, clean handler unmount, history stores each command
once, plus assorted hardening
1.1
- Per-window FONT and real italic/underline/inverse styles
- Alternate screen for Ed/More (paged content stays out of
scrollback)
- Shared, persistent, prefix-filtered command history
- Safe multi-line paste; scrollback content search (Ctrl+R)
- Can replace the system CON:/RAW: KingCON style
1.0
- First release: output scrollback, fullscreen client
support, a readline line editor, fish-style suggestions,
zsh-style Tab completion, copy & paste, the input.device
chain, and stock CON: open/close semantics
CCON: is part of the LTX AmigaTools collection.
|