Short: CCon v1.2.5 - Ultimate CON Replacement Author: tobias.karlsson@piratkopia.se (Tobias Karlsson) Uploader: tobias karlsson piratkopia se (Tobias Karlsson) Type: util/shell Version: 1.2.5 Replaces: util/shell/ltx-cc123.lha Architecture: m68k-amigaos 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: on a real A1200 with a PiStorm accelerator, five times faster overall than stock CON: with render barriers on (the honest measure), and faster on nearly every test. Output renders model-first (at most one scroll blit per write, none for a screenful or a blank scroll), writes are answered ahead of the pixels (a frame at most, the stock console's own bargain), rendering is plane-masked - plain text moves one bitplane in four, the 3.2 console.device's own trick - and the full-screen editing sequences batch like ordinary output, so Ed scrolls like butter (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; the ghost (and the menu's blue/grey) shows on any screen depth, 32+ colours and RTG included - 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 - with Shift+Backspace and Shift+Del as the Amiga spellings of kill-to-start and kill-to-end - 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); its close gadget quits it properly (reported the V47 way, Ed runs its own quit flow); quitting leaves no stray blank line, the prompt lands directly under your command; and resizing mid-session is safe - the page never leaks into scrollback, and the transcript survives to the exit, re-wrapped. 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 - ls-style ANSI colours fall back to the default pen on 32+ colour / RTG screens (the model stores 16 pens per cell; the ghost and menu colours are exempt and do show there) - Tab completion and the history file have no filesystem timeout; a wedged or spinning-up disk blocks the window HISTORY 1.2.5 - Ghost text and completion-menu colours now show on 32+ colour and RTG screens (they vanished above 16 colours) - Shift+Backspace / Shift+Del delete to line start / end - the Amiga spellings of Ctrl+U / Ctrl+K - Ed and the close gadget make peace: the click is reported to Ed the V47 way and Ed quits properly, instead of the session being cut off with a dead screen. Shells still end on the click; raw programs that never asked get nothing, as on stock - Quitting Ed no longer leaves an empty line before the next prompt (Ed's tidy newline is redundant once the transcript is restored - dropped, exactly once, only there) - Resizing during an Ed session no longer leaks the edited file into scrollback history, keeps the window border drawn, and the transcript now survives to the exit - re-wrapped to the new width - where it used to be lost - Hardening from a fourth source audit: a malformed negative-length write could crash the machine (regression, never seen in the wild); a blank-page scroll could be skipped wrongly at three line-editor corners; first-mount renders ran on uninitialized dirty-marks (cosmetic) 1.2.4 - The tuning release: on a real accelerated A1200 the whole benchmark suite runs five times faster than stock CON: and faster on nearly every test. Blank screens are never scrolled (moving no pixels needs no blit - stock's own trick, and the change that flipped the real-hardware result), the full-screen editing sequences batch instead of redrawing one at a time, and output is drawn the instant a program waits for a key. Command output is there before you see it draw; Ed scrolls like butter. All in Amiga E, no assembler, still one source file 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.