// fill the writeBuffer WriteB[0]:=...; ... if Init_MODULES = (VersionID) then begin PKeyB := MODULESTransfer(@WriteB); if PKeyB^.KeyResult then begin // process the key events in Buffer[3], Buffer[4] if PKeyB^.Buffer[4] >= 1 then begin bKeyCode := PKeyB^.Buffer[3]; // Matrix KeyCode end; end; end else begin // transfer error end; // the Module can be leaved open for loops, but close it on program end Close_MODULES;