Re: [CAD_CAM_EDM_DRO] Grabbing raw Keyboard Data
Posted by
Alan Marconett KM6VV
on 2002-02-21 12:19:33 UTC
Hi Jay,
I suspect you're right. I'm chaining the keyboard ISR, to get the key
down, key up sequences, and I'm kicking of an incremental move (JOG).
The move "continues" if I continue to see activity in the set flags for
the "arrow keys" (also + - for 4th axis). I suspect that I'm somehow
"ignoring" the following key UP/DN's, although I'm still not sure how!
I HAD seen the effects of the Keymatic repeat (bursts of step pulses,
followed by periods of no activity) before this "continue" check in the
main move loop. This MAY be the answer, but my ISR must continue to
set/reset my "arrow key flags" (that I check in the move loop). And my
panel encoder doesn't (yet) get this "continue", and simply finishes
each incremental move (jog). Not quite as smooth as the "jog keys".
It DOES help to "eat" the keys in the chained keyboard TSR. They no
longer get through to the keyboard buffer. This might be enough. I
also use a "FastKbHit()" (in ASM) function in my main move loop, for the
"other" keys that the loop (OK, it's a DO-WHILE) respond to. ESC is one
(might be better to put IT into my "arrow flags", as well), followed by
a "FastGetch()", which gets keys from the keyboard buffer. I might as
well create flags for the encoder too (it should allow a better
"continue"). -OR- wire the encoder up to a pair of unused keys?? Then
(as previously posted) they could be serviced by my ISR.
Wow! I think I've just discovered two more improvements to the *JOG*
issue! Thanks for the help!
As a new test, I'll try turning off Typematic repeat, and see if the jog
actions are any different.
Are you writing something that needs this kind of keyboard control?
73' OM, Thanks for the comments! I'll figure it out yet!
Alan KM6VV
"J. Craswell" wrote:
I suspect you're right. I'm chaining the keyboard ISR, to get the key
down, key up sequences, and I'm kicking of an incremental move (JOG).
The move "continues" if I continue to see activity in the set flags for
the "arrow keys" (also + - for 4th axis). I suspect that I'm somehow
"ignoring" the following key UP/DN's, although I'm still not sure how!
I HAD seen the effects of the Keymatic repeat (bursts of step pulses,
followed by periods of no activity) before this "continue" check in the
main move loop. This MAY be the answer, but my ISR must continue to
set/reset my "arrow key flags" (that I check in the move loop). And my
panel encoder doesn't (yet) get this "continue", and simply finishes
each incremental move (jog). Not quite as smooth as the "jog keys".
It DOES help to "eat" the keys in the chained keyboard TSR. They no
longer get through to the keyboard buffer. This might be enough. I
also use a "FastKbHit()" (in ASM) function in my main move loop, for the
"other" keys that the loop (OK, it's a DO-WHILE) respond to. ESC is one
(might be better to put IT into my "arrow flags", as well), followed by
a "FastGetch()", which gets keys from the keyboard buffer. I might as
well create flags for the encoder too (it should allow a better
"continue"). -OR- wire the encoder up to a pair of unused keys?? Then
(as previously posted) they could be serviced by my ISR.
Wow! I think I've just discovered two more improvements to the *JOG*
issue! Thanks for the help!
As a new test, I'll try turning off Typematic repeat, and see if the jog
actions are any different.
Are you writing something that needs this kind of keyboard control?
73' OM, Thanks for the comments! I'll figure it out yet!
Alan KM6VV
"J. Craswell" wrote:
>
> Hi Alan: I might be wrong but I'm fairly sure the keyboards always autorepeat. Both Fred and I tried
> to find way to get only Keyup and Keydown data but the Keyboard has a CPU that "knows better" and
> sends out the repeated key if held down too long. *Note I'm no genius so PLEASE tell me, if you find a
> way to get the data without the "help." from the Keyboard controller. The scheme they have is REALLY
> annoying.
>
> >From the IBM Technical Reference
> "All keys are typematic. When a key is pressed and held down, the keyboard continues to send the
> make code for that key until the key is released. The rate at which the make code is sent is known as
> the typematic rate. When two or more keys are held down, only the last key pressed repeates at the
> typematic rate. Typematic operation stops when the last key pressed is released, even if other keys are
> still held down. "
>
> 73 de Jay W0VNE
>
> >--- In CAD_CAM_EDM_DRO@y..., Alan Marconett KM6VV <KM6VV@a...> wrote:
> > Hi Jerry,
> >
> > I didn't see any "get" typematic rate command in Phoenix's BIOS book.
> > It might be at a defined location in the BIOS RAM (40:), but I didn't
> > see it called out.
> > Why not chain the kbd interrupt, and "grab" the cursor keys used for JOG
> > before they are put into the kbd buffer? Watch for key down an key up
> > codes from the kbd controller. Then, typematic repeats don't seem to
> > matter... (what happens to them?)
> >
> > Alan KM6VV
Discussion Thread
J. Craswell
2002-02-21 06:48:42 UTC
Grabbing raw Keyboard Data
wanliker@a...
2002-02-21 09:41:40 UTC
Re: [CAD_CAM_EDM_DRO] Grabbing raw Keyboard Data
Alan Marconett KM6VV
2002-02-21 12:19:33 UTC
Re: [CAD_CAM_EDM_DRO] Grabbing raw Keyboard Data