Hi Ladislav,

> Is possible to call a software interrupt from hardware interrupt? I
> want to call INT33h/AX=3 from INT 1Ch handler. And this all works in
> protected mode. I tried to call INT33h through DPMI service 31h but
> it crashed. Is it possible at all?

Yes, sure, but you must avoid calling int33 while int33 is already
active. The usual way to do this is:

- write an own int33 handler which just calls the original int33
  handler but which increments a counter before calling the
  old int33 and decrements it when the old int33 returns. Make
  sure not to mess with the flags returned by the old int33.

- write a test in your int1c handler which makes it avoid the
  int33 call if the counter is found to be nonzero

- you could also write a test in your int33 handler to do the same,
  but it is more polite to make only your int1c handler wait and
  not all int33 users

- the int1c handler should not really WAIT until int33 is ready.
  instead, it should skip over the whole mouse stuff when int33
  is busy... there will always be a next int1c clock tick :-)

Of course things might get more complicated because you use
protected mode (do you need it?), but the idea stays the same.

Eric

PS: Would you be interested in support for 4th and 5th PS2 mouse
buttons for your mouse handler? :-)

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to