The comp.sys.sinclair Crap Games Competition 2021 - 25th edition!

 

COMPETITION ENTRY #62: HIGH/LOW CONTINUE

Author:  Andy Jenkinson (Uglifruit) Model:  16K Spectrum Format:    .TAP
Submission date:  17 December 2021 Documentation:  none Tested on:  Spectaculator 8.0
AN ENTRY FOR THE MAGENTA CHALLENGE

Download it here

"More tea, vicar?
More tea, vicar?
More tea, vicar?
Guess how many cups!"

The final entry for this competition reached me at 10:54 pm on 17th December. Andy Jenkinson, who sent me this "nano-game", has had the last word on my competition, just before he receives the keys to CSSCGC Towers. I already know ofsix entries that he'll have to review; three of them I've written myself, and three more I had to turn down at this late stage. Two of them were admittedly unfinished and I had to say "get them properly ready for next year", the other was so phenomenally complicated - and might not even work on emulation! - that I couldn't possibly give it a fair review.

I've gone out of my way this year to open the CSSCGC to as many Sinclair and Sinclair-related formats as possible, in a way nobody has really done since Digital Prawn in 2008. Never mind all the Spectrum variants, the ZX81 and the ZX80, I wanted (and got) entries for the QL, Jupiter Ace and Z88. I was hoping for something for the SAM Coupé and Lambda 8300 as well, and came close to getting both. Needless to say, I'll be dealing with both machines myself next year... and who knows what else.

For the 2008 competition, Gavin Callard wrote More Tea Vicar, based on The Big Breakfast's phone-in game (in the first of the links at the top). Gavin intended to make it for every format that Digital Prawn allowed in his competition, but wasn't successful on the SAM Coupé (more due to the meagre emulation than it being beyond his ability). By a freakish coincidence, all the formats that More Tea Vicar was made for are all the formats that I've had entries for this year. (There was also an extra version for the Compukit UK101, but it was only included as part of James Smith's UK101 emulator for the 128K Spectrum.)

By a another freakish coincidence - and it was, wasn't it, Agrajag? - what Andy has done is remade More Tea Vicar. If only the text said "Less Tea Vicar" instead of "Too High" and "More Tea Vicar" instead of "Too Low", that is. All that would be needed is a quick edit of the listing. I think I'll just do that now...

...what's this? What are all these POKEs? And CONTINUE in the listing... three times? And it's all one line? What is happening?

This is how it started:
"The question (raised in the 48K manual about 40 years ago) about how to use CONTINUE inside a program is still unanswered and I've got some nice champagne truffles for anyone who has an answer before 1 January that sounds actually useful..."
- Paul E. Collins
"What would CONT, CLEAR and NEW do in a program? Can you think of any uses at all for this?"
- the official ZX81 user manual, page 63

At 6:03 pm on the final day of the competition, Andy answered that four-decade-old question that predates the Spectrum. While waiting for a package containing champagne truffles, he turned it into a game that is about as minimalistic as it's possible to get, that fits into one line, and jumps to sub-statements in that line using CONTINUE in a way that GO TO and GO SUB cannot. Anyone who worked this out before certainly kept it quiet.

How it works is: POKE the system variable OLDPPC (23662-23663) with the number of the line to jump to, then POKE OSPCC (23664) with the number of the sub-statement, and CONTINUE. The listing was easy enough to convert to a new version of More Tea Vicar - only the text needed editing, even if I had to temporarily change line 0 to line 1 to edit it. If the system variables point to a line or sub-statement that doesn't exist, this is a legitimate way to generate the rare error report N Statement lost (as I found out).

Unsurprisingly, the ZX81 can perform the same trick; it only has the system variable OLDPPC (at 16427), which can be POKEd, and CONT will work the same way. On the ZX80, the unnamed system variable is at address 16407, but it tends to get stuck in a loop after the required POKEs, for reasons I have yet to fathom. I've included my More Tea Vicar modification, keeping the same program structure, in "Jim's additional material", alongside a ZX81 conversion.

It's a tricky game to score, this, because it's so skeletal, and achieves very little as a game. But as a technical exercise, it meets the single most difficult aspect of the Magenta Challenge (with the possible exception of trying to use the SPECTRUM command in a program), and does so in a single line of BASIC. The closest analogy is Minimal Caves, a one-line text micro-adventure, which I scored two for attainment and four for effort, two of which were for the Green Challenge and doing so on the QL. A similarly minimal game, achieved by a bizarre method, is Genesis 1:28, and that was given the same score. I conclude that this the fairest judgement - two and two, plus two more Ricks, both for the Challenge aspect.

Everything seems to have come together so perfectly I could almost believe it was Sir Clive's now-celestial hand guiding it, if only he didn't hate games so much (allegedly). The flurry of last-minute submissions is a tradition that I should have been aware of (there were even meta-entries written about it), and right in the middle of reviewing the previous two final entries came the actual final entry, which reminded me of a previous host who had a similar ethos of hosting the competition to mine, and it came from next year's host at the 59th second of the 59th minute of the 11th hour...

I'll remember this, Mr Jenkinson. Come December 2022, I will remember this day.
*cracks knuckles*

EFFORT:      ATTAINMENT:      DEMERITS:   none