Speedscreen
Speedscreen was a revolutionary software product, written by Simon Goodwin and published by him under the name of Creative Codeworks.
Speedscreen optimised QL display handling by replacing slow, general-purpose code in the QL ROM with new, fast routines.
Programs did not need to be altered to make use of the new routines which automatically took over from the QL ROM's native routines for text, graphics and scrolling.
Speedscreen was first produced on disc and microdrive cartridge for the Sinclair QL, then as a ROM for the CST Thor range of computers, and later as a plug-in ROM cartridge for the QL (saving RAM and boosting speed).
Speedscreen worked by using optimised routines for scrolling, printing in CSIZEs 0,0 and 1,0, window clearing and cursor operations. Speedscreen also optimises all OVER and UNDER settings, solid colours and 64 stipples.
The improvement in speed compared with a standard QL depends on the operation: text output is typically between four and twelve times faster than normal.
By default, Speedscreen scrolling was about twice the normal speed: for example when COPYing to SCR.
New commands (_SCROLL)were added to allow you to set higher speeds for free-scrolling displays such as LIST and COPY - you could actually scroll up to eight times faster than normal.
Speedscreen also allows larger founts (on a bigger matrix, for clearer characters) than the Sinclair ROM routines, and multi-coloured founts, and comes with some useful text-related utilities and toolkit commands.
A limited version of Speedscreen - very fast in CSIZE 1,0 but supporting only one size and fount - was put in the Quanta library and available from QL public domain software libraries.
A free full version of the Speedscreen ROM (as a software image for the hardware ROM cartridge emulation) is available to users of the QL2K emulator. It also comes with comprehensive documentation.
History of Speedscreen - taken from Simon Goodwin's webpage…
"SpeedScreen was a replacement display device driver for Sinclair QL and CST Thor computers. It made common display operations much faster and so benefited all users of those systems - even those normally happy to use just the bundled software supplied with the machine. It taught me that - after years writing compilers - it was easier to sell speed by enhancing what people already had, than by giving them new ways to make fresh and speedier applications themselves."
"SpeedScreen was initially sold on microdrives and 5.25" and 3.5" floppy discs, priced at £20 with a 16 page manual. Later it was released in ROM chip form, making the code even quicker (as the ROM was faster than the DMA-contended RAM in most systems) and leaving more room for applications - and giving me the chance to sell the same thing a second time to willing customers, at the same price or £30 for a bundle of both the ROM and disc or tape versions (which included additional utilities)."
"SpeedScreen optimised display handling by replacing slow, general-purpose code in the system ROMs with fast replacement routines. You didn't need to alter your programs to use it - just load SpeedScreen before loading€and using your application. The only difference (apart from a small memory overhead - configurable between 4.5 and 17K) was the extra speed."
"SpeedScreen optimised scrolling, printing in the most common character sizes, window clearing and cursor operations. The improvement in speed compared with a standard QL depended on the operation: text output was typically between four and twelve times faster than normal. SpeedScreen optimised all OVER and UNDER settings, solid colours and 64 stipples."
"By default, SpeedScreen scrolling was at about twice the normal speed, but a new command let you set higher speeds - up to eight times normal - for free-scrolling displays such as LIST and COPY, letting users adjust the rate to control flicker and match their reading speed. Further new commands allowed extra character-sizes, coloured fonts and other features that came almost for free out of the code I'd rewritten."
"The QL's original display handling code had been written in a great rush and squashed into a very small amount of memory. So routines were chosen for their generality, rather than their speed. Thus one routine prints characters in all CSIZEs and for all values of INK, PAPER, OVER and UNDER. A single tangled block of code was used to scroll and pan, to print blocks and borders, to draw and erase cursors and to clear all or part of any window, regardless of its position. SpeedScreen avoided those slow routines and uses its own fast code instead."
"SpeedScreen emulated Sinclair's OS accurately, despite its speed. Displays looked just the same, but appeared much more quickly, though pausing and interruption was supported as before. The code was device-independent and re-entrant, so one copy of SpeedScreen boosted any€number of windows and concurrently-running tasks. Apart from a slight tweak to the MODE command (which changes display resolution) all system commands worked as before. Features that were not optimised were handled exactly as usual, at normal speed, and could be mixed with optimised text or graphics without restriction. So I only needed to rewrite the bits of the API I could speed up usefully, and could revert to existing code for all the rest."
"SpeedScreen sold thousands of copies by direct mail order and through dealers in the six months I advertised it. All the duplication and order fulfillment was handled by student friends of mine, paid generously for a quick turn-around. Raw material costs were tiny. Soon after, my former publisher brought out a clone product, heralded by full-page advertisements, (using a brand name I'd thought up for another product he'd since canned!) Lightning and I moved on. Exploiting good ideas depends upon timing, at the start and the end, and you have to move fast! As long as you do that you need not fear copyists, because you'll keep having new ideas and they'll always be several steps behind."
Title: Speedscreen
Language: 68000 Machine Code
Author: Simon Goodwin
Publisher: Creative Codeworks
Year of Publication: 1987
Platforms Suitable for: All Sinclair QLs and emulators
Commercial Status: Commercial
Price in October 1987: £20
Reviewed: Unknown
Sources Available from: n/a
Latest Version available from: n/a