Great! I always really liked Mined-Out!, and a slightly optimised version is welcome.
A couple of things, though, which I've noticed after a brief initial look:
1. There's actually a couple of typos (or poor wording choices, at least) on the first page of instructions, which you could usefully take the opportunity to correct:
(a) "HE LAYS DORMANT" should be "HE LIES DORMANT". That's just atrocious grammar.
(b) "YOU BEGIN AT EACH LEVEL AT THE BOTTOM OF THE SCREEN" contains one "AT" too many! Please delete the first. ('You begin each level…')
2. You've changed the controls from the cursor keys (5, 6, 7, 8) to Interface II joystick keys (6, 7, 8, 9). I can see why you've done this (Interface II is a common joystick standard), but it has two unfortunate consequences:
(a) It makes page 2 of the instructions incorrect. In the first line, you've changed the "MOVE USING KEYS..." reference to say "6,7,8 & 9" instead of the previous numbers 5–8; fine. But on the second line it says "[ SEE ARROWS ABOVE THESE KEYS ]" – and that's now not only redundant, but wrong. Only three of the new keys (6, 7 and 8) have arrows above them (on the rubber-key models that show them), and they now show the wrong directions. It only makes sense to include this second line of text, obviously, if the original cursor keys are being used, so if you insist on this change, you need to delete this second line of text.
(b) Some people – and this includes me, I'm afraid! – will really, REALLY hate this change! Speaking for myself, I've never been a fan of joysticks and almost never use them on the Spectrum. I MUCH prefer the keyboard. And I taught myself to use the cursor keys as game direction keys decades ago, back in about 1982/3! Using 5–8 feels very natural to me – but using the Sinclair joystick controls instead is hopeless and sends me in the wrong direction all the time (as the order of the directions has changed as well as the keys). This literally completely ruins the game for me and will get me blown up regularly.
Also remember that the Cursor joystick interface (also Protek, which is the same) is a long-established standard – longer established than Sinclair Interface II. And remember too that from the Spectrum+ onwards, Spectrums have dedicated arrow keys on their keyboard that are equivalent to pressing those numeric cursor keys with Shift held down. It'd be very useful to be able to use those keys here, and your change renders that impossible.
If you really want to improve the keyboard controls in Mined-Out Faster, then I'd strongly suggest that you do the following:
• Revert to the original 5–8 cursor keys;
• Ensure that they also work as expected with and without Caps Shift held down, so that both the number keys (original rubber keyboards) and the dedicated arrow keys (+ keyboards) work as expected;
• Additionally support keys Q, A, O and P as directions, as this is the natural default choice for most Spectrum games.
If you really want to push the boat out you could add support for the Kempston joystick, which is the most widely established joystick standard of all. Or you could allow the user to redefine the keys, or let them choose between Cursor and Interface II joystick standards. But please leave the cursor keys default as it is; long-term players of this game are used to those keys, and that's as good a reason as any not to change them.
I hope that's useful feedback.
Excellent! Thanks very much for your efforts; three separate alternatives, each with appropriate instructions, is very thorough! :-)
As for your point about detecting CS + Cursor keys in BASIC… I think it should be straightforward enough (and works fine in emulators). I've just looked at the listing, and I'm interested to see that in the Interface II version you're testing for G=IN 61438, whereas in the other two versions you're testing for INKEY$="5", "6", "7" and "8" (or q, a, o, p). I'm not sure why you have that distinction between IN and INKEY$ in the different versions.
Anyway, regardless of that, the shifted cursor keys (and the dedicated cursor keys on + keyboards) just produce the ASCII codes for cursor movement, i.e. Left = 8, Right = 9, Down = 10, Up = 11. So the amendments to the Cursor version of your listing – where you have LET G$=INKEY$ – in lines 2–5 would be:
• IF G$="5" OR CODE G$=8 THEN … REM left
• IF G$="6" OR CODE G$=10 THEN … REM down
• IF G$="7" OR CODE G$=11 THEN … REM up
• IF G$="8" OR CODE G$=9 THEN … REM right
I've made those changes to a snapshot of my copy here, for testing purposes, and I can confirm that it works fine (tested in an emulator). The game now responds properly to the cursor keys with and without shift, so it should also work properly with the arrow keys on a + keyboard if you added these four small changes.
Anyway, that's my last remaining suggestion. :-) Many thanks again for your work.