Back to BASICs

20190708_123212.jpg

I’ve always been interested in programming – what eighties kid-nerd wasn’t? We were living in the era of bedroom coders transforming into sports car owning superstars apparently overnight and often found ourselves playing games on the exact same hardware others were using to create them. There was a practical side to this knowledge too: In the days of tape loading and mains-powered calculators you really had to have at least a vague idea of how these things worked if you hoped to get any games played. My own talents may have been meagre at the best of times and fell by the wayside a long time ago but it’s always nice to dust off the cobwebs – and that’s why I bought myself a copy of PICO-8, a deliberately limited “fantasy console” environment to have a tinker with, and… it’s really quite sweet! The style that can’t help but form from those conscious restrictions and the incredible feats of programming some people pull off leave me gasping in awe at times. But I also discovered after a short while that it’s not really for me – it’s designed to be basic in the most charming way and it really is, but… it feels like a seasoned programmer’s idea of “basic”, and the starter examples seem to go from “You’ve just learned how to display a graphic, well done!” to “Whelp, guess you’re on your own nowreally quickly. It all left me feeling a bit cold and – while not deliberately so – unwelcome.

As I’m sure the above’s made clear I am not an experienced programmer knocking out indie game demos in my spare time, a tortured amateur who’s desperate to turn the searing creativity they’ve got locked away in their soul into something tangible, or even someone with half a brain looking to seriously improve their skills in their free time – and this is why I’ve gone back to my first and only true programming love, BASIC. BASIC is like wearing an old and very worn pair of digital slippers, familiar and comfortable and an utter embarrassment to everyone but the person using them.

BASIC – that is, “Beginner’s All-purpose Symbolic Instruction Code” – is old, really old: Sixties (!!) old. And for a very long time it was on just about everything remotely tech-y as standard, a bit like Skyrim is today. In the grand nerd hierarchy of programming languages based on a made-up combination of efficacy, difficulty, and the number of mysterious errors that only go away when you sacrifice a goat under a full moon, BASIC is firmly in the PVA glue and lollypop sticks tier, games made of pasta shapes and string and beaming child-like honesty; and that’s why I love it. It’s simple and effec- no, it’s just simple. It’s not even all that simple when you get down to it, not when your mind is struggling to deal with the concept of “Eh, something like that anyway. A bit. Ish. Please work. Please.” being completely unacceptable in any computer language ever written.

So it’s not especially easy, effective, or even going to earn me the slightest sliver of the respect I crave from my online peers but I keep coming back to it because it has enough human-readable gubbins in there that no matter how long I’ve been away or whatever’s not working this bloody time I still feel like I have a fair chance puzzling out what it is I need to do or working out where the latest problem lies. Pre-made programs tend to be short and sweet too – partly due to the technical limitations of the hardware they were running on, and partly because these were the days before copy and paste and we all have better things to do with our time than type out hundreds of lines of code from the back of some manual or magazine just so we can play a slightly wonky home-made game of Battleships or chess.

So when you want to spend a little time programming for pleasure but even the most straightforward modern examples aren’t doing anything for you there’s only one sensible option left – using a Sharp PC-1251 to get the job done!

…Sorry did I say “sensible” up there? I think I meant to type “Convoluted and impractical“.

If an old PC is a considered a “potato” (even if the definition seems to be applied to any PC that’s not hand-built from cutting edge components on the day of their release at times), then this is a… less than a potato. A… a celery stick’s worth of technology, perhaps? If you can think of something, anything, that needs power to run it then it’ll be more powerful and technologically advanced than this little thing, bless it. But that’s all part of the charm – those limitations (it’s got a single line display, and even that’s divided into individual cells!) make so very many things completely impossible before I’ve even begun, which means there is absolutely no point in me even considering doing vast swathes of lots of different and probably very complicated things that I shouldn’t be going anywhere near in the first place.

bandicam 2019-03-01 08-56-24-2811.png

The hardware itself is small, relatively tough, the batteries lasts sometime around forever (Ha! Take that, phone), and at literally the flick of a switch it’s on and completely ready to do whatever I ask it to, so long as “Whatever I ask it to do” is spit out error messages thanks to the numerous typos in my code caused by its adorably dinky raised square keys. This simplicity also means the “How to” book that comes as part of the full set (and tucks in neatly underneath the printer unit in the large and supremely plasticky leather-effect case) is of a manageable size yet still gives a reasonably thorough overview of everything that can be done with the machine, from individual commands to full example programs printed side-by-side with helpful comments and flowcharts. I like books. Books can be flipped through in the bath. Books can have notes scribbled on a scrap of paper and stuffed inside. Books can have sticky note strips sticking out at all angles so I can find something later. The potential messiness of useful books filled with programming tutorials acts as my own personal cuddly toy to cling to as I step out into the harsh and exacting world of code.

Here’s a small but significant detail I’d like to quickly mention, especially as someone who measures cock-ups on a “when” rather than “if” timescale – I can’t screw things up when I’m mucking around with BASIC. I mean.. I can (and do!), but a swift reset sorts out everything. EVERYTHING. Short of taking a hammer to this little thing’s beautiful metal case there’s nothing I can do that will cause any lasting damage. And to be fair a lot of that is because I can’t do all that much with it in the first place – not that it matters. When practically anything you do with the device beyond regular calculations is mostly impossible it turns even the smallest success into a personal triumph that feels like you’re defying Nature herself, even when the triumph in question is weaving simple ALL-CAPS text into a Space Invader-like graphic that could only be done by learning how to turn individual pixels on the display on and off with the Power of Maths (my personal nemesis). A few changes to that “pixel art” (it’s really not advanced enough to warrant the removal of those sarcastic quotation marks) and a timed loop from there and suddenly it’s not just a static display, it’s an animation on something completely unsuited to the task (as you can imagine, the refresh rate on that thing’s not great), but I’ve made it do it anyway. That’s got to be worth celebrating, hasn’t it?

The only thing to do after that is to spread my wings, unleash my inner coder, and move up to… C64 BASIC (Ha! “Moved up”?! Good heavens I’m a lost cause). Yep, that’s me – nothing says “I’ve really got my finger on the pulse” like “Let’s make a little game for a thirty-six year old computer” does it? Now lots of very clever people have made incredible C64 games that throw away the rulebook and make you rethink everything you thought you knew about the hardware’s capabilities, or at the very least… had graphics. I can’t do graphics. Or sound. Or even an ASCII art style title screen like a GameFAQs FAQ that’s almost two decades old. Once again there’s so much I can’t do that I had to focus on the things I could, and that’s how I ended up making a text adventure.

In the right hands a text adventure is a window into another person’s mind, a whole new world that exists only in the exact moment when their text collides with your imagination. In my case… well. I made words appear on the screen and it generally doesn’t fall to pieces when you try to play it, so I’ll take that as a win. I even included multiple endings! You might even find it helpful to draw a small map! It’s not pretty or clever but like a terrible blog post filled with poorly-constructed sentences and a typo you don’t spot for a week there’s a lot to be said for getting something done even if that done thing’s held together with sticky tape and you pray nobody ever looks at how it’s barely working under the hood (please don’t look under the hood, it’s a real mess). BASIC isn’t the sharpest or shiniest language in the toolbox by a long shot, but it got the job done and I had a good time doing it.

Modern widely-available tools from 3D software to Maker programs are powerful, flexible, and wonderful; taking us full circle back to those bedroom coding days of creating literally professional grade games by ourselves at home. But just as WordPress insists on trying to make me see my blog as an exciting opportunity to make money in every damned email they send rather than a fun if amateurish corner of the internet – sometimes you don’t want the tools to make a no.1 bestselling indie hit, you just want to print “Mr Hill smells like cheese” fifty times on the school computer without getting caught or add a personal little twist into some code snippet you read in the back of a game magazine thirty years ago. A sandbox, a quiet little place to play – however old and ill-suited to the task at hand, can be enough.

If you’d like to have a go at my daft little adventure, “ESCAPE THE DRAGON CAVES”(you’ve got to give old-style adventure games names like that!), you can download it here for use in whatever C64 emulator you can find: Link!

7 thoughts on “Back to BASICs

  1. Ahh, I feel like I could have written this post! Try as I might, I cannot get my head around modern programming — even supposedly “simple” things like scripting languages that are part of something else.

    BASIC, though? Specifically, either Atari or STOS BASIC? I’ll happily tinker around with that nonsense for hours and inevitably produce nothing of any real worth. But I’ll have had fun in the process! And that, I think, was a key (and underappreciated) aspect of BASIC being the first thing you see when you fire up a home computer from the 8-bit era.

    10 FOR I=1 to 10
    20 S=INT(RND(0)*13)+1
    30 FOR J=1 TO S
    40 PRINT ” “;
    50 NEXT J
    60 PRINT “MR HILL SMELLS LIKE CHEESE”
    70 NEXT I

    Liked by 1 person

  2. I always wanted to try BASIC. Or at least see what it was about. I’ve never been a big pc gamer, but ever since I saw it on a picture of a Famicom, I’ve always wondered about it. I’ll have to look into it more now! Also, I totally have these old Japanese POPCOM magazines (that I can’t read a lick of) from 1987 with pages of BASIC games that I picked up last year that I had no idea was a thing. I should try those and yours and the one in the comments for no other reason than I have them on hand. Thanks!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s