Mail Archives: djgpp/1998/08/08/16:23:45
On 8 Aug 98 at 12:10, Rylan wrote:
> Hi,
>
> How can I test for a key press in an inline assembly loop in DJGPP? I tried
> using a __dpmi_int call, which works fine for int 16h function 0x00 which
> waits until a key is pressed, then continues, so my interrupt setup seems to
> work. But when I try function 0x01 of int 16h, which sets the zero flag if a
> key has been pressed, how can I test the flags set by an int executed for me
> by __dpmi_int? 'Cause it seems that __dpmi_int alters them on exit of
> itself?
Of course, you can't rely on the flags and registers being what they
were on return from the interrupt. __dpmi_int is documented to
update the __dpmi_regs struct you pass a pointer to with the new
register contents. See my last email, where I used the flags field
for exactly this. Of course I may have got it wrong; I don't know
how int 16h works, I just basically copied the djgpp library's source
code for `kbhit', translating it into assembler.
> Is there a way to do this? If I am on the wrong track then - how can I test
> for a keypress in inline DJGPP assembler??
You could of course just call `kbhit'; restore ES and DS, then "call
_kbhit", and the return value will be in EAX.
> Please reply by mail if at all possible!
My last few replies have bounced from your email address, so I can't
do that.
--
george DOT foot AT merton DOT oxford DOT ac DOT uk
- Raw text -