========================================== DVORAK ALPHABET TIMER by Jim Waterman, 29-30 December 2022 for all Spectrums with an Issue 3 keyboard ========================================== This should, if the timing is right, be the first entry in the 2023 CSSCGC. For some reason, a while back, I was wondering "what if the Spectrum had a Dvorak keyboard layout?" Weird, you might think, but other computers of the day had alternative layouts - the Amstrad CPC, for instance, sold in France with the AZERTY keyboard, in Germany (as a Schneider CPC) with the QWERTZ keyboard, and with accented characters added where needed. And then, I thought about Alphabet Timer - written by P. Fisher of Manchester, published in the July 1983 issue of Sinclair Programs (the same one that contains Grumphers, which I translated for the Lambda 8300 last year). It was (probably) the first program I ever tried to type in, when I was all of five years old. It didn't go well. That I didn't understand Sinclair Programs' shorthand that they used for graphics and inverted characters in their listings was... some of the problem. Anyway... combine these two seemingly unrelated ideas, and what do you get? In this Spectrum variant of P. Fisher's original (from which I have used absolutely none of the ZX81 code, because I need to detect the Symbol Shift key, and that requires IN rather than INKEY$...), you must type in the alphabet, and you will be timed for how long you take. But the game acts as if the Spectrum has been converted to a Dvorak layout - either the two-handed original, or the one-handed variants, both of which are included. For the uninitiated, this is what the keyboard layouts should look like, in comparison to what we know (on a PC, at least): QWERTY: 1 2 3 4 5 6 7 8 9 0 - = ...or in Germany and France Q W E R T Y U I O P [ ] <-- QWERTZ AZERTY A S D F G H J K L ; ' <-- ASDF QSDF Z X C V B N M , . / <-- YXCV WXCV TWO-HANDED: 1 2 3 4 5 6 7 8 9 0 [ ] ' , . P Y F G C R L / = A O E U I D H T N S - ; Q J K X B M W V Z LEFT-HANDED: [ ] / P F M L J 4 3 2 1 ; Q B Y U R S O . 6 5 = - K C D T H E A Z 8 7 ' X G V W N I , 0 9 RIGHT-HANDED: 1 2 3 4 J L M F P / [ ] 5 6 Q . O R S U Y B ; = 7 8 Z A E H T D C K - 9 0 X , I N W V G ' The rubber-key Spectrum has only 40 keys - 26 for the letters, 10 for the numbers, two shift keys, Enter and Space - laid out in four rows of 10, with no room for any extras. This has meant a few compromises, where characters have had to be shunted to different positions. Whatever the layout, Symbol Shift is always where the full stop was - mainly because this position was a full stop key on the ZX81, so it seemed appropriate. Caps Shift and Enter have been put where punctuation keys would be on PC Dvorak keyboards; Space is invariably to the far left of the bottom row, which would be something like a backslash key on any PC keyboard, Dvorak or otherwise. As can be seen on the loading screen, the Z is in an impossible position on the two-handed Dvorak (shown as ~), so it has been moved to where the semicolon would be - and where Z generally is found on a QWERTY keyboard. TWO-HANDED 1 2 3 4 5 6 7 8 9 0 (SPECTRUM): en cs ss P Y F G C R L A O E U I D H T N S sp*Z* Q J K X B M W V (~) Likewise, on the left-handed Dvorak, there is no room for the 1 next to 2 (shown as ~ again). It seemed logical to put it next to the 0, where the comma would be - this is very handy for typing in binary! LEFT-HANDED en cs P F M L J 4 3 2 (~) (SPECTRUM): Q B Y U R S O ss 6 5 K C D T H E A Z 8 7 sp X G V W N I *1* 0 9 The right-handed Dvorak has needed no moves at all, fortunately. RIGHT-HANDED 1 2 3 4 J L M F P en (SPECTRUM): 5 6 Q ss O R S U Y B 7 8 Z A E H T D C K sp 9 0 X cs I N W V G Master all three of these layouts - the easy option is to have the layouts shown on screen (by way of a bit of machine code and a lot of data tables, which are all provided as an .ASM file for your amusement), and once you're confident, try the blind version instead. Master all six of the options, and get the total time under 60 seconds for the GRAND ENDING! (Which isn't very grand. This is a Crap Game after all.) ================================================================================ Development log: 5 September 2022: - Built the ASM routine to display the various keyboard layouts on screen., just as a test. 29 December 2022: - Jamie Bradbury was declared the LOSER of CSSCGC2022, has to host the 2023 edition, and I thought I could bash this game out in time for the New Year. - Rehashed the Spectrum-screen-based keyboard layout from Fuse into a Dvorak-ified version and built the loading screen. - Built the bulk of the game, including the intro screen with the six best times, the various screen displays for whichever of the games we're playing, and checked that the game routine itself (which is THREE lines of BASIC, albeit referencing a code table that will have to be loaded in separately, eventually!) works properly, as does the checking of the time against the best for that level. 30 December 2022: - Added the routine to add up the scores and make an end sequence (of sorts) if the total time for all six exercises is under a minute. This required a bit of extra machine code. - Built the tape, microdrive and +3 disc... - ...then found I'd made a mess of two of the keyboards (while typing this waffle and bunk), and had to fix it!