COMPETITION ENTRY #21: MINIMAL CAVES
Minimalism can be admirable. It forces you to think in ways you might otherwise not have done to solve problems that would be trivial with more resources to hand. The ZX81 was certainly minimalist - if not quite as much as its immediate predecessor - but I still say to this day that 1K Chess is the greatest feat of programming ever achieved. It's been superseded by an even smaller version in recent years, but to cram an almost-fully-functional game of chess into the 870 bytes available on the unexpanded ZX81 in 1982 with little more than a pencil and paper, and no internet to help with any problems, is a phenomenon unmatched by these later efforts.
It is into this minimalistic world that the latest CSSCGC entry steps, wearing the massive size 13 boot of the Sinclair QL, with its anything-up-to-4 MB of memory and 7.5 MHz Motorola 68008 processor. For this is also a Green Challenge entry, and this will make St. Greta of Stockholm's face a lot less contorted into her usual judgemental scowl - it's been recycled twice! In the beginning, i.e. 2007, Einar Saukas and Digital Prawn co-wrote a text adventure in a single line of BASIC. Einar, famous for being ZXDB's chief guardian and author of two game engines that batter the Spectrum's colour clash into submission, further showed his programming wizardry in 2016, by entering a 10-lines-of-BASIC programming contest on the ZX81. In one end went the Spectrum text adventure linked above, out the other came the ZX81 equivalent; has anyone forgotten the ZX81 can't handle multi-statement lines? That's what made the task so much harder, but Einar prevailed.
Now, five years later, Tobias Fröschle, one of the sizeable German contingent in the QL world, has converted Einar's how-did-he-do-it marvel into one line of SuperBASIC. It doesn't even have a line number - hence I find it'll only run with the Minerva ROM on QemuLator, or under SMSQ/E on QPC2. The _BAS text file can be edited to add a line number - just remember to save it in Unix LF-only format! - and that should make it work under the JS ROM, but whatever method you want to try, I have provided full loading instructions for QL noobs - including how to switch ROMs on QemuLator.
I am waffling a tad because there isn't a lot to say! Tobias describes this as "a full adventure", to which I say "...by the barest of margins!" There are four rooms, three usable objects, nine working commands (four of which are compass directions which have to be spelled out in full), and your objective is to kill the dragon, much to the consternation of "Mr QL" and professional Welshman, Dilwyn Jones. (Don't forget his earlier entry in this competition!) The chances are, once you've worked out how the ultra-minimalist parser works, you'll beat this micro-adventure in two minutes.
It's safe to say Tobias wrote this as a technical exercise - as he says, to demonstrate how the highly structured SuperBASIC language can still tie itself in tight knots if that structure is disregarded - or, in this case, actively rejected in favour of cramming everything into one line. This QL listing is based on Einar's solo ZX81 program, rather than the original Spectrum version, which I can deduce from examining the listings of all three.
It doesn't achieve much - it was never intended to, hence why I've had to award it a minimalist two masks for attainment. But on the effort front, it gets some bonuses from the two Ricks it would otherwise have gained, for entering a Challenge (and being the first to go Green), and for doing so on the QL after I've been haranguing every Sinclair forum to do exactly that.
A target has been achieved: the 2021 CSSCGC now has more QL entries than the entire previous history of the competition. As they say in Germany, and also Austria, Liechtenstein, some of Switzerland, and tiny bits of Belgium and Italy: Wunderbar!
Incidentally, if there's anyone wondering what the right (monitor mode) screenshot is going on about, wonder no longer.