Thank you, Mr. Dowson, for such a timely reply. I am still digesting what you said. I have a tremendous amount of respect for programmers like yourself, and hope one day to be half a good as you... So, if I understand you correctly. (FYI, I am using SIOC to interface with FSUIPC, which is an event driven scripting "language", that you may or may not be familiar with. I don't intend to insult your intelligence, nor breadth of experience, only stating possibly pertinent information.)
Basically,
1) FSUIPC interfaces with FSX via the Microsoft predetermined list of simulator "controls" for possible "events".
2) When one maps a hardware action from an input (controller, switch, etc...) recognizable by FSUIPC as a controller input, FSUIPC tells FSX to perform the "event" that the user assigned to it via FSUIPC. (USER_INPUT --> FSUIPC --> FSX)
3) FSUIPC has it's own controls, that it can tell FSX to perform? (I don't understand that) Wouldn't FSX need the control listed to perform it? Sorry for my ignorance.
4) (Memory Allocation) - Events have predetermined memory locations assigned to them. Of which, they hold the data that contains the current state of any given event? If an event occurs, the information starting at that location (offset 0x0000) updates to reflect the change, if applicable. I am assuming this is why you have to define the size of the word? (1, 2, 4, etc...)
Ok, if those assumptions are true... then here is where SIOC comes in. From what I understand, SIOC is an interface between hardware and FSUIPC via offsets. So, if I understand this correctly... SIOC is basically poking the information at a given memory address that FSUIPC uses to update simulator events. Since SIOC is event driven, it responds to changes is the data contained starting at the referenced offset.
(SIOC Example -
Var 1, named FSX_LIGHTS, LINK FSUIPC_INOUT, Offset $07DC, Length 4
If &LIGHTS_SWITCH = 1
&FSX_LIGHTS = CHANGEBITN 0 &FSX_LIGHTS
Var 2, named LIGHTS_SWITCH, LINK IOCARDS_SW, Input 1, Type P
)
All that said, I don't think I am fully understanding the derivative of the offsets. The list of offsets that you provide in the SDK are those defined by You (FSUIPC)? or by FSX? In other words, is there a 1 to 1 correlation between the FSUIPC events list, and the Offsets List, meaning for every "possible" event there is a predefined memory address or offset assigned to it? Because I cannot find an applicable offset, for an event that FSUIPC references.
I know you do not "support" IOCards nor SIOC... That information is given for reference only to help clarify my question.
Anyway, I hope that I have NOT confused anyone with my ramblings...
As always, thanks in advance for all your help! I really do appreciate it.
-Jeremy