INPUT magazine was a computer programming course published as a partwork by Marshall Cavendish in 1984-5. INPUT must surely be one of the most advanced and impressive partworks ever published on any subject. With 52 editions adding up to 1600 pages, it's huge! And the quality of writing is superb throughout.
|One of the first programs I ever wrote. Just a few lines of code produced a |
beautiful sunset pattern complete with perspective lines. My grandma was
amazed art could come from "those numbers"!
The hundreds of programs listed are well written, amazingly bug free with top notch line-by-line explanations. It is also a wonderful work of art as each of the 1600 pages is encrusted with beautiful, evocative illustrations by top artists. Whereas most illustrations in "serious" books are designed to elucidate a technical point, INPUTs glorious reams of art were primarily there to inspire, to make programming look cool and futuristic - and bring the projects to life.
It's a contradiction in a way: INPUT was a very serious programming course with many advanced topics covered, building up to large powerful programs including commercial quality games. Yet the artwork was playful, exciting, flamboyant, exuberant. INPUT was, perhaps, the product of an eccentric genius's imagination, with no expense spared and little attention given to profitability. In this article I try to give an overview and pay overdue homage to this 1980s educational masterpiece.
|In the same lesson, For loops are introduced. Note the artwork showing |
several computer programmers writing the "sunset" code above. Amazing
attention to detail!
Over the year 1984-85, 52 editions of INPUT magazine were published, one per week, adding up to a programming course of 1600 pages long. The intention was to collect all 52 editions and put them together in 4 ring binders which Marshall Cavendish sold separately. If you missed a copy you could send off for back issues to complete your collection (people were patient in those days! with more attention span than we have).
|The issue 9 cover picture helped me understand two dimensional arrays |
where numbers can be looked up by row and column. Notice the high gloss,
deep shadows and black background.
The magazine page numbering continues from one magazine to the next so, once you remove the covers and slot the magazines into the binders the whole thing resembles a single document in 4 volumes. And it's a serious document: INPUT had no editorials, reviews, letters pages or adverts within it, just hundreds of programming lessons in the topics of Basic programming (92 lessons), Machine code (54 lessons), Games programming (55 lessons), Applications (38 lessons), Peripherals (19 lesons) and Languages (11 lessons).
Most lessons are 2-10 pages long, with larger projects comprising several lessons. The largest project was a machine code game called Cliffhanger which came in 22 parts spread out over many issues (my guess is very few people managed to type in all of this game especially considering the difficulty of saving/loading programs on tape in those days). Once all of INPUT is assembled into binders, the separation between magazine issues vanishes and it rather resembles a very glossy encyclopedia of 1980s computers and their uses. It therefore remains a valuable historical source.
|Futuristic light cycles drive through the computer's RAM. Typical of INPUT, |
this picture doesn't really explain much, but simply makes programming
My introduction to programming came when my parents bought me a ZX Spectrum back in 1984. Luckily for me this coincided with INPUT's original run so I got a few copies. I was too young to go to the newsagents every week so got new issues only when my parents thought to get them. In the end I only got about 5 issues out of the 52 but there was enough "meat" there for me to learn many programming techniques I still use today.
I remember lying on the living room floor, age 9, with the Spectrum plugged into the TV typing one of the programs from the first issue of INPUT. The result was a rather beautiful sunrise drawing and I remember showing my Grandma. She was amazed a drawing could come from what she saw as "just numbers" (the program code).
It was an eye opener for all of us, my programming life had begun. I'm sure many others got their start from INPUT as well. Remember this was long before computer programming was taught formally in schools so we had no knowledge to begin with of what a "computer" or a "computer program" was.
|Lesser publications would just explain the AND logical comparison, but INPUT |
makes an entire cityscape out of it. The illustrations go on for several pages like
this. Notice the truth table, the artists clearly understands programming.
Just recently I ordered the full set of INPUT magazines on eBay, bound into 4 binders as Marshall Cavendish intended. Finally I got to see the dozens of issues I had missed, and the early parts of programs I was never able to run since I didn't have the full listing. (INPUT took no prisoners in this regard, if you had issue 48, say, programs within might depend on code from issue 46, 47 etc. The course was always meant to be read as a whole).
Seeing the thing bound together was deeply impressive and I spent days just leafing though it. In fact, examining it from the perspective of an adult makes me even more impressed. With a degree and PhD under my belt, along with years writing reports and papers, I know how hard it is to write quality documentation. But as I flipped though, it was the nostalgia value of the art I had first seen as a child which made the biggest impression, instantly transporting me back 30 years. Some of the images are unforgettable as you can see from the illustrations in this article, which however, only scratch the surface.
|Here we learn how volume increases rapidly with side length of a cube, |
one of many mathematical based lessons. Notice how the artwork
always comes first and the text (including program listing) often
has to flow around irregular shapes.
The INPUT programming course consists of hundreds of programs written for four microcomputers which were popular at the time: The ZX Spectrum, the Commodore 64, the BBC/Acorn Electron computer and the Dragon computer. Many of the listings also worked on the less powerful ZX81, VIC 20 and Tandy computers which were considered under-powered even by 1984 standards.
The reader was expected to type in all the code himself and save it (if he chose) to tape or disk. There was, of course, no possibility of downloading code in those days and a covertape would not have been practical given the number of computers being catered for (and no standard disk/tape system between the computers) so the hundreds of programs in the partwork all had to be laboriously typed in by the reader, often amounting to hundreds of lines of code per program for the more serious projects which appeared in later editions. Of course it was easy to make mistakes and I remember being frustrated at times with code that wouldn't run (always my fault, INPUT is largely error free).
|The computer systems supported by INPUT, an impressively wide range missing |
only the Amstrad CPC from the 1980s UK computer lineup.
Sometimes INPUT's otherwise commendable artwork could be a liability when it made it hard to read the code listings! I doubt many people had the patience to type more than 10% of the programs listed. Some of the code was particularly hard to get right, including big chunks of machine code which is just rows of numbers.
INPUT never credits its author(s) which is a shame because he/she/they really were genius programmers and educators. To write code for hundreds of programming projects each in 4 programming languages for different computers, and then explain how they all work, line by line, is just an immense effort. Most of the projects are in BASIC, but this language was by no means standardised at the time, varying greatly between the Commodore 64 and ZX Spectrum etc. And, worse, many projects are in machine code which is completely different for each computer.
|An almost biblical image featuring the ZX Spectrum, one of four |
So writing all those programs and descriptions 4 times over (with notes for the 4 "lesser" computers also supported) must have been an enormous task. And the whole partwork seems to be written in the same writing style which leads me to guess that one towering genius wrote the whole lot, a person with truly astonishing in-depth knowledge of 4 very different computer systems right down to the fine details of graphics modes, interrupts and memory maps.
And the writing is good, very clear, assuming no programming knowledge, with a gentle, calm approach and even explaining bits and pieces of maths when needed (in this regard, I think INPUT was partly aimed at children, and indeed, advertising shows children typing in the listings). The clarity of fonts used, the text layout in 3 columns, even the quality of paper are all superb.
|A common theme in INPUT was how the simple graphics can come alive in our |
imagination. Here a dancing blockman takes to the floor in a real dancehall.
But what really makes INPUT unique is the sublime artwork in it. Almost every one of the 1600 pages is festooned with art from a variety of top artists. Some is cartoony and fun, some is moving, some dreamlike, some nightmarish. There are cartoon characters, film noir detectives, neon lights refracted through glass prisms, abacuses and clocks, galactic nebulae, computer generated block-men competing in the Olympics, full on oil paintings worthy of Renoir.
For example in the game project Cliffhanger, the hero character is portrayed completely differently in the 22 parts as you can see in some of the illustrations here. Most of the art is hand drawn but some photography is used typically with moody deep shadows and neon lighting. The live action illustrations would usually involve one of the targeted computers sometimes with human models.
|Making music with your computer was a common theme. Here a virtuoso |
plays a symphony on the BBC computer. A timeless and stylish image.
INPUT really contains an entire world of programming. There were several large games, building up over multiple lessons, including two large adventure games, a strategy game and, most ambitious of all, a machine code arcade game called Cliffhanger. And many lesser games were also featured, some of them surprisingly playable. There are also many useful utility programs such as programs to organise your music collection, calendar programs and simple word processors.
These programs are actually genuinely useful and not just tutorial examples, and taken together could form a suite of standard utilities otherwise lacking on these 1980s machines. These days we take it for granted that every computer will have certain utilities such as a text editor, either built-in or easy to download.
Microcomputers in the 1980s lacked any such standard utilities, they typically had BASIC pre-installed and the only 3rd party software available was games. So these application programs in INPUT potentially filled a very real gap. (though the technical difficulties were huge considering most people were loading programs off cassette tapes, no surprise that the computers featured were in fact used as games consoles, not business machines, by most owners)
|Glossy two page spreads were common in INPUT. Here our hero, Willie faces off against |
numerous perils in Cliffhanger, an advanced machine code game to type in over 22 lessons.
There were also a great many maths-based programming projects including illustrating how volume scales with size, multiple generations of rabbits, presenting data with bar charts, simple trigonometry. There is even a program that purports to help you win at gambling on the horses using probability theory. I think maybe I should type this last program in! After all those guys were smart so maybe it works.
The maths stuff was presented very gently assuming no more than primary school maths, so it is very approachable and serves as a good reference even today. There were also lots of projects on 3D graphics which might still serve as a useful reference. Although the reality is that none of the supported computers were powerful enough for 3D gaming - with a few cleverly programmed exceptions like the Sentinel.
|In a later lesson, Willie is portrayed by a different artist. Here we reset the game.|
There are also some very sophisticated machine code utility programs which interfaced with or extended the BASIC programming languages on each computer. In modern parlance these would be recognised as debugger programs which allow you to step through code a line at a time. Looking back, I'm amazed the ZX Spectrum etc was even capable of running a debugger let alone it could be presented in a type-in listing.
There are also several programs for compressing BASIC programs since space was a huge issue in those days. Lots of complex tips are presented to free up just a few bytes of storage. Nowadays we barely think about storage at all, even wasting a few gigabytes hardly matters, so that stuff is very anachronistic.
|A simple maze game is enlivened with beautiful 3D artwork showing "the Eater". I'm not |
sure any game is truly "fun to program" though! Fun to play, yes.
Acting as light relief from all the programming there is also a series of articles on peripherals which gives an interesting insight into the state of the industry at the time. One peripheral we'd recognise today was the printer, and INPUT covers both types at the time, dot matrix and daisywheel (both technologies now obsolete).
The magazine also covers some peripherals we wouldn't think of any more like light pens and speech synthesisers. Light pens were primitive pointing devices. I owned one for my Spectrum - it never worked! Speech synthesisers are now obsolete given modern computer sound cards are powerful enough to play TV-quality speech or any sound effects needed.
In an age when most people plugged their computer into a TV and relied on a tape recorder for storage, computer monitors and disk drives are also introduced (neither would be regarded as "peripheral" any more of course - and floppy disks have gone from aspirational to obsolete within my lifetime). One device INPUT surprisingly never covers, and which seems to have not occurred to the authors, is the computer mouse. And, no, it was not standard on any of the computers at the time!
|A stunning illustration of the different rooms in an adventure game. For once the picture |
is not just decoration, this is the actual map of what we will program!
Finally INPUT mentions modems and in this regard it is fairly forward looking. The term "internet" is never used of course, but the idea of using your computer to access information services over the phone line was described and primitive bulletin boards like Prestel, Micronet and Telecome Gold were covered in detail.
INPUT states most modems run at 300 baud (bits per second). If you remember dial up internet it ran at 56,600 baud and was considered dog slow so you can imagine how slow the pre-internet was in those days (these days basic broadband is 2 million baud). Despite this, INPUT looked to the future with a cartoon showing a person looking up cinema times, bus timetables and his bank balance on a computer, ideas that would have been total science fiction in the 80s.
Since all the computers supported came with BASIC, this language (along with machine code) was used for almost all programs presented in INPUT. However, a series of articles gave brief introductions other programming languages including LISP, FORTH, LOGO and PASCAL. In practice not all of these languages were available for the supported computers, and it would have been hard to get hold of them even if they were (mail order would have been the only option).
|Another gorgeous illustration for the adventure game by the same artist.|
Still, the introductions given are very readable and make it clear that there is a larger world of programming out there, beyond Spectrum BASIC. Indeed these "other languages" would outlive BASIC in many respects, though an obvious omission from this section is the C programming language which, along with its descendants, went on to take over the world.
Like any piece of writing, INPUT was far from perfect. It seems the program listings were not tested in situ but were laboriously typed in by the printer resulting in many mistakes. INPUT conscientiously printed errata every so often, but readers were still tearing their hair out particularly over the ambitious game, Cliffhanger.
This author describes the difficulty of typing this in and getting it to work for the Acorn Electron. In my view, though, he slightly misses the point. In INPUT every code snippet's operation was described in detail so rather than typing in chunks of code and fiddling with them randomly he should have examined the code to see where it was wrong, based on the explanations given.
After all, INPUT was about understanding and learning not blindly typing. But the good news is, thanks to this reader's efforts, Cliffhanger is now available to download and play, you just need an Acorn Electron emulator. (I'm not aware of any INPUT type-in code available for download for the other supported computers. I'd love to get the Spectrum stuff if anyone knows...)
|A typical "before and after" type sequence. Back in the day it was tough to print out what was |
on the computer screen (and notice no flat screen monitors either, the screen was your TV).
So what is the legacy of INPUT magazine? We must accept the reality (painful though it is!) that all of the wonderful computers featured, the Spectrum, the Commodore 64, the BBC, the Dragon (did anyone actually own that?) are now obsolete. Since the BASIC languages were very much tied to the hardware and non-standard, the programming projects and snippets are largely obsolete too. Of course the algorithms underlying those programs are timeless. I learned how to sort a sequence of numbers for the first time in INPUT and still use the algorithm today.
And there are very interesting techniques like how to draw a maze without having any blocked-off areas and AI schemes to allow your computer to play games like Othello and Fox and Geese (two board games presented: Chess was clearly a bit of a stretch!). But trying to disentangle those algorithms from the ancient code presented is something only an old duffer like me would contemplate. New programmers would be far better off on Wikipedia.
|But don't worry! A huge wodge of machine code will sort it out. And relax!|
Even more obsolete are the machine code programs as they relate specifically to ancient computer microprocessors used: Zilog Z80 for the Spectrum, MOSS 6510 for the Commodore 64, MOSS 6502 for the BBC/Acorn, Motorola 6809E for the Dragon. These days PCs and Macs use Intel's x86 microprocessors and most smartphones use ARM chips so the machine code presented simply won't run (except on an emulator) and has little educational value. In fact the whole idea of writing in machine code has gone by the board. INPUT, in common with many other references at the time, gave the impression that high level languages like BASIC are something you learn as a novice, but real programmers write in machine code.
This was certainly true at the time, BASIC was too slow for games and, if you were targeting the Spectrum etc, games were the only type of software you could make money from. Now, high level languages have taken over and no one writes in machine code even for games programming. Given I devoted hours to learning machine code as a child, this was the biggest surprise of all when I grew up to become a "real" programmer!
|Writing a fruit machine simulator. Things exploding out of the page |
was a common theme.
So you could argue that the very premise behind much of the INPUT program listings is now false. The computer industry has undergone not one but many revolutions since the final issue of INPUT was published in 1985. I wonder if the authors felt sad about this? They could not have predicted the enormous scale of change in the industry and how rapidly it would make their masterpiece obsolete.
Marshall Cavendish still exists but doesn't have an office in the UK anymore (its headquarters are in Hong Kong) and, as far as I know, does not publish in this country. There is no mention of INPUT on their website, which is a shame. Fortunately INPUT is available for online viewing here and you can buy paper copies on eBay like I did. Still the total disappearance of INPUT from the public consciousness is sad and makes me wonder what else has been lost.
|This programmer is struggling to make sense of BASIC but improbably finds machine code |
easier. Part of INPUT's "machine code is king" propaganda which turned out to be false.
Sure, everything is on the internet somewhere but only if you know the keywords to search. There should be a better archive of 1980s stuff (and other decades) so you can easily browse and perhaps find stuff you've never heard of. Google is a virtual index but we have no virtual museum.
But the work of creating INPUT was not wasted! It catered for the machines available at the time (no point waiting for the PC to be invented) and got many people into programming who would not have done it otherwise. I learned all the basic concepts of programming from INPUT including variables, arrays, loops and branches, all stuff which is as relevant today as it ever was.
|This stunning two page spread haunted my dreams for years. The program code does not |
actually produce those demonic birds, which is probably just as well...
INPUT remains a valuable historical document and there are many titbits, ideas and algorithms which are still valuable for those who take the time to look. Indeed, mobile game developers might do well to flip through input for new game ideas, considering how the industry has come full circle and simple games are often the best sellers these days.
And as a piece of art, INPUT is one of the most gorgeous "encyclopedias" the world has ever seen. It fired up a whole generation of children's minds and let their imagination run wild, while providing an education in programming and mathematics. If that's not an achievement I don't know what is.
|INPUT predicts the internet 10 years in advance. In fact with the ultra-slow 300 baud modems |
available our hero would have missed the bus!
Special Note: Huge thanks to John Blackburn for his fantastic article which I'm sure you'll all agree was a fascinating look back at an important and memorable magazine. Feel free to write for Red Parsley again any time John!