1981 Called, Here’s Your Software

How many of us who have a few decades of adulthood under our belts would like to talk to our 17 year old selves? “Hey kid, it’s all gonna be OK. Also, Duke Nukem Forever does come out eventually, but it’s not going to be pretty!” Being honest, exposure to the hot takes of one’s naive teenage self would almost certainly be as cringeworthy as the time-worn-but-familiar adult would be to the teenager, but there’s one way in which you can in a sense have a conversation with your teenage self. [Mad Ned] had this opportunity, when he discovered a printed BASIC listing for a game he’d written for the TRS-80 back in 1981. Could he make it run again, and what did it tell him about his teenage years?

Grizzled 8-bit veterans will tell you of countless hours spent typing poorly-reproduced listings found in magazines, and the inevitable pain that followed as all those mistypes were ironed out. [Ned] eschewed all that retro experience because this is the 21st century, and we now have much more powerful computers to do our bidding! The reality of incomplete OCR is one we’ll no doubt all be used to, and for 8-bit fans also the debugging that was needed to get the listing to run. Breaker Ball is an odd hybrid of Breakout and Space Invaders, and it’s his analysis of the teenage thinking that led to the game being the way it is that rounds off the piece.  Sadly we’re not treated to the entire listing, but there’s a short gameplay video we’ve placed below the break.

Via Hacker News.

53 thoughts on “1981 Called, Here’s Your Software

    1. Third to that. Was going to just buy $200 dollars worth when bitcoin just came out and hold it just in-case it went big. Actually I recall talk of bitcoin development “beta” before it launched maybe in 2600, although my memory may be tricking me. Talked my self out of it saying it would never get that valuable. Also lets add google stock was like 80 dollars a share and back then I told myself that’s was to much to pay for google stock. Now look at it $$$$ plus a split so the amount of shares could have held plus price. got to catch those moments and not over-analysis them before hand.

      1. I looked at Bitcoin when it was $600 but balked when the Mt. GOX wanted certain info I was uncomfortable with and Coinbase wanted the same info. Alas.

        Also owned 100 shares of a little company called Microsoft in the late 80’s. Sold it a year later when it had dropped big and then recovered to my purchase price. Last time I checked (in the late 90’s) that stake would have grown to $750,000 or so. Never wanted to go back and see what it would have been worth today.

    2. I was considerably older than 17 when Bitcoin started. I’d seen things about Bitcoin mining but I didn’t bother to look into it. Sounded like it was something to do with gathering some MMORPG in-game currency.

      Then I stumbled across an article about how Dogecoin was used to fund the Jamaican bobsled team’s trip to the Olympics and… D’oh! I should have got in on Bitcoin when it started. The GPU I had then would’ve done quite well at the mining but by the tile I gave it a try, it wasn’t up to it. I even bought three USB miners to help.

      This was after the MTGOX scam. I got in with a mining group that had things setup to automatically switch among several cryptocurrencies, whichever was currently getting the best return. Or one could select a currency to mine. All of them could be converted to Bitcoin. My goal was to hit the minimum 0.1 BTC to cash out.

      Then that bunch went and did the same kind of theft MTGOX pulled. Claimed they were “hacked” and all the BTC was gone, then shortly after the people running it were *poof* gone. They got a huge number of people to mine a crapton of crypto for them.

  1. I typed in the whole of Sargon chess in 8080 assembler from a whole-book printed listing, saving to cassette as I went,. I wrote some character-based graphics for the chess board for my computer, and got it all working. I must have been mad, or perhaps just 17.

    1. I wrote a program in TI99/4A basic to try to come up with realistic BOGGLE boards on the TV. Couldn’t get anything resembling the game boards so I added in a routine to double the chance of getting a vowel. Was better but still not right. Then my 17 year old self discovered something called a DATA statement! :-) I then coded in the ASCII codes for the 6 letters on each of the actual BOGGLE game die and the TV suddenly showed realistic BOGGLE board layouts.

      I was hooked on hobby programming from that time forward.

  2. In November 1981, I got my second computer, an OSI Superboard II. Even paid extra for the extra 4K of RAM. I didn’t have a printer until Nov 1982.

    I did type in a disassembler in BASIC, but not much else in BASIC. It was machine language, though usually printed with the assembly listing, so no huge chunk of hex codes.

    And certainly books were a means of distribution. I bought a book about a fancy monitor in 6502, and certainly typed that in. And added some things, or at least tried.

    I was 21. There is nothing significant from that computer, the computer was still an end in itself

  3. Hmm, takes me back.
    My first software contract was on a US built SuperBrain with dual 5 1/4 ” drives, dual Z80 CPU setup, writing in basic a program to print out reams of paper to cover all lotto numeric permutations for a of couple young accountants setting up a business to spread out lotto selections in response to newspaper ads signing up people so the accountants got 5% if any wins. Of course it failed flat in about a month, paper adverts way too expensive for the number of people & tracking winners an issue – though I think they covered their risk by duplicating the numbers they sent out and thus caught the gambling habit themselves really badly – classic Fear Of Missing Out (FOMO). Much better ways to make dosh & with negligible to zero risk too ;-)
    Still have my early 1980’s SuperBrain – might restore it – recover some of my youthful zeal :sigh:
    Thanks for posting :-)

    1. I took out a loan to buy my Intertec Superbrain, and on a vacation trip, bought the schematics from Intertec (they were in one of the Carolinas, maybe near Research Triangle, maybe a town in South Carolina, it’s been decades). I was disappointed to discover that it kept the 5 1/4 floppy drives spinning, forcing me to pop the doors open between file accesses… I and my best friend and college roommate began using a pair of them (yes, he bought one too) to drive automated testing of other devices we built. We had dreams of modifying the systems to stop the drive spinning at idle.

      The Superbrain had two Z-80’s: One was for CP/M and was the programmable part. The other Z-80 was for booting and driving the floppy drives. My friend pulled the boot EPROM from the “boot”” Z-80, built a reader and duplicated its contents as a backup in case of catastrophic error. Eventually that error occurred, and we programmed up a new EPROM to get the system back. NO DICE! My friend’s reader had an impedance issue and mis-read three or four bytes around each 256-byte boundary.

      To this day I am a bit proud that the young (and waay less experienced) guy that I was could reconstruct the boot functionality from the hints we had from the EPROM image.

      Not a BASIC story, but definitely a grizzled 8-bit veteran story.

      I still cannot get over the number of orders of magnitude difference between what cost several grand then and what we get for essentially pocket change today.

  4. >> “Grizzled 8-bit veterans will tell you of countless hours spent typing poorly-reproduced listings found in magazines, and the inevitable pain that followed as all those mistypes were ironed out.”

    Not to mention the agony and frustration of hours spent typing and debugging only to have a modem-glitch reset your connection to the mainframe before you had a chance to save the program!!

    ARRRRGH!!!! :-)

  5. I’d tell my 17-years-old self: “Wise choices you made, it’s turn out just about right.”
    Maybe I’d also tell myself “your father does not only seem wrong, he IS WRONG. Don’t listen to him.” – that’d be about “go to university, study, become a well-established member of academic society”. Complete bullshit of course. q.e.d.

    In ’81 … hmm … I think I did write some basic BASIC, yeah, sounds ’bout right. I think machine language (6502/10) was 2-3 years later … and yes, those print-outs were horrible. But a cheap way for mags to fill their pages …

    1. Well, if you really are a Smartyass AND a nitpicker, then you’ll thank me for this:

      You aren’t using “Q.E.D.” correctly. in your paragraph, you haven’t actually *proved* (or “demonstrated”) anything. Just saying that someone is wrong “of course” isn’t proof – it’s unfounded opinion.

      Yay!! You’re welcome! :-)

  6. I still have a working Apple IIc I can type these old programs into. Got a C64 secondhand but haven’t turned it on yet. Learned all my first chops on a Vic20 with magazine programs when I was 10. Hardly touched programming when I was 17 due to sports and friends.

  7. At that time all I have to to store programs was the good ole cassete recorder.
    Some time ago (not so long) I have wrote a bitbang serial ptinter driver for the joystick port to be able to recover some of the stuff that I could still read from the tapes.
    And yeah, I could not recognize nor remember most of the code I wrote on my teenage years.

  8. “How many of us who have a few decades of adulthood under our belts would like to talk to our 17 year old selves?”

    That line confused the heck out of me. 17… That essentially is/was adulthood to me. I was doing that stuff (BASIC, typing in listings) at age 7 (no typo) and thought I was late to the party already.

      1. I get a kick out of the fact there was only Visual Basic for DOS 1.0. Microsoft dropped it for Visual Basic for Windows. Not many Microsoft software, nor software in general dies at 1.0?

        1. Hi! I could be wrong, but I think VBDOS came out after VIsual Basic 1.0 (Win 3.x).

          It’s really more like a beefed up version of QB45. It’s possible to open projects in the QB program format (non-ASCII), I vaguely remember.

          But you’re right, I think. MS kinda gave up here. Looking back, it looks like MS had given up on MS-DOS as a platform for developers not so long after VBDOS.

          VB DOS looks like a failed attempt to bring the RAD philosophy (rapid application development) to the MS-DOS platform.

          It was like a final “hurray!”, I think.

  9. There was no mistake in 17-years old me, so there is no warning I should send back in time. Well, there was a mistake but at 20-years old. I saved the wrong girl from the wolf’s teeth. I saved exactly the life of the one who praizes falsehood and worships betryal. Twice. But still not so important to worth a message sent back in time.

    However, z80 programminf require supercharged neurons, it does not compare with any limped brain which means learning it ensures a bright future.

    So: better peemanently hack z80 cpus and… blonde ladies only temporary.

  10. I remember the days of typing in basic program listings from the magazines. I have all of the 80 Micro magazines that specialized in the Radio Shack TRS-80 computers and I typed in a lot of them. Lots of late nights.
    It kind of forced you to learn basic just to debug it after you typed it in.
    I still have both of my TRS-80 Model 1 computers and all of the various Radio Shack Coco’s I purchased. I don’t know if any of them still work, but maybe someday I’ll unpack them and see.

  11. I should do the same. I wrote and published a Snake game in 1982ish and have the magazine around here somewhere. I wonder if DOSbox would handle peek and poke to the video addresses that an original PC would.

    1. A Windows “DOSbox” will indeed respond “correctly” to peeks and pokes to “the video addresses”. It won’t be the physical display adapter, but you can mess around with your own virtual device to your hearts content. (That’s old DOS games and apps still work in the DOSbox.) :-)

  12. “Lost Dutchman’s Gold” took a long time to type in, and never worked properly. Maybe from this issue of Byte https://archive.org/details/byte-magazine-1980-12/page/n269/mode/1up pg 268.

    I also recall a short lived technology where you could scan the listing using a barcoded listing on the side of the page. I never had the required scanner nor ever saw one. Anyone remember this tech?
    These old BASIC programs look horrible by modern standards. Gosub be damned.

    1. Early on Byte was interested in barcodes. So various articles about the technology, and making your own reader. But I don”t recall it being used in the magazines. They did publish a booklet or two for specific software. A 6800 assembler, tye short book had instructions on use, then most of the other pages barcodes for loading the software.the

      The Cauzin strips came later, same concept as barcodes, but higher density. It was a new product, Byte did print some listings with it, but not for long. I don’t think the scheme made much impact.

      I suspect the now common QR codes are descended from the Cauzin strips.h

      The next step for Byte was to no longer include program listings, you were supposed to download the programs. So a period when the listings detached from the articles, not so useful decades later. But it didn’t matter, the next step was for Byte to do away with articles that would need program listings.

        1. Wasn’t it late for that, 2000?

          CueCat was a marketing thing, read barcodes to get to a webpage, just like QR codes today.

          If it was used for programs, it was incidental.

        2. I saw a box of brand new Cue:Cat readers at VCF East still sealed in plastic bags from 3.0 years ago (?), the idea was to scan barcodes printed in ads to take the user to the corporate web page. Other uses were found, and a couple magazines tried giving them away but they never caught on.

  13. Let’s see, in 1981 I was ten and had taught myself BASIC on the TI 99/4A using their “Teach Yourself BASIC” tapes and book! I did submit a game to a magazine contest, but did not get published. The winning game I typed in and played. In the late ’90s I rewrote that winning game in compiled BASIC on the Macintosh (TrueBASIC?). I wish I had all my Mac floppies with the various programs I wrote. I know some were in MS-BASIC and would probably still run.

  14. 15, programming a Tandy Electronics TRS-80 with 4K RAM, in terrible BASIC, to an ever-changing audience of half-interested shopping centre customers. ‘Chopper Strike’ had an block-graphics-animated helicopter pass across the top of the screen, shooting a missile at just the right moment to hit a surface target. Prolly still got a copy on a ‘data-cassette’ somewhere, but doubt I’ll ever see a TRS-80 computer in real life again.

  15. .NET Windows 10 announced Visual Basic was to be discontinued.

    c/c++ industry wants to control app software?

    BASIC useful for non-c/c++ programmers?

    Avoid c/c++ software development mess?

    Look forward to see industrial controller Intel MSC BASIC-52 working on a Raspberry Pi 4B,

  16. The most ambitious program I ever wrote was a random character generator for some Marvel Superheros role playing game. In TI Extended BASIC it could generate stat sheets as fast as I could hit the key I assigned to have it run. IIRC I even had it where it could print the information.

    I wrote the program out in pencil before typing it in. Doing that was what convinced me programming was more work than fun.

    The disk (and all my other TI-99/4A stuff) is long gone. I did find a binder a while back with some printouts but there wasn’t a listing for that program.

    What BASIC programming did help with was understanding algebra, especially variables. Aside from that I’ve never had any real world use for algebra.

  17. I also started around 1980’s with microcomputers. Or the basics of programming I learned with my TI-57. I studied math and was working during summer vacation as a mathematician computing (manually) some coefficients for population prognosis. I was hired for two months and my boss had to make me work slower as I would have done the job I was hired for in one week. Another guy working there was interested in getting microcomputers to support his work and they thought that a mathematician would get it faster and so I was wondering what to do with an Apple II which they borrowed. I did some thigs but nothing productive.
    Next winter I bought Cosmac 1802 computer and did some machine code programming and had my first computer course (4 hours of Basic, though I skipped two hours of them for some reason). Armed with that education I went to work again for next summer as a computer expert! I started to migrate the population prognosis to Basic in Compucorp computer (OS Zebra ). I could say a lot to me but basically I would only say that trust in yourself, you know more or less which way to head when the time comes.
    Later CP/M, MS-DOs, Windows, Linux main languages used Basic Turbo Pascal. C, PHP, Javascript and C# among lesser work in others and I still am a developer and will be for the rest of my working career (about 3 years) (and surely going to be even after that). There was a reader letter in Byte magazine of a developer who complained the programmers programmed maybe five years before “advancing” to become a project manager and so on – just when they started to understand programming. That was the moment I decided to evolve a better programmer for the whole my career.
    One anecdote from the early days. I was hired to write a program and paid for it. My best project ever: it was a 22 byte .COM-file and I got about 75$ (80’s dollars) for it. Never gonna make so much money per byte…

  18. I’ve looked at some of my 40 year old printouts and was amazed how they even worked. Some I couldn’t make heads or tails out of, some of the math and string manipulation I was doing looked like gibberish to me. Getting old is hell.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.