Not much people responding! Maybe I was rude a bit, by not giving a link to specific Ralf Brown interrup list function: https://www.ctyme.com/intr/rb-1514.htm
The original function: static bool joystick_detected() { struct joystick joystick; joystick_read(&joystick); return joystick.axis[0] != 0 || joystick.axis[1] != 0; } works correctly under dosbox, but always detect Joystick in QEMU and VirtualBox... my function: static bool joystick_detected() { struct joystick joystick; joystick_read(&joystick); return (joystick.axis[0] & 0xff00) != 0x8600; } works correctly under QEMU and VirtualBox, but always detect joystick in dosbox... so when there is no joystick, and it is detected, the program hang in calibrate joystick function. How I test in dosbox? The default dosbox.conf file is: # Suggested DOSBox configuration for DOS Defender # Usage: dosbox -conf dosbox.conf dosdef.com [sdl] output=opengl windowresolution=1280x800 [cpu] core=dynamic cycles=max and as seen in it, can be tested with dosbox -conf dosbox.conf dosdef.com but as I don't have a joystick, I added joystick emulation to dosbox.conf: [joystick] joysticktype=2axis timed=false autofire=false swap34=false buttonwrap=false After that I do: dosbox -conf dosbox.conf Ctrl-F1 then I add key bindings (wish I could add mouse bindings): to X- to X+ to 1 to 2 then save after that I: dosbox -conf dosbox.conf dosdef.com and then I am able to calibrate, with the keys I defined ... then play a bit. So my version is still usable in dosbox (dosbox always think there is a joystick present0... But also works in QEMU and VirtualBOX (giving an error and exiting when there is no joystck). For this reason I believe my version is better for FreeDOS than the original one (which is better for DosBox). Probably DosBox should be fixed to return AH=86h when no joystick is present. _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel