×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Unfortunately, yes, the keystrokes are still buffered and then applied when
the keyboard unlocks.

I dealt with something like this once but I'm not sure I ever got it 100%.
Here is what I think that I remember doing.

I displayed a record that had no input capable fields and kept the keyboard
locked. When it came time to unlock the keyboard, I think I used a DSM
function to "peek" to see if there was an "FKey" (Fkey, enter, page up, page
down, etc.) pending and if there was, I issued a read on the screen. That
clears the buffer up to that FKey. I repeated this until there were no more
"FKeys" pending. The "no input fields" should take care of the non-FKey
keystrokes.

I could be WAY off base with my memory on this because it was a LONG time
ago.

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Jon Paris
Sent: Monday, February 19, 2024 12:19 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Keyboard buffer

If you inhibit input will the keystrokes still be buffered? I have never had
to deal with this scenario so I don't have a direct answer.

As far as manipulating the buffers the only way I know how to do that is by
using the DSM APIs.
https://www.ibm.com/docs/en/i/7.5?topic=category-dynamic-screen-manager-apis
<https://www.ibm.com/docs/en/i/7.5?topic=category-dynamic-screen-manager-api
s>

See the Buffer Manipulation section under Low-Level Services.

You may need to have DSM pop-up the "keep your hands to yourself" window so
that you have control over the associated buffer. I'm afraid I've done
little with DSM since it was first designed so I can't be sure you can do
this but ...


Jon P

On Feb 19, 2024, at 11:41 AM, Tim Adair <tadair@xxxxxxxxxxxxxxxx> wrote:

In the middle of an interactive RPGLE program, I need to be able to purge
the keyboard buffer. There is a point in the program where it calls a
(possibly rather lengthy) function. During this time, it pops up a "DO NOT
TOUCH THE KEYBOARD" window, which remains on the screen until the function
completes. In the event that the user presses a key (or keys) anyway, I
need to purge their keystroke(s) before the program continues. I'm hoping
that at least one of the following is possible:

1. Is there a function or API that I can call that will purge the keyboard
buffer?

2. Is there a way to directly read keystrokes from the buffer, so I can
loop through, read all the keystrokes, and just ignore them? (Something
similar to the BASIC INKEY$ function.

I'm open to other suggestions also.

Thank you in advance.

~TA~

--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.


--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.



This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.