Code: Select all
0 'SPEEDKEY V1.0
1 'BY STEPHEN J WOOLHAM
2 '
3 'IMPROVED KEYBOARD RESPONSE
4 'FOR DRAGON 32 AND 64.
5 '
10 '
20 'CHECK IF SPEEDKEY IS ENABLED
30 '
40 IF PEEK(269)+PEEK(270)=250 THEN 140
50 '
60 'ENABLE SPEEDKEY
70 '
80 IC=65283
90 POKE IC,PEEK(IC)AND 254
100 POKE 250,116:POKE 251,1:POKE 252,81:POKE 253,126:POKE 254,PEEK(269):POKE 255,PEEK(270)
110 POKE 269,0:POKE 270,250
120 POKE IC,PEEK(IC)OR 1
130 PRINT"SPEEDKEY ENABLED":END
140 '
150 'DISABLE SPEEDKEY
160 '
170 IC=65283
180 POKE IC,PEEK(IC) AND 254
190 POKE 269,PEEK(254):POKE 270,PEEK(255)
200 POKE IC,PEEK(IC)OR 1
210 PRINT"SPEEDKEY DISABLED":END
SpeedKey v1.0
By Stephen J Woolham
Improved keyboard response for the Dragon 32 and 64.
Due to a minor problem with the Dragon 32 (and 64) keyboard routine, some keys
can regularly fail to be detected even at typing speed of the non professional
typists among us. A brief explanaton of the problem from the book "Inside the
Dragon" (Duncan Smeed and Ian Sommerville) is listed below.
** Text below copied from "Inside the Dragon":
"This two-stage scanning technique is used to speed up the scanning routine
although it does mean that key rollover does not occur for keys on the same
row. In other words, holding the 'A' key down and then pressing a key on the
same row, say 'C, does not register the new character but pressing a key on
a different row, say 'H', does register."
"One drawback of this technique is that it prevents the same key from being
recognised again unless it is released and re-pressed. Furthermore, if a key
is held down, it prevents other keys in the same matrix row from being
recognised."
** End of text copied from Inside the Dragon.
Fortunately this problem can easily be remedied by typing in just a few pokes
at the BASIC command prompt, or from within a BASIC (or machine code) program.
Although the pokes can be entered at the BASIC command prompt, I have decided
to included the pokes as part of a BASIC program in order to best illustrate
their use.
The quickest way to test if the pokes have been entered correctly is to press in
turn the keys "ASDF". Only the first two keys will be detected if the pokes have
not been entered correctly.
NOTE: These pokes are not necessary if you are using the Dragon 64's auto-repeat
function, or any of the auto-repeat routines released by myself as standalone
programs, or included as part of an enhanced Dragon operating system ROM.
Hope you enjoy using these pokes!!!
Regards,
Stephen J. Woolham