Support all readers with open standards (1K) Site index page

Simon N Goodwin's commercial softography, updated September 2010


This is an incomplete list of commercial products I've played a substantial part in programming since the late 1970s. Recent work is summarised on the Codies page.

The many games I wrote for publication in magazines in the early 1980s are not listed here, as the software was not retailed separately. I've made another page with details of some of those games - such as Whitehall and Space Intruders (Practical Computing), Gladiators and Holocaust (Computing Today),Shop Steward (Personal Software and CT), Sniper (Personal Computing Today) Runaway Robot (Games Computing) and the Spectramon utility, including some background on how they came to be written and the early days of home computing and the UK games industry. One day I might start to collate information about some of the hundreds of features, reviews, hardware articles and software utilities I've contributed to dozens of hobbyist magazines over two decades. But don't hold your breath...




Quick index
Eight-bit beginnings
Sinclair QL developments
HiSoft compilers
Silicon Studio Ltd.
Amiga Inc.
Attention to Detail
Codemasters Central Tech
Dance Factory
Brian Lara Cricket
Colin McRae DiRT
RaceDriver GRID
Colin McRae DiRT2
Formula One 2010



WALLBANGER, Apple ][, The Softwarehouse 1980

Everyone has to start somewhere. In 1979 I wrote a handful of simple games in Apple Integer BASIC on one of the first Apple ][ computers to reach the UK. It arrived at my school with a generous 24K of memory and the original red manual, with handwritten pages, shortly after the maths teacher who had been lobbying for its purchase gave up and went to work for King's School in Worcester, which already had a computer of sorts - an elderly mainframe retired from the manufacturer Metal Box.
The original Apple ][ (6K)
This left Wycliffe College with a micro that no one on the staff showed much interest in, busy as they were making unwilling pupils clean rifles without pointing them at one another and run round and round the playing fields in the drizzle for showing insufficient enthusiasm for the school's main focus, Rugby Football. Somehow I ended up with the book used to log use of the foundling computer, priority access to the machine, and enough enthusiasm - having previously attempted to cajole a shop's PET 2001 to work out square roots the hard way, by Newton Raphson, not knowing about the SQR function - to teach myself BASIC, 6502 assembler, and the mysteries of GR and HGR graphics and one-bit sound.

Several of these games were published in early hobby magazines like Computing Today and Practical Computing, and one of them found its way onto the shelves of Oxford Street pioneer software retailers called - appropriately generically - The Softwarehouse, in the days when you could register a company with such a name and not be told that the term was too general.

The Softwarehouse logo (6K) Following up a magazine ad seeking new programs and programmers, I gave The Softwarehouse a 5.25" minifloppy disk with a handful of titles, including a balloon flight simulator and a Breakout derivative with the innovations of ball steering and quick return. Returning to London a few months later in search of magazine payments, after spending my last nine quid on a return to Euston, I bounded up the stairs to The Softwarehouse's shop and en suite offices, to see how the world was reacting to my work, only to be told that my games had been shown to a few potential distributors overseas but they'd not taken the bait.

This was the first of many encounters with publishers reluctant to pay up, and on the way in I'd been thrilled to see my game bagged up for sale with others on display in the shop, so I scooted out of the office, grabbed one and returned to demand my pound of flesh (I was not a vegetarian on those days). The game was up, a royalty cheque was forthcoming, and I was on my way to software stardom (sort of) forewarned of the ways of the industry. The cheques have got bigger but the ways haven't changed much since.

I still have a copy of the disk, in the eccentric software RLL Apple DOS 3.2 format, but no way to read it, so I can't include a screen-grab or check if the game was eventually published under the name WALLBALL or the alternative title DROPOUT. Digging through my old mags I found an advert in the April 1981 issue of Personal Computer World which lists the game at £10 on Apple disc) as 'Wallbanger'. In any case it was written in Steve Wozniak's 6K integer BASIC (itself written with the one-line mini-assembler in the same ROM). That Apple ][ had some interesting quirks, including a tendency to spontaneously convert letter Y's in programs in to letter I's (a consequence of the use of the early 4K 4007 DRAM chips which led to the inclusion of redundant parity bits in IBM PCs for decades thereafter) so I got into the habit of using X and I co-ordinates, rather than the X and Y I originally entered. Besides the 130K floppy drive the Apple was connected to a noisy 10 character per second ASR-33 teletype and tape punch, so I have several of those early programs on paper tape as well as disk. Not that they're any more machine readable in that format, but at least - with a bit of practie - you can read paper tape by eye - a skill which still eludes me, 25 years on, when it comes to magnetic disks. ;-)



GOLD MINE, 16K Spectrum, dk'tronics 1983

Gold Mine tape cover A few years later I'd moved from the 6502 processor to the Z80, via my own first computer, a 1.77 MHz Video Genie (TRS-80 clone) and then to the ZX Spectrum which turned up after a long wait late in 1982 and prompted me to sell the BBC Model B I'd obtained, for a lot more money and similarly late, six weeks before. The Spectrum had fewer pixels, half the ROM and less bus bandwidth, but it was a vastly better machine and after a three-day stint learning the keyboard layout I started work on what was to become my first chart success, a 48K Spectrum game, written in a mixture of ZX BASIC and Z80 code assembled from REMs in the source. This was Gold Mine, published at the height of the first micro boom the following year.

More about Gold Mine, my game for dk'tronics




Magic Micro Mission, Atari and Commodore 64, Quicksilva 1984

Central ITV logo, Atari style (5K) I worked on a TV series about home computing, between July and December 1983. The six programme series, entitled the 'Magic Micro Mission', was made by Central ITV in Birmingham. It was broadcast at 5.15 on Wednesday evenings in November and December, in six ITV regions: Central in the Midlands, Ulster, TVS, Border Television, Tyne Tees and Television South West. We recorded the programmes on Sunday afternoons, in the studio where 'Bullseye' was filmed during the week.

The 'runaway robot' maze sequence (13K) The left column shows some rather grainy grabs from the original Atari 800 title sequence (via Crash magazine) and the inlay alongside is from the spin-off game, brutally ported to the Commodore 64 and published by Quicksilva. The artwork is by David Rowe, who also produced the cover for FirST BASIC (see later).

My role of 'software designer' - a new title for TV - meant that I designed and programmed the graphic titles, jingles and credits used in the series. I worked with Central staff Graphic Designer Dave Beeson and Gus Chandler, a programmer on the production team. Geoff Negus from Central News was Editor, and Terry Johnston was Executive Producer.

The approach to the magic micro (11K) The series was thrown together in great haste to beat off a challenge from other independent TV companies - from green light to recording the series was prepared in about six weeks. The standard improved steadily and programme six was 'Pick of the Day' in the Birmingham Post. It was hosted by the talented Adrian Hedley (fresh from Jigsaw, another kid's TV series) and the pneumatic Jo Wheeler, with a disembodied computer called 'Prune' for reasons not worth elucidating, played by good-natured thesp (and comedy German in BBC TV's Allo Allo series) Hilary Minister and 'Egghead' an escaped and bizarrely disguised Warwick University academic. It featured full-screen game graphics - a revolution for broadcast TV, in those days - and guests like funny man Willy Rushton, musician Rick Wakeman, DJ and self publicist Dave Lee Travis, cricketer David Gower (gamely reviewing early cricket software with a one-pixel ball), comedy air traffic controller David Gunston, (testing early flight-sims) plus a studio audience of schoolkids - typically sweating under the studio lights in home-made robot costumes - and the Astronomer Royal.

It seems unexceptional today, when computer games are part of mainstream culture, but the series was a breakthrough in 1983, as issue 4 of Crash magazine reported in May 1984: "...to date television as such has been remarkably uninterested in computer games. Central Television's Magic Micro Mission was the first programme which actually examined the phenomenon." Unfortunately it was not shown in London, which is why media historians often claim UK game TV didn't start till years later.

I was closely involved in the production of the series, writing half of the initial 3000 word proposal after my friend Graeme Kidd (who had been business manager of the student newspaper I edited the year before) lent my issue 1 ZX Spectrum to one of the bosses and got the TV company interested in the idea of making programs featuring the new home computers. I contributed background knowledge of the micro industry and script material, and appeared in the final programme, discussing the graphics software used on the series, nervously waving my hands around and illustrating the sound-effects orally. Sorry, I don't have a tape of this! ;-)

The specification for the title sequence was that I should produce 'the best graphics possible on a cheap home computer'. I chose to use an Atari 800 system (retailing at under 200 pounds) although I had had no previous experience of the machine. The end credits were programmed using a 16K ZX Spectrum, as that meant I could type the names of the team directly into the BASIC as they changed from week to week.
Magic Micro Mission C64 tape cover (35K)
The big text and scrolling was handled with code snarfed from Sinclair's Horizons demo tape, accompanied by animations that played on the names and roles of key members of the team. The whole lot was genlocked over live footage with equipment costing 320 times more than the micro producing the graphics; Spectrums and broadcast TV standards took quite a bit of reconciliation!

The software which generated the TV title sequence - almost entirely in real-time - featured some sophisticated techniques. An interrupt-driven routine was called thousands of times a second, during the flyback period of every displayed line (allowing a maximum execution time of about 25 microseconds on a processor running at less than 2MHz). This provided a high resolution display of over 100 colours on the screen at once, even though the computer could only allocate two bits to the colour of each pixel, presaging the later Amiga 'hold and modify' mode.

Dave drew the graphics on acetate, then stuck that to the TV screen, traced and coloured them in using commercial Atari 'Paintbox' software, saved out the resultant four-colour version and tweaked the colour line by line using custom software to select the palette registers and new colours progressively down the screen, to make a data file which could be loaded at the same time as the basic 160x192 pixel image and copied to the hardware on the fly by my horizontal display list interrupt server.

Another interrupt-driven assembly language routine controlled the rudimentary 'sprite' facilities of the computer, allowing symbols to move over the background without altering the bit-map. Up to eight sprites moved fifty times a second, during TV vertical blanking.

The remaining CPU time ran a control program to move the sprites, detect collisions, read and respond to the joystick, trigger four-channel sound effects, and advance the player character through a sequence of screens. Seven different sections were used to generate the title sequence, which was different for each episode. Two of those were developed into the game, while the others were used as rewards and to set the scene.

The initial section displayed a multicoloured version of the Central ITV logo on a background of stars - a four-part musical rendition of the 'Central tune' played while a spaceship flew onto the screen, around the 'ball' of the logo, and vanished (in perspective) into the distance. The next bit used palette line interrupts for a moving road effect, rather than extra colours, as UFO sprites flew around the player in a first-person 3D chase sequence (obviously influenced by the Planet of Zoom arcade game) heading for a micro screen on the horizon. After some transition graphics the spaceship zoomed through the screen and into the micro itself and a Pacman-style circuit board with eight sprites representing chips and resistors wandering around a maze.

The gameplay took second place to the graphics, which was a pity as the Commodore 64 tape sacrificed almost all the colour (and even some of the gameplay) of the Atari 800 version, which was finished but unpublished due to the small number of punters with a 48K disk-based system capable of running it. But as it's the only game I've ever had my name on the cover of, I'd love to hear from anyone with a spare copy as I was never sent one by Quicksilva, though I did get paid royalties (rather less than the £1200 I got from Central for the TV work) so presumably a few thousand copies were sold...


ZIP, 48K Spectrum, Sportscene/GK Computing 1983

Original ZIP illustration from Your Sinclair magazine (22K) In 1983 I was a Computing Science student at Aston University when I was approached by Roger Munford, former editor of Argus Press magazine ZX Computing, to which I'd contributed Spectramon, an uncommonly large Z80 memory monitor and machine code disassembler. He was moving to Sportscene, publishers of Personal Computer World (formerly Bunch Books, latterly Dennis Publishing, the empire of former Oz magazine defendant Felix Dennis :-)
Roger was looking for a series of articles which could illustrate structured programming in a new magazine, Your Spectrum, which he was about to launch. I opined that any such series should develop a real, useful and complex program - not just an exercise - and suggested that a compiler for a substantial subset of the ZX BASIC language would be a suitable topic.
The result was the ZIP compiler, an elaborate and uncommonly well-documented integer BASIC compiler which read ZX BASIC tokens directly from memory and stored the results beyond the reach of BASIC, after a small runtime library. ZIP and its demo game Star Base featured in four articles in issues 2 to 5 of Your Spectrum, and later thousands of copies were sold on cassette with manuals - initially printed on an ancient and smelly Gestetner duplicator with tapes recorded in parallel on a row of cheap cassette decks screwed to a plank, later professionally duplicated and printed.

Version 1.2 of ZIP was printed in the magazine, along with coupons inviting readers to send in three pounds 50 for version 1.4 on tape with the full manual. Graeme Kidd, later editor of Crash magazine (among others) and mayor of Ludlow, handled the distribution from his Harborne squat, encouraged by a cockup that scrambled the text in the second part of the magazine series and obstructed by a postal strike in London that winter.

Crash Tech Niche special title page (24K)
ZIP resurfaced a few years later in a version for 128K as well as 48K Spectrum computers, first on the Tech Tape published by Newsfield Ltd to accompany the Crash magazine Tech Niche 16 page special, and later in a mail-order offer managed by CGH Services.

Version 2 of ZIP, distributed on the Tech Tape and in the CHH offer, was itself compiled, making the compilation process a lot faster, and was extended with multichannel sound and screen-reading code. Its final commercial outine was a decade after its launch, when it was 'exclusively' covermounted with the Christmas 1993 issue of Your Sinclair magazine.

I`m grateful to Jon Smith and Alan Cox for help in the development of various versions of ZIP.

ZIP bundle tape cover (66K)
There were versions of ZIP for other computers. A port to the Timex 2068, the US version of the Spectrum with a new ROM and improved sound and graphics, was licenced to Knighted Computers in New York and sold retail and by mail order to North American Sinclair enthusiasts. This was a challenging port as I did it without ever seeing a TS-2068, and with only a list of ROM entry points as my guide. After a few tries I produced a saleable version 1.5 and royalties, generous even after the 50:50 split with my Texan agent Carl Zielgler, rolled in for years after.

A version for the Memotech MTX, another Sinclair-spin-off micro, was not finished before the manufacturers ran out of cash and recalled the development hardware I did produce a working version for the MGT SAM, with a few extensions, in the early 1990s but this never lived up the promise of the hardware and was shelved till a decade later, when it resurfaced and was published by the SAM/Spectrum Profi club of Cologne, Germany.

Unlike many of my other home computer programs, ZIP is still not freeware; I have a dwindling pile of printed manuals and still sell them periodically. Mail me if you'd like one!




Supercharge, Digital Precision, Sinclair QL, 1985

The QL Supercharge box (17K)
Soon after I finished the first version of Zip I returned to Aston University and needed to come up with a proposal for a final-year project. Having learned by that time that the only thing you can be sure of delivering on time is something you've finished already, but wanting to do something new and cool if I got the chance, and delve into the Motorola 68008 processor in Sinclair's new QL home computer, I proposed 'a compiler for Sinclair BASIC' as my project.

With luck this could be a compiler for Sinclair SuperBASIC - the vastly improved, Comal-based interpreter programmed by Jan Jones and built into the QL's ROM, alongside Tony Tebby's Unix-influenced Qdos operating system - but if I got stuck, or busy with something or someone else (maybe even a girlfriend?) I reckoned I could fall back on ZIP and still earn the degree.

Staff at Quicksilva obtained early Qdos documentation from Sinclair on my behalf, and I got a QL from the second batch at the end of May 1984, then another one which worked (the first lasted only 45 minutes) in June. I made steady progress, first writing code on my 128K microdrive-based system to read the tokenised program source from QL memory - then routines to parse the result and generate corresponding code in the form of calls to intermediate code and stack operations expressed in Reserve Polish Notation. This text output was written to microdrive tape and later - once I got onto Metacomco's Macro Assembler beta-test programme - converted into 68000 machine code by expanding the text, via assembler macros.

This was enough to prove the symbols table and expression evaluation code, and get benchmarks compiled and running as standalone multi-tasking processes, but the generated code was far too verbose to give me any chance of making the compiled compiler fit on the machine. Like Zip, this was a four-pass compiler, working from tokenised source in the interpreter's memory. The first pass collected information about the whole source, to enable robust error checks later on. The second pass converted the source into an intermediate code and reported all errors. Only if that worked - and most programs submitted for compilation fail at this point - were two more passes used to translate the intermediate code and fix up cross-references to make a stand-alone code file. The use of compilation from memory made the extra pre-pass fast, and the separate code-generation phase simplified the design and allowed the machine code library to overlay the compiler, making best use of limited RAM and the microdrives - good for large block loads but slow for sequential filing.

The following spring a demo to my supervisor went well and that and the report earned me a first class honours for the project. By the time I graduated I was looking for a publisher, who could turn the compiler into a product as Quicksilva were no longer interested in the QL and in the throes of selling out to Argus Press.

Freddy Vachha was setting up Digital Precision as a specialist QL publisher at the time, and set me up with a 720K CST 5.25" floppy disk system, 256K extra RAM from Simplex Data, and an advance which I immediately spent on the HiFi system I'd always wanted but never been able to afford - Tannoy M20 speakers, a Mission Cyrus amplifier and one of the new-fangled CD players that were expensive luxuries in 1984 - one of the early 14 bit Marantz ones, and the only part of the setup I'm not using any more.

It took another year to develop the academic project into a commercial product - QL Supercharge, £60 boxed with a 100 page manual (written in Scripsit on my Video Genie, printed with a Juki 6100 daisywheel printer). The compiler ran overnight for weeks, parsing itself in slow interpreted BASIC, usually to fall over in the small hours with some unanticipated problem. The aim was to get it to compile itself, and after weeks of trying it got all the way to the end and emitted a complete intermediate file. A few weeks later that assembled into an executable program. It took weeks more to get that to compile itself, and further weeks to get the compiled compiler to match the compiled compiled compiler! Compiler bootstrapping is not as simple, or as easy, as academics often make it seem.

To meet the challenge to get from intermediate to executable code, Freddy enlisted Ferranti CPU designer and Open University lecturer Gerry Jackson, author of SuperForth, DP's first QL compiler, to write a custom code-generator to take the place of the Metacomco assembler. In the process the design was refined to optimise the speed and size of the generated code.

Memory was tight - it had to run on a 128K computer with only microdrives, and fit the compiler, its source and intermediate code in RAM (buffered in screen memory for want of anywhere else) so the third and fourth passes only loaded, over the top of the parser, if the code was guaranteed correct. It compiled to an intermediate language which the code-generator could optimise and convert to either 16 bit threaded code (like Forth) or pure 68K code selectable on a per-line basis, and then generated a dynamically-built library to run the threading so the overhead of despatching between templates (16 bit code pointers) was only two instructions:

  move.w (a5)+,d0
  jmp    0(a6,d0.w)


Most of the machine-code from the macros could be encoded into a single 16 bit word, followed by any parameters (fetched with move (a5)+ from the threaded code stream) yet raw machine code could be inserted into the instruction stream at any point the maximum speed was essential, prefixed with jmp (a5) to switch out of threaded code, followed by reloading a5 and restarting the threaded code above when space was more important than speed.

Once Supercharge had compiled itself the overnight runs were reduced to about 20 minutes at first, then trimmed to nine minutes for the compiler to re-compile itself after optimisation of the code. The code itself shrank from about 80K of tokens to just 46.5K of compiled code, including the template library, threads and initialised data - leaving room for 30K of source and 9K of compile-time data on the unexpanded QL - the other 40K being taken up by the screen (32K, mostly used to buffer intermediate code during passes three and four) and the Qdos multi-tasking operating system structures and device linkage.

Supercharge review in Sinclair User, March 1986 Supercharge was unveiled in an article in the October 1985 issue of QL User magazine and went on to earn a 'Sinclair User Classic' award and sold thousands of copies over the following couple of years. Some of these sales were gained - and doubtless some lost - by the revolutionary system of copy-protection built into the product - the infamous Lenslok.

LensLok

Lenslok, from ASAP Developments, consisted of a plastic holder for a transparent slatted lens which scrambled the image on screen over which it was placed, making nonsense of a normal bit-mapped display but shuffling a correctly pre-scrambled pattern into readable text. The user was required to read two characters through the lens and type them in at the start of each compiler run, to prove that they had a genuine copy of the compiler - or at least a copy of the lens, which was much harder to copy than the unprotected 100K microdrive tape on which Supercharge was shipped.

Lenslok became infamous that year when the programmers who bolted it onto the Spectrum version of 80s classic game Elite misread the instructions and generated a pattern which could not be read reliably, with or without the lens. The QL's floating point scaled graphics and high resolution meant that the Supercharge patterns were readable and readily compatible with various sizes of TV and monitor, though after a few days many users learned to shuffle the rows by eye and live without the lens.

Lenslok was very successful in dissuading commercial pirates from selling Supercharge, until some ingenious thieves in Belgium found a way to make the compiler defeat its own copy protection. The rip-off copies of Supercharge sold by Persoft in early 1986 came with a small program - itself compiled with Supercharge and hence able to multi-task alongside the compiler itself - which read the screen memory where the Lenslok pattern was displayed, re-ordered the data and displayed it alongside 'in clear'.

This was defeated by randomising the position and initial scale of the pattern in later versions of Supercharge. Eventually a version without the Lenslok code was produced, for a bundled deal with US QL distributors A+ Computer Response, but by that time Turbo, the inevitable follow-up product, was on its way....



TURBO, Sinclair QL/CST Thor XVI, 1986



The follow-up to Supercharge. An associated product, Turbo Toolkit, was sold separately and on ROM to users of CST Thor computers. Both are now open-source with updates and copious documentation on-line.

Turbo open source home page
Article in QL Hacker's Journal

More to follow - lots to say!


SpeedScreen, Sinclair QL/CST Thor XVI, Creative CodeWorks 1987



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. ;-)
QL World SpeedScreen advert (18K)
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!) 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.

HiSoft BASIC, Atari ST, HiSoft 1988



When HiSoft were in need of a 68K compiler, with the rise of 16 bit home computer systems in the late 1980s, they licenced Supercharge from me, as the QL's 68008 processor was binary compatible with the 68000 in the Atari ST and Commodore Amiga.

My original SuperBASIC parser was ported to the Atari ST by Andy Pennell, author of MonQL and the 68K versions of Devpac (latterly a lead programmer in Microsoft's Visual C compiler team). This involved adding support for TOS and GEM libraries and code to tokenise the input source as - unlike the QL version - it was not possible to read ready-checked and tokenised source from the Atari's memory, as there was no BASIC interpreter bundled with the system. Support for Microsoft QBASIC and MBASIC eccentricities (largely inherited from DEC BASIC+) was also added, while the Qdos-specific features like named loops remained in place as they were needed in order for the compiler to compile itself.


HiSoft BASIC, Amiga, HiSoft 1988

Detail from the HiSoft BASIC Amiga pack (12K)


HiSoft BASIC for the ST was subsequently ported to Amiga systems, again using the parser derived from Supercharge with new tokenisation and codegen routines and additional support for the custom Amiga hardware and libraries.



Details to follow



FirST BASIC, Atari Mega-ST, HiSoft 1988

Atari's remix of HiSoft BASIC, bundled with Mega ST systems (27K)


Needing a replacement for the barely usable 'Personal BASIC' (said to have been cobbled together by a summer intern at Metacomco) bundled with early ST systems, Atari licenced a cut-down version of HiSoft BASIC for the ST, repackaged in a nice box with artwork by David Rowe (who produced much of the classic Quicksilva artwork earlier in the decade). This version lacked the facility to save stand-alone programs, and a few other features which were available in the full version. It was bundled with Atari Mega ST systems.





Power BASIC, Amiga, HiSoft 1989



This was an update of the SuperCharge and HiSoft BASIC projects converted to suit the Commodore AmigaOS. More details may follow.


DIY Toolkit, Sinclair QL/Thor XVI/Emulators, QLW/CGH 1988..1994



Details to follow

Silicon Studio Workstation, Amiga, Silicon Studio Ltd, 1993-2000



I was Technical Director of this company, makers of multitrack digital audio hardware and software. The hardware was built around 32 bit Zorro III audio cards, each featuring four 128 times oversampled balanced line analogue inputs and four-channel 20 bit outputs capable of 121 dB dynamic range - top specifications for the early 1990s. Of course it doesn't take long for top specs to change, and the Amiga hardware failed to keep up, ultimately leaving Silicon Studio high and dry. But it was fun while it lasted, and I learned a lot.
Silicon Studio Zorro III interface card (28K) Other specifications:
* Standard sampling Rates: 32000, 44100, 48000 and 51200 Hertz
* Typical Signal/Noise Ratio (A weighted) output: 113 dB
* Channel Separation @ 1 KHz : 101 dB minimum, 115 dB typical
* Dynamic Range : 121 dB maximum (20 bit digital data)


The Amiga contributed 32 bit Zorro III slots for one or two synchronised cards, fast async SCSI hard drive and audio/data DAT tape interfacing, 14..146 Mb internal RAM, display, MIDI, controller and other interfaces.

System software supported hard disk recording, multi-channel mixing and parametric equalisation. Less commonplace features, even now, were support for multiple pointers, flicker-free beam-synchronised displays and constant-power integrated 'meterfaders' to AES/EBU specifications.

Following the demise of Commodore and end of compatible Amiga hardware production, the brand was purchased by Silicon Graphics Inc and our custom Amiga audio development efforts ceased. The associated domain, studio.co.uk, remained mine until 2004, when it was sold to an eponymous Internet shopping company.


Amiga Desktop Environment, Linux/PC/Taos, Amiga Inc, 2000-2002

Cover of the 2000 Amiga SDK manual (22K)

Amiga Inc. system software development and documentation.

When Amiga got bought out by former Gateway staff I was initially hired to document the new Amiga Desktop Environment, a radical processor-agnostic distributed processing platform built on Amiga and Tao Elate technology, and edited the 300+ page printed manual for the new SDK on my A4000 computer and delivered it camera-ready in PDF format within a few weeks. Before long I was drafted into the tech team developing the replacement for Commodore's AmigaOS, designing and programming heap memory management tools, taglist and dataset routines for the Amiga Component Model - a sort of safe, multi-processor COM, implemented in VP virtual assembler.

Amiga DE MP3 player GUI (9K) Green skin for the MP3 player (7K) As we moved the new Amiga systems to fresh hardware my Silicon Studio contacts and experience came to the fore and I was appointed team leader of Amiga Audio development, and led the implementation of a network streaming MP3 player application which ran in the AmigaDE, initially hosted on Linux, Windows and Sharp Zaurus and Iris PDAs.

MP3 Player with playlist (19K) AmigaDE MP3 player GUI with tone controls (7K) This involved managing a team of six people spread around the world. The pictures alongside show the player's user interface, designed for small (QVGA) PDA screens - the graphical skins were designed by Kevin Saunders; I coded the back end with Thomas Wentzel; the GUI was programmed by Davy Wentzler and Rudi Chiarito.

Block diagram of links within the player and the team (4K) Much of the work involved separating the tasks and formalising the communication between the people and the software sub-systems, to make the development process and the resultant software scalable and reliable on diverse platforms, such as multi-processor and distributed computer networks. This remains a key area for me.


Drome Racers, GameCube, ATD/Lego/EA 2002

Indie magazine chart, November 2003 (35K) When I joined Attention to Detail in 2002 they were developing a racing game for toy brick company Lego, to follow up Lego Racers 2, a PC and PS2 title which they'd recently finished. Drome Racers was known as Lego Racers 3 during development, and themed to tie in with some techie Lego cars.

Gamecube Drome Racers cover (8K) I arrived too late to make a significant contribution to the PC or PS2 code, but got involved in the conversion to the Power PC based GameCube. Ports of the game for this machine and Xbox were scheduled to follow the PC and PS2 versions, and benefited from extra development time.

The sad thing about Drome Racers was that - due to publisher interference - it was a more playable game six months before completion than it was by the time Lego deemed it fit for release. The management of Lego games seldom lasted as long as it took to complete a console title, and drew from a pool of people with little experience of the games industry, which meant frustrating changes in direction that did not improve the eventual product.

Despite this, and the problems of the Kaboom group, the Xbox and Nintendo ports were finished on time, and the Gamecube version of Drome Racers briefly appeared in the UK top 10 for the platform.

A more ambitious project, Lego Racers 4, was canned after substantial development effort. This was technically interesting as the design called for streaming of the entire game world from DVD, allowing much larger and more intricate play area than earlier Lego games, or most console titles at the time. The team involved went on to work on Ion Runner, of which more later...



Fatman & Slim, PlayStation 2, ATD/Kaboom 2003

Fatman and Slim, Kaboom package (32K)


Fatman and Slim started out as a physics demo, built around MathEngine Karma dynamics library, and was initially funded by Sony. When they passed on their option Kaboom continued and finished development; the game passed Sony QA at the end of 2002. By this point the group was running out of money and made most of the staff at ATD redundant; they were unable to finance the publication of the game themselves, and sold the rights on to budget publishers Metro3D in 2003.

Having exhausted the metal-bashing potential of the GameCube I was moved to the FatMan team late in the development, and given the task of optimising the code to animate water surfaces, which was taking a large proportion of the frame time when running in 'optimised' C on the main processor. I reworked this to run concurrently on the PS2's vector units, using VU0 for updates (moving the water surface) and VU1 for rendering (stretching the reflection and adding specular highlights as it caught the light).

Despite the extra specular layer and a tripling of resolution, my optimised code ran several times faster and imposed very little load on the main processor, leaving that to concentrate on the physics.

Ion Runner, PS2/GameCube/Xbox/PC, ATD/Kaboom 2003

Development grab from the Temple area in Ion Runner (46K)

This grab from the unfinished game Ion Runner, in development at ATD when the Kaboom group collapsed, includes diagnostic messages showing how it was able to manage three pools of rippling, specular-glinting water in a single game level, plus a new heat haze effect streaming from the exhaust of the player's ion bike.

I wrote the code for these effects, building on routines written for Fatman the previous year. ATD`s game engine Saracen 2 made great strides during 2003, especially on PlayStation 2 thanks to optimisations by Andy Wright, till it was comfortably drawing over 100,000 polygons, many of those 'expensive' types to render, at a steady 60 Hertz (over seven million polys per second, at peak, without dropping frames).

I moved from the Vector Units to the PlayStation 2`s IO Processor and reworked the ATDIOP sound and data streaming system to improve performance and reliability.

Two complete levels of Ion Runner were programmed and demonstrated to many publishers, but there was not time to sign a deal before venture capitalists 3I pulled the plug on the company in August 2003.

Since then the demos have been seen by many in the industry who were surprised that the project was never finished - but the price, calculated to refloat the group as well as to cover the development costs, meant any deal on this new IP was hard to arrange.

This image includes graphics by Chris Oxenbury, who later found fame as the stand-up comedian Okse and a lucrative sideline producing comedy-related artwork, and now works for top children's TV company Ragdoll.



I have since worked for independent publisher Codemasters - follow this link if you're interested to know what I've been up to relatively recently.

   

© Simon N Goodwin, Warwick 2005..200, and reviewers


Link to the top of this document     Link to the article index