What integer codes do my function keys return?


Function keys should return values in the range 3000 to 3063 (F1 – F64). Technically, Shift-F1 is usually interpreted as F13, which would give a result of 3012.
The 2009 value is the key code for the ‘Insert’ key, which is usually aliased to F1 (as such, it seems that Informix is treating Shift-F1 as F1 for the termcap you are using).
If you are receiving a value of ‘0’, curses has failed to recognise the key being pressed. This would suggest that your current terminfo definition does not support the key Shift-F1. You should be able to resolve this by adding a ‘kf13’ entry to your terminfo definition.
To start on this, it is first necessary to evaluate the current terminfo settings. To do this, decompile the terminfo for the current term, ie:

infocmp > myterm.src

The file myterm.src now contains the terminfo definition for your current term. We can’t really suggest what to set for kf13 without knowing what physical terminals/emulators you are using, or the output from the infocmp command. Usually, fkeys follow a logical progression within the terminfo sources.
Querix uses terminfo as opposed to termcap, and this is purely where the f-key/shift-fkey definition/functionality is evaluated.