Haber si te entendi bien, quieres hacer una funcion tal que asi:
Código Delphi
[-]
procedure SalidaOn(num: Integer);
begin
bErr := Out32($378, 1 shl (num-1));
end;
Esto equivale a:
SalidaOn(1) -> bErr := Out32($378,1);
SalidaOn(2) -> bErr := Out32($378,2);
SalidaOn(3) -> bErr := Out32($378,4);
Y asi sucesivamente, ¿era eso lo que querias?