back to article Basic instinct: how we used to code

Reg Hardware Retro Week Logo I’ve recently caught myself, like some horrific solo re-write of the Monty Python Four Yorkshiremen sketch, waxing lyrical to my two iPod-wielding young ‘uns about the good old days; when men were men, computers were effectively clockwork, and computer games… well, come to think about it, they …


This topic is closed for new posts.
  1. MacroRodent

    The star trek game

    > Basic Computer Games by David Ahl, probably the source (ahem) of the Star Trek game,

    it is older, and had been circulated in various forms among mainframe and minicomputer BASIC users. My earliest feat of porting software was making a Honeywell GCOS version of the Star Trek run on my ORIC-1 around 1983. I typed it in from a fanfold listing, which I had printed when working the summer at the computing centre of a power company, helping operate the Honeywell mainframe. After getting in the logic and many evenings of debugging, I made it display the battle status more nicely, updating the screen instead of scrolling. It barely fit into the ORIC-1 (48k version), and I recall I had to work around various quirks and bugs in the ORIC BASIC. Like having to explicitly pop the loop stack if the code jumps out of a FOR loop prematurely.

    I still feel the old microcomputer BASICs were great for learning the basics of programming. For one thing you got immediate response (no compiling, just enter your program and type RUN), no need for separate editor, and the way the numbered lines of code directly corresponded to what the program does drove home the fact that computers just blindly obey you commands, in the order you specify, and do no real thinking on their own.

    1. Anonymous Coward
      Anonymous Coward

      Re: The star trek game

      My dad worked for Honeywell (as a CSE) and I can remember sitting in his office (some time in the late 70's) and playing Star Trek on one of his terminals. It was great, and kept me out of trouble, because any time he was actually using the computer I'd send messages to myself via the pneumatic tube system in the building...of course, racing to see if I could 1) actually locate the right office and 2) beat the tube delivery. Of course, since I was 8 (and it was a long time ago) I don't recall ever getting in trouble, even though this was a good sized hospital. I think it did some of the patients good to watch an 8yo kid run down the halls staring at the ceiling and listening for the message canister... ah, happy memories.

      If a kid did that today, they'd probably put the entire building under lockdown and call the SWAT team.

    2. Anonymous Coward
      Anonymous Coward

      Re: The star trek game

      Haha, I did that too :) A friend of my dad's had some early CP/M-based small business machine, possibly a Cromemco but I don't remember, and it had versions of both Star Trek and Eliza that I printed out, took home and ported to my CBM PET. Happy days....

    3. KnucklesTheDog
      Thumb Up

      Re: The star trek game

      More than just learning the basics of programming, it taught you the basics of computers. Learning VIC-20 BASIC taught me what a bit and a byte are. It made me appreciate that when you "poke" a memory register the computer did stuff. I'm sure there are countless other things it taught me I now take for granted.

      Compare that with the BBC journalist learning the "basics" using HTML and Javascript.

      1. Anonymous Coward
        Anonymous Coward

        Re: The star trek game

        "It made me appreciate that when you "poke" a memory register the computer did stuff"

        For me, it wasn't so much as PEEK and POKE of random memory addresses on an older computer, but rather IN and OUT on a much more modern IBM PC clone with QBasic.

        Specifically, figuring if I did an OUT on I/O address 0x225 (and 0x224 too if I recall correctly), then hitting alt-enter and bringing up the Windows 95 volume control; the volume had indeed changed.

        What followed was an attempt to reverse engineer the mixer chip on the SoundBLASTER 16, then a successful attempt at making god awful sounding noises out of the computer's speakers.

    4. deshepherd

      Re: The star trek game

      We had a very early 6800 "system" in the electronics lab at school and I remember when we got the code for star trek (n.b. this was hex code that had to be typed in before we could save it to ?paper tape - may have been floppy) but there was a problem as it was too big to fit into the 1kB memory so there was a mad rush to put together a 4kB memory *expansion card* so that we could run it!

  2. Melanie Winiger

    Classy article

    310 GOTO 340

    It feels "strange" to write that now as if I've gone back in time to an ancient civilisation...

    1. Anonymous Coward
      Anonymous Coward

      Re: Classy article

      Speaking of ancient civilisations, anyone else ever have to program in RTL/2 ? It managed to take the worst features of C and Pascal and combine them in one language...

    2. This Side Up

      Re: Classy article

      GOTO? When I was programming GOTO was definitely frowned upon (as was the ALTER statement in COBOL), PROCs and FNs please!

  3. John Young 1


    "1990: that last year of primary school when I was shown my first computer, a Sinclair ZX80. "

    I assume you mean '1980' ?

    1. Hairy Spod

      Re: Hmm..

      unless he was one of those kids that smelt of wee..

      1. Steven Raith
        Thumb Up

        Re: Hmm..

        I was from a poor family, I didn't get a C64 till the late 80s.

        Still worked perfectly well as a learning tool though. Learning how to play ATV Simulator and Kickstart 2, that is....

        Steven R

        1. Anonymous Coward
          Anonymous Coward

          Re: Hmm..

          poor family ? I got a C128 in '87, and even the grandparents had to chip in. Cost was about 40000 Belgian francs, or 1000 in new money. So about 3 months mortgage payments for the family at that time. I did get a colour monitor and a cassette deck included though !

    2. dickiedyce

      Re: Hmm..

      Yep, 1981 actually. No idea where that 1990 came from. Must fix that faulty flux capacitor...

    3. Leona A

      Re: Hmm..

      Not the only typeo, from page 2

      "To prove your worth, you had to submit a pencil-written program to the Prefect in charge, who checked it, at which point "you could you" put them onto tape. "

      "you could you" ???

      1. Kubla Cant

        Re: Hmm..

        If you're going to be picky, you should learn to spell "typo".

  4. Bucky O' Hare


    Isn't that getting a little late to see your first Speccie? Those were the Amiga days.

    1. Anonymous Coward
      Anonymous Coward

      Re: 1990?

      Not really, the Amiga was considerably more expensive than the Spectrums at that time and even Commodore was still selling the C64 as the popular entry level model for the home market.

  5. Filippo Silver badge

    Well, learning to code in BASIC had its advantages. If you can learn to make a somewhat complex program that works even though you don't have function calls and the only loop you have is GOTO, chances are you'll do even better once you're given all the amenities of modern languages. Provided that you don't keep writing the whole program in one function and using GOTO for loops, of course...

    1. Marvin the Martian

      "How we used to code"

      ... Simon's BASIC.

  6. Voland's right hand Silver badge

    Ughh... Still shudder when I recall those days

    Ugh... Crippled language with crippled syntax and crippled capabilities resulting in crippled brains.

    I ended up writing a set of routines to emulate a proper stack including recursion in order to be able to use in high school. I had those memorized and started every program by typing them in (don't you love languages which have no external library capabilities). That annoyed the hell out of some of the faculty :)

    I wish Fort (and Logo) for that matter were more popular. They made for some much cooler (and more understandable) "education" languages.

    1. Steve Ives

      Re: Ughh... Still shudder when I recall those days

      Nothing wrong in a language which only has 'goto' for flow control. How do you think assembler implements those fancy 'Do..While' and 'For...Next' structures? That's right - 'IF...THEN', manually decremented/incremented counters and 'GOTO' - much that same as you'd have to do ti in BASIC.

      If you understand how it works at a low-level, it's easier to appreciate it at high-level.


      1. dickiedyce
        Thumb Up

        Re: Ughh... Still shudder when I recall those days

        Actually, the funny thing was, the short-comings of BASIC, meant it was more a of a stepping stone: like a lot of other people I know, got into into machine code in fairly within a couple of years. Rodney Zaks has a lot to answer for...

        1. Raz

          Re: Ughh... Still shudder when I recall those days

          Ha ha, exactly. I started coding a submarine simulator in assembler on Z80 on a Spectrum copy because Basic was too slow and too big. LD A, 64... I ran out of that 42 KB of memory anyway, but I remember that I had removed some code from the BIOS (first 16K) and overwritten it with my code. I could have given an arm for an extension to 128 KB, but by the time I could afford it, a 286 became affordable as well, so I went to 16 bit :)

      2. Anonymous Coward
        Anonymous Coward

        Re: Ughh... Still shudder when I recall those days

        > How do you think assembler implements those fancy 'Do..While' and 'For...Next' structures?

        BNE - Branch if not equal

        BEQ - Branch if equal

        BPL - Branch if positive

        BNE - Branch if negative

        All of the above (and there are more) are branch relative depending upon a condition. This is how the IF..Then..Else is implemented in assembler. These are not GOTO, which would be JMP in assembler.

        I spent the 80's writing assembler for a living (6502, Z80, 80x86, 68000 etc) and whilst the JMP (GOTO) instruction could get you out of trouble, it was an instruction you tried to avoid because overuse of it would result in unmanageable code.

        1. Nick Ryan Silver badge

          Re: Ughh... Still shudder when I recall those days

          There was always JSR as well (and on some processors, conditional JSRs as well). Certainly on the 8 bit systems the use of JSR taught you well the value in stack management (very limited stack space for return points) and how to deal with passing values into these subroutines.

          And just when you thought you were getting a handle on it all you then got into the ball-ache abortion mess that's x86 assembly code and were forced to waste more clock cycles juggling registers and stack pointers than doing anything that was actually useful. Unfortunately modern x86 code isn't often much better, it's just that the processors are considerably faster.

        2. electricmonk

          Re: Ughh... Still shudder when I recall those days

          I hope you also avoided using the BNE instruction, seeing as how you think it has two different meanings.

          BMI, maybe? (Not to be confused with BMI Baby.)

          1. grizzledvet
            Big Brother

            Re: Ughh... Still shudder when I recall those days

            Reminds me of a quote from 70s programming guru Edsger Dijkstra - "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. "

            Mind you, he was just as rude about FORTRAN, COBOL, PL1 and APL

            1. Kubla Cant

              Re: Ughh... Still shudder when I recall those days

              Whenever I read this quote I can't help wondering if "Edsger Dijkstra" is Dutch for "superior patronising jerk". Most competent Basic developers were only to glad to move to new programming model.

              But what do I know? I'm presumably "mentally mutilated". I hate Basic with a ferocity born of several years working in VB6.

              1. david 12 Silver badge

                Edsger Dijkstra

                Dijkstra thought that the proper subject of Computer Science was algorithms. He never had any time for those who thought that Operations or Language Design were proper subjects for Computer Science.

                When he talks about Program Languages, he talks from his point of view of language user, not as a language designer or language researcher. He was very articulate, but his personal opinions on this subject are of no more value than mine. Or less. Since he didn't think it was real computer science, he felt free to ignore evidence he disagreed with.

                1. frobnicate
                  Thumb Down

                  Re: Edsger Dijkstra

                  Dijkstra participated in design and implementation of some of the most influential languages, including Algol-60, Algol-68 and Ada. He and Hoare made fundamental work in language semantics, typing, formal correctness and concurrency. To think that EWD reduced computer science to algorithms is... unbelievable. (Yes, I subscribe to his view about Basic and yes, I programmed in it. It was difficult to unlearn, but worth it, all happy memories notwithstanding.)

          2. Anonymous Coward
            Anonymous Coward

            Re: Ughh... Still shudder when I recall those days

            > I hope you also avoided using the BNE instruction, seeing as how you think it has two different meanings.

            Give us a break. Its been over 20 years since I last looked at any assembler and my memory isn't what it used to be.

        3. DZ-Jay
          Thumb Up

          Re: Ughh... Still shudder when I recall those days

          Branches are jumps; they add an offset to the program counter. That they react on the status flags is just a technicality, they're still GOTOs.

          The typical micro BASIC dialect promoted the following idiom for control flow:

          IF (X = 1) THEN GOTO 300

          That's assembled as (depending on your CPU dialect):


          MVII #1, R0

          CMP X, R0

          BEQ @@300

          ; false

          B @@end


          ; true


          ; end

          That was e point of the poster you responded to.

      3. Phil O'Sophical Silver badge

        Re: Ughh... Still shudder when I recall those days

        > If you understand how it works at a low-level, it's easier to appreciate it at high-level.

        True, although I do have to admit to some relief that no other langauge that I know of implemented the FORTRAN Arithmetic IF ! (cue dozens of posts with language examples...)

        1. Blitterbug

          Re: FORTRAN IF !

          The C question mark operator comes close, as in

          iVar1 = iTest ? iCase1 : iCase2;

          iirc :)

      4. Michael Wojcik Silver badge

        Re: Ughh... Still shudder when I recall those days

        > Nothing wrong in a language which only has 'goto' for flow control.

        Sure. Why ask for anything better than the bare minimum?

        > How do you think assembler implements those fancy 'Do..While' and 'For...Next' structures?

        That depends on the target machine, of course; but typically with conditional branches, not unconditional ones. And for some machines, that includes things like decrement-and-branch-if-not-zero instructions, which are pretty close to "For...Next structures".

        True, that sort of thing is typically only available on obscure architectures like x86.

        > If you understand how it works at a low-level, it's easier to appreciate it at high-level.

        BASIC: all the limitations of assembler, with none of the insight!

        JFTR, BASIC wasn't an improvement over FORTRAN or COBOL, either, much less over ALGOL or LISP, for most purposes. In its interpreted forms, it did have a couple of advantages over its forebears as a teaching language - notably being interpreted but less resource-intensive than LISP. But those were quickly overshadowed and by the '80s ubiquity was pretty much its only redeeming quality.

    2. Phil O'Sophical Silver badge

      Re: Ughh... Still shudder when I recall those days

      The only things crippled about BASIC were the minimalist implementations that people made to shoehorn it into 1K of RAM. Proper ANSI-standard BASIC isn't a bad language to program in, and on VMS VAXen (maybe other systems) you could compile it and get decent performance as well.

      Don't forget that BASIC was developed at Dartmouth college as a simplified (hence the "B") way to teach programming, so that beginners didn't have to start with FORTRAN or Algol. It did that job well.

      No BASIC on my Solaris desktop though, snif :(

      1. Martin

        "Don't forget that BASIC was developed at Dartmouth college as a simplified (hence the "B") way to teach programming..."

        You are aware, aren't you, that the "Beginner's All-Purpose Symbolic Instruction Code" is a retro-fitted phrase? BASIC was called BASIC because it was basic. Afterwards, people asked "But what does it stand for?" and someone came up with this truly horrible suggestion.

        I was using BASIC in 1971 on a PDP-10 at Hatfield Polytechnic over a phone line from our school. But I didn't hear anything about "Beginner's etc etc" until sometime in the 1980s - round about the time that the story that BASIC was invented by Bill Gates started.

        1. Phil O'Sophical Silver badge
          Thumb Up

          > You are aware, aren't you, that the "Beginner's All-Purpose Symbolic Instruction Code" is a retro-fitted phrase?

          No, it isn't.

          "Several versions of the popular Jargon File once claimed that BASIC is a backronym created in the 1970s (recent versions have corrected this). Evidence from the original Dartmouth BASIC manual (1964) show this to be untrue, but numerous online dictionaries and reference works on the Internet have now proliferated the earlier Jargon File's error."

          1. Martin


            Until I see the actual Dartmouth BASIC manual, or a copy of it, and not merely multiple assertions all over the web, I'll stick by my memory. We knew that Algol was Algorithm Language, and Fortran was Formula Translation - but Beginner's All-Purpose Symbolic Instruction Code? Please allow me to be very dubious.

            1. Martin

              Well, damn - look what I found....

              Replying to myself before anyone else does...


              And there it is on page 2. "The language that you will use is BASIC (Beginner's All Purpose Symbolic Instruction Code) which is at the same time precise, simple and easy to understand."

              You live and learn.

      2. Allan George Dyer
        Thumb Down

        Re: Ughh... Still shudder when I recall those days

        You mean proper ANSI-standard BASIC with variable names of one letter and one digit? That sure made for readable code.

        I'd been using BBC Basic for years when I encountered ANSI-standard during a Uni project on a mini. That came as a BIG shock!

    3. jai

      Re: LOGO!!!

      Yay, I remember learning Logo on my dad's hand-me-down Apple II

      Like a lot of people have said, I think the grounding I had as a kid in learning these basic procedural languages has paid off when I've come to pick up a new language. I wonder what it's like for kids today - do they still start by teaching Basic? Or do they jump-start 7 year olds with a course in object orientated theory before setting them up to write a "hello world" class for a .net app?

    4. JimC

      Re: Ughh... Still shudder when I recall those days

      I dunno, do you really understand the advantages of writing good readable source until you have spent a day trying to decipher something truly horrible? You can write decent structured code in Basic., its just that the temptation is not to, and like a number of temptations, if you give intoit you or someone else may suffer horribly in the future. Good lesson for life there really...

  7. janimal

    My single mother was very poor so there wasn't much chance of me getting hold of a computer in those days, fortunately many of my friends had parents who could afford them. So I learnt to program on my friend's devices. Often I actually used them more than they did. Many times friends would simply donate their zx81's & then spectrums to me for months on end!

    Eventually a few years later my Mum & relatives clubbed together and got me an Amstrad CPC 64 (green screen) and that's when I found the most useful programming book I have ever encountered.

    It was a collection of about 30 basic programs for the CPC64, by this time due to the 64k ram typing many pages of basic into the thing was quite a task. The brilliant thing about this book though was that not a single one of the contained programs actually worked as printed! I would spend days going over the code checking for syntax errors on my part.

    Once it was clear I had made no mistakes it was time to start trying to fix the code myself. The buzz I used to get when all that gibberish started to make sense was fantastic. Most of the games were nothing to get too excited about, but becuase I had managed to get them working myself they were a lot more satisfying than they would have been.

    I'm sure the author(s) of that book didn't set out to produce 30 broken programs, but because they did, I became hooked on the things. Unfortunately I was never in aposition to be able to touch a computer at school or have any formal training until I put myself through college many years later, then university (Bsc. Soft Eng).

    The odd thing is after working with the things for so long, I have long since lost any love of computers, gadgets or programming. I detest the way commercial pressures lead to hacking crappy solutions together. I hate to see C++ that is actually C encased in a few ridiculously huge classes and most of all I hate the mainstream uses of the things these days (ie Marketing, repression, rampant capitalism).

    The golden age of computers has passed & now we're into the 'functional magic ' era where technology bloggers can learn a bit of markup and think they understand what programming is like.

    tl;dr I liked the old days, things were different when I were a kid.

    1. Anonymous Coward
      Anonymous Coward

      Did you spend

      29 hours a day down t'mill, pay t'mill owner for permission to come to work, eat a cup of cold gravel, etc?

    2. bob 46

      Hey, I had one of those too! One day my dad (truck driver) came home with a CPC464 which had "fallen off the back of his lorry" (Actually, he worked for a mail order company and the computer went back and forth from supplier to depot about a half-dozen times cos both ends had lost the paperwork for it, until my Dad decided that if no-one wanted it then I might as well make use of it!) Very similar to the speccy, just slightly better colour options and sound (and of course a proper keyboard) - wrote so many games and software for that thing! Loved it

  8. Gordon Henderson
    Thumb Up

    Nothing wrong with BASIC

    It's fine for doing what it needs to do - help people get "into" computing and learn. Modern BASICS don't even need line numbers or GOTOs either. the biggest issue is/will be the teachers now, I reckon. I think I was lucky in that I had some good and keen teachers who really encouraged me.

    So having been brough up with the micros of the late 70's and 80's, in a fit of nostalgia, I wrote my own BASIC interpreter a few months ago and have been having great fun with it since! I put in all the graphics I liked (turtle as well as cartesian) and it's fun! runs under Linux and so on myRaspberry Pi too!

    1. david 12 Silver badge

      Re: Nothing wrong with BASIC

      BASIC only ever 'needed' line numbers because the language designers thought it made a better language. I agree.

      FORTRAN used numbers as GOTO labels. BASIC put a line number on every line so that there would be a line number on every line.

      Now when I have compile errors or run time execptions, I am given a line number. Which changes with every source change, and which is never displayed as part of the source. Back then, a line number uniquely and consistantly identified a particular line of code. I've supported systems like that, and an error at line 170410 is a lot easier to trace if 170410 has been the same line for the last three years.

      I realised that my collegues hated anything which increased the number of keystrokes required to enter a program, but that never seem sufficient justification for loss of such a valuable language feature. Of course, I could touch type before I encountered my first computer, so that made a difference.

      Years later I learnded about Database Design, and I realised again the value of having a unique primary key.

      1. John Sager

        Re: Nothing wrong with BASIC (line nos)

        What's wrong with putting __FILE__ and __LINE__ in fprintf(stderr,...) statements, or equivalent in other languages? I'm glad I got into this stuff before BASIC became popular, by which time I had moved on from FORTRAN taught in a 1 semester course at uni in '69, to Coral 66, PL/1, Pascal and even played with BCPL. It's funny, though, how playing with lots of languages pays dividends. I found I could easily hack on the ancient FORTRAN code in the NEC2 electromagnetic modelling program, and more recently some amateur radio stuff where the author probably uses FORTRAN because he used it all his career.

        I've seen some funny code in my time, but the one that takes the biscuit is some C code (no names, no pack drill) that, if possible, is even more convoluted than a BASIC program and no, it's not a submission to IOCCC . Virtually no indentation (though that can be fixed with astyle), and too many gotos without reason. Perhaps the guy started with BASIC & never really escaped the mindset.

        I do confess, however, that I've never really got to grips with functional languages and that programming style.

      2. John Brown (no body) Silver badge

        Re: Nothing wrong with BASIC


        Line numbers in BASIC were great for exactly the reasons you state.

        Your collegue, however, obviously only ever encountered BASIC on a stripped down memory sparse computer. My first computer was a Video Genie, a Hong Kong knock off of a TRS-80 model 1, Level II. The basic editor had the AUTO command. Simply type AUTO and away you go. Each time you press RETURN, the next line starts, already numbered, starting with 10 and incrementing by 10 each time.

        It had arguments for start and increment too, although that might have been the "Level III" BASIC in TRS-DOS or LDOS.

        It also had error trapping, ON ERROR GOTO/GOSUB with RESUME so you could deal with the error and jump back to main program as well as ON n Goto/GOSUB n, n+1, n+2 etc. Surprisingly advanced for the vintage if lacking in graphics and drawing primitives.

        The TRS-80, remember, pre-dates many of the 8-bit computers we've been re-encountering in this series of articles.

      3. J.G.Harston Silver badge

        Re: Nothing wrong with BASIC

        "BASIC only ever 'needed' line numbers because the language designers thought it made a better language."

        No, BASIC only needed line numbers, because with a line editor you have no other way of specifying where in the program code the bit of code you've just typed needs to go. With a screen editor line numbers are completely superflous, and any BASIC can be edited with a screen editor without any recourse to line numbers if you don't use GOTOs or GOSUBs.

      IT Angle

      Re: Raspberry Pi?

      You have a Raspberry Pi?

  9. Dick Head

    If you subscribed to early issues of Byte ... didn't have to type in your Basic programs. You could get a 'floppy ROM' which was an audio disk (ie: as in 45 rpm) which you could play on your record player and pipe the audio out to some a-to-d circuitry on your home computer. The ones and zeroes were different tones on the disk, but good luck getting your sister's Dansette to sync up to the software on your Altair 680.

    I think I could still find a floppy ROM around the house, and somewhere I still have a business card wallet full of Exatron Stringy Floppies with a Forth interpreter and various other software for said Altair.

  10. error handler

    Shop demo models

    If you were messing around with a demo model in WH Smiths then a quick program along the lines of your first image was admittedly tempting:


    20 GOTO 10

    However this was usually spotted very quickly and a shop floor bod would come over to sort it out.

    I preferred the more subtle approach, which for the Dragon in your screenshot would have been:

    10 CLS

    20 PRINT "(C) 1982 DRAGON DATA LTD"


    40 PRINT "(C) 1982 BY MICROSOFT"

    50 PRINT

    60 PRINT "OK"

    70 GOTO 70

    1. Martin

      Re: Shop demo models

      That's truly evil! I like it.

      1. Chemist

        Re: Shop demo models

        I remember getting an Apple II for the lab and programming a little BASIC that put up a normal Apple prompt ( ] I think ) any keypress then produced a "SOD OFF" for a few seconds before the program then deleted itself and returned to the normal prompt.

    2. A J Stiles

      Shop Demo Software Shenanigans

      A friend of mine had some serious phun with BBC model B's in stores that also sold software.

      He would take a box of 5.25 inch floppy disks, all but a few of which was labelled "Watford Electronics Compatibility checker". (Watford Electronics were a third-party supplier of peripherals; they made an improved disk system for the BBC, better than but slightly incompatible with the "official" Acorn upgrade and some software, especially games, would not work with it.)

      So my friend would ask to "check" if a game would be "compatible" with his Watford disk system. Inserting the "compatibility checker" disk into the drive of a BBC computer and pressing shift+BREAK produced a fancy screen with a progress indicator; which then asked for the game disk to be inserted, thrashed the drive a bit, then asked for the checker disk again. After a series of such disk swaps came the dreaded announcement that the game was not compatible with the WE DFS. He would return the compatibility checking disk to the back of the box, and ask the shop assistant if he could compatibility-check another game. While the assistant was away fetching it, my friend whipped out the compatibility-checking disk from the front of the box (nobody ever noticed this blatant switch, which was done with no sleight-of-hand) and booted it up.

      Again the compatibility-checking process would require several disk swaps, and again it would fail. And my friend would wander off, dejected, before the shop assistant could work out what had just happened right under their nose.

    3. Lord of Cheese

      Re: Shop demo models

      Ah the joys of tormenting the numpty shop staff.....

      On the BBC micro you could control the tape relay and disable the Break key in BBC Basic. We used to set up a simple delay using a for next loop to give us time to escape (usually 30 seconds or so) followed by a goto loop that rapidly switched the tape relay making a loud annoying buzzing noise. The only way to stop it was to ctrl-break (which most of the numpties didnt know about) or pulling the power.... Happy days....

    4. Anonymous Coward
      Anonymous Coward

      Re: Shop demo models

      The most fun shop demo model I ever saw was a machine (C64 I think) which the shop had hooked up an external speech synthesizer to. Control was via an extension to the basic to add a SAY command. Most people were happy just typing commands for immediate execution, naturally I imediately put it into an infinate loop program instead. Oddly enough I never saw that speech synthesizer connected ever again.

      1. Anonymous Coward
        Anonymous Coward

        Re: Shop demo models

        My favourite was to run a loop to copy the C64 ROM to RAM. A few POKEs would then replace SYNTAX ERROR message with something obscene. I'd then wander away and watch kiddies bash the keyboard a few times and then ask their Mum's what THAT meant!


    5. Inachu

      Re: Shop demo models

      100 cls

      110 print "I remember using a bit nibbler track and sector editor on my c-64 and while I was looking around at the floppys code past track 80 I saw a message from a Mr. Burger and it said -If you read this please contact Mr. Burger. I did call and was 8 years too late and they put that "IF YOU READ THIS" as a way to hire their programmers.

      I loved scanning all floppies to see if there were any secret messages like that.

      I would do it hours on end as if on a XFILES case."

      120 end

  11. stu 4

    xmas morning 1983, age 12

    Finding that miracle of miracles, my parents had found a 48k spectrum.

    I had donkey kong, and later that day, TTL to play.

    But the star of the show was the basic manual.

    I read it from cover to cover, and by boxing day had my first program:

    - some flashing colours and text, and an 'enter password' screen with me and my mates 'handles' as passwords.

    get it wrong, and go no further,

    get it right and be granted permission to the 'secret screen'.

    By April 1984, aged 12 1/2 I was producing an educational maths platform game for 'Poppy Sotftware' after finding their games in the local library and contacting the company.

    I still have a printout of some of the code - I remember I couldn't really get my head round sub routines, so would sort of use them, but have a GOTO to somewhere else, and then a GOTO to somewhere else, etc... it was an absolute mess. I'd added various machine code routines for fancy stuff, masses of bin arrays for character sets, etc... and all relying on a temperamental tape recorder for backup.

    38 years later, I'm still coding.

    kids these days - don't know what they're missing.

    1. Anonymous Coward
      Anonymous Coward

      Re: xmas morning 1983, age 12

      The Original zx81 and Speccy manuals were masterpieces, and certainly among the best of their types for learning Basic on the machines.

      I was still using the character code references (Which also had the full list of machine code instructions) in the back right up until i switched over to the Amiga.

      1. jason 7

        Re: xmas morning 1983, age 12

        I too am part of the aged 12 xmas morning 1983 club!

        We should all get together to talk about it. What a day going through the Sinclair Horizons demo tape. I still remember sitting watching the foxes and rabbits thing...why???? Never did that again.

        I remember that supply was very limited. Dad had his name on a waiting list since October and got a call a week before xmas that his name was up! He had to sneak out of work in the afternoon to drive into town to buy it.

        Xmas 1984 was a bit flat in comparison with that one.

        1. Anonymous Coward
          Thumb Up

          Re: xmas morning 1983, age 12

          jason 7: "I still remember sitting watching the foxes and rabbits thing...why????"

          I also remember doing that with my Dad on Christmas day 1983! (Well, it did serve to prove the 'educational' aspect of the Speccy). Of course I could hardly wait to load-up Manic Miner again afterwards. :-)

      2. Soruk

        Re: xmas morning 1983, age 12

        Absolute work of art, that was. I used to use that with a CP/M portable to hand-assemble programs and through some horrendous abuse of a word processor got my code loaded to 0x0100 so I could run (and use the CP/M SAVE command) it. Having figured that out I wrote a small tool that would relocate to 0x8000, then enter a loop where it would accept two hex digits, poke that value to the program pointer initially 0x0100, then increment that. Entering a * would cause it to exit, any other characters would have undefined results.... it was HARD entering that initial tool, slightly easier to enter a program using hex digits as the initial wordprocessor hack only gave me a subset of machine code commands - and 0xC9 (ret) was not available, I had to do that one by doing some maths, writing the result into RAM then let the program counter hit it.

        It got a bit easier after that, as my next tool entered using that hex input thing above would read hex pairs from a file. Spaces, carriage returns and linefeeds were harmlessly skipped, a * ended the reading, but anything else would still be undefined. But I could use the word processor to enter the files so I had full line and file editing capabilities - all hand assembled using the ZX Spectrum manual.

    2. /dev/null

      Re: xmas morning 1983, age 12

      38 years later? Maybe it's time to pack it in :-)

    3. Anonymous Coward
      Anonymous Coward

      Re: xmas morning 1983, age 12

      Hopefully you've grasped 'sub routines' by now, else your colleagues must be having a grim time of it.

  12. Alister

    old memories

    Having learned basic on a TRS80 I then went on to use Borland Turbo-Basic on a 286 running DOS 5. It felt like proper programming, as it would compile to an exe or a com and would accept assembler inline as well. Great for writing TSRs

  13. Purlieu


    Originally it was "Interactive" not "Instruction" and in fact "instruction code" is a bit of a tautology. Interactive in the sense that you could type something in and run it there and then, without having to compile/assemble/ whatever it first. Those days on the PDP11 were not wasted.

  14. Anonymous Coward
    Anonymous Coward

    Happy days remembered with a PET

  15. Anonymous Custard
    Thumb Up

    Memories, memories... (16k, 48k or 128k :) )

    This whole series is bringing back so many memories - just goes to show what an old fart I'm becoming.

    One thing that does strike though is actually how good a grounding BASIC (especially BBC Basic) actually was for some more modern "hobby" programmers like me. These days in my spare time I code mods for an open-source game in Javascript (plus the occasional similar thing for webspace in the past) and the fairly natural progression from one to the other is clear. The structure and set-up are quite similar (give or take line numbering) and so is the general logic behind it.

    Now I know all you "proper" programmers could look down on it, but it certainly set up a wider generation of amateur coders than all our modern point-and-click apps etc are going to. Let's hope the Pi hasn't arrived too late.

  16. Geoff Bin In

    My first computer

    My first computer was an Elliott 803 in 1968/9-ish and we were taught to program it in Algol.

    I say "my" computer, there were other people using it! We wrote the program on a coding sheet and handed it in. The punch ladies then punched it onto cards. The results were returned on tractor feed "music" ruled paper, wrapped around the cards. The turnaround time could be around 1 hour.

    1. Dick Head

      Re: My first computer

      Hey, me too! Except we didn't hae a card reader/punch, everything had to be self-punched on papaer tape. No Algol, either. Elliott Autocode and/or the assembler. Assembler was by far the most interesting.

  17. tsdadam

    They could get away with anything...

    Just looking through that listing for Towers of Hanoi, t he description says it's "velly velly good".

    In my head is a picture of Peter Sellers in Murder by Death as Mr Wang :)

  18. Uncle Slacky Silver badge

    No ELSE in Sinclair BASIC?

    I know it wasn't in the ZX80 or 81 versions, but I'm pretty sure the Speccy had it.

    1. error handler

      Re: No ELSE in Sinclair BASIC?

      I thought so too, but it doesn't seem to be in the manual:

      I was quite surprised about that. It's amazing what we take for granted.

      On a side note, they really don't write manuals like this any more. Re ^ and its applicability to compound interest:

      If you try this command

      FOR y=0 TO 198: PRINT y,10*1.15^y: NEXT y

      you will see that even starting off from just £10, it all mounts up quite quickly, and what is more, it gets faster and faster as time goes on. (Although even so, you might still find that it doesn't keep up with inflation.)


    2. Anonymous Coward
      Anonymous Coward

      Re: No ELSE in Sinclair BASIC?

      If it's not written on the keyboard, it's not there!

  19. The Jon

    If I can type through these misty eyes...

    Anyone else remember having basic code dictated to them from the manual / magazine and then taking it in turns with your brother to be typist, often with your mum proofreading?

    Brother: 10 FOR I = 1 TO 20

    Me [typing]: 10 4I=1220

    Brother: no, 10 eff oh arr space eye = 1 tee oh 20


    Brother: 1040 RETURN

    Me: 1040

    Brother: no, 1040 space arr ee tee you arr en

    1. Anonymous Coward
      Anonymous Coward

      Re: If I can type through these misty eyes...

      That's why Sinclair BASIC was brilliant - with tokenised keyword basic you couldn't get it wrong - the command verb HAD to follow the line number and you couldn't spell it wrong because it was all one 'character' in the character set, and one keypress to enter it.

      1. Nick Ryan Silver badge

        Re: If I can type through these misty eyes...

        The neat thing about the speccy basic was that it cut out the tokenisation process through having the user enter the token direct as the keyboard simply produced the token as the scan code.

        Other (more sophisticated systems) such as the BBC and Commodore 64 had to parse the line text and tokenise it at that point. While this was less efficient as it introduced another step, it did allow the hacking of basic on the Commodore 64 through the trick of copying the current ROM into the underlying RAM bank under it, changing the tokens (IIRC they were terminated with bit 7 being set in the ASCII string) and the token index was then used with a jump table to execute the functionality. Reverse engineering this to hack it taught me a lot about how the basic interpreter worked and good usage of subroutines, including adding my own basic commands and using the underlying standard BASIC subroutines to help process them.

        1. Anonymous Coward
          Anonymous Coward

          Re: If I can type through these misty eyes...

          That's perhaps the first time I've ever seen the word 'sophisticated' used in a discussion of Commodore BASIC. That old skinflint Tramiel could have had a much better version of Microsoft BASIC for the C64 if he'd coughed up a few extra pennies per machine. Instead all Commodore programs quickly descended into a mass of unintelligible POKEs.

          1. Nick Ryan Silver badge

            Re: If I can type through these misty eyes... @ Mike Richards

            Ha! I can understand that, I certainly didn't mean "sophisiticated" by way of feaures, more by the implementation method. The lack of any form of graphics or sound functions in the language on the C64 was a permanent pain and the reason that assembly was so used (other than speed of course).

            I don't think it would have been on a few extra pennies per machine, the constraint of the 8k basic ROM block probably had a big factor - IIRC there weren't much more than a few extra bytes spare, certainly not enough to introduce graphics and sound functions. Fitting a larger ROM would have doubtless caused all kinds of design issues.

    2. Steve Knox

      Re: If I can type through these misty eyes...

      "1040 RETURN"

      That's what we in the States call a taxing statement!

  20. Ageless Stranger

    running into a shop and typing

    10 print "Program: Elite 2"

    20 randomize usr 1310

    on a spectrum, leaving the confused shop keep thinking Elite 2 is out

  21. Lee Dowling Silver badge

    I still have a complete set of "INPUT" magazine by Marshall Cavendish. I've even spoken to one of the authors of the programs in there (who was a teenager at the time) on Slashdot.

    It's fabulous to go back and just read through them again, but I doubt I'd have the time to type anything in without being a teenager with no homework again.

    BASIC started me programming. People can bash BASIC as much as they like, but I can program, and BASIC allowed me to be self-taught from ZERO experience. Not a lot of languages can do that. Hell, I took most of my own A-Level Computer Science classes on programming because the teacher knew I programmed better than him and could explain it easier and I could parse others programs and spot errors quicker than he could. Maybe I don't program at Knuth or Djikstra's level but I can get the job done every time, and if I expend extra effort, my code is maintainable and pottable, and I have done that as part of my career too. There are schools running on my code, years after I'd left.

    All because of the little orange book that came with the Speccy. I intend, at some point, to teach my daughter to program. She'll have zero interest, but that doesn't mean I shouldn't try anyway. I had zero interest until I'd spent a few lazy days with that orange book on my own and got results I never expected.

    1. Anonymous Coward
      Anonymous Coward

      Yay for the orange manual!

      seconded on the orange ZX Spectrum manual, even the spiral binding was yet another stroke of genius as it made it so much simpler to leave it open on a page while trying something out.

      So much awesome design in one product was just astonishing.

      1. Steve Evans

        Re: Yay for the orange manual!

        The Beeb manual was also spiral bound, and over an inch thick.

        I had an advanced user guide too, I think it's still about in a box somewhere. That had loads of low down info and a complete circuit diagram - much fun with that!

        These days you're lucky if you actually get a copy of the OS on removable media, let alone any kind of manual or welcome tape.

    2. Andrew Garrard

      Ah, memories

      I, too, still have all my INPUT magazines. Their series on 3D graphics was what started me on 3D; my initial graphics programming happened on the Spectrum (also yay to the orange manual, which is where I learnt the "x is a cross, so wise-up" mnemonic). I remember an adventure game in INPUT that used a partial predictive matcher for compression - pretty good for the time.

      The higher level constructs in BBC BASIC (especially on later machines) were a pretty good stepping stone to more powerful languages. I still list BASIC on my CV (so I don't have the hacker's test point for denying that I know it). I never really picked up 6502/Z80 assembler (although I could probably work them out in retrospect now), but I learnt ARM assembly using the inline assembler in BBC BASIC on the Archimedes - a bit of a step up from my spectrum.

      I still have my Speccy. My wife made me get rid of the Archimedes. I cried.

      I don't know that I'd be where I am now if I'd been starting out with a 1990s PC instead of an 1980s micro that let you write simple animated graphics in an afternoon. I remember writing BASIC to draw a car. With racing stripes. And speed "woosh" lines. And the text redraw was probably faster than the virtual remote machine I'm having to use at the moment.

      Thanks to all the pioneers. Sent from a Khronos conference in Dublin.

    3. Dan 55 Silver badge
      IT Angle

      I also had the INPUT magazines, although I don't have them now. They were probably the best way of learning BASIC, seeing if you could debug the code in this issue before the issue next week which had the Erratum came out. What often help was seeing the listings for other computers although towards the end of the series when they dived into machine code with pages and pages of DATA statements it wasn't much help.

      The orange book was probably the best book at teaching a programming language that I've ever read (despite it teaching Spectrum BASIC which is fairly restricted). I think the best decision Amstrad basing most of the +2 manual on it after Sinclair's + and 128K+ manuals which can only be described as failures. The +3/+2A was worse than the +2 one as they decided to introduce more of their own material.

    4. Sceptic Tank Silver badge
      Paris Hilton

      @Lee Dowling

      "my code is maintainable and _pottable_".

      Good for you! I still have to grow mine out in the garden. But my systems grow organically.

  22. Harmless
    Thumb Up

    Type-n-Run-Away shop programs

    My favourite 2-liner code to leave running on the Spectrums in the shop drew a line of random length taking into account the current position, in a random colour (quite a long line with RND's aplenty).... and then 20 GOTO 10

    It left the screen a constantly (and fairly quickly) changing mess of coloured blocks, which made the machine look like it was capable of doing a lot quite quickly (as most of the speed was coming from the built-in machine code routine for line drawing).

    I miss the old speccy, especially the typeface of the character set and those block graphics chars :)

    The manual was a concise and brilliant introduction to programming. These days it's all so complicated to programme on a PC, in comparison - you just can't beat a fairly limited Finite Universe of a programming language where you've actually got some chance of mastering it.

    1. dickiedyce

      Re: Type-n-Run-Away shop programs

      How about

      10 randomize usr 1331

      A spooky precursor to l33t i guess ;-)

  23. Ewan Mackey
    Thumb Up


    Had a Vic 20 but the Tandy TRS-80 kept pulling back. Fantastic Machine!

    Most games bored me unless others were there except for Starcross (I think that is what was called) spent hours on end patrolling the ship.

    Ah slips off into pleasant memories...

    1. Steve Knox

      Re: Starcross?

      Ah, the TRS-80 with its glorious128x48 monochrome graphics! CHR(180) was my favorite.

  24. Amonynous

    You were lucky...

    "I’ve recently caught myself, like some horrific solo re-write of the Monty Python Four Yorkshiremen sketch, waxing lyrical to my two iPod-wielding young ‘uns about the good old days; when men were men, computers were effectively clockwork, and computer games" ... "Actually it was my Nanna who bought me that 1KB ZX81, and my sister the small B&W rotary dial TV to run it on."

    In my day we spent numerous weekends stripping wallpaper and moving furniture for dodgy student landlords to save up enough money to buy our own ZX81's. Then we had to solder them together ourselves from a kit because it was 10 quid cheaper than a ready made one.

  25. Mr Larrington

    Jupiter Ace

    In the mid-eighties I worked under a bloke who wrote his own BASIC *compiler* for the Jupiter Ace.


    1. Justicesays

      Re: Jupiter Ace

      I bought a SPECTRUM BASIC compiler (at a computer faire I believe).

      It wasnt too bad, the biggest issues were that it didnt handle floats, just integers.

      And you had to have enough room for the BASIC program, the compiler, and the resulting machine code .

  26. Risky
    Thumb Up

    BBC Basic

    I had a BBC B but I had to wait a year or two for it as it was a lot of money for us. As I recall because the basic had proper REPEAT....UNTIL Loops, procedures and functions there was a culture of never using GOTOS at all so it did teach you some good habits. I also recall doing some stuff in Assembly language but then my taper recorder broke and wouldn't record so it was a good few months before I could save any code again and never got back to the hard code.

    That said it when I was a college and had to write a little PASCAL it was a very eaesy convertion and I earning a living in VBA these days so the £400 was a pretty decent investment.

    As for all this BS about "proper" programming languages, I'm a firm beliver that you can write bad or good code on any platform.

    1. Steve Evans

      Re: BBC Basic

      You remember correctly. BBC Basic was probably the best of the bunch, and an astonishing piece of work to fit into 16K.

      REPEAT UNTIL, PROCEDURE, FUNCTION, long variable names, all there.

      You could write "real" programs that didn't contain a single goto.

      IIRC, assembly language was just a case of dimming some space and the opening a square bracket in the basic code...

      10 DIM code (200)

      11 P%=code

      20 [

      30 LDA #9:CLC:ADC #1

      40 RET

      50 ]

      Or something like that... Blimee that caused some creaking in my brain... Time to break out the old girl and see if the 5.25" floppy image of Exmon still works!

  27. AbortRetryFail

    TRS-80 Model 1

    Not just for engineer dads. Mine was a doctor who was fascinated by technology and bought one.

    Then, later, a Model II for running his research and patient records.

    It was my introduction to computing (at the tender age of 6) and set me on the path to where I am today - a professional programmer / Software Engineer.

    1. John Brown (no body) Silver badge

      Re: TRS-80 Model 1

      Really? I never saw a real live model II. 8" floppies and running Xeninx :-)

      Maybe it was a model III or IV?

      1. AbortRetryFail

        Re: TRS-80 Model 1

        No, it was definitely a Model II. One large 8" floppy vertically to the right of the screen.

        He also had the expansion box that had a further three 8" floppies arranged vertically and then later on a HDD.

      2. AbortRetryFail

        Re: TRS-80 Model 1

        Also, I don't understand why someone down-voted me for such a non-controversial and matter-of-fact post.

  28. BeachBoy
    Thumb Up

    Hooked because of StarTrek

    That star trek game from the 70´s is probably the single biggest reason most of us got into IT. I remember being exposed to it aged 13 on an NCR mini in 1978. My first hands on Computer experience. Six months later I was self taught BASIC programmer trying to get it working on my (second hand) PET that my father bought me as a birthday present that christmas.

    Ah those were the days.

    After a career in IT I´m now involved teaching in schools, and it saddens me to see the soft fluffy rubbish that passes as ICT lessons. None of the nurturing the spark that we had. I hope the proposed syllabus changes brings that back. People sneer at the PEEK and POKE we had to use. But those two commands taught you more about the inner workings of a computer than you can possibly imagine.

  29. ADJB

    Learning BASIC from books, so yesterday

    Something which should be noted for those people of less than old fart status is that all these 8 bit machines shipped with excellent manuals to enable you to learn the particular variant of BASIC they employed.

    When was the last time you bought a machine (or piece of mass market commercial software for that matter) that had a comprehensive, example driven manual?.

    Of course for those really on the bleeding edge of learning BASIC programming you could lose the manual and watch the VHS instruction tape. An example for the Spectrum can be seen here - - beards and all.

  30. The answer is 42

    Good old days...

    When I worked at the British United Shoe Machinery Company (yes, it was a mouthful) we hired computer time down a phone line in London and fed punched tape in at night; the result came back the next day. I still have my BBC Advanced User Guide in the attic, but dare not switch the BBC on in case capacitors have leaked and it goes bang! My clock is a few cycles out by now, it must be beer time.

  31. Ravenger
    Thumb Up

    My first BASIC computer program was written on optical cards.

    Sort of like punched cards, except you used a soft pencil to colour in the 'holes' that represented the binary ASCII codes of individual letters in each program line.

    This was in the 2nd. year of secondary school. We used to send the completed cards off to a university somewhere for processing, and if you were lucky you got a dot-matrix print-out on green lined computer paper a week later, saying 'SYNTAX ERROR AT LINE 40'.

    In the sixth form at school we learned BASIC on Nascom 2's, RML 380z's and BBC Micros. I taught myself how to program mostly on my ZX81, then upgraded to a C64 where I wrote a simple game in BASIC that got published in a tape magazine. The C64's basic was so primitive however that it was a great incentive to learn machine code!

    Learning BASIC was an extremely useful skill, as though I never became a 'real' programmer, I've scripted lots of different programs in various scripting languages in the IT related roles I've had over the years.

  32. Eddie Edwards

    I for one welcome all these Dragon 32 remembrances. Although I've never seen the Dragon's startup screen look so crisp :)

    1. Chemist

      Dragon 32

      Having butchered a Dragon to give it a PIA ( peripheral interface adaptor ) so that I could run my home-made EPROM programmer I then needed a 6800 assembler for a 6802 based burglar alarm I was building so I wrote one in BASIC - it took about 2 HOURS to assemble ~ 200 lines of 6800 assembler.

      Never used BASIC again !

      1. JeeBee
        Thumb Up

        Re: Dragon 32

        My first assembler was also written in BASIC, it was a Z80 assembler for the Amstrad CPC, from Issue 7 from Computer With The Amstrad - see the cover here:

        I don't recall it being terribly slow as assembling, but it wasn't as fast as the commercial software.

        Good old days!

        1. pete23
          Thumb Up

          Re: Dragon 32

          I'll never forget the name Roland Waddilove as long as I live...

  33. Alan Firminger


    I used a Speccy at work. There was a a microfilm camera with a bad distribution of light over the copy. Loop lots of cosines to display the pattern expected from four lights at x, y, z . I found a good solution.

    Colleagues had a Zeiss colorimeter and calculated colour co-ordinates on a Speccy.

    Then two serious matths errors in the rom were not corrected by Sinclair so the little machine, with its wonderful convenience of use, had to be abandoned for all serious use.

  34. Terry 6 Silver badge

    IBM computer

    In the mid 70s IBM produced a computer for schools programme. The machine was red and looked rather like one of their shop tills of the period.

    It had no graphics, as such.

    Programming was by typing in lots of numbers, in sets, which we had to remember. (or look up).

    The first pair would be the instruction and the next two pairs would be operations locations, Something like that, anyway.

    as in

    "Take the contents of location 22 and add it to the contents of location 34".

    With it we could play a game called "Nim". Eventually.

    And the teachers could add up our termly marks in only slightly more time than it would have taken to do it manually.

    Except when it went wrong of course, at which point pages and pages of numbers had to be manually typed into it to get it working again.

  35. Spook
    Thumb Up

    Ah, this takes me back to the days of programming on an Amstrad CPC464. I remember a program listing in a mag which was quasi-machine code in the form DATA "12,12,133,332,244 etc etc" line after line after line. It was a feckin nightmare to type in but luckily it had built-in parity checking.

    The result? Random music in the form/structure of Mozart, it was amazing at the time. Anyone have a copy of this code?

    1. Uncle Slacky Silver badge

      I remember this!

      IIRC it was a listing in "Your Computer", originally for the Spectrum. It's an implementation of Mozart's "Dice Game" for composing a minuet - see for a description.

      I can't find the original code, but after a quick Google it appears to be a fairly common programming assignment, e.g.

      There's a Scratch implementation here:

      and an iPhone app here:

  36. ukgnome

    Hours spent typing and then

    ...Syntax error..

  37. jason 7

    1987 Computer studies O Level

    I remember spending a lot of time messing around with the network Mr Yarnall installed that year. Then finding out that out projects had to be handed in end of the week!

    I went home that night and wrote out my project in longhand (I had a Spectrum and not a BBC B) then got my mate who had an Electron to check it over (paid him two Mars bars) and then typed it in that lunchtime in the Computer studies room.

    We only had one decent printer so it was a hassle to get it all printed out but it worked. I made a little file server application. Maybe 50 lines of code? I still have the project folder in my cupboard.

    I never wrote any code again. I just didnt get it. Still don't.

    Oh and I got a C pass thanks for asking.

  38. Admiral Grace Hopper

    That Dragon manual has made a happy woman feel very old.

  39. Peter Simpson 1

    BASIC...we could only DREAM of BASIC!

    *I* learned FOCAL.

    Digital's language for beginners: (C)FOCAL-1968

    Teletype, paper tape, time-shared PDP-8 (or so I was told at the time).

    And we were grateful for it.

    1. Colin Wilson 2

      Re: BASIC...we could only DREAM of BASIC!

      I'll see your FOCAL, and raise you... RogAlgol :)

  40. Robert Caldecott

    No RENUMBER command for the Spectrum

    Not having a RENUMBER command in ZX BASIC (until the first 128K model IIRC) was a massive PITA. I remember typing in a machine code RENUMBER command I found in some magazine but I must of got some of the DATA bytes wrong - it crashed the machine and I gave up.

    Happy days!?

    I will dig a copy of my only commercial Spectrum release ("File Master") out of the loft when I can - it's on a 3.5" disk but was written using an MGT Plus D drive so even if it's still readable after 24 years or so I'm not sure what I can do with it!

    1. MacroRodent

      Re: No RENUMBER command for the Spectrum

      ORIC-1 did not have renumber either (I think it was one of the improvements in the 1.1 Basic you got in Atmos). The Oric User magazine published a very short BASIC code to do renumbering, too bad it only treated the line numbers and did not change the GOTOs and GOSUBs that referred to the lines.

      On the other hand, one nice thing about ORIC BASIC was that you could jump to line numbers stored in variables, allowing making GOTO and GOSUB more mnemonic. Not all microcomputer BASICs allowed this. It also had REPEAT...UNTIL loops, which reduced the need for GOTO.

  41. Boris the Cockroach Silver badge

    Them were the days

    When coders were real coders, women were banned from the computer and children roundly beaten until they stopped crying..... no wait... that was my childhood.

    I learned BASIC via the ZX81+ manual... ahhh the joys of getting that black blob to run into another black blob, then getting to code to prove that one black blob had moved into the space of another black blob.

    Then trying to debug the program a week later when it was full of GOTOs

    Then I got a MTX512 And it had BASIC, with proper loops and if-then-else and embedded assembler code.... at which point writing assemby became more fun.

    But for those of you decrying the old BASIC and its line numbers, a lot of modern NC code still uses line numbers, and has the dreaded GOTO.... Just dont ask me to debug NC with GOTOs though

  42. Anonymous Coward

    Locomotive BASIC

    Shout out for Locomotive BASIC as included with the Amstrad CPC. My favourite BASIC of all the 8 bits IMO. Borrowed quite heavily from BBC BASIC as well. As I had used Locomotive BASIC first, when we did BBC BASIC at school I found it a little restrictive.

  43. Bronek Kozicki

    frankly PHP is not much better than BASIC, not to mention first releases of Perl etc. And yet people are writing useful software in these languages, some of it is even maintained by someone else than author.

    Just like one can write FORTRAN or BASIC code in any language of choice (i.e. emulate language idioms and semantics, but expressed in different syntax) so it is also possible, although difficult, to write well structured code in any of these abhorrent languages. Since writing well structured code is difficult in itself, the language choice whilst important for reasons I'm not going to go into now, is secondary.

    Of course education has special needs, since habits once learned can be difficult to unlearn.

  44. Anonymous Coward
    Anonymous Coward

    I sort of missed all the 8 bit computer days...

    I may not have started home computing until I got an Atari ST, but you lot have cause some reminiscing.

    Until I started work at my very first full time job I had never seen a computer up close, let alone done anything with them.

    But then at the start of 1982 I got my first job as a trainee computer operator, and the machines there ranged from 1960's 16 bit machines used to digitise analogue seismic tapes, a TI990 (with 4MB of core memory) and best of all a VAX 11/780.

    For those to young to have see one the 11/780 was approx 5” 6' heigh, 6” wide and 3” deep, plus this one had the extra expansion cabinet that added another 2.5” to the width.

    The VAX was just being upgraded when I started to take it from 4MB to 8MB!

    It was used by ~18 terminals/users and lots of batch jobs, the later needed loading and maintaining 24hrs a day. The machine was used for processing seismic data and needed constant operator input to change tapes (8 and later 12 half-inch Telex tape drives) and selection of the best job mix to use the hardware to its best. This was due to there being in addition the VAX itself, two array processors to offload the number crunching, a “rasterizer” that was used to convert data arrays for plotting on the 3" wide electrostatic plotter(s). The tapes were needed to both get the data in to process and then out to store the results as it only had 3 disk drives, each one the size of a washing machine with removable 18”, 12 platter disks which could store a massive 350MB each.

    Best of all was on quieter night shifts playing Trek, Advent[ure] (aka Colossal Cave), Rouge, Moria, Empire (still being re-written every year as Civilisation++) and many other games, all running from a VT100 terminal (all provided by a visiting DEC engineer). Most of those games were available as .EXE only and ran in compatibility mode as they were originally built on PDP11's.

    A few years later I got hold of Galaxy a multi-user (up to 6) Trek game (I had the source in Fortran for a while), and then in the late 80's the best Start Trek game called Universe.

    Universe had a persistent process that ran the universe even when no players were present, players could join 4 groups Federation, Klingon, Orion, and Romulan and each had ships with different abilities (ie: clocking devices, shield strength, max speed...). There was even the option of enabling the planet eater that would slowly go around the universe wiping out all life on planets you had conquered. There's definitely something special/satisfying hearing a co-worker cursing you from another room, when you have just blasted them away with a spread of photon torpedoes.

    1. Anonymous Coward
      Anonymous Coward

      Re: I sort of missed all the 8 bit computer days...

      A slight correction, what I remembered as "Universe" was more known as "Conquest", but I bever knew there was a OpenGL version!

      see here:

  45. Fred Flintstone Gold badge

    I started with OPL..

    I actually started my computing "life" with the Psion Organiser II, which sported the Organiser Programming Language (OPL). The major benefit for me was that the device was infinitely portable (it was, after all, the first usable PDA). In addition, it had storage (EPROM packs) and the language wasn't too bad as it was a mixture of BASIC and Pascal in the way it was structured.

    The only problem was that I ran slightly out of steam with OPL alone, so I soon obtained the docs from Psion in London which told me where to go and poke around (pardon the term), and after grabbing a microprocessor book I started hand coding machine language bits to include in my OPL to make the machine do more interesting things - as I also had the schematics I knew how to interface with the top port for I/O.

    I still have two of the later 4 line display models - it was a fun start. Actually, now I think of it, I still have a Roland plotter A3 flatbed lying around as well, must go and dig it up one day as it's still more fun than the inkjet approach..

  46. OffBeatMammal

    those were the days

    I started out even older school ... 6502 assembler on an Acorn Atom before moving to the luxury of BASIC on an Oric-1 (found it in the attic the other day, corroded to shit but the manual still looked new if anyone wants it!). Then via an Oric Atmos to a BBC (Model B no less). At some point I even got paid to produce a book of programs for the MSX platform (sadly no matter how careful we were checking it there were errors by the time it got to print!)

    From there I moved to "proper" languages in my day job - COBOL and then via MetaCOBOL to so called 4GLs like IDEAL before jumping on the CASE bandwagon (IEW/ADW) but kept my hand in with the various BASIC iterations which meant that I was well positioned (following a redundancy) to re-invent myself for the classic ASP, HTML, Javascript world

    Looking at the mess folks can get themselves into today with Python, Node, Ruby etc ... I sometimes long for those simpler days. And don't get me started on trying to do anything quickly with the "proper" languages like C# and Java... talk about over-engineering and obfuscation!

  47. mark adrian bell

    Basic Computer Games

    Oh how I loved Basic Computer Games on my TRS-80 Model 1. My first TRS-80 came with 4k of RAM. Yes, that's 4x1024 bytes. When we upgraded to 16k, we thought was more RAM than anyone could ever need.

  48. AndrewInIreland


    The Four Yorkshiremen was an 'At Last The 1948 Show' sketch. Okay, it did star John Cleese and Graham Chapman but the other 2 Yorkshiremen were Tim Brooke Taylor and Marty Feldman.

    1. GrahamT

      Re: Errrr....

      and before that it was on "I'm Sorry I'll Read That Again." on the radio, circa 1964-68.

      John Cleese, Tim Brook Taylor, Bill Oddie and Graham Garden, and others whose names I can't remember.

  49. Martin Huizing

    Dixons hated me for spending lots of time in their shop without actually buying anything...

    5 CLS:c=0

    6 a$="Choose a number from 1-100";

    10 PRINT a$;

    20 Input a

    30 b=rnd(1)*100+1:c=c+1

    40 if a=b print "Well done in ";c;" times!": print "Press RETURN key to continue...": input a: goto 5

    50 if a}b print "Sorry, the number is higher than ";a

    60 if a{b print "Sorry, the number is lower than ";a

    70 a$="Try again!"

    80 goto 10

  50. GlenP Silver badge

    Been there, Done that!

    A mere youngster if you even saw a computer at primary school!

    I do wholeheartedly agree with the article though. I can honestly say "been there, done that!"

    Over 30 years later I still wind up programming in Basic (of the *spit* Visual variety). It still does the job, though. The HP servers and assorted PCs may be a lot more powerful than the ZX81, Spectrum and Beeb B that I used to have, but the techniques I learnt back then are just as relevant today.

    Are kids today getting the same enthusiasm? Let's hope the Raspberry Pi will introduce a new generation to those thrills. Bring back "computing" and forget ICT is what I say!

  51. Paul Powell

    Anyone else notice the racial slur?

    The towers of Hanoi text declares the program to be "velly velly good" - days of innocence indeed

  52. gibman70

    No, on the shop demo machines I was doing

    10 *MOTOR 1

    20 *MOTOR 0 (or something very similar, cant quite remember the syntax now)

    30 GOTO 10

    If ignored by the numpty shop staff and left for a while, it would burn out the disk drive motor :)

    1. Martin Huizing

      msx actually

      It switched on the relay that would start or stop the tape drive. A buzzing sound would emit from the msx. I actually used a timer function so the mayhem started after I was well clear of the place. Fun times!

      1. Anonymous Coward
        Anonymous Coward

        BBC Micro actually

        The clue is in the leading '*' (google OSCLI)

  53. Thorfkin

    Old School

    I kind of feel the same way. I first learned to program on my C64 starting with Basic (Wrote a light cycles clone), then moved to inline assembly, then completely assembly, then machine code. Then later when I got my first PC I picked up C++ (I miss Borland's turbo C++ compiler), Cobol, and Pascal. Not because I was any sort of wiz at computer languages so much as they were all close enough that once you learned one, the rest were all just a matter of syntax. I got into it because I wanted to learn to write games like the ones I spent countless hours playing on my C64. Sometimes I feel sad that today's youth won't have that same opportunity to get into computers when it was still a hobby small enough to be enjoyable. These days everything is so abstracted that just getting into programming seems like a daunting task.

    1. John Brown (no body) Silver badge

      Re: Old School

      "I miss Borland's turbo C++ compiler"

      You're probably looking for this page then :-)

  54. Anonymous Coward
    Anonymous Coward

    If only Nokia had maintained OPL on Symbian

    If Nokia had maintained and developed OPL on Symbian through the noughties, every kid could be doing BASIC-like programming right on their smartphone.

    (And re- that other article: girls too would be able to try programming on the quiet, without fear of peer-pressure nerd-abuse.)

    (And re- many other articles: Symbian would've had a rammed AppStore too, from kids and professionals alike.)

    Symbian would be alive and vibrant, with an entire generation of kids hooked on phones with OPL.

    Great stuff by those Symbian/Nokia managers. Bravo.

  55. Haku

    BBC Micro

    Perhaps the best ever book I ever bought for the BBC Micro cost me £2.75 from Toys'R'Us, it was an in-depth 'bible' of all the obvious and non-obvious tips, tricks, peeks & pokes of programming the BBC Micro that took you beyond BASIC and a little bit into the terrortory of assembly for enhancing BASIC code.

  56. Seajay

    Was I the only one to have something different?

    My first computer was a TI-99/4a which my Grandad bought me for Christmas in 1982. It had solid state cartridges for games etc, but also could be programmed in TI-BASIC (plus I had the "extended basic" cartridge). I remember spending ages on one project, only to get half way through my fantastic game concept, for the machine to tell me it had run out of memory... AArrggh!

    I did then rewire the joystick ports to connect to home made pressure pads under the carpet made out of bin-liners/bubble wrap and tin foil, so that I could sound an alarm and record when my 'orrible little brother was sneaking into my bedroom - that worked really well actually... :-D

  57. Inachu

    I did one better!

    Not only did I write BASIC but one day visiting home finally away from private school

    I went into a music store and their c-64 was broekn or so they said it was.

    They could not get the midi sampler to run after all the times they typed in Load" "8,1 or whatever

    I rebooted the c-64 then remembered the loadign sequence and then typed in the poke codes to activate the program that was loaded into memory and just as I hit enter and the screen cleared a manager yelled "HEY!!! DON'T TOUCH THAT ITS BROKEN!" My mom was in the shopping mall hallway when she heard the manager scream at me.

    Mom- Did my son do something wrong?

    Just then the load finnished and it started working.

    The managers eyes lit up with a smile -WHat did you do?!?!

    I mention the poke codes to activate the program and gave them to her.

    Manager to my mom - Oh your son fixed it!

    Manager paid for my ice cream cone. I was 13 years old when that happend.

  58. johnaaronrose
    Thumb Up


    Gambas is a FOSS version of Basic similar to VB without the VB junk & is Object Orientated. Its author corrects bugs quickly & objectively evaluates requested enhancements. It incorporates an IDE, access to modern databases & the internet, online help and a runtime package. It is being ported to Android. Downside is that it runs on Linux though I understand that it can run on Windows using a Unix server program: instructions for that are on the Gambas website.

    1. johnaaronrose

      Re: Gambas

      I forgot to mention that it has been ported to Raspberry Pi.

      PS How do I get the Like & Dislike icons to display with the posted message? I've tried clicking on the icons underneath the space for writing the message and also dragging the icons to the message.

      1. Anonymous Coward
        Anonymous Coward

        Re: Re: Gambas

        You just click on the icon that you want to use.

        1. johnaaronrose
          Thumb Down

          Re: Gambas

          Already tried that: as I previously said that didn't work. Is it to with my using Firefox?

  59. GrantB

    I still have a ZX Spectrum + Manuals tucked away somewhere waiting for a Raspberry Pi upgrade (the Speccy has been dead for ~20 years).

    I had forgotten about the lack of an ELSE statement, but suspect it still affects my personal coding style. Another programmer at work noticed that in my code I always do something like this:

    multi = FALSE

    IF dcount > 1 THEN multi = TRUE

    rather than

    IF dcount > 1 THEN

    multi = TRUE


    multi = FALSE

    While ZX Basic was not as good as BBC Basic, it was at least common so most magzines carried ZX Basic listings and it was easy to convert from other basics. Assuming the listings for other computers didn't have too many peeks/pokes - like C64 listings.

    It also had a couple of nice quirks. Most basics (including 2010 version of Excel VBA) have a LEFT$/RIGHT$/MID$ but ZX Basic was more like modern languages such as Python so you could do:

    a$ = "Foobar"

    PRINT a$( to 3)

    would display "Foo".

    I remember trying to design my own language at the time that tried to combine BBC Basic/Pascal features; wasn't until years later I heard of Comal which apparently was real language that tried to do the same.

    1. Ian 55

      multi := (dcount > 1)

  60. Anonymous Coward

    Admit it, YOU wrote this on a shop's demo micro, didn't you?

    Actualy no. Though I did do a couple demo's that in effect pulled up porn on a Atari ST. One even had it loaded in high memory TSR style linked to the reset button. Were it would then pull up a static picture that was a screen dump of a basic normal desktop and after upto 3 minutes would start playing a sound loop whilst cycling thru various pictures upon the screen of the local WH Smiths. Also did a flying phalus one, as you do. But was all good fun after a few beers at the white horse beforehand.

    But I'm sure there were many who had similiar fun on shop demo computers.

  61. neilrieck
    Thumb Up

    I started out with BASIC in 1977 on a borrowed "Heath Kit H8" (with H9 monitor) then purchased an Apple ][ (Integer BASIC, AppleSoft BASIC, 6502 Assembler, Pascal, FORTRAN 77). Today due to corporate rules, 90% of my efforts take place in "HP-BASIC for OpenVMS Alpha".

    1. John 62


      Has HP-BASIC been updated to allow whitespace? I used to have to look at the odd bit of HT-BASIC (HP-BASIC clone used by my previous employer). The whole environment was just weird, but they were using it in a test suite hooked up to fragile, doddery old GPIB equipment up until at least 2005.

  62. roger stillick

    Lawrence Hiler's Fast Hackem for C64 (Commodore Club)

    The Astoria OR, USA had a member that built a world class C64 Basic program builder,

    Fast Hackem by Lawrence Hiler... made really big basic programs quick to make, debug, run...

    by late 1983 he was hired by IBM and went back east to join the IBM basic team...

    Kurtzwell had a C64 system, this was much easier to use... and completely home grown...

    Our club eventually made 30 disc magizines, autorun with music, and a speech synthesizer that

    accompanied all text for the blind... the Local D and D club distributed for us, discs were found as far away as Australia by gamers...

    By 1987 it was all gone, got my first home IBM PC, ( after 2 Grid laptops )...

    the world go on in spite of us...

  63. Alan W. Rateliff, II
    Paris Hilton

    True to BASIC -- darned TI

    My foray began with the Apple ][+ at school, and the TI-99/4A at home. The built-in console BASIC was (is) so unbelievably limited because TI chose to stick strictly to the ANSI BASIC standards (which no one else using Microsoft BASIC did) and because of its use of a doubly-interpreted BASIC interpreter written in GPL, Graphics Programming Language.

    GPL is pretty great in terms of a pseudo-machine code language, but stupidly slow on a 3.3MHz 16-bit processor which has been crippled with an 8-bit data bus to memory and peripherals with four wait-states inserted for each access.

    I only had a tape drive for this sleek chrome-plated black beauty. I eventually moved to the "dark side" when I purchased a used Commodore 64 and a C2N tape drive with lawn mowing proceeds, the remaining funds spent in a "Pin*Bot" machine at the BX arcade. Shortly afterward I picked up a disk drive. The Commodore 64 had a much more powerful BASIC than the TI, and faster, too. Though it did lack many of the commands of its competition, like graphics manipulations, there were indeed plenty of third-party BASICs out there (thank you, HES) and even some extensions (thank you, COMPUTE!) to bring Commodore BASIC 7 commands to the 64. I even learned to program in 6502 assembler and used this knowledge to jump back a bit to learn TMS-9900 on the TI.

    And, ah yes, the heyday of COMPUTE! Magazine. When I would eagerly await each monthly issue to read the latest in computer trends, programming or hardware sorcery, and of course the type-in game. I wonder sometimes what it is the budding programmers of today eagerly await with such wonder and glee, besides the next add-on pack for whatever game is The Thing(tm) right now. The suspense of the monthly geek magazine of choice appears lost with this new generation, replaced with the near-instant gratification of forums, blogs, and other Internet outlets.

    Ah, happier times.

    Paris, she wasn't around then.

  64. jim parker

    bbc universal basic

    I haven't read all the millions of comments but, in case no-one has mentioned it, the BBC came up with a universal basic and transmitted programs in it on radio.

    The idea was you recorded it and loaded it into your bbc, commodore or sinclair machine (whatever models where about at that time - VIC20 I think I had then) but I never managed to get any to work.

  65. Ross 12

    HiSoft BASIC

    Like many people, I started programming on speccy in basic, but around 1989 I upgraded to an Atari STe and got a copy of the excellent HiSoft BASIC.

    Unlike the old 8-bit BASICs, it did away with line numbers, allowing use of line lables if needed, but also had proper support for functions and subroutines, and felt pretty modern. Plus it compiled into rather nice small binaries I seem to remember.

  66. Inachu

    What I miss most of all was...

    What I miss most about magazine back in the day was FAMILY COMPUTING.

    They had all sorts of nifty strange programs to try out. Ones that stood out was a sound gerator that was called something like -the beach on mars.

    After viewing ZORK in basic I decided to even create my own adventure program but of my school which I lived at. That was on my TI 994/A computer and next to it was my radio shack pong console.

  67. Nick Gisburne
    Thumb Up

    I like BASIC

    I like BASIC. And I REALLY like VB6. The money I earned from it paid for 95% of my house, so I don't really care if it's a 'good' language. It just works for me. It lets (present tense - I'm still using it well after the expiry date) me code things quickly and easily and just works for the things I need to create. I've been coding since the ZX81 days and using BASIC hasn't stopped me structuring my code, properly commenting it, etc - even though I'm the only one who sees the source. I don't allow myself to write sloppy code - sloppy coders do that, don't blame it on the language.

    I also used to love assembler, and in fact developed my own dialect of BASIC in 6502 assembly code for the Atari 400 and 800. I miss the days when you knew what, where and why every single byte of your code was going/doing. I still have the assembler cartridge somewhere... but sadly no longer own the old computers!

    1. Anonymous Coward
      Thumb Up

      Re: I like BASIC

      Ditto. In the 80s and 90s I had switched to Turbo Pascal and then onto VB3 and eventually VB6. To this day I still earn money from VB6 doing freelance work, mostly Office VBA stuff.

      People can say what they like or dislike about VB6 but VB6 itself was much like the original BASICs and got many into programming as a profession.

  68. Sam Therapy
    Thumb Up

    Ahh, BASIC

    For all its shortcomings, not a bad at all language. My first contact with it was on my Spectrum back in 82. Had the dead fish keyboard version first, then the hard keys Speccy + (just a re-cased 48k Speccy) when the first one blew up.

    ISTR GOTO was frowned on but GOSUB was considered OK. In any event, I learned my first steps in programming on the Speccy. After that I did COBOL and later, taught meself VB. Yeah, I know but VB isn't all that bad really. It's dead easy to code and understand and for the most part, documents itself.

    Once I had Speccy BASIC down, a mate taught me Z80 assembler. Was considered really funny that C5 in Z80 means "Push BC". Think about it, Sinclair's C5 was around at the time.

    Programming and I went our separate ways some years later when computers finally became good enough to do serious graphics work and I went back to my first love of art and graphic design. Anyone remember Deluxe Paint? Very good app, that. Prior to that, I developed Speccy graphics using The Artist, which was arguably the best graphics app for the Spectrum. The writer, Bo Jangeborg (I think) was also the writer of a very popular Speccy Game, Fairlight. Later, he developed a graphics app for the Sam Coupe, which had a Spectrum compatible mode but could also display much better graphics, more on the lines of an Atari ST. The graphics app he wrote for the Coupe was, sadly, lousy.

    Oh well, better stop me wittering and get back to doing some work.

  69. Nomis

    "At senior school, various tribes formed round newly-acquired weapons of choice: parentally-purchased ZX81s and Vic-20s, with a smattering of TRS-80 (dads in technical jobs) and the occasional Commodore Pet (dads managing the dads in technical jobs)." I loved this quote; my Dad was in a technical job and, guess what, we had a TRS-80. Still have it in the loft, can't bare to throw out my first real computer.

  70. Anonymous Coward
    Anonymous Coward

    BASIC still lives and Dark Basic is superb fun and great for kids. DirectX 3D programming with simple BASIC code syntax!

    My kid had great fun coding simple 3D apps, throwing lots of 3D spheres around a screen with their Mum's face plastered on them!

This topic is closed for new posts.

Other stories you might like