Here is the .tmc file I use that came from programming the Warthog. It's a text file with the .tmc extension, and I run it via the Target Script Editor -- actually I just drag its icon onto the icon for the Target Script Editor, then when the editor comes up I hit the RUN button. Then you can run the Event Tester and Device Analyzer to see how it's set up and/or test your Warthog. One note: The flap switch is set up to add/remove one "notch" of flaps if you operate the Flap switch for a second or less, and to go to full flaps/full retract if you just operate the switch and leave it there. The remainder of what is set up is shown below, though you may need to consult your manual (or the labels on the box, if you still have it). It's all so "natural" to me now (ingrained habits), after using it for a number of years, and it fits my needs. Hope it helps someone:
include "target.tmh"
int main()
{
Configure(&HCougar, MODE_EXCLUDED);
Configure(&T16000, MODE_EXCLUDED);
Configure(&LMFD, MODE_EXCLUDED);
Configure(&RMFD, MODE_EXCLUDED);
if(Init(&EventHandle)) return 1;
SetKBRate(32, 50);
SetKBLayout(KB_ENG);
SetShiftButton(0, 0, 0, 0, 0, 0);
MapKeyIOUMD(&Joystick, TG1, DX1, DX1, DX1, DX1, DX1, DX1);
MapKeyIOUMD(&Joystick, S2, PULSE+DX2, PULSE+DX2, PULSE+DX2, PULSE+DX2, PULSE+DX2, PULSE+DX2);
MapKeyIOUMD(&Joystick, S3, PULSE+L_SHIFT+'s', PULSE+L_SHIFT+'s', PULSE+L_SHIFT+'s', PULSE+L_SHIFT+'s', PULSE+L_SHIFT+'s', PULSE+L_SHIFT+'s');
MapKeyIOUMD(&Joystick, S4, PULSE+DX4, PULSE+DX4, PULSE+DX4, PULSE+DX4, PULSE+DX4, PULSE+DX4);
MapKeyIOUMD(&Joystick, S1, PULSE+DX5, PULSE+DX5, PULSE+DX5, PULSE+DX5, PULSE+DX5, PULSE+DX5);
MapKeyIOUMD(&Joystick, H2U, DX7, DX7, DX7, DX7, DX7, DX7);
MapKeyIOUMD(&Joystick, H2R, DX8, DX8, DX8, DX8, DX8, DX8);
MapKeyIOUMD(&Joystick, H2D, DX9, DX9, DX9, DX9, DX9, DX9);
MapKeyIOUMD(&Joystick, H2L, DX10, DX10, DX10, DX10, DX10, DX10);
MapKeyIOUMD(&Joystick, H4R, PULSE+DX16, PULSE+DX16, PULSE+DX16, PULSE+DX16, PULSE+DX16, PULSE+DX16);
MapKeyIOUMD(&Joystick, H4L, PULSE+DX18, PULSE+DX18, PULSE+DX18, PULSE+DX18, PULSE+DX18, PULSE+DX18);
MapKeyIOUMD(&Joystick, H4P, PULSE+'z', PULSE+'z', PULSE+'z', PULSE+'z', PULSE+'z', PULSE+'z');
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYX, 0, 2, 0, 0, 0);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYY, 0, 2, 0, 0, 0);
MapKeyIOUMD(&Throttle, MSP, PULSE+DX26, PULSE+DX26, PULSE+DX26, PULSE+DX26, PULSE+DX26, PULSE+DX26);
MapKeyIOUMD(&Throttle, BSF, CHAIN( D(600), DX8), CHAIN( D(600), DX8), CHAIN( D(600), DX8), CHAIN( D(600), DX8), CHAIN( D(600), DX8), CHAIN( D(600), DX8));
MapKeyIOUMD(&Throttle, BSB, CHAIN( D(600), DX10), CHAIN( D(600), DX10), CHAIN( D(600), DX10), CHAIN( D(600), DX10), CHAIN( D(600), DX10), CHAIN( D(600), DX10));
MapKeyIOUMD(&Throttle, CHF, CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)), CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)), CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)), CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)), CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)), CHAIN( PULSE+L_CTL+'f', D(200), L_CTL+'f', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)));
MapKeyIOUMD(&Throttle, CHB, CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)), CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)), CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)), CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)), CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)), CHAIN( PULSE+L_CTL+'d', D(200), L_CTL+'d', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)));
MapKeyIOUMD(&Throttle, PSF, CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)));
MapKeyRIOUMD(&Throttle, PSF, CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)));
MapKeyIOUMD(&Throttle, PSB, CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)));
MapKeyRIOUMD(&Throttle, PSB, CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)), CHAIN( PULSE+'i', D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)));
MapKeyIOUMD(&Throttle, LTB, PULSE+'s', PULSE+'s', PULSE+'s', PULSE+'s', PULSE+'s', PULSE+'s');
MapKeyIOUMD(&Throttle, EFLNORM, CHAIN( PULSE+'e', D(200), PULSE+'1'), CHAIN( PULSE+'e', D(200), PULSE+'1'), CHAIN( PULSE+'e', D(200), PULSE+'1'), CHAIN( PULSE+'e', D(200), PULSE+'1'), CHAIN( PULSE+'e', D(200), PULSE+'1'), CHAIN( PULSE+'e', D(200), PULSE+'1'));
MapKeyRIOUMD(&Throttle, EFLNORM, CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'), CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'), CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'), CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'), CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'), CHAIN( D(200), PULSE+'e', D(200), PULSE+'1', D(200), PULSE+'2'));
MapKeyIOUMD(&Throttle, EFRNORM, CHAIN( PULSE+'e', D(200), PULSE+'2'), CHAIN( PULSE+'e', D(200), PULSE+'2'), CHAIN( PULSE+'e', D(200), PULSE+'2'), CHAIN( PULSE+'e', D(200), PULSE+'2'), CHAIN( PULSE+'e', D(200), PULSE+'2'), CHAIN( PULSE+'e', D(200), PULSE+'2'));
MapKeyRIOUMD(&Throttle, EFRNORM, CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'));
MapKeyIOUMD(&Throttle, EOLMOTOR, CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+L_SHIFT+L_CTL+F1));
MapKeyRIOUMD(&Throttle, EOLMOTOR, CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'));
MapKeyIOUMD(&Throttle, EORMOTOR, CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1), CHAIN( PULSE+'e', D(), PULSE+'2', D(), PULSE+L_SHIFT+L_CTL+F1));
MapKeyRIOUMD(&Throttle, EORMOTOR, CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'), CHAIN( PULSE+'e', D(), PULSE+'1', D(), PULSE+'2'));
MapKeyIOUMD(&Throttle, APUON, PULSE+L_CTL+'e', PULSE+L_CTL+'e', PULSE+L_CTL+'e', PULSE+L_CTL+'e', PULSE+L_CTL+'e', PULSE+L_CTL+'e');
MapKeyIOUMD(&Throttle, LDGH, PULSE+L_SHIFT+'e', PULSE+L_SHIFT+'e', PULSE+L_SHIFT+'e', PULSE+L_SHIFT+'e', PULSE+L_SHIFT+'e', PULSE+L_SHIFT+'e');
MapKeyIOUMD(&Throttle, FLAPU, TEMPO(PULSE+F7, PULSE+F5, 900), TEMPO(PULSE+F7, PULSE+F5, 900), TEMPO(PULSE+F7, PULSE+F5, 900), TEMPO(PULSE+F7, PULSE+F5, 900), TEMPO(PULSE+F7, PULSE+F5, 900));
MapKeyIOUMD(&Throttle, FLAPD, TEMPO(PULSE+F6, PULSE+F8, 900), TEMPO(PULSE+F6, PULSE+F8, 900), TEMPO(PULSE+F6, PULSE+F8, 900), TEMPO(PULSE+F6, PULSE+F8, 900), TEMPO(PULSE+F6, PULSE+F8, 900));
MapKeyIOUMD(&Throttle, EACON, LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED0));
MapKeyIOUMD(&Throttle, RDRNRM, PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h');
MapKeyRIOUMD(&Throttle, RDRNRM, PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h', PULSE+L_CTL+'h');
MapKeyIOUMD(&Throttle, APENG, PULSE+L_CTL+'r', PULSE+L_CTL+'r', PULSE+L_CTL+'r', PULSE+L_CTL+'r', PULSE+L_CTL+'r', PULSE+L_CTL+'r');
MapKeyIOUMD(&Throttle, APPAT, PULSE+L_CTL+'n', PULSE+L_CTL+'n', PULSE+L_CTL+'n', PULSE+L_CTL+'n', PULSE+L_CTL+'n', PULSE+L_CTL+'n');
MapKeyIOUMD(&Throttle, APALT, PULSE+L_CTL+'z', PULSE+L_CTL+'z', PULSE+L_CTL+'z', PULSE+L_CTL+'z', PULSE+L_CTL+'z', PULSE+L_CTL+'z');
MapKeyIOUMD(&Throttle, EOLIGN, PULSE+DX19, PULSE+DX19, PULSE+DX19, PULSE+DX19, PULSE+DX19, PULSE+DX19);
MapKeyIOUMD(&Throttle, EORIGN, PULSE+DX20, PULSE+DX20, PULSE+DX20, PULSE+DX20, PULSE+DX20, PULSE+DX20);
MapKeyIOUMD(&Throttle, EACOFF, LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED0));
MapKeyIOUMD(&Throttle, IDLERON, CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)));
MapKeyRIOUMD(&Throttle, IDLERON, CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)));
MapKeyIOUMD(&Throttle, IDLELON, CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)), CHAIN( F2, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)));
MapKeyRIOUMD(&Throttle, IDLELON, CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)), CHAIN( PULSE+F1, D(), LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)));
MapKeyIOUMD(&Throttle, CSU, DX22, DX22, DX22, DX22, DX22, DX22);
MapKeyIOUMD(&Throttle, CSD, DX24, DX24, DX24, DX24, DX24, DX24);
MapKeyIOUMD(&Throttle, CSR, DX23, DX23, DX23, DX23, DX23, DX23);
MapKeyIOUMD(&Throttle, CSL, DX25, DX25, DX25, DX25, DX25, DX25);
MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCX, 0, 0, 0, 0, 0);
MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCY, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_RIGHT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_LEFT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_FC, 0, 0, 0, 0, 0);
}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}