Skip to content

CCON 1.2.3 — the masking release

Choose a tag to compare

@creep-ltx creep-ltx released this 23 Jul 16:29
· 182 commits to main since this release

The masking release, shipped the same day as 1.2.2. One measured gap to stock CON: remained after the speed release: the raw scroll blit — ~34ms per full-window ScrollRaster against stock's ~17 per rendered line under barriers. The answer was read out of the 3.2 ROM itself: console.device pokes a used-planes byte into the rastport's write mask before scrolling, so the blitter skips bitplanes the text never touched. CCON now does the same — with scrollback-aware widening/narrowing rules the ROM never needed — and the last row flipped.

What changed

Plane-masked rendering. CCON tracks which pens the transcript has drawn with and masks its drawing and scroll blits down to the bitplanes those pens can occupy — plain shell text on a 16-colour screen moves one plane in four. The mask follows stock's own tier scheme, widens the instant a new colour appears (colour output always renders at full depth, correctly), and narrows again at a form feed, a resize, leaving a fullscreen program, or an iconify restore. Editor overlays (the ghost, the completion menu, the search banner) always render at full depth and never affect the mask. Non-planar (RTG-style) screens are never masked.

The numbers

All with render barriers on (conbench SYNC) — the mode no write-behind buffering can hide from.

Same 77×29 window, dev configuration (68030):

console full suite
CCON 1.2.3 6.28 s
stock CON: 74.16 s
ViNCEd 111.68 s

sync-line — a render barrier after every line, the one row stock still won after 1.2.2 — went from 6.70s to 1.78s against stock's 3.40.

At authentic stock-A1200 timing (14MHz 68EC020, no fast RAM, FS-UAE at its most accurate — emulation, not proven real hardware):

console full suite
CCON 1.2.3 124.5 s
stock CON: 177.7 s
ViNCEd 282.5 s

Fastest overall in both worlds, 2.6–5.6× ahead of stock where output flows. And honestly: at authentic CPU speed the ROM's hand-tuned assembler still takes several escape-heavy rows (newline floods, insert/delete ops) — 5 wins of 15 per-row there, with the totals ours because the wins carry the heavy traffic. Those rows are the named target of a future release. Real-hardware conbench results are welcome and would outrank every number above.

The one-line history: CCON 1.2.1 ran the original benchmark suite in 288.68 seconds. 1.2.3 runs it in about 2.4.

Download: ltx-cc123.lha (attached) — extract on the Amiga side and copy L/ccon-handler and Devs/CCON-mountlist over SYS:, then Mount CCON: FROM DEVS:CCON-mountlist and NewShell CCON:. Full installation and handbook in CCon.doc inside the archive. Extraction test passed on AmigaOS 3.2 before this note was written.