CCON 1.2.3 — the masking 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.